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

/* section: NIM_merge_HEADERS */

#include "nimbase.h"
#include <time.h>
#include <string.h>
#include <sys/types.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

/* section: NIM_merge_FRAME_DEFINES */
#define nimfr_(x, y)
#define nimln_(x, y)

/* section: NIM_merge_FORWARD_TYPES */
typedef struct tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw;
typedef struct tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ;
typedef struct tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q;
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;

/* section: NIM_merge_TYPES */
struct tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q {
NI64 seconds;
NI nanosecond;
};
struct tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ {
tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time;
NI utcOffset;
NIM_BOOL isDst;
};
typedef struct {
N_NIMCALL_PTR(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, ClP_0) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q x, 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_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;
typedef NU8 tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ;
typedef NI64 tyArray__pDfjTbtkTNjmi9bTcaNV32Q[8];
struct tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw {
NI64 seconds;
NI nanosecond;
};
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(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, TM__6NbDwwj5FY059b1gz2AsAZQ_58) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q x);
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(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, TM__6NbDwwj5FY059b1gz2AsAZQ_59) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, TM__6NbDwwj5FY059b1gz2AsAZQ_60) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, void* ClE_0);
struct tyTuple__pfrdooyxJsC6cg34ebuBag {
NI Field0;
NIM_BOOL Field1;
};
typedef N_CLOSURE_PTR(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, TM__6NbDwwj5FY059b1gz2AsAZQ_64) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, TM__6NbDwwj5FY059b1gz2AsAZQ_65) (tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, void* ClE_0);

/* section: NIM_merge_SEQ_TYPES */
struct tySequence__6H5Oh5UUvVCLiakt9aTwtUQ {
  TGenericSeq Sup;
  NU8 data[SEQ_DECL_SIZE];
};

/* section: NIM_merge_PROC_HEADERS */
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(void, nimZeroMem)(void* p, NI size);
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(void* a, int v, NI size);
static N_INLINE(NF, toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem)(NI i);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, initTime__JIXNH9cQMG3SbZ0hXqEYDvA)(NI64 unix_0, NI nanosecond);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__mJBnGHvSWAC6GZ5ELoijxg)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, formatPattern__S4WegiBO0BkW28IP3SncnA)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc);
static N_INLINE(NI, monthday__B20EJ0s9aKnOPwvDJBZg44Atimes)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem__i80o3k0SgEI5gTRCzYdyWAsystem)(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__wVgGaAXjFOPJiqCvvD5yAQ)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt);
static N_INLINE(NI, convert__bBJ7N1GpubC85YlnXz3nHgtimes)(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___uJ3ui4E9b9bOpe9bnJkEo4LvQ)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone1, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone2);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem__9bGgqEk7RXXl6eqM9c1HdELAsystem)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, inZone__o59cT0ssqq4BC09cuUGSdJiA)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result);
N_LIB_PRIVATE N_NIMCALL(void, initDateTime__9aNghJ6FEvB9bmfWkrG4iUag)(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__PiFB72i3f9cc4IO17Lz9cB7w)(NI64 seconds, NI64 nanoseconds);
static N_INLINE(NI64, convert__2z1a0DRE31bT73xgVvBfQAtimes)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI64 quantity);
static N_INLINE(NI, convert__vsrmXCcg8GubJb67VXeq4wtimes)(tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
N_LIB_PRIVATE N_NIMCALL(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw, initDuration__wcR3zetvspAUsyuvWZ07Xg)(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__JK8O6vJVu4WsESmu0kL4aQ)(NI64 seconds, NI64 nanoseconds);
N_LIB_PRIVATE N_NIMCALL(NI64, floorDiv__AhJW2V9aOggsJyHuT9bgq9bug)(NI64 x, NI64 y);
N_LIB_PRIVATE N_NIMCALL(tyTuple__XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay__Q6dL9aKf9alEEEm3deeqatPQ)(NI64 epochday);
N_LIB_PRIVATE N_NIMCALL(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg, getDayOfWeek__TMYR1EBf9be9ao182X9aB6FsQ)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
static N_INLINE(void, assertValidDate__cpvBdCYhBv8ncHGOZsJ1NAtimes)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay__cWHW5k8iz9aeqtjYJ7yMEUw)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NI, getDayOfYear__v9bv9bJVWRRmGny5jy7KFbgQ)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLeapYear__fs8eIeJ5mOYFq6g12UKiwQ)(NI year);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, zonedTimeFromTime__zT9bMgAwfe1o0G71u2tO24Q)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, utc__qUBQvQNLA9buHXwkwhObxQg)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone__mpaJbEchqMVc4ZG3uOdUTQ)(NimStringDesc* name, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromTimeImpl, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromAdjTimeImpl);
N_LIB_PRIVATE N_NIMCALL(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__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(NI x, NI y);
static N_INLINE(NIM_BOOL, ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem)(NI x, NI y);
static N_INLINE(void, rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT__Y66tOYFjgwJ0k4aLz4bc0Q)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(NI x, NI y);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, utcTzInfo__uDYZeDxzpPQoN8cxZKMtTQ)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time);
static N_INLINE(NF, toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem)(NI64 i);
N_LIB_PRIVATE N_NIMCALL(void, local__JDUz4bfwLSZvJxYV9aiNG9bg_2)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, local__qUBQvQNLA9buHXwkwhObxQg_2)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromTime__uDYZeDxzpPQoN8cxZKMtTQ_2)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyTuple__pfrdooyxJsC6cg34ebuBag, getLocalOffsetAndDst__wPlTAoiD9bfaYQuVXohuphA)(NI64 unix_0);
N_LIB_PRIVATE N_NIMCALL(NI64, clamp__4FyNK9boFeHv6A9b7jEfnv4Q)(NI64 x, NI64 a, NI64 b);
N_LIB_PRIVATE N_NIMCALL(NI64, toAdjUnix__7gZ56sIczRw5Us60WRxM6Q)(struct tm tm);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromAdjTime__GmSlVYJeJjQvBZrTGP0v1w)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, getTime__h20mpqrwsumk6J9bRdCm6IQ)(void);

