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

#include "nimbase.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_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g;
typedef struct tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ;
typedef struct tySequence__m9axZwxFfhSNLcoofvKZJYA tySequence__m9axZwxFfhSNLcoofvKZJYA;
typedef struct tySequence__m9axZwxFfhSNLcoofvKZJYA_Content tySequence__m9axZwxFfhSNLcoofvKZJYA_Content;
typedef struct tySequence__fXWXs2NlFKREhy9cn6vokJw tySequence__fXWXs2NlFKREhy9cn6vokJw;
typedef struct tySequence__fXWXs2NlFKREhy9cn6vokJw_Content tySequence__fXWXs2NlFKREhy9cn6vokJw_Content;
typedef struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A;
typedef struct tyTuple__eR5B9b9c9coYBbO09chTvuMqNQ tyTuple__eR5B9b9c9coYBbO09chTvuMqNQ;
typedef struct tyObject_Table__I1hAea2wVUrLyIxtQj9cheA tyObject_Table__I1hAea2wVUrLyIxtQj9cheA;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ tySequence__SFipDZIkFtPcrLs0AGBBjQ;
typedef struct tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content;
typedef struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg tyTuple__8ZxhPt1NwfElsJs8zUSV9bg;
typedef struct tyTuple__M7ImznM2hk9a9beBDTxcwGeg tyTuple__M7ImznM2hk9a9beBDTxcwGeg;
typedef struct tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ;
typedef struct tyObject_SourceMap__WQjtp9aU0iILpTcFCDzWLTA tyObject_SourceMap__WQjtp9aU0iILpTcFCDzWLTA;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
typedef struct tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q;
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 tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ;
typedef struct tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA;
typedef struct tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w;
typedef struct tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA;
typedef struct tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q;
typedef struct tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg;
typedef struct tyObject_BaseLexer__ZspOFmN5MjfhmGOKIrGMRg tyObject_BaseLexer__ZspOFmN5MjfhmGOKIrGMRg;
typedef struct tySequence__GyTgETkn69b26Etj2zBgjMw tySequence__GyTgETkn69b26Etj2zBgjMw;
typedef struct tySequence__GyTgETkn69b26Etj2zBgjMw_Content tySequence__GyTgETkn69b26Etj2zBgjMw_Content;
typedef struct tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ;
typedef struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA;
struct NimStrPayload {
	NI cap;
	NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
	NI len;
	NimStrPayload* p;
};
typedef NU8 tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA;
struct tySequence__m9axZwxFfhSNLcoofvKZJYA {
  NI len; tySequence__m9axZwxFfhSNLcoofvKZJYA_Content* p;
};
struct tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ {
	tySequence__m9axZwxFfhSNLcoofvKZJYA data;
	NI counter;
	NI first;
	NI last;
};
struct tySequence__fXWXs2NlFKREhy9cn6vokJw {
  NI len; tySequence__fXWXs2NlFKREhy9cn6vokJw_Content* p;
};
struct tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g {
	NIM_BOOL isUnquoted;
	tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA kind;
union{
	struct {
	NimStringV2 str;
} _kind_1;
	struct {
	NI64 num;
} _kind_2;
	struct {
	NF fnum;
} _kind_3;
	struct {
	NIM_BOOL bval;
} _kind_4;
	struct {
	tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ fields;
} _kind_6;
	struct {
	tySequence__fXWXs2NlFKREhy9cn6vokJw elems;
} _kind_7;
};
};
struct tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A {
	NI rc;
	NI rootIdx;
};
struct tyTuple__eR5B9b9c9coYBbO09chTvuMqNQ {
	NI Field0;
	NI Field1;
	NimStringV2 Field2;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* Field3;
};
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ {
  NI len; tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content* p;
};
struct tyObject_Table__I1hAea2wVUrLyIxtQj9cheA {
	tySequence__SFipDZIkFtPcrLs0AGBBjQ data;
	NI counter;
};
struct tyTuple__8ZxhPt1NwfElsJs8zUSV9bg {
	NI Field0;
	NimStringV2 Field1;
	NimStringV2 Field2;
};
struct tyTuple__M7ImznM2hk9a9beBDTxcwGeg {
	NimStringV2 Field0;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* Field1;
};
struct tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ {
	NI len;
	void* p;
};
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
  NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
};
struct tyObject_SourceMap__WQjtp9aU0iILpTcFCDzWLTA {
	NI version;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ sources;
	tySequence__sM4lkSb7zS6F7OVMvW9cffQ names;
	NimStringV2 mappings;
	NimStringV2 file;
};
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;
};
struct tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q {
	tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA Sup;
};
typedef NimStringV2 tyArray__dyW7vpmfeTYw8kX3EXuaJA[3];
typedef NU8 tySet_tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA;
struct tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ {
	tyObject_ValueError__S29bKZF4TUS33IR7ZXb7fFA Sup;
};
typedef N_NIMCALL_PTR(void, tyProc__DXGqmuActUm0S3MKNsreGw) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__Fono1uAye9aDS77o2sqPoIg) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0);
typedef N_NIMCALL_PTR(void, tyProc__zdMZVwOrDkH4aQdAWbmhfA) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, NI pos_p1);
typedef N_NIMCALL_PTR(NI, tyProc__hJ4RdVQy2jQRw0zV2TsXng) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0);
typedef N_NIMCALL_PTR(NI, tyProc__e59bWp0wEul4j9a5QwZc9bB9cQ) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, NimStringV2* buffer_p1, tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA slice_p2);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7tjyszhbbb180aOkghqCyw) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, NimStringV2* line_p1);
typedef N_NIMCALL_PTR(NI, tyProc__a9cZWdPu9bXGVJA7dJZ9aX8bQ) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, void* buffer_p1, NI bufLen_p2);
typedef N_NIMCALL_PTR(void, tyProc__BwfRbL9cjs7RFNMDfL4200g) (tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, void* buffer_p1, NI bufLen_p2);
struct tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w {
	RootObj Sup;
	tyProc__DXGqmuActUm0S3MKNsreGw closeImpl;
	tyProc__Fono1uAye9aDS77o2sqPoIg atEndImpl;
	tyProc__zdMZVwOrDkH4aQdAWbmhfA setPositionImpl;
	tyProc__hJ4RdVQy2jQRw0zV2TsXng getPositionImpl;
	tyProc__e59bWp0wEul4j9a5QwZc9bB9cQ readDataStrImpl;
	tyProc__7tjyszhbbb180aOkghqCyw readLineImpl;
	tyProc__a9cZWdPu9bXGVJA7dJZ9aX8bQ readDataImpl;
	tyProc__a9cZWdPu9bXGVJA7dJZ9aX8bQ peekDataImpl;
	tyProc__BwfRbL9cjs7RFNMDfL4200g writeDataImpl;
	tyProc__DXGqmuActUm0S3MKNsreGw flushImpl;
};
struct tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA {
	tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w Sup;
	FILE* f;
};
typedef NU8 tyEnum_FileMode__YkEVJbjDa9aPvYTBr8yiUWg;
struct tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q {
	tyObject_CatchableError__TCF9b1Y9b2ct0xPZvZnaY7gg Sup;
};
typedef NU8 tySet_tyChar__nmiMWKVIe46vacnhAFrQvw[32];
struct tyObject_BaseLexer__ZspOFmN5MjfhmGOKIrGMRg {
	RootObj Sup;
	NI bufpos;
	NimStringV2 buf;
	tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* input;
	NI lineNumber;
	NI sentinel;
	NI lineStart;
	NI offsetBase;
	tySet_tyChar__nmiMWKVIe46vacnhAFrQvw refillChars;
};
typedef NU8 tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw;
typedef NU8 tyEnum_JsonEventKind__vmhy79b8cI3QhdCUo55hPOA;
typedef NU8 tyEnum_JsonError__xIIO5nJTV4O1P02ldc1GWg;
struct tySequence__GyTgETkn69b26Etj2zBgjMw {
  NI len; tySequence__GyTgETkn69b26Etj2zBgjMw_Content* p;
};
struct tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg {
	tyObject_BaseLexer__ZspOFmN5MjfhmGOKIrGMRg Sup;
	NimStringV2 a;
	tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw tok;
	tyEnum_JsonEventKind__vmhy79b8cI3QhdCUo55hPOA kind;
	tyEnum_JsonError__xIIO5nJTV4O1P02ldc1GWg err;
	tySequence__GyTgETkn69b26Etj2zBgjMw state;
	NimStringV2 filename;
	NIM_BOOL rawStringLiterals;
};
typedef NU8 tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ;
struct tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ {
	tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ kind;
	NimStringV2 keyword;
	NimStringV2 link;
	NimStringV2 linkTitle;
	NimStringV2 linkDesc;
	NI line;
	NimStringV2 module;
	NimStringV2 aux;
};
struct tySequence__m9axZwxFfhSNLcoofvKZJYA_Content { NI cap; tyTuple__eR5B9b9c9coYBbO09chTvuMqNQ data[SEQ_DECL_SIZE]; };
struct tySequence__fXWXs2NlFKREhy9cn6vokJw_Content { NI cap; tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* data[SEQ_DECL_SIZE]; };
struct tySequence__SFipDZIkFtPcrLs0AGBBjQ_Content { NI cap; tyTuple__8ZxhPt1NwfElsJs8zUSV9bg data[SEQ_DECL_SIZE]; };
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE]; };
struct tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA {
	NCSTRING procname;
	NI line;
	NCSTRING filename;
};
struct tySequence__S89cE01OvNjsN9c71FKsSrqQ_Content { NI cap; tyObject_StackTraceEntry__RcJz5RXFIYjIseutvVFICA data[SEQ_DECL_SIZE]; };
struct tyObject_HSlice__OAVyDXS0QPw7LdXClfU2hA {
	NI a;
	NI b;
};
typedef NU8 tyEnum_ParserState__0xxCjL29aD8tzUEg49aPYfOw;
struct tySequence__GyTgETkn69b26Etj2zBgjMw_Content { NI cap; tyEnum_ParserState__0xxCjL29aD8tzUEg49aPYfOw data[SEQ_DECL_SIZE]; };
N_NIMCALL(NimStringV2, rawNewString)(NI cap_p0);
N_LIB_PRIVATE N_NIMCALL(void, escapeJson__pureZjson_u4721)(NimStringV2 s_p0, NimStringV2* result_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(void, prepareAdd)(NimStringV2* s_p0, NI addLen_p1);
N_LIB_PRIVATE N_NIMCALL(void, escapeJsonUnquoted__pureZjson_u4700)(NimStringV2 s_p0, NimStringV2* result_p1);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_u9)(NI xX60gensym0__p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___system_u2691)(NimStringV2 dest_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, toHex__pureZstrutils_u2114)(NI x_p0, NI len_p1);
static N_INLINE(void, nimAddCharV1)(NimStringV2* s_p0, NIM_CHAR c_p1);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u94)(tySequence__m9axZwxFfhSNLcoofvKZJYA dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u257)(tySequence__fXWXs2NlFKREhy9cn6vokJw dest_p0);
static N_INLINE(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0);
static N_INLINE(NI, minuspercent___system_u805)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(void, unregisterCycle__system_u3128)(tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* s_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u70)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, nimRawDispose)(void* p_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void, alignedDealloc)(void* p_p0, NI align_p1);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap_p0, NI elemSize_p1, NI elemAlign_p2);
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(NIM_BOOL, eqeq___pureZjson_u2450)(tySequence__fXWXs2NlFKREhy9cn6vokJw x_p0, tySequence__fXWXs2NlFKREhy9cn6vokJw y_p1);
static N_INLINE(NI, len__pureZjson_u2566)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ t_p0);
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);
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u32)(NI hcode_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u2694)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZjson_u327)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** dest_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* src_p1);
static N_INLINE(void, nimIncRef)(void* p_p0);
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__pureZjson_u2974)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ t_p0, NimStringV2 key_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u324)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* dest_p0);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZjson_u2433)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* a_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* b_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g**, X5BX5D___pureZjson_u3048)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ* t_p0, NimStringV2 key_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJObject__pureZjson_u443)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ, initOrderedTable__pureZjson_u457)(NI initialSize_p0);
N_LIB_PRIVATE N_NIMCALL(NI, len__docgen_u11865)(tyObject_Table__I1hAea2wVUrLyIxtQj9cheA t_p0);
static N_INLINE(void, X5BX5Deq___pureZjson_u2308)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* obj_p0, NimStringV2 key_p1, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* val_p2);
N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___pureZjson_u739)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ* t_p0, NimStringV2 key_p1, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* val_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, eqdup___pureZjson_u330)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___pureZjson_u2158)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, eqdup___system_u2697)(NimStringV2 src_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJArray__pureZjson_u506)(void);
N_LIB_PRIVATE N_NIMCALL(void, add__pureZjson_u672)(tySequence__fXWXs2NlFKREhy9cn6vokJw* x_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* y_p1);
N_LIB_PRIVATE N_NIMCALL(NI, len__pureZjson_u3428)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* n_p0);
N_LIB_PRIVATE N_NIMCALL(void, toUgly__pureZjson_u4731)(NimStringV2* result_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZjson_u260)(tySequence__fXWXs2NlFKREhy9cn6vokJw* dest_p0, tySequence__fXWXs2NlFKREhy9cn6vokJw src_p1);
static N_INLINE(NIM_BOOL, sameSeqPayload)(void* x_p0, void* y_p1);
N_LIB_PRIVATE N_NIMCALL(void, setLen__pureZjson_u279)(tySequence__fXWXs2NlFKREhy9cn6vokJw* s_p0, NI newlen_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZjson_u489)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ* dest_p0, tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ src_p1);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u486)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, addInt__stdZprivateZdigitsutils_u187)(NimStringV2* result_p0, NI64 x_p1);
static N_INLINE(void, addFloat__system_u4735)(NimStringV2* result_p0, NF x_p1);
N_LIB_PRIVATE N_NIMCALL(void, addFloatRoundtrip__system_u4740)(NimStringV2* result_p0, NF x_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___pureZjson_u2168)(NI n_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___jsgen_u8347)(NimStringV2* elements_p0, NI elements_p0Len_0);
N_LIB_PRIVATE N_NIMCALL(void, add__pureZjson_u662)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* father_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* child_p1);
N_LIB_PRIVATE N_NIMCALL(void, initFromJson__pureZjson_u5627)(NimStringV2* dst_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* jsonNode_p1, NimStringV2* jsonPath_p2);
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(NimStringV2, nsuFormatOpenArray)(NimStringV2 formatstr_p0, NimStringV2* a_p1, NI a_p1Len_0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___pureZjson_u5706)(tySet_tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA x_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___pureZjson_u23)(tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA e_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___system_u2688)(NimStringV2* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___system_u2700)(NimStringV2* dest_p0, NimStringV2 src_p1);
N_LIB_PRIVATE N_NIMCALL(void, toPretty__pureZjson_u4749)(NimStringV2* result_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p1, NI indent_p2, NIM_BOOL ml_p3, NIM_BOOL lstArr_p4, NI currIndent_p5);
N_LIB_PRIVATE N_NIMCALL(void, indent__pureZjson_u4689)(NimStringV2* s_p0, NI i_p1);
static N_INLINE(NimStringV2, spaces__pureZstrutils_u1139)(NI n_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuRepeatChar)(NIM_CHAR c_p0, NI count_p1);
N_LIB_PRIVATE N_NIMCALL(void, nl__pureZjson_u4697)(NimStringV2* s_p0, NIM_BOOL ml_p1);
N_LIB_PRIVATE N_NIMCALL(NI, newIndent__pureZjson_u4692)(NI curr_p0, NI indent_p1, NIM_BOOL ml_p2);
N_LIB_PRIVATE N_NIMCALL(void, initFromJson__pureZjson_u5631)(NIM_BOOL* dst_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* jsonNode_p1, NimStringV2* jsonPath_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA*, newFileStream__pureZstreams_u1097)(NimStringV2 filename_p0, tyEnum_FileMode__YkEVJbjDa9aPvYTBr8yiUWg mode_p1, NI bufSize_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, parseJson__pureZjson_u5579)(tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, NimStringV2 filename_p1, NIM_BOOL rawIntegers_p2, NIM_BOOL rawFloats_p3);
N_LIB_PRIVATE N_NIMCALL(void, open__pureZparsejson_u80)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* my_p0, tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* input_p1, NimStringV2 filename_p2, NIM_BOOL rawStringLiterals_p3);
N_LIB_PRIVATE N_NIMCALL(tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw, getTok__pureZparsejson_u626)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* my_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, parseJson__pureZjson_u5533)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* p_p0, NIM_BOOL rawIntegers_p1, NIM_BOOL rawFloats_p2, NI depth_p3);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJRawNumber__pureZjson_u429)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObjUninit)(NI size_p0, NI alignment_p1);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJInt__pureZjson_u432)(NI64 n_p0);
N_LIB_PRIVATE N_NIMCALL(NI64, nsuParseBiggestInt)(NimStringV2 s_p0);
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2);
static N_INLINE(Exception*, nimBorrowCurrentException)(void);
static N_INLINE(void, popCurrentException)(void);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___system_u3662)(Exception** dest_p0, Exception* src_p1, NIM_BOOL cyclic_p2);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJFloat__pureZjson_u435)(NF n_p0);
N_LIB_PRIVATE N_NIMCALL(NF, nsuParseFloat)(NimStringV2 s_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJBool__pureZjson_u438)(NIM_BOOL b_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJNull__pureZjson_u441)(void);
N_LIB_PRIVATE N_NOINLINE(void, raiseParseErr__pureZparsejson_u820)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* p_p0, NimStringV2 msg_p1);
N_LIB_PRIVATE N_NIMCALL(void, eat__pureZparsejson_u885)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* p_p0, tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw tok_p1);
static N_INLINE(void, close__pureZparsejson_u311)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* my_p0);
N_LIB_PRIVATE N_NIMCALL(void, close__pureZlexbase_u15)(tyObject_BaseLexer__ZspOFmN5MjfhmGOKIrGMRg* L_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZparsejson_u128)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* dest_p0);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZstreams_u980)(tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA* dest_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___docgen_u13726)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* o_p0);
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___docgen_u13733)(tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ o_p0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___packagesZdocutilsZrstidx_u13)(tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ e_p0);
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_2 = { 1 | NIM_STRLIT_FLAG, "\"" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_3 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_2};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_4 = { 2 | NIM_STRLIT_FLAG, "\\n" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_5 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_4};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_6 = { 2 | NIM_STRLIT_FLAG, "\\b" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_7 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_6};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_8 = { 2 | NIM_STRLIT_FLAG, "\\f" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_9 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_8};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_10 = { 2 | NIM_STRLIT_FLAG, "\\t" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_11 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_10};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_12 = { 6 | NIM_STRLIT_FLAG, "\\u000b" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_13 = {6, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_12};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_14 = { 2 | NIM_STRLIT_FLAG, "\\r" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_15 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_14};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_16 = { 2 | NIM_STRLIT_FLAG, "\\\"" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_17 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_16};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_18 = { 5 | NIM_STRLIT_FLAG, "\\u000" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_19 = {5, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_18};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_20 = { 4 | NIM_STRLIT_FLAG, "\\u00" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_21 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_20};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_22 = { 2 | NIM_STRLIT_FLAG, "\\\\" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_23 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_22};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_24 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_2};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_25 = { 1 | NIM_STRLIT_FLAG, "[" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_26 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_25};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_27 = { 1 | NIM_STRLIT_FLAG, "," };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_28 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_27};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_29 = { 1 | NIM_STRLIT_FLAG, "]" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_30 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_29};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_31 = { 1 | NIM_STRLIT_FLAG, "{" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_32 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_31};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_33 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_27};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_34 = { 1 | NIM_STRLIT_FLAG, ":" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_35 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_34};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_36 = { 1 | NIM_STRLIT_FLAG, "}" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_37 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_36};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_38 = { 4 | NIM_STRLIT_FLAG, "true" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_39 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_38};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_40 = { 5 | NIM_STRLIT_FLAG, "false" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_41 = {5, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_40};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_42 = { 4 | NIM_STRLIT_FLAG, "null" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_43 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_42};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_44 = { 7 | NIM_STRLIT_FLAG, "version" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_45 = {7, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_44};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_46 = { 7 | NIM_STRLIT_FLAG, "sources" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_47 = {7, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_46};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_48 = { 5 | NIM_STRLIT_FLAG, "names" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_49 = {5, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_48};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_50 = { 8 | NIM_STRLIT_FLAG, "mappings" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_51 = {8, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_50};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_52 = { 4 | NIM_STRLIT_FLAG, "file" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_53 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_52};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_54 = { 5 | NIM_STRLIT_FLAG, "JNull" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_55 = {5, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_54};
static const struct {
  NI cap; NIM_CHAR data[5+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_56 = { 5 | NIM_STRLIT_FLAG, "JBool" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_57 = {5, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_56};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_58 = { 4 | NIM_STRLIT_FLAG, "JInt" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_59 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_58};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_60 = { 6 | NIM_STRLIT_FLAG, "JFloat" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_61 = {6, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_60};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_62 = { 7 | NIM_STRLIT_FLAG, "JString" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_63 = {7, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_62};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_64 = { 7 | NIM_STRLIT_FLAG, "JObject" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_65 = {7, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_64};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_66 = { 6 | NIM_STRLIT_FLAG, "JArray" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_67 = {6, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_66};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_68 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_69 = {0, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_68};
static const struct {
  NI cap; NIM_CHAR data[0+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_70 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_71 = {0, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_70};
extern TNimTypeV2 NTIv2__jzGRfzBmxnPANjp71FNw5Q_;
static const struct {
  NI cap; NIM_CHAR data[15+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_72 = { 15 | NIM_STRLIT_FLAG, "key not found: " };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_73 = {15, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_72};
static const struct {
  NI cap; NIM_CHAR data[54+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_74 = { 54 | NIM_STRLIT_FLAG, "Incorrect JSON kind. Wanted \'$1\' in \'$2\' but got \'$3\'." };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_75 = {54, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_74};
extern TNimTypeV2 NTIv2__f7emiekcTJHxgTtsNnPypQ_;
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_76 = {0, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_70};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_77 = {0, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_70};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_78 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_31};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_79 = { 1 | NIM_STRLIT_FLAG, "\012" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_80 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_79};
static const struct {
  NI cap; NIM_CHAR data[1+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_81 = { 1 | NIM_STRLIT_FLAG, " " };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_82 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_81};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_83 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_27};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_84 = { 2 | NIM_STRLIT_FLAG, ": " };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_85 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_84};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_86 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_36};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_87 = { 2 | NIM_STRLIT_FLAG, "{}" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_88 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_87};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_89 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_38};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_90 = {5, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_40};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_91 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_25};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_92 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_27};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_93 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_29};
static const struct {
  NI cap; NIM_CHAR data[2+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_94 = { 2 | NIM_STRLIT_FLAG, "[]" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_95 = {2, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_94};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_96 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_42};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_97 = {0, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_70};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_98 = {15, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_72};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_99 = {54, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_74};
extern TNimTypeV2 NTIv2__vBePDvr8fj01uTfaJy9aD3Q_;
static const struct {
  NI cap; NIM_CHAR data[23+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_100 = { 23 | NIM_STRLIT_FLAG, "cannot read from file: " };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_101 = {23, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_100};
extern TNimTypeV2 NTIv2__izA0qNVok9bbh6yzMr1imlg_;
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_102 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_36};
static const struct {
  NI cap; NIM_CHAR data[21+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_103 = { 21 | NIM_STRLIT_FLAG, "string literal as key" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_104 = {21, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_103};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_105 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_29};
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_106 = {1, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_31};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_107 = { 4 | NIM_STRLIT_FLAG, "kind" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_108 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_107};
static const struct {
  NI cap; NIM_CHAR data[7+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_109 = { 7 | NIM_STRLIT_FLAG, "keyword" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_110 = {7, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_109};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_111 = { 4 | NIM_STRLIT_FLAG, "link" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_112 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_111};
static const struct {
  NI cap; NIM_CHAR data[9+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_113 = { 9 | NIM_STRLIT_FLAG, "linkTitle" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_114 = {9, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_113};
static const struct {
  NI cap; NIM_CHAR data[8+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_115 = { 8 | NIM_STRLIT_FLAG, "linkDesc" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_116 = {8, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_115};
static const struct {
  NI cap; NIM_CHAR data[4+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_117 = { 4 | NIM_STRLIT_FLAG, "line" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_118 = {4, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_117};
static const struct {
  NI cap; NIM_CHAR data[6+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_119 = { 6 | NIM_STRLIT_FLAG, "module" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_120 = {6, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_119};
static const struct {
  NI cap; NIM_CHAR data[3+1];
} TM__9b9bytt1stv9cZ8uqII7HFgew_121 = { 3 | NIM_STRLIT_FLAG, "aux" };
static const NimStringV2 TM__9b9bytt1stv9cZ8uqII7HFgew_122 = {3, (NimStrPayload*)&TM__9b9bytt1stv9cZ8uqII7HFgew_121};
extern NIM_BOOL nimInErrorMode__system_u4144;
extern Exception* currException__system_u3629;
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_: ;
}
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_BOOL*, nimErrorFlag)(void) {
	NIM_BOOL* result;
	result = (&nimInErrorMode__system_u4144);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, escapeJsonUnquoted__pureZjson_u4700)(NimStringV2 s_p0, NimStringV2* result_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		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 10:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_5);
				}
				break;
				case 8:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_7);
				}
				break;
				case 12:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_9);
				}
				break;
				case 9:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_11);
				}
				break;
				case 11:
				{
					prepareAdd((&(*result_p1)), 6);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_13);
				}
				break;
				case 13:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_15);
				}
				break;
				case 34:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_17);
				}
				break;
				case 0 ... 7:
				{
					NimStringV2 colontmpD_;
					NimStringV2 colontmpD__2;
					NimStringV2 T12_;
					colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
					colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
					T12_.len = 0; T12_.p = NIM_NIL;
					colontmpD_ = dollar___systemZdollars_u9(((NU8)(c_1)));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T12_ = rawNewString(colontmpD_.len + 5);
appendString((&T12_), TM__9b9bytt1stv9cZ8uqII7HFgew_19);
appendString((&T12_), colontmpD_);
					colontmpD__2 = T12_;
					prepareAdd((&(*result_p1)), colontmpD__2.len + 0);
appendString((&(*result_p1)), colontmpD__2);
					eqdestroy___system_u2691(colontmpD__2);
					eqdestroy___system_u2691(colontmpD_);
				}
				break;
				case 14 ... 31:
				{
					NimStringV2 colontmpD__3;
					NimStringV2 colontmpD__4;
					NimStringV2 T14_;
					colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
					colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
					T14_.len = 0; T14_.p = NIM_NIL;
					colontmpD__3 = toHex__pureZstrutils_u2114(((NU8)(c_1)), ((NI)2));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					T14_ = rawNewString(colontmpD__3.len + 4);
appendString((&T14_), TM__9b9bytt1stv9cZ8uqII7HFgew_21);
appendString((&T14_), colontmpD__3);
					colontmpD__4 = T14_;
					prepareAdd((&(*result_p1)), colontmpD__4.len + 0);
appendString((&(*result_p1)), colontmpD__4);
					eqdestroy___system_u2691(colontmpD__4);
					eqdestroy___system_u2691(colontmpD__3);
				}
				break;
				case 92:
				{
					prepareAdd((&(*result_p1)), 2);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_23);
				}
				break;
				default:
				{
					nimAddCharV1((&(*result_p1)), c_1);
				}
				break;
				}
				i_1 += ((NI)1);
			} LA3: ;
		}
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, escapeJson__pureZjson_u4721)(NimStringV2 s_p0, NimStringV2* result_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	prepareAdd((&(*result_p1)), 1);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_3);
	escapeJsonUnquoted__pureZjson_u4700(s_p0, result_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	prepareAdd((&(*result_p1)), 1);
appendString((&(*result_p1)), TM__9b9bytt1stv9cZ8uqII7HFgew_24);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, escapeJson__pureZjson_u4724)(NimStringV2 s_p0) {
	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)3) & (32 - 1))))));
	escapeJson__pureZjson_u4721(s_p0, (&result));
	if (NIM_UNLIKELY(*nimErr_)) 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(NIM_BOOL, nimDecRefIsLastDyn)(void* p_p0) {
	NIM_BOOL result;
	result = NIM_FALSE;
	{
		tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A* cell_1;
		NI T5_;
		if (!!((p_p0 == NIM_NIL))) goto LA3_;
		T5_ = (NI)0;
		T5_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
		cell_1 = ((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T5_));
		{
			if (!((NI)((*cell_1).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
			result = NIM_TRUE;
		}
		goto LA6_;
LA8_: ;
		{
			(*cell_1).rc = minuspercent___system_u805((*cell_1).rc, ((NI)16));
		}
LA6_: ;
		{
			if (!result) goto LA13_;
			{
				if (!(((NI)0) < (*cell_1).rootIdx)) goto LA17_;
				unregisterCycle__system_u3128(cell_1);
			}
LA17_: ;
		}
LA13_: ;
	}
LA3_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u257)(tySequence__fXWXs2NlFKREhy9cn6vokJw dest_p0) {
	NI colontmp_;
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T3_;
			T3_ = dest_p0.len;
			if (!(colontmp_ < T3_)) goto LA2;
			{
				NIM_BOOL T6_;
				T6_ = (NIM_BOOL)0;
				T6_ = nimDecRefIsLastDyn(dest_p0.p->data[colontmp_]);
				if (!T6_) goto LA7_;
				eqdestroy___pureZjson_u70((&(*dest_p0.p->data[colontmp_])));
				nimRawDispose(dest_p0.p->data[colontmp_], ((NI)8));
			}
LA7_: ;
			colontmp_ += ((NI)1);
		} LA2: ;
	}
	if (dest_p0.p && !(dest_p0.p->cap & NIM_STRLIT_FLAG)) {
 alignedDealloc(dest_p0.p, NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*));
}
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u70)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* dest_p0) {
	switch ((*dest_p0).kind) {
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4):
	{
		eqdestroy___system_u2691((*dest_p0)._kind_1.str);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2):
	{
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)3):
	{
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1):
	{
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0):
	{
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5):
	{
		eqdestroy___pureZjson_u94((*dest_p0)._kind_6.fields.data);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6):
	{
		eqdestroy___pureZjson_u257((*dest_p0)._kind_7.elems);
	}
	break;
	default: __builtin_unreachable();
	}
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZjson_u333)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** dest_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn((*dest_p0));
		if (!T3_) goto LA4_;
		eqdestroy___pureZjson_u70((&(*(*dest_p0))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0), ((NI)8));
	}
LA4_: ;
	(*dest_p0) = src_p1;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJArray__pureZjson_u506)(void) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6);
	(*T1_)._kind_7.elems.len = 0; (*T1_)._kind_7.elems.p = (tySequence__fXWXs2NlFKREhy9cn6vokJw_Content*) newSeqPayload(0, sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*));
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZjson_u324)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* dest_p0) {
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = nimDecRefIsLastDyn(dest_p0);
		if (!T3_) goto LA4_;
		eqdestroy___pureZjson_u70((&(*dest_p0)));
		nimRawDispose(dest_p0, ((NI)8));
	}
