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

#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_Table__GpIQt2f0xrasZObyH6X8bg tyObject_Table__GpIQt2f0xrasZObyH6X8bg;
typedef struct tySequence__9chP3SzkaldXzawWQCDsqqg tySequence__9chP3SzkaldXzawWQCDsqqg;
typedef struct TGenericSeq TGenericSeq;
typedef struct tyTuple__aGv2fk9ceddvdC01ZJC2Q2g tyTuple__aGv2fk9ceddvdC01ZJC2Q2g;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct NimStringDesc NimStringDesc;
typedef struct tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ;
typedef struct tySequence__7s5HyddQ0f9bxMNILHrXwJQ tySequence__7s5HyddQ0f9bxMNILHrXwJQ;
typedef struct tyTuple__kuMQ1fbjJlHtwKTmBGAe6g tyTuple__kuMQ1fbjJlHtwKTmBGAe6g;
typedef struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag;
typedef struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw;
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
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__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
typedef struct tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q;
typedef struct tySequence__TXIV9cpS1nTKZLiCib9cPT4g tySequence__TXIV9cpS1nTKZLiCib9cPT4g;
typedef struct tyTuple__ucLo1ofiZatslecSftPI2A tyTuple__ucLo1ofiZatslecSftPI2A;
typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
typedef struct tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw;
typedef struct tyObject_Table__d05ldtnZIkg8hVpY02dsdA tyObject_Table__d05ldtnZIkg8hVpY02dsdA;
typedef struct tySequence__6j25whH7XTBoIXcM0x1T7A tySequence__6j25whH7XTBoIXcM0x1T7A;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyTuple__9cdgeqdY7FRioNKBoD6G66A tyTuple__9cdgeqdY7FRioNKBoD6G66A;
typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
typedef struct tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg;
typedef struct tySequence__FdVaeFbf9a05PXbYlgHL9ahw tySequence__FdVaeFbf9a05PXbYlgHL9ahw;
typedef struct tyTuple__OvnOYJpJ1WQyVNnkDTodqw tyTuple__OvnOYJpJ1WQyVNnkDTodqw;
typedef struct tySequence__4fyguUt3ZraOklN6h0Tjkw tySequence__4fyguUt3ZraOklN6h0Tjkw;
typedef struct tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw;
typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
typedef struct tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw;
typedef struct tySequence__1XdfDDoNvZorxGg2DV0QnA tySequence__1XdfDDoNvZorxGg2DV0QnA;
typedef struct tyTuple__tz45FTGkfpDYgeKnoipqHQ tyTuple__tz45FTGkfpDYgeKnoipqHQ;
typedef struct tySequence__i7xpiUsxyv6cQ1xK3JbcGQ tySequence__i7xpiUsxyv6cQ1xK3JbcGQ;
typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
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 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
typedef struct tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ;
typedef struct tySequence__KHtASjJ36dOrANNiImdvag tySequence__KHtASjJ36dOrANNiImdvag;
typedef struct tyTuple__jy9cqXDNMQDkZGlO5foeORw tyTuple__jy9cqXDNMQDkZGlO5foeORw;
typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
typedef struct tyObject_Table__JrI9bTpOVccKpiJXKOskjFg tyObject_Table__JrI9bTpOVccKpiJXKOskjFg;
typedef struct tySequence__YuKuU17u5ApAIki23DK9bJw tySequence__YuKuU17u5ApAIki23DK9bJw;
typedef struct tyTuple__Wymbvuvlf49clEgp9bKoFN9bw tyTuple__Wymbvuvlf49clEgp9bKoFN9bw;
typedef struct tyObject_Table__5WMmzblM3wEpYUTgMBzetQ tyObject_Table__5WMmzblM3wEpYUTgMBzetQ;
typedef struct tySequence__gVogYzwlGNrCaz6jQnXRzA tySequence__gVogYzwlGNrCaz6jQnXRzA;
typedef struct tyTuple__O3AtiO8fwKWfdl6NGmuzhw tyTuple__O3AtiO8fwKWfdl6NGmuzhw;
typedef struct tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg;
typedef struct tySequence__s12F9c4cKfaapm8VzG9a1flQ tySequence__s12F9c4cKfaapm8VzG9a1flQ;
typedef struct tyTuple__8jHm6IGDGecciKpp2bTNxA tyTuple__8jHm6IGDGecciKpp2bTNxA;
typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ;
typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA;
typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
typedef struct tyTuple__cyDO9czMbIL47POKM3sIQng tyTuple__cyDO9czMbIL47POKM3sIQng;
typedef struct tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw;
typedef struct tySequence__dAjyAaabi52TN36Jp0fAXQ tySequence__dAjyAaabi52TN36Jp0fAXQ;
typedef struct tyTuple__X9bWVAqRSgByRpQwn6owzEA tyTuple__X9bWVAqRSgByRpQwn6owzEA;
typedef struct tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ;
typedef struct tySequence__YT27F6szr8EQuTI39aUMYuA tySequence__YT27F6szr8EQuTI39aUMYuA;
typedef struct tyTuple__gEWbG8M8MJ7Ol9cA9bCDm5PQ tyTuple__gEWbG8M8MJ7Ol9cA9bCDm5PQ;
typedef struct tyTuple__xfZjiVhSEwIz5DDkzuPwog tyTuple__xfZjiVhSEwIz5DDkzuPwog;
typedef struct tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA;
typedef struct tySequence__sII3pVVRkIdBZ2HDPdZddA tySequence__sII3pVVRkIdBZ2HDPdZddA;
typedef struct tyTuple__wROVfG5RQYpjEAhvO3LqdQ tyTuple__wROVfG5RQYpjEAhvO3LqdQ;
typedef struct tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ;
typedef struct tySequence__XUL1TrMU0tgXmaMFCIYgFQ tySequence__XUL1TrMU0tgXmaMFCIYgFQ;
typedef struct tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg;
typedef struct tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg;
typedef struct tySequence__jwzrUFjG9akTIJTBBFvvqxw tySequence__jwzrUFjG9akTIJTBBFvvqxw;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
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__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ;
typedef struct tySequence__JGK6WZYU2JHWLoPdKRO4AQ tySequence__JGK6WZYU2JHWLoPdKRO4AQ;
typedef struct tyTuple__jCPpzNasrXtz9cFJFxT1NHQ tyTuple__jCPpzNasrXtz9cFJFxT1NHQ;
typedef struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg;
typedef struct tySequence__MlAD6nAPq9bHKla9cWiIZP0g tySequence__MlAD6nAPq9bHKla9cWiIZP0g;
typedef struct tyTuple__awOivLjlO76sGdHY7nQUjQ tyTuple__awOivLjlO76sGdHY7nQUjQ;
typedef struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q;
typedef struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ tySequence__oLpBKXzW3hF9aCVMo5EymfQ;
typedef struct tyTuple__Ll5iolPASSzOEheeSNjmiw tyTuple__Ll5iolPASSzOEheeSNjmiw;
typedef struct tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA;
typedef struct tySequence__UuiPn6QjIiUTdSVwX2PZ6w tySequence__UuiPn6QjIiUTdSVwX2PZ6w;
typedef struct tyTuple__9a3DhYVfcy14Fx42tD0lSEQ tyTuple__9a3DhYVfcy14Fx42tD0lSEQ;
typedef struct tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ;
typedef struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og tySequence__pUxI6Ljo6IKKHXKOZkQ7Og;
typedef struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ;
typedef struct tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw;
typedef struct tySequence__n1XPc9anZlEQHQuS14lnGwg tySequence__n1XPc9anZlEQHQuS14lnGwg;
typedef struct tyTuple__FK7aTjjzjZq5t6qUNlGUDA tyTuple__FK7aTjjzjZq5t6qUNlGUDA;
typedef struct tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ;
typedef struct tySequence__EhfJ5cVWpPFG1tw09ap9co5g tySequence__EhfJ5cVWpPFG1tw09ap9co5g;
typedef struct tyObject_Table__aJYy01k1JDYeFrFCvIyOlw tyObject_Table__aJYy01k1JDYeFrFCvIyOlw;
typedef struct tyObject_TocItem__jc5WxywzGPY8oy0aHNYXIg tyObject_TocItem__jc5WxywzGPY8oy0aHNYXIg;
typedef struct tySequence__hi4XF2kW6f9aL7Qx8ito3Rw tySequence__hi4XF2kW6f9aL7Qx8ito3Rw;
typedef struct tyTuple__PU7VbX9aRt6UwxX09bATz09bg tyTuple__PU7VbX9aRt6UwxX09bATz09bg;
typedef struct tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ tySequence__SFipDZIkFtPcrLs0AGBBjQ;
typedef struct tyObject_Table__myGXmFdFAc6beAdGFLRvEQ tyObject_Table__myGXmFdFAc6beAdGFLRvEQ;
typedef struct tySequence__MVOolrgzxbiYsd7sgvFfFw tySequence__MVOolrgzxbiYsd7sgvFfFw;
typedef struct tyTuple__oOuAMYA9a4ePg0evn9b5GaUQ tyTuple__oOuAMYA9a4ePg0evn9b5GaUQ;
typedef struct tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A;
typedef struct tySequence__CJOrWaM0fWekVRTE2AotGw tySequence__CJOrWaM0fWekVRTE2AotGw;
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
typedef struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg tyTuple__8ZxhPt1NwfElsJs8zUSV9bg;
struct tyObject_Table__GpIQt2f0xrasZObyH6X8bg {
tySequence__9chP3SzkaldXzawWQCDsqqg* data;
NI counter;
};
struct TGenericSeq {
NI len;
NI reserved;
};
struct tyTuple__aGv2fk9ceddvdC01ZJC2Q2g {
NI Field0;
void* Field1;
NI Field2;
};
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;
};
typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
struct TNimNode {
tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ {
tySequence__7s5HyddQ0f9bxMNILHrXwJQ* data;
NI counter;
};
struct tyTuple__kuMQ1fbjJlHtwKTmBGAe6g {
NI Field0;
NI Field1;
NimStringDesc* Field2;
};
struct RootObj {
TNimType* m_type;
};
struct Exception {
  RootObj Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
Exception* up;
};
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
  Exception Sup;
};
struct tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw {
  tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
};
struct tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag {
  tyObject_ValueError__yoNlBGx0D2tRizIdhQuENw Sup;
};
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;
};
struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
NI counter;
};
struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
NI Field0;
NimStringDesc* Field1;
NI32 Field2;
};
struct tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q {
tySequence__TXIV9cpS1nTKZLiCib9cPT4g* data;
NI counter;
};
struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
NU16 line;
NI16 col;
NI32 fileIndex;
};
struct tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw {
NF time;
NI count;
};
struct tyTuple__ucLo1ofiZatslecSftPI2A {
NI Field0;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw Field2;
};
struct tyObject_Table__d05ldtnZIkg8hVpY02dsdA {
tySequence__6j25whH7XTBoIXcM0x1T7A* data;
NI counter;
};
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct tyTuple__9cdgeqdY7FRioNKBoD6G66A {
NI Field0;
NimStringDesc* Field1;
tyTuple__UV3llMMYFckfui8YMBuUZA Field2;
};
struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
NI counter;
};
struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
NI Field0;
NI32 Field1;
tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
};
struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
tySequence__kxu4GK0onha2t9bo86mdVAg* data;
NI counter;
};
struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
NI Field0;
NI32 Field1;
NI32 Field2;
};
struct tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg {
tySequence__FdVaeFbf9a05PXbYlgHL9ahw* data;
NI counter;
};
struct tyObject_SymInfoPair__mXtIz9c3umFizQ9bw79aldIEw {
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
};
struct tyTuple__OvnOYJpJ1WQyVNnkDTodqw {
NI Field0;
NI32 Field1;
tySequence__4fyguUt3ZraOklN6h0Tjkw* Field2;
};
struct tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw {
tySequence__1XdfDDoNvZorxGg2DV0QnA* data;
NI counter;
};
struct tyTuple__tz45FTGkfpDYgeKnoipqHQ {
NI Field0;
NI32 Field1;
tySequence__i7xpiUsxyv6cQ1xK3JbcGQ* Field2;
};
struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
tySequence__23SMqauuRsbDANhthj9bWlA* data;
NI counter;
};
struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
NI Field0;
NimStringDesc* Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
NI counter;
};
struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
NI Field0;
NimStringDesc* Field1;
NI64 Field2;
};
struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
NI counter;
};
struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
NI entries;
};
struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
NI Field0;
NimStringDesc* Field1;
tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
};
struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
NI counter;
};
typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
};
struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
NI counter;
};
struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
NI Field0;
NI Field1;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
};
struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
NI counter;
};
struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
NU32 module;
NI32 item;
};
struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
NI Field0;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
};
struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA {
NI id;
NimStringDesc* s;
tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* next;
NI h;
};
struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
NI counter;
};
struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
NI Field0;
NI32 Field1;
NU32 Field2;
};
typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
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;
};
};
struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
NI32 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 tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
NI counter;
};
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 tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
tySequence__mWRMiYLthG9coLjkbElCxkw* data;
NI counter;
};
struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
};
struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
};
struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
NI Field0;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
};
struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
tySequence__3MPVXAHA08SszBrU4ffqEg* data;
NI counter;
};
struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
};
struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
NI counter;
};
struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
};
struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
tySequence__bTDCDwD2P7TodzbAefLcSw* data;
NI counter;
};
struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
NI Field0;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
};
struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
  RootObj Sup;
tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
};
typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
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;
};
struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
NI counter;
};
struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
NI Field0;
NI Field1;
NI Field2;
};
struct tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ {
tySequence__KHtASjJ36dOrANNiImdvag* data;
NI counter;
};
struct tyTuple__jy9cqXDNMQDkZGlO5foeORw {
NI Field0;
NI Field1;
tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
};
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;
};
struct tyObject_Table__JrI9bTpOVccKpiJXKOskjFg {
tySequence__YuKuU17u5ApAIki23DK9bJw* data;
NI counter;
};
struct tyTuple__Wymbvuvlf49clEgp9bKoFN9bw {
NI Field0;
NI Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyObject_Table__5WMmzblM3wEpYUTgMBzetQ {
tySequence__gVogYzwlGNrCaz6jQnXRzA* data;
NI counter;
};
struct tyTuple__O3AtiO8fwKWfdl6NGmuzhw {
NI Field0;
NI Field1;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
};
struct tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg {
tySequence__s12F9c4cKfaapm8VzG9a1flQ* data;
NI counter;
};
struct tyTuple__8jHm6IGDGecciKpp2bTNxA {
NI Field0;
NI64 Field1;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
};
struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
};
struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
NI counter;
};
struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
NI Field0;
NI Field1;
tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
};
struct tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw {
tySequence__dAjyAaabi52TN36Jp0fAXQ* data;
NI counter;
};
struct tyTuple__X9bWVAqRSgByRpQwn6owzEA {
NI Field0;
NI Field1;
NI16 Field2;
};
struct tyTuple__cyDO9czMbIL47POKM3sIQng {
NI Field0;
NI16 Field1;
};
struct tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ {
tySequence__YT27F6szr8EQuTI39aUMYuA* data;
NI counter;
};
struct tyTuple__xfZjiVhSEwIz5DDkzuPwog {
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* Field0;
NI32 Field1;
};
struct tyTuple__gEWbG8M8MJ7Ol9cA9bCDm5PQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyTuple__xfZjiVhSEwIz5DDkzuPwog Field2;
};
struct tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA {
tySequence__sII3pVVRkIdBZ2HDPdZddA* data;
NI counter;
};
struct tyTuple__wROVfG5RQYpjEAhvO3LqdQ {
NI Field0;
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* Field2;
};
struct tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ {
tySequence__XUL1TrMU0tgXmaMFCIYgFQ* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg {
tyArray__qtqsWM5aXmcpMIVmvq3kAA Field0;
NI Field1;
};
struct tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg {
tySequence__jwzrUFjG9akTIJTBBFvvqxw* data;
NI counter;
NIM_BOOL isSorted;
};
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringDesc* Field0;
NI Field1;
};
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;
};
struct tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ {
tySequence__JGK6WZYU2JHWLoPdKRO4AQ* data;
NI counter;
};
struct tyTuple__jCPpzNasrXtz9cFJFxT1NHQ {
NI Field0;
tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
tySequence__qwqHTkRvwhrRyENtudHQ7g* Field2;
};
struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA {
  RootObj Sup;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* left;
tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* right;
NI L;
NimStringDesc* data;
};
struct tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg {
tySequence__MlAD6nAPq9bHKla9cWiIZP0g* data;
NI counter;
NI first;
NI last;
};
struct tyTuple__awOivLjlO76sGdHY7nQUjQ {
NI Field0;
NI Field1;
NimStringDesc* Field2;
tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* Field3;
};
typedef NU8 tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg;
struct tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q {
NIM_BOOL isUnquoted;
tyEnum_JsonNodeKind__RUngo7nCHe6O8aBGIcrhtg kind;
union{
struct {NimStringDesc* str;
} _kind_1;
struct {NI64 num;
} _kind_2;
struct {NF fnum;
} _kind_3;
struct {NIM_BOOL bval;
} _kind_4;
struct {tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg fields;
} _kind_6;
struct {tySequence__oLpBKXzW3hF9aCVMo5EymfQ* elems;
} _kind_7;
};
};
struct tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA {
tySequence__UuiPn6QjIiUTdSVwX2PZ6w* data;
NI counter;
};
struct tyTuple__Ll5iolPASSzOEheeSNjmiw {
NI Field0;
NI32 Field1;
};
struct tyTuple__9a3DhYVfcy14Fx42tD0lSEQ {
NI Field0;
NimStringDesc* Field1;
tyTuple__Ll5iolPASSzOEheeSNjmiw Field2;
};
struct tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ {
tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* data;
NI counter;
};
struct tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ {
NI Field0;
NimStringDesc* Field1;
NI Field2;
};
struct tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw {
tySequence__n1XPc9anZlEQHQuS14lnGwg* data;
NI counter;
NI first;
NI last;
};
struct tyTuple__FK7aTjjzjZq5t6qUNlGUDA {
NI Field0;
NI Field1;
NimStringDesc* Field2;
tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ* Field3;
};
struct tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ {
NimStringDesc* rdoccmd;
NimStringDesc* docCmd;
NimStringDesc* code;
NI index;
};
struct tyObject_TocItem__jc5WxywzGPY8oy0aHNYXIg {
NimStringDesc* content;
NimStringDesc* sortName;
};
struct tyObject_Table__aJYy01k1JDYeFrFCvIyOlw {
tySequence__hi4XF2kW6f9aL7Qx8ito3Rw* data;
NI counter;
};
struct tyTuple__PU7VbX9aRt6UwxX09bATz09bg {
NI Field0;
NimStringDesc* Field1;
tySequence__EhfJ5cVWpPFG1tw09ap9co5g* Field2;
};
struct tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug {
tySequence__SFipDZIkFtPcrLs0AGBBjQ* data;
NI counter;
};
struct tyObject_Table__myGXmFdFAc6beAdGFLRvEQ {
tySequence__MVOolrgzxbiYsd7sgvFfFw* data;
NI counter;
};
struct tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A {
NimStringDesc* keyword;
NimStringDesc* link;
NimStringDesc* linkTitle;
NimStringDesc* linkDesc;
};
struct tyTuple__oOuAMYA9a4ePg0evn9b5GaUQ {
NI Field0;
tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A Field1;
tySequence__CJOrWaM0fWekVRTE2AotGw* Field2;
};
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
NCSTRING procname;
NI line;
NCSTRING filename;
};
struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg {
NI Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct tySequence__9chP3SzkaldXzawWQCDsqqg {
  TGenericSeq Sup;
  tyTuple__aGv2fk9ceddvdC01ZJC2Q2g data[SEQ_DECL_SIZE];
};
struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
  TGenericSeq Sup;
  tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
};
struct tySequence__TXIV9cpS1nTKZLiCib9cPT4g {
  TGenericSeq Sup;
  tyTuple__ucLo1ofiZatslecSftPI2A data[SEQ_DECL_SIZE];
};
struct tySequence__6j25whH7XTBoIXcM0x1T7A {
  TGenericSeq Sup;
  tyTuple__9cdgeqdY7FRioNKBoD6G66A 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__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__1U9bG8RcAedEeYkQLZjVFKA {
  TGenericSeq Sup;
  tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
};
struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
  TGenericSeq Sup;
  tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
};
struct tySequence__7s5HyddQ0f9bxMNILHrXwJQ {
  TGenericSeq Sup;
  tyTuple__kuMQ1fbjJlHtwKTmBGAe6g 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__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__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__bTDCDwD2P7TodzbAefLcSw {
  TGenericSeq Sup;
  tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
};
struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
  TGenericSeq Sup;
  tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
};
struct tySequence__KHtASjJ36dOrANNiImdvag {
  TGenericSeq Sup;
  tyTuple__jy9cqXDNMQDkZGlO5foeORw data[SEQ_DECL_SIZE];
};
struct tySequence__YuKuU17u5ApAIki23DK9bJw {
  TGenericSeq Sup;
  tyTuple__Wymbvuvlf49clEgp9bKoFN9bw data[SEQ_DECL_SIZE];
};
struct tySequence__gVogYzwlGNrCaz6jQnXRzA {
  TGenericSeq Sup;
  tyTuple__O3AtiO8fwKWfdl6NGmuzhw data[SEQ_DECL_SIZE];
};
struct tySequence__s12F9c4cKfaapm8VzG9a1flQ {
  TGenericSeq Sup;
  tyTuple__8jHm6IGDGecciKpp2bTNxA data[SEQ_DECL_SIZE];
};
struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
  TGenericSeq Sup;
  tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
};
struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
  TGenericSeq Sup;
  tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
};
struct tySequence__dAjyAaabi52TN36Jp0fAXQ {
  TGenericSeq Sup;
  tyTuple__X9bWVAqRSgByRpQwn6owzEA data[SEQ_DECL_SIZE];
};
struct tySequence__YT27F6szr8EQuTI39aUMYuA {
  TGenericSeq Sup;
  tyTuple__gEWbG8M8MJ7Ol9cA9bCDm5PQ data[SEQ_DECL_SIZE];
};
struct tySequence__sII3pVVRkIdBZ2HDPdZddA {
  TGenericSeq Sup;
  tyTuple__wROVfG5RQYpjEAhvO3LqdQ data[SEQ_DECL_SIZE];
};
struct tySequence__XUL1TrMU0tgXmaMFCIYgFQ {
  TGenericSeq Sup;
  tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg data[SEQ_DECL_SIZE];
};
struct tySequence__jwzrUFjG9akTIJTBBFvvqxw {
  TGenericSeq Sup;
  tyTuple__XOVT24GHXwqiEj5GCsEGCA data[SEQ_DECL_SIZE];
};
struct tySequence__sh9b9afdJBB3bJbViXY7yNAg {
  TGenericSeq Sup;
  tyTuple__YXXBMUJBtW9corlxevWVfYQ 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__MlAD6nAPq9bHKla9cWiIZP0g {
  TGenericSeq Sup;
  tyTuple__awOivLjlO76sGdHY7nQUjQ data[SEQ_DECL_SIZE];
};
struct tySequence__UuiPn6QjIiUTdSVwX2PZ6w {
  TGenericSeq Sup;
  tyTuple__9a3DhYVfcy14Fx42tD0lSEQ data[SEQ_DECL_SIZE];
};
struct tySequence__pUxI6Ljo6IKKHXKOZkQ7Og {
  TGenericSeq Sup;
  tyTuple__sr3s7uVHpu9cEbbDnCSg8yQ data[SEQ_DECL_SIZE];
};
struct tySequence__n1XPc9anZlEQHQuS14lnGwg {
  TGenericSeq Sup;
  tyTuple__FK7aTjjzjZq5t6qUNlGUDA data[SEQ_DECL_SIZE];
};
struct tySequence__EhfJ5cVWpPFG1tw09ap9co5g {
  TGenericSeq Sup;
  tyObject_TocItem__jc5WxywzGPY8oy0aHNYXIg data[SEQ_DECL_SIZE];
};
struct tySequence__hi4XF2kW6f9aL7Qx8ito3Rw {
  TGenericSeq Sup;
  tyTuple__PU7VbX9aRt6UwxX09bATz09bg data[SEQ_DECL_SIZE];
};
struct tySequence__CJOrWaM0fWekVRTE2AotGw {
  TGenericSeq Sup;
  tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A data[SEQ_DECL_SIZE];
};
struct tySequence__MVOolrgzxbiYsd7sgvFfFw {
  TGenericSeq Sup;
  tyTuple__oOuAMYA9a4ePg0evn9b5GaUQ data[SEQ_DECL_SIZE];
};
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
  TGenericSeq Sup;
  tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
};
struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
  TGenericSeq Sup;
  tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
};
struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
  TGenericSeq Sup;
  tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
};
struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
  TGenericSeq Sup;
  tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
};
struct tySequence__oLpBKXzW3hF9aCVMo5EymfQ {
  TGenericSeq Sup;
  tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* data[SEQ_DECL_SIZE];
};
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ {
  TGenericSeq Sup;
  tyTuple__8ZxhPt1NwfElsJs8zUSV9bg data[SEQ_DECL_SIZE];
};
N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_177)(NI x);
N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
static N_INLINE(NI, rawGet__astalgo_1188)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI* hc);
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);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash);
static N_INLINE(NIM_BOOL, mustRehash__astalgo_1695)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__astalgo_1848)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__astalgo_2152)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t, tySequence__9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__astalgo_2321)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI hc);
static N_INLINE(NI, rawGet__ast_1061)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ t, NI key, NI* hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__ast_1357)(NI key) __attribute__((noreturn));
N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
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*, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr);
static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5256)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
static N_INLINE(NI, rawGet__lineinfos_449)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_279)(NimStringDesc* x);
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);
static N_INLINE(NIM_BOOL, mustRehash__lineinfos_785)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lineinfos_938)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lineinfos_1242)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(NI, rawGetKnownHC__lineinfos_1411)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, initTable__options_641)(NI initialSize, tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* Result);
static N_INLINE(NI, rawGet__nimblecmd_290)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t, NimStringDesc* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(NIM_BOOL, mustRehash__nimblecmd_849)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nimblecmd_1002)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nimblecmd_1306)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA* t, tySequence__6j25whH7XTBoIXcM0x1T7A** data, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA val, NI hc, NI h);
static N_INLINE(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
static N_INLINE(NI, rawGetKnownHC__nimblecmd_1475)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__msgs_300)(NimStringDesc* key) __attribute__((noreturn));
static N_INLINE(NIM_BOOL, mustRehash__ast_1582)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__ast_1735)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__ast_2039)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t, tySequence__7s5HyddQ0f9bxMNILHrXwJQ** data, NI key, NimStringDesc* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__ast_2208)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ t, NI key, NI hc);
static N_INLINE(NIM_BOOL, isEmpty__pureZcollectionsZtables_28)(NI hcode);
static N_INLINE(NI, rawGet__modulegraphs_9637)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI* hc);
static N_INLINE(NI, hash__ast_780)(NI32 x);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_9944)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_10133)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_10445)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t, tySequence__kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_10614)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI hc);
static N_INLINE(NI, rawGet__icZic_6479)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, NI* hc);
static N_INLINE(NI, hash__idents_217)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* x);
static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b);
static N_INLINE(NIM_BOOL, mustRehash__icZic_6778)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_6937)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_7263)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g* t, tySequence__9bT7o0CflHuiE4VhmtqBPCw** data, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, tySequence__vC9cvg0R8tfBaOXXi3sfMzw* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(void, genericSeqAssign)(void* dest, void* src, TNimType* mt);
static N_INLINE(NI, rawGetKnownHC__icZic_7444)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, NI hc);
static N_INLINE(NI, rawGet__icZic_601)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t, NI32 key, NI* hc);
static N_INLINE(NI, hash__icZic_608)(NI32 x);
static N_INLINE(NIM_BOOL, mustRehash__icZic_1250)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_1409)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_1727)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q* t, tySequence__9cnx3zXnWzeclW8Ko4oUgAQ** data, NI32 key, NU32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__icZic_1908)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t, NI32 key, NI hc);
static N_INLINE(NI, rawGet__vm_3974)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__vm_4604)(tyObject_Table__NttoEzoiq5CiphZe81oadg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_4793)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_5105)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t, tySequence__squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vm_5283)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_7831)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key);
static N_INLINE(NI, rawGet__vm_7838)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__vm_8343)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_8532)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_8848)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, tySequence__pHNq3oXj9av2sEUdqaqeZjw** data, NimStringDesc* key, tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vm_9017)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_5605)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key);
static N_INLINE(NI, rawGet__vm_5612)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__vm_6091)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_6280)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_6592)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, tySequence__23SMqauuRsbDANhthj9bWlA** data, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vm_6761)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_3021)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__ast_777)(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g x);
static N_INLINE(NIM_BOOL, eqeq___ast_773)(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g a, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g b);
static N_INLINE(NIM_BOOL, mustRehash__semdata_2571)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_2757)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_3088)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t, tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__O5RcspOP32YJ4YtU5ppxxA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__semdata_3269)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_3594)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__semdata_1362)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_1548)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_1879)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t, tySequence__mWRMiYLthG9coLjkbElCxkw** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__semdata_2060)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_7282)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_7883)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_8072)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_8388)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t, tySequence__3MPVXAHA08SszBrU4ffqEg** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__159bHWBGAOOs6U7OZ9cQlO0g* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_8557)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_5725)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_6289)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_6478)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_6794)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t, tySequence__YCf5zJHm4JI06qpmKwPUWg** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_6963)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_4116)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_4663)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_4852)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_5172)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ* t, tySequence__bTDCDwD2P7TodzbAefLcSw** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modulegraphs_5341)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc);
static N_INLINE(NI, rawGet__modulegraphs_11271)(tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg t, NI32 key, NI* hc);
static N_INLINE(NI, rawGet__modulegraphs_12070)(tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw t, NI32 key, NI* hc);
static N_INLINE(NI, rawGet__cgen_27492)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__modules_249)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modules_402)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modules_706)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t, tySequence__fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__modules_875)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3014)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__modulegraphs_3391)(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___modulegraphs_3430)(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_7275)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key);
static N_INLINE(NI, rawGet__sigmatch_5600)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI* hc);
static N_INLINE(NI, rawGet__sighashes_619)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__sighashes_1133)(tyObject_Table__G1v8c16HePOldLeucwe05Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_1286)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sighashes_1590)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t, tySequence__fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__sighashes_1759)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI hc);
static N_INLINE(NIM_BOOL, mustRehash__importer_2459)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_2645)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_2972)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w* t, tySequence__E8pi9b5QNahsURYzXMjh3qw** data, NI key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__importer_3153)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI hc);
static N_INLINE(NI, rawGet__lambdalifting_545)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_1060)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_1213)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_1513)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ* t, tySequence__KHtASjJ36dOrANNiImdvag** data, NI key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__lambdalifting_1682)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t, NI key, NI hc);
static N_INLINE(NI, rawGet__lambdalifting_2345)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_2963)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_3116)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_3420)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, tySequence__YuKuU17u5ApAIki23DK9bJw** data, NI key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__lambdalifting_3589)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI hc);
static N_INLINE(NI, rawGet__liftdestructors_986)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__modulegraphs_8976)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___modulegraphs_8972)(tyArray__qtqsWM5aXmcpMIVmvq3kAA a, tyArray__qtqsWM5aXmcpMIVmvq3kAA b);
static N_INLINE(NIM_BOOL, mustRehash__liftdestructors_2434)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__liftdestructors_2587)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__liftdestructors_2891)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tySequence__1U9bG8RcAedEeYkQLZjVFKA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__liftdestructors_3060)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
static N_INLINE(NI, rawGet__closureiters_1926)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__closureiters_2477)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__closureiters_2630)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__closureiters_2930)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, tySequence__gVogYzwlGNrCaz6jQnXRzA** data, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__closureiters_3099)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI hc);
static N_INLINE(NI, rawGet__vmmarshal_455)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI* hc);
static N_INLINE(NI, hash__pureZjson_2965)(NI64 x);
static N_INLINE(NIM_BOOL, mustRehash__vmmarshal_975)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vmmarshal_1128)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vmmarshal_1432)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t, tySequence__s12F9c4cKfaapm8VzG9a1flQ** data, NI64 key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__vmmarshal_1601)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_118)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_217)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key);
static N_INLINE(NI, rawGet__options_865)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__lineinfos_230)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q i);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___options_1105)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q x, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q y);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___options_793)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw val);
static N_INLINE(NIM_BOOL, mustRehash__options_1249)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_1435)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_1779)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tySequence__TXIV9cpS1nTKZLiCib9cPT4g** data, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__options_1960)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, NI hc);
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw*, X5BX5D___vmprofiler_540)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__vmprofiler_607)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3587)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key);
static N_INLINE(NI, rawGet__sempass50_491)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t, NI key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__sempass50_1168)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sempass50_1321)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sempass50_1625)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ* t, tySequence__Hkw5zrAn53wlKDHdJF1GFA** data, NI key, tySequence__vGU8AyGT6KxtLJwEg0BpNw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__sempass50_1794)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t, NI key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, initTable__nilcheck_8806)(NI initialSize, tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* Result);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___nilcheck_7174)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t, NI key, NI16 val);
static N_INLINE(NI, rawGet__nilcheck_1984)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key, NI* hc);
static N_INLINE(NI, hash__nilcheck_1991)(NI x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___nilcheck_1923)(NI a, NI b);
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_7373)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_7559)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_7894)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t, tySequence__dAjyAaabi52TN36Jp0fAXQ** data, NI key, NI16 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__nilcheck_8075)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__nilcheck_2385)(NI key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___nilcheck_1927)(NI a);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__nilcheck_1977)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key);
static N_INLINE(NI, rawGet__injectdestructors_181)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__injectdestructors_188)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___injectdestructors_430)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ y);
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_708)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_894)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_1229)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tySequence__sh9b9afdJBB3bJbViXY7yNAg** data, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__injectdestructors_1410)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__injectdestructors_1802)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___injectdestructors_1854)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ x);
static N_INLINE(NI, rawGet__injectdestructors_4324)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__injectdestructors_118)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_4654)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_4840)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_5171)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tySequence__JGK6WZYU2JHWLoPdKRO4AQ** data, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__injectdestructors_5352)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__sighashes_2166)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
static N_INLINE(NIM_BOOL, mustRehash__sighashes_2297)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_2333)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__sighashes_2368)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tySequence__XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val);
static N_INLINE(NI, rawGet__cgen_1447)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__cgen_2082)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_2268)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_2599)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tySequence__sII3pVVRkIdBZ2HDPdZddA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__cgen_2780)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__cgen_3317)(tyArray__qtqsWM5aXmcpMIVmvq3kAA key) __attribute__((noreturn));
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___modulegraphs_8960)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__cgen_839)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key);
static N_INLINE(NIM_BOOL, mustRehash__cgen_1008)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_1044)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t);
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__cgen_1079)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, tySequence__jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val);
static N_INLINE(NI, rawGet__cgen_8109)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__cgen_8773)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_8959)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_9290)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ* t, tySequence__YT27F6szr8EQuTI39aUMYuA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__xfZjiVhSEwIz5DDkzuPwog val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__cgen_9471)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__pureZjson_366)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc);
static N_INLINE(NI, rawGet__pureZjson_2655)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__pureZjson_702)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__pureZjson_863)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__pureZjson_1274)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, tySequence__MlAD6nAPq9bHKla9cWiIZP0g** data, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__pureZjson_1556)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__icZdce_216)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__icZdce_581)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZdce_740)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZdce_1071)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA* t, tySequence__UuiPn6QjIiUTdSVwX2PZ6w** data, NimStringDesc* key, tyTuple__Ll5iolPASSzOEheeSNjmiw val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__icZdce_1252)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__packagesZdocutilsZrst_609)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrst_1125)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrst_1278)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrst_1582)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrst_1751)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__docgen_1180)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key);
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__docgen_1195)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__docgen_1703)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_1864)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_2275)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw* t, tySequence__n1XPc9anZlEQHQuS14lnGwg** data, NimStringDesc* key, tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ* val, NI hc, NI h);
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__docgen_2557)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__docgen_2861)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key, NI* hc);
static N_INLINE(NI, rawGet__docgen_3660)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__docgen_3952)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_4105)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_4409)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw* t, tySequence__hi4XF2kW6f9aL7Qx8ito3Rw** data, NimStringDesc* key, tySequence__EhfJ5cVWpPFG1tw09ap9co5g* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__docgen_4578)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_417)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI* hc);
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_995)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_1148)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_1448)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, tySequence__pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_1617)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI hc);
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_6268)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, NI* hc);
N_LIB_PRIVATE N_NIMCALL(NI, hash__packagesZdocutilsZrstgen_1990)(tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A x);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___packagesZdocutilsZrstgen_6486)(tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A x, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A y);
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_7061)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_7214)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ* t);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_7522)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ* t, tySequence__MVOolrgzxbiYsd7sgvFfFw** data, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, tySequence__CJOrWaM0fWekVRTE2AotGw* val, NI hc, NI h);
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_7691)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, NI hc);
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_1131)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key);
extern TNimType NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_;
extern TNimType NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_;
extern TNimType NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_;
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_2, "key not found: ", 15);
extern TNimType NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_;
extern TNimType NTItableref__c9cu1Wn3L8QykVYwvBtxVTQ_;
extern TNimType NTIkeyvaluepairseq__TXIV9cpS1nTKZLiCib9cPT4g_;
extern TNimType NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_;
extern TNimType NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_;
extern TNimType NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_;
extern TNimType NTIkeyvaluepairseq__FdVaeFbf9a05PXbYlgHL9ahw_;
extern TNimType NTIkeyvaluepairseq__1XdfDDoNvZorxGg2DV0QnA_;
extern TNimType NTIkeyvaluepairseq__23SMqauuRsbDANhthj9bWlA_;
extern TNimType NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_;
extern TNimType NTIkeyvaluepairseq__pHNq3oXj9av2sEUdqaqeZjw_;
extern TNimType NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_;
extern TNimType NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_;
extern TNimType NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_;
extern TNimType NTIkeyvaluepairseq__9bT7o0CflHuiE4VhmtqBPCw_;
extern TNimType NTIseqLpackeditemidT__vC9cvg0R8tfBaOXXi3sfMzw_;
extern TNimType NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_;
extern TNimType NTIkeyvaluepairseq__ChDZ6dokJ9aj9cg3KBoCU5vg_;
extern TNimType NTIseqLlazytypeT__O5RcspOP32YJ4YtU5ppxxA_;
extern TNimType NTIkeyvaluepairseq__mWRMiYLthG9coLjkbElCxkw_;
extern TNimType NTIseqLlazyinstantiationT__Or1y9bNpmj8PM8AcK9c9cg7RA_;
extern TNimType NTIkeyvaluepairseq__3MPVXAHA08SszBrU4ffqEg_;
extern TNimType NTIseqLLint_lazysymTT__159bHWBGAOOs6U7OZ9cQlO0g_;
extern TNimType NTIkeyvaluepairseq__YCf5zJHm4JI06qpmKwPUWg_;
extern TNimType NTIkeyvaluepairseq__bTDCDwD2P7TodzbAefLcSw_;
extern TNimType NTIseqLint5150T__48JTohSgTy339bRxHzUD8KA_;
extern TNimType NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_;
extern TNimType NTIkeyvaluepairseq__KHtASjJ36dOrANNiImdvag_;
extern TNimType NTIkeyvaluepairseq__YuKuU17u5ApAIki23DK9bJw_;
extern TNimType NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_;
extern TNimType NTIkeyvaluepairseq__s12F9c4cKfaapm8VzG9a1flQ_;
STRING_LITERAL(TM__4SoG2KRQy3oMm9aUzSLtGrA_3, "key not found", 13);
extern TNimType NTIkeyvaluepairseq__Hkw5zrAn53wlKDHdJF1GFA_;
extern TNimType NTIseqLLtlineinfo_psymTT__vGU8AyGT6KxtLJwEg0BpNw_;
extern TNimType NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_;
extern TNimType NTIkeyvaluepairseq__YT27F6szr8EQuTI39aUMYuA_;
extern TNimType NTIkeyvaluepairseq__sII3pVVRkIdBZ2HDPdZddA_;
extern TNimType NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_;
extern TNimType NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_;
extern TNimType NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_;
extern TNimType NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_;
extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
extern TNimType NTIorderedkeyvaluepairseq__MlAD6nAPq9bHKla9cWiIZP0g_;
extern TNimType NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_;
extern TNimType NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_;
extern TNimType NTIorderedkeyvaluepairseq__n1XPc9anZlEQHQuS14lnGwg_;
extern TNimType NTIkeyvaluepairseq__hi4XF2kW6f9aL7Qx8ito3Rw_;
extern TNimType NTIseqLtocitemT__EhfJ5cVWpPFG1tw09ap9co5g_;
extern TNimType NTIkeyvaluepairseq__MVOolrgzxbiYsd7sgvFfFw_;
extern TNimType NTIseqLindexentryT__CJOrWaM0fWekVRTE2AotGw_;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5209;
static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count) {
	NI result;
	result = (NI)0;
	result = nextPowerOfTwo__pureZmath_177((NI)((NI)((NI)(((NI) (count)) * ((NI) 3)) / ((NI) 2)) + ((NI) 4)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__astalgo_3033)(NI initialSize, tyObject_Table__GpIQt2f0xrasZObyH6X8bg* Result) {
	NI correctSizeX60gensym137_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym137_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) (correctSizeX60gensym137_))));
}
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;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = !((hcode == ((NI) 0)));
	return result;
}
static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash) {
	NI result;
	result = (NI)0;
	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
	return result;
}
static N_INLINE(NI, rawGet__astalgo_1188)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_124(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__astalgo_1178)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI default_0) {
	NI result;
	NI hcX60gensym97_;
	NI indexX60gensym97_;
	result = (NI)0;
	hcX60gensym97_ = (NI)0;
	indexX60gensym97_ = rawGet__astalgo_1188(t, key, (&hcX60gensym97_));
	{
		if (!(((NI) 0) <= indexX60gensym97_)) goto LA3_;
		result = t.data->data[indexX60gensym97_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__astalgo_1695)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__astalgo_2152)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t, tySequence__9chP3SzkaldXzawWQCDsqqg** data, void* key, NI val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__astalgo_1848)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t) {
	tySequence__9chP3SzkaldXzawWQCDsqqg* n;
	NI T1_;
	tySequence__9chP3SzkaldXzawWQCDsqqg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					void* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (void*)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__astalgo_2152(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__astalgo_2321)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg t, void* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___astalgo_1522)(tyObject_Table__GpIQt2f0xrasZObyH6X8bg* t, void* key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym102_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym102_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) (correctSizeX60gensym102_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__astalgo_1188((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym105_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym105_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__9chP3SzkaldXzawWQCDsqqg*) newSeq((&NTIkeyvaluepairseq__9chP3SzkaldXzawWQCDsqqg_), ((NI) (correctSizeX60gensym105_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__astalgo_1695((*t));
			if (!T18_) goto LA19_;
			enlarge__astalgo_1848(t);
			index = rawGetKnownHC__astalgo_2321((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__astalgo_2152(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__ast_1061)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest, source, ((size_t) (size)));
}
static N_INLINE(void, copyMem__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(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_5300)(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_5262)(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_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__system_5256((&gch__system_5209.zct), c);
}
static N_INLINE(void, decRef__system_5307)(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_5305(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_5262(src);
		incRef__system_5300(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__system_5262((*dest));
		decRef__system_5307(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__ast_1357)(NI key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___systemZdollars_3(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc**, X5BX5D___ast_1054)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t, NI key) {
	NimStringDesc** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NimStringDesc**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__ast_1061((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1357(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__lineinfos_324)(NI initialSize, tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* Result) {
	NI correctSizeX60gensym2_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym2_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym2_))));
}
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(NI, rawGet__lineinfos_449)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lineinfos_785)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = usrToCell__system_5262(p);
	decRef__system_5307(T1_);
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lineinfos_1242)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lineinfos_938)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t) {
	tySequence__7lEisrXlQEzwtUKW5pzRCw* n;
	NI T1_;
	tySequence__7lEisrXlQEzwtUKW5pzRCw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__lineinfos_1242(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__lineinfos_1411)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___lineinfos_388)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym5_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym5_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym5_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lineinfos_449((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym10_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym10_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym10_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__lineinfos_785((*t));
			if (!T18_) goto LA19_;
			enlarge__lineinfos_938(t);
			index = rawGetKnownHC__lineinfos_1411((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__lineinfos_1242(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__options_641)(NI initialSize, tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* Result) {
	NI correctSizeX60gensym16_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym16_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__TXIV9cpS1nTKZLiCib9cPT4g*) newSeq((&NTIkeyvaluepairseq__TXIV9cpS1nTKZLiCib9cPT4g_), ((NI) (correctSizeX60gensym16_))));
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q*, newTable__options_607)(NI initialSize) {
	tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* result;
	result = NIM_NIL;
	result = (tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q*) newObj((&NTItableref__c9cu1Wn3L8QykVYwvBtxVTQ_), sizeof(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q));
	initTable__options_641(initialSize, (&(*result)));
	return result;
}
static N_INLINE(NI, rawGet__nimblecmd_290)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault__nimblecmd_281)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA* Result) {
	NI hcX60gensym14_;
	NI indexX60gensym14_;
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
	hcX60gensym14_ = (NI)0;
	indexX60gensym14_ = rawGet__nimblecmd_290(t, key, (&hcX60gensym14_));
	{
		if (!(((NI) 0) <= indexX60gensym14_)) goto LA3_;
		unsureAsgnRef((void**) (&(*Result).Field0), copyString(t.data->data[indexX60gensym14_].Field2.Field0));
		unsureAsgnRef((void**) (&(*Result).Field1), copyString(t.data->data[indexX60gensym14_].Field2.Field1));
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__nimblecmd_623)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__nimblecmd_290(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__nimblecmd_849)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nimblecmd_1306)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA* t, tySequence__6j25whH7XTBoIXcM0x1T7A** data, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA val, NI hc, NI h) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	T2_ = NIM_NIL;
	T2_ = (*data)->data[h].Field2.Field0; (*data)->data[h].Field2.Field0 = copyStringRC1(val.Field0);
	if (T2_) nimGCunrefNoCycle(T2_);
	T3_ = NIM_NIL;
	T3_ = (*data)->data[h].Field2.Field1; (*data)->data[h].Field2.Field1 = copyStringRC1(val.Field1);
	if (T3_) nimGCunrefNoCycle(T3_);
	(*data)->data[h].Field0 = hc;
}
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);
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nimblecmd_1002)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA* t) {
	tySequence__6j25whH7XTBoIXcM0x1T7A* n;
	NI T1_;
	tySequence__6j25whH7XTBoIXcM0x1T7A* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__6j25whH7XTBoIXcM0x1T7A*) newSeq((&NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyTuple__UV3llMMYFckfui8YMBuUZA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					nimZeroMem((void*)(&T18_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
					T18_.Field0 = n->data[i].Field2.Field0;
					T18_.Field1 = n->data[i].Field2.Field1;
					unsureAsgnRef((void**)&n->data[i].Field2.Field0, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field2.Field1, NIM_NIL);
					rawInsert__nimblecmd_1306(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__nimblecmd_1475)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___nimblecmd_676)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA* t, NimStringDesc* key, tyTuple__UV3llMMYFckfui8YMBuUZA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym19_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym19_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__6j25whH7XTBoIXcM0x1T7A*) newSeq((&NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_), ((NI) (correctSizeX60gensym19_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__nimblecmd_290((*t), key, (&hc));
	{
		NimStringDesc* T10_;
		NimStringDesc* T11_;
		if (!(((NI) 0) <= index)) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = (*t).data->data[index].Field2.Field0; (*t).data->data[index].Field2.Field0 = copyStringRC1(val.Field0);
		if (T10_) nimGCunrefNoCycle(T10_);
		T11_ = NIM_NIL;
		T11_ = (*t).data->data[index].Field2.Field1; (*t).data->data[index].Field2.Field1 = copyStringRC1(val.Field1);
		if (T11_) nimGCunrefNoCycle(T11_);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T15_;
			NI correctSizeX60gensym22_;
			T15_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T15_ == ((NI) 0))) goto LA16_;
			correctSizeX60gensym22_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__6j25whH7XTBoIXcM0x1T7A*) newSeq((&NTIkeyvaluepairseq__6j25whH7XTBoIXcM0x1T7A_), ((NI) (correctSizeX60gensym22_))));
		}
		LA16_: ;
		{
			NIM_BOOL T20_;
			T20_ = (NIM_BOOL)0;
			T20_ = mustRehash__nimblecmd_849((*t));
			if (!T20_) goto LA21_;
			enlarge__nimblecmd_1002(t);
			index = rawGetKnownHC__nimblecmd_1475((*t), key, hc);
		}
		LA21_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__nimblecmd_1306(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__nimblecmd_1808)(tyObject_Table__d05ldtnZIkg8hVpY02dsdA t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__msgs_114)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__lineinfos_449(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__msgs_300)(NimStringDesc* key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T2_ = rawNewString((key ? key->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, key);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(NI32*, X5BX5D___msgs_233)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key) {
	NI32* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NI32*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__lineinfos_449((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9089)(NI initialSize, tyObject_Table__fdKWDDO1P17zvuQPReVgRA* Result) {
	NI correctSizeX60gensym109_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym109_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) (correctSizeX60gensym109_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9117)(NI initialSize, tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* Result) {
	NI correctSizeX60gensym111_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym111_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) (correctSizeX60gensym111_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9141)(NI initialSize, tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg* Result) {
	NI correctSizeX60gensym113_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym113_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__FdVaeFbf9a05PXbYlgHL9ahw*) newSeq((&NTIkeyvaluepairseq__FdVaeFbf9a05PXbYlgHL9ahw_), ((NI) (correctSizeX60gensym113_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9161)(NI initialSize, tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw* Result) {
	NI correctSizeX60gensym115_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym115_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__1XdfDDoNvZorxGg2DV0QnA*) newSeq((&NTIkeyvaluepairseq__1XdfDDoNvZorxGg2DV0QnA_), ((NI) (correctSizeX60gensym115_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9185)(NI initialSize, tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* Result) {
	NI correctSizeX60gensym117_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym117_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTIkeyvaluepairseq__23SMqauuRsbDANhthj9bWlA_), ((NI) (correctSizeX60gensym117_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9205)(NI initialSize, tyObject_Table__NttoEzoiq5CiphZe81oadg* Result) {
	NI correctSizeX60gensym119_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym119_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) (correctSizeX60gensym119_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9227)(NI initialSize, tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* Result) {
	NI correctSizeX60gensym121_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym121_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTIkeyvaluepairseq__pHNq3oXj9av2sEUdqaqeZjw_), ((NI) (correctSizeX60gensym121_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9247)(NI initialSize, tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* Result) {
	NI correctSizeX60gensym123_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym123_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) (correctSizeX60gensym123_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__modulegraphs_9267)(NI initialSize, tyObject_Table__G1v8c16HePOldLeucwe05Q* Result) {
	NI correctSizeX60gensym125_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym125_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) (correctSizeX60gensym125_))));
}
static N_INLINE(NIM_BOOL, mustRehash__ast_1582)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__ast_2039)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t, tySequence__7s5HyddQ0f9bxMNILHrXwJQ** data, NI key, NimStringDesc* val, NI hc, NI h) {
	NimStringDesc* T1_;
	(*data)->data[h].Field1 = key;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(val);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__ast_1735)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t) {
	tySequence__7s5HyddQ0f9bxMNILHrXwJQ* n;
	NI T1_;
	tySequence__7s5HyddQ0f9bxMNILHrXwJQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__7s5HyddQ0f9bxMNILHrXwJQ*) newSeq((&NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					NimStringDesc* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__ast_2039(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__ast_2208)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___ast_1409)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t, NI key, NimStringDesc* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym8_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym8_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7s5HyddQ0f9bxMNILHrXwJQ*) newSeq((&NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_), ((NI) (correctSizeX60gensym8_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__ast_1061((*t), key, (&hc));
	{
		NimStringDesc* T10_;
		if (!(((NI) 0) <= index)) goto LA8_;
		T10_ = NIM_NIL;
		T10_ = (*t).data->data[index].Field2; (*t).data->data[index].Field2 = copyStringRC1(val);
		if (T10_) nimGCunrefNoCycle(T10_);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T14_;
			NI correctSizeX60gensym11_;
			T14_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T14_ == ((NI) 0))) goto LA15_;
			correctSizeX60gensym11_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7s5HyddQ0f9bxMNILHrXwJQ*) newSeq((&NTIkeyvaluepairseq__7s5HyddQ0f9bxMNILHrXwJQ_), ((NI) (correctSizeX60gensym11_))));
		}
		LA15_: ;
		{
			NIM_BOOL T19_;
			T19_ = (NIM_BOOL)0;
			T19_ = mustRehash__ast_1582((*t));
			if (!T19_) goto LA20_;
			enlarge__ast_1735(t);
			index = rawGetKnownHC__ast_2208((*t), key, hc);
		}
		LA20_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__ast_2039(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NIM_BOOL, isEmpty__pureZcollectionsZtables_28)(NI hcode) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = (hcode == ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__ast_2493)(tyObject_Table__31ocj9bgsJ0gGd8iUZbdeJQ* t, NI key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__ast_1061((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					(*t).data->data[i].Field1 = 0;
					asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_].Field0 = (*t).data->data[i].Field0;
					(*t).data->data[jX60gensym36_].Field1 = (*t).data->data[i].Field1;
					asgnRef((void**) (&(*t).data->data[jX60gensym36_].Field2), (*t).data->data[i].Field2);
					(*t).data->data[i].Field0 = 0;
					(*t).data->data[i].Field1 = 0;
					unsureAsgnRef((void**)&(*t).data->data[i].Field2, NIM_NIL);
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
static N_INLINE(NI, hash__ast_780)(NI32 x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_9637)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_780(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_9944)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_10445)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t, tySequence__kxu4GK0onha2t9bo86mdVAg** data, NI32 key, NI32 val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_10133)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t) {
	tySequence__kxu4GK0onha2t9bo86mdVAg* n;
	NI T1_;
	tySequence__kxu4GK0onha2t9bo86mdVAg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__modulegraphs_10445(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_10614)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKeyOrPut__modulegraphs_9563)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ* t, NI32 key, NI32 val) {
	NIM_BOOL result;
	NI hc;
	NI index;
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym141_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym141_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) (correctSizeX60gensym141_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_9637((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		result = NIM_FALSE;
		{
			NI T12_;
			NI correctSizeX60gensym146_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym146_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__kxu4GK0onha2t9bo86mdVAg*) newSeq((&NTIkeyvaluepairseq__kxu4GK0onha2t9bo86mdVAg_), ((NI) (correctSizeX60gensym146_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__modulegraphs_9944((*t));
			if (!T17_) goto LA18_;
			enlarge__modulegraphs_10133(t);
			index = rawGetKnownHC__modulegraphs_10614((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_10445(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	goto LA6_;
	LA8_: ;
	{
		result = NIM_TRUE;
	}
	LA6_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__icZic_6271)(NI initialSize, tyObject_Table__CE4eiu6FavV1vmUiTXQ70g* Result) {
	NI correctSizeX60gensym242_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym242_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__9bT7o0CflHuiE4VhmtqBPCw*) newSeq((&NTIkeyvaluepairseq__9bT7o0CflHuiE4VhmtqBPCw_), ((NI) (correctSizeX60gensym242_))));
}
static N_INLINE(NI, hash__idents_217)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* x) {
	NI result;
	result = (NI)0;
	result = (*x).h;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___idents_220)(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* a, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* b) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a == 0);
		if (T3_) goto LA4_;
		T3_ = (b == 0);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = (a == b);
	}
	goto LA1_;
	LA5_: ;
	{
		result = ((*a).id == (*b).id);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__icZic_6479)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__idents_217(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___idents_220(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZic_6778)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_7263)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g* t, tySequence__9bT7o0CflHuiE4VhmtqBPCw** data, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, tySequence__vC9cvg0R8tfBaOXXi3sfMzw* val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1), key);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLpackeditemidT__vC9cvg0R8tfBaOXXi3sfMzw_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_6937)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g* t) {
	tySequence__9bT7o0CflHuiE4VhmtqBPCw* n;
	NI T1_;
	tySequence__9bT7o0CflHuiE4VhmtqBPCw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__9bT7o0CflHuiE4VhmtqBPCw*) newSeq((&NTIkeyvaluepairseq__9bT7o0CflHuiE4VhmtqBPCw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T17_;
					tySequence__vC9cvg0R8tfBaOXXi3sfMzw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__icZic_7263(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__icZic_7444)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___idents_220(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__vC9cvg0R8tfBaOXXi3sfMzw**, mgetOrPut__icZic_6415)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g* t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key, tySequence__vC9cvg0R8tfBaOXXi3sfMzw* val) {
	tySequence__vC9cvg0R8tfBaOXXi3sfMzw** result;
	NI hc;
	NI index;
	result = (tySequence__vC9cvg0R8tfBaOXXi3sfMzw**)0;
	{
		NI T3_;
		NI correctSizeX60gensym248_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym248_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__9bT7o0CflHuiE4VhmtqBPCw*) newSeq((&NTIkeyvaluepairseq__9bT7o0CflHuiE4VhmtqBPCw_), ((NI) (correctSizeX60gensym248_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__icZic_6479((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym253_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym253_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__9bT7o0CflHuiE4VhmtqBPCw*) newSeq((&NTIkeyvaluepairseq__9bT7o0CflHuiE4VhmtqBPCw_), ((NI) (correctSizeX60gensym253_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__icZic_6778((*t));
			if (!T17_) goto LA18_;
			enlarge__icZic_6937(t);
			index = rawGetKnownHC__icZic_7444((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__icZic_7263(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, hash__icZic_608)(NI32 x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__icZic_601)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__icZic_608(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU32, getOrDefault__icZic_592)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t, NI32 key) {
	NU32 result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NU32)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__icZic_601(t, key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = t.data->data[indexX60gensym22_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZic_1250)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZic_1727)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q* t, tySequence__9cnx3zXnWzeclW8Ko4oUgAQ** data, NI32 key, NU32 val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZic_1409)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q* t) {
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* n;
	NI T1_;
	tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__9cnx3zXnWzeclW8Ko4oUgAQ*) newSeq((&NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					NU32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NU32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__icZic_1727(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__icZic_1908)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___icZic_1069)(tyObject_Table__TRm6MPqklA8EYBmBMY117Q* t, NI32 key, NU32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym37_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym37_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__9cnx3zXnWzeclW8Ko4oUgAQ*) newSeq((&NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_), ((NI) (correctSizeX60gensym37_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__icZic_601((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym40_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym40_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__9cnx3zXnWzeclW8Ko4oUgAQ*) newSeq((&NTIkeyvaluepairseq__9cnx3zXnWzeclW8Ko4oUgAQ_), ((NI) (correctSizeX60gensym40_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__icZic_1250((*t));
			if (!T18_) goto LA19_;
			enlarge__icZic_1409(t);
			index = rawGetKnownHC__icZic_1908((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__icZic_1727(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__vm_3974)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, getOrDefault__vm_3965)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key) {
	NI64 result;
	NI hcX60gensym1022_;
	NI indexX60gensym1022_;
	result = (NI64)0;
	hcX60gensym1022_ = (NI)0;
	indexX60gensym1022_ = rawGet__vm_3974(t, key, (&hcX60gensym1022_));
	{
		if (!(((NI) 0) <= indexX60gensym1022_)) goto LA3_;
		result = t.data->data[indexX60gensym1022_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vm_4604)(tyObject_Table__NttoEzoiq5CiphZe81oadg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_5105)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t, tySequence__squ9b9bUH4OLHf6cEMrt6hVA** data, NimStringDesc* key, NI64 val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_4793)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t) {
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* n;
	NI T1_;
	tySequence__squ9b9bUH4OLHf6cEMrt6hVA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI64 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI64)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__vm_5105(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vm_5283)(tyObject_Table__NttoEzoiq5CiphZe81oadg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vm_4407)(tyObject_Table__NttoEzoiq5CiphZe81oadg* t, NimStringDesc* key, NI64 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym1030_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym1030_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) (correctSizeX60gensym1030_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vm_3974((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym1033_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym1033_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__squ9b9bUH4OLHf6cEMrt6hVA*) newSeq((&NTIkeyvaluepairseq__squ9b9bUH4OLHf6cEMrt6hVA_), ((NI) (correctSizeX60gensym1033_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vm_4604((*t));
			if (!T18_) goto LA19_;
			enlarge__vm_4793(t);
			index = rawGetKnownHC__vm_5283((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vm_5105(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__vm_7838)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_7831)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__vm_7838(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vm_7825)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__vm_7831(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vm_8343)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_8848)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, tySequence__pHNq3oXj9av2sEUdqaqeZjw** data, NimStringDesc* key, tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field2.root), val.root);
	(*data)->data[h].Field2.entries = val.entries;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_8532)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t) {
	tySequence__pHNq3oXj9av2sEUdqaqeZjw* n;
	NI T1_;
	tySequence__pHNq3oXj9av2sEUdqaqeZjw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTIkeyvaluepairseq__pHNq3oXj9av2sEUdqaqeZjw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					nimZeroMem((void*)(&T18_), sizeof(tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg));
					T18_.root = n->data[i].Field2.root;
					T18_.entries = n->data[i].Field2.entries;
					unsureAsgnRef((void**)&n->data[i].Field2.root, NIM_NIL);
					n->data[i].Field2.entries = 0;
					rawInsert__vm_8848(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vm_9017)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vm_8146)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, NimStringDesc* key, tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym1077_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym1077_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTIkeyvaluepairseq__pHNq3oXj9av2sEUdqaqeZjw_), ((NI) (correctSizeX60gensym1077_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vm_7838((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2.root), val.root);
		(*t).data->data[index].Field2.entries = val.entries;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym1080_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym1080_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__pHNq3oXj9av2sEUdqaqeZjw*) newSeq((&NTIkeyvaluepairseq__pHNq3oXj9av2sEUdqaqeZjw_), ((NI) (correctSizeX60gensym1080_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vm_8343((*t));
			if (!T18_) goto LA19_;
			enlarge__vm_8532(t);
			index = rawGetKnownHC__vm_9017((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vm_8848(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg*, X5BX5D___vm_9319)(tyObject_Table__nagDFX4QHx0s6Fvma9blmSg* t, NimStringDesc* key) {
	tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__vm_7838((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__vm_5612)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vm_5605)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__vm_5612(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vm_5599)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__vm_5605(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vm_6091)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vm_6592)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, tySequence__23SMqauuRsbDANhthj9bWlA** data, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vm_6280)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t) {
	tySequence__23SMqauuRsbDANhthj9bWlA* n;
	NI T1_;
	tySequence__23SMqauuRsbDANhthj9bWlA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTIkeyvaluepairseq__23SMqauuRsbDANhthj9bWlA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__vm_6592(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vm_6761)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vm_5894)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, NimStringDesc* key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym1047_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym1047_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTIkeyvaluepairseq__23SMqauuRsbDANhthj9bWlA_), ((NI) (correctSizeX60gensym1047_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vm_5612((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym1050_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym1050_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__23SMqauuRsbDANhthj9bWlA*) newSeq((&NTIkeyvaluepairseq__23SMqauuRsbDANhthj9bWlA_), ((NI) (correctSizeX60gensym1050_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vm_6091((*t));
			if (!T18_) goto LA19_;
			enlarge__vm_6280(t);
			index = rawGetKnownHC__vm_6761((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vm_6592(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___vm_7063)(tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA* t, NimStringDesc* key) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__vm_5612((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym22_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___ast_773)(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g a, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g b) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T1_ = (a.item == b.item);
	if (!(T1_)) goto LA2_;
	T1_ = (a.module == b.module);
	LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_3021)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_777(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__semdata_2571)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_3088)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t, tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__O5RcspOP32YJ4YtU5ppxxA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLlazytypeT__O5RcspOP32YJ4YtU5ppxxA_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_2757)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t) {
	tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* n;
	NI T1_;
	tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg*) newSeq((&NTIkeyvaluepairseq__ChDZ6dokJ9aj9cg3KBoCU5vg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
					tySequence__O5RcspOP32YJ4YtU5ppxxA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__semdata_3088(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__semdata_3269)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__O5RcspOP32YJ4YtU5ppxxA**, mgetOrPut__semdata_2428)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__O5RcspOP32YJ4YtU5ppxxA* val) {
	tySequence__O5RcspOP32YJ4YtU5ppxxA** result;
	NI hc;
	NI index;
	result = (tySequence__O5RcspOP32YJ4YtU5ppxxA**)0;
	{
		NI T3_;
		NI correctSizeX60gensym134_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym134_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg*) newSeq((&NTIkeyvaluepairseq__ChDZ6dokJ9aj9cg3KBoCU5vg_), ((NI) (correctSizeX60gensym134_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_3021((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym137_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym137_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg*) newSeq((&NTIkeyvaluepairseq__ChDZ6dokJ9aj9cg3KBoCU5vg_), ((NI) (correctSizeX60gensym137_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__semdata_2571((*t));
			if (!T17_) goto LA18_;
			enlarge__semdata_2757(t);
			index = rawGetKnownHC__semdata_3269((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__semdata_3088(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_3594)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_777(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__semdata_1362)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__semdata_1879)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t, tySequence__mWRMiYLthG9coLjkbElCxkw** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLlazyinstantiationT__Or1y9bNpmj8PM8AcK9c9cg7RA_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__semdata_1548)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t) {
	tySequence__mWRMiYLthG9coLjkbElCxkw* n;
	NI T1_;
	tySequence__mWRMiYLthG9coLjkbElCxkw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__mWRMiYLthG9coLjkbElCxkw*) newSeq((&NTIkeyvaluepairseq__mWRMiYLthG9coLjkbElCxkw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
					tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__semdata_1879(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__semdata_2060)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA**, mgetOrPut__semdata_1219)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* val) {
	tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA** result;
	NI hc;
	NI index;
	result = (tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA**)0;
	{
		NI T3_;
		NI correctSizeX60gensym118_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym118_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__mWRMiYLthG9coLjkbElCxkw*) newSeq((&NTIkeyvaluepairseq__mWRMiYLthG9coLjkbElCxkw_), ((NI) (correctSizeX60gensym118_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_3594((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym121_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym121_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__mWRMiYLthG9coLjkbElCxkw*) newSeq((&NTIkeyvaluepairseq__mWRMiYLthG9coLjkbElCxkw_), ((NI) (correctSizeX60gensym121_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__semdata_1362((*t));
			if (!T17_) goto LA18_;
			enlarge__semdata_1548(t);
			index = rawGetKnownHC__semdata_2060((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__semdata_1879(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_7282)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_777(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_7883)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_8388)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t, tySequence__3MPVXAHA08SszBrU4ffqEg** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__159bHWBGAOOs6U7OZ9cQlO0g* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLLint_lazysymTT__159bHWBGAOOs6U7OZ9cQlO0g_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_8072)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t) {
	tySequence__3MPVXAHA08SszBrU4ffqEg* n;
	NI T1_;
	tySequence__3MPVXAHA08SszBrU4ffqEg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__3MPVXAHA08SszBrU4ffqEg*) newSeq((&NTIkeyvaluepairseq__3MPVXAHA08SszBrU4ffqEg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
					tySequence__159bHWBGAOOs6U7OZ9cQlO0g* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__modulegraphs_8388(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_8557)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__159bHWBGAOOs6U7OZ9cQlO0g**, mgetOrPut__modulegraphs_7738)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tySequence__159bHWBGAOOs6U7OZ9cQlO0g* val) {
	tySequence__159bHWBGAOOs6U7OZ9cQlO0g** result;
	NI hc;
	NI index;
	result = (tySequence__159bHWBGAOOs6U7OZ9cQlO0g**)0;
	{
		NI T3_;
		NI correctSizeX60gensym85_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym85_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__3MPVXAHA08SszBrU4ffqEg*) newSeq((&NTIkeyvaluepairseq__3MPVXAHA08SszBrU4ffqEg_), ((NI) (correctSizeX60gensym85_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_7282((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym88_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym88_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__3MPVXAHA08SszBrU4ffqEg*) newSeq((&NTIkeyvaluepairseq__3MPVXAHA08SszBrU4ffqEg_), ((NI) (correctSizeX60gensym88_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__modulegraphs_7883((*t));
			if (!T17_) goto LA18_;
			enlarge__modulegraphs_8072(t);
			index = rawGetKnownHC__modulegraphs_8557((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_8388(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_5725)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_777(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_6289)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_6794)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t, tySequence__YCf5zJHm4JI06qpmKwPUWg** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2.id = val.id;
	asgnRef((void**) (&(*data)->data[h].Field2.sym), val.sym);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_6478)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t) {
	tySequence__YCf5zJHm4JI06qpmKwPUWg* n;
	NI T1_;
	tySequence__YCf5zJHm4JI06qpmKwPUWg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__YCf5zJHm4JI06qpmKwPUWg*) newSeq((&NTIkeyvaluepairseq__YCf5zJHm4JI06qpmKwPUWg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
					tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
					nimZeroMem((void*)(&T18_), sizeof(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA));
					T18_.id = n->data[i].Field2.id;
					T18_.sym = n->data[i].Field2.sym;
					n->data[i].Field2.id.module = 0;
					n->data[i].Field2.id.packed_0.module = 0;
					n->data[i].Field2.id.packed_0.item = 0;
					unsureAsgnRef((void**)&n->data[i].Field2.sym, NIM_NIL);
					rawInsert__modulegraphs_6794(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_6963)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___modulegraphs_6092)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym69_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym69_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__YCf5zJHm4JI06qpmKwPUWg*) newSeq((&NTIkeyvaluepairseq__YCf5zJHm4JI06qpmKwPUWg_), ((NI) (correctSizeX60gensym69_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_5725((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2.id = val.id;
		asgnRef((void**) (&(*t).data->data[index].Field2.sym), val.sym);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym72_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym72_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__YCf5zJHm4JI06qpmKwPUWg*) newSeq((&NTIkeyvaluepairseq__YCf5zJHm4JI06qpmKwPUWg_), ((NI) (correctSizeX60gensym72_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__modulegraphs_6289((*t));
			if (!T18_) goto LA19_;
			enlarge__modulegraphs_6478(t);
			index = rawGetKnownHC__modulegraphs_6963((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_6794(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__vC9cvg0R8tfBaOXXi3sfMzw*, getOrDefault__icZic_8574)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* key) {
	tySequence__vC9cvg0R8tfBaOXXi3sfMzw* result;
	NI hcX60gensym290_;
	NI indexX60gensym290_;
	result = NIM_NIL;
	hcX60gensym290_ = (NI)0;
	indexX60gensym290_ = rawGet__icZic_6479(t, key, (&hcX60gensym290_));
	{
		if (!(((NI) 0) <= indexX60gensym290_)) goto LA3_;
		genericSeqAssign((&result), t.data->data[indexX60gensym290_].Field2, (&NTIseqLpackeditemidT__vC9cvg0R8tfBaOXXi3sfMzw_));
	}
	LA3_: ;
	return result;
}
static N_INLINE(NI, rawGet__modulegraphs_4116)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_777(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getOrDefault__modulegraphs_4107)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	NI hcX60gensym42_;
	NI indexX60gensym42_;
	result = NIM_NIL;
	hcX60gensym42_ = (NI)0;
	indexX60gensym42_ = rawGet__modulegraphs_4116(t, key, (&hcX60gensym42_));
	{
		if (!(((NI) 0) <= indexX60gensym42_)) goto LA3_;
		result = t.data->data[indexX60gensym42_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modulegraphs_4663)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modulegraphs_5172)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ* t, tySequence__bTDCDwD2P7TodzbAefLcSw** data, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modulegraphs_4852)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ* t) {
	tySequence__bTDCDwD2P7TodzbAefLcSw* n;
	NI T1_;
	tySequence__bTDCDwD2P7TodzbAefLcSw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__bTDCDwD2P7TodzbAefLcSw*) newSeq((&NTIkeyvaluepairseq__bTDCDwD2P7TodzbAefLcSw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__modulegraphs_5172(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modulegraphs_5341)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_773(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___modulegraphs_4466)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym47_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym47_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__bTDCDwD2P7TodzbAefLcSw*) newSeq((&NTIkeyvaluepairseq__bTDCDwD2P7TodzbAefLcSw_), ((NI) (correctSizeX60gensym47_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__modulegraphs_4116((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym50_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym50_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__bTDCDwD2P7TodzbAefLcSw*) newSeq((&NTIkeyvaluepairseq__bTDCDwD2P7TodzbAefLcSw_), ((NI) (correctSizeX60gensym50_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__modulegraphs_4663((*t));
			if (!T18_) goto LA19_;
			enlarge__modulegraphs_4852(t);
			index = rawGetKnownHC__modulegraphs_5341((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modulegraphs_5172(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__modulegraphs_11271)(tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_780(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__modulegraphs_11265)(tyObject_Table__eJdcv3ds6oTpWvWwTDiw9bg* t, NI32 key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__modulegraphs_11271((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					(*t).data->data[i].Field1 = 0;
					asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_].Field0 = (*t).data->data[i].Field0;
					(*t).data->data[jX60gensym36_].Field1 = (*t).data->data[i].Field1;
					asgnRef((void**) (&(*t).data->data[jX60gensym36_].Field2), (*t).data->data[i].Field2);
					(*t).data->data[i].Field0 = 0;
					(*t).data->data[i].Field1 = 0;
					unsureAsgnRef((void**)&(*t).data->data[i].Field2, NIM_NIL);
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
static N_INLINE(NI, rawGet__modulegraphs_12070)(tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_780(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__modulegraphs_12064)(tyObject_Table__Jh7Ii8xuFcs9bwfmKa4J4dw* t, NI32 key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__modulegraphs_12070((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					(*t).data->data[i].Field1 = 0;
					asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_].Field0 = (*t).data->data[i].Field0;
					(*t).data->data[jX60gensym36_].Field1 = (*t).data->data[i].Field1;
					asgnRef((void**) (&(*t).data->data[jX60gensym36_].Field2), (*t).data->data[i].Field2);
					(*t).data->data[i].Field0 = 0;
					(*t).data->data[i].Field1 = 0;
					unsureAsgnRef((void**)&(*t).data->data[i].Field2, NIM_NIL);
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
static N_INLINE(NI, rawGet__cgen_27492)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__ast_780(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__modules_249)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__modules_706)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t, tySequence__fdmz6VkIf1ewwrssKYqRFg** data, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLint5150T__48JTohSgTy339bRxHzUD8KA_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__modules_402)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t) {
	tySequence__fdmz6VkIf1ewwrssKYqRFg* n;
	NI T1_;
	tySequence__fdmz6VkIf1ewwrssKYqRFg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI32 T17_;
					tySequence__48JTohSgTy339bRxHzUD8KA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI32)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__modules_706(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__modules_875)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA t, NI32 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__48JTohSgTy339bRxHzUD8KA**, mgetOrPut__modules_128)(tyObject_Table__fdKWDDO1P17zvuQPReVgRA* t, NI32 key, tySequence__48JTohSgTy339bRxHzUD8KA* val) {
	tySequence__48JTohSgTy339bRxHzUD8KA** result;
	NI hc;
	NI index;
	result = (tySequence__48JTohSgTy339bRxHzUD8KA**)0;
	{
		NI T3_;
		NI correctSizeX60gensym13_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym13_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) (correctSizeX60gensym13_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__cgen_27492((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym16_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym16_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__fdmz6VkIf1ewwrssKYqRFg*) newSeq((&NTIkeyvaluepairseq__fdmz6VkIf1ewwrssKYqRFg_), ((NI) (correctSizeX60gensym16_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__modules_249((*t));
			if (!T17_) goto LA18_;
			enlarge__modules_402(t);
			index = rawGetKnownHC__modules_875((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__modules_706(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__icZic_8727)(tyObject_Table__CE4eiu6FavV1vmUiTXQ70g t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3014)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__modulegraphs_3021(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_3008)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__modulegraphs_3014(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__modulegraphs_3391)(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___modulegraphs_3430(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tySequence__O5RcspOP32YJ4YtU5ppxxA**, X5BX5D___modulegraphs_3324)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	tySequence__O5RcspOP32YJ4YtU5ppxxA** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__O5RcspOP32YJ4YtU5ppxxA**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_3021((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3391(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_7275)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__modulegraphs_7282(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_7269)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__modulegraphs_7275(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__159bHWBGAOOs6U7OZ9cQlO0g**, X5BX5D___modulegraphs_7585)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	tySequence__159bHWBGAOOs6U7OZ9cQlO0g** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__159bHWBGAOOs6U7OZ9cQlO0g**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_7282((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3391(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__sigmatch_5600)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sigmatch_5590)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI default_0) {
	NI result;
	NI hcX60gensym892_;
	NI indexX60gensym892_;
	result = (NI)0;
	hcX60gensym892_ = (NI)0;
	indexX60gensym892_ = rawGet__sigmatch_5600(t, key, (&hcX60gensym892_));
	{
		if (!(((NI) 0) <= indexX60gensym892_)) goto LA3_;
		result = t.data->data[indexX60gensym892_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__sighashes_619)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__sighashes_1133)(tyObject_Table__G1v8c16HePOldLeucwe05Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sighashes_1590)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t, tySequence__fIB1rTQ55aFonoft9a9bmljQ** data, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	nimCopyMem((void*)(*data)->data[h].Field2, (NIM_CONST void*)val, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_1286)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t) {
	tySequence__fIB1rTQ55aFonoft9a9bmljQ* n;
	NI T1_;
	tySequence__fIB1rTQ55aFonoft9a9bmljQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					nimCopyMem((void*)T18_, (NIM_CONST void*)n->data[i].Field2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field2, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					rawInsert__sighashes_1590(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__sighashes_1759)(tyObject_Table__G1v8c16HePOldLeucwe05Q t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___sighashes_960)(tyObject_Table__G1v8c16HePOldLeucwe05Q* t, NI key, tyArray__qtqsWM5aXmcpMIVmvq3kAA val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym99_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym99_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) (correctSizeX60gensym99_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__sighashes_619((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		nimCopyMem((void*)(*t).data->data[index].Field2, (NIM_CONST void*)val, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym102_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym102_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__fIB1rTQ55aFonoft9a9bmljQ*) newSeq((&NTIkeyvaluepairseq__fIB1rTQ55aFonoft9a9bmljQ_), ((NI) (correctSizeX60gensym102_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__sighashes_1133((*t));
			if (!T18_) goto LA19_;
			enlarge__sighashes_1286(t);
			index = rawGetKnownHC__sighashes_1759((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__sighashes_1590(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__vmgen_3592)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key) {
	NI result;
	NI hcX60gensym635_;
	NI indexX60gensym635_;
	result = (NI)0;
	hcX60gensym635_ = (NI)0;
	indexX60gensym635_ = rawGet__sigmatch_5600(t, key, (&hcX60gensym635_));
	{
		if (!(((NI) 0) <= indexX60gensym635_)) goto LA3_;
		result = t.data->data[indexX60gensym635_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__importer_2459)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_2972)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w* t, tySequence__E8pi9b5QNahsURYzXMjh3qw** data, NI key, NI val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_2645)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w* t) {
	tySequence__E8pi9b5QNahsURYzXMjh3qw* n;
	NI T1_;
	tySequence__E8pi9b5QNahsURYzXMjh3qw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__E8pi9b5QNahsURYzXMjh3qw*) newSeq((&NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__importer_2972(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__importer_3153)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___importer_2260)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w* t, NI key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym103_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym103_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__E8pi9b5QNahsURYzXMjh3qw*) newSeq((&NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_), ((NI) (correctSizeX60gensym103_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__sigmatch_5600((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym106_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym106_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__E8pi9b5QNahsURYzXMjh3qw*) newSeq((&NTIkeyvaluepairseq__E8pi9b5QNahsURYzXMjh3qw_), ((NI) (correctSizeX60gensym106_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__importer_2459((*t));
			if (!T18_) goto LA19_;
			enlarge__importer_2645(t);
			index = rawGetKnownHC__importer_3153((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__importer_2972(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__lambdalifting_397)(NI initialSize, tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ* Result) {
	NI correctSizeX60gensym48_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym48_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__KHtASjJ36dOrANNiImdvag*) newSeq((&NTIkeyvaluepairseq__KHtASjJ36dOrANNiImdvag_), ((NI) (correctSizeX60gensym48_))));
}
static N_INLINE(NI, rawGet__lambdalifting_545)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getOrDefault__lambdalifting_536)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t, NI key) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	NI hcX60gensym52_;
	NI indexX60gensym52_;
	result = NIM_NIL;
	hcX60gensym52_ = (NI)0;
	indexX60gensym52_ = rawGet__lambdalifting_545(t, key, (&hcX60gensym52_));
	{
		if (!(((NI) 0) <= indexX60gensym52_)) goto LA3_;
		result = t.data->data[indexX60gensym52_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_1060)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_1513)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ* t, tySequence__KHtASjJ36dOrANNiImdvag** data, NI key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_1213)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ* t) {
	tySequence__KHtASjJ36dOrANNiImdvag* n;
	NI T1_;
	tySequence__KHtASjJ36dOrANNiImdvag* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__KHtASjJ36dOrANNiImdvag*) newSeq((&NTIkeyvaluepairseq__KHtASjJ36dOrANNiImdvag_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__lambdalifting_1513(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__lambdalifting_1682)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___lambdalifting_887)(tyObject_Table__8THwbvZjDjJdCh2k7PwMaQ* t, NI key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym58_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym58_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__KHtASjJ36dOrANNiImdvag*) newSeq((&NTIkeyvaluepairseq__KHtASjJ36dOrANNiImdvag_), ((NI) (correctSizeX60gensym58_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lambdalifting_545((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym61_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym61_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__KHtASjJ36dOrANNiImdvag*) newSeq((&NTIkeyvaluepairseq__KHtASjJ36dOrANNiImdvag_), ((NI) (correctSizeX60gensym61_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__lambdalifting_1060((*t));
			if (!T18_) goto LA19_;
			enlarge__lambdalifting_1213(t);
			index = rawGetKnownHC__lambdalifting_1682((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__lambdalifting_1513(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__lambdalifting_2160)(NI initialSize, tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* Result) {
	NI correctSizeX60gensym101_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym101_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTIkeyvaluepairseq__YuKuU17u5ApAIki23DK9bJw_), ((NI) (correctSizeX60gensym101_))));
}
static N_INLINE(NI, rawGet__lambdalifting_2345)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getOrDefault__lambdalifting_2336)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI hcX60gensym111_;
	NI indexX60gensym111_;
	result = NIM_NIL;
	hcX60gensym111_ = (NI)0;
	indexX60gensym111_ = rawGet__lambdalifting_2345(t, key, (&hcX60gensym111_));
	{
		if (!(((NI) 0) <= indexX60gensym111_)) goto LA3_;
		result = t.data->data[indexX60gensym111_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lambdalifting_2963)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lambdalifting_3420)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, tySequence__YuKuU17u5ApAIki23DK9bJw** data, NI key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lambdalifting_3116)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t) {
	tySequence__YuKuU17u5ApAIki23DK9bJw* n;
	NI T1_;
	tySequence__YuKuU17u5ApAIki23DK9bJw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTIkeyvaluepairseq__YuKuU17u5ApAIki23DK9bJw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__lambdalifting_3420(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__lambdalifting_3589)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___lambdalifting_2790)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, NI key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym120_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym120_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTIkeyvaluepairseq__YuKuU17u5ApAIki23DK9bJw_), ((NI) (correctSizeX60gensym120_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__lambdalifting_2345((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym123_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym123_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__YuKuU17u5ApAIki23DK9bJw*) newSeq((&NTIkeyvaluepairseq__YuKuU17u5ApAIki23DK9bJw_), ((NI) (correctSizeX60gensym123_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__lambdalifting_2963((*t));
			if (!T18_) goto LA19_;
			enlarge__lambdalifting_3116(t);
			index = rawGetKnownHC__lambdalifting_3589((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__lambdalifting_3420(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**, X5BX5D___lambdalifting_4022)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg* t, NI key) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__lambdalifting_2345((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym22_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1357(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__liftdestructors_986)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__modulegraphs_8976(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___modulegraphs_8972(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getOrDefault__liftdestructors_977)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
	NI hcX60gensym113_;
	NI indexX60gensym113_;
	result = NIM_NIL;
	hcX60gensym113_ = (NI)0;
	indexX60gensym113_ = rawGet__liftdestructors_986(t, key, (&hcX60gensym113_));
	{
		if (!(((NI) 0) <= indexX60gensym113_)) goto LA3_;
		result = t.data->data[indexX60gensym113_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__liftdestructors_2434)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__liftdestructors_2891)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tySequence__1U9bG8RcAedEeYkQLZjVFKA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val, NI hc, NI h) {
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__liftdestructors_2587)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t) {
	tySequence__1U9bG8RcAedEeYkQLZjVFKA* n;
	NI T1_;
	tySequence__1U9bG8RcAedEeYkQLZjVFKA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_TType__facALICuu8zUj0hjvbTLFg* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__liftdestructors_2891(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__liftdestructors_3060)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_8972(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___liftdestructors_2261)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym218_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym218_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) (correctSizeX60gensym218_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__liftdestructors_986((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym221_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym221_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) (correctSizeX60gensym221_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__liftdestructors_2434((*t));
			if (!T18_) goto LA19_;
			enlarge__liftdestructors_2587(t);
			index = rawGetKnownHC__liftdestructors_3060((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__liftdestructors_2891(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, X5BX5D___lambdalifting_4415)(tyObject_Table__JrI9bTpOVccKpiJXKOskjFg t, NI key) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI hcX60gensym20_;
	NI indexX60gensym20_;
	result = NIM_NIL;
	hcX60gensym20_ = (NI)0;
	indexX60gensym20_ = rawGet__lambdalifting_2345(t, key, (&hcX60gensym20_));
	{
		if (!(((NI) 0) <= indexX60gensym20_)) goto LA3_;
		result = t.data->data[indexX60gensym20_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1357(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__closureiters_3495)(NI initialSize, tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* Result) {
	NI correctSizeX60gensym349_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym349_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) (correctSizeX60gensym349_))));
}
static N_INLINE(NI, rawGet__closureiters_1926)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getOrDefault__closureiters_1917)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key) {
	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
	NI hcX60gensym311_;
	NI indexX60gensym311_;
	result = NIM_NIL;
	hcX60gensym311_ = (NI)0;
	indexX60gensym311_ = rawGet__closureiters_1926(t, key, (&hcX60gensym311_));
	{
		if (!(((NI) 0) <= indexX60gensym311_)) goto LA3_;
		result = t.data->data[indexX60gensym311_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__closureiters_2477)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__closureiters_2930)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, tySequence__gVogYzwlGNrCaz6jQnXRzA** data, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__closureiters_2630)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t) {
	tySequence__gVogYzwlGNrCaz6jQnXRzA* n;
	NI T1_;
	tySequence__gVogYzwlGNrCaz6jQnXRzA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__closureiters_2930(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__closureiters_3099)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___closureiters_2304)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym321_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym321_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) (correctSizeX60gensym321_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__closureiters_1926((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym324_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym324_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) (correctSizeX60gensym324_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__closureiters_2477((*t));
			if (!T18_) goto LA19_;
			enlarge__closureiters_2630(t);
			index = rawGetKnownHC__closureiters_3099((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__closureiters_2930(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__vmmarshal_1860)(NI initialSize, tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* Result) {
	NI correctSizeX60gensym72_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym72_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTIkeyvaluepairseq__s12F9c4cKfaapm8VzG9a1flQ_), ((NI) (correctSizeX60gensym72_))));
}
static N_INLINE(NI, hash__pureZjson_2965)(NI64 x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__vmmarshal_455)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZjson_2965(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getOrDefault__vmmarshal_446)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key) {
	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
	NI hcX60gensym54_;
	NI indexX60gensym54_;
	result = NIM_NIL;
	hcX60gensym54_ = (NI)0;
	indexX60gensym54_ = rawGet__vmmarshal_455(t, key, (&hcX60gensym54_));
	{
		if (!(((NI) 0) <= indexX60gensym54_)) goto LA3_;
		result = t.data->data[indexX60gensym54_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__vmmarshal_975)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__vmmarshal_1432)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t, tySequence__s12F9c4cKfaapm8VzG9a1flQ** data, NI64 key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__vmmarshal_1128)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t) {
	tySequence__s12F9c4cKfaapm8VzG9a1flQ* n;
	NI T1_;
	tySequence__s12F9c4cKfaapm8VzG9a1flQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTIkeyvaluepairseq__s12F9c4cKfaapm8VzG9a1flQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI64 T17_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI64)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__vmmarshal_1432(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__vmmarshal_1601)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg t, NI64 key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vmmarshal_802)(tyObject_Table__7O9bs4LORhqcR0JGh7d1MDg* t, NI64 key, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym59_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym59_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTIkeyvaluepairseq__s12F9c4cKfaapm8VzG9a1flQ_), ((NI) (correctSizeX60gensym59_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__vmmarshal_455((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym62_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym62_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__s12F9c4cKfaapm8VzG9a1flQ*) newSeq((&NTIkeyvaluepairseq__s12F9c4cKfaapm8VzG9a1flQ_), ((NI) (correctSizeX60gensym62_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__vmmarshal_975((*t));
			if (!T18_) goto LA19_;
			enlarge__vmmarshal_1128(t);
			index = rawGetKnownHC__vmmarshal_1601((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__vmmarshal_1432(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__options_865)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__lineinfos_230(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___options_1105(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_217)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__options_865(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__vmprofiler_118)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	NIM_BOOL result;
	result = (NIM_BOOL)0;
	result = hasKey__vmprofiler_217((*t), key);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__vmprofiler_82)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__vmprofiler_118(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__options_1249)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_1779)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tySequence__TXIV9cpS1nTKZLiCib9cPT4g** data, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_1435)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t) {
	tySequence__TXIV9cpS1nTKZLiCib9cPT4g* n;
	NI T1_;
	tySequence__TXIV9cpS1nTKZLiCib9cPT4g* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__TXIV9cpS1nTKZLiCib9cPT4g*) newSeq((&NTIkeyvaluepairseq__TXIV9cpS1nTKZLiCib9cPT4g_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T17_;
					tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = n->data[i].Field1;
					nimZeroMem((void*)(&n->data[i].Field1), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
					T18_ = n->data[i].Field2;
					nimZeroMem((void*)(&n->data[i].Field2), sizeof(tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw));
					rawInsert__options_1779(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__options_1960)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___options_1105(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___options_793)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym19_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym19_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__TXIV9cpS1nTKZLiCib9cPT4g*) newSeq((&NTIkeyvaluepairseq__TXIV9cpS1nTKZLiCib9cPT4g_), ((NI) (correctSizeX60gensym19_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__options_865((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym24_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym24_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__TXIV9cpS1nTKZLiCib9cPT4g*) newSeq((&NTIkeyvaluepairseq__TXIV9cpS1nTKZLiCib9cPT4g_), ((NI) (correctSizeX60gensym24_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__options_1249((*t));
			if (!T18_) goto LA19_;
			enlarge__options_1435(t);
			index = rawGetKnownHC__options_1960((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__options_1779(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___vmprofiler_270)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key, tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw val) {
	X5BX5Deq___options_793(t, key, val);
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__vmprofiler_607)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T2_ = (*T1_).Sup.Sup.Sup.message; (*T1_).Sup.Sup.Sup.message = copyStringRC1(((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_3));
	if (T2_) nimGCunrefNoCycle(T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 236);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw*, X5BX5D___vmprofiler_540)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__options_865((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__vmprofiler_607(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw*, X5BX5D___vmprofiler_428)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw* result;
	result = (tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw*)0;
	result = X5BX5D___vmprofiler_540(t, key);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__modulegraphs_3587)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__modulegraphs_3594(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__modulegraphs_3581)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__modulegraphs_3587(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA**, X5BX5D___modulegraphs_3897)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_3594((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3391(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__sempass50_491)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_128(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__sempass50_1168)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__sempass50_1625)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ* t, tySequence__Hkw5zrAn53wlKDHdJF1GFA** data, NI key, tySequence__vGU8AyGT6KxtLJwEg0BpNw* val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLLtlineinfo_psymTT__vGU8AyGT6KxtLJwEg0BpNw_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sempass50_1321)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ* t) {
	tySequence__Hkw5zrAn53wlKDHdJF1GFA* n;
	NI T1_;
	tySequence__Hkw5zrAn53wlKDHdJF1GFA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__Hkw5zrAn53wlKDHdJF1GFA*) newSeq((&NTIkeyvaluepairseq__Hkw5zrAn53wlKDHdJF1GFA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					tySequence__vGU8AyGT6KxtLJwEg0BpNw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__sempass50_1625(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__sempass50_1794)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__vGU8AyGT6KxtLJwEg0BpNw**, mgetOrPut__sempass50_1047)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ* t, NI key, tySequence__vGU8AyGT6KxtLJwEg0BpNw* val) {
	tySequence__vGU8AyGT6KxtLJwEg0BpNw** result;
	NI hc;
	NI index;
	result = (tySequence__vGU8AyGT6KxtLJwEg0BpNw**)0;
	{
		NI T3_;
		NI correctSizeX60gensym95_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym95_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__Hkw5zrAn53wlKDHdJF1GFA*) newSeq((&NTIkeyvaluepairseq__Hkw5zrAn53wlKDHdJF1GFA_), ((NI) (correctSizeX60gensym95_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__sempass50_491((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym98_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym98_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__Hkw5zrAn53wlKDHdJF1GFA*) newSeq((&NTIkeyvaluepairseq__Hkw5zrAn53wlKDHdJF1GFA_), ((NI) (correctSizeX60gensym98_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__sempass50_1168((*t));
			if (!T17_) goto LA18_;
			enlarge__sempass50_1321(t);
			index = rawGetKnownHC__sempass50_1794((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__sempass50_1625(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__sempass50_484)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ t, NI key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__sempass50_491(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__vGU8AyGT6KxtLJwEg0BpNw**, X5BX5D___sempass50_821)(tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ* t, NI key) {
	tySequence__vGU8AyGT6KxtLJwEg0BpNw** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__vGU8AyGT6KxtLJwEg0BpNw**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__sempass50_491((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1357(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__nilcheck_8806)(NI initialSize, tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* Result) {
	NI correctSizeX60gensym196_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym196_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) (correctSizeX60gensym196_))));
}
static N_INLINE(NI, hash__nilcheck_1991)(NI x) {
	NI result;
	result = (NI)0;
	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
	return result;
}
static N_INLINE(NI, rawGet__nilcheck_1984)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__nilcheck_1991(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___nilcheck_1923(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_7373)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_7894)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t, tySequence__dAjyAaabi52TN36Jp0fAXQ** data, NI key, NI16 val, NI hc, NI h) {
	(*data)->data[h].Field1 = key;
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_7559)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t) {
	tySequence__dAjyAaabi52TN36Jp0fAXQ* n;
	NI T1_;
	tySequence__dAjyAaabi52TN36Jp0fAXQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NI T17_;
					NI16 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = (NI)0;
					T17_ = n->data[i].Field1;
					n->data[i].Field1 = 0;
					T18_ = (NI16)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__nilcheck_7894(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__nilcheck_8075)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___nilcheck_1923(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___nilcheck_7174)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t, NI key, NI16 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym176_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym176_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) (correctSizeX60gensym176_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__nilcheck_1984((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym179_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym179_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__dAjyAaabi52TN36Jp0fAXQ*) newSeq((&NTIkeyvaluepairseq__dAjyAaabi52TN36Jp0fAXQ_), ((NI) (correctSizeX60gensym179_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__nilcheck_7373((*t));
			if (!T18_) goto LA19_;
			enlarge__nilcheck_7559(t);
			index = rawGetKnownHC__nilcheck_8075((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__nilcheck_7894(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, toTable__nilcheck_8801)(tyTuple__cyDO9czMbIL47POKM3sIQng* pairs, NI pairsLen_0, tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* Result) {
	initTable__nilcheck_8806(pairsLen_0, Result);
	{
		NI* key;
		NI16* val;
		NI i;
		key = (NI*)0;
		val = (NI16*)0;
		i = ((NI) 0);
		{
			while (1) {
				if (!(i < pairsLen_0)) goto LA3;
				key = (&pairs[i].Field0);
				val = (&pairs[i].Field1);
				X5BX5Deq___nilcheck_7174(Result, (*key), (*val));
				i += ((NI) 1);
			} LA3: ;
		}
	}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__nilcheck_1977)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__nilcheck_1984(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__nilcheck_2385)(NI key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___nilcheck_1927(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(NI16*, X5BX5D___nilcheck_2314)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw* t, NI key) {
	NI16* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NI16*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__nilcheck_1984((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__nilcheck_2385(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__nilcheck_9409)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__nilcheck_6168)(tyObject_Table__mx89bZoYrm9bEaZ0GUM1pBOw t, NI key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__nilcheck_1977(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI*, X5BX5D___importer_3690)(tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w* t, NI key) {
	NI* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (NI*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__sigmatch_5600((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__ast_1357(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__cgendata_379)(NI initialSize, tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ* Result) {
	NI correctSizeX60gensym5_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym5_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__YT27F6szr8EQuTI39aUMYuA*) newSeq((&NTIkeyvaluepairseq__YT27F6szr8EQuTI39aUMYuA_), ((NI) (correctSizeX60gensym5_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__cgen_28375)(NI initialSize, tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* Result) {
	NI correctSizeX60gensym6513_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym6513_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTIkeyvaluepairseq__sII3pVVRkIdBZ2HDPdZddA_), ((NI) (correctSizeX60gensym6513_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__cgen_28394)(NI initialSize, tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* Result) {
	NI correctSizeX60gensym6515_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	(*Result).isSorted = 0;
	correctSizeX60gensym6515_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) (correctSizeX60gensym6515_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initCountTable__cgendata_301)(NI initialSize, tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* Result) {
	NI correctSizeX60gensym3_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	(*Result).isSorted = 0;
	correctSizeX60gensym3_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) (correctSizeX60gensym3_))));
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__injectdestructors_3782)(NI initialSize, tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* Result) {
	NI correctSizeX60gensym33_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym33_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) (correctSizeX60gensym33_))));
}
static N_INLINE(NI, rawGet__injectdestructors_181)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__injectdestructors_188(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___injectdestructors_430(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__injectdestructors_174)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__injectdestructors_181(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_708)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_1229)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tySequence__sh9b9afdJBB3bJbViXY7yNAg** data, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1.Field0), key.Field0);
	asgnRef((void**) (&(*data)->data[h].Field1.Field1), key.Field1);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_894)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t) {
	tySequence__sh9b9afdJBB3bJbViXY7yNAg* n;
	NI T1_;
	tySequence__sh9b9afdJBB3bJbViXY7yNAg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T17_;
					tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimZeroMem((void*)(&T17_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
					T17_.Field0 = n->data[i].Field1.Field0;
					T17_.Field1 = n->data[i].Field1.Field1;
					unsureAsgnRef((void**)&n->data[i].Field1.Field0, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.Field1, NIM_NIL);
					T18_ = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__injectdestructors_1229(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__injectdestructors_1410)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___injectdestructors_430(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___injectdestructors_509)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key, tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym7_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym7_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) (correctSizeX60gensym7_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__injectdestructors_181((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym10_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym10_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__sh9b9afdJBB3bJbViXY7yNAg*) newSeq((&NTIkeyvaluepairseq__sh9b9afdJBB3bJbViXY7yNAg_), ((NI) (correctSizeX60gensym10_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__injectdestructors_708((*t));
			if (!T18_) goto LA19_;
			enlarge__injectdestructors_894(t);
			index = rawGetKnownHC__injectdestructors_1410((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__injectdestructors_1229(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__injectdestructors_1802)(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___injectdestructors_1854(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*, X5BX5D___injectdestructors_1731)(tyObject_Table__OHR9afGwwhoEoDZjFE9cgF0g* t, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ key) {
	tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyEnum_AliasKind__mOZtJx9b3QXuy9bfWq9cuUNCg*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__injectdestructors_181((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__injectdestructors_1802(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__injectdestructors_4324)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__injectdestructors_118(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = (t.data->data[h].Field1 == key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__injectdestructors_4654)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__injectdestructors_5171)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tySequence__JGK6WZYU2JHWLoPdKRO4AQ** data, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val, NI hc, NI h) {
	asgnRef((void**) (&(*data)->data[h].Field1), key);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__injectdestructors_4840)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t) {
	tySequence__JGK6WZYU2JHWLoPdKRO4AQ* n;
	NI T1_;
	tySequence__JGK6WZYU2JHWLoPdKRO4AQ* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*) newSeq((&NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
					tySequence__qwqHTkRvwhrRyENtudHQ7g* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__injectdestructors_5171(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__injectdestructors_5352)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = (t.data->data[h].Field1 == key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g**, mgetOrPut__injectdestructors_4251)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* key, tySequence__qwqHTkRvwhrRyENtudHQ7g* val) {
	tySequence__qwqHTkRvwhrRyENtudHQ7g** result;
	NI hc;
	NI index;
	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g**)0;
	{
		NI T3_;
		NI correctSizeX60gensym66_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym66_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*) newSeq((&NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_), ((NI) (correctSizeX60gensym66_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__injectdestructors_4324((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym71_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym71_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__JGK6WZYU2JHWLoPdKRO4AQ*) newSeq((&NTIkeyvaluepairseq__JGK6WZYU2JHWLoPdKRO4AQ_), ((NI) (correctSizeX60gensym71_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__injectdestructors_4654((*t));
			if (!T17_) goto LA18_;
			enlarge__injectdestructors_4840(t);
			index = rawGetKnownHC__injectdestructors_5352((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__injectdestructors_5171(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__injectdestructors_5745)(tyObject_Table__8b8GbeV6waqgbRlb9aUvYNQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__sighashes_2166)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	NI result;
	NI h;
	NI T6_;
	NI T7_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash__modulegraphs_8976(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T15_;
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = eqeq___modulegraphs_8972(t.data->data[h].Field0, key);
				if (!T12_) goto LA13_;
				result = h;
				goto BeforeRet_;
			}
			LA13_: ;
			T15_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T15_);
		} LA9: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__sighashes_2145)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI default_0) {
	NI result;
	NI indexX60gensym198_;
	result = (NI)0;
	indexX60gensym198_ = rawGet__sighashes_2166(t, key);
	{
		if (!(((NI) 0) <= indexX60gensym198_)) goto LA3_;
		result = t.data->data[indexX60gensym198_].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__sighashes_2297)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__sighashes_2368)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ t, tySequence__XUL1TrMU0tgXmaMFCIYgFQ** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val) {
	NI h;
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = hash__modulegraphs_8976(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T5_);
		} LA4: ;
	}
	nimCopyMem((void*)(*data)->data[h].Field0, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	(*data)->data[h].Field1 = val;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__sighashes_2333)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* t) {
	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* n;
	NI T1_;
	tySequence__XUL1TrMU0tgXmaMFCIYgFQ* T12_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T10_;
					NI T11_;
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					nimCopyMem((void*)T10_, (NIM_CONST void*)(*t).data->data[i].Field0, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)(*t).data->data[i].Field0, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					T11_ = (NI)0;
					T11_ = (*t).data->data[i].Field1;
					(*t).data->data[i].Field1 = 0;
					ctRawInsert__sighashes_2368((*t), (&n), T10_, T11_);
				}
				LA8_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T12_ = NIM_NIL;
	T12_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T12_;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__sighashes_2220)(tyObject_CountTable__tUMxxU9cRgLolsrW9b7IBGsQ* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI val) {
	NI index;
	index = rawGet__sighashes_2166((*t), key);
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		(*t).data->data[index].Field1 += val;
		{
			NI mskX60gensym179_;
			NI T9_;
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA7_;
			T9_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			mskX60gensym179_ = T9_;
			{
				if (!(((NI) 0) <= index)) goto LA12_;
				(*t).counter -= ((NI) 1);
				{
					{
						while (1) {
							NI jX60gensym179_;
							NI rX60gensym179_;
							jX60gensym179_ = index;
							rX60gensym179_ = jX60gensym179_;
							(*t).data->data[index].Field1 = ((NI) 0);
							nimZeroMem((void*)(*t).data->data[index].Field0, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
							(*t).data->data[index].Field1 = 0;
							{
								while (1) {
									NI T23_;
									index = (NI)((NI)(index + ((NI) 1)) & mskX60gensym179_);
									{
										if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA21_;
										goto LA14;
									}
									LA21_: ;
									T23_ = (NI)0;
									T23_ = hash__modulegraphs_8976((*t).data->data[index].Field0);
									rX60gensym179_ = (NI)(T23_ & mskX60gensym179_);
									{
										NIM_BOOL T26_;
										NIM_BOOL T27_;
										NIM_BOOL T28_;
										NIM_BOOL T31_;
										NIM_BOOL T34_;
										T26_ = (NIM_BOOL)0;
										T27_ = (NIM_BOOL)0;
										T28_ = (NIM_BOOL)0;
										T28_ = (rX60gensym179_ <= index);
										if (!(T28_)) goto LA29_;
										T28_ = (jX60gensym179_ < rX60gensym179_);
										LA29_: ;
										T27_ = T28_;
										if (T27_) goto LA30_;
										T31_ = (NIM_BOOL)0;
										T31_ = (jX60gensym179_ < rX60gensym179_);
										if (!(T31_)) goto LA32_;
										T31_ = (index < jX60gensym179_);
										LA32_: ;
										T27_ = T31_;
										LA30_: ;
										T26_ = T27_;
										if (T26_) goto LA33_;
										T34_ = (NIM_BOOL)0;
										T34_ = (index < jX60gensym179_);
										if (!(T34_)) goto LA35_;
										T34_ = (rX60gensym179_ <= index);
										LA35_: ;
										T26_ = T34_;
										LA33_: ;
										if (!!(T26_)) goto LA36_;
										goto LA17;
									}
									LA36_: ;
								}
							} LA17: ;
							(*t).data->data[jX60gensym179_] = (*t).data->data[index];
							nimZeroMem((void*)(&(*t).data->data[index]), sizeof(tyTuple__tA7Q8IrfOKH7Mn89cK9cBAIg));
						}
					}
				} LA14: ;
			}
			LA12_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!!((val == ((NI) 0)))) goto LA41_;
			{
				NI T45_;
				NI correctSizeX60gensym118_;
				T45_ = ((*t).data ? (*t).data->Sup.len : 0);
				if (!(T45_ == ((NI) 0))) goto LA46_;
				correctSizeX60gensym118_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
				(*t).counter = ((NI) 0);
				unsureAsgnRef((void**) (&(*t).data), (tySequence__XUL1TrMU0tgXmaMFCIYgFQ*) newSeq((&NTIseqLtupleLkey58sighash_val58intTT__XUL1TrMU0tgXmaMFCIYgFQ_), ((NI) (correctSizeX60gensym118_))));
			}
			LA46_: ;
			{
				NIM_BOOL T50_;
				T50_ = (NIM_BOOL)0;
				T50_ = mustRehash__sighashes_2297((*t));
				if (!T50_) goto LA51_;
				enlarge__sighashes_2333(t);
			}
			LA51_: ;
			ctRawInsert__sighashes_2368((*t), (&(*t).data), key, val);
			(*t).counter += ((NI) 1);
		}
		LA41_: ;
	}
	LA1_: ;
}
static N_INLINE(NI, rawGet__cgen_1447)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__modulegraphs_8976(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___modulegraphs_8972(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA*, getOrDefault__cgen_1438)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* result;
	NI hcX60gensym151_;
	NI indexX60gensym151_;
	result = NIM_NIL;
	hcX60gensym151_ = (NI)0;
	indexX60gensym151_ = rawGet__cgen_1447(t, key, (&hcX60gensym151_));
	{
		if (!(((NI) 0) <= indexX60gensym151_)) goto LA3_;
		result = t.data->data[indexX60gensym151_].Field2;
	}
	LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_2082)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_2599)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tySequence__sII3pVVRkIdBZ2HDPdZddA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val, NI hc, NI h) {
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	asgnRef((void**) (&(*data)->data[h].Field2), val);
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_2268)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t) {
	tySequence__sII3pVVRkIdBZ2HDPdZddA* n;
	NI T1_;
	tySequence__sII3pVVRkIdBZ2HDPdZddA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTIkeyvaluepairseq__sII3pVVRkIdBZ2HDPdZddA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__cgen_2599(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__cgen_2780)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_8972(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___cgen_1883)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym171_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym171_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTIkeyvaluepairseq__sII3pVVRkIdBZ2HDPdZddA_), ((NI) (correctSizeX60gensym171_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__cgen_1447((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym174_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym174_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__sII3pVVRkIdBZ2HDPdZddA*) newSeq((&NTIkeyvaluepairseq__sII3pVVRkIdBZ2HDPdZddA_), ((NI) (correctSizeX60gensym174_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__cgen_2082((*t));
			if (!T18_) goto LA19_;
			enlarge__cgen_2268(t);
			index = rawGetKnownHC__cgen_2780((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__cgen_2599(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, raiseKeyError__cgen_3317)(tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag*) newObj((&NTIrefkeyerror__8SzoIAgLw9ci2v0yafHj9b6Q_), sizeof(tyObject_KeyError__t7nhKLvXTQS9cS8ByJU9bIag));
	(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIkeyerror__t7nhKLvXTQS9cS8ByJU9bIag_);
	(*T1_).Sup.Sup.Sup.name = "KeyError";
	T2_ = NIM_NIL;
	T3_ = NIM_NIL;
	T3_ = dollar___modulegraphs_8960(key);
	T2_ = rawNewString((T3_ ? T3_->Sup.len : 0) + 15);
appendString(T2_, ((NimStringDesc*) &TM__4SoG2KRQy3oMm9aUzSLtGrA_2));
appendString(T2_, T3_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.message), T2_);
	asgnRef((void**) (&(*T1_).Sup.Sup.Sup.parent), ((Exception*) NIM_NIL));
	raiseExceptionEx((Exception*)T1_, "KeyError", "raiseKeyError", "tables.nim", 234);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**, X5BX5D___cgen_3246)(tyObject_Table__gZ3EYQdz9coOB7ngN9a1cqwA* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
	tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__cgen_1447((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym22_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__cgen_3317(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__cgen_839)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key) {
	NI result;
	NI h;
	NI T6_;
	NI T7_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = (NI)0;
	T6_ = hash__pureZhashes_279(key);
	T7_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(T6_ & T7_);
	{
		while (1) {
			NI T14_;
			if (!!((t.data->data[h].Field1 == ((NI) 0)))) goto LA9;
			{
				if (!eqStrings(t.data->data[h].Field0, key)) goto LA12_;
				result = h;
				goto BeforeRet_;
			}
			LA12_: ;
			T14_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T14_);
		} LA9: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__cgen_818)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, NimStringDesc* key, NI default_0) {
	NI result;
	NI indexX60gensym198_;
	result = (NI)0;
	indexX60gensym198_ = rawGet__cgen_839(t, key);
	{
		if (!(((NI) 0) <= indexX60gensym198_)) goto LA3_;
		result = t.data->data[indexX60gensym198_].Field1;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_1008)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, ctRawInsert__cgen_1079)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg t, tySequence__jwzrUFjG9akTIJTBBFvvqxw** data, NimStringDesc* key, NI val) {
	NI h;
	NI T1_;
	NI T2_;
	NimStringDesc* T6_;
	T1_ = (NI)0;
	T1_ = hash__pureZhashes_279(key);
	T2_ = (((*data) ? (*data)->Sup.len : 0)-1);
	h = (NI)(T1_ & T2_);
	{
		while (1) {
			NI T5_;
			if (!!(((*data)->data[h].Field1 == ((NI) 0)))) goto LA4;
			T5_ = (((*data) ? (*data)->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T5_);
		} LA4: ;
	}
	T6_ = NIM_NIL;
	T6_ = (*data)->data[h].Field0; (*data)->data[h].Field0 = copyStringRC1(key);
	if (T6_) nimGCunrefNoCycle(T6_);
	(*data)->data[h].Field1 = val;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_1044)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t) {
	tySequence__jwzrUFjG9akTIJTBBFvvqxw* n;
	NI T1_;
	tySequence__jwzrUFjG9akTIJTBBFvvqxw* T12_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	{
		NI i;
		NI colontmp_;
		NI T3_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T3_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
		colontmp_ = T3_;
		res = ((NI) 0);
		{
			while (1) {
				if (!(res <= colontmp_)) goto LA5;
				i = res;
				{
					NimStringDesc* T10_;
					NI T11_;
					if (!!(((*t).data->data[i].Field1 == ((NI) 0)))) goto LA8_;
					T10_ = NIM_NIL;
					T10_ = (*t).data->data[i].Field0;
					asgnRef((void**) (&(*t).data->data[i].Field0), NIM_NIL);
					T11_ = (NI)0;
					T11_ = (*t).data->data[i].Field1;
					(*t).data->data[i].Field1 = 0;
					ctRawInsert__cgen_1079((*t), (&n), T10_, T11_);
				}
				LA8_: ;
				res += ((NI) 1);
			} LA5: ;
		}
	}
	T12_ = NIM_NIL;
	T12_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T12_;
}
N_LIB_PRIVATE N_NIMCALL(void, inc__cgen_941)(tyObject_CountTable__chlLjy9bvnFM9b9bSZfiIkyGg* t, NimStringDesc* key, NI val) {
	NI index;
	index = rawGet__cgen_839((*t), key);
	{
		if (!(((NI) 0) <= index)) goto LA3_;
		(*t).data->data[index].Field1 += val;
		{
			NI mskX60gensym179_;
			NI T9_;
			if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA7_;
			T9_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
			mskX60gensym179_ = T9_;
			{
				if (!(((NI) 0) <= index)) goto LA12_;
				(*t).counter -= ((NI) 1);
				{
					{
						while (1) {
							NI jX60gensym179_;
							NI rX60gensym179_;
							jX60gensym179_ = index;
							rX60gensym179_ = jX60gensym179_;
							(*t).data->data[index].Field1 = ((NI) 0);
							asgnRef((void**) (&(*t).data->data[index].Field0), NIM_NIL);
							(*t).data->data[index].Field1 = 0;
							{
								while (1) {
									NI T23_;
									index = (NI)((NI)(index + ((NI) 1)) & mskX60gensym179_);
									{
										if (!((*t).data->data[index].Field1 == ((NI) 0))) goto LA21_;
										goto LA14;
									}
									LA21_: ;
									T23_ = (NI)0;
									T23_ = hash__pureZhashes_279((*t).data->data[index].Field0);
									rX60gensym179_ = (NI)(T23_ & mskX60gensym179_);
									{
										NIM_BOOL T26_;
										NIM_BOOL T27_;
										NIM_BOOL T28_;
										NIM_BOOL T31_;
										NIM_BOOL T34_;
										T26_ = (NIM_BOOL)0;
										T27_ = (NIM_BOOL)0;
										T28_ = (NIM_BOOL)0;
										T28_ = (rX60gensym179_ <= index);
										if (!(T28_)) goto LA29_;
										T28_ = (jX60gensym179_ < rX60gensym179_);
										LA29_: ;
										T27_ = T28_;
										if (T27_) goto LA30_;
										T31_ = (NIM_BOOL)0;
										T31_ = (jX60gensym179_ < rX60gensym179_);
										if (!(T31_)) goto LA32_;
										T31_ = (index < jX60gensym179_);
										LA32_: ;
										T27_ = T31_;
										LA30_: ;
										T26_ = T27_;
										if (T26_) goto LA33_;
										T34_ = (NIM_BOOL)0;
										T34_ = (index < jX60gensym179_);
										if (!(T34_)) goto LA35_;
										T34_ = (rX60gensym179_ <= index);
										LA35_: ;
										T26_ = T34_;
										LA33_: ;
										if (!!(T26_)) goto LA36_;
										goto LA17;
									}
									LA36_: ;
								}
							} LA17: ;
							asgnRef((void**) (&(*t).data->data[jX60gensym179_].Field0), (*t).data->data[index].Field0);
							(*t).data->data[jX60gensym179_].Field1 = (*t).data->data[index].Field1;
							unsureAsgnRef((void**)&(*t).data->data[index].Field0, NIM_NIL);
							(*t).data->data[index].Field1 = 0;
						}
					}
				} LA14: ;
			}
			LA12_: ;
		}
		LA7_: ;
	}
	goto LA1_;
	LA3_: ;
	{
		{
			if (!!((val == ((NI) 0)))) goto LA41_;
			{
				NI T45_;
				NI correctSizeX60gensym109_;
				T45_ = ((*t).data ? (*t).data->Sup.len : 0);
				if (!(T45_ == ((NI) 0))) goto LA46_;
				correctSizeX60gensym109_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
				(*t).counter = ((NI) 0);
				unsureAsgnRef((void**) (&(*t).data), (tySequence__jwzrUFjG9akTIJTBBFvvqxw*) newSeq((&NTIseqLtupleLkey58string_val58intTT__jwzrUFjG9akTIJTBBFvvqxw_), ((NI) (correctSizeX60gensym109_))));
			}
			LA46_: ;
			{
				NIM_BOOL T50_;
				T50_ = (NIM_BOOL)0;
				T50_ = mustRehash__cgen_1008((*t));
				if (!T50_) goto LA51_;
				enlarge__cgen_1044(t);
			}
			LA51_: ;
			ctRawInsert__cgen_1079((*t), (&(*t).data), key, val);
			(*t).counter += ((NI) 1);
		}
		LA41_: ;
	}
	LA1_: ;
}
static N_INLINE(NI, rawGet__cgen_8109)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__modulegraphs_8976(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___modulegraphs_8972(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, getOrDefault__cgen_8100)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__xfZjiVhSEwIz5DDkzuPwog* Result) {
	NI hcX60gensym770_;
	NI indexX60gensym770_;
	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
	(*Result).Field1 = 0;
	hcX60gensym770_ = (NI)0;
	indexX60gensym770_ = rawGet__cgen_8109(t, key, (&hcX60gensym770_));
	{
		if (!(((NI) 0) <= indexX60gensym770_)) goto LA3_;
		unsureAsgnRef((void**) (&(*Result).Field0), t.data->data[indexX60gensym770_].Field2.Field0);
		(*Result).Field1 = t.data->data[indexX60gensym770_].Field2.Field1;
	}
	LA3_: ;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_8773)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_9290)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ* t, tySequence__YT27F6szr8EQuTI39aUMYuA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__xfZjiVhSEwIz5DDkzuPwog val, NI hc, NI h) {
	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
	asgnRef((void**) (&(*data)->data[h].Field2.Field0), val.Field0);
	(*data)->data[h].Field2.Field1 = val.Field1;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_8959)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ* t) {
	tySequence__YT27F6szr8EQuTI39aUMYuA* n;
	NI T1_;
	tySequence__YT27F6szr8EQuTI39aUMYuA* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__YT27F6szr8EQuTI39aUMYuA*) newSeq((&NTIkeyvaluepairseq__YT27F6szr8EQuTI39aUMYuA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
					tyTuple__xfZjiVhSEwIz5DDkzuPwog T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
					nimZeroMem((void*)(&T18_), sizeof(tyTuple__xfZjiVhSEwIz5DDkzuPwog));
					T18_.Field0 = n->data[i].Field2.Field0;
					T18_.Field1 = n->data[i].Field2.Field1;
					unsureAsgnRef((void**)&n->data[i].Field2.Field0, NIM_NIL);
					n->data[i].Field2.Field1 = 0;
					rawInsert__cgen_9290(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__cgen_9471)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_8972(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___cgen_8574)(tyObject_Table__8LfpO9aQ1o1cXrzKxTeuSYQ* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyTuple__xfZjiVhSEwIz5DDkzuPwog val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym777_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym777_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__YT27F6szr8EQuTI39aUMYuA*) newSeq((&NTIkeyvaluepairseq__YT27F6szr8EQuTI39aUMYuA_), ((NI) (correctSizeX60gensym777_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__cgen_8109((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field2.Field0), val.Field0);
		(*t).data->data[index].Field2.Field1 = val.Field1;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym780_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym780_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__YT27F6szr8EQuTI39aUMYuA*) newSeq((&NTIkeyvaluepairseq__YT27F6szr8EQuTI39aUMYuA_), ((NI) (correctSizeX60gensym780_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__cgen_8773((*t));
			if (!T18_) goto LA19_;
			enlarge__cgen_8959(t);
			index = rawGetKnownHC__cgen_9471((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__cgen_9290(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI32, getOrDefault__cgen_10096)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key) {
	NI32 result;
	NI hcX60gensym790_;
	NI indexX60gensym790_;
	result = (NI32)0;
	hcX60gensym790_ = (NI)0;
	indexX60gensym790_ = rawGet__lineinfos_449(t, key, (&hcX60gensym790_));
	{
		if (!(((NI) 0) <= indexX60gensym790_)) goto LA3_;
		result = t.data->data[indexX60gensym790_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA*, X5BX5D___modulegraphs_5718)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g key) {
	tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__modulegraphs_5725((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__modulegraphs_3391(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__pureZjson_366)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__pureZjson_2574)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__pureZjson_366(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NI, rawGet__pureZjson_2655)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**, X5BX5D___pureZjson_2648)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key) {
	tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q** result;
	NI hcX60gensym89_;
	NI indexX60gensym89_;
	result = (tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q**)0;
	hcX60gensym89_ = (NI)0;
	indexX60gensym89_ = rawGet__pureZjson_2655((*t), key, (&hcX60gensym89_));
	{
		if (!(((NI) 0) <= indexX60gensym89_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym89_].Field3;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initOrderedTable__pureZjson_104)(NI initialSize, tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* Result) {
	NI correctSizeX60gensym0_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	(*Result).first = 0;
	(*Result).last = 0;
	correctSizeX60gensym0_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTIorderedkeyvaluepairseq__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) (correctSizeX60gensym0_))));
	(*Result).first = ((NI) -1);
	(*Result).last = ((NI) -1);
}
static N_INLINE(NIM_BOOL, mustRehash__pureZjson_702)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__pureZjson_1274)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, tySequence__MlAD6nAPq9bHKla9cWiIZP0g** data, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field3), val);
	(*data)->data[h].Field0 = hc;
	(*data)->data[h].Field1 = ((NI) -1);
	{
		if (!((*t).first < ((NI) 0))) goto LA4_;
		(*t).first = h;
	}
	LA4_: ;
	{
		if (!(((NI) 0) <= (*t).last)) goto LA8_;
		(*data)->data[(*t).last].Field1 = h;
	}
	LA8_: ;
	(*t).last = h;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__pureZjson_863)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t) {
	tySequence__MlAD6nAPq9bHKla9cWiIZP0g* n;
	NI T1_;
	NI h;
	tySequence__MlAD6nAPq9bHKla9cWiIZP0g* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTIorderedkeyvaluepairseq__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	h = (*t).first;
	(*t).first = ((NI) -1);
	(*t).last = ((NI) -1);
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		while (1) {
			NI nxt;
			NI eh;
			if (!(((NI) 0) <= h)) goto LA4;
			nxt = n->data[h].Field1;
			eh = n->data[h].Field0;
			{
				NIM_BOOL T7_;
				NI j;
				NI T10_;
				NimStringDesc* T15_;
				tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* T16_;
				T7_ = (NIM_BOOL)0;
				T7_ = isFilled__pureZcollectionsZtables_31(eh);
				if (!T7_) goto LA8_;
				T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
				j = (NI)(eh & T10_);
				{
					while (1) {
						NIM_BOOL T13_;
						NI T14_;
						T13_ = (NIM_BOOL)0;
						T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
						if (!T13_) goto LA12;
						T14_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
						j = nextTry__pureZcollectionsZtables_34(j, T14_);
					} LA12: ;
				}
				T15_ = NIM_NIL;
				T15_ = n->data[h].Field2;
				asgnRef((void**) (&n->data[h].Field2), NIM_NIL);
				T16_ = NIM_NIL;
				T16_ = n->data[h].Field3;
				asgnRef((void**) (&n->data[h].Field3), NIM_NIL);
				rawInsert__pureZjson_1274(t, (&(*t).data), T15_, T16_, n->data[h].Field0, j);
			}
			LA8_: ;
			h = nxt;
		} LA4: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__pureZjson_1556)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field2, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pureZjson_297)(tyObject_OrderedTable__ZZvSdVkA2s2sIyifu4cpkg* t, NimStringDesc* key, tyObject_JsonNodeObj__df9bshXB7C9cTiWPIOtX3j1Q* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym13_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym13_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTIorderedkeyvaluepairseq__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) (correctSizeX60gensym13_))));
		(*t).first = ((NI) -1);
		(*t).last = ((NI) -1);
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__pureZjson_366((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field3), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym18_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym18_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__MlAD6nAPq9bHKla9cWiIZP0g*) newSeq((&NTIorderedkeyvaluepairseq__MlAD6nAPq9bHKla9cWiIZP0g_), ((NI) (correctSizeX60gensym18_))));
			(*t).first = ((NI) -1);
			(*t).last = ((NI) -1);
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__pureZjson_702((*t));
			if (!T18_) goto LA19_;
			enlarge__pureZjson_863(t);
			index = rawGetKnownHC__pureZjson_1556((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__pureZjson_1274(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_320)(tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_766)(tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_1302)(tyObject_Table__iowAVDkco3qpbEH0z8OmkQ* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_1738)(tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
				asgnRef((void**) (&(*t).data->data[i].Field2), NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
N_LIB_PRIVATE N_NIMCALL(void, clear__modulegraphs_2183)(tyObject_Table__KcymdZjUsmGSK8BxmvoJgw* t) {
	{
		NI i;
		NI colontmp_;
		NI T2_;
		NI i_2;
		i = (NI)0;
		colontmp_ = (NI)0;
		T2_ = ((*t).data ? (*t).data->Sup.len : 0);
		colontmp_ = T2_;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA4;
				i = i_2;
				(*t).data->data[i].Field0 = ((NI) 0);
				nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
				(*t).data->data[i].Field2.id.module = 0;
				(*t).data->data[i].Field2.id.packed_0.module = 0;
				(*t).data->data[i].Field2.id.packed_0.item = 0;
				unsureAsgnRef((void**)&(*t).data->data[i].Field2.sym, NIM_NIL);
				i_2 += ((NI) 1);
			} LA4: ;
		}
	}
	(*t).counter = ((NI) 0);
}
static N_INLINE(NI, rawGet__icZdce_216)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__Ll5iolPASSzOEheeSNjmiw*, X5BX5D___icZdce_1594)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA* t, NimStringDesc* key) {
	tyTuple__Ll5iolPASSzOEheeSNjmiw* result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tyTuple__Ll5iolPASSzOEheeSNjmiw*)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__icZdce_216((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZdce_581)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZdce_1071)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA* t, tySequence__UuiPn6QjIiUTdSVwX2PZ6w** data, NimStringDesc* key, tyTuple__Ll5iolPASSzOEheeSNjmiw val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZdce_740)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA* t) {
	tySequence__UuiPn6QjIiUTdSVwX2PZ6w* n;
	NI T1_;
	tySequence__UuiPn6QjIiUTdSVwX2PZ6w* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__UuiPn6QjIiUTdSVwX2PZ6w*) newSeq((&NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tyTuple__Ll5iolPASSzOEheeSNjmiw T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = n->data[i].Field2;
					nimZeroMem((void*)(&n->data[i].Field2), sizeof(tyTuple__Ll5iolPASSzOEheeSNjmiw));
					rawInsert__icZdce_1071(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__icZdce_1252)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___icZdce_153)(tyObject_Table__DA3V9a9b2HIIuj8hylZa2mSA* t, NimStringDesc* key, tyTuple__Ll5iolPASSzOEheeSNjmiw val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym4_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym4_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__UuiPn6QjIiUTdSVwX2PZ6w*) newSeq((&NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_), ((NI) (correctSizeX60gensym4_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__icZdce_216((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym9_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym9_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__UuiPn6QjIiUTdSVwX2PZ6w*) newSeq((&NTIkeyvaluepairseq__UuiPn6QjIiUTdSVwX2PZ6w_), ((NI) (correctSizeX60gensym9_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__icZdce_581((*t));
			if (!T18_) goto LA19_;
			enlarge__icZdce_740(t);
			index = rawGetKnownHC__icZdce_1252((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__icZdce_1071(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__main_119)(tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_INLINE(NI, rawGet__packagesZdocutilsZrst_609)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI32, getOrDefault__packagesZdocutilsZrst_599)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI32 default_0) {
	NI32 result;
	NI hcX60gensym16_;
	NI indexX60gensym16_;
	result = (NI32)0;
	hcX60gensym16_ = (NI)0;
	indexX60gensym16_ = rawGet__packagesZdocutilsZrst_609(t, key, (&hcX60gensym16_));
	{
		if (!(((NI) 0) <= indexX60gensym16_)) goto LA3_;
		result = t.data->data[indexX60gensym16_].Field2;
	}
	goto LA1_;
	LA3_: ;
	{
		result = default_0;
	}
	LA1_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrst_1125)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrst_1582)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, tySequence__7lEisrXlQEzwtUKW5pzRCw** data, NimStringDesc* key, NI32 val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrst_1278)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t) {
	tySequence__7lEisrXlQEzwtUKW5pzRCw* n;
	NI T1_;
	tySequence__7lEisrXlQEzwtUKW5pzRCw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI32 T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI32)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__packagesZdocutilsZrst_1582(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrst_1751)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___packagesZdocutilsZrst_952)(tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA* t, NimStringDesc* key, NI32 val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym21_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym21_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym21_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__packagesZdocutilsZrst_609((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym24_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym24_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__7lEisrXlQEzwtUKW5pzRCw*) newSeq((&NTIkeyvaluepairseq__7lEisrXlQEzwtUKW5pzRCw_), ((NI) (correctSizeX60gensym24_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__packagesZdocutilsZrst_1125((*t));
			if (!T18_) goto LA19_;
			enlarge__packagesZdocutilsZrst_1278(t);
			index = rawGetKnownHC__packagesZdocutilsZrst_1751((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__packagesZdocutilsZrst_1582(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__packagesZdocutilsZrstgen_108)(NI initialSize, tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* Result) {
	NI correctSizeX60gensym0_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym0_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) (correctSizeX60gensym0_))));
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGet__docgen_1195)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__docgen_1180)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__docgen_1195(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__docgen_1164)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key) {
	NIM_BOOL result;
{	result = (NIM_BOOL)0;
	result = hasKey__docgen_1180(t, key);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__docgen_1703)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_2275)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw* t, tySequence__n1XPc9anZlEQHQuS14lnGwg** data, NimStringDesc* key, tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field2; (*data)->data[h].Field2 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	asgnRef((void**) (&(*data)->data[h].Field3), val);
	(*data)->data[h].Field0 = hc;
	(*data)->data[h].Field1 = ((NI) -1);
	{
		if (!((*t).first < ((NI) 0))) goto LA4_;
		(*t).first = h;
	}
	LA4_: ;
	{
		if (!(((NI) 0) <= (*t).last)) goto LA8_;
		(*data)->data[(*t).last].Field1 = h;
	}
	LA8_: ;
	(*t).last = h;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_1864)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw* t) {
	tySequence__n1XPc9anZlEQHQuS14lnGwg* n;
	NI T1_;
	NI h;
	tySequence__n1XPc9anZlEQHQuS14lnGwg* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__n1XPc9anZlEQHQuS14lnGwg*) newSeq((&NTIorderedkeyvaluepairseq__n1XPc9anZlEQHQuS14lnGwg_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	h = (*t).first;
	(*t).first = ((NI) -1);
	(*t).last = ((NI) -1);
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		while (1) {
			NI nxt;
			NI eh;
			if (!(((NI) 0) <= h)) goto LA4;
			nxt = n->data[h].Field1;
			eh = n->data[h].Field0;
			{
				NIM_BOOL T7_;
				NI j;
				NI T10_;
				NimStringDesc* T15_;
				tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ* T16_;
				T7_ = (NIM_BOOL)0;
				T7_ = isFilled__pureZcollectionsZtables_31(eh);
				if (!T7_) goto LA8_;
				T10_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
				j = (NI)(eh & T10_);
				{
					while (1) {
						NIM_BOOL T13_;
						NI T14_;
						T13_ = (NIM_BOOL)0;
						T13_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
						if (!T13_) goto LA12;
						T14_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
						j = nextTry__pureZcollectionsZtables_34(j, T14_);
					} LA12: ;
				}
				T15_ = NIM_NIL;
				T15_ = n->data[h].Field2;
				asgnRef((void**) (&n->data[h].Field2), NIM_NIL);
				T16_ = NIM_NIL;
				T16_ = n->data[h].Field3;
				asgnRef((void**) (&n->data[h].Field3), NIM_NIL);
				rawInsert__docgen_2275(t, (&(*t).data), T15_, T16_, n->data[h].Field0, j);
			}
			LA8_: ;
			h = nxt;
		} LA4: ;
	}
}
N_LIB_PRIVATE N_NIMCALL(NI, rawGetKnownHC__docgen_2557)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field2, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___docgen_1522)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw* t, NimStringDesc* key, tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym127_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym127_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__n1XPc9anZlEQHQuS14lnGwg*) newSeq((&NTIorderedkeyvaluepairseq__n1XPc9anZlEQHQuS14lnGwg_), ((NI) (correctSizeX60gensym127_))));
		(*t).first = ((NI) -1);
		(*t).last = ((NI) -1);
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__docgen_1195((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		asgnRef((void**) (&(*t).data->data[index].Field3), val);
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym130_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym130_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__n1XPc9anZlEQHQuS14lnGwg*) newSeq((&NTIorderedkeyvaluepairseq__n1XPc9anZlEQHQuS14lnGwg_), ((NI) (correctSizeX60gensym130_))));
			(*t).first = ((NI) -1);
			(*t).last = ((NI) -1);
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__docgen_1703((*t));
			if (!T18_) goto LA19_;
			enlarge__docgen_1864(t);
			index = rawGetKnownHC__docgen_2557((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__docgen_2275(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
static N_INLINE(NI, rawGet__docgen_2861)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field2, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ**, X5BX5D___docgen_2854)(tyObject_OrderedTable__82OdS5RTON4FvDz04E3cFw* t, NimStringDesc* key) {
	tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ** result;
	NI hcX60gensym89_;
	NI indexX60gensym89_;
	result = (tyObject_ExampleGroupcolonObjectType___fmIjjJC59a002tPvpD7yKSQ**)0;
	hcX60gensym89_ = (NI)0;
	indexX60gensym89_ = rawGet__docgen_2861((*t), key, (&hcX60gensym89_));
	{
		if (!(((NI) 0) <= indexX60gensym89_)) goto LA3_;
		result = &(*t).data->data[indexX60gensym89_].Field3;
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, rawGet__docgen_3660)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__docgen_3952)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__docgen_4409)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw* t, tySequence__hi4XF2kW6f9aL7Qx8ito3Rw** data, NimStringDesc* key, tySequence__EhfJ5cVWpPFG1tw09ap9co5g* val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLtocitemT__EhfJ5cVWpPFG1tw09ap9co5g_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__docgen_4105)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw* t) {
	tySequence__hi4XF2kW6f9aL7Qx8ito3Rw* n;
	NI T1_;
	tySequence__hi4XF2kW6f9aL7Qx8ito3Rw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__hi4XF2kW6f9aL7Qx8ito3Rw*) newSeq((&NTIkeyvaluepairseq__hi4XF2kW6f9aL7Qx8ito3Rw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					tySequence__EhfJ5cVWpPFG1tw09ap9co5g* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__docgen_4409(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__docgen_4578)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__EhfJ5cVWpPFG1tw09ap9co5g**, mgetOrPut__docgen_3598)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw* t, NimStringDesc* key, tySequence__EhfJ5cVWpPFG1tw09ap9co5g* val) {
	tySequence__EhfJ5cVWpPFG1tw09ap9co5g** result;
	NI hc;
	NI index;
	result = (tySequence__EhfJ5cVWpPFG1tw09ap9co5g**)0;
	{
		NI T3_;
		NI correctSizeX60gensym204_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym204_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__hi4XF2kW6f9aL7Qx8ito3Rw*) newSeq((&NTIkeyvaluepairseq__hi4XF2kW6f9aL7Qx8ito3Rw_), ((NI) (correctSizeX60gensym204_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__docgen_3660((*t), key, (&hc));
	{
		if (!(index < ((NI) 0))) goto LA8_;
		{
			NI T12_;
			NI correctSizeX60gensym209_;
			T12_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T12_ == ((NI) 0))) goto LA13_;
			correctSizeX60gensym209_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__hi4XF2kW6f9aL7Qx8ito3Rw*) newSeq((&NTIkeyvaluepairseq__hi4XF2kW6f9aL7Qx8ito3Rw_), ((NI) (correctSizeX60gensym209_))));
		}
		LA13_: ;
		{
			NIM_BOOL T17_;
			T17_ = (NIM_BOOL)0;
			T17_ = mustRehash__docgen_3952((*t));
			if (!T17_) goto LA18_;
			enlarge__docgen_4105(t);
			index = rawGetKnownHC__docgen_4578((*t), key, hc);
		}
		LA18_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__docgen_4409(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA8_: ;
	result = (&(*t).data->data[index].Field2);
	return result;
}
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_417)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__pureZhashes_279(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqStrings(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__packagesZdocutilsZrstgen_410)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key) {
	NIM_BOOL result;
	NI hc;
	NI T1_;
	result = (NIM_BOOL)0;
	hc = (NI)0;
	T1_ = (NI)0;
	T1_ = rawGet__packagesZdocutilsZrstgen_417(t, key, (&hc));
	result = (((NI) 0) <= T1_);
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_995)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_1448)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, tySequence__pUxI6Ljo6IKKHXKOZkQ7Og** data, NimStringDesc* key, NI val, NI hc, NI h) {
	NimStringDesc* T1_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1; (*data)->data[h].Field1 = copyStringRC1(key);
	if (T1_) nimGCunrefNoCycle(T1_);
	(*data)->data[h].Field2 = val;
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_1148)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t) {
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* n;
	NI T1_;
	tySequence__pUxI6Ljo6IKKHXKOZkQ7Og* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					NimStringDesc* T17_;
					NI T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					T17_ = NIM_NIL;
					T17_ = n->data[i].Field1;
					asgnRef((void**) (&n->data[i].Field1), NIM_NIL);
					T18_ = (NI)0;
					T18_ = n->data[i].Field2;
					n->data[i].Field2 = 0;
					rawInsert__packagesZdocutilsZrstgen_1448(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_1617)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___packagesZdocutilsZrstgen_822)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ* t, NimStringDesc* key, NI val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym20_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym20_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) (correctSizeX60gensym20_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__packagesZdocutilsZrstgen_417((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		(*t).data->data[index].Field2 = val;
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym23_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym23_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__pUxI6Ljo6IKKHXKOZkQ7Og*) newSeq((&NTIkeyvaluepairseq__pUxI6Ljo6IKKHXKOZkQ7Og_), ((NI) (correctSizeX60gensym23_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__packagesZdocutilsZrstgen_995((*t));
			if (!T18_) goto LA19_;
			enlarge__packagesZdocutilsZrstgen_1148(t);
			index = rawGetKnownHC__packagesZdocutilsZrstgen_1617((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__packagesZdocutilsZrstgen_1448(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, getOrDefault__packagesZdocutilsZrstgen_718)(tyObject_Table__i55W8RrwGKsG9cl0sAKxgkQ t, NimStringDesc* key) {
	NI result;
	NI hcX60gensym17_;
	NI indexX60gensym17_;
	result = (NI)0;
	hcX60gensym17_ = (NI)0;
	indexX60gensym17_ = rawGet__packagesZdocutilsZrstgen_417(t, key, (&hcX60gensym17_));
	{
		if (!(((NI) 0) <= indexX60gensym17_)) goto LA3_;
		result = t.data->data[indexX60gensym17_].Field2;
	}
	LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__docgen_6539)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__EhfJ5cVWpPFG1tw09ap9co5g**, X5BX5D___docgen_6813)(tyObject_Table__aJYy01k1JDYeFrFCvIyOlw* t, NimStringDesc* key) {
	tySequence__EhfJ5cVWpPFG1tw09ap9co5g** result;
	NI hcX60gensym22_;
	NI indexX60gensym22_;
	result = (tySequence__EhfJ5cVWpPFG1tw09ap9co5g**)0;
	hcX60gensym22_ = (NI)0;
	indexX60gensym22_ = rawGet__docgen_3660((*t), key, (&hcX60gensym22_));
	{
		if (!(((NI) 0) <= indexX60gensym22_)) goto LA3_;
		result = (&(*t).data->data[indexX60gensym22_].Field2);
	}
	goto LA1_;
	LA3_: ;
	{
		raiseKeyError__msgs_300(key);
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__docgen_5892)(tyObject_Table__Ji6x6JQ0gVMaFr8AIk18Ug t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initTable__packagesZdocutilsZrstgen_6728)(NI initialSize, tyObject_Table__myGXmFdFAc6beAdGFLRvEQ* Result) {
	NI correctSizeX60gensym81_;
	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
	(*Result).counter = 0;
	correctSizeX60gensym81_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
	(*Result).counter = ((NI) 0);
	unsureAsgnRef((void**) (&(*Result).data), (tySequence__MVOolrgzxbiYsd7sgvFfFw*) newSeq((&NTIkeyvaluepairseq__MVOolrgzxbiYsd7sgvFfFw_), ((NI) (correctSizeX60gensym81_))));
}
N_LIB_PRIVATE N_NIMCALL(NI, len__packagesZdocutilsZrstgen_5642)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t) {
	NI result;
	result = (NI)0;
	result = t.counter;
	return result;
}
static N_INLINE(NI, rawGet__packagesZdocutilsZrstgen_6268)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, NI* hc) {
	NI result;
	NI h;
	NI T10_;
{	result = (NI)0;
	(*hc) = hash__packagesZdocutilsZrstgen_1990(key);
	{
		if (!((*hc) == ((NI) 0))) goto LA3_;
		(*hc) = ((NI) 314159265);
	}
	LA3_: ;
	{
		NI T7_;
		T7_ = (t.data ? t.data->Sup.len : 0);
		if (!(T7_ == ((NI) 0))) goto LA8_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA8_: ;
	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)((*hc) & T10_);
	{
		while (1) {
			NIM_BOOL T13_;
			NI T20_;
			T13_ = (NIM_BOOL)0;
			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T13_) goto LA12;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = (t.data->data[h].Field0 == (*hc));
				if (!(T16_)) goto LA17_;
				T16_ = eqeq___packagesZdocutilsZrstgen_6486(t.data->data[h].Field1, key);
				LA17_: ;
				if (!T16_) goto LA18_;
				result = h;
				goto BeforeRet_;
			}
			LA18_: ;
			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T20_);
		} LA12: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__packagesZdocutilsZrstgen_7061)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	result = (NIM_BOOL)0;
	T1_ = (NIM_BOOL)0;
	T2_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
	if (T1_) goto LA3_;
	T4_ = (t.data ? t.data->Sup.len : 0);
	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
	LA3_: ;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__packagesZdocutilsZrstgen_7522)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ* t, tySequence__MVOolrgzxbiYsd7sgvFfFw** data, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, tySequence__CJOrWaM0fWekVRTE2AotGw* val, NI hc, NI h) {
	NimStringDesc* T1_;
	NimStringDesc* T2_;
	NimStringDesc* T3_;
	NimStringDesc* T4_;
	T1_ = NIM_NIL;
	T1_ = (*data)->data[h].Field1.keyword; (*data)->data[h].Field1.keyword = copyStringRC1(key.keyword);
	if (T1_) nimGCunrefNoCycle(T1_);
	T2_ = NIM_NIL;
	T2_ = (*data)->data[h].Field1.link; (*data)->data[h].Field1.link = copyStringRC1(key.link);
	if (T2_) nimGCunrefNoCycle(T2_);
	T3_ = NIM_NIL;
	T3_ = (*data)->data[h].Field1.linkTitle; (*data)->data[h].Field1.linkTitle = copyStringRC1(key.linkTitle);
	if (T3_) nimGCunrefNoCycle(T3_);
	T4_ = NIM_NIL;
	T4_ = (*data)->data[h].Field1.linkDesc; (*data)->data[h].Field1.linkDesc = copyStringRC1(key.linkDesc);
	if (T4_) nimGCunrefNoCycle(T4_);
	genericSeqAssign((&(*data)->data[h].Field2), val, (&NTIseqLindexentryT__CJOrWaM0fWekVRTE2AotGw_));
	(*data)->data[h].Field0 = hc;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__packagesZdocutilsZrstgen_7214)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ* t) {
	tySequence__MVOolrgzxbiYsd7sgvFfFw* n;
	NI T1_;
	tySequence__MVOolrgzxbiYsd7sgvFfFw* T2_;
	n = NIM_NIL;
	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
	n = (tySequence__MVOolrgzxbiYsd7sgvFfFw*) newSeq((&NTIkeyvaluepairseq__MVOolrgzxbiYsd7sgvFfFw_), ((NI) ((NI)(T1_ * ((NI) 2)))));
	T2_ = NIM_NIL;
	T2_ = (*t).data;
	unsureAsgnRef((void**) (&(*t).data), n);
	n = T2_;
	{
		NI i;
		NI colontmp_;
		NI T4_;
		NI res;
		i = (NI)0;
		colontmp_ = (NI)0;
		T4_ = ((n ? n->Sup.len : 0)-1);
		colontmp_ = T4_;
		res = ((NI) 0);
		{
			while (1) {
				NI eh;
				if (!(res <= colontmp_)) goto LA6;
				i = res;
				eh = n->data[i].Field0;
				{
					NIM_BOOL T9_;
					NI j;
					NI T12_;
					tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A T17_;
					tySequence__CJOrWaM0fWekVRTE2AotGw* T18_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZtables_31(eh);
					if (!T9_) goto LA10_;
					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
					j = (NI)(eh & T12_);
					{
						while (1) {
							NIM_BOOL T15_;
							NI T16_;
							T15_ = (NIM_BOOL)0;
							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
							if (!T15_) goto LA14;
							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
							j = nextTry__pureZcollectionsZtables_34(j, T16_);
						} LA14: ;
					}
					nimZeroMem((void*)(&T17_), sizeof(tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A));
					T17_.keyword = n->data[i].Field1.keyword;
					T17_.link = n->data[i].Field1.link;
					T17_.linkTitle = n->data[i].Field1.linkTitle;
					T17_.linkDesc = n->data[i].Field1.linkDesc;
					unsureAsgnRef((void**)&n->data[i].Field1.keyword, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.link, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.linkTitle, NIM_NIL);
					unsureAsgnRef((void**)&n->data[i].Field1.linkDesc, NIM_NIL);
					T18_ = NIM_NIL;
					T18_ = n->data[i].Field2;
					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
					rawInsert__packagesZdocutilsZrstgen_7522(t, (&(*t).data), T17_, T18_, eh, j);
				}
				LA10_: ;
				res += ((NI) 1);
			} LA6: ;
		}
	}
}
static N_INLINE(NI, rawGetKnownHC__packagesZdocutilsZrstgen_7691)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ t, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, NI hc) {
	NI result;
	NI h;
	NI T6_;
{	result = (NI)0;
	{
		NI T3_;
		T3_ = (t.data ? t.data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		result = ((NI) -1);
		goto BeforeRet_;
	}
	LA4_: ;
	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
	h = (NI)(hc & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t.data->data[h].Field0 == hc);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___packagesZdocutilsZrstgen_6486(t.data->data[h].Field1, key);
				LA13_: ;
				if (!T12_) goto LA14_;
				result = h;
				goto BeforeRet_;
			}
			LA14_: ;
			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
			h = nextTry__pureZcollectionsZtables_34(h, T16_);
		} LA8: ;
	}
	result = (NI)(((NI) -1) - h);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___packagesZdocutilsZrstgen_6888)(tyObject_Table__myGXmFdFAc6beAdGFLRvEQ* t, tyObject_IndexEntry__fxsh1PMzYjb64GNihAaS4A key, tySequence__CJOrWaM0fWekVRTE2AotGw* val) {
	NI hc;
	NI index;
	{
		NI T3_;
		NI correctSizeX60gensym91_;
		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
		if (!(T3_ == ((NI) 0))) goto LA4_;
		correctSizeX60gensym91_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
		(*t).counter = ((NI) 0);
		unsureAsgnRef((void**) (&(*t).data), (tySequence__MVOolrgzxbiYsd7sgvFfFw*) newSeq((&NTIkeyvaluepairseq__MVOolrgzxbiYsd7sgvFfFw_), ((NI) (correctSizeX60gensym91_))));
	}
	LA4_: ;
	hc = (NI)0;
	index = rawGet__packagesZdocutilsZrstgen_6268((*t), key, (&hc));
	{
		if (!(((NI) 0) <= index)) goto LA8_;
		genericSeqAssign((&(*t).data->data[index].Field2), val, (&NTIseqLindexentryT__CJOrWaM0fWekVRTE2AotGw_));
	}
	goto LA6_;
	LA8_: ;
	{
		{
			NI T13_;
			NI correctSizeX60gensym94_;
			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
			if (!(T13_ == ((NI) 0))) goto LA14_;
			correctSizeX60gensym94_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
			(*t).counter = ((NI) 0);
			unsureAsgnRef((void**) (&(*t).data), (tySequence__MVOolrgzxbiYsd7sgvFfFw*) newSeq((&NTIkeyvaluepairseq__MVOolrgzxbiYsd7sgvFfFw_), ((NI) (correctSizeX60gensym94_))));
		}
		LA14_: ;
		{
			NIM_BOOL T18_;
			T18_ = (NIM_BOOL)0;
			T18_ = mustRehash__packagesZdocutilsZrstgen_7061((*t));
			if (!T18_) goto LA19_;
			enlarge__packagesZdocutilsZrstgen_7214(t);
			index = rawGetKnownHC__packagesZdocutilsZrstgen_7691((*t), key, hc);
		}
		LA19_: ;
		index = (NI)(((NI) -1) - index);
		rawInsert__packagesZdocutilsZrstgen_7522(t, (&(*t).data), key, val, hc, index);
		(*t).counter += ((NI) 1);
	}
	LA6_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__vmprofiler_758)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t) {
	NI result;
	result = (NI)0;
	result = (*t).counter;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_1131)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	NI hc;
	NI i;
	NI mskX60gensym36_;
	NI T1_;
	hc = (NI)0;
	i = rawGet__options_865((*t), key, (&hc));
	T1_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
	mskX60gensym36_ = T1_;
	{
		if (!(((NI) 0) <= i)) goto LA4_;
		(*t).counter -= ((NI) 1);
		{
			{
				while (1) {
					NI jX60gensym36_;
					NI rX60gensym36_;
					jX60gensym36_ = i;
					rX60gensym36_ = jX60gensym36_;
					(*t).data->data[i].Field0 = ((NI) 0);
					nimZeroMem((void*)(&(*t).data->data[i].Field1), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
					nimZeroMem((void*)(&(*t).data->data[i].Field2), sizeof(tyObject_ProfileInfo__le1imru0p6WwvUctTtOlIw));
					{
						while (1) {
							i = (NI)((NI)(i + ((NI) 1)) & mskX60gensym36_);
							{
								NIM_BOOL T13_;
								T13_ = (NIM_BOOL)0;
								T13_ = isEmpty__pureZcollectionsZtables_28((*t).data->data[i].Field0);
								if (!T13_) goto LA14_;
								goto LA6;
							}
							LA14_: ;
							rX60gensym36_ = (NI)((*t).data->data[i].Field0 & mskX60gensym36_);
							{
								NIM_BOOL T18_;
								NIM_BOOL T19_;
								NIM_BOOL T20_;
								NIM_BOOL T23_;
								NIM_BOOL T26_;
								T18_ = (NIM_BOOL)0;
								T19_ = (NIM_BOOL)0;
								T20_ = (NIM_BOOL)0;
								T20_ = (rX60gensym36_ <= i);
								if (!(T20_)) goto LA21_;
								T20_ = (jX60gensym36_ < rX60gensym36_);
								LA21_: ;
								T19_ = T20_;
								if (T19_) goto LA22_;
								T23_ = (NIM_BOOL)0;
								T23_ = (jX60gensym36_ < rX60gensym36_);
								if (!(T23_)) goto LA24_;
								T23_ = (i < jX60gensym36_);
								LA24_: ;
								T19_ = T23_;
								LA22_: ;
								T18_ = T19_;
								if (T18_) goto LA25_;
								T26_ = (NIM_BOOL)0;
								T26_ = (i < jX60gensym36_);
								if (!(T26_)) goto LA27_;
								T26_ = (rX60gensym36_ <= i);
								LA27_: ;
								T18_ = T26_;
								LA25_: ;
								if (!!(T18_)) goto LA28_;
								goto LA9;
							}
							LA28_: ;
						}
					} LA9: ;
					(*t).data->data[jX60gensym36_] = (*t).data->data[i];
					nimZeroMem((void*)(&(*t).data->data[i]), sizeof(tyTuple__ucLo1ofiZatslecSftPI2A));
				}
			}
		} LA6: ;
	}
	LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, del__vmprofiler_1033)(tyObject_Table__l6AB9cIrSdEYtCGu5YO9b61Q* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q key) {
	del__vmprofiler_1131(t, key);
}
