/* Generated by Nim Compiler v0.19.0 */
/*   (c) 2018 Andreas Rumpf */
/* The generated code is subject to the original license. */
#define NIM_NEW_MANGLING_RULES
#define NIM_INTBITS 32

#include "nimbase.h"
#include <time.h>
#include <sys/select.h>
#include <sys/types.h>
#include <string.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
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_WCz3Z7at9aJyVFSh5OmwJNg tyTuple_WCz3Z7at9aJyVFSh5OmwJNg;
typedef struct tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ;
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_HSlice_EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA;
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;
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_bs1dgeTxHIjPGTR9axkkHbg;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw {
tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromTimeImpl;
tyProc_bs1dgeTxHIjPGTR9axkkHbg 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;
tyEnum_TNimKind_jIBKr1ejBgsfM33Kxw4j7A kind;
tySet_tyEnum_TNimTypeFlag_v8QUszD1sWlSIWZz7mC4bQ flags;
TNimType* base;
TNimNode* node;
void* finalizer;
tyProc_ojoeKfW4VYIm36I9cpDTQIg marker;
tyProc_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
};
struct tyTuple_WCz3Z7at9aJyVFSh5OmwJNg {
void* Field0;
tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ* 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_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ {
  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_Month_JS0JuFvCBbC2GL3xXBnPQw;
typedef NU8 tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg;
struct tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw {
  RootObj Sup;
NI nanosecond;
NI second;
NI minute;
NI hour;
NI monthday;
tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month;
NI year;
tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg weekday;
NI yearday;
NIM_BOOL isDst;
tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* timezone;
NI utcOffset;
};
struct tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
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_25) (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_SiRwrEKZdLgxqz9a9aoVBglg[512];
typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
};
typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
tyArray_0aOLqZchNi8nWtMTi8ND8w link;
NI key;
NI upperBound;
NI level;
};
struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
NI Field1;
};
typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
NI len;
tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
};
struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
NI minLargeObj;
NI maxLargeObj;
tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
NU32 flBitmap;
tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
NI currMem;
NI maxMem;
NI freeMem;
NI occ;
NI lastSize;
tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
NIM_BOOL locked;
NIM_BOOL blockChunkSizeIncrease;
NI nextChunkSize;
tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
};
struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
NI stackScans;
NI cycleCollections;
NI maxThreshold;
NI maxStackSize;
NI maxStackCells;
NI cycleTableSize;
NI64 maxPause;
};
struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
NI counter;
NI max;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
};
struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
NI cycleThreshold;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
NI recGcLock;
tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
NI gcThreadId;
};
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_26) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, void* ClE_0);
typedef N_CLOSURE_PTR(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, TM_6NbDwwj5FY059b1gz2AsAZQ_27) (tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q adjTime, void* ClE_0);
struct tySequence_6H5Oh5UUvVCLiakt9aTwtUQ {
  TGenericSeq Sup;
  NU8 data[SEQ_DECL_SIZE];
};
static N_NIMCALL(void, Marker_tyRef_qs7rcJOE2Bz63jdUEPJtIg)(void* p, NI op);
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_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_2Mfumf6CnyNlShDWdIgobwsystem)(void* a, int v, NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_RYo3aJ9abgjkx1sY2s09aNEA)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA f);
N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, formatPattern_nIS14X8PA0CwDGOyKfChaw)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result);
N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x);
static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
static N_INLINE(void, copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size);
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest, NI addlen);
N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, nsuIntToStr)(NI x, NI minchars);
static N_INLINE(NimStringDesc*, X5BX5D__SeS5h9bMpIkS1zha7iXXRaAnimblecmd)(NimStringDesc* s, tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA x);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, mnewString)(NI len);
N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
static N_INLINE(tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA, dotdot__gZc19czncDHf5RCNZiquNrQnimblecmd)(NI a, NI b);
N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
static N_INLINE(NI, convert_S5tcq44i9aR2w3JsLAahFrQtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
static N_INLINE(void, appendChar)(NimStringDesc* dest, NIM_CHAR c);
N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a, NimStringDesc* b);
static N_INLINE(NIM_BOOL, equalMem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a, void* b, NI size);
static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size);
N_LIB_PRIVATE N_NIMCALL(void, inZone_iGIETwnU9aL9a9azchD7uIsBw)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result);
N_LIB_PRIVATE N_NIMCALL(void, initDateTime_9cjTDoh0YFNVFpY3GfapxqQ)(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_MABftnLbgeoJ2YU4meiGug)(NI64 seconds, NI64 nanoseconds);
static N_INLINE(NI64, convert_qLUW0NdF1GYEPO7DWw0ntgtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI64 quantity);
static N_INLINE(NI, convert_BaHZhTECbIab21aey78Ozgtimes)(tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitFrom, tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ unitTo, NI quantity);
N_LIB_PRIVATE N_NIMCALL(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw, initDuration_EjaBAtfRmIw9c8MVpZyLTAg)(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_Zdw9awMN3mWHIiqmlxFaGrw)(NI64 seconds, NI64 nanoseconds);
N_LIB_PRIVATE N_NIMCALL(NI64, floorDiv_Nvq3S3GNjkBxHjfOZFJjRw)(NI64 x, NI64 y);
N_LIB_PRIVATE N_NIMCALL(tyTuple_XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay_mJEaQzDB47WyotCnk4B9c2A)(NI64 epochday);
N_NIMCALL(void, genericReset)(void* dest, TNimType* mt);
N_LIB_PRIVATE N_NIMCALL(tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg, getDayOfWeek_NgjKhNpZaAlscp2jmCchuA)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
static N_INLINE(void, assertValidDate_oFHP8g45fJYczB5bgKWFQQtimes)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay_BB6kKpP0ite6Jp9a5rrEt5w)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NI, getDayOfYear_MH9agrbA2S9bCWbHnQW6iSgg)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isLeapYear_yparhddyYdVywEbz0lSrTA)(NI year);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, zonedTimeFromTime_Rxfqncxm2ZLhLZdNFIq9a9bw)(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, utc_iX2Ltm3Mj5gsgJ5hFxUKgQ)(void);
N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone_tF9bfmgadDtneoj4dZjS8QQ)(NimStringDesc* name, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromTimeImpl, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromAdjTimeImpl);
N_NIMCALL(void*, newObj)(TNimType* typ, NI size);
N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src);
static N_INLINE(void, nimGCunrefNoCycle)(void* p);
static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr);
static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NOINLINE(void, addZCT_fCDI7oO1NNVXXURtxSzsRw)(tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, asgnRef)(void** dest, void* src);
static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c);
N_LIB_PRIVATE N_NIMCALL(tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ, utcTzInfo_ODvPcoZ6jtenmqLq9aVXBvg)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time);
N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, initTime_UQc07zVQAYQ0by6TamgL9bQ)(NI64 unix, NI nanosecond);
tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* utcInstance_oeKVHn4dFpBJO35HhEkelw;
TNimType NTI_F8OvqlxXyGXRSiK9c1fCDVw_;
TNimType NTI_bs1dgeTxHIjPGTR9axkkHbg_;
extern TNimType NTI_vr5DoT1jILTGdRlYv1OYpw_;
extern TNimType NTI_ytyiCJqK439aF9cIibuRVpAg_;
TNimType NTI_4Ve8wOWSE8Hdar7fr5TdwQ_;
TNimType NTI_qs7rcJOE2Bz63jdUEPJtIg_;
extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg_;
TNimType NTI_9a5v4OQPlGqsA25ioN8hFYA_;
tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* localInstance_cLtN9cK9bCe6IPhJ3UFNLNKA;
TNimType NTI_SVfemTA9aCOyua2TJYa6yBg_;
TNimType NTI_JS0JuFvCBbC2GL3xXBnPQw_;
TNimType NTI_d9cK9cyKZPJJxFXUmx8dSpPw_;
extern TNimType NTI_PpavWgyrx5odXyR89aNlcWA_;
extern TNimType NTI_rUuqTvFmkC6KKRqDAazGEA_;
extern TNimType NTI_LBgXxpmYOpS8xroRZgNvbg_;
extern TNimType NTI_Gz6vwaK0PZQIDIwfuvKsOg_;
extern TNimType NTI_DcZ5N67dL3rBj9bxGtx09bFg_;
extern TNimType NTI_rR5Bzr1D5krxoo1NcNyeMA_;
extern TNimType NTI_g9buja9c9aeh0rkDpqsXOJF9bA_;
extern TNimType NTI_VaVACK0bpYmqIQ0mKcHfQQ_;
extern tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_9, "12", 2);
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_13, "P", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_14, "A", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_15, "PM", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_16, "AM", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_17, "Etc/UTC", 7);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_18, ":", 1);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_19, "BC", 2);
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_20, "AD", 2);
NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[9];
} TM_6NbDwwj5FY059b1gz2AsAZQ_22 = {{9, 9 | NIM_STRLIT_FLAG}, {((NU8) 24),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 11),
((NU8) 34),
((NU8) 1),
((NU8) 45),
((NU8) 1)}};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_23, "yyyy-MM-dd", 10);
NIM_CONST tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA TM_6NbDwwj5FY059b1gz2AsAZQ_21 = {((tySequence_6H5Oh5UUvVCLiakt9aTwtUQ*)&TM_6NbDwwj5FY059b1gz2AsAZQ_22), ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_23)};
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)}
;
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)}
;
NIM_CONST struct {
  TGenericSeq Sup;
  NU8 data[9];
} TM_6NbDwwj5FY059b1gz2AsAZQ_29 = {{9, 9 | NIM_STRLIT_FLAG}, {((NU8) 7),
((NU8) 34),
((NU8) 1),
((NU8) 58),
((NU8) 9),
((NU8) 34),
((NU8) 1),
((NU8) 58),
((NU8) 15)}};
STRING_LITERAL(TM_6NbDwwj5FY059b1gz2AsAZQ_30, "HH:mm:ss", 8);
NIM_CONST tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA TM_6NbDwwj5FY059b1gz2AsAZQ_28 = {((tySequence_6H5Oh5UUvVCLiakt9aTwtUQ*)&TM_6NbDwwj5FY059b1gz2AsAZQ_29), ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_30)};
static N_NIMCALL(void, Marker_tyRef_qs7rcJOE2Bz63jdUEPJtIg)(void* p, NI op) {
	tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ* a;
	a = (tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ*)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_2Mfumf6CnyNlShDWdIgobwsystem)(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_2Mfumf6CnyNlShDWdIgobwsystem(p, ((int) 0), size);
}