LA4_: ;
}
static N_INLINE(int, nimCmpMem)(void* a_p0, void* b_p1, NI size_p2) {
	int result;
	result = memcmp(a_p0, b_p1, ((size_t) (size_p2)));
	return result;
}
static N_INLINE(NIM_BOOL, equalMem__system_u1750)(void* a_p0, void* b_p1, NI size_p2) {
	NIM_BOOL result;
	int T1_;
	T1_ = (int)0;
	T1_ = nimCmpMem(a_p0, b_p1, size_p2);
	result = (T1_ == ((NI32)0));
	return result;
}
static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a_p0, NimStringV2 b_p1) {
	NIM_BOOL result;
	NI alen_1;
	NI blen_1;
{	result = NIM_FALSE;
	alen_1 = a_p0.len;
	blen_1 = b_p1.len;
	{
		if (!(alen_1 == blen_1)) goto LA3_;
		{
			if (!(alen_1 == ((NI)0))) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = equalMem__system_u1750(((void*) ((&a_p0.p->data[((NI)0)]))), ((void*) ((&b_p1.p->data[((NI)0)]))), (alen_1));
		goto BeforeRet_;
	}
LA3_: ;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NI, len__pureZjson_u2566)(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ t_p0) {
	NI result;
	result = t_p0.counter;
	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);
}
static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_u32)(NI hcode_p0) {
	NIM_BOOL result;
	result = !((hcode_p0 == ((NI)0)));
	return result;
}
static N_INLINE(NI, pluspercent___system_u785)(NI x_p0, NI y_p1) {
	NI result;
	result = ((NI) ((NU)((NU32)(((NU) (x_p0))) + (NU32)(((NU) (y_p1))))));
	return result;
}
static N_INLINE(void, nimIncRef)(void* p_p0) {
	NI T1_;
	NI T2_;
	T1_ = (NI)0;
	T1_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
	T2_ = (NI)0;
	T2_ = minuspercent___system_u805(((NI) (ptrdiff_t) (p_p0)), ((NI)8));
	(*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T1_))).rc = pluspercent___system_u785((*((tyObject_RefHeader__GDnGTjNyvwISJbkIvAst3A*) (T2_))).rc, ((NI)16));
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZjson_u327)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** dest_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* src_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		if (!src_p1) goto LA3_;
		nimIncRef(src_p1);
	}
