<!doctype html>
<script src="history.js"></script>
<script>
  onunload = function() {}

  onload = function() {
    if (!opener.started) {
      queue_next();
    } else {
      opener.pages.push(id);
      opener.start_test_wait();
      if (!opener.gone) {
          history.go();
          opener.gone = true;
      }
    }
  };
</script>
