anchor.diff:  void main() {
   
     Impress pres = new Impress();
  +
  +  window.on.hashChange.add((e) {
  +    int step = Math.parseInt(window.location.hash.substring(1));
  +    if (step != pres.mCurrentStep)
  +      pres.goto(step);
  +  });
  +
     pres.setupPresentation();
   
     bool serverControl = false;
  
positive.code:     }
      // Iterate over attributes of the step jumped to and apply CSS
      mCurrentStep = step;
      mCanvas.style.cssText = getState(mSteps[mCurrentStep]).canvasCSS();
      // Scale and perspective
      mImpress.style.cssText = getState(mSteps[mCurrentStep]).scaleCSS();
  
negative.code: 
      // Scale and perspective
      mImpress.style.cssText = getState(mSteps[0]).scaleCSS();
  
      // Go to the first step, unless an explicit step is requested in the href
      goto(window.location.hash.isEmpty() ? 0 : Math.parseInt(window.location.hash.substring(1)));
    }
  
    /**
  