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

#include "nimbase.h"
#include <string.h>
#include <string.h>
#include <stdio.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 tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA;
typedef struct tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg;
typedef struct Exception Exception;
typedef struct RootObj RootObj;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct tySequence__S89cE01OvNjsN9c71FKsSrqQ tySequence__S89cE01OvNjsN9c71FKsSrqQ;
typedef struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
typedef struct tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA;
typedef struct tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig;
typedef struct tyTuple__dPNkpxgceTc63bP5seHZGw tyTuple__dPNkpxgceTc63bP5seHZGw;
typedef struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
struct TNimTypeV2 {
	void* destructor;
	NI size;
	NI16 align;
	NI16 depth;
	NU32* display;
	void* traceImpl;
	void* typeInfoV1;
	NI flags;
	void* vTable[SEQ_DECL_SIZE];
};
struct RootObj {
	TNimTypeV2* m_type;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ {
  NI len; tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content* p;
};
struct Exception {
	RootObj Sup;
	Exception* parent;
	NCSTRING name;
	NimStringV2 message;
	tySequence__S89cE01OvNjsN9c71FKsSrqQ trace;
	Exception* up;
};
struct tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg {
	Exception Sup;
};
struct tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA {
	tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg Sup;
};
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
typedef NI tyArray__9cc9aPiDa8VaWjVcFLabEDZQ[256];
typedef NimStringV2 tyArray__YgExxhfgKcesA5EOUj1MOA[1];
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
typedef NU8 tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw;
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
	NimStringV2 Field0;
	NimStringV2 Field1;
};
typedef NU8 tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ;
typedef NU8 tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA;
typedef NU8 tyEnum_FloatFormatMode__CTUpdhZ6zDNw9cC9acViKeYg;
typedef NIM_CHAR tyArray__Dz6OE1kpzz8bnx9batFy1Cw[6];
typedef NIM_CHAR tyArray__WALV5e0ysjOIjCclEgOBNg[2501];
typedef NIM_CHAR tyArray__50nvRd3q0jtEiYZ0Grr4SA[3];
typedef NU8 tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q;
struct tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA {
	NI a;
	NI b;
};
struct tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig {
	NI a;
	NI b;
};
struct tyTuple__dPNkpxgceTc63bP5seHZGw {
	NimStringV2 Field0;
	NIM_BOOL Field1;
};
typedef NU8 tyEnum_BinaryPrefixMode__DD8vm6t9bnCX9aiA69bRJXJtQ;
typedef NimStringV2 tyArray__hFPV9bffMpPjoz9bsO9crekNg[7];
struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA {
	NCSTRING procname;
	NI line;
	NCSTRING filename;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content { NI cap; tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toHexImpl__pureZstrutils_u778)(NU64 x_p0, NI len_p1, NIM_BOOL handleNegative_p2);
N_NIMCALL(NimStringV2, mnewString)(NI len_p0);
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_u2430)(NimStringV2* s_p0);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NOINLINE(void, invalidFormatString__pureZstrutils_u2575)(NimStringV2 formatstr_p0);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1);
static N_INLINE(void, copyMem__system_u1742)(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_NIMCALL(NimStringV2, rawNewString)(NI space_p0);
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e_p0, NCSTRING ename_p1, NCSTRING procname_p2, NCSTRING filename_p3, NI line_p4);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1);
N_LIB_PRIVATE N_NIMCALL(NI, findNormalized__pureZstrutils_u2562)(NimStringV2 x_p0, NimStringV2* inArray_p1, NI inArray_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringV2 a_p0, NimStringV2 b_p1);
static N_INLINE(NIM_CHAR, toLowerAscii__stdZprivateZstrimpl_u1)(NIM_CHAR c_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, substr__system_u8662)(NimStringV2 s_p0, NI first_p1, NI last_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringV2 s_p0, NIM_CHAR sub_p1, NI start_p2, NI last_p3);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, substr__system_u8675)(NimStringV2 s_p0, NI first_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, nsuInitNewSkipTable)(NimStringV2 sub_p0, tyArray__9cc9aPiDa8VaWjVcFLabEDZQ Result);
N_LIB_PRIVATE N_NIMCALL(void, nsuInitSkipTable)(NI* a_p0, NimStringV2 sub_p1);
N_LIB_PRIVATE N_NIMCALL(void, fill__pureZstrutils_u1567)(NI* a_p0, NI a_p0Len_0, NI value_p1);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindStrA)(tyArray__9cc9aPiDa8VaWjVcFLabEDZQ a_p0, NimStringV2 s_p1, NimStringV2 sub_p2, NI start_p3, NI last_p4);
N_LIB_PRIVATE N_NIMCALL(void, setLengthStrV2)(NimStringV2* s_p0, NI newLen_p1);
N_NIMCALL(NimStringV2, rawNewString)(NI cap_p0);
N_LIB_PRIVATE N_NIMCALL(void, nsuAddf)(NimStringV2* s_p0, NimStringV2 formatstr_p1, NimStringV2* a_p2, NI a_p2Len_0);
N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__stdZassertions_u79)(NimStringV2 msg_p0);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindStr)(NimStringV2 s_p0, NimStringV2 sub_p1, NI start_p2, NI last_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, nsuToLowerAsciiChar)(NIM_CHAR c_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringV2 s_p0, NimStringV2 prefix_p1);
N_LIB_PRIVATE N_NIMCALL(NI, parseHex__pureZstrutils_u990)(NimStringV2 s_p0, NI* number_p1, NI start_p2, NI maxLen_p3);
static N_INLINE(void, appendChar)(NimStringV2* dest_p0, NIM_CHAR c_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuEndsWith)(NimStringV2 s_p0, NimStringV2 suffix_p1);
static N_INLINE(NI, max__pureZstrutils_u1734)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2700)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, add__stdZenumutils_u71)(tySequence__sM4lkSb7zS6F7OVMvW9cffQ* x_p0, NimStringV2 y_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u2688)(NimStringV2* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nimIdentNormalize__pureZstrutils_u124)(NimStringV2 s_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);
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindCharSet)(NimStringV2 s_p0, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars_p1, NI start_p2, NI last_p3);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuContinuesWith)(NimStringV2 s_p0, NimStringV2 substr_p1, NI start_p2);
N_LIB_PRIVATE N_NIMCALL(NI, parseInt__pureZparseutils_u989)(NimStringV2 s_p0, NI* number_p1, NI start_p2);
N_LIB_PRIVATE N_NIMCALL(NI, hashString)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(NI, parseFloat__pureZparseutils_u1014)(NimStringV2 s_p0, NF* number_p1, NI start_p2);
N_LIB_PRIVATE N_NIMCALL(NI, parseBiggestInt__pureZparseutils_u984)(NimStringV2 s_p0, NI64* number_p1, NI start_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u9)(NI xX60gensym0__p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuNormalize)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(NI, parseBiggestUInt__pureZparseutils_u999)(NimStringV2 s_p0, NU64* number_p1, NI start_p2);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toHex__pureZstrutils_u2114)(NI x_p0, NI len_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuUnindent)(NimStringV2 s_p0, NI count_p1, NimStringV2 padding_p2);
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1286)(NimStringV2 s_p0, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA x_p1);
static N_INLINE(tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA, dotdot___stdZstrbasics_u49)(NI a_p0, NI b_p1);
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1314)(NimStringV2 s_p0, tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig x_p1);
static N_INLINE(tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig, dotdot___stdZenumutils_u106)(NI a_p0, NI b_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, nsuToUpperAsciiChar)(NIM_CHAR c_p0);
static N_INLINE(NI, fastLog2__pureZstrutils_u2356)(NI64 x_p0);
N_CDECL(int, __builtin_clzll)(unsigned long long x_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuformatFloat)(NF f_p0, tyEnum_FloatFormatMode__CTUpdhZ6zDNw9cC9acViKeYg format_p1, NI precision_p2, NIM_CHAR decimalSep_p3);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuformatBiggestFloat)(NF f_p0, tyEnum_FloatFormatMode__CTUpdhZ6zDNw9cC9acViKeYg format_p1, NI precision_p2, NIM_CHAR decimalSep_p3);
N_LIB_PRIVATE N_NIMCALL(void, trimZeros__pureZstrutils_u2321)(NimStringV2* x_p0, NIM_CHAR decimalSep_p1);
N_LIB_PRIVATE N_NIMCALL(void, delete__pureZstrutils_u1360)(NimStringV2* s_p0, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA slice_p1);
static const struct {
  NI cap; NIM_CHAR data[16+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_2 = { 16 | NIM_STRLIT_FLAG, "0123456789ABCDEF" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_3 = {16, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_2};
extern TNimTypeV2 NTIv2__S29bKZF4TUS33IR7ZXb7fFA_;
static const struct {
  NI cap; NIM_CHAR data[23+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_4 = { 23 | NIM_STRLIT_FLAG, "invalid format string: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_5 = {23, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_4};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_6 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_7 = {0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6};
static const struct {
  NI cap; NIM_CHAR data[36+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_8 = { 36 | NIM_STRLIT_FLAG, "strutils.nim(2148, 3) `sub.len > 0` " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_9 = {36, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_8};
static const struct {
  NI cap; NIM_CHAR data[28+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_10 = { 28 | NIM_STRLIT_FLAG, "String does not start with: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_11 = {28, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_10};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_12 = { 1 | NIM_STRLIT_FLAG, "\\" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_13 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_12};
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_14 = { 24 | NIM_STRLIT_FLAG, "String does not end in: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_15 = {24, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_14};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_16 = {0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_17 = { 1 | NIM_STRLIT_FLAG, "c" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_18 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_17};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_19 = { 3 | NIM_STRLIT_FLAG, "cpp" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_20 = {3, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_19};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_21 = { 2 | NIM_STRLIT_FLAG, "js" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_22 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_21};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_23 = { 4 | NIM_STRLIT_FLAG, "objc" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_24 = {4, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_23};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_25 = {0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_26 = { 21 | NIM_STRLIT_FLAG, "invalid hex integer: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_27 = {21, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_26};
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_28 = { 17 | NIM_STRLIT_FLAG, "invalid integer: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_29 = {17, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_28};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_30 = { 12 | NIM_STRLIT_FLAG, "dotoperators" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_31 = {12, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_30};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_32 = { 12 | NIM_STRLIT_FLAG, "calloperator" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_33 = {12, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_32};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_34 = { 8 | NIM_STRLIT_FLAG, "parallel" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_35 = {8, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_34};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_36 = { 10 | NIM_STRLIT_FLAG, "destructor" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_37 = {10, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_36};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_38 = { 6 | NIM_STRLIT_FLAG, "notnil" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_39 = {6, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_38};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_40 = { 14 | NIM_STRLIT_FLAG, "dynamicbindsym" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_41 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_40};
static const struct {
  NI cap; NIM_CHAR data[13+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_42 = { 13 | NIM_STRLIT_FLAG, "forloopmacros" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_43 = {13, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_42};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_44 = { 14 | NIM_STRLIT_FLAG, "casestmtmacros" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_45 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_44};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_46 = { 14 | NIM_STRLIT_FLAG, "codereordering" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_47 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_46};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_48 = { 14 | NIM_STRLIT_FLAG, "compiletimeffi" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_49 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_48};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_50 = { 11 | NIM_STRLIT_FLAG, "vmopsdanger" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_51 = {11, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_50};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_52 = { 11 | NIM_STRLIT_FLAG, "strictfuncs" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_53 = {11, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_52};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_54 = { 5 | NIM_STRLIT_FLAG, "views" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_55 = {5, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_54};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_56 = { 12 | NIM_STRLIT_FLAG, "strictnotnil" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_57 = {12, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_56};
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_58 = { 17 | NIM_STRLIT_FLAG, "overloadableenums" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_59 = {17, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_58};
static const struct {
  NI cap; NIM_CHAR data[13+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_60 = { 13 | NIM_STRLIT_FLAG, "stricteffects" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_61 = {13, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_60};
static const struct {
  NI cap; NIM_CHAR data[16+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_62 = { 16 | NIM_STRLIT_FLAG, "unicodeoperators" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_63 = {16, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_62};
static const struct {
  NI cap; NIM_CHAR data[22+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_64 = { 22 | NIM_STRLIT_FLAG, "flexibleoptionalparams" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_65 = {22, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_64};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_66 = { 10 | NIM_STRLIT_FLAG, "strictdefs" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_67 = {10, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_66};
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_68 = { 17 | NIM_STRLIT_FLAG, "strictcaseobjects" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_69 = {17, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_68};
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_70 = { 17 | NIM_STRLIT_FLAG, "infergenerictypes" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_71 = {17, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_70};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_72 = { 7 | NIM_STRLIT_FLAG, "opensym" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_73 = {7, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_72};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_74 = { 15 | NIM_STRLIT_FLAG, "genericsopensym" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_75 = {15, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_74};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_76 = { 7 | NIM_STRLIT_FLAG, "vtables" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_77 = {7, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_76};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_78 = { 12 | NIM_STRLIT_FLAG, "typeboundops" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_79 = {12, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_78};
static const struct {
  NI cap; NIM_CHAR data[20+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_80 = { 20 | NIM_STRLIT_FLAG, "Invalid enum value: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_81 = {20, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_80};
static const struct {
  NI cap; NIM_CHAR data[30+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_82 = { 30 | NIM_STRLIT_FLAG, "allowsemcheckedastmodification" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_83 = {30, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_82};
static const struct {
  NI cap; NIM_CHAR data[24+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_84 = { 24 | NIM_STRLIT_FLAG, "checkunsignedconversions" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_85 = {24, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_84};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_86 = { 10 | NIM_STRLIT_FLAG, "laxeffects" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_87 = {10, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_86};
static const struct {
  NI cap; NIM_CHAR data[19+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_88 = { 19 | NIM_STRLIT_FLAG, "verbosetypemismatch" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_89 = {19, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_88};
static const struct {
  NI cap; NIM_CHAR data[12+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_90 = { 12 | NIM_STRLIT_FLAG, "emitgenerics" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_91 = {12, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_90};
static const struct {
  NI cap; NIM_CHAR data[17+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_92 = { 17 | NIM_STRLIT_FLAG, "jsnolambdalifting" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_93 = {17, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_92};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_94 = { 15 | NIM_STRLIT_FLAG, "nopaniconexcept" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_95 = {15, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_94};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_96 = {20, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_80};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_97 = { 15 | NIM_STRLIT_FLAG, "invalid float: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_98 = {15, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_97};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_99 = {17, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_28};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_100 = { 1 | NIM_STRLIT_FLAG, "y" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_101 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_100};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_102 = { 3 | NIM_STRLIT_FLAG, "yes" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_103 = {3, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_102};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_104 = { 4 | NIM_STRLIT_FLAG, "true" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_105 = {4, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_104};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_106 = { 1 | NIM_STRLIT_FLAG, "1" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_107 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_106};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_108 = { 2 | NIM_STRLIT_FLAG, "on" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_109 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_108};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_110 = { 1 | NIM_STRLIT_FLAG, "n" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_111 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_110};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_112 = { 2 | NIM_STRLIT_FLAG, "no" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_113 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_112};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_114 = { 5 | NIM_STRLIT_FLAG, "false" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_115 = {5, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_114};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_116 = { 1 | NIM_STRLIT_FLAG, "0" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_117 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_116};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_118 = { 3 | NIM_STRLIT_FLAG, "off" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_119 = {3, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_118};
static const struct {
  NI cap; NIM_CHAR data[28+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_120 = { 28 | NIM_STRLIT_FLAG, "cannot interpret as a bool: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_121 = {28, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_120};
static const struct {
  NI cap; NIM_CHAR data[26+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_122 = { 26 | NIM_STRLIT_FLAG, "invalid unsigned integer: " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_123 = {26, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_122};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_124 = { 10 | NIM_STRLIT_FLAG, "prefername" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_125 = {10, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_124};
static const struct {
  NI cap; NIM_CHAR data[10+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_126 = { 10 | NIM_STRLIT_FLAG, "preferdesc" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_127 = {10, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_126};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_128 = { 14 | NIM_STRLIT_FLAG, "preferexported" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_129 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_128};
static const struct {
  NI cap; NIM_CHAR data[16+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_130 = { 16 | NIM_STRLIT_FLAG, "prefermoduleinfo" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_131 = {16, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_130};
static const struct {
  NI cap; NIM_CHAR data[16+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_132 = { 16 | NIM_STRLIT_FLAG, "prefergenericarg" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_133 = {16, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_132};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_134 = { 14 | NIM_STRLIT_FLAG, "prefertypename" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_135 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_134};
static const struct {
  NI cap; NIM_CHAR data[14+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_136 = { 14 | NIM_STRLIT_FLAG, "preferresolved" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_137 = {14, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_136};
static const struct {
  NI cap; NIM_CHAR data[11+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_138 = { 11 | NIM_STRLIT_FLAG, "prefermixed" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_139 = {11, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_138};
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_140 = { 15 | NIM_STRLIT_FLAG, "preferinlayhint" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_141 = {15, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_140};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_142 = { 21 | NIM_STRLIT_FLAG, "preferinferredeffects" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_143 = {21, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_142};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_144 = {20, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_80};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_145 = { 2 | NIM_STRLIT_FLAG, "\\x" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_146 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_145};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_147 = { 2 | NIM_STRLIT_FLAG, "\\\\" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_148 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_147};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_149 = { 2 | NIM_STRLIT_FLAG, "\\\'" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_150 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_149};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_151 = { 2 | NIM_STRLIT_FLAG, "\\\"" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_152 = {2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_151};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_153 = {0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_154 = { 1 | NIM_STRLIT_FLAG, "\012" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_155 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_154};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_156 = { 1 | NIM_STRLIT_FLAG, " " };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_157 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_156};
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_158 = {0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_159 = { 1 | NIM_STRLIT_FLAG, "k" };
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_160 = { 1 | NIM_STRLIT_FLAG, "M" };
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_161 = { 1 | NIM_STRLIT_FLAG, "G" };
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_162 = { 1 | NIM_STRLIT_FLAG, "T" };
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_163 = { 1 | NIM_STRLIT_FLAG, "P" };
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_164 = { 1 | NIM_STRLIT_FLAG, "E" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_165 = { 2 | NIM_STRLIT_FLAG, "Ki" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_166 = { 2 | NIM_STRLIT_FLAG, "Mi" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_167 = { 2 | NIM_STRLIT_FLAG, "Gi" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_168 = { 2 | NIM_STRLIT_FLAG, "Ti" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_169 = { 2 | NIM_STRLIT_FLAG, "Pi" };
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_170 = { 2 | NIM_STRLIT_FLAG, "Ei" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_171 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_156};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__JGc9b9bh2D3nTdUR7TGyq8aA_172 = { 1 | NIM_STRLIT_FLAG, "B" };
static const NimStringV2 TM__JGc9b9bh2D3nTdUR7TGyq8aA_173 = {1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_172};
N_LIB_PRIVATE NIM_CONST tyArray__50nvRd3q0jtEiYZ0Grr4SA floatFormatToChar__pureZstrutils_u2192 = {103,
102,
101}
;
N_LIB_PRIVATE NIM_CONST tyArray__hFPV9bffMpPjoz9bsO9crekNg collPrefixes__pureZstrutils_u2355 = {{0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6},
{1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_159},
{1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_160},
{1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_161},
{1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_162},
{1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_163},
{1, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_164}}
;
N_LIB_PRIVATE NIM_CONST tyArray__hFPV9bffMpPjoz9bsO9crekNg iecPrefixes__pureZstrutils_u2354 = {{0, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_6},
{2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_165},
{2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_166},
{2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_167},
{2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_168},
{2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_169},
{2, (NimStrPayload*)&TM__JGc9b9bh2D3nTdUR7TGyq8aA_170}}
;
extern NIM_BOOL nimInErrorMode__system_u4144;
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = !(((*s_p0).p == ((NimStrPayload*) NIM_NIL)));
		if (!(T3_)) goto LA4_;
		T3_ = ((NI)((*(*s_p0).p).cap & ((NI)1073741824)) == ((NI)1073741824));
LA4_: ;
		if (!T3_) goto LA5_;
		nimPrepareStrMutationImpl__system_u2430(s_p0);
	}
LA5_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toHexImpl__pureZstrutils_u778)(NU64 x_p0, NI len_p1, NIM_BOOL handleNegative_p2) {
	NimStringV2 result;
	NU64 n_1;
	n_1 = x_p0;
	result = mnewString(len_p1);
	{
		NI j_1;
		NI colontmp_;
		NI res_1;
		j_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(len_p1 - ((NI)1));
		res_1 = colontmp_;
		{
			while (1) {
				if (!(((NI)0) <= res_1)) goto LA3;
				j_1 = ((NI) (res_1));
				nimPrepareStrMutationV2((&result));
				result.p->data[j_1] = TM__JGc9b9bh2D3nTdUR7TGyq8aA_3.p->data[((NI) ((NU64)(n_1 & 15ULL)))];
				n_1 = (NU64)((NU64)(n_1) >> (NU64)(((NI)4) & (64 - 1)));
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = (n_1 == 0ULL);
					if (!(T6_)) goto LA7_;
					T6_ = handleNegative_p2;
LA7_: ;
					if (!T6_) goto LA8_;
					n_1 = 18446744073709551615ULL;
				}
LA8_: ;
				res_1 -= ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4144);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toHex__pureZstrutils_u2114)(NI x_p0, NI len_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = toHexImpl__pureZstrutils_u778(((NU64) (((NI64) (x_p0)))), len_p1, (x_p0 < ((NI)0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}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)));
}
static N_INLINE(void, copyMem__system_u1742)(void* dest_p0, void* source_p1, NI size_p2) {
	nimCopyMem(dest_p0, source_p1, size_p2);
}
static N_INLINE(void, appendString)(NimStringV2* dest_p0, NimStringV2 src_p1) {
	{
		if (!(((NI)0) < src_p1.len)) goto LA3_;
		copyMem__system_u1742(((void*) ((&(*(*dest_p0).p).data[(*dest_p0).len]))), ((void*) ((&(*src_p1.p).data[((NI)0)]))), (src_p1.len));
		(*dest_p0).len += src_p1.len;
		(*(*dest_p0).p).data[(*dest_p0).len] = 0;
	}
LA3_: ;
}
N_LIB_PRIVATE N_NOINLINE(void, invalidFormatString__pureZstrutils_u2575)(NimStringV2 formatstr_p0) {
	tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T1_;
	NimStringV2 T2_;
{	T1_ = NIM_NIL;
	T1_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
	(*T1_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
	(*T1_).Sup.Sup.name = "ValueError";
	T2_.len = 0; T2_.p = NIM_NIL;
	T2_ = rawNewString(formatstr_p0.len + 23);
appendString((&T2_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_5);
appendString((&T2_), formatstr_p0);
	(*T1_).Sup.Sup.message = T2_;
	(*T1_).Sup.Sup.parent = ((Exception*) NIM_NIL);
	raiseExceptionEx((Exception*)T1_, "ValueError", "invalidFormatString", "strutils.nim", 2831);
goto BeforeRet_;
	}BeforeRet_: ;
}
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1) {
	prepareAdd(s_p0, ((NI)1));
	(*(*s_p0).p).data[(*s_p0).len] = c_p1;
	(*s_p0).len += ((NI)1);
	(*(*s_p0).p).data[(*s_p0).len] = 0;
}
static N_INLINE(NIM_CHAR, toLowerAscii__stdZprivateZstrimpl_u1)(NIM_CHAR c_p0) {
	NIM_CHAR result;
	result = (NIM_CHAR)0;
	{
		if (!(((NU8)(c_p0)) >= ((NU8)(65)) && ((NU8)(c_p0)) <= ((NU8)(90)))) goto LA3_;
		result = ((NIM_CHAR) (((NI)(((NU8)(c_p0)) + ((NI)32)))));
	}
	goto LA1_;
LA3_: ;
	{
		result = c_p0;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreStyle)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NI result;
	NI aLenX60gensym24__1;
	NI bLenX60gensym24__1;
	NI iX60gensym24__1;
	NI jX60gensym24__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	aLenX60gensym24__1 = a_p0.len;
	bLenX60gensym24__1 = b_p1.len;
	iX60gensym24__1 = ((NI)0);
	jX60gensym24__1 = ((NI)0);
	{
		while (1) {
			NIM_CHAR colontmpD_;
			NIM_CHAR colontmpD__2;
			NIM_CHAR colontmpD__3;
			NIM_CHAR colontmpD__4;
			NIM_CHAR aaX60gensym24__1;
			NIM_CHAR bbX60gensym24__1;
			colontmpD_ = (NIM_CHAR)0;
			colontmpD__2 = (NIM_CHAR)0;
			colontmpD__3 = (NIM_CHAR)0;
			colontmpD__4 = (NIM_CHAR)0;
			{
				while (1) {
					NIM_BOOL T5_;
					T5_ = (NIM_BOOL)0;
					T5_ = (iX60gensym24__1 < aLenX60gensym24__1);
					if (!(T5_)) goto LA6_;
					T5_ = ((NU8)(a_p0.p->data[iX60gensym24__1]) == (NU8)(95));
LA6_: ;
					if (!T5_) goto LA4;
					iX60gensym24__1 += ((NI)1);
				} LA4: ;
			}
			{
				while (1) {
					NIM_BOOL T9_;
					T9_ = (NIM_BOOL)0;
					T9_ = (jX60gensym24__1 < bLenX60gensym24__1);
					if (!(T9_)) goto LA10_;
					T9_ = ((NU8)(b_p1.p->data[jX60gensym24__1]) == (NU8)(95));
LA10_: ;
					if (!T9_) goto LA8;
					jX60gensym24__1 += ((NI)1);
				} LA8: ;
			}
			{
				if (!(iX60gensym24__1 < aLenX60gensym24__1)) goto LA13_;
				colontmpD_ = toLowerAscii__stdZprivateZstrimpl_u1(a_p0.p->data[iX60gensym24__1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				aaX60gensym24__1 = colontmpD_;
			}
			goto LA11_;
LA13_: ;
			{
				colontmpD__2 = 0;
				aaX60gensym24__1 = colontmpD__2;
			}
LA11_: ;
			{
				if (!(jX60gensym24__1 < bLenX60gensym24__1)) goto LA18_;
				colontmpD__3 = toLowerAscii__stdZprivateZstrimpl_u1(b_p1.p->data[jX60gensym24__1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				bbX60gensym24__1 = colontmpD__3;
			}
			goto LA16_;
LA18_: ;
			{
				colontmpD__4 = 0;
				bbX60gensym24__1 = colontmpD__4;
			}
LA16_: ;
			result = (NI)(((NU8)(aaX60gensym24__1)) - ((NU8)(bbX60gensym24__1)));
			{
				if (!!((result == ((NI)0)))) goto LA23_;
				goto BeforeRet_;
			}
LA23_: ;
			{
				if (!(aLenX60gensym24__1 <= iX60gensym24__1)) goto LA27_;
				{
					if (!(bLenX60gensym24__1 <= jX60gensym24__1)) goto LA31_;
					result = ((NI)0);
					goto BeforeRet_;
				}
LA31_: ;
				result = ((NI)-1);
				goto BeforeRet_;
			}
			goto LA25_;
LA27_: ;
			{
				if (!(bLenX60gensym24__1 <= jX60gensym24__1)) goto LA34_;
				result = ((NI)1);
				goto BeforeRet_;
			}
			goto LA25_;
LA34_: ;
LA25_: ;
			iX60gensym24__1 += ((NI)1);
			jX60gensym24__1 += ((NI)1);
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, findNormalized__pureZstrutils_u2562)(NimStringV2 x_p0, NimStringV2* inArray_p1, NI inArray_p1Len_0) {
	NI result;
	NI i_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	i_1 = ((NI)0);
	{
		while (1) {
			if (!(i_1 < (inArray_p1Len_0-1))) goto LA2;
			{
				NI T5_;
				T5_ = (NI)0;
				T5_ = nsuCmpIgnoreStyle(x_p0, inArray_p1[i_1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!(T5_ == ((NI)0))) goto LA6_;
				result = i_1;
				goto BeforeRet_;
			}
LA6_: ;
			i_1 += ((NI)2);
		} LA2: ;
	}
	result = ((NI)-1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nsuAddf)(NimStringV2* s_p0, NimStringV2 formatstr_p1, NimStringV2* a_p2, NI a_p2Len_0) {
	NI i_1;
	NI num_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	i_1 = ((NI)0);
	num_1 = ((NI)0);
	{
		while (1) {
			if (!(i_1 < formatstr_p1.len)) goto LA2;
			{
				NIM_BOOL T5_;
				T5_ = (NIM_BOOL)0;
				T5_ = ((NU8)(formatstr_p1.p->data[i_1]) == (NU8)(36));
				if (!(T5_)) goto LA6_;
				T5_ = ((NI)(i_1 + ((NI)1)) < formatstr_p1.len);
LA6_: ;
				if (!T5_) goto LA7_;
				switch (((NU8)(formatstr_p1.p->data[(NI)(i_1 + ((NI)1))]))) {
				case 35:
				{
					{
						if (!((a_p2Len_0-1) < num_1)) goto LA12_;
						invalidFormatString__pureZstrutils_u2575(formatstr_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA12_: ;
					prepareAdd((&(*s_p0)), a_p2[num_1].len + 0);
appendString((&(*s_p0)), a_p2[num_1]);
					i_1 += ((NI)2);
					num_1 += ((NI)1);
				}
				break;
				case 36:
				{
					nimAddCharV1((&(*s_p0)), 36);
					i_1 += ((NI)2);
				}
				break;
				case 49 ... 57:
				case 45:
				{
					NI colontmpD_;
					NI colontmpD__2;
					NI j_1;
					NIM_BOOL negative_1;
					NI idx_1;
					colontmpD_ = (NI)0;
					colontmpD__2 = (NI)0;
					j_1 = ((NI)0);
					i_1 += ((NI)1);
					negative_1 = ((NU8)(formatstr_p1.p->data[i_1]) == (NU8)(45));
					{
						if (!negative_1) goto LA18_;
						i_1 += ((NI)1);
					}
LA18_: ;
					{
						while (1) {
							NIM_BOOL T22_;
							T22_ = (NIM_BOOL)0;
							T22_ = (i_1 < formatstr_p1.len);
							if (!(T22_)) goto LA23_;
							T22_ = (((NU8)(formatstr_p1.p->data[i_1])) >= ((NU8)(48)) && ((NU8)(formatstr_p1.p->data[i_1])) <= ((NU8)(57)));
LA23_: ;
							if (!T22_) goto LA21;
							j_1 = (NI)((NI)((NI)(j_1 * ((NI)10)) + ((NU8)(formatstr_p1.p->data[i_1]))) - ((NI)48));
							i_1 += ((NI)1);
						} LA21: ;
					}
					{
						if (!!(negative_1)) goto LA26_;
						colontmpD_ = (NI)(j_1 - ((NI)1));
						idx_1 = colontmpD_;
					}
					goto LA24_;
LA26_: ;
					{
						colontmpD__2 = (NI)(a_p2Len_0 - j_1);
						idx_1 = colontmpD__2;
					}
LA24_: ;
					{
						NIM_BOOL T31_;
						T31_ = (NIM_BOOL)0;
						T31_ = (idx_1 < ((NI)0));
						if (T31_) goto LA32_;
						T31_ = ((a_p2Len_0-1) < idx_1);
LA32_: ;
						if (!T31_) goto LA33_;
						invalidFormatString__pureZstrutils_u2575(formatstr_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA33_: ;
					prepareAdd((&(*s_p0)), a_p2[idx_1].len + 0);
appendString((&(*s_p0)), a_p2[idx_1]);
				}
				break;
				case 123:
				{
					NI j_2;
					NI k_1;
					NIM_BOOL negative_2;
					NI isNumber_1;
					j_2 = (NI)(i_1 + ((NI)2));
					k_1 = ((NI)0);
					negative_2 = ((NU8)(formatstr_p1.p->data[j_2]) == (NU8)(45));
					{
						if (!negative_2) goto LA38_;
						j_2 += ((NI)1);
					}
LA38_: ;
					isNumber_1 = ((NI)0);
					{
						while (1) {
							NIM_BOOL T42_;
							T42_ = (NIM_BOOL)0;
							T42_ = (j_2 < formatstr_p1.len);
							if (!(T42_)) goto LA43_;
							T42_ = !((((NU8)(formatstr_p1.p->data[j_2])) == ((NU8)(0)) || ((NU8)(formatstr_p1.p->data[j_2])) == ((NU8)(125))));
LA43_: ;
							if (!T42_) goto LA41;
							{
								if (!(((NU8)(formatstr_p1.p->data[j_2])) >= ((NU8)(48)) && ((NU8)(formatstr_p1.p->data[j_2])) <= ((NU8)(57)))) goto LA46_;
								k_1 = (NI)((NI)((NI)(k_1 * ((NI)10)) + ((NU8)(formatstr_p1.p->data[j_2]))) - ((NI)48));
								{
									if (!(isNumber_1 == ((NI)0))) goto LA50_;
									isNumber_1 = ((NI)1);
								}
LA50_: ;
							}
							goto LA44_;
LA46_: ;
							{
								isNumber_1 = ((NI)-1);
							}
LA44_: ;
							j_2 += ((NI)1);
						} LA41: ;
					}
					{
						NI colontmpD__3;
						NI colontmpD__4;
						NI idx_2;
						if (!(isNumber_1 == ((NI)1))) goto LA55_;
						colontmpD__3 = (NI)0;
						colontmpD__4 = (NI)0;
						{
							if (!!(negative_2)) goto LA59_;
							colontmpD__3 = (NI)(k_1 - ((NI)1));
							idx_2 = colontmpD__3;
						}
						goto LA57_;
LA59_: ;
						{
							colontmpD__4 = (NI)(a_p2Len_0 - k_1);
							idx_2 = colontmpD__4;
						}
LA57_: ;
						{
							NIM_BOOL T64_;
							T64_ = (NIM_BOOL)0;
							T64_ = (idx_2 < ((NI)0));
							if (T64_) goto LA65_;
							T64_ = ((a_p2Len_0-1) < idx_2);
LA65_: ;
							if (!T64_) goto LA66_;
							invalidFormatString__pureZstrutils_u2575(formatstr_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
LA66_: ;
						prepareAdd((&(*s_p0)), a_p2[idx_2].len + 0);
appendString((&(*s_p0)), a_p2[idx_2]);
					}
					goto LA53_;
LA55_: ;
					{
						NimStringV2 colontmpD__5;
						NI x_1;
						colontmpD__5.len = 0; colontmpD__5.p = NIM_NIL;
						colontmpD__5 = substr__system_u8662(formatstr_p1, (NI)(i_1 + ((NI)2)), (NI)(j_2 - ((NI)1)));
						x_1 = findNormalized__pureZstrutils_u2562(colontmpD__5, a_p2, a_p2Len_0);
						if (NIM_UNLIKELY(*nimErr_)) goto LA69_;
						{
							NIM_BOOL T72_;
							T72_ = (NIM_BOOL)0;
							T72_ = (((NI)0) <= x_1);
							if (!(T72_)) goto LA73_;
							T72_ = (x_1 < (a_p2Len_0-1));
LA73_: ;
							if (!T72_) goto LA74_;
							prepareAdd((&(*s_p0)), a_p2[(NI)(x_1 + ((NI)1))].len + 0);
appendString((&(*s_p0)), a_p2[(NI)(x_1 + ((NI)1))]);
						}
						goto LA70_;
LA74_: ;
						{
							invalidFormatString__pureZstrutils_u2575(formatstr_p1);
							if (NIM_UNLIKELY(*nimErr_)) goto LA69_;
						}
LA70_: ;
						{
							LA69_:;
						}
						{
							eqdestroy___system_u2691(colontmpD__5);
						}
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA53_: ;
					i_1 = (NI)(j_2 + ((NI)1));
				}
				break;
				case 97 ... 122:
				case 65 ... 90:
				case 128 ... 255:
				case 95:
				{
					NimStringV2 colontmpD__6;
					NI j_3;
					NI x_2;
					colontmpD__6.len = 0; colontmpD__6.p = NIM_NIL;
					j_3 = (NI)(i_1 + ((NI)1));
					{
						while (1) {
							NIM_BOOL T83_;
							T83_ = (NIM_BOOL)0;
							T83_ = (j_3 < formatstr_p1.len);
							if (!(T83_)) goto LA84_;
							T83_ = (((NU8)(formatstr_p1.p->data[j_3])) >= ((NU8)(97)) && ((NU8)(formatstr_p1.p->data[j_3])) <= ((NU8)(122)) || ((NU8)(formatstr_p1.p->data[j_3])) >= ((NU8)(65)) && ((NU8)(formatstr_p1.p->data[j_3])) <= ((NU8)(90)) || ((NU8)(formatstr_p1.p->data[j_3])) >= ((NU8)(48)) && ((NU8)(formatstr_p1.p->data[j_3])) <= ((NU8)(57)) || ((NU8)(formatstr_p1.p->data[j_3])) >= ((NU8)(128)) && ((NU8)(formatstr_p1.p->data[j_3])) <= ((NU8)(255)) || ((NU8)(formatstr_p1.p->data[j_3])) == ((NU8)(95)));
LA84_: ;
							if (!T83_) goto LA82;
							j_3 += ((NI)1);
						} LA82: ;
					}
					colontmpD__6 = substr__system_u8662(formatstr_p1, (NI)(i_1 + ((NI)1)), (NI)(j_3 - ((NI)1)));
					x_2 = findNormalized__pureZstrutils_u2562(colontmpD__6, a_p2, a_p2Len_0);
					if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
					{
						NIM_BOOL T87_;
						T87_ = (NIM_BOOL)0;
						T87_ = (((NI)0) <= x_2);
						if (!(T87_)) goto LA88_;
						T87_ = (x_2 < (a_p2Len_0-1));
LA88_: ;
						if (!T87_) goto LA89_;
						prepareAdd((&(*s_p0)), a_p2[(NI)(x_2 + ((NI)1))].len + 0);
appendString((&(*s_p0)), a_p2[(NI)(x_2 + ((NI)1))]);
					}
					goto LA85_;
LA89_: ;
					{
						invalidFormatString__pureZstrutils_u2575(formatstr_p1);
						if (NIM_UNLIKELY(*nimErr_)) goto LA80_;
					}
LA85_: ;
					i_1 = j_3;
					{
						LA80_:;
					}
					{
						eqdestroy___system_u2691(colontmpD__6);
					}
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				default:
				{
					invalidFormatString__pureZstrutils_u2575(formatstr_p1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				}
				break;
				}
			}
			goto LA3_;
LA7_: ;
			{
				nimAddCharV1((&(*s_p0)), formatstr_p1.p->data[i_1]);
				i_1 += ((NI)1);
			}
LA3_: ;
		} LA2: ;
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, allCharsInSet__pureZstrutils_u1502)(NimStringV2 s_p0, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw theSet_p1) {
	NIM_BOOL result;
{	{
		NIM_CHAR c_1;
		NI i_1;
		NI L_1;
		c_1 = (NIM_CHAR)0;
		i_1 = ((NI)0);
		L_1 = s_p0.len;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA3;
				c_1 = s_p0.p->data[i_1];
				{
					if (!!(((theSet_p1[(NU)((((NU8)(c_1))))>>3] &(1U<<((NU)((((NU8)(c_1))))&7U)))!=0))) goto LA6_;
					result = NIM_FALSE;
					goto BeforeRet_;
				}
LA6_: ;
				i_1 += ((NI)1);
			} LA3: ;
		}
	}
	result = NIM_TRUE;
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU32)(((NU) (x_p0))) - (NU32)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s_p0) {
	NCSTRING result;
	{
		if (!(s_p0.len == ((NI)0))) goto LA3_;
		result = "";
	}
	goto LA1_;
LA3_: ;
	{
		result = ((NCSTRING) ((*s_p0.p).data));
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringV2 s_p0, NIM_CHAR sub_p1, NI start_p2, NI last_p3) {
	NI result;
	NI colontmpD_;
	NI colontmpD__2;
	NI last_2;
	NI length_1;
{	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	result = ((NI)-1);
	{
		if (!(last_p3 < ((NI)0))) goto LA3_;
		colontmpD_ = (s_p0.len-1);
		last_2 = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = last_p3;
		last_2 = colontmpD__2;
	}
LA1_: ;
	length_1 = (NI)((NI)(last_2 - start_p2) + ((NI)1));
	{
		void* found_1;
		if (!(((NI)0) < length_1)) goto LA8_;
		found_1 = memchr(((void*) ((&s_p0.p->data[start_p2]))), ((int) (((NU8)(sub_p1)))), ((size_t) (length_1)));
		{
			if (!!((found_1 == 0))) goto LA12_;
			result = minuspercent___system_u805(((NI) (ptrdiff_t) (found_1)), ((NI) (nimToCStringConv(s_p0))));
			goto BeforeRet_;
		}
LA12_: ;
	}
LA8_: ;
	}BeforeRet_: ;
	return result;
}
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);
}
N_LIB_PRIVATE N_NIMCALL(void, nsuInitSkipTable)(NI* a_p0, NimStringV2 sub_p1) {
	NI m_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	m_1 = sub_p1.len;
	fill__pureZstrutils_u1567(a_p0, 256, m_1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i_1;
		NI colontmp_;
		NI i_2;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(m_1 - ((NI)1));
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < colontmp_)) goto LA3;
				i_1 = i_2;
				a_p0[(((NU8)(sub_p1.p->data[i_1])))- 0] = (NI)((NI)(m_1 - ((NI)1)) - i_1);
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, nsuInitNewSkipTable)(NimStringV2 sub_p0, tyArray__9cc9aPiDa8VaWjVcFLabEDZQ Result) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	nsuInitSkipTable(Result, sub_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindStrA)(tyArray__9cc9aPiDa8VaWjVcFLabEDZQ a_p0, NimStringV2 s_p1, NimStringV2 sub_p2, NI start_p3, NI last_p4) {
	NI result;
	NI colontmpD_;
	NI colontmpD__2;
	NI last_2;
	NI subLast_1;
	NI skip_1;
{	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	{
		if (!(last_p4 < ((NI)0))) goto LA3_;
		colontmpD_ = (s_p1.len-1);
		last_2 = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = last_p4;
		last_2 = colontmpD__2;
	}
LA1_: ;
	subLast_1 = (NI)(sub_p2.len - ((NI)1));
	{
		if (!(subLast_1 == ((NI)-1))) goto LA8_;
		result = start_p3;
		goto BeforeRet_;
	}
LA8_: ;
	result = ((NI)-1);
	skip_1 = start_p3;
	{
		while (1) {
			NI i_1;
			if (!(subLast_1 <= (NI)(last_2 - skip_1))) goto LA11;
			i_1 = subLast_1;
			{
				while (1) {
					if (!((NU8)(s_p1.p->data[(NI)(skip_1 + i_1)]) == (NU8)(sub_p2.p->data[i_1]))) goto LA13;
					{
						if (!(i_1 == ((NI)0))) goto LA16_;
						result = skip_1;
						goto BeforeRet_;
					}
LA16_: ;
					i_1 -= ((NI)1);
				} LA13: ;
			}
			skip_1 += a_p0[(((NU8)(s_p1.p->data[(NI)(skip_1 + subLast_1)])))- 0];
		} LA11: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuReplaceStr)(NimStringV2 s_p0, NimStringV2 sub_p1, NimStringV2 by_p2) {
	NimStringV2 result;
	NI subLen_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = TM__JGc9b9bh2D3nTdUR7TGyq8aA_7;
	subLen_1 = sub_p1.len;
	{
		if (!(subLen_1 == ((NI)0))) goto LA3_;
		eqcopy___system_u2694((&result), s_p0);
	}
	goto LA1_;
LA3_: ;
	{
		NimStringV2 colontmpD_;
		NIM_CHAR c_1;
		NI last_1;
		NI i_1;
		if (!(subLen_1 == ((NI)1))) goto LA6_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		c_1 = sub_p1.p->data[((NI)0)];
		last_1 = (s_p0.len-1);
		i_1 = ((NI)0);
		{
			while (1) {
				NimStringV2 colontmpD__2;
				NI j_1;
				colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
				j_1 = nsuFindChar(s_p0, c_1, (i_1), last_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
				{
					if (!(j_1 < ((NI)0))) goto LA14_;
					eqdestroy___system_u2691(colontmpD__2);
					goto LA9;
				}
LA14_: ;
				colontmpD__2 = substr__system_u8662(s_p0, i_1, (NI)(j_1 - ((NI)1)));
				prepareAdd((&result), colontmpD__2.len + 0);
appendString((&result), colontmpD__2);
				prepareAdd((&result), by_p2.len + 0);
appendString((&result), by_p2);
				i_1 = (NI)(j_1 + subLen_1);
				{
					LA11_:;
				}
				{
					eqdestroy___system_u2691(colontmpD__2);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA8_;
			}
		} LA9: ;
		colontmpD_ = substr__system_u8675(s_p0, i_1);
		prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
		{
			LA8_:;
		}
		{
			eqdestroy___system_u2691(colontmpD_);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA6_: ;
	{
		NimStringV2 colontmpD__3;
		tyArray__9cc9aPiDa8VaWjVcFLabEDZQ a_1;
		NI last_2;
		NI i_2;
		colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
		nimZeroMem((void*)a_1, sizeof(tyArray__9cc9aPiDa8VaWjVcFLabEDZQ));
		nsuInitNewSkipTable(sub_p1, a_1);
		if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
		last_2 = (s_p0.len-1);
		i_2 = ((NI)0);
		{
			while (1) {
				NimStringV2 colontmpD__4;
				NI j_2;
				colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
				j_2 = nsuFindStrA(a_1, s_p0, sub_p1, (i_2), last_2);
				if (NIM_UNLIKELY(*nimErr_)) goto LA24_;
				{
					if (!(j_2 < ((NI)0))) goto LA27_;
					eqdestroy___system_u2691(colontmpD__4);
					goto LA22;
				}
LA27_: ;
				colontmpD__4 = substr__system_u8662(s_p0, i_2, (NI)(j_2 - ((NI)1)));
				prepareAdd((&result), colontmpD__4.len + 0);
appendString((&result), colontmpD__4);
				prepareAdd((&result), by_p2.len + 0);
appendString((&result), by_p2);
				i_2 = (NI)(j_2 + subLen_1);
				{
					LA24_:;
				}
				{
					eqdestroy___system_u2691(colontmpD__4);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA21_;
			}
		} LA22: ;
		colontmpD__3 = substr__system_u8675(s_p0, i_2);
		prepareAdd((&result), colontmpD__3.len + 0);
appendString((&result), colontmpD__3);
		{
			LA21_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__3);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuEndsWith)(NimStringV2 s_p0, NimStringV2 suffix_p1) {
	NIM_BOOL result;
	NI suffixLenX60gensym142__1;
	NI sLenX60gensym142__1;
	NI iX60gensym142__1;
	NI jX60gensym142__1;
{	result = NIM_FALSE;
	suffixLenX60gensym142__1 = suffix_p1.len;
	sLenX60gensym142__1 = s_p0.len;
	iX60gensym142__1 = ((NI)0);
	jX60gensym142__1 = (NI)(sLenX60gensym142__1 - suffixLenX60gensym142__1);
	{
		while (1) {
			NIM_BOOL T3_;
			T3_ = (NIM_BOOL)0;
			T3_ = (((NI)0) <= (NI)(iX60gensym142__1 + jX60gensym142__1));
			if (!(T3_)) goto LA4_;
			T3_ = ((NI)(iX60gensym142__1 + jX60gensym142__1) < sLenX60gensym142__1);
LA4_: ;
			if (!T3_) goto LA2;
			{
				if (!!(((NU8)(s_p0.p->data[(NI)(iX60gensym142__1 + jX60gensym142__1)]) == (NU8)(suffix_p1.p->data[iX60gensym142__1])))) goto LA7_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
LA7_: ;
			iX60gensym142__1 += ((NI)1);
		} LA2: ;
	}
	{
		if (!(suffixLenX60gensym142__1 <= iX60gensym142__1)) goto LA11_;
		result = NIM_TRUE;
		goto BeforeRet_;
	}
LA11_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuNormalize)(NimStringV2 s_p0) {
	NimStringV2 result;
	NI j_1;
	result.len = 0; result.p = NIM_NIL;
	result = mnewString((s_p0.len));
	j_1 = ((NI)0);
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(s_p0.len - ((NI)1));
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				{
					if (!(((NU8)(s_p0.p->data[i_1])) >= ((NU8)(65)) && ((NU8)(s_p0.p->data[i_1])) <= ((NU8)(90)))) goto LA6_;
					nimPrepareStrMutationV2((&result));
					result.p->data[j_1] = ((NIM_CHAR) (((NI)(((NU8)(s_p0.p->data[i_1])) + ((NI)32)))));
					j_1 += ((NI)1);
				}
				goto LA4_;
LA6_: ;
				{
					if (!!(((NU8)(s_p0.p->data[i_1]) == (NU8)(95)))) goto LA9_;
					nimPrepareStrMutationV2((&result));
					result.p->data[j_1] = s_p0.p->data[i_1];
					j_1 += ((NI)1);
				}
				goto LA4_;
LA9_: ;
LA4_: ;
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	{
		if (!!((j_1 == s_p0.len))) goto LA13_;
		setLengthStrV2((&result), (j_1));
	}
LA13_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatVarargs)(NimStringV2 formatstr_p0, NimStringV2* a_p1, NI a_p1Len_0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString(((NI)(formatstr_p0.len + a_p1Len_0)));
	nsuAddf((&result), formatstr_p0, a_p1, a_p1Len_0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuCmpIgnoreCase)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NI result;
	NI aLenX60gensym20__1;
	NI bLenX60gensym20__1;
	NI iX60gensym20__1;
	NI mX60gensym20__1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	aLenX60gensym20__1 = a_p0.len;
	bLenX60gensym20__1 = b_p1.len;
	iX60gensym20__1 = ((NI)0);
	mX60gensym20__1 = ((aLenX60gensym20__1 <= bLenX60gensym20__1) ? aLenX60gensym20__1 : bLenX60gensym20__1);
	{
		while (1) {
			NIM_CHAR T3_;
			NIM_CHAR T4_;
			if (!(iX60gensym20__1 < mX60gensym20__1)) goto LA2;
			T3_ = (NIM_CHAR)0;
			T3_ = toLowerAscii__stdZprivateZstrimpl_u1(a_p0.p->data[iX60gensym20__1]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			T4_ = (NIM_CHAR)0;
			T4_ = toLowerAscii__stdZprivateZstrimpl_u1(b_p1.p->data[iX60gensym20__1]);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			result = (NI)(((NU8)(T3_)) - ((NU8)(T4_)));
			{
				if (!!((result == ((NI)0)))) goto LA7_;
				goto BeforeRet_;
			}
LA7_: ;
			iX60gensym20__1 += ((NI)1);
		} LA2: ;
	}
	result = (NI)(aLenX60gensym20__1 - bLenX60gensym20__1);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringV2 s_p0, NimStringV2 prefix_p1) {
	NIM_BOOL result;
	NI prefixLenX60gensym135__1;
	NI sLenX60gensym135__1;
	NI iX60gensym135__1;
{	result = NIM_FALSE;
	prefixLenX60gensym135__1 = prefix_p1.len;
	sLenX60gensym135__1 = s_p0.len;
	iX60gensym135__1 = ((NI)0);
	{
		while (1) {
			{
				if (!(prefixLenX60gensym135__1 <= iX60gensym135__1)) goto LA5_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
LA5_: ;
			{
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = (sLenX60gensym135__1 <= iX60gensym135__1);
				if (T9_) goto LA10_;
				T9_ = !(((NU8)(s_p0.p->data[iX60gensym135__1]) == (NU8)(prefix_p1.p->data[iX60gensym135__1])));
LA10_: ;
				if (!T9_) goto LA11_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
LA11_: ;
			iX60gensym135__1 += ((NI)1);
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindStr)(NimStringV2 s_p0, NimStringV2 sub_p1, NI start_p2, NI last_p3) {
	NI result;
	NI subLen_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!((NI)(s_p0.len - start_p2) < sub_p1.len)) goto LA3_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA3_: ;
	{
		if (!(sub_p1.len == ((NI)1))) goto LA7_;
		result = nsuFindChar(s_p0, sub_p1.p->data[((NI)0)], start_p2, last_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA7_: ;
	subLen_1 = sub_p1.len;
	{
		NIM_BOOL T11_;
		NIM_BOOL T12_;
		void* found_1;
		NI T17_;
		T11_ = (NIM_BOOL)0;
		T12_ = (NIM_BOOL)0;
		T12_ = (last_p3 < ((NI)0));
		if (!(T12_)) goto LA13_;
		T12_ = (start_p2 < s_p0.len);
LA13_: ;
		T11_ = T12_;
		if (!(T11_)) goto LA14_;
		T11_ = !((subLen_1 == ((NI)0)));
LA14_: ;
		if (!T11_) goto LA15_;
		found_1 = memmem(((void*) ((&s_p0.p->data[start_p2]))), ((size_t) ((NI)(s_p0.len - start_p2))), ((void*) (nimToCStringConv(sub_p1))), ((size_t) (subLen_1)));
		T17_ = (NI)0;
		{
			if (!!((found_1 == 0))) goto LA20_;
			result = minuspercent___system_u805(((NI) (ptrdiff_t) (found_1)), ((NI) (nimToCStringConv(s_p0))));
		}
		goto LA18_;
LA20_: ;
		{
			result = ((NI)-1);
		}
LA18_: ;
	}
	goto LA9_;
LA15_: ;
	{
		tyArray__9cc9aPiDa8VaWjVcFLabEDZQ T24_;
		nimZeroMem((void*)T24_, sizeof(tyArray__9cc9aPiDa8VaWjVcFLabEDZQ));
		nsuInitNewSkipTable(sub_p1, T24_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		result = nsuFindStrA(T24_, s_p0, sub_p1, start_p2, last_p3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA9_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuCountString)(NimStringV2 s_p0, NimStringV2 sub_p1, NIM_BOOL overlapping_p2) {
	NI result;
	NI i_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	{
		if (!!((((NI)0) < sub_p1.len))) goto LA3_;
		failedAssertImpl__stdZassertions_u79(TM__JGc9b9bh2D3nTdUR7TGyq8aA_9);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	result = ((NI)0);
	i_1 = ((NI)0);
	{
		while (1) {
			i_1 = nsuFindStr(s_p0, sub_p1, (i_1), ((NI)-1));
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				if (!(i_1 < ((NI)0))) goto LA9_;
				goto LA5;
			}
LA9_: ;
			{
				if (!overlapping_p2) goto LA13_;
				i_1 += ((NI)1);
			}
			goto LA11_;
LA13_: ;
			{
				i_1 += sub_p1.len;
			}
LA11_: ;
			result += ((NI)1);
		}
	} LA5: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuRepeatChar)(NIM_CHAR c_p0, NI count_p1) {
	NimStringV2 result;
	result = mnewString(count_p1);
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(count_p1 - ((NI)1));
		res_1 = ((NI)0);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = c_p0;
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatOpenArray)(NimStringV2 formatstr_p0, NimStringV2* a_p1, NI a_p1Len_0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString(((NI)(formatstr_p0.len + (NI)((NU32)(a_p1Len_0) << (NU32)(((NI)4) & (32 - 1))))));
	nsuAddf((&result), formatstr_p0, a_p1, a_p1Len_0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatSingleElem)(NimStringV2 formatstr_p0, NimStringV2 a_p1) {
	NimStringV2 result;
	tyArray__YgExxhfgKcesA5EOUj1MOA T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString(((NI)(formatstr_p0.len + a_p1.len)));
	T1_[0] = a_p1;
	nsuAddf((&result), formatstr_p0, T1_, 1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, nsuToLowerAsciiChar)(NIM_CHAR c_p0) {
	NIM_CHAR result;
	{
		if (!(((NU8)(c_p0)) >= ((NU8)(65)) && ((NU8)(c_p0)) <= ((NU8)(90)))) goto LA3_;
		result = ((NIM_CHAR) ((NU8)(((NU8) (((NU8)(c_p0)))) ^ ((NU8)32))));
	}
	goto LA1_;
LA3_: ;
	{
		result = c_p0;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuToLowerAsciiStr)(NimStringV2 s_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = mnewString((s_p0.len));
	{
		NI iX60gensym7__1;
		NI colontmp_;
		NI res_1;
		iX60gensym7__1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(s_p0.len - ((NI)1));
		res_1 = ((NI)0);
		{
			while (1) {
				NIM_CHAR T4_;
				if (!(res_1 <= colontmp_)) goto LA3;
				iX60gensym7__1 = ((NI) (res_1));
				nimPrepareStrMutationV2((&result));
				T4_ = (NIM_CHAR)0;
				T4_ = nsuToLowerAsciiChar(s_p0.p->data[iX60gensym7__1]);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				result.p->data[iX60gensym7__1] = T4_;
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__pureZstrutils_u1833)(NimStringV2 s_p0, NimStringV2 sub_p1) {
	NIM_BOOL result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = nsuFindStr(s_p0, sub_p1, ((NI)0), ((NI)-1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, appendChar)(NimStringV2* dest_p0, NIM_CHAR c_p1) {
	(*(*dest_p0).p).data[(*dest_p0).len] = c_p1;
	(*dest_p0).len += ((NI)1);
	(*(*dest_p0).p).data[(*dest_p0).len] = 0;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuUnescape)(NimStringV2 s_p0, NimStringV2 prefix_p1, NimStringV2 suffix_p2) {
	NimStringV2 result;
	NI i_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString((s_p0.len));
	i_1 = prefix_p1.len;
	{
		NIM_BOOL T3_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T6_;
		NimStringV2 T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = nsuStartsWith(s_p0, prefix_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T3_)) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T6_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T6_).Sup.Sup.name = "ValueError";
		T7_.len = 0; T7_.p = NIM_NIL;
		T7_ = rawNewString(prefix_p1.len + 28);
appendString((&T7_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_11);
appendString((&T7_), prefix_p1);
		(*T6_).Sup.Sup.message = T7_;
		(*T6_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T6_, "ValueError", "unescape", "strutils.nim", 2449);
goto BeforeRet_;
	}
LA4_: ;
	{
		while (1) {
			{
				if (!((NI)(s_p0.len - suffix_p2.len) <= i_1)) goto LA12_;
				goto LA8;
			}
LA12_: ;
			{
				if (!((NU8)(s_p0.p->data[i_1]) == (NU8)(92))) goto LA16_;
				{
					if (!(s_p0.len <= (NI)(i_1 + ((NI)1)))) goto LA20_;
					nimAddCharV1((&result), 92);
					goto LA8;
				}
LA20_: ;
				switch (((NU8)(s_p0.p->data[(NI)(i_1 + ((NI)1))]))) {
				case 120:
				{
					NI c_1;
					NI T23_;
					i_1 += ((NI)2);
					c_1 = ((NI)0);
					T23_ = (NI)0;
					T23_ = parseHex__pureZstrutils_u990(s_p0, (&c_1), i_1, ((NI)2));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_1 += T23_;
					nimAddCharV1((&result), ((NIM_CHAR) ((c_1))));
					i_1 -= ((NI)2);
				}
				break;
				case 92:
				{
					nimAddCharV1((&result), 92);
				}
				break;
				case 39:
				{
					nimAddCharV1((&result), 39);
				}
				break;
				case 34:
				{
					nimAddCharV1((&result), 34);
				}
				break;
				default:
				{
					NimStringV2 colontmpD_;
					NimStringV2 T28_;
					colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
					T28_.len = 0; T28_.p = NIM_NIL;
					T28_ = rawNewString(2);
appendString((&T28_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_13);
appendChar((&T28_), s_p0.p->data[(NI)(i_1 + ((NI)1))]);
					colontmpD_ = T28_;
					prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
					eqdestroy___system_u2691(colontmpD_);
				}
				break;
				}
				i_1 += ((NI)2);
			}
			goto LA14_;
LA16_: ;
			{
				nimAddCharV1((&result), s_p0.p->data[i_1]);
				i_1 += ((NI)1);
			}
LA14_: ;
		}
	} LA8: ;
	{
		NIM_BOOL T32_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T35_;
		NimStringV2 T36_;
		T32_ = (NIM_BOOL)0;
		T32_ = nsuEndsWith(s_p0, suffix_p2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!!(T32_)) goto LA33_;
		T35_ = NIM_NIL;
		T35_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T35_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T35_).Sup.Sup.name = "ValueError";
		T36_.len = 0; T36_.p = NIM_NIL;
		T36_ = rawNewString(suffix_p2.len + 24);
appendString((&T36_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_15);
appendString((&T36_), suffix_p2);
		(*T35_).Sup.Sup.message = T36_;
		(*T35_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T35_, "ValueError", "unescape", "strutils.nim", 2477);
goto BeforeRet_;
	}
LA33_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuRFindChar)(NimStringV2 s_p0, NIM_CHAR sub_p1, NI start_p2, NI last_p3) {
	NI result;
	NI colontmpD_;
	NI colontmpD__2;
	NI last_2;
{	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	{
		if (!(last_p3 == ((NI)-1))) goto LA3_;
		colontmpD_ = (s_p0.len-1);
		last_2 = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = last_p3;
		last_2 = colontmpD__2;
	}
LA1_: ;
	{
		NI i_1;
		NI res_1;
		i_1 = (NI)0;
		res_1 = last_2;
		{
			while (1) {
				if (!(start_p2 <= res_1)) goto LA8;
				i_1 = ((NI) (res_1));
				{
					if (!((NU8)(sub_p1) == (NU8)(s_p0.p->data[i_1]))) goto LA11_;
					result = i_1;
					goto BeforeRet_;
				}
LA11_: ;
				res_1 -= ((NI)1);
			} LA8: ;
		}
	}
	result = ((NI)-1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, max__pureZstrutils_u1734)(NI x_p0, NI y_p1) {
	NI result;
	NI colontmpD_;
	NI colontmpD__2;
	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	{
		if (!(y_p1 <= x_p0)) goto LA3_;
		colontmpD_ = x_p0;
		result = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = y_p1;
		result = colontmpD__2;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuRFindStr)(NimStringV2 s_p0, NimStringV2 sub_p1, NI start_p2, NI last_p3) {
	NI result;
	NI colontmpD_;
	NI colontmpD__2;
	NI last_2;
{	result = (NI)0;
	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	{
		NI colontmpD__3;
		NI colontmpD__4;
		NI rightIndex_1;
		NI T5_;
		if (!(sub_p1.len == ((NI)0))) goto LA3_;
		colontmpD__3 = (NI)0;
		colontmpD__4 = (NI)0;
		T5_ = (NI)0;
		{
			if (!(last_p3 < ((NI)0))) goto LA8_;
			colontmpD__3 = s_p0.len;
			T5_ = colontmpD__3;
		}
		goto LA6_;
LA8_: ;
		{
			colontmpD__4 = last_p3;
			T5_ = colontmpD__4;
		}
LA6_: ;
		rightIndex_1 = (T5_);
		result = max__pureZstrutils_u1734(start_p2, rightIndex_1);
		goto BeforeRet_;
	}
LA3_: ;
	{
		if (!((NI)(s_p0.len - start_p2) < sub_p1.len)) goto LA13_;
		result = ((NI)-1);
		goto BeforeRet_;
	}
LA13_: ;
	{
		if (!(last_p3 == ((NI)-1))) goto LA17_;
		colontmpD_ = (s_p0.len-1);
		last_2 = colontmpD_;
	}
	goto LA15_;
LA17_: ;
	{
		colontmpD__2 = last_p3;
		last_2 = colontmpD__2;
	}
LA15_: ;
	result = ((NI)0);
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)((NI)(last_2 - sub_p1.len) + ((NI)1));
		res_1 = colontmp_;
		{
			while (1) {
				if (!(start_p2 <= res_1)) goto LA22;
				i_1 = ((NI) (res_1));
				{
					NI j_1;
					NI colontmp__2;
					NI res_2;
					j_1 = (NI)0;
					colontmp__2 = (NI)0;
					colontmp__2 = (NI)(sub_p1.len - ((NI)1));
					res_2 = ((NI)0);
					{
						while (1) {
							if (!(res_2 <= colontmp__2)) goto LA25;
							j_1 = ((NI) (res_2));
							result = i_1;
							{
								if (!!(((NU8)(sub_p1.p->data[j_1]) == (NU8)(s_p0.p->data[(NI)(i_1 + j_1)])))) goto LA28_;
								result = ((NI)-1);
								goto LA23;
							}
LA28_: ;
							res_2 += ((NI)1);
						} LA25: ;
					}
				} LA23: ;
				{
					if (!!((result == ((NI)-1)))) goto LA32_;
					goto BeforeRet_;
				}
LA32_: ;
				res_1 -= ((NI)1);
			} LA22: ;
		}
	}
	result = ((NI)-1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, nsuSplitChar)(NimStringV2 s_p0, NIM_CHAR sep_p1, NI maxsplit_p2) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	{
		NimStringV2 xX60gensym67__1;
		NI lastX60gensym34__1;
		NI splitsX60gensym34__1;
		xX60gensym67__1.len = 0; xX60gensym67__1.p = NIM_NIL;
		lastX60gensym34__1 = ((NI)0);
		splitsX60gensym34__1 = maxsplit_p2;
		{
			while (1) {
				NI firstX60gensym34__1;
				NimStringV2 T13_;
				NimStringV2 blitTmp_1;
				if (!(lastX60gensym34__1 <= s_p0.len)) goto LA4;
				firstX60gensym34__1 = lastX60gensym34__1;
				{
					while (1) {
						NIM_BOOL T7_;
						T7_ = (NIM_BOOL)0;
						T7_ = (lastX60gensym34__1 < s_p0.len);
						if (!(T7_)) goto LA8_;
						T7_ = !(((NU8)(s_p0.p->data[lastX60gensym34__1]) == (NU8)(sep_p1)));
LA8_: ;
						if (!T7_) goto LA6;
						lastX60gensym34__1 += ((NI)1);
					} LA6: ;
				}
				{
					if (!(splitsX60gensym34__1 == ((NI)0))) goto LA11_;
					lastX60gensym34__1 = s_p0.len;
				}
LA11_: ;
				T13_.len = 0; T13_.p = NIM_NIL;
				T13_ = substr__system_u8662(s_p0, firstX60gensym34__1, (NI)(lastX60gensym34__1 - ((NI)1)));
				eqsink___system_u2700((&xX60gensym67__1), T13_);
				blitTmp_1 = xX60gensym67__1;
				eqwasMoved___system_u2688((&xX60gensym67__1));
				add__stdZenumutils_u71((&result), blitTmp_1);
				{
					if (!(splitsX60gensym34__1 == ((NI)0))) goto LA16_;
					goto LA3;
				}
LA16_: ;
				splitsX60gensym34__1 -= ((NI)1);
				lastX60gensym34__1 += ((NI)1);
			} LA4: ;
		} LA3: ;
		{
			LA2_:;
		}
		{
			eqdestroy___system_u2691(xX60gensym67__1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, nsuSplitLines)(NimStringV2 s_p0, NIM_BOOL keepEol_p1) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	{
		NimStringV2 xX60gensym73__1;
		NI first_1;
		NI last_1;
		NI eolpos_1;
		xX60gensym73__1.len = 0; xX60gensym73__1.p = NIM_NIL;
		first_1 = ((NI)0);
		last_1 = ((NI)0);
		eolpos_1 = ((NI)0);
		{
			while (1) {
				NI colontmpD_;
				NI colontmpD__2;
				NI T26_;
				NimStringV2 T32_;
				NimStringV2 blitTmp_1;
				colontmpD_ = (NI)0;
				colontmpD__2 = (NI)0;
				{
					while (1) {
						NIM_BOOL T7_;
						T7_ = (NIM_BOOL)0;
						T7_ = (last_1 < s_p0.len);
						if (!(T7_)) goto LA8_;
						T7_ = !((((NU8)(s_p0.p->data[last_1])) == ((NU8)(13)) || ((NU8)(s_p0.p->data[last_1])) == ((NU8)(10))));
LA8_: ;
						if (!T7_) goto LA6;
						last_1 += ((NI)1);
					} LA6: ;
				}
				eolpos_1 = last_1;
				{
					if (!(last_1 < s_p0.len)) goto LA11_;
					{
						if (!((NU8)(s_p0.p->data[last_1]) == (NU8)(10))) goto LA15_;
						last_1 += ((NI)1);
					}
					goto LA13_;
LA15_: ;
					{
						if (!((NU8)(s_p0.p->data[last_1]) == (NU8)(13))) goto LA18_;
						last_1 += ((NI)1);
						{
							NIM_BOOL T22_;
							T22_ = (NIM_BOOL)0;
							T22_ = (last_1 < s_p0.len);
							if (!(T22_)) goto LA23_;
							T22_ = ((NU8)(s_p0.p->data[last_1]) == (NU8)(10));
LA23_: ;
							if (!T22_) goto LA24_;
							last_1 += ((NI)1);
						}
LA24_: ;
					}
					goto LA13_;
LA18_: ;
LA13_: ;
				}
LA11_: ;
				T26_ = (NI)0;
				{
					if (!keepEol_p1) goto LA29_;
					colontmpD_ = (NI)(last_1 - ((NI)1));
					T26_ = colontmpD_;
				}
				goto LA27_;
LA29_: ;
				{
					colontmpD__2 = (NI)(eolpos_1 - ((NI)1));
					T26_ = colontmpD__2;
				}
LA27_: ;
				T32_.len = 0; T32_.p = NIM_NIL;
				T32_ = substr__system_u8662(s_p0, first_1, T26_);
				eqsink___system_u2700((&xX60gensym73__1), T32_);
				blitTmp_1 = xX60gensym73__1;
				eqwasMoved___system_u2688((&xX60gensym73__1));
				add__stdZenumutils_u71((&result), blitTmp_1);
				{
					if (!(eolpos_1 == last_1)) goto LA35_;
					goto LA3;
				}
LA35_: ;
				first_1 = last_1;
			}
		} LA3: ;
		{
			LA2_:;
		}
		{
			eqdestroy___system_u2691(xX60gensym73__1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuReplaceChar)(NimStringV2 s_p0, NIM_CHAR sub_p1, NIM_CHAR by_p2) {
	NimStringV2 result;
	NI i_1;
	result.len = 0; result.p = NIM_NIL;
	result = mnewString((s_p0.len));
	i_1 = ((NI)0);
	{
		while (1) {
			if (!(i_1 < s_p0.len)) goto LA2;
			{
				if (!((NU8)(s_p0.p->data[i_1]) == (NU8)(sub_p1))) goto LA5_;
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = by_p2;
			}
			goto LA3_;
LA5_: ;
			{
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = s_p0.p->data[i_1];
			}
LA3_: ;
			i_1 += ((NI)1);
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nimIdentNormalize__pureZstrutils_u124)(NimStringV2 s_p0) {
	NimStringV2 result;
	NI j_1;
{	result.len = 0; result.p = NIM_NIL;
	result = mnewString((s_p0.len));
	{
		if (!(s_p0.len == ((NI)0))) goto LA3_;
		goto BeforeRet_;
	}
LA3_: ;
	nimPrepareStrMutationV2((&result));
	result.p->data[((NI)0)] = s_p0.p->data[((NI)0)];
	j_1 = ((NI)1);
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(s_p0.len - ((NI)1));
		res_1 = ((NI)1);
		{
			while (1) {
				if (!(res_1 <= colontmp_)) goto LA7;
				i_1 = ((NI) (res_1));
				{
					if (!(((NU8)(s_p0.p->data[i_1])) >= ((NU8)(65)) && ((NU8)(s_p0.p->data[i_1])) <= ((NU8)(90)))) goto LA10_;
					nimPrepareStrMutationV2((&result));
					result.p->data[j_1] = ((NIM_CHAR) (((NI)(((NU8)(s_p0.p->data[i_1])) + ((NI)32)))));
					j_1 += ((NI)1);
				}
				goto LA8_;
LA10_: ;
				{
					if (!!(((NU8)(s_p0.p->data[i_1]) == (NU8)(95)))) goto LA13_;
					nimPrepareStrMutationV2((&result));
					result.p->data[j_1] = s_p0.p->data[i_1];
					j_1 += ((NI)1);
				}
				goto LA8_;
LA13_: ;
LA8_: ;
				res_1 += ((NI)1);
			} LA7: ;
		}
	}
	{
		if (!!((j_1 == s_p0.len))) goto LA17_;
		setLengthStrV2((&result), (j_1));
	}
LA17_: ;
	}BeforeRet_: ;
	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;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw, parseEnum__commands_u1465)(NimStringV2 s_p0, tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw default_p1) {
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw result;
	NimStringV2 colontmpD_;
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw colontmpD__2;
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw colontmpD__3;
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw colontmpD__4;
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw colontmpD__5;
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw colontmpD__6;
	tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw colontmpD__7;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2 = (tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0;
	colontmpD__3 = (tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0;
	colontmpD__4 = (tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0;
	colontmpD__5 = (tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0;
	colontmpD__6 = (tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0;
	colontmpD__7 = (tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0;
	colontmpD_ = nimIdentNormalize__pureZstrutils_u124(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_16)) goto LA1_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_18)) goto LA2_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_20)) goto LA3_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_22)) goto LA4_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_24)) goto LA5_;
	goto LA6_;
	LA1_: ;
	{
		colontmpD__2 = ((tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)0);
		result = colontmpD__2;
	}
	goto LA7_;
	LA2_: ;
	{
		colontmpD__3 = ((tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)1);
		result = colontmpD__3;
	}
	goto LA7_;
	LA3_: ;
	{
		colontmpD__4 = ((tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)2);
		result = colontmpD__4;
	}
	goto LA7_;
	LA4_: ;
	{
		colontmpD__5 = ((tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)3);
		result = colontmpD__5;
	}
	goto LA7_;
	LA5_: ;
	{
		colontmpD__6 = ((tyEnum_TBackend__CGWF9bdzxEysXyGIUwpK8cw)4);
		result = colontmpD__6;
	}
	goto LA7_;
	LA6_: ;
	{
		colontmpD__7 = default_p1;
		result = colontmpD__7;
	}
LA7_: ;
	eqdestroy___system_u2691(colontmpD_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuFindCharSet)(NimStringV2 s_p0, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars_p1, NI start_p2, NI last_p3) {
	NI result;
	NI colontmpD_;
	NI colontmpD__2;
	NI last_2;
{	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	result = ((NI)-1);
	{
		if (!(last_p3 < ((NI)0))) goto LA3_;
		colontmpD_ = (s_p0.len-1);
		last_2 = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = last_p3;
		last_2 = colontmpD__2;
	}
LA1_: ;
	{
		NI i_1;
		NI res_1;
		i_1 = (NI)0;
		res_1 = start_p2;
		{
			while (1) {
				if (!(res_1 <= last_2)) goto LA8;
				i_1 = ((NI) (res_1));
				{
					if (!((chars_p1[(NU)((((NU8)(s_p0.p->data[i_1]))))>>3] &(1U<<((NU)((((NU8)(s_p0.p->data[i_1]))))&7U)))!=0)) goto LA11_;
					result = i_1;
					goto BeforeRet_;
				}
LA11_: ;
				res_1 += ((NI)1);
			} LA8: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, contains__pureZstrutils_u1837)(NimStringV2 s_p0, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars_p1) {
	NIM_BOOL result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	T1_ = (NI)0;
	T1_ = nsuFindCharSet(s_p0, chars_p1, ((NI)0), ((NI)-1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = (((NI)0) <= T1_);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuContinuesWith)(NimStringV2 s_p0, NimStringV2 substr_p1, NI start_p2) {
	NIM_BOOL result;
	NI i_1;
{	result = NIM_FALSE;
	i_1 = ((NI)0);
	{
		while (1) {
			{
				if (!(substr_p1.len <= i_1)) goto LA5_;
				result = NIM_TRUE;
				goto BeforeRet_;
			}
LA5_: ;
			{
				NIM_BOOL T9_;
				T9_ = (NIM_BOOL)0;
				T9_ = (s_p0.len <= (NI)(i_1 + start_p2));
				if (T9_) goto LA10_;
				T9_ = !(((NU8)(s_p0.p->data[(NI)(i_1 + start_p2)]) == (NU8)(substr_p1.p->data[i_1])));
LA10_: ;
				if (!T9_) goto LA11_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
LA11_: ;
			i_1 += ((NI)1);
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, multiReplace__pureZstrutils_u1885)(NimStringV2 s_p0, tyTuple__UV3llMMYFckfui8YMBuUZA* replacements_p1, NI replacements_p1Len_0) {
	NimStringV2 result;
	NI i_1;
	tySet_tyChar__nmiMWKVIe46vacnhAFrQvw fastChk_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString((s_p0.len));
	i_1 = ((NI)0);
	nimZeroMem((void*)fastChk_1, sizeof(tySet_tyChar__nmiMWKVIe46vacnhAFrQvw));
	nimZeroMem(fastChk_1, sizeof(tySet_tyChar__nmiMWKVIe46vacnhAFrQvw));
	{
		NimStringV2* sub_1;
		NimStringV2* by_1;
		NI i_2;
		sub_1 = (NimStringV2*)0;
		by_1 = (NimStringV2*)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < replacements_p1Len_0)) goto LA3;
				sub_1 = (&replacements_p1[i_2].Field0);
				by_1 = (&replacements_p1[i_2].Field1);
				{
					if (!(((NI)0) < (*sub_1).len)) goto LA6_;
					fastChk_1[(NU)((((NU8)((*sub_1).p->data[((NI)0)]))))>>3] |=(1U<<((((NU8)((*sub_1).p->data[((NI)0)])))&7U));
				}
LA6_: ;
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	{
		while (1) {
			if (!(i_1 < s_p0.len)) goto LA9;
			{
				{
					if (!((fastChk_1[(NU)((((NU8)(s_p0.p->data[i_1]))))>>3] &(1U<<((NU)((((NU8)(s_p0.p->data[i_1]))))&7U)))!=0)) goto LA13_;
					{
						NimStringV2* sub_2;
						NimStringV2* by_2;
						NI i_3;
						sub_2 = (NimStringV2*)0;
						by_2 = (NimStringV2*)0;
						i_3 = ((NI)0);
						{
							while (1) {
								if (!(i_3 < replacements_p1Len_0)) goto LA17;
								sub_2 = (&replacements_p1[i_3].Field0);
								by_2 = (&replacements_p1[i_3].Field1);
								{
									NIM_BOOL T20_;
									T20_ = (NIM_BOOL)0;
									T20_ = (((NI)0) < (*sub_2).len);
									if (!(T20_)) goto LA21_;
									T20_ = nsuContinuesWith(s_p0, (*sub_2), (i_1));
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
LA21_: ;
									if (!T20_) goto LA22_;
									prepareAdd((&result), (*by_2).len + 0);
appendString((&result), (*by_2));
									i_1 += (*sub_2).len;
									goto LA10;
								}
LA22_: ;
								i_3 += ((NI)1);
							} LA17: ;
						}
					}
				}
LA13_: ;
				nimAddCharV1((&result), s_p0.p->data[i_1]);
				i_1 += ((NI)1);
			} LA10: ;
		} LA9: ;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuJoinSep)(NimStringV2* a_p0, NI a_p0Len_0, NimStringV2 sep_p1) {
	NimStringV2 result;
	result.len = 0; result.p = NIM_NIL;
	{
		NI L_1;
		if (!(((NI)0) < a_p0Len_0)) goto LA3_;
		L_1 = (NI)(sep_p1.len * (NI)(a_p0Len_0 - ((NI)1)));
		{
			NI i_1;
			NI colontmp_;
			NI res_1;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (a_p0Len_0-1);
			res_1 = ((NI)0);
			{
				while (1) {
					if (!(res_1 <= colontmp_)) goto LA7;
					i_1 = ((NI) (res_1));
					L_1 += a_p0[i_1].len;
					res_1 += ((NI)1);
				} LA7: ;
			}
		}
		result = rawNewString((L_1));
		prepareAdd((&result), a_p0[((NI)0)].len + 0);
appendString((&result), a_p0[((NI)0)]);
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (a_p0Len_0-1);
			res_2 = ((NI)1);
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA10;
					i_2 = ((NI) (res_2));
					prepareAdd((&result), sep_p1.len + 0);
appendString((&result), sep_p1);
					prepareAdd((&result), a_p0[i_2].len + 0);
appendString((&result), a_p0[i_2]);
					res_2 += ((NI)1);
				} LA10: ;
			}
		}
	}
	goto LA1_;
LA3_: ;
	{
		result = TM__JGc9b9bh2D3nTdUR7TGyq8aA_25;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseHexInt)(NimStringV2 s_p0) {
	NI result;
	NI L_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	L_1 = parseHex__pureZstrutils_u990(s_p0, (&result), ((NI)0), ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T7_;
		NimStringV2 T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((L_1 == s_p0.len));
		if (T3_) goto LA4_;
		T3_ = (L_1 == ((NI)0));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T7_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T7_).Sup.Sup.name = "ValueError";
		T8_.len = 0; T8_.p = NIM_NIL;
		T8_ = rawNewString(s_p0.len + 21);
appendString((&T8_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_27);
appendString((&T8_), s_p0);
		(*T7_).Sup.Sup.message = T8_;
		(*T7_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T7_, "ValueError", "parseHexInt", "strutils.nim", 1242);
goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuParseInt)(NimStringV2 s_p0) {
	NI result;
	NI L_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)0);
	L_1 = parseInt__pureZparseutils_u989(s_p0, (&result), ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T7_;
		NimStringV2 T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((L_1 == s_p0.len));
		if (T3_) goto LA4_;
		T3_ = (L_1 == ((NI)0));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T7_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T7_).Sup.Sup.name = "ValueError";
		T8_.len = 0; T8_.p = NIM_NIL;
		T8_ = rawNewString(s_p0.len + 17);
appendString((&T8_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_29);
appendString((&T8_), s_p0);
		(*T7_).Sup.Sup.message = T8_;
		(*T7_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T7_, "ValueError", "parseInt", "strutils.nim", 1160);
goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuToOctal)(NIM_CHAR c_p0) {
	NimStringV2 result;
	NI val_1;
	result = mnewString(((NI)3));
	val_1 = ((NU8)(c_p0));
	{
		NI i_1;
		NI res_1;
		i_1 = (NI)0;
		res_1 = ((NI)2);
		{
			while (1) {
				if (!(((NI)0) <= res_1)) goto LA3;
				i_1 = ((NI) (res_1));
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = ((NIM_CHAR) (((NI)((NI)(val_1 % ((NI)8)) + ((NI)48)))));
				val_1 = (NI)(val_1 / ((NI)8));
				res_1 -= ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ, parseEnum__commands_u900)(NimStringV2 s_p0) {
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ result;
	NimStringV2 colontmpD_;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__2;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__3;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__4;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__5;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__6;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__7;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__8;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__9;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__10;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__11;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__12;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__13;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__14;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__15;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__16;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__17;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__18;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__19;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__20;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__21;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__22;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__23;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__24;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__25;
	tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ colontmpD__26;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__3 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__4 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__5 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__6 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__7 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__8 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__9 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__10 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__11 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__12 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__13 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__14 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__15 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__16 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__17 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__18 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__19 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__20 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__21 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__22 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__23 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__24 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__25 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD__26 = (tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0;
	colontmpD_ = nimIdentNormalize__pureZstrutils_u124(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	switch (hashString(colontmpD_) & 31) {
	case 1: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_69)) goto LA21_;
break;
	case 3: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_35)) goto LA4_;
break;
	case 4: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_41)) goto LA7_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_73)) goto LA23_;
break;
	case 5: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_57)) goto LA15_;
break;
	case 6: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_31)) goto LA2_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_71)) goto LA22_;
break;
	case 9: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_55)) goto LA14_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_75)) goto LA24_;
break;
	case 11: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_63)) goto LA18_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_79)) goto LA26_;
break;
	case 12: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_65)) goto LA19_;
break;
	case 15: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_37)) goto LA5_;
break;
	case 16: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_47)) goto LA10_;
break;
	case 17: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_49)) goto LA11_;
break;
	case 19: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_45)) goto LA9_;
break;
	case 20: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_51)) goto LA12_;
break;
	case 23: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_53)) goto LA13_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_77)) goto LA25_;
break;
	case 24: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_33)) goto LA3_;
break;
	case 25: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_43)) goto LA8_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_67)) goto LA20_;
break;
	case 28: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_39)) goto LA6_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_59)) goto LA16_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_61)) goto LA17_;
break;
	}
	goto LA27_;
	LA2_: ;
	{
		colontmpD__2 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)0);
		result = colontmpD__2;
	}
	goto LA28_;
	LA3_: ;
	{
		colontmpD__3 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)1);
		result = colontmpD__3;
	}
	goto LA28_;
	LA4_: ;
	{
		colontmpD__4 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)2);
		result = colontmpD__4;
	}
	goto LA28_;
	LA5_: ;
	{
		colontmpD__5 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)3);
		result = colontmpD__5;
	}
	goto LA28_;
	LA6_: ;
	{
		colontmpD__6 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)4);
		result = colontmpD__6;
	}
	goto LA28_;
	LA7_: ;
	{
		colontmpD__7 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)5);
		result = colontmpD__7;
	}
	goto LA28_;
	LA8_: ;
	{
		colontmpD__8 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)6);
		result = colontmpD__8;
	}
	goto LA28_;
	LA9_: ;
	{
		colontmpD__9 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)7);
		result = colontmpD__9;
	}
	goto LA28_;
	LA10_: ;
	{
		colontmpD__10 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)8);
		result = colontmpD__10;
	}
	goto LA28_;
	LA11_: ;
	{
		colontmpD__11 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)9);
		result = colontmpD__11;
	}
	goto LA28_;
	LA12_: ;
	{
		colontmpD__12 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)10);
		result = colontmpD__12;
	}
	goto LA28_;
	LA13_: ;
	{
		colontmpD__13 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)11);
		result = colontmpD__13;
	}
	goto LA28_;
	LA14_: ;
	{
		colontmpD__14 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)12);
		result = colontmpD__14;
	}
	goto LA28_;
	LA15_: ;
	{
		colontmpD__15 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)13);
		result = colontmpD__15;
	}
	goto LA28_;
	LA16_: ;
	{
		colontmpD__16 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)14);
		result = colontmpD__16;
	}
	goto LA28_;
	LA17_: ;
	{
		colontmpD__17 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)15);
		result = colontmpD__17;
	}
	goto LA28_;
	LA18_: ;
	{
		colontmpD__18 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)16);
		result = colontmpD__18;
	}
	goto LA28_;
	LA19_: ;
	{
		colontmpD__19 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)17);
		result = colontmpD__19;
	}
	goto LA28_;
	LA20_: ;
	{
		colontmpD__20 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)18);
		result = colontmpD__20;
	}
	goto LA28_;
	LA21_: ;
	{
		colontmpD__21 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)19);
		result = colontmpD__21;
	}
	goto LA28_;
	LA22_: ;
	{
		colontmpD__22 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)20);
		result = colontmpD__22;
	}
	goto LA28_;
	LA23_: ;
	{
		colontmpD__23 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)21);
		result = colontmpD__23;
	}
	goto LA28_;
	LA24_: ;
	{
		colontmpD__24 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)22);
		result = colontmpD__24;
	}
	goto LA28_;
	LA25_: ;
	{
		colontmpD__25 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)23);
		result = colontmpD__25;
	}
	goto LA28_;
	LA26_: ;
	{
		colontmpD__26 = ((tyEnum_Feature__cS3g03qGjroRW9aHnqpz8MQ)24);
		result = colontmpD__26;
	}
	goto LA28_;
	LA27_: ;
	{
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T55_;
		NimStringV2 T56_;
		T55_ = NIM_NIL;
		T55_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T55_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T55_).Sup.Sup.name = "ValueError";
		T56_.len = 0; T56_.p = NIM_NIL;
		T56_ = rawNewString(s_p0.len + 20);
appendString((&T56_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_81);
appendString((&T56_), s_p0);
		(*T55_).Sup.Sup.message = T56_;
		(*T55_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T55_, "ValueError", "parseEnum", "enumutils.nim", 77);
goto LA1_;
	}
LA28_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA, parseEnum__commands_u1849)(NimStringV2 s_p0) {
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA result;
	NimStringV2 colontmpD_;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__2;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__3;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__4;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__5;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__6;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__7;
	tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA colontmpD__8;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD__3 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD__4 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD__5 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD__6 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD__7 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD__8 = (tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0;
	colontmpD_ = nimIdentNormalize__pureZstrutils_u124(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_83)) goto LA2_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_85)) goto LA3_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_87)) goto LA4_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_89)) goto LA5_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_91)) goto LA6_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_93)) goto LA7_;
	if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_95)) goto LA8_;
	goto LA9_;
	LA2_: ;
	{
		colontmpD__2 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)0);
		result = colontmpD__2;
	}
	goto LA10_;
	LA3_: ;
	{
		colontmpD__3 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)1);
		result = colontmpD__3;
	}
	goto LA10_;
	LA4_: ;
	{
		colontmpD__4 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)2);
		result = colontmpD__4;
	}
	goto LA10_;
	LA5_: ;
	{
		colontmpD__5 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)3);
		result = colontmpD__5;
	}
	goto LA10_;
	LA6_: ;
	{
		colontmpD__6 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)4);
		result = colontmpD__6;
	}
	goto LA10_;
	LA7_: ;
	{
		colontmpD__7 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)5);
		result = colontmpD__7;
	}
	goto LA10_;
	LA8_: ;
	{
		colontmpD__8 = ((tyEnum_LegacyFeature__yvNVqOQTgcxHpvo1MvfBfA)6);
		result = colontmpD__8;
	}
	goto LA10_;
	LA9_: ;
	{
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T19_;
		NimStringV2 T20_;
		T19_ = NIM_NIL;
		T19_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T19_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T19_).Sup.Sup.name = "ValueError";
		T20_.len = 0; T20_.p = NIM_NIL;
		T20_ = rawNewString(s_p0.len + 20);
appendString((&T20_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_96);
appendString((&T20_), s_p0);
		(*T19_).Sup.Sup.message = T20_;
		(*T19_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T19_, "ValueError", "parseEnum", "enumutils.nim", 77);
goto LA1_;
	}
LA10_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, nsuParseFloat)(NimStringV2 s_p0) {
	NF result;
	NI L_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = 0.0;
	L_1 = parseFloat__pureZparseutils_u1014(s_p0, (&result), ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T7_;
		NimStringV2 T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((L_1 == s_p0.len));
		if (T3_) goto LA4_;
		T3_ = (L_1 == ((NI)0));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T7_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T7_).Sup.Sup.name = "ValueError";
		T8_.len = 0; T8_.p = NIM_NIL;
		T8_ = rawNewString(s_p0.len + 15);
appendString((&T8_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_98);
appendString((&T8_), s_p0);
		(*T7_).Sup.Sup.message = T8_;
		(*T7_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T7_, "ValueError", "parseFloat", "strutils.nim", 1202);
goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuToBin)(NI64 x_p0, NI len_p1) {
	NimStringV2 result;
	NU64 mask_1;
	NU64 shift_1;
	mask_1 = 1ULL;
	shift_1 = 0ULL;
	result = mnewString(len_p1);
	{
		NI j_1;
		NI colontmp_;
		NI res_1;
		j_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(len_p1 - ((NI)1));
		res_1 = colontmp_;
		{
			while (1) {
				if (!(((NI)0) <= res_1)) goto LA3;
				j_1 = ((NI) (res_1));
				nimPrepareStrMutationV2((&result));
				result.p->data[j_1] = ((NIM_CHAR) (((NI)(((NI) ((NU64)((NU64)((NU64)(((NU64) (x_p0)) & mask_1)) >> (NU64)(shift_1 & (64 - 1))))) + ((NI)48)))));
				shift_1 += ((NI)1);
				mask_1 = (NU64)((NU64)(mask_1) << (NU64)(1ULL & (64 - 1)));
				res_1 -= ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuToOct)(NI64 x_p0, NI len_p1) {
	NimStringV2 result;
	NU64 mask_1;
	NU64 shift_1;
	mask_1 = 7ULL;
	shift_1 = 0ULL;
	result = mnewString(len_p1);
	{
		NI j_1;
		NI colontmp_;
		NI res_1;
		j_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(len_p1 - ((NI)1));
		res_1 = colontmp_;
		{
			while (1) {
				if (!(((NI)0) <= res_1)) goto LA3;
				j_1 = ((NI) (res_1));
				nimPrepareStrMutationV2((&result));
				result.p->data[j_1] = ((NIM_CHAR) (((NI)(((NI) ((NU64)((NU64)((NU64)(((NU64) (x_p0)) & mask_1)) >> (NU64)(shift_1 & (64 - 1))))) + ((NI)48)))));
				shift_1 += ((NI)3);
				mask_1 = (NU64)((NU64)(mask_1) << (NU64)(3ULL & (64 - 1)));
				res_1 -= ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toHex__renderer_u834)(NI64 x_p0, NI len_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = toHexImpl__pureZstrutils_u778(((NU64) (x_p0)), len_p1, (x_p0 < IL64(0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuStrip)(NimStringV2 s_p0, NIM_BOOL leading_p1, NIM_BOOL trailing_p2, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw chars_p3) {
	NimStringV2 result;
	NI first_1;
	NI last_1;
	first_1 = ((NI)0);
	last_1 = (NI)(s_p0.len - ((NI)1));
	{
		if (!leading_p1) goto LA3_;
		{
			while (1) {
				NIM_BOOL T7_;
				T7_ = (NIM_BOOL)0;
				T7_ = (first_1 <= last_1);
				if (!(T7_)) goto LA8_;
				T7_ = ((chars_p3[(NU)((((NU8)(s_p0.p->data[first_1]))))>>3] &(1U<<((NU)((((NU8)(s_p0.p->data[first_1]))))&7U)))!=0);
LA8_: ;
				if (!T7_) goto LA6;
				first_1 += ((NI)1);
			} LA6: ;
		}
	}
LA3_: ;
	{
		if (!trailing_p2) goto LA11_;
		{
			while (1) {
				NIM_BOOL T15_;
				T15_ = (NIM_BOOL)0;
				T15_ = (first_1 <= last_1);
				if (!(T15_)) goto LA16_;
				T15_ = ((chars_p3[(NU)((((NU8)(s_p0.p->data[last_1]))))>>3] &(1U<<((NU)((((NU8)(s_p0.p->data[last_1]))))&7U)))!=0);
LA16_: ;
				if (!T15_) goto LA14;
				last_1 -= ((NI)1);
			} LA14: ;
		}
	}
LA11_: ;
	result = substr__system_u8662(s_p0, first_1, last_1);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuRepeatStr)(NimStringV2 s_p0, NI n_p1) {
	NimStringV2 result;
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString(((NI)(n_p1 * s_p0.len)));
	{
		NI i_1;
		NI res_1;
		i_1 = (NI)0;
		res_1 = ((NI)1);
		{
			while (1) {
				if (!(res_1 <= n_p1)) goto LA3;
				i_1 = ((NI) (res_1));
				prepareAdd((&result), s_p0.len + 0);
appendString((&result), s_p0);
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, nsuToUpperAsciiChar)(NIM_CHAR c_p0) {
	NIM_CHAR result;
	{
		if (!(((NU8)(c_p0)) >= ((NU8)(97)) && ((NU8)(c_p0)) <= ((NU8)(122)))) goto LA3_;
		result = ((NIM_CHAR) ((NU8)(((NU8) (((NU8)(c_p0)))) ^ ((NU8)32))));
	}
	goto LA1_;
LA3_: ;
	{
		result = c_p0;
	}
LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuformatBiggestFloat)(NF f_p0, tyEnum_FloatFormatMode__CTUpdhZ6zDNw9cC9acViKeYg format_p1, NI precision_p2, NIM_CHAR decimalSep_p3) {
	NimStringV2 result;
	tyArray__Dz6OE1kpzz8bnx9batFy1Cw frmtstr_1;
	tyArray__WALV5e0ysjOIjCclEgOBNg buf_1;
	int L_1;
	result.len = 0; result.p = NIM_NIL;
	L_1 = (int)0;
	frmtstr_1[(((NI)0))- 0] = 37;
	{
		if (!(((NI)0) <= precision_p2)) goto LA3_;
		frmtstr_1[(((NI)1))- 0] = 35;
		frmtstr_1[(((NI)2))- 0] = 46;
		frmtstr_1[(((NI)3))- 0] = 42;
		frmtstr_1[(((NI)4))- 0] = floatFormatToChar__pureZstrutils_u2192[(format_p1)- 0];
		frmtstr_1[(((NI)5))- 0] = 0;
		L_1 = snprintf(((NCSTRING) (buf_1)), ((size_t)2501), ((NCSTRING) (frmtstr_1)), precision_p2, f_p0);
	}
	goto LA1_;
LA3_: ;
	{
		frmtstr_1[(((NI)1))- 0] = floatFormatToChar__pureZstrutils_u2192[(format_p1)- 0];
		frmtstr_1[(((NI)2))- 0] = 0;
		L_1 = snprintf(((NCSTRING) (buf_1)), ((size_t)2501), ((NCSTRING) (frmtstr_1)), f_p0);
	}
LA1_: ;
	result = mnewString(((NI) (L_1)));
	{
		NI32 i_1;
		NI32 res_1;
		i_1 = (NI32)0;
		res_1 = ((NI32)0);
		{
			while (1) {
				if (!(res_1 < L_1)) goto LA8;
				i_1 = res_1;
				{
					if (!(((NU8)(buf_1[(i_1)- 0])) == ((NU8)(46)) || ((NU8)(buf_1[(i_1)- 0])) == ((NU8)(44)))) goto LA11_;
					nimPrepareStrMutationV2((&result));
					result.p->data[i_1] = decimalSep_p3;
				}
				goto LA9_;
LA11_: ;
				{
					nimPrepareStrMutationV2((&result));
					result.p->data[i_1] = buf_1[(i_1)- 0];
				}
LA9_: ;
				res_1 += ((NI)1);
			} LA8: ;
		}
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, nsuParseBiggestInt)(NimStringV2 s_p0) {
	NI64 result;
	NI L_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = IL64(0);
	L_1 = parseBiggestInt__pureZparseutils_u984(s_p0, (&result), ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T7_;
		NimStringV2 T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((L_1 == s_p0.len));
		if (T3_) goto LA4_;
		T3_ = (L_1 == ((NI)0));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T7_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T7_).Sup.Sup.name = "ValueError";
		T8_.len = 0; T8_.p = NIM_NIL;
		T8_ = rawNewString(s_p0.len + 17);
appendString((&T8_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_99);
appendString((&T8_), s_p0);
		(*T7_).Sup.Sup.message = T8_;
		(*T7_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T7_, "ValueError", "parseBiggestInt", "strutils.nim", 1170);
goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuIntToStr)(NI x_p0, NI minchars_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = dollar___systemZdollars_u9((x_p0 > 0? (x_p0) : -(x_p0)));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI i_1;
		NI colontmp_;
		NI res_1;
		i_1 = (NI)0;
		colontmp_ = (NI)0;
		colontmp_ = (NI)(minchars_p1 - result.len);
		res_1 = ((NI)1);
		{
			while (1) {
				NimStringV2 T4_;
				if (!(res_1 <= colontmp_)) goto LA3;
				i_1 = ((NI) (res_1));
				T4_.len = 0; T4_.p = NIM_NIL;
				T4_ = rawNewString(result.len + 1);
appendChar((&T4_), 48);
appendString((&T4_), result);
				eqsink___system_u2700((&result), T4_);
				res_1 += ((NI)1);
			} LA3: ;
		}
	}
	{
		NimStringV2 T9_;
		if (!(x_p0 < ((NI)0))) goto LA7_;
		T9_.len = 0; T9_.p = NIM_NIL;
		T9_ = rawNewString(result.len + 1);
appendChar((&T9_), 45);
appendString((&T9_), result);
		eqsink___system_u2700((&result), T9_);
	}
LA7_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, parseBool__pureZstrutils_u1108)(NimStringV2 s_p0) {
	NIM_BOOL result;
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD_ = nsuNormalize(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	switch (hashString(colontmpD_) & 15) {
	case 0: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_103)) goto LA2_;
break;
	case 1: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_111)) goto LA3_;
break;
	case 2: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_115)) goto LA3_;
break;
	case 5: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_105)) goto LA2_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_113)) goto LA3_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_119)) goto LA3_;
break;
	case 8: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_101)) goto LA2_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_109)) goto LA2_;
break;
	case 9: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_107)) goto LA2_;
break;
	case 11: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_117)) goto LA3_;
break;
	}
	goto LA4_;
	LA2_: ;
	{
		result = NIM_TRUE;
	}
	goto LA5_;
	LA3_: ;
	{
		result = NIM_FALSE;
	}
	goto LA5_;
	LA4_: ;
	{
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T9_;
		NimStringV2 T10_;
		T9_ = NIM_NIL;
		T9_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T9_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T9_).Sup.Sup.name = "ValueError";
		T10_.len = 0; T10_.p = NIM_NIL;
		T10_ = rawNewString(s_p0.len + 28);
appendString((&T10_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_121);
appendString((&T10_), s_p0);
		(*T9_).Sup.Sup.message = T10_;
		(*T9_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T9_, "ValueError", "parseBool", "strutils.nim", 1304);
goto LA1_;
	}
LA5_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NU64, nsuParseBiggestUInt)(NimStringV2 s_p0) {
	NU64 result;
	NI L_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = 0ULL;
	L_1 = parseBiggestUInt__pureZparseutils_u999(s_p0, (&result), ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NIM_BOOL T3_;
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T7_;
		NimStringV2 T8_;
		T3_ = (NIM_BOOL)0;
		T3_ = !((L_1 == s_p0.len));
		if (T3_) goto LA4_;
		T3_ = (L_1 == ((NI)0));
LA4_: ;
		if (!T3_) goto LA5_;
		T7_ = NIM_NIL;
		T7_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T7_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T7_).Sup.Sup.name = "ValueError";
		T8_.len = 0; T8_.p = NIM_NIL;
		T8_ = rawNewString(s_p0.len + 26);
appendString((&T8_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_123);
appendString((&T8_), s_p0);
		(*T7_).Sup.Sup.message = T8_;
		(*T7_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T7_, "ValueError", "parseBiggestUInt", "strutils.nim", 1189);
goto BeforeRet_;
	}
LA5_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q, parseEnum__sem_u23732)(NimStringV2 s_p0) {
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q result;
	NimStringV2 colontmpD_;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__2;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__3;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__4;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__5;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__6;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__7;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__8;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__9;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__10;
	tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q colontmpD__11;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD__2 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__3 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__4 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__5 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__6 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__7 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__8 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__9 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__10 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD__11 = (tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0;
	colontmpD_ = nimIdentNormalize__pureZstrutils_u124(s_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	switch (hashString(colontmpD_) & 15) {
	case 1: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_135)) goto LA7_;
break;
	case 2: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_137)) goto LA8_;
break;
	case 4: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_143)) goto LA11_;
break;
	case 6: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_125)) goto LA2_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_141)) goto LA10_;
break;
	case 9: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_129)) goto LA4_;
break;
	case 11: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_127)) goto LA3_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_139)) goto LA9_;
break;
	case 14: 
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_131)) goto LA5_;
if (eqStrings(colontmpD_, TM__JGc9b9bh2D3nTdUR7TGyq8aA_133)) goto LA6_;
break;
	}
	goto LA12_;
	LA2_: ;
	{
		colontmpD__2 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)0);
		result = colontmpD__2;
	}
	goto LA13_;
	LA3_: ;
	{
		colontmpD__3 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)1);
		result = colontmpD__3;
	}
	goto LA13_;
	LA4_: ;
	{
		colontmpD__4 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)2);
		result = colontmpD__4;
	}
	goto LA13_;
	LA5_: ;
	{
		colontmpD__5 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)3);
		result = colontmpD__5;
	}
	goto LA13_;
	LA6_: ;
	{
		colontmpD__6 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)4);
		result = colontmpD__6;
	}
	goto LA13_;
	LA7_: ;
	{
		colontmpD__7 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)5);
		result = colontmpD__7;
	}
	goto LA13_;
	LA8_: ;
	{
		colontmpD__8 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)6);
		result = colontmpD__8;
	}
	goto LA13_;
	LA9_: ;
	{
		colontmpD__9 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)7);
		result = colontmpD__9;
	}
	goto LA13_;
	LA10_: ;
	{
		colontmpD__10 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)8);
		result = colontmpD__10;
	}
	goto LA13_;
	LA11_: ;
	{
		colontmpD__11 = ((tyEnum_TPreferedDesc__ddj0M89bv09cBYthgD4XTq3Q)9);
		result = colontmpD__11;
	}
	goto LA13_;
	LA12_: ;
	{
		tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA* T25_;
		NimStringV2 T26_;
		T25_ = NIM_NIL;
		T25_ = (tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA*) nimNewObj(sizeof(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA), NIM_ALIGNOF(tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA));
		(*T25_).Sup.Sup.Sup.m_type = (&NTIv2__S29bKZF4TUS33IR7ZXb7fFA_);
		(*T25_).Sup.Sup.name = "ValueError";
		T26_.len = 0; T26_.p = NIM_NIL;
		T26_ = rawNewString(s_p0.len + 20);
appendString((&T26_), TM__JGc9b9bh2D3nTdUR7TGyq8aA_144);
appendString((&T26_), s_p0);
		(*T25_).Sup.Sup.message = T26_;
		(*T25_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T25_, "ValueError", "parseEnum", "enumutils.nim", 77);
goto LA1_;
	}