/* section: NIM_merge_DATA */
N_LIB_PRIVATE TNimType NTI__F8OvqlxXyGXRSiK9c1fCDVw_;
N_LIB_PRIVATE TNimType NTI__7xnKxEC24cr3qZyj3gX32w_;
N_LIB_PRIVATE TNimType NTI__vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTI__ytyiCJqK439aF9cIibuRVpAg_;
N_LIB_PRIVATE TNimType NTI__diB2NTuAIWY0FO9c5IUJRGg_;
N_LIB_PRIVATE TNimType NTI__HsJiUUcO9cHBdUCi0HwkSTA_;
extern TNimType NTI__77mFvmsOLKik79ci2hXkHEg_;
N_LIB_PRIVATE TNimType NTI__9a5v4OQPlGqsA25ioN8hFYA_;
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_6, "12", 2);
N_LIB_PRIVATE NIM_CONST tyArray__pDfjTbtkTNjmi9bTcaNV32Q unitWeights__cpugRVHYEC9bUpLa71eZMsQ = {IL64(1),
IL64(1000),
IL64(1000000),
IL64(1000000000),
IL64(60000000000),
IL64(3600000000000),
IL64(86400000000000),
IL64(604800000000000)}
;
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);
static NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[9];
} TM__6NbDwwj5FY059b1gz2AsAZQ_15 = {{9, 9 | NIM_STRLIT_FLAG}, {((NU8) 22),
((NU8) 31),
((NU8) 1),
((NU8) 45),
((NU8) 11),
((NU8) 31),
((NU8) 1),
((NU8) 45),
((NU8) 1)}};
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_16, "yyyy-MM-dd", 10);
N_LIB_PRIVATE NIM_CONST tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f2__SxL57jkve5bL8AxZ2rjwWQ = {((tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*)&TM__6NbDwwj5FY059b1gz2AsAZQ_15), ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_16)}
;
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_17, "Jan", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_18, "Feb", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_19, "Mar", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_20, "Apr", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_21, "May", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_22, "Jun", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_23, "Jul", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_24, "Aug", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_25, "Sep", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_26, "Oct", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_27, "Nov", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_28, "Dec", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_29, "January", 7);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_30, "February", 8);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_31, "March", 5);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_32, "April", 5);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_33, "June", 4);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_34, "July", 4);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_35, "August", 6);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_36, "September", 9);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_37, "October", 7);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_38, "November", 8);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_39, "December", 8);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_40, "Mon", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_41, "Tue", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_42, "Wed", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_43, "Thu", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_44, "Fri", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_45, "Sat", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_46, "Sun", 3);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_47, "Monday", 6);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_48, "Tuesday", 7);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_49, "Wednesday", 9);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_50, "Thursday", 8);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_51, "Friday", 6);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_52, "Saturday", 8);
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_53, "Sunday", 6);
N_LIB_PRIVATE NIM_CONST tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ DefaultLocale__iEJ5NJEiHBqAI8z6L16USQ = {{((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_31),
((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_32),
((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_21),
((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),
((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_52),
((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_53)}
}
;
N_LIB_PRIVATE TNimType NTI__d9cK9cyKZPJJxFXUmx8dSpPw_;
extern TNimType NTI__PpavWgyrx5odXyR89aNlcWA_;
extern TNimType NTI__rUuqTvFmkC6KKRqDAazGEA_;
extern TNimType NTI__LBgXxpmYOpS8xroRZgNvbg_;
extern TNimType NTI__Gz6vwaK0PZQIDIwfuvKsOg_;
extern TNimType NTI__rR5Bzr1D5krxoo1NcNyeMA_;
N_LIB_PRIVATE TNimType NTI__SVfemTA9aCOyua2TJYa6yBg_;
extern TNimType NTI__g9buja9c9aeh0rkDpqsXOJF9bA_;
extern TNimType NTI__VaVACK0bpYmqIQ0mKcHfQQ_;
N_LIB_PRIVATE NIM_CONST tyArray__Splpnswz3rudLg9bDsQoDXg daysUntilMonthLeap__bWLQu3i9bqoFDTyygQP29aFA = {((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__TV2R7Va3CeAXpg6eZUosdg = {((NI) 0),
((NI) 31),
((NI) 59),
((NI) 90),
((NI) 120),
((NI) 151),
((NI) 181),
((NI) 212),
((NI) 243),
((NI) 273),
((NI) 304),
((NI) 334)}
;
static NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[9];
} TM__6NbDwwj5FY059b1gz2AsAZQ_61 = {{9, 9 | NIM_STRLIT_FLAG}, {((NU8) 7),
((NU8) 31),
((NU8) 1),
((NU8) 58),
((NU8) 9),
((NU8) 31),
((NU8) 1),
((NU8) 58),
((NU8) 15)}};
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_62, "HH:mm:ss", 8);
N_LIB_PRIVATE NIM_CONST tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f2__SxL57jkve5bL8AxZ2rjwWQ_2 = {((tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*)&TM__6NbDwwj5FY059b1gz2AsAZQ_61), ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_62)}
;
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_63, "LOCAL", 5);
static NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[16];
} TM__6NbDwwj5FY059b1gz2AsAZQ_66 = {{16, 16 | NIM_STRLIT_FLAG}, {((NU8) 13),
((NU8) 31),
((NU8) 1),
((NU8) 45),
((NU8) 22),
((NU8) 31),
((NU8) 1),
((NU8) 45),
((NU8) 7),
((NU8) 31),
((NU8) 1),
((NU8) 45),
((NU8) 9),
((NU8) 31),
((NU8) 1),
((NU8) 45)}};
STRING_LITERAL(TM__6NbDwwj5FY059b1gz2AsAZQ_67, "MMMM-yyyy-HH-mm-", 16);
N_LIB_PRIVATE NIM_CONST tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f2__SxL57jkve5bL8AxZ2rjwWQ_3 = {((tySequence__6H5Oh5UUvVCLiakt9aTwtUQ*)&TM__6NbDwwj5FY059b1gz2AsAZQ_66), ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_67)}
;

/* section: NIM_merge_VARS */
N_LIB_PRIVATE tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* utcInstance__oeKVHn4dFpBJO35HhEkelw;
N_LIB_PRIVATE tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* localInstance__cLtN9cK9bCe6IPhJ3UFNLNKA;
extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__IcYaEuuWivYAS86vFMTS3Q;

/* section: NIM_merge_PROCS */
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__oeKVHn4dFpBJO35HhEkelw, 0);
}
static N_NIMCALL(void, TM__6NbDwwj5FY059b1gz2AsAZQ_5)(void) {
	nimGCvisit((void*)localInstance__cLtN9cK9bCe6IPhJ3UFNLNKA, 0);
}
static N_INLINE(void, nimSetMem__zxfKBYntu9cBapkhrCOk1fgmemory)(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__zxfKBYntu9cBapkhrCOk1fgmemory(p, ((int) 0), size);
}
static N_INLINE(NF, toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem)(NI i) {
	NF result;
	result = (NF)0;
	result = ((NF) (i));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, cpuTime__9aodCrWXscOGeNVh2cpuZkw)(void) {
	NF result;
	struct timespec ts;
	int T1_;
	NF T2_;
	NF T3_;
	result = (NF)0;
	nimZeroMem((void*)(&ts), sizeof(struct timespec));
	T1_ = (int)0;
	T1_ = clock_gettime(((clockid_t) (CLOCK_THREAD_CPUTIME_ID)), (&ts));
	(void)(T1_);
	T2_ = (NF)0;
	T2_ = toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem(ts.tv_sec);
	T3_ = (NF)0;
	T3_ = toFloat__y1Fm9aHmxw9bS2jir137Fu5gsystem(ts.tv_nsec);
	result = ((NF)(T2_) + (NF)(((NF)(T3_) / (NF)(1.0000000000000000e+09))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, initTime__JIXNH9cQMG3SbZ0hXqEYDvA)(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;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, getTime__h20mpqrwsumk6J9bRdCm6IQ)(void) {
	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
	struct timespec ts;
	int T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
	T1_ = (int)0;
	T1_ = clock_gettime(((clockid_t) (CLOCK_REALTIME)), (&ts));
	(void)(T1_);
	result = initTime__JIXNH9cQMG3SbZ0hXqEYDvA(((NI64) (ts.tv_sec)), ((NI) (ts.tv_nsec)));
	return result;
}
static N_INLINE(NI, monthday__B20EJ0s9aKnOPwvDJBZg44Atimes)(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__i80o3k0SgEI5gTRCzYdyWAsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		void* T5_;
		void* T6_;
		if (!!((src == NIM_NIL))) goto LA3_;
		T5_ = (void*)0;
		T5_ = ((void*) ((&(*dest).data[(*dest).Sup.len])));
		T6_ = (void*)0;
		T6_ = ((void*) ((*src).data));
		copyMem__i80o3k0SgEI5gTRCzYdyWAsystem(T5_, T6_, ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw, month__wVgGaAXjFOPJiqCvvD5yAQ)(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__bBJ7N1GpubC85YlnXz3nHgtimes)(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__cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0] / unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0]))));
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((NI) ((NI64)((NI64)(unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0] / unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(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__9bGgqEk7RXXl6eqM9c1HdELAsystem)(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__9bGgqEk7RXXl6eqM9c1HdELAsystem(((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___uJ3ui4E9b9bOpe9bnJkEo4LvQ)(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__S4WegiBO0BkW28IP3SncnA)(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__B20EJ0s9aKnOPwvDJBZg44Atimes(dt);
		T3_ = (NimStringDesc*)0;
		T3_ = nimIntToStr(((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__B20EJ0s9aKnOPwvDJBZg44Atimes(dt);
		T6_ = (NimStringDesc*)0;
		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_ = (NimStringDesc*)0;
		{
			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_ = nimIntToStr((NI)(((NI) ((*dt).hour)) - ((NI) 12)));
		}
		goto LA11_;
		LA16_: ;
		{
			T10_ = nimIntToStr(((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_ = (NimStringDesc*)0;
		{
			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_ = (NimStringDesc*)0;
		T30_ = nimIntToStr(((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_ = (NimStringDesc*)0;
		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_ = (NimStringDesc*)0;
		T34_ = nimIntToStr(((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_ = (NimStringDesc*)0;
		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__wVgGaAXjFOPJiqCvvD5yAQ(dt);
		T39_ = (NimStringDesc*)0;
		T39_ = nimIntToStr(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__wVgGaAXjFOPJiqCvvD5yAQ(dt);
		T42_ = (NimStringDesc*)0;
		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__wVgGaAXjFOPJiqCvvD5yAQ(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__wVgGaAXjFOPJiqCvvD5yAQ(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_ = (NimStringDesc*)0;
		T48_ = nimIntToStr(((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_ = (NimStringDesc*)0;
		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__bBJ7N1GpubC85YlnXz3nHgtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 2), (*dt).nanosecond);
		T53_ = (NimStringDesc*)0;
		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__bBJ7N1GpubC85YlnXz3nHgtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 1), (*dt).nanosecond);
		T56_ = (NimStringDesc*)0;
		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_ = (NimStringDesc*)0;
		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_ = (NimStringDesc*)0;
		{
			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_ = (NimStringDesc*)0;
		{
			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_ = (NimStringDesc*)0;
		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_ = (NimStringDesc*)0;
			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_ = (NimStringDesc*)0;
			T94_ = (NimStringDesc*)0;
			T94_ = nimIntToStr(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_ = (NimStringDesc*)0;
			T100_ = nimIntToStr((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_ = (NimStringDesc*)0;
			T102_ = nimIntToStr((*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_ = (NimStringDesc*)0;
			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_ = (NimStringDesc*)0;
			T113_ = (NimStringDesc*)0;
			T113_ = nimIntToStr(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_ = (NimStringDesc*)0;
		T115_ = nimIntToStr((*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):
	{
		{
			NIM_BOOL T119_;
			NIM_BOOL T120_;
			T119_ = (NIM_BOOL)0;
			T120_ = (NIM_BOOL)0;
			T120_ = eqeq___uJ3ui4E9b9bOpe9bnJkEo4LvQ((*dt).timezone, 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_ = (NimStringDesc*)0;
				T132_ = nimIntToStr((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_ = (NimStringDesc*)0;
				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):
			{
				NimStringDesc* h;
				NimStringDesc* m;
				NimStringDesc* T136_;
				h = nsuIntToStr((NI)(absOffset / ((NI) 3600)), ((NI) 2));
				m = nsuIntToStr((NI)((NI)(absOffset / ((NI) 60)) % ((NI) 60)), ((NI) 2));
				T136_ = (NimStringDesc*)0;
				T136_ = rawNewString((h ? h->Sup.len : 0) + (m ? m->Sup.len : 0) + 1);
appendString(T136_, h);
appendString(T136_, ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_12));
appendString(T136_, m);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T136_ ? T136_->Sup.len : 0) + 0));
appendString((*result), T136_);
			}
			break;
			case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 29):
			{
				NI absOffset_2;
				NimStringDesc* h_2;
				NimStringDesc* m_2;
				NimStringDesc* s;
				NimStringDesc* T138_;
				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));
				T138_ = (NimStringDesc*)0;
				T138_ = rawNewString((h_2 ? h_2->Sup.len : 0) + (m_2 ? m_2->Sup.len : 0) + (s ? s->Sup.len : 0) + 2);
appendString(T138_, h_2);
appendString(T138_, ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_12));
appendString(T138_, m_2);
appendString(T138_, ((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_12));
appendString(T138_, s);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T138_ ? T138_->Sup.len : 0) + 0));
appendString((*result), T138_);
			}
			break;
			default:
			{
			}
			break;
			}
		}
		LA117_: ;
	}
	break;
	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 30):
	{
		NimStringDesc* T141_;
		T141_ = (NimStringDesc*)0;
		{
			if (!((*dt).year < ((NI) 1))) goto LA144_;
			T141_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_13));
		}
		goto LA142_;
		LA144_: ;
		{
			T141_ = copyString(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_14));
		}
		LA142_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T141_ ? T141_->Sup.len : 0) + 0));
appendString((*result), T141_);
	}
	break;
	case ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) 31):
	{
	}
	break;
	}
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__mJBnGHvSWAC6GZ5ELoijxg)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat__Nsh4TB3AD6ERMz3D74BTxA f, tyObject_DateTimeLocale__uNv3Dc4hHpAREXnLVqGWZQ* loc) {
	NimStringDesc* result;
	NI idx;
	result = (NimStringDesc*)0;
	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) 31):
			{
				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__S4WegiBO0BkW28IP3SncnA(dt, ((tyEnum_FormatPattern__asapJ9b4qGHESR0g3CfbCjQ) (f.patterns->data[idx])), (&result), loc);
				idx += ((NI) 1);
			}
			break;
			}
		} LA2: ;
	}
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__0mU5LPQs7yxyhK6wdJYSkg)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format__mJBnGHvSWAC6GZ5ELoijxg(dt, f2__SxL57jkve5bL8AxZ2rjwWQ, (&DefaultLocale__iEJ5NJEiHBqAI8z6L16USQ));
	return result;
}
static N_INLINE(NI64, convert__2z1a0DRE31bT73xgVvBfQAtimes)(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__cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0] / unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0]));
	}
	goto LA1_;
	LA3_: ;
	{
		result = (NI64)((NI64)(unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0] / unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0]) * quantity);
	}
	LA1_: ;
	return result;
}
static N_INLINE(NI, convert__vsrmXCcg8GubJb67VXeq4wtimes)(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__cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0] / unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0]))));
	}
	goto LA1_;
	LA3_: ;
	{
		result = ((NI) ((NI64)((NI64)(unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitFrom)- 0] / unitWeights__cpugRVHYEC9bUpLa71eZMsQ[(unitTo)- 0]) * ((NI64) (quantity)))));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, normalize__PiFB72i3f9cc4IO17Lz9cB7w)(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__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	result.seconds = (NI64)(seconds + T1_);
	T2_ = (NI)0;
	T2_ = convert__vsrmXCcg8GubJb67VXeq4wtimes(((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__vsrmXCcg8GubJb67VXeq4wtimes(((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;
	NI64 T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
	T1_ = (NI64)0;
	T1_ = (NI64)(a.seconds - b.seconds);
	result = normalize__PiFB72i3f9cc4IO17Lz9cB7w(T1_, ((NI64) ((NI)(((NI) (a.nanosecond)) - ((NI) (b.nanosecond))))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw, normalize__JK8O6vJVu4WsESmu0kL4aQ)(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__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	result.seconds = (NI64)(seconds + T1_);
	T2_ = (NI)0;
	T2_ = convert__vsrmXCcg8GubJb67VXeq4wtimes(((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__vsrmXCcg8GubJb67VXeq4wtimes(((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__wcR3zetvspAUsyuvWZ07Xg)(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__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 7), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), weeks);
	T2_ = (NI64)0;
	T2_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 6), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), days);
	T3_ = (NI64)0;
	T3_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 4), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), minutes);
	T4_ = (NI64)0;
	T4_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 5), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), hours);
	T5_ = (NI64)0;
	T5_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), seconds);
	T6_ = (NI64)0;
	T6_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), milliseconds);
	T7_ = (NI64)0;
	T7_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 3), microseconds);
	T8_ = (NI64)0;
	T8_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((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__2z1a0DRE31bT73xgVvBfQAtimes(((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit__52alPn04ElUUbqLeok9b3PQ) 0), (NI64)(milliseconds % IL64(1000)));
	T10_ = (NI64)0;
	T10_ = convert__2z1a0DRE31bT73xgVvBfQAtimes(((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__JK8O6vJVu4WsESmu0kL4aQ(seconds_2, ((NI64) (nanoseconds_2)));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay__Q6dL9aKf9alEEEm3deeqatPQ)(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__cpvBdCYhBv8ncHGOZsJ1NAtimes)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
}
N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay__cWHW5k8iz9aeqtjYJ7yMEUw)(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__cpvBdCYhBv8ncHGOZsJ1NAtimes(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__TMYR1EBf9be9ao182X9aB6FsQ)(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__cpvBdCYhBv8ncHGOZsJ1NAtimes(monthday, month, year);
	T1_ = (NI64)0;
	T1_ = toEpochDay__cWHW5k8iz9aeqtjYJ7yMEUw(monthday, month, year);
	days = (NI64)(T1_ - IL64(3));
	weeks = floorDiv__AhJW2V9aOggsJyHuT9bgq9bug(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__fs8eIeJ5mOYFq6g12UKiwQ)(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__v9bv9bJVWRRmGny5jy7KFbgQ)(NI monthday, tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	NI result;
	result = (NI)0;
	assertValidDate__cpvBdCYhBv8ncHGOZsJ1NAtimes(monthday, month, year);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isLeapYear__fs8eIeJ5mOYFq6g12UKiwQ(year);
		if (!T3_) goto LA4_;
		result = ((NI) ((NI)((NI)(daysUntilMonthLeap__bWLQu3i9bqoFDTyygQP29aFA[(month)- 1] + ((NI) (monthday))) - ((NI) 1))));
	}
	goto LA1_;
	LA4_: ;
	{
		result = ((NI) ((NI)((NI)(daysUntilMonth__TV2R7Va3CeAXpg6eZUosdg[(month)- 1] + ((NI) (monthday))) - ((NI) 1))));
	}
	LA1_: ;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, initDateTime__9aNghJ6FEvB9bmfWkrG4iUag)(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ* zt, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q adjTime;
	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q T1_;
	tyObject_Duration__lj9ar6Co3fgk6NgGnVaNpJw T2_;
	NI64 s;
	NI64 epochday;
	NI64 rem;
	NI64 hour;
	NI64 minute;
	NI64 second;
	tyTuple__XjuGlLf9cyYx66ViXrBCvPQ T3_;
	NI d;
	tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw m;
	NI y;
	T1_ = (*zt).time;
	T2_ = initDuration__wcR3zetvspAUsyuvWZ07Xg(IL64(0), IL64(0), IL64(0), ((NI64) ((*zt).utcOffset)), IL64(0), IL64(0), IL64(0), IL64(0));
	adjTime = ntSubTime(T1_, T2_);
	s = adjTime.seconds;
	epochday = floorDiv__AhJW2V9aOggsJyHuT9bgq9bug(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;
	T3_ = fromEpochDay__Q6dL9aKf9alEEEm3deeqatPQ(epochday);
	d = T3_.Field0;
	m = T3_.Field1;
	y = T3_.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 = (&NTI__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__TMYR1EBf9be9ao182X9aB6FsQ(d, m, y);
	(*Result).yearday = getDayOfYear__v9bv9bJVWRRmGny5jy7KFbgQ(d, m, y);
	(*Result).isDst = (*zt).isDst;
	unsureAsgnRef((void**) (&(*Result).timezone), zone);
	(*Result).utcOffset = (*zt).utcOffset;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, zonedTimeFromTime__zT9bMgAwfe1o0G71u2tO24Q)(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time) {
	tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
	result = (*zone).zonedTimeFromTimeImpl.ClE_0? (*zone).zonedTimeFromTimeImpl.ClP_0(time, (*zone).zonedTimeFromTimeImpl.ClE_0):((TM__6NbDwwj5FY059b1gz2AsAZQ_58)((*zone).zonedTimeFromTimeImpl.ClP_0))(time);
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, inZone__o59cT0ssqq4BC09cuUGSdJiA)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ T1_;
	T1_ = zonedTimeFromTime__zT9bMgAwfe1o0G71u2tO24Q(zone, time);
	initDateTime__9aNghJ6FEvB9bmfWkrG4iUag((&T1_), zone, Result);
}
static N_INLINE(NI, minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system)(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___hPljn3JCDQ00ua1R07X9bxQsystem)(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__AT1eRuflKWyTTBdLjEDZbg_2system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT__Y66tOYFjgwJ0k4aLz4bc0Q((&gch__IcYaEuuWivYAS86vFMTS3Q.zct), c);
}
static N_INLINE(void, decRef__AT1eRuflKWyTTBdLjEDZbgsystem)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system((*c).refcount, ((NI) 8));
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = ltpercent___hPljn3JCDQ00ua1R07X9bxQsystem((*c).refcount, ((NI) 8));
		if (!T3_) goto LA4_;
		rtlAddZCT__AT1eRuflKWyTTBdLjEDZbg_2system(c);
	}
	LA4_: ;
}
static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem)(void* usr) {
	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
	NI T1_;
	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
	T1_ = (NI)0;
	T1_ = minuspercent___dgYAo7RfdUVVpvkfKDym8w_2system(((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__QFQqcLB3lgOdwipkv9a60xwsystem(p);
	decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T1_);
}
static N_INLINE(NI, pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem)(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__AT1eRuflKWyTTBdLjEDZbg_3system)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = pluspercent___dgYAo7RfdUVVpvkfKDym8wsystem((*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__QFQqcLB3lgOdwipkv9a60xwsystem(src);
		incRef__AT1eRuflKWyTTBdLjEDZbg_3system(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell__QFQqcLB3lgOdwipkv9a60xwsystem((*dest));
		decRef__AT1eRuflKWyTTBdLjEDZbgsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone__mpaJbEchqMVc4ZG3uOdUTQ)(NimStringDesc* name, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromTimeImpl, tyProc__7xnKxEC24cr3qZyj3gX32w zonedTimeFromAdjTimeImpl) {
	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* result;
	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	NimStringDesc* T2_;
	result = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*) newObj((&NTI__9a5v4OQPlGqsA25ioN8hFYA_), sizeof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw));
	T2_ = (NimStringDesc*)0;
	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(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, utcTzInfo__uDYZeDxzpPQoN8cxZKMtTQ)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q time) {
	tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ result;
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
	nimZeroMem((void*)(&result), sizeof(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ));
	result.utcOffset = ((NI) 0);
	result.isDst = NIM_FALSE;
	result.time = time;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, utc__qUBQvQNLA9buHXwkwhObxQg)(void) {
	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* result;
	result = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)0;
	{
		tyProc__7xnKxEC24cr3qZyj3gX32w T5_;
		tyProc__7xnKxEC24cr3qZyj3gX32w T6_;
		if (!(utcInstance__oeKVHn4dFpBJO35HhEkelw == 0)) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
		T5_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_59) (utcTzInfo__uDYZeDxzpPQoN8cxZKMtTQ)); T5_.ClE_0 = NIM_NIL;
		nimZeroMem((void*)(&T6_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
		T6_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_60) (utcTzInfo__uDYZeDxzpPQoN8cxZKMtTQ)); T6_.ClE_0 = NIM_NIL;
		asgnRef((void**) (&utcInstance__oeKVHn4dFpBJO35HhEkelw), newTimezone__mpaJbEchqMVc4ZG3uOdUTQ(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_11), T5_, T6_));
	}
	LA3_: ;
	result = utcInstance__oeKVHn4dFpBJO35HhEkelw;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, utc__JDUz4bfwLSZvJxYV9aiNG9bg)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	T1_ = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = utc__qUBQvQNLA9buHXwkwhObxQg();
	inZone__o59cT0ssqq4BC09cuUGSdJiA(t, T1_, Result);
}
N_LIB_PRIVATE N_NIMCALL(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q, fromUnix__tTrGV9aPQsM9bPX19apdE19cAA)(NI64 unix_0) {
	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q));
	result = initTime__JIXNH9cQMG3SbZ0hXqEYDvA(unix_0, ((NI) 0));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__5aADVWvtnd9aihEMOlhe37A)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format__mJBnGHvSWAC6GZ5ELoijxg(dt, f2__SxL57jkve5bL8AxZ2rjwWQ_2, (&DefaultLocale__iEJ5NJEiHBqAI8z6L16USQ));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NI64, toUnix__mXmxlr1pBpariZiJTjytHg)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t) {
	NI64 result;
	result = (NI64)0;
	result = t.seconds;
	return result;
}
static N_INLINE(NF, toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem)(NI64 i) {
	NF result;
	result = (NF)0;
	result = ((NF) (i));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NF, epochTime__9aodCrWXscOGeNVh2cpuZkw_2)(void) {
	NF result;
	struct timespec ts;
	int T1_;
	NF T2_;
	NF T3_;
	result = (NF)0;
	T1_ = (int)0;
	T1_ = clock_gettime(((clockid_t) (CLOCK_REALTIME)), (&ts));
	(void)(T1_);
	T2_ = (NF)0;
	T2_ = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(((NI64) (ts.tv_sec)));
	T3_ = (NF)0;
	T3_ = toBiggestFloat__hTpm9cXKgh17pxyZUsNnUyQsystem(((NI64) (ts.tv_nsec)));
	result = ((NF)(T2_) + (NF)(((NF)(T3_) / (NF)(1.0000000000000000e+09))));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ntLeTime)(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, toAdjUnix__7gZ56sIczRw5Us60WRxM6Q)(struct tm tm) {
	NI64 result;
	NI64 epochDay;
	NI T1_;
	tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw T2_;
	result = (NI64)0;
	T1_ = (NI)0;
	T1_ = ((NI) (tm.tm_mday));
	T2_ = (tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw)0;
	T2_ = ((tyEnum_Month__JS0JuFvCBbC2GL3xXBnPQw) ((NI32)(tm.tm_mon + ((NI32) 1))));
	epochDay = toEpochDay__cWHW5k8iz9aeqtjYJ7yMEUw(T1_, T2_, (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__wPlTAoiD9bfaYQuVXohuphA)(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__4FyNK9boFeHv6A9b7jEfnv4Q(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__7gZ56sIczRw5Us60WRxM6Q(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(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromTime__uDYZeDxzpPQoN8cxZKMtTQ_2)(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__wPlTAoiD9bfaYQuVXohuphA(time.seconds);
	offset = T1_.Field0;
	dst = T1_.Field1;
	result.time = time;
	result.utcOffset = offset;
	result.isDst = dst;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime__WigfH9apQAxJ69bBPh3wB8RQ, localZonedTimeFromAdjTime__GmSlVYJeJjQvBZrTGP0v1w)(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__wPlTAoiD9bfaYQuVXohuphA(past);
	pastOffset = T1_.Field0;
	_ = T1_.Field1;
	future = (NI64)(adjUnix + IL64(86400));
	T2_ = getLocalOffsetAndDst__wPlTAoiD9bfaYQuVXohuphA(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__wPlTAoiD9bfaYQuVXohuphA(adjUnix);
		utcOffset = T12_.Field0;
	}
	LA3_: ;
	utcUnix = (NI64)(adjTime.seconds + ((NI64) (utcOffset)));
	T13_ = getLocalOffsetAndDst__wPlTAoiD9bfaYQuVXohuphA(utcUnix);
	finalOffset = T13_.Field0;
	dst = T13_.Field1;
	result.time = initTime__JIXNH9cQMG3SbZ0hXqEYDvA(utcUnix, adjTime.nanosecond);
	result.utcOffset = finalOffset;
	result.isDst = dst;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*, local__qUBQvQNLA9buHXwkwhObxQg_2)(void) {
	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* result;
	result = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)0;
	{
		tyProc__7xnKxEC24cr3qZyj3gX32w T5_;
		tyProc__7xnKxEC24cr3qZyj3gX32w T6_;
		if (!(localInstance__cLtN9cK9bCe6IPhJ3UFNLNKA == 0)) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
		T5_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_64) (localZonedTimeFromTime__uDYZeDxzpPQoN8cxZKMtTQ_2)); T5_.ClE_0 = NIM_NIL;
		nimZeroMem((void*)(&T6_), sizeof(tyProc__7xnKxEC24cr3qZyj3gX32w));
		T6_.ClP_0 = ((TM__6NbDwwj5FY059b1gz2AsAZQ_65) (localZonedTimeFromAdjTime__GmSlVYJeJjQvBZrTGP0v1w)); T6_.ClE_0 = NIM_NIL;
		asgnRef((void**) (&localInstance__cLtN9cK9bCe6IPhJ3UFNLNKA), newTimezone__mpaJbEchqMVc4ZG3uOdUTQ(((NimStringDesc*) &TM__6NbDwwj5FY059b1gz2AsAZQ_63), T5_, T6_));
	}
	LA3_: ;
	result = localInstance__cLtN9cK9bCe6IPhJ3UFNLNKA;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, local__JDUz4bfwLSZvJxYV9aiNG9bg_2)(tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	T1_ = (tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = local__qUBQvQNLA9buHXwkwhObxQg_2();
	inZone__o59cT0ssqq4BC09cuUGSdJiA(t, T1_, Result);
}
N_LIB_PRIVATE N_NIMCALL(void, now__YmAcAi9bz5G8OQqVFWHN2uA)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_Time__3y2ZpqsTJLqdZvpC9a0rU2Q T1_;
	T1_ = getTime__h20mpqrwsumk6J9bRdCm6IQ();
	local__JDUz4bfwLSZvJxYV9aiNG9bg_2(T1_, Result);
}
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format__ADP1KtY4gYCU9cpquETfo6A)(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format__mJBnGHvSWAC6GZ5ELoijxg(dt, f2__SxL57jkve5bL8AxZ2rjwWQ_3, (&DefaultLocale__iEJ5NJEiHBqAI8z6L16USQ));
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesInit000)(void) {
{

	nimRegisterThreadLocalMarker(TM__6NbDwwj5FY059b1gz2AsAZQ_4);


	nimRegisterThreadLocalMarker(TM__6NbDwwj5FY059b1gz2AsAZQ_5);

}
}

N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesDatInit000)(void) {

/* section: NIM_merge_TYPE_INIT1 */
static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[3];
static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[2];
static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[12];
static TNimNode* TM__6NbDwwj5FY059b1gz2AsAZQ_55_7[7];
NI TM__6NbDwwj5FY059b1gz2AsAZQ_57;
static char* NIM_CONST TM__6NbDwwj5FY059b1gz2AsAZQ_56[7] = {
"Monday", 
"Tuesday", 
"Wednesday", 
"Thursday", 
"Friday", 
"Saturday", 
"Sunday"};
static TNimNode TM__6NbDwwj5FY059b1gz2AsAZQ_0[29];

/* section: NIM_merge_TYPE_INIT3 */
NTI__F8OvqlxXyGXRSiK9c1fCDVw_.size = sizeof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw);
NTI__F8OvqlxXyGXRSiK9c1fCDVw_.align = NIM_ALIGNOF(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw);
NTI__F8OvqlxXyGXRSiK9c1fCDVw_.kind = 18;
NTI__F8OvqlxXyGXRSiK9c1fCDVw_.base = 0;
TM__6NbDwwj5FY059b1gz2AsAZQ_2_3[0] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[1];
NTI__7xnKxEC24cr3qZyj3gX32w_.size = sizeof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
NTI__7xnKxEC24cr3qZyj3gX32w_.align = NIM_ALIGNOF(tyTuple__JfHvHzMrhKkWAUvQKe0i1A);
NTI__7xnKxEC24cr3qZyj3gX32w_.kind = 18;
NTI__7xnKxEC24cr3qZyj3gX32w_.base = 0;
TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[0] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[3];
NTI__vr5DoT1jILTGdRlYv1OYpw_.size = sizeof(void*);
NTI__vr5DoT1jILTGdRlYv1OYpw_.align = NIM_ALIGNOF(void*);
NTI__vr5DoT1jILTGdRlYv1OYpw_.kind = 26;
NTI__vr5DoT1jILTGdRlYv1OYpw_.base = 0;
NTI__vr5DoT1jILTGdRlYv1OYpw_.flags = 3;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].offset = offsetof(tyTuple__JfHvHzMrhKkWAUvQKe0i1A, Field0);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].typ = (&NTI__vr5DoT1jILTGdRlYv1OYpw_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[3].name = "Field0";
TM__6NbDwwj5FY059b1gz2AsAZQ_3_2[1] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[4];
NTI__diB2NTuAIWY0FO9c5IUJRGg_.size = sizeof(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg);
NTI__diB2NTuAIWY0FO9c5IUJRGg_.align = NIM_ALIGNOF(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg);
NTI__diB2NTuAIWY0FO9c5IUJRGg_.kind = 17;
NTI__diB2NTuAIWY0FO9c5IUJRGg_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
NTI__diB2NTuAIWY0FO9c5IUJRGg_.flags = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[5].len = 0; TM__6NbDwwj5FY059b1gz2AsAZQ_0[5].kind = 2;
NTI__diB2NTuAIWY0FO9c5IUJRGg_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[5];
NTI__HsJiUUcO9cHBdUCi0HwkSTA_.size = sizeof(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg*);
NTI__HsJiUUcO9cHBdUCi0HwkSTA_.align = NIM_ALIGNOF(tyObject_Env_timesdotnim_Timezone___diB2NTuAIWY0FO9c5IUJRGg*);
NTI__HsJiUUcO9cHBdUCi0HwkSTA_.kind = 22;
NTI__HsJiUUcO9cHBdUCi0HwkSTA_.base = (&NTI__diB2NTuAIWY0FO9c5IUJRGg_);
NTI__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 = (&NTI__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];
NTI__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 = (&NTI__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 = (&NTI__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 = (&NTI__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];
NTI__F8OvqlxXyGXRSiK9c1fCDVw_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[0];
NTI__9a5v4OQPlGqsA25ioN8hFYA_.size = sizeof(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*);
NTI__9a5v4OQPlGqsA25ioN8hFYA_.align = NIM_ALIGNOF(tyObject_TimezonecolonObjectType___F8OvqlxXyGXRSiK9c1fCDVw*);
NTI__9a5v4OQPlGqsA25ioN8hFYA_.kind = 22;
NTI__9a5v4OQPlGqsA25ioN8hFYA_.base = (&NTI__F8OvqlxXyGXRSiK9c1fCDVw_);
NTI__9a5v4OQPlGqsA25ioN8hFYA_.marker = Marker_tyRef__9a5v4OQPlGqsA25ioN8hFYA;
NTI__d9cK9cyKZPJJxFXUmx8dSpPw_.size = sizeof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw);
NTI__d9cK9cyKZPJJxFXUmx8dSpPw_.align = NIM_ALIGNOF(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw);
NTI__d9cK9cyKZPJJxFXUmx8dSpPw_.kind = 17;
NTI__d9cK9cyKZPJJxFXUmx8dSpPw_.base = (&NTI__ytyiCJqK439aF9cIibuRVpAg_);
TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[0] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[9];
TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, nanosecond);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].typ = (&NTI__PpavWgyrx5odXyR89aNlcWA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[9].name = "nanosecond";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[1] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[10];
TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, second);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].typ = (&NTI__rUuqTvFmkC6KKRqDAazGEA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[10].name = "second";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[2] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[11];
TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, minute);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].typ = (&NTI__LBgXxpmYOpS8xroRZgNvbg_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[11].name = "minute";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[3] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[12];
TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, hour);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].typ = (&NTI__Gz6vwaK0PZQIDIwfuvKsOg_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[12].name = "hour";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_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 = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[13].name = "monthdayZero";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_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 = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[14].name = "monthZero";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_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 = (&NTI__rR5Bzr1D5krxoo1NcNyeMA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[15].name = "year";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[7] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[16];
NTI__SVfemTA9aCOyua2TJYa6yBg_.size = sizeof(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg);
NTI__SVfemTA9aCOyua2TJYa6yBg_.align = NIM_ALIGNOF(tyEnum_WeekDay__SVfemTA9aCOyua2TJYa6yBg);
NTI__SVfemTA9aCOyua2TJYa6yBg_.kind = 14;
NTI__SVfemTA9aCOyua2TJYa6yBg_.base = 0;
NTI__SVfemTA9aCOyua2TJYa6yBg_.flags = 3;
for (TM__6NbDwwj5FY059b1gz2AsAZQ_57 = 0; TM__6NbDwwj5FY059b1gz2AsAZQ_57 < 7; TM__6NbDwwj5FY059b1gz2AsAZQ_57++) {
TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_57+17].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_57+17].offset = TM__6NbDwwj5FY059b1gz2AsAZQ_57;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_57+17].name = TM__6NbDwwj5FY059b1gz2AsAZQ_56[TM__6NbDwwj5FY059b1gz2AsAZQ_57];
TM__6NbDwwj5FY059b1gz2AsAZQ_55_7[TM__6NbDwwj5FY059b1gz2AsAZQ_57] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[TM__6NbDwwj5FY059b1gz2AsAZQ_57+17];
}
TM__6NbDwwj5FY059b1gz2AsAZQ_0[24].len = 7; TM__6NbDwwj5FY059b1gz2AsAZQ_0[24].kind = 2; TM__6NbDwwj5FY059b1gz2AsAZQ_0[24].sons = &TM__6NbDwwj5FY059b1gz2AsAZQ_55_7[0];
NTI__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 = (&NTI__SVfemTA9aCOyua2TJYa6yBg_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[16].name = "weekday";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_12[8] = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[25];
TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].kind = 1;
TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].offset = offsetof(tyObject_DateTime__d9cK9cyKZPJJxFXUmx8dSpPw, yearday);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].typ = (&NTI__g9buja9c9aeh0rkDpqsXOJF9bA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[25].name = "yearday";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_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 = (&NTI__VaVACK0bpYmqIQ0mKcHfQQ_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[26].name = "isDst";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_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 = (&NTI__9a5v4OQPlGqsA25ioN8hFYA_);
TM__6NbDwwj5FY059b1gz2AsAZQ_0[27].name = "timezone";
TM__6NbDwwj5FY059b1gz2AsAZQ_54_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 = (&NTI__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_54_12[0];
NTI__d9cK9cyKZPJJxFXUmx8dSpPw_.node = &TM__6NbDwwj5FY059b1gz2AsAZQ_0[8];
}