LA3_: ;
	{
		NIM_BOOL T7_;
		T7_ = (NIM_BOOL)0;
		T7_ = nimDecRefIsLastDyn((*dest_p0));
		if (!T7_) goto LA8_;
		eqdestroy___pureZjson_u70((&(*(*dest_p0))));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		nimRawDispose((*dest_p0), ((NI)8));
	}
LA8_: ;
	(*dest_p0) = src_p1;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZjson_u2433)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* a_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* b_p1) {
	NIM_BOOL result;
NIM_BOOL oldNimErrFin29_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	{
		if (!(a_p0 == 0)) goto LA3_;
		{
			if (!(b_p1 == 0)) goto LA7_;
			result = NIM_TRUE;
			goto BeforeRet_;
		}
LA7_: ;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		NIM_BOOL T10_;
		T10_ = (NIM_BOOL)0;
		T10_ = (b_p1 == 0);
		if (T10_) goto LA11_;
		T10_ = !(((*a_p0).kind == (*b_p1).kind));
LA11_: ;
		if (!T10_) goto LA12_;
		result = NIM_FALSE;
		goto BeforeRet_;
	}
	goto LA1_;
LA12_: ;
	{
		switch ((*a_p0).kind) {
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4):
		{
			result = eqStrings((*a_p0)._kind_1.str, (*b_p1)._kind_1.str);
		}
		break;
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2):
		{
			result = ((*a_p0)._kind_2.num == (*b_p1)._kind_2.num);
		}
		break;
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)3):
		{
			result = ((*a_p0)._kind_3.fnum == (*b_p1)._kind_3.fnum);
		}
		break;
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1):
		{
			result = ((*a_p0)._kind_4.bval == (*b_p1)._kind_4.bval);
		}
		break;
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0):
		{
			result = NIM_TRUE;
		}
		break;
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6):
		{
			result = eqeq___pureZjson_u2450((*a_p0)._kind_7.elems, (*b_p1)._kind_7.elems);
		}
		break;
		case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5):
		{
			{
				NI T24_;
				NI T25_;
				T24_ = (NI)0;
				T24_ = len__pureZjson_u2566((*a_p0)._kind_6.fields);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				T25_ = (NI)0;
				T25_ = len__pureZjson_u2566((*b_p1)._kind_6.fields);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				if (!!((T24_ == T25_))) goto LA26_;
				result = NIM_FALSE;
				goto BeforeRet_;
			}
LA26_: ;
			{
				NimStringV2 key_1;
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* val_1;
				tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ colontmp_;
				NI L_1;
				key_1.len = 0; key_1.p = NIM_NIL;
				val_1 = NIM_NIL;
				nimZeroMem((void*)(&colontmp_), sizeof(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ));
				colontmp_ = (*a_p0)._kind_6.fields;
				L_1 = len__pureZjson_u2566(colontmp_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA29_;
				{
					NI h_1;
					if (!(((NI)0) < colontmp_.counter)) goto LA32_;
					h_1 = colontmp_.first;
					{
						while (1) {
							NI nxt_1;
							if (!(((NI)0) <= h_1)) goto LA35;
							nxt_1 = colontmp_.data.p->data[h_1].Field1;
							{
								NIM_BOOL T38_;
								T38_ = (NIM_BOOL)0;
								T38_ = isFilled__pureZcollectionsZtables_u32(colontmp_.data.p->data[h_1].Field0);
								if (NIM_UNLIKELY(*nimErr_)) goto LA29_;
								if (!T38_) goto LA39_;
								eqcopy___system_u2694((&key_1), colontmp_.data.p->data[h_1].Field2);
								eqcopy___pureZjson_u327(&val_1, colontmp_.data.p->data[h_1].Field3);
								if (NIM_UNLIKELY(*nimErr_)) goto LA29_;
								{
									NIM_BOOL T43_;
									T43_ = (NIM_BOOL)0;
									T43_ = hasKey__pureZjson_u2974((*b_p1)._kind_6.fields, key_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA29_;
									if (!!(T43_)) goto LA44_;
									result = NIM_FALSE;
									eqdestroy___pureZjson_u324(val_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___system_u2691(key_1);
									goto BeforeRet_;
								}
LA44_: ;
								{
									tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** T48_;
									NIM_BOOL T49_;
									T48_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g**)0;
									T48_ = X5BX5D___pureZjson_u3048((&(*b_p1)._kind_6.fields), key_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA29_;
									T49_ = (NIM_BOOL)0;
									T49_ = eqeq___pureZjson_u2433((*T48_), val_1);
									if (NIM_UNLIKELY(*nimErr_)) goto LA29_;
									if (!!(T49_)) goto LA50_;
									result = NIM_FALSE;
									eqdestroy___pureZjson_u324(val_1);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
									eqdestroy___system_u2691(key_1);
									goto BeforeRet_;
								}
LA50_: ;
							}
LA39_: ;
							h_1 = nxt_1;
						} LA35: ;
					}
				}
LA32_: ;
				{
					LA29_:;
				}
				{
					oldNimErrFin29_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___pureZjson_u324(val_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___system_u2691(key_1);
					*nimErr_ = oldNimErrFin29_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			}
			result = NIM_TRUE;
		}
		break;
		default: __builtin_unreachable();
		}
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJObject__pureZjson_u443)(void) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5);
	(*T1_)._kind_6.fields = initOrderedTable__pureZjson_u457(((NI)2));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = T1_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqwasMoved___pureZjson_u321)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** dest_p0) {
	(*dest_p0) = 0;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, eqdup___pureZjson_u330)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* src_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	result = src_p0;
	{
		if (!src_p0) goto LA3_;
		nimIncRef(src_p0);
	}