LA13_: ;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(colontmpD_);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, delete__pureZstrutils_u1360)(NimStringV2* s_p0, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA slice_p1) {
	{
		NI i_1;
		NI j_1;
		NI newLen_1;
		if (!(slice_p1.a <= slice_p1.b)) goto LA3_;
		i_1 = slice_p1.a;
		j_1 = (NI)(slice_p1.b + ((NI)1));
		newLen_1 = (NI)((NI)((*s_p0).len - j_1) + i_1);
		{
			while (1) {
				if (!(i_1 < newLen_1)) goto LA6;
				nimPrepareStrMutationV2((&(*s_p0)));
				(*s_p0).p->data[i_1] = (*s_p0).p->data[j_1];
				i_1 += ((NI)1);
				j_1 += ((NI)1);
			} LA6: ;
		}
		setLengthStrV2((&(*s_p0)), (newLen_1));
	}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuEscape)(NimStringV2 s_p0, NimStringV2 prefix_p1, NimStringV2 suffix_p2) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = rawNewString(((NI)(s_p0.len + (NI)((NI32)(s_p0.len) >> (NU32)(((NI)2) & (32 - 1))))));
	prepareAdd((&result), prefix_p1.len + 0);
appendString((&result), prefix_p1);
	{
		NIM_CHAR c_1;
		NI i_1;
		NI L_1;
		c_1 = (NIM_CHAR)0;
		i_1 = ((NI)0);
		L_1 = s_p0.len;
		{
			while (1) {
				if (!(i_1 < L_1)) goto LA3;
				c_1 = s_p0.p->data[i_1];
				switch (((NU8)(c_1))) {
				case 0 ... 31:
				case 127 ... 255:
				{
					NimStringV2 colontmpD_;
					colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
					prepareAdd((&result), 2);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_146);
					colontmpD_ = toHex__pureZstrutils_u2114(((NU8)(c_1)), ((NI)2));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
					eqdestroy___system_u2691(colontmpD_);
				}
				break;
				case 92:
				{
					prepareAdd((&result), 2);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_148);
				}
				break;
				case 39:
				{
					prepareAdd((&result), 2);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_150);
				}
				break;
				case 34:
				{
					prepareAdd((&result), 2);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_152);
				}
				break;
				default:
				{
					nimAddCharV1((&result), c_1);
				}
				break;
				}
				i_1 += ((NI)1);
			} LA3: ;
		}
	}
	prepareAdd((&result), suffix_p2.len + 0);
