text: /* Generated by Nim Compiler v1.6.2 */
  #define NIM_INTBITS 64
  #define NIM_EmulateOverflowChecks
  
  #include "nimbase.h"
  #include <time.h>
  #include <string.h>
  #include <sys/select.h>
  #include <sys/types.h>
  #include <sys/time.h>
  #undef LANGUAGE_C
  #undef MIPSEB
  #undef MIPSEL
  #undef PPC
  #undef R3000
  #undef R4000
  #undef i386
  #undef linux
  #undef mips
  #undef near
  #undef far
  #undef powerpc
  #undef unix
  #define nimfr_(x, y)
  #define nimln_(x, y)
  typedef struct tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw;
  typedef struct tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q;
  typedef struct tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ;
  typedef struct NimStringDesc NimStringDesc;
  typedef struct TGenericSeq TGenericSeq;
  typedef struct TNimType TNimType;
  typedef struct TNimNode TNimNode;
  typedef struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A tyTuple__JfHvHzMrhKkWAUvQKe0i1A;
  typedef struct tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg;
  typedef struct RootObj RootObj;
  typedef struct tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw;
  typedef struct tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA;
  typedef struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ tySequence__6H5Oh5UUvVCLiakt9aTwtUQ;
  typedef struct tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ;
  typedef struct tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw;
  typedef struct tyTuple__XjuGlLf9cyYx66ViXrBCvPQ tyTuple__XjuGlLf9cyYx66ViXrBCvPQ;
  typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
  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 tyTuple__pfrdooyxJsC6cg34ebuBag tyTuple__pfrdooyxJsC6cg34ebuBag;
  typedef struct {
  N_NIMCALL_PTR(void, ClP_0) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q x, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result, void* ClE_0);
  void* ClE_0;
  } tyProc__7xnKxEC24cr3qZyj3gX32w;
  struct TGenericSeq {
  NI len;
  NI reserved;
  };
  struct NimStringDesc {
    TGenericSeq Sup;
  NIM_CHAR data[SEQ_DECL_SIZE];
  };
  struct tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw {
  tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromTimeImpl;
  tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromAdjTimeImpl;
  NimStringDesc* name;
  };
  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;
  NI align;
  tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
  tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
  TNimType* base;
  TNimNode* node;
  void* finalizer;
  tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
  tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
  };
  struct tyTuple__JfHvHzMrhKkWAUvQKe0i1A {
  void* Field0;
  tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg* Field1;
  };
  typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
  struct TNimNode {
  tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
  NI offset;
  TNimType* typ;
  NCSTRING name;
  NI len;
  TNimNode** sons;
  };
  struct RootObj {
  TNimType* m_type;
  };
  struct tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg {
    RootObj Sup;
  };
  typedef N_NIMCALL_PTR(void, tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ) (void);
  struct tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q {
  NI64 seconds;
  NI nanosecond;
  };
  typedef NU8 tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ;
  typedef NI64 tyArray__pDfjTbtkTNjmi9bTcaNV32Q[8];
  struct tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA {
  tySequence__6H5Oh5UUvVCLiakt9aTwtUQ* patterns;
  NimStringDesc* formatStr;
  };
  typedef NU8 tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ;
  typedef NU8 tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg;
  struct tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw {
    RootObj Sup;
  NI nanosecond;
  NI second;
  NI minute;
  NI hour;
  NI monthdayZero;
  NI monthZero;
  NI year;
  tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg weekday;
  NI yearday;
  NIM_BOOL isDst;
  tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* timezone;
  NI utcOffset;
  };
  typedef NimStringDesc* tyArray__3hurAvNmIXWWeqMzKryr2A[12];
  typedef NimStringDesc* tyArray__O9c55L7dGQruaGz5nJ2r4rA[7];
  struct tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ {
  tyArray__3hurAvNmIXWWeqMzKryr2A MMM;
  tyArray__3hurAvNmIXWWeqMzKryr2A MMMM;
  tyArray__O9c55L7dGQruaGz5nJ2r4rA ddd;
  tyArray__O9c55L7dGQruaGz5nJ2r4rA dddd;
  };
  typedef NU8 tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw;
  struct tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw {
  NI64 seconds;
  NI nanosecond;
  };
  struct tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ {
  tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time;
  NI utcOffset;
  NIM_BOOL isDst;
  };
  struct tyTuple__XjuGlLf9cyYx66ViXrBCvPQ {
  NI Field0;
  tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw Field1;
  NI Field2;
  };
  struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
  NI Field0;
  NI Field1;
  NI Field2;
  };
  typedef NI tyArray__Splpnswz3rudLg9bDsQoDXg[12];
  typedef N_CLOSURE_PTR(void, TM__6NbDwwj5FY059b1gz2AsAZQ_56) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q x, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result);
  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__SPr7N6UKfuF549bNPiUvSRw[256];
  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__SPr7N6UKfuF549bNPiUvSRw 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;
  NI zctThreshold;
  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_CLOSURE_PTR(void, TM__6NbDwwj5FY059b1gz2AsAZQ_57) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result, void* ClE_0);
  typedef N_CLOSURE_PTR(void, TM__6NbDwwj5FY059b1gz2AsAZQ_58) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result, void* ClE_0);
  struct tyTuple__pfrdooyxJsC6cg34ebuBag {
  NI Field0;
  NIM_BOOL Field1;
  };
  typedef N_CLOSURE_PTR(void, TM__6NbDwwj5FY059b1gz2AsAZQ_60) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result, void* ClE_0);
  typedef N_CLOSURE_PTR(void, TM__6NbDwwj5FY059b1gz2AsAZQ_61) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result, void* ClE_0);
  struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ {
    TGenericSeq Sup;
    NU8 data[SEQ_DECL_SIZE];
  };
  static N_NIMCALL(void, Marker_tyRef__HsJiUUcO9cHBdUCi0HwkSTA)(void* p, NI op);
  N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
  static N_NIMCALL(void, Marker_tyRef__9a5v4OQPlGqsA25ioN8hFYA)(void* p, NI op);
  static N_NIMCALL(void, TM__6NbDwwj5FY059b1gz2AsAZQ_4)(void);
  N_LIB_PRIVATE N_NIMCALL(void, nimRegisterThreadLocalMarker)(tyProc__T4eqaYlFJYZUv9aG9b1TV0bQ markerProc);
  static N_NIMCALL(void, TM__6NbDwwj5FY059b1gz2AsAZQ_5)(void);
  static N_INLINE(NF, toFloat__system_1702)(NI i);
  static N_INLINE(void, nimZeroMem)(void* p, NI size);
  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, initTime__pureZtimes_898)(NI64 unix_0, NI nanosecond);
  static N_INLINE(NI, convert__pureZtimes_446)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
  N_LIB_PRIVATE N_NIMCALL(void, formatPattern__pureZtimes_1871)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
  static N_INLINE(NI, monthday__pureZtimes_1115)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt);
  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
  N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuIntToStr)(NI x, NI minchars);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
  N_LIB_PRIVATE N_NIMCALL(tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw, month__pureZtimes_1121)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt);
  static N_INLINE(NI, convert__pureZtimes_638)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
  static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZtimes_1301)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone1, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone2);
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
  static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size);
  static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
  N_LIB_PRIVATE N_NIMCALL(void, inZone__pureZtimes_1315)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result);
  N_LIB_PRIVATE N_NIMCALL(void, initDateTime__pureZtimes_1218)(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* zt, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result);
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, ntSubTime)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q a, tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw b);
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, normalize__pureZtimes_999)(NI64 seconds, NI64 nanoseconds);
  static N_INLINE(NI64, convert__pureZtimes_379)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI64 quantity);
  N_LIB_PRIVATE N_NIMCALL(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw, initDuration__pureZtimes_369)(NI64 nanoseconds, NI64 microseconds, NI64 milliseconds, NI64 seconds, NI64 minutes, NI64 hours, NI64 days, NI64 weeks);
  N_LIB_PRIVATE N_NIMCALL(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw, normalize__pureZtimes_436)(NI64 seconds, NI64 nanoseconds);
  N_LIB_PRIVATE N_NIMCALL(NI64, floorDiv__pureZtimes_261)(NI64 x, NI64 y);
  N_LIB_PRIVATE N_NIMCALL(tyTuple__XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay__pureZtimes_190)(NI64 epochday);
  N_LIB_PRIVATE N_NIMCALL(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg, getDayOfWeek__pureZtimes_255)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
  static N_INLINE(void, assertValidDate__pureZtimes_142)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
  N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay__pureZtimes_153)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
  N_LIB_PRIVATE N_NIMCALL(NI, getDayOfYear__pureZtimes_230)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLeapYear__pureZtimes_135)(NI year);
  N_LIB_PRIVATE N_NIMCALL(void, zonedTimeFromTime__pureZtimes_1275)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, utc__pureZtimes_1444)(void);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone__pureZtimes_1245)(NimStringDesc* name, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromTimeImpl, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromAdjTimeImpl);
  N_LIB_PRIVATE N_NOINLINE(void*, newObj)(TNimType* typ, NI size);
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
  static N_INLINE(void, nimGCunrefNoCycle)(void* p);
  static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
  static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5294)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr);
  static N_INLINE(void, asgnRef)(void** dest, void* src);
  static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
  N_LIB_PRIVATE N_NIMCALL(void, utcTzInfo__pureZtimes_1438)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result);
  static N_INLINE(NF, toBiggestFloat__system_1705)(NI64 i);
  N_LIB_PRIVATE N_NIMCALL(void, local__pureZtimes_1472)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result);
  N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, local__pureZtimes_1458)(void);
  N_LIB_PRIVATE N_NIMCALL(void, localZonedTimeFromTime__pureZtimes_1411)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result);
  N_LIB_PRIVATE N_NIMCALL(tyTuple__pfrdooyxJsC6cg34ebuBag, getLocalOffsetAndDst__pureZtimes_1359)(NI64 unix_0);
  N_LIB_PRIVATE N_NIMCALL(NI64, clamp__pureZtimes_1372)(NI64 x, NI64 a, NI64 b);
  N_LIB_PRIVATE N_NIMCALL(NI64, toAdjUnix__pureZtimes_1343)(struct tm tm);
  N_LIB_PRIVATE N_NIMCALL(void, localZonedTimeFromAdjTime__pureZtimes_1416)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result);
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, getTime__pureZtimes_964)(void);
  N_LIB_PRIVATE TNimType NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_;
  N_LIB_PRIVATE TNimType NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_;
  N_LIB_PRIVATE TNimType NTIpointer__vr5DoT1jILTGdRlYv1OYpw_;
  extern TNimType NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_;
  N_LIB_PRIVATE TNimType NTIobject__diB2NTuAIWY0FO9c5IUJRGg_;
  N_LIB_PRIVATE TNimType NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_;
  extern TNimType NTIstring__77mFvmsOLKik79ci2hXkHEg_;
  N_LIB_PRIVATE TNimType NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_;
  N_LIB_PRIVATE NIM_CONST tyArray__pDfjTbtkTNjmi9bTcaNV32Q unitWeights__pureZtimes_112 = {IL64(1),
  IL64(1000),
  IL64(1000000),
  IL64(1000000000),
  IL64(60000000000),
  IL64(3600000000000),
  IL64(86400000000000),
  IL64(604800000000000)}
  ;
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_6, "12", 2);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_7, "P", 1);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_8, "A", 1);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_9, "PM", 2);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_10, "AM", 2);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_11, "Etc/UTC", 7);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_12, ":", 1);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_13, "BC", 2);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_14, "AD", 2);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_15, "Jan", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_16, "Feb", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_17, "Mar", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_18, "Apr", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_19, "May", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_20, "Jun", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_21, "Jul", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_22, "Aug", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_23, "Sep", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_24, "Oct", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_25, "Nov", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_26, "Dec", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_27, "January", 7);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_28, "February", 8);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_29, "March", 5);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_30, "April", 5);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_31, "June", 4);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_32, "July", 4);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_33, "August", 6);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_34, "September", 9);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_35, "October", 7);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_36, "November", 8);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_37, "December", 8);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_38, "Mon", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_39, "Tue", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_40, "Wed", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_41, "Thu", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_42, "Fri", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_43, "Sat", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_44, "Sun", 3);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_45, "Monday", 6);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_46, "Tuesday", 7);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_47, "Wednesday", 9);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_48, "Thursday", 8);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_49, "Friday", 6);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_50, "Saturday", 8);
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_51, "Sunday", 6);
  N_LIB_PRIVATE NIM_CONST tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ DefaultLocale__pureZtimes_1636 = {{((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_15),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_16),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_17),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_18),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_19),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_20),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_21),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_22),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_23),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_24),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_25),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_26)}
  , {((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_27),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_28),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_29),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_30),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_19),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_31),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_32),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_33),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_34),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_35),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_36),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_37)}
  , {((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_38),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_39),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_40),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_41),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_42),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_43),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_44)}
  , {((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_45),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_46),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_47),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_48),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_49),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_50),
  ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_51)}
  }
  ;
  N_LIB_PRIVATE TNimType NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_;
  N_LIB_PRIVATE TNimType NTIint__PpavWgyrx5odXyR89aNlcWA_;
  N_LIB_PRIVATE TNimType NTIint__rUuqTvFmkC6KKRqDAazGEA_;
  N_LIB_PRIVATE TNimType NTIint__LBgXxpmYOpS8xroRZgNvbg_;
  N_LIB_PRIVATE TNimType NTIint__Gz6vwaK0PZQIDIwfuvKsOg_;
  extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
  N_LIB_PRIVATE TNimType NTIweekday__SVfemTA9aCOyua2TJYa6yBg_;
  N_LIB_PRIVATE TNimType NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_;
  extern TNimType NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_;
  N_LIB_PRIVATE NIM_CONST tyArray__Splpnswz3rudLg9bDsQoDXg daysUntilMonthLeap__pureZtimes_236 = {((NI) 0),
  ((NI) 31),
  ((NI) 60),
  ((NI) 91),
  ((NI) 121),
  ((NI) 152),
  ((NI) 182),
  ((NI) 213),
  ((NI) 244),
  ((NI) 274),
  ((NI) 305),
  ((NI) 335)}
  ;
  N_LIB_PRIVATE NIM_CONST tyArray__Splpnswz3rudLg9bDsQoDXg daysUntilMonth__pureZtimes_235 = {((NI) 0),
  ((NI) 31),
  ((NI) 59),
  ((NI) 90),
  ((NI) 120),
  ((NI) 151),
  ((NI) 181),
  ((NI) 212),
  ((NI) 243),
  ((NI) 273),
  ((NI) 304),
  ((NI) 334)}
  ;
  STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_59, "LOCAL", 5);
  N_LIB_PRIVATE tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* utcInstance__pureZtimes_1441;
  N_LIB_PRIVATE tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* localInstance__pureZtimes_1442;
  extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5247;
  static N_NIMCALL(void, Marker_tyRef__HsJiUUcO9cHBdUCi0HwkSTA)(void* p, NI op) {
  	tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg* a;
  	a = (tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg*)p;
  }
  static N_NIMCALL(void, Marker_tyRef__9a5v4OQPlGqsA25ioN8hFYA)(void* p, NI op) {
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* a;
  	a = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)p;
  	nimGCvisit((void*)(*a).zonedTimeFromTimeImpl.ClE_0, op);
  	nimGCvisit((void*)(*a).zonedTimeFromAdjTimeImpl.ClE_0, op);
  	nimGCvisit((void*)(*a).name, op);
  }
  static N_NIMCALL(void, TM__6NbDwwj5FY059b1gz2AsAZQ_4)(void) {
  	nimGCvisit((void*)utcInstance__pureZtimes_1441, 0);
  }
  static N_NIMCALL(void, TM__6NbDwwj5FY059b1gz2AsAZQ_5)(void) {
  	nimGCvisit((void*)localInstance__pureZtimes_1442, 0);
  }
  static N_INLINE(NF, toFloat__system_1702)(NI i) {
  	NF result;
  	result = (NF)0;
  	result = ((NF) (i));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NF, cpuTime__pureZtimes_3613)(void) {
  	NF result;
  	NI T1_;
  	NF T2_;
  	NF T3_;
  	result = (NF)0;
  	T1_ = (NI)0;
  	T1_ = clock();
  	T2_ = (NF)0;
  	T2_ = toFloat__system_1702(T1_);
  	T3_ = (NF)0;
  	T3_ = toFloat__system_1702(CLOCKS_PER_SEC);
  	result = ((NF)(T2_) / (NF)(T3_));
  	return result;
  }
  static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
  	void* T1_;
  	T1_ = (void*)0;
  	T1_ = memset(a, v, ((size_t) (size)));
  }
  static N_INLINE(void, nimZeroMem)(void* p, NI size) {
  	nimSetMem__systemZmemory_7(p, ((int) 0), size);
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, initTime__pureZtimes_898)(NI64 unix_0, NI nanosecond) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
  	result.seconds = unix_0;
  	result.nanosecond = nanosecond;
  	return result;
  }
  static N_INLINE(NI, convert__pureZtimes_446)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity) {
  	NI result;
  	result = (NI)0;
  	{
  		if (!(unitFrom < unitTo)) goto LA3_;
  		result = ((NI) ((NI64)(((NI64) (quantity)) / (NI64)(unitWeights__pureZtimes_112[(unitTo)- 0] / unitWeights__pureZtimes_112[(unitFrom)- 0]))));
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = ((NI) ((NI64)((NI64)(unitWeights__pureZtimes_112[(unitFrom)- 0] / unitWeights__pureZtimes_112[(unitTo)- 0]) * ((NI64) (quantity)))));
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, getTime__pureZtimes_964)(void) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
  	struct timeval a;
  	NI T1_;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
  	gettimeofday((&a), NIM_NIL);
  	T1_ = (NI)0;
  	T1_ = convert__pureZtimes_446(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((NI) (a.tv_usec)));
  	result = initTime__pureZtimes_898(((NI64) (a.tv_sec)), ((NI) (T1_)));
  	return result;
  }
  static N_INLINE(NI, monthday__pureZtimes_1115)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((*dt).monthdayZero));
  	return result;
  }
  static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
  	void* T1_;
  	T1_ = (void*)0;
  	T1_ = memcpy(dest, source, ((size_t) (size)));
  }
  static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
  	nimCopyMem(dest, source, size);
  }
  static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
  	{
  		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
  		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
  		(*dest).Sup.len += (*src).Sup.len;
  	}
  	LA3_: ;
  }
  N_LIB_PRIVATE N_NIMCALL(tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw, month__pureZtimes_1121)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
  	tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw result;
  	result = (tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw)0;
  	result = ((tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw) ((*dt).monthZero));
  	return result;
  }
  static N_INLINE(NI, convert__pureZtimes_638)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity) {
  	NI result;
  	result = (NI)0;
  	{
  		if (!(unitFrom < unitTo)) goto LA3_;
  		result = ((NI) ((NI64)(((NI64) (quantity)) / (NI64)(unitWeights__pureZtimes_112[(unitTo)- 0] / unitWeights__pureZtimes_112[(unitFrom)- 0]))));
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = ((NI) ((NI64)((NI64)(unitWeights__pureZtimes_112[(unitFrom)- 0] / unitWeights__pureZtimes_112[(unitTo)- 0]) * ((NI64) (quantity)))));
  	}
  	LA1_: ;
  	return result;
  }
  static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c) {
  	(*dest).data[(*dest).Sup.len] = c;
  	(*dest).data[(NI)((*dest).Sup.len + ((NI) 1))] = 0;
  	(*dest).Sup.len += ((NI) 1);
  }
  static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) {
  	int result;
  	result = (int)0;
  	result = memcmp(a, b, ((size_t) (size)));
  	return result;
  }
  static N_INLINE(NIM_BOOL, equalMem__system_1735)(void* a, void* b, NI size) {
  	NIM_BOOL result;
  	int T1_;
  	result = (NIM_BOOL)0;
  	T1_ = (int)0;
  	T1_ = nimCmpMem(a, b, size);
  	result = (T1_ == ((NI32) 0));
  	return result;
  }
  static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b) {
  	NIM_BOOL result;
  	NI alen;
  	NI blen;
  {	result = (NIM_BOOL)0;
  	alen = (a ? a->Sup.len : 0);
  	blen = (b ? b->Sup.len : 0);
  	{
  		if (!(alen == blen)) goto LA3_;
  		{
  			if (!(alen == ((NI) 0))) goto LA7_;
  			result = NIM_TRUE;
  			goto BeforeRet_;
  		}
  		LA7_: ;
  		result = equalMem__system_1735(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___pureZtimes_1301)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone1, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone2) {
  	NIM_BOOL result;
  {	result = (NIM_BOOL)0;
  	{
  		if (!(zone1 == zone2)) goto LA3_;
  		result = NIM_TRUE;
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	{
  		NIM_BOOL T7_;
  		T7_ = (NIM_BOOL)0;
  		T7_ = (zone1 == 0);
  		if (T7_) goto LA8_;
  		T7_ = (zone2 == 0);
  		LA8_: ;
  		if (!T7_) goto LA9_;
  		result = NIM_FALSE;
  		goto BeforeRet_;
  	}
  	LA9_: ;
  	result = eqStrings((*zone1).name, (*zone2).name);
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, formatPattern__pureZtimes_1871)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc) {
  	switch (pattern) {
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 0):
  	{
  		NI T2_;
  		NimStringDesc* T3_;
  		T2_ = (NI)0;
  		T2_ = monthday__pureZtimes_1115(dt);
  		T3_ = NIM_NIL;
  		T3_ = dollar___systemZdollars_3(((NI) (T2_)));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T3_ ? T3_->Sup.len : 0) + 0));
  appendString((*result), T3_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 1):
  	{
  		NI T5_;
  		NimStringDesc* T6_;
  		T5_ = (NI)0;
  		T5_ = monthday__pureZtimes_1115(dt);
  		T6_ = NIM_NIL;
  		T6_ = nsuIntToStr(((NI) (T5_)), ((NI) 2));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T6_ ? T6_->Sup.len : 0) + 0));
  appendString((*result), T6_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 2):
  	{
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).ddd[((*dt).weekday)- 0] ? (*loc).ddd[((*dt).weekday)- 0]->Sup.len : 0) + 0));
  appendString((*result), (*loc).ddd[((*dt).weekday)- 0]);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 3):
  	{
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).dddd[((*dt).weekday)- 0] ? (*loc).dddd[((*dt).weekday)- 0]->Sup.len : 0) + 0));
  appendString((*result), (*loc).dddd[((*dt).weekday)- 0]);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 4):
  	{
  		NimStringDesc* T10_;
  		T10_ = NIM_NIL;
  		{
  			if (!(((NI) ((*dt).hour)) == ((NI) 0))) goto LA13_;
  			T10_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_6));
  		}
  		goto LA11_;
  		LA13_: ;
  		{
  			if (!(((NI) 12) < ((NI) ((*dt).hour)))) goto LA16_;
  			T10_ = dollar___systemZdollars_3((NI)(((NI) ((*dt).hour)) - ((NI) 12)));
  		}
  		goto LA11_;
  		LA16_: ;
  		{
  			T10_ = dollar___systemZdollars_3(((NI) ((*dt).hour)));
  		}
  		LA11_: ;
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T10_ ? T10_->Sup.len : 0) + 0));
  appendString((*result), T10_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 5):
  	{
  		NimStringDesc* T20_;
  		T20_ = NIM_NIL;
  		{
  			if (!(((NI) ((*dt).hour)) == ((NI) 0))) goto LA23_;
  			T20_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_6));
  		}
  		goto LA21_;
  		LA23_: ;
  		{
  			if (!(((NI) 12) < ((NI) ((*dt).hour)))) goto LA26_;
  			T20_ = nsuIntToStr((NI)(((NI) ((*dt).hour)) - ((NI) 12)), ((NI) 2));
  		}
  		goto LA21_;
  		LA26_: ;
  		{
  			T20_ = nsuIntToStr(((NI) ((*dt).hour)), ((NI) 2));
  		}
  		LA21_: ;
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T20_ ? T20_->Sup.len : 0) + 0));
  appendString((*result), T20_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 6):
  	{
  		NimStringDesc* T30_;
  		T30_ = NIM_NIL;
  		T30_ = dollar___systemZdollars_3(((NI) ((*dt).hour)));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T30_ ? T30_->Sup.len : 0) + 0));
  appendString((*result), T30_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 7):
  	{
  		NimStringDesc* T32_;
  		T32_ = NIM_NIL;
  		T32_ = nsuIntToStr(((NI) ((*dt).hour)), ((NI) 2));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T32_ ? T32_->Sup.len : 0) + 0));
  appendString((*result), T32_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 8):
  	{
  		NimStringDesc* T34_;
  		T34_ = NIM_NIL;
  		T34_ = dollar___systemZdollars_3(((NI) ((*dt).minute)));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T34_ ? T34_->Sup.len : 0) + 0));
  appendString((*result), T34_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 9):
  	{
  		NimStringDesc* T36_;
  		T36_ = NIM_NIL;
  		T36_ = nsuIntToStr(((NI) ((*dt).minute)), ((NI) 2));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T36_ ? T36_->Sup.len : 0) + 0));
  appendString((*result), T36_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 10):
  	{
  		tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw T38_;
  		NimStringDesc* T39_;
  		T38_ = (tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw)0;
  		T38_ = month__pureZtimes_1121(dt);
  		T39_ = NIM_NIL;
  		T39_ = dollar___systemZdollars_3(T38_);
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T39_ ? T39_->Sup.len : 0) + 0));
  appendString((*result), T39_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 11):
  	{
  		tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw T41_;
  		NimStringDesc* T42_;
  		T41_ = (tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw)0;
  		T41_ = month__pureZtimes_1121(dt);
  		T42_ = NIM_NIL;
  		T42_ = nsuIntToStr(T41_, ((NI) 2));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T42_ ? T42_->Sup.len : 0) + 0));
  appendString((*result), T42_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 12):
  	{
  		tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw T44_;
  		T44_ = (tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw)0;
  		T44_ = month__pureZtimes_1121(dt);
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).MMM[(T44_)- 1] ? (*loc).MMM[(T44_)- 1]->Sup.len : 0) + 0));
  appendString((*result), (*loc).MMM[(T44_)- 1]);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 13):
  	{
  		tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw T46_;
  		T46_ = (tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw)0;
  		T46_ = month__pureZtimes_1121(dt);
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), ((*loc).MMMM[(T46_)- 1] ? (*loc).MMMM[(T46_)- 1]->Sup.len : 0) + 0));
  appendString((*result), (*loc).MMMM[(T46_)- 1]);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 14):
  	{
  		NimStringDesc* T48_;
  		T48_ = NIM_NIL;
  		T48_ = dollar___systemZdollars_3(((NI) ((*dt).second)));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T48_ ? T48_->Sup.len : 0) + 0));
  appendString((*result), T48_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 15):
  	{
  		NimStringDesc* T50_;
  		T50_ = NIM_NIL;
  		T50_ = nsuIntToStr(((NI) ((*dt).second)), ((NI) 2));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T50_ ? T50_->Sup.len : 0) + 0));
  appendString((*result), T50_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 16):
  	{
  		NI T52_;
  		NimStringDesc* T53_;
  		T52_ = (NI)0;
  		T52_ = convert__pureZtimes_638(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 2), (*dt).nanosecond);
  		T53_ = NIM_NIL;
  		T53_ = nsuIntToStr(((NI) (T52_)), ((NI) 3));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T53_ ? T53_->Sup.len : 0) + 0));
  appendString((*result), T53_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 17):
  	{
  		NI T55_;
  		NimStringDesc* T56_;
  		T55_ = (NI)0;
  		T55_ = convert__pureZtimes_638(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 1), (*dt).nanosecond);
  		T56_ = NIM_NIL;
  		T56_ = nsuIntToStr(((NI) (T55_)), ((NI) 6));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T56_ ? T56_->Sup.len : 0) + 0));
  appendString((*result), T56_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 18):
  	{
  		NimStringDesc* T58_;
  		T58_ = NIM_NIL;
  		T58_ = nsuIntToStr(((NI) ((*dt).nanosecond)), ((NI) 9));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T58_ ? T58_->Sup.len : 0) + 0));
  appendString((*result), T58_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 19):
  	{
  		NimStringDesc* T60_;
  		T60_ = NIM_NIL;
  		{
  			if (!(((NI) 12) <= ((NI) ((*dt).hour)))) goto LA63_;
  			T60_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_7));
  		}
  		goto LA61_;
  		LA63_: ;
  		{
  			T60_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_8));
  		}
  		LA61_: ;
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T60_ ? T60_->Sup.len : 0) + 0));
  appendString((*result), T60_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 20):
  	{
  		NimStringDesc* T67_;
  		T67_ = NIM_NIL;
  		{
  			if (!(((NI) 12) <= ((NI) ((*dt).hour)))) goto LA70_;
  			T67_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_9));
  		}
  		goto LA68_;
  		LA70_: ;
  		{
  			T67_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_10));
  		}
  		LA68_: ;
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T67_ ? T67_->Sup.len : 0) + 0));
  appendString((*result), T67_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 21):
  	{
  		NI T74_;
  		NimStringDesc* T80_;
  		T74_ = (NI)0;
  		{
  			if (!((*dt).year <= ((NI) 0))) goto LA77_;
  			T74_ = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
  		}
  		goto LA75_;
  		LA77_: ;
  		{
  			T74_ = (*dt).year;
  		}
  		LA75_: ;
  		T80_ = NIM_NIL;
  		T80_ = nsuIntToStr((NI)(T74_ % ((NI) 100)), ((NI) 2));
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T80_ ? T80_->Sup.len : 0) + 0));
  appendString((*result), T80_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 22):
  	{
  		NI year;
  		{
  			if (!((*dt).year <= ((NI) 0))) goto LA84_;
  			year = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
  		}
  		goto LA82_;
  		LA84_: ;
  		{
  			year = (*dt).year;
  		}
  		LA82_: ;
  		{
  			NimStringDesc* T91_;
  			if (!(year < ((NI) 10000))) goto LA89_;
  			T91_ = NIM_NIL;
  			T91_ = nsuIntToStr(year, ((NI) 4));
  			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T91_ ? T91_->Sup.len : 0) + 0));
  appendString((*result), T91_);
  		}
  		goto LA87_;
  		LA89_: ;
  		{
  			NimStringDesc* T93_;
  			NimStringDesc* T94_;
  			T93_ = NIM_NIL;
  			T94_ = NIM_NIL;
  			T94_ = dollar___systemZdollars_3(year);
  			T93_ = rawNewString((T94_ ? T94_->Sup.len : 0) + 1);
  appendChar(T93_, 43);
  appendString(T93_, T94_);
  			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T93_ ? T93_->Sup.len : 0) + 0));
  appendString((*result), T93_);
  		}
  		LA87_: ;
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 23):
  	{
  		{
  			NimStringDesc* T100_;
  			if (!((*dt).year < ((NI) 1))) goto LA98_;
  			T100_ = NIM_NIL;
  			T100_ = dollar___systemZdollars_3((NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1)));
  			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T100_ ? T100_->Sup.len : 0) + 0));
  appendString((*result), T100_);
  		}
  		goto LA96_;
  		LA98_: ;
  		{
  			NimStringDesc* T102_;
  			T102_ = NIM_NIL;
  			T102_ = dollar___systemZdollars_3((*dt).year);
  			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T102_ ? T102_->Sup.len : 0) + 0));
  appendString((*result), T102_);
  		}
  		LA96_: ;
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 24):
  	{
  		NI year_2;
  		year_2 = (*dt).year;
  		{
  			NIM_BOOL T106_;
  			NimStringDesc* T110_;
  			T106_ = (NIM_BOOL)0;
  			T106_ = (year_2 < ((NI) 10000));
  			if (T106_) goto LA107_;
  			T106_ = (year_2 < ((NI) 0));
  			LA107_: ;
  			if (!T106_) goto LA108_;
  			T110_ = NIM_NIL;
  			T110_ = nsuIntToStr(year_2, ((NI) 4));
  			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T110_ ? T110_->Sup.len : 0) + 0));
  appendString((*result), T110_);
  		}
  		goto LA104_;
  		LA108_: ;
  		{
  			NimStringDesc* T112_;
  			NimStringDesc* T113_;
  			T112_ = NIM_NIL;
  			T113_ = NIM_NIL;
  			T113_ = dollar___systemZdollars_3(year_2);
  			T112_ = rawNewString((T113_ ? T113_->Sup.len : 0) + 1);
  appendChar(T112_, 43);
  appendString(T112_, T113_);
  			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T112_ ? T112_->Sup.len : 0) + 0));
  appendString((*result), T112_);
  		}
  		LA104_: ;
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 25):
  	{
  		NimStringDesc* T115_;
  		T115_ = NIM_NIL;
  		T115_ = dollar___systemZdollars_3((*dt).year);
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T115_ ? T115_->Sup.len : 0) + 0));
  appendString((*result), T115_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 26):
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 27):
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 28):
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 29):
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 30):
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 31):
  	{
  		{
  			NIM_BOOL T119_;
  			NIM_BOOL T120_;
  			T119_ = (NIM_BOOL)0;
  			T120_ = (NIM_BOOL)0;
  			T120_ = eqeq___pureZtimes_1301((*dt).timezone, ((tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*) NIM_NIL));
  			T119_ = !(T120_);
  			if (!(T119_)) goto LA121_;
  			T119_ = eqStrings((*(*dt).timezone).name, ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_11));
  			LA121_: ;
  			if (!T119_) goto LA122_;
  			unsureAsgnRef((void**) (&(*result)), addChar((*result), 90));
  		}
  		goto LA117_;
  		LA122_: ;
  		{
  			NIM_CHAR T125_;
  			NI absOffset;
  			T125_ = (NIM_CHAR)0;
  			{
  				if (!(((NI) 0) <= ((NI64)-((*dt).utcOffset)))) goto LA128_;
  				T125_ = 43;
  			}
  			goto LA126_;
  			LA128_: ;
  			{
  				T125_ = 45;
  			}
  			LA126_: ;
  			unsureAsgnRef((void**) (&(*result)), addChar((*result), T125_));
  			absOffset = ((*dt).utcOffset > 0? ((*dt).utcOffset) : -((*dt).utcOffset));
  			switch (pattern) {
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 26):
  			{
  				NimStringDesc* T132_;
  				T132_ = NIM_NIL;
  				T132_ = dollar___systemZdollars_3((NI)(absOffset / ((NI) 3600)));
  				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T132_ ? T132_->Sup.len : 0) + 0));
  appendString((*result), T132_);
  			}
  			break;
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 27):
  			{
  				NimStringDesc* T134_;
  				T134_ = NIM_NIL;
  				T134_ = nsuIntToStr((NI)(absOffset / ((NI) 3600)), ((NI) 2));
  				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T134_ ? T134_->Sup.len : 0) + 0));
  appendString((*result), T134_);
  			}
  			break;
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 28):
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 30):
  			{
  				NimStringDesc* h;
  				NimStringDesc* m;
  				NimStringDesc* sep;
  				NimStringDesc* T141_;
  				h = nsuIntToStr((NI)(absOffset / ((NI) 3600)), ((NI) 2));
  				m = nsuIntToStr((NI)((NI)(absOffset / ((NI) 60)) % ((NI) 60)), ((NI) 2));
  				{
  					if (!(pattern == ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 28))) goto LA138_;
  					sep = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_12));
  				}
  				goto LA136_;
  				LA138_: ;
  				{
  					sep = ((NimStringDesc*) NIM_NIL);
  				}
  				LA136_: ;
  				T141_ = NIM_NIL;
  				T141_ = rawNewString((h ? h->Sup.len : 0) + (sep ? sep->Sup.len : 0) + (m ? m->Sup.len : 0) + 0);
  appendString(T141_, h);
  appendString(T141_, sep);
  appendString(T141_, m);
  				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T141_ ? T141_->Sup.len : 0) + 0));
  appendString((*result), T141_);
  			}
  			break;
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 29):
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 31):
  			{
  				NI absOffset_2;
  				NimStringDesc* h_2;
  				NimStringDesc* m_2;
  				NimStringDesc* s;
  				NimStringDesc* sep_2;
  				NimStringDesc* T148_;
  				absOffset_2 = ((*dt).utcOffset > 0? ((*dt).utcOffset) : -((*dt).utcOffset));
  				h_2 = nsuIntToStr((NI)(absOffset_2 / ((NI) 3600)), ((NI) 2));
  				m_2 = nsuIntToStr((NI)((NI)(absOffset_2 / ((NI) 60)) % ((NI) 60)), ((NI) 2));
  				s = nsuIntToStr((NI)(absOffset_2 % ((NI) 60)), ((NI) 2));
  				{
  					if (!(pattern == ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 29))) goto LA145_;
  					sep_2 = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_12));
  				}
  				goto LA143_;
  				LA145_: ;
  				{
  					sep_2 = ((NimStringDesc*) NIM_NIL);
  				}
  				LA143_: ;
  				T148_ = NIM_NIL;
  				T148_ = rawNewString((h_2 ? h_2->Sup.len : 0) + (sep_2 ? sep_2->Sup.len : 0) + (m_2 ? m_2->Sup.len : 0) + (sep_2 ? sep_2->Sup.len : 0) + (s ? s->Sup.len : 0) + 0);
  appendString(T148_, h_2);
  appendString(T148_, sep_2);
  appendString(T148_, m_2);
  appendString(T148_, sep_2);
  appendString(T148_, s);
  				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T148_ ? T148_->Sup.len : 0) + 0));
  appendString((*result), T148_);
  			}
  			break;
  			default:
  			{
  			}
  			break;
  			}
  		}
  		LA117_: ;
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 32):
  	{
  		NimStringDesc* T151_;
  		T151_ = NIM_NIL;
  		{
  			if (!((*dt).year < ((NI) 1))) goto LA154_;
  			T151_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_13));
  		}
  		goto LA152_;
  		LA154_: ;
  		{
  			T151_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_14));
  		}
  		LA152_: ;
  		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T151_ ? T151_->Sup.len : 0) + 0));
  appendString((*result), T151_);
  	}
  	break;
  	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 33):
  	{
  	}
  	break;
  	}
  }
  N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__pureZtimes_2997)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc) {
  	NimStringDesc* result;
  	NI idx;
  	result = NIM_NIL;
  	result = ((NimStringDesc*) NIM_NIL);
  	idx = ((NI) 0);
  	{
  		while (1) {
  			NI T3_;
  			T3_ = ((f.patterns ? f.patterns->Sup.len : 0)-1);
  			if (!(idx <= T3_)) goto LA2;
  			switch (((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) (f.patterns->data[idx]))) {
  			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 33):
  			{
  				NU8 len;
  				idx += ((NI) 1);
  				len = f.patterns->data[idx];
  				{
  					NU8 i;
  					NI res;
  					i = (NU8)0;
  					res = ((NI) 1);
  					{
  						while (1) {
  							if (!(res <= ((NI) (len)))) goto LA7;
  							i = ((NU8) (res));
  							idx += ((NI) 1);
  							result = addChar(result, ((NIM_CHAR) (f.patterns->data[idx])));
  							res += ((NI) 1);
  						} LA7: ;
  					}
  				}
  				idx += ((NI) 1);
  			}
  			break;
  			default:
  			{
  				formatPattern__pureZtimes_1871(dt, ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) (f.patterns->data[idx])), (&result), loc);
  				idx += ((NI) 1);
  			}
  			break;
  			}
  		} LA2: ;
  	}
  	return result;
  }
  static N_INLINE(NI64, convert__pureZtimes_379)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI64 quantity) {
  	NI64 result;
  	result = (NI64)0;
  	{
  		if (!(unitFrom < unitTo)) goto LA3_;
  		result = (NI64)(quantity / (NI64)(unitWeights__pureZtimes_112[(unitTo)- 0] / unitWeights__pureZtimes_112[(unitFrom)- 0]));
  	}
  	goto LA1_;
  	LA3_: ;
  	{
  		result = (NI64)((NI64)(unitWeights__pureZtimes_112[(unitFrom)- 0] / unitWeights__pureZtimes_112[(unitTo)- 0]) * quantity);
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, normalize__pureZtimes_999)(NI64 seconds, NI64 nanoseconds) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
  	NI64 T1_;
  	NI64 nanosecond;
  	NI T2_;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
  	T1_ = (NI64)0;
  	T1_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
  	result.seconds = (NI64)(seconds + T1_);
  	T2_ = (NI)0;
  	T2_ = convert__pureZtimes_446(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
  	nanosecond = (NI64)(nanoseconds % ((NI64) (T2_)));
  	{
  		NI T7_;
  		if (!(nanosecond < IL64(0))) goto LA5_;
  		T7_ = (NI)0;
  		T7_ = convert__pureZtimes_446(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
  		nanosecond += ((NI64) (T7_));
  		result.seconds -= ((NI) 1);
  	}
  	LA5_: ;
  	result.nanosecond = ((NI) (((NI) (nanosecond))));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, ntSubTime)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q a, tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw b) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
  	result = normalize__pureZtimes_999((NI64)(a.seconds - b.seconds), ((NI64) ((NI)(((NI) (a.nanosecond)) - ((NI) (b.nanosecond))))));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw, normalize__pureZtimes_436)(NI64 seconds, NI64 nanoseconds) {
  	tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw result;
  	NI64 T1_;
  	NI64 nanosecond;
  	NI T2_;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw));
  	T1_ = (NI64)0;
  	T1_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
  	result.seconds = (NI64)(seconds + T1_);
  	T2_ = (NI)0;
  	T2_ = convert__pureZtimes_446(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
  	nanosecond = (NI64)(nanoseconds % ((NI64) (T2_)));
  	{
  		NI T7_;
  		if (!(nanosecond < IL64(0))) goto LA5_;
  		T7_ = (NI)0;
  		T7_ = convert__pureZtimes_446(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((NI) 1));
  		nanosecond += ((NI64) (T7_));
  		result.seconds -= ((NI) 1);
  	}
  	LA5_: ;
  	result.nanosecond = ((NI) (((NI) (nanosecond))));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw, initDuration__pureZtimes_369)(NI64 nanoseconds, NI64 microseconds, NI64 milliseconds, NI64 seconds, NI64 minutes, NI64 hours, NI64 days, NI64 weeks) {
  	tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw result;
  	NI64 seconds_2;
  	NI64 T1_;
  	NI64 T2_;
  	NI64 T3_;
  	NI64 T4_;
  	NI64 T5_;
  	NI64 T6_;
  	NI64 T7_;
  	NI64 T8_;
  	NI nanoseconds_2;
  	NI64 T9_;
  	NI64 T10_;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw));
  	T1_ = (NI64)0;
  	T1_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 7), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), weeks);
  	T2_ = (NI64)0;
  	T2_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 6), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), days);
  	T3_ = (NI64)0;
  	T3_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 4), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), minutes);
  	T4_ = (NI64)0;
  	T4_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 5), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), hours);
  	T5_ = (NI64)0;
  	T5_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), seconds);
  	T6_ = (NI64)0;
  	T6_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), milliseconds);
  	T7_ = (NI64)0;
  	T7_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), microseconds);
  	T8_ = (NI64)0;
  	T8_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
  	seconds_2 = (NI64)((NI64)((NI64)((NI64)((NI64)((NI64)((NI64)(T1_ + T2_) + T3_) + T4_) + T5_) + T6_) + T7_) + T8_);
  	T9_ = (NI64)0;
  	T9_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), (NI64)(milliseconds % IL64(1000)));
  	T10_ = (NI64)0;
  	T10_ = convert__pureZtimes_379(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), (NI64)(microseconds % IL64(1000000)));
  	nanoseconds_2 = ((NI) ((NI64)((NI64)(T9_ + T10_) + (NI64)(nanoseconds % IL64(1000000000)))));
  	result = normalize__pureZtimes_436(seconds_2, ((NI64) (nanoseconds_2)));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NI64, floorDiv__pureZtimes_261)(NI64 x, NI64 y) {
  	NI64 result;
  	NI64 r;
  	result = (NI64)0;
  	result = (NI64)(x / y);
  	r = (NI64)(x % y);
  	{
  		NIM_BOOL T3_;
  		NIM_BOOL T4_;
  		NIM_BOOL T7_;
  		T3_ = (NIM_BOOL)0;
  		T4_ = (NIM_BOOL)0;
  		T4_ = (IL64(0) < r);
  		if (!(T4_)) goto LA5_;
  		T4_ = (y < IL64(0));
  		LA5_: ;
  		T3_ = T4_;
  		if (T3_) goto LA6_;
  		T7_ = (NIM_BOOL)0;
  		T7_ = (r < IL64(0));
  		if (!(T7_)) goto LA8_;
  		T7_ = (IL64(0) < y);
  		LA8_: ;
  		T3_ = T7_;
  		LA6_: ;
  		if (!T3_) goto LA9_;
  		result -= ((NI) 1);
  	}
  	LA9_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyTuple__XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay__pureZtimes_190)(NI64 epochday) {
  	tyTuple__XjuGlLf9cyYx66ViXrBCvPQ result;
  	NI64 z;
  	NI64 era;
  	NI64 T1_;
  	NI64 doe;
  	NI64 yoe;
  	NI64 y;
  	NI64 doy;
  	NI64 mp;
  	NI64 d;
  	NI64 m;
  	NI T7_;
  	NI colontmp_;
  	tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw colontmp__2;
  	NI colontmp__3;
  {	nimZeroMem((void*)(&result), sizeof(tyTuple__XjuGlLf9cyYx66ViXrBCvPQ));
  	z = epochday;
  	z += ((NI) 719468);
  	T1_ = (NI64)0;
  	{
  		if (!(IL64(0) <= z)) goto LA4_;
  		T1_ = z;
  	}
  	goto LA2_;
  	LA4_: ;
  	{
  		T1_ = (NI64)(z - IL64(146096));
  	}
  	LA2_: ;
  	era = (NI64)(T1_ / IL64(146097));
  	doe = (NI64)(z - (NI64)(era * IL64(146097)));
  	yoe = (NI64)((NI64)((NI64)((NI64)(doe - (NI64)(doe / IL64(1460))) + (NI64)(doe / IL64(36524))) - (NI64)(doe / IL64(146096))) / IL64(365));
  	y = (NI64)(yoe + (NI64)(era * IL64(400)));
  	doy = (NI64)(doe - (NI64)((NI64)((NI64)(IL64(365) * yoe) + (NI64)(yoe / IL64(4))) - (NI64)(yoe / IL64(100))));
  	mp = (NI64)((NI64)((NI64)(IL64(5) * doy) + IL64(2)) / IL64(153));
  	d = (NI64)((NI64)(doy - (NI64)((NI64)((NI64)(IL64(153) * mp) + IL64(2)) / IL64(5))) + IL64(1));
  	T7_ = (NI)0;
  	{
  		if (!(mp < IL64(10))) goto LA10_;
  		T7_ = ((NI) 3);
  	}
  	goto LA8_;
  	LA10_: ;
  	{
  		T7_ = ((NI) -9);
  	}
  	LA8_: ;
  	m = (NI64)(mp + ((NI64) (T7_)));
  	colontmp_ = ((NI) (d));
  	colontmp__2 = ((tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw) (m));
  	colontmp__3 = ((NI) ((NI64)(y + ((NI64) ((m <= IL64(2)))))));
  	result.Field0 = colontmp_;
  	result.Field1 = colontmp__2;
  	result.Field2 = colontmp__3;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  static N_INLINE(void, assertValidDate__pureZtimes_142)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
  }
  N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay__pureZtimes_153)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
  	NI64 result;
  	tyTuple__47w2DboNEPf69aPgubZdd7Q T1_;
  	NI y;
  	NI m;
  	NI d;
  	NI era;
  	NI T6_;
  	NI yoe;
  	NI doy;
  	NI T12_;
  	NI doe;
  {	result = (NI64)0;
  	assertValidDate__pureZtimes_142(monthday, month, year);
  	T1_.Field0 = year;
  	T1_.Field1 = month;
  	T1_.Field2 = ((NI) (monthday));
  	y = T1_.Field0;
  	m = T1_.Field1;
  	d = T1_.Field2;
  	{
  		if (!(m <= ((NI) 2))) goto LA4_;
  		y -= ((NI) 1);
  	}
  	LA4_: ;
  	T6_ = (NI)0;
  	{
  		if (!(((NI) 0) <= y)) goto LA9_;
  		T6_ = y;
  	}
  	goto LA7_;
  	LA9_: ;
  	{
  		T6_ = (NI)(y - ((NI) 399));
  	}
  	LA7_: ;
  	era = (NI)(T6_ / ((NI) 400));
  	yoe = (NI)(y - (NI)(era * ((NI) 400)));
  	T12_ = (NI)0;
  	{
  		if (!(((NI) 2) < m)) goto LA15_;
  		T12_ = ((NI) -3);
  	}
  	goto LA13_;
  	LA15_: ;
  	{
  		T12_ = ((NI) 9);
  	}
  	LA13_: ;
  	doy = (NI)((NI)((NI)((NI)((NI)(((NI) 153) * (NI)(m + T12_)) + ((NI) 2)) / ((NI) 5)) + d) - ((NI) 1));
  	doe = (NI)((NI)((NI)((NI)(yoe * ((NI) 365)) + (NI)(yoe / ((NI) 4))) - (NI)(yoe / ((NI) 100))) + doy);
  	result = ((NI64) ((NI)((NI)((NI)(era * ((NI) 146097)) + doe) - ((NI) 719468))));
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg, getDayOfWeek__pureZtimes_255)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
  	tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg result;
  	NI64 days;
  	NI64 T1_;
  	NI64 weeks;
  	NI64 wd;
  	result = (tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg)0;
  	assertValidDate__pureZtimes_142(monthday, month, year);
  	T1_ = (NI64)0;
  	T1_ = toEpochDay__pureZtimes_153(monthday, month, year);
  	days = (NI64)(T1_ - IL64(3));
  	weeks = floorDiv__pureZtimes_261(days, ((NI) 7));
  	wd = (NI64)(days - (NI64)(weeks * IL64(7)));
  	{
  		if (!(wd == IL64(0))) goto LA4_;
  		result = ((tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg) 6);
  	}
  	goto LA2_;
  	LA4_: ;
  	{
  		result = ((tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg) ((NI64)(wd - IL64(1))));
  	}
  	LA2_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLeapYear__pureZtimes_135)(NI year) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	NIM_BOOL T3_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T1_ = ((NI)(year % ((NI) 4)) == ((NI) 0));
  	if (!(T1_)) goto LA2_;
  	T3_ = (NIM_BOOL)0;
  	T3_ = !(((NI)(year % ((NI) 100)) == ((NI) 0)));
  	if (T3_) goto LA4_;
  	T3_ = ((NI)(year % ((NI) 400)) == ((NI) 0));
  	LA4_: ;
  	T1_ = T3_;
  	LA2_: ;
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NI, getDayOfYear__pureZtimes_230)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
  	NI result;
  	result = (NI)0;
  	assertValidDate__pureZtimes_142(monthday, month, year);
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = isLeapYear__pureZtimes_135(year);
  		if (!T3_) goto LA4_;
  		result = ((NI) ((NI)((NI)(daysUntilMonthLeap__pureZtimes_236[(month)- 1] + ((NI) (monthday))) - ((NI) 1))));
  	}
  	goto LA1_;
  	LA4_: ;
  	{
  		result = ((NI) ((NI)((NI)(daysUntilMonth__pureZtimes_235[(month)- 1] + ((NI) (monthday))) - ((NI) 1))));
  	}
  	LA1_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, initDateTime__pureZtimes_1218)(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* zt, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime;
  	tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw T1_;
  	NI64 s;
  	NI64 epochday;
  	NI64 rem;
  	NI64 hour;
  	NI64 minute;
  	NI64 second;
  	tyTuple__XjuGlLf9cyYx66ViXrBCvPQ T2_;
  	NI d;
  	tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw m;
  	NI y;
  	T1_ = initDuration__pureZtimes_369(IL64(0), IL64(0), IL64(0), ((NI64) ((*zt).utcOffset)), IL64(0), IL64(0), IL64(0), IL64(0));
  	adjTime = ntSubTime((*zt).time, T1_);
  	s = adjTime.seconds;
  	epochday = floorDiv__pureZtimes_261(s, ((NI) 86400));
  	rem = (NI64)(s - (NI64)(epochday * IL64(86400)));
  	hour = (NI64)(rem / IL64(3600));
  	rem = (NI64)(rem - (NI64)(hour * IL64(3600)));
  	minute = (NI64)(rem / IL64(60));
  	rem = (NI64)(rem - (NI64)(minute * IL64(60)));
  	second = rem;
  	T2_ = fromEpochDay__pureZtimes_190(epochday);
  	d = T2_.Field0;
  	m = T2_.Field1;
  	y = T2_.Field2;
  	(*Result).monthdayZero = 0;
  	(*Result).monthZero = 0;
  	(*Result).year = 0;
  	(*Result).weekday = 0;
  	(*Result).isDst = 0;
  	unsureAsgnRef((void**)&(*Result).timezone, NIM_NIL);
  	(*Result).utcOffset = 0;
  	(*Result).Sup.m_type = (&NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_);
  	(*Result).year = y;
  	(*Result).monthZero = ((NI) (m));
  	(*Result).monthdayZero = ((NI) (d));
  	(*Result).hour = ((NI) (hour));
  	(*Result).minute = ((NI) (minute));
  	(*Result).second = ((NI) (second));
  	(*Result).nanosecond = (*zt).time.nanosecond;
  	(*Result).weekday = getDayOfWeek__pureZtimes_255(d, m, y);
  	(*Result).yearday = getDayOfYear__pureZtimes_230(d, m, y);
  	(*Result).isDst = (*zt).isDst;
  	unsureAsgnRef((void**) (&(*Result).timezone), zone);
  	(*Result).utcOffset = (*zt).utcOffset;
  }
  N_LIB_PRIVATE N_NIMCALL(void, zonedTimeFromTime__pureZtimes_1275)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result) {
  	(*zone).zonedTimeFromTimeImpl.ClE_0? (*zone).zonedTimeFromTimeImpl.ClP_0(time, Result, (*zone).zonedTimeFromTimeImpl.ClE_0):((TM__6NbDwwj5FY059b1gz2AsAZQ_56)((*zone).zonedTimeFromTimeImpl.ClP_0))(time, Result);
  }
  N_LIB_PRIVATE N_NIMCALL(void, inZone__pureZtimes_1315)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
  	tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ T1_;
  	nimZeroMem((void*)(&T1_), sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
  	zonedTimeFromTime__pureZtimes_1275(zone, time, (&T1_));
  	initDateTime__pureZtimes_1218((&T1_), zone, Result);
  }
  static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
  	NIM_BOOL result;
  	result = (NIM_BOOL)0;
  	result = ((NU64)(((NU) (x))) < (NU64)(((NU) (y))));
  	return result;
  }
  static N_INLINE(void, rtlAddZCT__system_5343)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	addZCT__system_5294((&gch__system_5247.zct), c);
  }
  static N_INLINE(void, decRef__system_5345)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
  	{
  		NIM_BOOL T3_;
  		T3_ = (NIM_BOOL)0;
  		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
  		if (!T3_) goto LA4_;
  		rtlAddZCT__system_5343(c);
  	}
  	LA4_: ;
  }
  static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5300)(void* usr) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
  	NI T1_;
  	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = (NI)0;
  	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 16));
  	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
  	return result;
  }
  static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
  	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
  	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  	T1_ = usrToCell__system_5300(p);
  	decRef__system_5345(T1_);
  }
  static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
  	NI result;
  	result = (NI)0;
  	result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y))))));
  	return result;
  }
  static N_INLINE(void, incRef__system_5338)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
  	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
  }
  static N_INLINE(void, asgnRef)(void** dest, void* src) {
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
  		if (!!((src == NIM_NIL))) goto LA3_;
  		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T5_ = usrToCell__system_5300(src);
  		incRef__system_5338(T5_);
  	}
  	LA3_: ;
  	{
  		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
  		if (!!(((*dest) == NIM_NIL))) goto LA8_;
  		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
  		T10_ = usrToCell__system_5300((*dest));
  		decRef__system_5345(T10_);
  	}
  	LA8_: ;
  	(*dest) = src;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone__pureZtimes_1245)(NimStringDesc* name, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromTimeImpl, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromAdjTimeImpl) {
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* result;
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* T1_;
  	NimStringDesc* T2_;
  	result = NIM_NIL;
  	T1_ = NIM_NIL;
  	T1_ = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*) newObj((&NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_), sizeof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw));
  	T2_ = NIM_NIL;
  	T2_ = (*T1_).name; (*T1_).name = copyStringRC1(name);
  	if (T2_) nimGCunrefNoCycle(T2_);
  	asgnRef((void**) (&(*T1_).zonedTimeFromTimeImpl.ClE_0), zonedTimeFromTimeImpl.ClE_0);
  	(*T1_).zonedTimeFromTimeImpl.ClP_0 = zonedTimeFromTimeImpl.ClP_0;
  	asgnRef((void**) (&(*T1_).zonedTimeFromAdjTimeImpl.ClE_0), zonedTimeFromAdjTimeImpl.ClE_0);
  	(*T1_).zonedTimeFromAdjTimeImpl.ClP_0 = zonedTimeFromAdjTimeImpl.ClP_0;
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, utcTzInfo__pureZtimes_1438)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result) {
  	nimZeroMem((void*)Result, sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
  	(*Result).utcOffset = ((NI) 0);
  	(*Result).isDst = NIM_FALSE;
  	(*Result).time = time;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, utc__pureZtimes_1444)(void) {
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* result;
  	result = NIM_NIL;
  	{
  		tyProc__7xnKxEC24cr3qZyj3gX32w T5_;
  		tyProc__7xnKxEC24cr3qZyj3gX32w T6_;
  		if (!(utcInstance__pureZtimes_1441 == 0)) goto LA3_;
  		nimZeroMem((void*)(&T5_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
  		T5_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_57) (utcTzInfo__pureZtimes_1438)); T5_.ClE_0 = NIM_NIL;
  		nimZeroMem((void*)(&T6_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
  		T6_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_58) (utcTzInfo__pureZtimes_1438)); T6_.ClE_0 = NIM_NIL;
  		asgnRef((void**) (&utcInstance__pureZtimes_1441), newTimezone__pureZtimes_1245(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_11), T5_, T6_));
  	}
  	LA3_: ;
  	result = utcInstance__pureZtimes_1441;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, utc__pureZtimes_1469)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* T1_;
  	T1_ = NIM_NIL;
  	T1_ = utc__pureZtimes_1444();
  	inZone__pureZtimes_1315(t, T1_, Result);
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, fromUnix__pureZtimes_905)(NI64 unix_0) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
  	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
  	result = initTime__pureZtimes_898(unix_0, ((NI) 0));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NI64, toUnix__pureZtimes_917)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t) {
  	NI64 result;
  	result = (NI64)0;
  	result = t.seconds;
  	return result;
  }
  static N_INLINE(NF, toBiggestFloat__system_1705)(NI64 i) {
  	NF result;
  	result = (NF)0;
  	result = ((NF) (i));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NF, epochTime__pureZtimes_3607)(void) {
  	NF result;
  	struct timeval a;
  	NF T1_;
  	NF T2_;
  	result = (NF)0;
  	gettimeofday((&a), NIM_NIL);
  	T1_ = (NF)0;
  	T1_ = toBiggestFloat__system_1705(((NI64) (a.tv_sec)));
  	T2_ = (NF)0;
  	T2_ = toBiggestFloat__system_1705(((NI64) (a.tv_usec)));
  	result = ((NF)(T1_) + (NF)(((NF)(T2_) * (NF)(0.000001))));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ntLtTime)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q a, tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q b) {
  	NIM_BOOL result;
  	NIM_BOOL T1_;
  	NIM_BOOL T3_;
  	result = (NIM_BOOL)0;
  	T1_ = (NIM_BOOL)0;
  	T1_ = (a.seconds < b.seconds);
  	if (T1_) goto LA2_;
  	T3_ = (NIM_BOOL)0;
  	T3_ = (a.seconds == b.seconds);
  	if (!(T3_)) goto LA4_;
  	T3_ = (((NI) (a.nanosecond)) < ((NI) (b.nanosecond)));
  	LA4_: ;
  	T1_ = T3_;
  	LA2_: ;
  	result = T1_;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NI64, clamp__pureZtimes_1372)(NI64 x, NI64 a, NI64 b) {
  	NI64 result;
  {	result = (NI64)0;
  	{
  		if (!(x < a)) goto LA3_;
  		result = a;
  		goto BeforeRet_;
  	}
  	LA3_: ;
  	{
  		if (!(b < x)) goto LA7_;
  		result = b;
  		goto BeforeRet_;
  	}
  	LA7_: ;
  	result = x;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(NI64, toAdjUnix__pureZtimes_1343)(struct tm tm) {
  	NI64 result;
  	NI64 epochDay;
  	result = (NI64)0;
  	epochDay = toEpochDay__pureZtimes_153(((NI) (tm.tm_mday)), ((tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw) ((NI32)(tm.tm_mon + ((NI32) 1)))), (NI)(((NI) (tm.tm_year)) + ((NI) 1900)));
  	result = (NI64)(epochDay * IL64(86400));
  	result += ((NI) ((NI32)(tm.tm_hour * ((NI32) 3600))));
  	result += ((NI) ((NI32)(tm.tm_min * ((NI32) 60))));
  	result += ((NI) (tm.tm_sec));
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(tyTuple__pfrdooyxJsC6cg34ebuBag, getLocalOffsetAndDst__pureZtimes_1359)(NI64 unix_0) {
  	tyTuple__pfrdooyxJsC6cg34ebuBag result;
  	long a;
  	NI64 T1_;
  	struct tm* tmPtr;
  	NI colontmp__3;
  	NIM_BOOL colontmp__4;
  {	nimZeroMem((void*)(&result), sizeof(tyTuple__pfrdooyxJsC6cg34ebuBag));
  	T1_ = (NI64)0;
  	T1_ = clamp__pureZtimes_1372(unix_0, (IL64(-9223372036854775807) - IL64(1)), IL64(9223372036854775807));
  	a = ((long) (T1_));
  	tmPtr = localtime((&a));
  	{
  		struct tm tm;
  		NI colontmp_;
  		NI64 T6_;
  		NIM_BOOL colontmp__2;
  		if (!!((tmPtr == 0))) goto LA4_;
  		tm = (*tmPtr);
  		T6_ = (NI64)0;
  		T6_ = toAdjUnix__pureZtimes_1343(tm);
  		colontmp_ = ((NI) ((NI64)(((NI64) (a)) - T6_)));
  		colontmp__2 = (((NI32) 0) < tm.tm_isdst);
  		result.Field0 = colontmp_;
  		result.Field1 = colontmp__2;
  		goto BeforeRet_;
  	}
  	LA4_: ;
  	colontmp__3 = ((NI) 0);
  	colontmp__4 = NIM_FALSE;
  	result.Field0 = colontmp__3;
  	result.Field1 = colontmp__4;
  	goto BeforeRet_;
  	}BeforeRet_: ;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, localZonedTimeFromTime__pureZtimes_1411)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result) {
  	tyTuple__pfrdooyxJsC6cg34ebuBag T1_;
  	NI offset;
  	NIM_BOOL dst;
  	nimZeroMem((void*)Result, sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
  	T1_ = getLocalOffsetAndDst__pureZtimes_1359(time.seconds);
  	offset = T1_.Field0;
  	dst = T1_.Field1;
  	(*Result).time = time;
  	(*Result).utcOffset = offset;
  	(*Result).isDst = dst;
  }
  N_LIB_PRIVATE N_NIMCALL(void, localZonedTimeFromAdjTime__pureZtimes_1416)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* Result) {
  	NI64 adjUnix;
  	NI64 past;
  	tyTuple__pfrdooyxJsC6cg34ebuBag T1_;
  	NI pastOffset;
  	NIM_BOOL _;
  	NI64 future;
  	tyTuple__pfrdooyxJsC6cg34ebuBag T2_;
  	NI futureOffset;
  	NIM_BOOL __2;
  	NI utcOffset;
  	NI64 utcUnix;
  	tyTuple__pfrdooyxJsC6cg34ebuBag T13_;
  	NI finalOffset;
  	NIM_BOOL dst;
  	nimZeroMem((void*)Result, sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
  	adjUnix = adjTime.seconds;
  	past = (NI64)(adjUnix - IL64(86400));
  	T1_ = getLocalOffsetAndDst__pureZtimes_1359(past);
  	pastOffset = T1_.Field0;
  	_ = T1_.Field1;
  	future = (NI64)(adjUnix + IL64(86400));
  	T2_ = getLocalOffsetAndDst__pureZtimes_1359(future);
  	futureOffset = T2_.Field0;
  	__2 = T2_.Field1;
  	utcOffset = (NI)0;
  	{
  		if (!(pastOffset == futureOffset)) goto LA5_;
  		utcOffset = pastOffset;
  	}
  	goto LA3_;
  	LA5_: ;
  	{
  		tyTuple__pfrdooyxJsC6cg34ebuBag T12_;
  		{
  			if (!(futureOffset < pastOffset)) goto LA10_;
  			adjUnix -= ((NI) 3600);
  		}
  		LA10_: ;
  		adjUnix += ((NI64) (pastOffset));
  		T12_ = getLocalOffsetAndDst__pureZtimes_1359(adjUnix);
  		utcOffset = T12_.Field0;
  	}
  	LA3_: ;
  	utcUnix = (NI64)(adjTime.seconds + ((NI64) (utcOffset)));
  	T13_ = getLocalOffsetAndDst__pureZtimes_1359(utcUnix);
  	finalOffset = T13_.Field0;
  	dst = T13_.Field1;
  	(*Result).time = initTime__pureZtimes_898(utcUnix, adjTime.nanosecond);
  	(*Result).utcOffset = finalOffset;
  	(*Result).isDst = dst;
  }
  N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, local__pureZtimes_1458)(void) {
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* result;
  	result = NIM_NIL;
  	{
  		tyProc__7xnKxEC24cr3qZyj3gX32w T5_;
  		tyProc__7xnKxEC24cr3qZyj3gX32w T6_;
  		if (!(localInstance__pureZtimes_1442 == 0)) goto LA3_;
  		nimZeroMem((void*)(&T5_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
  		T5_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_60) (localZonedTimeFromTime__pureZtimes_1411)); T5_.ClE_0 = NIM_NIL;
  		nimZeroMem((void*)(&T6_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
  		T6_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_61) (localZonedTimeFromAdjTime__pureZtimes_1416)); T6_.ClE_0 = NIM_NIL;
  		asgnRef((void**) (&localInstance__pureZtimes_1442), newTimezone__pureZtimes_1245(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_59), T5_, T6_));
  	}
  	LA3_: ;
  	result = localInstance__pureZtimes_1442;
  	return result;
  }
  N_LIB_PRIVATE N_NIMCALL(void, local__pureZtimes_1472)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
  	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* T1_;
  	T1_ = NIM_NIL;
  	T1_ = local__pureZtimes_1458();
  	inZone__pureZtimes_1315(t, T1_, Result);
  }
  N_LIB_PRIVATE N_NIMCALL(void, now__pureZtimes_1475)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
  	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q T1_;
  	T1_ = getTime__pureZtimes_964();
  	local__pureZtimes_1472(T1_, Result);
  }
  N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesInit000)(void) {
  {
  	TFrame FR_; FR_.len = 0;
  
  	nimRegisterThreadLocalMarker(TM__6NbDwwj5FY059b1gz2AsAZQ_4);
  
  
  	nimRegisterThreadLocalMarker(TM__6NbDwwj5FY059b1gz2AsAZQ_5);
  
  }/* preInitProc end */
  {
  }
  }
  
  N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesDatInit000)(void) {
  static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[3];
  static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[2];
  static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[12];
  static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_53_7[7];
  NI TM__6NbDwwj5FY059b1gz2AsAZQ_55;
  static char* NIM_CONST TM__6NbDwwj5FY059b1gz2AsAZQ_54[7] = {
  "Monday", 
  "Tuesday", 
  "Wednesday", 
  "Thursday", 
  "Friday", 
  "Saturday", 
  "Sunday"};
  static TNimNode TM__6NbDwwj5FY059b1gz2AsAZQ_0[29];
  NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_.size = sizeof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw);
  NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_.align = NIM_ALIGNOF(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw);
  NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_.kind = 18;
  NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_.base = 0;
  TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[0] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[1];
  NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
  NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_.align = NIM_ALIGNOF(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
  NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_.kind = 18;
  NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_.base = 0;
  TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[0] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[3];
  NTIpointer__vr5DoT1jILTGdRlYv1OYpw_.size = sizeof(void*);
  NTIpointer__vr5DoT1jILTGdRlYv1OYpw_.align = NIM_ALIGNOF(void*);
  NTIpointer__vr5DoT1jILTGdRlYv1OYpw_.kind = 26;
  NTIpointer__vr5DoT1jILTGdRlYv1OYpw_.base = 0;
  NTIpointer__vr5DoT1jILTGdRlYv1OYpw_.flags = 3;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].typ = (&NTIpointer__vr5DoT1jILTGdRlYv1OYpw_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].name = "Field0";
  TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[1] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[4];
  NTIobject__diB2NTuAIWY0FO9c5IUJRGg_.size = sizeof(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg);
  NTIobject__diB2NTuAIWY0FO9c5IUJRGg_.align = NIM_ALIGNOF(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg);
  NTIobject__diB2NTuAIWY0FO9c5IUJRGg_.kind = 17;
  NTIobject__diB2NTuAIWY0FO9c5IUJRGg_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
  NTIobject__diB2NTuAIWY0FO9c5IUJRGg_.flags = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[5].len = 0; TM__6NbDwwj5FY059b1gz2AsAZQ_0[5].kind = 2;
  NTIobject__diB2NTuAIWY0FO9c5IUJRGg_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[5];
  NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_.size = sizeof(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg*);
  NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_.align = NIM_ALIGNOF(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg*);
  NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_.kind = 22;
  NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_.base = (&NTIobject__diB2NTuAIWY0FO9c5IUJRGg_);
  NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_.marker = Marker_tyRef__HsJiUUcO9cHBdUCi0HwkSTA;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[4].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[4].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field1);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[4].typ = (&NTIrefobject__HsJiUUcO9cHBdUCi0HwkSTA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[4].name = "Field1";
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[2].len = 2; TM__6NbDwwj5FY059b1gz2AsAZQ_0[2].kind = 2; TM__6NbDwwj5FY059b1gz2AsAZQ_0[2].sons = &TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[0];
  NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[2];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[1].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[1].offset = offsetof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw, zonedTimeFromTimeImpl);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[1].typ = (&NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[1].name = "zonedTimeFromTimeImpl";
  TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[1] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[6];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[6].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[6].offset = offsetof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw, zonedTimeFromAdjTimeImpl);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[6].typ = (&NTIprocLx58timeT58zonedtimeLOclosure_gcsafe_locks5848OT__7xnKxEC24cr3qZyj3gX32w_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[6].name = "zonedTimeFromAdjTimeImpl";
  TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[2] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[7];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[7].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[7].offset = offsetof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw, name);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[7].typ = (&NTIstring__77mFvmsOLKik79ci2hXkHEg_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[7].name = "name";
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[0].len = 3; TM__6NbDwwj5FY059b1gz2AsAZQ_0[0].kind = 2; TM__6NbDwwj5FY059b1gz2AsAZQ_0[0].sons = &TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[0];
  NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[0];
  NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_.size = sizeof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*);
  NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_.align = NIM_ALIGNOF(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*);
  NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_.kind = 22;
  NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_.base = (&NTItimezone58objecttype__F8OvqlxXyGXRSiK9c1fCDVw_);
  NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_.marker = Marker_tyRef__9a5v4OQPlGqsA25ioN8hFYA;
  NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_.size = sizeof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw);
  NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_.align = NIM_ALIGNOF(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw);
  NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_.kind = 17;
  NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_.base = (&NTIrootobj__ytyiCJqK439aF9cIibuRVpAg_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[0] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[9];
  NTIint__PpavWgyrx5odXyR89aNlcWA_.size = sizeof(NI);
  NTIint__PpavWgyrx5odXyR89aNlcWA_.align = NIM_ALIGNOF(NI);
  NTIint__PpavWgyrx5odXyR89aNlcWA_.kind = 31;
  NTIint__PpavWgyrx5odXyR89aNlcWA_.base = 0;
  NTIint__PpavWgyrx5odXyR89aNlcWA_.flags = 3;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, nanosecond);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].typ = (&NTIint__PpavWgyrx5odXyR89aNlcWA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].name = "nanosecond";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[1] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[10];
  NTIint__rUuqTvFmkC6KKRqDAazGEA_.size = sizeof(NI);
  NTIint__rUuqTvFmkC6KKRqDAazGEA_.align = NIM_ALIGNOF(NI);
  NTIint__rUuqTvFmkC6KKRqDAazGEA_.kind = 31;
  NTIint__rUuqTvFmkC6KKRqDAazGEA_.base = 0;
  NTIint__rUuqTvFmkC6KKRqDAazGEA_.flags = 3;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, second);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].typ = (&NTIint__rUuqTvFmkC6KKRqDAazGEA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].name = "second";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[2] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[11];
  NTIint__LBgXxpmYOpS8xroRZgNvbg_.size = sizeof(NI);
  NTIint__LBgXxpmYOpS8xroRZgNvbg_.align = NIM_ALIGNOF(NI);
  NTIint__LBgXxpmYOpS8xroRZgNvbg_.kind = 31;
  NTIint__LBgXxpmYOpS8xroRZgNvbg_.base = 0;
  NTIint__LBgXxpmYOpS8xroRZgNvbg_.flags = 3;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, minute);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].typ = (&NTIint__LBgXxpmYOpS8xroRZgNvbg_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].name = "minute";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[3] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[12];
  NTIint__Gz6vwaK0PZQIDIwfuvKsOg_.size = sizeof(NI);
  NTIint__Gz6vwaK0PZQIDIwfuvKsOg_.align = NIM_ALIGNOF(NI);
  NTIint__Gz6vwaK0PZQIDIwfuvKsOg_.kind = 31;
  NTIint__Gz6vwaK0PZQIDIwfuvKsOg_.base = 0;
  NTIint__Gz6vwaK0PZQIDIwfuvKsOg_.flags = 3;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, hour);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].typ = (&NTIint__Gz6vwaK0PZQIDIwfuvKsOg_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].name = "hour";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[4] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[13];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[13].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[13].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, monthdayZero);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[13].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[13].name = "monthdayZero";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[5] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[14];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[14].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[14].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, monthZero);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[14].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[14].name = "monthZero";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[6] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[15];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[15].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[15].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, year);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[15].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[15].name = "year";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[7] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[16];
  NTIweekday__SVfemTA9aCOyua2TJYa6yBg_.size = sizeof(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg);
  NTIweekday__SVfemTA9aCOyua2TJYa6yBg_.align = NIM_ALIGNOF(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg);
  NTIweekday__SVfemTA9aCOyua2TJYa6yBg_.kind = 14;
  NTIweekday__SVfemTA9aCOyua2TJYa6yBg_.base = 0;
  NTIweekday__SVfemTA9aCOyua2TJYa6yBg_.flags = 3;
  for (TM__6NbDwwj5FY059b1gz2AsAZQ_55 = 0; TM__6NbDwwj5FY059b1gz2AsAZQ_55 < 7; TM__6NbDwwj5FY059b1gz2AsAZQ_55++) {
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_55+17].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_55+17].offset = TM__6NbDwwj5FY059b1gz2AsAZQ_55;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_55+17].name = TM__6NbDwwj5FY059b1gz2AsAZQ_54[TM__6NbDwwj5FY059b1gz2AsAZQ_55];
  TM__6NbDwwj5FY059b1gz2AsAZQ_53_7[TM__6NbDwwj5FY059b1gz2AsAZQ_55] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_55+17];
  }
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[24].len = 7; TM__6NbDwwj5FY059b1gz2AsAZQ_0[24].kind = 2; TM__6NbDwwj5FY059b1gz2AsAZQ_0[24].sons = &TM__6NbDwwj5FY059b1gz2AsAZQ_53_7[0];
  NTIweekday__SVfemTA9aCOyua2TJYa6yBg_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[24];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[16].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[16].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, weekday);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[16].typ = (&NTIweekday__SVfemTA9aCOyua2TJYa6yBg_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[16].name = "weekday";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[8] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[25];
  NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_.size = sizeof(NI);
  NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_.align = NIM_ALIGNOF(NI);
  NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_.kind = 31;
  NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_.base = 0;
  NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_.flags = 3;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, yearday);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].typ = (&NTIint__g9buja9c9aeh0rkDpqsXOJF9bA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].name = "yearday";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[9] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[26];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[26].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[26].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, isDst);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[26].typ = (&NTIbool__VaVACK0bpYmqIQ0mKcHfQQ_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[26].name = "isDst";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[10] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[27];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[27].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[27].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, timezone);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[27].typ = (&NTItimezone__9a5v4OQPlGqsA25ioN8hFYA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[27].name = "timezone";
  TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[11] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[28];
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[28].kind = 1;
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[28].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, utcOffset);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[28].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[28].name = "utcOffset";
  TM__6NbDwwj5FY059b1gz2AsAZQ_0[8].len = 12; TM__6NbDwwj5FY059b1gz2AsAZQ_0[8].kind = 2; TM__6NbDwwj5FY059b1gz2AsAZQ_0[8].sons = &TM__6NbDwwj5FY059b1gz2AsAZQ_52_12[0];
  NTIdatetime__d9cK9cyKZPJJxFXUmx8dSpPw_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[8];
  }
  
  