N_LIB_PRIVATE N_NIMCALL(NF, ntepochTime)(void) {
	NF result;
	struct timeval a;
	result = (NF)0;
	nimZeroMem((void*)(&a), sizeof(struct timeval));
	gettimeofday((&a), NIM_NIL);
	result = ((NF)(((double) (((NI64) (a.tv_sec))))) + (NF)(((NF)(((double) (a.tv_usec))) * (NF)(9.9999999999999995e-07))));
	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_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest, void* source, NI size) {
	nimCopyMem(dest, source, size);
}

static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
	{
		if (!!((src == NIM_NIL))) goto LA3_;
		copyMem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest).data[((*dest).Sup.len)- 0]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
		(*dest).Sup.len += (*src).Sup.len;
	}
	LA3_: ;
}

static N_INLINE(NimStringDesc*, X5BX5D__SeS5h9bMpIkS1zha7iXXRaAnimblecmd)(NimStringDesc* s, tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA x) {
	NimStringDesc* result;
	NI a;
	NI L;
	result = (NimStringDesc*)0;
	a = x.a;
	L = (NI)((NI)(x.b - a) + ((NI) 1));
	result = mnewString(((NI) (L)));
	{
		NI i;
		NI i_2;
		i = (NI)0;
		i_2 = ((NI) 0);
		{
			while (1) {
				if (!(i_2 < L)) goto LA3;
				i = i_2;
				result->data[i] = s->data[(NI)(i + a)];
				i_2 += ((NI) 1);
			} LA3: ;
		}
	}
	return result;
}

static N_INLINE(tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA, dotdot__gZc19czncDHf5RCNZiquNrQnimblecmd)(NI a, NI b) {
	tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA result;
	nimZeroMem((void*)(&result), sizeof(tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA));
	result.a = a;
	result.b = b;
	return result;
}

