/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, amd64, gcc */
/* Command for C compiler:
   gcc -c  -w  -I/afs/athena.mit.edu/software/nim-lang_v0.16.0/nim-0.16.0/lib -o /afs/athena.mit.edu/software/nim-lang_v0.16.0/nim-0.16.0/nimcache/stdlib_os.o /afs/athena.mit.edu/software/nim-lang_v0.16.0/nim-0.16.0/nimcache/stdlib_os.c */
#define NIM_INTBITS 64

#include "nimbase.h"
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <setjmp.h>
#undef linux
typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ;
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Indexerror_b0IIwghFQBADkB2c86kXQA Indexerror_b0IIwghFQBADkB2c86kXQA;
typedef struct Exception Exception;
typedef struct TNimObject TNimObject;
typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g;
typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w;
typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ;
typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA;
typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg;
typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ;
typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw;
typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg;
typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA;
typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw;
typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg;
typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ;
typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg;
typedef struct Oserror_3XwRQvmzCEOC4QnT706q1g Oserror_3XwRQvmzCEOC4QnT706q1g;
typedef struct Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg;
typedef struct TSafePoint TSafePoint;
typedef struct TY_7q7q3E6Oj24ZNVJb9aonhAg TY_7q7q3E6Oj24ZNVJb9aonhAg;
typedef struct TY_UV3llMMYFckfui8YMBuUZA TY_UV3llMMYFckfui8YMBuUZA;
typedef struct Ioerror_9czoZw3pzPyrBmb5zTHY1OQ Ioerror_9czoZw3pzPyrBmb5zTHY1OQ;
typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w;
typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A;
typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set;
typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0);
typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0);
struct  TNimType  {
NI size;
Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind;
Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags;
TNimType* base;
TNimNode* node;
void* finalizer;
TY_ojoeKfW4VYIm36I9cpDTQIg marker;
TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef N_NIMCALL_PTR(void, TY_T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
struct  TNimObject  {
TNimType* m_type;
};
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
struct  Indexerror_b0IIwghFQBADkB2c86kXQA  {
  Exception Sup;
};
struct  Cell_1zcF9cV8XIAtbN8h5HRUB8g  {
NI refcount;
TNimType* typ;
};
struct  Cellseq_Axo1XVm9aaQueTOldv8le5w  {
NI len;
NI cap;
Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
};
typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256];
struct  Intset_EZObFrE3NC9bIb3YMkY9crZA  {
TY_lh2A89ahMmYg9bCmpVaplLbA data;
};
struct  Memregion_x81NhDv59b8ercDZ9bi85jyg  {
NI minlargeobj;
NI maxlargeobj;
TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks;
Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currmem;
NI maxmem;
NI freemem;
NI lastsize;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist;
Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last;
Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes;
NIM_BOOL locked;
NIM_BOOL blockchunksizeincrease;
NI nextchunksize;
};
struct  Gcstat_0RwLoVBHZPfUAcLczmfQAg  {
NI stackscans;
NI cyclecollections;
NI maxthreshold;
NI maxstacksize;
NI maxstackcells;
NI cycletablesize;
NI64 maxpause;
};
struct  Cellset_jG87P0AI9aZtss9ccTYBIISQ  {
NI counter;
NI max;
Pagedesc_fublkgIY4LG3mT51LU2WHg* head;
Pagedesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct  Gcheap_1TRH1TZMaVZTnLNcIHuNFQ  {
Gcstack_7fytPA5bBsob6See21YMRA* stack;
void* stackbottom;
NI cyclethreshold;
Cellseq_Axo1XVm9aaQueTOldv8le5w zct;
Cellseq_Axo1XVm9aaQueTOldv8le5w decstack;
Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack;
NI recgclock;
Memregion_x81NhDv59b8ercDZ9bi85jyg region;
Gcstat_0RwLoVBHZPfUAcLczmfQAg stat;
Cellset_jG87P0AI9aZtss9ccTYBIISQ marked;
Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots;
};
struct  Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg  {
  Exception Sup;
};
struct  Oserror_3XwRQvmzCEOC4QnT706q1g  {
  Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Sup;
NI32 errorcode;
};
typedef NU8 Filemode_fVUBHvW79bXUw1j55Oo9avSQ;
typedef NU16 Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set;
typedef NU8 Filepermission_uTVeDpjCH6aWw9c74YkAskA;
typedef NU8 Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg;
typedef struct {
N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e0, void* ClEnv);
void* ClEnv;
} TY_KeeAOYBd84Ofsw6Y7LizaQ;
struct  TSafePoint  {
TSafePoint* prev;
NI status;
jmp_buf context;
NIM_BOOL hasRaiseAction;
TY_KeeAOYBd84Ofsw6Y7LizaQ raiseAction;
};
typedef NIM_CHAR TY_dTlC27m9c9aWd5dvuePYanug[256];
struct TY_7q7q3E6Oj24ZNVJb9aonhAg {
NimStringDesc* Field0;
NimStringDesc* Field1;
NimStringDesc* Field2;
};
struct TY_UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct  Ioerror_9czoZw3pzPyrBmb5zTHY1OQ  {
  Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Sup;
};
struct  Gcstack_7fytPA5bBsob6See21YMRA  {
Gcstack_7fytPA5bBsob6See21YMRA* prev;
Gcstack_7fytPA5bBsob6See21YMRA* next;
void* starts;
void* pos;
NI maxstacksize;
};
struct  Basechunk_Sdq7WpT6qAH858F5ZEdG3w  {
NI prevsize;
NI size;
NIM_BOOL used;
};
struct  Smallchunk_tXn60W2f8h3jgAYdEmy5NQ  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next;
Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist;
NI free;
NI acc;
NF data;
};
struct  Llchunk_XsENErzHIZV9bhvyJx56wGw  {
NI size;
NI acc;
Llchunk_XsENErzHIZV9bhvyJx56wGw* next;
};
struct  Bigchunk_Rv9c70Uhp2TytkX7eH78qEg  {
  Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next;
Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
NI align;
NF data;
};
typedef NI TY_9a8QARi5WsUggNU9bom7kzTQ[8];
struct  Trunk_W0r8S0Y3UGke6T9bIUWnnuw  {
Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
NI key;
TY_9a8QARi5WsUggNU9bom7kzTQ bits;
};
typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2];
struct  Avlnode_IaqjtwKhxLEpvDS9bct9blEw  {
TY_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperbound;
NI level;
};
struct  Pagedesc_fublkgIY4LG3mT51LU2WHg  {
Pagedesc_fublkgIY4LG3mT51LU2WHg* next;
NI key;
TY_9a8QARi5WsUggNU9bom7kzTQ bits;
};
struct  Freecell_u6M5LHprqzkn9axr04yg9bGQ  {
Freecell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zerofield;
};
struct TY_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_2)(void);
N_NIMCALL(void, nimRegisterGlobalMarker)(TY_T4eqaYlFJYZUv9aG9b1TV0bQ markerproc0);
static N_INLINE(NimStringDesc*, pop_9cDsfK2acP02vJ9bhxIE9caEAos)(TY_sM4lkSb7zS6F7OVMvW9cffQ** s0);
static N_INLINE(NI, subInt)(NI a0, NI b0);
N_NOINLINE(void, raiseOverflow)(void);
N_NOINLINE(void, raiseIndexError)(void);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
static N_INLINE(NI, chckRange)(NI i0, NI a0, NI b0);
N_NOINLINE(void, raiseRangeError)(NI64 val0);
N_NIMCALL(TGenericSeq*, setLengthSeq)(TGenericSeq* seq0, NI elemsize0, NI newlen0);
static N_INLINE(void, nimFrame)(TFrame* s0);
N_NOINLINE(void, stackoverflow_II46IjNZztN9bmbxUD8dt8g)(void);
static N_INLINE(void, popFrame)(void);
N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0);
N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0);
static N_INLINE(void, nimGCunrefNoCycle)(void* p0);
static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0);
static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(void, raiseException)(Exception* e0, NCSTRING ename0);
N_NIMCALL(NI, findenvvar_cmJJ3H7KloA4DztTvzWyCw)(NimStringDesc* key0);
N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void);
N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0);
static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem)(NCSTRING x0, NCSTRING y0);
N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
static N_INLINE(NI, addInt)(NI a0, NI b0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0);
static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s0, NimStringDesc* prefix0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0);
N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s0, NIM_CHAR sub0, NI start0);
static N_INLINE(NI, divInt)(NI a0, NI b0);
N_NOINLINE(void, raiseDivByZero)(void);
static N_INLINE(NI, modInt)(NI a0, NI b0);
N_NIMCALL(NI, mulInt)(NI a0, NI b0);
N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0);
static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0);
N_NIMCALL(NI, searchextpos_AlmWoA52oxWnFTorxtz9caA)(NimStringDesc* s0);
N_NIMCALL(NimStringDesc*, normext_g9aFI0nT0uI8DMfFxBPaZZg)(NimStringDesc* ext0);
N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0);
N_NIMCALL(NimStringDesc*, mnewString)(NI len0);
N_NIMCALL(NimStringDesc*, mnewString)(NI len0);
N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0);
N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void);
N_NOINLINE(void, raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2)(NimStringDesc* msg0);
N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0);
N_NIMCALL(NIM_BOOL, open_sEp0GH2306oGo9bqBpj5oTQ)(FILE** f0, NimStringDesc* filename0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ mode0, NI bufsize0);
N_NIMCALL(void, close_BWnr8V7RERYno9bIdPmw8Hw)(FILE* f0);
N_NOCONV(void*, alloc_sVm4rDImKK2ZDdylByayiA)(NI size0);
N_NIMCALL(NI, readbuffer_1qjbrvfnPD4PaIieHVDvhw)(FILE* f0, void* buffer0, NI len0);
N_NIMCALL(NI, writebuffer_1qjbrvfnPD4PaIieHVDvhw_2)(FILE* f0, void* buffer0, NI len0);
N_NOCONV(void, dealloc_RCjNtRnHdRYntrcE7YtwWw)(void* p0);
N_NIMCALL(void, flushfile_BWnr8V7RERYno9bIdPmw8Hw_2)(FILE* f0);
N_NIMCALL(void, nossetFilePermissions)(NimStringDesc* filename0, Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set permissions0);
N_NIMCALL(Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set, nosgetFilePermissions)(NimStringDesc* filename0);
static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0);
static N_INLINE(NIM_BOOL, equalmem_fmeFeLBvgmAHG9bC8ETS9bYQsystem)(void* a0, void* b0, NI size0);
N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0);
static N_INLINE(NIM_BOOL, direxists_wf0Ae3eLXw0lSNEFJMV3ogkoch)(NimStringDesc* dir0);
N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0);
N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0);
N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0);
N_NIMCALL(Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg, getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg)(NimStringDesc* path0);
N_NIMCALL(void, failedassertimpl_aDmpBTs9cPuXp0Mp9cfiNeyA)(NimStringDesc* msg0);
static N_INLINE(void, popSafePoint)(void);
static N_INLINE(void, setFrame)(TFrame* s0);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(void, rawremovedir_P9aOuM3pg25yKqgBUm7qKng)(NimStringDesc* dir0);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_WPWyPKk58Cr5a6XFFviMjg, NI last0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0);
N_NIMCALL(NIM_BOOL, existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww)(NimStringDesc* dir0);
N_NIMCALL(NIM_BOOL, rawcreatedir_V86QyZrcGMPX0W9bv1Q53ww_2)(NimStringDesc* dir0);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x0);
NIM_BOOL envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ;
TY_sM4lkSb7zS6F7OVMvW9cffQ* environment_mlhK49b6YMgc9cgrcYkKq9a3g;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ;
extern NCSTRING* environ;
extern TFrame* frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw;
extern int cmdCount;
extern NCSTRING* cmdLine;
extern TNimType NTI_z58cIdR0vOibqJ0QwYvB3Q;
extern TNimType NTI_b0IIwghFQBADkB2c86kXQA;
extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TNimType NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA;
extern TNimType NTI_3XwRQvmzCEOC4QnT706q1g;
extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TNimType NTI_HX2M9cQhE3jaovp9aYJDdslA;
extern TNimType NTI_9czoZw3pzPyrBmb5zTHY1OQ;
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_5, "invalid index", 13);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_9, "", 0);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_14, "\012Additional info: ", 18);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_15, "unknown OS error", 16);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_19, "\012  0 <= bufsize ", 16);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_20, "/tmp/", 5);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_22, ".", 1);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_23, "..", 2);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_24, "\012  not (path == \"\") ", 20);
STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_42, "Failed to create the directory", 30);
static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_2)(void) {
	nimGCvisit((void*)environment_mlhK49b6YMgc9cgrcYkKq9a3g, 0);
}

