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

#include "nimbase.h"
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <setjmp.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/wait.h>
#include <sys/event.h>
#include <sys/types.h>
                       #include <sys/event.h>
                       #include <sys/time.h>
#include <time.h>
#include <signal.h>
#include <stdlib.h>
#undef linux
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
typedef struct Processobj_NHqciQYh8G1aN2n273mmYw Processobj_NHqciQYh8G1aN2n273mmYw;
typedef struct Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw;
typedef struct TNimObject TNimObject;
typedef struct TNimType TNimType;
typedef struct TNimNode TNimNode;
typedef struct Streamobj_RShkcoDOPnoCVhtpN1hDPQ Streamobj_RShkcoDOPnoCVhtpN1hDPQ;
typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ;
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 Exception Exception;
typedef struct TSafePoint TSafePoint;
typedef struct TY_4eQHGndY6XBYpFOH09apV8Q TY_4eQHGndY6XBYpFOH09apV8Q;
typedef struct TY_UV3llMMYFckfui8YMBuUZA TY_UV3llMMYFckfui8YMBuUZA;
typedef struct Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA;
typedef struct Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw;
typedef struct TY_l0xXJxOLtcuhlSBHl64t5w TY_l0xXJxOLtcuhlSBHl64t5w;
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 TY_nmiMWKVIe46vacnhAFrQvw_Set[32];
typedef NU8 Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set;
typedef int TY_SKEqGXcReU4NvbQlH779b5Q[2];
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;
};
struct  TNimObject  {
TNimType* m_type;
};
struct  Processobj_NHqciQYh8G1aN2n273mmYw  {
  TNimObject Sup;
int inhandle;
int outhandle;
int errhandle;
Streamobj_RShkcoDOPnoCVhtpN1hDPQ* instream;
Streamobj_RShkcoDOPnoCVhtpN1hDPQ* outstream;
Streamobj_RShkcoDOPnoCVhtpN1hDPQ* errstream;
pid_t id;
int exitstatus;
Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options;
};
typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ;
struct  TNimNode  {
Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind;
NI offset;
TNimType* typ;
NCSTRING name;
NI len;
TNimNode** sons;
};
typedef NU8 Processoption_bnU6W8LhTMnT4JaSWtGlSA;
typedef NimStringDesc* TY_24KAM9afIUgUaqBaEBB6r9bg[3];
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;
};
typedef NimStringDesc* TY_nHXaesL0DJZHyVS07ARPRA[1];
struct  Exception  {
  TNimObject Sup;
Exception* parent;
NCSTRING name;
NimStringDesc* message;
NimStringDesc* trace;
};
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 NU8 Stringtablemode_G9c4wVDFIzf0xHmQvxso9a9cQ;
struct  Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw  {
  TNimObject Sup;
NI counter;
TY_4eQHGndY6XBYpFOH09apV8Q* data;
Stringtablemode_G9c4wVDFIzf0xHmQvxso9a9cQ mode;
};
struct TY_UV3llMMYFckfui8YMBuUZA {
NimStringDesc* Field0;
NimStringDesc* Field1;
};
struct  Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA  {
NCSTRING syscommand;
NCSTRING* sysargs;
NCSTRING* sysenv;
NCSTRING workingdir;
TY_SKEqGXcReU4NvbQlH779b5Q pstdin;
TY_SKEqGXcReU4NvbQlH779b5Q pstdout;
TY_SKEqGXcReU4NvbQlH779b5Q pstderr;
TY_SKEqGXcReU4NvbQlH779b5Q perrorpipe;
NIM_BOOL optionpousepath;
NIM_BOOL optionpoparentstreams;
NIM_BOOL optionpostderrtostdout;
};
typedef NimStringDesc* TY_Re75IspeoxXy2oCZHwcRrA[2];
typedef NU8 Filemode_fVUBHvW79bXUw1j55Oo9avSQ;
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (NI idx0, void* ClEnv);
void* ClEnv;
} TY_kElEuvYkhDcTHhB3d89aMYA;
typedef struct {
N_NIMCALL_PTR(void, ClPrc) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0, void* ClEnv);
void* ClEnv;
} TY_SfW5itioRNR8yop8fOJeNg;
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_21) (NI idx0);
typedef NimStringDesc* TY_8ZvwQIddfpj2THRVPsFzIQ[1];
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_23) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_24) (NI idx0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_25) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_26) (NI idx0);
typedef N_CLOSURE_PTR(void, T_HZdw8BhppcTQo8DIK46LSg_27) (NI idx0, Processobj_NHqciQYh8G1aN2n273mmYw* p0);
typedef N_NIMCALL_PTR(void, TY_cnkJEp9bna8U6yi9aVW9cAJ0Q) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
typedef N_NIMCALL_PTR(NIM_BOOL, TY_KjFcmLOhf4VQvVcyLJWXZw) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
typedef N_NIMCALL_PTR(void, TY_jlOYFw9cHausuCbPoWx2iiA) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, NI pos0);
typedef N_NIMCALL_PTR(NI, TY_Xzm85qBLb9cf9cu8VOfAr8PQ) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
typedef N_NIMCALL_PTR(NI, TY_tjaJtoUzLe1BMUbItlcGhQ) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0);
typedef N_NIMCALL_PTR(void, TY_b9bsIuILxTLVZHPvJBW187A) (Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0, void* buffer0, NI buflen0);
struct  Streamobj_RShkcoDOPnoCVhtpN1hDPQ  {
  TNimObject Sup;
TY_cnkJEp9bna8U6yi9aVW9cAJ0Q closeimpl;
TY_KjFcmLOhf4VQvVcyLJWXZw atendimpl;
TY_jlOYFw9cHausuCbPoWx2iiA setpositionimpl;
TY_Xzm85qBLb9cf9cu8VOfAr8PQ getpositionimpl;
TY_tjaJtoUzLe1BMUbItlcGhQ readdataimpl;
TY_tjaJtoUzLe1BMUbItlcGhQ peekdataimpl;
TY_b9bsIuILxTLVZHPvJBW187A writedataimpl;
TY_cnkJEp9bna8U6yi9aVW9cAJ0Q flushimpl;
};
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  Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw  {
  Streamobj_RShkcoDOPnoCVhtpN1hDPQ Sup;
FILE* f;
};
struct  Freecell_u6M5LHprqzkn9axr04yg9bGQ  {
Freecell_u6M5LHprqzkn9axr04yg9bGQ* next;
NI zerofield;
};
struct TY_sM4lkSb7zS6F7OVMvW9cffQ {
  TGenericSeq Sup;
  NimStringDesc* data[SEQ_DECL_SIZE];
};
struct TY_l0xXJxOLtcuhlSBHl64t5w {
  TGenericSeq Sup;
  Processobj_NHqciQYh8G1aN2n273mmYw* data[SEQ_DECL_SIZE];
};
struct TY_4eQHGndY6XBYpFOH09apV8Q {
  TGenericSeq Sup;
  TY_UV3llMMYFckfui8YMBuUZA data[SEQ_DECL_SIZE];
};
N_NIMCALL(NimStringDesc*, nospquoteShellPosix)(NimStringDesc* s0);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0);
N_NIMCALL(NIM_BOOL, allcharsinset_wVfr4F6j4mVzI8ggLoMVdw)(NimStringDesc* s0, TY_nmiMWKVIe46vacnhAFrQvw_Set theset0);
static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0);
static N_INLINE(void, copymem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest0, void* source0, NI size0);
N_NIMCALL(NimStringDesc*, nsuReplaceStr)(NimStringDesc* s0, NimStringDesc* sub0, NimStringDesc* by0);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space0);
N_NIMCALL(void, nimGCvisit)(void* d0, NI op0);
static N_NIMCALL(void, Marker_TY_Ryg5db24dBRIzTUa2BQTPg)(void* p, NI op);
N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0);
N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0);
N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void);
N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0);
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(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0);
N_NIMCALL(NCSTRING*, alloccstringarray_TG6GWpa9cdnVJVGZxJaqBJg)(NimStringDesc** a0, NI a0Len0);
static N_INLINE(void, pushSafePoint)(TSafePoint* s0);
N_NIMCALL(NCSTRING*, envtocstringarray_5W8jibc9b9cn0LB5f6DkUbiA)(void);
N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void);
N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s0, NIM_CHAR sub0, NI start0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_WPWyPKk58Cr5a6XFFviMjg, NI last0);
N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0);
N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0);
N_NOCONV(void*, alloc0_sVm4rDImKK2ZDdylByayiA)(NI size0);
N_NOCONV(void*, alloc_sVm4rDImKK2ZDdylByayiA_2)(NI size0);
N_NIMCALL(NCSTRING*, envtocstringarray_powWbjMeev5megN9bWVjfTw)(Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* t0);
N_NIMCALL(NI, nstlen)(Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* t0);
N_NIMCALL(pid_t, startprocessauxfork_VwNkkMfMOAO9b1isfsqmrNQ)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0);
N_CDECL(void, startprocessafterfork_kP8IoxkYQ0xKBWMKeIF3Cw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0);
N_NIMCALL(void, startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0);
N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr0, NimStringDesc** a0, NI a0Len0);
N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0);
static N_INLINE(void, popSafePoint)(void);
N_NIMCALL(void, reraiseException)(void);
N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a0, NI a0Len0, NimStringDesc* sep0);
N_NIMCALL(void, dealloccstringarray_PrKbmufafP6J0HO6K4x3tQ)(NCSTRING* a0);
N_NIMCALL(void, createstream_v8G6hIKoW7oNggVYf9a9c7dQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ** stream0, int* handle0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ filemode0);
N_NIMCALL(NIM_BOOL, open_GRr4dBTChSldEteMxZDsuw)(FILE** f0, int filehandle0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ mode0);
N_NIMCALL(Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw*, newfilestream_j9aOzR9a9bXMSUnTXiGmXXGqQ)(FILE* f0);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);
N_NIMCALL(NI, ncpicountProcessors)(void);
static N_NIMCALL(void, Marker_TY_l0xXJxOLtcuhlSBHl64t5w)(void* p, NI op);
N_NIMCALL(Processobj_NHqciQYh8G1aN2n273mmYw*, nospstartProcess)(NimStringDesc* command0, NimStringDesc* workingdir0, NimStringDesc** args0, NI args0Len0, Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* env0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0);
static N_INLINE(void, asgnRef)(void** dest0, void* src0);
static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0);
N_NIMCALL(void, nossleep)(NI milsecs0);
N_NIMCALL(NIM_BOOL, nosprunning)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_NIMCALL(NI, nospwaitForExit)(Processobj_NHqciQYh8G1aN2n273mmYw* p0, NI timeout0);
N_NIMCALL(void, nospclose)(Processobj_NHqciQYh8G1aN2n273mmYw* p0);
N_NIMCALL(void, close_4ed7IXme7lqtClFI7s2sTQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ* s0);
extern NCSTRING* environ;
extern TNimType NTI_13RNkKqUOX1TtorOUlKtqA;
TNimType NTI_NHqciQYh8G1aN2n273mmYw;
extern TNimType NTI_UtShRB9b1wZO9cvpdowm9cefA;
extern TNimType NTI_r3Wc5tOoxP8rz1DvGVTUvw;
extern TNimType NTI_CHeEDdL3roTPu81s9cOH0Bw;
extern TNimType NTI_nlCscttRCss70IBTyuBqnA;
TNimType NTI_bnU6W8LhTMnT4JaSWtGlSA;
TNimType NTI_HlmBYNr2gdAZMXOsuiSZ0A;
TNimType NTI_Ryg5db24dBRIzTUa2BQTPg;
extern TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ;
extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g;
extern TY_sM4lkSb7zS6F7OVMvW9cffQ* environment_mlhK49b6YMgc9cgrcYkKq9a3g;
TNimType NTI_l0xXJxOLtcuhlSBHl64t5w;
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_2, "\'\'", 2);
static NIM_CONST TY_nmiMWKVIe46vacnhAFrQvw_Set T_HZdw8BhppcTQo8DIK46LSg_3 = {
0x00, 0x00, 0x00, 0x00, 0x20, 0xE8, 0xFF, 0x27,
0xFF, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
;
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_4, "\'", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_5, "\'\"\'\"\'", 5);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_10, "", 0);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_11, "/bin/sh", 7);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_12, "-c", 2);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_14, "=", 1);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_17, "Could not find command: \'$1\'. OS error: $2", 42);
STRING_LITERAL(T_HZdw8BhppcTQo8DIK46LSg_18, " ", 1);
static NIM_CONST TY_kElEuvYkhDcTHhB3d89aMYA T_HZdw8BhppcTQo8DIK46LSg_20 = {NIM_NIL,NIM_NIL};
static NIM_CONST TY_SfW5itioRNR8yop8fOJeNg T_HZdw8BhppcTQo8DIK46LSg_22 = {NIM_NIL,NIM_NIL};

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;
}

