<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
  <head>
    <title>Gerrit Code Review</title>
    <script type="text/javascript" language="javascript">
      var href = window.location.href;
      var p = href.indexOf('#');
      var token;
      if (p >= 0) {
        token = href.substring(p + 1);
        if (token.length != 0 && token.charAt(0) == '/') {
          token = token.substring(1);
        }
        href = href.substring(0, p);
      } else {
        token = '';
      }
      window.location.replace(href + 'login/' + token);
    </script>
  </head>
  <body>
    <p>Redirecting to <a href="login/">Gerrit Code Review</a>.</p>
  </body>
</html>