static N_INLINE(NI, subInt)(NI a0, NI b0) {
	NI result0;
{	result0 = (NI)0;
	result0 = (NI)((NU64)(a0) - (NU64)(b0));
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (((NI) 0) <= (NI)(result0 ^ a0));
		if (LOC3) goto LA4;
		LOC3 = (((NI) 0) <= (NI)(result0 ^ (NI)((NU64) ~(b0))));
		LA4: ;
		if (!LOC3) goto LA5;
		goto BeforeRet;
	}
	LA5: ;
	raiseOverflow();
	}BeforeRet: ;
	return result0;
}

static N_INLINE(NI, chckRange)(NI i0, NI a0, NI b0) {
	NI result0;
{	result0 = (NI)0;
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (a0 <= i0);
		if (!(LOC3)) goto LA4;
		LOC3 = (i0 <= b0);
		LA4: ;
		if (!LOC3) goto LA5;
		result0 = i0;
		goto BeforeRet;
	}
	goto LA1;
	LA5: ;
	{
		raiseRangeError(((NI64) (i0)));
	}
	LA1: ;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(void, nimFrame)(TFrame* s0) {
	NI LOC1;
	LOC1 = (NI)0;
	{
		if (!(frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4;
		LOC1 = ((NI) 0);
	}
	goto LA2;
	LA4: ;
	{
		LOC1 = ((NI) ((NI16)((*frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
	}
	LA2: ;
	(*s0).calldepth = ((NI16) (LOC1));
	(*s0).prev = frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw;
	frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw = s0;
	{
		if (!((*s0).calldepth == ((NI16) 2000))) goto LA9;
		stackoverflow_II46IjNZztN9bmbxUD8dt8g();
	}
	LA9: ;
}

static N_INLINE(void, popFrame)(void) {
	frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw = (*frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
}

static N_INLINE(NimStringDesc*, pop_9cDsfK2acP02vJ9bhxIE9caEAos)(TY_sM4lkSb7zS6F7OVMvW9cffQ** s0) {
	NimStringDesc* result0;
	NI L0;
	NI T_yu6cxgKBBXbNsTkT9cyMd4g_3;
	nimfr("pop", "system.nim")
	result0 = (NimStringDesc*)0;
	nimln(2245, "system.nim");
	T_yu6cxgKBBXbNsTkT9cyMd4g_3 = subInt(((*s0) ? (*s0)->Sup.len : 0), ((NI) 1));
	L0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_3);
	nimln(2246, "system.nim");
	if ((NU)(L0) >= (NU)((*s0)->Sup.len)) raiseIndexError();
	result0 = copyString((*s0)->data[L0]);
	nimln(2247, "system.nim");
	(*s0) = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) setLengthSeq(&((*s0))->Sup, sizeof(NimStringDesc*), ((NI)chckRange(L0, ((NI) 0), ((NI) IL64(9223372036854775807)))));
	popFrame();
	return result0;
}

N_NIMCALL(NI, paramcount_T74rCHY8RMV0X07YnKmggw)(void) {
	NI result0;
	NI T_yu6cxgKBBXbNsTkT9cyMd4g_4;
	nimfr("paramCount", "os.nim")
	result0 = (NI)0;
	nimln(1443, "os.nim");
	T_yu6cxgKBBXbNsTkT9cyMd4g_4 = subInt(cmdCount, ((NI32) 1));
	if (T_yu6cxgKBBXbNsTkT9cyMd4g_4 < (-2147483647 -1) || T_yu6cxgKBBXbNsTkT9cyMd4g_4 > 2147483647) raiseOverflow();
	result0 = ((NI) ((NI32)(T_yu6cxgKBBXbNsTkT9cyMd4g_4)));
	popFrame();
	return result0;
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0;
	nimfr("usrToCell", "gc.nim")
	result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	nimln(134, "gc.nim");
	result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	popFrame();
	return result0;
}

static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	nimfr("rtlAddZCT", "gc.nim")
	nimln(220, "gc.nim");
	addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0);
	popFrame();
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
	nimfr("nimGCunrefNoCycle", "gc.nim")
	nimln(262, "gc.nim");
	c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0);
	nimln(264, "gc.nim");
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
		nimln(265, "gc.nim");
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
	popFrame();
}

N_NIMCALL(NimStringDesc*, paramstr_eYicl3uwirn1ppNz7OCowg)(NI i0) {
	NimStringDesc* result0;
	Indexerror_b0IIwghFQBADkB2c86kXQA* e_9c9avxASFO8rHZknrsDnVzEA;
	NimStringDesc* LOC7;
	nimfr("paramStr", "os.nim")
{	result0 = (NimStringDesc*)0;
	nimln(1438, "os.nim");
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (i0 < ((NI) (cmdCount)));
		if (!(LOC3)) goto LA4;
		LOC3 = (((NI) 0) <= i0);
		LA4: ;
		if (!LOC3) goto LA5;
		if ((NU)(i0) > (NU)(100000000)) raiseIndexError();
		result0 = cstrToNimstr(cmdLine[(i0)- 0]);
		goto BeforeRet;
	}
	LA5: ;
	e_9c9avxASFO8rHZknrsDnVzEA = (Indexerror_b0IIwghFQBADkB2c86kXQA*)0;
	nimln(2560, "system.nim");
	e_9c9avxASFO8rHZknrsDnVzEA = (Indexerror_b0IIwghFQBADkB2c86kXQA*) newObj((&NTI_z58cIdR0vOibqJ0QwYvB3Q), sizeof(Indexerror_b0IIwghFQBADkB2c86kXQA));
	(*e_9c9avxASFO8rHZknrsDnVzEA).Sup.Sup.m_type = (&NTI_b0IIwghFQBADkB2c86kXQA);
	nimln(2561, "system.nim");
	LOC7 = (NimStringDesc*)0;
	LOC7 = (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.message; (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_5));
	if (LOC7) nimGCunrefNoCycle(LOC7);
	nimln(1439, "os.nim");
	raiseException((Exception*)e_9c9avxASFO8rHZknrsDnVzEA, "IndexError");
	}BeforeRet: ;
	popFrame();
	return result0;
}

static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem)(NCSTRING x0, NCSTRING y0) {
	NIM_BOOL result0;
	nimfr("==", "system.nim")
	result0 = (NIM_BOOL)0;
	nimln(3706, "system.nim");
	{
		if (!(((void*) (x0)) == ((void*) (y0)))) goto LA3;
		result0 = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		NIM_BOOL LOC6;
		nimln(3707, "system.nim");
		LOC6 = (NIM_BOOL)0;
		LOC6 = (x0 == 0);
		if (LOC6) goto LA7;
		LOC6 = (y0 == 0);
		LA7: ;
		if (!LOC6) goto LA8;
		result0 = NIM_FALSE;
	}
	goto LA1;
	LA8: ;
	{
		int LOC11;
		nimln(3708, "system.nim");
		LOC11 = (int)0;
		LOC11 = strcmp(x0, y0);
		result0 = (LOC11 == ((NI32) 0));
	}
	LA1: ;
	popFrame();
	return result0;
}

static N_INLINE(NI, addInt)(NI a0, NI b0) {
	NI result0;
{	result0 = (NI)0;
	result0 = (NI)((NU64)(a0) + (NU64)(b0));
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = (((NI) 0) <= (NI)(result0 ^ a0));
		if (LOC3) goto LA4;
		LOC3 = (((NI) 0) <= (NI)(result0 ^ b0));
		LA4: ;
		if (!LOC3) goto LA5;
		goto BeforeRet;
	}
	LA5: ;
	raiseOverflow();
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void) {
	nimfr("getEnvVarsC", "os.nim")
	nimln(751, "os.nim");
	{
		NI i0;
		if (!!(envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ)) goto LA3;
		nimln(752, "os.nim");
		if (environment_mlhK49b6YMgc9cgrcYkKq9a3g) nimGCunrefNoCycle(environment_mlhK49b6YMgc9cgrcYkKq9a3g);
		environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeqRC1((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0);
		nimln(755, "os.nim");
		i0 = ((NI) 0);
		{
			nimln(756, "os.nim");
			while (1) {
				NimStringDesc* LOC12;
				NimStringDesc* LOC13;
				NI T_yu6cxgKBBXbNsTkT9cyMd4g_6;
				nimln(757, "os.nim");
				{
					NIM_BOOL LOC9;
					if ((NU)(i0) > (NU)(100000000)) raiseIndexError();
					LOC9 = (NIM_BOOL)0;
					LOC9 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(environ[(i0)- 0], NIM_NIL);
					if (!LOC9) goto LA10;
					goto LA5;
				}
				LA10: ;
				nimln(758, "os.nim");
				if ((NU)(i0) > (NU)(100000000)) raiseIndexError();
				LOC12 = (NimStringDesc*)0;
				LOC12 = cstrToNimstr(environ[(i0)- 0]);
				environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(environment_mlhK49b6YMgc9cgrcYkKq9a3g)->Sup, sizeof(NimStringDesc*));
				LOC13 = (NimStringDesc*)0;
				LOC13 = environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len]; environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len] = copyStringRC1(LOC12);
				if (LOC13) nimGCunrefNoCycle(LOC13);
				++environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len;
				nimln(759, "os.nim");
				T_yu6cxgKBBXbNsTkT9cyMd4g_6 = addInt(i0, ((NI) 1));
				i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_6);
			}
		} LA5: ;
		nimln(760, "os.nim");
		envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ = NIM_TRUE;
	}
	LA3: ;
	popFrame();
}

static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0) {
	void* LOC1;
	LOC1 = (void*)0;
	LOC1 = memcpy(dest0, source0, ((size_t) (size0)));
}

static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) {
	copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1)))));
	(*dest0).Sup.len += (*src0).Sup.len;
}

static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0) {
	(*dest0).data[((*dest0).Sup.len)- 0] = c0;
	(*dest0).data[((NI)((*dest0).Sup.len + ((NI) 1)))- 0] = 0;
	(*dest0).Sup.len += ((NI) 1);
}

