Add edge annotations to workflow overview figure

This commit is contained in:
2026-04-17 23:05:31 +02:00
parent 2aa4bdc1b5
commit 6afa41ae0a

View File

@@ -55,7 +55,7 @@
\usepackage{algorithm} \usepackage{algorithm}
\title{Fault Tolerant Quantum Error Correction} \title{Fault Tolerant Quantum Error Correction}
\subtitle{Master's Thesis Midterm Presentation} \subtitle{Master's Thesis Final Presentation}
\author[ Andreas]{Andreas Tsouchlos} \author[ Andreas]{Andreas Tsouchlos}
\date[]{} \date[]{}
@@ -537,16 +537,16 @@
\coordinate (temp) at ($(enc)!0.5!(dec) + (-85mm,0)$); \coordinate (temp) at ($(enc)!0.5!(dec) + (-85mm,0)$);
\node[block] (ler) at (temp) {LER calculation}; \node[block] (ler) at (temp) {LER calculation};
\node (inp) at ($(enc) + (-140mm,0)$) {$\ket{\psi}_\text{L}$}; \node (inp) at ($(enc) + (-140mm,0)$) {$\ket{\varphi}$};
\node (out) at ($(dec) + (-140mm,0)$) \node (out) at ($(dec) + (-140mm,0)$)
{$\ket{\hat{\psi}}_\text{L}$}; {$\ket{\hat{\varphi}}_\text{L}$};
\draw[-{Latex}] (inp) -- (enc); \draw[-{Latex}] (inp) -- (enc);
\draw[-{Latex}] (enc) -- (cha); \draw[-{Latex}] (enc) -- (cha) node[midway, above] {$\ket{\psi}$};
\draw[-{Latex}] (cha) -- (syn); \draw[-{Latex}] (cha) -- (syn) node[midway, above] {$\mathcal{E}\ket{\psi}$};
\draw[-{Latex}] (syn) -- (sde); \draw[-{Latex}] (syn) -- (sde) node[midway, right] {$\bm{s}$};
\draw[-{Latex}] (sde) -- (rev); \draw[-{Latex}] (sde) -- (rev) node[midway, above] {$\hat{\mathcal{E}}$};
\draw[-{Latex}] (rev) -- (dec); \draw[-{Latex}] (rev) -- (dec) node[midway, above] {$\ket{\hat{\psi}}$};
\draw[-{Latex}] (dec) -- (out); \draw[-{Latex}] (dec) -- (out);
\draw[-{Latex}] (cha) -- (rev); \draw[-{Latex}] (cha) -- (rev);
@@ -558,7 +558,7 @@
} }
\end{figure} \end{figure}
\vspace*{10mm} \vspace*{8mm}
\visible<2->{ \visible<2->{
\begin{minipage}{0.35\textwidth} \begin{minipage}{0.35\textwidth}
@@ -687,276 +687,276 @@
\subsection{Detector Error Models} \subsection{Detector Error Models}
\label{subsec:Detector Error Models} \label{subsec:Detector Error Models}
\begin{frame}[fragile] % \begin{frame}[fragile]
\frametitle{The Measurement Syndrome Matrix I} % \frametitle{The Measurement Syndrome Matrix I}
%
\vspace*{-18mm} % \vspace*{-18mm}
%
\begin{itemize} % \begin{itemize}
\item \schlagwort{Measurement syndrome matrix} $\bm{\Omega}$ \\ % \item \schlagwort{Measurement syndrome matrix} $\bm{\Omega}$ \\
contains error patterns \citereferencemanual{DTB$^+$25} % contains error patterns \citereferencemanual{DTB$^+$25}
\item Example: 3-qubit repetition code % \item Example: 3-qubit repetition code
\end{itemize} % \end{itemize}
%
\vspace*{-25mm} % \vspace*{-25mm}
%
\centering % \centering
\only<1>{ % \only<1>{
\begin{minipage}{0.4\textwidth} % \begin{minipage}{0.4\textwidth}
\centering % \centering
%
\vspace*{40mm} % \vspace*{40mm}
\begin{tikzpicture} % \begin{tikzpicture}
\node{$% % \node{$%
\bm{\Omega} = % \bm{\Omega} =
\left( % \left(
\begin{array}{ccc} % \begin{array}{ccc}
1 & 1 & 0 \\ % 1 & 1 & 0 \\
0 & 1 & 1 \\ % 0 & 1 & 1 \\
1 & 1 & 0 \\ % 1 & 1 & 0 \\
0 & 1 & 1 \\ % 0 & 1 & 1 \\
1 & 1 & 0 \\ % 1 & 1 & 0 \\
0 & 1 & 1 % 0 & 1 & 1
\end{array} % \end{array}
\right)$ % \right)$
}; % };
%
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm} % decoration={brace,mirror,amplitude=3mm,raise=5mm}
] % ]
(2.5,1.2) -- (2.5,2.85) % (2.5,1.2) -- (2.5,2.85)
node[midway,right,xshift=10mm]{$\text{SE}_1$}; % node[midway,right,xshift=10mm]{$\text{SE}_1$};
%
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm} % decoration={brace,mirror,amplitude=3mm,raise=5mm}
] % ]
(2.5,-0.75) -- (2.5,0.9) % (2.5,-0.75) -- (2.5,0.9)
node[midway,right,xshift=10mm]{$\text{SE}_2$}; % node[midway,right,xshift=10mm]{$\text{SE}_2$};
%
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm} % decoration={brace,mirror,amplitude=3mm,raise=5mm}
] % ]
(2.5,-2.7) -- (2.5,-1.1) % (2.5,-2.7) -- (2.5,-1.1)
node[midway,right,xshift=10mm]{$\text{SE}_3$}; % node[midway,right,xshift=10mm]{$\text{SE}_3$};
\end{tikzpicture} % \end{tikzpicture}
%
\vspace*{-10mm} % \vspace*{-10mm}
%
\begin{gather*} % \begin{gather*}
\bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} % \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\}
\end{gather*} % \end{gather*}
\end{minipage}% % \end{minipage}%
\begin{minipage}{0.6\textwidth} % \begin{minipage}{0.6\textwidth}
\begin{figure}[H] % \begin{figure}[H]
\newcommand{\preperr}[1]{ % \newcommand{\preperr}[1]{
\gate[style={fill=orange!20}]{\scriptstyle ##1} % \gate[style={fill=orange!20}]{\scriptstyle ##1}
} % }
%
\centering % \centering
%
\begin{quantikz}[ % \begin{quantikz}[
row sep=4mm, column sep=4mm, % row sep=4mm, column sep=4mm,
wire types={q,q,q,q,q,n,n,n,n}, % wire types={q,q,q,q,q,n,n,n,n},
execute at end picture={ % execute at end picture={
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,amplitude=3mm,raise=9mm} % decoration={brace,amplitude=3mm,raise=9mm}
] % ]
(\tikzcdmatrixname-4-19.north east) % (\tikzcdmatrixname-4-19.north east)
-- % --
(\tikzcdmatrixname-5-19.south east) % (\tikzcdmatrixname-5-19.south east)
node[midway,right,xshift=14mm]{$\text{SE}_1$}; % node[midway,right,xshift=14mm]{$\text{SE}_1$};
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,amplitude=3mm,raise=9mm} % decoration={brace,amplitude=3mm,raise=9mm}
] % ]
(\tikzcdmatrixname-6-19.north east) % (\tikzcdmatrixname-6-19.north east)
-- % --
(\tikzcdmatrixname-7-19.south east) % (\tikzcdmatrixname-7-19.south east)
node[midway,right,xshift=14mm]{$\text{SE}_2$}; % node[midway,right,xshift=14mm]{$\text{SE}_2$};
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,amplitude=3mm,raise=9mm} % decoration={brace,amplitude=3mm,raise=9mm}
] % ]
(\tikzcdmatrixname-8-19.north east) % (\tikzcdmatrixname-8-19.north east)
-- % --
(\tikzcdmatrixname-9-19.south east) % (\tikzcdmatrixname-9-19.south east)
node[midway,right,xshift=14mm]{$\text{SE}_3$}; % node[midway,right,xshift=14mm]{$\text{SE}_3$};
} % }
] % ]
% tex-fmt: off % % tex-fmt: off
& \preperr{E_0} & \ctrl{3} & & & & & & \ctrl{5} & & & & & & \ctrl{7} & & & & & \\ % & \preperr{E_0} & \ctrl{3} & & & & & & \ctrl{5} & & & & & & \ctrl{7} & & & & & \\
\lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & & & \ctrl{6} & \ctrl{7} & & & \\ % \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & & & \ctrl{6} & \ctrl{7} & & & \\
& \preperr{E_2} & & & & \ctrl{2} & & & & & & \ctrl{4} & & & & & & \ctrl{6} & & \\ % & \preperr{E_2} & & & & \ctrl{2} & & & & & & \ctrl{4} & & & & & & \ctrl{6} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\ % \lstick{$\ket{0}_{\text{A}_1}$} & & \targ{} & \targ{} & & & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\ % \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & & & & & & & \meter{} & \setwiretype{c} \\ % & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \targ{} & \targ{} & & & & & & & & & \meter{} & \setwiretype{c} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \meter{} & \setwiretype{c} \\ % & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \meter{} & \setwiretype{c} \\
& & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{} & \targ{} & & & \meter{} & \setwiretype{c} \\ % & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \targ{} & \targ{} & & & \meter{} & \setwiretype{c} \\
& & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c} % & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c}
% tex-fmt: on % % tex-fmt: on
\end{quantikz} % \end{quantikz}
\end{figure} % \end{figure}
\end{minipage} % \end{minipage}
} % }
\only<2>{ % \only<2>{
\begin{minipage}{0.4\textwidth} % \begin{minipage}{0.4\textwidth}
\centering % \centering
%
\vspace*{40mm} % \vspace*{40mm}
\begin{tikzpicture} % \begin{tikzpicture}
\node{$% % \node{$%
\bm{\Omega} = % \bm{\Omega} =
\left( % \left(
\begin{array}{>{\columncolor{red!20}}ccc} % \begin{array}{>{\columncolor{red!20}}ccc}
1 & 1 & 0 \\ % 1 & 1 & 0 \\
0 & 1 & 1 \\ % 0 & 1 & 1 \\
1 & 1 & 0 \\ % 1 & 1 & 0 \\
0 & 1 & 1 \\ % 0 & 1 & 1 \\
1 & 1 & 0 \\ % 1 & 1 & 0 \\
0 & 1 & 1 % 0 & 1 & 1
\end{array} % \end{array}
\right)$ % \right)$
}; % };
%
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm} % decoration={brace,mirror,amplitude=3mm,raise=5mm}
] % ]
(2.5,1.2) -- (2.5,2.85) % (2.5,1.2) -- (2.5,2.85)
node[midway,right,xshift=10mm]{$\text{SE}_1$}; % node[midway,right,xshift=10mm]{$\text{SE}_1$};
%
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm} % decoration={brace,mirror,amplitude=3mm,raise=5mm}
] % ]
(2.5,-0.75) -- (2.5,0.9) % (2.5,-0.75) -- (2.5,0.9)
node[midway,right,xshift=10mm]{$\text{SE}_2$}; % node[midway,right,xshift=10mm]{$\text{SE}_2$};
%
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,mirror,amplitude=3mm,raise=5mm} % decoration={brace,mirror,amplitude=3mm,raise=5mm}
] % ]
(2.5,-2.7) -- (2.5,-1.1) % (2.5,-2.7) -- (2.5,-1.1)
node[midway,right,xshift=10mm]{$\text{SE}_3$}; % node[midway,right,xshift=10mm]{$\text{SE}_3$};
\end{tikzpicture} % \end{tikzpicture}
%
\vspace*{-10mm} % \vspace*{-10mm}
%
\begin{gather*} % \begin{gather*}
\bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\} % \bm{s} \in \text{span} \mleft\{ \bm{\Omega} \mright\}
\end{gather*} % \end{gather*}
\end{minipage}% % \end{minipage}%
\begin{minipage}{0.6\textwidth} % \begin{minipage}{0.6\textwidth}
\begin{figure}[H] % \begin{figure}[H]
\newcommand{\preperr}[1]{ % \newcommand{\preperr}[1]{
\gate[style={fill=orange!20}]{\scriptstyle ##1} % \gate[style={fill=orange!20}]{\scriptstyle ##1}
} % }
\newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}} % \newcommand{\measerr}{\gate[style={fill=blue!20}]{\phantom{1}}}
%
\newcommand{\noise}{ % \newcommand{\noise}{
\gate[style={noisy}]{\text{\small X}}% % \gate[style={noisy}]{\text{\small X}}%
\setwiretype{n}% % \setwiretype{n}%
\wire[l][1]{q} % \wire[l][1]{q}
} % }
\newcommand{\redwire}[1]{ % \newcommand{\redwire}[1]{
\wire[r][##1][style={draw=red, line width=2pt}]{q} % \wire[r][##1][style={draw=red, line width=2pt}]{q}
} % }
\newcommand{\redtarg}{ % \newcommand{\redtarg}{
\targ[style={draw=red}]{}% % \targ[style={draw=red}]{}%
\setwiretype{n}% % \setwiretype{n}%
\wire[l][1]{q} % \wire[l][1]{q}
} % }
\newcommand{\redctrl}[1]{ % \newcommand{\redctrl}[1]{
\ctrl[style={draw=red,fill=red,line width=2pt}]{##1} % \ctrl[style={draw=red,fill=red,line width=2pt}]{##1}
} % }
\newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}} % \newcommand{\redmeter}{\meter[style={draw=red,fill=red!20}]{}}
%
\tikzset{ % \tikzset{
noisy/.style={ % noisy/.style={
starburst, % starburst,
starburst point height=2mm, % starburst point height=2mm,
fill=red!25, draw=red!85!black, % fill=red!25, draw=red!85!black,
line width=2pt, % line width=2pt,
inner xsep=-2pt, inner ysep=-2pt % inner xsep=-2pt, inner ysep=-2pt
}, % },
} % }
%
\centering % \centering
%
\begin{quantikz}[ % \begin{quantikz}[
row sep=4mm, column sep=4mm, % row sep=4mm, column sep=4mm,
wire types={q,q,q,q,q,n,n,n,n}, % wire types={q,q,q,q,q,n,n,n,n},
execute at end picture={ % execute at end picture={
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,amplitude=3mm,raise=9mm} % decoration={brace,amplitude=3mm,raise=9mm}
] % ]
(\tikzcdmatrixname-4-19.north east) % (\tikzcdmatrixname-4-19.north east)
-- % --
(\tikzcdmatrixname-5-19.south east) % (\tikzcdmatrixname-5-19.south east)
node[midway,right,xshift=14mm]{$\text{SE}_1$}; % node[midway,right,xshift=14mm]{$\text{SE}_1$};
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,amplitude=3mm,raise=9mm} % decoration={brace,amplitude=3mm,raise=9mm}
] % ]
(\tikzcdmatrixname-6-19.north east) % (\tikzcdmatrixname-6-19.north east)
-- % --
(\tikzcdmatrixname-7-19.south east) % (\tikzcdmatrixname-7-19.south east)
node[midway,right,xshift=14mm]{$\text{SE}_2$}; % node[midway,right,xshift=14mm]{$\text{SE}_2$};
\draw [ % \draw [
line width=1pt, % line width=1pt,
decorate, % decorate,
decoration={brace,amplitude=3mm,raise=9mm} % decoration={brace,amplitude=3mm,raise=9mm}
] % ]
(\tikzcdmatrixname-8-19.north east) % (\tikzcdmatrixname-8-19.north east)
-- % --
(\tikzcdmatrixname-9-19.south east) % (\tikzcdmatrixname-9-19.south east)
node[midway,right,xshift=14mm]{$\text{SE}_3$}; % node[midway,right,xshift=14mm]{$\text{SE}_3$};
} % }
] % ]
% tex-fmt: off % % tex-fmt: off
& \noise\redwire{18} & \redctrl{3} & & & & & & \redctrl{5} & & & & & & \redctrl{7} & & & & & \\ % & \noise\redwire{18} & \redctrl{3} & & & & & & \redctrl{5} & & & & & & \redctrl{7} & & & & & \\
\lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & & & \ctrl{6} & \ctrl{7} & & & \\ % \lstick{$\ket{\psi}$} & \preperr{E_1} & & \ctrl{2} & \ctrl{3} & & & & & \ctrl{4} & \ctrl{5} & & & & & \ctrl{6} & \ctrl{7} & & & \\
& \preperr{E_2} & & & & \ctrl{2} & & & & & & \ctrl{4} & & & & & & \ctrl{6} & & \\ % & \preperr{E_2} & & & & \ctrl{2} & & & & & & \ctrl{4} & & & & & & \ctrl{6} & & \\
\lstick{$\ket{0}_{\text{A}_1}$} & & \redtarg{}\redwire{16} & \targ{} & & & & & & & & & & & & & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ % \lstick{$\ket{0}_{\text{A}_1}$} & & \redtarg{}\redwire{16} & \targ{} & & & & & & & & & & & & & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
\lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\ % \lstick{$\ket{0}_{\text{A}_2}$} & & & & \targ{} & \targ{} & & & & & & & & & & & & & \meter{} & \setwiretype{c} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\redwire{10} & \targ{} & & & & & & & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ % & & & & & & \lstick{$\ket{0}_{\text{A}_3}$} & \setwiretype{q} & \redtarg\redwire{10} & \targ{} & & & & & & & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
& & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \meter{} & \setwiretype{c} \\ % & & & & & & \lstick{$\ket{0}_{\text{A}_4}$} & \setwiretype{q} & & & \targ{} & \targ{} & & & & & & & \meter{} & \setwiretype{c} \\
& & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \redtarg\redwire{4} & \targ{} & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\ % & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_5}$} & \setwiretype{q} & \redtarg\redwire{4} & \targ{} & & & \redmeter\wire[r][1][style={draw=red,double, line width=2pt}]{q} & \setwiretype{n} \\
& & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c} % & & & & & & & & & & & & \lstick{$\ket{0}_{\text{A}_6}$} & \setwiretype{q} & & & \targ{} & \targ{} & \meter{} & \setwiretype{c}
% tex-fmt: on % % tex-fmt: on
\end{quantikz} % \end{quantikz}
\end{figure} % \end{figure}
\end{minipage} % \end{minipage}
} % }
%
\vspace*{8mm} % \vspace*{8mm}
%
\addreferencesmanual % \addreferencesmanual
{DTB$^+$25}{ % {DTB$^+$25}{
P.- J. H. S. Derks et al., ``Designing fault-tolerant % P.- J. H. S. Derks et al., ``Designing fault-tolerant
circuits using detector error models,'' \emph{Quantum}, 2025. % circuits using detector error models,'' \emph{Quantum}, 2025.
} % }
\stopreferencesmanual % \stopreferencesmanual
\end{frame} % \end{frame}
\begin{frame}[fragile] \begin{frame}[fragile]
\frametitle{The Measurement Syndrome Matrix II} \frametitle{The Measurement Syndrome Matrix}
\vspace*{-18mm} \vspace*{-18mm}
@@ -1909,7 +1909,7 @@
\vspace*{-5mm} \vspace*{-5mm}
\begin{itemize} \begin{itemize}
\item Pass \ac{cn} to \ac{vn} messages \item Pass \ac{cn} to \ac{vn} messages to next window
\end{itemize} \end{itemize}
\end{frame} \end{frame}
@@ -2927,6 +2927,7 @@
\item \Ac{spa} + \ac{gd} decoder \item \Ac{spa} + \ac{gd} decoder
\item Parameters \item Parameters
\begin{itemize} \begin{itemize}
\item $T = 1$
\item $n_\text{iterations} = 32$ \item $n_\text{iterations} = 32$
\item $F = 1$ \item $F = 1$
\end{itemize} \end{itemize}