# This file is auto-generated by the Perl DateTime Suite time zone
# code generator (0.07) This code generator comes with the
# DateTime::TimeZone module distribution in the tools/ directory

#
# Generated from ../DateTime/data/Olson/2011n/europe.  Olson data version 2011n
#
# Do not edit this file directly.
#
package DateTime::TimeZone::Europe::Gibraltar;
{
  $DateTime::TimeZone::Europe::Gibraltar::VERSION = '1.42';
}

use strict;

use Class::Singleton;
use DateTime::TimeZone;
use DateTime::TimeZone::OlsonDB;

@DateTime::TimeZone::Europe::Gibraltar::ISA = ( 'Class::Singleton', 'DateTime::TimeZone' );

my $spans =
[
    [
DateTime::TimeZone::NEG_INFINITY,
59314033284,
DateTime::TimeZone::NEG_INFINITY,
59314032000,
-1284,
0,
'LMT'
    ],
    [
59314033284,
60443719200,
59314033284,
60443719200,
0,
0,
'GMT'
    ],
    [
60443719200,
60455210400,
60443722800,
60455214000,
3600,
1,
'BST'
    ],
    [
60455210400,
60471540000,
60455210400,
60471540000,
0,
0,
'GMT'
    ],
    [
60471540000,
60485536800,
60471543600,
60485540400,
3600,
1,
'BST'
    ],
    [
60485536800,
60501780000,
60485536800,
60501780000,
0,
0,
'GMT'
    ],
    [
60501780000,
60518196000,
60501783600,
60518199600,
3600,
1,
'BST'
    ],
    [
60518196000,
60533834400,
60518196000,
60533834400,
0,
0,
'GMT'
    ],
    [
60533834400,
60549645600,
60533838000,
60549649200,
3600,
1,
'BST'
    ],
    [
60549645600,
60565284000,
60549645600,
60565284000,
0,
0,
'GMT'
    ],
    [
60565284000,
60583514400,
60565287600,
60583518000,
3600,
1,
'BST'
    ],
    [
60583514400,
60597338400,
60583514400,
60597338400,
0,
0,
'GMT'
    ],
    [
60597338400,
60613149600,
60597342000,
60613153200,
3600,
1,
'BST'
    ],
    [
60613149600,
60628183200,
60613149600,
60628183200,
0,
0,
'GMT'
    ],
    [
60628183200,
60645117600,
60628186800,
60645121200,
3600,
1,
'BST'
    ],
    [
60645117600,
60662052000,
60645117600,
60662052000,
0,
0,
'GMT'
    ],
    [
60662052000,
60674752800,
60662055600,
60674756400,
3600,
1,
'BST'
    ],
    [
60674752800,
60692896800,
60674752800,
60692896800,
0,
0,
'GMT'
    ],
    [
60692896800,
60706807200,
60692900400,
60706810800,
3600,
1,
'BST'
    ],
    [
60706807200,
60724951200,
60706807200,
60724951200,
0,
0,
'GMT'
    ],
    [
60724951200,
60739466400,
60724954800,
60739470000,
3600,
1,
'BST'
    ],
    [
60739466400,
60756400800,
60739466400,
60756400800,
0,
0,
'GMT'
    ],
    [
60756400800,
60770916000,
60756404400,
60770919600,
3600,
1,
'BST'
    ],
    [
60770916000,
60787245600,
60770916000,
60787245600,
0,
0,
'GMT'
    ],
    [
60787245600,
60802365600,
60787249200,
60802369200,
3600,
1,
'BST'
    ],
    [
60802365600,
60819904800,
60802365600,
60819904800,
0,
0,
'GMT'
    ],
    [
60819904800,
60834420000,
60819908400,
60834423600,
3600,
1,
'BST'
    ],
    [
60834420000,
60851354400,
60834420000,
60851354400,
0,
0,
'GMT'
    ],
    [
60851354400,
60865869600,
60851358000,
60865873200,
3600,
1,
'BST'
    ],
    [
60865869600,
60882199200,
60865869600,
60882199200,
0,
0,
'GMT'
    ],
    [
60882199200,
60897319200,
60882202800,
60897322800,
3600,
1,
'BST'
    ],
    [
60897319200,
60914253600,
60897319200,
60914253600,
0,
0,
'GMT'
    ],
    [
60914253600,
60928768800,
60914257200,
60928772400,
3600,
1,
'BST'
    ],
    [
60928768800,
60945703200,
60928768800,
60945703200,
0,
0,
'GMT'
    ],
    [
60945703200,
60960218400,
60945706800,
60960222000,
3600,
1,
'BST'
    ],
    [
60960218400,
60976548000,
60960218400,
60976548000,
0,
0,
'GMT'
    ],
    [
60976548000,
60992272800,
60976551600,
60992276400,
3600,
1,
'BST'
    ],
    [
60992272800,
61009207200,
60992272800,
61009207200,
0,
0,
'GMT'
    ],
    [
61009207200,
61023722400,
61009210800,
61023726000,
3600,
1,
'BST'
    ],
    [
61023722400,
61040052000,
61023722400,
61040052000,
0,
0,
'GMT'
    ],
    [
61040052000,
61055172000,
61040055600,
61055175600,
3600,
1,
'BST'
    ],
    [
61055172000,
61072106400,
61055172000,
61072106400,
0,
0,
'GMT'
    ],
    [
61072106400,
61086621600,
61072110000,
61086625200,
3600,
1,
'BST'
    ],
    [
61086621600,
61103556000,
61086621600,
61103556000,
0,
0,
'GMT'
    ],
    [
61103556000,
61118071200,
61103559600,
61118074800,
3600,
1,
'BST'
    ],
    [
61118071200,
61134400800,
61118071200,
61134400800,
0,
0,
'GMT'
    ],
    [
61134400800,
61149520800,
61134404400,
61149524400,
3600,
1,
'BST'
    ],
    [
61149520800,
61166455200,
61149520800,
61166455200,
0,
0,
'GMT'
    ],
    [
61166455200,
61185204000,
61166458800,
61185207600,
3600,
1,
'BST'
    ],
    [
61185204000,
61193671200,
61185204000,
61193671200,
0,
0,
'GMT'
    ],
    [
61193671200,
61231165200,
61193674800,
61231168800,
3600,
1,
'BST'
    ],
    [
61231165200,
61239632400,
61231172400,
61239639600,
7200,
1,
'BDST'
    ],
    [
61239632400,
61260195600,
61239636000,
61260199200,
3600,
1,
'BST'
    ],
    [
61260195600,
61271082000,
61260202800,
61271089200,
7200,
1,
'BDST'
    ],
    [
61271082000,
61291645200,
61271085600,
61291648800,
3600,
1,
'BST'
    ],
    [
61291645200,
61303136400,
61291652400,
61303143600,
7200,
1,
'BDST'
    ],
    [
61303136400,
61323094800,
61303140000,
61323098400,
3600,
1,
'BST'
    ],
    [
61323094800,
61337610000,
61323102000,
61337617200,
7200,
1,
'BDST'
    ],
    [
61337610000,
61354630800,
61337613600,
61354634400,
3600,
1,
'BST'
    ],
    [
61354630800,
61363616400,
61354638000,
61363623600,
7200,
1,
'BDST'
    ],
    [
61363616400,
61370877600,
61363620000,
61370881200,
3600,
1,
'BST'
    ],
    [
61370877600,
61387207200,
61370877600,
61387207200,
0,
0,
'GMT'
    ],
    [
61387207200,
61402327200,
61387210800,
61402330800,
3600,
1,
'BST'
    ],
    [
61402327200,
61416237600,
61402327200,
61416237600,
0,
0,
'GMT'
    ],
    [
61416237600,
61418653200,
61416241200,
61418656800,
3600,
1,
'BST'
    ],
    [
61418653200,
61428934800,
61418660400,
61428942000,
7200,
1,
'BDST'
    ],
    [
61428934800,
61436196000,
61428938400,
61436199600,
3600,
1,
'BST'
    ],
    [
61436196000,
61447687200,
61436196000,
61447687200,
0,
0,
'GMT'
    ],
    [
61447687200,
61467645600,
61447690800,
61467649200,
3600,
1,
'BST'
    ],
    [
61467645600,
61480951200,
61467645600,
61480951200,
0,
0,
'GMT'
    ],
    [
61480951200,
61499095200,
61480954800,
61499098800,
3600,
1,
'BST'
    ],
    [
61499095200,
61513610400,
61499095200,
61513610400,
0,
0,
'GMT'
    ],
    [
61513610400,
61529940000,
61513614000,
61529943600,
3600,
1,
'BST'
    ],
    [
61529940000,
61545060000,
61529940000,
61545060000,
0,
0,
'GMT'
    ],
    [
61545060000,
61561389600,
61545063600,
61561393200,
3600,
1,
'BST'
    ],
    [
61561389600,
61577114400,
61561389600,
61577114400,
0,
0,
'GMT'
    ],
    [
61577114400,
61593444000,
61577118000,
61593447600,
3600,
1,
'BST'
    ],
    [
61593444000,
61608564000,
61593444000,
61608564000,
0,
0,
'GMT'
    ],
    [
61608564000,
61623079200,
61608567600,
61623082800,
3600,
1,
'BST'
    ],
    [
61623079200,
61639408800,
61623079200,
61639408800,
0,
0,
'GMT'
    ],
    [
61639408800,
61654528800,
61639412400,
61654532400,
3600,
1,
'BST'
    ],
    [
61654528800,
61671463200,
61654528800,
61671463200,
0,
0,
'GMT'
    ],
    [
61671463200,
61685978400,
61671466800,
61685982000,
3600,
1,
'BST'
    ],
    [
61685978400,
61703517600,
61685978400,
61703517600,
0,
0,
'GMT'
    ],
    [
61703517600,
61718032800,
61703521200,
61718036400,
3600,
1,
'BST'
    ],
    [
61718032800,
61734362400,
61718032800,
61734362400,
0,
0,
'GMT'
    ],
    [
61734362400,
62514370800,
61734366000,
62514374400,
3600,
0,
'CET'
    ],
    [
62514370800,
62521808400,
62514374400,
62521812000,
3600,
0,
'CET'
    ],
    [
62521808400,
62537533200,
62521815600,
62537540400,
7200,
1,
'CEST'
    ],
    [
62537533200,
62553258000,
62537536800,
62553261600,
3600,
0,
'CET'
    ],
    [
62553258000,
62568982800,
62553265200,
62568990000,
7200,
1,
'CEST'
    ],
    [
62568982800,
62584707600,
62568986400,
62584711200,
3600,
0,
'CET'
    ],
    [
62584707600,
62601037200,
62584714800,
62601044400,
7200,
1,
'CEST'
    ],
    [
62601037200,
62616762000,
62601040800,
62616765600,
3600,
0,
'CET'
    ],
    [
62616762000,
62632486800,
62616769200,
62632494000,
7200,
1,
'CEST'
    ],
    [
62632486800,
62648211600,
62632490400,
62648215200,
3600,
0,
'CET'
    ],
    [
62648211600,
62663936400,
62648218800,
62663943600,
7200,
1,
'CEST'
    ],
    [
62663936400,
62679661200,
62663940000,
62679664800,
3600,
0,
'CET'
    ],
    [
62679661200,
62695386000,
62679668400,
62695393200,
7200,
1,
'CEST'
    ],
    [
62695386000,
62711110800,
62695389600,
62711114400,
3600,
0,
'CET'
    ],
    [
62711110800,
62726835600,
62711118000,
62726842800,
7200,
1,
'CEST'
    ],
    [
62726835600,
62742560400,
62726839200,
62742564000,
3600,
0,
'CET'
    ],
    [
62742560400,
62758285200,
62742567600,
62758292400,
7200,
1,
'CEST'
    ],
    [
62758285200,
62774010000,
62758288800,
62774013600,
3600,
0,
'CET'
    ],
    [
62774010000,
62790339600,
62774017200,
62790346800,
7200,
1,
'CEST'
    ],
    [
62790339600,
62806064400,
62790343200,
62806068000,
3600,
0,
'CET'
    ],
    [
62806064400,
62821789200,
62806071600,
62821796400,
7200,
1,
'CEST'
    ],
    [
62821789200,
62837514000,
62821792800,
62837517600,
3600,
0,
'CET'
    ],
    [
62837514000,
62853238800,
62837521200,
62853246000,
7200,
1,
'CEST'
    ],
    [
62853238800,
62868963600,
62853242400,
62868967200,
3600,
0,
'CET'
    ],
    [
62868963600,
62884688400,
62868970800,
62884695600,
7200,
1,
'CEST'
    ],
    [
62884688400,
62900413200,
62884692000,
62900416800,
3600,
0,
'CET'
    ],
    [
62900413200,
62916138000,
62900420400,
62916145200,
7200,
1,
'CEST'
    ],
    [
62916138000,
62931862800,
62916141600,
62931866400,
3600,
0,
'CET'
    ],
    [
62931862800,
62947587600,
62931870000,
62947594800,
7200,
1,
'CEST'
    ],
    [
62947587600,
62963917200,
62947591200,
62963920800,
3600,
0,
'CET'
    ],
    [
62963917200,
62982061200,
62963924400,
62982068400,
7200,
1,
'CEST'
    ],
    [
62982061200,
62995366800,
62982064800,
62995370400,
3600,
0,
'CET'
    ],
    [
62995366800,
63013510800,
62995374000,
63013518000,
7200,
1,
'CEST'
    ],
    [
63013510800,
63026816400,
63013514400,
63026820000,
3600,
0,
'CET'
    ],
    [
63026816400,
63044960400,
63026823600,
63044967600,
7200,
1,
'CEST'
    ],
    [
63044960400,
63058266000,
63044964000,
63058269600,
3600,
0,
'CET'
    ],
    [
63058266000,
63077014800,
63058273200,
63077022000,
7200,
1,
'CEST'
    ],
    [
63077014800,
63089715600,
63077018400,
63089719200,
3600,
0,
'CET'
    ],
    [
63089715600,
63108464400,
63089722800,
63108471600,
7200,
1,
'CEST'
    ],
    [
63108464400,
63121165200,
63108468000,
63121168800,
3600,
0,
'CET'
    ],
    [
63121165200,
63139914000,
63121172400,
63139921200,
7200,
1,
'CEST'
    ],
    [
63139914000,
63153219600,
63139917600,
63153223200,
3600,
0,
'CET'
    ],
    [
63153219600,
63171363600,
63153226800,
63171370800,
7200,
1,
'CEST'
    ],
    [
63171363600,
63184669200,
63171367200,
63184672800,
3600,
0,
'CET'
    ],
    [
63184669200,
63202813200,
63184676400,
63202820400,
7200,
1,
'CEST'
    ],
    [
63202813200,
63216118800,
63202816800,
63216122400,
3600,
0,
'CET'
    ],
    [
63216118800,
63234867600,
63216126000,
63234874800,
7200,
1,
'CEST'
    ],
    [
63234867600,
63247568400,
63234871200,
63247572000,
3600,
0,
'CET'
    ],
    [
63247568400,
63266317200,
63247575600,
63266324400,
7200,
1,
'CEST'
    ],
    [
63266317200,
63279018000,
63266320800,
63279021600,
3600,
0,
'CET'
    ],
    [
63279018000,
63297766800,
63279025200,
63297774000,
7200,
1,
'CEST'
    ],
    [
63297766800,
63310467600,
63297770400,
63310471200,
3600,
0,
'CET'
    ],
    [
63310467600,
63329216400,
63310474800,
63329223600,
7200,
1,
'CEST'
    ],
    [
63329216400,
63342522000,
63329220000,
63342525600,
3600,
0,
'CET'
    ],
    [
63342522000,
63360666000,
63342529200,
63360673200,
7200,
1,
'CEST'
    ],
    [
63360666000,
63373971600,
63360669600,
63373975200,
3600,
0,
'CET'
    ],
    [
63373971600,
63392115600,
63373978800,
63392122800,
7200,
1,
'CEST'
    ],
    [
63392115600,
63405421200,
63392119200,
63405424800,
3600,
0,
'CET'
    ],
    [
63405421200,
63424170000,
63405428400,
63424177200,
7200,
1,
'CEST'
    ],
    [
63424170000,
63436870800,
63424173600,
63436874400,
3600,
0,
'CET'
    ],
    [
63436870800,
63455619600,
63436878000,
63455626800,
7200,
1,
'CEST'
    ],
    [
63455619600,
63468320400,
63455623200,
63468324000,
3600,
0,
'CET'
    ],
    [
63468320400,
63487069200,
63468327600,
63487076400,
7200,
1,
'CEST'
    ],
    [
63487069200,
63500374800,
63487072800,
63500378400,
3600,
0,
'CET'
    ],
    [
63500374800,
63518518800,
63500382000,
63518526000,
7200,
1,
'CEST'
    ],
    [
63518518800,
63531824400,
63518522400,
63531828000,
3600,
0,
'CET'
    ],
    [
63531824400,
63549968400,
63531831600,
63549975600,
7200,
1,
'CEST'
    ],
    [
63549968400,
63563274000,
63549972000,
63563277600,
3600,
0,
'CET'
    ],
    [
63563274000,
63581418000,
63563281200,
63581425200,
7200,
1,
'CEST'
    ],
    [
63581418000,
63594723600,
63581421600,
63594727200,
3600,
0,
'CET'
    ],
    [
63594723600,
63613472400,
63594730800,
63613479600,
7200,
1,
'CEST'
    ],
    [
63613472400,
63626173200,
63613476000,
63626176800,
3600,
0,
'CET'
    ],
    [
63626173200,
63644922000,
63626180400,
63644929200,
7200,
1,
'CEST'
    ],
    [
63644922000,
63657622800,
63644925600,
63657626400,
3600,
0,
'CET'
    ],
    [
63657622800,
63676371600,
63657630000,
63676378800,
7200,
1,
'CEST'
    ],
    [
63676371600,
63689677200,
63676375200,
63689680800,
3600,
0,
'CET'
    ],
    [
63689677200,
63707821200,
63689684400,
63707828400,
7200,
1,
'CEST'
    ],
    [
63707821200,
63721126800,
63707824800,
63721130400,
3600,
0,
'CET'
    ],
    [
63721126800,
63739270800,
63721134000,
63739278000,
7200,
1,
'CEST'
    ],
    [
63739270800,
63752576400,
63739274400,
63752580000,
3600,
0,
'CET'
    ],
    [
63752576400,
63771325200,
63752583600,
63771332400,
7200,
1,
'CEST'
    ],
    [
63771325200,
63784026000,
63771328800,
63784029600,
3600,
0,
'CET'
    ],
    [
63784026000,
63802774800,
63784033200,
63802782000,
7200,
1,
'CEST'
    ],
];

