/* Generated by Nim Compiler v2.2.10 */
/* Compiled for: MacOSX, arm64, clang */
/* Command for C compiler:
   clang -c  -w -ferror-limit=3 -fno-strict-aliasing -pthread -isysroot /Applications/Xcode_16.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -target arm64-apple-darwin24.2.0 -O3   -I/Users/runner/work/nightlies/nightlies/nim-2.2.10/lib -I/Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/src -o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@phashes.nim.c.o /Users/runner/work/nightlies/nightlies/nim-2.2.10/dist/atlas/.nimcache/@phashes.nim.c */
#define NIM_INTBITS 64
#define NIM_EmulateOverflowChecks

#include "nimbase.h"
#include <string.h>
#include <math.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 NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw;
typedef struct tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA;
typedef struct tyTuple__XXBtNszxg1rbD9cnycyLK7A tyTuple__XXBtNszxg1rbD9cnycyLK7A;
typedef struct tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw;
typedef struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg tyTuple__7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA;
typedef struct tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw {
	NU64 Field0;
	NU64 Field1;
};
struct tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA {
	NimStringV2 scheme;
	NimStringV2 username;
	NimStringV2 password;
	NimStringV2 hostname;
	NimStringV2 port;
	NimStringV2 path;
	NimStringV2 query;
	NimStringV2 anchor;
	NIM_BOOL opaque;
	NIM_BOOL isIpv6;
};
struct tyTuple__7q7q3E6Oj24ZNVJb9aonhAg {
	NimStringV2 Field0;
	NimStringV2 Field1;
	NimStringV2 Field2;
};
struct tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw {
	tyTuple__7q7q3E6Oj24ZNVJb9aonhAg qualifiedName;
	NIM_BOOL hasShortName;
	tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA u;
};
typedef NU8 tyEnum_VersionRelation__4XquEtylWSi3MRH9c7xlRFw;
struct tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng {
	tyEnum_VersionRelation__4XquEtylWSi3MRH9c7xlRFw r;
	NimStringV2 v;
};
struct tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA {
	tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng a;
	tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng b;
	NIM_BOOL isInterval;
};
struct tyTuple__XXBtNszxg1rbD9cnycyLK7A {
	tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw Field0;
	tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA Field1;
};
static N_INLINE(NU64, hashFarm__pureZhashes_u510)(NU8* s_p0, NI s_p0Len_0);
static N_INLINE(NU64, len016__pureZhashes_u364)(NU8* s_p0, NI s_p0Len_0);
static N_INLINE(NU64, lenU__pureZhashes_u324)(NU8* s_p0, NI s_p0Len_0);
static N_INLINE(NU64, load8__pureZhashes_u248)(NU8* s_p0, NI s_p0Len_0, NI o_p1);
static N_INLINE(void, littleEndian64__pureZendians_u69)(void* outp_p0, void* inp_p1);
static N_INLINE(void, copyMem__system_u1755)(void* dest_p0, void* source_p1, NI size_p2);
static N_INLINE(void, nimCopyMem)(void* dest_p0, void* source_p1, NI size_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError2)(NI i_p0, NI n_p1);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
static N_INLINE(NIM_BOOL, nimSubInt)(NI a_p0, NI b_p1, NI* res_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseOverflow)(void);
static N_INLINE(NU64, rotR__pureZhashes_u337)(NU64 v_p0, int bits_p1);
static N_INLINE(NU64, len16__pureZhashes_u349)(NU64 u_p0, NU64 v_p1, NU64 mul_p2);
static N_INLINE(NU32, load4__pureZhashes_u244)(NU8* s_p0, NI s_p0Len_0, NI o_p1);
static N_INLINE(void, littleEndian32__pureZendians_u72)(void* outp_p0, void* inp_p1);
static N_INLINE(NU64, shiftMix__pureZhashes_u330)(NU64 v_p0);
static N_INLINE(NU64, len1732__pureZhashes_u416)(NU8* s_p0, NI s_p0Len_0);
static N_INLINE(NU64, len3364__pureZhashes_u430)(NU8* s_p0, NI s_p0Len_0);
static N_INLINE(void, nimZeroMem)(void* p_p0, NI size_p1);
static N_INLINE(void, nimSetMem__system_u2188)(void* a_p0, int v_p1, NI size_p2);
static N_INLINE(NIM_BOOL, nimMulInt)(NI a_p0, NI b_p1, NI* res_p2);
static N_INLINE(NF, toFloat__system_u1705)(NI i_p0);
static N_INLINE(NF, abs__system_u5188)(NF x_p0);
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2);
static N_INLINE(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw, weakLen32withSeeds__pureZhashes_u484)(NU8* s_p0, NI s_p0Len_0, NI o_p1, NU64 a_p2, NU64 b_p3);
static N_INLINE(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw, weakLen32withSeeds2__pureZhashes_u461)(NU64 w_p0, NU64 x_p1, NU64 y_p2, NU64 z_p3, NU64 a_p4, NU64 b_p5);
N_LIB_PRIVATE N_NOINLINE(void, raiseIndexError4)(NI l1_p0, NI h1_p1, NI h2_p2);
N_LIB_PRIVATE N_NOINLINE(void, raiseRangeErrorI)(NI64 i_p0, NI64 a_p1, NI64 b_p2);
static N_INLINE(NI, emarkamp___pureZhashes_u4)(NI h_p0, NI val_p1);
static N_INLINE(NI, emarkdollar___pureZhashes_u19)(NI h_p0);
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_u586)(NimStringV2 x_p0);
static N_INLINE(NI, hash__basicZversions_u440)(NIM_BOOL x_p0);
static N_INLINE(NI, hashWangYi1__pureZhashes_u139)(NU64 x_p0);
static N_INLINE(NU64, hiXorLo__pureZhashes_u80)(NU64 a_p0, NU64 b_p1);
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZdeptypes_u227)(tyTuple__XXBtNszxg1rbD9cnycyLK7A* x_p0);
static N_INLINE(NI, hash__basicZpkgurls_u50)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* a_p0);
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZpkgurls_u53)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* x_p0);
static N_INLINE(NI, hash__basicZversions_u407)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* a_p0);
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZversions_u410)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* x_p0);
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZversions_u418)(tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng x_p0);
static N_INLINE(NI, hash__basicZversions_u426)(tyEnum_VersionRelation__4XquEtylWSi3MRH9c7xlRFw x_p0);
extern NIM_THREADVAR NIM_BOOL nimInErrorMode__system_u4198;
static N_INLINE(NU64, lenU__pureZhashes_u324)(NU8* s_p0, NI s_p0Len_0) {
	NU64 result;
	result = ((NU64) (s_p0Len_0));
	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)));
}
static N_INLINE(void, copyMem__system_u1755)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, littleEndian64__pureZendians_u69)(void* outp_p0, void* inp_p1) {
	copyMem__system_u1755(outp_p0, inp_p1, ((NI)8));
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4198);
	return result;
}
static N_INLINE(NU64, load8__pureZhashes_u248)(NU8* s_p0, NI s_p0Len_0, NI o_p1) {
	NU64 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NU64)0;
	result = 0ULL;
	if (o_p1 < 0 || o_p1 >= s_p0Len_0){ raiseIndexError2(o_p1,s_p0Len_0-1); goto BeforeRet_;
	}
	littleEndian64__pureZendians_u69(((void*) ((&result))), ((void*) ((&s_p0[o_p1]))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimSubInt)(NI a_p0, NI b_p1, NI* res_p2) {
	NIM_BOOL result;
	NI r_1;
	result = (NIM_BOOL)0;
	r_1 = ((NI) ((NU)((NU64)(((NU) (a_p0))) - (NU64)(((NU) (b_p1))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI)0) <= (NI)(r_1 ^ a_p0));
		if (T3_) goto LA4_;
		T3_ = (((NI)0) <= (NI)(r_1 ^ (NI)((NU64) ~(b_p1))));
LA4_: ;
		if (!T3_) goto LA5_;
		(*res_p2) = r_1;
	}
	goto LA1_;
LA5_: ;
	{
		result = NIM_TRUE;
	}
LA1_: ;
	return result;
}
static N_INLINE(NU64, rotR__pureZhashes_u337)(NU64 v_p0, int bits_p1) {
	NU64 result;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_3;
{	result = (NU64)0;
	if (nimSubInt(((NI32)64), bits_p1, &TM__7tkD9cFJSchVDwHuwaY9bP9bA_3)) { raiseOverflow(); goto BeforeRet_;
	};
	if (TM__7tkD9cFJSchVDwHuwaY9bP9bA_3 < (-2147483647 -1) || TM__7tkD9cFJSchVDwHuwaY9bP9bA_3 > 2147483647){ raiseOverflow(); goto BeforeRet_;
	}
	result = (NU64)((NU64)((NU64)(v_p0) >> (NU64)(bits_p1 & (64 - 1))) | (NU64)((NU64)(v_p0) << (NU64)((NI32)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_3) & (64 - 1))));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, len16__pureZhashes_u349)(NU64 u_p0, NU64 v_p1, NU64 mul_p2) {
	NU64 result;
	NU64 a_1;
	NU64 b_1;
	a_1 = (NU64)((NU64)((NU64)(u_p0 ^ v_p1)) * (NU64)(mul_p2));
	a_1 = (NU64)(a_1 ^ (NU64)((NU64)(a_1) >> (NU64)(((NI)47) & (64 - 1))));
	b_1 = (NU64)((NU64)((NU64)(v_p1 ^ a_1)) * (NU64)(mul_p2));
	b_1 = (NU64)(b_1 ^ (NU64)((NU64)(b_1) >> (NU64)(((NI)47) & (64 - 1))));
	result = (NU64)((NU64)(b_1) * (NU64)(mul_p2));
	return result;
}
static N_INLINE(void, littleEndian32__pureZendians_u72)(void* outp_p0, void* inp_p1) {
	copyMem__system_u1755(outp_p0, inp_p1, ((NI)4));
}
static N_INLINE(NU32, load4__pureZhashes_u244)(NU8* s_p0, NI s_p0Len_0, NI o_p1) {
	NU32 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NU32)0;
	result = ((NU32)0);
	if (o_p1 < 0 || o_p1 >= s_p0Len_0){ raiseIndexError2(o_p1,s_p0Len_0-1); goto BeforeRet_;
	}
	littleEndian32__pureZendians_u72(((void*) ((&result))), ((void*) ((&s_p0[o_p1]))));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, shiftMix__pureZhashes_u330)(NU64 v_p0) {
	NU64 result;
	result = (NU64)(v_p0 ^ (NU64)((NU64)(v_p0) >> (NU64)(((NI)47) & (64 - 1))));
	return result;
}
static N_INLINE(NU64, len016__pureZhashes_u364)(NU8* s_p0, NI s_p0Len_0) {
	NU64 result;
	NU64 T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NU64)0;
	T1_ = (NU64)0;
	{
		NU64 mul_1;
		NU64 T6_;
		NU64 a_1;
		NU64 T7_;
		NU64 b_1;
		NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_2;
		NU64 c_1;
		NU64 T8_;
		NU64 d_1;
		NU64 T9_;
		if (!(((NI)8) <= s_p0Len_0)) goto LA4_;
		T6_ = (NU64)0;
		T6_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		mul_1 = (NU64)((NU64)(11160318154034397263ULL) + (NU64)((NU64)((NU64)(2ULL) * (NU64)(T6_))));
		T7_ = (NU64)0;
		T7_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_1 = (NU64)((NU64)(T7_) + (NU64)(11160318154034397263ULL));
		if (nimSubInt(s_p0Len_0, ((NI)8), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_2)) { raiseOverflow(); goto BeforeRet_;
		};
		b_1 = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_2));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T8_ = (NU64)0;
		T8_ = rotR__pureZhashes_u337(b_1, ((int)37));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		c_1 = (NU64)((NU64)((NU64)((NU64)(T8_) * (NU64)(mul_1))) + (NU64)(a_1));
		T9_ = (NU64)0;
		T9_ = rotR__pureZhashes_u337(a_1, ((int)25));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		d_1 = (NU64)((NU64)((NU64)((NU64)(T9_) + (NU64)(b_1))) * (NU64)(mul_1));
		result = len16__pureZhashes_u349(c_1, d_1, mul_1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
LA4_: ;
	{
		NU64 mul_2;
		NU64 T13_;
		NU64 a_2;
		NU32 T14_;
		NU64 T15_;
		NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_4;
		NU32 T16_;
		if (!(((NI)4) <= s_p0Len_0)) goto LA11_;
		T13_ = (NU64)0;
		T13_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		mul_2 = (NU64)((NU64)(11160318154034397263ULL) + (NU64)((NU64)((NU64)(2ULL) * (NU64)(T13_))));
		T14_ = (NU32)0;
		T14_ = load4__pureZhashes_u244(s_p0, s_p0Len_0, ((NI)0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		a_2 = ((NU64) (T14_));
		T15_ = (NU64)0;
		T15_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (nimSubInt(s_p0Len_0, ((NI)4), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_4)) { raiseOverflow(); goto BeforeRet_;
		};
		T16_ = (NU32)0;
		T16_ = load4__pureZhashes_u244(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_4));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = len16__pureZhashes_u349((NU64)((NU64)(T15_) + (NU64)((NU64)((NU64)(a_2) << (NU64)(((NI)3) & (64 - 1))))), ((NU64) (T16_)), mul_2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA2_;
LA11_: ;
	{
		NU32 a_3;
		NU32 b_2;
		NU32 c_2;
		NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_5;
		NU32 y_1;
		NU64 z_1;
		NU64 T20_;
		NU64 T21_;
		if (!(((NI)0) < s_p0Len_0)) goto LA18_;
		if (((NI)0) < 0 || ((NI)0) >= s_p0Len_0){ raiseIndexError2(((NI)0),s_p0Len_0-1); goto BeforeRet_;
		}
		a_3 = ((NU32) (s_p0[((NI)0)]));
		if ((NI)((NI64)(s_p0Len_0) >> (NU64)(((NI)1) & (64 - 1))) < 0 || (NI)((NI64)(s_p0Len_0) >> (NU64)(((NI)1) & (64 - 1))) >= s_p0Len_0){ raiseIndexError2((NI)((NI64)(s_p0Len_0) >> (NU64)(((NI)1) & (64 - 1))),s_p0Len_0-1); goto BeforeRet_;
		}
		b_2 = ((NU32) (s_p0[(NI)((NI64)(s_p0Len_0) >> (NU64)(((NI)1) & (64 - 1)))]));
		if (nimSubInt(s_p0Len_0, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_5)) { raiseOverflow(); goto BeforeRet_;
		};
		if ((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_5) < 0 || (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_5) >= s_p0Len_0){ raiseIndexError2((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_5),s_p0Len_0-1); goto BeforeRet_;
		}
		c_2 = ((NU32) (s_p0[(NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_5)]));
		y_1 = (NU32)((NU32)(a_3) + (NU32)((NU32)((NU64)(b_2) << (NU64)(((NI)8) & (32 - 1)))));
		T20_ = (NU64)0;
		T20_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		z_1 = (NU64)((NU64)(T20_) + (NU64)(((NU64) ((NU32)((NU64)(c_2) << (NU64)(((NI)2) & (32 - 1)))))));
		T21_ = (NU64)0;
		T21_ = shiftMix__pureZhashes_u330((NU64)((NU64)((NU64)(((NU64) (y_1))) * (NU64)(11160318154034397263ULL)) ^ (NU64)((NU64)(z_1) * (NU64)(14097894508562428199ULL))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = (NU64)((NU64)(T21_) * (NU64)(11160318154034397263ULL));
	}
	goto LA2_;
LA18_: ;
	{
		result = 11160318154034397263ULL;
	}
LA2_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, len1732__pureZhashes_u416)(NU8* s_p0, NI s_p0Len_0) {
	NU64 result;
	NU64 mul_1;
	NU64 T1_;
	NU64 a_1;
	NU64 T2_;
	NU64 b_1;
	NU64 c_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_6;
	NU64 T3_;
	NU64 d_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_7;
	NU64 T4_;
	NU64 T5_;
	NU64 T6_;
	NU64 T7_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NU64)0;
	T1_ = (NU64)0;
	T1_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	mul_1 = (NU64)((NU64)(11160318154034397263ULL) + (NU64)((NU64)((NU64)(2ULL) * (NU64)(T1_))));
	T2_ = (NU64)0;
	T2_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	a_1 = (NU64)((NU64)(T2_) * (NU64)(13011662864482103923ULL));
	b_1 = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)8));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimSubInt(s_p0Len_0, ((NI)8), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_6)) { raiseOverflow(); goto BeforeRet_;
	};
	T3_ = (NU64)0;
	T3_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_6));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	c_1 = (NU64)((NU64)(T3_) * (NU64)(mul_1));
	if (nimSubInt(s_p0Len_0, ((NI)16), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_7)) { raiseOverflow(); goto BeforeRet_;
	};
	T4_ = (NU64)0;
	T4_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_7));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	d_1 = (NU64)((NU64)(T4_) * (NU64)(11160318154034397263ULL));
	T5_ = (NU64)0;
	T5_ = rotR__pureZhashes_u337((NU64)((NU64)(a_1) + (NU64)(b_1)), ((int)43));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T6_ = (NU64)0;
	T6_ = rotR__pureZhashes_u337(c_1, ((int)30));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T7_ = (NU64)0;
	T7_ = rotR__pureZhashes_u337((NU64)((NU64)(b_1) + (NU64)(11160318154034397263ULL)), ((int)18));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = len16__pureZhashes_u349((NU64)((NU64)((NU64)((NU64)(T5_) + (NU64)(T6_))) + (NU64)(d_1)), (NU64)((NU64)((NU64)((NU64)(a_1) + (NU64)(T7_))) + (NU64)(c_1)), mul_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, len3364__pureZhashes_u430)(NU8* s_p0, NI s_p0Len_0) {
	NU64 result;
	NU64 mul_1;
	NU64 T1_;
	NU64 a_1;
	NU64 T2_;
	NU64 b_1;
	NU64 c_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_8;
	NU64 T3_;
	NU64 d_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_9;
	NU64 T4_;
	NU64 y_1;
	NU64 T5_;
	NU64 T6_;
	NU64 z_1;
	NU64 T7_;
	NU64 e_1;
	NU64 T8_;
	NU64 f_1;
	NU64 g_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_10;
	NU64 T9_;
	NU64 h_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_11;
	NU64 T10_;
	NU64 T11_;
	NU64 T12_;
	NU64 T13_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NU64)0;
	T1_ = (NU64)0;
	T1_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	mul_1 = (NU64)((NU64)(11160318154034397263ULL) + (NU64)((NU64)((NU64)(2ULL) * (NU64)(T1_))));
	T2_ = (NU64)0;
	T2_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	a_1 = (NU64)((NU64)(T2_) * (NU64)(11160318154034397263ULL));
	b_1 = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)8));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimSubInt(s_p0Len_0, ((NI)8), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_8)) { raiseOverflow(); goto BeforeRet_;
	};
	T3_ = (NU64)0;
	T3_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_8));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	c_1 = (NU64)((NU64)(T3_) * (NU64)(mul_1));
	if (nimSubInt(s_p0Len_0, ((NI)16), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_9)) { raiseOverflow(); goto BeforeRet_;
	};
	T4_ = (NU64)0;
	T4_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_9));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	d_1 = (NU64)((NU64)(T4_) * (NU64)(11160318154034397263ULL));
	T5_ = (NU64)0;
	T5_ = rotR__pureZhashes_u337((NU64)((NU64)(a_1) + (NU64)(b_1)), ((int)43));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T6_ = (NU64)0;
	T6_ = rotR__pureZhashes_u337(c_1, ((int)30));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	y_1 = (NU64)((NU64)((NU64)((NU64)(T5_) + (NU64)(T6_))) + (NU64)(d_1));
	T7_ = (NU64)0;
	T7_ = rotR__pureZhashes_u337((NU64)((NU64)(b_1) + (NU64)(11160318154034397263ULL)), ((int)18));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	z_1 = len16__pureZhashes_u349(y_1, (NU64)((NU64)((NU64)((NU64)(a_1) + (NU64)(T7_))) + (NU64)(c_1)), mul_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T8_ = (NU64)0;
	T8_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)16));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	e_1 = (NU64)((NU64)(T8_) * (NU64)(mul_1));
	f_1 = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)24));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimSubInt(s_p0Len_0, ((NI)32), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_10)) { raiseOverflow(); goto BeforeRet_;
	};
	T9_ = (NU64)0;
	T9_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_10));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	g_1 = (NU64)((NU64)((NU64)((NU64)(y_1) + (NU64)(T9_))) * (NU64)(mul_1));
	if (nimSubInt(s_p0Len_0, ((NI)24), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_11)) { raiseOverflow(); goto BeforeRet_;
	};
	T10_ = (NU64)0;
	T10_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_11));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	h_1 = (NU64)((NU64)((NU64)((NU64)(z_1) + (NU64)(T10_))) * (NU64)(mul_1));
	T11_ = (NU64)0;
	T11_ = rotR__pureZhashes_u337((NU64)((NU64)(e_1) + (NU64)(f_1)), ((int)43));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T12_ = (NU64)0;
	T12_ = rotR__pureZhashes_u337(g_1, ((int)30));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T13_ = (NU64)0;
	T13_ = rotR__pureZhashes_u337((NU64)((NU64)(f_1) + (NU64)(a_1)), ((int)18));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = len16__pureZhashes_u349((NU64)((NU64)((NU64)((NU64)(T11_) + (NU64)(T12_))) + (NU64)(h_1)), (NU64)((NU64)((NU64)((NU64)(e_1) + (NU64)(T13_))) + (NU64)(g_1)), mul_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, nimSetMem__system_u2188)(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_u2188(p_p0, ((int)0), size_p1);
}
static N_INLINE(NF, toFloat__system_u1705)(NI i_p0) {
	NF result;
	result = ((NF) (i_p0));
	return result;
}
static N_INLINE(NF, abs__system_u5188)(NF x_p0) {
	NF result;
	result = (NF)0;
	result = fabs(x_p0);
	return result;
}
static N_INLINE(NIM_BOOL, nimMulInt)(NI a_p0, NI b_p1, NI* res_p2) {
	NIM_BOOL result;
	NI r_1;
	NF floatProd_1;
	NF T1_;
	NF T2_;
	NF resAsFloat_1;
	result = (NIM_BOOL)0;
	r_1 = ((NI) ((NU)((NU64)(((NU) (a_p0))) * (NU64)(((NU) (b_p1))))));
	T1_ = (NF)0;
	T1_ = toFloat__system_u1705(a_p0);
	T2_ = (NF)0;
	T2_ = toFloat__system_u1705(b_p1);
	floatProd_1 = ((NF)(T1_) * (NF)(T2_));
	resAsFloat_1 = toFloat__system_u1705(r_1);
	{
		if (!(resAsFloat_1 == floatProd_1)) goto LA5_;
		(*res_p2) = r_1;
	}
	goto LA3_;
LA5_: ;
	{
		{
			NF T10_;
			NF T11_;
			T10_ = (NF)0;
			T10_ = abs__system_u5188(((NF)(resAsFloat_1) - (NF)(floatProd_1)));
			T11_ = (NF)0;
			T11_ = abs__system_u5188(floatProd_1);
			if (!(((NF)(32.0) * (NF)(T10_)) <= T11_)) goto LA12_;
			(*res_p2) = r_1;
		}
		goto LA8_;
LA12_: ;
		{
			result = NIM_TRUE;
		}
LA8_: ;
	}
LA3_: ;
	return result;
}
static N_INLINE(NIM_BOOL, nimAddInt)(NI a_p0, NI b_p1, NI* res_p2) {
	NIM_BOOL result;
	NI r_1;
	result = (NIM_BOOL)0;
	r_1 = ((NI) ((NU)((NU64)(((NU) (a_p0))) + (NU64)(((NU) (b_p1))))));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI)0) <= (NI)(r_1 ^ a_p0));
		if (T3_) goto LA4_;
		T3_ = (((NI)0) <= (NI)(r_1 ^ b_p1));
