1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 #define NIM_EmulateOverflowChecks
4 
5 #include "nimbase.h"
6 #include <string.h>
7 #include <sys/types.h>
8 #include <unistd.h>
9 #include <setjmp.h>
10 #include <errno.h>
11 #include <fcntl.h>
12 #include <sys/wait.h>
13 #include <sys/event.h>
14 #include <sys/types.h>
15                        #include <sys/event.h>
16                        #include <sys/time.h>
17 #include <time.h>
18 #include <signal.h>
19 #include <stdlib.h>
20 #include <stdio.h>
21 #undef LANGUAGE_C
22 #undef MIPSEB
23 #undef MIPSEL
24 #undef PPC
25 #undef R3000
26 #undef R4000
27 #undef i386
28 #undef linux
29 #undef mips
30 #undef near
31 #undef far
32 #undef powerpc
33 #undef unix
34 #define nimfr_(x, y)
35 #define nimln_(x, y)
36 typedef struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
37 typedef struct NimStringDesc NimStringDesc;
38 typedef struct TGenericSeq TGenericSeq;
39 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
40 typedef struct RootObj RootObj;
41 typedef struct TNimType TNimType;
42 typedef struct TNimNode TNimNode;
43 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
44 typedef struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA;
45 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
46 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
47 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
48 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
49 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
50 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
51 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
52 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
53 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
54 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
55 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
56 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
57 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
58 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
59 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
60 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
61 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
62 typedef struct Exception Exception;
63 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
64 typedef struct TSafePoint TSafePoint;
65 typedef struct tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
66 typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
67 typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
68 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
69 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
70 typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
71 typedef struct tySequence__PrBYolTs4TOSgE8v5oqDUQ tySequence__PrBYolTs4TOSgE8v5oqDUQ;
72 typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
73 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
74 struct TGenericSeq {
75 NI len;
76 NI reserved;
77 };
78 struct NimStringDesc {
79   TGenericSeq Sup;
80 NIM_CHAR data[SEQ_DECL_SIZE];
81 };
82 typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
83 typedef int tyArray__SKEqGXcReU4NvbQlH779b5Q[2];
84 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
85 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
86 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
87 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
88 struct TNimType {
89 NI size;
90 NI align;
91 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
92 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
93 TNimType* base;
94 TNimNode* node;
95 void* finalizer;
96 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
97 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
98 };
99 struct RootObj {
100 TNimType* m_type;
101 };
102 struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
103   RootObj Sup;
104 int inHandle;
105 int outHandle;
106 int errHandle;
107 pid_t id;
108 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
109 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
110 tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
111 int exitStatus;
112 NIM_BOOL exitFlag;
113 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
114 };
115 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
116 struct TNimNode {
117 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
118 NI offset;
119 TNimType* typ;
120 NCSTRING name;
121 NI len;
122 TNimNode** sons;
123 };
124 typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
125 struct tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA {
126 NimStringDesc* sysCommand;
127 NCSTRING* sysArgs;
128 NCSTRING* sysEnv;
129 NCSTRING workingDir;
130 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
131 tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
132 tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
133 tyArray__SKEqGXcReU4NvbQlH779b5Q pErrorPipe;
134 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
135 };
136 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
137 NI refcount;
138 TNimType* typ;
139 };
140 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
141 void* bottom;
142 };
143 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
144 NI len;
145 NI cap;
146 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
147 };
148 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
149 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
150 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
151 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
152 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
153 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
154 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
155 };
156 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
157 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
158 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
159 NI key;
160 NI upperBound;
161 NI level;
162 };
163 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
164 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
165 NI Field1;
166 };
167 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
168 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
169 NI len;
170 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
171 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
172 };
173 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
174 NI minLargeObj;
175 NI maxLargeObj;
176 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
177 NU32 flBitmap;
178 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
179 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
180 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
181 NI currMem;
182 NI maxMem;
183 NI freeMem;
184 NI occ;
185 NI lastSize;
186 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
187 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
188 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
189 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
190 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
191 NIM_BOOL locked;
192 NIM_BOOL blockChunkSizeIncrease;
193 NI nextChunkSize;
194 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
195 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
196 };
197 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
198 NI stackScans;
199 NI cycleCollections;
200 NI maxThreshold;
201 NI maxStackSize;
202 NI maxStackCells;
203 NI cycleTableSize;
204 NI64 maxPause;
205 };
206 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
207 NI counter;
208 NI max;
209 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
210 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
211 };
212 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
213 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
214 NI cycleThreshold;
215 NI zctThreshold;
216 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
217 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
218 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
219 NI recGcLock;
220 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
221 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
222 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
223 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
224 NI gcThreadId;
225 };
226 struct Exception {
227   RootObj Sup;
228 Exception* parent;
229 NCSTRING name;
230 NimStringDesc* message;
231 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
232 Exception* up;
233 };
234 struct TSafePoint {
235 TSafePoint* prev;
236 NI status;
237 jmp_buf context;
238 };
239 struct tyTuple__UV3llMMYFckfui8YMBuUZA {
240 NimStringDesc* Field0;
241 NimStringDesc* Field1;
242 };
243 typedef NCSTRING tyUncheckedArray__nvS6J9clHMUMHfoZd8Ad2zg[1];
244 typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
245 struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
246   RootObj Sup;
247 NI counter;
248 tySequence__xv3aaFd3JCw8NbmALHiezQ* data;
249 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
250 };
251 struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
252 NimStringDesc* Field0;
253 NimStringDesc* Field1;
254 NIM_BOOL Field2;
255 };
256 typedef NimStringDesc* tyArray__Re75IspeoxXy2oCZHwcRrA[2];
257 typedef NimStringDesc* tyArray__24KAM9afIUgUaqBaEBB6r9bg[3];
258 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
259 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
260 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
261 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
262 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
263 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
264 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
265 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
266 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
267   RootObj Sup;
268 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
269 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
270 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
271 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
272 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
273 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
274 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
275 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
276 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
277 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
278 };
279 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
280   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
281 FILE* f;
282 };
283 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
284 typedef NimStringDesc* tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
285 struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
286 NimStringDesc* Field0;
287 NI Field1;
288 };
289 typedef struct {
290 N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
291 void* ClE_0;
292 } tyProc__SqRJqa5aOiKB4EuKlKh9asA;
293 typedef struct {
294 N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
295 void* ClE_0;
296 } tyProc__oudJckli4GdxAXLVzBBlAw;
297 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_18) (NI idx);
298 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_20) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
299 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_21) (NI idx);
300 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_22) (NI idx);
301 typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_23) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
302 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
303 NCSTRING procname;
304 NI line;
305 NCSTRING filename;
306 };
307 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
308 NI a;
309 NI b;
310 };
311 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
312   TGenericSeq Sup;
313   NimStringDesc* data[SEQ_DECL_SIZE];
314 };
315 struct tySequence__PrBYolTs4TOSgE8v5oqDUQ {
316   TGenericSeq Sup;
317   tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* data[SEQ_DECL_SIZE];
318 };
319 struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
320   TGenericSeq Sup;
321   NI data[SEQ_DECL_SIZE];
322 };
323 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
324   TGenericSeq Sup;
325   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
326 };
327 struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
328   TGenericSeq Sup;
329   tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];
330 };
331 static N_INLINE(void, nimZeroMem)(void* p, NI size);
332 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
333 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
334 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op);
335 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
336 N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__pureZos_405)(NI32 errorCode, NimStringDesc* additionalInfo);
337 N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__pureZos_408)(void);
338 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
339 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
340 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
341 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
342 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
343 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
344 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
345 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
346 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5285)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
347 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr);
348 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
349 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, allocCStringArray__system_2469)(NimStringDesc** a, NI aLen_0);
350 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
351 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void);
352 static N_INLINE(NIM_BOOL, eqeq___system_7744)(NCSTRING x, NCSTRING y);
353 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str);
354 N_LIB_PRIVATE N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s, NIM_CHAR sub, NI start, NI last);
355 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7764)(NimStringDesc* s, NI first, NI last);
356 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, substr__system_7776)(NimStringDesc* s, NI first);
357 N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1745)(NI size);
358 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
359 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
360 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
361 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
362 N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1743)(NI size);
363 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
364 N_LIB_PRIVATE N_NIMCALL(NI, nstlen)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t);
365 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
366 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxFork__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
367 N_LIB_PRIVATE N_NIMCALL(void, genericAssign)(void* dest, void* src, TNimType* mt);
368 N_LIB_PRIVATE N_CDECL(void, startProcessAfterFork__pureZosproc_350)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
369 N_LIB_PRIVATE N_NIMCALL(void, startProcessFail__pureZosproc_483)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data);
370 static N_INLINE(NI, nimCStrLen)(NCSTRING a);
371 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuFormatOpenArray)(NimStringDesc* formatstr, NimStringDesc** a, NI aLen_0);
372 static N_INLINE(void, popSafePoint)(void);
373 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
374 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
375 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuJoinSep)(NimStringDesc** a, NI aLen_0, NimStringDesc* sep);
376 N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
377 N_LIB_PRIVATE N_NIMCALL(void, deallocCStringArray__system_2503)(NCSTRING* a);
378 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_605)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode);
379 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_420)(FILE** f, int filehandle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode);
380 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
381 static N_INLINE(void, asgnRef)(void** dest, void* src);
382 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
383 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
384 N_LIB_PRIVATE N_NIMCALL(int, exitStatusLikeShell__pureZos_1110)(int status);
385 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y);
386 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
387 N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options);
388 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
389 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x);
390 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
391 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
392 N_NIMCALL(NimStringDesc*, rawNewString)(NI cap);
393 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
394 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
395 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
396 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status);
397 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
398 N_LIB_PRIVATE N_NIMCALL(NI, ncpicountProcessors)(void);
399 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len);
400 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op);
401 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len);
402 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
403 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout);
404 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
405 N_LIB_PRIVATE TNimType NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_;
406 extern TNimType NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_;
407 extern TNimType NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_;
408 extern TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
409 extern TNimType NTIcint__nlCscttRCss70IBTyuBqnA_;
410 extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
411 N_LIB_PRIVATE TNimType NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_;
412 N_LIB_PRIVATE TNimType NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_;
413 N_LIB_PRIVATE TNimType NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_;
414 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_6, "/bin/sh", 7);
415 extern TNimType NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_;
416 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_7, "-c", 2);
417 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_9, "=", 1);
418 N_LIB_PRIVATE TNimType NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_;
419 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
420 extern TNimType NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_;
421 extern TNimType NTIcstring__S9agCYBinaYZnGWcjTdxclg_;
422 N_LIB_PRIVATE TNimType NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_;
423 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_13, "Could not find command: \'$1\'. OS error: $2", 42);
424 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_14, " ", 1);
425 STRING_LITERAL(TM__HZdw8BhppcTQo8DIK46LSg_16, "\012", 1);
426 N_LIB_PRIVATE TNimType NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_;
427 extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
428 static NIM_CONST tyProc__SqRJqa5aOiKB4EuKlKh9asA TM__HZdw8BhppcTQo8DIK46LSg_17 = {NIM_NIL,NIM_NIL};
429 static NIM_CONST tyProc__oudJckli4GdxAXLVzBBlAw TM__HZdw8BhppcTQo8DIK46LSg_19 = {NIM_NIL,NIM_NIL};
430 extern NCSTRING* environ;
431 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5238;
432 extern TSafePoint* excHandler__system_2565;
433 extern TSafePoint* excHandler__system_2565;
434 extern NCSTRING* environ;
435 extern TSafePoint* excHandler__system_2565;
436 extern TSafePoint* excHandler__system_2565;
N_INLINE(void,nimSetMem__systemZmemory_7)437 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
438 	void* T1_;
439 	T1_ = (void*)0;
440 	T1_ = memset(a, v, ((size_t) (size)));
441 }
N_INLINE(void,nimZeroMem)442 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
443 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
444 }
N_NIMCALL(void,Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)445 static N_NIMCALL(void, Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA)(void* p, NI op) {
446 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* a;
447 	a = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*)p;
448 	nimGCvisit((void*)(*a).inStream, op);
449 	nimGCvisit((void*)(*a).outStream, op);
450 	nimGCvisit((void*)(*a).errStream, op);
451 }
N_INLINE(NI,minuspercent___system_716)452 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
453 	NI result;
454 	result = (NI)0;
455 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
456 	return result;
457 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)458 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
459 	NIM_BOOL result;
460 	result = (NIM_BOOL)0;
461 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
462 	return result;
463 }
N_INLINE(void,rtlAddZCT__system_5334)464 static N_INLINE(void, rtlAddZCT__system_5334)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
465 	addZCT__system_5285((&gch__system_5238.zct), c);
466 }
N_INLINE(void,decRef__system_5336)467 static N_INLINE(void, decRef__system_5336)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
468 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
469 	{
470 		NIM_BOOL T3_;
471 		T3_ = (NIM_BOOL)0;
472 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
473 		if (!T3_) goto LA4_;
474 		rtlAddZCT__system_5334(c);
475 	}
476 	LA4_: ;
477 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5291)478 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5291)(void* usr) {
479 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
480 	NI T1_;
481 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
482 	T1_ = (NI)0;
483 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
484 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
485 	return result;
486 }
N_INLINE(void,nimGCunrefNoCycle)487 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
488 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
489 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
490 	T1_ = usrToCell__system_5291(p);
491 	decRef__system_5336(T1_);
492 }
N_INLINE(void,pushSafePoint)493 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
494 	(*s).prev = excHandler__system_2565;
495 	excHandler__system_2565 = s;
496 }
N_INLINE(NIM_BOOL,eqeq___system_7744)497 static N_INLINE(NIM_BOOL, eqeq___system_7744)(NCSTRING x, NCSTRING y) {
498 	NIM_BOOL result;
499 	result = (NIM_BOOL)0;
500 	{
501 		if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
502 		result = NIM_TRUE;
503 	}
504 	goto LA1_;
505 	LA3_: ;
506 	{
507 		NIM_BOOL T6_;
508 		T6_ = (NIM_BOOL)0;
509 		T6_ = (x == 0);
510 		if (T6_) goto LA7_;
511 		T6_ = (y == 0);
512 		LA7_: ;
513 		if (!T6_) goto LA8_;
514 		result = NIM_FALSE;
515 	}
516 	goto LA1_;
517 	LA8_: ;
518 	{
519 		int T11_;
520 		T11_ = (int)0;
521 		T11_ = strcmp(x, y);
522 		result = (T11_ == ((NI32) 0));
523 	}
524 	LA1_: ;
525 	return result;
526 }
N_INLINE(void,nimCopyMem)527 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
528 	void* T1_;
529 	T1_ = (void*)0;
530 	T1_ = memcpy(dest, source, ((size_t) (size)));
531 }
N_INLINE(void,copyMem__system_1727)532 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
533 	nimCopyMem(dest, source, size);
534 }
N_INLINE(void,appendString)535 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
536 	{
537 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
538 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
539 		(*dest).Sup.len += (*src).Sup.len;
540 	}
541 	LA3_: ;
542 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_320)543 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_320)(void) {
544 	NCSTRING* result;
545 	NI counter;
546 	void* T6_;
547 	NI i_2;
548 	result = (NCSTRING*)0;
549 	counter = ((NI) 0);
550 	{
551 		NimStringDesc* key;
552 		NimStringDesc* val;
553 		key = NIM_NIL;
554 		val = NIM_NIL;
555 		{
556 			tyTuple__UV3llMMYFckfui8YMBuUZA ai;
557 			NI i;
558 			nimZeroMem((void*)(&ai), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
559 			i = ((NI) 0);
560 			{
561 				while (1) {
562 					NIM_BOOL T5_;
563 					NimStringDesc* kv;
564 					NI p;
565 					tyTuple__UV3llMMYFckfui8YMBuUZA colontmp_;
566 					T5_ = (NIM_BOOL)0;
567 					T5_ = eqeq___system_7744(environ[i], ((NCSTRING) NIM_NIL));
568 					if (!!(T5_)) goto LA4;
569 					kv = cstrToNimstr(environ[i]);
570 					i += ((NI) 1);
571 					p = nsuFindChar(kv, 61, ((NI) 0), ((NI) 0));
572 					ai.Field0 = substr__system_7764(kv, ((NI) 0), (NI)(p - ((NI) 1)));
573 					ai.Field1 = substr__system_7776(kv, (NI)(p + ((NI) 1)));
574 					nimZeroMem((void*)(&colontmp_), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
575 					colontmp_.Field0 = copyString(ai.Field0);
576 					colontmp_.Field1 = copyString(ai.Field1);
577 					key = colontmp_.Field0;
578 					val = colontmp_.Field1;
579 					counter += ((NI) 1);
580 				} LA4: ;
581 			}
582 		}
583 	}
584 	T6_ = (void*)0;
585 	T6_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(counter + ((NI) 1)) * ((NI) 4)))));
586 	result = ((NCSTRING*) (T6_));
587 	i_2 = ((NI) 0);
588 	{
589 		NimStringDesc* key_2;
590 		NimStringDesc* val_2;
591 		key_2 = NIM_NIL;
592 		val_2 = NIM_NIL;
593 		{
594 			tyTuple__UV3llMMYFckfui8YMBuUZA ai_2;
595 			NI i_3;
596 			nimZeroMem((void*)(&ai_2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
597 			i_3 = ((NI) 0);
598 			{
599 				while (1) {
600 					NIM_BOOL T11_;
601 					NimStringDesc* kv_2;
602 					NI p_2;
603 					tyTuple__UV3llMMYFckfui8YMBuUZA colontmp__2;
604 					NimStringDesc* x;
605 					NimStringDesc* T12_;
606 					void* T13_;
607 					T11_ = (NIM_BOOL)0;
608 					T11_ = eqeq___system_7744(environ[i_3], ((NCSTRING) NIM_NIL));
609 					if (!!(T11_)) goto LA10;
610 					kv_2 = cstrToNimstr(environ[i_3]);
611 					i_3 += ((NI) 1);
612 					p_2 = nsuFindChar(kv_2, 61, ((NI) 0), ((NI) 0));
613 					ai_2.Field0 = substr__system_7764(kv_2, ((NI) 0), (NI)(p_2 - ((NI) 1)));
614 					ai_2.Field1 = substr__system_7776(kv_2, (NI)(p_2 + ((NI) 1)));
615 					nimZeroMem((void*)(&colontmp__2), sizeof(tyTuple__UV3llMMYFckfui8YMBuUZA));
616 					colontmp__2.Field0 = copyString(ai_2.Field0);
617 					colontmp__2.Field1 = copyString(ai_2.Field1);
618 					key_2 = colontmp__2.Field0;
619 					val_2 = colontmp__2.Field1;
620 					T12_ = NIM_NIL;
621 					T12_ = rawNewString((key_2 ? key_2->Sup.len : 0) + (val_2 ? val_2->Sup.len : 0) + 1);
622 appendString(T12_, key_2);
623 appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
624 appendString(T12_, val_2);
625 					x = T12_;
626 					T13_ = (void*)0;
627 					T13_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
628 					result[i_2] = ((NCSTRING) (T13_));
629 					copyMem__system_1727(((void*) (result[i_2])), ((void*) ((&x->data[((NI) 0)]))), ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
630 					i_2 += ((NI) 1);
631 				} LA10: ;
632 			}
633 		}
634 	}
635 	return result;
636 }
N_NIMCALL(NCSTRING *,envToCStringArray__pureZosproc_309)637 N_LIB_PRIVATE N_NIMCALL(NCSTRING*, envToCStringArray__pureZosproc_309)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* t) {
638 	NCSTRING* result;
639 	NI T1_;
640 	void* T2_;
641 	NI i;
642 	result = (NCSTRING*)0;
643 	T1_ = (NI)0;
644 	T1_ = nstlen(t);
645 	T2_ = (void*)0;
646 	T2_ = alloc0Impl__system_1745(((NI) ((NI)((NI)(T1_ + ((NI) 1)) * ((NI) 4)))));
647 	result = ((NCSTRING*) (T2_));
648 	i = ((NI) 0);
649 	{
650 		NimStringDesc* key;
651 		NimStringDesc* val;
652 		key = NIM_NIL;
653 		val = NIM_NIL;
654 		{
655 			NI h;
656 			NI colontmp_;
657 			NI T5_;
658 			NI res;
659 			h = (NI)0;
660 			colontmp_ = (NI)0;
661 			T5_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
662 			colontmp_ = T5_;
663 			res = ((NI) 0);
664 			{
665 				while (1) {
666 					if (!(res <= colontmp_)) goto LA7;
667 					h = res;
668 					{
669 						NimStringDesc* x;
670 						NimStringDesc* T12_;
671 						void* T13_;
672 						if (!(*t).data->data[h].Field2) goto LA10_;
673 						key = (*t).data->data[h].Field0;
674 						val = (*t).data->data[h].Field1;
675 						T12_ = NIM_NIL;
676 						T12_ = rawNewString((key ? key->Sup.len : 0) + (val ? val->Sup.len : 0) + 1);
677 appendString(T12_, key);
678 appendString(T12_, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_9));
679 appendString(T12_, val);
680 						x = T12_;
681 						T13_ = (void*)0;
682 						T13_ = allocImpl__system_1743(((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
683 						result[i] = ((NCSTRING) (T13_));
684 						copyMem__system_1727(((void*) (result[i])), ((void*) ((&x->data[((NI) 0)]))), ((NI) ((NI)((x ? x->Sup.len : 0) + ((NI) 1)))));
685 						i += ((NI) 1);
686 					}
687 					LA10_: ;
688 					res += ((NI) 1);
689 				} LA7: ;
690 			}
691 		}
692 	}
693 	return result;
694 }
N_INLINE(NCSTRING,nimToCStringConv)695 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
696 	NCSTRING result;
697 	result = (NCSTRING)0;
698 	{
699 		NIM_BOOL T3_;
700 		T3_ = (NIM_BOOL)0;
701 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
702 		if (T3_) goto LA4_;
703 		T3_ = ((*s).Sup.len == ((NI) 0));
704 		LA4_: ;
705 		if (!T3_) goto LA5_;
706 		result = "";
707 	}
708 	goto LA1_;
709 	LA5_: ;
710 	{
711 		result = ((NCSTRING) ((*s).data));
712 	}
713 	LA1_: ;
714 	return result;
715 }
N_NIMCALL(void,startProcessFail__pureZosproc_483)716 N_LIB_PRIVATE N_NIMCALL(void, startProcessFail__pureZosproc_483)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
717 	int error;
718 	NI T1_;
719 	error = errno;
720 	T1_ = (NI)0;
721 	T1_ = write((*data).pErrorPipe[(((NI) 1))- 0], ((void*) ((&error))), ((NI) 4));
722 	(void)(T1_);
723 	_exit(((NI) 1));
724 }
N_INLINE(NI,nimCStrLen)725 static N_INLINE(NI, nimCStrLen)(NCSTRING a) {
726 	NI result;
727 	size_t T1_;
728 	result = (NI)0;
729 	T1_ = (size_t)0;
730 	T1_ = strlen(a);
731 	result = ((NI) (T1_));
732 	return result;
733 }
N_CDECL(void,startProcessAfterFork__pureZosproc_350)734 N_LIB_PRIVATE N_CDECL(void, startProcessAfterFork__pureZosproc_350)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
735 	int T42_;
736 	int T43_;
737 	{
738 		int T5_;
739 		int T11_;
740 		int T17_;
741 		if (!!((((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
742 		T5_ = (int)0;
743 		T5_ = close((*data).pStdin[(((NI) 1))- 0]);
744 		(void)(T5_);
745 		{
746 			int T8_;
747 			T8_ = (int)0;
748 			T8_ = dup2((*data).pStdin[(((NI) 0))- 0], ((int) 0));
749 			if (!(T8_ < ((NI32) 0))) goto LA9_;
750 			startProcessFail__pureZosproc_483(data);
751 		}
752 		LA9_: ;
753 		T11_ = (int)0;
754 		T11_ = close((*data).pStdout[(((NI) 0))- 0]);
755 		(void)(T11_);
756 		{
757 			int T14_;
758 			T14_ = (int)0;
759 			T14_ = dup2((*data).pStdout[(((NI) 1))- 0], ((int) 1));
760 			if (!(T14_ < ((NI32) 0))) goto LA15_;
761 			startProcessFail__pureZosproc_483(data);
762 		}
763 		LA15_: ;
764 		T17_ = (int)0;
765 		T17_ = close((*data).pStderr[(((NI) 0))- 0]);
766 		(void)(T17_);
767 		{
768 			if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA20_;
769 			{
770 				int T24_;
771 				T24_ = (int)0;
772 				T24_ = dup2((*data).pStdout[(((NI) 1))- 0], ((int) 2));
773 				if (!(T24_ < ((NI32) 0))) goto LA25_;
774 				startProcessFail__pureZosproc_483(data);
775 			}
776 			LA25_: ;
777 		}
778 		goto LA18_;
779 		LA20_: ;
780 		{
781 			{
782 				int T30_;
783 				T30_ = (int)0;
784 				T30_ = dup2((*data).pStderr[(((NI) 1))- 0], ((int) 2));
785 				if (!(T30_ < ((NI32) 0))) goto LA31_;
786 				startProcessFail__pureZosproc_483(data);
787 			}
788 			LA31_: ;
789 		}
790 		LA18_: ;
791 	}
792 	LA3_: ;
793 	{
794 		if (!(((NI) 0) < ((*data).workingDir ? nimCStrLen((*data).workingDir) : 0))) goto LA35_;
795 		{
796 			int T39_;
797 			T39_ = (int)0;
798 			T39_ = chdir((*data).workingDir);
799 			if (!(T39_ < ((NI32) 0))) goto LA40_;
800 			startProcessFail__pureZosproc_483(data);
801 		}
802 		LA40_: ;
803 	}
804 	LA35_: ;
805 	T42_ = (int)0;
806 	T42_ = close((*data).pErrorPipe[(((NI) 0))- 0]);
807 	(void)(T42_);
808 	T43_ = (int)0;
809 	T43_ = fcntl((*data).pErrorPipe[(((NI) 1))- 0], F_SETFD, FD_CLOEXEC);
810 	(void)(T43_);
811 	{
812 		int T48_;
813 		if (!(((*data).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 1))&7U)))!=0)) goto LA46_;
814 		environ = (*data).sysEnv;
815 		T48_ = (int)0;
816 		T48_ = execvp(nimToCStringConv((*data).sysCommand), (*data).sysArgs);
817 		(void)(T48_);
818 	}
819 	goto LA44_;
820 	LA46_: ;
821 	{
822 		int T50_;
823 		T50_ = (int)0;
824 		T50_ = execve(nimToCStringConv((*data).sysCommand), (*data).sysArgs, (*data).sysEnv);
825 		(void)(T50_);
826 	}
827 	LA44_: ;
828 	startProcessFail__pureZosproc_483(data);
829 }
N_INLINE(void,popSafePoint)830 static N_INLINE(void, popSafePoint)(void) {
831 	excHandler__system_2565 = (*excHandler__system_2565).prev;
832 }
N_NIMCALL(pid_t,startProcessAuxFork__pureZosproc_348)833 N_LIB_PRIVATE N_NIMCALL(pid_t, startProcessAuxFork__pureZosproc_348)(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA* data) {
834 	pid_t result;
835 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_11;
836 	pid_t pid;
837 	tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA dataCopy;
838 	int T11_;
839 	int error;
840 	NI sizeRead;
841 	int T25_;
842 {	result = (pid_t)0;
843 	{
844 		int T3_;
845 		NI32 T6_;
846 		T3_ = (int)0;
847 		T3_ = pipe((*data).pErrorPipe);
848 		if (!!((T3_ == ((NI32) 0)))) goto LA4_;
849 		T6_ = (NI32)0;
850 		T6_ = osLastError__pureZos_408();
851 		raiseOSError__pureZos_405(T6_, ((NimStringDesc*) NIM_NIL));
852 	}
853 	LA4_: ;
854 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_11);
855 	TM__HZdw8BhppcTQo8DIK46LSg_11.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_11.context);
856 	if (TM__HZdw8BhppcTQo8DIK46LSg_11.status == 0) {
857 	pid = (pid_t)0;
858 	nimZeroMem((void*)(&dataCopy), sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA));
859 	genericAssign((void*)(&dataCopy), (void*)data, (&NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_));
860 	pid = fork();
861 	{
862 		if (!(pid == ((NI32) 0))) goto LA9_;
863 		startProcessAfterFork__pureZosproc_350((&dataCopy));
864 		_exit(((NI) 1));
865 	}
866 	LA9_: ;
867 	T11_ = (int)0;
868 	T11_ = close((*data).pErrorPipe[(((NI) 1))- 0]);
869 	(void)(T11_);
870 	{
871 		NI32 T16_;
872 		if (!(pid < ((NI32) 0))) goto LA14_;
873 		T16_ = (NI32)0;
874 		T16_ = osLastError__pureZos_408();
875 		raiseOSError__pureZos_405(T16_, ((NimStringDesc*) NIM_NIL));
876 	}
877 	LA14_: ;
878 	error = (int)0;
879 	sizeRead = read((*data).pErrorPipe[(((NI) 0))- 0], ((void*) ((&error))), ((NI) 4));
880 	{
881 		NI32 T21_;
882 		tyArray__Re75IspeoxXy2oCZHwcRrA T22_;
883 		NCSTRING T23_;
884 		NimStringDesc* T24_;
885 		if (!(sizeRead == ((NI) 4))) goto LA19_;
886 		T21_ = (NI32)0;
887 		T21_ = osLastError__pureZos_408();
888 		nimZeroMem((void*)T22_, sizeof(tyArray__Re75IspeoxXy2oCZHwcRrA));
889 		T22_[0] = copyString((*data).sysCommand);
890 		T23_ = (NCSTRING)0;
891 		T23_ = strerror(error);
892 		T22_[1] = cstrToNimstr(T23_);
893 		T24_ = NIM_NIL;
894 		T24_ = nsuFormatOpenArray(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_13), T22_, 2);
895 		raiseOSError__pureZos_405(T21_, T24_);
896 	}
897 	LA19_: ;
898 	result = pid;
899 	popSafePoint();
900 	T25_ = (int)0;
901 	T25_ = close((*data).pErrorPipe[(((NI) 0))- 0]);
902 	(void)(T25_);
903 	goto BeforeRet_;
904 	popSafePoint();
905 	}
906 	else {
907 		popSafePoint();
908 	}
909 	{
910 		int T28_;
911 		T28_ = (int)0;
912 		T28_ = close((*data).pErrorPipe[(((NI) 0))- 0]);
913 		(void)(T28_);
914 		if (TM__HZdw8BhppcTQo8DIK46LSg_11.status != 0) nimLeaveFinally();
915 	}
916 	if (TM__HZdw8BhppcTQo8DIK46LSg_11.status != 0) reraiseException();
917 	}BeforeRet_: ;
918 	return result;
919 }
N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg *,nospstartProcess)920 N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringDesc* command, NimStringDesc* workingDir, NimStringDesc** args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options) {
921 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* result;
922 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdin;
923 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStdout;
924 	tyArray__SKEqGXcReU4NvbQlH779b5Q pStderr;
925 	tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA data;
926 	tySequence__sM4lkSb7zS6F7OVMvW9cffQ* sysArgsRaw;
927 	pid_t pid;
928 	NCSTRING* sysArgs;
929 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_8;
930 	NCSTRING* sysEnv;
931 	TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_10;
932 	result = NIM_NIL;
933 	nimZeroMem((void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
934 	nimZeroMem((void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
935 	nimZeroMem((void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
936 	result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) newObj((&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_), sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg));
937 	(*result).Sup.m_type = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
938 	(*result).options = options;
939 	(*result).exitFlag = NIM_TRUE;
940 	{
941 		if (!!(((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
942 		{
943 			NIM_BOOL T7_;
944 			NIM_BOOL T8_;
945 			int T9_;
946 			int T11_;
947 			int T13_;
948 			NI32 T16_;
949 			T7_ = (NIM_BOOL)0;
950 			T8_ = (NIM_BOOL)0;
951 			T9_ = (int)0;
952 			T9_ = pipe(pStdin);
953 			T8_ = !((T9_ == ((NI32) 0)));
954 			if (T8_) goto LA10_;
955 			T11_ = (int)0;
956 			T11_ = pipe(pStdout);
957 			T8_ = !((T11_ == ((NI32) 0)));
958 			LA10_: ;
959 			T7_ = T8_;
960 			if (T7_) goto LA12_;
961 			T13_ = (int)0;
962 			T13_ = pipe(pStderr);
963 			T7_ = !((T13_ == ((NI32) 0)));
964 			LA12_: ;
965 			if (!T7_) goto LA14_;
966 			T16_ = (NI32)0;
967 			T16_ = osLastError__pureZos_408();
968 			raiseOSError__pureZos_405(T16_, ((NimStringDesc*) NIM_NIL));
969 		}
970 		LA14_: ;
971 	}
972 	LA3_: ;
973 	nimZeroMem((void*)(&data), sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA));
974 	sysArgsRaw = NIM_NIL;
975 	{
976 		NimStringDesc* T21_;
977 		NimStringDesc* T22_;
978 		NimStringDesc* T23_;
979 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 2))&7U)))!=0)) goto LA19_;
980 		data.sysCommand = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
981 		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 3);
982 		T21_ = NIM_NIL;
983 		T21_ = sysArgsRaw->data[0]; sysArgsRaw->data[0] = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_6));
984 		if (T21_) nimGCunrefNoCycle(T21_);
985 		T22_ = NIM_NIL;
986 		T22_ = sysArgsRaw->data[1]; sysArgsRaw->data[1] = copyStringRC1(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_7));
987 		if (T22_) nimGCunrefNoCycle(T22_);
988 		T23_ = NIM_NIL;
989 		T23_ = sysArgsRaw->data[2]; sysArgsRaw->data[2] = copyStringRC1(command);
990 		if (T23_) nimGCunrefNoCycle(T23_);
991 	}
992 	goto LA17_;
993 	LA19_: ;
994 	{
995 		NimStringDesc* T25_;
996 		data.sysCommand = copyString(command);
997 		sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_), 1);
998 		T25_ = NIM_NIL;
999 		T25_ = sysArgsRaw->data[0]; sysArgsRaw->data[0] = copyStringRC1(command);
1000 		if (T25_) nimGCunrefNoCycle(T25_);
1001 		{
1002 			NimStringDesc** arg;
1003 			NI i;
1004 			arg = (NimStringDesc**)0;
1005 			i = ((NI) 0);
1006 			{
1007 				while (1) {
1008 					NI T29_;
1009 					NimStringDesc* T30_;
1010 					if (!(i < argsLen_0)) goto LA28;
1011 					arg = (&args[i]);
1012 					sysArgsRaw = (tySequence__sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV3((TGenericSeq*)(sysArgsRaw), (&NTIseqLstringT__sM4lkSb7zS6F7OVMvW9cffQ_));
1013 					T29_ = sysArgsRaw->Sup.len++;
1014 					T30_ = NIM_NIL;
1015 					T30_ = sysArgsRaw->data[T29_]; sysArgsRaw->data[T29_] = copyStringRC1((*arg));
1016 					if (T30_) nimGCunrefNoCycle(T30_);
1017 					i += ((NI) 1);
1018 				} LA28: ;
1019 			}
1020 		}
1021 	}
1022 	LA17_: ;
1023 	pid = (pid_t)0;
1024 	sysArgs = allocCStringArray__system_2469(sysArgsRaw->data, (sysArgsRaw ? sysArgsRaw->Sup.len : 0));
1025 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_8);
1026 	TM__HZdw8BhppcTQo8DIK46LSg_8.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_8.context);
1027 	if (TM__HZdw8BhppcTQo8DIK46LSg_8.status == 0) {
1028 	{
1029 		if (!(env == ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL))) goto LA33_;
1030 		sysEnv = envToCStringArray__pureZosproc_320();
1031 	}
1032 	goto LA31_;
1033 	LA33_: ;
1034 	{
1035 		sysEnv = envToCStringArray__pureZosproc_309(env);
1036 	}
1037 	LA31_: ;
1038 	pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_10);
1039 	TM__HZdw8BhppcTQo8DIK46LSg_10.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_10.context);
1040 	if (TM__HZdw8BhppcTQo8DIK46LSg_10.status == 0) {
1041 	data.sysArgs = sysArgs;
1042 	data.sysEnv = sysEnv;
1043 	nimCopyMem((void*)data.pStdin, (NIM_CONST void*)pStdin, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1044 	nimCopyMem((void*)data.pStdout, (NIM_CONST void*)pStdout, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1045 	nimCopyMem((void*)data.pStderr, (NIM_CONST void*)pStderr, sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q));
1046 	data.workingDir = nimToCStringConv(workingDir);
1047 	data.options = options;
1048 	pid = startProcessAuxFork__pureZosproc_348((&data));
1049 	{
1050 		tyArray__24KAM9afIUgUaqBaEBB6r9bg T40_;
1051 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 0))&7U)))!=0)) goto LA38_;
1052 		nimZeroMem((void*)T40_, sizeof(tyArray__24KAM9afIUgUaqBaEBB6r9bg));
1053 		T40_[0] = copyString(command);
1054 		T40_[1] = copyString(((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_14));
1055 		T40_[2] = nsuJoinSep(args, argsLen_0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_14));
1056 		echoBinSafe(T40_, 3);
1057 	}
1058 	LA38_: ;
1059 	(*result).id = pid;
1060 	(*result).exitFlag = NIM_FALSE;
1061 	{
1062 		if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0)) goto LA43_;
1063 		(*result).inHandle = ((int) 0);
1064 		(*result).outHandle = ((int) 1);
1065 		{
1066 			if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA47_;
1067 			(*result).errHandle = (*result).outHandle;
1068 		}
1069 		goto LA45_;
1070 		LA47_: ;
1071 		{
1072 			(*result).errHandle = ((int) 2);
1073 		}
1074 		LA45_: ;
1075 	}
1076 	goto LA41_;
1077 	LA43_: ;
1078 	{
1079 		int T57_;
1080 		int T58_;
1081 		int T59_;
1082 		(*result).inHandle = pStdin[(((NI) 1))- 0];
1083 		(*result).outHandle = pStdout[(((NI) 0))- 0];
1084 		{
1085 			int T55_;
1086 			if (!((options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 3))&7U)))!=0)) goto LA53_;
1087 			(*result).errHandle = (*result).outHandle;
1088 			T55_ = (int)0;
1089 			T55_ = close(pStderr[(((NI) 0))- 0]);
1090 			(void)(T55_);
1091 		}
1092 		goto LA51_;
1093 		LA53_: ;
1094 		{
1095 			(*result).errHandle = pStderr[(((NI) 0))- 0];
1096 		}
1097 		LA51_: ;
1098 		T57_ = (int)0;
1099 		T57_ = close(pStderr[(((NI) 1))- 0]);
1100 		(void)(T57_);
1101 		T58_ = (int)0;
1102 		T58_ = close(pStdin[(((NI) 0))- 0]);
1103 		(void)(T58_);
1104 		T59_ = (int)0;
1105 		T59_ = close(pStdout[(((NI) 1))- 0]);
1106 		(void)(T59_);
1107 	}
1108 	LA41_: ;
1109 	popSafePoint();
1110 	}
1111 	else {
1112 		popSafePoint();
1113 	}
1114 	{
1115 		deallocCStringArray__system_2503(sysEnv);
1116 		if (TM__HZdw8BhppcTQo8DIK46LSg_10.status != 0) nimLeaveFinally();
1117 	}
1118 	if (TM__HZdw8BhppcTQo8DIK46LSg_10.status != 0) reraiseException();
1119 	popSafePoint();
1120 	}
1121 	else {
1122 		popSafePoint();
1123 	}
1124 	{
1125 		deallocCStringArray__system_2503(sysArgs);
1126 		if (TM__HZdw8BhppcTQo8DIK46LSg_8.status != 0) nimLeaveFinally();
1127 	}
1128 	if (TM__HZdw8BhppcTQo8DIK46LSg_8.status != 0) reraiseException();
1129 	return result;
1130 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,createStream__pureZosproc_605)1131 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, createStream__pureZosproc_605)(int* handle, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg fileMode) {
1132 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
1133 	FILE* f;
1134 {	result = NIM_NIL;
1135 	f = (FILE*)0;
1136 	{
1137 		NIM_BOOL T3_;
1138 		NI32 T6_;
1139 		T3_ = (NIM_BOOL)0;
1140 		T3_ = open__systemZio_420(&f, (*handle), fileMode);
1141 		if (!!(T3_)) goto LA4_;
1142 		T6_ = (NI32)0;
1143 		T6_ = osLastError__pureZos_408();
1144 		raiseOSError__pureZos_405(T6_, ((NimStringDesc*) NIM_NIL));
1145 	}
1146 	LA4_: ;
1147 	result = newFileStream__pureZstreams_808(f);
1148 	goto BeforeRet_;
1149 	}BeforeRet_: ;
1150 	return result;
1151 }
N_INLINE(NI,pluspercent___system_696)1152 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1153 	NI result;
1154 	result = (NI)0;
1155 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1156 	return result;
1157 }
N_INLINE(void,incRef__system_5329)1158 static N_INLINE(void, incRef__system_5329)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1159 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1160 }
N_INLINE(void,asgnRef)1161 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1162 	{
1163 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1164 		if (!!((src == NIM_NIL))) goto LA3_;
1165 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1166 		T5_ = usrToCell__system_5291(src);
1167 		incRef__system_5329(T5_);
1168 	}
1169 	LA3_: ;
1170 	{
1171 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1172 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1173 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1174 		T10_ = usrToCell__system_5291((*dest));
1175 		decRef__system_5336(T10_);
1176 	}
1177 	LA8_: ;
1178 	(*dest) = src;
1179 }
N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ *,nospinputStream)1180 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1181 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
1182 {	result = NIM_NIL;
1183 	{
1184 		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
1185 		if (!((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
1186 		T5_ = NIM_NIL;
1187 		T5_ = createStream__pureZosproc_605((&(*p).inHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 1));
1188 		asgnRef((void**) (&(*p).inStream), &T5_->Sup);
1189 	}
1190 	LA3_: ;
1191 	result = (*p).inStream;
1192 	goto BeforeRet_;
1193 	}BeforeRet_: ;
1194 	return result;
1195 }
N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ *,nospoutputStream)1196 N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1197 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
1198 {	result = NIM_NIL;
1199 	{
1200 		tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* T5_;
1201 		if (!((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
1202 		T5_ = NIM_NIL;
1203 		T5_ = createStream__pureZosproc_605((&(*p).outHandle), ((tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg) 0));
1204 		asgnRef((void**) (&(*p).outStream), &T5_->Sup);
1205 	}
1206 	LA3_: ;
1207 	result = (*p).outStream;
1208 	goto BeforeRet_;
1209 	}BeforeRet_: ;
1210 	return result;
1211 }
N_INLINE(NI,percentpercent___system_776)1212 static N_INLINE(NI, percentpercent___system_776)(NI x, NI y) {
1213 	NI result;
1214 	result = (NI)0;
1215 	result = ((NI) ((NU)((NU32)(((NU) (x))) % (NU32)(((NU) (y))))));
1216 	return result;
1217 }
N_NIMCALL(NI,nospwaitForExit)1218 N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout) {
1219 	NI result;
1220 	int T72_;
1221 {	result = (NI)0;
1222 	{
1223 		int T5_;
1224 		if (!(*p).exitFlag) goto LA3_;
1225 		T5_ = (int)0;
1226 		T5_ = exitStatusLikeShell__pureZos_1110((*p).exitStatus);
1227 		result = ((NI) (T5_));
1228 		goto BeforeRet_;
1229 	}
1230 	LA3_: ;
1231 	{
1232 		int status;
1233 		if (!(timeout == ((NI) -1))) goto LA8_;
1234 		status = ((int) 1);
1235 		{
1236 			pid_t T12_;
1237 			NI32 T15_;
1238 			T12_ = (pid_t)0;
1239 			T12_ = waitpid((*p).id, (&status), ((int) 0));
1240 			if (!(T12_ < ((NI32) 0))) goto LA13_;
1241 			T15_ = (NI32)0;
1242 			T15_ = osLastError__pureZos_408();
1243 			raiseOSError__pureZos_405(T15_, ((NimStringDesc*) NIM_NIL));
1244 		}
1245 		LA13_: ;
1246 		(*p).exitFlag = NIM_TRUE;
1247 		(*p).exitStatus = status;
1248 	}
1249 	goto LA6_;
1250 	LA8_: ;
1251 	{
1252 		int kqFD;
1253 		struct kevent volatile kevIn;
1254 		struct kevent volatile kevOut;
1255 		struct timespec volatile tmspec;
1256 		TSafePoint TM__HZdw8BhppcTQo8DIK46LSg_15;
1257 		kqFD = kqueue();
1258 		{
1259 			NI32 T21_;
1260 			if (!(kqFD == ((NI32) -1))) goto LA19_;
1261 			T21_ = (NI32)0;
1262 			T21_ = osLastError__pureZos_408();
1263 			raiseOSError__pureZos_405(T21_, ((NimStringDesc*) NIM_NIL));
1264 		}
1265 		LA19_: ;
1266 		nimZeroMem((void*)(&kevIn), sizeof(struct kevent));
1267 		kevIn.ident = ((NU) ((*p).id));
1268 		kevIn.filter = ((short) -5);
1269 		kevIn.flags = ((unsigned short) 1);
1270 		kevIn.fflags = ((NU32) IL64(2147483648));
1271 		nimZeroMem((void*)(&kevOut), sizeof(struct kevent));
1272 		nimZeroMem((void*)(&tmspec), sizeof(struct timespec));
1273 		{
1274 			NI T26_;
1275 			if (!(((NI) 1000) <= timeout)) goto LA24_;
1276 			tmspec.tv_sec = (NI)(timeout / ((NI) 1000));
1277 			T26_ = (NI)0;
1278 			T26_ = percentpercent___system_776(timeout, ((NI) 1000));
1279 			tmspec.tv_nsec = (NI)(T26_ * ((NI) 1000000));
1280 		}
1281 		goto LA22_;
1282 		LA24_: ;
1283 		{
1284 			tmspec.tv_sec = ((long) 0);
1285 			tmspec.tv_nsec = (NI)(timeout * ((NI) 1000000));
1286 		}
1287 		LA22_: ;
1288 		pushSafePoint(&TM__HZdw8BhppcTQo8DIK46LSg_15);
1289 		TM__HZdw8BhppcTQo8DIK46LSg_15.status = _setjmp(TM__HZdw8BhppcTQo8DIK46LSg_15.context);
1290 		if (TM__HZdw8BhppcTQo8DIK46LSg_15.status == 0) {
1291 		{
1292 			while (1) {
1293 				int status_2;
1294 				int count;
1295 				status_2 = ((int) 1);
1296 				count = kevent(kqFD, (&kevIn), ((int) 1), (&kevOut), ((int) 1), (&tmspec));
1297 				{
1298 					NI32 err;
1299 					if (!(count < ((NI32) 0))) goto LA32_;
1300 					err = osLastError__pureZos_408();
1301 					{
1302 						NI32 T38_;
1303 						if (!!((err == EINTR))) goto LA36_;
1304 						T38_ = (NI32)0;
1305 						T38_ = osLastError__pureZos_408();
1306 						raiseOSError__pureZos_405(T38_, ((NimStringDesc*) NIM_NIL));
1307 					}
1308 					LA36_: ;
1309 				}
1310 				goto LA30_;
1311 				LA32_: ;
1312 				{
1313 					if (!(count == ((NI32) 0))) goto LA40_;
1314 					{
1315 						int T44_;
1316 						NI32 T47_;
1317 						T44_ = (int)0;
1318 						T44_ = kill((*p).id, SIGKILL);
1319 						if (!(T44_ == ((NI32) -1))) goto LA45_;
1320 						T47_ = (NI32)0;
1321 						T47_ = osLastError__pureZos_408();
1322 						raiseOSError__pureZos_405(T47_, ((NimStringDesc*) NIM_NIL));
1323 					}
1324 					LA45_: ;
1325 					{
1326 						pid_t T50_;
1327 						NI32 T53_;
1328 						T50_ = (pid_t)0;
1329 						T50_ = waitpid((*p).id, (&status_2), ((int) 0));
1330 						if (!(T50_ < ((NI32) 0))) goto LA51_;
1331 						T53_ = (NI32)0;
1332 						T53_ = osLastError__pureZos_408();
1333 						raiseOSError__pureZos_405(T53_, ((NimStringDesc*) NIM_NIL));
1334 					}
1335 					LA51_: ;
1336 					(*p).exitFlag = NIM_TRUE;
1337 					(*p).exitStatus = status_2;
1338 					goto LA28;
1339 				}
1340 				goto LA30_;
1341 				LA40_: ;
1342 				{
1343 					{
1344 						NIM_BOOL T57_;
1345 						T57_ = (NIM_BOOL)0;
1346 						T57_ = (kevOut.ident == ((NU) ((*p).id)));
1347 						if (!(T57_)) goto LA58_;
1348 						T57_ = (kevOut.filter == ((NI16) -5));
1349 						LA58_: ;
1350 						if (!T57_) goto LA59_;
1351 						{
1352 							pid_t T63_;
1353 							NI32 T66_;
1354 							T63_ = (pid_t)0;
1355 							T63_ = waitpid((*p).id, (&status_2), ((int) 0));
1356 							if (!(T63_ < ((NI32) 0))) goto LA64_;
1357 							T66_ = (NI32)0;
1358 							T66_ = osLastError__pureZos_408();
1359 							raiseOSError__pureZos_405(T66_, ((NimStringDesc*) NIM_NIL));
1360 						}
1361 						LA64_: ;
1362 						(*p).exitFlag = NIM_TRUE;
1363 						(*p).exitStatus = status_2;
1364 						goto LA28;
1365 					}
1366 					goto LA55_;
1367 					LA59_: ;
1368 					{
1369 						NI32 T68_;
1370 						T68_ = (NI32)0;
1371 						T68_ = osLastError__pureZos_408();
1372 						raiseOSError__pureZos_405(T68_, ((NimStringDesc*) NIM_NIL));
1373 					}
1374 					LA55_: ;
1375 				}
1376 				LA30_: ;
1377 			}
1378 		} LA28: ;
1379 		popSafePoint();
1380 		}
1381 		else {
1382 			popSafePoint();
1383 		}
1384 		{
1385 			int T71_;
1386 			T71_ = (int)0;
1387 			T71_ = close(kqFD);
1388 			(void)(T71_);
1389 			if (TM__HZdw8BhppcTQo8DIK46LSg_15.status != 0) nimLeaveFinally();
1390 		}
1391 		if (TM__HZdw8BhppcTQo8DIK46LSg_15.status != 0) reraiseException();
1392 	}
1393 	LA6_: ;
1394 	T72_ = (int)0;
1395 	T72_ = exitStatusLikeShell__pureZos_1110((*p).exitStatus);
1396 	result = ((NI) (T72_));
1397 	}BeforeRet_: ;
1398 	return result;
1399 }
N_NIMCALL(void,nospclose)1400 N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1401 	{
1402 		if (!!((((*p).options &((NU8)1<<((NU)(((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA) 4))&7U)))!=0))) goto LA3_;
1403 		{
1404 			if (!!(((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA7_;
1405 			close__pureZstreams_57((*p).inStream);
1406 		}
1407 		goto LA5_;
1408 		LA7_: ;
1409 		{
1410 			int T10_;
1411 			T10_ = (int)0;
1412 			T10_ = close((*p).inHandle);
1413 			(void)(T10_);
1414 		}
1415 		LA5_: ;
1416 		{
1417 			if (!!(((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA13_;
1418 			close__pureZstreams_57((*p).outStream);
1419 		}
1420 		goto LA11_;
1421 		LA13_: ;
1422 		{
1423 			int T16_;
1424 			T16_ = (int)0;
1425 			T16_ = close((*p).outHandle);
1426 			(void)(T16_);
1427 		}
1428 		LA11_: ;
1429 		{
1430 			if (!!(((*p).errStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL)))) goto LA19_;
1431 			close__pureZstreams_57((*p).errStream);
1432 		}
1433 		goto LA17_;
1434 		LA19_: ;
1435 		{
1436 			int T22_;
1437 			T22_ = (int)0;
1438 			T22_ = close((*p).errHandle);
1439 			(void)(T22_);
1440 		}
1441 		LA17_: ;
1442 	}
1443 	LA3_: ;
1444 }
N_NIMCALL(NIM_BOOL,isExitStatus__pureZosproc_306)1445 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isExitStatus__pureZosproc_306)(int status) {
1446 	NIM_BOOL result;
1447 	NIM_BOOL T1_;
1448 	result = (NIM_BOOL)0;
1449 	T1_ = (NIM_BOOL)0;
1450 	T1_ = WIFEXITED(status);
1451 	if (T1_) goto LA2_;
1452 	T1_ = WIFSIGNALED(status);
1453 	LA2_: ;
1454 	result = T1_;
1455 	return result;
1456 }
N_NIMCALL(NI,nosppeekExitCode)1457 N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1458 	NI result;
1459 	int status;
1460 	pid_t ret;
1461 {	result = (NI)0;
1462 	status = ((int) 0);
1463 	result = ((NI) -1);
1464 	{
1465 		int T5_;
1466 		if (!(*p).exitFlag) goto LA3_;
1467 		T5_ = (int)0;
1468 		T5_ = exitStatusLikeShell__pureZos_1110((*p).exitStatus);
1469 		result = ((NI) (T5_));
1470 		goto BeforeRet_;
1471 	}
1472 	LA3_: ;
1473 	ret = waitpid((*p).id, (&status), WNOHANG);
1474 	{
1475 		if (!(((NI32) 0) < ret)) goto LA8_;
1476 		{
1477 			NIM_BOOL T12_;
1478 			int T15_;
1479 			T12_ = (NIM_BOOL)0;
1480 			T12_ = isExitStatus__pureZosproc_306(status);
1481 			if (!T12_) goto LA13_;
1482 			(*p).exitFlag = NIM_TRUE;
1483 			(*p).exitStatus = status;
1484 			T15_ = (int)0;
1485 			T15_ = exitStatusLikeShell__pureZos_1110(status);
1486 			result = ((NI) (T15_));
1487 		}
1488 		LA13_: ;
1489 	}
1490 	LA8_: ;
1491 	}BeforeRet_: ;
1492 	return result;
1493 }
N_NIMCALL(void,execCmdEx__pureZosproc_1148)1494 N_LIB_PRIVATE N_NIMCALL(void, execCmdEx__pureZosproc_1148)(NimStringDesc* command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringDesc* workingDir, NimStringDesc* input, tyTuple__XOVT24GHXwqiEj5GCsEGCA* Result) {
1495 	tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1496 	tyArray__8ZvwQIddfpj2THRVPsFzIQ T1_;
1497 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
1498 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T7_;
1499 	NimStringDesc* colontmp_;
1500 	NI colontmp__2;
1501 	NimStringDesc* line;
1502 	nimZeroMem((void*)T1_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1503 	p = nospstartProcess(command, workingDir, T1_, 0, env, (options | 4));
1504 	outp = nospoutputStream(p);
1505 	{
1506 		tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* T6_;
1507 		if (!(((NI) 0) < (input ? input->Sup.len : 0))) goto LA4_;
1508 		T6_ = NIM_NIL;
1509 		T6_ = nospinputStream(p);
1510 		write__pureZstreams_177(T6_, input);
1511 	}
1512 	LA4_: ;
1513 	T7_ = NIM_NIL;
1514 	T7_ = nospinputStream(p);
1515 	close__pureZstreams_57(T7_);
1516 	colontmp_ = ((NimStringDesc*) NIM_NIL);
1517 	colontmp__2 = ((NI) -1);
1518 	unsureAsgnRef((void**) (&(*Result).Field0), copyString(colontmp_));
1519 	(*Result).Field1 = colontmp__2;
1520 	line = rawNewString(((NI) 120));
1521 	{
1522 		while (1) {
1523 			{
1524 				NIM_BOOL T12_;
1525 				T12_ = (NIM_BOOL)0;
1526 				T12_ = readLine__pureZstreams_524(outp, (&line));
1527 				if (!T12_) goto LA13_;
1528 				unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, (line ? line->Sup.len : 0) + 0));
1529 appendString((*Result).Field0, line);
1530 				unsureAsgnRef((void**) (&(*Result).Field0), resizeString((*Result).Field0, 1));
1531 appendString((*Result).Field0, ((NimStringDesc*) &TM__HZdw8BhppcTQo8DIK46LSg_16));
1532 			}
1533 			goto LA10_;
1534 			LA13_: ;
1535 			{
1536 				(*Result).Field1 = nosppeekExitCode(p);
1537 				{
1538 					if (!!(((*Result).Field1 == ((NI) -1)))) goto LA18_;
1539 					goto LA8;
1540 				}
1541 				LA18_: ;
1542 			}
1543 			LA10_: ;
1544 		}
1545 	} LA8: ;
1546 	nospclose(p);
1547 }
N_NIMCALL(NI,nospexecCmd)1548 N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringDesc* command) {
1549 	NI result;
1550 	int T1_;
1551 	result = (NI)0;
1552 	T1_ = (int)0;
1553 	T1_ = system(nimToCStringConv(command));
1554 	result = ((NI) (T1_));
1555 	return result;
1556 }
N_NIMCALL(NI,nospcountProcessors)1557 N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void) {
1558 	NI result;
1559 	result = (NI)0;
1560 	result = ncpicountProcessors();
1561 	return result;
1562 }
N_NIMCALL(void,Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)1563 static N_NIMCALL(void, Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ)(void* p, NI op) {
1564 	tySequence__PrBYolTs4TOSgE8v5oqDUQ* a;
1565 	NI T1_;
1566 	a = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*)p;
1567 	T1_ = (NI)0;
1568 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
1569 	nimGCvisit((void*)a->data[T1_], op);
1570 	}
1571 }
N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ *,newSeq__pureZosproc_120)1572 N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ*, newSeq__pureZosproc_120)(NI len) {
1573 	tySequence__PrBYolTs4TOSgE8v5oqDUQ* result;
1574 	result = NIM_NIL;
1575 	result = (tySequence__PrBYolTs4TOSgE8v5oqDUQ*) newSeq((&NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_), len);
1576 	return result;
1577 }
N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g *,newSeq__pureZosproc_151)1578 N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g*, newSeq__pureZosproc_151)(NI len) {
1579 	tySequence__qwqHTkRvwhrRyENtudHQ7g* result;
1580 	result = NIM_NIL;
1581 	result = (tySequence__qwqHTkRvwhrRyENtudHQ7g*) newSeq((&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), len);
1582 	return result;
1583 }
N_NIMCALL(NIM_BOOL,nosprunning)1584 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
1585 	NIM_BOOL result;
1586 {	result = (NIM_BOOL)0;
1587 	{
1588 		if (!(*p).exitFlag) goto LA3_;
1589 		result = NIM_FALSE;
1590 		goto BeforeRet_;
1591 	}
1592 	goto LA1_;
1593 	LA3_: ;
1594 	{
1595 		int status;
1596 		pid_t ret;
1597 		status = ((int) 1);
1598 		ret = waitpid((*p).id, (&status), WNOHANG);
1599 		{
1600 			if (!(((NI) (ret)) == ((NI) ((*p).id)))) goto LA8_;
1601 			{
1602 				NIM_BOOL T12_;
1603 				T12_ = (NIM_BOOL)0;
1604 				T12_ = isExitStatus__pureZosproc_306(status);
1605 				if (!T12_) goto LA13_;
1606 				(*p).exitFlag = NIM_TRUE;
1607 				(*p).exitStatus = status;
1608 				result = NIM_FALSE;
1609 				goto BeforeRet_;
1610 			}
1611 			goto LA10_;
1612 			LA13_: ;
1613 			{
1614 				result = NIM_TRUE;
1615 				goto BeforeRet_;
1616 			}
1617 			LA10_: ;
1618 		}
1619 		goto LA6_;
1620 		LA8_: ;
1621 		{
1622 			if (!(ret == ((NI32) 0))) goto LA17_;
1623 			result = NIM_TRUE;
1624 			goto BeforeRet_;
1625 		}
1626 		goto LA6_;
1627 		LA17_: ;
1628 		{
1629 			NI32 T20_;
1630 			T20_ = (NI32)0;
1631 			T20_ = osLastError__pureZos_408();
1632 			raiseOSError__pureZos_405(T20_, ((NimStringDesc*) NIM_NIL));
1633 		}
1634 		LA6_: ;
1635 	}
1636 	LA1_: ;
1637 	}BeforeRet_: ;
1638 	return result;
1639 }
N_NIMCALL(NI,nospexecProcesses)1640 N_LIB_PRIVATE N_NIMCALL(NI, nospexecProcesses)(NimStringDesc** cmds, NI cmdsLen_0, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, NI n, tyProc__SqRJqa5aOiKB4EuKlKh9asA beforeRunEvent, tyProc__oudJckli4GdxAXLVzBBlAw afterRunEvent) {
1641 	NI result;
1642 	result = (NI)0;
1643 	{
1644 		NI i;
1645 		tySequence__PrBYolTs4TOSgE8v5oqDUQ* q;
1646 		tySequence__qwqHTkRvwhrRyENtudHQ7g* idxs;
1647 		NI m;
1648 		NI ecount;
1649 		if (!(((NI) 1) < n)) goto LA3_;
1650 		i = ((NI) 0);
1651 		q = newSeq__pureZosproc_120(((NI) (n)));
1652 		idxs = newSeq__pureZosproc_151(((NI) (n)));
1653 		m = ((n <= cmdsLen_0) ? n : cmdsLen_0);
1654 		{
1655 			while (1) {
1656 				tyArray__8ZvwQIddfpj2THRVPsFzIQ T11_;
1657 				if (!(i < m)) goto LA6;
1658 				{
1659 					if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA9_;
1660 					beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_18)(beforeRunEvent.ClP_0))(i);
1661 				}
1662 				LA9_: ;
1663 				nimZeroMem((void*)T11_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1664 				asgnRef((void**) (&q->data[i]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T11_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1665 				idxs->data[i] = i;
1666 				i += ((NI) 1);
1667 			} LA6: ;
1668 		}
1669 		ecount = cmdsLen_0;
1670 		{
1671 			while (1) {
1672 				if (!(((NI) 0) < ecount)) goto LA13;
1673 				{
1674 					NI rexit;
1675 					int status;
1676 					pid_t res;
1677 					rexit = ((NI) -1);
1678 					status = ((int) 1);
1679 					res = waitpid(((pid_t) -1), (&status), ((int) 0));
1680 					{
1681 						if (!(((NI32) 0) < res)) goto LA17_;
1682 						{
1683 							NI r;
1684 							NI colontmp_;
1685 							NI res_2;
1686 							r = (NI)0;
1687 							colontmp_ = (NI)0;
1688 							colontmp_ = (NI)(m - ((NI) 1));
1689 							res_2 = ((NI) 0);
1690 							{
1691 								while (1) {
1692 									if (!(res_2 <= colontmp_)) goto LA21;
1693 									r = res_2;
1694 									{
1695 										NIM_BOOL T24_;
1696 										T24_ = (NIM_BOOL)0;
1697 										T24_ = !((q->data[r] == 0));
1698 										if (!(T24_)) goto LA25_;
1699 										T24_ = ((*q->data[r]).id == res);
1700 										LA25_: ;
1701 										if (!T24_) goto LA26_;
1702 										{
1703 											NIM_BOOL T30_;
1704 											T30_ = (NIM_BOOL)0;
1705 											T30_ = WIFEXITED(status);
1706 											if (T30_) goto LA31_;
1707 											T30_ = WIFSIGNALED(status);
1708 											LA31_: ;
1709 											if (!T30_) goto LA32_;
1710 											(*q->data[r]).exitFlag = NIM_TRUE;
1711 											(*q->data[r]).exitStatus = status;
1712 											rexit = r;
1713 											goto LA19;
1714 										}
1715 										LA32_: ;
1716 									}
1717 									LA26_: ;
1718 									res_2 += ((NI) 1);
1719 								} LA21: ;
1720 							}
1721 						} LA19: ;
1722 					}
1723 					goto LA15_;
1724 					LA17_: ;
1725 					{
1726 						NI32 err;
1727 						err = osLastError__pureZos_408();
1728 						{
1729 							if (!(err == ECHILD)) goto LA37_;
1730 							{
1731 								NI r_2;
1732 								NI colontmp__2;
1733 								NI res_3;
1734 								r_2 = (NI)0;
1735 								colontmp__2 = (NI)0;
1736 								colontmp__2 = (NI)(m - ((NI) 1));
1737 								res_3 = ((NI) 0);
1738 								{
1739 									while (1) {
1740 										if (!(res_3 <= colontmp__2)) goto LA41;
1741 										r_2 = res_3;
1742 										{
1743 											NIM_BOOL T44_;
1744 											NIM_BOOL T46_;
1745 											T44_ = (NIM_BOOL)0;
1746 											T44_ = !((q->data[r_2] == 0));
1747 											if (!(T44_)) goto LA45_;
1748 											T46_ = (NIM_BOOL)0;
1749 											T46_ = nosprunning(q->data[r_2]);
1750 											T44_ = !(T46_);
1751 											LA45_: ;
1752 											if (!T44_) goto LA47_;
1753 											(*q->data[r_2]).exitFlag = NIM_TRUE;
1754 											(*q->data[r_2]).exitStatus = status;
1755 											rexit = r_2;
1756 											goto LA39;
1757 										}
1758 										LA47_: ;
1759 										res_3 += ((NI) 1);
1760 									} LA41: ;
1761 								}
1762 							} LA39: ;
1763 						}
1764 						goto LA35_;
1765 						LA37_: ;
1766 						{
1767 							if (!(err == EINTR)) goto LA50_;
1768 							goto LA14;
1769 						}
1770 						goto LA35_;
1771 						LA50_: ;
1772 						{
1773 							raiseOSError__pureZos_405(err, ((NimStringDesc*) NIM_NIL));
1774 						}
1775 						LA35_: ;
1776 					}
1777 					LA15_: ;
1778 					{
1779 						NI T57_;
1780 						if (!(((NI) 0) <= rexit)) goto LA55_;
1781 						T57_ = (NI)0;
1782 						T57_ = nosppeekExitCode(q->data[rexit]);
1783 						result = ((result >= (T57_ > 0? (T57_) : -(T57_))) ? result : (T57_ > 0? (T57_) : -(T57_)));
1784 						{
1785 							if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClE_0))) goto LA60_;
1786 							afterRunEvent.ClE_0? afterRunEvent.ClP_0(idxs->data[rexit], q->data[rexit], afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_20)(afterRunEvent.ClP_0))(idxs->data[rexit], q->data[rexit]);
1787 						}
1788 						LA60_: ;
1789 						nospclose(q->data[rexit]);
1790 						{
1791 							tyArray__8ZvwQIddfpj2THRVPsFzIQ T70_;
1792 							if (!(i < cmdsLen_0)) goto LA64_;
1793 							{
1794 								if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA68_;
1795 								beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_21)(beforeRunEvent.ClP_0))(i);
1796 							}
1797 							LA68_: ;
1798 							nimZeroMem((void*)T70_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1799 							asgnRef((void**) (&q->data[rexit]), nospstartProcess(cmds[i], ((NimStringDesc*) NIM_NIL), T70_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4)));
1800 							idxs->data[rexit] = i;
1801 							i += ((NI) 1);
1802 						}
1803 						goto LA62_;
1804 						LA64_: ;
1805 						{
1806 							asgnRef((void**) (&q->data[rexit]), ((tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) NIM_NIL));
1807 						}
1808 						LA62_: ;
1809 						ecount -= ((NI) 1);
1810 					}
1811 					LA55_: ;
1812 				} LA14: ;
1813 			} LA13: ;
1814 		}
1815 	}
1816 	goto LA1_;
1817 	LA3_: ;
1818 	{
1819 		{
1820 			NI i_2;
1821 			NI colontmp__3;
1822 			NI res_4;
1823 			i_2 = (NI)0;
1824 			colontmp__3 = (NI)0;
1825 			colontmp__3 = (cmdsLen_0-1);
1826 			res_4 = ((NI) 0);
1827 			{
1828 				while (1) {
1829 					tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
1830 					tyArray__8ZvwQIddfpj2THRVPsFzIQ T80_;
1831 					NI T81_;
1832 					if (!(res_4 <= colontmp__3)) goto LA75;
1833 					i_2 = res_4;
1834 					{
1835 						if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_17.ClE_0))) goto LA78_;
1836 						beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i_2, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_22)(beforeRunEvent.ClP_0))(i_2);
1837 					}
1838 					LA78_: ;
1839 					nimZeroMem((void*)T80_, sizeof(tyArray__8ZvwQIddfpj2THRVPsFzIQ));
1840 					p = nospstartProcess(cmds[i_2], ((NimStringDesc*) NIM_NIL), T80_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
1841 					T81_ = (NI)0;
1842 					T81_ = nospwaitForExit(p, ((NI) -1));
1843 					result = (((T81_ > 0? (T81_) : -(T81_)) >= result) ? (T81_ > 0? (T81_) : -(T81_)) : result);
1844 					{
1845 						if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_19.ClE_0))) goto LA84_;
1846 						afterRunEvent.ClE_0? afterRunEvent.ClP_0(i_2, p, afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_23)(afterRunEvent.ClP_0))(i_2, p);
1847 					}
1848 					LA84_: ;
1849 					nospclose(p);
1850 					res_4 += ((NI) 1);
1851 				} LA75: ;
1852 			}
1853 		}
1854 	}
1855 	LA1_: ;
1856 	return result;
1857 }
N_NIMCALL(void,stdlib_osprocDatInit000)1858 N_LIB_PRIVATE N_NIMCALL(void, stdlib_osprocDatInit000)(void) {
1859 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_2_10[10];
1860 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_3_7[7];
1861 NI TM__HZdw8BhppcTQo8DIK46LSg_5;
1862 static char* NIM_CONST TM__HZdw8BhppcTQo8DIK46LSg_4[7] = {
1863 "poEchoCmd",
1864 "poUsePath",
1865 "poEvalCommand",
1866 "poStdErrToStdOut",
1867 "poParentStreams",
1868 "poInteractive",
1869 "poDaemon"};
1870 static TNimNode* TM__HZdw8BhppcTQo8DIK46LSg_12_9[9];
1871 static TNimNode TM__HZdw8BhppcTQo8DIK46LSg_0[30];
1872 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
1873 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg);
1874 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.kind = 17;
1875 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
1876 TM__HZdw8BhppcTQo8DIK46LSg_2_10[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[1];
1877 TM__HZdw8BhppcTQo8DIK46LSg_0[1].kind = 1;
1878 TM__HZdw8BhppcTQo8DIK46LSg_0[1].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inHandle);
1879 TM__HZdw8BhppcTQo8DIK46LSg_0[1].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1880 TM__HZdw8BhppcTQo8DIK46LSg_0[1].name = "inHandle";
1881 TM__HZdw8BhppcTQo8DIK46LSg_2_10[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[2];
1882 TM__HZdw8BhppcTQo8DIK46LSg_0[2].kind = 1;
1883 TM__HZdw8BhppcTQo8DIK46LSg_0[2].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outHandle);
1884 TM__HZdw8BhppcTQo8DIK46LSg_0[2].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1885 TM__HZdw8BhppcTQo8DIK46LSg_0[2].name = "outHandle";
1886 TM__HZdw8BhppcTQo8DIK46LSg_2_10[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[3];
1887 TM__HZdw8BhppcTQo8DIK46LSg_0[3].kind = 1;
1888 TM__HZdw8BhppcTQo8DIK46LSg_0[3].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errHandle);
1889 TM__HZdw8BhppcTQo8DIK46LSg_0[3].typ = (&NTIfilehandle__2gIj3gQlK3HZJjQaYCP6ZQ_);
1890 TM__HZdw8BhppcTQo8DIK46LSg_0[3].name = "errHandle";
1891 TM__HZdw8BhppcTQo8DIK46LSg_2_10[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[4];
1892 TM__HZdw8BhppcTQo8DIK46LSg_0[4].kind = 1;
1893 TM__HZdw8BhppcTQo8DIK46LSg_0[4].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, id);
1894 TM__HZdw8BhppcTQo8DIK46LSg_0[4].typ = (&NTIpid__r9bTMVI8f19ah9b11jMgY4kPg_);
1895 TM__HZdw8BhppcTQo8DIK46LSg_0[4].name = "id";
1896 TM__HZdw8BhppcTQo8DIK46LSg_2_10[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[5];
1897 TM__HZdw8BhppcTQo8DIK46LSg_0[5].kind = 1;
1898 TM__HZdw8BhppcTQo8DIK46LSg_0[5].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, inStream);
1899 TM__HZdw8BhppcTQo8DIK46LSg_0[5].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1900 TM__HZdw8BhppcTQo8DIK46LSg_0[5].name = "inStream";
1901 TM__HZdw8BhppcTQo8DIK46LSg_2_10[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[6];
1902 TM__HZdw8BhppcTQo8DIK46LSg_0[6].kind = 1;
1903 TM__HZdw8BhppcTQo8DIK46LSg_0[6].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, outStream);
1904 TM__HZdw8BhppcTQo8DIK46LSg_0[6].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1905 TM__HZdw8BhppcTQo8DIK46LSg_0[6].name = "outStream";
1906 TM__HZdw8BhppcTQo8DIK46LSg_2_10[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[7];
1907 TM__HZdw8BhppcTQo8DIK46LSg_0[7].kind = 1;
1908 TM__HZdw8BhppcTQo8DIK46LSg_0[7].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, errStream);
1909 TM__HZdw8BhppcTQo8DIK46LSg_0[7].typ = (&NTIstream__1G0jiQbe7KwD5ADza5AZaw_);
1910 TM__HZdw8BhppcTQo8DIK46LSg_0[7].name = "errStream";
1911 TM__HZdw8BhppcTQo8DIK46LSg_2_10[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[8];
1912 TM__HZdw8BhppcTQo8DIK46LSg_0[8].kind = 1;
1913 TM__HZdw8BhppcTQo8DIK46LSg_0[8].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitStatus);
1914 TM__HZdw8BhppcTQo8DIK46LSg_0[8].typ = (&NTIcint__nlCscttRCss70IBTyuBqnA_);
1915 TM__HZdw8BhppcTQo8DIK46LSg_0[8].name = "exitStatus";
1916 TM__HZdw8BhppcTQo8DIK46LSg_2_10[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[9];
1917 TM__HZdw8BhppcTQo8DIK46LSg_0[9].kind = 1;
1918 TM__HZdw8BhppcTQo8DIK46LSg_0[9].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, exitFlag);
1919 TM__HZdw8BhppcTQo8DIK46LSg_0[9].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
1920 TM__HZdw8BhppcTQo8DIK46LSg_0[9].name = "exitFlag";
1921 TM__HZdw8BhppcTQo8DIK46LSg_2_10[9] = &TM__HZdw8BhppcTQo8DIK46LSg_0[10];
1922 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.size = sizeof(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1923 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.align = NIM_ALIGNOF(tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1924 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.kind = 14;
1925 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.base = 0;
1926 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.flags = 3;
1927 for (TM__HZdw8BhppcTQo8DIK46LSg_5 = 0; TM__HZdw8BhppcTQo8DIK46LSg_5 < 7; TM__HZdw8BhppcTQo8DIK46LSg_5++) {
1928 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].kind = 1;
1929 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].offset = TM__HZdw8BhppcTQo8DIK46LSg_5;
1930 TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11].name = TM__HZdw8BhppcTQo8DIK46LSg_4[TM__HZdw8BhppcTQo8DIK46LSg_5];
1931 TM__HZdw8BhppcTQo8DIK46LSg_3_7[TM__HZdw8BhppcTQo8DIK46LSg_5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[TM__HZdw8BhppcTQo8DIK46LSg_5+11];
1932 }
1933 TM__HZdw8BhppcTQo8DIK46LSg_0[18].len = 7; TM__HZdw8BhppcTQo8DIK46LSg_0[18].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[18].sons = &TM__HZdw8BhppcTQo8DIK46LSg_3_7[0];
1934 NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[18];
1935 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.size = sizeof(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1936 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.align = NIM_ALIGNOF(tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA);
1937 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.kind = 19;
1938 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.base = (&NTIprocessoption__bnU6W8LhTMnT4JaSWtGlSA_);
1939 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.flags = 3;
1940 TM__HZdw8BhppcTQo8DIK46LSg_0[19].len = 0; TM__HZdw8BhppcTQo8DIK46LSg_0[19].kind = 0;
1941 NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[19];
1942 TM__HZdw8BhppcTQo8DIK46LSg_0[10].kind = 1;
1943 TM__HZdw8BhppcTQo8DIK46LSg_0[10].offset = offsetof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg, options);
1944 TM__HZdw8BhppcTQo8DIK46LSg_0[10].typ = (&NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_);
1945 TM__HZdw8BhppcTQo8DIK46LSg_0[10].name = "options";
1946 TM__HZdw8BhppcTQo8DIK46LSg_0[0].len = 10; TM__HZdw8BhppcTQo8DIK46LSg_0[0].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[0].sons = &TM__HZdw8BhppcTQo8DIK46LSg_2_10[0];
1947 NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[0];
1948 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
1949 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.align = NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*);
1950 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.kind = 22;
1951 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.base = (&NTIprocessobj__2rGNQnv9bU4hanI2g3svReg_);
1952 NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_.marker = Marker_tyRef__lw7iqc9cC7bi1oOZOAlJkJA;
1953 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.size = sizeof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA);
1954 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.align = NIM_ALIGNOF(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA);
1955 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.kind = 18;
1956 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.base = 0;
1957 TM__HZdw8BhppcTQo8DIK46LSg_12_9[0] = &TM__HZdw8BhppcTQo8DIK46LSg_0[21];
1958 TM__HZdw8BhppcTQo8DIK46LSg_0[21].kind = 1;
1959 TM__HZdw8BhppcTQo8DIK46LSg_0[21].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, sysCommand);
1960 TM__HZdw8BhppcTQo8DIK46LSg_0[21].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1961 TM__HZdw8BhppcTQo8DIK46LSg_0[21].name = "sysCommand";
1962 TM__HZdw8BhppcTQo8DIK46LSg_12_9[1] = &TM__HZdw8BhppcTQo8DIK46LSg_0[22];
1963 TM__HZdw8BhppcTQo8DIK46LSg_0[22].kind = 1;
1964 TM__HZdw8BhppcTQo8DIK46LSg_0[22].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, sysArgs);
1965 TM__HZdw8BhppcTQo8DIK46LSg_0[22].typ = (&NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_);
1966 TM__HZdw8BhppcTQo8DIK46LSg_0[22].name = "sysArgs";
1967 TM__HZdw8BhppcTQo8DIK46LSg_12_9[2] = &TM__HZdw8BhppcTQo8DIK46LSg_0[23];
1968 TM__HZdw8BhppcTQo8DIK46LSg_0[23].kind = 1;
1969 TM__HZdw8BhppcTQo8DIK46LSg_0[23].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, sysEnv);
1970 TM__HZdw8BhppcTQo8DIK46LSg_0[23].typ = (&NTIcstringarray__vCtGdhfQAmBlRFXaVFklkQ_);
1971 TM__HZdw8BhppcTQo8DIK46LSg_0[23].name = "sysEnv";
1972 TM__HZdw8BhppcTQo8DIK46LSg_12_9[3] = &TM__HZdw8BhppcTQo8DIK46LSg_0[24];
1973 TM__HZdw8BhppcTQo8DIK46LSg_0[24].kind = 1;
1974 TM__HZdw8BhppcTQo8DIK46LSg_0[24].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, workingDir);
1975 TM__HZdw8BhppcTQo8DIK46LSg_0[24].typ = (&NTIcstring__S9agCYBinaYZnGWcjTdxclg_);
1976 TM__HZdw8BhppcTQo8DIK46LSg_0[24].name = "workingDir";
1977 TM__HZdw8BhppcTQo8DIK46LSg_12_9[4] = &TM__HZdw8BhppcTQo8DIK46LSg_0[25];
1978 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.size = sizeof(tyArray__SKEqGXcReU4NvbQlH779b5Q);
1979 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.align = NIM_ALIGNOF(tyArray__SKEqGXcReU4NvbQlH779b5Q);
1980 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.kind = 16;
1981 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.base = (&NTIcint__nlCscttRCss70IBTyuBqnA_);
1982 NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_.flags = 1;
1983 TM__HZdw8BhppcTQo8DIK46LSg_0[25].kind = 1;
1984 TM__HZdw8BhppcTQo8DIK46LSg_0[25].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pStdin);
1985 TM__HZdw8BhppcTQo8DIK46LSg_0[25].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
1986 TM__HZdw8BhppcTQo8DIK46LSg_0[25].name = "pStdin";
1987 TM__HZdw8BhppcTQo8DIK46LSg_12_9[5] = &TM__HZdw8BhppcTQo8DIK46LSg_0[26];
1988 TM__HZdw8BhppcTQo8DIK46LSg_0[26].kind = 1;
1989 TM__HZdw8BhppcTQo8DIK46LSg_0[26].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pStdout);
1990 TM__HZdw8BhppcTQo8DIK46LSg_0[26].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
1991 TM__HZdw8BhppcTQo8DIK46LSg_0[26].name = "pStdout";
1992 TM__HZdw8BhppcTQo8DIK46LSg_12_9[6] = &TM__HZdw8BhppcTQo8DIK46LSg_0[27];
1993 TM__HZdw8BhppcTQo8DIK46LSg_0[27].kind = 1;
1994 TM__HZdw8BhppcTQo8DIK46LSg_0[27].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pStderr);
1995 TM__HZdw8BhppcTQo8DIK46LSg_0[27].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
1996 TM__HZdw8BhppcTQo8DIK46LSg_0[27].name = "pStderr";
1997 TM__HZdw8BhppcTQo8DIK46LSg_12_9[7] = &TM__HZdw8BhppcTQo8DIK46LSg_0[28];
1998 TM__HZdw8BhppcTQo8DIK46LSg_0[28].kind = 1;
1999 TM__HZdw8BhppcTQo8DIK46LSg_0[28].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, pErrorPipe);
2000 TM__HZdw8BhppcTQo8DIK46LSg_0[28].typ = (&NTIarrayL48OO49_cintT__SKEqGXcReU4NvbQlH779b5Q_);
2001 TM__HZdw8BhppcTQo8DIK46LSg_0[28].name = "pErrorPipe";
2002 TM__HZdw8BhppcTQo8DIK46LSg_12_9[8] = &TM__HZdw8BhppcTQo8DIK46LSg_0[29];
2003 TM__HZdw8BhppcTQo8DIK46LSg_0[29].kind = 1;
2004 TM__HZdw8BhppcTQo8DIK46LSg_0[29].offset = offsetof(tyObject_StartProcessData__xgRnKnLIYRtnOkshMKhc9cA, options);
2005 TM__HZdw8BhppcTQo8DIK46LSg_0[29].typ = (&NTIsetLprocessoptionT__HlmBYNr2gdAZMXOsuiSZ0A_);
2006 TM__HZdw8BhppcTQo8DIK46LSg_0[29].name = "options";
2007 TM__HZdw8BhppcTQo8DIK46LSg_0[20].len = 9; TM__HZdw8BhppcTQo8DIK46LSg_0[20].kind = 2; TM__HZdw8BhppcTQo8DIK46LSg_0[20].sons = &TM__HZdw8BhppcTQo8DIK46LSg_12_9[0];
2008 NTIstartprocessdata__xgRnKnLIYRtnOkshMKhc9cA_.node = &TM__HZdw8BhppcTQo8DIK46LSg_0[20];
2009 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.size = sizeof(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
2010 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.align = NIM_ALIGNOF(tySequence__PrBYolTs4TOSgE8v5oqDUQ*);
2011 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.kind = 24;
2012 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.base = (&NTIprocess__lw7iqc9cC7bi1oOZOAlJkJA_);
2013 NTIseqLprocessT__PrBYolTs4TOSgE8v5oqDUQ_.marker = Marker_tySequence__PrBYolTs4TOSgE8v5oqDUQ;
2014 }
2015 
2016