summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tcolorbox/tcolorbox.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tcolorbox/tcolorbox.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/tcolorbox/tcolorbox.sty')
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty2216
1 files changed, 2216 insertions, 0 deletions
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
new file mode 100644
index 0000000000..778bf12363
--- /dev/null
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -0,0 +1,2216 @@
+%% The LaTeX package tcolorbox - version 4.20 (2019/03/02)
+%% tcolorbox.sty: Text color boxes
+%%
+%% -------------------------------------------------------------------------------------------
+%% Copyright (c) 2006-2019 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
+%% -------------------------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of all files listed in README
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tcolorbox}[2019/03/02 version 4.20 text color boxes]
+\def\tcb@version{4.20}
+
+\RequirePackage{pgf}[2008/01/15]
+\RequirePackage{verbatim}[2003/08/22]
+\RequirePackage{environ}[2013/04/01]
+\RequirePackage{etoolbox}[2011/01/03]
+
+% register
+\newif\iftcb@lowerignored
+\newif\iftcb@lowervisible
+\newif\iftcb@uppervisible
+\newif\iftcb@titlevisible
+\newif\iftcb@hasTitle
+\newif\iftcb@hasLower
+\newif\iftcb@lowerspace
+\newif\iftcb@sidebyside
+\newif\iftcb@hasPhantom
+\newif\iftcb@lowerseparated
+\newif\iftcb@titlefilled
+\newif\iftcb@fixedheight
+\newif\iftcb@ignorenobreak
+\newif\iftcb@checkpage
+
+\newbox\tcb@titlebox
+\newbox\tcb@upperbox
+\newbox\tcb@lowerbox
+\newbox\tcb@phantombox
+
+\newcounter{tcbbreakpart}
+\newcounter{tcblayer}
+\newcount\tcolorbox@number
+
+\def\tcb@warning#1{\PackageWarning{tcolorbox}{#1}}
+\def\tcb@error#1#2{\PackageError{tcolorbox}{#1}{#2}}
+
+% key management
+\pgfkeys{/tcb/.is family}
+
+\def\tcbset{\pgfqkeys{/tcb}}
+\long\def\tcbset@late@options#1{\appto\tcb@lateoptions@hook{\tcbset{#1}}}
+
+\def\tcb@dim@to#1#2{\def#1{\the\dimexpr#2\relax}}
+\def\tcbdimto#1#2{\edef#1{\the\dimexpr#2\relax}}
+
+\def\tcb@defToTotalHeightStandard#1#2{\tcbdimto#1{\ht#2+\dp#2}}
+\let\tcb@defToTotalHeight\tcb@defToTotalHeightStandard
+
+\def\tcb@zpt{0pt}
+
+\def\tcb@comp@arc@auto{%
+ \let\tcb@outer@arc=\kvtcb@top@rule@stand%
+ \ifdim\kvtcb@bottom@rule@stand<\tcb@outer@arc\relax%
+ \let\tcb@outer@arc=\kvtcb@bottom@rule@stand\fi%
+ \ifdim\kvtcb@left@rule<\tcb@outer@arc\relax%
+ \let\tcb@outer@arc=\kvtcb@left@rule\fi%
+ \ifdim\kvtcb@right@rule<\tcb@outer@arc\relax%
+ \let\tcb@outer@arc=\kvtcb@right@rule\fi%
+ \tcbdimto\tcb@outer@arc{\tcb@arc@scale\dimexpr\tcb@outer@arc\relax+\kvtcb@arc}%
+}
+
+\def\tcb@comp@arc@fix{%
+ \tcbdimto\tcb@outer@arc{\kvtcb@outerarc}%
+}
+
+\def\tcb@use@auto@parskip{%
+ \tcbset{autoparskip}%
+}
+
+\def\tcb@hack@currenvir{\edef\tcb@temp{\noexpand\def\noexpand\@currenvir{\kvtcb@savedelimiter}}\tcb@temp}
+
+\def\tcb@sbs@quota@leftwidth{%
+ \tcbdimto\tcb@w@upper{\kvtcb@sbs@ratio}%
+ \tcbdimto\tcb@w@lower{\tcb@w@sbs-\tcb@w@upper}%
+}
+
+\def\tcb@sbs@quota@rightwidth{%
+ \tcbdimto\tcb@w@lower{\kvtcb@sbs@ratio}%
+ \tcbdimto\tcb@w@upper{\tcb@w@sbs-\tcb@w@lower}%
+}
+
+\def\tcb@sbs@quota@leftratio{%
+ \tcbdimto\tcb@w@upper{\kvtcb@sbs@ratio\dimexpr\tcb@w@sbs}%
+ \tcbdimto\tcb@w@lower{\tcb@w@sbs-\tcb@w@upper}%
+}
+
+\def\tcb@sbs@quota@rightratio{%
+ \tcbdimto\tcb@w@lower{\kvtcb@sbs@ratio\dimexpr\tcb@w@sbs}%
+ \tcbdimto\tcb@w@upper{\tcb@w@sbs-\tcb@w@lower}%
+}
+
+\def\tcb@shield@@externalize{%
+ \ifdefined\tikzexternaldisable%
+ \ifdefined\pgfpictureid%
+ \else%
+ \tikzexternaldisable%
+ \fi%
+ \fi}
+
+\def\tcb@set@embed@tcbox#1{%
+ \long\def\tcb@embed@tcbox##1{%
+ \tcbdimto\tcb@w@upper{\kvtcb@width-(\kvtcb@left@rule+\kvtcb@leftupper+(\kvtcb@boxsep)*2+\kvtcb@rightupper+\kvtcb@right@rule)}%
+ #1}%
+}
+
+\def\tcb@new@skin#1#2{\tcbset{skin@#1/.style={#2}}}
+\newcommand{\tcbsubskin}[3]{\tcb@new@skin{#1}{skin@#2,#3}}
+
+\pgfkeys{/handlers/.dimstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{\the\dimexpr##1\relax}}}
+\pgfkeys{/handlers/.colorlet/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\colorlet{#1}{##1}}}
+
+\newcommand\tcbtitle{\ifx\tcbtitletext\@empty\else%
+ \leavevmode{\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\tcbtitletext\kvtcb@after@title}\fi}
+
+\def\tcb@detach@title@code@{%
+ \let\tcbtitletext\kvtcb@title%
+ \let\kvtcb@title\@empty%
+ \tcbset{title/.store in=\tcbtitletext}%
+ \let\tcb@detach@title@code\@empty%
+ \let\tcb@attach@title@code\tcb@attach@title@code@%
+ \let\tcb@specialtitle@hook\@empty%
+}
+
+\def\tcb@attach@title@code@{%
+ \let\kvtcb@title\tcbtitletext%
+ \let\tcbtitletext\@empty%
+ \tcbset{title/.store in=\kvtcb@title}%
+ \let\tcb@attach@title@code\@empty%
+ \let\tcb@detach@title@code\tcb@detach@title@code@%
+ \let\tcb@specialtitle@hook\@empty%
+}
+
+\def\tcb@gettitle#1{\protected@edef\@currentlabelname{#1}}
+
+\AfterEndPreamble{%
+ \ifdefined\NR@gettitle%
+ \let\tcb@gettitle\NR@gettitle%
+ \fi%
+}
+
+\def\tcb@parfillskip@restore{\ifdim\parfillskip>0pt\relax\parfillskip\@flushglue\fi}
+
+% analog to plain.tex
+\def\tcb@raggedright@plain{\raggedright\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+\def\tcb@raggedleft@plain{\raggedleft\leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \hbadness=10000\relax}
+\def\tcb@raggedcenter@plain{\centering\leftskip0pt plus2em\rightskip0pt plus2em\spaceskip.3333em \xspaceskip.5em \hbadness=10000\relax}
+
+\def\tcb@insert@before@upper@ignore{\kvtcb@before@upper\ignorespaces}
+\def\tcb@insert@before@upper@noignore{\kvtcb@before@upper}
+\def\tcb@insert@before@lower@ignore{\kvtcb@before@lower\ignorespaces}
+\def\tcb@insert@before@lower@noignore{\kvtcb@before@lower}
+\def\tcb@insert@after@upper@unskip{\ifvmode\else\unskip\fi\kvtcb@after@upper}
+\def\tcb@insert@after@upper@nounskip{\kvtcb@after@upper}
+\def\tcb@insert@after@lower@unskip{\ifvmode\else\unskip\fi\kvtcb@after@lower}
+\def\tcb@insert@after@lower@nounskip{\kvtcb@after@lower}
+
+\tcbset{%
+ title/.store in=\kvtcb@title,
+ notitle/.style={title=},
+ adjust text/.store in=\kvtcb@adjusttext,
+ adjusted title/.style={title={#1\vphantom{\kvtcb@adjusttext}}},
+ squeezed title/.style={title={%
+ \setbox\z@=\color@hbox#1\color@endbox%
+ \ifdim\wd\z@>\linewidth\relax%
+ \resizebox{\linewidth}{\height}{\unhbox\z@}%
+ \else%
+ \unhbox\z@%
+ \fi%
+ }},
+ squeezed title*/.style={squeezed title={#1\vphantom{\kvtcb@adjusttext}}},%
+ detach title/.code=\tcb@detach@title@code,%
+ attach title/.code=\tcb@attach@title@code,%
+ attach title to upper/.style={detach title,before upper={\ifx\tcbtitletext\@empty\else\tcbtitle#1\fi}},
+ attach title to upper/.default=,
+ subtitle style/.store in=\kvtcb@subtitle@style,%
+ width/.store in=\kvtcb@width,
+ text width/.style={width={#1+\kvtcb@left@rule+\kvtcb@right@rule+\kvtcb@boxsep*2+\kvtcb@leftupper+\kvtcb@rightupper}},%
+ add to width/.code={\tcbdimto\kvtcb@width{\kvtcb@width+(#1)}},%
+ boxsep/.store in=\kvtcb@boxsep,
+ toprule/.code={%
+ \def\kvtcb@top@rule@stand{#1}%
+ \let\kvtcb@top@rule@break=\kvtcb@top@rule@stand%
+ },
+ bottomrule/.code={%
+ \def\kvtcb@bottom@rule@stand{#1}%
+ \let\kvtcb@bottom@rule@break=\kvtcb@bottom@rule@stand%
+ },
+ leftrule/.store in=\kvtcb@left@rule,
+ rightrule/.store in=\kvtcb@right@rule,
+ titlerule/.store in=\kvtcb@title@rule,
+ boxrule/.code={
+ \def\kvtcb@top@rule@stand{#1}%
+ \let\kvtcb@top@rule@break=\kvtcb@top@rule@stand%
+ \let\kvtcb@bottom@rule@stand=\kvtcb@top@rule@stand%
+ \let\kvtcb@bottom@rule@break=\kvtcb@top@rule@stand%
+ \let\kvtcb@left@rule=\kvtcb@top@rule@stand%
+ \let\kvtcb@right@rule=\kvtcb@top@rule@stand%
+ \let\kvtcb@title@rule=\kvtcb@top@rule@stand%
+ },
+ arc/.store in=\kvtcb@arc,
+ outer arc/.code={\def\kvtcb@outerarc{#1}\let\tcb@comp@arc=\tcb@comp@arc@fix},
+ auto outer arc/.code={\let\tcb@comp@arc=\tcb@comp@arc@auto},
+ circular arc/.style={arc=\tcb@innerwidth/2},
+ bean arc/.code={%
+ \iftcb@fixedheight%
+ \ifdim\dimexpr\kvtcb@width-(\kvtcb@left@rule+\kvtcb@right@rule)>\dimexpr\kvtcb@height@fixed-(\kvtcb@top@rule@stand+\kvtcb@bottom@rule@stand)\relax%
+ \def\kvtcb@arc{(\kvtcb@height@fixed-(\kvtcb@top@rule@stand+\kvtcb@bottom@rule@stand))/2}%
+ \else%
+ \def\kvtcb@arc{(\kvtcb@width-(\kvtcb@left@rule+\kvtcb@right@rule))/2}%
+ \fi%
+ \else%
+ \def\kvtcb@arc{\tcb@innerwidth/2}%
+ \fi%
+ },
+ octogon arc/.style={arc=0.292893218\dimexpr\tcb@innerwidth\relax},
+ arc is curved/.code={%
+ \def\tcb@arc@scale{1}%
+ \let\tcb@apply@graph@patches=\tcbpatcharcround%
+ },
+ arc is angular/.code={%
+ \def\tcb@arc@scale{0.58578644}%
+ \let\tcb@apply@graph@patches=\tcbpatcharcangular%
+ },
+ sharpish corners/.style={arc=\z@,outer arc=\z@},
+ lefttitle/.store in=\kvtcb@lefttitle,
+ leftupper/.store in=\kvtcb@leftupper,
+ leftlower/.store in=\kvtcb@leftlower,
+ left/.style={lefttitle=#1,leftupper=#1,leftlower=#1},
+ left*/.style={left={#1-(\kvtcb@left@rule)-(\kvtcb@boxsep)-(\kvtcb@bbleft)}},
+ righttitle/.store in=\kvtcb@righttitle,
+ rightupper/.store in=\kvtcb@rightupper,
+ rightlower/.store in=\kvtcb@rightlower,
+ right/.style={righttitle=#1,rightupper=#1,rightlower=#1},
+ right*/.style={right={#1-(\kvtcb@right@rule)-(\kvtcb@boxsep)-(\kvtcb@bbright)}},
+ top/.store in=\kvtcb@top,
+ toptitle/.store in=\kvtcb@toptitle,
+ bottom/.store in=\kvtcb@bottom,
+ bottomtitle/.store in=\kvtcb@bottomtitle,
+ middle/.store in=\kvtcb@middle,
+ colback/.colorlet=tcbcolback,
+ colframe/.colorlet=tcbcolframe,
+ colupper/.colorlet=tcbcolupper,
+ collower/.colorlet=tcbcollower,
+ coltext/.style={colupper=#1,collower=#1},
+ coltitle/.colorlet=tcbcoltitle,
+ fonttitle/.store in=\kvtcb@fonttitle,
+ fontupper/.store in=\kvtcb@fontupper,
+ fontlower/.store in=\kvtcb@fontlower,
+ tempfile/.store in=\kvtcb@tempfile,
+ savelowerto/.store in=\kvtcb@savelowerto,
+ saveto/.store in=\kvtcb@saveupperto,
+ savedelimiter/.estore in=\kvtcb@savedelimiter,
+ floatplacement/.store in=\kvtcb@floatplacement,
+ float/.code={\def\kvtcb@float{#1}\def\tcb@float@env@begin{\@float}\def\tcb@float@env@end{\end@float}},
+ float/.default=\kvtcb@floatplacement,
+ float*/.code={\def\kvtcb@float{#1}\def\tcb@float@env@begin{\@dblfloat}\def\tcb@float@env@end{\end@dblfloat}},
+ float*/.default=\kvtcb@floatplacement,
+ every float/.store in=\kvtcb@everyfloat,%
+ nofloat/.style={float=},
+ parfillskip restore/.is choice,%
+ parfillskip restore/.default=true,%
+ parfillskip restore/true/.code={\let\tcb@parfillskip@check=\tcb@parfillskip@restore},%
+ parfillskip restore/false/.code={\let\tcb@parfillskip@check=\@empty},%
+ before/.code={\def\kvtcb@beforebox{#1}\let\tcb@undo@before=\@empty\let\tcb@use@autoparskip=\relax},
+ after/.code={\def\kvtcb@afterbox{#1}\let\tcb@use@autoparskip=\relax},
+ autoparskip/.code={\let\tcb@use@autoparskip=\tcb@use@auto@parskip},
+ parskip/.style={before={\ifnum\lastnodetype=-1\relax\else\par%
+ \ifvmode\edef\tcb@prevdepth{\the\glueexpr\prevdepth+\lineskip+\parskip}%
+ \def\tcb@undo@before{\addvspace{-\glueexpr\tcb@prevdepth}}%
+ \pagebreak[0]\fi\fi\parindent\z@},
+ after={\tcb@parfillskip@check\par}},
+ noparskip/.style={before={\ifnum\lastnodetype=-1\relax\else\par%
+ \ifvmode\edef\tcb@prevdepth{\the\glueexpr\prevdepth+\lineskip}%
+ \def\tcb@undo@before{\addvspace{-\glueexpr\smallskipamount+\tcb@prevdepth}}%
+ \pagebreak[0]\smallskip\fi\fi\parindent\z@},
+ after={\tcb@parfillskip@check\par\smallskip}},
+ nobeforeafter/.style={before=,after=},
+ force nobeforeafter/.code={\tcbset@late@options{nobeforeafter}},
+ before skip/.style={before={%
+ \ifnum\lastnodetype=-1\relax%
+ \else%
+ \par%
+ \ifvmode\tcbdimto\tcb@prevdepth{\prevdepth}\nointerlineskip%
+ \addvspace{\glueexpr#1-\parskip}%
+ \def\tcb@undo@before{\addvspace{-\glueexpr#1+\tcb@prevdepth}}%
+ \fi%
+ \fi%
+ \lineskip\z@skip\noindent%
+ }},
+ after skip/.style={after={%
+ \tcb@parfillskip@check\par\ifvmode\nointerlineskip%
+ \addvspace{\glueexpr#1-\parskip}\fi%
+ }},
+ beforeafter skip/.style={before skip={#1},after skip={#1}},
+ before nobreak/.store in=\kvtcb@beforebox@nobreak,
+ lowerbox/.is choice,
+ lowerbox/visible/.code={\tcb@lowerignoredfalse\tcb@lowervisibletrue},
+ lowerbox/invisible/.code={\tcb@lowerignoredfalse\tcb@lowervisiblefalse},
+ lowerbox/ignored/.code={\tcb@lowerignoredtrue\tcb@lowervisiblefalse},
+ upperbox/.is choice,
+ upperbox/visible/.code={\tcb@uppervisibletrue},
+ upperbox/invisible/.code={\tcb@uppervisiblefalse},
+ titlebox/.is choice,
+ titlebox/visible/.code={\tcb@titlevisibletrue},
+ titlebox/invisible/.code={\tcb@titlevisiblefalse},
+ visible/.style={upperbox=visible,lowerbox=visible,titlebox=visible},
+ invisible/.style={upperbox=invisible,lowerbox=invisible,titlebox=invisible},
+ natural height/.code={\tcb@fixedheightfalse\tcb@@ch@@operation{\tcb@ch@natural}},
+ height/.code={\tcb@fixedheighttrue\tcb@dim@to\kvtcb@height@fixed{#1}\tcb@@ch@@operation{\tcb@ch@fixed}},
+ text height/.code={\tcb@fixedheighttrue\tcb@dim@to\kvtcb@height@fixed{#1}\tcb@@ch@@operation{\tcb@ch@innerfixed}},
+ inherit height/.code={%
+ \ifdim\dimexpr\tcb@outer@textheight>\z@\relax%
+ \tcbdimto\tcb@inherited@height{#1\dimexpr\tcb@outer@textheight}%
+ \tcbset{height=\tcb@inherited@height}%
+ \else%
+ \tcbset{natural height}%
+ \fi},
+ inherit height/.default=1,
+ add to height/.code={\iftcb@fixedheight\tcbdimto\kvtcb@height@fixed{\kvtcb@height@fixed+(#1)}\fi},
+ add to natural height/.code={\tcb@fixedheightfalse\def\kvtcb@height@natural@plus{#1}\tcb@@ch@@operation{\tcb@ch@natural@plus}},
+ height plus/.dimstore in=\kvtcb@height@fixed@plus,%
+ height from/.style args={#1 to #2}{height={#1},height plus={#2-(#1)}},%
+ height fill/.is choice,%
+ height fill/false/.code={\let\tcb@height@adjust\@empty},%
+ square/.style={height=\kvtcb@width},
+ equal height group/.code={\tcb@fixedheightfalse\edef\tcb@ehgid{#1}\tcb@@ch@@operation{\tcb@ch@equalheight}},
+ minimum for equal height group/.code args={#1:#2}{\bgroup\edef\tcb@ehgid{#1}\tcbdimto\tcb@min@ehg{#2}\tcb@ehgadd{\tcb@min@ehg}\egroup},
+ minimum for current equal height group/.code={\ifcsundef{tcb@ehgid}{}{%
+ \tcbset{minimum for equal height group=\tcb@ehgid:#1}}},
+ use height from group/.code={\ifcsundef{tcb@ehg@height@#1}{}{\tcbset{height=\csuse{tcb@ehg@height@#1}}}},
+ use height from group/.default={\csuse{tcb@ehgid}},
+ space/.code={\def\tcb@height@fraction{#1}%
+ \let\tcb@ch@fixed@both=\tcb@ch@fixed@space%
+ \let\tcb@ch@fixed@upper=\tcb@ch@fixed@upper@standard%
+ },
+ space to upper/.style={space=1},
+ space to lower/.style={space=0},
+ space to both/.style={space=0.5},
+ split/.code={\def\tcb@height@fraction{#1}%
+ \let\tcb@ch@fixed@both=\tcb@ch@fixed@space%
+ \let\tcb@ch@fixed@upper=\tcb@ch@fixed@upper@standard%
+ },
+ space to/.code={%
+ \ifcsdef{tcb@space@\thetcolorboxnumber}{%
+ \letcs{\tcb@space}{tcb@space@\thetcolorboxnumber}%
+ }{}%
+ \let#1\tcb@space%
+ \let\tcb@ch@fixed@both=\tcb@ch@fixed@spacesave%
+ \let\tcb@ch@fixed@upper=\tcb@ch@fixed@spacesave%
+ },
+ %
+ halign/.is choice,
+ halign/flush left/.code={\let\kvtcb@halignupper=\raggedright},
+ halign/flush right/.code={\let\kvtcb@halignupper=\raggedleft},
+ halign/flush center/.code={\let\kvtcb@halignupper=\centering},
+ halign/left/.code={\let\kvtcb@halignupper=\tcb@raggedright@plain},
+ halign/right/.code={\let\kvtcb@halignupper=\tcb@raggedleft@plain},
+ halign/center/.code={\let\kvtcb@halignupper=\tcb@raggedcenter@plain},
+ halign/justify/.code={\let\kvtcb@halignupper=\@empty},
+ halign upper/.style={halign=#1},
+ %
+ halign lower/.is choice,
+ halign lower/flush left/.code={\let\kvtcb@halignlower=\raggedright},
+ halign lower/flush right/.code={\let\kvtcb@halignlower=\raggedleft},
+ halign lower/flush center/.code={\let\kvtcb@halignlower=\centering},
+ halign lower/left/.code={\let\kvtcb@halignlower=\tcb@raggedright@plain},
+ halign lower/right/.code={\let\kvtcb@halignlower=\tcb@raggedleft@plain},
+ halign lower/center/.code={\let\kvtcb@halignlower=\tcb@raggedcenter@plain},
+ halign lower/justify/.code={\let\kvtcb@halignlower=\@empty},
+ %
+ halign title/.is choice,
+ halign title/flush left/.code={\let\kvtcb@haligntitle=\raggedright},
+ halign title/flush right/.code={\let\kvtcb@haligntitle=\raggedleft},
+ halign title/flush center/.code={\let\kvtcb@haligntitle=\centering},
+ halign title/left/.code={\let\kvtcb@haligntitle=\tcb@raggedright@plain},
+ halign title/right/.code={\let\kvtcb@haligntitle=\tcb@raggedleft@plain},
+ halign title/center/.code={\let\kvtcb@haligntitle=\tcb@raggedcenter@plain},
+ halign title/justify/.code={\let\kvtcb@haligntitle=\@empty},
+ %
+ valign scale limit/.store in=\kvtcbv@valignscalelimit,
+ valign scale limit=1.1,
+ valign/.is choice,
+ valign/top/.code={\def\kvtcb@valignupper{top}},
+ valign/center/.code={\def\kvtcb@valignupper{center}},
+ valign/bottom/.code={\def\kvtcb@valignupper{bottom}},
+ valign/scale/.code={\def\kvtcb@valignupper{resize}},
+ valign/scale*/.code={\def\kvtcb@valignupper{resizelimited}},
+ valign upper/.style={valign=#1},
+ valign lower/.is choice,
+ valign lower/top/.code={\def\kvtcb@valignlower{top}},
+ valign lower/center/.code={\def\kvtcb@valignlower{center}},
+ valign lower/bottom/.code={\def\kvtcb@valignlower{bottom}},
+ valign lower/scale/.code={\def\kvtcb@valignlower{resize}},
+ valign lower/scale*/.code={\def\kvtcb@valignlower{resizelimited}},
+ enlarge top initially by/.store in=\kvtcb@bbtop@stand,%
+ enlarge top at break by/.store in=\kvtcb@bbtop@break,%
+ enlarge top by/.style={enlarge top initially by={#1},enlarge top at break by={#1}},%
+ enlarge bottom finally by/.store in=\kvtcb@bbbottom@stand,%
+ enlarge bottom at break by/.store in=\kvtcb@bbbottom@break,%
+ enlarge bottom by/.style={enlarge bottom finally by={#1},enlarge bottom at break by={#1}},%
+ enlarge left by/.store in=\kvtcb@bbleft,
+ enlarge right by/.store in=\kvtcb@bbright,
+ enlarge by/.style={enlarge top by={#1},enlarge bottom by={#1},enlarge left by={#1},enlarge right by={#1}},%
+ grow to left by/.code={%
+ \tcbdimto\kvtcb@width{\kvtcb@width+#1}%
+ \pgfkeysalso{enlarge left by={-\the\dimexpr#1\relax}}},%
+ grow to right by/.code={%
+ \tcbdimto\kvtcb@width{\kvtcb@width+#1}%
+ \pgfkeysalso{enlarge right by={-\the\dimexpr#1\relax}}},%
+ grow sidewards by/.style={grow to left by={#1},grow to right by={#1}},%
+ left skip/.style={grow to left by={-\dimexpr#1\relax}},
+ right skip/.style={grow to right by={-\dimexpr#1\relax}},
+ leftright skip/.style={left skip={#1},right skip={#1}},
+ spread inwards/.style={grow to left by=1in+\hoffset+\oddsidemargin+\@totalleftmargin+(#1),code={\if@twoside\tcbset{toggle enlargement}\fi}},
+ spread inwards/.default=\z@,
+ spread outwards/.style={grow to right by=\paperwidth-\textwidth-1in-\hoffset-\oddsidemargin+(#1),code={\if@twoside\tcbset{toggle enlargement}\fi}},
+ spread outwards/.default=\z@,
+ move upwards/.style={before={\clearpage%
+ \lineskip\z@skip%
+ \hrule\@height\z@%
+ \nobreak%
+ \vskip\glueexpr-1in-\voffset-\topmargin-\headheight-\headsep-\topskip-\parskip-(#1)\relax%
+ \noindent}},
+ move upwards/.default=\z@,
+ move upwards*/.style={before={%
+ \lineskip\z@skip%
+ \hrule\@height\z@%
+ \vskip\z@%
+ \bgroup\@nobreakfalse\addpenalty\z@\egroup%
+ \vskip\glueexpr-1in-\voffset-\topmargin-\headheight-\headsep-\parskip+\pagegoal-\textheight-\pagetotal-(#1)\relax%
+ \noindent}},
+ move upwards*/.default=\z@,
+ fill downwards/.style={height fill,enlarge bottom by={\dimexpr-\paperheight+\textheight+1in+\voffset+\topmargin+\headheight+\headsep-(#1)\relax}},
+ fill downwards/.default=\z@,
+ spread sidewards/.style={spread inwards=#1,spread outwards=#1},
+ spread sidewards/.default=\z@,
+ spread upwards/.style={move upwards=#1,spread inwards=#1,spread outwards=#1},
+ spread upwards/.default=\z@,
+ spread upwards*/.style={move upwards*=#1,spread inwards=#1,spread outwards=#1},
+ spread upwards*/.default=\z@,
+ spread downwards/.style={fill downwards=#1,spread inwards=#1,spread outwards=#1},
+ spread downwards/.default=\z@,
+ spread/.style={move upwards=#1,fill downwards=#1,spread inwards=#1,spread outwards=#1},
+ spread/.default=\z@,
+ toggle enlargement/.is choice,
+ toggle enlargement/none/.code={\let\tcb@setbb@toggle=\tcb@setbb@toggle@none},
+ toggle enlargement/evenpage/.code={\let\tcb@setbb@toggle=\tcb@setbb@toggle@evenpage\tcbset{check odd page}},
+ toggle enlargement/forced/.code={\let\tcb@setbb@toggle=\tcb@setbb@toggle@forced},
+ toggle enlargement/.default=evenpage,
+ toggle left and right/.is choice,
+ toggle left and right/none/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@none},
+ toggle left and right/evenpage/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@evenpage\tcbset{check odd page}},
+ toggle left and right/forced/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@forced},
+ toggle left and right/.default=evenpage,
+ graphical environment/.store in=\kvtcb@graphenv,
+ %
+ frame engine/.is choice,
+ frame engine/standard/.style={frame code=\tcb@drawframe@standard},
+ frame engine/standardjigsaw/.style={frame code=\tcb@drawframe@standardjigsaw},
+ frame code/.code={\def\tcb@frame@code{#1}},%
+ frame code/.default=\tcb@drawframe@standard,%
+ frame empty/.style={frame code=},
+ %
+ interior titled engine/.is choice,
+ interior titled engine/standard/.style={interior titled code=\tcb@drawwithtitle@standard},
+ interior titled code/.code={\def\tcb@interiortitled@code{#1}},%
+ interior titled code/.default=\tcb@drawwithtitle@standard,%
+ interior titled empty/.style={interior titled code=},
+ %
+ interior engine/.is choice,
+ interior engine/standard/.style={interior code=\tcb@drawwithouttitle@standard},
+ interior code/.code={\def\tcb@interior@code{#1}},%
+ interior code/.default=\tcb@drawwithouttitle@standard,%
+ interior empty/.style={interior code=},
+ %
+ segmentation engine/.is choice,
+ segmentation engine/standard/.style={segmentation code=\tcb@drawlower@standard},
+ segmentation code/.code={\def\tcb@segmentation@code{#1}},%
+ segmentation code/.default=\tcb@drawlower@standard,%
+ segmentation empty/.style={segmentation code=},
+ %
+ title engine/.is choice,
+ title engine/standard/.style={@title code=\tcb@drawtitle@standard},
+ @title code/.code={\def\tcb@title@code{#1}},%
+ @title code/.default=\tcb@drawtitle@standard,%
+ title code/.style={title filled,@title code={#1}},%
+ title code/.default=\tcb@drawtitle@standard,%
+ title empty/.style={@title code=},
+ %
+ geometry nodes/.store in=\kvtcb@geonodes,
+ geometry nodes/.default=true,%
+ set@extensions@preframe/.store in=\tcb@extensions@preframe,%
+ set@extensions@postframe/.store in=\tcb@extensions@postframe,%
+ set@extensions@final/.store in=\tcb@extensions@final,%
+ set@outerboundary/.store in=\tcb@outerboundary,%
+ skin first/.store in=\kvtcb@skin@first,
+ skin middle/.store in=\kvtcb@skin@middle,
+ skin last/.store in=\kvtcb@skin@last,
+ skin/.style={code={\edef\kvtcb@skin@current{#1}},skin@#1},
+ skin first is subskin of/.style 2 args={skin@local@first/.style={skin@#1,#2},skin first=local@first},%
+ skin middle is subskin of/.style 2 args={skin@local@middle/.style={skin@#1,#2},skin middle=local@middle},%
+ skin last is subskin of/.style 2 args={skin@local@last/.style={skin@#1,#2},skin last=local@last},%
+ parbox/.store in=\kvtcb@parbox,
+ parbox/.default=true,%
+ hyphenationfix/.is choice,%
+ hyphenationfix/.default=true,%
+ hyphenationfix/true/.code={\def\tcb@hyph@fix{\everypar=\expandafter{\the\everypar\everypar{\hspace{0pt}}\hspace{0pt}}}},%
+ hyphenationfix/false/.code={\let\tcb@hyph@fix=\@empty},%
+ overlay unbroken/.code={\def\tcb@overlay@unbroken{#1}},%
+ overlay first/.code={\def\tcb@overlay@first{#1}},%
+ overlay middle/.code={\def\tcb@overlay@middle{#1}},%
+ overlay last/.code={\def\tcb@overlay@last{#1}},%
+ overlay/.code={\def\tcb@overlay@temp{#1}%
+ \let\tcb@overlay@unbroken=\tcb@overlay@temp%
+ \let\tcb@overlay@first=\tcb@overlay@temp%
+ \let\tcb@overlay@middle=\tcb@overlay@temp%
+ \let\tcb@overlay@last=\tcb@overlay@temp},%
+ overlay broken/.code={\def\tcb@overlay@temp{#1}%
+ \let\tcb@overlay@first=\tcb@overlay@temp%
+ \let\tcb@overlay@middle=\tcb@overlay@temp%
+ \let\tcb@overlay@last=\tcb@overlay@temp},%
+ overlay unbroken and first/.code={\def\tcb@overlay@temp{#1}%
+ \let\tcb@overlay@unbroken=\tcb@overlay@temp%
+ \let\tcb@overlay@first=\tcb@overlay@temp},%
+ overlay unbroken and last/.code={\def\tcb@overlay@temp{#1}%
+ \let\tcb@overlay@unbroken=\tcb@overlay@temp%
+ \let\tcb@overlay@last=\tcb@overlay@temp},%
+ overlay middle and last/.code={\def\tcb@overlay@temp{#1}%
+ \let\tcb@overlay@middle=\tcb@overlay@temp%
+ \let\tcb@overlay@last=\tcb@overlay@temp},%
+ overlay first and middle/.code={\def\tcb@overlay@temp{#1}%
+ \let\tcb@overlay@first=\tcb@overlay@temp%
+ \let\tcb@overlay@middle=\tcb@overlay@temp},%
+ no overlay/.style={overlay=},%
+ standard/.style={skin=standard},%
+ standard jigsaw/.style={skin=standard jigsaw},%
+ before title/.store in=\kvtcb@before@title,%
+ after title/.store in=\kvtcb@after@title,%
+ before upper/.code={\def\kvtcb@before@upper{#1}\let\tcb@insert@before@upper\tcb@insert@before@upper@ignore},%
+ before upper*/.code={\def\kvtcb@before@upper{#1}\let\tcb@insert@before@upper\tcb@insert@before@upper@noignore},%
+ after upper/.code={\def\kvtcb@after@upper{#1}\let\tcb@insert@after@upper\tcb@insert@after@upper@unskip},%
+ after upper*/.code={\def\kvtcb@after@upper{#1}\let\tcb@insert@after@upper\tcb@insert@after@upper@nounskip},%
+ before lower/.code={\def\kvtcb@before@lower{#1}\let\tcb@insert@before@lower\tcb@insert@before@lower@ignore},%
+ before lower*/.code={\def\kvtcb@before@lower{#1}\let\tcb@insert@before@lower\tcb@insert@before@lower@noignore},%
+ after lower/.code={\def\kvtcb@after@lower{#1}\let\tcb@insert@after@lower\tcb@insert@after@lower@unskip},%
+ after lower*/.code={\def\kvtcb@after@lower{#1}\let\tcb@insert@after@lower\tcb@insert@after@lower@nounskip},%
+ center title/.style={halign title=flush center},%
+ center upper/.style={halign upper=flush center},%
+ center lower/.style={halign lower=flush center},%
+ flushleft title/.style={halign title=flush left},%
+ flushleft upper/.style={halign upper=flush left},%
+ flushleft lower/.style={halign lower=flush left},%
+ flushright title/.style={halign title=flush right},%
+ flushright upper/.style={halign upper=flush right},%
+ flushright lower/.style={halign lower=flush right},%
+ tabularx*/.style 2 args={%
+ boxsep=\z@,top=\z@,bottom=\z@,leftupper=\z@,rightupper=\z@,
+ toptitle=1mm,bottomtitle=1mm,boxrule=0.5mm,
+ before upper*={\arrayrulecolor{tcbcolframe}\def\arraystretch{1.1}#1%
+ \tcb@hack@currenvir\tabularx{\linewidth}{#2}},
+ after upper*=\endtabularx\arrayrulecolor{black}},
+ tabularx/.style={tabularx*={}{#1}},
+ tikz upper/.style={before upper*={\centering\tcb@shield@externalize\begin{tikzpicture}[{#1}]},after upper*=\end{tikzpicture}},%
+ tikz lower/.style={before lower*={\centering\tcb@shield@externalize\begin{tikzpicture}[{#1}]},after lower*=\end{tikzpicture}},%
+ tikznode upper/.style={before upper={\centering\tcb@shield@externalize\begin{tikzpicture}\node[{align=center,inner sep=\z@,outer sep=\z@,#1}]\bgroup},after upper={\egroup;\end{tikzpicture}}},%
+ tikznode lower/.style={before lower={\centering\tcb@shield@externalize\begin{tikzpicture}\node[{align=center,inner sep=\z@,outer sep=\z@,#1}]\bgroup},after lower={\egroup;\end{tikzpicture}}},%
+ tikznode/.style={tikznode upper={#1},tikznode lower={#1}},%
+ varwidth upper/.style={before upper={\tcbdimto\tcb@w@upper{#1-(\kvtcb@left@rule+\kvtcb@right@rule+(\kvtcb@boxsep)*2+\kvtcb@leftupper+\kvtcb@rightupper)}%
+ \begin{varwidth}{\tcb@w@upper}},after upper={\end{varwidth}}},%
+ varwidth upper/.default=\kvtcb@width,
+ text fill/.style={before upper={%
+ \ifdim\dimexpr\tcbtextheight>\z@\relax%
+ \edef\tcb@temp{\noexpand\minipage[c][\tcbtextheight]}%
+ \else%
+ \let\tcb@temp\minipage%
+ \fi%
+ \tcb@temp{\linewidth}\kvtcb@halignupper},
+ after upper=\endminipage},
+ oversize/.style={%
+ width=\the\dimexpr\dimexpr\linewidth+#1+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax,%
+ enlarge left by=-\the\dimexpr\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep+(#1)/2\relax,%
+ enlarge right by=-\the\dimexpr\kvtcb@boxsep+\kvtcb@rightupper+\kvtcb@right@rule+(#1)/2\relax},%
+ oversize/.default=\z@,%
+ flush right/.style={enlarge left by=\linewidth-(\kvtcb@width)},
+ flush left/.style={enlarge right by=\linewidth-(\kvtcb@width)},
+ center/.style={enlarge left by=(\linewidth-(\kvtcb@width))/2,enlarge right by=\kvtcb@bbleft},
+ baseline/.store in=\kvtcb@baseline,%
+ tcbox raise/.style={baseline=-\the\dimexpr#1\relax},%
+ tcbox raise base/.style={baseline=\tcb@val@raisebase},%
+ box align/.is choice,%
+ box align/bottom/.style={baseline=\z@},%
+ box align/top/.style={baseline=\tcb@height},%
+ box align/center/.style={baseline=\tcb@height/2},%
+ box align/base/.style={baseline=\tcb@val@raisebase},%
+ shrink tight/.style={boxsep=0mm,top=-\the\dimexpr\kvtcb@top@rule@stand\relax,bottom=-\the\dimexpr\kvtcb@bottom@rule@stand\relax,%
+ left=-\the\dimexpr\kvtcb@left@rule\relax,right=-\the\dimexpr\kvtcb@right@rule\relax},%
+ extrude left by/.code={\tcbdimto\kvtcb@leftupper{\kvtcb@leftupper+#1}\tcbdimto\kvtcb@bbleft{\kvtcb@bbleft-(#1)}\tcbdimto\kvtcb@width{\kvtcb@width+#1}},%
+ extrude right by/.code={\tcbdimto\kvtcb@rightupper{\kvtcb@rightupper+#1}\tcbdimto\kvtcb@bbright{\kvtcb@bbright-(#1)}\tcbdimto\kvtcb@width{\kvtcb@width+#1}},%
+ extrude top by/.code={\tcbdimto\kvtcb@top{\kvtcb@top+#1}\tcbdimto\kvtcb@bbtop@stand{\kvtcb@bbtop@stand-(#1)}},%
+ extrude bottom by/.code={\tcbdimto\kvtcb@bottom{\kvtcb@bottom+#1}\tcbdimto\kvtcb@bbbottom@stand{\kvtcb@bbbottom@stand-(#1)}},%
+ extrude by/.style={extrude left by=#1,extrude right by=#1,extrude top by=#1,extrude bottom by=#1},%
+ sidebyside/.is if=tcb@sidebyside,%
+ sidebyside align/.is choice,%
+ sidebyside align/top/.code={\def\kvtcb@sbs@align{top}\def\tcb@box@align##1{}},%
+ sidebyside align/center/.code={\def\kvtcb@sbs@align{center}\def\tcb@box@align##1{}},%
+ sidebyside align/bottom/.code={\def\kvtcb@sbs@align{bottom}\def\tcb@box@align##1{}},%
+ sidebyside align/top seam/.code={\def\kvtcb@sbs@align{top}\let\tcb@box@align\tcb@box@align@top},%
+ sidebyside align/center seam/.code={\def\kvtcb@sbs@align{center}\let\tcb@box@align\tcb@box@align@center},%
+ sidebyside align/bottom seam/.code={\def\kvtcb@sbs@align{bottom}\let\tcb@box@align\tcb@box@align@bottom},%
+ sidebyside gap/.dimstore in=\kvtcb@sbs@gap,%
+ lefthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftwidth},
+ righthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightwidth},
+ lefthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftratio},
+ righthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightratio},
+ breakable@false/.code={%
+ \let\tcb@savebox=\tcb@lrbox%
+ \let\endtcb@savebox=\endtcb@lrbox%
+ \let\tcb@defToTotalHeight=\tcb@defToTotalHeightStandard%
+ \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone},
+ code/.code={#1},
+ capture/.store in=\kvtcb@capture,%
+ hbox/.style={capture=hbox},%
+ minipage/.style={capture=minipage},%
+ void/.style={capture=v@@d,capture/.code=,options@for/.code=,code={\def\tcbinputlisting@core{}}},
+ nirvana/.code={\let\tcb@draw@color@box\@empty},
+ check odd page/.is if=tcb@checkpage,
+ if odd page/.code 2 args={%
+ \tcbset{check odd page}%
+ \tcbifoddpage{\tcbset{#1}}{\tcbset{#2}}%
+ },
+ if odd page or oneside/.code 2 args={%
+ \tcbset{check odd page}%
+ \tcbifoddpageoroneside{\tcbset{#1}}{\tcbset{#2}}%
+ },
+ phantom/.code={\appto\kvtcb@phantom{#1}},
+ step and label/.style 2 args={phantom={\refstepcounter{#1}\tcb@set@label{#2}}},%
+ step/.style={phantom={\refstepcounter{#1}}},%
+ label/.style={phantom={\tcb@set@label{#1}}},%
+ phantomlabel/.style={phantom={\ifdefined\phantomsection\phantomsection\fi\tcb@set@label{#1}}},%
+ hypertarget/.style={phantom={\ifdefined\hypertarget\Hy@raisedlink{\hypertarget{#1}{}}\fi}},
+ bookmark*/.style 2 args={phantom={\ifdefined\bookmark%
+ \Hy@raisedlink{\hypertarget{tcb@\thetcolorboxnumber}{}}%
+ \bookmark[dest=tcb@\thetcolorboxnumber,rellevel=1,keeplevel,#1]{#2}%
+ \fi}},
+ bookmark/.style={bookmark*={}{#1}},
+ index/.style={phantom={\index{#1}}},%
+ index*/.style 2 args={phantom={\index[#1]{#2}}},%
+ nameref/.code={\tcb@gettitle{#1}},%
+ label type/.store in=\kvtcb@label@type,%
+ no label type/.style={label type=},%
+ add to list/.style 2 args={phantom={\tcb@addcontentsline{#1}{#2}}},
+ nophantom/.code={\def\kvtcb@phantom{}},%
+ shield externalize/.is choice,
+ shield externalize/true/.code={\let\tcb@shield@externalize=\tcb@shield@@externalize},
+ shield externalize/false/.code={\let\tcb@shield@externalize=\relax},
+ shield externalize/.default=true,
+ external/.code={\tikzsetnextfilename{#1}},
+ remake/.code={\tikzset{external/remake next={#1}}},
+ remake/.default=true,
+ lower separated/.is if=tcb@lowerseparated,
+ options@for/.code={\letcs\tcb@new@colop{tcb@opt@#1}\pgfkeysalsofrom\tcb@new@colop},
+ list entry/.store in=\kvtcb@listentry,
+ list text/.style={list entry={\protect\numberline{\thetcbcounter}{\ignorespaces #1}}},
+ title filled/.is if=tcb@titlefilled,%
+ @colbacktitle/.colorlet=tcbcolbacktitle,
+ colbacktitle/.style={title filled,@colbacktitle={#1}},
+ opacityupper/.store in=\kvtcb@opacityupper,
+ opacitylower/.store in=\kvtcb@opacitylower,
+ opacitytitle/.store in=\kvtcb@opacitytitle,
+ opacityframe/.store in=\kvtcb@opacityframe,
+ opacityback/.store in=\kvtcb@opacityback,
+ @opacitybacktitle/.store in=\kvtcb@opacitybacktitle,
+ opacitybacktitle/.style={title filled,@opacitybacktitle={#1}},
+ opacityfill/.style={opacityframe={#1},opacityback={#1},@opacitybacktitle={#1}},
+ opacitytext/.style={opacityupper={#1},opacitylower={#1}},
+ spartan@fit/.code={},%
+ %
+ size/.is choice,
+ size/normal/.style={boxrule=0.5mm,boxsep=1mm,left=4mm,right=4mm,top=2mm,bottom=2mm,toptitle=0pt,bottomtitle=0pt,
+ middle=2mm,arc=1mm,auto outer arc},
+ size/title/.style={boxrule=0.4mm,boxsep=1mm,left=2mm,right=2mm,top=0.25mm,bottom=0.25mm,toptitle=0pt,bottomtitle=0pt,
+ middle=0.75mm,arc=0.75mm,auto outer arc},
+ size/small/.style={boxrule=0.3mm,boxsep=1mm,left=1mm,right=1mm,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt,
+ middle=0.5mm,arc=0.5mm,auto outer arc},
+ size/fbox/.style={boxrule=0.4pt,boxsep=3pt,left=0pt,right=0pt,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt,
+ middle=1pt,arc=1pt,auto outer arc},
+ size/tight/.style={boxrule=0.4pt,boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt,
+ middle=0.2pt,arc=0pt,outer arc=0pt},
+ size/minimal/.style={boxrule=0pt,boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt,
+ middle=0pt,arc=0pt,outer arc=0pt},
+ on line/.style={tcbox raise base,nobeforeafter},
+ shape@of@skin/.store in=\tcb@shapeofskin,
+ ignore nobreak/.is if=tcb@ignorenobreak,%
+ %
+ tcbox width/.is choice,
+ tcbox width/auto/.code={\def\tcb@embed@tcbox{}},
+ tcbox width/auto limited/.code={\tcb@set@embed@tcbox{%
+ \setbox\z@=\color@hbox##1\color@endbox\ifdim\wd\z@<\tcb@w@upper\relax\box\z@\else%
+ \begin{minipage}{\tcb@w@upper}##1\end{minipage}\fi}},
+ tcbox width/forced center/.code={\tcb@set@embed@tcbox{\makebox[\tcb@w@upper]{##1}}},
+ tcbox width/forced left/.code={\tcb@set@embed@tcbox{\makebox[\tcb@w@upper][l]{##1}}},
+ tcbox width/forced right/.code={\tcb@set@embed@tcbox{\makebox[\tcb@w@upper][r]{##1}}},
+ tcbox width/minimum center/.code={\tcb@set@embed@tcbox{%
+ \setbox\z@=\color@hbox##1\color@endbox\ifdim\wd\z@<\tcb@w@upper\relax\makebox[\tcb@w@upper]{\box\z@}\else\box\z@\fi}},
+ tcbox width/minimum left/.code={\tcb@set@embed@tcbox{%
+ \setbox\z@=\color@hbox##1\color@endbox\ifdim\wd\z@<\tcb@w@upper\relax\makebox[\tcb@w@upper][l]{\box\z@}\else\box\z@\fi}},
+ tcbox width/minimum right/.code={\tcb@set@embed@tcbox{%
+ \setbox\z@=\color@hbox##1\color@endbox\ifdim\wd\z@<\tcb@w@upper\relax\makebox[\tcb@w@upper][r]{\box\z@}\else\box\z@\fi}},
+ verbatim ignore percent/.is choice,
+ verbatim ignore percent/true/.code={\def\tcb@verbatim@change@percent{\catcode`\^^e=9}},
+ verbatim ignore percent/false/.code={\let\tcb@verbatim@change@percent\@empty},
+ verbatim ignore percent/.default=true,
+}
+
+\def\kvtcb@beforebox{}
+\def\kvtcb@afterbox{}
+
+\tcbset{%
+ autoparskip,minipage,savedelimiter=tcolorbox,%
+ set@extensions@preframe=,set@extensions@postframe=,set@extensions@final=,%
+}%
+
+\def\tcb@set@label#1{%
+ \ifx\kvtcb@label@type\@empty%
+ \label{#1}%
+ \else%
+ \label[\kvtcb@label@type]{#1}%
+ \fi%
+}
+
+\let\tcb@parboxrestore=\@parboxrestore
+
+\def\tcb@parbox@false@settings{%
+ \noindent%
+ \linewidth\hsize%
+ \@totalleftmargin\z@%
+ \leftskip\z@skip%
+ \rightskip\z@skip%
+ \@rightskip\z@skip%
+}
+
+\let\tcb@parbox@use@true\relax
+\def\tcb@parbox@use@false{%
+ \def\@parboxrestore{%
+ \tcb@parbox@false@settings%
+ \let\@parboxrestore=\tcb@parboxrestore%
+ }%
+}
+
+\let\tcb@afteroptions@hook\@empty
+
+\def\tcb@minipage@top{\minipage[t]}
+\let\tcb@minipage@center=\minipage
+\def\tcb@minipage@bottom{\minipage[b]}
+\let\tcb@minipage=\tcb@minipage@bottom
+
+% lrbox with integrated minipage
+\def\tcb@lrbox#1#2{%
+ \edef\reserved@a{%
+ \endgroup
+ \setbox#1\hbox{%
+ \begingroup\aftergroup}%
+ \def\noexpand\@currenvir{\@currenvir}%
+ \def\noexpand\@currenvline{\on@line}}%
+ \reserved@a
+ \@endpefalse
+ \let\tcbbreak\par%
+ \csname tcb@parbox@use@\kvtcb@parbox\endcsname%
+ \tcb@minipage#2\tcb@hyph@fix\ignorespaces}
+\let\endtcb@lrbox=\endminipage
+
+\let\tcb@savebox=\tcb@lrbox
+\let\endtcb@savebox=\endtcb@lrbox
+
+\def\tcb@saveupperbox{%
+\begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper}
+
+\def\tcb@savelowerbox{%
+\begin{tcb@savebox}{\tcb@lowerbox}{\tcb@w@lower}\kvtcb@fontlower\kvtcb@halignlower\tcb@insert@before@lower}
+
+
+% counter for float
+\AtBeginDocument{%
+\@ifundefined{c@float@type}%
+ {\edef\ftype@tcbfloat{\ifx\c@figure\@undefined 1\else 4\fi}}%
+ {\edef\ftype@tcbfloat{\the\c@float@type}%
+ \addtocounter{float@type}{\value{float@type}}}%
+\def\c@tcbfloat{\c@float@type}% tricking the caption package
+\ifdim\parskip>\z@%
+ \tcbset{autoparskip/.style=parskip}%
+\else%
+ \tcbset{autoparskip/.style=noparskip}%
+\fi%
+\tcb@use@autoparskip%
+}
+
+\long\def\tcb@colorbox{%
+ \@ifnextchar[{\tcb@@icolorbox}{\tcb@@icolorbox[]}}
+
+
+\def\tcb@set@@phantom{%
+ \iftcb@checkpage\tcb@phantom@savepage\fi%
+ \ifx\kvtcb@phantom\@empty\tcb@hasPhantomfalse\else%
+ \tcb@hasPhantomtrue%
+ \sbox\tcb@phantombox{\kvtcb@phantom}%
+ \let\kvtcb@phantom\@empty%
+ \fi%
+}
+
+\def\tcb@set@@title{%
+ \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\tcb@specialtitle@hook\else%
+ \tcb@hasTitletrue%
+ \tcbdimto\tcb@w@title{\kvtcb@width-(\kvtcb@left@rule+\kvtcb@right@rule+(\kvtcb@boxsep)*2+\kvtcb@lefttitle+\kvtcb@righttitle)}%
+ \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}%
+ \fi%
+}
+
+\def\tcb@set@@dimensions{%
+ % sanitize
+ \tcbdimto\kvtcb@left@rule{\kvtcb@left@rule}%
+ \tcbdimto\kvtcb@right@rule{\kvtcb@right@rule}%
+ \tcbdimto\kvtcb@title@rule{\kvtcb@title@rule}%
+ \tcbdimto\kvtcb@top@rule@stand{\kvtcb@top@rule@stand}%
+ \tcbdimto\kvtcb@top@rule@break{\kvtcb@top@rule@break}%
+ \tcbdimto\kvtcb@bottom@rule@stand{\kvtcb@bottom@rule@stand}%
+ \tcbdimto\kvtcb@bottom@rule@break{\kvtcb@bottom@rule@break}%
+ \tcbdimto\kvtcb@boxsep{\kvtcb@boxsep}%
+ \tcbdimto\kvtcb@lefttitle{\kvtcb@lefttitle}%
+ \tcbdimto\kvtcb@leftupper{\kvtcb@leftupper}%
+ \tcbdimto\kvtcb@leftlower{\kvtcb@leftlower}%
+ \tcbdimto\kvtcb@righttitle{\kvtcb@righttitle}%
+ \tcbdimto\kvtcb@rightupper{\kvtcb@rightupper}%
+ \tcbdimto\kvtcb@rightlower{\kvtcb@rightlower}%
+ \tcbdimto\kvtcb@top{\kvtcb@top}%
+ \tcbdimto\kvtcb@toptitle{\kvtcb@toptitle}%
+ \tcbdimto\kvtcb@bottom{\kvtcb@bottom}%
+ \tcbdimto\kvtcb@bottomtitle{\kvtcb@bottomtitle}%
+ \tcbdimto\kvtcb@middle{\kvtcb@middle}%
+ \tcbdimto\kvtcb@bbtop@stand{\kvtcb@bbtop@stand}%
+ \tcbdimto\kvtcb@bbtop@break{\kvtcb@bbtop@break}%
+ \tcbdimto\kvtcb@bbbottom@stand{\kvtcb@bbbottom@stand}%
+ \tcbdimto\kvtcb@bbbottom@break{\kvtcb@bbbottom@break}%
+ \tcbdimto\kvtcb@bbleft{\kvtcb@bbleft}%
+ \tcbdimto\kvtcb@bbright{\kvtcb@bbright}%
+ % computation of text width
+ \tcbdimto\tcb@width{\kvtcb@width}%
+ \tcbdimto\tcb@innerwidth{\tcb@width-\kvtcb@left@rule-\kvtcb@right@rule}%
+ \tcbdimto\tcb@w@upper{\tcb@innerwidth-\kvtcb@boxsep*2-\kvtcb@leftupper-\kvtcb@rightupper}%
+ \let\tcbtextwidth=\tcb@w@upper%
+ \tcbdimto\kvtcb@arc{\kvtcb@arc}%
+ % computation of text height
+ \iftcb@fixedheight%
+ \tcbdimto\tcbtextheight{\kvtcb@top@rule@stand+\kvtcb@bottom@rule@stand+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom}%
+ \iftcb@hasTitle%
+ \tcbdimto\tcbtextheight{\tcbtextheight+\ht\tcb@titlebox+\dp\tcb@titlebox+\kvtcb@title@rule+\kvtcb@boxsep*2+\kvtcb@toptitle+\kvtcb@bottomtitle}%
+ \fi%
+ \tcbdimto\tcbtextheight{\kvtcb@height@fixed-\tcbtextheight}%
+ \fi%
+}
+
+\def\tcb@set@@sidebyside{%
+ \iftcb@sidebyside%
+ \tcbset{breakable@false}%
+ \def\tcb@minipage{\csname tcb@minipage@\kvtcb@sbs@align\endcsname}%
+ \tcbdimto\tcb@w@upper@real{\tcb@w@upper}%
+ \tcbdimto\kvtcb@sbs@gap{\kvtcb@sbs@gap}%
+ \tcbdimto\tcb@w@sbs{\tcb@w@upper@real-\kvtcb@sbs@gap}%
+ \tcb@sbs@quota%
+ \fi%
+}
+
+\def\tcb@set@color#1{%
+ \edef\current@color{\@nameuse{\string\color@#1}}%
+ \colorlet{.}{#1}%
+}
+
+\def\tcb@reset@color{%
+ \colorlet{.}{tcbcol@origin}%
+ \edef\current@color{\@nameuse{\string\color@tcbcol@origin}}%
+}
+
+\def\tcb@set@@upper@and@lower{%
+ \colorlet{tcbcol@origin}{.}%
+ \let\tcb@insert@after@part=\tcb@insert@after@upper%
+ % switch for lower box
+ \def\tcblower{%
+ \tcb@insert@after@part%
+ \end{tcb@savebox}%
+ \tcb@set@color{tcbcollower}%
+ \unless\iftcb@sidebyside%
+ \tcbdimto\tcb@w@lower{\tcb@innerwidth-\kvtcb@boxsep*2-\kvtcb@leftlower-\kvtcb@rightlower}%
+ \fi%
+ \tcb@hasLowertrue%
+ \let\tcb@insert@after@part=\tcb@insert@after@lower%
+ \ifx\kvtcb@savelowerto\@empty%
+ \let\tcb@startbox\tcb@savelowerbox%
+ \let\endtcolorbox\tcb@endboxanddraw%
+ \else%
+ \let\tcb@startbox\tcb@lowerverbatim%
+ \expandafter\let\csname end\kvtcb@savedelimiter\expandafter\endcsname\csname tcb@endlowerverbatimanddraw\endcsname%
+ \fi%
+ \tcb@startbox}%
+ % start of upper box
+ \tcb@set@color{tcbcolupper}%
+ \ifx\kvtcb@saveupperto\@empty%
+ \let\tcb@startbox\tcb@saveupperbox%
+ \let\endtcolorbox\tcb@endboxanddraw%
+ \else%
+ \let\tcb@startbox\tcb@upperverbatim%
+ \expandafter\let\csname end\kvtcb@savedelimiter\expandafter\endcsname\csname tcb@endupperverbatimanddraw\endcsname%
+ \ifx\kvtcb@savelowerto\@empty%
+ \else%
+ \tcb@warning{'saveto' and 'savelowerto' cannot be combined. I deactivate 'savelowerto'}%
+ \tcbset{savelowerto=}%
+ \fi%
+ \fi%
+ \tcb@startbox%
+}
+
+
+\def\tcb@@capture@minipage{%
+ \let\tcb@val@raisebase=\tcb@zpt%
+ \tcb@set@@phantom%
+ \tcb@set@@title%
+ \tcb@set@@dimensions%
+ \tcb@set@@sidebyside%
+ \tcb@set@@upper@and@lower%
+}
+
+\def\tcb@@capture@hbox{%
+ \let\endtcolorbox=\relax%
+ \Collect@Body\tcbox@inner@hbox@collected%
+}
+
+\def\tcb@@end@v@@d{%
+ \endcomment%
+ \tcb@layer@dec%
+}
+
+\def\tcb@@capture@v@@d{%
+ \let\endtcolorbox\tcb@@end@v@@d%
+ \comment%
+}
+
+\long\def\tcbox@inner@hbox@collected#1{%
+ \tcbox@inner@hbox{#1}%
+ \tcb@finalize@environment%
+}
+
+\def\tcb@count@boxes{%
+ \global\advance\tcolorbox@number by 1\relax%
+ \edef\thetcolorboxnumber{\number\tcolorbox@number}%
+ \expandafter\ifx\csname tcolorboxpage@\thetcolorboxnumber\endcsname\relax%
+ \edef\thetcolorboxpage{\number\c@page}%
+ \else%
+ \expandafter\let\expandafter\thetcolorboxpage\csname tcolorboxpage@\thetcolorboxnumber\endcsname%
+ \fi%
+}
+
+\def\tcolorbox@label{\@newl@bel{tcolorboxpage}}%
+
+%\write\@auxout{\string\providecommand\string\tcolorbox@label[2]{}}%
+
+\def\tcolorbox@savepage#1{%
+ \@bsphack%
+ \write\@auxout{\string\tcolorbox@label{#1}{\number\c@page}}%
+ \@esphack%
+}%
+
+\def\tcb@phantom@savepage{\preto\kvtcb@phantom{\expandafter\tcolorbox@savepage\expandafter{\thetcolorboxnumber}}}
+
+\def\tcbifoddpage{%
+ \ifodd\thetcolorboxpage\relax%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+
+\def\tcbifoddpageoroneside{%
+ \if@twoside%
+ \ifodd\thetcolorboxpage\relax%
+ \let\reserved@a\@firstoftwo%
+ \else%
+ \let\reserved@a\@secondoftwo%
+ \fi%
+ \else%
+ \let\reserved@a\@firstoftwo%
+ \fi%
+ \expandafter\reserved@a%
+}
+
+\def\tcb@managed@layers@max{0}
+\def\tcbsetmanagedlayers#1{%
+ \setcounter{tcblayer}{\tcb@managed@layers@max}%
+ \ifnum\c@tcblayer<#1\relax%
+ \loop
+ \stepcounter{tcblayer}%
+ \newbox\tcb@temp%
+ \cslet{tcb@footnote@\romannumeral\c@tcblayer}{\tcb@temp}%
+ \tcbset{every box on layer \number\c@tcblayer/.style={reset,every box}}
+ \ifnum\c@tcblayer<#1\repeat%
+ \else%
+ \fi%
+ \xdef\tcb@managed@layers@max{#1}%
+ \setcounter{tcblayer}{0}%
+}
+\@onlypreamble\tcbsetmanagedlayers
+\tcbsetmanagedlayers{4}%
+
+\tcbset{%
+ every box/.style={},
+ every box on layer 1/.style={every box},
+ every box on higher layers/.style={reset,every box},
+}
+
+\def\tcb@layer@inc{%
+ \tcb@count@boxes%
+ \stepcounter{tcblayer}%
+ \ifnum\c@tcblayer>1%
+ \tcbset{breakable@true/.code=}%
+ \else%
+ \ifinner\ifhmode\tcbset{breakable@true/.code=}\fi\fi%
+ \fi%
+ \ifnum\c@tcblayer>\tcb@managed@layers@max%
+ \tcbset{every box on higher layers}%
+ \else%
+ \expandafter\setbox\csname tcb@footnote@\romannumeral\c@tcblayer\endcsname\box\@mpfootins%
+ \csedef{tcb@footnote@cnt@\romannumeral\c@tcblayer}{\the\c@mpfootnote}%
+ \tcbset{every box on layer \number\c@tcblayer}%
+ \fi%
+}
+
+\def\tcb@layer@pushup{%
+ \tcb@count@boxes%
+ \global\advance\tcolorbox@number by -1\relax%
+ \stepcounter{tcblayer}%
+ \ifnum\c@tcblayer>1%
+ \tcbset{breakable@true/.code=}%
+ \else%
+ \ifinner\ifhmode\tcbset{breakable@true/.code=}\fi\fi%
+ \fi%
+ \ifnum\c@tcblayer>\tcb@managed@layers@max%
+ \tcbset{every box on higher layers}%
+ \tcbset{every box on higher layers/.code=}%
+ \else%
+ \tcbset{every box on layer \number\c@tcblayer}%
+ \tcbset{every box on layer \number\c@tcblayer/.code=}%
+ \fi%
+ \addtocounter{tcblayer}{-1}%
+}
+
+\def\tcb@layer@dec{%
+ \ifnum\c@tcblayer>\tcb@managed@layers@max%
+ \else%
+ \expandafter\global\setbox\@mpfootins\box\csname tcb@footnote@\romannumeral\c@tcblayer\endcsname%
+ \setcounter{mpfootnote}{\csname tcb@footnote@cnt@\romannumeral\c@tcblayer\endcsname}%
+ \fi%
+ \addtocounter{tcblayer}{-1}%
+}
+
+\let\tcbtextheight\tcb@zpt%
+
+\long\def\tcb@apply@box@options#1{%
+ \let\tcb@space\tcb@zpt%
+ \let\tcb@outer@textheight\tcbtextheight%
+ \let\tcbtextheight\tcb@zpt%
+ \let\tcbtextwidth\tcb@zpt%
+ \tcbset{#1}\tcb@lateoptions@hook\tcb@afteroptions@hook%
+ \if@nobreak%
+ \let\iftcb@nobreak\@firstoftwo%
+ \else%
+ \let\iftcb@nobreak\@secondoftwo%
+ \fi%
+}
+
+\long\def\tcb@@icolorbox[#1]{%
+ \tcb@layer@inc%
+ \tcb@apply@box@options{capture=minipage,#1}\tcb@height@adjust%
+ \tcb@hasLowerfalse%
+ \csname tcb@@capture@\kvtcb@capture\endcsname%
+}
+
+\let\tcolorbox\tcb@colorbox
+
+\def\tcb@endboxanddraw{%
+ \tcb@insert@after@part%
+ \end{tcb@savebox}%
+ \tcb@reset@color%
+ \tcb@draw@color@box%
+ \tcb@finalize@environment%
+}
+
+\def\tcb@finalize@environment{%
+ %\color{.}% hack for some special cases
+ \tcb@layer@dec%
+}
+
+\let\endtcolorbox=\tcb@endboxanddraw
+
+% height computations
+\def\tcb@@ch@@operation#1{%
+ \let\tcb@ch=#1%
+ \let\tcb@height@adjust\@empty%
+}
+
+
+\def\tcb@ch@natural{%
+ \let\tcb@height\tcb@natheight%
+ \let\tcbheightspace\tcb@zpt%
+ \tcbdimto\tcb@height@upper{\ht\tcb@upperbox+\dp\tcb@upperbox}%
+ \iftcb@lowerspace%
+ \tcbdimto\tcb@height@lower{\ht\tcb@lowerbox+\dp\tcb@lowerbox}%
+ \fi%
+}
+
+\def\tcb@ch@natural@plus{%
+ \tcbdimto\tcbheightspace{\kvtcb@height@natural@plus}%
+ \tcbdimto\tcb@height{\tcb@natheight+\tcbheightspace}%
+ \iftcb@lowerspace\tcb@ch@fixed@both\else\tcb@ch@fixed@upper\fi%
+}
+
+
+\def\tcb@ch@fixed@upper@standard{%
+ \tcbdimto\tcb@height@upper{\ht\tcb@upperbox+\dp\tcb@upperbox+\tcbheightspace}%
+}
+
+\def\tcb@ch@fixed@space{%
+ \tcbdimto\tcb@height@spaceupper{\tcb@height@fraction\dimexpr\tcbheightspace\relax}%
+ \tcbdimto\tcb@height@upper{\ht\tcb@upperbox+\dp\tcb@upperbox+\tcb@height@spaceupper}%
+ \tcbdimto\tcb@height@lower{\ht\tcb@lowerbox+\dp\tcb@lowerbox+\tcbheightspace-\tcb@height@spaceupper}%
+}
+
+\def\tcb@savespace#1#2{%
+ \immediate\write\@auxout{\string\csgdef{tcb@space@#1}{#2}}%
+}
+
+\def\tcb@ch@fixed@spacesave{%
+ \tcbdimto\tcb@space{\tcb@space+\tcbheightspace}%
+ \ifdim\dimexpr\tcb@space<0pt\relax
+ \let\tcb@space\tcb@zpt%
+ \else%
+ \ifdim\dimexpr\tcb@space>\tcb@height\relax
+ \let\tcb@space\tcb@height%
+ \fi%
+ \fi%
+ \begingroup\edef\x{\endgroup\noexpand\tcb@savespace{\thetcolorboxnumber}{\tcb@space}}\x%
+ \tcbdimto\tcb@height@upper{\ht\tcb@upperbox+\dp\tcb@upperbox+\tcbheightspace}%
+ \let\tcbheightspace\tcb@zpt%
+ \iftcb@lowerspace%
+ \tcbdimto\tcb@height@lower{\ht\tcb@lowerbox+\dp\tcb@lowerbox}%
+ \fi%
+}
+
+\def\tcb@ch@fixed@split{%
+ \tcbdimto\tcb@height@space{\tcbheightspace+\ht\tcb@upperbox+\dp\tcb@upperbox+\ht\tcb@lowerbox+\dp\tcb@lowerbox}%
+ \tcbdimto\tcb@height@upper{\tcb@height@fraction\dimexpr\tcb@height@space\relax}%
+ \tcbdimto\tcb@height@lower{\tcb@height@space-\tcb@height@upper}%
+}
+
+\def\tcb@ch@fixed{%
+ \ifdim\tcb@natheight<\dimexpr\kvtcb@height@fixed\relax%
+ \tcbdimto\tcb@height{\kvtcb@height@fixed}%
+ \else%
+ \tcbdimto\tcb@space{\tcb@space+\kvtcb@height@fixed-\tcb@natheight}%
+ \tcbdimto\tcb@temp{\kvtcb@height@fixed+\kvtcb@height@fixed@plus}%
+ \ifdim\tcb@natheight>\tcb@temp\relax%
+ \let\tcb@height\tcb@temp%
+ \else%
+ \let\tcb@height\tcb@natheight%
+ \fi%
+ \fi%
+ \tcbdimto\tcbheightspace{\tcb@height-\tcb@natheight}%
+ \iftcb@lowerspace\tcb@ch@fixed@both\else\tcb@ch@fixed@upper\fi%
+}
+
+\def\tcb@ch@innerfixed{%
+ \tcbdimto\kvtcb@height@fixed{\kvtcb@height@fixed+\kvtcb@top@rule+\kvtcb@bottom@rule+\tcb@h@padtitle+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom}%
+ \tcb@ch@fixed%
+}
+
+\def\tcbheightfromgroup#1#2{%
+ \ifcsundef{tcb@ehg@height@#2}{%
+ \let#1\tcb@zpt%
+ }{%
+ \letcs{#1}{tcb@ehg@height@#2}%
+ }%
+}
+
+\def\tcb@saveehg#1{%
+ \immediate\write\@auxout{\string\csgdef{tcb@ehg@height@#1}{\csuse{tcb@ehg@current@#1}}}%
+}
+
+\def\tcb@ehgadd#1{%
+ \ifcsdef{tcb@ehg@current@\tcb@ehgid}{%
+ \ifdim\csuse{tcb@ehg@current@\tcb@ehgid}<#1\relax%
+ \csxdef{tcb@ehg@current@\tcb@ehgid}{#1}%
+ \fi%
+ }{%
+ \csxdef{tcb@ehg@current@\tcb@ehgid}{#1}%
+ \begingroup\edef\x{\endgroup\noexpand\AtEndDocument{\noexpand\tcb@saveehg{\tcb@ehgid}}}\x%
+ }%
+}
+
+\def\tcb@ch@equalheight{%
+ \tcbdimto\tcb@ehg@currentheight{\tcb@natheight-\tcb@space}%
+ \tcb@ehgadd{\tcb@ehg@currentheight}%
+ \ifcsdef{tcb@ehg@height@\tcb@ehgid}{%
+ \ifdim\csuse{tcb@ehg@height@\tcb@ehgid}<\tcb@ehg@currentheight\relax%
+ \let\tcb@height\tcb@ehg@currentheight%
+ \else%
+ \letcs{\tcb@height}{tcb@ehg@height@\tcb@ehgid}%
+ \fi%
+ }{%
+ \let\tcb@height\tcb@ehg@currentheight%
+ }%
+ \tcbdimto\tcbheightspace{\tcb@height-\tcb@natheight}%
+ \iftcb@lowerspace\tcb@ch@fixed@both\else\tcb@ch@fixed@upper\fi%
+}
+
+\def\tcb@dbox@top#1#2#3#4#5{\pgftext[x=#1,y=#2+#3,left,top]{\color{#5}\box#4}}%
+
+\def\tcb@dbox@bottom#1#2#3#4#5{\pgftext[x=#1,y=#2,left,bottom]{\color{#5}\box#4}}%
+
+\def\tcb@dbox@center#1#2#3#4#5{\pgftext[x=#1,y=#2+#3/2,left]{\color{#5}\box#4}}%
+
+\def\tcb@resize@box#1#2#3{%
+ \setbox#1\hbox{\resizebox*{#2}{#3}{\box#1}}%
+ \wd#1=#2\relax%
+ \ht#1=\the\dimexpr#3-\dp#1\relax%
+}
+
+\def\tcb@dbox@resize#1#2#3#4#5{%
+ \iftcb@fixedheight%
+ \tcbdimto\tcb@box@w@target{\wd#4}%
+ \tcbdimto\tcb@box@h@target{#3}%
+ \tcb@resize@box{#4}{\tcb@box@w@target}{\tcb@box@h@target}%
+ \fi%
+ \pgftext[x=#1,y=#2+#3,left,top]{\color{#5}\box#4}}%
+
+\def\tcb@dbox@resizelimited#1#2#3#4#5{%
+ \iftcb@fixedheight%
+ \tcbdimto\tcb@box@w@target{\wd#4}%
+ \tcbdimto\tcb@box@h@target{\kvtcbv@valignresizelimit\dimexpr(\ht#4+\dp#4)}%
+ \ifdim\dimexpr\tcb@box@h@target>#3\relax%
+ \tcbdimto\tcb@box@h@target{#3}%
+ \fi%
+ \tcb@resize@box{#4}{\tcb@box@w@target}{\tcb@box@h@target}%
+ \fi%
+ \pgftext[x=#1,y=#2+#3,left,top]{\color{#5}\box#4}}%
+
+\let\tcb@pgfprocess@@specialround@orig=\pgfprocess@@specialround
+
+% patch for \pgfprocess@@specialround
+\def\tcb@pgfprocess@@specialround@angular#1#2#3{%
+ \pgfutil@g@addto@macro\pgfprocess@segment{#1}%
+ % start point
+ \pgf@xb=#2%
+ \pgf@yb=#3%
+ %
+ \edef\pgf@marshal%
+ {\noexpand\pgfpointlineatdistance{\pgfprocess@savex}%
+ {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
+ {\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}}%
+ \pgf@process{\pgf@marshal}%
+ \pgf@xa=\pgf@x% save start point
+ \pgf@ya=\pgf@y%
+ \edef\pgfprocess@addition{{\the\pgf@x}{\the\pgf@y}}%
+ \expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@segment\expandafter{\pgfprocess@addition}%
+ %
+ \edef\pgf@marshal%
+ {\noexpand\pgfpointlineatdistance{\pgfprocess@savey}%
+ {\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}%
+ {\noexpand\pgfqpoint{\the\pgf@xc}{\the\pgf@yc}}}%
+ \pgf@process{\pgf@marshal}%
+ \pgf@xc=\pgf@x% save end point
+ \pgf@yc=\pgf@y%
+ \edef\pgfprocess@addition{\noexpand\pgfsyssoftpath@linetotoken{\the\pgf@xc}{\the\pgf@yc}}%
+ \expandafter\pgfutil@g@addto@macro\expandafter\pgfprocess@segment\expandafter{\pgfprocess@addition}%
+ %
+ \pgf@xa=#2%
+ \pgf@ya=#3%
+ \pgfprocess@continueafterrounding%
+}
+
+\def\tcbpatcharcround{\let\pgfprocess@@specialround=\tcb@pgfprocess@@specialround@orig}
+\def\tcbpatcharcangular{\let\pgfprocess@@specialround=\tcb@pgfprocess@@specialround@angular}
+
+\def\tcb@arc@zpt{\pgfsetcornersarced{\pgfpointorigin}}%
+\def\tcb@arc@ins{\pgfsetcornersarced{\pgfqpoint{\kvtcb@arc}{\kvtcb@arc}}}%
+\def\tcb@arc@out{\pgfsetcornersarced{\pgfqpoint{\tcb@outer@arc}{\tcb@outer@arc}}}%
+
+\def\tcb@define@corner@mode#1{%
+\tcbset{%
+ #1 corners/.is choice,%
+ #1 corners/northwest/.code={\edef\tcb@corner@mode@NW{#1}},%
+ #1 corners/northeast/.code={\edef\tcb@corner@mode@NE{#1}},%
+ #1 corners/southwest/.code={\edef\tcb@corner@mode@SW{#1}},%
+ #1 corners/southeast/.code={\edef\tcb@corner@mode@SE{#1}},%
+ #1 corners/north/.code={\edef\tcb@corner@mode@NW{#1}\edef\tcb@corner@mode@NE{#1}},%
+ #1 corners/south/.code={\edef\tcb@corner@mode@SW{#1}\edef\tcb@corner@mode@SE{#1}},%
+ #1 corners/east/.code={\edef\tcb@corner@mode@NE{#1}\edef\tcb@corner@mode@SE{#1}},%
+ #1 corners/west/.code={\edef\tcb@corner@mode@NW{#1}\edef\tcb@corner@mode@SW{#1}},%
+ #1 corners/downhill/.code={\edef\tcb@corner@mode@NW{#1}\edef\tcb@corner@mode@SE{#1}},%
+ #1 corners/uphill/.code={\edef\tcb@corner@mode@NE{#1}\edef\tcb@corner@mode@SW{#1}},%
+ #1 corners/all/.code={\edef\tcb@corner@mode@NW{#1}\edef\tcb@corner@mode@NE{#1}\edef\tcb@corner@mode@SW{#1}\edef\tcb@corner@mode@SE{#1}},%
+ #1 corners/.default=all}}%
+
+\tcb@define@corner@mode{rounded}
+\tcb@define@corner@mode{sharp}
+
+\def\tcb@arc@out@NW{\csname tcb@arc@out@NW@\tcb@corner@mode@NW\endcsname}
+\def\tcb@arc@out@NE{\csname tcb@arc@out@NE@\tcb@corner@mode@NE\endcsname}
+\def\tcb@arc@out@SW{\csname tcb@arc@out@SW@\tcb@corner@mode@SW\endcsname}
+\def\tcb@arc@out@SE{\csname tcb@arc@out@SE@\tcb@corner@mode@SE\endcsname}
+
+\def\tcb@arc@ins@NW{\csname tcb@arc@ins@NW@\tcb@corner@mode@NW\endcsname}
+\def\tcb@arc@ins@NE{\csname tcb@arc@ins@NE@\tcb@corner@mode@NE\endcsname}
+\def\tcb@arc@ins@SW{\csname tcb@arc@ins@SW@\tcb@corner@mode@SW\endcsname}
+\def\tcb@arc@ins@SE{\csname tcb@arc@ins@SE@\tcb@corner@mode@SE\endcsname}
+
+\let\tcb@arc@out@NW@sharp\tcb@arc@zpt
+\let\tcb@arc@out@NE@sharp\tcb@arc@zpt
+\let\tcb@arc@out@SW@sharp\tcb@arc@zpt
+\let\tcb@arc@out@SE@sharp\tcb@arc@zpt
+
+\let\tcb@arc@ins@NW@sharp\tcb@arc@zpt
+\let\tcb@arc@ins@NE@sharp\tcb@arc@zpt
+\let\tcb@arc@ins@SW@sharp\tcb@arc@zpt
+\let\tcb@arc@ins@SE@sharp\tcb@arc@zpt
+
+\let\tcb@arc@out@NW@rounded\tcb@arc@out
+\let\tcb@arc@out@NE@rounded\tcb@arc@out
+\let\tcb@arc@out@SW@rounded\tcb@arc@out
+\let\tcb@arc@out@SE@rounded\tcb@arc@out
+
+\let\tcb@arc@ins@NW@rounded\tcb@arc@ins
+\let\tcb@arc@ins@NE@rounded\tcb@arc@ins
+\let\tcb@arc@ins@SW@rounded\tcb@arc@ins
+\let\tcb@arc@ins@SE@rounded\tcb@arc@ins
+
+
+% boundaries
+\def\tcb@boundary@base#1#2#3#4#5#6#7#8{%
+ \tcbdimto\tcb@xa{#1}%
+ \tcbdimto\tcb@ya{#2}%
+ \tcbdimto\tcb@xb{#3}%
+ \tcbdimto\tcb@yb{#4}%
+ \pgfpathmoveto{\pgfqpoint{\tcb@xa}{\tcb@ya}}%
+ #6\pgfpathlineto{\pgfqpoint{\tcb@xa}{\tcb@yb}}%
+ #7\pgfpathlineto{\pgfqpoint{\tcb@xb}{\tcb@yb}}%
+ #8\pgfpathlineto{\pgfqpoint{\tcb@xb}{\tcb@ya}}%
+ #5\pgfpathclose%
+}
+
+\def\tcb@boundaryframe@standard{%
+ \tcb@boundary@base{\z@}{\z@}%
+ {\tcb@width}{\tcb@height}%
+ {\tcb@arc@out@SW}{\tcb@arc@out@NW}{\tcb@arc@out@NE}{\tcb@arc@out@SE}%
+}
+
+\def\tcb@boundaryframe@standardjigsaw{%
+ \pgfseteorule%
+ \tcb@boundaryframe@standard%
+ \iftcb@hasTitle%
+ \tcb@boundaryinterior@title@standard%
+ \iftcb@titlefilled%
+ \tcb@boundarytitle@standard%
+ \fi%
+ \else%
+ \tcb@boundaryinterior@notitle@standard%
+ \fi%
+}
+
+\def\tcb@boundaryinterior@title@standard{%
+ \tcb@boundary@base{\kvtcb@left@rule}{\kvtcb@bottom@rule}%
+ {\tcb@width-\kvtcb@right@rule}{\kvtcb@bottom@rule+\tcb@innerheight}%
+ {\tcb@arc@ins@SW}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@ins@SE}%
+}
+
+\def\tcb@boundaryinterior@notitle@standard{%
+ \tcb@boundary@base{\kvtcb@left@rule}{\kvtcb@bottom@rule}%
+ {\tcb@width-\kvtcb@right@rule}{\tcb@height-\kvtcb@top@rule}%
+ {\tcb@arc@ins@SW}{\tcb@arc@ins@NW}{\tcb@arc@ins@NE}{\tcb@arc@ins@SE}%
+}
+
+\def\tcb@boundarytitle@standard{%
+ \tcb@boundary@base{\kvtcb@left@rule}{\kvtcb@bottom@rule+\tcb@innerheight+\kvtcb@title@rule}%
+ {\tcb@width-\kvtcb@right@rule}{\tcb@height-\kvtcb@top@rule}%
+ {\tcb@arc@zpt}{\tcb@arc@ins@NW}{\tcb@arc@ins@NE}{\tcb@arc@zpt}%
+}
+
+% fill frame
+\def\tcb@drawframe@standard{%
+ \begin{pgfscope}%
+ \tcb@boundaryframe@standard%
+ \pgfsetfillcolor{tcbcolframe}%
+ \pgfsetfillopacity{\kvtcb@opacityframe}%
+ \pgfusepath{fill}%
+ \end{pgfscope}%
+}
+
+% fill frame
+\def\tcb@drawframe@standardjigsaw{%
+ \begin{pgfscope}%
+ \tcb@boundaryframe@standardjigsaw%
+ \pgfsetfillcolor{tcbcolframe}%
+ \pgfsetfillopacity{\kvtcb@opacityframe}%
+ \pgfusepath{fill}%
+ \end{pgfscope}%
+}
+
+% fill inner box with title
+\def\tcb@drawwithtitle@standard{%
+ \begin{pgfscope}%
+ \tcb@boundaryinterior@title@standard%
+ \pgfsetfillcolor{tcbcolback}%
+ \pgfsetfillopacity{\kvtcb@opacityback}%
+ \pgfusepath{fill}%
+ \end{pgfscope}%
+}
+
+% fill inner box without title
+\def\tcb@drawwithouttitle@standard{%
+ \begin{pgfscope}%
+ \tcb@boundaryinterior@notitle@standard%
+ \pgfsetfillcolor{tcbcolback}%
+ \pgfsetfillopacity{\kvtcb@opacityback}%
+ \pgfusepath{fill}%
+ \end{pgfscope}%
+}
+
+% draw title box
+\def\tcb@drawtitle@standard{%
+ \begin{pgfscope}%
+ \tcb@boundarytitle@standard%
+ \pgfsetfillcolor{tcbcolbacktitle}%
+ \pgfsetfillopacity{\kvtcb@opacitybacktitle}%
+ \pgfusepath{fill}%
+ \end{pgfscope}%
+}
+
+% draw segmentation line
+\def\tcb@drawlower@standard{%
+ \begin{pgfscope}%
+ \pgfsetdash{{1mm}{1mm}}{0.5mm}%
+ \iftcb@sidebyside%
+ \tcbdimto\tcb@seg@pos{\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper+\tcb@w@upper+\kvtcb@sbs@gap/2}%
+ \pgfpathmoveto{\pgfqpoint{\tcb@seg@pos}{\the\dimexpr\kvtcb@bottom@rule+\tcb@innerheight\relax}}%
+ \pgfpathlineto{\pgfqpoint{\tcb@seg@pos}{\kvtcb@bottom@rule}}%
+ \else%
+ \tcbdimto\tcb@seg@pos{\kvtcb@bottom@rule+\kvtcb@boxsep*2+\tcb@break@bottomsep+\kvtcb@middle+\kvtcb@bottom+\tcb@height@lower}%
+ \pgfpathmoveto{\pgfqpoint{\kvtcb@left@rule}{\tcb@seg@pos}}%
+ \pgfpathlineto{\pgfqpoint{\the\dimexpr\tcb@width-\kvtcb@right@rule\relax}{\tcb@seg@pos}}%
+ \fi%
+ \pgfsetcolor{tcbcolframe}%
+ \pgfsetstrokeopacity{\kvtcb@opacityframe}%
+ \pgfusepath{stroke}%
+ \end{pgfscope}%
+}
+
+\def\tcb@setbb@toggle@none{%
+ \pgfpathrectanglecorners{\pgfqpoint{\the\dimexpr\z@-\kvtcb@bbleft\relax}{\the\dimexpr\z@-\kvtcb@bbbottom\relax}}%
+ {\pgfqpoint{\the\dimexpr\tcb@width+\kvtcb@bbright\relax}{\the\dimexpr\tcb@height+\kvtcb@bbtop\relax}}%
+}
+
+\def\tcb@setbb@toggle@forced{%
+ \pgfpathrectanglecorners{\pgfqpoint{\the\dimexpr\z@-\kvtcb@bbright\relax}{\the\dimexpr\z@-\kvtcb@bbbottom\relax}}%
+ {\pgfqpoint{\the\dimexpr\tcb@width+\kvtcb@bbleft\relax}{\the\dimexpr\tcb@height+\kvtcb@bbtop\relax}}%
+}
+
+\def\tcb@setbb@toggle@evenpage{%
+ \tcbifoddpage{\tcb@setbb@toggle@none}{\tcb@setbb@toggle@forced}%
+}
+
+\def\tcb@creategeonodes@false{}
+
+\def\tcb@swap#1#2{%
+ \let\tcb@temp=#1%
+ \let#1=#2%
+ \let#2=\tcb@temp%
+}
+
+\let\tcb@lrtoggle@none=\relax
+
+\def\tcb@lrtoggle@forced{%
+ \tcb@swap{\kvtcb@left@rule}{\kvtcb@right@rule}%
+ \tcb@swap{\kvtcb@lefttitle}{\kvtcb@righttitle}%
+ \tcb@swap{\kvtcb@leftupper}{\kvtcb@rightupper}%
+ \tcb@swap{\kvtcb@leftlower}{\kvtcb@rightlower}%
+ \tcb@swap{\tcb@corner@mode@NW}{\tcb@corner@mode@NE}%
+ \tcb@swap{\tcb@corner@mode@SW}{\tcb@corner@mode@SE}%
+}
+
+\def\tcb@lrtoggle@evenpage{%
+ \tcbifoddpage{}{\tcb@lrtoggle@forced}%
+}
+
+\def\tcb@bbdraw{%
+ \tcb@lrtoggle%
+ \tcb@setbb@toggle%
+ \pgfusepath{use as bounding box}%
+ \iftcb@hasPhantom%
+ \pgftext[x=\z@,y=\tcb@height-\baselineskip,left,top]{\box\tcb@phantombox}%
+ \tcb@hasPhantomfalse%
+ \fi%
+ \csname tcb@creategeonodes@\kvtcb@geonodes\endcsname%
+}
+
+\def\tcb@tdraw@title@core{%
+ \iftcb@hasTitle\iftcb@titlevisible%%
+ \begin{pgfscope}%
+ \pgfsetfillopacity{\kvtcb@opacitytitle}%
+ \pgftext[x=\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@lefttitle\relax,
+ y=\the\dimexpr\tcb@height-\kvtcb@top@rule-\kvtcb@boxsep-\kvtcb@toptitle\relax,
+ left,top]{\color{tcbcoltitle}\box\tcb@titlebox}%
+ \end{pgfscope}%
+ \fi\fi%
+}
+\let\tcb@tdraw@title=\tcb@tdraw@title@core
+
+\def\tcb@tdraw@upper@core{%
+ \iftcb@uppervisible%
+ \begin{pgfscope}%
+ \pgfsetfillopacity{\kvtcb@opacityupper}%
+ \csname tcb@dbox@\kvtcb@valignupper\endcsname{\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper\relax}%
+ {\the\dimexpr\tcb@innerheight+\kvtcb@bottom@rule-\kvtcb@boxsep-\tcb@break@topsep-\kvtcb@top-\tcb@height@upper\relax}%
+ {\tcb@height@upper}{\tcb@upperbox}{tcbcolupper}%
+ \end{pgfscope}%
+ \fi%
+}
+\let\tcb@tdraw@upper=\tcb@tdraw@upper@core
+
+\def\tcb@tdraw@lower@core{%
+ \iftcb@lowervisible%
+ \begin{pgfscope}%
+ \pgfsetfillopacity{\kvtcb@opacitylower}%
+ \csname tcb@dbox@\kvtcb@valignlower\endcsname{\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftlower\relax}%
+ {\the\dimexpr\kvtcb@bottom@rule+\kvtcb@boxsep+\tcb@break@bottomsep+\kvtcb@bottom\relax}%
+ {\tcb@height@lower}{\tcb@lowerbox}{tcbcollower}%
+ \end{pgfscope}%
+ \fi%
+}
+\let\tcb@tdraw@lower=\tcb@tdraw@lower@core
+
+\def\tcb@box@align@top#1{%
+ \setbox#1=\hbox{\raise-\ht#1\box#1}%
+}
+
+\def\tcb@box@align@center#1{%
+ \setbox#1=\hbox{\raise\dimexpr(\dp#1-\ht#1)/2\relax\box#1}%
+}
+
+\def\tcb@box@align@bottom#1{%
+ \setbox#1=\hbox{\raise\dp#1\box#1}%
+}
+
+\def\tcb@sbs@mix{%
+ \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper@real}%
+ \tcb@box@align{\tcb@upperbox}%
+ \iftcb@uppervisible%
+ \tcbdimto{\tcb@temp@wd}{\tcb@w@upper-\wd\tcb@upperbox+\kvtcb@sbs@gap}%
+ \noindent\unhbox\tcb@upperbox\kern\tcb@temp@wd%
+ \else%
+ \tcbdimto{\tcb@temp@wd}{\tcb@w@upper+\kvtcb@sbs@gap}%
+ \noindent\kern\tcb@temp@wd%
+ \rule[-\dp\tcb@upperbox]{\z@}{\the\dimexpr\ht\tcb@upperbox+\dp\tcb@upperbox\relax}%
+ \fi%
+ \iftcb@hasLower%
+ \tcb@box@align{\tcb@lowerbox}%
+ \iftcb@lowervisible\leavevmode\color{tcbcollower}\unhbox\tcb@lowerbox%
+ \else%
+ \iftcb@lowerignored\else\rule[-\dp\tcb@lowerbox]{\z@}{\the\dimexpr\ht\tcb@lowerbox+\dp\tcb@lowerbox\relax}\fi%
+ \fi%
+ \fi%
+ \end{tcb@savebox}%
+ \tcb@hasLowerfalse%
+ \tcb@uppervisibletrue%
+}
+
+\def\tcb@draw@color@box{%
+ \iftcb@sidebyside\tcb@sbs@mix\fi%
+ \tcb@comp@arc%
+ \iftcb@hasTitle%
+ \tcbdimto\tcb@h@title{\ht\tcb@titlebox+\dp\tcb@titlebox}%
+ \tcbdimto\tcb@h@padtitle{\kvtcb@title@rule+\kvtcb@boxsep*2+\kvtcb@toptitle+\kvtcb@bottomtitle+\tcb@h@title}%
+ \else%
+ \let\tcb@h@title=\tcb@zpt%
+ \let\tcb@h@padtitle=\tcb@zpt%
+ \fi%
+ %
+ \tcb@defToTotalHeight\tcb@h@upper{\tcb@upperbox}%
+ %
+ \iftcb@hasLower%
+ \iftcb@lowerignored\tcb@lowerspacefalse\else\tcb@lowerspacetrue\fi%
+ \else\tcb@lowerspacefalse\fi%
+ \iftcb@lowerspace%
+ \tcbdimto\tcb@h@segment{\kvtcb@boxsep*2+\kvtcb@middle*2}%
+ \tcb@defToTotalHeight\tcb@h@lower{\tcb@lowerbox}%
+ \else
+ \let\tcb@h@segment=\tcb@zpt%
+ \let\tcb@h@lower=\tcb@zpt%
+ \fi%
+ %
+ \tcb@shield@externalize%
+ \tcb@drawcolorbox%
+}
+
+\def\tcb@apply@overlay{\csname tcb@overlay@\tcb@split@state\endcsname}%
+
+\def\tcb@adraw@frame{%
+ \tcb@frame@code%
+}
+
+\def\tcb@adraw@interior{%
+ \iftcb@hasTitle%
+ \tcb@interiortitled@code%
+ \else%
+ \tcb@interior@code%
+ \fi%
+}
+
+\def\tcb@adraw@title{%
+ \iftcb@hasTitle%
+ \iftcb@titlefilled%
+ \tcb@title@code%
+ \fi%
+ \fi%
+}
+
+\def\tcb@drawing@env@begin{%
+ \csname tcb@before@\tcb@split@state\endcsname%
+ \begin{\kvtcb@graphenv}%
+ \tcb@bbdraw%
+ \tcb@apply@graph@patches%
+}
+
+\def\tcb@drawing@env@end{%
+ \end{\kvtcb@graphenv}%
+ \csname tcb@after@\tcb@split@state\endcsname%
+}
+
+\def\tcb@set@normal@unbroken@beforeafter{%
+ \let\tcb@before@unbroken=\kvtcb@beforebox%
+ \iftcb@nobreak{%
+ \iftcb@ignorenobreak\else%
+ \let\tcb@before@unbroken=\kvtcb@beforebox@nobreak%
+ \fi%
+ }{}%
+ \let\tcb@after@unbroken=\kvtcb@afterbox%
+}
+
+\let\tcb@extras@unbroken\@empty
+
+\def\tcb@drawcolorbox{%
+ \edef\tcb@split@state{unbroken}%
+ \tcb@extras@unbroken%
+ \let\kvtcb@top@rule=\kvtcb@top@rule@stand%
+ \let\kvtcb@bottom@rule=\kvtcb@bottom@rule@stand%
+ \let\kvtcb@bbtop=\kvtcb@bbtop@stand%
+ \let\kvtcb@bbbottom=\kvtcb@bbbottom@stand%
+ \let\tcb@break@topsep=\tcb@zpt%
+ \let\tcb@break@bottomsep=\tcb@zpt%
+ % floats
+ \ifx\kvtcb@float\@empty%
+ \tcb@set@normal@unbroken@beforeafter%
+ \else%
+ \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]\noexpand\kvtcb@everyfloat}%
+ \let\tcb@after@unbroken=\tcb@float@env@end%
+ \fi%
+ \setcounter{tcbbreakpart}{1}%
+ % computation of total height
+ \tcbdimto\tcb@natheight{\tcb@h@padtitle+\kvtcb@top@rule+\kvtcb@bottom@rule+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom+\tcb@h@upper}%
+ \iftcb@lowerspace%
+ \tcbdimto\tcb@natheight{\tcb@natheight+\tcb@h@segment+\tcb@h@lower}%
+ \def\tcbsegmentstate{1}%
+ \else%
+ \def\tcbsegmentstate{0}%
+ \fi%
+ \tcb@ch%
+ \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}%
+ \tcbdimto\tcbtextheight{\tcb@innerheight-\kvtcb@boxsep*2-\kvtcb@top-\kvtcb@bottom}%
+ \tcb@drawing@env@begin%
+ \pgfsetbaseline{\the\dimexpr\kvtcb@baseline-\kvtcb@bbbottom\relax}%
+ \tcb@extensions@preframe%
+ % draw frame and interior
+ \tcb@adraw@frame%
+ \tcb@adraw@interior%
+ \iftcb@lowerseparated%
+ \iftcb@lowerspace%
+ \tcb@segmentation@code%
+ \else\iftcb@sidebyside%
+ \tcb@segmentation@code%
+ \fi\fi%
+ \fi%
+ \tcb@adraw@title%
+ \tcb@extensions@postframe%
+ % draw text boxes
+ \tcb@tdraw@title%
+ \tcb@tdraw@upper%
+ \iftcb@hasLower\tcb@tdraw@lower\fi%
+ \tcb@extensions@final%
+ \tcb@drawing@env@end%
+}
+
+\let\tcb@drawcolorbox@standalone=\tcb@drawcolorbox
+
+\def\tcb@draw@border#1{}
+
+\long\def\tcbox@inner@hbox#1{%
+ \tcbset{breakable@false,sidebyside=false}%
+ \tcb@set@@phantom%
+ \colorlet{tcbcol@origin}{.}%
+ \tcb@set@color{tcbcolupper}%
+ \sbox\tcb@upperbox{\tcb@embed@tcbox{\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper#1\tcb@insert@after@upper}}%
+ \tcb@reset@color%
+ \tcbdimto\tcb@val@raisebase{\the\dimexpr\dp\tcb@upperbox+\kvtcb@bottom+\kvtcb@boxsep+\kvtcb@bottom@rule@stand+\kvtcb@bbbottom@stand\relax}%
+ \tcbdimto\kvtcb@width{\wd\tcb@upperbox+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule}%
+ \tcb@hasLowerfalse%
+ \tcb@set@@title%
+ \tcb@set@@dimensions%
+ \tcb@draw@color@box%
+}
+
+\long\def\tcbox@inner@minipage#1{%
+ \tcbset{breakable@false,sidebyside=false}%
+ \let\tcb@val@raisebase=\tcb@zpt%
+ \tcb@set@@phantom%
+ \tcb@set@@title%
+ \tcb@set@@dimensions%
+ \colorlet{tcbcol@origin}{.}%
+ \tcb@set@color{tcbcolupper}%
+ \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}\kvtcb@fontupper\kvtcb@halignupper\tcb@insert@before@upper#1\tcb@insert@after@upper\end{tcb@savebox}%
+ \tcb@reset@color%
+ \tcb@hasLowerfalse%
+ \tcb@draw@color@box%
+}
+
+\long\def\tcbox@inner@v@@d#1{}%
+
+\long\def\tcb@ox#1#2{%
+ \begingroup%
+ \tcb@layer@inc%
+ \tcb@apply@box@options{#1}\tcb@height@adjust%
+ \csname tcbox@inner@\kvtcb@capture\endcsname{#2}%
+ \tcb@layer@dec%
+ \endgroup%
+}
+
+\newcommand{\tcbox}[2][]{%
+ \tcb@ox{capture=hbox,#1}{#2}%
+}
+
+\newcommand{\tcbsubtitle}[2][]{%
+ \begingroup%
+ \colorlet{tcbtranscol@frame}{tcbcolframe}%
+ \iftcb@titlefilled%
+ \colorlet{tcbtranscol@back}{tcbcolbacktitle}%
+ \else%
+ \colorlet{tcbtranscol@back}{tcbcolframe}%
+ \fi%
+ \colorlet{tcbtranscol@upper}{tcbcoltitle}%
+ \let\tcb@trans@fontupper\kvtcb@fonttitle%
+ \let\tcb@trans@boxsep\kvtcb@boxsep%
+ \let\tcb@trans@left\kvtcb@leftupper%
+ \let\tcb@trans@right\kvtcb@rightupper%
+ \let\tcb@trans@top\kvtcb@toptitle%
+ \let\tcb@trans@bottom\kvtcb@bottomtitle%
+ \let\tcb@trans@rule\kvtcb@title@rule%
+ \let\tcb@trans@style\kvtcb@subtitle@style%
+ \begin{tcolorbox}[sharp corners,
+ before skip={0.5\baselineskip},after skip={0.5\baselineskip},
+ colframe=tcbtranscol@frame,colback=tcbtranscol@back,
+ colupper=tcbtranscol@upper,fontupper=\tcb@trans@fontupper,
+ boxsep=\tcb@trans@boxsep,left=\tcb@trans@left,right=\tcb@trans@right,
+ top=\tcb@trans@top,bottom=\tcb@trans@bottom,
+ boxrule=\tcb@trans@rule,leftrule=\z@,rightrule=\z@,oversize,
+ code={\pgfkeysalsofrom\tcb@trans@style},#1]%
+ #2%
+ \end{tcolorbox}%
+ \endgroup%
+}
+
+
+\def\tcb@new@label@type{\begingroup\edef\x{\endgroup\noexpand\appto\noexpand\tcb@new@colopt{,label type=\tcb@new@boxname}}\x}
+
+\def\tcb@blend@beforetitle#1{#1:\ }
+
+\tcbset{%
+ blend before title code/.code={\def\tcb@blend@beforetitle##1{#1}},
+ blend before title/.is choice,
+ blend before title/colon/.style={blend before title code={##1:\ }},
+ blend before title/dash/.style={blend before title code={##1 --\ }},
+ blend before title/colon hang/.style={blend before title code={%
+ \setbox\z@=\hbox{##1:\ }\hangindent\wd\z@\hangafter=1\mbox{\unhbox\z@}}},
+ blend before title/dash hang/.style={blend before title code={%
+ \setbox\z@=\hbox{##1 --\ }\hangindent\wd\z@\hangafter=1\mbox{\unhbox\z@}}},
+ blend before title=colon,
+}
+
+\tcbset{%
+ new/.cd,%
+ use counter/.code={\edef\kvtcb@new@counter{#1}\let\tcb@proc@counter=\tcb@proc@counter@use},
+ use counter*/.code={\edef\kvtcb@new@counter{#1}\let\tcb@proc@counter=\tcb@proc@counter@from},
+ auto counter/.code={\let\tcb@proc@counter=\tcb@proc@counter@auto},
+ use counter from/.code={\edef\kvtcb@new@counter{\csname tcb@cnt@#1\endcsname}\let\tcb@proc@counter=\tcb@proc@counter@from},
+ no counter/.code={\let\tcb@proc@counter=\tcb@proc@counter@no},
+ %
+ number within/.store in=\kvtcb@new@numberwithin,
+ number format/.store in=\kvtcb@new@format,
+ number freestyle/.store in=\kvtcb@new@freestyle,
+ %
+ list inside/.store in=\kvtcb@new@listof,
+ list type/.store in=\kvtcb@new@listtype,
+ %
+ init@hook@clear/.code={\def\kvtcb@init@hook{}},
+ crefname/.code 2 args={\begingroup\edef\x{\endgroup\noexpand\crefname{\tcb@new@boxname}}\x{#1}{#2}\tcb@new@label@type},
+ Crefname/.code 2 args={\begingroup\edef\x{\endgroup\noexpand\Crefname{\tcb@new@boxname}}\x{#1}{#2}\tcb@new@label@type},
+ %
+ blend into/.is choice,%
+ blend into/figures/.style={use counter*=figure,list inside=lof,/tcb/code={\appto\tcb@new@colopt{,before title={\tcb@blend@beforetitle{\fnum@figure}}}}},%
+ blend into/tables/.style={use counter*=table,list inside=lot,/tcb/code={\appto\tcb@new@colopt{,before title={\tcb@blend@beforetitle{\fnum@table}}}}},%
+ blend into/listings/.style={use counter*=lstlisting,list inside=lol,/tcb/code={\appto\tcb@new@colopt{,before title={\tcb@blend@beforetitle{\lstlistingname~\thetcbcounter}}}}},%
+ %
+ reset@new/.style={no counter,number within=,number format=\arabic,number freestyle=,list inside=,list type=tcolorbox,init@hook@clear},
+}
+
+\def\tcb@proc@counter@autoanduse#1{%
+ \letcs\tcbcounter{tcb@cnt@#1}%
+ \ifx\kvtcb@new@numberwithin\@empty%
+ \csxdef{the\tcbcounter}{\expandafter\noexpand\kvtcb@new@format{\tcbcounter}}%
+ \else%
+ \@addtoreset{\tcbcounter}{\kvtcb@new@numberwithin}%
+ \csxdef{the\tcbcounter}{\expandafter\noexpand\csname the\kvtcb@new@numberwithin\endcsname .\expandafter\noexpand\kvtcb@new@format{\tcbcounter}}%
+ \fi%
+ \ifx\kvtcb@new@freestyle\@empty%
+ \else%
+ \csxdef{the\tcbcounter}{\kvtcb@new@freestyle}%
+ \fi%
+ \global\csletcs{thetcb@cnt@#1}{the\tcbcounter}%
+ \appto\tcb@new@colopt{,code={\letcs\tcbcounter{tcb@cnt@#1}\letcs\thetcbcounter{thetcb@cnt@#1}\stepcounter{\tcbcounter}\preto\kvtcb@phantom{\addtocounter{\tcbcounter}{-1}\refstepcounter{\tcbcounter}}}}%
+}
+
+\def\tcb@proc@counter@auto#1{%
+ \newcounter{tcb@cnt@#1}%
+ \csxdef{tcb@cnt@#1}{tcb@cnt@#1}%
+ \tcb@proc@counter@autoanduse{#1}%
+}
+
+\def\tcb@proc@counter@use#1{%
+ \csxdef{tcb@cnt@#1}{\kvtcb@new@counter}%
+ \tcb@proc@counter@autoanduse{#1}%
+}
+
+\def\tcb@proc@counter@from#1{%
+ \csxdef{tcb@cnt@#1}{\kvtcb@new@counter}%
+ \global\csletcs{thetcb@cnt@#1}{the\kvtcb@new@counter}%
+ \appto\tcb@new@colopt{,code={\letcs\tcbcounter{tcb@cnt@#1}\letcs\thetcbcounter{thetcb@cnt@#1}\stepcounter{\tcbcounter}\preto\kvtcb@phantom{\addtocounter{\tcbcounter}{-1}\refstepcounter{\tcbcounter}}}}%
+}
+
+\def\tcb@proc@counter@no#1{%
+ \appto\tcb@new@colopt{,code={\let\tcbcounter=\@empty\let\thetcbcounter=\@empty}}%
+}%
+
+\long\def\tcb@proc@options@init#1#2{%
+ \tcbset{new/.cd,reset@new,#1}%
+ \tcb@proc@counter{#2}%
+ \ifx\kvtcb@new@listof\@empty%
+ \else%
+ \csedef{tcb@lstof@#2}{\kvtcb@new@listof}%
+ \csedef{tcb@lsttp@#2}{\kvtcb@new@listtype}%
+ \appto\tcb@new@colopt{,add to list={\csname tcb@lstof@#2\endcsname}{\csname tcb@lsttp@#2\endcsname}}%
+ \fi%
+ \kvtcb@init@hook%
+}%
+
+\long\def\tcb@process@newtcolorbox#1#2{%
+ \edef\tcb@new@boxname{#1}%
+ \def\tcb@new@colopt{}%
+ \long\def\temp@a{#2}%
+ \ifx\temp@a\@empty\relax%
+ \else%
+ \tcb@proc@options@init{#2}{#1}%
+ \fi%
+ \preto\tcb@new@colopt{savedelimiter=#1}%
+ \cslet{tcb@opt@#1}{\tcb@new@colopt}%
+ \tcb@process@newtcolorbox@continue{#1}%
+}
+
+\newcommand\tcb@process@newenvironment[2][]{%
+ \tcb@process@newtcolorbox{#2}{#1}%
+}
+
+\long\def\tcb@newtcolorbox#1#2{\tcb@newenvironment{#1}{\tcolorbox[#2,options@for=#1]}{\endtcolorbox}}
+
+\long\def\tcb@newtcolorbox@#1[#2]#3{\tcb@newenvironment{#1}[#2]{\tcolorbox[#3,options@for=#1]}{\endtcolorbox}}
+
+\long\def\tcb@newtcolorbox@@#1[#2][#3]#4{\tcb@newenvironment{#1}[#2][#3]{\tcolorbox[#4,options@for=#1]}{\endtcolorbox}}
+
+\long\def\tcb@new@tcolorbox@#1[#2]{%
+ \@ifnextchar[{\tcb@newtcolorbox@@{#1}[#2]}{\tcb@newtcolorbox@{#1}[#2]}}
+
+\def\tcb@new@tcolorbox#1{%
+ \@ifnextchar[{\tcb@new@tcolorbox@{#1}}{\tcb@newtcolorbox{#1}}}
+
+\def\newtcolorbox{%
+ \let\tcb@newenvironment\newenvironment%
+ \let\tcb@process@newtcolorbox@continue\tcb@new@tcolorbox%
+ \tcb@process@newenvironment}
+
+\def\renewtcolorbox{%
+ \let\tcb@newenvironment\renewenvironment%
+ \let\tcb@process@newtcolorbox@continue\tcb@new@tcolorbox%
+ \tcb@process@newenvironment}
+
+\newcommand{\tcolorboxenvironment}[2]{%
+ \BeforeBeginEnvironment{#1}{\begin{tcolorbox}[savedelimiter={#1},#2]}%
+ \AfterEndEnvironment{#1}{\end{tcolorbox}}%
+}
+
+% auxiliary code to remove a leading backspace
+\newcommand{\tcb@remove@bs}[1]{%
+ \ifcat\relax\noexpand#1%
+ \expandafter\tcb@remove@bs@aux@i%
+ \fi
+ #1}
+\newcommand*{\tcb@remove@bs@aux@i}{%
+ \romannumeral%
+ \if\string\ \tcb@remove@bs@aux@ii\fi%
+ \expandafter\tcb@remove@bs@aux@iii\string}
+\newcommand{\tcb@remove@bs@aux@ii}{}
+\long\def\tcb@remove@bs@aux@ii#1\tcb@remove@bs@aux@iii{%
+ -\number\fi\expandafter\z@}
+\newcommand{\tcb@remove@bs@aux@iii}[1]{\z@}
+
+\newcommand\tcb@process@newcommand[2][]{%
+ \begingroup\edef\x{\endgroup\noexpand\tcb@process@newtcolorbox{\tcb@remove@bs{#2}}}\x{#1}%
+}
+
+\long\def\tcb@newtcbox#1#2{\expandafter\tcb@newcommand\csname#1\endcsname{\tcbox[#2,options@for=#1]}}
+
+\long\def\tcb@newtcbox@#1[#2]#3{\expandafter\tcb@newcommand\csname#1\endcsname[#2]{\tcbox[#3,options@for=#1]}}
+
+\long\def\tcb@newtcbox@@#1[#2][#3]#4{\expandafter\tcb@newcommand\csname#1\endcsname[#2][#3]{\tcbox[#4,options@for=#1]}}
+
+\long\def\tcb@new@tcbox@#1[#2]{%
+ \@ifnextchar[{\tcb@newtcbox@@{#1}[#2]}{\tcb@newtcbox@{#1}[#2]}}
+
+\def\tcb@new@tcbox#1{%
+ \@ifnextchar[{\tcb@new@tcbox@{#1}}{\tcb@newtcbox{#1}}}
+
+\def\newtcbox{%
+ \let\tcb@newcommand\newcommand%
+ \let\tcb@process@newtcolorbox@continue\tcb@new@tcbox%
+ \tcb@process@newcommand}
+
+\def\renewtcbox{%
+ \let\tcb@newcommand\renewcommand%
+ \let\tcb@process@newtcolorbox@continue\tcb@new@tcbox%
+ \tcb@process@newcommand}
+
+
+\def\tcb@addcontentsline#1#2{%
+ \ifx\kvtcb@listentry\@empty%
+ \ifx\kvtcb@title\@empty%
+ \ifx\tcbtitletext\@empty%
+ \addcontentsline{#1}{#2}{\protect\numberline{\thetcbcounter}{\ignorespaces\kvtcb@savedelimiter}}%
+ \else%
+ \addcontentsline{#1}{#2}{\protect\numberline{\thetcbcounter}{\ignorespaces\tcbtitletext}}%
+ \fi%
+ \else%
+ \addcontentsline{#1}{#2}{\protect\numberline{\thetcbcounter}{\ignorespaces\kvtcb@title}}%
+ \fi%
+ \else%
+ \addcontentsline{#1}{#2}{\kvtcb@listentry}%
+ \fi%
+}
+
+\newcommand*\l@tcolorbox{\@dottedtocline{1}{1.5em}{2.3em}}
+
+\newcommand{\tcblistof}[3][\section]{%
+ \ifnum\c@tocdepth<1\relax%
+ \tcb@warning{'tocdepth' value lower than 1 for 'tcblistof'}%
+ \fi%
+ #1{#3}%
+ \@starttoc{#2}%
+}
+
+
+
+% verbatim output as in 'verbatim'
+
+\newwrite\tcb@out
+
+\let\tcb@verbatim@begin@hook\@empty
+\let\tcb@verbatim@end@hook\@empty
+\let\tcb@verbatim@change@percent\@empty
+
+\def\tcbverbatimwrite#1{%
+ \@bsphack
+ \immediate\openout\tcb@out #1
+ \tcb@verbatim@begin@hook%
+ \let\do\@makeother\dospecials
+ \tcb@verbatim@change@percent\catcode`\^^M\active \catcode`\^^I=12
+ \def\verbatim@processline{%
+ \immediate\write\tcb@out
+ {\the\verbatim@line}}%
+ \verbatim@start}%'
+
+
+\def\endtcbverbatimwrite{%
+ \tcb@verbatim@end@hook%
+ \immediate\closeout\tcb@out
+ \@esphack%
+}
+
+
+% saving of the lower box
+
+\def\tcb@lowerverbatim{%
+ \begingroup%
+ \tcbverbatimwrite\kvtcb@savelowerto}
+
+\def\tcb@endlowerverbatimanddraw{%
+ \endtcbverbatimwrite%
+ \endgroup%
+ \IfFileExists{\kvtcb@savelowerto}{%
+ \tcb@savelowerbox\input{\kvtcb@savelowerto}\end{tcb@savebox}}{}%
+ \tcb@draw@color@box%
+ \tcb@finalize@environment%
+}
+
+% saving of the upper box
+
+\def\tcb@upperverbatim{%
+ \begingroup%
+ \tcbverbatimwrite\kvtcb@saveupperto}
+
+\def\tcb@endupperverbatimanddraw{%
+ \endtcbverbatimwrite%
+ \endgroup%
+ \IfFileExists{\kvtcb@saveupperto}{%
+ \tcb@saveupperbox\input{\kvtcb@saveupperto}\end{tcb@savebox}}{}%
+ \tcb@draw@color@box%
+ \tcb@finalize@environment%
+}
+
+\def\tcbwritetemp{%
+ \begingroup%
+ \tcbverbatimwrite\kvtcb@tempfile}
+
+\def\endtcbwritetemp{%
+ \endtcbverbatimwrite%
+ \endgroup%
+}
+
+\def\tcbusetemp{\input{\kvtcb@tempfile}}
+
+% recording
+
+\newwrite\tcb@record@out
+
+\def\tcb@null#1{}
+\newcommand{\tcb@record}[1]{\immediate\write\tcb@record@out{#1}}
+
+\newcommand{\tcbstartrecording}[1][\jobname.records]{%
+ \let\tcbrecord\tcb@record%
+ \edef\tcb@record@file{#1}%
+ \immediate\openout\tcb@record@out\tcb@record@file%
+}
+
+\newcommand{\tcbstoprecording}{%
+ \immediate\closeout\tcb@record@out%
+ \let\tcbrecord\tcb@null%
+}
+
+\tcbset{%
+ record/.style={phantom={\tcbrecord{#1}}},
+ no recording/.code={\let\tcbrecord\tcb@null},
+ no recording
+}
+
+\newcommand{\tcbinputrecords}[1][\tcb@record@file]{%
+ \IfFileExists{#1}{\input{#1}}{\tcb@error{record file `#1' not found}{The record file `#1' was not found}}%
+}
+
+\tcb@new@skin{standard}{frame engine=standard,interior titled engine=standard,
+ interior engine=standard,segmentation engine=standard,title engine=standard,
+ graphical environment=pgfpicture,geometry nodes=false,
+ set@extensions@preframe=,set@extensions@postframe={\tcb@apply@overlay},set@extensions@final=,%
+ set@outerboundary=\tcb@boundaryframe@standard,%
+ shape@of@skin=unbroken,
+ skin first=standard,skin middle=standard,skin last=standard%
+}
+
+\tcb@new@skin{standard jigsaw}{skin@standard,frame engine=standardjigsaw,%
+ skin first=standard jigsaw,skin middle=standard jigsaw,skin last=standard jigsaw}
+
+\def\tcb@reset{}%
+\tcbset{%
+ initialize@reset/.code={\tcbset{#1}\appto\tcb@reset{\tcbset{#1}}},%
+ reset/.code={\tcb@reset},%
+ reset@core/.style={code={\let\tcbtitletext\@empty\tcb@attach@title@code@%
+ \let\tcb@lateoptions@hook\@empty},
+ width=\linewidth,autoparskip,arc is curved,
+ natural height,height plus=0pt,space to lower,valign=top,valign lower=top,
+ size=normal,rounded corners,parfillskip restore,
+ enlarge top by=0mm,enlarge bottom by=0mm,enlarge left by=0mm,enlarge right by=0mm,
+ toggle enlargement=none,toggle left and right=none,
+ baseline=0pt,adjust text={\"Apgjy},upperbox=visible,lowerbox=visible,titlebox=visible,lower separated,
+ colback=black!5!white,colframe=black!75!white,@colbacktitle=black!50!white,coltext=black,coltitle=white,
+ fonttitle=,fontupper=,fontlower=,floatplacement=htb,nofloat,saveto=,savelowerto=,
+ tempfile={\jobname.tcbtemp},
+ standard,parbox,hyphenationfix=false,overlay=,
+ halign=justify,halign lower=justify,halign title=justify,
+ before title=,after title=,before upper=,after upper=,before lower=,after lower=,
+ sidebyside=false,sidebyside align=center,sidebyside gap=10mm,
+ lefthand ratio=0.5,check odd page=false,nophantom,
+ shield externalize=false,list entry=,no label type,
+ opacityupper=1.0,opacitylower=1.0,opacitytitle=1.0,opacityframe=1.0,opacityback=1.0,@opacitybacktitle=1.0,
+ subtitle style=,title filled=false,every float=,ignore nobreak=false,before nobreak=\noindent,
+ tcbox width=auto,
+ },
+ initialize@reset=reset@core,
+}
+
+\def\tcbsetforeverylayer#1{\tcbset{initialize@reset={#1}}}
+
+% libraries
+\def\tcb@optionlist{}
+
+\def\tcb@set@library@version#1{%
+ \def\tcb@library@version{#1}%
+ \typeout{Library (tcolorbox): '\@currname' version '\tcb@library@version'}
+ \tcb@check@library@version%
+}
+
+\def\tcb@check@library@version{%
+ \ifx\tcb@library@version\tcb@version\else%
+ \tcb@error{tcolorbox version '\tcb@version' loads library '\@currname' with version '\tcb@library@version'}%
+ {tcolorbox is not installed correctly. At least one library is not compatible to the main package.}%
+ \fi%
+}
+
+\def\tcbuselibrary#1{\tcbset{library/.cd,#1}}
+\@onlypreamble\tcbuselibrary
+
+\providecommand{\tcbpkgprefix}{}
+
+\def\tcb@load@library#1#2{%
+ \pgfkeysifdefined{/tcb/libload/#1}{}{%
+ \pgfkeyssetvalue{/tcb/libload/#1}{}%
+ \@pushfilename%
+ \xdef\@currname{#2}%
+ \makeatletter%
+ \def\tcb@library@version{-}%
+ \input\tcbpkgprefix#2\relax%
+ \tcb@check@library@version%
+ \@popfilename%
+ }%
+}
+
+\def\tcb@add@library#1#2{%
+ \tcbset{library/#1/.code={\tcb@load@library{#1}{#2}}}%
+ \DeclareOption{#1}{\appto\tcb@optionlist{,#1}}%
+}
+\def\tcb@add@library@style#1#2{%
+ \tcbset{library/#1/.style={#2}}%
+ \DeclareOption{#1}{\appto\tcb@optionlist{,#1}}%
+}
+
+\tcb@add@library{pro@cessing}{tcbprocessing.code.tex}
+\tcb@add@library{listings@core}{tcblistingscore.code.tex}
+\tcb@add@library{listings}{tcblistings.code.tex}
+\tcb@add@library{listingsutf8}{tcblistingsutf8.code.tex}
+\tcb@add@library{minted}{tcbminted.code.tex}
+\tcb@add@library{theorems}{tcbtheorems.code.tex}
+\tcb@add@library{documentation}{tcbdocumentation.code.tex}
+\tcb@add@library{raster}{tcbraster.code.tex}
+\tcb@add@library{skins@jigsaw}{tcbskinsjigsaw.code.tex}
+\tcb@add@library{skins}{tcbskins.code.tex}
+\tcb@add@library{breakable}{tcbbreakable.code.tex}
+\tcb@add@library{magazine}{tcbmagazine.code.tex}
+\tcb@add@library{hooks}{tcbhooks.code.tex}
+\tcb@add@library{fitting}{tcbfitting.code.tex}
+\tcb@add@library{xparse}{tcbxparse.code.tex}
+\tcb@add@library{external}{tcbexternal.code.tex}
+\tcb@add@library{vignette}{tcbvignette.code.tex}
+\tcb@add@library{poster}{tcbposter.code.tex}
+
+\tcb@add@library@style{many}{raster,skins,breakable,hooks,theorems,fitting,xparse}
+\tcb@add@library@style{most}{many,listingsutf8,external,magazine,vignette,poster}
+\tcb@add@library@style{all}{many,minted,listingsutf8,external,magazine,vignette,poster,documentation}
+
+\ProcessOptions*
+\begingroup\edef\x{\endgroup\noexpand\tcbuselibrary{\tcb@optionlist}}\x