>From efe26bec62c00ece844e53e012de6a009db4f5c3 Mon Sep 17 00:00:00 2001
From: Steve Summit <scs@eskimo.com>
Date: Thu, 14 Jan 2016 08:20:51 -0800
Subject: [PROPOSED PATCH 1/2] Add a test suite

* Makefile (tests, testsuite): New rules.
* testcases, testcases64, testsuite.c: New files.
---
 Makefile    |   17 +
 testcases   | 3265 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 testcases64 |  165 +++
 testsuite.c |  808 +++++++++++++++
 4 files changed, 4255 insertions(+)
 create mode 100644 testcases
 create mode 100644 testcases64
 create mode 100644 testsuite.c

diff --git a/Makefile b/Makefile
index e431ece..744995c 100644
--- a/Makefile
+++ b/Makefile
@@ -404,6 +404,20 @@ INSTALL:	ALL install date.1
 		cp date $(DESTDIR)$(BINDIR)/.
 		cp -f date.1 $(DESTDIR)$(MANDIR)/man1/.
 
+tests:		testsuite testcases
+		testsuite testcases
+		@ echo "scripted tests succeeded; trying exhaustive tests (this may take a minute or two)"
+		testsuite -x -f 1901-12-14 -t 2038-01-19 -i 1753
+		@ # uncomment the following lines if you have 64-bit time_t's
+		@ # testsuite testcases64
+		@ # echo "semiexhaustive 64-bit tests (this may take several minutes)"
+		@ # testsuite -x -f 0001-01-01 -t 9999-12-31 -i 86399
+		@ # uncomment the following lines if you want a more exhaustive test of 64-bit time_t's
+		@ # (beware: don't increase the increment to make it faster without also decreasing the end date)
+		@ # echo "truly exhaustive 64-bit tests (this will take hours)"
+		@ # testsuite -x -f -2147481670-01-01 -t 2147483500-12-31 -i 3484395349
+		@ echo "all tests completed successfully"
+
 version.h:
 		(echo 'static char const PKGVERSION[]="($(PACKAGE)) ";' && \
 		 echo 'static char const TZVERSION[]="$(VERSION)";' && \
@@ -415,6 +429,9 @@ zdump:		$(TZDOBJS)
 zic:		$(TZCOBJS)
 		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
 
+testsuite:	testsuite.o localtime.o
+		$(CC) -o $@ $(CFLAGS) $(LDFLAGS) testsuite.o localtime.o $(LDLIBS)
+
 yearistype:	yearistype.sh
 		cp yearistype.sh yearistype
 		chmod +x yearistype
diff --git a/testcases b/testcases
new file mode 100644
index 0000000..d450c70
--- /dev/null
+++ b/testcases
@@ -0,0 +1,3265 @@
+# basic gmtime/localtime/timegm test cases
+
+# all tests in this file fit into a signed 32-bit time_t
+# for 64-bit tests, see testcases64
+
+# These test cases are primarily intended to test the functionality
+# of the code in the tzcode distribution, localtime.c.
+# There is no attempt to exhaustively test every time zone and DST
+# adjustment in every region in the world ever (that is, to test the
+# validity of all the data in tzdata).  Doing so would require replicating
+# all the data in tzdata, here, which is not a worthwhile task.
+
+# 0 time
+gmtime	0		1970-01-01 00:00:00
+
+# almost min 32-bit signed time
+gmtime	-2147483647	1901-12-13 20:45:53
+
+# min 32-bit signed time
+gmtime	-2147483648	1901-12-13 20:45:52
+
+# max 32-bit signed time
+gmtime	2147483647	2038-01-19 03:14:07
+
+# max 32-bit unsigned time
+gmtime	4294967295	2106-02-07 06:28:15
+
+# some "random" values
+
+gmtime	1000000		1970-01-12 13:46:40
+gmtime	5000000		1970-02-27 20:53:20
+gmtime	10000000	1970-04-26 17:46:40
+gmtime	50000000	1971-08-02 16:53:20
+gmtime	100000000	1973-03-03 09:46:40
+gmtime	123456789	1973-11-29 21:33:09
+gmtime	500000000	1985-11-05 00:53:20
+gmtime	1000000000	2001-09-09 01:46:40
+gmtime	1234567890	2009-02-13 23:31:30
+gmtime	1500000000	2017-07-14 02:40:00
+gmtime	2000000000	2033-05-18 03:33:20
+
+gmtime	-500000000	1954-02-26 23:06:40
+gmtime	-1000000000	1938-04-24 22:13:20
+gmtime	-1500000000	1922-06-20 21:20:00
+gmtime	-2000000000	1906-08-16 20:26:40
+
+# a date in every month
+
+gmtime	347158861	1981-01-01 01:01:01
+gmtime	381463322	1982-02-02 02:02:02
+gmtime	415508583	1983-03-03 03:03:03
+gmtime	449899444	1984-04-04 04:04:04
+gmtime	484117505	1985-05-05 05:05:05
+gmtime	518421966	1986-06-06 06:06:06
+gmtime	552640027	1987-07-07 07:07:07
+gmtime	587030888	1988-08-08 08:08:08
+gmtime	621335349	1989-09-09 09:09:09
+gmtime	655553410	1990-10-10 10:10:10
+gmtime	689857871	1991-11-11 11:11:11
+gmtime	724162332	1992-12-12 12:12:12
+
+# month boundaries
+gmtime	633830399	1990-01-31 23:59:59
+gmtime	633830400	1990-02-01 00:00:00
+gmtime	636249599	1990-02-28 23:59:59
+gmtime	636249600	1990-03-01 00:00:00
+gmtime	638927999	1990-03-31 23:59:59
+gmtime	638928000	1990-04-01 00:00:00
+gmtime	641519999	1990-04-30 23:59:59
+gmtime	641520000	1990-05-01 00:00:00
+gmtime	644198399	1990-05-31 23:59:59
+gmtime	644198400	1990-06-01 00:00:00
+gmtime	646790399	1990-06-30 23:59:59
+gmtime	646790400	1990-07-01 00:00:00
+gmtime	649468799	1990-07-31 23:59:59
+gmtime	649468800	1990-08-01 00:00:00
+gmtime	652147199	1990-08-31 23:59:59
+gmtime	652147200	1990-09-01 00:00:00
+gmtime	654739199	1990-09-30 23:59:59
+gmtime	654739200	1990-10-01 00:00:00
+gmtime	657417599	1990-10-31 23:59:59
+gmtime	657417600	1990-11-01 00:00:00
+gmtime	660009599	1990-11-30 23:59:59
+gmtime	660009600	1990-12-01 00:00:00
+gmtime	662687999	1990-12-31 23:59:59
+gmtime	662688000	1991-01-01 00:00:00
+
+# month boundaries, leap year
+
+gmtime	699407999	1992-02-29 23:59:59
+gmtime	699408000	1992-03-01 00:00:00
+gmtime	725846399	1992-12-31 23:59:59
+gmtime	725846400	1993-01-01 00:00:00
+
+# week days
+gmtime	166017600	1975-04-06 12:00:00	wd=0
+gmtime	166104000	1975-04-07 12:00:00	wd=1
+gmtime	166190400	1975-04-08 12:00:00	wd=2
+gmtime	166276800	1975-04-09 12:00:00	wd=3
+gmtime	166363200	1975-04-10 12:00:00	wd=4
+gmtime	166449600	1975-04-11 12:00:00	wd=5
+gmtime	166536000	1975-04-12 12:00:00	wd=6
+
+gmtime	-761140800	1945-11-18 12:00:00	wd=0
+gmtime	-761054400	1945-11-19 12:00:00	wd=1
+gmtime	-760968000	1945-11-20 12:00:00	wd=2
+gmtime	-760881600	1945-11-21 12:00:00	wd=3
+gmtime	-760795200	1945-11-22 12:00:00	wd=4
+gmtime	-760708800	1945-11-23 12:00:00	wd=5
+gmtime	-760622400	1945-11-24 12:00:00	wd=6
+
+# day-of-year
+# positive, non leap year
+
+gmtime	410270400	1983-01-01 12:00:00	yd=0 wd=6
+gmtime	410356800	1983-01-02 12:00:00	yd=1 wd=0
+gmtime	410443200	1983-01-03 12:00:00	yd=2 wd=1
+gmtime	410529600	1983-01-04 12:00:00	yd=3 wd=2
+gmtime	410616000	1983-01-05 12:00:00	yd=4 wd=3
+gmtime	410702400	1983-01-06 12:00:00	yd=5 wd=4
+gmtime	410788800	1983-01-07 12:00:00	yd=6 wd=5
+gmtime	410875200	1983-01-08 12:00:00	yd=7 wd=6
+gmtime	410961600	1983-01-09 12:00:00	yd=8 wd=0
+gmtime	411048000	1983-01-10 12:00:00	yd=9 wd=1
+gmtime	411134400	1983-01-11 12:00:00	yd=10 wd=2
+gmtime	411220800	1983-01-12 12:00:00	yd=11 wd=3
+gmtime	411307200	1983-01-13 12:00:00	yd=12 wd=4
+gmtime	411393600	1983-01-14 12:00:00	yd=13 wd=5
+gmtime	411480000	1983-01-15 12:00:00	yd=14 wd=6
+gmtime	411566400	1983-01-16 12:00:00	yd=15 wd=0
+gmtime	411652800	1983-01-17 12:00:00	yd=16 wd=1
+gmtime	411739200	1983-01-18 12:00:00	yd=17 wd=2
+gmtime	411825600	1983-01-19 12:00:00	yd=18 wd=3
+gmtime	411912000	1983-01-20 12:00:00	yd=19 wd=4
+gmtime	411998400	1983-01-21 12:00:00	yd=20 wd=5
+gmtime	412084800	1983-01-22 12:00:00	yd=21 wd=6
+gmtime	412171200	1983-01-23 12:00:00	yd=22 wd=0
+gmtime	412257600	1983-01-24 12:00:00	yd=23 wd=1
+gmtime	412344000	1983-01-25 12:00:00	yd=24 wd=2
+gmtime	412430400	1983-01-26 12:00:00	yd=25 wd=3
+gmtime	412516800	1983-01-27 12:00:00	yd=26 wd=4
+gmtime	412603200	1983-01-28 12:00:00	yd=27 wd=5
+gmtime	412689600	1983-01-29 12:00:00	yd=28 wd=6
+gmtime	412776000	1983-01-30 12:00:00	yd=29 wd=0
+gmtime	412862400	1983-01-31 12:00:00	yd=30 wd=1
+gmtime	412948800	1983-02-01 12:00:00	yd=31 wd=2
+gmtime	413035200	1983-02-02 12:00:00	yd=32 wd=3
+gmtime	413121600	1983-02-03 12:00:00	yd=33 wd=4
+gmtime	413208000	1983-02-04 12:00:00	yd=34 wd=5
+gmtime	413294400	1983-02-05 12:00:00	yd=35 wd=6
+gmtime	413380800	1983-02-06 12:00:00	yd=36 wd=0
+gmtime	413467200	1983-02-07 12:00:00	yd=37 wd=1
+gmtime	413553600	1983-02-08 12:00:00	yd=38 wd=2
+gmtime	413640000	1983-02-09 12:00:00	yd=39 wd=3
+gmtime	413726400	1983-02-10 12:00:00	yd=40 wd=4
+gmtime	413812800	1983-02-11 12:00:00	yd=41 wd=5
+gmtime	413899200	1983-02-12 12:00:00	yd=42 wd=6
+gmtime	413985600	1983-02-13 12:00:00	yd=43 wd=0
+gmtime	414072000	1983-02-14 12:00:00	yd=44 wd=1
+gmtime	414158400	1983-02-15 12:00:00	yd=45 wd=2
+gmtime	414244800	1983-02-16 12:00:00	yd=46 wd=3
+gmtime	414331200	1983-02-17 12:00:00	yd=47 wd=4
+gmtime	414417600	1983-02-18 12:00:00	yd=48 wd=5
+gmtime	414504000	1983-02-19 12:00:00	yd=49 wd=6
+gmtime	414590400	1983-02-20 12:00:00	yd=50 wd=0
+gmtime	414676800	1983-02-21 12:00:00	yd=51 wd=1
+gmtime	414763200	1983-02-22 12:00:00	yd=52 wd=2
+gmtime	414849600	1983-02-23 12:00:00	yd=53 wd=3
+gmtime	414936000	1983-02-24 12:00:00	yd=54 wd=4
+gmtime	415022400	1983-02-25 12:00:00	yd=55 wd=5
+gmtime	415108800	1983-02-26 12:00:00	yd=56 wd=6
+gmtime	415195200	1983-02-27 12:00:00	yd=57 wd=0
+gmtime	415281600	1983-02-28 12:00:00	yd=58 wd=1
+gmtime	415368000	1983-03-01 12:00:00	yd=59 wd=2
+gmtime	415454400	1983-03-02 12:00:00	yd=60 wd=3
+gmtime	415540800	1983-03-03 12:00:00	yd=61 wd=4
+gmtime	415627200	1983-03-04 12:00:00	yd=62 wd=5
+gmtime	415713600	1983-03-05 12:00:00	yd=63 wd=6
+gmtime	415800000	1983-03-06 12:00:00	yd=64 wd=0
+gmtime	415886400	1983-03-07 12:00:00	yd=65 wd=1
+gmtime	415972800	1983-03-08 12:00:00	yd=66 wd=2
+gmtime	416059200	1983-03-09 12:00:00	yd=67 wd=3
+gmtime	416145600	1983-03-10 12:00:00	yd=68 wd=4
+gmtime	416232000	1983-03-11 12:00:00	yd=69 wd=5
+gmtime	416318400	1983-03-12 12:00:00	yd=70 wd=6
+gmtime	416404800	1983-03-13 12:00:00	yd=71 wd=0
+gmtime	416491200	1983-03-14 12:00:00	yd=72 wd=1
+gmtime	416577600	1983-03-15 12:00:00	yd=73 wd=2
+gmtime	416664000	1983-03-16 12:00:00	yd=74 wd=3
+gmtime	416750400	1983-03-17 12:00:00	yd=75 wd=4
+gmtime	416836800	1983-03-18 12:00:00	yd=76 wd=5
+gmtime	416923200	1983-03-19 12:00:00	yd=77 wd=6
+gmtime	417009600	1983-03-20 12:00:00	yd=78 wd=0
+gmtime	417096000	1983-03-21 12:00:00	yd=79 wd=1
+gmtime	417182400	1983-03-22 12:00:00	yd=80 wd=2
+gmtime	417268800	1983-03-23 12:00:00	yd=81 wd=3
+gmtime	417355200	1983-03-24 12:00:00	yd=82 wd=4
+gmtime	417441600	1983-03-25 12:00:00	yd=83 wd=5
+gmtime	417528000	1983-03-26 12:00:00	yd=84 wd=6
+gmtime	417614400	1983-03-27 12:00:00	yd=85 wd=0
+gmtime	417700800	1983-03-28 12:00:00	yd=86 wd=1
+gmtime	417787200	1983-03-29 12:00:00	yd=87 wd=2
+gmtime	417873600	1983-03-30 12:00:00	yd=88 wd=3
+gmtime	417960000	1983-03-31 12:00:00	yd=89 wd=4
+gmtime	418046400	1983-04-01 12:00:00	yd=90 wd=5
+gmtime	418132800	1983-04-02 12:00:00	yd=91 wd=6
+gmtime	418219200	1983-04-03 12:00:00	yd=92 wd=0
+gmtime	418305600	1983-04-04 12:00:00	yd=93 wd=1
+gmtime	418392000	1983-04-05 12:00:00	yd=94 wd=2
+gmtime	418478400	1983-04-06 12:00:00	yd=95 wd=3
+gmtime	418564800	1983-04-07 12:00:00	yd=96 wd=4
+gmtime	418651200	1983-04-08 12:00:00	yd=97 wd=5
+gmtime	418737600	1983-04-09 12:00:00	yd=98 wd=6
+gmtime	418824000	1983-04-10 12:00:00	yd=99 wd=0
+gmtime	418910400	1983-04-11 12:00:00	yd=100 wd=1
+gmtime	418996800	1983-04-12 12:00:00	yd=101 wd=2
+gmtime	419083200	1983-04-13 12:00:00	yd=102 wd=3
+gmtime	419169600	1983-04-14 12:00:00	yd=103 wd=4
+gmtime	419256000	1983-04-15 12:00:00	yd=104 wd=5
+gmtime	419342400	1983-04-16 12:00:00	yd=105 wd=6
+gmtime	419428800	1983-04-17 12:00:00	yd=106 wd=0
+gmtime	419515200	1983-04-18 12:00:00	yd=107 wd=1
+gmtime	419601600	1983-04-19 12:00:00	yd=108 wd=2
+gmtime	419688000	1983-04-20 12:00:00	yd=109 wd=3
+gmtime	419774400	1983-04-21 12:00:00	yd=110 wd=4
+gmtime	419860800	1983-04-22 12:00:00	yd=111 wd=5
+gmtime	419947200	1983-04-23 12:00:00	yd=112 wd=6
+gmtime	420033600	1983-04-24 12:00:00	yd=113 wd=0
+gmtime	420120000	1983-04-25 12:00:00	yd=114 wd=1
+gmtime	420206400	1983-04-26 12:00:00	yd=115 wd=2
+gmtime	420292800	1983-04-27 12:00:00	yd=116 wd=3
+gmtime	420379200	1983-04-28 12:00:00	yd=117 wd=4
+gmtime	420465600	1983-04-29 12:00:00	yd=118 wd=5
+gmtime	420552000	1983-04-30 12:00:00	yd=119 wd=6
+gmtime	420638400	1983-05-01 12:00:00	yd=120 wd=0
+gmtime	420724800	1983-05-02 12:00:00	yd=121 wd=1
+gmtime	420811200	1983-05-03 12:00:00	yd=122 wd=2
+gmtime	420897600	1983-05-04 12:00:00	yd=123 wd=3
+gmtime	420984000	1983-05-05 12:00:00	yd=124 wd=4
+gmtime	421070400	1983-05-06 12:00:00	yd=125 wd=5
+gmtime	421156800	1983-05-07 12:00:00	yd=126 wd=6
+gmtime	421243200	1983-05-08 12:00:00	yd=127 wd=0
+gmtime	421329600	1983-05-09 12:00:00	yd=128 wd=1
+gmtime	421416000	1983-05-10 12:00:00	yd=129 wd=2
+gmtime	421502400	1983-05-11 12:00:00	yd=130 wd=3
+gmtime	421588800	1983-05-12 12:00:00	yd=131 wd=4
+gmtime	421675200	1983-05-13 12:00:00	yd=132 wd=5
+gmtime	421761600	1983-05-14 12:00:00	yd=133 wd=6
+gmtime	421848000	1983-05-15 12:00:00	yd=134 wd=0
+gmtime	421934400	1983-05-16 12:00:00	yd=135 wd=1
+gmtime	422020800	1983-05-17 12:00:00	yd=136 wd=2
+gmtime	422107200	1983-05-18 12:00:00	yd=137 wd=3
+gmtime	422193600	1983-05-19 12:00:00	yd=138 wd=4
+gmtime	422280000	1983-05-20 12:00:00	yd=139 wd=5
+gmtime	422366400	1983-05-21 12:00:00	yd=140 wd=6
+gmtime	422452800	1983-05-22 12:00:00	yd=141 wd=0
+gmtime	422539200	1983-05-23 12:00:00	yd=142 wd=1
+gmtime	422625600	1983-05-24 12:00:00	yd=143 wd=2
+gmtime	422712000	1983-05-25 12:00:00	yd=144 wd=3
+gmtime	422798400	1983-05-26 12:00:00	yd=145 wd=4
+gmtime	422884800	1983-05-27 12:00:00	yd=146 wd=5
+gmtime	422971200	1983-05-28 12:00:00	yd=147 wd=6
+gmtime	423057600	1983-05-29 12:00:00	yd=148 wd=0
+gmtime	423144000	1983-05-30 12:00:00	yd=149 wd=1
+gmtime	423230400	1983-05-31 12:00:00	yd=150 wd=2
+gmtime	423316800	1983-06-01 12:00:00	yd=151 wd=3
+gmtime	423403200	1983-06-02 12:00:00	yd=152 wd=4
+gmtime	423489600	1983-06-03 12:00:00	yd=153 wd=5
+gmtime	423576000	1983-06-04 12:00:00	yd=154 wd=6
+gmtime	423662400	1983-06-05 12:00:00	yd=155 wd=0
+gmtime	423748800	1983-06-06 12:00:00	yd=156 wd=1
+gmtime	423835200	1983-06-07 12:00:00	yd=157 wd=2
+gmtime	423921600	1983-06-08 12:00:00	yd=158 wd=3
+gmtime	424008000	1983-06-09 12:00:00	yd=159 wd=4
+gmtime	424094400	1983-06-10 12:00:00	yd=160 wd=5
+gmtime	424180800	1983-06-11 12:00:00	yd=161 wd=6
+gmtime	424267200	1983-06-12 12:00:00	yd=162 wd=0
+gmtime	424353600	1983-06-13 12:00:00	yd=163 wd=1
+gmtime	424440000	1983-06-14 12:00:00	yd=164 wd=2
+gmtime	424526400	1983-06-15 12:00:00	yd=165 wd=3
+gmtime	424612800	1983-06-16 12:00:00	yd=166 wd=4
+gmtime	424699200	1983-06-17 12:00:00	yd=167 wd=5
+gmtime	424785600	1983-06-18 12:00:00	yd=168 wd=6
+gmtime	424872000	1983-06-19 12:00:00	yd=169 wd=0
+gmtime	424958400	1983-06-20 12:00:00	yd=170 wd=1
+gmtime	425044800	1983-06-21 12:00:00	yd=171 wd=2
+gmtime	425131200	1983-06-22 12:00:00	yd=172 wd=3
+gmtime	425217600	1983-06-23 12:00:00	yd=173 wd=4
+gmtime	425304000	1983-06-24 12:00:00	yd=174 wd=5
+gmtime	425390400	1983-06-25 12:00:00	yd=175 wd=6
+gmtime	425476800	1983-06-26 12:00:00	yd=176 wd=0
+gmtime	425563200	1983-06-27 12:00:00	yd=177 wd=1
+gmtime	425649600	1983-06-28 12:00:00	yd=178 wd=2
+gmtime	425736000	1983-06-29 12:00:00	yd=179 wd=3
+gmtime	425822400	1983-06-30 12:00:00	yd=180 wd=4
+gmtime	425908800	1983-07-01 12:00:00	yd=181 wd=5
+gmtime	425995200	1983-07-02 12:00:00	yd=182 wd=6
+gmtime	426081600	1983-07-03 12:00:00	yd=183 wd=0
+gmtime	426168000	1983-07-04 12:00:00	yd=184 wd=1
+gmtime	426254400	1983-07-05 12:00:00	yd=185 wd=2
+gmtime	426340800	1983-07-06 12:00:00	yd=186 wd=3
+gmtime	426427200	1983-07-07 12:00:00	yd=187 wd=4
+gmtime	426513600	1983-07-08 12:00:00	yd=188 wd=5
+gmtime	426600000	1983-07-09 12:00:00	yd=189 wd=6
+gmtime	426686400	1983-07-10 12:00:00	yd=190 wd=0
+gmtime	426772800	1983-07-11 12:00:00	yd=191 wd=1
+gmtime	426859200	1983-07-12 12:00:00	yd=192 wd=2
+gmtime	426945600	1983-07-13 12:00:00	yd=193 wd=3
+gmtime	427032000	1983-07-14 12:00:00	yd=194 wd=4
+gmtime	427118400	1983-07-15 12:00:00	yd=195 wd=5
+gmtime	427204800	1983-07-16 12:00:00	yd=196 wd=6
+gmtime	427291200	1983-07-17 12:00:00	yd=197 wd=0
+gmtime	427377600	1983-07-18 12:00:00	yd=198 wd=1
+gmtime	427464000	1983-07-19 12:00:00	yd=199 wd=2
+gmtime	427550400	1983-07-20 12:00:00	yd=200 wd=3
+gmtime	427636800	1983-07-21 12:00:00	yd=201 wd=4
+gmtime	427723200	1983-07-22 12:00:00	yd=202 wd=5
+gmtime	427809600	1983-07-23 12:00:00	yd=203 wd=6
+gmtime	427896000	1983-07-24 12:00:00	yd=204 wd=0
+gmtime	427982400	1983-07-25 12:00:00	yd=205 wd=1
+gmtime	428068800	1983-07-26 12:00:00	yd=206 wd=2
+gmtime	428155200	1983-07-27 12:00:00	yd=207 wd=3
+gmtime	428241600	1983-07-28 12:00:00	yd=208 wd=4
+gmtime	428328000	1983-07-29 12:00:00	yd=209 wd=5
+gmtime	428414400	1983-07-30 12:00:00	yd=210 wd=6
+gmtime	428500800	1983-07-31 12:00:00	yd=211 wd=0
+gmtime	428587200	1983-08-01 12:00:00	yd=212 wd=1
+gmtime	428673600	1983-08-02 12:00:00	yd=213 wd=2
+gmtime	428760000	1983-08-03 12:00:00	yd=214 wd=3
+gmtime	428846400	1983-08-04 12:00:00	yd=215 wd=4
+gmtime	428932800	1983-08-05 12:00:00	yd=216 wd=5
+gmtime	429019200	1983-08-06 12:00:00	yd=217 wd=6
+gmtime	429105600	1983-08-07 12:00:00	yd=218 wd=0
+gmtime	429192000	1983-08-08 12:00:00	yd=219 wd=1
+gmtime	429278400	1983-08-09 12:00:00	yd=220 wd=2
+gmtime	429364800	1983-08-10 12:00:00	yd=221 wd=3
+gmtime	429451200	1983-08-11 12:00:00	yd=222 wd=4
+gmtime	429537600	1983-08-12 12:00:00	yd=223 wd=5
+gmtime	429624000	1983-08-13 12:00:00	yd=224 wd=6
+gmtime	429710400	1983-08-14 12:00:00	yd=225 wd=0
+gmtime	429796800	1983-08-15 12:00:00	yd=226 wd=1
+gmtime	429883200	1983-08-16 12:00:00	yd=227 wd=2
+gmtime	429969600	1983-08-17 12:00:00	yd=228 wd=3
+gmtime	430056000	1983-08-18 12:00:00	yd=229 wd=4
+gmtime	430142400	1983-08-19 12:00:00	yd=230 wd=5
+gmtime	430228800	1983-08-20 12:00:00	yd=231 wd=6
+gmtime	430315200	1983-08-21 12:00:00	yd=232 wd=0
+gmtime	430401600	1983-08-22 12:00:00	yd=233 wd=1
+gmtime	430488000	1983-08-23 12:00:00	yd=234 wd=2
+gmtime	430574400	1983-08-24 12:00:00	yd=235 wd=3
+gmtime	430660800	1983-08-25 12:00:00	yd=236 wd=4
+gmtime	430747200	1983-08-26 12:00:00	yd=237 wd=5
+gmtime	430833600	1983-08-27 12:00:00	yd=238 wd=6
+gmtime	430920000	1983-08-28 12:00:00	yd=239 wd=0
+gmtime	431006400	1983-08-29 12:00:00	yd=240 wd=1
+gmtime	431092800	1983-08-30 12:00:00	yd=241 wd=2
+gmtime	431179200	1983-08-31 12:00:00	yd=242 wd=3
+gmtime	431265600	1983-09-01 12:00:00	yd=243 wd=4
+gmtime	431352000	1983-09-02 12:00:00	yd=244 wd=5
+gmtime	431438400	1983-09-03 12:00:00	yd=245 wd=6
+gmtime	431524800	1983-09-04 12:00:00	yd=246 wd=0
+gmtime	431611200	1983-09-05 12:00:00	yd=247 wd=1
+gmtime	431697600	1983-09-06 12:00:00	yd=248 wd=2
+gmtime	431784000	1983-09-07 12:00:00	yd=249 wd=3
+gmtime	431870400	1983-09-08 12:00:00	yd=250 wd=4
+gmtime	431956800	1983-09-09 12:00:00	yd=251 wd=5
+gmtime	432043200	1983-09-10 12:00:00	yd=252 wd=6
+gmtime	432129600	1983-09-11 12:00:00	yd=253 wd=0
+gmtime	432216000	1983-09-12 12:00:00	yd=254 wd=1
+gmtime	432302400	1983-09-13 12:00:00	yd=255 wd=2
+gmtime	432388800	1983-09-14 12:00:00	yd=256 wd=3
+gmtime	432475200	1983-09-15 12:00:00	yd=257 wd=4
+gmtime	432561600	1983-09-16 12:00:00	yd=258 wd=5
+gmtime	432648000	1983-09-17 12:00:00	yd=259 wd=6
+gmtime	432734400	1983-09-18 12:00:00	yd=260 wd=0
+gmtime	432820800	1983-09-19 12:00:00	yd=261 wd=1
+gmtime	432907200	1983-09-20 12:00:00	yd=262 wd=2
+gmtime	432993600	1983-09-21 12:00:00	yd=263 wd=3
+gmtime	433080000	1983-09-22 12:00:00	yd=264 wd=4
+gmtime	433166400	1983-09-23 12:00:00	yd=265 wd=5
+gmtime	433252800	1983-09-24 12:00:00	yd=266 wd=6
+gmtime	433339200	1983-09-25 12:00:00	yd=267 wd=0
+gmtime	433425600	1983-09-26 12:00:00	yd=268 wd=1
+gmtime	433512000	1983-09-27 12:00:00	yd=269 wd=2
+gmtime	433598400	1983-09-28 12:00:00	yd=270 wd=3
+gmtime	433684800	1983-09-29 12:00:00	yd=271 wd=4
+gmtime	433771200	1983-09-30 12:00:00	yd=272 wd=5
+gmtime	433857600	1983-10-01 12:00:00	yd=273 wd=6
+gmtime	433944000	1983-10-02 12:00:00	yd=274 wd=0
+gmtime	434030400	1983-10-03 12:00:00	yd=275 wd=1
+gmtime	434116800	1983-10-04 12:00:00	yd=276 wd=2
+gmtime	434203200	1983-10-05 12:00:00	yd=277 wd=3
+gmtime	434289600	1983-10-06 12:00:00	yd=278 wd=4
+gmtime	434376000	1983-10-07 12:00:00	yd=279 wd=5
+gmtime	434462400	1983-10-08 12:00:00	yd=280 wd=6
+gmtime	434548800	1983-10-09 12:00:00	yd=281 wd=0
+gmtime	434635200	1983-10-10 12:00:00	yd=282 wd=1
+gmtime	434721600	1983-10-11 12:00:00	yd=283 wd=2
+gmtime	434808000	1983-10-12 12:00:00	yd=284 wd=3
+gmtime	434894400	1983-10-13 12:00:00	yd=285 wd=4
+gmtime	434980800	1983-10-14 12:00:00	yd=286 wd=5
+gmtime	435067200	1983-10-15 12:00:00	yd=287 wd=6
+gmtime	435153600	1983-10-16 12:00:00	yd=288 wd=0
+gmtime	435240000	1983-10-17 12:00:00	yd=289 wd=1
+gmtime	435326400	1983-10-18 12:00:00	yd=290 wd=2
+gmtime	435412800	1983-10-19 12:00:00	yd=291 wd=3
+gmtime	435499200	1983-10-20 12:00:00	yd=292 wd=4
+gmtime	435585600	1983-10-21 12:00:00	yd=293 wd=5
+gmtime	435672000	1983-10-22 12:00:00	yd=294 wd=6
+gmtime	435758400	1983-10-23 12:00:00	yd=295 wd=0
+gmtime	435844800	1983-10-24 12:00:00	yd=296 wd=1
+gmtime	435931200	1983-10-25 12:00:00	yd=297 wd=2
+gmtime	436017600	1983-10-26 12:00:00	yd=298 wd=3
+gmtime	436104000	1983-10-27 12:00:00	yd=299 wd=4
+gmtime	436190400	1983-10-28 12:00:00	yd=300 wd=5
+gmtime	436276800	1983-10-29 12:00:00	yd=301 wd=6
+gmtime	436363200	1983-10-30 12:00:00	yd=302 wd=0
+gmtime	436449600	1983-10-31 12:00:00	yd=303 wd=1
+gmtime	436536000	1983-11-01 12:00:00	yd=304 wd=2
+gmtime	436622400	1983-11-02 12:00:00	yd=305 wd=3
+gmtime	436708800	1983-11-03 12:00:00	yd=306 wd=4
+gmtime	436795200	1983-11-04 12:00:00	yd=307 wd=5
+gmtime	436881600	1983-11-05 12:00:00	yd=308 wd=6
+gmtime	436968000	1983-11-06 12:00:00	yd=309 wd=0
+gmtime	437054400	1983-11-07 12:00:00	yd=310 wd=1
+gmtime	437140800	1983-11-08 12:00:00	yd=311 wd=2
+gmtime	437227200	1983-11-09 12:00:00	yd=312 wd=3
+gmtime	437313600	1983-11-10 12:00:00	yd=313 wd=4
+gmtime	437400000	1983-11-11 12:00:00	yd=314 wd=5
+gmtime	437486400	1983-11-12 12:00:00	yd=315 wd=6
+gmtime	437572800	1983-11-13 12:00:00	yd=316 wd=0
+gmtime	437659200	1983-11-14 12:00:00	yd=317 wd=1
+gmtime	437745600	1983-11-15 12:00:00	yd=318 wd=2
+gmtime	437832000	1983-11-16 12:00:00	yd=319 wd=3
+gmtime	437918400	1983-11-17 12:00:00	yd=320 wd=4
+gmtime	438004800	1983-11-18 12:00:00	yd=321 wd=5
+gmtime	438091200	1983-11-19 12:00:00	yd=322 wd=6
+gmtime	438177600	1983-11-20 12:00:00	yd=323 wd=0
+gmtime	438264000	1983-11-21 12:00:00	yd=324 wd=1
+gmtime	438350400	1983-11-22 12:00:00	yd=325 wd=2
+gmtime	438436800	1983-11-23 12:00:00	yd=326 wd=3
+gmtime	438523200	1983-11-24 12:00:00	yd=327 wd=4
+gmtime	438609600	1983-11-25 12:00:00	yd=328 wd=5
+gmtime	438696000	1983-11-26 12:00:00	yd=329 wd=6
+gmtime	438782400	1983-11-27 12:00:00	yd=330 wd=0
+gmtime	438868800	1983-11-28 12:00:00	yd=331 wd=1
+gmtime	438955200	1983-11-29 12:00:00	yd=332 wd=2
+gmtime	439041600	1983-11-30 12:00:00	yd=333 wd=3
+gmtime	439128000	1983-12-01 12:00:00	yd=334 wd=4
+gmtime	439214400	1983-12-02 12:00:00	yd=335 wd=5
+gmtime	439300800	1983-12-03 12:00:00	yd=336 wd=6
+gmtime	439387200	1983-12-04 12:00:00	yd=337 wd=0
+gmtime	439473600	1983-12-05 12:00:00	yd=338 wd=1
+gmtime	439560000	1983-12-06 12:00:00	yd=339 wd=2
+gmtime	439646400	1983-12-07 12:00:00	yd=340 wd=3
+gmtime	439732800	1983-12-08 12:00:00	yd=341 wd=4
+gmtime	439819200	1983-12-09 12:00:00	yd=342 wd=5
+gmtime	439905600	1983-12-10 12:00:00	yd=343 wd=6
+gmtime	439992000	1983-12-11 12:00:00	yd=344 wd=0
+gmtime	440078400	1983-12-12 12:00:00	yd=345 wd=1
+gmtime	440164800	1983-12-13 12:00:00	yd=346 wd=2
+gmtime	440251200	1983-12-14 12:00:00	yd=347 wd=3
+gmtime	440337600	1983-12-15 12:00:00	yd=348 wd=4
+gmtime	440424000	1983-12-16 12:00:00	yd=349 wd=5
+gmtime	440510400	1983-12-17 12:00:00	yd=350 wd=6
+gmtime	440596800	1983-12-18 12:00:00	yd=351 wd=0
+gmtime	440683200	1983-12-19 12:00:00	yd=352 wd=1
+gmtime	440769600	1983-12-20 12:00:00	yd=353 wd=2
+gmtime	440856000	1983-12-21 12:00:00	yd=354 wd=3
+gmtime	440942400	1983-12-22 12:00:00	yd=355 wd=4
+gmtime	441028800	1983-12-23 12:00:00	yd=356 wd=5
+gmtime	441115200	1983-12-24 12:00:00	yd=357 wd=6
+gmtime	441201600	1983-12-25 12:00:00	yd=358 wd=0
+gmtime	441288000	1983-12-26 12:00:00	yd=359 wd=1
+gmtime	441374400	1983-12-27 12:00:00	yd=360 wd=2
+gmtime	441460800	1983-12-28 12:00:00	yd=361 wd=3
+gmtime	441547200	1983-12-29 12:00:00	yd=362 wd=4
+gmtime	441633600	1983-12-30 12:00:00	yd=363 wd=5
+gmtime	441720000	1983-12-31 12:00:00	yd=364 wd=6
+
+# positive, leap year
+
+gmtime	694267200	1992-01-01 12:00:00	yd=0 wd=3
+gmtime	694353600	1992-01-02 12:00:00	yd=1 wd=4
+gmtime	694440000	1992-01-03 12:00:00	yd=2 wd=5
+gmtime	694526400	1992-01-04 12:00:00	yd=3 wd=6
+gmtime	694612800	1992-01-05 12:00:00	yd=4 wd=0
+gmtime	694699200	1992-01-06 12:00:00	yd=5 wd=1
+gmtime	694785600	1992-01-07 12:00:00	yd=6 wd=2
+gmtime	694872000	1992-01-08 12:00:00	yd=7 wd=3
+gmtime	694958400	1992-01-09 12:00:00	yd=8 wd=4
+gmtime	695044800	1992-01-10 12:00:00	yd=9 wd=5
+gmtime	695131200	1992-01-11 12:00:00	yd=10 wd=6
+gmtime	695217600	1992-01-12 12:00:00	yd=11 wd=0
+gmtime	695304000	1992-01-13 12:00:00	yd=12 wd=1
+gmtime	695390400	1992-01-14 12:00:00	yd=13 wd=2
+gmtime	695476800	1992-01-15 12:00:00	yd=14 wd=3
+gmtime	695563200	1992-01-16 12:00:00	yd=15 wd=4
+gmtime	695649600	1992-01-17 12:00:00	yd=16 wd=5
+gmtime	695736000	1992-01-18 12:00:00	yd=17 wd=6
+gmtime	695822400	1992-01-19 12:00:00	yd=18 wd=0
+gmtime	695908800	1992-01-20 12:00:00	yd=19 wd=1
+gmtime	695995200	1992-01-21 12:00:00	yd=20 wd=2
+gmtime	696081600	1992-01-22 12:00:00	yd=21 wd=3
+gmtime	696168000	1992-01-23 12:00:00	yd=22 wd=4
+gmtime	696254400	1992-01-24 12:00:00	yd=23 wd=5
+gmtime	696340800	1992-01-25 12:00:00	yd=24 wd=6
+gmtime	696427200	1992-01-26 12:00:00	yd=25 wd=0
+gmtime	696513600	1992-01-27 12:00:00	yd=26 wd=1
+gmtime	696600000	1992-01-28 12:00:00	yd=27 wd=2
+gmtime	696686400	1992-01-29 12:00:00	yd=28 wd=3
+gmtime	696772800	1992-01-30 12:00:00	yd=29 wd=4
+gmtime	696859200	1992-01-31 12:00:00	yd=30 wd=5
+gmtime	696945600	1992-02-01 12:00:00	yd=31 wd=6
+gmtime	697032000	1992-02-02 12:00:00	yd=32 wd=0
+gmtime	697118400	1992-02-03 12:00:00	yd=33 wd=1
+gmtime	697204800	1992-02-04 12:00:00	yd=34 wd=2
+gmtime	697291200	1992-02-05 12:00:00	yd=35 wd=3
+gmtime	697377600	1992-02-06 12:00:00	yd=36 wd=4
+gmtime	697464000	1992-02-07 12:00:00	yd=37 wd=5
+gmtime	697550400	1992-02-08 12:00:00	yd=38 wd=6
+gmtime	697636800	1992-02-09 12:00:00	yd=39 wd=0
+gmtime	697723200	1992-02-10 12:00:00	yd=40 wd=1
+gmtime	697809600	1992-02-11 12:00:00	yd=41 wd=2
+gmtime	697896000	1992-02-12 12:00:00	yd=42 wd=3
+gmtime	697982400	1992-02-13 12:00:00	yd=43 wd=4
+gmtime	698068800	1992-02-14 12:00:00	yd=44 wd=5
+gmtime	698155200	1992-02-15 12:00:00	yd=45 wd=6
+gmtime	698241600	1992-02-16 12:00:00	yd=46 wd=0
+gmtime	698328000	1992-02-17 12:00:00	yd=47 wd=1
+gmtime	698414400	1992-02-18 12:00:00	yd=48 wd=2
+gmtime	698500800	1992-02-19 12:00:00	yd=49 wd=3
+gmtime	698587200	1992-02-20 12:00:00	yd=50 wd=4
+gmtime	698673600	1992-02-21 12:00:00	yd=51 wd=5
+gmtime	698760000	1992-02-22 12:00:00	yd=52 wd=6
+gmtime	698846400	1992-02-23 12:00:00	yd=53 wd=0
+gmtime	698932800	1992-02-24 12:00:00	yd=54 wd=1
+gmtime	699019200	1992-02-25 12:00:00	yd=55 wd=2
+gmtime	699105600	1992-02-26 12:00:00	yd=56 wd=3
+gmtime	699192000	1992-02-27 12:00:00	yd=57 wd=4
+gmtime	699278400	1992-02-28 12:00:00	yd=58 wd=5
+gmtime	699364800	1992-02-29 12:00:00	yd=59 wd=6
+gmtime	699451200	1992-03-01 12:00:00	yd=60 wd=0
+gmtime	699537600	1992-03-02 12:00:00	yd=61 wd=1
+gmtime	699624000	1992-03-03 12:00:00	yd=62 wd=2
+gmtime	699710400	1992-03-04 12:00:00	yd=63 wd=3
+gmtime	699796800	1992-03-05 12:00:00	yd=64 wd=4
+gmtime	699883200	1992-03-06 12:00:00	yd=65 wd=5
+gmtime	699969600	1992-03-07 12:00:00	yd=66 wd=6
+gmtime	700056000	1992-03-08 12:00:00	yd=67 wd=0
+gmtime	700142400	1992-03-09 12:00:00	yd=68 wd=1
+gmtime	700228800	1992-03-10 12:00:00	yd=69 wd=2
+gmtime	700315200	1992-03-11 12:00:00	yd=70 wd=3
+gmtime	700401600	1992-03-12 12:00:00	yd=71 wd=4
+gmtime	700488000	1992-03-13 12:00:00	yd=72 wd=5
+gmtime	700574400	1992-03-14 12:00:00	yd=73 wd=6
+gmtime	700660800	1992-03-15 12:00:00	yd=74 wd=0
+gmtime	700747200	1992-03-16 12:00:00	yd=75 wd=1
+gmtime	700833600	1992-03-17 12:00:00	yd=76 wd=2
+gmtime	700920000	1992-03-18 12:00:00	yd=77 wd=3
+gmtime	701006400	1992-03-19 12:00:00	yd=78 wd=4
+gmtime	701092800	1992-03-20 12:00:00	yd=79 wd=5
+gmtime	701179200	1992-03-21 12:00:00	yd=80 wd=6
+gmtime	701265600	1992-03-22 12:00:00	yd=81 wd=0
+gmtime	701352000	1992-03-23 12:00:00	yd=82 wd=1
+gmtime	701438400	1992-03-24 12:00:00	yd=83 wd=2
+gmtime	701524800	1992-03-25 12:00:00	yd=84 wd=3
+gmtime	701611200	1992-03-26 12:00:00	yd=85 wd=4
+gmtime	701697600	1992-03-27 12:00:00	yd=86 wd=5
+gmtime	701784000	1992-03-28 12:00:00	yd=87 wd=6
+gmtime	701870400	1992-03-29 12:00:00	yd=88 wd=0
+gmtime	701956800	1992-03-30 12:00:00	yd=89 wd=1
+gmtime	702043200	1992-03-31 12:00:00	yd=90 wd=2
+gmtime	702129600	1992-04-01 12:00:00	yd=91 wd=3
+gmtime	702216000	1992-04-02 12:00:00	yd=92 wd=4
+gmtime	702302400	1992-04-03 12:00:00	yd=93 wd=5
+gmtime	702388800	1992-04-04 12:00:00	yd=94 wd=6
+gmtime	702475200	1992-04-05 12:00:00	yd=95 wd=0
+gmtime	702561600	1992-04-06 12:00:00	yd=96 wd=1
+gmtime	702648000	1992-04-07 12:00:00	yd=97 wd=2
+gmtime	702734400	1992-04-08 12:00:00	yd=98 wd=3
+gmtime	702820800	1992-04-09 12:00:00	yd=99 wd=4
+gmtime	702907200	1992-04-10 12:00:00	yd=100 wd=5
+gmtime	702993600	1992-04-11 12:00:00	yd=101 wd=6
+gmtime	703080000	1992-04-12 12:00:00	yd=102 wd=0
+gmtime	703166400	1992-04-13 12:00:00	yd=103 wd=1
+gmtime	703252800	1992-04-14 12:00:00	yd=104 wd=2
+gmtime	703339200	1992-04-15 12:00:00	yd=105 wd=3
+gmtime	703425600	1992-04-16 12:00:00	yd=106 wd=4
+gmtime	703512000	1992-04-17 12:00:00	yd=107 wd=5
+gmtime	703598400	1992-04-18 12:00:00	yd=108 wd=6
+gmtime	703684800	1992-04-19 12:00:00	yd=109 wd=0
+gmtime	703771200	1992-04-20 12:00:00	yd=110 wd=1
+gmtime	703857600	1992-04-21 12:00:00	yd=111 wd=2
+gmtime	703944000	1992-04-22 12:00:00	yd=112 wd=3
+gmtime	704030400	1992-04-23 12:00:00	yd=113 wd=4
+gmtime	704116800	1992-04-24 12:00:00	yd=114 wd=5
+gmtime	704203200	1992-04-25 12:00:00	yd=115 wd=6
+gmtime	704289600	1992-04-26 12:00:00	yd=116 wd=0
+gmtime	704376000	1992-04-27 12:00:00	yd=117 wd=1
+gmtime	704462400	1992-04-28 12:00:00	yd=118 wd=2
+gmtime	704548800	1992-04-29 12:00:00	yd=119 wd=3
+gmtime	704635200	1992-04-30 12:00:00	yd=120 wd=4
+gmtime	704721600	1992-05-01 12:00:00	yd=121 wd=5
+gmtime	704808000	1992-05-02 12:00:00	yd=122 wd=6
+gmtime	704894400	1992-05-03 12:00:00	yd=123 wd=0
+gmtime	704980800	1992-05-04 12:00:00	yd=124 wd=1
+gmtime	705067200	1992-05-05 12:00:00	yd=125 wd=2
+gmtime	705153600	1992-05-06 12:00:00	yd=126 wd=3
+gmtime	705240000	1992-05-07 12:00:00	yd=127 wd=4
+gmtime	705326400	1992-05-08 12:00:00	yd=128 wd=5
+gmtime	705412800	1992-05-09 12:00:00	yd=129 wd=6
+gmtime	705499200	1992-05-10 12:00:00	yd=130 wd=0
+gmtime	705585600	1992-05-11 12:00:00	yd=131 wd=1
+gmtime	705672000	1992-05-12 12:00:00	yd=132 wd=2
+gmtime	705758400	1992-05-13 12:00:00	yd=133 wd=3
+gmtime	705844800	1992-05-14 12:00:00	yd=134 wd=4
+gmtime	705931200	1992-05-15 12:00:00	yd=135 wd=5
+gmtime	706017600	1992-05-16 12:00:00	yd=136 wd=6
+gmtime	706104000	1992-05-17 12:00:00	yd=137 wd=0
+gmtime	706190400	1992-05-18 12:00:00	yd=138 wd=1
+gmtime	706276800	1992-05-19 12:00:00	yd=139 wd=2
+gmtime	706363200	1992-05-20 12:00:00	yd=140 wd=3
+gmtime	706449600	1992-05-21 12:00:00	yd=141 wd=4
+gmtime	706536000	1992-05-22 12:00:00	yd=142 wd=5
+gmtime	706622400	1992-05-23 12:00:00	yd=143 wd=6
+gmtime	706708800	1992-05-24 12:00:00	yd=144 wd=0
+gmtime	706795200	1992-05-25 12:00:00	yd=145 wd=1
+gmtime	706881600	1992-05-26 12:00:00	yd=146 wd=2
+gmtime	706968000	1992-05-27 12:00:00	yd=147 wd=3
+gmtime	707054400	1992-05-28 12:00:00	yd=148 wd=4
+gmtime	707140800	1992-05-29 12:00:00	yd=149 wd=5
+gmtime	707227200	1992-05-30 12:00:00	yd=150 wd=6
+gmtime	707313600	1992-05-31 12:00:00	yd=151 wd=0
+gmtime	707400000	1992-06-01 12:00:00	yd=152 wd=1
+gmtime	707486400	1992-06-02 12:00:00	yd=153 wd=2
+gmtime	707572800	1992-06-03 12:00:00	yd=154 wd=3
+gmtime	707659200	1992-06-04 12:00:00	yd=155 wd=4
+gmtime	707745600	1992-06-05 12:00:00	yd=156 wd=5
+gmtime	707832000	1992-06-06 12:00:00	yd=157 wd=6
+gmtime	707918400	1992-06-07 12:00:00	yd=158 wd=0
+gmtime	708004800	1992-06-08 12:00:00	yd=159 wd=1
+gmtime	708091200	1992-06-09 12:00:00	yd=160 wd=2
+gmtime	708177600	1992-06-10 12:00:00	yd=161 wd=3
+gmtime	708264000	1992-06-11 12:00:00	yd=162 wd=4
+gmtime	708350400	1992-06-12 12:00:00	yd=163 wd=5
+gmtime	708436800	1992-06-13 12:00:00	yd=164 wd=6
+gmtime	708523200	1992-06-14 12:00:00	yd=165 wd=0
+gmtime	708609600	1992-06-15 12:00:00	yd=166 wd=1
+gmtime	708696000	1992-06-16 12:00:00	yd=167 wd=2
+gmtime	708782400	1992-06-17 12:00:00	yd=168 wd=3
+gmtime	708868800	1992-06-18 12:00:00	yd=169 wd=4
+gmtime	708955200	1992-06-19 12:00:00	yd=170 wd=5
+gmtime	709041600	1992-06-20 12:00:00	yd=171 wd=6
+gmtime	709128000	1992-06-21 12:00:00	yd=172 wd=0
+gmtime	709214400	1992-06-22 12:00:00	yd=173 wd=1
+gmtime	709300800	1992-06-23 12:00:00	yd=174 wd=2
+gmtime	709387200	1992-06-24 12:00:00	yd=175 wd=3
+gmtime	709473600	1992-06-25 12:00:00	yd=176 wd=4
+gmtime	709560000	1992-06-26 12:00:00	yd=177 wd=5
+gmtime	709646400	1992-06-27 12:00:00	yd=178 wd=6
+gmtime	709732800	1992-06-28 12:00:00	yd=179 wd=0
+gmtime	709819200	1992-06-29 12:00:00	yd=180 wd=1
+gmtime	709905600	1992-06-30 12:00:00	yd=181 wd=2
+gmtime	709992000	1992-07-01 12:00:00	yd=182 wd=3
+gmtime	710078400	1992-07-02 12:00:00	yd=183 wd=4
+gmtime	710164800	1992-07-03 12:00:00	yd=184 wd=5
+gmtime	710251200	1992-07-04 12:00:00	yd=185 wd=6
+gmtime	710337600	1992-07-05 12:00:00	yd=186 wd=0
+gmtime	710424000	1992-07-06 12:00:00	yd=187 wd=1
+gmtime	710510400	1992-07-07 12:00:00	yd=188 wd=2
+gmtime	710596800	1992-07-08 12:00:00	yd=189 wd=3
+gmtime	710683200	1992-07-09 12:00:00	yd=190 wd=4
+gmtime	710769600	1992-07-10 12:00:00	yd=191 wd=5
+gmtime	710856000	1992-07-11 12:00:00	yd=192 wd=6
+gmtime	710942400	1992-07-12 12:00:00	yd=193 wd=0
+gmtime	711028800	1992-07-13 12:00:00	yd=194 wd=1
+gmtime	711115200	1992-07-14 12:00:00	yd=195 wd=2
+gmtime	711201600	1992-07-15 12:00:00	yd=196 wd=3
+gmtime	711288000	1992-07-16 12:00:00	yd=197 wd=4
+gmtime	711374400	1992-07-17 12:00:00	yd=198 wd=5
+gmtime	711460800	1992-07-18 12:00:00	yd=199 wd=6
+gmtime	711547200	1992-07-19 12:00:00	yd=200 wd=0
+gmtime	711633600	1992-07-20 12:00:00	yd=201 wd=1
+gmtime	711720000	1992-07-21 12:00:00	yd=202 wd=2
+gmtime	711806400	1992-07-22 12:00:00	yd=203 wd=3
+gmtime	711892800	1992-07-23 12:00:00	yd=204 wd=4
+gmtime	711979200	1992-07-24 12:00:00	yd=205 wd=5
+gmtime	712065600	1992-07-25 12:00:00	yd=206 wd=6
+gmtime	712152000	1992-07-26 12:00:00	yd=207 wd=0
+gmtime	712238400	1992-07-27 12:00:00	yd=208 wd=1
+gmtime	712324800	1992-07-28 12:00:00	yd=209 wd=2
+gmtime	712411200	1992-07-29 12:00:00	yd=210 wd=3
+gmtime	712497600	1992-07-30 12:00:00	yd=211 wd=4
+gmtime	712584000	1992-07-31 12:00:00	yd=212 wd=5
+gmtime	712670400	1992-08-01 12:00:00	yd=213 wd=6
+gmtime	712756800	1992-08-02 12:00:00	yd=214 wd=0
+gmtime	712843200	1992-08-03 12:00:00	yd=215 wd=1
+gmtime	712929600	1992-08-04 12:00:00	yd=216 wd=2
+gmtime	713016000	1992-08-05 12:00:00	yd=217 wd=3
+gmtime	713102400	1992-08-06 12:00:00	yd=218 wd=4
+gmtime	713188800	1992-08-07 12:00:00	yd=219 wd=5
+gmtime	713275200	1992-08-08 12:00:00	yd=220 wd=6
+gmtime	713361600	1992-08-09 12:00:00	yd=221 wd=0
+gmtime	713448000	1992-08-10 12:00:00	yd=222 wd=1
+gmtime	713534400	1992-08-11 12:00:00	yd=223 wd=2
+gmtime	713620800	1992-08-12 12:00:00	yd=224 wd=3
+gmtime	713707200	1992-08-13 12:00:00	yd=225 wd=4
+gmtime	713793600	1992-08-14 12:00:00	yd=226 wd=5
+gmtime	713880000	1992-08-15 12:00:00	yd=227 wd=6
+gmtime	713966400	1992-08-16 12:00:00	yd=228 wd=0
+gmtime	714052800	1992-08-17 12:00:00	yd=229 wd=1
+gmtime	714139200	1992-08-18 12:00:00	yd=230 wd=2
+gmtime	714225600	1992-08-19 12:00:00	yd=231 wd=3
+gmtime	714312000	1992-08-20 12:00:00	yd=232 wd=4
+gmtime	714398400	1992-08-21 12:00:00	yd=233 wd=5
+gmtime	714484800	1992-08-22 12:00:00	yd=234 wd=6
+gmtime	714571200	1992-08-23 12:00:00	yd=235 wd=0
+gmtime	714657600	1992-08-24 12:00:00	yd=236 wd=1
+gmtime	714744000	1992-08-25 12:00:00	yd=237 wd=2
+gmtime	714830400	1992-08-26 12:00:00	yd=238 wd=3
+gmtime	714916800	1992-08-27 12:00:00	yd=239 wd=4
+gmtime	715003200	1992-08-28 12:00:00	yd=240 wd=5
+gmtime	715089600	1992-08-29 12:00:00	yd=241 wd=6
+gmtime	715176000	1992-08-30 12:00:00	yd=242 wd=0
+gmtime	715262400	1992-08-31 12:00:00	yd=243 wd=1
+gmtime	715348800	1992-09-01 12:00:00	yd=244 wd=2
+gmtime	715435200	1992-09-02 12:00:00	yd=245 wd=3
+gmtime	715521600	1992-09-03 12:00:00	yd=246 wd=4
+gmtime	715608000	1992-09-04 12:00:00	yd=247 wd=5
+gmtime	715694400	1992-09-05 12:00:00	yd=248 wd=6
+gmtime	715780800	1992-09-06 12:00:00	yd=249 wd=0
+gmtime	715867200	1992-09-07 12:00:00	yd=250 wd=1
+gmtime	715953600	1992-09-08 12:00:00	yd=251 wd=2
+gmtime	716040000	1992-09-09 12:00:00	yd=252 wd=3
+gmtime	716126400	1992-09-10 12:00:00	yd=253 wd=4
+gmtime	716212800	1992-09-11 12:00:00	yd=254 wd=5
+gmtime	716299200	1992-09-12 12:00:00	yd=255 wd=6
+gmtime	716385600	1992-09-13 12:00:00	yd=256 wd=0
+gmtime	716472000	1992-09-14 12:00:00	yd=257 wd=1
+gmtime	716558400	1992-09-15 12:00:00	yd=258 wd=2
+gmtime	716644800	1992-09-16 12:00:00	yd=259 wd=3
+gmtime	716731200	1992-09-17 12:00:00	yd=260 wd=4
+gmtime	716817600	1992-09-18 12:00:00	yd=261 wd=5
+gmtime	716904000	1992-09-19 12:00:00	yd=262 wd=6
+gmtime	716990400	1992-09-20 12:00:00	yd=263 wd=0
+gmtime	717076800	1992-09-21 12:00:00	yd=264 wd=1
+gmtime	717163200	1992-09-22 12:00:00	yd=265 wd=2
+gmtime	717249600	1992-09-23 12:00:00	yd=266 wd=3
+gmtime	717336000	1992-09-24 12:00:00	yd=267 wd=4
+gmtime	717422400	1992-09-25 12:00:00	yd=268 wd=5
+gmtime	717508800	1992-09-26 12:00:00	yd=269 wd=6
+gmtime	717595200	1992-09-27 12:00:00	yd=270 wd=0
+gmtime	717681600	1992-09-28 12:00:00	yd=271 wd=1
+gmtime	717768000	1992-09-29 12:00:00	yd=272 wd=2
+gmtime	717854400	1992-09-30 12:00:00	yd=273 wd=3
+gmtime	717940800	1992-10-01 12:00:00	yd=274 wd=4
+gmtime	718027200	1992-10-02 12:00:00	yd=275 wd=5
+gmtime	718113600	1992-10-03 12:00:00	yd=276 wd=6
+gmtime	718200000	1992-10-04 12:00:00	yd=277 wd=0
+gmtime	718286400	1992-10-05 12:00:00	yd=278 wd=1
+gmtime	718372800	1992-10-06 12:00:00	yd=279 wd=2
+gmtime	718459200	1992-10-07 12:00:00	yd=280 wd=3
+gmtime	718545600	1992-10-08 12:00:00	yd=281 wd=4
+gmtime	718632000	1992-10-09 12:00:00	yd=282 wd=5
+gmtime	718718400	1992-10-10 12:00:00	yd=283 wd=6
+gmtime	718804800	1992-10-11 12:00:00	yd=284 wd=0
+gmtime	718891200	1992-10-12 12:00:00	yd=285 wd=1
+gmtime	718977600	1992-10-13 12:00:00	yd=286 wd=2
+gmtime	719064000	1992-10-14 12:00:00	yd=287 wd=3
+gmtime	719150400	1992-10-15 12:00:00	yd=288 wd=4
+gmtime	719236800	1992-10-16 12:00:00	yd=289 wd=5
+gmtime	719323200	1992-10-17 12:00:00	yd=290 wd=6
+gmtime	719409600	1992-10-18 12:00:00	yd=291 wd=0
+gmtime	719496000	1992-10-19 12:00:00	yd=292 wd=1
+gmtime	719582400	1992-10-20 12:00:00	yd=293 wd=2
+gmtime	719668800	1992-10-21 12:00:00	yd=294 wd=3
+gmtime	719755200	1992-10-22 12:00:00	yd=295 wd=4
+gmtime	719841600	1992-10-23 12:00:00	yd=296 wd=5
+gmtime	719928000	1992-10-24 12:00:00	yd=297 wd=6
+gmtime	720014400	1992-10-25 12:00:00	yd=298 wd=0
+gmtime	720100800	1992-10-26 12:00:00	yd=299 wd=1
+gmtime	720187200	1992-10-27 12:00:00	yd=300 wd=2
+gmtime	720273600	1992-10-28 12:00:00	yd=301 wd=3
+gmtime	720360000	1992-10-29 12:00:00	yd=302 wd=4
+gmtime	720446400	1992-10-30 12:00:00	yd=303 wd=5
+gmtime	720532800	1992-10-31 12:00:00	yd=304 wd=6
+gmtime	720619200	1992-11-01 12:00:00	yd=305 wd=0
+gmtime	720705600	1992-11-02 12:00:00	yd=306 wd=1
+gmtime	720792000	1992-11-03 12:00:00	yd=307 wd=2
+gmtime	720878400	1992-11-04 12:00:00	yd=308 wd=3
+gmtime	720964800	1992-11-05 12:00:00	yd=309 wd=4
+gmtime	721051200	1992-11-06 12:00:00	yd=310 wd=5
+gmtime	721137600	1992-11-07 12:00:00	yd=311 wd=6
+gmtime	721224000	1992-11-08 12:00:00	yd=312 wd=0
+gmtime	721310400	1992-11-09 12:00:00	yd=313 wd=1
+gmtime	721396800	1992-11-10 12:00:00	yd=314 wd=2
+gmtime	721483200	1992-11-11 12:00:00	yd=315 wd=3
+gmtime	721569600	1992-11-12 12:00:00	yd=316 wd=4
+gmtime	721656000	1992-11-13 12:00:00	yd=317 wd=5
+gmtime	721742400	1992-11-14 12:00:00	yd=318 wd=6
+gmtime	721828800	1992-11-15 12:00:00	yd=319 wd=0
+gmtime	721915200	1992-11-16 12:00:00	yd=320 wd=1
+gmtime	722001600	1992-11-17 12:00:00	yd=321 wd=2
+gmtime	722088000	1992-11-18 12:00:00	yd=322 wd=3
+gmtime	722174400	1992-11-19 12:00:00	yd=323 wd=4
+gmtime	722260800	1992-11-20 12:00:00	yd=324 wd=5
+gmtime	722347200	1992-11-21 12:00:00	yd=325 wd=6
+gmtime	722433600	1992-11-22 12:00:00	yd=326 wd=0
+gmtime	722520000	1992-11-23 12:00:00	yd=327 wd=1
+gmtime	722606400	1992-11-24 12:00:00	yd=328 wd=2
+gmtime	722692800	1992-11-25 12:00:00	yd=329 wd=3
+gmtime	722779200	1992-11-26 12:00:00	yd=330 wd=4
+gmtime	722865600	1992-11-27 12:00:00	yd=331 wd=5
+gmtime	722952000	1992-11-28 12:00:00	yd=332 wd=6
+gmtime	723038400	1992-11-29 12:00:00	yd=333 wd=0
+gmtime	723124800	1992-11-30 12:00:00	yd=334 wd=1
+gmtime	723211200	1992-12-01 12:00:00	yd=335 wd=2
+gmtime	723297600	1992-12-02 12:00:00	yd=336 wd=3
+gmtime	723384000	1992-12-03 12:00:00	yd=337 wd=4
+gmtime	723470400	1992-12-04 12:00:00	yd=338 wd=5
+gmtime	723556800	1992-12-05 12:00:00	yd=339 wd=6
+gmtime	723643200	1992-12-06 12:00:00	yd=340 wd=0
+gmtime	723729600	1992-12-07 12:00:00	yd=341 wd=1
+gmtime	723816000	1992-12-08 12:00:00	yd=342 wd=2
+gmtime	723902400	1992-12-09 12:00:00	yd=343 wd=3
+gmtime	723988800	1992-12-10 12:00:00	yd=344 wd=4
+gmtime	724075200	1992-12-11 12:00:00	yd=345 wd=5
+gmtime	724161600	1992-12-12 12:00:00	yd=346 wd=6
+gmtime	724248000	1992-12-13 12:00:00	yd=347 wd=0
+gmtime	724334400	1992-12-14 12:00:00	yd=348 wd=1
+gmtime	724420800	1992-12-15 12:00:00	yd=349 wd=2
+gmtime	724507200	1992-12-16 12:00:00	yd=350 wd=3
+gmtime	724593600	1992-12-17 12:00:00	yd=351 wd=4
+gmtime	724680000	1992-12-18 12:00:00	yd=352 wd=5
+gmtime	724766400	1992-12-19 12:00:00	yd=353 wd=6
+gmtime	724852800	1992-12-20 12:00:00	yd=354 wd=0
+gmtime	724939200	1992-12-21 12:00:00	yd=355 wd=1
+gmtime	725025600	1992-12-22 12:00:00	yd=356 wd=2
+gmtime	725112000	1992-12-23 12:00:00	yd=357 wd=3
+gmtime	725198400	1992-12-24 12:00:00	yd=358 wd=4
+gmtime	725284800	1992-12-25 12:00:00	yd=359 wd=5
+gmtime	725371200	1992-12-26 12:00:00	yd=360 wd=6
+gmtime	725457600	1992-12-27 12:00:00	yd=361 wd=0
+gmtime	725544000	1992-12-28 12:00:00	yd=362 wd=1
+gmtime	725630400	1992-12-29 12:00:00	yd=363 wd=2
+gmtime	725716800	1992-12-30 12:00:00	yd=364 wd=3
+gmtime	725803200	1992-12-31 12:00:00	yd=365 wd=4
+
+# negative, non leap year
+
+gmtime	-1546257600	1921-01-01 12:00:00	yd=0 wd=6
+gmtime	-1546171200	1921-01-02 12:00:00	yd=1 wd=0
+gmtime	-1546084800	1921-01-03 12:00:00	yd=2 wd=1
+gmtime	-1545998400	1921-01-04 12:00:00	yd=3 wd=2
+gmtime	-1545912000	1921-01-05 12:00:00	yd=4 wd=3
+gmtime	-1545825600	1921-01-06 12:00:00	yd=5 wd=4
+gmtime	-1545739200	1921-01-07 12:00:00	yd=6 wd=5
+gmtime	-1545652800	1921-01-08 12:00:00	yd=7 wd=6
+gmtime	-1545566400	1921-01-09 12:00:00	yd=8 wd=0
+gmtime	-1545480000	1921-01-10 12:00:00	yd=9 wd=1
+gmtime	-1545393600	1921-01-11 12:00:00	yd=10 wd=2
+gmtime	-1545307200	1921-01-12 12:00:00	yd=11 wd=3
+gmtime	-1545220800	1921-01-13 12:00:00	yd=12 wd=4
+gmtime	-1545134400	1921-01-14 12:00:00	yd=13 wd=5
+gmtime	-1545048000	1921-01-15 12:00:00	yd=14 wd=6
+gmtime	-1544961600	1921-01-16 12:00:00	yd=15 wd=0
+gmtime	-1544875200	1921-01-17 12:00:00	yd=16 wd=1
+gmtime	-1544788800	1921-01-18 12:00:00	yd=17 wd=2
+gmtime	-1544702400	1921-01-19 12:00:00	yd=18 wd=3
+gmtime	-1544616000	1921-01-20 12:00:00	yd=19 wd=4
+gmtime	-1544529600	1921-01-21 12:00:00	yd=20 wd=5
+gmtime	-1544443200	1921-01-22 12:00:00	yd=21 wd=6
+gmtime	-1544356800	1921-01-23 12:00:00	yd=22 wd=0
+gmtime	-1544270400	1921-01-24 12:00:00	yd=23 wd=1
+gmtime	-1544184000	1921-01-25 12:00:00	yd=24 wd=2
+gmtime	-1544097600	1921-01-26 12:00:00	yd=25 wd=3
+gmtime	-1544011200	1921-01-27 12:00:00	yd=26 wd=4
+gmtime	-1543924800	1921-01-28 12:00:00	yd=27 wd=5
+gmtime	-1543838400	1921-01-29 12:00:00	yd=28 wd=6
+gmtime	-1543752000	1921-01-30 12:00:00	yd=29 wd=0
+gmtime	-1543665600	1921-01-31 12:00:00	yd=30 wd=1
+gmtime	-1543579200	1921-02-01 12:00:00	yd=31 wd=2
+gmtime	-1543492800	1921-02-02 12:00:00	yd=32 wd=3
+gmtime	-1543406400	1921-02-03 12:00:00	yd=33 wd=4
+gmtime	-1543320000	1921-02-04 12:00:00	yd=34 wd=5
+gmtime	-1543233600	1921-02-05 12:00:00	yd=35 wd=6
+gmtime	-1543147200	1921-02-06 12:00:00	yd=36 wd=0
+gmtime	-1543060800	1921-02-07 12:00:00	yd=37 wd=1
+gmtime	-1542974400	1921-02-08 12:00:00	yd=38 wd=2
+gmtime	-1542888000	1921-02-09 12:00:00	yd=39 wd=3
+gmtime	-1542801600	1921-02-10 12:00:00	yd=40 wd=4
+gmtime	-1542715200	1921-02-11 12:00:00	yd=41 wd=5
+gmtime	-1542628800	1921-02-12 12:00:00	yd=42 wd=6
+gmtime	-1542542400	1921-02-13 12:00:00	yd=43 wd=0
+gmtime	-1542456000	1921-02-14 12:00:00	yd=44 wd=1
+gmtime	-1542369600	1921-02-15 12:00:00	yd=45 wd=2
+gmtime	-1542283200	1921-02-16 12:00:00	yd=46 wd=3
+gmtime	-1542196800	1921-02-17 12:00:00	yd=47 wd=4
+gmtime	-1542110400	1921-02-18 12:00:00	yd=48 wd=5
+gmtime	-1542024000	1921-02-19 12:00:00	yd=49 wd=6
+gmtime	-1541937600	1921-02-20 12:00:00	yd=50 wd=0
+gmtime	-1541851200	1921-02-21 12:00:00	yd=51 wd=1
+gmtime	-1541764800	1921-02-22 12:00:00	yd=52 wd=2
+gmtime	-1541678400	1921-02-23 12:00:00	yd=53 wd=3
+gmtime	-1541592000	1921-02-24 12:00:00	yd=54 wd=4
+gmtime	-1541505600	1921-02-25 12:00:00	yd=55 wd=5
+gmtime	-1541419200	1921-02-26 12:00:00	yd=56 wd=6
+gmtime	-1541332800	1921-02-27 12:00:00	yd=57 wd=0
+gmtime	-1541246400	1921-02-28 12:00:00	yd=58 wd=1
+gmtime	-1541160000	1921-03-01 12:00:00	yd=59 wd=2
+gmtime	-1541073600	1921-03-02 12:00:00	yd=60 wd=3
+gmtime	-1540987200	1921-03-03 12:00:00	yd=61 wd=4
+gmtime	-1540900800	1921-03-04 12:00:00	yd=62 wd=5
+gmtime	-1540814400	1921-03-05 12:00:00	yd=63 wd=6
+gmtime	-1540728000	1921-03-06 12:00:00	yd=64 wd=0
+gmtime	-1540641600	1921-03-07 12:00:00	yd=65 wd=1
+gmtime	-1540555200	1921-03-08 12:00:00	yd=66 wd=2
+gmtime	-1540468800	1921-03-09 12:00:00	yd=67 wd=3
+gmtime	-1540382400	1921-03-10 12:00:00	yd=68 wd=4
+gmtime	-1540296000	1921-03-11 12:00:00	yd=69 wd=5
+gmtime	-1540209600	1921-03-12 12:00:00	yd=70 wd=6
+gmtime	-1540123200	1921-03-13 12:00:00	yd=71 wd=0
+gmtime	-1540036800	1921-03-14 12:00:00	yd=72 wd=1
+gmtime	-1539950400	1921-03-15 12:00:00	yd=73 wd=2
+gmtime	-1539864000	1921-03-16 12:00:00	yd=74 wd=3
+gmtime	-1539777600	1921-03-17 12:00:00	yd=75 wd=4
+gmtime	-1539691200	1921-03-18 12:00:00	yd=76 wd=5
+gmtime	-1539604800	1921-03-19 12:00:00	yd=77 wd=6
+gmtime	-1539518400	1921-03-20 12:00:00	yd=78 wd=0
+gmtime	-1539432000	1921-03-21 12:00:00	yd=79 wd=1
+gmtime	-1539345600	1921-03-22 12:00:00	yd=80 wd=2
+gmtime	-1539259200	1921-03-23 12:00:00	yd=81 wd=3
+gmtime	-1539172800	1921-03-24 12:00:00	yd=82 wd=4
+gmtime	-1539086400	1921-03-25 12:00:00	yd=83 wd=5
+gmtime	-1539000000	1921-03-26 12:00:00	yd=84 wd=6
+gmtime	-1538913600	1921-03-27 12:00:00	yd=85 wd=0
+gmtime	-1538827200	1921-03-28 12:00:00	yd=86 wd=1
+gmtime	-1538740800	1921-03-29 12:00:00	yd=87 wd=2
+gmtime	-1538654400	1921-03-30 12:00:00	yd=88 wd=3
+gmtime	-1538568000	1921-03-31 12:00:00	yd=89 wd=4
+gmtime	-1538481600	1921-04-01 12:00:00	yd=90 wd=5
+gmtime	-1538395200	1921-04-02 12:00:00	yd=91 wd=6
+gmtime	-1538308800	1921-04-03 12:00:00	yd=92 wd=0
+gmtime	-1538222400	1921-04-04 12:00:00	yd=93 wd=1
+gmtime	-1538136000	1921-04-05 12:00:00	yd=94 wd=2
+gmtime	-1538049600	1921-04-06 12:00:00	yd=95 wd=3
+gmtime	-1537963200	1921-04-07 12:00:00	yd=96 wd=4
+gmtime	-1537876800	1921-04-08 12:00:00	yd=97 wd=5
+gmtime	-1537790400	1921-04-09 12:00:00	yd=98 wd=6
+gmtime	-1537704000	1921-04-10 12:00:00	yd=99 wd=0
+gmtime	-1537617600	1921-04-11 12:00:00	yd=100 wd=1
+gmtime	-1537531200	1921-04-12 12:00:00	yd=101 wd=2
+gmtime	-1537444800	1921-04-13 12:00:00	yd=102 wd=3
+gmtime	-1537358400	1921-04-14 12:00:00	yd=103 wd=4
+gmtime	-1537272000	1921-04-15 12:00:00	yd=104 wd=5
+gmtime	-1537185600	1921-04-16 12:00:00	yd=105 wd=6
+gmtime	-1537099200	1921-04-17 12:00:00	yd=106 wd=0
+gmtime	-1537012800	1921-04-18 12:00:00	yd=107 wd=1
+gmtime	-1536926400	1921-04-19 12:00:00	yd=108 wd=2
+gmtime	-1536840000	1921-04-20 12:00:00	yd=109 wd=3
+gmtime	-1536753600	1921-04-21 12:00:00	yd=110 wd=4
+gmtime	-1536667200	1921-04-22 12:00:00	yd=111 wd=5
+gmtime	-1536580800	1921-04-23 12:00:00	yd=112 wd=6
+gmtime	-1536494400	1921-04-24 12:00:00	yd=113 wd=0
+gmtime	-1536408000	1921-04-25 12:00:00	yd=114 wd=1
+gmtime	-1536321600	1921-04-26 12:00:00	yd=115 wd=2
+gmtime	-1536235200	1921-04-27 12:00:00	yd=116 wd=3
+gmtime	-1536148800	1921-04-28 12:00:00	yd=117 wd=4
+gmtime	-1536062400	1921-04-29 12:00:00	yd=118 wd=5
+gmtime	-1535976000	1921-04-30 12:00:00	yd=119 wd=6
+gmtime	-1535889600	1921-05-01 12:00:00	yd=120 wd=0
+gmtime	-1535803200	1921-05-02 12:00:00	yd=121 wd=1
+gmtime	-1535716800	1921-05-03 12:00:00	yd=122 wd=2
+gmtime	-1535630400	1921-05-04 12:00:00	yd=123 wd=3
+gmtime	-1535544000	1921-05-05 12:00:00	yd=124 wd=4
+gmtime	-1535457600	1921-05-06 12:00:00	yd=125 wd=5
+gmtime	-1535371200	1921-05-07 12:00:00	yd=126 wd=6
+gmtime	-1535284800	1921-05-08 12:00:00	yd=127 wd=0
+gmtime	-1535198400	1921-05-09 12:00:00	yd=128 wd=1
+gmtime	-1535112000	1921-05-10 12:00:00	yd=129 wd=2
+gmtime	-1535025600	1921-05-11 12:00:00	yd=130 wd=3
+gmtime	-1534939200	1921-05-12 12:00:00	yd=131 wd=4
+gmtime	-1534852800	1921-05-13 12:00:00	yd=132 wd=5
+gmtime	-1534766400	1921-05-14 12:00:00	yd=133 wd=6
+gmtime	-1534680000	1921-05-15 12:00:00	yd=134 wd=0
+gmtime	-1534593600	1921-05-16 12:00:00	yd=135 wd=1
+gmtime	-1534507200	1921-05-17 12:00:00	yd=136 wd=2
+gmtime	-1534420800	1921-05-18 12:00:00	yd=137 wd=3
+gmtime	-1534334400	1921-05-19 12:00:00	yd=138 wd=4
+gmtime	-1534248000	1921-05-20 12:00:00	yd=139 wd=5
+gmtime	-1534161600	1921-05-21 12:00:00	yd=140 wd=6
+gmtime	-1534075200	1921-05-22 12:00:00	yd=141 wd=0
+gmtime	-1533988800	1921-05-23 12:00:00	yd=142 wd=1
+gmtime	-1533902400	1921-05-24 12:00:00	yd=143 wd=2
+gmtime	-1533816000	1921-05-25 12:00:00	yd=144 wd=3
+gmtime	-1533729600	1921-05-26 12:00:00	yd=145 wd=4
+gmtime	-1533643200	1921-05-27 12:00:00	yd=146 wd=5
+gmtime	-1533556800	1921-05-28 12:00:00	yd=147 wd=6
+gmtime	-1533470400	1921-05-29 12:00:00	yd=148 wd=0
+gmtime	-1533384000	1921-05-30 12:00:00	yd=149 wd=1
+gmtime	-1533297600	1921-05-31 12:00:00	yd=150 wd=2
+gmtime	-1533211200	1921-06-01 12:00:00	yd=151 wd=3
+gmtime	-1533124800	1921-06-02 12:00:00	yd=152 wd=4
+gmtime	-1533038400	1921-06-03 12:00:00	yd=153 wd=5
+gmtime	-1532952000	1921-06-04 12:00:00	yd=154 wd=6
+gmtime	-1532865600	1921-06-05 12:00:00	yd=155 wd=0
+gmtime	-1532779200	1921-06-06 12:00:00	yd=156 wd=1
+gmtime	-1532692800	1921-06-07 12:00:00	yd=157 wd=2
+gmtime	-1532606400	1921-06-08 12:00:00	yd=158 wd=3
+gmtime	-1532520000	1921-06-09 12:00:00	yd=159 wd=4
+gmtime	-1532433600	1921-06-10 12:00:00	yd=160 wd=5
+gmtime	-1532347200	1921-06-11 12:00:00	yd=161 wd=6
+gmtime	-1532260800	1921-06-12 12:00:00	yd=162 wd=0
+gmtime	-1532174400	1921-06-13 12:00:00	yd=163 wd=1
+gmtime	-1532088000	1921-06-14 12:00:00	yd=164 wd=2
+gmtime	-1532001600	1921-06-15 12:00:00	yd=165 wd=3
+gmtime	-1531915200	1921-06-16 12:00:00	yd=166 wd=4
+gmtime	-1531828800	1921-06-17 12:00:00	yd=167 wd=5
+gmtime	-1531742400	1921-06-18 12:00:00	yd=168 wd=6
+gmtime	-1531656000	1921-06-19 12:00:00	yd=169 wd=0
+gmtime	-1531569600	1921-06-20 12:00:00	yd=170 wd=1
+gmtime	-1531483200	1921-06-21 12:00:00	yd=171 wd=2
+gmtime	-1531396800	1921-06-22 12:00:00	yd=172 wd=3
+gmtime	-1531310400	1921-06-23 12:00:00	yd=173 wd=4
+gmtime	-1531224000	1921-06-24 12:00:00	yd=174 wd=5
+gmtime	-1531137600	1921-06-25 12:00:00	yd=175 wd=6
+gmtime	-1531051200	1921-06-26 12:00:00	yd=176 wd=0
+gmtime	-1530964800	1921-06-27 12:00:00	yd=177 wd=1
+gmtime	-1530878400	1921-06-28 12:00:00	yd=178 wd=2
+gmtime	-1530792000	1921-06-29 12:00:00	yd=179 wd=3
+gmtime	-1530705600	1921-06-30 12:00:00	yd=180 wd=4
+gmtime	-1530619200	1921-07-01 12:00:00	yd=181 wd=5
+gmtime	-1530532800	1921-07-02 12:00:00	yd=182 wd=6
+gmtime	-1530446400	1921-07-03 12:00:00	yd=183 wd=0
+gmtime	-1530360000	1921-07-04 12:00:00	yd=184 wd=1
+gmtime	-1530273600	1921-07-05 12:00:00	yd=185 wd=2
+gmtime	-1530187200	1921-07-06 12:00:00	yd=186 wd=3
+gmtime	-1530100800	1921-07-07 12:00:00	yd=187 wd=4
+gmtime	-1530014400	1921-07-08 12:00:00	yd=188 wd=5
+gmtime	-1529928000	1921-07-09 12:00:00	yd=189 wd=6
+gmtime	-1529841600	1921-07-10 12:00:00	yd=190 wd=0
+gmtime	-1529755200	1921-07-11 12:00:00	yd=191 wd=1
+gmtime	-1529668800	1921-07-12 12:00:00	yd=192 wd=2
+gmtime	-1529582400	1921-07-13 12:00:00	yd=193 wd=3
+gmtime	-1529496000	1921-07-14 12:00:00	yd=194 wd=4
+gmtime	-1529409600	1921-07-15 12:00:00	yd=195 wd=5
+gmtime	-1529323200	1921-07-16 12:00:00	yd=196 wd=6
+gmtime	-1529236800	1921-07-17 12:00:00	yd=197 wd=0
+gmtime	-1529150400	1921-07-18 12:00:00	yd=198 wd=1
+gmtime	-1529064000	1921-07-19 12:00:00	yd=199 wd=2
+gmtime	-1528977600	1921-07-20 12:00:00	yd=200 wd=3
+gmtime	-1528891200	1921-07-21 12:00:00	yd=201 wd=4
+gmtime	-1528804800	1921-07-22 12:00:00	yd=202 wd=5
+gmtime	-1528718400	1921-07-23 12:00:00	yd=203 wd=6
+gmtime	-1528632000	1921-07-24 12:00:00	yd=204 wd=0
+gmtime	-1528545600	1921-07-25 12:00:00	yd=205 wd=1
+gmtime	-1528459200	1921-07-26 12:00:00	yd=206 wd=2
+gmtime	-1528372800	1921-07-27 12:00:00	yd=207 wd=3
+gmtime	-1528286400	1921-07-28 12:00:00	yd=208 wd=4
+gmtime	-1528200000	1921-07-29 12:00:00	yd=209 wd=5
+gmtime	-1528113600	1921-07-30 12:00:00	yd=210 wd=6
+gmtime	-1528027200	1921-07-31 12:00:00	yd=211 wd=0
+gmtime	-1527940800	1921-08-01 12:00:00	yd=212 wd=1
+gmtime	-1527854400	1921-08-02 12:00:00	yd=213 wd=2
+gmtime	-1527768000	1921-08-03 12:00:00	yd=214 wd=3
+gmtime	-1527681600	1921-08-04 12:00:00	yd=215 wd=4
+gmtime	-1527595200	1921-08-05 12:00:00	yd=216 wd=5
+gmtime	-1527508800	1921-08-06 12:00:00	yd=217 wd=6
+gmtime	-1527422400	1921-08-07 12:00:00	yd=218 wd=0
+gmtime	-1527336000	1921-08-08 12:00:00	yd=219 wd=1
+gmtime	-1527249600	1921-08-09 12:00:00	yd=220 wd=2
+gmtime	-1527163200	1921-08-10 12:00:00	yd=221 wd=3
+gmtime	-1527076800	1921-08-11 12:00:00	yd=222 wd=4
+gmtime	-1526990400	1921-08-12 12:00:00	yd=223 wd=5
+gmtime	-1526904000	1921-08-13 12:00:00	yd=224 wd=6
+gmtime	-1526817600	1921-08-14 12:00:00	yd=225 wd=0
+gmtime	-1526731200	1921-08-15 12:00:00	yd=226 wd=1
+gmtime	-1526644800	1921-08-16 12:00:00	yd=227 wd=2
+gmtime	-1526558400	1921-08-17 12:00:00	yd=228 wd=3
+gmtime	-1526472000	1921-08-18 12:00:00	yd=229 wd=4
+gmtime	-1526385600	1921-08-19 12:00:00	yd=230 wd=5
+gmtime	-1526299200	1921-08-20 12:00:00	yd=231 wd=6
+gmtime	-1526212800	1921-08-21 12:00:00	yd=232 wd=0
+gmtime	-1526126400	1921-08-22 12:00:00	yd=233 wd=1
+gmtime	-1526040000	1921-08-23 12:00:00	yd=234 wd=2
+gmtime	-1525953600	1921-08-24 12:00:00	yd=235 wd=3
+gmtime	-1525867200	1921-08-25 12:00:00	yd=236 wd=4
+gmtime	-1525780800	1921-08-26 12:00:00	yd=237 wd=5
+gmtime	-1525694400	1921-08-27 12:00:00	yd=238 wd=6
+gmtime	-1525608000	1921-08-28 12:00:00	yd=239 wd=0
+gmtime	-1525521600	1921-08-29 12:00:00	yd=240 wd=1
+gmtime	-1525435200	1921-08-30 12:00:00	yd=241 wd=2
+gmtime	-1525348800	1921-08-31 12:00:00	yd=242 wd=3
+gmtime	-1525262400	1921-09-01 12:00:00	yd=243 wd=4
+gmtime	-1525176000	1921-09-02 12:00:00	yd=244 wd=5
+gmtime	-1525089600	1921-09-03 12:00:00	yd=245 wd=6
+gmtime	-1525003200	1921-09-04 12:00:00	yd=246 wd=0
+gmtime	-1524916800	1921-09-05 12:00:00	yd=247 wd=1
+gmtime	-1524830400	1921-09-06 12:00:00	yd=248 wd=2
+gmtime	-1524744000	1921-09-07 12:00:00	yd=249 wd=3
+gmtime	-1524657600	1921-09-08 12:00:00	yd=250 wd=4
+gmtime	-1524571200	1921-09-09 12:00:00	yd=251 wd=5
+gmtime	-1524484800	1921-09-10 12:00:00	yd=252 wd=6
+gmtime	-1524398400	1921-09-11 12:00:00	yd=253 wd=0
+gmtime	-1524312000	1921-09-12 12:00:00	yd=254 wd=1
+gmtime	-1524225600	1921-09-13 12:00:00	yd=255 wd=2
+gmtime	-1524139200	1921-09-14 12:00:00	yd=256 wd=3
+gmtime	-1524052800	1921-09-15 12:00:00	yd=257 wd=4
+gmtime	-1523966400	1921-09-16 12:00:00	yd=258 wd=5
+gmtime	-1523880000	1921-09-17 12:00:00	yd=259 wd=6
+gmtime	-1523793600	1921-09-18 12:00:00	yd=260 wd=0
+gmtime	-1523707200	1921-09-19 12:00:00	yd=261 wd=1
+gmtime	-1523620800	1921-09-20 12:00:00	yd=262 wd=2
+gmtime	-1523534400	1921-09-21 12:00:00	yd=263 wd=3
+gmtime	-1523448000	1921-09-22 12:00:00	yd=264 wd=4
+gmtime	-1523361600	1921-09-23 12:00:00	yd=265 wd=5
+gmtime	-1523275200	1921-09-24 12:00:00	yd=266 wd=6
+gmtime	-1523188800	1921-09-25 12:00:00	yd=267 wd=0
+gmtime	-1523102400	1921-09-26 12:00:00	yd=268 wd=1
+gmtime	-1523016000	1921-09-27 12:00:00	yd=269 wd=2
+gmtime	-1522929600	1921-09-28 12:00:00	yd=270 wd=3
+gmtime	-1522843200	1921-09-29 12:00:00	yd=271 wd=4
+gmtime	-1522756800	1921-09-30 12:00:00	yd=272 wd=5
+gmtime	-1522670400	1921-10-01 12:00:00	yd=273 wd=6
+gmtime	-1522584000	1921-10-02 12:00:00	yd=274 wd=0
+gmtime	-1522497600	1921-10-03 12:00:00	yd=275 wd=1
+gmtime	-1522411200	1921-10-04 12:00:00	yd=276 wd=2
+gmtime	-1522324800	1921-10-05 12:00:00	yd=277 wd=3
+gmtime	-1522238400	1921-10-06 12:00:00	yd=278 wd=4
+gmtime	-1522152000	1921-10-07 12:00:00	yd=279 wd=5
+gmtime	-1522065600	1921-10-08 12:00:00	yd=280 wd=6
+gmtime	-1521979200	1921-10-09 12:00:00	yd=281 wd=0
+gmtime	-1521892800	1921-10-10 12:00:00	yd=282 wd=1
+gmtime	-1521806400	1921-10-11 12:00:00	yd=283 wd=2
+gmtime	-1521720000	1921-10-12 12:00:00	yd=284 wd=3
+gmtime	-1521633600	1921-10-13 12:00:00	yd=285 wd=4
+gmtime	-1521547200	1921-10-14 12:00:00	yd=286 wd=5
+gmtime	-1521460800	1921-10-15 12:00:00	yd=287 wd=6
+gmtime	-1521374400	1921-10-16 12:00:00	yd=288 wd=0
+gmtime	-1521288000	1921-10-17 12:00:00	yd=289 wd=1
+gmtime	-1521201600	1921-10-18 12:00:00	yd=290 wd=2
+gmtime	-1521115200	1921-10-19 12:00:00	yd=291 wd=3
+gmtime	-1521028800	1921-10-20 12:00:00	yd=292 wd=4
+gmtime	-1520942400	1921-10-21 12:00:00	yd=293 wd=5
+gmtime	-1520856000	1921-10-22 12:00:00	yd=294 wd=6
+gmtime	-1520769600	1921-10-23 12:00:00	yd=295 wd=0
+gmtime	-1520683200	1921-10-24 12:00:00	yd=296 wd=1
+gmtime	-1520596800	1921-10-25 12:00:00	yd=297 wd=2
+gmtime	-1520510400	1921-10-26 12:00:00	yd=298 wd=3
+gmtime	-1520424000	1921-10-27 12:00:00	yd=299 wd=4
+gmtime	-1520337600	1921-10-28 12:00:00	yd=300 wd=5
+gmtime	-1520251200	1921-10-29 12:00:00	yd=301 wd=6
+gmtime	-1520164800	1921-10-30 12:00:00	yd=302 wd=0
+gmtime	-1520078400	1921-10-31 12:00:00	yd=303 wd=1
+gmtime	-1519992000	1921-11-01 12:00:00	yd=304 wd=2
+gmtime	-1519905600	1921-11-02 12:00:00	yd=305 wd=3
+gmtime	-1519819200	1921-11-03 12:00:00	yd=306 wd=4
+gmtime	-1519732800	1921-11-04 12:00:00	yd=307 wd=5
+gmtime	-1519646400	1921-11-05 12:00:00	yd=308 wd=6
+gmtime	-1519560000	1921-11-06 12:00:00	yd=309 wd=0
+gmtime	-1519473600	1921-11-07 12:00:00	yd=310 wd=1
+gmtime	-1519387200	1921-11-08 12:00:00	yd=311 wd=2
+gmtime	-1519300800	1921-11-09 12:00:00	yd=312 wd=3
+gmtime	-1519214400	1921-11-10 12:00:00	yd=313 wd=4
+gmtime	-1519128000	1921-11-11 12:00:00	yd=314 wd=5
+gmtime	-1519041600	1921-11-12 12:00:00	yd=315 wd=6
+gmtime	-1518955200	1921-11-13 12:00:00	yd=316 wd=0
+gmtime	-1518868800	1921-11-14 12:00:00	yd=317 wd=1
+gmtime	-1518782400	1921-11-15 12:00:00	yd=318 wd=2
+gmtime	-1518696000	1921-11-16 12:00:00	yd=319 wd=3
+gmtime	-1518609600	1921-11-17 12:00:00	yd=320 wd=4
+gmtime	-1518523200	1921-11-18 12:00:00	yd=321 wd=5
+gmtime	-1518436800	1921-11-19 12:00:00	yd=322 wd=6
+gmtime	-1518350400	1921-11-20 12:00:00	yd=323 wd=0
+gmtime	-1518264000	1921-11-21 12:00:00	yd=324 wd=1
+gmtime	-1518177600	1921-11-22 12:00:00	yd=325 wd=2
+gmtime	-1518091200	1921-11-23 12:00:00	yd=326 wd=3
+gmtime	-1518004800	1921-11-24 12:00:00	yd=327 wd=4
+gmtime	-1517918400	1921-11-25 12:00:00	yd=328 wd=5
+gmtime	-1517832000	1921-11-26 12:00:00	yd=329 wd=6
+gmtime	-1517745600	1921-11-27 12:00:00	yd=330 wd=0
+gmtime	-1517659200	1921-11-28 12:00:00	yd=331 wd=1
+gmtime	-1517572800	1921-11-29 12:00:00	yd=332 wd=2
+gmtime	-1517486400	1921-11-30 12:00:00	yd=333 wd=3
+gmtime	-1517400000	1921-12-01 12:00:00	yd=334 wd=4
+gmtime	-1517313600	1921-12-02 12:00:00	yd=335 wd=5
+gmtime	-1517227200	1921-12-03 12:00:00	yd=336 wd=6
+gmtime	-1517140800	1921-12-04 12:00:00	yd=337 wd=0
+gmtime	-1517054400	1921-12-05 12:00:00	yd=338 wd=1
+gmtime	-1516968000	1921-12-06 12:00:00	yd=339 wd=2
+gmtime	-1516881600	1921-12-07 12:00:00	yd=340 wd=3
+gmtime	-1516795200	1921-12-08 12:00:00	yd=341 wd=4
+gmtime	-1516708800	1921-12-09 12:00:00	yd=342 wd=5
+gmtime	-1516622400	1921-12-10 12:00:00	yd=343 wd=6
+gmtime	-1516536000	1921-12-11 12:00:00	yd=344 wd=0
+gmtime	-1516449600	1921-12-12 12:00:00	yd=345 wd=1
+gmtime	-1516363200	1921-12-13 12:00:00	yd=346 wd=2
+gmtime	-1516276800	1921-12-14 12:00:00	yd=347 wd=3
+gmtime	-1516190400	1921-12-15 12:00:00	yd=348 wd=4
+gmtime	-1516104000	1921-12-16 12:00:00	yd=349 wd=5
+gmtime	-1516017600	1921-12-17 12:00:00	yd=350 wd=6
+gmtime	-1515931200	1921-12-18 12:00:00	yd=351 wd=0
+gmtime	-1515844800	1921-12-19 12:00:00	yd=352 wd=1
+gmtime	-1515758400	1921-12-20 12:00:00	yd=353 wd=2
+gmtime	-1515672000	1921-12-21 12:00:00	yd=354 wd=3
+gmtime	-1515585600	1921-12-22 12:00:00	yd=355 wd=4
+gmtime	-1515499200	1921-12-23 12:00:00	yd=356 wd=5
+gmtime	-1515412800	1921-12-24 12:00:00	yd=357 wd=6
+gmtime	-1515326400	1921-12-25 12:00:00	yd=358 wd=0
+gmtime	-1515240000	1921-12-26 12:00:00	yd=359 wd=1
+gmtime	-1515153600	1921-12-27 12:00:00	yd=360 wd=2
+gmtime	-1515067200	1921-12-28 12:00:00	yd=361 wd=3
+gmtime	-1514980800	1921-12-29 12:00:00	yd=362 wd=4
+gmtime	-1514894400	1921-12-30 12:00:00	yd=363 wd=5
+gmtime	-1514808000	1921-12-31 12:00:00	yd=364 wd=6
+
+# negative, leap year
+
+gmtime	-1072958400	1936-01-01 12:00:00	yd=0 wd=3
+gmtime	-1072872000	1936-01-02 12:00:00	yd=1 wd=4
+gmtime	-1072785600	1936-01-03 12:00:00	yd=2 wd=5
+gmtime	-1072699200	1936-01-04 12:00:00	yd=3 wd=6
+gmtime	-1072612800	1936-01-05 12:00:00	yd=4 wd=0
+gmtime	-1072526400	1936-01-06 12:00:00	yd=5 wd=1
+gmtime	-1072440000	1936-01-07 12:00:00	yd=6 wd=2
+gmtime	-1072353600	1936-01-08 12:00:00	yd=7 wd=3
+gmtime	-1072267200	1936-01-09 12:00:00	yd=8 wd=4
+gmtime	-1072180800	1936-01-10 12:00:00	yd=9 wd=5
+gmtime	-1072094400	1936-01-11 12:00:00	yd=10 wd=6
+gmtime	-1072008000	1936-01-12 12:00:00	yd=11 wd=0
+gmtime	-1071921600	1936-01-13 12:00:00	yd=12 wd=1
+gmtime	-1071835200	1936-01-14 12:00:00	yd=13 wd=2
+gmtime	-1071748800	1936-01-15 12:00:00	yd=14 wd=3
+gmtime	-1071662400	1936-01-16 12:00:00	yd=15 wd=4
+gmtime	-1071576000	1936-01-17 12:00:00	yd=16 wd=5
+gmtime	-1071489600	1936-01-18 12:00:00	yd=17 wd=6
+gmtime	-1071403200	1936-01-19 12:00:00	yd=18 wd=0
+gmtime	-1071316800	1936-01-20 12:00:00	yd=19 wd=1
+gmtime	-1071230400	1936-01-21 12:00:00	yd=20 wd=2
+gmtime	-1071144000	1936-01-22 12:00:00	yd=21 wd=3
+gmtime	-1071057600	1936-01-23 12:00:00	yd=22 wd=4
+gmtime	-1070971200	1936-01-24 12:00:00	yd=23 wd=5
+gmtime	-1070884800	1936-01-25 12:00:00	yd=24 wd=6
+gmtime	-1070798400	1936-01-26 12:00:00	yd=25 wd=0
+gmtime	-1070712000	1936-01-27 12:00:00	yd=26 wd=1
+gmtime	-1070625600	1936-01-28 12:00:00	yd=27 wd=2
+gmtime	-1070539200	1936-01-29 12:00:00	yd=28 wd=3
+gmtime	-1070452800	1936-01-30 12:00:00	yd=29 wd=4
+gmtime	-1070366400	1936-01-31 12:00:00	yd=30 wd=5
+gmtime	-1070280000	1936-02-01 12:00:00	yd=31 wd=6
+gmtime	-1070193600	1936-02-02 12:00:00	yd=32 wd=0
+gmtime	-1070107200	1936-02-03 12:00:00	yd=33 wd=1
+gmtime	-1070020800	1936-02-04 12:00:00	yd=34 wd=2
+gmtime	-1069934400	1936-02-05 12:00:00	yd=35 wd=3
+gmtime	-1069848000	1936-02-06 12:00:00	yd=36 wd=4
+gmtime	-1069761600	1936-02-07 12:00:00	yd=37 wd=5
+gmtime	-1069675200	1936-02-08 12:00:00	yd=38 wd=6
+gmtime	-1069588800	1936-02-09 12:00:00	yd=39 wd=0
+gmtime	-1069502400	1936-02-10 12:00:00	yd=40 wd=1
+gmtime	-1069416000	1936-02-11 12:00:00	yd=41 wd=2
+gmtime	-1069329600	1936-02-12 12:00:00	yd=42 wd=3
+gmtime	-1069243200	1936-02-13 12:00:00	yd=43 wd=4
+gmtime	-1069156800	1936-02-14 12:00:00	yd=44 wd=5
+gmtime	-1069070400	1936-02-15 12:00:00	yd=45 wd=6
+gmtime	-1068984000	1936-02-16 12:00:00	yd=46 wd=0
+gmtime	-1068897600	1936-02-17 12:00:00	yd=47 wd=1
+gmtime	-1068811200	1936-02-18 12:00:00	yd=48 wd=2
+gmtime	-1068724800	1936-02-19 12:00:00	yd=49 wd=3
+gmtime	-1068638400	1936-02-20 12:00:00	yd=50 wd=4
+gmtime	-1068552000	1936-02-21 12:00:00	yd=51 wd=5
+gmtime	-1068465600	1936-02-22 12:00:00	yd=52 wd=6
+gmtime	-1068379200	1936-02-23 12:00:00	yd=53 wd=0
+gmtime	-1068292800	1936-02-24 12:00:00	yd=54 wd=1
+gmtime	-1068206400	1936-02-25 12:00:00	yd=55 wd=2
+gmtime	-1068120000	1936-02-26 12:00:00	yd=56 wd=3
+gmtime	-1068033600	1936-02-27 12:00:00	yd=57 wd=4
+gmtime	-1067947200	1936-02-28 12:00:00	yd=58 wd=5
+gmtime	-1067860800	1936-02-29 12:00:00	yd=59 wd=6
+gmtime	-1067774400	1936-03-01 12:00:00	yd=60 wd=0
+gmtime	-1067688000	1936-03-02 12:00:00	yd=61 wd=1
+gmtime	-1067601600	1936-03-03 12:00:00	yd=62 wd=2
+gmtime	-1067515200	1936-03-04 12:00:00	yd=63 wd=3
+gmtime	-1067428800	1936-03-05 12:00:00	yd=64 wd=4
+gmtime	-1067342400	1936-03-06 12:00:00	yd=65 wd=5
+gmtime	-1067256000	1936-03-07 12:00:00	yd=66 wd=6
+gmtime	-1067169600	1936-03-08 12:00:00	yd=67 wd=0
+gmtime	-1067083200	1936-03-09 12:00:00	yd=68 wd=1
+gmtime	-1066996800	1936-03-10 12:00:00	yd=69 wd=2
+gmtime	-1066910400	1936-03-11 12:00:00	yd=70 wd=3
+gmtime	-1066824000	1936-03-12 12:00:00	yd=71 wd=4
+gmtime	-1066737600	1936-03-13 12:00:00	yd=72 wd=5
+gmtime	-1066651200	1936-03-14 12:00:00	yd=73 wd=6
+gmtime	-1066564800	1936-03-15 12:00:00	yd=74 wd=0
+gmtime	-1066478400	1936-03-16 12:00:00	yd=75 wd=1
+gmtime	-1066392000	1936-03-17 12:00:00	yd=76 wd=2
+gmtime	-1066305600	1936-03-18 12:00:00	yd=77 wd=3
+gmtime	-1066219200	1936-03-19 12:00:00	yd=78 wd=4
+gmtime	-1066132800	1936-03-20 12:00:00	yd=79 wd=5
+gmtime	-1066046400	1936-03-21 12:00:00	yd=80 wd=6
+gmtime	-1065960000	1936-03-22 12:00:00	yd=81 wd=0
+gmtime	-1065873600	1936-03-23 12:00:00	yd=82 wd=1
+gmtime	-1065787200	1936-03-24 12:00:00	yd=83 wd=2
+gmtime	-1065700800	1936-03-25 12:00:00	yd=84 wd=3
+gmtime	-1065614400	1936-03-26 12:00:00	yd=85 wd=4
+gmtime	-1065528000	1936-03-27 12:00:00	yd=86 wd=5
+gmtime	-1065441600	1936-03-28 12:00:00	yd=87 wd=6
+gmtime	-1065355200	1936-03-29 12:00:00	yd=88 wd=0
+gmtime	-1065268800	1936-03-30 12:00:00	yd=89 wd=1
+gmtime	-1065182400	1936-03-31 12:00:00	yd=90 wd=2
+gmtime	-1065096000	1936-04-01 12:00:00	yd=91 wd=3
+gmtime	-1065009600	1936-04-02 12:00:00	yd=92 wd=4
+gmtime	-1064923200	1936-04-03 12:00:00	yd=93 wd=5
+gmtime	-1064836800	1936-04-04 12:00:00	yd=94 wd=6
+gmtime	-1064750400	1936-04-05 12:00:00	yd=95 wd=0
+gmtime	-1064664000	1936-04-06 12:00:00	yd=96 wd=1
+gmtime	-1064577600	1936-04-07 12:00:00	yd=97 wd=2
+gmtime	-1064491200	1936-04-08 12:00:00	yd=98 wd=3
+gmtime	-1064404800	1936-04-09 12:00:00	yd=99 wd=4
+gmtime	-1064318400	1936-04-10 12:00:00	yd=100 wd=5
+gmtime	-1064232000	1936-04-11 12:00:00	yd=101 wd=6
+gmtime	-1064145600	1936-04-12 12:00:00	yd=102 wd=0
+gmtime	-1064059200	1936-04-13 12:00:00	yd=103 wd=1
+gmtime	-1063972800	1936-04-14 12:00:00	yd=104 wd=2
+gmtime	-1063886400	1936-04-15 12:00:00	yd=105 wd=3
+gmtime	-1063800000	1936-04-16 12:00:00	yd=106 wd=4
+gmtime	-1063713600	1936-04-17 12:00:00	yd=107 wd=5
+gmtime	-1063627200	1936-04-18 12:00:00	yd=108 wd=6
+gmtime	-1063540800	1936-04-19 12:00:00	yd=109 wd=0
+gmtime	-1063454400	1936-04-20 12:00:00	yd=110 wd=1
+gmtime	-1063368000	1936-04-21 12:00:00	yd=111 wd=2
+gmtime	-1063281600	1936-04-22 12:00:00	yd=112 wd=3
+gmtime	-1063195200	1936-04-23 12:00:00	yd=113 wd=4
+gmtime	-1063108800	1936-04-24 12:00:00	yd=114 wd=5
+gmtime	-1063022400	1936-04-25 12:00:00	yd=115 wd=6
+gmtime	-1062936000	1936-04-26 12:00:00	yd=116 wd=0
+gmtime	-1062849600	1936-04-27 12:00:00	yd=117 wd=1
+gmtime	-1062763200	1936-04-28 12:00:00	yd=118 wd=2
+gmtime	-1062676800	1936-04-29 12:00:00	yd=119 wd=3
+gmtime	-1062590400	1936-04-30 12:00:00	yd=120 wd=4
+gmtime	-1062504000	1936-05-01 12:00:00	yd=121 wd=5
+gmtime	-1062417600	1936-05-02 12:00:00	yd=122 wd=6
+gmtime	-1062331200	1936-05-03 12:00:00	yd=123 wd=0
+gmtime	-1062244800	1936-05-04 12:00:00	yd=124 wd=1
+gmtime	-1062158400	1936-05-05 12:00:00	yd=125 wd=2
+gmtime	-1062072000	1936-05-06 12:00:00	yd=126 wd=3
+gmtime	-1061985600	1936-05-07 12:00:00	yd=127 wd=4
+gmtime	-1061899200	1936-05-08 12:00:00	yd=128 wd=5
+gmtime	-1061812800	1936-05-09 12:00:00	yd=129 wd=6
+gmtime	-1061726400	1936-05-10 12:00:00	yd=130 wd=0
+gmtime	-1061640000	1936-05-11 12:00:00	yd=131 wd=1
+gmtime	-1061553600	1936-05-12 12:00:00	yd=132 wd=2
+gmtime	-1061467200	1936-05-13 12:00:00	yd=133 wd=3
+gmtime	-1061380800	1936-05-14 12:00:00	yd=134 wd=4
+gmtime	-1061294400	1936-05-15 12:00:00	yd=135 wd=5
+gmtime	-1061208000	1936-05-16 12:00:00	yd=136 wd=6
+gmtime	-1061121600	1936-05-17 12:00:00	yd=137 wd=0
+gmtime	-1061035200	1936-05-18 12:00:00	yd=138 wd=1
+gmtime	-1060948800	1936-05-19 12:00:00	yd=139 wd=2
+gmtime	-1060862400	1936-05-20 12:00:00	yd=140 wd=3
+gmtime	-1060776000	1936-05-21 12:00:00	yd=141 wd=4
+gmtime	-1060689600	1936-05-22 12:00:00	yd=142 wd=5
+gmtime	-1060603200	1936-05-23 12:00:00	yd=143 wd=6
+gmtime	-1060516800	1936-05-24 12:00:00	yd=144 wd=0
+gmtime	-1060430400	1936-05-25 12:00:00	yd=145 wd=1
+gmtime	-1060344000	1936-05-26 12:00:00	yd=146 wd=2
+gmtime	-1060257600	1936-05-27 12:00:00	yd=147 wd=3
+gmtime	-1060171200	1936-05-28 12:00:00	yd=148 wd=4
+gmtime	-1060084800	1936-05-29 12:00:00	yd=149 wd=5
+gmtime	-1059998400	1936-05-30 12:00:00	yd=150 wd=6
+gmtime	-1059912000	1936-05-31 12:00:00	yd=151 wd=0
+gmtime	-1059825600	1936-06-01 12:00:00	yd=152 wd=1
+gmtime	-1059739200	1936-06-02 12:00:00	yd=153 wd=2
+gmtime	-1059652800	1936-06-03 12:00:00	yd=154 wd=3
+gmtime	-1059566400	1936-06-04 12:00:00	yd=155 wd=4
+gmtime	-1059480000	1936-06-05 12:00:00	yd=156 wd=5
+gmtime	-1059393600	1936-06-06 12:00:00	yd=157 wd=6
+gmtime	-1059307200	1936-06-07 12:00:00	yd=158 wd=0
+gmtime	-1059220800	1936-06-08 12:00:00	yd=159 wd=1
+gmtime	-1059134400	1936-06-09 12:00:00	yd=160 wd=2
+gmtime	-1059048000	1936-06-10 12:00:00	yd=161 wd=3
+gmtime	-1058961600	1936-06-11 12:00:00	yd=162 wd=4
+gmtime	-1058875200	1936-06-12 12:00:00	yd=163 wd=5
+gmtime	-1058788800	1936-06-13 12:00:00	yd=164 wd=6
+gmtime	-1058702400	1936-06-14 12:00:00	yd=165 wd=0
+gmtime	-1058616000	1936-06-15 12:00:00	yd=166 wd=1
+gmtime	-1058529600	1936-06-16 12:00:00	yd=167 wd=2
+gmtime	-1058443200	1936-06-17 12:00:00	yd=168 wd=3
+gmtime	-1058356800	1936-06-18 12:00:00	yd=169 wd=4
+gmtime	-1058270400	1936-06-19 12:00:00	yd=170 wd=5
+gmtime	-1058184000	1936-06-20 12:00:00	yd=171 wd=6
+gmtime	-1058097600	1936-06-21 12:00:00	yd=172 wd=0
+gmtime	-1058011200	1936-06-22 12:00:00	yd=173 wd=1
+gmtime	-1057924800	1936-06-23 12:00:00	yd=174 wd=2
+gmtime	-1057838400	1936-06-24 12:00:00	yd=175 wd=3
+gmtime	-1057752000	1936-06-25 12:00:00	yd=176 wd=4
+gmtime	-1057665600	1936-06-26 12:00:00	yd=177 wd=5
+gmtime	-1057579200	1936-06-27 12:00:00	yd=178 wd=6
+gmtime	-1057492800	1936-06-28 12:00:00	yd=179 wd=0
+gmtime	-1057406400	1936-06-29 12:00:00	yd=180 wd=1
+gmtime	-1057320000	1936-06-30 12:00:00	yd=181 wd=2
+gmtime	-1057233600	1936-07-01 12:00:00	yd=182 wd=3
+gmtime	-1057147200	1936-07-02 12:00:00	yd=183 wd=4
+gmtime	-1057060800	1936-07-03 12:00:00	yd=184 wd=5
+gmtime	-1056974400	1936-07-04 12:00:00	yd=185 wd=6
+gmtime	-1056888000	1936-07-05 12:00:00	yd=186 wd=0
+gmtime	-1056801600	1936-07-06 12:00:00	yd=187 wd=1
+gmtime	-1056715200	1936-07-07 12:00:00	yd=188 wd=2
+gmtime	-1056628800	1936-07-08 12:00:00	yd=189 wd=3
+gmtime	-1056542400	1936-07-09 12:00:00	yd=190 wd=4
+gmtime	-1056456000	1936-07-10 12:00:00	yd=191 wd=5
+gmtime	-1056369600	1936-07-11 12:00:00	yd=192 wd=6
+gmtime	-1056283200	1936-07-12 12:00:00	yd=193 wd=0
+gmtime	-1056196800	1936-07-13 12:00:00	yd=194 wd=1
+gmtime	-1056110400	1936-07-14 12:00:00	yd=195 wd=2
+gmtime	-1056024000	1936-07-15 12:00:00	yd=196 wd=3
+gmtime	-1055937600	1936-07-16 12:00:00	yd=197 wd=4
+gmtime	-1055851200	1936-07-17 12:00:00	yd=198 wd=5
+gmtime	-1055764800	1936-07-18 12:00:00	yd=199 wd=6
+gmtime	-1055678400	1936-07-19 12:00:00	yd=200 wd=0
+gmtime	-1055592000	1936-07-20 12:00:00	yd=201 wd=1
+gmtime	-1055505600	1936-07-21 12:00:00	yd=202 wd=2
+gmtime	-1055419200	1936-07-22 12:00:00	yd=203 wd=3
+gmtime	-1055332800	1936-07-23 12:00:00	yd=204 wd=4
+gmtime	-1055246400	1936-07-24 12:00:00	yd=205 wd=5
+gmtime	-1055160000	1936-07-25 12:00:00	yd=206 wd=6
+gmtime	-1055073600	1936-07-26 12:00:00	yd=207 wd=0
+gmtime	-1054987200	1936-07-27 12:00:00	yd=208 wd=1
+gmtime	-1054900800	1936-07-28 12:00:00	yd=209 wd=2
+gmtime	-1054814400	1936-07-29 12:00:00	yd=210 wd=3
+gmtime	-1054728000	1936-07-30 12:00:00	yd=211 wd=4
+gmtime	-1054641600	1936-07-31 12:00:00	yd=212 wd=5
+gmtime	-1054555200	1936-08-01 12:00:00	yd=213 wd=6
+gmtime	-1054468800	1936-08-02 12:00:00	yd=214 wd=0
+gmtime	-1054382400	1936-08-03 12:00:00	yd=215 wd=1
+gmtime	-1054296000	1936-08-04 12:00:00	yd=216 wd=2
+gmtime	-1054209600	1936-08-05 12:00:00	yd=217 wd=3
+gmtime	-1054123200	1936-08-06 12:00:00	yd=218 wd=4
+gmtime	-1054036800	1936-08-07 12:00:00	yd=219 wd=5
+gmtime	-1053950400	1936-08-08 12:00:00	yd=220 wd=6
+gmtime	-1053864000	1936-08-09 12:00:00	yd=221 wd=0
+gmtime	-1053777600	1936-08-10 12:00:00	yd=222 wd=1
+gmtime	-1053691200	1936-08-11 12:00:00	yd=223 wd=2
+gmtime	-1053604800	1936-08-12 12:00:00	yd=224 wd=3
+gmtime	-1053518400	1936-08-13 12:00:00	yd=225 wd=4
+gmtime	-1053432000	1936-08-14 12:00:00	yd=226 wd=5
+gmtime	-1053345600	1936-08-15 12:00:00	yd=227 wd=6
+gmtime	-1053259200	1936-08-16 12:00:00	yd=228 wd=0
+gmtime	-1053172800	1936-08-17 12:00:00	yd=229 wd=1
+gmtime	-1053086400	1936-08-18 12:00:00	yd=230 wd=2
+gmtime	-1053000000	1936-08-19 12:00:00	yd=231 wd=3
+gmtime	-1052913600	1936-08-20 12:00:00	yd=232 wd=4
+gmtime	-1052827200	1936-08-21 12:00:00	yd=233 wd=5
+gmtime	-1052740800	1936-08-22 12:00:00	yd=234 wd=6
+gmtime	-1052654400	1936-08-23 12:00:00	yd=235 wd=0
+gmtime	-1052568000	1936-08-24 12:00:00	yd=236 wd=1
+gmtime	-1052481600	1936-08-25 12:00:00	yd=237 wd=2
+gmtime	-1052395200	1936-08-26 12:00:00	yd=238 wd=3
+gmtime	-1052308800	1936-08-27 12:00:00	yd=239 wd=4
+gmtime	-1052222400	1936-08-28 12:00:00	yd=240 wd=5
+gmtime	-1052136000	1936-08-29 12:00:00	yd=241 wd=6
+gmtime	-1052049600	1936-08-30 12:00:00	yd=242 wd=0
+gmtime	-1051963200	1936-08-31 12:00:00	yd=243 wd=1
+gmtime	-1051876800	1936-09-01 12:00:00	yd=244 wd=2
+gmtime	-1051790400	1936-09-02 12:00:00	yd=245 wd=3
+gmtime	-1051704000	1936-09-03 12:00:00	yd=246 wd=4
+gmtime	-1051617600	1936-09-04 12:00:00	yd=247 wd=5
+gmtime	-1051531200	1936-09-05 12:00:00	yd=248 wd=6
+gmtime	-1051444800	1936-09-06 12:00:00	yd=249 wd=0
+gmtime	-1051358400	1936-09-07 12:00:00	yd=250 wd=1
+gmtime	-1051272000	1936-09-08 12:00:00	yd=251 wd=2
+gmtime	-1051185600	1936-09-09 12:00:00	yd=252 wd=3
+gmtime	-1051099200	1936-09-10 12:00:00	yd=253 wd=4
+gmtime	-1051012800	1936-09-11 12:00:00	yd=254 wd=5
+gmtime	-1050926400	1936-09-12 12:00:00	yd=255 wd=6
+gmtime	-1050840000	1936-09-13 12:00:00	yd=256 wd=0
+gmtime	-1050753600	1936-09-14 12:00:00	yd=257 wd=1
+gmtime	-1050667200	1936-09-15 12:00:00	yd=258 wd=2
+gmtime	-1050580800	1936-09-16 12:00:00	yd=259 wd=3
+gmtime	-1050494400	1936-09-17 12:00:00	yd=260 wd=4
+gmtime	-1050408000	1936-09-18 12:00:00	yd=261 wd=5
+gmtime	-1050321600	1936-09-19 12:00:00	yd=262 wd=6
+gmtime	-1050235200	1936-09-20 12:00:00	yd=263 wd=0
+gmtime	-1050148800	1936-09-21 12:00:00	yd=264 wd=1
+gmtime	-1050062400	1936-09-22 12:00:00	yd=265 wd=2
+gmtime	-1049976000	1936-09-23 12:00:00	yd=266 wd=3
+gmtime	-1049889600	1936-09-24 12:00:00	yd=267 wd=4
+gmtime	-1049803200	1936-09-25 12:00:00	yd=268 wd=5
+gmtime	-1049716800	1936-09-26 12:00:00	yd=269 wd=6
+gmtime	-1049630400	1936-09-27 12:00:00	yd=270 wd=0
+gmtime	-1049544000	1936-09-28 12:00:00	yd=271 wd=1
+gmtime	-1049457600	1936-09-29 12:00:00	yd=272 wd=2
+gmtime	-1049371200	1936-09-30 12:00:00	yd=273 wd=3
+gmtime	-1049284800	1936-10-01 12:00:00	yd=274 wd=4
+gmtime	-1049198400	1936-10-02 12:00:00	yd=275 wd=5
+gmtime	-1049112000	1936-10-03 12:00:00	yd=276 wd=6
+gmtime	-1049025600	1936-10-04 12:00:00	yd=277 wd=0
+gmtime	-1048939200	1936-10-05 12:00:00	yd=278 wd=1
+gmtime	-1048852800	1936-10-06 12:00:00	yd=279 wd=2
+gmtime	-1048766400	1936-10-07 12:00:00	yd=280 wd=3
+gmtime	-1048680000	1936-10-08 12:00:00	yd=281 wd=4
+gmtime	-1048593600	1936-10-09 12:00:00	yd=282 wd=5
+gmtime	-1048507200	1936-10-10 12:00:00	yd=283 wd=6
+gmtime	-1048420800	1936-10-11 12:00:00	yd=284 wd=0
+gmtime	-1048334400	1936-10-12 12:00:00	yd=285 wd=1
+gmtime	-1048248000	1936-10-13 12:00:00	yd=286 wd=2
+gmtime	-1048161600	1936-10-14 12:00:00	yd=287 wd=3
+gmtime	-1048075200	1936-10-15 12:00:00	yd=288 wd=4
+gmtime	-1047988800	1936-10-16 12:00:00	yd=289 wd=5
+gmtime	-1047902400	1936-10-17 12:00:00	yd=290 wd=6
+gmtime	-1047816000	1936-10-18 12:00:00	yd=291 wd=0
+gmtime	-1047729600	1936-10-19 12:00:00	yd=292 wd=1
+gmtime	-1047643200	1936-10-20 12:00:00	yd=293 wd=2
+gmtime	-1047556800	1936-10-21 12:00:00	yd=294 wd=3
+gmtime	-1047470400	1936-10-22 12:00:00	yd=295 wd=4
+gmtime	-1047384000	1936-10-23 12:00:00	yd=296 wd=5
+gmtime	-1047297600	1936-10-24 12:00:00	yd=297 wd=6
+gmtime	-1047211200	1936-10-25 12:00:00	yd=298 wd=0
+gmtime	-1047124800	1936-10-26 12:00:00	yd=299 wd=1
+gmtime	-1047038400	1936-10-27 12:00:00	yd=300 wd=2
+gmtime	-1046952000	1936-10-28 12:00:00	yd=301 wd=3
+gmtime	-1046865600	1936-10-29 12:00:00	yd=302 wd=4
+gmtime	-1046779200	1936-10-30 12:00:00	yd=303 wd=5
+gmtime	-1046692800	1936-10-31 12:00:00	yd=304 wd=6
+gmtime	-1046606400	1936-11-01 12:00:00	yd=305 wd=0
+gmtime	-1046520000	1936-11-02 12:00:00	yd=306 wd=1
+gmtime	-1046433600	1936-11-03 12:00:00	yd=307 wd=2
+gmtime	-1046347200	1936-11-04 12:00:00	yd=308 wd=3
+gmtime	-1046260800	1936-11-05 12:00:00	yd=309 wd=4
+gmtime	-1046174400	1936-11-06 12:00:00	yd=310 wd=5
+gmtime	-1046088000	1936-11-07 12:00:00	yd=311 wd=6
+gmtime	-1046001600	1936-11-08 12:00:00	yd=312 wd=0
+gmtime	-1045915200	1936-11-09 12:00:00	yd=313 wd=1
+gmtime	-1045828800	1936-11-10 12:00:00	yd=314 wd=2
+gmtime	-1045742400	1936-11-11 12:00:00	yd=315 wd=3
+gmtime	-1045656000	1936-11-12 12:00:00	yd=316 wd=4
+gmtime	-1045569600	1936-11-13 12:00:00	yd=317 wd=5
+gmtime	-1045483200	1936-11-14 12:00:00	yd=318 wd=6
+gmtime	-1045396800	1936-11-15 12:00:00	yd=319 wd=0
+gmtime	-1045310400	1936-11-16 12:00:00	yd=320 wd=1
+gmtime	-1045224000	1936-11-17 12:00:00	yd=321 wd=2
+gmtime	-1045137600	1936-11-18 12:00:00	yd=322 wd=3
+gmtime	-1045051200	1936-11-19 12:00:00	yd=323 wd=4
+gmtime	-1044964800	1936-11-20 12:00:00	yd=324 wd=5
+gmtime	-1044878400	1936-11-21 12:00:00	yd=325 wd=6
+gmtime	-1044792000	1936-11-22 12:00:00	yd=326 wd=0
+gmtime	-1044705600	1936-11-23 12:00:00	yd=327 wd=1
+gmtime	-1044619200	1936-11-24 12:00:00	yd=328 wd=2
+gmtime	-1044532800	1936-11-25 12:00:00	yd=329 wd=3
+gmtime	-1044446400	1936-11-26 12:00:00	yd=330 wd=4
+gmtime	-1044360000	1936-11-27 12:00:00	yd=331 wd=5
+gmtime	-1044273600	1936-11-28 12:00:00	yd=332 wd=6
+gmtime	-1044187200	1936-11-29 12:00:00	yd=333 wd=0
+gmtime	-1044100800	1936-11-30 12:00:00	yd=334 wd=1
+gmtime	-1044014400	1936-12-01 12:00:00	yd=335 wd=2
+gmtime	-1043928000	1936-12-02 12:00:00	yd=336 wd=3
+gmtime	-1043841600	1936-12-03 12:00:00	yd=337 wd=4
+gmtime	-1043755200	1936-12-04 12:00:00	yd=338 wd=5
+gmtime	-1043668800	1936-12-05 12:00:00	yd=339 wd=6
+gmtime	-1043582400	1936-12-06 12:00:00	yd=340 wd=0
+gmtime	-1043496000	1936-12-07 12:00:00	yd=341 wd=1
+gmtime	-1043409600	1936-12-08 12:00:00	yd=342 wd=2
+gmtime	-1043323200	1936-12-09 12:00:00	yd=343 wd=3
+gmtime	-1043236800	1936-12-10 12:00:00	yd=344 wd=4
+gmtime	-1043150400	1936-12-11 12:00:00	yd=345 wd=5
+gmtime	-1043064000	1936-12-12 12:00:00	yd=346 wd=6
+gmtime	-1042977600	1936-12-13 12:00:00	yd=347 wd=0
+gmtime	-1042891200	1936-12-14 12:00:00	yd=348 wd=1
+gmtime	-1042804800	1936-12-15 12:00:00	yd=349 wd=2
+gmtime	-1042718400	1936-12-16 12:00:00	yd=350 wd=3
+gmtime	-1042632000	1936-12-17 12:00:00	yd=351 wd=4
+gmtime	-1042545600	1936-12-18 12:00:00	yd=352 wd=5
+gmtime	-1042459200	1936-12-19 12:00:00	yd=353 wd=6
+gmtime	-1042372800	1936-12-20 12:00:00	yd=354 wd=0
+gmtime	-1042286400	1936-12-21 12:00:00	yd=355 wd=1
+gmtime	-1042200000	1936-12-22 12:00:00	yd=356 wd=2
+gmtime	-1042113600	1936-12-23 12:00:00	yd=357 wd=3
+gmtime	-1042027200	1936-12-24 12:00:00	yd=358 wd=4
+gmtime	-1041940800	1936-12-25 12:00:00	yd=359 wd=5
+gmtime	-1041854400	1936-12-26 12:00:00	yd=360 wd=6
+gmtime	-1041768000	1936-12-27 12:00:00	yd=361 wd=0
+gmtime	-1041681600	1936-12-28 12:00:00	yd=362 wd=1
+gmtime	-1041595200	1936-12-29 12:00:00	yd=363 wd=2
+gmtime	-1041508800	1936-12-30 12:00:00	yd=364 wd=3
+gmtime	-1041422400	1936-12-31 12:00:00	yd=365 wd=4
+
+# historical dates
+
+gmtime	-31536000	1969-01-01 00:00:00
+gmtime	-315619200	1960-01-01 00:00:00
+gmtime	-631152000	1950-01-01 00:00:00
+gmtime	-1420070400	1925-01-01 00:00:00
+gmtime	-2145916800	1902-01-01 00:00:00
+
+# basic localtime tests
+
+tz EST5EDT
+localtime	0		1969-12-31 19:00:00
+localtime	-2147483648	1901-12-13 15:45:52 
+localtime	2147483647	2038-01-18 22:14:07
+localtime	4294967295	2106-02-07 01:28:15
+
+tz PST8PDT
+localtime	0		1969-12-31 16:00:00
+localtime	-2147483648	1901-12-13 12:45:52 
+localtime	2147483647	2038-01-18 19:14:07
+localtime	4294967295	2106-02-06 22:28:15
+
+# many zones
+
+tz America/St_Johns	# Canada/Newfoundland, UTC-3.5
+localtime	946740600	2000-01-01 12:00:00	z=NST
+localtime	962461800	2000-07-01 12:00:00	z=NDT
+tz America/Halifax	# Canada/Atlantic
+localtime	946742400	2000-01-01 12:00:00	z=AST
+localtime	962463600	2000-07-01 12:00:00	z=ADT
+
+tz America/New_York	# US/Eastern
+localtime	946746000	2000-01-01 12:00:00	z=EST
+localtime	962467200	2000-07-01 12:00:00	z=EDT
+tz America/Chicago	# US/Central
+localtime	946749600	2000-01-01 12:00:00	z=CST
+localtime	962470800	2000-07-01 12:00:00	z=CDT
+tz America/Denver	# US/Mountain
+localtime	946753200	2000-01-01 12:00:00	z=MST
+localtime	962474400	2000-07-01 12:00:00	z=MDT
+tz America/Los_Angeles	# US/Pacific
+localtime	946756800	2000-01-01 12:00:00	z=PST
+localtime	962478000	2000-07-01 12:00:00	z=PDT
+
+tz Europe/London	# UTC+0
+localtime	946728000	2000-01-01 12:00:00	z=GMT
+localtime	962449200	2000-07-01 12:00:00	z=BST
+
+tz Europe/Rome		# UTC+1
+localtime	946724400	2000-01-01 12:00:00	z=CET
+localtime	962445600	2000-07-01 12:00:00	z=CEST
+
+tz Asia/Kolkata		# India, UTC+5.5
+localtime	946708200	2000-01-01 12:00:00	z=IST
+localtime	962433000	2000-07-01 12:00:00	z=IST
+
+tz Asia/Tokyo		# UTC+9
+localtime	946695600	2000-01-01 12:00:00	z=JST
+localtime	962420400	2000-07-01 12:00:00	z=JST
+
+tz Australia/Perth	# Australia/West, UTC+8
+localtime	946699200	2000-01-01 12:00:00	z=AWST
+localtime	962424000	2000-07-01 12:00:00	z=AWST
+tz Australia/Darwin	# Australia/North, UTC+9.5, no DST
+localtime	946693800	2000-01-01 12:00:00	z=ACST
+localtime	962418600	2000-07-01 12:00:00	z=ACST
+tz Australia/Adelaide	# Australia/South, UTC+9.5, DST
+localtime	946690200	2000-01-01 12:00:00	z=ACDT
+localtime	962418600	2000-07-01 12:00:00	z=ACST
+tz Australia/Brisbane	# Australia/Queensland, UTC+10, no DST
+localtime	946692000	2000-01-01 12:00:00	z=AEST
+localtime	962416800	2000-07-01 12:00:00	z=AEST
+tz Australia/Sydney	# Australia/NSW, UTC+10, DST
+localtime	946688400	2000-01-01 12:00:00	z=AEDT
+localtime	962416800	2000-07-01 12:00:00	z=AEST
+
+# many zones, a different (easier) way
+
+tz America/St_Johns	# Canada/Newfoundland, UTC-3.5
+localtime	946684800	1999-12-31 20:30:00	z=NST
+localtime	962409600	2000-06-30 21:30:00	z=NDT
+tz America/Halifax	# Canada/Atlantic
+localtime	946684800	1999-12-31 20:00:00	z=AST
+localtime	962409600	2000-06-30 21:00:00	z=ADT
+
+tz America/New_York	# US/Eastern
+localtime	946684800	1999-12-31 19:00:00	z=EST
+localtime	962409600	2000-06-30 20:00:00	z=EDT
+tz America/Chicago	# US/Central
+localtime	946684800	1999-12-31 18:00:00	z=CST
+localtime	962409600	2000-06-30 19:00:00	z=CDT
+tz America/Denver	# US/Mountain
+localtime	946684800	1999-12-31 17:00:00	z=MST
+localtime	962409600	2000-06-30 18:00:00	z=MDT
+tz America/Los_Angeles	# US/Pacific
+localtime	946684800	1999-12-31 16:00:00	z=PST
+localtime	962409600	2000-06-30 17:00:00	z=PDT
+
+tz Europe/London	# UTC+0
+localtime	946684800	2000-01-01 00:00:00	z=GMT
+localtime	962409600	2000-07-01 01:00:00	z=BST
+
+tz Europe/Rome		# UTC+1
+localtime	946684800	2000-01-01 01:00:00	z=CET
+localtime	962409600	2000-07-01 02:00:00	z=CEST
+
+tz Asia/Kolkata		# India, UTC+5.5
+localtime	946684800	2000-01-01 05:30:00	z=IST
+localtime	962409600	2000-07-01 05:30:00	z=IST
+
+tz Asia/Tokyo		# UTC+9
+localtime	946684800	2000-01-01 09:00:00	z=JST
+localtime	962409600	2000-07-01 09:00:00	z=JST
+
+tz Australia/Perth	# Australia/West, UTC+8
+localtime	946684800	2000-01-01 08:00:00	z=AWST
+localtime	962409600	2000-07-01 08:00:00	z=AWST
+tz Australia/Darwin	# Australia/North, UTC+9.5, no DST
+localtime	946684800	2000-01-01 09:30:00	z=ACST
+localtime	962409600	2000-07-01 09:30:00	z=ACST
+tz Australia/Adelaide	# Australia/South, UTC+9.5, DST
+localtime	946684800	2000-01-01 10:30:00	z=ACDT
+localtime	962409600	2000-07-01 09:30:00	z=ACST
+tz Australia/Brisbane	# Australia/Queensland, UTC+10, no DST
+localtime	946684800	2000-01-01 10:00:00	z=AEST
+localtime	962409600	2000-07-01 10:00:00	z=AEST
+tz Australia/Sydney	# Australia/NSW, UTC+10, DST
+localtime	946684800	2000-01-01 11:00:00	z=AEDT
+localtime	962409600	2000-07-01 10:00:00	z=AEST
+
+# DST evolution (US)
+
+# "originally": last Sunday in April to last Sunday in October
+# 1987:         first Sunday in April to last Sunday in October
+# 2007:         second Sunday in March to first Sunday in November
+
+tz America/New_York	# US/Eastern
+localtime	478544400	1985-03-01 12:00:00	z=EST o=-18000 dst=0
+localtime	481050000	1985-03-30 12:00:00	z=EST o=-18000 dst=0
+localtime	482432400	1985-04-15 12:00:00	z=EST o=-18000 dst=0
+localtime	483811200	1985-05-01 12:00:00	z=EDT o=-14400 dst=1
+
+localtime	497030400	1985-10-01 12:00:00	z=EDT o=-14400 dst=1
+localtime	499712400	1985-11-01 12:00:00	z=EST o=-18000 dst=0
+localtime	500922000	1985-11-15 12:00:00	z=EST o=-18000 dst=0
+
+localtime	636310800	1990-03-01 12:00:00	z=EST o=-18000 dst=0
+localtime	638816400	1990-03-30 12:00:00	z=EST o=-18000 dst=0
+localtime	640195200	1990-04-15 12:00:00	z=EDT o=-14400 dst=1
+localtime	641577600	1990-05-01 12:00:00	z=EDT o=-14400 dst=1
+
+localtime	1267462800	2010-03-01 12:00:00	z=EST o=-18000 dst=0
+localtime	1269964800	2010-03-30 12:00:00	z=EDT o=-14400 dst=1
+localtime	1271347200	2010-04-15 12:00:00	z=EDT o=-14400 dst=1
+localtime	1272729600	2010-05-01 12:00:00	z=EDT o=-14400 dst=1
+
+localtime	1285948800	2010-10-01 12:00:00	z=EDT o=-14400 dst=1
+localtime	1288627200	2010-11-01 12:00:00	z=EDT o=-14400 dst=1
+localtime	1289840400	2010-11-15 12:00:00	z=EST o=-18000 dst=0
+
+# DST transitions
+tz America/New_York	# US/Eastern
+localtime	1394348340	2014-03-09 01:59:00	z=EST o=-18000 dst=0
+localtime	1394348399	2014-03-09 01:59:59	z=EST o=-18000 dst=0
+# localtime			2014-03-09 02:00:00
+# localtime			2014-03-09 02:30:00
+# localtime			2014-03-09 02:59:00
+localtime	1394348400	2014-03-09 03:00:00	z=EDT o=-14400 dst=1
+localtime	1394348401	2014-03-09 03:00:01	z=EDT o=-14400 dst=1
+
+# "fall back" cases are ambiguous and so don't invert
+localtime	1414907940	2014-11-02 01:59:00	z=EDT o=-14400 dst=1 fl=noi
+localtime	1414907999	2014-11-02 01:59:59	z=EDT o=-14400 dst=1 fl=noi
+localtime	1414908000	2014-11-02 01:00:00	z=EST o=-18000 dst=0 fl=noi
+localtime	1414908001	2014-11-02 01:00:01	z=EST o=-18000 dst=0 fl=noi
+localtime	1414909800	2014-11-02 01:30:00	z=EST o=-18000 dst=0 fl=noi
+localtime	1414911599	2014-11-02 01:59:59	z=EST o=-18000 dst=0 fl=noi
+localtime	1414911600	2014-11-02 02:00:00	z=EST o=-18000 dst=0
+localtime	1414911601	2014-11-02 02:00:01	z=EST o=-18000 dst=0
+
+# nonnormalized mktime/timegm cases
+
+gmtime		645451200	1990-06-15 12:00:00
+gmtime		645451259	1990-06-15 12:00:59
+gmtime		645451260	1990-06-15 12:00:60	fl=denorm
+gmtime		645451290	1990-06-15 12:00:90	fl=denorm
+gmtime		645451300	1990-06-15 12:00:100	fl=denorm
+gmtime		645452200	1990-06-15 12:00:1000	fl=denorm
+gmtime		645461200	1990-06-15 12:00:10000	fl=denorm
+gmtime		645451199	1990-06-15 12:00:-1	fl=denorm
+gmtime		645451190	1990-06-15 12:00:-10	fl=denorm
+gmtime		645451100	1990-06-15 12:00:-100	fl=denorm
+gmtime		645450200	1990-06-15 12:00:-1000	fl=denorm
+gmtime		645441200	1990-06-15 12:00:-10000	fl=denorm
+gmtime		645454740	1990-06-15 12:59:00
+gmtime		645454800	1990-06-15 12:60:00	fl=denorm
+gmtime		645454860	1990-06-15 12:61:00	fl=denorm
+gmtime		645457200	1990-06-15 12:100:00	fl=denorm
+gmtime		645511200	1990-06-15 12:1000:00	fl=denorm
+gmtime		646051200	1990-06-15 12:10000:00	fl=denorm
+gmtime		645451140	1990-06-15 12:-1:00	fl=denorm
+gmtime		645450600	1990-06-15 12:-10:00	fl=denorm
+gmtime		645445200	1990-06-15 12:-100:00	fl=denorm
+gmtime		645391200	1990-06-15 12:-1000:00	fl=denorm
+gmtime		644851200	1990-06-15 12:-10000:00	fl=denorm
+gmtime		645490800	1990-06-15 23:00:00
+gmtime		645494400	1990-06-15 24:00:00	fl=denorm
+gmtime		645498000	1990-06-15 25:00:00	fl=denorm
+gmtime		645768000	1990-06-15 100:00:00	fl=denorm
+gmtime		649008000	1990-06-15 1000:00:00	fl=denorm
+gmtime		681408000	1990-06-15 10000:00:00	fl=denorm
+gmtime		645408000	1990-06-15 00:00:00
+gmtime		645404400	1990-06-15 -1:00:00	fl=denorm
+gmtime		645372000	1990-06-15 -10:00:00	fl=denorm
+gmtime		645048000	1990-06-15 -100:00:00	fl=denorm
+gmtime		641808000	1990-06-15 -1000:00:00	fl=denorm
+gmtime		609408000	1990-06-15 -10000:00:00	fl=denorm
+gmtime		646747200	1990-06-30 12:00:00
+gmtime		646833600	1990-06-31 12:00:00	fl=denorm
+gmtime		646920000	1990-06-32 12:00:00	fl=denorm
+gmtime		652795200	1990-06-100 12:00:00	fl=denorm
+gmtime		730555200	1990-06-1000 12:00:00	fl=denorm
+gmtime		1508155200	1990-06-10000 12:00:00	fl=denorm
+gmtime		644241600	1990-06-01 12:00:00
+gmtime		644155200	1990-06-00 12:00:00	fl=denorm
+gmtime		644068800	1990-06--1 12:00:00	fl=denorm
+gmtime		643291200	1990-06--10 12:00:00	fl=denorm
+gmtime		635515200	1990-06--100 12:00:00	fl=denorm
+gmtime		557755200	1990-06--1000 12:00:00	fl=denorm
+gmtime		-219844800	1990-06--10000 12:00:00	fl=denorm
+gmtime		648043200	1990-07-15 12:00:00
+gmtime		661262400	1990-12-15 12:00:00
+gmtime		663940800	1990-13-15 12:00:00	fl=denorm
+gmtime		632404800	1990-01-15 12:00:00
+gmtime		629726400	1990-00-15 12:00:00	fl=denorm
+gmtime		645501660	1990-06-15 25:60:60	fl=denorm
+gmtime		645774100	1990-06-15 100:100:100	fl=denorm
+
+tz EST5EDT
+localtime	645465600	1990-06-15 12:00:00
+localtime	645465659	1990-06-15 12:00:59
+localtime	645465660	1990-06-15 12:00:60	fl=denorm
+localtime	645465690	1990-06-15 12:00:90	fl=denorm
+localtime	645465700	1990-06-15 12:00:100	fl=denorm
+localtime	645466600	1990-06-15 12:00:1000	fl=denorm
+localtime	645465599	1990-06-15 12:00:-1	fl=denorm
+localtime	645465590	1990-06-15 12:00:-10	fl=denorm
+localtime	645465500	1990-06-15 12:00:-100	fl=denorm
+localtime	645464600	1990-06-15 12:00:-1000	fl=denorm
+localtime	645469140	1990-06-15 12:59:00
+localtime	645469200	1990-06-15 12:60:00	fl=denorm
+localtime	645469260	1990-06-15 12:61:00	fl=denorm
+localtime	645471600	1990-06-15 12:100:00	fl=denorm
+localtime	645525600	1990-06-15 12:1000:00	fl=denorm
+localtime	645465540	1990-06-15 12:-1:00	fl=denorm
+localtime	645465000	1990-06-15 12:-10:00	fl=denorm
+localtime	645459600	1990-06-15 12:-100:00	fl=denorm
+localtime	645405600	1990-06-15 12:-1000:00	fl=denorm
+localtime	645505200	1990-06-15 23:00:00
+localtime	645508800	1990-06-15 24:00:00	fl=denorm
+localtime	645512400	1990-06-15 25:00:00	fl=denorm
+localtime	645782400	1990-06-15 100:00:00	fl=denorm
+localtime	645422400	1990-06-15 00:00:00
+localtime	645418800	1990-06-15 -1:00:00	fl=denorm
+localtime	645386400	1990-06-15 -10:00:00	fl=denorm
+localtime	645062400	1990-06-15 -100:00:00	fl=denorm
+localtime	645516060	1990-06-15 25:60:60	fl=denorm
+localtime	645788500	1990-06-15 100:100:100	fl=denorm
+
+# densely-packed cases, to really exercise mktime binary search
+
+gmtime		1321009770	2011-11-11 11:09:30
+gmtime		1321009771	2011-11-11 11:09:31
+gmtime		1321009772	2011-11-11 11:09:32
+gmtime		1321009773	2011-11-11 11:09:33
+gmtime		1321009774	2011-11-11 11:09:34
+gmtime		1321009775	2011-11-11 11:09:35
+gmtime		1321009776	2011-11-11 11:09:36
+gmtime		1321009777	2011-11-11 11:09:37
+gmtime		1321009778	2011-11-11 11:09:38
+gmtime		1321009779	2011-11-11 11:09:39
+gmtime		1321009780	2011-11-11 11:09:40
+gmtime		1321009781	2011-11-11 11:09:41
+gmtime		1321009782	2011-11-11 11:09:42
+gmtime		1321009783	2011-11-11 11:09:43
+gmtime		1321009784	2011-11-11 11:09:44
+gmtime		1321009785	2011-11-11 11:09:45
+gmtime		1321009786	2011-11-11 11:09:46
+gmtime		1321009787	2011-11-11 11:09:47
+gmtime		1321009788	2011-11-11 11:09:48
+gmtime		1321009789	2011-11-11 11:09:49
+gmtime		1321009790	2011-11-11 11:09:50
+gmtime		1321009791	2011-11-11 11:09:51
+gmtime		1321009792	2011-11-11 11:09:52
+gmtime		1321009793	2011-11-11 11:09:53
+gmtime		1321009794	2011-11-11 11:09:54
+gmtime		1321009795	2011-11-11 11:09:55
+gmtime		1321009796	2011-11-11 11:09:56
+gmtime		1321009797	2011-11-11 11:09:57
+gmtime		1321009798	2011-11-11 11:09:58
+gmtime		1321009799	2011-11-11 11:09:59
+gmtime		1321009800	2011-11-11 11:10:00
+gmtime		1321009801	2011-11-11 11:10:01
+gmtime		1321009802	2011-11-11 11:10:02
+gmtime		1321009803	2011-11-11 11:10:03
+gmtime		1321009804	2011-11-11 11:10:04
+gmtime		1321009805	2011-11-11 11:10:05
+gmtime		1321009806	2011-11-11 11:10:06
+gmtime		1321009807	2011-11-11 11:10:07
+gmtime		1321009808	2011-11-11 11:10:08
+gmtime		1321009809	2011-11-11 11:10:09
+gmtime		1321009810	2011-11-11 11:10:10
+gmtime		1321009811	2011-11-11 11:10:11
+gmtime		1321009812	2011-11-11 11:10:12
+gmtime		1321009813	2011-11-11 11:10:13
+gmtime		1321009814	2011-11-11 11:10:14
+gmtime		1321009815	2011-11-11 11:10:15
+gmtime		1321009816	2011-11-11 11:10:16
+gmtime		1321009817	2011-11-11 11:10:17
+gmtime		1321009818	2011-11-11 11:10:18
+gmtime		1321009819	2011-11-11 11:10:19
+gmtime		1321009820	2011-11-11 11:10:20
+gmtime		1321009821	2011-11-11 11:10:21
+gmtime		1321009822	2011-11-11 11:10:22
+gmtime		1321009823	2011-11-11 11:10:23
+gmtime		1321009824	2011-11-11 11:10:24
+gmtime		1321009825	2011-11-11 11:10:25
+gmtime		1321009826	2011-11-11 11:10:26
+gmtime		1321009827	2011-11-11 11:10:27
+gmtime		1321009828	2011-11-11 11:10:28
+gmtime		1321009829	2011-11-11 11:10:29
+gmtime		1321009830	2011-11-11 11:10:30
+gmtime		1321009831	2011-11-11 11:10:31
+gmtime		1321009832	2011-11-11 11:10:32
+gmtime		1321009833	2011-11-11 11:10:33
+gmtime		1321009834	2011-11-11 11:10:34
+gmtime		1321009835	2011-11-11 11:10:35
+gmtime		1321009836	2011-11-11 11:10:36
+gmtime		1321009837	2011-11-11 11:10:37
+gmtime		1321009838	2011-11-11 11:10:38
+gmtime		1321009839	2011-11-11 11:10:39
+gmtime		1321009840	2011-11-11 11:10:40
+gmtime		1321009841	2011-11-11 11:10:41
+gmtime		1321009842	2011-11-11 11:10:42
+gmtime		1321009843	2011-11-11 11:10:43
+gmtime		1321009844	2011-11-11 11:10:44
+gmtime		1321009845	2011-11-11 11:10:45
+gmtime		1321009846	2011-11-11 11:10:46
+gmtime		1321009847	2011-11-11 11:10:47
+gmtime		1321009848	2011-11-11 11:10:48
+gmtime		1321009849	2011-11-11 11:10:49
+gmtime		1321009850	2011-11-11 11:10:50
+gmtime		1321009851	2011-11-11 11:10:51
+gmtime		1321009852	2011-11-11 11:10:52
+gmtime		1321009853	2011-11-11 11:10:53
+gmtime		1321009854	2011-11-11 11:10:54
+gmtime		1321009855	2011-11-11 11:10:55
+gmtime		1321009856	2011-11-11 11:10:56
+gmtime		1321009857	2011-11-11 11:10:57
+gmtime		1321009858	2011-11-11 11:10:58
+gmtime		1321009859	2011-11-11 11:10:59
+gmtime		1321009860	2011-11-11 11:11:00
+gmtime		1321009861	2011-11-11 11:11:01
+gmtime		1321009862	2011-11-11 11:11:02
+gmtime		1321009863	2011-11-11 11:11:03
+gmtime		1321009864	2011-11-11 11:11:04
+gmtime		1321009865	2011-11-11 11:11:05
+gmtime		1321009866	2011-11-11 11:11:06
+gmtime		1321009867	2011-11-11 11:11:07
+gmtime		1321009868	2011-11-11 11:11:08
+gmtime		1321009869	2011-11-11 11:11:09
+gmtime		1321009870	2011-11-11 11:11:10
+gmtime		1321009871	2011-11-11 11:11:11
+gmtime		1321009872	2011-11-11 11:11:12
+gmtime		1321009873	2011-11-11 11:11:13
+gmtime		1321009874	2011-11-11 11:11:14
+gmtime		1321009875	2011-11-11 11:11:15
+gmtime		1321009876	2011-11-11 11:11:16
+gmtime		1321009877	2011-11-11 11:11:17
+gmtime		1321009878	2011-11-11 11:11:18
+gmtime		1321009879	2011-11-11 11:11:19
+gmtime		1321009880	2011-11-11 11:11:20
+gmtime		1321009881	2011-11-11 11:11:21
+gmtime		1321009882	2011-11-11 11:11:22
+gmtime		1321009883	2011-11-11 11:11:23
+gmtime		1321009884	2011-11-11 11:11:24
+gmtime		1321009885	2011-11-11 11:11:25
+gmtime		1321009886	2011-11-11 11:11:26
+gmtime		1321009887	2011-11-11 11:11:27
+gmtime		1321009888	2011-11-11 11:11:28
+gmtime		1321009889	2011-11-11 11:11:29
+gmtime		1321009890	2011-11-11 11:11:30
+gmtime		1321009891	2011-11-11 11:11:31
+gmtime		1321009892	2011-11-11 11:11:32
+gmtime		1321009893	2011-11-11 11:11:33
+gmtime		1321009894	2011-11-11 11:11:34
+gmtime		1321009895	2011-11-11 11:11:35
+gmtime		1321009896	2011-11-11 11:11:36
+gmtime		1321009897	2011-11-11 11:11:37
+gmtime		1321009898	2011-11-11 11:11:38
+gmtime		1321009899	2011-11-11 11:11:39
+gmtime		1321009900	2011-11-11 11:11:40
+gmtime		1321009901	2011-11-11 11:11:41
+gmtime		1321009902	2011-11-11 11:11:42
+gmtime		1321009903	2011-11-11 11:11:43
+gmtime		1321009904	2011-11-11 11:11:44
+gmtime		1321009905	2011-11-11 11:11:45
+gmtime		1321009906	2011-11-11 11:11:46
+gmtime		1321009907	2011-11-11 11:11:47
+gmtime		1321009908	2011-11-11 11:11:48
+gmtime		1321009909	2011-11-11 11:11:49
+gmtime		1321009910	2011-11-11 11:11:50
+gmtime		1321009911	2011-11-11 11:11:51
+gmtime		1321009912	2011-11-11 11:11:52
+gmtime		1321009913	2011-11-11 11:11:53
+gmtime		1321009914	2011-11-11 11:11:54
+gmtime		1321009915	2011-11-11 11:11:55
+gmtime		1321009916	2011-11-11 11:11:56
+gmtime		1321009917	2011-11-11 11:11:57
+gmtime		1321009918	2011-11-11 11:11:58
+gmtime		1321009919	2011-11-11 11:11:59
+gmtime		1321009920	2011-11-11 11:12:00
+gmtime		1321009921	2011-11-11 11:12:01
+gmtime		1321009922	2011-11-11 11:12:02
+gmtime		1321009923	2011-11-11 11:12:03
+gmtime		1321009924	2011-11-11 11:12:04
+gmtime		1321009925	2011-11-11 11:12:05
+gmtime		1321009926	2011-11-11 11:12:06
+gmtime		1321009927	2011-11-11 11:12:07
+gmtime		1321009928	2011-11-11 11:12:08
+gmtime		1321009929	2011-11-11 11:12:09
+gmtime		1321009930	2011-11-11 11:12:10
+gmtime		1321009931	2011-11-11 11:12:11
+gmtime		1321009932	2011-11-11 11:12:12
+gmtime		1321009933	2011-11-11 11:12:13
+gmtime		1321009934	2011-11-11 11:12:14
+gmtime		1321009935	2011-11-11 11:12:15
+gmtime		1321009936	2011-11-11 11:12:16
+gmtime		1321009937	2011-11-11 11:12:17
+gmtime		1321009938	2011-11-11 11:12:18
+gmtime		1321009939	2011-11-11 11:12:19
+gmtime		1321009940	2011-11-11 11:12:20
+gmtime		1321009941	2011-11-11 11:12:21
+gmtime		1321009942	2011-11-11 11:12:22
+gmtime		1321009943	2011-11-11 11:12:23
+gmtime		1321009944	2011-11-11 11:12:24
+gmtime		1321009945	2011-11-11 11:12:25
+gmtime		1321009946	2011-11-11 11:12:26
+gmtime		1321009947	2011-11-11 11:12:27
+gmtime		1321009948	2011-11-11 11:12:28
+gmtime		1321009949	2011-11-11 11:12:29
+gmtime		1321009950	2011-11-11 11:12:30
+gmtime		1321009951	2011-11-11 11:12:31
+gmtime		1321009952	2011-11-11 11:12:32
+gmtime		1321009953	2011-11-11 11:12:33
+gmtime		1321009954	2011-11-11 11:12:34
+gmtime		1321009955	2011-11-11 11:12:35
+gmtime		1321009956	2011-11-11 11:12:36
+gmtime		1321009957	2011-11-11 11:12:37
+gmtime		1321009958	2011-11-11 11:12:38
+gmtime		1321009959	2011-11-11 11:12:39
+gmtime		1321009960	2011-11-11 11:12:40
+gmtime		1321009961	2011-11-11 11:12:41
+gmtime		1321009962	2011-11-11 11:12:42
+gmtime		1321009963	2011-11-11 11:12:43
+gmtime		1321009964	2011-11-11 11:12:44
+gmtime		1321009965	2011-11-11 11:12:45
+gmtime		1321009966	2011-11-11 11:12:46
+gmtime		1321009967	2011-11-11 11:12:47
+gmtime		1321009968	2011-11-11 11:12:48
+gmtime		1321009969	2011-11-11 11:12:49
+gmtime		1321009970	2011-11-11 11:12:50
+
+# the same, in local time
+
+tz America/New_York	# US/Eastern
+localtime	1355332230	2012-12-12 12:10:30
+localtime	1355332231	2012-12-12 12:10:31
+localtime	1355332232	2012-12-12 12:10:32
+localtime	1355332233	2012-12-12 12:10:33
+localtime	1355332234	2012-12-12 12:10:34
+localtime	1355332235	2012-12-12 12:10:35
+localtime	1355332236	2012-12-12 12:10:36
+localtime	1355332237	2012-12-12 12:10:37
+localtime	1355332238	2012-12-12 12:10:38
+localtime	1355332239	2012-12-12 12:10:39
+localtime	1355332240	2012-12-12 12:10:40
+localtime	1355332241	2012-12-12 12:10:41
+localtime	1355332242	2012-12-12 12:10:42
+localtime	1355332243	2012-12-12 12:10:43
+localtime	1355332244	2012-12-12 12:10:44
+localtime	1355332245	2012-12-12 12:10:45
+localtime	1355332246	2012-12-12 12:10:46
+localtime	1355332247	2012-12-12 12:10:47
+localtime	1355332248	2012-12-12 12:10:48
+localtime	1355332249	2012-12-12 12:10:49
+localtime	1355332250	2012-12-12 12:10:50
+localtime	1355332251	2012-12-12 12:10:51
+localtime	1355332252	2012-12-12 12:10:52
+localtime	1355332253	2012-12-12 12:10:53
+localtime	1355332254	2012-12-12 12:10:54
+localtime	1355332255	2012-12-12 12:10:55
+localtime	1355332256	2012-12-12 12:10:56
+localtime	1355332257	2012-12-12 12:10:57
+localtime	1355332258	2012-12-12 12:10:58
+localtime	1355332259	2012-12-12 12:10:59
+localtime	1355332260	2012-12-12 12:11:00
+localtime	1355332261	2012-12-12 12:11:01
+localtime	1355332262	2012-12-12 12:11:02
+localtime	1355332263	2012-12-12 12:11:03
+localtime	1355332264	2012-12-12 12:11:04
+localtime	1355332265	2012-12-12 12:11:05
+localtime	1355332266	2012-12-12 12:11:06
+localtime	1355332267	2012-12-12 12:11:07
+localtime	1355332268	2012-12-12 12:11:08
+localtime	1355332269	2012-12-12 12:11:09
+localtime	1355332270	2012-12-12 12:11:10
+localtime	1355332271	2012-12-12 12:11:11
+localtime	1355332272	2012-12-12 12:11:12
+localtime	1355332273	2012-12-12 12:11:13
+localtime	1355332274	2012-12-12 12:11:14
+localtime	1355332275	2012-12-12 12:11:15
+localtime	1355332276	2012-12-12 12:11:16
+localtime	1355332277	2012-12-12 12:11:17
+localtime	1355332278	2012-12-12 12:11:18
+localtime	1355332279	2012-12-12 12:11:19
+localtime	1355332280	2012-12-12 12:11:20
+localtime	1355332281	2012-12-12 12:11:21
+localtime	1355332282	2012-12-12 12:11:22
+localtime	1355332283	2012-12-12 12:11:23
+localtime	1355332284	2012-12-12 12:11:24
+localtime	1355332285	2012-12-12 12:11:25
+localtime	1355332286	2012-12-12 12:11:26
+localtime	1355332287	2012-12-12 12:11:27
+localtime	1355332288	2012-12-12 12:11:28
+localtime	1355332289	2012-12-12 12:11:29
+localtime	1355332290	2012-12-12 12:11:30
+localtime	1355332291	2012-12-12 12:11:31
+localtime	1355332292	2012-12-12 12:11:32
+localtime	1355332293	2012-12-12 12:11:33
+localtime	1355332294	2012-12-12 12:11:34
+localtime	1355332295	2012-12-12 12:11:35
+localtime	1355332296	2012-12-12 12:11:36
+localtime	1355332297	2012-12-12 12:11:37
+localtime	1355332298	2012-12-12 12:11:38
+localtime	1355332299	2012-12-12 12:11:39
+localtime	1355332300	2012-12-12 12:11:40
+localtime	1355332301	2012-12-12 12:11:41
+localtime	1355332302	2012-12-12 12:11:42
+localtime	1355332303	2012-12-12 12:11:43
+localtime	1355332304	2012-12-12 12:11:44
+localtime	1355332305	2012-12-12 12:11:45
+localtime	1355332306	2012-12-12 12:11:46
+localtime	1355332307	2012-12-12 12:11:47
+localtime	1355332308	2012-12-12 12:11:48
+localtime	1355332309	2012-12-12 12:11:49
+localtime	1355332310	2012-12-12 12:11:50
+localtime	1355332311	2012-12-12 12:11:51
+localtime	1355332312	2012-12-12 12:11:52
+localtime	1355332313	2012-12-12 12:11:53
+localtime	1355332314	2012-12-12 12:11:54
+localtime	1355332315	2012-12-12 12:11:55
+localtime	1355332316	2012-12-12 12:11:56
+localtime	1355332317	2012-12-12 12:11:57
+localtime	1355332318	2012-12-12 12:11:58
+localtime	1355332319	2012-12-12 12:11:59
+localtime	1355332320	2012-12-12 12:12:00
+localtime	1355332321	2012-12-12 12:12:01
+localtime	1355332322	2012-12-12 12:12:02
+localtime	1355332323	2012-12-12 12:12:03
+localtime	1355332324	2012-12-12 12:12:04
+localtime	1355332325	2012-12-12 12:12:05
+localtime	1355332326	2012-12-12 12:12:06
+localtime	1355332327	2012-12-12 12:12:07
+localtime	1355332328	2012-12-12 12:12:08
+localtime	1355332329	2012-12-12 12:12:09
+localtime	1355332330	2012-12-12 12:12:10
+localtime	1355332331	2012-12-12 12:12:11
+localtime	1355332332	2012-12-12 12:12:12
+localtime	1355332333	2012-12-12 12:12:13
+localtime	1355332334	2012-12-12 12:12:14
+localtime	1355332335	2012-12-12 12:12:15
+localtime	1355332336	2012-12-12 12:12:16
+localtime	1355332337	2012-12-12 12:12:17
+localtime	1355332338	2012-12-12 12:12:18
+localtime	1355332339	2012-12-12 12:12:19
+localtime	1355332340	2012-12-12 12:12:20
+localtime	1355332341	2012-12-12 12:12:21
+localtime	1355332342	2012-12-12 12:12:22
+localtime	1355332343	2012-12-12 12:12:23
+localtime	1355332344	2012-12-12 12:12:24
+localtime	1355332345	2012-12-12 12:12:25
+localtime	1355332346	2012-12-12 12:12:26
+localtime	1355332347	2012-12-12 12:12:27
+localtime	1355332348	2012-12-12 12:12:28
+localtime	1355332349	2012-12-12 12:12:29
+localtime	1355332350	2012-12-12 12:12:30
+localtime	1355332351	2012-12-12 12:12:31
+localtime	1355332352	2012-12-12 12:12:32
+localtime	1355332353	2012-12-12 12:12:33
+localtime	1355332354	2012-12-12 12:12:34
+localtime	1355332355	2012-12-12 12:12:35
+localtime	1355332356	2012-12-12 12:12:36
+localtime	1355332357	2012-12-12 12:12:37
+localtime	1355332358	2012-12-12 12:12:38
+localtime	1355332359	2012-12-12 12:12:39
+localtime	1355332360	2012-12-12 12:12:40
+localtime	1355332361	2012-12-12 12:12:41
+localtime	1355332362	2012-12-12 12:12:42
+localtime	1355332363	2012-12-12 12:12:43
+localtime	1355332364	2012-12-12 12:12:44
+localtime	1355332365	2012-12-12 12:12:45
+localtime	1355332366	2012-12-12 12:12:46
+localtime	1355332367	2012-12-12 12:12:47
+localtime	1355332368	2012-12-12 12:12:48
+localtime	1355332369	2012-12-12 12:12:49
+localtime	1355332370	2012-12-12 12:12:50
+localtime	1355332371	2012-12-12 12:12:51
+localtime	1355332372	2012-12-12 12:12:52
+localtime	1355332373	2012-12-12 12:12:53
+localtime	1355332374	2012-12-12 12:12:54
+localtime	1355332375	2012-12-12 12:12:55
+localtime	1355332376	2012-12-12 12:12:56
+localtime	1355332377	2012-12-12 12:12:57
+localtime	1355332378	2012-12-12 12:12:58
+localtime	1355332379	2012-12-12 12:12:59
+localtime	1355332380	2012-12-12 12:13:00
+localtime	1355332381	2012-12-12 12:13:01
+localtime	1355332382	2012-12-12 12:13:02
+localtime	1355332383	2012-12-12 12:13:03
+localtime	1355332384	2012-12-12 12:13:04
+localtime	1355332385	2012-12-12 12:13:05
+localtime	1355332386	2012-12-12 12:13:06
+localtime	1355332387	2012-12-12 12:13:07
+localtime	1355332388	2012-12-12 12:13:08
+localtime	1355332389	2012-12-12 12:13:09
+localtime	1355332390	2012-12-12 12:13:10
+localtime	1355332391	2012-12-12 12:13:11
+localtime	1355332392	2012-12-12 12:13:12
+localtime	1355332393	2012-12-12 12:13:13
+localtime	1355332394	2012-12-12 12:13:14
+localtime	1355332395	2012-12-12 12:13:15
+localtime	1355332396	2012-12-12 12:13:16
+localtime	1355332397	2012-12-12 12:13:17
+localtime	1355332398	2012-12-12 12:13:18
+localtime	1355332399	2012-12-12 12:13:19
+localtime	1355332400	2012-12-12 12:13:20
+localtime	1355332401	2012-12-12 12:13:21
+localtime	1355332402	2012-12-12 12:13:22
+localtime	1355332403	2012-12-12 12:13:23
+localtime	1355332404	2012-12-12 12:13:24
+localtime	1355332405	2012-12-12 12:13:25
+localtime	1355332406	2012-12-12 12:13:26
+localtime	1355332407	2012-12-12 12:13:27
+localtime	1355332408	2012-12-12 12:13:28
+localtime	1355332409	2012-12-12 12:13:29
+localtime	1355332410	2012-12-12 12:13:30
+localtime	1355332411	2012-12-12 12:13:31
+localtime	1355332412	2012-12-12 12:13:32
+localtime	1355332413	2012-12-12 12:13:33
+localtime	1355332414	2012-12-12 12:13:34
+localtime	1355332415	2012-12-12 12:13:35
+localtime	1355332416	2012-12-12 12:13:36
+localtime	1355332417	2012-12-12 12:13:37
+localtime	1355332418	2012-12-12 12:13:38
+localtime	1355332419	2012-12-12 12:13:39
+localtime	1355332420	2012-12-12 12:13:40
+localtime	1355332421	2012-12-12 12:13:41
+localtime	1355332422	2012-12-12 12:13:42
+localtime	1355332423	2012-12-12 12:13:43
+localtime	1355332424	2012-12-12 12:13:44
+localtime	1355332425	2012-12-12 12:13:45
+localtime	1355332426	2012-12-12 12:13:46
+localtime	1355332427	2012-12-12 12:13:47
+localtime	1355332428	2012-12-12 12:13:48
+localtime	1355332429	2012-12-12 12:13:49
+localtime	1355332430	2012-12-12 12:13:50
+
+# 1,000 random tests (over signed 32-bit range)
+gmtime		-2123961736	1902-09-12 02:37:44
+gmtime		-2122627885	1902-09-27 13:08:35
+gmtime		-2122079500	1902-10-03 21:28:20
+gmtime		-2121291692	1902-10-13 00:18:28
+gmtime		-2119790269	1902-10-30 09:22:11
+gmtime		-2116459693	1902-12-07 22:31:47
+gmtime		-2114374715	1903-01-01 01:41:25
+gmtime		-2108003214	1903-03-15 19:33:06
+gmtime		-2091062817	1903-09-27 21:13:03
+gmtime		-2082207129	1904-01-08 09:07:51
+gmtime		-2080214315	1904-01-31 10:41:25
+gmtime		-2073471927	1904-04-18 11:34:33
+gmtime		-2065934170	1904-07-14 17:23:50
+gmtime		-2065336884	1904-07-21 15:18:36
+gmtime		-2064142228	1904-08-04 11:09:32
+gmtime		-2059270180	1904-09-29 20:30:20
+gmtime		-2057376042	1904-10-21 18:39:18
+gmtime		-2057120439	1904-10-24 17:39:21
+gmtime		-2042706778	1905-04-09 13:27:02
+gmtime		-2041969146	1905-04-18 02:20:54
+gmtime		-2040794175	1905-05-01 16:43:45
+gmtime		-2033146101	1905-07-29 05:11:39
+gmtime		-2032579624	1905-08-04 18:32:56
+gmtime		-2025222525	1905-10-28 22:11:15
+gmtime		-2023423634	1905-11-18 17:52:46
+gmtime		-2023020090	1905-11-23 09:58:30
+gmtime		-2021406651	1905-12-12 02:09:09
+gmtime		-2020099374	1905-12-27 05:17:06
+gmtime		-2014295146	1906-03-04 09:34:14
+gmtime		-2012087128	1906-03-29 22:54:32
+gmtime		-2010379248	1906-04-18 17:19:12
+gmtime		-2000625440	1906-08-09 14:42:40
+gmtime		-1997308874	1906-09-16 23:58:46
+gmtime		-1996436473	1906-09-27 02:18:47
+gmtime		-1990023860	1906-12-10 07:35:40
+gmtime		-1980640365	1907-03-28 22:07:15
+gmtime		-1962970365	1907-10-19 10:27:15
+gmtime		-1958970947	1907-12-04 17:24:13
+gmtime		-1958485699	1907-12-10 08:11:41
+gmtime		-1956015100	1908-01-07 22:28:20
+gmtime		-1954680281	1908-01-23 09:15:19
+gmtime		-1952005090	1908-02-23 08:21:50
+gmtime		-1949606214	1908-03-22 02:43:06
+gmtime		-1946830958	1908-04-23 05:37:22
+gmtime		-1935995307	1908-08-26 15:31:33
+gmtime		-1928488326	1908-11-21 12:47:54
+gmtime		-1922474488	1909-01-30 03:18:32
+gmtime		-1905524482	1909-08-14 07:38:38
+gmtime		-1903741793	1909-09-03 22:50:07
+gmtime		-1899660651	1909-10-21 04:29:09
+gmtime		-1897693846	1909-11-12 22:49:14
+gmtime		-1878911889	1910-06-18 08:01:51
+gmtime		-1872244567	1910-09-03 12:03:53
+gmtime		-1853889487	1911-04-03 22:41:53
+gmtime		-1853736111	1911-04-05 17:18:09
+gmtime		-1853281715	1911-04-10 23:31:25
+gmtime		-1843187367	1911-08-05 19:30:33
+gmtime		-1837030941	1911-10-16 01:37:39
+gmtime		-1833753978	1911-11-22 23:53:42
+gmtime		-1829305835	1912-01-13 11:29:25
+gmtime		-1819954642	1912-04-30 17:02:38
+gmtime		-1819331933	1912-05-07 22:01:07
+gmtime		-1818341797	1912-05-19 09:03:23
+gmtime		-1817423064	1912-05-30 00:15:36
+gmtime		-1808796174	1912-09-06 20:37:06
+gmtime		-1808197247	1912-09-13 18:59:13
+gmtime		-1802411329	1912-11-19 18:11:11
+gmtime		-1797549313	1913-01-15 00:44:47
+gmtime		-1796302498	1913-01-29 11:05:02
+gmtime		-1788892567	1913-04-25 05:23:53
+gmtime		-1786720243	1913-05-20 08:49:17
+gmtime		-1784326838	1913-06-17 01:39:22
+gmtime		-1782621122	1913-07-06 19:27:58
+gmtime		-1780454096	1913-07-31 21:25:04
+gmtime		-1780333712	1913-08-02 06:51:28
+gmtime		-1778332344	1913-08-25 10:47:36
+gmtime		-1767773208	1913-12-25 15:53:12
+gmtime		-1764505345	1914-02-01 11:37:35
+gmtime		-1763341579	1914-02-14 22:53:41
+gmtime		-1756914502	1914-04-30 08:11:38
+gmtime		-1751597167	1914-06-30 21:13:53
+gmtime		-1751072465	1914-07-06 22:58:55
+gmtime		-1749081960	1914-07-29 23:54:00
+gmtime		-1746993640	1914-08-23 03:59:20
+gmtime		-1741681380	1914-10-23 15:37:00
+gmtime		-1740211174	1914-11-09 16:00:26
+gmtime		-1733481390	1915-01-26 13:23:30
+gmtime		-1728873297	1915-03-20 21:25:03
+gmtime		-1727602536	1915-04-04 14:24:24
+gmtime		-1727246697	1915-04-08 17:15:03
+gmtime		-1724613812	1915-05-09 04:36:28
+gmtime		-1724456112	1915-05-11 00:24:48
+gmtime		-1720547610	1915-06-25 06:06:30
+gmtime		-1710282428	1915-10-22 01:32:52
+gmtime		-1707947364	1915-11-18 02:10:36
+gmtime		-1704804139	1915-12-24 11:17:41
+gmtime		-1704492741	1915-12-28 01:47:39
+gmtime		-1700518870	1916-02-12 01:38:50
+gmtime		-1699845486	1916-02-19 20:41:54
+gmtime		-1695143463	1916-04-14 06:48:57
+gmtime		-1692959506	1916-05-09 13:28:14
+gmtime		-1692650261	1916-05-13 03:22:19
+gmtime		-1689208446	1916-06-21 23:25:54
+gmtime		-1687157531	1916-07-15 17:07:49
+gmtime		-1683587622	1916-08-26 00:46:18
+gmtime		-1677020650	1916-11-10 00:55:50
+gmtime		-1675500601	1916-11-27 15:09:59
+gmtime		-1665272377	1917-03-26 00:20:23
+gmtime		-1664362104	1917-04-05 13:11:36
+gmtime		-1661813167	1917-05-05 01:13:53
+gmtime		-1660038940	1917-05-25 14:04:20
+gmtime		-1658449377	1917-06-12 23:37:03
+gmtime		-1654412588	1917-07-29 16:56:52
+gmtime		-1652206801	1917-08-24 05:39:59
+gmtime		-1645882133	1917-11-05 10:31:07
+gmtime		-1640323346	1918-01-08 18:37:34
+gmtime		-1637980437	1918-02-04 21:26:03
+gmtime		-1635964396	1918-02-28 05:26:44
+gmtime		-1633045230	1918-04-03 00:19:30
+gmtime		-1632854489	1918-04-05 05:18:31
+gmtime		-1628880328	1918-05-21 05:14:32
+gmtime		-1626507150	1918-06-17 16:27:30
+gmtime		-1616801435	1918-10-08 00:29:25
+gmtime		-1616307491	1918-10-13 17:41:49
+gmtime		-1614363879	1918-11-05 05:35:21
+gmtime		-1610296907	1918-12-22 07:18:13
+gmtime		-1604746038	1919-02-24 13:12:42
+gmtime		-1602070755	1919-03-27 12:20:45
+gmtime		-1602038144	1919-03-27 21:24:16
+gmtime		-1591023767	1919-08-02 08:57:13
+gmtime		-1589018968	1919-08-25 13:50:32
+gmtime		-1583234381	1919-10-31 12:40:19
+gmtime		-1580074600	1919-12-07 02:23:20
+gmtime		-1576624399	1920-01-16 00:46:41
+gmtime		-1563855275	1920-06-11 19:45:25
+gmtime		-1547617229	1920-12-16 18:19:31
+gmtime		-1546340951	1920-12-31 12:50:49
+gmtime		-1541275439	1921-02-28 03:56:01
+gmtime		-1540922554	1921-03-04 05:57:26
+gmtime		-1538604587	1921-03-31 01:50:13
+gmtime		-1537649459	1921-04-11 03:09:01
+gmtime		-1536865293	1921-04-20 04:58:27
+gmtime		-1529673257	1921-07-12 10:45:43
+gmtime		-1526116224	1921-08-22 14:49:36
+gmtime		-1523754435	1921-09-18 22:52:45
+gmtime		-1520431341	1921-10-27 09:57:39
+gmtime		-1520189302	1921-10-30 05:11:38
+gmtime		-1508477130	1922-03-14 18:34:30
+gmtime		-1506355263	1922-04-08 07:58:57
+gmtime		-1502237537	1922-05-25 23:47:43
+gmtime		-1495863421	1922-08-07 18:22:59
+gmtime		-1482572828	1923-01-08 14:12:52
+gmtime		-1479650228	1923-02-11 10:02:52
+gmtime		-1476358087	1923-03-21 12:31:53
+gmtime		-1463298691	1923-08-19 16:08:29
+gmtime		-1455502695	1923-11-17 21:41:45
+gmtime		-1455212548	1923-11-21 06:17:32
+gmtime		-1443673711	1924-04-02 19:31:29
+gmtime		-1434585966	1924-07-16 23:53:54
+gmtime		-1419800070	1925-01-04 03:05:30
+gmtime		-1416022262	1925-02-16 20:28:58
+gmtime		-1406588634	1925-06-06 00:56:06
+gmtime		-1403489003	1925-07-11 21:56:37
+gmtime		-1403208067	1925-07-15 03:58:53
+gmtime		-1390105988	1925-12-13 19:26:52
+gmtime		-1385327412	1926-02-07 02:49:48
+gmtime		-1360725315	1926-11-18 20:44:45
+gmtime		-1357784189	1926-12-22 21:43:31
+gmtime		-1356817034	1927-01-03 02:22:46
+gmtime		-1356069105	1927-01-11 18:08:15
+gmtime		-1348083498	1927-04-14 04:21:42
+gmtime		-1344061927	1927-05-30 17:27:53
+gmtime		-1343279692	1927-06-08 18:45:08
+gmtime		-1342085213	1927-06-22 14:33:07
+gmtime		-1337594910	1927-08-13 13:51:30
+gmtime		-1337569308	1927-08-13 20:58:12
+gmtime		-1335429427	1927-09-07 15:22:53
+gmtime		-1324952784	1928-01-06 21:33:36
+gmtime		-1324055086	1928-01-17 06:55:14
+gmtime		-1313507485	1928-05-18 08:48:35
+gmtime		-1310451432	1928-06-22 17:42:48
+gmtime		-1307869347	1928-07-22 14:57:33
+gmtime		-1307513722	1928-07-26 17:44:38
+gmtime		-1303765705	1928-09-08 02:51:35
+gmtime		-1299794233	1928-10-24 02:02:47
+gmtime		-1298042908	1928-11-13 08:31:32
+gmtime		-1296999389	1928-11-25 10:23:31
+gmtime		-1292507670	1929-01-16 10:05:30
+gmtime		-1291770048	1929-01-24 22:59:12
+gmtime		-1288304044	1929-03-06 01:45:56
+gmtime		-1281155057	1929-05-27 19:35:43
+gmtime		-1279812910	1929-06-12 08:24:50
+gmtime		-1276817951	1929-07-17 00:20:49
+gmtime		-1276272321	1929-07-23 07:54:39
+gmtime		-1274027052	1929-08-18 07:35:48
+gmtime		-1272941863	1929-08-30 21:02:17
+gmtime		-1270841155	1929-09-24 04:34:05
+gmtime		-1269856983	1929-10-05 13:56:57
+gmtime		-1247213943	1930-06-24 15:40:57
+gmtime		-1245015693	1930-07-20 02:18:27
+gmtime		-1241428590	1930-08-30 14:43:30
+gmtime		-1236959125	1930-10-21 08:14:35
+gmtime		-1235802237	1930-11-03 17:36:03
+gmtime		-1229526792	1931-01-15 08:46:48
+gmtime		-1229336965	1931-01-17 13:30:35
+gmtime		-1221091880	1931-04-22 23:48:40
+gmtime		-1219219679	1931-05-14 15:52:01
+gmtime		-1216723942	1931-06-12 13:07:38
+gmtime		-1208428628	1931-09-16 13:22:52
+gmtime		-1204107507	1931-11-05 13:41:33
+gmtime		-1199420387	1931-12-29 19:40:13
+gmtime		-1195189690	1932-02-16 18:51:50
+gmtime		-1192730625	1932-03-16 05:56:15
+gmtime		-1188560410	1932-05-03 12:19:50
+gmtime		-1188524920	1932-05-03 22:11:20
+gmtime		-1187420137	1932-05-16 17:04:23
+gmtime		-1185613740	1932-06-06 14:51:00
+gmtime		-1185543164	1932-06-07 10:27:16
+gmtime		-1185198049	1932-06-11 10:19:11
+gmtime		-1183615010	1932-06-29 18:03:10
+gmtime		-1181986107	1932-07-18 14:31:33
+gmtime		-1181801193	1932-07-20 17:53:27
+gmtime		-1180705046	1932-08-02 10:22:34
+gmtime		-1171690786	1932-11-14 18:20:14
+gmtime		-1163365268	1933-02-19 02:58:52
+gmtime		-1161010616	1933-03-18 09:03:04
+gmtime		-1159747149	1933-04-02 00:00:51
+gmtime		-1158939600	1933-04-11 08:20:00
+gmtime		-1147080160	1933-08-26 14:37:20
+gmtime		-1146835024	1933-08-29 10:42:56
+gmtime		-1146642778	1933-08-31 16:07:02
+gmtime		-1142999557	1933-10-12 20:07:23
+gmtime		-1142437074	1933-10-19 08:22:06
+gmtime		-1141447578	1933-10-30 19:13:42
+gmtime		-1127343252	1934-04-12 01:05:48
+gmtime		-1125066605	1934-05-08 09:29:55
+gmtime		-1119829670	1934-07-08 00:12:10
+gmtime		-1117907985	1934-07-30 06:00:15
+gmtime		-1116408154	1934-08-16 14:37:26
+gmtime		-1114743695	1934-09-04 20:58:25
+gmtime		-1114067650	1934-09-12 16:45:50
+gmtime		-1109991913	1934-10-29 20:54:47
+gmtime		-1109147190	1934-11-08 15:33:30
+gmtime		-1106976222	1934-12-03 18:36:18
+gmtime		-1102272320	1935-01-27 05:14:40
+gmtime		-1099646126	1935-02-26 14:44:34
+gmtime		-1099537838	1935-02-27 20:49:22
+gmtime		-1099192723	1935-03-03 20:41:17
+gmtime		-1094234320	1935-04-30 06:01:20
+gmtime		-1089203484	1935-06-27 11:28:36
+gmtime		-1073378432	1935-12-27 15:19:28
+gmtime		-1072697597	1936-01-04 12:26:43
+gmtime		-1069110029	1936-02-15 00:59:31
+gmtime		-1069103151	1936-02-15 02:54:09
+gmtime		-1062927981	1936-04-26 14:13:39
+gmtime		-1062798313	1936-04-28 02:14:47
+gmtime		-1056449108	1936-07-10 13:54:52
+gmtime		-1051655821	1936-09-04 01:22:59
+gmtime		-1050053282	1936-09-22 14:31:58
+gmtime		-1048509496	1936-10-10 11:21:44
+gmtime		-1046607360	1936-11-01 11:44:00
+gmtime		-1040772955	1937-01-08 00:24:05
+gmtime		-1031798259	1937-04-21 21:22:21
+gmtime		-1023624720	1937-07-25 11:48:00
+gmtime		-1022458159	1937-08-07 23:50:41
+gmtime		-1020805879	1937-08-27 02:48:41
+gmtime		-1016151348	1937-10-19 23:44:12
+gmtime		-1012910518	1937-11-26 11:58:02
+gmtime		-1011808913	1937-12-09 05:58:07
+gmtime		-1010569997	1937-12-23 14:06:43
+gmtime		-1006898377	1938-02-04 02:00:23
+gmtime		-1003148718	1938-03-19 11:34:42
+gmtime		-1001450103	1938-04-08 03:24:57
+gmtime		-999937819	1938-04-25 15:29:41
+gmtime		-993560270	1938-07-08 11:02:10
+gmtime		-991297285	1938-08-03 15:38:35
+gmtime		-986796642	1938-09-24 17:49:18
+gmtime		-986657259	1938-09-26 08:32:21
+gmtime		-985979981	1938-10-04 04:40:19
+gmtime		-984318350	1938-10-23 10:14:10
+gmtime		-983939164	1938-10-27 19:33:56
+gmtime		-980928292	1938-12-01 15:55:08
+gmtime		-973001937	1939-03-03 09:41:03
+gmtime		-965058867	1939-06-03 08:05:33
+gmtime		-958976175	1939-08-12 17:43:45
+gmtime		-957922644	1939-08-24 22:22:36
+gmtime		-948333762	1939-12-13 21:57:18
+gmtime		-945741274	1940-01-12 22:05:26
+gmtime		-944844062	1940-01-23 07:18:58
+gmtime		-933549686	1940-06-02 00:38:34
+gmtime		-930388940	1940-07-08 14:37:40
+gmtime		-930198959	1940-07-10 19:24:01
+gmtime		-929920665	1940-07-14 00:42:15
+gmtime		-928122584	1940-08-03 20:10:16
+gmtime		-921627803	1940-10-18 00:16:37
+gmtime		-920139890	1940-11-04 05:35:10
+gmtime		-917306539	1940-12-07 00:37:41
+gmtime		-913753739	1941-01-17 03:31:01
+gmtime		-913480133	1941-01-20 07:31:07
+gmtime		-909653515	1941-03-05 14:28:05
+gmtime		-908940917	1941-03-13 20:24:43
+gmtime		-906069495	1941-04-16 02:01:45
+gmtime		-905464565	1941-04-23 02:03:55
+gmtime		-903935453	1941-05-10 18:49:07
+gmtime		-902168879	1941-05-31 05:32:01
+gmtime		-901497740	1941-06-07 23:57:40
+gmtime		-900020340	1941-06-25 02:21:00
+gmtime		-894494069	1941-08-28 01:25:31
+gmtime		-892178533	1941-09-23 20:37:47
+gmtime		-890263473	1941-10-16 00:35:27
+gmtime		-887950193	1941-11-11 19:10:07
+gmtime		-884396764	1941-12-22 22:13:56
+gmtime		-881155160	1942-01-29 10:40:40
+gmtime		-878071596	1942-03-06 03:13:24
+gmtime		-866885338	1942-07-13 14:31:02
+gmtime		-865714038	1942-07-27 03:52:42
+gmtime		-846078807	1943-03-11 10:06:33
+gmtime		-842732169	1943-04-19 03:43:51
+gmtime		-840364059	1943-05-16 13:32:21
+gmtime		-839335510	1943-05-28 11:14:50
+gmtime		-836680770	1943-06-28 04:40:30
+gmtime		-834102918	1943-07-28 00:44:42
+gmtime		-833820741	1943-07-31 07:07:39
+gmtime		-825929348	1943-10-30 15:10:52
+gmtime		-817827310	1944-02-01 09:44:50
+gmtime		-807482590	1944-05-31 03:16:50
+gmtime		-802163991	1944-07-31 16:40:09
+gmtime		-799194727	1944-09-04 01:27:53
+gmtime		-799113456	1944-09-05 00:02:24
+gmtime		-798922480	1944-09-07 05:05:20
+gmtime		-796127409	1944-10-09 13:29:51
+gmtime		-794176875	1944-11-01 03:18:45
+gmtime		-794154189	1944-11-01 09:36:51
+gmtime		-787758964	1945-01-14 10:03:56
+gmtime		-787250647	1945-01-20 07:15:53
+gmtime		-786286151	1945-01-31 11:10:49
+gmtime		-783493528	1945-03-04 18:54:32
+gmtime		-772957286	1945-07-04 17:38:34
+gmtime		-772516604	1945-07-09 20:03:16
+gmtime		-768748778	1945-08-22 10:40:22
+gmtime		-764361632	1945-10-12 05:19:28
+gmtime		-751340665	1946-03-11 22:15:35
+gmtime		-750724134	1946-03-19 01:31:06
+gmtime		-750695363	1946-03-19 09:30:37
+gmtime		-750430600	1946-03-22 11:03:20
+gmtime		-749158835	1946-04-06 04:19:25
+gmtime		-746261740	1946-05-09 17:04:20
+gmtime		-731563404	1946-10-26 19:56:36
+gmtime		-726256344	1946-12-27 06:07:36
+gmtime		-725528405	1947-01-04 16:19:55
+gmtime		-712451234	1947-06-05 00:52:46
+gmtime		-711920710	1947-06-11 04:14:50
+gmtime		-709040482	1947-07-14 12:18:38
+gmtime		-685050549	1948-04-17 04:10:51
+gmtime		-683530231	1948-05-04 18:29:29
+gmtime		-674733176	1948-08-14 14:07:04
+gmtime		-674583625	1948-08-16 07:39:35
+gmtime		-670823767	1948-09-28 20:03:53
+gmtime		-668017405	1948-10-31 07:36:35
+gmtime		-666631799	1948-11-16 08:30:01
+gmtime		-664461714	1948-12-11 11:18:06
+gmtime		-664263750	1948-12-13 18:17:30
+gmtime		-660234625	1949-01-29 09:29:35
+gmtime		-641169390	1949-09-07 01:23:30
+gmtime		-640244018	1949-09-17 18:26:22
+gmtime		-626982367	1950-02-18 06:13:53
+gmtime		-624719453	1950-03-16 10:49:07
+gmtime		-623651059	1950-03-28 19:35:41
+gmtime		-607371421	1950-10-03 05:42:59
+gmtime		-588267500	1951-05-12 08:21:40
+gmtime		-581751334	1951-07-26 18:24:26
+gmtime		-574654119	1951-10-16 21:51:21
+gmtime		-574364584	1951-10-20 06:16:56
+gmtime		-573710832	1951-10-27 19:52:48
+gmtime		-570211526	1951-12-07 07:54:34
+gmtime		-564631889	1952-02-09 21:48:31
+gmtime		-559561092	1952-04-08 14:21:48
+gmtime		-559208535	1952-04-12 16:17:45
+gmtime		-550915448	1952-07-17 15:55:52
+gmtime		-535191788	1953-01-15 15:36:52
+gmtime		-529407054	1953-03-23 14:29:06
+gmtime		-527211558	1953-04-18 00:20:42
+gmtime		-524701103	1953-05-17 01:41:37
+gmtime		-524653393	1953-05-17 14:56:47
+gmtime		-522362732	1953-06-13 03:14:28
+gmtime		-519923836	1953-07-11 08:42:44
+gmtime		-516071853	1953-08-24 22:42:27
+gmtime		-515871197	1953-08-27 06:26:43
+gmtime		-506643713	1953-12-12 01:38:07
+gmtime		-505157894	1953-12-29 06:21:46
+gmtime		-504371630	1954-01-07 08:46:10
+gmtime		-499255018	1954-03-07 14:03:02
+gmtime		-498891626	1954-03-11 18:59:34
+gmtime		-498633039	1954-03-14 18:49:21
+gmtime		-497512631	1954-03-27 18:02:49
+gmtime		-490048835	1954-06-22 03:19:25
+gmtime		-484201765	1954-08-28 19:30:35
+gmtime		-482966297	1954-09-12 02:41:43
+gmtime		-478123388	1954-11-07 03:56:52
+gmtime		-468218934	1955-03-01 19:11:06
+gmtime		-458369416	1955-06-23 19:09:44
+gmtime		-456650635	1955-07-13 16:36:05
+gmtime		-452933952	1955-08-25 17:00:48
+gmtime		-448109199	1955-10-20 13:13:21
+gmtime		-443852366	1955-12-08 19:40:34
+gmtime		-443743508	1955-12-10 01:54:52
+gmtime		-437662989	1956-02-18 10:56:51
+gmtime		-435059480	1956-03-19 14:08:40
+gmtime		-435025324	1956-03-19 23:37:56
+gmtime		-433607551	1956-04-05 09:27:29
+gmtime		-432340421	1956-04-20 01:26:19
+gmtime		-428576698	1956-06-02 14:55:02
+gmtime		-428512754	1956-06-03 08:40:46
+gmtime		-427256187	1956-06-17 21:43:33
+gmtime		-425900289	1956-07-03 14:21:51
+gmtime		-422664398	1956-08-10 01:13:22
+gmtime		-422403555	1956-08-13 01:40:45
+gmtime		-413754616	1956-11-21 04:09:44
+gmtime		-396974411	1957-06-03 09:19:49
+gmtime		-389581552	1957-08-27 22:54:08
+gmtime		-382700221	1957-11-15 14:22:59
+gmtime		-364415155	1958-06-15 05:34:05
+gmtime		-362385086	1958-07-08 17:28:34
+gmtime		-362326903	1958-07-09 09:38:17
+gmtime		-361336542	1958-07-20 20:44:18
+gmtime		-357695107	1958-09-01 00:14:53
+gmtime		-355972476	1958-09-20 22:45:24
+gmtime		-354948148	1958-10-02 19:17:32
+gmtime		-347022332	1959-01-02 12:54:28
+gmtime		-342853686	1959-02-19 18:51:54
+gmtime		-340726612	1959-03-16 09:43:08
+gmtime		-335155150	1959-05-19 21:20:50
+gmtime		-334006564	1959-06-02 04:23:56
+gmtime		-331872390	1959-06-26 21:13:30
+gmtime		-312074180	1960-02-11 00:43:40
+gmtime		-304257204	1960-05-11 12:06:36
+gmtime		-290935916	1960-10-12 16:28:04
+gmtime		-287188816	1960-11-25 01:19:44
+gmtime		-286655642	1960-12-01 05:25:58
+gmtime		-283869279	1961-01-02 11:25:21
+gmtime		-282612988	1961-01-17 00:23:32
+gmtime		-271887768	1961-05-21 03:37:12
+gmtime		-270489556	1961-06-06 08:00:44
+gmtime		-269566233	1961-06-17 00:29:27
+gmtime		-259348563	1961-10-13 06:43:57
+gmtime		-250909052	1962-01-18 23:02:28
+gmtime		-245165693	1962-03-26 10:25:07
+gmtime		-238202304	1962-06-15 00:41:36
+gmtime		-235764288	1962-07-13 05:55:12
+gmtime		-230587131	1962-09-11 04:01:09
+gmtime		-229522301	1962-09-23 11:48:19
+gmtime		-226638439	1962-10-26 20:52:41
+gmtime		-226359240	1962-10-30 02:26:00
+gmtime		-223860929	1962-11-28 00:24:31
+gmtime		-215438957	1963-03-05 11:50:43
+gmtime		-212445711	1963-04-09 03:18:09
+gmtime		-199905539	1963-09-01 06:41:01
+gmtime		-198612350	1963-09-16 05:54:10
+gmtime		-198540813	1963-09-17 01:46:27
+gmtime		-197893346	1963-09-24 13:37:34
+gmtime		-193255980	1963-11-17 05:47:00
+gmtime		-191779574	1963-12-04 07:53:46
+gmtime		-188922452	1964-01-06 09:32:28
+gmtime		-187811755	1964-01-19 06:04:05
+gmtime		-185719452	1964-02-12 11:15:48
+gmtime		-178505859	1964-05-05 23:02:21
+gmtime		-177015135	1964-05-23 05:07:45
+gmtime		-176329660	1964-05-31 03:32:20
+gmtime		-151614404	1965-03-13 04:53:16
+gmtime		-149299212	1965-04-08 23:59:48
+gmtime		-137576838	1965-08-22 16:12:42
+gmtime		-128083218	1965-12-10 13:19:42
+gmtime		-125044671	1966-01-14 17:22:09
+gmtime		-123126956	1966-02-05 22:04:04
+gmtime		-116603102	1966-04-22 10:14:58
+gmtime		-114335728	1966-05-18 16:04:32
+gmtime		-111152365	1966-06-24 12:20:35
+gmtime		-100830356	1966-10-21 23:34:04
+gmtime		-97575314	1966-11-28 15:44:46
+gmtime		-93944146	1967-01-09 16:24:14
+gmtime		-90024882	1967-02-24 01:05:18
+gmtime		-86108144	1967-04-10 09:04:16
+gmtime		-84770956	1967-04-25 20:30:44
+gmtime		-76959482	1967-07-25 06:21:58
+gmtime		-76594796	1967-07-29 11:40:04
+gmtime		-76100927	1967-08-04 04:51:13
+gmtime		-69548880	1967-10-19 00:52:00
+gmtime		-68906208	1967-10-26 11:23:12
+gmtime		-65716491	1967-12-02 09:25:09
+gmtime		-53934343	1968-04-16 18:14:17
+gmtime		-53045840	1968-04-27 01:02:40
+gmtime		-48153364	1968-06-22 16:03:56
+gmtime		-43286214	1968-08-18 00:03:06
+gmtime		-38935382	1968-10-07 08:36:58
+gmtime		-34581183	1968-11-26 18:06:57
+gmtime		-31363930	1969-01-02 23:47:50
+gmtime		-30867489	1969-01-08 17:41:51
+gmtime		-25323863	1969-03-13 21:35:37
+gmtime		-25146781	1969-03-15 22:46:59
+gmtime		-20511628	1969-05-08 14:19:32
+gmtime		-19352011	1969-05-22 00:26:29
+gmtime		-18677444	1969-05-29 19:49:16
+gmtime		-10668504	1969-08-30 12:31:36
+gmtime		4677670		1970-02-24 03:21:10
+gmtime		8486103		1970-04-09 05:15:03
+gmtime		16939608	1970-07-16 01:26:48
+gmtime		18753184	1970-08-06 01:13:04
+gmtime		20714761	1970-08-28 18:06:01
+gmtime		23481695	1970-09-29 18:41:35
+gmtime		25211283	1970-10-19 19:08:03
+gmtime		32240621	1971-01-09 03:43:41
+gmtime		38451601	1971-03-22 01:00:01
+gmtime		44643519	1971-06-01 16:58:39
+gmtime		50710340	1971-08-10 22:12:20
+gmtime		53283236	1971-09-09 16:53:56
+gmtime		54473503	1971-09-23 11:31:43
+gmtime		58884591	1971-11-13 12:49:51
+gmtime		61771007	1971-12-16 22:36:47
+gmtime		63095976	1972-01-01 06:39:36
+gmtime		65153823	1972-01-25 02:17:03
+gmtime		65401781	1972-01-27 23:09:41
+gmtime		65404691	1972-01-27 23:58:11
+gmtime		66085393	1972-02-04 21:03:13
+gmtime		66313915	1972-02-07 12:31:55
+gmtime		67273580	1972-02-18 15:06:20
+gmtime		68621609	1972-03-05 05:33:29
+gmtime		69148599	1972-03-11 07:56:39
+gmtime		77011561	1972-06-10 08:06:01
+gmtime		78333714	1972-06-25 15:21:54
+gmtime		79235429	1972-07-06 01:50:29
+gmtime		82848657	1972-08-16 21:30:57
+gmtime		89364257	1972-10-31 07:24:17
+gmtime		92818131	1972-12-10 06:48:51
+gmtime		97924393	1973-02-07 09:13:13
+gmtime		101503520	1973-03-20 19:25:20
+gmtime		122346462	1973-11-17 01:07:42
+gmtime		124080750	1973-12-07 02:52:30
+gmtime		126519468	1974-01-04 08:17:48
+gmtime		128851468	1974-01-31 08:04:28
+gmtime		135139657	1974-04-14 02:47:37
+gmtime		142395137	1974-07-07 02:12:17
+gmtime		145181146	1974-08-08 08:05:46
+gmtime		156385988	1974-12-16 00:33:08
+gmtime		159650222	1975-01-22 19:17:02
+gmtime		161036344	1975-02-07 20:19:04
+gmtime		162937613	1975-03-01 20:26:53
+gmtime		168025110	1975-04-29 17:38:30
+gmtime		168115416	1975-04-30 18:43:36
+gmtime		178026240	1975-08-23 11:44:00
+gmtime		179169735	1975-09-05 17:22:15
+gmtime		179877221	1975-09-13 21:53:41
+gmtime		180044814	1975-09-15 20:26:54
+gmtime		180894825	1975-09-25 16:33:45
+gmtime		185878285	1975-11-22 08:51:25
+gmtime		189257076	1975-12-31 11:24:36
+gmtime		189377050	1976-01-01 20:44:10
+gmtime		193867533	1976-02-22 20:05:33
+gmtime		194253249	1976-02-27 07:14:09
+gmtime		194299119	1976-02-27 19:58:39
+gmtime		196623210	1976-03-25 17:33:30
+gmtime		201968442	1976-05-26 14:20:42
+gmtime		205841789	1976-07-10 10:16:29
+gmtime		208666957	1976-08-12 03:02:37
+gmtime		209451575	1976-08-21 04:59:35
+gmtime		214710958	1976-10-21 01:55:58
+gmtime		216729541	1976-11-13 10:39:01
+gmtime		222801071	1977-01-22 17:11:11
+gmtime		225026155	1977-02-17 11:15:55
+gmtime		232357624	1977-05-13 07:47:04
+gmtime		237014526	1977-07-06 05:22:06
+gmtime		237607161	1977-07-13 01:59:21
+gmtime		239053149	1977-07-29 19:39:09
+gmtime		251392477	1977-12-19 15:14:37
+gmtime		251845962	1977-12-24 21:12:42
+gmtime		252341107	1977-12-30 14:45:07
+gmtime		252401171	1977-12-31 07:26:11
+gmtime		257858742	1978-03-04 11:25:42
+gmtime		259912804	1978-03-28 06:00:04
+gmtime		260761518	1978-04-07 01:45:18
+gmtime		262389409	1978-04-25 21:56:49
+gmtime		263354143	1978-05-07 01:55:43
+gmtime		271854901	1978-08-13 11:15:01
+gmtime		273068050	1978-08-27 12:14:10
+gmtime		273167663	1978-08-28 15:54:23
+gmtime		276003580	1978-09-30 11:39:40
+gmtime		291387352	1979-03-27 12:55:52
+gmtime		295333032	1979-05-12 04:57:12
+gmtime		298364404	1979-06-16 07:00:04
+gmtime		306698139	1979-09-20 17:55:39
+gmtime		306762816	1979-09-21 11:53:36
+gmtime		311623396	1979-11-16 18:03:16
+gmtime		326273876	1980-05-04 07:37:56
+gmtime		326843484	1980-05-10 21:51:24
+gmtime		330479649	1980-06-21 23:54:09
+gmtime		333064516	1980-07-21 21:55:16
+gmtime		336062535	1980-08-25 14:42:15
+gmtime		339209535	1980-10-01 00:52:15
+gmtime		340189599	1980-10-12 09:06:39
+gmtime		351495304	1981-02-20 05:35:04
+gmtime		357397807	1981-04-29 13:10:07
+gmtime		363309120	1981-07-06 23:12:00
+gmtime		365382907	1981-07-30 23:15:07
+gmtime		366380661	1981-08-11 12:24:21
+gmtime		375898822	1981-11-29 16:20:22
+gmtime		379410386	1982-01-09 07:46:26
+gmtime		381091363	1982-01-28 18:42:43
+gmtime		381225828	1982-01-30 08:03:48
+gmtime		385388290	1982-03-19 12:18:10
+gmtime		393406113	1982-06-20 07:28:33
+gmtime		394135471	1982-06-28 18:04:31
+gmtime		398131211	1982-08-14 00:00:11
+gmtime		398210722	1982-08-14 22:05:22
+gmtime		402857906	1982-10-07 16:58:26
+gmtime		405964603	1982-11-12 15:56:43
+gmtime		408022694	1982-12-06 11:38:14
+gmtime		411835751	1983-01-19 14:49:11
+gmtime		412765194	1983-01-30 08:59:54
+gmtime		417310418	1983-03-23 23:33:38
+gmtime		419631997	1983-04-19 20:26:37
+gmtime		420406137	1983-04-28 19:28:57
+gmtime		425940771	1983-07-01 20:52:51
+gmtime		428657907	1983-08-02 07:38:27
+gmtime		430285523	1983-08-21 03:45:23
+gmtime		435884982	1983-10-24 23:09:42
+gmtime		439410280	1983-12-04 18:24:40
+gmtime		444332242	1984-01-30 17:37:22
+gmtime		446491953	1984-02-24 17:32:33
+gmtime		461450354	1984-08-15 20:39:14
+gmtime		464565153	1984-09-20 21:52:33
+gmtime		464849193	1984-09-24 04:46:33
+gmtime		469860036	1984-11-21 04:40:36
+gmtime		471147032	1984-12-06 02:10:32
+gmtime		475276224	1985-01-22 21:10:24
+gmtime		479746011	1985-03-15 14:46:51
+gmtime		481112373	1985-03-31 10:19:33
+gmtime		481448128	1985-04-04 07:35:28
+gmtime		484152183	1985-05-05 14:43:03
+gmtime		484286153	1985-05-07 03:55:53
+gmtime		486891810	1985-06-06 07:43:30
+gmtime		492869908	1985-08-14 12:18:28
+gmtime		495959430	1985-09-19 06:30:30
+gmtime		499394882	1985-10-29 00:48:02
+gmtime		514937453	1986-04-26 22:10:53
+gmtime		532311692	1986-11-14 00:21:32
+gmtime		540731964	1987-02-19 11:19:24
+gmtime		541616662	1987-03-01 17:04:22
+gmtime		541745397	1987-03-03 04:49:57
+gmtime		544605080	1987-04-05 07:11:20
+gmtime		547108383	1987-05-04 06:33:03
+gmtime		556407351	1987-08-19 21:35:51
+gmtime		570080625	1988-01-25 03:43:45
+gmtime		574349208	1988-03-14 13:26:48
+gmtime		576915687	1988-04-13 06:21:27
+gmtime		578737068	1988-05-04 08:17:48
+gmtime		579743829	1988-05-15 23:57:09
+gmtime		593493494	1988-10-22 03:18:14
+gmtime		596320700	1988-11-23 20:38:20
+gmtime		619947305	1989-08-24 07:35:05
+gmtime		634090111	1990-02-04 00:08:31
+gmtime		652486128	1990-09-04 22:08:48
+gmtime		678819588	1991-07-06 16:59:48
+gmtime		689503520	1991-11-07 08:45:20
+gmtime		695114071	1992-01-11 07:14:31
+gmtime		698517039	1992-02-19 16:30:39
+gmtime		709365446	1992-06-24 05:57:26
+gmtime		709545548	1992-06-26 07:59:08
+gmtime		712136247	1992-07-26 07:37:27
+gmtime		712231774	1992-07-27 10:09:34
+gmtime		716146052	1992-09-10 17:27:32
+gmtime		722354479	1992-11-21 14:01:19
+gmtime		726560356	1993-01-09 06:19:16
+gmtime		728275507	1993-01-29 02:45:07
+gmtime		736037741	1993-04-28 22:55:41
+gmtime		739346758	1993-06-06 06:05:58
+gmtime		741768240	1993-07-04 06:44:00
+gmtime		750296571	1993-10-10 23:42:51
+gmtime		752358566	1993-11-03 20:29:26
+gmtime		752630681	1993-11-07 00:04:41
+gmtime		755204163	1993-12-06 18:56:03
+gmtime		755888360	1993-12-14 16:59:20
+gmtime		769378591	1994-05-19 20:16:31
+gmtime		775637714	1994-07-31 06:55:14
+gmtime		780718362	1994-09-28 02:12:42
+gmtime		798367884	1995-04-20 08:51:24
+gmtime		799808987	1995-05-07 01:09:47
+gmtime		804848056	1995-07-04 08:54:16
+gmtime		805922705	1995-07-16 19:25:05
+gmtime		806757987	1995-07-26 11:26:27
+gmtime		808276942	1995-08-13 01:22:22
+gmtime		813090325	1995-10-07 18:25:25
+gmtime		815053387	1995-10-30 11:43:07
+gmtime		821966473	1996-01-18 12:01:13
+gmtime		827196241	1996-03-19 00:44:01
+gmtime		827583315	1996-03-23 12:15:15
+gmtime		831977743	1996-05-13 08:55:43
+gmtime		840548013	1996-08-20 13:33:33
+gmtime		841287828	1996-08-29 03:03:48
+gmtime		843705290	1996-09-26 02:34:50
+gmtime		844421492	1996-10-04 09:31:32
+gmtime		846703191	1996-10-30 19:19:51
+gmtime		852042101	1996-12-31 14:21:41
+gmtime		852427027	1997-01-05 01:17:07
+gmtime		858642047	1997-03-17 23:40:47
+gmtime		865001970	1997-05-30 14:19:30
+gmtime		865351051	1997-06-03 15:17:31
+gmtime		872569557	1997-08-26 04:25:57
+gmtime		876701597	1997-10-13 00:13:17
+gmtime		877131954	1997-10-17 23:45:54
+gmtime		881082350	1997-12-02 17:05:50
+gmtime		889273671	1998-03-07 12:27:51
+gmtime		890258014	1998-03-18 21:53:34
+gmtime		894415630	1998-05-06 00:47:10
+gmtime		904380210	1998-08-29 08:43:30
+gmtime		907966444	1998-10-09 20:54:04
+gmtime		916171995	1999-01-12 20:13:15
+gmtime		920121667	1999-02-27 13:21:07
+gmtime		922382004	1999-03-25 17:13:24
+gmtime		929868786	1999-06-20 08:53:06
+gmtime		932316204	1999-07-18 16:43:24
+gmtime		937945668	1999-09-21 20:27:48
+gmtime		950140517	2000-02-09 23:55:17
+gmtime		957489004	2000-05-05 01:10:04
+gmtime		959994342	2000-06-03 01:05:42
+gmtime		962214643	2000-06-28 17:50:43
+gmtime		965125344	2000-08-01 10:22:24
+gmtime		979805194	2001-01-18 08:06:34
+gmtime		981576686	2001-02-07 20:11:26
+gmtime		984991368	2001-03-19 08:42:48
+gmtime		989556906	2001-05-11 04:55:06
+gmtime		1001136275	2001-09-22 05:24:35
+gmtime		1005981791	2001-11-17 07:23:11
+gmtime		1012434773	2002-01-30 23:52:53
+gmtime		1014820149	2002-02-27 14:29:09
+gmtime		1015639772	2002-03-09 02:09:32
+gmtime		1015931237	2002-03-12 11:07:17
+gmtime		1023446213	2002-06-07 10:36:53
+gmtime		1024206525	2002-06-16 05:48:45
+gmtime		1025326512	2002-06-29 04:55:12
+gmtime		1038328056	2002-11-26 16:27:36
+gmtime		1038426246	2002-11-27 19:44:06
+gmtime		1046178873	2003-02-25 13:14:33
+gmtime		1056154738	2003-06-21 00:18:58
+gmtime		1061761405	2003-08-24 21:43:25
+gmtime		1062879384	2003-09-06 20:16:24
+gmtime		1065664943	2003-10-09 02:02:23
+gmtime		1066509004	2003-10-18 20:30:04
+gmtime		1066753059	2003-10-21 16:17:39
+gmtime		1067616665	2003-10-31 16:11:05
+gmtime		1072547511	2003-12-27 17:51:51
+gmtime		1073642211	2004-01-09 09:56:51
+gmtime		1080245779	2004-03-25 20:16:19
+gmtime		1082120131	2004-04-16 12:55:31
+gmtime		1097008812	2004-10-05 20:40:12
+gmtime		1097582529	2004-10-12 12:02:09
+gmtime		1100936126	2004-11-20 07:35:26
+gmtime		1102018270	2004-12-02 20:11:10
+gmtime		1103258610	2004-12-17 04:43:30
+gmtime		1104794120	2005-01-03 23:15:20
+gmtime		1106227001	2005-01-20 13:16:41
+gmtime		1110702890	2005-03-13 08:34:50
+gmtime		1113227323	2005-04-11 13:48:43
+gmtime		1119049813	2005-06-17 23:10:13
+gmtime		1124169513	2005-08-16 05:18:33
+gmtime		1126396983	2005-09-11 00:03:03
+gmtime		1127590354	2005-09-24 19:32:34
+gmtime		1133351695	2005-11-30 11:54:55
+gmtime		1138132158	2006-01-24 19:49:18
+gmtime		1139738561	2006-02-12 10:02:41
+gmtime		1140005851	2006-02-15 12:17:31
+gmtime		1141457584	2006-03-04 07:33:04
+gmtime		1153600874	2006-07-22 20:41:14
+gmtime		1154865802	2006-08-06 12:03:22
+gmtime		1156966737	2006-08-30 19:38:57
+gmtime		1159976559	2006-10-04 15:42:39
+gmtime		1171339208	2007-02-13 04:00:08
+gmtime		1181931738	2007-06-15 18:22:18
+gmtime		1187437498	2007-08-18 11:44:58
+gmtime		1189290215	2007-09-08 22:23:35
+gmtime		1189370379	2007-09-09 20:39:39
+gmtime		1189820280	2007-09-15 01:38:00
+gmtime		1191825335	2007-10-08 06:35:35
+gmtime		1193587090	2007-10-28 15:58:10
+gmtime		1194351301	2007-11-06 12:15:01
+gmtime		1195110747	2007-11-15 07:12:27
+gmtime		1197734147	2007-12-15 15:55:47
+gmtime		1207354958	2008-04-05 00:22:38
+gmtime		1227951537	2008-11-29 09:38:57
+gmtime		1228393599	2008-12-04 12:26:39
+gmtime		1248370864	2009-07-23 17:41:04
+gmtime		1250622712	2009-08-18 19:11:52
+gmtime		1251640299	2009-08-30 13:51:39
+gmtime		1256202351	2009-10-22 09:05:51
+gmtime		1264251291	2010-01-23 12:54:51
+gmtime		1270858954	2010-04-10 00:22:34
+gmtime		1275786131	2010-06-06 01:02:11
+gmtime		1286895627	2010-10-12 15:00:27
+gmtime		1290375636	2010-11-21 21:40:36
+gmtime		1295331530	2011-01-18 06:18:50
+gmtime		1298520498	2011-02-24 04:08:18
+gmtime		1312761197	2011-08-07 23:53:17
+gmtime		1315079642	2011-09-03 19:54:02
+gmtime		1316470003	2011-09-19 22:06:43
+gmtime		1320892059	2011-11-10 02:27:39
+gmtime		1321357393	2011-11-15 11:43:13
+gmtime		1324793347	2011-12-25 06:09:07
+gmtime		1327265222	2012-01-22 20:47:02
+gmtime		1330680711	2012-03-02 09:31:51
+gmtime		1332626684	2012-03-24 22:04:44
+gmtime		1335481563	2012-04-26 23:06:03
+gmtime		1342107306	2012-07-12 15:35:06
+gmtime		1343611829	2012-07-30 01:30:29
+gmtime		1348706441	2012-09-27 00:40:41
+gmtime		1349791593	2012-10-09 14:06:33
+gmtime		1364664320	2013-03-30 17:25:20
+gmtime		1371319747	2013-06-15 18:09:07
+gmtime		1371991634	2013-06-23 12:47:14
+gmtime		1373042626	2013-07-05 16:43:46
+gmtime		1377521079	2013-08-26 12:44:39
+gmtime		1380519941	2013-09-30 05:45:41
+gmtime		1387755465	2013-12-22 23:37:45
+gmtime		1388206399	2013-12-28 04:53:19
+gmtime		1389172164	2014-01-08 09:09:24
+gmtime		1392044614	2014-02-10 15:03:34
+gmtime		1404150709	2014-06-30 17:51:49
+gmtime		1404838159	2014-07-08 16:49:19
+gmtime		1407588635	2014-08-09 12:50:35
+gmtime		1407831088	2014-08-12 08:11:28
+gmtime		1419202903	2014-12-21 23:01:43
+gmtime		1419752474	2014-12-28 07:41:14
+gmtime		1422577323	2015-01-30 00:22:03
+gmtime		1425827929	2015-03-08 15:18:49
+gmtime		1432548458	2015-05-25 10:07:38
+gmtime		1439019145	2015-08-08 07:32:25
+gmtime		1444523262	2015-10-11 00:27:42
+gmtime		1446854880	2015-11-07 00:08:00
+gmtime		1449771624	2015-12-10 18:20:24
+gmtime		1453853651	2016-01-27 00:14:11
+gmtime		1459951686	2016-04-06 14:08:06
+gmtime		1463661912	2016-05-19 12:45:12
+gmtime		1471504322	2016-08-18 07:12:02
+gmtime		1471978969	2016-08-23 19:02:49
+gmtime		1477694356	2016-10-28 22:39:16
+gmtime		1487278458	2017-02-16 20:54:18
+gmtime		1487942146	2017-02-24 13:15:46
+gmtime		1490421440	2017-03-25 05:57:20
+gmtime		1491182569	2017-04-03 01:22:49
+gmtime		1495986432	2017-05-28 15:47:12
+gmtime		1501021107	2017-07-25 22:18:27
+gmtime		1507253873	2017-10-06 01:37:53
+gmtime		1509187540	2017-10-28 10:45:40
+gmtime		1514317721	2017-12-26 19:48:41
+gmtime		1517774689	2018-02-04 20:04:49
+gmtime		1519249363	2018-02-21 21:42:43
+gmtime		1522234219	2018-03-28 10:50:19
+gmtime		1522936365	2018-04-05 13:52:45
+gmtime		1523180734	2018-04-08 09:45:34
+gmtime		1527427645	2018-05-27 13:27:25
+gmtime		1529743813	2018-06-23 08:50:13
+gmtime		1533746699	2018-08-08 16:44:59
+gmtime		1540701861	2018-10-28 04:44:21
+gmtime		1541444221	2018-11-05 18:57:01
+gmtime		1543837727	2018-12-03 11:48:47
+gmtime		1545192008	2018-12-19 04:00:08
+gmtime		1563996250	2019-07-24 19:24:10
+gmtime		1574890023	2019-11-27 21:27:03
+gmtime		1575258897	2019-12-02 03:54:57
+gmtime		1581505692	2020-02-12 11:08:12
+gmtime		1584835485	2020-03-22 00:04:45
+gmtime		1590234920	2020-05-23 11:55:20
+gmtime		1596743511	2020-08-06 19:51:51
+gmtime		1598578544	2020-08-28 01:35:44
+gmtime		1607014084	2020-12-03 16:48:04
+gmtime		1611561726	2021-01-25 08:02:06
+gmtime		1612516823	2021-02-05 09:20:23
+gmtime		1619544530	2021-04-27 17:28:50
+gmtime		1620290954	2021-05-06 08:49:14
+gmtime		1622589695	2021-06-01 23:21:35
+gmtime		1622869705	2021-06-05 05:08:25
+gmtime		1627967933	2021-08-03 05:18:53
+gmtime		1628013394	2021-08-03 17:56:34
+gmtime		1642998589	2022-01-24 04:29:49
+gmtime		1643663756	2022-01-31 21:15:56
+gmtime		1647504667	2022-03-17 08:11:07
+gmtime		1648037121	2022-03-23 12:05:21
+gmtime		1651065057	2022-04-27 13:10:57
+gmtime		1656498946	2022-06-29 10:35:46
+gmtime		1662096999	2022-09-02 05:36:39
+gmtime		1667198545	2022-10-31 06:42:25
+gmtime		1671442436	2022-12-19 09:33:56
+gmtime		1676141790	2023-02-11 18:56:30
+gmtime		1676602561	2023-02-17 02:56:01
+gmtime		1685363855	2023-05-29 12:37:35
+gmtime		1695224061	2023-09-20 15:34:21
+gmtime		1696892135	2023-10-09 22:55:35
+gmtime		1699874170	2023-11-13 11:16:10
+gmtime		1707333940	2024-02-07 19:25:40
+gmtime		1710998342	2024-03-21 05:19:02
+gmtime		1711003209	2024-03-21 06:40:09
+gmtime		1722702876	2024-08-03 16:34:36
+gmtime		1722982158	2024-08-06 22:09:18
+gmtime		1727131974	2024-09-23 22:52:54
+gmtime		1728628644	2024-10-11 06:37:24
+gmtime		1731262033	2024-11-10 18:07:13
+gmtime		1735005805	2024-12-24 02:03:25
+gmtime		1737828212	2025-01-25 18:03:32
+gmtime		1746456776	2025-05-05 14:52:56
+gmtime		1751523432	2025-07-03 06:17:12
+gmtime		1751960255	2025-07-08 07:37:35
+gmtime		1758536902	2025-09-22 10:28:22
+gmtime		1759662249	2025-10-05 11:04:09
+gmtime		1761095200	2025-10-22 01:06:40
+gmtime		1764885465	2025-12-04 21:57:45
+gmtime		1767841118	2026-01-08 02:58:38
+gmtime		1771430791	2026-02-18 16:06:31
+gmtime		1777022741	2026-04-24 09:25:41
+gmtime		1785708360	2026-08-02 22:06:00
+gmtime		1790599701	2026-09-28 12:48:21
+gmtime		1793161910	2026-10-28 04:31:50
+gmtime		1802225421	2027-02-10 02:10:21
+gmtime		1805981993	2027-03-25 13:39:53
+gmtime		1815734607	2027-07-16 10:43:27
+gmtime		1816451446	2027-07-24 17:50:46
+gmtime		1820514287	2027-09-09 18:24:47
+gmtime		1825279321	2027-11-03 22:02:01
+gmtime		1827018242	2027-11-24 01:04:02
+gmtime		1833210815	2028-02-03 17:13:35
+gmtime		1839714770	2028-04-18 23:52:50
+gmtime		1840046018	2028-04-22 19:53:38
+gmtime		1840827648	2028-05-01 21:00:48
+gmtime		1842130548	2028-05-16 22:55:48
+gmtime		1842241906	2028-05-18 05:51:46
+gmtime		1846788129	2028-07-09 20:42:09
+gmtime		1847980796	2028-07-23 15:59:56
+gmtime		1849238120	2028-08-07 05:15:20
+gmtime		1851857239	2028-09-06 12:47:19
+gmtime		1852991183	2028-09-19 15:46:23
+gmtime		1856409681	2028-10-29 05:21:21
+gmtime		1856573006	2028-10-31 02:43:26
+gmtime		1862241778	2029-01-04 17:22:58
+gmtime		1868222157	2029-03-14 22:35:57
+gmtime		1889537359	2029-11-16 15:29:19
+gmtime		1891785724	2029-12-12 16:02:04
+gmtime		1892459699	2029-12-20 11:14:59
+gmtime		1896246364	2030-02-02 07:06:04
+gmtime		1899210533	2030-03-08 14:28:53
+gmtime		1900838005	2030-03-27 10:33:25
+gmtime		1901256750	2030-04-01 06:52:30
+gmtime		1905133885	2030-05-16 03:51:25
+gmtime		1908115471	2030-06-19 16:04:31
+gmtime		1909169450	2030-07-01 20:50:50
+gmtime		1920900672	2030-11-14 15:31:12
+gmtime		1927062382	2031-01-24 23:06:22
+gmtime		1930832774	2031-03-09 14:26:14
+gmtime		1936171598	2031-05-10 09:26:38
+gmtime		1943642118	2031-08-04 20:35:18
+gmtime		1945124586	2031-08-22 00:23:06
+gmtime		1946363633	2031-09-05 08:33:53
+gmtime		1946831222	2031-09-10 18:27:02
+gmtime		1954170389	2031-12-04 17:06:29
+gmtime		1954618747	2031-12-09 21:39:07
+gmtime		1958198725	2032-01-20 08:05:25
+gmtime		1970743237	2032-06-13 12:40:37
+gmtime		1973226161	2032-07-12 06:22:41
+gmtime		1973549960	2032-07-16 00:19:20
+gmtime		1976885209	2032-08-23 14:46:49
+gmtime		1988067422	2032-12-31 00:57:02
+gmtime		1992852162	2033-02-24 10:02:42
+gmtime		2001826405	2033-06-08 06:53:25
+gmtime		2007311801	2033-08-10 18:36:41
+gmtime		2009237701	2033-09-02 01:35:01
+gmtime		2012840346	2033-10-13 18:19:06
+gmtime		2017294043	2033-12-04 07:27:23
+gmtime		2018360558	2033-12-16 15:42:38
+gmtime		2023398395	2034-02-12 23:06:35
+gmtime		2023528540	2034-02-14 11:15:40
+gmtime		2026924872	2034-03-25 18:41:12
+gmtime		2037297595	2034-07-23 19:59:55
+gmtime		2044817674	2034-10-18 20:54:34
+gmtime		2047310372	2034-11-16 17:19:32
+gmtime		2055698769	2035-02-21 19:26:09
+gmtime		2056145292	2035-02-26 23:28:12
+gmtime		2064554131	2035-06-04 07:15:31
+gmtime		2065151491	2035-06-11 05:11:31
+gmtime		2068713525	2035-07-22 10:38:45
+gmtime		2085440245	2036-02-01 00:57:25
+gmtime		2085703624	2036-02-04 02:07:04
+gmtime		2086542472	2036-02-13 19:07:52
+gmtime		2088992196	2036-03-13 03:36:36
+gmtime		2097851831	2036-06-23 16:37:11
+gmtime		2097998787	2036-06-25 09:26:27
+gmtime		2101585471	2036-08-05 21:44:31
+gmtime		2108902490	2036-10-29 14:14:50
+gmtime		2109862119	2036-11-09 16:48:39
+gmtime		2113574398	2036-12-22 15:59:58
+gmtime		2117427614	2037-02-05 06:20:14
+gmtime		2124164002	2037-04-24 05:33:22
+gmtime		2124284783	2037-04-25 15:06:23
+gmtime		2132894144	2037-08-03 06:35:44
+gmtime		2142473262	2037-11-22 03:27:42
+gmtime		2144515258	2037-12-15 18:40:58
diff --git a/testcases64 b/testcases64
new file mode 100644
index 0000000..2ad8c50
--- /dev/null
+++ b/testcases64
@@ -0,0 +1,165 @@
+# More extreme gmtime/localtime/timegm test cases, assuming 64-bit time_t
+# (These do not however go out to the full -9223372036854775808 ..
+# 9223372036854775807 range, because tm_year stops being
+# representable in 32 bits)
+
+# 0 time
+gmtime	0		1970-01-01 00:00:00
+
+# almost min 32-bit signed time
+gmtime	-2147483647	1901-12-13 20:45:53
+
+# min 32-bit signed time
+gmtime	-2147483648	1901-12-13 20:45:52
+
+# max 32-bit signed time
+gmtime	2147483647	2038-01-19 03:14:07
+
+# max 32-bit unsigned time
+gmtime	4294967295	2106-02-07 06:28:15
+
+gmtime	3000000000	2065-01-24 05:20:00
+gmtime	4000000000	2096-10-02 07:06:40
+
+# historical dates
+
+gmtime	-2177452800	1901-01-01 00:00:00
+gmtime	-2208988800	1900-01-01 00:00:00
+gmtime	-2240524800	1899-01-01 00:00:00
+gmtime	-5364662400	1800-01-01 00:00:00
+gmtime	-8520336000	1700-01-01 00:00:00
+gmtime	-11676096000	1600-01-01 00:00:00
+gmtime	-14831769600	1500-01-01 00:00:00
+gmtime	-30610224000	1000-01-01 00:00:00
+gmtime	-46388678400	0500-01-01 00:00:00
+gmtime	-62135596800	0001-01-01 00:00:00
+gmtime	-62167219200	0000-01-01 00:00:00
+
+# future dates
+
+gmtime	1893456000	2030-01-01 00:00:00
+gmtime	2145916800	2038-01-01 00:00:00
+# 32-bit (signed) boundary
+gmtime	2177452800	2039-01-01 00:00:00
+gmtime	2524608000	2050-01-01 00:00:00
+gmtime	4102444800	2100-01-01 00:00:00
+gmtime	4291747200	2106-01-01 00:00:00
+# 32-bit (unsigned) boundary
+gmtime	4323283200	2107-01-01 00:00:00
+gmtime	5680281600	2150-01-01 00:00:00
+gmtime	7258118400	2200-01-01 00:00:00
+gmtime	16725225600	2500-01-01 00:00:00
+gmtime	32503680000	3000-01-01 00:00:00
+gmtime	95617584000	5000-01-01 00:00:00
+gmtime	221845392000	9000-01-01 00:00:00
+gmtime	250246627200	9900-01-01 00:00:00
+gmtime	253086768000	9990-01-01 00:00:00
+gmtime	253370764800	9999-01-01 00:00:00
+gmtime	253402214400	9999-12-31 00:00:00
+gmtime	253402300799	9999-12-31 23:59:59
+
+# really extreme dates (multiples of 400 years apart, to make the math easy)
+
+gmtime	190288396800	8000-01-01 00:00:00
+gmtime	316516204800	12000-01-01 00:00:00
+# time_t2 boundary
+# gmtime 442744012800	16000-01-01 00:00:00
+# gmtime 568971820800	20000-01-01 00:00:00
+# gmtime 884541340800	30000-01-01 00:00:00
+# gmtime 1200110860800	40000-01-01 00:00:00
+# gmtime 1515680380800	50000-01-01 00:00:00
+# gmtime 3093527980800	100000-01-01 00:00:00
+# gmtime 6249223180800	200000-01-01 00:00:00
+# gmtime 15716308780800	500000-01-01 00:00:00
+# gmtime 31494784780800	1000000-01-01 00:00:00
+# gmtime 63051736780800	2000000-01-01 00:00:00
+# gmtime 157722592780800	5000000-01-01 00:00:00
+# gmtime 315507352780800	10000000-01-01 00:00:00
+# gmtime 631076872780800	20000000-01-01 00:00:00
+# gmtime 1577785432780800	50000000-01-01 00:00:00
+# gmtime 3155633032780800	100000000-01-01 00:00:00
+# gmtime 6311328232780800	200000000-01-01 00:00:00
+# gmtime 15778413832780800	500000000-01-01 00:00:00
+# gmtime 31556889832780800	1000000000-01-01 00:00:00
+# gmtime 63113841832780800	2000000000-01-01 00:00:00
+# the rest overflow a 32-bit signed tm_year
+# gmtime 157784697832780800	5000000000-01-01 00:00:00
+# gmtime 315569457832780800	10000000000-01-01 00:00:00
+# gmtime 631138977832780800	20000000000-01-01 00:00:00
+# gmtime 1577847537832780800	50000000000-01-01 00:00:00
+# gmtime 3155695137832780800	100000000000-01-01 00:00:00
+# gmtime 6311390337832780800	200000000000-01-01 00:00:00
+# 64-bit (signed) boundary
+# gmtime 15778475937832780800	500000000000-01-01 00:00:00
+# 64-bit (unsigned) boundary
+# gmtime 31556951937832780800	1000000000000-01-01 00:00:00
+# gmtime 63113903937832780800	2000000000000-01-01 00:00:00
+
+gmtime	-62167219200	0000-01-01 00:00:00
+gmtime	-74790000000	-400-01-01 00:00:00
+gmtime	-87412780800	-800-01-01 00:00:00
+gmtime	-100035561600	-1200-01-01 00:00:00
+gmtime	-112658342400	-1600-01-01 00:00:00
+gmtime	-125281123200	-2000-01-01 00:00:00
+gmtime	-188395027200	-4000-01-01 00:00:00
+gmtime	-314622835200	-8000-01-01 00:00:00
+
+gmtime	-163149465600	-3200-01-01 00:00:00
+gmtime	-264131712000	-6400-01-01 00:00:00
+gmtime	-339868396800	-8800-01-01 00:00:00
+# time_t2 boundary
+# gmtime -377736739200	-10000-01-01 00:00:00
+# gmtime -693306259200	-20000-01-01 00:00:00
+# gmtime -1640014819200	-50000-01-01 00:00:00
+# gmtime -3217862419200	-100000-01-01 00:00:00
+# gmtime -6373557619200	-200000-01-01 00:00:00
+# gmtime -15840643219200	-500000-01-01 00:00:00
+# gmtime -31619119219200	-1000000-01-01 00:00:00
+# gmtime -63176071219200	-2000000-01-01 00:00:00
+# gmtime -157846927219200	-5000000-01-01 00:00:00
+# gmtime -315631687219200	-10000000-01-01 00:00:00
+# gmtime -631201207219200	-20000000-01-01 00:00:00
+# gmtime -1577909767219200	-50000000-01-01 00:00:00
+# gmtime -3155757367219200	-100000000-01-01 00:00:00
+# gmtime -6311452567219200	-200000000-01-01 00:00:00
+# gmtime -15778538167219200	-500000000-01-01 00:00:00
+# gmtime -31557014167219200	-1000000000-01-01 00:00:00
+# gmtime -63113966167219200	-2000000000-01-01 00:00:00
+# the rest overflow a 32-bit signed tm_year
+# gmtime -157784822167219200	-5000000000-01-01 00:00:00
+# gmtime -315569582167219200	-10000000000-01-01 00:00:00
+# gmtime -631139102167219200	-20000000000-01-01 00:00:00
+# gmtime -1577847662167219200	-50000000000-01-01 00:00:00
+# gmtime -3155695262167219200	-100000000000-01-01 00:00:00
+# gmtime -6311390462167219200	-200000000000-01-01 00:00:00
+# 64-bit (signed) boundary
+# gmtime -15778476062167219200	-500000000000-01-01 00:00:00
+# gmtime -31556952062167219200	-1000000000000-01-01 00:00:00
+# gmtime -63113904062167219200	-1000000000000-01-01 00:00:00
+
+# also some localtime tests, to ensure offsets also work on 64 bits
+
+tz EST5EDT
+localtime	-59011437539	100-01-01 01:01:01	o=-18000 dst=0
+localtime	-55852995478	200-02-02 02:02:02	o=-18000 dst=0
+localtime	-52694812617	300-03-03 03:03:03	o=-18000 dst=0
+localtime	-49536284156	400-04-04 04:04:04	o=-18000 dst=0
+localtime	-46377928495	500-05-05 05:05:05	o=-18000 dst=0
+localtime	-43219486434	600-06-06 06:06:06	o=-18000 dst=0
+localtime	-40061130773	700-07-07 07:07:07	o=-18000 dst=0
+localtime	-36902602312	800-08-08 08:08:08	o=-18000 dst=0
+localtime	-33744160251	900-09-09 09:09:09	o=-18000 dst=0
+localtime	-30585804590	1000-10-10 10:10:10	o=-18000 dst=0
+localtime	-27427362529	1100-11-11 11:11:11	o=-18000 dst=0
+localtime	-24268920468	1200-12-12 12:12:12	o=-18000 dst=0
+localtime	-21142014407	1300-01-13 13:13:13	o=-18000 dst=0
+localtime	-17983572346	1400-02-14 14:14:14	o=-18000 dst=0
+localtime	-14825389485	1500-03-15 15:15:15	o=-18000 dst=0
+localtime	-11666861024	1600-04-16 16:16:16	o=-18000 dst=0
+localtime	 -8508505363	1700-05-17 17:17:17	o=-18000 dst=0
+localtime	 -5350063302	1800-06-18 18:18:18	o=-18000 dst=0
+localtime	 -2191707641	1900-07-19 19:19:19	o=-18000 dst=0
+localtime	   966817220	2000-08-20 20:20:20	o=-14400 dst=1
+localtime	  4125259281	2100-09-21 21:21:21	o=-14400 dst=1
+localtime	  7283614942	2200-10-22 22:22:22	o=-14400 dst=1
+localtime	 10442060603	2300-11-23 23:23:23	o=-18000 dst=0
diff --git a/testsuite.c b/testsuite.c
new file mode 100644
index 0000000..5984867
--- /dev/null
+++ b/testsuite.c
@@ -0,0 +1,808 @@
+/*
+ *  Read test cases and exercise localtime() et al.
+ *
+ *  There are two modes of operation: scripted and "exhaustive".
+ *
+ *  The default mode is scripted.  Test cases are read from
+ *  standard input or named file(s), and executed.  The format of
+ *  the test cases is described below.
+ *
+ *  In "exhaustive" mode, tests are systematically performed over
+ *  a selected range of dates.
+ *
+ *  Options:
+ *
+ *	-f YYYY-mm-dd	In "exhaustive" mode, start from the given
+ *			date (default 1901-12-14)
+ *
+ *	-i nnn		In "exhaustive" mode, increment by nnn
+ *			seconds (default 997)
+ *
+ *	-s		Call tzset() before running tests.
+ *
+ *	-t YYYY-mm-dd	In "exhaustive" mode, run to the given
+ *			date (default 2038-01-19)
+ *
+ *	-x		Run in "exhaustive" mode
+ *
+ *  In "exhaustive" mode, unless adjusted by the -f, -i, or -t
+ *  arguments, tests are run on times from 1901-12-14 to 2038-01-19
+ *  in increments of 997 seconds (that is, 1901-12-14 00:00:00,
+ *  1901-12-14 00:16:37, 1901-12-14 00:33:14, etc.).  At each
+ *  timepoint, gmtime, timegm, mktime, and localtime are tested.
+ *  mktime and localtime are tested using the system's default
+ *  time zone, e.g. as set by the TZ variable.
+ *
+ *  Test Scripts
+ *
+ *  A test script is a text file.  Each line is interpreted as
+ *  whitespace-separated tokens.  Any text following a '#' character
+ *  is a comment to be ignored.
+ *
+ *  The first token on each line is a keyword performing one
+ *  action.  Remaining tokens are arguments.
+ *
+ *  The keywords are as follows:
+ *
+ *	gmtime t date time [options]
+ *
+ *	Applying gmtime() to the time_t value t is expected to
+ *	give the indicated data and time.  Contrariwise, applying
+ *	timegm() to the date and time is expected to give the
+ *	indicated time_t value.
+ *
+ *	The options are described below.
+ *
+ *	Example:
+ *		gmtime  420206400  1983-04-26 12:00:00  yd=115 wd=2
+ *
+ *
+ *	localtime t date time [options]
+ *
+ *	Applying localtime() to the time_t value t, under the
+ *	current time zone, is expected to give the indicated data
+ *	and time.  Contrariwise, applying mktime() to the date
+ *	and time is expected to give the  indicated time_t value.
+ *
+ *	The options are described below.
+ *
+ *	Example:
+ *		localtime  482432400  1985-04-15 12:00:00  z=EST o=-18000
+ *
+ *	tz zonename
+ *
+ *	Set the time zone to be used for following localtime tests.
+ *
+ *
+ *  Options
+ *
+ *  For gmtime and localtime tests, a number of optional
+ *  parameters may be specified.  These options are specified using
+ *  a simple keyword=value in columns 5 and beyond.  Whitespace is
+ *  not permitted on either side of the = sign.  Unrecognized
+ *  options are quietly ignored.
+ *
+ *  The available options are:
+ *
+ *	wd=n	Specify the expected tm_wday value for localtime
+ *		and gmtime conversion (0 = Sunday, 6 = Saturday).
+ *
+ *	yd=n	Specify the expected tm_yday value for localtime
+ *		and gmtime conversion.
+ *
+ *	dst=n	Specify the expected tm_isdst value for localtime
+ *		conversion.
+ *
+ *	z=name	Specify the expected tm_zone value for localtime
+ *		conversion (if tm_zone is supported).
+ *
+ *	o=nnn	Specify the expected tm_gmtoff value for localtime
+ *		conversion (if tm_gmtoff is supported).
+ *
+ *	fl=fff	Specify optional processing flags.  fff is a
+ *		comma-separated list of flag names.  The following
+ *		flags are supported:
+ *
+ *			noi	Do not attempt to perform the
+ *				inverse mktime or timegm test.
+ *				(This flag is typically used for
+ *				localtime tests during DST "fall
+ *				back" intervals, when the time is
+ *				ambiguous and does not uniquely
+ *				correspond to a single time_t value.)
+ *
+ *			denorm	The broken-down struct tm is
+ *				denormalized and would never be
+ *				generated by localtime or gmtime;
+ *				perform *only* the inverse mktime
+ *				or timegm test.
+ *
+ *	See the sample testcases file for examples of all these
+ *	options and flags in use.
+ *
+ *  Known Issues
+ *
+ *  The zone names used in a test script must (obviously) match
+ *  those installed along with localtime et al. on the system under
+ *  test.  Beware that different OSes and distributions have used
+ *  significantly different sets of names ("America/New York",
+ *  "US/Eastern", "EST5EDT", etc.)
+ *
+ *  Different operating systems use different mechanisms to set
+ *  the default time zone for the current machine.  When driven by
+ *  a test script, all tests use zones as explicitly specified in
+ *  the script.  But exhaustive (-x) tests rely on the system's default
+ *  time zone.  If the system's notion of its default time zone is
+ *  stored in a way that the copy of localtime under test is not aware
+ *  of, it may be necessary to explicitly set a zone, e.g. by setting
+ *  the environment variable TZ.  (It may also help to use the -s
+ *  option, causing an explicit call to tzset().)
+ *
+ *  At the moment, there are tests on localtime, gmtime, mktime, and timegm.
+ *  Tests on ctime and strftime would be useful but are not implemented yet.
+ *  There are also no tests on asctime, nor on tzset, tzsetwall, offtime,
+ *  or timeoff.
+ *
+ *  Written by Steve Summit, 2015-12.
+ *  This code is in the Public Domain.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <signal.h>
+#include <unistd.h>
+#include <setjmp.h>
+#include <errno.h>
+
+/* temporarily hardwired (could get these from private.h) */
+#define TM_ZONE tm_zone
+#define TM_GMTOFF tm_gmtoff
+
+#define EPOCH_WDAY 4	/* Thursday */
+
+#define Streq(s1, s2) (strcmp(s1, s2) == 0)
+
+int getargs(char **, char *, int);
+
+void runtests(FILE *, const char *);
+void run_exhaustive(const struct tm *, const struct tm *, time_t);
+
+time_t quick_timegm(const struct tm *);
+int isleap(int);
+int nleapsbetween(int, int);
+
+int tmcmp(const struct tm *, const struct tm *);
+
+void catchsig(int);
+
+/* our own copy of this time-honored array (would be nice to share) */
+int monthlens[2][12] = {
+	{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
+	{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
+};
+
+int errs = 0;
+
+jmp_buf jmpbuf;
+
+const char *progname = "testsuite";
+
+int main(int argc, char *argv[])
+{
+	int ferrs = 0;
+	int exhaustive = 0;
+	int argi = 1;
+	int calltzset = 0;
+	char *fromstr = "1901-12-14";
+	char *tostr = "2038-01-19";
+	char *incstr = "997";	/* rather arbitrary, but useful if prime */
+	struct tm tm;
+
+	for(; argi < argc && argv[argi][0] == '-'; argi++) {
+		char *p;
+		for(p = &argv[argi][1]; *p != '\0'; p++) {
+			switch(*p) {
+				case 'f':
+					fromstr = argv[++argi];
+					break;
+
+				case 'i':
+					incstr = argv[++argi];
+					break;
+
+				case 's':
+					calltzset = 1;
+					break;
+
+				case 't':
+					tostr = argv[++argi];
+					break;
+
+				case 'x':
+					exhaustive = 1;
+					break;
+
+				default:
+					fprintf(stderr,
+						"%s: unknown option -%c\n",
+								progname, *p);
+			}
+		}
+	}
+
+	signal(SIGSEGV, catchsig);
+	signal(SIGALRM, catchsig);
+
+	/* TODO: check for -x plus input file, other mismatched args */
+
+	if(calltzset) {
+		tzset();
+	}
+
+	if(exhaustive) {
+		struct tm from, to;
+		time_t inc;
+
+		if(sscanf(fromstr, "%d-%d-%d",
+			    &from.tm_year, &from.tm_mon, &from.tm_mday) != 3) {
+			fprintf(stderr,
+				    "%s: syntax error in from string \"%s\"\n",
+							progname, fromstr);
+			}
+		from.tm_year -= 1900;
+		from.tm_mon--;
+		from.tm_hour = from.tm_min = from.tm_sec = 0;
+		from.tm_isdst = -1;
+		from.tm_wday = 0;
+		from.tm_yday = 0;
+
+		if(sscanf(tostr, "%d-%d-%d",
+				  &to.tm_year, &to.tm_mon, &to.tm_mday) != 3) {
+			fprintf(stderr,
+				    "%s: syntax error in to string \"%s\"\n",
+							progname, tostr);
+		}
+		to.tm_year -= 1900;
+		to.tm_mon--;
+		to.tm_hour = to.tm_min = to.tm_sec = 0;
+		to.tm_isdst = -1;
+		to.tm_wday = 0;
+		to.tm_yday = 0;
+
+		inc = atol(incstr);
+
+		run_exhaustive(&from, &to, inc);
+	} else if(argi == argc) {
+		printf("%s: reading tests from standard input\n", progname);
+		runtests(stdin, "standard input");
+	} else {
+		FILE *fp;
+		for(; argi < argc; argi++) {
+			fp = fopen(argv[argi], "r");
+			if(fp == NULL) {
+				fprintf(stderr, "%s: can't open %s: %s\n",
+					progname, argv[argi], strerror(errno));
+				ferrs++;
+				continue;
+			}
+			runtests(fp, argv[argi]);
+			fclose(fp);
+		}
+	}
+
+	if(errs != 0 || ferrs != 0) {
+		printf("%d tests failed", errs);
+		if(ferrs != 0)
+			printf(", %d other errors", ferrs);
+		printf("\n");
+	}
+
+	if(ferrs != 0) return 2;
+	if(errs != 0) return 1;
+	return 0;
+}
+
+#define LOCAL 01
+#define NOINV 02
+#define DENORM 04
+
+void basictest(time_t t, const struct tm *itmp, int flags, const char *tag)
+{
+	int sig;
+	time_t t2;
+	struct tm tm, tm2;
+	struct tm *tmp;
+
+	tm = *itmp;
+
+	/* Ye olde C-style exception handling */
+	if((sig = setjmp(jmpbuf)) != 0) {
+		printf("%s: %s\n", tag, sig == SIGALRM ? "taking too long" :
+						         "exception");
+		errs++;
+		return;	/* skips further tests for this test case */
+	}
+
+	alarm(1);
+
+	if(!(flags & DENORM)) {
+
+		if(flags & LOCAL) {
+			tmp = localtime(&t);
+		} else {
+			tmp = gmtime(&t);
+		}
+
+		if(tmp == NULL) {
+			printf("%s: %s failed\n", tag,
+			     (flags & LOCAL) ? "localtime" : "gmtime");
+			errs++;
+			return;	/* skips further tests for this test case */
+		}
+
+		tm2 = *tmp;
+
+		if(tmcmp(&tm, &tm2) != 0) {
+			printf("%s: expected %04d-%02d-%02d %02d:%02d:%02d, got %04d-%02d-%02d %02d:%02d:%02d\n",
+				tag,
+				tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
+					tm.tm_hour, tm.tm_min, tm.tm_sec,
+				tm2.tm_year+1900, tm2.tm_mon+1, tm2.tm_mday,
+					tm2.tm_hour, tm2.tm_min, tm2.tm_sec);
+			errs++;
+		}
+		if(tm.tm_wday != -1) {
+			if(tm2.tm_wday != tm.tm_wday) {
+				printf("%s: expected wday %d, got %d\n",
+					tag, tm.tm_wday, tm2.tm_wday);
+				errs++;
+			}
+		}
+		if(tm.tm_yday != -1) {
+			if(tm2.tm_yday != tm.tm_yday) {
+				printf("%s: expected yday %d, got %d\n",
+					tag, tm.tm_yday, tm2.tm_yday);
+				errs++;
+			}
+		}
+		if(tm.tm_isdst != -1) {
+			if(tm2.tm_isdst != tm.tm_isdst) {
+				printf("%s: expected dst %d, got %d\n",
+					tag, tm.tm_isdst, tm2.tm_isdst);
+				errs++;
+			}
+		}
+#ifdef TM_ZONE
+		if(tm.TM_ZONE && *tm.TM_ZONE) {
+			if(!Streq(tm2.TM_ZONE, tm.TM_ZONE)) {
+				printf("%s: expected \"%s\", got \"%s\"\n",
+					tag, tm.TM_ZONE, tm2.TM_ZONE);
+				errs++;
+			}
+		}
+#endif
+#ifdef TM_GMTOFF
+		if(tm.TM_GMTOFF != -1) {
+			if(tm2.TM_GMTOFF != tm.TM_GMTOFF) {
+				printf("%s: expected offset %ld, got %ld\n",
+					tag, tm.TM_GMTOFF, tm2.TM_GMTOFF);
+				errs++;
+			}
+		}
+#endif
+	}
+
+	/* now inverse */
+	if(!(flags & NOINV)) {
+
+		tm.tm_isdst = -1;
+		tm.tm_wday = 0;
+		tm.tm_yday = 0;
+
+		if(flags & LOCAL) {
+			t2 = mktime(&tm);
+		} else {
+#ifdef TEST_QUICK_TIMEGM
+			t2 = quick_timegm(&tm);
+#else
+			t2 = timegm(&tm);
+#endif
+		}
+
+		if(t2 != t) {
+			printf("%s: inverse expected %ld, got %ld\n",
+					tag, t, t2);
+			errs++;
+		}
+	}
+
+	alarm(0);
+}
+
+#define MAXLINE 512
+#define MAXARGS 10
+
+void runtests(FILE *fp, const char *name)
+{
+	int lineno = 0;
+	char line[MAXLINE];
+	char *p;
+	char *av[MAXARGS];
+	int ac;
+	int sig;
+	time_t t, t2;
+	struct tm tm, tm2;
+	struct tm *tmp;
+	char tag[100];
+	int i;
+	int flags;
+
+	while(fgets(line, sizeof(line), fp) != NULL) {
+		lineno++;
+		if((p = strrchr(line, '\n')) != NULL) *p = '\0';
+		if((p = strrchr(line, '\r')) != NULL) *p = '\0';
+		if((p = strchr(line, '#')) != NULL) *p = '\0';
+		if(*line == '\0') continue;
+		ac = getargs(av, line, MAXARGS);
+		if(ac == 0) continue;
+
+		snprintf(tag, sizeof(tag), "%s, line %d: %s",
+							name, lineno, av[0]);
+
+		if(Streq(av[0], "tz")) {
+			setenv("TZ", av[1], 1);
+		} else if(Streq(av[0], "localtime") || Streq(av[0], "gmtime")) {
+			if(ac < 4) {
+				fprintf(stderr,
+				    "%s: %s, line %d: %s: too few arguments\n",
+					progname, name, lineno, av[0]);
+				continue;
+			}
+
+			t = atoll(av[1]);
+
+			if(sscanf(av[2], "%d-%d-%d",
+			    &tm.tm_year, &tm.tm_mon, &tm.tm_mday) != 3 ||
+				sscanf(av[3], "%d:%d:%d",
+				   &tm.tm_hour, &tm.tm_min, &tm.tm_sec) != 3) {
+				fprintf(stderr,
+				 "%s: %s, line %d: %s: bad date/time syntax\n",
+					progname, name, lineno, av[0]);
+				continue;
+			}
+
+			tm.tm_year -= 1900;
+			tm.tm_mon--;
+
+			flags = 0;
+			tm.tm_wday = -1;
+			tm.tm_yday = -1;
+			tm.tm_isdst = -1;
+#ifdef TM_ZONE
+			tm.TM_ZONE = NULL;
+#endif
+#ifdef TM_GMTOFF
+			tm.TM_GMTOFF = -1;
+#endif
+			if(Streq(av[0], "localtime")) flags |= LOCAL;
+
+			for(i = 4; i < ac; i++) {
+				char *k = av[i];
+				char *v = strchr(av[i], '=');
+				if(v == NULL) {
+					fprintf(stderr,
+			    "%s: %s, line %d: %s bad aux parm syntax \"%s\"\n",
+						progname, name, lineno,
+							av[0], av[i]);
+					continue;
+				}
+				*v++ = '\0';
+				if(Streq(k, "fl")) {
+					/* scan comma-separated list */
+					for(p = v; p && *p; ) {
+						char *p2 = strchr(p, ',');
+						if(p2 != NULL) *p2 = '\0';
+						if(Streq(p, "noi"))
+							flags |= NOINV;
+						else if(Streq(p, "denorm"))
+							flags |= DENORM;
+						if(p2) p = p2 + 1;
+						else   p = NULL;
+					}
+				} else if(Streq(k, "wd")) {
+					tm.tm_wday = atoi(v);
+				} else if(Streq(k, "yd")) {
+					tm.tm_yday = atoi(v);
+				} else if(Streq(k, "dst")) {
+					tm.tm_isdst = atoi(v);
+#ifdef TM_ZONE
+				} else if(Streq(k, "z")) {
+					tm.TM_ZONE = v;
+#endif
+#ifdef TM_GMTOFF
+				} else if(Streq(k, "o")) {
+					tm.TM_GMTOFF = atol(v);
+#endif
+				}
+			}
+
+			basictest(t, &tm, flags, tag);
+
+		} else {
+			fprintf(stderr,
+		      "%s: %s, line %d: warning: unrecognized operator '%s'\n",
+				progname, name, lineno, av[0]);
+		}
+	}
+}
+
+void run_exhaustive(const struct tm *from, const struct tm *to, time_t inc)
+{
+	time_t t, t2;
+	struct tm tm, *tmp, tmcopy;
+	long ntests = 0;
+	char tag[30];
+	time_t tmpx, tmpi;
+	int i;
+	static int beenhere = 0;
+
+	printf("exhaustive tests: from %d-%02d-%02d ",
+			from->tm_year+1900, from->tm_mon+1, from->tm_mday);
+	printf("to %d-%02d-%02d by %ld\n",
+		to->tm_year+1900, to->tm_mon+1, to->tm_mday, inc);
+
+	tm = *from;
+	t = quick_timegm(from);
+
+	tm.tm_wday = (t / 86400 + EPOCH_WDAY) % 7;
+	if(tm.tm_wday < 0) tm.tm_wday += 7;
+
+	tm.tm_yday = 0;
+	for(i = 0; i < tm.tm_mon; i++)
+		tm.tm_yday += monthlens[isleap(1900+tm.tm_year)][i];
+	tm.tm_yday += tm.tm_mday - 1;
+
+	while(tmcmp(&tm, to) <= 0) {
+
+		ntests++;
+
+		snprintf(tag, sizeof(tag), "%ld", t);
+
+		/*
+		 *  This do/while loop runs exactly once, and is here just
+		 *  so that a break will skip the rest of the current test
+		 *  and jump down to the increment to the next one.
+		 *  (These breaks are therefore even more like gotos
+		 *  than usual.)
+		 */
+		do {
+			tm.tm_isdst = -1;
+#ifdef TM_ZONE
+			tm.TM_ZONE = NULL;
+#endif
+#ifdef TM_GMTOFF
+			tm.TM_GMTOFF = 0;
+#endif
+			/*
+			 *  The strategy for exhaustive tests is a little
+			 *  different than for the explicit, script-driven
+			 *  ones.  Hor gmtime, we can reasonably precompute
+			 *  a (time, struct tm) pair, so we can call
+			 *  basictest() more or less as for the scripted
+			 *  case.  For localtime, though, since we can't
+			 *  reasonably predict, and since we therefore have
+			 *  little choice but to do a more simpleminded
+			 *  end-to-end test, let's run it the other way,
+			 *  starting with the struct tm which the GMT-based
+			 *  test computed, running it struct tm -> time ->
+			 *  struct tm, and then checking to see whether the
+			 *  tm_gmtoff makes sense given the (GMT) time we
+			 *  originally started with.
+			 */
+
+			basictest(t, &tm, 0, tag);
+
+			tmcopy = tm;
+
+			t2 = mktime(&tmcopy);
+
+			if(t2 == -1) {
+				if(tm.tm_hour == 2) {
+					/* assume ambiguous DST (maybe temporary) */
+					break;	/* continue to next case */
+				}
+
+				printf("%s: %s failed\n", tag, "mktime");
+				errs++;
+				break;	/* skips further tests for this case */
+			}
+
+			tmp = localtime(&t2);
+			if(tmp == NULL) {
+				printf("%s: %s failed\n", tag, "localtime");
+				errs++;
+				break;	/* skips further tests for this case */
+			}
+
+			if(tmcmp(&tm, tmp) != 0) {
+				printf("%s: expected %04d-%02d-%02d %02d:%02d:%02d, got %04d-%02d-%02d %02d:%02d:%02d\n",
+				    tag,
+				    tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
+					tm.tm_hour, tm.tm_min, tm.tm_sec,
+				    tmp->tm_year+1900, tmp->tm_mon+1, tmp->tm_mday,
+					tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+				errs++;
+			}
+
+#ifdef TM_GMTOFF
+			if(tmp->TM_GMTOFF == 0 && !beenhere) {
+				fprintf(stderr,
+	"%s: no or GMT/UTC time zone set, so no nontrivial tz offset tested\n",
+								progname);
+				fprintf(stderr,
+				       "try setting TZ or invoking with -s\n");
+				beenhere = 1;
+			}
+
+			if(t - t2 != tmp->TM_GMTOFF) {
+				printf(
+				"%s: tm_gmtoff not as expected: %ld vs. %ld\n",
+						tag, t - t2, tmp->TM_GMTOFF);
+				errs++;
+			}
+#endif
+		} while(0);
+
+		t += inc;
+
+		/* have to worry about overflow, since time_t might be */
+		/* 64 bits, while tm_sec et al. almost certainly aren't */
+
+		tmpx = tm.tm_sec + inc;
+		tm.tm_sec = tmpx % 60;
+		tmpi = tmpx / 60;
+
+		tmpx = tm.tm_min + tmpi;
+		tm.tm_min = tmpx % 60;
+		tmpi = tmpx / 60;
+
+		tmpx = tm.tm_hour + tmpi;
+		tm.tm_hour = tmpx % 24;
+		tmpi = tmpx / 24;
+
+		tm.tm_mday += tmpi;	/* assuming no more ovrfl possib */
+		tm.tm_wday = (tm.tm_wday + tmpi) % 7;
+		tm.tm_yday += tmpi;	/* overflow handled in mday loop */
+
+		while(tm.tm_mday > monthlens[isleap(1900+tm.tm_year)][tm.tm_mon]) {
+			tm.tm_mday -= monthlens[isleap(1900+tm.tm_year)]
+					       [tm.tm_mon];
+			tm.tm_mon++;
+
+			if(tm.tm_mon >= 12) {
+				tm.tm_yday -= isleap(1900+tm.tm_year) ? 366
+								      : 365;
+				tm.tm_year++;
+				tm.tm_mon -= 12;
+			}
+		}
+	}
+
+	printf("%ld tests completed\n", ntests);
+}
+
+int tmcmp(const struct tm *tm1, const struct tm *tm2)
+{
+	if(tm1->tm_year != tm2->tm_year)
+		return (tm1->tm_year < tm2->tm_year) ? -1 : 1;
+	else if(tm1->tm_mon != tm2->tm_mon)
+		return (tm1->tm_mon < tm2->tm_mon) ? -1 : 1;
+	else if(tm1->tm_mday != tm2->tm_mday)
+		return (tm1->tm_mday < tm2->tm_mday) ? -1 : 1;
+	else if(tm1->tm_hour != tm2->tm_hour)
+		return (tm1->tm_hour < tm2->tm_hour) ? -1 : 1;
+	else if(tm1->tm_min != tm2->tm_min)
+		return (tm1->tm_min < tm2->tm_min) ? -1 : 1;
+	else if(tm1->tm_sec != tm2->tm_sec)
+		return (tm1->tm_sec < tm2->tm_sec) ? -1 : 1;
+	else return 0;
+}
+
+time_t quick_timegm(const struct tm *tmp)
+{
+	int m;
+	time_t r = (time_t)(1900 + tmp->tm_year - 1970) * 365 * 86400;
+	r += nleapsbetween(1970, 1900 + tmp->tm_year-1) * (time_t)86400;
+#ifdef DEBUG
+	printf("quick_timegm: nleapsbetween: %d\n",
+				nleapsbetween(1970, 1900 + tmp->tm_year-1));
+#endif
+	for(m = 0; m < tmp->tm_mon; m++)
+		r += monthlens[isleap(1900+tmp->tm_year)][m] * 86400;
+	r += (tmp->tm_mday - 1) * 86400;
+	r += (tmp->tm_hour * 60 + tmp->tm_min) * 60 + tmp->tm_sec;
+#ifdef DEBUG
+	printf("quick_timegm: %04d-%02d-%02d %02d:%02d:%02d -> %ld\n",
+		1900+tmp->tm_year, tmp->tm_mon+1, tmp->tm_mday,
+			tmp->tm_hour, tmp->tm_min, tmp->tm_sec, r);
+#endif
+	return r;
+}
+
+int isleap(int y)
+{
+	return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
+}
+
+int nleapsbetween(y1, y2)
+{
+	if(y1 == y2) {
+		return 0;	/* unnecessary optimization */
+	} else if(y1 != 0) {
+		return nleapsbetween(0, y2) - nleapsbetween(0, y1);
+	} else {
+		/*
+		 *  This could simply be
+		 *	return y2 / 4 - y2 / 100 + y2 / 400;
+		 *  if only C guaranteed Euclidean division...
+		 */
+		int ret = 0;
+		int q = y2 / 4;
+		if(y2 % 4 < 0) q--;
+		ret += q;
+		q = y2 / 100; if(y2 % 100 < 0) q--;
+		ret -= q;
+		q = y2 / 400; if(y2 % 400 < 0) q--;
+		ret += q;
+		return ret;
+	}
+}
+
+void catchsig(int sig)
+{
+	longjmp(jmpbuf, sig);
+}
+
+/*
+ *  takes a string (line) and builds an array of pointers to each word in it.
+ *  words are separated by spaces or any control characters.  At most maxargs
+ *  pointers are calculated.  \0's are inserted in line, so that each word
+ *  becomes a string in its own right.  The number of pointers (argc) is
+ *  returned.
+ */
+
+#include <stdio.h>
+
+#define iswhite(c) ((c) == ' ' || (c) == '\t' || (c) == '\n')
+
+getargs(char *argv[], char *line, int maxargs)
+{
+	int nargs;
+
+	nargs = 0;
+
+	while(1) {
+		while(iswhite(*line))
+			line++;
+
+		if(*line == '\0') {
+			if(nargs < maxargs) *argv = NULL;
+			return(nargs);
+		}
+
+		*argv++ = line;
+		nargs++;
+
+		while(!iswhite(*line) && *line != '\0')
+			line++;
+
+		if(*line == '\0') {
+			if(nargs < maxargs) *argv = NULL;
+			return(nargs);
+		}
+		*line++ = '\0';
+		if(nargs == maxargs) return(nargs);
+	}
+}
-- 
2.5.0