LA3_: ;
	return result;
}
static N_INLINE(void, X5BX5Deq___pureZjson_u2308)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* obj_p0, NimStringV2 key_p1, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* val_p2) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = eqdup___pureZjson_u330(val_p2);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	X5BX5Deq___pureZjson_u739((&(*obj_p0)._kind_6.fields), key_p1, colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___pureZjson_u2158)(NimStringV2 s_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	NimStringV2 colontmpD_;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4);
	colontmpD_ = eqdup___system_u2697(s_p0);
	(*T1_)._kind_1.str = colontmpD_;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___docgen_u11810)(tyObject_Table__I1hAea2wVUrLyIxtQj9cheA table_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = newJObject__pureZjson_u443();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringV2 k_1;
		NimStringV2 v_1;
		NI L_1;
		k_1.len = 0; k_1.p = NIM_NIL;
		v_1.len = 0; v_1.p = NIM_NIL;
		L_1 = len__docgen_u11865(table_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		{
			NI h_1;
			NI colontmp_;
			NI T3_;
			NI res_1;
			h_1 = (NI)0;
			colontmp_ = (NI)0;
			T3_ = (table_p0.data.len-1);
			colontmp_ = T3_;
			res_1 = ((NI)0);
			{
				while (1) {
					if (!(res_1 <= colontmp_)) goto LA5;
					h_1 = ((NI) (res_1));
					{
						NIM_BOOL T8_;
						tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
						T8_ = (NIM_BOOL)0;
						T8_ = isFilled__pureZcollectionsZtables_u32(table_p0.data.p->data[h_1].Field0);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						if (!T8_) goto LA9_;
						colontmpD_ = NIM_NIL;
						eqcopy___system_u2694((&k_1), table_p0.data.p->data[h_1].Field1);
						eqcopy___system_u2694((&v_1), table_p0.data.p->data[h_1].Field2);
						colontmpD_ = percent___pureZjson_u2158(v_1);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						X5BX5Deq___pureZjson_u2308(result, k_1, colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						eqdestroy___pureZjson_u324(colontmpD_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					}
LA9_: ;
					res_1 += ((NI)1);
				} LA5: ;
			}
		}
		eqdestroy___system_u2691(v_1);
		eqdestroy___system_u2691(k_1);
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___pureZjson_u2187)(tyTuple__M7ImznM2hk9a9beBDTxcwGeg* keyVals_p0, NI keyVals_p0Len_0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	{
		if (!(keyVals_p0Len_0 == ((NI)0))) goto LA3_;
		result = newJArray__pureZjson_u506();
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA3_: ;
	result = newJObject__pureZjson_u443();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringV2* key_1;
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** val_1;
		NI i_1;
		key_1 = (NimStringV2*)0;
		val_1 = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g**)0;
		i_1 = ((NI)0);
		{
			while (1) {
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
				if (!(i_1 < keyVals_p0Len_0)) goto LA7;
				key_1 = (&keyVals_p0[i_1].Field0);
				val_1 = &keyVals_p0[i_1].Field1;
				colontmpD_ = eqdup___pureZjson_u330((*val_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				X5BX5Deq___pureZjson_u739((&(*result)._kind_6.fields), (*key_1), colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
			} LA7: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___pureZjson_u2168)(NI n_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2);
	(*T1_)._kind_2.num = ((NI64) (n_p0));
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, add__pureZjson_u662)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* father_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* child_p1) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_ = eqdup___pureZjson_u330(child_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	add__pureZjson_u672((&(*father_p0)._kind_7.elems), colontmpD_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, len__pureZjson_u3428)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* n_p0) {
	NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NI)0;
	switch ((*n_p0).kind) {
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6):
	{
		NI T2_;
		T2_ = (*n_p0)._kind_7.elems.len;
		result = T2_;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5):
	{
		result = len__pureZjson_u2566((*n_p0)._kind_6.fields);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default:
	{
		result = ((NI)0);
	}
	break;
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NIM_BOOL, sameSeqPayload)(void* x_p0, void* y_p1) {
	NIM_BOOL result;
	result = ((*((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (x_p0))).p == (*((tyObject_NimRawSeq__Tvl1urqmI1tXqzkHPbWVJQ*) (y_p1))).p);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZjson_u260)(tySequence__fXWXs2NlFKREhy9cn6vokJw* dest_p0, tySequence__fXWXs2NlFKREhy9cn6vokJw src_p1) {
	NI T6_;
	NI colontmp_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = sameSeqPayload(dest_p0, (&src_p1));
		if (!T3_) goto LA4_;
		goto BeforeRet_;
	}
LA4_: ;
	T6_ = src_p1.len;
	setLen__pureZjson_u279((&(*dest_p0)), T6_);
	colontmp_ = ((NI)0);
	{
		while (1) {
			NI T9_;
			T9_ = (*dest_p0).len;
			if (!(colontmp_ < T9_)) goto LA8;
			{
				if (!src_p1.p->data[colontmp_]) goto LA12_;
				nimIncRef(src_p1.p->data[colontmp_]);
			}
LA12_: ;
			{
				NIM_BOOL T16_;
				T16_ = (NIM_BOOL)0;
				T16_ = nimDecRefIsLastDyn((*dest_p0).p->data[colontmp_]);
				if (!T16_) goto LA17_;
				eqdestroy___pureZjson_u70((&(*(*dest_p0).p->data[colontmp_])));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				nimRawDispose((*dest_p0).p->data[colontmp_], ((NI)8));
			}
LA17_: ;
			(*dest_p0).p->data[colontmp_] = src_p1.p->data[colontmp_];
			colontmp_ += ((NI)1);
		} LA8: ;
	}
	}BeforeRet_: ;
}
static N_INLINE(void, addFloat__system_u4735)(NimStringV2* result_p0, NF x_p1) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	addFloatRoundtrip__system_u4740(result_p0, x_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, toUgly__pureZjson_u4731)(NimStringV2* result_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p1) {
	NIM_BOOL comma_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	comma_1 = NIM_FALSE;
	switch ((*node_p1).kind) {
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6):
	{
		prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_26);
		{
			tySequence__fXWXs2NlFKREhy9cn6vokJw colontmp_;
			tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g** child_1;
			NI i_1;
			NI L_1;
			NI T3_;
			colontmp_.len = 0; colontmp_.p = NIM_NIL;
			child_1 = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g**)0;
			eqcopy___pureZjson_u260((&colontmp_), (*node_p1)._kind_7.elems);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_1 = ((NI)0);
			T3_ = colontmp_.len;
			L_1 = T3_;
			{
				while (1) {
					if (!(i_1 < L_1)) goto LA5;
					child_1 = &colontmp_.p->data[i_1];
					{
						if (!comma_1) goto LA8_;
						prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_28);
					}
					goto LA6_;
LA8_: ;
					{
						comma_1 = NIM_TRUE;
					}
LA6_: ;
					toUgly__pureZjson_u4731(result_p0, (*child_1));
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					i_1 += ((NI)1);
				} LA5: ;
			}
			eqdestroy___pureZjson_u257(colontmp_);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_30);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5):
	{
		prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_32);
		{
			NimStringV2 key_1;
			tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* value_1;
			tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ colontmp__2;
			NI L_2;
			key_1.len = 0; key_1.p = NIM_NIL;
			value_1 = NIM_NIL;
			nimZeroMem((void*)(&colontmp__2), sizeof(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ));
			eqcopy___pureZjson_u489((&colontmp__2), (*node_p1)._kind_6.fields);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			L_2 = len__pureZjson_u2566(colontmp__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI h_1;
				if (!(((NI)0) < colontmp__2.counter)) goto LA15_;
				h_1 = colontmp__2.first;
				{
					while (1) {
						NI nxt_1;
						if (!(((NI)0) <= h_1)) goto LA18;
						nxt_1 = colontmp__2.data.p->data[h_1].Field1;
						{
							NIM_BOOL T21_;
							T21_ = (NIM_BOOL)0;
							T21_ = isFilled__pureZcollectionsZtables_u32(colontmp__2.data.p->data[h_1].Field0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							if (!T21_) goto LA22_;
							eqcopy___system_u2694((&key_1), colontmp__2.data.p->data[h_1].Field2);
							eqcopy___pureZjson_u327(&value_1, colontmp__2.data.p->data[h_1].Field3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							{
								if (!comma_1) goto LA26_;
								prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_33);
							}
							goto LA24_;
LA26_: ;
							{
								comma_1 = NIM_TRUE;
							}
LA24_: ;
							escapeJson__pureZjson_u4721(key_1, result_p0);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_35);
							toUgly__pureZjson_u4731(result_p0, value_1);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
LA22_: ;
						h_1 = nxt_1;
					} LA18: ;
				}
			}
LA15_: ;
			eqdestroy___pureZjson_u486(colontmp__2);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___pureZjson_u324(value_1);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			eqdestroy___system_u2691(key_1);
		}
		prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_37);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4):
	{
		{
			if (!(*node_p1).isUnquoted) goto LA32_;
			prepareAdd((&(*result_p0)), (*node_p1)._kind_1.str.len + 0);
appendString((&(*result_p0)), (*node_p1)._kind_1.str);
		}
		goto LA30_;
LA32_: ;
		{
			escapeJson__pureZjson_u4721((*node_p1)._kind_1.str, result_p0);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA30_: ;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2):
	{
		addInt__stdZprivateZdigitsutils_u187(result_p0, (*node_p1)._kind_2.num);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)3):
	{
		addFloat__system_u4735(result_p0, (*node_p1)._kind_3.fnum);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1):
	{
		NimStringV2 colontmpD_;
		NimStringV2 colontmpD__2;
		NimStringV2 T38_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		T38_.len = 0; T38_.p = NIM_NIL;
		{
			if (!(*node_p1)._kind_4.bval) goto LA41_;
			colontmpD_ = TM__9b9bytt1stv9cZ8uqII7HFgew_39;
			T38_ = colontmpD_;
		}
		goto LA39_;
LA41_: ;
		{
			colontmpD__2 = TM__9b9bytt1stv9cZ8uqII7HFgew_41;
			T38_ = colontmpD__2;
		}
LA39_: ;
		prepareAdd((&(*result_p0)), T38_.len + 0);
appendString((&(*result_p0)), T38_);
		eqdestroy___system_u2691(colontmpD__2);
		eqdestroy___system_u2691(colontmpD_);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0):
	{
		prepareAdd((&(*result_p0)), 4);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_43);
	}
	break;
	default: __builtin_unreachable();
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___pureZjson_u4831)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p0) {
	NimStringV2 result;
	NI T1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	T1_ = (NI)0;
	T1_ = len__pureZjson_u3428(node_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	result = rawNewString(((NI)((NU32)(T1_) << (NU32)(((NI)1) & (32 - 1)))));
	toUgly__pureZjson_u4731((&result), node_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___jsgen_u8347)(NimStringV2* elements_p0, NI elements_p0Len_0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = newJArray__pureZjson_u506();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		NimStringV2* elem_1;
		NI i_1;
		elem_1 = (NimStringV2*)0;
		i_1 = ((NI)0);
		{
			while (1) {
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
				if (!(i_1 < elements_p0Len_0)) goto LA3;
				colontmpD_ = NIM_NIL;
				elem_1 = (&elements_p0[i_1]);
				colontmpD_ = percent___pureZjson_u2158((*elem_1));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__pureZjson_u662(result, colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
				eqdestroy___pureZjson_u324(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___jsgen_u8340)(tyObject_SourceMap__WQjtp9aU0iILpTcFCDzWLTA* o_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = newJObject__pureZjson_u443();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
		if (!NIM_TRUE) goto LA3_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = percent___pureZjson_u2168((*o_p0).version);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_45, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__2;
		if (!NIM_TRUE) goto LA7_;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = percent___jsgen_u8347((((*o_p0).sources).p) ? ((*o_p0).sources.p->data) : NIM_NIL, (*o_p0).sources.len);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_47, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA7_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__3;
		if (!NIM_TRUE) goto LA11_;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = percent___jsgen_u8347((((*o_p0).names).p) ? ((*o_p0).names.p->data) : NIM_NIL, (*o_p0).names.len);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_49, colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA11_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__4;
		if (!NIM_TRUE) goto LA15_;
		colontmpD__4 = NIM_NIL;
		colontmpD__4 = percent___pureZjson_u2158((*o_p0).mappings);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_51, colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA15_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__5;
		if (!NIM_TRUE) goto LA19_;
		colontmpD__5 = NIM_NIL;
		colontmpD__5 = percent___pureZjson_u2158((*o_p0).file);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_53, colontmpD__5);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__5);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA19_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___pureZjson_u23)(tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA e_p0) {
	NimStringV2 result;
	switch (e_p0) {
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_55;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_57;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_59;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)3):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_61;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_63;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_65;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6):
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_67;
	}
	break;
	default:
	{
		result = TM__9b9bytt1stv9cZ8uqII7HFgew_69;
	}
	break;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasKey__pureZjson_u3583)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p0, NimStringV2 key_p1) {
	NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	result = hasKey__pureZjson_u2974((*node_p0)._kind_6.fields, key_p1);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initFromJson__pureZjson_u5627)(NimStringV2* dst_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* jsonNode_p1, NimStringV2* jsonPath_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q* T6_;
		NimStringV2 T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqeq___pureZjson_u2433(jsonNode_p1, ((tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = (tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q*) nimNewObj(sizeof(tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q), NIM_ALIGNOF(tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q));
		(*T6_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__jzGRfzBmxnPANjp71FNw5Q_);
		(*T6_).Sup.Sup.Sup.name = "KeyError";
		T7_.len = 0; T7_.p = NIM_NIL;
		T7_ = rawNewString((*jsonPath_p2).len + 15);
appendString((&T7_), TM__9b9bytt1stv9cZ8uqII7HFgew_73);
appendString((&T7_), (*jsonPath_p2));
		(*T6_).Sup.Sup.Sup.message = T7_;
		(*T6_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T6_, "KeyError", "initFromJson", "json.nim", 1065);
goto BeforeRet_;
	}
	goto LA1_;
LA4_: ;
	{
		NimStringV2 msgX60gensym96__1;
		NimStringV2 colontmpD_;
		NimStringV2 colontmpD__2;
		tyArray__dyW7vpmfeTYw8kX3EXuaJA T12_;
		tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ* T13_;
		NimStringV2 blitTmp_1;
		if (!!(((*jsonNode_p1).kind == ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4) || (*jsonNode_p1).kind == ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0)))) goto LA9_;
		msgX60gensym96__1.len = 0; msgX60gensym96__1.p = NIM_NIL;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		colontmpD_ = dollar___pureZjson_u5706(17);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		T12_[0] = colontmpD_;
		T12_[1] = (*jsonPath_p2);
		colontmpD__2 = dollar___pureZjson_u23((*jsonNode_p1).kind);
		T12_[2] = colontmpD__2;
		msgX60gensym96__1 = nsuFormatOpenArray(TM__9b9bytt1stv9cZ8uqII7HFgew_75, T12_, 3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		T13_ = NIM_NIL;
		T13_ = (tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ*) nimNewObj(sizeof(tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ), NIM_ALIGNOF(tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ));
		(*T13_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__f7emiekcTJHxgTtsNnPypQ_);
		(*T13_).Sup.Sup.Sup.name = "JsonKindError";
		blitTmp_1 = msgX60gensym96__1;
		eqwasMoved___system_u2688((&msgX60gensym96__1));
		(*T13_).Sup.Sup.Sup.message = blitTmp_1;
		(*T13_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T13_, "JsonKindError", "initFromJson", "json.nim", 1072);
goto LA11_;
		{
			LA11_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(colontmpD_);
			eqdestroy___system_u2691(msgX60gensym96__1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA9_: ;
LA1_: ;
	{
		if (!((*jsonNode_p1).kind == ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0))) goto LA18_;
		eqsink___system_u2700((&(*dst_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_76);
	}
	goto LA16_;
LA18_: ;
	{
		eqcopy___system_u2694((&(*dst_p0)), (*jsonNode_p1)._kind_1.str);
	}
LA16_: ;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, to__stdZjsonutils_u591)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p0) {
	NimStringV2 result;
	NimStringV2 jsonPath_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	jsonPath_1.len = 0; jsonPath_1.p = NIM_NIL;
	jsonPath_1 = TM__9b9bytt1stv9cZ8uqII7HFgew_71;
	result.len = 0; result.p = NIM_NIL;
	initFromJson__pureZjson_u5627((&result), node_p0, (&jsonPath_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(jsonPath_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
static N_INLINE(NimStringV2, spaces__pureZstrutils_u1139)(NI n_p0) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	result = nsuRepeatChar(32, n_p0);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, indent__pureZjson_u4689)(NimStringV2* s_p0, NI i_p1) {
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD_ = spaces__pureZstrutils_u1139((i_p1));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	prepareAdd((&(*s_p0)), colontmpD_.len + 0);
appendString((&(*s_p0)), colontmpD_);
	eqdestroy___system_u2691(colontmpD_);
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, nl__pureZjson_u4697)(NimStringV2* s_p0, NIM_BOOL ml_p1) {
	NimStringV2 T1_;
	T1_.len = 0; T1_.p = NIM_NIL;
	{
		if (!ml_p1) goto LA4_;
		T1_ = TM__9b9bytt1stv9cZ8uqII7HFgew_80;
	}
	goto LA2_;
LA4_: ;
	{
		T1_ = TM__9b9bytt1stv9cZ8uqII7HFgew_82;
	}
LA2_: ;
	prepareAdd((&(*s_p0)), T1_.len + 0);
appendString((&(*s_p0)), T1_);
}
N_LIB_PRIVATE N_NIMCALL(NI, newIndent__pureZjson_u4692)(NI curr_p0, NI indent_p1, NIM_BOOL ml_p2) {
	NI result;
{	{
		if (!ml_p2) goto LA3_;
		result = (NI)(curr_p0 + indent_p1);
		goto BeforeRet_;
	}
	goto LA1_;
LA3_: ;
	{
		result = indent_p1;
		goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, toPretty__pureZjson_u4749)(NimStringV2* result_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p1, NI indent_p2, NIM_BOOL ml_p3, NIM_BOOL lstArr_p4, NI currIndent_p5) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	switch ((*node_p1).kind) {
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)5):
	{
		{
			if (!lstArr_p4) goto LA4_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA4_: ;
		{
			NI T8_;
			NI i_1;
			T8_ = (NI)0;
			T8_ = len__pureZjson_u2566((*node_p1)._kind_6.fields);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			if (!(((NI)0) < T8_)) goto LA9_;
			prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_78);
			nl__pureZjson_u4697(result_p0, ml_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			i_1 = ((NI)0);
			{
				NimStringV2 key_1;
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* val_1;
				tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ colontmp_;
				NI L_1;
				key_1.len = 0; key_1.p = NIM_NIL;
				val_1 = NIM_NIL;
				nimZeroMem((void*)(&colontmp_), sizeof(tyObject_OrderedTable__ASIVNBCKpz8qGZwzYCCBFQ));
				eqcopy___pureZjson_u489((&colontmp_), (*node_p1)._kind_6.fields);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				L_1 = len__pureZjson_u2566(colontmp_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				{
					NI h_1;
					if (!(((NI)0) < colontmp_.counter)) goto LA14_;
					h_1 = colontmp_.first;
					{
						while (1) {
							NI nxt_1;
							if (!(((NI)0) <= h_1)) goto LA17;
							nxt_1 = colontmp_.data.p->data[h_1].Field1;
							{
								NIM_BOOL T20_;
								NI T27_;
								NI T28_;
								T20_ = (NIM_BOOL)0;
								T20_ = isFilled__pureZcollectionsZtables_u32(colontmp_.data.p->data[h_1].Field0);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								if (!T20_) goto LA21_;
								eqcopy___system_u2694((&key_1), colontmp_.data.p->data[h_1].Field2);
								eqcopy___pureZjson_u327(&val_1, colontmp_.data.p->data[h_1].Field3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								{
									if (!(((NI)0) < i_1)) goto LA25_;
									prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_83);
									nl__pureZjson_u4697(result_p0, ml_p3);
									if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								}
LA25_: ;
								i_1 += ((NI)1);
								T27_ = (NI)0;
								T27_ = newIndent__pureZjson_u4692(currIndent_p5, indent_p2, ml_p3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								indent__pureZjson_u4689(result_p0, T27_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								escapeJson__pureZjson_u4721(key_1, result_p0);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								prepareAdd((&(*result_p0)), 2);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_85);
								T28_ = (NI)0;
								T28_ = newIndent__pureZjson_u4692(currIndent_p5, indent_p2, ml_p3);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
								toPretty__pureZjson_u4749(result_p0, val_1, indent_p2, ml_p3, NIM_FALSE, T28_);
								if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
							}
LA21_: ;
							h_1 = nxt_1;
						} LA17: ;
					}
				}
LA14_: ;
				eqdestroy___pureZjson_u486(colontmp_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___pureZjson_u324(val_1);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				eqdestroy___system_u2691(key_1);
			}
			nl__pureZjson_u4697(result_p0, ml_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_86);
		}
		goto LA6_;
LA9_: ;
		{
			prepareAdd((&(*result_p0)), 2);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_88);
		}
LA6_: ;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4):
	{
		{
			if (!lstArr_p4) goto LA33_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA33_: ;
		toUgly__pureZjson_u4731(result_p0, node_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2):
	{
		{
			if (!lstArr_p4) goto LA38_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA38_: ;
		addInt__stdZprivateZdigitsutils_u187(result_p0, (*node_p1)._kind_2.num);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)3):
	{
		{
			if (!lstArr_p4) goto LA43_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA43_: ;
		addFloat__system_u4735(result_p0, (*node_p1)._kind_3.fnum);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1):
	{
		NimStringV2 colontmpD_;
		NimStringV2 colontmpD__2;
		NimStringV2 T50_;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		{
			if (!lstArr_p4) goto LA48_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA48_: ;
		T50_.len = 0; T50_.p = NIM_NIL;
		{
			if (!(*node_p1)._kind_4.bval) goto LA53_;
			colontmpD_ = TM__9b9bytt1stv9cZ8uqII7HFgew_89;
			T50_ = colontmpD_;
		}
		goto LA51_;
LA53_: ;
		{
			colontmpD__2 = TM__9b9bytt1stv9cZ8uqII7HFgew_90;
			T50_ = colontmpD__2;
		}
LA51_: ;
		prepareAdd((&(*result_p0)), T50_.len + 0);
appendString((&(*result_p0)), T50_);
		eqdestroy___system_u2691(colontmpD__2);
		eqdestroy___system_u2691(colontmpD_);
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6):
	{
		{
			if (!lstArr_p4) goto LA59_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA59_: ;
		{
			NI T63_;
			T63_ = (*node_p1)._kind_7.elems.len;
			if (!!((T63_ == ((NI)0)))) goto LA64_;
			prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_91);
			nl__pureZjson_u4697(result_p0, ml_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			{
				NI i_2;
				NI colontmp__2;
				NI T67_;
				NI res_1;
				i_2 = (NI)0;
				colontmp__2 = (NI)0;
				T67_ = (*node_p1)._kind_7.elems.len;
				colontmp__2 = (NI)(T67_ - ((NI)1));
				res_1 = ((NI)0);
				{
					while (1) {
						NI T74_;
						if (!(res_1 <= colontmp__2)) goto LA69;
						i_2 = ((NI) (res_1));
						{
							if (!(((NI)0) < i_2)) goto LA72_;
							prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_92);
							nl__pureZjson_u4697(result_p0, ml_p3);
							if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						}
LA72_: ;
						T74_ = (NI)0;
						T74_ = newIndent__pureZjson_u4692(currIndent_p5, indent_p2, ml_p3);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						toPretty__pureZjson_u4749(result_p0, (*node_p1)._kind_7.elems.p->data[i_2], indent_p2, ml_p3, NIM_TRUE, T74_);
						if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
						res_1 += ((NI)1);
					} LA69: ;
				}
			}
			nl__pureZjson_u4697(result_p0, ml_p3);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			prepareAdd((&(*result_p0)), 1);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_93);
		}
		goto LA61_;
LA64_: ;
		{
			prepareAdd((&(*result_p0)), 2);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_95);
		}
LA61_: ;
	}
	break;
	case ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0):
	{
		{
			if (!lstArr_p4) goto LA79_;
			indent__pureZjson_u4689(result_p0, currIndent_p5);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA79_: ;
		prepareAdd((&(*result_p0)), 4);
appendString((&(*result_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_96);
	}
	break;
	default: __builtin_unreachable();
	}
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, pretty__pureZjson_u4827)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p0, NI indent_p1) {
	NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = TM__9b9bytt1stv9cZ8uqII7HFgew_77;
	toPretty__pureZjson_u4749((&result), node_p0, indent_p1, NIM_TRUE, NIM_FALSE, ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tySequence__fXWXs2NlFKREhy9cn6vokJw, getElems__pureZjson_u647)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* n_p0, tySequence__fXWXs2NlFKREhy9cn6vokJw default_p1) {
	tySequence__fXWXs2NlFKREhy9cn6vokJw result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result.len = 0; result.p = NIM_NIL;
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = (n_p0 == 0);
		if (T3_) goto LA4_;
		T3_ = !(((*n_p0).kind == ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)6)));
LA4_: ;
		if (!T3_) goto LA5_;
		eqcopy___pureZjson_u260((&result), default_p1);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
	goto LA1_;
LA5_: ;
	{
		eqcopy___pureZjson_u260((&result), (*n_p0)._kind_7.elems);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		goto BeforeRet_;
	}
LA1_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initFromJson__pureZjson_u5631)(NIM_BOOL* dst_p0, tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* jsonNode_p1, NimStringV2* jsonPath_p2) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	{
		NIM_BOOL T3_;
		tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q* T6_;
		NimStringV2 T7_;
		T3_ = (NIM_BOOL)0;
		T3_ = eqeq___pureZjson_u2433(jsonNode_p1, ((tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) NIM_NIL));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		if (!T3_) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = (tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q*) nimNewObj(sizeof(tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q), NIM_ALIGNOF(tyObject_KeyError__jzGRfzBmxnPANjp71FNw5Q));
		(*T6_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__jzGRfzBmxnPANjp71FNw5Q_);
		(*T6_).Sup.Sup.Sup.name = "KeyError";
		T7_.len = 0; T7_.p = NIM_NIL;
		T7_ = rawNewString((*jsonPath_p2).len + 15);
appendString((&T7_), TM__9b9bytt1stv9cZ8uqII7HFgew_98);
appendString((&T7_), (*jsonPath_p2));
		(*T6_).Sup.Sup.Sup.message = T7_;
		(*T6_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T6_, "KeyError", "initFromJson", "json.nim", 1065);
goto BeforeRet_;
	}
	goto LA1_;
LA4_: ;
	{
		NimStringV2 msgX60gensym100__1;
		NimStringV2 colontmpD_;
		NimStringV2 colontmpD__2;
		tyArray__dyW7vpmfeTYw8kX3EXuaJA T12_;
		tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ* T13_;
		NimStringV2 blitTmp_1;
		if (!!(((*jsonNode_p1).kind == ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1)))) goto LA9_;
		msgX60gensym100__1.len = 0; msgX60gensym100__1.p = NIM_NIL;
		colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
		colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
		colontmpD_ = dollar___pureZjson_u5706(2);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		T12_[0] = colontmpD_;
		T12_[1] = (*jsonPath_p2);
		colontmpD__2 = dollar___pureZjson_u23((*jsonNode_p1).kind);
		T12_[2] = colontmpD__2;
		msgX60gensym100__1 = nsuFormatOpenArray(TM__9b9bytt1stv9cZ8uqII7HFgew_99, T12_, 3);
		if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
		T13_ = NIM_NIL;
		T13_ = (tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ*) nimNewObj(sizeof(tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ), NIM_ALIGNOF(tyObject_JsonKindError__f7emiekcTJHxgTtsNnPypQ));
		(*T13_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__f7emiekcTJHxgTtsNnPypQ_);
		(*T13_).Sup.Sup.Sup.name = "JsonKindError";
		blitTmp_1 = msgX60gensym100__1;
		eqwasMoved___system_u2688((&msgX60gensym100__1));
		(*T13_).Sup.Sup.Sup.message = blitTmp_1;
		(*T13_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T13_, "JsonKindError", "initFromJson", "json.nim", 1072);
goto LA11_;
		{
			LA11_:;
		}
		{
			eqdestroy___system_u2691(colontmpD__2);
			eqdestroy___system_u2691(colontmpD_);
			eqdestroy___system_u2691(msgX60gensym100__1);
		}
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	goto LA1_;
LA9_: ;
LA1_: ;
	(*dst_p0) = (*jsonNode_p1)._kind_4.bval;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, to__extccomp_u2867)(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* node_p0) {
	NIM_BOOL result;
	NimStringV2 jsonPath_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = (NIM_BOOL)0;
	jsonPath_1.len = 0; jsonPath_1.p = NIM_NIL;
	jsonPath_1 = TM__9b9bytt1stv9cZ8uqII7HFgew_97;
	result = 0;
	initFromJson__pureZjson_u5631((&result), node_p0, (&jsonPath_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___system_u2691(jsonPath_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJRawNumber__pureZjson_u429)(NimStringV2 s_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	NimStringV2 colontmpD_;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObjUninit(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4);
	colontmpD_ = eqdup___system_u2697(s_p0);
	(*T1_)._kind_1.str = colontmpD_;
	(*T1_).isUnquoted = NIM_TRUE;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJInt__pureZjson_u432)(NI64 n_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)2);
	(*T1_)._kind_2.num = n_p0;
	result = T1_;
	return result;
}
static N_INLINE(NIM_BOOL, isObjDisplayCheck)(TNimTypeV2* source_p0, NI16 targetDepth_p1, NU32 token_p2) {
	NIM_BOOL result;
	NIM_BOOL T1_;
	T1_ = (NIM_BOOL)0;
	T1_ = (targetDepth_p1 <= (*source_p0).depth);
	if (!(T1_)) goto LA2_;
	T1_ = ((*source_p0).display[targetDepth_p1] == token_p2);
LA2_: ;
	result = T1_;
	return result;
}
static N_INLINE(Exception*, nimBorrowCurrentException)(void) {
	Exception* result;
	result = currException__system_u3629;
	return result;
}
static N_INLINE(void, popCurrentException)(void) {
	eqcopy___system_u3662(&currException__system_u3629, (*currException__system_u3629).up, NIM_FALSE);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJFloat__pureZjson_u435)(NF n_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)3);
	(*T1_)._kind_3.fnum = n_p0;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJBool__pureZjson_u438)(NIM_BOOL b_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1);
	(*T1_)._kind_4.bval = b_p0;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, newJNull__pureZjson_u441)(void) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)0);
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, parseJson__pureZjson_u5533)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* p_p0, NIM_BOOL rawIntegers_p1, NIM_BOOL rawFloats_p2, NI depth_p3) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL oldNimErrFin51_;
NIM_BOOL oldNimErrFin74_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	switch ((*p_p0).tok) {
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)2):
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T2_;
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T3_;
		T2_ = NIM_NIL;
		T2_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
		(*T2_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)4);
		(*T2_)._kind_1.str = (*p_p0).a;
		eqwasMoved___system_u2688((&(*p_p0).a));
		result = T2_;
		T3_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T3_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T3_);
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)3):
	{
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T17_;
		{
			if (!rawIntegers_p1) goto LA7_;
			result = newJRawNumber__pureZjson_u429((*p_p0).a);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
		goto LA5_;
LA7_: ;
		{
			NI64 T11_;
			tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T12_;
			T11_ = (NI64)0;
			T11_ = nsuParseBiggestInt((*p_p0).a);
			if (NIM_UNLIKELY(*nimErr_)) goto LA10_;
			T12_ = NIM_NIL;
			T12_ = newJInt__pureZjson_u432(T11_);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T12_); goto LA10_;}
			result = T12_;
			if (NIM_UNLIKELY(*nimErr_)) {
				LA10_:;
				if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 3, 1871340544)) {
					tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T16_;
					*nimErr_ = NIM_FALSE;
					T16_ = NIM_NIL;
					T16_ = newJRawNumber__pureZjson_u429((*p_p0).a);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T16_); goto LA14_;}
					result = T16_;
					popCurrentException();
					LA14_:;
				}
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA5_: ;
		T17_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T17_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T17_);
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)4):
	{
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T32_;
		{
			tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T23_;
			if (!rawFloats_p2) goto LA21_;
			T23_ = NIM_NIL;
			T23_ = newJRawNumber__pureZjson_u429((*p_p0).a);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T23_); goto BeforeRet_;}
			result = T23_;
		}
		goto LA19_;