N_NIMCALL(NimStringDesc*, nospquoteShellPosix)(NimStringDesc* s0) {
	NimStringDesc* result0;
	NIM_BOOL safe0;
{	result0 = (NimStringDesc*)0;
	{
		if (!((s0 ? s0->Sup.len : 0) == ((NI) 0))) goto LA3;
		result0 = copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_2));
		goto BeforeRet;
	}
	LA3: ;
	safe0 = allcharsinset_wVfr4F6j4mVzI8ggLoMVdw(s0, T_HZdw8BhppcTQo8DIK46LSg_3);
	{
		if (!safe0) goto LA7;
		result0 = copyString(s0);
		goto BeforeRet;
	}
	goto LA5;
	LA7: ;
	{
		NimStringDesc* LOC10;
		NimStringDesc* LOC11;
		LOC10 = (NimStringDesc*)0;
		LOC11 = (NimStringDesc*)0;
		LOC11 = nsuReplaceStr(s0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_4), ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_5));
		LOC10 = rawNewString(LOC11->Sup.len + 2);
appendString(LOC10, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_4));
appendString(LOC10, LOC11);
appendString(LOC10, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_4));
		result0 = LOC10;
		goto BeforeRet;
	}
	LA5: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NimStringDesc*, nospquoteShell)(NimStringDesc* s0) {
	NimStringDesc* result0;
{	result0 = (NimStringDesc*)0;
	result0 = nospquoteShellPosix(s0);
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}
static N_NIMCALL(void, Marker_TY_Ryg5db24dBRIzTUa2BQTPg)(void* p, NI op) {
	Processobj_NHqciQYh8G1aN2n273mmYw* a;
	a = (Processobj_NHqciQYh8G1aN2n273mmYw*)p;
	nimGCvisit((void*)(*a).instream, op);
	nimGCvisit((void*)(*a).outstream, op);
	nimGCvisit((void*)(*a).errstream, op);
}

static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0;
	result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (usr0))) - (NU64)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result0;
}

static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p0) {
	Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0;
	c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0);
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

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

N_NIMCALL(NCSTRING*, envtocstringarray_5W8jibc9b9cn0LB5f6DkUbiA)(void) {
	NCSTRING* result0;
	NI counter0;
	void* LOC5;
	NI i0;
	result0 = (NCSTRING*)0;
	counter0 = ((NI) 0);
	{
		NimStringDesc* key_iOJVgU8trGnsa5UUkfMQQw;
		NimStringDesc* val_l4zUk3N1L5q1rae9aqyrzlQ;
		key_iOJVgU8trGnsa5UUkfMQQw = (NimStringDesc*)0;
		val_l4zUk3N1L5q1rae9aqyrzlQ = (NimStringDesc*)0;
		getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA();
		{
			NI i_Hd1K6kr9c3wWUaggjQYrB2Q;
			NI HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA;
			NI res_LlS0hAmVKuX9cJ3vjpW57WA;
			i_Hd1K6kr9c3wWUaggjQYrB2Q = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1);
			res_LlS0hAmVKuX9cJ3vjpW57WA = ((NI) 0);
			{
				while (1) {
					NI p_N9bxSvtEv4BRE4OmLvrlZOw;
					if (!(res_LlS0hAmVKuX9cJ3vjpW57WA <= HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA)) goto LA4;
					i_Hd1K6kr9c3wWUaggjQYrB2Q = res_LlS0hAmVKuX9cJ3vjpW57WA;
					p_N9bxSvtEv4BRE4OmLvrlZOw = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q], 61, ((NI) 0));
					key_iOJVgU8trGnsa5UUkfMQQw = copyStrLast(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q], ((NI) 0), (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw - ((NI) 1)));
					val_l4zUk3N1L5q1rae9aqyrzlQ = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q], (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw + ((NI) 1)));
					counter0 += ((NI) 1);
					res_LlS0hAmVKuX9cJ3vjpW57WA += ((NI) 1);
				} LA4: ;
			}
		}
	}
	LOC5 = (void*)0;
	LOC5 = alloc0_sVm4rDImKK2ZDdylByayiA(((NI) ((NI)((NI)(counter0 + ((NI) 1)) * ((NI) 8)))));
	result0 = ((NCSTRING*) (LOC5));
	i0 = ((NI) 0);
	{
		NimStringDesc* key_iOJVgU8trGnsa5UUkfMQQw_2;
		NimStringDesc* val_l4zUk3N1L5q1rae9aqyrzlQ_2;
		key_iOJVgU8trGnsa5UUkfMQQw_2 = (NimStringDesc*)0;
		val_l4zUk3N1L5q1rae9aqyrzlQ_2 = (NimStringDesc*)0;
		getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA();
		{
			NI i_Hd1K6kr9c3wWUaggjQYrB2Q_2;
			NI HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2;
			NI res_LlS0hAmVKuX9cJ3vjpW57WA_2;
			i_Hd1K6kr9c3wWUaggjQYrB2Q_2 = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2 = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2 = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1);
			res_LlS0hAmVKuX9cJ3vjpW57WA_2 = ((NI) 0);
			{
				while (1) {
					NI p_N9bxSvtEv4BRE4OmLvrlZOw_2;
					NimStringDesc* x0;
					NimStringDesc* LOC10;
					void* LOC11;
					if (!(res_LlS0hAmVKuX9cJ3vjpW57WA_2 <= HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_2)) goto LA9;
					i_Hd1K6kr9c3wWUaggjQYrB2Q_2 = res_LlS0hAmVKuX9cJ3vjpW57WA_2;
					p_N9bxSvtEv4BRE4OmLvrlZOw_2 = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q_2], 61, ((NI) 0));
					key_iOJVgU8trGnsa5UUkfMQQw_2 = copyStrLast(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q_2], ((NI) 0), (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw_2 - ((NI) 1)));
					val_l4zUk3N1L5q1rae9aqyrzlQ_2 = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_Hd1K6kr9c3wWUaggjQYrB2Q_2], (NI)(p_N9bxSvtEv4BRE4OmLvrlZOw_2 + ((NI) 1)));
					LOC10 = (NimStringDesc*)0;
					LOC10 = rawNewString(key_iOJVgU8trGnsa5UUkfMQQw_2->Sup.len + val_l4zUk3N1L5q1rae9aqyrzlQ_2->Sup.len + 1);