N_NIMCALL(NI, findenvvar_cmJJ3H7KloA4DztTvzWyCw)(NimStringDesc* key0) {
	NI result0;
	NimStringDesc* temp0;
	NimStringDesc* LOC1;
	nimfr("findEnvVar", "os.nim")
{	result0 = (NI)0;
	nimln(763, "os.nim");
	getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA();
	nimln(764, "os.nim");
	LOC1 = (NimStringDesc*)0;
	LOC1 = rawNewString(key0->Sup.len + 1);
appendString(LOC1, key0);
appendChar(LOC1, 61);
	temp0 = LOC1;
	{
		NI i_QFpQyCBMTAf3RQiHRTCtRA;
		NI HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA;
		NI res_9cO4Qfuzy9c4z8ih7joizeqg;
		i_QFpQyCBMTAf3RQiHRTCtRA = (NI)0;
		HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA = (NI)0;
		nimln(765, "os.nim");
		HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1);
		nimln(1908, "system.nim");
		res_9cO4Qfuzy9c4z8ih7joizeqg = ((NI) 0);
		{
			nimln(1909, "system.nim");
			while (1) {
				NI T_yu6cxgKBBXbNsTkT9cyMd4g_7;
				nimln(1908, "system.nim");
				if (!(res_9cO4Qfuzy9c4z8ih7joizeqg <= HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA)) goto LA4;
				nimln(1910, "system.nim");
				i_QFpQyCBMTAf3RQiHRTCtRA = res_9cO4Qfuzy9c4z8ih7joizeqg;
				nimln(766, "os.nim");
				{
					NIM_BOOL LOC7;
					if ((NU)(i_QFpQyCBMTAf3RQiHRTCtRA) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError();
					LOC7 = (NIM_BOOL)0;
					LOC7 = nsuStartsWith(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_QFpQyCBMTAf3RQiHRTCtRA], temp0);
					if (!LOC7) goto LA8;
					result0 = i_QFpQyCBMTAf3RQiHRTCtRA;
					goto BeforeRet;
				}
				LA8: ;
				nimln(1908, "system.nim");
				T_yu6cxgKBBXbNsTkT9cyMd4g_7 = addInt(res_9cO4Qfuzy9c4z8ih7joizeqg, ((NI) 1));
				res_9cO4Qfuzy9c4z8ih7joizeqg = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_7);
			} LA4: ;
		}
	}
	nimln(767, "os.nim");
	result0 = ((NI) -1);
	goto BeforeRet;
	}BeforeRet: ;
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, getenv_8zNgT9bxx7m9cTt2TeVdTdIw)(NimStringDesc* key0) {
	NimStringDesc* result0;
	NI i0;
	nimfr("getEnv", "os.nim")
{	result0 = (NimStringDesc*)0;
	nimln(775, "os.nim");
	i0 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0);
	nimln(776, "os.nim");
	{
		NI LOC5;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_8;
		if (!(((NI) 0) <= i0)) goto LA3;
		nimln(777, "os.nim");
		if ((NU)(i0) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError();
		if ((NU)(i0) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError();
		LOC5 = (NI)0;
		LOC5 = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i0], 61, ((NI) 0));
		T_yu6cxgKBBXbNsTkT9cyMd4g_8 = addInt(LOC5, ((NI) 1));
		result0 = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i0], (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_8));
		goto BeforeRet;
	}
	goto LA1;
	LA3: ;
	{
		NCSTRING env0;
		nimln(779, "os.nim");
		env0 = getenv(key0->data);
		nimln(780, "os.nim");
		{
			NIM_BOOL LOC9;
			LOC9 = (NIM_BOOL)0;
			LOC9 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(env0, NIM_NIL);
			if (!LOC9) goto LA10;
			result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
			goto BeforeRet;
		}
		LA10: ;
		nimln(781, "os.nim");
		result0 = cstrToNimstr(env0);
	}
	LA1: ;
	}BeforeRet: ;
	popFrame();
	return result0;
}

static N_INLINE(NI, divInt)(NI a0, NI b0) {
	NI result0;
{	result0 = (NI)0;
	{
		if (!(b0 == ((NI) 0))) goto LA3;
		raiseDivByZero();
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = (NIM_BOOL)0;
		LOC7 = (a0 == ((NI) (IL64(-9223372036854775807) - IL64(1))));
		if (!(LOC7)) goto LA8;
		LOC7 = (b0 == ((NI) -1));
		LA8: ;
		if (!LOC7) goto LA9;
		raiseOverflow();
	}
	LA9: ;
	result0 = (NI)(a0 / b0);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(NI, modInt)(NI a0, NI b0) {
	NI result0;
{	result0 = (NI)0;
	{
		if (!(b0 == ((NI) 0))) goto LA3;
		raiseDivByZero();
	}
	LA3: ;
	result0 = (NI)(a0 % b0);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, nossleep)(NI milsecs0) {
	struct timespec a0;
	struct timespec b0;
	NI T_yu6cxgKBBXbNsTkT9cyMd4g_10;
	NI T_yu6cxgKBBXbNsTkT9cyMd4g_11;
	NI T_yu6cxgKBBXbNsTkT9cyMd4g_12;
	NI T_yu6cxgKBBXbNsTkT9cyMd4g_13;
	int LOC1;
	nimfr("sleep", "os.nim")
	memset((void*)(&a0), 0, sizeof(a0));
	memset((void*)(&b0), 0, sizeof(b0));
	nimln(1608, "os.nim");
	T_yu6cxgKBBXbNsTkT9cyMd4g_10 = divInt(milsecs0, ((NI) 1000));
	a0.tv_sec = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_10);
	nimln(1609, "os.nim");
	T_yu6cxgKBBXbNsTkT9cyMd4g_11 = modInt(milsecs0, ((NI) 1000));
	T_yu6cxgKBBXbNsTkT9cyMd4g_12 = mulInt(((NI) ((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_11))), ((NI) 1000));
	T_yu6cxgKBBXbNsTkT9cyMd4g_13 = mulInt(((NI) ((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_12))), ((NI) 1000));
	a0.tv_nsec = ((NI) ((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_13)));
	nimln(1610, "os.nim");
	LOC1 = (int)0;
	LOC1 = nanosleep((&a0), (&b0));
	popFrame();
}

N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0) {
	NimStringDesc* result0;
	nimfr("osErrorMsg", "os.nim")
	result0 = (NimStringDesc*)0;
	nimln(118, "os.nim");
	result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	nimln(134, "os.nim");
	{
		NCSTRING LOC5;
		nimln(347, "system.nim");
		nimln(134, "os.nim");
		if (!!((errorcode0 == ((NI32) 0)))) goto LA3;
		nimln(135, "os.nim");
		LOC5 = (NCSTRING)0;
		LOC5 = strerror(errorcode0);
		result0 = cstrToNimstr(LOC5);
	}
	LA3: ;
	popFrame();
	return result0;
}

static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) {
	nimfr("asgnRefNoCycle", "gc.nim")
	nimln(280, "gc.nim");
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		nimln(347, "system.nim");
		nimln(280, "gc.nim");
		if (!!((src0 == NIM_NIL))) goto LA3;
		nimln(281, "gc.nim");
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		nimln(282, "gc.nim");
		(*c0).refcount += ((NI) 8);
	}
	LA3: ;
	nimln(283, "gc.nim");
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
		nimln(347, "system.nim");
		nimln(283, "gc.nim");
		if (!!(((*dest0) == NIM_NIL))) goto LA7;
		nimln(284, "gc.nim");
		c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		nimln(285, "gc.nim");
		{
			(*c0).refcount -= ((NI) 8);
			if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA11;
			nimln(286, "gc.nim");
			rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
		}
		LA11: ;
	}
	LA7: ;
	nimln(287, "gc.nim");
	(*dest0) = src0;
	popFrame();
}

N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0) {
	Oserror_3XwRQvmzCEOC4QnT706q1g* e0;
	nimfr("raiseOSError", "os.nim")
	e0 = (Oserror_3XwRQvmzCEOC4QnT706q1g*)0;
	nimln(145, "os.nim");
	e0 = (Oserror_3XwRQvmzCEOC4QnT706q1g*) newObj((&NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA), sizeof(Oserror_3XwRQvmzCEOC4QnT706q1g));
	(*e0).Sup.Sup.Sup.m_type = (&NTI_3XwRQvmzCEOC4QnT706q1g);
	nimln(146, "os.nim");
	(*e0).errorcode = errorcode0;
	nimln(147, "os.nim");
	{
		if (!((additionalinfo0 ? additionalinfo0->Sup.len : 0) == ((NI) 0))) goto LA3;
		nimln(148, "os.nim");
		asgnRefNoCycle((void**) (&(*e0).Sup.Sup.message), oserrormsg_9cO757MdTrYxfurMy5qIoAg(errorcode0));
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC6;
		NimStringDesc* LOC7;
		nimln(150, "os.nim");
		LOC6 = (NimStringDesc*)0;
		LOC7 = (NimStringDesc*)0;
		LOC7 = oserrormsg_9cO757MdTrYxfurMy5qIoAg(errorcode0);
		LOC6 = rawNewString(LOC7->Sup.len + additionalinfo0->Sup.len + 18);
appendString(LOC6, LOC7);
appendString(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_14));
appendString(LOC6, additionalinfo0);
		asgnRefNoCycle((void**) (&(*e0).Sup.Sup.message), LOC6);
	}
	LA1: ;
	nimln(151, "os.nim");
	{
		NimStringDesc* LOC12;
		if (!(((*e0).Sup.Sup.message) && ((*e0).Sup.Sup.message)->Sup.len == 0)) goto LA10;
		nimln(152, "os.nim");
		LOC12 = (NimStringDesc*)0;
		LOC12 = (*e0).Sup.Sup.message; (*e0).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_15));
		if (LOC12) nimGCunrefNoCycle(LOC12);
	}
	LA10: ;
	nimln(153, "os.nim");
	raiseException((Exception*)e0, "OSError");
	popFrame();
}

N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void) {
	NI32 result0;
	result0 = (NI32)0;
	result0 = errno;
	return result0;
}

