]> git.saurik.com Git - apple/icu.git/blame - icuSources/i18n/astro.cpp
ICU-64252.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / astro.cpp
CommitLineData
f3c0d7a5
A
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
374ca955 3/************************************************************************
57a6839d 4 * Copyright (C) 1996-2014, International Business Machines Corporation
4388f060 5 * and others. All Rights Reserved.
374ca955
A
6 ************************************************************************
7 * 2003-nov-07 srl Port from Java
8 */
9
10#include "astro.h"
11
12#if !UCONFIG_NO_FORMATTING
13
14#include "unicode/calendar.h"
46f4442e 15#include <math.h>
374ca955
A
16#include <float.h>
17#include "unicode/putil.h"
18#include "uhash.h"
19#include "umutex.h"
20#include "ucln_in.h"
21#include "putilimp.h"
22#include <stdio.h> // for toString()
23
729e4ab9
A
24#if defined (PI)
25#undef PI
26#endif
27
374ca955
A
28#ifdef U_DEBUG_ASTRO
29# include "uresimp.h" // for debugging
30
31static void debug_astro_loc(const char *f, int32_t l)
32{
33 fprintf(stderr, "%s:%d: ", f, l);
34}
35
36static void debug_astro_msg(const char *pat, ...)
37{
38 va_list ap;
39 va_start(ap, pat);
40 vfprintf(stderr, pat, ap);
41 fflush(stderr);
42}
43#include "unicode/datefmt.h"
44#include "unicode/ustring.h"
45static const char * debug_astro_date(UDate d) {
46 static char gStrBuf[1024];
47 static DateFormat *df = NULL;
48 if(df == NULL) {
49 df = DateFormat::createDateTimeInstance(DateFormat::MEDIUM, DateFormat::MEDIUM, Locale::getUS());
50 df->adoptTimeZone(TimeZone::getGMT()->clone());
51 }
52 UnicodeString str;
53 df->format(d,str);
54 u_austrncpy(gStrBuf,str.getTerminatedBuffer(),sizeof(gStrBuf)-1);
55 return gStrBuf;
56}
57
58// must use double parens, i.e.: U_DEBUG_ASTRO_MSG(("four is: %d",4));
59#define U_DEBUG_ASTRO_MSG(x) {debug_astro_loc(__FILE__,__LINE__);debug_astro_msg x;}
60#else
61#define U_DEBUG_ASTRO_MSG(x)
62#endif
63
64static inline UBool isINVALID(double d) {
65 return(uprv_isNaN(d));
66}
67
3d1f044b
A
68static icu::UMutex *ccLock() {
69 static icu::UMutex *m = STATIC_NEW(icu::UMutex);
70 return m;
71}
374ca955
A
72
73U_CDECL_BEGIN
74static UBool calendar_astro_cleanup(void) {
374ca955
A
75 return TRUE;
76}
77U_CDECL_END
78
79U_NAMESPACE_BEGIN
80
81/**
82 * The number of standard hours in one sidereal day.
83 * Approximately 24.93.
84 * @internal
85 * @deprecated ICU 2.4. This class may be removed or modified.
86 */
87#define SIDEREAL_DAY (23.93446960027)
88
89/**
90 * The number of sidereal hours in one mean solar day.
91 * Approximately 24.07.
92 * @internal
93 * @deprecated ICU 2.4. This class may be removed or modified.
94 */
95#define SOLAR_DAY (24.065709816)
96
97/**
98 * The average number of solar days from one new moon to the next. This is the time
99 * it takes for the moon to return the same ecliptic longitude as the sun.
100 * It is longer than the sidereal month because the sun's longitude increases
101 * during the year due to the revolution of the earth around the sun.
102 * Approximately 29.53.
103 *
104 * @see #SIDEREAL_MONTH
105 * @internal
106 * @deprecated ICU 2.4. This class may be removed or modified.
107 */
108const double CalendarAstronomer::SYNODIC_MONTH = 29.530588853;
109
110/**
111 * The average number of days it takes
112 * for the moon to return to the same ecliptic longitude relative to the
113 * stellar background. This is referred to as the sidereal month.
114 * It is shorter than the synodic month due to
115 * the revolution of the earth around the sun.
116 * Approximately 27.32.
117 *
118 * @see #SYNODIC_MONTH
119 * @internal
120 * @deprecated ICU 2.4. This class may be removed or modified.
121 */
122#define SIDEREAL_MONTH 27.32166
123
124/**
125 * The average number number of days between successive vernal equinoxes.
126 * Due to the precession of the earth's
127 * axis, this is not precisely the same as the sidereal year.
128 * Approximately 365.24
129 *
130 * @see #SIDEREAL_YEAR
131 * @internal
132 * @deprecated ICU 2.4. This class may be removed or modified.
133 */
134#define TROPICAL_YEAR 365.242191
135
136/**
137 * The average number of days it takes
138 * for the sun to return to the same position against the fixed stellar
139 * background. This is the duration of one orbit of the earth about the sun
140 * as it would appear to an outside observer.
141 * Due to the precession of the earth's
142 * axis, this is not precisely the same as the tropical year.
143 * Approximately 365.25.
144 *
145 * @see #TROPICAL_YEAR
146 * @internal
147 * @deprecated ICU 2.4. This class may be removed or modified.
148 */
149#define SIDEREAL_YEAR 365.25636
150
151//-------------------------------------------------------------------------
152// Time-related constants
153//-------------------------------------------------------------------------
154
155/**
156 * The number of milliseconds in one second.
157 * @internal
158 * @deprecated ICU 2.4. This class may be removed or modified.
159 */
160#define SECOND_MS U_MILLIS_PER_SECOND
161
162/**
163 * The number of milliseconds in one minute.
164 * @internal
165 * @deprecated ICU 2.4. This class may be removed or modified.
166 */
167#define MINUTE_MS U_MILLIS_PER_MINUTE
168
169/**
170 * The number of milliseconds in one hour.
171 * @internal
172 * @deprecated ICU 2.4. This class may be removed or modified.
173 */
174#define HOUR_MS U_MILLIS_PER_HOUR
175
176/**
177 * The number of milliseconds in one day.
178 * @internal
179 * @deprecated ICU 2.4. This class may be removed or modified.
180 */
181#define DAY_MS U_MILLIS_PER_DAY
182
183/**
184 * The start of the julian day numbering scheme used by astronomers, which
185 * is 1/1/4713 BC (Julian), 12:00 GMT. This is given as the number of milliseconds
186 * since 1/1/1970 AD (Gregorian), a negative number.
187 * Note that julian day numbers and
188 * the Julian calendar are <em>not</em> the same thing. Also note that
189 * julian days start at <em>noon</em>, not midnight.
190 * @internal
191 * @deprecated ICU 2.4. This class may be removed or modified.
192 */
193#define JULIAN_EPOCH_MS -210866760000000.0
194
195
196/**
197 * Milliseconds value for 0.0 January 2000 AD.
198 */
199#define EPOCH_2000_MS 946598400000.0
200
201//-------------------------------------------------------------------------
202// Assorted private data used for conversions
203//-------------------------------------------------------------------------
204
205// My own copies of these so compilers are more likely to optimize them away
206const double CalendarAstronomer::PI = 3.14159265358979323846;
207
208#define CalendarAstronomer_PI2 (CalendarAstronomer::PI*2.0)
209#define RAD_HOUR ( 12 / CalendarAstronomer::PI ) // radians -> hours
210#define DEG_RAD ( CalendarAstronomer::PI / 180 ) // degrees -> radians
211#define RAD_DEG ( 180 / CalendarAstronomer::PI ) // radians -> degrees
212
46f4442e
A
213/***
214 * Given 'value', add or subtract 'range' until 0 <= 'value' < range.
215 * The modulus operator.
216 */
217inline static double normalize(double value, double range) {
729e4ab9 218 return value - range * ClockMath::floorDivide(value, range);
46f4442e
A
219}
220
221/**
222 * Normalize an angle so that it's in the range 0 - 2pi.
223 * For positive angles this is just (angle % 2pi), but the Java
224 * mod operator doesn't work that way for negative numbers....
225 */
226inline static double norm2PI(double angle) {
227 return normalize(angle, CalendarAstronomer::PI * 2.0);
228}
229
230/**
231 * Normalize an angle into the range -PI - PI
232 */
233inline static double normPI(double angle) {
234 return normalize(angle + CalendarAstronomer::PI, CalendarAstronomer::PI * 2.0) - CalendarAstronomer::PI;
235}
236
374ca955
A
237//-------------------------------------------------------------------------
238// Constructors
239//-------------------------------------------------------------------------
240
241/**
242 * Construct a new <code>CalendarAstronomer</code> object that is initialized to
243 * the current date and time.
244 * @internal
245 * @deprecated ICU 2.4. This class may be removed or modified.
246 */
247CalendarAstronomer::CalendarAstronomer():
248 fTime(Calendar::getNow()), fLongitude(0.0), fLatitude(0.0), fGmtOffset(0.0), moonPosition(0,0), moonPositionSet(FALSE) {
249 clearCache();
250}
251
252/**
253 * Construct a new <code>CalendarAstronomer</code> object that is initialized to
254 * the specified date and time.
255 * @internal
256 * @deprecated ICU 2.4. This class may be removed or modified.
257 */
258CalendarAstronomer::CalendarAstronomer(UDate d): fTime(d), fLongitude(0.0), fLatitude(0.0), fGmtOffset(0.0), moonPosition(0,0), moonPositionSet(FALSE) {
259 clearCache();
260}
261
262/**
263 * Construct a new <code>CalendarAstronomer</code> object with the given
264 * latitude and longitude. The object's time is set to the current
265 * date and time.
266 * <p>
267 * @param longitude The desired longitude, in <em>degrees</em> east of
268 * the Greenwich meridian.
269 *
270 * @param latitude The desired latitude, in <em>degrees</em>. Positive
271 * values signify North, negative South.
272 *
273 * @see java.util.Date#getTime()
274 * @internal
275 * @deprecated ICU 2.4. This class may be removed or modified.
276 */
277CalendarAstronomer::CalendarAstronomer(double longitude, double latitude) :
278 fTime(Calendar::getNow()), moonPosition(0,0), moonPositionSet(FALSE) {
279 fLongitude = normPI(longitude * (double)DEG_RAD);
280 fLatitude = normPI(latitude * (double)DEG_RAD);
281 fGmtOffset = (double)(fLongitude * 24. * (double)HOUR_MS / (double)CalendarAstronomer_PI2);
282 clearCache();
283}
284
285CalendarAstronomer::~CalendarAstronomer()
286{
287}
288
289//-------------------------------------------------------------------------
290// Time and date getters and setters
291//-------------------------------------------------------------------------
292
293/**
294 * Set the current date and time of this <code>CalendarAstronomer</code> object. All
295 * astronomical calculations are performed based on this time setting.
296 *
297 * @param aTime the date and time, expressed as the number of milliseconds since
298 * 1/1/1970 0:00 GMT (Gregorian).
299 *
300 * @see #setDate
301 * @see #getTime
302 * @internal
303 * @deprecated ICU 2.4. This class may be removed or modified.
304 */
305void CalendarAstronomer::setTime(UDate aTime) {
46f4442e
A
306 fTime = aTime;
307 U_DEBUG_ASTRO_MSG(("setTime(%.1lf, %sL)\n", aTime, debug_astro_date(aTime+fGmtOffset)));
308 clearCache();
374ca955
A
309}
310
311/**
312 * Set the current date and time of this <code>CalendarAstronomer</code> object. All
313 * astronomical calculations are performed based on this time setting.
314 *
315 * @param jdn the desired time, expressed as a "julian day number",
316 * which is the number of elapsed days since
317 * 1/1/4713 BC (Julian), 12:00 GMT. Note that julian day
318 * numbers start at <em>noon</em>. To get the jdn for
319 * the corresponding midnight, subtract 0.5.
320 *
321 * @see #getJulianDay
322 * @see #JULIAN_EPOCH_MS
323 * @internal
324 * @deprecated ICU 2.4. This class may be removed or modified.
325 */
326void CalendarAstronomer::setJulianDay(double jdn) {
46f4442e
A
327 fTime = (double)(jdn * DAY_MS) + JULIAN_EPOCH_MS;
328 clearCache();
329 julianDay = jdn;
374ca955
A
330}
331
332/**
333 * Get the current time of this <code>CalendarAstronomer</code> object,
334 * represented as the number of milliseconds since
335 * 1/1/1970 AD 0:00 GMT (Gregorian).
336 *
337 * @see #setTime
338 * @see #getDate
339 * @internal
340 * @deprecated ICU 2.4. This class may be removed or modified.
341 */
342UDate CalendarAstronomer::getTime() {
46f4442e 343 return fTime;
374ca955
A
344}
345
346/**
347 * Get the current time of this <code>CalendarAstronomer</code> object,
348 * expressed as a "julian day number", which is the number of elapsed
349 * days since 1/1/4713 BC (Julian), 12:00 GMT.
350 *
351 * @see #setJulianDay
352 * @see #JULIAN_EPOCH_MS
353 * @internal
354 * @deprecated ICU 2.4. This class may be removed or modified.
355 */
356double CalendarAstronomer::getJulianDay() {
46f4442e
A
357 if (isINVALID(julianDay)) {
358 julianDay = (fTime - (double)JULIAN_EPOCH_MS) / (double)DAY_MS;
359 }
360 return julianDay;
374ca955
A
361}
362
363/**
364 * Return this object's time expressed in julian centuries:
365 * the number of centuries after 1/1/1900 AD, 12:00 GMT
366 *
367 * @see #getJulianDay
368 * @internal
369 * @deprecated ICU 2.4. This class may be removed or modified.
370 */
371double CalendarAstronomer::getJulianCentury() {
46f4442e
A
372 if (isINVALID(julianCentury)) {
373 julianCentury = (getJulianDay() - 2415020.0) / 36525.0;
374 }
375 return julianCentury;
374ca955
A
376}
377
378/**
379 * Returns the current Greenwich sidereal time, measured in hours
380 * @internal
381 * @deprecated ICU 2.4. This class may be removed or modified.
382 */
383double CalendarAstronomer::getGreenwichSidereal() {
46f4442e 384 if (isINVALID(siderealTime)) {
57a6839d 385 // See page 86 of "Practical Astronomy with your Calculator",
46f4442e 386 // by Peter Duffet-Smith, for details on the algorithm.
374ca955 387
46f4442e 388 double UT = normalize(fTime/(double)HOUR_MS, 24.);
374ca955 389
46f4442e
A
390 siderealTime = normalize(getSiderealOffset() + UT*1.002737909, 24.);
391 }
392 return siderealTime;
374ca955
A
393}
394
395double CalendarAstronomer::getSiderealOffset() {
46f4442e
A
396 if (isINVALID(siderealT0)) {
397 double JD = uprv_floor(getJulianDay() - 0.5) + 0.5;
398 double S = JD - 2451545.0;
399 double T = S / 36525.0;
400 siderealT0 = normalize(6.697374558 + 2400.051336*T + 0.000025862*T*T, 24);
401 }
402 return siderealT0;
374ca955
A
403}
404
405/**
406 * Returns the current local sidereal time, measured in hours
407 * @internal
408 * @deprecated ICU 2.4. This class may be removed or modified.
409 */
410double CalendarAstronomer::getLocalSidereal() {
46f4442e 411 return normalize(getGreenwichSidereal() + (fGmtOffset/(double)HOUR_MS), 24.);
374ca955
A
412}
413
414/**
415 * Converts local sidereal time to Universal Time.
416 *
417 * @param lst The Local Sidereal Time, in hours since sidereal midnight
418 * on this object's current date.
419 *
420 * @return The corresponding Universal Time, in milliseconds since
421 * 1 Jan 1970, GMT.
422 */
423double CalendarAstronomer::lstToUT(double lst) {
46f4442e
A
424 // Convert to local mean time
425 double lt = normalize((lst - getSiderealOffset()) * 0.9972695663, 24);
374ca955 426
46f4442e 427 // Then find local midnight on this day
729e4ab9 428 double base = (DAY_MS * ClockMath::floorDivide(fTime + fGmtOffset,(double)DAY_MS)) - fGmtOffset;
374ca955 429
46f4442e
A
430 //out(" lt =" + lt + " hours");
431 //out(" base=" + new Date(base));
374ca955 432
46f4442e 433 return base + (long)(lt * HOUR_MS);
374ca955
A
434}
435
436
437//-------------------------------------------------------------------------
438// Coordinate transformations, all based on the current time of this object
439//-------------------------------------------------------------------------
440
441/**
442 * Convert from ecliptic to equatorial coordinates.
443 *
444 * @param ecliptic A point in the sky in ecliptic coordinates.
445 * @return The corresponding point in equatorial coordinates.
446 * @internal
447 * @deprecated ICU 2.4. This class may be removed or modified.
448 */
449CalendarAstronomer::Equatorial& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial& result, const CalendarAstronomer::Ecliptic& ecliptic)
450{
46f4442e 451 return eclipticToEquatorial(result, ecliptic.longitude, ecliptic.latitude);
374ca955
A
452}
453
454/**
455 * Convert from ecliptic to equatorial coordinates.
456 *
457 * @param eclipLong The ecliptic longitude
458 * @param eclipLat The ecliptic latitude
459 *
460 * @return The corresponding point in equatorial coordinates.
461 * @internal
462 * @deprecated ICU 2.4. This class may be removed or modified.
463 */
464CalendarAstronomer::Equatorial& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial& result, double eclipLong, double eclipLat)
465{
57a6839d 466 // See page 42 of "Practical Astronomy with your Calculator",
46f4442e 467 // by Peter Duffet-Smith, for details on the algorithm.
374ca955 468
46f4442e
A
469 double obliq = eclipticObliquity();
470 double sinE = ::sin(obliq);
471 double cosE = cos(obliq);
374ca955 472
46f4442e
A
473 double sinL = ::sin(eclipLong);
474 double cosL = cos(eclipLong);
374ca955 475
46f4442e
A
476 double sinB = ::sin(eclipLat);
477 double cosB = cos(eclipLat);
478 double tanB = tan(eclipLat);
374ca955 479
46f4442e
A
480 result.set(atan2(sinL*cosE - tanB*sinE, cosL),
481 asin(sinB*cosE + cosB*sinE*sinL) );
482 return result;
374ca955
A
483}
484
485/**
486 * Convert from ecliptic longitude to equatorial coordinates.
487 *
488 * @param eclipLong The ecliptic longitude
489 *
490 * @return The corresponding point in equatorial coordinates.
491 * @internal
492 * @deprecated ICU 2.4. This class may be removed or modified.
493 */
494CalendarAstronomer::Equatorial& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial& result, double eclipLong)
495{
46f4442e 496 return eclipticToEquatorial(result, eclipLong, 0); // TODO: optimize
374ca955
A
497}
498
499/**
500 * @internal
501 * @deprecated ICU 2.4. This class may be removed or modified.
502 */
503CalendarAstronomer::Horizon& CalendarAstronomer::eclipticToHorizon(CalendarAstronomer::Horizon& result, double eclipLong)
504{
46f4442e
A
505 Equatorial equatorial;
506 eclipticToEquatorial(equatorial, eclipLong);
374ca955 507
46f4442e 508 double H = getLocalSidereal()*CalendarAstronomer::PI/12 - equatorial.ascension; // Hour-angle
374ca955 509
46f4442e
A
510 double sinH = ::sin(H);
511 double cosH = cos(H);
512 double sinD = ::sin(equatorial.declination);
513 double cosD = cos(equatorial.declination);
514 double sinL = ::sin(fLatitude);
515 double cosL = cos(fLatitude);
374ca955 516
46f4442e
A
517 double altitude = asin(sinD*sinL + cosD*cosL*cosH);
518 double azimuth = atan2(-cosD*cosL*sinH, sinD - sinL * ::sin(altitude));
374ca955 519
46f4442e
A
520 result.set(azimuth, altitude);
521 return result;
374ca955
A
522}
523
524
525//-------------------------------------------------------------------------
526// The Sun
527//-------------------------------------------------------------------------
528
529//
530// Parameters of the Sun's orbit as of the epoch Jan 0.0 1990
531// Angles are in radians (after multiplying by CalendarAstronomer::PI/180)
532//
533#define JD_EPOCH 2447891.5 // Julian day of epoch
534
535#define SUN_ETA_G (279.403303 * CalendarAstronomer::PI/180) // Ecliptic longitude at epoch
536#define SUN_OMEGA_G (282.768422 * CalendarAstronomer::PI/180) // Ecliptic longitude of perigee
537#define SUN_E 0.016713 // Eccentricity of orbit
538//double sunR0 1.495585e8 // Semi-major axis in KM
539//double sunTheta0 (0.533128 * CalendarAstronomer::PI/180) // Angular diameter at R0
540
57a6839d
A
541// winter solstice moon date/times 1900-2100 (in UTC)
542// These are in UDate/10000.0 (i.e. in units of 10 seconds) to fit into 32 bits.
543// sources from e.g.
544// http://www.timeanddate.com/calendar/seasons.html?year=1900&n=0
545// http://astropixels.com/ephemeris/soleq2001.html
546// These 2 tables are just 808 bytes each but but greatly improve both the
547// accuracy (and speed for one) of the relevant methods for the relevant time range.
548// For getSunTime:
549// before fix, errors of up to +73 / -101 min or more; after, errors always less than 1 min.
550// about 17 times faster with the fix.
551// For getSunLongitude:
552// before fix, only accurate to about 0.07 degree; this was enough so Chinese calendar
553// calculations were off by a month in some cases.
554// after fix, about 100 times more accurate.
555// speed is about the same.
556static const int32_t winterSolsticeDates[] = {
557// millis/10K date
558 -220984944, // 1899 Dec 22, 00:56
559 -217829274, // 1900 Dec 22, 06:41
560 -214673538, // 1901 Dec 22, 12:37
561 -211517790, // 1902 Dec 22, 18:35
562 -208362120, // 1903 Dec 23, 00:20
563 -205206396, // 1904 Dec 22, 06:14
564 -202050696, // 1905 Dec 22, 12:04
565 -198895002, // 1906 Dec 22, 17:53
566 -195739254, // 1907 Dec 22, 23:51
567 -192583602, // 1908 Dec 22, 05:33
568 -189427920, // 1909 Dec 22, 11:20
569 -186272208, // 1910 Dec 22, 17:12
570 -183116562, // 1911 Dec 22, 22:53
571 -179960850, // 1912 Dec 22, 04:45
572 -176805150, // 1913 Dec 22, 10:35
573 -173649468, // 1914 Dec 22, 16:22
574 -170493744, // 1915 Dec 22, 22:16
575 -167338086, // 1916 Dec 22, 03:59
576 -164182404, // 1917 Dec 22, 09:46
577 -161026674, // 1918 Dec 22, 15:41
578 -157870998, // 1919 Dec 22, 21:27
579 -154715298, // 1920 Dec 22, 03:17
580 -151559592, // 1921 Dec 22, 09:08
581 -148403898, // 1922 Dec 22, 14:57
582 -145248162, // 1923 Dec 22, 20:53
583 -142092450, // 1924 Dec 22, 02:45
584 -138936738, // 1925 Dec 22, 08:37
585 -135781002, // 1926 Dec 22, 14:33
586 -132625332, // 1927 Dec 22, 20:18
587 -129469656, // 1928 Dec 22, 02:04
588 -126313962, // 1929 Dec 22, 07:53
589 -123158286, // 1930 Dec 22, 13:39
590 -120002586, // 1931 Dec 22, 19:29
591 -116846916, // 1932 Dec 22, 01:14
592 -113691252, // 1933 Dec 22, 06:58
593 -110535546, // 1934 Dec 22, 12:49
594 -107379858, // 1935 Dec 22, 18:37
595 -104224158, // 1936 Dec 22, 00:27
596 -101068428, // 1937 Dec 22, 06:22
597 -97912722, // 1938 Dec 22, 12:13
598 -94757004, // 1939 Dec 22, 18:06
599 -91601310, // 1940 Dec 21, 23:55
600 -88445616, // 1941 Dec 22, 05:44
601 -85289886, // 1942 Dec 22, 11:39
602 -82134186, // 1943 Dec 22, 17:29
603 -78978510, // 1944 Dec 21, 23:15
604 -75822822, // 1945 Dec 22, 05:03
605 -72667122, // 1946 Dec 22, 10:53
606 -69511422, // 1947 Dec 22, 16:43
607 -66355722, // 1948 Dec 21, 22:33
608 -63200022, // 1949 Dec 22, 04:23
609 -60044322, // 1950 Dec 22, 10:13
610 -56888640, // 1951 Dec 22, 16:00
611 -53732982, // 1952 Dec 21, 21:43
612 -50577294, // 1953 Dec 22, 03:31
613 -47421576, // 1954 Dec 22, 09:24
614 -44265894, // 1955 Dec 22, 15:11
615 -41110200, // 1956 Dec 21, 21:00
616 -37954506, // 1957 Dec 22, 02:49
617 -34798800, // 1958 Dec 22, 08:40
618 -31643076, // 1959 Dec 22, 14:34
619 -28487364, // 1960 Dec 21, 20:26
620 -25331646, // 1961 Dec 22, 02:19
621 -22175910, // 1962 Dec 22, 08:15
622 -19020228, // 1963 Dec 22, 14:02
623 -15864546, // 1964 Dec 21, 19:49
624 -12708840, // 1965 Dec 22, 01:40
625 -9553152, // 1966 Dec 22, 07:28
626 -6397464, // 1967 Dec 22, 13:16
627 -3241800, // 1968 Dec 21, 19:00
628 -86136, // 1969 Dec 22, 00:44
629 3069576, // 1970 Dec 22, 06:36
630 6225264, // 1971 Dec 22, 12:24
631 9380958, // 1972 Dec 21, 18:13
632 12536688, // 1973 Dec 22, 00:08
633 15692376, // 1974 Dec 22, 05:56
634 18848070, // 1975 Dec 22, 11:45
635 22003770, // 1976 Dec 21, 17:35
636 25159458, // 1977 Dec 21, 23:23
637 28315206, // 1978 Dec 22, 05:21
638 31470900, // 1979 Dec 22, 11:10
639 34626576, // 1980 Dec 21, 16:56
640 37782306, // 1981 Dec 21, 22:51
641 40937988, // 1982 Dec 22, 04:38
642 44093700, // 1983 Dec 22, 10:30
643 47249418, // 1984 Dec 21, 16:23
644 50405088, // 1985 Dec 21, 22:08
645 53560812, // 1986 Dec 22, 04:02
646 56716476, // 1987 Dec 22, 09:46
647 59872128, // 1988 Dec 21, 15:28
648 63027852, // 1989 Dec 21, 21:22
649 66183522, // 1990 Dec 22, 03:07
650 69339198, // 1991 Dec 22, 08:53
651 72494898, // 1992 Dec 21, 14:43
652 75650556, // 1993 Dec 21, 20:26
653 78806298, // 1994 Dec 22, 02:23
654 81962022, // 1995 Dec 22, 08:17
655 85117716, // 1996 Dec 21, 14:06
656 88273482, // 1997 Dec 21, 20:07
657 91429176, // 1998 Dec 22, 01:56
658 94584864, // 1999 Dec 22, 07:44
659 97740588, // 2000 Dec 21, 13:38
660 100896246, // 2001 Dec 21, 19:21
661 104051964, // 2002 Dec 22, 01:14
662 107207664, // 2003 Dec 22, 07:04
663 110363292, // 2004 Dec 21, 12:42
664 113519010, // 2005 Dec 21, 18:35
665 116674692, // 2006 Dec 22, 00:22
666 119830362, // 2007 Dec 22, 06:07
667 122986104, // 2008 Dec 21, 12:04
668 126141762, // 2009 Dec 21, 17:47
669 129297468, // 2010 Dec 21, 23:38
670 132453180, // 2011 Dec 22, 05:30
671 135608832, // 2012 Dec 21, 11:12
672 138764586, // 2013 Dec 21, 17:11
673 141920298, // 2014 Dec 21, 23:03
674 145075968, // 2015 Dec 22, 04:48
675 148231704, // 2016 Dec 21, 10:44
676 151387368, // 2017 Dec 21, 16:28
677 154543092, // 2018 Dec 21, 22:22
678 157698834, // 2019 Dec 22, 04:19
679 160854492, // 2020 Dec 21, 10:02
680 164010234, // 2021 Dec 21, 15:59
681 167165928, // 2022 Dec 21, 21:48
682 170321562, // 2023 Dec 22, 03:27
683 173477280, // 2024 Dec 21, 09:20
684 176632938, // 2025 Dec 21, 15:03
685 179788620, // 2026 Dec 21, 20:50
686 182944332, // 2027 Dec 22, 02:42
687 186099960, // 2028 Dec 21, 08:20
688 189255684, // 2029 Dec 21, 14:14
689 192411414, // 2030 Dec 21, 20:09
690 195567090, // 2031 Dec 22, 01:55
691 198722856, // 2032 Dec 21, 07:56
692 201878550, // 2033 Dec 21, 13:45
693 205034244, // 2034 Dec 21, 19:34
694 208189986, // 2035 Dec 22, 01:31
695 211345638, // 2036 Dec 21, 07:13
696 214501362, // 2037 Dec 21, 13:07
697 217657092, // 2038 Dec 21, 19:02
698 220812720, // 2039 Dec 22, 00:40
699 223968438, // 2040 Dec 21, 06:33
700 227124108, // 2041 Dec 21, 12:18
701 230279784, // 2042 Dec 21, 18:04
702 233435526, // 2043 Dec 22, 00:01
703 236591184, // 2044 Dec 21, 05:44
704 239746890, // 2045 Dec 21, 11:35
705 242902608, // 2046 Dec 21, 17:28
706 246058242, // 2047 Dec 21, 23:07
707 249213972, // 2048 Dec 21, 05:02
708 252369672, // 2049 Dec 21, 10:52
709 255525348, // 2050 Dec 21, 16:38
710 258681078, // 2051 Dec 21, 22:33
711 261836742, // 2052 Dec 21, 04:17
712 264992454, // 2053 Dec 21, 10:09
713 268148214, // 2054 Dec 21, 16:09
714 271303890, // 2055 Dec 21, 21:55
715 274459626, // 2056 Dec 21, 03:51
716 277615332, // 2057 Dec 21, 09:42
717 280770990, // 2058 Dec 21, 15:25
718 283926708, // 2059 Dec 21, 21:18
719 287082366, // 2060 Dec 21, 03:01
720 290238048, // 2061 Dec 21, 08:48
721 293393772, // 2062 Dec 21, 14:42
722 296549406, // 2063 Dec 21, 20:21
723 299705088, // 2064 Dec 21, 02:08
724 302860800, // 2065 Dec 21, 08:00
725 306016470, // 2066 Dec 21, 13:45
726 309172218, // 2067 Dec 21, 19:43
727 312327912, // 2068 Dec 21, 01:32
728 315483612, // 2069 Dec 21, 07:22
729 318639354, // 2070 Dec 21, 13:19
730 321795018, // 2071 Dec 21, 19:03
731 324950736, // 2072 Dec 21, 00:56
732 328106460, // 2073 Dec 21, 06:50
733 331262130, // 2074 Dec 21, 12:35
734 334417842, // 2075 Dec 21, 18:27
735 337573518, // 2076 Dec 21, 00:13
736 340729200, // 2077 Dec 21, 06:00
737 343884942, // 2078 Dec 21, 11:57
738 347040624, // 2079 Dec 21, 17:44
739 350196312, // 2080 Dec 20, 23:32
740 353352012, // 2081 Dec 21, 05:22
741 356507664, // 2082 Dec 21, 11:04
742 359663358, // 2083 Dec 21, 16:53
743 362819046, // 2084 Dec 20, 22:41
744 365974728, // 2085 Dec 21, 04:28
745 369130452, // 2086 Dec 21, 10:22
746 372286128, // 2087 Dec 21, 16:08
747 375441816, // 2088 Dec 20, 21:56
748 378597552, // 2089 Dec 21, 03:52
749 381753258, // 2090 Dec 21, 09:43
750 384908988, // 2091 Dec 21, 15:38
751 388064706, // 2092 Dec 20, 21:31
752 391220400, // 2093 Dec 21, 03:20
753 394376118, // 2094 Dec 21, 09:13
754 397531800, // 2095 Dec 21, 15:00
755 400687476, // 2096 Dec 20, 20:46
756 403843176, // 2097 Dec 21, 02:36
757 406998840, // 2098 Dec 21, 08:20
758 410154504, // 2099 Dec 21, 14:04
759 413310186, // 2100 Dec 21, 19:51
760};
761enum { kWinterSolsticeDatesCount = sizeof(winterSolsticeDates)/sizeof(winterSolsticeDates[0]) };
762
763static const UDate winterSolsticeDatesFirst = 10000.0 * -220984944; // winterSolsticeDates[0];
764static const UDate winterSolsticeDatesLast = 10000.0 * 413310186; // winterSolsticeDates[kWinterSolsticeDatesCount-1];
765static const UDate winterSolsticeDatesRange = 10000.0 * (413310186 + 220984944); // winterSolsticeDatesLast - winterSolsticeDatesFirst;
766
767static const int8_t sunLongitudeAdjustmts[][4] = {
768// adjustments x 100000 for
769// computed solar longitudes
770// (in radians) at times
771// corresponding to actual
772// longitudes (degrees) of
773// 270 0 90 180 for 12 months from
774// --- --- --- --- ------------------
775 { 85, 25, -89, -32 }, // 1899 Dec 22, 00:56
776 { 90, 30, -88, -33 }, // 1900 Dec 22, 06:41
777 { 81, 26, -86, -29 }, // 1901 Dec 22, 12:37
778 { 69, 14, -87, -30 }, // 1902 Dec 22, 18:35
779 { 74, 21, -84, -38 }, // 1903 Dec 23, 00:20
780 { 68, 7, -98, -40 }, // 1904 Dec 22, 06:14
781 { 66, 0, -100, -35 }, // 1905 Dec 22, 12:04
782 { 66, 10, -91, -41 }, // 1906 Dec 22, 17:53
783 { 54, 3, -100, -42 }, // 1907 Dec 22, 23:51
784 { 63, 7, -97, -40 }, // 1908 Dec 22, 05:33
785 { 65, 6, -90, -36 }, // 1909 Dec 22, 11:20
786 { 61, 3, -88, -33 }, // 1910 Dec 22, 17:12
787 { 70, 20, -79, -36 }, // 1911 Dec 22, 22:53
788 { 66, 19, -84, -31 }, // 1912 Dec 22, 04:45
789 { 65, 14, -80, -22 }, // 1913 Dec 22, 10:35
790 { 67, 25, -64, -24 }, // 1914 Dec 22, 16:22
791 { 61, 16, -71, -26 }, // 1915 Dec 22, 22:16
792 { 68, 14, -72, -22 }, // 1916 Dec 22, 03:59
793 { 70, 15, -68, -19 }, // 1917 Dec 22, 09:46
794 { 62, 9, -74, -20 }, // 1918 Dec 22, 15:41
795 { 66, 20, -71, -24 }, // 1919 Dec 22, 21:27
796 { 64, 16, -80, -28 }, // 1920 Dec 22, 03:17
797 { 61, 6, -82, -29 }, // 1921 Dec 22, 09:08
798 { 61, 15, -67, -34 }, // 1922 Dec 22, 14:57
799 { 52, 12, -76, -43 }, // 1923 Dec 22, 20:53
800 { 48, 8, -78, -37 }, // 1924 Dec 22, 02:45
801 { 44, 8, -68, -32 }, // 1925 Dec 22, 08:37
802 { 35, -2, -72, -33 }, // 1926 Dec 22, 14:33
803 { 40, 2, -67, -32 }, // 1927 Dec 22, 20:18
804 { 43, 0, -74, -30 }, // 1928 Dec 22, 02:04
805 { 43, -6, -78, -24 }, // 1929 Dec 22, 07:53
806 { 46, 7, -62, -22 }, // 1930 Dec 22, 13:39
807 { 45, 8, -69, -27 }, // 1931 Dec 22, 19:29
808 { 49, 7, -69, -23 }, // 1932 Dec 22, 01:14
809 { 55, 13, -54, -17 }, // 1933 Dec 22, 06:58
810 { 52, 10, -56, -22 }, // 1934 Dec 22, 12:49
811 { 53, 22, -49, -21 }, // 1935 Dec 22, 18:37
812 { 52, 23, -52, -19 }, // 1936 Dec 22, 00:27
813 { 44, 12, -54, -17 }, // 1937 Dec 22, 06:22
814 { 41, 16, -40, -18 }, // 1938 Dec 22, 12:13
815 { 36, 8, -49, -26 }, // 1939 Dec 22, 18:06
816 { 36, 0, -59, -25 }, // 1940 Dec 21, 23:55
817 { 35, -2, -52, -20 }, // 1941 Dec 22, 05:44
818 { 28, -7, -60, -26 }, // 1942 Dec 22, 11:39
819 { 26, -2, -62, -27 }, // 1943 Dec 22, 17:29
820 { 30, -2, -63, -28 }, // 1944 Dec 21, 23:15
821 { 31, -11, -68, -30 }, // 1945 Dec 22, 05:03
822 { 29, -1, -51, -29 }, // 1946 Dec 22, 10:53
823 { 27, 4, -55, -34 }, // 1947 Dec 22, 16:43
824 { 26, 1, -59, -29 }, // 1948 Dec 21, 22:33
825 { 24, 3, -40, -16 }, // 1949 Dec 22, 04:23
826 { 23, 1, -41, -21 }, // 1950 Dec 22, 10:13
827 { 25, 3, -40, -19 }, // 1951 Dec 22, 16:00
828 { 32, 4, -38, -11 }, // 1952 Dec 21, 21:43
829 { 33, 0, -44, -12 }, // 1953 Dec 22, 03:31
830 { 28, 8, -31, -8 }, // 1954 Dec 22, 09:24
831 { 30, 11, -35, -14 }, // 1955 Dec 22, 15:11
832 { 30, 4, -45, -17 }, // 1956 Dec 21, 21:00
833 { 29, 4, -30, -10 }, // 1957 Dec 22, 02:49
834 { 27, 2, -35, -22 }, // 1958 Dec 22, 08:40
835 { 20, 3, -39, -25 }, // 1959 Dec 22, 14:34
836 { 16, 3, -38, -18 }, // 1960 Dec 21, 20:26
837 { 11, -6, -44, -24 }, // 1961 Dec 22, 02:19
838 { 2, -9, -34, -23 }, // 1962 Dec 22, 08:15
839 { 4, -10, -39, -28 }, // 1963 Dec 22, 14:02
840 { 6, -18, -50, -29 }, // 1964 Dec 21, 19:49
841 { 4, -16, -37, -15 }, // 1965 Dec 22, 01:40
842 { 4, -11, -38, -22 }, // 1966 Dec 22, 07:28
843 { 5, -7, -40, -21 }, // 1967 Dec 22, 13:16
844 { 11, -4, -32, -12 }, // 1968 Dec 21, 19:00
845 { 17, -3, -31, -16 }, // 1969 Dec 22, 00:44
846 { 13, 5, -16, -13 }, // 1970 Dec 22, 06:36
847 { 14, 11, -14, -12 }, // 1971 Dec 22, 12:24
848 { 14, 9, -21, -11 }, // 1972 Dec 21, 18:13
849 { 6, 2, -7, 1 }, // 1973 Dec 22, 00:08
850 { 7, 0, -7, -7 }, // 1974 Dec 22, 05:56
851 { 7, -3, -18, -12 }, // 1975 Dec 22, 11:45
852 { 5, -8, -19, -2 }, // 1976 Dec 21, 17:35
853 { 6, -11, -28, -12 }, // 1977 Dec 21, 23:23
854 { -4, -11, -24, -14 }, // 1978 Dec 22, 05:21
855 { -5, -10, -27, -18 }, // 1979 Dec 22, 11:10
856 { -1, -15, -38, -27 }, // 1980 Dec 21, 16:56
857 { -9, -19, -25, -18 }, // 1981 Dec 21, 22:51
858 { -7, -14, -21, -26 }, // 1982 Dec 22, 04:38
859 { -11, -9, -27, -29 }, // 1983 Dec 22, 10:30
860 { -16, -11, -19, -12 }, // 1984 Dec 21, 16:23
861 { -11, -11, -16, -16 }, // 1985 Dec 21, 22:08
862 { -18, -11, -7, -12 }, // 1986 Dec 22, 04:02
863 { -12, -9, -3, -7 }, // 1987 Dec 22, 09:46
864 { -4, -9, -12, -10 }, // 1988 Dec 21, 15:28
865 { -10, -12, -2, 6 }, // 1989 Dec 21, 21:22
866 { -6, -5, 0, 1 }, // 1990 Dec 22, 03:07
867 { -2, -2, -6, -6 }, // 1991 Dec 22, 08:53
868 { -4, -7, -3, 5 }, // 1992 Dec 21, 14:43
869 { 2, -5, -2, -4 }, // 1993 Dec 21, 20:26
870 { -7, -3, 0, -10 }, // 1994 Dec 22, 02:23
871 { -13, -2, 0, -8 }, // 1995 Dec 22, 08:17
872 { -13, -6, -9, -17 }, // 1996 Dec 21, 14:06
873 { -29, -18, -2, -9 }, // 1997 Dec 21, 20:07
874 { -29, -22, 0, -14 }, // 1998 Dec 22, 01:56
875 { -28, -22, -11, -23 }, // 1999 Dec 22, 07:44
876 { -34, -31, -12, -9 }, // 2000 Dec 21, 13:38
877 { -27, -26, -10, -11 }, // 2001 Dec 21, 19:21
878 { -33, -21, -7, -15 }, // 2002 Dec 22, 01:14
879 { -34, -20, -4, -8 }, // 2003 Dec 22, 07:04
880 { -21, -15, -4, -13 }, // 2004 Dec 21, 12:42
881 { -26, -19, 5, -4 }, // 2005 Dec 21, 18:35
882 { -24, -11, 15, -2 }, // 2006 Dec 22, 00:22
883 { -19, -2, 10, -7 }, // 2007 Dec 22, 06:07
884 { -29, -10, 12, 9 }, // 2008 Dec 21, 12:04
885 { -22, -10, 19, 7 }, // 2009 Dec 21, 17:47
886 { -25, -10, 21, 0 }, // 2010 Dec 21, 23:38
887 { -29, -15, 17, 4 }, // 2011 Dec 22, 05:30
888 { -21, -14, 9, -2 }, // 2012 Dec 21, 11:12
889 { -33, -22, 11, 1 }, // 2013 Dec 21, 17:11
890 { -37, -21, 13, 0 }, // 2014 Dec 21, 23:03
891 { -33, -16, 5, -15 }, // 2015 Dec 22, 04:48
892 { -42, -29, 3, -6 }, // 2016 Dec 21, 10:44
893 { -36, -25, 10, -10 }, // 2017 Dec 21, 16:28
894 { -42, -18, 12, -18 }, // 2018 Dec 21, 22:22
895 { -53, -22, 12, -9 }, // 2019 Dec 22, 04:19
896 { -45, -20, 11, -10 }, // 2020 Dec 21, 10:02
897 { -56, -29, 19, -4 }, // 2021 Dec 21, 15:59
898 { -56, -31, 26, 0 }, // 2022 Dec 21, 21:48
899 { -44, -23, 20, -7 }, // 2023 Dec 22, 03:27
900 { -49, -31, 17, 8 }, // 2024 Dec 21, 09:20
901 { -42, -25, 24, 12 }, // 2025 Dec 21, 15:03
902 { -40, -15, 27, 3 }, // 2026 Dec 21, 20:50
903 { -44, -19, 24, 9 }, // 2027 Dec 22, 02:42
904 { -31, -13, 28, 4 }, // 2028 Dec 21, 08:20
905 { -37, -15, 34, 4 }, // 2029 Dec 21, 14:14
906 { -45, -16, 37, 5 }, // 2030 Dec 21, 20:09
907 { -41, -6, 34, -3 }, // 2031 Dec 22, 01:55
908 { -56, -21, 30, 5 }, // 2032 Dec 21, 07:56
909 { -57, -27, 37, 7 }, // 2033 Dec 21, 13:45
910 { -57, -24, 36, -5 }, // 2034 Dec 21, 19:34
911 { -67, -37, 24, -1 }, // 2035 Dec 22, 01:31
912 { -59, -36, 23, -1 }, // 2036 Dec 21, 07:13
913 { -65, -37, 25, -1 }, // 2037 Dec 21, 13:07
914 { -73, -41, 26, 0 }, // 2038 Dec 21, 19:02
915 { -60, -29, 26, -8 }, // 2039 Dec 22, 00:40
916 { -65, -37, 24, 0 }, // 2040 Dec 21, 06:33
917 { -60, -35, 34, 5 }, // 2041 Dec 21, 12:18
918 { -57, -17, 42, -1 }, // 2042 Dec 21, 18:04
919 { -67, -22, 37, 6 }, // 2043 Dec 22, 00:01
920 { -60, -20, 45, 10 }, // 2044 Dec 21, 05:44
921 { -63, -23, 53, 10 }, // 2045 Dec 21, 11:35
922 { -68, -29, 54, 13 }, // 2046 Dec 21, 17:28
923 { -56, -20, 51, 9 }, // 2047 Dec 21, 23:07
924 { -64, -27, 46, 17 }, // 2048 Dec 21, 05:02
925 { -65, -30, 49, 20 }, // 2049 Dec 21, 10:52
926 { -62, -19, 54, 8 }, // 2050 Dec 21, 16:38
927 { -70, -29, 43, 9 }, // 2051 Dec 21, 22:33
928 { -64, -31, 44, 6 }, // 2052 Dec 21, 04:17
929 { -68, -30, 51, 1 }, // 2053 Dec 21, 10:09
930 { -82, -36, 47, 0 }, // 2054 Dec 21, 16:09
931 { -78, -28, 47, -1 }, // 2055 Dec 21, 21:55
932 { -87, -39, 44, 4 }, // 2056 Dec 21, 03:51
933 { -90, -48, 48, 9 }, // 2057 Dec 21, 09:42
934 { -83, -37, 56, 1 }, // 2058 Dec 21, 15:25
935 { -88, -44, 44, 6 }, // 2059 Dec 21, 21:18
936 { -81, -41, 46, 12 }, // 2060 Dec 21, 03:01
937 { -79, -33, 58, 12 }, // 2061 Dec 21, 08:48
938 { -85, -37, 55, 13 }, // 2062 Dec 21, 14:42
939 { -73, -26, 62, 14 }, // 2063 Dec 21, 20:21
940 { -71, -27, 64, 17 }, // 2064 Dec 21, 02:08
941 { -75, -30, 69, 22 }, // 2065 Dec 21, 08:00
942 { -70, -13, 80, 18 }, // 2066 Dec 21, 13:45
943 { -82, -21, 70, 19 }, // 2067 Dec 21, 19:43
944 { -82, -28, 71, 24 }, // 2068 Dec 21, 01:32
945 { -84, -30, 80, 19 }, // 2069 Dec 21, 07:22
946 { -94, -43, 69, 13 }, // 2070 Dec 21, 13:19
947 { -88, -40, 63, 12 }, // 2071 Dec 21, 19:03
948 { -93, -45, 58, 14 }, // 2072 Dec 21, 00:56
949 { -100, -53, 55, 15 }, // 2073 Dec 21, 06:50
950 { -95, -40, 63, 7 }, // 2074 Dec 21, 12:35
951 { -99, -43, 55, 3 }, // 2075 Dec 21, 18:27
952 { -96, -47, 57, 8 }, // 2076 Dec 21, 00:13
953 { -94, -37, 73, 8 }, // 2077 Dec 21, 06:00
954 { -104, -38, 70, 7 }, // 2078 Dec 21, 11:57
955 { -102, -33, 74, 14 }, // 2079 Dec 21, 17:44
956 { -101, -34, 82, 22 }, // 2080 Dec 20, 23:32
957 { -102, -43, 84, 27 }, // 2081 Dec 21, 05:22
958 { -94, -32, 94, 27 }, // 2082 Dec 21, 11:04
959 { -94, -33, 85, 28 }, // 2083 Dec 21, 16:53
960 { -93, -39, 81, 34 }, // 2084 Dec 20, 22:41
961 { -91, -31, 95, 34 }, // 2085 Dec 21, 04:28
962 { -97, -36, 85, 25 }, // 2086 Dec 21, 10:22
963 { -94, -35, 83, 24 }, // 2087 Dec 21, 16:08
964 { -93, -36, 86, 23 }, // 2088 Dec 20, 21:56
965 { -102, -44, 81, 19 }, // 2089 Dec 21, 03:52
966 { -105, -33, 89, 17 }, // 2090 Dec 21, 09:43
967 { -113, -37, 80, 14 }, // 2091 Dec 21, 15:38
968 { -118, -52, 75, 15 }, // 2092 Dec 20, 21:31
969 { -118, -50, 91, 17 }, // 2093 Dec 21, 03:20
970 { -123, -56, 83, 10 }, // 2094 Dec 21, 09:13
971 { -121, -54, 79, 17 }, // 2095 Dec 21, 15:00
972 { -118, -51, 86, 26 }, // 2096 Dec 20, 20:46
973 { -119, -55, 84, 25 }, // 2097 Dec 21, 02:36
974 { -113, -41, 97, 28 }, // 2098 Dec 21, 08:20
975 { -108, -39, 94, 27 }, // 2099 Dec 21, 14:04
976 { -105, 0, 0, 0 }, // 2100 Dec 21, 19:51
977};
978
979static const int32_t timeDeltaToSprEquin = 768903; // avg delta in millis/10000 from winter solstice to spring equinox, within 1 hr
980static const int32_t timeDeltaToSumSolst = 1570332; // avg delta in millis/10000 from winter solstice to summer solstice, within 2.7 hrs
981static const int32_t timeDeltaToAutEquin = 2379459; // avg delta in millis/10000 from winter solstice to autumn equinox, within 2 hrs
982
374ca955
A
983// The following three methods, which compute the sun parameters
984// given above for an arbitrary epoch (whatever time the object is
985// set to), make only a small difference as compared to using the
986// above constants. E.g., Sunset times might differ by ~12
987// seconds. Furthermore, the eta-g computation is befuddled by
988// Duffet-Smith's incorrect coefficients (p.86). I've corrected
989// the first-order coefficient but the others may be off too - no
990// way of knowing without consulting another source.
991
992// /**
993// * Return the sun's ecliptic longitude at perigee for the current time.
994// * See Duffett-Smith, p. 86.
995// * @return radians
996// */
997// private double getSunOmegaG() {
998// double T = getJulianCentury();
999// return (281.2208444 + (1.719175 + 0.000452778*T)*T) * DEG_RAD;
1000// }
1001
1002// /**
1003// * Return the sun's ecliptic longitude for the current time.
1004// * See Duffett-Smith, p. 86.
1005// * @return radians
1006// */
1007// private double getSunEtaG() {
1008// double T = getJulianCentury();
1009// //return (279.6966778 + (36000.76892 + 0.0003025*T)*T) * DEG_RAD;
1010// //
1011// // The above line is from Duffett-Smith, and yields manifestly wrong
1012// // results. The below constant is derived empirically to match the
1013// // constant he gives for the 1990 EPOCH.
1014// //
1015// return (279.6966778 + (-0.3262541582718024 + 0.0003025*T)*T) * DEG_RAD;
1016// }
1017
1018// /**
1019// * Return the sun's eccentricity of orbit for the current time.
1020// * See Duffett-Smith, p. 86.
1021// * @return double
1022// */
1023// private double getSunE() {
1024// double T = getJulianCentury();
1025// return 0.01675104 - (0.0000418 + 0.000000126*T)*T;
1026// }
1027
46f4442e
A
1028/**
1029 * Find the "true anomaly" (longitude) of an object from
1030 * its mean anomaly and the eccentricity of its orbit. This uses
1031 * an iterative solution to Kepler's equation.
1032 *
1033 * @param meanAnomaly The object's longitude calculated as if it were in
1034 * a regular, circular orbit, measured in radians
1035 * from the point of perigee.
1036 *
1037 * @param eccentricity The eccentricity of the orbit
1038 *
1039 * @return The true anomaly (longitude) measured in radians
1040 */
1041static double trueAnomaly(double meanAnomaly, double eccentricity)
1042{
1043 // First, solve Kepler's equation iteratively
1044 // Duffett-Smith, p.90
1045 double delta;
1046 double E = meanAnomaly;
1047 do {
1048 delta = E - eccentricity * ::sin(E) - meanAnomaly;
1049 E = E - delta / (1 - eccentricity * ::cos(E));
1050 }
1051 while (uprv_fabs(delta) > 1e-5); // epsilon = 1e-5 rad
1052
1053 return 2.0 * ::atan( ::tan(E/2) * ::sqrt( (1+eccentricity)
1054 /(1-eccentricity) ) );
1055}
1056
57a6839d
A
1057
1058/**
1059 * Returns sunLongitude which may be adjusted for correctness
1060 * based on the time, using a table which only has data covering
1061 * gregorian years 1900-2100.
1062 * <p>
1063 * @param theSunLongitude the sunLongitude to be adjusted if necessary
1064 * @param theTime the time for which the sunLongitude is to be adjusted
1065 * @internal
1066 */
1067double CalendarAstronomer::adjustSunLongitude(double &theSunLongitude, UDate theTime)
1068{
1069 // apply piecewise linear corrections in the range 1900-2100
1070 if (theTime >= winterSolsticeDatesFirst && theTime < winterSolsticeDatesLast) {
1071 int32_t offset = (int32_t)(((double)kWinterSolsticeDatesCount)*(theTime - winterSolsticeDatesFirst)/winterSolsticeDatesRange);
1072 const int32_t * winterSolsticeDatesPtr = winterSolsticeDates + offset; // approximate starting position
1073 int32_t curTime = (int32_t)(theTime/10000.0);
1074 while (curTime < *winterSolsticeDatesPtr) {
1075 winterSolsticeDatesPtr--;
1076 }
1077 while (curTime >= *(winterSolsticeDatesPtr+1)) {
1078 winterSolsticeDatesPtr++;
1079 }
1080 // curTime is in the 12-month period beginning with *winterSolsticeDatesPtr
1081 offset = winterSolsticeDatesPtr - winterSolsticeDates;
1082 curTime -= *winterSolsticeDatesPtr;
1083 double factor = 0.0;
1084 int32_t adjustForStart = 0, adjustForEnd = 0;
1085 if (curTime < timeDeltaToSumSolst) {
1086 if (curTime < timeDeltaToSprEquin) {
1087 // curTime from winter solstice to before spring equinox
1088 factor = (double)curTime/(double)timeDeltaToSprEquin;
1089 adjustForStart = sunLongitudeAdjustmts[offset][0];
1090 adjustForEnd = sunLongitudeAdjustmts[offset][1];
1091 } else {
1092 // curTime from spring equinox to before summer solstice
1093 factor = (double)(curTime - timeDeltaToSprEquin)/(double)(timeDeltaToSumSolst - timeDeltaToSprEquin);
1094 adjustForStart = sunLongitudeAdjustmts[offset][1];
1095 adjustForEnd = sunLongitudeAdjustmts[offset][2];
1096 }
1097 } else {
1098 if (curTime < timeDeltaToAutEquin) {
1099 // curTime from summer solstice to before autumn equinox
1100 factor = (double)(curTime - timeDeltaToSumSolst)/(double)(timeDeltaToAutEquin - timeDeltaToSumSolst);
1101 adjustForStart = sunLongitudeAdjustmts[offset][2];
1102 adjustForEnd = sunLongitudeAdjustmts[offset][3];
1103 } else {
1104 // curTime from autumn equinox to before next winter solstice
1105 factor = (double)(curTime - timeDeltaToAutEquin)/(double)(*(winterSolsticeDatesPtr+1) - *winterSolsticeDatesPtr - timeDeltaToAutEquin);
1106 adjustForStart = sunLongitudeAdjustmts[offset][3];
1107 adjustForEnd = sunLongitudeAdjustmts[offset+1][0];
1108 }
1109 }
1110 double adjustmt = ((double)adjustForStart + factor*((double)(adjustForEnd - adjustForStart)))/100000.0;
1111 theSunLongitude += adjustmt;
1112 if (theSunLongitude >= 2*PI) {
1113 theSunLongitude -= 2*PI;
1114 } else if (theSunLongitude < 0) {
1115 theSunLongitude += 2*PI;
1116 }
1117 }
1118 return theSunLongitude;
1119}
1120
1121/**
1122 * The longitude of the sun at the time specified by theTime.
1123 * This does not result in caching of any of the intermediate computations.
1124 * @internal
1125 */
1126double CalendarAstronomer::getSunLongitudeForTime(UDate theTime)
1127{
1128 double jd = (theTime - (double)JULIAN_EPOCH_MS) / (double)DAY_MS;
1129 double theSunLongitude;
1130 double theMeanAnomalySun;
1131
1132 getSunLongitude(jd, theSunLongitude, theMeanAnomalySun);
1133 return CalendarAstronomer::adjustSunLongitude(theSunLongitude, theTime);
1134}
1135
374ca955
A
1136/**
1137 * The longitude of the sun at the time specified by this object.
1138 * The longitude is measured in radians along the ecliptic
1139 * from the "first point of Aries," the point at which the ecliptic
1140 * crosses the earth's equatorial plane at the vernal equinox.
1141 * <p>
1142 * Currently, this method uses an approximation of the two-body Kepler's
1143 * equation for the earth and the sun. It does not take into account the
1144 * perturbations caused by the other planets, the moon, etc.
1145 * @internal
1146 * @deprecated ICU 2.4. This class may be removed or modified.
1147 */
1148double CalendarAstronomer::getSunLongitude()
1149{
57a6839d 1150 // See page 86 of "Practical Astronomy with your Calculator",
46f4442e 1151 // by Peter Duffet-Smith, for details on the algorithm.
374ca955 1152
57a6839d
A
1153 // Currently this is called externally by ChineseCalendar,
1154 // and internally by getMoonPosition and getSunTime.
1155
46f4442e 1156 if (isINVALID(sunLongitude)) {
57a6839d 1157 // this sets instance variables julianDay (from fTime), sunLongitude, meanAnomalySun
46f4442e
A
1158 getSunLongitude(getJulianDay(), sunLongitude, meanAnomalySun);
1159 }
57a6839d
A
1160
1161 // apply piecewise linear corrections in the range 1900-2100,
1162 // update sunLongitude as necessary
1163 return CalendarAstronomer::adjustSunLongitude(sunLongitude, fTime);
374ca955
A
1164}
1165
1166/**
1167 * TODO Make this public when the entire class is package-private.
1168 */
1169/*public*/ void CalendarAstronomer::getSunLongitude(double jDay, double &longitude, double &meanAnomaly)
1170{
57a6839d 1171 // See page 86 of "Practical Astronomy with your Calculator",
46f4442e 1172 // by Peter Duffet-Smith, for details on the algorithm.
374ca955 1173
46f4442e 1174 double day = jDay - JD_EPOCH; // Days since epoch
374ca955 1175
46f4442e
A
1176 // Find the angular distance the sun in a fictitious
1177 // circular orbit has travelled since the epoch.
1178 double epochAngle = norm2PI(CalendarAstronomer_PI2/TROPICAL_YEAR*day);
374ca955 1179
46f4442e
A
1180 // The epoch wasn't at the sun's perigee; find the angular distance
1181 // since perigee, which is called the "mean anomaly"
1182 meanAnomaly = norm2PI(epochAngle + SUN_ETA_G - SUN_OMEGA_G);
374ca955 1183
46f4442e
A
1184 // Now find the "true anomaly", e.g. the real solar longitude
1185 // by solving Kepler's equation for an elliptical orbit
1186 // NOTE: The 3rd ed. of the book lists omega_g and eta_g in different
1187 // equations; omega_g is to be correct.
1188 longitude = norm2PI(trueAnomaly(meanAnomaly, SUN_E) + SUN_OMEGA_G);
374ca955
A
1189}
1190
1191/**
1192 * The position of the sun at this object's current date and time,
1193 * in equatorial coordinates.
1194 * @internal
1195 * @deprecated ICU 2.4. This class may be removed or modified.
1196 */
1197CalendarAstronomer::Equatorial& CalendarAstronomer::getSunPosition(CalendarAstronomer::Equatorial& result) {
46f4442e 1198 return eclipticToEquatorial(result, getSunLongitude(), 0);
374ca955
A
1199}
1200
1201
1202/**
1203 * Constant representing the vernal equinox.
1204 * For use with {@link #getSunTime getSunTime}.
1205 * Note: In this case, "vernal" refers to the northern hemisphere's seasons.
1206 * @internal
1207 * @deprecated ICU 2.4. This class may be removed or modified.
1208 */
73c04bcf 1209/*double CalendarAstronomer::VERNAL_EQUINOX() {
374ca955 1210 return 0;
73c04bcf 1211}*/
374ca955
A
1212
1213/**
1214 * Constant representing the summer solstice.
1215 * For use with {@link #getSunTime getSunTime}.
1216 * Note: In this case, "summer" refers to the northern hemisphere's seasons.
1217 * @internal
1218 * @deprecated ICU 2.4. This class may be removed or modified.
1219 */
1220double CalendarAstronomer::SUMMER_SOLSTICE() {
46f4442e 1221 return (CalendarAstronomer::PI/2);
374ca955
A
1222}
1223
1224/**
1225 * Constant representing the autumnal equinox.
1226 * For use with {@link #getSunTime getSunTime}.
1227 * Note: In this case, "autumn" refers to the northern hemisphere's seasons.
1228 * @internal
1229 * @deprecated ICU 2.4. This class may be removed or modified.
1230 */
73c04bcf 1231/*double CalendarAstronomer::AUTUMN_EQUINOX() {
374ca955 1232 return (CalendarAstronomer::PI);
73c04bcf 1233}*/
374ca955
A
1234
1235/**
1236 * Constant representing the winter solstice.
1237 * For use with {@link #getSunTime getSunTime}.
1238 * Note: In this case, "winter" refers to the northern hemisphere's seasons.
1239 * @internal
1240 * @deprecated ICU 2.4. This class may be removed or modified.
1241 */
46f4442e
A
1242double CalendarAstronomer::WINTER_SOLSTICE() {
1243 return ((CalendarAstronomer::PI*3)/2);
1244}
73c04bcf
A
1245
1246CalendarAstronomer::AngleFunc::~AngleFunc() {}
374ca955
A
1247
1248/**
1249 * Find the next time at which the sun's ecliptic longitude will have
1250 * the desired value.
1251 * @internal
1252 * @deprecated ICU 2.4. This class may be removed or modified.
1253 */
1254class SunTimeAngleFunc : public CalendarAstronomer::AngleFunc {
1255public:
4388f060 1256 virtual ~SunTimeAngleFunc();
46f4442e 1257 virtual double eval(CalendarAstronomer& a) { return a.getSunLongitude(); }
374ca955
A
1258};
1259
4388f060
A
1260SunTimeAngleFunc::~SunTimeAngleFunc() {}
1261
374ca955
A
1262UDate CalendarAstronomer::getSunTime(double desired, UBool next)
1263{
57a6839d
A
1264 // Currently, the only client is ChineseCalendar, which calls
1265 // this with desired == CalendarAstronomer::WINTER_SOLSTICE()
1266 if (desired == CalendarAstronomer::WINTER_SOLSTICE() && fTime >= winterSolsticeDatesFirst && fTime < winterSolsticeDatesLast) {
1267 int32_t offset = (int32_t)(((double)kWinterSolsticeDatesCount)*(fTime - winterSolsticeDatesFirst)/winterSolsticeDatesRange);
1268 const int32_t * winterSolsticeDatesPtr = winterSolsticeDates + offset; // approximate starting position
1269 int32_t curTime = (int32_t)(fTime/10000.0);
1270 while (curTime < *winterSolsticeDatesPtr) {
1271 winterSolsticeDatesPtr--;
1272 }
1273 while (curTime >= *(winterSolsticeDatesPtr+1)) {
1274 winterSolsticeDatesPtr++;
1275 }
1276 if (next) {
1277 winterSolsticeDatesPtr++;
1278 }
1279 return 10000.0 * (UDate)(*winterSolsticeDatesPtr);
1280 }
1281
46f4442e
A
1282 SunTimeAngleFunc func;
1283 return timeOfAngle( func,
1284 desired,
1285 TROPICAL_YEAR,
1286 MINUTE_MS,
1287 next);
374ca955
A
1288}
1289
73c04bcf
A
1290CalendarAstronomer::CoordFunc::~CoordFunc() {}
1291
374ca955
A
1292class RiseSetCoordFunc : public CalendarAstronomer::CoordFunc {
1293public:
4388f060 1294 virtual ~RiseSetCoordFunc();
46f4442e 1295 virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer&a) { a.getSunPosition(result); }
374ca955
A
1296};
1297
4388f060
A
1298RiseSetCoordFunc::~RiseSetCoordFunc() {}
1299
374ca955
A
1300UDate CalendarAstronomer::getSunRiseSet(UBool rise)
1301{
46f4442e 1302 UDate t0 = fTime;
374ca955 1303
46f4442e 1304 // Make a rough guess: 6am or 6pm local time on the current day
729e4ab9 1305 double noon = ClockMath::floorDivide(fTime + fGmtOffset, (double)DAY_MS)*DAY_MS - fGmtOffset + (12*HOUR_MS);
374ca955 1306
46f4442e
A
1307 U_DEBUG_ASTRO_MSG(("Noon=%.2lf, %sL, gmtoff %.2lf\n", noon, debug_astro_date(noon+fGmtOffset), fGmtOffset));
1308 setTime(noon + ((rise ? -6 : 6) * HOUR_MS));
1309 U_DEBUG_ASTRO_MSG(("added %.2lf ms as a guess,\n", ((rise ? -6. : 6.) * HOUR_MS)));
374ca955 1310
46f4442e
A
1311 RiseSetCoordFunc func;
1312 double t = riseOrSet(func,
1313 rise,
1314 .533 * DEG_RAD, // Angular Diameter
1315 34. /60.0 * DEG_RAD, // Refraction correction
1316 MINUTE_MS / 12.); // Desired accuracy
374ca955 1317
46f4442e
A
1318 setTime(t0);
1319 return t;
374ca955
A
1320}
1321
1322// Commented out - currently unused. ICU 2.6, Alan
1323// //-------------------------------------------------------------------------
1324// // Alternate Sun Rise/Set
1325// // See Duffett-Smith p.93
1326// //-------------------------------------------------------------------------
1327//
1328// // This yields worse results (as compared to USNO data) than getSunRiseSet().
1329// /**
1330// * TODO Make this when the entire class is package-private.
1331// */
1332// /*public*/ long getSunRiseSet2(boolean rise) {
1333// // 1. Calculate coordinates of the sun's center for midnight
1334// double jd = uprv_floor(getJulianDay() - 0.5) + 0.5;
1335// double[] sl = getSunLongitude(jd);// double lambda1 = sl[0];
1336// Equatorial pos1 = eclipticToEquatorial(lambda1, 0);
1337//
1338// // 2. Add ... to lambda to get position 24 hours later
1339// double lambda2 = lambda1 + 0.985647*DEG_RAD;
1340// Equatorial pos2 = eclipticToEquatorial(lambda2, 0);
1341//
1342// // 3. Calculate LSTs of rising and setting for these two positions
1343// double tanL = ::tan(fLatitude);
1344// double H = ::acos(-tanL * ::tan(pos1.declination));
1345// double lst1r = (CalendarAstronomer_PI2 + pos1.ascension - H) * 24 / CalendarAstronomer_PI2;
1346// double lst1s = (pos1.ascension + H) * 24 / CalendarAstronomer_PI2;
1347// H = ::acos(-tanL * ::tan(pos2.declination));
1348// double lst2r = (CalendarAstronomer_PI2-H + pos2.ascension ) * 24 / CalendarAstronomer_PI2;
1349// double lst2s = (H + pos2.ascension ) * 24 / CalendarAstronomer_PI2;
1350// if (lst1r > 24) lst1r -= 24;
1351// if (lst1s > 24) lst1s -= 24;
1352// if (lst2r > 24) lst2r -= 24;
1353// if (lst2s > 24) lst2s -= 24;
1354//
1355// // 4. Convert LSTs to GSTs. If GST1 > GST2, add 24 to GST2.
1356// double gst1r = lstToGst(lst1r);
1357// double gst1s = lstToGst(lst1s);
1358// double gst2r = lstToGst(lst2r);
1359// double gst2s = lstToGst(lst2s);
1360// if (gst1r > gst2r) gst2r += 24;
1361// if (gst1s > gst2s) gst2s += 24;
1362//
1363// // 5. Calculate GST at 0h UT of this date
1364// double t00 = utToGst(0);
1365//
1366// // 6. Calculate GST at 0h on the observer's longitude
1367// double offset = ::round(fLongitude*12/PI); // p.95 step 6; he _rounds_ to nearest 15 deg.
1368// double t00p = t00 - offset*1.002737909;
1369// if (t00p < 0) t00p += 24; // do NOT normalize
1370//
1371// // 7. Adjust
1372// if (gst1r < t00p) {
1373// gst1r += 24;
1374// gst2r += 24;
1375// }
1376// if (gst1s < t00p) {
1377// gst1s += 24;
1378// gst2s += 24;
1379// }
1380//
1381// // 8.
1382// double gstr = (24.07*gst1r-t00*(gst2r-gst1r))/(24.07+gst1r-gst2r);
1383// double gsts = (24.07*gst1s-t00*(gst2s-gst1s))/(24.07+gst1s-gst2s);
1384//
1385// // 9. Correct for parallax, refraction, and sun's diameter
1386// double dec = (pos1.declination + pos2.declination) / 2;
1387// double psi = ::acos(sin(fLatitude) / cos(dec));
1388// double x = 0.830725 * DEG_RAD; // parallax+refraction+diameter
1389// double y = ::asin(sin(x) / ::sin(psi)) * RAD_DEG;
1390// double delta_t = 240 * y / cos(dec) / 3600; // hours
1391//
1392// // 10. Add correction to GSTs, subtract from GSTr
1393// gstr -= delta_t;
1394// gsts += delta_t;
1395//
1396// // 11. Convert GST to UT and then to local civil time
1397// double ut = gstToUt(rise ? gstr : gsts);
1398// //System.out.println((rise?"rise=":"set=") + ut + ", delta_t=" + delta_t);
1399// long midnight = DAY_MS * (time / DAY_MS); // Find UT midnight on this day
1400// return midnight + (long) (ut * 3600000);
1401// }
1402
1403// Commented out - currently unused. ICU 2.6, Alan
1404// /**
1405// * Convert local sidereal time to Greenwich sidereal time.
1406// * Section 15. Duffett-Smith p.21
1407// * @param lst in hours (0..24)
1408// * @return GST in hours (0..24)
1409// */
1410// double lstToGst(double lst) {
1411// double delta = fLongitude * 24 / CalendarAstronomer_PI2;
1412// return normalize(lst - delta, 24);
1413// }
1414
1415// Commented out - currently unused. ICU 2.6, Alan
1416// /**
1417// * Convert UT to GST on this date.
1418// * Section 12. Duffett-Smith p.17
1419// * @param ut in hours
1420// * @return GST in hours
1421// */
1422// double utToGst(double ut) {
1423// return normalize(getT0() + ut*1.002737909, 24);
1424// }
1425
1426// Commented out - currently unused. ICU 2.6, Alan
1427// /**
1428// * Convert GST to UT on this date.
1429// * Section 13. Duffett-Smith p.18
1430// * @param gst in hours
1431// * @return UT in hours
1432// */
1433// double gstToUt(double gst) {
1434// return normalize(gst - getT0(), 24) * 0.9972695663;
1435// }
1436
1437// Commented out - currently unused. ICU 2.6, Alan
1438// double getT0() {
1439// // Common computation for UT <=> GST
1440//
1441// // Find JD for 0h UT
1442// double jd = uprv_floor(getJulianDay() - 0.5) + 0.5;
1443//
1444// double s = jd - 2451545.0;
1445// double t = s / 36525.0;
1446// double t0 = 6.697374558 + (2400.051336 + 0.000025862*t)*t;
1447// return t0;
1448// }
1449
1450// Commented out - currently unused. ICU 2.6, Alan
1451// //-------------------------------------------------------------------------
1452// // Alternate Sun Rise/Set
1453// // See sci.astro FAQ
1454// // http://www.faqs.org/faqs/astronomy/faq/part3/section-5.html
1455// //-------------------------------------------------------------------------
1456//
1457// // Note: This method appears to produce inferior accuracy as
1458// // compared to getSunRiseSet().
1459//
1460// /**
1461// * TODO Make this when the entire class is package-private.
1462// */
1463// /*public*/ long getSunRiseSet3(boolean rise) {
1464//
1465// // Compute day number for 0.0 Jan 2000 epoch
1466// double d = (double)(time - EPOCH_2000_MS) / DAY_MS;
1467//
1468// // Now compute the Local Sidereal Time, LST:
1469// //
1470// double LST = 98.9818 + 0.985647352 * d + /*UT*15 + long*/
1471// fLongitude*RAD_DEG;
1472// //
1473// // (east long. positive). Note that LST is here expressed in degrees,
1474// // where 15 degrees corresponds to one hour. Since LST really is an angle,
1475// // it's convenient to use one unit---degrees---throughout.
1476//
1477// // COMPUTING THE SUN'S POSITION
1478// // ----------------------------
1479// //
1480// // To be able to compute the Sun's rise/set times, you need to be able to
1481// // compute the Sun's position at any time. First compute the "day
1482// // number" d as outlined above, for the desired moment. Next compute:
1483// //
1484// double oblecl = 23.4393 - 3.563E-7 * d;
1485// //
1486// double w = 282.9404 + 4.70935E-5 * d;
1487// double M = 356.0470 + 0.9856002585 * d;
1488// double e = 0.016709 - 1.151E-9 * d;
1489// //
1490// // This is the obliquity of the ecliptic, plus some of the elements of
1491// // the Sun's apparent orbit (i.e., really the Earth's orbit): w =
1492// // argument of perihelion, M = mean anomaly, e = eccentricity.
1493// // Semi-major axis is here assumed to be exactly 1.0 (while not strictly
1494// // true, this is still an accurate approximation). Next compute E, the
1495// // eccentric anomaly:
1496// //
1497// double E = M + e*(180/PI) * ::sin(M*DEG_RAD) * ( 1.0 + e*cos(M*DEG_RAD) );
1498// //
1499// // where E and M are in degrees. This is it---no further iterations are
1500// // needed because we know e has a sufficiently small value. Next compute
1501// // the true anomaly, v, and the distance, r:
1502// //
1503// /* r * cos(v) = */ double A = cos(E*DEG_RAD) - e;
1504// /* r * ::sin(v) = */ double B = ::sqrt(1 - e*e) * ::sin(E*DEG_RAD);
1505// //
1506// // and
1507// //
1508// // r = sqrt( A*A + B*B )
1509// double v = ::atan2( B, A )*RAD_DEG;
1510// //
1511// // The Sun's true longitude, slon, can now be computed:
1512// //
1513// double slon = v + w;
1514// //
1515// // Since the Sun is always at the ecliptic (or at least very very close to
1516// // it), we can use simplified formulae to convert slon (the Sun's ecliptic
1517// // longitude) to sRA and sDec (the Sun's RA and Dec):
1518// //
1519// // ::sin(slon) * cos(oblecl)
1520// // tan(sRA) = -------------------------
1521// // cos(slon)
1522// //
1523// // ::sin(sDec) = ::sin(oblecl) * ::sin(slon)
1524// //
1525// // As was the case when computing az, the Azimuth, if possible use an
1526// // atan2() function to compute sRA.
1527//
1528// double sRA = ::atan2(sin(slon*DEG_RAD) * cos(oblecl*DEG_RAD), cos(slon*DEG_RAD))*RAD_DEG;
1529//
1530// double sin_sDec = ::sin(oblecl*DEG_RAD) * ::sin(slon*DEG_RAD);
1531// double sDec = ::asin(sin_sDec)*RAD_DEG;
1532//
1533// // COMPUTING RISE AND SET TIMES
1534// // ----------------------------
1535// //
1536// // To compute when an object rises or sets, you must compute when it
1537// // passes the meridian and the HA of rise/set. Then the rise time is
1538// // the meridian time minus HA for rise/set, and the set time is the
1539// // meridian time plus the HA for rise/set.
1540// //
1541// // To find the meridian time, compute the Local Sidereal Time at 0h local
1542// // time (or 0h UT if you prefer to work in UT) as outlined above---name
1543// // that quantity LST0. The Meridian Time, MT, will now be:
1544// //
1545// // MT = RA - LST0
1546// double MT = normalize(sRA - LST, 360);
1547// //
1548// // where "RA" is the object's Right Ascension (in degrees!). If negative,
1549// // add 360 deg to MT. If the object is the Sun, leave the time as it is,
1550// // but if it's stellar, multiply MT by 365.2422/366.2422, to convert from
1551// // sidereal to solar time. Now, compute HA for rise/set, name that
1552// // quantity HA0:
1553// //
1554// // ::sin(h0) - ::sin(lat) * ::sin(Dec)
1555// // cos(HA0) = ---------------------------------
1556// // cos(lat) * cos(Dec)
1557// //
1558// // where h0 is the altitude selected to represent rise/set. For a purely
1559// // mathematical horizon, set h0 = 0 and simplify to:
1560// //
1561// // cos(HA0) = - tan(lat) * tan(Dec)
1562// //
1563// // If you want to account for refraction on the atmosphere, set h0 = -35/60
1564// // degrees (-35 arc minutes), and if you want to compute the rise/set times
1565// // for the Sun's upper limb, set h0 = -50/60 (-50 arc minutes).
1566// //
1567// double h0 = -50/60 * DEG_RAD;
1568//
1569// double HA0 = ::acos(
1570// (sin(h0) - ::sin(fLatitude) * sin_sDec) /
1571// (cos(fLatitude) * cos(sDec*DEG_RAD)))*RAD_DEG;
1572//
1573// // When HA0 has been computed, leave it as it is for the Sun but multiply
1574// // by 365.2422/366.2422 for stellar objects, to convert from sidereal to
1575// // solar time. Finally compute:
1576// //
1577// // Rise time = MT - HA0
1578// // Set time = MT + HA0
1579// //
1580// // convert the times from degrees to hours by dividing by 15.
1581// //
1582// // If you'd like to check that your calculations are accurate or just
1583// // need a quick result, check the USNO's Sun or Moon Rise/Set Table,
1584// // <URL:http://aa.usno.navy.mil/AA/data/docs/RS_OneYear.html>.
1585//
1586// double result = MT + (rise ? -HA0 : HA0); // in degrees
1587//
1588// // Find UT midnight on this day
1589// long midnight = DAY_MS * (time / DAY_MS);
1590//
1591// return midnight + (long) (result * 3600000 / 15);
1592// }
1593
1594//-------------------------------------------------------------------------
1595// The Moon
1596//-------------------------------------------------------------------------
1597
1598#define moonL0 (318.351648 * CalendarAstronomer::PI/180 ) // Mean long. at epoch
1599#define moonP0 ( 36.340410 * CalendarAstronomer::PI/180 ) // Mean long. of perigee
1600#define moonN0 ( 318.510107 * CalendarAstronomer::PI/180 ) // Mean long. of node
1601#define moonI ( 5.145366 * CalendarAstronomer::PI/180 ) // Inclination of orbit
1602#define moonE ( 0.054900 ) // Eccentricity of orbit
1603
1604// These aren't used right now
1605#define moonA ( 3.84401e5 ) // semi-major axis (km)
1606#define moonT0 ( 0.5181 * CalendarAstronomer::PI/180 ) // Angular size at distance A
1607#define moonPi ( 0.9507 * CalendarAstronomer::PI/180 ) // Parallax at distance A
1608
57a6839d
A
1609// new moon date/times 1900-2100 (in UTC)
1610// These are in UDate/10000.0 (i.e. in units of 10 seconds) to fit into 32 bits.
1611// sources from e.g.
1612// http://eclipse.gsfc.nasa.gov/phase/phases2001.html
1613// http://www.timeanddate.com/calendar/moonphases.html?year=1900&n=0
1614// From the latter: "The lunation number represents the number of times the Moon has
1615// cycled the Earth since January 1923 (based on a series described by Ernest W. Brown
1616// in _Planetary Theory_, 1933). One cycle, or lunation, starts at new moon and lasts
1617// until the next new moon."
1618// The mean synodic month (interval from one new moon to the next) is 29.530588853 days,
1619// but the deviation from the mean is significant and difficult to model. I tried based
1620// on the description in http://individual.utoronto.ca/kalendis/lunar/index.htm
1621// using the product of two sine waves (with periods of 109.65 days and 13.944 days and
1622// different phase shifts and amplitudes) but could not get anywhere near enough accuracy.
1623// Hence these tables. -Peter E
1624// These table are 9965 and 4974 bytes but greatly improve both the
1625// accuracy and speed of the relevant methods for the relevant time range.
1626// For getMoonTime:
1627// before fix, errors of up to +23 min / -18 min for next = true and much more for
1628// next = false; after, errors always less than 1 min).
1629// 40 to 80 times faster with the fix, depending on starting point.
1630// For getMoonAge:
1631// more accurate with the fix (and never returns values >= 2*PI), also more than 11 times faster.
1632static const int32_t newMoonDates[] = {
1633// millis/10K date lunation number
1634 -221149158, // 1899 Dec 3, 00:47 -285
1635 -220893888, // 1900 Jan 1, 13:52 -284
1636 -220639188, // 1900 Jan 31, 01:22 -283
1637 -220385010, // 1900 Mar 1, 11:25 -282
1638 -220131180, // 1900 Mar 30, 20:30 -281
1639 -219877422, // 1900 Apr 29, 05:23 -280
1640 -219623460, // 1900 May 28, 14:50 -279
1641 -219369078, // 1900 Jun 27, 01:27 -278
1642 -219114102, // 1900 Jul 26, 13:43 -277
1643 -218858442, // 1900 Aug 25, 03:53 -276
1644 -218602098, // 1900 Sep 23, 19:57 -275
1645 -218345238, // 1900 Oct 23, 13:27 -274
1646 -218088258, // 1900 Nov 22, 07:17 -273
1647 -217831674, // 1900 Dec 22, 00:01 -272
1648 -217575864, // 1901 Jan 20, 14:36 -271
1649 -217320930, // 1901 Feb 19, 02:45 -270
1650 -217066722, // 1901 Mar 20, 12:53 -269
1651 -216813018, // 1901 Apr 18, 21:37 -268
1652 -216559572, // 1901 May 18, 05:38 -267
1653 -216306162, // 1901 Jun 16, 13:33 -266
1654 -216052500, // 1901 Jul 15, 22:10 -265
1655 -215798238, // 1901 Aug 14, 08:27 -264
1656 -215543046, // 1901 Sep 12, 21:19 -263
1657 -215286768, // 1901 Oct 12, 13:12 -262
1658 -215029590, // 1901 Nov 11, 07:35 -261
1659 -214772076, // 1901 Dec 11, 02:54 -260
1660 -214514910, // 1902 Jan 9, 21:15 -259
1661 -214258554, // 1902 Feb 8, 13:21 -258
1662 -214003140, // 1902 Mar 10, 02:50 -257
1663 -213748620, // 1902 Apr 8, 13:50 -256
1664 -213494850, // 1902 May 7, 22:45 -255
1665 -213241614, // 1902 Jun 6, 06:11 -254
1666 -212988606, // 1902 Jul 5, 12:59 -253
1667 -212735418, // 1902 Aug 3, 20:17 -252
1668 -212481606, // 1902 Sep 2, 05:19 -251
1669 -212226786, // 1902 Oct 1, 17:09 -250
1670 -211970796, // 1902 Oct 31, 08:14 -249
1671 -211713810, // 1902 Nov 30, 02:05 -248
1672 -211456290, // 1902 Dec 29, 21:25 -247
1673 -211198806, // 1903 Jan 28, 16:39 -246
1674 -210941880, // 1903 Feb 27, 10:20 -245
1675 -210685884, // 1903 Mar 29, 01:26 -244
1676 -210430974, // 1903 Apr 27, 13:31 -243
1677 -210177060, // 1903 May 26, 22:50 -242
1678 -209923854, // 1903 Jun 25, 06:11 -241
1679 -209670924, // 1903 Jul 24, 12:46 -240
1680 -209417814, // 1903 Aug 22, 19:51 -239
1681 -209164140, // 1903 Sep 21, 04:30 -238
1682 -208909620, // 1903 Oct 20, 15:30 -237
1683 -208654140, // 1903 Nov 19, 05:10 -236
1684 -208397724, // 1903 Dec 18, 21:26 -235
1685 -208140558, // 1904 Jan 17, 15:47 -234
1686 -207883050, // 1904 Feb 16, 11:05 -233
1687 -207625806, // 1904 Mar 17, 05:39 -232
1688 -207369402, // 1904 Apr 15, 21:53 -231
1689 -207114132, // 1904 May 15, 10:58 -230
1690 -206859900, // 1904 Jun 13, 21:10 -229
1691 -206606358, // 1904 Jul 13, 05:27 -228
1692 -206353092, // 1904 Aug 11, 12:58 -227
1693 -206099742, // 1904 Sep 9, 20:43 -226
1694 -205846050, // 1904 Oct 9, 05:25 -225
1695 -205591818, // 1904 Nov 7, 15:37 -224
1696 -205336884, // 1904 Dec 7, 03:46 -223
1697 -205081098, // 1905 Jan 5, 18:17 -222
1698 -204824484, // 1905 Feb 4, 11:06 -221
1699 -204567366, // 1905 Mar 6, 05:19 -220
1700 -204310296, // 1905 Apr 4, 23:24 -219
1701 -204053820, // 1905 May 4, 15:50 -218
1702 -203798178, // 1905 Jun 3, 05:57 -217
1703 -203543340, // 1905 Jul 2, 17:50 -216
1704 -203289102, // 1905 Aug 1, 04:03 -215
1705 -203035242, // 1905 Aug 30, 13:13 -214
1706 -202781520, // 1905 Sep 28, 22:00 -213
1707 -202527732, // 1905 Oct 28, 06:58 -212
1708 -202273638, // 1905 Nov 26, 16:47 -211
1709 -202019016, // 1905 Dec 26, 04:04 -210
1710 -201763746, // 1906 Jan 24, 17:09 -209
1711 -201507858, // 1906 Feb 23, 07:57 -208
1712 -201251568, // 1906 Mar 24, 23:52 -207
1713 -200995158, // 1906 Apr 23, 16:07 -206
1714 -200738874, // 1906 May 23, 08:01 -205
1715 -200482884, // 1906 Jun 21, 23:06 -204
1716 -200227326, // 1906 Jul 21, 12:59 -203
1717 -199972272, // 1906 Aug 20, 01:28 -202
1718 -199717722, // 1906 Sep 18, 12:33 -201
1719 -199463502, // 1906 Oct 17, 22:43 -200
1720 -199209378, // 1906 Nov 16, 08:37 -199
1721 -198955116, // 1906 Dec 15, 18:54 -198
1722 -198700578, // 1907 Jan 14, 05:57 -197
1723 -198445782, // 1907 Feb 12, 17:43 -196
1724 -198190770, // 1907 Mar 14, 06:05 -195
1725 -197935524, // 1907 Apr 12, 19:06 -194
1726 -197679966, // 1907 May 12, 08:59 -193
1727 -197424060, // 1907 Jun 10, 23:50 -192
1728 -197167938, // 1907 Jul 10, 15:17 -191
1729 -196911858, // 1907 Aug 9, 06:37 -190
1730 -196656096, // 1907 Sep 7, 21:04 -189
1731 -196400754, // 1907 Oct 7, 10:21 -188
1732 -196145766, // 1907 Nov 5, 22:39 -187
1733 -195890982, // 1907 Dec 5, 10:23 -186
1734 -195636336, // 1908 Jan 3, 21:44 -185
1735 -195381864, // 1908 Feb 2, 08:36 -184
1736 -195127578, // 1908 Mar 2, 18:57 -183
1737 -194873388, // 1908 Apr 1, 05:02 -182
1738 -194619042, // 1908 Apr 30, 15:33 -181
1739 -194364276, // 1908 May 30, 03:14 -180
1740 -194108934, // 1908 Jun 28, 16:31 -179
1741 -193853058, // 1908 Jul 28, 07:17 -178
1742 -193596846, // 1908 Aug 26, 22:59 -177
1743 -193340526, // 1908 Sep 25, 14:59 -176
1744 -193084278, // 1908 Oct 25, 06:47 -175
1745 -192828282, // 1908 Nov 23, 21:53 -174
1746 -192572700, // 1908 Dec 23, 11:50 -173
1747 -192317688, // 1909 Jan 22, 00:12 -172
1748 -192063288, // 1909 Feb 20, 10:52 -171
1749 -191809374, // 1909 Mar 21, 20:11 -170
1750 -191555694, // 1909 Apr 20, 04:51 -169
1751 -191301948, // 1909 May 19, 13:42 -168
1752 -191047872, // 1909 Jun 17, 23:28 -167
1753 -190793256, // 1909 Jul 17, 10:44 -166
1754 -190537950, // 1909 Aug 15, 23:55 -165
1755 -190281906, // 1909 Sep 14, 15:09 -164
1756 -190025202, // 1909 Oct 14, 08:13 -163
1757 -189768132, // 1909 Nov 13, 02:18 -162
1758 -189511206, // 1909 Dec 12, 19:59 -161
1759 -189254934, // 1910 Jan 11, 11:51 -160
1760 -188999562, // 1910 Feb 10, 01:13 -159
1761 -188745048, // 1910 Mar 11, 12:12 -158
1762 -188491170, // 1910 Apr 9, 21:25 -157
1763 -188237688, // 1910 May 9, 05:32 -156
1764 -187984344, // 1910 Jun 7, 13:16 -155
1765 -187730880, // 1910 Jul 6, 21:20 -154
1766 -187476984, // 1910 Aug 5, 06:36 -153
1767 -187222290, // 1910 Sep 3, 18:05 -152
1768 -186966528, // 1910 Oct 3, 08:32 -151
1769 -186709704, // 1910 Nov 2, 01:56 -150
1770 -186452214, // 1910 Dec 1, 21:11 -149
1771 -186194754, // 1910 Dec 31, 16:21 -148
1772 -185937930, // 1911 Jan 30, 09:45 -147
1773 -185682054, // 1911 Mar 1, 00:31 -146
1774 -185427132, // 1911 Mar 30, 12:38 -145
1775 -185173050, // 1911 Apr 28, 22:25 -144
1776 -184919616, // 1911 May 28, 06:24 -143
1777 -184666566, // 1911 Jun 26, 13:19 -142
1778 -184413534, // 1911 Jul 25, 20:11 -141
1779 -184160076, // 1911 Aug 24, 04:14 -140
1780 -183905778, // 1911 Sep 22, 14:37 -139
1781 -183650346, // 1911 Oct 22, 04:09 -138
1782 -183393786, // 1911 Nov 20, 20:49 -137
1783 -183136440, // 1911 Dec 20, 15:40 -136
1784 -182878866, // 1912 Jan 19, 11:09 -135
1785 -182621616, // 1912 Feb 18, 05:44 -134
1786 -182365152, // 1912 Mar 18, 22:08 -133
1787 -182109720, // 1912 Apr 17, 11:40 -132
1788 -181855362, // 1912 May 16, 22:13 -131
1789 -181601862, // 1912 Jun 15, 06:23 -130
1790 -181348842, // 1912 Jul 14, 13:13 -129
1791 -181095858, // 1912 Aug 12, 19:57 -128
1792 -180842472, // 1912 Sep 11, 03:48 -127
1793 -180588360, // 1912 Oct 10, 13:40 -126
1794 -180333336, // 1912 Nov 9, 02:04 -125
1795 -180077364, // 1912 Dec 8, 17:06 -124
1796 -179820552, // 1913 Jan 7, 10:28 -123
1797 -179563194, // 1913 Feb 6, 05:21 -122
1798 -179305788, // 1913 Mar 8, 00:22 -121
1799 -179048952, // 1913 Apr 6, 17:48 -120
1800 -178793136, // 1913 May 6, 08:24 -119
1801 -178538418, // 1913 Jun 4, 19:57 -118
1802 -178284564, // 1913 Jul 4, 05:06 -117
1803 -178031172, // 1913 Aug 2, 12:58 -116
1804 -177777858, // 1913 Aug 31, 20:37 -115
1805 -177524304, // 1913 Sep 30, 04:56 -114
1806 -177270306, // 1913 Oct 29, 14:29 -113
1807 -177015714, // 1913 Nov 28, 01:41 -112
1808 -176760372, // 1913 Dec 27, 14:58 -111
1809 -176504196, // 1914 Jan 26, 06:34 -110
1810 -176247348, // 1914 Feb 25, 00:02 -109
1811 -175990266, // 1914 Mar 26, 18:09 -108
1812 -175733514, // 1914 Apr 25, 11:21 -107
1813 -175477476, // 1914 May 25, 02:34 -106
1814 -175222242, // 1914 Jun 23, 15:33 -105
1815 -174967692, // 1914 Jul 23, 02:38 -104
1816 -174713604, // 1914 Aug 21, 12:26 -103
1817 -174459762, // 1914 Sep 19, 21:33 -102
1818 -174205962, // 1914 Oct 19, 06:33 -101
1819 -173951988, // 1914 Nov 17, 16:02 -100
1820 -173697630, // 1914 Dec 17, 02:35 -99
1821 -173442708, // 1915 Jan 15, 14:42 -98
1822 -173187174, // 1915 Feb 14, 04:31 -97
1823 -172931148, // 1915 Mar 15, 19:42 -96
1824 -172674870, // 1915 Apr 14, 11:35 -95
1825 -172418574, // 1915 May 14, 03:31 -94
1826 -172162458, // 1915 Jun 12, 18:57 -93
1827 -171906660, // 1915 Jul 12, 09:30 -92
1828 -171651288, // 1915 Aug 10, 22:52 -91
1829 -171396408, // 1915 Sep 9, 10:52 -90
1830 -171141954, // 1915 Oct 8, 21:41 -89
1831 -170887728, // 1915 Nov 7, 07:52 -88
1832 -170633502, // 1915 Dec 6, 18:03 -87
1833 -170379090, // 1916 Jan 5, 04:45 -86
1834 -170124450, // 1916 Feb 3, 16:05 -85
1835 -169869612, // 1916 Mar 4, 03:58 -84
1836 -169614594, // 1916 Apr 2, 16:21 -83
1837 -169359306, // 1916 May 2, 05:29 -82
1838 -169103658, // 1916 May 31, 19:37 -81
1839 -168847662, // 1916 Jun 30, 10:43 -80
1840 -168591510, // 1916 Jul 30, 02:15 -79
1841 -168335490, // 1916 Aug 28, 17:25 -78
1842 -168079836, // 1916 Sep 27, 07:34 -77
1843 -167824578, // 1916 Oct 26, 20:37 -76
1844 -167569620, // 1916 Nov 25, 08:50 -75
1845 -167314854, // 1916 Dec 24, 20:31 -74
1846 -167060280, // 1917 Jan 23, 07:40 -73
1847 -166805946, // 1917 Feb 21, 18:09 -72
1848 -166551810, // 1917 Mar 23, 04:05 -71
1849 -166297674, // 1917 Apr 21, 14:01 -70
1850 -166043238, // 1917 May 21, 00:47 -69
1851 -165788268, // 1917 Jun 19, 13:02 -68
1852 -165532680, // 1917 Jul 19, 03:00 -67
1853 -165276594, // 1917 Aug 17, 18:21 -66
1854 -165020232, // 1917 Sep 16, 10:28 -65
1855 -164763834, // 1917 Oct 16, 02:41 -64
1856 -164507592, // 1917 Nov 14, 18:28 -63
1857 -164251698, // 1917 Dec 14, 09:17 -62
1858 -163996350, // 1918 Jan 12, 22:35 -61
1859 -163741656, // 1918 Feb 11, 10:04 -60
1860 -163487568, // 1918 Mar 12, 19:52 -59
1861 -163233876, // 1918 Apr 11, 04:34 -58
1862 -162980274, // 1918 May 10, 13:01 -57
1863 -162726462, // 1918 Jun 8, 22:03 -56
1864 -162472188, // 1918 Jul 8, 08:22 -55
1865 -162217266, // 1918 Aug 6, 20:29 -54
1866 -161961576, // 1918 Sep 5, 10:44 -53
1867 -161705130, // 1918 Oct 5, 03:05 -52
1868 -161448114, // 1918 Nov 3, 21:01 -51
1869 -161190966, // 1918 Dec 3, 15:19 -50
1870 -160934256, // 1919 Jan 2, 08:24 -49
1871 -160678398, // 1919 Jan 31, 23:07 -48
1872 -160423494, // 1919 Mar 2, 11:11 -47
1873 -160169370, // 1919 Mar 31, 21:05 -46
1874 -159915780, // 1919 Apr 30, 05:30 -45
1875 -159662448, // 1919 May 29, 13:12 -44
1876 -159409128, // 1919 Jun 27, 20:52 -43
1877 -159155514, // 1919 Jul 27, 05:21 -42
1878 -158901258, // 1919 Aug 25, 15:37 -41
1879 -158646036, // 1919 Sep 24, 04:34 -40
1880 -158389686, // 1919 Oct 23, 20:39 -39
1881 -158132400, // 1919 Nov 22, 15:20 -38
1882 -157874790, // 1919 Dec 22, 10:55 -37
1883 -157617558, // 1920 Jan 21, 05:27 -36
1884 -157361196, // 1920 Feb 19, 21:34 -35
1885 -157105824, // 1920 Mar 20, 10:56 -34
1886 -156851382, // 1920 Apr 18, 21:43 -33
1887 -156597690, // 1920 May 18, 06:25 -32
1888 -156344514, // 1920 Jun 16, 13:41 -31
1889 -156091530, // 1920 Jul 15, 20:25 -30
1890 -155838336, // 1920 Aug 14, 03:44 -29
1891 -155584494, // 1920 Sep 12, 12:51 -28
1892 -155329620, // 1920 Oct 12, 00:50 -27
1893 -155073570, // 1920 Nov 10, 16:05 -26
1894 -154816536, // 1920 Dec 10, 10:04 -25
1895 -154558998, // 1921 Jan 9, 05:27 -24
1896 -154301538, // 1921 Feb 8, 00:37 -23
1897 -154044666, // 1921 Mar 9, 18:09 -22
1898 -153788730, // 1921 Apr 8, 09:05 -21
1899 -153533874, // 1921 May 7, 21:01 -20
1900 -153279990, // 1921 Jun 6, 06:15 -19
1901 -153026784, // 1921 Jul 5, 13:36 -18
1902 -152773818, // 1921 Aug 3, 20:17 -17
1903 -152520642, // 1921 Sep 2, 03:33 -16
1904 -152266884, // 1921 Oct 1, 12:26 -15
1905 -152012292, // 1921 Oct 30, 23:38 -14
1906 -151756770, // 1921 Nov 29, 13:25 -13
1907 -151500366, // 1921 Dec 29, 05:39 -12
1908 -151243272, // 1922 Jan 27, 23:48 -11
1909 -150985878, // 1922 Feb 26, 18:47 -10
1910 -150728742, // 1922 Mar 28, 13:03 -9
1911 -150472416, // 1922 Apr 27, 05:04 -8
1912 -150217176, // 1922 May 26, 18:04 -7
1913 -149962920, // 1922 Jun 25, 04:20 -6
1914 -149709318, // 1922 Jul 24, 12:47 -5
1915 -149455956, // 1922 Aug 22, 20:34 -4
1916 -149202492, // 1922 Sep 21, 04:38 -3
1917 -148948680, // 1922 Oct 20, 13:40 -2
1918 -148694364, // 1922 Nov 19, 00:06 -1
1919 -148439400, // 1922 Dec 18, 12:20 0
1920 -148183674, // 1923 Jan 17, 02:41 1
1921 -147927198, // 1923 Feb 15, 19:07 2
1922 -147670254, // 1923 Mar 17, 12:51 3
1923 -147413352, // 1923 Apr 16, 06:28 4
1924 -147156972, // 1923 May 15, 22:38 5
1925 -146901348, // 1923 Jun 14, 12:42 6
1926 -146646450, // 1923 Jul 14, 00:45 7
1927 -146392098, // 1923 Aug 12, 11:17 8
1928 -146138088, // 1923 Sep 10, 20:52 9
1929 -145884210, // 1923 Oct 10, 06:05 10
1930 -145630278, // 1923 Nov 8, 15:27 11
1931 -145376100, // 1923 Dec 8, 01:30 12
1932 -145121478, // 1924 Jan 6, 12:47 13
1933 -144866292, // 1924 Feb 5, 01:38 14
1934 -144610578, // 1924 Mar 5, 15:57 15
1935 -144354498, // 1924 Apr 4, 07:17 16
1936 -144098280, // 1924 May 3, 23:00 17
1937 -143842116, // 1924 Jun 2, 14:34 18
1938 -143586150, // 1924 Jul 2, 05:35 19
1939 -143330508, // 1924 Jul 31, 19:42 20
1940 -143075298, // 1924 Aug 30, 08:37 21
1941 -142820544, // 1924 Sep 28, 20:16 22
1942 -142566138, // 1924 Oct 28, 06:57 23
1943 -142311864, // 1924 Nov 26, 17:16 24
1944 -142057524, // 1924 Dec 26, 03:46 25
1945 -141803010, // 1925 Jan 24, 14:45 26
1946 -141548328, // 1925 Feb 23, 02:12 27
1947 -141293502, // 1925 Mar 24, 14:03 28
1948 -141038472, // 1925 Apr 23, 02:28 29
1949 -140783112, // 1925 May 22, 15:48 30
1950 -140527338, // 1925 Jun 21, 06:17 31
1951 -140271240, // 1925 Jul 20, 21:40 32
1952 -140015070, // 1925 Aug 19, 13:15 33
1953 -139759122, // 1925 Sep 18, 04:13 34
1954 -139503564, // 1925 Oct 17, 18:06 35
1955 -139248372, // 1925 Nov 16, 06:58 36
1956 -138993450, // 1925 Dec 15, 19:05 37
1957 -138738750, // 1926 Jan 14, 06:35 38
1958 -138484320, // 1926 Feb 12, 17:20 39
1959 -138230160, // 1926 Mar 14, 03:20 40
1960 -137976144, // 1926 Apr 12, 12:56 41
1961 -137721990, // 1926 May 11, 22:55 42
1962 -137467392, // 1926 Jun 10, 10:08 43
1963 -137212164, // 1926 Jul 9, 23:06 44
1964 -136956306, // 1926 Aug 8, 13:49 45
1965 -136700010, // 1926 Sep 7, 05:45 46
1966 -136443522, // 1926 Oct 6, 22:13 47
1967 -136187076, // 1926 Nov 5, 14:34 48
1968 -135930888, // 1926 Dec 5, 06:12 49
1969 -135675192, // 1927 Jan 3, 20:28 50
1970 -135420156, // 1927 Feb 2, 08:54 51
1971 -135165816, // 1927 Mar 3, 19:24 52
1972 -134912016, // 1927 Apr 2, 04:24 53
1973 -134658486, // 1927 May 1, 12:39 54
1974 -134404890, // 1927 May 30, 21:05 55
1975 -134150934, // 1927 Jun 29, 06:31 56
1976 -133896384, // 1927 Jul 28, 17:36 57
1977 -133641090, // 1927 Aug 27, 06:45 58
1978 -133384974, // 1927 Sep 25, 22:11 59
1979 -133128138, // 1927 Oct 25, 15:37 60
1980 -132870906, // 1927 Nov 24, 10:09 61
1981 -132613842, // 1927 Dec 24, 04:13 62
1982 -132357486, // 1928 Jan 22, 20:19 63
1983 -132102114, // 1928 Feb 21, 09:41 64
1984 -131847666, // 1928 Mar 21, 20:29 65
1985 -131593890, // 1928 Apr 20, 05:25 66
1986 -131340516, // 1928 May 19, 13:14 67
1987 -131087268, // 1928 Jun 17, 20:42 68
1988 -130833870, // 1928 Jul 17, 04:35 69
1989 -130579992, // 1928 Aug 15, 13:48 70
1990 -130325280, // 1928 Sep 14, 01:20 71
1991 -130069464, // 1928 Oct 13, 15:56 72
1992 -129812550, // 1928 Nov 12, 09:35 73
1993 -129554964, // 1928 Dec 12, 05:06 74
1994 -129297432, // 1929 Jan 11, 00:28 75
1995 -129040590, // 1929 Feb 9, 17:55 76
1996 -128784738, // 1929 Mar 11, 08:37 77
1997 -128529882, // 1929 Apr 9, 20:33 78
1998 -128275872, // 1929 May 9, 06:08 79
1999 -128022498, // 1929 Jun 7, 13:57 80
2000 -127769478, // 1929 Jul 6, 20:47 81
2001 -127516440, // 1929 Aug 5, 03:40 82
2002 -127262958, // 1929 Sep 3, 11:47 83
2003 -127008606, // 1929 Oct 2, 22:19 84
2004 -126753114, // 1929 Nov 1, 12:01 85
2005 -126496512, // 1929 Dec 1, 04:48 86
2006 -126239148, // 1929 Dec 30, 23:42 87
2007 -125981598, // 1930 Jan 29, 19:07 88
2008 -125724402, // 1930 Feb 28, 13:33 89
2009 -125467998, // 1930 Mar 30, 05:47 90
2010 -125212626, // 1930 Apr 28, 19:09 91
2011 -124958298, // 1930 May 28, 05:37 92
2012 -124704798, // 1930 Jun 26, 13:47 93
2013 -124451748, // 1930 Jul 25, 20:42 94
2014 -124198698, // 1930 Aug 24, 03:37 95
2015 -123945234, // 1930 Sep 22, 11:41 96
2016 -123691038, // 1930 Oct 21, 21:47 97
2017 -123435954, // 1930 Nov 20, 10:21 98
2018 -123179976, // 1930 Dec 20, 01:24 99
2019 -122923230, // 1931 Jan 18, 18:35 100
2020 -122665980, // 1931 Feb 17, 13:10 101
2021 -122408700, // 1931 Mar 19, 07:50 102
2022 -122151960, // 1931 Apr 18, 01:00 103
2023 -121896192, // 1931 May 17, 15:28 104
2024 -121641468, // 1931 Jun 16, 03:02 105
2025 -121387560, // 1931 Jul 15, 12:20 106
2026 -121134078, // 1931 Aug 13, 20:27 107
2027 -120880644, // 1931 Sep 12, 04:26 108
2028 -120626964, // 1931 Oct 11, 13:06 109
2029 -120372870, // 1931 Nov 9, 22:55 110
2030 -120118224, // 1931 Dec 9, 10:16 111
2031 -119862906, // 1932 Jan 7, 23:29 112
2032 -119606850, // 1932 Feb 6, 14:45 113
2033 -119350176, // 1932 Mar 7, 07:44 114
2034 -119093274, // 1932 Apr 6, 01:21 115
2035 -118836654, // 1932 May 5, 18:11 116
2036 -118580664, // 1932 Jun 4, 09:16 117
2037 -118325400, // 1932 Jul 3, 22:20 118
2038 -118070748, // 1932 Aug 2, 09:42 119
2039 -117816510, // 1932 Aug 31, 19:55 120
2040 -117562500, // 1932 Sep 30, 05:30 121
2041 -117308544, // 1932 Oct 29, 14:56 122
2042 -117054462, // 1932 Nov 28, 00:43 123
2043 -116800068, // 1932 Dec 27, 11:22 124
2044 -116545200, // 1933 Jan 25, 23:20 125
2045 -116289816, // 1933 Feb 24, 12:44 126
2046 -116034000, // 1933 Mar 26, 03:20 127
2047 -115777932, // 1933 Apr 24, 18:38 128
2048 -115521798, // 1933 May 24, 10:07 129
2049 -115265748, // 1933 Jun 23, 01:22 130
2050 -115009902, // 1933 Jul 22, 16:03 131
2051 -114754392, // 1933 Aug 21, 05:48 132
2052 -114499314, // 1933 Sep 19, 18:21 133
2053 -114244650, // 1933 Oct 19, 05:45 134
2054 -113990256, // 1933 Nov 17, 16:24 135
2055 -113735922, // 1933 Dec 17, 02:53 136
2056 -113481498, // 1934 Jan 15, 13:37 137
2057 -113226936, // 1934 Feb 14, 00:44 138
2058 -112972266, // 1934 Mar 15, 12:09 139
2059 -112717458, // 1934 Apr 13, 23:57 140
2060 -112462380, // 1934 May 13, 12:30 141
2061 -112206894, // 1934 Jun 12, 02:11 142
2062 -111950964, // 1934 Jul 11, 17:06 143
2063 -111694764, // 1934 Aug 10, 08:46 144
2064 -111438600, // 1934 Sep 9, 00:20 145
2065 -111182730, // 1934 Oct 8, 15:05 146
2066 -110927262, // 1934 Nov 7, 04:43 147
2067 -110672130, // 1934 Dec 6, 17:25 148
2068 -110417280, // 1935 Jan 5, 05:20 149
2069 -110162718, // 1935 Feb 3, 16:27 150
2070 -109908480, // 1935 Mar 5, 02:40 151
2071 -109654494, // 1935 Apr 3, 12:11 152
2072 -109400538, // 1935 May 2, 21:37 153
2073 -109146288, // 1935 Jun 1, 07:52 154
2074 -108891456, // 1935 Jun 30, 19:44 155
2075 -108635928, // 1935 Jul 30, 09:32 156
2076 -108379794, // 1935 Aug 29, 01:01 157
2077 -108123300, // 1935 Sep 27, 17:30 158
2078 -107866710, // 1935 Oct 27, 10:15 159
2079 -107610264, // 1935 Nov 26, 02:36 160
2080 -107354226, // 1935 Dec 25, 17:49 161
2081 -107098812, // 1936 Jan 24, 07:18 162
2082 -106844148, // 1936 Feb 22, 18:42 163
2083 -106590162, // 1936 Mar 23, 04:13 164
2084 -106336602, // 1936 Apr 21, 12:33 165
2085 -106083150, // 1936 May 20, 20:35 166
2086 -105829476, // 1936 Jun 19, 05:14 167
2087 -105575292, // 1936 Jul 18, 15:18 168
2088 -105320394, // 1936 Aug 17, 03:21 169
2089 -105064674, // 1936 Sep 15, 17:41 170
2090 -104808114, // 1936 Oct 15, 10:21 171
2091 -104550948, // 1936 Nov 14, 04:42 172
2092 -104293650, // 1936 Dec 13, 23:25 173
2093 -104036838, // 1937 Jan 12, 16:47 174
2094 -103780956, // 1937 Feb 11, 07:34 175
2095 -103526094, // 1937 Mar 12, 19:31 176
2096 -103272060, // 1937 Apr 11, 05:10 177
2097 -103018572, // 1937 May 10, 13:18 178
2098 -102765342, // 1937 Jun 8, 20:43 179
2099 -102512082, // 1937 Jul 8, 04:13 180
2100 -102258498, // 1937 Aug 6, 12:37 181
2101 -102004242, // 1937 Sep 4, 22:53 182
2102 -101748972, // 1937 Oct 4, 11:58 183
2103 -101492544, // 1937 Nov 3, 04:16 184
2104 -101235174, // 1937 Dec 2, 23:11 185
2105 -100977486, // 1938 Jan 1, 18:59 186
2106 -100720230, // 1938 Jan 31, 13:35 187
2107 -100463880, // 1938 Mar 2, 05:40 188
2108 -100208568, // 1938 Mar 31, 18:52 189
2109 -99954192, // 1938 Apr 30, 05:28 190
2110 -99700560, // 1938 May 29, 14:00 191
2111 -99447420, // 1938 Jun 27, 21:10 192
2112 -99194442, // 1938 Jul 27, 03:53 193
2113 -98941218, // 1938 Aug 25, 11:17 194
2114 -98687322, // 1938 Sep 23, 20:33 195
2115 -98432388, // 1938 Oct 23, 08:42 196
2116 -98176290, // 1938 Nov 22, 00:05 197
2117 -97919238, // 1938 Dec 21, 18:07 198
2118 -97661718, // 1939 Jan 20, 13:27 199
2119 -97404312, // 1939 Feb 19, 08:28 200
2120 -97147506, // 1939 Mar 21, 01:49 201
2121 -96891630, // 1939 Apr 19, 16:35 202
2122 -96636810, // 1939 May 19, 04:25 203
2123 -96382938, // 1939 Jun 17, 13:37 204
2124 -96129702, // 1939 Jul 16, 21:03 205
2125 -95876682, // 1939 Aug 15, 03:53 206
2126 -95623428, // 1939 Sep 13, 11:22 207
2127 -95369580, // 1939 Oct 12, 20:30 208
2128 -95114916, // 1939 Nov 11, 07:54 209
2129 -94859370, // 1939 Dec 10, 21:45 210
2130 -94603002, // 1940 Jan 9, 13:53 211
2131 -94346010, // 1940 Feb 8, 07:45 212
2132 -94088742, // 1940 Mar 9, 02:23 213
2133 -93831732, // 1940 Apr 7, 20:18 214
2134 -93575478, // 1940 May 7, 12:07 215
2135 -93320250, // 1940 Jun 6, 01:05 216
2136 -93065952, // 1940 Jul 5, 11:28 217
2137 -92812266, // 1940 Aug 3, 20:09 218
2138 -92558790, // 1940 Sep 2, 04:15 219
2139 -92305194, // 1940 Oct 1, 12:41 220
2140 -92051262, // 1940 Oct 30, 22:03 221
2141 -91796868, // 1940 Nov 29, 08:42 222
2142 -91541904, // 1940 Dec 28, 20:56 223
2143 -91286262, // 1941 Jan 27, 11:03 224
2144 -91029948, // 1941 Feb 26, 03:02 225
2145 -90773196, // 1941 Mar 27, 20:14 226
2146 -90516456, // 1941 Apr 26, 13:24 227
2147 -90260172, // 1941 May 26, 05:18 228
2148 -90004548, // 1941 Jun 24, 19:22 229
2149 -89749566, // 1941 Jul 24, 07:39 230
2150 -89495076, // 1941 Aug 22, 18:34 231
2151 -89240886, // 1941 Sep 21, 04:39 232
2152 -88986840, // 1941 Oct 20, 14:20 233
2153 -88732776, // 1941 Nov 19, 00:04 234
2154 -88478532, // 1941 Dec 18, 10:18 235
2155 -88223928, // 1942 Jan 16, 21:32 236
2156 -87968862, // 1942 Feb 15, 10:03 237
2157 -87713340, // 1942 Mar 16, 23:50 238
2158 -87457482, // 1942 Apr 15, 14:33 239
2159 -87201450, // 1942 May 15, 05:45 240
2160 -86945388, // 1942 Jun 13, 21:02 241
2161 -86689422, // 1942 Jul 13, 12:03 242
2162 -86433672, // 1942 Aug 12, 02:28 243
2163 -86178282, // 1942 Sep 10, 15:53 244
2164 -85923324, // 1942 Oct 10, 04:06 245
2165 -85668726, // 1942 Nov 8, 15:19 246
2166 -85414320, // 1942 Dec 8, 02:00 247
2167 -85159932, // 1943 Jan 6, 12:38 248
2168 -84905466, // 1943 Feb 4, 23:29 249
2169 -84650916, // 1943 Mar 6, 10:34 250
2170 -84396282, // 1943 Apr 4, 21:53 251
2171 -84141462, // 1943 May 4, 09:43 252
2172 -83886282, // 1943 Jun 2, 22:33 253
2173 -83630616, // 1943 Jul 2, 12:44 254
2174 -83374524, // 1943 Aug 1, 04:06 255
2175 -83118240, // 1943 Aug 30, 20:00 256
2176 -82862106, // 1943 Sep 29, 11:29 257
2177 -82606326, // 1943 Oct 29, 01:59 258
2178 -82350942, // 1943 Nov 27, 15:23 259
2179 -82095900, // 1943 Dec 27, 03:50 260
2180 -81841176, // 1944 Jan 25, 15:24 261
2181 -81586806, // 1944 Feb 24, 01:59 262
2182 -81332784, // 1944 Mar 24, 11:36 263
2183 -81078936, // 1944 Apr 22, 20:44 264
2184 -80824962, // 1944 May 22, 06:13 265
2185 -80570520, // 1944 Jun 20, 17:00 266
2186 -80315388, // 1944 Jul 20, 05:42 267
2187 -80059530, // 1944 Aug 18, 20:25 268
2188 -79803138, // 1944 Sep 17, 12:37 269
2189 -79546470, // 1944 Oct 17, 05:35 270
2190 -79289826, // 1944 Nov 15, 22:29 271
2191 -79033470, // 1944 Dec 15, 14:35 272
2192 -78777678, // 1945 Jan 14, 05:07 273
2193 -78522642, // 1945 Feb 12, 17:33 274
2194 -78268374, // 1945 Mar 14, 03:51 275
2195 -78014700, // 1945 Apr 12, 12:30 276
2196 -77761308, // 1945 May 11, 20:22 277
2197 -77507844, // 1945 Jun 10, 04:26 278
2198 -77253990, // 1945 Jul 9, 13:35 279
2199 -76999488, // 1945 Aug 8, 00:32 280
2200 -76744176, // 1945 Sep 6, 13:44 281
2201 -76487988, // 1945 Oct 6, 05:22 282
2202 -76231020, // 1945 Nov 4, 23:10 283
2203 -75973638, // 1945 Dec 4, 18:07 284
2204 -75716460, // 1946 Jan 3, 12:30 285
2205 -75460062, // 1946 Feb 2, 04:43 286
2206 -75204714, // 1946 Mar 3, 18:01 287
2207 -74950338, // 1946 Apr 2, 04:37 288
2208 -74696664, // 1946 May 1, 13:16 289
2209 -74443386, // 1946 May 30, 20:49 290
2210 -74190204, // 1946 Jun 29, 04:06 291
2211 -73936842, // 1946 Jul 28, 11:53 292
2212 -73682958, // 1946 Aug 26, 21:07 293
2213 -73428210, // 1946 Sep 25, 08:45 294
2214 -73172328, // 1946 Oct 24, 23:32 295
2215 -72915336, // 1946 Nov 23, 17:24 296
2216 -72657684, // 1946 Dec 23, 13:06 297
2217 -72400116, // 1947 Jan 22, 08:34 298
2218 -72143280, // 1947 Feb 21, 02:00 299
2219 -71887476, // 1947 Mar 22, 16:34 300
2220 -71632686, // 1947 Apr 21, 04:19 301
2221 -71378736, // 1947 May 20, 13:44 302
2222 -71125404, // 1947 Jun 18, 21:26 303
2223 -70872390, // 1947 Jul 18, 04:15 304
2224 -70619328, // 1947 Aug 16, 11:12 305
2225 -70365792, // 1947 Sep 14, 19:28 306
2226 -70111380, // 1947 Oct 14, 06:10 307
2227 -69855834, // 1947 Nov 12, 20:01 308
2228 -69599202, // 1947 Dec 12, 12:53 309
2229 -69341850, // 1948 Jan 11, 07:45 310
2230 -69084348, // 1948 Feb 10, 03:02 311
2231 -68827230, // 1948 Mar 10, 21:15 312
2232 -68570898, // 1948 Apr 9, 13:17 313
2233 -68315580, // 1948 May 9, 02:30 314
2234 -68061264, // 1948 Jun 7, 12:56 315
2235 -67807746, // 1948 Jul 6, 21:09 316
2236 -67554642, // 1948 Aug 5, 04:13 317
2237 -67301514, // 1948 Sep 3, 11:21 318
2238 -67047948, // 1948 Oct 2, 19:42 319
2239 -66793662, // 1948 Nov 1, 06:03 320
2240 -66538530, // 1948 Nov 30, 18:45 321
2241 -66282570, // 1948 Dec 30, 09:45 322
2242 -66025908, // 1949 Jan 29, 02:42 323
2243 -65768790, // 1949 Feb 27, 20:55 324
2244 -65511654, // 1949 Mar 29, 15:11 325
2245 -65255028, // 1949 Apr 28, 08:02 326
2246 -64999296, // 1949 May 27, 22:24 327
2247 -64744548, // 1949 Jun 26, 10:02 328
2248 -64490562, // 1949 Jul 25, 19:33 329
2249 -64236966, // 1949 Aug 24, 03:59 330
2250 -63983394, // 1949 Sep 22, 12:21 331
2251 -63729582, // 1949 Oct 21, 21:23 332
2252 -63475386, // 1949 Nov 20, 07:29 333
2253 -63220704, // 1949 Dec 19, 18:56 334
2254 -62965440, // 1950 Jan 18, 08:00 335
2255 -62709522, // 1950 Feb 16, 22:53 336
2256 -62453040, // 1950 Mar 18, 15:20 337
2257 -62196330, // 1950 Apr 17, 08:25 338
2258 -61939830, // 1950 May 17, 00:55 339
2259 -61683882, // 1950 Jun 15, 15:53 340
2260 -61428564, // 1950 Jul 15, 05:06 341
2261 -61173792, // 1950 Aug 13, 16:48 342
2262 -60919386, // 1950 Sep 12, 03:29 343
2263 -60665202, // 1950 Oct 11, 13:33 344
2264 -60411090, // 1950 Nov 9, 23:25 345
2265 -60156906, // 1950 Dec 9, 09:29 346
2266 -59902500, // 1951 Jan 7, 20:10 347
2267 -59647716, // 1951 Feb 6, 07:54 348
2268 -59392494, // 1951 Mar 7, 20:51 349
2269 -59136888, // 1951 Apr 6, 10:52 350
2270 -58881024, // 1951 May 6, 01:36 351
2271 -58625040, // 1951 Jun 4, 16:40 352
2272 -58369032, // 1951 Jul 4, 07:48 353
2273 -58113126, // 1951 Aug 2, 22:39 354
2274 -57857460, // 1951 Sep 1, 12:50 355
2275 -57602178, // 1951 Oct 1, 01:57 356
2276 -57347316, // 1951 Oct 30, 13:54 357
2277 -57092760, // 1951 Nov 29, 01:00 358
2278 -56838342, // 1951 Dec 28, 11:43 359
2279 -56583924, // 1952 Jan 26, 22:26 360
2280 -56329464, // 1952 Feb 25, 09:16 361
2281 -56074962, // 1952 Mar 25, 20:13 362
2282 -55820352, // 1952 Apr 24, 07:28 363
2283 -55565472, // 1952 May 23, 19:28 364
2284 -55310130, // 1952 Jun 22, 08:45 365
2285 -55054254, // 1952 Jul 21, 23:31 366
2286 -54797994, // 1952 Aug 20, 15:21 367
2287 -54541668, // 1952 Sep 19, 07:22 368
2288 -54285582, // 1952 Oct 18, 22:43 369
2289 -54029904, // 1952 Nov 17, 12:56 370
2290 -53774628, // 1952 Dec 17, 02:02 371
2291 -53519712, // 1953 Jan 15, 14:08 372
2292 -53265180, // 1953 Feb 14, 01:10 373
2293 -53011050, // 1953 Mar 15, 11:05 374
2294 -52757226, // 1953 Apr 13, 20:09 375
2295 -52503444, // 1953 May 13, 05:06 376
2296 -52249350, // 1953 Jun 11, 14:55 377
2297 -51994632, // 1953 Jul 11, 02:28 378
2298 -51739140, // 1953 Aug 9, 16:10 379
2299 -51482952, // 1953 Sep 8, 07:48 380
2300 -51226314, // 1953 Oct 8, 00:41 381
2301 -50969532, // 1953 Nov 6, 17:58 382
2302 -50712912, // 1953 Dec 6, 10:48 383
2303 -50456754, // 1954 Jan 5, 02:21 384
2304 -50201310, // 1954 Feb 3, 15:55 385
2305 -49946694, // 1954 Mar 5, 03:11 386
2306 -49692810, // 1954 Apr 3, 12:25 387
2307 -49439382, // 1954 May 2, 20:23 388
2308 -49186062, // 1954 Jun 1, 04:03 389
2309 -48932484, // 1954 Jun 30, 12:26 390
2310 -48678360, // 1954 Jul 29, 22:20 391
2311 -48423474, // 1954 Aug 28, 10:21 392
2312 -48167694, // 1954 Sep 27, 00:51 393
2313 -47911038, // 1954 Oct 26, 17:47 394
2314 -47653734, // 1954 Nov 25, 12:31 395
2315 -47396316, // 1954 Dec 25, 07:34 396
2316 -47139438, // 1955 Jan 24, 01:07 397
2317 -46883556, // 1955 Feb 22, 15:54 398
2318 -46628748, // 1955 Mar 24, 03:42 399
2319 -46374804, // 1955 Apr 22, 13:06 400
2320 -46121406, // 1955 May 21, 20:59 401
2321 -45868248, // 1955 Jun 20, 04:12 402
2322 -45615036, // 1955 Jul 19, 11:34 403
2323 -45361452, // 1955 Aug 17, 19:58 404
2324 -45107166, // 1955 Sep 16, 06:19 405
2325 -44851848, // 1955 Oct 15, 19:32 406
2326 -44595348, // 1955 Nov 14, 12:02 407
2327 -44337918, // 1955 Dec 14, 07:07 408
2328 -44080194, // 1956 Jan 13, 03:01 409
2329 -43822932, // 1956 Feb 11, 21:38 410
2330 -43566618, // 1956 Mar 12, 13:37 411
2331 -43311366, // 1956 Apr 11, 02:39 412
2332 -43057056, // 1956 May 10, 13:04 413
2333 -42803466, // 1956 Jun 8, 21:29 414
2334 -42550332, // 1956 Jul 8, 04:38 415
2335 -42297330, // 1956 Aug 6, 11:25 416
2336 -42044058, // 1956 Sep 4, 18:57 417
2337 -41790090, // 1956 Oct 4, 04:25 418
2338 -41535096, // 1956 Nov 2, 16:44 419
2339 -41278962, // 1956 Dec 2, 08:13 420
2340 -41021916, // 1957 Jan 1, 02:14 421
2341 -40764450, // 1957 Jan 30, 21:25 422
2342 -40507122, // 1957 Mar 1, 16:13 423
2343 -40250406, // 1957 Mar 31, 09:19 424
2344 -39994596, // 1957 Apr 29, 23:54 425
2345 -39739806, // 1957 May 29, 11:39 426
2346 -39485916, // 1957 Jun 27, 20:54 427
2347 -39232632, // 1957 Jul 27, 04:28 428
2348 -38979522, // 1957 Aug 25, 11:33 429
2349 -38726166, // 1957 Sep 23, 19:19 430
2350 -38472222, // 1957 Oct 23, 04:43 431
2351 -38217486, // 1957 Nov 21, 16:19 432
2352 -37961928, // 1957 Dec 21, 06:12 433
2353 -37705632, // 1958 Jan 19, 22:08 434
2354 -37448772, // 1958 Feb 18, 15:38 435
2355 -37191660, // 1958 Mar 20, 09:50 436
2356 -36934782, // 1958 Apr 19, 03:23 437
2357 -36678600, // 1958 May 18, 19:00 438
2358 -36423366, // 1958 Jun 17, 07:59 439
2359 -36169002, // 1958 Jul 16, 18:33 440
2360 -35915202, // 1958 Aug 15, 03:33 441
2361 -35661588, // 1958 Sep 13, 12:02 442
2362 -35407848, // 1958 Oct 12, 20:52 443
2363 -35153796, // 1958 Nov 11, 06:34 444
2364 -34899342, // 1958 Dec 10, 17:23 445
2365 -34644396, // 1959 Jan 9, 05:34 446
2366 -34388868, // 1959 Feb 7, 19:22 447
2367 -34132734, // 1959 Mar 9, 10:51 448
2368 -33876186, // 1959 Apr 8, 03:29 449
2369 -33619608, // 1959 May 7, 20:12 450
2370 -33363402, // 1959 Jun 6, 11:53 451
2371 -33107760, // 1959 Jul 6, 02:00 452
2372 -32852676, // 1959 Aug 4, 14:34 453
2373 -32598030, // 1959 Sep 3, 01:55 454
2374 -32343654, // 1959 Oct 2, 12:31 455
2375 -32089434, // 1959 Oct 31, 22:41 456
2376 -31835244, // 1959 Nov 30, 08:46 457
2377 -31580946, // 1959 Dec 29, 19:09 458
2378 -31326390, // 1960 Jan 28, 06:15 459
2379 -31071462, // 1960 Feb 26, 18:23 460
2380 -30816138, // 1960 Mar 27, 07:37 461
2381 -30560496, // 1960 Apr 25, 21:44 462
2382 -30304644, // 1960 May 25, 12:26 463
2383 -30048678, // 1960 Jun 24, 03:27 464
2384 -29792694, // 1960 Jul 23, 18:31 465
2385 -29536830, // 1960 Aug 22, 09:15 466
2386 -29281242, // 1960 Sep 20, 23:13 467
2387 -29026068, // 1960 Oct 20, 12:02 468
2388 -28771284, // 1960 Nov 18, 23:46 469
2389 -28516758, // 1960 Dec 18, 10:47 470
2390 -28262340, // 1961 Jan 16, 21:30 471
2391 -28007940, // 1961 Feb 15, 08:10 472
2392 -27753534, // 1961 Mar 16, 18:51 473
2393 -27499092, // 1961 Apr 15, 05:38 474
2394 -27244476, // 1961 May 14, 16:54 475
2395 -26989464, // 1961 Jun 13, 05:16 476
2396 -26733894, // 1961 Jul 12, 19:11 477
2397 -26477784, // 1961 Aug 11, 10:36 478
2398 -26221380, // 1961 Sep 10, 02:50 479
2399 -25965042, // 1961 Oct 9, 18:53 480
2400 -25709052, // 1961 Nov 8, 09:58 481
2401 -25453488, // 1961 Dec 7, 23:52 482
2402 -25198350, // 1962 Jan 6, 12:35 483
2403 -24943620, // 1962 Feb 5, 00:10 484
2404 -24689334, // 1962 Mar 6, 10:31 485
2405 -24435450, // 1962 Apr 4, 19:45 486
2406 -24181770, // 1962 May 4, 04:25 487
2407 -23927958, // 1962 Jun 2, 13:27 488
2408 -23673648, // 1962 Jul 1, 23:52 489
2409 -23418576, // 1962 Jul 31, 12:24 490
2410 -23162706, // 1962 Aug 30, 03:09 491
2411 -22906206, // 1962 Sep 28, 19:39 492
2412 -22649370, // 1962 Oct 28, 13:05 493
2413 -22392546, // 1962 Nov 27, 06:29 494
2414 -22136046, // 1962 Dec 26, 22:59 495
2415 -21880188, // 1963 Jan 25, 13:42 496
2416 -21625164, // 1963 Feb 24, 02:06 497
2417 -21370986, // 1963 Mar 25, 12:09 498
2418 -21117432, // 1963 Apr 23, 20:28 499
2419 -20864160, // 1963 May 23, 04:00 500
2420 -20610804, // 1963 Jun 21, 11:46 501
2421 -20357022, // 1963 Jul 20, 20:43 502
2422 -20102556, // 1963 Aug 19, 07:34 503
2423 -19847214, // 1963 Sep 17, 20:51 504
2424 -19590942, // 1963 Oct 17, 12:43 505
2425 -19333860, // 1963 Nov 16, 06:50 506
2426 -19076364, // 1963 Dec 16, 02:06 507
2427 -18819096, // 1964 Jan 14, 20:44 508
2428 -18562674, // 1964 Feb 13, 13:01 509
2429 -18307356, // 1964 Mar 14, 02:14 510
2430 -18053052, // 1964 Apr 12, 12:38 511
2431 -17799468, // 1964 May 11, 21:02 512
2432 -17546268, // 1964 Jun 10, 04:22 513
2433 -17293134, // 1964 Jul 9, 11:31 514
2434 -17039778, // 1964 Aug 7, 19:17 515
2435 -16785876, // 1964 Sep 6, 04:34 516
2436 -16531080, // 1964 Oct 5, 16:20 517
2437 -16275144, // 1964 Nov 4, 07:16 518
2438 -16018092, // 1964 Dec 4, 01:18 519
2439 -15760398, // 1965 Jan 2, 21:07 520
2440 -15502824, // 1965 Feb 1, 16:36 521
2441 -15246024, // 1965 Mar 3, 09:56 522
2442 -14990274, // 1965 Apr 2, 00:21 523
2443 -14735544, // 1965 May 1, 11:56 524
2444 -14481642, // 1965 May 30, 21:13 525
2445 -14228322, // 1965 Jun 29, 04:53 526
2446 -13975290, // 1965 Jul 28, 11:45 527
2447 -13722174, // 1965 Aug 26, 18:51 528
2448 -13468572, // 1965 Sep 25, 03:18 529
2449 -13214088, // 1965 Oct 24, 14:12 530
2450 -12958500, // 1965 Nov 23, 04:10 531
2451 -12701862, // 1965 Dec 22, 21:03 532
2452 -12444558, // 1966 Jan 21, 15:47 533
2453 -12187146, // 1966 Feb 20, 10:49 534
2454 -11930124, // 1966 Mar 22, 04:46 535
2455 -11673870, // 1966 Apr 20, 20:35 536
2456 -11418582, // 1966 May 20, 09:43 537
2457 -11164266, // 1966 Jun 18, 20:09 538
2458 -10910700, // 1966 Jul 18, 04:30 539
2459 -10657512, // 1966 Aug 16, 11:48 540
2460 -10404282, // 1966 Sep 14, 19:13 541
2461 -10150608, // 1966 Oct 14, 03:52 542
2462 -9896238, // 1966 Nov 12, 14:27 543
2463 -9641076, // 1966 Dec 12, 03:14 544
2464 -9385164, // 1967 Jan 10, 18:06 545
2465 -9128616, // 1967 Feb 9, 10:44 546
2466 -8871660, // 1967 Mar 11, 04:30 547
2467 -8614680, // 1967 Apr 9, 22:20 548
2468 -8358150, // 1967 May 9, 14:55 549
2469 -8102436, // 1967 Jun 8, 05:14 550
2470 -7847640, // 1967 Jul 7, 17:00 551
2471 -7593552, // 1967 Aug 6, 02:48 552
2472 -7339818, // 1967 Sep 4, 11:37 553
2473 -7086096, // 1967 Oct 3, 20:24 554
2474 -6832152, // 1967 Nov 2, 05:48 555
2475 -6577860, // 1967 Dec 1, 16:10 556
2476 -6323166, // 1967 Dec 31, 03:39 557
2477 -6067980, // 1968 Jan 29, 16:30 558
2478 -5812224, // 1968 Feb 28, 06:56 559
2479 -5555952, // 1968 Mar 28, 22:48 560
2480 -5299434, // 1968 Apr 27, 15:21 561
2481 -5043060, // 1968 May 27, 07:30 562
2482 -4787130, // 1968 Jun 25, 22:25 563
2483 -4531740, // 1968 Jul 25, 11:50 564
2484 -4276818, // 1968 Aug 23, 23:57 565
2485 -4022232, // 1968 Sep 22, 11:08 566
2486 -3767856, // 1968 Oct 21, 21:44 567
2487 -3513588, // 1968 Nov 20, 08:02 568
2488 -3259326, // 1968 Dec 19, 18:19 569
2489 -3004926, // 1969 Jan 18, 04:59 570
2490 -2750250, // 1969 Feb 16, 16:25 571
2491 -2495208, // 1969 Mar 18, 04:52 572
2492 -2239824, // 1969 Apr 16, 18:16 573
2493 -1984164, // 1969 May 16, 08:26 574
2494 -1728306, // 1969 Jun 14, 23:09 575
2495 -1472328, // 1969 Jul 14, 14:12 576
2496 -1216338, // 1969 Aug 13, 05:17 577
2497 -960504, // 1969 Sep 11, 19:56 578
2498 -705006, // 1969 Oct 11, 09:39 579
2499 -449934, // 1969 Nov 9, 22:11 580
2500 -195228, // 1969 Dec 9, 09:42 581
2501 59250, // 1970 Jan 7, 20:35 582
2502 313638, // 1970 Feb 6, 07:13 583
2503 567978, // 1970 Mar 7, 17:43 584
2504 822300, // 1970 Apr 6, 04:10 585
2505 1076706, // 1970 May 5, 14:51 586
2506 1331406, // 1970 Jun 4, 02:21 587
2507 1586628, // 1970 Jul 3, 15:18 588
2508 1842468, // 1970 Aug 2, 05:58 589
2509 2098812, // 1970 Aug 31, 22:02 590
2510 2355312, // 1970 Sep 30, 14:32 591
2511 2611608, // 1970 Oct 30, 06:28 592
2512 2867484, // 1970 Nov 28, 21:14 593
2513 3122892, // 1970 Dec 28, 10:42 594
2514 3377850, // 1971 Jan 26, 22:55 595
2515 3632328, // 1971 Feb 25, 09:48 596
2516 3886338, // 1971 Mar 26, 19:23 597
2517 4140012, // 1971 Apr 25, 04:02 598
2518 4393632, // 1971 May 24, 12:32 599
2519 4647582, // 1971 Jun 22, 21:57 600
2520 4902210, // 1971 Jul 22, 09:15 601
2521 5157678, // 1971 Aug 20, 22:53 602
2522 5413938, // 1971 Sep 19, 14:43 603
2523 5670714, // 1971 Oct 19, 07:59 604
2524 5927676, // 1971 Nov 18, 01:46 605
2525 6184458, // 1971 Dec 17, 19:03 606
2526 6440712, // 1972 Jan 16, 10:52 607
2527 6696174, // 1972 Feb 15, 00:29 608
2528 6950730, // 1972 Mar 15, 11:35 609
2529 7204506, // 1972 Apr 13, 20:31 610
2530 7457808, // 1972 May 13, 04:08 611
2531 7711020, // 1972 Jun 11, 11:30 612
2532 7964514, // 1972 Jul 10, 19:39 613
2533 8218596, // 1972 Aug 9, 05:26 614
2534 8473488, // 1972 Sep 7, 17:28 615
2535 8729328, // 1972 Oct 7, 08:08 616
2536 8986086, // 1972 Nov 6, 01:21 617
2537 9243504, // 1972 Dec 5, 20:24 618
2538 9501018, // 1973 Jan 4, 15:43 619
2539 9757938, // 1973 Feb 3, 09:23 620
2540 10013802, // 1973 Mar 5, 00:07 621
2541 10268550, // 1973 Apr 3, 11:45 622
2542 10522410, // 1973 May 2, 20:55 623
2543 10775724, // 1973 Jun 1, 04:34 624
2544 11028834, // 1973 Jun 30, 11:39 625
2545 11282034, // 1973 Jul 29, 18:59 626
2546 11535630, // 1973 Aug 28, 03:25 627
2547 11789964, // 1973 Sep 26, 13:54 628
2548 12045342, // 1973 Oct 26, 03:17 629
2549 12301890, // 1973 Nov 24, 19:55 630
2550 12559362, // 1973 Dec 24, 15:07 631
2551 12817092, // 1974 Jan 23, 11:02 632
2552 13074324, // 1974 Feb 22, 05:34 633
2553 13330584, // 1974 Mar 23, 21:24 634
2554 13585782, // 1974 Apr 22, 10:17 635
2555 13840044, // 1974 May 21, 20:34 636
2556 14093616, // 1974 Jun 20, 04:56 637
2557 14346756, // 1974 Jul 19, 12:06 638
2558 14599806, // 1974 Aug 17, 19:01 639
2559 14853150, // 1974 Sep 16, 02:45 640
2560 15107190, // 1974 Oct 15, 12:25 641
2561 15362238, // 1974 Nov 14, 00:53 642
2562 15618390, // 1974 Dec 13, 16:25 643
2563 15875400, // 1975 Jan 12, 10:20 644
2564 16132782, // 1975 Feb 11, 05:17 645
2565 16390008, // 1975 Mar 12, 23:48 646
2566 16646634, // 1975 Apr 11, 16:39 647
2567 16902390, // 1975 May 11, 07:05 648
2568 17157174, // 1975 Jun 9, 18:49 649
2569 17411100, // 1975 Jul 9, 04:10 650
2570 17664462, // 1975 Aug 7, 11:57 651
2571 17917668, // 1975 Sep 5, 19:18 652
2572 18171138, // 1975 Oct 5, 03:23 653
2573 18425184, // 1975 Nov 3, 13:04 654
2574 18679980, // 1975 Dec 3, 00:50 655
2575 18935520, // 1976 Jan 1, 14:40 656
2576 19191720, // 1976 Jan 31, 06:20 657
2577 19448430, // 1976 Feb 29, 23:25 658
2578 19705368, // 1976 Mar 30, 17:08 659
2579 19962120, // 1976 Apr 29, 10:20 660
2580 20218242, // 1976 May 29, 01:47 661
2581 20473500, // 1976 Jun 27, 14:50 662
2582 20727954, // 1976 Jul 27, 01:39 663
2583 20981880, // 1976 Aug 25, 11:00 664
2584 21235650, // 1976 Sep 23, 19:55 665
2585 21489540, // 1976 Oct 23, 05:10 666
2586 21743706, // 1976 Nov 21, 15:11 667
2587 21998208, // 1976 Dec 21, 02:08 668
2588 22253106, // 1977 Jan 19, 14:11 669
2589 22508502, // 1977 Feb 18, 03:37 670
2590 22764438, // 1977 Mar 19, 18:33 671
2591 23020776, // 1977 Apr 18, 10:36 672
2592 23277192, // 1977 May 18, 02:52 673
2593 23533338, // 1977 Jun 16, 18:23 674
2594 23789022, // 1977 Jul 16, 08:37 675
2595 24044226, // 1977 Aug 14, 21:31 676
2596 24299058, // 1977 Sep 13, 09:23 677
2597 24553626, // 1977 Oct 12, 20:31 678
2598 24808020, // 1977 Nov 11, 07:10 679
2599 25062318, // 1977 Dec 10, 17:33 680
2600 25316640, // 1978 Jan 9, 04:00 681
2601 25571124, // 1978 Feb 7, 14:54 682
2602 25825896, // 1978 Mar 9, 02:36 683
2603 26081010, // 1978 Apr 7, 15:15 684
2604 26336442, // 1978 May 7, 04:47 685
2605 26592132, // 1978 Jun 5, 19:02 686
2606 26848026, // 1978 Jul 5, 09:51 687
2607 27104046, // 1978 Aug 4, 01:01 688
2608 27360054, // 1978 Sep 2, 16:09 689
2609 27615846, // 1978 Oct 2, 06:41 690
2610 27871236, // 1978 Oct 31, 20:06 691
2611 28126194, // 1978 Nov 30, 08:19 692
2612 28380816, // 1978 Dec 29, 19:36 693
2613 28635234, // 1979 Jan 28, 06:19 694
2614 28889550, // 1979 Feb 26, 16:45 695
2615 29143794, // 1979 Mar 28, 02:59 696
2616 29398050, // 1979 Apr 26, 13:15 697
2617 29652480, // 1979 May 26, 00:00 698
2618 29907348, // 1979 Jun 24, 11:58 699
2619 30162846, // 1979 Jul 24, 01:41 700
2620 30418986, // 1979 Aug 22, 17:11 701
2621 30675522, // 1979 Sep 21, 09:47 702
2622 30932058, // 1979 Oct 21, 02:23 703
2623 31188264, // 1979 Nov 19, 18:04 704
2624 31443978, // 1979 Dec 19, 08:23 705
2625 31699200, // 1980 Jan 17, 21:20 706
2626 31953906, // 1980 Feb 16, 08:51 707
2627 32208096, // 1980 Mar 16, 18:56 708
2628 32461836, // 1980 Apr 15, 03:46 709
2629 32715360, // 1980 May 14, 12:00 710
2630 32969034, // 1980 Jun 12, 20:39 711
2631 33223236, // 1980 Jul 12, 06:46 712
2632 33478260, // 1980 Aug 10, 19:10 713
2633 33734166, // 1980 Sep 9, 10:01 714
2634 33990780, // 1980 Oct 9, 02:50 715
2635 34247778, // 1980 Nov 7, 20:43 716
2636 34504770, // 1980 Dec 7, 14:35 717
2637 34761384, // 1981 Jan 6, 07:24 718
2638 35017284, // 1981 Feb 4, 22:14 719
2639 35272266, // 1981 Mar 6, 10:31 720
2640 35526360, // 1981 Apr 4, 20:20 721
2641 35779794, // 1981 May 4, 04:19 722
2642 36032952, // 1981 Jun 2, 11:32 723
2643 36286218, // 1981 Jul 1, 19:03 724
2644 36539952, // 1981 Jul 31, 03:52 725
2645 36794424, // 1981 Aug 29, 14:44 726
2646 37049808, // 1981 Sep 28, 04:08 727
2647 37306164, // 1981 Oct 27, 20:14 728
2648 37563348, // 1981 Nov 26, 14:38 729
2649 37820940, // 1981 Dec 26, 10:10 730
2650 38078256, // 1982 Jan 25, 04:56 731
2651 38334684, // 1982 Feb 23, 21:14 732
2652 38589948, // 1982 Mar 25, 10:18 733
2653 38844174, // 1982 Apr 23, 20:29 734
2654 39097686, // 1982 May 23, 04:41 735
2655 39350832, // 1982 Jun 21, 11:52 736
2656 39603942, // 1982 Jul 20, 18:57 737
2657 39857310, // 1982 Aug 19, 02:45 738
2658 40111254, // 1982 Sep 17, 12:09 739
2659 40366104, // 1982 Oct 17, 00:04 740
2660 40622100, // 1982 Nov 15, 15:10 741
2661 40879188, // 1982 Dec 15, 09:18 742
2662 41136888, // 1983 Jan 14, 05:08 743
2663 41394432, // 1983 Feb 13, 00:32 744
2664 41651184, // 1983 Mar 14, 17:44 745
2665 41906874, // 1983 Apr 13, 07:59 746
2666 42161550, // 1983 May 12, 19:25 747
2667 42415428, // 1983 Jun 11, 04:38 748
2668 42668754, // 1983 Jul 10, 12:19 749
2669 42921828, // 1983 Aug 8, 19:18 750
2670 43175010, // 1983 Sep 7, 02:35 751
2671 43428696, // 1983 Oct 6, 11:16 752
2672 43683246, // 1983 Nov 4, 22:21 753
2673 43938876, // 1983 Dec 4, 12:26 754
2674 44195496, // 1984 Jan 3, 05:16 755
2675 44452722, // 1984 Feb 1, 23:47 756
2676 44710026, // 1984 Mar 2, 18:31 757
2677 44966940, // 1984 Apr 1, 12:10 758
2678 45223116, // 1984 May 1, 03:46 759
2679 45478368, // 1984 May 30, 16:48 760
2680 45732714, // 1984 Jun 29, 03:19 761
2681 45986346, // 1984 Jul 28, 11:51 762
2682 46239636, // 1984 Aug 26, 19:26 763
2683 46492986, // 1984 Sep 25, 03:11 764
2684 46746768, // 1984 Oct 24, 12:08 765
2685 47001222, // 1984 Nov 22, 22:57 766
2686 47256402, // 1984 Dec 22, 11:47 767
2687 47512248, // 1985 Jan 21, 02:28 768
2688 47768658, // 1985 Feb 19, 18:43 769
2689 48025434, // 1985 Mar 21, 11:59 770
2690 48282252, // 1985 Apr 20, 05:22 771
2691 48538686, // 1985 May 19, 21:41 772
2692 48794388, // 1985 Jun 18, 11:58 773
2693 49049262, // 1985 Jul 17, 23:57 774
2694 49303476, // 1985 Aug 16, 10:06 775
2695 49557360, // 1985 Sep 14, 19:20 776
2696 49811238, // 1985 Oct 14, 04:33 777
2697 50065326, // 1985 Nov 12, 14:21 778
2698 50319690, // 1985 Dec 12, 00:55 779
2699 50574372, // 1986 Jan 10, 12:22 780
2700 50829456, // 1986 Feb 9, 00:56 781
2701 51085032, // 1986 Mar 10, 14:52 782
2702 51341088, // 1986 Apr 9, 06:08 783
2703 51597420, // 1986 May 8, 22:10 784
2704 51853686, // 1986 Jun 7, 14:01 785
2705 52109610, // 1986 Jul 7, 04:55 786
2706 52365096, // 1986 Aug 5, 18:36 787
2707 52620186, // 1986 Sep 4, 07:11 788
2708 52874970, // 1986 Oct 3, 18:55 789
2709 53129532, // 1986 Nov 2, 06:02 790
2710 53383938, // 1986 Dec 1, 16:43 791
2711 53638260, // 1986 Dec 31, 03:10 792
2712 53892630, // 1987 Jan 29, 13:45 793
2713 54147186, // 1987 Feb 28, 00:51 794
2714 54402036, // 1987 Mar 29, 12:46 795
2715 54657204, // 1987 Apr 28, 01:34 796
2716 54912678, // 1987 May 27, 15:13 797
2717 55168422, // 1987 Jun 26, 05:37 798
2718 55424388, // 1987 Jul 25, 20:38 799
2719 55680474, // 1987 Aug 24, 11:59 800
2720 55936494, // 1987 Sep 23, 03:09 801
2721 56192208, // 1987 Oct 22, 17:28 802
2722 56447478, // 1987 Nov 21, 06:33 803
2723 56702310, // 1987 Dec 20, 18:25 804
2724 56956836, // 1988 Jan 19, 05:26 805
2725 57211164, // 1988 Feb 17, 15:54 806
2726 57465372, // 1988 Mar 18, 02:02 807
2727 57719520, // 1988 Apr 16, 12:00 808
2728 57973746, // 1988 May 15, 22:11 809
2729 58228284, // 1988 Jun 14, 09:14 810
2730 58483398, // 1988 Jul 13, 21:53 811
2731 58739226, // 1988 Aug 12, 12:31 812
2732 58995660, // 1988 Sep 11, 04:50 813
2733 59252334, // 1988 Oct 10, 21:49 814
2734 59508840, // 1988 Nov 9, 14:20 815
2735 59764896, // 1988 Dec 9, 05:36 816
2736 60020412, // 1989 Jan 7, 19:22 817
2737 60275382, // 1989 Feb 6, 07:37 818
2738 60529794, // 1989 Mar 7, 18:19 819
2739 60783678, // 1989 Apr 6, 03:33 820
2740 61037202, // 1989 May 5, 11:47 821
2741 61290678, // 1989 Jun 3, 19:53 822
2742 61544514, // 1989 Jul 3, 04:59 823
2743 61799076, // 1989 Aug 1, 16:06 824
2744 62054550, // 1989 Aug 31, 05:45 825
2745 62310888, // 1989 Sep 29, 21:48 826
2746 62567808, // 1989 Oct 29, 15:28 827
2747 62824926, // 1989 Nov 28, 09:41 828
2748 63081840, // 1989 Dec 28, 03:20 829
2749 63338160, // 1990 Jan 26, 19:20 830
2750 63593610, // 1990 Feb 25, 08:55 831
2751 63848088, // 1990 Mar 26, 19:48 832
2752 64101768, // 1990 Apr 25, 04:28 833
2753 64354962, // 1990 May 24, 11:47 834
2754 64608090, // 1990 Jun 22, 18:55 835
2755 64861524, // 1990 Jul 22, 02:54 836
2756 65115594, // 1990 Aug 20, 12:39 837
2757 65370516, // 1990 Sep 19, 00:46 838
2758 65626422, // 1990 Oct 18, 15:37 839
2759 65883270, // 1990 Nov 17, 09:05 840
2760 66140772, // 1990 Dec 17, 04:22 841
2761 66398340, // 1991 Jan 15, 23:50 842
2762 66655272, // 1991 Feb 14, 17:32 843
2763 66911106, // 1991 Mar 16, 08:11 844
2764 67165788, // 1991 Apr 14, 19:38 845
2765 67419576, // 1991 May 14, 04:36 846
2766 67672836, // 1991 Jun 12, 12:06 847
2767 67925916, // 1991 Jul 11, 19:06 848
2768 68179122, // 1991 Aug 10, 02:27 849
2769 68432766, // 1991 Sep 8, 11:01 850
2770 68687154, // 1991 Oct 7, 21:39 851
2771 68942586, // 1991 Nov 6, 11:11 852
2772 69199176, // 1991 Dec 6, 03:56 853
2773 69456660, // 1992 Jan 4, 23:10 854
2774 69714360, // 1992 Feb 3, 19:00 855
2775 69971538, // 1992 Mar 4, 13:23 856
2776 70227732, // 1992 Apr 3, 05:02 857
2777 70482870, // 1992 May 2, 17:45 858
2778 70737102, // 1992 Jun 1, 03:57 859
2779 70990668, // 1992 Jun 30, 12:18 860
2780 71243850, // 1992 Jul 29, 19:35 861
2781 71496972, // 1992 Aug 28, 02:42 862
2782 71750400, // 1992 Sep 26, 10:40 863
2783 72004524, // 1992 Oct 25, 20:34 864
2784 72259626, // 1992 Nov 24, 09:11 865
2785 72515778, // 1992 Dec 24, 00:43 866
2786 72772722, // 1993 Jan 22, 18:27 867
2787 73029996, // 1993 Feb 21, 13:06 868
2788 73287090, // 1993 Mar 23, 07:15 869
2789 73543614, // 1993 Apr 21, 23:49 870
2790 73799322, // 1993 May 21, 14:07 871
2791 74054118, // 1993 Jun 20, 01:53 872
2792 74308104, // 1993 Jul 19, 11:24 873
2793 74561568, // 1993 Aug 17, 19:28 874
2794 74814900, // 1993 Sep 16, 03:10 875
2795 75068496, // 1993 Oct 15, 11:36 876
2796 75322644, // 1993 Nov 13, 21:34 877
2797 75577482, // 1993 Dec 13, 09:27 878
2798 75832980, // 1994 Jan 11, 23:10 879
2799 76089060, // 1994 Feb 10, 14:30 880
2800 76345590, // 1994 Mar 12, 07:05 881
2801 76602342, // 1994 Apr 11, 00:17 882
2802 76858962, // 1994 May 10, 17:07 883
2803 77115042, // 1994 Jun 9, 08:27 884
2804 77370342, // 1994 Jul 8, 21:37 885
2805 77624910, // 1994 Aug 7, 08:45 886
2806 77878998, // 1994 Sep 5, 18:33 887
2807 78132930, // 1994 Oct 5, 03:55 888
2808 78386970, // 1994 Nov 3, 13:35 889
2809 78641244, // 1994 Dec 2, 23:54 890
2810 78895770, // 1995 Jan 1, 10:55 891
2811 79150608, // 1995 Jan 30, 22:48 892
2812 79405848, // 1995 Mar 1, 11:48 893
2813 79661568, // 1995 Mar 31, 02:08 894
2814 79917696, // 1995 Apr 29, 17:36 895
2815 80173962, // 1995 May 29, 09:27 896
2816 80430060, // 1995 Jun 28, 00:50 897
2817 80685798, // 1995 Jul 27, 15:13 898
2818 80941146, // 1995 Aug 26, 04:31 899
2819 81196170, // 1995 Sep 24, 16:55 900
2820 81450936, // 1995 Oct 24, 04:36 901
2821 81705498, // 1995 Nov 22, 15:43 902
2822 81959892, // 1995 Dec 22, 02:22 903
2823 82214220, // 1996 Jan 20, 12:50 904
2824 82468620, // 1996 Feb 18, 23:30 905
2825 82723230, // 1996 Mar 19, 10:45 906
2826 82978134, // 1996 Apr 17, 22:49 907
2827 83233356, // 1996 May 17, 11:46 908
2828 83488896, // 1996 Jun 16, 01:36 909
2829 83744730, // 1996 Jul 15, 16:15 910
2830 84000804, // 1996 Aug 14, 07:34 911
2831 84256968, // 1996 Sep 12, 23:08 912
2832 84512970, // 1996 Oct 12, 14:15 913
2833 84768576, // 1996 Nov 11, 04:16 914
2834 85023696, // 1996 Dec 10, 16:56 915
2835 85278396, // 1997 Jan 9, 04:26 916
2836 85532796, // 1997 Feb 7, 15:06 917
2837 85787004, // 1997 Mar 9, 01:14 918
2838 86041092, // 1997 Apr 7, 11:02 919
2839 86295162, // 1997 May 6, 20:47 920
2840 86549424, // 1997 Jun 5, 07:04 921
2841 86804160, // 1997 Jul 4, 18:40 922
2842 87059604, // 1997 Aug 3, 08:14 923
2843 87315792, // 1997 Sep 1, 23:52 924
2844 87572472, // 1997 Oct 1, 16:52 925
2845 87829212, // 1997 Oct 31, 10:02 926
2846 88085604, // 1997 Nov 30, 02:14 927
2847 88341462, // 1997 Dec 29, 16:57 928
2848 88596726, // 1998 Jan 28, 06:01 929
2849 88851396, // 1998 Feb 26, 17:26 930
2850 89105484, // 1998 Mar 28, 03:14 931
2851 89359086, // 1998 Apr 26, 11:41 932
2852 89612472, // 1998 May 25, 19:32 933
2853 89866020, // 1998 Jun 24, 03:50 934
2854 90120144, // 1998 Jul 23, 13:44 935
2855 90375138, // 1998 Aug 22, 02:03 936
2856 90631092, // 1998 Sep 20, 17:02 937
2857 90887820, // 1998 Oct 20, 10:10 938
2858 91144962, // 1998 Nov 19, 04:27 939
2859 91402098, // 1998 Dec 18, 22:43 940
2860 91658796, // 1999 Jan 17, 15:46 941
2861 91914714, // 1999 Feb 16, 06:39 942
2862 92169648, // 1999 Mar 17, 18:48 943
2863 92423652, // 1999 Apr 16, 04:22 944
2864 92676990, // 1999 May 15, 12:05 945
2865 92930058, // 1999 Jun 13, 19:03 946
2866 93183264, // 1999 Jul 13, 02:24 947
2867 93436974, // 1999 Aug 11, 11:09 948
2868 93691452, // 1999 Sep 9, 22:02 949
2869 93946890, // 1999 Oct 9, 11:35 950
2870 94203318, // 1999 Nov 8, 03:53 951
2871 94460592, // 1999 Dec 7, 22:32 952
2872 94718244, // 2000 Jan 6, 18:14 953
2873 94975584, // 2000 Feb 5, 13:04 954
2874 95231982, // 2000 Mar 6, 05:17 955
2875 95487192, // 2000 Apr 4, 18:12 956
2876 95741352, // 2000 May 4, 04:12 957
2877 95994804, // 2000 Jun 2, 12:14 958
2878 96247920, // 2000 Jul 1, 19:20 959
2879 96501030, // 2000 Jul 31, 02:25 960
2880 96754434, // 2000 Aug 29, 10:19 961
2881 97008438, // 2000 Sep 27, 19:53 962
2882 97263348, // 2000 Oct 27, 07:58 963
2883 97519392, // 2000 Nov 25, 23:12 964
2884 97776492, // 2000 Dec 25, 17:22 965
2885 98034162, // 2001 Jan 24, 13:07 966
2886 98291652, // 2001 Feb 23, 08:22 967
2887 98548332, // 2001 Mar 25, 01:22 968
2888 98803956, // 2001 Apr 23, 15:26 969
2889 99058602, // 2001 May 23, 02:47 970
2890 99312468, // 2001 Jun 21, 11:58 971
2891 99565830, // 2001 Jul 20, 19:45 972
2892 99818970, // 2001 Aug 19, 02:55 973
2893 100072248, // 2001 Sep 17, 10:28 974
2894 100326024, // 2001 Oct 16, 19:24 975
2895 100580640, // 2001 Nov 15, 06:40 976
2896 100836288, // 2001 Dec 14, 20:48 977
2897 101092854, // 2002 Jan 13, 13:29 978
2898 101349966, // 2002 Feb 12, 07:41 979
2899 101607138, // 2002 Mar 14, 02:03 980
2900 101863926, // 2002 Apr 12, 19:21 981
2901 102120030, // 2002 May 12, 10:45 982
2902 102375282, // 2002 Jun 10, 23:47 983
2903 102629676, // 2002 Jul 10, 10:26 984
2904 102883410, // 2002 Aug 8, 19:15 985
2905 103136820, // 2002 Sep 7, 03:10 986
2906 103390308, // 2002 Oct 6, 11:18 987
2907 103644210, // 2002 Nov 4, 20:35 988
2908 103898730, // 2002 Dec 4, 07:35 989
2909 104153898, // 2003 Jan 2, 20:23 990
2910 104409654, // 2003 Feb 1, 10:49 991
2911 104665890, // 2003 Mar 3, 02:35 992
2912 104922468, // 2003 Apr 1, 19:18 993
2913 105179130, // 2003 May 1, 12:15 994
2914 105435480, // 2003 May 31, 04:20 995
2915 105691194, // 2003 Jun 29, 18:39 996
2916 105946158, // 2003 Jul 29, 06:53 997
2917 106200516, // 2003 Aug 27, 17:26 998
2918 106454574, // 2003 Sep 26, 03:09 999
2919 106708620, // 2003 Oct 25, 12:50 1000
2920 106962834, // 2003 Nov 23, 22:59 1001
2921 107217258, // 2003 Dec 23, 09:43 1002
2922 107471910, // 2004 Jan 21, 21:05 1003
2923 107726868, // 2004 Feb 20, 09:18 1004
2924 107982246, // 2004 Mar 20, 22:41 1005
2925 108238086, // 2004 Apr 19, 13:21 1006
2926 108494232, // 2004 May 19, 04:52 1007
2927 108750402, // 2004 Jun 17, 20:27 1008
2928 109006344, // 2004 Jul 17, 11:24 1009
2929 109261944, // 2004 Aug 16, 01:24 1010
2930 109517214, // 2004 Sep 14, 14:29 1011
2931 109772208, // 2004 Oct 14, 02:48 1012
2932 110026962, // 2004 Nov 12, 14:27 1013
2933 110281494, // 2004 Dec 12, 01:29 1014
2934 110535858, // 2005 Jan 10, 12:03 1015
2935 110790168, // 2005 Feb 8, 22:28 1016
2936 111044586, // 2005 Mar 10, 09:11 1017
2937 111299232, // 2005 Apr 8, 20:32 1018
2938 111554190, // 2005 May 8, 08:45 1019
2939 111809490, // 2005 Jun 6, 21:55 1020
2940 112065138, // 2005 Jul 6, 12:03 1021
2941 112321110, // 2005 Aug 5, 03:05 1022
2942 112577316, // 2005 Sep 3, 18:46 1023
2943 112833528, // 2005 Oct 3, 10:28 1024
2944 113089470, // 2005 Nov 2, 01:25 1025
2945 113344926, // 2005 Dec 1, 15:01 1026
2946 113599872, // 2005 Dec 31, 03:12 1027
2947 113854410, // 2006 Jan 29, 14:15 1028
2948 114108666, // 2006 Feb 28, 00:31 1029
2949 114362730, // 2006 Mar 29, 10:15 1030
2950 114616704, // 2006 Apr 27, 19:44 1031
2951 114870756, // 2006 May 27, 05:26 1032
2952 115125150, // 2006 Jun 25, 16:05 1033
2953 115380186, // 2006 Jul 25, 04:31 1034
2954 115636020, // 2006 Aug 23, 19:10 1035
2955 115892550, // 2006 Sep 22, 11:45 1036
2956 116149404, // 2006 Oct 22, 05:14 1037
2957 116406108, // 2006 Nov 20, 22:18 1038
2958 116662326, // 2006 Dec 20, 14:01 1039
2959 116917926, // 2007 Jan 19, 04:01 1040
2960 117172884, // 2007 Feb 17, 16:14 1041
2961 117427218, // 2007 Mar 19, 02:43 1042
2962 117680976, // 2007 Apr 17, 11:36 1043
2963 117934362, // 2007 May 16, 19:27 1044
2964 118187718, // 2007 Jun 15, 03:13 1045
2965 118441464, // 2007 Jul 14, 12:04 1046
2966 118695972, // 2007 Aug 12, 23:02 1047
2967 118951464, // 2007 Sep 11, 12:44 1048
2968 119207886, // 2007 Oct 11, 05:01 1049
2969 119464938, // 2007 Nov 9, 23:03 1050
2970 119722200, // 2007 Dec 9, 17:40 1051
2971 119979222, // 2008 Jan 8, 11:37 1052
2972 120235584, // 2008 Feb 7, 03:44 1053
2973 120491004, // 2008 Mar 7, 17:14 1054
2974 120745410, // 2008 Apr 6, 03:55 1055
2975 120998988, // 2008 May 5, 12:18 1056
2976 121252098, // 2008 Jun 3, 19:23 1057
2977 121505154, // 2008 Jul 3, 02:19 1058
2978 121758552, // 2008 Aug 1, 10:12 1059
2979 122012628, // 2008 Aug 30, 19:58 1060
2980 122267592, // 2008 Sep 29, 08:12 1061
2981 122523564, // 2008 Oct 28, 23:14 1062
2982 122780490, // 2008 Nov 27, 16:55 1063
2983 123038058, // 2008 Dec 27, 12:23 1064
2984 123295656, // 2009 Jan 26, 07:56 1065
2985 123552570, // 2009 Feb 25, 01:35 1066
2986 123808356, // 2009 Mar 26, 16:06 1067
2987 124062978, // 2009 Apr 25, 03:23 1068
2988 124316706, // 2009 May 24, 12:11 1069
2989 124569930, // 2009 Jun 22, 19:35 1070
2990 124823010, // 2009 Jul 22, 02:35 1071
2991 125076246, // 2009 Aug 20, 10:01 1072
2992 125329944, // 2009 Sep 18, 18:44 1073
2993 125584398, // 2009 Oct 18, 05:33 1074
2994 125839884, // 2009 Nov 16, 19:14 1075
2995 126096492, // 2009 Dec 16, 12:02 1076
2996 126353952, // 2010 Jan 15, 07:12 1077
2997 126611592, // 2010 Feb 14, 02:52 1078
2998 126868686, // 2010 Mar 15, 21:01 1079
2999 127124814, // 2010 Apr 14, 12:29 1080
3000 127379910, // 2010 May 14, 01:05 1081
3001 127634130, // 2010 Jun 12, 11:15 1082
3002 127887726, // 2010 Jul 11, 19:41 1083
3003 128140968, // 2010 Aug 10, 03:08 1084
3004 128394180, // 2010 Sep 8, 10:30 1085
3005 128647704, // 2010 Oct 7, 18:44 1086
3006 128901912, // 2010 Nov 6, 04:52 1087
3007 129157056, // 2010 Dec 5, 17:36 1088
3008 129413178, // 2011 Jan 4, 09:03 1089
3009 129670026, // 2011 Feb 3, 02:31 1090
3010 129927156, // 2011 Mar 4, 20:46 1091
3011 130184112, // 2011 Apr 3, 14:32 1092
3012 130440546, // 2011 May 3, 06:51 1093
3013 130696218, // 2011 Jun 1, 21:03 1094
3014 130951044, // 2011 Jul 1, 08:54 1095
3015 131205120, // 2011 Jul 30, 18:40 1096
3016 131458704, // 2011 Aug 29, 03:04 1097
3017 131712174, // 2011 Sep 27, 11:09 1098
3018 131965896, // 2011 Oct 26, 19:56 1099
3019 132220140, // 2011 Nov 25, 06:10 1100
3020 132474996, // 2011 Dec 24, 18:06 1101
3021 132730434, // 2012 Jan 23, 07:39 1102
3022 132986370, // 2012 Feb 21, 22:35 1103
3023 133242702, // 2012 Mar 22, 14:37 1104
3024 133499274, // 2012 Apr 21, 07:19 1105
3025 133755762, // 2012 May 20, 23:47 1106
3026 134011818, // 2012 Jun 19, 15:03 1107
3027 134267190, // 2012 Jul 19, 04:25 1108
3028 134521890, // 2012 Aug 17, 15:55 1109
3029 134776146, // 2012 Sep 16, 02:11 1110
3030 135030258, // 2012 Oct 15, 12:03 1111
3031 135284448, // 2012 Nov 13, 22:08 1112
3032 135538812, // 2012 Dec 13, 08:42 1113
3033 135793344, // 2013 Jan 11, 19:44 1114
3034 136048080, // 2013 Feb 10, 07:20 1115
3035 136303146, // 2013 Mar 11, 19:51 1116
3036 136558656, // 2013 Apr 10, 09:36 1117
3037 136814574, // 2013 May 10, 00:29 1118
3038 137070702, // 2013 Jun 8, 15:57 1119
3039 137326770, // 2013 Jul 8, 07:15 1120
3040 137582586, // 2013 Aug 6, 21:51 1121
3041 137838102, // 2013 Sep 5, 11:37 1122
3042 138093330, // 2013 Oct 5, 00:35 1123
3043 138348300, // 2013 Nov 3, 12:50 1124
3044 138603018, // 2013 Dec 3, 00:23 1125
3045 138857484, // 2014 Jan 1, 11:14 1126
3046 139111794, // 2014 Jan 30, 21:39 1127
3047 139366080, // 2014 Mar 1, 08:00 1128
3048 139620510, // 2014 Mar 30, 18:45 1129
3049 139875210, // 2014 Apr 29, 06:15 1130
3050 140130240, // 2014 May 28, 18:40 1131
3051 140385654, // 2014 Jun 27, 08:09 1132
3052 140641452, // 2014 Jul 26, 22:42 1133
3053 140897598, // 2014 Aug 25, 14:13 1134
3054 141153924, // 2014 Sep 24, 06:14 1135
3055 141410142, // 2014 Oct 23, 21:57 1136
3056 141665958, // 2014 Nov 22, 12:33 1137
3057 141921216, // 2014 Dec 22, 01:36 1138
3058 142175964, // 2015 Jan 20, 13:14 1139
3059 142430322, // 2015 Feb 18, 23:47 1140
3060 142684416, // 2015 Mar 20, 09:36 1141
3061 142938342, // 2015 Apr 18, 18:57 1142
3062 143192238, // 2015 May 18, 04:13 1143
3063 143446350, // 2015 Jun 16, 14:05 1144
3064 143700990, // 2015 Jul 16, 01:25 1145
3065 143956404, // 2015 Aug 14, 14:54 1146
3066 144212652, // 2015 Sep 13, 06:42 1147
3067 144469476, // 2015 Oct 13, 00:06 1148
3068 144726408, // 2015 Nov 11, 17:48 1149
3069 144982980, // 2015 Dec 11, 10:30 1150
3070 145238946, // 2016 Jan 10, 01:31 1151
3071 145494234, // 2016 Feb 8, 14:39 1152
3072 145748850, // 2016 Mar 9, 01:55 1153
3073 146002824, // 2016 Apr 7, 11:24 1154
3074 146256300, // 2016 May 6, 19:30 1155
3075 146509560, // 2016 Jun 5, 03:00 1156
3076 146763006, // 2016 Jul 4, 11:01 1157
3077 147017070, // 2016 Aug 2, 20:45 1158
3078 147272064, // 2016 Sep 1, 09:04 1159
3079 147528072, // 2016 Oct 1, 00:12 1160
3080 147784914, // 2016 Oct 30, 17:39 1161
3081 148042194, // 2016 Nov 29, 12:19 1162
3082 148299444, // 2016 Dec 29, 06:54 1163
3083 148556202, // 2017 Jan 28, 00:07 1164
3084 148812114, // 2017 Feb 26, 14:59 1165
3085 149066988, // 2017 Mar 28, 02:58 1166
3086 149320896, // 2017 Apr 26, 12:16 1167
3087 149574150, // 2017 May 25, 19:45 1168
3088 149827146, // 2017 Jun 24, 02:31 1169
3089 150080316, // 2017 Jul 23, 09:46 1170
3090 150334020, // 2017 Aug 21, 18:30 1171
3091 150588540, // 2017 Sep 20, 05:30 1172
3092 150844032, // 2017 Oct 19, 19:12 1173
3093 151100532, // 2017 Nov 18, 11:42 1174
3094 151357860, // 2017 Dec 18, 06:30 1175
3095 151615542, // 2018 Jan 17, 02:17 1176
3096 151872870, // 2018 Feb 15, 21:05 1177
3097 152129232, // 2018 Mar 17, 13:12 1178
3098 152384382, // 2018 Apr 16, 01:57 1179
3099 152638488, // 2018 May 15, 11:48 1180
3100 152891898, // 2018 Jun 13, 19:43 1181
3101 153145008, // 2018 Jul 13, 02:48 1182
3102 153398148, // 2018 Aug 11, 09:58 1183
3103 153651606, // 2018 Sep 9, 18:01 1184
3104 153905682, // 2018 Oct 9, 03:47 1185
3105 154160652, // 2018 Nov 7, 16:02 1186
3106 154416720, // 2018 Dec 7, 07:20 1187
3107 154673808, // 2019 Jan 6, 01:28 1188
3108 154931424, // 2019 Feb 4, 21:04 1189
3109 155188824, // 2019 Mar 6, 16:04 1190
3110 155445420, // 2019 Apr 5, 08:50 1191
3111 155700996, // 2019 May 4, 22:46 1192
3112 155955612, // 2019 Jun 3, 10:02 1193
3113 156209496, // 2019 Jul 2, 19:16 1194
3114 156462912, // 2019 Aug 1, 03:12 1195
3115 156716142, // 2019 Aug 30, 10:37 1196
3116 156969516, // 2019 Sep 28, 18:26 1197
3117 157223394, // 2019 Oct 28, 03:39 1198
3118 157478076, // 2019 Nov 26, 15:06 1199
3119 157733718, // 2019 Dec 26, 05:13 1200
3120 157990212, // 2020 Jan 24, 21:42 1201
3121 158247192, // 2020 Feb 23, 15:32 1202
3122 158504208, // 2020 Mar 24, 09:28 1203
3123 158760876, // 2020 Apr 23, 02:26 1204
3124 159016914, // 2020 May 22, 17:39 1205
3125 159272172, // 2020 Jun 21, 06:42 1206
3126 159526638, // 2020 Jul 20, 17:33 1207
3127 159780486, // 2020 Aug 19, 02:41 1208
3128 160034040, // 2020 Sep 17, 11:00 1209
3129 160287666, // 2020 Oct 16, 19:31 1210
3130 160541682, // 2020 Nov 15, 05:07 1211
3131 160796262, // 2020 Dec 14, 16:17 1212
3132 161051400, // 2021 Jan 13, 05:00 1213
3133 161307036, // 2021 Feb 11, 19:06 1214
3134 161563086, // 2021 Mar 13, 10:21 1215
3135 161819466, // 2021 Apr 12, 02:31 1216
3136 162075960, // 2021 May 11, 19:00 1217
3137 162332238, // 2021 Jun 10, 10:53 1218
3138 162587982, // 2021 Jul 10, 01:17 1219
3139 162843060, // 2021 Aug 8, 13:50 1220
3140 163097592, // 2021 Sep 7, 00:52 1221
3141 163351830, // 2021 Oct 6, 11:05 1222
3142 163606050, // 2021 Nov 4, 21:15 1223
3143 163860378, // 2021 Dec 4, 07:43 1224
3144 164114844, // 2022 Jan 2, 18:34 1225
3145 164369436, // 2022 Feb 1, 05:46 1226
3146 164624250, // 2022 Mar 2, 17:35 1227
3147 164879424, // 2022 Apr 1, 06:24 1228
3148 165135048, // 2022 Apr 30, 20:28 1229
3149 165391020, // 2022 May 30, 11:30 1230
3150 165647112, // 2022 Jun 29, 02:52 1231
3151 165903090, // 2022 Jul 28, 17:55 1232
3152 166158822, // 2022 Aug 27, 08:17 1233
3153 166414284, // 2022 Sep 25, 21:54 1234
3154 166669488, // 2022 Oct 25, 10:48 1235
3155 166924422, // 2022 Nov 23, 22:57 1236
3156 167179062, // 2022 Dec 23, 10:17 1237
3157 167433438, // 2023 Jan 21, 20:53 1238
3158 167687676, // 2023 Feb 20, 07:06 1239
3159 167941938, // 2023 Mar 21, 17:23 1240
3160 168196398, // 2023 Apr 20, 04:13 1241
3161 168451158, // 2023 May 19, 15:53 1242
3162 168706302, // 2023 Jun 18, 04:37 1243
3163 168961872, // 2023 Jul 17, 18:32 1244
3164 169217868, // 2023 Aug 16, 09:38 1245
3165 169474200, // 2023 Sep 15, 01:40 1246
3166 169730610, // 2023 Oct 14, 17:55 1247
3167 169986762, // 2023 Nov 13, 09:27 1248
3168 170242392, // 2023 Dec 12, 23:32 1249
3169 170497422, // 2024 Jan 11, 11:57 1250
3170 170751954, // 2024 Feb 9, 22:59 1251
3171 171006126, // 2024 Mar 10, 09:01 1252
3172 171260046, // 2024 Apr 8, 18:21 1253
3173 171513852, // 2024 May 8, 03:22 1254
3174 171767748, // 2024 Jun 6, 12:38 1255
3175 172022022, // 2024 Jul 5, 22:57 1256
3176 172276998, // 2024 Aug 4, 11:13 1257
3177 172532856, // 2024 Sep 3, 01:56 1258
3178 172789500, // 2024 Oct 2, 18:50 1259
3179 173046528, // 2024 Nov 1, 12:48 1260
3180 173303412, // 2024 Dec 1, 06:22 1261
3181 173559762, // 2024 Dec 30, 22:27 1262
3182 173815416, // 2025 Jan 29, 12:36 1263
3183 174070350, // 2025 Feb 28, 00:45 1264
3184 174324588, // 2025 Mar 29, 10:58 1265
3185 174578232, // 2025 Apr 27, 19:32 1266
3186 174831498, // 2025 May 27, 03:03 1267
3187 175084752, // 2025 Jun 25, 10:32 1268
3188 175338426, // 2025 Jul 24, 19:11 1269
3189 175592916, // 2025 Aug 23, 06:06 1270
3190 175848444, // 2025 Sep 21, 19:54 1271
3191 176104956, // 2025 Oct 21, 12:26 1272
3192 176362128, // 2025 Nov 20, 06:48 1273
3193 176619504, // 2025 Dec 20, 01:44 1274
3194 176876592, // 2026 Jan 18, 19:52 1275
3195 177132966, // 2026 Feb 17, 12:01 1276
3196 177388344, // 2026 Mar 19, 01:24 1277
3197 177642672, // 2026 Apr 17, 11:52 1278
3198 177896166, // 2026 May 16, 20:01 1279
3199 178149204, // 2026 Jun 15, 02:54 1280
3200 178402224, // 2026 Jul 14, 09:44 1281
3201 178655616, // 2026 Aug 12, 17:36 1282
3202 178909722, // 2026 Sep 11, 03:27 1283
3203 179164740, // 2026 Oct 10, 15:50 1284
3204 179420772, // 2026 Nov 9, 07:02 1285
3205 179677752, // 2026 Dec 9, 00:52 1286
3206 179935344, // 2027 Jan 7, 20:24 1287
3207 180192936, // 2027 Feb 6, 15:56 1288
3208 180449820, // 2027 Mar 8, 09:30 1289
3209 180705546, // 2027 Apr 6, 23:51 1290
3210 180960114, // 2027 May 6, 10:59 1291
3211 181213806, // 2027 Jun 4, 19:41 1292
3212 181467012, // 2027 Jul 4, 03:02 1293
3213 181720110, // 2027 Aug 2, 10:05 1294
3214 181973406, // 2027 Aug 31, 17:41 1295
3215 182227176, // 2027 Sep 30, 02:36 1296
3216 182481696, // 2027 Oct 29, 13:36 1297
3217 182737224, // 2027 Nov 28, 03:24 1298
3218 182993832, // 2027 Dec 27, 20:12 1299
3219 183251238, // 2028 Jan 26, 15:13 1300
3220 183508788, // 2028 Feb 25, 10:38 1301
3221 183765792, // 2028 Mar 26, 04:32 1302
3222 184021842, // 2028 Apr 24, 19:47 1303
3223 184276902, // 2028 May 24, 08:17 1304
3224 184531128, // 2028 Jun 22, 18:28 1305
3225 184784772, // 2028 Jul 22, 03:02 1306
3226 185038104, // 2028 Aug 20, 10:44 1307
3227 185291424, // 2028 Sep 18, 18:24 1308
3228 185545062, // 2028 Oct 18, 02:57 1309
3229 185799348, // 2028 Nov 16, 13:18 1310
3230 186054516, // 2028 Dec 16, 02:06 1311
3231 186310590, // 2029 Jan 14, 17:25 1312
3232 186567312, // 2029 Feb 13, 10:32 1313
3233 186824280, // 2029 Mar 15, 04:20 1314
3234 187081080, // 2029 Apr 13, 21:40 1315
3235 187337412, // 2029 May 13, 13:42 1316
3236 187593066, // 2029 Jun 12, 03:51 1317
3237 187847946, // 2029 Jul 11, 15:51 1318
3238 188102136, // 2029 Aug 10, 01:56 1319
3239 188355870, // 2029 Sep 8, 10:45 1320
3240 188609490, // 2029 Oct 7, 19:15 1321
3241 188863344, // 2029 Nov 6, 04:24 1322
3242 189117672, // 2029 Dec 5, 14:52 1323
3243 189372534, // 2030 Jan 4, 02:49 1324
3244 189627888, // 2030 Feb 2, 16:08 1325
3245 189883650, // 2030 Mar 4, 06:35 1326
3246 190139778, // 2030 Apr 2, 22:03 1327
3247 190396152, // 2030 May 2, 14:12 1328
3248 190652526, // 2030 Jun 1, 06:21 1329
3249 190908570, // 2030 Jun 30, 21:35 1330
3250 191164026, // 2030 Jul 30, 11:11 1331
3251 191418882, // 2030 Aug 28, 23:07 1332
3252 191673330, // 2030 Sep 27, 09:55 1333
3253 191927622, // 2030 Oct 26, 20:17 1334
3254 192181962, // 2030 Nov 25, 06:47 1335
3255 192436392, // 2030 Dec 24, 17:32 1336
3256 192690906, // 2031 Jan 23, 04:31 1337
3257 192945534, // 2031 Feb 21, 15:49 1338
3258 193200414, // 2031 Mar 23, 03:49 1339
3259 193455702, // 2031 Apr 21, 16:57 1340
3260 193711422, // 2031 May 21, 07:17 1341
3261 193967430, // 2031 Jun 19, 22:25 1342
3262 194223480, // 2031 Jul 19, 13:40 1343
3263 194479392, // 2031 Aug 18, 04:32 1344
3264 194735082, // 2031 Sep 16, 18:47 1345
3265 194990526, // 2031 Oct 16, 08:21 1346
3266 195245700, // 2031 Nov 14, 21:10 1347
3267 195500556, // 2031 Dec 14, 09:06 1348
3268 195755082, // 2032 Jan 12, 20:07 1349
3269 196009344, // 2032 Feb 11, 06:24 1350
3270 196263504, // 2032 Mar 11, 16:24 1351
3271 196517760, // 2032 Apr 10, 02:40 1352
3272 196772256, // 2032 May 9, 13:36 1353
3273 197027112, // 2032 Jun 8, 01:32 1354
3274 197282412, // 2032 Jul 7, 14:42 1355
3275 197538192, // 2032 Aug 6, 05:12 1356
3276 197794422, // 2032 Sep 4, 20:57 1357
3277 198050922, // 2032 Oct 4, 13:27 1358
3278 198307350, // 2032 Nov 3, 05:45 1359
3279 198563358, // 2032 Dec 2, 20:53 1360
3280 198818742, // 2033 Jan 1, 10:17 1361
3281 199073520, // 2033 Jan 30, 22:00 1362
3282 199327818, // 2033 Mar 1, 08:23 1363
3283 199581786, // 2033 Mar 30, 17:51 1364
3284 199835556, // 2033 Apr 29, 02:46 1365
3285 200089302, // 2033 May 28, 11:37 1366
3286 200343282, // 2033 Jun 26, 21:07 1367
3287 200597838, // 2033 Jul 26, 08:13 1368
3288 200853240, // 2033 Aug 24, 21:40 1369
3289 201109560, // 2033 Sep 23, 13:40 1370
3290 201366534, // 2033 Oct 23, 07:29 1371
3291 201623640, // 2033 Nov 22, 01:40 1372
3292 201880362, // 2033 Dec 21, 18:47 1373
3293 202136412, // 2034 Jan 20, 10:02 1374
3294 202391700, // 2034 Feb 18, 23:10 1375
3295 202646250, // 2034 Mar 20, 10:15 1376
3296 202900116, // 2034 Apr 18, 19:26 1377
3297 203153472, // 2034 May 18, 03:12 1378
3298 203406636, // 2034 Jun 16, 10:26 1379
3299 203660010, // 2034 Jul 15, 18:15 1380
3300 203914038, // 2034 Aug 14, 03:53 1381
3301 204169044, // 2034 Sep 12, 16:14 1382
3302 204425118, // 2034 Oct 12, 07:33 1383
3303 204682056, // 2034 Nov 11, 01:16 1384
3304 204939444, // 2034 Dec 10, 20:14 1385
3305 205196778, // 2035 Jan 9, 15:03 1386
3306 205453572, // 2035 Feb 8, 08:22 1387
3307 205709460, // 2035 Mar 9, 23:10 1388
3308 205964268, // 2035 Apr 8, 10:58 1389
3309 206218104, // 2035 May 7, 20:04 1390
3310 206471280, // 2035 Jun 6, 03:20 1391
3311 206724234, // 2035 Jul 5, 09:59 1392
3312 206977386, // 2035 Aug 3, 17:11 1393
3313 207231114, // 2035 Sep 2, 01:59 1394
3314 207485682, // 2035 Oct 1, 13:07 1395
3315 207741234, // 2035 Oct 31, 02:59 1396
3316 207997788, // 2035 Nov 29, 19:38 1397
3317 208255146, // 2035 Dec 29, 14:31 1398
3318 208512822, // 2036 Jan 28, 10:17 1399
3319 208770120, // 2036 Feb 27, 05:00 1400
3320 209026422, // 2036 Mar 27, 20:57 1401
3321 209281518, // 2036 Apr 26, 09:33 1402
3322 209535582, // 2036 May 25, 19:17 1403
3323 209788980, // 2036 Jun 24, 03:10 1404
3324 210042102, // 2036 Jul 23, 10:17 1405
3325 210295290, // 2036 Aug 21, 17:35 1406
3326 210548826, // 2036 Sep 20, 01:51 1407
3327 210802980, // 2036 Oct 19, 11:50 1408
3328 211058010, // 2036 Nov 18, 00:15 1409
3329 211314090, // 2036 Dec 17, 15:35 1410
3330 211571124, // 2037 Jan 16, 09:34 1411
3331 211828644, // 2037 Feb 15, 04:54 1412
3332 212085942, // 2037 Mar 16, 23:37 1413
3333 212342448, // 2037 Apr 15, 16:08 1414
3334 212597970, // 2037 May 15, 05:55 1415
3335 212852586, // 2037 Jun 13, 17:11 1416
3336 213106512, // 2037 Jul 13, 02:32 1417
3337 213360012, // 2037 Aug 11, 10:42 1418
3338 213613350, // 2037 Sep 9, 18:25 1419
3339 213866850, // 2037 Oct 9, 02:35 1420
3340 214120818, // 2037 Nov 7, 12:03 1421
3341 214375554, // 2037 Dec 6, 23:39 1422
3342 214631172, // 2038 Jan 5, 13:42 1423
3343 214887552, // 2038 Feb 4, 05:52 1424
3344 215144370, // 2038 Mar 5, 23:15 1425
3345 215401218, // 2038 Apr 4, 16:43 1426
3346 215657760, // 2038 May 4, 09:20 1427
3347 215913744, // 2038 Jun 3, 00:24 1428
3348 216169032, // 2038 Jul 2, 13:32 1429
3349 216423600, // 2038 Aug 1, 00:40 1430
3350 216677592, // 2038 Aug 30, 10:12 1431
3351 216931302, // 2038 Sep 28, 18:57 1432
3352 217185078, // 2038 Oct 28, 03:53 1433
3353 217439202, // 2038 Nov 26, 13:47 1434
3354 217693812, // 2038 Dec 26, 01:02 1435
3355 217948896, // 2039 Jan 24, 13:36 1436
3356 218204388, // 2039 Feb 23, 03:18 1437
3357 218460240, // 2039 Mar 24, 18:00 1438
3358 218716410, // 2039 Apr 23, 09:35 1439
3359 218972748, // 2039 May 23, 01:38 1440
3360 219228966, // 2039 Jun 21, 17:21 1441
3361 219484764, // 2039 Jul 21, 07:54 1442
3362 219739980, // 2039 Aug 19, 20:50 1443
3363 219994698, // 2039 Sep 18, 08:23 1444
3364 220249134, // 2039 Oct 17, 19:09 1445
3365 220503516, // 2039 Nov 16, 05:46 1446
3366 220757952, // 2039 Dec 15, 16:32 1447
3367 221012430, // 2040 Jan 14, 03:25 1448
3368 221266950, // 2040 Feb 12, 14:25 1449
3369 221521602, // 2040 Mar 13, 01:47 1450
3370 221776560, // 2040 Apr 11, 14:00 1451
3371 222031968, // 2040 May 11, 03:28 1452
3372 222287778, // 2040 Jun 9, 18:03 1453
3373 222543810, // 2040 Jul 9, 09:15 1454
3374 222799836, // 2040 Aug 8, 00:26 1455
3375 223055724, // 2040 Sep 6, 15:14 1456
3376 223311396, // 2040 Oct 6, 05:26 1457
3377 223566816, // 2040 Nov 4, 18:56 1458
3378 223821918, // 2040 Dec 4, 07:33 1459
3379 224076648, // 2041 Jan 2, 19:08 1460
3380 224331018, // 2041 Feb 1, 05:43 1461
3381 224585154, // 2041 Mar 2, 15:39 1462
3382 224839260, // 2041 Apr 1, 01:30 1463
3383 225093522, // 2041 Apr 30, 11:47 1464
3384 225348096, // 2041 May 29, 22:56 1465
3385 225603102, // 2041 Jun 28, 11:17 1466
3386 225858612, // 2041 Jul 28, 01:02 1467
3387 226114656, // 2041 Aug 26, 16:16 1468
3388 226371126, // 2041 Sep 25, 08:41 1469
3389 226627740, // 2041 Oct 25, 01:30 1470
3390 226884096, // 2041 Nov 23, 17:36 1471
3391 227139876, // 2041 Dec 23, 08:06 1472
3392 227394972, // 2042 Jan 21, 20:42 1473
3393 227649474, // 2042 Feb 20, 07:39 1474
3394 227903538, // 2042 Mar 21, 17:23 1475
3395 228157314, // 2042 Apr 20, 02:19 1476
3396 228410970, // 2042 May 19, 10:55 1477
3397 228664728, // 2042 Jun 17, 19:48 1478
3398 228918912, // 2042 Jul 17, 05:52 1479
3399 229173846, // 2042 Aug 15, 18:01 1480
3400 229429740, // 2042 Sep 14, 08:50 1481
3401 229686498, // 2042 Oct 14, 02:03 1482
3402 229943688, // 2042 Nov 12, 20:28 1483
3403 230200734, // 2042 Dec 12, 14:29 1484
3404 230457198, // 2043 Jan 11, 06:53 1485
3405 230712882, // 2043 Feb 9, 21:07 1486
3406 230967774, // 2043 Mar 11, 09:09 1487
3407 231221922, // 2043 Apr 9, 19:07 1488
3408 231475446, // 2043 May 9, 03:21 1489
3409 231728610, // 2043 Jun 7, 10:35 1490
3410 231981786, // 2043 Jul 6, 17:51 1491
3411 232235418, // 2043 Aug 5, 02:23 1492
3412 232489902, // 2043 Sep 3, 13:17 1493
3413 232745472, // 2043 Oct 3, 03:12 1494
3414 233002068, // 2043 Nov 1, 19:58 1495
3415 233259342, // 2043 Dec 1, 14:37 1496
3416 233516808, // 2043 Dec 31, 09:48 1497
3417 233773944, // 2044 Jan 30, 04:04 1498
3418 234030312, // 2044 Feb 28, 20:12 1499
3419 234285636, // 2044 Mar 29, 09:26 1500
3420 234539892, // 2044 Apr 27, 19:42 1501
3421 234793320, // 2044 May 27, 03:40 1502
3422 235046304, // 2044 Jun 25, 10:24 1503
3423 235299300, // 2044 Jul 24, 17:10 1504
3424 235552716, // 2044 Aug 23, 01:06 1505
3425 235806858, // 2044 Sep 21, 11:03 1506
3426 236061936, // 2044 Oct 20, 23:36 1507
3427 236318028, // 2044 Nov 19, 14:58 1508
3428 236575038, // 2044 Dec 19, 08:53 1509
3429 236832630, // 2045 Jan 18, 04:25 1510
3430 237090186, // 2045 Feb 16, 23:51 1511
3431 237347010, // 2045 Mar 18, 17:15 1512
3432 237602682, // 2045 Apr 17, 07:27 1513
3433 237857202, // 2045 May 16, 18:27 1514
3434 238110870, // 2045 Jun 15, 03:05 1515
3435 238364094, // 2045 Jul 14, 10:29 1516
3436 238617234, // 2045 Aug 12, 17:39 1517
3437 238870608, // 2045 Sep 11, 01:28 1518
3438 239124462, // 2045 Oct 10, 10:37 1519
3439 239379054, // 2045 Nov 8, 21:49 1520
3440 239634606, // 2045 Dec 8, 11:41 1521
3441 239891184, // 2046 Jan 7, 04:24 1522
3442 240148500, // 2046 Feb 5, 23:10 1523
3443 240405936, // 2046 Mar 7, 18:16 1524
3444 240662832, // 2046 Apr 6, 11:52 1525
3445 240918816, // 2046 May 6, 02:56 1526
3446 241173852, // 2046 Jun 4, 15:22 1527
3447 241428114, // 2046 Jul 4, 01:39 1528
3448 241681830, // 2046 Aug 2, 10:25 1529
3449 241935270, // 2046 Aug 31, 18:25 1530
3450 242188710, // 2046 Sep 30, 02:25 1531
3451 242442462, // 2046 Oct 29, 11:17 1532
3452 242696820, // 2046 Nov 27, 21:50 1533
3453 242951994, // 2046 Dec 27, 10:39 1534
3454 243207984, // 2047 Jan 26, 01:44 1535
3455 243464556, // 2047 Feb 24, 18:26 1536
3456 243721344, // 2047 Mar 26, 11:44 1537
3457 243978000, // 2047 Apr 25, 04:40 1538
3458 244234242, // 2047 May 24, 20:27 1539
3459 244489896, // 2047 Jun 23, 10:36 1540
3460 244744854, // 2047 Jul 22, 22:49 1541
3461 244999176, // 2047 Aug 21, 09:16 1542
3462 245253066, // 2047 Sep 19, 18:31 1543
3463 245506848, // 2047 Oct 19, 03:28 1544
3464 245760834, // 2047 Nov 17, 12:59 1545
3465 246015228, // 2047 Dec 16, 23:38 1546
3466 246270072, // 2048 Jan 15, 11:32 1547
3467 246525312, // 2048 Feb 14, 00:32 1548
3468 246780888, // 2048 Mar 14, 14:28 1549
3469 247036800, // 2048 Apr 13, 05:20 1550
3470 247292988, // 2048 May 12, 20:58 1551
3471 247549260, // 2048 Jun 11, 12:50 1552
3472 247805304, // 2048 Jul 11, 04:04 1553
3473 248060874, // 2048 Aug 9, 17:59 1554
3474 248315910, // 2048 Sep 8, 06:25 1555
3475 248570550, // 2048 Oct 7, 17:45 1556
3476 248825034, // 2048 Nov 6, 04:39 1557
3477 249079500, // 2048 Dec 5, 15:30 1558
3478 249333990, // 2049 Jan 4, 02:25 1559
3479 249588456, // 2049 Feb 2, 13:16 1560
3480 249842952, // 2049 Mar 4, 00:12 1561
3481 250097634, // 2049 Apr 2, 11:39 1562
3482 250352706, // 2049 May 2, 00:11 1563
3483 250608240, // 2049 May 31, 14:00 1564
3484 250864146, // 2049 Jun 30, 04:51 1565
3485 251120202, // 2049 Jul 29, 20:07 1566
3486 251376234, // 2049 Aug 28, 11:19 1567
3487 251632110, // 2049 Sep 27, 02:05 1568
3488 251887770, // 2049 Oct 26, 16:15 1569
3489 252143136, // 2049 Nov 25, 05:36 1570
3490 252398112, // 2049 Dec 24, 17:52 1571
3491 252652662, // 2050 Jan 23, 04:57 1572
3492 252906858, // 2050 Feb 21, 15:03 1573
3493 253160886, // 2050 Mar 23, 00:41 1574
3494 253414956, // 2050 Apr 21, 10:26 1575
3495 253669266, // 2050 May 20, 20:51 1576
3496 253923972, // 2050 Jun 19, 08:22 1577
3497 254179182, // 2050 Jul 18, 21:17 1578
3498 254434962, // 2050 Aug 17, 11:47 1579
3499 254691294, // 2050 Sep 16, 03:49 1580
3500 254947974, // 2050 Oct 15, 20:49 1581
3501 255204612, // 2050 Nov 14, 13:42 1582
3502 255460788, // 2050 Dec 14, 05:18 1583
3503 255716268, // 2051 Jan 12, 18:58 1584
3504 255971046, // 2051 Feb 11, 06:41 1585
3505 256225272, // 2051 Mar 12, 16:52 1586
3506 256479114, // 2051 Apr 11, 01:59 1587
3507 256732734, // 2051 May 10, 10:29 1588
3508 256986336, // 2051 Jun 8, 18:56 1589
3509 257240214, // 2051 Jul 8, 04:09 1590
3510 257494710, // 2051 Aug 6, 15:05 1591
3511 257750118, // 2051 Sep 5, 04:33 1592
3512 258006522, // 2051 Oct 4, 20:47 1593
3513 258263634, // 2051 Nov 3, 14:59 1594
3514 258520902, // 2051 Dec 3, 09:37 1595
3515 258777756, // 2052 Jan 2, 03:06 1596
3516 259033860, // 2052 Jan 31, 18:30 1597
3517 259289136, // 2052 Mar 1, 07:36 1598
3518 259543602, // 2052 Mar 30, 18:27 1599
3519 259797366, // 2052 Apr 29, 03:21 1600
3520 260050620, // 2052 May 28, 10:50 1601
3521 260303700, // 2052 Jun 26, 17:50 1602
3522 260557026, // 2052 Jul 26, 01:31 1603
3523 260811042, // 2052 Aug 24, 11:07 1604
3524 261066078, // 2052 Sep 22, 23:33 1605
3525 261322218, // 2052 Oct 22, 15:03 1606
3526 261579252, // 2052 Nov 21, 09:02 1607
3527 261836730, // 2052 Dec 21, 04:15 1608
3528 262094112, // 2053 Jan 19, 23:12 1609
3529 262350912, // 2053 Feb 18, 16:32 1610
3530 262606752, // 2053 Mar 20, 07:12 1611
3531 262861488, // 2053 Apr 18, 18:48 1612
3532 263115258, // 2053 May 18, 03:43 1613
3533 263368386, // 2053 Jun 16, 10:51 1614
3534 263621316, // 2053 Jul 15, 17:26 1615
3535 263874486, // 2053 Aug 14, 00:41 1616
3536 264128256, // 2053 Sep 12, 09:36 1617
3537 264382878, // 2053 Oct 11, 20:53 1618
3538 264638490, // 2053 Nov 10, 10:55 1619
3539 264895080, // 2053 Dec 10, 03:40 1620
3540 265152444, // 2054 Jan 8, 22:34 1621
3541 265410084, // 2054 Feb 7, 18:14 1622
3542 265667316, // 2054 Mar 9, 12:46 1623
3543 265923552, // 2054 Apr 8, 04:32 1624
3544 266178600, // 2054 May 7, 17:00 1625
3545 266432640, // 2054 Jun 6, 02:40 1626
3546 266686044, // 2054 Jul 5, 10:34 1627
3547 266939208, // 2054 Aug 3, 17:48 1628
3548 267192468, // 2054 Sep 2, 01:18 1629
3549 267446094, // 2054 Oct 1, 09:49 1630
3550 267700326, // 2054 Oct 30, 20:01 1631
3551 267955404, // 2054 Nov 29, 08:34 1632
3552 268211466, // 2054 Dec 28, 23:51 1633
3553 268468434, // 2055 Jan 27, 17:39 1634
3554 268725834, // 2055 Feb 26, 12:39 1635
3555 268983006, // 2055 Mar 28, 07:01 1636
3556 269239422, // 2055 Apr 26, 23:17 1637
3557 269494902, // 2055 May 26, 12:57 1638
3558 269749530, // 2055 Jun 25, 00:15 1639
3559 270003528, // 2055 Jul 24, 09:48 1640
3560 270257124, // 2055 Aug 22, 18:14 1641
3561 270510594, // 2055 Sep 21, 02:19 1642
3562 270764214, // 2055 Oct 20, 10:49 1643
3563 271018284, // 2055 Nov 18, 20:34 1644
3564 271273050, // 2055 Dec 18, 08:15 1645
3565 271528620, // 2056 Jan 16, 22:10 1646
3566 271784880, // 2056 Feb 15, 14:00 1647
3567 272041512, // 2056 Mar 16, 06:52 1648
3568 272298186, // 2056 Apr 14, 23:51 1649
3569 272554596, // 2056 May 14, 16:06 1650
3570 272810544, // 2056 Jun 13, 07:04 1651
3571 273065880, // 2056 Jul 12, 20:20 1652
3572 273320568, // 2056 Aug 11, 07:48 1653
3573 273574722, // 2056 Sep 9, 17:47 1654
3574 273828600, // 2056 Oct 9, 03:00 1655
3575 274082526, // 2056 Nov 7, 12:21 1656
3576 274336746, // 2056 Dec 6, 22:31 1657
3577 274591374, // 2057 Jan 5, 09:49 1658
3578 274846386, // 2057 Feb 3, 22:11 1659
3579 275101710, // 2057 Mar 5, 11:25 1660
3580 275357346, // 2057 Apr 4, 01:31 1661
3581 275613312, // 2057 May 3, 16:32 1662
3582 275869506, // 2057 Jun 2, 08:11 1663
3583 276125682, // 2057 Jul 1, 23:47 1664
3584 276381552, // 2057 Jul 31, 14:32 1665
3585 276636924, // 2057 Aug 30, 03:54 1666
3586 276891840, // 2057 Sep 28, 16:00 1667
3587 277146474, // 2057 Oct 28, 03:19 1668
3588 277401012, // 2057 Nov 26, 14:22 1669
3589 277655532, // 2057 Dec 26, 01:22 1670
3590 277910004, // 2058 Jan 24, 12:14 1671
3591 278164422, // 2058 Feb 22, 22:57 1672
3592 278418900, // 2058 Mar 24, 09:50 1673
3593 278673654, // 2058 Apr 22, 21:29 1674
3594 278928858, // 2058 May 22, 10:23 1675
3595 279184530, // 2058 Jun 21, 00:35 1676
3596 279440520, // 2058 Jul 20, 15:40 1677
3597 279696618, // 2058 Aug 19, 07:03 1678
3598 279952662, // 2058 Sep 17, 22:17 1679
3599 280208550, // 2058 Oct 17, 13:05 1680
3600 280464174, // 2058 Nov 16, 03:09 1681
3601 280719426, // 2058 Dec 15, 16:11 1682
3602 280974222, // 2059 Jan 14, 03:57 1683
3603 281228562, // 2059 Feb 12, 14:27 1684
3604 281482590, // 2059 Mar 14, 00:05 1685
3605 281736534, // 2059 Apr 12, 09:29 1686
3606 281990610, // 2059 May 11, 19:15 1687
3607 282245022, // 2059 Jun 10, 05:57 1688
3608 282499908, // 2059 Jul 9, 17:58 1689
3609 282755388, // 2059 Aug 8, 07:38 1690
3610 283011486, // 2059 Sep 6, 23:01 1691
3611 283268100, // 2059 Oct 6, 15:50 1692
3612 283524906, // 2059 Nov 5, 09:11 1693
3613 283781454, // 2059 Dec 5, 01:49 1694
3614 284037360, // 2060 Jan 3, 16:40 1695
3615 284292492, // 2060 Feb 2, 05:22 1696
3616 284546952, // 2060 Mar 2, 16:12 1697
3617 284800908, // 2060 Apr 1, 01:38 1698
3618 285054546, // 2060 Apr 30, 10:11 1699
3619 285308064, // 2060 May 29, 18:24 1700
3620 285561708, // 2060 Jun 28, 02:58 1701
3621 285815820, // 2060 Jul 27, 12:50 1702
3622 286070736, // 2060 Aug 26, 00:56 1703
3623 286326684, // 2060 Sep 24, 15:54 1704
3624 286583556, // 2060 Oct 24, 09:26 1705
3625 286840896, // 2060 Nov 23, 04:16 1706
3626 287098080, // 2060 Dec 22, 22:40 1707
3627 287354616, // 2061 Jan 21, 15:16 1708
3628 287610306, // 2061 Feb 20, 05:31 1709
3629 287865138, // 2061 Mar 21, 17:23 1710
3630 288119190, // 2061 Apr 20, 03:05 1711
3631 288372618, // 2061 May 19, 11:03 1712
3632 288625698, // 2061 Jun 17, 18:03 1713
3633 288878826, // 2061 Jul 17, 01:11 1714
3634 289132440, // 2061 Aug 15, 09:40 1715
3635 289386942, // 2061 Sep 13, 20:37 1716
3636 289642572, // 2061 Oct 13, 10:42 1717
3637 289899240, // 2061 Nov 12, 03:40 1718
3638 290156598, // 2061 Dec 11, 22:33 1719
3639 290414118, // 2062 Jan 10, 17:53 1720
3640 290671266, // 2062 Feb 9, 12:11 1721
3641 290927598, // 2062 Mar 11, 04:13 1722
3642 291182862, // 2062 Apr 9, 17:17 1723
3643 291437058, // 2062 May 9, 03:23 1724
3644 291690432, // 2062 Jun 7, 11:12 1725
3645 291943398, // 2062 Jul 6, 17:53 1726
3646 292196400, // 2062 Aug 5, 00:40 1727
3647 292449852, // 2062 Sep 3, 08:42 1728
3648 292704054, // 2062 Oct 2, 18:49 1729
3649 292959198, // 2062 Nov 1, 07:33 1730
3650 293215326, // 2062 Nov 30, 23:01 1731
3651 293472342, // 2062 Dec 30, 16:57 1732
3652 293729898, // 2063 Jan 29, 12:23 1733
3653 293987388, // 2063 Feb 28, 07:38 1734
3654 294244140, // 2063 Mar 30, 00:50 1735
3655 294499752, // 2063 Apr 28, 14:52 1736
3656 294754242, // 2063 May 28, 01:47 1737
3657 295007916, // 2063 Jun 26, 10:26 1738
3658 295261170, // 2063 Jul 25, 17:55 1739
3659 295514382, // 2063 Aug 24, 01:17 1740
3660 295767846, // 2063 Sep 22, 09:21 1741
3661 296021796, // 2063 Oct 21, 18:46 1742
3662 296276454, // 2063 Nov 20, 06:09 1743
3663 296532024, // 2063 Dec 19, 20:04 1744
3664 296788542, // 2064 Jan 18, 12:37 1745
3665 297045738, // 2064 Feb 17, 07:03 1746
3666 297303030, // 2064 Mar 18, 01:45 1747
3667 297559812, // 2064 Apr 16, 19:02 1748
3668 297815730, // 2064 May 16, 09:55 1749
3669 298070766, // 2064 Jun 14, 22:21 1750
3670 298325076, // 2064 Jul 14, 08:46 1751
3671 298578894, // 2064 Aug 12, 17:49 1752
3672 298832466, // 2064 Sep 11, 02:11 1753
3673 299086044, // 2064 Oct 10, 10:34 1754
3674 299339910, // 2064 Nov 8, 19:45 1755
3675 299594334, // 2064 Dec 8, 06:29 1756
3676 299849490, // 2065 Jan 6, 19:15 1757
3677 300105372, // 2065 Feb 5, 10:02 1758
3678 300361770, // 2065 Mar 7, 02:15 1759
3679 300618366, // 2065 Apr 5, 19:01 1760
3680 300874860, // 2065 May 5, 11:30 1761
3681 301131030, // 2065 Jun 4, 03:05 1762
3682 301386696, // 2065 Jul 3, 17:16 1763
3683 301641756, // 2065 Aug 2, 05:46 1764
3684 301896234, // 2065 Aug 31, 16:39 1765
3685 302150304, // 2065 Sep 30, 02:24 1766
3686 302404248, // 2065 Oct 29, 11:48 1767
3687 302658360, // 2065 Nov 27, 21:40 1768
3688 302912802, // 2065 Dec 27, 08:27 1769
3689 303167604, // 2066 Jan 25, 20:14 1770
3690 303422706, // 2066 Feb 24, 08:51 1771
3691 303678084, // 2066 Mar 25, 22:14 1772
3692 303933774, // 2066 Apr 24, 12:29 1773
3693 304189788, // 2066 May 24, 03:38 1774
3694 304445970, // 2066 Jun 22, 19:15 1775
3695 304702044, // 2066 Jul 22, 10:34 1776
3696 304957740, // 2066 Aug 21, 00:50 1777
3697 305212962, // 2066 Sep 19, 13:47 1778
3698 305467812, // 2066 Oct 19, 01:42 1779
3699 305722476, // 2066 Nov 17, 13:06 1780
3700 305977062, // 2066 Dec 17, 00:17 1781
3701 306231576, // 2067 Jan 15, 11:16 1782
3702 306485982, // 2067 Feb 13, 21:57 1783
3703 306740334, // 2067 Mar 15, 08:29 1784
3704 306994824, // 2067 Apr 13, 19:24 1785
3705 307249680, // 2067 May 13, 07:20 1786
3706 307505046, // 2067 Jun 11, 20:41 1787
3707 307760856, // 2067 Jul 11, 11:16 1788
3708 308016936, // 2067 Aug 10, 02:36 1789
3709 308273094, // 2067 Sep 8, 18:09 1790
3710 308529168, // 2067 Oct 8, 09:28 1791
3711 308785044, // 2067 Nov 7, 00:14 1792
3712 309040590, // 2067 Dec 6, 14:05 1793
3713 309295668, // 2068 Jan 5, 02:38 1794
3714 309550224, // 2068 Feb 3, 13:44 1795
3715 309804342, // 2068 Mar 3, 23:37 1796
3716 310058226, // 2068 Apr 2, 08:51 1797
3717 310312122, // 2068 May 1, 18:07 1798
3718 310566258, // 2068 May 31, 04:03 1799
3719 310820826, // 2068 Jun 29, 15:11 1800
3720 311075970, // 2068 Jul 29, 03:55 1801
3721 311331768, // 2068 Aug 27, 18:28 1802
3722 311588208, // 2068 Sep 26, 10:48 1803
3723 311845062, // 2068 Oct 26, 04:17 1804
3724 312101892, // 2068 Nov 24, 21:42 1805
3725 312358224, // 2068 Dec 24, 13:44 1806
3726 312613776, // 2069 Jan 23, 03:36 1807
3727 312868542, // 2069 Feb 21, 15:17 1808
3728 313122678, // 2069 Mar 23, 01:13 1809
3729 313376388, // 2069 Apr 21, 09:58 1810
3730 313629876, // 2069 May 20, 18:06 1811
3731 313883364, // 2069 Jun 19, 02:14 1812
3732 314137158, // 2069 Jul 18, 11:13 1813
3733 314391618, // 2069 Aug 16, 22:03 1814
3734 314647050, // 2069 Sep 15, 11:35 1815
3735 314903538, // 2069 Oct 15, 04:03 1816
3736 315160788, // 2069 Nov 13, 22:38 1817
3737 315418188, // 2069 Dec 13, 17:38 1818
3738 315675138, // 2070 Jan 12, 11:23 1819
3739 315931278, // 2070 Feb 11, 02:53 1820
3740 316186512, // 2070 Mar 12, 15:52 1821
3741 316440900, // 2070 Apr 11, 02:30 1822
3742 316694568, // 2070 May 10, 11:08 1823
3743 316947744, // 2070 Jun 8, 18:24 1824
3744 317200764, // 2070 Jul 8, 01:14 1825
3745 317454066, // 2070 Aug 6, 08:51 1826
3746 317708094, // 2070 Sep 4, 18:29 1827
3747 317963166, // 2070 Oct 4, 07:01 1828
3748 318219378, // 2070 Nov 2, 22:43 1829
3749 318476484, // 2070 Dec 2, 16:54 1830
3750 318734010, // 2071 Jan 1, 12:15 1831
3751 318991416, // 2071 Jan 31, 07:16 1832
3752 319248192, // 2071 Mar 2, 00:32 1833
3753 319503978, // 2071 Mar 31, 15:03 1834
3754 319758660, // 2071 Apr 30, 02:30 1835
3755 320012382, // 2071 May 29, 11:17 1836
3756 320265480, // 2071 Jun 27, 18:20 1837
3757 320518416, // 2071 Jul 27, 00:56 1838
3758 320771616, // 2071 Aug 25, 08:16 1839
3759 321025446, // 2071 Sep 23, 17:21 1840
3760 321280134, // 2071 Oct 23, 04:49 1841
3761 321535794, // 2071 Nov 21, 18:59 1842
3762 321792402, // 2071 Dec 21, 11:47 1843
3763 322049730, // 2072 Jan 20, 06:35 1844
3764 322307298, // 2072 Feb 19, 02:03 1845
3765 322564452, // 2072 Mar 19, 20:22 1846
3766 322820622, // 2072 Apr 18, 11:57 1847
3767 323075634, // 2072 May 18, 00:19 1848
3768 323329662, // 2072 Jun 16, 09:57 1849
3769 323583096, // 2072 Jul 15, 17:56 1850
3770 323836326, // 2072 Aug 14, 01:21 1851
3771 324089682, // 2072 Sep 12, 09:07 1852
3772 324343410, // 2072 Oct 11, 17:55 1853
3773 324597726, // 2072 Nov 10, 04:21 1854
3774 324852834, // 2072 Dec 9, 16:59 1855
3775 325108866, // 2073 Jan 8, 08:11 1856
3776 325365720, // 2073 Feb 7, 01:40 1857
3777 325622976, // 2073 Mar 8, 20:16 1858
3778 325880004, // 2073 Apr 7, 14:14 1859
3779 326136330, // 2073 May 7, 06:15 1860
3780 326391792, // 2073 Jun 5, 19:52 1861
3781 326646462, // 2073 Jul 5, 07:17 1862
3782 326900544, // 2073 Aug 3, 17:04 1863
3783 327154272, // 2073 Sep 2, 01:52 1864
3784 327407886, // 2073 Oct 1, 10:21 1865
3785 327661638, // 2073 Oct 30, 19:13 1866
3786 327915792, // 2073 Nov 29, 05:12 1867
3787 328170570, // 2073 Dec 28, 16:55 1868
3788 328426062, // 2074 Jan 27, 06:37 1869
3789 328682160, // 2074 Feb 25, 22:00 1870
3790 328938600, // 2074 Mar 27, 14:20 1871
3791 329195088, // 2074 Apr 26, 06:48 1872
3792 329451384, // 2074 May 25, 22:44 1873
3793 329707314, // 2074 Jun 24, 13:39 1874
3794 329962722, // 2074 Jul 24, 03:07 1875
3795 330217554, // 2074 Aug 22, 14:59 1876
3796 330471888, // 2074 Sep 21, 01:28 1877
3797 330725946, // 2074 Oct 20, 11:11 1878
3798 330980016, // 2074 Nov 18, 20:56 1879
3799 331234320, // 2074 Dec 18, 07:20 1880
3800 331488942, // 2075 Jan 16, 18:37 1881
3801 331743846, // 2075 Feb 15, 06:41 1882
3802 331998990, // 2075 Mar 16, 19:25 1883
3803 332254410, // 2075 Apr 15, 08:55 1884
3804 332510172, // 2075 May 14, 23:22 1885
3805 332766234, // 2075 Jun 13, 14:39 1886
3806 333022386, // 2075 Jul 13, 06:11 1887
3807 333278346, // 2075 Aug 11, 21:11 1888
3808 333533892, // 2075 Sep 10, 11:02 1889
3809 333789018, // 2075 Oct 9, 23:43 1890
3810 334043850, // 2075 Nov 8, 11:35 1891
3811 334298538, // 2075 Dec 7, 23:03 1892
3812 334553130, // 2076 Jan 6, 10:15 1893
3813 334807566, // 2076 Feb 4, 21:01 1894
3814 335061864, // 2076 Mar 5, 07:24 1895
3815 335316162, // 2076 Apr 3, 17:47 1896
3816 335570712, // 2076 May 3, 04:52 1897
3817 335825724, // 2076 Jun 1, 17:14 1898
3818 336081270, // 2076 Jul 1, 07:05 1899
3819 336337236, // 2076 Jul 30, 22:06 1900
3820 336593424, // 2076 Aug 29, 13:44 1901
3821 336849642, // 2076 Sep 28, 05:27 1902
3822 337105740, // 2076 Oct 27, 20:50 1903
3823 337361568, // 2076 Nov 26, 11:28 1904
3824 337616958, // 2076 Dec 26, 00:53 1905
3825 337871790, // 2077 Jan 24, 12:45 1906
3826 338126082, // 2077 Feb 22, 23:07 1907
3827 338379984, // 2077 Mar 24, 08:24 1908
3828 338633760, // 2077 Apr 22, 17:20 1909
3829 338887668, // 2077 May 22, 02:38 1910
3830 339141930, // 2077 Jun 20, 12:55 1911
3831 339396726, // 2077 Jul 20, 00:41 1912
3832 339652188, // 2077 Aug 18, 14:18 1913
3833 339908358, // 2077 Sep 17, 05:53 1914
3834 340165122, // 2077 Oct 16, 23:07 1915
3835 340422120, // 2077 Nov 15, 17:00 1916
3836 340678836, // 2077 Dec 15, 10:06 1917
3837 340934844, // 2078 Jan 14, 01:14 1918
3838 341189988, // 2078 Feb 12, 13:58 1919
3839 341444382, // 2078 Mar 14, 00:37 1920
3840 341698230, // 2078 Apr 12, 09:45 1921
3841 341951736, // 2078 May 11, 17:56 1922
3842 342205134, // 2078 Jun 10, 01:49 1923
3843 342458688, // 2078 Jul 9, 10:08 1924
3844 342712752, // 2078 Aug 7, 19:52 1925
3845 342967674, // 2078 Sep 6, 07:59 1926
3846 343223676, // 2078 Oct 5, 23:06 1927
3847 343480656, // 2078 Nov 4, 16:56 1928
3848 343738128, // 2078 Dec 4, 12:08 1929
3849 343995420, // 2079 Jan 3, 06:50 1930
3850 344252010, // 2079 Feb 1, 23:35 1931
3851 344507688, // 2079 Mar 3, 13:48 1932
3852 344762460, // 2079 Apr 2, 01:30 1933
3853 345016422, // 2079 May 1, 10:57 1934
3854 345269766, // 2079 May 30, 18:41 1935
3855 345522786, // 2079 Jun 29, 01:31 1936
3856 345775878, // 2079 Jul 28, 08:33 1937
3857 346029492, // 2079 Aug 26, 17:02 1938
3858 346284036, // 2079 Sep 25, 04:06 1939
3859 346539720, // 2079 Oct 24, 18:20 1940
3860 346796460, // 2079 Nov 23, 11:30 1941
3861 347053872, // 2079 Dec 23, 06:32 1942
3862 347311410, // 2080 Jan 22, 01:55 1943
3863 347568546, // 2080 Feb 20, 20:11 1944
3864 347824836, // 2080 Mar 21, 12:06 1945
3865 348080040, // 2080 Apr 20, 01:00 1946
3866 348334176, // 2080 May 19, 10:56 1947
3867 348587520, // 2080 Jun 17, 18:40 1948
3868 348840486, // 2080 Jul 17, 01:21 1949
3869 349093518, // 2080 Aug 15, 08:13 1950
3870 349347030, // 2080 Sep 13, 16:25 1951
3871 349601304, // 2080 Oct 13, 02:44 1952
3872 349856502, // 2080 Nov 11, 15:37 1953
3873 350112660, // 2080 Dec 11, 07:10 1954
3874 350369652, // 2081 Jan 10, 01:02 1955
3875 350627142, // 2081 Feb 8, 20:17 1956
3876 350884542, // 2081 Mar 10, 15:17 1957
3877 351141210, // 2081 Apr 9, 08:15 1958
3878 351396774, // 2081 May 8, 22:09 1959
3879 351651246, // 2081 Jun 7, 09:01 1960
3880 351904944, // 2081 Jul 6, 17:44 1961
3881 352158264, // 2081 Aug 5, 01:24 1962
3882 352411566, // 2081 Sep 3, 09:01 1963
3883 352665138, // 2081 Oct 2, 17:23 1964
3884 352919184, // 2081 Nov 1, 03:04 1965
3885 353173896, // 2081 Nov 30, 14:36 1966
3886 353429448, // 2081 Dec 30, 04:28 1967
3887 353685876, // 2082 Jan 28, 20:46 1968
3888 353942928, // 2082 Feb 27, 14:48 1969
3889 354200070, // 2082 Mar 29, 09:05 1970
3890 354456732, // 2082 Apr 28, 02:02 1971
3891 354712602, // 2082 May 27, 16:47 1972
3892 354967656, // 2082 Jun 26, 05:16 1973
3893 355222044, // 2082 Jul 25, 15:54 1974
3894 355475988, // 2082 Aug 24, 01:18 1975
3895 355729704, // 2082 Sep 22, 10:04 1976
3896 355983420, // 2082 Oct 21, 18:50 1977
3897 356237394, // 2082 Nov 20, 04:19 1978
3898 356491860, // 2082 Dec 19, 15:10 1979
3899 356746980, // 2083 Jan 18, 03:50 1980
3900 357002730, // 2083 Feb 16, 18:15 1981
3901 357258942, // 2083 Mar 18, 09:57 1982
3902 357515340, // 2083 Apr 17, 02:10 1983
3903 357771684, // 2083 May 16, 18:14 1984
3904 358027782, // 2083 Jun 15, 09:37 1985
3905 358283484, // 2083 Jul 14, 23:54 1986
3906 358538670, // 2083 Aug 13, 12:45 1987
3907 358793322, // 2083 Sep 12, 00:07 1988
3908 359047578, // 2083 Oct 11, 10:23 1989
3909 359301690, // 2083 Nov 9, 20:15 1990
3910 359555910, // 2083 Dec 9, 06:25 1991
3911 359810382, // 2084 Jan 7, 17:17 1992
3912 360065118, // 2084 Feb 6, 04:53 1993
3913 360320064, // 2084 Mar 6, 17:04 1994
3914 360575232, // 2084 Apr 5, 05:52 1995
3915 360830718, // 2084 May 4, 19:33 1996
3916 361086558, // 2084 Jun 3, 10:13 1997
3917 361342668, // 2084 Jul 3, 01:38 1998
3918 361598784, // 2084 Aug 1, 17:04 1999
3919 361854630, // 2084 Aug 31, 07:45 2000
3920 362110056, // 2084 Sep 29, 21:16 2001
3921 362365122, // 2084 Oct 29, 09:47 2002
3922 362619954, // 2084 Nov 27, 21:39 2003
3923 362874642, // 2084 Dec 27, 09:07 2004
3924 363129162, // 2085 Jan 25, 20:07 2005
3925 363383472, // 2085 Feb 24, 06:32 2006
3926 363637662, // 2085 Mar 25, 16:37 2007
3927 363891954, // 2085 Apr 24, 02:59 2008
3928 364146618, // 2085 May 23, 14:23 2009
3929 364401828, // 2085 Jun 22, 03:18 2010
3930 364657578, // 2085 Jul 21, 17:43 2011
3931 364913706, // 2085 Aug 20, 09:11 2012
3932 365170002, // 2085 Sep 19, 01:07 2013
3933 365426280, // 2085 Oct 18, 17:00 2014
3934 365682366, // 2085 Nov 17, 08:21 2015
3935 365938068, // 2085 Dec 16, 22:38 2016
3936 366193224, // 2086 Jan 15, 11:24 2017
3937 366447762, // 2086 Feb 13, 22:27 2018
3938 366701784, // 2086 Mar 15, 08:04 2019
3939 366955518, // 2086 Apr 13, 16:53 2020
3940 367209246, // 2086 May 13, 01:41 2021
3941 367463232, // 2086 Jun 11, 11:12 2022
3942 367717692, // 2086 Jul 10, 22:02 2023
3943 367972788, // 2086 Aug 9, 10:38 2024
3944 368228622, // 2086 Sep 8, 01:17 2025
3945 368485176, // 2086 Oct 7, 17:56 2026
3946 368742198, // 2086 Nov 6, 11:53 2027
3947 368999208, // 2086 Dec 6, 05:48 2028
3948 369255666, // 2087 Jan 4, 22:11 2029
3949 369511260, // 2087 Feb 3, 12:10 2030
3950 369765990, // 2087 Mar 4, 23:45 2031
3951 370020036, // 2087 Apr 3, 09:26 2032
3952 370273626, // 2087 May 2, 17:51 2033
3953 370526988, // 2087 Jun 1, 01:38 2034
3954 370780386, // 2087 Jun 30, 09:31 2035
3955 371034120, // 2087 Jul 29, 18:20 2036
3956 371288568, // 2087 Aug 28, 05:08 2037
3957 371544042, // 2087 Sep 26, 18:47 2038
3958 371800614, // 2087 Oct 26, 11:29 2039
3959 372057984, // 2087 Nov 25, 06:24 2040
3960 372315498, // 2087 Dec 25, 01:43 2041
3961 372572514, // 2088 Jan 23, 19:39 2042
3962 372828654, // 2088 Feb 22, 11:09 2043
3963 373083846, // 2088 Mar 23, 00:01 2044
3964 373338150, // 2088 Apr 21, 10:25 2045
3965 373591734, // 2088 May 20, 18:49 2046
3966 373844844, // 2088 Jun 19, 01:54 2047
3967 374097828, // 2088 Jul 18, 08:38 2048
3968 374351130, // 2088 Aug 16, 16:15 2049
3969 374605188, // 2088 Sep 15, 01:58 2050
3970 374860314, // 2088 Oct 14, 14:39 2051
3971 375116592, // 2088 Nov 13, 06:32 2052
3972 375373752, // 2088 Dec 13, 00:52 2053
3973 375631308, // 2089 Jan 11, 20:18 2054
3974 375888696, // 2089 Feb 10, 15:16 2055
3975 376145424, // 2089 Mar 12, 08:24 2056
3976 376401156, // 2089 Apr 10, 22:46 2057
3977 376655784, // 2089 May 10, 10:04 2058
3978 376909464, // 2089 Jun 8, 18:44 2059
3979 377162562, // 2089 Jul 8, 01:47 2060
3980 377415528, // 2089 Aug 6, 08:28 2061
3981 377668782, // 2089 Sep 4, 15:57 2062
3982 377922690, // 2089 Oct 4, 01:15 2063
3983 378177450, // 2089 Nov 2, 12:55 2064
3984 378433146, // 2089 Dec 2, 03:11 2065
3985 378689736, // 2089 Dec 31, 19:56 2066
3986 378947004, // 2090 Jan 30, 14:34 2067
3987 379204476, // 2090 Mar 1, 09:46 2068
3988 379461528, // 2090 Mar 31, 03:48 2069
3989 379717632, // 2090 Apr 29, 19:12 2070
3990 379972614, // 2090 May 29, 07:29 2071
3991 380226666, // 2090 Jun 27, 17:11 2072
3992 380480154, // 2090 Jul 27, 01:19 2073
3993 380733468, // 2090 Aug 25, 08:58 2074
3994 380986938, // 2090 Sep 23, 17:03 2075
3995 381240774, // 2090 Oct 23, 02:09 2076
3996 381495168, // 2090 Nov 21, 12:48 2077
3997 381750294, // 2090 Dec 21, 01:29 2078
3998 382006260, // 2091 Jan 19, 16:30 2079
3999 382262988, // 2091 Feb 18, 09:38 2080
4000 382520076, // 2091 Mar 20, 03:46 2081
4001 382776960, // 2091 Apr 18, 21:20 2082
4002 383033202, // 2091 May 18, 13:07 2083
4003 383288646, // 2091 Jun 17, 02:41 2084
4004 383543376, // 2091 Jul 16, 14:16 2085
4005 383797572, // 2091 Aug 15, 00:22 2086
4006 384051444, // 2091 Sep 13, 09:34 2087
4007 384305214, // 2091 Oct 12, 18:29 2088
4008 384559092, // 2091 Nov 11, 03:42 2089
4009 384813324, // 2091 Dec 10, 13:54 2090
4010 385068102, // 2092 Jan 9, 01:37 2091
4011 385323492, // 2092 Feb 7, 15:02 2092
4012 385579416, // 2092 Mar 8, 05:56 2093
4013 385835646, // 2092 Apr 6, 21:41 2094
4014 386091954, // 2092 May 6, 13:39 2095
4015 386348142, // 2092 Jun 5, 05:17 2096
4016 386604066, // 2092 Jul 4, 20:11 2097
4017 386859570, // 2092 Aug 3, 09:55 2098
4018 387114564, // 2092 Sep 1, 22:14 2099
4019 387369090, // 2092 Oct 1, 09:15 2100
4020 387623328, // 2092 Oct 30, 19:28 2101
4021 387877536, // 2092 Nov 29, 05:36 2102
4022 388131900, // 2092 Dec 28, 16:10 2103
4023 388386492, // 2093 Jan 27, 03:22 2104
4024 388641276, // 2093 Feb 25, 15:06 2105
4025 388896228, // 2093 Mar 27, 03:18 2106
4026 389151432, // 2093 Apr 25, 16:12 2107
4027 389407002, // 2093 May 25, 06:07 2108
4028 389662950, // 2093 Jun 23, 21:05 2109
4029 389919096, // 2093 Jul 23, 12:36 2110
4030 390175164, // 2093 Aug 22, 03:54 2111
4031 390430902, // 2093 Sep 20, 18:17 2112
4032 390686238, // 2093 Oct 20, 07:33 2113
4033 390941262, // 2093 Nov 18, 19:57 2114
4034 391196082, // 2093 Dec 18, 07:47 2115
4035 391450710, // 2094 Jan 16, 19:05 2116
4036 391705098, // 2094 Feb 15, 05:43 2117
4037 391959264, // 2094 Mar 16, 15:44 2118
4038 392213388, // 2094 Apr 15, 01:38 2119
4039 392467734, // 2094 May 14, 12:09 2120
4040 392722578, // 2094 Jun 13, 00:03 2121
4041 392978022, // 2094 Jul 12, 13:37 2122
4042 393233982, // 2094 Aug 11, 04:37 2123
4043 393490266, // 2094 Sep 9, 20:31 2124
4044 393746664, // 2094 Oct 9, 12:44 2125
4045 394002972, // 2094 Nov 8, 04:42 2126
4046 394258980, // 2094 Dec 7, 19:50 2127
4047 394514478, // 2095 Jan 6, 09:33 2128
4048 394769334, // 2095 Feb 4, 21:29 2129
4049 395023554, // 2095 Mar 6, 07:39 2130
4050 395277336, // 2095 Apr 4, 16:36 2131
4051 395530956, // 2095 May 4, 01:06 2132
4052 395784708, // 2095 Jun 2, 09:58 2133
4053 396038844, // 2095 Jul 1, 19:54 2134
4054 396293574, // 2095 Jul 31, 07:29 2135
4055 396549036, // 2095 Aug 29, 21:06 2136
4056 396805284, // 2095 Sep 28, 12:54 2137
4057 397062198, // 2095 Oct 28, 06:33 2138
4058 397319364, // 2095 Nov 27, 00:54 2139
4059 397576230, // 2095 Dec 26, 18:25 2140
4060 397832310, // 2096 Jan 25, 09:45 2141
4061 398087448, // 2096 Feb 23, 22:28 2142
4062 398341770, // 2096 Mar 24, 08:55 2143
4063 398595504, // 2096 Apr 22, 17:44 2144
4064 398848896, // 2096 May 22, 01:36 2145
4065 399102192, // 2096 Jun 20, 09:12 2146
4066 399355686, // 2096 Jul 19, 17:21 2147
4067 399609720, // 2096 Aug 18, 03:00 2148
4068 399864660, // 2096 Sep 16, 15:10 2149
4069 400120734, // 2096 Oct 16, 06:29 2150
4070 400377816, // 2096 Nov 15, 00:36 2151
4071 400635396, // 2096 Dec 14, 20:06 2152
4072 400892760, // 2097 Jan 13, 15:00 2153
4073 401149374, // 2097 Feb 12, 07:49 2154
4074 401405022, // 2097 Mar 13, 21:57 2155
4075 401659716, // 2097 Apr 12, 09:26 2156
4076 401913600, // 2097 May 11, 18:40 2157
4077 402166884, // 2097 Jun 10, 02:14 2158
4078 402419868, // 2097 Jul 9, 08:58 2159
4079 402672960, // 2097 Aug 7, 16:00 2160
4080 402926598, // 2097 Sep 6, 00:33 2161
4081 403181190, // 2097 Oct 5, 11:45 2162
4082 403436934, // 2097 Nov 4, 02:09 2163
4083 403693722, // 2097 Dec 3, 19:27 2164
4084 403951158, // 2098 Jan 2, 14:33 2165
4085 404208684, // 2098 Feb 1, 09:54 2166
4086 404465772, // 2098 Mar 3, 04:02 2167
4087 404722002, // 2098 Apr 1, 19:47 2168
4088 404977152, // 2098 May 1, 08:32 2169
4089 405231258, // 2098 May 30, 18:23 2170
4090 405484596, // 2098 Jun 29, 02:06 2171
4091 405737586, // 2098 Jul 28, 08:51 2172
4092 405990672, // 2098 Aug 26, 15:52 2173
4093 406244256, // 2098 Sep 25, 00:16 2174
4094 406498614, // 2098 Oct 24, 10:49 2175
4095 406753866, // 2098 Nov 22, 23:51 2176
4096 407010024, // 2098 Dec 22, 15:24 2177
4097 407266962, // 2099 Jan 21, 09:07 2178
4098 407524350, // 2099 Feb 20, 04:05 2179
4099 407781636, // 2099 Mar 21, 22:46 2180
4100 408038220, // 2099 Apr 20, 15:30 2181
4101 408293736, // 2099 May 20, 05:16 2182
4102 408548220, // 2099 Jun 18, 16:10 2183
4103 408801966, // 2099 Jul 18, 01:01 2184
4104 409055364, // 2099 Aug 16, 08:54 2185
4105 409308780, // 2099 Sep 14, 16:50 2186
4106 409562472, // 2099 Oct 14, 01:32 2187
4107 409816614, // 2099 Nov 12, 11:29 2188
4108 410071374, // 2099 Dec 11, 23:09 2189
4109 410326896, // 2100 Jan 10, 12:56 2190
4110 410583210, // 2100 Feb 9, 04:55 2191
4111 410840094, // 2100 Mar 10, 22:29 2192
4112 411097062, // 2100 Apr 9, 16:17 2193
4113 411353604, // 2100 May 9, 08:54 2194
4114 411609426, // 2100 Jun 7, 23:31 2195
4115 411864516, // 2100 Jul 7, 12:06 2196
4116 412119012, // 2100 Aug 5, 23:02 2197
4117 412373094, // 2100 Sep 4, 08:49 2198
4118 412626972, // 2100 Oct 3, 18:02 2199
4119 412880844, // 2100 Nov 2, 03:14 2200
4120 413134920, // 2100 Dec 1, 13:00 2201
4121 413389416, // 2100 Dec 30, 23:56 2202
4122 413644464, // 2101 Jan 29, 12:24 2203
4123};
4124enum { kNewMoonDatesCount = sizeof(newMoonDates)/sizeof(newMoonDates[0]) };
4125
4126static const UDate newMoonDatesFirst = 10000.0 * -221149158; // newMoonDates[0];
4127static const UDate newMoonDatesLast = 10000.0 * 413644464; // newMoonDates[kNewMoonDatesCount-1];
4128static const UDate newMoonDatesRange = 10000.0 * (413644464 + 221149158); // newMoonDatesLast - newMoonDatesFirst;
4129
4130// To get the full moon date/time in millis,
4131// first we use the newMoonDates data to estimate the full moon time for a given lunation
4132// as halfway between the new moon for the current lunation and the new moon for the next,
4133// then we add the correction from the table below.
4134// These adjustment values are in millis/10000.0 (i.e. in units of 10 seconds) to fit
4135// into 16 bits.
4136// This fullMoonAdjustmts array has one fewer entry than the newMoonDates array.
4137static const int16_t fullMoonAdjustmts[] = {
4138// adj/10K lunation number
4139 -6411, // -285
4140 -4500, // -284
4141 -1641, // -283
4142 1527, // -282
4143 4353, // -281
4144 6303, // -280
4145 7017, // -279
4146 6402, // -278
4147 4572, // -277
4148 1866, // -276
4149 -1224, // -275
4150 -4092, // -274
4151 -6126, // -273
4152 -6873, // -272
4153 -6183, // -271
4154 -4230, // -270
4155 -1410, // -269
4156 1689, // -268
4157 4425, // -267
4158 6279, // -266
4159 6933, // -265
4160 6288, // -264
4161 4443, // -263
4162 1701, // -262
4163 -1419, // -261
4164 -4251, // -260
4165 -6192, // -259
4166 -6849, // -258
4167 -6114, // -257
4168 -4125, // -256
4169 -1332, // -255
4170 1692, // -254
4171 4362, // -253
4172 6210, // -252
4173 6894, // -251
4174 6237, // -250
4175 4305, // -249
4176 1458, // -248
4177 -1710, // -247
4178 -4509, // -246
4179 -6360, // -245
4180 -6903, // -244
4181 -6075, // -243
4182 -4095, // -242
4183 -1353, // -241
4184 1653, // -240
4185 4377, // -239
4186 6258, // -238
4187 6882, // -237
4188 6084, // -236
4189 4023, // -235
4190 1122, // -234
4191 -2004, // -233
4192 -4692, // -232
4193 -6417, // -231
4194 -6894, // -230
4195 -6093, // -229
4196 -4143, // -228
4197 -1371, // -227
4198 1716, // -226
4199 4470, // -225
4200 6303, // -224
4201 6837, // -223
4202 5955, // -222
4203 3837, // -221
4204 921, // -220
4205 -2154, // -219
4206 -4785, // -218
4207 -6489, // -217
4208 -6987, // -216
4209 -6156, // -215
4210 -4119, // -214
4211 -1236, // -213
4212 1911, // -212
4213 4677, // -211
4214 6477, // -210
4215 6918, // -209
4216 5895, // -208
4217 3675, // -207
4218 756, // -206
4219 -2289, // -205
4220 -4893, // -204
4221 -6561, // -203
4222 -6987, // -202
4223 -6054, // -201
4224 -3924, // -200
4225 -951, // -199
4226 2271, // -198
4227 5010, // -197
4228 6654, // -196
4229 6891, // -195
4230 5769, // -194
4231 3561, // -193
4232 681, // -192
4233 -2328, // -191
4234 -4893, // -190
4235 -6531, // -189
4236 -6918, // -188
4237 -5916, // -187
4238 -3651, // -186
4239 -558, // -185
4240 2637, // -184
4241 5211, // -183
4242 6705, // -182
4243 6891, // -181
4244 5775, // -180
4245 3564, // -179
4246 666, // -178
4247 -2376, // -177
4248 -4980, // -176
4249 -6612, // -175
4250 -6885, // -174
4251 -5688, // -173
4252 -3282, // -172
4253 -213, // -171
4254 2862, // -170
4255 5343, // -169
4256 6774, // -168
4257 6906, // -167
4258 5727, // -166
4259 3456, // -165
4260 510, // -164
4261 -2571, // -163
4262 -5139, // -162
4263 -6630, // -161
4264 -6726, // -160
4265 -5439, // -159
4266 -3045, // -158
4267 -39, // -157
4268 2970, // -156
4269 5358, // -155
4270 6708, // -154
4271 6801, // -153
4272 5601, // -152
4273 3300, // -151
4274 309, // -150
4275 -2766, // -149
4276 -5262, // -148
4277 -6666, // -147
4278 -6699, // -146
4279 -5373, // -145
4280 -2973, // -144
4281 -9, // -143
4282 2928, // -142
4283 5289, // -141
4284 6663, // -140
4285 6768, // -139
4286 5514, // -138
4287 3105, // -137
4288 27, // -136
4289 -3057, // -135
4290 -5490, // -134
4291 -6780, // -133
4292 -6705, // -132
4293 -5334, // -131
4294 -2970, // -130
4295 -42, // -129
4296 2913, // -128
4297 5340, // -127
4298 6708, // -126
4299 6702, // -125
4300 5298, // -124
4301 2787, // -123
4302 -291, // -122
4303 -3300, // -121
4304 -5604, // -120
4305 -6795, // -119
4306 -6711, // -118
4307 -5376, // -117
4308 -3003, // -116
4309 -9, // -115
4310 3021, // -114
4311 5436, // -113
4312 6723, // -112
4313 6618, // -111
4314 5136, // -110
4315 2595, // -109
4316 -468, // -108
4317 -3405, // -107
4318 -5673, // -106
4319 -6873, // -105
4320 -6792, // -104
4321 -5391, // -103
4322 -2910, // -102
4323 183, // -101
4324 3249, // -100
4325 5649, // -99
4326 6867, // -98
4327 6633, // -97
4328 5031, // -96
4329 2436, // -95
4330 -612, // -94
4331 -3519, // -93
4332 -5760, // -92
4333 -6912, // -91
4334 -6729, // -90
4335 -5229, // -89
4336 -2649, // -88
4337 528, // -87
4338 3624, // -86
4339 5925, // -85
4340 6939, // -84
4341 6552, // -83
4342 4908, // -82
4343 2346, // -81
4344 -654, // -80
4345 -3540, // -79
4346 -5757, // -78
4347 -6867, // -77
4348 -6633, // -76
4349 -5025, // -75
4350 -2301, // -74
4351 927, // -73
4352 3906, // -72
4353 6036, // -71
4354 6954, // -70
4355 6555, // -69
4356 4914, // -68
4357 2343, // -67
4358 -699, // -66
4359 -3621, // -65
4360 -5853, // -64
4361 -6909, // -63
4362 -6510, // -62
4363 -4713, // -61
4364 -1938, // -60
4365 1200, // -59
4366 4071, // -58
4367 6126, // -57
4368 6993, // -56
4369 6531, // -55
4370 4833, // -54
4371 2199, // -53
4372 -888, // -52
4373 -3822, // -51
4374 -5967, // -50
4375 -6849, // -49
4376 -6306, // -48
4377 -4482, // -47
4378 -1755, // -46
4379 1320, // -45
4380 4116, // -44
4381 6093, // -43
4382 6900, // -42
4383 6411, // -41
4384 4689, // -40
4385 2013, // -39
4386 -1107, // -38
4387 -3996, // -37
4388 -6051, // -36
4389 -6858, // -35
4390 -6267, // -34
4391 -4422, // -33
4392 -1710, // -32
4393 1308, // -31
4394 4047, // -30
4395 6033, // -29
4396 6873, // -28
4397 6369, // -27
4398 4545, // -26
4399 1755, // -25
4400 -1410, // -24
4401 -4266, // -23
4402 -6228, // -22
4403 -6924, // -21
4404 -6258, // -20
4405 -4407, // -19
4406 -1731, // -18
4407 1278, // -17
4408 4083, // -16
4409 6102, // -15
4410 6885, // -14
4411 6228, // -13
4412 4275, // -12
4413 1437, // -11
4414 -1686, // -10
4415 -4443, // -9
4416 -6288, // -8
4417 -6924, // -7
4418 -6279, // -6
4419 -4449, // -5
4420 -1734, // -4
4421 1374, // -3
4422 4218, // -2
4423 6180, // -1
4424 6855, // 0
4425 6114, // 1
4426 4104, // 2
4427 1257, // 3
4428 -1818, // 4
4429 -4518, // 5
4430 -6357, // 6
4431 -7008, // 7
4432 -6333, // 8
4433 -4395, // 9
4434 -1560, // 10
4435 1617, // 11
4436 4467, // 12
4437 6381, // 13
4438 6957, // 14
4439 6078, // 15
4440 3969, // 16
4441 1110, // 17
4442 -1941, // 18
4443 -4617, // 19
4444 -6423, // 20
4445 -6999, // 21
4446 -6213, // 22
4447 -4173, // 23
4448 -1248, // 24
4449 1989, // 25
4450 4803, // 26
4451 6561, // 27
4452 6939, // 28
4453 5964, // 29
4454 3873, // 30
4455 1053, // 31
4456 -1971, // 32
4457 -4626, // 33
4458 -6399, // 34
4459 -6930, // 35
4460 -6063, // 36
4461 -3894, // 37
4462 -855, // 38
4463 2346, // 39
4464 4992, // 40
4465 6603, // 41
4466 6939, // 42
4467 5976, // 43
4468 3873, // 44
4469 1020, // 45
4470 -2040, // 46
4471 -4731, // 47
4472 -6492, // 48
4473 -6906, // 49
4474 -5844, // 50
4475 -3546, // 51
4476 -540, // 52
4477 2541, // 53
4478 5100, // 54
4479 6666, // 55
4480 6951, // 56
4481 5919, // 57
4482 3756, // 58
4483 840, // 59
4484 -2262, // 60
4485 -4914, // 61
4486 -6528, // 62
4487 -6774, // 63
4488 -5628, // 64
4489 -3348, // 65
4490 -405, // 66
4491 2610, // 67
4492 5097, // 68
4493 6591, // 69
4494 6840, // 70
4495 5784, // 71
4496 3585, // 72
4497 633, // 73
4498 -2472, // 74
4499 -5055, // 75
4500 -6582, // 76
4501 -6768, // 77
4502 -5595, // 78
4503 -3315, // 79
4504 -402, // 80
4505 2565, // 81
4506 5031, // 82
4507 6558, // 83
4508 6816, // 84
4509 5697, // 85
4510 3378, // 86
4511 339, // 87
4512 -2772, // 88
4513 -5292, // 89
4514 -6714, // 90
4515 -6804, // 91
4516 -5580, // 92
4517 -3321, // 93
4518 -429, // 94
4519 2574, // 95
4520 5112, // 96
4521 6624, // 97
4522 6765, // 98
4523 5493, // 99
4524 3075, // 100
4525 30, // 101
4526 -3000, // 102
4527 -5400, // 103
4528 -6732, // 104
4529 -6804, // 105
4530 -5613, // 106
4531 -3339, // 107
4532 -366, // 108
4533 2721, // 109
4534 5247, // 110
4535 6669, // 111
4536 6702, // 112
4537 5355, // 113
4538 2907, // 114
4539 -114, // 115
4540 -3093, // 116
4541 -5460, // 117
4542 -6804, // 118
4543 -6879, // 119
4544 -5619, // 120
4545 -3210, // 121
4546 -129, // 122
4547 2991, // 123
4548 5490, // 124
4549 6834, // 125
4550 6744, // 126
4551 5268, // 127
4552 2769, // 128
4553 -237, // 129
4554 -3189, // 130
4555 -5541, // 131
4556 -6837, // 132
4557 -6810, // 133
4558 -5433, // 134
4559 -2925, // 135
4560 234, // 136
4561 3369, // 137
4562 5757, // 138
4563 6912, // 139
4564 6669, // 140
4565 5163, // 141
4566 2697, // 142
4567 -282, // 143
4568 -3216, // 144
4569 -5541, // 145
4570 -6798, // 146
4571 -6708, // 147
4572 -5217, // 148
4573 -2577, // 149
4574 621, // 150
4575 3639, // 151
4576 5856, // 152
4577 6915, // 153
4578 6672, // 154
4579 5172, // 155
4580 2685, // 156
4581 -345, // 157
4582 -3321, // 158
4583 -5661, // 159
4584 -6855, // 160
4585 -6597, // 161
4586 -4926, // 162
4587 -2241, // 163
4588 858, // 164
4589 3762, // 165
4590 5925, // 166
4591 6948, // 167
4592 6645, // 168
4593 5076, // 169
4594 2520, // 170
4595 -561, // 171
4596 -3549, // 172
4597 -5796, // 173
4598 -6813, // 174
4599 -6417, // 175
4600 -4731, // 176
4601 -2100, // 177
4602 945, // 178
4603 3792, // 179
4604 5886, // 180
4605 6852, // 181
4606 6519, // 182
4607 4926, // 183
4608 2319, // 184
4609 -792, // 185
4610 -3744, // 186
4611 -5901, // 187
4612 -6846, // 188
4613 -6414, // 189
4614 -4710, // 190
4615 -2088, // 191
4616 921, // 192
4617 3732, // 193
4618 5838, // 194
4619 6837, // 195
4620 6477, // 196
4621 4776, // 197
4622 2058, // 198
4623 -1101, // 199
4624 -4011, // 200
4625 -6084, // 201
4626 -6930, // 202
4627 -6420, // 203
4628 -4704, // 204
4629 -2106, // 205
4630 909, // 206
4631 3786, // 207
4632 5940, // 208
4633 6867, // 209
4634 6354, // 210
4635 4518, // 211
4636 1746, // 212
4637 -1365, // 213
4638 -4173, // 214
4639 -6138, // 215
4640 -6933, // 216
4641 -6441, // 217
4642 -4734, // 218
4643 -2082, // 219
4644 1038, // 220
4645 3963, // 221
4646 6054, // 222
4647 6867, // 223
4648 6261, // 224
4649 4374, // 225
4650 1596, // 226
4651 -1476, // 227
4652 -4236, // 228
4653 -6201, // 229
4654 -7005, // 230
4655 -6483, // 231
4656 -4659, // 232
4657 -1872, // 233
4658 1320, // 234
4659 4242, // 235
4660 6273, // 236
4661 6981, // 237
4662 6243, // 238
4663 4266, // 239
4664 1473, // 240
4665 -1581, // 241
4666 -4335, // 242
4667 -6267, // 243
4668 -6993, // 244
4669 -6345, // 245
4670 -4413, // 246
4671 -1536, // 247
4672 1707, // 248
4673 4581, // 249
4674 6447, // 250
4675 6972, // 251
4676 6150, // 252
4677 4173, // 253
4678 1416, // 254
4679 -1614, // 255
4680 -4353, // 256
4681 -6252, // 257
4682 -6924, // 258
4683 -6189, // 259
4684 -4128, // 260
4685 -1149, // 261
4686 2043, // 262
4687 4752, // 263
4688 6477, // 264
4689 6969, // 265
4690 6156, // 266
4691 4173, // 267
4692 1380, // 268
4693 -1704, // 269
4694 -4482, // 270
4695 -6360, // 271
4696 -6918, // 272
4697 -5994, // 273
4698 -3810, // 274
4699 -873, // 275
4700 2202, // 276
4701 4830, // 277
4702 6525, // 278
4703 6975, // 279
4704 6090, // 280
4705 4038, // 281
4706 1176, // 282
4707 -1953, // 283
4708 -4689, // 284
4709 -6417, // 285
4710 -6804, // 286
4711 -5808, // 287
4712 -3657, // 288
4713 -777, // 289
4714 2247, // 290
4715 4821, // 291
4716 6456, // 292
4717 6858, // 293
4718 5949, // 294
4719 3852, // 295
4720 942, // 296
4721 -2184, // 297
4722 -4842, // 298
4723 -6492, // 299
4724 -6825, // 300
4725 -5811, // 301
4726 -3648, // 302
4727 -789, // 303
4728 2199, // 304
4729 4764, // 305
4730 6432, // 306
4731 6849, // 307
4732 5868, // 308
4733 3648, // 309
4734 645, // 310
4735 -2481, // 311
4736 -5076, // 312
4737 -6633, // 313
4738 -6876, // 314
4739 -5811, // 315
4740 -3660, // 316
4741 -810, // 317
4742 2229, // 318
4743 4869, // 319
4744 6522, // 320
4745 6816, // 321
4746 5673, // 322
4747 3357, // 323
4748 354, // 324
4749 -2691, // 325
4750 -5172, // 326
4751 -6648, // 327
4752 -6879, // 328
4753 -5832, // 329
4754 -3660, // 330
4755 -714, // 331
4756 2418, // 332
4757 5049, // 333
4758 6600, // 334
4759 6777, // 335
4760 5565, // 336
4761 3219, // 337
4762 234, // 338
4763 -2766, // 339
4764 -5229, // 340
4765 -6714, // 341
4766 -6945, // 342
4767 -5820, // 343
4768 -3498, // 344
4769 -438, // 345
4770 2721, // 346
4771 5310, // 347
4772 6777, // 348
4773 6831, // 349
4774 5496, // 350
4775 3096, // 351
4776 132, // 352
4777 -2859, // 353
4778 -5313, // 354
4779 -6753, // 355
4780 -6867, // 356
4781 -5610, // 357
4782 -3189, // 358
4783 -57, // 359
4784 3102, // 360
4785 5577, // 361
4786 6855, // 362
4787 6768, // 363
4788 5403, // 364
4789 3036, // 365
4790 84, // 366
4791 -2895, // 367
4792 -5325, // 368
4793 -6717, // 369
4794 -6762, // 370
4795 -5394, // 371
4796 -2850, // 372
4797 309, // 373
4798 3348, // 374
4799 5661, // 375
4800 6855, // 376
4801 6771, // 377
4802 5412, // 378
4803 3012, // 379
4804 9, // 380
4805 -3021, // 381
4806 -5466, // 382
4807 -6783, // 383
4808 -6666, // 384
4809 -5136, // 385
4810 -2550, // 386
4811 510, // 387
4812 3444, // 388
4813 5709, // 389
4814 6876, // 390
4815 6735, // 391
4816 5304, // 392
4817 2826, // 393
4818 -234, // 394
4819 -3273, // 395
4820 -5619, // 396
4821 -6765, // 397
4822 -6522, // 398
4823 -4974, // 399
4824 -2451, // 400
4825 555, // 401
4826 3456, // 402
4827 5664, // 403
4828 6783, // 404
4829 6609, // 405
4830 5142, // 406
4831 2613, // 407
4832 -480, // 408
4833 -3477, // 409
4834 -5733, // 410
4835 -6822, // 411
4836 -6549, // 412
4837 -4983, // 413
4838 -2457, // 414
4839 525, // 415
4840 3402, // 416
4841 5634, // 417
4842 6783, // 418
4843 6579, // 419
4844 5001, // 420
4845 2355, // 421
4846 -786, // 422
4847 -3744, // 423
4848 -5925, // 424
4849 -6915, // 425
4850 -6567, // 426
4851 -4986, // 427
4852 -2469, // 428
4853 534, // 429
4854 3486, // 430
4855 5766, // 431
4856 6843, // 432
4857 6474, // 433
4858 4758, // 434
4859 2064, // 435
4860 -1029, // 436
4861 -3891, // 437
4862 -5967, // 438
4863 -6912, // 439
4864 -6576, // 440
4865 -5007, // 441
4866 -2418, // 442
4867 708, // 443
4868 3711, // 444
4869 5913, // 445
4870 6864, // 446
4871 6405, // 447
4872 4632, // 448
4873 1935, // 449
4874 -1125, // 450
4875 -3945, // 451
4876 -6024, // 452
4877 -6987, // 453
4878 -6606, // 454
4879 -4908, // 455
4880 -2169, // 456
4881 1029, // 457
4882 4008, // 458
4883 6150, // 459
4884 6996, // 460
4885 6399, // 461
4886 4542, // 462
4887 1833, // 463
4888 -1212, // 464
4889 -4032, // 465
4890 -6090, // 466
4891 -6969, // 467
4892 -6456, // 468
4893 -4635, // 469
4894 -1815, // 470
4895 1422, // 471
4896 4347, // 472
4897 6315, // 473
4898 6984, // 474
4899 6312, // 475
4900 4467, // 476
4901 1779, // 477
4902 -1260, // 478
4903 -4071, // 479
4904 -6093, // 480
4905 -6906, // 481
4906 -6309, // 482
4907 -4359, // 483
4908 -1455, // 484
4909 1728, // 485
4910 4488, // 486
4911 6336, // 487
4912 6975, // 488
4913 6318, // 489
4914 4455, // 490
4915 1722, // 491
4916 -1374, // 492
4917 -4224, // 493
4918 -6216, // 494
4919 -6915, // 495
4920 -6132, // 496
4921 -4071, // 497
4922 -1209, // 498
4923 1854, // 499
4924 4548, // 500
4925 6369, // 501
4926 6975, // 502
4927 6243, // 503
4928 4302, // 504
4929 1491, // 505
4930 -1644, // 506
4931 -4446, // 507
4932 -6297, // 508
4933 -6825, // 509
4934 -5982, // 510
4935 -3960, // 511
4936 -1158, // 512
4937 1869, // 513
4938 4524, // 514
4939 6297, // 515
4940 6864, // 516
4941 6102, // 517
4942 4116, // 518
4943 1251, // 519
4944 -1887, // 520
4945 -4614, // 521
4946 -6387, // 522
4947 -6873, // 523
4948 -6015, // 524
4949 -3978, // 525
4950 -1182, // 526
4951 1830, // 527
4952 4485, // 528
4953 6294, // 529
4954 6864, // 530
4955 6027, // 531
4956 3906, // 532
4957 960, // 533
4958 -2175, // 534
4959 -4845, // 535
4960 -6528, // 536
4961 -6936, // 537
4962 -6015, // 538
4963 -3978, // 539
4964 -1179, // 540
4965 1887, // 541
4966 4623, // 542
4967 6423, // 543
4968 6858, // 544
4969 5850, // 545
4970 3636, // 546
4971 696, // 547
4972 -2367, // 548
4973 -4935, // 549
4974 -6540, // 550
4975 -6930, // 551
4976 -6033, // 552
4977 -3963, // 553
4978 -1050, // 554
4979 2124, // 555
4980 4845, // 556
4981 6519, // 557
4982 6840, // 558
4983 5760, // 559
4984 3525, // 560
4985 597, // 561
4986 -2427, // 562
4987 -4977, // 563
4988 -6603, // 564
4989 -6987, // 565
4990 -6000, // 566
4991 -3768, // 567
4992 -735, // 568
4993 2454, // 569
4994 5124, // 570
4995 6711, // 571
4996 6906, // 572
4997 5712, // 573
4998 3423, // 574
4999 501, // 575
5000 -2517, // 576
5001 -5061, // 577
5002 -6639, // 578
5003 -6906, // 579
5004 -5775, // 580
5005 -3441, // 581
5006 -354, // 582
5007 2826, // 583
5008 5379, // 584
5009 6783, // 585
5010 6846, // 586
5011 5631, // 587
5012 3366, // 588
5013 450, // 589
5014 -2568, // 590
5015 -5094, // 591
5016 -6618, // 592
5017 -6810, // 593
5018 -5571, // 594
5019 -3123, // 595
5020 -9, // 596
5021 3045, // 597
5022 5436, // 598
5023 6777, // 599
5024 6846, // 600
5025 5628, // 601
5026 3330, // 602
5027 354, // 603
5028 -2715, // 604
5029 -5259, // 605
5030 -6705, // 606
5031 -6735, // 607
5032 -5340, // 608
5033 -2862, // 609
5034 153, // 610
5035 3108, // 611
5036 5469, // 612
5037 6789, // 613
5038 6804, // 614
5039 5514, // 615
5040 3123, // 616
5041 87, // 617
5042 -2991, // 618
5043 -5430, // 619
5044 -6708, // 620
5045 -6618, // 621
5046 -5214, // 622
5047 -2799, // 623
5048 171, // 624
5049 3102, // 625
5050 5424, // 626
5051 6699, // 627
5052 6681, // 628
5053 5346, // 629
5054 2904, // 630
5055 -165, // 631
5056 -3204, // 632
5057 -5556, // 633
5058 -6783, // 634
5059 -6669, // 635
5060 -5256, // 636
5061 -2826, // 637
5062 141, // 638
5063 3072, // 639
5064 5418, // 640
5065 6720, // 641
5066 6666, // 642
5067 5211, // 643
5068 2649, // 644
5069 -471, // 645
5070 -3465, // 646
5071 -5742, // 647
5072 -6882, // 648
5073 -6693, // 649
5074 -5253, // 650
5075 -2817, // 651
5076 177, // 652
5077 3195, // 653
5078 5586, // 654
5079 6804, // 655
5080 6582, // 656
5081 4983, // 657
5082 2379, // 658
5083 -690, // 659
5084 -3597, // 660
5085 -5781, // 661
5086 -6873, // 662
5087 -6693, // 663
5088 -5253, // 664
5089 -2739, // 665
5090 387, // 666
5091 3453, // 667
5092 5769, // 668
5093 6852, // 669
5094 6534, // 670
5095 4887, // 671
5096 2280, // 672
5097 -759, // 673
5098 -3636, // 674
5099 -5832, // 675
5100 -6942, // 676
5101 -6714, // 677
5102 -5127, // 678
5103 -2457, // 679
5104 735, // 680
5105 3774, // 681
5106 6012, // 682
5107 6987, // 683
5108 6540, // 684
5109 4815, // 685
5110 2187, // 686
5111 -846, // 687
5112 -3726, // 688
5113 -5904, // 689
5114 -6927, // 690
5115 -6555, // 691
5116 -4839, // 692
5117 -2091, // 693
5118 1122, // 694
5119 4092, // 695
5120 6168, // 696
5121 6981, // 697
5122 6456, // 698
5123 4743, // 699
5124 2130, // 700
5125 -900, // 701
5126 -3780, // 702
5127 -5919, // 703
5128 -6873, // 704
5129 -6417, // 705
5130 -4587, // 706
5131 -1761, // 707
5132 1398, // 708
5133 4212, // 709
5134 6171, // 710
5135 6963, // 711
5136 6456, // 712
5137 4725, // 713
5138 2055, // 714
5139 -1047, // 715
5140 -3960, // 716
5141 -6069, // 717
5142 -6900, // 718
5143 -6261, // 719
5144 -4335, // 720
5145 -1563, // 721
5146 1491, // 722
5147 4245, // 723
5148 6189, // 724
5149 6954, // 725
5150 6378, // 726
5151 4554, // 727
5152 1806, // 728
5153 -1338, // 729
5154 -4200, // 730
5155 -6168, // 731
5156 -6840, // 732
5157 -6147, // 733
5158 -4260, // 734
5159 -1539, // 735
5160 1485, // 736
5161 4218, // 737
5162 6126, // 738
5163 6855, // 739
5164 6240, // 740
5165 4362, // 741
5166 1560, // 742
5167 -1584, // 743
5168 -4380, // 744
5169 -6267, // 745
5170 -6906, // 746
5171 -6201, // 747
5172 -4299, // 748
5173 -1569, // 749
5174 1455, // 750
5175 4203, // 751
5176 6147, // 752
5177 6873, // 753
5178 6174, // 754
5179 4161, // 755
5180 1272, // 756
5181 -1869, // 757
5182 -4602, // 758
5183 -6408, // 759
5184 -6969, // 760
5185 -6210, // 761
5186 -4293, // 762
5187 -1545, // 763
5188 1551, // 764
5189 4383, // 765
5190 6312, // 766
5191 6891, // 767
5192 6021, // 768
5193 3912, // 769
5194 1029, // 770
5195 -2031, // 771
5196 -4677, // 772
5197 -6417, // 773
5198 -6963, // 774
5199 -6216, // 775
5200 -4245, // 776
5201 -1374, // 777
5202 1824, // 778
5203 4635, // 779
5204 6432, // 780
5205 6888, // 781
5206 5952, // 782
5207 3822, // 783
5208 957, // 784
5209 -2076, // 785
5210 -4713, // 786
5211 -6477, // 787
5212 -7014, // 788
5213 -6159, // 789
5214 -4023, // 790
5215 -1029, // 791
5216 2181, // 792
5217 4920, // 793
5218 6627, // 794
5219 6966, // 795
5220 5919, // 796
5221 3744, // 797
5222 873, // 798
5223 -2169, // 799
5224 -4806, // 800
5225 -6519, // 801
5226 -6927, // 802
5227 -5928, // 803
5228 -3693, // 804
5229 -648, // 805
5230 2538, // 806
5231 5160, // 807
5232 6693, // 808
5233 6903, // 809
5234 5835, // 810
5235 3678, // 811
5236 813, // 812
5237 -2235, // 813
5238 -4851, // 814
5239 -6510, // 815
5240 -6840, // 816
5241 -5733, // 817
5242 -3396, // 818
5243 -348, // 819
5244 2724, // 820
5245 5196, // 821
5246 6672, // 822
5247 6897, // 823
5248 5829, // 824
5249 3627, // 825
5250 684, // 826
5251 -2415, // 827
5252 -5043, // 828
5253 -6618, // 829
5254 -6789, // 830
5255 -5535, // 831
5256 -3174, // 832
5257 -219, // 833
5258 2760, // 834
5259 5217, // 835
5260 6675, // 836
5261 6855, // 837
5262 5703, // 838
5263 3408, // 839
5264 399, // 840
5265 -2706, // 841
5266 -5226, // 842
5267 -6639, // 843
5268 -6699, // 844
5269 -5448, // 845
5270 -3144, // 846
5271 -228, // 847
5272 2745, // 848
5273 5178, // 849
5274 6600, // 850
5275 6738, // 851
5276 5535, // 852
5277 3186, // 853
5278 144, // 854
5279 -2925, // 855
5280 -5367, // 856
5281 -6723, // 857
5282 -6768, // 858
5283 -5505, // 859
5284 -3183, // 860
5285 -249, // 861
5286 2736, // 862
5287 5196, // 863
5288 6645, // 864
5289 6744, // 865
5290 5412, // 866
5291 2931, // 867
5292 -147, // 868
5293 -3174, // 869
5294 -5544, // 870
5295 -6828, // 871
5296 -6801, // 872
5297 -5496, // 873
5298 -3156, // 874
5299 -174, // 875
5300 2892, // 876
5301 5403, // 877
5302 6759, // 878
5303 6678, // 879
5304 5205, // 880
5305 2694, // 881
5306 -342, // 882
5307 -3288, // 883
5308 -5574, // 884
5309 -6810, // 885
5310 -6792, // 886
5311 -5478, // 887
5312 -3042, // 888
5313 75, // 889
5314 3195, // 890
5315 5607, // 891
5316 6822, // 892
5317 6648, // 893
5318 5136, // 894
5319 2619, // 895
5320 -393, // 896
5321 -3315, // 897
5322 -5616, // 898
5323 -6876, // 899
5324 -6801, // 900
5325 -5331, // 901
5326 -2733, // 902
5327 450, // 903
5328 3528, // 904
5329 5853, // 905
5330 6960, // 906
5331 6663, // 907
5332 5076, // 908
5333 2535, // 909
5334 -477, // 910
5335 -3414, // 911
5336 -5703, // 912
5337 -6867, // 913
5338 -6636, // 914
5339 -5040, // 915
5340 -2370, // 916
5341 822, // 917
5342 3822, // 918
5343 5997, // 919
5344 6945, // 920
5345 6582, // 921
5346 5004, // 922
5347 2478, // 923
5348 -546, // 924
5349 -3486, // 925
5350 -5736, // 926
5351 -6825, // 927
5352 -6510, // 928
5353 -4803, // 929
5354 -2070, // 930
5355 1059, // 931
5356 3915, // 932
5357 5982, // 933
5358 6924, // 934
5359 6579, // 935
5360 4971, // 936
5361 2376, // 937
5362 -723, // 938
5363 -3696, // 939
5364 -5907, // 940
5365 -6873, // 941
5366 -6387, // 942
5367 -4596, // 943
5368 -1911, // 944
5369 1116, // 945
5370 3927, // 946
5371 5991, // 947
5372 6915, // 948
5373 6495, // 949
5374 4794, // 950
5375 2109, // 951
5376 -1032, // 952
5377 -3954, // 953
5378 -6021, // 954
5379 -6837, // 955
5380 -6300, // 956
5381 -4548, // 957
5382 -1920, // 958
5383 1101, // 959
5384 3906, // 960
5385 5946, // 961
5386 6825, // 962
5387 6360, // 963
5388 4596, // 964
5389 1863, // 965
5390 -1275, // 966
5391 -4134, // 967
5392 -6132, // 968
5393 -6921, // 969
5394 -6375, // 970
5395 -4605, // 971
5396 -1944, // 972
5397 1089, // 973
5398 3918, // 974
5399 5994, // 975
5400 6870, // 976
5401 6315, // 977
5402 4410, // 978
5403 1584, // 979
5404 -1542, // 980
5405 -4338, // 981
5406 -6264, // 982
5407 -6981, // 983
5408 -6381, // 984
5409 -4581, // 985
5410 -1890, // 986
5411 1221, // 987
5412 4134, // 988
5413 6186, // 989
5414 6912, // 990
5415 6174, // 991
5416 4185, // 992
5417 1371, // 993
5418 -1689, // 994
5419 -4401, // 995
5420 -6270, // 996
5421 -6969, // 997
5422 -6369, // 998
5423 -4509, // 999
5424 -1683, // 1000
5425 1536, // 1001
5426 4422, // 1002
5427 6333, // 1003
5428 6927, // 1004
5429 6132, // 1005
5430 4119, // 1006
5431 1323, // 1007
5432 -1719, // 1008
5433 -4434, // 1009
5434 -6321, // 1010
5435 -7011, // 1011
5436 -6297, // 1012
5437 -4266, // 1013
5438 -1314, // 1014
5439 1905, // 1015
5440 4707, // 1016
5441 6525, // 1017
5442 7011, // 1018
5443 6108, // 1019
5444 4050, // 1020
5445 1236, // 1021
5446 -1815, // 1022
5447 -4536, // 1023
5448 -6375, // 1024
5449 -6930, // 1025
5450 -6063, // 1026
5451 -3933, // 1027
5452 -948, // 1028
5453 2238, // 1029
5454 4923, // 1030
5455 6576, // 1031
5456 6945, // 1032
5457 6024, // 1033
5458 3981, // 1034
5459 1167, // 1035
5460 -1899, // 1036
5461 -4608, // 1037
5462 -6387, // 1038
5463 -6864, // 1039
5464 -5895, // 1040
5465 -3669, // 1041
5466 -687, // 1042
5467 2391, // 1043
5468 4944, // 1044
5469 6543, // 1045
5470 6930, // 1046
5471 6012, // 1047
5472 3915, // 1048
5473 1020, // 1049
5474 -2109, // 1050
5475 -4815, // 1051
5476 -6513, // 1052
5477 -6828, // 1053
5478 -5727, // 1054
5479 -3483, // 1055
5480 -591, // 1056
5481 2400, // 1057
5482 4941, // 1058
5483 6546, // 1059
5484 6888, // 1060
5485 5874, // 1061
5486 3681, // 1062
5487 714, // 1063
5488 -2415, // 1064
5489 -5019, // 1065
5490 -6555, // 1066
5491 -6771, // 1067
5492 -5670, // 1068
5493 -3486, // 1069
5494 -618, // 1070
5495 2382, // 1071
5496 4917, // 1072
5497 6489, // 1073
5498 6783, // 1074
5499 5718, // 1075
5500 3456, // 1076
5501 456, // 1077
5502 -2631, // 1078
5503 -5160, // 1079
5504 -6648, // 1080
5505 -6852, // 1081
5506 -5742, // 1082
5507 -3525, // 1083
5508 -624, // 1084
5509 2400, // 1085
5510 4968, // 1086
5511 6558, // 1087
5512 6801, // 1088
5513 5604, // 1089
5514 3225, // 1090
5515 186, // 1091
5516 -2865, // 1092
5517 -5328, // 1093
5518 -6747, // 1094
5519 -6882, // 1095
5520 -5724, // 1096
5521 -3477, // 1097
5522 -519, // 1098
5523 2598, // 1099
5524 5208, // 1100
5525 6705, // 1101
5526 6762, // 1102
5527 5424, // 1103
5528 3006, // 1104
5529 12, // 1105
5530 -2958, // 1106
5531 -5352, // 1107
5532 -6732, // 1108
5533 -6864, // 1109
5534 -5688, // 1110
5535 -3333, // 1111
5536 -234, // 1112
5537 2934, // 1113
5538 5442, // 1114
5539 6783, // 1115
5540 6747, // 1116
5541 5373, // 1117
5542 2952, // 1118
5543 -18, // 1119
5544 -2982, // 1120
5545 -5394, // 1121
5546 -6798, // 1122
5547 -6867, // 1123
5548 -5523, // 1124
5549 -2997, // 1125
5550 159, // 1126
5551 3261, // 1127
5552 5679, // 1128
5553 6918, // 1129
5554 6771, // 1130
5555 5325, // 1131
5556 2877, // 1132
5557 -105, // 1133
5558 -3093, // 1134
5559 -5487, // 1135
5560 -6792, // 1136
5561 -6705, // 1137
5562 -5226, // 1138
5563 -2649, // 1139
5564 507, // 1140
5565 3537, // 1141
5566 5802, // 1142
5567 6900, // 1143
5568 6690, // 1144
5569 5241, // 1145
5570 2808, // 1146
5571 -198, // 1147
5572 -3192, // 1148
5573 -5550, // 1149
5574 -6771, // 1150
5575 -6594, // 1151
5576 -5022, // 1152
5577 -2391, // 1153
5578 702, // 1154
5579 3600, // 1155
5580 5775, // 1156
5581 6864, // 1157
5582 6675, // 1158
5583 5202, // 1159
5584 2691, // 1160
5585 -402, // 1161
5586 -3423, // 1162
5587 -5739, // 1163
5588 -6840, // 1164
5589 -6507, // 1165
5590 -4848, // 1166
5591 -2265, // 1167
5592 732, // 1168
5593 3591, // 1169
5594 5778, // 1170
5595 6858, // 1171
5596 6594, // 1172
5597 5016, // 1173
5598 2406, // 1174
5599 -717, // 1175
5600 -3690, // 1176
5601 -5865, // 1177
5602 -6825, // 1178
5603 -6447, // 1179
5604 -4833, // 1180
5605 -2295, // 1181
5606 708, // 1182
5607 3579, // 1183
5608 5748, // 1184
5609 6783, // 1185
5610 6468, // 1186
5611 4830, // 1187
5612 2160, // 1188
5613 -966, // 1189
5614 -3870, // 1190
5615 -5976, // 1191
5616 -6918, // 1192
5617 -6528, // 1193
5618 -4896, // 1194
5619 -2313, // 1195
5620 729, // 1196
5621 3633, // 1197
5622 5835, // 1198
5623 6855, // 1199
5624 6441, // 1200
5625 4656, // 1201
5626 1902, // 1202
5627 -1212, // 1203
5628 -4065, // 1204
5629 -6111, // 1205
5630 -6981, // 1206
5631 -6528, // 1207
5632 -4851, // 1208
5633 -2223, // 1209
5634 900, // 1210
5635 3888, // 1211
5636 6063, // 1212
5637 6918, // 1213
5638 6321, // 1214
5639 4452, // 1215
5640 1713, // 1216
5641 -1335, // 1217
5642 -4110, // 1218
5643 -6099, // 1219
5644 -6954, // 1220
5645 -6501, // 1221
5646 -4758, // 1222
5647 -1986, // 1223
5648 1245, // 1224
5649 4194, // 1225
5650 6219, // 1226
5651 6951, // 1227
5652 6294, // 1228
5653 4410, // 1229
5654 1680, // 1230
5655 -1359, // 1231
5656 -4140, // 1232
5657 -6159, // 1233
5658 -6996, // 1234
5659 -6423, // 1235
5660 -4494, // 1236
5661 -1602, // 1237
5662 1617, // 1238
5663 4479, // 1239
5664 6402, // 1240
5665 7026, // 1241
5666 6282, // 1242
5667 4341, // 1243
5668 1602, // 1244
5669 -1458, // 1245
5670 -4257, // 1246
5671 -6222, // 1247
5672 -6921, // 1248
5673 -6189, // 1249
5674 -4164, // 1250
5675 -1254, // 1251
5676 1920, // 1252
5677 4665, // 1253
5678 6438, // 1254
5679 6963, // 1255
5680 6192, // 1256
5681 4269, // 1257
5682 1512, // 1258
5683 -1572, // 1259
5684 -4356, // 1260
5685 -6255, // 1261
5686 -6867, // 1262
5687 -6039, // 1263
5688 -3939, // 1264
5689 -1032, // 1265
5690 2031, // 1266
5691 4659, // 1267
5692 6393, // 1268
5693 6939, // 1269
5694 6174, // 1270
5695 4188, // 1271
5696 1338, // 1272
5697 -1812, // 1273
5698 -4590, // 1274
5699 -6405, // 1275
5700 -6867, // 1276
5701 -5916, // 1277
5702 -3795, // 1278
5703 -969, // 1279
5704 2028, // 1280
5705 4656, // 1281
5706 6405, // 1282
5707 6903, // 1283
5708 6036, // 1284
5709 3942, // 1285
5710 1020, // 1286
5711 -2118, // 1287
5712 -4800, // 1288
5713 -6459, // 1289
5714 -6828, // 1290
5715 -5886, // 1291
5716 -3819, // 1292
5717 -1011, // 1293
5718 2016, // 1294
5719 4647, // 1295
5720 6366, // 1296
5721 6816, // 1297
5722 5886, // 1298
5723 3723, // 1299
5724 771, // 1300
5725 -2334, // 1301
5726 -4935, // 1302
5727 -6558, // 1303
5728 -6921, // 1304
5729 -5964, // 1305
5730 -3858, // 1306
5731 -996, // 1307
5732 2067, // 1308
5733 4737, // 1309
5734 6468, // 1310
5735 6861, // 1311
5736 5793, // 1312
5737 3504, // 1313
5738 516, // 1314
5739 -2544, // 1315
5740 -5091, // 1316
5741 -6654, // 1317
5742 -6945, // 1318
5743 -5931, // 1319
5744 -3780, // 1320
5745 -849, // 1321
5746 2310, // 1322
5747 5019, // 1323
5748 6633, // 1324
5749 6831, // 1325
5750 5622, // 1326
5751 3315, // 1327
5752 375, // 1328
5753 -2622, // 1329
5754 -5106, // 1330
5755 -6630, // 1331
5756 -6918, // 1332
5757 -5874, // 1333
5758 -3612, // 1334
5759 -537, // 1335
5760 2667, // 1336
5761 5256, // 1337
5762 6726, // 1338
5763 6828, // 1339
5764 5598, // 1340
5765 3288, // 1341
5766 351, // 1342
5767 -2646, // 1343
5768 -5151, // 1344
5769 -6696, // 1345
5770 -6915, // 1346
5771 -5694, // 1347
5772 -3261, // 1348
5773 -135, // 1349
5774 2994, // 1350
5775 5484, // 1351
5776 6852, // 1352
5777 6858, // 1353
5778 5556, // 1354
5779 3210, // 1355
5780 255, // 1356
5781 -2772, // 1357
5782 -5268, // 1358
5783 -6702, // 1359
5784 -6756, // 1360
5785 -5409, // 1361
5786 -2925, // 1362
5787 180, // 1363
5788 3231, // 1364
5789 5589, // 1365
5790 6822, // 1366
5791 6774, // 1367
5792 5469, // 1368
5793 3126, // 1369
5794 141, // 1370
5795 -2895, // 1371
5796 -5349, // 1372
5797 -6699, // 1373
5798 -6666, // 1374
5799 -5235, // 1375
5800 -2709, // 1376
5801 342, // 1377
5802 3270, // 1378
5803 5547, // 1379
5804 6786, // 1380
5805 6753, // 1381
5806 5421, // 1382
5807 2985, // 1383
5808 -78, // 1384
5809 -3147, // 1385
5810 -5553, // 1386
5811 -6792, // 1387
5812 -6612, // 1388
5813 -5100, // 1389
5814 -2616, // 1390
5815 345, // 1391
5816 3252, // 1392
5817 5550, // 1393
5818 6780, // 1394
5819 6672, // 1395
5820 5223, // 1396
5821 2691, // 1397
5822 -408, // 1398
5823 -3423, // 1399
5824 -5691, // 1400
5825 -6792, // 1401
5826 -6570, // 1402
5827 -5109, // 1403
5828 -2661, // 1404
5829 318, // 1405
5830 3258, // 1406
5831 5547, // 1407
5832 6729, // 1408
5833 6564, // 1409
5834 5043, // 1410
5835 2460, // 1411
5836 -645, // 1412
5837 -3597, // 1413
5838 -5805, // 1414
5839 -6888, // 1415
5840 -6669, // 1416
5841 -5172, // 1417
5842 -2661, // 1418
5843 372, // 1419
5844 3348, // 1420
5845 5664, // 1421
5846 6831, // 1422
5847 6558, // 1423
5848 4893, // 1424
5849 2220, // 1425
5850 -873, // 1426
5851 -3774, // 1427
5852 -5928, // 1428
5853 -6948, // 1429
5854 -6654, // 1430
5855 -5103, // 1431
5856 -2538, // 1432
5857 582, // 1433
5858 3639, // 1434
5859 5922, // 1435
5860 6912, // 1436
5861 6456, // 1437
5862 4713, // 1438
5863 2061, // 1439
5864 -975, // 1440
5865 -3807, // 1441
5866 -5916, // 1442
5867 -6921, // 1443
5868 -6618, // 1444
5869 -4989, // 1445
5870 -2274, // 1446
5871 957, // 1447
5872 3960, // 1448
5873 6084, // 1449
5874 6951, // 1450
5875 6444, // 1451
5876 4689, // 1452
5877 2040, // 1453
5878 -987, // 1454
5879 -3840, // 1455
5880 -5982, // 1456
5881 -6966, // 1457
5882 -6531, // 1458
5883 -4707, // 1459
5884 -1881, // 1460
5885 1326, // 1461
5886 4227, // 1462
5887 6255, // 1463
5888 7023, // 1464
5889 6435, // 1465
5890 4629, // 1466
5891 1956, // 1467
5892 -1107, // 1468
5893 -3975, // 1469
5894 -6060, // 1470
5895 -6894, // 1471
5896 -6300, // 1472
5897 -4395, // 1473
5898 -1566, // 1474
5899 1590, // 1475
5900 4392, // 1476
5901 6279, // 1477
5902 6954, // 1478
5903 6339, // 1479
5904 4539, // 1480
5905 1845, // 1481
5906 -1245, // 1482
5907 -4095, // 1483
5908 -6114, // 1484
5909 -6864, // 1485
5910 -6180, // 1486
5911 -4212, // 1487
5912 -1386, // 1488
5913 1674, // 1489
5914 4368, // 1490
5915 6222, // 1491
5916 6924, // 1492
5917 6315, // 1493
5918 4446, // 1494
5919 1653, // 1495
5920 -1503, // 1496
5921 -4350, // 1497
5922 -6282, // 1498
5923 -6888, // 1499
5924 -6090, // 1500
5925 -4104, // 1501
5926 -1356, // 1502
5927 1650, // 1503
5928 4356, // 1504
5929 6237, // 1505
5930 6903, // 1506
5931 6180, // 1507
5932 4191, // 1508
5933 1326, // 1509
5934 -1818, // 1510
5935 -4566, // 1511
5936 -6348, // 1512
5937 -6870, // 1513
5938 -6078, // 1514
5939 -4146, // 1515
5940 -1398, // 1516
5941 1647, // 1517
5942 4377, // 1518
5943 6228, // 1519
5944 6828, // 1520
5945 6039, // 1521
5946 3984, // 1522
5947 1086, // 1523
5948 -2028, // 1524
5949 -4698, // 1525
5950 -6444, // 1526
5951 -6963, // 1527
5952 -6162, // 1528
5953 -4170, // 1529
5954 -1350, // 1530
5955 1740, // 1531
5956 4503, // 1532
5957 6363, // 1533
5958 6897, // 1534
5959 5970, // 1535
5960 3792, // 1536
5961 858, // 1537
5962 -2217, // 1538
5963 -4839, // 1539
5964 -6531, // 1540
5965 -6987, // 1541
5966 -6117, // 1542
5967 -4065, // 1543
5968 -1173, // 1544
5969 2019, // 1545
5970 4812, // 1546
5971 6552, // 1547
5972 6888, // 1548
5973 5820, // 1549
5974 3624, // 1550
5975 738, // 1551
5976 -2274, // 1552
5977 -4845, // 1553
5978 -6510, // 1554
5979 -6948, // 1555
5980 -6042, // 1556
5981 -3867, // 1557
5982 -825, // 1558
5983 2391, // 1559
5984 5064, // 1560
5985 6645, // 1561
5986 6900, // 1562
5987 5811, // 1563
5988 3609, // 1564
5989 720, // 1565
5990 -2304, // 1566
5991 -4908, // 1567
5992 -6582, // 1568
5993 -6945, // 1569
5994 -5856, // 1570
5995 -3513, // 1571
5996 -432, // 1572
5997 2706, // 1573
5998 5271, // 1574
5999 6765, // 1575
6000 6927, // 1576
6001 5769, // 1577
6002 3528, // 1578
6003 618, // 1579
6004 -2442, // 1580
6005 -5037, // 1581
6006 -6600, // 1582
6007 -6792, // 1583
6008 -5577, // 1584
6009 -3201, // 1585
6010 -153, // 1586
6011 2910, // 1587
6012 5355, // 1588
6013 6729, // 1589
6014 6834, // 1590
6015 5676, // 1591
6016 3432, // 1592
6017 480, // 1593
6018 -2592, // 1594
6019 -5139, // 1595
6020 -6618, // 1596
6021 -6732, // 1597
6022 -5439, // 1598
6023 -3030, // 1599
6024 -33, // 1600
6025 2922, // 1601
6026 5295, // 1602
6027 6678, // 1603
6028 6810, // 1604
6029 5616, // 1605
6030 3279, // 1606
6031 237, // 1607
6032 -2865, // 1608
6033 -5364, // 1609
6034 -6732, // 1610
6035 -6702, // 1611
6036 -5343, // 1612
6037 -2970, // 1613
6038 -45, // 1614
6039 2895, // 1615
6040 5307, // 1616
6041 6693, // 1617
6042 6744, // 1618
6043 5421, // 1619
6044 2976, // 1620
6045 -102, // 1621
6046 -3144, // 1622
6047 -5508, // 1623
6048 -6744, // 1624
6049 -6684, // 1625
6050 -5364, // 1626
6051 -3024, // 1627
6052 -66, // 1628
6053 2925, // 1629
6054 5334, // 1630
6055 6669, // 1631
6056 6651, // 1632
6057 5256, // 1633
6058 2754, // 1634
6059 -324, // 1635
6060 -3306, // 1636
6061 -5610, // 1637
6062 -6840, // 1638
6063 -6783, // 1639
6064 -5424, // 1640
6065 -3003, // 1641
6066 24, // 1642
6067 3057, // 1643
6068 5493, // 1644
6069 6801, // 1645
6070 6666, // 1646
6071 5124, // 1647
6072 2535, // 1648
6073 -525, // 1649
6074 -3462, // 1650
6075 -5724, // 1651
6076 -6900, // 1652
6077 -6765, // 1653
6078 -5337, // 1654
6079 -2847, // 1655
6080 270, // 1656
6081 3384, // 1657
6082 5766, // 1658
6083 6894, // 1659
6084 6582, // 1660
6085 4965, // 1661
6086 2403, // 1662
6087 -606, // 1663
6088 -3489, // 1664
6089 -5712, // 1665
6090 -6864, // 1666
6091 -6711, // 1667
6092 -5199, // 1668
6093 -2556, // 1669
6094 666, // 1670
6095 3717, // 1671
6096 5937, // 1672
6097 6933, // 1673
6098 6576, // 1674
6099 4956, // 1675
6100 2397, // 1676
6101 -621, // 1677
6102 -3534, // 1678
6103 -5790, // 1679
6104 -6918, // 1680
6105 -6618, // 1681
6106 -4914, // 1682
6107 -2166, // 1683
6108 1020, // 1684
6109 3966, // 1685
6110 6090, // 1686
6111 7008, // 1687
6112 6567, // 1688
6113 4896, // 1689
6114 2295, // 1690
6115 -759, // 1691
6116 -3693, // 1692
6117 -5886, // 1693
6118 -6861, // 1694
6119 -6402, // 1695
6120 -4626, // 1696
6121 -1884, // 1697
6122 1245, // 1698
6123 4089, // 1699
6124 6096, // 1700
6125 6930, // 1701
6126 6468, // 1702
6127 4794, // 1703
6128 2166, // 1704
6129 -918, // 1705
6130 -3840, // 1706
6131 -5958, // 1707
6132 -6849, // 1708
6133 -6318, // 1709
6134 -4482, // 1710
6135 -1746, // 1711
6136 1302, // 1712
6137 4056, // 1713
6138 6033, // 1714
6139 6897, // 1715
6140 6441, // 1716
6141 4686, // 1717
6142 1959, // 1718
6143 -1200, // 1719
6144 -4110, // 1720
6145 -6144, // 1721
6146 -6900, // 1722
6147 -6258, // 1723
6148 -4407, // 1724
6149 -1731, // 1725
6150 1263, // 1726
6151 4050, // 1727
6152 6069, // 1728
6153 6882, // 1729
6154 6306, // 1730
6155 4434, // 1731
6156 1632, // 1732
6157 -1515, // 1733
6158 -4320, // 1734
6159 -6222, // 1735
6160 -6891, // 1736
6161 -6261, // 1737
6162 -4455, // 1738
6163 -1776, // 1739
6164 1284, // 1740
6165 4101, // 1741
6166 6087, // 1742
6167 6837, // 1743
6168 6183, // 1744
6169 4242, // 1745
6170 1410, // 1746
6171 -1701, // 1747
6172 -4443, // 1748
6173 -6312, // 1749
6174 -6987, // 1750
6175 -6345, // 1751
6176 -4470, // 1752
6177 -1701, // 1753
6178 1419, // 1754
6179 4266, // 1755
6180 6252, // 1756
6181 6927, // 1757
6182 6135, // 1758
6183 4068, // 1759
6184 1203, // 1760
6185 -1875, // 1761
6186 -4575, // 1762
6187 -6396, // 1763
6188 -7005, // 1764
6189 -6279, // 1765
6190 -4332, // 1766
6191 -1482, // 1767
6192 1731, // 1768
6193 4599, // 1769
6194 6459, // 1770
6195 6933, // 1771
6196 6009, // 1772
6197 3927, // 1773
6198 1107, // 1774
6199 -1923, // 1775
6200 -4578, // 1776
6201 -6369, // 1777
6202 -6957, // 1778
6203 -6186, // 1779
6204 -4113, // 1780
6205 -1113, // 1781
6206 2121, // 1782
6207 4854, // 1783
6208 6549, // 1784
6209 6948, // 1785
6210 6009, // 1786
6211 3921, // 1787
6212 1092, // 1788
6213 -1953, // 1789
6214 -4647, // 1790
6215 -6450, // 1791
6216 -6957, // 1792
6217 -6003, // 1793
6218 -3756, // 1794
6219 -735, // 1795
6220 2412, // 1796
6221 5040, // 1797
6222 6660, // 1798
6223 6978, // 1799
6224 5964, // 1800
6225 3837, // 1801
6226 966, // 1802
6227 -2115, // 1803
6228 -4797, // 1804
6229 -6486, // 1805
6230 -6822, // 1806
6231 -5745, // 1807
6232 -3480, // 1808
6233 -495, // 1809
6234 2574, // 1810
6235 5094, // 1811
6236 6609, // 1812
6237 6876, // 1813
6238 5862, // 1814
6239 3720, // 1815
6240 807, // 1816
6241 -2292, // 1817
6242 -4923, // 1818
6243 -6534, // 1819
6244 -6789, // 1820
6245 -5640, // 1821
6246 -3348, // 1822
6247 -414, // 1823
6248 2568, // 1824
6249 5037, // 1825
6250 6564, // 1826
6251 6852, // 1827
6252 5802, // 1828
6253 3549, // 1829
6254 549, // 1830
6255 -2583, // 1831
6256 -5166, // 1832
6257 -6657, // 1833
6258 -6783, // 1834
6259 -5577, // 1835
6260 -3315, // 1836
6261 -438, // 1837
6262 2538, // 1838
6263 5055, // 1839
6264 6588, // 1840
6265 6798, // 1841
6266 5604, // 1842
6267 3252, // 1843
6268 216, // 1844
6269 -2853, // 1845
6270 -5307, // 1846
6271 -6684, // 1847
6272 -6780, // 1848
6273 -5607, // 1849
6274 -3369, // 1850
6275 -450, // 1851
6276 2598, // 1852
6277 5118, // 1853
6278 6594, // 1854
6279 6720, // 1855
6280 5457, // 1856
6281 3048, // 1857
6282 12, // 1858
6283 -2997, // 1859
6284 -5403, // 1860
6285 -6777, // 1861
6286 -6873, // 1862
6287 -5658, // 1863
6288 -3321, // 1864
6289 -318, // 1865
6290 2775, // 1866
6291 5313, // 1867
6292 6750, // 1868
6293 6759, // 1869
6294 5346, // 1870
6295 2856, // 1871
6296 -168, // 1872
6297 -3141, // 1873
6298 -5508, // 1874
6299 -6822, // 1875
6300 -6843, // 1876
6301 -5547, // 1877
6302 -3135, // 1878
6303 -30, // 1879
6304 3123, // 1880
6305 5604, // 1881
6306 6858, // 1882
6307 6690, // 1883
6308 5211, // 1884
6309 2745, // 1885
6310 -234, // 1886
6311 -3162, // 1887
6312 -5493, // 1888
6313 -6789, // 1889
6314 -6780, // 1890
6315 -5394, // 1891
6316 -2826, // 1892
6317 372, // 1893
6318 3459, // 1894
6319 5769, // 1895
6320 6903, // 1896
6321 6690, // 1897
6322 5211, // 1898
6323 2739, // 1899
6324 -258, // 1900
6325 -3225, // 1901
6326 -5583, // 1902
6327 -6852, // 1903
6328 -6693, // 1904
6329 -5106, // 1905
6330 -2442, // 1906
6331 705, // 1907
6332 3684, // 1908
6333 5904, // 1909
6334 6963, // 1910
6335 6684, // 1911
6336 5145, // 1912
6337 2625, // 1913
6338 -414, // 1914
6339 -3405, // 1915
6340 -5700, // 1916
6341 -6810, // 1917
6342 -6498, // 1918
6343 -4845, // 1919
6344 -2202, // 1920
6345 891, // 1921
6346 3783, // 1922
6347 5901, // 1923
6348 6882, // 1924
6349 6579, // 1925
6350 5031, // 1926
6351 2484, // 1927
6352 -594, // 1928
6353 -3570, // 1929
6354 -5799, // 1930
6355 -6819, // 1931
6356 -6444, // 1932
6357 -4743, // 1933
6358 -2106, // 1934
6359 918, // 1935
6360 3732, // 1936
6361 5835, // 1937
6362 6852, // 1938
6363 6546, // 1939
6364 4914, // 1940
6365 2250, // 1941
6366 -891, // 1942
6367 -3852, // 1943
6368 -5997, // 1944
6369 -6894, // 1945
6370 -6408, // 1946
6371 -4692, // 1947
6372 -2109, // 1948
6373 882, // 1949
6374 3732, // 1950
6375 5877, // 1951
6376 6855, // 1952
6377 6423, // 1953
6378 4668, // 1954
6379 1935, // 1955
6380 -1200, // 1956
6381 -4062, // 1957
6382 -6078, // 1958
6383 -6894, // 1959
6384 -6423, // 1960
6385 -4746, // 1961
6386 -2145, // 1962
6387 924, // 1963
6388 3819, // 1964
6389 5934, // 1965
6390 6834, // 1966
6391 6324, // 1967
6392 4494, // 1968
6393 1731, // 1969
6394 -1371, // 1970
6395 -4173, // 1971
6396 -6159, // 1972
6397 -6990, // 1973
6398 -6498, // 1974
6399 -4746, // 1975
6400 -2034, // 1976
6401 1101, // 1977
6402 4029, // 1978
6403 6132, // 1979
6404 6945, // 1980
6405 6288, // 1981
6406 4341, // 1982
6407 1542, // 1983
6408 -1521, // 1984
6409 -4287, // 1985
6410 -6237, // 1986
6411 -6996, // 1987
6412 -6420, // 1988
6413 -4578, // 1989
6414 -1782, // 1990
6415 1440, // 1991
6416 4380, // 1992
6417 6345, // 1993
6418 6960, // 1994
6419 6183, // 1995
6420 4218, // 1996
6421 1473, // 1997
6422 -1560, // 1998
6423 -4293, // 1999
6424 -6213, // 2000
6425 -6951, // 2001
6426 -6318, // 2002
6427 -4344, // 2003
6428 -1410, // 2004
6429 1827, // 2005
6430 4629, // 2006
6431 6438, // 2007
6432 6978, // 2008
6433 6189, // 2009
6434 4227, // 2010
6435 1452, // 2011
6436 -1608, // 2012
6437 -4383, // 2013
6438 -6309, // 2014
6439 -6957, // 2015
6440 -6132, // 2016
6441 -3999, // 2017
6442 -1047, // 2018
6443 2091, // 2019
6444 4788, // 2020
6445 6531, // 2021
6446 7002, // 2022
6447 6144, // 2023
6448 4125, // 2024
6449 1311, // 2025
6450 -1791, // 2026
6451 -4551, // 2027
6452 -6363, // 2028
6453 -6837, // 2029
6454 -5901, // 2030
6455 -3759, // 2031
6456 -849, // 2032
6457 2223, // 2033
6458 4821, // 2034
6459 6471, // 2035
6460 6900, // 2036
6461 6033, // 2037
6462 3996, // 2038
6463 1131, // 2039
6464 -1995, // 2040
6465 -4704, // 2041
6466 -6426, // 2042
6467 -6828, // 2043
6468 -5838, // 2044
6469 -3672, // 2045
6470 -801, // 2046
6471 2196, // 2047
6472 4755, // 2048
6473 6429, // 2049
6474 6879, // 2050
6475 5967, // 2051
6476 3816, // 2052
6477 852, // 2053
6478 -2292, // 2054
6479 -4950, // 2055
6480 -6570, // 2056
6481 -6852, // 2057
6482 -5796, // 2058
6483 -3651, // 2059
6484 -825, // 2060
6485 2175, // 2061
6486 4794, // 2062
6487 6474, // 2063
6488 6834, // 2064
6489 5781, // 2065
6490 3522, // 2066
6491 534, // 2067
6492 -2550, // 2068
6493 -5088, // 2069
6494 -6597, // 2070
6495 -6852, // 2071
6496 -5832, // 2072
6497 -3705, // 2073
6498 -819, // 2074
6499 2268, // 2075
6500 4899, // 2076
6501 6513, // 2077
6502 6783, // 2078
6503 5652, // 2079
6504 3336, // 2080
6505 348, // 2081
6506 -2691, // 2082
6507 -5178, // 2083
6508 -6687, // 2084
6509 -6948, // 2085
6510 -5874, // 2086
6511 -3633, // 2087
6512 -645, // 2088
6513 2490, // 2089
6514 5121, // 2090
6515 6693, // 2091
6516 6840, // 2092
6517 5559, // 2093
6518 3174, // 2094
6519 192, // 2095
6520 -2808, // 2096
6521 -5274, // 2097
6522 -6735, // 2098
6523 -6909, // 2099
6524 -5739, // 2100
6525 -3408, // 2101
6526 -324, // 2102
6527 2862, // 2103
6528 5430, // 2104
6529 6804, // 2105
6530 6780, // 2106
6531 5445, // 2107
6532 3078, // 2108
6533 141, // 2109
6534 -2832, // 2110
6535 -5265, // 2111
6536 -6702, // 2112
6537 -6834, // 2113
6538 -5568, // 2114
6539 -3090, // 2115
6540 78, // 2116
6541 3189, // 2117
6542 5580, // 2118
6543 6843, // 2119
6544 6792, // 2120
6545 5454, // 2121
6546 3078, // 2122
6547 108, // 2123
6548 -2901, // 2124
6549 -5370, // 2125
6550 -6774, // 2126
6551 -6753, // 2127
6552 -5298, // 2128
6553 -2730, // 2129
6554 381, // 2130
6555 3378, // 2131
6556 5694, // 2132
6557 6900, // 2133
6558 6777, // 2134
6559 5373, // 2135
6560 2946, // 2136
6561 -75, // 2137
6562 -3111, // 2138
6563 -5511, // 2139
6564 -6750, // 2140
6565 -6579, // 2141
6566 -5067, // 2142
6567 -2529, // 2143
6568 522, // 2144
6569 3450, // 2145
6570 5673, // 2146
6571 6807, // 2147
6572 6666, // 2148
6573 5253, // 2149
6574 2787, // 2150
6575 -282, // 2151
6576 -3300, // 2152
6577 -5625, // 2153
6578 -6786, // 2154
6579 -6555, // 2155
6580 -5004, // 2156
6581 -2466, // 2157
6582 528, // 2158
6583 3390, // 2159
6584 5619, // 2160
6585 6786, // 2161
6586 6636, // 2162
6587 5130, // 2163
6588 2544, // 2164
6589 -585, // 2165
6590 -3588, // 2166
6591 -5829, // 2167
6592 -6873, // 2168
6593 -6549, // 2169
6594 -4977, // 2170
6595 -2481, // 2171
6596 495, // 2172
6597 3414, // 2173
6598 5685, // 2174
6599 6810, // 2175
6600 6525, // 2176
6601 4887, // 2177
6602 2232, // 2178
6603 -879, // 2179
6604 -3786, // 2180
6605 -5910, // 2181
6606 -6876, // 2182
6607 -6567, // 2183
6608 -5025, // 2184
6609 -2496, // 2185
6610 564, // 2186
6611 3537, // 2187
6612 5778, // 2188
6613 6813, // 2189
6614 6447, // 2190
6615 4734, // 2191
6616 2052, // 2192
6617 -1035, // 2193
6618 -3885, // 2194
6619 -5985, // 2195
6620 -6966, // 2196
6621 -6633, // 2197
6622 -5001, // 2198
6623 -2352, // 2199
6624 792, // 2200
6625 3792, // 2201
6626 6006, // 2202
6627};
6628
374ca955
A
6629/**
6630 * The position of the moon at the time set on this
6631 * object, in equatorial coordinates.
6632 * @internal
6633 * @deprecated ICU 2.4. This class may be removed or modified.
6634 */
6635const CalendarAstronomer::Equatorial& CalendarAstronomer::getMoonPosition()
6636{
374ca955 6637 //
57a6839d 6638 // See page 142 of "Practical Astronomy with your Calculator",
46f4442e 6639 // by Peter Duffet-Smith, for details on the algorithm.
374ca955 6640 //
46f4442e
A
6641 if (moonPositionSet == FALSE) {
6642 // Calculate the solar longitude. Has the side effect of
6643 // filling in "meanAnomalySun" as well.
6644 getSunLongitude();
6645
6646 //
6647 // Find the # of days since the epoch of our orbital parameters.
6648 // TODO: Convert the time of day portion into ephemeris time
6649 //
6650 double day = getJulianDay() - JD_EPOCH; // Days since epoch
6651
6652 // Calculate the mean longitude and anomaly of the moon, based on
6653 // a circular orbit. Similar to the corresponding solar calculation.
6654 double meanLongitude = norm2PI(13.1763966*PI/180*day + moonL0);
6655 meanAnomalyMoon = norm2PI(meanLongitude - 0.1114041*PI/180 * day - moonP0);
6656
6657 //
6658 // Calculate the following corrections:
6659 // Evection: the sun's gravity affects the moon's eccentricity
6660 // Annual Eqn: variation in the effect due to earth-sun distance
6661 // A3: correction factor (for ???)
6662 //
6663 double evection = 1.2739*PI/180 * ::sin(2 * (meanLongitude - sunLongitude)
6664 - meanAnomalyMoon);
6665 double annual = 0.1858*PI/180 * ::sin(meanAnomalySun);
6666 double a3 = 0.3700*PI/180 * ::sin(meanAnomalySun);
6667
6668 meanAnomalyMoon += evection - annual - a3;
6669
6670 //
6671 // More correction factors:
6672 // center equation of the center correction
6673 // a4 yet another error correction (???)
6674 //
6675 // TODO: Skip the equation of the center correction and solve Kepler's eqn?
6676 //
6677 double center = 6.2886*PI/180 * ::sin(meanAnomalyMoon);
6678 double a4 = 0.2140*PI/180 * ::sin(2 * meanAnomalyMoon);
6679
6680 // Now find the moon's corrected longitude
6681 moonLongitude = meanLongitude + evection + center - annual + a4;
6682
6683 //
6684 // And finally, find the variation, caused by the fact that the sun's
6685 // gravitational pull on the moon varies depending on which side of
6686 // the earth the moon is on
6687 //
6688 double variation = 0.6583*CalendarAstronomer::PI/180 * ::sin(2*(moonLongitude - sunLongitude));
6689
6690 moonLongitude += variation;
6691
6692 //
6693 // What we've calculated so far is the moon's longitude in the plane
6694 // of its own orbit. Now map to the ecliptic to get the latitude
6695 // and longitude. First we need to find the longitude of the ascending
6696 // node, the position on the ecliptic where it is crossed by the moon's
6697 // orbit as it crosses from the southern to the northern hemisphere.
6698 //
6699 double nodeLongitude = norm2PI(moonN0 - 0.0529539*PI/180 * day);
6700
6701 nodeLongitude -= 0.16*PI/180 * ::sin(meanAnomalySun);
6702
6703 double y = ::sin(moonLongitude - nodeLongitude);
6704 double x = cos(moonLongitude - nodeLongitude);
6705
6706 moonEclipLong = ::atan2(y*cos(moonI), x) + nodeLongitude;
6707 double moonEclipLat = ::asin(y * ::sin(moonI));
6708
6709 eclipticToEquatorial(moonPosition, moonEclipLong, moonEclipLat);
6710 moonPositionSet = TRUE;
6711 }
6712 return moonPosition;
374ca955
A
6713}
6714
6715/**
6716 * The "age" of the moon at the time specified in this object.
6717 * This is really the angle between the
6718 * current ecliptic longitudes of the sun and the moon,
6719 * measured in radians.
6720 *
6721 * @see #getMoonPhase
6722 * @internal
6723 * @deprecated ICU 2.4. This class may be removed or modified.
6724 */
6725double CalendarAstronomer::getMoonAge() {
57a6839d 6726 // See page 147 of "Practical Astronomy with your Calculator",
46f4442e
A
6727 // by Peter Duffet-Smith, for details on the algorithm.
6728 //
6729 // Force the moon's position to be calculated. We're going to use
6730 // some the intermediate results cached during that calculation.
6731 //
57a6839d
A
6732 // Currently, the only client is IslamicCalendar. All it cares
6733 // about is that the method returns new moon (0) and full moon (PI)
6734 // at the correct date & time, and otherwise that the returned value
6735 // is monotonically increasing from 0 to PI for the range new moon date
6736 // to full moon date, and monotonically increasing from PI to just under
6737 // 2*PI for the range full moon date to just before next new moon date.
6738
6739 if (fTime >= newMoonDatesFirst && fTime < newMoonDatesLast) {
6740 int32_t offset = (int32_t)(((double)kNewMoonDatesCount)*(fTime - newMoonDatesFirst)/newMoonDatesRange);
6741 const int32_t * newMoonDatesPtr = newMoonDates + offset; // approximate starting position
6742 int32_t curTime = (int32_t)(fTime/10000.0);
6743 while (curTime < *newMoonDatesPtr) {
6744 newMoonDatesPtr--;
6745 }
6746 while (curTime >= *(newMoonDatesPtr+1)) {
6747 newMoonDatesPtr++;
6748 }
6749 offset = newMoonDatesPtr - newMoonDates;
6750 int32_t fullMoonDate = (*newMoonDatesPtr + *(newMoonDatesPtr+1))/2 + fullMoonAdjustmts[offset];
6751 if (curTime < fullMoonDate) {
6752 return PI*((double)(curTime - *newMoonDatesPtr))/((double)(fullMoonDate - *newMoonDatesPtr));
6753 }
6754 return PI + PI*((double)(curTime - fullMoonDate))/((double)(*(newMoonDatesPtr+1) - fullMoonDate));
6755 }
6756
46f4442e
A
6757 getMoonPosition();
6758
6759 return norm2PI(moonEclipLong - sunLongitude);
374ca955
A
6760}
6761
6762/**
6763 * Calculate the phase of the moon at the time set in this object.
6764 * The returned phase is a <code>double</code> in the range
6765 * <code>0 <= phase < 1</code>, interpreted as follows:
6766 * <ul>
6767 * <li>0.00: New moon
6768 * <li>0.25: First quarter
6769 * <li>0.50: Full moon
6770 * <li>0.75: Last quarter
6771 * </ul>
6772 *
6773 * @see #getMoonAge
6774 * @internal
6775 * @deprecated ICU 2.4. This class may be removed or modified.
6776 */
6777double CalendarAstronomer::getMoonPhase() {
57a6839d 6778 // See page 147 of "Practical Astronomy with your Calculator",
46f4442e
A
6779 // by Peter Duffet-Smith, for details on the algorithm.
6780 return 0.5 * (1 - cos(getMoonAge()));
374ca955
A
6781}
6782
6783/**
6784 * Constant representing a new moon.
6785 * For use with {@link #getMoonTime getMoonTime}
6786 * @internal
6787 * @deprecated ICU 2.4. This class may be removed or modified.
6788 */
46f4442e
A
6789const CalendarAstronomer::MoonAge CalendarAstronomer::NEW_MOON() {
6790 return CalendarAstronomer::MoonAge(0);
6791}
374ca955
A
6792
6793/**
6794 * Constant representing the moon's first quarter.
6795 * For use with {@link #getMoonTime getMoonTime}
6796 * @internal
6797 * @deprecated ICU 2.4. This class may be removed or modified.
6798 */
73c04bcf 6799/*const CalendarAstronomer::MoonAge CalendarAstronomer::FIRST_QUARTER() {
374ca955 6800 return CalendarAstronomer::MoonAge(CalendarAstronomer::PI/2);
73c04bcf 6801}*/
374ca955
A
6802
6803/**
6804 * Constant representing a full moon.
6805 * For use with {@link #getMoonTime getMoonTime}
6806 * @internal
6807 * @deprecated ICU 2.4. This class may be removed or modified.
6808 */
6809const CalendarAstronomer::MoonAge CalendarAstronomer::FULL_MOON() {
46f4442e 6810 return CalendarAstronomer::MoonAge(CalendarAstronomer::PI);
374ca955
A
6811}
6812/**
6813 * Constant representing the moon's last quarter.
6814 * For use with {@link #getMoonTime getMoonTime}
6815 * @internal
6816 * @deprecated ICU 2.4. This class may be removed or modified.
6817 */
6818
6819class MoonTimeAngleFunc : public CalendarAstronomer::AngleFunc {
6820public:
4388f060 6821 virtual ~MoonTimeAngleFunc();
46f4442e 6822 virtual double eval(CalendarAstronomer&a) { return a.getMoonAge(); }
374ca955
A
6823};
6824
4388f060
A
6825MoonTimeAngleFunc::~MoonTimeAngleFunc() {}
6826
73c04bcf 6827/*const CalendarAstronomer::MoonAge CalendarAstronomer::LAST_QUARTER() {
374ca955 6828 return CalendarAstronomer::MoonAge((CalendarAstronomer::PI*3)/2);
73c04bcf 6829}*/
374ca955 6830
57a6839d
A
6831/**
6832 * Find the next or previous time of a new moon if date is in the
6833 * range handled by this function (approx gregorian 1900-2100),
6834 * else return 0.
6835 * <p>
6836 * @param theTime the time relative to which the function should find
6837 * the next or previous new moon
6838 * @param next <tt>true</tt> if the next occurrance of the new moon
6839 * is desired, <tt>false</tt> for the previous occurrance.
6840 * @internal
6841 */
6842UDate CalendarAstronomer::getNewMoonTimeInRange(UDate theTime, UBool next)
6843{
6844 if (theTime < newMoonDatesFirst || theTime >= newMoonDatesLast) {
6845 return 0.0;
6846 }
6847 int32_t offset = (int32_t)(((double)kNewMoonDatesCount)*(theTime - newMoonDatesFirst)/newMoonDatesRange);
6848 const int32_t * newMoonDatesPtr = newMoonDates + offset; // approximate starting position
6849 int32_t curTime = (int32_t)(theTime/10000.0);
6850 while (curTime < *newMoonDatesPtr) {
6851 newMoonDatesPtr--;
6852 }
6853 while (curTime >= *(newMoonDatesPtr+1)) {
6854 newMoonDatesPtr++;
6855 }
6856 if (next) {
6857 newMoonDatesPtr++;
6858 }
6859 return 10000.0 * (UDate)(*newMoonDatesPtr);
6860}
6861
6862
374ca955
A
6863/**
6864 * Find the next or previous time at which the Moon's ecliptic
6865 * longitude will have the desired value.
6866 * <p>
6867 * @param desired The desired longitude.
6868 * @param next <tt>true</tt> if the next occurrance of the phase
6869 * is desired, <tt>false</tt> for the previous occurrance.
6870 * @internal
6871 * @deprecated ICU 2.4. This class may be removed or modified.
6872 */
6873UDate CalendarAstronomer::getMoonTime(double desired, UBool next)
6874{
57a6839d
A
6875 // Currently, we only get here via a call from ChineseCalendar,
6876 // with desired == CalendarAstronomer::NEW_MOON().value
6877 if (desired == CalendarAstronomer::NEW_MOON().value) {
6878 UDate newMoonTime = CalendarAstronomer::getNewMoonTimeInRange(fTime, next);
6879 if (newMoonTime != 0.0) {
6880 return newMoonTime;
6881 }
6882 // else fall through to the full calculation
6883 }
6884
46f4442e
A
6885 MoonTimeAngleFunc func;
6886 return timeOfAngle( func,
6887 desired,
6888 SYNODIC_MONTH,
6889 MINUTE_MS,
6890 next);
374ca955
A
6891}
6892
6893/**
6894 * Find the next or previous time at which the moon will be in the
6895 * desired phase.
6896 * <p>
6897 * @param desired The desired phase of the moon.
6898 * @param next <tt>true</tt> if the next occurrance of the phase
6899 * is desired, <tt>false</tt> for the previous occurrance.
6900 * @internal
6901 * @deprecated ICU 2.4. This class may be removed or modified.
6902 */
6903UDate CalendarAstronomer::getMoonTime(const CalendarAstronomer::MoonAge& desired, UBool next) {
57a6839d
A
6904 // Currently, the only client is ChineseCalendar, which calls
6905 // this with desired == CalendarAstronomer::NEW_MOON()
46f4442e 6906 return getMoonTime(desired.value, next);
374ca955
A
6907}
6908
6909class MoonRiseSetCoordFunc : public CalendarAstronomer::CoordFunc {
6910public:
4388f060 6911 virtual ~MoonRiseSetCoordFunc();
46f4442e 6912 virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer&a) { result = a.getMoonPosition(); }
374ca955
A
6913};
6914
4388f060
A
6915MoonRiseSetCoordFunc::~MoonRiseSetCoordFunc() {}
6916
374ca955
A
6917/**
6918 * Returns the time (GMT) of sunrise or sunset on the local date to which
6919 * this calendar is currently set.
6920 * @internal
6921 * @deprecated ICU 2.4. This class may be removed or modified.
6922 */
6923UDate CalendarAstronomer::getMoonRiseSet(UBool rise)
6924{
46f4442e
A
6925 MoonRiseSetCoordFunc func;
6926 return riseOrSet(func,
6927 rise,
6928 .533 * DEG_RAD, // Angular Diameter
6929 34 /60.0 * DEG_RAD, // Refraction correction
6930 MINUTE_MS); // Desired accuracy
374ca955
A
6931}
6932
6933//-------------------------------------------------------------------------
6934// Interpolation methods for finding the time at which a given event occurs
6935//-------------------------------------------------------------------------
6936
6937UDate CalendarAstronomer::timeOfAngle(AngleFunc& func, double desired,
6938 double periodDays, double epsilon, UBool next)
6939{
46f4442e
A
6940 // Find the value of the function at the current time
6941 double lastAngle = func.eval(*this);
374ca955 6942
46f4442e
A
6943 // Find out how far we are from the desired angle
6944 double deltaAngle = norm2PI(desired - lastAngle) ;
374ca955 6945
46f4442e
A
6946 // Using the average period, estimate the next (or previous) time at
6947 // which the desired angle occurs.
6948 double deltaT = (deltaAngle + (next ? 0.0 : - CalendarAstronomer_PI2 )) * (periodDays*DAY_MS) / CalendarAstronomer_PI2;
374ca955 6949
46f4442e
A
6950 double lastDeltaT = deltaT; // Liu
6951 UDate startTime = fTime; // Liu
374ca955 6952
46f4442e 6953 setTime(fTime + uprv_ceil(deltaT));
374ca955 6954
46f4442e
A
6955 // Now iterate until we get the error below epsilon. Throughout
6956 // this loop we use normPI to get values in the range -Pi to Pi,
6957 // since we're using them as correction factors rather than absolute angles.
6958 do {
6959 // Evaluate the function at the time we've estimated
6960 double angle = func.eval(*this);
6961
6962 // Find the # of milliseconds per radian at this point on the curve
6963 double factor = uprv_fabs(deltaT / normPI(angle-lastAngle));
6964
6965 // Correct the time estimate based on how far off the angle is
6966 deltaT = normPI(desired - angle) * factor;
6967
6968 // HACK:
6969 //
6970 // If abs(deltaT) begins to diverge we need to quit this loop.
6971 // This only appears to happen when attempting to locate, for
6972 // example, a new moon on the day of the new moon. E.g.:
6973 //
6974 // This result is correct:
6975 // newMoon(7508(Mon Jul 23 00:00:00 CST 1990,false))=
6976 // Sun Jul 22 10:57:41 CST 1990
6977 //
6978 // But attempting to make the same call a day earlier causes deltaT
6979 // to diverge:
6980 // CalendarAstronomer.timeOfAngle() diverging: 1.348508727575625E9 ->
6981 // 1.3649828540224032E9
6982 // newMoon(7507(Sun Jul 22 00:00:00 CST 1990,false))=
6983 // Sun Jul 08 13:56:15 CST 1990
6984 //
6985 // As a temporary solution, we catch this specific condition and
6986 // adjust our start time by one eighth period days (either forward
6987 // or backward) and try again.
6988 // Liu 11/9/00
6989 if (uprv_fabs(deltaT) > uprv_fabs(lastDeltaT)) {
6990 double delta = uprv_ceil (periodDays * DAY_MS / 8.0);
6991 setTime(startTime + (next ? delta : -delta));
6992 return timeOfAngle(func, desired, periodDays, epsilon, next);
6993 }
6994
6995 lastDeltaT = deltaT;
6996 lastAngle = angle;
6997
6998 setTime(fTime + uprv_ceil(deltaT));
374ca955 6999 }
46f4442e 7000 while (uprv_fabs(deltaT) > epsilon);
374ca955 7001
46f4442e 7002 return fTime;
374ca955
A
7003}
7004
7005UDate CalendarAstronomer::riseOrSet(CoordFunc& func, UBool rise,
7006 double diameter, double refraction,
7007 double epsilon)
7008{
46f4442e
A
7009 Equatorial pos;
7010 double tanL = ::tan(fLatitude);
7011 double deltaT = 0;
7012 int32_t count = 0;
374ca955 7013
46f4442e
A
7014 //
7015 // Calculate the object's position at the current time, then use that
7016 // position to calculate the time of rising or setting. The position
7017 // will be different at that time, so iterate until the error is allowable.
7018 //
7019 U_DEBUG_ASTRO_MSG(("setup rise=%s, dia=%.3lf, ref=%.3lf, eps=%.3lf\n",
7020 rise?"T":"F", diameter, refraction, epsilon));
7021 do {
7022 // See "Practical Astronomy With Your Calculator, section 33.
7023 func.eval(pos, *this);
7024 double angle = ::acos(-tanL * ::tan(pos.declination));
7025 double lst = ((rise ? CalendarAstronomer_PI2-angle : angle) + pos.ascension ) * 24 / CalendarAstronomer_PI2;
7026
7027 // Convert from LST to Universal Time.
7028 UDate newTime = lstToUT( lst );
7029
7030 deltaT = newTime - fTime;
7031 setTime(newTime);
7032 U_DEBUG_ASTRO_MSG(("%d] dT=%.3lf, angle=%.3lf, lst=%.3lf, A=%.3lf/D=%.3lf\n",
7033 count, deltaT, angle, lst, pos.ascension, pos.declination));
7034 }
7035 while (++ count < 5 && uprv_fabs(deltaT) > epsilon);
374ca955 7036
46f4442e
A
7037 // Calculate the correction due to refraction and the object's angular diameter
7038 double cosD = ::cos(pos.declination);
7039 double psi = ::acos(sin(fLatitude) / cosD);
7040 double x = diameter / 2 + refraction;
7041 double y = ::asin(sin(x) / ::sin(psi));
7042 long delta = (long)((240 * y * RAD_DEG / cosD)*SECOND_MS);
374ca955 7043
46f4442e 7044 return fTime + (rise ? -delta : delta);
374ca955 7045}
57a6839d 7046/**
374ca955
A
7047 * Return the obliquity of the ecliptic (the angle between the ecliptic
7048 * and the earth's equator) at the current time. This varies due to
7049 * the precession of the earth's axis.
7050 *
7051 * @return the obliquity of the ecliptic relative to the equator,
7052 * measured in radians.
7053 */
7054double CalendarAstronomer::eclipticObliquity() {
46f4442e
A
7055 if (isINVALID(eclipObliquity)) {
7056 const double epoch = 2451545.0; // 2000 AD, January 1.5
374ca955 7057
46f4442e 7058 double T = (getJulianDay() - epoch) / 36525;
374ca955 7059
46f4442e
A
7060 eclipObliquity = 23.439292
7061 - 46.815/3600 * T
7062 - 0.0006/3600 * T*T
7063 + 0.00181/3600 * T*T*T;
374ca955 7064
46f4442e
A
7065 eclipObliquity *= DEG_RAD;
7066 }
7067 return eclipObliquity;
374ca955
A
7068}
7069
7070
7071//-------------------------------------------------------------------------
7072// Private data
7073//-------------------------------------------------------------------------
7074void CalendarAstronomer::clearCache() {
46f4442e
A
7075 const double INVALID = uprv_getNaN();
7076
7077 julianDay = INVALID;
7078 julianCentury = INVALID;
7079 sunLongitude = INVALID;
7080 meanAnomalySun = INVALID;
7081 moonLongitude = INVALID;
7082 moonEclipLong = INVALID;
7083 meanAnomalyMoon = INVALID;
7084 eclipObliquity = INVALID;
7085 siderealTime = INVALID;
7086 siderealT0 = INVALID;
7087 moonPositionSet = FALSE;
374ca955
A
7088}
7089
7090//private static void out(String s) {
7091// System.out.println(s);
7092//}
7093
7094//private static String deg(double rad) {
7095// return Double.toString(rad * RAD_DEG);
7096//}
7097
7098//private static String hours(long ms) {
7099// return Double.toString((double)ms / HOUR_MS) + " hours";
7100//}
7101
7102/**
7103 * @internal
7104 * @deprecated ICU 2.4. This class may be removed or modified.
7105 */
73c04bcf 7106/*UDate CalendarAstronomer::local(UDate localMillis) {
374ca955
A
7107 // TODO - srl ?
7108 TimeZone *tz = TimeZone::createDefault();
7109 int32_t rawOffset;
7110 int32_t dstOffset;
7111 UErrorCode status = U_ZERO_ERROR;
7112 tz->getOffset(localMillis, TRUE, rawOffset, dstOffset, status);
7113 delete tz;
7114 return localMillis - rawOffset;
73c04bcf 7115}*/
374ca955
A
7116
7117// Debugging functions
7118UnicodeString CalendarAstronomer::Ecliptic::toString() const
7119{
7120#ifdef U_DEBUG_ASTRO
46f4442e
A
7121 char tmp[800];
7122 sprintf(tmp, "[%.5f,%.5f]", longitude*RAD_DEG, latitude*RAD_DEG);
7123 return UnicodeString(tmp, "");
374ca955 7124#else
46f4442e 7125 return UnicodeString();
374ca955
A
7126#endif
7127}
7128
7129UnicodeString CalendarAstronomer::Equatorial::toString() const
7130{
7131#ifdef U_DEBUG_ASTRO
46f4442e
A
7132 char tmp[400];
7133 sprintf(tmp, "%f,%f",
7134 (ascension*RAD_DEG), (declination*RAD_DEG));
7135 return UnicodeString(tmp, "");
374ca955 7136#else
46f4442e 7137 return UnicodeString();
374ca955
A
7138#endif
7139}
7140
7141UnicodeString CalendarAstronomer::Horizon::toString() const
7142{
7143#ifdef U_DEBUG_ASTRO
46f4442e
A
7144 char tmp[800];
7145 sprintf(tmp, "[%.5f,%.5f]", altitude*RAD_DEG, azimuth*RAD_DEG);
7146 return UnicodeString(tmp, "");
374ca955 7147#else
46f4442e 7148 return UnicodeString();
374ca955
A
7149#endif
7150}
7151
7152
7153// static private String radToHms(double angle) {
7154// int hrs = (int) (angle*RAD_HOUR);
7155// int min = (int)((angle*RAD_HOUR - hrs) * 60);
7156// int sec = (int)((angle*RAD_HOUR - hrs - min/60.0) * 3600);
7157
7158// return Integer.toString(hrs) + "h" + min + "m" + sec + "s";
7159// }
7160
7161// static private String radToDms(double angle) {
7162// int deg = (int) (angle*RAD_DEG);
7163// int min = (int)((angle*RAD_DEG - deg) * 60);
7164// int sec = (int)((angle*RAD_DEG - deg - min/60.0) * 3600);
7165
7166// return Integer.toString(deg) + "\u00b0" + min + "'" + sec + "\"";
7167// }
7168
7169// =============== Calendar Cache ================
7170
7171void CalendarCache::createCache(CalendarCache** cache, UErrorCode& status) {
46f4442e
A
7172 ucln_i18n_registerCleanup(UCLN_I18N_ASTRO_CALENDAR, calendar_astro_cleanup);
7173 if(cache == NULL) {
7174 status = U_MEMORY_ALLOCATION_ERROR;
7175 } else {
7176 *cache = new CalendarCache(32, status);
7177 if(U_FAILURE(status)) {
7178 delete *cache;
7179 *cache = NULL;
7180 }
73c04bcf 7181 }
374ca955
A
7182}
7183
7184int32_t CalendarCache::get(CalendarCache** cache, int32_t key, UErrorCode &status) {
46f4442e 7185 int32_t res;
374ca955 7186
374ca955 7187 if(U_FAILURE(status)) {
46f4442e
A
7188 return 0;
7189 }
3d1f044b 7190 umtx_lock(ccLock());
46f4442e
A
7191
7192 if(*cache == NULL) {
7193 createCache(cache, status);
7194 if(U_FAILURE(status)) {
3d1f044b 7195 umtx_unlock(ccLock());
46f4442e
A
7196 return 0;
7197 }
374ca955 7198 }
374ca955 7199
46f4442e
A
7200 res = uhash_igeti((*cache)->fTable, key);
7201 U_DEBUG_ASTRO_MSG(("%p: GET: [%d] == %d\n", (*cache)->fTable, key, res));
374ca955 7202
3d1f044b 7203 umtx_unlock(ccLock());
46f4442e 7204 return res;
374ca955
A
7205}
7206
7207void CalendarCache::put(CalendarCache** cache, int32_t key, int32_t value, UErrorCode &status) {
374ca955 7208 if(U_FAILURE(status)) {
46f4442e
A
7209 return;
7210 }
3d1f044b 7211 umtx_lock(ccLock());
46f4442e
A
7212
7213 if(*cache == NULL) {
7214 createCache(cache, status);
7215 if(U_FAILURE(status)) {
3d1f044b 7216 umtx_unlock(ccLock());
46f4442e
A
7217 return;
7218 }
374ca955 7219 }
374ca955 7220
46f4442e
A
7221 uhash_iputi((*cache)->fTable, key, value, &status);
7222 U_DEBUG_ASTRO_MSG(("%p: PUT: [%d] := %d\n", (*cache)->fTable, key, value));
374ca955 7223
3d1f044b 7224 umtx_unlock(ccLock());
374ca955
A
7225}
7226
7227CalendarCache::CalendarCache(int32_t size, UErrorCode &status) {
46f4442e
A
7228 fTable = uhash_openSize(uhash_hashLong, uhash_compareLong, NULL, size, &status);
7229 U_DEBUG_ASTRO_MSG(("%p: Opening.\n", fTable));
374ca955
A
7230}
7231
7232CalendarCache::~CalendarCache() {
46f4442e
A
7233 if(fTable != NULL) {
7234 U_DEBUG_ASTRO_MSG(("%p: Closing.\n", fTable));
7235 uhash_close(fTable);
7236 }
374ca955
A
7237}
7238
7239U_NAMESPACE_END
7240
7241#endif // !UCONFIG_NO_FORMATTING