appendString(LOC10, key_iOJVgU8trGnsa5UUkfMQQw_2);
appendString(LOC10, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_14));
appendString(LOC10, val_l4zUk3N1L5q1rae9aqyrzlQ_2);
					x0 = LOC10;
					LOC11 = (void*)0;
					LOC11 = alloc_sVm4rDImKK2ZDdylByayiA_2(((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
					result0[(i0)- 0] = ((NCSTRING) (LOC11));
					copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) (result0[(i0)- 0])), ((void*) ((&x0->data[((NI) 0)]))), ((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
					i0 += ((NI) 1);
					res_LlS0hAmVKuX9cJ3vjpW57WA_2 += ((NI) 1);
				} LA9: ;
			}
		}
	}
	return result0;
}

N_NIMCALL(NCSTRING*, envtocstringarray_powWbjMeev5megN9bWVjfTw)(Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* t0) {
	NCSTRING* result0;
	NI LOC1;
	void* LOC2;
	NI i0;
	result0 = (NCSTRING*)0;
	LOC1 = (NI)0;
	LOC1 = nstlen(t0);
	LOC2 = (void*)0;
	LOC2 = alloc0_sVm4rDImKK2ZDdylByayiA(((NI) ((NI)((NI)(LOC1 + ((NI) 1)) * ((NI) 8)))));
	result0 = ((NCSTRING*) (LOC2));
	i0 = ((NI) 0);
	{
		NimStringDesc* key_iOJVgU8trGnsa5UUkfMQQw_3;
		NimStringDesc* val_l4zUk3N1L5q1rae9aqyrzlQ_3;
		key_iOJVgU8trGnsa5UUkfMQQw_3 = (NimStringDesc*)0;
		val_l4zUk3N1L5q1rae9aqyrzlQ_3 = (NimStringDesc*)0;
		{
			NI h_RYkURB9cgLOUJ9bLZxFIW31A;
			NI HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3;
			NI res_LlS0hAmVKuX9cJ3vjpW57WA_3;
			h_RYkURB9cgLOUJ9bLZxFIW31A = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3 = (NI)0;
			HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3 = ((*t0).data ? ((*t0).data->Sup.len-1) : -1);
			res_LlS0hAmVKuX9cJ3vjpW57WA_3 = ((NI) 0);
			{
				while (1) {
					if (!(res_LlS0hAmVKuX9cJ3vjpW57WA_3 <= HEX3Atmp_lM5WoIm2quV0NXTN8eNv9bA_3)) goto LA6;
					h_RYkURB9cgLOUJ9bLZxFIW31A = res_LlS0hAmVKuX9cJ3vjpW57WA_3;
					{
						NimStringDesc* x0;
						NimStringDesc* LOC11;
						void* LOC12;
						if (!!(((*t0).data->data[h_RYkURB9cgLOUJ9bLZxFIW31A].Field0 == 0))) goto LA9;
						key_iOJVgU8trGnsa5UUkfMQQw_3 = (*t0).data->data[h_RYkURB9cgLOUJ9bLZxFIW31A].Field0;
						val_l4zUk3N1L5q1rae9aqyrzlQ_3 = (*t0).data->data[h_RYkURB9cgLOUJ9bLZxFIW31A].Field1;
						LOC11 = (NimStringDesc*)0;
						LOC11 = rawNewString(key_iOJVgU8trGnsa5UUkfMQQw_3->Sup.len + val_l4zUk3N1L5q1rae9aqyrzlQ_3->Sup.len + 1);
appendString(LOC11, key_iOJVgU8trGnsa5UUkfMQQw_3);
appendString(LOC11, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_14));
appendString(LOC11, val_l4zUk3N1L5q1rae9aqyrzlQ_3);
						x0 = LOC11;
						LOC12 = (void*)0;
						LOC12 = alloc_sVm4rDImKK2ZDdylByayiA_2(((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
						result0[(i0)- 0] = ((NCSTRING) (LOC12));
						copymem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) (result0[(i0)- 0])), ((void*) ((&x0->data[((NI) 0)]))), ((NI) ((NI)((x0 ? x0->Sup.len : 0) + ((NI) 1)))));
						i0 += ((NI) 1);
					}
					LA9: ;
					res_LlS0hAmVKuX9cJ3vjpW57WA_3 += ((NI) 1);
				} LA6: ;
			}
		}
	}
	return result0;
}

N_NIMCALL(void, startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0) {
	int error0;
	NI LOC1;
	error0 = errno;
	LOC1 = (NI)0;
	LOC1 = write((*data0).perrorpipe[(((NI) 1))- 0], ((void*) ((&error0))), ((NI) 4));
	_exit(((NI) 1));
}

N_CDECL(void, startprocessafterfork_kP8IoxkYQ0xKBWMKeIF3Cw)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0) {
	int LOC42;
	int LOC43;
	{
		int LOC5;
		int LOC11;
		int LOC17;
		if (!!((*data0).optionpoparentstreams)) goto LA3;
		LOC5 = (int)0;
		LOC5 = close((*data0).pstdin[(((NI) 1))- 0]);
		{
			int LOC8;
			LOC8 = (int)0;
			LOC8 = dup2((*data0).pstdin[(((NI) 0))- 0], ((int) 0));
			if (!(LOC8 < ((NI32) 0))) goto LA9;
			startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
		}
		LA9: ;
		LOC11 = (int)0;
		LOC11 = close((*data0).pstdout[(((NI) 0))- 0]);
		{
			int LOC14;
			LOC14 = (int)0;
			LOC14 = dup2((*data0).pstdout[(((NI) 1))- 0], ((int) 1));
			if (!(LOC14 < ((NI32) 0))) goto LA15;
			startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
		}
		LA15: ;
		LOC17 = (int)0;
		LOC17 = close((*data0).pstderr[(((NI) 0))- 0]);
		{
			if (!(*data0).optionpostderrtostdout) goto LA20;
			{
				int LOC24;
				LOC24 = (int)0;
				LOC24 = dup2((*data0).pstdout[(((NI) 1))- 0], ((int) 2));
				if (!(LOC24 < ((NI32) 0))) goto LA25;
				startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
			}
			LA25: ;
		}
		goto LA18;
		LA20: ;
		{
			{
				int LOC30;
				LOC30 = (int)0;
				LOC30 = dup2((*data0).pstderr[(((NI) 1))- 0], ((int) 2));
				if (!(LOC30 < ((NI32) 0))) goto LA31;
				startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
			}
			LA31: ;
		}
		LA18: ;
	}
	LA3: ;
	{
		if (!(((NI) 0) < ((*data0).workingdir ? strlen((*data0).workingdir) : 0))) goto LA35;
		{
			int LOC39;
			LOC39 = (int)0;
			LOC39 = chdir((*data0).workingdir);
			if (!(LOC39 < ((NI32) 0))) goto LA40;
			startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
		}
		LA40: ;
	}
	LA35: ;
	LOC42 = (int)0;
	LOC42 = close((*data0).perrorpipe[(((NI) 0))- 0]);
	LOC43 = (int)0;
	LOC43 = fcntl((*data0).perrorpipe[(((NI) 1))- 0], F_SETFD, FD_CLOEXEC);
	{
		int LOC48;
		if (!(*data0).optionpousepath) goto LA46;
		environ = (*data0).sysenv;
		LOC48 = (int)0;
		LOC48 = execvp((*data0).syscommand, (*data0).sysargs);
	}
	goto LA44;
	LA46: ;
	{
		int LOC50;
		LOC50 = (int)0;
		LOC50 = execve((*data0).syscommand, (*data0).sysargs, (*data0).sysenv);
	}
	LA44: ;
	startprocessfail_1Q2da9a7NmGuR0Ogak2NKkw(data0);
}

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

