Added new key symbols, switched to xeLaTeX, cleanup
This commit is contained in:
parent
0e369ee788
commit
f04d8b00a1
@ -16,6 +16,7 @@ This is expected because the NVR has not been initialized.
|
|||||||
Once you write settings to the NVR, this error should not persist.
|
Once you write settings to the NVR, this error should not persist.
|
||||||
|
|
||||||
\section{Jumper settings and headers}
|
\section{Jumper settings and headers}
|
||||||
|
\label{jumperheaders}
|
||||||
|
|
||||||
The board features the following jumpers:
|
The board features the following jumpers:
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
\usepackage[T1]{fontenc}
|
\usepackage[T1]{fontenc}
|
||||||
\usepackage[utf8]{inputenc}
|
|
||||||
\usepackage{libertine}
|
\usepackage{libertine}
|
||||||
|
|
||||||
\usepackage{tabulary}
|
\usepackage{tabulary}
|
||||||
@ -7,7 +6,8 @@
|
|||||||
\usepackage{graphicx}
|
\usepackage{graphicx}
|
||||||
\usepackage{multirow}
|
\usepackage{multirow}
|
||||||
|
|
||||||
\usepackage[bookmarks=true,
|
\usepackage[unicode,
|
||||||
|
bookmarks=true,
|
||||||
bookmarksnumbered=true,
|
bookmarksnumbered=true,
|
||||||
pdfpagemode=UseOutlines,
|
pdfpagemode=UseOutlines,
|
||||||
pdfstartview={FitV 0},
|
pdfstartview={FitV 0},
|
||||||
@ -17,7 +17,7 @@
|
|||||||
citecolor=black,
|
citecolor=black,
|
||||||
filecolor=black,
|
filecolor=black,
|
||||||
urlcolor=black,
|
urlcolor=black,
|
||||||
pdfauthor={Anna Christina Nass},
|
pdfauthor={Anna Christina Naß},
|
||||||
pdftitle={VT132 Manual},
|
pdftitle={VT132 Manual},
|
||||||
pdfsubject={Documentation},
|
pdfsubject={Documentation},
|
||||||
pdfkeywords={VT132}
|
pdfkeywords={VT132}
|
||||||
|
@ -12,3 +12,17 @@ For a more in-depth look into details, please consult the VT132 website provided
|
|||||||
|
|
||||||
\url{https://thehighnibble.com/vt132/}
|
\url{https://thehighnibble.com/vt132/}
|
||||||
|
|
||||||
|
\section{Key symbols}
|
||||||
|
|
||||||
|
The following key symbols are used that may need explanation:
|
||||||
|
|
||||||
|
\begin{tabular}{ r | p{0.73\textwidth} }
|
||||||
|
\hline
|
||||||
|
\LKeyTab & \biolinum{Tab} \\
|
||||||
|
\LKeyEnter & \biolinum{Enter} \\
|
||||||
|
\LKeySpace & \biolinum{Space} \\
|
||||||
|
\LKeyBack & \biolinum{Backspace} \\
|
||||||
|
\LKeyShift & \biolinum{Shift} \\
|
||||||
|
\LKeyLeft, \LKeyRight, \LKeyUp, \LKeyDown & \biolinum{Cursor keys} \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
58
modem.tex
58
modem.tex
@ -2,21 +2,33 @@
|
|||||||
|
|
||||||
\section{Background}
|
\section{Background}
|
||||||
|
|
||||||
Unlike the VT100 terminal, the modem does not try to faithfully emulate any particular original device.
|
The VT132 modem part is designed to provide a modified Hayes \texttt{AT} compatible command set for connecting over WiFi via TCP/IP
|
||||||
|
sockets with an optional Telnet protocol layer.
|
||||||
Instead it is designed to provide an MVP (minimum viable product) providing a modified Hayes 'AT' compatible command set for connecting over Wi-Fi via TCP/IP sockets with an optional Telnet protocol layer.
|
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item The original 'AT' command set was strictly in upper case. This is because the bit sequence of the ASCII values for 'A' and 'T' have a specific property that enables autobaud detection of the connection to the data terminal equipment (DTE).
|
\item The original \texttt{AT} command set was strictly in upper case. This is because the bit sequence of the ASCII values for \texttt{A} and \texttt{T} have
|
||||||
\item \textbf{The modem only responds to 'AT' commands in upper case.}
|
a specific property that enables autobaud detection of the connection to the data terminal equipment (DTE).
|
||||||
\item Commands are terminated by \texttt{<CR>} (carriage return, \texttt{<ctrl>-m}, \texttt{0x0D}, decimal 13) usually generated by the \texttt{Enter} or \texttt{Return} key on your keyboard.
|
\item \textbf{The modem only responds to \texttt{AT} commands in upper case.}
|
||||||
\item Commands can by edited, before pressing \texttt{<CR>}, using \texttt{<BS>} (backspace, \texttt{<ctrl>-H}, \texttt{0x08}, decimal 8) to erase the previous character entered. You may need to configure the terminal to generate \texttt{<BS>} when you press the \texttt{Backspace} or \texttt{<-} key on your keyboard.
|
\item Commands are terminated by \LKeyEnter \footnote{carriage return, \LKeyCtrlX{M}, \texttt{0x0D}, decimal 13} usually generated by the \LKeyEnter{}
|
||||||
\item The 'AT' command processor is based on a finite state machine (FSM). If you type anything that is not recognized by the rules of the FSM you will immediately see an \texttt{Error} message.
|
(\biolinum{Enter} or \biolinum{Return}) key on your keyboard.
|
||||||
|
\item Commands can by edited, before pressing \LKeyEnter, using \LKeyBack \footnote{backspace, \LKeyCtrlX{H}, \texttt{0x08}, decimal 8} to erase the previous
|
||||||
|
character entered. You may need to configure the terminal to generate \texttt{<BS>} when you press the \LKeyBack{} (backspace) key on your keyboard.
|
||||||
|
\item The \texttt{AT} command processor is based on a finite state machine (FSM). If you type anything that is not recognized by the rules of the
|
||||||
|
FSM you will immediately see an \texttt{Error} message.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
% TODO:
|
\section{Communication}
|
||||||
% - Hinweis auf EN-Button für Baudrate
|
|
||||||
% - Hinweis auf Nutzung via Bus oder FTDI-Header
|
\subsection{Baudrate}
|
||||||
|
|
||||||
|
To set the baudrate of the modem, press the \textbf{Prog} button on the VT132 module. After each press of this button, the modem outputs its new
|
||||||
|
baud rate to the serial port -- so you can press this button repeatedly until you can read your baud rate.
|
||||||
|
|
||||||
|
\subsection{Serial Port}
|
||||||
|
|
||||||
|
To communicate with the VT132 modem, you can use either the pins of the RC2014 extended bus (Rx2, Tx2) or the FTDI connector \textit{Modem Port B}.
|
||||||
|
|
||||||
|
See section \vref{jumperheaders} \textit{(Jumper settings and headers)} for details.
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section{Modem commands}
|
\section{Modem commands}
|
||||||
@ -91,10 +103,10 @@ $+$U\$ & Show OTA partition status \\
|
|||||||
Use \texttt{ATS15=1} to enable Telnet mode.
|
Use \texttt{ATS15=1} to enable Telnet mode.
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\subsection{S Registers}
|
\section{S Registers}
|
||||||
\label{sregister}
|
\label{sregister}
|
||||||
|
|
||||||
The modem has a total of 51 'S' registers, \texttt{S0} to \texttt{S50}.
|
The modem has a total of 51 S registers, \texttt{S0} to \texttt{S50}.
|
||||||
|
|
||||||
Most of them are undefined and unused. The following table lists all defined registers that are used by the VT132 modem part.
|
Most of them are undefined and unused. The following table lists all defined registers that are used by the VT132 modem part.
|
||||||
|
|
||||||
@ -126,7 +138,7 @@ S39 & 0 & RTS/CTS Flow Control (0/1, set by AT\&K) \\
|
|||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section{WiFi Messages}
|
\section{Messages}
|
||||||
|
|
||||||
\subsection{Dial response messages}
|
\subsection{Dial response messages}
|
||||||
|
|
||||||
@ -182,11 +194,12 @@ The VT132 supports the following Telnet options:
|
|||||||
\item TERMINAL-TYPE
|
\item TERMINAL-TYPE
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Each Telnet Option is negotiated in via a request/response exchange described as \textit{Do/Don't} (request) and \textit{Will/Won't} (response). Trying to understand how these work for each Option usually requires reading the RFC and extreme patience and experimentation.
|
Each Telnet Option is negotiated in via a request/response exchange described as \textit{Do/Don't} (request) and \textit{Will/Won't} (response).
|
||||||
|
Trying to understand how these work for each Option usually requires reading the RFC and extreme patience and experimentation.
|
||||||
|
|
||||||
Usually you either want an Option completely \textbf{On} (Do/Will) or \textbf{Off} (Don't / Won't).
|
Usually you either want an Option completely \textbf{On} (Do/Will) or \textbf{Off} (Don't / Won't).
|
||||||
|
|
||||||
Setting the supported Options and their default values are defined via specific 'S' Registers \vref{sregister}.
|
Setting the supported Options and their default values are defined via specific S Registers \vref{sregister}.
|
||||||
|
|
||||||
In summary the defaults are:
|
In summary the defaults are:
|
||||||
|
|
||||||
@ -205,15 +218,16 @@ TERMINAL-TYPE & Do/Will & The remote host can learn your terminal type, the def
|
|||||||
|
|
||||||
The \texttt{TERMINAL-TYPE} must be known by the remote system to be recognised.
|
The \texttt{TERMINAL-TYPE} must be known by the remote system to be recognised.
|
||||||
|
|
||||||
When connecting to \texttt{telnetd} on MacOS I use \texttt{vt100+} from the \texttt{terminfo} database which provides support for color over and above the standard \texttt{vt100} terminal type, making text applications like \texttt{htop} work as expected and in color.
|
When connecting to \texttt{telnetd} on MacOS I use \texttt{vt100+} from the \texttt{terminfo} database which provides support for color over and above the standard
|
||||||
|
\texttt{vt100} terminal type, making text applications like \texttt{htop} work as expected and in color.
|
||||||
|
|
||||||
\subsection{Enabling Telnet Protocol}
|
\subsection{Enabling Telnet Protocol}
|
||||||
|
|
||||||
Telnet protocol is \textbf{not} enabled by default.
|
Telnet protocol is \textbf{not} enabled by default.
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item To enable the Telnet protocol you must manually set 'S' Register S15 to 1 with \texttt{ATS15=1}
|
\item To enable the Telnet protocol you must manually set S Register S15 to 1 with \texttt{ATS15=1}
|
||||||
\item To disable the Telnet protocol you must manually set 'S' Register S15 to 0 with \texttt{ATS15=0}
|
\item To disable the Telnet protocol you must manually set S Register S15 to 0 with \texttt{ATS15=0}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
The Telnet protocol is applied to both \textbf{outgoing} connections 'Dialed' with ATD and \textbf{incoming} connections 'Answered' with \texttt{ATA} or Auto-answer.
|
The Telnet protocol is applied to both \textbf{outgoing} connections 'Dialed' with ATD and \textbf{incoming} connections 'Answered' with \texttt{ATA} or Auto-answer.
|
||||||
@ -231,8 +245,10 @@ Listening for incoming TCP/IP socket connections is \textbf{not enabled} by defa
|
|||||||
\item Incoming TCP/IP socket connections will cause the modem to respond with \texttt{RING}, repeated every three (3) seconds.
|
\item Incoming TCP/IP socket connections will cause the modem to respond with \texttt{RING}, repeated every three (3) seconds.
|
||||||
\item As each \texttt{RING} occurs the Ring Counter in \texttt{S1} is incremented by one (1).
|
\item As each \texttt{RING} occurs the Ring Counter in \texttt{S1} is incremented by one (1).
|
||||||
\item The user can \textit{Answer} the incoming call at any time with \texttt{ATA} and the modem will accept the TCP/IP socket connection and enter \textbf{Data Mode}.
|
\item The user can \textit{Answer} the incoming call at any time with \texttt{ATA} and the modem will accept the TCP/IP socket connection and enter \textbf{Data Mode}.
|
||||||
\item If the \textbf{Number of rings before Auto-Answer} is set in \texttt{S0} to a number greater than zero (0 = never) and \texttt{S1} is greater-then-or-equal to \texttt{S0} the modem will \textit{Auto-answer}: accept the TCP/IP socket connection and enter \textbf{Data Mode}.
|
\item If the \textbf{Number of rings before Auto-Answer} is set in \texttt{S0} to a number greater than zero (0 = never) and \texttt{S1} is greater-then-or-equal to
|
||||||
|
\texttt{S0} the modem will \textit{Auto-answer}: accept the TCP/IP socket connection and enter \textbf{Data Mode}.
|
||||||
\item If Telnet protocol is enabled by \texttt{ATS15=1} then the Telnet Protocol will be negotiated with the remote host after the modem enters \textbf{Data Mode}.
|
\item If Telnet protocol is enabled by \texttt{ATS15=1} then the Telnet Protocol will be negotiated with the remote host after the modem enters \textbf{Data Mode}.
|
||||||
\item The user can \textit{Hangup} an incoming call by sending the Escape Sequence \texttt{+++} (with guard times) to return to \textbf{Command Mode} and then sending \texttt{ATH} to \textit{Hangup}.
|
\item The user can \textit{Hangup} an incoming call by sending the Escape Sequence \texttt{+++} (with guard times) to return to \textbf{Command Mode} and then sending
|
||||||
|
\texttt{ATH} to \textit{Hangup}.
|
||||||
\item A Hangup \texttt{ATH} will reset the Ring Counter in \texttt{S1} to zero (0).
|
\item A Hangup \texttt{ATH} will reset the Ring Counter in \texttt{S1} to zero (0).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
42
setup.tex
42
setup.tex
@ -6,12 +6,12 @@
|
|||||||
\hline
|
\hline
|
||||||
\textbf{Key} & \textbf{Function} \\
|
\textbf{Key} & \textbf{Function} \\
|
||||||
\hline
|
\hline
|
||||||
\texttt{F1} & Show/hide help \\
|
\LKeyF{1} & Show/hide help \\
|
||||||
\texttt{5} & Advance to the next screen \\
|
\LKey{5} & Advance to the next screen \\
|
||||||
\texttt{Shift-T} & Reset tab stops to default \\
|
\LKeyShiftX{T} & Reset tab stops to default \\
|
||||||
\texttt{Tab} & Move cursor to the next tab stop \\
|
\LKeyTab & Move cursor to the next tab stop \\
|
||||||
\texttt{Enter} & Move cursor to the beginning of the line \\
|
\LKeyEnter & Move cursor to the beginning of the line \\
|
||||||
\texttt{Shift-C} & On Set-Up B: reset NVRAM to factory defaults on next boot \\
|
\LKeyShiftX{C} & On Set-Up B: reset NVRAM to factory defaults on next boot \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
The Set-Up screens imitate the same functions on a real DEC VT100 terminal.
|
The Set-Up screens imitate the same functions on a real DEC VT100 terminal.
|
||||||
|
|
||||||
Use \texttt{F1} to toggle the help display which shows all keys. \\
|
Use \LKeyF{1} to toggle the help display which shows all keys. \\
|
||||||
Use \texttt{5} to advance to the next screen.
|
Use \LKey{5} to advance to the next screen.
|
||||||
|
|
||||||
\subsection{Set-Up A}
|
\subsection{Set-Up A}
|
||||||
|
|
||||||
@ -30,11 +30,11 @@ This page shows the tab stops and offers to toggle \textbf{80/132 columns} text
|
|||||||
In \textbf{online mode}, the terminal is connected to the computer via the serial port.\\
|
In \textbf{online mode}, the terminal is connected to the computer via the serial port.\\
|
||||||
In \textbf{local mode}, the terminal can be used to connect directly to the modem using the \textit{Quick Settings menu} (see \vref{quicksettings}).
|
In \textbf{local mode}, the terminal can be used to connect directly to the modem using the \textit{Quick Settings menu} (see \vref{quicksettings}).
|
||||||
|
|
||||||
Use \texttt{Shift-S} (capital \texttt{S}) to save and \texttt{Shift-R} (capital \texttt{R}) to recall the settings from NVS.
|
Use \LKeyShiftX{S} (capital \texttt{S}) to save and \LKeyShiftX{R} (capital \texttt{R}) to recall the settings from NVS.
|
||||||
|
|
||||||
\subsection{Set-Up B}
|
\subsection{Set-Up B}
|
||||||
|
|
||||||
On this page, various configuration 'bits' can be set. Use the cursor to navigate above the bit and press \texttt{6} to toggle it. Use \texttt{Tab} and \texttt{Enter }to move quicker.
|
On this page, various configuration \textit{bits} can be set. Use the cursor to navigate above the bit and press \LKey{6} to toggle it. Use \LKeyTab{} and \LKeyEnter{} to move quicker.
|
||||||
|
|
||||||
These bits are available:
|
These bits are available:
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ NumLock on Reset & Should NumLock be enabled on bootup \\
|
|||||||
\newpage
|
\newpage
|
||||||
\textbf{Please note:}
|
\textbf{Please note:}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Use keys \texttt{7} and \texttt{8} to set the baudrate used on the terminal serial port, it is shown in the lower right.
|
\item Use keys \LKey{7} and \LKey{8} to set the baudrate used on the terminal serial port, it is shown in the lower right.
|
||||||
\item The bits for \textbf{bold} text are applied to text with the attribute \texttt{ESC[1m}.
|
\item The bits for \textbf{bold} text are applied to text with the attribute \texttt{ESC[1m}.
|
||||||
\item \textit{Home on Erase} makes the cursor go home (\texttt{ESC [H}) on a clear screen request (\texttt{ESC[2J}), just as MS-DOS \texttt{ANSI.SYS} works.
|
\item \textit{Home on Erase} makes the cursor go home (\texttt{ESC [H}) on a clear screen request (\texttt{ESC[2J}), just as MS-DOS \texttt{ANSI.SYS} works.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@ -88,11 +88,11 @@ You can change the following settings:
|
|||||||
\hline
|
\hline
|
||||||
\textbf{Key} & \textbf{Function} \\
|
\textbf{Key} & \textbf{Function} \\
|
||||||
\hline
|
\hline
|
||||||
2 & Select codepage (DEC or Codepage 437) \\
|
\LKey{2} & Select codepage (DEC or Codepage 437) \\
|
||||||
3 & Select lines per screen (24, 25 or 30) \\
|
\LKey{3} & Select lines per screen (24, 25 or 30) \\
|
||||||
6 & Toggle ANSI or VGA color palette \\
|
\LKey{6} & Toggle ANSI or VGA color palette \\
|
||||||
7 & Set default foreground color \\
|
\LKey{7} & Set default foreground color \\
|
||||||
8 & Set default background color \\
|
\LKey{8} & Set default background color \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
@ -113,17 +113,17 @@ This screen is a VT132 enhancement over the VT100 functionality.
|
|||||||
\hline
|
\hline
|
||||||
\textbf{Key} & \textbf{Function} \\
|
\textbf{Key} & \textbf{Function} \\
|
||||||
\hline
|
\hline
|
||||||
6 & Set the keyboard layout \\
|
\LKey{6} & Set the keyboard layout \\
|
||||||
7 & Toggle MCS/NRCS \\
|
\LKey{7} & Toggle MCS/NRCS \\
|
||||||
\hline
|
\hline
|
||||||
\texttt{$\uparrow$} & \multirow{2}{*}{Change Personality} \\
|
\LKeyUp & \multirow{2}{*}{Change Personality} \\
|
||||||
\texttt{$\downarrow$} & \\
|
\LKeyDown & \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
\textbf{Please note:}
|
\textbf{Please note:}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item To change the keyboard layout, move the cursor above the desired label and press \texttt{6}.
|
\item To change the keyboard layout, move the cursor above the desired label and press \LKey{6}.
|
||||||
\item When enabling NRCS, certain characters in the lower 127 characters are replaced with country-specific characters according to the
|
\item When enabling NRCS, certain characters in the lower 127 characters are replaced with country-specific characters according to the
|
||||||
selected keyboard layout.
|
selected keyboard layout.
|
||||||
\item The current keyboard layout and personality is shown in the last line of the screen.
|
\item The current keyboard layout and personality is shown in the last line of the screen.
|
||||||
|
22
terminal.tex
22
terminal.tex
@ -10,10 +10,10 @@ Alternative personalities like ADM-3A or VT-52 are also available.
|
|||||||
\hline
|
\hline
|
||||||
\textbf{Key} & \textbf{Function} \\
|
\textbf{Key} & \textbf{Function} \\
|
||||||
\hline
|
\hline
|
||||||
\texttt{Alt-SysRq} & Open Setup Screen \\
|
\LKeyAlt + \biolinum{SysRq} & Open Setup Screen \\
|
||||||
\texttt{Alt-Esc} & Open Quick Settings Menu \\
|
\LKeyAlt + \LKeyEsc & Open Quick Settings Menu \\
|
||||||
\texttt{Ctrl-J} & Send \texttt{LINEFEED} key \\
|
\LKeyCtrlX{J} & Send \texttt{LINEFEED} key \\
|
||||||
\texttt{ScrollLock} & \texttt{NO SCROLL} function, like Ctrl-S / Ctrl-Q \\
|
\biolinum{ScrollLock} & \texttt{NO SCROLL} function, like \LKeyCtrlX{S} / \LKeyCtrlX{Q} \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
@ -26,15 +26,15 @@ Use these keys to navigate inside this menu:
|
|||||||
\hline
|
\hline
|
||||||
\textbf{Key} & \textbf{Function} \\
|
\textbf{Key} & \textbf{Function} \\
|
||||||
\hline
|
\hline
|
||||||
\texttt{Esc} & Close Quick Settings Menu (at top level)\\
|
\LKeyEsc & Close Quick Settings Menu (at top level)\\
|
||||||
\hline
|
\hline
|
||||||
\texttt{Space} & \multirow{3}{*}{Make selection, enter menu} \\
|
\LKeySpace & \multirow{3}{*}{Make selection, enter menu} \\
|
||||||
\texttt{Enter} & \\
|
\LKeyEnter & \\
|
||||||
\texttt{$\rightarrow$} & \\
|
\LKeyRight & \\
|
||||||
\hline
|
\hline
|
||||||
\texttt{Esc} & \multirow{3}{*}{Go back one level} \\
|
\LKeyEsc & \multirow{3}{*}{Go back one level} \\
|
||||||
\texttt{Backspace} & \\
|
\LKeyBack & \\
|
||||||
\texttt{$\leftarrow$} & \\
|
\LKeyLeft & \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user