Merge branch 'wip-mdl-41849' of https://github.com/rajeshtaneja/moodle
authorDan Poltawski <dan@moodle.com>
Mon, 4 Nov 2013 11:35:01 +0000 (19:35 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 4 Nov 2013 11:35:01 +0000 (19:35 +0800)
316 files changed:
admin/tool/generator/classes/course_backend.php
admin/tool/installaddon/classes/installer.php
admin/tool/installaddon/tests/installer_test.php
admin/tool/installaddon/tests/validator_test.php
backup/util/helper/backup_cron_helper.class.php
badges/tests/badgeslib_test.php
badges/tests/behat/award_badge.feature
blocks/html/lib.php
calendar/classes/type_base.php
calendar/tests/calendartype_test_example.php
calendar/type/gregorian/classes/structure.php
composer.json
config-dist.php
course/lib.php
course/modedit.php
course/modlib.php
course/renderer.php
file.php
files/renderer.php
filter/glossary/filter.php
filter/glossary/tests/filter_test.php [new file with mode: 0644]
lang/en/cache.php
lib/classes/plugin_manager.php
lib/classes/plugininfo/orphaned.php [new file with mode: 0644]
lib/conditionlib.php
lib/db/caches.php
lib/db/upgrade.php
lib/filelib.php
lib/filterlib.php
lib/form/searchableselector.php
lib/grade/grade_grade.php
lib/moodlelib.php
lib/outputcomponents.php
lib/outputrenderers.php
lib/setup.php
lib/testing/generator/module_generator.php
lib/testing/tests/generator_test.php
lib/tests/behat/behat_general.php
lib/tests/behat/behat_hooks.php
lib/tests/behat/behat_transformations.php
lib/tests/completionlib_test.php
lib/tests/conditionlib_test.php
lib/tests/filterlib_test.php
lib/tests/modinfolib_test.php
lib/timezone.txt
lib/upgrade.txt
lib/yui/build/moodle-core-actionmenu/moodle-core-actionmenu-debug.js
lib/yui/build/moodle-core-actionmenu/moodle-core-actionmenu-min.js
lib/yui/build/moodle-core-actionmenu/moodle-core-actionmenu.js
lib/yui/src/actionmenu/js/actionmenu.js
message/lib.php
mod/assign/feedback/editpdf/classes/pdf.php
mod/assign/feedback/editpdf/styles.css
mod/assign/locallib.php
mod/assign/tests/generator/lib.php
mod/assign/tests/locallib_test.php
mod/assignment/tests/generator/lib.php
mod/assignment/type/online/assignment.class.php
mod/book/lib.php
mod/book/tests/generator/lib.php
mod/book/tests/generator_test.php
mod/chat/tests/generator/lib.php
mod/choice/tests/generator/lib.php
mod/data/field/picture/field.class.php
mod/data/tests/generator/lib.php
mod/feedback/item/multichoice/lib.php
mod/feedback/item/multichoicerated/lib.php
mod/feedback/styles.css
mod/feedback/tests/generator/lib.php
mod/folder/lib.php
mod/forum/tests/generator/lib.php
mod/forum/tests/generator_test.php
mod/glossary/tests/generator/lib.php [new file with mode: 0644]
mod/glossary/tests/generator_test.php [new file with mode: 0644]
mod/imscp/lib.php
mod/label/tests/generator/lib.php
mod/lesson/locallib.php
mod/lesson/mod_form.php
mod/lesson/renderer.php
mod/lesson/report.php
mod/lesson/tests/generator/lib.php [new file with mode: 0644]
mod/lesson/tests/generator_test.php [new file with mode: 0644]
mod/lesson/timer.js
mod/lesson/view.php
mod/lti/tests/generator/lib.php
mod/page/lib.php
mod/page/tests/generator/lib.php
mod/quiz/report/responses/responses_table.php
mod/quiz/tests/generator/lib.php
mod/resource/lib.php
mod/resource/tests/generator/lib.php
mod/scorm/lib.php
mod/scorm/report/graphs/graph.php
mod/scorm/tests/behat/add_scorm.feature [new file with mode: 0644]
mod/scorm/tests/packages/singlescobasic.zip [new file with mode: 0644]
mod/survey/tests/generator/lib.php [new file with mode: 0644]
mod/survey/tests/generator_test.php [new file with mode: 0644]
mod/url/tests/generator/lib.php [new file with mode: 0644]
mod/url/tests/generator_test.php [new file with mode: 0644]
mod/url/view.php
mod/wiki/backup/moodle2/restore_wiki_stepslib.php
mod/wiki/lib.php
mod/wiki/parser/parser.php
mod/wiki/tests/generator/lib.php [new file with mode: 0644]
mod/wiki/tests/generator_test.php [new file with mode: 0644]
mod/workshop/eval/best/lib.php
mod/workshop/lib.php
mod/workshop/tests/generator/lib.php [new file with mode: 0644]
mod/workshop/tests/generator_test.php [new file with mode: 0644]
notes/lib.php
notes/tests/events_test.php
question/classes/statistics/responses/analyser.php
question/classes/statistics/responses/analysis_for_actual_response.php
question/classes/statistics/responses/analysis_for_class.php
question/classes/statistics/responses/analysis_for_question.php
question/classes/statistics/responses/analysis_for_subpart.php
question/tests/behat/question_categories.feature [new file with mode: 0644]
report/log/locallib.php
repository/boxnet/lib.php
repository/dropbox/lib.php
repository/equella/lib.php
repository/filesystem/lib.php
repository/lib.php
theme/base/style/core.css
theme/bootstrapbase/less/moodle/core.less
theme/bootstrapbase/less/moodle/filemanager.less
theme/bootstrapbase/less/moodle/responsive.less
theme/bootstrapbase/style/moodle.css
theme/boxxie/style/core.css
theme/brick/style/pagelayout.css
theme/formal_white/style/pagelayout.css
theme/mymobile/config.php [deleted file]
theme/mymobile/jquery/custom131.js [deleted file]
theme/mymobile/jquery/jquery.mobile-1.3.1.js [deleted file]
theme/mymobile/jquery/plugins.php [deleted file]
theme/mymobile/lang/en/theme_mymobile.php [deleted file]
theme/mymobile/layout/embedded.php [deleted file]
theme/mymobile/layout/general.php [deleted file]
theme/mymobile/lib.php [deleted file]
theme/mymobile/pix/07-map-marker.png [deleted file]
theme/mymobile/pix/41-picture-frame.png [deleted file]
theme/mymobile/pix/83-calendar.png [deleted file]
theme/mymobile/pix/ajax-loader.png [deleted file]
theme/mymobile/pix/ajax-loader2.gif [deleted file]
theme/mymobile/pix/ajax-loader2.png [deleted file]
theme/mymobile/pix/clip.png [deleted file]
theme/mymobile/pix/empty.gif [deleted file]
theme/mymobile/pix/favicon.ico [deleted file]
theme/mymobile/pix/form-check-off.png [deleted file]
theme/mymobile/pix/form-check-on.png [deleted file]
theme/mymobile/pix/form-radio-off.png [deleted file]
theme/mymobile/pix/form-radio-on.png [deleted file]
theme/mymobile/pix/header.png [deleted file]
theme/mymobile/pix/ibulb.png [deleted file]
theme/mymobile/pix/icalendar.png [deleted file]
theme/mymobile/pix/icalendarI4.png [deleted file]
theme/mymobile/pix/icon-arrow-white-down.png [deleted file]
theme/mymobile/pix/icon-arrow-white-left.png [deleted file]
theme/mymobile/pix/icon-arrow-white-right.png [deleted file]
theme/mymobile/pix/icon-arrow-white-up.png [deleted file]
theme/mymobile/pix/icon-delete.png [deleted file]
theme/mymobile/pix/icon-minus-white.png [deleted file]
theme/mymobile/pix/icon-plus-white.png [deleted file]
theme/mymobile/pix/icon-search-black.png [deleted file]
theme/mymobile/pix/icons-18-black.png [deleted file]
theme/mymobile/pix/icons-18-white.png [deleted file]
theme/mymobile/pix/icons-36-black.png [deleted file]
theme/mymobile/pix/icons-36-white.png [deleted file]
theme/mymobile/pix/imessage.png [deleted file]
theme/mymobile/pix/imessageI4.png [deleted file]
theme/mymobile/pix/iuser.png [deleted file]
theme/mymobile/pix/iuserI4.png [deleted file]
theme/mymobile/pix/linevert.png [deleted file]
theme/mymobile/pix/m2m.png [deleted file]
theme/mymobile/pix/m2m2x.png [deleted file]
theme/mymobile/pix/m2ms.png [deleted file]
theme/mymobile/pix/navs.png [deleted file]
theme/mymobile/pix/navsI4.png [deleted file]
theme/mymobile/pix/newnav.png [deleted file]
theme/mymobile/pix/newnav_s.png [deleted file]
theme/mymobile/pix/photos.png [deleted file]
theme/mymobile/pix/pinstripes.png [deleted file]
theme/mymobile/pix/power.png [deleted file]
theme/mymobile/pix/req.png [deleted file]
theme/mymobile/pix/screenshot.png [deleted file]
theme/mymobile/pix/texture_05.png [deleted file]
theme/mymobile/pix/texture_075.png [deleted file]
theme/mymobile/pix_core/a/help.png [deleted file]
theme/mymobile/pix_core/a/refresh.png [deleted file]
theme/mymobile/pix_core/a/search.png [deleted file]
theme/mymobile/pix_core/a/setting.png [deleted file]
theme/mymobile/pix_core/c/event.png [deleted file]
theme/mymobile/pix_core/docs.png [deleted file]
theme/mymobile/pix_core/f/audio.png [deleted file]
theme/mymobile/pix_core/f/avi.png [deleted file]
theme/mymobile/pix_core/f/dmg.png [deleted file]
theme/mymobile/pix_core/f/docm.png [deleted file]
theme/mymobile/pix_core/f/docx.png [deleted file]
theme/mymobile/pix_core/f/excel.png [deleted file]
theme/mymobile/pix_core/f/image.png [deleted file]
theme/mymobile/pix_core/f/text.png [deleted file]
theme/mymobile/pix_core/f/video.png [deleted file]
theme/mymobile/pix_core/f/web.png [deleted file]
theme/mymobile/pix_core/help.png [deleted file]
theme/mymobile/pix_core/i/admin.png [deleted file]
theme/mymobile/pix_core/i/backup.png [deleted file]
theme/mymobile/pix_core/i/calc.png [deleted file]
theme/mymobile/pix_core/i/checkpermissions.png [deleted file]
theme/mymobile/pix_core/i/closed.png [deleted file]
theme/mymobile/pix_core/i/cohort.png [deleted file]
theme/mymobile/pix_core/i/completion-auto-n.png [deleted file]
theme/mymobile/pix_core/i/completion-auto-y.png [deleted file]
theme/mymobile/pix_core/i/completion-manual-n.png [deleted file]
theme/mymobile/pix_core/i/completion-manual-y.png [deleted file]
theme/mymobile/pix_core/i/course.png [deleted file]
theme/mymobile/pix_core/i/courseevent.png [deleted file]
theme/mymobile/pix_core/i/db.png [deleted file]
theme/mymobile/pix_core/i/edit.png [deleted file]
theme/mymobile/pix_core/i/email.png [deleted file]
theme/mymobile/pix_core/i/files.png [deleted file]
theme/mymobile/pix_core/i/filter.png [deleted file]
theme/mymobile/pix_core/i/flagged.png [deleted file]
theme/mymobile/pix_core/i/grades.png [deleted file]
theme/mymobile/pix_core/i/group.png [deleted file]
theme/mymobile/pix_core/i/groupevent.png [deleted file]
theme/mymobile/pix_core/i/guest.png [deleted file]
theme/mymobile/pix_core/i/info.png [deleted file]
theme/mymobile/pix_core/i/item.png [deleted file]
theme/mymobile/pix_core/i/lock.png [deleted file]
theme/mymobile/pix_core/i/log.png [deleted file]
theme/mymobile/pix_core/i/mail.png [deleted file]
theme/mymobile/pix_core/i/menu.png [deleted file]
theme/mymobile/pix_core/i/navigationitem.png [deleted file]
theme/mymobile/pix_core/i/new.png [deleted file]
theme/mymobile/pix_core/i/news.png [deleted file]
theme/mymobile/pix_core/i/open.png [deleted file]
theme/mymobile/pix_core/i/payment.png [deleted file]
theme/mymobile/pix_core/i/publish.png [deleted file]
theme/mymobile/pix_core/i/reload.png [deleted file]
theme/mymobile/pix_core/i/report.png [deleted file]
theme/mymobile/pix_core/i/return.png [deleted file]
theme/mymobile/pix_core/i/rss.png [deleted file]
theme/mymobile/pix_core/i/search.png [deleted file]
theme/mymobile/pix_core/i/siteevent.png [deleted file]
theme/mymobile/pix_core/i/stats.png [deleted file]
theme/mymobile/pix_core/i/switch.png [deleted file]
theme/mymobile/pix_core/i/unflagged.png [deleted file]
theme/mymobile/pix_core/i/unlock.png [deleted file]
theme/mymobile/pix_core/i/user.png [deleted file]
theme/mymobile/pix_core/i/userevent.png [deleted file]
theme/mymobile/pix_core/i/users.png [deleted file]
theme/mymobile/pix_core/req.png [deleted file]
theme/mymobile/pix_core/t/add.png [deleted file]
theme/mymobile/pix_core/t/adddir.png [deleted file]
theme/mymobile/pix_core/t/addfile.png [deleted file]
theme/mymobile/pix_core/t/approve.png [deleted file]
theme/mymobile/pix_core/t/check.png [deleted file]
theme/mymobile/pix_core/t/collapsed.png [deleted file]
theme/mymobile/pix_core/t/delete.png [deleted file]
theme/mymobile/pix_core/t/down.png [deleted file]
theme/mymobile/pix_core/t/edit.png [deleted file]
theme/mymobile/pix_core/t/email.png [deleted file]
theme/mymobile/pix_core/t/expanded.png [deleted file]
theme/mymobile/pix_core/t/groupn.png [deleted file]
theme/mymobile/pix_core/t/hiddenuntil.png [deleted file]
theme/mymobile/pix_core/t/hideuntil.png [deleted file]
theme/mymobile/pix_core/t/left.png [deleted file]
theme/mymobile/pix_core/t/lock.png [deleted file]
theme/mymobile/pix_core/t/log.png [deleted file]
theme/mymobile/pix_core/t/message.png [deleted file]
theme/mymobile/pix_core/t/move.png [deleted file]
theme/mymobile/pix_core/t/portfolioadd.png [deleted file]
theme/mymobile/pix_core/t/preview.png [deleted file]
theme/mymobile/pix_core/t/ranges.png [deleted file]
theme/mymobile/pix_core/t/reload.png [deleted file]
theme/mymobile/pix_core/t/restore.png [deleted file]
theme/mymobile/pix_core/t/right.png [deleted file]
theme/mymobile/pix_core/t/unlock.png [deleted file]
theme/mymobile/pix_core/t/up.png [deleted file]
theme/mymobile/pix_core/t/user.png [deleted file]
theme/mymobile/pix_core/u/f1.png [deleted file]
theme/mymobile/pix_core/u/f2.png [deleted file]
theme/mymobile/pix_core/u/user100.png [deleted file]
theme/mymobile/pix_core/u/user35.png [deleted file]
theme/mymobile/pix_plugins/mod/assignment/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/book/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/chat/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/choice/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/data/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/feedback/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/folder/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/forum/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/glossary/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/glossary/print.png [deleted file]
theme/mymobile/pix_plugins/mod/label/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/lams/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/lesson/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/mail/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/page/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/quiz/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/resource/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/scorm/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/survey/icon.png [deleted file]
theme/mymobile/pix_plugins/mod/wiki/icon.png [deleted file]
theme/mymobile/readme_moodle.txt [deleted file]
theme/mymobile/renderers.php [deleted file]
theme/mymobile/renderers/mod_choice_renderer.php [deleted file]
theme/mymobile/settings.php [deleted file]
theme/mymobile/style/core.css [deleted file]
theme/mymobile/style/jmobile131.css [deleted file]
theme/mymobile/style/jmobile131_rtl.css [deleted file]
theme/mymobile/style/media.css [deleted file]
theme/mymobile/version.php [deleted file]
theme/splash/style/pagelayout.css
theme/upgrade.txt
version.php

index 7d74072..bd2cf9f 100644 (file)
@@ -329,7 +329,7 @@ class tool_generator_course_backend extends tool_generator_backend {
         $number = self::$parampages[$this->size];
         $this->log('createpages', $number, true);
         for ($i = 0; $i < $number; $i++) {
-            $record = array('course' => $this->course->id);
+            $record = array('course' => $this->course);
             $options = array('section' => $this->get_target_section());
             $pagegenerator->create_instance($record, $options);
             $this->dot($i, $number);
@@ -347,7 +347,7 @@ class tool_generator_course_backend extends tool_generator_backend {
 
         // Create resource with default textfile only.
         $resourcegenerator = $this->generator->get_plugin_generator('mod_resource');
-        $record = array('course' => $this->course->id,
+        $record = array('course' => $this->course,
                 'name' => get_string('smallfiles', 'tool_generator'));
         $options = array('section' => 0);
         $resource = $resourcegenerator->create_instance($record, $options);
@@ -415,7 +415,7 @@ class tool_generator_course_backend extends tool_generator_backend {
         $resourcegenerator = $this->generator->get_plugin_generator('mod_resource');
         for ($i = 0; $i < $count; $i++) {
             // Create resource.
-            $record = array('course' => $this->course->id,
+            $record = array('course' => $this->course,
                     'name' => get_string('bigfile', 'tool_generator', $i));
             $options = array('section' => $this->get_target_section());
             $resource = $resourcegenerator->create_instance($record, $options);
@@ -458,7 +458,7 @@ class tool_generator_course_backend extends tool_generator_backend {
 
         // Create empty forum.
         $forumgenerator = $this->generator->get_plugin_generator('mod_forum');
-        $record = array('course' => $this->course->id,
+        $record = array('course' => $this->course,
                 'name' => get_string('pluginname', 'forum'));
         $options = array('section' => 0);
         $forum = $forumgenerator->create_instance($record, $options);
index e759c43..be0da1c 100644 (file)
@@ -140,15 +140,32 @@ class tool_installaddon_installer {
         $fp = get_file_packer('application/zip');
         $files = $fp->extract_to_pathname($zipfilepath, $targetdir);
 
-        if ($files) {
-            if (!empty($rootdir)) {
-                $files = $this->rename_extracted_rootdir($targetdir, $rootdir, $files);
-            }
-            return $files;
-
-        } else {
+        if (!$files) {
             return array();
         }
+
+        if (!empty($rootdir)) {
+            $files = $this->rename_extracted_rootdir($targetdir, $rootdir, $files);
+        }
+
+        // Sometimes zip may not contain all parent directories, add them to make it consistent.
+        foreach ($files as $path => $status) {
+            if ($status !== true) {
+                continue;
+            }
+            $parts = explode('/', trim($path, '/'));
+            while (array_pop($parts)) {
+                if (empty($parts)) {
+                    break;
+                }
+                $dir = implode('/', $parts).'/';
+                if (!isset($files[$dir])) {
+                    $files[$dir] = true;
+                }
+            }
+        }
+
+        return $files;
     }
 
     /**
index 948294c..3ebf2f7 100644 (file)
@@ -42,7 +42,7 @@ class tool_installaddon_installer_testcase extends advanced_testcase {
         $this->assertEquals(1, preg_match('~^site=(.+)$~', $query, $matches));
         $site = rawurldecode($matches[1]);
         $site = json_decode(base64_decode($site), true);
-        $this->assertEquals('array', gettype($site));
+        $this->assertInternalType('array', $site);
         $this->assertEquals(3, count($site));
         $this->assertSame('Nasty site', $site['fullname']);
         $this->assertSame('file:///etc/passwd', $site['url']);
@@ -57,8 +57,8 @@ class tool_installaddon_installer_testcase extends advanced_testcase {
 
         $installer = tool_installaddon_installer::instance();
         $files = $installer->extract_installfromzip_file($sourcedir.'/testinvalidroot.zip', $contentsdir, 'fixed_root');
-        $this->assertEquals('array', gettype($files));
-        $this->assertEquals(4, count($files));
+        $this->assertInternalType('array', $files);
+        $this->assertCount(4, $files);
         $this->assertSame(true, $files['fixed_root/']);
         $this->assertSame(true, $files['fixed_root/lang/']);
         $this->assertSame(true, $files['fixed_root/lang/en/']);
index dd55653..d0342f5 100644 (file)
@@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
  * @copyright 2013 David Mudrak <david@moodle.com>
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_installaddon_validator_test extends basic_testcase {
+class tool_installaddon_validator_testcase extends basic_testcase {
 
     public function test_validate_files_layout() {
         $fixtures = dirname(__FILE__).'/fixtures';
@@ -159,8 +159,8 @@ class tool_installaddon_validator_test extends basic_testcase {
         $this->assertEquals('foobar', $validator->get_rootdir());
         $this->assertTrue($this->has_message($validator->get_messages(), $validator::INFO, 'rootdir', 'foobar'));
         $versionphpinfo = $validator->get_versionphp_info();
-        $this->assertEquals('array', gettype($versionphpinfo));
-        $this->assertEquals(4, count($versionphpinfo));
+        $this->assertInternalType('array', $versionphpinfo);
+        $this->assertCount(4, $versionphpinfo);
         $this->assertEquals(2013031900, $versionphpinfo['version']);
         $this->assertEquals(2013031200, $versionphpinfo['requires']);
         $this->assertEquals('local_foobar', $versionphpinfo['component']);
@@ -279,8 +279,8 @@ class tool_installaddon_validator_test extends basic_testcase {
         $this->assertEquals('testable_tool_installaddon_validator', get_class($validator));
 
         $info = $validator->testable_parse_version_php($fixtures.'/version1.php');
-        $this->assertEquals('array', gettype($info));
-        $this->assertEquals(7, count($info));
+        $this->assertInternalType('array', $info);
+        $this->assertCount(7, $info);
         $this->assertEquals('block_foobar', $info['plugin->component']);    // Later in the file.
         $this->assertEquals('2013010100', $info['plugin->version']);        // Numeric wins over strings.
         $this->assertEquals('2012122401', $info['plugin->requires']);       // Commented.
index af51a7c..914e4ab 100644 (file)
@@ -559,7 +559,7 @@ abstract class backup_cron_automated_helper {
     public static function set_state_running($running = true) {
         if ($running === true) {
             if (self::get_automated_backup_state() === self::STATE_RUNNING) {
-                throw new backup_exception('backup_automated_already_running');
+                throw new backup_helper_exception('backup_automated_already_running');
             }
             set_config('backup_auto_running', '1', 'backup');
         } else {
index 1ed3a1b..cc1a0d4 100644 (file)
@@ -43,6 +43,8 @@ class core_badges_badgeslib_testcase extends advanced_testcase {
 
         unset_config('noemailever');
 
+        $CFG->enablecompletion = true;
+
         $user = $this->getDataGenerator()->create_user();
 
         $fordb = new stdClass();
@@ -69,7 +71,7 @@ class core_badges_badgeslib_testcase extends advanced_testcase {
         $this->badgeid = $DB->insert_record('badge', $fordb, true);
 
         // Create a course with activity and auto completion tracking.
-        $this->course = $this->getDataGenerator()->create_course();
+        $this->course = $this->getDataGenerator()->create_course(array('enablecompletion' => true));
         $this->user = $this->getDataGenerator()->create_user();
         $studentrole = $DB->get_record('role', array('shortname' => 'student'));
         $this->assertNotEmpty($studentrole);
index 62e63b3..7cdd2dd 100644 (file)
@@ -9,50 +9,242 @@ Feature: Award badges
     And I log in as "admin"
 
   @javascript
-  Scenario: Add criteria
+  Scenario: Award profile badge
     Given I expand "Site administration" node
     And I expand "Badges" node
     And I follow "Add a new badge"
     And I fill the moodle form with:
-      | Name | Test Badge |
+      | Name | Profile Badge |
       | Description | Test badge description |
       | issuername | Test Badge Site |
       | issuercontact | testuser@test-badge-site.com |
     And I upload "badges/tests/behat/badge.png" file to "Image" filepicker
     And I press "Create badge"
     And I select "Profile completion" from "type"
-    And I wait "5" seconds
     And I check "First name"
     And I check "Email address"
+    And I check "Phone"
     When I press "Save"
     Then I should see "Profile completion"
     And I should see "First name"
     And I should see "Email address"
     And I should not see "Criteria for this badge have not been set up yet."
+    And I press "Enable access"
+    And I press "Continue"
+    And I expand "My profile settings" node
+    And I follow "Edit profile"
+    And I expand all fieldsets
+    And I fill in "Phone" with "123456789"
+    And I press "Update profile"
+    And I follow "My badges"
+    Then I should see "Profile Badge"
+    And I should not see "There are no badges available."
 
   @javascript
-  Scenario: Earn badge
-    Given I expand "Site administration" node
+  Scenario: Award site badge
+    Given the following "users" exists:
+      | username | firstname | lastname | email |
+      | teacher | teacher | 1 | teacher1@asd.com |
+      | student | student | 1 | student1@asd.com |
+    And I expand "Site administration" node
     And I expand "Badges" node
     And I follow "Add a new badge"
     And I fill the moodle form with:
-      | Name | Profile Badge |
-      | Description | Test badge description |
-      | issuername | Test Badge Site |
-      | issuercontact | testuser@test-badge-site.com |
+      | Name | Site Badge |
+      | Description | Site badge description |
+      | issuername | Tester of site badge |
     And I upload "badges/tests/behat/badge.png" file to "Image" filepicker
     And I press "Create badge"
-    And I select "Profile completion" from "type"
-    And I wait "5" seconds
-    And I check "Phone"
+    And I select "Manual issue by role" from "type"
+    And I check "Teacher"
     And I press "Save"
     And I press "Enable access"
     And I press "Continue"
-    And I expand "My profile settings" node
-    And I follow "Edit profile"
-    And I expand all fieldsets
-    And I fill in "Phone" with "123456789"
-    And I press "Update profile"
-    When I follow "My badges"
-    Then I should see "Profile Badge"
-    And I should not see "There are no badges available."
+    And I follow "Recipients (0)"
+    And I press "Award badge"
+    And I select "teacher 1 (teacher1@asd.com)" from "potentialrecipients[]"
+    And I press "Award badge"
+    And I select "student 1 (student1@asd.com)" from "potentialrecipients[]"
+    And I press "Award badge"
+    When I follow "Site Badge"
+    Then I should see "Recipients (2)"
+    And I log out
+    And I log in as "student"
+    And I expand "My profile" node
+    And I follow "My badges"
+    Then I should see "Site Badge"
+
+  @javascript
+  Scenario: Award course badge
+    Given the following "users" exists:
+      | username | firstname | lastname | email |
+      | teacher1 | Teacher | 1 | teacher1@asd.com |
+      | student1 | Student | 1 | student1@asd.com |
+      | student2 | Student | 2 | student2@asd.com |
+    And the following "courses" exists:
+      | fullname | shortname | category | groupmode |
+      | Course 1 | C1 | 0 | 1 |
+    And the following "course enrolments" exists:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+      | student2 | C1 | student |
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I click on "//span[text()='Badges']" "xpath_element" in the "Administration" "block"
+    And I follow "Add a new badge"
+    And I fill the moodle form with:
+      | Name | Course Badge |
+      | Description | Course badge description |
+      | issuername | Tester of course badge |
+    And I upload "badges/tests/behat/badge.png" file to "Image" filepicker
+    And I press "Create badge"
+    And I select "Manual issue by role" from "type"
+    And I check "Teacher"
+    And I press "Save"
+    And I press "Enable access"
+    And I press "Continue"
+    And I follow "Recipients (0)"
+    And I press "Award badge"
+    And I select "Student 2 (student2@asd.com)" from "potentialrecipients[]"
+    And I press "Award badge"
+    And I select "Student 1 (student1@asd.com)" from "potentialrecipients[]"
+    When I press "Award badge"
+    And I follow "Course Badge"
+    Then I should see "Recipients (2)"
+    And I log out
+    And I log in as "student1"
+    And I follow "Course 1"
+    And I expand "My profile" node
+    And I follow "My badges"
+    Then I should see "Course Badge"
+
+  @javascript
+  Scenario: Award badge on activity completion
+    Given the following "courses" exists:
+      | fullname | shortname | category |
+      | Course 1 | C1 | 0 |
+    And the following "users" exists:
+      | username | firstname | lastname | email |
+      | teacher1 | Teacher | Frist | teacher1@asd.com |
+      | student1 | Student | First | student1@asd.com |
+    And the following "course enrolments" exists:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+    And I log out
+    And I log in as "admin"
+    And I set the following administration settings values:
+      | Enable completion tracking | 1 |
+    And I follow "Home"
+    And I follow "Course 1"
+    And I follow "Edit settings"
+    And I fill the moodle form with:
+      | Enable completion tracking | Yes |
+    And I press "Save changes"
+    And I turn editing mode on
+    And I add a "Assignment" to section "1" and I fill the form with:
+      | Assignment name | Test assignment name |
+      | Description | Submit your online text |
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I click on "//span[text()='Badges']" "xpath_element" in the "Administration" "block"
+    And I follow "Add a new badge"
+    And I fill the moodle form with:
+      | Name | Course Badge |
+      | Description | Course badge description |
+      | issuername | Tester of course badge |
+    And I upload "badges/tests/behat/badge.png" file to "Image" filepicker
+    And I press "Create badge"
+    And I select "Activity completion" from "type"
+    And I check "Test assignment name"
+    And I press "Save"
+    And I press "Enable access"
+    When I press "Continue"
+    And I log out
+    And I log in as "student1"
+    And I follow "Course 1"
+    And I expand "My profile" node
+    And I follow "My badges"
+    Then I should see "There are no badges available."
+    And I follow "Home"
+    And I follow "Course 1"
+    And I press "Mark as complete: Test assignment name"
+    And I expand "My profile" node
+    And I follow "My badges"
+    Then I should see "Course Badge"
+
+  @javascript
+  Scenario: Award badge on course completion
+    Given the following "courses" exists:
+      | fullname | shortname | category |
+      | Course 1 | C1 | 0 |
+    And the following "users" exists:
+      | username | firstname | lastname | email |
+      | teacher1 | Teacher | Frist | teacher1@asd.com |
+      | student1 | Student | First | student1@asd.com |
+    And the following "course enrolments" exists:
+      | user | course | role |
+      | teacher1 | C1 | editingteacher |
+      | student1 | C1 | student |
+    And I log out
+    And I log in as "admin"
+    And I set the following administration settings values:
+      | Enable completion tracking | 1 |
+    And I follow "Home"
+    And I follow "Course 1"
+    And I follow "Edit settings"
+    And I fill the moodle form with:
+      | Enable completion tracking | Yes |
+    And I press "Save changes"
+    And I turn editing mode on
+    And I add a "Assignment" to section "1" and I fill the form with:
+      | Assignment name | Test assignment name |
+      | Description | Submit your online text |
+      | assignsubmission_onlinetext_enabled | 1 |
+    And I follow "Course completion"
+    And I select "2" from "id_overall_aggregation"
+    And I click on "Condition: Activity completion" "link"
+    And I check "Assign - Test assignment name"
+    And I press "Save changes"
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    And I click on "//span[text()='Badges']" "xpath_element" in the "Administration" "block"
+    And I follow "Add a new badge"
+    And I fill the moodle form with:
+      | Name | Course Badge |
+      | Description | Course badge description |
+      | issuername | Tester of course badge |
+    And I upload "badges/tests/behat/badge.png" file to "Image" filepicker
+    And I press "Create badge"
+    And I select "Course completion" from "type"
+    And I fill the moodle form with:
+      | grade_2 | 0 |
+    And I press "Save"
+    And I press "Enable access"
+    When I press "Continue"
+    And I log out
+    And I log in as "student1"
+    And I follow "Course 1"
+    And I expand "My profile" node
+    And I follow "My badges"
+    Then I should see "There are no badges available."
+    And I follow "Home"
+    And I follow "Course 1"
+    And I press "Mark as complete: Test assignment name"
+    And I log out
+    And I log in as "admin"
+    # We can't wait for cron to happen, so the admin manually triggers it.
+    And I trigger cron
+    # The admin needs to trigger cron twice to see the completion status as completed.
+    And I trigger cron
+    # Finally the admin goes back to homepage to continue the user story.
+    And I am on homepage
+    And I log out
+    And I log in as "student1"
+    And I expand "My profile" node
+    And I follow "My badges"
+    Then I should see "Course Badge"
\ No newline at end of file
index 9890661..c236d9f 100644 (file)
@@ -81,8 +81,10 @@ function block_html_pluginfile($course, $birecord_or_cm, $context, $filearea, $a
         $forcedownload = true;
     }
 
+    // NOTE: it woudl be nice to have file revisions here, for now rely on standard file lifetime,
+    //       do not lower it because the files are dispalyed very often.
     \core\session\manager::write_close();
-    send_stored_file($file, 60*60, 0, $forcedownload, $options);
+    send_stored_file($file, null, 0, $forcedownload, $options);
 }
 
 /**
index 7367119..a7d52fe 100644 (file)
@@ -210,4 +210,11 @@ abstract class type_base {
      * @return array the converted date
      */
     public abstract function convert_from_gregorian($year, $month, $day, $hour = 0, $minute = 0);
+
+    /**
+     * This return locale for windows os.
+     *
+     * @return string locale
+     */
+    public abstract function locale_win_charset();
 }
index e596edf..ab725d1 100644 (file)
@@ -305,4 +305,13 @@ class structure extends type_base {
             'hour' => (int) $hour,
             'minute' => (int) $minute);
     }
+
+    /**
+     * This return locale for windows os.
+     *
+     * @return string locale
+     */
+    public function locale_win_charset() {
+        return get_string('localewincharset', 'langconfig');
+    }
 }
index 0c9ee7d..950d859 100644 (file)
@@ -418,4 +418,13 @@ class structure extends type_base {
 
         return $date;
     }
+
+    /**
+     * This return locale for windows os.
+     *
+     * @return string locale
+     */
+    public function locale_win_charset() {
+        return get_string('localewincharset', 'langconfig');
+    }
 }
index 472d05e..45ff5a8 100644 (file)
@@ -8,6 +8,6 @@
     "require-dev": {
         "phpunit/phpunit": "3.7.*",
         "phpunit/dbUnit": "1.2.*",
-        "moodlehq/behat-extension": "1.25.6"
+        "moodlehq/behat-extension": "1.26.*"
     }
 }
index 3050973..08a50a0 100644 (file)
@@ -201,7 +201,7 @@ $CFG->admin = 'admin';
 //
 // Seconds for files to remain in caches. Decrease this if you are worried
 // about students being served outdated versions of uploaded files.
-//     $CFG->filelifetime = 86400;
+//     $CFG->filelifetime = 60*60*6;
 //
 // Some web servers can offload the file serving from PHP process,
 // comment out one the following options to enable it in Moodle:
index 3ad88b5..b5d03e1 100644 (file)
@@ -3242,6 +3242,7 @@ function course_get_url($courseorid, $section = null, $options = array()) {
  *
  * @param object $module
  * @return object the created module info
+ * @throws moodle_exception if user is not allowed to perform the action or module is not allowed in this course
  */
 function create_module($moduleinfo) {
     global $DB, $CFG;
@@ -3263,9 +3264,6 @@ function create_module($moduleinfo) {
     $course = $DB->get_record('course', array('id'=>$moduleinfo->course), '*', MUST_EXIST);
     list($module, $context, $cw) = can_add_moduleinfo($course, $moduleinfo->modulename, $moduleinfo->section);
 
-    // Load module library.
-    include_modulelib($module->name);
-
     // Add the module.
     $moduleinfo->module = $module->id;
     $moduleinfo = add_moduleinfo($moduleinfo, $course, null);
@@ -3282,6 +3280,7 @@ function create_module($moduleinfo) {
  *
  * @param object $module
  * @return object the updated module info
+ * @throws moodle_exception if current user is not allowed to update the module
  */
 function update_module($moduleinfo) {
     global $DB, $CFG;
@@ -3297,9 +3296,6 @@ function update_module($moduleinfo) {
     // Some checks (capaibility / existing instances).
     list($cm, $context, $module, $data, $cw) = can_update_moduleinfo($cm);
 
-    // Load module library.
-    include_modulelib($module->name);
-
     // Retrieve few information needed by update_moduleinfo.
     $moduleinfo->modulename = $cm->modname;
     if (!isset($moduleinfo->scale)) {
index 3e6ef68..83b33ce 100644 (file)
@@ -252,8 +252,6 @@ if (file_exists($modmoodleform)) {
     print_error('noformdesc');
 }
 
-include_modulelib($module->name);
-
 $mformclassname = 'mod_'.$module->name.'_mod_form';
 $mform = new $mformclassname($data, $cw->section, $cm, $course);
 $mform->set_data($data);
index efbf6a1..42df746 100644 (file)
@@ -44,6 +44,9 @@ require_once($CFG->dirroot.'/course/lib.php');
 function add_moduleinfo($moduleinfo, $course, $mform = null) {
     global $DB, $CFG;
 
+    // Attempt to include module library before we make any changes to DB.
+    include_modulelib($moduleinfo->modulename);
+
     $moduleinfo->course = $course->id;
     $moduleinfo = set_moduleinfo_defaults($moduleinfo);
 
@@ -51,10 +54,6 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
         $moduleinfo->groupmode = 0; // Do not set groupmode.
     }
 
-    if (!course_allowed_module($course, $moduleinfo->modulename)) {
-        print_error('moduledisable', '', '', $moduleinfo->modulename);
-    }
-
     // First add course_module record because we need the context.
     $newcm = new stdClass();
     $newcm->course           = $course->id;
@@ -62,6 +61,9 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
     $newcm->instance         = 0; // Not known yet, will be updated later (this is similar to restore code).
     $newcm->visible          = $moduleinfo->visible;
     $newcm->visibleold       = $moduleinfo->visible;
+    if (isset($moduleinfo->cmidnumber)) {
+        $newcm->idnumber         = $moduleinfo->cmidnumber;
+    }
     $newcm->groupmode        = $moduleinfo->groupmode;
     $newcm->groupingid       = $moduleinfo->groupingid;
     $newcm->groupmembersonly = $moduleinfo->groupmembersonly;
@@ -87,7 +89,8 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
         print_error('cannotaddcoursemodule');
     }
 
-    if (plugin_supports('mod', $moduleinfo->modulename, FEATURE_MOD_INTRO, true)) {
+    if (plugin_supports('mod', $moduleinfo->modulename, FEATURE_MOD_INTRO, true) &&
+            isset($moduleinfo->introeditor)) {
         $introeditor = $moduleinfo->introeditor;
         unset($moduleinfo->introeditor);
         $moduleinfo->intro       = $introeditor['text'];
@@ -103,9 +106,9 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
         $DB->delete_records('course_modules', array('id'=>$moduleinfo->coursemodule));
 
         if (!is_number($returnfromfunc)) {
-            print_error('invalidfunction', '', course_get_url($course, $cw->section));
+            print_error('invalidfunction', '', course_get_url($course, $moduleinfo->section));
         } else {
-            print_error('cannotaddnewmodule', '', course_get_url($course, $cw->section), $moduleinfo->modulename);
+            print_error('cannotaddnewmodule', '', course_get_url($course, $moduleinfo->section), $moduleinfo->modulename);
         }
     }
 
@@ -126,15 +129,6 @@ function add_moduleinfo($moduleinfo, $course, $mform = null) {
     // So we have to update one of them twice.
     $sectionid = course_add_cm_to_section($course, $moduleinfo->coursemodule, $moduleinfo->section);
 
-    // Make sure visibility is set correctly (in particular in calendar).
-    // Note: allow them to set it even without moodle/course:activityvisibility.
-    set_coursemodule_visible($moduleinfo->coursemodule, $moduleinfo->visible);
-
-    if (isset($moduleinfo->cmidnumber)) { // Label.
-        // Set cm idnumber - uniqueness is already verified by form validation.
-        set_coursemodule_idnumber($moduleinfo->coursemodule, $moduleinfo->cmidnumber);
-    }
-
     // Set up conditions.
     if ($CFG->enableavailability) {
         condition_info::update_cm_from_form((object)array('id'=>$moduleinfo->coursemodule), $moduleinfo, false);
@@ -177,9 +171,11 @@ function edit_module_post_actions($moduleinfo, $course) {
     global $CFG;
 
     $modcontext = context_module::instance($moduleinfo->coursemodule);
+    $hasgrades = plugin_supports('mod', $moduleinfo->modulename, FEATURE_GRADE_HAS_GRADE, false);
+    $hasoutcomes = plugin_supports('mod', $moduleinfo->modulename, FEATURE_GRADE_OUTCOMES, true);
 
     // Sync idnumber with grade_item.
-    if ($grade_item = grade_item::fetch(array('itemtype'=>'mod', 'itemmodule'=>$moduleinfo->modulename,
+    if ($hasgrades && $grade_item = grade_item::fetch(array('itemtype'=>'mod', 'itemmodule'=>$moduleinfo->modulename,
                  'iteminstance'=>$moduleinfo->instance, 'itemnumber'=>0, 'courseid'=>$course->id))) {
         if ($grade_item->idnumber != $moduleinfo->cmidnumber) {
             $grade_item->idnumber = $moduleinfo->cmidnumber;
@@ -187,8 +183,12 @@ function edit_module_post_actions($moduleinfo, $course) {
         }
     }
 
-    $items = grade_item::fetch_all(array('itemtype'=>'mod', 'itemmodule'=>$moduleinfo->modulename,
+    if ($hasgrades) {
+        $items = grade_item::fetch_all(array('itemtype'=>'mod', 'itemmodule'=>$moduleinfo->modulename,
                                          'iteminstance'=>$moduleinfo->instance, 'courseid'=>$course->id));
+    } else {
+        $items = array();
+    }
 
     // Create parent category if requested and move to correct parent category.
     if ($items and isset($moduleinfo->gradecat)) {
@@ -213,7 +213,7 @@ function edit_module_post_actions($moduleinfo, $course) {
     }
 
     // Add outcomes if requested.
-    if ($outcomes = grade_outcome::fetch_all_available($course->id)) {
+    if ($hasoutcomes && $outcomes = grade_outcome::fetch_all_available($course->id)) {
         $grade_items = array();
 
         // Outcome grade_item.itemnumber start at 1000, there is nothing above outcomes.
@@ -292,8 +292,10 @@ function edit_module_post_actions($moduleinfo, $course) {
         $moduleinfo->showgradingmanagement = $showgradingmanagement;
     }
 
-    rebuild_course_cache($course->id);
-    grade_regrade_final_grades($course->id);
+    rebuild_course_cache($course->id, true);
+    if ($hasgrades) {
+        grade_regrade_final_grades($course->id);
+    }
     require_once($CFG->libdir.'/plagiarismlib.php');
     plagiarism_save_form_elements($moduleinfo);
 
@@ -308,7 +310,6 @@ function edit_module_post_actions($moduleinfo, $course) {
  * @return object the completed module info
  */
 function set_moduleinfo_defaults($moduleinfo) {
-    global $DB;
 
     if (empty($moduleinfo->coursemodule)) {
         // Add.
@@ -361,6 +362,7 @@ function set_moduleinfo_defaults($moduleinfo) {
  * @param object $modulename the module name
  * @param object $section the section of the module
  * @return array list containing module, context, course section.
+ * @throws moodle_exception if user is not allowed to perform the action or module is not allowed in this course
  */
 function can_add_moduleinfo($course, $modulename, $section) {
     global $DB;
@@ -385,6 +387,7 @@ function can_add_moduleinfo($course, $modulename, $section) {
  *
  * @param object $cm course module
  * @return array - list of course module, context, module, moduleinfo, and course section.
+ * @throws moodle_exception if user is not allowed to perform the action
  */
 function can_update_moduleinfo($cm) {
     global $DB;
@@ -420,6 +423,9 @@ function can_update_moduleinfo($cm) {
 function update_moduleinfo($cm, $moduleinfo, $course, $mform = null) {
     global $DB, $CFG;
 
+    // Attempt to include module library before we make any changes to DB.
+    include_modulelib($moduleinfo->modulename);
+
     $moduleinfo->course = $course->id;
     $moduleinfo = set_moduleinfo_defaults($moduleinfo);
 
@@ -515,6 +521,7 @@ function update_moduleinfo($cm, $moduleinfo, $course, $mform = null) {
  * Include once the module lib file.
  *
  * @param string $modulename module name of the lib to include
+ * @throws moodle_exception if lib.php file for the module does not exist
  */
 function include_modulelib($modulename) {
     global $CFG;
index c1a464e..a47affe 100644 (file)
@@ -363,7 +363,7 @@ class core_course_renderer extends plugin_renderer_base {
 
         $menu = new action_menu();
         $menu->set_owner_selector($ownerselector);
-        $menu->set_contraint($constraint);
+        $menu->set_constraint($constraint);
         $menu->set_alignment(action_menu::TL, action_menu::TR);
         if (isset($CFG->modeditingmenu) && !$CFG->modeditingmenu || !empty($displayoptions['donotenhance'])) {
             $menu->do_not_enhance();
index bfbe870..3dc8449 100644 (file)
--- a/file.php
+++ b/file.php
@@ -36,12 +36,6 @@ define('NO_DEBUG_DISPLAY', true);
 require_once('config.php');
 require_once('lib/filelib.php');
 
-if (!isset($CFG->filelifetime)) {
-    $lifetime = 86400;     // Seconds for files to remain in caches
-} else {
-    $lifetime = $CFG->filelifetime;
-}
-
 $relativepath  = get_file_argument();
 $forcedownload = optional_param('forcedownload', 0, PARAM_BOOL);
 
@@ -112,6 +106,6 @@ if ($file->get_filename() == '.') {
 // finally send the file
 // ========================================
 \core\session\manager::write_close(); // Unlock session during file serving.
-send_stored_file($file, $lifetime, $CFG->filteruploadedfiles, $forcedownload);
+send_stored_file($file, null, $CFG->filteruploadedfiles, $forcedownload);
 
 
index e27bcaa..6c97879 100644 (file)
@@ -201,9 +201,9 @@ class core_files_renderer extends plugin_renderer_base {
     <div class="fp-navbar">
         <div class="filemanager-toolbar">
             <div class="fp-toolbar">
-                <div class="{!}fp-btn-add"><a role="button" href="#"><img src="'.$this->pix_url('a/add_file').'" alt="'.$straddfile.'" /></a></div>
-                <div class="{!}fp-btn-mkdir"><a role="button" href="#"><img src="'.$this->pix_url('a/create_folder').'" alt="'.$strmakedir.'" /></a></div>
-                <div class="{!}fp-btn-download"><a role="button" href="#"><img src="'.$this->pix_url('a/download_all').'" alt="'.$strdownload.'" /></a></div>
+                <div class="{!}fp-btn-add"><a role="button" title="'.$straddfile.'" href="#"><img src="'.$this->pix_url('a/add_file').'" alt="" /></a></div>
+                <div class="{!}fp-btn-mkdir"><a role="button" title="'.$strmakedir.'" href="#"><img src="'.$this->pix_url('a/create_folder').'" alt="" /></a></div>
+                <div class="{!}fp-btn-download"><a role="button" title="'.$strdownload.'" href="#"><img src="'.$this->pix_url('a/download_all').'" alt="" /></a></div>
             </div>
             <div class="{!}fp-viewbar">
                 <a title="'. get_string('displayicons', 'repository') .'" class="{!}fp-vb-icons" href="#"><img alt="" src="'. $this->pix_url('fp/view_icon_active', 'theme') .'" /></a>
@@ -534,10 +534,10 @@ class core_files_renderer extends plugin_renderer_base {
                 <div class="{!}fp-toolbar">
                     <div class="{!}fp-tb-back"><a href="#">'.get_string('back', 'repository').'</a></div>
                     <div class="{!}fp-tb-search"><form></form></div>
-                    <div class="{!}fp-tb-refresh"><a href="#"><img alt="'. get_string('refresh', 'repository') .'"  src="'.$this->pix_url('a/refresh').'" /></a></div>
-                    <div class="{!}fp-tb-logout"><a href="#"><img alt="'. get_string('logout', 'repository') .'" src="'.$this->pix_url('a/logout').'" /></a></div>
-                    <div class="{!}fp-tb-manage"><a href="#"><img alt="'. get_string('settings', 'repository') .'" src="'.$this->pix_url('a/setting').'" /></a></div>
-                    <div class="{!}fp-tb-help"><a href="#"><img alt="'. get_string('help', 'repository') .'" src="'.$this->pix_url('a/help').'" /></a></div>
+                    <div class="{!}fp-tb-refresh"><a title="'. get_string('refresh', 'repository') .'" href="#"><img alt=""  src="'.$this->pix_url('a/refresh').'" /></a></div>
+                    <div class="{!}fp-tb-logout"><a title="'. get_string('logout', 'repository') .'" href="#"><img alt="" src="'.$this->pix_url('a/logout').'" /></a></div>
+                    <div class="{!}fp-tb-manage"><a title="'. get_string('settings', 'repository') .'" href="#"><img alt="" src="'.$this->pix_url('a/setting').'" /></a></div>
+                    <div class="{!}fp-tb-help"><a title="'. get_string('help', 'repository') .'" href="#"><img alt="" src="'.$this->pix_url('a/help').'" /></a></div>
                     <div class="{!}fp-tb-message"></div>
                 </div>
                 <div class="{!}fp-viewbar">
index 5c57e2c..2f4283d 100644 (file)
@@ -134,6 +134,11 @@ class filter_glossary extends moodle_text_filter {
                 foreach ($concepts as $key => $concept) {
                     // Trim empty or unlinkable concepts
                     $currentconcept = trim(strip_tags($concept->concept));
+
+                    // Concept must be HTML-escaped, so do the same as format_string
+                    // to turn ampersands into &amp;.
+                    $currentconcept = replace_ampersands_not_followed_by_entity($currentconcept);
+
                     if (empty($currentconcept)) {
                         unset($concepts[$key]);
                         continue;
@@ -171,10 +176,14 @@ class filter_glossary extends moodle_text_filter {
                                       '&amp;mode=cat&amp;hook='.$concept->id.'">';
                 } else { // Link to entry or alias
                     if (!empty($concept->originalconcept)) {  // We are dealing with an alias (so show and point to original)
-                        $title = str_replace('"', "'", strip_tags($glossaryname.': '.$concept->originalconcept));
+                        $title = str_replace('"', "'", html_entity_decode(
+                                strip_tags($glossaryname.': '.$concept->originalconcept)));
                         $concept->id = $concept->entryid;
                     } else { // This is an entry
-                        $title = str_replace('"', "'", strip_tags($glossaryname.': '.$concept->concept));
+                        // We need to remove entities from the content here because it
+                        // will be escaped by html_writer below.
+                        $title = str_replace('"', "'", html_entity_decode(
+                                strip_tags($glossaryname.': '.$concept->concept)));
                     }
                     // hardcoding dictionary format in the URL rather than defaulting
                     // to the current glossary format which may not work in a popup.
diff --git a/filter/glossary/tests/filter_test.php b/filter/glossary/tests/filter_test.php
new file mode 100644 (file)
index 0000000..c8f3966
--- /dev/null
@@ -0,0 +1,80 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Unit tests.
+ *
+ * @package filter_glossary
+ * @category test
+ * @copyright 2013 The Open University
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+global $CFG;
+require_once($CFG->dirroot . '/filter/glossary/filter.php'); // Include the code to test.
+
+/**
+ * Test case for glossary.
+ */
+class filter_glossary_filter_testcase extends advanced_testcase {
+
+    /**
+     * Test ampersands.
+     */
+    public function test_ampersands() {
+        global $CFG;
+        $this->resetAfterTest(true);
+
+        // Enable glossary filter at top level.
+        filter_set_global_state('glossary', TEXTFILTER_ON);
+        $CFG->glossary_linkentries = 1;
+
+        // Create a test course.
+        $course = $this->getDataGenerator()->create_course();
+        $context = context_course::instance($course->id);
+
+        // Create a glossary.
+        $glossary = $this->getDataGenerator()->create_module('glossary',
+                array('course' => $course->id, 'mainglossary' => 1));
+
+        // Create two entries with ampersands and one normal entry.
+        $generator = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
+        $normal = $generator->create_content($glossary, array('concept' => 'normal'));
+        $amp1 = $generator->create_content($glossary, array('concept' => 'A&B'));
+        $amp2 = $generator->create_content($glossary, array('concept' => 'C&amp;D'));
+
+        // Format text with all three entries in HTML.
+        $html = '<p>A&amp;B C&amp;D normal</p>';
+        $filtered = format_text($html, FORMAT_HTML, array('context' => $context));
+
+        // Find all the glossary links in the result.
+        $matches = array();
+        preg_match_all('~courseid=' . $course->id . '&amp;eid=([0-9]+).*?title="(.*?)"~', $filtered, $matches);
+
+        // There should be 3 glossary links.
+        $this->assertEquals(3, count($matches[1]));
+        $this->assertEquals($amp1->id, $matches[1][0]);
+        $this->assertEquals($amp2->id, $matches[1][1]);
+        $this->assertEquals($normal->id, $matches[1][2]);
+
+        // Check text and escaping of title attribute.
+        $this->assertEquals($glossary->name . ': A&amp;B', $matches[2][0]);
+        $this->assertEquals($glossary->name . ': C&amp;D', $matches[2][1]);
+        $this->assertEquals($glossary->name . ': normal', $matches[2][2]);
+    }
+}
index a97ebb5..461edde 100644 (file)
@@ -46,6 +46,7 @@ $string['cachedef_coursemodinfo'] = 'Accumulated information about modules and s
 $string['cachedef_databasemeta'] = 'Database meta information';
 $string['cachedef_eventinvalidation'] = 'Event invalidation';
 $string['cachedef_externalbadges'] = 'External badges for particular user';
+$string['cachedef_gradecondition'] = 'User grades cached for evaluating conditional availability';
 $string['cachedef_groupdata'] = 'Course group information';
 $string['cachedef_htmlpurifier'] = 'HTML Purifier - cleaned content';
 $string['cachedef_langmenu'] = 'List of available languages';
index 9ad0ca4..b5ca099 100644 (file)
@@ -356,6 +356,13 @@ class core_plugin_manager {
 
         $types = core_component::get_plugin_types();
 
+        if (!isset($types[$type])) {
+            // Orphaned subplugins!
+            $plugintypeclass = self::resolve_plugininfo_class($type);
+            $this->pluginsinfo[$type] = $plugintypeclass::get_plugins($type, null, $plugintypeclass);
+            return $this->pluginsinfo[$type];
+        }
+
         /** @var \core\plugininfo\base $plugintypeclass */
         $plugintypeclass = self::resolve_plugininfo_class($type);
         $plugins = $plugintypeclass::get_plugins($type, $types[$type], $plugintypeclass);
@@ -386,6 +393,14 @@ class core_plugin_manager {
         foreach ($plugintypes as $plugintype => $plugintyperootdir) {
             $this->pluginsinfo[$plugintype] = null;
         }
+
+        // Add orphaned subplugin types.
+        $this->load_installed_plugins();
+        foreach ($this->installedplugins as $plugintype => $unused) {
+            if (!isset($plugintypes[$plugintype])) {
+                $this->pluginsinfo[$plugintype] = null;
+            }
+        }
     }
 
     /**
@@ -395,6 +410,11 @@ class core_plugin_manager {
      * @return string name of pluginfo class for give plugin type
      */
     public static function resolve_plugininfo_class($type) {
+        $plugintypes = core_component::get_plugin_types();
+        if (!isset($plugintypes[$type])) {
+            return '\core\plugininfo\orphaned';
+        }
+
         $parent = core_component::get_subtype_parent($type);
 
         if ($parent) {
@@ -604,9 +624,9 @@ class core_plugin_manager {
      */
     public function get_plugin_info($component) {
         list($type, $name) = core_component::normalize_component($component);
-        $plugins = $this->get_plugins();
-        if (isset($plugins[$type][$name])) {
-            return $plugins[$type][$name];
+        $plugins = $this->get_plugins_of_type($type);
+        if (isset($plugins[$name])) {
+            return $plugins[$name];
         } else {
             return null;
         }
@@ -1083,7 +1103,7 @@ class core_plugin_manager {
             'theme' => array(
                 'afterburner', 'anomaly', 'arialist', 'base', 'binarius', 'bootstrapbase',
                 'boxxie', 'brick', 'canvas', 'clean', 'formal_white', 'formfactor',
-                'fusion', 'leatherbound', 'magazine', 'mymobile', 'nimble',
+                'fusion', 'leatherbound', 'magazine', 'nimble',
                 'nonzero', 'overlay', 'serenity', 'sky_high', 'splash',
                 'standard', 'standardold'
             ),
diff --git a/lib/classes/plugininfo/orphaned.php b/lib/classes/plugininfo/orphaned.php
new file mode 100644 (file)
index 0000000..ec78d39
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Defines class used for orphaned subplugins.
+ *
+ * @package    core
+ * @copyright  2013 Petr Skoda {@link http://skodak.org}
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+namespace core\plugininfo;
+
+defined('MOODLE_INTERNAL') || die();
+
+
+/**
+ * Orphaned subplugins class.
+ */
+class orphaned extends base {
+    public function is_uninstall_allowed() {
+        return true;
+    }
+
+    /**
+     * We do not know if orphaned subplugins are enabled.
+     * @return bool
+     */
+    public function is_enabled() {
+        return null;
+    }
+
+    /**
+     * No lang strings are present.
+     */
+    public function init_display_name() {
+        $this->displayname = $this->component;
+    }
+
+    /**
+     * Oprhaned plugins can not be enabled.
+     * @return array|null of enabled plugins $pluginname=>$pluginname, null means unknown
+     */
+    public static function get_enabled_plugins() {
+        return null;
+    }
+
+    /**
+     * Gathers and returns the information about all plugins of the given type,
+     * either on disk or previously installed.
+     *
+     * @param string $type the name of the plugintype, eg. mod, auth or workshopform
+     * @param string $typerootdir full path to the location of the plugin dir
+     * @param string $typeclass the name of the actually called class
+     * @return array of plugintype classes, indexed by the plugin name
+     */
+    public static function get_plugins($type, $typerootdir, $typeclass) {
+        $return = array();
+        $manager = \core_plugin_manager::instance();
+        $plugins = $manager->get_installed_plugins($type);
+
+        foreach ($plugins as $name => $version) {
+            $plugin              = new $typeclass();
+            $plugin->type        = $type;
+            $plugin->typerootdir = $typerootdir;
+            $plugin->name        = $name;
+            $plugin->rootdir     = null;
+            $plugin->displayname = $name;
+            $plugin->versiondb   = $version;
+            $plugin->init_is_standard();
+
+            $return[$name] = $plugin;
+        }
+
+        return $return;
+    }
+}
index f253c43..564a4b2 100644 (file)
@@ -1151,7 +1151,6 @@ abstract class condition_info_base {
      *
      * @global stdClass $USER
      * @global moodle_database $DB
-     * @global stdClass $SESSION
      * @param int $gradeitemid Grade item ID we're interested in
      * @param bool $grabthelot If true, grabs all scores for current user on
      *   this course, so that later ones come from cache
@@ -1161,71 +1160,73 @@ abstract class condition_info_base {
      *   or 37.21), or false if user does not have a grade yet
      */
     private function get_cached_grade_score($gradeitemid, $grabthelot=false, $userid=0) {
-        global $USER, $DB, $SESSION;
-        if ($userid==0 || $userid==$USER->id) {
-            // For current user, go via cache in session
-            if (empty($SESSION->gradescorecache) || $SESSION->gradescorecacheuserid!=$USER->id) {
-                $SESSION->gradescorecache = array();
-                $SESSION->gradescorecacheuserid = $USER->id;
-            }
-            if (!array_key_exists($gradeitemid, $SESSION->gradescorecache)) {
-                if ($grabthelot) {
-                    // Get all grades for the current course
-                    $rs = $DB->get_recordset_sql('
-                            SELECT
-                                gi.id,gg.finalgrade,gg.rawgrademin,gg.rawgrademax
-                            FROM
-                                {grade_items} gi
-                                LEFT JOIN {grade_grades} gg ON gi.id=gg.itemid AND gg.userid=?
-                            WHERE
-                                gi.courseid = ?', array($USER->id, $this->item->course));
-                    foreach ($rs as $record) {
-                        $SESSION->gradescorecache[$record->id] =
-                            is_null($record->finalgrade)
-                                // No grade = false
-                                ? false
-                                // Otherwise convert grade to percentage
-                                : (($record->finalgrade - $record->rawgrademin) * 100) /
-                                    ($record->rawgrademax - $record->rawgrademin);
+        global $USER, $DB;
+        if (!$userid) {
+            $userid = $USER->id;
+        }
+        $cache = cache::make('core', 'gradecondition');
+        if (($cachedgrades = $cache->get($userid)) === false) {
+            $cachedgrades = array();
+        }
+        if (!array_key_exists($gradeitemid, $cachedgrades)) {
+            if ($grabthelot) {
+                // Get all grades for the current course
+                $rs = $DB->get_recordset_sql('
+                        SELECT
+                            gi.id,gg.finalgrade,gg.rawgrademin,gg.rawgrademax
+                        FROM
+                            {grade_items} gi
+                            LEFT JOIN {grade_grades} gg ON gi.id=gg.itemid AND gg.userid=?
+                        WHERE
+                            gi.courseid = ?', array($userid, $this->item->course));
+                foreach ($rs as $record) {
+                    $cachedgrades[$record->id] =
+                        is_null($record->finalgrade)
+                            // No grade = false
+                            ? false
+                            // Otherwise convert grade to percentage
+                            : (($record->finalgrade - $record->rawgrademin) * 100) /
+                                ($record->rawgrademax - $record->rawgrademin);
 
-                    }
-                    $rs->close();
-                    // And if it's still not set, well it doesn't exist (eg
-                    // maybe the user set it as a condition, then deleted the
-                    // grade item) so we call it false
-                    if (!array_key_exists($gradeitemid, $SESSION->gradescorecache)) {
-                        $SESSION->gradescorecache[$gradeitemid] = false;
-                    }
-                } else {
-                    // Just get current grade
-                    $record = $DB->get_record('grade_grades', array(
-                        'userid'=>$USER->id, 'itemid'=>$gradeitemid));
-                    if ($record && !is_null($record->finalgrade)) {
-                        $score = (($record->finalgrade - $record->rawgrademin) * 100) /
-                            ($record->rawgrademax - $record->rawgrademin);
-                    } else {
-                        // Treat the case where row exists but is null, same as
-                        // case where row doesn't exist
-                        $score = false;
-                    }
-                    $SESSION->gradescorecache[$gradeitemid]=$score;
                 }
-            }
-            return $SESSION->gradescorecache[$gradeitemid];
-        } else {
-            // Not the current user, so request the score individually
-            $record = $DB->get_record('grade_grades', array(
-                'userid'=>$userid, 'itemid'=>$gradeitemid));
-            if ($record && !is_null($record->finalgrade)) {
-                $score = (($record->finalgrade - $record->rawgrademin) * 100) /
-                    ($record->rawgrademax - $record->rawgrademin);
+                $rs->close();
+                // And if it's still not set, well it doesn't exist (eg
+                // maybe the user set it as a condition, then deleted the
+                // grade item) so we call it false
+                if (!array_key_exists($gradeitemid, $cachedgrades)) {
+                    $cachedgrades[$gradeitemid] = false;
+                }
             } else {
-                // Treat the case where row exists but is null, same as
-                // case where row doesn't exist
-                $score = false;
+                // Just get current grade
+                $record = $DB->get_record('grade_grades', array(
+                    'userid'=>$userid, 'itemid'=>$gradeitemid));
+                if ($record && !is_null($record->finalgrade)) {
+                    $score = (($record->finalgrade - $record->rawgrademin) * 100) /
+                        ($record->rawgrademax - $record->rawgrademin);
+                } else {
+                    // Treat the case where row exists but is null, same as
+                    // case where row doesn't exist
+                    $score = false;
+                }
+                $cachedgrades[$gradeitemid]=$score;
             }
-            return $score;
+            $cache->set($userid, $cachedgrades);
         }
+        return $cachedgrades[$gradeitemid];
+    }
+
+    /**
+     * Called by grade code to inform the completion system when a grade has
+     * been changed. Grades can be used to determine condition for
+     * the course-module or section.
+     *
+     * Note that this function may be called twice for one changed grade object.
+     *
+     * @param grade_grade $grade
+     * @param bool $deleted
+     */
+    public static function inform_grade_changed($grade, $deleted) {
+        cache::make('core', 'gradecondition')->delete($grade->userid);
     }
 
     /**
@@ -1389,16 +1390,12 @@ abstract class condition_info_base {
     }
 
     /**
-     * For testing only. Wipes information cached in user session.
-     *
-     * @global stdClass $SESSION
+     * For testing only. Wipes information cached in cache.
+     * Replaced with {@link core_conditionlib_testcase::wipe_condition_cache()}
+     * @deprecated since 2.6
      */
     static function wipe_session_cache() {
-        global $SESSION;
-        unset($SESSION->gradescorecache);
-        unset($SESSION->gradescorecacheuserid);
-        unset($SESSION->userfieldcache);
-        unset($SESSION->userfieldcacheuserid);
+        cache::make('core', 'gradecondition')->purge();
     }
 
     /**
index a728d55..c882073 100644 (file)
@@ -205,4 +205,11 @@ $definitions = array(
         'simplekeys' => true,
         'simpledata' => true
     ),
+    // Used to cache user grades for conditional availability purposes.
+    'gradecondition' => array(
+        'mode' => cache_store::MODE_APPLICATION,
+        'staticacceleration' => true,
+        'staticaccelerationsize' => 2, // Should not be required for more than one user at a time.
+        'ttl' => 3600,
+    ),
 );
index edf21a9..7604f3e 100644 (file)
@@ -2774,5 +2774,38 @@ function xmldb_main_upgrade($oldversion) {
         upgrade_main_savepoint(true, 2013102500.01);
     }
 
+    if ($oldversion < 2013110400.00) {
+
+        if (!check_dir_exists($CFG->dirroot . '/theme/mymobile', false)) {
+            // Delete from config_plugins.
+            $DB->delete_records('config_plugins', array('plugin' => 'theme_mymobile'));
+            // Delete the config logs.
+            $DB->delete_records('config_log', array('plugin' => 'theme_mymobile'));
+
+            // Replace the mymobile settings.
+            $DB->set_field('course', 'theme', 'clean', array('theme' => 'mymobile'));
+            $DB->set_field('course_categories', 'theme', 'clean', array('theme' => 'mymobile'));
+            $DB->set_field('user', 'theme', 'clean', array('theme' => 'mymobile'));
+            $DB->set_field('mnet_host', 'theme', 'clean', array('theme' => 'mymobile'));
+
+            // Replace the theme configs.
+            if (get_config('core', 'theme') == 'mymobile') {
+                set_config('theme', 'clean');
+            }
+            if (get_config('core', 'thememobile') == 'mymobile') {
+                set_config('thememobile', 'clean');
+            }
+            if (get_config('core', 'themelegacy') == 'mymobile') {
+                set_config('themelegacy', 'clean');
+            }
+            if (get_config('core', 'themetablet') == 'mymobile') {
+                set_config('themetablet', 'clean');
+            }
+        }
+
+        // Main savepoint reached.
+        upgrade_main_savepoint(true, 2013110400.00);
+    }
+
     return true;
 }
index b827df3..f0253fc 100644 (file)
@@ -2226,7 +2226,7 @@ function send_temp_file_finished($path) {
  * @category files
  * @param string $path Path of file on disk (including real filename), or actual content of file as string
  * @param string $filename Filename to send
- * @param int $lifetime Number of seconds before the file should expire from caches (default 24 hours)
+ * @param int $lifetime Number of seconds before the file should expire from caches (null means $CFG->filelifetime)
  * @param int $filter 0 (default)=no filtering, 1=all files, 2=html files only
  * @param bool $pathisstring If true (default false), $path is the content to send and not the pathname
  * @param bool $forcedownload If true (default false), forces download of file rather than view in browser/plugin
@@ -2237,20 +2237,15 @@ function send_temp_file_finished($path) {
  *                        and should not be reopened.
  * @return null script execution stopped unless $dontdie is true
  */
-function send_file($path, $filename, $lifetime = 'default' , $filter=0, $pathisstring=false, $forcedownload=false, $mimetype='', $dontdie=false) {
+function send_file($path, $filename, $lifetime = null , $filter=0, $pathisstring=false, $forcedownload=false, $mimetype='', $dontdie=false) {
     global $CFG, $COURSE;
 
     if ($dontdie) {
         ignore_user_abort(true);
     }
 
-    // MDL-11789, apply $CFG->filelifetime here
-    if ($lifetime === 'default') {
-        if (!empty($CFG->filelifetime)) {
-            $lifetime = $CFG->filelifetime;
-        } else {
-            $lifetime = 86400;
-        }
+    if ($lifetime === 'default' or is_null($lifetime)) {
+        $lifetime = $CFG->filelifetime;
     }
 
     \core\session\manager::write_close(); // Unlock session during file serving.
@@ -2356,13 +2351,13 @@ function send_file($path, $filename, $lifetime = 'default' , $filter=0, $pathiss
  *
  * @category files
  * @param stored_file $stored_file local file object
- * @param int $lifetime Number of seconds before the file should expire from caches (default 24 hours)
+ * @param int $lifetime Number of seconds before the file should expire from caches (null means $CFG->filelifetime)
  * @param int $filter 0 (default)=no filtering, 1=all files, 2=html files only
  * @param bool $forcedownload If true (default false), forces download of file rather than view in browser/plugin
  * @param array $options additional options affecting the file serving
  * @return null script execution stopped unless $options['dontdie'] is true
  */
-function send_stored_file($stored_file, $lifetime=86400 , $filter=0, $forcedownload=false, array $options=array()) {
+function send_stored_file($stored_file, $lifetime=null, $filter=0, $forcedownload=false, array $options=array()) {
     global $CFG, $COURSE;
 
     if (empty($options['filename'])) {
@@ -2377,6 +2372,10 @@ function send_stored_file($stored_file, $lifetime=86400 , $filter=0, $forcedownl
         $dontdie = true;
     }
 
+    if ($lifetime === 'default' or is_null($lifetime)) {
+        $lifetime = $CFG->filelifetime;
+    }
+
     if (!empty($options['preview'])) {
         // replace the file with its preview
         $fs = get_file_storage();
@@ -4556,10 +4555,8 @@ function file_pluginfile($relativepath, $forcedownload, $preview = null) {
                 send_file_not_found();
             }
 
-            $lifetime = isset($CFG->filelifetime) ? $CFG->filelifetime : 86400;
-
             // finally send the file
-            send_stored_file($file, $lifetime, 0, false, array('preview' => $preview));
+            send_stored_file($file, null, 0, false, array('preview' => $preview));
         }
 
         $filefunction = $component.'_pluginfile';
index 5f848ec..0f6072c 100644 (file)
@@ -81,7 +81,7 @@ class filter_manager {
     public static function instance() {
         global $CFG;
         if (is_null(self::$singletoninstance)) {
-            if (!empty($CFG->perfdebug)) {
+            if (!empty($CFG->perfdebug) and $CFG->perfdebug > 7) {
                 self::$singletoninstance = new performance_measuring_filter_manager();
             } else {
                 self::$singletoninstance = new self();
index dcad9dc..681549b 100644 (file)
@@ -64,7 +64,7 @@ class MoodleQuickForm_searchableselector extends MoodleQuickForm_select{
      */
     function toHtml(){
         global $OUTPUT;
-        if ($this->_hiddenLabel){
+        if ($this->_hiddenLabel || $this->_flagFrozen) {
             return parent::toHtml();
         } else {
             // Javascript for the search/selection fields
index a51586b..fc89d1f 100644 (file)
@@ -772,12 +772,7 @@ class grade_grade extends grade_object {
      * @param bool $deleted True if grade was actually deleted
      */
     function notify_changed($deleted) {
-        global $USER, $SESSION, $CFG,$COURSE, $DB;
-
-        // Grades may be cached in user session
-        if ($USER->id == $this->userid) {
-            unset($SESSION->gradescorecache[$this->itemid]);
-        }
+        global $CFG;
 
         // Ignore during restore
         // TODO There should be a proper way to determine when we are in restore
@@ -787,6 +782,12 @@ class grade_grade extends grade_object {
             return;
         }
 
+        // Inform conditionlib since it may cache the grades for conditional availability of modules or sections.
+        if (!empty($CFG->enableavailability)) {
+            require_once($CFG->libdir.'/conditionlib.php');
+            condition_info_base::inform_grade_changed($this, $deleted);
+        }
+
         require_once($CFG->libdir.'/completionlib.php');
 
         // Bail out immediately if completion is not enabled for site (saves loading
@@ -804,11 +805,7 @@ class grade_grade extends grade_object {
         }
 
         // Use $COURSE if available otherwise get it via item fields
-        if(!empty($COURSE) && $COURSE->id == $this->grade_item->courseid) {
-            $course = $COURSE;
-        } else {
-            $course = $DB->get_record('course', array('id'=>$this->grade_item->courseid));
-        }
+        $course = get_course($this->grade_item->courseid, false);
 
         // Bail out if completion is not enabled for course
         $completion = new completion_info($course);
index 2cf904a..97797d9 100644 (file)
@@ -2187,8 +2187,16 @@ function userdate($date, $format = '', $timezone = 99, $fixday = true, $fixhour
  */
 function date_format_string($date, $format, $tz = 99) {
     global $CFG;
+
+    $localewincharset = null;
+    // Get the calendar type user is using.
+    if ($CFG->ostype == 'WINDOWS') {
+        $calendartype = \core_calendar\type_factory::get_calendar_instance();
+        $localewincharset = $calendartype->locale_win_charset();
+    }
+
     if (abs($tz) > 13) {
-        if ($CFG->ostype == 'WINDOWS' and $localewincharset = get_string('localewincharset', 'langconfig')) {
+        if ($localewincharset) {
             $format = core_text::convert($format, 'utf-8', $localewincharset);
             $datestring = strftime($format, $date);
             $datestring = core_text::convert($datestring, $localewincharset, 'utf-8');
@@ -2196,7 +2204,7 @@ function date_format_string($date, $format, $tz = 99) {
             $datestring = strftime($format, $date);
         }
     } else {
-        if ($CFG->ostype == 'WINDOWS' and $localewincharset = get_string('localewincharset', 'langconfig')) {
+        if ($localewincharset) {
             $format = core_text::convert($format, 'utf-8', $localewincharset);
             $datestring = gmstrftime($format, $date);
             $datestring = core_text::convert($datestring, $localewincharset, 'utf-8');
@@ -8611,7 +8619,8 @@ function message_popup_window() {
     }
 
     // Got unread messages so now do another query that joins with the user table.
-    $messagesql = "SELECT m.id, m.smallmessage, m.fullmessageformat, m.notification, u.firstname, u.lastname
+    $namefields = get_all_user_name_fields(true, 'u');
+    $messagesql = "SELECT m.id, m.smallmessage, m.fullmessageformat, m.notification, $namefields
                      FROM {message} m
                      JOIN {message_working} mw ON m.id=mw.unreadmessageid
                      JOIN {message_processors} p ON mw.processorid=p.id
index 03f7d22..7a7b355 100644 (file)
@@ -3312,7 +3312,7 @@ class action_menu implements renderable {
      *
      * @param string $ancestorselector A snippet of CSS used to identify the ancestor to contrain the dialogue to.
      */
-    public function set_contraint($ancestorselector) {
+    public function set_constraint($ancestorselector) {
         $this->attributessecondary['data-constraint'] = $ancestorselector;
     }
 
index 39a7cec..04ccfe4 100644 (file)
@@ -1057,6 +1057,7 @@ class core_renderer extends renderer_base {
         if ($blockid !== null) {
             $menu->set_owner_selector('#'.$blockid);
         }
+        $menu->set_constraint('.block-region');
         $menu->attributes['class'] .= ' block-control-actions commands';
         if (isset($CFG->blockeditingmenu) && !$CFG->blockeditingmenu) {
             $menu->do_not_enhance();
@@ -3199,7 +3200,12 @@ EOD;
             'data-blockregion' => $displayregion,
             'data-droptarget' => '1'
         );
-        return html_writer::tag($tag, $this->blocks_for_region($region), $attributes);
+        if ($this->page->blocks->region_has_content($region, $this)) {
+            $content = $this->blocks_for_region($region);
+        } else {
+            $content = '';
+        }
+        return html_writer::tag($tag, $content, $attributes);
     }
 
     /**
index 2ea564e..40173a4 100644 (file)
@@ -766,6 +766,11 @@ if (!PHPUNIT_TEST and !defined('BEHAT_TEST')) {
     $USER    =& $_SESSION['USER'];
 }
 
+// Initialise some variables that are supposed to be set in config.php only.
+if (!isset($CFG->filelifetime)) {
+    $CFG->filelifetime = 60*60*6;
+}
+
 // Late profiling, only happening if early one wasn't started
 if (!empty($CFG->profilingenabled)) {
     require_once($CFG->libdir . '/xhprof/xhprof_moodle.php');
index 09b1c29..82657f7 100644 (file)
@@ -70,6 +70,12 @@ abstract class testing_module_generator extends component_generator_base {
 
     /**
      * Create course module and link it to course
+     *
+     * Since 2.6 it is recommended to use function add_moduleinfo() to create a module.
+     *
+     * @deprecated since 2.6
+     * @see testing_module_generator::create_instance()
+     *
      * @param integer $courseid
      * @param array $options section, visible
      * @return integer $cm instance id
@@ -110,6 +116,12 @@ abstract class testing_module_generator extends component_generator_base {
 
     /**
      * Called after *_add_instance()
+     *
+     * Since 2.6 it is recommended to use function add_moduleinfo() to create a module.
+     *
+     * @deprecated since 2.6
+     * @see testing_module_generator::create_instance()
+     *
      * @param int $id
      * @param int $cmid
      * @return stdClass module instance
@@ -130,12 +142,145 @@ abstract class testing_module_generator extends component_generator_base {
     }
 
     /**
-     * Create a test module
-     * @param array|stdClass $record
-     * @param array $options
-     * @return stdClass activity record
+     * Merges together arguments $record and $options and fills default module
+     * fields that are shared by all module types
+     *
+     * @param object|array $record fields (different from defaults) for this module
+     * @param null|array $options for backward-compatibility this may include fields from course_modules
+     *     table. They are merged into $record
+     * @throws coding_exception if $record->course is not specified
      */
-    abstract public function create_instance($record = null, array $options = null);
+    protected function prepare_moduleinfo_record($record, $options) {
+        global $DB;
+        // Make sure we don't modify the original object.
+        $moduleinfo = (object)(array)$record;
+
+        if (empty($moduleinfo->course)) {
+            throw new coding_exception('module generator requires $record->course');
+        }
+
+        $moduleinfo->modulename = $this->get_modulename();
+        $moduleinfo->module = $DB->get_field('modules', 'id', array('name' => $moduleinfo->modulename));
+
+        // Allow idnumber to be set as either $options['idnumber'] or $moduleinfo->cmidnumber or $moduleinfo->idnumber.
+        // The actual field name is 'idnumber' but add_moduleinfo() expects 'cmidnumber'.
+        if (isset($options['idnumber'])) {
+            $moduleinfo->cmidnumber = $options['idnumber'];
+        } else if (!isset($moduleinfo->cmidnumber) && isset($moduleinfo->idnumber)) {
+            $moduleinfo->cmidnumber = $moduleinfo->idnumber;
+        }
+
+        // These are the fields from table 'course_modules' in 2.6 when the second
+        // argument $options is being deprecated.
+        // List excludes fields: instance (does not exist yet), course, module and idnumber (set above)
+        $easymergefields = array('section', 'added', 'score', 'indent',
+            'visible', 'visibleold', 'groupmode', 'groupingid', 'groupmembersonly',
+            'completion', 'completiongradeitemnumber', 'completionview', 'completionexpected',
+            'availablefrom', 'availableuntil', 'showavailability', 'showdescription');
+        foreach ($easymergefields as $key) {
+            if (isset($options[$key])) {
+                $moduleinfo->$key = $options[$key];
+            }
+        }
+
+        // Set default values. Note that visibleold and completiongradeitemnumber are not used when creating a module.
+        $defaults = array(
+            'section' => 0,
+            'visible' => 1,
+            'cmidnumber' => '',
+            'groupmode' => 0,
+            'groupingid' => 0,
+            'groupmembersonly' => 0,
+            'showavailability' => 0,
+            'availablefrom' => 0,
+            'availableuntil' => 0,
+            'completion' => 0,
+            'completionview' => 0,
+            'completionexpected' => 0,
+            'conditiongradegroup' => array(),
+            'conditionfieldgroup' => array(),
+            'conditioncompletiongroup' => array()
+        );
+        foreach ($defaults as $key => $value) {
+            if (!isset($moduleinfo->$key)) {
+                $moduleinfo->$key = $value;
+            }
+        }
+
+        return $moduleinfo;
+    }
+
+    /**
+     * Creates an instance of the module for testing purposes.
+     *
+     * Module type will be taken from the class name. Each module type may overwrite
+     * this function to add other default values used by it.
+     *
+     * @param array|stdClass $record data for module being generated. Requires 'course' key
+     *     (an id or the full object). Also can have any fields from add module form.
+     * @param null|array $options general options for course module. Since 2.6 it is
+     *     possible to omit this argument by merging options into $record
+     * @return stdClass record from module-defined table with additional field
+     *     cmid (corresponding id in course_modules table)
+     */
+    public function create_instance($record = null, array $options = null) {
+        global $CFG, $DB;
+        require_once($CFG->dirroot.'/course/modlib.php');
+
+        $this->instancecount++;
+
+        // Merge options into record and add default values.
+        $record = $this->prepare_moduleinfo_record($record, $options);
+
+        // Retrieve the course record.
+        if (!empty($record->course->id)) {
+            $course = $record->course;
+            $record->course = $record->course->id;
+        } else {
+            $course = get_course($record->course);
+        }
+
+        // Fill the name and intro with default values (if missing).
+        if (empty($record->name)) {
+            $record->name = get_string('pluginname', $this->get_modulename()).' '.$this->instancecount;
+        }
+        if (empty($record->introeditor) && empty($record->intro)) {
+            $record->intro = 'Test '.$this->get_modulename().' ' . $this->instancecount;
+        }
+        if (empty($record->introeditor) && empty($record->introformat)) {
+            $record->introformat = FORMAT_MOODLE;
+        }
+
+        // Before Moodle 2.6 it was possible to create a module with completion tracking when
+        // it is not setup for course and/or site-wide. Display debugging message so it is
+        // easier to trace an error in unittests.
+        if ($record->completion && empty($CFG->enablecompletion)) {
+            debugging('Did you forget to set $CFG->enablecompletion before generating module with completion tracking?', DEBUG_DEVELOPER);
+        }
+        if ($record->completion && empty($course->enablecompletion)) {
+            debugging('Did you forget to enable completion tracking for the course before generating module with completion tracking?', DEBUG_DEVELOPER);
+        }
+
+        // Add the module to the course.
+        $moduleinfo = add_moduleinfo($record, $course, $mform = null);
+
+        // Prepare object to return with additional field cmid.
+        $instance = $DB->get_record($this->get_modulename(), array('id' => $moduleinfo->instance), '*', MUST_EXIST);
+        $instance->cmid = $moduleinfo->coursemodule;
+        return $instance;
+    }
+
+    /**
+     * Generates a piece of content for the module.
+     * User is usually taken from global $USER variable.
+     * @param stdClass $instance object returned from create_instance() call
+     * @param stdClass|array $record
+     * @return stdClass generated object
+     * @throws coding_exception if function is not implemented by module
+     */
+    public function create_content($instance, $record = array()) {
+        throw new coding_exception('Module generator for '.$this->get_modulename().' does not implement method create_content()');
+    }
 }
 
 /**
index e9aeedc..110f28f 100644 (file)
@@ -108,7 +108,7 @@ class core_test_generator_testcase extends advanced_testcase {
     }
 
     public function test_create_module() {
-        global $CFG, $SITE;
+        global $CFG, $SITE, $DB;
         if (!file_exists("$CFG->dirroot/mod/page/")) {
             $this->markTestSkipped('Can not find standard Page module');
         }
@@ -125,6 +125,191 @@ class core_test_generator_testcase extends advanced_testcase {
         $this->assertNotEmpty($page);
         $cm = get_coursemodule_from_instance('page', $page->id, $SITE->id, true);
         $this->assertEquals(3, $cm->sectionnum);
+
+        // Prepare environment to generate modules with all possible options.
+
+        // Enable advanced functionality.
+        $CFG->enablecompletion = 1;
+        $CFG->enableavailability = 1;
+        $CFG->enablegroupmembersonly = 1;
+        $CFG->enableoutcomes = 1;
+        require_once($CFG->libdir.'/gradelib.php');
+        require_once($CFG->libdir.'/completionlib.php');
+        require_once($CFG->dirroot.'/rating/lib.php');
+
+        // Create a course with enabled completion.
+        $course = $generator->create_course(array('enablecompletion' => true));
+
+        // Create new grading category in this course.
+        $grade_category = new grade_category();
+        $grade_category->courseid = $course->id;
+        $grade_category->fullname = 'Grade category';
+        $grade_category->insert();
+
+        // Create group and grouping.
+        $group = $generator->create_group(array('courseid' => $course->id));
+        $grouping = $generator->create_grouping(array('courseid' => $course->id));
+        $generator->create_grouping_group(array('groupid' => $group->id, 'groupingid' => $grouping->id));
+
+        // Prepare arrays with properties that we can both use for creating modules and asserting the data in created modules.
+
+        // General properties.
+        $optionsgeneral = array(
+            'visible' => 0, // Note: 'visibleold' will always be set to the same value as 'visible'.
+            'section' => 3, // Note: section will be created if does not exist.
+            // Module supports FEATURE_IDNUMBER.
+            'cmidnumber' => 'IDNUM', // Note: alternatively can have key 'idnumber'.
+            // Module supports FEATURE_GROUPS;
+            'groupmode' => SEPARATEGROUPS, // Note: will be reset to 0 if course groupmodeforce is set.
+            // Module supports FEATURE_GROUPINGS or module supports FEATURE_GROUPMEMBERSONLY:
+            'groupingid' => $grouping->id,
+            // Module supports FEATURE_GROUPMEMBERSONLY:
+            'groupmembersonly' => 1,
+        );
+
+        // In case completion is enabled on site and for course every module can have manual completion.
+        $featurecompletionmanual = array(
+            'completion' => COMPLETION_TRACKING_MANUAL, // "Students can manually mark activity as completed."
+            'completionexpected' => time() + 7 * DAYSECS,
+        );
+
+        // Automatic completion is possible if module supports FEATURE_COMPLETION_TRACKS_VIEWS or FEATURE_GRADE_HAS_GRADE.
+        // Note: completionusegrade is stored in DB and can be found in cm_info as 'completiongradeitemnumber' - either NULL or 0.
+        // Note: module can have more autocompletion rules as defined in moodleform_mod::add_completion_rules().
+        $featurecompletionautomatic = array(
+            'completion' => COMPLETION_TRACKING_AUTOMATIC, // "Show activity as complete when conditions are met."
+            'completionview' => 1, // "Student must view this activity to complete it"
+            'completionusegrade' => 1, // "Student must receive a grade to complete this activity"
+        );
+
+        // Module supports FEATURE_RATE:
+        $featurerate = array(
+            'assessed' => RATING_AGGREGATE_AVERAGE, // "Aggregate type"
+            'scale' => 100, // Either max grade or negative number for scale id.
+            'ratingtime' => 1, // "Restrict ratings to items with dates in this range".
+            'assesstimestart' => time() - DAYSECS, // Note: Will be ignored if neither 'assessed' nor 'ratingtime' is set.
+            'assesstimefinish' => time() + DAYSECS, // Note: Will be ignored if neither 'assessed' nor 'ratingtime' is set.
+        );
+
+        // Module supports FEATURE_GRADE_HAS_GRADE:
+        $featuregrade = array(
+            'grade' => 10,
+            'gradecat' => $grade_category->id, // Note: if $CFG->enableoutcomes is set, this can be set to -1 to automatically create new grade category.
+        );
+
+        // Now let's create several modules with different options.
+        $m1 = $generator->create_module('assign',
+            array('course' => $course->id) +
+            $optionsgeneral);
+        $m2 = $generator->create_module('data',
+            array('course' => $course->id) +
+            $featurecompletionmanual +
+            $featurerate);
+        $m3 = $generator->create_module('assign',
+            array('course' => $course->id) +
+            $featurecompletionautomatic +
+            $featuregrade);
+
+        // We need id of the grading item for the second module to create availability dependency in the 3rd module.
+        $gradingitem = grade_item::fetch(array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule' => 'assign', 'iteminstance' => $m3->id));
+
+        // Now prepare options to create the 4th module which availability depends on other modules.
+        // Following options available if $CFG->enableavailability is set:
+        $optionsavailability = array(
+            'showavailability' => 1,
+            'availablefrom' => time() - WEEKSECS,
+            'availableuntil' => time() + WEEKSECS,
+            'conditiongradegroup' => array(
+                array(
+                    'conditiongradeitemid' => $gradingitem->id,
+                    'conditiongrademin' => 20,
+                    'conditiongrademax' => 80,
+                )
+            ),
+            'conditionfieldgroup' => array(
+                array(
+                    'conditionfield' => 'address',
+                    'conditionfieldoperator' => 'contains',
+                    'conditionfieldvalue' => 'street',
+                )
+            ),
+            'conditioncompletiongroup' => array(
+                array(
+                    'conditionsourcecmid' => $m2->cmid,
+                    'conditionrequiredcompletion' => 1
+                ),
+                array(
+                    'conditionsourcecmid' => $m3->cmid,
+                    'conditionrequiredcompletion' => 1
+                )
+            )
+        );
+        // The same data for assertion (different format).
+        $optionsavailabilityassertion = array(
+            'conditionsgrade' => array(
+                $gradingitem->id => (object)array(
+                    'min' => 20,
+                    'max' => 80,
+                    'name' => $gradingitem->itemname
+                )
+            ),
+            'conditionsfield' => array(
+                'address' => (object)array(
+                    'fieldname' => 'address',
+                    'operator' => 'contains',
+                    'value' => 'street'
+                )
+            ),
+            'conditionscompletion' => array(
+                $m2->cmid => 1,
+                $m3->cmid => 1
+            )
+        );
+
+        // Create module with conditional availability.
+        $m4 = $generator->create_module('assign',
+                array('course' => $course->id) +
+                $optionsavailability
+        );
+
+        // Verifying that everything is generated correctly.
+        $modinfo = get_fast_modinfo($course->id);
+        $cm1 = $modinfo->cms[$m1->cmid];
+        $this->assertEquals($optionsgeneral['visible'], $cm1->visible);
+        $this->assertEquals($optionsgeneral['section'], $cm1->sectionnum); // Note difference in key.
+        $this->assertEquals($optionsgeneral['cmidnumber'], $cm1->idnumber); // Note difference in key.
+        $this->assertEquals($optionsgeneral['groupmode'], $cm1->groupmode);
+        $this->assertEquals($optionsgeneral['groupingid'], $cm1->groupingid);
+        $this->assertEquals($optionsgeneral['groupmembersonly'], $cm1->groupmembersonly);
+
+        $cm2 = $modinfo->cms[$m2->cmid];
+        $this->assertEquals($featurecompletionmanual['completion'], $cm2->completion);
+        $this->assertEquals($featurecompletionmanual['completionexpected'], $cm2->completionexpected);
+        $this->assertEquals(null, $cm2->completiongradeitemnumber);
+        // Rating info is stored in the module's table (in our test {data}).
+        $data = $DB->get_record('data', array('id' => $m2->id));
+        $this->assertEquals($featurerate['assessed'], $data->assessed);
+        $this->assertEquals($featurerate['scale'], $data->scale);
+        $this->assertEquals($featurerate['assesstimestart'], $data->assesstimestart);
+        $this->assertEquals($featurerate['assesstimefinish'], $data->assesstimefinish);
+        // No validation for 'ratingtime'. It is only used in to enable/disable assesstime* when adding module.
+
+        $cm3 = $modinfo->cms[$m3->cmid];
+        $this->assertEquals($featurecompletionautomatic['completion'], $cm3->completion);
+        $this->assertEquals($featurecompletionautomatic['completionview'], $cm3->completionview);
+        $this->assertEquals(0, $cm3->completiongradeitemnumber); // Zero instead of default null since 'completionusegrade' was set.
+        $gradingitem = grade_item::fetch(array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule' => 'assign', 'iteminstance' => $m3->id));
+        $this->assertEquals(0, $gradingitem->grademin);
+        $this->assertEquals($featuregrade['grade'], $gradingitem->grademax);
+        $this->assertEquals($featuregrade['gradecat'], $gradingitem->categoryid);
+
+        $cm4 = $modinfo->cms[$m4->cmid];
+        $this->assertEquals($optionsavailability['showavailability'], $cm4->showavailability);
+        $this->assertEquals($optionsavailability['availablefrom'], $cm4->availablefrom);
+        $this->assertEquals($optionsavailability['availableuntil'], $cm4->availableuntil);
+        $this->assertEquals($optionsavailabilityassertion['conditionsgrade'], $cm4->conditionsgrade);
+        $this->assertEquals($optionsavailabilityassertion['conditionsfield'], $cm4->conditionsfield);
+        $this->assertEquals($optionsavailabilityassertion['conditionscompletion'], $cm4->conditionscompletion);
     }
 
     public function test_create_block() {
index 080ea24..50c9dce 100644 (file)
@@ -117,6 +117,25 @@ class behat_general extends behat_base {
         }
     }
 
+    /**
+     * Switches to the specified iframe.
+     *
+     * @Given /^I switch to "(?P<iframe_name_string>(?:[^"]|\\")*)" iframe$/
+     * @param string $iframename
+     */
+    public function switch_to_iframe($iframename) {
+        $this->getSession()->switchToIFrame($iframename);
+    }
+
+    /**
+     * Switches to the main Moodle frame.
+     *
+     * @Given /^I switch to the main frame$/
+     */
+    public function switch_to_the_main_frame() {
+        $this->getSession()->switchToIFrame();
+    }
+
     /**
      * Switches to the specified window. Useful when interacting with popup windows.
      *
@@ -623,4 +642,13 @@ class behat_general extends behat_base {
         }
     }
 
+    /**
+     * This step triggers cron like a user would do going to admin/cron.php.
+     *
+     * @Given /^I trigger cron$/
+     */
+    public function i_trigger_cron() {
+        $this->getSession()->visit($this->locate_path('/admin/cron.php'));
+    }
+
 }
index 7d2d912..5789134 100644 (file)
@@ -32,6 +32,7 @@ require_once(__DIR__ . '/../../behat/behat_base.php');
 use Behat\Behat\Event\SuiteEvent as SuiteEvent,
     Behat\Behat\Event\ScenarioEvent as ScenarioEvent,
     Behat\Behat\Event\StepEvent as StepEvent,
+    Behat\Mink\Exception\DriverException as DriverException,
     WebDriver\Exception\NoSuchWindow as NoSuchWindow,
     WebDriver\Exception\UnexpectedAlertOpen as UnexpectedAlertOpen,
     WebDriver\Exception\UnknownError as UnknownError,
@@ -143,14 +144,16 @@ class behat_hooks extends behat_base {
             throw new coding_exception('Behat only can modify the test database and the test dataroot!');
         }
 
+        $moreinfo = 'More info in ' . behat_command::DOCS_URL . '#Running_tests';
+        $driverexceptionmsg = 'Selenium server is not running, you need to start it to run tests that involve Javascript. ' . $moreinfo;
         try {
             $session = $this->getSession();
         } catch (CurlExec $e) {
             // Exception thrown by WebDriver, so only @javascript tests will be caugth; in
             // behat_util::is_server_running() we already checked that the server is running.
-            $moreinfo = 'More info in ' . behat_command::DOCS_URL . '#Running_tests';
-            $msg = 'Selenium server is not running, you need to start it to run tests that involve Javascript. ' . $moreinfo;
-            throw new Exception($msg);
+            throw new Exception($driverexceptionmsg);
+        } catch (DriverException $e) {
+            throw new Exception($driverexceptionmsg);
         } catch (UnknownError $e) {
             // Generic 'I have no idea' Selenium error. Custom exception to provide more feedback about possible solutions.
             $this->throw_unknown_exception($e);
index a5591c8..738b829 100644 (file)
@@ -56,6 +56,9 @@ class behat_transformations extends behat_base {
      * @return string The string with the arguments fixed.
      */
     public function arg_replace_slashes($string) {
+        if (!is_scalar($string)) {
+            return $string;
+        }
         return str_replace('\"', '"', $string);
     }
 
@@ -67,6 +70,9 @@ class behat_transformations extends behat_base {
      * @return string
      */
     public function arg_replace_nasty_strings($argument) {
+        if (!is_scalar($argument)) {
+            return $argument;
+        }
         return $this->replace_nasty_strings($argument);
     }
 
index 60d2027..63d67d6 100644 (file)
@@ -53,8 +53,11 @@ class core_completionlib_testcase extends advanced_testcase {
 
         $this->resetAfterTest();
 
+        // Enable completion before creating modules, otherwise the completion data is not written in DB.
+        $CFG->enablecompletion = true;
+
         // Create a course with activities.
-        $this->course = $this->getDataGenerator()->create_course();
+        $this->course = $this->getDataGenerator()->create_course(array('enablecompletion' => true));
         $this->user = $this->getDataGenerator()->create_user();
         $studentrole = $DB->get_record('role', array('shortname' => 'student'));
         $this->assertNotEmpty($studentrole);
@@ -718,10 +721,14 @@ class core_completionlib_testcase extends advanced_testcase {
     }
 
     public function test_get_activities() {
+        global $CFG;
         $this->resetAfterTest();
 
+        // Enable completion before creating modules, otherwise the completion data is not written in DB.
+        $CFG->enablecompletion = true;
+
         // Create a course with mixed auto completion data.
-        $course = $this->getDataGenerator()->create_course();
+        $course = $this->getDataGenerator()->create_course(array('enablecompletion' => true));
         $completionauto = array('completion' => COMPLETION_TRACKING_AUTOMATIC);
         $completionmanual = array('completion' => COMPLETION_TRACKING_MANUAL);
         $completionnone = array('completion' => COMPLETION_TRACKING_NONE);
@@ -734,7 +741,7 @@ class core_completionlib_testcase extends advanced_testcase {
         $data2 = $this->getDataGenerator()->create_module('data', array('course' => $course->id), $completionnone);
 
         // Create data in another course to make sure it's not considered.
-        $course2 = $this->getDataGenerator()->create_course();
+        $course2 = $this->getDataGenerator()->create_course(array('enablecompletion' => true));
         $c2forum = $this->getDataGenerator()->create_module('forum', array('course' => $course2->id), $completionauto);
         $c2page = $this->getDataGenerator()->create_module('page', array('course' => $course2->id), $completionmanual);
         $c2data = $this->getDataGenerator()->create_module('data', array('course' => $course2->id), $completionnone);
@@ -755,11 +762,15 @@ class core_completionlib_testcase extends advanced_testcase {
     }
 
     public function test_has_activities() {
+        global $CFG;
         $this->resetAfterTest();
 
+        // Enable completion before creating modules, otherwise the completion data is not written in DB.
+        $CFG->enablecompletion = true;
+
         // Create a course with mixed auto completion data.
-        $course = $this->getDataGenerator()->create_course();
-        $course2 = $this->getDataGenerator()->create_course();
+        $course = $this->getDataGenerator()->create_course(array('enablecompletion' => true));
+        $course2 = $this->getDataGenerator()->create_course(array('enablecompletion' => true));
         $completionauto = array('completion' => COMPLETION_TRACKING_AUTOMATIC);
         $completionnone = array('completion' => COMPLETION_TRACKING_NONE);
         $c1forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id), $completionauto);
@@ -776,9 +787,10 @@ class core_completionlib_testcase extends advanced_testcase {
      * Test course module completion update event.
      */
     public function test_course_module_completion_updated_event() {
-        global $USER;
+        global $USER, $CFG;
 
         $this->setup_data();
+
         $this->setAdminUser();
 
         $completionauto = array('completion' => COMPLETION_TRACKING_AUTOMATIC);
index 3c9c761..e1a0b1a 100644 (file)
@@ -44,6 +44,10 @@ class core_conditionlib_testcase extends advanced_testcase {
         $this->setUser($user);
     }
 
+    protected function wipe_condition_cache() {
+        cache::make('core', 'gradecondition')->purge();
+    }
+
     public function test_constructor() {
         global $DB;
         $cm = new stdClass;
@@ -480,7 +484,7 @@ class core_conditionlib_testcase extends advanced_testcase {
 
         $ci = new condition_info((object)array('id'=>$cmid), CONDITION_MISSING_EVERYTHING);
         $ci->add_completion_condition($oldid, COMPLETION_COMPLETE);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
 
         $this->assertFalse($ci->is_available($text, false));
         $this->assertEquals(get_string('requires_completion_1', 'condition', 'xxx'), $text);
@@ -488,23 +492,23 @@ class core_conditionlib_testcase extends advanced_testcase {
         $completion = new completion_info($DB->get_record('course', array('id'=>$courseid)));
         $completion->update_state($oldcm, COMPLETION_COMPLETE);
         completion_info::wipe_session_cache();
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
 
         $this->assertTrue($ci->is_available($text));
         $this->assertFalse($ci->is_available($text, false, $USER->id+1));
         completion_info::wipe_session_cache();
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $completion = new completion_info($DB->get_record('course', array('id'=>$courseid)));
         $completion->update_state($oldcm, COMPLETION_INCOMPLETE);
         $this->assertFalse($ci->is_available($text));
 
         $ci->wipe_conditions();
         $ci->add_completion_condition($oldid, COMPLETION_INCOMPLETE);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
         $this->assertTrue($ci->is_available($text, false, $USER->id+1));
 
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text, true));
 
         // Grade.
@@ -520,48 +524,48 @@ class core_conditionlib_testcase extends advanced_testcase {
         // Fake it existing.
         $DB->insert_record('grade_grades', (object)array(
             'itemid'=>$gradeitemid, 'userid'=>$USER->id, 'finalgrade'=>3.78));
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text, true));
 
         // Now require that user gets more than 3.78001.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 3.78001, null, true);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertFalse($ci->is_available($text));
         $this->assertEquals(get_string('requires_grade_min', 'condition', 'frog'), $text);
 
         // ...just on 3.78...
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 3.78, null, true);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
         // ...less than 3.78.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, null, 3.78, true);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertFalse($ci->is_available($text));
         $this->assertEquals(get_string('requires_grade_max', 'condition', 'frog'), $text);
 
         // ...less than 3.78001.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, null, 3.78001, true);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
         // ...in a range that includes it.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 3, 4, true);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
         // ...in a range that doesn't include it.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 4, 5, true);
-        condition_info::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertFalse($ci->is_available($text));
         $this->assertEquals(get_string('requires_grade_range', 'condition', 'frog'), $text);
     }
@@ -630,7 +634,7 @@ class core_conditionlib_testcase extends advanced_testcase {
         $ci = new condition_info_section((object)array('id' => $sectionid),
                 CONDITION_MISSING_EVERYTHING);
         $ci->add_completion_condition($cmid, COMPLETION_COMPLETE);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
 
         // Completion: Check.
         $this->assertFalse($ci->is_available($text, false));
@@ -639,13 +643,13 @@ class core_conditionlib_testcase extends advanced_testcase {
         $completion = new completion_info($DB->get_record('course', array('id' => $courseid)));
         $completion->update_state($cm, COMPLETION_COMPLETE);
         completion_info::wipe_session_cache();
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
         $this->assertFalse($ci->is_available($text, false, $USER->id + 1));
 
         // Completion: Uncheck.
         completion_info::wipe_session_cache();
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $completion = new completion_info($DB->get_record('course', array('id' => $courseid)));
         $completion->update_state($cm, COMPLETION_INCOMPLETE);
         $this->assertFalse($ci->is_available($text));
@@ -653,10 +657,10 @@ class core_conditionlib_testcase extends advanced_testcase {
         // Completion: Incomplete condition.
         $ci->wipe_conditions();
         $ci->add_completion_condition($cmid, COMPLETION_INCOMPLETE);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
         $this->assertTrue($ci->is_available($text, false, $USER->id + 1));
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text, true));
 
         // Grade: Add a fake grade item.
@@ -672,47 +676,47 @@ class core_conditionlib_testcase extends advanced_testcase {
         // Grade: Fake it existing.
         $DB->insert_record('grade_grades', (object)array(
             'itemid' => $gradeitemid, 'userid' => $USER->id, 'finalgrade' => 3.78));
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text, true));
 
         // Grade: Now require that user gets more than 3.78001.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 3.78001, null, true);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertFalse($ci->is_available($text));
         $this->assertEquals(get_string('requires_grade_min', 'condition', 'frog'), $text);
 
         // Grade: ...just on 3.78...
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 3.78, null, true);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
         // Grade: ...less than 3.78.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, null, 3.78, true);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertFalse($ci->is_available($text));
         $this->assertEquals(get_string('requires_grade_max', 'condition', 'frog'), $text);
 
         // Grade: ...less than 3.78001.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, null, 3.78001, true);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
         // Grade: ...in a range that includes it.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 3, 4, true);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertTrue($ci->is_available($text));
 
         // Grade: ...in a range that doesn't include it.
         $ci->wipe_conditions();
         $ci->add_grade_condition($gradeitemid, 4, 5, true);
-        condition_info_section::wipe_session_cache();
+        $this->wipe_condition_cache();
         $this->assertFalse($ci->is_available($text));
         $this->assertEquals(get_string('requires_grade_range', 'condition', 'frog'), $text);
 
index 2db0568..e769e08 100644 (file)
@@ -660,4 +660,19 @@ class core_filterlib_testcase extends advanced_testcase {
         $this->assertEquals('emailprotect,multilang', $CFG->stringfilters);
         $this->assertEquals(1, $CFG->filterall);
     }
+
+    public function test_filter_manager_instance() {
+
+        set_config('perfdebug', 7);
+        filter_manager::reset_caches();
+        $filterman = filter_manager::instance();
+        $this->assertInstanceOf('filter_manager', $filterman);
+        $this->assertNotInstanceOf('performance_measuring_filter_manager', $filterman);
+
+        set_config('perfdebug', 15);
+        filter_manager::reset_caches();
+        $filterman = filter_manager::instance();
+        $this->assertInstanceOf('filter_manager', $filterman);
+        $this->assertInstanceOf('performance_measuring_filter_manager', $filterman);
+    }
 }
index 6b2fc6e..1abab2d 100644 (file)
@@ -77,6 +77,8 @@ class core_modinfolib_testcase extends advanced_testcase {
         foreach ($conditionsfield as $conditionfield) {
             $ci->add_user_field_condition($conditionfield->fieldname, $conditionfield->operator, $conditionfield->value);
         }
+        // Direct calls to condition_info_section methods do not reset the course cache. Do it manually.
+        rebuild_course_cache($course->id, true);
 
         // Create and enrol a student.
         $studentrole = $DB->get_record('role', array('shortname' => 'student'), '*', MUST_EXIST);
@@ -164,6 +166,8 @@ class core_modinfolib_testcase extends advanced_testcase {
         foreach ($conditionsfield as $conditionfield) {
             $ci->add_user_field_condition($conditionfield->fieldname, $conditionfield->operator, $conditionfield->value);
         }
+        // Direct access to condition_info functions does not reset course cache, do it manually.
+        rebuild_course_cache($course->id, true);
 
         // Retrieve all related records from DB.
         $assigndb = $DB->get_record('assign', array('id' => $assign->id));
@@ -542,6 +546,9 @@ class core_modinfolib_testcase extends advanced_testcase {
 
         $this->resetAfterTest();
 
+        // Enable conditional availability before creating modules, otherwise the condition data is not written in DB.
+        $CFG->enableavailability = true;
+
         // Create a course.
         $course = $this->getDataGenerator()->create_course();
         // 1. Create an activity that is currently unavailable and hidden entirely (for students).
index 95db9fa..ae3b10b 100644 (file)
@@ -58,7 +58,7 @@ id,name,year,tzrule,gmtoff,dstoff,dst_month,dst_startday,dst_weekday,dst_skipwee
 57,Africa/Tripoli,1996,Libya,60,0,0,0,0,0,00:00,0,0,0,0,00:00
 58,Africa/Tripoli,1997,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
 59,Africa/Tripoli,2012,Libya,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-60,Africa/Tripoli,2013,Libya,60,60,3,-1,5,0,02:00,10,-1,5,0,02:00
+60,Africa/Tripoli,2013,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
 61,Indian/Antananarivo,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
 62,Africa/Blantyre,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
 63,Africa/Bamako,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
@@ -81,1714 +81,1714 @@ id,name,year,tzrule,gmtoff,dstoff,dst_month,dst_startday,dst_weekday,dst_skipwee
 80,Africa/Casablanca,2010,Morocco,0,60,5,2,-1,0,00:00,8,8,-1,0,-1:00
 81,Africa/Casablanca,2011,Morocco,0,60,4,3,-1,0,00:00,7,31,-1,0,-1:00
 82,Africa/Casablanca,2012,Morocco,0,60,8,20,-1,0,02:00,7,20,-1,0,02:00
-83,Africa/Casablanca,2013,Morocco,0,60,8,8,-1,0,02:00,7,9,-1,0,02:00
+83,Africa/Casablanca,2013,Morocco,0,60,8,10,-1,0,02:00,10,-1,0,0,02:00
 84,Africa/Casablanca,2014,Morocco,0,60,7,29,-1,0,02:00,6,29,-1,0,02:00
 85,Africa/Casablanca,2015,Morocco,0,60,7,18,-1,0,02:00,6,18,-1,0,02:00
 86,Africa/Casablanca,2016,Morocco,0,60,7,7,-1,0,02:00,6,7,-1,0,02:00
 87,Africa/Casablanca,2017,Morocco,0,60,6,26,-1,0,02:00,5,27,-1,0,02:00
 88,Africa/Casablanca,2018,Morocco,0,60,6,15,-1,0,02:00,5,16,-1,0,02:00
 89,Africa/Casablanca,2019,Morocco,0,60,6,5,-1,0,02:00,5,6,-1,0,02:00
-90,Africa/Casablanca,2020,Morocco,0,60,5,24,-1,0,02:00,9,-1,0,0,02:00
-91,Africa/Casablanca,2021,Morocco,0,60,5,13,-1,0,02:00,9,-1,0,0,02:00
-92,Africa/Casablanca,2022,Morocco,0,60,5,3,-1,0,02:00,9,-1,0,0,02:00
+90,Africa/Casablanca,2020,Morocco,0,60,5,24,-1,0,02:00,4,24,-1,0,02:00
+91,Africa/Casablanca,2021,Morocco,0,60,5,13,-1,0,02:00,4,13,-1,0,02:00
+92,Africa/Casablanca,2022,Morocco,0,60,5,3,-1,0,02:00,4,3,-1,0,02:00
 93,Africa/El_Aaiun,1970,,-60,0,0,0,0,0,00:00,0,0,0,0,00:00
-94,Africa/El_Aaiun,1976,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-95,Africa/Maputo,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-96,Africa/Windhoek,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-97,Africa/Windhoek,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-98,Africa/Windhoek,1994,Namibia,60,60,9,1,0,0,03:00,1,1,-1,0,12:00
-99,Africa/Windhoek,1995,Namibia,60,60,9,1,0,0,03:00,4,1,0,0,02:00
-100,Africa/Niamey,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-101,Africa/Lagos,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-102,Indian/Reunion,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-103,Africa/Kigali,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-104,Atlantic/St_Helena,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-105,Africa/Sao_Tome,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-106,Africa/Dakar,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-107,Indian/Mahe,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-108,Africa/Freetown,1970,SL,0,0,6,1,-1,0,00:00,9,1,-1,0,-1:00
-109,Africa/Mogadishu,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-110,Africa/Johannesburg,1970,SA,120,0,12,31,-1,0,14:00,3,15,0,0,03:00
-111,Africa/Khartoum,1970,Sudan,120,60,5,1,-1,0,02:00,10,15,-1,0,01:00
-112,Africa/Khartoum,1971,Sudan,120,60,4,30,-1,0,02:00,10,15,-1,0,01:00
-113,Africa/Khartoum,1972,Sudan,120,60,4,-1,0,0,02:00,10,15,-1,0,01:00
-114,Africa/Khartoum,1985,Sudan,120,0,4,-1,0,0,02:00,10,15,-1,0,01:00
-115,Africa/Khartoum,2000,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-116,Africa/Juba,1970,Sudan,120,60,5,1,-1,0,02:00,10,15,-1,0,01:00
-117,Africa/Juba,1971,Sudan,120,60,4,30,-1,0,02:00,10,15,-1,0,01:00
-118,Africa/Juba,1972,Sudan,120,60,4,-1,0,0,02:00,10,15,-1,0,01:00
-119,Africa/Juba,1985,Sudan,120,0,4,-1,0,0,02:00,10,15,-1,0,01:00
-120,Africa/Juba,2000,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-121,Africa/Mbabane,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-122,Africa/Dar_es_Salaam,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-123,Africa/Lome,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-124,Africa/Tunis,1970,Tunisia,60,60,4,1,1,0,03:00,9,16,-1,0,00:00
-125,Africa/Tunis,1977,Tunisia,60,60,4,30,-1,0,01:00,9,24,-1,0,01:00
-126,Africa/Tunis,1978,Tunisia,60,60,5,1,-1,0,01:00,10,1,-1,0,01:00
-127,Africa/Tunis,1988,Tunisia,60,60,6,1,-1,0,01:00,9,-1,0,0,01:00
-128,Africa/Tunis,1989,Tunisia,60,60,3,26,-1,0,01:00,9,-1,0,0,01:00
-129,Africa/Tunis,1990,Tunisia,60,60,5,1,-1,0,01:00,9,-1,0,0,01:00
-130,Africa/Tunis,2005,Tunisia,60,60,5,1,-1,0,01:00,9,30,-1,0,02:00
-131,Africa/Tunis,2006,Tunisia,60,60,3,-1,0,0,03:00,10,-1,0,0,03:00
-132,Africa/Tunis,2008,Tunisia,60,0,3,-1,0,0,03:00,10,-1,0,0,03:00
-133,Africa/Kampala,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-134,Africa/Lusaka,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-135,Africa/Harare,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-136,Antarctica/Casey,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-137,Antarctica/Casey,2009,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-138,Antarctica/Casey,2010,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-139,Antarctica/Casey,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-140,Antarctica/Casey,2012,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-141,Antarctica/Davis,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-142,Antarctica/Davis,2009,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-143,Antarctica/Davis,2010,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-144,Antarctica/Davis,2011,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-145,Antarctica/Davis,2012,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-146,Antarctica/Mawson,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-147,Antarctica/Mawson,2009,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-148,Antarctica/Macquarie,1970,ATAQ,600,60,10,-1,0,0,12:00,3,8,0,0,12:00
-149,Antarctica/Macquarie,1972,ATAQ,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
-150,Antarctica/Macquarie,1973,ATAQ,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-151,Antarctica/Macquarie,1982,ATAQ,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-152,Antarctica/Macquarie,1984,ATAQ,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-153,Antarctica/Macquarie,1986,ATAQ,600,60,10,15,0,0,12:00,3,1,0,0,12:00
-154,Antarctica/Macquarie,1987,ATAQ,600,60,10,22,0,0,12:00,3,15,0,0,12:00
-155,Antarctica/Macquarie,1988,ATAQ,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
-156,Antarctica/Macquarie,1991,ATAQ,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-157,Antarctica/Macquarie,2000,ATAQ,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
-158,Antarctica/Macquarie,2001,ATAQ,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-159,Antarctica/Macquarie,2006,ATAQ,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-160,Antarctica/Macquarie,2007,ATAQ,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-161,Antarctica/Macquarie,2008,ATAQ,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-162,Antarctica/Macquarie,2010,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-163,Indian/Kerguelen,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-164,Antarctica/DumontDUrville,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-165,Antarctica/Syowa,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-166,Antarctica/Vostok,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-167,Antarctica/Rothera,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-168,Antarctica/Rothera,1976,,-180,0,0,0,0,0,00:00,0,0,0,0,00:00
-169,Antarctica/Palmer,1970,ArgAQ,-180,0,12,31,-1,0,09:00,4,1,0,0,-4:00
-170,Antarctica/Palmer,1974,ArgAQ,-180,60,1,23,-1,0,-3:00,5,1,-1,0,-4:00
-171,Antarctica/Palmer,1975,ArgAQ,-180,0,1,23,-1,0,-3:00,5,1,-1,0,-4:00
-172,Antarctica/Palmer,1982,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
-173,Antarctica/Palmer,1987,ChileAQ,-240,60,10,9,0,0,4:00,4,12,-1,0,3:00
-174,Antarctica/Palmer,1988,ChileAQ,-240,60,10,1,0,0,4:00,3,9,0,0,3:00
-175,Antarctica/Palmer,1989,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
-176,Antarctica/Palmer,1990,ChileAQ,-240,60,9,16,-1,0,4:00,3,18,-1,0,3:00
-177,Antarctica/Palmer,1991,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
-178,Antarctica/Palmer,1997,ChileAQ,-240,60,10,9,0,0,4:00,3,30,-1,0,3:00
-179,Antarctica/Palmer,1998,ChileAQ,-240,60,9,27,-1,0,4:00,3,9,0,0,3:00
-180,Antarctica/Palmer,1999,ChileAQ,-240,60,10,9,0,0,4:00,4,4,-1,0,3:00
-181,Antarctica/Palmer,2000,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
-182,Antarctica/Palmer,2008,ChileAQ,-240,60,10,9,0,0,4:00,3,30,-1,0,3:00
-183,Antarctica/Palmer,2009,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
-184,Antarctica/Palmer,2010,ChileAQ,-240,60,10,9,0,0,4:00,4,1,0,0,3:00
-185,Antarctica/Palmer,2011,ChileAQ,-240,60,8,16,0,0,4:00,5,2,0,0,3:00
-186,Antarctica/Palmer,2012,ChileAQ,-240,60,9,2,0,0,4:00,4,23,0,0,3:00
-187,Antarctica/McMurdo,1970,NZAQ,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-188,Antarctica/McMurdo,1974,NZAQ,720,60,11,3,-1,0,14:00,1,1,-1,0,23:00
-189,Antarctica/McMurdo,1975,NZAQ,720,60,10,-1,0,0,14:00,2,23,-1,0,14:00
-190,Antarctica/McMurdo,1976,NZAQ,720,60,10,-1,0,0,14:00,3,1,0,0,14:00
-191,Antarctica/McMurdo,1989,NZAQ,720,60,10,8,-1,0,14:00,3,1,0,0,14:00
-192,Antarctica/McMurdo,1990,NZAQ,720,60,10,1,0,0,14:00,3,15,0,0,14:00
-193,Antarctica/McMurdo,2007,NZAQ,720,60,9,-1,0,0,14:00,3,15,0,0,14:00
-194,Antarctica/McMurdo,2008,NZAQ,720,60,9,-1,0,0,14:00,4,1,0,0,14:00
-195,Asia/Kabul,1970,,270,0,0,0,0,0,00:00,0,0,0,0,00:00
-196,Asia/Yerevan,1970,RussiaAsia,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-197,Asia/Yerevan,1981,RussiaAsia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
-198,Asia/Yerevan,1984,RussiaAsia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
-199,Asia/Yerevan,1985,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-200,Asia/Yerevan,1991,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-201,Asia/Yerevan,1992,RussiaAsia,180,60,3,-1,6,0,26:00,9,-1,6,0,25:00
-202,Asia/Yerevan,1993,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-203,Asia/Yerevan,1995,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-204,Asia/Yerevan,1997,RussiaAsia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
-205,Asia/Yerevan,2012,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-206,Asia/Baku,1970,RussiaAsia,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-207,Asia/Baku,1981,RussiaAsia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
-208,Asia/Baku,1984,RussiaAsia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
-209,Asia/Baku,1985,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-210,Asia/Baku,1991,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-211,Asia/Baku,1992,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-212,Asia/Baku,1996,EUAsia,240,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-213,Asia/Baku,1997,Azer,240,60,3,-1,0,0,08:00,10,-1,0,0,08:00
-214,Asia/Bahrain,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-215,Asia/Bahrain,1972,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-216,Asia/Dhaka,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-217,Asia/Dhaka,1971,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-218,Asia/Dhaka,2009,Dhaka,360,60,6,19,-1,0,29:00,12,31,-1,0,28:59
-219,Asia/Dhaka,2010,Dhaka,360,0,6,19,-1,0,29:00,12,31,-1,0,28:59
-220,Asia/Thimphu,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
-221,Asia/Thimphu,1987,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-222,Indian/Chagos,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-223,Indian/Chagos,1996,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-224,Asia/Brunei,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-225,Asia/Rangoon,1970,,390,0,0,0,0,0,00:00,0,0,0,0,00:00
-226,Asia/Phnom_Penh,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-227,Asia/Harbin,1970,,510,0,0,0,0,0,00:00,0,0,0,0,00:00
-228,Asia/Harbin,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-229,Asia/Harbin,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
-230,Asia/Harbin,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
-231,Asia/Harbin,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
-232,Asia/Shanghai,1970,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-233,Asia/Shanghai,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
-234,Asia/Shanghai,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
-235,Asia/Shanghai,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
-236,Asia/Chongqing,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-237,Asia/Chongqing,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-238,Asia/Chongqing,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
-239,Asia/Chongqing,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
-240,Asia/Chongqing,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
-241,Asia/Urumqi,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-242,Asia/Urumqi,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-243,Asia/Urumqi,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
-244,Asia/Urumqi,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
-245,Asia/Urumqi,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
-246,Asia/Kashgar,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-247,Asia/Kashgar,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-248,Asia/Kashgar,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
-249,Asia/Kashgar,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
-250,Asia/Kashgar,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
-251,Asia/Hong_Kong,1970,HK,480,60,4,16,0,0,11:30,10,16,0,0,10:30
-252,Asia/Hong_Kong,1973,HK,480,60,12,30,-1,0,11:30,10,16,0,0,10:30
-253,Asia/Hong_Kong,1974,HK,480,60,4,16,0,0,11:30,10,16,0,0,10:30
-254,Asia/Hong_Kong,1979,HK,480,60,5,8,0,0,11:30,10,16,0,0,10:30
-255,Asia/Hong_Kong,1980,HK,480,0,5,8,0,0,11:30,10,16,0,0,10:30
-256,Asia/Taipei,1970,Taiwan,480,60,6,1,-1,0,08:00,10,1,-1,0,07:00
-257,Asia/Taipei,1974,Taiwan,480,60,4,1,-1,0,08:00,10,1,-1,0,07:00
-258,Asia/Taipei,1979,Taiwan,480,60,6,30,-1,0,08:00,9,30,-1,0,07:00
-259,Asia/Taipei,1980,Taiwan,480,0,6,30,-1,0,08:00,9,30,-1,0,07:00
-260,Asia/Macau,1970,Macau,480,60,4,16,0,0,11:30,10,16,0,0,10:30
-261,Asia/Macau,1972,Macau,480,60,4,15,0,0,08:00,10,15,0,0,07:00
-262,Asia/Macau,1974,Macau,480,60,4,15,0,0,08:00,10,15,0,0,10:30
-263,Asia/Macau,1975,Macau,480,60,4,15,0,0,11:30,10,15,0,0,10:30
-264,Asia/Macau,1978,Macau,480,60,4,15,0,0,08:00,10,15,0,0,07:00
-265,Asia/Macau,1980,Macau,480,0,4,15,0,0,08:00,10,15,0,0,07:00
-266,Asia/Macau,1999,PRC,480,0,4,15,0,0,08:00,10,15,0,0,07:00
-267,Asia/Nicosia,1970,Cyprus,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-268,Asia/Nicosia,1975,Cyprus,120,60,4,13,-1,0,02:00,10,12,-1,0,01:00
-269,Asia/Nicosia,1976,Cyprus,120,60,5,15,-1,0,02:00,10,11,-1,0,01:00
-270,Asia/Nicosia,1977,Cyprus,120,60,4,1,0,0,02:00,9,25,-1,0,01:00
-271,Asia/Nicosia,1978,Cyprus,120,60,4,1,0,0,02:00,10,2,-1,0,01:00
-272,Asia/Nicosia,1979,Cyprus,120,60,4,1,0,0,02:00,9,-1,0,0,01:00
-273,Asia/Nicosia,1981,Cyprus,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-274,Asia/Nicosia,1998,EUAsia,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-275,Asia/Tbilisi,1970,RussiaAsia,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-276,Asia/Tbilisi,1981,RussiaAsia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
-277,Asia/Tbilisi,1984,RussiaAsia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
-278,Asia/Tbilisi,1985,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-279,Asia/Tbilisi,1991,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-280,Asia/Tbilisi,1992,E-EurAsia,180,60,3,-1,0,0,03:00,9,-1,0,0,02:00
-281,Asia/Tbilisi,1994,E-EurAsia,240,60,3,-1,0,0,04:00,9,-1,0,0,03:00
-282,Asia/Tbilisi,1995,E-EurAsia,240,0,12,31,-1,0,16:00,9,-1,0,0,03:00
-283,Asia/Tbilisi,1996,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-284,Asia/Tbilisi,1997,E-EurAsia,240,60,3,-1,0,0,04:00,10,-1,0,0,03:00
-285,Asia/Tbilisi,2004,RussiaAsia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
-286,Asia/Tbilisi,2005,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-287,Asia/Dili,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
-288,Asia/Dili,1976,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-289,Asia/Dili,2000,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
-290,Asia/Kolkata,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
-291,Asia/Jakarta,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-292,Asia/Pontianak,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-293,Asia/Pontianak,1988,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-294,Asia/Makassar,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-295,Asia/Jayapura,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
-296,Asia/Tehran,1970,,210,0,0,0,0,0,00:00,0,0,0,0,00:00
-297,Asia/Tehran,1977,Iran,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-298,Asia/Tehran,1978,Iran,240,60,3,21,-1,0,04:00,10,21,-1,0,03:00
-299,Asia/Tehran,1979,Iran,210,60,3,21,-1,0,03:30,9,19,-1,0,02:30
-300,Asia/Tehran,1980,Iran,210,60,3,21,-1,0,03:30,9,23,-1,0,02:30
-301,Asia/Tehran,1991,Iran,210,60,5,3,-1,0,03:30,9,22,-1,0,02:30
-302,Asia/Tehran,1992,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-303,Asia/Tehran,1996,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-304,Asia/Tehran,1997,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-305,Asia/Tehran,2000,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-306,Asia/Tehran,2001,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-307,Asia/Tehran,2004,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-308,Asia/Tehran,2005,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-309,Asia/Tehran,2008,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-310,Asia/Tehran,2009,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-311,Asia/Tehran,2012,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-312,Asia/Tehran,2013,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-313,Asia/Tehran,2016,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-314,Asia/Tehran,2017,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-315,Asia/Tehran,2020,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
-316,Asia/Tehran,2021,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
-317,Asia/Baghdad,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-318,Asia/Baghdad,1982,Iraq,180,60,5,1,-1,0,03:00,10,1,-1,0,02:00
-319,Asia/Baghdad,1983,Iraq,180,60,3,31,-1,0,03:00,10,1,-1,0,02:00
-320,Asia/Baghdad,1984,Iraq,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-321,Asia/Baghdad,1985,Iraq,180,60,4,1,-1,0,03:00,9,-1,0,0,04:00
-322,Asia/Baghdad,1986,Iraq,180,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-323,Asia/Baghdad,1991,Iraq,180,60,4,1,-1,0,06:00,10,1,-1,0,06:00
-324,Asia/Baghdad,2007,Iraq,180,0,4,1,-1,0,06:00,10,1,-1,0,06:00
-325,Asia/Jerusalem,1970,Zion,120,60,4,29,-1,0,04:00,9,22,-1,0,01:00
-326,Asia/Jerusalem,1974,Zion,120,60,7,7,-1,0,02:00,10,13,-1,0,01:00
-327,Asia/Jerusalem,1975,Zion,120,60,4,20,-1,0,02:00,8,31,-1,0,01:00
-328,Asia/Jerusalem,1985,Zion,120,60,4,14,-1,0,02:00,9,15,-1,0,01:00
-329,Asia/Jerusalem,1986,Zion,120,60,5,18,-1,0,02:00,9,7,-1,0,01:00
-330,Asia/Jerusalem,1987,Zion,120,60,4,15,-1,0,02:00,9,13,-1,0,01:00
-331,Asia/Jerusalem,1988,Zion,120,60,4,9,-1,0,02:00,9,3,-1,0,01:00
-332,Asia/Jerusalem,1989,Zion,120,60,4,30,-1,0,02:00,9,3,-1,0,01:00
-333,Asia/Jerusalem,1990,Zion,120,60,3,25,-1,0,02:00,8,26,-1,0,01:00
-334,Asia/Jerusalem,1991,Zion,120,60,3,24,-1,0,02:00,9,1,-1,0,01:00
-335,Asia/Jerusalem,1992,Zion,120,60,3,29,-1,0,02:00,9,6,-1,0,01:00
-336,Asia/Jerusalem,1993,Zion,120,60,4,2,-1,0,02:00,9,5,-1,0,01:00
-337,Asia/Jerusalem,1994,Zion,120,60,4,1,-1,0,02:00,8,28,-1,0,01:00
-338,Asia/Jerusalem,1995,Zion,120,60,3,31,-1,0,02:00,9,3,-1,0,01:00
-339,Asia/Jerusalem,1996,Zion,120,60,3,15,-1,0,02:00,9,16,-1,0,01:00
-340,Asia/Jerusalem,1997,Zion,120,60,3,21,-1,0,02:00,9,14,-1,0,01:00
-341,Asia/Jerusalem,1998,Zion,120,60,3,20,-1,0,02:00,9,6,-1,0,01:00
-342,Asia/Jerusalem,1999,Zion,120,60,4,2,-1,0,04:00,9,3,-1,0,03:00
-343,Asia/Jerusalem,2000,Zion,120,60,4,14,-1,0,04:00,10,6,-1,0,02:00
-344,Asia/Jerusalem,2001,Zion,120,60,4,9,-1,0,03:00,9,24,-1,0,02:00
-345,Asia/Jerusalem,2002,Zion,120,60,3,29,-1,0,03:00,10,7,-1,0,02:00
-346,Asia/Jerusalem,2003,Zion,120,60,3,28,-1,0,03:00,10,3,-1,0,02:00
-347,Asia/Jerusalem,2004,Zion,120,60,4,7,-1,0,03:00,9,22,-1,0,02:00
-348,Asia/Jerusalem,2005,Zion,120,60,4,1,-1,0,04:00,10,9,-1,0,03:00
-349,Asia/Jerusalem,2006,Zion,120,60,3,26,5,0,04:00,10,1,-1,0,03:00
-350,Asia/Jerusalem,2007,Zion,120,60,3,26,5,0,04:00,9,16,-1,0,03:00
-351,Asia/Jerusalem,2008,Zion,120,60,3,26,5,0,04:00,10,5,-1,0,03:00
-352,Asia/Jerusalem,2009,Zion,120,60,3,26,5,0,04:00,9,27,-1,0,03:00
-353,Asia/Jerusalem,2010,Zion,120,60,3,26,5,0,04:00,9,12,-1,0,03:00
-354,Asia/Jerusalem,2011,Zion,120,60,4,1,-1,0,04:00,10,2,-1,0,03:00
-355,Asia/Jerusalem,2012,Zion,120,60,3,26,5,0,04:00,9,23,-1,0,03:00
-356,Asia/Jerusalem,2013,Zion,120,60,3,23,5,0,04:00,10,2,0,0,03:00
-357,Asia/Tokyo,1970,Japan,540,0,5,1,0,0,11:00,9,8,6,0,10:00
-358,Asia/Amman,1970,Jordan,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-359,Asia/Amman,1973,Jordan,120,60,6,6,-1,0,02:00,10,1,-1,0,01:00
-360,Asia/Amman,1974,Jordan,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
-361,Asia/Amman,1976,Jordan,120,60,5,1,-1,0,02:00,11,1,-1,0,01:00
-362,Asia/Amman,1977,Jordan,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
-363,Asia/Amman,1978,Jordan,120,60,4,30,-1,0,02:00,9,30,-1,0,01:00
-364,Asia/Amman,1985,Jordan,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
-365,Asia/Amman,1986,Jordan,120,60,4,1,5,0,02:00,10,1,5,0,01:00
-366,Asia/Amman,1989,Jordan,120,60,5,8,-1,0,02:00,10,1,5,0,01:00
-367,Asia/Amman,1990,Jordan,120,60,4,27,-1,0,02:00,10,1,5,0,01:00
-368,Asia/Amman,1991,Jordan,120,60,4,17,-1,0,02:00,9,27,-1,0,01:00
-369,Asia/Amman,1992,Jordan,120,60,4,10,-1,0,02:00,10,1,5,0,01:00
-370,Asia/Amman,1993,Jordan,120,60,4,1,5,0,02:00,10,1,5,0,01:00
-371,Asia/Amman,1994,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,01:00
-372,Asia/Amman,1995,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,02:00
-373,Asia/Amman,1999,Jordan,120,60,7,1,-1,0,02:00,9,-1,5,0,02:00
-374,Asia/Amman,2000,Jordan,120,60,3,-1,4,0,02:00,9,-1,5,0,02:00
-375,Asia/Amman,2002,Jordan,120,60,3,-1,4,0,26:00,9,-1,5,0,02:00
-376,Asia/Amman,2003,Jordan,120,60,3,-1,4,0,26:00,10,24,-1,0,02:00
-377,Asia/Amman,2004,Jordan,120,60,3,-1,4,0,26:00,10,15,-1,0,02:00
-378,Asia/Amman,2005,Jordan,120,60,3,-1,4,0,26:00,9,-1,5,0,02:00
-379,Asia/Amman,2006,Jordan,120,60,3,-1,4,0,26:00,10,-1,5,0,02:00
-380,Asia/Amman,2012,Jordan,120,60,3,-1,4,0,26:00,1,1,-1,0,13:00
-381,Asia/Amman,2013,Jordan,120,60,3,-1,4,0,26:00,10,-1,5,0,02:00
-382,Asia/Almaty,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-383,Asia/Almaty,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
-384,Asia/Almaty,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
-385,Asia/Almaty,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-386,Asia/Almaty,1991,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-387,Asia/Almaty,1992,RussiaAsia,360,60,3,-1,6,0,29:00,9,-1,6,0,28:00
-388,Asia/Almaty,1993,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-389,Asia/Almaty,1996,RussiaAsia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
-390,Asia/Almaty,2005,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-391,Asia/Qyzylorda,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-392,Asia/Qyzylorda,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-393,Asia/Qyzylorda,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-394,Asia/Qyzylorda,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-395,Asia/Qyzylorda,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-396,Asia/Qyzylorda,1991,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-397,Asia/Qyzylorda,1992,RussiaAsia,360,60,3,-1,6,0,29:00,9,-1,6,0,28:00
-398,Asia/Qyzylorda,1993,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-399,Asia/Qyzylorda,1996,RussiaAsia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
-400,Asia/Qyzylorda,2005,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-401,Asia/Aqtobe,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-402,Asia/Aqtobe,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-403,Asia/Aqtobe,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-404,Asia/Aqtobe,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-405,Asia/Aqtobe,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-406,Asia/Aqtobe,1992,RussiaAsia,300,60,3,-1,6,0,28:00,9,-1,6,0,27:00
-407,Asia/Aqtobe,1993,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-408,Asia/Aqtobe,1996,RussiaAsia,300,60,3,-1,0,0,07:00,10,-1,0,0,07:00
-409,Asia/Aqtobe,2005,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-410,Asia/Aqtau,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-411,Asia/Aqtau,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-412,Asia/Aqtau,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-413,Asia/Aqtau,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-414,Asia/Aqtau,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-415,Asia/Aqtau,1992,RussiaAsia,300,60,3,-1,6,0,28:00,9,-1,6,0,27:00
-416,Asia/Aqtau,1993,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-417,Asia/Aqtau,1995,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-418,Asia/Aqtau,1996,RussiaAsia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
-419,Asia/Aqtau,2005,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-420,Asia/Oral,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-421,Asia/Oral,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-422,Asia/Oral,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-423,Asia/Oral,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-424,Asia/Oral,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-425,Asia/Oral,1989,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-426,Asia/Oral,1992,RussiaAsia,240,60,3,-1,6,0,27:00,9,-1,6,0,26:00
-427,Asia/Oral,1993,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-428,Asia/Oral,1996,RussiaAsia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
-429,Asia/Oral,2005,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-430,Asia/Bishkek,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-431,Asia/Bishkek,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
-432,Asia/Bishkek,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
-433,Asia/Bishkek,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-434,Asia/Bishkek,1991,Kyrgyz,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-435,Asia/Bishkek,1992,Kyrgyz,300,60,4,7,0,0,05:00,9,-1,0,0,04:00
-436,Asia/Bishkek,1997,Kyrgyz,300,60,3,-1,0,0,07:30,10,-1,0,0,06:30
-437,Asia/Bishkek,2005,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-438,Asia/Seoul,1970,ROK,540,60,5,15,-1,0,09:00,9,13,-1,0,08:00
-439,Asia/Seoul,1987,ROK,540,60,5,8,0,0,09:00,10,8,0,0,08:00
-440,Asia/Seoul,1988,ROK,540,0,5,8,0,0,09:00,10,8,0,0,08:00
-441,Asia/Pyongyang,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
-442,Asia/Kuwait,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-443,Asia/Vientiane,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-444,Asia/Beirut,1970,Lebanon,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
-445,Asia/Beirut,1972,Lebanon,120,60,6,22,-1,0,02:00,10,1,-1,0,01:00
-446,Asia/Beirut,1973,Lebanon,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
-447,Asia/Beirut,1978,Lebanon,120,60,4,30,-1,0,02:00,9,30,-1,0,01:00
-448,Asia/Beirut,1984,Lebanon,120,60,5,1,-1,0,02:00,10,16,-1,0,01:00
-449,Asia/Beirut,1988,Lebanon,120,60,6,1,-1,0,02:00,10,16,-1,0,01:00
-450,Asia/Beirut,1989,Lebanon,120,60,5,10,-1,0,02:00,10,16,-1,0,01:00
-451,Asia/Beirut,1990,Lebanon,120,60,5,1,-1,0,02:00,10,16,-1,0,01:00
-452,Asia/Beirut,1992,Lebanon,120,60,5,1,-1,0,02:00,10,4,-1,0,01:00
-453,Asia/Beirut,1993,Lebanon,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-454,Asia/Beirut,1999,Lebanon,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
-455,Asia/Kuala_Lumpur,1970,,450,0,0,0,0,0,00:00,0,0,0,0,00:00
-456,Asia/Kuala_Lumpur,1982,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-457,Asia/Kuching,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-458,Asia/Kuching,1982,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-459,Indian/Maldives,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-460,Asia/Hovd,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-461,Asia/Hovd,1978,Mongol,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-462,Asia/Hovd,1983,Mongol,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
-463,Asia/Hovd,1984,Mongol,420,60,4,1,-1,0,07:00,9,-1,0,0,06:00
-464,Asia/Hovd,1985,Mongol,420,60,3,-1,0,0,07:00,9,-1,0,0,06:00
-465,Asia/Hovd,2001,Mongol,420,60,4,-1,6,0,09:00,9,-1,6,0,08:00
-466,Asia/Hovd,2002,Mongol,420,60,3,-1,6,0,09:00,9,-1,6,0,08:00
-467,Asia/Hovd,2006,Mongol,420,0,3,-1,6,0,09:00,9,-1,6,0,08:00
-468,Asia/Ulaanbaatar,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-469,Asia/Ulaanbaatar,1978,Mongol,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-470,Asia/Ulaanbaatar,1983,Mongol,480,60,4,1,-1,0,08:00,10,1,-1,0,07:00
-471,Asia/Ulaanbaatar,1984,Mongol,480,60,4,1,-1,0,08:00,9,-1,0,0,07:00
-472,Asia/Ulaanbaatar,1985,Mongol,480,60,3,-1,0,0,08:00,9,-1,0,0,07:00
-473,Asia/Ulaanbaatar,2001,Mongol,480,60,4,-1,6,0,10:00,9,-1,6,0,09:00
-474,Asia/Ulaanbaatar,2002,Mongol,480,60,3,-1,6,0,10:00,9,-1,6,0,09:00
-475,Asia/Ulaanbaatar,2006,Mongol,480,0,3,-1,6,0,10:00,9,-1,6,0,09:00
-476,Asia/Choibalsan,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-477,Asia/Choibalsan,1978,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-478,Asia/Choibalsan,1983,Mongol,540,60,4,1,-1,0,09:00,10,1,-1,0,08:00
-479,Asia/Choibalsan,1984,Mongol,540,60,4,1,-1,0,09:00,9,-1,0,0,08:00
-480,Asia/Choibalsan,1985,Mongol,540,60,3,-1,0,0,09:00,9,-1,0,0,08:00
-481,Asia/Choibalsan,2001,Mongol,540,60,4,-1,6,0,11:00,9,-1,6,0,10:00
-482,Asia/Choibalsan,2002,Mongol,540,60,3,-1,6,0,11:00,9,-1,6,0,10:00
-483,Asia/Choibalsan,2006,Mongol,540,0,3,-1,6,0,11:00,9,-1,6,0,10:00
-484,Asia/Choibalsan,2008,Mongol,480,0,3,-1,6,0,10:00,9,-1,6,0,09:00
-485,Asia/Kathmandu,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
-486,Asia/Kathmandu,1986,,345,0,0,0,0,0,00:00,0,0,0,0,00:00
-487,Asia/Muscat,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-488,Asia/Karachi,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-489,Asia/Karachi,1971,Pakistan,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-490,Asia/Karachi,2002,Pakistan,300,60,4,2,0,0,05:01,10,2,0,0,04:01
-491,Asia/Karachi,2008,Pakistan,300,60,6,1,-1,0,05:00,11,1,-1,0,04:00
-492,Asia/Karachi,2009,Pakistan,300,60,4,15,-1,0,05:00,11,1,-1,0,04:00
-493,Asia/Karachi,2010,Pakistan,300,0,4,15,-1,0,05:00,11,1,-1,0,04:00
-494,Asia/Gaza,1970,Zion,120,60,4,29,-1,0,04:00,9,22,-1,0,01:00
-495,Asia/Gaza,1974,Zion,120,60,7,7,-1,0,02:00,10,13,-1,0,01:00
-496,Asia/Gaza,1975,Zion,120,60,4,20,-1,0,02:00,8,31,-1,0,01:00
-497,Asia/Gaza,1985,Zion,120,60,4,14,-1,0,02:00,9,15,-1,0,01:00
-498,Asia/Gaza,1986,Zion,120,60,5,18,-1,0,02:00,9,7,-1,0,01:00
-499,Asia/Gaza,1987,Zion,120,60,4,15,-1,0,02:00,9,13,-1,0,01:00
-500,Asia/Gaza,1988,Zion,120,60,4,9,-1,0,02:00,9,3,-1,0,01:00
-501,Asia/Gaza,1989,Zion,120,60,4,30,-1,0,02:00,9,3,-1,0,01:00
-502,Asia/Gaza,1990,Zion,120,60,3,25,-1,0,02:00,8,26,-1,0,01:00
-503,Asia/Gaza,1991,Zion,120,60,3,24,-1,0,02:00,9,1,-1,0,01:00
-504,Asia/Gaza,1992,Zion,120,60,3,29,-1,0,02:00,9,6,-1,0,01:00
-505,Asia/Gaza,1993,Zion,120,60,4,2,-1,0,02:00,9,5,-1,0,01:00
-506,Asia/Gaza,1994,Zion,120,60,4,1,-1,0,02:00,8,28,-1,0,01:00
-507,Asia/Gaza,1995,Zion,120,60,3,31,-1,0,02:00,9,3,-1,0,01:00
-508,Asia/Gaza,1996,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,02:00
-509,Asia/Gaza,1999,Palestine,120,60,4,15,5,0,02:00,10,15,5,0,01:00
-510,Asia/Gaza,2004,Palestine,120,60,4,15,5,0,02:00,10,1,-1,0,02:00
-511,Asia/Gaza,2005,Palestine,120,60,4,15,5,0,02:00,10,4,-1,0,03:00
-512,Asia/Gaza,2006,Palestine,120,60,4,1,-1,0,02:00,9,22,-1,0,01:00
-513,Asia/Gaza,2007,Palestine,120,60,4,1,-1,0,02:00,9,8,4,0,03:00
-514,Asia/Gaza,2008,Palestine,120,60,4,1,-1,0,02:00,8,-1,5,0,01:00
-515,Asia/Gaza,2009,Palestine,120,60,3,-1,5,0,02:00,9,1,5,0,03:00
-516,Asia/Gaza,2010,Palestine,120,60,3,-1,6,0,02:01,8,11,-1,0,01:00
-517,Asia/Gaza,2011,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-518,Asia/Hebron,1970,Zion,120,60,4,29,-1,0,04:00,9,22,-1,0,01:00
-519,Asia/Hebron,1974,Zion,120,60,7,7,-1,0,02:00,10,13,-1,0,01:00
-520,Asia/Hebron,1975,Zion,120,60,4,20,-1,0,02:00,8,31,-1,0,01:00
-521,Asia/Hebron,1985,Zion,120,60,4,14,-1,0,02:00,9,15,-1,0,01:00
-522,Asia/Hebron,1986,Zion,120,60,5,18,-1,0,02:00,9,7,-1,0,01:00
-523,Asia/Hebron,1987,Zion,120,60,4,15,-1,0,02:00,9,13,-1,0,01:00
-524,Asia/Hebron,1988,Zion,120,60,4,9,-1,0,02:00,9,3,-1,0,01:00
-525,Asia/Hebron,1989,Zion,120,60,4,30,-1,0,02:00,9,3,-1,0,01:00
-526,Asia/Hebron,1990,Zion,120,60,3,25,-1,0,02:00,8,26,-1,0,01:00
-527,Asia/Hebron,1991,Zion,120,60,3,24,-1,0,02:00,9,1,-1,0,01:00
-528,Asia/Hebron,1992,Zion,120,60,3,29,-1,0,02:00,9,6,-1,0,01:00
-529,Asia/Hebron,1993,Zion,120,60,4,2,-1,0,02:00,9,5,-1,0,01:00
-530,Asia/Hebron,1994,Zion,120,60,4,1,-1,0,02:00,8,28,-1,0,01:00
-531,Asia/Hebron,1995,Zion,120,60,3,31,-1,0,02:00,9,3,-1,0,01:00
-532,Asia/Hebron,1996,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,02:00
-533,Asia/Hebron,1999,Palestine,120,60,4,15,5,0,02:00,10,15,5,0,01:00
-534,Asia/Hebron,2004,Palestine,120,60,4,15,5,0,02:00,10,1,-1,0,02:00
-535,Asia/Hebron,2005,Palestine,120,60,4,15,5,0,02:00,10,4,-1,0,03:00
-536,Asia/Hebron,2006,Palestine,120,60,4,1,-1,0,02:00,9,22,-1,0,01:00
-537,Asia/Hebron,2007,Palestine,120,60,4,1,-1,0,02:00,9,8,4,0,03:00
-538,Asia/Hebron,2008,Palestine,120,60,4,1,-1,0,02:00,8,-1,5,0,01:00
-539,Asia/Hebron,2009,Palestine,120,60,3,-1,5,0,02:00,9,1,5,0,03:00
-540,Asia/Hebron,2010,Palestine,120,60,3,-1,6,0,02:01,8,11,-1,0,01:00
-541,Asia/Hebron,2011,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-542,Asia/Manila,1970,Phil,480,60,4,12,-1,0,08:00,7,1,-1,0,07:00
-543,Asia/Manila,1978,Phil,480,60,3,22,-1,0,08:00,9,21,-1,0,07:00
-544,Asia/Manila,1979,Phil,480,0,3,22,-1,0,08:00,9,21,-1,0,07:00
-545,Asia/Qatar,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-546,Asia/Qatar,1972,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-547,Asia/Riyadh,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-548,Asia/Singapore,1970,,450,0,0,0,0,0,00:00,0,0,0,0,00:00
-549,Asia/Singapore,1982,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-550,Asia/Colombo,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
-551,Asia/Colombo,1996,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-552,Asia/Colombo,2006,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
-553,Asia/Damascus,1970,Syria,120,60,5,1,-1,0,04:00,10,1,-1,0,03:00
-554,Asia/Damascus,1977,Syria,120,60,5,1,-1,0,04:00,9,1,-1,0,03:00
-555,Asia/Damascus,1983,Syria,120,60,4,9,-1,0,04:00,10,1,-1,0,03:00
-556,Asia/Damascus,1986,Syria,120,60,2,16,-1,0,04:00,10,9,-1,0,03:00
-557,Asia/Damascus,1987,Syria,120,60,3,1,-1,0,04:00,10,31,-1,0,03:00
-558,Asia/Damascus,1988,Syria,120,60,3,15,-1,0,04:00,10,31,-1,0,03:00
-559,Asia/Damascus,1989,Syria,120,60,3,31,-1,0,04:00,10,1,-1,0,03:00
-560,Asia/Damascus,1990,Syria,120,60,4,1,-1,0,04:00,9,30,-1,0,03:00
-561,Asia/Damascus,1991,Syria,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
-562,Asia/Damascus,1992,Syria,120,60,4,8,-1,0,02:00,10,1,-1,0,01:00
-563,Asia/Damascus,1993,Syria,120,60,3,26,-1,0,02:00,9,25,-1,0,01:00
-564,Asia/Damascus,1994,Syria,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
-565,Asia/Damascus,1997,Syria,120,60,3,-1,1,0,02:00,10,1,-1,0,01:00
-566,Asia/Damascus,1999,Syria,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
-567,Asia/Damascus,2006,Syria,120,60,4,1,-1,0,02:00,9,22,-1,0,01:00
-568,Asia/Damascus,2007,Syria,120,60,3,-1,5,0,02:00,11,1,5,0,01:00
-569,Asia/Damascus,2008,Syria,120,60,4,1,5,0,02:00,11,1,-1,0,01:00
-570,Asia/Damascus,2009,Syria,120,60,3,-1,5,0,02:00,10,-1,5,0,01:00
-571,Asia/Damascus,2010,Syria,120,60,4,1,5,0,02:00,10,-1,5,0,01:00
-572,Asia/Damascus,2012,Syria,120,60,3,-1,5,0,02:00,10,-1,5,0,01:00
-573,Asia/Dushanbe,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-574,Asia/Dushanbe,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
-575,Asia/Dushanbe,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
-576,Asia/Dushanbe,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-577,Asia/Dushanbe,1991,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-578,Asia/Bangkok,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-579,Asia/Ashgabat,1970,RussiaAsia,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-580,Asia/Ashgabat,1981,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-581,Asia/Ashgabat,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-582,Asia/Ashgabat,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-583,Asia/Ashgabat,1991,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-584,Asia/Ashgabat,1992,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-585,Asia/Dubai,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-586,Asia/Samarkand,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-587,Asia/Samarkand,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-588,Asia/Samarkand,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-589,Asia/Samarkand,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-590,Asia/Samarkand,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-591,Asia/Samarkand,1992,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-592,Asia/Tashkent,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-593,Asia/Tashkent,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
-594,Asia/Tashkent,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
-595,Asia/Tashkent,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-596,Asia/Tashkent,1991,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-597,Asia/Tashkent,1992,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
-598,Asia/Ho_Chi_Minh,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-599,Asia/Aden,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-600,Australia/Darwin,1970,Aus,570,0,12,31,-1,0,21:30,3,-1,0,0,10:30
-601,Australia/Perth,1970,AW,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-602,Australia/Perth,1974,AW,480,60,10,-1,0,0,10:00,1,1,-1,0,19:00
-603,Australia/Perth,1975,AW,480,0,12,31,-1,0,20:00,3,1,0,0,10:00
-604,Australia/Perth,1983,AW,480,60,10,-1,0,0,10:00,1,1,-1,0,19:00
-605,Australia/Perth,1984,AW,480,0,12,31,-1,0,20:00,3,1,0,0,10:00
-606,Australia/Perth,1991,AW,480,60,11,17,-1,0,10:00,1,1,-1,0,19:00
-607,Australia/Perth,1992,AW,480,0,12,31,-1,0,20:00,3,1,0,0,10:00
-608,Australia/Perth,2006,AW,480,60,12,3,-1,0,10:00,1,1,-1,0,19:00
-609,Australia/Perth,2007,AW,480,60,10,-1,0,0,10:00,3,-1,0,0,10:00
-610,Australia/Perth,2009,AW,480,0,12,31,-1,0,20:00,3,-1,0,0,10:00
-611,Australia/Eucla,1970,AW,525,0,0,0,0,0,00:00,0,0,0,0,00:00
-612,Australia/Eucla,1974,AW,525,60,10,-1,0,0,10:45,1,1,-1,0,19:45
-613,Australia/Eucla,1975,AW,525,0,12,31,-1,0,20:45,3,1,0,0,10:45
-614,Australia/Eucla,1983,AW,525,60,10,-1,0,0,10:45,1,1,-1,0,19:45
-615,Australia/Eucla,1984,AW,525,0,12,31,-1,0,20:45,3,1,0,0,10:45
-616,Australia/Eucla,1991,AW,525,60,11,17,-1,0,10:45,1,1,-1,0,19:45
-617,Australia/Eucla,1992,AW,525,0,12,31,-1,0,20:45,3,1,0,0,10:45
-618,Australia/Eucla,2006,AW,525,60,12,3,-1,0,10:45,1,1,-1,0,19:45
-619,Australia/Eucla,2007,AW,525,60,10,-1,0,0,10:45,3,-1,0,0,10:45
-620,Australia/Eucla,2009,AW,525,0,12,31,-1,0,20:45,3,-1,0,0,10:45
-621,Australia/Brisbane,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
-622,Australia/Brisbane,1971,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-623,Australia/Brisbane,1972,AQ,600,0,12,31,-1,0,22:00,2,-1,0,0,12:00
-624,Australia/Brisbane,1989,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-625,Australia/Brisbane,1990,AQ,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-626,Australia/Brisbane,1992,AQ,600,0,12,31,-1,0,22:00,3,1,0,0,12:00
-627,Australia/Lindeman,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
-628,Australia/Lindeman,1971,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-629,Australia/Lindeman,1972,AQ,600,0,12,31,-1,0,22:00,2,-1,0,0,12:00
-630,Australia/Lindeman,1989,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-631,Australia/Lindeman,1990,AQ,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-632,Australia/Lindeman,1992,Holiday,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-633,Australia/Lindeman,1993,Holiday,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-634,Australia/Lindeman,1994,Holiday,600,0,12,31,-1,0,22:00,3,1,0,0,12:00
-635,Australia/Adelaide,1970,Aus,570,0,12,31,-1,0,21:30,3,-1,0,0,10:30
-636,Australia/Adelaide,1971,AS,570,60,10,-1,0,0,11:30,1,1,-1,0,20:30
-637,Australia/Adelaide,1972,AS,570,60,10,-1,0,0,11:30,2,27,-1,0,11:30
-638,Australia/Adelaide,1973,AS,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
-639,Australia/Adelaide,1986,AS,570,60,10,19,-1,0,11:30,3,15,0,0,11:30
-640,Australia/Adelaide,1987,AS,570,60,10,-1,0,0,11:30,3,15,0,0,11:30
-641,Australia/Adelaide,1991,AS,570,60,10,-1,0,0,11:30,3,3,-1,0,11:30
-642,Australia/Adelaide,1992,AS,570,60,10,-1,0,0,11:30,3,22,-1,0,11:30
-643,Australia/Adelaide,1993,AS,570,60,10,-1,0,0,11:30,3,7,-1,0,11:30
-644,Australia/Adelaide,1994,AS,570,60,10,-1,0,0,11:30,3,20,-1,0,11:30
-645,Australia/Adelaide,1995,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
-646,Australia/Adelaide,2006,AS,570,60,10,-1,0,0,11:30,4,2,-1,0,11:30
-647,Australia/Adelaide,2007,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
-648,Australia/Adelaide,2008,AS,570,60,10,1,0,0,11:30,4,1,0,0,11:30
-649,Australia/Hobart,1970,AT,600,60,10,-1,0,0,12:00,3,8,0,0,12:00
-650,Australia/Hobart,1972,AT,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
-651,Australia/Hobart,1973,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-652,Australia/Hobart,1982,AT,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-653,Australia/Hobart,1984,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-654,Australia/Hobart,1986,AT,600,60,10,15,0,0,12:00,3,1,0,0,12:00
-655,Australia/Hobart,1987,AT,600,60,10,22,0,0,12:00,3,15,0,0,12:00
-656,Australia/Hobart,1988,AT,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
-657,Australia/Hobart,1991,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-658,Australia/Hobart,2000,AT,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
-659,Australia/Hobart,2001,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-660,Australia/Hobart,2006,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-661,Australia/Hobart,2007,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-662,Australia/Hobart,2008,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-663,Australia/Currie,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
-664,Australia/Currie,1971,AT,600,60,10,-1,0,0,12:00,3,8,0,0,12:00
-665,Australia/Currie,1972,AT,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
-666,Australia/Currie,1973,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-667,Australia/Currie,1982,AT,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-668,Australia/Currie,1984,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-669,Australia/Currie,1986,AT,600,60,10,15,0,0,12:00,3,1,0,0,12:00
-670,Australia/Currie,1987,AT,600,60,10,22,0,0,12:00,3,15,0,0,12:00
-671,Australia/Currie,1988,AT,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
-672,Australia/Currie,1991,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-673,Australia/Currie,2000,AT,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
-674,Australia/Currie,2001,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-675,Australia/Currie,2006,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-676,Australia/Currie,2007,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
-677,Australia/Currie,2008,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-678,Australia/Melbourne,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
-679,Australia/Melbourne,1971,AV,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-680,Australia/Melbourne,1972,AV,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
-681,Australia/Melbourne,1973,AV,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-682,Australia/Melbourne,1986,AV,600,60,10,15,0,0,12:00,3,15,0,0,12:00
-683,Australia/Melbourne,1988,AV,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
-684,Australia/Melbourne,1991,AV,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-685,Australia/Melbourne,1995,AV,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-686,Australia/Melbourne,2000,AV,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
-687,Australia/Melbourne,2001,AV,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-688,Australia/Melbourne,2006,AV,600,60,10,-1,0,0,12:00,4,1,0,0,12:00
-689,Australia/Melbourne,2007,AV,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-690,Australia/Melbourne,2008,AV,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-691,Australia/Sydney,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
-692,Australia/Sydney,1971,AN,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
-693,Australia/Sydney,1972,AN,600,60,10,-1,0,0,12:00,2,27,-1,0,12:00
-694,Australia/Sydney,1973,AN,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-695,Australia/Sydney,1982,AN,600,60,10,-1,0,0,12:00,4,1,0,0,12:00
-696,Australia/Sydney,1983,AN,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-697,Australia/Sydney,1986,AN,600,60,10,19,-1,0,12:00,3,15,0,0,12:00
-698,Australia/Sydney,1987,AN,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
-699,Australia/Sydney,1990,AN,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
-700,Australia/Sydney,1996,AN,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-701,Australia/Sydney,2000,AN,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
-702,Australia/Sydney,2001,AN,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-703,Australia/Sydney,2006,AN,600,60,10,-1,0,0,12:00,4,1,0,0,12:00
-704,Australia/Sydney,2007,AN,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
-705,Australia/Sydney,2008,AN,600,60,10,1,0,0,12:00,4,1,0,0,12:00
-706,Australia/Broken_Hill,1970,Aus,570,0,12,31,-1,0,21:30,3,-1,0,0,10:30
-707,Australia/Broken_Hill,1971,AN,570,60,10,-1,0,0,11:30,1,1,-1,0,20:30
-708,Australia/Broken_Hill,1972,AN,570,60,10,-1,0,0,11:30,2,27,-1,0,11:30
-709,Australia/Broken_Hill,1973,AN,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
-710,Australia/Broken_Hill,1982,AN,570,60,10,-1,0,0,11:30,4,1,0,0,11:30
-711,Australia/Broken_Hill,1983,AN,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
-712,Australia/Broken_Hill,1986,AN,570,60,10,19,-1,0,11:30,3,15,0,0,11:30
-713,Australia/Broken_Hill,1987,AN,570,60,10,-1,0,0,11:30,3,15,0,0,11:30
-714,Australia/Broken_Hill,1990,AN,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
-715,Australia/Broken_Hill,1996,AN,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
-716,Australia/Broken_Hill,2000,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
-717,Australia/Broken_Hill,2006,AS,570,60,10,-1,0,0,11:30,4,2,-1,0,11:30
-718,Australia/Broken_Hill,2007,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
-719,Australia/Broken_Hill,2008,AS,570,60,10,1,0,0,11:30,4,1,0,0,11:30
-720,Australia/Lord_Howe,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-721,Australia/Lord_Howe,1981,LH,630,60,10,-1,0,0,12:30,1,1,-1,0,21:30
-722,Australia/Lord_Howe,1982,LH,630,60,10,-1,0,0,12:30,3,1,0,0,11:30
-723,Australia/Lord_Howe,1985,LH,630,30,10,-1,0,0,12:30,3,1,0,0,11:30
-724,Australia/Lord_Howe,1986,LH,630,30,10,19,-1,0,12:30,3,15,0,0,11:30
-725,Australia/Lord_Howe,1987,LH,630,30,10,-1,0,0,12:30,3,15,0,0,11:30
-726,Australia/Lord_Howe,1990,LH,630,30,10,-1,0,0,12:30,3,1,0,0,11:30
-727,Australia/Lord_Howe,1996,LH,630,30,10,-1,0,0,12:30,3,-1,0,0,11:30
-728,Australia/Lord_Howe,2000,LH,630,30,8,-1,0,0,12:30,3,-1,0,0,11:30
-729,Australia/Lord_Howe,2001,LH,630,30,10,-1,0,0,12:30,3,-1,0,0,11:30
-730,Australia/Lord_Howe,2006,LH,630,30,10,-1,0,0,12:30,4,1,0,0,11:30
-731,Australia/Lord_Howe,2007,LH,630,30,10,-1,0,0,12:30,3,-1,0,0,11:30
-732,Australia/Lord_Howe,2008,LH,630,30,10,1,0,0,12:30,4,1,0,0,11:30
-733,Indian/Christmas,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-734,Pacific/Rarotonga,1970,,-630,0,0,0,0,0,00:00,0,0,0,0,00:00
-735,Pacific/Rarotonga,1978,Cook,-600,30,11,12,-1,0,-10:00,1,1,-1,0,01:00
-736,Pacific/Rarotonga,1979,Cook,-600,30,10,-1,0,0,-10:00,3,1,0,0,-11:00
-737,Pacific/Rarotonga,1991,Cook,-600,0,12,31,-1,0,02:00,3,1,0,0,-11:00
-738,Indian/Cocos,1970,,390,0,0,0,0,0,00:00,0,0,0,0,00:00
-739,Pacific/Fiji,1970,Fiji,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-740,Pacific/Fiji,1998,Fiji,720,60,11,1,0,0,14:00,1,1,-1,0,23:00
-741,Pacific/Fiji,1999,Fiji,720,60,11,1,0,0,14:00,2,-1,0,0,14:00
-742,Pacific/Fiji,2000,Fiji,720,0,12,31,-1,0,24:00,2,-1,0,0,14:00
-743,Pacific/Fiji,2009,Fiji,720,60,11,29,-1,0,14:00,1,1,-1,0,23:00
-744,Pacific/Fiji,2010,Fiji,720,60,10,18,0,0,14:00,3,-1,0,0,14:00
-745,Pacific/Fiji,2011,Fiji,720,60,10,18,0,0,14:00,3,1,0,0,14:00
-746,Pacific/Fiji,2012,Fiji,720,60,10,18,0,0,14:00,1,18,0,0,14:00
-747,Pacific/Gambier,1970,,-540,0,0,0,0,0,00:00,0,0,0,0,00:00
-748,Pacific/Marquesas,1970,,-570,0,0,0,0,0,00:00,0,0,0,0,00:00
-749,Pacific/Tahiti,1970,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
-750,Pacific/Guam,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-751,Pacific/Guam,2000,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-752,Pacific/Tarawa,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-753,Pacific/Enderbury,1970,,-720,0,0,0,0,0,00:00,0,0,0,0,00:00
-754,Pacific/Enderbury,1979,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-755,Pacific/Enderbury,1995,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
-756,Pacific/Kiritimati,1970,,-640,0,0,0,0,0,00:00,0,0,0,0,00:00
-757,Pacific/Kiritimati,1979,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
-758,Pacific/Kiritimati,1995,,840,0,0,0,0,0,00:00,0,0,0,0,00:00
-759,Pacific/Saipan,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-760,Pacific/Saipan,2000,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-761,Pacific/Majuro,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-762,Pacific/Kwajalein,1970,,-720,0,0,0,0,0,00:00,0,0,0,0,00:00
-763,Pacific/Kwajalein,1993,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-764,Pacific/Chuuk,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-765,Pacific/Pohnpei,1970,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-766,Pacific/Kosrae,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-767,Pacific/Kosrae,1999,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-768,Pacific/Nauru,1970,,690,0,0,0,0,0,00:00,0,0,0,0,00:00
-769,Pacific/Nauru,1979,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-770,Pacific/Noumea,1970,NC,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-771,Pacific/Noumea,1977,NC,660,60,12,1,0,0,11:00,1,1,-1,0,22:00
-772,Pacific/Noumea,1978,NC,660,60,12,1,0,0,11:00,2,27,-1,0,10:00
-773,Pacific/Noumea,1979,NC,660,0,12,31,-1,0,23:00,2,27,-1,0,10:00
-774,Pacific/Noumea,1996,NC,660,60,12,1,-1,0,13:00,1,1,-1,0,22:00
-775,Pacific/Noumea,1997,NC,660,0,12,31,-1,0,23:00,3,2,-1,0,13:00
-776,Pacific/Auckland,1970,NZ,720,0,12,31,-1,0,24:00,1,1,-1,0,11:00
-777,Pacific/Auckland,1974,NZ,720,60,11,1,0,0,14:00,1,1,-1,0,23:00
-778,Pacific/Auckland,1975,NZ,720,60,10,-1,0,0,14:00,2,-1,0,0,14:00
-779,Pacific/Auckland,1976,NZ,720,60,10,-1,0,0,14:00,3,1,0,0,14:00
-780,Pacific/Auckland,1989,NZ,720,60,10,8,0,0,14:00,3,1,0,0,14:00
-781,Pacific/Auckland,1990,NZ,720,60,10,1,0,0,14:00,3,15,0,0,14:00
-782,Pacific/Auckland,2007,NZ,720,60,9,-1,0,0,14:00,3,15,0,0,14:00
-783,Pacific/Auckland,2008,NZ,720,60,9,-1,0,0,14:00,4,1,0,0,14:00
-784,Pacific/Chatham,1970,Chatham,765,0,0,0,0,0,00:00,0,0,0,0,00:00
-785,Pacific/Chatham,1974,Chatham,765,60,11,1,0,0,15:30,1,1,-1,0,23:45
-786,Pacific/Chatham,1975,Chatham,765,60,10,-1,0,0,15:30,2,-1,0,0,15:30
-787,Pacific/Chatham,1976,Chatham,765,60,10,-1,0,0,15:30,3,1,0,0,15:30
-788,Pacific/Chatham,1989,Chatham,765,60,10,8,0,0,15:30,3,1,0,0,15:30
-789,Pacific/Chatham,1990,Chatham,765,60,10,1,0,0,15:30,3,15,0,0,15:30
-790,Pacific/Chatham,2007,Chatham,765,60,9,-1,0,0,15:30,3,15,0,0,15:30
-791,Pacific/Chatham,2008,Chatham,765,60,9,-1,0,0,15:30,4,1,0,0,15:30
-792,Pacific/Niue,1970,,-690,0,0,0,0,0,00:00,0,0,0,0,00:00
-793,Pacific/Niue,1978,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-794,Pacific/Norfolk,1970,,690,0,0,0,0,0,00:00,0,0,0,0,00:00
-795,Pacific/Palau,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
-796,Pacific/Port_Moresby,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-797,Pacific/Pitcairn,1970,,-510,0,0,0,0,0,00:00,0,0,0,0,00:00
-798,Pacific/Pitcairn,1998,,-480,0,0,0,0,0,00:00,0,0,0,0,00:00
-799,Pacific/Pago_Pago,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-800,Pacific/Pago_Pago,1983,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-801,Pacific/Apia,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-802,Pacific/Apia,2010,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-803,Pacific/Apia,2011,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
-804,Pacific/Apia,2012,WS,780,1,9,-1,0,0,16:00,4,1,0,0,16:00
-805,Pacific/Guadalcanal,1970,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-806,Pacific/Fakaofo,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-807,Pacific/Fakaofo,2011,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
-808,Pacific/Tongatapu,1970,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
-809,Pacific/Tongatapu,1999,Tonga,780,60,10,7,-1,0,15:00,1,1,-1,0,24:00
-810,Pacific/Tongatapu,2000,Tonga,780,60,11,1,0,0,15:00,3,19,-1,0,15:00
-811,Pacific/Tongatapu,2001,Tonga,780,60,11,1,0,0,15:00,1,-1,0,0,14:00
-812,Pacific/Tongatapu,2002,Tonga,780,0,12,31,-1,0,25:00,1,-1,0,0,14:00
-813,Pacific/Funafuti,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-814,Pacific/Johnston,1970,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
-815,Pacific/Midway,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-816,Pacific/Midway,1983,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
-817,Pacific/Wake,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-818,Pacific/Efate,1970,Vanuatu,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-819,Pacific/Efate,1983,Vanuatu,660,60,9,25,-1,0,11:00,1,1,-1,0,22:00
-820,Pacific/Efate,1984,Vanuatu,660,60,10,23,-1,0,11:00,3,23,0,0,10:00
-821,Pacific/Efate,1985,Vanuatu,660,60,9,23,0,0,11:00,3,23,0,0,10:00
-822,Pacific/Efate,1992,Vanuatu,660,60,10,23,0,0,11:00,1,23,0,0,10:00
-823,Pacific/Efate,1993,Vanuatu,660,0,12,31,-1,0,23:00,1,23,0,0,10:00
-824,Pacific/Wallis,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-825,Europe/London,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-826,Europe/London,1971,GB-Eire,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-827,Europe/London,1972,GB-Eire,0,60,3,16,0,0,02:00,10,23,0,0,02:00
-828,Europe/London,1981,GB-Eire,0,60,3,-1,0,0,1:00,10,23,0,0,1:00
-829,Europe/London,1990,GB-Eire,0,60,3,-1,0,0,1:00,10,22,0,0,1:00
-830,Europe/London,1995,GB-Eire,0,0,3,-1,0,0,1:00,10,22,0,0,1:00
-831,Europe/London,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-832,Europe/Dublin,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-833,Europe/Dublin,1971,GB-Eire,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-834,Europe/Dublin,1972,GB-Eire,0,60,3,16,0,0,02:00,10,23,0,0,02:00
-835,Europe/Dublin,1981,GB-Eire,0,60,3,-1,0,0,1:00,10,23,0,0,1:00
-836,Europe/Dublin,1990,GB-Eire,0,60,3,-1,0,0,1:00,10,22,0,0,1:00
-837,Europe/Dublin,1995,GB-Eire,0,0,3,-1,0,0,1:00,10,22,0,0,1:00
-838,Europe/Dublin,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-839,WET,1970,EU,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-840,WET,1977,EU,0,60,4,1,0,0,1:00,9,-1,0,0,1:00
-841,WET,1978,EU,0,60,4,1,0,0,1:00,10,1,-1,0,1:00
-842,WET,1979,EU,0,60,4,1,0,0,1:00,9,-1,0,0,1:00
-843,WET,1981,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-844,WET,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-845,CET,1970,C-Eur,60,60,4,1,1,0,03:00,9,16,-1,0,03:00
-846,CET,1977,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
-847,CET,1978,C-Eur,60,60,4,1,0,0,03:00,10,1,-1,0,03:00
-848,CET,1979,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
-849,CET,1981,C-Eur,60,60,3,-1,0,0,03:00,9,-1,0,0,03:00
-850,CET,1996,C-Eur,60,60,3,-1,0,0,03:00,10,-1,0,0,03:00
-851,MET,1970,C-Eur,60,60,4,1,1,0,03:00,9,16,-1,0,03:00
-852,MET,1977,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
-853,MET,1978,C-Eur,60,60,4,1,0,0,03:00,10,1,-1,0,03:00
-854,MET,1979,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
-855,MET,1981,C-Eur,60,60,3,-1,0,0,03:00,9,-1,0,0,03:00
-856,MET,1996,C-Eur,60,60,3,-1,0,0,03:00,10,-1,0,0,03:00
-857,EET,1970,EU,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-858,EET,1977,EU,120,60,4,1,0,0,1:00,9,-1,0,0,1:00
-859,EET,1978,EU,120,60,4,1,0,0,1:00,10,1,-1,0,1:00
-860,EET,1979,EU,120,60,4,1,0,0,1:00,9,-1,0,0,1:00
-861,EET,1981,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-862,EET,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-863,Europe/Tirane,1970,Albania,60,60,3,29,-1,0,03:00,4,10,-1,0,03:00
-864,Europe/Tirane,1974,Albania,60,60,5,4,-1,0,01:00,10,2,-1,0,00:00
-865,Europe/Tirane,1975,Albania,60,60,5,1,-1,0,01:00,10,2,-1,0,00:00
-866,Europe/Tirane,1976,Albania,60,60,5,2,-1,0,01:00,10,3,-1,0,00:00
-867,Europe/Tirane,1977,Albania,60,60,5,8,-1,0,01:00,10,2,-1,0,00:00
-868,Europe/Tirane,1978,Albania,60,60,5,6,-1,0,01:00,10,1,-1,0,00:00
-869,Europe/Tirane,1979,Albania,60,60,5,5,-1,0,01:00,9,30,-1,0,00:00
-870,Europe/Tirane,1980,Albania,60,60,5,3,-1,0,01:00,10,4,-1,0,00:00
-871,Europe/Tirane,1981,Albania,60,60,4,26,-1,0,01:00,9,27,-1,0,00:00
-872,Europe/Tirane,1982,Albania,60,60,5,2,-1,0,01:00,10,3,-1,0,00:00
-873,Europe/Tirane,1983,Albania,60,60,4,18,-1,0,01:00,10,1,-1,0,00:00
-874,Europe/Tirane,1984,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-875,Europe/Tirane,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-876,Europe/Andorra,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-877,Europe/Andorra,1985,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-878,Europe/Andorra,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-879,Europe/Vienna,1970,Austria,60,60,4,18,-1,0,03:00,10,1,0,0,03:00
-880,Europe/Vienna,1980,Austria,60,60,4,6,-1,0,01:00,9,28,-1,0,00:00
-881,Europe/Vienna,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-882,Europe/Vienna,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-883,Europe/Minsk,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-884,Europe/Minsk,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-885,Europe/Minsk,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-886,Europe/Minsk,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-887,Europe/Minsk,1990,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-888,Europe/Minsk,1991,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-889,Europe/Minsk,1992,Russia,120,60,3,-1,6,0,25:00,9,-1,6,0,24:00
-890,Europe/Minsk,1993,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-891,Europe/Minsk,1996,Russia,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
-892,Europe/Minsk,2010,Russia,120,0,3,-1,0,0,04:00,10,-1,0,0,04:00
-893,Europe/Minsk,2011,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-894,Europe/Brussels,1970,Belgium,60,0,5,19,-1,0,03:00,10,7,-1,0,03:00
-895,Europe/Brussels,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-896,Europe/Brussels,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
-897,Europe/Brussels,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-898,Europe/Brussels,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-899,Europe/Brussels,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-900,Europe/Sofia,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-901,Europe/Sofia,1979,Bulg,120,60,3,31,-1,0,25:00,10,1,-1,0,02:00
-902,Europe/Sofia,1980,Bulg,120,60,4,1,6,0,25:00,9,29,-1,0,02:00
-903,Europe/Sofia,1981,Bulg,120,60,4,1,6,0,25:00,9,27,-1,0,03:00
-904,Europe/Sofia,1982,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-905,Europe/Sofia,1991,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-906,Europe/Sofia,1996,E-Eur,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
-907,Europe/Sofia,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-908,Europe/Prague,1970,Czech,60,0,4,9,-1,0,03:00,10,1,0,0,03:00
-909,Europe/Prague,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-910,Europe/Prague,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-911,Europe/Prague,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-912,Europe/Copenhagen,1970,Denmark,60,0,5,9,-1,0,03:00,8,8,-1,0,03:00
-913,Europe/Copenhagen,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-914,Europe/Copenhagen,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-915,Europe/Copenhagen,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-916,Atlantic/Faroe,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-917,Atlantic/Faroe,1981,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-918,Atlantic/Faroe,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-919,America/Danmarkshavn,1970,,-180,0,0,0,0,0,00:00,0,0,0,0,00:00
-920,America/Danmarkshavn,1980,EU,-180,60,4,1,0,0,1:00,9,-1,0,0,1:00
-921,America/Danmarkshavn,1981,EU,-180,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-922,America/Danmarkshavn,1996,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-923,America/Scoresbysund,1970,,-120,0,0,0,0,0,00:00,0,0,0,0,00:00
-924,America/Scoresbysund,1980,C-Eur,-120,60,4,1,0,0,00:00,9,-1,0,0,00:00
-925,America/Scoresbysund,1981,EU,-60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-926,America/Scoresbysund,1996,EU,-60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-927,America/Godthab,1970,,-180,0,0,0,0,0,00:00,0,0,0,0,00:00
-928,America/Godthab,1980,EU,-180,60,4,1,0,0,1:00,9,-1,0,0,1:00
-929,America/Godthab,1981,EU,-180,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-930,America/Godthab,1996,EU,-180,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-931,America/Thule,1970,Thule,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-932,America/Thule,1991,Thule,-240,60,3,-1,0,0,-2:00,9,-1,0,0,-3:00
-933,America/Thule,1993,Thule,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
-934,America/Thule,2007,Thule,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
-935,Europe/Tallinn,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-936,Europe/Tallinn,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-937,Europe/Tallinn,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-938,Europe/Tallinn,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-939,Europe/Tallinn,1989,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-940,Europe/Tallinn,1996,C-Eur,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
-941,Europe/Tallinn,1998,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-942,Europe/Tallinn,1999,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-943,Europe/Tallinn,2002,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-944,Europe/Helsinki,1970,Finland,120,60,4,3,-1,0,02:00,10,3,-1,0,01:00
-945,Europe/Helsinki,1981,Finland,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-946,Europe/Helsinki,1982,Finland,120,0,3,-1,0,0,04:00,9,-1,0,0,04:00
-947,Europe/Helsinki,1983,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-948,Europe/Helsinki,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-949,Europe/Paris,1970,France,60,120,4,2,-1,0,03:00,9,16,-1,0,03:00
-950,Europe/Paris,1976,France,60,60,3,28,-1,0,02:00,9,26,-1,0,01:00
-951,Europe/Paris,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-952,Europe/Paris,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
-953,Europe/Paris,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-954,Europe/Paris,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-955,Europe/Paris,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-956,Europe/Berlin,1970,Germany,60,0,4,10,-1,0,03:00,10,1,0,0,03:00
-957,Europe/Berlin,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-958,Europe/Berlin,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-959,Europe/Berlin,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-960,Europe/Gibraltar,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-961,Europe/Gibraltar,1982,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-962,Europe/Gibraltar,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-963,Europe/Athens,1970,Greece,120,60,7,1,-1,0,02:00,11,2,-1,0,01:00
-964,Europe/Athens,1975,Greece,120,60,4,12,-1,0,02:00,11,26,-1,0,02:00
-965,Europe/Athens,1976,Greece,120,60,4,11,-1,0,04:00,10,10,-1,0,04:00
-966,Europe/Athens,1977,Greece,120,60,4,1,0,0,04:00,9,26,-1,0,04:00
-967,Europe/Athens,1978,Greece,120,60,4,1,0,0,04:00,9,24,-1,0,05:00
-968,Europe/Athens,1979,Greece,120,60,4,1,-1,0,11:00,9,29,-1,0,03:00
-969,Europe/Athens,1980,Greece,120,60,4,1,-1,0,02:00,9,28,-1,0,01:00
-970,Europe/Athens,1981,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-971,Europe/Athens,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-972,Europe/Budapest,1970,Hungary,60,60,6,1,0,0,02:00,9,-1,0,0,03:00
-973,Europe/Budapest,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-974,Europe/Budapest,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-975,Europe/Budapest,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-976,Atlantic/Reykjavik,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-977,Europe/Rome,1970,Italy,60,60,5,31,-1,0,01:00,9,-1,0,0,00:00
-978,Europe/Rome,1971,Italy,60,60,5,22,0,0,01:00,9,-1,0,0,01:00
-979,Europe/Rome,1972,Italy,60,60,5,22,0,0,01:00,10,1,-1,0,00:00
-980,Europe/Rome,1973,Italy,60,60,6,3,-1,0,01:00,9,-1,0,0,00:00
-981,Europe/Rome,1974,Italy,60,60,5,26,-1,0,01:00,9,-1,0,0,00:00
-982,Europe/Rome,1975,Italy,60,60,6,1,-1,0,01:00,9,-1,0,0,01:00
-983,Europe/Rome,1976,Italy,60,60,5,30,-1,0,01:00,9,-1,0,0,01:00
-984,Europe/Rome,1977,Italy,60,60,5,22,0,0,01:00,9,-1,0,0,01:00
-985,Europe/Rome,1978,Italy,60,60,5,22,0,0,01:00,10,1,-1,0,01:00
-986,Europe/Rome,1979,Italy,60,60,5,22,0,0,01:00,9,30,-1,0,01:00
-987,Europe/Rome,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-988,Europe/Rome,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-989,Europe/Rome,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-990,Europe/Riga,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-991,Europe/Riga,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-992,Europe/Riga,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-993,Europe/Riga,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-994,Europe/Riga,1989,Latvia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-995,Europe/Riga,1996,Latvia,120,0,3,-1,0,0,04:00,9,-1,0,0,04:00
-996,Europe/Riga,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-997,Europe/Riga,2000,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-998,Europe/Riga,2001,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-999,Europe/Vaduz,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-1000,Europe/Vaduz,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1001,Europe/Vaduz,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1002,Europe/Vilnius,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1003,Europe/Vilnius,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1004,Europe/Vilnius,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1005,Europe/Vilnius,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1006,Europe/Vilnius,1991,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1007,Europe/Vilnius,1996,C-Eur,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
-1008,Europe/Vilnius,1998,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1009,Europe/Vilnius,1999,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-1010,Europe/Vilnius,2003,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1011,Europe/Luxembourg,1970,Belgium,60,0,5,19,-1,0,03:00,10,7,-1,0,03:00
-1012,Europe/Luxembourg,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1013,Europe/Luxembourg,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
-1014,Europe/Luxembourg,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1015,Europe/Luxembourg,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1016,Europe/Luxembourg,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1017,Europe/Malta,1970,Italy,60,60,5,31,-1,0,01:00,9,-1,0,0,00:00
-1018,Europe/Malta,1971,Italy,60,60,5,22,0,0,01:00,9,-1,0,0,01:00
-1019,Europe/Malta,1972,Italy,60,60,5,22,0,0,01:00,10,1,-1,0,00:00
-1020,Europe/Malta,1973,Malta,60,60,3,31,-1,0,01:00,9,29,-1,0,01:00
-1021,Europe/Malta,1974,Malta,60,60,4,21,-1,0,01:00,9,16,-1,0,01:00
-1022,Europe/Malta,1975,Malta,60,60,4,15,0,0,03:00,9,15,0,0,02:00
-1023,Europe/Malta,1980,Malta,60,0,3,31,-1,0,03:00,9,15,0,0,02:00
-1024,Europe/Malta,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1025,Europe/Malta,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1026,Europe/Chisinau,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1027,Europe/Chisinau,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1028,Europe/Chisinau,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1029,Europe/Chisinau,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1030,Europe/Chisinau,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-1031,Europe/Chisinau,1991,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1032,Europe/Chisinau,1992,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-1033,Europe/Chisinau,1996,E-Eur,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
-1034,Europe/Chisinau,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1035,Europe/Monaco,1970,France,60,120,4,2,-1,0,03:00,9,16,-1,0,03:00
-1036,Europe/Monaco,1976,France,60,60,3,28,-1,0,02:00,9,26,-1,0,01:00
-1037,Europe/Monaco,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1038,Europe/Monaco,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
-1039,Europe/Monaco,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1040,Europe/Monaco,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1041,Europe/Monaco,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1042,Europe/Amsterdam,1970,Neth,60,0,4,2,-1,0,03:00,9,16,-1,0,03:00
-1043,Europe/Amsterdam,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1044,Europe/Amsterdam,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
-1045,Europe/Amsterdam,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1046,Europe/Amsterdam,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1047,Europe/Amsterdam,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1048,Europe/Oslo,1970,Norway,60,0,4,25,-1,0,03:00,9,15,0,0,03:00
-1049,Europe/Oslo,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1050,Europe/Oslo,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1051,Europe/Oslo,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1052,Europe/Warsaw,1970,Poland,60,0,5,-1,0,0,02:00,9,-1,0,0,02:00
-1053,Europe/Warsaw,1977,W-Eur,60,60,4,1,0,0,02:00,9,-1,0,0,02:00
-1054,Europe/Warsaw,1978,W-Eur,60,60,4,1,0,0,02:00,10,1,-1,0,02:00
-1055,Europe/Warsaw,1979,W-Eur,60,60,4,1,0,0,02:00,9,-1,0,0,02:00
-1056,Europe/Warsaw,1981,W-Eur,60,60,3,-1,0,0,02:00,9,-1,0,0,02:00
-1057,Europe/Warsaw,1988,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1058,Europe/Warsaw,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1059,Europe/Lisbon,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-1060,Europe/Lisbon,1976,Port,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-1061,Europe/Lisbon,1977,Port,0,60,3,27,-1,0,00:00,9,25,-1,0,00:00
-1062,Europe/Lisbon,1978,Port,0,60,4,1,0,0,00:00,10,1,-1,0,00:00
-1063,Europe/Lisbon,1979,Port,0,60,4,1,0,0,00:00,9,-1,0,0,01:00
-1064,Europe/Lisbon,1980,Port,0,60,3,-1,0,0,00:00,9,-1,0,0,01:00
-1065,Europe/Lisbon,1981,Port,0,60,3,-1,0,0,01:00,9,-1,0,0,01:00
-1066,Europe/Lisbon,1983,W-Eur,0,60,3,-1,0,0,01:00,9,-1,0,0,01:00
-1067,Europe/Lisbon,1992,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1068,Europe/Lisbon,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1069,Atlantic/Azores,1970,Port,-60,60,4,1,0,0,01:00,10,1,0,0,01:00
-1070,Atlantic/Azores,1977,Port,-60,60,3,27,-1,0,-1:00,9,25,-1,0,-1:00
-1071,Atlantic/Azores,1978,Port,-60,60,4,1,0,0,-1:00,10,1,-1,0,-1:00
-1072,Atlantic/Azores,1979,Port,-60,60,4,1,0,0,-1:00,9,-1,0,0,00:00
-1073,Atlantic/Azores,1980,Port,-60,60,3,-1,0,0,-1:00,9,-1,0,0,00:00
-1074,Atlantic/Azores,1981,Port,-60,60,3,-1,0,0,00:00,9,-1,0,0,00:00
-1075,Atlantic/Azores,1983,W-Eur,-60,60,3,-1,0,0,00:00,9,-1,0,0,00:00
-1076,Atlantic/Azores,1992,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1077,Atlantic/Azores,1993,EU,-60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1078,Atlantic/Azores,1996,EU,-60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1079,Atlantic/Madeira,1970,Port,0,60,4,1,0,0,02:00,10,1,0,0,02:00
-1080,Atlantic/Madeira,1977,Port,0,60,3,27,-1,0,00:00,9,25,-1,0,00:00
-1081,Atlantic/Madeira,1978,Port,0,60,4,1,0,0,00:00,10,1,-1,0,00:00
-1082,Atlantic/Madeira,1979,Port,0,60,4,1,0,0,00:00,9,-1,0,0,01:00
-1083,Atlantic/Madeira,1980,Port,0,60,3,-1,0,0,00:00,9,-1,0,0,01:00
-1084,Atlantic/Madeira,1981,Port,0,60,3,-1,0,0,01:00,9,-1,0,0,01:00
-1085,Atlantic/Madeira,1983,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1086,Atlantic/Madeira,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1087,Europe/Bucharest,1970,Romania,120,60,4,2,0,0,02:00,10,1,0,0,02:00
-1088,Europe/Bucharest,1979,Romania,120,60,5,27,-1,0,02:00,9,-1,0,0,01:00
-1089,Europe/Bucharest,1980,Romania,120,60,4,5,-1,0,25:00,9,-1,0,0,02:00
-1090,Europe/Bucharest,1981,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1091,Europe/Bucharest,1991,Romania,120,60,3,-1,0,0,02:00,9,-1,0,0,02:00
-1092,Europe/Bucharest,1993,Romania,120,0,3,-1,0,0,02:00,9,-1,0,0,02:00
-1093,Europe/Bucharest,1994,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-1094,Europe/Bucharest,1996,E-Eur,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
-1095,Europe/Bucharest,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1096,Europe/Kaliningrad,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1097,Europe/Kaliningrad,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1098,Europe/Kaliningrad,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1099,Europe/Kaliningrad,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1100,Europe/Kaliningrad,1991,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1101,Europe/Kaliningrad,1992,Russia,120,60,3,-1,6,0,25:00,9,-1,6,0,24:00
-1102,Europe/Kaliningrad,1993,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1103,Europe/Kaliningrad,1996,Russia,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
-1104,Europe/Kaliningrad,2010,Russia,120,0,3,-1,0,0,04:00,10,-1,0,0,04:00
-1105,Europe/Kaliningrad,2011,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
-1106,Europe/Moscow,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1107,Europe/Moscow,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1108,Europe/Moscow,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1109,Europe/Moscow,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1110,Europe/Moscow,1991,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1111,Europe/Moscow,1992,Russia,180,60,3,-1,6,0,26:00,9,-1,6,0,25:00
-1112,Europe/Moscow,1993,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1113,Europe/Moscow,1996,Russia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
-1114,Europe/Moscow,2010,Russia,180,0,3,-1,0,0,05:00,10,-1,0,0,05:00
-1115,Europe/Moscow,2011,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1116,Europe/Volgograd,1970,Russia,240,60,9,1,-1,0,04:00,10,1,-1,0,03:00
-1117,Europe/Volgograd,1981,Russia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
-1118,Europe/Volgograd,1984,Russia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
-1119,Europe/Volgograd,1985,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-1120,Europe/Volgograd,1989,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1121,Europe/Volgograd,1991,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1122,Europe/Volgograd,1992,Russia,180,60,3,-1,6,0,26:00,9,-1,6,0,25:00
-1123,Europe/Volgograd,1993,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1124,Europe/Volgograd,1996,Russia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
-1125,Europe/Volgograd,2010,Russia,180,0,3,-1,0,0,05:00,10,-1,0,0,05:00
-1126,Europe/Volgograd,2011,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1127,Europe/Samara,1970,Russia,240,60,9,1,-1,0,04:00,10,1,-1,0,03:00
-1128,Europe/Samara,1981,Russia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
-1129,Europe/Samara,1984,Russia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
-1130,Europe/Samara,1985,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-1131,Europe/Samara,1989,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1132,Europe/Samara,1991,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-1133,Europe/Samara,1992,Russia,240,60,3,-1,6,0,27:00,9,-1,6,0,26:00
-1134,Europe/Samara,1993,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-1135,Europe/Samara,1996,Russia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
-1136,Europe/Samara,2010,Russia,180,0,3,-1,0,0,05:00,10,-1,0,0,05:00
-1137,Europe/Samara,2011,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1138,Asia/Yekaterinburg,1970,Russia,300,60,9,1,-1,0,05:00,10,1,-1,0,04:00
-1139,Asia/Yekaterinburg,1981,Russia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
-1140,Asia/Yekaterinburg,1984,Russia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
-1141,Asia/Yekaterinburg,1985,Russia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-1142,Asia/Yekaterinburg,1991,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
-1143,Asia/Yekaterinburg,1992,Russia,300,60,3,-1,6,0,28:00,9,-1,6,0,27:00
-1144,Asia/Yekaterinburg,1993,Russia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-1145,Asia/Yekaterinburg,1996,Russia,300,60,3,-1,0,0,07:00,10,-1,0,0,07:00
-1146,Asia/Yekaterinburg,2010,Russia,300,0,3,-1,0,0,07:00,10,-1,0,0,07:00
-1147,Asia/Yekaterinburg,2011,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1148,Asia/Omsk,1970,Russia,360,60,9,1,-1,0,06:00,10,1,-1,0,05:00
-1149,Asia/Omsk,1981,Russia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
-1150,Asia/Omsk,1984,Russia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
-1151,Asia/Omsk,1985,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-1152,Asia/Omsk,1991,Russia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
-1153,Asia/Omsk,1992,Russia,360,60,3,-1,6,0,29:00,9,-1,6,0,28:00
-1154,Asia/Omsk,1993,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-1155,Asia/Omsk,1996,Russia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
-1156,Asia/Omsk,2010,Russia,360,0,3,-1,0,0,08:00,10,-1,0,0,08:00
-1157,Asia/Omsk,2011,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1158,Asia/Novosibirsk,1970,Russia,420,60,9,1,-1,0,07:00,10,1,-1,0,06:00
-1159,Asia/Novosibirsk,1981,Russia,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
-1160,Asia/Novosibirsk,1984,Russia,420,60,4,1,-1,0,07:00,9,-1,0,0,09:00
-1161,Asia/Novosibirsk,1985,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
-1162,Asia/Novosibirsk,1991,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-1163,Asia/Novosibirsk,1992,Russia,420,60,3,-1,6,0,30:00,9,-1,6,0,29:00
-1164,Asia/Novosibirsk,1993,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-1165,Asia/Novosibirsk,1996,Russia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
-1166,Asia/Novosibirsk,2010,Russia,360,0,3,-1,0,0,08:00,10,-1,0,0,08:00
-1167,Asia/Novosibirsk,2011,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1168,Asia/Novokuznetsk,1970,Russia,420,60,9,1,-1,0,07:00,10,1,-1,0,06:00
-1169,Asia/Novokuznetsk,1981,Russia,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
-1170,Asia/Novokuznetsk,1984,Russia,420,60,4,1,-1,0,07:00,9,-1,0,0,09:00
-1171,Asia/Novokuznetsk,1985,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
-1172,Asia/Novokuznetsk,1991,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-1173,Asia/Novokuznetsk,1992,Russia,420,60,3,-1,6,0,30:00,9,-1,6,0,29:00
-1174,Asia/Novokuznetsk,1993,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
-1175,Asia/Novokuznetsk,1996,Russia,420,60,3,-1,0,0,09:00,10,-1,0,0,09:00
-1176,Asia/Novokuznetsk,2010,Russia,360,0,3,-1,0,0,08:00,10,-1,0,0,08:00
-1177,Asia/Novokuznetsk,2011,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1178,Asia/Krasnoyarsk,1970,Russia,420,60,9,1,-1,0,07:00,10,1,-1,0,06:00
-1179,Asia/Krasnoyarsk,1981,Russia,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
-1180,Asia/Krasnoyarsk,1984,Russia,420,60,4,1,-1,0,07:00,9,-1,0,0,09:00
-1181,Asia/Krasnoyarsk,1985,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
-1182,Asia/Krasnoyarsk,1991,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
-1183,Asia/Krasnoyarsk,1992,Russia,420,60,3,-1,6,0,30:00,9,-1,6,0,29:00
-1184,Asia/Krasnoyarsk,1993,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
-1185,Asia/Krasnoyarsk,1996,Russia,420,60,3,-1,0,0,09:00,10,-1,0,0,09:00
-1186,Asia/Krasnoyarsk,2010,Russia,420,0,3,-1,0,0,09:00,10,-1,0,0,09:00
-1187,Asia/Krasnoyarsk,2011,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
-1188,Asia/Irkutsk,1970,Russia,480,60,9,1,-1,0,08:00,10,1,-1,0,07:00
-1189,Asia/Irkutsk,1981,Russia,480,60,4,1,-1,0,08:00,10,1,-1,0,07:00
-1190,Asia/Irkutsk,1984,Russia,480,60,4,1,-1,0,08:00,9,-1,0,0,10:00
-1191,Asia/Irkutsk,1985,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
-1192,Asia/Irkutsk,1991,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
-1193,Asia/Irkutsk,1992,Russia,480,60,3,-1,6,0,31:00,9,-1,6,0,30:00
-1194,Asia/Irkutsk,1993,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
-1195,Asia/Irkutsk,1996,Russia,480,60,3,-1,0,0,10:00,10,-1,0,0,10:00
-1196,Asia/Irkutsk,2010,Russia,480,0,3,-1,0,0,10:00,10,-1,0,0,10:00
-1197,Asia/Irkutsk,2011,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
-1198,Asia/Yakutsk,1970,Russia,540,60,9,1,-1,0,09:00,10,1,-1,0,08:00
-1199,Asia/Yakutsk,1981,Russia,540,60,4,1,-1,0,09:00,10,1,-1,0,08:00
-1200,Asia/Yakutsk,1984,Russia,540,60,4,1,-1,0,09:00,9,-1,0,0,11:00
-1201,Asia/Yakutsk,1985,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
-1202,Asia/Yakutsk,1991,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
-1203,Asia/Yakutsk,1992,Russia,540,60,3,-1,6,0,32:00,9,-1,6,0,31:00
-1204,Asia/Yakutsk,1993,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
-1205,Asia/Yakutsk,1996,Russia,540,60,3,-1,0,0,11:00,10,-1,0,0,11:00
-1206,Asia/Yakutsk,2010,Russia,540,0,3,-1,0,0,11:00,10,-1,0,0,11:00
-1207,Asia/Yakutsk,2011,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-1208,Asia/Vladivostok,1970,Russia,600,60,9,1,-1,0,10:00,10,1,-1,0,09:00
-1209,Asia/Vladivostok,1981,Russia,600,60,4,1,-1,0,10:00,10,1,-1,0,09:00
-1210,Asia/Vladivostok,1984,Russia,600,60,4,1,-1,0,10:00,9,-1,0,0,12:00
-1211,Asia/Vladivostok,1985,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
-1212,Asia/Vladivostok,1991,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
-1213,Asia/Vladivostok,1992,Russia,600,60,3,-1,6,0,33:00,9,-1,6,0,32:00
-1214,Asia/Vladivostok,1993,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
-1215,Asia/Vladivostok,1996,Russia,600,60,3,-1,0,0,12:00,10,-1,0,0,12:00
-1216,Asia/Vladivostok,2010,Russia,600,0,3,-1,0,0,12:00,10,-1,0,0,12:00
-1217,Asia/Vladivostok,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-1218,Asia/Khandyga,1970,Russia,540,60,9,1,-1,0,09:00,10,1,-1,0,08:00
-1219,Asia/Khandyga,1981,Russia,540,60,4,1,-1,0,09:00,10,1,-1,0,08:00
-1220,Asia/Khandyga,1984,Russia,540,60,4,1,-1,0,09:00,9,-1,0,0,11:00
-1221,Asia/Khandyga,1985,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
-1222,Asia/Khandyga,1991,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
-1223,Asia/Khandyga,1992,Russia,540,60,3,-1,6,0,32:00,9,-1,6,0,31:00
-1224,Asia/Khandyga,1993,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
-1225,Asia/Khandyga,1996,Russia,540,60,3,-1,0,0,11:00,10,-1,0,0,11:00
-1226,Asia/Khandyga,2004,Russia,600,60,3,-1,0,0,12:00,10,-1,0,0,12:00
-1227,Asia/Khandyga,2010,Russia,600,0,3,-1,0,0,12:00,10,-1,0,0,12:00
-1228,Asia/Khandyga,2011,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
-1229,Asia/Sakhalin,1970,Russia,660,60,9,1,-1,0,11:00,10,1,-1,0,10:00
-1230,Asia/Sakhalin,1981,Russia,660,60,4,1,-1,0,11:00,10,1,-1,0,10:00
-1231,Asia/Sakhalin,1984,Russia,660,60,4,1,-1,0,11:00,9,-1,0,0,13:00
-1232,Asia/Sakhalin,1985,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1233,Asia/Sakhalin,1991,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
-1234,Asia/Sakhalin,1992,Russia,660,60,3,-1,6,0,34:00,9,-1,6,0,33:00
-1235,Asia/Sakhalin,1993,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1236,Asia/Sakhalin,1996,Russia,660,60,3,-1,0,0,13:00,10,-1,0,0,13:00
-1237,Asia/Sakhalin,1997,Russia,600,60,3,-1,0,0,12:00,10,-1,0,0,12:00
-1238,Asia/Sakhalin,2010,Russia,600,0,3,-1,0,0,12:00,10,-1,0,0,12:00
-1239,Asia/Sakhalin,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-1240,Asia/Magadan,1970,Russia,660,60,9,1,-1,0,11:00,10,1,-1,0,10:00
-1241,Asia/Magadan,1981,Russia,660,60,4,1,-1,0,11:00,10,1,-1,0,10:00
-1242,Asia/Magadan,1984,Russia,660,60,4,1,-1,0,11:00,9,-1,0,0,13:00
-1243,Asia/Magadan,1985,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1244,Asia/Magadan,1991,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
-1245,Asia/Magadan,1992,Russia,660,60,3,-1,6,0,34:00,9,-1,6,0,33:00
-1246,Asia/Magadan,1993,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1247,Asia/Magadan,1996,Russia,660,60,3,-1,0,0,13:00,10,-1,0,0,13:00
-1248,Asia/Magadan,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
-1249,Asia/Magadan,2011,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-1250,Asia/Ust-Nera,1970,Russia,540,60,9,1,-1,0,09:00,10,1,-1,0,08:00
-1251,Asia/Ust-Nera,1981,Russia,660,60,4,1,-1,0,11:00,10,1,-1,0,10:00
-1252,Asia/Ust-Nera,1984,Russia,660,60,4,1,-1,0,11:00,9,-1,0,0,13:00
-1253,Asia/Ust-Nera,1985,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1254,Asia/Ust-Nera,1991,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
-1255,Asia/Ust-Nera,1992,Russia,660,60,3,-1,6,0,34:00,9,-1,6,0,33:00
-1256,Asia/Ust-Nera,1993,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1257,Asia/Ust-Nera,1996,Russia,660,60,3,-1,0,0,13:00,10,-1,0,0,13:00
-1258,Asia/Ust-Nera,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
-1259,Asia/Ust-Nera,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
-1260,Asia/Kamchatka,1970,Russia,720,60,9,1,-1,0,12:00,10,1,-1,0,11:00
-1261,Asia/Kamchatka,1981,Russia,720,60,4,1,-1,0,12:00,10,1,-1,0,11:00
-1262,Asia/Kamchatka,1984,Russia,720,60,4,1,-1,0,12:00,9,-1,0,0,14:00
-1263,Asia/Kamchatka,1985,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
-1264,Asia/Kamchatka,1991,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1265,Asia/Kamchatka,1992,Russia,720,60,3,-1,6,0,35:00,9,-1,6,0,34:00
-1266,Asia/Kamchatka,1993,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
-1267,Asia/Kamchatka,1996,Russia,720,60,3,-1,0,0,14:00,10,-1,0,0,14:00
-1268,Asia/Kamchatka,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
-1269,Asia/Kamchatka,2011,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-1270,Asia/Anadyr,1970,Russia,780,60,9,1,-1,0,13:00,10,1,-1,0,12:00
-1271,Asia/Anadyr,1981,Russia,780,60,4,1,-1,0,13:00,10,1,-1,0,12:00
-1272,Asia/Anadyr,1982,Russia,720,60,4,1,-1,0,12:00,10,1,-1,0,11:00
-1273,Asia/Anadyr,1984,Russia,720,60,4,1,-1,0,12:00,9,-1,0,0,14:00
-1274,Asia/Anadyr,1985,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
-1275,Asia/Anadyr,1991,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
-1276,Asia/Anadyr,1992,Russia,720,60,3,-1,6,0,35:00,9,-1,6,0,34:00
-1277,Asia/Anadyr,1993,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
-1278,Asia/Anadyr,1996,Russia,720,60,3,-1,0,0,14:00,10,-1,0,0,14:00
-1279,Asia/Anadyr,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
-1280,Asia/Anadyr,2011,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
-1281,Europe/Belgrade,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-1282,Europe/Belgrade,1982,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1283,Europe/Belgrade,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1284,Europe/Madrid,1970,Spain,60,60,4,30,-1,0,24:00,9,30,-1,0,01:00
-1285,Europe/Madrid,1974,Spain,60,60,4,13,6,0,24:00,10,1,0,0,01:00
-1286,Europe/Madrid,1976,Spain,60,60,3,27,-1,0,24:00,9,-1,0,0,01:00
-1287,Europe/Madrid,1977,Spain,60,60,4,2,-1,0,24:00,9,-1,0,0,01:00
-1288,Europe/Madrid,1978,Spain,60,60,4,2,-1,0,24:00,10,1,-1,0,01:00
-1289,Europe/Madrid,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1290,Europe/Madrid,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1291,Europe/Madrid,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1292,Africa/Ceuta,1970,SpainAfrica,0,60,6,3,-1,0,12:00,10,1,-1,0,-1:00
-1293,Africa/Ceuta,1974,SpainAfrica,0,60,6,24,-1,0,00:00,9,1,-1,0,-1:00
-1294,Africa/Ceuta,1976,SpainAfrica,0,60,5,1,-1,0,00:00,8,1,-1,0,-1:00
-1295,Africa/Ceuta,1977,SpainAfrica,0,60,5,1,-1,0,00:00,9,28,-1,0,-1:00
-1296,Africa/Ceuta,1978,SpainAfrica,0,60,6,1,-1,0,00:00,8,4,-1,0,-1:00
-1297,Africa/Ceuta,1979,SpainAfrica,0,0,6,1,-1,0,00:00,8,4,-1,0,-1:00
-1298,Africa/Ceuta,1984,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-1299,Africa/Ceuta,1986,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1300,Africa/Ceuta,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1301,Atlantic/Canary,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
-1302,Atlantic/Canary,1980,EU,0,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1303,Atlantic/Canary,1981,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1304,Atlantic/Canary,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1305,Europe/Stockholm,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-1306,Europe/Stockholm,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
-1307,Europe/Stockholm,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1308,Europe/Stockholm,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1309,Europe/Zurich,1970,Swiss,60,0,5,1,1,0,02:00,10,1,1,0,02:00
-1310,Europe/Zurich,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1311,Europe/Zurich,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1312,Europe/Istanbul,1970,Turkey,120,60,5,2,0,0,02:00,10,2,0,0,01:00
-1313,Europe/Istanbul,1973,Turkey,120,60,6,3,-1,0,03:00,11,4,-1,0,04:00
-1314,Europe/Istanbul,1974,Turkey,120,60,3,31,-1,0,04:00,11,3,-1,0,06:00
-1315,Europe/Istanbul,1975,Turkey,120,60,3,30,-1,0,02:00,10,-1,0,0,01:00
-1316,Europe/Istanbul,1976,Turkey,120,60,6,1,-1,0,02:00,10,-1,0,0,01:00
-1317,Europe/Istanbul,1977,Turkey,120,60,4,1,0,0,02:00,10,16,-1,0,01:00
-1318,Europe/Istanbul,1978,Turkey,180,60,4,1,0,0,03:00,1,1,-1,0,14:00
-1319,Europe/Istanbul,1979,Turkey,180,60,4,1,0,0,06:00,10,11,1,0,02:00
-1320,Europe/Istanbul,1981,Turkey,180,60,3,-1,0,0,06:00,10,11,1,0,02:00
-1321,Europe/Istanbul,1983,Turkey,180,60,7,31,-1,0,03:00,10,2,-1,0,02:00
-1322,Europe/Istanbul,1985,Turkey,120,60,4,20,-1,0,02:00,9,28,-1,0,01:00
-1323,Europe/Istanbul,1986,Turkey,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
-1324,Europe/Istanbul,1991,Turkey,120,60,3,-1,0,0,03:00,9,-1,0,0,03:00
-1325,Europe/Istanbul,1996,Turkey,120,60,3,-1,0,0,03:00,10,-1,0,0,03:00
-1326,Europe/Istanbul,2006,Turkey,120,0,3,-1,0,0,03:00,10,-1,0,0,03:00
-1327,Europe/Istanbul,2007,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1328,Europe/Kiev,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1329,Europe/Kiev,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1330,Europe/Kiev,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1331,Europe/Kiev,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1332,Europe/Kiev,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-1333,Europe/Kiev,1992,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-1334,Europe/Kiev,1995,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1335,Europe/Kiev,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1336,Europe/Uzhgorod,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1337,Europe/Uzhgorod,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1338,Europe/Uzhgorod,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1339,Europe/Uzhgorod,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1340,Europe/Uzhgorod,1990,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
-1341,Europe/Uzhgorod,1991,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-1342,Europe/Uzhgorod,1992,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-1343,Europe/Uzhgorod,1995,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1344,Europe/Uzhgorod,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1345,Europe/Zaporozhye,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1346,Europe/Zaporozhye,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1347,Europe/Zaporozhye,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1348,Europe/Zaporozhye,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1349,Europe/Zaporozhye,1991,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-1350,Europe/Zaporozhye,1995,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
-1351,Europe/Zaporozhye,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1352,Europe/Simferopol,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
-1353,Europe/Simferopol,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
-1354,Europe/Simferopol,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
-1355,Europe/Simferopol,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
-1356,Europe/Simferopol,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
-1357,Europe/Simferopol,1992,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
-1358,Europe/Simferopol,1994,E-Eur,180,60,3,-1,0,0,03:00,9,-1,0,0,02:00
-1359,Europe/Simferopol,1996,Russia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
-1360,Europe/Simferopol,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
-1361,EST,1970,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1362,MST,1970,,-420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1363,HST,1970,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
-1364,EST5EDT,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1365,EST5EDT,1974,US,-300,60,1,6,-1,0,-3:00,10,-1,0,0,-4:00
-1366,EST5EDT,1975,US,-300,60,2,23,-1,0,-3:00,10,-1,0,0,-4:00
-1367,EST5EDT,1976,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1368,EST5EDT,1987,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1369,EST5EDT,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1370,CST6CDT,1970,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1371,CST6CDT,1974,US,-360,60,1,6,-1,0,-4:00,10,-1,0,0,-5:00
-1372,CST6CDT,1975,US,-360,60,2,23,-1,0,-4:00,10,-1,0,0,-5:00
-1373,CST6CDT,1976,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1374,CST6CDT,1987,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1375,CST6CDT,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1376,MST7MDT,1970,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1377,MST7MDT,1974,US,-420,60,1,6,-1,0,-5:00,10,-1,0,0,-6:00
-1378,MST7MDT,1975,US,-420,60,2,23,-1,0,-5:00,10,-1,0,0,-6:00
-1379,MST7MDT,1976,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1380,MST7MDT,1987,US,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1381,MST7MDT,2007,US,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1382,PST8PDT,1970,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1383,PST8PDT,1974,US,-480,60,1,6,-1,0,-6:00,10,-1,0,0,-7:00
-1384,PST8PDT,1975,US,-480,60,2,23,-1,0,-6:00,10,-1,0,0,-7:00
-1385,PST8PDT,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1386,PST8PDT,1987,US,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1387,PST8PDT,2007,US,-480,60,3,8,0,0,-6:00,11,1,0,0,-7:00
-1388,America/New_York,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1389,America/New_York,1974,US,-300,60,1,6,-1,0,-3:00,10,-1,0,0,-4:00
-1390,America/New_York,1975,US,-300,60,2,23,-1,0,-3:00,10,-1,0,0,-4:00
-1391,America/New_York,1976,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1392,America/New_York,1987,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1393,America/New_York,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1394,America/Chicago,1970,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1395,America/Chicago,1974,US,-360,60,1,6,-1,0,-4:00,10,-1,0,0,-5:00
-1396,America/Chicago,1975,US,-360,60,2,23,-1,0,-4:00,10,-1,0,0,-5:00
-1397,America/Chicago,1976,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1398,America/Chicago,1987,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1399,America/Chicago,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1400,America/North_Dakota/Center,1970,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1401,America/North_Dakota/Center,1974,US,-420,60,1,6,-1,0,-5:00,10,-1,0,0,-6:00
-1402,America/North_Dakota/Center,1975,US,-420,60,2,23,-1,0,-5:00,10,-1,0,0,-6:00
-1403,America/North_Dakota/Center,1976,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1404,America/North_Dakota/Center,1987,US,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1405,America/North_Dakota/Center,1992,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1406,America/North_Dakota/Center,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1407,America/North_Dakota/New_Salem,1970,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1408,America/North_Dakota/New_Salem,1974,US,-420,60,1,6,-1,0,-5:00,10,-1,0,0,-6:00
-1409,America/North_Dakota/New_Salem,1975,US,-420,60,2,23,-1,0,-5:00,10,-1,0,0,-6:00
-1410,America/North_Dakota/New_Salem,1976,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1411,America/North_Dakota/New_Salem,1987,US,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1412,America/North_Dakota/New_Salem,2003,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1413,America/North_Dakota/New_Salem,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1414,America/North_Dakota/Beulah,1970,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1415,America/North_Dakota/Beulah,1974,US,-420,60,1,6,-1,0,-5:00,10,-1,0,0,-6:00
-1416,America/North_Dakota/Beulah,1975,US,-420,60,2,23,-1,0,-5:00,10,-1,0,0,-6:00
-1417,America/North_Dakota/Beulah,1976,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1418,America/North_Dakota/Beulah,1987,US,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1419,America/North_Dakota/Beulah,2007,US,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1420,America/North_Dakota/Beulah,2010,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1421,America/Denver,1970,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1422,America/Denver,1974,US,-420,60,1,6,-1,0,-5:00,10,-1,0,0,-6:00
-1423,America/Denver,1975,US,-420,60,2,23,-1,0,-5:00,10,-1,0,0,-6:00
-1424,America/Denver,1976,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1425,America/Denver,1987,US,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1426,America/Denver,2007,US,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1427,America/Los_Angeles,1970,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1428,America/Los_Angeles,1974,US,-480,60,1,6,-1,0,-6:00,10,-1,0,0,-7:00
-1429,America/Los_Angeles,1975,US,-480,60,2,23,-1,0,-6:00,10,-1,0,0,-7:00
-1430,America/Los_Angeles,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1431,America/Los_Angeles,1987,US,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1432,America/Los_Angeles,2007,US,-480,60,3,8,0,0,-6:00,11,1,0,0,-7:00
-1433,America/Juneau,1970,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1434,America/Juneau,1974,US,-480,60,1,6,-1,0,-6:00,10,-1,0,0,-7:00
-1435,America/Juneau,1975,US,-480,60,2,23,-1,0,-6:00,10,-1,0,0,-7:00
-1436,America/Juneau,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1437,America/Juneau,1983,US,-540,60,4,-1,0,0,-7:00,10,-1,0,0,-8:00
-1438,America/Juneau,1987,US,-540,60,4,1,0,0,-7:00,10,-1,0,0,-8:00
-1439,America/Juneau,2007,US,-540,60,3,8,0,0,-7:00,11,1,0,0,-8:00
-1440,America/Sitka,1970,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1441,America/Sitka,1974,US,-480,60,1,6,-1,0,-6:00,10,-1,0,0,-7:00
-1442,America/Sitka,1975,US,-480,60,2,23,-1,0,-6:00,10,-1,0,0,-7:00
-1443,America/Sitka,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1444,America/Sitka,1983,US,-540,60,4,-1,0,0,-7:00,10,-1,0,0,-8:00
-1445,America/Sitka,1987,US,-540,60,4,1,0,0,-7:00,10,-1,0,0,-8:00
-1446,America/Sitka,2007,US,-540,60,3,8,0,0,-7:00,11,1,0,0,-8:00
-1447,America/Metlakatla,1970,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1448,America/Metlakatla,1974,US,-480,60,1,6,-1,0,-6:00,10,-1,0,0,-7:00
-1449,America/Metlakatla,1975,US,-480,60,2,23,-1,0,-6:00,10,-1,0,0,-7:00
-1450,America/Metlakatla,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1451,America/Metlakatla,1983,,-480,0,0,0,0,0,00:00,0,0,0,0,00:00
-1452,America/Yakutat,1970,US,-540,60,4,-1,0,0,-7:00,10,-1,0,0,-8:00
-1453,America/Yakutat,1974,US,-540,60,1,6,-1,0,-7:00,10,-1,0,0,-8:00
-1454,America/Yakutat,1975,US,-540,60,2,23,-1,0,-7:00,10,-1,0,0,-8:00
-1455,America/Yakutat,1976,US,-540,60,4,-1,0,0,-7:00,10,-1,0,0,-8:00
-1456,America/Yakutat,1987,US,-540,60,4,1,0,0,-7:00,10,-1,0,0,-8:00
-1457,America/Yakutat,2007,US,-540,60,3,8,0,0,-7:00,11,1,0,0,-8:00
-1458,America/Anchorage,1970,US,-600,60,4,-1,0,0,-8:00,10,-1,0,0,-9:00
-1459,America/Anchorage,1974,US,-600,60,1,6,-1,0,-8:00,10,-1,0,0,-9:00
-1460,America/Anchorage,1975,US,-600,60,2,23,-1,0,-8:00,10,-1,0,0,-9:00
-1461,America/Anchorage,1976,US,-600,60,4,-1,0,0,-8:00,10,-1,0,0,-9:00
-1462,America/Anchorage,1983,US,-540,60,4,-1,0,0,-7:00,10,-1,0,0,-8:00
-1463,America/Anchorage,1987,US,-540,60,4,1,0,0,-7:00,10,-1,0,0,-8:00
-1464,America/Anchorage,2007,US,-540,60,3,8,0,0,-7:00,11,1,0,0,-8:00
-1465,America/Nome,1970,US,-660,60,4,-1,0,0,-9:00,10,-1,0,0,-10:00
-1466,America/Nome,1974,US,-660,60,1,6,-1,0,-9:00,10,-1,0,0,-10:00
-1467,America/Nome,1975,US,-660,60,2,23,-1,0,-9:00,10,-1,0,0,-10:00
-1468,America/Nome,1976,US,-660,60,4,-1,0,0,-9:00,10,-1,0,0,-10:00
-1469,America/Nome,1983,US,-540,60,4,-1,0,0,-7:00,10,-1,0,0,-8:00
-1470,America/Nome,1987,US,-540,60,4,1,0,0,-7:00,10,-1,0,0,-8:00
-1471,America/Nome,2007,US,-540,60,3,8,0,0,-7:00,11,1,0,0,-8:00
-1472,America/Adak,1970,US,-660,60,4,-1,0,0,-9:00,10,-1,0,0,-10:00
-1473,America/Adak,1974,US,-660,60,1,6,-1,0,-9:00,10,-1,0,0,-10:00
-1474,America/Adak,1975,US,-660,60,2,23,-1,0,-9:00,10,-1,0,0,-10:00
-1475,America/Adak,1976,US,-660,60,4,-1,0,0,-9:00,10,-1,0,0,-10:00
-1476,America/Adak,1983,US,-600,60,4,-1,0,0,-8:00,10,-1,0,0,-9:00
-1477,America/Adak,1987,US,-600,60,4,1,0,0,-8:00,10,-1,0,0,-9:00
-1478,America/Adak,2007,US,-600,60,3,8,0,0,-8:00,11,1,0,0,-9:00
-1479,Pacific/Honolulu,1970,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
-1480,America/Phoenix,1970,,-420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1481,America/Boise,1970,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1482,America/Boise,1974,US,-420,60,1,6,-1,0,-5:00,10,-1,0,0,-6:00
-1483,America/Boise,1975,US,-420,60,2,23,-1,0,-5:00,10,-1,0,0,-6:00
-1484,America/Boise,1976,US,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1485,America/Boise,1987,US,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1486,America/Boise,2007,US,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1487,America/Indiana/Indianapolis,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1488,America/Indiana/Indianapolis,1971,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1489,America/Indiana/Indianapolis,2006,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1490,America/Indiana/Indianapolis,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1491,America/Indiana/Marengo,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1492,America/Indiana/Marengo,1974,US,-300,60,1,6,-1,0,-3:00,10,-1,0,0,-4:00
-1493,America/Indiana/Marengo,1975,US,-300,60,2,23,-1,0,-3:00,10,-1,0,0,-4:00
-1494,America/Indiana/Marengo,1976,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1495,America/Indiana/Marengo,2006,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1496,America/Indiana/Marengo,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1497,America/Indiana/Vincennes,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1498,America/Indiana/Vincennes,1971,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1499,America/Indiana/Vincennes,2006,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1500,America/Indiana/Vincennes,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1501,America/Indiana/Tell_City,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1502,America/Indiana/Tell_City,1971,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1503,America/Indiana/Tell_City,2006,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1504,America/Indiana/Tell_City,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1505,America/Indiana/Petersburg,1970,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1506,America/Indiana/Petersburg,1974,US,-360,60,1,6,-1,0,-4:00,10,-1,0,0,-5:00
-1507,America/Indiana/Petersburg,1975,US,-360,60,2,23,-1,0,-4:00,10,-1,0,0,-5:00
-1508,America/Indiana/Petersburg,1976,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1509,America/Indiana/Petersburg,1977,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1510,America/Indiana/Petersburg,2006,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1511,America/Indiana/Petersburg,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1512,America/Indiana/Knox,1970,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1513,America/Indiana/Knox,1974,US,-360,60,1,6,-1,0,-4:00,10,-1,0,0,-5:00
-1514,America/Indiana/Knox,1975,US,-360,60,2,23,-1,0,-4:00,10,-1,0,0,-5:00
-1515,America/Indiana/Knox,1976,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1516,America/Indiana/Knox,1987,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1517,America/Indiana/Knox,1991,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1518,America/Indiana/Knox,2006,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1519,America/Indiana/Knox,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1520,America/Indiana/Winamac,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1521,America/Indiana/Winamac,1971,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1522,America/Indiana/Winamac,2006,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1523,America/Indiana/Winamac,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1524,America/Indiana/Vevay,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1525,America/Indiana/Vevay,1973,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1526,America/Indiana/Vevay,2006,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1527,America/Indiana/Vevay,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1528,America/Kentucky/Louisville,1970,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1529,America/Kentucky/Louisville,1974,US,-300,60,1,6,-1,0,-3:00,10,-1,0,0,-4:00
-1530,America/Kentucky/Louisville,1975,US,-300,60,2,23,-1,0,-3:00,10,-1,0,0,-4:00
-1531,America/Kentucky/Louisville,1976,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1532,America/Kentucky/Louisville,1987,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1533,America/Kentucky/Louisville,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1534,America/Kentucky/Monticello,1970,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1535,America/Kentucky/Monticello,1974,US,-360,60,1,6,-1,0,-4:00,10,-1,0,0,-5:00
-1536,America/Kentucky/Monticello,1975,US,-360,60,2,23,-1,0,-4:00,10,-1,0,0,-5:00
-1537,America/Kentucky/Monticello,1976,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1538,America/Kentucky/Monticello,1987,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1539,America/Kentucky/Monticello,2000,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1540,America/Kentucky/Monticello,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1541,America/Detroit,1970,Detroit,-300,0,6,14,-1,0,-3:00,10,-1,0,0,-4:00
-1542,America/Detroit,1973,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1543,America/Detroit,1974,US,-300,60,1,6,-1,0,-3:00,10,-1,0,0,-4:00
-1544,America/Detroit,1975,US,-300,60,2,23,-1,0,-3:00,10,-1,0,0,-4:00
-1545,America/Detroit,1976,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1546,America/Detroit,1987,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1547,America/Detroit,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1548,America/Menominee,1970,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1549,America/Menominee,1973,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1550,America/Menominee,1974,US,-360,60,1,6,-1,0,-4:00,10,-1,0,0,-5:00
-1551,America/Menominee,1975,US,-360,60,2,23,-1,0,-4:00,10,-1,0,0,-5:00
-1552,America/Menominee,1976,US,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1553,America/Menominee,1987,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1554,America/Menominee,2007,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1555,America/St_Johns,1970,StJohns,-210,60,4,-1,0,0,-1:30,10,-1,0,0,-2:30
-1556,America/St_Johns,1987,StJohns,-210,60,4,1,0,0,-3:29,10,-1,0,0,-4:29
-1557,America/St_Johns,1988,StJohns,-210,120,4,1,0,0,-3:29,10,-1,0,0,-4:29
-1558,America/St_Johns,1989,StJohns,-210,60,4,1,0,0,-3:29,10,-1,0,0,-4:29
-1559,America/St_Johns,2007,StJohns,-210,60,3,8,0,0,-3:29,11,1,0,0,-4:29
-1560,America/St_Johns,2011,Canada,-210,60,3,8,0,0,-1:30,11,1,0,0,-2:30
-1561,America/Goose_Bay,1970,StJohns,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1562,America/Goose_Bay,1987,StJohns,-240,60,4,1,0,0,-3:59,10,-1,0,0,-4:59
-1563,America/Goose_Bay,1988,StJohns,-240,120,4,1,0,0,-3:59,10,-1,0,0,-4:59
-1564,America/Goose_Bay,1989,StJohns,-240,60,4,1,0,0,-3:59,10,-1,0,0,-4:59
-1565,America/Goose_Bay,2007,StJohns,-240,60,3,8,0,0,-3:59,11,1,0,0,-4:59
-1566,America/Goose_Bay,2011,Canada,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
-1567,America/Halifax,1970,Halifax,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1568,America/Halifax,1973,Halifax,-240,0,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1569,America/Halifax,1974,Canada,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1570,America/Halifax,1987,Canada,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
-1571,America/Halifax,2007,Canada,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
-1572,America/Glace_Bay,1970,,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1573,America/Glace_Bay,1972,Halifax,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1574,America/Glace_Bay,1973,Halifax,-240,0,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1575,America/Glace_Bay,1974,Canada,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1576,America/Glace_Bay,1987,Canada,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
-1577,America/Glace_Bay,2007,Canada,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
-1578,America/Moncton,1970,Moncton,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1579,America/Moncton,1973,Canada,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1580,America/Moncton,1987,Canada,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
-1581,America/Moncton,1993,Moncton,-240,60,4,1,0,0,-3:59,10,-1,0,0,-4:59
-1582,America/Moncton,2006,Moncton,-240,0,4,1,0,0,-3:59,10,-1,0,0,-4:59
-1583,America/Moncton,2007,Canada,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
-1584,America/Blanc-Sablon,1970,,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1585,America/Montreal,1970,Mont,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1586,America/Montreal,1974,Canada,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1587,America/Montreal,1987,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1588,America/Montreal,2007,Canada,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1589,America/Toronto,1970,Toronto,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1590,America/Toronto,1973,Toronto,-300,0,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1591,America/Toronto,1974,Canada,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1592,America/Toronto,1987,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1593,America/Toronto,2007,Canada,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1594,America/Thunder_Bay,1970,Mont,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1595,America/Thunder_Bay,1973,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1596,America/Thunder_Bay,1974,Canada,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1597,America/Thunder_Bay,1987,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1598,America/Thunder_Bay,2007,Canada,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1599,America/Nipigon,1970,Canada,-300,60,8,14,-1,0,23:00,9,30,-1,0,-4:00
-1600,America/Nipigon,1974,Canada,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1601,America/Nipigon,1987,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1602,America/Nipigon,2007,Canada,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1603,America/Rainy_River,1970,Canada,-360,60,8,14,-1,0,23:00,9,30,-1,0,-5:00
-1604,America/Rainy_River,1974,Canada,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1605,America/Rainy_River,1987,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1606,America/Rainy_River,2007,Canada,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1607,America/Atikokan,1970,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1608,America/Winnipeg,1970,Winn,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-4:00
-1609,America/Winnipeg,1987,Winn,-360,60,4,1,0,0,-4:00,10,-1,0,0,-4:00
-1610,America/Winnipeg,2005,Winn,-360,0,4,1,0,0,-4:00,10,-1,0,0,-4:00
-1611,America/Winnipeg,2006,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1612,America/Winnipeg,2007,Canada,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1613,America/Regina,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1614,America/Swift_Current,1970,Swift,-420,0,4,-1,0,0,-5:00,9,-1,0,0,-6:00
-1615,America/Swift_Current,1972,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1616,America/Edmonton,1970,Edm,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1617,America/Edmonton,1987,Canada,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1618,America/Edmonton,2007,Canada,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1619,America/Vancouver,1970,Vanc,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1620,America/Vancouver,1987,Canada,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1621,America/Vancouver,2007,Canada,-480,60,3,8,0,0,-6:00,11,1,0,0,-7:00
-1622,America/Dawson_Creek,1970,Vanc,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1623,America/Dawson_Creek,1972,,-420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1624,America/Creston,1970,,-420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1625,America/Pangnirtung,1970,NT_YK,-240,120,4,-1,0,0,-4:00,10,-1,0,0,-3:00
-1626,America/Pangnirtung,1980,NT_YK,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1627,America/Pangnirtung,1987,NT_YK,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
-1628,America/Pangnirtung,1995,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1629,America/Pangnirtung,1999,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1630,America/Pangnirtung,2000,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1631,America/Pangnirtung,2007,Canada,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1632,America/Iqaluit,1970,NT_YK,-300,120,4,-1,0,0,-5:00,10,-1,0,0,-4:00
-1633,America/Iqaluit,1980,NT_YK,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1634,America/Iqaluit,1987,NT_YK,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1635,America/Iqaluit,1999,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1636,America/Iqaluit,2000,Canada,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1637,America/Iqaluit,2007,Canada,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1638,America/Resolute,1970,NT_YK,-360,120,4,-1,0,0,-6:00,10,-1,0,0,-5:00
-1639,America/Resolute,1980,NT_YK,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1640,America/Resolute,1987,NT_YK,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1641,America/Resolute,2000,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1642,America/Resolute,2001,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1643,America/Resolute,2006,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1644,America/Resolute,2007,Canada,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1645,America/Rankin_Inlet,1970,NT_YK,-360,120,4,-1,0,0,-6:00,10,-1,0,0,-5:00
-1646,America/Rankin_Inlet,1980,NT_YK,-360,60,4,-1,0,0,-4:00,10,-1,0,0,-5:00
-1647,America/Rankin_Inlet,1987,NT_YK,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1648,America/Rankin_Inlet,2000,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1649,America/Rankin_Inlet,2001,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1650,America/Rankin_Inlet,2007,Canada,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1651,America/Cambridge_Bay,1970,NT_YK,-420,120,4,-1,0,0,-7:00,10,-1,0,0,-6:00
-1652,America/Cambridge_Bay,1980,NT_YK,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1653,America/Cambridge_Bay,1987,NT_YK,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1654,America/Cambridge_Bay,1999,Canada,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1655,America/Cambridge_Bay,2000,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1656,America/Cambridge_Bay,2001,Canada,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1657,America/Cambridge_Bay,2007,Canada,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1658,America/Yellowknife,1970,NT_YK,-420,120,4,-1,0,0,-7:00,10,-1,0,0,-6:00
-1659,America/Yellowknife,1980,Canada,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1660,America/Yellowknife,1987,Canada,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1661,America/Yellowknife,2007,Canada,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1662,America/Inuvik,1970,NT_YK,-480,120,4,-1,0,0,-8:00,10,-1,0,0,-7:00
-1663,America/Inuvik,1979,NT_YK,-420,120,4,-1,0,0,-7:00,10,-1,0,0,-6:00
-1664,America/Inuvik,1980,Canada,-420,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1665,America/Inuvik,1987,Canada,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1666,America/Inuvik,2007,Canada,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1667,America/Whitehorse,1970,NT_YK,-480,120,4,-1,0,0,-8:00,10,-1,0,0,-7:00
-1668,America/Whitehorse,1980,Canada,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1669,America/Whitehorse,1987,Canada,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1670,America/Whitehorse,2007,Canada,-480,60,3,8,0,0,-6:00,11,1,0,0,-7:00
-1671,America/Dawson,1970,NT_YK,-540,120,4,-1,0,0,-9:00,10,-1,0,0,-8:00
-1672,America/Dawson,1973,NT_YK,-480,120,4,-1,0,0,-8:00,10,-1,0,0,-7:00
-1673,America/Dawson,1980,Canada,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1674,America/Dawson,1987,Canada,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1675,America/Dawson,2007,Canada,-480,60,3,8,0,0,-6:00,11,1,0,0,-7:00
-1676,America/Cancun,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1677,America/Cancun,1981,Mexico,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1678,America/Cancun,1996,Mexico,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1679,America/Cancun,1998,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1680,America/Cancun,2001,Mexico,-360,60,5,1,0,0,-4:00,9,-1,0,0,-5:00
-1681,America/Cancun,2002,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1682,America/Merida,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1683,America/Merida,1981,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1684,America/Merida,1982,Mexico,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1685,America/Merida,1996,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1686,America/Merida,2001,Mexico,-360,60,5,1,0,0,-4:00,9,-1,0,0,-5:00
-1687,America/Merida,2002,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1688,America/Matamoros,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1689,America/Matamoros,1988,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1690,America/Matamoros,1989,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1691,America/Matamoros,2001,Mexico,-360,60,5,1,0,0,-4:00,9,-1,0,0,-5:00
-1692,America/Matamoros,2002,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1693,America/Matamoros,2010,US,-360,60,3,8,0,0,-4:00,11,1,0,0,-5:00
-1694,America/Monterrey,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1695,America/Monterrey,1988,US,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1696,America/Monterrey,1989,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1697,America/Monterrey,2001,Mexico,-360,60,5,1,0,0,-4:00,9,-1,0,0,-5:00
-1698,America/Monterrey,2002,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1699,America/Mexico_City,1970,Mexico,-360,60,2,12,-1,0,-6:00,7,30,-1,0,-7:00
-1700,America/Mexico_City,1996,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1701,America/Mexico_City,2001,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1702,America/Mexico_City,2002,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1703,America/Ojinaga,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1704,America/Ojinaga,1996,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1705,America/Ojinaga,1998,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1706,America/Ojinaga,2001,Mexico,-420,60,5,1,0,0,-5:00,9,-1,0,0,-6:00
-1707,America/Ojinaga,2002,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1708,America/Ojinaga,2010,US,-420,60,3,8,0,0,-5:00,11,1,0,0,-6:00
-1709,America/Chihuahua,1970,,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1710,America/Chihuahua,1996,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1711,America/Chihuahua,1998,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1712,America/Chihuahua,2001,Mexico,-420,60,5,1,0,0,-5:00,9,-1,0,0,-6:00
-1713,America/Chihuahua,2002,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1714,America/Hermosillo,1970,Mexico,-420,60,2,12,-1,0,-7:00,7,30,-1,0,-8:00
-1715,America/Hermosillo,1996,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1716,America/Hermosillo,1999,,-420,0,0,0,0,0,00:00,0,0,0,0,00:00
-1717,America/Mazatlan,1970,Mexico,-420,60,2,12,-1,0,-7:00,7,30,-1,0,-8:00
-1718,America/Mazatlan,1996,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1719,America/Mazatlan,2001,Mexico,-420,60,5,1,0,0,-5:00,9,-1,0,0,-6:00
-1720,America/Mazatlan,2002,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1721,America/Bahia_Banderas,1970,Mexico,-420,60,2,12,-1,0,-7:00,7,30,-1,0,-8:00
-1722,America/Bahia_Banderas,1996,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1723,America/Bahia_Banderas,2001,Mexico,-420,60,5,1,0,0,-5:00,9,-1,0,0,-6:00
-1724,America/Bahia_Banderas,2002,Mexico,-420,60,4,1,0,0,-5:00,10,-1,0,0,-6:00
-1725,America/Bahia_Banderas,2010,Mexico,-360,60,4,1,0,0,-4:00,10,-1,0,0,-5:00
-1726,America/Tijuana,1970,,-480,0,0,0,0,0,00:00,0,0,0,0,00:00
-1727,America/Tijuana,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1728,America/Tijuana,1987,US,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1729,America/Tijuana,1996,Mexico,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1730,America/Tijuana,2001,US,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1731,America/Tijuana,2002,Mexico,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1732,America/Tijuana,2010,US,-480,60,3,8,0,0,-6:00,11,1,0,0,-7:00
-1733,America/Santa_Isabel,1970,,-480,0,0,0,0,0,00:00,0,0,0,0,00:00
-1734,America/Santa_Isabel,1976,US,-480,60,4,-1,0,0,-6:00,10,-1,0,0,-7:00
-1735,America/Santa_Isabel,1987,US,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1736,America/Santa_Isabel,1996,Mexico,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1737,America/Santa_Isabel,2001,US,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1738,America/Santa_Isabel,2002,Mexico,-480,60,4,1,0,0,-6:00,10,-1,0,0,-7:00
-1739,America/Anguilla,1970,,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1740,America/Antigua,1970,,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1741,America/Nassau,1970,Bahamas,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1742,America/Nassau,1975,Bahamas,-300,0,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1743,America/Nassau,1976,US,-300,60,4,-1,0,0,-3:00,10,-1,0,0,-4:00
-1744,America/Nassau,1987,US,-300,60,4,1,0,0,-3:00,10,-1,0,0,-4:00
-1745,America/Nassau,2007,US,-300,60,3,8,0,0,-3:00,11,1,0,0,-4:00
-1746,America/Barbados,1970,Barb,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1747,America/Barbados,1977,Barb,-240,60,6,12,-1,0,-2:00,10,1,0,0,-3:00
-1748,America/Barbados,1978,Barb,-240,60,4,15,0,0,-2:00,10,1,0,0,-3:00
-1749,America/Barbados,1979,Barb,-240,60,4,15,0,0,-2:00,9,30,-1,0,-3:00
-1750,America/Barbados,1980,Barb,-240,60,4,15,0,0,-2:00,9,25,-1,0,-3:00
-1751,America/Barbados,1981,Barb,-240,0,4,15,0,0,-2:00,9,25,-1,0,-3:00
-1752,America/Belize,1970,Belize,-360,0,12,31,-1,0,06:00,2,9,0,0,-7:00
-1753,America/Belize,1973,Belize,-360,60,12,5,-1,0,-6:00,1,1,-1,0,05:00
-1754,America/Belize,1974,Belize,-360,0,12,31,-1,0,06:00,2,9,-1,0,-7:00
-1755,America/Belize,1982,Belize,-360,60,12,18,-1,0,-6:00,1,1,-1,0,05:00
-1756,America/Belize,1983,Belize,-360,0,12,31,-1,0,06:00,2,12,-1,0,-7:00
-1757,Atlantic/Bermuda,1970,,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
-1758,Atlantic/Bermuda,1974,Bahamas,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1759,Atlantic/Bermuda,1975,Bahamas,-240,0,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1760,Atlantic/Bermuda,1976,US,-240,60,4,-1,0,0,-2:00,10,-1,0,0,-3:00
-1761,Atlantic/Bermuda,1987,US,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
-1762,Atlantic/Bermuda,2007,US,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
-1763,America/Cayman,1970,,-300,0,0,0,0,0,00:00,0,0,0,0,00:00
-1764,America/Costa_Rica,1970,CR,-360,0,0,0,0,0,00:00,0,0,0,0,00:00
-1765,America/Costa_Rica,1979,CR,-360,60,2,-1,0,0,-6:00,6,1,0,0,-7:00
-1766,America/Costa_Rica,1991,CR,-360,60,1,15,6,0,-6:00,7,1,-1,0,-7:00
-1767,America/Costa_Rica,1992,CR,-360,60,1,15,6,0,-6:00,3,15,-1,0,-7:00
-1768,America/Costa_Rica,1993,CR,-360,0,1,15,6,0,-6:00,3,15,-1,0,-7:00
-1769,America/Havana,1970,Cuba,-300,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1770,America/Havana,1972,Cuba,-300,60,4,-1,0,0,-5:00,10,8,-1,0,-6:00
-1771,America/Havana,1975,Cuba,-300,60,4,-1,0,0,-5:00,10,-1,0,0,-6:00
-1772,America/Havana,1978,Cuba,-300,60,5,7,-1,0,-5:00,10,8,0,0,-6:00
-1773,America/Havana,1979,Cuba,-300,60,3,15,0,0,-5:00,10,8,0,0,-6:00
-1774,America/Havana,1981,Cuba,-300,60,5,5,0,0,-5:00,10,8,0,0,-6:00
-1775,America/Havana,1986,Cuba,-300,60,3,14,0,0,-5:00,10,8,0,0,-6:00
-1776,America/Havana,1990,Cuba,-300,60,4,1,0,0,-5:00,10,8,0,0,-6:00
-1777,America/Havana,1991,Cuba,-300,60,4,1,0,0,-5:00,10,8,0,0,-5:00
-1778,America/Havana,1996,Cuba,-300,60,4,1,0,0,-5:00,10,6,-1,0,-5:00
-1779,America/Havana,1997,Cuba,-300,60,4,1,0,0,-5:00,10,12,-1,0,-5:00
-1780,America/Havana,1998,Cuba,-300,60,3,-1,0,0,-5:00,10,-1,0,0,-5:00
-1781,America/Havana,2000,Cuba,-300,60,4,1,0,0,-5:00,10,-1,0,0,-5:00
-1782,America/Havana,2004,Cuba,-300,60,4,1,0,0,-5:00,1,1,-1,0,06:00
-1783,America/Havana,2006,Cuba,-300,0,12,31,-1,0,07:00,10,-1,0,0,-5:00
-1784,America/Havana,2007,Cuba,-300,60,3,8,0,0,-5:00,10,-1,0,0,-5:00
-1785,America/Havana,2008,Cuba,-300,60,3,15,0,0,-5:00,10,-1,0,0,-5:00
-1786,America/Havana,2009,Cuba,-300,60,3,8,0,0,-5:00,10,-1,0,0,-5:00
-1787,America/Havana,2011,Cuba,-300,60,3,15,0,0,-5:00,11,13,-1,0,-5:00
-1788,America/Havana,2012,Cuba,-300,60,4,1,-1,0,-5:00,11,1,0,0,-5:00
-1789,America/Havana,2013,Cuba,-300,60,3,8,0,0,-5:00,11,1,0,0,-5:00
-1790,America/Dominica,1970,,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
+94,Africa/El_Aaiun,1976,Morocco,0,60,5,1,-1,0,00:00,8,1,-1,0,-1:00
+95,Africa/El_Aaiun,1977,Morocco,0,60,5,1,-1,0,00:00,9,28,-1,0,-1:00
+96,Africa/El_Aaiun,1978,Morocco,0,60,6,1,-1,0,00:00,8,4,-1,0,-1:00
+97,Africa/El_Aaiun,2008,Morocco,0,60,6,1,-1,0,00:00,9,1,-1,0,-1:00
+98,Africa/El_Aaiun,2009,Morocco,0,60,6,1,-1,0,00:00,8,21,-1,0,-1:00
+99,Africa/El_Aaiun,2010,Morocco,0,60,5,2,-1,0,00:00,8,8,-1,0,-1:00
+100,Africa/El_Aaiun,2011,Morocco,0,60,4,3,-1,0,00:00,7,31,-1,0,-1:00
+101,Africa/El_Aaiun,2012,Morocco,0,60,8,20,-1,0,02:00,7,20,-1,0,02:00
+102,Africa/El_Aaiun,2013,Morocco,0,60,8,10,-1,0,02:00,10,-1,0,0,02:00
+103,Africa/El_Aaiun,2014,Morocco,0,60,7,29,-1,0,02:00,6,29,-1,0,02:00
+104,Africa/El_Aaiun,2015,Morocco,0,60,7,18,-1,0,02:00,6,18,-1,0,02:00
+105,Africa/El_Aaiun,2016,Morocco,0,60,7,7,-1,0,02:00,6,7,-1,0,02:00
+106,Africa/El_Aaiun,2017,Morocco,0,60,6,26,-1,0,02:00,5,27,-1,0,02:00
+107,Africa/El_Aaiun,2018,Morocco,0,60,6,15,-1,0,02:00,5,16,-1,0,02:00
+108,Africa/El_Aaiun,2019,Morocco,0,60,6,5,-1,0,02:00,5,6,-1,0,02:00
+109,Africa/El_Aaiun,2020,Morocco,0,60,5,24,-1,0,02:00,4,24,-1,0,02:00
+110,Africa/El_Aaiun,2021,Morocco,0,60,5,13,-1,0,02:00,4,13,-1,0,02:00
+111,Africa/El_Aaiun,2022,Morocco,0,60,5,3,-1,0,02:00,4,3,-1,0,02:00
+112,Africa/Maputo,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+113,Africa/Windhoek,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+114,Africa/Windhoek,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+115,Africa/Windhoek,1994,Namibia,60,60,9,1,0,0,03:00,1,1,-1,0,12:00
+116,Africa/Windhoek,1995,Namibia,60,60,9,1,0,0,03:00,4,1,0,0,02:00
+117,Africa/Niamey,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+118,Africa/Lagos,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+119,Indian/Reunion,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+120,Africa/Kigali,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+121,Atlantic/St_Helena,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+122,Africa/Sao_Tome,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+123,Africa/Dakar,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+124,Indian/Mahe,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+125,Africa/Freetown,1970,SL,0,0,6,1,-1,0,00:00,9,1,-1,0,-1:00
+126,Africa/Mogadishu,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+127,Africa/Johannesburg,1970,SA,120,0,12,31,-1,0,14:00,3,15,0,0,03:00
+128,Africa/Khartoum,1970,Sudan,120,60,5,1,-1,0,02:00,10,15,-1,0,01:00
+129,Africa/Khartoum,1971,Sudan,120,60,4,30,-1,0,02:00,10,15,-1,0,01:00
+130,Africa/Khartoum,1972,Sudan,120,60,4,-1,0,0,02:00,10,15,-1,0,01:00
+131,Africa/Khartoum,1985,Sudan,120,0,4,-1,0,0,02:00,10,15,-1,0,01:00
+132,Africa/Khartoum,2000,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+133,Africa/Mbabane,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+134,Africa/Dar_es_Salaam,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+135,Africa/Lome,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+136,Africa/Tunis,1970,Tunisia,60,60,4,1,1,0,03:00,9,16,-1,0,00:00
+137,Africa/Tunis,1977,Tunisia,60,60,4,30,-1,0,01:00,9,24,-1,0,01:00
+138,Africa/Tunis,1978,Tunisia,60,60,5,1,-1,0,01:00,10,1,-1,0,01:00
+139,Africa/Tunis,1988,Tunisia,60,60,6,1,-1,0,01:00,9,-1,0,0,01:00
+140,Africa/Tunis,1989,Tunisia,60,60,3,26,-1,0,01:00,9,-1,0,0,01:00
+141,Africa/Tunis,1990,Tunisia,60,60,5,1,-1,0,01:00,9,-1,0,0,01:00
+142,Africa/Tunis,2005,Tunisia,60,60,5,1,-1,0,01:00,9,30,-1,0,02:00
+143,Africa/Tunis,2006,Tunisia,60,60,3,-1,0,0,03:00,10,-1,0,0,03:00
+144,Africa/Tunis,2008,Tunisia,60,0,3,-1,0,0,03:00,10,-1,0,0,03:00
+145,Africa/Kampala,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+146,Africa/Lusaka,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+147,Africa/Harare,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+148,Antarctica/Casey,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+149,Antarctica/Casey,2009,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+150,Antarctica/Casey,2010,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+151,Antarctica/Casey,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+152,Antarctica/Casey,2012,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+153,Antarctica/Davis,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+154,Antarctica/Davis,2009,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+155,Antarctica/Davis,2010,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+156,Antarctica/Davis,2011,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+157,Antarctica/Davis,2012,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+158,Antarctica/Mawson,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+159,Antarctica/Mawson,2009,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+160,Indian/Kerguelen,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+161,Antarctica/DumontDUrville,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+162,Antarctica/Syowa,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+163,Antarctica/Vostok,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+164,Antarctica/Rothera,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+165,Antarctica/Rothera,1976,,-180,0,0,0,0,0,00:00,0,0,0,0,00:00
+166,Antarctica/Palmer,1970,ArgAQ,-180,0,12,31,-1,0,09:00,4,1,0,0,-4:00
+167,Antarctica/Palmer,1974,ArgAQ,-180,60,1,23,-1,0,-3:00,5,1,-1,0,-4:00
+168,Antarctica/Palmer,1975,ArgAQ,-180,0,1,23,-1,0,-3:00,5,1,-1,0,-4:00
+169,Antarctica/Palmer,1982,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
+170,Antarctica/Palmer,1987,ChileAQ,-240,60,10,9,0,0,4:00,4,12,-1,0,3:00
+171,Antarctica/Palmer,1988,ChileAQ,-240,60,10,1,0,0,4:00,3,9,0,0,3:00
+172,Antarctica/Palmer,1989,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
+173,Antarctica/Palmer,1990,ChileAQ,-240,60,9,16,-1,0,4:00,3,18,-1,0,3:00
+174,Antarctica/Palmer,1991,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
+175,Antarctica/Palmer,1997,ChileAQ,-240,60,10,9,0,0,4:00,3,30,-1,0,3:00
+176,Antarctica/Palmer,1998,ChileAQ,-240,60,9,27,-1,0,4:00,3,9,0,0,3:00
+177,Antarctica/Palmer,1999,ChileAQ,-240,60,10,9,0,0,4:00,4,4,-1,0,3:00
+178,Antarctica/Palmer,2000,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
+179,Antarctica/Palmer,2008,ChileAQ,-240,60,10,9,0,0,4:00,3,30,-1,0,3:00
+180,Antarctica/Palmer,2009,ChileAQ,-240,60,10,9,0,0,4:00,3,9,0,0,3:00
+181,Antarctica/Palmer,2010,ChileAQ,-240,60,10,9,0,0,4:00,4,1,0,0,3:00
+182,Antarctica/Palmer,2011,ChileAQ,-240,60,8,16,0,0,4:00,5,2,0,0,3:00
+183,Antarctica/Palmer,2012,ChileAQ,-240,60,9,2,0,0,4:00,4,23,0,0,3:00
+184,Asia/Kabul,1970,,270,0,0,0,0,0,00:00,0,0,0,0,00:00
+185,Asia/Yerevan,1970,RussiaAsia,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+186,Asia/Yerevan,1981,RussiaAsia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
+187,Asia/Yerevan,1984,RussiaAsia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
+188,Asia/Yerevan,1985,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+189,Asia/Yerevan,1991,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+190,Asia/Yerevan,1992,RussiaAsia,180,60,3,-1,6,0,26:00,9,-1,6,0,25:00
+191,Asia/Yerevan,1993,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+192,Asia/Yerevan,1995,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+193,Asia/Yerevan,1997,RussiaAsia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
+194,Asia/Yerevan,2012,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+195,Asia/Baku,1970,RussiaAsia,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+196,Asia/Baku,1981,RussiaAsia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
+197,Asia/Baku,1984,RussiaAsia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
+198,Asia/Baku,1985,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+199,Asia/Baku,1991,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+200,Asia/Baku,1992,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+201,Asia/Baku,1996,EUAsia,240,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+202,Asia/Baku,1997,Azer,240,60,3,-1,0,0,08:00,10,-1,0,0,08:00
+203,Asia/Bahrain,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+204,Asia/Bahrain,1972,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+205,Asia/Dhaka,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+206,Asia/Dhaka,1971,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+207,Asia/Dhaka,2009,Dhaka,360,60,6,19,-1,0,29:00,12,31,-1,0,28:59
+208,Asia/Dhaka,2010,Dhaka,360,0,6,19,-1,0,29:00,12,31,-1,0,28:59
+209,Asia/Thimphu,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
+210,Asia/Thimphu,1987,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+211,Indian/Chagos,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+212,Indian/Chagos,1996,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+213,Asia/Brunei,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+214,Asia/Rangoon,1970,,390,0,0,0,0,0,00:00,0,0,0,0,00:00
+215,Asia/Phnom_Penh,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+216,Asia/Harbin,1970,,510,0,0,0,0,0,00:00,0,0,0,0,00:00
+217,Asia/Harbin,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+218,Asia/Harbin,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
+219,Asia/Harbin,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
+220,Asia/Harbin,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
+221,Asia/Shanghai,1970,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+222,Asia/Shanghai,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
+223,Asia/Shanghai,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
+224,Asia/Shanghai,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
+225,Asia/Chongqing,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+226,Asia/Chongqing,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+227,Asia/Chongqing,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
+228,Asia/Chongqing,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
+229,Asia/Chongqing,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
+230,Asia/Urumqi,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+231,Asia/Urumqi,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+232,Asia/Urumqi,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
+233,Asia/Urumqi,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
+234,Asia/Urumqi,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
+235,Asia/Kashgar,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+236,Asia/Kashgar,1980,PRC,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+237,Asia/Kashgar,1986,PRC,480,60,5,4,-1,0,08:00,9,11,0,0,07:00
+238,Asia/Kashgar,1987,PRC,480,60,4,10,0,0,08:00,9,11,0,0,07:00
+239,Asia/Kashgar,1991,PRC,480,0,4,10,0,0,08:00,9,11,0,0,07:00
+240,Asia/Hong_Kong,1970,HK,480,60,4,16,0,0,11:30,10,16,0,0,10:30
+241,Asia/Hong_Kong,1973,HK,480,60,12,30,-1,0,11:30,10,16,0,0,10:30
+242,Asia/Hong_Kong,1974,HK,480,60,4,16,0,0,11:30,10,16,0,0,10:30
+243,Asia/Hong_Kong,1979,HK,480,60,5,8,0,0,11:30,10,16,0,0,10:30
+244,Asia/Hong_Kong,1980,HK,480,0,5,8,0,0,11:30,10,16,0,0,10:30
+245,Asia/Taipei,1970,Taiwan,480,60,6,1,-1,0,08:00,10,1,-1,0,07:00
+246,Asia/Taipei,1974,Taiwan,480,60,4,1,-1,0,08:00,10,1,-1,0,07:00
+247,Asia/Taipei,1979,Taiwan,480,60,6,30,-1,0,08:00,9,30,-1,0,07:00
+248,Asia/Taipei,1980,Taiwan,480,0,6,30,-1,0,08:00,9,30,-1,0,07:00
+249,Asia/Macau,1970,Macau,480,60,4,16,0,0,11:30,10,16,0,0,10:30
+250,Asia/Macau,1972,Macau,480,60,4,15,0,0,08:00,10,15,0,0,07:00
+251,Asia/Macau,1974,Macau,480,60,4,15,0,0,08:00,10,15,0,0,10:30
+252,Asia/Macau,1975,Macau,480,60,4,15,0,0,11:30,10,15,0,0,10:30
+253,Asia/Macau,1978,Macau,480,60,4,15,0,0,08:00,10,15,0,0,07:00
+254,Asia/Macau,1980,Macau,480,0,4,15,0,0,08:00,10,15,0,0,07:00
+255,Asia/Macau,1999,PRC,480,0,4,15,0,0,08:00,10,15,0,0,07:00
+256,Asia/Nicosia,1970,Cyprus,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+257,Asia/Nicosia,1975,Cyprus,120,60,4,13,-1,0,02:00,10,12,-1,0,01:00
+258,Asia/Nicosia,1976,Cyprus,120,60,5,15,-1,0,02:00,10,11,-1,0,01:00
+259,Asia/Nicosia,1977,Cyprus,120,60,4,1,0,0,02:00,9,25,-1,0,01:00
+260,Asia/Nicosia,1978,Cyprus,120,60,4,1,0,0,02:00,10,2,-1,0,01:00
+261,Asia/Nicosia,1979,Cyprus,120,60,4,1,0,0,02:00,9,-1,0,0,01:00
+262,Asia/Nicosia,1981,Cyprus,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
+263,Asia/Nicosia,1998,EUAsia,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+264,Asia/Tbilisi,1970,RussiaAsia,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+265,Asia/Tbilisi,1981,RussiaAsia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
+266,Asia/Tbilisi,1984,RussiaAsia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
+267,Asia/Tbilisi,1985,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+268,Asia/Tbilisi,1991,RussiaAsia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+269,Asia/Tbilisi,1992,E-EurAsia,180,60,3,-1,0,0,03:00,9,-1,0,0,02:00
+270,Asia/Tbilisi,1994,E-EurAsia,240,60,3,-1,0,0,04:00,9,-1,0,0,03:00
+271,Asia/Tbilisi,1995,E-EurAsia,240,0,12,31,-1,0,16:00,9,-1,0,0,03:00
+272,Asia/Tbilisi,1996,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+273,Asia/Tbilisi,1997,E-EurAsia,240,60,3,-1,0,0,04:00,10,-1,0,0,03:00
+274,Asia/Tbilisi,2004,RussiaAsia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
+275,Asia/Tbilisi,2005,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+276,Asia/Dili,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
+277,Asia/Dili,1976,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+278,Asia/Dili,2000,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
+279,Asia/Kolkata,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
+280,Asia/Jakarta,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+281,Asia/Pontianak,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+282,Asia/Pontianak,1988,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+283,Asia/Makassar,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+284,Asia/Jayapura,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
+285,Asia/Tehran,1970,,210,0,0,0,0,0,00:00,0,0,0,0,00:00
+286,Asia/Tehran,1977,Iran,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+287,Asia/Tehran,1978,Iran,240,60,3,21,-1,0,04:00,10,21,-1,0,03:00
+288,Asia/Tehran,1979,Iran,210,60,3,21,-1,0,03:30,9,19,-1,0,02:30
+289,Asia/Tehran,1980,Iran,210,60,3,21,-1,0,03:30,9,23,-1,0,02:30
+290,Asia/Tehran,1991,Iran,210,60,5,3,-1,0,03:30,9,22,-1,0,02:30
+291,Asia/Tehran,1992,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+292,Asia/Tehran,1996,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+293,Asia/Tehran,1997,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+294,Asia/Tehran,2000,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+295,Asia/Tehran,2001,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+296,Asia/Tehran,2004,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+297,Asia/Tehran,2005,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+298,Asia/Tehran,2008,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+299,Asia/Tehran,2009,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+300,Asia/Tehran,2012,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+301,Asia/Tehran,2013,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+302,Asia/Tehran,2016,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+303,Asia/Tehran,2017,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+304,Asia/Tehran,2020,Iran,210,60,3,21,-1,0,03:30,9,21,-1,0,02:30
+305,Asia/Tehran,2021,Iran,210,60,3,22,-1,0,03:30,9,22,-1,0,02:30
+306,Asia/Baghdad,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+307,Asia/Baghdad,1982,Iraq,180,60,5,1,-1,0,03:00,10,1,-1,0,02:00
+308,Asia/Baghdad,1983,Iraq,180,60,3,31,-1,0,03:00,10,1,-1,0,02:00
+309,Asia/Baghdad,1984,Iraq,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+310,Asia/Baghdad,1985,Iraq,180,60,4,1,-1,0,03:00,9,-1,0,0,04:00
+311,Asia/Baghdad,1986,Iraq,180,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+312,Asia/Baghdad,1991,Iraq,180,60,4,1,-1,0,06:00,10,1,-1,0,06:00
+313,Asia/Baghdad,2007,Iraq,180,0,4,1,-1,0,06:00,10,1,-1,0,06:00
+314,Asia/Jerusalem,1970,Zion,120,60,4,29,-1,0,04:00,9,22,-1,0,01:00
+315,Asia/Jerusalem,1974,Zion,120,60,7,7,-1,0,02:00,10,13,-1,0,01:00
+316,Asia/Jerusalem,1975,Zion,120,60,4,20,-1,0,02:00,8,31,-1,0,01:00
+317,Asia/Jerusalem,1985,Zion,120,60,4,14,-1,0,02:00,9,15,-1,0,01:00
+318,Asia/Jerusalem,1986,Zion,120,60,5,18,-1,0,02:00,9,7,-1,0,01:00
+319,Asia/Jerusalem,1987,Zion,120,60,4,15,-1,0,02:00,9,13,-1,0,01:00
+320,Asia/Jerusalem,1988,Zion,120,60,4,9,-1,0,02:00,9,3,-1,0,01:00
+321,Asia/Jerusalem,1989,Zion,120,60,4,30,-1,0,02:00,9,3,-1,0,01:00
+322,Asia/Jerusalem,1990,Zion,120,60,3,25,-1,0,02:00,8,26,-1,0,01:00
+323,Asia/Jerusalem,1991,Zion,120,60,3,24,-1,0,02:00,9,1,-1,0,01:00
+324,Asia/Jerusalem,1992,Zion,120,60,3,29,-1,0,02:00,9,6,-1,0,01:00
+325,Asia/Jerusalem,1993,Zion,120,60,4,2,-1,0,02:00,9,5,-1,0,01:00
+326,Asia/Jerusalem,1994,Zion,120,60,4,1,-1,0,02:00,8,28,-1,0,01:00
+327,Asia/Jerusalem,1995,Zion,120,60,3,31,-1,0,02:00,9,3,-1,0,01:00
+328,Asia/Jerusalem,1996,Zion,120,60,3,15,-1,0,02:00,9,16,-1,0,01:00
+329,Asia/Jerusalem,1997,Zion,120,60,3,21,-1,0,02:00,9,14,-1,0,01:00
+330,Asia/Jerusalem,1998,Zion,120,60,3,20,-1,0,02:00,9,6,-1,0,01:00
+331,Asia/Jerusalem,1999,Zion,120,60,4,2,-1,0,04:00,9,3,-1,0,03:00
+332,Asia/Jerusalem,2000,Zion,120,60,4,14,-1,0,04:00,10,6,-1,0,02:00
+333,Asia/Jerusalem,2001,Zion,120,60,4,9,-1,0,03:00,9,24,-1,0,02:00
+334,Asia/Jerusalem,2002,Zion,120,60,3,29,-1,0,03:00,10,7,-1,0,02:00
+335,Asia/Jerusalem,2003,Zion,120,60,3,28,-1,0,03:00,10,3,-1,0,02:00
+336,Asia/Jerusalem,2004,Zion,120,60,4,7,-1,0,03:00,9,22,-1,0,02:00
+337,Asia/Jerusalem,2005,Zion,120,60,4,1,-1,0,04:00,10,9,-1,0,03:00
+338,Asia/Jerusalem,2006,Zion,120,60,3,26,5,0,04:00,10,1,-1,0,03:00
+339,Asia/Jerusalem,2007,Zion,120,60,3,26,5,0,04:00,9,16,-1,0,03:00
+340,Asia/Jerusalem,2008,Zion,120,60,3,26,5,0,04:00,10,5,-1,0,03:00
+341,Asia/Jerusalem,2009,Zion,120,60,3,26,5,0,04:00,9,27,-1,0,03:00
+342,Asia/Jerusalem,2010,Zion,120,60,3,26,5,0,04:00,9,12,-1,0,03:00
+343,Asia/Jerusalem,2011,Zion,120,60,4,1,-1,0,04:00,10,2,-1,0,03:00
+344,Asia/Jerusalem,2012,Zion,120,60,3,26,5,0,04:00,9,23,-1,0,03:00
+345,Asia/Jerusalem,2013,Zion,120,60,3,23,5,0,04:00,10,-1,0,0,03:00
+346,Asia/Tokyo,1970,Japan,540,0,5,1,0,0,11:00,9,8,6,0,10:00
+347,Asia/Amman,1970,Jordan,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+348,Asia/Amman,1973,Jordan,120,60,6,6,-1,0,02:00,10,1,-1,0,01:00
+349,Asia/Amman,1974,Jordan,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
+350,Asia/Amman,1976,Jordan,120,60,5,1,-1,0,02:00,11,1,-1,0,01:00
+351,Asia/Amman,1977,Jordan,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
+352,Asia/Amman,1978,Jordan,120,60,4,30,-1,0,02:00,9,30,-1,0,01:00
+353,Asia/Amman,1985,Jordan,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
+354,Asia/Amman,1986,Jordan,120,60,4,1,5,0,02:00,10,1,5,0,01:00
+355,Asia/Amman,1989,Jordan,120,60,5,8,-1,0,02:00,10,1,5,0,01:00
+356,Asia/Amman,1990,Jordan,120,60,4,27,-1,0,02:00,10,1,5,0,01:00
+357,Asia/Amman,1991,Jordan,120,60,4,17,-1,0,02:00,9,27,-1,0,01:00
+358,Asia/Amman,1992,Jordan,120,60,4,10,-1,0,02:00,10,1,5,0,01:00
+359,Asia/Amman,1993,Jordan,120,60,4,1,5,0,02:00,10,1,5,0,01:00
+360,Asia/Amman,1994,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,01:00
+361,Asia/Amman,1995,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,02:00
+362,Asia/Amman,1999,Jordan,120,60,7,1,-1,0,02:00,9,-1,5,0,02:00
+363,Asia/Amman,2000,Jordan,120,60,3,-1,4,0,02:00,9,-1,5,0,02:00
+364,Asia/Amman,2002,Jordan,120,60,3,-1,4,0,26:00,9,-1,5,0,02:00
+365,Asia/Amman,2003,Jordan,120,60,3,-1,4,0,26:00,10,24,-1,0,02:00
+366,Asia/Amman,2004,Jordan,120,60,3,-1,4,0,26:00,10,15,-1,0,02:00
+367,Asia/Amman,2005,Jordan,120,60,3,-1,4,0,26:00,9,-1,5,0,02:00
+368,Asia/Amman,2006,Jordan,120,60,3,-1,4,0,26:00,10,-1,5,0,02:00
+369,Asia/Amman,2012,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+370,Asia/Almaty,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+371,Asia/Almaty,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
+372,Asia/Almaty,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
+373,Asia/Almaty,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+374,Asia/Almaty,1991,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+375,Asia/Almaty,1992,RussiaAsia,360,60,3,-1,6,0,29:00,9,-1,6,0,28:00
+376,Asia/Almaty,1993,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+377,Asia/Almaty,1996,RussiaAsia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
+378,Asia/Almaty,2005,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+379,Asia/Qyzylorda,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+380,Asia/Qyzylorda,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+381,Asia/Qyzylorda,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+382,Asia/Qyzylorda,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+383,Asia/Qyzylorda,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+384,Asia/Qyzylorda,1991,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+385,Asia/Qyzylorda,1992,RussiaAsia,360,60,3,-1,6,0,29:00,9,-1,6,0,28:00
+386,Asia/Qyzylorda,1993,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+387,Asia/Qyzylorda,1996,RussiaAsia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
+388,Asia/Qyzylorda,2005,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+389,Asia/Aqtobe,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+390,Asia/Aqtobe,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+391,Asia/Aqtobe,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+392,Asia/Aqtobe,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+393,Asia/Aqtobe,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+394,Asia/Aqtobe,1992,RussiaAsia,300,60,3,-1,6,0,28:00,9,-1,6,0,27:00
+395,Asia/Aqtobe,1993,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+396,Asia/Aqtobe,1996,RussiaAsia,300,60,3,-1,0,0,07:00,10,-1,0,0,07:00
+397,Asia/Aqtobe,2005,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+398,Asia/Aqtau,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+399,Asia/Aqtau,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+400,Asia/Aqtau,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+401,Asia/Aqtau,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+402,Asia/Aqtau,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+403,Asia/Aqtau,1992,RussiaAsia,300,60,3,-1,6,0,28:00,9,-1,6,0,27:00
+404,Asia/Aqtau,1993,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+405,Asia/Aqtau,1995,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+406,Asia/Aqtau,1996,RussiaAsia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
+407,Asia/Aqtau,2005,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+408,Asia/Oral,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+409,Asia/Oral,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+410,Asia/Oral,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+411,Asia/Oral,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+412,Asia/Oral,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+413,Asia/Oral,1989,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+414,Asia/Oral,1992,RussiaAsia,240,60,3,-1,6,0,27:00,9,-1,6,0,26:00
+415,Asia/Oral,1993,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+416,Asia/Oral,1996,RussiaAsia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
+417,Asia/Oral,2005,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+418,Asia/Bishkek,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+419,Asia/Bishkek,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
+420,Asia/Bishkek,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
+421,Asia/Bishkek,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+422,Asia/Bishkek,1991,Kyrgyz,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+423,Asia/Bishkek,1992,Kyrgyz,300,60,4,7,0,0,05:00,9,-1,0,0,04:00
+424,Asia/Bishkek,1997,Kyrgyz,300,60,3,-1,0,0,07:30,10,-1,0,0,06:30
+425,Asia/Bishkek,2005,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+426,Asia/Seoul,1970,ROK,540,60,5,15,-1,0,09:00,9,13,-1,0,08:00
+427,Asia/Seoul,1987,ROK,540,60,5,8,0,0,09:00,10,8,0,0,08:00
+428,Asia/Seoul,1988,ROK,540,0,5,8,0,0,09:00,10,8,0,0,08:00
+429,Asia/Pyongyang,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
+430,Asia/Kuwait,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+431,Asia/Vientiane,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+432,Asia/Beirut,1970,Lebanon,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
+433,Asia/Beirut,1972,Lebanon,120,60,6,22,-1,0,02:00,10,1,-1,0,01:00
+434,Asia/Beirut,1973,Lebanon,120,60,5,1,-1,0,02:00,10,1,-1,0,01:00
+435,Asia/Beirut,1978,Lebanon,120,60,4,30,-1,0,02:00,9,30,-1,0,01:00
+436,Asia/Beirut,1984,Lebanon,120,60,5,1,-1,0,02:00,10,16,-1,0,01:00
+437,Asia/Beirut,1988,Lebanon,120,60,6,1,-1,0,02:00,10,16,-1,0,01:00
+438,Asia/Beirut,1989,Lebanon,120,60,5,10,-1,0,02:00,10,16,-1,0,01:00
+439,Asia/Beirut,1990,Lebanon,120,60,5,1,-1,0,02:00,10,16,-1,0,01:00
+440,Asia/Beirut,1992,Lebanon,120,60,5,1,-1,0,02:00,10,4,-1,0,01:00
+441,Asia/Beirut,1993,Lebanon,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
+442,Asia/Beirut,1999,Lebanon,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
+443,Asia/Kuala_Lumpur,1970,,450,0,0,0,0,0,00:00,0,0,0,0,00:00
+444,Asia/Kuala_Lumpur,1982,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+445,Asia/Kuching,1970,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+446,Asia/Kuching,1982,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+447,Indian/Maldives,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+448,Asia/Hovd,1970,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+449,Asia/Hovd,1978,Mongol,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+450,Asia/Hovd,1983,Mongol,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
+451,Asia/Hovd,1984,Mongol,420,60,4,1,-1,0,07:00,9,-1,0,0,06:00
+452,Asia/Hovd,1985,Mongol,420,60,3,-1,0,0,07:00,9,-1,0,0,06:00
+453,Asia/Hovd,2001,Mongol,420,60,4,-1,6,0,09:00,9,-1,6,0,08:00
+454,Asia/Hovd,2002,Mongol,420,60,3,-1,6,0,09:00,9,-1,6,0,08:00
+455,Asia/Hovd,2006,Mongol,420,0,3,-1,6,0,09:00,9,-1,6,0,08:00
+456,Asia/Ulaanbaatar,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+457,Asia/Ulaanbaatar,1978,Mongol,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+458,Asia/Ulaanbaatar,1983,Mongol,480,60,4,1,-1,0,08:00,10,1,-1,0,07:00
+459,Asia/Ulaanbaatar,1984,Mongol,480,60,4,1,-1,0,08:00,9,-1,0,0,07:00
+460,Asia/Ulaanbaatar,1985,Mongol,480,60,3,-1,0,0,08:00,9,-1,0,0,07:00
+461,Asia/Ulaanbaatar,2001,Mongol,480,60,4,-1,6,0,10:00,9,-1,6,0,09:00
+462,Asia/Ulaanbaatar,2002,Mongol,480,60,3,-1,6,0,10:00,9,-1,6,0,09:00
+463,Asia/Ulaanbaatar,2006,Mongol,480,0,3,-1,6,0,10:00,9,-1,6,0,09:00
+464,Asia/Choibalsan,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+465,Asia/Choibalsan,1978,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+466,Asia/Choibalsan,1983,Mongol,540,60,4,1,-1,0,09:00,10,1,-1,0,08:00
+467,Asia/Choibalsan,1984,Mongol,540,60,4,1,-1,0,09:00,9,-1,0,0,08:00
+468,Asia/Choibalsan,1985,Mongol,540,60,3,-1,0,0,09:00,9,-1,0,0,08:00
+469,Asia/Choibalsan,2001,Mongol,540,60,4,-1,6,0,11:00,9,-1,6,0,10:00
+470,Asia/Choibalsan,2002,Mongol,540,60,3,-1,6,0,11:00,9,-1,6,0,10:00
+471,Asia/Choibalsan,2006,Mongol,540,0,3,-1,6,0,11:00,9,-1,6,0,10:00
+472,Asia/Choibalsan,2008,Mongol,480,0,3,-1,6,0,10:00,9,-1,6,0,09:00
+473,Asia/Kathmandu,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
+474,Asia/Kathmandu,1986,,345,0,0,0,0,0,00:00,0,0,0,0,00:00
+475,Asia/Muscat,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+476,Asia/Karachi,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+477,Asia/Karachi,1971,Pakistan,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+478,Asia/Karachi,2002,Pakistan,300,60,4,2,0,0,05:01,10,2,0,0,04:01
+479,Asia/Karachi,2008,Pakistan,300,60,6,1,-1,0,05:00,11,1,-1,0,04:00
+480,Asia/Karachi,2009,Pakistan,300,60,4,15,-1,0,05:00,11,1,-1,0,04:00
+481,Asia/Karachi,2010,Pakistan,300,0,4,15,-1,0,05:00,11,1,-1,0,04:00
+482,Asia/Gaza,1970,Zion,120,60,4,29,-1,0,04:00,9,22,-1,0,01:00
+483,Asia/Gaza,1974,Zion,120,60,7,7,-1,0,02:00,10,13,-1,0,01:00
+484,Asia/Gaza,1975,Zion,120,60,4,20,-1,0,02:00,8,31,-1,0,01:00
+485,Asia/Gaza,1985,Zion,120,60,4,14,-1,0,02:00,9,15,-1,0,01:00
+486,Asia/Gaza,1986,Zion,120,60,5,18,-1,0,02:00,9,7,-1,0,01:00
+487,Asia/Gaza,1987,Zion,120,60,4,15,-1,0,02:00,9,13,-1,0,01:00
+488,Asia/Gaza,1988,Zion,120,60,4,9,-1,0,02:00,9,3,-1,0,01:00
+489,Asia/Gaza,1989,Zion,120,60,4,30,-1,0,02:00,9,3,-1,0,01:00
+490,Asia/Gaza,1990,Zion,120,60,3,25,-1,0,02:00,8,26,-1,0,01:00
+491,Asia/Gaza,1991,Zion,120,60,3,24,-1,0,02:00,9,1,-1,0,01:00
+492,Asia/Gaza,1992,Zion,120,60,3,29,-1,0,02:00,9,6,-1,0,01:00
+493,Asia/Gaza,1993,Zion,120,60,4,2,-1,0,02:00,9,5,-1,0,01:00
+494,Asia/Gaza,1994,Zion,120,60,4,1,-1,0,02:00,8,28,-1,0,01:00
+495,Asia/Gaza,1995,Zion,120,60,3,31,-1,0,02:00,9,3,-1,0,01:00
+496,Asia/Gaza,1996,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,02:00
+497,Asia/Gaza,1999,Palestine,120,60,4,15,5,0,02:00,10,15,5,0,01:00
+498,Asia/Gaza,2004,Palestine,120,60,4,15,5,0,02:00,10,1,-1,0,02:00
+499,Asia/Gaza,2005,Palestine,120,60,4,15,5,0,02:00,10,4,-1,0,03:00
+500,Asia/Gaza,2006,Palestine,120,60,4,1,-1,0,02:00,9,22,-1,0,01:00
+501,Asia/Gaza,2007,Palestine,120,60,4,1,-1,0,02:00,9,8,4,0,03:00
+502,Asia/Gaza,2008,Palestine,120,60,3,-1,5,0,02:00,9,1,-1,0,01:00
+503,Asia/Gaza,2009,Palestine,120,60,3,-1,5,0,02:00,9,1,5,0,02:00
+504,Asia/Gaza,2010,Palestine,120,60,3,26,-1,0,02:00,8,11,-1,0,01:00
+505,Asia/Gaza,2011,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+506,Asia/Gaza,2012,Palestine,120,60,3,-1,4,0,26:00,9,21,-1,0,02:00
+507,Asia/Gaza,2013,Palestine,120,60,3,-1,4,0,26:00,9,21,5,0,01:00
+508,Asia/Hebron,1970,Zion,120,60,4,29,-1,0,04:00,9,22,-1,0,01:00
+509,Asia/Hebron,1974,Zion,120,60,7,7,-1,0,02:00,10,13,-1,0,01:00
+510,Asia/Hebron,1975,Zion,120,60,4,20,-1,0,02:00,8,31,-1,0,01:00
+511,Asia/Hebron,1985,Zion,120,60,4,14,-1,0,02:00,9,15,-1,0,01:00
+512,Asia/Hebron,1986,Zion,120,60,5,18,-1,0,02:00,9,7,-1,0,01:00
+513,Asia/Hebron,1987,Zion,120,60,4,15,-1,0,02:00,9,13,-1,0,01:00
+514,Asia/Hebron,1988,Zion,120,60,4,9,-1,0,02:00,9,3,-1,0,01:00
+515,Asia/Hebron,1989,Zion,120,60,4,30,-1,0,02:00,9,3,-1,0,01:00
+516,Asia/Hebron,1990,Zion,120,60,3,25,-1,0,02:00,8,26,-1,0,01:00
+517,Asia/Hebron,1991,Zion,120,60,3,24,-1,0,02:00,9,1,-1,0,01:00
+518,Asia/Hebron,1992,Zion,120,60,3,29,-1,0,02:00,9,6,-1,0,01:00
+519,Asia/Hebron,1993,Zion,120,60,4,2,-1,0,02:00,9,5,-1,0,01:00
+520,Asia/Hebron,1994,Zion,120,60,4,1,-1,0,02:00,8,28,-1,0,01:00
+521,Asia/Hebron,1995,Zion,120,60,3,31,-1,0,02:00,9,3,-1,0,01:00
+522,Asia/Hebron,1996,Jordan,120,60,4,1,5,0,02:00,9,15,5,0,02:00
+523,Asia/Hebron,1999,Palestine,120,60,4,15,5,0,02:00,10,15,5,0,01:00
+524,Asia/Hebron,2004,Palestine,120,60,4,15,5,0,02:00,10,1,-1,0,02:00
+525,Asia/Hebron,2005,Palestine,120,60,4,15,5,0,02:00,10,4,-1,0,03:00
+526,Asia/Hebron,2006,Palestine,120,60,4,1,-1,0,02:00,9,22,-1,0,01:00
+527,Asia/Hebron,2007,Palestine,120,60,4,1,-1,0,02:00,9,8,4,0,03:00
+528,Asia/Hebron,2008,Palestine,120,60,3,-1,5,0,02:00,9,1,-1,0,01:00
+529,Asia/Hebron,2009,Palestine,120,60,3,-1,5,0,02:00,9,1,5,0,02:00
+530,Asia/Hebron,2010,Palestine,120,60,3,26,-1,0,02:00,8,11,-1,0,01:00
+531,Asia/Hebron,2011,Palestine,120,60,8,30,-1,0,02:00,9,30,-1,0,01:00
+532,Asia/Hebron,2012,Palestine,120,60,3,-1,4,0,26:00,9,21,-1,0,02:00
+533,Asia/Hebron,2013,Palestine,120,60,3,-1,4,0,26:00,9,21,5,0,01:00
+534,Asia/Manila,1970,Phil,480,60,4,12,-1,0,08:00,7,1,-1,0,07:00
+535,Asia/Manila,1978,Phil,480,60,3,22,-1,0,08:00,9,21,-1,0,07:00
+536,Asia/Manila,1979,Phil,480,0,3,22,-1,0,08:00,9,21,-1,0,07:00
+537,Asia/Qatar,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+538,Asia/Qatar,1972,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+539,Asia/Riyadh,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+540,Asia/Singapore,1970,,450,0,0,0,0,0,00:00,0,0,0,0,00:00
+541,Asia/Singapore,1982,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+542,Asia/Colombo,1970,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
+543,Asia/Colombo,1996,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+544,Asia/Colombo,2006,,330,0,0,0,0,0,00:00,0,0,0,0,00:00
+545,Asia/Damascus,1970,Syria,120,60,5,1,-1,0,04:00,10,1,-1,0,03:00
+546,Asia/Damascus,1977,Syria,120,60,5,1,-1,0,04:00,9,1,-1,0,03:00
+547,Asia/Damascus,1983,Syria,120,60,4,9,-1,0,04:00,10,1,-1,0,03:00
+548,Asia/Damascus,1986,Syria,120,60,2,16,-1,0,04:00,10,9,-1,0,03:00
+549,Asia/Damascus,1987,Syria,120,60,3,1,-1,0,04:00,10,31,-1,0,03:00
+550,Asia/Damascus,1988,Syria,120,60,3,15,-1,0,04:00,10,31,-1,0,03:00
+551,Asia/Damascus,1989,Syria,120,60,3,31,-1,0,04:00,10,1,-1,0,03:00
+552,Asia/Damascus,1990,Syria,120,60,4,1,-1,0,04:00,9,30,-1,0,03:00
+553,Asia/Damascus,1991,Syria,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
+554,Asia/Damascus,1992,Syria,120,60,4,8,-1,0,02:00,10,1,-1,0,01:00
+555,Asia/Damascus,1993,Syria,120,60,3,26,-1,0,02:00,9,25,-1,0,01:00
+556,Asia/Damascus,1994,Syria,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
+557,Asia/Damascus,1997,Syria,120,60,3,-1,1,0,02:00,10,1,-1,0,01:00
+558,Asia/Damascus,1999,Syria,120,60,4,1,-1,0,02:00,10,1,-1,0,01:00
+559,Asia/Damascus,2006,Syria,120,60,4,1,-1,0,02:00,9,22,-1,0,01:00
+560,Asia/Damascus,2007,Syria,120,60,3,-1,5,0,02:00,11,1,5,0,01:00
+561,Asia/Damascus,2008,Syria,120,60,4,1,5,0,02:00,11,1,-1,0,01:00
+562,Asia/Damascus,2009,Syria,120,60,3,-1,5,0,02:00,10,-1,5,0,01:00
+563,Asia/Damascus,2010,Syria,120,60,4,1,5,0,02:00,10,-1,5,0,01:00
+564,Asia/Damascus,2012,Syria,120,60,3,-1,5,0,02:00,10,-1,5,0,01:00
+565,Asia/Dushanbe,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+566,Asia/Dushanbe,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
+567,Asia/Dushanbe,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
+568,Asia/Dushanbe,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+569,Asia/Dushanbe,1991,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+570,Asia/Bangkok,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+571,Asia/Ashgabat,1970,RussiaAsia,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+572,Asia/Ashgabat,1981,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+573,Asia/Ashgabat,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+574,Asia/Ashgabat,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+575,Asia/Ashgabat,1991,RussiaAsia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+576,Asia/Ashgabat,1992,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+577,Asia/Dubai,1970,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+578,Asia/Samarkand,1970,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+579,Asia/Samarkand,1981,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+580,Asia/Samarkand,1982,RussiaAsia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+581,Asia/Samarkand,1984,RussiaAsia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+582,Asia/Samarkand,1985,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+583,Asia/Samarkand,1992,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+584,Asia/Tashkent,1970,RussiaAsia,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+585,Asia/Tashkent,1981,RussiaAsia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
+586,Asia/Tashkent,1984,RussiaAsia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
+587,Asia/Tashkent,1985,RussiaAsia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+588,Asia/Tashkent,1991,RussiaAsia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+589,Asia/Tashkent,1992,,300,0,0,0,0,0,00:00,0,0,0,0,00:00
+590,Asia/Ho_Chi_Minh,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+591,Asia/Aden,1970,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+592,Australia/Darwin,1970,Aus,570,0,12,31,-1,0,21:30,3,-1,0,0,10:30
+593,Australia/Perth,1970,AW,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+594,Australia/Perth,1974,AW,480,60,10,-1,0,0,10:00,1,1,-1,0,19:00
+595,Australia/Perth,1975,AW,480,0,12,31,-1,0,20:00,3,1,0,0,10:00
+596,Australia/Perth,1983,AW,480,60,10,-1,0,0,10:00,1,1,-1,0,19:00
+597,Australia/Perth,1984,AW,480,0,12,31,-1,0,20:00,3,1,0,0,10:00
+598,Australia/Perth,1991,AW,480,60,11,17,-1,0,10:00,1,1,-1,0,19:00
+599,Australia/Perth,1992,AW,480,0,12,31,-1,0,20:00,3,1,0,0,10:00
+600,Australia/Perth,2006,AW,480,60,12,3,-1,0,10:00,1,1,-1,0,19:00
+601,Australia/Perth,2007,AW,480,60,10,-1,0,0,10:00,3,-1,0,0,10:00
+602,Australia/Perth,2009,AW,480,0,12,31,-1,0,20:00,3,-1,0,0,10:00
+603,Australia/Eucla,1970,AW,525,0,0,0,0,0,00:00,0,0,0,0,00:00
+604,Australia/Eucla,1974,AW,525,60,10,-1,0,0,10:45,1,1,-1,0,19:45
+605,Australia/Eucla,1975,AW,525,0,12,31,-1,0,20:45,3,1,0,0,10:45
+606,Australia/Eucla,1983,AW,525,60,10,-1,0,0,10:45,1,1,-1,0,19:45
+607,Australia/Eucla,1984,AW,525,0,12,31,-1,0,20:45,3,1,0,0,10:45
+608,Australia/Eucla,1991,AW,525,60,11,17,-1,0,10:45,1,1,-1,0,19:45
+609,Australia/Eucla,1992,AW,525,0,12,31,-1,0,20:45,3,1,0,0,10:45
+610,Australia/Eucla,2006,AW,525,60,12,3,-1,0,10:45,1,1,-1,0,19:45
+611,Australia/Eucla,2007,AW,525,60,10,-1,0,0,10:45,3,-1,0,0,10:45
+612,Australia/Eucla,2009,AW,525,0,12,31,-1,0,20:45,3,-1,0,0,10:45
+613,Australia/Brisbane,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
+614,Australia/Brisbane,1971,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+615,Australia/Brisbane,1972,AQ,600,0,12,31,-1,0,22:00,2,-1,0,0,12:00
+616,Australia/Brisbane,1989,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+617,Australia/Brisbane,1990,AQ,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+618,Australia/Brisbane,1992,AQ,600,0,12,31,-1,0,22:00,3,1,0,0,12:00
+619,Australia/Lindeman,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
+620,Australia/Lindeman,1971,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+621,Australia/Lindeman,1972,AQ,600,0,12,31,-1,0,22:00,2,-1,0,0,12:00
+622,Australia/Lindeman,1989,AQ,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+623,Australia/Lindeman,1990,AQ,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+624,Australia/Lindeman,1992,Holiday,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+625,Australia/Lindeman,1993,Holiday,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+626,Australia/Lindeman,1994,Holiday,600,0,12,31,-1,0,22:00,3,1,0,0,12:00
+627,Australia/Adelaide,1970,Aus,570,0,12,31,-1,0,21:30,3,-1,0,0,10:30
+628,Australia/Adelaide,1971,AS,570,60,10,-1,0,0,11:30,1,1,-1,0,20:30
+629,Australia/Adelaide,1972,AS,570,60,10,-1,0,0,11:30,2,27,-1,0,11:30
+630,Australia/Adelaide,1973,AS,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
+631,Australia/Adelaide,1986,AS,570,60,10,19,-1,0,11:30,3,15,0,0,11:30
+632,Australia/Adelaide,1987,AS,570,60,10,-1,0,0,11:30,3,15,0,0,11:30
+633,Australia/Adelaide,1991,AS,570,60,10,-1,0,0,11:30,3,3,-1,0,11:30
+634,Australia/Adelaide,1992,AS,570,60,10,-1,0,0,11:30,3,22,-1,0,11:30
+635,Australia/Adelaide,1993,AS,570,60,10,-1,0,0,11:30,3,7,-1,0,11:30
+636,Australia/Adelaide,1994,AS,570,60,10,-1,0,0,11:30,3,20,-1,0,11:30
+637,Australia/Adelaide,1995,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
+638,Australia/Adelaide,2006,AS,570,60,10,-1,0,0,11:30,4,2,-1,0,11:30
+639,Australia/Adelaide,2007,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
+640,Australia/Adelaide,2008,AS,570,60,10,1,0,0,11:30,4,1,0,0,11:30
+641,Australia/Hobart,1970,AT,600,60,10,-1,0,0,12:00,3,8,0,0,12:00
+642,Australia/Hobart,1972,AT,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
+643,Australia/Hobart,1973,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+644,Australia/Hobart,1982,AT,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+645,Australia/Hobart,1984,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+646,Australia/Hobart,1986,AT,600,60,10,15,0,0,12:00,3,1,0,0,12:00
+647,Australia/Hobart,1987,AT,600,60,10,22,0,0,12:00,3,15,0,0,12:00
+648,Australia/Hobart,1988,AT,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
+649,Australia/Hobart,1991,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+650,Australia/Hobart,2000,AT,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
+651,Australia/Hobart,2001,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+652,Australia/Hobart,2006,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+653,Australia/Hobart,2007,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+654,Australia/Hobart,2008,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+655,Australia/Currie,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
+656,Australia/Currie,1971,AT,600,60,10,-1,0,0,12:00,3,8,0,0,12:00
+657,Australia/Currie,1972,AT,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
+658,Australia/Currie,1973,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+659,Australia/Currie,1982,AT,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+660,Australia/Currie,1984,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+661,Australia/Currie,1986,AT,600,60,10,15,0,0,12:00,3,1,0,0,12:00
+662,Australia/Currie,1987,AT,600,60,10,22,0,0,12:00,3,15,0,0,12:00
+663,Australia/Currie,1988,AT,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
+664,Australia/Currie,1991,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+665,Australia/Currie,2000,AT,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
+666,Australia/Currie,2001,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+667,Australia/Currie,2006,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+668,Australia/Currie,2007,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+669,Australia/Currie,2008,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+670,Australia/Melbourne,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
+671,Australia/Melbourne,1971,AV,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+672,Australia/Melbourne,1972,AV,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
+673,Australia/Melbourne,1973,AV,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+674,Australia/Melbourne,1986,AV,600,60,10,15,0,0,12:00,3,15,0,0,12:00
+675,Australia/Melbourne,1988,AV,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
+676,Australia/Melbourne,1991,AV,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+677,Australia/Melbourne,1995,AV,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+678,Australia/Melbourne,2000,AV,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
+679,Australia/Melbourne,2001,AV,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+680,Australia/Melbourne,2006,AV,600,60,10,-1,0,0,12:00,4,1,0,0,12:00
+681,Australia/Melbourne,2007,AV,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+682,Australia/Melbourne,2008,AV,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+683,Australia/Sydney,1970,Aus,600,0,12,31,-1,0,22:00,3,-1,0,0,11:00
+684,Australia/Sydney,1971,AN,600,60,10,-1,0,0,12:00,1,1,-1,0,21:00
+685,Australia/Sydney,1972,AN,600,60,10,-1,0,0,12:00,2,27,-1,0,12:00
+686,Australia/Sydney,1973,AN,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+687,Australia/Sydney,1982,AN,600,60,10,-1,0,0,12:00,4,1,0,0,12:00
+688,Australia/Sydney,1983,AN,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+689,Australia/Sydney,1986,AN,600,60,10,19,-1,0,12:00,3,15,0,0,12:00
+690,Australia/Sydney,1987,AN,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
+691,Australia/Sydney,1990,AN,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+692,Australia/Sydney,1996,AN,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+693,Australia/Sydney,2000,AN,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
+694,Australia/Sydney,2001,AN,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+695,Australia/Sydney,2006,AN,600,60,10,-1,0,0,12:00,4,1,0,0,12:00
+696,Australia/Sydney,2007,AN,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+697,Australia/Sydney,2008,AN,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+698,Australia/Broken_Hill,1970,Aus,570,0,12,31,-1,0,21:30,3,-1,0,0,10:30
+699,Australia/Broken_Hill,1971,AN,570,60,10,-1,0,0,11:30,1,1,-1,0,20:30
+700,Australia/Broken_Hill,1972,AN,570,60,10,-1,0,0,11:30,2,27,-1,0,11:30
+701,Australia/Broken_Hill,1973,AN,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
+702,Australia/Broken_Hill,1982,AN,570,60,10,-1,0,0,11:30,4,1,0,0,11:30
+703,Australia/Broken_Hill,1983,AN,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
+704,Australia/Broken_Hill,1986,AN,570,60,10,19,-1,0,11:30,3,15,0,0,11:30
+705,Australia/Broken_Hill,1987,AN,570,60,10,-1,0,0,11:30,3,15,0,0,11:30
+706,Australia/Broken_Hill,1990,AN,570,60,10,-1,0,0,11:30,3,1,0,0,11:30
+707,Australia/Broken_Hill,1996,AN,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
+708,Australia/Broken_Hill,2000,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
+709,Australia/Broken_Hill,2006,AS,570,60,10,-1,0,0,11:30,4,2,-1,0,11:30
+710,Australia/Broken_Hill,2007,AS,570,60,10,-1,0,0,11:30,3,-1,0,0,11:30
+711,Australia/Broken_Hill,2008,AS,570,60,10,1,0,0,11:30,4,1,0,0,11:30
+712,Australia/Lord_Howe,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+713,Australia/Lord_Howe,1981,LH,630,60,10,-1,0,0,12:30,1,1,-1,0,21:30
+714,Australia/Lord_Howe,1982,LH,630,60,10,-1,0,0,12:30,3,1,0,0,11:30
+715,Australia/Lord_Howe,1985,LH,630,30,10,-1,0,0,12:30,3,1,0,0,11:30
+716,Australia/Lord_Howe,1986,LH,630,30,10,19,-1,0,12:30,3,15,0,0,11:30
+717,Australia/Lord_Howe,1987,LH,630,30,10,-1,0,0,12:30,3,15,0,0,11:30
+718,Australia/Lord_Howe,1990,LH,630,30,10,-1,0,0,12:30,3,1,0,0,11:30
+719,Australia/Lord_Howe,1996,LH,630,30,10,-1,0,0,12:30,3,-1,0,0,11:30
+720,Australia/Lord_Howe,2000,LH,630,30,8,-1,0,0,12:30,3,-1,0,0,11:30
+721,Australia/Lord_Howe,2001,LH,630,30,10,-1,0,0,12:30,3,-1,0,0,11:30
+722,Australia/Lord_Howe,2006,LH,630,30,10,-1,0,0,12:30,4,1,0,0,11:30
+723,Australia/Lord_Howe,2007,LH,630,30,10,-1,0,0,12:30,3,-1,0,0,11:30
+724,Australia/Lord_Howe,2008,LH,630,30,10,1,0,0,12:30,4,1,0,0,11:30
+725,Antarctica/Macquarie,1970,AT,600,60,10,-1,0,0,12:00,3,8,0,0,12:00
+726,Antarctica/Macquarie,1972,AT,600,60,10,-1,0,0,12:00,2,-1,0,0,12:00
+727,Antarctica/Macquarie,1973,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+728,Antarctica/Macquarie,1982,AT,600,60,10,-1,0,0,12:00,3,-1,0,0,12:00
+729,Antarctica/Macquarie,1984,AT,600,60,10,-1,0,0,12:00,3,1,0,0,12:00
+730,Antarctica/Macquarie,1986,AT,600,60,10,15,0,0,12:00,3,1,0,0,12:00
+731,Antarctica/Macquarie,1987,AT,600,60,10,22,0,0,12:00,3,15,0,0,12:00
+732,Antarctica/Macquarie,1988,AT,600,60,10,-1,0,0,12:00,3,15,0,0,12:00
+733,Antarctica/Macquarie,1991,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+734,Antarctica/Macquarie,2000,AT,600,60,8,-1,0,0,12:00,3,-1,0,0,12:00
+735,Antarctica/Macquarie,2001,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+736,Antarctica/Macquarie,2006,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+737,Antarctica/Macquarie,2007,AT,600,60,10,1,0,0,12:00,3,-1,0,0,12:00
+738,Antarctica/Macquarie,2008,AT,600,60,10,1,0,0,12:00,4,1,0,0,12:00
+739,Antarctica/Macquarie,2010,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+740,Indian/Christmas,1970,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+741,Pacific/Rarotonga,1970,,-630,0,0,0,0,0,00:00,0,0,0,0,00:00
+742,Pacific/Rarotonga,1978,Cook,-600,30,11,12,-1,0,-10:00,1,1,-1,0,01:00
+743,Pacific/Rarotonga,1979,Cook,-600,30,10,-1,0,0,-10:00,3,1,0,0,-11:00
+744,Pacific/Rarotonga,1991,Cook,-600,0,12,31,-1,0,02:00,3,1,0,0,-11:00
+745,Indian/Cocos,1970,,390,0,0,0,0,0,00:00,0,0,0,0,00:00
+746,Pacific/Fiji,1970,Fiji,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+747,Pacific/Fiji,1998,Fiji,720,60,11,1,0,0,14:00,1,1,-1,0,23:00
+748,Pacific/Fiji,1999,Fiji,720,60,11,1,0,0,14:00,2,-1,0,0,14:00
+749,Pacific/Fiji,2000,Fiji,720,0,12,31,-1,0,24:00,2,-1,0,0,14:00
+750,Pacific/Fiji,2009,Fiji,720,60,11,29,-1,0,14:00,1,1,-1,0,23:00
+751,Pacific/Fiji,2010,Fiji,720,60,10,21,0,0,14:00,3,-1,0,0,14:00
+752,Pacific/Fiji,2011,Fiji,720,60,10,21,0,0,14:00,3,1,0,0,14:00
+753,Pacific/Fiji,2012,Fiji,720,60,10,21,0,0,14:00,1,18,0,0,14:00
+754,Pacific/Gambier,1970,,-540,0,0,0,0,0,00:00,0,0,0,0,00:00
+755,Pacific/Marquesas,1970,,-570,0,0,0,0,0,00:00,0,0,0,0,00:00
+756,Pacific/Tahiti,1970,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
+757,Pacific/Guam,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+758,Pacific/Guam,2000,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+759,Pacific/Tarawa,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+760,Pacific/Enderbury,1970,,-720,0,0,0,0,0,00:00,0,0,0,0,00:00
+761,Pacific/Enderbury,1979,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+762,Pacific/Enderbury,1995,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
+763,Pacific/Kiritimati,1970,,-640,0,0,0,0,0,00:00,0,0,0,0,00:00
+764,Pacific/Kiritimati,1979,,-600,0,0,0,0,0,00:00,0,0,0,0,00:00
+765,Pacific/Kiritimati,1995,,840,0,0,0,0,0,00:00,0,0,0,0,00:00
+766,Pacific/Saipan,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+767,Pacific/Saipan,2000,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+768,Pacific/Majuro,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+769,Pacific/Kwajalein,1970,,-720,0,0,0,0,0,00:00,0,0,0,0,00:00
+770,Pacific/Kwajalein,1993,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+771,Pacific/Chuuk,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+772,Pacific/Pohnpei,1970,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+773,Pacific/Kosrae,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+774,Pacific/Kosrae,1999,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+775,Pacific/Nauru,1970,,690,0,0,0,0,0,00:00,0,0,0,0,00:00
+776,Pacific/Nauru,1979,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+777,Pacific/Noumea,1970,NC,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+778,Pacific/Noumea,1977,NC,660,60,12,1,0,0,11:00,1,1,-1,0,22:00
+779,Pacific/Noumea,1978,NC,660,60,12,1,0,0,11:00,2,27,-1,0,10:00
+780,Pacific/Noumea,1979,NC,660,0,12,31,-1,0,23:00,2,27,-1,0,10:00
+781,Pacific/Noumea,1996,NC,660,60,12,1,-1,0,13:00,1,1,-1,0,22:00
+782,Pacific/Noumea,1997,NC,660,0,12,31,-1,0,23:00,3,2,-1,0,13:00
+783,Pacific/Auckland,1970,NZ,720,0,12,31,-1,0,24:00,1,1,-1,0,11:00
+784,Pacific/Auckland,1974,NZ,720,60,11,1,0,0,14:00,1,1,-1,0,23:00
+785,Pacific/Auckland,1975,NZ,720,60,10,-1,0,0,14:00,2,-1,0,0,14:00
+786,Pacific/Auckland,1976,NZ,720,60,10,-1,0,0,14:00,3,1,0,0,14:00
+787,Pacific/Auckland,1989,NZ,720,60,10,8,0,0,14:00,3,1,0,0,14:00
+788,Pacific/Auckland,1990,NZ,720,60,10,1,0,0,14:00,3,15,0,0,14:00
+789,Pacific/Auckland,2007,NZ,720,60,9,-1,0,0,14:00,3,15,0,0,14:00
+790,Pacific/Auckland,2008,NZ,720,60,9,-1,0,0,14:00,4,1,0,0,14:00
+791,Pacific/Chatham,1970,Chatham,765,0,0,0,0,0,00:00,0,0,0,0,00:00
+792,Pacific/Chatham,1974,Chatham,765,60,11,1,0,0,15:30,1,1,-1,0,23:45
+793,Pacific/Chatham,1975,Chatham,765,60,10,-1,0,0,15:30,2,-1,0,0,15:30
+794,Pacific/Chatham,1976,Chatham,765,60,10,-1,0,0,15:30,3,1,0,0,15:30
+795,Pacific/Chatham,1989,Chatham,765,60,10,8,0,0,15:30,3,1,0,0,15:30
+796,Pacific/Chatham,1990,Chatham,765,60,10,1,0,0,15:30,3,15,0,0,15:30
+797,Pacific/Chatham,2007,Chatham,765,60,9,-1,0,0,15:30,3,15,0,0,15:30
+798,Pacific/Chatham,2008,Chatham,765,60,9,-1,0,0,15:30,4,1,0,0,15:30
+799,Pacific/Niue,1970,,-690,0,0,0,0,0,00:00,0,0,0,0,00:00
+800,Pacific/Niue,1978,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+801,Pacific/Norfolk,1970,,690,0,0,0,0,0,00:00,0,0,0,0,00:00
+802,Pacific/Palau,1970,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
+803,Pacific/Port_Moresby,1970,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+804,Pacific/Pitcairn,1970,,-510,0,0,0,0,0,00:00,0,0,0,0,00:00
+805,Pacific/Pitcairn,1998,,-480,0,0,0,0,0,00:00,0,0,0,0,00:00
+806,Pacific/Pago_Pago,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+807,Pacific/Pago_Pago,1983,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+808,Pacific/Apia,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+809,Pacific/Apia,2010,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+810,Pacific/Apia,2011,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
+811,Pacific/Apia,2012,WS,780,1,9,-1,0,0,16:00,4,1,0,0,16:00
+812,Pacific/Guadalcanal,1970,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+813,Pacific/Fakaofo,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+814,Pacific/Fakaofo,2011,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
+815,Pacific/Tongatapu,1970,,780,0,0,0,0,0,00:00,0,0,0,0,00:00
+816,Pacific/Tongatapu,1999,Tonga,780,60,10,7,-1,0,15:00,1,1,-1,0,24:00
+817,Pacific/Tongatapu,2000,Tonga,780,60,11,1,0,0,15:00,3,19,-1,0,15:00
+818,Pacific/Tongatapu,2001,Tonga,780,60,11,1,0,0,15:00,1,-1,0,0,14:00
+819,Pacific/Tongatapu,2002,Tonga,780,0,12,31,-1,0,25:00,1,-1,0,0,14:00
+820,Pacific/Funafuti,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+821,Pacific/Midway,1970,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+822,Pacific/Midway,1983,,-660,0,0,0,0,0,00:00,0,0,0,0,00:00
+823,Pacific/Wake,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+824,Pacific/Efate,1970,Vanuatu,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+825,Pacific/Efate,1983,Vanuatu,660,60,9,25,-1,0,11:00,1,1,-1,0,22:00
+826,Pacific/Efate,1984,Vanuatu,660,60,10,23,-1,0,11:00,3,23,0,0,10:00
+827,Pacific/Efate,1985,Vanuatu,660,60,9,23,0,0,11:00,3,23,0,0,10:00
+828,Pacific/Efate,1992,Vanuatu,660,60,10,23,0,0,11:00,1,23,0,0,10:00
+829,Pacific/Efate,1993,Vanuatu,660,0,12,31,-1,0,23:00,1,23,0,0,10:00
+830,Pacific/Wallis,1970,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+831,Europe/London,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+832,Europe/London,1971,GB-Eire,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+833,Europe/London,1972,GB-Eire,0,60,3,16,0,0,02:00,10,23,0,0,02:00
+834,Europe/London,1981,GB-Eire,0,60,3,-1,0,0,1:00,10,23,0,0,1:00
+835,Europe/London,1990,GB-Eire,0,60,3,-1,0,0,1:00,10,22,0,0,1:00
+836,Europe/London,1995,GB-Eire,0,0,3,-1,0,0,1:00,10,22,0,0,1:00
+837,Europe/London,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+838,Europe/Dublin,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+839,Europe/Dublin,1971,GB-Eire,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+840,Europe/Dublin,1972,GB-Eire,0,60,3,16,0,0,02:00,10,23,0,0,02:00
+841,Europe/Dublin,1981,GB-Eire,0,60,3,-1,0,0,1:00,10,23,0,0,1:00
+842,Europe/Dublin,1990,GB-Eire,0,60,3,-1,0,0,1:00,10,22,0,0,1:00
+843,Europe/Dublin,1995,GB-Eire,0,0,3,-1,0,0,1:00,10,22,0,0,1:00
+844,Europe/Dublin,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+845,WET,1970,EU,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+846,WET,1977,EU,0,60,4,1,0,0,1:00,9,-1,0,0,1:00
+847,WET,1978,EU,0,60,4,1,0,0,1:00,10,1,-1,0,1:00
+848,WET,1979,EU,0,60,4,1,0,0,1:00,9,-1,0,0,1:00
+849,WET,1981,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+850,WET,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+851,CET,1970,C-Eur,60,60,4,1,1,0,03:00,9,16,-1,0,03:00
+852,CET,1977,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
+853,CET,1978,C-Eur,60,60,4,1,0,0,03:00,10,1,-1,0,03:00
+854,CET,1979,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
+855,CET,1981,C-Eur,60,60,3,-1,0,0,03:00,9,-1,0,0,03:00
+856,CET,1996,C-Eur,60,60,3,-1,0,0,03:00,10,-1,0,0,03:00
+857,MET,1970,C-Eur,60,60,4,1,1,0,03:00,9,16,-1,0,03:00
+858,MET,1977,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
+859,MET,1978,C-Eur,60,60,4,1,0,0,03:00,10,1,-1,0,03:00
+860,MET,1979,C-Eur,60,60,4,1,0,0,03:00,9,-1,0,0,03:00
+861,MET,1981,C-Eur,60,60,3,-1,0,0,03:00,9,-1,0,0,03:00
+862,MET,1996,C-Eur,60,60,3,-1,0,0,03:00,10,-1,0,0,03:00
+863,EET,1970,EU,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+864,EET,1977,EU,120,60,4,1,0,0,1:00,9,-1,0,0,1:00
+865,EET,1978,EU,120,60,4,1,0,0,1:00,10,1,-1,0,1:00
+866,EET,1979,EU,120,60,4,1,0,0,1:00,9,-1,0,0,1:00
+867,EET,1981,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+868,EET,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+869,Europe/Tirane,1970,Albania,60,60,3,29,-1,0,03:00,4,10,-1,0,03:00
+870,Europe/Tirane,1974,Albania,60,60,5,4,-1,0,01:00,10,2,-1,0,00:00
+871,Europe/Tirane,1975,Albania,60,60,5,1,-1,0,01:00,10,2,-1,0,00:00
+872,Europe/Tirane,1976,Albania,60,60,5,2,-1,0,01:00,10,3,-1,0,00:00
+873,Europe/Tirane,1977,Albania,60,60,5,8,-1,0,01:00,10,2,-1,0,00:00
+874,Europe/Tirane,1978,Albania,60,60,5,6,-1,0,01:00,10,1,-1,0,00:00
+875,Europe/Tirane,1979,Albania,60,60,5,5,-1,0,01:00,9,30,-1,0,00:00
+876,Europe/Tirane,1980,Albania,60,60,5,3,-1,0,01:00,10,4,-1,0,00:00
+877,Europe/Tirane,1981,Albania,60,60,4,26,-1,0,01:00,9,27,-1,0,00:00
+878,Europe/Tirane,1982,Albania,60,60,5,2,-1,0,01:00,10,3,-1,0,00:00
+879,Europe/Tirane,1983,Albania,60,60,4,18,-1,0,01:00,10,1,-1,0,00:00
+880,Europe/Tirane,1984,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+881,Europe/Tirane,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+882,Europe/Andorra,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+883,Europe/Andorra,1985,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+884,Europe/Andorra,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+885,Europe/Vienna,1970,Austria,60,60,4,18,-1,0,03:00,10,1,0,0,03:00
+886,Europe/Vienna,1980,Austria,60,60,4,6,-1,0,01:00,9,28,-1,0,00:00
+887,Europe/Vienna,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+888,Europe/Vienna,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+889,Europe/Minsk,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+890,Europe/Minsk,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+891,Europe/Minsk,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+892,Europe/Minsk,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+893,Europe/Minsk,1990,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+894,Europe/Minsk,1991,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+895,Europe/Minsk,1992,Russia,120,60,3,-1,6,0,25:00,9,-1,6,0,24:00
+896,Europe/Minsk,1993,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+897,Europe/Minsk,1996,Russia,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
+898,Europe/Minsk,2010,Russia,120,0,3,-1,0,0,04:00,10,-1,0,0,04:00
+899,Europe/Minsk,2011,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+900,Europe/Brussels,1970,Belgium,60,0,5,19,-1,0,03:00,10,7,-1,0,03:00
+901,Europe/Brussels,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+902,Europe/Brussels,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
+903,Europe/Brussels,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+904,Europe/Brussels,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+905,Europe/Brussels,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+906,Europe/Sofia,1970,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+907,Europe/Sofia,1979,Bulg,120,60,3,31,-1,0,25:00,10,1,-1,0,02:00
+908,Europe/Sofia,1980,Bulg,120,60,4,1,6,0,25:00,9,29,-1,0,02:00
+909,Europe/Sofia,1981,Bulg,120,60,4,1,6,0,25:00,9,27,-1,0,03:00
+910,Europe/Sofia,1982,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+911,Europe/Sofia,1991,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
+912,Europe/Sofia,1996,E-Eur,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
+913,Europe/Sofia,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+914,Europe/Prague,1970,Czech,60,0,4,9,-1,0,03:00,10,1,0,0,03:00
+915,Europe/Prague,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+916,Europe/Prague,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+917,Europe/Prague,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+918,Europe/Copenhagen,1970,Denmark,60,0,5,9,-1,0,03:00,8,8,-1,0,03:00
+919,Europe/Copenhagen,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+920,Europe/Copenhagen,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+921,Europe/Copenhagen,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+922,Atlantic/Faroe,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+923,Atlantic/Faroe,1981,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+924,Atlantic/Faroe,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+925,America/Danmarkshavn,1970,,-180,0,0,0,0,0,00:00,0,0,0,0,00:00
+926,America/Danmarkshavn,1980,EU,-180,60,4,1,0,0,1:00,9,-1,0,0,1:00
+927,America/Danmarkshavn,1981,EU,-180,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+928,America/Danmarkshavn,1996,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+929,America/Scoresbysund,1970,,-120,0,0,0,0,0,00:00,0,0,0,0,00:00
+930,America/Scoresbysund,1980,C-Eur,-120,60,4,1,0,0,00:00,9,-1,0,0,00:00
+931,America/Scoresbysund,1981,EU,-60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+932,America/Scoresbysund,1996,EU,-60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+933,America/Godthab,1970,,-180,0,0,0,0,0,00:00,0,0,0,0,00:00
+934,America/Godthab,1980,EU,-180,60,4,1,0,0,1:00,9,-1,0,0,1:00
+935,America/Godthab,1981,EU,-180,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+936,America/Godthab,1996,EU,-180,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+937,America/Thule,1970,Thule,-240,0,0,0,0,0,00:00,0,0,0,0,00:00
+938,America/Thule,1991,Thule,-240,60,3,-1,0,0,-2:00,9,-1,0,0,-3:00
+939,America/Thule,1993,Thule,-240,60,4,1,0,0,-2:00,10,-1,0,0,-3:00
+940,America/Thule,2007,Thule,-240,60,3,8,0,0,-2:00,11,1,0,0,-3:00
+941,Europe/Tallinn,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+942,Europe/Tallinn,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+943,Europe/Tallinn,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+944,Europe/Tallinn,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+945,Europe/Tallinn,1989,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+946,Europe/Tallinn,1996,C-Eur,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
+947,Europe/Tallinn,1998,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+948,Europe/Tallinn,1999,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+949,Europe/Tallinn,2002,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+950,Europe/Helsinki,1970,Finland,120,60,4,3,-1,0,02:00,10,3,-1,0,01:00
+951,Europe/Helsinki,1981,Finland,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+952,Europe/Helsinki,1982,Finland,120,0,3,-1,0,0,04:00,9,-1,0,0,04:00
+953,Europe/Helsinki,1983,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+954,Europe/Helsinki,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+955,Europe/Paris,1970,France,60,120,4,2,-1,0,03:00,9,16,-1,0,03:00
+956,Europe/Paris,1976,France,60,60,3,28,-1,0,02:00,9,26,-1,0,01:00
+957,Europe/Paris,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+958,Europe/Paris,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
+959,Europe/Paris,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+960,Europe/Paris,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+961,Europe/Paris,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+962,Europe/Berlin,1970,Germany,60,0,4,10,-1,0,03:00,10,1,0,0,03:00
+963,Europe/Berlin,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+964,Europe/Berlin,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+965,Europe/Berlin,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+966,Europe/Gibraltar,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+967,Europe/Gibraltar,1982,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+968,Europe/Gibraltar,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+969,Europe/Athens,1970,Greece,120,60,7,1,-1,0,02:00,11,2,-1,0,01:00
+970,Europe/Athens,1975,Greece,120,60,4,12,-1,0,02:00,11,26,-1,0,02:00
+971,Europe/Athens,1976,Greece,120,60,4,11,-1,0,04:00,10,10,-1,0,04:00
+972,Europe/Athens,1977,Greece,120,60,4,1,0,0,04:00,9,26,-1,0,04:00
+973,Europe/Athens,1978,Greece,120,60,4,1,0,0,04:00,9,24,-1,0,05:00
+974,Europe/Athens,1979,Greece,120,60,4,1,-1,0,11:00,9,29,-1,0,03:00
+975,Europe/Athens,1980,Greece,120,60,4,1,-1,0,02:00,9,28,-1,0,01:00
+976,Europe/Athens,1981,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+977,Europe/Athens,1996,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+978,Europe/Budapest,1970,Hungary,60,60,6,1,0,0,02:00,9,-1,0,0,03:00
+979,Europe/Budapest,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+980,Europe/Budapest,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+981,Europe/Budapest,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+982,Atlantic/Reykjavik,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+983,Europe/Rome,1970,Italy,60,60,5,31,-1,0,01:00,9,-1,0,0,00:00
+984,Europe/Rome,1971,Italy,60,60,5,22,0,0,01:00,9,-1,0,0,01:00
+985,Europe/Rome,1972,Italy,60,60,5,22,0,0,01:00,10,1,-1,0,00:00
+986,Europe/Rome,1973,Italy,60,60,6,3,-1,0,01:00,9,-1,0,0,00:00
+987,Europe/Rome,1974,Italy,60,60,5,26,-1,0,01:00,9,-1,0,0,00:00
+988,Europe/Rome,1975,Italy,60,60,6,1,-1,0,01:00,9,-1,0,0,01:00
+989,Europe/Rome,1976,Italy,60,60,5,30,-1,0,01:00,9,-1,0,0,01:00
+990,Europe/Rome,1977,Italy,60,60,5,22,0,0,01:00,9,-1,0,0,01:00
+991,Europe/Rome,1978,Italy,60,60,5,22,0,0,01:00,10,1,-1,0,01:00
+992,Europe/Rome,1979,Italy,60,60,5,22,0,0,01:00,9,30,-1,0,01:00
+993,Europe/Rome,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+994,Europe/Rome,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+995,Europe/Rome,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+996,Europe/Riga,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+997,Europe/Riga,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+998,Europe/Riga,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+999,Europe/Riga,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1000,Europe/Riga,1989,Latvia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1001,Europe/Riga,1996,Latvia,120,0,3,-1,0,0,04:00,9,-1,0,0,04:00
+1002,Europe/Riga,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1003,Europe/Riga,2000,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+1004,Europe/Riga,2001,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1005,Europe/Vilnius,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+1006,Europe/Vilnius,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+1007,Europe/Vilnius,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+1008,Europe/Vilnius,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1009,Europe/Vilnius,1991,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1010,Europe/Vilnius,1996,C-Eur,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
+1011,Europe/Vilnius,1998,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1012,Europe/Vilnius,1999,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+1013,Europe/Vilnius,2003,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1014,Europe/Luxembourg,1970,Belgium,60,0,5,19,-1,0,03:00,10,7,-1,0,03:00
+1015,Europe/Luxembourg,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1016,Europe/Luxembourg,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
+1017,Europe/Luxembourg,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1018,Europe/Luxembourg,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1019,Europe/Luxembourg,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1020,Europe/Malta,1970,Italy,60,60,5,31,-1,0,01:00,9,-1,0,0,00:00
+1021,Europe/Malta,1971,Italy,60,60,5,22,0,0,01:00,9,-1,0,0,01:00
+1022,Europe/Malta,1972,Italy,60,60,5,22,0,0,01:00,10,1,-1,0,00:00
+1023,Europe/Malta,1973,Malta,60,60,3,31,-1,0,01:00,9,29,-1,0,01:00
+1024,Europe/Malta,1974,Malta,60,60,4,21,-1,0,01:00,9,16,-1,0,01:00
+1025,Europe/Malta,1975,Malta,60,60,4,15,0,0,03:00,9,15,0,0,02:00
+1026,Europe/Malta,1980,Malta,60,0,3,31,-1,0,03:00,9,15,0,0,02:00
+1027,Europe/Malta,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1028,Europe/Malta,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1029,Europe/Chisinau,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+1030,Europe/Chisinau,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+1031,Europe/Chisinau,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+1032,Europe/Chisinau,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1033,Europe/Chisinau,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+1034,Europe/Chisinau,1991,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1035,Europe/Chisinau,1992,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
+1036,Europe/Chisinau,1996,E-Eur,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
+1037,Europe/Chisinau,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1038,Europe/Monaco,1970,France,60,120,4,2,-1,0,03:00,9,16,-1,0,03:00
+1039,Europe/Monaco,1976,France,60,60,3,28,-1,0,02:00,9,26,-1,0,01:00
+1040,Europe/Monaco,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1041,Europe/Monaco,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
+1042,Europe/Monaco,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1043,Europe/Monaco,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1044,Europe/Monaco,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1045,Europe/Amsterdam,1970,Neth,60,0,4,2,-1,0,03:00,9,16,-1,0,03:00
+1046,Europe/Amsterdam,1977,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1047,Europe/Amsterdam,1978,EU,60,60,4,1,0,0,1:00,10,1,-1,0,1:00
+1048,Europe/Amsterdam,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1049,Europe/Amsterdam,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1050,Europe/Amsterdam,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1051,Europe/Oslo,1970,Norway,60,0,4,25,-1,0,03:00,9,15,0,0,03:00
+1052,Europe/Oslo,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1053,Europe/Oslo,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1054,Europe/Oslo,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1055,Europe/Warsaw,1970,Poland,60,0,5,-1,0,0,02:00,9,-1,0,0,02:00
+1056,Europe/Warsaw,1977,W-Eur,60,60,4,1,0,0,02:00,9,-1,0,0,02:00
+1057,Europe/Warsaw,1978,W-Eur,60,60,4,1,0,0,02:00,10,1,-1,0,02:00
+1058,Europe/Warsaw,1979,W-Eur,60,60,4,1,0,0,02:00,9,-1,0,0,02:00
+1059,Europe/Warsaw,1981,W-Eur,60,60,3,-1,0,0,02:00,9,-1,0,0,02:00
+1060,Europe/Warsaw,1988,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1061,Europe/Warsaw,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1062,Europe/Lisbon,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+1063,Europe/Lisbon,1976,Port,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+1064,Europe/Lisbon,1977,Port,0,60,3,27,-1,0,00:00,9,25,-1,0,00:00
+1065,Europe/Lisbon,1978,Port,0,60,4,1,0,0,00:00,10,1,-1,0,00:00
+1066,Europe/Lisbon,1979,Port,0,60,4,1,0,0,00:00,9,-1,0,0,01:00
+1067,Europe/Lisbon,1980,Port,0,60,3,-1,0,0,00:00,9,-1,0,0,01:00
+1068,Europe/Lisbon,1981,Port,0,60,3,-1,0,0,01:00,9,-1,0,0,01:00
+1069,Europe/Lisbon,1983,W-Eur,0,60,3,-1,0,0,01:00,9,-1,0,0,01:00
+1070,Europe/Lisbon,1992,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1071,Europe/Lisbon,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1072,Atlantic/Azores,1970,Port,-60,60,4,1,0,0,01:00,10,1,0,0,01:00
+1073,Atlantic/Azores,1977,Port,-60,60,3,27,-1,0,-1:00,9,25,-1,0,-1:00
+1074,Atlantic/Azores,1978,Port,-60,60,4,1,0,0,-1:00,10,1,-1,0,-1:00
+1075,Atlantic/Azores,1979,Port,-60,60,4,1,0,0,-1:00,9,-1,0,0,00:00
+1076,Atlantic/Azores,1980,Port,-60,60,3,-1,0,0,-1:00,9,-1,0,0,00:00
+1077,Atlantic/Azores,1981,Port,-60,60,3,-1,0,0,00:00,9,-1,0,0,00:00
+1078,Atlantic/Azores,1983,W-Eur,-60,60,3,-1,0,0,00:00,9,-1,0,0,00:00
+1079,Atlantic/Azores,1992,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1080,Atlantic/Azores,1993,EU,-60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1081,Atlantic/Azores,1996,EU,-60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1082,Atlantic/Madeira,1970,Port,0,60,4,1,0,0,02:00,10,1,0,0,02:00
+1083,Atlantic/Madeira,1977,Port,0,60,3,27,-1,0,00:00,9,25,-1,0,00:00
+1084,Atlantic/Madeira,1978,Port,0,60,4,1,0,0,00:00,10,1,-1,0,00:00
+1085,Atlantic/Madeira,1979,Port,0,60,4,1,0,0,00:00,9,-1,0,0,01:00
+1086,Atlantic/Madeira,1980,Port,0,60,3,-1,0,0,00:00,9,-1,0,0,01:00
+1087,Atlantic/Madeira,1981,Port,0,60,3,-1,0,0,01:00,9,-1,0,0,01:00
+1088,Atlantic/Madeira,1983,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1089,Atlantic/Madeira,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1090,Europe/Bucharest,1970,Romania,120,60,4,2,0,0,02:00,10,1,0,0,02:00
+1091,Europe/Bucharest,1979,Romania,120,60,5,27,-1,0,02:00,9,-1,0,0,01:00
+1092,Europe/Bucharest,1980,Romania,120,60,4,5,-1,0,25:00,9,-1,0,0,02:00
+1093,Europe/Bucharest,1981,C-Eur,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1094,Europe/Bucharest,1991,Romania,120,60,3,-1,0,0,02:00,9,-1,0,0,02:00
+1095,Europe/Bucharest,1993,Romania,120,0,3,-1,0,0,02:00,9,-1,0,0,02:00
+1096,Europe/Bucharest,1994,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
+1097,Europe/Bucharest,1996,E-Eur,120,60,3,-1,0,0,02:00,10,-1,0,0,01:00
+1098,Europe/Bucharest,1997,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1099,Europe/Kaliningrad,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+1100,Europe/Kaliningrad,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+1101,Europe/Kaliningrad,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+1102,Europe/Kaliningrad,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1103,Europe/Kaliningrad,1991,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1104,Europe/Kaliningrad,1992,Russia,120,60,3,-1,6,0,25:00,9,-1,6,0,24:00
+1105,Europe/Kaliningrad,1993,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1106,Europe/Kaliningrad,1996,Russia,120,60,3,-1,0,0,04:00,10,-1,0,0,04:00
+1107,Europe/Kaliningrad,2010,Russia,120,0,3,-1,0,0,04:00,10,-1,0,0,04:00
+1108,Europe/Kaliningrad,2011,,180,0,0,0,0,0,00:00,0,0,0,0,00:00
+1109,Europe/Moscow,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+1110,Europe/Moscow,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+1111,Europe/Moscow,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+1112,Europe/Moscow,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1113,Europe/Moscow,1991,Russia,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1114,Europe/Moscow,1992,Russia,180,60,3,-1,6,0,26:00,9,-1,6,0,25:00
+1115,Europe/Moscow,1993,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1116,Europe/Moscow,1996,Russia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
+1117,Europe/Moscow,2010,Russia,180,0,3,-1,0,0,05:00,10,-1,0,0,05:00
+1118,Europe/Moscow,2011,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+1119,Europe/Volgograd,1970,Russia,240,60,9,1,-1,0,04:00,10,1,-1,0,03:00
+1120,Europe/Volgograd,1981,Russia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
+1121,Europe/Volgograd,1984,Russia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
+1122,Europe/Volgograd,1985,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+1123,Europe/Volgograd,1989,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1124,Europe/Volgograd,1991,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+1125,Europe/Volgograd,1992,Russia,180,60,3,-1,6,0,26:00,9,-1,6,0,25:00
+1126,Europe/Volgograd,1993,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1127,Europe/Volgograd,1996,Russia,180,60,3,-1,0,0,05:00,10,-1,0,0,05:00
+1128,Europe/Volgograd,2010,Russia,180,0,3,-1,0,0,05:00,10,-1,0,0,05:00
+1129,Europe/Volgograd,2011,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+1130,Europe/Samara,1970,Russia,240,60,9,1,-1,0,04:00,10,1,-1,0,03:00
+1131,Europe/Samara,1981,Russia,240,60,4,1,-1,0,04:00,10,1,-1,0,03:00
+1132,Europe/Samara,1984,Russia,240,60,4,1,-1,0,04:00,9,-1,0,0,06:00
+1133,Europe/Samara,1985,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+1134,Europe/Samara,1989,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1135,Europe/Samara,1991,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+1136,Europe/Samara,1992,Russia,240,60,3,-1,6,0,27:00,9,-1,6,0,26:00
+1137,Europe/Samara,1993,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+1138,Europe/Samara,1996,Russia,240,60,3,-1,0,0,06:00,10,-1,0,0,06:00
+1139,Europe/Samara,2010,Russia,180,0,3,-1,0,0,05:00,10,-1,0,0,05:00
+1140,Europe/Samara,2011,,240,0,0,0,0,0,00:00,0,0,0,0,00:00
+1141,Asia/Yekaterinburg,1970,Russia,300,60,9,1,-1,0,05:00,10,1,-1,0,04:00
+1142,Asia/Yekaterinburg,1981,Russia,300,60,4,1,-1,0,05:00,10,1,-1,0,04:00
+1143,Asia/Yekaterinburg,1984,Russia,300,60,4,1,-1,0,05:00,9,-1,0,0,07:00
+1144,Asia/Yekaterinburg,1985,Russia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+1145,Asia/Yekaterinburg,1991,Russia,240,60,3,-1,0,0,06:00,9,-1,0,0,06:00
+1146,Asia/Yekaterinburg,1992,Russia,300,60,3,-1,6,0,28:00,9,-1,6,0,27:00
+1147,Asia/Yekaterinburg,1993,Russia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+1148,Asia/Yekaterinburg,1996,Russia,300,60,3,-1,0,0,07:00,10,-1,0,0,07:00
+1149,Asia/Yekaterinburg,2010,Russia,300,0,3,-1,0,0,07:00,10,-1,0,0,07:00
+1150,Asia/Yekaterinburg,2011,,360,0,0,0,0,0,00:00,0,0,0,0,00:00
+1151,Asia/Omsk,1970,Russia,360,60,9,1,-1,0,06:00,10,1,-1,0,05:00
+1152,Asia/Omsk,1981,Russia,360,60,4,1,-1,0,06:00,10,1,-1,0,05:00
+1153,Asia/Omsk,1984,Russia,360,60,4,1,-1,0,06:00,9,-1,0,0,08:00
+1154,Asia/Omsk,1985,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+1155,Asia/Omsk,1991,Russia,300,60,3,-1,0,0,07:00,9,-1,0,0,07:00
+1156,Asia/Omsk,1992,Russia,360,60,3,-1,6,0,29:00,9,-1,6,0,28:00
+1157,Asia/Omsk,1993,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+1158,Asia/Omsk,1996,Russia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
+1159,Asia/Omsk,2010,Russia,360,0,3,-1,0,0,08:00,10,-1,0,0,08:00
+1160,Asia/Omsk,2011,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+1161,Asia/Novosibirsk,1970,Russia,420,60,9,1,-1,0,07:00,10,1,-1,0,06:00
+1162,Asia/Novosibirsk,1981,Russia,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
+1163,Asia/Novosibirsk,1984,Russia,420,60,4,1,-1,0,07:00,9,-1,0,0,09:00
+1164,Asia/Novosibirsk,1985,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
+1165,Asia/Novosibirsk,1991,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+1166,Asia/Novosibirsk,1992,Russia,420,60,3,-1,6,0,30:00,9,-1,6,0,29:00
+1167,Asia/Novosibirsk,1993,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+1168,Asia/Novosibirsk,1996,Russia,360,60,3,-1,0,0,08:00,10,-1,0,0,08:00
+1169,Asia/Novosibirsk,2010,Russia,360,0,3,-1,0,0,08:00,10,-1,0,0,08:00
+1170,Asia/Novosibirsk,2011,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+1171,Asia/Novokuznetsk,1970,Russia,420,60,9,1,-1,0,07:00,10,1,-1,0,06:00
+1172,Asia/Novokuznetsk,1981,Russia,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
+1173,Asia/Novokuznetsk,1984,Russia,420,60,4,1,-1,0,07:00,9,-1,0,0,09:00
+1174,Asia/Novokuznetsk,1985,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
+1175,Asia/Novokuznetsk,1991,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+1176,Asia/Novokuznetsk,1992,Russia,420,60,3,-1,6,0,30:00,9,-1,6,0,29:00
+1177,Asia/Novokuznetsk,1993,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
+1178,Asia/Novokuznetsk,1996,Russia,420,60,3,-1,0,0,09:00,10,-1,0,0,09:00
+1179,Asia/Novokuznetsk,2010,Russia,360,0,3,-1,0,0,08:00,10,-1,0,0,08:00
+1180,Asia/Novokuznetsk,2011,,420,0,0,0,0,0,00:00,0,0,0,0,00:00
+1181,Asia/Krasnoyarsk,1970,Russia,420,60,9,1,-1,0,07:00,10,1,-1,0,06:00
+1182,Asia/Krasnoyarsk,1981,Russia,420,60,4,1,-1,0,07:00,10,1,-1,0,06:00
+1183,Asia/Krasnoyarsk,1984,Russia,420,60,4,1,-1,0,07:00,9,-1,0,0,09:00
+1184,Asia/Krasnoyarsk,1985,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
+1185,Asia/Krasnoyarsk,1991,Russia,360,60,3,-1,0,0,08:00,9,-1,0,0,08:00
+1186,Asia/Krasnoyarsk,1992,Russia,420,60,3,-1,6,0,30:00,9,-1,6,0,29:00
+1187,Asia/Krasnoyarsk,1993,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
+1188,Asia/Krasnoyarsk,1996,Russia,420,60,3,-1,0,0,09:00,10,-1,0,0,09:00
+1189,Asia/Krasnoyarsk,2010,Russia,420,0,3,-1,0,0,09:00,10,-1,0,0,09:00
+1190,Asia/Krasnoyarsk,2011,,480,0,0,0,0,0,00:00,0,0,0,0,00:00
+1191,Asia/Irkutsk,1970,Russia,480,60,9,1,-1,0,08:00,10,1,-1,0,07:00
+1192,Asia/Irkutsk,1981,Russia,480,60,4,1,-1,0,08:00,10,1,-1,0,07:00
+1193,Asia/Irkutsk,1984,Russia,480,60,4,1,-1,0,08:00,9,-1,0,0,10:00
+1194,Asia/Irkutsk,1985,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
+1195,Asia/Irkutsk,1991,Russia,420,60,3,-1,0,0,09:00,9,-1,0,0,09:00
+1196,Asia/Irkutsk,1992,Russia,480,60,3,-1,6,0,31:00,9,-1,6,0,30:00
+1197,Asia/Irkutsk,1993,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
+1198,Asia/Irkutsk,1996,Russia,480,60,3,-1,0,0,10:00,10,-1,0,0,10:00
+1199,Asia/Irkutsk,2010,Russia,480,0,3,-1,0,0,10:00,10,-1,0,0,10:00
+1200,Asia/Irkutsk,2011,,540,0,0,0,0,0,00:00,0,0,0,0,00:00
+1201,Asia/Yakutsk,1970,Russia,540,60,9,1,-1,0,09:00,10,1,-1,0,08:00
+1202,Asia/Yakutsk,1981,Russia,540,60,4,1,-1,0,09:00,10,1,-1,0,08:00
+1203,Asia/Yakutsk,1984,Russia,540,60,4,1,-1,0,09:00,9,-1,0,0,11:00
+1204,Asia/Yakutsk,1985,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
+1205,Asia/Yakutsk,1991,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
+1206,Asia/Yakutsk,1992,Russia,540,60,3,-1,6,0,32:00,9,-1,6,0,31:00
+1207,Asia/Yakutsk,1993,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
+1208,Asia/Yakutsk,1996,Russia,540,60,3,-1,0,0,11:00,10,-1,0,0,11:00
+1209,Asia/Yakutsk,2010,Russia,540,0,3,-1,0,0,11:00,10,-1,0,0,11:00
+1210,Asia/Yakutsk,2011,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+1211,Asia/Vladivostok,1970,Russia,600,60,9,1,-1,0,10:00,10,1,-1,0,09:00
+1212,Asia/Vladivostok,1981,Russia,600,60,4,1,-1,0,10:00,10,1,-1,0,09:00
+1213,Asia/Vladivostok,1984,Russia,600,60,4,1,-1,0,10:00,9,-1,0,0,12:00
+1214,Asia/Vladivostok,1985,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
+1215,Asia/Vladivostok,1991,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
+1216,Asia/Vladivostok,1992,Russia,600,60,3,-1,6,0,33:00,9,-1,6,0,32:00
+1217,Asia/Vladivostok,1993,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
+1218,Asia/Vladivostok,1996,Russia,600,60,3,-1,0,0,12:00,10,-1,0,0,12:00
+1219,Asia/Vladivostok,2010,Russia,600,0,3,-1,0,0,12:00,10,-1,0,0,12:00
+1220,Asia/Vladivostok,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+1221,Asia/Khandyga,1970,Russia,540,60,9,1,-1,0,09:00,10,1,-1,0,08:00
+1222,Asia/Khandyga,1981,Russia,540,60,4,1,-1,0,09:00,10,1,-1,0,08:00
+1223,Asia/Khandyga,1984,Russia,540,60,4,1,-1,0,09:00,9,-1,0,0,11:00
+1224,Asia/Khandyga,1985,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
+1225,Asia/Khandyga,1991,Russia,480,60,3,-1,0,0,10:00,9,-1,0,0,10:00
+1226,Asia/Khandyga,1992,Russia,540,60,3,-1,6,0,32:00,9,-1,6,0,31:00
+1227,Asia/Khandyga,1993,Russia,540,60,3,-1,0,0,11:00,9,-1,0,0,11:00
+1228,Asia/Khandyga,1996,Russia,540,60,3,-1,0,0,11:00,10,-1,0,0,11:00
+1229,Asia/Khandyga,2004,Russia,600,60,3,-1,0,0,12:00,10,-1,0,0,12:00
+1230,Asia/Khandyga,2010,Russia,600,0,3,-1,0,0,12:00,10,-1,0,0,12:00
+1231,Asia/Khandyga,2011,,600,0,0,0,0,0,00:00,0,0,0,0,00:00
+1232,Asia/Sakhalin,1970,Russia,660,60,9,1,-1,0,11:00,10,1,-1,0,10:00
+1233,Asia/Sakhalin,1981,Russia,660,60,4,1,-1,0,11:00,10,1,-1,0,10:00
+1234,Asia/Sakhalin,1984,Russia,660,60,4,1,-1,0,11:00,9,-1,0,0,13:00
+1235,Asia/Sakhalin,1985,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1236,Asia/Sakhalin,1991,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
+1237,Asia/Sakhalin,1992,Russia,660,60,3,-1,6,0,34:00,9,-1,6,0,33:00
+1238,Asia/Sakhalin,1993,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1239,Asia/Sakhalin,1996,Russia,660,60,3,-1,0,0,13:00,10,-1,0,0,13:00
+1240,Asia/Sakhalin,1997,Russia,600,60,3,-1,0,0,12:00,10,-1,0,0,12:00
+1241,Asia/Sakhalin,2010,Russia,600,0,3,-1,0,0,12:00,10,-1,0,0,12:00
+1242,Asia/Sakhalin,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+1243,Asia/Magadan,1970,Russia,660,60,9,1,-1,0,11:00,10,1,-1,0,10:00
+1244,Asia/Magadan,1981,Russia,660,60,4,1,-1,0,11:00,10,1,-1,0,10:00
+1245,Asia/Magadan,1984,Russia,660,60,4,1,-1,0,11:00,9,-1,0,0,13:00
+1246,Asia/Magadan,1985,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1247,Asia/Magadan,1991,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
+1248,Asia/Magadan,1992,Russia,660,60,3,-1,6,0,34:00,9,-1,6,0,33:00
+1249,Asia/Magadan,1993,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1250,Asia/Magadan,1996,Russia,660,60,3,-1,0,0,13:00,10,-1,0,0,13:00
+1251,Asia/Magadan,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
+1252,Asia/Magadan,2011,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+1253,Asia/Ust-Nera,1970,Russia,540,60,9,1,-1,0,09:00,10,1,-1,0,08:00
+1254,Asia/Ust-Nera,1981,Russia,660,60,4,1,-1,0,11:00,10,1,-1,0,10:00
+1255,Asia/Ust-Nera,1984,Russia,660,60,4,1,-1,0,11:00,9,-1,0,0,13:00
+1256,Asia/Ust-Nera,1985,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1257,Asia/Ust-Nera,1991,Russia,600,60,3,-1,0,0,12:00,9,-1,0,0,12:00
+1258,Asia/Ust-Nera,1992,Russia,660,60,3,-1,6,0,34:00,9,-1,6,0,33:00
+1259,Asia/Ust-Nera,1993,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1260,Asia/Ust-Nera,1996,Russia,660,60,3,-1,0,0,13:00,10,-1,0,0,13:00
+1261,Asia/Ust-Nera,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
+1262,Asia/Ust-Nera,2011,,660,0,0,0,0,0,00:00,0,0,0,0,00:00
+1263,Asia/Kamchatka,1970,Russia,720,60,9,1,-1,0,12:00,10,1,-1,0,11:00
+1264,Asia/Kamchatka,1981,Russia,720,60,4,1,-1,0,12:00,10,1,-1,0,11:00
+1265,Asia/Kamchatka,1984,Russia,720,60,4,1,-1,0,12:00,9,-1,0,0,14:00
+1266,Asia/Kamchatka,1985,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
+1267,Asia/Kamchatka,1991,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1268,Asia/Kamchatka,1992,Russia,720,60,3,-1,6,0,35:00,9,-1,6,0,34:00
+1269,Asia/Kamchatka,1993,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
+1270,Asia/Kamchatka,1996,Russia,720,60,3,-1,0,0,14:00,10,-1,0,0,14:00
+1271,Asia/Kamchatka,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
+1272,Asia/Kamchatka,2011,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+1273,Asia/Anadyr,1970,Russia,780,60,9,1,-1,0,13:00,10,1,-1,0,12:00
+1274,Asia/Anadyr,1981,Russia,780,60,4,1,-1,0,13:00,10,1,-1,0,12:00
+1275,Asia/Anadyr,1982,Russia,720,60,4,1,-1,0,12:00,10,1,-1,0,11:00
+1276,Asia/Anadyr,1984,Russia,720,60,4,1,-1,0,12:00,9,-1,0,0,14:00
+1277,Asia/Anadyr,1985,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
+1278,Asia/Anadyr,1991,Russia,660,60,3,-1,0,0,13:00,9,-1,0,0,13:00
+1279,Asia/Anadyr,1992,Russia,720,60,3,-1,6,0,35:00,9,-1,6,0,34:00
+1280,Asia/Anadyr,1993,Russia,720,60,3,-1,0,0,14:00,9,-1,0,0,14:00
+1281,Asia/Anadyr,1996,Russia,720,60,3,-1,0,0,14:00,10,-1,0,0,14:00
+1282,Asia/Anadyr,2010,Russia,660,0,3,-1,0,0,13:00,10,-1,0,0,13:00
+1283,Asia/Anadyr,2011,,720,0,0,0,0,0,00:00,0,0,0,0,00:00
+1284,Europe/Belgrade,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+1285,Europe/Belgrade,1982,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1286,Europe/Belgrade,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1287,Europe/Madrid,1970,Spain,60,60,4,30,-1,0,24:00,9,30,-1,0,01:00
+1288,Europe/Madrid,1974,Spain,60,60,4,13,6,0,24:00,10,1,0,0,01:00
+1289,Europe/Madrid,1976,Spain,60,60,3,27,-1,0,24:00,9,-1,0,0,01:00
+1290,Europe/Madrid,1977,Spain,60,60,4,2,-1,0,24:00,9,-1,0,0,01:00
+1291,Europe/Madrid,1978,Spain,60,60,4,2,-1,0,24:00,10,1,-1,0,01:00
+1292,Europe/Madrid,1979,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1293,Europe/Madrid,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1294,Europe/Madrid,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1295,Africa/Ceuta,1970,SpainAfrica,0,60,6,3,-1,0,12:00,10,1,-1,0,-1:00
+1296,Africa/Ceuta,1974,SpainAfrica,0,60,6,24,-1,0,00:00,9,1,-1,0,-1:00
+1297,Africa/Ceuta,1976,SpainAfrica,0,60,5,1,-1,0,00:00,8,1,-1,0,-1:00
+1298,Africa/Ceuta,1977,SpainAfrica,0,60,5,1,-1,0,00:00,9,28,-1,0,-1:00
+1299,Africa/Ceuta,1978,SpainAfrica,0,60,6,1,-1,0,00:00,8,4,-1,0,-1:00
+1300,Africa/Ceuta,1979,SpainAfrica,0,0,6,1,-1,0,00:00,8,4,-1,0,-1:00
+1301,Africa/Ceuta,1984,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+1302,Africa/Ceuta,1986,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1303,Africa/Ceuta,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1304,Atlantic/Canary,1970,,0,0,0,0,0,0,00:00,0,0,0,0,00:00
+1305,Atlantic/Canary,1980,EU,0,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1306,Atlantic/Canary,1981,EU,0,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1307,Atlantic/Canary,1996,EU,0,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1308,Europe/Stockholm,1970,,60,0,0,0,0,0,00:00,0,0,0,0,00:00
+1309,Europe/Stockholm,1980,EU,60,60,4,1,0,0,1:00,9,-1,0,0,1:00
+1310,Europe/Stockholm,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1311,Europe/Stockholm,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1312,Europe/Zurich,1970,Swiss,60,0,5,1,1,0,02:00,10,1,1,0,02:00
+1313,Europe/Zurich,1981,EU,60,60,3,-1,0,0,1:00,9,-1,0,0,1:00
+1314,Europe/Zurich,1996,EU,60,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1315,Europe/Istanbul,1970,Turkey,120,60,5,2,0,0,02:00,10,2,0,0,01:00
+1316,Europe/Istanbul,1973,Turkey,120,60,6,3,-1,0,03:00,11,4,-1,0,04:00
+1317,Europe/Istanbul,1974,Turkey,120,60,3,31,-1,0,04:00,11,3,-1,0,06:00
+1318,Europe/Istanbul,1975,Turkey,120,60,3,30,-1,0,02:00,10,-1,0,0,01:00
+1319,Europe/Istanbul,1976,Turkey,120,60,6,1,-1,0,02:00,10,-1,0,0,01:00
+1320,Europe/Istanbul,1977,Turkey,120,60,4,1,0,0,02:00,10,16,-1,0,01:00
+1321,Europe/Istanbul,1978,Turkey,180,60,4,1,0,0,03:00,1,1,-1,0,14:00
+1322,Europe/Istanbul,1979,Turkey,180,60,4,1,0,0,06:00,10,11,1,0,02:00
+1323,Europe/Istanbul,1981,Turkey,180,60,3,-1,0,0,06:00,10,11,1,0,02:00
+1324,Europe/Istanbul,1983,Turkey,180,60,7,31,-1,0,03:00,10,2,-1,0,02:00
+1325,Europe/Istanbul,1985,Turkey,120,60,4,20,-1,0,02:00,9,28,-1,0,01:00
+1326,Europe/Istanbul,1986,Turkey,120,60,3,-1,0,0,04:00,9,-1,0,0,04:00
+1327,Europe/Istanbul,1991,Turkey,120,60,3,-1,0,0,03:00,9,-1,0,0,03:00
+1328,Europe/Istanbul,1996,Turkey,120,60,3,-1,0,0,03:00,10,-1,0,0,03:00
+1329,Europe/Istanbul,2006,Turkey,120,0,3,-1,0,0,03:00,10,-1,0,0,03:00
+1330,Europe/Istanbul,2007,EU,120,60,3,-1,0,0,1:00,10,-1,0,0,1:00
+1331,Europe/Kiev,1970,Russia,180,60,9,1,-1,0,03:00,10,1,-1,0,02:00
+1332,Europe/Kiev,1981,Russia,180,60,4,1,-1,0,03:00,10,1,-1,0,02:00
+1333,Europe/Kiev,1984,Russia,180,60,4,1,-1,0,03:00,9,-1,0,0,05:00
+1334,Europe/Kiev,1985,Russia,180,60,3,-1,0,0,05:00,9,-1,0,0,05:00
+1335,Europe/Kiev,1990,,120,0,0,0,0,0,00:00,0,0,0,0,00:00
+1336,Europe/Kiev,1992,E-Eur,120,60,3,-1,0,0,02:00,9,-1,0,0,01:00
+1337,Europe/Kiev,1995,EU,120,60,3,-1,0,0,1:00,9,-1,0,0,1:00