N_NIMCALL(pid_t, startprocessauxfork_VwNkkMfMOAO9b1isfsqmrNQ)(Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA* data0) {
	pid_t volatile result0;
	TSafePoint T_HZdw8BhppcTQo8DIK46LSg_16;
{	result0 = (pid_t)0;
	{
		int LOC3;
		NI32 LOC6;
		LOC3 = (int)0;
		LOC3 = pipe((*data0).perrorpipe);
		if (!!((LOC3 == ((NI32) 0)))) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
	}
	LA4: ;
	pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_16);
	T_HZdw8BhppcTQo8DIK46LSg_16.status = _setjmp(T_HZdw8BhppcTQo8DIK46LSg_16.context);
	if (T_HZdw8BhppcTQo8DIK46LSg_16.status == 0) {
		pid_t volatile pid0;
		Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA datacopy0;
		int LOC12;
		int error0;
		NI sizeread0;
		int LOC26;
		pid0 = (pid_t)0;
		datacopy0 = (*data0);
		pid0 = fork();
		{
			if (!(pid0 == ((NI) 0))) goto LA10;
			startprocessafterfork_kP8IoxkYQ0xKBWMKeIF3Cw((&datacopy0));
			_exit(((NI) 1));
		}
		LA10: ;
		LOC12 = (int)0;
		LOC12 = close((*data0).perrorpipe[(((NI) 1))- 0]);
		{
			NI32 LOC17;
			if (!(pid0 < ((NI) 0))) goto LA15;
			LOC17 = (NI32)0;
			LOC17 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC17, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
		}
		LA15: ;
		error0 = (int)0;
		sizeread0 = read((*data0).perrorpipe[(((NI) 0))- 0], ((void*) ((&error0))), ((NI) 4));
		{
			NI32 LOC22;
			TY_Re75IspeoxXy2oCZHwcRrA LOC23;
			NCSTRING LOC24;
			NimStringDesc* LOC25;
			if (!(sizeread0 == ((NI) 4))) goto LA20;
			LOC22 = (NI32)0;
			LOC22 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			memset((void*)LOC23, 0, sizeof(LOC23));
			LOC23[0] = cstrToNimstr((*data0).syscommand);
			LOC24 = (NCSTRING)0;
			LOC24 = strerror(error0);
			LOC23[1] = cstrToNimstr(LOC24);
			LOC25 = (NimStringDesc*)0;
			LOC25 = nsuFormatOpenArray(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_17), LOC23, 2);
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC22, LOC25);
		}
		LA20: ;
		result0 = pid0;
		popSafePoint();
		LOC26 = (int)0;
		LOC26 = close((*data0).perrorpipe[(((NI) 0))- 0]);
		goto BeforeRet;
		popSafePoint();
	}
	else {
		popSafePoint();
	}
	{
		int LOC29;
		LOC29 = (int)0;
		LOC29 = close((*data0).perrorpipe[(((NI) 0))- 0]);
	}
	if (T_HZdw8BhppcTQo8DIK46LSg_16.status != 0) reraiseException();
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Processobj_NHqciQYh8G1aN2n273mmYw*, nospstartProcess)(NimStringDesc* command0, NimStringDesc* workingdir0, NimStringDesc** args0, NI args0Len0, Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* env0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0) {
	Processobj_NHqciQYh8G1aN2n273mmYw* result0;
	TY_SKEqGXcReU4NvbQlH779b5Q pstdin0;
	TY_SKEqGXcReU4NvbQlH779b5Q pstdout0;
	TY_SKEqGXcReU4NvbQlH779b5Q pstderr0;
	NimStringDesc* syscommand0;
	TY_sM4lkSb7zS6F7OVMvW9cffQ* sysargsraw0;
	pid_t volatile pid0;
	NCSTRING* sysargs0;
	TSafePoint T_HZdw8BhppcTQo8DIK46LSg_13;
	result0 = (Processobj_NHqciQYh8G1aN2n273mmYw*)0;
	memset((void*)pstdin0, 0, sizeof(pstdin0));
	memset((void*)pstdout0, 0, sizeof(pstdout0));
	memset((void*)pstderr0, 0, sizeof(pstderr0));
	result0 = (Processobj_NHqciQYh8G1aN2n273mmYw*) newObj((&NTI_Ryg5db24dBRIzTUa2BQTPg), sizeof(Processobj_NHqciQYh8G1aN2n273mmYw));
	(*result0).Sup.m_type = (&NTI_NHqciQYh8G1aN2n273mmYw);
	(*result0).options = options0;
	(*result0).exitstatus = ((int) -3);
	{
		if (!!(((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3;
		{
			NIM_BOOL LOC7;
			NIM_BOOL LOC8;
			int LOC9;
			int LOC11;
			int LOC13;
			NI32 LOC16;
			LOC7 = (NIM_BOOL)0;
			LOC8 = (NIM_BOOL)0;
			LOC9 = (int)0;
			LOC9 = pipe(pstdin0);
			LOC8 = !((LOC9 == ((NI32) 0)));
			if (LOC8) goto LA10;
			LOC11 = (int)0;
			LOC11 = pipe(pstdout0);
			LOC8 = !((LOC11 == ((NI32) 0)));
			LA10: ;
			LOC7 = LOC8;
			if (LOC7) goto LA12;
			LOC13 = (int)0;
			LOC13 = pipe(pstderr0);
			LOC7 = !((LOC13 == ((NI32) 0)));
			LA12: ;
			if (!LOC7) goto LA14;
			LOC16 = (NI32)0;
			LOC16 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC16, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
		}
		LA14: ;
	}
	LA3: ;
	syscommand0 = (NimStringDesc*)0;
	sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0;
	{
		TY_24KAM9afIUgUaqBaEBB6r9bg LOC21;
		NimStringDesc* LOC22;
		NimStringDesc* LOC23;
		NimStringDesc* LOC24;
		if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA19;
		syscommand0 = copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_11));
		sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 3);
		memset((void*)LOC21, 0, sizeof(LOC21));
		LOC21[0] = copyString(syscommand0);
		LOC21[1] = copyString(((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_12));
		LOC21[2] = copyString(command0);
		LOC22 = (NimStringDesc*)0;
		LOC22 = sysargsraw0->data[0]; sysargsraw0->data[0] = copyStringRC1(LOC21[0]);
		if (LOC22) nimGCunrefNoCycle(LOC22);
		LOC23 = (NimStringDesc*)0;
		LOC23 = sysargsraw0->data[1]; sysargsraw0->data[1] = copyStringRC1(LOC21[1]);
		if (LOC23) nimGCunrefNoCycle(LOC23);
		LOC24 = (NimStringDesc*)0;
		LOC24 = sysargsraw0->data[2]; sysargsraw0->data[2] = copyStringRC1(LOC21[2]);
		if (LOC24) nimGCunrefNoCycle(LOC24);
	}
	goto LA17;
	LA19: ;
	{
		TY_nHXaesL0DJZHyVS07ARPRA LOC26;
		NimStringDesc* LOC27;
		syscommand0 = copyString(command0);
		sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 1);
		memset((void*)LOC26, 0, sizeof(LOC26));
		LOC26[0] = copyString(command0);
		LOC27 = (NimStringDesc*)0;
		LOC27 = sysargsraw0->data[0]; sysargsraw0->data[0] = copyStringRC1(LOC26[0]);
		if (LOC27) nimGCunrefNoCycle(LOC27);
		{
			NimStringDesc* arg_RNTv4MTw28sHh9ciZ6XuVCw;
			NI i_whEmtY8wiAodgfe2BvUzRQ;
			arg_RNTv4MTw28sHh9ciZ6XuVCw = (NimStringDesc*)0;
			i_whEmtY8wiAodgfe2BvUzRQ = ((NI) 0);
			{
				while (1) {
					NimStringDesc* LOC31;
					if (!(i_whEmtY8wiAodgfe2BvUzRQ < args0Len0)) goto LA30;
					arg_RNTv4MTw28sHh9ciZ6XuVCw = args0[i_whEmtY8wiAodgfe2BvUzRQ];
					sysargsraw0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(sysargsraw0)->Sup, sizeof(NimStringDesc*));
					LOC31 = (NimStringDesc*)0;
					LOC31 = sysargsraw0->data[sysargsraw0->Sup.len]; sysargsraw0->data[sysargsraw0->Sup.len] = copyStringRC1(arg_RNTv4MTw28sHh9ciZ6XuVCw);
					if (LOC31) nimGCunrefNoCycle(LOC31);
					++sysargsraw0->Sup.len;
					i_whEmtY8wiAodgfe2BvUzRQ += ((NI) 1);
				} LA30: ;
			}
		}
	}
	LA17: ;
	pid0 = (pid_t)0;
	sysargs0 = alloccstringarray_TG6GWpa9cdnVJVGZxJaqBJg(sysargsraw0->data, sysargsraw0->Sup.len);
	pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_13);
	T_HZdw8BhppcTQo8DIK46LSg_13.status = _setjmp(T_HZdw8BhppcTQo8DIK46LSg_13.context);
	if (T_HZdw8BhppcTQo8DIK46LSg_13.status == 0) {
		NCSTRING* sysenv0;
		TSafePoint T_HZdw8BhppcTQo8DIK46LSg_15;
		{
			if (!(env0 == NIM_NIL)) goto LA35;
			sysenv0 = envtocstringarray_5W8jibc9b9cn0LB5f6DkUbiA();
		}
		goto LA33;
		LA35: ;
		{
			sysenv0 = envtocstringarray_powWbjMeev5megN9bWVjfTw(env0);
		}
		LA33: ;
		pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_15);
		T_HZdw8BhppcTQo8DIK46LSg_15.status = _setjmp(T_HZdw8BhppcTQo8DIK46LSg_15.context);
		if (T_HZdw8BhppcTQo8DIK46LSg_15.status == 0) {
			Startprocessdata_xgRnKnLIYRtnOkshMKhc9cA data0;
			memset((void*)(&data0), 0, sizeof(data0));
			data0.syscommand = syscommand0->data;
			data0.sysargs = sysargs0;
			data0.sysenv = sysenv0;
			memcpy((void*)data0.pstdin, (NIM_CONST void*)pstdin0, sizeof(TY_SKEqGXcReU4NvbQlH779b5Q));
			memcpy((void*)data0.pstdout, (NIM_CONST void*)pstdout0, sizeof(TY_SKEqGXcReU4NvbQlH779b5Q));
			memcpy((void*)data0.pstderr, (NIM_CONST void*)pstderr0, sizeof(TY_SKEqGXcReU4NvbQlH779b5Q));
			data0.optionpoparentstreams = ((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0);
			data0.optionpousepath = ((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 1))&7U)))!=0);
			data0.optionpostderrtostdout = ((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0);
			data0.workingdir = workingdir0->data;
			pid0 = startprocessauxfork_VwNkkMfMOAO9b1isfsqmrNQ((&data0));
			{
				NimStringDesc* LOC43;
				if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA41;
				LOC43 = (NimStringDesc*)0;
				LOC43 = nsuJoinSep(args0, args0Len0, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_18));
				printf("%s%s%s\012", command0? (command0)->data:"nil", ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_18)? (((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_18))->data:"nil", LOC43? (LOC43)->data:"nil");
				fflush(stdout);
			}
			LA41: ;
			(*result0).id = pid0;
			{
				if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0)) goto LA46;
				(*result0).inhandle = ((int) 0);
				(*result0).outhandle = ((int) 1);
				{
					if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA50;
					(*result0).errhandle = (*result0).outhandle;
				}
				goto LA48;
				LA50: ;
				{
					(*result0).errhandle = ((int) 2);
				}
				LA48: ;
			}
			goto LA44;
			LA46: ;
			{
				int LOC60;
				int LOC61;
				int LOC62;
				(*result0).inhandle = pstdin0[(((NI) 1))- 0];
				(*result0).outhandle = pstdout0[(((NI) 0))- 0];
				{
					int LOC58;
					if (!((options0 &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA56;
					(*result0).errhandle = (*result0).outhandle;
					LOC58 = (int)0;
					LOC58 = close(pstderr0[(((NI) 0))- 0]);
				}
				goto LA54;
				LA56: ;
				{
					(*result0).errhandle = pstderr0[(((NI) 0))- 0];
				}
				LA54: ;
				LOC60 = (int)0;
				LOC60 = close(pstderr0[(((NI) 1))- 0]);
				LOC61 = (int)0;
				LOC61 = close(pstdin0[(((NI) 0))- 0]);
				LOC62 = (int)0;
				LOC62 = close(pstdout0[(((NI) 1))- 0]);
			}
			LA44: ;
			popSafePoint();
		}
		else {
			popSafePoint();
		}
		{
			dealloccstringarray_PrKbmufafP6J0HO6K4x3tQ(sysenv0);
		}
		if (T_HZdw8BhppcTQo8DIK46LSg_15.status != 0) reraiseException();
		popSafePoint();
	}
	else {
		popSafePoint();
	}
	{
		dealloccstringarray_PrKbmufafP6J0HO6K4x3tQ(sysargs0);
	}
	if (T_HZdw8BhppcTQo8DIK46LSg_13.status != 0) reraiseException();
	return result0;
}