N_NIMCALL(NI, searchextpos_AlmWoA52oxWnFTorxtz9caA)(NimStringDesc* s0) {
	NI result0;
	nimfr("searchExtPos", "ospaths.nim")
	result0 = (NI)0;
	nimln(336, "ospaths.nim");
	result0 = ((NI) -1);
	{
		NI i_XQE9aiUWOFdx4JhYiIhgMdQ;
		NI HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_16;
		NI res_c104hbjlw03oZVhljBpoGA;
		i_XQE9aiUWOFdx4JhYiIhgMdQ = (NI)0;
		HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ = (NI)0;
		nimln(337, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_16 = subInt((s0 ? s0->Sup.len : 0), ((NI) 1));
		HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_16);
		nimln(1896, "system.nim");
		res_c104hbjlw03oZVhljBpoGA = HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ;
		{
			nimln(1897, "system.nim");
			while (1) {
				NI T_yu6cxgKBBXbNsTkT9cyMd4g_17;
				nimln(337, "ospaths.nim");
				if (!(((NI) 1) <= res_c104hbjlw03oZVhljBpoGA)) goto LA3;
				nimln(1898, "system.nim");
				i_XQE9aiUWOFdx4JhYiIhgMdQ = res_c104hbjlw03oZVhljBpoGA;
				nimln(338, "ospaths.nim");
				{
					if ((NU)(i_XQE9aiUWOFdx4JhYiIhgMdQ) > (NU)(s0->Sup.len)) raiseIndexError();
					if (!((NU8)(s0->data[i_XQE9aiUWOFdx4JhYiIhgMdQ]) == (NU8)(46))) goto LA6;
					nimln(339, "ospaths.nim");
					result0 = i_XQE9aiUWOFdx4JhYiIhgMdQ;
					nimln(340, "ospaths.nim");
					goto LA1;
				}
				goto LA4;
				LA6: ;
				{
					nimln(341, "ospaths.nim");
					if ((NU)(i_XQE9aiUWOFdx4JhYiIhgMdQ) > (NU)(s0->Sup.len)) raiseIndexError();
					if (!(((NU8)(s0->data[i_XQE9aiUWOFdx4JhYiIhgMdQ])) == ((NU8)(47)) || ((NU8)(s0->data[i_XQE9aiUWOFdx4JhYiIhgMdQ])) == ((NU8)(47)))) goto LA9;
					nimln(342, "ospaths.nim");
					goto LA1;
				}
				goto LA4;
				LA9: ;
				LA4: ;
				nimln(1896, "system.nim");
				T_yu6cxgKBBXbNsTkT9cyMd4g_17 = subInt(res_c104hbjlw03oZVhljBpoGA, ((NI) 1));
				res_c104hbjlw03oZVhljBpoGA = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_17);
			} LA3: ;
		}
	} LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, normext_g9aFI0nT0uI8DMfFxBPaZZg)(NimStringDesc* ext0) {
	NimStringDesc* result0;
	nimfr("normExt", "ospaths.nim")
	result0 = (NimStringDesc*)0;
	nimln(331, "ospaths.nim");
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((ext0) && (ext0)->Sup.len == 0);
		if (LOC3) goto LA4;
		if ((NU)(((NI) 0)) > (NU)(ext0->Sup.len)) raiseIndexError();
		LOC3 = ((NU8)(ext0->data[((NI) 0)]) == (NU8)(46));
		LA4: ;
		if (!LOC3) goto LA5;
		result0 = copyString(ext0);
	}
	goto LA1;
	LA5: ;
	{
		NimStringDesc* LOC8;
		nimln(332, "ospaths.nim");
		LOC8 = (NimStringDesc*)0;
		LOC8 = rawNewString(ext0->Sup.len + 1);
appendChar(LOC8, 46);
appendString(LOC8, ext0);
		result0 = LOC8;
	}
	LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, nosaddFileExt)(NimStringDesc* filename0, NimStringDesc* ext0) {
	NimStringDesc* result0;
	NI extpos0;
	nimfr("addFileExt", "ospaths.nim")
	result0 = (NimStringDesc*)0;
	nimln(408, "ospaths.nim");
	extpos0 = searchextpos_AlmWoA52oxWnFTorxtz9caA(filename0);
	nimln(409, "ospaths.nim");
	{
		NimStringDesc* LOC5;
		NimStringDesc* LOC6;
		if (!(extpos0 < ((NI) 0))) goto LA3;
		LOC5 = (NimStringDesc*)0;
		LOC6 = (NimStringDesc*)0;
		LOC6 = normext_g9aFI0nT0uI8DMfFxBPaZZg(ext0);
		LOC5 = rawNewString(filename0->Sup.len + LOC6->Sup.len + 0);
appendString(LOC5, filename0);
appendString(LOC5, LOC6);
		result0 = LOC5;
	}
	goto LA1;
	LA3: ;
	{
		nimln(410, "ospaths.nim");
		result0 = copyString(filename0);
	}
	LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0) {
	NimStringDesc* result0;
	nimfr("joinPath", "ospaths.nim")
	result0 = (NimStringDesc*)0;
	nimln(197, "ospaths.nim");
	{
		if (!((head0 ? head0->Sup.len : 0) == ((NI) 0))) goto LA3;
		nimln(198, "ospaths.nim");
		result0 = copyString(tail0);
	}
	goto LA1;
	LA3: ;
	{
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_18;
		nimln(199, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_18 = subInt((head0 ? head0->Sup.len : 0), ((NI) 1));
		if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_18)) > (NU)(head0->Sup.len)) raiseIndexError();
		if (!(((NU8)(head0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_18)])) == ((NU8)(47)) || ((NU8)(head0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_18)])) == ((NU8)(47)))) goto LA6;
		nimln(200, "ospaths.nim");
		{
			NimStringDesc* LOC12;
			NimStringDesc* LOC13;
			if ((NU)(((NI) 0)) > (NU)(tail0->Sup.len)) raiseIndexError();
			if (!(((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)) || ((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)))) goto LA10;
			nimln(201, "ospaths.nim");
			LOC12 = (NimStringDesc*)0;
			LOC13 = (NimStringDesc*)0;
			LOC13 = copyStr(tail0, ((NI) 1));
			LOC12 = rawNewString(head0->Sup.len + LOC13->Sup.len + 0);
appendString(LOC12, head0);
appendString(LOC12, LOC13);
			result0 = LOC12;
		}
		goto LA8;
		LA10: ;
		{
			NimStringDesc* LOC15;
			nimln(203, "ospaths.nim");
			LOC15 = (NimStringDesc*)0;
			LOC15 = rawNewString(head0->Sup.len + tail0->Sup.len + 0);
appendString(LOC15, head0);
appendString(LOC15, tail0);
			result0 = LOC15;
		}
		LA8: ;
	}
	goto LA1;
	LA6: ;
	{
		nimln(205, "ospaths.nim");
		{
			NimStringDesc* LOC21;
			if ((NU)(((NI) 0)) > (NU)(tail0->Sup.len)) raiseIndexError();
			if (!(((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)) || ((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)))) goto LA19;
			nimln(206, "ospaths.nim");
			LOC21 = (NimStringDesc*)0;
			LOC21 = rawNewString(head0->Sup.len + tail0->Sup.len + 0);
appendString(LOC21, head0);
appendString(LOC21, tail0);
			result0 = LOC21;
		}
		goto LA17;
		LA19: ;
		{
			NimStringDesc* LOC23;
			nimln(208, "ospaths.nim");
			LOC23 = (NimStringDesc*)0;
			LOC23 = rawNewString(head0->Sup.len + tail0->Sup.len + 1);
appendString(LOC23, head0);
appendChar(LOC23, 47);
appendString(LOC23, tail0);
			result0 = LOC23;
		}
		LA17: ;
	}
	LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0) {
	NimStringDesc* result0;
	nimfr("/", "ospaths.nim")
{	result0 = (NimStringDesc*)0;
	nimln(229, "ospaths.nim");
	result0 = nosjoinPath(head0, tail0);
	goto BeforeRet;
	}BeforeRet: ;
	popFrame();
	return result0;
}

N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0) {
	NIM_BOOL result0;
	struct stat res0;
	NIM_BOOL LOC1;
	int LOC2;
	nimfr("existsFile", "os.nim")
{	result0 = (NIM_BOOL)0;
	memset((void*)(&res0), 0, sizeof(res0));
	nimln(215, "os.nim");
	LOC1 = (NIM_BOOL)0;
	LOC2 = (int)0;
	LOC2 = stat(filename0->data, (&res0));
	LOC1 = (((NI32) 0) <= LOC2);
	if (!(LOC1)) goto LA3;
	LOC1 = S_ISREG(res0.st_mode);
	LA3: ;
	result0 = LOC1;
	goto BeforeRet;
	}BeforeRet: ;
	popFrame();
	return result0;
}

N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path0) {
	NIM_BOOL result0;
	nimfr("isAbsolute", "ospaths.nim")
	result0 = (NIM_BOOL)0;
	nimln(444, "ospaths.nim");
	if ((NU)(((NI) 0)) > (NU)(path0->Sup.len)) raiseIndexError();
	result0 = ((NU8)(path0->data[((NI) 0)]) == (NU8)(47));
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void) {
	NimStringDesc* result0;
	NI bufsize0;
	nimfr("getCurrentDir", "os.nim")
	result0 = (NimStringDesc*)0;
	nimln(335, "os.nim");
	bufsize0 = ((NI) 1024);
	nimln(336, "os.nim");
	result0 = mnewString(((NI)chckRange(bufsize0, ((NI) 0), ((NI) IL64(9223372036854775807)))));
	{
		nimln(337, "os.nim");
		while (1) {
			nimln(338, "os.nim");
			{
				NCSTRING LOC5;
				NIM_BOOL LOC6;
				int LOC9;
				nimln(347, "system.nim");
				nimln(338, "os.nim");
				LOC5 = (NCSTRING)0;
				LOC5 = getcwd(result0->data, bufsize0);
				LOC6 = (NIM_BOOL)0;
				LOC6 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(LOC5, NIM_NIL);
				if (!!(LOC6)) goto LA7;
				nimln(339, "os.nim");
				LOC9 = (int)0;
				LOC9 = strlen(result0->data);
				result0 = setLengthStr(result0, ((NI)chckRange(LOC9, ((NI) 0), ((NI) IL64(9223372036854775807)))));
				nimln(340, "os.nim");
				goto LA1;
			}
			goto LA3;
			LA7: ;
			{
				NI32 err0;
				nimln(342, "os.nim");
				err0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
				nimln(343, "os.nim");
				{
					if (!(err0 == ERANGE)) goto LA13;
					nimln(344, "os.nim");
					bufsize0 = (NI)((NU64)(bufsize0) << (NU64)(((NI) 1)));
					nimln(345, "os.nim");
					{
						if (!!((((NI) 0) <= bufsize0))) goto LA17;
						raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_19));
					}
					LA17: ;
					nimln(346, "os.nim");
					result0 = mnewString(((NI)chckRange(bufsize0, ((NI) 0), ((NI) IL64(9223372036854775807)))));
				}
				goto LA11;
				LA13: ;
				{
					NI32 LOC20;
					nimln(348, "os.nim");
					LOC20 = (NI32)0;
					LOC20 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
					raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC20, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
				}
				LA11: ;
			}
			LA3: ;
		}
	} LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(void, putenv_Ewmee2rKQBhOdwD9bJ4Lh8A)(NimStringDesc* key0, NimStringDesc* val0) {
	NI indx0;
	nimfr("putEnv", "os.nim")
	nimln(797, "os.nim");
	indx0 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0);
	nimln(798, "os.nim");
	{
		NimStringDesc* LOC5;
		if (!(((NI) 0) <= indx0)) goto LA3;
		nimln(799, "os.nim");
		if ((NU)(indx0) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError();
		LOC5 = (NimStringDesc*)0;
		LOC5 = rawNewString(key0->Sup.len + val0->Sup.len + 1);
appendString(LOC5, key0);
appendChar(LOC5, 61);
appendString(LOC5, val0);
		asgnRefNoCycle((void**) (&environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[indx0]), LOC5);
	}
	goto LA1;
	LA3: ;
	{
		NimStringDesc* LOC7;
		NimStringDesc* LOC8;
		nimln(801, "os.nim");
		LOC7 = (NimStringDesc*)0;
		LOC7 = rawNewString(key0->Sup.len + val0->Sup.len + 1);
appendString(LOC7, key0);
appendChar(LOC7, 61);
appendString(LOC7, val0);
		environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(environment_mlhK49b6YMgc9cgrcYkKq9a3g)->Sup, sizeof(NimStringDesc*));
		LOC8 = (NimStringDesc*)0;
		LOC8 = environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len]; environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len] = copyStringRC1(LOC7);
		if (LOC8) nimGCunrefNoCycle(LOC8);
		++environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len;
		nimln(802, "os.nim");
		indx0 = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1);
	}
	LA1: ;
	nimln(804, "os.nim");
	{
		int LOC11;
		NI32 LOC14;
		nimln(347, "system.nim");
		nimln(804, "os.nim");
		if ((NU)(indx0) >= (NU)(environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len)) raiseIndexError();
		LOC11 = (int)0;
		LOC11 = putenv(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[indx0]->data);
		if (!!((LOC11 == ((NI32) 0)))) goto LA12;
		nimln(805, "os.nim");
		LOC14 = (NI32)0;
		LOC14 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC14, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA12: ;
	popFrame();
}

N_NIMCALL(NI, nosexecShellCmd)(NimStringDesc* command0) {
	NI result0;
	int LOC1;
	nimfr("execShellCmd", "os.nim")
	result0 = (NI)0;
	nimln(679, "os.nim");
	LOC1 = (int)0;
	LOC1 = system(command0->data);
	result0 = ((NI) ((NI32)((NU64)(LOC1) >> (NU64)(((NI) 8)))));
	popFrame();
	return result0;
}

N_NIMCALL(NimStringDesc*, nosgetTempDir)(void) {
	NimStringDesc* result0;
	nimfr("getTempDir", "ospaths.nim")
{	result0 = (NimStringDesc*)0;
	nimln(526, "ospaths.nim");
	result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_20));
	goto BeforeRet;
	}BeforeRet: ;
	popFrame();
	return result0;
}