LA4_: ;
		if (!T3_) goto LA5_;
		(*res_p2) = r_1;
	}
	goto LA1_;
LA5_: ;
	{
		result = NIM_TRUE;
	}
LA1_: ;
	return result;
}
static N_INLINE(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw, weakLen32withSeeds2__pureZhashes_u461)(NU64 w_p0, NU64 x_p1, NU64 y_p2, NU64 z_p3, NU64 a_p4, NU64 b_p5) {
	tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw result;
	NU64 a_2;
	NU64 b_2;
	NU64 c_1;
	NU64 T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw));
	a_2 = (NU64)((NU64)(a_p4) + (NU64)(w_p0));
	b_2 = rotR__pureZhashes_u337((NU64)((NU64)((NU64)((NU64)(b_p5) + (NU64)(a_2))) + (NU64)(z_p3)), ((int)21));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	c_1 = a_2;
	a_2 += x_p1;
	a_2 += y_p2;
	T1_ = (NU64)0;
	T1_ = rotR__pureZhashes_u337(a_2, ((int)44));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	b_2 += T1_;
	result.Field0 = (NU64)((NU64)(a_2) + (NU64)(z_p3));
	result.Field1 = (NU64)((NU64)(b_2) + (NU64)(c_1));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw, weakLen32withSeeds__pureZhashes_u484)(NU8* s_p0, NI s_p0Len_0, NI o_p1, NU64 a_p2, NU64 b_p3) {
	tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw result;
	NU64 T1_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_20;
	NU64 T2_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_21;
	NU64 T3_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_22;
	NU64 T4_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nimZeroMem((void*)(&result), sizeof(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw));
	T1_ = (NU64)0;
	T1_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, o_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimAddInt(o_p1, ((NI)8), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_20)) { raiseOverflow(); goto BeforeRet_;
	};
	T2_ = (NU64)0;
	T2_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_20));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimAddInt(o_p1, ((NI)16), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_21)) { raiseOverflow(); goto BeforeRet_;
	};
	T3_ = (NU64)0;
	T3_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_21));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimAddInt(o_p1, ((NI)24), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_22)) { raiseOverflow(); goto BeforeRet_;
	};
	T4_ = (NU64)0;
	T4_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_22));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = weakLen32withSeeds2__pureZhashes_u461(T1_, T2_, T3_, T4_, a_p2, b_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, hashFarm__pureZhashes_u510)(NU8* s_p0, NI s_p0Len_0) {
	NU64 result;
	NI o_1;
	NU64 x_1;
	NU64 y_1;
	NU64 z_1;
	NU64 T13_;
	tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw v_1;
	tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw w_1;
	NU64 T14_;
	NI eos_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_12;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_13;
	NI last64_1;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_14;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_15;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_16;
	NU64 mul_1;
	NU64 T29_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_27;
	NU64 T30_;
	NU64 T31_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_28;
	NU64 T32_;
	NU64 T33_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_29;
	NU64 T34_;
	NU64 T35_;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_30;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_31;
	NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_32;
	NU64 T36_;
	NU64 T37_;
	NU64 T38_;
	NU64 T39_;
	NU64 T40_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NU64)0;
	{
		if (!(s_p0Len_0 <= ((NI)16))) goto LA3_;
		result = len016__pureZhashes_u364(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA3_: ;
	{
		if (!(s_p0Len_0 <= ((NI)32))) goto LA7_;
		result = len1732__pureZhashes_u416(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA7_: ;
	{
		if (!(s_p0Len_0 <= ((NI)64))) goto LA11_;
		result = len3364__pureZhashes_u430(s_p0, s_p0Len_0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA11_: ;
	o_1 = ((NI)0);
	x_1 = 81ULL;
	y_1 = 2480279821605975764ULL;
	T13_ = (NU64)0;
	T13_ = shiftMix__pureZhashes_u330((NU64)((NU64)((NU64)((NU64)(y_1) * (NU64)(11160318154034397263ULL))) + (NU64)(113ULL)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	z_1 = (NU64)((NU64)(T13_) * (NU64)(11160318154034397263ULL));
	nimZeroMem((void*)(&v_1), sizeof(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw));
	nimZeroMem((void*)(&w_1), sizeof(tyTuple__GviMuKbe9c3Hsi9c4x4m9avrw));
	T14_ = (NU64)0;
	T14_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	x_1 = (NU64)((NU64)((NU64)((NU64)(x_1) * (NU64)(11160318154034397263ULL))) + (NU64)(T14_));
	if (nimSubInt(s_p0Len_0, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_12)) { raiseOverflow(); goto BeforeRet_;
	};
	if (nimMulInt((NI)(((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_12)) / (((NI)64))), ((NI)64), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_13)) { raiseOverflow(); goto BeforeRet_;
	};
	eos_1 = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_13);
	if (nimSubInt(s_p0Len_0, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_14)) { raiseOverflow(); goto BeforeRet_;
	};
	if (nimAddInt(eos_1, (NI)((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_14) & ((NI)63)), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_15)) { raiseOverflow(); goto BeforeRet_;
	};
	if (nimSubInt((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_15), ((NI)63), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_16)) { raiseOverflow(); goto BeforeRet_;
	};
	last64_1 = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_16);
	{
		while (1) {
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_17;
			NU64 T17_;
			NU64 T18_;
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_18;
			NU64 T19_;
			NU64 T20_;
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_19;
			NU64 T21_;
			NU64 T22_;
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_23;
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_24;
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_25;
			NU64 T23_;
			NU64 T24_;
			NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_26;
			if (nimAddInt(o_1, ((NI)8), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_17)) { raiseOverflow(); goto BeforeRet_;
			};
			T17_ = (NU64)0;
			T17_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_17));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T18_ = (NU64)0;
			T18_ = rotR__pureZhashes_u337((NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(x_1) + (NU64)(y_1))) + (NU64)(v_1.Field0))) + (NU64)(T17_)), ((int)37));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			x_1 = (NU64)((NU64)(T18_) * (NU64)(13011662864482103923ULL));
			if (nimAddInt(o_1, ((NI)48), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_18)) { raiseOverflow(); goto BeforeRet_;
			};
			T19_ = (NU64)0;
			T19_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_18));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T20_ = (NU64)0;
			T20_ = rotR__pureZhashes_u337((NU64)((NU64)((NU64)((NU64)(y_1) + (NU64)(v_1.Field1))) + (NU64)(T19_)), ((int)42));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			y_1 = (NU64)((NU64)(T20_) * (NU64)(13011662864482103923ULL));
			x_1 = (NU64)(x_1 ^ w_1.Field1);
			if (nimAddInt(o_1, ((NI)40), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_19)) { raiseOverflow(); goto BeforeRet_;
			};
			T21_ = (NU64)0;
			T21_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_19));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			y_1 += (NU64)((NU64)(v_1.Field0) + (NU64)(T21_));
			T22_ = (NU64)0;
			T22_ = rotR__pureZhashes_u337((NU64)((NU64)(z_1) + (NU64)(w_1.Field0)), ((int)33));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			z_1 = (NU64)((NU64)(T22_) * (NU64)(13011662864482103923ULL));
			if (nimAddInt(o_1, ((NI)0), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_23)) { raiseOverflow(); goto BeforeRet_;
			};
			v_1 = weakLen32withSeeds__pureZhashes_u484(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_23), (NU64)((NU64)(v_1.Field1) * (NU64)(13011662864482103923ULL)), (NU64)((NU64)(x_1) + (NU64)(w_1.Field0)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (nimAddInt(o_1, ((NI)32), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_24)) { raiseOverflow(); goto BeforeRet_;
			};
			if (nimAddInt(o_1, ((NI)16), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_25)) { raiseOverflow(); goto BeforeRet_;
			};
			T23_ = (NU64)0;
			T23_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_25));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			w_1 = weakLen32withSeeds__pureZhashes_u484(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_24), (NU64)((NU64)(z_1) + (NU64)(w_1.Field1)), (NU64)((NU64)(y_1) + (NU64)(T23_)));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T24_ = (NU64)0;
			T24_ = z_1;
			z_1 = x_1;
			x_1 = T24_;
			if (nimAddInt(o_1, ((NI)64), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_26)) { raiseOverflow(); goto BeforeRet_;
			};
			o_1 = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_26);
			{
				if (!(o_1 == eos_1)) goto LA27_;
				goto LA15;
			}