N_NIMCALL(void, createstream_v8G6hIKoW7oNggVYf9a9c7dQ)(Streamobj_RShkcoDOPnoCVhtpN1hDPQ** stream0, int* handle0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ filemode0) {
	FILE* f0;
	Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw* LOC7;
	f0 = (FILE*)0;
	{
		NIM_BOOL LOC3;
		NI32 LOC6;
		LOC3 = (NIM_BOOL)0;
		LOC3 = open_GRr4dBTChSldEteMxZDsuw(&f0, (*handle0), filemode0);
		if (!!(LOC3)) goto LA4;
		LOC6 = (NI32)0;
		LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
		raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
	}
	LA4: ;
	LOC7 = (Filestreamobj_qoDM8xYRV40zbhS9acPNT9bw*)0;
	LOC7 = newfilestream_j9aOzR9a9bXMSUnTXiGmXXGqQ(f0);
	unsureAsgnRef((void**) (&(*stream0)), &LOC7->Sup);
}

N_NIMCALL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nospinputStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	Streamobj_RShkcoDOPnoCVhtpN1hDPQ* result0;
{	result0 = (Streamobj_RShkcoDOPnoCVhtpN1hDPQ*)0;
	{
		if (!((*p0).instream == NIM_NIL)) goto LA3;
		createstream_v8G6hIKoW7oNggVYf9a9c7dQ(&(*p0).instream, (&(*p0).inhandle), ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 1));
	}
	LA3: ;
	result0 = (*p0).instream;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(Streamobj_RShkcoDOPnoCVhtpN1hDPQ*, nospoutputStream)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	Streamobj_RShkcoDOPnoCVhtpN1hDPQ* result0;
{	result0 = (Streamobj_RShkcoDOPnoCVhtpN1hDPQ*)0;
	{
		if (!((*p0).outstream == NIM_NIL)) goto LA3;
		createstream_v8G6hIKoW7oNggVYf9a9c7dQ(&(*p0).outstream, (&(*p0).outhandle), ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0));
	}
	LA3: ;
	result0 = (*p0).outstream;
	goto BeforeRet;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NI, nospwaitForExit)(Processobj_NHqciQYh8G1aN2n273mmYw* p0, NI timeout0) {
	NI result0;
{	result0 = (NI)0;
	{
		if (!!(((*p0).exitstatus == ((NI32) -3)))) goto LA3;
		result0 = (NI)((NU64)(((NI) ((*p0).exitstatus))) >> (NU64)(((NI) 8)));
		goto BeforeRet;
	}
	LA3: ;
	{
		int status0;
		if (!(timeout0 == ((NI) -1))) goto LA7;
		status0 = ((int) 1);
		{
			pid_t LOC11;
			NI32 LOC14;
			LOC11 = (pid_t)0;
			LOC11 = waitpid((*p0).id, (&status0), ((int) 0));
			if (!(LOC11 < ((NI) 0))) goto LA12;
			LOC14 = (NI32)0;
			LOC14 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC14, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
		}
		LA12: ;
		(*p0).exitstatus = status0;
	}
	goto LA5;
	LA7: ;
	{
		int kqfd0;
		struct kevent kevin0;
		struct kevent LOC21;
		struct kevent kevout0;
		struct timespec tmspec0;
		TSafePoint T_HZdw8BhppcTQo8DIK46LSg_19;
		kqfd0 = kqueue();
		{
			NI32 LOC20;
			if (!(kqfd0 == ((NI32) -1))) goto LA18;
			LOC20 = (NI32)0;
			LOC20 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
			raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC20, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
		}
		LA18: ;
		memset((void*)(&LOC21), 0, sizeof(LOC21));
		LOC21.ident = ((NU) ((*p0).id));
		LOC21.filter = ((short) -5);
		LOC21.flags = ((unsigned short) 1);
		LOC21.fflags = ((NU32) IL64(2147483648));
		kevin0 = LOC21;
		memset((void*)(&kevout0), 0, sizeof(kevout0));
		memset((void*)(&tmspec0), 0, sizeof(tmspec0));
		{
			if (!(((NI) 1000) <= timeout0)) goto LA24;
			tmspec0.tv_sec = (NI)(timeout0 / ((NI) 1000));
			tmspec0.tv_nsec = (NI)((NI)((NU64)(timeout0) % (NU64)(((NI) 1000))) * ((NI) 1000000));
		}
		goto LA22;
		LA24: ;
		{
			tmspec0.tv_sec = ((time_t) 0);
			tmspec0.tv_nsec = (NI)(timeout0 * ((NI) 1000000));
		}
		LA22: ;
		pushSafePoint(&T_HZdw8BhppcTQo8DIK46LSg_19);
		T_HZdw8BhppcTQo8DIK46LSg_19.status = _setjmp(T_HZdw8BhppcTQo8DIK46LSg_19.context);
		if (T_HZdw8BhppcTQo8DIK46LSg_19.status == 0) {
			{
				while (1) {
					int status0;
					int count0;
					status0 = ((int) 1);
					count0 = kevent(kqfd0, (&kevin0), ((int) 1), (&kevout0), ((int) 1), (&tmspec0));
					{
						NI32 err0;
						if (!(count0 < ((NI32) 0))) goto LA32;
						err0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
						{
							NI32 LOC38;
							if (!!((err0 == EINTR))) goto LA36;
							LOC38 = (NI32)0;
							LOC38 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
							raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC38, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
						}
						LA36: ;
					}
					goto LA30;
					LA32: ;
					{
						if (!(count0 == ((NI32) 0))) goto LA40;
						{
							int LOC44;
							NI32 LOC47;
							LOC44 = (int)0;
							LOC44 = kill((*p0).id, SIGKILL);
							if (!(LOC44 == ((NI32) -1))) goto LA45;
							LOC47 = (NI32)0;
							LOC47 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
							raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC47, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
						}
						LA45: ;
						{
							pid_t LOC50;
							NI32 LOC53;
							LOC50 = (pid_t)0;
							LOC50 = waitpid((*p0).id, (&status0), ((int) 0));
							if (!(LOC50 < ((NI) 0))) goto LA51;
							LOC53 = (NI32)0;
							LOC53 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
							raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC53, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
						}
						LA51: ;
						(*p0).exitstatus = status0;
						goto LA28;
					}
					goto LA30;
					LA40: ;
					{
						{
							NIM_BOOL LOC57;
							LOC57 = (NIM_BOOL)0;
							LOC57 = (kevout0.ident == ((NU) ((*p0).id)));
							if (!(LOC57)) goto LA58;
							LOC57 = (kevout0.filter == ((NI16) -5));
							LA58: ;
							if (!LOC57) goto LA59;
							{
								pid_t LOC63;
								NI32 LOC66;
								LOC63 = (pid_t)0;
								LOC63 = waitpid((*p0).id, (&status0), ((int) 0));
								if (!(LOC63 < ((NI) 0))) goto LA64;
								LOC66 = (NI32)0;
								LOC66 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
								raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC66, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
							}
							LA64: ;
							(*p0).exitstatus = status0;
							goto LA28;
						}
						goto LA55;
						LA59: ;
						{
							NI32 LOC68;
							LOC68 = (NI32)0;
							LOC68 = oslasterror_pMOMIZAQaKFp1XoL58mjVg();
							raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC68, ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10));
						}
						LA55: ;
					}
					LA30: ;
				}
			} LA28: ;
			popSafePoint();
		}
		else {
			popSafePoint();
		}
		{
			int LOC71;
			LOC71 = (int)0;
			LOC71 = close(kqfd0);
		}
		if (T_HZdw8BhppcTQo8DIK46LSg_19.status != 0) reraiseException();
	}
	LA5: ;
	result0 = (NI)((NU64)(((NI) ((*p0).exitstatus))) >> (NU64)(((NI) 8)));
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command0) {
	NI result0;
	int LOC1;
	result0 = (NI)0;
	LOC1 = (int)0;
	LOC1 = system(command0->data);
	result0 = ((NI) (LOC1));
	return result0;
}