static N_INLINE(NI, convert_S5tcq44i9aR2w3JsLAahFrQtimes)(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)- 0] = c;
	(*dest).data[((NI)((*dest).Sup.len + ((NI) 1)))- 0] = 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_DCrUjdaMvFDHaR1hs7sQGwropes)(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_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((&a->data[((NI) 0)]))), ((void*) ((&b->data[((NI) 0)]))), ((NI) (alen)));
		goto BeforeRet_;
	}
	LA3_: ;
	}BeforeRet_: ;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, formatPattern_nIS14X8PA0CwDGOyKfChaw)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ pattern, NimStringDesc** result) {
	switch (pattern) {
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 0):
	{
		NimStringDesc* T2_;
		T2_ = (NimStringDesc*)0;
		T2_ = nimIntToStr(((NI) ((*dt).monthday)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T2_ ? T2_->Sup.len : 0) + 0));
appendString((*result), T2_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 1):
	{
		NimStringDesc* T4_;
		T4_ = (NimStringDesc*)0;
		T4_ = nsuIntToStr(((NI) ((*dt).monthday)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T4_ ? T4_->Sup.len : 0) + 0));
appendString((*result), T4_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 2):
	{
		tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA T6_;
		NimStringDesc* T7_;
		T6_ = dotdot__gZc19czncDHf5RCNZiquNrQnimblecmd(((NI) 0), ((NI) 2));
		T7_ = (NimStringDesc*)0;
		T7_ = X5BX5D__SeS5h9bMpIkS1zha7iXXRaAnimblecmd(reprEnum((NI)(*dt).weekday, (&NTI_SVfemTA9aCOyua2TJYa6yBg_)), T6_);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T7_ ? T7_->Sup.len : 0) + 0));
appendString((*result), T7_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 3):
	{
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (reprEnum((NI)(*dt).weekday, (&NTI_SVfemTA9aCOyua2TJYa6yBg_)) ? reprEnum((NI)(*dt).weekday, (&NTI_SVfemTA9aCOyua2TJYa6yBg_))->Sup.len : 0) + 0));
appendString((*result), reprEnum((NI)(*dt).weekday, (&NTI_SVfemTA9aCOyua2TJYa6yBg_)));
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 4):
	{
		NimStringDesc* T10_;
		T10_ = (NimStringDesc*)0;
		{
			if (!(((NI) ((*dt).hour)) == ((NI) 0))) goto LA13_;
			T10_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_9));
		}
		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_9));
		}
		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):
	{
		NimStringDesc* T38_;
		T38_ = (NimStringDesc*)0;
		T38_ = nimIntToStr((*dt).month);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T38_ ? T38_->Sup.len : 0) + 0));
appendString((*result), T38_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 11):
	{
		NimStringDesc* T40_;
		T40_ = (NimStringDesc*)0;
		T40_ = nsuIntToStr((*dt).month, ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T40_ ? T40_->Sup.len : 0) + 0));
appendString((*result), T40_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 12):
	{
		tyObject_HSlice_EE5dzjqoOrHT6HJhIPXAvA T42_;
		NimStringDesc* T43_;
		T42_ = dotdot__gZc19czncDHf5RCNZiquNrQnimblecmd(((NI) 0), ((NI) 2));
		T43_ = (NimStringDesc*)0;
		T43_ = X5BX5D__SeS5h9bMpIkS1zha7iXXRaAnimblecmd(reprEnum((NI)(*dt).month, (&NTI_JS0JuFvCBbC2GL3xXBnPQw_)), T42_);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T43_ ? T43_->Sup.len : 0) + 0));
appendString((*result), T43_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 13):
	{
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (reprEnum((NI)(*dt).month, (&NTI_JS0JuFvCBbC2GL3xXBnPQw_)) ? reprEnum((NI)(*dt).month, (&NTI_JS0JuFvCBbC2GL3xXBnPQw_))->Sup.len : 0) + 0));
appendString((*result), reprEnum((NI)(*dt).month, (&NTI_JS0JuFvCBbC2GL3xXBnPQw_)));
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 14):
	{
		NimStringDesc* T46_;
		T46_ = (NimStringDesc*)0;
		T46_ = nimIntToStr(((NI) ((*dt).second)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T46_ ? T46_->Sup.len : 0) + 0));
appendString((*result), T46_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 15):
	{
		NimStringDesc* T48_;
		T48_ = (NimStringDesc*)0;
		T48_ = nsuIntToStr(((NI) ((*dt).second)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T48_ ? T48_->Sup.len : 0) + 0));
appendString((*result), T48_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 16):
	{
		NI T50_;
		NimStringDesc* T51_;
		T50_ = (NI)0;
		T50_ = convert_S5tcq44i9aR2w3JsLAahFrQtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 2), (*dt).nanosecond);
		T51_ = (NimStringDesc*)0;
		T51_ = nsuIntToStr(((NI) (T50_)), ((NI) 3));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T51_ ? T51_->Sup.len : 0) + 0));
appendString((*result), T51_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 17):
	{
		NI T53_;
		NimStringDesc* T54_;
		T53_ = (NI)0;
		T53_ = convert_S5tcq44i9aR2w3JsLAahFrQtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 1), (*dt).nanosecond);
		T54_ = (NimStringDesc*)0;
		T54_ = nsuIntToStr(((NI) (T53_)), ((NI) 6));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T54_ ? T54_->Sup.len : 0) + 0));
appendString((*result), T54_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 18):
	{
		NimStringDesc* T56_;
		T56_ = (NimStringDesc*)0;
		T56_ = nsuIntToStr(((NI) ((*dt).nanosecond)), ((NI) 9));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T56_ ? T56_->Sup.len : 0) + 0));
appendString((*result), T56_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 19):
	{
		NimStringDesc* T58_;
		T58_ = (NimStringDesc*)0;
		{
			if (!(((NI) 12) <= ((NI) ((*dt).hour)))) goto LA61_;
			T58_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_13));
		}
		goto LA59_;
		LA61_: ;
		{
			T58_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_14));
		}
		LA59_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T58_ ? T58_->Sup.len : 0) + 0));
