Compressed the Javascript code to improve loading time; placed the uncompressed code in a separate file

This commit is contained in:
adamdunkels 2010-02-03 16:46:52 +00:00
parent 280a8b9327
commit b9e28ce35b
3 changed files with 545 additions and 588 deletions

View File

@ -1,108 +1,11 @@
%!: /header.html
<script type="text/javascript">
var start;
i = new Image(50,60)
i.src = "spin.gif"
function load() {
var img = document.getElementById("spin");
img.innerHTML = '&nbsp;';
loadSensordata();
}
function loadSensordata() {
var r;
try { r = new XMLHttpRequest(); }
catch(e) {
try { r = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {
try { r = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
r.onreadystatechange = function() {
if(r.readyState == 1) {
var img = document.getElementById("spin");
img.innerHTML = '<img src="spin.gif">';
}
if(r.readyState == 4) {
var img = document.getElementById("spin");
img.innerHTML = 'took ' +
((new Date()).getTime() - start.getTime()) / 1000 +
' seconds';
eval(r.responseText);
}
}
start = new Date();
r.open("GET", "/sensordata.shtml", true);
r.send(null);
}
function e(el) {
d = document;
if(d.getElementById) {
return d.getElementById(el);
} else if (d.all) {
return d.all[el];
}
}
function s(el,n,max,text) {
e(el).innerHTML = '<table width=504 border=0 cellpadding=1 cellspacing=0>'+
'<tr><td width=200>' +
text + '</td>' +
'<td width=' + (300*n/max) + ' bgcolor="gray">&nbsp;</td>' +
'<td width=' + (300-300*n/max) + ' bgcolor="lightgray">&nbsp;</td>' +
'</table>';
}
function dc(n,d) {
return n.toFixed(d);
}
function t(m) {
n = dc(-39.6+0.01*m, 1);
s('temp',n,40,'Temperature '+n+' &deg;C');
}
function h(m) {
n = dc(-4+0.0405*m - 2.8e-6*(m*m), 2);
s('hum',n,100,'Humidity '+n+'%');
}
function l1(m) {
n = dc(.7629394375*m, 0);
s('l1',n,200,'Light 1 '+n);
}
function l2(m) {
n = dc(.4693603*m, 0);
s('l2',n,200,'Light 2 '+n);
}
function rs(m) {
n = m + 45;
s('rs',n,100,'RSSI '+n);
}
function p(c,l,t,r) {
tm=c+l;
cp=c*1.8/tm;
lp=l*0.0545/tm;
lt=t*17.7/tm;
lr=r*20/tm;
n=cp+lp+lt+lr;
s('p',n,30,'Power consumption '+dc(n,2)+' mW');
s('pc',cp,30,'CPU power '+dc(cp,2)+' mW');
s('pl',lp,30,'LPM power '+dc(lp,2)+' mW');
s('pr',lr,30,'Radio RX power '+dc(lr,2)+' mW');
s('pt',lt,30,'Radio TX power '+dc(lt,2)+' mW');
}
function i(n) {
e('i').innerHTML = n;
}
var start;i=new Image(50,60)i.src="spin.gif"function load(){var img=document.getElementById("spin");img.innerHTML='&nbsp;';loadData()}function loadData(){var r;try{r=new XMLHttpRequest()}catch(e){try{r=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{r=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){alert("Your browser does not support AJAX!");return false}}}r.onreadystatechange=function(){if(r.readyState==1){var img=document.getElementById("spin");img.innerHTML='<img src="spin.gif">'}if(r.readyState==4){var img=document.getElementById("spin");img.innerHTML='took '+((new Date()).getTime()-start.getTime())/1000+' seconds';eval(r.responseText)}}start=new Date();r.open("GET","/sensordata.shtml",true);r.send(null)}function e(el){d=document;if(d.getElementById){return d.getElementById(el)}else if(d.all){return d.all[el]}}function s(el,n,max,text){e(el).innerHTML='<table width=504 border=0 cellpadding=1 cellspacing=0>'+'<tr><td width=200>'+text+'</td>'+'<td width='+(300*n/max)+' bgcolor="gray">&nbsp;</td>'+'<td width='+(300-300*n/max)+' bgcolor="lightgray">&nbsp;</td>'+'</table>'}function dc(n,d){return n.toFixed(d)}function t(m){n=dc(-39.6+0.01*m,1);s('temp',n,40,'Temperature '+n+' &deg;C')}function h(m){n=dc(-4+0.0405*m-2.8e-6*(m*m),2);s('hum',n,100,'Humidity '+n+'%')}function l1(m){n=dc(.7629394375*m,0);s('l1',n,200,'Light 1 '+n)}function l2(m){n=dc(.4693603*m,0);s('l2',n,200,'Light 2 '+n)}function rs(m){n=m+45;s('rs',n,100,'RSSI '+n)}function p(c,l,t,r){tm=c+l;cp=c*1.8/tm;lp=l*0.0545/tm;lt=t*17.7/tm;lr=r*20/tm;n=cp+lp+lt+lr;s('p',n,30,'Power consumption '+dc(n,2)+' mW');s('pc',cp,30,'CPU power '+dc(cp,2)+' mW');s('pl',lp,30,'LPM power '+dc(lp,2)+' mW');s('pr',lr,30,'Radio RX power '+dc(lr,2)+' mW');s('pt',lt,30,'Radio TX power '+dc(lt,2)+' mW')}function i(n){e('i').innerHTML=n}
</script>
<h1>Node
%! nodeid
</h1>
<a onclick="loadSensordata();" href="#">Reload</a>
<span id="spin"> </span>
<h2>Environment</h2>
<div id="temp"></div>

View File

@ -1,502 +1,458 @@
static const unsigned char data_sensordata_shtml[] = {
/* /sensordata.shtml */
0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0,
0x25, 0x21, 0x20, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73,
0xa, 0};
/*********Generated by contiki/tools/makefsdata on 2010-02-03*********/
static const unsigned char data_sensors_shtml[] = {
/* /sensors.shtml */
0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0,
0x25, 0x21, 0x3a, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x3c, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x3e, 0xa, 0x76,
0x61, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0xa,
0xa, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x49,
0x6d, 0x61, 0x67, 0x65, 0x28, 0x35, 0x30, 0x2c, 0x36, 0x30,
0x29, 0xa, 0x69, 0x2e, 0x73, 0x72, 0x63, 0x20, 0x3d, 0x20,
0x22, 0x73, 0x70, 0x69, 0x6e, 0x2e, 0x67, 0x69, 0x66, 0x22,
0xa, 0xa, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x20, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x29, 0x20, 0x7b, 0xa,
0x20, 0x20, 0x76, 0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x20,
0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69,
0x6e, 0x22, 0x29, 0x3b, 0xa, 0x20, 0x20, 0x69, 0x6d, 0x67,
0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c,
0x20, 0x3d, 0x20, 0x27, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b,
0x27, 0x3b, 0xa, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x53,
0x65, 0x6e, 0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x28,
0x29, 0x3b, 0xa, 0x7d, 0xa, 0xa, 0x66, 0x75, 0x6e, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x53,
0x65, 0x6e, 0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x28,
0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x76, 0x61, 0x72, 0x20,
0x72, 0x3b, 0xa, 0x20, 0x20, 0x74, 0x72, 0x79, 0x20, 0x7b,
0x20, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x58,
0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x28, 0x29, 0x3b, 0x20, 0x7d, 0xa, 0x20,
0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x20,
0x7b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x79, 0x20,
0x7b, 0x20, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20,
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a,
0x65, 0x63, 0x74, 0x28, 0x22, 0x4d, 0x73, 0x78, 0x6d, 0x6c,
0x32, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, 0x54, 0x50, 0x22,
0x29, 0x3b, 0x20, 0x7d, 0xa, 0x20, 0x20, 0x20, 0x20, 0x63,
0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x20, 0x7b, 0xa,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x79, 0x20,
0x7b, 0x20, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20,
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a,
0x65, 0x63, 0x74, 0x28, 0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f,
0x73, 0x6f, 0x66, 0x74, 0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54,
0x54, 0x50, 0x22, 0x29, 0x3b, 0x20, 0x7d, 0xa, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28,
0x65, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x28, 0x22,
0x59, 0x6f, 0x75, 0x72, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73,
0x65, 0x72, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f,
0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20,
0x41, 0x4a, 0x41, 0x58, 0x21, 0x22, 0x29, 0x3b, 0xa, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b,
0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0xa, 0x20,
0x20, 0x20, 0x20, 0x7d, 0xa, 0x20, 0x20, 0x7d, 0xa, 0x20,
0x20, 0x72, 0x2e, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79,
0x73, 0x74, 0x61, 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67,
0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x20,
0x20, 0x69, 0x66, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64,
0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20,
0x31, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x76, 0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x20, 0x3d,
0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69, 0x6e,
0x22, 0x29, 0x3b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x69, 0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48,
0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27, 0x3c, 0x69, 0x6d,
0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69,
0x6e, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x3e, 0x27, 0x3b, 0xa,
0x20, 0x20, 0x20, 0x20, 0x7d, 0xa, 0x20, 0x20, 0x20, 0x20,
0x69, 0x66, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79,
0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x34,
0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x76, 0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x20, 0x3d, 0x20,
0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67,
0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42,
0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22,
0x29, 0x3b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69,
0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27, 0x74, 0x6f, 0x6f, 0x6b,
0x20, 0x27, 0x20, 0x20, 0x2b, 0xa, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x28, 0x28,
0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29,
0x29, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28,
0x29, 0x20, 0x2d, 0x20, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74,
0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29,
0x29, 0x20, 0x2f, 0x20, 0x31, 0x30, 0x30, 0x30, 0x20, 0x2b,
0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x27, 0x20, 0x73, 0x65, 0x63, 0x6f, 0x6e,
0x64, 0x73, 0x27, 0x3b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x65, 0x76, 0x61, 0x6c, 0x28, 0x72, 0x2e, 0x72, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74,
0x29, 0x3b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0xa,
0x20, 0x20, 0x20, 0x7d, 0xa, 0x20, 0x20, 0x73, 0x74, 0x61,
0x72, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44,
0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0xa, 0x20, 0x20, 0x72,
0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, 0x45, 0x54,
0x22, 0x2c, 0x20, 0x22, 0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f,
0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x68, 0x74, 0x6d,
0x6c, 0x22, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b,
0xa, 0x20, 0x20, 0x72, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28,
0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0xa, 0x7d, 0xa, 0xa,
0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65,
0x28, 0x65, 0x6c, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x64,
0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
0x74, 0x3b, 0xa, 0x20, 0x20, 0x69, 0x66, 0x28, 0x64, 0x2e,
0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x42, 0x79, 0x49, 0x64, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20,
0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64,
0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x65, 0x6c, 0x29, 0x3b,
0xa, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20,
0x69, 0x66, 0x20, 0x28, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x29,
0x20, 0x7b, 0xa, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74,
0x75, 0x72, 0x6e, 0x20, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x5b,
0x65, 0x6c, 0x5d, 0x3b, 0xa, 0x20, 0x20, 0x7d, 0xa, 0x7d,
0xa, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20,
0x73, 0x28, 0x65, 0x6c, 0x2c, 0x6e, 0x2c, 0x6d, 0x61, 0x78,
0x2c, 0x74, 0x65, 0x78, 0x74, 0x29, 0x20, 0x7b, 0xa, 0x20,
0x20, 0x65, 0x28, 0x65, 0x6c, 0x29, 0x2e, 0x69, 0x6e, 0x6e,
0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27,
0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64,
0x74, 0x68, 0x3d, 0x35, 0x30, 0x34, 0x20, 0x62, 0x6f, 0x72,
0x64, 0x65, 0x72, 0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c, 0x6c,
0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x31, 0x20,
0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e,
0x67, 0x3d, 0x30, 0x3e, 0x27, 0x2b, 0xa, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x27, 0x3c, 0x74,
0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74,
0x68, 0x3d, 0x32, 0x30, 0x30, 0x3e, 0x27, 0x20, 0x2b, 0xa,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x74, 0x65, 0x78, 0x74, 0x20, 0x2b, 0x20, 0x27, 0x3c, 0x2f,
0x74, 0x64, 0x3e, 0x27, 0x20, 0x2b, 0xa, 0x9, 0x9, 0x20,
0x20, 0x20, 0x20, 0x27, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69,
0x64, 0x74, 0x68, 0x3d, 0x27, 0x20, 0x2b, 0x20, 0x28, 0x33,
0x30, 0x30, 0x2a, 0x6e, 0x2f, 0x6d, 0x61, 0x78, 0x29, 0x20,
0x2b, 0x20, 0x27, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x3d, 0x22, 0x67, 0x72, 0x61, 0x79, 0x22, 0x3e, 0x26,
0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, 0x74, 0x64, 0x3e,
0x27, 0x20, 0x2b, 0xa, 0x9, 0x9, 0x20, 0x20, 0x20, 0x20,
0x27, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68,
0x3d, 0x27, 0x20, 0x2b, 0x20, 0x28, 0x33, 0x30, 0x30, 0x2d,
0x33, 0x30, 0x30, 0x2a, 0x6e, 0x2f, 0x6d, 0x61, 0x78, 0x29,
0x20, 0x2b, 0x20, 0x27, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c,
0x6f, 0x72, 0x3d, 0x22, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x67,
0x72, 0x61, 0x79, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70,
0x3b, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x27, 0x20, 0x2b, 0xa,
0x9, 0x9, 0x20, 0x20, 0x20, 0x20, 0x27, 0x3c, 0x2f, 0x74,
0x61, 0x62, 0x6c, 0x65, 0x3e, 0x27, 0x3b, 0xa, 0x7d, 0xa,
0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64,
0x63, 0x28, 0x6e, 0x2c, 0x64, 0x29, 0x20, 0x7b, 0xa, 0x20,
0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e,
0x74, 0x6f, 0x46, 0x69, 0x78, 0x65, 0x64, 0x28, 0x64, 0x29,
0x3b, 0xa, 0x7d, 0xa, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6d, 0x29, 0x20, 0x7b, 0xa,
0x20, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x64, 0x63, 0x28, 0x2d,
0x33, 0x39, 0x2e, 0x36, 0x2b, 0x30, 0x2e, 0x30, 0x31, 0x2a,
0x6d, 0x2c, 0x20, 0x31, 0x29, 0x3b, 0xa, 0x20, 0x20, 0x73,
0x28, 0x27, 0x74, 0x65, 0x6d, 0x70, 0x27, 0x2c, 0x6e, 0x2c,
0x34, 0x30, 0x2c, 0x27, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72,
0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x27, 0x2b, 0x6e, 0x2b,
0x27, 0x20, 0x26, 0x64, 0x65, 0x67, 0x3b, 0x43, 0x27, 0x29,
0x3b, 0xa, 0x7d, 0xa, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x68, 0x28, 0x6d, 0x29, 0x20, 0x7b, 0xa,
0x20, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x64, 0x63, 0x28, 0x2d,
0x34, 0x2b, 0x30, 0x2e, 0x30, 0x34, 0x30, 0x35, 0x2a, 0x6d,
0x20, 0x2d, 0x20, 0x32, 0x2e, 0x38, 0x65, 0x2d, 0x36, 0x2a,
0x28, 0x6d, 0x2a, 0x6d, 0x29, 0x2c, 0x20, 0x32, 0x29, 0x3b,
0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x68, 0x75, 0x6d, 0x27,
0x2c, 0x6e, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x27, 0x48, 0x75,
0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x20, 0x27, 0x2b, 0x6e,
0x2b, 0x27, 0x25, 0x27, 0x29, 0x3b, 0xa, 0x7d, 0xa, 0x66,
0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x31,
0x28, 0x6d, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x6e, 0x20,
0x3d, 0x20, 0x64, 0x63, 0x28, 0x2e, 0x37, 0x36, 0x32, 0x39,
0x33, 0x39, 0x34, 0x33, 0x37, 0x35, 0x2a, 0x6d, 0x2c, 0x20,
0x30, 0x29, 0x3b, 0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x6c,
0x31, 0x27, 0x2c, 0x6e, 0x2c, 0x32, 0x30, 0x30, 0x2c, 0x27,
0x4c, 0x69, 0x67, 0x68, 0x74, 0x20, 0x31, 0x20, 0x27, 0x2b,
0x6e, 0x29, 0x3b, 0xa, 0x7d, 0xa, 0x66, 0x75, 0x6e, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x32, 0x28, 0x6d, 0x29,
0x20, 0x7b, 0xa, 0x20, 0x20, 0x6e, 0x20, 0x3d, 0x20, 0x64,
0x63, 0x28, 0x2e, 0x34, 0x36, 0x39, 0x33, 0x36, 0x30, 0x33,
0x2a, 0x6d, 0x2c, 0x20, 0x30, 0x29, 0x3b, 0xa, 0x20, 0x20,
0x73, 0x28, 0x27, 0x6c, 0x32, 0x27, 0x2c, 0x6e, 0x2c, 0x32,
0x30, 0x30, 0x2c, 0x27, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x20,
0x32, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x3b, 0xa, 0x7d, 0xa,
0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72,
0x73, 0x28, 0x6d, 0x29, 0x20, 0x7b, 0xa, 0x20, 0x20, 0x6e,
0x20, 0x3d, 0x20, 0x6d, 0x20, 0x2b, 0x20, 0x34, 0x35, 0x3b,
0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x72, 0x73, 0x27, 0x2c,
0x6e, 0x2c, 0x31, 0x30, 0x30, 0x2c, 0x27, 0x52, 0x53, 0x53,
0x49, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x3b, 0xa, 0x7d, 0xa,
0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70,
0x28, 0x63, 0x2c, 0x6c, 0x2c, 0x74, 0x2c, 0x72, 0x29, 0x20,
0x7b, 0xa, 0x20, 0x20, 0x74, 0x6d, 0x3d, 0x63, 0x2b, 0x6c,
0x3b, 0xa, 0x20, 0x20, 0x63, 0x70, 0x3d, 0x63, 0x2a, 0x31,
0x2e, 0x38, 0x2f, 0x74, 0x6d, 0x3b, 0xa, 0x20, 0x20, 0x6c,
0x70, 0x3d, 0x6c, 0x2a, 0x30, 0x2e, 0x30, 0x35, 0x34, 0x35,
0x2f, 0x74, 0x6d, 0x3b, 0xa, 0x20, 0x20, 0x6c, 0x74, 0x3d,
0x74, 0x2a, 0x31, 0x37, 0x2e, 0x37, 0x2f, 0x74, 0x6d, 0x3b,
0xa, 0x20, 0x20, 0x6c, 0x72, 0x3d, 0x72, 0x2a, 0x32, 0x30,
0x2f, 0x74, 0x6d, 0x3b, 0xa, 0x20, 0x20, 0x6e, 0x3d, 0x63,
0x70, 0x2b, 0x6c, 0x70, 0x2b, 0x6c, 0x74, 0x2b, 0x6c, 0x72,
0x3b, 0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x70, 0x27, 0x2c,
0x6e, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x50, 0x6f, 0x77, 0x65,
0x72, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6e,
0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29,
0x3b, 0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x70, 0x63, 0x27,
0x2c, 0x63, 0x70, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x43, 0x50,
0x55, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x27, 0x2b,
0x64, 0x63, 0x28, 0x63, 0x70, 0x2c, 0x32, 0x29, 0x2b, 0x27,
0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b, 0xa, 0x20, 0x20, 0x73,
0x28, 0x27, 0x70, 0x6c, 0x27, 0x2c, 0x6c, 0x70, 0x2c, 0x33,
0x30, 0x2c, 0x27, 0x4c, 0x50, 0x4d, 0x20, 0x70, 0x6f, 0x77,
0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c, 0x70,
0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29,
0x3b, 0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x70, 0x72, 0x27,
0x2c, 0x6c, 0x72, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x52, 0x61,
0x64, 0x69, 0x6f, 0x20, 0x52, 0x58, 0x20, 0x70, 0x6f, 0x77,
0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c, 0x72,
0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29,
0x3b, 0xa, 0x20, 0x20, 0x73, 0x28, 0x27, 0x70, 0x74, 0x27,
0x2c, 0x6c, 0x74, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x52, 0x61,
0x64, 0x69, 0x6f, 0x20, 0x54, 0x58, 0x20, 0x70, 0x6f, 0x77,
0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c, 0x74,
0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29,
0x3b, 0xa, 0x7d, 0xa, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x69, 0x28, 0x6e, 0x29, 0x20, 0x7b, 0xa,
0x20, 0x20, 0x65, 0x28, 0x27, 0x69, 0x27, 0x29, 0x2e, 0x69,
0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d,
0x20, 0x6e, 0x3b, 0xa, 0x7d, 0xa, 0x3c, 0x2f, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x3e, 0xa, 0x3c, 0x68, 0x31, 0x3e,
0x4e, 0x6f, 0x64, 0x65, 0xa, 0x25, 0x21, 0x20, 0x6e, 0x6f,
0x64, 0x65, 0x69, 0x64, 0xa, 0x3c, 0x2f, 0x68, 0x31, 0x3e,
0xa, 0x3c, 0x61, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63,
0x6b, 0x3d, 0x22, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6e,
0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b,
0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x22,
0x3e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3c, 0x2f, 0x61,
0x3e, 0xa, 0xa, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69,
0x64, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x3e, 0x20,
0x3c, 0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0xa, 0x3c, 0x68,
0x32, 0x3e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
0x65, 0x6e, 0x74, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xa, 0x3c,
0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65,
0x6d, 0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0xa, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
0x68, 0x75, 0x6d, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76,
0x3e, 0xa, 0x3c, 0x68, 0x32, 0x3e, 0x4c, 0x69, 0x67, 0x68,
0x74, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xa, 0x3c, 0x64, 0x69,
0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x31, 0x22, 0x3e,
0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0xa, 0x3c, 0x64, 0x69,
0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x32, 0x22, 0x3e,
0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0xa, 0x3c, 0x68, 0x32,
0x3e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x3c, 0x2f, 0x68, 0x32,
0x3e, 0xa, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d,
0x22, 0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0xa, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
0x70, 0x63, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0xa, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
0x70, 0x6c, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0xa, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
0x70, 0x72, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0xa, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
0x70, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0xa, 0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xa,
0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69,
0x22, 0x3e, 0x30, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0xa,
0x25, 0x21, 0x3a, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65,
0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0xa, 0xa, 0};
static const unsigned char data_footer_html[] = {
/* /footer.html */
0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c,
0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68,
0x74, 0x6d, 0x6c, 0x3e, 0xa, 0};
const char data_sensordata_shtml[30] = {
/* /sensordata.shtml */
0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x25, 0x21, 0x20, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73,
0x0a, 0x00};
static const unsigned char data_spin_gif[] = {
/* /spin.gif */
0x2f, 0x73, 0x70, 0x69, 0x6e, 0x2e, 0x67, 0x69, 0x66, 0,
0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x12, 00, 0xf, 00,
0xf2, 00, 00, 0xff, 0xff, 0xff, 00, 00, 00, 00,
00, 00, 0x5c, 0x5c, 0x5c, 0xb4, 0xb4, 0xb4, 00, 00,
00, 00, 00, 00, 00, 00, 00, 0x21, 0xff, 0xb,
0x4e, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2e,
0x30, 0x3, 0x1, 00, 00, 00, 0x21, 0xfe, 0x1a, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74,
0x68, 0x20, 0x61, 0x6a, 0x61, 0x78, 0x6c, 0x6f, 0x61, 0x64,
0x2e, 0x69, 0x6e, 0x66, 0x6f, 00, 0x21, 0xf9, 0x4, 0x9,
0x5, 00, 00, 00, 0x2c, 00, 00, 00, 00, 0x12,
00, 0xf, 00, 00, 0x3, 0x1c, 0x8, 0xba, 0xdc, 0xfe,
0x30, 0xca, 0x49, 0xab, 0xbd, 0x38, 0x57, 0x21, 0x2e, 0xe7,
0xd6, 0xd7, 0x1, 0x3, 0x5, 0x92, 0x43, 0x9, 0x10, 0x4,
0xa5, 0x6a, 0x4e, 0x2, 00, 0x21, 0xf9, 0x4, 0x9, 0x5,
00, 00, 00, 0x2c, 00, 00, 00, 00, 0x12, 00,
0xf, 00, 00, 0x3, 0x1e, 0x8, 0xba, 0xdc, 0xfe, 0x30,
0xca, 0x49, 0xab, 0x6d, 0xe2, 0x2, 0xc1, 0x75, 0xd6, 0xca,
0x30, 0x5c, 0xa2, 0x68, 0x95, 0x23, 0x40, 0x50, 0xa6, 0x4a,
0xac, 0x17, 0xc, 0x3e, 0x9, 00, 0x21, 0xf9, 0x4, 0x9,
0x5, 00, 00, 00, 0x2c, 00, 00, 00, 00, 0x12,
00, 0xf, 00, 00, 0x3, 0x1c, 0x8, 0xba, 0xdc, 0xfe,
0x30, 0x4a, 0x20, 0xc4, 0xbc, 0x38, 0xab, 0xa1, 0xc1, 0xf8,
0x1d, 0xd7, 0x29, 0x4, 0xa1, 0x95, 0x65, 0x86, 0x9a, 0x2a,
0x3b, 0xbe, 0x53, 0x2, 00, 0x21, 0xf9, 0x4, 0x9, 0x5,
00, 00, 00, 0x2c, 00, 00, 00, 00, 0x12, 00,
0xf, 00, 00, 0x3, 0x17, 0x8, 0xba, 0xdc, 0xbe, 0xe2,
0xc9, 0xf9, 0xc6, 0xa0, 0x38, 0x6b, 0x47, 0xb6, 0x22, 0xa0,
0x7, 0x74, 0x62, 0x69, 0x9e, 0x68, 0x8a, 0x25, 00, 0x21,
0xf9, 0x4, 0x9, 0x5, 00, 00, 00, 0x2c, 00, 00,
00, 00, 0x12, 00, 0xf, 00, 00, 0x3, 0x14, 0x8,
0xba, 0xdc, 0xbe, 0xe3, 0xc9, 0x27, 0x24, 0x21, 0x33, 0xeb,
0xcd, 0xbb, 0xff, 0x60, 0x28, 0x8e, 0x24, 0x98, 00, 00,
0x21, 0xf9, 0x4, 0x9, 0x5, 00, 00, 00, 0x2c, 00,
00, 00, 00, 0x12, 00, 0xf, 00, 00, 0x3, 0x14,
0x8, 0xba, 0xdc, 0xbe, 0xe4, 0xc9, 0x37, 0xa6, 0xbd, 0x38,
0x2f, 0xa1, 0xbb, 0xff, 0x60, 0x28, 0x8e, 0x24, 0x90, 00,
00, 0x21, 0xf9, 0x4, 0x9, 0x5, 00, 00, 00, 0x2c,
00, 00, 00, 00, 0x12, 00, 0xf, 00, 00, 0x3,
0x13, 0x8, 0xba, 0xdc, 0xfe, 0x30, 0x2a, 0x22, 0xab, 0xbd,
0x76, 0xe0, 0xcd, 0xbb, 0x8f, 0xc2, 0x27, 0x8e, 0x57, 0x2,
00, 0x21, 0xf9, 0x4, 0x9, 0x5, 00, 00, 00, 0x2c,
00, 00, 00, 00, 0x12, 00, 0xf, 00, 00, 0x3,
0x14, 0x8, 0xba, 0xdc, 0xfe, 0x30, 0xca, 0x49, 0xab, 0x5,
0xe4, 0xea, 0xcd, 0x3b, 0x1b, 0x1e, 0x25, 0x8, 0x21, 0x97,
00, 00, 0x21, 0xf9, 0x4, 0x9, 0x5, 00, 00, 00,
0x2c, 00, 00, 00, 00, 0x12, 00, 0xf, 00, 00,
0x3, 0x17, 0x8, 0xba, 0xdc, 0xfe, 0x30, 0xca, 0x49, 0xab,
0xbd, 0x38, 0xeb, 0xed, 0x88, 0x14, 0x98, 0x20, 0x2a, 0xc3,
0x40, 0x81, 0x5c, 0x93, 00, 00, 0x3b, 00, 00, 00,
00, 00, 00, 00, 00, 00, 0};
const char data_sensors_shtml[2264] = {
/* /sensors.shtml */
0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x25, 0x21, 0x3a, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x3c, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x6a, 0x61, 0x76, 0x61,
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x3e, 0x0a, 0x76,
0x61, 0x72, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0x69,
0x3d, 0x6e, 0x65, 0x77, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65,
0x28, 0x35, 0x30, 0x2c, 0x36, 0x30, 0x29, 0x69, 0x2e, 0x73,
0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x2e, 0x67,
0x69, 0x66, 0x22, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x29, 0x7b, 0x76,
0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d, 0x64, 0x6f, 0x63,
0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45,
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64,
0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x29, 0x3b, 0x69,
0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
0x4d, 0x4c, 0x3d, 0x27, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b,
0x27, 0x3b, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61,
0x28, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61,
0x28, 0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x72, 0x3b, 0x74,
0x72, 0x79, 0x7b, 0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x58,
0x4d, 0x4c, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x28, 0x29, 0x7d, 0x63, 0x61, 0x74, 0x63,
0x68, 0x28, 0x65, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b, 0x72,
0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69, 0x76,
0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x22,
0x4d, 0x73, 0x78, 0x6d, 0x6c, 0x32, 0x2e, 0x58, 0x4d, 0x4c,
0x48, 0x54, 0x54, 0x50, 0x22, 0x29, 0x7d, 0x63, 0x61, 0x74,
0x63, 0x68, 0x28, 0x65, 0x29, 0x7b, 0x74, 0x72, 0x79, 0x7b,
0x72, 0x3d, 0x6e, 0x65, 0x77, 0x20, 0x41, 0x63, 0x74, 0x69,
0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28,
0x22, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74,
0x2e, 0x58, 0x4d, 0x4c, 0x48, 0x54, 0x54, 0x50, 0x22, 0x29,
0x7d, 0x63, 0x61, 0x74, 0x63, 0x68, 0x28, 0x65, 0x29, 0x7b,
0x61, 0x6c, 0x65, 0x72, 0x74, 0x28, 0x22, 0x59, 0x6f, 0x75,
0x72, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x20,
0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73,
0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x41, 0x4a, 0x41,
0x58, 0x21, 0x22, 0x29, 0x3b, 0x72, 0x65, 0x74, 0x75, 0x72,
0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x7d, 0x7d, 0x7d,
0x72, 0x2e, 0x6f, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x73,
0x74, 0x61, 0x74, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x3d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
0x29, 0x7b, 0x69, 0x66, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x61,
0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3d, 0x3d, 0x31,
0x29, 0x7b, 0x76, 0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d,
0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67,
0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42,
0x79, 0x49, 0x64, 0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22,
0x29, 0x3b, 0x69, 0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65,
0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27, 0x3c, 0x69, 0x6d,
0x67, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x73, 0x70, 0x69,
0x6e, 0x2e, 0x67, 0x69, 0x66, 0x22, 0x3e, 0x27, 0x7d, 0x69,
0x66, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53,
0x74, 0x61, 0x74, 0x65, 0x3d, 0x3d, 0x34, 0x29, 0x7b, 0x76,
0x61, 0x72, 0x20, 0x69, 0x6d, 0x67, 0x3d, 0x64, 0x6f, 0x63,
0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45,
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64,
0x28, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x29, 0x3b, 0x69,
0x6d, 0x67, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
0x4d, 0x4c, 0x3d, 0x27, 0x74, 0x6f, 0x6f, 0x6b, 0x20, 0x27,
0x2b, 0x28, 0x28, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74,
0x65, 0x28, 0x29, 0x29, 0x2e, 0x67, 0x65, 0x74, 0x54, 0x69,
0x6d, 0x65, 0x28, 0x29, 0x2d, 0x73, 0x74, 0x61, 0x72, 0x74,
0x2e, 0x67, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x28, 0x29,
0x29, 0x2f, 0x31, 0x30, 0x30, 0x30, 0x2b, 0x27, 0x20, 0x73,
0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x27, 0x3b, 0x65, 0x76,
0x61, 0x6c, 0x28, 0x72, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x29, 0x7d, 0x7d,
0x73, 0x74, 0x61, 0x72, 0x74, 0x3d, 0x6e, 0x65, 0x77, 0x20,
0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0x72, 0x2e, 0x6f,
0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, 0x45, 0x54, 0x22, 0x2c,
0x22, 0x2f, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x64, 0x61,
0x74, 0x61, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x2c,
0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x72, 0x2e, 0x73, 0x65,
0x6e, 0x64, 0x28, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x7d, 0x66,
0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x65, 0x28,
0x65, 0x6c, 0x29, 0x7b, 0x64, 0x3d, 0x64, 0x6f, 0x63, 0x75,
0x6d, 0x65, 0x6e, 0x74, 0x3b, 0x69, 0x66, 0x28, 0x64, 0x2e,
0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
0x42, 0x79, 0x49, 0x64, 0x29, 0x7b, 0x72, 0x65, 0x74, 0x75,
0x72, 0x6e, 0x20, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c,
0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28,
0x65, 0x6c, 0x29, 0x7d, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69,
0x66, 0x28, 0x64, 0x2e, 0x61, 0x6c, 0x6c, 0x29, 0x7b, 0x72,
0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x64, 0x2e, 0x61, 0x6c,
0x6c, 0x5b, 0x65, 0x6c, 0x5d, 0x7d, 0x7d, 0x66, 0x75, 0x6e,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x28, 0x65, 0x6c,
0x2c, 0x6e, 0x2c, 0x6d, 0x61, 0x78, 0x2c, 0x74, 0x65, 0x78,
0x74, 0x29, 0x7b, 0x65, 0x28, 0x65, 0x6c, 0x29, 0x2e, 0x69,
0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x3d, 0x27,
0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64,
0x74, 0x68, 0x3d, 0x35, 0x30, 0x34, 0x20, 0x62, 0x6f, 0x72,
0x64, 0x65, 0x72, 0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c, 0x6c,
0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x31, 0x20,
0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e,
0x67, 0x3d, 0x30, 0x3e, 0x27, 0x2b, 0x27, 0x3c, 0x74, 0x72,
0x3e, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68,
0x3d, 0x32, 0x30, 0x30, 0x3e, 0x27, 0x2b, 0x74, 0x65, 0x78,
0x74, 0x2b, 0x27, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x27, 0x2b,
0x27, 0x3c, 0x74, 0x64, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68,
0x3d, 0x27, 0x2b, 0x28, 0x33, 0x30, 0x30, 0x2a, 0x6e, 0x2f,
0x6d, 0x61, 0x78, 0x29, 0x2b, 0x27, 0x20, 0x62, 0x67, 0x63,
0x6f, 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x67, 0x72, 0x61, 0x79,
0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f,
0x74, 0x64, 0x3e, 0x27, 0x2b, 0x27, 0x3c, 0x74, 0x64, 0x20,
0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x27, 0x2b, 0x28, 0x33,
0x30, 0x30, 0x2d, 0x33, 0x30, 0x30, 0x2a, 0x6e, 0x2f, 0x6d,
0x61, 0x78, 0x29, 0x2b, 0x27, 0x20, 0x62, 0x67, 0x63, 0x6f,
0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x6c, 0x69, 0x67, 0x68, 0x74,
0x67, 0x72, 0x61, 0x79, 0x22, 0x3e, 0x26, 0x6e, 0x62, 0x73,
0x70, 0x3b, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x27, 0x2b, 0x27,
0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x27, 0x7d,
0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64,
0x63, 0x28, 0x6e, 0x2c, 0x64, 0x29, 0x7b, 0x72, 0x65, 0x74,
0x75, 0x72, 0x6e, 0x20, 0x6e, 0x2e, 0x74, 0x6f, 0x46, 0x69,
0x78, 0x65, 0x64, 0x28, 0x64, 0x29, 0x7d, 0x66, 0x75, 0x6e,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x28, 0x6d, 0x29,
0x7b, 0x6e, 0x3d, 0x64, 0x63, 0x28, 0x2d, 0x33, 0x39, 0x2e,
0x36, 0x2b, 0x30, 0x2e, 0x30, 0x31, 0x2a, 0x6d, 0x2c, 0x31,
0x29, 0x3b, 0x73, 0x28, 0x27, 0x74, 0x65, 0x6d, 0x70, 0x27,
0x2c, 0x6e, 0x2c, 0x34, 0x30, 0x2c, 0x27, 0x54, 0x65, 0x6d,
0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x27,
0x2b, 0x6e, 0x2b, 0x27, 0x20, 0x26, 0x64, 0x65, 0x67, 0x3b,
0x43, 0x27, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x68, 0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d,
0x64, 0x63, 0x28, 0x2d, 0x34, 0x2b, 0x30, 0x2e, 0x30, 0x34,
0x30, 0x35, 0x2a, 0x6d, 0x2d, 0x32, 0x2e, 0x38, 0x65, 0x2d,
0x36, 0x2a, 0x28, 0x6d, 0x2a, 0x6d, 0x29, 0x2c, 0x32, 0x29,
0x3b, 0x73, 0x28, 0x27, 0x68, 0x75, 0x6d, 0x27, 0x2c, 0x6e,
0x2c, 0x31, 0x30, 0x30, 0x2c, 0x27, 0x48, 0x75, 0x6d, 0x69,
0x64, 0x69, 0x74, 0x79, 0x20, 0x27, 0x2b, 0x6e, 0x2b, 0x27,
0x25, 0x27, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x20, 0x6c, 0x31, 0x28, 0x6d, 0x29, 0x7b, 0x6e,
0x3d, 0x64, 0x63, 0x28, 0x2e, 0x37, 0x36, 0x32, 0x39, 0x33,
0x39, 0x34, 0x33, 0x37, 0x35, 0x2a, 0x6d, 0x2c, 0x30, 0x29,
0x3b, 0x73, 0x28, 0x27, 0x6c, 0x31, 0x27, 0x2c, 0x6e, 0x2c,
0x32, 0x30, 0x30, 0x2c, 0x27, 0x4c, 0x69, 0x67, 0x68, 0x74,
0x20, 0x31, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x7d, 0x66, 0x75,
0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x32, 0x28,
0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x64, 0x63, 0x28, 0x2e, 0x34,
0x36, 0x39, 0x33, 0x36, 0x30, 0x33, 0x2a, 0x6d, 0x2c, 0x30,
0x29, 0x3b, 0x73, 0x28, 0x27, 0x6c, 0x32, 0x27, 0x2c, 0x6e,
0x2c, 0x32, 0x30, 0x30, 0x2c, 0x27, 0x4c, 0x69, 0x67, 0x68,
0x74, 0x20, 0x32, 0x20, 0x27, 0x2b, 0x6e, 0x29, 0x7d, 0x66,
0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x73,
0x28, 0x6d, 0x29, 0x7b, 0x6e, 0x3d, 0x6d, 0x2b, 0x34, 0x35,
0x3b, 0x73, 0x28, 0x27, 0x72, 0x73, 0x27, 0x2c, 0x6e, 0x2c,
0x31, 0x30, 0x30, 0x2c, 0x27, 0x52, 0x53, 0x53, 0x49, 0x20,
0x27, 0x2b, 0x6e, 0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74,
0x69, 0x6f, 0x6e, 0x20, 0x70, 0x28, 0x63, 0x2c, 0x6c, 0x2c,
0x74, 0x2c, 0x72, 0x29, 0x7b, 0x74, 0x6d, 0x3d, 0x63, 0x2b,
0x6c, 0x3b, 0x63, 0x70, 0x3d, 0x63, 0x2a, 0x31, 0x2e, 0x38,
0x2f, 0x74, 0x6d, 0x3b, 0x6c, 0x70, 0x3d, 0x6c, 0x2a, 0x30,
0x2e, 0x30, 0x35, 0x34, 0x35, 0x2f, 0x74, 0x6d, 0x3b, 0x6c,
0x74, 0x3d, 0x74, 0x2a, 0x31, 0x37, 0x2e, 0x37, 0x2f, 0x74,
0x6d, 0x3b, 0x6c, 0x72, 0x3d, 0x72, 0x2a, 0x32, 0x30, 0x2f,
0x74, 0x6d, 0x3b, 0x6e, 0x3d, 0x63, 0x70, 0x2b, 0x6c, 0x70,
0x2b, 0x6c, 0x74, 0x2b, 0x6c, 0x72, 0x3b, 0x73, 0x28, 0x27,
0x70, 0x27, 0x2c, 0x6e, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x50,
0x6f, 0x77, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x75,
0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x27, 0x2b, 0x64,
0x63, 0x28, 0x6e, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d,
0x57, 0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70, 0x63, 0x27,
0x2c, 0x63, 0x70, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x43, 0x50,
0x55, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x27, 0x2b,
0x64, 0x63, 0x28, 0x63, 0x70, 0x2c, 0x32, 0x29, 0x2b, 0x27,
0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70,
0x6c, 0x27, 0x2c, 0x6c, 0x70, 0x2c, 0x33, 0x30, 0x2c, 0x27,
0x4c, 0x50, 0x4d, 0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20,
0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c, 0x70, 0x2c, 0x32, 0x29,
0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73, 0x28,
0x27, 0x70, 0x72, 0x27, 0x2c, 0x6c, 0x72, 0x2c, 0x33, 0x30,
0x2c, 0x27, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x20, 0x52, 0x58,
0x20, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x20, 0x27, 0x2b, 0x64,
0x63, 0x28, 0x6c, 0x72, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20,
0x6d, 0x57, 0x27, 0x29, 0x3b, 0x73, 0x28, 0x27, 0x70, 0x74,
0x27, 0x2c, 0x6c, 0x74, 0x2c, 0x33, 0x30, 0x2c, 0x27, 0x52,
0x61, 0x64, 0x69, 0x6f, 0x20, 0x54, 0x58, 0x20, 0x70, 0x6f,
0x77, 0x65, 0x72, 0x20, 0x27, 0x2b, 0x64, 0x63, 0x28, 0x6c,
0x74, 0x2c, 0x32, 0x29, 0x2b, 0x27, 0x20, 0x6d, 0x57, 0x27,
0x29, 0x7d, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x20, 0x69, 0x28, 0x6e, 0x29, 0x7b, 0x65, 0x28, 0x27, 0x69,
0x27, 0x29, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54,
0x4d, 0x4c, 0x3d, 0x6e, 0x7d, 0x0a, 0x3c, 0x2f, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x3c, 0x68, 0x31, 0x3e,
0x4e, 0x6f, 0x64, 0x65, 0x0a, 0x25, 0x21, 0x20, 0x6e, 0x6f,
0x64, 0x65, 0x69, 0x64, 0x0a, 0x3c, 0x2f, 0x68, 0x31, 0x3e,
0x0a, 0x3c, 0x61, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63,
0x6b, 0x3d, 0x22, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6e,
0x73, 0x6f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x28, 0x29, 0x3b,
0x22, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x23, 0x22,
0x3e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x3c, 0x2f, 0x61,
0x3e, 0x0a, 0x3c, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x69, 0x64,
0x3d, 0x22, 0x73, 0x70, 0x69, 0x6e, 0x22, 0x3e, 0x20, 0x3c,
0x2f, 0x73, 0x70, 0x61, 0x6e, 0x3e, 0x0a, 0x3c, 0x68, 0x32,
0x3e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
0x6e, 0x74, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x3c, 0x64,
0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x74, 0x65, 0x6d,
0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x68,
0x75, 0x6d, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e,
0x0a, 0x3c, 0x68, 0x32, 0x3e, 0x4c, 0x69, 0x67, 0x68, 0x74,
0x3c, 0x2f, 0x68, 0x32, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76,
0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x31, 0x22, 0x3e, 0x3c,
0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x64, 0x69, 0x76,
0x20, 0x69, 0x64, 0x3d, 0x22, 0x6c, 0x32, 0x22, 0x3e, 0x3c,
0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x68, 0x32, 0x3e,
0x50, 0x6f, 0x77, 0x65, 0x72, 0x3c, 0x2f, 0x68, 0x32, 0x3e,
0x0a, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22,
0x70, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
0x63, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
0x6c, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
0x72, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x70,
0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a,
0x3c, 0x62, 0x72, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c,
0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x69, 0x22,
0x3e, 0x30, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x25,
0x21, 0x3a, 0x20, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72,
0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x0a, 0x0a, 0x00};
static const unsigned char data_neighbors_shtml[] = {
/* /neighbors.shtml */
0x2f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0,
0x25, 0x21, 0x3a, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x3c, 0x68, 0x31,
0x3e, 0x4e, 0x6f, 0x64, 0x65, 0xa, 0x25, 0x21, 0x20, 0x6e,
0x6f, 0x64, 0x65, 0x69, 0x64, 0xa, 0x3c, 0x2f, 0x68, 0x31,
0x3e, 0xa, 0x3c, 0x68, 0x32, 0x3e, 0x4e, 0x65, 0x69, 0x67,
0x68, 0x62, 0x6f, 0x72, 0x73, 0x3c, 0x2f, 0x68, 0x32, 0x3e,
0xa, 0x3c, 0x75, 0x6c, 0x3e, 0xa, 0x25, 0x21, 0x20, 0x6e,
0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0xa, 0x3c,
0x2f, 0x75, 0x6c, 0x3e, 0xa, 0x25, 0x21, 0x3a, 0x20, 0x2f,
0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d,
0x6c, 0xa, 0xa, 0};
const char data_footer_html[39] = {
/* /footer.html */
0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0x0a, 0x3c,
0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68,
0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x00};
static const unsigned char data_404_html[] = {
/* /404.html */
0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x20, 0x20, 0x3c,
0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c,
0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22,
0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, 0x65, 0x6e,
0x74, 0x65, 0x72, 0x3e, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d,
0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20,
0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e,
0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x33,
0x3e, 0x47, 0x6f, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65,
0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, 0x68, 0x65, 0x72, 0x65,
0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65,
0x61, 0x64, 0x2e, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0xa, 0x20,
0x20, 0x20, 0x20, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65,
0x72, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64,
0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e,
0};
const char data_spin_gif[507] = {
/* /spin.gif */
0x2f, 0x73, 0x70, 0x69, 0x6e, 0x2e, 0x67, 0x69, 0x66, 0x00,
0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x12, 0x00, 0x0f, 0x00,
0xf2, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5c, 0x5c, 0x5c, 0xb4, 0xb4, 0xb4, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xff, 0x0b,
0x4e, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2e,
0x30, 0x03, 0x01, 0x00, 0x00, 0x00, 0x21, 0xfe, 0x1a, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74,
0x68, 0x20, 0x61, 0x6a, 0x61, 0x78, 0x6c, 0x6f, 0x61, 0x64,
0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x00, 0x21, 0xf9, 0x04, 0x09,
0x05, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x12,
0x00, 0x0f, 0x00, 0x00, 0x03, 0x1c, 0x08, 0xba, 0xdc, 0xfe,
0x30, 0xca, 0x49, 0xab, 0xbd, 0x38, 0x57, 0x21, 0x2e, 0xe7,
0xd6, 0xd7, 0x01, 0x03, 0x05, 0x92, 0x43, 0x09, 0x10, 0x04,
0xa5, 0x6a, 0x4e, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x09, 0x05,
0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00,
0x0f, 0x00, 0x00, 0x03, 0x1e, 0x08, 0xba, 0xdc, 0xfe, 0x30,
0xca, 0x49, 0xab, 0x6d, 0xe2, 0x02, 0xc1, 0x75, 0xd6, 0xca,
0x30, 0x5c, 0xa2, 0x68, 0x95, 0x23, 0x40, 0x50, 0xa6, 0x4a,
0xac, 0x17, 0x0c, 0x3e, 0x09, 0x00, 0x21, 0xf9, 0x04, 0x09,
0x05, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x12,
0x00, 0x0f, 0x00, 0x00, 0x03, 0x1c, 0x08, 0xba, 0xdc, 0xfe,
0x30, 0x4a, 0x20, 0xc4, 0xbc, 0x38, 0xab, 0xa1, 0xc1, 0xf8,
0x1d, 0xd7, 0x29, 0x04, 0xa1, 0x95, 0x65, 0x86, 0x9a, 0x2a,
0x3b, 0xbe, 0x53, 0x02, 0x00, 0x21, 0xf9, 0x04, 0x09, 0x05,
0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00,
0x0f, 0x00, 0x00, 0x03, 0x17, 0x08, 0xba, 0xdc, 0xbe, 0xe2,
0xc9, 0xf9, 0xc6, 0xa0, 0x38, 0x6b, 0x47, 0xb6, 0x22, 0xa0,
0x07, 0x74, 0x62, 0x69, 0x9e, 0x68, 0x8a, 0x25, 0x00, 0x21,
0xf9, 0x04, 0x09, 0x05, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00,
0x00, 0x00, 0x12, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x14, 0x08,
0xba, 0xdc, 0xbe, 0xe3, 0xc9, 0x27, 0x24, 0x21, 0x33, 0xeb,
0xcd, 0xbb, 0xff, 0x60, 0x28, 0x8e, 0x24, 0x98, 0x00, 0x00,
0x21, 0xf9, 0x04, 0x09, 0x05, 0x00, 0x00, 0x00, 0x2c, 0x00,
0x00, 0x00, 0x00, 0x12, 0x00, 0x0f, 0x00, 0x00, 0x03, 0x14,
0x08, 0xba, 0xdc, 0xbe, 0xe4, 0xc9, 0x37, 0xa6, 0xbd, 0x38,
0x2f, 0xa1, 0xbb, 0xff, 0x60, 0x28, 0x8e, 0x24, 0x90, 0x00,
0x00, 0x21, 0xf9, 0x04, 0x09, 0x05, 0x00, 0x00, 0x00, 0x2c,
0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x0f, 0x00, 0x00, 0x03,
0x13, 0x08, 0xba, 0xdc, 0xfe, 0x30, 0x2a, 0x22, 0xab, 0xbd,
0x76, 0xe0, 0xcd, 0xbb, 0x8f, 0xc2, 0x27, 0x8e, 0x57, 0x02,
0x00, 0x21, 0xf9, 0x04, 0x09, 0x05, 0x00, 0x00, 0x00, 0x2c,
0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x0f, 0x00, 0x00, 0x03,
0x14, 0x08, 0xba, 0xdc, 0xfe, 0x30, 0xca, 0x49, 0xab, 0x05,
0xe4, 0xea, 0xcd, 0x3b, 0x1b, 0x1e, 0x25, 0x08, 0x21, 0x97,
0x00, 0x00, 0x21, 0xf9, 0x04, 0x09, 0x05, 0x00, 0x00, 0x00,
0x2c, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x0f, 0x00, 0x00,
0x03, 0x17, 0x08, 0xba, 0xdc, 0xfe, 0x30, 0xca, 0x49, 0xab,
0xbd, 0x38, 0xeb, 0xed, 0x88, 0x14, 0x98, 0x20, 0x2a, 0xc3,
0x40, 0x81, 0x5c, 0x93, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
static const unsigned char data_header_html[] = {
/* /header.html */
0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20,
0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49,
0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f,
0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20,
0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45,
0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34,
0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64,
0x22, 0x3e, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa,
0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x3c, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b,
0x69, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa,
0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x3c, 0x62,
0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 0x20,
0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3d, 0x22, 0x6c, 0x6f,
0x61, 0x64, 0x28, 0x29, 0x22, 0x3e, 0xa, 0x3c, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72,
0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64,
0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34, 0x20, 0x63, 0x65, 0x6c,
0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x34,
0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x76,
0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70,
0x22, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72,
0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0xa, 0x3c, 0x68, 0x31,
0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x26, 0x6e,
0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0xa,
0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f,
0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x70, 0x61,
0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e,
0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22,
0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2e,
0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x4e, 0x65, 0x69,
0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x3c, 0x2f, 0x61, 0x3e,
0x3c, 0x62, 0x72, 0x3e, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72,
0x65, 0x66, 0x3d, 0x22, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72,
0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x53,
0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x3c, 0x2f, 0x61, 0x3e,
0x3c, 0x62, 0x72, 0x3e, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e,
0x3c, 0x74, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e,
0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x20, 0x61, 0x6c, 0x69,
0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e,
0xa, 0};
const char data_neighbors_shtml[121] = {
/* /neighbors.shtml */
0x2f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x25, 0x21, 0x3a, 0x20, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x0a, 0x3c, 0x68, 0x31,
0x3e, 0x4e, 0x6f, 0x64, 0x65, 0x0a, 0x25, 0x21, 0x20, 0x6e,
0x6f, 0x64, 0x65, 0x69, 0x64, 0x0a, 0x3c, 0x2f, 0x68, 0x31,
0x3e, 0x0a, 0x3c, 0x68, 0x32, 0x3e, 0x4e, 0x65, 0x69, 0x67,
0x68, 0x62, 0x6f, 0x72, 0x73, 0x3c, 0x2f, 0x68, 0x32, 0x3e,
0x0a, 0x3c, 0x75, 0x6c, 0x3e, 0x0a, 0x25, 0x21, 0x20, 0x6e,
0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x0a, 0x3c,
0x2f, 0x75, 0x6c, 0x3e, 0x0a, 0x25, 0x21, 0x3a, 0x20, 0x2f,
0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d,
0x6c, 0x0a, 0x0a, 0x00};
static const unsigned char data_index_html[] = {
/* /index.html */
0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,
0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20,
0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49,
0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f,
0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20,
0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45,
0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34,
0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64,
0x22, 0x3e, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa,
0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x3c, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b,
0x69, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xa,
0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xa, 0x3c, 0x62,
0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 0x3e,
0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x6f,
0x72, 0x64, 0x65, 0x72, 0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c,
0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34,
0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69,
0x6e, 0x67, 0x3d, 0x34, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c,
0x74, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d,
0x22, 0x74, 0x6f, 0x70, 0x22, 0x20, 0x61, 0x6c, 0x69, 0x67,
0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e,
0xa, 0x3c, 0x68, 0x31, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69,
0x6b, 0x69, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f,
0x68, 0x31, 0x3e, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65,
0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e,
0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e,
0x3c, 0x62, 0x72, 0x3e, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72,
0x65, 0x66, 0x3d, 0x22, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22,
0x3e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73,
0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x3c,
0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x65,
0x6e, 0x73, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d,
0x6c, 0x22, 0x3e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73,
0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x3c,
0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x76, 0x61,
0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22,
0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65,
0x66, 0x74, 0x22, 0x3e, 0xa, 0x3c, 0x2f, 0x74, 0x61, 0x62,
0x6c, 0x65, 0x3e, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79,
0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa,
0};
const char data_404_html[171] = {
/* /404.html */
0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x20, 0x20, 0x3c,
0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c,
0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22,
0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x63, 0x65, 0x6e,
0x74, 0x65, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d,
0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20,
0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x68, 0x33,
0x3e, 0x47, 0x6f, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65,
0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, 0x68, 0x65, 0x72, 0x65,
0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65,
0x61, 0x64, 0x2e, 0x3c, 0x2f, 0x68, 0x33, 0x3e, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65,
0x72, 0x3e, 0x0a, 0x20, 0x20, 0x3c, 0x2f, 0x62, 0x6f, 0x64,
0x79, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e,
0x00};
const struct httpd_fsdata_file file_sensordata_shtml[] = {{NULL, data_sensordata_shtml, data_sensordata_shtml + 18, sizeof(data_sensordata_shtml) - 18}};
const char data_header_html[455] = {
/* /header.html */
0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20,
0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49,
0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f,
0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20,
0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45,
0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34,
0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64,
0x22, 0x3e, 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a,
0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b,
0x69, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a,
0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x62,
0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 0x20,
0x6f, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x3d, 0x22, 0x6c, 0x6f,
0x61, 0x64, 0x28, 0x29, 0x22, 0x3e, 0x0a, 0x3c, 0x74, 0x61,
0x62, 0x6c, 0x65, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72,
0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64,
0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34, 0x20, 0x63, 0x65, 0x6c,
0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3d, 0x34,
0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x76,
0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70,
0x22, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72,
0x69, 0x67, 0x68, 0x74, 0x22, 0x3e, 0x0a, 0x3c, 0x68, 0x31,
0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b, 0x69, 0x26, 0x6e,
0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x0a,
0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f,
0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x20, 0x70, 0x61,
0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e,
0x0a, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22,
0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2e,
0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x4e, 0x65, 0x69,
0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x3c, 0x2f, 0x61, 0x3e,
0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c, 0x61, 0x20, 0x68, 0x72,
0x65, 0x66, 0x3d, 0x22, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72,
0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x53,
0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x3c, 0x2f, 0x61, 0x3e,
0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c, 0x2f, 0x74, 0x64, 0x3e,
0x3c, 0x74, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e,
0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22, 0x20, 0x61, 0x6c, 0x69,
0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65, 0x66, 0x74, 0x22, 0x3e,
0x0a, 0x00};
const struct httpd_fsdata_file file_sensors_shtml[] = {{file_sensordata_shtml, data_sensors_shtml, data_sensors_shtml + 15, sizeof(data_sensors_shtml) - 15}};
const char data_index_html[463] = {
/* /index.html */
0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x00,
0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20,
0x48, 0x54, 0x4d, 0x4c, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49,
0x43, 0x20, 0x22, 0x2d, 0x2f, 0x2f, 0x57, 0x33, 0x43, 0x2f,
0x2f, 0x44, 0x54, 0x44, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20,
0x34, 0x2e, 0x30, 0x31, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x2f, 0x45,
0x4e, 0x22, 0x20, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f,
0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x54, 0x52, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x34,
0x2f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x2e, 0x64, 0x74, 0x64,
0x22, 0x3e, 0x0a, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a,
0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x74, 0x69,
0x74, 0x6c, 0x65, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6b,
0x69, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a,
0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x3c, 0x62,
0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f,
0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, 0x3e,
0x0a, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x62, 0x6f,
0x72, 0x64, 0x65, 0x72, 0x3d, 0x30, 0x20, 0x63, 0x65, 0x6c,
0x6c, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x34,
0x20, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69,
0x6e, 0x67, 0x3d, 0x34, 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c,
0x74, 0x64, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d,
0x22, 0x74, 0x6f, 0x70, 0x22, 0x20, 0x61, 0x6c, 0x69, 0x67,
0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, 0x22, 0x3e,
0x0a, 0x3c, 0x68, 0x31, 0x3e, 0x43, 0x6f, 0x6e, 0x74, 0x69,
0x6b, 0x69, 0x26, 0x6e, 0x62, 0x73, 0x70, 0x3b, 0x3c, 0x2f,
0x68, 0x31, 0x3e, 0x0a, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65,
0x66, 0x3d, 0x22, 0x2f, 0x22, 0x3e, 0x46, 0x72, 0x6f, 0x6e,
0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x61, 0x3e,
0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c, 0x61, 0x20, 0x68, 0x72,
0x65, 0x66, 0x3d, 0x22, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62,
0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d, 0x6c, 0x22,
0x3e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73,
0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c,
0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x73, 0x65,
0x6e, 0x73, 0x6f, 0x72, 0x73, 0x2e, 0x73, 0x68, 0x74, 0x6d,
0x6c, 0x22, 0x3e, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73,
0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x62, 0x72, 0x3e, 0x0a, 0x3c,
0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x76, 0x61,
0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x74, 0x6f, 0x70, 0x22,
0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6c, 0x65,
0x66, 0x74, 0x22, 0x3e, 0x0a, 0x3c, 0x2f, 0x74, 0x61, 0x62,
0x6c, 0x65, 0x3e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79,
0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a,
0x00};
const struct httpd_fsdata_file file_footer_html[] = {{file_sensors_shtml, data_footer_html, data_footer_html + 13, sizeof(data_footer_html) - 13}};
const struct httpd_fsdata_file file_spin_gif[] = {{file_footer_html, data_spin_gif, data_spin_gif + 10, sizeof(data_spin_gif) - 10}};
/* Structure of linked list (all offsets relative to start of section):
struct httpd_fsdata_file {
const struct httpd_fsdata_file *next; //actual flash address of next link
const char *name; //offset to coffee file name
const char *data; //offset to coffee file data
const int len; //length of file data
#if HTTPD_FS_STATISTICS == 1 //not enabled since list is in PROGMEM
u16_t count; //storage for file statistics
#endif
}
*/
const struct httpd_fsdata_file file_sensordata_shtml[] ={{ NULL, data_sensordata_shtml, data_sensordata_shtml +18, sizeof(data_sensordata_shtml) -18}};
const struct httpd_fsdata_file file_sensors_shtml[] ={{file_sensordata_shtml, data_sensors_shtml , data_sensors_shtml +15, sizeof(data_sensors_shtml) -15}};
const struct httpd_fsdata_file file_footer_html[] ={{ file_sensors_shtml, data_footer_html , data_footer_html +13, sizeof(data_footer_html) -13}};
const struct httpd_fsdata_file file_spin_gif[] ={{ file_footer_html, data_spin_gif , data_spin_gif +10, sizeof(data_spin_gif) -10}};
const struct httpd_fsdata_file file_neighbors_shtml[] ={{ file_spin_gif, data_neighbors_shtml, data_neighbors_shtml +17, sizeof(data_neighbors_shtml) -17}};
const struct httpd_fsdata_file file_404_html[] ={{file_neighbors_shtml, data_404_html , data_404_html +10, sizeof(data_404_html) -10}};
const struct httpd_fsdata_file file_header_html[] ={{ file_404_html, data_header_html , data_header_html +13, sizeof(data_header_html) -13}};
const struct httpd_fsdata_file file_index_html[] ={{ file_header_html, data_index_html , data_index_html +12, sizeof(data_index_html) -12}};
const struct httpd_fsdata_file file_neighbors_shtml[] = {{file_spin_gif, data_neighbors_shtml, data_neighbors_shtml + 17, sizeof(data_neighbors_shtml) - 17}};
const struct httpd_fsdata_file file_404_html[] = {{file_neighbors_shtml, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};
const struct httpd_fsdata_file file_header_html[] = {{file_404_html, data_header_html, data_header_html + 13, sizeof(data_header_html) - 13}};
const struct httpd_fsdata_file file_index_html[] = {{file_header_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};
#define HTTPD_FS_ROOT file_index_html
#define HTTPD_FS_NUMFILES 8
#define HTTPD_FS_ROOT file_index_html
#define HTTPD_FS_NUMFILES 8
#define HTTPD_FS_SIZE 4050

View File

@ -0,0 +1,98 @@
/* This is the uncompressed version of the script in httpd-fs/sensordata.shtml */
var start;
i = new Image(50,60)
i.src = "spin.gif"
function load() {
var img = document.getElementById("spin");
img.innerHTML = '&nbsp;';
loadData();
}
function loadData() {
var r;
try { r = new XMLHttpRequest(); }
catch(e) {
try { r = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {
try { r = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
r.onreadystatechange = function() {
if(r.readyState == 1) {
var img = document.getElementById("spin");
img.innerHTML = '<img src="spin.gif">';
}
if(r.readyState == 4) {
var img = document.getElementById("spin");
img.innerHTML = 'took ' +
((new Date()).getTime() - start.getTime()) / 1000 +
' seconds';
eval(r.responseText);
}
}
start = new Date();
r.open("GET", "/sensordata.shtml", true);
r.send(null);
}
function e(el) {
d = document;
if(d.getElementById) {
return d.getElementById(el);
} else if (d.all) {
return d.all[el];
}
}
function s(el,n,max,text) {
e(el).innerHTML = '<table width=504 border=0 cellpadding=1 cellspacing=0>'+
'<tr><td width=200>' +
text + '</td>' +
'<td width=' + (300*n/max) + ' bgcolor="gray">&nbsp;</td>' +
'<td width=' + (300-300*n/max) + ' bgcolor="lightgray">&nbsp;</td>' +
'</table>';
}
function dc(n,d) {
return n.toFixed(d);
}
function t(m) {
n = dc(-39.6+0.01*m, 1);
s('temp',n,40,'Temperature '+n+' &deg;C');
}
function h(m) {
n = dc(-4+0.0405*m - 2.8e-6*(m*m), 2);
s('hum',n,100,'Humidity '+n+'%');
}
function l1(m) {
n = dc(.7629394375*m, 0);
s('l1',n,200,'Light 1 '+n);
}
function l2(m) {
n = dc(.4693603*m, 0);
s('l2',n,200,'Light 2 '+n);
}
function rs(m) {
n = m + 45;
s('rs',n,100,'RSSI '+n);
}
function p(c,l,t,r) {
tm=c+l;
cp=c*1.8/tm;
lp=l*0.0545/tm;
lt=t*17.7/tm;
lr=r*20/tm;
n=cp+lp+lt+lr;
s('p',n,30,'Power consumption '+dc(n,2)+' mW');
s('pc',cp,30,'CPU power '+dc(cp,2)+' mW');
s('pl',lp,30,'LPM power '+dc(lp,2)+' mW');
s('pr',lr,30,'Radio RX power '+dc(lr,2)+' mW');
s('pt',lt,30,'Radio TX power '+dc(lt,2)+' mW');
}
function i(n) {
e('i').innerHTML = n;
}