appendString((&result), suffix_p2);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, nsuSplitCharSet)(NimStringV2 s_p0, tySet_tyChar__nmiMWKVIe46vacnhAFrQvw seps_p1, NI maxsplit_p2) {
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content*) newSeqPayload(0, sizeof(NimStringV2), NIM_ALIGNOF(NimStringV2));
	{
		NimStringV2 xX60gensym68__1;
		NI lastX60gensym37__1;
		NI splitsX60gensym37__1;
		xX60gensym68__1.len = 0; xX60gensym68__1.p = NIM_NIL;
		lastX60gensym37__1 = ((NI)0);
		splitsX60gensym37__1 = maxsplit_p2;
		{
			while (1) {
				NI firstX60gensym37__1;
				NimStringV2 T13_;
				NimStringV2 blitTmp_1;
				if (!(lastX60gensym37__1 <= s_p0.len)) goto LA4;
				firstX60gensym37__1 = lastX60gensym37__1;
				{
					while (1) {
						NIM_BOOL T7_;
						T7_ = (NIM_BOOL)0;
						T7_ = (lastX60gensym37__1 < s_p0.len);
						if (!(T7_)) goto LA8_;
						T7_ = !(((seps_p1[(NU)((((NU8)(s_p0.p->data[lastX60gensym37__1]))))>>3] &(1U<<((NU)((((NU8)(s_p0.p->data[lastX60gensym37__1]))))&7U)))!=0));
LA8_: ;
						if (!T7_) goto LA6;
						lastX60gensym37__1 += ((NI)1);
					} LA6: ;
				}
				{
					if (!(splitsX60gensym37__1 == ((NI)0))) goto LA11_;
					lastX60gensym37__1 = s_p0.len;
				}
LA11_: ;
				T13_.len = 0; T13_.p = NIM_NIL;
				T13_ = substr__system_u8662(s_p0, firstX60gensym37__1, (NI)(lastX60gensym37__1 - ((NI)1)));
				eqsink___system_u2700((&xX60gensym68__1), T13_);
				blitTmp_1 = xX60gensym68__1;
				eqwasMoved___system_u2688((&xX60gensym68__1));
				add__stdZenumutils_u71((&result), blitTmp_1);
				{
					if (!(splitsX60gensym37__1 == ((NI)0))) goto LA16_;
					goto LA3;
				}
LA16_: ;
				splitsX60gensym37__1 -= ((NI)1);
				lastX60gensym37__1 += ((NI)1);
			} LA4: ;
		} LA3: ;
		{
			LA2_:;
		}
		{
			eqdestroy___system_u2691(xX60gensym68__1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1286)(NimStringV2 s_p0, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA x_p1) {
	NimStringV2 result;
	NI a_1;
	NI L_1;
	result.len = 0; result.p = NIM_NIL;
	a_1 = x_p1.a;
	L_1 = (NI)((NI)(x_p1.b - a_1) + ((NI)1));
	result = mnewString((L_1));
	{
		NI i_1;
		NI i_2;
		i_1 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < L_1)) goto LA3;
				i_1 = i_2;
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = s_p0.p->data[(NI)(i_1 + a_1)];
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA, dotdot___stdZstrbasics_u49)(NI a_p0, NI b_p1) {
	tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA result;
	result.a = a_p0;
	result.b = b_p1;
	return result;
}
static N_INLINE(NimStringV2, X5BX5D___pureZstrutils_u1314)(NimStringV2 s_p0, tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig x_p1) {
	NimStringV2 result;
	NI a_1;
	NI L_1;
	result.len = 0; result.p = NIM_NIL;
	a_1 = x_p1.a;
	L_1 = (NI)((NI)((NI)(s_p0.len - x_p1.b) - a_1) + ((NI)1));
	result = mnewString((L_1));
	{
		NI i_1;
		NI i_2;
		i_1 = (NI)0;
		i_2 = ((NI)0);
		{
			while (1) {
				if (!(i_2 < L_1)) goto LA3;
				i_1 = i_2;
				nimPrepareStrMutationV2((&result));
				result.p->data[i_1] = s_p0.p->data[(NI)(i_1 + a_1)];
				i_2 += ((NI)1);
			} LA3: ;
		}
	}
	return result;
}
static N_INLINE(tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig, dotdot___stdZenumutils_u106)(NI a_p0, NI b_p1) {
	tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig result;
	result.a = a_p0;
	result.b = b_p1;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuUnindent)(NimStringV2 s_p0, NI count_p1, NimStringV2 padding_p2) {
	NimStringV2 result;
	NI i_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = TM__JGc9b9bh2D3nTdUR7TGyq8aA_153;
	i_1 = ((NI)0);
	{
		NimStringV2 line_1;
		NI first_1;
		NI last_1;
		NI eolpos_1;
		line_1.len = 0; line_1.p = NIM_NIL;
		first_1 = ((NI)0);
		last_1 = ((NI)0);
		eolpos_1 = ((NI)0);
		{
			while (1) {
				NI colontmpD_;
				NI colontmpD__2;
				NimStringV2 colontmpD__3;
				NI T27_;
				NimStringV2 T33_;
				NI indentCount_1;
				tyObject_HSlice__JgojxK65oMA6E0HRsL2Wig T51_;
				colontmpD_ = (NI)0;
				colontmpD__2 = (NI)0;
				colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
				{
					while (1) {
						NIM_BOOL T8_;
						T8_ = (NIM_BOOL)0;
						T8_ = (last_1 < s_p0.len);
						if (!(T8_)) goto LA9_;
						T8_ = !((((NU8)(s_p0.p->data[last_1])) == ((NU8)(13)) || ((NU8)(s_p0.p->data[last_1])) == ((NU8)(10))));
LA9_: ;
						if (!T8_) goto LA7;
						last_1 += ((NI)1);
					} LA7: ;
				}
				eolpos_1 = last_1;
				{
					if (!(last_1 < s_p0.len)) goto LA12_;
					{
						if (!((NU8)(s_p0.p->data[last_1]) == (NU8)(10))) goto LA16_;
						last_1 += ((NI)1);
					}
					goto LA14_;
LA16_: ;
					{
						if (!((NU8)(s_p0.p->data[last_1]) == (NU8)(13))) goto LA19_;
						last_1 += ((NI)1);
						{
							NIM_BOOL T23_;
							T23_ = (NIM_BOOL)0;
							T23_ = (last_1 < s_p0.len);
							if (!(T23_)) goto LA24_;
							T23_ = ((NU8)(s_p0.p->data[last_1]) == (NU8)(10));
LA24_: ;
							if (!T23_) goto LA25_;
							last_1 += ((NI)1);
						}
LA25_: ;
					}
					goto LA14_;
LA19_: ;
LA14_: ;
				}
LA12_: ;
				T27_ = (NI)0;
				{
					if (!NIM_FALSE) goto LA30_;
					colontmpD_ = (NI)(last_1 - ((NI)1));
					T27_ = colontmpD_;
				}
				goto LA28_;
LA30_: ;
				{
					colontmpD__2 = (NI)(eolpos_1 - ((NI)1));
					T27_ = colontmpD__2;
				}
LA28_: ;
				T33_.len = 0; T33_.p = NIM_NIL;
				T33_ = substr__system_u8662(s_p0, first_1, T27_);
				eqsink___system_u2700((&line_1), T33_);
				{
					if (!!((i_1 == ((NI)0)))) goto LA36_;
					prepareAdd((&result), 1);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_155);
				}
LA36_: ;
				indentCount_1 = ((NI)0);
				{
					NI j_1;
					NI i_2;
					j_1 = (NI)0;
					i_2 = ((NI)0);
					{
						while (1) {
							NimStringV2 colontmpD__4;
							if (!(i_2 < count_p1)) goto LA40;
							colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
							j_1 = i_2;
							indentCount_1 += ((NI)1);
							{
								NIM_BOOL T44_;
								tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T46_;
								T44_ = (NIM_BOOL)0;
								T44_ = (line_1.len <= (NI)((NI)(j_1 + padding_p2.len) - ((NI)1)));
								if (T44_) goto LA45_;
								T46_ = dotdot___stdZstrbasics_u49(j_1, (NI)((NI)(j_1 + padding_p2.len) - ((NI)1)));
								colontmpD__4 = X5BX5D___pureZstrutils_u1286(line_1, T46_);
								if (NIM_UNLIKELY(*nimErr_)) goto LA41_;
								T44_ = !(eqStrings(colontmpD__4, padding_p2));
LA45_: ;
								if (!T44_) goto LA47_;
								indentCount_1 = j_1;
								eqdestroy___system_u2691(colontmpD__4);
								goto LA38;
							}
LA47_: ;
							i_2 += ((NI)1);
							{
								LA41_:;
							}
							{
								eqdestroy___system_u2691(colontmpD__4);
							}
							if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
						} LA40: ;
					}
				} LA38: ;
				T51_ = dotdot___stdZenumutils_u106((NI)(indentCount_1 * padding_p2.len), ((NI)1));
				colontmpD__3 = X5BX5D___pureZstrutils_u1314(line_1, T51_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
				prepareAdd((&result), colontmpD__3.len + 0);
appendString((&result), colontmpD__3);
				i_1 += ((NI)1);
				{
					if (!(eolpos_1 == last_1)) goto LA54_;
					eqdestroy___system_u2691(colontmpD__3);
					goto LA3;
				}
LA54_: ;
				first_1 = last_1;
				{
					LA5_:;
				}
				{
					eqdestroy___system_u2691(colontmpD__3);
				}
				if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
			}
		} LA3: ;
		{
			LA2_:;
		}
		{
			eqdestroy___system_u2691(line_1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuDedent)(NimStringV2 s_p0, NI count_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nsuUnindent(s_p0, count_p1, TM__JGc9b9bh2D3nTdUR7TGyq8aA_157);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, indentation__pureZstrutils_u1338)(NimStringV2 s_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = ((NI)2147483647);
	{
		NimStringV2 line_1;
		NI first_1;
		NI last_1;
		NI eolpos_1;
		line_1.len = 0; line_1.p = NIM_NIL;
		first_1 = ((NI)0);
		last_1 = ((NI)0);
		eolpos_1 = ((NI)0);
		{
			while (1) {
				NI colontmpD_;
				NI colontmpD__2;
				NI T26_;
				NimStringV2 T32_;
				colontmpD_ = (NI)0;
				colontmpD__2 = (NI)0;
				{
					while (1) {
						NIM_BOOL T7_;
						T7_ = (NIM_BOOL)0;
						T7_ = (last_1 < s_p0.len);
						if (!(T7_)) goto LA8_;
						T7_ = !((((NU8)(s_p0.p->data[last_1])) == ((NU8)(13)) || ((NU8)(s_p0.p->data[last_1])) == ((NU8)(10))));
LA8_: ;
						if (!T7_) goto LA6;
						last_1 += ((NI)1);
					} LA6: ;
				}
				eolpos_1 = last_1;
				{
					if (!(last_1 < s_p0.len)) goto LA11_;
					{
						if (!((NU8)(s_p0.p->data[last_1]) == (NU8)(10))) goto LA15_;
						last_1 += ((NI)1);
					}
					goto LA13_;
LA15_: ;
					{
						if (!((NU8)(s_p0.p->data[last_1]) == (NU8)(13))) goto LA18_;
						last_1 += ((NI)1);
						{
							NIM_BOOL T22_;
							T22_ = (NIM_BOOL)0;
							T22_ = (last_1 < s_p0.len);
							if (!(T22_)) goto LA23_;
							T22_ = ((NU8)(s_p0.p->data[last_1]) == (NU8)(10));
LA23_: ;
							if (!T22_) goto LA24_;
							last_1 += ((NI)1);
						}
LA24_: ;
					}
					goto LA13_;
LA18_: ;
LA13_: ;
				}
LA11_: ;
				T26_ = (NI)0;
				{
					if (!NIM_FALSE) goto LA29_;
					colontmpD_ = (NI)(last_1 - ((NI)1));
					T26_ = colontmpD_;
				}
				goto LA27_;
LA29_: ;
				{
					colontmpD__2 = (NI)(eolpos_1 - ((NI)1));
					T26_ = colontmpD__2;
				}
LA27_: ;
				T32_.len = 0; T32_.p = NIM_NIL;
				T32_ = substr__system_u8662(s_p0, first_1, T26_);
				eqsink___system_u2700((&line_1), T32_);
				{
					NI i_1;
					NIM_CHAR c_1;
					NI i_2;
					NI L_1;
					i_1 = (NI)0;
					c_1 = (NIM_CHAR)0;
					i_2 = ((NI)0);
					L_1 = line_1.len;
					{
						while (1) {
							if (!(i_2 < L_1)) goto LA35;
							i_1 = i_2;
							c_1 = line_1.p->data[i_2];
							{
								if (!(result <= i_1)) goto LA38_;
								goto LA33;
							}
							goto LA36_;
LA38_: ;
							{
								if (!!(((NU8)(c_1) == (NU8)(32)))) goto LA41_;
								result = (i_1);
								goto LA33;
							}
							goto LA36_;
LA41_: ;
LA36_: ;
							i_2 += ((NI)1);
						} LA35: ;
					}
				} LA33: ;
				{
					if (!(eolpos_1 == last_1)) goto LA45_;
					goto LA3;
				}
LA45_: ;
				first_1 = last_1;
			}
		} LA3: ;
		{
			LA2_:;
		}
		{
			eqdestroy___system_u2691(line_1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	{
		if (!(result == ((NI)2147483647))) goto LA51_;
		result = ((NI)0);
	}
LA51_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZstrutils_u2791)(tyTuple__dPNkpxgceTc63bP5seHZGw dest_p0) {
	eqdestroy___system_u2691(dest_p0.Field0);
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuIsDigitChar)(NIM_CHAR c_p0) {
	NIM_BOOL result;
{	result = (((NU8)(c_p0)) >= ((NU8)(48)) && ((NU8)(c_p0)) <= ((NU8)(57)));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nsuIsUpperAsciiChar)(NIM_CHAR c_p0) {
	NIM_BOOL result;
{	result = (((NU8)(c_p0)) >= ((NU8)(65)) && ((NU8)(c_p0)) <= ((NU8)(90)));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuCapitalizeAscii)(NimStringV2 s_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	{
		if (!(s_p0.len == ((NI)0))) goto LA3_;
		result = TM__JGc9b9bh2D3nTdUR7TGyq8aA_158;
	}
	goto LA1_;
LA3_: ;
	{
		NimStringV2 colontmpD_;
		NimStringV2 T6_;
		NIM_CHAR T7_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		T6_.len = 0; T6_.p = NIM_NIL;
		T7_ = (NIM_CHAR)0;
		T7_ = nsuToUpperAsciiChar(s_p0.p->data[((NI)0)]);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		colontmpD_ = substr__system_u8675(s_p0, ((NI)1));
		T6_ = rawNewString(colontmpD_.len + 1);
appendChar((&T6_), T7_);
appendString((&T6_), colontmpD_);
		result = T6_;
		eqdestroy___system_u2691(colontmpD_);
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nsuCountLines)(NimStringV2 s_p0) {
	NI result;
	NI i_1;
	result = ((NI)1);
	i_1 = ((NI)0);
	{
		while (1) {
			if (!(i_1 < s_p0.len)) goto LA2;
			switch (((NU8)(s_p0.p->data[i_1]))) {
			case 13:
			{
				{
					NIM_BOOL T6_;
					T6_ = (NIM_BOOL)0;
					T6_ = ((NI)(i_1 + ((NI)1)) < s_p0.len);
					if (!(T6_)) goto LA7_;
					T6_ = ((NU8)(s_p0.p->data[(NI)(i_1 + ((NI)1))]) == (NU8)(10));
LA7_: ;
					if (!T6_) goto LA8_;
					i_1 += ((NI)1);
				}
LA8_: ;
				result += ((NI)1);
			}
			break;
			case 10:
			{
				result += ((NI)1);
			}
			break;
			default:
			{
			}
			break;
			}
			i_1 += ((NI)1);
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuAlignString)(NimStringV2 s_p0, NI count_p1, NIM_CHAR padding_p2) {
	NimStringV2 result;
	result.len = 0; result.p = NIM_NIL;
	{
		NI spaces_1;
		if (!(s_p0.len < count_p1)) goto LA3_;
		result = mnewString(count_p1);
		spaces_1 = (NI)(count_p1 - s_p0.len);
		{
			NI i_1;
			NI colontmp_;
			NI res_1;
			i_1 = (NI)0;
			colontmp_ = (NI)0;
			colontmp_ = (NI)(spaces_1 - ((NI)1));
			res_1 = ((NI)0);
			{
				while (1) {
					if (!(res_1 <= colontmp_)) goto LA7;
					i_1 = ((NI) (res_1));
					nimPrepareStrMutationV2((&result));
					result.p->data[i_1] = padding_p2;
					res_1 += ((NI)1);
				} LA7: ;
			}
		}
		{
			NI i_2;
			NI colontmp__2;
			NI res_2;
			i_2 = (NI)0;
			colontmp__2 = (NI)0;
			colontmp__2 = (NI)(count_p1 - ((NI)1));
			res_2 = spaces_1;
			{
				while (1) {
					if (!(res_2 <= colontmp__2)) goto LA10;
					i_2 = ((NI) (res_2));
					nimPrepareStrMutationV2((&result));
					result.p->data[i_2] = s_p0.p->data[(NI)(i_2 - spaces_1)];
					res_2 += ((NI)1);
				} LA10: ;
			}
		}
	}
	goto LA1_;
LA3_: ;
	{
		eqcopy___system_u2694((&result), s_p0);
	}
LA1_: ;
	return result;
}
static N_INLINE(NI, fastLog2__pureZstrutils_u2356)(NI64 x_p0) {
	NI result;
	NU64 x_2;
	int T1_;
	result = (NI)0;
	x_2 = ((NU64) (x_p0));
	T1_ = (int)0;
	T1_ = __builtin_clzll(x_2);
	result = (NI)(((NI)63) - ((NI) (T1_)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuformatFloat)(NF f_p0, tyEnum_FloatFormatMode__CTUpdhZ6zDNw9cC9acViKeYg format_p1, NI precision_p2, NIM_CHAR decimalSep_p3) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nsuformatBiggestFloat(f_p0, format_p1, precision_p2, decimalSep_p3);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, trimZeros__pureZstrutils_u2321)(NimStringV2* x_p0, NIM_CHAR decimalSep_p1) {
	NI sPos_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	sPos_1 = nsuFindChar((*x_p0), decimalSep_p1, ((NI)0), ((NI)-1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NI last_1;
		NI T5_;
		NI pos_1;
		if (!(((NI)0) <= sPos_1)) goto LA3_;
		last_1 = nsuFindChar((*x_p0), 101, (sPos_1), ((NI)-1));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		T5_ = (NI)0;
		{
			if (!(((NI)0) <= last_1)) goto LA8_;
			last_1 = (NI)(last_1 - ((NI)1));
		}
		goto LA6_;
LA8_: ;
		{
			last_1 = ((*x_p0).len-1);
		}
LA6_: ;
		pos_1 = last_1;
		{
			while (1) {
				NIM_BOOL T13_;
				T13_ = (NIM_BOOL)0;
				T13_ = (((NI)0) <= pos_1);
				if (!(T13_)) goto LA14_;
				T13_ = ((NU8)((*x_p0).p->data[pos_1]) == (NU8)(48));
LA14_: ;
				if (!T13_) goto LA12;
				pos_1 -= ((NI)1);
			} LA12: ;
		}
		{
			if (!(sPos_1 < pos_1)) goto LA17_;
			pos_1 += ((NI)1);
		}
LA17_: ;
		{
			tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA T23_;
			if (!(pos_1 <= last_1)) goto LA21_;
			T23_ = dotdot___stdZstrbasics_u49(pos_1, last_1);
			delete__pureZstrutils_u1360(x_p0, T23_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA21_: ;
	}
LA3_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, formatSize__pureZstrutils_u2348)(NI64 bytes_p0, NIM_CHAR decimalSep_p1, tyEnum_BinaryPrefixMode__DD8vm6t9bnCX9aiA69bRJXJtQ prefix_p2, NIM_BOOL includeSpace_p3) {
	NimStringV2 result;
	NI colontmpD_;
	NI colontmpD__2;
	tyArray__hFPV9bffMpPjoz9bsO9crekNg prefixes_1;
	NF colontmpD__3;
	NF colontmpD__4;
	NF colontmpD__5;
	NI lg2_1;
	NI matchedIndex_1;
	NI discardBits_1;
	NF fbytes_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	colontmpD_ = (NI)0;
	colontmpD__2 = (NI)0;
	nimZeroMem((void*)prefixes_1, sizeof(tyArray__hFPV9bffMpPjoz9bsO9crekNg));
	colontmpD__3 = (NF)0;
	colontmpD__4 = (NF)0;
	colontmpD__5 = (NF)0;
	{
		if (!(bytes_p0 == IL64(0))) goto LA3_;
		colontmpD_ = ((NI)0);
		lg2_1 = colontmpD_;
	}
	goto LA1_;
LA3_: ;
	{
		colontmpD__2 = fastLog2__pureZstrutils_u2356(bytes_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		lg2_1 = colontmpD__2;
	}
LA1_: ;
	matchedIndex_1 = (NI)(lg2_1 / ((NI)10));
	discardBits_1 = (NI)((NI)((NI)(lg2_1 / ((NI)10)) - ((NI)1)) * ((NI)10));
	{
		if (!(prefix_p2 == ((tyEnum_BinaryPrefixMode__DD8vm6t9bnCX9aiA69bRJXJtQ)1))) goto LA8_;
		nimCopyMem((void*)prefixes_1, (NIM_CONST void*)collPrefixes__pureZstrutils_u2355, sizeof(tyArray__hFPV9bffMpPjoz9bsO9crekNg));
	}
	goto LA6_;
LA8_: ;
	{
		nimCopyMem((void*)prefixes_1, (NIM_CONST void*)iecPrefixes__pureZstrutils_u2354, sizeof(tyArray__hFPV9bffMpPjoz9bsO9crekNg));
	}
LA6_: ;
	{
		if (!(lg2_1 < ((NI)10))) goto LA13_;
		colontmpD__3 = ((NF) (bytes_p0));
		fbytes_1 = colontmpD__3;
	}
	goto LA11_;
LA13_: ;
	{
		if (!(lg2_1 < ((NI)20))) goto LA16_;
		colontmpD__4 = ((NF)(((NF) (bytes_p0))) / (NF)(1024.0));
		fbytes_1 = colontmpD__4;
	}
	goto LA11_;
LA16_: ;
	{
		colontmpD__5 = ((NF)(((NF) ((NI64)((NI64)(bytes_p0) >> (NU64)(discardBits_1 & (64 - 1)))))) / (NF)(1024.0));
		fbytes_1 = colontmpD__5;
	}
LA11_: ;
	result = nsuformatFloat(fbytes_1, ((tyEnum_FloatFormatMode__CTUpdhZ6zDNw9cC9acViKeYg)1), ((NI)3), decimalSep_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	trimZeros__pureZstrutils_u2321((&result), decimalSep_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		if (!includeSpace_p3) goto LA21_;
		prepareAdd((&result), 1);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_171);
	}
LA21_: ;
	prepareAdd((&result), prefixes_1[(matchedIndex_1)- 0].len + 0);
appendString((&result), prefixes_1[(matchedIndex_1)- 0]);
	prepareAdd((&result), 1);
appendString((&result), TM__JGc9b9bh2D3nTdUR7TGyq8aA_173);
	}BeforeRet_: ;
	return result;
}
