/* Generated by Nim Compiler v2.2.10 */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.h"
#include <string.h>
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content tySequence__4eRCaZmrYLLw2k30GPTiMw_Content;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
typedef struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content;
typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
typedef struct tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg;
typedef struct tySequence__s3NGK5xFNK6fPmXupxoolA tySequence__s3NGK5xFNK6fPmXupxoolA;
typedef struct tySequence__s3NGK5xFNK6fPmXupxoolA_Content tySequence__s3NGK5xFNK6fPmXupxoolA_Content;
typedef struct tyTuple__FFspgHRWev9aDuj0fEpj9bUw tyTuple__FFspgHRWev9aDuj0fEpj9bUw;
typedef struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA;
typedef struct tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag;
typedef struct tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA;
typedef struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw tySequence__G9cHmkmNmy6ZlkFfXcex3Hw;
typedef struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content;
typedef struct tyTuple__JqV0huqZNAHtnE3agKOyZg tyTuple__JqV0huqZNAHtnE3agKOyZg;
typedef struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA;
typedef struct tyTuple__9ay7GjiPeMMFnmoYwk84apw tyTuple__9ay7GjiPeMMFnmoYwk84apw;
typedef struct tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ;
typedef struct tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag;
typedef struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw tySequence__1I4GqOPEtd9ark9cZ2UT20tw;
typedef struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content;
typedef struct tyTuple__PijKblgFKtbdIstVEwjmCw tyTuple__PijKblgFKtbdIstVEwjmCw;
typedef struct tySequence__kq9c1GdJLvkYJeijBmsJ20A tySequence__kq9c1GdJLvkYJeijBmsJ20A;
typedef struct tySequence__kq9c1GdJLvkYJeijBmsJ20A_Content tySequence__kq9c1GdJLvkYJeijBmsJ20A_Content;
typedef struct tyTuple__UGkfKgNvKJXAR6NX6Y5gaw tyTuple__UGkfKgNvKJXAR6NX6Y5gaw;
typedef struct tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg;
typedef struct tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A;
typedef struct tySequence__H9bHW2kkjp26MABVBZRr8Ig tySequence__H9bHW2kkjp26MABVBZRr8Ig;
typedef struct tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content;
typedef struct tyTuple__EJOd8NnRbGOjqpW2d6uq2g tyTuple__EJOd8NnRbGOjqpW2d6uq2g;
struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
  NI len; tySequence__4eRCaZmrYLLw2k30GPTiMw_Content* p;
};
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
	NI Field0;
	NimStringV2 Field1;
};
struct tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw {
	tySequence__4eRCaZmrYLLw2k30GPTiMw data;
	NI counter;
};
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
  NI len; tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content* p;
};
struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
	NI Field0;
	NI Field1;
};
struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
	NI Field0;
	tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
};
struct tySequence__s3NGK5xFNK6fPmXupxoolA {
  NI len; tySequence__s3NGK5xFNK6fPmXupxoolA_Content* p;
};
struct tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg {
	tySequence__s3NGK5xFNK6fPmXupxoolA data;
	NI counter;
};
struct tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA {
	NU16 line;
	NI16 col;
	NI32 fileIndex;
};
struct tyTuple__FFspgHRWev9aDuj0fEpj9bUw {
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field0;
	NI Field1;
};
struct tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag {
	NI Field0;
	tyTuple__FFspgHRWev9aDuj0fEpj9bUw Field1;
};
struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw {
  NI len; tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content* p;
};
struct tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA {
	tySequence__G9cHmkmNmy6ZlkFfXcex3Hw data;
	NI counter;
};
struct tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA {
	NI32 module;
	NI32 item;
};
struct tyTuple__JqV0huqZNAHtnE3agKOyZg {
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
};
struct tyTuple__9ay7GjiPeMMFnmoYwk84apw {
	NI Field0;
	tyTuple__JqV0huqZNAHtnE3agKOyZg Field1;
};
struct tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ {
	tySequence__Bis5AbpONWcIRrPyPJS8Yw data;
	NI counter;
};
struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw {
  NI len; tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content* p;
};
struct tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag {
	tySequence__1I4GqOPEtd9ark9cZ2UT20tw data;
	NI counter;
};
struct tyTuple__PijKblgFKtbdIstVEwjmCw {
	NI Field0;
	tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA Field1;
};
struct tySequence__kq9c1GdJLvkYJeijBmsJ20A {
  NI len; tySequence__kq9c1GdJLvkYJeijBmsJ20A_Content* p;
};
typedef NU8 tyArray__dnD8kjh6rJ1Yy5jHvid0Ow[16];
struct tyTuple__UGkfKgNvKJXAR6NX6Y5gaw {
	NI Field0;
	tyArray__dnD8kjh6rJ1Yy5jHvid0Ow Field1;
};
struct tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg {
	tySequence__kq9c1GdJLvkYJeijBmsJ20A data;
	NI counter;
};
struct tySequence__H9bHW2kkjp26MABVBZRr8Ig {
  NI len; tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content* p;
};
struct tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A {
	tySequence__H9bHW2kkjp26MABVBZRr8Ig data;
	NI counter;
};
struct tyTuple__EJOd8NnRbGOjqpW2d6uq2g {
	NI Field0;
	tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA Field1;
};
struct tySequence__4eRCaZmrYLLw2k30GPTiMw_Content { NI cap; tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE]; };
struct tySequence__Bis5AbpONWcIRrPyPJS8Yw_Content { NI cap; tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE]; };
struct tySequence__s3NGK5xFNK6fPmXupxoolA_Content { NI cap; tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag data[SEQ_DECL_SIZE]; };
struct tySequence__G9cHmkmNmy6ZlkFfXcex3Hw_Content { NI cap; tyTuple__9ay7GjiPeMMFnmoYwk84apw data[SEQ_DECL_SIZE]; };
struct tySequence__1I4GqOPEtd9ark9cZ2UT20tw_Content { NI cap; tyTuple__PijKblgFKtbdIstVEwjmCw data[SEQ_DECL_SIZE]; };
struct tySequence__kq9c1GdJLvkYJeijBmsJ20A_Content { NI cap; tyTuple__UGkfKgNvKJXAR6NX6Y5gaw data[SEQ_DECL_SIZE]; };
struct tySequence__H9bHW2kkjp26MABVBZRr8Ig_Content { NI cap; tyTuple__EJOd8NnRbGOjqpW2d6uq2g data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, init__options_u1065)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NI initialSize_p1);
static N_INLINE(NI, slotsNeeded__pureZcollectionsZsets_u51)(NI count_p0);
N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_u255)(NI x_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__options_u1081)(tySequence__4eRCaZmrYLLw2k30GPTiMw* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__options_u2263)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_u587)(NimStringV2 x_p0);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_u40)(NI hcode_p0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_BOOL, equalMem__system_u1750)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2);
static N_INLINE(NI, nextTry__pureZcollectionsZsets_u43)(NI h_p0, NI maxHash_p1);
static N_INLINE(NIM_BOOL, mustRehash__options_u2515)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_u2695)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0);
static N_INLINE(NI, rawGetKnownHC__options_u2930)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_u3268)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, tySequence__4eRCaZmrYLLw2k30GPTiMw* data_p1, NimStringV2 key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1204)(tySequence__4eRCaZmrYLLw2k30GPTiMw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, init__lookups_u819)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, NI initialSize_p1);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__lookups_u835)(tySequence__s3NGK5xFNK6fPmXupxoolA* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__lookups_u1078)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__lookups_u1085)(tyTuple__FFspgHRWev9aDuj0fEpj9bUw x_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___lookups_u1322)(tyTuple__FFspgHRWev9aDuj0fEpj9bUw x_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw y_p1);
static N_INLINE(NIM_BOOL, mustRehash__lookups_u1354)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lookups_u1552)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0);
static N_INLINE(NI, rawGetKnownHC__lookups_u1793)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lookups_u2141)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tySequence__s3NGK5xFNK6fPmXupxoolA* data_p1, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u915)(tySequence__s3NGK5xFNK6fPmXupxoolA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, init__concepts_u1506)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, NI initialSize_p1);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__concepts_u560)(tySequence__G9cHmkmNmy6ZlkFfXcex3Hw* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__concepts_u321)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA t_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__concepts_u328)(tyTuple__JqV0huqZNAHtnE3agKOyZg x_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___concepts_u374)(tyTuple__JqV0huqZNAHtnE3agKOyZg x_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg y_p1);
static N_INLINE(NIM_BOOL, mustRehash__concepts_u587)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__concepts_u659)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0);
static N_INLINE(NI, rawGetKnownHC__concepts_u711)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA t_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__concepts_u772)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tySequence__G9cHmkmNmy6ZlkFfXcex3Hw* data_p1, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u408)(tySequence__G9cHmkmNmy6ZlkFfXcex3Hw dest_p0);
static N_INLINE(NIM_BOOL, exclImpl__concepts_u907)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1);
N_LIB_PRIVATE N_NIMCALL(void, reset__concepts_u939)(tyTuple__JqV0huqZNAHtnE3agKOyZg* obj_p0);
static N_INLINE(NIM_BOOL, isEmpty__pureZcollectionsZsets_u37)(NI hcode_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___concepts_u972)(tyTuple__9ay7GjiPeMMFnmoYwk84apw* dest_p0);
static N_INLINE(NI, rawGet__sigmatch_u6989)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__sigmatch_u6996)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___sigmatch_u7236)(tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ x_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ y_p1);
static N_INLINE(NI, rawGet__nilcheck_u6221)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__lineinfos_u261)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA i_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___msgs_u1103)(tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA a_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA b_p1);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__nilcheck_u6685)(tySequence__1I4GqOPEtd9ark9cZ2UT20tw* s_p0, NI len_p1);
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_u6712)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_u6910)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0);
static N_INLINE(NI, rawGetKnownHC__nilcheck_u7151)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_u7495)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0, tySequence__1I4GqOPEtd9ark9cZ2UT20tw* data_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___nilcheck_u6479)(tySequence__1I4GqOPEtd9ark9cZ2UT20tw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__importer_u377)(tySequence__Bis5AbpONWcIRrPyPJS8Yw* s_p0, NI len_p1);
static N_INLINE(NIM_BOOL, mustRehash__importer_u404)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_u602)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0);
static N_INLINE(NI, rawGetKnownHC__importer_u843)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_u1191)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0, tySequence__Bis5AbpONWcIRrPyPJS8Yw* data_p1, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u3377)(tySequence__Bis5AbpONWcIRrPyPJS8Yw dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__cgen_u6335)(tySequence__kq9c1GdJLvkYJeijBmsJ20A* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__cgen_u6355)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg t_p0, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__modulegraphs_u10758)(tyArray__dnD8kjh6rJ1Yy5jHvid0Ow u_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___modulegraphs_u10735)(tyArray__dnD8kjh6rJ1Yy5jHvid0Ow a_p0, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow b_p1);
static N_INLINE(NIM_BOOL, mustRehash__cgen_u6610)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_u6808)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* s_p0);
static N_INLINE(NI, rawGetKnownHC__cgen_u7049)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg t_p0, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_u7393)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* s_p0, tySequence__kq9c1GdJLvkYJeijBmsJ20A* data_p1, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p2, NI hc_p3, NI h_p4);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___cgendata_u919)(tySequence__kq9c1GdJLvkYJeijBmsJ20A dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, newSeq__icZintegrity_u138)(tySequence__H9bHW2kkjp26MABVBZRr8Ig* s_p0, NI len_p1);
static N_INLINE(NI, rawGet__icZintegrity_u222)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI* hc_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hash__ast_u621)(tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA x_p0);
static N_INLINE(NIM_BOOL, eqeq___ast_u617)(tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA a_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA b_p1);
static N_INLINE(NIM_BOOL, mustRehash__icZintegrity_u522)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0);
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZintegrity_u708)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0);
static N_INLINE(NI, rawGetKnownHC__icZintegrity_u957)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI hc_p2);
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZintegrity_u1317)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0, tySequence__H9bHW2kkjp26MABVBZRr8Ig* data_p1, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p2, NI hc_p3, NI h_p4);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZintegrity_u487)(tySequence__H9bHW2kkjp26MABVBZRr8Ig dest_p0);
extern NIM_BOOL nimInErrorMode__system_u4138;
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1204)(tySequence__4eRCaZmrYLLw2k30GPTiMw dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			eqdestroy___system_u2691(dest_p0.p->data[colontmp_].Field1);
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__QeWl6B6ffS4pU6WWrtcrDw));
}
}
static N_INLINE(void, nimSetMem__system_u2172)(void* a_p0, int v_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memset(a_p0, v_p1, ((size_t) (size_p2)));
}
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1) {
	nimSetMem__system_u2172(p_p0, ((int)0), size_p1);
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4138);
	return result;
}
static N_INLINE(NI, slotsNeeded__pureZcollectionsZsets_u51)(NI count_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = nextPowerOfTwo__pureZmath_u255((NI)((NI)((NI)(count_p0 / ((NI)2)) + count_p0) + ((NI)4)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___options_u1159)(tyTuple__QeWl6B6ffS4pU6WWrtcrDw dest_p0) {
	eqdestroy___system_u2691(dest_p0.Field1);
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___options_u1156)(tyTuple__QeWl6B6ffS4pU6WWrtcrDw* dest_p0) {
	(*dest_p0).Field0 = 0;
	(*dest_p0).Field1.len = 0; (*dest_p0).Field1.p = NIM_NIL;
}
N_LIB_PRIVATE N_NIMCALL(void, init__options_u1065)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NI initialSize_p1) {
	NI correctSizeX60gensym12__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	correctSizeX60gensym12__1 = slotsNeeded__pureZcollectionsZsets_u51((initialSize_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s_p0).counter = ((NI)0);
	newSeq__options_u1081((&(*s_p0).data), (correctSizeX60gensym12__1));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw, initHashSet__options_u1051)(NI initialSize_p0) {
	tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw));
	init__options_u1065((&result), initialSize_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZsets_u40)(NI hcode_p0) {
	NIM_BOOL result;
	result = !((hcode_p0 == ((NI)0)));
	return result;
}
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2) {
	int result;
	result = memcmp(a_p0, b_p1, ((size_t) (size_p2)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_u1750)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1750(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, nextTry__pureZcollectionsZsets_u43)(NI h_p0, NI maxHash_p1) {
	NI result;
	result = (NI)((NI)(h_p0 + ((NI)1)) & maxHash_p1);
	return result;
}
static N_INLINE(NI, rawGet__options_u2263)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__pureZhashes_u587(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqStrings(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__options_u2515)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__options_u2930)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw t_p0, NimStringV2 key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqStrings(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__options_u3268)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, tySequence__4eRCaZmrYLLw2k30GPTiMw* data_p1, NimStringV2 key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym23__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym23__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__options_u1081((&(*s_p0).data), (correctSizeX60gensym23__1));
	}
LA4_: ;
	eqcopy___system_u2694((&(*data_p1).p->data[h_p4].Field1), key_p2);
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__options_u2695)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0) {
	tySequence__4eRCaZmrYLLw2k30GPTiMw n_1;
	NI T1_;
	tySequence__4eRCaZmrYLLw2k30GPTiMw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__options_u1081((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__options_u2930((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw*)0;
					T13_ = s_p0;
					rawInsert__options_u3268(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___options_u1204(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__options_u2181)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NimStringV2 key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym14__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym14__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__options_u1081((&(*s_p0).data), (correctSizeX60gensym14__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__options_u2263((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__options_u2515((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__options_u2695(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__options_u2930((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw*)0;
		T15_ = s_p0;
		rawInsert__options_u3268(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___semdata_u3377)(tySequence__Bis5AbpONWcIRrPyPJS8Yw dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__NAaJgGVgNmlGoqmiWxdOHQ));
}
}
N_LIB_PRIVATE N_NIMCALL(void, init__lookups_u819)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, NI initialSize_p1) {
	NI correctSizeX60gensym46__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	correctSizeX60gensym46__1 = slotsNeeded__pureZcollectionsZsets_u51((initialSize_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s_p0).counter = ((NI)0);
	newSeq__lookups_u835((&(*s_p0).data), (correctSizeX60gensym46__1));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg, initHashSet__lookups_u805)(NI initialSize_p0) {
	tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg));
	init__lookups_u819((&result), initialSize_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__lookups_u1078)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__lookups_u1085(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___lookups_u1322(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__lookups_u1354)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__lookups_u1793)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg t_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___lookups_u1322(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__lookups_u2141)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tySequence__s3NGK5xFNK6fPmXupxoolA* data_p1, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym56__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym56__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__lookups_u835((&(*s_p0).data), (correctSizeX60gensym56__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u915)(tySequence__s3NGK5xFNK6fPmXupxoolA dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__pX68bRYqY0ZF09cQ4s0LV9ag));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__lookups_u1552)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0) {
	tySequence__s3NGK5xFNK6fPmXupxoolA n_1;
	NI T1_;
	tySequence__s3NGK5xFNK6fPmXupxoolA T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__lookups_u835((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__lookups_u1793((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg*)0;
					T13_ = s_p0;
					rawInsert__lookups_u2141(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___lookups_u915(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__lookups_u989)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* s_p0, tyTuple__FFspgHRWev9aDuj0fEpj9bUw key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym47__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym47__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__lookups_u835((&(*s_p0).data), (correctSizeX60gensym47__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__lookups_u1078((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__lookups_u1354((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__lookups_u1552(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__lookups_u1793((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg*)0;
		T16_ = s_p0;
		rawInsert__lookups_u2141(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___lookups_u952)(tyObject_HashSet__cwwZ9cvJOQWTrzJmhVXTggg dest_p0) {
	eqdestroy___lookups_u915(dest_p0.data);
}
N_LIB_PRIVATE N_NIMCALL(void, init__concepts_u1506)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, NI initialSize_p1) {
	NI correctSizeX60gensym120__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	correctSizeX60gensym120__1 = slotsNeeded__pureZcollectionsZsets_u51((initialSize_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*s_p0).counter = ((NI)0);
	newSeq__concepts_u560((&(*s_p0).data), (correctSizeX60gensym120__1));
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA, initHashSet__concepts_u1492)(NI initialSize_p0) {
	tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA));
	init__concepts_u1506((&result), initialSize_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__concepts_u321)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA t_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__concepts_u328(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___concepts_u374(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__concepts_u304)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = 0;
	index_1 = rawGet__concepts_u321(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__concepts_u587)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__concepts_u711)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA t_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___concepts_u374(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__concepts_u772)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tySequence__G9cHmkmNmy6ZlkFfXcex3Hw* data_p1, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym54__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym54__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__concepts_u560((&(*s_p0).data), (correctSizeX60gensym54__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___concepts_u408)(tySequence__G9cHmkmNmy6ZlkFfXcex3Hw dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__9ay7GjiPeMMFnmoYwk84apw));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__concepts_u659)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0) {
	tySequence__G9cHmkmNmy6ZlkFfXcex3Hw n_1;
	NI T1_;
	tySequence__G9cHmkmNmy6ZlkFfXcex3Hw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__concepts_u560((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__concepts_u711((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA*)0;
					T13_ = s_p0;
					rawInsert__concepts_u772(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___concepts_u408(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__concepts_u526)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym47__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym47__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__concepts_u560((&(*s_p0).data), (correctSizeX60gensym47__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__concepts_u321((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__concepts_u587((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__concepts_u659(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__concepts_u711((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA*)0;
		T15_ = s_p0;
		rawInsert__concepts_u772(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, isEmpty__pureZcollectionsZsets_u37)(NI hcode_p0) {
	NIM_BOOL result;
	result = (hcode_p0 == ((NI)0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___concepts_u972)(tyTuple__9ay7GjiPeMMFnmoYwk84apw* dest_p0) {
	(*dest_p0).Field0 = 0;
	(*dest_p0).Field1.Field0.module = 0;
	(*dest_p0).Field1.Field0.item = 0;
	(*dest_p0).Field1.Field1.module = 0;
	(*dest_p0).Field1.Field1.item = 0;
}
static N_INLINE(NIM_BOOL, exclImpl__concepts_u907)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI i_1;
	NI msk_1;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = (NI)0;
	i_1 = rawGet__concepts_u321((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T1_ = ((*s_p0).data.len-1);
	msk_1 = T1_;
	result = NIM_TRUE;
	{
		if (!(((NI)0) <= i_1)) goto LA4_;
		result = NIM_FALSE;
		(*s_p0).counter -= ((NI)1);
		{
			while (1) {
				NI j_1;
				NI r_1;
				j_1 = i_1;
				r_1 = j_1;
				(*s_p0).data.p->data[i_1].Field0 = ((NI)0);
				reset__concepts_u939((&(*s_p0).data.p->data[i_1].Field1));
				{
					while (1) {
						i_1 = (NI)((NI)(i_1 + ((NI)1)) & msk_1);
						{
							NIM_BOOL T12_;
							T12_ = (NIM_BOOL)0;
							T12_ = isEmpty__pureZcollectionsZsets_u37((*s_p0).data.p->data[i_1].Field0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T12_) goto LA13_;
							goto BeforeRet_;
						}
LA13_: ;
						r_1 = (NI)((*s_p0).data.p->data[i_1].Field0 & msk_1);
						{
							NIM_BOOL T17_;
							NIM_BOOL T18_;
							NIM_BOOL T19_;
							NIM_BOOL T22_;
							NIM_BOOL T25_;
							T17_ = (NIM_BOOL)0;
							T18_ = (NIM_BOOL)0;
							T19_ = (NIM_BOOL)0;
							T19_ = (r_1 <= i_1);
							if (!(T19_)) goto LA20_;
							T19_ = (j_1 < r_1);
LA20_: ;
							T18_ = T19_;
							if (T18_) goto LA21_;
							T22_ = (NIM_BOOL)0;
							T22_ = (j_1 < r_1);
							if (!(T22_)) goto LA23_;
							T22_ = (i_1 < j_1);
LA23_: ;
							T18_ = T22_;
LA21_: ;
							T17_ = T18_;
							if (T17_) goto LA24_;
							T25_ = (NIM_BOOL)0;
							T25_ = (i_1 < j_1);
							if (!(T25_)) goto LA26_;
							T25_ = (r_1 <= i_1);
LA26_: ;
							T17_ = T25_;
LA24_: ;
							if (!!(T17_)) goto LA27_;
							goto LA8;
						}
LA27_: ;
					}
				} LA8: ;
				(*s_p0).data.p->data[j_1] = (*s_p0).data.p->data[i_1];
				eqwasMoved___concepts_u972((&(*s_p0).data.p->data[i_1]));
			}
		}
	}
LA4_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, excl__concepts_u892)(tyObject_HashSet__Tp5EzBaM3JMMgg9ccjKJuQA* s_p0, tyTuple__JqV0huqZNAHtnE3agKOyZg key_p1) {
	NIM_BOOL T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	T1_ = (NIM_BOOL)0;
	T1_ = exclImpl__concepts_u907(s_p0, key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(void)(T1_);
	}BeforeRet_: ;
}
static N_INLINE(NI, rawGet__sigmatch_u6989)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__sigmatch_u6996(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___sigmatch_u7236(t_p0.data.p->data[h_1].Field1, key_p1);
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__sigmatch_u6972)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ s_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = 0;
	index_1 = rawGet__sigmatch_u6989(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__nilcheck_u6221)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__lineinfos_u261(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___msgs_u1103(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__nilcheck_u6204)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag s_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = 0;
	index_1 = rawGet__nilcheck_u6221(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__nilcheck_u6712)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__nilcheck_u7151)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag t_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___msgs_u1103(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__nilcheck_u7495)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0, tySequence__1I4GqOPEtd9ark9cZ2UT20tw* data_p1, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym57__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym57__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__nilcheck_u6685((&(*s_p0).data), (correctSizeX60gensym57__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___nilcheck_u6479)(tySequence__1I4GqOPEtd9ark9cZ2UT20tw dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__PijKblgFKtbdIstVEwjmCw));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__nilcheck_u6910)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0) {
	tySequence__1I4GqOPEtd9ark9cZ2UT20tw n_1;
	NI T1_;
	tySequence__1I4GqOPEtd9ark9cZ2UT20tw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__nilcheck_u6685((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__nilcheck_u7151((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag*)0;
					T13_ = s_p0;
					rawInsert__nilcheck_u7495(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___nilcheck_u6479(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__nilcheck_u6609)(tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* s_p0, tyObject_TLineInfo__cGj50BJ9bj3Zx09a9bMvKs8HA key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym50__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym50__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__nilcheck_u6685((&(*s_p0).data), (correctSizeX60gensym50__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__nilcheck_u6221((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__nilcheck_u6712((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__nilcheck_u6910(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__nilcheck_u7151((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__rlH7VPCOr6REDp5V7P0aag*)0;
		T15_ = s_p0;
		rawInsert__nilcheck_u7495(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, mustRehash__importer_u404)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__importer_u843)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ t_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___sigmatch_u7236(t_p0.data.p->data[h_1].Field1, key_p1);
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__importer_u1191)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0, tySequence__Bis5AbpONWcIRrPyPJS8Yw* data_p1, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym43__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym43__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__importer_u377((&(*s_p0).data), (correctSizeX60gensym43__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__importer_u602)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0) {
	tySequence__Bis5AbpONWcIRrPyPJS8Yw n_1;
	NI T1_;
	tySequence__Bis5AbpONWcIRrPyPJS8Yw T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__importer_u377((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__importer_u843((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ*)0;
					T13_ = s_p0;
					rawInsert__importer_u1191(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___semdata_u3377(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, incl__importer_u301)(tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* s_p0, tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ key_p1) {
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym36__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym36__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__importer_u377((&(*s_p0).data), (correctSizeX60gensym36__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__sigmatch_u6989((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ* T15_;
		if (!(index_1 < ((NI)0))) goto LA8_;
		{
			NIM_BOOL T12_;
			T12_ = (NIM_BOOL)0;
			T12_ = mustRehash__importer_u404((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T12_) goto LA13_;
			enlarge__importer_u602(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__importer_u843((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA13_: ;
		T15_ = (tyObject_HashSet__cx4zJRA9aTCfmpbY2J9bKwnQ*)0;
		T15_ = s_p0;
		rawInsert__importer_u1191(T15_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA8_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___cgendata_u919)(tySequence__kq9c1GdJLvkYJeijBmsJ20A dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__UGkfKgNvKJXAR6NX6Y5gaw));
}
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__cgen_u837)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw s_p0, NimStringV2 key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	hc_1 = 0;
	index_1 = rawGet__options_u2263(s_p0, key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= index_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, rawGet__cgen_u6355)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg t_p0, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__modulegraphs_u10758(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___modulegraphs_u10735(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__cgen_u6610)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__cgen_u7049)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg t_p0, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___modulegraphs_u10735(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2) {
	void* T1_;
	T1_ = (void*)0;
	T1_ = memcpy(dest_p0, source_p1, ((size_t) (size_p2)));
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__cgen_u7393)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* s_p0, tySequence__kq9c1GdJLvkYJeijBmsJ20A* data_p1, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym444__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym444__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__cgen_u6335((&(*s_p0).data), (correctSizeX60gensym444__1));
	}
LA4_: ;
	nimCopyMem((void*)(*data_p1).p->data[h_p4].Field1, (NIM_CONST void*)key_p2, sizeof(tyArray__dnD8kjh6rJ1Yy5jHvid0Ow));
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__cgen_u6808)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* s_p0) {
	tySequence__kq9c1GdJLvkYJeijBmsJ20A n_1;
	NI T1_;
	tySequence__kq9c1GdJLvkYJeijBmsJ20A T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__cgen_u6335((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__cgen_u7049((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg*)0;
					T13_ = s_p0;
					rawInsert__cgen_u7393(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___cgendata_u919(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__cgen_u6258)(tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* s_p0, tyArray__dnD8kjh6rJ1Yy5jHvid0Ow key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym435__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym435__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__cgen_u6335((&(*s_p0).data), (correctSizeX60gensym435__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__cgen_u6355((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__cgen_u6610((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__cgen_u6808(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__cgen_u7049((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__0q39c5tNe10Ccqi9bymkXwEg*)0;
		T16_ = s_p0;
		rawInsert__cgen_u7393(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, eqeq___ast_u617)(tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA a_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA b_p1) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (a_p0.item == b_p1.item);
	if (!(T1_)) goto LA2_;
	T1_ = (a_p0.module == b_p1.module);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGet__icZintegrity_u222)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI* hc_p2) {
	NI result;
	NI T1_;
	NI h_1;
	NI T11_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NI)0;
	T1_ = hash__ast_u621(key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	(*hc_p2) = T1_;
	{
		if (!((*hc_p2) == ((NI)0))) goto LA4_;
		(*hc_p2) = ((NI)314159265);
	}
LA4_: ;
	{
		NI T8_;
		T8_ = t_p0.data.len;
		if (!(T8_ == ((NI)0))) goto LA9_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA9_: ;
	T11_ = (t_p0.data.len-1);
	h_1 = (NI)((*hc_p2) & T11_);
	{
		while (1) {
			NIM_BOOL T14_;
			NI T21_;
			T14_ = (NIM_BOOL)0;
			T14_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T14_) goto LA13;
			{
				NIM_BOOL T17_;
				T17_ = (NIM_BOOL)0;
				T17_ = (t_p0.data.p->data[h_1].Field0 == (*hc_p2));
				if (!(T17_)) goto LA18_;
				T17_ = eqeq___ast_u617(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA18_: ;
				if (!T17_) goto LA19_;
				result = h_1;
				goto BeforeRet_;
			}
LA19_: ;
			T21_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T21_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA13: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, mustRehash__icZintegrity_u522)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	NI T2_;
	NI T4_;
	T1_ = (NIM_BOOL)0;
	T2_ = t_p0.data.len;
	T1_ = (T2_ < (NI)(t_p0.counter + (NI)(t_p0.counter / ((NI)2))));
	if (T1_) goto LA3_;
	T4_ = t_p0.data.len;
	T1_ = ((NI)(T4_ - t_p0.counter) < ((NI)4));
LA3_: ;
	result = T1_;
	return result;
}
static N_INLINE(NI, rawGetKnownHC__icZintegrity_u957)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A t_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1, NI hc_p2) {
	NI result;
	NI h_1;
	NI T6_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		NI T3_;
		T3_ = t_p0.data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = (t_p0.data.len-1);
	h_1 = (NI)(hc_p2 & T6_);
	{
		while (1) {
			NIM_BOOL T9_;
			NI T16_;
			T9_ = (NIM_BOOL)0;
			T9_ = isFilled__pureZcollectionsZsets_u40(t_p0.data.p->data[h_1].Field0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T9_) goto LA8;
			{
				NIM_BOOL T12_;
				T12_ = (NIM_BOOL)0;
				T12_ = (t_p0.data.p->data[h_1].Field0 == hc_p2);
				if (!(T12_)) goto LA13_;
				T12_ = eqeq___ast_u617(t_p0.data.p->data[h_1].Field1, key_p1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA13_: ;
				if (!T12_) goto LA14_;
				result = h_1;
				goto BeforeRet_;
			}
LA14_: ;
			T16_ = (t_p0.data.len-1);
			h_1 = nextTry__pureZcollectionsZsets_u43(h_1, T16_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		} LA8: ;
	}
	result = (NI)(((NI)-1) - h_1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, rawInsert__icZintegrity_u1317)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0, tySequence__H9bHW2kkjp26MABVBZRr8Ig* data_p1, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p2, NI hc_p3, NI h_p4) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NI T3_;
		NI correctSizeX60gensym13__1;
		T3_ = (*data_p1).len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym13__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__icZintegrity_u138((&(*s_p0).data), (correctSizeX60gensym13__1));
	}
LA4_: ;
	(*data_p1).p->data[h_p4].Field1 = key_p2;
	(*data_p1).p->data[h_p4].Field0 = hc_p3;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___icZintegrity_u487)(tySequence__H9bHW2kkjp26MABVBZRr8Ig dest_p0) {
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyTuple__EJOd8NnRbGOjqpW2d6uq2g));
}
}
N_LIB_PRIVATE N_NIMCALL(void, enlarge__icZintegrity_u708)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0) {
	tySequence__H9bHW2kkjp26MABVBZRr8Ig n_1;
	NI T1_;
	tySequence__H9bHW2kkjp26MABVBZRr8Ig T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	n_1.len = 0; n_1.p = NIM_NIL;
	T1_ = (*s_p0).data.len;
	newSeq__icZintegrity_u138((&n_1), ((NI)(T1_ * ((NI)2))));
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = (*s_p0).data;
	(*s_p0).data = n_1;
	n_1 = T2_;
	{
		NI i_1;
		NI colontmp_;
		NI T4_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		T4_ = (n_1.len-1);
		colontmp_ = T4_;
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA6;
				i_1 = ((NI) (res_1));
				{
					NIM_BOOL T9_;
					NI j_1;
					NI T12_;
					tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* T13_;
					T9_ = (NIM_BOOL)0;
					T9_ = isFilled__pureZcollectionsZsets_u40(n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					if (!T9_) goto LA10_;
					T12_ = (NI)0;
					T12_ = rawGetKnownHC__icZintegrity_u957((*s_p0), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					j_1 = (NI)(((NI)-1) - T12_);
					T13_ = (tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A*)0;
					T13_ = s_p0;
					rawInsert__icZintegrity_u1317(T13_, (&(*s_p0).data), n_1.p->data[i_1].Field1, n_1.p->data[i_1].Field0, j_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
LA10_: ;
				res_1 += ((NI)1);
			} LA6: ;
		}
	}
	eqdestroy___icZintegrity_u487(n_1);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__icZintegrity_u64)(tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* s_p0, tyObject_ItemId__N3z7uIvKCrk0S9cej5ew0nA key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym4__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym4__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__icZintegrity_u138((&(*s_p0).data), (correctSizeX60gensym4__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__icZintegrity_u222((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__icZintegrity_u522((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__icZintegrity_u708(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__icZintegrity_u957((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__jtgTWn9bO8fIcYeQpvDnB6A*)0;
		T16_ = s_p0;
		rawInsert__icZintegrity_u1317(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsOrIncl__icZnavigator_u438)(tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* s_p0, NimStringV2 key_p1) {
	NIM_BOOL result;
	NI hc_1;
	NI index_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		NI T3_;
		NI correctSizeX60gensym33__1;
		T3_ = (*s_p0).data.len;
		if (!(T3_ == ((NI)0))) goto LA4_;
		correctSizeX60gensym33__1 = slotsNeeded__pureZcollectionsZsets_u51(((NI)64));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter = ((NI)0);
		newSeq__options_u1081((&(*s_p0).data), (correctSizeX60gensym33__1));
	}
LA4_: ;
	hc_1 = (NI)0;
	index_1 = rawGet__options_u2263((*s_p0), key_p1, (&hc_1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!(((NI)0) <= index_1)) goto LA8_;
		result = NIM_TRUE;
	}
	goto LA6_;
LA8_: ;
	{
		tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw* T16_;
		result = NIM_FALSE;
		{
			NIM_BOOL T13_;
			T13_ = (NIM_BOOL)0;
			T13_ = mustRehash__options_u2515((*s_p0));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!T13_) goto LA14_;
			enlarge__options_u2695(s_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			index_1 = rawGetKnownHC__options_u2930((*s_p0), key_p1, hc_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA14_: ;
		T16_ = (tyObject_HashSet__8IGL0eIK5PYDsNGVA78Wmw*)0;
		T16_ = s_p0;
		rawInsert__options_u3268(T16_, (&(*s_p0).data), key_p1, hc_1, (NI)(((NI)-1) - index_1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(*s_p0).counter += ((NI)1);
	}
LA6_: ;
	}BeforeRet_: ;
	return result;
}
