/* Generated by Nim Compiler v1.0.6 */
/*   (c) 2019 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_INTBITS 64

#include "nimbase.h"
#undef LANGUAGE_C
#undef MIPSEB
#undef MIPSEL
#undef PPC
#undef R3000
#undef R4000
#undef i386
#undef linux
#undef mips
#undef near
#undef far
#undef powerpc
#undef unix
#define nimfr_(x, y)
#define nimln_(x, y)
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
N_NOINLINE(void, raiseIndexError2)(NI i, NI n);
static N_INLINE(NI, addInt)(NI a, NI b);
N_NOINLINE(void, raiseOverflow)(void);
N_LIB_PRIVATE N_NIMCALL(NI, runeLenAt__WMpE2MYPWM1HlcK1wXx02Q)(NimStringDesc* s, NI i);
static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
N_NOINLINE(void, raiseRangeError)(NI64 val);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
static N_INLINE(NI, addInt)(NI a, NI b) {	NI result;
{	result = (NI)0;
	result = (NI)((NU64)(a) + (NU64)(b));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (((NI) 0) <= (NI)(result ^ a));
		if (T3_) goto LA4_;
		T3_ = (((NI) 0) <= (NI)(result ^ b));
		LA4_: ;
		if (!T3_) goto LA5_;
		goto BeforeRet_;
	}
	LA5_: ;
	raiseOverflow();
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nucruneLen)(NimStringDesc* s) {	NI result;
	NI i;
	result = (NI)0;
	i = ((NI) 0);
	{
		while (1) {
			NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_9;
			if (!(i < (s ? s->Sup.len : 0))) goto LA2;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_2;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU64)(((NU) (((NU8)(s->data[i]))))) <= (NU64)(((NI) 127)))) goto LA5_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_2 = addInt(i, ((NI) 1));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_2);
			}
			goto LA3_;
			LA5_: ;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_3;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA8_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_3 = addInt(i, ((NI) 2));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_3);
			}
			goto LA3_;
			LA8_: ;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_4;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA11_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_4 = addInt(i, ((NI) 3));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_4);
			}
			goto LA3_;
			LA11_: ;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_5;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA14_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_5 = addInt(i, ((NI) 4));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_5);
			}
			goto LA3_;
			LA14_: ;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_6;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA17_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_6 = addInt(i, ((NI) 5));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_6);
			}
			goto LA3_;
			LA17_: ;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_7;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA20_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_7 = addInt(i, ((NI) 6));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_7);
			}
			goto LA3_;
			LA20_: ;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_8;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_8 = addInt(i, ((NI) 1));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_8);
			}
			LA3_: ;
			TM__e1RUVS0Bw7xmj9cnDPXLJMQ_9 = addInt(result, ((NI) 1));
			result = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_9);
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, runeLenAt__WMpE2MYPWM1HlcK1wXx02Q)(NimStringDesc* s, NI i) {	NI result;
	result = (NI)0;
	{
		if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
		if (!((NU64)(((NU) (((NU8)(s->data[i]))))) <= (NU64)(((NI) 127)))) goto LA3_;
		result = ((NI) 1);
	}
	goto LA1_;
	LA3_: ;
	{
		if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
		if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA6_;
		result = ((NI) 2);
	}
	goto LA1_;
	LA6_: ;
	{
		if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
		if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA9_;
		result = ((NI) 3);
	}
	goto LA1_;
	LA9_: ;
	{
		if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
		if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA12_;
		result = ((NI) 4);
	}
	goto LA1_;
	LA12_: ;
	{
		if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
		if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 2))) == ((NI) 62))) goto LA15_;
		result = ((NI) 5);
	}
	goto LA1_;
	LA15_: ;
	{
		if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
		if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 1))) == ((NI) 126))) goto LA18_;
		result = ((NI) 6);
	}
	goto LA1_;
	LA18_: ;
	{
		result = ((NI) 1);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {	NI result;
{	result = (NI)0;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (a <= i);
		if (!(T3_)) goto LA4_;
		T3_ = (i <= b);
		LA4_: ;
		if (!T3_) goto LA5_;
		result = i;
		goto BeforeRet_;
	}
	goto LA1_;
	LA5_: ;
	{
		raiseRangeError(((NI64) (i)));
	}
	LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, runeOffset__EnrqtYM0boqQqeAIRc9bdmA)(NimStringDesc* s, NI pos, NI start) {	NI result;
	NI i;
	NI o;
{	result = (NI)0;
	i = ((NI) 0);
	o = start;
	{
		while (1) {
			NI T3_;
			NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_10;
			NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_11;
			if (!(i < ((NI) (pos)))) goto LA2;
			T3_ = (NI)0;
			T3_ = runeLenAt__WMpE2MYPWM1HlcK1wXx02Q(s, o);
			TM__e1RUVS0Bw7xmj9cnDPXLJMQ_10 = addInt(o, ((NI)chckRange(T3_, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			if (TM__e1RUVS0Bw7xmj9cnDPXLJMQ_10 < 0 || TM__e1RUVS0Bw7xmj9cnDPXLJMQ_10 > IL64(9223372036854775807)) raiseOverflow();
			o = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_10);
			{
				if (!((s ? s->Sup.len : 0) <= ((NI) (o)))) goto LA6_;
				result = ((NI) -1);
				goto BeforeRet_;
			}
			LA6_: ;
			TM__e1RUVS0Bw7xmj9cnDPXLJMQ_11 = addInt(i, ((NI) 1));
			i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_11);
		} LA2: ;
	}
	result = ((NI) (o));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, validateUtf8__gZHDHaRdP4jROav7Hun29aA)(NimStringDesc* s) {	NI result;
	NI i;
	NI L;
{	result = (NI)0;
	i = ((NI) 0);
	L = (s ? s->Sup.len : 0);
	{
		while (1) {
			if (!(i < L)) goto LA2;
			{
				NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_12;
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU64)(((NU) (((NU8)(s->data[i]))))) <= (NU64)(((NI) 127)))) goto LA5_;
				TM__e1RUVS0Bw7xmj9cnDPXLJMQ_12 = addInt(i, ((NI) 1));
				i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_12);
			}
			goto LA3_;
			LA5_: ;
			{
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 5))) == ((NI) 6))) goto LA8_;
				{
					if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
					if (!((NU64)(((NU) (((NU8)(s->data[i]))))) < (NU64)(((NI) 194)))) goto LA12_;
					result = i;
					goto BeforeRet_;
				}
				LA12_: ;
				{
					NIM_BOOL T16_;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_13;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_14;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_15;
					T16_ = (NIM_BOOL)0;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_13 = addInt(i, ((NI) 1));
					T16_ = ((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_13) < L);
					if (!(T16_)) goto LA17_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_14 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_14)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_14),(s ? s->Sup.len : 0)-1);
					T16_ = ((NU)((NU64)(((NU) (((NU8)(s->data[(NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_14)]))))) >> (NU64)(((NI) 6))) == ((NI) 2));
					LA17_: ;
					if (!T16_) goto LA18_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_15 = addInt(i, ((NI) 2));
					i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_15);
				}
				goto LA14_;
				LA18_: ;
				{
					result = i;
					goto BeforeRet_;
				}
				LA14_: ;
			}
			goto LA3_;
			LA8_: ;
			{
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 4))) == ((NI) 14))) goto LA22_;
				{
					NIM_BOOL T26_;
					NIM_BOOL T27_;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_16;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_17;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_18;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_19;
					T26_ = (NIM_BOOL)0;
					T27_ = (NIM_BOOL)0;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_16 = addInt(i, ((NI) 2));
					T27_ = ((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_16) < L);
					if (!(T27_)) goto LA28_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_17 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_17)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_17),(s ? s->Sup.len : 0)-1);
					T27_ = ((NU)((NU64)(((NU) (((NU8)(s->data[(NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_17)]))))) >> (NU64)(((NI) 6))) == ((NI) 2));
					LA28_: ;
					T26_ = T27_;
					if (!(T26_)) goto LA29_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_18 = addInt(i, ((NI) 2));
					if ((NU)((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_18)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_18),(s ? s->Sup.len : 0)-1);
					T26_ = ((NU)((NU64)(((NU) (((NU8)(s->data[(NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_18)]))))) >> (NU64)(((NI) 6))) == ((NI) 2));
					LA29_: ;
					if (!T26_) goto LA30_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_19 = addInt(i, ((NI) 3));
					i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_19);
				}
				goto LA24_;
				LA30_: ;
				{
					result = i;
					goto BeforeRet_;
				}
				LA24_: ;
			}
			goto LA3_;
			LA22_: ;
			{
				if ((NU)(i) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2(i,(s ? s->Sup.len : 0)-1);
				if (!((NU)((NU64)(((NU) (((NU8)(s->data[i]))))) >> (NU64)(((NI) 3))) == ((NI) 30))) goto LA34_;
				{
					NIM_BOOL T38_;
					NIM_BOOL T39_;
					NIM_BOOL T40_;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_20;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_21;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_22;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_23;
					NI TM__e1RUVS0Bw7xmj9cnDPXLJMQ_24;
					T38_ = (NIM_BOOL)0;
					T39_ = (NIM_BOOL)0;
					T40_ = (NIM_BOOL)0;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_20 = addInt(i, ((NI) 3));
					T40_ = ((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_20) < L);
					if (!(T40_)) goto LA41_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_21 = addInt(i, ((NI) 1));
					if ((NU)((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_21)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_21),(s ? s->Sup.len : 0)-1);
					T40_ = ((NU)((NU64)(((NU) (((NU8)(s->data[(NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_21)]))))) >> (NU64)(((NI) 6))) == ((NI) 2));
					LA41_: ;
					T39_ = T40_;
					if (!(T39_)) goto LA42_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_22 = addInt(i, ((NI) 2));
					if ((NU)((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_22)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_22),(s ? s->Sup.len : 0)-1);
					T39_ = ((NU)((NU64)(((NU) (((NU8)(s->data[(NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_22)]))))) >> (NU64)(((NI) 6))) == ((NI) 2));
					LA42_: ;
					T38_ = T39_;
					if (!(T38_)) goto LA43_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_23 = addInt(i, ((NI) 3));
					if ((NU)((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_23)) >= (NU)(s ? s->Sup.len : 0)) raiseIndexError2((NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_23),(s ? s->Sup.len : 0)-1);
					T38_ = ((NU)((NU64)(((NU) (((NU8)(s->data[(NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_23)]))))) >> (NU64)(((NI) 6))) == ((NI) 2));
					LA43_: ;
					if (!T38_) goto LA44_;
					TM__e1RUVS0Bw7xmj9cnDPXLJMQ_24 = addInt(i, ((NI) 4));
					i = (NI)(TM__e1RUVS0Bw7xmj9cnDPXLJMQ_24);
				}
				goto LA36_;
				LA44_: ;
				{
					result = i;
					goto BeforeRet_;
				}
				LA36_: ;
			}
			goto LA3_;
			LA34_: ;
			{
				result = i;
				goto BeforeRet_;
			}
			LA3_: ;
		} LA2: ;
	}
	result = ((NI) -1);
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nuctoUTF8)(NI32 c) {	NimStringDesc* result;
	NI32 iX60gensym203117_;
	result = (NimStringDesc*)0;
	result = ((NimStringDesc*) NIM_NIL);
	iX60gensym203117_ = c;
	{
		if (!((NU32)(iX60gensym203117_) <= (NU32)(((NI32) 127)))) goto LA3_;
		result = setLengthStr(result, ((NI) 1));
		if ((NU)(((NI) 0)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 0),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 0)] = ((NIM_CHAR) (((NI)chckRange(iX60gensym203117_, ((NI) 0), ((NI) 255)))));
	}
	goto LA1_;
	LA3_: ;
	{
		if (!((NU32)(iX60gensym203117_) <= (NU32)(((NI32) 2047)))) goto LA6_;
		result = setLengthStr(result, ((NI) 2));
		if ((NU)(((NI) 0)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 0),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 0)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 6))) | ((NI32) 192)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 1)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 1),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 1)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)(iX60gensym203117_ & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
	}
	goto LA1_;
	LA6_: ;
	{
		if (!((NU32)(iX60gensym203117_) <= (NU32)(((NI32) 65535)))) goto LA9_;
		result = setLengthStr(result, ((NI) 3));
		if ((NU)(((NI) 0)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 0),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 0)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 12))) | ((NI32) 224)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 1)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 1),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 1)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 6))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 2)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 2),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 2)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)(iX60gensym203117_ & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
	}
	goto LA1_;
	LA9_: ;
	{
		if (!((NU32)(iX60gensym203117_) <= (NU32)(((NI32) 2097151)))) goto LA12_;
		result = setLengthStr(result, ((NI) 4));
		if ((NU)(((NI) 0)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 0),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 0)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 18))) | ((NI32) 240)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 1)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 1),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 1)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 12))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 2)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 2),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 2)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 6))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 3)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 3),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 3)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)(iX60gensym203117_ & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
	}
	goto LA1_;
	LA12_: ;
	{
		if (!((NU32)(iX60gensym203117_) <= (NU32)(((NI32) 67108863)))) goto LA15_;
		result = setLengthStr(result, ((NI) 5));
		if ((NU)(((NI) 0)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 0),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 0)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 24))) | ((NI32) 248)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 1)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 1),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 1)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 18))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 2)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 2),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 2)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 12))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 3)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 3),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 3)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 6))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 4)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 4),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 4)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)(iX60gensym203117_ & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
	}
	goto LA1_;
	LA15_: ;
	{
		if (!((NU32)(iX60gensym203117_) <= (NU32)(((NI32) 2147483647)))) goto LA18_;
		result = setLengthStr(result, ((NI) 6));
		if ((NU)(((NI) 0)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 0),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 0)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 30))) | ((NI32) 252)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 1)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 1),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 1)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 24))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 2)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 2),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 2)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 18))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 3)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 3),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 3)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 12))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 4)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 4),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 4)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)((NI32)((NI64)(iX60gensym203117_) >> (NU64)(((NI) 6))) & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
		if ((NU)(((NI) 5)) >= (NU)(result ? result->Sup.len : 0)) raiseIndexError2(((NI) 5),(result ? result->Sup.len : 0)-1);
		result->data[((NI) 5)] = ((NIM_CHAR) (((NI)chckRange((NI32)((NI32)(iX60gensym203117_ & ((NI32) 63)) | ((NI32) 128)), ((NI) 0), ((NI) 255)))));
	}
	goto LA1_;
	LA18_: ;
	{
	}
	LA1_: ;
	return result;
}