LA27_: ;
		}
	} LA15: ;
	mul_1 = (NU64)((NU64)(13011662864482103923ULL) + (NU64)((NU64)((NU64)((NU64)(z_1 & 255ULL)) << (NU64)(((NI)1) & (64 - 1)))));
	o_1 = last64_1;
	T29_ = (NU64)0;
	T29_ = lenU__pureZhashes_u324(s_p0, s_p0Len_0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	w_1.Field0 += (NU64)((NU64)((NU64)(T29_) - (NU64)(1ULL)) & 63ULL);
	v_1.Field0 += w_1.Field0;
	w_1.Field0 += v_1.Field0;
	if (nimAddInt(o_1, ((NI)8), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_27)) { raiseOverflow(); goto BeforeRet_;
	};
	T30_ = (NU64)0;
	T30_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_27));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T31_ = (NU64)0;
	T31_ = rotR__pureZhashes_u337((NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(x_1) + (NU64)(y_1))) + (NU64)(v_1.Field0))) + (NU64)(T30_)), ((int)37));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	x_1 = (NU64)((NU64)(T31_) * (NU64)(mul_1));
	if (nimAddInt(o_1, ((NI)48), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_28)) { raiseOverflow(); goto BeforeRet_;
	};
	T32_ = (NU64)0;
	T32_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_28));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T33_ = (NU64)0;
	T33_ = rotR__pureZhashes_u337((NU64)((NU64)((NU64)((NU64)(y_1) + (NU64)(v_1.Field1))) + (NU64)(T32_)), ((int)42));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	y_1 = (NU64)((NU64)(T33_) * (NU64)(mul_1));
	x_1 = (NU64)(x_1 ^ (NU64)((NU64)(w_1.Field1) * (NU64)(9ULL)));
	if (nimAddInt(o_1, ((NI)40), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_29)) { raiseOverflow(); goto BeforeRet_;
	};
	T34_ = (NU64)0;
	T34_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_29));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	y_1 += (NU64)((NU64)((NU64)((NU64)(v_1.Field0) * (NU64)(9ULL))) + (NU64)(T34_));
	T35_ = (NU64)0;
	T35_ = rotR__pureZhashes_u337((NU64)((NU64)(z_1) + (NU64)(w_1.Field0)), ((int)33));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	z_1 = (NU64)((NU64)(T35_) * (NU64)(mul_1));
	if (nimAddInt(o_1, ((NI)0), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_30)) { raiseOverflow(); goto BeforeRet_;
	};
	v_1 = weakLen32withSeeds__pureZhashes_u484(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_30), (NU64)((NU64)(v_1.Field1) * (NU64)(mul_1)), (NU64)((NU64)(x_1) + (NU64)(w_1.Field0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (nimAddInt(o_1, ((NI)32), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_31)) { raiseOverflow(); goto BeforeRet_;
	};
	if (nimAddInt(o_1, ((NI)16), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_32)) { raiseOverflow(); goto BeforeRet_;
	};
	T36_ = (NU64)0;
	T36_ = load8__pureZhashes_u248(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_32));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	w_1 = weakLen32withSeeds__pureZhashes_u484(s_p0, s_p0Len_0, (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_31), (NU64)((NU64)(z_1) + (NU64)(w_1.Field1)), (NU64)((NU64)(y_1) + (NU64)(T36_)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T37_ = (NU64)0;
	T37_ = z_1;
	z_1 = x_1;
	x_1 = T37_;
	T38_ = (NU64)0;
	T38_ = len16__pureZhashes_u349(v_1.Field0, w_1.Field0, mul_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T39_ = (NU64)0;
	T39_ = shiftMix__pureZhashes_u330(y_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T40_ = (NU64)0;
	T40_ = len16__pureZhashes_u349(v_1.Field1, w_1.Field1, mul_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = len16__pureZhashes_u349((NU64)((NU64)((NU64)((NU64)(T38_) + (NU64)((NU64)((NU64)(T39_) * (NU64)(14097894508562428199ULL))))) + (NU64)(z_1)), (NU64)((NU64)(T40_) + (NU64)(x_1)), mul_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__pureZhashes_u586)(NimStringV2 x_p0) {
	NI result;
	NU64 T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	if ((x_p0.len-1)-((NI)0) != -1 && (((NI)0) < 0 || ((NI)0) >= x_p0.len || (x_p0.len-1) < 0 || (x_p0.len-1) >= x_p0.len)){ raiseIndexError4(((NI)0), (x_p0.len-1), x_p0.len); goto BeforeRet_;
	}
	T1_ = (NU64)0;
	T1_ = hashFarm__pureZhashes_u510((((x_p0).p) ? ((NU8*)x_p0.p->data+(((NI)0))) : NIM_NIL), ((x_p0.len-1))-(((NI)0))+1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = ((NI) (T1_));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, emarkamp___pureZhashes_u4)(NI h_p0, NI val_p1) {
	NI result;
	NU h_2;
	NU val_2;
	NU res_1;
	h_2 = ((NU) (h_p0));
	val_2 = ((NU) (val_p1));
	res_1 = (NU)((NU64)(h_2) + (NU64)(val_2));
	res_1 = (NU)((NU64)(res_1) + (NU64)((NU)((NU64)(res_1) << (NU64)(((NI)10) & (64 - 1)))));
	res_1 = (NU)(res_1 ^ (NU)((NU64)(res_1) >> (NU64)(((NI)6) & (64 - 1))));
	result = ((NI) (res_1));
	return result;
}
static N_INLINE(NI, emarkdollar___pureZhashes_u19)(NI h_p0) {
	NI result;
	NU h_2;
	NU res_1;
	h_2 = ((NU) (h_p0));
	res_1 = (NU)((NU64)(h_2) + (NU64)((NU)((NU64)(h_2) << (NU64)(((NI)3) & (64 - 1)))));
	res_1 = (NU)(res_1 ^ (NU)((NU64)(res_1) >> (NU64)(((NI)11) & (64 - 1))));
	res_1 = (NU)((NU64)(res_1) + (NU64)((NU)((NU64)(res_1) << (NU64)(((NI)15) & (64 - 1)))));
	result = ((NI) (res_1));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hashIgnoreCase__pureZhashes_u664)(NimStringV2 x_p0) {
	NI result;
	NI h_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	h_1 = ((NI)0);
	{
		NI i_1;
		NI colontmp_;
		NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_33;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		if (nimSubInt(x_p0.len, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_33)) { raiseOverflow(); goto BeforeRet_;
		};
		colontmp_ = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_33);
		res_1 = ((NI)0);
		{
			while (1) {
				NIM_CHAR c_1;
				NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_35;
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				if (i_1 < 0 || i_1 >= x_p0.len){ raiseIndexError2(i_1,x_p0.len-1); goto BeforeRet_;
				}
				c_1 = x_p0.p->data[i_1];
				{
					NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_34;
					if (!(((NU8)(c_1)) >= ((NU8)(65)) && ((NU8)(c_1)) <= ((NU8)(90)))) goto LA6_;
					if (nimAddInt(((NU8)(c_1)), ((NI)32), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_34)) { raiseOverflow(); goto BeforeRet_;
					};
					if (((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_34)) < ((NI)0) || ((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_34)) > ((NI)255)){ raiseRangeErrorI((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_34), ((NI)0), ((NI)255)); goto BeforeRet_;
					}
					c_1 = ((NIM_CHAR) (((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_34))));
				}
LA6_: ;
				h_1 = emarkamp___pureZhashes_u4(h_1, ((NU8)(c_1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (nimAddInt(res_1, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_35)) { raiseOverflow(); goto BeforeRet_;
				};
				res_1 = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_35);
			} LA3: ;
		}
	}
	result = emarkdollar___pureZhashes_u19(h_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hashIgnoreStyle__pureZhashes_u597)(NimStringV2 x_p0) {
	NI result;
	NI h_1;
	NI i_1;
	NI xLen_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	h_1 = ((NI)0);
	i_1 = ((NI)0);
	xLen_1 = x_p0.len;
	{
		while (1) {
			NIM_CHAR c_1;
			if (!(i_1 < xLen_1)) goto LA2;
			if (i_1 < 0 || i_1 >= x_p0.len){ raiseIndexError2(i_1,x_p0.len-1); goto BeforeRet_;
			}
			c_1 = x_p0.p->data[i_1];
			{
				NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_36;
				if (!((NU8)(c_1) == (NU8)(95))) goto LA5_;
				if (nimAddInt(i_1, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_36)) { raiseOverflow(); goto BeforeRet_;
				};
				i_1 = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_36);
			}
			goto LA3_;
LA5_: ;
			{
				NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_38;
				{
					NI TM__7tkD9cFJSchVDwHuwaY9bP9bA_37;
					if (!(((NU8)(c_1)) >= ((NU8)(65)) && ((NU8)(c_1)) <= ((NU8)(90)))) goto LA10_;
					if (nimAddInt(((NU8)(c_1)), ((NI)32), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_37)) { raiseOverflow(); goto BeforeRet_;
					};
					if (((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_37)) < ((NI)0) || ((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_37)) > ((NI)255)){ raiseRangeErrorI((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_37), ((NI)0), ((NI)255)); goto BeforeRet_;
					}
					c_1 = ((NIM_CHAR) (((NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_37))));
				}
LA10_: ;
				h_1 = emarkamp___pureZhashes_u4(h_1, ((NU8)(c_1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (nimAddInt(i_1, ((NI)1), &TM__7tkD9cFJSchVDwHuwaY9bP9bA_38)) { raiseOverflow(); goto BeforeRet_;
				};
				i_1 = (NI)(TM__7tkD9cFJSchVDwHuwaY9bP9bA_38);
			}
LA3_: ;
		} LA2: ;
	}
	result = emarkdollar___pureZhashes_u19(h_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NU64, hiXorLo__pureZhashes_u80)(NU64 a_p0, NU64 b_p1) {
	NU64 result;
	result = (NU64)0;
	result = 0ULL;
	__uint128_t r = a_p0; r *= b_p1; result = (r >> 64) ^ r;
	return result;
}
static N_INLINE(NI, hashWangYi1__pureZhashes_u139)(NU64 x_p0) {
	NI result;
	NU64 T1_;
	NU64 T2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	T1_ = (NU64)0;
	T1_ = hiXorLo__pureZhashes_u80(11562461410679940143ULL, (NU64)(x_p0 ^ 16646288086500911323ULL));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	T2_ = (NU64)0;
	T2_ = hiXorLo__pureZhashes_u80(T1_, 16952864883938283885ULL);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = ((NI) (T2_));
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, hash__basicZversions_u440)(NIM_BOOL x_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = hashWangYi1__pureZhashes_u139(((NU64) (x_p0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZpkgurls_u53)(tyObject_Uri__MX62yCLGQmnfVYEE3Hjm9cA* x_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	{
		NI T5_;
		if (!NIM_TRUE) goto LA3_;
		T5_ = (NI)0;
		T5_ = hash__pureZhashes_u586((*x_p0).scheme);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		NI T10_;
		if (!NIM_TRUE) goto LA8_;
		T10_ = (NI)0;
		T10_ = hash__pureZhashes_u586((*x_p0).username);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	{
		NI T15_;
		if (!NIM_TRUE) goto LA13_;
		T15_ = (NI)0;
		T15_ = hash__pureZhashes_u586((*x_p0).password);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T15_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA13_: ;
	{
		NI T20_;
		if (!NIM_TRUE) goto LA18_;
		T20_ = (NI)0;
		T20_ = hash__pureZhashes_u586((*x_p0).hostname);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T20_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA18_: ;
	{
		NI T25_;
		if (!NIM_TRUE) goto LA23_;
		T25_ = (NI)0;
		T25_ = hash__pureZhashes_u586((*x_p0).port);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T25_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA23_: ;
	{
		NI T30_;
		if (!NIM_TRUE) goto LA28_;
		T30_ = (NI)0;
		T30_ = hash__pureZhashes_u586((*x_p0).path);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T30_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA28_: ;
	{
		NI T35_;
		if (!NIM_TRUE) goto LA33_;
		T35_ = (NI)0;
		T35_ = hash__pureZhashes_u586((*x_p0).query);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T35_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA33_: ;
	{
		NI T40_;
		if (!NIM_TRUE) goto LA38_;
		T40_ = (NI)0;
		T40_ = hash__pureZhashes_u586((*x_p0).anchor);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T40_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA38_: ;
	{
		NI T45_;
		if (!NIM_TRUE) goto LA43_;
		T45_ = (NI)0;
		T45_ = hash__basicZversions_u440((*x_p0).opaque);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T45_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA43_: ;
	{
		NI T50_;
		if (!NIM_TRUE) goto LA48_;
		T50_ = (NI)0;
		T50_ = hash__basicZversions_u440((*x_p0).isIpv6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T50_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA48_: ;
	result = emarkdollar___pureZhashes_u19(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, hash__basicZpkgurls_u50)(tyObject_PkgUrl__xtGEmbK9cVcp0WbjakP0xVw* a_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = hash__basicZpkgurls_u53((&(*a_p0).u));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, hash__basicZversions_u426)(tyEnum_VersionRelation__4XquEtylWSi3MRH9c7xlRFw x_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = hashWangYi1__pureZhashes_u139(((NU64) (x_p0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZversions_u418)(tyObject_VersionReq__eFOT6plIfXH54d8sBkqpng x_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	{
		NI T5_;
		if (!NIM_TRUE) goto LA3_;
		T5_ = (NI)0;
		T5_ = hash__basicZversions_u426(x_p0.r);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		NI T10_;
		if (!NIM_TRUE) goto LA8_;
		T10_ = (NI)0;
		T10_ = hash__pureZhashes_u586(x_p0.v);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	result = emarkdollar___pureZhashes_u19(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZversions_u410)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* x_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	{
		NI T5_;
		if (!NIM_TRUE) goto LA3_;
		T5_ = (NI)0;
		T5_ = hash__basicZversions_u418((*x_p0).a);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		NI T10_;
		if (!NIM_TRUE) goto LA8_;
		T10_ = (NI)0;
		T10_ = hash__basicZversions_u418((*x_p0).b);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	{
		NI T15_;
		if (!NIM_TRUE) goto LA13_;
		T15_ = (NI)0;
		T15_ = hash__basicZversions_u440((*x_p0).isInterval);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T15_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA13_: ;
	result = emarkdollar___pureZhashes_u19(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, hash__basicZversions_u407)(tyObject_VersionInterval__Fo18dECYIXwkOygWPnb8YA* a_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	result = hash__basicZversions_u410(a_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZdeptypes_u227)(tyTuple__XXBtNszxg1rbD9cnycyLK7A* x_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	{
		NI T5_;
		if (!NIM_TRUE) goto LA3_;
		T5_ = (NI)0;
		T5_ = hash__basicZpkgurls_u50((&(*x_p0).Field0));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T5_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		NI T10_;
		if (!NIM_TRUE) goto LA8_;
		T10_ = (NI)0;
		T10_ = hash__basicZversions_u407((&(*x_p0).Field1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = emarkamp___pureZhashes_u4(result, T10_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA8_: ;
	result = emarkdollar___pureZhashes_u19(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hash__basicZdeptypes_u209)(tyTuple__XXBtNszxg1rbD9cnycyLK7A* x_p0, NI x_p0Len_0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	{
		tyTuple__XXBtNszxg1rbD9cnycyLK7A* a_1;
		NI i_1;
		a_1 = (tyTuple__XXBtNszxg1rbD9cnycyLK7A*)0;
		i_1 = ((NI)0);
		{
			while (1) {
				NI T4_;
				if (!(i_1 < x_p0Len_0)) goto LA3;
				if (i_1 < 0 || i_1 >= x_p0Len_0){ raiseIndexError2(i_1,x_p0Len_0-1); goto BeforeRet_;
				}
				a_1 = (&x_p0[i_1]);
				T4_ = (NI)0;
				T4_ = hash__basicZdeptypes_u227((&(*a_1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result = emarkamp___pureZhashes_u4(result, T4_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			} LA3: ;
		}
	}
	result = emarkdollar___pureZhashes_u19(result);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