N_NIMCALL(void, noscopyFile)(NimStringDesc* source0, NimStringDesc* dest0) {
	FILE* d0;
	FILE* s0;
	void* buf0;
	nimfr("copyFile", "os.nim")
	d0 = (FILE*)0;
	s0 = (FILE*)0;
	nimln(599, "os.nim");
	{
		NIM_BOOL LOC3;
		NI32 LOC6;
		LOC3 = (NIM_BOOL)0;
		LOC3 = open_sEp0GH2306oGo9bqBpj5oTQ(&s0, source0, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0), ((NI) -1));
		if (!!(LOC3)) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA4: ;
	nimln(600, "os.nim");
	{
		NIM_BOOL LOC9;
		NI32 LOC12;
		LOC9 = (NIM_BOOL)0;
		LOC9 = open_sEp0GH2306oGo9bqBpj5oTQ(&d0, dest0, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 1), ((NI) -1));
		if (!!(LOC9)) goto LA10;
		nimln(601, "os.nim");
		close_BWnr8V7RERYno9bIdPmw8Hw(s0);
		nimln(602, "os.nim");
		LOC12 = (NI32)0;
		LOC12 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC12, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA10: ;
	nimln(603, "os.nim");
	buf0 = alloc_sVm4rDImKK2ZDdylByayiA(((NI) 8000));
	{
		nimln(604, "os.nim");
		while (1) {
			NI bytesread0;
			nimln(605, "os.nim");
			bytesread0 = readbuffer_1qjbrvfnPD4PaIieHVDvhw(s0, buf0, ((NI) 8000));
			nimln(606, "os.nim");
			{
				NI byteswritten0;
				if (!(((NI) 0) < bytesread0)) goto LA17;
				nimln(607, "os.nim");
				byteswritten0 = writebuffer_1qjbrvfnPD4PaIieHVDvhw_2(d0, buf0, ((NI)chckRange(bytesread0, ((NI) 0), ((NI) IL64(9223372036854775807)))));
				nimln(608, "os.nim");
				{
					NI32 LOC23;
					nimln(347, "system.nim");
					nimln(608, "os.nim");
					if (!!((bytesread0 == byteswritten0))) goto LA21;
					nimln(609, "os.nim");
					dealloc_RCjNtRnHdRYntrcE7YtwWw(buf0);
					nimln(610, "os.nim");
					close_BWnr8V7RERYno9bIdPmw8Hw(s0);
					nimln(611, "os.nim");
					close_BWnr8V7RERYno9bIdPmw8Hw(d0);
					nimln(612, "os.nim");
					LOC23 = (NI32)0;
					LOC23 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
					raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC23, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
				}
				LA21: ;
			}
			LA17: ;
			nimln(613, "os.nim");
			{
				nimln(347, "system.nim");
				nimln(613, "os.nim");
				if (!!((bytesread0 == ((NI) 8000)))) goto LA26;
				goto LA13;
			}
			LA26: ;
		}
	} LA13: ;
	nimln(614, "os.nim");
	dealloc_RCjNtRnHdRYntrcE7YtwWw(buf0);
	nimln(615, "os.nim");
	close_BWnr8V7RERYno9bIdPmw8Hw(s0);
	nimln(616, "os.nim");
	flushfile_BWnr8V7RERYno9bIdPmw8Hw_2(d0);
	nimln(617, "os.nim");
	close_BWnr8V7RERYno9bIdPmw8Hw(d0);
	popFrame();
}

N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0) {
	nimfr("removeFile", "os.nim")
	nimln(665, "os.nim");
	{
		NIM_BOOL LOC3;
		int LOC4;
		NI32 LOC8;
		NCSTRING LOC9;
		NimStringDesc* LOC10;
		LOC3 = (NIM_BOOL)0;
		nimln(347, "system.nim");
		nimln(665, "os.nim");
		LOC4 = (int)0;
		LOC4 = remove(file0->data);
		LOC3 = !((LOC4 == ((NI32) 0)));
		if (!(LOC3)) goto LA5;
		nimln(347, "system.nim");
		nimln(665, "os.nim");
		LOC3 = !((errno == ENOENT));
		LA5: ;
		if (!LOC3) goto LA6;
		nimln(666, "os.nim");
		LOC8 = (NI32)0;
		LOC8 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		LOC9 = (NCSTRING)0;
		LOC9 = strerror(errno);
		LOC10 = (NimStringDesc*)0;
		LOC10 = cstrToNimstr(LOC9);
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC8, LOC10);
	}
	LA6: ;
	popFrame();
}

N_NIMCALL(void, nossetFilePermissions)(NimStringDesc* filename0, Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set permissions0) {
	NI32 p0;
	nimfr("setFilePermissions", "os.nim")
	nimln(546, "os.nim");
	p0 = ((NI32) 0);
	nimln(547, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 2))&15U)))!=0)) goto LA3;
		p0 = (NI32)(p0 | S_IRUSR);
	}
	LA3: ;
	nimln(548, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 1))&15U)))!=0)) goto LA7;
		p0 = (NI32)(p0 | S_IWUSR);
	}
	LA7: ;
	nimln(549, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 0))&15U)))!=0)) goto LA11;
		p0 = (NI32)(p0 | S_IXUSR);
	}
	LA11: ;
	nimln(551, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 5))&15U)))!=0)) goto LA15;
		p0 = (NI32)(p0 | S_IRGRP);
	}
	LA15: ;
	nimln(552, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 4))&15U)))!=0)) goto LA19;
		p0 = (NI32)(p0 | S_IWGRP);
	}
	LA19: ;
	nimln(553, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 3))&15U)))!=0)) goto LA23;
		p0 = (NI32)(p0 | S_IXGRP);
	}
	LA23: ;
	nimln(555, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 8))&15U)))!=0)) goto LA27;
		p0 = (NI32)(p0 | S_IROTH);
	}
	LA27: ;
	nimln(556, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 7))&15U)))!=0)) goto LA31;
		p0 = (NI32)(p0 | S_IWOTH);
	}
	LA31: ;
	nimln(557, "os.nim");
	{
		if (!((permissions0 &(1U<<((NU)(((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 6))&15U)))!=0)) goto LA35;
		p0 = (NI32)(p0 | S_IXOTH);
	}
	LA35: ;
	nimln(559, "os.nim");
	{
		int LOC39;
		NI32 LOC42;
		nimln(347, "system.nim");
		nimln(559, "os.nim");
		LOC39 = (int)0;
		LOC39 = chmod(filename0->data, p0);
		if (!!((LOC39 == ((NI32) 0)))) goto LA40;
		LOC42 = (NI32)0;
		LOC42 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC42, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA40: ;
	popFrame();
}

N_NIMCALL(Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set, nosgetFilePermissions)(NimStringDesc* filename0) {
	Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set result0;
	struct stat a0;
	nimfr("getFilePermissions", "os.nim")
	memset((void*)(&result0), 0, sizeof(result0));
	memset((void*)(&a0), 0, sizeof(a0));
	nimln(515, "os.nim");
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = stat(filename0->data, (&a0));
		if (!(LOC3 < ((NI32) 0))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA4: ;
	nimln(516, "os.nim");
	result0 = 0;
	nimln(517, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(517, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IRUSR) == ((NI32) 0)))) goto LA9;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 2))%(sizeof(NU16)*8));
	}
	LA9: ;
	nimln(518, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(518, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IWUSR) == ((NI32) 0)))) goto LA13;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 1))%(sizeof(NU16)*8));
	}
	LA13: ;
	nimln(519, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(519, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IXUSR) == ((NI32) 0)))) goto LA17;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 0))%(sizeof(NU16)*8));
	}
	LA17: ;
	nimln(521, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(521, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IRGRP) == ((NI32) 0)))) goto LA21;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 5))%(sizeof(NU16)*8));
	}
	LA21: ;
	nimln(522, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(522, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IWGRP) == ((NI32) 0)))) goto LA25;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 4))%(sizeof(NU16)*8));
	}
	LA25: ;
	nimln(523, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(523, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IXGRP) == ((NI32) 0)))) goto LA29;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 3))%(sizeof(NU16)*8));
	}
	LA29: ;
	nimln(525, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(525, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IROTH) == ((NI32) 0)))) goto LA33;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 8))%(sizeof(NU16)*8));
	}
	LA33: ;
	nimln(526, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(526, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IWOTH) == ((NI32) 0)))) goto LA37;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 7))%(sizeof(NU16)*8));
	}
	LA37: ;
	nimln(527, "os.nim");
	{
		nimln(347, "system.nim");
		nimln(527, "os.nim");
		if (!!(((NI32)(a0.st_mode & S_IXOTH) == ((NI32) 0)))) goto LA41;
		result0 |= ((NU16)1)<<((((Filepermission_uTVeDpjCH6aWw9c74YkAskA) 6))%(sizeof(NU16)*8));
	}
	LA41: ;
	popFrame();
	return result0;
}

N_NIMCALL(void, nosinclFilePermissions)(NimStringDesc* filename0, Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set permissions0) {
	Filepermission_uTVeDpjCH6aWw9c74YkAskA_Set LOC1;
	nimfr("inclFilePermissions", "os.nim")
	nimln(1336, "os.nim");
	LOC1 = nosgetFilePermissions(filename0);
	nossetFilePermissions(filename0, (LOC1 | permissions0));
	popFrame();
}

N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0) {
	NIM_BOOL result0;
	struct stat res0;
	NIM_BOOL LOC1;
	int LOC2;
	nimfr("existsDir", "os.nim")
{	result0 = (NIM_BOOL)0;
	memset((void*)(&res0), 0, sizeof(res0));
	nimln(229, "os.nim");
	LOC1 = (NIM_BOOL)0;
	LOC2 = (int)0;
	LOC2 = stat(dir0->data, (&res0));
	LOC1 = (((NI32) 0) <= LOC2);
	if (!(LOC1)) goto LA3;
	LOC1 = S_ISDIR(res0.st_mode);
	LA3: ;
	result0 = LOC1;
	goto BeforeRet;
	}BeforeRet: ;
	popFrame();
	return result0;
}

static N_INLINE(void, pushSafePoint)(TSafePoint* s0) {
	(*s0).hasRaiseAction = NIM_FALSE;
	(*s0).prev = exchandler_rqLlY5bs9atDw2OXYqJEn5g;
	exchandler_rqLlY5bs9atDw2OXYqJEn5g = s0;
}

static N_INLINE(NIM_BOOL, equalmem_fmeFeLBvgmAHG9bC8ETS9bYQsystem)(void* a0, void* b0, NI size0) {
	NIM_BOOL result0;
	int LOC1;
	result0 = (NIM_BOOL)0;
	LOC1 = (int)0;
	LOC1 = memcmp(a0, b0, ((size_t) (size0)));
	result0 = (LOC1 == ((NI32) 0));
	return result0;
}

static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) {
	NIM_BOOL result0;
	NIM_BOOL LOC11;
{	result0 = (NIM_BOOL)0;
	{
		if (!(a0 == b0)) goto LA3;
		result0 = NIM_TRUE;
		goto BeforeRet;
	}
	LA3: ;
	{
		NIM_BOOL LOC7;
		LOC7 = (NIM_BOOL)0;
		LOC7 = (a0 == NIM_NIL);
		if (LOC7) goto LA8;
		LOC7 = (b0 == NIM_NIL);
		LA8: ;
		if (!LOC7) goto LA9;
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	LOC11 = (NIM_BOOL)0;
	LOC11 = ((*a0).Sup.len == (*b0).Sup.len);
	if (!(LOC11)) goto LA12;
	LOC11 = equalmem_fmeFeLBvgmAHG9bC8ETS9bYQsystem(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len)));
	LA12: ;
	result0 = LOC11;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

static N_INLINE(NIM_BOOL, direxists_wf0Ae3eLXw0lSNEFJMV3ogkoch)(NimStringDesc* dir0) {
	NIM_BOOL result0;
	nimfr("dirExists", "os.nim")
	result0 = (NIM_BOOL)0;
	nimln(251, "os.nim");
	nimln(252, "os.nim");
	result0 = nosexistsDir(dir0);
	popFrame();
	return result0;
}

N_NIMCALL(Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg, getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg)(NimStringDesc* path0) {
	Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg result0;
	struct stat s0;
	nimfr("getSymlinkFileKind", "os.nim")
	result0 = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0;
	memset((void*)(&s0), 0, sizeof(s0));
	nimln(916, "os.nim");
	{
		if (!!(!(((path0) && (path0)->Sup.len == 0)))) goto LA3;
		failedassertimpl_aDmpBTs9cPuXp0Mp9cfiNeyA(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_24));
	}
	LA3: ;
	nimln(917, "os.nim");
	{
		int LOC7;
		NI32 LOC10;
		LOC7 = (int)0;
		LOC7 = stat(path0->data, (&s0));
		if (!(LOC7 < ((NI32) 0))) goto LA8;
		nimln(918, "os.nim");
		LOC10 = (NI32)0;
		LOC10 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC10, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA8: ;
	nimln(919, "os.nim");
	{
		NIM_BOOL LOC13;
		LOC13 = (NIM_BOOL)0;
		LOC13 = S_ISDIR(s0.st_mode);
		if (!LOC13) goto LA14;
		nimln(920, "os.nim");
		result0 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3);
	}
	goto LA11;
	LA14: ;
	{
		nimln(922, "os.nim");
		result0 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1);
	}
	LA11: ;
	popFrame();
	return result0;
}

static N_INLINE(void, popSafePoint)(void) {
	exchandler_rqLlY5bs9atDw2OXYqJEn5g = (*exchandler_rqLlY5bs9atDw2OXYqJEn5g).prev;
}

