This commit is contained in:
2025-03-10 16:48:59 +08:00
commit 396980136a
47 changed files with 3375 additions and 0 deletions

6
a/bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

5
a/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

125
a/bootstrap.override.css vendored Normal file
View File

@ -0,0 +1,125 @@
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=PT+Mono&display=swap');
:root {
--bs-font-sans-serif: 'Montserrat', sans-serif;
--bs-font-monospace: 'PT Mono', monospace;
}
.col > h3 {
color: var(--bs-secondary-color);
font-size: 1.3rem;
margin-bottom: 1.3rem;
}
.cp2cb {
cursor: pointer;
}
.dropdown-item {
font-size: 0.9rem;
}
.ex > h6 {
font-weight: 500;
color: var(--bs-tertiary-color);
}
.form-control::placeholder {
color: #c2c2d9;
}
.form-label {
margin-bottom: 0.125rem;
}
.form-range {
height: 2.5rem;
}
.hint {
font-size: 0.875rem;
margin-top: 0.2rem;
margin-bottom: 0;
}
.range span.show-value {
display: block;
min-width: 3.5rem;
text-align: center;
}
.x-small {
font-size: 0.8125rem;
}
body > main > .container > h2 {
color: var(--bs-primary);
margin: 2rem 0 1.5rem;
}
dl.list {
display: flex;
flex-flow: row wrap;
justify-content: space-between;
align-items: baseline;
}
dl.list dt {
flex-grow: 1;
width: 33%;
}
dl.list dd {
flex-grow: 2;
width: 66%;
}
pre {
background: var(--bs-secondary-bg);
font-size: 0.8125rem;
padding: 1rem;
}
textarea {
font-family: var(--bs-font-monospace);
height: 60vh;
white-space: pre;
}
#pb-memory, #pb-overlay {
height: 4px;
cursor: pointer;
}
pre#output[data-cmd] {
background-color: rgb(0, 0, 0);
color: rgba(170, 170, 170, 0.8);
}
.btn-motor {
font-size: 2.3rem;
--bs-btn-border-width: 0;
--bs-btn-padding-x: 0;
--bs-btn-padding-y: 0;
}
.navbar-nav {
--bs-nav-link-color: white;
}
[data-bs-theme=light] {
--bs-primary: rgb(76, 96, 216);
--bs-secondary: rgb(76, 96, 216);
--bs-tertiary-bg-rgb: 76, 96, 216;
}
[data-bs-theme=dark] {
--bs-primary: rgb(76, 96, 216);
--bs-secondary: rgb(138, 159, 208);
}
[data-bs-theme=dark] .btn-primary {
--bs-btn-bg: rgba(13, 110, 253, 0.5);
--bs-btn-border-color: rgba(13, 110, 253, 0.5);
}

16
a/logo.svg Normal file
View File