sub olson_version { '2011n' }

sub has_dst_changes { 89 }

sub _max_year { 2021 }

sub _new_instance
{
    return shift->_init( @_, spans => $spans );
}

sub _last_offset { 3600 }

my $last_observance = bless( {
  'format' => 'CE%sT',
  'gmtoff' => '1:00',
  'local_start_datetime' => bless( {
    'formatter' => undef,
    'local_rd_days' => 723546,
    'local_rd_secs' => 0,
    'offset_modifier' => 0,
    'rd_nanosecs' => 0,
    'tz' => bless( {
      'name' => 'floating',
      'offset' => 0
    }, 'DateTime::TimeZone::Floating' ),
    'utc_rd_days' => 723546,
    'utc_rd_secs' => 0,
    'utc_year' => 1983
  }, 'DateTime' ),
  'offset_from_std' => 0,
  'offset_from_utc' => 3600,
  'until' => [],
  'utc_start_datetime' => bless( {
    'formatter' => undef,
    'local_rd_days' => 723545,
    'local_rd_secs' => 82800,
    'offset_modifier' => 0,
    'rd_nanosecs' => 0,
    'tz' => bless( {
      'name' => 'floating',
      'offset' => 0
    }, 'DateTime::TimeZone::Floating' ),
    'utc_rd_days' => 723545,
    'utc_rd_secs' => 82800,
    'utc_year' => 1982
  }, 'DateTime' )
}, 'DateTime::TimeZone::OlsonDB::Observance' )
;
sub _last_observance { $last_observance }

my $rules = [
  bless( {
    'at' => '1:00u',
    'from' => '1981',
    'in' => 'Mar',
    'letter' => 'S',
    'name' => 'EU',
    'offset_from_std' => 3600,
    'on' => 'lastSun',
    'save' => '1:00',
    'to' => 'max',
    'type' => undef
  }, 'DateTime::TimeZone::OlsonDB::Rule' ),
  bless( {
    'at' => '1:00u',
    'from' => '1996',
    'in' => 'Oct',
    'letter' => '',
    'name' => 'EU',
    'offset_from_std' => 0,
    'on' => 'lastSun',
    'save' => '0',
    'to' => 'max',
    'type' => undef
  }, 'DateTime::TimeZone::OlsonDB::Rule' )
]
;
sub _rules { $rules }


1;