LA21_: ;
		{
			NF T26_;
			tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T27_;
			T26_ = (NF)0;
			T26_ = nsuParseFloat((*p_p0).a);
			if (NIM_UNLIKELY(*nimErr_)) goto LA25_;
			T27_ = NIM_NIL;
			T27_ = newJFloat__pureZjson_u435(T26_);
			if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T27_); goto LA25_;}
			result = T27_;
			if (NIM_UNLIKELY(*nimErr_)) {
				LA25_:;
				if (isObjDisplayCheck(nimBorrowCurrentException()->Sup.m_type, 3, 1871340544)) {
					tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T31_;
					*nimErr_ = NIM_FALSE;
					T31_ = NIM_NIL;
					T31_ = newJRawNumber__pureZjson_u429((*p_p0).a);
					if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T31_); goto LA29_;}
					result = T31_;
					popCurrentException();
					LA29_:;
				}
			}
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA19_: ;
		T32_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T32_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T32_);
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)5):
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T34_;
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T35_;
		T34_ = NIM_NIL;
		T34_ = newJBool__pureZjson_u438(NIM_TRUE);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T34_); goto BeforeRet_;}
		result = T34_;
		T35_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T35_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T35_);
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)6):
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T37_;
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T38_;
		T37_ = NIM_NIL;
		T37_ = newJBool__pureZjson_u438(NIM_FALSE);
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T37_); goto BeforeRet_;}
		result = T37_;
		T38_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T38_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T38_);
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)7):
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T40_;
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T41_;
		T40_ = NIM_NIL;
		T40_ = newJNull__pureZjson_u441();
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T40_); goto BeforeRet_;}
		result = T40_;
		T41_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T41_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T41_);
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)8):
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T47_;
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T48_;
		{
			if (!(((NI)1000) < depth_p3)) goto LA45_;
			raiseParseErr__pureZparsejson_u820((&(*p_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_102);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA45_: ;
		T47_ = NIM_NIL;
		T47_ = newJObject__pureZjson_u443();
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T47_); goto BeforeRet_;}
		result = T47_;
		T48_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T48_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T48_);
		{
			while (1) {
				NimStringV2 key_1;
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* val_1;
				tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T56_;
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T57_;
				tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T62_;
				if (!!(((*p_p0).tok == ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)9)))) goto LA50;
				key_1.len = 0; key_1.p = NIM_NIL;
				val_1 = NIM_NIL;
				{
					if (!!(((*p_p0).tok == ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)2)))) goto LA54_;
					raiseParseErr__pureZparsejson_u820((&(*p_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_104);
					if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				}
LA54_: ;
				eqcopy___system_u2694((&key_1), (*p_p0).a);
				T56_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
				T56_ = getTok__pureZparsejson_u626(p_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				(void)(T56_);
				eat__pureZparsejson_u885(p_p0, ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)12));
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				T57_ = NIM_NIL;
				T57_ = parseJson__pureZjson_u5533(p_p0, rawIntegers_p1, rawFloats_p2, (NI)(depth_p3 + ((NI)1)));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T57_); goto LA51_;}
				val_1 = T57_;
				X5BX5Deq___pureZjson_u2308(result, key_1, val_1);
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				{
					if (!!(((*p_p0).tok == ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)13)))) goto LA60_;
					eqdestroy___pureZjson_u324(val_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___system_u2691(key_1);
					goto LA49;
				}