appendString((*result), T58_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 20):
	{
		NimStringDesc* T65_;
		T65_ = (NimStringDesc*)0;
		{
			if (!(((NI) 12) <= ((NI) ((*dt).hour)))) goto LA68_;
			T65_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_15));
		}
		goto LA66_;
		LA68_: ;
		{
			T65_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_16));
		}
		LA66_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T65_ ? T65_->Sup.len : 0) + 0));
appendString((*result), T65_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 21):
	{
		NI T72_;
		NimStringDesc* T78_;
		T72_ = (NI)0;
		{
			if (!((*dt).year <= ((NI) 0))) goto LA75_;
			T72_ = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
		}
		goto LA73_;
		LA75_: ;
		{
			T72_ = (*dt).year;
		}
		LA73_: ;
		T78_ = (NimStringDesc*)0;
		T78_ = nimIntToStr((NI)(T72_ % ((NI) 10)));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T78_ ? T78_->Sup.len : 0) + 0));
appendString((*result), T78_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 22):
	{
		NI T80_;
		NimStringDesc* T86_;
		T80_ = (NI)0;
		{
			if (!((*dt).year <= ((NI) 0))) goto LA83_;
			T80_ = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
		}
		goto LA81_;
		LA83_: ;
		{
			T80_ = (*dt).year;
		}
		LA81_: ;
		T86_ = (NimStringDesc*)0;
		T86_ = nsuIntToStr((NI)(T80_ % ((NI) 100)), ((NI) 2));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T86_ ? T86_->Sup.len : 0) + 0));
appendString((*result), T86_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 23):
	{
		NI T88_;
		NimStringDesc* T94_;
		T88_ = (NI)0;
		{
			if (!((*dt).year <= ((NI) 0))) goto LA91_;
			T88_ = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
		}
		goto LA89_;
		LA91_: ;
		{
			T88_ = (*dt).year;
		}
		LA89_: ;
		T94_ = (NimStringDesc*)0;
		T94_ = nsuIntToStr((NI)(T88_ % ((NI) 1000)), ((NI) 3));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T94_ ? T94_->Sup.len : 0) + 0));
appendString((*result), T94_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 24):
	{
		NI year;
		{
			if (!((*dt).year <= ((NI) 0))) goto LA98_;
			year = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
		}
		goto LA96_;
		LA98_: ;
		{
			year = (*dt).year;
		}
		LA96_: ;
		{
			NimStringDesc* T105_;
			if (!(year < ((NI) 10000))) goto LA103_;
			T105_ = (NimStringDesc*)0;
			T105_ = nsuIntToStr(year, ((NI) 4));
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T105_ ? T105_->Sup.len : 0) + 0));
appendString((*result), T105_);
		}
		goto LA101_;
		LA103_: ;
		{
			NimStringDesc* T107_;
			NimStringDesc* T108_;
			T107_ = (NimStringDesc*)0;
			T108_ = (NimStringDesc*)0;
			T108_ = nimIntToStr(year);
			T107_ = rawNewString((T108_ ? T108_->Sup.len : 0) + 1);
appendChar(T107_, 43);
appendString(T107_, T108_);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T107_ ? T107_->Sup.len : 0) + 0));
appendString((*result), T107_);
		}
		LA101_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 25):
	{
		NI T110_;
		NimStringDesc* T116_;
		T110_ = (NI)0;
		{
			if (!((*dt).year <= ((NI) 0))) goto LA113_;
			T110_ = (NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1));
		}
		goto LA111_;
		LA113_: ;
		{
			T110_ = (*dt).year;
		}
		LA111_: ;
		T116_ = (NimStringDesc*)0;
		T116_ = nsuIntToStr((NI)(T110_ % ((NI) 100000)), ((NI) 5));
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T116_ ? T116_->Sup.len : 0) + 0));
appendString((*result), T116_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 26):
	{
		{
			NimStringDesc* T122_;
			if (!((*dt).year < ((NI) 1))) goto LA120_;
			T122_ = (NimStringDesc*)0;
			T122_ = nimIntToStr((NI)(((*dt).year > 0? ((*dt).year) : -((*dt).year)) + ((NI) 1)));
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T122_ ? T122_->Sup.len : 0) + 0));
appendString((*result), T122_);
		}
		goto LA118_;
		LA120_: ;
		{
			NimStringDesc* T124_;
			T124_ = (NimStringDesc*)0;
			T124_ = nimIntToStr((*dt).year);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T124_ ? T124_->Sup.len : 0) + 0));
appendString((*result), T124_);
		}
		LA118_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 27):
	{
		NI year_2;
		year_2 = (*dt).year;
		{
			NIM_BOOL T128_;
			NimStringDesc* T132_;
			T128_ = (NIM_BOOL)0;
			T128_ = (year_2 < ((NI) 10000));
			if (T128_) goto LA129_;
			T128_ = (year_2 < ((NI) 0));
			LA129_: ;
			if (!T128_) goto LA130_;
			T132_ = (NimStringDesc*)0;
			T132_ = nsuIntToStr(year_2, ((NI) 4));
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T132_ ? T132_->Sup.len : 0) + 0));
appendString((*result), T132_);
		}
		goto LA126_;
		LA130_: ;
		{
			NimStringDesc* T134_;
			NimStringDesc* T135_;
			T134_ = (NimStringDesc*)0;
			T135_ = (NimStringDesc*)0;
			T135_ = nimIntToStr(year_2);
			T134_ = rawNewString((T135_ ? T135_->Sup.len : 0) + 1);
appendChar(T134_, 43);
appendString(T134_, T135_);
			unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T134_ ? T134_->Sup.len : 0) + 0));