@ -0,0 +1,16 @@
<svg width="232" height="64" viewBox="0 0 232 64" xmlns="http://www.w3.org/2000/svg" style="background-color:transparent;" fill="#ffffff">
<g transform="matrix(1.3333333,0,0,-1.3333333,0,269.13333)">
<path d="m 19.092536,161.9099 -2.9415,-3.43102 1.572994,-1.34828 c 2.550878,-2.18732 5.677184,-3.2806 8.804272,-3.2806 3.126332,0 6.253161,1.09354 8.803537,3.27986 l 1.547984,1.32732 -2.9415,3.43102 -1.547984,-1.32732 c -3.397241,-2.91218 -8.327823,-2.9123 -11.724811,3.8e-4 z" />
<path d="m 119.62027,183.07744 c -1.15945,0 -2.08151,-0.28614 -2.74032,-0.85104 -0.63647,-0.54532 -1.09357,-1.19728 -1.35895,-1.9382 l -0.005,2.45824 h -4.27544 V 168.0588 h 4.27544 v 9.48392 c 0,0.33242 0.0708,0.62842 0.20963,0.87974 0.1396,0.25358 0.33073,0.47106 0.56749,0.64656 0.23852,0.1762 0.51119,0.30572 0.81022,0.38506 0.30354,0.0804 0.62037,0.121 0.94225,0.121 0.71731,0 1.22047,-0.21326 1.49539,-0.63406 0.28296,-0.4341 0.42662,-1.11842 0.42662,-2.03382 v -8.8484 h 4.27581 v 9.18014 c 0,1.8534 -0.3922,3.30358 -1.1655,4.31038 -0.77957,1.01382 -1.94265,1.52812 -3.45786,1.52812 z" />
<path d="m 102.09521,183.07744 c -1.09417,0 -2.08184,-0.1838 -2.935975,-0.54616 -0.85615,-0.36278 -1.58793,-0.88656 -2.17468,-1.55716 -0.58575,-0.66962 -1.03398,-1.48458 -1.331,-2.42258 -0.29601,-0.93422 -0.44611,-1.98918 -0.44611,-3.13532 0,-1.1642 0.15478,-2.23334 0.46009,-3.1776 0.30681,-0.9483 0.76933,-1.7635 1.37365,-2.4233 0.60433,-0.66082 1.35427,-1.18004 2.22875,-1.54284 0.872715,-0.36204 1.879265,-0.54542 2.991515,-0.54542 1.33142,0 2.53741,0.21654 3.58437,0.64362 1.04923,0.42858 1.91178,1.0338 2.56306,1.7988 l 0.0508,0.0588 -2.15923,2.69178 -0.0743,-0.0764 c -0.45344,-0.46726 -0.94969,-0.87268 -1.47443,-1.20486 -0.5162,-0.32664 -1.19643,-0.49208 -2.02095,-0.49208 -1.07282,0 -1.86704,0.27078 -2.36114,0.80506 -0.496615,0.53604 -0.748425,1.27472 -0.748425,2.19564 v 0.125 h 9.307385 v 1.30928 c 0,0.97944 -0.1268,1.93152 -0.3766,2.8286 -0.25082,0.90084 -0.65589,1.70618 -1.20448,2.39462 -0.54985,0.68918 -1.26733,1.24686 -2.13202,1.6561 -0.86569,0.409 -1.91535,0.6164 -3.12024,0.6164 z m 0.0831,-3.19858 c 0.79213,0 1.38471,-0.26106 1.76056,-0.77602 0.38213,-0.52448 0.57558,-1.22602 0.57558,-2.08494 v -0.1544 h -4.893305 v 0.1268 c 0,0.87448 0.2292,1.58366 0.681125,2.10664 0.44891,0.51896 1.08015,0.7819 1.87604,0.7819 z" />
<path d="m 87.438468,183.07744 c -0.95432,0 -1.813454,-0.26588 -2.55386,-0.79036 -0.690948,-0.48984 -1.155482,-1.11868 -1.383956,-1.8709 v 2.33026 H 79.22485 v -20.21132 h 4.275802 v 7.87158 c 0.11398,-0.3412 0.278698,-0.66668 0.491354,-0.96872 0.243036,-0.34698 0.543514,-0.65176 0.891498,-0.90584 0.346978,-0.25308 0.741392,-0.45288 1.17248,-0.59324 0.430838,-0.1406 0.89616,-0.21184 1.382484,-0.21184 1.86445,0 3.293182,0.6684 4.246748,1.98602 0.946538,1.30832 1.42625,3.22672 1.42625,5.70278 0,2.4758 -0.479828,4.39 -1.426616,5.68954 -0.953568,1.30858 -2.382182,1.97204 -4.246382,1.97204 z m -1.353062,-3.50236 c 0.741914,0 1.364476,-0.26412 1.850298,-0.78484 0.48733,-0.52274 0.734456,-1.23974 0.734456,-2.13128 v -2.51342 c 0,-0.89204 -0.24701,-1.6088 -0.734088,-2.13128 -0.48557,-0.52072 -1.108248,-0.78484 -1.850666,-0.78484 -0.749196,0 -1.376094,0.184 -1.86317,0.54762 -0.485572,0.36156 -0.721584,0.84714 -0.721584,1.4851 v 4.28058 c 0,0.63722 0.236012,1.12306 0.721584,1.4851 0.487578,0.3633 1.114478,0.54726 1.86317,0.54726 z" />
<path d="m 26.529036,186.38636 c -4.714606,0 -8.53616,-3.82156 -8.53616,-8.53616 0,-4.71436 3.821554,-8.53654 8.53616,-8.53654 4.714356,0 8.536531,3.82218 8.536531,8.53654 0,4.7146 -3.822175,8.53616 -8.536531,8.53616 z" />
<path d="m 140.56016,187.5239 v -19.4651 h 4.38651 v 6.95912 h 4.82159 c 0.91063,0 1.74071,0.156 2.46706,0.4634 0.72685,0.30756 1.35527,0.7376 1.86795,1.2784 0.51294,0.54082 0.91486,1.20204 1.19455,1.96578 0.27844,0.7615 0.41964,1.61806 0.41964,2.54578 0,0.90862 -0.1412,1.76002 -0.41964,2.53106 -0.27969,0.77228 -0.68136,1.4387 -1.19455,1.97976 -0.51344,0.54104 -1.14185,0.97146 -1.86795,1.27876 -0.72635,0.30706 -1.55643,0.46304 -2.46706,0.46304 z m 4.38651,-3.83374 h 4.32472 c 0.59855,0 1.07466,-0.1546 1.41411,-0.45936 0.33694,-0.30204 0.5079,-0.75704 0.5079,-1.35232 v -1.21514 c 0,-0.59554 -0.17096,-1.05042 -0.5079,-1.35196 -0.33895,-0.3048 -0.81481,-0.45936 -1.41411,-0.45936 h -4.32472 z" />
<path d="m 127.5301,187.52426 v -3.53032 h 2.48546 v -12.40556 h -2.48546 v -3.52958 h 9.35742 v 3.52958 h -2.48546 v 12.40556 h 2.48546 v 3.53032 z" />
<path d="m 67.953143,187.85526 c -1.276194,0 -2.458982,-0.21608 -3.515238,-0.64214 -1.059016,-0.42758 -1.972046,-1.07252 -2.714212,-1.91686 -0.741914,-0.84386 -1.324402,-1.90488 -1.731138,-3.15372 -0.406232,-1.2458 -0.612352,-2.7097 -0.612352,-4.3512 0,-1.64174 0.20612,-3.10574 0.612352,-4.35156 0.406986,-1.24932 0.989476,-2.31036 1.731138,-3.1537 0.741914,-0.84462 1.655196,-1.48956 2.714212,-1.91688 1.056256,-0.42606 2.239044,-0.64214 3.515238,-0.64214 1.276444,0 2.458864,0.21608 3.514868,0.64214 1.058514,0.42708 1.971913,1.07202 2.714581,1.91688 0.74116,0.84334 1.32365,1.90438 1.731138,3.1537 0.406232,1.24732 0.612352,2.71132 0.612352,4.35156 0,1.64026 -0.20612,3.10414 -0.612352,4.3512 -0.407238,1.24884 -0.989726,2.30986 -1.731138,3.15372 -0.742668,0.84484 -1.656067,1.4898 -2.714581,1.91686 -1.056004,0.42606 -2.238676,0.64214 -3.514868,0.64214 z m 0,-3.91648 c 1.23577,0 2.210436,-0.40706 2.897366,-1.21 0.690446,-0.80744 1.040816,-1.98554 1.040816,-3.50126 v -2.87236 c 0,-1.51596 -0.35037,-2.69392 -1.040816,-3.50162 -0.68718,-0.80268 -1.661596,-1.20962 -2.897366,-1.20962 -1.235772,0 -2.210438,0.40694 -2.897368,1.20962 -0.690444,0.8072 -1.040814,1.98516 -1.040814,3.50162 v 2.87236 c 0,1.51648 0.35037,2.69432 1.040814,3.50126 0.68668,0.80294 1.661596,1.21 2.897368,1.21 z" />
<path d="m 166.16055,187.85564 c -1.3136,0 -2.5155,-0.22558 -3.5715,-0.67046 -1.05902,-0.44592 -1.97193,-1.10948 -2.71385,-1.97242 -0.74141,-0.86166 -1.32341,-1.94146 -1.7304,-3.20886 -0.40623,-1.2639 -0.61235,-2.72766 -0.61235,-4.35084 0,-1.64174 0.20612,-3.09674 0.61235,-4.32398 0.40724,-1.2315 0.98996,-2.27414 1.73187,-3.09892 0.74217,-0.82602 1.6552,-1.4569 2.71422,-1.87494 1.0555,-0.41676 2.25656,-0.62816 3.56966,-0.62816 1.79692,0 3.30628,0.40952 4.48581,1.21772 1.17777,0.80694 2.14085,1.96664 2.86243,3.4472 l 0.0382,0.079 -3.59689,2.08826 -0.039,-0.1048 c -0.28822,-0.7738 -0.73945,-1.4444 -1.34202,-1.993 -0.5963,-0.5428 -1.40657,-0.81756 -2.40859,-0.81756 -1.20062,0 -2.17635,0.39406 -2.89994,1.17138 -0.72534,0.77906 -1.09341,1.93278 -1.09341,3.42916 v 3.09304 c 0,1.49638 0.36807,2.65046 1.09341,3.42954 0.72359,0.77756 1.69932,1.17174 2.89994,1.17174 1.02035,0 1.80261,-0.2381 2.32584,-0.7076 0.5275,-0.47454 0.92323,-1.11572 1.17505,-1.90584 l 0.0335,-0.1066 3.79659,1.97056 -0.0368,0.081 c -0.7045,1.57522 -1.65504,2.74604 -2.82528,3.47992 -1.16999,0.73364 -2.67348,1.10556 -4.46889,1.10556 z" />
<path d="M 16.140738,191.689 0,177.85056 16.145152,164.0077 l 2.9415,3.43066 -12.1433433,10.4122 12.1389293,10.40742 z" />
<path d="m 36.895639,191.70628 -2.941134,-3.43138 12.16026,-10.4247 -12.16541,-10.4295 2.941134,-3.43102 16.167952,13.86052 z" />
<path d="m 26.527566,201.85 c -3.126646,-1.2e-4 -6.253276,-1.09352 -8.803906,-3.28022 l -1.574462,-1.35012 2.9415,-3.43064 1.574464,1.35012 c 3.396988,2.91166 8.32819,2.91278 11.725177,3.8e-4 l 1.553502,-1.3321 2.941498,3.43138 -1.5535,1.33172 c -2.55088,2.18644 -5.677627,3.27962 -8.804273,3.27948 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