static N_INLINE(void, setFrame)(TFrame* s0) {
	frameptr_HRfVMH3jYeBJz6Q6X9b6Ptw = s0;
}

N_NIMCALL(void, rawremovedir_P9aOuM3pg25yKqgBUm7qKng)(NimStringDesc* dir0) {
	nimfr("rawRemoveDir", "os.nim")
	nimln(1040, "os.nim");
	{
		NIM_BOOL LOC3;
		int LOC4;
		NI32 LOC8;
		LOC3 = (NIM_BOOL)0;
		nimln(347, "system.nim");
		nimln(1040, "os.nim");
		LOC4 = (int)0;
		LOC4 = rmdir(dir0->data);
		LOC3 = !((LOC4 == ((NI32) 0)));
		if (!(LOC3)) goto LA5;
		nimln(347, "system.nim");
		nimln(1040, "os.nim");
		LOC3 = !((errno == ENOENT));
		LA5: ;
		if (!LOC3) goto LA6;
		LOC8 = (NI32)0;
		LOC8 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC8, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA6: ;
	popFrame();
}

N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0) {
	nimfr("removeDir", "os.nim")
	{
		Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg kind_CgYWYOGBi9cm9cxet9aP24amQ;
		NimStringDesc* path_PjxD5WVfFUdiLYTKKL9acYg;
		DIR* d_Snew50d2sxhgjxplaladWA;
		kind_CgYWYOGBi9cm9cxet9aP24amQ = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0;
		path_PjxD5WVfFUdiLYTKKL9acYg = (NimStringDesc*)0;
		nimln(973, "os.nim");
		d_Snew50d2sxhgjxplaladWA = opendir(dir0->data);
		nimln(974, "os.nim");
		{
			TSafePoint T_yu6cxgKBBXbNsTkT9cyMd4g_21;
			nimln(347, "system.nim");
			nimln(973, "os.nim");
			if (!!((d_Snew50d2sxhgjxplaladWA == NIM_NIL))) goto LA4;
			nimln(975, "os.nim");
			pushSafePoint(&T_yu6cxgKBBXbNsTkT9cyMd4g_21);
			T_yu6cxgKBBXbNsTkT9cyMd4g_21.status = setjmp(T_yu6cxgKBBXbNsTkT9cyMd4g_21.context);
			if (T_yu6cxgKBBXbNsTkT9cyMd4g_21.status == 0) {
				{
					nimln(976, "os.nim");
					while (1) {
						{
							struct dirent* x_aQYTEBuHrMi9cGfwwrddjfg;
							NimStringDesc* volatile y_nqt04gTLPSvk7lCmOg2cqg;
							nimln(977, "os.nim");
							x_aQYTEBuHrMi9cGfwwrddjfg = readdir(d_Snew50d2sxhgjxplaladWA);
							nimln(978, "os.nim");
							{
								nimln(977, "os.nim");
								if (!(x_aQYTEBuHrMi9cGfwwrddjfg == NIM_NIL)) goto LA12;
								nimln(978, "os.nim");
								goto LA7;
							}
							LA12: ;
							nimln(979, "os.nim");
							y_nqt04gTLPSvk7lCmOg2cqg = cstrToNimstr(((NCSTRING) ((*x_aQYTEBuHrMi9cGfwwrddjfg).d_name)));
							nimln(980, "os.nim");
							{
								NIM_BOOL LOC16;
								struct stat s_9bKnK2sM9am7zFpvRgFLncWA;
								Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg volatile k_3L6up3asmYrsS0W9b26IJmg;
								LOC16 = (NIM_BOOL)0;
								nimln(347, "system.nim");
								nimln(979, "os.nim");
								LOC16 = !(eqStrings(y_nqt04gTLPSvk7lCmOg2cqg, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_22)));
								if (!(LOC16)) goto LA17;
								nimln(347, "system.nim");
								nimln(979, "os.nim");
								LOC16 = !(eqStrings(y_nqt04gTLPSvk7lCmOg2cqg, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_23)));
								LA17: ;
								if (!LOC16) goto LA18;
								memset((void*)(&s_9bKnK2sM9am7zFpvRgFLncWA), 0, sizeof(s_9bKnK2sM9am7zFpvRgFLncWA));
								nimln(982, "os.nim");
								{
									if (!NIM_TRUE) goto LA22;
									nimln(983, "os.nim");
									y_nqt04gTLPSvk7lCmOg2cqg = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, y_nqt04gTLPSvk7lCmOg2cqg);
								}
								LA22: ;
								nimln(984, "os.nim");
								k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0);
								nimln(987, "os.nim");
								{
									nimln(347, "system.nim");
									nimln(987, "os.nim");
									if (!!(((*x_aQYTEBuHrMi9cGfwwrddjfg).d_type == ((NI8) 0)))) goto LA26;
									nimln(988, "os.nim");
									{
										if (!((*x_aQYTEBuHrMi9cGfwwrddjfg).d_type == ((NI8) 4))) goto LA30;
										k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2);
									}
									LA30: ;
									nimln(989, "os.nim");
									{
										if (!((*x_aQYTEBuHrMi9cGfwwrddjfg).d_type == ((NI8) 10))) goto LA34;
										nimln(990, "os.nim");
										{
											NIM_BOOL LOC38;
											nimln(979, "os.nim");
											LOC38 = (NIM_BOOL)0;
											LOC38 = direxists_wf0Ae3eLXw0lSNEFJMV3ogkoch(y_nqt04gTLPSvk7lCmOg2cqg);
											if (!LOC38) goto LA39;
											nimln(990, "os.nim");
											k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3);
										}
										goto LA36;
										LA39: ;
										{
											nimln(991, "os.nim");
											k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1);
										}
										LA36: ;
									}
									LA34: ;
									nimln(984, "os.nim");
									kind_CgYWYOGBi9cm9cxet9aP24amQ = k_3L6up3asmYrsS0W9b26IJmg;
									nimln(979, "os.nim");
									path_PjxD5WVfFUdiLYTKKL9acYg = y_nqt04gTLPSvk7lCmOg2cqg;
									nimln(1050, "os.nim");
									switch (kind_CgYWYOGBi9cm9cxet9aP24amQ) {
									case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0):
									case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1):
									case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3):
									{
										nimln(1051, "os.nim");
										nosremoveFile(path_PjxD5WVfFUdiLYTKKL9acYg);
									}
									break;
									case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2):
									{
										nimln(1052, "os.nim");
										nosremoveDir(path_PjxD5WVfFUdiLYTKKL9acYg);
									}
									break;
									}
									nimln(993, "os.nim");
									goto LA9;
								}
								LA26: ;
								nimln(995, "os.nim");
								{
									int LOC46;
									LOC46 = (int)0;
									LOC46 = lstat(y_nqt04gTLPSvk7lCmOg2cqg->data, (&s_9bKnK2sM9am7zFpvRgFLncWA));
									if (!(LOC46 < ((NI32) 0))) goto LA47;
									goto LA7;
								}
								LA47: ;
								nimln(996, "os.nim");
								{
									NIM_BOOL LOC51;
									LOC51 = (NIM_BOOL)0;
									LOC51 = S_ISDIR(s_9bKnK2sM9am7zFpvRgFLncWA.st_mode);
									if (!LOC51) goto LA52;
									nimln(997, "os.nim");
									k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2);
								}
								goto LA49;
								LA52: ;
								{
									NIM_BOOL LOC55;
									nimln(998, "os.nim");
									LOC55 = (NIM_BOOL)0;
									LOC55 = S_ISLNK(s_9bKnK2sM9am7zFpvRgFLncWA.st_mode);
									if (!LOC55) goto LA56;
									nimln(999, "os.nim");
									k_3L6up3asmYrsS0W9b26IJmg = getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg(y_nqt04gTLPSvk7lCmOg2cqg);
								}
								goto LA49;
								LA56: ;
								LA49: ;
								nimln(984, "os.nim");
								kind_CgYWYOGBi9cm9cxet9aP24amQ = k_3L6up3asmYrsS0W9b26IJmg;
								nimln(979, "os.nim");
								path_PjxD5WVfFUdiLYTKKL9acYg = y_nqt04gTLPSvk7lCmOg2cqg;
								nimln(1050, "os.nim");
								switch (kind_CgYWYOGBi9cm9cxet9aP24amQ) {
								case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0):
								case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1):
								case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3):
								{
									nimln(1051, "os.nim");
									nosremoveFile(path_PjxD5WVfFUdiLYTKKL9acYg);
								}
								break;
								case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2):
								{
									nimln(1052, "os.nim");
									nosremoveDir(path_PjxD5WVfFUdiLYTKKL9acYg);
								}
								break;
								}
							}
							LA18: ;
						} LA9: ;
					}
				} LA7: ;
				popSafePoint();
			}
			else {
				popSafePoint();
				setFrame((TFrame*)&FR);
			}
			{
				int LOC62;
				nimln(975, "os.nim");
				nimln(973, "os.nim");
				LOC62 = (int)0;
				LOC62 = closedir(d_Snew50d2sxhgjxplaladWA);
			}
			if (T_yu6cxgKBBXbNsTkT9cyMd4g_21.status != 0) reraiseException();
		}
		LA4: ;
	}
	nimln(1053, "os.nim");
	rawremovedir_P9aOuM3pg25yKqgBUm7qKng(dir0);
	popFrame();
}