N_NIMCALL(NI, peekexitcode_nA0Z6VONmzXjruBL3YKtRw)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	NI result0;
	int status0;
	pid_t ret0;
	NIM_BOOL b0;
{	result0 = (NI)0;
	status0 = ((int) 1);
	{
		if (!!(((*p0).exitstatus == ((NI32) -3)))) goto LA3;
		result0 = (NI)((NU64)(((NI) ((*p0).exitstatus))) >> (NU64)(((NI) 8)));
		goto BeforeRet;
	}
	LA3: ;
	ret0 = waitpid((*p0).id, (&status0), WNOHANG);
	b0 = (ret0 == (*p0).id);
	{
		if (!b0) goto LA7;
		result0 = ((NI) -1);
	}
	LA7: ;
	{
		NIM_BOOL LOC11;
		LOC11 = (NIM_BOOL)0;
		LOC11 = WIFEXITED(status0);
		if (!LOC11) goto LA12;
		(*p0).exitstatus = status0;
		result0 = (NI)((NU64)(((NI) ((*p0).exitstatus))) >> (NU64)(((NI) 8)));
	}
	goto LA9;
	LA12: ;
	{
		result0 = ((NI) -1);
	}
	LA9: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(NI, nospcountProcessors)(void) {
	NI result0;
	result0 = (NI)0;
	result0 = ncpicountProcessors();
	return result0;
}
static N_NIMCALL(void, Marker_TY_l0xXJxOLtcuhlSBHl64t5w)(void* p, NI op) {
	TY_l0xXJxOLtcuhlSBHl64t5w* a;
	NI LOC1;
	a = (TY_l0xXJxOLtcuhlSBHl64t5w*)p;
	LOC1 = (NI)0;
	for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) {
	nimGCvisit((void*)a->data[LOC1], op);
	}
}

static N_INLINE(void, incref_9cAA5YuQAAC3MVbnGeV86swsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	(*c0).refcount = (NI)((NU64)((*c0).refcount) + (NU64)(((NI) 8)));
}

static N_INLINE(void, decref_MV4BBk6J1qu70IbBxwEn4wsystem)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) {
	{
		(*c0).refcount -= ((NI) 8);
		if (!((NU64)((*c0).refcount) < (NU64)(((NI) 8)))) goto LA3;
		rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0);
	}
	LA3: ;
}

static N_INLINE(void, asgnRef)(void** dest0, void* src0) {
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC5;
		if (!!((src0 == NIM_NIL))) goto LA3;
		LOC5 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC5 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0);
		incref_9cAA5YuQAAC3MVbnGeV86swsystem(LOC5);
	}
	LA3: ;
	{
		Cell_1zcF9cV8XIAtbN8h5HRUB8g* LOC10;
		if (!!(((*dest0) == NIM_NIL))) goto LA8;
		LOC10 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		LOC10 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0));
		decref_MV4BBk6J1qu70IbBxwEn4wsystem(LOC10);
	}
	LA8: ;
	(*dest0) = src0;
}

N_NIMCALL(NIM_BOOL, nosprunning)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	NIM_BOOL result0;
	NI ret0;
	int status0;
{	result0 = (NIM_BOOL)0;
	ret0 = (NI)0;
	status0 = ((int) 1);
	ret0 = waitpid((*p0).id, (&status0), WNOHANG);
	{
		if (!(ret0 == (*p0).id)) goto LA3;
		{
			NIM_BOOL LOC7;
			LOC7 = (NIM_BOOL)0;
			LOC7 = WIFEXITED(status0);
			if (!LOC7) goto LA8;
			(*p0).exitstatus = status0;
			result0 = NIM_FALSE;
			goto BeforeRet;
		}
		goto LA5;
		LA8: ;
		{
			result0 = NIM_TRUE;
			goto BeforeRet;
		}
		LA5: ;
	}
	goto LA1;
	LA3: ;
	{
		if (!(ret0 == ((NI) 0))) goto LA12;
		result0 = NIM_TRUE;
		goto BeforeRet;
	}
	goto LA1;
	LA12: ;
	{
		result0 = NIM_FALSE;
		goto BeforeRet;
	}
	LA1: ;
	}BeforeRet: ;
	return result0;
}

