func (c *Cursor) Restore() {
	fmt.Fprint(c.Out, "\x1b8")
}
Restore restores the saved position of the cursor
package terminal
import (
	"bufio"
	"bytes"
	"fmt"
	"io"
	"regexp"
	"strconv"
)
var COORDINATE_SYSTEM_BEGIN Short = 1
var dsrPattern = regexp.MustCompile(`\x1b\[(\d+);(\d+)R$`)
type Cursor struct {
	In  FileReader
	Out FileWriter
}
func (c *Cursor) Up(n int) {
	fmt.Fprintf(c.Out, "\x1b[%dA", n)
}
func (c *Cursor) Down(n int) {
	fmt.Fprintf(c.Out, "\x1b[%dB", n)
}
func (c *Cursor) Forward(n int) {
	fmt.Fprintf(c.Out, "\x1b[%dC", n)
}
func (c *Cursor) Back(n int) {
	fmt.Fprintf(c.Out, "\x1b[%dD", n)
}
func (c *Cursor) NextLine(n int) {
	fmt.Fprintf(c.Out, "\x1b[%dE", n)
}
func (c *Cursor) PreviousLine(n int) {
	fmt.Fprintf(c.Out, "\x1b[%dF", n)
}
func (c *Cursor) HorizontalAbsolute(x int) {
	fmt.Fprintf(c.Out, "\x1b[%dG", x)
}
func (c *Cursor) Show() {
	fmt.Fprint(c.Out, "\x1b[?25h")
}
func (c *Cursor) Hide() {
	fmt.Fprint(c.Out, "\x1b[?25l")
}
func (c *Cursor) Move(x int, y int) {
	fmt.Fprintf(c.Out, "\x1b[%d;%df", x, y)
}
func (c *Cursor) Save() {
	fmt.Fprint(c.Out, "\x1b7")
}