text: /* Generated by Nim Compiler v0.18.0 */
  /*   (c) 2018 Andreas Rumpf */
  /* The generated code is subject to the original license. */
  /* Compiled for: MacOSX, amd64, clang */
  /* Command for C compiler:
     clang -c  -w  -I/Users/lowks/.asdf/installs/nim/v0.18.0/lib -o /Users/lowks/exercism/nim/hello-world/nimcache/stdlib_streams.o /Users/lowks/exercism/nim/hello-world/nimcache/stdlib_streams.c */
  #define NIM_NEW_MANGLING_RULES
  #define NIM_INTBITS 64
  
  #include "nimbase.h"
  #include <setjmp.h>
  #include <string.h>
  #include <stdio.h>
  #undef LANGUAGE_C
  #undef MIPSEB
  #undef MIPSEL
  #undef PPC
  #undef R3000
  #undef R4000
  #undef i386
  #undef linux
  #undef mips
  #undef near
  #undef powerpc
  #undef unix
  typedef struct tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct tyObject_SystemError_Fjf9b9b2IlzRO2tspHxG3tgg tyObject_SystemError_Fjf9b9b2IlzRO2tspHxG3tgg;
  typedef struct Exception Exception;
  typedef struct RootObj RootObj;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct tySequence_uB9b75OUPRENsBAu4AnoePA tySequence_uB9b75OUPRENsBAu4AnoePA;
  typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
  typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
  typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
  typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
  typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
  typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
  typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
  typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
  typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
  typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
  typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
  typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
  typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
  typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
  typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
  typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
  typedef struct tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ;
  typedef struct TSafePoint TSafePoint;
  typedef struct tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ;
  typedef struct tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw;
  typedef struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA;
  typedef struct tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w;
  typedef struct tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ;
  struct TGenericSeq {
  NI len;
  NI reserved;
  };
  struct NimStringDesc {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  typedef NU8 tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A;
  typedef NU8 tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ;
  typedef N_NIMCALL_PTR(void, tyProc_ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
  typedef N_NIMCALL_PTR(void*, tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
  struct TNimType {
  NI size;
  tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
  tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
  tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
  };
  struct RootObj {
  TNimType* m_type;
  };
  struct Exception {
    RootObj Sup;
  Exception* parent;
  NCSTRING name;
  NimStringDesc* message;
  tySequence_uB9b75OUPRENsBAu4AnoePA* trace;
  Exception* up;
  };
  struct tyObject_SystemError_Fjf9b9b2IlzRO2tspHxG3tgg {
    Exception Sup;
  };
  struct tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ {
    tyObject_SystemError_Fjf9b9b2IlzRO2tspHxG3tgg Sup;
  };
  typedef NU8 tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ;
  struct TNimNode {
  tyEnum_TNimNodeKind_unfNsxrcATrufDZmpBq4HQ kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g {
  NI refcount;
  TNimType* typ;
  };
  struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
  void* bottom;
  };
  struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
  NI len;
  NI cap;
  tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
  };
  typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
  typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
  typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
  typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
  typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
  struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
  tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
  };
  typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
  struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
  tyArray_0aOLqZchNi8nWtMTi8ND8w link;
  NI key;
  NI upperBound;
  NI level;
  };
  struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
  tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
  NI Field1;
  };
  typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
  struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
  NI len;
  tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
  tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
  };
  struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
  NI minLargeObj;
  NI maxLargeObj;
  tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
  NU32 flBitmap;
  tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
  tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
  tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
  NI currMem;
  NI maxMem;
  NI freeMem;
  NI occ;
  NI lastSize;
  tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
  tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
  tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
  tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
  tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
  NIM_BOOL locked;
  NIM_BOOL blockChunkSizeIncrease;
  NI nextChunkSize;
  tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
  tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
  };
  struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
  NI stackScans;
  NI cycleCollections;
  NI maxThreshold;
  NI maxStackSize;
  NI maxStackCells;
  NI cycleTableSize;
  NI64 maxPause;
  };
  struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
  NI counter;
  NI max;
  tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
  tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
  };
  struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
  tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
  NI cycleThreshold;
  tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
  tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
  tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
  NI recGcLock;
  tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
  tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
  tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
  tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
  NI gcThreadId;
  };
  typedef N_NIMCALL_PTR(void, tyProc_cnkJEp9bna8U6yi9aVW9cAJ0Q) (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  typedef N_NIMCALL_PTR(NIM_BOOL, tyProc_KjFcmLOhf4VQvVcyLJWXZw) (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  typedef N_NIMCALL_PTR(void, tyProc_jlOYFw9cHausuCbPoWx2iiA) (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos);
  typedef N_NIMCALL_PTR(NI, tyProc_Xzm85qBLb9cf9cu8VOfAr8PQ) (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  typedef N_NIMCALL_PTR(NI, tyProc_tjaJtoUzLe1BMUbItlcGhQ) (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  typedef N_NIMCALL_PTR(void, tyProc_b9bsIuILxTLVZHPvJBW187A) (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  struct tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ {
    RootObj Sup;
  tyProc_cnkJEp9bna8U6yi9aVW9cAJ0Q closeImpl;
  tyProc_KjFcmLOhf4VQvVcyLJWXZw atEndImpl;
  tyProc_jlOYFw9cHausuCbPoWx2iiA setPositionImpl;
  tyProc_Xzm85qBLb9cf9cu8VOfAr8PQ getPositionImpl;
  tyProc_tjaJtoUzLe1BMUbItlcGhQ readDataImpl;
  tyProc_tjaJtoUzLe1BMUbItlcGhQ peekDataImpl;
  tyProc_b9bsIuILxTLVZHPvJBW187A writeDataImpl;
  tyProc_cnkJEp9bna8U6yi9aVW9cAJ0Q flushImpl;
  };
  typedef struct {
  N_NIMCALL_PTR(NIM_BOOL, ClP_0) (Exception* e, void* ClE_0);
  void* ClE_0;
  } tyProc_KeeAOYBd84Ofsw6Y7LizaQ;
  struct TSafePoint {
  TSafePoint* prev;
  NI status;
  jmp_buf context;
  NIM_BOOL hasRaiseAction;
  tyProc_KeeAOYBd84Ofsw6Y7LizaQ raiseAction;
  };
  struct tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ {
    tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ Sup;
  NimStringDesc* data;
  NI pos;
  };
  struct tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw {
    tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ Sup;
  FILE* f;
  };
  typedef NU8 tyEnum_FileSeekPos_I9aQjuvWxs8BspGbxwsngWw;
  typedef NU8 tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ;
  struct tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA {
  NCSTRING procname;
  NI line;
  NCSTRING filename;
  };
  struct tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w {
  NI prevSize;
  NI size;
  };
  struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ {
    tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
  tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* next;
  tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* prev;
  tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ* freeList;
  NI free;
  NI acc;
  NF data;
  };
  struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg {
    tyObject_BaseChunk_Sdq7WpT6qAH858F5ZEdG3w Sup;
  tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* next;
  tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* prev;
  NF data;
  };
  struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw {
  NI size;
  NI acc;
  tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* next;
  };
  typedef NI tyArray_9a8QARi5WsUggNU9bom7kzTQ[8];
  struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw {
  tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next;
  NI key;
  tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
  };
  struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg {
  tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* next;
  NI key;
  tyArray_9a8QARi5WsUggNU9bom7kzTQ bits;
  };
  struct tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ {
  tyObject_FreeCell_u6M5LHprqzkn9axr04yg9bGQ* next;
  NI zeroField;
  };
  struct tySequence_uB9b75OUPRENsBAu4AnoePA {
    TGenericSeq Sup;
    tyObject_StackTraceEntry_oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];
  };
  N_LIB_PRIVATE N_NIMCALL(tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*, newEIO_lOrpXone7dPkEAOURnfgBw)(NimStringDesc* msg);
  N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
  N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p);
  static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
  static N_INLINE(void, nimFrame)(TFrame* s);
  N_LIB_PRIVATE N_NOINLINE(void, stackOverflow_II46IjNZztN9bmbxUD8dt8g)(void);
  static N_INLINE(void, popFrame)(void);
  static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NIMCALL(void, flush_4ed7IXme7lqtClFI7s2sTQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, close_4ed7IXme7lqtClFI7s2sTQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, close_dvxY0goRsVRNjhrDyOruTQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd_K8dPRCnFaz50Kq9buF2PeYA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd_zFgHDMODd9chv9aBdkHeghrg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused);
  N_LIB_PRIVATE N_NIMCALL(void, setPosition_2EvT6qzO8p9cFGMlCGqs59cA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos);
  N_LIB_PRIVATE N_NIMCALL(void, setPosition_yNP1lEt8zcgEi6jUnxtwcg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused, NI pos);
  N_LIB_PRIVATE N_NIMCALL(NI, getPosition_DgMFF9a1vwKHsTun1epgBpg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NI, getPosition_evk078wAXikyc9aVM6l3hQw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused);
  N_LIB_PRIVATE N_NIMCALL(NI, readData_Gnwdizh7H5Q9cYivUoGHrVA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readAll_y6Jvjm2hmT9aQbvX9aMpHkOQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_NIMCALL(NimStringDesc*, mnewString)(NI len);
  N_NIMCALL(NimStringDesc*, mnewString)(NI len);
  N_NOINLINE(void, raiseIndexError)(void);
  static N_INLINE(NI, addInt)(NI a, NI b);
  N_NOINLINE(void, raiseOverflow)(void);
  static N_INLINE(NI, chckRange)(NI i, NI a, NI b);
  N_NOINLINE(void, raiseRangeError)(NI64 val);
  N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s, NI newLen);
  N_LIB_PRIVATE N_NIMCALL(NI, readData_8bSHtQEFwp9b1L8oih3mScw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(NI, peekData_Gnwdizh7H5Q9cYivUoGHrVA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(void, writeData_lmaRetW0vPyY5hzlu3Ik7A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(void, writeData_8AM5VKgHZXMc9a9czX8VHCrA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(void, write_J8LHFlpeBAP4mtGzmgjURA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc* x);
  N_LIB_PRIVATE N_NIMCALL(void, writeLn_G1TKFmud9akiH9bzSHWMshag)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** args, NI argsLen_0);
  N_LIB_PRIVATE N_NIMCALL(void, writeLine_G1TKFmud9akiH9bzSHWMshag_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** args, NI argsLen_0);
  N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar_MXNOkfw9cIUOi4sewWv9cidw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, peekChar_MXNOkfw9cIUOi4sewWv9cidw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readBool_K8dPRCnFaz50Kq9buF2PeYA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_taTzRXMNQVFodmlvWMIBXw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NIM_BOOL* result);
  N_NIMCALL(void, raiseException)(Exception* e, NCSTRING ename);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, peekBool_K8dPRCnFaz50Kq9buF2PeYA_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_taTzRXMNQVFodmlvWMIBXw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NIM_BOOL* result);
  N_LIB_PRIVATE N_NIMCALL(NI8, readInt8_mrJsqYz1oHZ9bFjoyHQ9bxow)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_fhkhQlFdT9a0lycu2tbq9aWw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI8* result);
  N_LIB_PRIVATE N_NIMCALL(NI8, peekInt8_mrJsqYz1oHZ9bFjoyHQ9bxow_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_fhkhQlFdT9a0lycu2tbq9aWw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI8* result);
  N_LIB_PRIVATE N_NIMCALL(NI16, readInt16_mQXcgU59cRwInEOpcmhS15A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_DpDv9aEAJUCZRSLEvfUTMxA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI16* result);
  N_LIB_PRIVATE N_NIMCALL(NI16, peekInt16_mQXcgU59cRwInEOpcmhS15A_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_DpDv9aEAJUCZRSLEvfUTMxA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI16* result);
  N_LIB_PRIVATE N_NIMCALL(NI32, readInt32_Ef66ckXu6WtuDvil7Mgusw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_urn9cp1KLYI56JAdcJy0aHQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI32* result);
  N_LIB_PRIVATE N_NIMCALL(NI32, peekInt32_Ef66ckXu6WtuDvil7Mgusw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_urn9cp1KLYI56JAdcJy0aHQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI32* result);
  N_LIB_PRIVATE N_NIMCALL(NI64, readInt64_qjYTwVzSS2nwc0bZhztOyg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_zPfixAShsV7sXHsVdMHElw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI64* result);
  N_LIB_PRIVATE N_NIMCALL(NI64, peekInt64_qjYTwVzSS2nwc0bZhztOyg_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_zPfixAShsV7sXHsVdMHElw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI64* result);
  N_LIB_PRIVATE N_NIMCALL(NU8, readUint8_EdWgmALnknIJuFU7XzSzEw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_ciXX5ns8Ujg3bRDIb9cK9bxA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU8* result);
  N_LIB_PRIVATE N_NIMCALL(NU8, peekUint8_EdWgmALnknIJuFU7XzSzEw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_ciXX5ns8Ujg3bRDIb9cK9bxA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU8* result);
  N_LIB_PRIVATE N_NIMCALL(NU16, readUint16_zyVDmsIp9aiYZou0r1C36zA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_qJoYITB9aWNb6FUdO07QWOA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU16* result);
  N_LIB_PRIVATE N_NIMCALL(NU16, peekUint16_zyVDmsIp9aiYZou0r1C36zA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_qJoYITB9aWNb6FUdO07QWOA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU16* result);
  N_LIB_PRIVATE N_NIMCALL(NU32, readUint32_e5TzU5VzhyWLp54Ee3T8vA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_uS8zFJbRqq0R6uojm7m84g)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU32* result);
  N_LIB_PRIVATE N_NIMCALL(NU32, peekUint32_e5TzU5VzhyWLp54Ee3T8vA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_uS8zFJbRqq0R6uojm7m84g_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU32* result);
  N_LIB_PRIVATE N_NIMCALL(NU64, readUint64_9aWx7KOxPHqWuF9aymFJKlcQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_VcFwfhheu1W9bHn4nsfRAzw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU64* result);
  N_LIB_PRIVATE N_NIMCALL(NU64, peekUint64_9aWx7KOxPHqWuF9aymFJKlcQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_VcFwfhheu1W9bHn4nsfRAzw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU64* result);
  N_LIB_PRIVATE N_NIMCALL(NF32, readFloat32_SDR673qSwa2jl9bVOOVMFcQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_SFi9b2sqpwoQ5JRuB1cGbcQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF32* result);
  N_LIB_PRIVATE N_NIMCALL(NF32, peekFloat32_SDR673qSwa2jl9bVOOVMFcQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_SFi9b2sqpwoQ5JRuB1cGbcQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF32* result);
  N_LIB_PRIVATE N_NIMCALL(NF, readFloat64_pBQtux5SAWSTJjoogt6lyA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, read_UNLEjVG6ceZkMUzjUIWdWA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF* result);
  N_LIB_PRIVATE N_NIMCALL(NF, peekFloat64_pBQtux5SAWSTJjoogt6lyA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, peek_UNLEjVG6ceZkMUzjUIWdWA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF* result);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readStr_wgbx1EbYdFgqchF83HMWvQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI length);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, peekStr_wgbx1EbYdFgqchF83HMWvQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI length);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine_y89bfL07uXzOjT5XgI50WmQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** line);
  N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, peekLine_y89bfL07uXzOjT5XgI50WmQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** line);
  static N_INLINE(void, pushSafePoint)(TSafePoint* s);
  static N_INLINE(void, popSafePoint)(void);
  static N_INLINE(void, setFrame)(TFrame* s);
  N_NIMCALL(void, reraiseException)(void);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine_y6Jvjm2hmT9aQbvX9aMpHkOQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, peekLine_y6Jvjm2hmT9aQbvX9aMpHkOQ_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd_acl02gpfK9cCD8utiP6NxdA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_NIMCALL(void, chckObj)(TNimType* obj, TNimType* subclass);
  N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition_C0SEQJWfadg6oK29b8FuMZg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos);
  N_LIB_PRIVATE N_NIMCALL(NI, clamp_RrNgT2340KObgDMnZWSK5A)(NI x, NI a, NI b);
  N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition_ht6Fg1Bmvqnb8CP4WayC2A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NI, ssReadData_7P4Enb2Vt3iOCL5K9cnGqYw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  static N_INLINE(NI, subInt)(NI a, NI b);
  static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size);
  N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData_7P4Enb2Vt3iOCL5K9cnGqYw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(void, ssWriteData_mrtMhMXvYVpi5Svw9bWueBw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(void, ssClose_qQbp4Nsuc4ou9bqUUbaqJ6A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*, newStringStream_0dQ0A0pna0dG9cMxo4TbLKQ)(NimStringDesc* s);
  N_NIMCALL(void, nimGCvisit)(void* d, NI op);
  static N_NIMCALL(void, Marker_tyRef_oa89b9cIODFBktXa1hHFh9c3Q)(void* p, NI op);
  N_LIB_PRIVATE N_NIMCALL(void, fsClose_qQbp4Nsuc4ou9bqUUbaqJ6A_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, close_BWnr8V7RERYno9bIdPmw8Hw_2)(FILE* f);
  N_LIB_PRIVATE N_NIMCALL(void, fsFlush_qQbp4Nsuc4ou9bqUUbaqJ6A_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(void, flushFile_BWnr8V7RERYno9bIdPmw8Hw_3)(FILE* f);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd_acl02gpfK9cCD8utiP6NxdA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endOfFile_OpxMRqWNQzmofyVQsNQqVA)(FILE* f);
  N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition_C0SEQJWfadg6oK29b8FuMZg_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos);
  N_LIB_PRIVATE N_NIMCALL(void, setFilePos_YAngY19cHH2nZ9bqhMgAHz8Q)(FILE* f, NI64 pos, tyEnum_FileSeekPos_I9aQjuvWxs8BspGbxwsngWw relativeTo);
  N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition_ht6Fg1Bmvqnb8CP4WayC2A_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s);
  N_LIB_PRIVATE N_NIMCALL(NI64, getFilePos_XePgC9ccBXCgb9bEHXZpnMqA_2)(FILE* f);
  N_LIB_PRIVATE N_NIMCALL(NI, fsReadData_7P4Enb2Vt3iOCL5K9cnGqYw_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(NI, readBuffer_1qjbrvfnPD4PaIieHVDvhw)(FILE* f, void* buffer, NI len);
  N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData_7P4Enb2Vt3iOCL5K9cnGqYw_4)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(void, fsWriteData_mrtMhMXvYVpi5Svw9bWueBw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen);
  N_LIB_PRIVATE N_NIMCALL(NI, writeBuffer_1qjbrvfnPD4PaIieHVDvhw_2)(FILE* f, void* buffer, NI len);
  N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*, newFileStream_j9aOzR9a9bXMSUnTXiGmXXGqQ)(FILE* f);
  static N_NIMCALL(void, Marker_tyRef_Z018yRjOOerOKfp9aM3JSOg)(void* p, NI op);
  N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*, newFileStream_9argyMqCIlB1KDaxUuYVcmw)(NimStringDesc* filename, tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ mode, NI bufSize);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open_sEp0GH2306oGo9bqBpj5oTQ)(FILE** f, NimStringDesc* filename, tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ mode, NI bufSize);
  static N_NIMCALL(void, Marker_tyRef_r3Wc5tOoxP8rz1DvGVTUvw)(void* p, NI op);
  extern TNimType NTI_HX2M9cQhE3jaovp9aYJDdslA_;
  extern TNimType NTI_9czoZw3pzPyrBmb5zTHY1OQ_;
  extern TFrame* framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw;
  extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
  extern TSafePoint* excHandler_rqLlY5bs9atDw2OXYqJEn5g;
  extern TNimType NTI_13RNkKqUOX1TtorOUlKtqA_;
  TNimType NTI_RShkcoDOPnoCVhtpN1hDPQ_;
  TNimType NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_;
  TNimType NTI_KjFcmLOhf4VQvVcyLJWXZw_;
  TNimType NTI_jlOYFw9cHausuCbPoWx2iiA_;
  TNimType NTI_Xzm85qBLb9cf9cu8VOfAr8PQ_;
  TNimType NTI_tjaJtoUzLe1BMUbItlcGhQ_;
  TNimType NTI_b9bsIuILxTLVZHPvJBW187A_;
  TNimType NTI_lGsM0FdhfyxyplfYoMsgFQ_;
  extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg_;
  extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
  TNimType NTI_oa89b9cIODFBktXa1hHFh9c3Q_;
  TNimType NTI_qoDM8xYRV40zbhS9acPNT9bw_;
  extern TNimType NTI_7BHnQsEj49a9c6QtudqWTo1w_;
  TNimType NTI_Z018yRjOOerOKfp9aM3JSOg_;
  TNimType NTI_r3Wc5tOoxP8rz1DvGVTUvw_;
  STRING_LITERAL(TM_Ue7tnBcsL67VCiRfvt8q0A_6, "\012", 1);
  STRING_LITERAL(TM_Ue7tnBcsL67VCiRfvt8q0A_8, "cannot read from stream", 23);
  STRING_LITERAL(TM_Ue7tnBcsL67VCiRfvt8q0A_10, "", 0);
  STRING_LITERAL(TM_Ue7tnBcsL67VCiRfvt8q0A_21, "cannot write to stream", 22);
  
  static N_INLINE(void, nimFrame)(TFrame* s) {
  	NI T1_;
  	T1_ = (NI)0;
  	{
  		if (!(framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
  		T1_ = ((NI) 0);
  	}
  	goto LA2_;
  	LA4_: ;
  	{
  		T1_ = ((NI) ((NI16)((*framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
  	}
  	LA2_: ;
  	(*s).calldepth = ((NI16) (T1_));
  	(*s).prev = framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw;
  	framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw = s;
  	{
  		if (!((*s).calldepth == ((NI16) 2000))) goto LA9_;
  		stackOverflow_II46IjNZztN9bmbxUD8dt8g();
  	}
  	LA9_: ;
  }
  
  static N_INLINE(void, popFrame)(void) {
  	framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw = (*framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
  }
  
  static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
  	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
  	nimfr_("usrToCell", "gc.nim");
  	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	nimln_(132, "gc.nim");
  	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU64)(((NI) (ptrdiff_t) (usr))) - (NU64)(((NI)sizeof(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
  	popFrame();
  	return result;
  }
  
  static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	nimfr_("rtlAddZCT", "gc.nim");
  	nimln_(211, "gc.nim");
  	addZCT_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
  	popFrame();
  }
  
  static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
  	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
  	nimfr_("nimGCunrefNoCycle", "gc.nim");
  	nimln_(250, "gc.nim");
  	c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p);
  	nimln_(252, "gc.nim");
  	{
  		(*c).refcount -= ((NI) 8);
  		if (!((NU64)((*c).refcount) < (NU64)(((NI) 8)))) goto LA3_;
  		nimln_(253, "gc.nim");
  		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
  	}
  	LA3_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*, newEIO_lOrpXone7dPkEAOURnfgBw)(NimStringDesc* msg) {
  	tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* result;
  	NimStringDesc* T1_;
  	nimfr_("newEIO", "streams.nim");
  	result = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  	nimln_(38, "streams.nim");
  	result = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*) newObj((&NTI_HX2M9cQhE3jaovp9aYJDdslA_), sizeof(tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ));
  	(*result).Sup.Sup.Sup.m_type = (&NTI_9czoZw3pzPyrBmb5zTHY1OQ_);
  	nimln_(39, "streams.nim");
  	T1_ = (NimStringDesc*)0;
  	T1_ = (*result).Sup.Sup.message; (*result).Sup.Sup.message = copyStringRC1(msg);
  	if (T1_) nimGCunrefNoCycle(T1_);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, flush_4ed7IXme7lqtClFI7s2sTQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	nimfr_("flush", "streams.nim");
  	nimln_(64, "streams.nim");
  	{
  		if (!!(((*s).flushImpl == 0))) goto LA3_;
  		(*s).flushImpl(s);
  	}
  	LA3_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, close_4ed7IXme7lqtClFI7s2sTQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	nimfr_("close", "streams.nim");
  	nimln_(68, "streams.nim");
  	{
  		if (!!(((*s).closeImpl == 0))) goto LA3_;
  		(*s).closeImpl(s);
  	}
  	LA3_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, close_dvxY0goRsVRNjhrDyOruTQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused) {
  	nimfr_("close", "streams.nim");
  	nimln_(72, "streams.nim");
  	(*s).closeImpl(s);
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd_K8dPRCnFaz50Kq9buF2PeYA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_BOOL result;
  	nimfr_("atEnd", "streams.nim");
  	result = (NIM_BOOL)0;
  	nimln_(77, "streams.nim");
  	result = (*s).atEndImpl(s);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, atEnd_zFgHDMODd9chv9aBdkHeghrg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused) {
  	NIM_BOOL result;
  	nimfr_("atEnd", "streams.nim");
  	result = (NIM_BOOL)0;
  	nimln_(82, "streams.nim");
  	result = (*s).atEndImpl(s);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, setPosition_2EvT6qzO8p9cFGMlCGqs59cA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos) {
  	nimfr_("setPosition", "streams.nim");
  	nimln_(86, "streams.nim");
  	(*s).setPositionImpl(s, pos);
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, setPosition_yNP1lEt8zcgEi6jUnxtwcg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused, NI pos) {
  	nimfr_("setPosition", "streams.nim");
  	nimln_(90, "streams.nim");
  	(*s).setPositionImpl(s, pos);
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, getPosition_DgMFF9a1vwKHsTun1epgBpg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI result;
  	nimfr_("getPosition", "streams.nim");
  	result = (NI)0;
  	nimln_(94, "streams.nim");
  	result = (*s).getPositionImpl(s);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, getPosition_evk078wAXikyc9aVM6l3hQw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused) {
  	NI result;
  	nimfr_("getPosition", "streams.nim");
  	result = (NI)0;
  	nimln_(98, "streams.nim");
  	result = (*s).getPositionImpl(s);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, readData_Gnwdizh7H5Q9cYivUoGHrVA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	NI result;
  	nimfr_("readData", "streams.nim");
  	result = (NI)0;
  	nimln_(102, "streams.nim");
  	result = (*s).readDataImpl(s, buffer, bufLen);
  	popFrame();
  	return result;
  }
  
  static N_INLINE(NI, addInt)(NI a, NI b) {
  	NI result;
  {	result = (NI)0;
  	result = (NI)((NU64)(a) + (NU64)(b));
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (((NI) 0) <= (NI)(result ^ a));
  		if (T3_) goto LA4_;
  		T3_ = (((NI) 0) <= (NI)(result ^ b));
  		LA4_: ;
  		if (!T3_) goto LA5_;
  		goto BeforeRet_;
  	}
  	LA5_: ;
  	raiseOverflow();
  	}BeforeRet_: ;
  	return result;
  }
  
  static N_INLINE(NI, chckRange)(NI i, NI a, NI b) {
  	NI result;
  {	result = (NI)0;
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (a <= i);
  		if (!(T3_)) goto LA4_;
  		T3_ = (i <= b);
  		LA4_: ;
  		if (!T3_) goto LA5_;
  		result = i;
  		goto BeforeRet_;
  	}
  	goto LA1_;
  	LA5_: ;
  	{
  		raiseRangeError(((NI64) (i)));
  	}
  	LA1_: ;
  	}BeforeRet_: ;
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readAll_y6Jvjm2hmT9aQbvX9aMpHkOQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NimStringDesc* result;
  	NI r;
  	nimfr_("readAll", "streams.nim");
  	result = (NimStringDesc*)0;
  	nimln_(107, "streams.nim");
  	result = mnewString(((NI) 1000));
  	nimln_(108, "streams.nim");
  	r = ((NI) 0);
  	{
  		nimln_(109, "streams.nim");
  		while (1) {
  			NI readBytes;
  			NI TM_Ue7tnBcsL67VCiRfvt8q0A_3;
  			NI TM_Ue7tnBcsL67VCiRfvt8q0A_4;
  			nimln_(110, "streams.nim");
  			if ((NU)(r) > (NU)(result->Sup.len)) raiseIndexError();
  			readBytes = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) ((&result->data[r]))), ((NI) 1000));
  			nimln_(111, "streams.nim");
  			{
  				NI TM_Ue7tnBcsL67VCiRfvt8q0A_2;
  				if (!(readBytes < ((NI) 1000))) goto LA5_;
  				nimln_(112, "streams.nim");
  				TM_Ue7tnBcsL67VCiRfvt8q0A_2 = addInt(r, readBytes);
  				result = setLengthStr(result, ((NI)chckRange((NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_2), ((NI) 0), ((NI) IL64(9223372036854775807)))));
  				nimln_(113, "streams.nim");
  				goto LA1;
  			}
  			LA5_: ;
  			nimln_(114, "streams.nim");
  			TM_Ue7tnBcsL67VCiRfvt8q0A_3 = addInt(r, ((NI) 1000));
  			r = (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_3);
  			nimln_(115, "streams.nim");
  			TM_Ue7tnBcsL67VCiRfvt8q0A_4 = addInt(r, ((NI) 1000));
  			result = setLengthStr(result, ((NI)chckRange((NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_4), ((NI) 0), ((NI) IL64(9223372036854775807)))));
  		}
  	} LA1: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, readData_8bSHtQEFwp9b1L8oih3mScw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused, void* buffer, NI bufLen) {
  	NI result;
  	nimfr_("readData", "streams.nim");
  	result = (NI)0;
  	nimln_(120, "streams.nim");
  	result = (*s).readDataImpl(s, buffer, bufLen);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, peekData_Gnwdizh7H5Q9cYivUoGHrVA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	NI result;
  	nimfr_("peekData", "streams.nim");
  	result = (NI)0;
  	nimln_(125, "streams.nim");
  	result = (*s).peekDataImpl(s, buffer, bufLen);
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, writeData_lmaRetW0vPyY5hzlu3Ik7A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	nimfr_("writeData", "streams.nim");
  	nimln_(130, "streams.nim");
  	(*s).writeDataImpl(s, buffer, bufLen);
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, writeData_8AM5VKgHZXMc9a9czX8VHCrA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* unused, void* buffer, NI bufLen) {
  	nimfr_("writeData", "streams.nim");
  	nimln_(136, "streams.nim");
  	(*s).writeDataImpl(s, buffer, bufLen);
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, write_J8LHFlpeBAP4mtGzmgjURA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc* x) {
  	nimfr_("write", "streams.nim");
  	nimln_(154, "streams.nim");
  	{
  		if (!(((NI) 0) < (x ? x->Sup.len : 0))) goto LA3_;
  		if ((NU)(((NI) 0)) > (NU)(x->Sup.len)) raiseIndexError();
  		writeData_lmaRetW0vPyY5hzlu3Ik7A(s, ((void*) ((&x->data[((NI) 0)]))), (x ? x->Sup.len : 0));
  	}
  	LA3_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, writeLn_G1TKFmud9akiH9bzSHWMshag)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** args, NI argsLen_0) {
  	nimfr_("writeLn", "streams.nim");
  	{
  		NimStringDesc* str;
  		NI i;
  		str = (NimStringDesc*)0;
  		nimln_(2185, "system.nim");
  		i = ((NI) 0);
  		{
  			nimln_(2186, "system.nim");
  			while (1) {
  				NI TM_Ue7tnBcsL67VCiRfvt8q0A_5;
  				if (!(i < argsLen_0)) goto LA3;
  				nimln_(2187, "system.nim");
  				if ((NU)(i) >= (NU)(argsLen_0)) raiseIndexError();
  				str = args[i];
  				nimln_(158, "streams.nim");
  				write_J8LHFlpeBAP4mtGzmgjURA(s, str);
  				nimln_(2188, "system.nim");
  				TM_Ue7tnBcsL67VCiRfvt8q0A_5 = addInt(i, ((NI) 1));
  				i = (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_5);
  			} LA3: ;
  		}
  	}
  	nimln_(159, "streams.nim");
  	write_J8LHFlpeBAP4mtGzmgjURA(s, ((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_6));
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, writeLine_G1TKFmud9akiH9bzSHWMshag_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** args, NI argsLen_0) {
  	nimfr_("writeLine", "streams.nim");
  	{
  		NimStringDesc* str;
  		NI i;
  		str = (NimStringDesc*)0;
  		nimln_(2185, "system.nim");
  		i = ((NI) 0);
  		{
  			nimln_(2186, "system.nim");
  			while (1) {
  				NI TM_Ue7tnBcsL67VCiRfvt8q0A_7;
  				if (!(i < argsLen_0)) goto LA3;
  				nimln_(2187, "system.nim");
  				if ((NU)(i) >= (NU)(argsLen_0)) raiseIndexError();
  				str = args[i];
  				nimln_(164, "streams.nim");
  				write_J8LHFlpeBAP4mtGzmgjURA(s, str);
  				nimln_(2188, "system.nim");
  				TM_Ue7tnBcsL67VCiRfvt8q0A_7 = addInt(i, ((NI) 1));
  				i = (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_7);
  			} LA3: ;
  		}
  	}
  	nimln_(165, "streams.nim");
  	write_J8LHFlpeBAP4mtGzmgjURA(s, ((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_6));
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, readChar_MXNOkfw9cIUOi4sewWv9cidw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_CHAR result;
  	nimfr_("readChar", "streams.nim");
  	result = (NIM_CHAR)0;
  	nimln_(180, "streams.nim");
  	{
  		NI T3_;
  		nimln_(398, "system.nim");
  		nimln_(180, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) ((&result))), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		result = 0;
  	}
  	LA4_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_CHAR, peekChar_MXNOkfw9cIUOi4sewWv9cidw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_CHAR result;
  	nimfr_("peekChar", "streams.nim");
  	result = (NIM_CHAR)0;
  	nimln_(185, "streams.nim");
  	{
  		NI T3_;
  		nimln_(398, "system.nim");
  		nimln_(185, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) ((&result))), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		result = 0;
  	}
  	LA4_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_taTzRXMNQVFodmlvWMIBXw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NIM_BOOL* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readBool_K8dPRCnFaz50Kq9buF2PeYA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_BOOL result;
  	nimfr_("readBool", "streams.nim");
  	result = (NIM_BOOL)0;
  	nimln_(189, "streams.nim");
  	read_taTzRXMNQVFodmlvWMIBXw(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_taTzRXMNQVFodmlvWMIBXw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NIM_BOOL* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, peekBool_K8dPRCnFaz50Kq9buF2PeYA_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_BOOL result;
  	nimfr_("peekBool", "streams.nim");
  	result = (NIM_BOOL)0;
  	nimln_(193, "streams.nim");
  	peek_taTzRXMNQVFodmlvWMIBXw_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_fhkhQlFdT9a0lycu2tbq9aWw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI8* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI8, readInt8_mrJsqYz1oHZ9bFjoyHQ9bxow)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI8 result;
  	nimfr_("readInt8", "streams.nim");
  	result = (NI8)0;
  	nimln_(197, "streams.nim");
  	read_fhkhQlFdT9a0lycu2tbq9aWw(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_fhkhQlFdT9a0lycu2tbq9aWw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI8* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI8, peekInt8_mrJsqYz1oHZ9bFjoyHQ9bxow_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI8 result;
  	nimfr_("peekInt8", "streams.nim");
  	result = (NI8)0;
  	nimln_(201, "streams.nim");
  	peek_fhkhQlFdT9a0lycu2tbq9aWw_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_DpDv9aEAJUCZRSLEvfUTMxA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI16* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 2));
  		if (!!((T3_ == ((NI) 2)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI16, readInt16_mQXcgU59cRwInEOpcmhS15A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI16 result;
  	nimfr_("readInt16", "streams.nim");
  	result = (NI16)0;
  	nimln_(205, "streams.nim");
  	read_DpDv9aEAJUCZRSLEvfUTMxA(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_DpDv9aEAJUCZRSLEvfUTMxA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI16* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 2));
  		if (!!((T3_ == ((NI) 2)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI16, peekInt16_mQXcgU59cRwInEOpcmhS15A_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI16 result;
  	nimfr_("peekInt16", "streams.nim");
  	result = (NI16)0;
  	nimln_(209, "streams.nim");
  	peek_DpDv9aEAJUCZRSLEvfUTMxA_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_urn9cp1KLYI56JAdcJy0aHQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI32* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 4));
  		if (!!((T3_ == ((NI) 4)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI32, readInt32_Ef66ckXu6WtuDvil7Mgusw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI32 result;
  	nimfr_("readInt32", "streams.nim");
  	result = (NI32)0;
  	nimln_(213, "streams.nim");
  	read_urn9cp1KLYI56JAdcJy0aHQ(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_urn9cp1KLYI56JAdcJy0aHQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI32* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 4));
  		if (!!((T3_ == ((NI) 4)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI32, peekInt32_Ef66ckXu6WtuDvil7Mgusw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI32 result;
  	nimfr_("peekInt32", "streams.nim");
  	result = (NI32)0;
  	nimln_(217, "streams.nim");
  	peek_urn9cp1KLYI56JAdcJy0aHQ_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_zPfixAShsV7sXHsVdMHElw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI64* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 8));
  		if (!!((T3_ == ((NI) 8)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI64, readInt64_qjYTwVzSS2nwc0bZhztOyg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI64 result;
  	nimfr_("readInt64", "streams.nim");
  	result = (NI64)0;
  	nimln_(221, "streams.nim");
  	read_zPfixAShsV7sXHsVdMHElw(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_zPfixAShsV7sXHsVdMHElw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI64* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 8));
  		if (!!((T3_ == ((NI) 8)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI64, peekInt64_qjYTwVzSS2nwc0bZhztOyg_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI64 result;
  	nimfr_("peekInt64", "streams.nim");
  	result = (NI64)0;
  	nimln_(225, "streams.nim");
  	peek_zPfixAShsV7sXHsVdMHElw_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_ciXX5ns8Ujg3bRDIb9cK9bxA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU8* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU8, readUint8_EdWgmALnknIJuFU7XzSzEw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU8 result;
  	nimfr_("readUint8", "streams.nim");
  	result = (NU8)0;
  	nimln_(229, "streams.nim");
  	read_ciXX5ns8Ujg3bRDIb9cK9bxA(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_ciXX5ns8Ujg3bRDIb9cK9bxA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU8* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 1));
  		if (!!((T3_ == ((NI) 1)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU8, peekUint8_EdWgmALnknIJuFU7XzSzEw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU8 result;
  	nimfr_("peekUint8", "streams.nim");
  	result = (NU8)0;
  	nimln_(233, "streams.nim");
  	peek_ciXX5ns8Ujg3bRDIb9cK9bxA_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_qJoYITB9aWNb6FUdO07QWOA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU16* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 2));
  		if (!!((T3_ == ((NI) 2)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU16, readUint16_zyVDmsIp9aiYZou0r1C36zA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU16 result;
  	nimfr_("readUint16", "streams.nim");
  	result = (NU16)0;
  	nimln_(237, "streams.nim");
  	read_qJoYITB9aWNb6FUdO07QWOA(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_qJoYITB9aWNb6FUdO07QWOA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU16* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 2));
  		if (!!((T3_ == ((NI) 2)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU16, peekUint16_zyVDmsIp9aiYZou0r1C36zA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU16 result;
  	nimfr_("peekUint16", "streams.nim");
  	result = (NU16)0;
  	nimln_(241, "streams.nim");
  	peek_qJoYITB9aWNb6FUdO07QWOA_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_uS8zFJbRqq0R6uojm7m84g)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU32* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 4));
  		if (!!((T3_ == ((NI) 4)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU32, readUint32_e5TzU5VzhyWLp54Ee3T8vA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU32 result;
  	nimfr_("readUint32", "streams.nim");
  	result = (NU32)0;
  	nimln_(245, "streams.nim");
  	read_uS8zFJbRqq0R6uojm7m84g(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_uS8zFJbRqq0R6uojm7m84g_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU32* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 4));
  		if (!!((T3_ == ((NI) 4)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU32, peekUint32_e5TzU5VzhyWLp54Ee3T8vA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU32 result;
  	nimfr_("peekUint32", "streams.nim");
  	result = (NU32)0;
  	nimln_(249, "streams.nim");
  	peek_uS8zFJbRqq0R6uojm7m84g_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_VcFwfhheu1W9bHn4nsfRAzw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU64* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 8));
  		if (!!((T3_ == ((NI) 8)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU64, readUint64_9aWx7KOxPHqWuF9aymFJKlcQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU64 result;
  	nimfr_("readUint64", "streams.nim");
  	result = (NU64)0;
  	nimln_(253, "streams.nim");
  	read_VcFwfhheu1W9bHn4nsfRAzw(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_VcFwfhheu1W9bHn4nsfRAzw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NU64* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 8));
  		if (!!((T3_ == ((NI) 8)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NU64, peekUint64_9aWx7KOxPHqWuF9aymFJKlcQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NU64 result;
  	nimfr_("peekUint64", "streams.nim");
  	result = (NU64)0;
  	nimln_(257, "streams.nim");
  	peek_VcFwfhheu1W9bHn4nsfRAzw_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_SFi9b2sqpwoQ5JRuB1cGbcQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF32* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 4));
  		if (!!((T3_ == ((NI) 4)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NF32, readFloat32_SDR673qSwa2jl9bVOOVMFcQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NF32 result;
  	nimfr_("readFloat32", "streams.nim");
  	result = (NF32)0;
  	nimln_(261, "streams.nim");
  	read_SFi9b2sqpwoQ5JRuB1cGbcQ(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_SFi9b2sqpwoQ5JRuB1cGbcQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF32* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 4));
  		if (!!((T3_ == ((NI) 4)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NF32, peekFloat32_SDR673qSwa2jl9bVOOVMFcQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NF32 result;
  	nimfr_("peekFloat32", "streams.nim");
  	result = (NF32)0;
  	nimln_(265, "streams.nim");
  	peek_SFi9b2sqpwoQ5JRuB1cGbcQ_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, read_UNLEjVG6ceZkMUzjUIWdWA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF* result) {
  	nimfr_("read", "streams.nim");
  	nimln_(169, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(169, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) (result)), ((NI) 8));
  		if (!!((T3_ == ((NI) 8)))) goto LA4_;
  		nimln_(170, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NF, readFloat64_pBQtux5SAWSTJjoogt6lyA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NF result;
  	nimfr_("readFloat64", "streams.nim");
  	result = (NF)0;
  	nimln_(269, "streams.nim");
  	read_UNLEjVG6ceZkMUzjUIWdWA(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, peek_UNLEjVG6ceZkMUzjUIWdWA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NF* result) {
  	nimfr_("peek", "streams.nim");
  	nimln_(174, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(174, "streams.nim");
  		T3_ = (NI)0;
  		T3_ = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) (result)), ((NI) 8));
  		if (!!((T3_ == ((NI) 8)))) goto LA4_;
  		nimln_(175, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_8));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NF, peekFloat64_pBQtux5SAWSTJjoogt6lyA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NF result;
  	nimfr_("peekFloat64", "streams.nim");
  	result = (NF)0;
  	nimln_(273, "streams.nim");
  	peek_UNLEjVG6ceZkMUzjUIWdWA_2(s, (&result));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readStr_wgbx1EbYdFgqchF83HMWvQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI length) {
  	NimStringDesc* result;
  	NI L;
  	nimfr_("readStr", "streams.nim");
  	result = (NimStringDesc*)0;
  	nimln_(278, "streams.nim");
  	result = mnewString(((NI)chckRange(length, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	nimln_(279, "streams.nim");
  	if ((NU)(((NI) 0)) > (NU)(result->Sup.len)) raiseIndexError();
  	L = readData_Gnwdizh7H5Q9cYivUoGHrVA(s, ((void*) ((&result->data[((NI) 0)]))), length);
  	nimln_(280, "streams.nim");
  	{
  		nimln_(398, "system.nim");
  		nimln_(280, "streams.nim");
  		if (!!((L == length))) goto LA3_;
  		result = setLengthStr(result, ((NI)chckRange(L, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	}
  	LA3_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, peekStr_wgbx1EbYdFgqchF83HMWvQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI length) {
  	NimStringDesc* result;
  	NI L;
  	nimfr_("peekStr", "streams.nim");
  	result = (NimStringDesc*)0;
  	nimln_(285, "streams.nim");
  	result = mnewString(((NI)chckRange(length, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	nimln_(286, "streams.nim");
  	if ((NU)(((NI) 0)) > (NU)(result->Sup.len)) raiseIndexError();
  	L = peekData_Gnwdizh7H5Q9cYivUoGHrVA_2(s, ((void*) ((&result->data[((NI) 0)]))), length);
  	nimln_(287, "streams.nim");
  	{
  		nimln_(398, "system.nim");
  		nimln_(287, "streams.nim");
  		if (!!((L == length))) goto LA3_;
  		result = setLengthStr(result, ((NI)chckRange(L, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	}
  	LA3_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine_y89bfL07uXzOjT5XgI50WmQ)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** line) {
  	NIM_BOOL result;
  	nimfr_("readLine", "streams.nim");
  {	result = (NIM_BOOL)0;
  	nimln_(296, "streams.nim");
  	(*line) = setLengthStr((*line), ((NI) 0));
  	{
  		nimln_(297, "streams.nim");
  		while (1) {
  			NIM_CHAR c;
  			nimln_(298, "streams.nim");
  			c = readChar_MXNOkfw9cIUOi4sewWv9cidw(s);
  			nimln_(299, "streams.nim");
  			{
  				if (!((NU8)(c) == (NU8)(13))) goto LA5_;
  				nimln_(300, "streams.nim");
  				c = readChar_MXNOkfw9cIUOi4sewWv9cidw(s);
  				nimln_(301, "streams.nim");
  				goto LA1;
  			}
  			goto LA3_;
  			LA5_: ;
  			{
  				nimln_(302, "streams.nim");
  				if (!((NU8)(c) == (NU8)(10))) goto LA8_;
  				goto LA1;
  			}
  			goto LA3_;
  			LA8_: ;
  			{
  				nimln_(303, "streams.nim");
  				if (!((NU8)(c) == (NU8)(0))) goto LA11_;
  				nimln_(304, "streams.nim");
  				{
  					if (!(((NI) 0) < ((*line) ? (*line)->Sup.len : 0))) goto LA15_;
  					goto LA1;
  				}
  				goto LA13_;
  				LA15_: ;
  				{
  					nimln_(305, "streams.nim");
  					result = NIM_FALSE;
  					goto BeforeRet_;
  				}
  				LA13_: ;
  			}
  			goto LA3_;
  			LA11_: ;
  			LA3_: ;
  			nimln_(306, "streams.nim");
  			(*line) = addChar((*line), c);
  		}
  	} LA1: ;
  	nimln_(307, "streams.nim");
  	result = NIM_TRUE;
  	}BeforeRet_: ;
  	popFrame();
  	return result;
  }
  
  static N_INLINE(void, pushSafePoint)(TSafePoint* s) {
  	(*s).hasRaiseAction = NIM_FALSE;
  	(*s).prev = excHandler_rqLlY5bs9atDw2OXYqJEn5g;
  	excHandler_rqLlY5bs9atDw2OXYqJEn5g = s;
  }
  
  static N_INLINE(void, popSafePoint)(void) {
  	excHandler_rqLlY5bs9atDw2OXYqJEn5g = (*excHandler_rqLlY5bs9atDw2OXYqJEn5g).prev;
  }
  
  static N_INLINE(void, setFrame)(TFrame* s) {
  	framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw = s;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, peekLine_y89bfL07uXzOjT5XgI50WmQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NimStringDesc** line) {
  	NIM_BOOL volatile result;
  	NI pos;
  	TSafePoint TM_Ue7tnBcsL67VCiRfvt8q0A_9;
  	nimfr_("peekLine", "streams.nim");
  	result = (NIM_BOOL)0;
  	nimln_(316, "streams.nim");
  	pos = getPosition_DgMFF9a1vwKHsTun1epgBpg(s);
  	nimln_(317, "streams.nim");
  	pushSafePoint(&TM_Ue7tnBcsL67VCiRfvt8q0A_9);
  	TM_Ue7tnBcsL67VCiRfvt8q0A_9.status = _setjmp(TM_Ue7tnBcsL67VCiRfvt8q0A_9.context);
  	if (TM_Ue7tnBcsL67VCiRfvt8q0A_9.status == 0) {
  		nimln_(318, "streams.nim");
  		result = readLine_y89bfL07uXzOjT5XgI50WmQ(s, line);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		setFrame((TFrame*)&FR_);
  	}
  	{
  		nimln_(317, "streams.nim");
  		setPosition_2EvT6qzO8p9cFGMlCGqs59cA(s, pos);
  	}
  	if (TM_Ue7tnBcsL67VCiRfvt8q0A_9.status != 0) reraiseException();
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, readLine_y6Jvjm2hmT9aQbvX9aMpHkOQ_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NimStringDesc* result;
  	nimfr_("readLine", "streams.nim");
  	result = (NimStringDesc*)0;
  	nimln_(323, "streams.nim");
  	result = copyString(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_10));
  	{
  		nimln_(324, "streams.nim");
  		while (1) {
  			NIM_CHAR c;
  			nimln_(325, "streams.nim");
  			c = readChar_MXNOkfw9cIUOi4sewWv9cidw(s);
  			nimln_(326, "streams.nim");
  			{
  				if (!((NU8)(c) == (NU8)(13))) goto LA5_;
  				nimln_(327, "streams.nim");
  				c = readChar_MXNOkfw9cIUOi4sewWv9cidw(s);
  				nimln_(328, "streams.nim");
  				goto LA1;
  			}
  			LA5_: ;
  			nimln_(329, "streams.nim");
  			{
  				NIM_BOOL T9_;
  				T9_ = (NIM_BOOL)0;
  				T9_ = ((NU8)(c) == (NU8)(10));
  				if (T9_) goto LA10_;
  				T9_ = ((NU8)(c) == (NU8)(0));
  				LA10_: ;
  				if (!T9_) goto LA11_;
  				nimln_(330, "streams.nim");
  				goto LA1;
  			}
  			goto LA7_;
  			LA11_: ;
  			{
  				nimln_(332, "streams.nim");
  				result = addChar(result, c);
  			}
  			LA7_: ;
  		}
  	} LA1: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, peekLine_y6Jvjm2hmT9aQbvX9aMpHkOQ_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NimStringDesc* volatile result;
  	NI pos;
  	TSafePoint TM_Ue7tnBcsL67VCiRfvt8q0A_11;
  	nimfr_("peekLine", "streams.nim");
  	result = (NimStringDesc*)0;
  	nimln_(337, "streams.nim");
  	pos = getPosition_DgMFF9a1vwKHsTun1epgBpg(s);
  	nimln_(338, "streams.nim");
  	pushSafePoint(&TM_Ue7tnBcsL67VCiRfvt8q0A_11);
  	TM_Ue7tnBcsL67VCiRfvt8q0A_11.status = _setjmp(TM_Ue7tnBcsL67VCiRfvt8q0A_11.context);
  	if (TM_Ue7tnBcsL67VCiRfvt8q0A_11.status == 0) {
  		nimln_(339, "streams.nim");
  		result = readLine_y6Jvjm2hmT9aQbvX9aMpHkOQ_2(s);
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		setFrame((TFrame*)&FR_);
  	}
  	{
  		nimln_(338, "streams.nim");
  		setPosition_2EvT6qzO8p9cFGMlCGqs59cA(s, pos);
  	}
  	if (TM_Ue7tnBcsL67VCiRfvt8q0A_11.status != 0) reraiseException();
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ssAtEnd_acl02gpfK9cCD8utiP6NxdA)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_BOOL result;
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	nimfr_("ssAtEnd", "streams.nim");
  {	result = (NIM_BOOL)0;
  	nimln_(352, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(353, "streams.nim");
  	result = (((*s_2).data ? (*s_2).data->Sup.len : 0) <= (*s_2).pos);
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, ssSetPosition_C0SEQJWfadg6oK29b8FuMZg)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos) {
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	nimfr_("ssSetPosition", "streams.nim");
  	nimln_(356, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(357, "streams.nim");
  	(*s_2).pos = clamp_RrNgT2340KObgDMnZWSK5A(pos, ((NI) 0), ((*s_2).data ? (*s_2).data->Sup.len : 0));
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, ssGetPosition_ht6Fg1Bmvqnb8CP4WayC2A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI result;
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	nimfr_("ssGetPosition", "streams.nim");
  {	result = (NI)0;
  	nimln_(360, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(361, "streams.nim");
  	result = (*s_2).pos;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	popFrame();
  	return result;
  }
  
  static N_INLINE(NI, subInt)(NI a, NI b) {
  	NI result;
  {	result = (NI)0;
  	result = (NI)((NU64)(a) - (NU64)(b));
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = (((NI) 0) <= (NI)(result ^ a));
  		if (T3_) goto LA4_;
  		T3_ = (((NI) 0) <= (NI)(result ^ (NI)((NU64) ~(b))));
  		LA4_: ;
  		if (!T3_) goto LA5_;
  		goto BeforeRet_;
  	}
  	LA5_: ;
  	raiseOverflow();
  	}BeforeRet_: ;
  	return result;
  }
  
  static N_INLINE(void, copyMem_E1xtACub5WcDa3vbrIXbwgsystem)(void* dest, void* source, NI size) {
  	void* T1_;
  	T1_ = (void*)0;
  	T1_ = memcpy(dest, source, ((size_t) (size)));
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, ssReadData_7P4Enb2Vt3iOCL5K9cnGqYw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	NI result;
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	NI TM_Ue7tnBcsL67VCiRfvt8q0A_14;
  	nimfr_("ssReadData", "streams.nim");
  	result = (NI)0;
  	nimln_(364, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(365, "streams.nim");
  	TM_Ue7tnBcsL67VCiRfvt8q0A_14 = subInt(((*s_2).data ? (*s_2).data->Sup.len : 0), (*s_2).pos);
  	result = ((bufLen <= (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_14)) ? bufLen : (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_14));
  	nimln_(366, "streams.nim");
  	{
  		NI TM_Ue7tnBcsL67VCiRfvt8q0A_15;
  		if (!(((NI) 0) < result)) goto LA3_;
  		nimln_(367, "streams.nim");
  		if ((NU)((*s_2).pos) > (NU)((*s_2).data->Sup.len)) raiseIndexError();
  		copyMem_E1xtACub5WcDa3vbrIXbwgsystem(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI)chckRange(result, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  		nimln_(368, "streams.nim");
  		TM_Ue7tnBcsL67VCiRfvt8q0A_15 = addInt((*s_2).pos, result);
  		(*s_2).pos = (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_15);
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		nimln_(370, "streams.nim");
  		result = ((NI) 0);
  	}
  	LA1_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, ssPeekData_7P4Enb2Vt3iOCL5K9cnGqYw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	NI result;
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	NI TM_Ue7tnBcsL67VCiRfvt8q0A_16;
  	nimfr_("ssPeekData", "streams.nim");
  	result = (NI)0;
  	nimln_(373, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(374, "streams.nim");
  	TM_Ue7tnBcsL67VCiRfvt8q0A_16 = subInt(((*s_2).data ? (*s_2).data->Sup.len : 0), (*s_2).pos);
  	result = ((bufLen <= (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_16)) ? bufLen : (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_16));
  	nimln_(375, "streams.nim");
  	{
  		if (!(((NI) 0) < result)) goto LA3_;
  		nimln_(376, "streams.nim");
  		if ((NU)((*s_2).pos) > (NU)((*s_2).data->Sup.len)) raiseIndexError();
  		copyMem_E1xtACub5WcDa3vbrIXbwgsystem(buffer, ((void*) ((&(*s_2).data->data[(*s_2).pos]))), ((NI)chckRange(result, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		nimln_(378, "streams.nim");
  		result = ((NI) 0);
  	}
  	LA1_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, ssWriteData_mrtMhMXvYVpi5Svw9bWueBw)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	NI TM_Ue7tnBcsL67VCiRfvt8q0A_19;
  	nimfr_("ssWriteData", "streams.nim");
  {	nimln_(381, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(382, "streams.nim");
  	{
  		if (!(bufLen <= ((NI) 0))) goto LA3_;
  		nimln_(383, "streams.nim");
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	nimln_(384, "streams.nim");
  	{
  		NI TM_Ue7tnBcsL67VCiRfvt8q0A_17;
  		NI TM_Ue7tnBcsL67VCiRfvt8q0A_18;
  		TM_Ue7tnBcsL67VCiRfvt8q0A_17 = addInt((*s_2).pos, bufLen);
  		if (!(((*s_2).data ? (*s_2).data->Sup.len : 0) < (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_17))) goto LA7_;
  		nimln_(385, "streams.nim");
  		TM_Ue7tnBcsL67VCiRfvt8q0A_18 = addInt((*s_2).pos, bufLen);
  		(*s_2).data = setLengthStr((*s_2).data, ((NI)chckRange((NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_18), ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	}
  	LA7_: ;
  	nimln_(386, "streams.nim");
  	if ((NU)((*s_2).pos) > (NU)((*s_2).data->Sup.len)) raiseIndexError();
  	copyMem_E1xtACub5WcDa3vbrIXbwgsystem(((void*) ((&(*s_2).data->data[(*s_2).pos]))), buffer, ((NI)chckRange(bufLen, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	nimln_(387, "streams.nim");
  	TM_Ue7tnBcsL67VCiRfvt8q0A_19 = addInt((*s_2).pos, bufLen);
  	(*s_2).pos = (NI)(TM_Ue7tnBcsL67VCiRfvt8q0A_19);
  	}BeforeRet_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, ssClose_qQbp4Nsuc4ou9bqUUbaqJ6A)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* s_2;
  	NimStringDesc* T1_;
  	nimfr_("ssClose", "streams.nim");
  	nimln_(390, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_lGsM0FdhfyxyplfYoMsgFQ_));
  	s_2 = ((tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) (s));
  	nimln_(391, "streams.nim");
  	T1_ = (NimStringDesc*)0;
  	T1_ = (*s_2).data; (*s_2).data = copyStringRC1(NIM_NIL);
  	if (T1_) nimGCunrefNoCycle(T1_);
  	popFrame();
  }
  static N_NIMCALL(void, Marker_tyRef_oa89b9cIODFBktXa1hHFh9c3Q)(void* p, NI op) {
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* a;
  	a = (tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*)p;
  	nimGCvisit((void*)(*a).data, op);
  }
  
  N_LIB_PRIVATE N_NIMCALL(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*, newStringStream_0dQ0A0pna0dG9cMxo4TbLKQ)(NimStringDesc* s) {
  	tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ* result;
  	NimStringDesc* T1_;
  	nimfr_("newStringStream", "streams.nim");
  	result = (tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*)0;
  	nimln_(395, "streams.nim");
  	result = (tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*) newObj((&NTI_oa89b9cIODFBktXa1hHFh9c3Q_), sizeof(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ));
  	(*result).Sup.Sup.m_type = (&NTI_lGsM0FdhfyxyplfYoMsgFQ_);
  	nimln_(396, "streams.nim");
  	T1_ = (NimStringDesc*)0;
  	T1_ = (*result).data; (*result).data = copyStringRC1(s);
  	if (T1_) nimGCunrefNoCycle(T1_);
  	nimln_(397, "streams.nim");
  	(*result).pos = ((NI) 0);
  	nimln_(398, "streams.nim");
  	(*result).Sup.closeImpl = ssClose_qQbp4Nsuc4ou9bqUUbaqJ6A;
  	nimln_(399, "streams.nim");
  	(*result).Sup.atEndImpl = ssAtEnd_acl02gpfK9cCD8utiP6NxdA;
  	nimln_(400, "streams.nim");
  	(*result).Sup.setPositionImpl = ssSetPosition_C0SEQJWfadg6oK29b8FuMZg;
  	nimln_(401, "streams.nim");
  	(*result).Sup.getPositionImpl = ssGetPosition_ht6Fg1Bmvqnb8CP4WayC2A;
  	nimln_(402, "streams.nim");
  	(*result).Sup.readDataImpl = ssReadData_7P4Enb2Vt3iOCL5K9cnGqYw;
  	nimln_(403, "streams.nim");
  	(*result).Sup.peekDataImpl = ssPeekData_7P4Enb2Vt3iOCL5K9cnGqYw_2;
  	nimln_(404, "streams.nim");
  	(*result).Sup.writeDataImpl = ssWriteData_mrtMhMXvYVpi5Svw9bWueBw;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, fsClose_qQbp4Nsuc4ou9bqUUbaqJ6A_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	nimfr_("fsClose", "streams.nim");
  	nimln_(413, "streams.nim");
  	{
  		nimln_(398, "system.nim");
  		nimln_(413, "streams.nim");
  		if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  		if (!!(((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f == NIM_NIL))) goto LA3_;
  		nimln_(414, "streams.nim");
  		if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  		close_BWnr8V7RERYno9bIdPmw8Hw_2((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f);
  		if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  		nimln_(415, "streams.nim");
  		(*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f = NIM_NIL;
  	}
  	LA3_: ;
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, fsFlush_qQbp4Nsuc4ou9bqUUbaqJ6A_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	nimfr_("fsFlush", "streams.nim");
  	nimln_(416, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  	flushFile_BWnr8V7RERYno9bIdPmw8Hw_3((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f);
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, fsAtEnd_acl02gpfK9cCD8utiP6NxdA_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NIM_BOOL result;
  	nimfr_("fsAtEnd", "streams.nim");
  {	result = (NIM_BOOL)0;
  	nimln_(417, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  	result = endOfFile_OpxMRqWNQzmofyVQsNQqVA((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f);
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, fsSetPosition_C0SEQJWfadg6oK29b8FuMZg_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, NI pos) {
  	nimfr_("fsSetPosition", "streams.nim");
  	nimln_(418, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  	setFilePos_YAngY19cHH2nZ9bqhMgAHz8Q((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f, ((NI64) (pos)), ((tyEnum_FileSeekPos_I9aQjuvWxs8BspGbxwsngWw) 0));
  	popFrame();
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, fsGetPosition_ht6Fg1Bmvqnb8CP4WayC2A_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s) {
  	NI result;
  	NI64 T1_;
  	nimfr_("fsGetPosition", "streams.nim");
  {	result = (NI)0;
  	nimln_(419, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  	T1_ = (NI64)0;
  	T1_ = getFilePos_XePgC9ccBXCgb9bEHXZpnMqA_2((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f);
  	result = ((NI) (T1_));
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, fsReadData_7P4Enb2Vt3iOCL5K9cnGqYw_3)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	NI result;
  	nimfr_("fsReadData", "streams.nim");
  	result = (NI)0;
  	nimln_(422, "streams.nim");
  	if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  	result = readBuffer_1qjbrvfnPD4PaIieHVDvhw((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f, buffer, ((NI)chckRange(bufLen, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(NI, fsPeekData_7P4Enb2Vt3iOCL5K9cnGqYw_4)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	NI volatile result;
  	NI pos;
  	TSafePoint TM_Ue7tnBcsL67VCiRfvt8q0A_20;
  	nimfr_("fsPeekData", "streams.nim");
  	result = (NI)0;
  	nimln_(425, "streams.nim");
  	pos = fsGetPosition_ht6Fg1Bmvqnb8CP4WayC2A_2(s);
  	nimln_(426, "streams.nim");
  	pushSafePoint(&TM_Ue7tnBcsL67VCiRfvt8q0A_20);
  	TM_Ue7tnBcsL67VCiRfvt8q0A_20.status = _setjmp(TM_Ue7tnBcsL67VCiRfvt8q0A_20.context);
  	if (TM_Ue7tnBcsL67VCiRfvt8q0A_20.status == 0) {
  		nimln_(427, "streams.nim");
  		if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  		result = readBuffer_1qjbrvfnPD4PaIieHVDvhw((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f, buffer, ((NI)chckRange(bufLen, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  		popSafePoint();
  	}
  	else {
  		popSafePoint();
  		setFrame((TFrame*)&FR_);
  	}
  	{
  		nimln_(426, "streams.nim");
  		fsSetPosition_C0SEQJWfadg6oK29b8FuMZg_2(s, pos);
  	}
  	if (TM_Ue7tnBcsL67VCiRfvt8q0A_20.status != 0) reraiseException();
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, fsWriteData_mrtMhMXvYVpi5Svw9bWueBw_2)(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* s, void* buffer, NI bufLen) {
  	nimfr_("fsWriteData", "streams.nim");
  	nimln_(430, "streams.nim");
  	{
  		NI T3_;
  		tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ* T6_;
  		nimln_(398, "system.nim");
  		nimln_(430, "streams.nim");
  		if (s) chckObj((*s).Sup.m_type, (&NTI_qoDM8xYRV40zbhS9acPNT9bw_));
  		T3_ = (NI)0;
  		T3_ = writeBuffer_1qjbrvfnPD4PaIieHVDvhw_2((*((tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) (s))).f, buffer, ((NI)chckRange(bufLen, ((NI) 0), ((NI) IL64(9223372036854775807)))));
  		if (!!((T3_ == bufLen))) goto LA4_;
  		nimln_(431, "streams.nim");
  		T6_ = (tyObject_IOError_9czoZw3pzPyrBmb5zTHY1OQ*)0;
  		T6_ = newEIO_lOrpXone7dPkEAOURnfgBw(((NimStringDesc*) &TM_Ue7tnBcsL67VCiRfvt8q0A_21));
  		raiseException((Exception*)T6_, "IOError");
  	}
  	LA4_: ;
  	popFrame();
  }
  static N_NIMCALL(void, Marker_tyRef_Z018yRjOOerOKfp9aM3JSOg)(void* p, NI op) {
  	tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw* a;
  	a = (tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*)p;
  }
  
  N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*, newFileStream_j9aOzR9a9bXMSUnTXiGmXXGqQ)(FILE* f) {
  	tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw* result;
  	nimfr_("newFileStream", "streams.nim");
  	result = (tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*)0;
  	nimln_(435, "streams.nim");
  	result = (tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*) newObj((&NTI_Z018yRjOOerOKfp9aM3JSOg_), sizeof(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw));
  	(*result).Sup.Sup.m_type = (&NTI_qoDM8xYRV40zbhS9acPNT9bw_);
  	nimln_(436, "streams.nim");
  	(*result).f = f;
  	nimln_(437, "streams.nim");
  	(*result).Sup.closeImpl = fsClose_qQbp4Nsuc4ou9bqUUbaqJ6A_2;
  	nimln_(438, "streams.nim");
  	(*result).Sup.atEndImpl = fsAtEnd_acl02gpfK9cCD8utiP6NxdA_2;
  	nimln_(439, "streams.nim");
  	(*result).Sup.setPositionImpl = fsSetPosition_C0SEQJWfadg6oK29b8FuMZg_2;
  	nimln_(440, "streams.nim");
  	(*result).Sup.getPositionImpl = fsGetPosition_ht6Fg1Bmvqnb8CP4WayC2A_2;
  	nimln_(441, "streams.nim");
  	(*result).Sup.readDataImpl = fsReadData_7P4Enb2Vt3iOCL5K9cnGqYw_3;
  	nimln_(442, "streams.nim");
  	(*result).Sup.peekDataImpl = fsPeekData_7P4Enb2Vt3iOCL5K9cnGqYw_4;
  	nimln_(443, "streams.nim");
  	(*result).Sup.writeDataImpl = fsWriteData_mrtMhMXvYVpi5Svw9bWueBw_2;
  	nimln_(444, "streams.nim");
  	(*result).Sup.flushImpl = fsFlush_qQbp4Nsuc4ou9bqUUbaqJ6A_3;
  	popFrame();
  	return result;
  }
  
  N_LIB_PRIVATE N_NIMCALL(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*, newFileStream_9argyMqCIlB1KDaxUuYVcmw)(NimStringDesc* filename, tyEnum_FileMode_fVUBHvW79bXUw1j55Oo9avSQ mode, NI bufSize) {
  	tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw* result;
  	FILE* f;
  	nimfr_("newFileStream", "streams.nim");
  	result = (tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*)0;
  	f = (FILE*)0;
  	nimln_(451, "streams.nim");
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = open_sEp0GH2306oGo9bqBpj5oTQ(&f, filename, mode, bufSize);
  		if (!T3_) goto LA4_;
  		result = newFileStream_j9aOzR9a9bXMSUnTXiGmXXGqQ(f);
  	}
  	LA4_: ;
  	popFrame();
  	return result;
  }
  static N_NIMCALL(void, Marker_tyRef_r3Wc5tOoxP8rz1DvGVTUvw)(void* p, NI op) {
  	tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ* a;
  	a = (tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ*)p;
  }
  NIM_EXTERNC N_NOINLINE(void, stdlib_streamsInit000)(void) {
  	nimfr_("streams", "streams.nim");
  	popFrame();
  }
  
  NIM_EXTERNC N_NOINLINE(void, stdlib_streamsDatInit000)(void) {
  static TNimNode* TM_Ue7tnBcsL67VCiRfvt8q0A_12[8];
  static TNimNode* TM_Ue7tnBcsL67VCiRfvt8q0A_13[2];
  static TNimNode TM_Ue7tnBcsL67VCiRfvt8q0A_0[13];
  NTI_RShkcoDOPnoCVhtpN1hDPQ_.size = sizeof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ);
  NTI_RShkcoDOPnoCVhtpN1hDPQ_.kind = 17;
  NTI_RShkcoDOPnoCVhtpN1hDPQ_.base = (&NTI_13RNkKqUOX1TtorOUlKtqA_);
  NTI_RShkcoDOPnoCVhtpN1hDPQ_.flags = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[0] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[1];
  NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_.size = sizeof(tyProc_cnkJEp9bna8U6yi9aVW9cAJ0Q);
  NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_.kind = 25;
  NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_.base = 0;
  NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_.flags = 3;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[1].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[1].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, closeImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[1].typ = (&NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[1].name = "closeImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[1] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[2];
  NTI_KjFcmLOhf4VQvVcyLJWXZw_.size = sizeof(tyProc_KjFcmLOhf4VQvVcyLJWXZw);
  NTI_KjFcmLOhf4VQvVcyLJWXZw_.kind = 25;
  NTI_KjFcmLOhf4VQvVcyLJWXZw_.base = 0;
  NTI_KjFcmLOhf4VQvVcyLJWXZw_.flags = 3;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[2].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[2].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, atEndImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[2].typ = (&NTI_KjFcmLOhf4VQvVcyLJWXZw_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[2].name = "atEndImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[2] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[3];
  NTI_jlOYFw9cHausuCbPoWx2iiA_.size = sizeof(tyProc_jlOYFw9cHausuCbPoWx2iiA);
  NTI_jlOYFw9cHausuCbPoWx2iiA_.kind = 25;
  NTI_jlOYFw9cHausuCbPoWx2iiA_.base = 0;
  NTI_jlOYFw9cHausuCbPoWx2iiA_.flags = 3;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[3].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[3].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, setPositionImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[3].typ = (&NTI_jlOYFw9cHausuCbPoWx2iiA_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[3].name = "setPositionImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[3] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[4];
  NTI_Xzm85qBLb9cf9cu8VOfAr8PQ_.size = sizeof(tyProc_Xzm85qBLb9cf9cu8VOfAr8PQ);
  NTI_Xzm85qBLb9cf9cu8VOfAr8PQ_.kind = 25;
  NTI_Xzm85qBLb9cf9cu8VOfAr8PQ_.base = 0;
  NTI_Xzm85qBLb9cf9cu8VOfAr8PQ_.flags = 3;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[4].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[4].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, getPositionImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[4].typ = (&NTI_Xzm85qBLb9cf9cu8VOfAr8PQ_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[4].name = "getPositionImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[4] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[5];
  NTI_tjaJtoUzLe1BMUbItlcGhQ_.size = sizeof(tyProc_tjaJtoUzLe1BMUbItlcGhQ);
  NTI_tjaJtoUzLe1BMUbItlcGhQ_.kind = 25;
  NTI_tjaJtoUzLe1BMUbItlcGhQ_.base = 0;
  NTI_tjaJtoUzLe1BMUbItlcGhQ_.flags = 3;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[5].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[5].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, readDataImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[5].typ = (&NTI_tjaJtoUzLe1BMUbItlcGhQ_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[5].name = "readDataImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[5] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[6];
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[6].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[6].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, peekDataImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[6].typ = (&NTI_tjaJtoUzLe1BMUbItlcGhQ_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[6].name = "peekDataImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[6] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[7];
  NTI_b9bsIuILxTLVZHPvJBW187A_.size = sizeof(tyProc_b9bsIuILxTLVZHPvJBW187A);
  NTI_b9bsIuILxTLVZHPvJBW187A_.kind = 25;
  NTI_b9bsIuILxTLVZHPvJBW187A_.base = 0;
  NTI_b9bsIuILxTLVZHPvJBW187A_.flags = 3;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[7].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[7].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, writeDataImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[7].typ = (&NTI_b9bsIuILxTLVZHPvJBW187A_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[7].name = "writeDataImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_12[7] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[8];
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[8].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[8].offset = offsetof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ, flushImpl);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[8].typ = (&NTI_cnkJEp9bna8U6yi9aVW9cAJ0Q_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[8].name = "flushImpl";
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[0].len = 8; TM_Ue7tnBcsL67VCiRfvt8q0A_0[0].kind = 2; TM_Ue7tnBcsL67VCiRfvt8q0A_0[0].sons = &TM_Ue7tnBcsL67VCiRfvt8q0A_12[0];
  NTI_RShkcoDOPnoCVhtpN1hDPQ_.node = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[0];
  NTI_lGsM0FdhfyxyplfYoMsgFQ_.size = sizeof(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ);
  NTI_lGsM0FdhfyxyplfYoMsgFQ_.kind = 17;
  NTI_lGsM0FdhfyxyplfYoMsgFQ_.base = (&NTI_RShkcoDOPnoCVhtpN1hDPQ_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_13[0] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[10];
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[10].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[10].offset = offsetof(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ, data);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[10].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[10].name = "data";
  TM_Ue7tnBcsL67VCiRfvt8q0A_13[1] = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[11];
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[11].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[11].offset = offsetof(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ, pos);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[11].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[11].name = "pos";
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[9].len = 2; TM_Ue7tnBcsL67VCiRfvt8q0A_0[9].kind = 2; TM_Ue7tnBcsL67VCiRfvt8q0A_0[9].sons = &TM_Ue7tnBcsL67VCiRfvt8q0A_13[0];
  NTI_lGsM0FdhfyxyplfYoMsgFQ_.node = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[9];
  NTI_oa89b9cIODFBktXa1hHFh9c3Q_.size = sizeof(tyObject_StringStreamObj_lGsM0FdhfyxyplfYoMsgFQ*);
  NTI_oa89b9cIODFBktXa1hHFh9c3Q_.kind = 22;
  NTI_oa89b9cIODFBktXa1hHFh9c3Q_.base = (&NTI_lGsM0FdhfyxyplfYoMsgFQ_);
  NTI_oa89b9cIODFBktXa1hHFh9c3Q_.marker = Marker_tyRef_oa89b9cIODFBktXa1hHFh9c3Q;
  NTI_qoDM8xYRV40zbhS9acPNT9bw_.size = sizeof(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw);
  NTI_qoDM8xYRV40zbhS9acPNT9bw_.kind = 17;
  NTI_qoDM8xYRV40zbhS9acPNT9bw_.base = (&NTI_RShkcoDOPnoCVhtpN1hDPQ_);
  NTI_qoDM8xYRV40zbhS9acPNT9bw_.flags = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[12].kind = 1;
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[12].offset = offsetof(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw, f);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[12].typ = (&NTI_7BHnQsEj49a9c6QtudqWTo1w_);
  TM_Ue7tnBcsL67VCiRfvt8q0A_0[12].name = "f";
  NTI_qoDM8xYRV40zbhS9acPNT9bw_.node = &TM_Ue7tnBcsL67VCiRfvt8q0A_0[12];
  NTI_Z018yRjOOerOKfp9aM3JSOg_.size = sizeof(tyObject_FileStreamObj_qoDM8xYRV40zbhS9acPNT9bw*);
  NTI_Z018yRjOOerOKfp9aM3JSOg_.kind = 22;
  NTI_Z018yRjOOerOKfp9aM3JSOg_.base = (&NTI_qoDM8xYRV40zbhS9acPNT9bw_);
  NTI_Z018yRjOOerOKfp9aM3JSOg_.marker = Marker_tyRef_Z018yRjOOerOKfp9aM3JSOg;
  NTI_r3Wc5tOoxP8rz1DvGVTUvw_.size = sizeof(tyObject_StreamObj_RShkcoDOPnoCVhtpN1hDPQ*);
  NTI_r3Wc5tOoxP8rz1DvGVTUvw_.kind = 22;
  NTI_r3Wc5tOoxP8rz1DvGVTUvw_.base = (&NTI_RShkcoDOPnoCVhtpN1hDPQ_);
  NTI_r3Wc5tOoxP8rz1DvGVTUvw_.marker = Marker_tyRef_r3Wc5tOoxP8rz1DvGVTUvw;
  }
  
  