156
a/main.js Normal file
View File

@ -0,0 +1,156 @@
function $(n) {
return document.querySelector(n)
}
function $$(n) {
return document.querySelectorAll(n)
}
function refresh() {
window.location.reload()
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
}
function setProgressBar(id, value, name) {
$(id).setAttribute('aria-valuenow', value);
$(id).title = name + ': ' + value + '%'
const pb = $(id + ' .progress-bar');
pb.style.width = value + '%';
pb.classList = 'progress-bar';
if (value > 95) {
pb.classList.add('bg-danger');
} else if (value > 90) {
pb.classList.add('bg-warning');
} else {
pb.classList.add('bg-success');
}
}
async function* makeTextFileLineIterator(url) {
const td = new TextDecoder('utf-8');
const response = await fetch(url);
const rd = response.body.getReader();
let { value: chunk, done: readerDone } = await rd.read();
chunk = chunk ? td.decode(chunk) : '';
const re = /\r?\n/gm;
let startIndex = 0;
let result;
for (;;) {
result = re.exec(chunk);
if (!result) {
if (readerDone) {
break;
}
let remainder = chunk.substr(startIndex);
({ value: chunk, done: readerDone } = await rd.read());
chunk = remainder + (chunk ? td.decode(chunk) : '');
startIndex = re.lastIndex = 0;
continue;
}
yield chunk.substring(startIndex, result.index);
startIndex = re.lastIndex;
}
if (startIndex < chunk.length) {
yield chunk.substr(startIndex);
}
if (el.dataset['reboot'] === "true") {
location.href = '/cgi-bin/fw-restart.cgi'
}
if ($('form input[type=submit]')) {
$('form input[type=submit]').disabled = false;
}
}
async function runCmd(msg) {
for await (let line of makeTextFileLineIterator('/cgi-bin/j/run.cgi?' + msg + '=' + btoa(el.dataset['cmd']))) {
const regex = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
line = line.replace(regex, '');
el.innerHTML += line + '\n';
}
}
function heartbeat() {
fetch('/cgi-bin/j/pulse.cgi')
.then((response) => response.json())
.then((json) => {
if (json.soc_temp !== '') {
const st = $('#soc-temp')
st.textContent = json.soc_temp;
st.classList.add(['text-primary','bg-white','rounded','small']);
st.title = 'SoC temperature ' + json.soc_temp;
}
if (json.time_now !== '') {
const d = new Date(json.time_now * 1000);
$('#time-now').textContent = d.toLocaleString() + ' ' + json.timezone;
}
if (json.mem_used !== '') {
setProgressBar('#pb-memory', json.mem_used, 'Memory Usage');
}
if (json.overlay_used !== '') {
setProgressBar('#pb-overlay', json.overlay_used, 'Overlay Usage');
}
if (json.daynight_value !== '-1') {
$('#daynight_value').textContent = '🌟 ' + json.daynight_value;
}
if (typeof(json.uptime) !== 'undefined' && json.uptime !== '') {
$('#uptime').textContent = 'Uptime: ' + json.uptime;
}
})
.then(setTimeout(heartbeat, 2000));
}
function initAll() {
$$('form').forEach(el => el.autocomplete = 'off');
// For .warning and .danger buttons, ask confirmation on action.
$$('.btn-danger, .btn-warning, .confirm').forEach(el => {
// for input, find its parent form and attach listener to it submit event
if (el.nodeName === "INPUT") {
while (el.nodeName !== "FORM") el = el.parentNode
el.addEventListener('submit', ev => (!confirm("Are you sure?")) ? ev.preventDefault() : null)
} else {
el.addEventListener('click', ev => (!confirm("Are you sure?")) ? ev.preventDefault() : null)
}
});
$$('.refresh').forEach(el => el.addEventListener('click', refresh));
// open links to external resources in a new window.
$$('a[href^=http]').forEach(el => el.target = '_blank');
// add auto toggle button and value display for range elements.
$$('input[type=range]').forEach(el => {
el.addEventListener('input', ev => {
const id = ev.target.id.replace(/-range/, '');
$('#' + id + '-show').textContent = ev.target.value;
$('#' + id).value = ev.target.value;
})
});
// show password when "show" checkbox is checked
$$(".password input[type=checkbox]").forEach(el => {
el.addEventListener('change', ev => {
const pw = $('#' + ev.target.dataset['for']);
pw.type = (el.checked) ? 'text' : 'password';
pw.focus();
});
});
heartbeat();
}
window.addEventListener('load', initAll);