LA60_: ;
				T62_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
				T62_ = getTok__pureZparsejson_u626(p_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA51_;
				(void)(T62_);
				{
					LA51_:;
				}
				{
					oldNimErrFin51_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___pureZjson_u324(val_1);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					eqdestroy___system_u2691(key_1);
					*nimErr_ = oldNimErrFin51_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA50: ;
		} LA49: ;
		eat__pureZparsejson_u885(p_p0, ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)9));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)10):
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T70_;
		tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T71_;
		{
			if (!(((NI)1000) < depth_p3)) goto LA68_;
			raiseParseErr__pureZparsejson_u820((&(*p_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_105);
			if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		}
LA68_: ;
		T70_ = NIM_NIL;
		T70_ = newJArray__pureZjson_u506();
		if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T70_); goto BeforeRet_;}
		result = T70_;
		T71_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
		T71_ = getTok__pureZparsejson_u626(p_p0);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		(void)(T71_);
		{
			while (1) {
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T75_;
				tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T80_;
				if (!!(((*p_p0).tok == ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)11)))) goto LA73;
				colontmpD_ = NIM_NIL;
				T75_ = NIM_NIL;
				T75_ = parseJson__pureZjson_u5533(p_p0, rawIntegers_p1, rawFloats_p2, (NI)(depth_p3 + ((NI)1)));
				if (NIM_UNLIKELY(*nimErr_)) {eqdestroy___pureZjson_u324(T75_); goto LA74_;}
				colontmpD_ = T75_;
				add__pureZjson_u662(result, colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto LA74_;
				{
					if (!!(((*p_p0).tok == ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)13)))) goto LA78_;
					eqdestroy___pureZjson_u324(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					goto LA72;
				}
