c = document.getElementsByTagName('canvas')[0],
document.body.clientWidth;
var loopxy = function(w, h, step, callback) {
for(var x=0; x<w; x+=step) {
for(var y=0; y<h; y+=step) {
a.clearRect(0, 0, c.width, c.height);
a.textBaseline = "bottom";
var d = a.getImageData(0, 0, c.width, c.height)
loopxy(d.width, d.height, g, function(x, y) {
if(d.data[(x + y*d.width)*4+3] >= l) fill.push([x, y]);
var d = a.getImageData(0, 0, c.width, c.height)
loopxy(d.width, d.height, g, function(x, y) {
if(d.data[(x + y*d.width)*4+3] >= l) {
box.push((box[0]+box[2])/2);
box.push((box[1]+box[3])/2);
var t0 = new Date().getTime();
window.setTimeout(function() {
var d = new Date().getTime()-t0;
loopxy(fill.length, 1, 1, function(i) {
a.fillRect(x-g/2+Math.sin(t0/500+y/80)*(x-box[4])+10, y-g/2+10, g, g);
loopxy(outline.length, 1, 1, function(i) {
a.fillRect(x-g/2+Math.sin(t0/500+y/80)*(x-box[4])+10, y-g/2+10, g, g);