appendString((*result), T134_);
		}
		LA126_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 28):
	{
		NimStringDesc* T137_;
		T137_ = (NimStringDesc*)0;
		T137_ = nimIntToStr((*dt).year);
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T137_ ? T137_->Sup.len : 0) + 0));
appendString((*result), T137_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 29):
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 30):
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 31):
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 32):
	{
		{
			if (!eqStrings((*(*dt).timezone).name, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_17))) goto LA141_;
			unsureAsgnRef((void**) (&(*result)), addChar((*result), 90));
		}
		goto LA139_;
		LA141_: ;
		{
			NIM_CHAR T144_;
			NI absOffset;
			T144_ = (NIM_CHAR)0;
			{
				if (!(((NI) 0) <= ((NI32)-((*dt).utcOffset)))) goto LA147_;
				T144_ = 43;
			}
			goto LA145_;
			LA147_: ;
			{
				T144_ = 45;
			}
			LA145_: ;
			unsureAsgnRef((void**) (&(*result)), addChar((*result), T144_));
			absOffset = ((*dt).utcOffset > 0? ((*dt).utcOffset) : -((*dt).utcOffset));
			switch (pattern) {
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 29):
			{
				NimStringDesc* T151_;
				T151_ = (NimStringDesc*)0;
				T151_ = nimIntToStr((NI)(absOffset / ((NI) 3600)));
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T151_ ? T151_->Sup.len : 0) + 0));
appendString((*result), T151_);
			}
			break;
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 30):
			{
				NimStringDesc* T153_;
				T153_ = (NimStringDesc*)0;
				T153_ = nsuIntToStr((NI)(absOffset / ((NI) 3600)), ((NI) 2));
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T153_ ? T153_->Sup.len : 0) + 0));
appendString((*result), T153_);
			}
			break;
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 31):
			{
				NimStringDesc* h;
				NimStringDesc* m;
				NimStringDesc* T155_;
				h = nsuIntToStr((NI)(absOffset / ((NI) 3600)), ((NI) 2));
				m = nsuIntToStr((NI)((NI)(absOffset / ((NI) 60)) % ((NI) 60)), ((NI) 2));
				T155_ = (NimStringDesc*)0;
				T155_ = rawNewString((h ? h->Sup.len : 0) + (m ? m->Sup.len : 0) + 1);
appendString(T155_, h);
appendString(T155_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_18));
appendString(T155_, m);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T155_ ? T155_->Sup.len : 0) + 0));
appendString((*result), T155_);
			}
			break;
			case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 32):
			{
				NI absOffset_2;
				NimStringDesc* h_2;
				NimStringDesc* m_2;
				NimStringDesc* s;
				NimStringDesc* T157_;
				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));
				T157_ = (NimStringDesc*)0;
				T157_ = rawNewString((h_2 ? h_2->Sup.len : 0) + (m_2 ? m_2->Sup.len : 0) + (s ? s->Sup.len : 0) + 2);
appendString(T157_, h_2);
appendString(T157_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_18));
appendString(T157_, m_2);
appendString(T157_, ((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_18));
appendString(T157_, s);
				unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T157_ ? T157_->Sup.len : 0) + 0));
appendString((*result), T157_);
			}
			break;
			default:
			{
			}
			break;
			}
		}
		LA139_: ;
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 33):
	{
		NimStringDesc* T160_;
		T160_ = (NimStringDesc*)0;
		{
			if (!((*dt).year < ((NI) 1))) goto LA163_;
			T160_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_19));
		}
		goto LA161_;
		LA163_: ;
		{
			T160_ = copyString(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_20));
		}
		LA161_: ;
		unsureAsgnRef((void**) (&(*result)), resizeString((*result), (T160_ ? T160_->Sup.len : 0) + 0));
appendString((*result), T160_);
	}
	break;
	case ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) 34):
	{
	}
	break;
	}
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_RYo3aJ9abgjkx1sY2s09aNEA)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt, tyObject_TimeFormat_Nsh4TB3AD6ERMz3D74BTxA f) {
	NimStringDesc* result;
	NI idx;
	result = (NimStringDesc*)0;
	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) 34):
			{
				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_nIS14X8PA0CwDGOyKfChaw(dt, ((tyEnum_FormatPattern_asapJ9b4qGHESR0g3CfbCjQ) (f.patterns->data[idx])), (&result));
				idx += ((NI) 1);
			}
			break;
			}
		} LA2: ;
	}
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_8d9b37ZuYnTBkUlVthHldNQ)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format_RYo3aJ9abgjkx1sY2s09aNEA(dt, TM_6NbDwwj5FY059b1gz2AsAZQ_21);
	return result;
}