LA78_: ;
				T80_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
				T80_ = getTok__pureZparsejson_u626(p_p0);
				if (NIM_UNLIKELY(*nimErr_)) goto LA74_;
				(void)(T80_);
				{
					LA74_:;
				}
				{
					oldNimErrFin74_ = *nimErr_; *nimErr_ = NIM_FALSE;
					eqdestroy___pureZjson_u324(colontmpD_);
					if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
					*nimErr_ = oldNimErrFin74_;
				}
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA73: ;
		} LA72: ;
		eat__pureZparsejson_u885(p_p0, ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)11));
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0):
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)9):
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)11):
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)12):
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)13):
	case ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)1):
	{
		raiseParseErr__pureZparsejson_u820((&(*p_p0)), TM__9b9bytt1stv9cZ8uqII7HFgew_106);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
	break;
	default: __builtin_unreachable();
	}
	}BeforeRet_: ;
	return result;
}
static N_INLINE(void, close__pureZparsejson_u311)(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg* my_p0) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	close__pureZlexbase_u15(&my_p0->Sup);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, parseJson__pureZjson_u5579)(tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w* s_p0, NimStringV2 filename_p1, NIM_BOOL rawIntegers_p2, NIM_BOOL rawFloats_p3) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg p_1;
	tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw T3_;