N_NIMCALL(void, nospclose)(Processobj_NHqciQYh8G1aN2n273mmYw* p0) {
	{
		if (!!(((*p0).instream == NIM_NIL))) goto LA3;
		close_4ed7IXme7lqtClFI7s2sTQ((*p0).instream);
	}
	LA3: ;
	{
		if (!!(((*p0).outstream == NIM_NIL))) goto LA7;
		close_4ed7IXme7lqtClFI7s2sTQ((*p0).outstream);
	}
	LA7: ;
	{
		if (!!(((*p0).errstream == NIM_NIL))) goto LA11;
		close_4ed7IXme7lqtClFI7s2sTQ((*p0).errstream);
	}
	LA11: ;
	{
		int LOC17;
		int LOC18;
		int LOC19;
		if (!!((((*p0).options &(1U<<((NU)(((Processoption_bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA15;
		LOC17 = (int)0;
		LOC17 = close((*p0).inhandle);
		LOC18 = (int)0;
		LOC18 = close((*p0).outhandle);
		LOC19 = (int)0;
		LOC19 = close((*p0).errhandle);
	}
	LA15: ;
}

N_NIMCALL(NI, nospexecProcesses)(NimStringDesc** cmds0, NI cmds0Len0, Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options_SOxRkpbUm0l9cOVKhpddsEw, NI n0, TY_kElEuvYkhDcTHhB3d89aMYA beforerunevent0, TY_SfW5itioRNR8yop8fOJeNg afterrunevent0) {
	NI result0;
	Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set options0;
	result0 = (NI)0;
	options0 = (options_SOxRkpbUm0l9cOVKhpddsEw & ~ 16);
	{
		TY_l0xXJxOLtcuhlSBHl64t5w* q0;
		NI m0;
		NI i0;
		if (!(((NI) 1) < n0)) goto LA3;
		q0 = (TY_l0xXJxOLtcuhlSBHl64t5w*)0;
		q0 = (TY_l0xXJxOLtcuhlSBHl64t5w*) newSeq((&NTI_l0xXJxOLtcuhlSBHl64t5w), ((NI) (n0)));
		m0 = ((n0 <= cmds0Len0) ? n0 : cmds0Len0);
		{
			NI i_IXYJmgb9b21Zawh7ZZyHDAA;
			NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw;
			NI res_I72nYMiJcfiDqXF9cJLTlxQ;
			i_IXYJmgb9b21Zawh7ZZyHDAA = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw = (NI)(m0 - ((NI) 1));
			res_I72nYMiJcfiDqXF9cJLTlxQ = ((NI) 0);
			{
				while (1) {
					TY_8ZvwQIddfpj2THRVPsFzIQ LOC12;
					if (!(res_I72nYMiJcfiDqXF9cJLTlxQ <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw)) goto LA7;
					i_IXYJmgb9b21Zawh7ZZyHDAA = res_I72nYMiJcfiDqXF9cJLTlxQ;
					{
						if (!!((beforerunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_20.ClPrc && beforerunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_20.ClEnv))) goto LA10;
						beforerunevent0.ClEnv? beforerunevent0.ClPrc(i_IXYJmgb9b21Zawh7ZZyHDAA, beforerunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_21)(beforerunevent0.ClPrc))(i_IXYJmgb9b21Zawh7ZZyHDAA);
					}
					LA10: ;
					memset((void*)LOC12, 0, sizeof(LOC12));
					asgnRef((void**) (&q0->data[i_IXYJmgb9b21Zawh7ZZyHDAA]), nospstartProcess(cmds0[i_IXYJmgb9b21Zawh7ZZyHDAA], ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10), LOC12, 0, NIM_NIL, (options0 | 4)));
					res_I72nYMiJcfiDqXF9cJLTlxQ += ((NI) 1);
				} LA7: ;
			}
		}
		i0 = m0;
		{
			while (1) {
				if (!(i0 <= (cmds0Len0-1))) goto LA14;
				nossleep(((NI) 50));
				{
					NI r_7CDX8QyPfnTM0rb4p9bm9blg;
					NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2;
					NI res_I72nYMiJcfiDqXF9cJLTlxQ_2;
					r_7CDX8QyPfnTM0rb4p9bm9blg = (NI)0;
					HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2 = (NI)0;
					HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2 = (NI)(n0 - ((NI) 1));
					res_I72nYMiJcfiDqXF9cJLTlxQ_2 = ((NI) 0);
					{
						while (1) {
							if (!(res_I72nYMiJcfiDqXF9cJLTlxQ_2 <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_2)) goto LA17;
							r_7CDX8QyPfnTM0rb4p9bm9blg = res_I72nYMiJcfiDqXF9cJLTlxQ_2;
							{
								NIM_BOOL LOC20;
								NI LOC23;
								TY_8ZvwQIddfpj2THRVPsFzIQ LOC36;
								LOC20 = (NIM_BOOL)0;
								LOC20 = nosprunning(q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]);
								if (!!(LOC20)) goto LA21;
								LOC23 = (NI)0;
								LOC23 = nospwaitForExit(q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg], ((NI) -1));
								result0 = ((LOC23 >= result0) ? LOC23 : result0);
								{
									if (!!((afterrunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_22.ClPrc && afterrunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_22.ClEnv))) goto LA26;
									afterrunevent0.ClEnv? afterrunevent0.ClPrc(r_7CDX8QyPfnTM0rb4p9bm9blg, q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg], afterrunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_23)(afterrunevent0.ClPrc))(r_7CDX8QyPfnTM0rb4p9bm9blg, q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]);
								}
								LA26: ;
								{
									if (!!((q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg] == NIM_NIL))) goto LA30;
									nospclose(q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]);
								}
								LA30: ;
								{
									if (!!((beforerunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_20.ClPrc && beforerunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_20.ClEnv))) goto LA34;
									beforerunevent0.ClEnv? beforerunevent0.ClPrc(i0, beforerunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_24)(beforerunevent0.ClPrc))(i0);
								}
								LA34: ;
								memset((void*)LOC36, 0, sizeof(LOC36));
								asgnRef((void**) (&q0->data[r_7CDX8QyPfnTM0rb4p9bm9blg]), nospstartProcess(cmds0[i0], ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10), LOC36, 0, NIM_NIL, (options0 | 4)));
								i0 += ((NI) 1);
								{
									if (!((cmds0Len0-1) < i0)) goto LA39;
									goto LA15;
								}
								LA39: ;
							}
							LA21: ;
							res_I72nYMiJcfiDqXF9cJLTlxQ_2 += ((NI) 1);
						} LA17: ;
					}
				} LA15: ;
			} LA14: ;
		}
		{
			NI j_Qx3Y6Wjo6lf0L32X59altUg;
			NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3;
			NI res_I72nYMiJcfiDqXF9cJLTlxQ_3;
			j_Qx3Y6Wjo6lf0L32X59altUg = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3 = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3 = (NI)(m0 - ((NI) 1));
			res_I72nYMiJcfiDqXF9cJLTlxQ_3 = ((NI) 0);
			{
				while (1) {
					NI LOC44;
					if (!(res_I72nYMiJcfiDqXF9cJLTlxQ_3 <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_3)) goto LA43;
					j_Qx3Y6Wjo6lf0L32X59altUg = res_I72nYMiJcfiDqXF9cJLTlxQ_3;
					LOC44 = (NI)0;
					LOC44 = nospwaitForExit(q0->data[j_Qx3Y6Wjo6lf0L32X59altUg], ((NI) -1));
					result0 = ((LOC44 >= result0) ? LOC44 : result0);
					{
						if (!!((afterrunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_22.ClPrc && afterrunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_22.ClEnv))) goto LA47;
						afterrunevent0.ClEnv? afterrunevent0.ClPrc(j_Qx3Y6Wjo6lf0L32X59altUg, q0->data[j_Qx3Y6Wjo6lf0L32X59altUg], afterrunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_25)(afterrunevent0.ClPrc))(j_Qx3Y6Wjo6lf0L32X59altUg, q0->data[j_Qx3Y6Wjo6lf0L32X59altUg]);
					}
					LA47: ;
					{
						if (!!((q0->data[j_Qx3Y6Wjo6lf0L32X59altUg] == NIM_NIL))) goto LA51;
						nospclose(q0->data[j_Qx3Y6Wjo6lf0L32X59altUg]);
					}
					LA51: ;
					res_I72nYMiJcfiDqXF9cJLTlxQ_3 += ((NI) 1);
				} LA43: ;
			}
		}
	}
	goto LA1;
	LA3: ;
	{
		{
			NI i_IXYJmgb9b21Zawh7ZZyHDAA_2;
			NI HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4;
			NI res_I72nYMiJcfiDqXF9cJLTlxQ_4;
			i_IXYJmgb9b21Zawh7ZZyHDAA_2 = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4 = (NI)0;
			HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4 = (cmds0Len0-1);
			res_I72nYMiJcfiDqXF9cJLTlxQ_4 = ((NI) 0);
			{
				while (1) {
					Processobj_NHqciQYh8G1aN2n273mmYw* p0;
					TY_8ZvwQIddfpj2THRVPsFzIQ LOC61;
					NI LOC62;
					if (!(res_I72nYMiJcfiDqXF9cJLTlxQ_4 <= HEX3Atmp_5gh2Mdy1iOr2MuifGkk4kw_4)) goto LA56;
					i_IXYJmgb9b21Zawh7ZZyHDAA_2 = res_I72nYMiJcfiDqXF9cJLTlxQ_4;
					{
						if (!!((beforerunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_20.ClPrc && beforerunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_20.ClEnv))) goto LA59;
						beforerunevent0.ClEnv? beforerunevent0.ClPrc(i_IXYJmgb9b21Zawh7ZZyHDAA_2, beforerunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_26)(beforerunevent0.ClPrc))(i_IXYJmgb9b21Zawh7ZZyHDAA_2);
					}
					LA59: ;
					memset((void*)LOC61, 0, sizeof(LOC61));
					p0 = nospstartProcess(cmds0[i_IXYJmgb9b21Zawh7ZZyHDAA_2], ((NimStringDesc*) &T_HZdw8BhppcTQo8DIK46LSg_10), LOC61, 0, NIM_NIL, (options0 | 4));
					LOC62 = (NI)0;
					LOC62 = nospwaitForExit(p0, ((NI) -1));
					result0 = ((LOC62 >= result0) ? LOC62 : result0);
					{
						if (!!((afterrunevent0.ClPrc == T_HZdw8BhppcTQo8DIK46LSg_22.ClPrc && afterrunevent0.ClEnv == T_HZdw8BhppcTQo8DIK46LSg_22.ClEnv))) goto LA65;
						afterrunevent0.ClEnv? afterrunevent0.ClPrc(i_IXYJmgb9b21Zawh7ZZyHDAA_2, p0, afterrunevent0.ClEnv):((T_HZdw8BhppcTQo8DIK46LSg_27)(afterrunevent0.ClPrc))(i_IXYJmgb9b21Zawh7ZZyHDAA_2, p0);
					}
					LA65: ;
					nospclose(p0);
					res_I72nYMiJcfiDqXF9cJLTlxQ_4 += ((NI) 1);
				} LA56: ;
			}
		}
	}
	LA1: ;
	return result0;
}
NIM_EXTERNC N_NOINLINE(void, stdlib_osprocInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_osprocDatInit000)(void) {
static TNimNode* T_HZdw8BhppcTQo8DIK46LSg_6[9];
static TNimNode* T_HZdw8BhppcTQo8DIK46LSg_7[7];
NI T_HZdw8BhppcTQo8DIK46LSg_9;
static char* NIM_CONST T_HZdw8BhppcTQo8DIK46LSg_8[7] = {
"poEchoCmd", 
"poUsePath", 
"poEvalCommand", 
"poStdErrToStdOut", 
"poParentStreams", 
"poInteractive", 
"poDemon"};
static TNimNode T_HZdw8BhppcTQo8DIK46LSg_0[19];
NTI_NHqciQYh8G1aN2n273mmYw.size = sizeof(Processobj_NHqciQYh8G1aN2n273mmYw);
NTI_NHqciQYh8G1aN2n273mmYw.kind = 17;
NTI_NHqciQYh8G1aN2n273mmYw.base = (&NTI_13RNkKqUOX1TtorOUlKtqA);
T_HZdw8BhppcTQo8DIK46LSg_6[0] = &T_HZdw8BhppcTQo8DIK46LSg_0[1];
T_HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, inhandle);
T_HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTI_UtShRB9b1wZO9cvpdowm9cefA);
T_HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
T_HZdw8BhppcTQo8DIK46LSg_6[1] = &T_HZdw8BhppcTQo8DIK46LSg_0[2];
T_HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, outhandle);
T_HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTI_UtShRB9b1wZO9cvpdowm9cefA);
T_HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
T_HZdw8BhppcTQo8DIK46LSg_6[2] = &T_HZdw8BhppcTQo8DIK46LSg_0[3];
T_HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, errhandle);
T_HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTI_UtShRB9b1wZO9cvpdowm9cefA);
T_HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
T_HZdw8BhppcTQo8DIK46LSg_6[3] = &T_HZdw8BhppcTQo8DIK46LSg_0[4];
T_HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, instream);
T_HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw);
T_HZdw8BhppcTQo8DIK46LSg_0[4].name = "inStream";
T_HZdw8BhppcTQo8DIK46LSg_6[4] = &T_HZdw8BhppcTQo8DIK46LSg_0[5];
T_HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, outstream);
T_HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw);
T_HZdw8BhppcTQo8DIK46LSg_0[5].name = "outStream";
T_HZdw8BhppcTQo8DIK46LSg_6[5] = &T_HZdw8BhppcTQo8DIK46LSg_0[6];
T_HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, errstream);
T_HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTI_r3Wc5tOoxP8rz1DvGVTUvw);
T_HZdw8BhppcTQo8DIK46LSg_0[6].name = "errStream";
T_HZdw8BhppcTQo8DIK46LSg_6[6] = &T_HZdw8BhppcTQo8DIK46LSg_0[7];
T_HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, id);
T_HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTI_CHeEDdL3roTPu81s9cOH0Bw);
T_HZdw8BhppcTQo8DIK46LSg_0[7].name = "id";
T_HZdw8BhppcTQo8DIK46LSg_6[7] = &T_HZdw8BhppcTQo8DIK46LSg_0[8];
T_HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, exitstatus);
T_HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTI_nlCscttRCss70IBTyuBqnA);
T_HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
T_HZdw8BhppcTQo8DIK46LSg_6[8] = &T_HZdw8BhppcTQo8DIK46LSg_0[9];
NTI_bnU6W8LhTMnT4JaSWtGlSA.size = sizeof(Processoption_bnU6W8LhTMnT4JaSWtGlSA);
NTI_bnU6W8LhTMnT4JaSWtGlSA.kind = 14;
NTI_bnU6W8LhTMnT4JaSWtGlSA.base = 0;
NTI_bnU6W8LhTMnT4JaSWtGlSA.flags = 3;
for (T_HZdw8BhppcTQo8DIK46LSg_9 = 0; T_HZdw8BhppcTQo8DIK46LSg_9 < 7; T_HZdw8BhppcTQo8DIK46LSg_9++) {
T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_9+10].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_9+10].offset = T_HZdw8BhppcTQo8DIK46LSg_9;
T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_9+10].name = T_HZdw8BhppcTQo8DIK46LSg_8[T_HZdw8BhppcTQo8DIK46LSg_9];
T_HZdw8BhppcTQo8DIK46LSg_7[T_HZdw8BhppcTQo8DIK46LSg_9] = &T_HZdw8BhppcTQo8DIK46LSg_0[T_HZdw8BhppcTQo8DIK46LSg_9+10];
}
T_HZdw8BhppcTQo8DIK46LSg_0[17].len = 7; T_HZdw8BhppcTQo8DIK46LSg_0[17].kind = 2; T_HZdw8BhppcTQo8DIK46LSg_0[17].sons = &T_HZdw8BhppcTQo8DIK46LSg_7[0];
NTI_bnU6W8LhTMnT4JaSWtGlSA.node = &T_HZdw8BhppcTQo8DIK46LSg_0[17];
NTI_HlmBYNr2gdAZMXOsuiSZ0A.size = sizeof(Processoption_bnU6W8LhTMnT4JaSWtGlSA_Set);
NTI_HlmBYNr2gdAZMXOsuiSZ0A.kind = 19;
NTI_HlmBYNr2gdAZMXOsuiSZ0A.base = (&NTI_bnU6W8LhTMnT4JaSWtGlSA);
NTI_HlmBYNr2gdAZMXOsuiSZ0A.flags = 3;
T_HZdw8BhppcTQo8DIK46LSg_0[18].len = 0; T_HZdw8BhppcTQo8DIK46LSg_0[18].kind = 0;
NTI_HlmBYNr2gdAZMXOsuiSZ0A.node = &T_HZdw8BhppcTQo8DIK46LSg_0[18];
T_HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
T_HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(Processobj_NHqciQYh8G1aN2n273mmYw, options);
T_HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTI_HlmBYNr2gdAZMXOsuiSZ0A);
T_HZdw8BhppcTQo8DIK46LSg_0[9].name = "options";
T_HZdw8BhppcTQo8DIK46LSg_0[0].len = 9; T_HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; T_HZdw8BhppcTQo8DIK46LSg_0[0].sons = &T_HZdw8BhppcTQo8DIK46LSg_6[0];
NTI_NHqciQYh8G1aN2n273mmYw.node = &T_HZdw8BhppcTQo8DIK46LSg_0[0];
NTI_Ryg5db24dBRIzTUa2BQTPg.size = sizeof(Processobj_NHqciQYh8G1aN2n273mmYw*);
NTI_Ryg5db24dBRIzTUa2BQTPg.kind = 22;
NTI_Ryg5db24dBRIzTUa2BQTPg.base = (&NTI_NHqciQYh8G1aN2n273mmYw);
NTI_Ryg5db24dBRIzTUa2BQTPg.marker = Marker_TY_Ryg5db24dBRIzTUa2BQTPg;
NTI_l0xXJxOLtcuhlSBHl64t5w.size = sizeof(TY_l0xXJxOLtcuhlSBHl64t5w*);
NTI_l0xXJxOLtcuhlSBHl64t5w.kind = 24;
NTI_l0xXJxOLtcuhlSBHl64t5w.base = (&NTI_Ryg5db24dBRIzTUa2BQTPg);
NTI_l0xXJxOLtcuhlSBHl64t5w.marker = Marker_TY_l0xXJxOLtcuhlSBHl64t5w;
}

