78fd532000-07-12Mirar (Pontus Hagland) // ---------------------------------------------------------------- // Timezones // // NOTE: this file is generated by mkrules.pike; // please do not edit manually /Mirar // ---------------------------------------------------------------- import "."; // ---------------------------------------------------------------------- // Timezones // ---------------------------------------------------------------------- Ruleset.Timezone Indian_Chagos=Ruleset.Timezone(-18000,"IOT"); Ruleset.Timezone Indian_Cocos=Ruleset.Timezone(-23400,"CCT"); Ruleset.Timezone Pacific_Chatham=TZrules.Chatham(-45900,"CHA%sT"); Ruleset.Timezone NZ_CHAT=Pacific_Chatham; Ruleset.Timezone Pacific_Johnston=Ruleset.Timezone(36000,"HST"); Ruleset.Timezone Etc_GMT=Ruleset.Timezone(0,"GMT"); Ruleset.Timezone GMT=Etc_GMT; Ruleset.Timezone Etc_Greenwich=Etc_GMT; Ruleset.Timezone Etc_GMT_0=Etc_GMT; Ruleset.Timezone Etc_GMTp0=Etc_GMT; Ruleset.Timezone Etc_GMT0=Etc_GMT; Ruleset.Timezone Etc_UTC=Ruleset.Timezone(0,"UTC"); Ruleset.Timezone UTC=Etc_UTC; Ruleset.Timezone Etc_Universal=Etc_UTC; Ruleset.Timezone Etc_Zulu=Etc_UTC; Ruleset.Timezone Etc_UCT=Ruleset.Timezone(0,"UCT"); Ruleset.Timezone UCT=Etc_UCT; Ruleset.Timezone Etc_GMT_14=Ruleset.Timezone(-50400,"GMT-14"); Ruleset.Timezone Etc_GMT_13=Ruleset.Timezone(-46800,"GMT-13"); Ruleset.Timezone Etc_GMT_12=Ruleset.Timezone(-43200,"GMT-12"); Ruleset.Timezone Etc_GMT_11=Ruleset.Timezone(-39600,"GMT-11"); Ruleset.Timezone Etc_GMT_10=Ruleset.Timezone(-36000,"GMT-10"); Ruleset.Timezone Etc_GMT_9=Ruleset.Timezone(-32400,"GMT-9"); Ruleset.Timezone Etc_GMT_8=Ruleset.Timezone(-28800,"GMT-8"); Ruleset.Timezone Etc_GMT_7=Ruleset.Timezone(-25200,"GMT-7"); Ruleset.Timezone Etc_GMT_6=Ruleset.Timezone(-21600,"GMT-6"); Ruleset.Timezone Etc_GMT_5=Ruleset.Timezone(-18000,"GMT-5"); Ruleset.Timezone Etc_GMT_4=Ruleset.Timezone(-14400,"GMT-4"); Ruleset.Timezone Etc_GMT_3=Ruleset.Timezone(-10800,"GMT-3"); Ruleset.Timezone Etc_GMT_2=Ruleset.Timezone(-7200,"GMT-2"); Ruleset.Timezone Etc_GMT_1=Ruleset.Timezone(-3600,"GMT-1"); Ruleset.Timezone Etc_GMTp1=Ruleset.Timezone(3600,"GMT+1"); Ruleset.Timezone Etc_GMTp2=Ruleset.Timezone(7200,"GMT+2"); Ruleset.Timezone Etc_GMTp3=Ruleset.Timezone(10800,"GMT+3"); Ruleset.Timezone Etc_GMTp4=Ruleset.Timezone(14400,"GMT+4"); Ruleset.Timezone Etc_GMTp5=Ruleset.Timezone(18000,"GMT+5"); Ruleset.Timezone Etc_GMTp6=Ruleset.Timezone(21600,"GMT+6"); Ruleset.Timezone Etc_GMTp7=Ruleset.Timezone(25200,"GMT+7"); Ruleset.Timezone Etc_GMTp8=Ruleset.Timezone(28800,"GMT+8"); Ruleset.Timezone Etc_GMTp9=Ruleset.Timezone(32400,"GMT+9"); Ruleset.Timezone Etc_GMTp10=Ruleset.Timezone(36000,"GMT+10"); Ruleset.Timezone Etc_GMTp11=Ruleset.Timezone(39600,"GMT+11"); Ruleset.Timezone Etc_GMTp12=Ruleset.Timezone(43200,"GMT+12"); Ruleset.Timezone WET=TZrules.EU(0,"WE%sT"); Ruleset.Timezone CET=TZrules.C_Eur(-3600,"CE%sT"); Ruleset.Timezone MET=TZrules.C_Eur(-3600,"ME%sT"); Ruleset.Timezone EET=TZrules.EU(-7200,"EE%sT"); Ruleset.Timezone Atlantic_Jan_Mayen=Ruleset.Timezone(3600,"EGT"); Ruleset.Timezone SystemV_AST4ADT=TZrules.SystemV(14400,"A%sT"); Ruleset.Timezone SystemV_EST5EDT=TZrules.SystemV(18000,"E%sT"); Ruleset.Timezone SystemV_CST6CDT=TZrules.SystemV(21600,"C%sT"); Ruleset.Timezone SystemV_MST7MDT=TZrules.SystemV(25200,"M%sT"); Ruleset.Timezone SystemV_PST8PDT=TZrules.SystemV(28800,"P%sT"); Ruleset.Timezone SystemV_YST9YDT=TZrules.SystemV(32400,"Y%sT"); Ruleset.Timezone SystemV_AST4=Ruleset.Timezone(14400,"AST"); Ruleset.Timezone SystemV_EST5=Ruleset.Timezone(18000,"EST"); Ruleset.Timezone SystemV_CST6=Ruleset.Timezone(21600,"CST"); Ruleset.Timezone SystemV_MST7=Ruleset.Timezone(25200,"MST"); Ruleset.Timezone SystemV_PST8=Ruleset.Timezone(28800,"PST"); Ruleset.Timezone SystemV_YST9=Ruleset.Timezone(32400,"YST"); Ruleset.Timezone SystemV_HST10=Ruleset.Timezone(36000,"HST"); // ---------------------------------------------------------------------- // Timezones with an attitude // ---------------------------------------------------------------------- class Africa_Algiers { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=357523200) // from 1981 May return tz6 || (tz6=Ruleset.Timezone(-3600,"CET")); if (ux>=309747600) // from 1979 Oct 26 return tz3 || (tz3=TZrules.Algeria(0,"WE%sT")); if (ux>=246240000) // from 1977 Oct 21 return tz4 || (tz4=TZrules.Algeria(-3600,"CE%sT")); if (ux>=-212029200) // from 1963 Apr 14 return tz3 || (tz3=TZrules.Algeria(0,"WE%sT")); if (ux>=-439430400) // from 1956 Jan 29 return tz6 || (tz6=Ruleset.Timezone(-3600,"CET")); if (ux>=-733273200) // from 1946 Oct 7 return tz5 || (tz5=Ruleset.Timezone(0,"WET")); if (ux>=-942012000) // from 1940 Feb 25 2:00 return tz4 || (tz4=TZrules.Algeria(-3600,"CE%sT")); if (ux>=-1855958961) // from 1911 Mar 11 return tz3 || (tz3=TZrules.Algeria(0,"WE%sT")); if (ux>=-2486679072) // from 1891 Mar 15 0:01 Paris Mean Time return tz2 || (tz2=Ruleset.Timezone(-561,"PMT")); return tz1 || (tz1=Ruleset.Timezone(-732,"LMT")); } } class Africa_Luanda { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1849395124) // from 1911 May 26 return tz3 || (tz3=Ruleset.Timezone(-3600,"WAT")); if (ux>=-2461452776) // from 1892 Luanda Mean Time? return tz2 || (tz2=Ruleset.Timezone(-3124,"LMT")); return tz1 || (tz1=Ruleset.Timezone(-3176,"LMT")); } } class Africa_Porto_Novo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1131235200) // from 1934 Feb 26 return tz3 || (tz3=Ruleset.Timezone(-3600,"WAT")); if (ux>=-1830384628) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(-628,"LMT")); } } class Africa_Gaborone { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-813805200) // from 1944 Mar 19 2:00 return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); if (ux>=-829526400) // from 1943 Sep 19 2:00 return tz3 || (tz3=Ruleset.Timezone(-10800,"CAST")); if (ux>=-2682294220) // from 1885 return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-6220,"LMT")); } } class Africa_Ouagadougou { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830383636) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(364,"LMT")); } } class Africa_Bujumbura { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2524528648) // from 1890 return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-7048,"LMT")); } } class Africa_Douala { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830386328) // from 1912 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-2328,"LMT")); } } class Atlantic_Cape_Verde { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=186120000) // from 1975 Nov 25 2:00 return tz4 || (tz4=Ruleset.Timezone(3600,"CVT")); if (ux>=-764118000) // from 1945 Oct 15 return tz2 || (tz2=Ruleset.Timezone(7200,"CVT")); if (ux>=-862610400) // from 1942 Sep return tz3 || (tz3=Ruleset.Timezone(3600,"CVST")); if (ux>=-1988144756) // from 1907 return tz2 || (tz2=Ruleset.Timezone(7200,"CVT")); // Praia return tz1 || (tz1=Ruleset.Timezone(5644,"LMT")); } } class Africa_Bangui { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830388460) // from 1912 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-4460,"LMT")); } } class Africa_Ndjamena { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=321314400) // from 1980 Mar 8 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); if (ux>=308703600) // from 1979 Oct 14 return tz3 || (tz3=Ruleset.Timezone(-7200,"WAST")); if (ux>=-1830387612) // from 1912 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-3612,"LMT")); } } class Indian_Comoro { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846291984) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); // Moroni, Gran Comoro return tz1 || (tz1=Ruleset.Timezone(-10384,"LMT")); } } class Africa_Kinshasa { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2276643672) // from 1897 Nov 9 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-3672,"LMT")); } } class Africa_Lubumbashi { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2276646592) // from 1897 Nov 9 return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-6592,"LMT")); } } class Africa_Brazzaville { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830387668) // from 1912 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-3668,"LMT")); } } class Africa_Abidjan { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830383032) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(968,"LMT")); } } class Africa_Djibouti { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846291956) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); return tz1 || (tz1=Ruleset.Timezone(-10356,"LMT")); } } class Africa_Cairo { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2185409100) // from 1900 Oct return tz2 || (tz2=TZrules.Egypt(-7200,"EE%sT")); return tz1 || (tz1=Ruleset.Timezone(-7500,"LMT")); } } constant Egypt=Africa_Cairo; class Africa_Malabo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-190857600) // from 1963 Dec 15 return tz3 || (tz3=Ruleset.Timezone(-3600,"WAT")); if (ux>=-1830386108) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(-2108,"LMT")); } } class Africa_Asmera { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1062210920) // from 1936 May 5 return tz4 || (tz4=Ruleset.Timezone(-10800,"EAT")); if (ux>=-2524530932) // from 1890 Adis Dera MT return tz3 || (tz3=Ruleset.Timezone(-9320,"ADMT")); if (ux>=-3155682932) // from 1870 Asmera Mean Time return tz2 || (tz2=Ruleset.Timezone(-9332,"AMT")); return tz1 || (tz1=Ruleset.Timezone(-9332,"LMT")); } } class Africa_Addis_Ababa { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1062210920) // from 1936 May 5 return tz3 || (tz3=Ruleset.Timezone(-10800,"EAT")); if (ux>=-3155682888) // from 1870 Adis Dera MT return tz2 || (tz2=Ruleset.Timezone(-9320,"ADMT")); return tz1 || (tz1=Ruleset.Timezone(-9288,"LMT")); } } class Africa_Libreville { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830386268) // from 1912 return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-2268,"LMT")); } } class Africa_Banjul { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-189385200) // from 1964 return tz4 || (tz4=Ruleset.Timezone(0,"GMT")); if (ux>=-1104533604) // from 1935 return tz3 || (tz3=Ruleset.Timezone(3600,"WAT")); if (ux>=-1830380004) // from 1912 Banjul Mean Time return tz2 || (tz2=Ruleset.Timezone(3996,"BMT")); return tz1 || (tz1=Ruleset.Timezone(3996,"LMT")); } } class Africa_Accra { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1640995148) // from 1918 return tz2 || (tz2=TZrules.Ghana(0,"%s")); return tz1 || (tz1=Ruleset.Timezone(52,"LMT")); } } class Africa_Conakry { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-315615600) // from 1960 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); if (ux>=-1131235200) // from 1934 Feb 26 return tz3 || (tz3=Ruleset.Timezone(3600,"WAT")); if (ux>=-1830380708) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(3292,"LMT")); } } class Africa_Bissau { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=157770000) // from 1975 return tz3 || (tz3=Ruleset.Timezone(0,"GMT")); if (ux>=-1849388260) // from 1911 May 26 return tz2 || (tz2=Ruleset.Timezone(3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(3740,"LMT")); } } class Africa_Nairobi { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-315629100) // from 1960 return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); if (ux>=-946780200) // from 1940 return tz4 || (tz4=Ruleset.Timezone(-9900,"BEAUT")); if (ux>=-1262314800) // from 1930 return tz3 || (tz3=Ruleset.Timezone(-9000,"BEAT")); if (ux>=-1309746436) // from 1928 Jul return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); return tz1 || (tz1=Ruleset.Timezone(-8836,"LMT")); } } class Africa_Maseru { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-813805200) // from 1944 Mar 19 2:00 return tz2 || (tz2=Ruleset.Timezone(-7200,"SAST")); if (ux>=-829526400) // from 1943 Sep 19 2:00 return tz3 || (tz3=Ruleset.Timezone(-10800,"SAST")); if (ux>=-2109289800) // from 1903 Mar return tz2 || (tz2=Ruleset.Timezone(-7200,"SAST")); return tz1 || (tz1=Ruleset.Timezone(-6600,"LMT")); } } class Africa_Monrovia { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=73529070) // from 1972 May return tz4 || (tz4=Ruleset.Timezone(0,"GMT")); if (ux>=-1604359012) // from 1919 Mar Liberia Time return tz3 || (tz3=Ruleset.Timezone(2670,"LRT")); if (ux>=-2776979812) // from 1882 Monrovia Mean Time return tz2 || (tz2=Ruleset.Timezone(2588,"MMT")); return tz1 || (tz1=Ruleset.Timezone(2588,"LMT")); } } class Africa_Tripoli { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=875916000) // from 1997 Oct 4 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=860108400) // from 1997 Apr 4 return tz5 || (tz5=Ruleset.Timezone(-7200,"CEST")); if (ux>=844034400) // from 1996 Sep 30 return tz4 || (tz4=Ruleset.Timezone(-3600,"CET")); if (ux>=641782800) // from 1990 May 4 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=378684000) // from 1982 return tz2 || (tz2=TZrules.Libya(-3600,"CE%sT")); if (ux>=-347151600) // from 1959 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-1577926364) // from 1920 return tz2 || (tz2=TZrules.Libya(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-3164,"LMT")); } } constant Libya=Africa_Tripoli; class Indian_Antananarivo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-492062400) // from 1954 May 29 23:00s return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); if (ux>=-499924800) // from 1954 Feb 27 23:00s return tz3 || (tz3=Ruleset.Timezone(-14400,"EAST")); if (ux>=-1846293004) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); return tz1 || (tz1=Ruleset.Timezone(-11404,"LMT")); } } class Africa_Blantyre { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2109291600) // from 1903 Mar return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-8400,"LMT")); } } class Africa_Bamako { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-300841200) // from 1960 Jun 20 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); if (ux>=-1131235200) // from 1934 Feb 26 return tz3 || (tz3=Ruleset.Timezone(3600,"WAT")); if (ux>=-1830382080) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(1920,"LMT")); } } class Africa_Timbuktu { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830383276) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(724,"LMT")); } } class Africa_Nouakchott { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-286930800) // from 1960 Nov 28 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); if (ux>=-1131235200) // from 1934 Feb 26 return tz3 || (tz3=Ruleset.Timezone(3600,"WAT")); if (ux>=-1830380172) // from 1912 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(3828,"LMT")); } } class Indian_Mauritius { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1988164200) // from 1907 Mauritius Time return tz2 || (tz2=Ruleset.Timezone(-14400,"MUT")); // Port Louis return tz1 || (tz1=Ruleset.Timezone(-13800,"LMT")); } } class Indian_Mayotte { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846292456) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); // Mamoutzou return tz1 || (tz1=Ruleset.Timezone(-10856,"LMT")); } } class Africa_Casablanca { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=504918000) // from 1986 return tz4 || (tz4=Ruleset.Timezone(0,"WET")); if (ux>=448243200) // from 1984 Mar 16 return tz3 || (tz3=Ruleset.Timezone(-3600,"CET")); if (ux>=-1773012580) // from 1913 Oct 26 return tz2 || (tz2=TZrules.Morocco(0,"WE%sT")); return tz1 || (tz1=Ruleset.Timezone(1820,"LMT")); } } class Africa_El_Aaiun { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=198291600) // from 1976 Apr 14 return tz3 || (tz3=Ruleset.Timezone(0,"WET")); if (ux>=-1136070432) // from 1934 Jan return tz2 || (tz2=Ruleset.Timezone(3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(3168,"LMT")); } } class Africa_Maputo { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2109291020) // from 1903 Mar return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-7820,"LMT")); } } class Africa_Windhoek { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=765324000) // from 1994 Apr 3 return tz6 || (tz6=TZrules.Namibia(-3600,"WA%sT")); if (ux>=637970400) // from 1990 Mar 21 return tz5 || (tz5=Ruleset.Timezone(-7200,"CAT")); if (ux>=-845254800) // from 1943 Mar 21 2:00 independence return tz3 || (tz3=Ruleset.Timezone(-7200,"SAST")); if (ux>=-860976000) // from 1942 Sep 20 2:00 return tz4 || (tz4=Ruleset.Timezone(-10800,"SAST")); if (ux>=-2109288600) // from 1903 Mar return tz3 || (tz3=Ruleset.Timezone(-7200,"SAST")); if (ux>=-2458170504) // from 1892 Feb 8 SW Africa Time return tz2 || (tz2=Ruleset.Timezone(-5400,"SWAT")); return tz1 || (tz1=Ruleset.Timezone(-4104,"LMT")); } } class Africa_Niamey { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-315619200) // from 1960 return tz4 || (tz4=Ruleset.Timezone(-3600,"WAT")); if (ux>=-1131231600) // from 1934 Feb 26 return tz3 || (tz3=Ruleset.Timezone(0,"GMT")); if (ux>=-1830384508) // from 1912 return tz2 || (tz2=Ruleset.Timezone(3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-508,"LMT")); } } class Africa_Lagos { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1588464816) // from 1919 Sep return tz2 || (tz2=Ruleset.Timezone(-3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(-816,"LMT")); } } class Indian_Reunion { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1848886912) // from 1911 Jun Reunion Time return tz2 || (tz2=Ruleset.Timezone(-14400,"RET")); // Saint-Denis return tz1 || (tz1=Ruleset.Timezone(-13312,"LMT")); } } class Africa_Kigali { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1091498416) // from 1935 Jun return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-7216,"LMT")); } } class Atlantic_St_Helena { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-599614632) // from 1951 return tz3 || (tz3=Ruleset.Timezone(0,"GMT")); if (ux>=-2524520232) // from 1890 Jamestown Mean Time return tz2 || (tz2=Ruleset.Timezone(1368,"JMT")); // Jamestown return tz1 || (tz1=Ruleset.Timezone(1368,"LMT")); } } class Africa_Sao_Tome { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830381808) // from 1912 return tz3 || (tz3=Ruleset.Timezone(0,"GMT")); if (ux>=-2713912016) // from 1884 Lisbon Mean Time return tz2 || (tz2=Ruleset.Timezone(2192,"LMT")); return tz1 || (tz1=Ruleset.Timezone(-1616,"LMT")); } } class Africa_Dakar { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-902098800) // from 1941 Jun return tz3 || (tz3=Ruleset.Timezone(0,"GMT")); if (ux>=-1830379816) // from 1912 return tz2 || (tz2=Ruleset.Timezone(3600,"WAT")); return tz1 || (tz1=Ruleset.Timezone(4184,"LMT")); } } class Indian_Mahe { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2006653308) // from 1906 Jun Seychelles Time return tz2 || (tz2=Ruleset.Timezone(-14400,"SCT")); // Victoria return tz1 || (tz1=Ruleset.Timezone(-13308,"LMT")); } } class Africa_Freetown { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-410230800) // from 1957 return tz4 || (tz4=TZrules.SL(0,"%s")); if (ux>=-1785712020) // from 1913 Jun return tz3 || (tz3=TZrules.SL(3600,"%s")); if (ux>=-2776979220) // from 1882 Freetown Mean Time return tz2 || (tz2=Ruleset.Timezone(3180,"FMT")); return tz1 || (tz1=Ruleset.Timezone(3180,"LMT")); } } class Africa_Mogadishu { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-410236200) // from 1957 return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); if (ux>=-1230778800) // from 1931 return tz3 || (tz3=Ruleset.Timezone(-9000,"BEAT")); if (ux>=-2403572488) // from 1893 Nov return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); return tz1 || (tz1=Ruleset.Timezone(-10888,"LMT")); } } class Africa_Johannesburg { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-2109288600) // from 1903 Mar return tz3 || (tz3=TZrules.SA(-7200,"SAST")); if (ux>=-2458173120) // from 1892 Feb 8 return tz2 || (tz2=Ruleset.Timezone(-5400,"SAST")); return tz1 || (tz1=Ruleset.Timezone(-6720,"LMT")); } } class Africa_Khartoum { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=947944800) // from 2000 Jan 15 12:00 return tz3 || (tz3=Ruleset.Timezone(-10800,"EAT")); if (ux>=-1230775808) // from 1931 return tz2 || (tz2=TZrules.Sudan(-7200,"CA%sT")); return tz1 || (tz1=Ruleset.Timezone(-7808,"LMT")); } } class Africa_Mbabane { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2109290664) // from 1903 Mar return tz2 || (tz2=Ruleset.Timezone(-7200,"SAST")); return tz1 || (tz1=Ruleset.Timezone(-7464,"LMT")); } } class Africa_Dar_es_Salaam { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-284006700) // from 1961 return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); if (ux>=-694321200) // from 1948 return tz3 || (tz3=Ruleset.Timezone(-9900,"BEAUT")); if (ux>=-1230777428) // from 1931 return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); return tz1 || (tz1=Ruleset.Timezone(-9428,"LMT")); } } class Africa_Lome { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2429827492) // from 1893 return tz2 || (tz2=Ruleset.Timezone(0,"GMT")); return tz1 || (tz1=Ruleset.Timezone(-292,"LMT")); } } class Africa_Tunis { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1855958961) // from 1911 Mar 11 return tz3 || (tz3=TZrules.Tunisia(-3600,"CE%sT")); if (ux>=-2797202444) // from 1881 May 12 Paris Mean Time return tz2 || (tz2=Ruleset.Timezone(-561,"PMT")); return tz1 || (tz1=Ruleset.Timezone(-2444,"LMT")); } } class Africa_Kampala { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-410237100) // from 1957 return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); if (ux>=-694319400) // from 1948 return tz4 || (tz4=Ruleset.Timezone(-9900,"BEAUT")); if (ux>=-1262314800) // from 1930 return tz3 || (tz3=Ruleset.Timezone(-9000,"BEAT")); if (ux>=-1309745380) // from 1928 Jul return tz2 || (tz2=Ruleset.Timezone(-10800,"EAT")); return tz1 || (tz1=Ruleset.Timezone(-7780,"LMT")); } } class Africa_Lusaka { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2109289988) // from 1903 Mar return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-6788,"LMT")); } } class Africa_Harare { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2109290652) // from 1903 Mar return tz2 || (tz2=Ruleset.Timezone(-7200,"CAT")); return tz1 || (tz1=Ruleset.Timezone(-7452,"LMT")); } } class Antarctica_Casey { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-31536000) // from 1969 Western (Aus) Standard Time return tz2 || (tz2=Ruleset.Timezone(-28800,"WST")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Antarctica_Davis { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-28857600) // from 1969 Feb return tz2 || (tz2=Ruleset.Timezone(-25200,"DAVT")); if (ux>=-163062000) // from 1964 Nov return tz1 || (tz1=Ruleset.Timezone(0,"___")); if (ux>=-409190400) // from 1957 Jan 13 Davis Time return tz2 || (tz2=Ruleset.Timezone(-25200,"DAVT")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Antarctica_Mawson { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-501206400) // from 1954 Feb 13 Mawson Time return tz2 || (tz2=Ruleset.Timezone(-21600,"MAWT")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Indian_Kerguelen { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-631152000) // from 1950 ISO code TF Time return tz2 || (tz2=Ruleset.Timezone(-18000,"TFT")); // Port-aux-Francais return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Antarctica_DumontDUrville { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-415497600) // from 1956 Nov Dumont-d'Urville Time return tz3 || (tz3=Ruleset.Timezone(-36000,"DDUT")); if (ux>=-566992800) // from 1952 Jan 14 return tz1 || (tz1=Ruleset.Timezone(0,"___")); if (ux>=-725846400) // from 1947 Port-Martin Time return tz2 || (tz2=Ruleset.Timezone(-36000,"PMT")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Antarctica_Syowa { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-407808000) // from 1957 Jan 29 Syowa Time return tz2 || (tz2=Ruleset.Timezone(-10800,"SYOT")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Antarctica_Palmer { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=389048400) // from 1982 May return tz4 || (tz4=TZrules.ChileAQ(14400,"CL%sT")); if (ux>=-7617600) // from 1969 Oct 5 return tz3 || (tz3=TZrules.ArgAQ(10800,"AR%sT")); if (ux>=-157766400) // from 1965 return tz2 || (tz2=TZrules.ArgAQ(14400,"AR%sT")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } class Antarctica_McMurdo { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-441849600) // from 1956 return tz2 || (tz2=TZrules.NZAQ(-43200,"NZ%sT")); return tz1 || (tz1=Ruleset.Timezone(0,"___")); } } constant Antarctica_South_Pole=Antarctica_McMurdo; class Asia_Kabul { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-788932800) // from 1945 return tz3 || (tz3=Ruleset.Timezone(-16200,"AFT")); if (ux>=-2524538208) // from 1890 return tz2 || (tz2=Ruleset.Timezone(-14400,"AFT")); return tz1 || (tz1=Ruleset.Timezone(-16608,"LMT")); } } class Asia_Yerevan { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=852062400) // from 1997 return tz7 || (tz7=TZrules.RussiaAsia(-14400,"AM%sT")); if (ux>=811897200) // from 1995 Sep 24 2:00s return tz6 || (tz6=Ruleset.Timezone(-14400,"AMT")); if (ux>=685569600) // from 1991 Sep 23 return tz5 || (tz5=TZrules.RussiaAsia(-10800,"AM%sT")); if (ux>=670370400) // from 1991 Mar 31 2:00s independence return tz4 || (tz4=Ruleset.Timezone(-14400,"YERST")); if (ux>=-405140400) // from 1957 Mar return tz3 || (tz3=TZrules.RussiaAsia(-14400,"YER%sT")); if (ux>=-1441162680) // from 1924 May 2 Yerevan Time return tz2 || (tz2=Ruleset.Timezone(-10800,"YERT")); return tz1 || (tz1=Ruleset.Timezone(-10680,"LMT")); } } class Asia_Baku { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=852091200) // from 1997 return tz8 || (tz8=TZrules.Azer(-14400,"AZ%sT")); if (ux>=820440000) // from 1996 return tz7 || (tz7=TZrules.EUAsia(-14400,"AZ%sT")); if (ux>=715320000) // from 1992 Sep lastSun 2:00s Azerbaijan time return tz6 || (tz6=Ruleset.Timezone(-14400,"AZT")); if (ux>=683496000) // from 1991 Aug 30 return tz5 || (tz5=TZrules.RussiaAsia(-10800,"AZ%sT")); if (ux>=670370400) // from 1991 Mar 31 2:00s independence return tz4 || (tz4=Ruleset.Timezone(-14400,"BAKST")); if (ux>=-405140400) // from 1957 Mar return tz3 || (tz3=TZrules.RussiaAsia(-14400,"BAK%sT")); if (ux>=-1441163964) // from 1924 May 2 Baku Time return tz2 || (tz2=Ruleset.Timezone(-10800,"BAKT")); return tz1 || (tz1=Ruleset.Timezone(-11964,"LMT")); } } class Asia_Bahrain { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=76190400) // from 1972 Jun return tz3 || (tz3=Ruleset.Timezone(-10800,"AST")); if (ux>=-1577935340) // from 1920 return tz2 || (tz2=Ruleset.Timezone(-14400,"GST")); // Al-Manamah return tz1 || (tz1=Ruleset.Timezone(-12140,"LMT")); } } class Asia_Dacca { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=38772000) // from 1971 Mar 26 Bangladesh Time return tz6 || (tz6=Ruleset.Timezone(-21600,"BDT")); if (ux>=-576138600) // from 1951 Sep 30 Dacca Time return tz5 || (tz5=Ruleset.Timezone(-21600,"DACT")); if (ux>=-862637400) // from 1942 Sep return tz3 || (tz3=Ruleset.Timezone(-23400,"BURT")); if (ux>=-872058600) // from 1942 May 15 return tz4 || (tz4=Ruleset.Timezone(-19800,"IST")); if (ux>=-891582800) // from 1941 Oct Burma Time return tz3 || (tz3=Ruleset.Timezone(-23400,"BURT")); if (ux>=-2524543300) // from 1890 Howrah Mean Time? return tz2 || (tz2=Ruleset.Timezone(-21200,"HMT")); return tz1 || (tz1=Ruleset.Timezone(-21700,"LMT")); } } class Asia_Thimbu { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=560025000) // from 1987 Oct Bhutan Time return tz3 || (tz3=Ruleset.Timezone(-21600,"BTT")); if (ux>=-706341516) // from 1947 Aug 15 return tz2 || (tz2=Ruleset.Timezone(-19800,"IST")); return tz1 || (tz1=Ruleset.Timezone(-21516,"LMT")); } } class Asia_Brunei { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1167636600) // from 1933 return tz3 || (tz3=Ruleset.Timezone(-28800,"BNT")); if (ux>=-1383464380) // from 1926 Mar return tz2 || (tz2=Ruleset.Timezone(-27000,"BNT")); // Bandar Seri Begawan return tz1 || (tz1=Ruleset.Timezone(-27580,"LMT")); } } class Asia_Rangoon { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=-778410000) // from 1945 May 3 Myanmar Time return tz5 || (tz5=Ruleset.Timezone(-23400,"MMT")); if (ux>=-873268200) // from 1942 May return tz4 || (tz4=Ruleset.Timezone(-32400,"JST")); if (ux>=-1577946276) // from 1920 Burma Time return tz3 || (tz3=Ruleset.Timezone(-23400,"BURT")); if (ux>=-2840163880) // from 1880 Rangoon Mean Time? return tz2 || (tz2=Ruleset.Timezone(-23076,"RMT")); // or Yangon return tz1 || (tz1=Ruleset.Timezone(-23080,"LMT")); } } class Asia_Phnom_Penh { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1220428800) // from 1931 May return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-1819954800) // from 1912 May return tz4 || (tz4=Ruleset.Timezone(-28800,"ICT")); if (ux>=-1855983920) // from 1911 Mar 11 0:01 return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-2005973980) // from 1906 Jun 9 Saigon MT? return tz2 || (tz2=Ruleset.Timezone(-25580,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-25180,"LMT")); } } class Asia_Harbin { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=325956600) // from 1980 May return tz5 || (tz5=TZrules.PRC(-28800,"C%sT")); if (ux>=-115894800) // from 1966 May return tz2 || (tz2=Ruleset.Timezone(-30600,"HART")); if (ux>=-946800000) // from 1940 return tz4 || (tz4=Ruleset.Timezone(-32400,"HART")); if (ux>=-1194078600) // from 1932 Mar return tz3 || (tz3=Ruleset.Timezone(-28800,"CST")); if (ux>=-1325492804) // from 1928 Harbin Time return tz2 || (tz2=Ruleset.Timezone(-30600,"HART")); return tz1 || (tz1=Ruleset.Timezone(-30404,"LMT")); } } class Asia_Shanghai { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-662659200) // from 1949 return tz3 || (tz3=TZrules.PRC(-28800,"C%sT")); if (ux>=-1325491552) // from 1928 return tz2 || (tz2=TZrules.Shang(-28800,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(-29152,"LMT")); } } constant PRC=Asia_Shanghai; class Asia_Chungking { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=325962000) // from 1980 May return tz3 || (tz3=TZrules.PRC(-28800,"C%sT")); if (ux>=-1325487980) // from 1928 Chungking Time return tz2 || (tz2=Ruleset.Timezone(-25200,"CHUT")); return tz1 || (tz1=Ruleset.Timezone(-25580,"LMT")); } } class Asia_Urumqi { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=325965600) // from 1980 May return tz3 || (tz3=TZrules.PRC(-28800,"C%sT")); if (ux>=-1325483420) // from 1928 Urumqi Time return tz2 || (tz2=Ruleset.Timezone(-21600,"URUT")); return tz1 || (tz1=Ruleset.Timezone(-21020,"LMT")); } } class Asia_Kashgar { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=325969200) // from 1980 May return tz4 || (tz4=TZrules.PRC(-28800,"C%sT")); if (ux>=-946791000) // from 1940 return tz3 || (tz3=Ruleset.Timezone(-18000,"KAST")); if (ux>=-1325480636) // from 1928 Kashgar Time return tz2 || (tz2=Ruleset.Timezone(-19800,"KAST")); return tz1 || (tz1=Ruleset.Timezone(-18236,"LMT")); } } class Asia_Hong_Kong { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2056692996) // from 1904 Oct 30 return tz2 || (tz2=TZrules.HK(-28800,"HK%sT")); return tz1 || (tz1=Ruleset.Timezone(-27396,"LMT")); } } constant Hongkong=Asia_Hong_Kong; class Asia_Taipei { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2335248360) // from 1896 return tz2 || (tz2=TZrules.Taiwan(-28800,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(-29160,"LMT")); } } constant ROC=Asia_Taipei; class Asia_Macao { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=945676800) // from 1999 Dec 20 return tz3 || (tz3=TZrules.PRC(-28800,"C%sT")); if (ux>=-1830411260) // from 1912 return to China return tz2 || (tz2=TZrules.Macao(-28800,"MO%sT")); return tz1 || (tz1=Ruleset.Timezone(-27260,"LMT")); } } class Asia_Nicosia { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=904618800) // from 1998 Sep return tz3 || (tz3=TZrules.EUAsia(-7200,"EE%sT")); if (ux>=-1518920008) // from 1921 Nov 14 return tz2 || (tz2=TZrules.Cyprus(-7200,"EE%sT")); return tz1 || (tz1=Ruleset.Timezone(-8008,"LMT")); } } class Asia_Tbilisi { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=857156400) // from 1997 Mar lastSun return tz8 || (tz8=TZrules.E_EurAsia(-14400,"GE%sT")); if (ux>=844146000) // from 1996 Oct lastSun return tz9 || (tz9=Ruleset.Timezone(-18000,"GEST")); if (ux>=778392000) // from 1994 Sep lastSun return tz8 || (tz8=TZrules.E_EurAsia(-14400,"GE%sT")); if (ux>=694234800) // from 1992 return tz7 || (tz7=TZrules.E_EurAsia(-10800,"GE%sT")); if (ux>=671140800) // from 1991 Apr 9 Georgia Time return tz6 || (tz6=TZrules.RussiaAsia(-10800,"GE%sT")); if (ux>=670370400) // from 1991 Mar 31 2:00s independence return tz5 || (tz5=Ruleset.Timezone(-14400,"TBIST")); if (ux>=-405140400) // from 1957 Mar return tz4 || (tz4=TZrules.RussiaAsia(-14400,"TBI%sT")); if (ux>=-1441162756) // from 1924 May 2 Tbilisi Time return tz3 || (tz3=Ruleset.Timezone(-10800,"TBIT")); if (ux>=-2840151556) // from 1880 Tbilisi Mean Time return tz2 || (tz2=Ruleset.Timezone(-10756,"TBMT")); return tz1 || (tz1=Ruleset.Timezone(-10756,"LMT")); } } class Asia_Dili { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=199897200) // from 1976 May 3 East Timor Time return tz2 || (tz2=Ruleset.Timezone(-28800,"TPT")); if (ux>=-770634000) // from 1945 Aug return tz4 || (tz4=Ruleset.Timezone(-32400,"TPT")); if (ux>=-879152400) // from 1942 Feb 21 23:00 return tz3 || (tz3=Ruleset.Timezone(-32400,"JST")); if (ux>=-1830414140) // from 1912 return tz2 || (tz2=Ruleset.Timezone(-28800,"TPT")); return tz1 || (tz1=Ruleset.Timezone(-30140,"LMT")); } } class Asia_Calcutta { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=-764145000) // from 1945 Oct 15 return tz4 || (tz4=Ruleset.Timezone(-19800,"IST")); if (ux>=-862637400) // from 1942 Sep return tz5 || (tz5=Ruleset.Timezone(-23400,"IST")); if (ux>=-872058600) // from 1942 May 15 return tz4 || (tz4=Ruleset.Timezone(-19800,"IST")); if (ux>=-891582800) // from 1941 Oct Burma Time return tz3 || (tz3=Ruleset.Timezone(-23400,"BURT")); if (ux>=-2840162008) // from 1880 Howrah Mean Time? return tz2 || (tz2=Ruleset.Timezone(-21200,"HMT")); return tz1 || (tz1=Ruleset.Timezone(-21208,"LMT")); } } class Asia_Jakarta { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=-189415800) // from 1964 return tz7 || (tz7=Ruleset.Timezone(-25200,"JAVT")); if (ux>=-620812800) // from 1950 May return tz4 || (tz4=Ruleset.Timezone(-27000,"JAVT")); if (ux>=-683883000) // from 1948 May return tz6 || (tz6=Ruleset.Timezone(-28800,"JAVT")); if (ux>=-770634000) // from 1945 Aug return tz4 || (tz4=Ruleset.Timezone(-27000,"JAVT")); if (ux>=-876641400) // from 1942 Mar 23 return tz5 || (tz5=Ruleset.Timezone(-32400,"JST")); if (ux>=-1172906400) // from 1932 Nov return tz4 || (tz4=Ruleset.Timezone(-27000,"JAVT")); if (ux>=-1451719200) // from 1923 Dec 31 23:47:12 Java Time return tz3 || (tz3=Ruleset.Timezone(-26400,"JAVT")); if (ux>=-3231299232) // from 1867 Aug 10 Jakarta return tz2 || (tz2=Ruleset.Timezone(-25632,"JMT")); return tz1 || (tz1=Ruleset.Timezone(-25632,"LMT")); } } class Asia_Ujung_Pandang { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-770634000) // from 1945 Aug return tz3 || (tz3=Ruleset.Timezone(-28800,"BORT")); if (ux>=-880272000) // from 1942 Feb 9 return tz4 || (tz4=Ruleset.Timezone(-32400,"JST")); if (ux>=-1172908656) // from 1932 Nov Borneo Time return tz3 || (tz3=Ruleset.Timezone(-28800,"BORT")); if (ux>=-1577951856) // from 1920 Macassar MT return tz2 || (tz2=Ruleset.Timezone(-28656,"MMT")); return tz1 || (tz1=Ruleset.Timezone(-28656,"LMT")); } } class Asia_Jayapura { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-189423000) // from 1964 return tz2 || (tz2=Ruleset.Timezone(-32400,"JAYT")); if (ux>=-820573200) // from 1944 return tz3 || (tz3=Ruleset.Timezone(-34200,"CST")); if (ux>=-1172913768) // from 1932 Nov Jayapura Time return tz2 || (tz2=Ruleset.Timezone(-32400,"JAYT")); return tz1 || (tz1=Ruleset.Timezone(-33768,"LMT")); } } class Asia_Tehran { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=284011200) // from 1979 return tz5 || (tz5=TZrules.Iran(-12600,"IR%sT")); if (ux>=247177800) // from 1977 Nov return tz4 || (tz4=TZrules.Iran(-14400,"IR%sT")); if (ux>=-757394744) // from 1946 return tz3 || (tz3=Ruleset.Timezone(-12600,"IRT")); if (ux>=-1704165944) // from 1916 Tehran Mean Time return tz2 || (tz2=Ruleset.Timezone(-12344,"TMT")); return tz1 || (tz1=Ruleset.Timezone(-12344,"LMT")); } } constant Iran=Asia_Tehran; class Asia_Baghdad { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=389048400) // from 1982 May return tz4 || (tz4=TZrules.Iraq(-10800,"A%sT")); if (ux>=-1641005856) // from 1918 return tz3 || (tz3=Ruleset.Timezone(-10800,"AST")); if (ux>=-2524532260) // from 1890 Baghdad Mean Time? return tz2 || (tz2=Ruleset.Timezone(-10656,"BMT")); return tz1 || (tz1=Ruleset.Timezone(-10660,"LMT")); } } class Asia_Jerusalem { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1641003640) // from 1918 return tz3 || (tz3=TZrules.Zion(-7200,"I%sT")); if (ux>=-2840149256) // from 1880 Jerusalem Mean Time? return tz2 || (tz2=Ruleset.Timezone(-8440,"JMT")); return tz1 || (tz1=Ruleset.Timezone(-8456,"LMT")); } } constant Asia_Tel_Aviv=Asia_Jerusalem; constant Israel=Asia_Jerusalem; class Asia_Tokyo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1009875600) // from 1938 return tz2 || (tz2=Ruleset.Timezone(-32400,"JST")); if (ux>=-2335251600) // from 1896 return tz3 || (tz3=Ruleset.Timezone(-32400,"CJT")); if (ux>=-2587712400) // from 1887 Dec 31 15:00u return tz2 || (tz2=Ruleset.Timezone(-32400,"JST")); return tz1 || (tz1=Ruleset.Timezone(-33539,"LMT")); } } constant Japan=Asia_Tokyo; class Asia_Amman { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1230776624) // from 1931 return tz2 || (tz2=TZrules.Jordan(-7200,"EE%sT")); return tz1 || (tz1=Ruleset.Timezone(-8624,"LMT")); } } class Asia_Almaty { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=695768400) // from 1992 Jan 19 2:00s return tz5 || (tz5=TZrules.E_EurAsia(-21600,"ALM%sT")); if (ux>=686091600) // from 1991 Sep 29 2:00s return tz2 || (tz2=Ruleset.Timezone(-18000,"ALMT")); if (ux>=670363200) // from 1991 Mar 31 2:00s return tz4 || (tz4=Ruleset.Timezone(-21600,"ALMST")); if (ux>=-405147600) // from 1957 Mar return tz3 || (tz3=TZrules.RussiaAsia(-21600,"ALM%sT")); if (ux>=-1441170468) // from 1924 May 2 Alma-Ata Time return tz2 || (tz2=Ruleset.Timezone(-18000,"ALMT")); // or Alma-Ata return tz1 || (tz1=Ruleset.Timezone(-18468,"LMT")); } } class Asia_Aqtobe { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=695772000) // from 1992 Jan 19 2:00s return tz6 || (tz6=TZrules.E_EurAsia(-18000,"AQT%sT")); if (ux>=686095200) // from 1991 Sep 29 2:00s Aqtobe Time return tz5 || (tz5=Ruleset.Timezone(-14400,"AQTT")); if (ux>=670366800) // from 1991 Mar 31 2:00s return tz4 || (tz4=Ruleset.Timezone(-18000,"AKTST")); if (ux>=-405144000) // from 1957 Mar return tz3 || (tz3=TZrules.RussiaAsia(-18000,"AK%sT")); if (ux>=-1441165720) // from 1924 May 2 Aktyubinsk Time return tz2 || (tz2=Ruleset.Timezone(-14400,"AKT")); return tz1 || (tz1=Ruleset.Timezone(-13720,"LMT")); } } class Asia_Aqtau { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=809935200) // from 1995 Sep lastSun return tz7 || (tz7=TZrules.E_EurAsia(-14400,"AQT%sT")); if (ux>=695772000) // from 1992 Jan 19 2:00s return tz6 || (tz6=TZrules.E_EurAsia(-18000,"AQT%sT")); if (ux>=686095200) // from 1991 Sep 29 2:00s Aqtau Time return tz5 || (tz5=Ruleset.Timezone(-14400,"AQTT")); if (ux>=670366800) // from 1991 Mar 31 2:00s return tz4 || (tz4=Ruleset.Timezone(-18000,"AQTST")); if (ux>=-405144000) // from 1957 Mar return tz3 || (tz3=TZrules.RussiaAsia(-18000,"SHE%sT")); if (ux>=-1441164064) // from 1924 May 2 Fort Shevchenko Time return tz2 || (tz2=Ruleset.Timezone(-14400,"SHET")); // or Aktau return tz1 || (tz1=Ruleset.Timezone(-12064,"LMT")); } } class Asia_Bishkek { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=683582400) // from 1991 Aug 31 2:00 Kirgizstan Time return tz5 || (tz5=TZrules.Kirgiz(-18000,"KG%sT")); if (ux>=670363200) // from 1991 Mar 31 2:00s independence return tz4 || (tz4=Ruleset.Timezone(-21600,"FRUST")); if (ux>=-1247547600) // from 1930 Jun 21 return tz3 || (tz3=TZrules.RussiaAsia(-21600,"FRU%sT")); if (ux>=-1441169904) // from 1924 May 2 Frunze Time return tz2 || (tz2=Ruleset.Timezone(-18000,"FRUT")); return tz1 || (tz1=Ruleset.Timezone(-17904,"LMT")); } } class Asia_Seoul { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=-39515400) // from 1968 Oct return tz5 || (tz5=TZrules.ROK(-32400,"K%sT")); if (ux>=-264873600) // from 1961 Aug 10 return tz2 || (tz2=Ruleset.Timezone(-30600,"KST")); if (ux>=-498128400) // from 1954 Mar 21 return tz4 || (tz4=TZrules.ROK(-28800,"K%sT")); if (ux>=-1199262600) // from 1932 return tz3 || (tz3=Ruleset.Timezone(-32400,"KST")); if (ux>=-1325494800) // from 1928 return tz2 || (tz2=Ruleset.Timezone(-30600,"KST")); if (ux>=-2053931400) // from 1904 Dec return tz3 || (tz3=Ruleset.Timezone(-32400,"KST")); if (ux>=-2524552072) // from 1890 return tz2 || (tz2=Ruleset.Timezone(-30600,"KST")); return tz1 || (tz1=Ruleset.Timezone(-30472,"LMT")); } } constant ROK=Asia_Seoul; class Asia_Pyongyang { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-264931200) // from 1961 Aug 10 return tz3 || (tz3=Ruleset.Timezone(-32400,"KST")); if (ux>=-498128400) // from 1954 Mar 21 return tz4 || (tz4=Ruleset.Timezone(-28800,"KST")); if (ux>=-1199262600) // from 1932 return tz3 || (tz3=Ruleset.Timezone(-32400,"KST")); if (ux>=-1325494800) // from 1928 return tz2 || (tz2=Ruleset.Timezone(-30600,"KST")); if (ux>=-2053931400) // from 1904 Dec return tz3 || (tz3=Ruleset.Timezone(-32400,"KST")); if (ux>=-2524551780) // from 1890 return tz2 || (tz2=Ruleset.Timezone(-30600,"KST")); return tz1 || (tz1=Ruleset.Timezone(-30180,"LMT")); } } class Asia_Kuwait { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-631163516) // from 1950 return tz2 || (tz2=Ruleset.Timezone(-10800,"AST")); return tz1 || (tz1=Ruleset.Timezone(-11516,"LMT")); } } class Asia_Vientiane { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1220428800) // from 1931 May return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-1819954800) // from 1912 May return tz4 || (tz4=Ruleset.Timezone(-28800,"ICT")); if (ux>=-1855983920) // from 1911 Mar 11 0:01 return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-2005973424) // from 1906 Jun 9 Saigon MT? return tz2 || (tz2=Ruleset.Timezone(-25580,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-24624,"LMT")); } } class Asia_Beirut { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2840149320) // from 1880 return tz2 || (tz2=TZrules.Lebanon(-7200,"EE%sT")); return tz1 || (tz1=Ruleset.Timezone(-8520,"LMT")); } } class Asia_Kuala_Lumpur { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=389032200) // from 1982 May Malaysia Time return tz7 || (tz7=Ruleset.Timezone(-28800,"MYT")); if (ux>=-631178400) // from 1950 return tz6 || (tz6=Ruleset.Timezone(-27000,"MALT")); if (ux>=-767869200) // from 1945 Sep 2 return tz4 || (tz4=Ruleset.Timezone(-26400,"MALT")); if (ux>=-879751200) // from 1942 Feb 15 return tz5 || (tz5=Ruleset.Timezone(-32400,"JST")); if (ux>=-1167634800) // from 1933 return tz4 || (tz4=Ruleset.Timezone(-26400,"MALT")); if (ux>=-2038200924) // from 1905 Jun Malaya Time return tz3 || (tz3=Ruleset.Timezone(-25200,"MALT")); if (ux>=-2840165208) // from 1880 Singapore Mean Time return tz2 || (tz2=Ruleset.Timezone(-24924,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-24408,"LMT")); } } class Asia_Kuching { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=389030400) // from 1982 May return tz6 || (tz6=Ruleset.Timezone(-28800,"MYT")); if (ux>=-767869200) // from 1945 Sep 2 return tz5 || (tz5=Ruleset.Timezone(-28800,"BORT")); if (ux>=-883584000) // from 1942 return tz4 || (tz4=Ruleset.Timezone(-32400,"JST")); if (ux>=-1167636600) // from 1933 return tz3 || (tz3=TZrules.NBorneo(-28800,"BOR%sT")); if (ux>=-1383463280) // from 1926 Mar Borneo Time return tz2 || (tz2=Ruleset.Timezone(-27000,"BORT")); return tz1 || (tz1=Ruleset.Timezone(-26480,"LMT")); } } class Indian_Maldives { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-315636840) // from 1960 Maldives Time return tz3 || (tz3=Ruleset.Timezone(-18000,"MVT")); if (ux>=-2840158440) // from 1880 Male Mean Time return tz2 || (tz2=Ruleset.Timezone(-17640,"MMT")); // Male return tz1 || (tz1=Ruleset.Timezone(-17640,"LMT")); } } class Asia_Hovd { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=252439200) // from 1978 return tz3 || (tz3=TZrules.Mongol(-25200,"HOV%sT")); if (ux>=-2032927596) // from 1905 Aug Hovd Time return tz2 || (tz2=Ruleset.Timezone(-21600,"HOVT")); return tz1 || (tz1=Ruleset.Timezone(-21996,"LMT")); } } class Asia_Ulaanbaatar { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=252435600) // from 1978 return tz3 || (tz3=TZrules.Mongol(-28800,"ULA%sT")); if (ux>=-2032931252) // from 1905 Aug Ulaanbaatar Time return tz2 || (tz2=Ruleset.Timezone(-25200,"ULAT")); return tz1 || (tz1=Ruleset.Timezone(-25652,"LMT")); } } constant Asia_Ulan_Bator=Asia_Ulaanbaatar; class Asia_Katmandu { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=504901800) // from 1986 Nepal Time return tz3 || (tz3=Ruleset.Timezone(-20700,"NPT")); if (ux>=-1577943676) // from 1920 return tz2 || (tz2=Ruleset.Timezone(-19800,"IST")); return tz1 || (tz1=Ruleset.Timezone(-20476,"LMT")); } } class Asia_Muscat { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1577937260) // from 1920 return tz2 || (tz2=Ruleset.Timezone(-14400,"GST")); return tz1 || (tz1=Ruleset.Timezone(-14060,"LMT")); } } class Asia_Karachi { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=38775600) // from 1971 Mar 26 Pakistan Time return tz5 || (tz5=Ruleset.Timezone(-18000,"PKT")); if (ux>=-576135000) // from 1951 Sep 30 Karachi Time return tz4 || (tz4=Ruleset.Timezone(-18000,"KART")); if (ux>=-764145000) // from 1945 Oct 15 return tz2 || (tz2=Ruleset.Timezone(-19800,"IST")); if (ux>=-862637400) // from 1942 Sep return tz3 || (tz3=Ruleset.Timezone(-23400,"IST")); if (ux>=-1988166492) // from 1907 return tz2 || (tz2=Ruleset.Timezone(-19800,"IST")); return tz1 || (tz1=Ruleset.Timezone(-16092,"LMT")); } } class Asia_Gaza { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=915156000) // from 1999 return tz6 || (tz6=TZrules.Palestine(-7200,"EE%sT")); if (ux>=820461600) // from 1996 return tz5 || (tz5=TZrules.Jordan(-7200,"EE%sT")); if (ux>=-81291600) // from 1967 Jun 5 return tz4 || (tz4=TZrules.Zion(-7200,"I%sT")); if (ux>=-682639200) // from 1948 May 15 return tz3 || (tz3=TZrules.EgyptAsia(-7200,"EE%sT")); if (ux>=-2185409872) // from 1900 Oct return tz2 || (tz2=TZrules.Zion(-7200,"EET")); return tz1 || (tz1=Ruleset.Timezone(-8272,"LMT")); } } class Asia_Manila { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-794221200) // from 1944 Nov return tz3 || (tz3=TZrules.Phil(-28800,"PH%sT")); if (ux>=-873216000) // from 1942 May return tz4 || (tz4=Ruleset.Timezone(-32400,"JST")); if (ux>=-2229321840) // from 1899 May 11 return tz3 || (tz3=TZrules.Phil(-28800,"PH%sT")); if (ux>=-3976157040) // from 1844 return tz2 || (tz2=Ruleset.Timezone(-29040,"LMT")); return tz1 || (tz1=Ruleset.Timezone(57360,"LMT")); } } class Asia_Qatar { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=76190400) // from 1972 Jun return tz3 || (tz3=Ruleset.Timezone(-10800,"AST")); if (ux>=-1577935568) // from 1920 return tz2 || (tz2=Ruleset.Timezone(-14400,"GST")); // Al Dawhah return tz1 || (tz1=Ruleset.Timezone(-12368,"LMT")); } } class Asia_Riyadh { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-631163212) // from 1950 return tz2 || (tz2=Ruleset.Timezone(-10800,"AST")); return tz1 || (tz1=Ruleset.Timezone(-11212,"LMT")); } } class Asia_Singapore { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=389032200) // from 1982 May return tz8 || (tz8=Ruleset.Timezone(-28800,"SGT")); if (ux>=-138785400) // from 1965 Aug 9 Singapore Time return tz7 || (tz7=Ruleset.Timezone(-27000,"SGT")); if (ux>=-631178400) // from 1950 independence return tz6 || (tz6=Ruleset.Timezone(-27000,"MALT")); if (ux>=-767869200) // from 1945 Sep 2 return tz4 || (tz4=Ruleset.Timezone(-26400,"MALT")); if (ux>=-879751200) // from 1942 Feb 15 return tz5 || (tz5=Ruleset.Timezone(-32400,"JST")); if (ux>=-1167634800) // from 1933 return tz4 || (tz4=Ruleset.Timezone(-26400,"MALT")); if (ux>=-2038200924) // from 1905 Jun Malaya Time return tz3 || (tz3=Ruleset.Timezone(-25200,"MALT")); if (ux>=-2840165724) // from 1880 Singapore Mean Time return tz2 || (tz2=Ruleset.Timezone(-24924,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-24924,"LMT")); } } constant Singapore=Asia_Singapore; class Asia_Colombo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=846266400) // from 1996 Oct 26 0:30 return tz7 || (tz7=Ruleset.Timezone(-21600,"LKT")); if (ux>=832962600) // from 1996 May 25 0:00 return tz6 || (tz6=Ruleset.Timezone(-23400,"LKT")); if (ux>=-764051400) // from 1945 Oct 16 2:00 return tz3 || (tz3=Ruleset.Timezone(-19800,"IST")); if (ux>=-862639200) // from 1942 Sep return tz5 || (tz5=Ruleset.Timezone(-23400,"IST")); if (ux>=-883287000) // from 1942 Jan 5 return tz4 || (tz4=Ruleset.Timezone(-21600,"IHST")); if (ux>=-2019705572) // from 1906 return tz3 || (tz3=Ruleset.Timezone(-19800,"IST")); if (ux>=-2840159964) // from 1880 Moratuwa Mean Time return tz2 || (tz2=Ruleset.Timezone(-19172,"MMT")); return tz1 || (tz1=Ruleset.Timezone(-19164,"LMT")); } } class Asia_Damascus { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1577931912) // from 1920 return tz2 || (tz2=TZrules.Syria(-7200,"EE%sT")); return tz1 || (tz1=Ruleset.Timezone(-8712,"LMT")); } } class Asia_Dushanbe { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=684363600) // from 1991 Sep 9 2:00s Tajikistan Time return tz5 || (tz5=Ruleset.Timezone(-18000,"TJT")); if (ux>=670363200) // from 1991 Mar 31 2:00s return tz4 || (tz4=Ruleset.Timezone(-21600,"DUSST")); if (ux>=-1247547600) // from 1930 Jun 21 return tz3 || (tz3=TZrules.RussiaAsia(-21600,"DUS%sT")); if (ux>=-1441168512) // from 1924 May 2 Dushanbe Time return tz2 || (tz2=Ruleset.Timezone(-18000,"DUST")); return tz1 || (tz1=Ruleset.Timezone(-16512,"LMT")); } } class Asia_Bangkok { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1570084924) // from 1920 Apr return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-2840164924) // from 1880 Bangkok Mean Time return tz2 || (tz2=Ruleset.Timezone(-24124,"BMT")); return tz1 || (tz1=Ruleset.Timezone(-24124,"LMT")); } } class Asia_Ashkhabad { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=695800800) // from 1992 Jan 19 2:00 return tz6 || (tz6=Ruleset.Timezone(-18000,"TMT")); if (ux>=688536000) // from 1991 Oct 27 return tz5 || (tz5=TZrules.RussiaAsia(-14400,"TM%sT")); if (ux>=670402800) // from 1991 Mar 31 2:00 independence return tz4 || (tz4=TZrules.RussiaAsia(-14400,"ASH%sT")); if (ux>=-1247544000) // from 1930 Jun 21 return tz3 || (tz3=TZrules.RussiaAsia(-18000,"ASH%sT")); if (ux>=-1441166012) // from 1924 May 2 Ashkhabad Time return tz2 || (tz2=Ruleset.Timezone(-14400,"ASHT")); // or Ashgabat return tz1 || (tz1=Ruleset.Timezone(-14012,"LMT")); } } class Asia_Dubai { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1577936472) // from 1920 return tz2 || (tz2=Ruleset.Timezone(-14400,"GST")); return tz1 || (tz1=Ruleset.Timezone(-13272,"LMT")); } } class Asia_Samarkand { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=725864400) // from 1993 return tz8 || (tz8=Ruleset.Timezone(-18000,"UZT")); if (ux>=694242000) // from 1992 return tz7 || (tz7=TZrules.RussiaAsia(-18000,"UZ%sT")); if (ux>=683704800) // from 1991 Sep 1 return tz7 || (tz7=TZrules.RussiaAsia(-18000,"UZ%sT")); if (ux>=670406400) // from 1991 Mar 31 2:00 independence return tz6 || (tz6=TZrules.RussiaAsia(-18000,"TAS%sT")); if (ux>=370720800) // from 1981 Oct 1 Tashkent Time return tz5 || (tz5=TZrules.RussiaAsia(-21600,"TAS%sT")); if (ux>=354913200) // from 1981 Apr 1 return tz4 || (tz4=Ruleset.Timezone(-21600,"SAMST")); if (ux>=-1247544000) // from 1930 Jun 21 return tz3 || (tz3=Ruleset.Timezone(-18000,"SAMT")); if (ux>=-1441168032) // from 1924 May 2 Samarkand Time return tz2 || (tz2=Ruleset.Timezone(-14400,"SAMT")); return tz1 || (tz1=Ruleset.Timezone(-16032,"LMT")); } } class Asia_Tashkent { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=725864400) // from 1993 return tz6 || (tz6=Ruleset.Timezone(-18000,"UZT")); if (ux>=694242000) // from 1992 return tz5 || (tz5=TZrules.RussiaAsia(-18000,"UZ%sT")); if (ux>=683704800) // from 1991 Sep 1 return tz5 || (tz5=TZrules.RussiaAsia(-18000,"UZ%sT")); if (ux>=670363200) // from 1991 Mar 31 2:00s independence return tz4 || (tz4=TZrules.RussiaAsia(-18000,"TAS%sT")); if (ux>=-1247547600) // from 1930 Jun 21 return tz3 || (tz3=TZrules.RussiaAsia(-21600,"TAS%sT")); if (ux>=-1441168632) // from 1924 May 2 Tashkent Time return tz2 || (tz2=Ruleset.Timezone(-18000,"TAST")); return tz1 || (tz1=Ruleset.Timezone(-16632,"LMT")); } } class Asia_Saigon { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1220428800) // from 1931 May return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-1819954800) // from 1912 May return tz4 || (tz4=Ruleset.Timezone(-28800,"ICT")); if (ux>=-1855983920) // from 1911 Mar 11 0:01 return tz3 || (tz3=Ruleset.Timezone(-25200,"ICT")); if (ux>=-2005974400) // from 1906 Jun 9 Saigon MT? return tz2 || (tz2=Ruleset.Timezone(-25580,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-25600,"LMT")); } } class Asia_Aden { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-631162848) // from 1950 return tz2 || (tz2=Ruleset.Timezone(-10800,"AST")); return tz1 || (tz1=Ruleset.Timezone(-10848,"LMT")); } } class Australia_Darwin { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-2230189200) // from 1899 May return tz3 || (tz3=TZrules.Aus(-34200,"CST")); if (ux>=-2364108200) // from 1895 Feb return tz2 || (tz2=Ruleset.Timezone(-32400,"CST")); return tz1 || (tz1=Ruleset.Timezone(-31400,"LMT")); } } constant Australia_North=Australia_Darwin; class Australia_Perth { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=699375600) // from 1992 Mar Sun>=1 2:00s return tz3 || (tz3=Ruleset.Timezone(-28800,"WST")); if (ux>=690314400) // from 1991 Nov 17 2:00s return tz4 || (tz4=Ruleset.Timezone(-32400,"WST")); if (ux>=446914800) // from 1984 Mar Sun>=1 2:00s return tz3 || (tz3=Ruleset.Timezone(-28800,"WST")); if (ux>=433785600) // from 1983 Oct lastSun 2:00s return tz4 || (tz4=Ruleset.Timezone(-32400,"WST")); if (ux>=162831600) // from 1975 Mar Sun>=1 2:00s return tz3 || (tz3=Ruleset.Timezone(-28800,"WST")); if (ux>=149788800) // from 1974 Oct lastSun 2:00s return tz4 || (tz4=Ruleset.Timezone(-32400,"WST")); if (ux>=-836409600) // from 1943 Jul return tz3 || (tz3=Ruleset.Timezone(-28800,"WST")); if (ux>=-2337925404) // from 1895 Dec return tz2 || (tz2=TZrules.Aus(-28800,"WST")); return tz1 || (tz1=Ruleset.Timezone(-27804,"LMT")); } } constant Australia_West=Australia_Perth; class Australia_Brisbane { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=31572000) // from 1971 return tz3 || (tz3=TZrules.AQ(-36000,"EST")); if (ux>=-2366791928) // from 1895 return tz2 || (tz2=TZrules.Aus(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-36728,"LMT")); } } constant Australia_Queensland=Australia_Brisbane; class Australia_Lindeman { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=709984800) // from 1992 Jul return tz4 || (tz4=TZrules.Holiday(-36000,"EST")); if (ux>=31572000) // from 1971 return tz3 || (tz3=TZrules.AQ(-36000,"EST")); if (ux>=-2366790956) // from 1895 return tz2 || (tz2=TZrules.Aus(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-35756,"LMT")); } } class Australia_Adelaide { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=31570200) // from 1971 return tz4 || (tz4=TZrules.AS(-34200,"CST")); if (ux>=-2230189200) // from 1899 May return tz3 || (tz3=TZrules.Aus(-34200,"CST")); if (ux>=-2364110060) // from 1895 Feb return tz2 || (tz2=Ruleset.Timezone(-32400,"CST")); return tz1 || (tz1=Ruleset.Timezone(-33260,"LMT")); } } constant Australia_South=Australia_Adelaide; class Australia_Hobart { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=-94658400) // from 1967 return tz5 || (tz5=TZrules.AT(-36000,"EST")); if (ux>=-1669892400) // from 1917 Feb return tz4 || (tz4=TZrules.Aus(-36000,"EST")); if (ux>=-1680508800) // from 1916 Oct 1 2:00 return tz3 || (tz3=Ruleset.Timezone(-39600,"EST")); if (ux>=-2345795356) // from 1895 Sep return tz2 || (tz2=Ruleset.Timezone(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-35356,"LMT")); } } constant Australia_Tasmania=Australia_Hobart; class Australia_Melbourne { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=31572000) // from 1971 return tz3 || (tz3=TZrules.AV(-36000,"EST")); if (ux>=-2364111592) // from 1895 Feb return tz2 || (tz2=TZrules.Aus(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-34792,"LMT")); } } constant Australia_Victoria=Australia_Melbourne; class Australia_Sydney { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=31572000) // from 1971 return tz3 || (tz3=TZrules.AN(-36000,"EST")); if (ux>=-2364113092) // from 1895 Feb return tz2 || (tz2=TZrules.Aus(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-36292,"LMT")); } } constant Australia_ACT=Australia_Sydney; constant Australia_Canberra=Australia_Sydney; constant Australia_NSW=Australia_Sydney; class Australia_Broken_Hill { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=946722600) // from 2000 return tz6 || (tz6=TZrules.AS(-34200,"CST")); if (ux>=31570200) // from 1971 return tz5 || (tz5=TZrules.AN(-34200,"CST")); if (ux>=-2230189200) // from 1899 May return tz4 || (tz4=TZrules.Aus(-34200,"CST")); if (ux>=-2314951200) // from 1896 Aug 23 return tz3 || (tz3=Ruleset.Timezone(-32400,"CST")); if (ux>=-2364110748) // from 1895 Feb return tz2 || (tz2=Ruleset.Timezone(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-33948,"LMT")); } } constant Australia_Yancowinna=Australia_Broken_Hill; class Australia_Lord_Howe { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=352216800) // from 1981 Mar return tz3 || (tz3=TZrules.LH(-37800,"LHST")); if (ux>=-2364114980) // from 1895 Feb return tz2 || (tz2=Ruleset.Timezone(-36000,"EST")); return tz1 || (tz1=Ruleset.Timezone(-38180,"LMT")); } } constant Australia_LHI=Australia_Lord_Howe; class Indian_Christmas { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2364102172) // from 1895 Feb Christmas Island Time return tz2 || (tz2=Ruleset.Timezone(-25200,"CXT")); return tz1 || (tz1=Ruleset.Timezone(-25372,"LMT")); } } class Pacific_Rarotonga { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=279714600) // from 1978 Nov 12 return tz3 || (tz3=TZrules.Cook(36000,"CK%sT")); if (ux>=-2177414456) // from 1901 Cook Is Time return tz2 || (tz2=Ruleset.Timezone(37800,"CKT")); // Avarua return tz1 || (tz1=Ruleset.Timezone(38344,"LMT")); } } class Pacific_Fiji { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1709985220) // from 1915 Oct 26 Fiji Time return tz2 || (tz2=TZrules.Fiji(-43200,"FJ%sT")); // Suva return tz1 || (tz1=Ruleset.Timezone(-42820,"LMT")); } } class Pacific_Gambier { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1806678012) // from 1912 Oct Gambier Time return tz2 || (tz2=Ruleset.Timezone(32400,"GAMT")); // Rikitea return tz1 || (tz1=Ruleset.Timezone(32388,"LMT")); } } class Pacific_Marquesas { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1806676920) // from 1912 Oct Marquesas Time return tz2 || (tz2=Ruleset.Timezone(34200,"MART")); return tz1 || (tz1=Ruleset.Timezone(33480,"LMT")); } } class Pacific_Tahiti { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1806674504) // from 1912 Oct Tahiti Time return tz2 || (tz2=Ruleset.Timezone(36000,"TAHT")); // Papeete return tz1 || (tz1=Ruleset.Timezone(35896,"LMT")); } } class Pacific_Guam { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177487540) // from 1901 return tz2 || (tz2=Ruleset.Timezone(-36000,"GST")); // Agana return tz1 || (tz1=Ruleset.Timezone(-34740,"LMT")); } } class Pacific_Tarawa { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177494324) // from 1901 Gilbert Is Time return tz2 || (tz2=Ruleset.Timezone(-43200,"GILT")); // Bairiki return tz1 || (tz1=Ruleset.Timezone(-41524,"LMT")); } } class Pacific_Enderbury { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=788958000) // from 1995 return tz4 || (tz4=Ruleset.Timezone(-46800,"PHOT")); if (ux>=307627200) // from 1979 Oct return tz3 || (tz3=Ruleset.Timezone(39600,"PHOT")); if (ux>=-2177411740) // from 1901 Phoenix Is Time return tz2 || (tz2=Ruleset.Timezone(43200,"PHOT")); return tz1 || (tz1=Ruleset.Timezone(41060,"LMT")); } } class Pacific_Kiritimati { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=788954400) // from 1995 return tz4 || (tz4=Ruleset.Timezone(-50400,"LINT")); if (ux>=307622400) // from 1979 Oct return tz3 || (tz3=Ruleset.Timezone(36000,"LINT")); if (ux>=-2177415040) // from 1901 Line Is Time return tz2 || (tz2=Ruleset.Timezone(38400,"LINT")); return tz1 || (tz1=Ruleset.Timezone(37760,"LMT")); } } class Pacific_Saipan { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-7981200) // from 1969 Oct return tz3 || (tz3=Ruleset.Timezone(-36000,"MPT")); if (ux>=-2177487780) // from 1901 N Mariana Is Time return tz2 || (tz2=Ruleset.Timezone(-32400,"MPT")); return tz1 || (tz1=Ruleset.Timezone(-34980,"LMT")); } } class Pacific_Majuro { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-7988400) // from 1969 Oct return tz3 || (tz3=Ruleset.Timezone(-43200,"MHT")); if (ux>=-2177493888) // from 1901 Marshall Islands Time return tz2 || (tz2=Ruleset.Timezone(-39600,"MHT")); return tz1 || (tz1=Ruleset.Timezone(-41088,"LMT")); } } class Pacific_Kwajalein { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=745848000) // from 1993 Aug 20 return tz4 || (tz4=Ruleset.Timezone(-43200,"MHT")); if (ux>=-7988400) // from 1969 Oct Kwajalein Time return tz3 || (tz3=Ruleset.Timezone(43200,"KWAT")); if (ux>=-2177492960) // from 1901 return tz2 || (tz2=Ruleset.Timezone(-39600,"MHT")); return tz1 || (tz1=Ruleset.Timezone(-40160,"LMT")); } } constant Kwajalein=Pacific_Kwajalein; class Pacific_Yap { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-7981200) // from 1969 Oct return tz3 || (tz3=Ruleset.Timezone(-36000,"YAPT")); if (ux>=-2177485952) // from 1901 Yap Time return tz2 || (tz2=Ruleset.Timezone(-32400,"YAPT")); // Colonia return tz1 || (tz1=Ruleset.Timezone(-33152,"LMT")); } } class Pacific_Truk { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177489228) // from 1901 Truk Time return tz2 || (tz2=Ruleset.Timezone(-36000,"TRUT")); return tz1 || (tz1=Ruleset.Timezone(-36428,"LMT")); } } class Pacific_Ponape { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177490772) // from 1901 Ponape Time return tz2 || (tz2=Ruleset.Timezone(-39600,"PONT")); // Kolonia return tz1 || (tz1=Ruleset.Timezone(-37972,"LMT")); } } class Pacific_Kosrae { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=915105600) // from 1999 return tz2 || (tz2=Ruleset.Timezone(-39600,"KOST")); if (ux>=-7988400) // from 1969 Oct return tz3 || (tz3=Ruleset.Timezone(-43200,"KOST")); if (ux>=-2177491916) // from 1901 Kosrae Time return tz2 || (tz2=Ruleset.Timezone(-39600,"KOST")); return tz1 || (tz1=Ruleset.Timezone(-39116,"LMT")); } } class Pacific_Nauru { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=294323400) // from 1979 May return tz4 || (tz4=Ruleset.Timezone(-43200,"NRT")); if (ux>=-800960400) // from 1944 Aug 15 return tz2 || (tz2=Ruleset.Timezone(-41400,"NRT")); if (ux>=-877347000) // from 1942 Mar 15 return tz3 || (tz3=Ruleset.Timezone(-32400,"JST")); if (ux>=-1545131260) // from 1921 Jan 15 Nauru Time return tz2 || (tz2=Ruleset.Timezone(-41400,"NRT")); // Uaobe return tz1 || (tz1=Ruleset.Timezone(-40060,"LMT")); } } class Pacific_Noumea { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1829387148) // from 1912 Jan 13 return tz2 || (tz2=TZrules.NC(-39600,"NC%sT")); return tz1 || (tz1=Ruleset.Timezone(-39948,"LMT")); } } class Pacific_Auckland { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-923221800) // from 1940 Sep 29 2:00 return tz3 || (tz3=TZrules.NZ(-43200,"NZ%sT")); if (ux>=-3218873944) // from 1868 return tz2 || (tz2=TZrules.NZ(-41400,"NZ%sT")); return tz1 || (tz1=Ruleset.Timezone(-41944,"LMT")); } } constant NZ=Pacific_Auckland; class Pacific_Niue { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=276089400) // from 1978 Oct 1 return tz4 || (tz4=Ruleset.Timezone(39600,"NUT")); if (ux>=-599575200) // from 1951 return tz3 || (tz3=Ruleset.Timezone(41400,"NUT")); if (ux>=-2177412020) // from 1901 Niue Time return tz2 || (tz2=Ruleset.Timezone(40800,"NUT")); // Alofi return tz1 || (tz1=Ruleset.Timezone(40780,"LMT")); } } class Pacific_Norfolk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-599656320) // from 1951 Norfolk Time return tz3 || (tz3=Ruleset.Timezone(-41400,"NFT")); if (ux>=-2177493112) // from 1901 Norfolk Mean Time return tz2 || (tz2=Ruleset.Timezone(-40320,"NMT")); // Kingston return tz1 || (tz1=Ruleset.Timezone(-40312,"LMT")); } } class Pacific_Palau { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177485076) // from 1901 Palau Time return tz2 || (tz2=Ruleset.Timezone(-32400,"PWT")); // Koror return tz1 || (tz1=Ruleset.Timezone(-32276,"LMT")); } } class Pacific_Port_Moresby { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-2366790520) // from 1895 Papua New Guinea Time return tz3 || (tz3=Ruleset.Timezone(-36000,"PGT")); if (ux>=-2840176120) // from 1880 Port Moresby Mean Time return tz2 || (tz2=Ruleset.Timezone(-35320,"PMMT")); return tz1 || (tz1=Ruleset.Timezone(-35320,"LMT")); } } class Pacific_Pitcairn { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=893665800) // from 1998 Apr 27 00:00 Pitcairn Standard Time return tz3 || (tz3=Ruleset.Timezone(28800,"PST")); if (ux>=-2177421580) // from 1901 return tz2 || (tz2=Ruleset.Timezone(30600,"PNT")); // Adamstown return tz1 || (tz1=Ruleset.Timezone(31220,"LMT")); } } class Pacific_Pago_Pago { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=439038000) // from 1983 Nov 30 S=Samoa return tz6 || (tz6=Ruleset.Timezone(39600,"SST")); if (ux>=-86878800) // from 1967 Apr B=Bering return tz5 || (tz5=Ruleset.Timezone(39600,"BST")); if (ux>=-631110600) // from 1950 N=Nome return tz4 || (tz4=Ruleset.Timezone(39600,"NST")); if (ux>=-1861879032) // from 1911 Samoa Time return tz3 || (tz3=Ruleset.Timezone(41400,"SAMT")); if (ux>=-2855738232) // from 1879 Jul 5 return tz2 || (tz2=Ruleset.Timezone(40968,"LMT")); return tz1 || (tz1=Ruleset.Timezone(-45432,"LMT")); } } constant Pacific_Samoa=Pacific_Pago_Pago; constant US_Samoa=Pacific_Pago_Pago; class Pacific_Apia { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-631110600) // from 1950 W Samoa Time return tz4 || (tz4=Ruleset.Timezone(39600,"WST")); if (ux>=-1861878784) // from 1911 Samoa Time return tz3 || (tz3=Ruleset.Timezone(41400,"SAMT")); if (ux>=-2855737984) // from 1879 Jul 5 return tz2 || (tz2=Ruleset.Timezone(41216,"LMT")); return tz1 || (tz1=Ruleset.Timezone(-45184,"LMT")); } } class Pacific_Guadalcanal { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1806748788) // from 1912 Oct Solomon Is Time return tz2 || (tz2=Ruleset.Timezone(-39600,"SBT")); // Honiara return tz1 || (tz1=Ruleset.Timezone(-38388,"LMT")); } } class Pacific_Fakaofo { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177411704) // from 1901 Tokelau Time return tz2 || (tz2=Ruleset.Timezone(36000,"TKT")); return tz1 || (tz1=Ruleset.Timezone(41096,"LMT")); } } class Pacific_Tongatapu { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=915102000) // from 1999 return tz4 || (tz4=TZrules.Tonga(-46800,"TO%sT")); if (ux>=-915193200) // from 1941 return tz3 || (tz3=Ruleset.Timezone(-46800,"TOT")); if (ux>=-2177497160) // from 1901 Tonga Time return tz2 || (tz2=Ruleset.Timezone(-44400,"TOT")); return tz1 || (tz1=Ruleset.Timezone(-44360,"LMT")); } } class Pacific_Funafuti { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177495812) // from 1901 Tuvalu Time return tz2 || (tz2=Ruleset.Timezone(-43200,"TVT")); return tz1 || (tz1=Ruleset.Timezone(-43012,"LMT")); } } class Pacific_Midway { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=439038000) // from 1983 Nov 30 S=Samoa return tz4 || (tz4=Ruleset.Timezone(39600,"SST")); if (ux>=-86878800) // from 1967 Apr B=Bering return tz3 || (tz3=Ruleset.Timezone(39600,"BST")); if (ux>=-2177410232) // from 1901 N=Nome return tz2 || (tz2=Ruleset.Timezone(39600,"NST")); return tz1 || (tz1=Ruleset.Timezone(42568,"LMT")); } } class Pacific_Wake { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177492788) // from 1901 Wake Time return tz2 || (tz2=Ruleset.Timezone(-43200,"WAKT")); return tz1 || (tz1=Ruleset.Timezone(-39988,"LMT")); } } class Pacific_Efate { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1829387596) // from 1912 Jan 13 Vanuatu Time return tz2 || (tz2=TZrules.Vanuatu(-39600,"VU%sT")); // Vila return tz1 || (tz1=Ruleset.Timezone(-40396,"LMT")); } } class Pacific_Wallis { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2177496920) // from 1901 Wallis & Futuna Time return tz2 || (tz2=Ruleset.Timezone(-43200,"WFT")); return tz1 || (tz1=Ruleset.Timezone(-44120,"LMT")); } } class Europe_London { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=820454400) // from 1996 return tz4 || (tz4=TZrules.EU(0,"GMT/BST")); if (ux>=57722400) // from 1971 Oct 31 2:00u return tz2 || (tz2=TZrules.GB_Eire(0,"%s")); if (ux>=-37234800) // from 1968 Oct 27 return tz3 || (tz3=Ruleset.Timezone(-3600,"BST")); if (ux>=-3852662325) // from 1847 Dec 1 return tz2 || (tz2=TZrules.GB_Eire(0,"%s")); return tz1 || (tz1=Ruleset.Timezone(75,"LMT")); } } constant GB=Europe_London; constant GB_Eire=Europe_London; class Europe_Belfast { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=820454400) // from 1996 return tz6 || (tz6=TZrules.EU(0,"GMT/BST")); if (ux>=57722400) // from 1971 Oct 31 2:00u return tz4 || (tz4=TZrules.GB_Eire(0,"%s")); if (ux>=-37234800) // from 1968 Oct 27 return tz5 || (tz5=Ruleset.Timezone(-3600,"BST")); if (ux>=-1680471279) // from 1916 Oct 1 2:00s return tz4 || (tz4=TZrules.GB_Eire(0,"%s")); if (ux>=-1691962479) // from 1916 May 21 2:00 Irish Summer Time return tz3 || (tz3=Ruleset.Timezone(-2079,"IST")); if (ux>=-2821649780) // from 1880 Aug 2 Dublin MT return tz2 || (tz2=Ruleset.Timezone(1521,"DMT")); return tz1 || (tz1=Ruleset.Timezone(1420,"LMT")); } } class Europe_Dublin { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=820454400) // from 1996 return tz8 || (tz8=TZrules.EU(0,"GMT/IST")); if (ux>=57722400) // from 1971 Oct 31 2:00u return tz5 || (tz5=TZrules.GB_Eire(0,"GMT/IST")); if (ux>=-37234800) // from 1968 Oct 27 return tz6 || (tz6=Ruleset.Timezone(-3600,"IST")); if (ux>=-684972000) // from 1948 Apr 18 2:00 return tz5 || (tz5=TZrules.GB_Eire(0,"GMT/IST")); if (ux>=-699490800) // from 1947 Nov 2 2:00 return tz7 || (tz7=Ruleset.Timezone(0,"GMT")); if (ux>=-719445600) // from 1947 Mar 16 2:00 return tz6 || (tz6=Ruleset.Timezone(-3600,"IST")); if (ux>=-733359600) // from 1946 Oct 6 2:00 return tz7 || (tz7=Ruleset.Timezone(0,"GMT")); if (ux>=-942012000) // from 1940 Feb 25 2:00 return tz6 || (tz6=Ruleset.Timezone(-3600,"IST")); if (ux>=-1517011200) // from 1921 Dec 6 return tz5 || (tz5=TZrules.GB_Eire(0,"GMT/IST")); if (ux>=-1680471279) // from 1916 Oct 1 2:00s independence return tz4 || (tz4=TZrules.GB_Eire(0,"%s")); if (ux>=-1691962479) // from 1916 May 21 2:00 return tz3 || (tz3=Ruleset.Timezone(-2079,"IST")); if (ux>=-2821649679) // from 1880 Aug 2 Dublin MT return tz2 || (tz2=Ruleset.Timezone(1521,"DMT")); return tz1 || (tz1=Ruleset.Timezone(1521,"LMT")); } } constant Eire=Europe_Dublin; class Europe_Tirane { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=457495200) // from 1984 Jul return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-932346000) // from 1940 Jun 16 return tz3 || (tz3=TZrules.Albania(-3600,"CE%sT")); if (ux>=-1767230360) // from 1914 return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); return tz1 || (tz1=Ruleset.Timezone(-4760,"LMT")); } } class Europe_Andorra { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=481078800) // from 1985 Mar 31 2:00 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-733881600) // from 1946 Sep 30 return tz3 || (tz3=Ruleset.Timezone(-3600,"CET")); if (ux>=-2177453164) // from 1901 return tz2 || (tz2=Ruleset.Timezone(0,"WET")); return tz1 || (tz1=Ruleset.Timezone(-364,"LMT")); } } class Europe_Vienna { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=347158800) // from 1981 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-781045200) // from 1945 Apr 2 2:00 return tz3 || (tz3=TZrules.Austria(-3600,"CE%sT")); if (ux>=-938898000) // from 1940 Apr 1 2:00 return tz2 || (tz2=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1626634800) // from 1918 Jun 16 3:00 return tz3 || (tz3=TZrules.Austria(-3600,"CE%sT")); if (ux>=-2422055120) // from 1893 Apr return tz2 || (tz2=TZrules.C_Eur(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-3920,"LMT")); } } class Europe_Minsk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=717544800) // from 1992 Sep 27 0:00s return tz8 || (tz8=TZrules.Russia(-7200,"EE%sT")); if (ux>=701820000) // from 1992 Mar 29 0:00s return tz7 || (tz7=Ruleset.Timezone(-10800,"EEST")); if (ux>=686102400) // from 1991 Sep 29 2:00s return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=670374000) // from 1991 Mar 31 2:00s return tz7 || (tz7=Ruleset.Timezone(-10800,"EEST")); if (ux>=631162800) // from 1990 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-804636000) // from 1944 Jul 3 return tz6 || (tz6=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-899780400) // from 1941 Jun 28 return tz5 || (tz5=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1247536800) // from 1930 Jun 21 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1441158600) // from 1924 May 2 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-2840147416) // from 1880 Minsk Mean Time return tz2 || (tz2=Ruleset.Timezone(-6600,"MMT")); return tz1 || (tz1=Ruleset.Timezone(-6616,"LMT")); } } class Europe_Brussels { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=220928400) // from 1977 return tz8 || (tz8=TZrules.EU(-3600,"CE%sT")); if (ux>=-799279200) // from 1944 Sep 3 return tz7 || (tz7=TZrules.Belgium(-3600,"CE%sT")); if (ux>=-934668000) // from 1940 May 20 2:00s return tz5 || (tz5=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1613826000) // from 1918 Nov 11 11:00u return tz6 || (tz6=TZrules.Belgium(0,"WE%sT")); if (ux>=-1693702800) // from 1916 May 1 0:00 return tz5 || (tz5=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1740355200) // from 1914 Nov 8 return tz4 || (tz4=Ruleset.Timezone(-3600,"CET")); if (ux>=-2450953050) // from 1892 May 1 12:00 return tz3 || (tz3=Ruleset.Timezone(0,"WET")); if (ux>=-2840141850) // from 1880 Brussels MT return tz2 || (tz2=Ruleset.Timezone(-1050,"BMT")); return tz1 || (tz1=Ruleset.Timezone(-1050,"LMT")); } } class Europe_Sofia { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=852084000) // from 1997 return tz8 || (tz8=TZrules.EU(-7200,"EE%sT")); if (ux>=662695200) // from 1991 return tz7 || (tz7=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=401864400) // from 1982 Sep 26 2:00 return tz6 || (tz6=TZrules.C_Eur(-7200,"EE%sT")); if (ux>=291762000) // from 1979 Mar 31 23:00 return tz5 || (tz5=TZrules.Bulg(-7200,"EE%sT")); if (ux>=-781041600) // from 1945 Apr 2 3:00 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-857257200) // from 1942 Nov 2 3:00 return tz4 || (tz4=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2369527016) // from 1894 Nov 30 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-2840146396) // from 1880 Istanbul MT? return tz2 || (tz2=Ruleset.Timezone(-7016,"IMT")); return tz1 || (tz1=Ruleset.Timezone(-5596,"LMT")); } } class Europe_Prague { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=284000400) // from 1979 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=-798073200) // from 1944 Sep 17 2:00s return tz4 || (tz4=TZrules.Czech(-3600,"CE%sT")); if (ux>=-2469401864) // from 1891 Oct return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-3786829064) // from 1850 Prague Mean Time return tz2 || (tz2=Ruleset.Timezone(-3464,"PMT")); return tz1 || (tz1=Ruleset.Timezone(-3464,"LMT")); } } constant Europe_Bratislava=Europe_Prague; class Europe_Copenhagen { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=315536400) // from 1980 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=-781045200) // from 1945 Apr 2 2:00 return tz3 || (tz3=TZrules.Denmark(-3600,"CE%sT")); if (ux>=-857257200) // from 1942 Nov 2 2:00s return tz4 || (tz4=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2390518220) // from 1894 Apr return tz3 || (tz3=TZrules.Denmark(-3600,"CE%sT")); if (ux>=-2524524620) // from 1890 Copenhagen Mean Time return tz2 || (tz2=Ruleset.Timezone(-3020,"CMT")); return tz1 || (tz1=Ruleset.Timezone(-3020,"LMT")); } } class Atlantic_Faeroe { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=347155200) // from 1981 return tz3 || (tz3=TZrules.EU(0,"WE%sT")); if (ux>=-1955748776) // from 1908 Jan 11 return tz2 || (tz2=Ruleset.Timezone(0,"WET")); // Torshavn return tz1 || (tz1=Ruleset.Timezone(1624,"LMT")); } } class America_Scoresbysund { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=354664800) // from 1981 Mar 29 return tz4 || (tz4=TZrules.EU(3600,"EG%sT")); if (ux>=323841600) // from 1980 Apr 6 2:00 return tz3 || (tz3=TZrules.C_Eur(7200,"CG%sT")); if (ux>=-1686090660) // from 1916 Jul 28 return tz2 || (tz2=Ruleset.Timezone(7200,"CGT")); // Ittoqqortoormit return tz1 || (tz1=Ruleset.Timezone(5340,"LMT")); } } class America_Godthab { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=323845200) // from 1980 Apr 6 2:00 return tz3 || (tz3=TZrules.EU(10800,"WG%sT")); if (ux>=-1686083584) // from 1916 Jul 28 return tz2 || (tz2=Ruleset.Timezone(10800,"WGT")); // Nuuk return tz1 || (tz1=Ruleset.Timezone(12416,"LMT")); } } class America_Thule { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1686079492) // from 1916 Jul 28 return tz2 || (tz2=TZrules.Thule(14400,"A%sT")); // Pituffik return tz1 || (tz1=Ruleset.Timezone(16508,"LMT")); } } class Europe_Tallinn { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=941421600) // from 1999 Nov 1 return tz4 || (tz4=Ruleset.Timezone(-7200,"EET")); if (ux>=906433200) // from 1998 Sep 22 return tz9 || (tz9=TZrules.EU(-7200,"EE%sT")); if (ux>=622598400) // from 1989 Sep 24 2:00s return tz8 || (tz8=TZrules.C_Eur(-7200,"EE%sT")); if (ux>=606870000) // from 1989 Mar 26 2:00s return tz7 || (tz7=Ruleset.Timezone(-10800,"EEST")); if (ux>=-797637600) // from 1944 Sep 22 return tz6 || (tz6=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-892954800) // from 1941 Sep 15 return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-927943200) // from 1940 Aug 6 return tz5 || (tz5=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1535938740) // from 1921 May return tz4 || (tz4=Ruleset.Timezone(-7200,"EET")); if (ux>=-1593817200) // from 1919 Jul return tz2 || (tz2=Ruleset.Timezone(-5940,"TMT")); if (ux>=-1638322740) // from 1918 Feb return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2840146740) // from 1880 Tallinn Mean Time return tz2 || (tz2=Ruleset.Timezone(-5940,"TMT")); return tz1 || (tz1=Ruleset.Timezone(-5940,"LMT")); } } class Europe_Helsinki { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=354686400) // from 1981 Mar 29 2:00 return tz4 || (tz4=TZrules.EU(-7200,"EE%sT")); if (ux>=-1535938792) // from 1921 May return tz3 || (tz3=TZrules.Finland(-7200,"EE%sT")); if (ux>=-2890258792) // from 1878 May 31 Helsinki Mean Time return tz2 || (tz2=Ruleset.Timezone(-5992,"HMT")); return tz1 || (tz1=Ruleset.Timezone(-5992,"LMT")); } } class Europe_Paris { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=220928400) // from 1977 return tz6 || (tz6=TZrules.EU(-3600,"CE%sT")); if (ux>=-766609200) // from 1945 Sep 16 3:00 return tz5 || (tz5=TZrules.France(-3600,"CE%sT")); if (ux>=-800056800) // from 1944 Aug 25 return tz3 || (tz3=TZrules.France(0,"WE%sT")); if (ux>=-932428800) // from 1940 Jun 14 23:00 return tz4 || (tz4=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1855958961) // from 1911 Mar 11 return tz3 || (tz3=TZrules.France(0,"WE%sT")); if (ux>=-2486678901) // from 1891 Mar 15 0:01 Paris Mean Time return tz2 || (tz2=Ruleset.Timezone(-561,"PMT")); return tz1 || (tz1=Ruleset.Timezone(-561,"LMT")); } } class Europe_Berlin { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=315536400) // from 1980 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-781045200) // from 1945 Apr 2 2:00 return tz3 || (tz3=TZrules.Germany(-3600,"CE%sT")); if (ux>=-2422054408) // from 1893 Apr return tz2 || (tz2=TZrules.C_Eur(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-3208,"LMT")); } } class Europe_Gibraltar { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=378687600) // from 1982 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-401320800) // from 1957 Apr 14 2:00 return tz3 || (tz3=Ruleset.Timezone(-3600,"CET")); if (ux>=-2821649916) // from 1880 Aug 2 return tz2 || (tz2=TZrules.GB_Eire(0,"%s")); return tz1 || (tz1=Ruleset.Timezone(1284,"LMT")); } } class Europe_Athens { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=347162400) // from 1981 return tz5 || (tz5=TZrules.EU(-7200,"EE%sT")); if (ux>=-812415600) // from 1944 Apr 4 return tz3 || (tz3=TZrules.Greece(-7200,"EE%sT")); if (ux>=-904856400) // from 1941 Apr 30 return tz4 || (tz4=TZrules.Greece(-3600,"CE%sT")); if (ux>=-1686101632) // from 1916 Jul 28 0:01 return tz3 || (tz3=TZrules.Greece(-7200,"EE%sT")); if (ux>=-2344642492) // from 1895 Sep 14 Athens MT return tz2 || (tz2=Ruleset.Timezone(-5692,"AMT")); return tz1 || (tz1=Ruleset.Timezone(-5692,"LMT")); } } class Europe_Budapest { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=338950800) // from 1980 Sep 28 2:00s return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-778464000) // from 1945 May 1 23:00 return tz3 || (tz3=TZrules.Hungary(-3600,"CE%sT")); if (ux>=-906930000) // from 1941 Apr 6 2:00 return tz2 || (tz2=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1640991600) // from 1918 return tz3 || (tz3=TZrules.Hungary(-3600,"CE%sT")); if (ux>=-2500938980) // from 1890 Oct return tz2 || (tz2=TZrules.C_Eur(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-4580,"LMT")); } } class Atlantic_Reykjavik { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-54770400) // from 1968 Apr 7 1:00s return tz4 || (tz4=Ruleset.Timezone(0,"GMT")); if (ux>=-1956609132) // from 1908 return tz3 || (tz3=TZrules.Iceland(3600,"IS%sT")); if (ux>=-4197047556) // from 1837 Reykjavik Mean Time? return tz2 || (tz2=Ruleset.Timezone(5268,"RMT")); return tz1 || (tz1=Ruleset.Timezone(5244,"LMT")); } } constant Iceland=Atlantic_Reykjavik; class Europe_Rome { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=315536400) // from 1980 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=-804808800) // from 1944 Jul return tz3 || (tz3=TZrules.Italy(-3600,"CE%sT")); if (ux>=-857257200) // from 1942 Nov 2 2:00s return tz4 || (tz4=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2403564596) // from 1893 Nov return tz3 || (tz3=TZrules.Italy(-3600,"CE%sT")); if (ux>=-3259097396) // from 1866 Sep 22 Rome Mean Time return tz2 || (tz2=Ruleset.Timezone(-2996,"RMT")); return tz1 || (tz1=Ruleset.Timezone(-2996,"LMT")); } } constant Europe_Vatican=Europe_Rome; constant Europe_San_Marino=Europe_Rome; class Europe_Riga { inherit TZHistory; Ruleset.Timezone tz1,tz10,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=951789600) // from 2000 Feb 29 return tz4 || (tz4=Ruleset.Timezone(-7200,"EET")); if (ux>=853812000) // from 1997 Jan 21 return tz10 || (tz10=TZrules.EU(-7200,"EE%sT")); if (ux>=620600400) // from 1989 Sep lastSun 2:00s return tz9 || (tz9=TZrules.Latvia(-7200,"EE%sT")); if (ux>=604724400) // from 1989 Mar lastSun 2:00s return tz8 || (tz8=Ruleset.Timezone(-10800,"EEST")); if (ux>=-795826800) // from 1944 Oct 13 return tz7 || (tz7=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-899521200) // from 1941 Jul return tz6 || (tz6=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-928029600) // from 1940 Aug 5 return tz5 || (tz5=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1377308184) // from 1926 May 11 return tz4 || (tz4=Ruleset.Timezone(-7200,"EET")); if (ux>=-1597275384) // from 1919 May 22 3:00 return tz2 || (tz2=Ruleset.Timezone(-5784,"RMT")); if (ux>=-1601681784) // from 1919 Apr 1 2:00 return tz3 || (tz3=Ruleset.Timezone(-9384,"LST")); if (ux>=-1618702584) // from 1918 Sep 16 3:00 return tz2 || (tz2=Ruleset.Timezone(-5784,"RMT")); if (ux>=-1632008184) // from 1918 Apr 15 2:00 Latvian Summer return tz3 || (tz3=Ruleset.Timezone(-9384,"LST")); if (ux>=-2840146584) // from 1880 Riga Mean Time return tz2 || (tz2=Ruleset.Timezone(-5784,"RMT")); return tz1 || (tz1=Ruleset.Timezone(-5784,"LMT")); } } class Europe_Vaduz { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=347151600) // from 1981 return tz3 || (tz3=TZrules.EU(-3600,"CE%sT")); if (ux>=-2385247084) // from 1894 Jun return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); return tz1 || (tz1=Ruleset.Timezone(-2284,"LMT")); } } class Europe_Vilnius { inherit TZHistory; Ruleset.Timezone tz1,tz10,tz11,tz12,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=941331600) // from 1999 Oct 31 1:00u return tz12 || (tz12=TZrules.EU(-7200,"EE%sT")); if (ux>=891133200) // from 1998 Mar 29 1:00u return tz11 || (tz11=TZrules.EU(-3600,"CE%sT")); if (ux>=883620000) // from 1998 return tz5 || (tz5=Ruleset.Timezone(-7200,"EET")); if (ux>=686102400) // from 1991 Sep 29 2:00s return tz10 || (tz10=TZrules.C_Eur(-7200,"EE%sT")); if (ux>=670374000) // from 1991 Mar 31 2:00s return tz9 || (tz9=Ruleset.Timezone(-10800,"EEST")); if (ux>=-802130400) // from 1944 Aug return tz8 || (tz8=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-900126000) // from 1941 Jun 24 return tz7 || (tz7=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-928198800) // from 1940 Aug 3 return tz6 || (tz6=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1553565600) // from 1920 Oct 9 return tz4 || (tz4=Ruleset.Timezone(-3600,"CET")); if (ux>=-1561251600) // from 1920 Jul 12 return tz5 || (tz5=Ruleset.Timezone(-7200,"EET")); if (ux>=-1585100136) // from 1919 Oct 10 return tz4 || (tz4=Ruleset.Timezone(-3600,"CET")); if (ux>=-1672536240) // from 1917 Kaunas Mean Time return tz3 || (tz3=Ruleset.Timezone(-5736,"KMT")); if (ux>=-2840146876) // from 1880 Warsaw Mean Time return tz2 || (tz2=Ruleset.Timezone(-5040,"WMT")); return tz1 || (tz1=Ruleset.Timezone(-6076,"LMT")); } } class Europe_Luxembourg { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=220928400) // from 1977 return tz7 || (tz7=TZrules.EU(-3600,"CE%sT")); if (ux>=-797972400) // from 1944 Sep 18 3:00 return tz6 || (tz6=TZrules.Belgium(-3600,"CE%sT")); if (ux>=-935179200) // from 1940 May 14 3:00 return tz5 || (tz5=TZrules.C_Eur(-3600,"WE%sT")); if (ux>=-1269813600) // from 1929 Oct 6 2:00s return tz4 || (tz4=TZrules.Belgium(0,"WE%sT")); if (ux>=-1612652400) // from 1918 Nov 25 return tz3 || (tz3=TZrules.Lux(0,"WE%sT")); if (ux>=-2069713476) // from 1904 Jun return tz2 || (tz2=TZrules.Lux(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-1476,"LMT")); } } class Europe_Malta { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=347158800) // from 1981 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=102387600) // from 1973 Mar 31 return tz4 || (tz4=TZrules.Malta(-3600,"CE%sT")); if (ux>=-781052400) // from 1945 Apr 2 2:00s return tz2 || (tz2=TZrules.Italy(-3600,"CE%sT")); if (ux>=-857257200) // from 1942 Nov 2 2:00s return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2403478684) // from 1893 Nov 2 return tz2 || (tz2=TZrules.Italy(-3600,"CE%sT")); // Valletta return tz1 || (tz1=Ruleset.Timezone(-3484,"LMT")); } } class Europe_Chisinau { inherit TZHistory; Ruleset.Timezone tz1,tz10,tz11,tz12,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=852084000) // from 1997 return tz12 || (tz12=TZrules.EU(-7200,"EE%sT")); if (ux>=694231200) // from 1992 return tz11 || (tz11=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=662680800) // from 1991 return tz10 || (tz10=TZrules.Russia(-7200,"EE%sT")); if (ux>=641941200) // from 1990 May 6 return tz9 || (tz9=Ruleset.Timezone(-7200,"EET")); if (ux>=631162800) // from 1990 return tz8 || (tz8=Ruleset.Timezone(-10800,"MSK")); if (ux>=-800143200) // from 1944 Aug 24 return tz7 || (tz7=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-898138800) // from 1941 Jul 17 return tz6 || (tz6=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-927151200) // from 1940 Aug 15 return tz5 || (tz5=Ruleset.Timezone(-10800,"EEST")); if (ux>=-1213148664) // from 1931 Jul 24 return tz4 || (tz4=TZrules.Romania(-7200,"EE%sT")); if (ux>=-1637114100) // from 1918 Feb 15 Bucharest MT return tz3 || (tz3=Ruleset.Timezone(-6264,"BMT")); if (ux>=-2840147720) // from 1880 Chisinau MT return tz2 || (tz2=Ruleset.Timezone(-6900,"CMT")); return tz1 || (tz1=Ruleset.Timezone(-6920,"LMT")); } } class Europe_Tiraspol { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=695793600) // from 1992 Jan 19 2:00 return tz7 || (tz7=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=670395600) // from 1991 Mar 31 2:00 return tz8 || (tz8=TZrules.Russia(-7200,"EE%sT")); if (ux>=-800143200) // from 1944 Aug 24 return tz7 || (tz7=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-898138800) // from 1941 Jul 17 return tz6 || (tz6=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-927151200) // from 1940 Aug 15 return tz5 || (tz5=Ruleset.Timezone(-10800,"EEST")); if (ux>=-1213148664) // from 1931 Jul 24 return tz4 || (tz4=TZrules.Romania(-7200,"EE%sT")); if (ux>=-1637114100) // from 1918 Feb 15 Bucharest MT return tz3 || (tz3=Ruleset.Timezone(-6264,"BMT")); if (ux>=-2840147912) // from 1880 Chisinau MT return tz2 || (tz2=Ruleset.Timezone(-6900,"CMT")); return tz1 || (tz1=Ruleset.Timezone(-7112,"LMT")); } } class Europe_Monaco { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=220928400) // from 1977 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=-766609200) // from 1945 Sep 16 3:00 return tz4 || (tz4=TZrules.France(-3600,"CE%sT")); if (ux>=-1855958961) // from 1911 Mar 11 return tz3 || (tz3=TZrules.France(0,"WE%sT")); if (ux>=-2486680172) // from 1891 Mar 15 Paris Mean Time return tz2 || (tz2=Ruleset.Timezone(-561,"PMT")); return tz1 || (tz1=Ruleset.Timezone(-1772,"LMT")); } } class Europe_Amsterdam { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=220928400) // from 1977 return tz6 || (tz6=TZrules.EU(-3600,"CE%sT")); if (ux>=-781045200) // from 1945 Apr 2 2:00 return tz5 || (tz5=TZrules.Neth(-3600,"CE%sT")); if (ux>=-935017200) // from 1940 May 16 0:40 return tz4 || (tz4=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1025736032) // from 1937 Jul return tz3 || (tz3=TZrules.Neth(-1200,"NE%sT")); if (ux>=-2450996368) // from 1892 May return tz2 || (tz2=TZrules.Neth(-1168,"%s")); return tz1 || (tz1=Ruleset.Timezone(-1168,"LMT")); } } class Europe_Oslo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=315536400) // from 1980 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-781045200) // from 1945 Apr 2 2:00 return tz2 || (tz2=TZrules.Norway(-3600,"CE%sT")); if (ux>=-927504000) // from 1940 Aug 10 23:00 return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2366757780) // from 1895 return tz2 || (tz2=TZrules.Norway(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-2580,"LMT")); } } constant Arctic_Longyearbyen=Europe_Oslo; class Europe_Warsaw { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=915152400) // from 1999 return tz7 || (tz7=TZrules.EU(-3600,"CE%sT")); if (ux>=228880800) // from 1977 Apr 3 1:00 return tz6 || (tz6=TZrules.W_Eur(-3600,"CE%sT")); if (ux>=-796860000) // from 1944 Oct return tz5 || (tz5=TZrules.Poland(-3600,"CE%sT")); if (ux>=-931726800) // from 1940 Jun 23 2:00 return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1501711200) // from 1922 Jun return tz5 || (tz5=TZrules.Poland(-3600,"CE%sT")); if (ux>=-1618686000) // from 1918 Sep 16 3:00 return tz4 || (tz4=TZrules.Poland(-7200,"EE%sT")); if (ux>=-1717032240) // from 1915 Aug 5 return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2840145840) // from 1880 Warsaw Mean Time return tz2 || (tz2=Ruleset.Timezone(-5040,"WMT")); return tz1 || (tz1=Ruleset.Timezone(-5040,"LMT")); } } constant Poland=Europe_Warsaw; class Europe_Lisbon { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=828234000) // from 1996 Mar 31 1:00u return tz6 || (tz6=TZrules.EU(0,"WE%sT")); if (ux>=717555600) // from 1992 Sep 27 1:00s return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=433299600) // from 1983 Sep 25 1:00s return tz4 || (tz4=TZrules.W_Eur(0,"WE%sT")); if (ux>=212544000) // from 1976 Sep 26 1:00 return tz2 || (tz2=TZrules.Port(0,"WE%sT")); if (ux>=-118274400) // from 1966 Apr 3 2:00 return tz3 || (tz3=Ruleset.Timezone(-3600,"CET")); if (ux>=-1849562608) // from 1911 May 24 return tz2 || (tz2=TZrules.Port(0,"WE%sT")); if (ux>=-2713908208) // from 1884 Lisbon Mean Time return tz1 || (tz1=Ruleset.Timezone(2192,"LMT")); return tz1 || (tz1=Ruleset.Timezone(2192,"LMT")); } } constant Portugal=Europe_Lisbon; class Atlantic_Azores { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=733280400) // from 1993 Mar 28 1:00u return tz7 || (tz7=TZrules.EU(3600,"AZO%sT")); if (ux>=717559200) // from 1992 Sep 27 1:00s return tz6 || (tz6=TZrules.EU(0,"WE%sT")); if (ux>=433303200) // from 1983 Sep 25 1:00s return tz5 || (tz5=TZrules.W_Eur(3600,"AZO%sT")); if (ux>=-118281600) // from 1966 Apr 3 2:00 return tz4 || (tz4=TZrules.Port(3600,"AZO%sT")); if (ux>=-1849557900) // from 1911 May 24 Azores Time return tz3 || (tz3=TZrules.Port(7200,"AZO%sT")); if (ux>=-2713904240) // from 1884 Horta Mean Time return tz2 || (tz2=Ruleset.Timezone(6900,"HMT")); // Ponta Delgada return tz1 || (tz1=Ruleset.Timezone(6160,"LMT")); } } class Atlantic_Madeira { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=433299600) // from 1983 Sep 25 1:00s return tz5 || (tz5=TZrules.EU(0,"WE%sT")); if (ux>=-118278000) // from 1966 Apr 3 2:00 return tz4 || (tz4=TZrules.Port(0,"WE%sT")); if (ux>=-1849560720) // from 1911 May 24 Madeira Time return tz3 || (tz3=TZrules.Port(3600,"MAD%sT")); if (ux>=-2713906344) // from 1884 Funchal Mean Time return tz2 || (tz2=Ruleset.Timezone(4080,"FMT")); // Funchal return tz1 || (tz1=Ruleset.Timezone(4056,"LMT")); } } class Europe_Bucharest { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=852084000) // from 1997 return tz6 || (tz6=TZrules.EU(-7200,"EE%sT")); if (ux>=757389600) // from 1994 return tz5 || (tz5=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=662695200) // from 1991 return tz3 || (tz3=TZrules.Romania(-7200,"EE%sT")); if (ux>=354672000) // from 1981 Mar 29 2:00s return tz4 || (tz4=TZrules.C_Eur(-7200,"EE%sT")); if (ux>=-1213148664) // from 1931 Jul 24 return tz3 || (tz3=TZrules.Romania(-7200,"EE%sT")); if (ux>=-2469404664) // from 1891 Oct Bucharest MT return tz2 || (tz2=Ruleset.Timezone(-6264,"BMT")); return tz1 || (tz1=Ruleset.Timezone(-6264,"LMT")); } } class Europe_Kaliningrad { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=670374000) // from 1991 Mar 31 2:00s return tz5 || (tz5=TZrules.Russia(-7200,"EE%sT")); if (ux>=-757375200) // from 1946 return tz4 || (tz4=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-788914800) // from 1945 return tz3 || (tz3=TZrules.Poland(-7200,"CE%sT")); if (ux>=-2422056120) // from 1893 Apr return tz2 || (tz2=TZrules.C_Eur(-3600,"CE%sT")); return tz1 || (tz1=Ruleset.Timezone(-4920,"LMT")); } } class Europe_Moscow { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=695779200) // from 1992 Jan 19 2:00s return tz4 || (tz4=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=670374000) // from 1991 Mar 31 2:00s return tz6 || (tz6=TZrules.Russia(-7200,"EE%sT")); if (ux>=-1247536800) // from 1930 Jun 21 return tz4 || (tz4=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-1491166800) // from 1922 Oct return tz5 || (tz5=Ruleset.Timezone(-7200,"EET")); if (ux>=-1593797352) // from 1919 Jul 1 2:00 return tz4 || (tz4=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-1688265000) // from 1916 Jul 3 return tz3 || (tz3=TZrules.Russia(-9048,"%s")); if (ux>=-2840149820) // from 1880 Moscow Mean Time return tz2 || (tz2=Ruleset.Timezone(-9000,"MMT")); return tz1 || (tz1=Ruleset.Timezone(-9020,"LMT")); } } constant W_SU=Europe_Moscow; class Europe_Samara { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=687916800) // from 1991 Oct 20 3:00 Samara Time return tz6 || (tz6=TZrules.Russia(-14400,"SAM%sT")); if (ux>=686102400) // from 1991 Sep 29 2:00s return tz2 || (tz2=Ruleset.Timezone(-10800,"KUYT")); if (ux>=670374000) // from 1991 Mar 31 2:00s return tz5 || (tz5=TZrules.Russia(-7200,"KUY%sT")); if (ux>=606866400) // from 1989 Mar 26 2:00s return tz4 || (tz4=TZrules.Russia(-10800,"KUY%sT")); if (ux>=-1247540400) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-14400,"KUY%sT")); if (ux>=-1593825636) // from 1919 Jul 1 2:00 Kuybyshev return tz2 || (tz2=Ruleset.Timezone(-10800,"KUYT")); return tz1 || (tz1=Ruleset.Timezone(-12036,"LMT")); } } class Asia_Yekaterinburg { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=695772000) // from 1992 Jan 19 2:00s Yekaterinburg Time return tz5 || (tz5=TZrules.Russia(-18000,"YEK%sT")); if (ux>=670366800) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-14400,"SVE%sT")); if (ux>=-1247544000) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-18000,"SVE%sT")); if (ux>=-1592611344) // from 1919 Jul 15 4:00 Sverdlovsk Time return tz2 || (tz2=Ruleset.Timezone(-14400,"SVET")); return tz1 || (tz1=Ruleset.Timezone(-14544,"LMT")); } } class Asia_Omsk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=695768400) // from 1992 Jan 19 2:00s return tz3 || (tz3=TZrules.Russia(-21600,"OMS%sT")); if (ux>=670363200) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-18000,"OMS%sT")); if (ux>=-1247547600) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-21600,"OMS%sT")); if (ux>=-1582088016) // from 1919 Nov 14 Omsk TIme return tz2 || (tz2=Ruleset.Timezone(-18000,"OMST")); return tz1 || (tz1=Ruleset.Timezone(-17616,"LMT")); } } class Asia_Novosibirsk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=738144000) // from 1993 May 23 return tz4 || (tz4=TZrules.Russia(-21600,"NOV%sT")); if (ux>=695764800) // from 1992 Jan 19 2:00s says Shanks return tz3 || (tz3=TZrules.Russia(-25200,"NOV%sT")); if (ux>=670359600) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-21600,"NOV%sT")); if (ux>=-1247551200) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-25200,"NOV%sT")); if (ux>=-1579476700) // from 1919 Dec 14 6:00 Novosibirsk Time return tz2 || (tz2=Ruleset.Timezone(-21600,"NOVT")); return tz1 || (tz1=Ruleset.Timezone(-19900,"LMT")); } } class Asia_Krasnoyarsk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=695764800) // from 1992 Jan 19 2:00s return tz3 || (tz3=TZrules.Russia(-25200,"KRA%sT")); if (ux>=670359600) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-21600,"KRA%sT")); if (ux>=-1247551200) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-25200,"KRA%sT")); if (ux>=-1577513480) // from 1920 Jan 6 Krasnoyarsk Time return tz2 || (tz2=Ruleset.Timezone(-21600,"KRAT")); return tz1 || (tz1=Ruleset.Timezone(-22280,"LMT")); } } class Asia_Irkutsk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=695761200) // from 1992 Jan 19 2:00s return tz4 || (tz4=TZrules.Russia(-28800,"IRK%sT")); if (ux>=670356000) // from 1991 Mar 31 2:00s return tz5 || (tz5=TZrules.Russia(-25200,"IRK%sT")); if (ux>=-1247554800) // from 1930 Jun 21 return tz4 || (tz4=TZrules.Russia(-28800,"IRK%sT")); if (ux>=-1575874640) // from 1920 Jan 25 Irkutsk Time return tz3 || (tz3=Ruleset.Timezone(-25200,"IRKT")); if (ux>=-2840165840) // from 1880 Irkutsk Mean Time return tz2 || (tz2=Ruleset.Timezone(-25040,"IMT")); return tz1 || (tz1=Ruleset.Timezone(-25040,"LMT")); } } class Asia_Yakutsk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=695757600) // from 1992 Jan 19 2:00s return tz3 || (tz3=TZrules.Russia(-32400,"YAK%sT")); if (ux>=670352400) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-28800,"YAK%sT")); if (ux>=-1247558400) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-32400,"YAK%sT")); if (ux>=-1579423120) // from 1919 Dec 15 Yakutsk Time return tz2 || (tz2=Ruleset.Timezone(-28800,"YAKT")); return tz1 || (tz1=Ruleset.Timezone(-31120,"LMT")); } } class Asia_Vladivostok { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=695754000) // from 1992 Jan 19 2:00s return tz3 || (tz3=TZrules.Russia(-36000,"VLA%sT")); if (ux>=670348800) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-32400,"VLA%sST")); if (ux>=-1247562000) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-36000,"VLA%sT")); if (ux>=-1487321264) // from 1922 Nov 15 Vladivostok Time return tz2 || (tz2=Ruleset.Timezone(-32400,"VLAT")); return tz1 || (tz1=Ruleset.Timezone(-31664,"LMT")); } } class Asia_Magadan { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=695750400) // from 1992 Jan 19 2:00s return tz3 || (tz3=TZrules.Russia(-39600,"MAG%sT")); if (ux>=670345200) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-36000,"MAG%sT")); if (ux>=-1247565600) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-39600,"MAG%sT")); if (ux>=-1441188192) // from 1924 May 2 Magadan Time return tz2 || (tz2=Ruleset.Timezone(-36000,"MAGT")); return tz1 || (tz1=Ruleset.Timezone(-36192,"LMT")); } } class Asia_Kamchatka { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=695746800) // from 1992 Jan 19 2:00s return tz3 || (tz3=TZrules.Russia(-43200,"PET%sT")); if (ux>=670341600) // from 1991 Mar 31 2:00s return tz4 || (tz4=TZrules.Russia(-39600,"PET%sT")); if (ux>=-1247569200) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-43200,"PET%sT")); if (ux>=-1487759676) // from 1922 Nov 10 P-K Time return tz2 || (tz2=Ruleset.Timezone(-39600,"PETT")); return tz1 || (tz1=Ruleset.Timezone(-38076,"LMT")); } } class Asia_Anadyr { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=695746800) // from 1992 Jan 19 2:00s return tz4 || (tz4=TZrules.Russia(-43200,"ANA%sT")); if (ux>=670341600) // from 1991 Mar 31 2:00s return tz5 || (tz5=TZrules.Russia(-39600,"ANA%sT")); if (ux>=386420400) // from 1982 Apr 1 0:00s return tz4 || (tz4=TZrules.Russia(-43200,"ANA%sT")); if (ux>=-1247572800) // from 1930 Jun 21 return tz3 || (tz3=TZrules.Russia(-46800,"ANA%sT")); if (ux>=-1441194596) // from 1924 May 2 Anadyr Time return tz2 || (tz2=Ruleset.Timezone(-43200,"ANAT")); return tz1 || (tz1=Ruleset.Timezone(-42596,"LMT")); } } class Europe_Madrid { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=284000400) // from 1979 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-733881600) // from 1946 Sep 30 return tz3 || (tz3=TZrules.Spain(-3600,"CE%sT")); if (ux>=-2177451916) // from 1901 return tz2 || (tz2=TZrules.Spain(0,"WE%sT")); return tz1 || (tz1=Ruleset.Timezone(884,"LMT")); } } class Africa_Ceuta { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7; Ruleset.Timezone whatrule(int ux) { if (ux>=504918000) // from 1986 return tz7 || (tz7=TZrules.EU(-3600,"CE%sT")); if (ux>=448243200) // from 1984 Mar 16 return tz6 || (tz6=Ruleset.Timezone(-3600,"CET")); if (ux>=-1293840000) // from 1929 return tz5 || (tz5=TZrules.SpainAfrica(0,"WE%sT")); if (ux>=-1451692800) // from 1924 return tz4 || (tz4=TZrules.Spain(0,"WE%sT")); if (ux>=-1616810400) // from 1918 Oct 7 23:00 return tz2 || (tz2=Ruleset.Timezone(0,"WET")); if (ux>=-1630112400) // from 1918 May 6 23:00 return tz3 || (tz3=Ruleset.Timezone(-3600,"WEST")); if (ux>=-2177451524) // from 1901 return tz2 || (tz2=Ruleset.Timezone(0,"WET")); return tz1 || (tz1=Ruleset.Timezone(1276,"LMT")); } } class Atlantic_Canary { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=338947200) // from 1980 Sep 28 0:00s return tz5 || (tz5=TZrules.EU(0,"WE%sT")); if (ux>=323827200) // from 1980 Apr 6 0:00s return tz4 || (tz4=Ruleset.Timezone(-3600,"WEST")); if (ux>=-733874400) // from 1946 Sep 30 1:00 return tz3 || (tz3=Ruleset.Timezone(0,"WET")); if (ux>=-1509663504) // from 1922 Mar Canaries Time return tz2 || (tz2=Ruleset.Timezone(3600,"CANT")); // Las Palmas de Gran C. return tz1 || (tz1=Ruleset.Timezone(3696,"LMT")); } } class Europe_Stockholm { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=315529200) // from 1980 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=-1680487200) // from 1916 Sep 30 23:00s return tz3 || (tz3=Ruleset.Timezone(-3600,"CET")); if (ux>=-1695088800) // from 1916 Apr 14 23:00s return tz4 || (tz4=Ruleset.Timezone(-7200,"CEST")); if (ux>=-2208989532) // from 1900 Jan 1 1:00 return tz3 || (tz3=Ruleset.Timezone(-3600,"CET")); if (ux>=-2890257132) // from 1878 May 31 Stockholm MT return tz2 || (tz2=Ruleset.Timezone(-4332,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-4332,"LMT")); } } class Europe_Zurich { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=347158800) // from 1981 return tz4 || (tz4=TZrules.EU(-3600,"CE%sT")); if (ux>=-2385246584) // from 1894 Jun return tz3 || (tz3=TZrules.Swiss(-3600,"CE%sT")); if (ux>=-3827954048) // from 1848 Sep 12 Bern Mean Time return tz2 || (tz2=Ruleset.Timezone(-1784,"BMT")); return tz1 || (tz1=Ruleset.Timezone(-2048,"LMT")); } } class Europe_Istanbul { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=662695200) // from 1991 return tz6 || (tz6=TZrules.EU(-7200,"EE%sT")); if (ux>=504928800) // from 1986 return tz5 || (tz5=TZrules.C_Eur(-7200,"EE%sT")); if (ux>=482814000) // from 1985 Apr 20 return tz3 || (tz3=TZrules.Turkey(-7200,"EE%sT")); if (ux>=277268400) // from 1978 Oct 15 Turkey Time return tz4 || (tz4=TZrules.Turkey(-10800,"TR%sT")); if (ux>=-1869875816) // from 1910 Oct return tz3 || (tz3=TZrules.Turkey(-7200,"EE%sT")); if (ux>=-2840147752) // from 1880 Istanbul Mean Time? return tz2 || (tz2=Ruleset.Timezone(-7016,"IMT")); return tz1 || (tz1=Ruleset.Timezone(-6952,"LMT")); } } constant Turkey=Europe_Istanbul; constant Asia_Istanbul=Europe_Istanbul; class Europe_Kiev { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=788925600) // from 1995 return tz8 || (tz8=TZrules.EU(-7200,"EE%sT")); if (ux>=694216800) // from 1992 return tz7 || (tz7=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=646786800) // from 1990 Jul 1 2:00 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=631162800) // from 1990 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-825375600) // from 1943 Nov 6 return tz6 || (tz6=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-892522800) // from 1941 Sep 20 return tz5 || (tz5=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1247536800) // from 1930 Jun 21 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1441159324) // from 1924 May 2 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-2840148124) // from 1880 Kiev Mean Time return tz2 || (tz2=Ruleset.Timezone(-7324,"KMT")); return tz1 || (tz1=Ruleset.Timezone(-7324,"LMT")); } } class Europe_Uzhgorod { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=788925600) // from 1995 return tz9 || (tz9=TZrules.EU(-7200,"EE%sT")); if (ux>=694216800) // from 1992 return tz8 || (tz8=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=670384800) // from 1991 Mar 31 3:00 return tz7 || (tz7=Ruleset.Timezone(-7200,"EET")); if (ux>=646786800) // from 1990 Jul 1 2:00 return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); if (ux>=631162800) // from 1990 return tz6 || (tz6=Ruleset.Timezone(-10800,"MSK")); if (ux>=-773456400) // from 1945 Jun 29 return tz5 || (tz5=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-794714400) // from 1944 Oct 26 return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); if (ux>=-796860000) // from 1944 Oct return tz4 || (tz4=Ruleset.Timezone(-7200,"CEST")); if (ux>=-946774800) // from 1940 return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2500939752) // from 1890 Oct return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); return tz1 || (tz1=Ruleset.Timezone(-5352,"LMT")); } } class Europe_Zaporozhye { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=788925600) // from 1995 return tz8 || (tz8=TZrules.EU(-7200,"EE%sT")); if (ux>=670395600) // from 1991 Mar 31 2:00 return tz7 || (tz7=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=-826412400) // from 1943 Oct 25 return tz6 || (tz6=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-894769200) // from 1941 Aug 25 return tz5 || (tz5=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1247536800) // from 1930 Jun 21 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1441160400) // from 1924 May 2 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-2840149240) // from 1880 Central Ukraine T return tz2 || (tz2=Ruleset.Timezone(-8400,"CUT")); return tz1 || (tz1=Ruleset.Timezone(-8440,"LMT")); } } class Europe_Simferopol { inherit TZHistory; Ruleset.Timezone tz1,tz10,tz2,tz3,tz4,tz5,tz6,tz7,tz8,tz9; Ruleset.Timezone whatrule(int ux) { if (ux>=857185200) // from 1997 Mar lastSun 1:00u return tz10 || (tz10=TZrules.EU(-7200,"EE%sT")); if (ux>=846374400) // from 1996 Oct 27 3:00s return tz6 || (tz6=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=828230400) // from 1996 Mar 31 3:00s return tz9 || (tz9=Ruleset.Timezone(-14400,"MSD")); if (ux>=767761200) // from 1994 May return tz8 || (tz8=TZrules.E_Eur(-10800,"MSK/MSD")); if (ux>=694216800) // from 1992 return tz7 || (tz7=TZrules.E_Eur(-7200,"EE%sT")); if (ux>=646786800) // from 1990 Jul 1 2:00 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=631162800) // from 1990 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-811634400) // from 1944 Apr 13 return tz6 || (tz6=TZrules.Russia(-10800,"MSK/MSD")); if (ux>=-888894000) // from 1941 Nov return tz5 || (tz5=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-1247536800) // from 1930 Jun 21 return tz4 || (tz4=Ruleset.Timezone(-10800,"MSK")); if (ux>=-1441160160) // from 1924 May 2 return tz3 || (tz3=Ruleset.Timezone(-7200,"EET")); if (ux>=-2840148984) // from 1880 Simferopol Mean T return tz2 || (tz2=Ruleset.Timezone(-8160,"SMT")); return tz1 || (tz1=Ruleset.Timezone(-8184,"LMT")); } } class Europe_Belgrade { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=407199600) // from 1982 Nov 27 return tz5 || (tz5=TZrules.EU(-3600,"CE%sT")); if (ux>=-766623600) // from 1945 Sep 16 2:00s return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); if (ux>=-777942000) // from 1945 May 8 2:00s return tz4 || (tz4=Ruleset.Timezone(-7200,"CEST")); if (ux>=-905824800) // from 1941 Apr 18 23:00 return tz3 || (tz3=TZrules.C_Eur(-3600,"CE%sT")); if (ux>=-2713915320) // from 1884 return tz2 || (tz2=Ruleset.Timezone(-3600,"CET")); return tz1 || (tz1=Ruleset.Timezone(-4920,"LMT")); } } constant Europe_Ljubljana=Europe_Belgrade; constant Europe_Sarajevo=Europe_Belgrade; constant Europe_Skopje=Europe_Belgrade; constant Europe_Zagreb=Europe_Belgrade; class America_New_York { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-94712400) // from 1967 return tz2 || (tz2=TZrules.US(18000,"E%sT")); if (ux>=-757400400) // from 1946 return tz3 || (tz3=TZrules.NYC(18000,"E%sT")); if (ux>=-883630800) // from 1942 return tz2 || (tz2=TZrules.US(18000,"E%sT")); if (ux>=-1577941200) // from 1920 return tz3 || (tz3=TZrules.NYC(18000,"E%sT")); if (ux>=-2717651038) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(18000,"E%sT")); return tz1 || (tz1=Ruleset.Timezone(17762,"LMT")); } } constant US_Eastern=America_New_York; constant EST5EDT=America_New_York; class America_Chicago { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-94716000) // from 1967 return tz2 || (tz2=TZrules.US(21600,"C%sT")); if (ux>=-757404000) // from 1946 return tz3 || (tz3=TZrules.Chicago(21600,"C%sT")); if (ux>=-883634400) // from 1942 return tz2 || (tz2=TZrules.US(21600,"C%sT")); if (ux>=-1045414800) // from 1936 Nov 15 2:00 return tz3 || (tz3=TZrules.Chicago(21600,"C%sT")); if (ux>=-1067832000) // from 1936 Mar 1 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-1577944800) // from 1920 return tz3 || (tz3=TZrules.Chicago(21600,"C%sT")); if (ux>=-2717647764) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(21036,"LMT")); } } constant US_Central=America_Chicago; constant CST6CDT=America_Chicago; class America_Denver { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-94719600) // from 1967 return tz2 || (tz2=TZrules.US(25200,"M%sT")); if (ux>=-757407600) // from 1946 return tz3 || (tz3=TZrules.Denver(25200,"M%sT")); if (ux>=-883638000) // from 1942 return tz2 || (tz2=TZrules.US(25200,"M%sT")); if (ux>=-1577948400) // from 1920 return tz3 || (tz3=TZrules.Denver(25200,"M%sT")); if (ux>=-2717643604) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(25196,"LMT")); } } constant Navajo=America_Denver; constant US_Mountain=America_Denver; constant America_Shiprock=America_Denver; constant MST7MDT=America_Denver; class America_Los_Angeles { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-94723200) // from 1967 return tz2 || (tz2=TZrules.US(28800,"P%sT")); if (ux>=-757411200) // from 1946 return tz3 || (tz3=TZrules.CA(28800,"P%sT")); if (ux>=-2717640422) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(28800,"P%sT")); return tz1 || (tz1=Ruleset.Timezone(28378,"LMT")); } } constant US_Pacific=America_Los_Angeles; constant PST8PDT=America_Los_Angeles; constant US_Pacific_New=America_Los_Angeles; class America_Juneau { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=436302000) // from 1983 Oct 30 2:00 return tz4 || (tz4=TZrules.US(32400,"AK%sT")); if (ux>=-31507200) // from 1969 return tz3 || (tz3=TZrules.US(28800,"P%sT")); if (ux>=-757411200) // from 1946 return tz2 || (tz2=Ruleset.Timezone(28800,"PST")); if (ux>=-883584000) // from 1942 return tz3 || (tz3=TZrules.US(28800,"P%sT")); if (ux>=-2188954939) // from 1900 Aug 20 12:00 return tz2 || (tz2=Ruleset.Timezone(28800,"PST")); return tz1 || (tz1=Ruleset.Timezone(32261,"LMT")); } } class America_Yakutat { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=436298400) // from 1983 Oct 30 2:00 return tz4 || (tz4=TZrules.US(32400,"AK%sT")); if (ux>=-31503600) // from 1969 return tz3 || (tz3=TZrules.US(32400,"Y%sT")); if (ux>=-757414800) // from 1946 return tz2 || (tz2=Ruleset.Timezone(32400,"YST")); if (ux>=-883580400) // from 1942 return tz3 || (tz3=TZrules.US(32400,"Y%sT")); if (ux>=-2188953665) // from 1900 Aug 20 12:00 return tz2 || (tz2=Ruleset.Timezone(32400,"YST")); return tz1 || (tz1=Ruleset.Timezone(33535,"LMT")); } } class America_Anchorage { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=436294800) // from 1983 Oct 30 2:00 return tz6 || (tz6=TZrules.US(32400,"AK%sT")); if (ux>=-31500000) // from 1969 return tz5 || (tz5=TZrules.US(36000,"AH%sT")); if (ux>=-86882400) // from 1967 Apr return tz4 || (tz4=Ruleset.Timezone(36000,"AHST")); if (ux>=-757418400) // from 1946 return tz2 || (tz2=Ruleset.Timezone(36000,"CAT")); if (ux>=-883576800) // from 1942 return tz3 || (tz3=TZrules.US(36000,"CAT/CAWT")); if (ux>=-2188951224) // from 1900 Aug 20 12:00 return tz2 || (tz2=Ruleset.Timezone(36000,"CAT")); return tz1 || (tz1=Ruleset.Timezone(35976,"LMT")); } } constant US_Alaska=America_Anchorage; class America_Nome { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=436291200) // from 1983 Oct 30 2:00 return tz6 || (tz6=TZrules.US(32400,"AK%sT")); if (ux>=-31496400) // from 1969 return tz5 || (tz5=TZrules.US(39600,"B%sT")); if (ux>=-86878800) // from 1967 Apr return tz4 || (tz4=Ruleset.Timezone(39600,"BST")); if (ux>=-757422000) // from 1946 return tz2 || (tz2=Ruleset.Timezone(39600,"NST")); if (ux>=-883573200) // from 1942 return tz3 || (tz3=TZrules.US(39600,"N%sT")); if (ux>=-2188947502) // from 1900 Aug 20 12:00 return tz2 || (tz2=Ruleset.Timezone(39600,"NST")); return tz1 || (tz1=Ruleset.Timezone(39698,"LMT")); } } class America_Adak { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=436291200) // from 1983 Oct 30 2:00 return tz6 || (tz6=TZrules.US(36000,"HA%sT")); if (ux>=-31496400) // from 1969 return tz5 || (tz5=TZrules.US(39600,"B%sT")); if (ux>=-86878800) // from 1967 Apr return tz4 || (tz4=Ruleset.Timezone(39600,"BST")); if (ux>=-757422000) // from 1946 return tz2 || (tz2=Ruleset.Timezone(39600,"NST")); if (ux>=-883573200) // from 1942 return tz3 || (tz3=TZrules.US(39600,"N%sT")); if (ux>=-2188944802) // from 1900 Aug 20 12:00 return tz2 || (tz2=Ruleset.Timezone(39600,"NST")); return tz1 || (tz1=Ruleset.Timezone(42398,"LMT")); } } constant America_Atka=America_Adak; constant US_Aleutian=America_Adak; class Pacific_Honolulu { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=-712225800) // from 1947 Jun 8 2:00 return tz5 || (tz5=Ruleset.Timezone(36000,"HST")); if (ux>=-1155472200) // from 1933 May 21 2:00 return tz4 || (tz4=TZrules.US(37800,"H%sT")); if (ux>=-1157283000) // from 1933 Apr 30 2:00 return tz3 || (tz3=Ruleset.Timezone(34200,"HDT")); if (ux>=-2208907714) // from 1900 Jan 1 12:00 return tz2 || (tz2=Ruleset.Timezone(37800,"HST")); return tz1 || (tz1=Ruleset.Timezone(37886,"LMT")); } } constant US_Hawaii=Pacific_Honolulu; constant HST=Pacific_Honolulu; class America_Phoenix { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-63183600) // from 1968 return tz3 || (tz3=Ruleset.Timezone(25200,"MST")); if (ux>=-94669200) // from 1967 return tz2 || (tz2=TZrules.US(25200,"M%sT")); if (ux>=-796888740) // from 1944 Oct 1 00:01 return tz3 || (tz3=Ruleset.Timezone(25200,"MST")); if (ux>=-813949140) // from 1944 Mar 17 00:01 return tz2 || (tz2=TZrules.US(25200,"M%sT")); if (ux>=-820562340) // from 1944 Jan 1 00:01 return tz3 || (tz3=Ruleset.Timezone(25200,"MST")); if (ux>=-2717641902) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(26898,"LMT")); } } constant US_Arizona=America_Phoenix; constant MST=America_Phoenix; class America_Boise { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=129114000) // from 1974 Feb 3 2:00 return tz3 || (tz3=TZrules.US(25200,"M%sT")); if (ux>=126205200) // from 1974 return tz4 || (tz4=Ruleset.Timezone(25200,"MST")); if (ux>=-1471845600) // from 1923 May 13 2:00 return tz3 || (tz3=TZrules.US(25200,"M%sT")); if (ux>=-2717640911) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(28800,"P%sT")); return tz1 || (tz1=Ruleset.Timezone(27889,"LMT")); } } class America_Indianapolis { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=31518000) // from 1971 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-31518000) // from 1969 return tz6 || (tz6=TZrules.US(18000,"E%sT")); if (ux>=-368640000) // from 1958 Apr 27 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-386787600) // from 1957 Sep 29 2:00 return tz5 || (tz5=Ruleset.Timezone(21600,"CST")); if (ux>=-463636800) // from 1955 Apr 24 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-757404000) // from 1946 return tz3 || (tz3=TZrules.Indianapolis(21600,"C%sT")); if (ux>=-883634400) // from 1942 return tz2 || (tz2=TZrules.US(21600,"C%sT")); if (ux>=-1577944800) // from 1920 return tz3 || (tz3=TZrules.Indianapolis(21600,"C%sT")); if (ux>=-2717648122) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(20678,"LMT")); } } constant America_Fort_Wayne=America_Indianapolis; constant US_East_Indiana=America_Indianapolis; constant America_Indiana_Indianapolis=America_Indianapolis; constant EST=America_Indianapolis; class America_Indiana_Marengo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=189284400) // from 1976 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=152089200) // from 1974 Oct 27 2:00 return tz5 || (tz5=TZrules.US(18000,"E%sT")); if (ux>=126651600) // from 1974 Jan 6 2:00 return tz6 || (tz6=Ruleset.Timezone(18000,"CDT")); if (ux>=-31518000) // from 1969 return tz5 || (tz5=TZrules.US(18000,"E%sT")); if (ux>=-273729600) // from 1961 Apr 30 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-599637600) // from 1951 return tz3 || (tz3=TZrules.Marengo(21600,"C%sT")); if (ux>=-2717648077) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(20723,"LMT")); } } class America_Indiana_Knox { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=688510800) // from 1991 Oct 27 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-195066000) // from 1963 Oct 27 2:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); if (ux>=-242280000) // from 1962 Apr 29 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-725868000) // from 1947 return tz3 || (tz3=TZrules.Starke(21600,"C%sT")); if (ux>=-2717648010) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(20790,"LMT")); } } constant America_Knox_IN=America_Indiana_Knox; constant US_Indiana_Starke=America_Indiana_Knox; class America_Indiana_Vevay { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=94676400) // from 1973 return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=-31518000) // from 1969 return tz4 || (tz4=TZrules.US(18000,"E%sT")); if (ux>=-495086400) // from 1954 Apr 25 2:00 return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=-2717648384) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(20416,"LMT")); } } class America_Louisville { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=152089200) // from 1974 Oct 27 2:00 return tz5 || (tz5=TZrules.US(18000,"E%sT")); if (ux>=126651600) // from 1974 Jan 6 2:00 return tz6 || (tz6=Ruleset.Timezone(18000,"CDT")); if (ux>=-63140400) // from 1968 return tz5 || (tz5=TZrules.US(18000,"E%sT")); if (ux>=-266468400) // from 1961 Jul 23 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-757404000) // from 1946 return tz3 || (tz3=TZrules.Louisville(21600,"C%sT")); if (ux>=-883634400) // from 1942 return tz2 || (tz2=TZrules.US(21600,"C%sT")); if (ux>=-1546322400) // from 1921 return tz3 || (tz3=TZrules.Louisville(21600,"C%sT")); if (ux>=-2717648218) // from 1883 Nov 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(20582,"LMT")); } } class America_Detroit { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=167814000) // from 1975 Apr 27 2:00 return tz4 || (tz4=TZrules.US(18000,"E%sT")); if (ux>=157748400) // from 1975 return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=94676400) // from 1973 return tz4 || (tz4=TZrules.US(18000,"E%sT")); if (ux>=-757400400) // from 1946 return tz5 || (tz5=TZrules.Detroit(18000,"E%sT")); if (ux>=-883594800) // from 1942 return tz4 || (tz4=TZrules.US(18000,"E%sT")); if (ux>=-1724083200) // from 1915 May 15 2:00 return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=-2051202469) // from 1905 return tz2 || (tz2=Ruleset.Timezone(21600,"CST")); return tz1 || (tz1=Ruleset.Timezone(19931,"LMT")); } } constant US_Michigan=America_Detroit; class America_Menominee { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=104914800) // from 1973 Apr 29 2:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); if (ux>=-21528000) // from 1969 Apr 27 2:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-757404000) // from 1946 return tz3 || (tz3=TZrules.Menominee(21600,"C%sT")); if (ux>=-2659759773) // from 1885 Sep 18 12:00 return tz2 || (tz2=TZrules.US(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(21027,"LMT")); } } class America_St_Johns { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1096947052) // from 1935 Mar 30 return tz3 || (tz3=TZrules.StJohns(12600,"N%sT")); if (ux>=-2713897748) // from 1884 return tz2 || (tz2=TZrules.StJohns(12652,"N%sT")); return tz1 || (tz1=Ruleset.Timezone(12652,"LMT")); } } constant Canada_Newfoundland=America_St_Johns; class America_Goose_Bay { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=-119928600) // from 1966 Mar 15 2:00 return tz6 || (tz6=TZrules.StJohns(14400,"A%sT")); if (ux>=-1072989000) // from 1936 return tz5 || (tz5=TZrules.StJohns(12600,"N%sT")); if (ux>=-1096921748) // from 1935 Mar 30 return tz4 || (tz4=Ruleset.Timezone(12600,"NST")); if (ux>=-1609471852) // from 1919 return tz3 || (tz3=Ruleset.Timezone(12652,"NST")); if (ux>=-2713895900) // from 1884 return tz2 || (tz2=TZrules.StJohns(12652,"NST")); // Happy Valley-Goose Bay return tz1 || (tz1=Ruleset.Timezone(14500,"LMT")); } } class America_Halifax { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2131645536) // from 1902 Jun 15 return tz2 || (tz2=TZrules.Halifax(14400,"A%sT")); return tz1 || (tz1=Ruleset.Timezone(15264,"LMT")); } } constant Canada_Atlantic=America_Halifax; class America_Glace_Bay { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=63086400) // from 1972 return tz3 || (tz3=TZrules.Halifax(14400,"A%sT")); if (ux>=-504936000) // from 1954 return tz4 || (tz4=Ruleset.Timezone(14400,"AST")); if (ux>=-536472000) // from 1953 return tz3 || (tz3=TZrules.Halifax(14400,"A%sT")); if (ux>=-2131646412) // from 1902 Jun 15 return tz2 || (tz2=TZrules.Canada(14400,"A%sT")); return tz1 || (tz1=Ruleset.Timezone(14388,"LMT")); } } class America_Montreal { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2713892744) // from 1884 return tz2 || (tz2=TZrules.Mont(18000,"E%sT")); return tz1 || (tz1=Ruleset.Timezone(17656,"LMT")); } } constant Canada_Eastern=America_Montreal; class America_Thunder_Bay { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=126248400) // from 1974 return tz2 || (tz2=TZrules.Canada(18000,"E%sT")); if (ux>=94676400) // from 1973 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-18000) // from 1970 return tz3 || (tz3=TZrules.Mont(18000,"E%sT")); if (ux>=-2366733780) // from 1895 return tz2 || (tz2=TZrules.Canada(18000,"E%sT")); return tz1 || (tz1=Ruleset.Timezone(21420,"LMT")); } } class America_Nipigon { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2366734016) // from 1895 return tz2 || (tz2=TZrules.Canada(18000,"E%sT")); return tz1 || (tz1=Ruleset.Timezone(21184,"LMT")); } } class America_Rainy_River { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2366732524) // from 1895 return tz2 || (tz2=TZrules.Canada(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(22676,"LMT")); } } class America_Winnipeg { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2602258284) // from 1887 Jul 16 return tz2 || (tz2=TZrules.Winn(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(23316,"LMT")); } } constant Canada_Central=America_Winnipeg; class America_Regina { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-307782000) // from 1960 Apr lastSun 2:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-2030202084) // from 1905 Sep return tz2 || (tz2=TZrules.Regina(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(25116,"LMT")); } } constant Canada_East_Saskatchewan=America_Regina; constant Canada_Saskatchewan=America_Regina; class America_Swift_Current { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=70909200) // from 1972 Apr lastSun 2:00 return tz5 || (tz5=Ruleset.Timezone(21600,"CST")); if (ux>=-631177200) // from 1950 return tz4 || (tz4=TZrules.Swift(25200,"M%sT")); if (ux>=-749631600) // from 1946 Apr lastSun 2:00 return tz3 || (tz3=TZrules.Regina(25200,"M%sT")); if (ux>=-2030201320) // from 1905 Sep return tz2 || (tz2=TZrules.Canada(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(25880,"LMT")); } } class America_Edmonton { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1998663968) // from 1906 Sep return tz2 || (tz2=TZrules.Edm(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(27232,"LMT")); } } constant Canada_Mountain=America_Edmonton; class America_Vancouver { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2713880852) // from 1884 return tz2 || (tz2=TZrules.Vanc(28800,"P%sT")); return tz1 || (tz1=Ruleset.Timezone(29548,"LMT")); } } constant Canada_Pacific=America_Vancouver; class America_Dawson_Creek { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=83962800) // from 1972 Aug 30 2:00 return tz4 || (tz4=Ruleset.Timezone(25200,"MST")); if (ux>=-725875200) // from 1947 return tz3 || (tz3=TZrules.Vanc(28800,"P%sT")); if (ux>=-2713881544) // from 1884 return tz2 || (tz2=TZrules.Canada(28800,"P%sT")); return tz1 || (tz1=Ruleset.Timezone(28856,"LMT")); } } class America_Pangnirtung { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=941320800) // from 1999 Oct 31 2:00 return tz4 || (tz4=TZrules.Canada(21600,"C%sT")); if (ux>=796680000) // from 1995 Apr Sun>=1 2:00 return tz3 || (tz3=TZrules.Canada(18000,"E%sT")); if (ux>=-2713894624) // from 1884 return tz2 || (tz2=TZrules.NT_YK(14400,"A%sT")); return tz1 || (tz1=Ruleset.Timezone(15776,"LMT")); } } class America_Iqaluit { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=941320800) // from 1999 Oct 31 2:00 return tz3 || (tz3=TZrules.Canada(21600,"C%sT")); if (ux>=-2713893968) // from 1884 return tz2 || (tz2=TZrules.NT_YK(18000,"E%sT")); // Frobisher Bay before 1987 return tz1 || (tz1=Ruleset.Timezone(16432,"LMT")); } } class America_Rankin_Inlet { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2713888280) // from 1884 return tz2 || (tz2=TZrules.NT_YK(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(22120,"LMT")); } } class America_Cambridge_Bay { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=941313600) // from 1999 Oct 31 2:00 return tz3 || (tz3=TZrules.Canada(21600,"C%sT")); if (ux>=-2713885180) // from 1884 return tz2 || (tz2=TZrules.NT_YK(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(25220,"LMT")); } } class America_Yellowknife { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2713882956) // from 1884 return tz2 || (tz2=TZrules.NT_YK(25200,"M%sT")); return tz1 || (tz1=Ruleset.Timezone(27444,"LMT")); } } class America_Inuvik { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=291744000) // from 1979 Apr lastSun 2:00 return tz3 || (tz3=TZrules.NT_YK(25200,"M%sT")); if (ux>=-2713878360) // from 1884 return tz2 || (tz2=TZrules.NT_YK(28800,"P%sT")); return tz1 || (tz1=Ruleset.Timezone(32040,"LMT")); } } class America_Whitehorse { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-110617200) // from 1966 Jul 1 2:00 return tz3 || (tz3=TZrules.NT_YK(28800,"P%sT")); if (ux>=-2188997988) // from 1900 Aug 20 return tz2 || (tz2=TZrules.NT_YK(32400,"Y%sT")); return tz1 || (tz1=Ruleset.Timezone(32412,"LMT")); } } constant Canada_Yukon=America_Whitehorse; class America_Dawson { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=120582000) // from 1973 Oct 28 0:00 return tz3 || (tz3=TZrules.NT_YK(28800,"P%sT")); if (ux>=-2188996940) // from 1900 Aug 20 return tz2 || (tz2=TZrules.NT_YK(32400,"Y%sT")); return tz1 || (tz1=Ruleset.Timezone(33460,"LMT")); } } class America_Cancun { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=902008800) // from 1998 Aug 2 2:00 return tz3 || (tz3=TZrules.Mexico(21600,"C%sT")); if (ux>=875646000) // from 1997 Oct lastSun 2:00 return tz4 || (tz4=TZrules.Mexico(18000,"E%sT")); if (ux>=820476000) // from 1996 return tz3 || (tz3=TZrules.Mexico(21600,"C%sT")); if (ux>=-1514743200) // from 1922 Jan 1 0:12:56 return tz2 || (tz2=Ruleset.Timezone(21600,"CST")); return tz1 || (tz1=Ruleset.Timezone(20824,"LMT")); } } class America_Mexico_City { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1191434400) // from 1932 Mar 30 23:00 return tz4 || (tz4=TZrules.Mexico(21600,"C%sT")); if (ux>=-1207159200) // from 1931 Oct return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1220292000) // from 1931 May 1 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1234807200) // from 1930 Nov 15 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1343066400) // from 1927 Jun 10 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1514739600) // from 1922 Jan 1 0:23:24 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); return tz1 || (tz1=Ruleset.Timezone(23796,"LMT")); } } constant Mexico_General=America_Mexico_City; class America_Chihuahua { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=891410400) // from 1998 Apr Sun>=1 3:00 return tz5 || (tz5=TZrules.Mexico(25200,"M%sT")); if (ux>=883591200) // from 1998 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=820476000) // from 1996 return tz4 || (tz4=TZrules.Mexico(21600,"C%sT")); if (ux>=-1191434400) // from 1932 Mar 30 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1207159200) // from 1931 Oct return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1220292000) // from 1931 May 1 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1234807200) // from 1930 Nov 15 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1343066400) // from 1927 Jun 10 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1514739600) // from 1921 Dec 31 23:55:40 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); return tz1 || (tz1=Ruleset.Timezone(25460,"LMT")); } } class America_Hermosillo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=915123600) // from 1999 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=28800) // from 1970 return tz5 || (tz5=TZrules.Mexico(25200,"M%sT")); if (ux>=-661539600) // from 1949 Jan 14 return tz4 || (tz4=Ruleset.Timezone(28800,"PST")); if (ux>=-875815200) // from 1942 Apr return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1191434400) // from 1932 Mar 30 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1207159200) // from 1931 Oct return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1220292000) // from 1931 May 1 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1234807200) // from 1930 Nov 15 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1343066400) // from 1927 Jun 10 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1514739600) // from 1921 Dec 31 23:36:08 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); return tz1 || (tz1=Ruleset.Timezone(26632,"LMT")); } } class America_Mazatlan { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=28800) // from 1970 return tz5 || (tz5=TZrules.Mexico(25200,"M%sT")); if (ux>=-661539600) // from 1949 Jan 14 return tz4 || (tz4=Ruleset.Timezone(28800,"PST")); if (ux>=-875815200) // from 1942 Apr return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1191434400) // from 1932 Mar 30 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1207159200) // from 1931 Oct return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1220292000) // from 1931 May 1 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1234807200) // from 1930 Nov 15 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); if (ux>=-1343066400) // from 1927 Jun 10 23:00 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-1514739600) // from 1921 Dec 31 23:54:20 return tz2 || (tz2=Ruleset.Timezone(25200,"MST")); return tz1 || (tz1=Ruleset.Timezone(25540,"LMT")); } } constant Mexico_BajaSur=America_Mazatlan; class America_Tijuana { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=820425600) // from 1996 return tz6 || (tz6=TZrules.Mexico(28800,"P%sT")); if (ux>=189273600) // from 1976 return tz5 || (tz5=TZrules.US(28800,"P%sT")); if (ux>=-661539600) // from 1949 Jan 14 return tz4 || (tz4=TZrules.BajaN(28800,"P%sT")); if (ux>=-875808000) // from 1942 Apr return tz3 || (tz3=Ruleset.Timezone(25200,"MST")); if (ux>=-1234717200) // from 1930 Nov 16 return tz2 || (tz2=Ruleset.Timezone(28800,"PST")); if (ux>=-1343062800) // from 1927 Jun 10 23:00 return tz3 || (tz3=Ruleset.Timezone(25200,"MST")); if (ux>=-1514736000) // from 1922 Jan 1 0:11:56 return tz2 || (tz2=Ruleset.Timezone(28800,"PST")); return tz1 || (tz1=Ruleset.Timezone(28084,"LMT")); } } constant America_Ensenada=America_Tijuana; constant Mexico_BajaNorte=America_Tijuana; class America_Anguilla { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1825098464) // from 1912 Mar 2 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); return tz1 || (tz1=Ruleset.Timezone(15136,"LMT")); } } class America_Antigua { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-599598000) // from 1951 return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=-1825098768) // from 1912 Mar 2 return tz2 || (tz2=Ruleset.Timezone(18000,"EST")); return tz1 || (tz1=Ruleset.Timezone(14832,"LMT")); } } class America_Nassau { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1825095036) // from 1912 Mar 2 return tz2 || (tz2=TZrules.Bahamas(18000,"E%sT")); return tz1 || (tz1=Ruleset.Timezone(18564,"LMT")); } } class America_Barbados { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1199217692) // from 1932 return tz3 || (tz3=TZrules.Barb(14400,"A%sT")); if (ux>=-1451678492) // from 1924 Bridgetown Mean Time return tz2 || (tz2=Ruleset.Timezone(14308,"BMT")); // Bridgetown return tz1 || (tz1=Ruleset.Timezone(14308,"LMT")); } } class America_Belize { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1822500432) // from 1912 Apr return tz2 || (tz2=TZrules.Belize(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(21168,"LMT")); } } class Atlantic_Bermuda { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=136360800) // from 1974 Apr 28 2:00 return tz3 || (tz3=TZrules.Bahamas(14400,"A%sT")); if (ux>=-1262281256) // from 1930 Jan 1 2:00 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Hamilton return tz1 || (tz1=Ruleset.Timezone(15544,"LMT")); } } class America_Cayman { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1827687168) // from 1912 Feb return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=-2524502068) // from 1890 Kingston Mean Time return tz2 || (tz2=Ruleset.Timezone(18432,"KMT")); // Georgetown return tz1 || (tz1=Ruleset.Timezone(19532,"LMT")); } } class America_Costa_Rica { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1545071020) // from 1921 Jan 15 return tz3 || (tz3=TZrules.CR(21600,"C%sT")); if (ux>=-2524501420) // from 1890 San Jose Mean Time return tz2 || (tz2=Ruleset.Timezone(20180,"SJMT")); // San Jose return tz1 || (tz1=Ruleset.Timezone(20180,"LMT")); } } class America_Havana { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1402813824) // from 1925 Jul 19 12:00 return tz3 || (tz3=TZrules.Cuba(18000,"C%sT")); if (ux>=-2524501832) // from 1890 Havana MT return tz2 || (tz2=Ruleset.Timezone(19776,"HMT")); return tz1 || (tz1=Ruleset.Timezone(19768,"LMT")); } } constant Cuba=America_Havana; class America_Dominica { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846266804) // from 1911 Jul 1 0:01 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Roseau return tz1 || (tz1=Ruleset.Timezone(14736,"LMT")); } } class America_Santo_Domingo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=152046000) // from 1974 Oct 27 return tz4 || (tz4=Ruleset.Timezone(14400,"AST")); if (ux>=-1159773600) // from 1933 Apr 1 12:00 return tz3 || (tz3=TZrules.DR(18000,"E%sT")); if (ux>=-2524504824) // from 1890 S. Dom. MT return tz2 || (tz2=Ruleset.Timezone(16800,"SDMT")); return tz1 || (tz1=Ruleset.Timezone(16776,"LMT")); } } class America_El_Salvador { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1546279392) // from 1921 return tz2 || (tz2=TZrules.Salv(21600,"C%sT")); // San Salvador return tz1 || (tz1=Ruleset.Timezone(21408,"LMT")); } } class America_Grenada { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846266780) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // St George's return tz1 || (tz1=Ruleset.Timezone(14820,"LMT")); } } class America_Guadeloupe { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1848254032) // from 1911 Jun 8 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Pointe a Pitre return tz1 || (tz1=Ruleset.Timezone(14768,"LMT")); } } class America_Guatemala { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1617040676) // from 1918 Oct 5 return tz2 || (tz2=TZrules.Guat(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(21724,"LMT")); } } class America_Port_au_Prince { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1670483460) // from 1917 Jan 24 12:00 return tz3 || (tz3=TZrules.Haiti(18000,"E%sT")); if (ux>=-2524504240) // from 1890 P-a-P MT return tz2 || (tz2=Ruleset.Timezone(17340,"PPMT")); return tz1 || (tz1=Ruleset.Timezone(17360,"LMT")); } } class America_Tegucigalpa { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1538503868) // from 1921 Apr return tz2 || (tz2=TZrules.Salv(21600,"C%sT")); return tz1 || (tz1=Ruleset.Timezone(20932,"LMT")); } } class America_Jamaica { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=441745200) // from 1984 return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=136364400) // from 1974 Apr 28 2:00 return tz4 || (tz4=TZrules.US(18000,"E%sT")); if (ux>=-1827687168) // from 1912 Feb return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=-2524503168) // from 1890 Kingston Mean Time return tz2 || (tz2=Ruleset.Timezone(18432,"KMT")); // Kingston return tz1 || (tz1=Ruleset.Timezone(18432,"LMT")); } } constant Jamaica=America_Jamaica; class America_Martinique { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=338958000) // from 1980 Sep 28 return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=323841600) // from 1980 Apr 6 return tz4 || (tz4=Ruleset.Timezone(10800,"ADT")); if (ux>=-1851537360) // from 1911 May return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=-2524506940) // from 1890 Fort-de-France MT return tz2 || (tz2=Ruleset.Timezone(14640,"FFMT")); // Fort-de-France return tz1 || (tz1=Ruleset.Timezone(14660,"LMT")); } } class America_Montserrat { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846266608) // from 1911 Jul 1 0:01 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Olveston return tz1 || (tz1=Ruleset.Timezone(14932,"LMT")); } } class America_Managua { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=912488400) // from 1998 Dec return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=725839200) // from 1993 Jan 1 4:00 return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=161758800) // from 1975 Feb 16 return tz5 || (tz5=TZrules.Nic(21600,"C%sT")); if (ux>=105084000) // from 1973 May return tz4 || (tz4=Ruleset.Timezone(18000,"EST")); if (ux>=-1121105700) // from 1934 Jun 23 return tz3 || (tz3=Ruleset.Timezone(21600,"CST")); if (ux>=-2524500892) // from 1890 Managua Mean Time return tz2 || (tz2=Ruleset.Timezone(20700,"MMT")); return tz1 || (tz1=Ruleset.Timezone(20708,"LMT")); } } class America_Panama { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1946918400) // from 1908 Apr 22 return tz3 || (tz3=Ruleset.Timezone(18000,"EST")); if (ux>=-2524502512) // from 1890 Panama Mean Time return tz2 || (tz2=Ruleset.Timezone(19200,"PMT")); return tz1 || (tz1=Ruleset.Timezone(19088,"LMT")); } } class America_Puerto_Rico { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-765399600) // from 1945 Sep 30 2:00 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); if (ux>=-873057600) // from 1942 May 3 return tz3 || (tz3=Ruleset.Timezone(10800,"AWT")); if (ux>=-2233035335) // from 1899 Mar 28 12:00 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // San Juan return tz1 || (tz1=Ruleset.Timezone(15865,"LMT")); } } class America_St_Kitts { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1825098548) // from 1912 Mar 2 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Basseterre return tz1 || (tz1=Ruleset.Timezone(15052,"LMT")); } } class America_St_Lucia { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830369360) // from 1912 return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=-2524506960) // from 1890 Castries Mean Time return tz2 || (tz2=Ruleset.Timezone(14640,"CMT")); // Castries return tz1 || (tz1=Ruleset.Timezone(14640,"LMT")); } } class America_Miquelon { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=326001600) // from 1980 May Pierre & Miquelon Time return tz3 || (tz3=TZrules.Mont(10800,"PM%sT")); if (ux>=-1850328920) // from 1911 May 15 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // St Pierre return tz1 || (tz1=Ruleset.Timezone(13480,"LMT")); } } class America_St_Vincent { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1830369304) // from 1912 return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=-2524506904) // from 1890 Kingstown Mean Time return tz2 || (tz2=Ruleset.Timezone(14696,"KMT")); // Kingstown return tz1 || (tz1=Ruleset.Timezone(14696,"LMT")); } } class America_Grand_Turk { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1827687168) // from 1912 Feb return tz3 || (tz3=TZrules.TC(18000,"E%sT")); if (ux>=-2524504528) // from 1890 Kingston Mean Time return tz2 || (tz2=Ruleset.Timezone(18432,"KMT")); return tz1 || (tz1=Ruleset.Timezone(17072,"LMT")); } } class America_Tortola { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846266092) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Road Town return tz1 || (tz1=Ruleset.Timezone(15508,"LMT")); } } class America_St_Thomas { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1846266016) // from 1911 Jul return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); // Charlotte Amalie return tz1 || (tz1=Ruleset.Timezone(15584,"LMT")); } } constant America_Virgin=America_St_Thomas; class America_Buenos_Aires { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=-7617600) // from 1969 Oct 5 return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=-1233432000) // from 1930 Dec return tz4 || (tz4=TZrules.Arg(14400,"AR%sT")); if (ux>=-1567453396) // from 1920 May return tz3 || (tz3=Ruleset.Timezone(14400,"ART")); if (ux>=-2372011572) // from 1894 Nov Cordoba Mean Time return tz2 || (tz2=Ruleset.Timezone(15404,"CMT")); return tz1 || (tz1=Ruleset.Timezone(14028,"LMT")); } } class America_Rosario { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=678315600) // from 1991 Jul return tz6 || (tz6=Ruleset.Timezone(10800,"ART")); if (ux>=-7617600) // from 1969 Oct 5 return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=-1233432000) // from 1930 Dec return tz4 || (tz4=TZrules.Arg(14400,"AR%sT")); if (ux>=-1567453396) // from 1920 May return tz3 || (tz3=Ruleset.Timezone(14400,"ART")); if (ux>=-2372011040) // from 1894 Nov return tz2 || (tz2=Ruleset.Timezone(15404,"CMT")); return tz1 || (tz1=Ruleset.Timezone(14560,"LMT")); } } class America_Cordoba { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=646779600) // from 1990 Jul return tz6 || (tz6=Ruleset.Timezone(10800,"ART")); if (ux>=-7617600) // from 1969 Oct 5 return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=-1233432000) // from 1930 Dec return tz4 || (tz4=TZrules.Arg(14400,"AR%sT")); if (ux>=-1567453396) // from 1920 May return tz3 || (tz3=Ruleset.Timezone(14400,"ART")); if (ux>=-2372010196) // from 1894 Nov return tz2 || (tz2=Ruleset.Timezone(15404,"CMT")); return tz1 || (tz1=Ruleset.Timezone(15404,"LMT")); } } class America_Jujuy { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=719380800) // from 1992 Oct 18 return tz8 || (tz8=Ruleset.Timezone(10800,"ART")); if (ux>=700628400) // from 1992 Mar 15 return tz6 || (tz6=Ruleset.Timezone(14400,"WART")); if (ux>=686721600) // from 1991 Oct 6 return tz7 || (tz7=Ruleset.Timezone(10800,"WARST")); if (ux>=667947600) // from 1991 Mar 3 return tz6 || (tz6=Ruleset.Timezone(14400,"WART")); if (ux>=-7617600) // from 1969 Oct 5 return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=-1233432000) // from 1930 Dec return tz4 || (tz4=TZrules.Arg(14400,"AR%sT")); if (ux>=-1567453396) // from 1920 May return tz3 || (tz3=Ruleset.Timezone(14400,"ART")); if (ux>=-2372009928) // from 1894 Nov return tz2 || (tz2=Ruleset.Timezone(15404,"CMT")); return tz1 || (tz1=Ruleset.Timezone(15672,"LMT")); } } class America_Catamarca { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=709938000) // from 1992 Jul return tz6 || (tz6=Ruleset.Timezone(10800,"ART")); if (ux>=678337200) // from 1991 Jul return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=646779600) // from 1990 Jul return tz6 || (tz6=Ruleset.Timezone(10800,"ART")); if (ux>=-7617600) // from 1969 Oct 5 return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=-1233432000) // from 1930 Dec return tz4 || (tz4=TZrules.Arg(14400,"AR%sT")); if (ux>=-1567453396) // from 1920 May return tz3 || (tz3=Ruleset.Timezone(14400,"ART")); if (ux>=-2372009812) // from 1894 Nov return tz2 || (tz2=Ruleset.Timezone(15404,"CMT")); return tz1 || (tz1=Ruleset.Timezone(15788,"LMT")); } } class America_Mendoza { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6,tz7,tz8; Ruleset.Timezone whatrule(int ux) { if (ux>=719380800) // from 1992 Oct 18 return tz8 || (tz8=Ruleset.Timezone(10800,"ART")); if (ux>=699418800) // from 1992 Mar 1 return tz6 || (tz6=Ruleset.Timezone(14400,"WART")); if (ux>=687499200) // from 1991 Oct 15 return tz7 || (tz7=Ruleset.Timezone(10800,"WARST")); if (ux>=667947600) // from 1991 Mar 3 return tz6 || (tz6=Ruleset.Timezone(14400,"WART")); if (ux>=-7617600) // from 1969 Oct 5 return tz5 || (tz5=TZrules.Arg(10800,"AR%sT")); if (ux>=-1233432000) // from 1930 Dec return tz4 || (tz4=TZrules.Arg(14400,"AR%sT")); if (ux>=-1567453396) // from 1920 May return tz3 || (tz3=Ruleset.Timezone(14400,"ART")); if (ux>=-2372009084) // from 1894 Nov return tz2 || (tz2=Ruleset.Timezone(15404,"CMT")); return tz1 || (tz1=Ruleset.Timezone(16516,"LMT")); } } class America_Aruba { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-157750200) // from 1965 return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=-1826738376) // from 1912 Feb 12 Netherlands Antilles Time return tz2 || (tz2=Ruleset.Timezone(16200,"ANT")); // Oranjestad return tz1 || (tz1=Ruleset.Timezone(16824,"LMT")); } } class America_La_Paz { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1192307244) // from 1932 Mar 21 Bolivia Time return tz4 || (tz4=Ruleset.Timezone(14400,"BOT")); if (ux>=-1205954844) // from 1931 Oct 15 Bolivia ST return tz3 || (tz3=Ruleset.Timezone(12756,"BOST")); if (ux>=-2524505244) // from 1890 La Paz Mean Time return tz2 || (tz2=Ruleset.Timezone(16356,"LPMT")); return tz1 || (tz1=Ruleset.Timezone(16356,"LMT")); } } class America_Noronha { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=653522400) // from 1990 Sep 17 return tz3 || (tz3=Ruleset.Timezone(7200,"FNT")); if (ux>=-1767217820) // from 1914 return tz2 || (tz2=TZrules.Brazil(7200,"FN%sT")); return tz1 || (tz1=Ruleset.Timezone(7780,"LMT")); } } constant Brazil_DeNoronha=America_Noronha; class America_Belem { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=590014800) // from 1988 Sep 12 return tz3 || (tz3=Ruleset.Timezone(10800,"BRT")); if (ux>=-1767213964) // from 1914 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); return tz1 || (tz1=Ruleset.Timezone(11636,"LMT")); } } class America_Fortaleza { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=938660400) // from 1999 Sep 30 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); if (ux>=653518800) // from 1990 Sep 17 return tz3 || (tz3=Ruleset.Timezone(10800,"BRT")); if (ux>=-1767216360) // from 1914 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); return tz1 || (tz1=Ruleset.Timezone(9240,"LMT")); } } class America_Araguaina { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=811047600) // from 1995 Sep 14 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); if (ux>=653518800) // from 1990 Sep 17 return tz3 || (tz3=Ruleset.Timezone(10800,"BRT")); if (ux>=-1767214032) // from 1914 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); return tz1 || (tz1=Ruleset.Timezone(11568,"LMT")); } } class America_Maceio { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=938660400) // from 1999 Sep 30 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); if (ux>=841784400) // from 1996 Sep 4 return tz3 || (tz3=Ruleset.Timezone(10800,"BRT")); if (ux>=813553200) // from 1995 Oct 13 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); if (ux>=653518800) // from 1990 Sep 17 return tz3 || (tz3=Ruleset.Timezone(10800,"BRT")); if (ux>=-1767217028) // from 1914 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); return tz1 || (tz1=Ruleset.Timezone(8572,"LMT")); } } class America_Sao_Paulo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-189381600) // from 1964 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); if (ux>=-195447600) // from 1963 Oct 23 00:00 return tz3 || (tz3=Ruleset.Timezone(7200,"BRST")); if (ux>=-1767214412) // from 1914 return tz2 || (tz2=TZrules.Brazil(10800,"BR%sT")); return tz1 || (tz1=Ruleset.Timezone(11188,"LMT")); } } constant Brazil_East=America_Sao_Paulo; class America_Cuiaba { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1767212140) // from 1914 return tz2 || (tz2=TZrules.Brazil(14400,"AM%sT")); return tz1 || (tz1=Ruleset.Timezone(13460,"LMT")); } } class America_Porto_Velho { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=590011200) // from 1988 Sep 12 return tz3 || (tz3=Ruleset.Timezone(14400,"AMT")); if (ux>=-1767210264) // from 1914 return tz2 || (tz2=TZrules.Brazil(14400,"AM%sT")); return tz1 || (tz1=Ruleset.Timezone(15336,"LMT")); } } class America_Boa_Vista { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=938664000) // from 1999 Sep 30 return tz2 || (tz2=TZrules.Brazil(14400,"AM%sT")); if (ux>=590011200) // from 1988 Sep 12 return tz3 || (tz3=Ruleset.Timezone(14400,"AMT")); if (ux>=-1767211040) // from 1914 return tz2 || (tz2=TZrules.Brazil(14400,"AM%sT")); return tz1 || (tz1=Ruleset.Timezone(14560,"LMT")); } } class America_Manaus { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=780177600) // from 1994 Sep 22 return tz3 || (tz3=Ruleset.Timezone(14400,"AMT")); if (ux>=749188800) // from 1993 Sep 28 return tz2 || (tz2=TZrules.Brazil(14400,"AM%sT")); if (ux>=590011200) // from 1988 Sep 12 return tz3 || (tz3=Ruleset.Timezone(14400,"AMT")); if (ux>=-1767211196) // from 1914 return tz2 || (tz2=TZrules.Brazil(14400,"AM%sT")); return tz1 || (tz1=Ruleset.Timezone(14404,"LMT")); } } constant Brazil_West=America_Manaus; class America_Porto_Acre { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=590007600) // from 1988 Sep 12 return tz3 || (tz3=Ruleset.Timezone(18000,"ACT")); if (ux>=-1767209328) // from 1914 return tz2 || (tz2=TZrules.Brazil(18000,"AC%sT")); return tz1 || (tz1=Ruleset.Timezone(16272,"LMT")); } } constant Brazil_Acre=America_Porto_Acre; class America_Santiago { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-1178168400) // from 1932 Sep return tz4 || (tz4=TZrules.Chile(14400,"CL%sT")); if (ux>=-1893439040) // from 1910 Chile Time return tz3 || (tz3=TZrules.Chile(18000,"CL%sT")); if (ux>=-2524504640) // from 1890 Santiago Mean Time return tz2 || (tz2=Ruleset.Timezone(16960,"SMT")); return tz1 || (tz1=Ruleset.Timezone(16960,"LMT")); } } constant Chile_Continental=America_Santiago; class Pacific_Easter { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=384886800) // from 1982 Mar 14 return tz4 || (tz4=TZrules.Chile(21600,"EAS%sT")); if (ux>=-1178124152) // from 1932 Sep Easter I Time return tz3 || (tz3=TZrules.Chile(25200,"EAS%sT")); if (ux>=-2524495352) // from 1890 Mataveri Mean Time return tz2 || (tz2=Ruleset.Timezone(26248,"MMT")); // Mataveri return tz1 || (tz1=Ruleset.Timezone(26248,"LMT")); } } constant Chile_EasterIsland=Pacific_Easter; class America_Bogota { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1739041420) // from 1914 Nov 23 Colombia Time return tz3 || (tz3=TZrules.CO(18000,"CO%sT")); if (ux>=-2707671820) // from 1884 Mar 13 Bogota Mean Time return tz2 || (tz2=Ruleset.Timezone(17780,"BMT")); return tz1 || (tz1=Ruleset.Timezone(17780,"LMT")); } } class America_Curacao { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-157750200) // from 1965 return tz3 || (tz3=Ruleset.Timezone(14400,"AST")); if (ux>=-1826738656) // from 1912 Feb 12 Netherlands Antilles Time return tz2 || (tz2=Ruleset.Timezone(16200,"ANT")); // Willemstad return tz1 || (tz1=Ruleset.Timezone(16544,"LMT")); } } class America_Guayaquil { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1230749160) // from 1931 Ecuador Time return tz3 || (tz3=Ruleset.Timezone(18000,"ECT")); if (ux>=-2524502440) // from 1890 Quito Mean Time return tz2 || (tz2=Ruleset.Timezone(18840,"QMT")); return tz1 || (tz1=Ruleset.Timezone(19160,"LMT")); } } class Pacific_Galapagos { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=504939600) // from 1986 Galapagos Time return tz3 || (tz3=Ruleset.Timezone(21600,"GALT")); if (ux>=-1230746496) // from 1931 return tz2 || (tz2=Ruleset.Timezone(18000,"ECT")); // Puerto Baquerizo Moreno return tz1 || (tz1=Ruleset.Timezone(21504,"LMT")); } } class Atlantic_Stanley { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=495579600) // from 1985 Sep 15 return tz3 || (tz3=TZrules.Falk(14400,"FK%sT")); if (ux>=420580800) // from 1983 May return tz4 || (tz4=TZrules.Falk(10800,"FK%sT")); if (ux>=-1824235716) // from 1912 Mar 12 Falkland Is Time return tz3 || (tz3=TZrules.Falk(14400,"FK%sT")); if (ux>=-2524507716) // from 1890 Stanley Mean Time return tz2 || (tz2=Ruleset.Timezone(13884,"SMT")); return tz1 || (tz1=Ruleset.Timezone(13884,"LMT")); } } class America_Cayenne { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-71092800) // from 1967 Oct return tz3 || (tz3=Ruleset.Timezone(10800,"GFT")); if (ux>=-1846269040) // from 1911 Jul French Guiana Time return tz2 || (tz2=Ruleset.Timezone(14400,"GFT")); return tz1 || (tz1=Ruleset.Timezone(12560,"LMT")); } } class America_Guyana { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=662698800) // from 1991 return tz5 || (tz5=Ruleset.Timezone(14400,"GYT")); if (ux>=176010300) // from 1975 Jul 31 return tz4 || (tz4=Ruleset.Timezone(10800,"GYT")); if (ux>=-113688900) // from 1966 May 26 Guyana Time return tz3 || (tz3=Ruleset.Timezone(13500,"GYT")); if (ux>=-1730578040) // from 1915 Mar Br Guiana Time return tz2 || (tz2=Ruleset.Timezone(13500,"GBGT")); // Georgetown return tz1 || (tz1=Ruleset.Timezone(13960,"LMT")); } } class America_Asuncion { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5; Ruleset.Timezone whatrule(int ux) { if (ux>=134017200) // from 1974 Apr return tz5 || (tz5=TZrules.Para(14400,"PY%sT")); if (ux>=86760000) // from 1972 Oct return tz4 || (tz4=Ruleset.Timezone(10800,"PYT")); if (ux>=-1206389360) // from 1931 Oct 10 Paraguay Time return tz3 || (tz3=Ruleset.Timezone(14400,"PYT")); if (ux>=-2524507760) // from 1890 Asuncion Mean Time return tz2 || (tz2=Ruleset.Timezone(13840,"AMT")); return tz1 || (tz1=Ruleset.Timezone(13840,"LMT")); } } class America_Lima { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3; Ruleset.Timezone whatrule(int ux) { if (ux>=-1938538260) // from 1908 Jul 28 Peru Time return tz3 || (tz3=TZrules.Peru(18000,"PE%sT")); if (ux>=-2524503108) // from 1890 Lima Mean Time return tz2 || (tz2=Ruleset.Timezone(18540,"LMT")); return tz1 || (tz1=Ruleset.Timezone(18492,"LMT")); } } class Atlantic_South_Georgia { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-2524512832) // from 1890 South Georgia Time return tz2 || (tz2=Ruleset.Timezone(7200,"GST")); // Grytviken return tz1 || (tz1=Ruleset.Timezone(8768,"LMT")); } } class America_Paramaribo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4,tz5,tz6; Ruleset.Timezone whatrule(int ux) { if (ux>=465449400) // from 1984 Oct return tz6 || (tz6=Ruleset.Timezone(10800,"SRT")); if (ux>=185686200) // from 1975 Nov 20 Suriname Time return tz5 || (tz5=Ruleset.Timezone(12600,"SRT")); if (ux>=-765317964) // from 1945 Oct Dutch Guiana Time return tz4 || (tz4=Ruleset.Timezone(12600,"NEGT")); if (ux>=-1104524348) // from 1935 The capital moved? return tz3 || (tz3=Ruleset.Timezone(13236,"PMT")); if (ux>=-1861906760) // from 1911 Paramaribo Mean Time return tz2 || (tz2=Ruleset.Timezone(13252,"PMT")); return tz1 || (tz1=Ruleset.Timezone(13240,"LMT")); } } class America_Port_of_Spain { inherit TZHistory; Ruleset.Timezone tz1,tz2; Ruleset.Timezone whatrule(int ux) { if (ux>=-1825098836) // from 1912 Mar 2 return tz2 || (tz2=Ruleset.Timezone(14400,"AST")); return tz1 || (tz1=Ruleset.Timezone(14764,"LMT")); } } class America_Montevideo { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-853641000) // from 1942 Dec 14 return tz4 || (tz4=TZrules.Uruguay(10800,"UY%sT")); if (ux>=-1567455316) // from 1920 May 1 Uruguay Time return tz3 || (tz3=TZrules.Uruguay(12600,"UY%sT")); if (ux>=-2256668116) // from 1898 Jun 28 Montevideo MT return tz2 || (tz2=Ruleset.Timezone(13484,"MMT")); return tz1 || (tz1=Ruleset.Timezone(13484,"LMT")); } } class America_Caracas { inherit TZHistory; Ruleset.Timezone tz1,tz2,tz3,tz4; Ruleset.Timezone whatrule(int ux) { if (ux>=-157750200) // from 1965 return tz4 || (tz4=Ruleset.Timezone(14400,"VET")); if (ux>=-1826739136) // from 1912 Feb 12 Venezuela Time return tz3 || (tz3=Ruleset.Timezone(16200,"VET")); if (ux>=-2524505536) // from 1890 Caracas Mean Time return tz2 || (tz2=Ruleset.Timezone(16064,"CMT")); return tz1 || (tz1=Ruleset.Timezone(16064,"LMT")); } } // ----------------------------------------------------------------------