1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #include <stdio.h>
6 #include <setjmp.h>
7 #include <string.h>
8 #undef LANGUAGE_C
9 #undef MIPSEB
10 #undef MIPSEL
11 #undef PPC
12 #undef R3000
13 #undef R4000
14 #undef i386
15 #undef linux
16 #undef mips
17 #undef near
18 #undef far
19 #undef powerpc
20 #undef unix
21 #define nimfr_(x, y)
22 #define nimln_(x, y)
23 typedef struct TNimType TNimType;
24 typedef struct TNimNode TNimNode;
25 typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
26 typedef struct RootObj RootObj;
27 typedef struct NimStringDesc NimStringDesc;
28 typedef struct TGenericSeq TGenericSeq;
29 typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
30 typedef struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ;
31 typedef struct Exception Exception;
32 typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
33 typedef struct TSafePoint TSafePoint;
34 typedef struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw;
35 typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
36 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
37 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
38 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
39 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
40 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
41 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
42 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
43 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
44 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
45 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
46 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
47 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
48 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
49 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
50 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
51 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
52 typedef struct tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw;
53 typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
54 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
55 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
56 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
57 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
58 struct TNimType {
59 NI size;
60 NI align;
61 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
62 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
63 TNimType* base;
64 TNimNode* node;
65 void* finalizer;
66 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
67 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
68 };
69 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
70 struct TNimNode {
71 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
72 NI offset;
73 TNimType* typ;
74 NCSTRING name;
75 NI len;
76 TNimNode** sons;
77 };
78 struct RootObj {
79 TNimType* m_type;
80 };
81 typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
82 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
83 typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
84 typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
85 struct TGenericSeq {
86 NI len;
87 NI reserved;
88 };
89 struct NimStringDesc {
90   TGenericSeq Sup;
91 NIM_CHAR data[SEQ_DECL_SIZE];
92 };
93 typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
94 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
95 typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
96 typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
97 struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
98   RootObj Sup;
99 tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
100 tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
101 tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
102 tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
103 tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
104 tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
105 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
106 tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
107 tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
108 tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
109 };
110 struct tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ {
111   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
112 FILE* f;
113 };
114 typedef NU8 tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw;
115 struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
116 NI a;
117 NI b;
118 };
119 struct Exception {
120   RootObj Sup;
121 Exception* parent;
122 NCSTRING name;
123 NimStringDesc* message;
124 tySequence__uB9b75OUPRENsBAu4AnoePA* trace;
125 Exception* up;
126 };
127 struct TSafePoint {
128 TSafePoint* prev;
129 NI status;
130 jmp_buf context;
131 };
132 struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
133   Exception Sup;
134 };
135 struct tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw {
136   tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
137 };
138 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
139 NI refcount;
140 TNimType* typ;
141 };
142 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
143 void* bottom;
144 };
145 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
146 NI len;
147 NI cap;
148 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
149 };
150 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
151 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
152 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
153 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
154 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
155 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
156 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
157 };
158 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
159 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
160 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
161 NI key;
162 NI upperBound;
163 NI level;
164 };
165 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
166 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
167 NI Field1;
168 };
169 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
170 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
171 NI len;
172 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
173 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
174 };
175 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
176 NI minLargeObj;
177 NI maxLargeObj;
178 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
179 NU32 flBitmap;
180 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
181 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
182 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
183 NI currMem;
184 NI maxMem;
185 NI freeMem;
186 NI occ;
187 NI lastSize;
188 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
189 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
190 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
191 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
192 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
193 NIM_BOOL locked;
194 NIM_BOOL blockChunkSizeIncrease;
195 NI nextChunkSize;
196 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
197 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
198 };
199 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
200 NI stackScans;
201 NI cycleCollections;
202 NI maxThreshold;
203 NI maxStackSize;
204 NI maxStackCells;
205 NI cycleTableSize;
206 NI64 maxPause;
207 };
208 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
209 NI counter;
210 NI max;
211 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
212 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
213 };
214 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
215 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
216 NI cycleThreshold;
217 NI zctThreshold;
218 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
219 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
220 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
221 NI recGcLock;
222 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
223 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
224 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
225 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
226 NI gcThreadId;
227 };
228 struct tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw {
229   tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
230 NimStringDesc* data;
231 NI pos;
232 };
233 typedef NU8 tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg;
234 struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
235 NCSTRING procname;
236 NI line;
237 NCSTRING filename;
238 };
239 struct tySequence__uB9b75OUPRENsBAu4AnoePA {
240   TGenericSeq Sup;
241   tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
242 };
243 static N_NIMCALL(void, Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)(void* p, NI op);
244 N_LIB_PRIVATE N_NIMCALL(void, writeData__pureZstreams_168)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
245 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
246 static N_NIMCALL(void, Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)(void* p, NI op);
247 N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
248 N_LIB_PRIVATE N_NIMCALL(void, fsClose__pureZstreams_757)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
249 N_LIB_PRIVATE N_NIMCALL(void, close__systemZio_217)(FILE* f);
250 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd__pureZstreams_774)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
251 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endOfFile__systemZio_337)(FILE* f);
252 N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition__pureZstreams_777)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
253 N_LIB_PRIVATE N_NIMCALL(void, setFilePos__systemZio_436)(FILE* f, NI64 pos, tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw relativeTo);
254 N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition__pureZstreams_780)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
255 N_LIB_PRIVATE N_NIMCALL(NI64, getFilePos__systemZio_449)(FILE* f);
256 N_LIB_PRIVATE N_NIMCALL(NI, fsReadDataStr__pureZstreams_788)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
257 N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__systemZio_144)(FILE* f, void* buffer, NI len);
258 N_LIB_PRIVATE N_NIMCALL(NI, fsReadData__pureZstreams_783)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
259 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsReadLine__pureZstreams_804)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line);
260 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__systemZio_238)(FILE* f, NimStringDesc** line);
261 N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData__pureZstreams_794)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
262 static N_INLINE(void, pushSafePoint)(TSafePoint* s);
263 static N_INLINE(void, popSafePoint)(void);
264 N_LIB_PRIVATE N_NIMCALL(void, nimLeaveFinally)(void);
265 N_LIB_PRIVATE N_NIMCALL(void, reraiseException)(void);
266 N_LIB_PRIVATE N_NIMCALL(void, fsWriteData__pureZstreams_800)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
267 N_LIB_PRIVATE N_NIMCALL(NI, writeBuffer__systemZio_176)(FILE* f, void* buffer, NI len);
268 N_LIB_PRIVATE N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*, newEIO__pureZstreams_2)(NimStringDesc* msg);
269 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
270 static N_INLINE(void, nimGCunrefNoCycle)(void* p);
271 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
272 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
273 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
274 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
275 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
276 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
277 N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
278 N_LIB_PRIVATE N_NIMCALL(void, fsFlush__pureZstreams_772)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
279 N_LIB_PRIVATE N_NIMCALL(void, flushFile__systemZio_226)(FILE* f);
280 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
281 N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar__pureZstreams_202)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
282 N_LIB_PRIVATE N_NIMCALL(NI, readData__pureZstreams_75)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
283 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
284 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
285 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
286 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
287 static N_NIMCALL(void, Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)(void* p, NI op);
288 N_LIB_PRIVATE N_NIMCALL(void, ssClose__pureZstreams_673)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
289 static N_INLINE(void, asgnRef)(void** dest, void* src);
290 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
291 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
292 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd__pureZstreams_558)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
293 N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition__pureZstreams_580)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
294 N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b);
295 N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition__pureZstreams_590)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
296 N_LIB_PRIVATE N_NIMCALL(NI, ssReadDataStr__pureZstreams_594)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
297 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
298 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
299 N_LIB_PRIVATE N_NIMCALL(NI, ssReadData__pureZstreams_648)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
300 N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData__pureZstreams_658)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
301 N_LIB_PRIVATE N_NIMCALL(void, ssWriteData__pureZstreams_664)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
302 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__systemZio_389)(FILE** f, NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize);
303 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f);
304 extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
305 N_LIB_PRIVATE TNimType NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_;
306 N_LIB_PRIVATE TNimType NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_;
307 N_LIB_PRIVATE TNimType NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_;
308 N_LIB_PRIVATE TNimType NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_;
309 N_LIB_PRIVATE TNimType NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_;
310 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_;
311 N_LIB_PRIVATE TNimType NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_;
312 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_;
313 N_LIB_PRIVATE TNimType NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_;
314 N_LIB_PRIVATE TNimType NTIstream__1G0jiQbe7KwD5ADza5AZaw_;
315 N_LIB_PRIVATE TNimType NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_;
316 extern TNimType NTIfile__XBeRj4rw9bUuE7CB3DS1rgg_;
317 N_LIB_PRIVATE TNimType NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_;
318 extern TNimType NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_;
319 extern TNimType NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_;
320 STRING_LITERAL(TM__Ue7tnBcsL67VCiRfvt8q0A_4, "cannot write to stream", 22);
321 STRING_LITERAL(TM__Ue7tnBcsL67VCiRfvt8q0A_5, "cannot read from stream", 23);
322 N_LIB_PRIVATE TNimType NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_;
323 extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
324 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
325 N_LIB_PRIVATE TNimType NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_;
326 extern TSafePoint* excHandler__system_2565;
327 extern TSafePoint* excHandler__system_2565;
328 extern TSafePoint* excHandler__system_2565;
329 extern TSafePoint* excHandler__system_2565;
330 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_NIMCALL(void,Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)331 static N_NIMCALL(void, Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw)(void* p, NI op) {
332 	tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* a;
333 	a = (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*)p;
334 }
N_NIMCALL(void,writeData__pureZstreams_168)335 N_LIB_PRIVATE N_NIMCALL(void, writeData__pureZstreams_168)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
336 	(*s).writeDataImpl(s, buffer, bufLen);
337 }
N_INLINE(NCSTRING,nimToCStringConv)338 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
339 	NCSTRING result;
340 	result = (NCSTRING)0;
341 	{
342 		NIM_BOOL T3_;
343 		T3_ = (NIM_BOOL)0;
344 		T3_ = (s == ((NimStringDesc*) NIM_NIL));
345 		if (T3_) goto LA4_;
346 		T3_ = ((*s).Sup.len == ((NI) 0));
347 		LA4_: ;
348 		if (!T3_) goto LA5_;
349 		result = "";
350 	}
351 	goto LA1_;
352 	LA5_: ;
353 	{
354 		result = ((NCSTRING) ((*s).data));
355 	}
356 	LA1_: ;
357 	return result;
358 }
N_NIMCALL(void,write__pureZstreams_177)359 N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_177)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc* x) {
360 	{
361 		if (!(((NI) 0) < (x ? x->Sup.len : 0))) goto LA3_;
362 		writeData__pureZstreams_168(s, ((void*) (nimToCStringConv(x))), (x ? x->Sup.len : 0));
363 	}
364 	LA3_: ;
365 }
N_NIMCALL(void,Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)366 static N_NIMCALL(void, Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg)(void* p, NI op) {
367 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* a;
368 	a = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*)p;
369 }
N_NIMCALL(void,fsClose__pureZstreams_757)370 N_LIB_PRIVATE N_NIMCALL(void, fsClose__pureZstreams_757)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
371 	{
372 		if (!!(((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f == ((FILE*) NIM_NIL)))) goto LA3_;
373 		close__systemZio_217((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
374 		(*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f = ((FILE*) NIM_NIL);
375 	}
376 	LA3_: ;
377 }
N_NIMCALL(NIM_BOOL,fsAtEnd__pureZstreams_774)378 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd__pureZstreams_774)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
379 	NIM_BOOL result;
380 {	result = (NIM_BOOL)0;
381 	result = endOfFile__systemZio_337((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
382 	goto BeforeRet_;
383 	}BeforeRet_: ;
384 	return result;
385 }
N_NIMCALL(void,fsSetPosition__pureZstreams_777)386 N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition__pureZstreams_777)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos) {
387 	setFilePos__systemZio_436((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, ((NI64) (pos)), ((tyEnum_FileSeekPos__I9aQjuvWxs8BspGbxwsngWw) 0));
388 }
N_NIMCALL(NI,fsGetPosition__pureZstreams_780)389 N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition__pureZstreams_780)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
390 	NI result;
391 	NI64 T1_;
392 {	result = (NI)0;
393 	T1_ = (NI64)0;
394 	T1_ = getFilePos__systemZio_449((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
395 	result = ((NI) (T1_));
396 	goto BeforeRet_;
397 	}BeforeRet_: ;
398 	return result;
399 }
N_NIMCALL(NI,fsReadDataStr__pureZstreams_788)400 N_LIB_PRIVATE N_NIMCALL(NI, fsReadDataStr__pureZstreams_788)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
401 	NI result;
402 	result = (NI)0;
403 	result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, ((void*) ((&(*buffer)->data[slice.a]))), ((NI) ((NI)((NI)(slice.b + ((NI) 1)) - slice.a))));
404 	return result;
405 }
N_NIMCALL(NI,fsReadData__pureZstreams_783)406 N_LIB_PRIVATE N_NIMCALL(NI, fsReadData__pureZstreams_783)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
407 	NI result;
408 	result = (NI)0;
409 	result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
410 	return result;
411 }
N_NIMCALL(NIM_BOOL,fsReadLine__pureZstreams_804)412 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsReadLine__pureZstreams_804)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line) {
413 	NIM_BOOL result;
414 	result = (NIM_BOOL)0;
415 	result = readLine__systemZio_238((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, line);
416 	return result;
417 }
N_INLINE(void,pushSafePoint)418 static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
419 	(*s).prev = excHandler__system_2565;
420 	excHandler__system_2565 = s;
421 }
N_INLINE(void,popSafePoint)422 static N_INLINE(void, popSafePoint)(void) {
423 	excHandler__system_2565 = (*excHandler__system_2565).prev;
424 }
N_NIMCALL(NI,fsPeekData__pureZstreams_794)425 N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData__pureZstreams_794)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
426 	NI result;
427 	NI pos;
428 	TSafePoint TM__Ue7tnBcsL67VCiRfvt8q0A_3;
429 	result = (NI)0;
430 	pos = fsGetPosition__pureZstreams_780(s);
431 	pushSafePoint(&TM__Ue7tnBcsL67VCiRfvt8q0A_3);
432 	TM__Ue7tnBcsL67VCiRfvt8q0A_3.status = _setjmp(TM__Ue7tnBcsL67VCiRfvt8q0A_3.context);
433 	if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status == 0) {
434 	result = readBuffer__systemZio_144((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
435 	popSafePoint();
436 	}
437 	else {
438 		popSafePoint();
439 	}
440 	{
441 		fsSetPosition__pureZstreams_777(s, pos);
442 		if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status != 0) nimLeaveFinally();
443 	}
444 	if (TM__Ue7tnBcsL67VCiRfvt8q0A_3.status != 0) reraiseException();
445 	return result;
446 }
N_INLINE(NI,minuspercent___system_716)447 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
448 	NI result;
449 	result = (NI)0;
450 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
451 	return result;
452 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)453 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
454 	NIM_BOOL result;
455 	result = (NIM_BOOL)0;
456 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
457 	return result;
458 }
N_INLINE(void,rtlAddZCT__system_5313)459 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
460 	addZCT__system_5264((&gch__system_5217.zct), c);
461 }
N_INLINE(void,decRef__system_5315)462 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
463 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
464 	{
465 		NIM_BOOL T3_;
466 		T3_ = (NIM_BOOL)0;
467 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
468 		if (!T3_) goto LA4_;
469 		rtlAddZCT__system_5313(c);
470 	}
471 	LA4_: ;
472 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)473 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
474 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
475 	NI T1_;
476 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
477 	T1_ = (NI)0;
478 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
479 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
480 	return result;
481 }
N_INLINE(void,nimGCunrefNoCycle)482 static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
483 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
484 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
485 	T1_ = usrToCell__system_5270(p);
486 	decRef__system_5315(T1_);
487 }
N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw *,newEIO__pureZstreams_2)488 N_LIB_PRIVATE N_NIMCALL(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*, newEIO__pureZstreams_2)(NimStringDesc* msg) {
489 	tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* result;
490 	NimStringDesc* T1_;
491 	result = NIM_NIL;
492 	result = (tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw*) newObj((&NTIrefioerror__HMIVdYjdZYWskTmTQVo5BQ_), sizeof(tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw));
493 	(*result).Sup.Sup.Sup.m_type = (&NTIioerror__iLZrPn9anoh9ad1MmO0RczFw_);
494 	(*result).Sup.Sup.name = "IOError";
495 	T1_ = NIM_NIL;
496 	T1_ = (*result).Sup.Sup.message; (*result).Sup.Sup.message = copyStringRC1(msg);
497 	if (T1_) nimGCunrefNoCycle(T1_);
498 	return result;
499 }
N_NIMCALL(void,fsWriteData__pureZstreams_800)500 N_LIB_PRIVATE N_NIMCALL(void, fsWriteData__pureZstreams_800)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
501 	{
502 		NI T3_;
503 		tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* T6_;
504 		T3_ = (NI)0;
505 		T3_ = writeBuffer__systemZio_176((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f, buffer, ((NI) (bufLen)));
506 		if (!!((T3_ == bufLen))) goto LA4_;
507 		T6_ = NIM_NIL;
508 		T6_ = newEIO__pureZstreams_2(((NimStringDesc*) &TM__Ue7tnBcsL67VCiRfvt8q0A_4));
509 		raiseExceptionEx((Exception*)T6_, "IOError", "fsWriteData", "streams.nim", 1320);
510 	}
511 	LA4_: ;
512 }
N_NIMCALL(void,fsFlush__pureZstreams_772)513 N_LIB_PRIVATE N_NIMCALL(void, fsFlush__pureZstreams_772)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
514 	flushFile__systemZio_226((*((tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) (s))).f);
515 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,newFileStream__pureZstreams_808)516 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_808)(FILE* f) {
517 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
518 	result = NIM_NIL;
519 	result = (tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*) newObj((&NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_), sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ));
520 	(*result).Sup.Sup.m_type = (&NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_);
521 	(*result).f = f;
522 	(*result).Sup.closeImpl = fsClose__pureZstreams_757;
523 	(*result).Sup.atEndImpl = fsAtEnd__pureZstreams_774;
524 	(*result).Sup.setPositionImpl = fsSetPosition__pureZstreams_777;
525 	(*result).Sup.getPositionImpl = fsGetPosition__pureZstreams_780;
526 	(*result).Sup.readDataStrImpl = fsReadDataStr__pureZstreams_788;
527 	(*result).Sup.readDataImpl = fsReadData__pureZstreams_783;
528 	(*result).Sup.readLineImpl = fsReadLine__pureZstreams_804;
529 	(*result).Sup.peekDataImpl = fsPeekData__pureZstreams_794;
530 	(*result).Sup.writeDataImpl = fsWriteData__pureZstreams_800;
531 	(*result).Sup.flushImpl = fsFlush__pureZstreams_772;
532 	return result;
533 }
N_NIMCALL(void,close__pureZstreams_57)534 N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_57)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
535 	{
536 		if (!!(((*s).closeImpl == 0))) goto LA3_;
537 		(*s).closeImpl(s);
538 	}
539 	LA3_: ;
540 }
N_NIMCALL(NIM_BOOL,atEnd__pureZstreams_63)541 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd__pureZstreams_63)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
542 	NIM_BOOL result;
543 	result = (NIM_BOOL)0;
544 	result = (*s).atEndImpl(s);
545 	return result;
546 }
N_NIMCALL(NI,readData__pureZstreams_75)547 N_LIB_PRIVATE N_NIMCALL(NI, readData__pureZstreams_75)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
548 	NI result;
549 	result = (NI)0;
550 	result = (*s).readDataImpl(s, buffer, bufLen);
551 	return result;
552 }
N_NIMCALL(NIM_CHAR,readChar__pureZstreams_202)553 N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar__pureZstreams_202)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
554 	NIM_CHAR result;
555 	result = (NIM_CHAR)0;
556 	{
557 		{
558 			NI T4_;
559 			T4_ = (NI)0;
560 			T4_ = readData__pureZstreams_75(s, ((void*) ((&result))), ((NI) 1));
561 			if (!!((T4_ == ((NI) 1)))) goto LA5_;
562 			result = 0;
563 		}
564 		LA5_: ;
565 	}
566 	return result;
567 }
N_NIMCALL(NimStringDesc *,readLine__pureZstreams_539)568 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine__pureZstreams_539)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
569 	NimStringDesc* result;
570 	result = NIM_NIL;
571 	result = ((NimStringDesc*) NIM_NIL);
572 	{
573 		NIM_BOOL T3_;
574 		tyObject_IOError__iLZrPn9anoh9ad1MmO0RczFw* T6_;
575 		T3_ = (NIM_BOOL)0;
576 		T3_ = atEnd__pureZstreams_63(s);
577 		if (!T3_) goto LA4_;
578 		T6_ = NIM_NIL;
579 		T6_ = newEIO__pureZstreams_2(((NimStringDesc*) &TM__Ue7tnBcsL67VCiRfvt8q0A_5));
580 		raiseExceptionEx((Exception*)T6_, "IOError", "readLine", "streams.nim", 1068);
581 	}
582 	LA4_: ;
583 	{
584 		while (1) {
585 			NIM_CHAR c;
586 			c = readChar__pureZstreams_202(s);
587 			{
588 				if (!((NU8)(c) == (NU8)(13))) goto LA11_;
589 				c = readChar__pureZstreams_202(s);
590 				goto LA7;
591 			}
592 			LA11_: ;
593 			{
594 				NIM_BOOL T15_;
595 				T15_ = (NIM_BOOL)0;
596 				T15_ = ((NU8)(c) == (NU8)(10));
597 				if (T15_) goto LA16_;
598 				T15_ = ((NU8)(c) == (NU8)(0));
599 				LA16_: ;
600 				if (!T15_) goto LA17_;
601 				goto LA7;
602 			}
603 			goto LA13_;
604 			LA17_: ;
605 			{
606 				result = addChar(result, c);
607 			}
608 			LA13_: ;
609 		}
610 	} LA7: ;
611 	return result;
612 }
N_NIMCALL(NIM_BOOL,readLine__pureZstreams_524)613 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_524)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** line) {
614 	NIM_BOOL result;
615 {	result = (NIM_BOOL)0;
616 	{
617 		if (!!(((*s).readLineImpl == NIM_NIL))) goto LA3_;
618 		result = (*s).readLineImpl(s, line);
619 	}
620 	goto LA1_;
621 	LA3_: ;
622 	{
623 		unsureAsgnRef((void**) (&(*line)), setLengthStr((*line), ((NI) 0)));
624 		{
625 			while (1) {
626 				NIM_CHAR c;
627 				c = readChar__pureZstreams_202(s);
628 				{
629 					if (!((NU8)(c) == (NU8)(13))) goto LA10_;
630 					c = readChar__pureZstreams_202(s);
631 					goto LA6;
632 				}
633 				goto LA8_;
634 				LA10_: ;
635 				{
636 					if (!((NU8)(c) == (NU8)(10))) goto LA13_;
637 					goto LA6;
638 				}
639 				goto LA8_;
640 				LA13_: ;
641 				{
642 					if (!((NU8)(c) == (NU8)(0))) goto LA16_;
643 					{
644 						if (!(((NI) 0) < ((*line) ? (*line)->Sup.len : 0))) goto LA20_;
645 						goto LA6;
646 					}
647 					goto LA18_;
648 					LA20_: ;
649 					{
650 						result = NIM_FALSE;
651 						goto BeforeRet_;
652 					}
653 					LA18_: ;
654 				}
655 				goto LA8_;
656 				LA16_: ;
657 				LA8_: ;
658 				unsureAsgnRef((void**) (&(*line)), addChar((*line), c));
659 			}
660 		} LA6: ;
661 		result = NIM_TRUE;
662 	}
663 	LA1_: ;
664 	}BeforeRet_: ;
665 	return result;
666 }
N_NIMCALL(NI,readDataStr__pureZstreams_81)667 N_LIB_PRIVATE N_NIMCALL(NI, readDataStr__pureZstreams_81)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
668 	NI result;
669 	result = (NI)0;
670 	{
671 		if (!!(((*s).readDataStrImpl == NIM_NIL))) goto LA3_;
672 		result = (*s).readDataStrImpl(s, buffer, slice);
673 	}
674 	goto LA1_;
675 	LA3_: ;
676 	{
677 		result = readData__pureZstreams_75(s, ((void*) ((&(*buffer)->data[slice.a]))), (NI)((NI)(slice.b + ((NI) 1)) - slice.a));
678 	}
679 	LA1_: ;
680 	return result;
681 }
N_NIMCALL(void,Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)682 static N_NIMCALL(void, Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA)(void* p, NI op) {
683 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* a;
684 	a = (tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*)p;
685 	nimGCvisit((void*)(*a).data, op);
686 }
N_INLINE(NI,pluspercent___system_696)687 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
688 	NI result;
689 	result = (NI)0;
690 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
691 	return result;
692 }
N_INLINE(void,incRef__system_5308)693 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
694 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
695 }
N_INLINE(void,asgnRef)696 static N_INLINE(void, asgnRef)(void** dest, void* src) {
697 	{
698 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
699 		if (!!((src == NIM_NIL))) goto LA3_;
700 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
701 		T5_ = usrToCell__system_5270(src);
702 		incRef__system_5308(T5_);
703 	}
704 	LA3_: ;
705 	{
706 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
707 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
708 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
709 		T10_ = usrToCell__system_5270((*dest));
710 		decRef__system_5315(T10_);
711 	}
712 	LA8_: ;
713 	(*dest) = src;
714 }
N_NIMCALL(void,ssClose__pureZstreams_673)715 N_LIB_PRIVATE N_NIMCALL(void, ssClose__pureZstreams_673)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
716 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
717 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
718 	asgnRef((void**) (&(*s_2).data), ((NimStringDesc*) NIM_NIL));
719 }
N_NIMCALL(NIM_BOOL,ssAtEnd__pureZstreams_558)720 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd__pureZstreams_558)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
721 	NIM_BOOL result;
722 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
723 {	result = (NIM_BOOL)0;
724 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
725 	result = (((*s_2).data ? (*s_2).data->Sup.len : 0) <= (*s_2).pos);
726 	goto BeforeRet_;
727 	}BeforeRet_: ;
728 	return result;
729 }
N_NIMCALL(NI,clamp__pureZstreams_584)730 N_LIB_PRIVATE N_NIMCALL(NI, clamp__pureZstreams_584)(NI x, NI a, NI b) {
731 	NI result;
732 {	result = (NI)0;
733 	{
734 		if (!(x < a)) goto LA3_;
735 		result = a;
736 		goto BeforeRet_;
737 	}
738 	LA3_: ;
739 	{
740 		if (!(b < x)) goto LA7_;
741 		result = b;
742 		goto BeforeRet_;
743 	}
744 	LA7_: ;
745 	result = x;
746 	goto BeforeRet_;
747 	}BeforeRet_: ;
748 	return result;
749 }
N_NIMCALL(void,ssSetPosition__pureZstreams_580)750 N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition__pureZstreams_580)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos) {
751 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
752 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
753 	(*s_2).pos = clamp__pureZstreams_584(pos, ((NI) 0), ((*s_2).data ? (*s_2).data->Sup.len : 0));
754 }
N_NIMCALL(NI,ssGetPosition__pureZstreams_590)755 N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition__pureZstreams_590)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
756 	NI result;
757 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
758 {	result = (NI)0;
759 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
760 	result = (*s_2).pos;
761 	goto BeforeRet_;
762 	}BeforeRet_: ;
763 	return result;
764 }
N_INLINE(void,nimCopyMem)765 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
766 	void* T1_;
767 	T1_ = (void*)0;
768 	T1_ = memcpy(dest, source, ((size_t) (size)));
769 }
N_INLINE(void,copyMem__system_1727)770 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
771 	nimCopyMem(dest, source, size);
772 }
N_NIMCALL(NI,ssReadDataStr__pureZstreams_594)773 N_LIB_PRIVATE N_NIMCALL(NI, ssReadDataStr__pureZstreams_594)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringDesc** buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice) {
774 	NI result;
775 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
776 	result = (NI)0;
777 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
778 	result = (((NI)((NI)(slice.b + ((NI) 1)) - slice.a) <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? (NI)((NI)(slice.b + ((NI) 1)) - slice.a) : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
779 	{
780 		if (!(((NI) 0) < result)) goto LA3_;
781 		{
782 			copyMem__system_1727(((void*) ((&(*buffer)->data[slice.a]))), ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
783 		}
784 		(*s_2).pos += result;
785 	}
786 	goto LA1_;
787 	LA3_: ;
788 	{
789 		result = ((NI) 0);
790 	}
791 	LA1_: ;
792 	return result;
793 }
N_NIMCALL(NI,ssReadData__pureZstreams_648)794 N_LIB_PRIVATE N_NIMCALL(NI, ssReadData__pureZstreams_648)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
795 	NI result;
796 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
797 	result = (NI)0;
798 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
799 	result = ((bufLen <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? bufLen : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
800 	{
801 		if (!(((NI) 0) < result)) goto LA3_;
802 		copyMem__system_1727(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
803 		(*s_2).pos += result;
804 	}
805 	goto LA1_;
806 	LA3_: ;
807 	{
808 		result = ((NI) 0);
809 	}
810 	LA1_: ;
811 	return result;
812 }
N_NIMCALL(NI,ssPeekData__pureZstreams_658)813 N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData__pureZstreams_658)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
814 	NI result;
815 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
816 	result = (NI)0;
817 	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
818 	result = ((bufLen <= (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos)) ? bufLen : (NI)(((*s_2).data ? (*s_2).data->Sup.len : 0) - (*s_2).pos));
819 	{
820 		if (!(((NI) 0) < result)) goto LA3_;
821 		copyMem__system_1727(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI) (result)));
822 	}
823 	goto LA1_;
824 	LA3_: ;
825 	{
826 		result = ((NI) 0);
827 	}
828 	LA1_: ;
829 	return result;
830 }
N_NIMCALL(void,ssWriteData__pureZstreams_664)831 N_LIB_PRIVATE N_NIMCALL(void, ssWriteData__pureZstreams_664)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
832 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* s_2;
833 {	s_2 = ((tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) (s));
834 	{
835 		if (!(bufLen <= ((NI) 0))) goto LA3_;
836 		goto BeforeRet_;
837 	}
838 	LA3_: ;
839 	{
840 		if (!(((*s_2).data ? (*s_2).data->Sup.len : 0) < (NI)((*s_2).pos + bufLen))) goto LA7_;
841 		asgnRef((void**) (&(*s_2).data), setLengthStr((*s_2).data, ((NI) ((NI)((*s_2).pos + bufLen)))));
842 	}
843 	LA7_: ;
844 	copyMem__system_1727(((void*) ((&(*s_2).data->data[(*s_2).pos]))), buffer, ((NI) (bufLen)));
845 	(*s_2).pos += bufLen;
846 	}BeforeRet_: ;
847 }
N_NIMCALL(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw *,newStringStream__pureZstreams_676)848 N_LIB_PRIVATE N_NIMCALL(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*, newStringStream__pureZstreams_676)(NimStringDesc* s) {
849 	tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw* result;
850 	NimStringDesc* T1_;
851 	result = NIM_NIL;
852 	result = (tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*) newObj((&NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_), sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw));
853 	(*result).Sup.Sup.m_type = (&NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_);
854 	T1_ = NIM_NIL;
855 	T1_ = (*result).data; (*result).data = copyStringRC1(s);
856 	if (T1_) nimGCunrefNoCycle(T1_);
857 	(*result).pos = ((NI) 0);
858 	(*result).Sup.closeImpl = ssClose__pureZstreams_673;
859 	(*result).Sup.atEndImpl = ssAtEnd__pureZstreams_558;
860 	(*result).Sup.setPositionImpl = ssSetPosition__pureZstreams_580;
861 	(*result).Sup.getPositionImpl = ssGetPosition__pureZstreams_590;
862 	(*result).Sup.readDataStrImpl = ssReadDataStr__pureZstreams_594;
863 	(*result).Sup.readDataImpl = ssReadData__pureZstreams_648;
864 	(*result).Sup.peekDataImpl = ssPeekData__pureZstreams_658;
865 	(*result).Sup.writeDataImpl = ssWriteData__pureZstreams_664;
866 	return result;
867 }
N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ *,newFileStream__pureZstreams_832)868 N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*, newFileStream__pureZstreams_832)(NimStringDesc* filename, tyEnum_FileMode__ZJfK20XeZ9bv2j1pZjw9aswg mode, NI bufSize) {
869 	tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ* result;
870 	FILE* f;
871 	result = NIM_NIL;
872 	f = (FILE*)0;
873 	{
874 		NIM_BOOL T3_;
875 		T3_ = (NIM_BOOL)0;
876 		T3_ = open__systemZio_389(&f, filename, mode, bufSize);
877 		if (!T3_) goto LA4_;
878 		result = newFileStream__pureZstreams_808(f);
879 	}
880 	LA4_: ;
881 	return result;
882 }
N_NIMCALL(void,stdlib_streamsDatInit000)883 N_LIB_PRIVATE N_NIMCALL(void, stdlib_streamsDatInit000)(void) {
884 static TNimNode* TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[10];
885 static TNimNode* TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[2];
886 static TNimNode TM__Ue7tnBcsL67VCiRfvt8q0A_0[15];
887 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.size = sizeof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ);
888 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.align = NIM_ALIGNOF(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ);
889 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.kind = 17;
890 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
891 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.flags = 1;
892 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[0] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[1];
893 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.size = sizeof(tyProc__JQrsH08b4uPTH9cyFPlVOZg);
894 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.align = NIM_ALIGNOF(tyProc__JQrsH08b4uPTH9cyFPlVOZg);
895 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.kind = 25;
896 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.base = 0;
897 NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_.flags = 3;
898 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].kind = 1;
899 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, closeImpl);
900 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].typ = (&NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_);
901 TM__Ue7tnBcsL67VCiRfvt8q0A_0[1].name = "closeImpl";
902 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[1] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[2];
903 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.size = sizeof(tyProc__9bmhFrLahRsL2hltfRDVtlQ);
904 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.align = NIM_ALIGNOF(tyProc__9bmhFrLahRsL2hltfRDVtlQ);
905 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.kind = 25;
906 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.base = 0;
907 NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_.flags = 3;
908 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].kind = 1;
909 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, atEndImpl);
910 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].typ = (&NTIprocLs58streamT58boolLOnimcall_gcsafeOT__9bmhFrLahRsL2hltfRDVtlQ_);
911 TM__Ue7tnBcsL67VCiRfvt8q0A_0[2].name = "atEndImpl";
912 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[2] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[3];
913 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.size = sizeof(tyProc__3svSoGIUJIsHkaBL7q4DAQ);
914 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.align = NIM_ALIGNOF(tyProc__3svSoGIUJIsHkaBL7q4DAQ);
915 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.kind = 25;
916 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.base = 0;
917 NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_.flags = 3;
918 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].kind = 1;
919 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, setPositionImpl);
920 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].typ = (&NTIprocLs58stream_pos58intTLOnimcall_gcsafeOT__3svSoGIUJIsHkaBL7q4DAQ_);
921 TM__Ue7tnBcsL67VCiRfvt8q0A_0[3].name = "setPositionImpl";
922 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[3] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[4];
923 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.size = sizeof(tyProc__xflqkf2D1uVClg70czEDHA);
924 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.align = NIM_ALIGNOF(tyProc__xflqkf2D1uVClg70czEDHA);
925 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.kind = 25;
926 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.base = 0;
927 NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_.flags = 3;
928 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].kind = 1;
929 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, getPositionImpl);
930 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].typ = (&NTIprocLs58streamT58intLOnimcall_gcsafeOT__xflqkf2D1uVClg70czEDHA_);
931 TM__Ue7tnBcsL67VCiRfvt8q0A_0[4].name = "getPositionImpl";
932 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[4] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[5];
933 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.size = sizeof(tyProc__c9c0f59ak4YGQ6neEym8LPKw);
934 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.align = NIM_ALIGNOF(tyProc__c9c0f59ak4YGQ6neEym8LPKw);
935 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.kind = 25;
936 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.base = 0;
937 NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_.flags = 3;
938 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].kind = 1;
939 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readDataStrImpl);
940 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].typ = (&NTIprocLs58stream_buffer58varstring_slice58sliceLsystemOintTT58intLOnimcall_gcsafeOT__c9c0f59ak4YGQ6neEym8LPKw_);
941 TM__Ue7tnBcsL67VCiRfvt8q0A_0[5].name = "readDataStrImpl";
942 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[5] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[6];
943 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.size = sizeof(tyProc__7jFfqMk9ajToCz6Hv9atCA4A);
944 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.align = NIM_ALIGNOF(tyProc__7jFfqMk9ajToCz6Hv9atCA4A);
945 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.kind = 25;
946 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.base = 0;
947 NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_.flags = 3;
948 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].kind = 1;
949 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readLineImpl);
950 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].typ = (&NTIprocLs58stream_line58varstringT58boolLOnimcall_gcsafeOT__7jFfqMk9ajToCz6Hv9atCA4A_);
951 TM__Ue7tnBcsL67VCiRfvt8q0A_0[6].name = "readLineImpl";
952 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[6] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[7];
953 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.size = sizeof(tyProc__2VVzVL9bOnKhj1eZKkf9cEuA);
954 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.align = NIM_ALIGNOF(tyProc__2VVzVL9bOnKhj1eZKkf9cEuA);
955 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.kind = 25;
956 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.base = 0;
957 NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_.flags = 3;
958 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].kind = 1;
959 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, readDataImpl);
960 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_);
961 TM__Ue7tnBcsL67VCiRfvt8q0A_0[7].name = "readDataImpl";
962 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[7] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[8];
963 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].kind = 1;
964 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, peekDataImpl);
965 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intT58intLOnimcall_gcsafeOT__2VVzVL9bOnKhj1eZKkf9cEuA_);
966 TM__Ue7tnBcsL67VCiRfvt8q0A_0[8].name = "peekDataImpl";
967 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[8] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[9];
968 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.size = sizeof(tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ);
969 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.align = NIM_ALIGNOF(tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ);
970 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.kind = 25;
971 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.base = 0;
972 NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_.flags = 3;
973 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].kind = 1;
974 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, writeDataImpl);
975 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].typ = (&NTIprocLs58stream_buffer58pointer_buflen58intTLOnimcall_gcsafeOT__ki6p1QyfOkJLQJ9aw5NI0AQ_);
976 TM__Ue7tnBcsL67VCiRfvt8q0A_0[9].name = "writeDataImpl";
977 TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[9] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[10];
978 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].kind = 1;
979 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].offset = offsetof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ, flushImpl);
980 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].typ = (&NTIprocLs58streamTLOnimcall_gcsafeOT__JQrsH08b4uPTH9cyFPlVOZg_);
981 TM__Ue7tnBcsL67VCiRfvt8q0A_0[10].name = "flushImpl";
982 TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].len = 10; TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].kind = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[0].sons = &TM__Ue7tnBcsL67VCiRfvt8q0A_2_10[0];
983 NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[0];
984 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.size = sizeof(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*);
985 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.align = NIM_ALIGNOF(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*);
986 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.kind = 22;
987 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
988 NTIstream__1G0jiQbe7KwD5ADza5AZaw_.marker = Marker_tyRef__1G0jiQbe7KwD5ADza5AZaw;
989 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.size = sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ);
990 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.align = NIM_ALIGNOF(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ);
991 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.kind = 17;
992 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
993 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.flags = 1;
994 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].kind = 1;
995 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].offset = offsetof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ, f);
996 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].typ = (&NTIfile__XBeRj4rw9bUuE7CB3DS1rgg_);
997 TM__Ue7tnBcsL67VCiRfvt8q0A_0[11].name = "f";
998 NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[11];
999 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.size = sizeof(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*);
1000 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.align = NIM_ALIGNOF(tyObject_FileStreamObj__9bEVSsOIpkY9cf5lCtaS39bPQ*);
1001 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.kind = 22;
1002 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.base = (&NTIfilestreamobj__9bEVSsOIpkY9cf5lCtaS39bPQ_);
1003 NTIfilestream__y4kGpp4Cn6oTOCWBJMIxAg_.marker = Marker_tyRef__y4kGpp4Cn6oTOCWBJMIxAg;
1004 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.size = sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw);
1005 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.align = NIM_ALIGNOF(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw);
1006 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.kind = 17;
1007 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.base = (&NTIstreamobj__THYguAi9bSgidczZ3ywEIMQ_);
1008 TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[0] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[13];
1009 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].kind = 1;
1010 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].offset = offsetof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw, data);
1011 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
1012 TM__Ue7tnBcsL67VCiRfvt8q0A_0[13].name = "data";
1013 TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[1] = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[14];
1014 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].kind = 1;
1015 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].offset = offsetof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw, pos);
1016 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
1017 TM__Ue7tnBcsL67VCiRfvt8q0A_0[14].name = "pos";
1018 TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].len = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].kind = 2; TM__Ue7tnBcsL67VCiRfvt8q0A_0[12].sons = &TM__Ue7tnBcsL67VCiRfvt8q0A_6_2[0];
1019 NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_.node = &TM__Ue7tnBcsL67VCiRfvt8q0A_0[12];
1020 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.size = sizeof(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*);
1021 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.align = NIM_ALIGNOF(tyObject_StringStreamObj__Olau5FPRehZBBEB77FHnfw*);
1022 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.kind = 22;
1023 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.base = (&NTIstringstreamobj__Olau5FPRehZBBEB77FHnfw_);
1024 NTIstringstream__Z9cj1NxLXx79cYy9c4gbj6CAA_.marker = Marker_tyRef__Z9cj1NxLXx79cYy9c4gbj6CAA;
1025 }
1026 
1027