This is test page that we navigate to as part of testing various navigation styles. It includes a form so that we can test saving and restoring of form data, and it needs to be long enough that we can test saving and restoring of scroll position.




Here are some form elements
that we can use for testing
 Male
 Female
 option #1
 option #2


Now

some

filler

so

the

doc

is

long

enough

to scroll.

This is an anchor point named "anchor1".

============== Back Forward List ==============
        http://127.0.0.1:8000/navigation/anchor-goback.html
curr->  http://127.0.0.1:8000/navigation/resources/success200.html#anchor1
        http://127.0.0.1:8000/navigation/resources/otherpage.html
===============================================