NIM_BOOL oldNimErrFin2_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	nimZeroMem((void*)(&p_1), sizeof(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg));
	p_1.Sup.Sup.m_type = (&NTIv2__izA0qNVok9bbh6yzMr1imlg_);
	nimZeroMem((void*)(&p_1), sizeof(tyObject_JsonParser__izA0qNVok9bbh6yzMr1imlg));
	p_1.Sup.Sup.m_type = (&NTIv2__izA0qNVok9bbh6yzMr1imlg_);
	open__pureZparsejson_u80((&p_1), s_p0, filename_p1, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	T3_ = (tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)0;
	T3_ = getTok__pureZparsejson_u626((&p_1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
	(void)(T3_);
	result = parseJson__pureZjson_u5533((&p_1), rawIntegers_p2, rawFloats_p3, ((NI)0));
	if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
	eat__pureZparsejson_u885((&p_1), ((tyEnum_TokKind__fY817iOTRu9c9btMadTqhgkw)1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA2_;
	{
		LA2_:;
	}
	{
		oldNimErrFin2_ = *nimErr_; *nimErr_ = NIM_FALSE;
		close__pureZparsejson_u311((&p_1));
		if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
		*nimErr_ = oldNimErrFin2_;
	}
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___pureZparsejson_u128((&p_1));
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, parseFile__pureZjson_u5595)(NimStringV2 filename_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA* stream_1;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	stream_1 = NIM_NIL;
	stream_1 = newFileStream__pureZstreams_u1097(filename_p0, ((tyEnum_FileMode__YkEVJbjDa9aPvYTBr8yiUWg)0), ((NI)-1));
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q* T6_;
		NimStringV2 T7_;
		if (!(stream_1 == ((tyObject_FileStreamObj__5UvDPztSlRBlwzg9bp1LtoA*) NIM_NIL))) goto LA4_;
		T6_ = NIM_NIL;
		T6_ = (tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q*) nimNewObj(sizeof(tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q), NIM_ALIGNOF(tyObject_IOError__vBePDvr8fj01uTfaJy9aD3Q));
		(*T6_).Sup.Sup.Sup.m_type = (&NTIv2__vBePDvr8fj01uTfaJy9aD3Q_);
		(*T6_).Sup.Sup.name = "IOError";
		T7_.len = 0; T7_.p = NIM_NIL;
		T7_ = rawNewString(filename_p0.len + 23);
appendString((&T7_), TM__9b9bytt1stv9cZ8uqII7HFgew_101);
appendString((&T7_), filename_p0);
		(*T6_).Sup.Sup.message = T7_;
		(*T6_).Sup.Sup.parent = ((Exception*) NIM_NIL);
		raiseExceptionEx((Exception*)T6_, "IOError", "parseFile", "json.nim", 1057);
goto LA1_;
	}
LA4_: ;
	result = parseJson__pureZjson_u5579((*((tyObject_StreamObj__nX3kZRlh8Dq3gQ2cC6DE8w**) (&(stream_1)))), filename_p0, NIM_FALSE, NIM_FALSE);
	if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
	{
		LA1_:;
	}
	{
		eqdestroy___pureZstreams_u980(stream_1);
	}
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___pureZjson_u2184)(NIM_BOOL b_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* T1_;
	T1_ = NIM_NIL;
	T1_ = (tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*) nimNewObj(sizeof(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g), NIM_ALIGNOF(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g));
	(*T1_).kind = ((tyEnum_JsonNodeKind__qvXp5fGPKV9a8zGGwjrKjDA)1);
	(*T1_)._kind_4.bval = b_p0;
	result = T1_;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___docgen_u13733)(tyEnum_IndexEntryKind__bp7boVnNZivfjr9au9bLARfQ o_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
	NimStringV2 colontmpD_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
	colontmpD_ = dollar___packagesZdocutilsZrstidx_u13(o_p0);
	result = percent___pureZjson_u2158(colontmpD_);
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	eqdestroy___system_u2691(colontmpD_);
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___docgen_u13726)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* o_p0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = newJObject__pureZjson_u443();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
		if (!NIM_TRUE) goto LA3_;
		colontmpD_ = NIM_NIL;
		colontmpD_ = percent___docgen_u13733((*o_p0).kind);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_108, colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD_);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA3_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__2;
		if (!NIM_TRUE) goto LA7_;
		colontmpD__2 = NIM_NIL;
		colontmpD__2 = percent___pureZjson_u2158((*o_p0).keyword);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_110, colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__2);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA7_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__3;
		if (!NIM_TRUE) goto LA11_;
		colontmpD__3 = NIM_NIL;
		colontmpD__3 = percent___pureZjson_u2158((*o_p0).link);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_112, colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__3);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA11_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__4;
		if (!NIM_TRUE) goto LA15_;
		colontmpD__4 = NIM_NIL;
		colontmpD__4 = percent___pureZjson_u2158((*o_p0).linkTitle);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_114, colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__4);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA15_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__5;
		if (!NIM_TRUE) goto LA19_;
		colontmpD__5 = NIM_NIL;
		colontmpD__5 = percent___pureZjson_u2158((*o_p0).linkDesc);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_116, colontmpD__5);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__5);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA19_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__6;
		if (!NIM_TRUE) goto LA23_;
		colontmpD__6 = NIM_NIL;
		colontmpD__6 = percent___pureZjson_u2168((*o_p0).line);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_118, colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__6);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA23_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__7;
		if (!NIM_TRUE) goto LA27_;
		colontmpD__7 = NIM_NIL;
		colontmpD__7 = percent___pureZjson_u2158((*o_p0).module);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_120, colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__7);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA27_: ;
	{
		tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD__8;
		if (!NIM_TRUE) goto LA31_;
		colontmpD__8 = NIM_NIL;
		colontmpD__8 = percent___pureZjson_u2158((*o_p0).aux);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		X5BX5Deq___pureZjson_u2308(result, TM__9b9bytt1stv9cZ8uqII7HFgew_122, colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
		eqdestroy___pureZjson_u324(colontmpD__8);
		if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	}
LA31_: ;
	}BeforeRet_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g*, percent___docgen_u13709)(tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* elements_p0, NI elements_p0Len_0) {
	tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
	result = NIM_NIL;
	result = newJArray__pureZjson_u506();
	if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
	{
		tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ* elem_1;
		NI i_1;
		elem_1 = (tyObject_IndexEntry__r4FGmtl4yhJtHvFotaeMmQ*)0;
		i_1 = ((NI)0);
		{
			while (1) {
				tyObject_JsonNodeObj__LZt4ndWMfGQOyH1zUmYA3g* colontmpD_;
				if (!(i_1 < elements_p0Len_0)) goto LA3;
				colontmpD_ = NIM_NIL;
				elem_1 = (&elements_p0[i_1]);
				colontmpD_ = percent___docgen_u13726((&(*elem_1)));
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				add__pureZjson_u662(result, colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
				i_1 += ((NI)1);
				eqdestroy___pureZjson_u324(colontmpD_);
				if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
			} LA3: ;
		}
	}
	}BeforeRet_: ;
	return result;
}