N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY_7q7q3E6Oj24ZNVJb9aonhAg* Result) {
	nimfr("splitFile", "ospaths.nim")
	nimln(361, "ospaths.nim");
	{
		NIM_BOOL LOC3;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_25;
		LOC3 = (NIM_BOOL)0;
		LOC3 = ((path0 ? path0->Sup.len : 0) == ((NI) 0));
		if (LOC3) goto LA4;
		T_yu6cxgKBBXbNsTkT9cyMd4g_25 = subInt((path0 ? path0->Sup.len : 0), ((NI) 1));
		if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_25)) > (NU)(path0->Sup.len)) raiseIndexError();
		LOC3 = (((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_25)])) == ((NU8)(47)) || ((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_25)])) == ((NU8)(47)));
		LA4: ;
		if (!LOC3) goto LA5;
		nimln(362, "ospaths.nim");
		unsureAsgnRef((void**) (&(*Result).Field0), copyString(path0));
		unsureAsgnRef((void**) (&(*Result).Field1), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)));
		unsureAsgnRef((void**) (&(*Result).Field2), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)));
	}
	goto LA1;
	LA5: ;
	{
		NI seppos0;
		NI dotpos0;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_29;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_30;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_31;
		nimln(364, "ospaths.nim");
		seppos0 = ((NI) -1);
		nimln(365, "ospaths.nim");
		dotpos0 = (path0 ? path0->Sup.len : 0);
		{
			NI i_RvAXC8pcRrjQVcLzMy7Fhw;
			NI HEX3Atmp_yDPmQODHSEiGYJLOLrehCg;
			NI T_yu6cxgKBBXbNsTkT9cyMd4g_26;
			NI res_FD5o2nBImp9bjBTg5egPNBA;
			i_RvAXC8pcRrjQVcLzMy7Fhw = (NI)0;
			HEX3Atmp_yDPmQODHSEiGYJLOLrehCg = (NI)0;
			nimln(366, "ospaths.nim");
			T_yu6cxgKBBXbNsTkT9cyMd4g_26 = subInt((path0 ? path0->Sup.len : 0), ((NI) 1));
			HEX3Atmp_yDPmQODHSEiGYJLOLrehCg = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_26);
			nimln(1896, "system.nim");
			res_FD5o2nBImp9bjBTg5egPNBA = HEX3Atmp_yDPmQODHSEiGYJLOLrehCg;
			{
				nimln(1897, "system.nim");
				while (1) {
					NI T_yu6cxgKBBXbNsTkT9cyMd4g_28;
					nimln(366, "ospaths.nim");
					if (!(((NI) 0) <= res_FD5o2nBImp9bjBTg5egPNBA)) goto LA10;
					nimln(1898, "system.nim");
					i_RvAXC8pcRrjQVcLzMy7Fhw = res_FD5o2nBImp9bjBTg5egPNBA;
					nimln(367, "ospaths.nim");
					{
						if ((NU)(i_RvAXC8pcRrjQVcLzMy7Fhw) > (NU)(path0->Sup.len)) raiseIndexError();
						if (!((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw]) == (NU8)(46))) goto LA13;
						nimln(368, "ospaths.nim");
						{
							NIM_BOOL LOC17;
							NIM_BOOL LOC18;
							NI T_yu6cxgKBBXbNsTkT9cyMd4g_27;
							LOC17 = (NIM_BOOL)0;
							LOC18 = (NIM_BOOL)0;
							LOC18 = (dotpos0 == (path0 ? path0->Sup.len : 0));
							if (!(LOC18)) goto LA19;
							LOC18 = (((NI) 0) < i_RvAXC8pcRrjQVcLzMy7Fhw);
							LA19: ;
							LOC17 = LOC18;
							if (!(LOC17)) goto LA20;
							nimln(1130, "system.nim");
							nimln(369, "ospaths.nim");
							T_yu6cxgKBBXbNsTkT9cyMd4g_27 = subInt(i_RvAXC8pcRrjQVcLzMy7Fhw, ((NI) 1));
							if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_27)) > (NU)(path0->Sup.len)) raiseIndexError();
							LOC17 = !((((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_27)])) == ((NU8)(47)) || ((NU8)(path0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_27)])) == ((NU8)(47))));
							LA20: ;
							if (!LOC17) goto LA21;
							dotpos0 = i_RvAXC8pcRrjQVcLzMy7Fhw;
						}
						LA21: ;
					}
					goto LA11;
					LA13: ;
					{
						nimln(370, "ospaths.nim");
						if ((NU)(i_RvAXC8pcRrjQVcLzMy7Fhw) > (NU)(path0->Sup.len)) raiseIndexError();
						if (!(((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw])) == ((NU8)(47)) || ((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw])) == ((NU8)(47)))) goto LA24;
						nimln(371, "ospaths.nim");
						seppos0 = i_RvAXC8pcRrjQVcLzMy7Fhw;
						nimln(372, "ospaths.nim");
						goto LA8;
					}
					goto LA11;
					LA24: ;
					LA11: ;
					nimln(1896, "system.nim");
					T_yu6cxgKBBXbNsTkT9cyMd4g_28 = subInt(res_FD5o2nBImp9bjBTg5egPNBA, ((NI) 1));
					res_FD5o2nBImp9bjBTg5egPNBA = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_28);
				} LA10: ;
			}
		} LA8: ;
		nimln(373, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_29 = subInt(seppos0, ((NI) 1));
		unsureAsgnRef((void**) (&(*Result).Field0), copyStrLast(path0, ((NI) 0), (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_29)));
		nimln(374, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_30 = addInt(seppos0, ((NI) 1));
		T_yu6cxgKBBXbNsTkT9cyMd4g_31 = subInt(dotpos0, ((NI) 1));
		unsureAsgnRef((void**) (&(*Result).Field1), copyStrLast(path0, (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_30), (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_31)));
		nimln(375, "ospaths.nim");
		unsureAsgnRef((void**) (&(*Result).Field2), copyStr(path0, dotpos0));
	}
	LA1: ;
	popFrame();
}

N_NIMCALL(NIM_BOOL, nossameFileContent)(NimStringDesc* path10, NimStringDesc* path20) {
	NIM_BOOL result0;
	FILE* a0;
	FILE* b0;
	void* bufa0;
	void* bufb0;
	nimfr("sameFileContent", "os.nim")
{	result0 = (NIM_BOOL)0;
	a0 = (FILE*)0;
	b0 = (FILE*)0;
	nimln(471, "os.nim");
	{
		NIM_BOOL LOC3;
		LOC3 = (NIM_BOOL)0;
		LOC3 = open_sEp0GH2306oGo9bqBpj5oTQ(&a0, path10, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0), ((NI) -1));
		if (!!(LOC3)) goto LA4;
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA4: ;
	nimln(472, "os.nim");
	{
		NIM_BOOL LOC8;
		LOC8 = (NIM_BOOL)0;
		LOC8 = open_sEp0GH2306oGo9bqBpj5oTQ(&b0, path20, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0), ((NI) -1));
		if (!!(LOC8)) goto LA9;
		nimln(473, "os.nim");
		close_BWnr8V7RERYno9bIdPmw8Hw(a0);
		nimln(474, "os.nim");
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA9: ;
	nimln(475, "os.nim");
	bufa0 = alloc_sVm4rDImKK2ZDdylByayiA(((NI) 8192));
	nimln(476, "os.nim");
	bufb0 = alloc_sVm4rDImKK2ZDdylByayiA(((NI) 8192));
	{
		nimln(477, "os.nim");
		while (1) {
			NI reada0;
			NI readb0;
			nimln(478, "os.nim");
			reada0 = readbuffer_1qjbrvfnPD4PaIieHVDvhw(a0, bufa0, ((NI) 8192));
			nimln(479, "os.nim");
			readb0 = readbuffer_1qjbrvfnPD4PaIieHVDvhw(b0, bufb0, ((NI) 8192));
			nimln(480, "os.nim");
			{
				nimln(347, "system.nim");
				nimln(480, "os.nim");
				if (!!((reada0 == readb0))) goto LA15;
				nimln(481, "os.nim");
				result0 = NIM_FALSE;
				nimln(482, "os.nim");
				goto LA11;
			}
			LA15: ;
			nimln(483, "os.nim");
			{
				if (!(reada0 == ((NI) 0))) goto LA19;
				nimln(484, "os.nim");
				result0 = NIM_TRUE;
				nimln(485, "os.nim");
				goto LA11;
			}
			LA19: ;
			nimln(486, "os.nim");
			result0 = equalmem_fmeFeLBvgmAHG9bC8ETS9bYQsystem(bufa0, bufb0, ((NI)chckRange(reada0, ((NI) 0), ((NI) IL64(9223372036854775807)))));
			nimln(487, "os.nim");
			{
				if (!!(result0)) goto LA23;
				goto LA11;
			}
			LA23: ;
			nimln(488, "os.nim");
			{
				nimln(347, "system.nim");
				nimln(488, "os.nim");
				if (!!((reada0 == ((NI) 8192)))) goto LA27;
				goto LA11;
			}
			LA27: ;
		}
	} LA11: ;
	nimln(489, "os.nim");
	dealloc_RCjNtRnHdRYntrcE7YtwWw(bufa0);
	nimln(490, "os.nim");
	dealloc_RCjNtRnHdRYntrcE7YtwWw(bufb0);
	nimln(491, "os.nim");
	close_BWnr8V7RERYno9bIdPmw8Hw(a0);
	nimln(492, "os.nim");
	close_BWnr8V7RERYno9bIdPmw8Hw(b0);
	}BeforeRet: ;
	popFrame();
	return result0;
}

N_NIMCALL(void, nossplitPath)(NimStringDesc* path0, TY_UV3llMMYFckfui8YMBuUZA* Result) {
	NI seppos0;
	nimfr("splitPath", "ospaths.nim")
	nimln(244, "ospaths.nim");
	seppos0 = ((NI) -1);
	{
		NI i_PU9a9a9b9ayxLUu9czuig0ggZVg;
		NI HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_32;
		NI res_mg8ARupfA5R2j58N4jwiiA;
		i_PU9a9a9b9ayxLUu9czuig0ggZVg = (NI)0;
		HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg = (NI)0;
		nimln(245, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_32 = subInt((path0 ? path0->Sup.len : 0), ((NI) 1));
		HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_32);
		nimln(1896, "system.nim");
		res_mg8ARupfA5R2j58N4jwiiA = HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg;
		{
			nimln(1897, "system.nim");
			while (1) {
				NI T_yu6cxgKBBXbNsTkT9cyMd4g_33;
				nimln(245, "ospaths.nim");
				if (!(((NI) 0) <= res_mg8ARupfA5R2j58N4jwiiA)) goto LA3;
				nimln(1898, "system.nim");
				i_PU9a9a9b9ayxLUu9czuig0ggZVg = res_mg8ARupfA5R2j58N4jwiiA;
				nimln(246, "ospaths.nim");
				{
					if ((NU)(i_PU9a9a9b9ayxLUu9czuig0ggZVg) > (NU)(path0->Sup.len)) raiseIndexError();
					if (!(((NU8)(path0->data[i_PU9a9a9b9ayxLUu9czuig0ggZVg])) == ((NU8)(47)) || ((NU8)(path0->data[i_PU9a9a9b9ayxLUu9czuig0ggZVg])) == ((NU8)(47)))) goto LA6;
					nimln(247, "ospaths.nim");
					seppos0 = i_PU9a9a9b9ayxLUu9czuig0ggZVg;
					nimln(248, "ospaths.nim");
					goto LA1;
				}
				LA6: ;
				nimln(1896, "system.nim");
				T_yu6cxgKBBXbNsTkT9cyMd4g_33 = subInt(res_mg8ARupfA5R2j58N4jwiiA, ((NI) 1));
				res_mg8ARupfA5R2j58N4jwiiA = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_33);
			} LA3: ;
		}
	} LA1: ;
	nimln(249, "ospaths.nim");
	{
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_34;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_35;
		if (!(((NI) 0) <= seppos0)) goto LA10;
		nimln(250, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_34 = subInt(seppos0, ((NI) 1));
		unsureAsgnRef((void**) (&(*Result).Field0), copyStrLast(path0, ((NI) 0), (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_34)));
		nimln(251, "ospaths.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_35 = addInt(seppos0, ((NI) 1));
		unsureAsgnRef((void**) (&(*Result).Field1), copyStr(path0, (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_35)));
	}
	goto LA8;
	LA10: ;
	{
		nimln(253, "ospaths.nim");
		unsureAsgnRef((void**) (&(*Result).Field0), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)));
		nimln(254, "ospaths.nim");
		unsureAsgnRef((void**) (&(*Result).Field1), copyString(path0));
	}
	LA8: ;
	popFrame();
}

N_NIMCALL(NIM_BOOL, existsenv_ahpnHkfRE9cLlJNaRpEL7Vw)(NimStringDesc* key0) {
	NIM_BOOL result0;
	nimfr("existsEnv", "os.nim")
{	result0 = (NIM_BOOL)0;
	nimln(786, "os.nim");
	{
		NCSTRING LOC3;
		NIM_BOOL LOC4;
		nimln(347, "system.nim");
		nimln(786, "os.nim");
		LOC3 = (NCSTRING)0;
		LOC3 = getenv(key0->data);
		LOC4 = (NIM_BOOL)0;
		LOC4 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgsystem(LOC3, NIM_NIL);
		if (!!(LOC4)) goto LA5;
		result0 = NIM_TRUE;
		goto BeforeRet;
	}
	goto LA1;
	LA5: ;
	{
		NI LOC8;
		nimln(787, "os.nim");
		LOC8 = (NI)0;
		LOC8 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0);
		result0 = (((NI) 0) <= LOC8);
		goto BeforeRet;
	}
	LA1: ;
	}BeforeRet: ;
	popFrame();
	return result0;
}