static N_INLINE(NI64, convert_qLUW0NdF1GYEPO7DWw0ntgtimes)(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_BaHZhTECbIab21aey78Ozgtimes)(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_MABftnLbgeoJ2YU4meiGug)(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_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	result.seconds = (NI64)(seconds + T1_);
	T2_ = (NI)0;
	T2_ = convert_BaHZhTECbIab21aey78Ozgtimes(((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_BaHZhTECbIab21aey78Ozgtimes(((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_MABftnLbgeoJ2YU4meiGug((NI64)(a.seconds - b.seconds), ((NI64) ((NI)(((NI) (a.nanosecond)) - ((NI) (b.nanosecond))))));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Duration_lj9ar6Co3fgk6NgGnVaNpJw, normalize_Zdw9awMN3mWHIiqmlxFaGrw)(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_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), nanoseconds);
	result.seconds = (NI64)(seconds + T1_);
	T2_ = (NI)0;
	T2_ = convert_BaHZhTECbIab21aey78Ozgtimes(((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_BaHZhTECbIab21aey78Ozgtimes(((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_EjaBAtfRmIw9c8MVpZyLTAg)(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_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 7), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), weeks);
	T2_ = (NI64)0;
	T2_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 6), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), days);
	T3_ = (NI64)0;
	T3_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 4), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), minutes);
	T4_ = (NI64)0;
	T4_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 5), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), hours);
	T5_ = (NI64)0;
	T5_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), seconds);
	T6_ = (NI64)0;
	T6_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), milliseconds);
	T7_ = (NI64)0;
	T7_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 1), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 3), microseconds);
	T8_ = (NI64)0;
	T8_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((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_qLUW0NdF1GYEPO7DWw0ntgtimes(((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 2), ((tyEnum_TimeUnit_52alPn04ElUUbqLeok9b3PQ) 0), (NI64)(milliseconds % IL64(1000)));
	T10_ = (NI64)0;
	T10_ = convert_qLUW0NdF1GYEPO7DWw0ntgtimes(((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_Zdw9awMN3mWHIiqmlxFaGrw(seconds_2, ((NI64) (nanoseconds_2)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyTuple_XjuGlLf9cyYx66ViXrBCvPQ, fromEpochDay_mJEaQzDB47WyotCnk4B9c2A)(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_;
{	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_)));
	result.Field0 = ((NI) (d));
	result.Field1 = ((tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw) (m));
	result.Field2 = ((NI) ((NI64)(y + ((NI64) ((m <= IL64(2)))))));
	goto BeforeRet_;
	}BeforeRet_: ;
	return result;
}

static N_INLINE(void, assertValidDate_oFHP8g45fJYczB5bgKWFQQtimes)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
}

N_LIB_PRIVATE N_NIMCALL(NI64, toEpochDay_BB6kKpP0ite6Jp9a5rrEt5w)(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_oFHP8g45fJYczB5bgKWFQQtimes(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_NgjKhNpZaAlscp2jmCchuA)(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_oFHP8g45fJYczB5bgKWFQQtimes(monthday, month, year);
	T1_ = (NI64)0;
	T1_ = toEpochDay_BB6kKpP0ite6Jp9a5rrEt5w(monthday, month, year);
	days = (NI64)(T1_ - IL64(3));
	weeks = floorDiv_Nvq3S3GNjkBxHjfOZFJjRw(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_yparhddyYdVywEbz0lSrTA)(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_MH9agrbA2S9bCWbHnQW6iSgg)(NI monthday, tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw month, NI year) {
	NI result;
	result = (NI)0;
	assertValidDate_oFHP8g45fJYczB5bgKWFQQtimes(monthday, month, year);
	{
		NIM_BOOL T3_;
		T3_ = (NIM_BOOL)0;
		T3_ = isLeapYear_yparhddyYdVywEbz0lSrTA(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_9cjTDoh0YFNVFpY3GfapxqQ)(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_EjaBAtfRmIw9c8MVpZyLTAg(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_Nvq3S3GNjkBxHjfOZFJjRw(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_mJEaQzDB47WyotCnk4B9c2A(epochday);
	d = T2_.Field0;
	m = T2_.Field1;
	y = T2_.Field2;
	genericReset((void*)Result, (&NTI_d9cK9cyKZPJJxFXUmx8dSpPw_));
	(*Result).Sup.m_type = (&NTI_d9cK9cyKZPJJxFXUmx8dSpPw_);
	(*Result).year = y;
	(*Result).month = m;
	(*Result).monthday = d;
	(*Result).hour = ((NI) (hour));
	(*Result).minute = ((NI) (minute));
	(*Result).second = ((NI) (second));
	(*Result).nanosecond = zt.time.nanosecond;
	(*Result).weekday = getDayOfWeek_NgjKhNpZaAlscp2jmCchuA(d, m, y);
	(*Result).yearday = getDayOfYear_MH9agrbA2S9bCWbHnQW6iSgg(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_Rxfqncxm2ZLhLZdNFIq9a9bw)(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_25)((*zone).zonedTimeFromTimeImpl.ClP_0))(time);
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, inZone_iGIETwnU9aL9a9azchD7uIsBw)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q time, tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* zone, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_ZonedTime_WigfH9apQAxJ69bBPh3wB8RQ T1_;
	T1_ = zonedTimeFromTime_Rxfqncxm2ZLhLZdNFIq9a9bw(zone, time);
	initDateTime_9cjTDoh0YFNVFpY3GfapxqQ(T1_, zone, Result);
}

static N_INLINE(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* result;
	result = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
	result = ((tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (ptrdiff_t) (usr))) - (NU32)(((NI)sizeof(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g))))));
	return result;
}

static N_INLINE(void, rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	addZCT_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c);
}

static N_INLINE(void, nimGCunrefNoCycle)(void* p) {
	tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c;
	c = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p);
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}

static N_INLINE(void, incRef_9cAA5YuQAAC3MVbnGeV86swsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	(*c).refcount = (NI)((NU32)((*c).refcount) + (NU32)(((NI) 8)));
}

static N_INLINE(void, decRef_MV4BBk6J1qu70IbBxwEn4wsystem)(tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* c) {
	{
		(*c).refcount -= ((NI) 8);
		if (!((NU32)((*c).refcount) < (NU32)(((NI) 8)))) goto LA3_;
		rtlAddZCT_MV4BBk6J1qu70IbBxwEn4w_2system(c);
	}
	LA3_: ;
}

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_yB9aH5WIlwd0xkYrcdPeXrQsystem(src);
		incRef_9cAA5YuQAAC3MVbnGeV86swsystem(T5_);
	}
	LA3_: ;
	{
		tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g* T10_;
		if (!!(((*dest) == NIM_NIL))) goto LA8_;
		T10_ = (tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0;
		T10_ = usrToCell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest));
		decRef_MV4BBk6J1qu70IbBxwEn4wsystem(T10_);
	}
	LA8_: ;
	(*dest) = src;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*, newTimezone_tF9bfmgadDtneoj4dZjS8QQ)(NimStringDesc* name, tyProc_bs1dgeTxHIjPGTR9axkkHbg zonedTimeFromTimeImpl, tyProc_bs1dgeTxHIjPGTR9axkkHbg 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_ODvPcoZ6jtenmqLq9aVXBvg)(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_iX2Ltm3Mj5gsgJ5hFxUKgQ)(void) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* result;
	result = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	{
		tyProc_bs1dgeTxHIjPGTR9axkkHbg T5_;
		tyProc_bs1dgeTxHIjPGTR9axkkHbg T6_;
		if (!(utcInstance_oeKVHn4dFpBJO35HhEkelw == 0)) goto LA3_;
		nimZeroMem((void*)(&T5_), sizeof(tyProc_bs1dgeTxHIjPGTR9axkkHbg));
		T5_.ClP_0 = ((TM_6NbDwwj5FY059b1gz2AsAZQ_26) (utcTzInfo_ODvPcoZ6jtenmqLq9aVXBvg)); T5_.ClE_0 = NIM_NIL;
		nimZeroMem((void*)(&T6_), sizeof(tyProc_bs1dgeTxHIjPGTR9axkkHbg));
		T6_.ClP_0 = ((TM_6NbDwwj5FY059b1gz2AsAZQ_27) (utcTzInfo_ODvPcoZ6jtenmqLq9aVXBvg)); T6_.ClE_0 = NIM_NIL;
		asgnRef((void**) (&utcInstance_oeKVHn4dFpBJO35HhEkelw), newTimezone_tF9bfmgadDtneoj4dZjS8QQ(((NimStringDesc*) &TM_6NbDwwj5FY059b1gz2AsAZQ_17), T5_, T6_));
	}
	LA3_: ;
	result = utcInstance_oeKVHn4dFpBJO35HhEkelw;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(void, utc_GO0pnrIM1y5cQBpG7t80Hw)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q t, tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* Result) {
	tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw* T1_;
	T1_ = (tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*)0;
	T1_ = utc_iX2Ltm3Mj5gsgJ5hFxUKgQ();
	inZone_iGIETwnU9aL9a9azchD7uIsBw(t, T1_, Result);
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, initTime_UQc07zVQAYQ0by6TamgL9bQ)(NI64 unix, NI nanosecond) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	result.seconds = unix;
	result.nanosecond = nanosecond;
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, fromUnix_mQxSxuGBEOTpMpc0mYiLug)(NI64 unix) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	result = initTime_UQc07zVQAYQ0by6TamgL9bQ(unix, ((NI) 0));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q, getTime_z1J1LTz0PaW69aOYdwxieyA)(void) {
	tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q result;
	struct timespec ts;
	int T1_;
	nimZeroMem((void*)(&result), sizeof(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q));
	nimZeroMem((void*)(&ts), sizeof(struct timespec));
	T1_ = (int)0;
	T1_ = clock_gettime(CLOCK_REALTIME, (&ts));
	T1_;
	result = initTime_UQc07zVQAYQ0by6TamgL9bQ(((NI64) (ts.tv_sec)), ((NI) (ts.tv_nsec)));
	return result;
}

