%%
%% This is file `glossaries-extra-abbrstyles.def',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% glossaries-extra.dtx  (with options: `glossaries-extra-abbrstyles.def,package')
%% 
%%  glossaries-extra.dtx
%%  Copyright 2025 Nicola Talbot
%% 
%%  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 `maintained'.
%% 
%%  The Current Maintainer of this work is Nicola Talbot.
%% 
%%  This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-constants.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-user.bib, example-glossaries-utf8.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%% 
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
\ProvidesFile{glossaries-extra-abbrstyles.def}[2025/11/03 v1.9 (NLCT)]
\newcommand*{\glsxtrlongshortname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
}
\newcommand*{\glsxtrlongformat}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccesslong{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\glsaccesslong{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\glsxtrlongplformat}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccesslongpl{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\glsaccesslongpl{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\Glsxtrlongformat}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccesslong{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\Glsaccesslong{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\Glsxtrlongplformat}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccesslongpl{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\Glsaccesslongpl{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\GLSxtrlongformat}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccesslong{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\GLSaccesslong{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
      \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\GLSxtrlongplformat}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccesslongpl{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\GLSaccesslongpl{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
      \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\glsxtrlongformatgrp}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccesslong{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\glsaccesslong{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\glsxtrlongplformatgrp}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccesslongpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\glsaccesslongpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\Glsxtrlongformatgrp}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccesslong{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\Glsaccesslong{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\Glsxtrlongplformatgrp}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccesslongpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\Glsaccesslongpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\GLSxtrlongformatgrp}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccesslong{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      #3{\GLSaccesslong{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
  {%
    #3{\GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
}%
\newcommand*{\GLSxtrlongplformatgrp}[3]{%
  \glsifattribute{#1}{markwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccesslongpl{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      #3{\GLSaccesslongpl{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
  {%
    #3{\GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
}%
\newcommand*{\glsxtrshortformat}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessshort{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\glsaccessshort{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\glsxtrshortplformat}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessshortpl{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\glsaccessshortpl{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\Glsxtrshortformat}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessshort{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\Glsaccessshort{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\Glsxtrshortplformat}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessshortpl{#1}\glsxtrgenentrytextfmt{#2}}%
    \else
      #3{\Glsaccessshortpl{#1}}\glsxtrgenentrytextfmt{#2}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
      \glsxtrgenentrytextfmt{#2}%
    \fi
  }%
}%
\newcommand*{\GLSxtrshortformat}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessshort{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\GLSaccessshort{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
      \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\GLSxtrshortplformat}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessshortpl{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\GLSaccessshortpl{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
    \else
      #3{\GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
      \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\glsxtrshortformatgrp}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessshort{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\glsaccessshort{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\glsxtrshortplformatgrp}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\glsaccessshortpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\glsaccessshortpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\Glsxtrshortformatgrp}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessshort{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\Glsaccessshort{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\Glsxtrshortplformatgrp}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\Glsaccessshortpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
    \else
      #3{\Glsaccessshortpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
  {%
    #3{\Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {#3{\glsxtrgenentrytextfmt{#2}}}%
    \else
      {\glsxtrgenentrytextfmt{#2}}%
    \fi
  }%
}%
\newcommand*{\GLSxtrshortformatgrp}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessshort{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      #3{\GLSaccessshort{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
  {%
    #3{\GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
}%
\newcommand*{\GLSxtrshortplformatgrp}[3]{%
  \glsifattribute{#1}{markshortwords}{true}%
  {%
    \ifglsxtrinsertinside
      #3{\GLSaccessshortpl{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      #3{\GLSaccessshortpl{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
  {%
    #3{\GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
    \ifglsxtrinsertinside
      {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
    \else
      {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
    \fi
  }%
}%
\newcommand*{\glsxtrlongshortformat}[4]{%
  \glsxtrlongformat{#1}{#2}{#3}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrshortformat{#1}{}{#4}}%
}%
\newcommand*{\glsxtrlongshortplformat}[4]{%
  \glsxtrlongplformat{#1}{#2}{#3}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrshortplformat{#1}{}{#4}}%
}%
\newcommand*{\Glsxtrlongshortformat}[4]{%
  \Glsxtrlongformat{#1}{#2}{#3}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrshortformat{#1}{}{#4}}%
}%
\newcommand*{\Glsxtrlongshortplformat}[4]{%
  \Glsxtrlongplformat{#1}{#2}{#3}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrshortplformat{#1}{}{#4}}%
}%
\newcommand*{\GLSxtrlongshortformat}[4]{%
  \GLSxtrlongformat{#1}{#2}{#3}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\GLSxtrshortformat{#1}{}{#4}}%
}%
\newcommand*{\GLSxtrlongshortplformat}[4]{%
  \GLSxtrlongplformat{#1}{#2}{#3}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\GLSxtrshortplformat{#1}{}{#4}}%
}%
\newcommand*{\glsxtrshortlongformat}[4]{%
  \glsxtrshortformat{#1}{#2}{#4}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrlongformat{#1}{}{#3}}%
}%
\newcommand*{\glsxtrshortlongplformat}[4]{%
  \glsxtrshortplformat{#1}{#2}{#4}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrlongplformat{#1}{}{#3}}%
}%
\newcommand*{\Glsxtrshortlongformat}[4]{%
  \Glsxtrshortformat{#1}{#2}{#4}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrlongformat{#1}{}{#3}}%
}%
\newcommand*{\Glsxtrshortlongplformat}[4]{%
  \Glsxtrshortplformat{#1}{#2}{#4}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\glsxtrlongplformat{#1}{}{#3}}%
}%
\newcommand*{\GLSxtrshortlongformat}[4]{%
  \GLSxtrshortformat{#1}{#2}{#4}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\GLSxtrlongformat{#1}{}{#3}}%
}%
\newcommand*{\GLSxtrshortlongplformat}[4]{%
  \GLSxtrshortplformat{#1}{#2}{#4}%
  \glsxtrfullsep{#1}%
  \glsxtrparen{\GLSxtrlongplformat{#1}{}{#3}}%
}%
\newcommand*{\glsxtrfootnotelongformat}[2]{%
  \glsxtrlongformat{#1}{}{#2}%
}%
\newcommand*{\glsxtrfootnotelongplformat}[2]{%
  \glsxtrlongplformat{#1}{}{#2}%
}%
\newcommand*{\glsxtrpostfootnotelongformat}{%
  \glsxtrfootnotelongformat
}%
\newcommand*{\glsxtrpostusershortformat}[2]{%
  \glsxtrifallcaps
  {\GLSxtrusershortformat{#1}{#2}}%
  {\glsxtrusershortformat{#1}{#2}}%
}%
\newcommand*{\glsxtrusershortformat}[2]{%
  \glsxtruserparen{\glsxtrshortformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\glsxtrusershortplformat}[2]{%
  \glsxtruserparen{\glsxtrshortplformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\GLSxtrusershortformat}[2]{%
  \GLSxtruserparen{\GLSxtrshortformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\GLSxtrusershortplformat}[2]{%
  \GLSxtruserparen{\GLSxtrshortplformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\glsxtrpostuserlongformat}[2]{%
  \glsxtrifallcaps
  {\GLSxtruserlongformat{#1}{#2}}%
  {\glsxtruserlongformat{#1}{#2}}%
}%
\newcommand*{\glsxtruserlongformat}[2]{%
  \glsxtruserparen{\glsxtrlongformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\GLSxtruserlongformat}[2]{%
  \GLSxtruserparen{\GLSxtrlongformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\glsxtruserlongplformat}[2]{%
  \glsxtruserparen{\glsxtrlongplformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\GLSxtruserlongplformat}[2]{%
  \GLSxtruserparen{\GLSxtrlongplformat{#1}{}{#2}}{#1}%
}%
\newcommand*{\glsxtruserlongshortformat}[4]{%
  \glsxtrlongformat{#1}{#2}{#3}%
  \glsxtrusershortformat{#1}{#4}%
}%
\newcommand*{\glsxtruserlongshortplformat}[4]{%
  \glsxtrlongplformat{#1}{#2}{#3}%
  \glsxtrusershortplformat{#1}{#4}%
}%
\newcommand*{\Glsxtruserlongshortformat}[4]{%
  \Glsxtrlongformat{#1}{#2}{#3}%
  \glsxtrusershortformat{#1}{#4}%
}%
\newcommand*{\Glsxtruserlongshortplformat}[4]{%
  \Glsxtrlongplformat{#1}{#2}{#3}%
  \glsxtrusershortplformat{#1}{#4}%
}%
\newcommand*{\GLSxtruserlongshortformat}[4]{%
  \GLSxtrlongformat{#1}{#2}{#3}%
  \GLSxtrusershortformat{#1}{#4}%
}%
\newcommand*{\GLSxtruserlongshortplformat}[4]{%
  \GLSxtrlongplformat{#1}{#2}{#3}%
  \GLSxtrusershortplformat{#1}{#4}%
}%
\newcommand*{\glsxtrusershortlongformat}[4]{%
  \glsxtrshortformat{#1}{#2}{#3}%
  \glsxtruserlongformat{#1}{#4}%
}%
\newcommand*{\glsxtrusershortlongplformat}[4]{%
  \glsxtrshortplformat{#1}{#2}{#3}%
  \glsxtruserlongplformat{#1}{#4}%
}%
\newcommand*{\Glsxtrusershortlongformat}[4]{%
  \Glsxtrshortformat{#1}{#2}{#3}%
  \glsxtruserlongformat{#1}{#4}%
}%
\newcommand*{\Glsxtrusershortlongplformat}[4]{%
  \Glsxtrshortplformat{#1}{#2}{#3}%
  \glsxtruserlongplformat{#1}{#4}%
}%
\newcommand*{\GLSxtrusershortlongformat}[4]{%
  \GLSxtrshortformat{#1}{#2}{#3}%
  \GLSxtruserlongformat{#1}{#4}%
}%
\newcommand*{\GLSxtrusershortlongplformat}[4]{%
  \GLSxtrshortplformat{#1}{#2}{#3}%
  \GLSxtruserlongplformat{#1}{#4}%
}%
\newabbreviationstyle{long-short}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrrevert}[1]{\glsxtrdefaultrevert{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
}
\setabbreviationstyle{long-short}
\newcommand*{\glsxtrlongshortdescsort}{%
 \expandonce\glsxtrorglong\space (\expandonce\glsxtrorgshort)%
}
\newcommand*{\glsxtrlongshortdescname}{%
  \glsxplongfont{\the\glslongtok}{\glscategorylabel}%
  \protect\glsxtrfullsep{\the\glslabeltok}%
  \protect\glsxtrparen{\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}%
}
\newabbreviationstyle{long-short-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-short}%
}
\newcommand*{\glsxtrshortlongname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
}
\newabbreviationstyle{short-long}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
}
\newcommand*{\glsxtrshortlongdescsort}{\expandonce\glsxtrorgshort}
\newcommand*{\glsxtrshortlongdescname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
  \protect\glsxtrfullsep{\the\glslabeltok}%
  \protect\glsxtrparen{\glsxplongfont{\the\glslongtok}{\glscategorylabel}}%
}
\newabbreviationstyle{short-long-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},
    sort={\glsxtrshortlongdescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-long}%
}
\newcommand*{\glsfirstlongfootnotefont}[1]{\glslongfootnotefont{#1}}%
\newcommand*{\glslongfootnotefont}[1]{\glslongdefaultfont{#1}}%
\newcommand*{\glsxtrabbrvfootnote}[2]{\footnote{#2}}
\newrobustcmd*{\glsxtrpostabbrvfootnote}[2]{%
  \glsxtrabbrvfootnote{#1}%
  {#2\glsxtrpostfootnotelongformat{#1}{\glsfirstlongfootnotefont}}%
}
\newcommand*{\xpglsxtrpostabbrvfootnote}{%
  \expandafter\expandafter\expandafter
  \glsxtrpostabbrvfootnote
  \expandafter\expandafter\expandafter
    {\expandafter\glslabel\expandafter}\expandafter
    {\glsxtrassignlinktextfmt}%
}
\newcommand*{\glsxtrfootnotename}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
}
\newabbreviationstyle{footnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
}
\letabbreviationstyle{short-footnote}{footnote}
\newcommand*{\glsxtrfootnotedescname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
  \protect\glsxtrfullsep{\the\glslabeltok}%
  \protect\glsxtrparen{\glsxplongfont{\the\glslongtok}{\glscategorylabel}}%
}
\newcommand*{\glsxtrfootnotedescsort}{\the\glsshorttok}
\newabbreviationstyle{short-footnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{footnote}%
}
\letabbreviationstyle{footnote-desc}{short-footnote-desc}
\newabbreviationstyle{postfootnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\expandafter\expandafter\expandafter
          \glsxtrpostabbrvfootnote
          \expandafter\expandafter\expandafter
            {\expandafter\glslabel\expandafter}\expandafter
            {\glsxtrassignlinktextfmt}}%
      }{}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
  }%
}
\letabbreviationstyle{short-postfootnote}{postfootnote}
\newabbreviationstyle{short-postfootnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\expandafter\expandafter\expandafter
          \glsxtrpostabbrvfootnote
          \expandafter\expandafter\expandafter
            {\expandafter\glslabel\expandafter}\expandafter
            {\glsxtrassignlinktextfmt}}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{postfootnote}%
}
\letabbreviationstyle{postfootnote-desc}{short-postfootnote-desc}
\newcommand*{\glsxtrshortnolongname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
}
\newabbreviationstyle{short}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortnolongname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
}
\setabbreviationstyle[acronym]{short}
\letabbreviationstyle{short-nolong}{short}
\newabbreviationstyle{short-nolong-noreg}%
{%
  \GlsXtrUseAbbrStyleSetup{short-nolong}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-nolong}%
}
\newcommand*{\glsxtrshortdescname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
  \protect\glsxtrfullsep{\the\glslabeltok}%
  \protect\glsxtrparen{\glsxplongfont{\the\glslongtok}{\glscategorylabel}}%
}
\newabbreviationstyle{short-desc}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortdescname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
  }%
}
\letabbreviationstyle{short-nolong-desc}{short-desc}
\newabbreviationstyle{short-nolong-desc-noreg}%
{%
  \GlsXtrUseAbbrStyleSetup{short-nolong-desc}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-nolong-desc}%
}
\newabbreviationstyle{nolong-short}%
{%
  \GlsXtrUseAbbrStyleSetup{short-nolong}%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-nolong}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
}
\newabbreviationstyle{nolong-short-noreg}%
{%
  \GlsXtrUseAbbrStyleSetup{nolong-short}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{nolong-short}%
}
\newcommand*{\glsxtrlongnoshortdescname}{%
  \glsxplongfont{\the\glslongtok}{\glscategorylabel}%
}
\newabbreviationstyle{long-desc}%
{%
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortdescname},
    sort={\the\glslongtok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongfont}{\glsfirstabbrvfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongfont}%
  }%
}
\letabbreviationstyle{long-noshort-desc}{long-desc}
\newabbreviationstyle{long-noshort-desc-noreg}%
{%
  \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-noshort-desc}%
}
\newcommand*{\glsxtrlongnoshortname}{%
  \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
}
\newabbreviationstyle{long}%
{%
  \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    description={\the\glslongtok}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-desc}%
}
\letabbreviationstyle{long-noshort}{long}
\newabbreviationstyle{long-noshort-noreg}%
{%
  \GlsXtrUseAbbrStyleSetup{long-noshort}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-noshort}%
}
\newcommand*{\glsxtrscfont}[1]{\textsc{#1}}
\newcommand*{\glsabbrvscfont}{\glsxtrscfont}
\newcommand*{\glsxtrfirstscfont}[1]{\glsabbrvscfont{#1}}
\newcommand*{\glsfirstabbrvscfont}{\glsxtrfirstscfont}
\newcommand*{\glsxtrscsuffix}{\protect\glstextup{\glsxtrabbrvpluralsuffix}}
\newcommand*{\glsxtrscrevert}[1]{\glstextup{#1}}%
\newabbreviationstyle{long-short-sc}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
     {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
     {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
     {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
     {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
}
\newabbreviationstyle{long-short-sc-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-short-sc}%
}
\newabbreviationstyle{short-sc-long}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
}
\newabbreviationstyle{short-sc-long-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},
    sort={\glsxtrshortlongdescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sc-long}%
}
\newabbreviationstyle{short-sc}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortnolongname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
}
\letabbreviationstyle{short-sc-nolong}{short-sc}
\newabbreviationstyle{short-sc-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortdescname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
}
\letabbreviationstyle{short-sc-nolong-desc}{short-sc-desc}
\newabbreviationstyle{nolong-short-sc}%
{%
  \GlsXtrUseAbbrStyleSetup{short-sc-nolong}%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sc-nolong}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
}
\newabbreviationstyle{long-noshort-sc}%
{%
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    description={\the\glslongtok}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{long-sc}{long-noshort-sc}
\newabbreviationstyle{long-noshort-sc-desc}%
{%
  \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{long-desc-sc}{long-noshort-sc-desc}
\newabbreviationstyle{short-sc-footnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{footnote-sc}{short-sc-footnote}
\newabbreviationstyle{short-sc-footnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sc-footnote}%
}
\newabbreviationstyle{short-sc-postfootnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{postfootnote-sc}{short-sc-postfootnote}
\newabbreviationstyle{short-sc-postfootnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sc-postfootnote}%
}
\newcommand*{\glsxtrsmfont}[1]{\textsmaller{#1}}
\newcommand*{\glsabbrvsmfont}{\glsxtrsmfont}
\newcommand*{\glsxtrfirstsmfont}[1]{\glsabbrvsmfont{#1}}
\newcommand*{\glsfirstabbrvsmfont}{\glsxtrfirstsmfont}
\newcommand*{\glsxtrsmsuffix}{\glsxtrabbrvpluralsuffix}
\newcommand*{\glsxtrsmrevert}[1]{\textlarger{#1}}
\newabbreviationstyle{long-short-sm}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
}
\newabbreviationstyle{long-short-sm-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-short-sm}%
}
\newabbreviationstyle{short-sm-long}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
}
\newabbreviationstyle{short-sm-long-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},
    sort={\glsxtrshortlongdescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sm-long}%
}
\newabbreviationstyle{short-sm}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortnolongname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
}
\letabbreviationstyle{short-sm-nolong}{short-sm}
\newabbreviationstyle{short-sm-desc}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortdescname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
}
\letabbreviationstyle{short-sm-nolong-desc}{short-sm-desc}
\newabbreviationstyle{nolong-short-sm}%
{%
  \GlsXtrUseAbbrStyleSetup{short-sm-nolong}%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sm-nolong}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
}
\newabbreviationstyle{long-noshort-sm}%
{%
  \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    description={\the\glslongtok}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{long-sm}{long-noshort-sm}
\newabbreviationstyle{long-noshort-sm-desc}%
{%
  \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{long-desc-sm}{long-noshort-sm-desc}
\newabbreviationstyle{short-sm-footnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{footnote-sm}{short-sm-footnote}
\newabbreviationstyle{short-sm-footnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sm-footnote}%
}
\newabbreviationstyle{short-sm-postfootnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{postfootnote-sm}{short-sm-postfootnote}
\newabbreviationstyle{short-sm-postfootnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-sm-postfootnote}%
}
\newcommand*{\glsabbrvemfont}[1]{\emph{#1}}%
\newcommand*{\glsfirstabbrvemfont}[1]{\glsabbrvemfont{#1}}%
\newcommand*{\glsxtremsuffix}{\glsxtrabbrvpluralsuffix}
\newcommand*{\glsfirstlongemfont}[1]{\glslongemfont{#1}}%
\newcommand*{\glslongemfont}[1]{\emph{#1}}%
\newcommand*{\glsxtremrevert}[1]{\textup{#1}}%
\newabbreviationstyle{long-short-em}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
}
\newabbreviationstyle{long-short-em-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-short-em}%
}
\newabbreviationstyle{long-em-short-em}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    description={\protect\glslongemfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
}
\newabbreviationstyle{long-em-short-em-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-em-short-em}%
}
\newabbreviationstyle{short-em-long}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
}
\newabbreviationstyle{short-em-long-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},
    sort={\glsxtrshortlongdescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-em-long}%
}
\newabbreviationstyle{short-em-long-em}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    description={\protect\glslongemfont{\the\glslongtok}},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
}
\newabbreviationstyle{short-em-long-em-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},%
    sort={\glsxtrshortlongdescsort},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-em-long-em}%
}
\newabbreviationstyle{short-em}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortnolongname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    description={\the\glslongtok}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
}
\letabbreviationstyle{short-em-nolong}{short-em}
\newabbreviationstyle{short-em-desc}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortdescname},
    sort={\the\glsshorttok},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
}
\letabbreviationstyle{short-em-nolong-desc}{short-em-desc}
\newabbreviationstyle{nolong-short-em}%
{%
  \GlsXtrUseAbbrStyleSetup{short-em-nolong}%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-em-nolong}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
}
\newabbreviationstyle{long-noshort-em}%
{%
  \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    description={\the\glslongtok}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{long-em}{long-noshort-em}
\newabbreviationstyle{long-em-noshort-em}%
{%
  \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    description={\protect\glslongemfont{\the\glslongtok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
  }%
}
\newabbreviationstyle{long-em-noshort-em-noreg}%
{%
  \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
  \GlsXtrUseAbbrStyleSetup{long-em-noshort-em}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-em-noshort-em}%
}
\newabbreviationstyle{long-noshort-em-desc}%
{%
  \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{long-desc-em}{long-noshort-em-desc}
\newabbreviationstyle{long-em-noshort-em-desc}%
{%
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortdescname},
    sort={\the\glslongtok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
    text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
    plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{regular}{true}}%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlongformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glslongemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
  }%
}
\newabbreviationstyle{long-em-noshort-em-desc-noreg}%
{%
  \GlsXtrUseAbbrStyleSetup{long-em-noshort-em-desc}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-em-noshort-em-desc}%
}
\newabbreviationstyle{short-em-footnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
    \protect\glsxtrabbrvfootnote{##1}%
      {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{footnote-em}{short-em-footnote}
\newabbreviationstyle{short-em-footnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
     \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
       {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-em-footnote}%
}
\newabbreviationstyle{short-em-postfootnote}%
{%
  \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotename},
    sort={\the\glsshorttok},
    description={\the\glslongtok},%
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
  \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortlongformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortlongplformat{##1}{##2}%
      {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
  }%
}
\@glsxtr@deprecated@abbrstyle{postfootnote-em}{short-em-postfootnote}
\newabbreviationstyle{short-em-postfootnote-desc}%
{%
  \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrfootnotedescname},
    sort={\glsxtrfootnotedescsort},
    first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasglslikeandfirstuse
      {%
        \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-em-postfootnote}%
}
\newcommand*{\glsxtruserfield}{useri}
\newcommand*{\glsxtruserparensep}{, }
\newcommand*{\glsxtruserfieldfmt}[1]{#1}
\ifdef\glscurrentfieldvalue
{
  \newcommand*{\glsxtruserparen}[2]{%
    \glsxtrfullsep{#2}%
    \glsxtrparen
    {#1\ifglshasfield{\glsxtruserfield}{#2}%
     {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
      \glsxtruserfieldfmt{\expandafter\glsxtrgenentrytextfmt\expandafter{\glscurrentfieldvalue}}%
     }{}%
    }%
  }
}
{
  \newcommand*{\glsxtruserparen}[2]{%
    \glsxtrfullsep{#2}%
    \glsxtrparen
    {#1\ifglshasfield{\glsxtruserfield}{#2}%
     {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
      \glsxtruserfieldfmt{\expandafter\glsxtrgenentrytextfmt\expandafter{\@glo@thisvalue}}%
     }{}%
    }%
  }
}
\ifdef\glscurrentfieldvalue
{
  \newcommand*{\GLSxtruserparen}[2]{%
    \glsxtrfullsep{#2}%
    \glsxtrparen
    {#1\ifglshasfield{\glsxtruserfield}{#2}%
      {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
       \glsxtruserfieldfmt{\expandafter\mfirstucMakeUppercase\expandafter{\expandafter
        \glsxtrgenentrytextfmt\expandafter{\glscurrentfieldvalue}}}%
      }{}%
    }%
  }
}
{
  \newcommand*{\GLSxtruserparen}[2]{%
    \glsxtrfullsep{#2}%
    \glsxtrparen
    {#1\ifglshasfield{\glsxtruserfield}{#2}%
       {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
        \glsxtruserfieldfmt{\expandafter\mfirstucMakeUppercase\expandafter{\expandafter
        \glsxtrgenentrytextfmt\expandafter{\@glo@thisvalue}}}%
       }{}%
    }%
  }
}
\newcommand*{\glsabbrvuserfont}[1]{\glsabbrvdefaultfont{#1}}
\newcommand*{\glsfirstabbrvuserfont}[1]{\glsabbrvuserfont{#1}}
\newcommand*{\glslonguserfont}[1]{\glslongdefaultfont{#1}}
\newcommand*{\glsfirstlonguserfont}[1]{\glslonguserfont{#1}}
\newcommand*{\glsxtrusersuffix}{\glsxtrabbrvpluralsuffix}
\newcommand*{\glsuserdescription}[2]{\glslonguserfont{#1}}
\newabbreviationstyle{long-short-user}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}%
     \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
      {\the\glslabeltok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
     \protect\glsxtruserparen
      {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
    text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
    description={\protect\glsuserdescription{\the\glslongtok}%
     {\the\glslabeltok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtruserlongshortformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtruserlongshortplformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtruserlongshortformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtruserlongshortplformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtruserlongshortformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtruserlongshortplformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
}
\newabbreviationstyle{long-postshort-user}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\the\glsshorttok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
    text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
    description={\protect\glsuserdescription{\the\glslongtok}%
     {\the\glslabeltok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvuserfont}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
}
\newcommand*{\glsabbrvscuserfont}{\glsabbrvscfont}%
\newcommand*{\glsfirstabbrvscuserfont}{\glsabbrvscuserfont}%
\newcommand*{\glsxtrscusersuffix}{\glsxtrscsuffix}
\newcommand*{\glsxtrscuserrevert}{\glsxtrscrevert}
\newcommand*{\glsxtrlongshortscusername}{%
  \protect\glsabbrvscuserfont{\the\glsshorttok}%
}
\newabbreviationstyle{long-postshort-sc-user}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortscusername},
    sort={\the\glsshorttok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
    text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}},%
    description={\protect\glsuserdescription{\the\glslongtok}%
     {\the\glslabeltok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvscuserfont}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrscusersuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvscuserfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvscuserfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrscuserrevert{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
  }%
}
\newcommand*{\glsxtrlongshortuserdescname}{%
  \protect\glslonguserfont{\the\glslongtok}%
  \protect\glsxtruserparen
   {\protect\glsabbrvuserfont{\the\glsshorttok}}{\the\glslabeltok}%
}
\newabbreviationstyle{long-postshort-user-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortuserdescname},
    sort={\the\glslongtok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
    text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvuserfont}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-postshort-user}%
}
\newcommand*{\glsxtrlongshortscuserdescname}{%
  \protect\glslonguserfont{\the\glslongtok}%
  \protect\glsxtruserparen
   {\protect\glsabbrvscuserfont{\the\glsshorttok}}{\the\glslabeltok}%
}
\newabbreviationstyle{long-postshort-sc-user-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortscuserdescname},
    sort={\the\glslongtok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
    text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvscuserfont}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-postshort-sc-user}%
}
\newabbreviationstyle{short-postlong-user}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
    text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
    description={\protect\glsuserdescription{\the\glslongtok}%
     {\the\glslabeltok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \glsxtrpostuserlongformat{\glslabel}{\glsfirstlonguserfont}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshortformat{##1}{##2}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvuserfont}%
  }%
}
\newcommand*{\glsxtrshortlonguserdescname}{%
 \protect\glsabbrvuserfont{\the\glsshorttok}%
 \protect\glsxtruserparen
   {\protect\glslonguserfont{\the\glslongtok}}%
   {\the\glslabeltok}%
}
\newabbreviationstyle{short-postlong-user-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlonguserdescname},
    sort={\the\glsshorttok},
    first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
    text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \glsxtrpostuserlongformat{\glslabel}{\glsfirstlonguserfont}%
      }%
      {}%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-postlong-user}%
}
\newabbreviationstyle{long-short-user-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortuserdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\protect\glsfirstlonguserfont{\the\glslongtok}%
     \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
      {\the\glslabeltok}},%
    firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
     \protect\glsxtruserparen
      {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
    text={\protect\glsabbrvfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-short-user}%
}
\newabbreviationstyle{short-long-user}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\the\glsshorttok},
    description={\protect\glsuserdescription{\the\glslongtok}%
      {\the\glslabeltok}},%
    first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
     \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
       {\the\glslabeltok}},%
    firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
     \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
       {\the\glslabeltok}},%
    text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrusershortlongformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrusershortlongplformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrusershortlongformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrusershortlongplformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrusershortlongformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrusershortlongplformat{##1}{##2}%
      {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
  }%
}
\newabbreviationstyle{short-long-user-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlonguserdescname},
    sort={\glsxtrshortlongdescsort},%
    first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
     \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
       {\the\glslabeltok}},%
    firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
     \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
       {\the\glslabeltok}},%
    text={\protect\glsabbrvfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-long-user}%
}
\newrobustcmd*{\glsxtrifhyphenstart}[3]{%
  \ifx\glsinsert#1\relax
   \expandafter\@glsxtrifhyphenstart#1\relax\relax
     \@end@glsxtrifhyphenstart{#2}{#3}%
  \else
   \@glsxtrifhyphenstart#1\relax\relax\@end@glsxtrifhyphenstart{#2}{#3}%
  \fi
}
\def\@glsxtrifhyphenstart#1#2\@end@glsxtrifhyphenstart#3#4{%
  \ifx-#1\relax#3\else #4\fi
}
\newcommand*{\glsxtrlonghyphenshort}[4]{%
 {%
   \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
     {\glsxtrgenentrytextfmt{#4}}\fi}%
   \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi
   \glsxtrfullsep{#1}%
   \glsxtrparen{\glsfirstabbrvhyphenfont{#3\ifglsxtrinsertinside
     {\glsxtrgenentrytextfmt{#4}}\fi}%
    \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi}%
 }%
}
\newcommand*{\GLSxtrlonghyphenshort}[4]{%
 {%
   \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
   \ifglsxtrinsertinside\else
    {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen{\glsfirstabbrvhyphenfont{#3\ifglsxtrinsertinside
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
    \ifglsxtrinsertinside\else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
    \fi}%
 }%
}
\newcommand*{\glsxtrshorthyphennolong}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
     {\glsxtrgenentrytextfmt{#3}}\fi}%
   \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#3}}\fi
 }%
}
\newcommand*{\GLSxtrshorthyphennolong}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}\fi}%
   \ifglsxtrinsertinside\else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}%
   \fi
 }%
}
\newcommand*{\glsabbrvhyphenfont}{\glsabbrvdefaultfont}%
\newcommand*{\glsfirstabbrvhyphenfont}{\glsabbrvhyphenfont}%
\newcommand*{\glslonghyphenfont}{\glslongdefaultfont}%
\newcommand*{\glsfirstlonghyphenfont}{\glslonghyphenfont}%
\newcommand*{\glsxtrhyphensuffix}{\glsxtrabbrvpluralsuffix}
\newcommand*{\glsxtrlonghyphenshortsort}{\expandonce\glsxtrorgshort}
\newabbreviationstyle{long-hyphen-short-hyphen}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\glsxtrlonghyphenshortsort},
    first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
    firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
    description={\protect\glslonghyphenfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \glsaccesslong{##1}%
       }%
       {%
         \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshort{##1}%
       }%
       {%
         \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \glsaccesslongpl{##1}%
       }%
       {%
         \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshortpl{##1}%
       }%
       {%
         \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \Glsaccesslong{##1}%
       }%
       {%
         \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshort{##1}%
       }%
       {%
         \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \Glsaccesslongpl{##1}%
       }%
       {%
         \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshortpl{##1}%
       }%
       {%
         \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \GLSaccesslong{##1}%
       }%
       {%
         \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \GLSaccessshort{##1}%
       }%
       {%
         \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \GLSaccesslongpl{##1}%
       }%
       {%
         \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \GLSaccessshortpl{##1}%
       }%
       {%
         \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshort{##1}%
      }%
      {%
        \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshortpl{##1}%
      }%
      {%
        \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshort{##1}%
      }%
      {%
        \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshortpl{##1}%
      }%
      {%
        \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshort{##1}%
      }%
      {%
        \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshortpl{##1}%
      }%
      {%
        \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
}
\newabbreviationstyle{long-hyphen-short-hyphen-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},
    first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
    firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-hyphen-short-hyphen}%
}
\newcommand*{\glsxtrlonghyphennoshort}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
     {\glsxtrgenentrytextfmt{#3}}\fi}%
   \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#3}}\fi
 }%
}
\newcommand*{\GLSxtrlonghyphennoshort}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}\fi}%
   \ifglsxtrinsertinside\else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}%
   \fi
 }%
}
\newcommand*{\glsxtrlonghyphennoshortdescsort}{\expandonce\glsxtrorglong}
\newabbreviationstyle{long-hyphen-noshort-desc-noreg}%
{%
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortdescname},
    sort={\glsxtrlonghyphennoshortdescsort},
    first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
    text={\protect\glslonghyphenfont{\the\glslongtok}},%
    plural={\protect\glslonghyphenfont{\the\glslongpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \glsaccesslong{##1}%
       }%
       {%
         \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshort{##1}%
       }%
       {%
         \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \glsaccesslongpl{##1}%
       }%
       {%
         \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshortpl{##1}%
       }%
       {%
         \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \Glsaccesslong{##1}%
       }%
       {%
         \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshort{##1}%
       }%
       {%
         \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \glsxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \Glsaccesslongpl{##1}%
       }%
       {%
         \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \glsaccessshortpl{##1}%
       }%
       {%
         \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \GLSaccesslong{##1}%
       }%
       {%
         \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \GLSaccessshort{##1}%
       }%
       {%
         \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlonghyphenshort{##1}%
     {%
       \glsifattribute{##1}{markwords}{true}%
       {%
         \GLSaccesslongpl{##1}%
       }%
       {%
         \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {%
       \glsifattribute{##1}{markshortwords}{true}%
       {%
         \GLSaccessshortpl{##1}%
       }%
       {%
         \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
       }%
     }%
     {##2}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslong{##1}%
      }%
      {%
        \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslongpl{##1}%
      }%
      {%
        \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \Glsaccesslong{##1}%
      }%
      {%
        \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \Glsaccesslongpl{##1}%
      }%
      {%
        \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslong{##1}%
      }%
      {%
        \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslongpl{##1}%
      }%
      {%
        \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslong{##1}%
      }%
      {%
        \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslongpl{##1}%
      }%
      {%
        \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \Glsaccesslong{##1}%
      }%
      {%
        \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \glsxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \Glsaccesslongpl{##1}%
      }%
      {%
        \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslong{##1}%
      }%
      {%
        \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrlonghyphennoshort{##1}%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslongpl{##1}%
      }%
      {%
        \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
}
\newcommand*{\glsxtrlonghyphennoshortsort}{\expandonce\glsxtrorgshort}
\newabbreviationstyle{long-hyphen-noshort-noreg}%
{%
  \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongnoshortname},
    sort={\glsxtrlonghyphennoshortsort},
    first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
    text={\protect\glslonghyphenfont{\the\glslongtok}},%
    plural={\protect\glslonghyphenfont{\the\glslongpltok}},%
    description={\the\glslongtok}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-hyphen-noshort-desc-noreg}%
}
\newcommand*{\glsxtrlonghyphen}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstlonghyphenfont{#1}%
 }%
}
\newcommand*{\glsxtrposthyphenshort}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
     {\glsfirstlonghyphenfont{\glsxtrgenentrytextfmt{#2}}}%
   \else
     {\glsxtrgenentrytextfmt{#2}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
   {%
     \glsxtrshortformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
   }%
 }%
}
\newcommand*{\GLSxtrposthyphenshort}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
     {\glsfirstlonghyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
   \else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
   {%
     \GLSxtrshortformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
   }%
 }%
}
\newcommand*{\glsxtrposthyphenshortpl}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
     {\glsfirstlonghyphenfont{\glsxtrgenentrytextfmt{#2}}}%
   \else
     {\glsxtrgenentrytextfmt{#2}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
   {%
     \glsxtrshortplformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
   }%
 }%
}
\newcommand*{\GLSxtrposthyphenshortpl}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
     {\glsfirstlonghyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
   \else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
   {%
     \GLSxtrshortplformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
   }%
 }%
}
\newcommand*{\xpglsxtrposthyphenshort}{%
  \glsxtrifallcaps
  {%
    \expandafter\GLSxtrposthyphenshort\expandafter\glslabel
     \expandafter{\glsinsert}%
  }%
  {%
    \expandafter\glsxtrposthyphenshort\expandafter\glslabel
     \expandafter{\glsinsert}%
  }%
}
\newcommand*{\glsxtrposthyphensubsequent}[2]{%
  \ifglsxtrinsertinside
    \glsabbrvfont{{\glsxtrgenentrytextfmt{#2}}}%
  \else
    {\glsxtrgenentrytextfmt{#2}}%
  \fi
}
\newcommand*{\GLSxtrposthyphensubsequent}[2]{%
  \ifglsxtrinsertinside
    \glsabbrvfont{{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
  \else
    {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
  \fi
}
\newcommand*{\xpglsxtrposthyphensubsequent}{%
  \glsxtrifallcaps
  {%
    \expandafter\GLSxtrposthyphensubsequent\expandafter\glslabel
         \expandafter{\glsinsert}%
  }%
  {%
    \expandafter\glsxtrposthyphensubsequent\expandafter\glslabel
         \expandafter{\glsinsert}%
  }%
}
\newcommand*{\glsxtrshorthyphennoinsert}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstabbrvhyphenfont{#2}%
 }%
}
\newabbreviationstyle{long-hyphen-postshort-hyphen}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortname},
    sort={\glsxtrlonghyphenshortsort},
    first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
    description={\protect\glslonghyphenfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \xpglsxtrposthyphenshort
      }%
      {%
        \xpglsxtrposthyphensubsequent
      }%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshort{##1}%
      }%
      {%
        \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshortpl{##1}%
      }%
      {%
        \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshort{##1}%
      }%
      {%
        \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshortpl{##1}%
      }%
      {%
        \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshort{##1}%
      }%
      {%
        \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshortpl{##1}%
      }%
      {%
        \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlonghyphen
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslong{##1}%
      }%
      {%
        \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlonghyphen
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslongpl{##1}%
      }%
      {%
        \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \glsxtrlonghyphen
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \Glsaccesslong{##1}%
      }%
      {%
        \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \glsxtrlonghyphen
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \Glsaccesslongpl{##1}%
      }%
      {%
        \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \glsxtrlonghyphen
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslong{##1}%
      }%
      {%
        \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \glsxtrlonghyphen
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslongpl{##1}%
      }%
      {%
        \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongplformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongplformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongplformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
  }%
}
\newabbreviationstyle{long-hyphen-postshort-hyphen-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrlongshortdescname},
    sort={\glsxtrlongshortdescsort},%
    first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
    firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \xpglsxtrposthyphenshort
      }%
      {%
        \xpglsxtrposthyphensubsequent
      }%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-hyphen-postshort-hyphen}%
}
\newcommand*{\glsxtrshorthyphenlong}[4]{%
 {%
   \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
     {\glsxtrgenentrytextfmt{#4}}\fi}%
   \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi
   \glsxtrfullsep{#1}%
   \glsxtrparen{\glsfirstlonghyphenfont{#3%
     \ifglsxtrinsertinside{\glsxtrgenentrytextfmt{#4}}\fi}%
    \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi}%
 }%
}
\newcommand*{\GLSxtrshorthyphenlong}[4]{%
 {%
   \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
   \ifglsxtrinsertinside\else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen{\glsfirstlonghyphenfont{#3%
     \ifglsxtrinsertinside{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
    \ifglsxtrinsertinside\else
     {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
    \fi}%
 }%
}
\newcommand*{\glsxtrshorthyphenlongsort}{\expandonce\glsxtrorgshort}
\newabbreviationstyle{short-hyphen-long-hyphen}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\glsxtrshorthyphenlongsort},
    first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
    firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
    description={\protect\glslonghyphenfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshorthyphenlong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshort{##1}%
      }%
      {%
        \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslong{##1}%
      }%
      {%
        \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshorthyphenlong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshortpl{##1}%
      }%
      {%
        \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {%
      \glsifattribute{##1}{marklongwords}{true}%
      {%
        \glsaccesslongpl{##1}%
      }%
      {%
        \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \glsxtrshorthyphenlong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshort{##1}%
      }%
      {%
        \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslong{##1}%
      }%
      {%
        \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \glsxtrshorthyphenlong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshortpl{##1}%
      }%
      {%
        \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \glsaccesslongpl{##1}%
      }%
      {%
        \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrshorthyphenlong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshort{##1}%
      }%
      {%
        \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslong{##1}%
      }%
      {%
        \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrshorthyphenlong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshortpl{##1}%
      }%
      {%
        \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {%
      \glsifattribute{##1}{markwords}{true}%
      {%
        \GLSaccesslongpl{##1}%
      }%
      {%
        \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshort{##1}%
      }%
      {%
        \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshortpl{##1}%
      }%
      {%
        \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshort{##1}%
      }%
      {%
        \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshortpl{##1}%
      }%
      {%
        \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \GLSxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshort{##1}%
      }%
      {%
        \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \GLSxtrshorthyphennolong{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshortpl{##1}%
      }%
      {%
        \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
}
\newabbreviationstyle{short-hyphen-long-hyphen-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},
    sort={\glsxtrshortlongdescsort},
    first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
    firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
     \protect\glsxtrfullsep{\the\glslabeltok}%
     \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-hyphen-long-hyphen}%
}
\newcommand*{\glsxtrshorthyphen}[3]{%
 {%
   \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \glsfirstabbrvhyphenfont{#1}%
 }%
}
\newcommand*{\glsxtrposthyphenlong}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
    {\glsfirstabbrvhyphenfont{\glsxtrgenentrytextfmt{#2}}}%
   \else
    {\glsxtrgenentrytextfmt{#2}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
     {\glsxtrlongformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
 }%
}
\newcommand*{\GLSxtrposthyphenlong}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
    {\glsfirstabbrvhyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
   \else
    {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
     {\GLSxtrlongformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
 }%
}
\newcommand*{\glsxtrposthyphenlongpl}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
    {\glsfirstabbrvhyphenfont{\glsxtrgenentrytextfmt{#2}}}%
   \else
    {\glsxtrgenentrytextfmt{#2}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
     {\glsxtrlongplformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
 }%
}
\newcommand*{\GLSxtrposthyphenlongpl}[2]{%
 {%
   \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
   \ifglsxtrinsertinside
    {\glsfirstabbrvhyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
   \else
    {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
   \fi
   \glsxtrfullsep{#1}%
   \glsxtrparen
     {\GLSxtrlongplformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
 }%
}
\newcommand*{\xpglsxtrposthyphenlong}{%
  \glsxtrifallcaps
  {%
    \expandafter\GLSxtrposthyphenlong\expandafter\glslabel
         \expandafter{\glsinsert}%
  }%
  {%
    \expandafter\glsxtrposthyphenlong\expandafter\glslabel
         \expandafter{\glsinsert}%
  }%
}
\newabbreviationstyle{short-hyphen-postlong-hyphen}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongname},
    sort={\glsxtrshorthyphenlongsort},
    first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
    firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
    description={\protect\glslonghyphenfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \xpglsxtrposthyphenlong
      }%
      {%
        \xpglsxtrposthyphensubsequent
      }%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
  \renewcommand*{\glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshort{##1}%
      }%
      {%
        \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshortpl{##1}%
      }%
      {%
        \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshort{##1}%
      }%
      {%
        \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshortpl{##1}%
      }%
      {%
        \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshort{##1}%
      }%
      {%
        \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
    \glsxtrshorthyphennoinsert{##1}%
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshortpl{##1}%
      }%
      {%
        \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##2}%
  }%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrshorthyphen
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshort{##1}%
      }%
      {%
        \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrshorthyphen
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \glsaccessshortpl{##1}%
      }%
      {%
        \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \glsxtrshorthyphen
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshort{##1}%
      }%
      {%
        \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \glsxtrshorthyphen
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \Glsaccessshortpl{##1}%
      }%
      {%
        \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }{##1}{##2}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \glsxtrshorthyphen
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshort{##1}%
      }%
      {%
        \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }%
    {##1}{##2}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \glsxtrshorthyphen
    {%
      \glsifattribute{##1}{markshortwords}{true}%
      {%
        \GLSaccessshortpl{##1}%
      }%
      {%
        \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
      }%
    }{##1}{##2}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrshortformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrshortplformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrshortformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrshortplformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrshortformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrshortplformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
  }%
}
\newabbreviationstyle{short-hyphen-postlong-hyphen-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrshortlongdescname},
    sort={\glsxtrshortlongdescsort},%
    first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
    firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
    text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \csdef{glsxtrpostlink\glscategorylabel}{%
      \glsxtrifwasfirstuse
      {%
        \xpglsxtrposthyphenlong
      }%
      {%
        \xpglsxtrposthyphensubsequent
      }%
    }%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{short-hyphen-postlong-hyphen}%
}
\newcommand*{\glsabbrvonlyfont}{\glsabbrvdefaultfont}%
\newcommand*{\glsfirstabbrvonlyfont}{\glsabbrvonlyfont}%
\newcommand*{\glslongonlyfont}{\glslongdefaultfont}%
\newcommand*{\glsfirstlongonlyfont}{\glslongonlyfont}%
\newcommand*{\glsxtronlysuffix}{\glsxtrabbrvpluralsuffix}
\newcommand*{\glsxtronlyname}{%
  \protect\glsabbrvonlyfont{\the\glsshorttok}%
}
\newabbreviationstyle{long-only-short-only}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtronlyname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
    description={\protect\glslongonlyfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtronlysuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvonlyfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvonlyfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
  }%
}
\newcommand*{\glsxtronlydescsort}{\the\glslongtok}
\newcommand*{\glsxtronlydescname}{%
  \protect\glslongfont{\the\glslongtok}%
}
\newabbreviationstyle{long-only-short-only-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtronlydescname},
    sort={\glsxtronlydescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-only-short-only}%
}
\newcommand*{\glsabbrvsconlyfont}{\glsabbrvscfont}%
\newcommand*{\glsfirstabbrvsconlyfont}{\glsabbrvsconlyfont}%
\newcommand*{\glsxtrsconlysuffix}{\glsxtrscsuffix}
\newcommand*{\glsxtrsconlyrevert}{\glsxtrscrevert}
\newcommand*{\glsxtrsconlyname}{%
  \protect\glsabbrvsconlyfont{\the\glsshorttok}%
}
\newabbreviationstyle{long-only-short-sc-only}%
{%
  \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrsconlyname},
    sort={\the\glsshorttok},
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    text={\protect\glsabbrvsconlyfont{\the\glsshorttok}},%
    plural={\protect\glsabbrvsconlyfont{\the\glsshortpltok}},%
    description={\protect\glslongonlyfont{\the\glslongtok}}}%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \renewcommand*{\abbrvpluralsuffix}{\glsxtrsconlysuffix}%
  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvsconlyfont{##1}}%
  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvsconlyfont{##1}}%
  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
  \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
  \renewcommand*\glsxtrrevert[1]{\glsxtrsconlyrevert{##1}}%
  \renewcommand*{\glsxtrfullformat}[2]{%
    \glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\glsxtrfullplformat}[2]{%
    \glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\Glsxtrfullformat}[2]{%
    \Glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\Glsxtrfullplformat}[2]{%
    \Glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\GLSxtrfullformat}[2]{%
    \GLSxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\GLSxtrfullplformat}[2]{%
    \GLSxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
  }%
  \renewcommand*{\glsxtrinlinefullformat}[2]{%
    \glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
  }%
  \renewcommand*{\glsxtrinlinefullplformat}[2]{%
    \glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullformat}[2]{%
    \Glsxtrlongshortformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
  }%
  \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
    \Glsxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullformat}[2]{%
    \GLSxtrlongshortformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
  }%
  \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
    \GLSxtrlongshortplformat{##1}{##2}%
      {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
  }%
}
\newcommand*{\glsxtrsconlydescsort}{\glsxtronlydescsort}
\newcommand*{\glsxtrsconlydescname}{\glsxtronlydescname}
\newabbreviationstyle{long-only-short-sc-only-desc}%
{%
  \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
  \renewcommand*{\CustomAbbreviationFields}{%
    name={\glsxtrsconlydescname},
    sort={\glsxtrsconlydescsort},%
    first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
    firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
    text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
    plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
  }%
  \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    \glshasattribute{\the\glslabeltok}{regular}%
    {%
      \glssetattribute{\the\glslabeltok}{regular}{false}%
    }%
    {}%
  }%
}%
{%
  \GlsXtrUseAbbrStyleFmts{long-only-short-sc-only}%
}
\endinput
%%
%% End of file `glossaries-extra-abbrstyles.def'.