N_NIMCALL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, nosparseCmdLine)(NimStringDesc* c0) {
	TY_sM4lkSb7zS6F7OVMvW9cffQ* result0;
	NI i0;
	NimStringDesc* a0;
	nimfr("parseCmdLine", "os.nim")
	result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	nimln(1216, "os.nim");
	result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0);
	nimln(1217, "os.nim");
	i0 = ((NI) 0);
	nimln(1218, "os.nim");
	a0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	{
		nimln(1219, "os.nim");
		while (1) {
			NimStringDesc* LOC24;
			nimln(1220, "os.nim");
			a0 = setLengthStr(a0, ((NI) 0));
			{
				nimln(1222, "os.nim");
				while (1) {
					NIM_BOOL LOC5;
					NIM_BOOL LOC6;
					NIM_BOOL LOC7;
					NI T_yu6cxgKBBXbNsTkT9cyMd4g_36;
					LOC5 = (NIM_BOOL)0;
					LOC6 = (NIM_BOOL)0;
					LOC7 = (NIM_BOOL)0;
					if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
					LOC7 = ((NU8)(c0->data[i0]) == (NU8)(32));
					if (LOC7) goto LA8;
					if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
					LOC7 = ((NU8)(c0->data[i0]) == (NU8)(9));
					LA8: ;
					LOC6 = LOC7;
					if (LOC6) goto LA9;
					if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
					LOC6 = ((NU8)(c0->data[i0]) == (NU8)(10));
					LA9: ;
					LOC5 = LOC6;
					if (LOC5) goto LA10;
					if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
					LOC5 = ((NU8)(c0->data[i0]) == (NU8)(13));
					LA10: ;
					if (!LOC5) goto LA4;
					T_yu6cxgKBBXbNsTkT9cyMd4g_36 = addInt(i0, ((NI) 1));
					i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_36);
				} LA4: ;
			}
			nimln(1260, "os.nim");
			if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
			switch (((NU8)(c0->data[i0]))) {
			case 39:
			case 34:
			{
				NIM_CHAR delim0;
				NI T_yu6cxgKBBXbNsTkT9cyMd4g_37;
				nimln(1262, "os.nim");
				if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
				delim0 = c0->data[i0];
				nimln(1263, "os.nim");
				T_yu6cxgKBBXbNsTkT9cyMd4g_37 = addInt(i0, ((NI) 1));
				i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_37);
				{
					nimln(1264, "os.nim");
					while (1) {
						NIM_BOOL LOC14;
						NI T_yu6cxgKBBXbNsTkT9cyMd4g_38;
						LOC14 = (NIM_BOOL)0;
						nimln(347, "system.nim");
						nimln(1264, "os.nim");
						if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
						LOC14 = !(((NU8)(c0->data[i0]) == (NU8)(0)));
						if (!(LOC14)) goto LA15;
						nimln(347, "system.nim");
						nimln(1264, "os.nim");
						if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
						LOC14 = !(((NU8)(c0->data[i0]) == (NU8)(delim0)));
						LA15: ;
						if (!LOC14) goto LA13;
						nimln(1265, "os.nim");
						if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
						a0 = addChar(a0, c0->data[i0]);
						nimln(1266, "os.nim");
						T_yu6cxgKBBXbNsTkT9cyMd4g_38 = addInt(i0, ((NI) 1));
						i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_38);
					} LA13: ;
				}
				nimln(1267, "os.nim");
				{
					NI T_yu6cxgKBBXbNsTkT9cyMd4g_39;
					nimln(347, "system.nim");
					nimln(1267, "os.nim");
					if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
					if (!!(((NU8)(c0->data[i0]) == (NU8)(0)))) goto LA18;
					T_yu6cxgKBBXbNsTkT9cyMd4g_39 = addInt(i0, ((NI) 1));
					i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_39);
				}
				LA18: ;
			}
			break;
			case 0:
			{
				nimln(1268, "os.nim");
				goto LA1;
			}
			break;
			default:
			{
				{
					nimln(1270, "os.nim");
					while (1) {
						NI T_yu6cxgKBBXbNsTkT9cyMd4g_40;
						if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
						if (!((NU8)(32) < (NU8)(c0->data[i0]))) goto LA23;
						nimln(1271, "os.nim");
						if ((NU)(i0) > (NU)(c0->Sup.len)) raiseIndexError();
						a0 = addChar(a0, c0->data[i0]);
						nimln(1272, "os.nim");
						T_yu6cxgKBBXbNsTkT9cyMd4g_40 = addInt(i0, ((NI) 1));
						i0 = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_40);
					} LA23: ;
				}
			}
			break;
			}
			nimln(1273, "os.nim");
			result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(result0)->Sup, sizeof(NimStringDesc*));
			LOC24 = (NimStringDesc*)0;
			LOC24 = result0->data[result0->Sup.len]; result0->data[result0->Sup.len] = copyStringRC1(a0);
			if (LOC24) nimGCunrefNoCycle(LOC24);
			++result0->Sup.len;
		}
	} LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(NIM_BOOL, rawcreatedir_V86QyZrcGMPX0W9bv1Q53ww_2)(NimStringDesc* dir0) {
	NIM_BOOL result0;
	int res0;
	nimfr("rawCreateDir", "os.nim")
	result0 = (NIM_BOOL)0;
	nimln(1070, "os.nim");
	res0 = mkdir(dir0->data, ((mode_t) 511));
	nimln(1071, "os.nim");
	{
		if (!(res0 == ((NI32) 0))) goto LA3;
		nimln(1072, "os.nim");
		result0 = NIM_TRUE;
	}
	goto LA1;
	LA3: ;
	{
		nimln(1073, "os.nim");
		if (!(errno == EEXIST)) goto LA6;
		nimln(1074, "os.nim");
		result0 = NIM_FALSE;
	}
	goto LA1;
	LA6: ;
	{
		NimStringDesc* LOC9;
		NI32 LOC10;
		nimln(1076, "os.nim");
		LOC9 = (NimStringDesc*)0;
		LOC9 = nimIntToStr(((NI) (res0)));
		printf("%s\012", LOC9? (LOC9)->data:"nil");
		fflush(stdout);
		nimln(1077, "os.nim");
		LOC10 = (NI32)0;
		LOC10 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC10, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9));
	}
	LA1: ;
	popFrame();
	return result0;
}

N_NIMCALL(NIM_BOOL, existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww)(NimStringDesc* dir0) {
	NIM_BOOL result0;
	NIM_BOOL LOC1;
	nimfr("existsOrCreateDir", "os.nim")
	result0 = (NIM_BOOL)0;
	nimln(1097, "os.nim");
	LOC1 = (NIM_BOOL)0;
	LOC1 = rawcreatedir_V86QyZrcGMPX0W9bv1Q53ww_2(dir0);
	result0 = !(LOC1);
	nimln(1098, "os.nim");
	{
		if (!result0) goto LA4;
		nimln(1100, "os.nim");
		{
			NIM_BOOL LOC8;
			Ioerror_9czoZw3pzPyrBmb5zTHY1OQ* e_4he5nelRQAcl1XtPfaowrQ;
			NimStringDesc* LOC11;
			LOC8 = (NIM_BOOL)0;
			LOC8 = nosexistsDir(dir0);
			if (!!(LOC8)) goto LA9;
			e_4he5nelRQAcl1XtPfaowrQ = (Ioerror_9czoZw3pzPyrBmb5zTHY1OQ*)0;
			nimln(2560, "system.nim");
			e_4he5nelRQAcl1XtPfaowrQ = (Ioerror_9czoZw3pzPyrBmb5zTHY1OQ*) newObj((&NTI_HX2M9cQhE3jaovp9aYJDdslA), sizeof(Ioerror_9czoZw3pzPyrBmb5zTHY1OQ));
			(*e_4he5nelRQAcl1XtPfaowrQ).Sup.Sup.Sup.m_type = (&NTI_9czoZw3pzPyrBmb5zTHY1OQ);
			nimln(2561, "system.nim");
			LOC11 = (NimStringDesc*)0;
			LOC11 = (*e_4he5nelRQAcl1XtPfaowrQ).Sup.Sup.message; (*e_4he5nelRQAcl1XtPfaowrQ).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_42));
			if (LOC11) nimGCunrefNoCycle(LOC11);
			nimln(1101, "os.nim");
			raiseException((Exception*)e_4he5nelRQAcl1XtPfaowrQ, "IOError");
		}
		LA9: ;
	}
	LA4: ;
	popFrame();
	return result0;
}

N_NIMCALL(void, noscreateDir)(NimStringDesc* dir0) {
	NIM_BOOL omitnext0;
	nimfr("createDir", "os.nim")
	nimln(1111, "os.nim");
	omitnext0 = NIM_FALSE;
	{
		NI i_Qc01IR3dOH3flfNCE6VLpw;
		NI HEX3Atmp_ywziRWYrreLWHtJ4hoirLA;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_41;
		NI res_9bWCBWZ3aqeaop9bwMLK1Y7A;
		i_Qc01IR3dOH3flfNCE6VLpw = (NI)0;
		HEX3Atmp_ywziRWYrreLWHtJ4hoirLA = (NI)0;
		nimln(1114, "os.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_41 = subInt((dir0 ? dir0->Sup.len : 0), ((NI) 1));
		HEX3Atmp_ywziRWYrreLWHtJ4hoirLA = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_41);
		nimln(1908, "system.nim");
		res_9bWCBWZ3aqeaop9bwMLK1Y7A = ((NI) 1);
		{
			nimln(1909, "system.nim");
			while (1) {
				NI T_yu6cxgKBBXbNsTkT9cyMd4g_44;
				nimln(1908, "system.nim");
				if (!(res_9bWCBWZ3aqeaop9bwMLK1Y7A <= HEX3Atmp_ywziRWYrreLWHtJ4hoirLA)) goto LA3;
				nimln(1910, "system.nim");
				i_Qc01IR3dOH3flfNCE6VLpw = res_9bWCBWZ3aqeaop9bwMLK1Y7A;
				nimln(1115, "os.nim");
				{
					if ((NU)(i_Qc01IR3dOH3flfNCE6VLpw) > (NU)(dir0->Sup.len)) raiseIndexError();
					if (!(((NU8)(dir0->data[i_Qc01IR3dOH3flfNCE6VLpw])) == ((NU8)(47)) || ((NU8)(dir0->data[i_Qc01IR3dOH3flfNCE6VLpw])) == ((NU8)(47)))) goto LA6;
					nimln(1116, "os.nim");
					{
						if (!omitnext0) goto LA10;
						nimln(1117, "os.nim");
						omitnext0 = NIM_FALSE;
					}
					goto LA8;
					LA10: ;
					{
						NI T_yu6cxgKBBXbNsTkT9cyMd4g_43;
						NimStringDesc* LOC13;
						NIM_BOOL LOC14;
						nimln(1119, "os.nim");
						T_yu6cxgKBBXbNsTkT9cyMd4g_43 = subInt(i_Qc01IR3dOH3flfNCE6VLpw, ((NI) 1));
						LOC13 = (NimStringDesc*)0;
						LOC13 = copyStrLast(dir0, ((NI) 0), (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_43));
						LOC14 = (NIM_BOOL)0;
						LOC14 = existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww(LOC13);
					}
					LA8: ;
				}
				LA6: ;
				nimln(1908, "system.nim");
				T_yu6cxgKBBXbNsTkT9cyMd4g_44 = addInt(res_9bWCBWZ3aqeaop9bwMLK1Y7A, ((NI) 1));
				res_9bWCBWZ3aqeaop9bwMLK1Y7A = (NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_44);
			} LA3: ;
		}
	}
	nimln(1122, "os.nim");
	{
		NIM_BOOL LOC17;
		NIM_BOOL LOC18;
		NI T_yu6cxgKBBXbNsTkT9cyMd4g_45;
		NIM_BOOL LOC23;
		LOC17 = (NIM_BOOL)0;
		LOC18 = (NIM_BOOL)0;
		LOC18 = (((NI) 0) < (dir0 ? dir0->Sup.len : 0));
		if (!(LOC18)) goto LA19;
		LOC18 = !(omitnext0);
		LA19: ;
		LOC17 = LOC18;
		if (!(LOC17)) goto LA20;
		nimln(1130, "system.nim");
		nimln(1123, "os.nim");
		T_yu6cxgKBBXbNsTkT9cyMd4g_45 = subInt((dir0 ? dir0->Sup.len : 0), ((NI) 1));
		if ((NU)((NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_45)) > (NU)(dir0->Sup.len)) raiseIndexError();
		LOC17 = !((((NU8)(dir0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_45)])) == ((NU8)(47)) || ((NU8)(dir0->data[(NI)(T_yu6cxgKBBXbNsTkT9cyMd4g_45)])) == ((NU8)(47))));
		LA20: ;
		if (!LOC17) goto LA21;
		nimln(1124, "os.nim");
		LOC23 = (NIM_BOOL)0;
		LOC23 = existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww(dir0);
	}
	LA21: ;
	popFrame();
}
NIM_EXTERNC N_NOINLINE(void, stdlib_osInit000)(void) {
	nimfr("os", "os.nim")
nimRegisterGlobalMarker(T_yu6cxgKBBXbNsTkT9cyMd4g_2);
	popFrame();
}

NIM_EXTERNC N_NOINLINE(void, stdlib_osDatInit000)(void) {
}

