summaryrefslogtreecommitdiff
path: root/payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt
diff options
context:
space:
mode:
authorStefan Reinauer <stefan.reinauer@coreboot.org>2015-11-10 09:00:41 -0800
committerStefan Reinauer <stefan.reinauer@coreboot.org>2015-11-11 21:38:48 +0100
commit4f85a1eb76d1e7109bcc60ba6f3262a5654ac61b (patch)
treee996818c6aa6b6f702a6c805c447c20724eff265 /payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt
parent2ea24dabd658b8396e0abf79318a538ef0f3a5b8 (diff)
libpayload: Rename PDCurses-3.4 to PDCurses
Change-Id: If881ec130833c7e7e62caa3d31e350a531f5bc8e Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12398 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt')
-rw-r--r--payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt833
1 files changed, 0 insertions, 833 deletions
diff --git a/payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt b/payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt
deleted file mode 100644
index b54dcf015f..0000000000
--- a/payloads/libpayload/curses/PDCurses-3.4/doc/intro.txt
+++ /dev/null
@@ -1,833 +0,0 @@
-PDCurses User's Guide
-=====================
-
-Curses Overview
----------------
-
-The X/Open Curses Interface Definition describes a set of C-Language
-functions that provide screen-handling and updating, which are
-collectively known as the curses library.
-
-The curses library permits manipulation of data structures called
-windows which may be thought of as two-dimensional arrays of
-characters representing all or part of a terminal's screen. The
-windows are manipulated using a procedural interface described
-elsewhere. The curses package maintains a record of what characters
-are on the screen. At the most basic level, manipulation is done with
-the routines move() and addch() which are used to "move" the curses
-around and add characters to the default window, stdscr, which
-represents the whole screen.
-
-An application may use these routines to add data to the window in any
-convenient order. Once all data have been added, the routine
-refresh() is called. The package then determines what changes have
-been made which affect the screen. The screen contents are then
-changed to reflect those characters now in the window, using a
-sequence of operations optimized for the type of terminal in use.
-
-At a higher level routines combining the actions of move() and addch()
-are defined, as are routines to add whole strings and to perform
-format conversions in the manner of printf().
-
-Interfaces are also defined to erase the entire window and to specify
-the attributes of individual characters in the window. Attributes
-such as inverse video, underline and blink can be used on a
-per-character basis.
-
-New windows can be created by allowing the application to build
-several images of the screen and display the appropriate one very
-quickly. New windows are created using the routine newwin(). For
-each routine that manipulates the default window, stdscr, there is a
-corresponding routine prefixed with w to manipulate the contents of a
-specified window; for example, move() and wmove(). In fact, move(...)
-is functionally equivalent to wmove( stdscr, ...). This is similar to
-the interface offered by printf(...) and fprintf(stdout, ...).
-
-Windows do not have to correspond to the entire screen. It is
-possible to create smaller windows, and also to indicate that the
-window is only partially visible on the screen. Furthermore, large
-windows or pads, which are bigger than the actual screen size, may be
-created.
-
-Interfaces are also defined to allow input character manipulation and
-to disable and enable many input attributes: character echo, single
-character input with or without signal processing (cbreak or raw
-modes), carriage returns mapping to newlines, screen scrolling, etc.
-
-
-Data Types and the <curses.h> Header
-------------------------------------
-
-The data types supported by curses are described in this section.
-
-As the library supports a procedural interface to the data types, actual
-structure contents are not described. All curses data are manipulated
-using the routines provided.
-
-
-THE <curses.h> HEADER
-
-The <curses.h> header defines various constants and declares the data
-types that are available to the application.
-
-
-DATA TYPES
-
-The following data types are declared:
-
- WINDOW * pointer to screen representation
- SCREEN * pointer to terminal descriptor
- bool boolean data type
- chtype representation of a character in a window
- cchar_t the wide-character equivalent of chtype
- attr_t for WA_-style attributes
-
-The actual WINDOW and SCREEN objects used to store information are
-created by the corresponding routines and a pointer to them is provided.
-All manipulation is through that pointer.
-
-
-VARIABLES
-
-The following variables are defined:
-
- LINES number of lines on terminal screen
- COLS number of columns on terminal screen
- stdscr pointer to the default screen window
- curscr pointer to the current screen image
- SP pointer to the current SCREEN struct
- Mouse_status status of the mouse
- COLORS number of colors available
- COLOR_PAIRS number of color pairs available
- TABSIZE size of one TAB block
- acs_map[] alternate character set map
- ttytype[] terminal name/description
-
-
-CONSTANTS
-
-The following constants are defined:
-
-GENERAL
-
- FALSE boolean false value
- TRUE boolean true value
- NULL zero pointer value
- ERR value returned on error condition
- OK value returned on successful completion
-
-VIDEO ATTRIBUTES
-
-Normally, attributes are a property of the character.
-
-For chtype:
-
- A_ALTCHARSET use the alternate character set
- A_BLINK bright background or blinking
- A_BOLD bright foreground or bold
- A_DIM half bright -- no effect in PDCurses
- A_INVIS invisible
- A_ITALIC italic
- A_LEFTLINE line along the left edge
- A_PROTECT protected (?) -- PDCurses renders this as a
- combination of the *LINE attributes
- A_REVERSE reverse video
- A_RIGHTLINE line along the right edge
- A_STANDOUT terminal's best highlighting mode
- A_UNDERLINE underline
-
- A_ATTRIBUTES bit-mask to extract attributes
- A_CHARTEXT bit-mask to extract a character
- A_COLOR bit-mask to extract a color-pair
-
-Not all attributes will work on all terminals. A_RIGHTLINE, A_LEFTLINE
-and A_ITALIC are specific to PDCurses. A_INVIS and A_ITALIC are given
-the same value in PDCurses.
-
-For attr_t:
-
- WA_ALTCHARSET same as A_ALTCHARSET
- WA_BLINK same as A_BLINK
- WA_BOLD same as A_BOLD
- WA_DIM same as A_DIM
- WA_INVIS same as A_INVIS
- WA_LEFT same as A_LEFTLINE
- WA_PROTECT same as A_PROTECT
- WA_REVERSE same as A_REVERSE
- WA_RIGHT same as A_RIGHTLINE
- WA_STANDOUT same as A_STANDOUT
- WA_UNDERLINE same as A_UNDERLINE
-
-Note that while A_LEFTLINE and A_RIGHTLINE are PDCurses-specific,
-WA_LEFT and WA_RIGHT are standard. The following are also defined, for
-compatibility, but currently have no effect in PDCurses: WA_HORIZONTAL,
-WA_LOW, WA_TOP, WA_VERTICAL.
-
-THE ALTERNATE CHARACTER SET
-
-For use in chtypes and with related functions. These are a portable way
-to represent graphics characters on different terminals.
-
-VT100-compatible symbols -- box characters:
-
- ACS_ULCORNER upper left box corner
- ACS_LLCORNER lower left box corner
- ACS_URCORNER upper right box corner
- ACS_LRCORNER lower right box corner
- ACS_RTEE right "T"
- ACS_LTEE left "T"
- ACS_BTEE bottom "T"
- ACS_TTEE top "T"
- ACS_HLINE horizontal line
- ACS_VLINE vertical line
- ACS_PLUS plus sign, cross, or four-corner piece
-
-VT100-compatible symbols -- other:
-
- ACS_S1 scan line 1
- ACS_S9 scan line 9
- ACS_DIAMOND diamond
- ACS_CKBOARD checkerboard -- 50% grey
- ACS_DEGREE degree symbol
- ACS_PLMINUS plus/minus sign
- ACS_BULLET bullet
-
-Teletype 5410v1 symbols -- these are defined in SysV curses, but
-are not well-supported by most terminals. Stick to VT100 characters
-for optimum portability:
-
- ACS_LARROW left arrow
- ACS_RARROW right arrow
- ACS_DARROW down arrow
- ACS_UARROW up arrow
- ACS_BOARD checkerboard -- lighter (less dense) than
- ACS_CKBOARD
- ACS_LANTERN lantern symbol
- ACS_BLOCK solid block
-
-That goes double for these -- undocumented SysV symbols. Don't use
-them:
-
- ACS_S3 scan line 3
- ACS_S7 scan line 7
- ACS_LEQUAL less than or equal
- ACS_GEQUAL greater than or equal
- ACS_PI pi
- ACS_NEQUAL not equal
- ACS_STERLING pounds sterling symbol
-
-Box character aliases:
-
- ACS_BSSB same as ACS_ULCORNER
- ACS_SSBB same as ACS_LLCORNER
- ACS_BBSS same as ACS_URCORNER
- ACS_SBBS same as ACS_LRCORNER
- ACS_SBSS same as ACS_RTEE
- ACS_SSSB same as ACS_LTEE
- ACS_SSBS same as ACS_BTEE
- ACS_BSSS same as ACS_TTEE
- ACS_BSBS same as ACS_HLINE
- ACS_SBSB same as ACS_VLINE
- ACS_SSSS same as ACS_PLUS
-
-For cchar_t and wide-character functions, WACS_ equivalents are also
-defined.
-
-COLORS
-
-For use with init_pair(), color_set(), etc.:
-
- COLOR_BLACK
- COLOR_BLUE
- COLOR_GREEN
- COLOR_CYAN
- COLOR_RED
- COLOR_MAGENTA
- COLOR_YELLOW
- COLOR_WHITE
-
-Use these instead of numeric values. The definition of the colors
-depends on the implementation of curses.
-
-
-INPUT VALUES
-
-The following constants might be returned by getch() if keypad() has
-been enabled. Note that not all of these may be supported on a
-particular terminal:
-
- KEY_BREAK break key
- KEY_DOWN the four arrow keys
- KEY_UP
- KEY_LEFT
- KEY_RIGHT
- KEY_HOME home key (upward+left arrow)
- KEY_BACKSPACE backspace
- KEY_F0 function keys; space for 64 keys is reserved
- KEY_F(n) (KEY_F0+(n))
- KEY_DL delete line
- KEY_IL insert line
- KEY_DC delete character
- KEY_IC insert character
- KEY_EIC exit insert character mode
- KEY_CLEAR clear screen
- KEY_EOS clear to end of screen
- KEY_EOL clear to end of line
- KEY_SF scroll 1 line forwards
- KEY_SR scroll 1 line backwards (reverse)
- KEY_NPAGE next page
- KEY_PPAGE previous page
- KEY_STAB set tab
- KEY_CTAB clear tab
- KEY_CATAB clear all tabs
- KEY_ENTER enter or send
- KEY_SRESET soft (partial) reset
- KEY_RESET reset or hard reset
- KEY_PRINT print or copy
- KEY_LL home down or bottom (lower left)
- KEY_A1 upper left of virtual keypad
- KEY_A3 upper right of virtual keypad
- KEY_B2 center of virtual keypad
- KEY_C1 lower left of virtual keypad
- KEY_C3 lower right of virtual keypad
-
- KEY_BTAB Back tab key
- KEY_BEG Beginning key
- KEY_CANCEL Cancel key
- KEY_CLOSE Close key
- KEY_COMMAND Cmd (command) key
- KEY_COPY Copy key
- KEY_CREATE Create key
- KEY_END End key
- KEY_EXIT Exit key
- KEY_FIND Find key
- KEY_HELP Help key
- KEY_MARK Mark key
- KEY_MESSAGE Message key
- KEY_MOVE Move key
- KEY_NEXT Next object key
- KEY_OPEN Open key
- KEY_OPTIONS Options key
- KEY_PREVIOUS Previous object key
- KEY_REDO Redo key
- KEY_REFERENCE Reference key
- KEY_REFRESH Refresh key
- KEY_REPLACE Replace key
- KEY_RESTART Restart key
- KEY_RESUME Resume key
- KEY_SAVE Save key
- KEY_SBEG Shifted beginning key
- KEY_SCANCEL Shifted cancel key
- KEY_SCOMMAND Shifted command key
- KEY_SCOPY Shifted copy key
- KEY_SCREATE Shifted create key
- KEY_SDC Shifted delete char key
- KEY_SDL Shifted delete line key
- KEY_SELECT Select key
- KEY_SEND Shifted end key
- KEY_SEOL Shifted clear line key
- KEY_SEXIT Shifted exit key
- KEY_SFIND Shifted find key
- KEY_SHELP Shifted help key
- KEY_SHOME Shifted home key
- KEY_SIC Shifted input key
- KEY_SLEFT Shifted left arrow key
- KEY_SMESSAGE Shifted message key
- KEY_SMOVE Shifted move key
- KEY_SNEXT Shifted next key
- KEY_SOPTIONS Shifted options key
- KEY_SPREVIOUS Shifted prev key
- KEY_SPRINT Shifted print key
- KEY_SREDO Shifted redo key
- KEY_SREPLACE Shifted replace key
- KEY_SRIGHT Shifted right arrow
- KEY_SRSUME Shifted resume key
- KEY_SSAVE Shifted save key
- KEY_SSUSPEND Shifted suspend key
- KEY_SUNDO Shifted undo key
- KEY_SUSPEND Suspend key
- KEY_UNDO Undo key
-
-The virtual keypad is arranged like this:
-
- A1 up A3
- left B2 right
- C1 down C3
-
-This list is incomplete -- see curses.h for the full list, and use the
-testcurs demo to see what values are actually returned. The above are
-just the keys required by X/Open. In particular, PDCurses defines many
-CTL_ and ALT_ combinations; these are not portable.
-
-
-FUNCTIONS
-
-The following table lists each curses routine and the name of the manual
-page on which it is described.
-
-Functions from the X/Open curses standard -- complete, except for
-getch() and ungetch(), which are implemented as macros for DOS
-compatibility:
-
- Curses Function Manual Page Name
-
- addch addch
- addchnstr addchstr
- addchstr addchstr
- addnstr addstr
- addstr addstr
- attroff attr
- attron attr
- attrset attr
- attr_get attr
- attr_off attr
- attr_on attr
- attr_set attr
- baudrate termattr
- beep beep
- bkgd bkgd
- bkgdset bkgd
- border border
- box border
- can_change_color color
- cbreak inopts
- chgat attr
- clearok outopts
- clear clear
- clrtobot clear
- clrtoeol clear
- color_content color
- color_set attr
- copywin overlay
- curs_set kernel
- def_prog_mode kernel
- def_shell_mode kernel
- del_curterm terminfo
- delay_output util
- delch delch
- deleteln deleteln
- delscreen initscr
- delwin window
- derwin window
- doupdate refresh
- dupwin window
- echochar addch
- echo inopts
- endwin initscr
- erasechar termattr
- erase clear
- filter util
- flash beep
- flushinp getch
- getbkgd bkgd
- getnstr getstr
- getstr getstr
- getwin scr_dump
- halfdelay inopts
- has_colors color
- has_ic termattr
- has_il termattr
- hline border
- idcok outopts
- idlok outopts
- immedok outopts
- inchnstr inchstr
- inchstr inchstr
- inch inch
- init_color color
- init_pair color
- initscr initscr
- innstr instr
- insch insch
- insdelln deleteln
- insertln deleteln
- insnstr innstr
- insstr innstr
- instr instr
- intrflush inopts
- isendwin initscr
- is_linetouched touch
- is_wintouched touch
- keyname keyname
- keypad inopts
- killchar termattr
- leaveok outopts
- longname termattr
- meta inopts
- move move
- mvaddch addch
- mvaddchnstr addchstr
- mvaddchstr addchstr
- mvaddnstr addstr
- mvaddstr addstr
- mvchgat attr
- mvcur terminfo
- mvdelch delch
- mvderwin window
- mvgetch getch
- mvgetnstr getstr
- mvgetstr getstr
- mvhline border
- mvinch inch
- mvinchnstr inchstr
- mvinchstr inchstr
- mvinnstr instr
- mvinsch insch
- mvinsnstr insstr
- mvinsstr insstr
- mvinstr instr
- mvprintw printw
- mvscanw scanw
- mvvline border
- mvwaddchnstr addchstr
- mvwaddchstr addchstr
- mvwaddch addch
- mvwaddnstr addstr
- mvwaddstr addstr
- mvwchgat attr
- mvwdelch delch
- mvwgetch getch
- mvwgetnstr getstr
- mvwgetstr getstr
- mvwhline border
- mvwinchnstr inchstr
- mvwinchstr inchstr
- mvwinch inch
- mvwinnstr instr
- mvwinsch insch
- mvwinsnstr insstr
- mvwinsstr insstr
- mvwinstr instr
- mvwin window
- mvwprintw printw
- mvwscanw scanw
- mvwvline border
- napms kernel
- newpad pad
- newterm initscr
- newwin window
- nl inopts
- nocbreak inopts
- nodelay inopts
- noecho inopts
- nonl inopts
- noqiflush inopts
- noraw inopts
- notimeout inopts
- overlay overlay
- overwrite overlay
- pair_content color
- pechochar pad
- pnoutrefresh pad
- prefresh pad
- printw printw
- putp terminfo
- putwin scr_dump
- qiflush inopts
- raw inopts
- redrawwin refresh
- refresh refresh
- reset_prog_mode kernel
- reset_shell_mode kernel
- resetty kernel
- restartterm terminfo
- ripoffline kernel
- savetty kernel
- scanw scanw
- scr_dump scr_dump
- scr_init scr_dump
- scr_restore scr_dump
- scr_set scr_dump
- scrl scroll
- scroll scroll
- scrollok outopts
- set_term initscr
- setscrreg outopts
- setterm terminfo
- setupterm terminfo
- slk_attroff slk
- slk_attr_off slk
- slk_attron slk
- slk_attr_on slk
- slk_attrset slk
- slk_attr_set slk
- slk_clear slk
- slk_color slk
- slk_init slk
- slk_label slk
- slk_noutrefresh slk
- slk_refresh slk
- slk_restore slk
- slk_set slk
- slk_touch slk
- standend attr
- standout attr
- start_color color
- subpad pad
- subwin window
- syncok window
- termattrs termattrs
- term_attrs termattrs
- termname termattrs
- tgetent termcap
- tgetflag termcap
- tgetnum termcap
- tgetstr termcap
- tgoto termcap
- tigetflag terminfo
- tigetnum terminfo
- tigetstr terminfo
- timeout inopts
- touchline touch
- touchwin touch
- tparm terminfo
- tputs terminfo
- typeahead inopts
- untouchwin touch
- use_env util
- vidattr terminfo
- vid_attr terminfo
- vidputs terminfo
- vid_puts terminfo
- vline border
- vw_printw printw
- vwprintw printw
- vw_scanw scanw
- vwscanw scanw
- waddchnstr addchstr
- waddchstr addchstr
- waddch addch
- waddnstr addstr
- waddstr addstr
- wattroff attr
- wattron attr
- wattrset attr
- wattr_get attr
- wattr_off attr
- wattr_on attr
- wattr_set attr
- wbkgdset bkgd
- wbkgd bkgd
- wborder border
- wchgat attr
- wclear clear
- wclrtobot clear
- wclrtoeol clear
- wcolor_set attr
- wcursyncup window
- wdelch delch
- wdeleteln deleteln
- wechochar addch
- werase clear
- wgetch getch
- wgetnstr getstr
- wgetstr getstr
- whline border
- winchnstr inchstr
- winchstr inchstr
- winch inch
- winnstr instr
- winsch insch
- winsdelln deleteln
- winsertln deleteln
- winsnstr insstr
- winsstr insstr
- winstr instr
- wmove move
- wnoutrefresh refresh
- wprintw printw
- wredrawln refresh
- wrefresh refresh
- wscanw scanw
- wscrl scroll
- wsetscrreg outopts
- wstandend attr
- wstandout attr
- wsyncdown window
- wsyncup window
- wtimeout inopts
- wtouchln touch
- wvline border
-
-Wide-character functions from the X/Open standard -- these are only
-available when PDCurses is built with PDC_WIDE defined, and the
-prototypes are only available from curses.h when PDC_WIDE is defined
-before its inclusion in your app:
-
- addnwstr addstr
- addwstr addstr
- add_wch addch
- add_wchnstr addchstr
- add_wchstr addchstr
- border_set border
- box_set border
- echo_wchar addch
- erasewchar termattr
- getbkgrnd bkgd
- getcchar util
- getn_wstr getstr
- get_wch getch
- get_wstr getstr
- hline_set border
- innwstr instr
- ins_nwstr insstr
- ins_wch insch
- ins_wstr insstr
- inwstr instr
- in_wch inch
- in_wchnstr inchstr
- in_wchstr inchstr
- key_name keyname
- killwchar termattr
- mvaddnwstr addstr
- mvaddwstr addstr
- mvadd_wch addch
- mvadd_wchnstr addchstr
- mvadd_wchstr addchstr
- mvgetn_wstr getstr
- mvget_wch getch
- mvget_wstr getstr
- mvhline_set border
- mvinnwstr instr
- mvins_nwstr insstr
- mvins_wch insch
- mvins_wstr insstr
- mvinwstr instr
- mvwaddnwstr addstr
- mvwaddwstr addstr
- mvwadd_wch addch
- mvwadd_wchnstr addchstr
- mvwadd_wchstr addchstr
- mvwgetn_wstr getstr
- mvwget_wch getch
- mvwget_wstr getstr
- mvwhline_set border
- mvwinnwstr instr
- mvwins_nwstr insstr
- mvwins_wch insch
- mvwins_wstr insstr
- mvwin_wch inch
- mvwin_wchnstr inchstr
- mvwin_wchstr inchstr
- mvwinwstr instr
- mvwvline_set border
- pecho_wchar pad
- setcchar util
- slk_wset slk
- unget_wch getch
- vline_set border
- waddnwstr addstr
- waddwstr addstr
- wadd_wch addch
- wadd_wchnstr addchstr
- wadd_wchstr addchstr
- wbkgrnd bkgd
- wbkgrndset bkgd
- wborder_set border
- wecho_wchar addch
- wgetbkgrnd bkgd
- wgetn_wstr getstr
- wget_wch getch
- wget_wstr getstr
- whline_set border
- winnwstr instr
- wins_nwstr insstr
- wins_wch insch
- wins_wstr insstr
- winwstr instr
- win_wch inch
- win_wchnstr inchstr
- win_wchstr inchstr
- wunctrl util
- wvline_set border
-
-Quasi-standard functions, from Sys V or BSD curses:
-
- getattrs attr
- getbegx getyx
- getbegy getyx
- getmaxx getyx
- getmaxy getyx
- getparx getyx
- getparx getyx
- traceoff debug
- traceon debug
- unctrl util
-
-Classic PDCurses mouse functions, based on Sys V:
-
- mouse_set mouse
- mouse_on mouse
- mouse_off mouse
- request_mouse_pos mouse
- map_button mouse
- wmouse_position mouse
- getmouse mouse
- getbmap mouse
-
-Functions from ncurses:
-
- assume_default_colors color
- curses_version initscr
- has_key keyname
- use_default_colors color
- wresize window
-
- mouseinterval mouse
- mousemask mouse
- mouse_trafo mouse
- nc_getmouse mouse
- ungetmouse mouse
- wenclose mouse
- wmouse_trafo mouse
-
-PDCurses-specific functions -- avoid these in code that's intended to be
-portable:
-
- addrawch addch
- insrawch insch
- is_termresized initscr
- mvaddrawch addch
- mvdeleteln deleteln
- mvinsertln deleteln
- mvinsrawch insch
- mvwaddrawch addch
- mvwdeleteln deleteln
- mvwinsertln deleteln
- mvwinsrawch insch
- raw_output outopts
- resize_term initscr
- resize_window window
- slk_wlabel slk
- waddrawch addch
- winsrawch insch
- wordchar termattr
-
- PDC_debug debug
- PDC_ungetch getch
- PDC_set_blink pdcsetsc
- PDC_set_line_color color
- PDC_set_title pdcsetsc
-
- PDC_clearclipboard pdcclip
- PDC_freeclipboard pdcclip
- PDC_getclipboard pdcclip
- PDC_setclipboard pdcclip
-
- PDC_get_input_fd pdckbd
- PDC_get_key_modifiers getch
- PDC_return_key_modifiers getch
- PDC_save_key_modifiers getch
-
-Functions specific to the X11 port of PDCurses:
-
- Xinitscr initscr
- XCursesExit -
- sb_init sb
- sb_set_horz sb
- sb_set_vert sb
- sb_get_horz sb
- sb_get_vert sb
- sb_refresh sb
-
---------------------------------------------------------------------------