N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, format_7GI9blEjaoK6g9cY79aeAZuLw)(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw* dt) {
	NimStringDesc* result;
	result = (NimStringDesc*)0;
	result = format_RYo3aJ9abgjkx1sY2s09aNEA(dt, TM_6NbDwwj5FY059b1gz2AsAZQ_28);
	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, toUnix_2PHuMKQOJXqfMl9b5IooHOg)(tyObject_Time_3y2ZpqsTJLqdZvpC9a0rU2Q t) {
	NI64 result;
	result = (NI64)0;
	result = t.seconds;
	return result;
}
N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesInit000)(void) {
{
	TFrame FR_; FR_.len = 0;
}
nimRegisterThreadLocalMarker(TM_6NbDwwj5FY059b1gz2AsAZQ_4);
nimRegisterThreadLocalMarker(TM_6NbDwwj5FY059b1gz2AsAZQ_5);
	tzset();
}

N_LIB_PRIVATE N_NIMCALL(void, stdlib_timesDatInit000)(void) {
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_2[3];
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_3[2];
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_6[7];
NI TM_6NbDwwj5FY059b1gz2AsAZQ_8;
static char* NIM_CONST TM_6NbDwwj5FY059b1gz2AsAZQ_7[7] = {
"Monday", 
"Tuesday", 
"Wednesday", 
"Thursday", 
"Friday", 
"Saturday", 
"Sunday"};
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_10[12];
NI TM_6NbDwwj5FY059b1gz2AsAZQ_12;
static char* NIM_CONST TM_6NbDwwj5FY059b1gz2AsAZQ_11[12] = {
"January", 
"February", 
"March", 
"April", 
"May", 
"June", 
"July", 
"August", 
"September", 
"October", 
"November", 
"December"};
static TNimNode* TM_6NbDwwj5FY059b1gz2AsAZQ_24[12];
static TNimNode TM_6NbDwwj5FY059b1gz2AsAZQ_0[42];
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.size = sizeof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw);
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.kind = 18;
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.base = 0;
TM_6NbDwwj5FY059b1gz2AsAZQ_2[0] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[1];
NTI_bs1dgeTxHIjPGTR9axkkHbg_.size = sizeof(tyTuple_WCz3Z7at9aJyVFSh5OmwJNg);
NTI_bs1dgeTxHIjPGTR9axkkHbg_.kind = 18;
NTI_bs1dgeTxHIjPGTR9axkkHbg_.base = 0;
TM_6NbDwwj5FY059b1gz2AsAZQ_3[0] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[3];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].offset = offsetof(tyTuple_WCz3Z7at9aJyVFSh5OmwJNg, Field0);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].typ = (&NTI_vr5DoT1jILTGdRlYv1OYpw_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[3].name = "Field0";
TM_6NbDwwj5FY059b1gz2AsAZQ_3[1] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[4];
NTI_4Ve8wOWSE8Hdar7fr5TdwQ_.size = sizeof(tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ);
NTI_4Ve8wOWSE8Hdar7fr5TdwQ_.kind = 17;
NTI_4Ve8wOWSE8Hdar7fr5TdwQ_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
NTI_4Ve8wOWSE8Hdar7fr5TdwQ_.flags = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[5].len = 0; TM_6NbDwwj5FY059b1gz2AsAZQ_0[5].kind = 2;
NTI_4Ve8wOWSE8Hdar7fr5TdwQ_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[5];
NTI_qs7rcJOE2Bz63jdUEPJtIg_.size = sizeof(tyObject_Env_dotdotslashdotdotslashdotdotslashdotdotslashnimslashlibslashpureslashtimesdotnim__4Ve8wOWSE8Hdar7fr5TdwQ*);
NTI_qs7rcJOE2Bz63jdUEPJtIg_.kind = 22;
NTI_qs7rcJOE2Bz63jdUEPJtIg_.base = (&NTI_4Ve8wOWSE8Hdar7fr5TdwQ_);
NTI_qs7rcJOE2Bz63jdUEPJtIg_.marker = Marker_tyRef_qs7rcJOE2Bz63jdUEPJtIg;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].offset = offsetof(tyTuple_WCz3Z7at9aJyVFSh5OmwJNg, Field1);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[4].typ = (&NTI_qs7rcJOE2Bz63jdUEPJtIg_);
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[0];
NTI_bs1dgeTxHIjPGTR9axkkHbg_.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_bs1dgeTxHIjPGTR9axkkHbg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[1].name = "zonedTimeFromTimeImpl";
TM_6NbDwwj5FY059b1gz2AsAZQ_2[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_bs1dgeTxHIjPGTR9axkkHbg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[6].name = "zonedTimeFromAdjTimeImpl";
TM_6NbDwwj5FY059b1gz2AsAZQ_2[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[0];
NTI_F8OvqlxXyGXRSiK9c1fCDVw_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[0];
NTI_9a5v4OQPlGqsA25ioN8hFYA_.size = sizeof(tyObject_TimezonecolonObjectType__F8OvqlxXyGXRSiK9c1fCDVw*);
NTI_9a5v4OQPlGqsA25ioN8hFYA_.kind = 22;
NTI_9a5v4OQPlGqsA25ioN8hFYA_.base = (&NTI_F8OvqlxXyGXRSiK9c1fCDVw_);
NTI_9a5v4OQPlGqsA25ioN8hFYA_.marker = Marker_tyRef_9a5v4OQPlGqsA25ioN8hFYA;
NTI_SVfemTA9aCOyua2TJYa6yBg_.size = sizeof(tyEnum_WeekDay_SVfemTA9aCOyua2TJYa6yBg);
NTI_SVfemTA9aCOyua2TJYa6yBg_.kind = 14;
NTI_SVfemTA9aCOyua2TJYa6yBg_.base = 0;
NTI_SVfemTA9aCOyua2TJYa6yBg_.flags = 3;
for (TM_6NbDwwj5FY059b1gz2AsAZQ_8 = 0; TM_6NbDwwj5FY059b1gz2AsAZQ_8 < 7; TM_6NbDwwj5FY059b1gz2AsAZQ_8++) {
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_8+8].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_8+8].offset = TM_6NbDwwj5FY059b1gz2AsAZQ_8;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_8+8].name = TM_6NbDwwj5FY059b1gz2AsAZQ_7[TM_6NbDwwj5FY059b1gz2AsAZQ_8];
TM_6NbDwwj5FY059b1gz2AsAZQ_6[TM_6NbDwwj5FY059b1gz2AsAZQ_8] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_8+8];
}
TM_6NbDwwj5FY059b1gz2AsAZQ_0[15].len = 7; TM_6NbDwwj5FY059b1gz2AsAZQ_0[15].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[15].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_6[0];
NTI_SVfemTA9aCOyua2TJYa6yBg_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[15];
NTI_JS0JuFvCBbC2GL3xXBnPQw_.size = sizeof(tyEnum_Month_JS0JuFvCBbC2GL3xXBnPQw);
NTI_JS0JuFvCBbC2GL3xXBnPQw_.kind = 14;
NTI_JS0JuFvCBbC2GL3xXBnPQw_.base = 0;
NTI_JS0JuFvCBbC2GL3xXBnPQw_.flags = 3;
for (TM_6NbDwwj5FY059b1gz2AsAZQ_12 = 0; TM_6NbDwwj5FY059b1gz2AsAZQ_12 < 12; TM_6NbDwwj5FY059b1gz2AsAZQ_12++) {
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_12+16].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_12+16].offset = TM_6NbDwwj5FY059b1gz2AsAZQ_12;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_12+16].name = TM_6NbDwwj5FY059b1gz2AsAZQ_11[TM_6NbDwwj5FY059b1gz2AsAZQ_12];
TM_6NbDwwj5FY059b1gz2AsAZQ_10[TM_6NbDwwj5FY059b1gz2AsAZQ_12] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[TM_6NbDwwj5FY059b1gz2AsAZQ_12+16];
}
TM_6NbDwwj5FY059b1gz2AsAZQ_0[16].offset = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[17].offset = 2;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[18].offset = 3;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[19].offset = 4;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[20].offset = 5;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[21].offset = 6;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[22].offset = 7;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[23].offset = 8;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[24].offset = 9;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[25].offset = 10;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[26].offset = 11;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[27].offset = 12;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].len = 12; TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[28].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_10[0];
NTI_JS0JuFvCBbC2GL3xXBnPQw_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[28];
NTI_JS0JuFvCBbC2GL3xXBnPQw_.flags = 1<<2;
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.size = sizeof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw);
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.kind = 17;
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.base = (&NTI_ytyiCJqK439aF9cIibuRVpAg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_24[0] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[30];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[30].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[30].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, nanosecond);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[30].typ = (&NTI_PpavWgyrx5odXyR89aNlcWA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[30].name = "nanosecond";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[1] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[31];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[31].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[31].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, second);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[31].typ = (&NTI_rUuqTvFmkC6KKRqDAazGEA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[31].name = "second";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[2] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[32];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[32].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[32].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, minute);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[32].typ = (&NTI_LBgXxpmYOpS8xroRZgNvbg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[32].name = "minute";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[3] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[33];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[33].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[33].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, hour);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[33].typ = (&NTI_Gz6vwaK0PZQIDIwfuvKsOg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[33].name = "hour";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[4] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[34];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[34].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[34].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, monthday);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[34].typ = (&NTI_DcZ5N67dL3rBj9bxGtx09bFg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[34].name = "monthday";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[5] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[35];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[35].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[35].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, month);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[35].typ = (&NTI_JS0JuFvCBbC2GL3xXBnPQw_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[35].name = "month";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[6] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[36];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[36].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[36].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, year);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[36].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[36].name = "year";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[7] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[37];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, weekday);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].typ = (&NTI_SVfemTA9aCOyua2TJYa6yBg_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[37].name = "weekday";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[8] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[38];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, yearday);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].typ = (&NTI_g9buja9c9aeh0rkDpqsXOJF9bA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[38].name = "yearday";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[9] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[39];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, isDst);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].typ = (&NTI_VaVACK0bpYmqIQ0mKcHfQQ_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[39].name = "isDst";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[10] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[40];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, timezone);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].typ = (&NTI_9a5v4OQPlGqsA25ioN8hFYA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[40].name = "timezone";
TM_6NbDwwj5FY059b1gz2AsAZQ_24[11] = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[41];
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].kind = 1;
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].offset = offsetof(tyObject_DateTime_d9cK9cyKZPJJxFXUmx8dSpPw, utcOffset);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
TM_6NbDwwj5FY059b1gz2AsAZQ_0[41].name = "utcOffset";
TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].len = 12; TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].kind = 2; TM_6NbDwwj5FY059b1gz2AsAZQ_0[29].sons = &TM_6NbDwwj5FY059b1gz2AsAZQ_24[0];
NTI_d9cK9cyKZPJJxFXUmx8dSpPw_.node = &TM_6NbDwwj5FY059b1gz2AsAZQ_0[29];
}