35
a/preview.svg Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1920" height="960" x="0" y="0" version="1.1">
<style>
.st0{fill:#666}
.st1{fill:#bfbfbf}
.st15{fill:#262626}
.st16{fill:#fff}
</style>
<g>
<path d="M0 0h1920v960H0z"/>
<path d="M0 0h240v630H0z" class="st0"/>
<path d="M240 0h205v630H240z" class="st1"/>
<path d="M445 0h206v630H445z" fill="#bfbf00"/>
<path d="M651 0h206v630H651z" fill="#00bfbf"/>
<path d="M857 0h206v630H857z" fill="#00bf00"/>
<path d="M1063 0h206v630h-206z" fill="#bf00bf"/>
<path d="M1269 0h206v630h-206z" fill="#bf0000"/>
<path d="M1475 0h205v630h-205z" fill="#0000bf"/>
<path d="M1680 0h240v630h-240z" class="st1"/>
<path d="M0 630h240v90H0z" fill="#0ff"/>
<path d="M1680 630h240v90h-240z" fill="#00f"/>
<path d="M0 720h240v90H0z" fill="#ff0"/>
<linearGradient id="r1" x1="1450" x2="450" y1="16000" y2="16000" gradientTransform="matrix(1 0 0 1 7 15000)" gradientUnits="userSpaceOnUse">
<stop offset="0"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<linearGradient id="r2" x1="450" x2="1450" y1="16000" y2="16000" gradientTransform="matrix(1 0 0 1 7 15000)" gradientUnits="userSpaceOnUse">
<stop offset="0"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<path d="M240 630h1440v90H240z" fill="url(#r1)"/>
<path d="M240 720h1440v90H240z" fill="url(#r2)"/>
<path d="M1680 720h240v90h-240z" fill="red"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

453
a/timezone.js Normal file
View File

@ -0,0 +1,453 @@
const TZ = [
{n:'Africa/Abidjan',v:'GMT0'},
{n:'Africa/Accra',v:'GMT0'},
{n:'Africa/Addis Ababa',v:'EAT-3'},
{n:'Africa/Algiers',v:'CET-1'},
{n:'Africa/Asmara',v:'EAT-3'},
{n:'Africa/Bamako',v:'GMT0'},
{n:'Africa/Bangui',v:'WAT-1'},
{n:'Africa/Banjul',v:'GMT0'},
{n:'Africa/Bissau',v:'GMT0'},
{n:'Africa/Blantyre',v:'CAT-2'},
{n:'Africa/Brazzaville',v:'WAT-1'},
{n:'Africa/Bujumbura',v:'CAT-2'},
{n:'Africa/Cairo',v:'EET-2'},
{n:'Africa/Casablanca',v:'<+01>-1'},
{n:'Africa/Ceuta',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Africa/Conakry',v:'GMT0'},
{n:'Africa/Dakar',v:'GMT0'},
{n:'Africa/Dar es Salaam',v:'EAT-3'},
{n:'Africa/Djibouti',v:'EAT-3'},
{n:'Africa/Douala',v:'WAT-1'},
{n:'Africa/El Aaiun',v:'<+01>-1'},
{n:'Africa/Freetown',v:'GMT0'},
{n:'Africa/Gaborone',v:'CAT-2'},
{n:'Africa/Harare',v:'CAT-2'},
{n:'Africa/Johannesburg',v:'SAST-2'},
{n:'Africa/Juba',v:'CAT-2'},
{n:'Africa/Kampala',v:'EAT-3'},
{n:'Africa/Khartoum',v:'CAT-2'},
{n:'Africa/Kigali',v:'CAT-2'},
{n:'Africa/Kinshasa',v:'WAT-1'},
{n:'Africa/Lagos',v:'WAT-1'},
{n:'Africa/Libreville',v:'WAT-1'},
{n:'Africa/Lome',v:'GMT0'},
{n:'Africa/Luanda',v:'WAT-1'},
{n:'Africa/Lubumbashi',v:'CAT-2'},
{n:'Africa/Lusaka',v:'CAT-2'},
{n:'Africa/Malabo',v:'WAT-1'},
{n:'Africa/Maputo',v:'CAT-2'},
{n:'Africa/Maseru',v:'SAST-2'},
{n:'Africa/Mbabane',v:'SAST-2'},
{n:'Africa/Mogadishu',v:'EAT-3'},
{n:'Africa/Monrovia',v:'GMT0'},
{n:'Africa/Nairobi',v:'EAT-3'},
{n:'Africa/Ndjamena',v:'WAT-1'},
{n:'Africa/Niamey',v:'WAT-1'},
{n:'Africa/Nouakchott',v:'GMT0'},
{n:'Africa/Ouagadougou',v:'GMT0'},
{n:'Africa/Porto-Novo',v:'WAT-1'},
{n:'Africa/Sao Tome',v:'GMT0'},
{n:'Africa/Tripoli',v:'EET-2'},
{n:'Africa/Tunis',v:'CET-1'},
{n:'Africa/Windhoek',v:'CAT-2'},
{n:'America/Adak',v:'HST10HDT,M3.2.0,M11.1.0'},
{n:'America/Anchorage',v:'AKST9AKDT,M3.2.0,M11.1.0'},
{n:'America/Anguilla',v:'AST4'},
{n:'America/Antigua',v:'AST4'},
{n:'America/Araguaina',v:'<-03>3'},
{n:'America/Argentina/Buenos Aires',v:'<-03>3'},
{n:'America/Argentina/Catamarca',v:'<-03>3'},
{n:'America/Argentina/Cordoba',v:'<-03>3'},
{n:'America/Argentina/Jujuy',v:'<-03>3'},
{n:'America/Argentina/La Rioja',v:'<-03>3'},
{n:'America/Argentina/Mendoza',v:'<-03>3'},
{n:'America/Argentina/Rio Gallegos',v:'<-03>3'},
{n:'America/Argentina/Salta',v:'<-03>3'},
{n:'America/Argentina/San Juan',v:'<-03>3'},
{n:'America/Argentina/San Luis',v:'<-03>3'},
{n:'America/Argentina/Tucuman',v:'<-03>3'},
{n:'America/Argentina/Ushuaia',v:'<-03>3'},
{n:'America/Aruba',v:'AST4'},
{n:'America/Asuncion',v:'<-04>4<-03>,M10.1.0/0,M3.4.0/0'},
{n:'America/Atikokan',v:'EST5'},
{n:'America/Bahia',v:'<-03>3'},
{n:'America/Bahia Banderas',v:'CST6CDT,M4.1.0,M10.5.0'},
{n:'America/Barbados',v:'AST4'},
{n:'America/Belem',v:'<-03>3'},
{n:'America/Belize',v:'CST6'},
{n:'America/Blanc-Sablon',v:'AST4'},
{n:'America/Boa Vista',v:'<-04>4'},
{n:'America/Bogota',v:'<-05>5'},
{n:'America/Boise',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'America/Cambridge Bay',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'America/Campo Grande',v:'<-04>4'},
{n:'America/Cancun',v:'EST5'},
{n:'America/Caracas',v:'<-04>4'},
{n:'America/Cayenne',v:'<-03>3'},
{n:'America/Cayman',v:'EST5'},
{n:'America/Chicago',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Chihuahua',v:'MST7MDT,M4.1.0,M10.5.0'},
{n:'America/Costa Rica',v:'CST6'},
{n:'America/Creston',v:'MST7'},
{n:'America/Cuiaba',v:'<-04>4'},
{n:'America/Curacao',v:'AST4'},
{n:'America/Danmarkshavn',v:'GMT0'},
{n:'America/Dawson',v:'MST7'},
{n:'America/Dawson Creek',v:'MST7'},
{n:'America/Denver',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'America/Detroit',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Dominica',v:'AST4'},
{n:'America/Edmonton',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'America/Eirunepe',v:'<-05>5'},
{n:'America/El Salvador',v:'CST6'},
{n:'America/Fort Nelson',v:'MST7'},
{n:'America/Fortaleza',v:'<-03>3'},
{n:'America/Glace Bay',v:'AST4ADT,M3.2.0,M11.1.0'},
{n:'America/Goose Bay',v:'AST4ADT,M3.2.0,M11.1.0'},
{n:'America/Grand Turk',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Grenada',v:'AST4'},
{n:'America/Guadeloupe',v:'AST4'},
{n:'America/Guatemala',v:'CST6'},
{n:'America/Guayaquil',v:'<-05>5'},
{n:'America/Guyana',v:'<-04>4'},
{n:'America/Halifax',v:'AST4ADT,M3.2.0,M11.1.0'},
{n:'America/Havana',v:'CST5CDT,M3.2.0/0,M11.1.0/1'},
{n:'America/Hermosillo',v:'MST7'},
{n:'America/Indiana/Indianapolis',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Knox',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Marengo',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Petersburg',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Tell City',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Vevay',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Vincennes',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Indiana/Winamac',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Inuvik',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'America/Iqaluit',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Jamaica',v:'EST5'},
{n:'America/Juneau',v:'AKST9AKDT,M3.2.0,M11.1.0'},
{n:'America/Kentucky/Louisville',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Kentucky/Monticello',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Kralendijk',v:'AST4'},
{n:'America/La Paz',v:'<-04>4'},
{n:'America/Lima',v:'<-05>5'},
{n:'America/Los Angeles',v:'PST8PDT,M3.2.0,M11.1.0'},
{n:'America/Lower Princes',v:'AST4'},
{n:'America/Maceio',v:'<-03>3'},
{n:'America/Managua',v:'CST6'},
{n:'America/Manaus',v:'<-04>4'},
{n:'America/Marigot',v:'AST4'},
{n:'America/Martinique',v:'AST4'},
{n:'America/Matamoros',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Mazatlan',v:'MST7MDT,M4.1.0,M10.5.0'},
{n:'America/Menominee',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Merida',v:'CST6CDT,M4.1.0,M10.5.0'},
{n:'America/Metlakatla',v:'AKST9AKDT,M3.2.0,M11.1.0'},
{n:'America/Mexico City',v:'CST6CDT,M4.1.0,M10.5.0'},
{n:'America/Miquelon',v:'<-03>3<-02>,M3.2.0,M11.1.0'},
{n:'America/Moncton',v:'AST4ADT,M3.2.0,M11.1.0'},
{n:'America/Monterrey',v:'CST6CDT,M4.1.0,M10.5.0'},
{n:'America/Montevideo',v:'<-03>3'},
{n:'America/Montserrat',v:'AST4'},
{n:'America/Nassau',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/New York',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Nipigon',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Nome',v:'AKST9AKDT,M3.2.0,M11.1.0'},
{n:'America/Noronha',v:'<-02>2'},
{n:'America/North Dakota/Beulah',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/North Dakota/Center',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/North Dakota/New Salem',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Nuuk',v:'<-03>3<-02>,M3.5.0/-2,M10.5.0/-1'},
{n:'America/Ojinaga',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'America/Panama',v:'EST5'},
{n:'America/Pangnirtung',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Paramaribo',v:'<-03>3'},
{n:'America/Phoenix',v:'MST7'},
{n:'America/Port of Spain',v:'AST4'},
{n:'America/Port-au-Prince',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Porto Velho',v:'<-04>4'},
{n:'America/Puerto Rico',v:'AST4'},
{n:'America/Punta Arenas',v:'<-03>3'},
{n:'America/Rainy River',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Rankin Inlet',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Recife',v:'<-03>3'},
{n:'America/Regina',v:'CST6'},
{n:'America/Resolute',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Rio Branco',v:'<-05>5'},
{n:'America/Santarem',v:'<-03>3'},
{n:'America/Santiago',v:'<-04>4<-03>,M9.1.6/24,M4.1.6/24'},
{n:'America/Santo Domingo',v:'AST4'},
{n:'America/Sao Paulo',v:'<-03>3'},
{n:'America/Scoresbysund',v:'<-01>1<+00>,M3.5.0/0,M10.5.0/1'},
{n:'America/Sitka',v:'AKST9AKDT,M3.2.0,M11.1.0'},
{n:'America/St Barthelemy',v:'AST4'},
{n:'America/St Johns',v:'NST3:30NDT,M3.2.0,M11.1.0'},
{n:'America/St Kitts',v:'AST4'},
{n:'America/St Lucia',v:'AST4'},
{n:'America/St Thomas',v:'AST4'},
{n:'America/St Vincent',v:'AST4'},
{n:'America/Swift Current',v:'CST6'},
{n:'America/Tegucigalpa',v:'CST6'},
{n:'America/Thule',v:'AST4ADT,M3.2.0,M11.1.0'},
{n:'America/Thunder Bay',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Tijuana',v:'PST8PDT,M3.2.0,M11.1.0'},
{n:'America/Toronto',v:'EST5EDT,M3.2.0,M11.1.0'},
{n:'America/Tortola',v:'AST4'},
{n:'America/Vancouver',v:'PST8PDT,M3.2.0,M11.1.0'},
{n:'America/Whitehorse',v:'MST7'},
{n:'America/Winnipeg',v:'CST6CDT,M3.2.0,M11.1.0'},
{n:'America/Yakutat',v:'AKST9AKDT,M3.2.0,M11.1.0'},
{n:'America/Yellowknife',v:'MST7MDT,M3.2.0,M11.1.0'},
{n:'Antarctica/Casey',v:'<+11>-11'},
{n:'Antarctica/Davis',v:'<+07>-7'},
{n:'Antarctica/DumontDUrville',v:'<+10>-10'},
{n:'Antarctica/Macquarie',v:'AEST-10AEDT,M10.1.0,M4.1.0/3'},
{n:'Antarctica/Mawson',v:'<+05>-5'},
{n:'Antarctica/McMurdo',v:'NZST-12NZDT,M9.5.0,M4.1.0/3'},
{n:'Antarctica/Palmer',v:'<-03>3'},
{n:'Antarctica/Rothera',v:'<-03>3'},
{n:'Antarctica/Syowa',v:'<+03>-3'},
{n:'Antarctica/Troll',v:'<+00>0<+02>-2,M3.5.0/1,M10.5.0/3'},
{n:'Antarctica/Vostok',v:'<+06>-6'},
{n:'Arctic/Longyearbyen',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Asia/Aden',v:'<+03>-3'},
{n:'Asia/Almaty',v:'<+06>-6'},
{n:'Asia/Amman',v:'EET-2EEST,M2.5.4/24,M10.5.5/1'},
{n:'Asia/Anadyr',v:'<+12>-12'},
{n:'Asia/Aqtau',v:'<+05>-5'},
{n:'Asia/Aqtobe',v:'<+05>-5'},
{n:'Asia/Ashgabat',v:'<+05>-5'},
{n:'Asia/Atyrau',v:'<+05>-5'},
{n:'Asia/Baghdad',v:'<+03>-3'},
{n:'Asia/Bahrain',v:'<+03>-3'},
{n:'Asia/Baku',v:'<+04>-4'},
{n:'Asia/Bangkok',v:'<+07>-7'},
{n:'Asia/Barnaul',v:'<+07>-7'},
{n:'Asia/Beirut',v:'EET-2EEST,M3.5.0/0,M10.5.0/0'},
{n:'Asia/Bishkek',v:'<+06>-6'},
{n:'Asia/Brunei',v:'<+08>-8'},
{n:'Asia/Chita',v:'<+09>-9'},
{n:'Asia/Choibalsan',v:'<+08>-8'},
{n:'Asia/Colombo',v:'<+0530>-5:30'},
{n:'Asia/Damascus',v:'EET-2EEST,M3.5.5/0,M10.5.5/0'},
{n:'Asia/Dhaka',v:'<+06>-6'},
{n:'Asia/Dili',v:'<+09>-9'},
{n:'Asia/Dubai',v:'<+04>-4'},
{n:'Asia/Dushanbe',v:'<+05>-5'},
{n:'Asia/Famagusta',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Asia/Gaza',v:'EET-2EEST,M3.4.4/48,M10.5.5/1'},
{n:'Asia/Hebron',v:'EET-2EEST,M3.4.4/48,M10.5.5/1'},
{n:'Asia/Ho Chi Minh',v:'<+07>-7'},
{n:'Asia/Hong Kong',v:'HKT-8'},
{n:'Asia/Hovd',v:'<+07>-7'},
{n:'Asia/Irkutsk',v:'<+08>-8'},
{n:'Asia/Jakarta',v:'WIB-7'},
{n:'Asia/Jayapura',v:'WIT-9'},
{n:'Asia/Jerusalem',v:'IST-2IDT,M3.4.4/26,M10.5.0'},
{n:'Asia/Kabul',v:'<+0430>-4:30'},
{n:'Asia/Kamchatka',v:'<+12>-12'},
{n:'Asia/Karachi',v:'PKT-5'},
{n:'Asia/Kathmandu',v:'<+0545>-5:45'},
{n:'Asia/Khandyga',v:'<+09>-9'},
{n:'Asia/Kolkata',v:'IST-5:30'},
{n:'Asia/Krasnoyarsk',v:'<+07>-7'},
{n:'Asia/Kuala Lumpur',v:'<+08>-8'},
{n:'Asia/Kuching',v:'<+08>-8'},
{n:'Asia/Kuwait',v:'<+03>-3'},
{n:'Asia/Macau',v:'CST-8'},
{n:'Asia/Magadan',v:'<+11>-11'},
{n:'Asia/Makassar',v:'WITA-8'},
{n:'Asia/Manila',v:'PST-8'},
{n:'Asia/Muscat',v:'<+04>-4'},
{n:'Asia/Nicosia',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Asia/Novokuznetsk',v:'<+07>-7'},
{n:'Asia/Novosibirsk',v:'<+07>-7'},
{n:'Asia/Omsk',v:'<+06>-6'},
{n:'Asia/Oral',v:'<+05>-5'},
{n:'Asia/Phnom Penh',v:'<+07>-7'},
{n:'Asia/Pontianak',v:'WIB-7'},
{n:'Asia/Pyongyang',v:'KST-9'},
{n:'Asia/Qatar',v:'<+03>-3'},
{n:'Asia/Qostanay',v:'<+06>-6'},
{n:'Asia/Qyzylorda',v:'<+05>-5'},
{n:'Asia/Riyadh',v:'<+03>-3'},
{n:'Asia/Sakhalin',v:'<+11>-11'},
{n:'Asia/Samarkand',v:'<+05>-5'},
{n:'Asia/Seoul',v:'KST-9'},
{n:'Asia/Shanghai',v:'CST-8'},
{n:'Asia/Singapore',v:'<+08>-8'},
{n:'Asia/Srednekolymsk',v:'<+11>-11'},
{n:'Asia/Taipei',v:'CST-8'},
{n:'Asia/Tashkent',v:'<+05>-5'},
{n:'Asia/Tbilisi',v:'<+04>-4'},
{n:'Asia/Tehran',v:'<+0330>-3:30<+0430>,J79/24,J263/24'},
{n:'Asia/Thimphu',v:'<+06>-6'},
{n:'Asia/Tokyo',v:'JST-9'},
{n:'Asia/Tomsk',v:'<+07>-7'},
{n:'Asia/Ulaanbaatar',v:'<+08>-8'},
{n:'Asia/Urumqi',v:'<+06>-6'},
{n:'Asia/Ust-Nera',v:'<+10>-10'},
{n:'Asia/Vientiane',v:'<+07>-7'},
{n:'Asia/Vladivostok',v:'<+10>-10'},
{n:'Asia/Yakutsk',v:'<+09>-9'},
{n:'Asia/Yangon',v:'<+0630>-6:30'},
{n:'Asia/Yekaterinburg',v:'<+05>-5'},
{n:'Asia/Yerevan',v:'<+04>-4'},
{n:'Atlantic/Azores',v:'<-01>1<+00>,M3.5.0/0,M10.5.0/1'},
{n:'Atlantic/Bermuda',v:'AST4ADT,M3.2.0,M11.1.0'},
{n:'Atlantic/Canary',v:'WET0WEST,M3.5.0/1,M10.5.0'},
{n:'Atlantic/Cape Verde',v:'<-01>1'},
{n:'Atlantic/Faroe',v:'WET0WEST,M3.5.0/1,M10.5.0'},
{n:'Atlantic/Madeira',v:'WET0WEST,M3.5.0/1,M10.5.0'},
{n:'Atlantic/Reykjavik',v:'GMT0'},
{n:'Atlantic/South Georgia',v:'<-02>2'},
{n:'Atlantic/St Helena',v:'GMT0'},
{n:'Atlantic/Stanley',v:'<-03>3'},
{n:'Australia/Adelaide',v:'ACST-9:30ACDT,M10.1.0,M4.1.0/3'},
{n:'Australia/Brisbane',v:'AEST-10'},
{n:'Australia/Broken Hill',v:'ACST-9:30ACDT,M10.1.0,M4.1.0/3'},
{n:'Australia/Darwin',v:'ACST-9:30'},
{n:'Australia/Eucla',v:'<+0845>-8:45'},
{n:'Australia/Hobart',v:'AEST-10AEDT,M10.1.0,M4.1.0/3'},
{n:'Australia/Lindeman',v:'AEST-10'},
{n:'Australia/Lord Howe',v:'<+1030>-10:30<+11>-11,M10.1.0,M4.1.0'},
{n:'Australia/Melbourne',v:'AEST-10AEDT,M10.1.0,M4.1.0/3'},
{n:'Australia/Perth',v:'AWST-8'},
{n:'Australia/Sydney',v:'AEST-10AEDT,M10.1.0,M4.1.0/3'},
{n:'Etc/GMT',v:'GMT0'},
{n:'Etc/GMT+1',v:'<-01>1'},
{n:'Etc/GMT+10',v:'<-10>10'},
{n:'Etc/GMT+11',v:'<-11>11'},
{n:'Etc/GMT+12',v:'<-12>12'},
{n:'Etc/GMT+2',v:'<-02>2'},
{n:'Etc/GMT+3',v:'<-03>3'},
{n:'Etc/GMT+4',v:'<-04>4'},
{n:'Etc/GMT+5',v:'<-05>5'},
{n:'Etc/GMT+6',v:'<-06>6'},
{n:'Etc/GMT+7',v:'<-07>7'},
{n:'Etc/GMT+8',v:'<-08>8'},
{n:'Etc/GMT+9',v:'<-09>9'},
{n:'Etc/GMT-1',v:'<+01>-1'},
{n:'Etc/GMT-10',v:'<+10>-10'},
{n:'Etc/GMT-11',v:'<+11>-11'},
{n:'Etc/GMT-12',v:'<+12>-12'},
{n:'Etc/GMT-13',v:'<+13>-13'},
{n:'Etc/GMT-14',v:'<+14>-14'},
{n:'Etc/GMT-2',v:'<+02>-2'},
{n:'Etc/GMT-3',v:'<+03>-3'},
{n:'Etc/GMT-4',v:'<+04>-4'},
{n:'Etc/GMT-5',v:'<+05>-5'},
{n:'Etc/GMT-6',v:'<+06>-6'},
{n:'Etc/GMT-7',v:'<+07>-7'},
{n:'Etc/GMT-8',v:'<+08>-8'},
{n:'Etc/GMT-9',v:'<+09>-9'},
{n:'Europe/Amsterdam',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Andorra',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Astrakhan',v:'<+04>-4'},
{n:'Europe/Athens',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Belgrade',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Berlin',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Bratislava',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Brussels',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Bucharest',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Budapest',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Busingen',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Chisinau',v:'EET-2EEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Copenhagen',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Dublin',v:'IST-1GMT0,M10.5.0,M3.5.0/1'},
{n:'Europe/Gibraltar',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Guernsey',v:'GMT0BST,M3.5.0/1,M10.5.0'},
{n:'Europe/Helsinki',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Isle of Man',v:'GMT0BST,M3.5.0/1,M10.5.0'},
{n:'Europe/Istanbul',v:'<+03>-3'},
{n:'Europe/Jersey',v:'GMT0BST,M3.5.0/1,M10.5.0'},
{n:'Europe/Kaliningrad',v:'EET-2'},
{n:'Europe/Kiev',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Kirov',v:'<+03>-3'},
{n:'Europe/Lisbon',v:'WET0WEST,M3.5.0/1,M10.5.0'},
{n:'Europe/Ljubljana',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/London',v:'GMT0BST,M3.5.0/1,M10.5.0'},
{n:'Europe/Luxembourg',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Madrid',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Malta',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Mariehamn',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Minsk',v:'<+03>-3'},
{n:'Europe/Monaco',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Moscow',v:'MSK-3'},
{n:'Europe/Oslo',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Paris',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Podgorica',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Prague',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Riga',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Rome',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Samara',v:'<+04>-4'},
{n:'Europe/San Marino',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Sarajevo',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Saratov',v:'<+04>-4'},
{n:'Europe/Simferopol',v:'MSK-3'},
{n:'Europe/Skopje',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Sofia',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Stockholm',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Tallinn',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Tirane',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Ulyanovsk',v:'<+04>-4'},
{n:'Europe/Uzhgorod',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Vaduz',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Vatican',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Vienna',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Vilnius',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Volgograd',v:'<+03>-3'},
{n:'Europe/Warsaw',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Zagreb',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Europe/Zaporozhye',v:'EET-2EEST,M3.5.0/3,M10.5.0/4'},
{n:'Europe/Zurich',v:'CET-1CEST,M3.5.0,M10.5.0/3'},
{n:'Indian/Antananarivo',v:'EAT-3'},
{n:'Indian/Chagos',v:'<+06>-6'},
{n:'Indian/Christmas',v:'<+07>-7'},
{n:'Indian/Cocos',v:'<+0630>-6:30'},
{n:'Indian/Comoro',v:'EAT-3'},
{n:'Indian/Kerguelen',v:'<+05>-5'},
{n:'Indian/Mahe',v:'<+04>-4'},
{n:'Indian/Maldives',v:'<+05>-5'},
{n:'Indian/Mauritius',v:'<+04>-4'},
{n:'Indian/Mayotte',v:'EAT-3'},
{n:'Indian/Reunion',v:'<+04>-4'},
{n:'Pacific/Apia',v:'<+13>-13'},
{n:'Pacific/Auckland',v:'NZST-12NZDT,M9.5.0,M4.1.0/3'},
{n:'Pacific/Bougainville',v:'<+11>-11'},
{n:'Pacific/Chatham',v:'<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45'},
{n:'Pacific/Chuuk',v:'<+10>-10'},
{n:'Pacific/Easter',v:'<-06>6<-05>,M9.1.6/22,M4.1.6/22'},
{n:'Pacific/Efate',v:'<+11>-11'},
{n:'Pacific/Fakaofo',v:'<+13>-13'},
{n:'Pacific/Fiji',v:'<+12>-12<+13>,M11.2.0,M1.2.3/99'},
{n:'Pacific/Funafuti',v:'<+12>-12'},
{n:'Pacific/Galapagos',v:'<-06>6'},
{n:'Pacific/Gambier',v:'<-09>9'},
{n:'Pacific/Guadalcanal',v:'<+11>-11'},
{n:'Pacific/Guam',v:'ChST-10'},
{n:'Pacific/Honolulu',v:'HST10'},
{n:'Pacific/Kanton',v:'<+13>-13'},
{n:'Pacific/Kiritimati',v:'<+14>-14'},
{n:'Pacific/Kosrae',v:'<+11>-11'},
{n:'Pacific/Kwajalein',v:'<+12>-12'},
{n:'Pacific/Majuro',v:'<+12>-12'},
{n:'Pacific/Marquesas',v:'<-0930>9:30'},
{n:'Pacific/Midway',v:'SST11'},
{n:'Pacific/Nauru',v:'<+12>-12'},
{n:'Pacific/Niue',v:'<-11>11'},
{n:'Pacific/Norfolk',v:'<+11>-11<+12>,M10.1.0,M4.1.0/3'},
{n:'Pacific/Noumea',v:'<+11>-11'},
{n:'Pacific/Pago Pago',v:'SST11'},
{n:'Pacific/Palau',v:'<+09>-9'},
{n:'Pacific/Pitcairn',v:'<-08>8'},
{n:'Pacific/Pohnpei',v:'<+11>-11'},
{n:'Pacific/Port Moresby',v:'<+10>-10'},
{n:'Pacific/Rarotonga',v:'<-10>10'},
{n:'Pacific/Saipan',v:'ChST-10'},
{n:'Pacific/Tahiti',v:'<-10>10'},
{n:'Pacific/Tarawa',v:'<+12>-12'},
{n:'Pacific/Tongatapu',v:'<+13>-13'},
{n:'Pacific/Wake',v:'<+12>-12'},
{n:'Pacific/Wallis',v:'<+12>-12'}
];