From 85065bdead032a07c9a7b37784d07bced1f9d9c1 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 4 Nov 2023 03:02:41 +0000 Subject: CTAN sync 202311040302 --- .../contrib/highlightx/doc/highlightx-doc.pdf | Bin 180449 -> 180466 bytes .../contrib/highlightx/doc/highlightx-doc.tex | 6 +- macros/latex/contrib/highlightx/tex/highlightx.sty | 45 +- .../latex/contrib/nicematrix/nicematrix-code.dtx | 210 +- .../latex/contrib/nicematrix/nicematrix-code.pdf | Bin 953487 -> 959106 bytes .../latex/contrib/nicematrix/nicematrix-french.pdf | Bin 593655 -> 594905 bytes .../latex/contrib/nicematrix/nicematrix-french.tex | 40 +- macros/latex/contrib/nicematrix/nicematrix.pdf | Bin 610304 -> 610574 bytes macros/latex/contrib/nicematrix/nicematrix.tex | 16 +- macros/latex/contrib/unbtex/README.md | 8 +- macros/latex/contrib/unbtex/abntex2eng-alf.bst | 2162 -------------------- macros/latex/contrib/unbtex/unbtex-example.pdf | Bin 1177245 -> 995822 bytes macros/latex/contrib/unbtex/unbtex-example.tex | 68 +- .../contrib/unbtex/unbtex-example/apendice-a.tex | 6 +- .../contrib/unbtex/unbtex-example/capitulo1.tex | 16 +- .../contrib/unbtex/unbtex-example/capitulo2.tex | 199 +- .../contrib/unbtex/unbtex-example/capitulo3.tex | 19 +- .../contrib/unbtex/unbtex-example/capitulo4.tex | 7 +- .../unbtex/unbtex-example/figuras/blockdiagram.eps | Bin 86922 -> 0 bytes .../unbtex/unbtex-example/figuras/blockdiagram.pdf | Bin 0 -> 5714 bytes .../unbtex/unbtex-example/figuras/bodediagram.pdf | Bin 0 -> 13087 bytes .../unbtex/unbtex-example/figuras/circuito.pdf | Bin 0 -> 6905 bytes .../unbtex/unbtex-example/figuras/curva_diodo.pdf | Bin 0 -> 7406 bytes .../unbtex/unbtex-example/figuras/img-grafico.pdf | Bin 31319 -> 0 bytes .../unbtex/unbtex-example/figuras/img-marca.pdf | 1526 -------------- .../contrib/unbtex/unbtex-example/references.bib | 14 +- .../contrib/unbtex/unbtex-example/referencias.bib | 594 +++--- macros/latex/contrib/unbtex/unbtex.cls | 179 +- macros/latex/contrib/unbtex/unbtexcite-en.bst | 2159 +++++++++++++++++++ macros/latex/contrib/unbtex/unbtexcite-pt.bst | 2154 +++++++++++++++++++ 30 files changed, 5082 insertions(+), 4346 deletions(-) delete mode 100644 macros/latex/contrib/unbtex/abntex2eng-alf.bst delete mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.eps create mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.pdf create mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf create mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/circuito.pdf create mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/curva_diodo.pdf delete mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/img-grafico.pdf delete mode 100644 macros/latex/contrib/unbtex/unbtex-example/figuras/img-marca.pdf create mode 100644 macros/latex/contrib/unbtex/unbtexcite-en.bst create mode 100644 macros/latex/contrib/unbtex/unbtexcite-pt.bst (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf b/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf index 7409fe0f35..0f919a7455 100644 Binary files a/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf and b/macros/latex/contrib/highlightx/doc/highlightx-doc.pdf differ diff --git a/macros/latex/contrib/highlightx/doc/highlightx-doc.tex b/macros/latex/contrib/highlightx/doc/highlightx-doc.tex index 45115b309a..9519ae68fd 100644 --- a/macros/latex/contrib/highlightx/doc/highlightx-doc.tex +++ b/macros/latex/contrib/highlightx/doc/highlightx-doc.tex @@ -33,8 +33,8 @@ \hypersetup{pdfborder=0 0 0} \usepackage[margin=1.5cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.2} -\def\TPdate{3 septembre 2023} +\def\TPversion{0.1.3} +\def\TPdate{3 novembre 2023} \usepackage{tcolorbox} \tcbuselibrary{skins,hooks} \sethlcolor{lightgray!25} @@ -75,6 +75,8 @@ \texttt{\url{https://github.com/cpierquet/highlightx}} \\ \\ \texttt{Merci à Antal Spector-Zabusky pour le code dédié aux paragraphes !} + \\ + \texttt{Merci à Denis Bitouzé pour ses retours !} \end{tabular} \end{center} diff --git a/macros/latex/contrib/highlightx/tex/highlightx.sty b/macros/latex/contrib/highlightx/tex/highlightx.sty index caef0c0c56..9b8445404d 100644 --- a/macros/latex/contrib/highlightx/tex/highlightx.sty +++ b/macros/latex/contrib/highlightx/tex/highlightx.sty @@ -3,9 +3,10 @@ % licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{highlightx}[2023/09/03 0.1.2 Macros pour surligner du texte, meme en mode paragraphe] +\ProvidesPackage{highlightx}[2023/11/03 0.1.3 Macros pour surligner du texte, meme en mode paragraphe] %====HISTORIQUE +% v 0.1.3 Correction d'un bug avec le caractère ; (merci à Denis B.) % v 0.1.2 Version étoilée pour \genhighlightpar afin d'activer \NoAutoSpacing + retour du code paragraphe main levée % v 0.1.1 Suppression code paragraphe avec effet % v 0.1.0 Version initiale [fr] et [en] @@ -145,15 +146,15 @@ } \newcommand{\highlight@DoHighlight}{ - \fill[hlparhw] ($(begin highlight)+(-\surlignparoffsetH,1.05*\tmp@hauteur@char+\surlignparoffsetV)$) rectangle ($(end highlight)+(\surlignparoffsetH,-1.05*\tmp@profondeur@char-\surlignparoffsetV)$) ; + \fill[hlparhw] ($(begin highlight)+(-\surlignparoffsetH,1.05*\tmp@hauteur@char+\surlignparoffsetV)$) rectangle ($(end highlight)+(\surlignparoffsetH,-1.05*\tmp@profondeur@char-\surlignparoffsetV)$) } \newcommand{\highlight@BeginHighlight}{ - \coordinate (begin highlight) at (0,0) ; + \coordinate (begin highlight) at (0,0) } \newcommand{\highlight@EndHighlight}{ - \coordinate (end highlight) at (0,0) ; + \coordinate (end highlight) at (0,0) } \NewDocumentCommand\SurlignerTexte{ s O{} D<>{} }{% @@ -184,15 +185,15 @@ % \def\SOUL@preamble{% \begin{tikzpicture}[overlay, remember picture] - \highlight@BeginHighlight - \highlight@EndHighlight + \highlight@BeginHighlight ; + \highlight@EndHighlight ; \end{tikzpicture}% }% % \def\SOUL@postamble{% \begin{tikzpicture}[overlay, remember picture] - \highlight@EndHighlight - \highlight@DoHighlight + \highlight@EndHighlight ; + \highlight@DoHighlight ; \end{tikzpicture}% }% % @@ -200,7 +201,7 @@ \discretionary{% \SOUL@setkern\SOUL@hyphkern \SOUL@sethyphenchar - \tikz[overlay, remember picture] \highlight@EndHighlight ;% + {\tikz[overlay, remember picture] \highlight@EndHighlight ;}% }{% }{% \SOUL@setkern\SOUL@charkern @@ -211,7 +212,7 @@ \SOUL@setkern\SOUL@hyphkern \hbox{##1}% \discretionary{% - \tikz[overlay, remember picture] \highlight@EndHighlight ;% + {\tikz[overlay, remember picture] \highlight@EndHighlight ;}% }{% }{% \SOUL@setkern\SOUL@charkern @@ -225,12 +226,12 @@ \global\highlight@current =\y1 \endpgfextra (0,0) ; \ifdim\highlight@current < \highlight@previous - \highlight@DoHighlight - \highlight@BeginHighlight + \highlight@DoHighlight ; + \highlight@BeginHighlight ; \fi \end{tikzpicture}% \the\SOUL@syllable - \tikz[overlay, remember picture] \highlight@EndHighlight ;% + {\tikz[overlay, remember picture] \highlight@EndHighlight ;}% }% \SOUL@ } @@ -263,15 +264,15 @@ % \def\SOUL@preamble{% \begin{tikzpicture}[overlay, remember picture] - \highlight@BeginHighlight - \highlight@EndHighlight + \highlight@BeginHighlight ; + \highlight@EndHighlight ; \end{tikzpicture}% }% % \def\SOUL@postamble{% \begin{tikzpicture}[overlay, remember picture] - \highlight@EndHighlight - \highlight@DoHighlight + \highlight@EndHighlight ; + \highlight@DoHighlight ; \end{tikzpicture}% }% % @@ -279,7 +280,7 @@ \discretionary{% \SOUL@setkern\SOUL@hyphkern \SOUL@sethyphenchar - \tikz[overlay, remember picture] \highlight@EndHighlight ;% + {\tikz[overlay, remember picture] \highlight@EndHighlight ;}% }{% }{% \SOUL@setkern\SOUL@charkern @@ -290,7 +291,7 @@ \SOUL@setkern\SOUL@hyphkern \hbox{##1}% \discretionary{% - \tikz[overlay, remember picture] \highlight@EndHighlight ;% + {\tikz[overlay, remember picture] \highlight@EndHighlight ;}% }{% }{% \SOUL@setkern\SOUL@charkern @@ -304,12 +305,12 @@ \global\highlight@current =\y1 \endpgfextra (0,0) ; \ifdim\highlight@current < \highlight@previous - \highlight@DoHighlight - \highlight@BeginHighlight + \highlight@DoHighlight ; + \highlight@BeginHighlight ; \fi \end{tikzpicture}% \the\SOUL@syllable - \tikz[overlay, remember picture] \highlight@EndHighlight ;% + {\tikz[overlay, remember picture] \highlight@EndHighlight ;}% }% \SOUL@ } diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.dtx b/macros/latex/contrib/nicematrix/nicematrix-code.dtx index 4605970134..6e883a8b82 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-code.dtx +++ b/macros/latex/contrib/nicematrix/nicematrix-code.dtx @@ -17,8 +17,8 @@ % % \fi % \iffalse -\def\myfileversion{6.25} -\def\myfiledate{2023/10/24} +\def\myfileversion{6.25a} +\def\myfiledate{2023/11/03} % % %<*batchfile> @@ -900,15 +900,15 @@ version 2005/12/01 or later. % The dimension |\l_@@_columns_width_dim| will be used when the options specify % that all the columns must have the same width (but, if the key |columns-width| % is used with the special value |auto|, the boolean -% |l_@@_auto_columns_width_bool| also will be raised). +% |\l_@@_auto_columns_width_bool| also will be raised). % \begin{macrocode} \dim_new:N \l_@@_columns_width_dim % \end{macrocode} % % \bigskip % The dimension |\l_@@_col_width_dim| will be available in each cell which -% belongs to a column of fixed width: |w{...}{...}|, |W{...}{...}|, |p{}|, -% |m{}|, |b{}| but also |X| (when the actual width of that column is known, that +% belongs to a column of fixed width: |w{...}{...}|, |W{...}{...}|, |p{...}|, +% |m{...}|, |b{...}| but also |X| (when the actual width of that column is known, that % is to say after the first compilation). It's the width of that column. It will % be used by some commands |\Block|. A non positive value means that the column % has no fixed width (it's a column of type |c|, |r|, |l|, etc.). @@ -1044,7 +1044,7 @@ version 2005/12/01 or later. % In a cell, it will be possible to know whether we are in a cell of a column of % type |X| thanks to that flag. % \begin{macrocode} -\bool_new:N \l_@@_X_column_bool +\bool_new:N \l_@@_X_bool % \end{macrocode} % % \begin{macrocode} @@ -2493,7 +2493,7 @@ version 2005/12/01 or later. % |\tl_put_right:Nn| and not |\tl_set:Nn| (or |.tl_set:N|) because we don't want % a direct use of |up=...| erased by a absent |^{...}|. % \begin{macrocode} - down .code:n = \tl_put_right:Nn \l_@@_xdots_down_tl { #1 } , % modified 2023-08-09 + down .code:n = \tl_put_right:Nn \l_@@_xdots_down_tl { #1 } , up .code:n = \tl_put_right:Nn \l_@@_xdots_up_tl { #1 } , middle .code:n = \tl_put_right:Nn \l_@@_xdots_middle_tl { #1 } , % \end{macrocode} @@ -4425,7 +4425,7 @@ version 2005/12/01 or later. \seq_gclear:N \g_@@_pos_of_blocks_seq % \end{macrocode} % In fact, the sequence |\g_@@_pos_of_blocks_seq| will also contain the -% positions of the cells with a |\diagbox|. +% positions of the cells with a |\diagbox| and the |\multicolumn|. % % \begin{macrocode} \seq_gclear:N \g_@@_pos_of_stroken_blocks_seq @@ -4992,7 +4992,7 @@ version 2005/12/01 or later. \cs_new_protected:Npn \@@_make_preamble_i_i:n #1 { \str_if_eq:nnTF { #1 } | - { \@@_make_preamble_iii:n | } + { \use:c { @@ _ | } | } { \@@_make_preamble_i_ii:nn { } #1 } } % \end{macrocode} @@ -5149,7 +5149,7 @@ version 2005/12/01 or later. \str_set:Nn \l_@@_hpos_col_str { j } \tl_set:Nn \l_tmpa_tl { #1 } \@@_keys_p_column:V \l_tmpa_tl - \@@_make_preamble_ii_iv:nn { #2 } { minipage } + \@@_make_preamble_ii_iv:nnn { #2 } { minipage } { } } % \end{macrocode} % @@ -5161,9 +5161,10 @@ version 2005/12/01 or later. % % \medskip % The first argument is the width of the column. The second is the type of -% environment: |minipage| or |varwidth|. +% environment: |minipage| or |varwidth|. The third is some code added at the +% beginning of the cell. % \begin{macrocode} -\cs_new_protected:Npn \@@_make_preamble_ii_iv:nn #1 #2 +\cs_new_protected:Npn \@@_make_preamble_ii_iv:nnn #1 #2 #3 { \use:e { @@ -5192,6 +5193,7 @@ version 2005/12/01 or later. L { \exp_not:N \RaggedRight } R { \exp_not:N \RaggedLeft } } + #3 } { \str_if_eq:VnT \l_@@_vpos_col_str { m } \@@_center_cell_box: } { \str_if_eq:VnT \l_@@_hpos_col_str { si } \siunitx_cell_begin:w } @@ -5219,7 +5221,7 @@ version 2005/12/01 or later. % \end{macrocode} % % \medskip -% |#1| is the optional argument of |{minipage}| (or |{varwidth}|): |t| of |b|. +% |#1| is the optional argument of |{minipage}| (or |{varwidth}|): |t| or |b|. % Indeed, for the columns of type |m|, we use the value |b| here because there % is a special post-action in order to center vertically the box (see |#4|). % @@ -5260,7 +5262,11 @@ version 2005/12/01 or later. % \begin{macrocode} \dim_set:Nn \l_@@_col_width_dim { #2 } \@@_cell_begin:w - \begin { #7 } [ #1 ] { #2 } +% \end{macrocode} +% We use the form |\minipage|--|\endminipage| (|\varwidth|--|\endvarwidth|) for +% compatibility with \pkg{collcell} (2023-10-31). +% \begin{macrocode} + \use:c { #7 } [ #1 ] { #2 } % \end{macrocode} % The following lines have been taken from |array.sty|. % \begin{macrocode} @@ -5288,8 +5294,7 @@ version 2005/12/01 or later. % The following line has been taken from |array.sty|. % \begin{macrocode} \@finalstrut \@arstrutbox - % \bool_if:NT \g_@@_rotate_bool { \raggedright \hsize = 3 cm } - \end { #7 } + \use:c { end #7 } % \end{macrocode} % If the letter in the preamble is |m|, |#4| will be equal to % |\@@_center_cell_box:| (see just below). @@ -5302,35 +5307,50 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip +% +% \begin{macrocode} +\str_new:N \c_@@_ignorespaces_str +\str_set:Nx \c_@@_ignorespaces_str { \ignorespaces } +\str_remove_all:Nn \c_@@_ignorespaces_str { ~ } +% \end{macrocode} +% +% \bigskip +% In order to test whether a cell is empty, we test whether it begins by +% |\ignorespaces\unskip|. However, in some circunstancies, for example when +% |\collectcell| of \pkg{collcell} is used, the cell does not begin with +% |\ignorespaces|. In that case, we consider as not empty... +% +% First, we test if the next token is |\ignorespaces| and it's not very easy... % \begin{macrocode} -\cs_new_protected:Npn \@@_test_if_empty: \ignorespaces #1 +\cs_new_protected:Npn \@@_test_if_empty: { \peek_after:Nw \@@_test_if_empty_i: } +\cs_new_protected:Npn \@@_test_if_empty_i: + { + \str_set:Nx \l_tmpa_str { \token_to_meaning:N \l_peek_token } + \str_if_eq:NNT \l_tmpa_str \c_@@_ignorespaces_str + { \@@_test_if_empty:w } + } +\cs_new_protected:Npn \@@_test_if_empty:w \ignorespaces { \peek_meaning:NT \unskip { \tl_gput_right:Nn \g_@@_cell_after_hook_tl { \box_set_wd:Nn \l_@@_cell_box \c_zero_dim -% \end{macrocode} -% We put the following code in order to have a column with the correct width -% even when all the cells of the column are empty. -% \begin{macrocode} \skip_horizontal:N \l_@@_col_width_dim } } - #1 } -% \end{macrocode} -% +% \end{macrocode} +% % % \begin{macrocode} -\cs_new_protected:Npn \@@_test_if_empty_for_S: #1 +\cs_new_protected:Npn \@@_test_if_empty_for_S: { \peek_meaning:NT \__siunitx_table_skip:n { \tl_gput_right:Nn \g_@@_cell_after_hook_tl { \box_set_wd:Nn \l_@@_cell_box \c_zero_dim } } - #1 } % \end{macrocode} % @@ -5393,10 +5413,10 @@ version 2005/12/01 or later. \tl_set:Nn \l_tmpa_tl { #1 } \@@_keys_p_column:V \l_tmpa_tl \IfPackageLoadedTF { varwidth } - { \@@_make_preamble_ii_iv:nn { #2 } { varwidth } } + { \@@_make_preamble_ii_iv:nnn { #2 } { varwidth } { } } { \@@_error_or_warning:n { varwidth~not~loaded } - \@@_make_preamble_ii_iv:nn { #2 } { minipage } + \@@_make_preamble_ii_iv:nnn { #2 } { minipage } { } } } % \end{macrocode} @@ -5523,23 +5543,27 @@ version 2005/12/01 or later. % \begin{macrocode} \cs_new_protected:Npn \@@_make_preamble_S_i:n #1 { - \tl_gput_right:NV \g_@@_array_preamble_tl \g_@@_pre_cell_tl - \tl_gclear:N \g_@@_pre_cell_tl - \tl_gput_right:Nn \g_@@_array_preamble_tl + \IfPackageLoadedTF { siunitx } { - > { - \@@_cell_begin:w - \keys_set:nn { siunitx } { #1 } - \siunitx_cell_begin:w + \tl_gput_right:NV \g_@@_array_preamble_tl \g_@@_pre_cell_tl + \tl_gclear:N \g_@@_pre_cell_tl + \tl_gput_right:Nn \g_@@_array_preamble_tl + { + > { + \@@_cell_begin:w + \keys_set:nn { siunitx } { #1 } + \siunitx_cell_begin:w + } + c + < { \siunitx_cell_end: \@@_cell_end: } } - c - < { \siunitx_cell_end: \@@_cell_end: } - } % \end{macrocode} % We increment the counter of columns and then we test for the presence of a |<|. % \begin{macrocode} - \int_gincr:N \c@jCol - \@@_rec_preamble_after_col:n + \int_gincr:N \c@jCol + \@@_rec_preamble_after_col:n + } + { \@@_fatal:n { siunitx~not~loaded } } } % \end{macrocode} % @@ -5827,16 +5851,17 @@ version 2005/12/01 or later. \bool_if:NTF \l_@@_X_columns_aux_bool { \exp_args:Nne - \@@_make_preamble_ii_iv:nn + \@@_make_preamble_ii_iv:nnn { \l_@@_weight_int \l_@@_X_columns_dim } { minipage } + { \@@_no_update_width: } } { \tl_gput_right:Nn \g_@@_array_preamble_tl { > { \@@_cell_begin:w - \bool_set_true:N \l_@@_X_column_bool + \bool_set_true:N \l_@@_X_bool % \end{macrocode} % You encounter a problem on 2023-03-04: for an environment with |X| columns, % during the first compilations (which are not the definitive one), sometimes, @@ -5869,6 +5894,15 @@ version 2005/12/01 or later. % \end{macrocode} % % \medskip +% \begin{macrocode} +\cs_new_protected:Npn \@@_no_update_width: + { + \tl_gput_right:Nn \g_@@_cell_after_hook_tl + { \cs_set_eq:NN \@@_update_max_cell_width: \prg_do_nothing: } + } +% \end{macrocode} +% +% \medskip % For the letter set by the user with |vlines-in-sub-matrix| (vlism). % \begin{macrocode} \cs_new_protected:Npn \@@_make_preamble_vlism:n #1 @@ -6863,13 +6897,13 @@ version 2005/12/01 or later. % \end{macrocode} % We compute in |\g_tmpa_skip| the common width of the columns (it's a skip and % not a dimension). We use a global variable because we are in a cell of an -% |\halign| and because we have to use this variable in other cells (of the same +% |\halign| and because we have to use that variable in other cells (of the same % row). The affectation of |\g_tmpa_skip|, like all the affectations, must be % done after the |\omit| of the cell. % % \smallskip -% We give a default value for |\g_tmpa_skip| (|0 pt plus 1 fill|) but it will -% just after be erased by a fixed value in the concerned cases. +% We give a default value for |\g_tmpa_skip| (|0 pt plus 1 fill|) but we will +% add some dimensions to it. % \begin{macrocode} \skip_gset:Nn \g_tmpa_skip { 0 pt~plus 1 fill } \bool_if:NF \l_@@_auto_columns_width_bool @@ -6878,8 +6912,8 @@ version 2005/12/01 or later. \bool_lazy_and:nnTF \l_@@_auto_columns_width_bool { \bool_not_p:n \l_@@_block_auto_columns_width_bool } - { \skip_gset_eq:NN \g_tmpa_skip \g_@@_max_cell_width_dim } - { \skip_gset_eq:NN \g_tmpa_skip \l_@@_columns_width_dim } + { \skip_gadd:Nn \g_tmpa_skip \g_@@_max_cell_width_dim } + { \skip_gadd:Nn \g_tmpa_skip \l_@@_columns_width_dim } \skip_gadd:Nn \g_tmpa_skip { 2 \col@sep } } \skip_horizontal:N \g_tmpa_skip @@ -11967,11 +12001,11 @@ version 2005/12/01 or later. % \end{macrocode} % % \bigskip -% \section{The key corners} +% \section{The empty corners} % -% When the key |corners| is raised, the rules are not drawn in the -% corners. Of course, we have to compute the corners before we begin to draw the -% rules. +% When the key |corners| is raised, the rules are not drawn in the corners; they +% are not colored and |\TikzEveryCell| does not apply. Of course, we have to +% compute the corners before we begin to draw the rules. % % \begin{macrocode} \cs_new_protected:Npn \@@_compute_corners: @@ -12771,7 +12805,7 @@ version 2005/12/01 or later. % column, it's imperative. Otherwise, the process for the determination of the % widths of the columns will be wrong. % \begin{macrocode} - && ! \l_@@_X_column_bool + && ! \l_@@_X_bool } { \exp_args:Nee \@@_Block_iv:nnnnn } { \exp_args:Nee \@@_Block_v:nnnnn } @@ -12791,8 +12825,8 @@ version 2005/12/01 or later. % % |#1| is $i$ (the number of rows of the block), |#2| is $j$ (the number of % columns of the block), |#3| is the list of \textsl{key=values} pairs, |#4| are -% the tokens to put before the math mode and before the composition of the block -% and |#5| is the label (=content) of the block. +% the tokens to put before the potential math mode and before the composition of +% the block and |#5| is the label (=content) of the block. % \begin{macrocode} \cs_new_protected:Npn \@@_Block_iv:nnnnn #1 #2 #3 #4 #5 { @@ -12806,7 +12840,8 @@ version 2005/12/01 or later. { \int_use:N \c@jCol } { \int_eval:n { \c@iRow + #1 - 1 } } { \int_eval:n { \c@jCol + #2 - 1 } } - { \exp_not:n { ##1 } } { \exp_not:n { ##2 } } + { \exp_not:n { ##1 } } + { \exp_not:n { ##2 } } } } \box_gclear_new:c @@ -12877,7 +12912,7 @@ version 2005/12/01 or later. { \int_compare_p:nNn { #2 } = 1 } % \end{macrocode} % Remind that, when the column has not a fixed width, the dimension -% |\l_@@_col_width_dim| has the conventionnal value of $-1$~cm. +% |\l_@@_col_width_dim| has the conventional value of $-1$~cm. % \begin{macrocode} { \dim_compare_p:n { \l_@@_col_width_dim >= \c_zero_dim } } { ! \g_@@_rotate_bool } @@ -12956,30 +12991,38 @@ version 2005/12/01 or later. } } % \end{macrocode} -% If we are in a mono-row block, we take into account the height and the -% depth of that block for the height and the depth of the row. +% If we are in a mono-row block and if that block has no vertical option for the +% position\footnote{If the block has a key of a vertical position, that means +% that it has to be put in a vertical space determined by the \emph{others} +% cells of the row. Therefore there is no point creating space here. Moreover, +% that would lead to problems when a multi-row block with a position key such as +% |b| or |B|.}, we take into account the height and the depth of that block for the +% height and the depth of the row. % \begin{macrocode} - \int_compare:nNnT { #1 } = 1 - { - \dim_gset:Nn \g_@@_blocks_ht_dim - { - \dim_max:nn - \g_@@_blocks_ht_dim - { - \box_ht:c - { g_@@_ block _ box _ \int_use:N \g_@@_block_box_int _ box } - } - } - \dim_gset:Nn \g_@@_blocks_dp_dim - { - \dim_max:nn - \g_@@_blocks_dp_dim - { - \box_dp:c - { g_@@_ block _ box _ \int_use:N \g_@@_block_box_int _ box } - } - } - } + \str_if_eq:VnT \l_@@_vpos_of_block_str { c } + { + \int_compare:nNnT { #1 } = 1 + { + \dim_gset:Nn \g_@@_blocks_ht_dim + { + \dim_max:nn + \g_@@_blocks_ht_dim + { + \box_ht:c + { g_@@_ block _ box _ \int_use:N \g_@@_block_box_int _ box } + } + } + \dim_gset:Nn \g_@@_blocks_dp_dim + { + \dim_max:nn + \g_@@_blocks_dp_dim + { + \box_dp:c + { g_@@_ block _ box _ \int_use:N \g_@@_block_box_int _ box } + } + } + } + } \seq_gput_right:Nx \g_@@_blocks_seq { \l_tmpa_tl @@ -16157,6 +16200,15 @@ version 2005/12/01 or later. % \end{macrocode} % % \begin{macrocode} +\@@_msg_new:nn { siunitx~not~loaded } + { + siunitx~not~loaded\\ + You~can't~use~the~columns~'S'~because~'siunitx'~is~not~loaded.\\ + That~error~is~fatal. + } +% \end{macrocode} +% +% \begin{macrocode} \@@_msg_new:nn { ragged2e~not~loaded } { You~have~to~load~'ragged2e'~in~order~to~use~the~key~'\l_keys_key_str'~in~ diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.pdf b/macros/latex/contrib/nicematrix/nicematrix-code.pdf index f231477158..61c9ca2acb 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-code.pdf and b/macros/latex/contrib/nicematrix/nicematrix-code.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf index 9ceefb5bfc..5182d3d966 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-french.pdf and b/macros/latex/contrib/nicematrix/nicematrix-french.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex index 57c269627b..ea91158d20 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -179,7 +179,7 @@ chargé par défaut). \medskip \indexcommand{NiceMatrixOptions} -Une commande|\NiceMatrixOptions| est fournie pour régler les options (la portée +Une commande |\NiceMatrixOptions| est fournie pour régler les options (la portée des options fixées par cette commande est le groupe TeX courant : elles sont semi-globales). @@ -641,8 +641,8 @@ sont décrites ci-dessous (cf. \ref{horizontal-bloc} p.~\pageref{horizontal-bloc \interitem \textbf{On doit remarquer que, par défaut, les blocs ne créent pas d'espace}. Il -n'y a exception que pour les blocs mono-rangée et les blocs mono-colonne comme -expliqué plus loin. +n'y a exception que pour les blocs mono-rangée et les blocs mono-colonne dans +certaines conditions comme expliqué plus loin. \medskip @@ -733,7 +733,10 @@ Henri & 14 \\ \hline Pour les blocs mono-rangée, la hauteur (\emph{height}) et la profondeur (\emph{depth}) naturelles sont prises en compte pour la hauteur et la largeur de -la rangée en cours (comme le fait la commande standard |\multicolumn| de LaTeX). +la rangée en cours (comme le fait la commande standard |\multicolumn| de LaTeX), +sauf lorsqu'une option de placement vertical a été utilisée pour le bloc (une +des clés |t|, |b|, |v-center|, |T| et |B| décrites à la partie +\ref{vertical-pos-block}, p.~\pageref{vertical-pos-block}). \subsection{Les blocs mono-case} @@ -900,6 +903,8 @@ Rang & \Block[C]{1-3}{Premier groupe} & & & \Block{1-3}{Deuxième groupe} \\ \subsection{Positionnement vertical du contenu des blocs} +\label{vertical-pos-block} + Concernant le positionnement vertical, la commande |\Block| admet les clés |v-center|\footnote{Cette clé ne peut être nommée \texttt{c} car la clé \texttt{c} est déjà prise pour le positionnement horizontal.}, |t|, |b|, |T| et~|B|. @@ -1264,7 +1269,7 @@ standard |\hline| et la commande |\Hline| proposée par \pkg{nicematrix}. Par ailleurs, la commande |\Hline| admet entre crochets un argument optionnel qui est une liste de couples \textsl{clé=valeur} qui décrivent un filet. Pour la -description de ces clés, voir |custom-line| +description de ces clés, voir |custom-line|, p.~\pageref{custom-line}.\footnote{Remarque technique. Si l'utilisateur définit une commande par-dessus la commande |\Hline|, il doit veiller à ce qu'elle soit \emph{développable} au sens de TeX (en utilisant @@ -1486,7 +1491,7 @@ $\triangleright$ Les coins sont également pris en compte par les outils de coloriage dans le |\CodeBefore|. Ces outils ne colorient pas les cases qui sont dans les coins (cf.~p.~\pageref{color-in-code-before}). La commande |\TikzEveryCell| disponible dans le |\CodeAfter| et le |\CodeBefore| (cf. -p.~\pageref{TikzEveryCell}). tient également compte des coins. +p.~\pageref{TikzEveryCell}) tient également compte des coins. \subsection{La commande \textbackslash diagbox} @@ -3998,10 +4003,13 @@ Part A & the first part \\ \vspace{1cm} +\emph{Attention} : La fonctionnalité suivante est fragile et ne fonctionne pas +avec le cheminement |latex|--|dvips|--|ps2pdf|.\par\nobreak + La clé |code| de la commande |\SubMatrix| permet d'insérer du code après la création de la matrice. Elle a surtout pour vocation d'être utilisée pour insérer des instructions TikZ, sachant que, dans les instructions TikZ insérées -dans cette clé, les nœuds de la forme |i-j| et \verb+i-|j+ sont interprétés avec +dans cette clé, les nœuds de la forme \verb+i-|j+ sont interprétés avec |i| et |j| étant des numéros de ligne et colonne \emph{relatifs à la sous-matrice}.\footnote{Attention : la syntaxe \texttt{j\string|-i} n'est \emph{pas} autorisée.} @@ -4150,11 +4158,11 @@ $\begin{pNiceMatrix} exécute avec TikZ le chemin rectangulaire qui correspond à chaque case du tableau, avec comme paramètres TikZ l'argument de |\TikzEveryCell|. Cet argument doit être une liste de couples \textsl{clé=valeur} applicables à un chemin -TikZ. En fait, cette commande s'applique à chaque cellule du tableau, exceptées +TikZ. En fait, cette commande s'applique à chaque case du tableau, exceptées celles situées dans les rangées et colonnes extérieures (cf.~p.~\pageref{exterior})o et celles situées dans les coins vides (quand la clé |corners| est utilisée: cf.~p.~\pageref{corners}). Elle s'applique en fait à chaque bloc (sauf ceux qui ont la clé |transparent|) et ne s'applique pas aux -cellules situées dans ces blocs. +cases situées dans ces blocs. \medskip En fait, dans la liste des clés passée en argument on peut mettre une clé @@ -4195,10 +4203,10 @@ l'argument de |\TikzEveryCell|. \bigskip La commande |\TikzEveryCell| possède deux clés : \begin{itemize} -\item avec la clé \Definition{empty}, la commande ne s'applique qu'aux cellules +\item avec la clé \Definition{empty}, la commande ne s'applique qu'aux cases vides ; \item avec la clé \Definition{non-empty}, la commande ne s'applique qu'aux -cellules non vides. +cases non vides. \end{itemize} @@ -4587,7 +4595,7 @@ d'avoir les notes calées à gauche, ce qui est plaisant si on compose des tableaux dans l'esprit de \pkg{booktabs} (voir par exemple la table~\ref{t:tabularnote}, p.~\pageref{t:tabularnote}). \medskip -La clé |notes/enumitem-keys| fournie par \pkg{nicematrix} permet modifier ce +La clé |notes/enumitem-keys| fournie par \pkg{nicematrix} permet de modifier ce type de liste de \pkg{enumitem} (en utilisant en interne la commande |\setlist*| de \pkg{enumitem}). @@ -5947,7 +5955,7 @@ clé |draw-first| : |\Ddots[draw-first]|\rlap{.} \label{empty-cells} Une instruction comme |\Ldots|, |\Cdots|, etc. essaye de déterminer la première -case vide de part et d'autre de la case considérée. Quand la clé |corners| +case non vide de part et d'autre de la case considérée. Quand la clé |corners| (cf.~p.~\pageref{corners}) est utilisée, les coins qui sont déterminés sont composés de cases vides. Néanmoins, une case «vide» n'est pas nécessairement sans contenu dans le codage TeX. Les règles précises sont les suivantes : @@ -5967,13 +5975,13 @@ la dernière case (deuxième rangée et deuxième colonne) est vide. \medskip \item Pour les colonnes de type |p|, |m|, |b|, |V|\footnote{Les colonnes de type |V| sont fournies par l'extension \pkg{varwidth}: cf.~p.~\pageref{varwidth}} -ou |X|\footnote{Voir p.~\pageref{colonne-X}}, la case est vide si (et seulement +ou |X|\footnote{Pour les colonnes |X|, voir p.~\pageref{colonne-X}}, la case est vide si (et seulement si) son contenu dans le codage TeX est vide (il n'y a que des espaces entre les deux esperluettes |&|). \medskip -\item Pour les colonnes de type |c|, |l|, |r| ou |w{...}{...}|, la case est -vide si (et seulement si) son rendu TeX est de largeur nulle. +\item Pour les colonnes de type |c|, |l|, |r|, |w{...}{...}| ou |W{...}{...}|, +la case est vide si (et seulement si) son rendu TeX est de largeur nulle. \medskip \item Une case qui contient la commande |\NotEmpty| est non vide (et un nœud diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf index 0184a263f7..c7eeb39bf4 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix.pdf and b/macros/latex/contrib/nicematrix/nicematrix.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix.tex b/macros/latex/contrib/nicematrix/nicematrix.tex index 7eb1243f18..7eb8e1783e 100644 --- a/macros/latex/contrib/nicematrix/nicematrix.tex +++ b/macros/latex/contrib/nicematrix/nicematrix.tex @@ -616,9 +616,9 @@ There is also keys for the horizontal and vertical positions of the content of the block: cf.~\ref{horizontal-block} p.~\pageref{horizontal-block}. \interitem -{\bfseries One must remark that, by default, the commands |\Blocks| don't create space}. -There is exception only for the blocks mono-row and the blocks mono-column as -explained just below. +{\bfseries One must remark that, by default, the commands |\Blocks| don't create + space}. There is exception only for the blocks mono-column and the blocks +mono-row under some conditions as explained just below. \medskip In the following example, we have had to enlarge by hand the columns 2 and 3 @@ -707,7 +707,9 @@ Henry & 14 \\ \hline For the mono-row blocks, the natural height and depth are taken into account for the height and depth of the current row (as does a standard |\multicolumn| -of LaTeX). +of LaTeX), except when an option of vertical position has been used for the block +(one of the keys |t|, |b|, |v-center|, |T| and |B| described in the part +\ref{vertical-pos-block}, p.~\pageref{vertical-pos-block}). \subsection{The mono-cell blocks} @@ -873,6 +875,7 @@ Rank & \Block[C]{1-3}{First group} & & & \Block{1-3}{Second group} \\ \subsection{Vertical position of the content of the block} +\label{vertical-pos-block} For the vertical position, the command |\Blocks| accepts the keys |v-center|\footnote{That key could not have been named |c| since the key |c| @@ -3911,10 +3914,13 @@ p.~\pageref{submatrix-in-codebefore}. \vspace{1cm} +\emph{Caution} : The following functionnality is fragile and does not work with +the compilationn |latex|--|dvips|--|ps2pdf|.\par\nobreak + The key |code| of the command |\SubMatrix| allows the insertion of code after the construction of the submatrix. It's meant to be used to insert TikZ instructions because, in the TikZ instructions inserted by that code, the -nodes of the form |i-j| and \verb+i-|j+ are interpreted with |i| and |j| as +nodes of the form \verb+i-|j+ are interpreted with |i| and |j| as numbers of row and columns \emph{relative to the submatrix}.\footnote{Be careful: the syntax \verb+j|-i+ is \emph{not} allowed.} diff --git a/macros/latex/contrib/unbtex/README.md b/macros/latex/contrib/unbtex/README.md index 721f468df4..7f6a1eed57 100644 --- a/macros/latex/contrib/unbtex/README.md +++ b/macros/latex/contrib/unbtex/README.md @@ -1,6 +1,6 @@ # UnBTeX: A class for bachelor, master, and doctoral thesis at the University of Brasilia (UnB), Brazil. -Version 1.3.2 2023/10/20 +Version 1.3.3 2023/11/02 Copyright (C) 2021-2023 by Henrique C. Ferreira @@ -57,6 +57,12 @@ Here is a history of changes: references in ABNT style for documents written in English. 1.3.2 (2023-10-20): . Documentation and comments improvements + 1.3.3 (2023-11-02): + . The abtex2eng-alf.bst file has been replaced by the unbtexcite-en.bst + and unbtexcite-pt.bst files. These style files generate citations and + bibliographic references in accordance with updates to ABNT's NBR + 6023:2018 and NBR 10520:2023 standards + . Example and code comments improvements ## Overleaf diff --git a/macros/latex/contrib/unbtex/abntex2eng-alf.bst b/macros/latex/contrib/unbtex/abntex2eng-alf.bst deleted file mode 100644 index e1362c59d9..0000000000 --- a/macros/latex/contrib/unbtex/abntex2eng-alf.bst +++ /dev/null @@ -1,2162 +0,0 @@ -%% -%% abntex2eng-alf.bst bibliography style file is adapted from abntex-alf.bst -%% to format bibliographic references in ABNT style for documents written in -%% English, following sugestions avaliable at -%% -%% https://github.com/abntex/abntex2/issues/97 -%% -%% abntex2-alf.bst, v-1.9.7 laurocesar -%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/ -%% -%% 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 the abnTeX2 team, led by Lauro -%% César Araujo. Further information are available on -%% http://www.abntex.net.br/ -%% - -ENTRY - { address author - booktitle booksubtitle - chapter conference-number conference-year conference-location - edition editor editortype - dimensions furtherresp - howpublished illustrated institution - isbn issn journal key month note marginnote number organization - org-short pages pagename - publisher reprinted-from reprinted-text school - series subtitle section title type url urlaccessdate - volume year year-presented - abnt-and-type - abnt-doi abnt-dont-use-etal - abnt-etal-cite abnt-etal-list abnt-etal-text abnt-emphasize abnt-experimental - abnt-full-initials - abnt-last-names abnt-ldots-type - abnt-missing-year abnt-cite-style abnt-no-etal-label abnt-note - abnt-repeated-author-omit abnt-repeated-title-omit - abnt-show-options abnt-refinfo abnt-thesis-year abnt-url-package - abnt-title-command - abnt-verbatim-entry - iso-abbreviation iso-author-punctuation iso-date-place - }{}{ label extra.label year.label} - -%revision string -STRINGS { abnt.bst.revision } - -%general purpose strings -STRINGS { r s t } - -%variables needed to implement the various abnt options -STRINGS {abnt.etal.text abnt.emphasize previous.author previous.title} -INTEGERS {abnt.alf abnt.cite.style abnt.doi - abnt.experimental abnt.etal.cite abnt.etal.list - abnt.full.initials - abnt.last.names abnt.ldots.type - abnt.missing.year - abnt.refinfo abnt.repeated.author.omit abnt.repeated.title.omit - abnt.show.options abnt.and.type - abnt.title.command - abnt.thesis.year - abnt.url.package abnt.verbatim.entry - iso.abbreviation iso.author.punctuation iso.date.place - repeated.author} - -%needed for title formatting -INTEGERS { title.lenght title.pos first.word no.bracket} -STRINGS { title.char} - -%needed for controlling the sentence position -INTEGERS {output.state before.all mid.sentence after.sentence after.block } - -%needed for url identification -INTEGERS {url.type} - -%static values for options -%values for abnt.doi -FUNCTION {abnt.doi.expand.to.url} {#0} %expands a doi address to its url correspondent -FUNCTION {abnt.doi.link} {#1} %links doi to its url correspondent -FUNCTION {abnt.doi.leave.as.is} {#2} %shows doi as is, external viewer will have - %to know what to do with a "doi:" document - -%values for url types -FUNCTION {unknown.url} {#0} -FUNCTION {http.url} {#1} -FUNCTION {file.url} {#2} -FUNCTION {ftp.url} {#3} -FUNCTION {doi.url} {#4} -FUNCTION {mailto.url} {#5} - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - - -%output.nonnull decides what is written before the argument s, if a comma, period etc. -FUNCTION {output.nonnull} -{ 's := %the argument is written into s - output.state mid.sentence = - { ", " * write$ } %mid.sentence first write comma - { output.state after.block = - { add.period$ write$ newline$ } - { output.state before.all = 'write$ - { add.period$ " " * write$ } - if$} - if$ - mid.sentence 'output.state := } - if$ - s %now comes s -} -FUNCTION {output.nonnull.dash} -{ 's := %the argument is written into s - output.state mid.sentence = - { " --- " * write$ } %mid.sentence first write comma - { output.state after.block = - { add.period$ write$ newline$ write$} - { output.state before.all = 'write$ - { add.period$ " " * write$ } - if$} - if$ - mid.sentence 'output.state := } - if$ - s %now comes s -} -FUNCTION {output} %does nothing or calls output.nonull -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.dash} %does nothing or calls output.nonull -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.dash - if$ -} -FUNCTION {output.check} %like ouput, but complains if t empty -{ 't := - duplicate$ empty$ - { pop$ "campo " t * " vazio em " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} { " " * before.all 'output.state :=} - -FUNCTION {date.block} {new.block} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { abnt.emphasize "{" * swap$ * "}" * } - if$ -} - - -FUNCTION {tie.or.space.prefix} %if text length less than 3 chars. uses a tie -{ duplicate$ text.length$ #5 < - { "~" } - { " " } - if$ - swap$ -} - -FUNCTION {no.space} { { "" } swap$ } - - -FUNCTION {space.word} { " " swap$ * " " * } - -FUNCTION {bbl.and} -{ abnt.and.type #0 = {" and "} 'skip$ if$ -abnt.and.type #1 = {" \& "} 'skip$ if$} -FUNCTION {bbl.chapter} { "chap." } -FUNCTION {bbl.colon} {": "} -FUNCTION {bbl.editors} { "Eds." } -FUNCTION {bbl.editor} { "Ed." } -FUNCTION {bbl.edby} { "edited by" } -FUNCTION {bbl.edition} { "ed." } -FUNCTION {bbl.empty} {""} -FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$} -FUNCTION {bbl.doi.url} {"http://dx.doi.org/"} -FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$} -FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...} -{abnt.ldots.type -{abnt.ldots.type #1 = {"\ldots"} 'skip$ if$ -abnt.ldots.type #2 = {"$\ldots$"} 'skip$ if$ -abnt.ldots.type #3 = {"{...}"} 'skip$ if$} -{""} %for #0 use nothing -if$} -FUNCTION {bbl.master} { "Master of Science" } -FUNCTION {bbl.missing.year} -{abnt.missing.year -{"[s.d.]"} %#1 -{""} %#0 -if$} -FUNCTION {bbl.monography} { "Monography" } -FUNCTION {bbl.mthesis} { "Dissertation" } -FUNCTION {bbl.no.address} {"[S.l.]"} -FUNCTION {bbl.no.address.no.publisher} {"[S.l.: s.n.]"} -FUNCTION {bbl.no.publisher} {"[s.n.]"} -FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ } -FUNCTION {bbl.nr} { "n." } -FUNCTION {bbl.of} { "of" } -FUNCTION {bbl.phd} { "Doctor in Philosophy" } -FUNCTION {bbl.phdthesis} { "Thesis" } -FUNCTION {bbl.pages} -{pagename empty$ -{ "p." } -{pagename} -if$ -} -FUNCTION {bbl.page} { bbl.pages } -FUNCTION {bbl.reprint} {"Reprint from"} -FUNCTION {bbl.semicolon} { "; "} -FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"} -FUNCTION {bbl.techrep} { "Technical Report" } -FUNCTION {bbl.url.accessdate} -{iso.abbreviation { "Cited "} {"Accessed on: "} if$} -FUNCTION {bbl.url.available} -{ iso.abbreviation {"Available from Internet: "} {"Available at: "} if$} -FUNCTION {bbl.void} {""} -FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ } - - -MACRO {jan} {"Jan."} -MACRO {feb} {"Feb."} -MACRO {mar} {"Mar."} -MACRO {apr} {"Apr."} -MACRO {may} {"May"} -MACRO {jun} {"Jun."} -MACRO {jul} {"Jul."} -MACRO {aug} {"Aug."} -MACRO {sep} {"Sep."} -MACRO {oct} {"Oct."} -MACRO {nov} {"Nov."} -MACRO {dec} {"Dec."} - - -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} -FUNCTION {str.to.int} -{ duplicate$ is.num - {chr.to.int$ #48 -} - 'skip$ - if$ -} -FUNCTION {bibinfo.check} %usage: field "field" bibinfo.check -{ swap$ duplicate$ missing$ - {pop$ pop$ ""} - { duplicate$ empty$ - {swap$ pop$} - {swap$ pop$} - if$ - } - if$ -} -FUNCTION {bibinfo.warn} -{ swap$ - duplicate$ missing$ - {swap$ "faltando " swap$ * " em " * cite$ * warning$ pop$ ""} - { duplicate$ empty$ - {swap$ "vazio " swap$ * " em " * cite$ * warning$} - {swap$ pop$} - if$ - } - if$ -} - -FUNCTION {write.field.verbatim} -{ -duplicate$ missing$ - {pop$ pop$} - { - s text.length$ #0 > - {s "," * newline$ write$ "" 's :=} - 'skip$ - if$ - swap$ - "={" * swap$ * "}" * - s swap$ * 's := - } -if$ -} - -FUNCTION {write.entry.verbatim1} -{ - "address" address write.field.verbatim - "author" author write.field.verbatim - "booktitle" booktitle write.field.verbatim - "booksubtitle" booksubtitle write.field.verbatim - "chapter" chapter write.field.verbatim - "conference-number" conference-number write.field.verbatim - "conference-year" conference-year write.field.verbatim - "conference-location" conference-location write.field.verbatim - "edition" edition write.field.verbatim - "editor" editor write.field.verbatim - "editortype" editortype write.field.verbatim - "dimensions" dimensions write.field.verbatim - "furtherresp" furtherresp write.field.verbatim - "howpublished" howpublished write.field.verbatim - "illustrated" illustrated write.field.verbatim - "institution" institution write.field.verbatim - "isbn" isbn write.field.verbatim - "issn" issn write.field.verbatim - "journal" journal write.field.verbatim -} -FUNCTION {write.entry.verbatim2} -{ - "key" key write.field.verbatim - "month" month write.field.verbatim - "note" note write.field.verbatim - "marginnote" marginnote write.field.verbatim - "number" number write.field.verbatim - "organization" organization write.field.verbatim - "org-short" org-short write.field.verbatim - "pages" pages write.field.verbatim - "pagename" pagename write.field.verbatim - "publisher" publisher write.field.verbatim - "reprinted-from" reprinted-from write.field.verbatim - "reprinted-text" reprinted-text write.field.verbatim - "school" school write.field.verbatim - "series" series write.field.verbatim - "subtitle" subtitle write.field.verbatim - "section" section write.field.verbatim - "title" title write.field.verbatim - "type" type write.field.verbatim -} -FUNCTION {write.entry.verbatim3} -{ - "url" url write.field.verbatim - "urlaccessdate" urlaccessdate write.field.verbatim - "volume" volume write.field.verbatim - "year" year write.field.verbatim - "abnt-emphasize" abnt-emphasize write.field.verbatim - "abnt-experimental" abnt-experimental write.field.verbatim - "abnt-doi" abnt-doi write.field.verbatim - "abnt-dont-use-etal" abnt-dont-use-etal write.field.verbatim - "abnt-full-initials" abnt-full-initials write.field.verbatim - "abnt-ldots-type" abnt-ldots-type write.field.verbatim - "abnt-missing-year" abnt-missing-year write.field.verbatim - "abnt-cite-style" abnt-cite-style write.field.verbatim - "abnt-no-etal-label" abnt-no-etal-label write.field.verbatim - %abnt-note - "abnt-repeated-author-omit" abnt-repeated-author-omit write.field.verbatim - "abnt-repeated-title-omit" abnt-repeated-title-omit write.field.verbatim - "abnt-show-options" abnt-show-options write.field.verbatim - "abnt-refinfo" abnt-refinfo write.field.verbatim - "abnt-thesis-year" abnt-thesis-year write.field.verbatim - "abnt-title-command" abnt-title-command write.field.verbatim - "abnt-url-package" abnt-url-package write.field.verbatim - "abnt-verbatim-entry" abnt-verbatim-entry write.field.verbatim -} - -FUNCTION {write.entry.verbatim} -{"" 's := "" 't := - abnt.verbatim.entry - {"{\footnotesize\begin{verbatim}" newline$ write$ - "@" type$ * "{" * cite$ * 's := - write.entry.verbatim1 - write.entry.verbatim2 - write.entry.verbatim3 - s "" = {"}"} {s "}" *} if$ - newline$ write$ - "\end{verbatim}}" newline$ write$} - {newline$} -if$} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {get.person} {"{vv }{ll}{, jj}{, ff}" format.name$} -FUNCTION {get.last.name} {#1 "{ll}" format.name$} -FUNCTION {get.first.name} {#1 "{ff}" format.name$} -FUNCTION {get.von} {#1 "{vv}" format.name$} -FUNCTION {get.jr} {#1 "{jj}" format.name$} -FUNCTION {is.composed.von} - {get.person - get.von duplicate$ empty$ {pop$ #0} - {duplicate$ - get.first.name empty$ not - swap$ get.last.name empty$ not and - } if$ - } - -FUNCTION {recompose.name} - {get.person duplicate$ duplicate$ duplicate$ - get.von #1 "{ll }" format.name$ swap$ - get.last.name * - swap$ #1 "{, ff}" format.name$ * - swap$ get.von #1 "{ ff}" format.name$ * - } - - -FUNCTION {format.single.name} -{ -s nameptr get.person 'r := -abnt.last.names - {r #1 "{ll}{ jj}" format.name$ "u" change.case$ - abnt.full.initials - {r #1 "{, ff}{ vv}" format.name$ *} - {r #1 "{, f.}{ vv}" format.name$ *} - if$} - {%r #1 is.composed.von {r #1 recompose.name 'r :=} 'skip$ if$ - r #1 "{ll}" format.name$ - #1 "{ll}" format.name$ - r #1 "{ jj}" format.name$ * "u" change.case$ - abnt.full.initials - {r #1 "{, ff}{ vv}" format.name$ * - r #1 "{ll}" format.name$ - #1 "{ ff}{ vv}" format.name$ *} - {iso.author.punctuation - {r #1 "{, f{}}{ vv}" format.name$ *} - {r #1 "{, f.}{ vv}" format.name$ *} if$ - r #1 "{ll}" format.name$ - #1 "{ f.}{ vv}" format.name$ *} - if$} - -if$ -} -FUNCTION {format.names} -{ 'bibinfo := duplicate$ empty$ 'skip$ - {'s := - "" 't := - #1 'nameptr := s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { format.single.name - bibinfo bibinfo.check - 't := - nameptr #1 > - {nameptr #1 #1 + = numnames abnt.etal.list > and - {abnt.etal.list {"others" 't := #1 'namesleft :=} 'skip$ if$ } - 'skip$ - if$ - namesleft #1 > - { "; " * t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { bbl.etal *} - { "; " * t *} - if$ } - if$ } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := } - while$ - } if$ -} - -%from plain.bst -FUNCTION {format.names.plain} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #20 > - { "," * } - 'skip$ - if$ - t "others" = - { bbl.etal * } - { bbl.and * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} -FUNCTION {format.names.ed} {format.names} - -FUNCTION {format.authors} -{ -author "author" format.names -} - -FUNCTION {format.authors.plain} -{ -author format.names.plain -} - -FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - - -FUNCTION {format.book.pages} -{ pages "pages" bibinfo.check duplicate$ empty$ - 'skip$ - { "~" * bbl.pages * } - if$ -} -FUNCTION {format.dimensions} -{ dimensions empty$ - 'skip$ - { dimensions output} - if$ -} -FUNCTION {format.furtherresp} -{ furtherresp empty$ - 'skip$ - { furtherresp output} - if$ -} -FUNCTION {format.illustrated} -{ illustrated missing$ - 'skip$ - {illustrated empty$ - {"il." output} - {illustrated output} - if$} - if$ -} -FUNCTION {format.isbn} -{ isbn "isbn" bibinfo.check duplicate$ empty$ - 'skip$ - {new.block "ISBN " swap$ *} - if$ -} - -FUNCTION {format.issn} -{ issn "issn" bibinfo.check - duplicate$ empty$ 'skip$ - {new.block "ISSN " swap$ *} - if$ -} - -FUNCTION {format.note} -{ note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check } - if$ -} - -FUNCTION {format.howpublished} -{ howpublished empty$ - { "" } - { howpublished #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ } - if$ - howpublished #2 global.max$ substring$ * "howpublished" bibinfo.check } - if$ -} - - -%ABNT styles require that the title acts as an author if -%typical author fields are absent. In this case the first -%word is uppercase. Our main problem is to establish what -%the first word actually is since portuguese uses accents. -%For example: Fun{\c c}\ão (Função) is a whole word but contains a -%space, but if we write Fun\c{c}\ão \c is converted to uppercase... -%You get the problem, don't you? -FUNCTION {format.title.as.author} -{ 's := %holds the title - #1 'title.pos := %our position in the title - #1 'first.word := %boolean, true if we already have the first word - #1 'no.bracket := %boolean, false if we are inside a {} - "" 't := %holds the first title.pos characters of the title - {first.word} - {s title.pos #1 substring$ 'title.char := - %checks if the character is a { - title.char "{" = {#0 'no.bracket :=} 'skip$ if$ - %if we are in a bracket - no.bracket 'skip$ {title.char "}" = {#1 'no.bracket :=} 'skip$ if$} if$ - type$ "journalpart" = - {title.char "." = title.char ":" = or title.char "!" = or - title.char "," = or title.char ";" = or title.char "?" = or} - {title.char " " =} - if$ s t = or no.bracket and - {#0 'first.word := - t title.char * "u" change.case$ - title.pos #1 + 'title.pos := - s title.pos global.max$ substring$ * 's :=} - {title.pos #1 + 'title.pos := t title.char * 't :=} - if$ - } - while$ -s -} - - -%compares current title with the title of the previous entry -FUNCTION {compare.title} -{abnt.repeated.title.omit - {duplicate$ "" = 'skip$ - {duplicate$ previous.title = repeated.author and - {duplicate$ 'previous.title := pop$ bbl.same.field} - {duplicate$ 'previous.title :=} - if$} - if$} - 'skip$ - if$ -} - -FUNCTION {apply.title.command} -{abnt.title.command - {duplicate$ empty$ 'skip$ - {"\bibtextitlecommand{" type$ * "}{" * swap$ * "}" *} - if$} - 'skip$ if$ -} - -FUNCTION {format.title} -{author empty$ editor empty$ and organization empty$ and - {title format.title.as.author} - {title duplicate$ empty$ {pop$ ""} {"t" change.case$} if$} - if$ - subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$ - apply.title.command - compare.title -} - -FUNCTION {n.dashify} -{ - 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} { bbl.in " " * } - -FUNCTION {format.month} -{ month empty$ 'skip$ - {month "month" bibinfo.check} - if$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { bbl.missing.year } - { "existe o campo month (mês) mas não o campo year (ano) em " cite$ * warning$ month} - if$} - { month empty$ - { year n.dashify} - { month " " * year * } - if$} - if$ -} -FUNCTION {format.btitle} -{author empty$ editor empty$ and organization empty$ and - {title format.title.as.author "title" bibinfo.check duplicate$ empty$ 'skip$ {} if$ - subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$} - {title "title" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$ - subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$} -if$ -apply.title.command -compare.title -} -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "não posso usar ambos " swap$ * " os campos em " * cite$ * warning$ } - if$ -} - -FUNCTION {format.volume} %leaves formatted or empty volume on the stack -{volume duplicate$ empty$ - 'skip$ - {volume #1 #1 substring$ is.num - {bbl.volume swap$ tie.or.space.prefix * *} - 'skip$ - if$} - if$ -} - -FUNCTION {format.number} %leaves formatted or empty number on the stack -{ number duplicate$ empty$ - 'skip$ - {bbl.number swap$ tie.or.space.prefix * *} - if$ -} - -FUNCTION {format.patent.number} -{ number -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { format.volume - number empty$ 'skip$ {output format.number} if$ - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ bbl.of space.word * swap$ - emphasize * } - if$ - } - if$ -} - -FUNCTION {format.bvolume.if.no.series} -{ series empty$ - { format.bvolume } - { "" } - if$ -} - - -FUNCTION {format.number.or.volume} -{number empty$ - {format.volume} - {number} %we use the pure number here without leading "n." - if$ -} - -FUNCTION {format.volume.and.number} -{format.volume output - format.number -} - -FUNCTION {format.volume.number.series} -{ number empty$ volume empty$ and - { series empty$ - { "" } - {" (" series "series" bibinfo.check * ")" *} - if$} - { series empty$ - {""} %{ format.number.or.volume } - { " (" series "series" bibinfo.check * ", " * - format.number.or.volume * ")" * } - if$ } - if$ -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -FUNCTION {format.edition} -{ edition duplicate$ empty$ 'skip$ - {output.state mid.sentence = { "l" } { "t" } if$ change.case$ - "edition" bibinfo.check - edition #1 #1 substring$ is.num {". " * bbl.edition * } 'skip$ if$} - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ } - while$ - multiresult -} -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { n.dashify bbl.pages swap$} - { bbl.page swap$ } - if$ - tie.or.space.prefix "pages" bibinfo.check * * } - if$ -} -FUNCTION {format.journal.pages} -{ pages empty$ {""} - { pages n.dashify bbl.pages - swap$ tie.or.space.prefix "pages" bibinfo.check * *} - if$ -} - -FUNCTION {get.url.type} -{s #1 #5 substring$ "http:" = {http.url} - {s #1 #6 substring$ "https:" = {http.url} - {s #1 #5 substring$ "file:" = {file.url} - {s #1 #4 substring$ "ftp:" = {ftp.url} - {s #1 #4 substring$ "doi:" = {doi.url} - {s #1 #7 substring$ "mailto:" = {mailto.url} {unknown.url} if$} - if$} - if$} - if$} - if$} - if$ - 'url.type := -} - -FUNCTION {expand.doi} -{s -url.type doi.url = - {#5 global.max$ substring$ bbl.doi.url swap$ *} - 'skip$ if$ -} - -INTEGERS {url.pos url.length} -FUNCTION {filter.url.tex} -{s text.length$ #1 + 'url.length := - #1 'url.pos := "" 't := - {url.pos url.length <} - {s url.pos #1 substring$ - duplicate$ "_" = {pop$ "\underline{\ }" } 'skip$ if$ - duplicate$ "%" = {pop$ "\%" } 'skip$ if$ - duplicate$ "&" = {pop$ "\&" } 'skip$ if$ - duplicate$ "~" = {pop$ "\~{}" } 'skip$ if$ - duplicate$ "/" = {pop$ "\-/" } 'skip$ if$ - duplicate$ "." = {pop$ "\-." } 'skip$ if$ - duplicate$ "\" = {pop$ "{\textbackslash}" } 'skip$ if$ - duplicate$ "#" = {pop$ "\#" } 'skip$ if$ - duplicate$ "_" = {pop$ "\_" } 'skip$ if$ - t swap$ * 't := - url.pos #1 + 'url.pos := - } - while$ -t -} -FUNCTION {filter.url.html} -{s text.length$ #1 + 'url.length := - #1 'url.pos := "" 't := - {url.pos url.length <} - {s url.pos #1 substring$ - duplicate$ "%" = {pop$ "\%" } 'skip$ if$ - duplicate$ "#" = {pop$ "\#" } 'skip$ if$ - duplicate$ "_" = {pop$ "\_" } 'skip$ if$ - t swap$ * 't := - url.pos #1 + 'url.pos := - } - while$ -t -} - -FUNCTION {compose.url} -{'s := - get.url.type - bbl.url.available - abnt.url.package #0 = - { "$<$" * - abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$ - * "$>$" *} 'skip$ if$ - abnt.url.package #1 = - { "\url{" * filter.url.html * "}" *} 'skip$ if$ - abnt.url.package #2 = - {url.type http.url = - {"\htmladdnormallink{$<$" * filter.url.tex * "$>$}{" * filter.url.html * "}" *} - 'skip$ if$ - url.type doi.url = url.type ftp.url = or url.type mailto.url = or - {"\htmladdnormallink{$<$" * - abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$ - * "$>$}{" * - abnt.doi abnt.doi.leave.as.is = {s} 'expand.doi if$ - * "}" * } - 'skip$ if$ - url.type unknown.url = - {"$<$" * filter.url.tex * "$>$" *} - 'skip$ if$} 'skip$ if$ -} -FUNCTION {format.url} -{ url empty$ 'skip$ - {url compose.url output new.sentence } - if$ - urlaccessdate duplicate$ empty$ 'skip$ - { bbl.url.accessdate swap$ *} - if$ - "urlaccessdate" bibinfo.check output new.sentence -} - -FUNCTION {format.conference.info} -{ conference-number empty$ - 'skip$ - {conference-number "." * output} - if$ - conference-year empty$ - 'skip$ - {conference-year output} - if$ - conference-location empty$ - 'skip$ - {conference-location output} - if$ - new.sentence -} - - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check } - if$ - chapter tie.or.space.prefix "chapter" bibinfo.check * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ } - if$ -} - -FUNCTION {format.booktitle} -{author empty$ editor empty$ and organization empty$ and - {booktitle format.title.as.author "booktitle" bibinfo.check duplicate$ empty$ 'skip$ {} if$ - booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ * - apply.title.command} if$} - {booktitle "booktitle" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$ - booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ * - apply.title.command} if$} -if$ -} -FUNCTION {format.editors} -{ editor empty$ - {"inbook" type$ = 'bbl.same.field 'skip$ if$} - {author empty$ - {editor "editor" format.names " (" * - editortype empty$ {bbl.editor} {editortype} if$ - ")" * * } - {"inbook" type$ = - {bbl.same.field } - {editor "editor" format.names " (" * - editortype empty$ {bbl.editor} {editortype} if$ - ")" * *} - if$} - if$} - if$ -} -FUNCTION {format.in.ed.booktitle} -{ editor empty$ - {organization empty$ not author empty$ not and %if one of two not empty - {word.in organization "u" change.case$ * output - format.conference.info - booktitle empty$ {""} {new.sentence format.booktitle} if$} - {word.in - organization empty$ author empty$ and 'skip$ - {"inbook" type$ = {bbl.same.field * output new.sentence ""} - 'skip$ if$ } if$ - booktitle empty$ 'skip$ {format.booktitle *} if$} - if$} - {word.in format.editors * output - booktitle empty$ {""} {new.sentence format.booktitle} if$} - if$ - output - new.sentence -} -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "todos os campos relevantes estão vazios ou faltando em " cite$ * warning$ } - 'skip$ - if$ -} -FUNCTION {format.type} -{ type "type" bibinfo.check - duplicate$ empty$ 'skip$ - {new.block "" swap$ * } - if$ -} - - -FUNCTION {format.year} -{year empty$ - { "campo year vazio ou faltando em " cite$ * - abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$ - abnt.missing.year {", " } {""} if$ bbl.missing.year *} - {year n.dashify "year" bibinfo.check} -if$ -} - -FUNCTION {format.year.presented} -{year-presented empty$ - {""} - {year-presented n.dashify} -if$ -} - -FUNCTION {format.field.address} -{ 't := - address empty$ organization empty$ and url empty$ and t empty$ and - {bbl.no.address.no.publisher} - {address empty$ - %if an url is present we don't give a missing address "[s.l.]" notice - {url empty$ {bbl.no.address ": "} {"" ""} if$} - {address ": "} - if$ - t empty$ - {%if an organization is present then it is OK not to have a publisher - organization empty$ {* bbl.no.publisher * } 'pop$ if$} - {* t * } - if$} - if$ -} - -FUNCTION {format.address} -{address empty$ - { bbl.no.address} - { address} - if$ -} - -FUNCTION {format.publisher.address} -{ publisher "publisher" bibinfo.check format.field.address} - -FUNCTION {format.publisher.address.relax} -{publisher empty$ address empty$ and {""} - {publisher "publisher" bibinfo.check format.field.address} -if$} - -FUNCTION {format.organization.address} -{ organization "organization" bibinfo.check format.field.address} - -%retains current authorship for future use -FUNCTION {compare.authorship} -{abnt.repeated.author.omit - {duplicate$ "" = 'skip$ - {duplicate$ previous.author = - {duplicate$ 'previous.author := - pop$ bbl.same.field - #1 'repeated.author :=} - {duplicate$ 'previous.author := - #0 'repeated.author :=} - if$} - if$} - 'skip$ - if$ -} - -FUNCTION {format.author.or.organization} -{ author empty$ - { organization empty$ 'skip$ - { organization "u" change.case$ "organization" bibinfo.check output} - if$} - { format.authors output.nonnull } - if$ - compare.authorship -} - - -FUNCTION {format.editor.or.organization} -{ editor empty$ - { organization empty$ 'skip$ - { organization "u" change.case$ "organization" bibinfo.check output} - if$} - { format.editors output.nonnull } - if$ - compare.authorship -} - -FUNCTION {format.author.or.editor.or.organization} -{ author empty$ - { editor empty$ - { organization empty$ - 'skip$ - { organization "u" change.case$ "organization" bibinfo.check output} - if$} - { format.editors output.nonnull } - if$} - { format.authors output.nonnull } - if$ - compare.authorship -} - -FUNCTION {format.reprint} -{ reprinted-text missing$ - {""} - {reprinted-text empty$ - {bbl.reprint} {reprinted-text} if$ - bbl.colon *} - if$ -} - -FUNCTION {format.journal} -{ - format.reprint - journal emphasize * -} - - -%generates the first label in \abntrefinfo to be used with \citeonline -FUNCTION {format.names.for.label1} %abnt-alf only -{ 's := "" 't := - #1 'nameptr := s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - {abnt.last.names - {s nameptr "{ll}{ jj}" format.name$} - {s nameptr "{ll}" format.name$ #1 "{ll}" format.name$ - s nameptr "{ jj}" format.name$ *} - if$ - 't := - nameptr #1 > - {namesleft #1 > - { numnames abnt.etal.cite > abnt.etal.cite #0 = not and - {#0 'namesleft := abnt.etal.cite {bbl.etal *} 'skip$ if$} - {", " * t * } if$ } - { t "others" = - {abnt.etal.cite {bbl.etal *} 'skip$ if$} - {numnames nameptr = - {bbl.and * t *} - 'skip$ if$} - if$ - } - if$ } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := } - while$ -} - -%generates the second label in \abntrefinfo to be used with \cite -FUNCTION {format.names.for.label2} %abnt-alf only -{ 's := "" 't := - #1 'nameptr := s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - {abnt.last.names - {s nameptr "{ll}{ jj}" format.name$} - {s nameptr "{ll}" format.name$ #1 "{ll}" format.name$ - s nameptr "{ jj}" format.name$ *} - if$ - abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ 't := - nameptr #1 > - {namesleft #1 > - { numnames abnt.etal.cite > - {#0 'namesleft := abnt.etal.cite {bbl.etal *} 'skip$ if$} - {"; " * t * } if$ } - { t "OTHERS" = t "others" = or - {abnt.etal.cite {bbl.etal *} 'skip$ if$} - {numnames nameptr = { bbl.semicolon * t *} 'skip$ if$} - if$ - } - if$ } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := } - while$ -} - -FUNCTION {format.title.for.label} -{ 's := - #1 'title.pos := #1 'first.word := - "" 't := - {first.word} - {s title.pos #1 substring$ 'title.char := - title.char "." = title.char ":" = or title.char ";" = or - title.char "," = or title.char " " = or s t = or - {#0 'first.word := - title.pos #1 + 'title.pos :=} - {title.pos #1 + 'title.pos := t title.char * 't :=} - if$ - } - while$ -s t = %title equals first word, dont use bbl.ldots - {t "}{" * t - abnt.cite.style #0 = {"u" change.case$ * } 'skip$ if$} - {t bbl.ldots * "}{" * t - abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ * bbl.ldots *} -if$ -} - -%cvs keys have the general form $key: value $ -INTEGERS {key.pos value.pos} -FUNCTION {extract.cvs.key} %we borrow the functionality of format.title.for.label -{ 's := %holds the entire cvs string - #1 'key.pos := - #0 'value.pos := %0= between first $ and :, 1=between : and second $, 2= at the end - "" 't := %holds the resulting value - {value.pos #0 = value.pos #1 = or} - { s key.pos #1 substring$ 'title.char := - value.pos #0 = - { title.char ":" = {#1 'value.pos := key.pos #1 + 'key.pos :=} 'skip$ if$} - { title.char "$" = - {#2 'value.pos :=} - {t title.char * 't :=} - if$} - if$ - key.pos #1 + 'key.pos := - } - while$ - t -} - -%generates and extended label of type {Author}{AUTHOR}{YEAR} -%for abnt.cite.style=1 they will be of type {Author}{Author}{YEAR} -%final result is placed into variable label -FUNCTION {calc.extended.label} -{ "{" - author empty$ not - {author format.names.for.label1 * "}{" * author format.names.for.label2 *} - {editor empty$ not - {editor format.names.for.label1 * "}{" * editor format.names.for.label2 *} - {org-short empty$ not - {org-short * "}{" * org-short "u" change.case$ *} - {organization empty$ not - {organization * "}{" * organization "u" change.case$ *} - {title empty$ not - {title format.title.for.label *} - {"nada}{NADA" *} - if$} - if$} - if$} - if$} - if$ - "}{" * - year empty$ 'skip$ {year *} if$ - 'label := %place the stack into label - % final } will be placed in reverse.pass -} -%generates and simple label of type "Author YEAR" -%final result is placed onto the stack -FUNCTION {calc.simple.label} -{ author empty$ not - {author format.names.for.label1} - {editor empty$ not - {editor format.names.for.label1} - {organization empty$ not - {organization} - {title empty$ not - {title} - {""} - if$} - if$} - if$} - if$ - year empty$ 'skip$ {" " * year *} if$ -} - -FUNCTION {output.bibitem} -{ newline$ - abnt.alf - {"\bibitem[" write$ - calc.simple.label - write$ "]{"} - {"\bibitem{"} - if$ - write$ cite$ write$ "}" write$ newline$ - abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$ - "{" write$ - "" before.all 'output.state := -} -FUNCTION {output.hiddenbibitem} -{ newline$ - abnt.alf - {"\hiddenbibitem[" write$ - calc.simple.label - write$ "]{"} - {"\bibitem{"} - if$ - write$ cite$ write$ "}" write$ newline$ - abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$ - "{" write$ - "" before.all 'output.state := -} -FUNCTION {fin.entry} -{ add.period$ write$ - reprinted-from empty$ 'skip$ - {" " reprinted-text empty$ - {bbl.reprint} {reprinted-text} if$ * bbl.colon * - "\abntreprintinfo{ " * reprinted-from * "}" * write$} - if$ - abnt-note empty$ 'skip$ - {"\footnote{" abnt-note * "}" * write$} if$ - "}" write$ - %newline$ - write.entry.verbatim -} - -FUNCTION { abnt.display.options} -{ 's := 't := - abnt.show.options #1 = % "warn" - {"opção " t * " passou para " * s * warning$ } 'skip$ if$ - - abnt.show.options #2 = % "list" - {"Op\c c\~ao selecionada {\tt " t * "=}\verb+" * s * "+" * output new.sentence } 'skip$ if$ -} - -FUNCTION { abnt-options1 } - { - abnt-show-options empty$ - 'skip$ - {abnt-show-options "no" = - {#0} {abnt-show-options "warn" = - {#1} {abnt-show-options "list" = - {#2 } {#0 } if$} if$} if$ - 'abnt.show.options :=} % #0 "no"; #1 "warn"; #2 "list" - if$ - - abnt.show.options #2 = - {output.bibitem "Mudan\c ca de estilo ap\'os este ponto com o comando \verb!\citeoption{" - cite$ * "}! " * - output new.sentence} 'skip$ if$ - - abnt-show-options empty$ - 'skip$ {"abnt-show-options" abnt-show-options abnt.display.options} if$ - - abnt-cite-style empty$ - 'skip$ - {abnt-cite-style "(AUTHOR, YEAR)" = - {#0 'abnt.cite.style :=} - {abnt-cite-style "(Author, YEAR)" = - {#1 'abnt.cite.style :=} - {"opção " abnt-cite-style * " desconhecida" * warning$} - if$} - if$ - "abnt-cite-style" abnt-cite-style abnt.display.options}if$ - - abnt-experimental empty$ - 'skip$ {abnt-experimental "yes" = 'abnt.experimental := - "abnt-experimental" abnt-experimental abnt.display.options} if$ - - abnt-emphasize duplicate$ empty$ - 'pop$ {'abnt.emphasize := - "abnt-emphasize" abnt.emphasize abnt.display.options - abnt-emphasize "\bf" = abnt-emphasize "\it" = or abnt-emphasize "\em" = or - abnt-emphasize "\bfseries" = or - {"não use " abnt-emphasize * " para abnt-emphasize em " * cite$ * - ", isto alterará TODO o texto. Use \textbf ou \emph. Veja a documentação abnt-bibtex-doc para mais detalhes." * warning$} - 'skip$ if$ - } if$ - - abnt-doi empty$ - 'skip$ - {abnt-doi "expand" = - {abnt.doi.expand.to.url 'abnt.doi :=} - {abnt-doi "link" = - {abnt.doi.link 'abnt.doi :=} - {abnt-doi "doi" = - {abnt.doi.leave.as.is 'abnt.doi :=} - {"opção " abnt-doi * " desconhecida" * warning$} - if$} - if$} - if$ - "abnt-doi" abnt-doi abnt.display.options}if$ - } -FUNCTION { abnt-options2 } - { - abnt-full-initials empty$ - 'skip$ {abnt-full-initials "yes" = 'abnt.full.initials := - "abnt-full-initials" abnt-full-initials abnt.display.options} if$ - - abnt-last-names empty$ - 'skip$ - {abnt-last-names "abnt" = {#0} - {abnt-last-names "bibtex" = {#1} {#0} if$} if$ - 'abnt.last.names := - "abnt-last-names" abnt-last-names abnt.display.options} - if$ - - - abnt-ldots-type empty$ - 'skip$ - {abnt-ldots-type "none" = {#0} - {abnt-ldots-type "normal" = {#1} - {abnt-ldots-type "math" = {#2} - {abnt-ldots-type "text" = {#1} {#0} - if$} if$} if$} if$ - 'abnt.ldots.type := - "abnt-ldots-type" abnt-ldots-type abnt.display.options} - if$ - - abnt-missing-year empty$ - 'skip$ - {abnt-missing-year "void" = {#0} - {abnt-missing-year "sd" = {#1} {#0} if$} - if$ - 'abnt.missing.year := - "abnt-missing-year" abnt-missing-year abnt.display.options} - if$ - - - abnt-and-type empty$ - 'skip$ {abnt-and-type "and" = - {#0} {abnt-and-type "&" = - {#1} {#0} if$} if$ - 'abnt.and.type := - "abnt-and-type" abnt-and-type abnt.display.options} - if$ - - abnt-thesis-year empty$ - 'skip$ {abnt-thesis-year "final" = - {#0} {abnt-thesis-year "title" = - {#1} {abnt-thesis-year "both" = - {#2} {#0} if$} if$} if$ - 'abnt.thesis.year := - "abnt-thesis-year" abnt-thesis-year abnt.display.options} - if$ - - abnt-refinfo empty$ - 'skip$ {abnt-refinfo "yes" = 'abnt.refinfo := - "abnt-refinfo" abnt-refinfo abnt.display.options} if$ -} -FUNCTION { abnt-options3 } - { - - abnt-dont-use-etal empty$ - 'skip$ {abnt-dont-use-etal "yes" = {#0 'abnt.etal.list :=} 'skip$ if$ - "Uso da opção abnt-dont-use-etal se tornou obsoleto, usamos abnt-etal-list." warning$ - "abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$ - - abnt-etal-cite empty$ - 'skip$ {abnt-etal-cite str.to.int 'abnt.etal.cite := - "abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$ - - abnt-etal-list empty$ - 'skip$ {abnt-etal-list str.to.int 'abnt.etal.list := - "abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$ - - abnt-etal-text missing$ - 'skip$ {abnt-etal-text 'abnt.etal.text := - "abnt-etal-text" abnt.etal.text abnt.display.options} if$ - - abnt-no-etal-label empty$ - 'skip$ {abnt-no-etal-label "yes" = {#0 'abnt.etal.cite :=} 'skip$ if$ - "Uso da opção abnt-no-etal-label se tornou obsoleto, usamos abnt-etal-cite." warning$ - "abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$ - - abnt-repeated-author-omit empty$ - 'skip$ {abnt-repeated-author-omit "yes" = - {#1 'abnt.repeated.author.omit :=} - {#0 'abnt.repeated.author.omit := "" 'previous.author :=} if$ - "abnt-repeated-author-omit" abnt-repeated-author-omit abnt.display.options} if$ - - abnt-repeated-title-omit empty$ 'skip$ - {abnt-repeated-title-omit "yes" = - {#1 'abnt.repeated.title.omit :=} - {#0 'abnt.repeated.title.omit := "" 'previous.title :=} if$ - "abnt-repeated-title-omit" abnt-repeated-title-omit abnt.display.options - abnt.repeated.author.omit not abnt.repeated.title.omit and - {"Use abnt-repeated-title-omit=yes junto com abnt-repeated-author-omit=yes" - warning$} 'skip$ if$} if$ - - abnt-title-command empty$ - 'skip$ {abnt-title-command "yes" = - {#1 'abnt.title.command :=} - {#0 'abnt.title.command :=} if$ - "abnt-title-command" abnt-title-command abnt.display.options} if$ - - abnt-url-package empty$ 'skip$ - {abnt-url-package "url" = - {#1 'abnt.url.package :=} - {abnt-url-package "hyperref" = {#2 'abnt.url.package :=} 'skip$ if$} - if$ - "abnt-url-package" abnt-url-package abnt.display.options} - if$ - - abnt-verbatim-entry empty$ - 'skip$ {abnt-verbatim-entry "yes" = 'abnt.verbatim.entry := - "abnt-verbatim-entry" abnt-verbatim-entry abnt.display.options} if$ - - abnt.show.options #2 = 'fin.entry 'skip$ if$ - } - -%we had to break this function in two parts because of the following message: -%Sorry---you've exceeded BibTeX's single function space 100 -%(That was a fatal error) -FUNCTION { iso-options1 } - { - iso-abbreviation empty$ - 'skip$ {iso-abbreviation "standard" = 'iso.abbreviation := - "iso-abbreviation" iso-abbreviation abnt.display.options} if$ - iso-author-punctuation empty$ - 'skip$ {iso-author-punctuation "void" = 'iso.author.punctuation := - "iso-author-punctuation" iso-author-punctuation abnt.display.options} if$ - iso-date-place empty$ - 'skip$ {iso-date-place "ISO" = 'iso.date.place := - "iso-date-place" iso-date-place abnt.display.options} if$ - } - -FUNCTION { abnt-options } - { - abnt-options1 - abnt-options2 - abnt-options3 - iso-options1 - } - -FUNCTION { iso-options } { abnt-options } - -FUNCTION { iso.year.label } -{ iso.date.place - { abnt.alf - {year.label output new.sentence} - 'skip$ if$} - 'skip$ if$} - -FUNCTION { iso.date } -{ iso.date.place - { abnt.alf - 'skip$ - {year output new.sentence} - if$} - 'skip$ if$} - -FUNCTION { non.iso.date } - {iso.date.place 'skip$ {format.date output} if$} - -FUNCTION {article} -{ output.bibitem - format.author.or.organization new.sentence - iso.year.label - format.title "title" output.check new.block - format.journal output - iso.date.place {format.year output} 'skip$ if$ - %iso.date.place {format.date output} 'skip$ if$ - %iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - % {format.year output new.sentence} if$ - section "section" bibinfo.check output.dash - publisher "publisher" bibinfo.check output - address "address" bibinfo.check output - format.volume output - format.number output - format.pages output - non.iso.date - format.issn output new.block - format.note output new.block - format.url - fin.entry -} -FUNCTION {book} -{ output.bibitem - format.author.or.editor.or.organization new.sentence - iso.year.label - format.type output new.sentence - format.btitle "title" output.check new.sentence - format.furtherresp new.sentence - format.edition output new.sentence - format.publisher.address output - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.volume output new.sentence - format.book.pages output - format.illustrated - format.dimensions new.sentence - format.howpublished output new.sentence - format.volume.number.series output new.sentence - format.note output - format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro - format.isbn output new.sentence - format.url - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.author.or.editor.or.organization new.sentence - iso.year.label - format.type output new.sentence - format.btitle "title" output.check new.sentence - format.edition output new.sentence - address "address" bibinfo.check output - format.bvolume output - %format.date output new.sentence - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.book.pages output new.sentence - format.volume.number.series output new.sentence - format.note output - format.isbn output new.sentence - format.url - fin.entry -} - -FUNCTION {hidden} -{ output.hiddenbibitem - fin.entry} - -FUNCTION {inbook} -{ output.bibitem - format.author.or.organization new.sentence - iso.year.label - format.title "title" output.check new.block - format.in.ed.booktitle - format.furtherresp new.sentence - format.edition output new.sentence - format.publisher.address output - %format.year output new.sentence - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.bvolume.if.no.series output - format.volume.number.series output - format.chapter.pages output new.sentence - format.isbn output new.block - format.note output new.block - format.url - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.author.or.organization new.sentence - iso.year.label - format.title "title" output.check new.sentence - format.in.ed.booktitle - format.edition output new.sentence - format.publisher.address output - %format.year output - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output} if$ - format.volume.number.series output new.sentence - format.bvolume.if.no.series output - format.chapter.pages output new.sentence - format.isbn output new.block - format.note output new.block - format.url - fin.entry -} -FUNCTION {inproceedings} -{ output.bibitem - format.author.or.organization new.sentence - iso.year.label - format.title "title" output.check new.sentence - format.in.ed.booktitle - format.publisher.address output - %format.year output new.sentence - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.bvolume.if.no.series output - format.volume.number.series output - format.pages output - format.isbn output - format.issn output new.sentence - format.note output new.sentence - format.url - fin.entry -} -FUNCTION {journalpart} -{ output.bibitem - format.author.or.editor.or.organization new.sentence - iso.year.label - format.type output new.sentence - format.btitle "title" output.check new.sentence - format.furtherresp new.sentence - format.edition output new.sentence - format.publisher.address output - format.volume output - format.number output - %format.date output new.sentence - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.date output new.sentence} if$ - format.book.pages output - format.illustrated - format.dimensions new.sentence - format.note output - format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro - format.isbn output new.sentence - format.url - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - format.author.or.editor.or.organization new.sentence - iso.year.label - format.btitle "title" output.check new.block - format.furtherresp new.sentence - format.edition output new.sentence - format.address output - %format.date output new.sentence - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.bvolume.if.no.series output - format.book.pages output new.sentence - format.volume.number.series output new.sentence - format.note output new.sentence - format.url - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.author.or.editor.or.organization new.sentence - iso.year.label - format.type output - format.btitle output new.sentence - format.furtherresp new.sentence - format.publisher.address.relax output - %format.date output new.block - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.book.pages output new.sentence - format.illustrated - format.dimensions new.sentence - format.howpublished output new.block - format.volume.number.series output new.sentence - format.note output new.block - format.url - fin.entry - empty.misc.check -} - -FUNCTION {patent} -{ output.bibitem - format.editor.or.organization new.sentence - iso.year.label - format.authors.plain output new.sentence - format.btitle output new.sentence - format.furtherresp new.sentence - %format.date output new.block - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.patent.number output - format.howpublished output new.block - format.note output new.block - format.url - fin.entry - empty.misc.check -} - -FUNCTION {format.thesis.type} -{ type$ "phdthesis" = - {bbl.phdthesis} - {type$ "mastersthesis" = - {bbl.mthesis} - {type$ "monography" = - {bbl.monography} - {bbl.void} - if$} - if$} - if$ - type empty$ - {type missing$ - {type$ "phdthesis" = - { " (" bbl.phd * ")" *} - {type$ "mastersthesis" = { " (" bbl.master * ")" *} {pop$ ""} if$} - if$} - {""} - if$} - {type$ "thesis" = - {type} - {" (" type * ")" * "type" bibinfo.check} - if$} - if$ - * %joins first and second part of this function -} -FUNCTION {thesis} -{ output.bibitem - format.authors "author" output.check new.block - iso.year.label - format.btitle "title" output.check new.block - abnt.thesis.year #1 = abnt.thesis.year #2 = or - {format.date "year" output.check new.sentence} 'skip$ if$ - format.year.presented output new.sentence - format.book.pages output new.sentence - format.thesis.type output.nonnull - school "school" bibinfo.warn output.dash - address "address" bibinfo.check output - abnt.thesis.year #0 = abnt.thesis.year #2 = or - {format.date "year" output.check new.sentence} 'skip$ if$ - format.note output new.block - format.url - fin.entry -} - -FUNCTION {phdthesis} { thesis } -FUNCTION {mastersthesis} { thesis } -FUNCTION {monography} { thesis } - -FUNCTION {proceedings} -{ output.bibitem - iso.year.label - format.editor.or.organization - format.conference.info - format.btitle "title" output.check - format.bvolume output - format.volume.number.series output - editor empty$ - { publisher empty$ - 'skip$ - { new.sentence format.publisher.address output format.year output} - if$ - } - { publisher empty$ - { new.sentence - format.organization.address output format.year output} - { new.sentence - organization "organization" bibinfo.check output - format.publisher.address output format.year output} - if$ } - if$ - new.sentence format.book.pages output new.sentence - format.isbn output - format.issn output new.block - format.note output new.block - format.url - fin.entry -} - -FUNCTION {techreport} {manual} - -FUNCTION {unpublished} -{ output.bibitem - format.author.or.editor.or.organization new.sentence - iso.year.label - format.title "title" output.check new.sentence - format.note "note" output.check new.sentence - %format.date output new.sentence - iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} - {format.year output new.sentence} if$ - format.url - fin.entry -} - -FUNCTION {default.type} { misc } -READ -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} -INTEGERS { len } -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { format.single.name 't := - nameptr #1 > - { - nameptr #3 - #1 + = - numnames #3 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - " " * - namesleft #1 = t "others" = and - { "zzzzz" * } - { t sortify * } - if$ - } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} -FUNCTION {any.sort} -{ author empty$ - { organization empty$ - { editor empty$ - { title empty$ - { key empty$ - { "para ordenar, precisa dos campos author, organization, editor, title ou key in " cite$ * warning$ ""} - { key sortify } - if$} - { title sortify} - if$} - { editor sort.format.names } - if$} - { organization sortify } - if$} - { author sort.format.names } -if$ -} - -FUNCTION {presort} -{ - any.sort - " " * year field.or.null sortify * " " * title field.or.null - sort.format.title * #1 entry.max$ substring$ - %for non-alpha style we drop a void sort.key such that SORT has no effect - abnt.alf 'skip$ {pop$ ""} if$ 'sort.key$ := - year empty$ {""} {year} if$ 'year.label := - calc.extended.label -} - -FUNCTION {set.default.abnt.variables} -{ %if you change abnt-num to abnt-alf by hand you need also to change - %the name of RCSfile by hand, otherwise cvs takes care of it. - % - "$RCSfile: abnt-alf.bst,v $ " extract.cvs.key - % - "abnt-alf.bst,v " = 'abnt.alf := % #1 para abnt-alf #0 para abnt-num - "$Revision: v-1.9.7 $" extract.cvs.key 'abnt.bst.revision := - #0 'abnt.and.type := % #0 "and"; #1 "&" - "\emph" 'abnt.emphasize := - #0 'abnt.cite.style := %default norm version for NBR10520 - %#0 \cite=(AUTHOR, YEAR) - %#1 \cite=(Author, YEAR) - #0 'abnt.experimental := - abnt.doi.expand.to.url 'abnt.doi := - #3 'abnt.etal.cite := - #3 'abnt.etal.list := - "et al." 'abnt.etal.text := - #0 'abnt.full.initials := - #0 'abnt.last.names := %#0 abnt-style, #1 bibtex-style - #1 'abnt.ldots.type := %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...} - #0 'abnt.missing.year := %#0 "void"; #1 "[s.d.]" - #0 'repeated.author := - #0 'abnt.repeated.author.omit := - #0 'abnt.repeated.title.omit := - #1 'abnt.refinfo := - #0 'abnt.show.options := % #0 "no"; #1 "warn"; #2 "list" - #0 'abnt.thesis.year := % #0 "final"; #1 "title"; #2 "both" - #0 'abnt.title.command := % #0 "no"; #1 "yes" - #0 'abnt.url.package := % #0 "none"'; #2 "url"; #2 "hyperref" - #0 'abnt.verbatim.entry := -} -FUNCTION {set.default.iso.variables} -{ #0 'iso.abbreviation := % #0 ABNT-style; #1 ISO-style - #0 'iso.author.punctuation := % #0 ABNT (Smith, A. B.); #1 ISO (Smith, AB) - #0 'iso.date.place := % #0 ABNT-sty; #1 ISO-style -} -EXECUTE {set.default.abnt.variables} -EXECUTE {set.default.iso.variables} -FUNCTION {process.early.abnt.options} -{%here we intercept all entries which need priority handling - %note: we cannot use type$ at this point - abnt-and-type missing$ - abnt-experimental missing$ and - abnt-etal-cite missing$ and - abnt-etal-text missing$ and - abnt-ldots-type missing$ and - abnt-cite-style missing$ and - abnt-no-etal-label missing$ and - abnt-title-command missing$ and - 'skip$ {call.type$} if$ -} -ITERATE {process.early.abnt.options} -FUNCTION {search.reprinted} -{ reprinted-from missing$ 'skip$ - {"\nocite{" reprinted-from * "}" * write$ newline$ - } - if$ -} -ITERATE {search.reprinted} -FUNCTION {abntreprintinfo} -{"\providecommand{\abntreprintinfo}[1]{%" write$ newline$ - " \citeonline{#1}}" write$ newline$} -EXECUTE {abntreprintinfo} -ITERATE {presort} -SORT -STRINGS { last.label next.extra} -INTEGERS { last.extra.num } -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - label extra.label * 'label := - year.label extra.label * 'year.label := - extra.label 'next.extra := - label "}" * 'label := -} -ITERATE {forward.pass} -REVERSE {reverse.pass} -FUNCTION {begin.bib} -{ - abnt.alf - {"\setlength{\labelsep}{0pt}" write$} - 'skip$ - if$ - "\begin{thebibliography}{}" write$ newline$ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - abnt.refinfo #1 = - {"\providecommand{\abntrefinfo}[3]{}" write$ newline$} - 'skip$ if$ - "\providecommand{\abntbstabout}[1]{}" write$ newline$ - abnt.title.command - {"\providecommand{\bibtextitlecommand}[2]{#2}" write$ newline$} - 'skip$ if$ - "\abntbstabout{" abnt.bst.revision * "}" * write$ newline$ - %Se você não usa abntcite e precisa que a margem direita não - %seja justificada, descomente a linha seguinte - %alternativamente coloque \bibliography{abnt-nrj,... -% "\setlength{\rightskip}{0pt plus 2cm}" write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.state.consts} -FUNCTION {process.entry}{call.type$} -ITERATE {process.entry} -FUNCTION {end.bib} -{ newline$ "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -FUNCTION {apresentacao} -{ "+---------------------------------------------------------+" - "| http://www.abntex.net.br/ |" - "| Em caso de dúvidas ou problemas com este estilo procure |" - abnt.alf - {"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *} - {"| Estilo bibliográfico abntex2-num.bst versão " abnt.bst.revision * " |" *} - if$ - "+---------------------------------------------------------+" - stack$ -} -EXECUTE{apresentacao} diff --git a/macros/latex/contrib/unbtex/unbtex-example.pdf b/macros/latex/contrib/unbtex/unbtex-example.pdf index b95a8e7be3..5aff44aefc 100644 Binary files a/macros/latex/contrib/unbtex/unbtex-example.pdf and b/macros/latex/contrib/unbtex/unbtex-example.pdf differ diff --git a/macros/latex/contrib/unbtex/unbtex-example.tex b/macros/latex/contrib/unbtex/unbtex-example.tex index 0858156192..5d6c4e4952 100644 --- a/macros/latex/contrib/unbtex/unbtex-example.tex +++ b/macros/latex/contrib/unbtex/unbtex-example.tex @@ -1,7 +1,7 @@ %% %% UnBTeX: A class for bachelor, master, and doctoral thesis at the %% University of Brasilia (UnB), Brazil -%% Version 1.3.2 2023/10/20 +%% Version 1.3.3 2023/11/02 %% Copyright (C) 2021-2023 by Henrique C. Ferreira %% %% This class file may be distributed and/or modified under the conditions @@ -19,18 +19,18 @@ %% \documentclass[ - % -- opções da classe memoir -- https://www.ctan.org/pkg/memoir - 12pt, % tamanho da fonte - openright, % capítulos começam em página ímpar - % (insere página vazia caso preciso) - oneside, % caso queira imprimir em frente e verso, use - %twoside, - a4paper, % tamanho do papel. - sumario=tradicional, - % -- opções do pacote babel -- - english, % o idioma do texto não é definido aqui (mantenha as oções english e brazil) - brazil % para trabalhos em inglês, altere o idioma após o comando \begin{document} - ]{unbtex} + % -- opções da classe memoir -- https://www.ctan.org/pkg/memoir + 12pt, % tamanho da fonte + openright, % capítulos começam em página ímpar + % (insere página vazia caso preciso) + oneside, % caso queira imprimir em frente e verso, use + %twoside, + a4paper, % tamanho do papel. + sumario=tradicional, + % -- opções do pacote babel -- + english, % o idioma do texto não é definido aqui (mantenha as oções english e brazil) + brazil % para trabalhos em inglês, altere o idioma após o comando \begin{document} + ]{unbtex} % --- % Pacotes básicos (Adicione abaixo pacotes úteis para o seu trabalho) @@ -39,7 +39,11 @@ % Bibliografia nas normas da ABNT, formato autor-data % O formato autor-data facilita a leitura, sobretudo de trabalhos com muitas páginas \RequirePackage[english,brazilian,hyperpageref]{backref} % Paginas com as citações na lista de referências -\RequirePackage[alf,bibjustif]{abntex2cite} +\RequirePackage[alf,abnt-etal-list=0,abnt-etal-cite=3,abnt-emphasize=bf,bibjustif]{abntex2cite} +\addtociteoptionlist{abnt-url-package=url} +\def\UrlLeft{} +\def\UrlRight{} +\urlstyle{same} % Referências cruzadas automáticas, dependendo do tipo de referência (figuras, tabelas, equações, etc.) \RequirePackage[nameinlink,noabbrev,english,brazilian]{cleveref} @@ -90,6 +94,8 @@ \graphicspath{{unbtex-example/figuras/}} % --- +\usepackage{fancyvrb} % permite selecionar o tamanho da fonte no comando \Verb + % ------------------------------------------------------------------------ % ------------------------------------------------------------------------ % Informações do trabalho @@ -125,8 +131,8 @@ % Local e data \local{Brasília} -\dia{18} -\mes{outubro} +\dia{02} +\mes{novembro} \ano{2023} % Palavras-chave (pelo menos três devem ser informadas) @@ -195,14 +201,14 @@ \renewcommand{\backref}{} % Define os textos da citação \renewcommand*{\backrefalt}[4]{ - \ifcase #1 % - Nenhuma citação no texto.% - \or - Citado na p. #2.% - \else - Citado nas pp. #2.% - \fi}% - }{ + \ifcase #1 % + Nenhuma citação no texto.% + \or + Citado na p. #2.% + \else + Citado nas pp. #2.% + \fi}% +}{ \renewcommand*{\backrefalt}[4]{% \ifcase #1 % No citations.% @@ -302,10 +308,10 @@ Agradecimentos do segundo autor. % --- \begin{epigrafe} \vspace*{\fill} - \begin{flushright} - \textit{``If you find that you're spending almost all your time on theory,\\ start turning some attention to practical things; \\ it will improve your theories.\\ If you find that you're spending almost all your time on practice, \\ start turning some attention to theoretical things; \\ it will improve your practice.''\\ - (Donald Knuth)} - \end{flushright} + \begin{flushright} + \textit{``If you find that you're spending almost all your time on theory,\\ start turning some attention to practical things; \\ it will improve your theories.\\ If you find that you're spending almost all your time on practice, \\ start turning some attention to theoretical things; \\ it will improve your practice.''\\ + (Donald Knuth)} + \end{flushright} \end{epigrafe} % --- @@ -319,7 +325,7 @@ Agradecimentos do segundo autor. \setlength{\absparsep}{18pt} % ajusta o espaçamento dos parágrafos do resumo \begin{resumo}[Resumo] % --- -Segundo a \citeonline[seções 3.1-3.2]{NBR6028:2003}, o resumo deve ressaltar o objetivo, o método, os resultados e as conclusões do documento. A ordem e a extensão destes itens dependem do tipo de resumo (informativo ou indicativo) e do tratamento que cada item recebe no documento original. O resumo deve ser precedido da referência do documento, com exceção do resumo inserido no próprio documento. (\ldots) As palavras-chave devem figurar logo abaixo do resumo, antecedidas da expressão Palavras-chave: separadas entre si por ponto e finalizadas também por ponto. +Segundo a \citeonline[seções 3.1-3.2]{NBR6028:2003}, o resumo deve ressaltar o objetivo, o método, os resultados e as conclusões do documento. A ordem e a extensão destes itens dependem do tipo de resumo (informativo ou indicativo) e do tratamento que cada item recebe no documento original. As palavras-chave devem figurar logo abaixo do resumo, antecedidas da expressão Palavras-chave: separadas entre si por ponto e finalizadas também por ponto. % --- \vspace{\onelineskip} @@ -431,9 +437,9 @@ This is the english abstract. % --- % Seleciona o arquivo de estilo de citações \IfStrEq*{\languagename}{english}{ -\bibliographystyle{abntex2eng-alf} +\bibliographystyle{unbtexcite-en} }{ -\bibliographystyle{abntex2-alf} +\bibliographystyle{unbtexcite-pt} } % Arquivos com as referências bibliográficas \bibliography{unbtex-example/referencias,unbtex-example/references} diff --git a/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex b/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex index e70fab3bb4..1e09fd37d0 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex +++ b/macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex @@ -27,7 +27,7 @@ pode ser citada no texto com \end{verbatim} e a citação apareceria assim: \cite{greenwade93}. -Para fazer uma citação direta no formato ABNT, criamos o ambiente \verb|citacao|, que é uma simples generalização do ambiente \verb|quotation| (habilitado por padrão) com um campo específico de autor. Veja o exemplo a seguir: +Para fazer uma citação direta no formato ABNT, criamos o ambiente \Verb[fontsize=\normalsize]|citacao|, que é uma simples generalização do ambiente \Verb[fontsize=\normalsize]|quotation| (habilitado por padrão) com um campo específico de autor. Veja o exemplo a seguir: \begin{verbatim} \begin{citacao}{Carl Sagan} Alegações extraordinárias exigem evidências extraordinárias. @@ -37,7 +37,7 @@ Esse código gera uma citação assim: \begin{citacao}{Carl Sagan} Alegações extraordinárias exigem evidências extraordinárias. \end{citacao} -O comando \verb|\cite{...}| pode ser usado como indicação do autor: +O comando \Verb[fontsize=\normalsize]|\cite{...}| pode ser usado como indicação do autor: \begin{verbatim} \begin{citacao}{\cite{greenwade93}} TEX is a typesetting program designed for high-quality composition of material @@ -48,7 +48,7 @@ for preparation of his book series ``The Art of Computer Programming''. TEX has been made freely available by Knuth. \end{citacao} \end{verbatim} -Naturalmente, a referência \verb|grennwade93| deve estar definida no arquivo Bib\TeX\ (aqui, \verb|references.bib|). Confira o resultado: +Naturalmente, a referência \Verb[fontsize=\normalsize]|grennwade93| deve estar definida no arquivo Bib\TeX\ (aqui, \Verb[fontsize=\normalsize]|references.bib|). Confira o resultado: \begin{citacao}{\cite{greenwade93}} TEX is a typesetting program designed for high-quality composition of material that contains a lot of mathematical and technical expressions. It has been adopted by many authors and publishers who generate technical books and papers. It was created by Professor Donald E. Knuth of Stanford University, originally for preparation of his book series ``The Art of Computer Programming''. TEX has been made freely available by Knuth. \end{citacao} \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex index 90f67e8f60..9f30b390ac 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex +++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex @@ -3,25 +3,23 @@ \label{cap_intr} % ---------------------------------------------------------- -Este documento e seu código-fonte são exemplos de referência de uso da classe \textsf{unbtex}, uma customização da classe \textsf{abntex2} para a Universidade de Brasília (UnB). O documento exemplifica a elaboração de trabalho acadêmico (trabalho de conclusão de curso, dissertação e tese) a partir do UnB\TeX. O \abnTeX, por sua vez, é uma customização da classe \textsf{memoir} que visa atender os requisitos da norma ABNT NBR 14724:2011 \emph{Informação e documentação -- Trabalhos acadêmicos -- Apresentação}. Uma lista completa das normas observadas pelo \abnTeX\ é apresentada em \citeonline{abntex2classe}. +Este documento exemplifica a elaboração de trabalho acadêmico (trabalho de conclusão de curso, dissertação e tese) a partir da classe UnB\TeX, uma customização da classe {\small\textsf{abntex2}} para a Universidade de Brasília (UnB). + +A classe {\small\textsf{abntex2}}, por sua vez, é uma customização da classe {\small\textsf{memoir}} para atender aos requisitos da norma ABNT NBR 14724:2011 \emph{Informação e documentação -- Trabalhos acadêmicos -- Apresentação}. Uma lista completa das normas observadas pelo \abnTeX\ é apresentada em \citeonline{abntex2classe}. + +Parte das customizações utilizadas na classe UnB\TeX\ baseia-se em soluções adotadas por \citeonline{Castro2019} para editoração dos livros da série \textit{Ensino de graduação} da Editora UnB. A classe UnB\TeX\ também contempla atualizações mais recentes das normas NBR 6023 \cite{NBR6023:2018} e NBR 10520 \cite{NBR10520:2023} da ABNT, não consideradas no \abnTeX. % Definição da nomenclatura que irá para a lista de siglas e abreviações \nomenclature[A]{ABNT}{Associação Brasileira de Normas Técnicas} \nomenclature[A]{UnB}{Universidade de Brasília} -O \abnTeX\ não é uma classe específica para nenhuma universidade ou instituição e implementa somente os requisitos das normas da ABNT. Sinta-se convidado a participar do projeto \abnTeX! Acesse o site do projeto em \url{http://www.abntex.net.br/}. Também fique livre para conhecer, estudar, alterar e redistribuir o trabalho do \abnTeX, desde que os arquivos modificados tenham seus nomes alterados e que os créditos sejam dados aos autores originais, nos termos da ``The \LaTeX\ Project Public License''\footnote{\url{http://www.latex-project.org/lppl.txt}}. - -Encorajamos que sejam realizadas customizações específicas deste exemplo para universidades e outras instituições --- como capas, folha de aprovação, etc. Porém, recomendamos que ao invés de se alterar diretamente os arquivos do \abnTeX, distribua-se arquivos com as respectivas customizações, como feito no UnB\TeX. Isso permite que futuras versões do \abnTeX~não se tornem automaticamente incompatíveis com as customizações promovidas. Consulte \citeonline{abntex2-wiki-como-customizar} para mais informações. - -Este documento deve ser utilizado como complemento do manual do \abnTeX\ \cite{abntex2classe} e da classe \textsf{memoir} \cite{memoir}. - -Parte das customizações feitas no \abnTeX\ são baseadas em soluções adotadas por \citeonline{Castro2019} para editoração dos livros da série \textit{Ensino de graduação} da Editora UnB. +Este documento deve ser utilizado como complemento do manual do \abnTeX\ \cite{abntex2classe} e da classe {\small\textsf{memoir}} \cite{memoir}. %\begin{mdframed}[style=defnSty] % azul \begin{mdframed}[style=plainSty] % verde {\center \textsc{Texto motivador} \par} -\noindent Esperamos que o \abnTeX\ aprimore a qualidade do trabalho que você produzirá, de modo que o principal esforço seja concentrado no principal: na contribuição científica. +\noindent Esperamos que o UnB\TeX\ aprimore a qualidade do trabalho que você produzirá, de modo que o principal esforço seja concentrado no principal: na contribuição científica. \end{mdframed} \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex index b4a9e7b806..316fa53a46 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex +++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo2.tex @@ -9,7 +9,7 @@ Este capítulo ilustra o uso de comandos do \LaTeX, do \abnTeX\ e do UnB\TeX. \section{Codificação dos arquivos: UTF8} % --- -A codificação de todos os arquivos do \abnTeX\ é \texttt{UTF8}. É necessário que você utilize a mesma codificação nos documentos que escrever, inclusive nos arquivos de base bibliográficas \verb|.bib|. +A codificação de todos os arquivos do \abnTeX\ é \texttt{UTF8}. É necessário que você utilize a mesma codificação nos documentos que escrever, inclusive nos arquivos de base bibliográficas \Verb[fontsize=\normalsize]|.bib|. % --- \section{Citações diretas}\label{sec-citacao} @@ -63,18 +63,11 @@ A \cref{tab-nivinv} é um exemplo de tabela construída em \footnotesize \caption[Níveis de investigação]{Níveis de investigação.} \label{tab-nivinv} -\begin{tabular}{p{2.6cm}|p{6.0cm}|p{2.25cm}|p{3.40cm}} - %\hline - \textbf{Nível de Investigação} & \textbf{Insumos} & \textbf{Sistemas de Investigação} & \textbf{Produtos} \\ - \hline - Meta-nível & Filosofia da Ciência & Epistemologia & - Paradigma \\ - \hline - Nível do objeto & Paradigmas do metanível e evidências do nível inferior & - Ciência & Teorias e modelos \\ - \hline - Nível inferior & Modelos e métodos do nível do objeto e problemas do nível inferior & Prática & Solução de problemas \\ - % \hline +\begin{tabular}{p{2.6cm}|p{6.0cm}|p{2.25cm}|p{3.40cm}} %\hline + \textbf{Nível de Investigação} & \textbf{Insumos} & \textbf{Sistemas de Investigação} & \textbf{Produtos} \\ \hline + Meta-nível & Filosofia da Ciência & Epistemologia & Paradigma \\ \hline + Nível do objeto & Paradigmas do metanível e evidências do nível inferior & Ciência & Teorias e modelos \\ \hline + Nível inferior & Modelos e métodos do nível do objeto e problemas do nível inferior & Prática & Solução de problemas \\ %\hline \end{tabular} \legend{Fonte: \citeonline{van86}} \end{table} @@ -83,26 +76,21 @@ Já a \cref{tabela-ibge} apresenta uma tabela criada conforme o padrão do \cite \begin{table}[htb] \IBGEtab{% - \caption{Um Exemplo de tabela alinhada que pode ser longa - ou curta, conforme padrão IBGE.}% - \label{tabela-ibge} + \caption{Um Exemplo de tabela alinhada que pode ser longa ou curta, conforme padrão IBGE.}% + \label{tabela-ibge} }{% - \begin{tabular}{ccc} - \toprule - Nome & Nascimento & Documento \\ - \midrule \midrule - Maria da Silva & 11/11/1111 & 111.111.111-11 \\ - \midrule - João Souza & 11/11/2111 & 211.111.111-11 \\ - \midrule - Laura Vicuña & 05/04/1891 & 3111.111.111-11 \\ - \bottomrule + \begin{tabular}{ccc} + \toprule + Nome & Nascimento & Documento \\ \midrule \midrule + Maria da Silva & 11/11/1111 & 111.111.111-11 \\ \midrule + João Souza & 11/11/2111 & 211.111.111-11 \\ \midrule + Laura Vicuña & 05/04/1891 & 3111.111.111-11 \\ \bottomrule \end{tabular}% }{% - \fonte{Produzido pelos autores.}% - \nota{Esta é uma nota, que diz que os dados são baseados na regressão linear.}% - \nota[Anotações]{Uma anotação adicional, que pode ser seguida de várias outras.}% - } + \fonte{Produzido pelos autores.}% + \nota{Esta é uma nota, que diz que os dados são baseados na regressão linear.}% + \nota[Anotações]{Uma anotação adicional, que pode ser seguida de várias outras.}% +} \end{table} Na \cref{tab:lvlii} são mostrados os componentes curriculares do novo fluxograma da engenharia mecatrônica. @@ -124,15 +112,15 @@ MAT0026 & Cálculo 2 & 60 & 30 & 0 & 0 & 90 & MAT0025 \\\hline% IFD0171 & Física 1 & 60 & 0 & 0 & 0 & 60 & \\\hline% IFD0173 & Física 1 Experimental & 0 & 30 & 0 & 0 & 30 & \\\hline% EST0023 & Probabilidade e Estatística & 30 & 30 & 0 & 0 & 60 & MAT0025 \\\hline% -ENM0190 & Desenho Mecânico para Engenharia & 30 & 30 & 0 & 0 & 60 & \\\hline% +ENM0190 & Desenho Mecânico para Engenharia & 30 & 30 & 0 & 0 & 60 & \\\hline% CIC0090 & Estruturas de Dados & 30 & 30 & 0 & 0 & 60 & CIC0004 \\\hline% -\multicolumn{2}{|l|}{Componentes optativos ou eletivos} & & & & & 60 & \multicolumn{1}{r}{} \\\cline{1-7}% +\multicolumn{6}{|l|}{Componentes optativos ou eletivos} & 60 & \multicolumn{1}{r}{} \\\cline{1-7}% \multicolumn{6}{|l|}{Total de horas do 2º Nível} & 420 & \multicolumn{1}{r}{} \\\cline{1-7}% \end{tabular} \end{center}% \end{table} -É uma boa ideia usar o pacote \textsf{longtable} para criar tabelas, pois assim uma mesma tabela pode ocupar várias páginas. Também há pacotes que rotacionam tabelas, para que fiquem em uma página em formato paisagem. Faça as tabelas usando como base qualquer um dos exemplos aqui apresentados ou outros que considerar mais adequados e que podem ser facilmente encontrados na internet. +É uma boa ideia usar o pacote {\small\textsf{longtable}} para criar tabelas, pois assim uma mesma tabela pode ocupar várias páginas. Também há pacotes que rotacionam tabelas, para que fiquem em uma página em formato paisagem. Faça as tabelas usando como base qualquer um dos exemplos aqui apresentados ou outros que considerar mais adequados e que podem ser facilmente encontrados na internet. % --- \section{Figuras} @@ -141,26 +129,26 @@ CIC0090 & Estruturas de Dados & 30 & 30 & 0 & 0 & 60 & CIC0004 \\\hline% Existem pacotes que permitem criar figuras e gráficos no próprio código \LaTeX. Por exemplo, temos \begin{itemize} - \item PGFPlots \url{http://pgfplots.sourceforge.net/} - \item TikZ \url{http://www.texample.net/tikz/examples/all/} - \item Metapost \url{http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html} - \item PSTricks \url{https://tug.org/PSTricks/main.cgi?file=examples} + \item PGFPlots: \url{http://pgfplots.sourceforge.net/} + \item TikZ: \url{http://www.texample.net/tikz/examples/all/} + \item Metapost: \url{http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html} + \item PSTricks: \url{https://tug.org/PSTricks/main.cgi?file=examples} \end{itemize} -Figuras também podem ser incorporadas de arquivos externos, como é o caso das \cref{fig_blockdiagram,fig_grafico}. Se a figura que for incluída se tratar de um diagrama, um gráfico ou uma ilustração que você mesmo produza, priorize o uso de imagens vetoriais no formato PDF. Com isso, o tamanho do arquivo final do trabalho será menor, e as imagens terão uma apresentação melhor, principalmente quando impressas, uma vez que imagens vetoriais são perfeitamente escaláveis para qualquer dimensão. Nesse caso, se for utilizar o Microsoft Excel para produzir gráficos, ou o Microsoft Word para produzir ilustrações, exporte-os como PDF e os incorpore ao documento conforme o exemplo abaixo. No entanto, para manter a coerência no uso de software livre (já que você está usando \LaTeX\ e \abnTeX), teste a ferramenta \textsf{InkScape} (\url{http://inkscape.org/}). Ela é uma excelente opção de código-livre para produzir ilustrações vetoriais, similar ao CorelDraw ou ao Adobe Illustrator. De todo modo, caso não seja possível utilizar arquivos de imagens como PDF, utilize qualquer outro formato, como JPEG, GIF, BMP, etc. Nesse caso, você pode tentar aprimorar as imagens incorporadas com o software livre \textsf{Gimp} (\url{http://www.gimp.org/}). Ele é uma alternativa livre ao Adobe Photoshop. +Figuras também podem ser incorporadas de arquivos externos, como é o caso das \cref{fig_blockdiagram,fig_grafico}. Se a figura que for incluída se tratar de um diagrama, um gráfico ou uma ilustração que você mesmo produza, priorize o uso de imagens vetoriais no formato PDF. Com isso, o tamanho do arquivo final do trabalho será menor, e as imagens terão uma apresentação melhor, principalmente quando impressas, uma vez que imagens vetoriais são perfeitamente escaláveis para qualquer dimensão. Nesse caso, se for utilizar o Microsoft Excel para produzir gráficos, ou o Microsoft Word para produzir ilustrações, exporte-os como PDF e os incorpore ao documento conforme o exemplo abaixo. No entanto, para manter a coerência no uso de software livre (já que você está usando \LaTeX\ e \abnTeX), teste a ferramenta {\small\textsf{InkScape}} (\url{http://inkscape.org/}). Ela é uma excelente opção de código-livre para produzir ilustrações vetoriais, similar ao CorelDraw ou ao Adobe Illustrator. De todo modo, caso não seja possível utilizar arquivos de imagens como PDF, utilize qualquer outro formato, como JPEG, GIF, BMP, etc. Nesse caso, você pode tentar aprimorar as imagens incorporadas com o software livre {\small\textsf{Gimp}} (\url{http://www.gimp.org/}). Ele é uma alternativa livre ao Adobe Photoshop. \begin{figure}[htb] \centering - \includegraphics[scale=1]{blockdiagram.eps} - \caption{\label{fig_blockdiagram}Sistema de controle em malha fechada} + \includegraphics[scale=1]{blockdiagram.pdf} + \caption{\label{fig_blockdiagram}Sistema de controle em malha fechada} \end{figure} \begin{figure}[htb] - \begin{center} - \includegraphics[scale=0.5]{img-grafico.pdf} - \end{center} - \caption{\label{fig_grafico}Gráfico produzido em Excel e salvo como PDF} - \legend{Fonte: \citeonline[24]{araujo2012}} + \begin{center} + \includegraphics[scale=0.8]{bodediagram.pdf} + \caption{\label{fig_grafico}Resposta em frequência de $G(s)$} + \legend{Fonte: Produzido pelos autores} + \end{center} \end{figure} % --- @@ -170,42 +158,56 @@ Figuras também podem ser incorporadas de arquivos externos, como é o caso das \emph{Minipages} são usadas para inserir textos ou outros elementos em quadros com tamanhos e posições controladas. Veja os exemplos das \cref{fig_minipage_imagem1,fig_minipage_grafico2}. \begin{figure}[htb] - \label{teste} - \centering - \begin{minipage}{0.4\textwidth} - \centering - \includegraphics[scale=0.9]{img-marca.pdf} - \caption{Imagem 1 da minipage} \label{fig_minipage_imagem1} - \legend{Fonte: Produzido pelos autores} - \end{minipage} - \hfill - \begin{minipage}{0.4\textwidth} + \label{teste} \centering - \includegraphics[scale=0.2]{img-grafico.pdf} - \caption{Gráfico 2 da minipage} \label{fig_minipage_grafico2} - \legend{Fonte: \citeonline[24]{araujo2012}} - \end{minipage} + \begin{minipage}{0.45\textwidth} + \centering + \includegraphics[scale=0.95]{circuito.pdf} + \caption{Imagem 1 da minipage} \label{fig_minipage_imagem1} + \legend{Fonte: Produzido pelos autores} + \end{minipage} + \hfill + \begin{minipage}{0.525\textwidth} + \centering + \includegraphics[scale=0.9]{curva_diodo.pdf} + \caption{Gráfico 2 da minipage} \label{fig_minipage_grafico2} + \legend{Fonte: Produzido pelos autores} + \end{minipage} \end{figure} \subsection{Subfiguras} -\begin{figure}[H] - \centering - \begin{subfigure}[t]{0.4\columnwidth} - \includegraphics[scale=0.9]{img-marca.pdf} - \caption{Primeira subfigura} - \label{fig_subfigura_imagem1} - \end{subfigure}% - \hfill - \begin{subfigure}[t]{0.4\columnwidth} - \includegraphics[scale=0.2]{img-grafico.pdf} - \caption{Segunda subfigura} - \label{fig_subfigura_grafico2} - \end{subfigure} - \caption{Figura com subfiguras} - \label{fig:tau} +O pacote \texttt{subfig} foi utilizado para inserir as \cref{fig_subfigura_imagem1,fig_subfigura_grafico2}. Subfiguras também podem ser inseridas no texto com o pacote \texttt{subcaption}. + +% utiliza o pacote subfig +\begin{figure}[h] + \centering + \subfloat[Primeira subfigura]{\label{fig_subfigura_imagem1} \centering + \includegraphics[scale=.95]{circuito.pdf}} + \subfloat[Segunda subfigura]{\label{fig_subfigura_grafico2} \quad + \centering + \includegraphics[scale=.9]{curva_diodo.pdf}} + \caption{Figura com subfiguras} \label{fig:tau} \end{figure} +% utiliza o pacote subcaption +%\begin{figure}[h] +% \centering +% \begin{subfigure}[t]{0.4\columnwidth} +% \includegraphics[scale=0.9]{img-marca.pdf} +% \caption{Primeira subfigura} +% \label{fig_subfigura_imagem1} +% \end{subfigure}% +% \hfill +% \begin{subfigure}[t]{0.4\columnwidth} +% \includegraphics[scale=0.2]{img-grafico.pdf} +% \caption{Segunda subfigura} +% \label{fig_subfigura_grafico2} +% \end{subfigure} +% \caption{Figura com subfiguras} +% \label{fig:tau} +%\end{figure} + Observe que, segundo a \citeonline[seções 4.2.1.10 e 5.8]{NBR14724:2011}, as ilustrações devem sempre ter numeração contínua e única em todo o documento: \begin{citacao} @@ -240,7 +242,7 @@ Muitos cientistas gostam de usar \LaTeX\ porque essa ferramenta possibilita escr \begin{equation} p+\frac{1}{2}{\rho}v^2+{\rho}gh = \text{constante}, - \label{eq:Bernoulli} +\label{eq:Bernoulli} \end{equation} \noindent em que $p$ é a pressão, $v$ é a velocidade e $h$ é a elevação, ou seja, a ``altura do tubo''. A \cref{eq:Bernoulli} pode ser deduzida a partir do \textit{Teorema Trabalho-Energia}. @@ -303,7 +305,7 @@ subdividida em alíneas \cite[seção 4.2]{NBR6024:2012}: \begin{alineas} - \item os diversos assuntos que não possuam título próprio, dentro de uma mesma seção, devem ser subdivididos em alíneas; + \item os diversos assuntos que não possuam título próprio, dentro de uma mesma seção, devem ser subdivididos em alíneas; \item o texto que antecede as alíneas termina em dois pontos; \item as alíneas devem ser indicadas alfabeticamente, em letra minúscula, seguida de parêntese. Utilizam-se letras dobradas, quando esgotadas as letras do alfabeto; \item as letras indicativas das alíneas devem apresentar recuo em relação à margem esquerda; @@ -343,13 +345,13 @@ subdividida em alíneas \cite[seção 4.2]{NBR6024:2012}: É uma boa prática dividir o seu documento em diversos arquivos, e não apenas escrever tudo em um único. Esse recurso foi utilizado neste documento. Para incluir diferentes arquivos em um arquivo principal, de modo que cada arquivo incluído fique em uma página diferente, utilize o comando: \begin{verbatim} - \include{documento-a-ser-incluido} % sem a extensão .tex + \include{documento-a-ser-incluido} % sem a extensão .tex \end{verbatim} Para incluir documentos sem quebra de páginas, utilize: \begin{verbatim} - \input{documento-a-ser-incluido} % sem a extensão .tex + \input{documento-a-ser-incluido} % sem a extensão .tex \end{verbatim} % --- @@ -438,7 +440,7 @@ Isso atende à norma \citeonline[seções 5.2.2 a 5.2.4]{NBR14724:2011} e \citeo Para usar hifenizações de diferentes idiomas, inclua nas opções do documento o nome dos idiomas que o seu texto contém. -O idioma português-brasileiro (\texttt{brazil}) é incluído automaticamente pela classe \textsf{abntex2}. Porém, mesmo assim a opção \texttt{brazil} deve ser informada como a última opção da classe para que todos os pacotes reconheçam o idioma. Vale ressaltar que a última opção de idioma é a utilizada por padrão no documento. +O idioma português-brasileiro (\texttt{brazil}) é incluído automaticamente pela classe {\small\textsf{abntex2}}. Porém, mesmo assim a opção \texttt{brazil} deve ser informada como a última opção da classe para que todos os pacotes reconheçam o idioma. Vale ressaltar que a última opção de idioma é a utilizada por padrão no documento. A lista completa de idiomas suportados, bem como outras opções de hifenização, estão disponíveis em \citeonline[p. 5-6]{babel}. @@ -451,7 +453,7 @@ Exemplo de hifenização em inglês\footnote{Extraído de: \url{http://en.wikibo O idioma geral do texto por ser alterado como no exemplo seguinte: \begin{verbatim} - \selectlanguage{english} +\selectlanguage{english} \end{verbatim} Isso altera automaticamente a hifenização e todos os nomes constantes de referências do documento para o idioma inglês. Consulte o manual da classe \cite{abntex2classe} para obter orientações adicionais sobre internacionalização de documentos produzidos com \abnTeX. @@ -462,7 +464,7 @@ A \cref{sec-citacao} descreve o ambiente \texttt{citacao} que pode receber como \section{Consulte o manual da classe \textsf{abntex2}} % --- -Consulte o manual da classe \textsf{abntex2} \cite{abntex2classe} para uma referência completa das macros e ambientes disponíveis. +Consulte o manual da classe {\small\textsf{abntex2}} \cite{abntex2classe} para uma referência completa das macros e ambientes disponíveis. Além disso, o manual possui informações adicionais sobre as normas ABNT observadas pelo \abnTeX\ e considerações sobre eventuais requisitos específicos não atendidos, como o caso da \citeonline[seção 5.2.2]{NBR14724:2011}, que especifica o espaçamento entre os capítulos e o início do texto, regra propositalmente não atendida pelo presente modelo. @@ -470,18 +472,25 @@ Além disso, o manual possui informações adicionais sobre as normas ABNT obser \section{Referências bibliográficas} % --- -A formatação das referências bibliográficas conforme as regras da ABNT são um dos principais objetivos do \abnTeX. Consulte os manuais \citeonline{abntex2cite} e \citeonline{abntex2cite-alf} para obter informações sobre como utilizar as referências bibliográficas. +A formatação das referências bibliográficas conforme as regras da ABNT são um dos principais objetivos do \abnTeX. Para obter informações sobre como criar entradas em arquivos \Verb[fontsize=\normalsize]|.bib| para diferentes tipos de referências (artigos em periódicos, artigos em anais de eventos, livros, capítulos de livros, etc.) e como utilizá-las, recomenda-se consultar os manuais \citeonline{abntex2cite} e \citeonline{abntex2cite-alf}, disponíveis nos links: + +\begin{itemize} +\item \url{https://tug.ctan.org/macros/latex/contrib/abntex2/doc/abntex2cite.pdf}, +\item \url{https://mirrors.ibiblio.org/CTAN/macros/latex/contrib/abntex2/doc/abntex2cite-alf.pdf}. +\end{itemize} + +Note que a classe UnB\TeX\ contempla atualizações mais recentes das normas NBR 6023 \cite{NBR6023:2018} e NBR 10520 \cite{NBR10520:2023} da ABNT, não consideradas no \abnTeX. Os arquivos de estilo \Verb[fontsize=\normalsize]|unbtexcite-en.bst| e \Verb[fontsize=\normalsize]|unbtexcite-pt.bst|, ambos para sistema autor-ano, implementam as alterações nas normas, além de customizar as citações para textos escritos em inglês. O estilo da referências bibliográficas é selecionado por meio do comando \Verb[fontsize=\normalsize]|\bibliographystyle|. Embora as normas da ABNT permitam citações utilizando o formato numérico, é recomendado o uso do sistema autor-ano em trabalhos acadêmicos. A razão é que a leitura por parte do avaliador fica mais simples. Basta ver o nome e o ano para se lembrar rapidamente da referência, sem precisar recorrer frequentemente à lista de referências, que fica no final do texto, tornando a leitura mais agradável. -No formato autor-data, considere chamar as referências usando o comando \verb|\citeonline| com maior frequência que o comando \verb|\cite|. Desse modo, a citação fica melhor incorporada ao texto, outra vantagem do formato autor-data. +No formato autor-data, considere chamar as referências usando o comando \Verb[fontsize=\normalsize]|\citeonline| com maior frequência que o comando \Verb[fontsize=\normalsize]|\cite|. Desse modo, a citação fica melhor incorporada ao texto, outra vantagem do formato autor-data. %- \subsection{Acentuação de referências bibliográficas} %- Normalmente não há problemas em usar caracteres acentuados em arquivos -bibliográficos (\texttt{*.bib}). Porém, como as regras da ABNT fazem uso quase +bibliográficos (\Verb[fontsize=\normalsize]|.bib|). Porém, como as regras da ABNT fazem uso quase abusivo da conversão para letras maiúsculas, é preciso observar o modo como se escreve os nomes dos autores. Na \cref{tabela-acentos} você encontra alguns exemplos das conversões mais importantes. Preste atenção especial para `ç' e `í' @@ -489,16 +498,14 @@ que devem estar envoltos em chaves. A regra geral é sempre usar a acentuação neste modo quando houver conversão para letras maiúsculas. \begin{table}[htbp] +\begin{center} \caption{Tabela de conversão de acentuação.} \label{tabela-acentos} - -\begin{center} -\begin{tabular}{ll}\hline\hline -acento & bibtex\\ -à á ã & \verb+\`a+ \verb+\'a+ \verb+\~a+\\ -í & \verb+{\'\i}+\\ -ç & \verb+{\c c}+\\ -\hline\hline +\begin{tabular}{ll} \hline +acento & bibtex\\ \hline\hline +à á ã & \verb+\`a+ \verb+\'a+ \verb+\~a+\\ \hline +í & \verb+{\'\i}+\\ \hline +ç & \verb+{\c c}+\\ \hline \end{tabular} \end{center} \end{table} @@ -509,14 +516,14 @@ acento & bibtex\\ As listas de ilustrações (figuras) e de tabelas utilizadas ao longo do trabalho são geradas automaticamente e incluídas entre o \emph{Abstract} e o Sumário. -Para definir um elemento que deverá aparecer na lista de abreviatura e siglas, próximo do texto onde a sigla ou abreviatura aparece, utilize o comando \verb|\nomenclature|. Por exemplo, para definir as siglas que aparecem no primeiro parágrafo do \cref{cap_intr}, foram utilizados os seguintes comandos: +Para definir um elemento que deverá aparecer na lista de abreviatura e siglas, próximo do texto onde a sigla ou abreviatura aparece, utilize o comando \Verb[fontsize=\normalsize]|\nomenclature|. Por exemplo, para definir as siglas que aparecem no primeiro parágrafo do \cref{cap_intr}, foram utilizados os seguintes comandos: \begin{verbatim} \nomenclature[A]{ABNT}{Associação Brasileira de Normas Técnicas} \nomenclature[A]{UnB}{Universidade de Brasília} \end{verbatim} -Para definir um elemento da lista de símbolos, próximo da equação onde o símbolo aparece, utilize também o comando \verb|\nomenclature|. Por exemplo, para definir os símbolos das equações da \cref{sec-mat}, foram utilizados os comandos: +Para definir um elemento da lista de símbolos, próximo da equação onde o símbolo aparece, utilize também o comando \Verb[fontsize=\normalsize]|\nomenclature|. Por exemplo, para definir os símbolos das equações da \cref{sec-mat}, foram utilizados os comandos: \begin{verbatim} \nomenclature[B]{$p$}{Pressão} @@ -527,14 +534,14 @@ Para definir um elemento da lista de símbolos, próximo da equação onde o sí \nomenclature[C]{$\psi$}{Ângulo de guinada} \end{verbatim} -Note que a letra \verb|[A]| de \verb|\nomenclature[A]| indica que o item pertence à lista de abreviaturas e siglas. Já as letras \verb|[B]| em \verb|\nomenclature[B]| e \verb|[C]| em \verb|\nomenclature[C]| referem-se, respectivamente, aos grupos de símbolos romanos e gregos, que compõem a lista de símbolos. As listas e seus grupos estão definidos no arquivo \verb|unbtex-example.tex|. A ordem de apresentação dos grupos em uma lista segue a ordem alfabética das letras que os designam. +Note que a letra \Verb[fontsize=\normalsize]|[A]| de \Verb[fontsize=\normalsize]|\nomenclature[A]| indica que o item pertence à lista de abreviaturas e siglas. Já as letras \Verb[fontsize=\normalsize]|[B]| em \Verb[fontsize=\normalsize]|\nomenclature[B]| e \verb|[C]| em \Verb[fontsize=\normalsize]|\nomenclature[C]| referem-se, respectivamente, aos grupos de símbolos romanos e gregos, que compõem a lista de símbolos. As listas e seus grupos estão definidos no arquivo \Verb[fontsize=\normalsize]|unbtex-example.tex|. A ordem de apresentação dos grupos em uma lista segue a ordem alfabética das letras que os designam. % --- \section{Ficha catalográfica com código Cutter-Sanborn} % --- A Tabela Cutter-Sanborn é uma codificação elaborada por Charles Ammi Cutter e, posteriormente, expandida por Kate F. Sanborn. Na Tabela Cutter-Sanborn, é possível consultar qual sequência numérica representa a sequência do sobrenome do autor. -Em vários sites da internet\footnote{\url{https://www.tabelacutter.com/}}\footnote{\url{https://cuttersonline.com.br/registrador-gratuito}} há ferramentas online para obtenção do código. Se o nome do primeiro autor do trabalho for, digamos, Carlos Lisboa, a entrada da ferramenta online deverá ser: \textbf{Lisboa, Carlos}. Nenhuma outra informação é necessária para gerar o código que, no caso desse autor, é \textbf{769}. Considere apenas esses três números. Eventuais letras devem ser ignoradas. No arquivo \verb|*.tex| principal do relatório, na linha que tem o comando \verb|\numerocutter| troque por +Em vários sites da internet\footnote{\url{https://www.tabelacutter.com/}}\footnote{\url{https://cuttersonline.com.br/registrador-gratuito}} há ferramentas online para obtenção do código. Se o nome do primeiro autor do trabalho for, digamos, Carlos Lisboa, a entrada da ferramenta online deverá ser: \textbf{Lisboa, Carlos}. Nenhuma outra informação é necessária para gerar o código que, no caso desse autor, é \textbf{769}. Considere apenas esses três números. Eventuais letras devem ser ignoradas. No arquivo \Verb[fontsize=\normalsize]|.tex| principal do relatório, na linha que tem o comando \Verb[fontsize=\normalsize]|\numerocutter| troque por \begin{verbatim} \numerocutter{769} diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex index a06f45b898..927563d3e7 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex +++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex @@ -7,13 +7,11 @@ Sugiro que você guarde todas as figuras na pasta ``figuras'' para que seu projeto fique mais organizado. A \cref{fig:logolatex} mostra como é fácil inserir uma figura com legenda e referência à fonte. \begin{figure}[htb] - \centering - \begin{minipage}{0.6\linewidth} - \centering - \includegraphics[width=\linewidth]{1280px-LaTeX-logo.png} - \caption{Logo \LaTeX.} \label{fig:logolatex} - \source{Wikimedia Commons \cite{wikimedia-latex}.} - \end{minipage} + \begin{center} + \includegraphics[width=0.5\linewidth]{1280px-LaTeX-logo.png} + \caption{Circuito com diodo túnel.} \label{fig:logolatex} + \legend{Fonte: Wikimedia Commons \cite{wikimedia-latex}.} + \end{center} \end{figure} Além de figuras, é possível inserir caixas de texto de diversos tipos, como axiomas, teoremas etc. @@ -30,6 +28,13 @@ Além de figuras, é possível inserir caixas de texto de diversos tipos, como a \end{enumerate} \end{exercise} +\section{Exemplo} + +\begin{example} + Einstein usaria um editor WYSIWYG ou \LaTeX? \\ + Einstein era físico. Portanto, usando o teorema LaTeX-WYSIWYG, concluímos que ele usaria \LaTeX. +\end{example} + \section{Algoritmo} O \cref{alg:NNMPC} é um pseudo-código para obtenção de um controlador preditivo baseado em modelo e em redes neurais. diff --git a/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex b/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex index 9e29135352..ee18e6f531 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex +++ b/macros/latex/contrib/unbtex/unbtex-example/capitulo4.tex @@ -32,9 +32,4 @@ O WYSIWYG (ou ``What You See Is What You Get - O que você vê é o formato fina \begin{proof} Físicos gostam de equações bonitas. Editores What-You-See-Is-What-You-Get não são apropriados para fazer equações bonitas.\footnote{É certo que há editores WYSIWYG baseados em \LaTeX, mas eles não nos dão o mesmo nível de controle.} Logo, se algum físico preferisse usar um editor WYSIWYG no lugar de \LaTeX, não seria muito inteligente. Como todo físico é inteligente, o teorema está demonstrado \textit{ad absurdum}. -\end{proof} - -\begin{example} - Einstein usaria um editor WYSIWYG ou \LaTeX? \\ - Einstein era físico. Portanto, usando o teorema LaTeX-WYSIWYG, concluímos que ele usaria \LaTeX. -\end{example} \ No newline at end of file +\end{proof} \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.eps b/macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.eps deleted file mode 100644 index ac3d2348f6..0000000000 Binary files a/macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.eps and /dev/null differ diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.pdf new file mode 100644 index 0000000000..95bf0aaf65 Binary files /dev/null and b/macros/latex/contrib/unbtex/unbtex-example/figuras/blockdiagram.pdf differ diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf new file mode 100644 index 0000000000..fa25eb8161 Binary files /dev/null and b/macros/latex/contrib/unbtex/unbtex-example/figuras/bodediagram.pdf differ diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/circuito.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/circuito.pdf new file mode 100644 index 0000000000..4b54436935 Binary files /dev/null and b/macros/latex/contrib/unbtex/unbtex-example/figuras/circuito.pdf differ diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/curva_diodo.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/curva_diodo.pdf new file mode 100644 index 0000000000..760adf341d Binary files /dev/null and b/macros/latex/contrib/unbtex/unbtex-example/figuras/curva_diodo.pdf differ diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/img-grafico.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/img-grafico.pdf deleted file mode 100644 index 96837c3333..0000000000 Binary files a/macros/latex/contrib/unbtex/unbtex-example/figuras/img-grafico.pdf and /dev/null differ diff --git a/macros/latex/contrib/unbtex/unbtex-example/figuras/img-marca.pdf b/macros/latex/contrib/unbtex/unbtex-example/figuras/img-marca.pdf deleted file mode 100644 index da4dfde3f8..0000000000 --- a/macros/latex/contrib/unbtex/unbtex-example/figuras/img-marca.pdf +++ /dev/null @@ -1,1526 +0,0 @@ -%PDF-1.5 % -1 0 obj <>/OCGs[5 0 R 44 0 R 82 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - Print - - - - - 2012-04-16T16:28:23-03:00 - 2012-04-16T16:28:23-03:00 - 2012-04-16T16:27:08-03:00 - Adobe Illustrator CS5.1 - - - - 256 - 64 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAQAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq+ZvPnk3XvNn/OQ+o6Dp+s3GjQXFlBez3EbSMAkUCR/DEskYJLUHUdzilkf/AELFqH/U +6p/wLf9VsUPGvzi8veYfy980waLF5kv7+OezjvFneWSM/HJJHx4h26GLxxSGf8A5a/kjrHnDyTp vmO485anYy34lJtRzcKI53iUhjKpPJUDdO+Ko3zb/wA46+ZtJ0DUNV07zzfXMmn20tybSYSJ6noo XKiQTniSFoKrihnX/OM3rv8AlVa3M8rTTXV3dSvI7MzEiT09yxP8mKvVcVdirHfPPlnV/Mejx6fp evXPl6ZZllkvbMVlaMI6mKvJCoJYNUHtir5G/OfyD598nanF+mtXutb0y6Ymy1WWSVgzruUdXeTh IKV6mvY9aKQ9x/5xu/NqXzTo7+XNanMmvaUgaGeQ1e5tdlDEndnjNFY9wQetcVL2rFDzj88/zRj8 ieVGNo6nX9S5Q6ZGaEpt8c5HhGDt4tTFXmP5Tf8AOP17r2hrr3nTU9St2vv3tlYQzmOT023Es7OH NXrUKKbbnrQKXtX5kyzpoNokVzPai41PTreaW2leCX0pruOORVkjKsvJGI2OU5jsPe7DswA5DYBq EzuLFiJrYoL/AAlo/wD1ddb/AO4vf/8AVXIUO8/Nt/Nz/mY/+Vcf1JN5h8uoLnSdK0rWtYt73V7p rf61Jql/IIYo4JbiR1T1gGfjDxWu1TU1pTIyFkAE7uTp9RtKc4YzGEbrghubAHTluzSbUvL3lHSr a31HUpFT7EL3k0lzdTsOtOXOWRu9FG3hlxlGA3Lq44smomTGPyAAH6Al5/MzRAeX1DVvq/U3H6Ou uNK0rw4erT/YZD8wL5Fu/kzJ/Ohfdxx/s+1PtG17R9atTdaXdx3UIPFyh+JG/lkQ0ZG9mAOWwmJC wXEzYJ4jUxRYP+bnlnzDJpV1r/l7U9QgvLSCQz6fBe3UUUihdpY0jkVVkj+1SlGFRStDlOeMq4gS 7XsjVYxMY8kYmJPMxiT7jY5H7Ho+ZLpHYq7FXYq7FXYq7FXYq7FXYq7FWKWPkGC1/MjUfPBvHkuL 6xTT1sylFjRWjYkPy35GLwxVleKvkb/nLr/yZOm/9saD/qKucUh71+Qn/kofLf8Axgk/5PyYoZRr Oo6BcWV7pd1qVrA88UlvKsksfJfUQqaozDx6YqlP5c6JonlDybp/l621aG/hsvWKXZaNC/rTPN0V mG3qU64qyCbXNFhoZtQtow32ec0a1p8ziqn/AIl8uf8AV1s/+kiL/mrFV0Wv6FNIscWpWskjbKiT Rsx+QDYqg/OnlHSvN3lq90HU1rb3aUSUAF4pRvHKlf2kbf8ADpir4fik8zflf+YgYj0tV0O5oy1I SaLuPeOaM/cfHFk+2bXz95bn8kJ5zNyE0Q231qSU7lQNmjI/nD/Bx/m2xYvCvy78sal+cH5g3X5h eZ4WXy3YyiPSrB90k9IkxwjxSOvKQ9Gc08aKX0uAAKDYDFDDfzXfh5atX/l1XTG+68jOUaj6fi7T skXlP9Sf+5KTfpk/zZicbleCt0W5fUPP+jRr8S2dte3cngNo4F+/1zk8XqmPJc8eDTzPeYj7z+hL dO1ePUdU1DzDKRJLeTyR2EjUJjsoWMcKJ/KJAvqGnUtvlZncjJvnh4IRxjoN/OR3Py5fBNP0yf5s PG0eClGp6v8Aoi8XzPZfBdWYB1FE2+tWa/3scg/aKLVoz1BHgTgGSjYcjHh8SPhS5Hl5S6H9b2BW jliDKQ8ci1BG4KkfxzZc3miCCuwoY1+ZHm+Hyh5K1XXpCPVtoSLRD+3cSfBCv/BkV9q4q8N/5xV8 7XkOta15O1d3W4uXe+tkmDCQXKHjdRsG3DMKNT/JbFJfS+KHlf56+QvL955O17zKIJY9etLX1ory GeZD+5CjeNXEZHBabrirzL/nHb8uPL/nTy7qepeYZLy5ntrz6tCqXc0ShPSR60jZSTVsUl350/lI Py702Lzd5M1a+sUW5RLu3Nw3JXkqVlSQcWPxKAwavzxV6N5DttM/N38stJ1DzZDJLqVt9Ytjd28s lu4kVgplX0mRasqISCCK9qYofOnljzb5z/LrzTFrkbz3WlLdXFjKsrs0N1HA4WaOpJ4uPhYeBoem KX2p5b8x6T5k0O01rSZvXsL1BJE3Rh2ZHHZlOzDxxQ35g8vaR5h0uXStWhaexmKtJGkssLEowZaP C0bjcdmxV4Ho35WeWf8AlfmpeWZ2u59AtdJGpW1k93PtIXhj4s6sshUGRjTl88VfQunafaadYwWF nH6VrbIIoI6s3FFFAKsSx+k4q+Tv+cuv/Jk6b/2xoP8AqKucUh71+Qn/AJKHy3/xgk/5PyYoUfNn 5A/lr5mvb3Uryxlh1W+LPNfQ3Ewb1CAA/pszRbU6caYq+KBpxTWRp0xIK3H1eQgUIo/A7HFk+sbf /nEr8tIjWS81WeopR54AK+I4QKfxxRbrv/nEv8tZY6QXeqWzjoyzQsD8w8J/CmK281b8mLXyd+eP k/RRetqVlezJfo0sfplfqzM5jajMG/uh4demK2+tcUPCP+co/wAs/wBMaEvnDToq6jo6cdQVRvJZ 1rzPvCST/qk+AxSHhP5dya15qn0z8tZdW+o+XtQvxdSq5/bVDVUJ7sF+BOheh64qX3Do2j6boulW ulaZAtvYWcaxW8K9FVf1k9Se5xQjMVYN+cr8PJiv/LqOnn7rqPMbVfQ7bsUfv/8AMl/uS82/Sp/m zW8Tu/CURf3UV615aX09ncPCbZ3gKCsRbkR8av38MRIjcMvDBjwyAIu93Wl3FaWsNrD8MMCLHGte ioKD9WDiWcDIknmVb9Kn+bDxMfCQWta1FHpV36rijQyKFJpyJUgKPEnpgttw4SZiu99BaNBJa6LY wT/DJBbRJL4ApGA36s3MBURfc8dmlxZJEdSUbk2p43+YL/42/Nzy95EiPqaVoVNb8wqD8LMlPQhY D/WFfZ8Vec/nvpl55A/ODSvPWloVgv5Eu2A2U3ENEuYifCWMgn/WOKQ+oNJ1Oz1XS7TU7J/Us72F Li3fxSRQynb2OKGN/m9/5K/zT/2zLn/k2cVeEf8AOOP5o+UPKPlXVbLWpp0uZb36wiQW8049Mwoo JaNWC7oepxSUX+Yv5naX+bT2nlDQr620PRRcLPf6trE0Vt6pQEIkMRYsR8Vd6VNBt3Ve++RvK2l+ VfKmnaFpb+raWkQpcbVlZyXeU0qPjZi2KHlP5ceRtG86/lf5i0PVE+CXXtRe2uABzgmVl4Sp7juO 4qO+KvO/y38569+TXny78oeauS6FPKPXYAsiFto72DuY3UfGB2/ylpil9awzRTRJNC6yQyKHjkQh lZWFQykbEEYoeS6V/wCtQaz/AOAyn/UTb4q9cxV8jf8AOXX/AJMnTf8AtjQf9RVzikPevyE/8lD5 b/4wSf8AJ+TFDP8AFX5+kA/mWQRUHWqEH/mKxT0foFihpmVFLuQqqKsx2AA6knFWP3HlXy1rPmTS PN/I3F/pMc0WnzwyhoeMytHJULVW+0R7HFWQ4q8d/wCcgPzJu9LsofJPlsG480+YQIBHFu8MEx4b eDyn4V8BU+GKvmz8w/y88xflv5hsre6mrK8UV3ZX8FVX1FALhD/NFLt8qHauLJ9d/k3+Y8Hnvybb 6g7KNWtaW+rQjak6j7YWv2JB8S/SO2LFnWKsA/PJ+HkGV/5byyP3XKZjav6Hcdhj/CP82X3PC/0p /lZqLeq8J36U/wArG18JB3Xmuxtqhpebj9hPiP8AQfTkhElthpJS6JHe+eNQkqtoogX+c/E347DL BBy8egiPq3T/APJ3yre+cvPVq96zz2GmFby+dyWFEascW/8AvxwBTwr4Zdix8UqcTtjVR02nPDtK Ww/X8HtX59fmJF5c8tSaPZyD9M6xG0SAHeK3b4ZJD4FhVV99+2ZeoyUOHveX7A7OObLxy+iH2noH oev61Y6Hol9rF+3Cz0+B7icjrxjUtRfFj0A8cyXQPAfyk1H81bUav5xg8itrtx5tn+tjUH1S1s6Q KWEcSRShnCgk0JpVeO1BXFKL/OGL81PO3k6Wwvvy4NgbJxew366vZXLRekp9SkSBGflGWHEHrTrT FUd/zij52/SnlO68sXUha70STnbciSTaTkkAV/33JyHyKjFS9G/N7/yV/mn/ALZlz/ybOKHmv/OI P/KEaz/20z/1Dx4pLLfz58gaB5h8g6xqM9rGuraTazX1pfqoWUfV0MjoWAqyuiEUPz64oDC/+cRP MmqX+g65ol1K0tppEltJZczUot0Jeca16KDDUD3OKSy7/nHr/lE9Z/7b2o/8SXFCL/Ov8prTz95e Jt1SLzFYKzaZcn4eXdoJD/I/av2Tv41VeX/848/m1d6Pf/8AKuvNzPbvFIYNKluPhaGUGhtJC3QE /wB3Xofh6UopLOtK/wDWoNZ/8BlP+om3xQ9cxV8jf85df+TJ03/tjQf9RVzikPevyE/8lD5b/wCM En/J+TFDP8VfnveXcNn+YM93OSIbfVnllIFTxS5LNQfIYp6PrOP/AJyc/KF0DNqVxGT1RrWeo/4F WH44opKfNX/OTf5ZPoGpW2nT3N7eT2ssVvGLd41MkiFVDNJxoKnc0xWmS/8AOO8Dw/k35dR6VKXL inhJeTOPwbFSyD8xfPmleSPK1zrl+Q7oPTs7WtGnnYHhGP1sewqcVeUf849+TNU1zVr381fNYM+q ak7/AKJEgoFU/C8yA9F4/u4x2WviMUs//Or8uIvPXkyeyhQfpiyrc6TIdj6qjeIn+WVfhPatD2xQ +Vfyb/MS6/L7zuk92HTS7k/VNatiDyCcqc+J35wtv40qvfFJfcsM0M8Mc0LrJDKoeORCCrKwqGBH UEYoeef85AP6f5Z3r/yXFq33TqcxtV9Du/Z8XqgPKX3Plp9ckp8C1Pic1vhveDThBz393PUPIeJ/ ZGwyYiA3RxxCHws0doeianrmq2+laZA1xe3ThIo1/FmPZVG5PYYQL2as+eGKBnM1EPp1Ljyt+Snk OOCVlutYuauY0+GS7uabnfdYo+lew/yjvmWMUf6ReEMcvaeosbQH+xH6z+NnzL5i8w6r5h1i51fV ZjPeXLcnboqj9lEH7KqNgMwybNl7nT6eGGAhAVEPav8AnIn8xtC1ZdG8i6bq1ubXVbqB9c1CKVHi gt/VAQO6llHxfvG8Ao7HNs+Th7l5cufL8uj20Xl+5t7rS7REtrdrSVJolWNF4oGQsNk44oRl5d2d nbSXN5NHb20Y/ezTMqRqCafEzEAbnFXxzpev6P8Alt+flxc6XeQ3Pls3TQzS20iyxCzvAGZOUZIP 1dmFR4pil9CfnB5s8vTflBr15Z6razQXtq1tayxSxyLLJKAPTShPJirVoNwN8UPM/wDnF7zz5P8A L/lLVrXW9YtNNuJb/wBWOK5lWNmQwovIcqVFVOKSnn5v/nNpWvaLceSvIfPzBrWtL9Wmks0Z44oX NJKNSjll+Hb4QDUnFDIPyg8oaP8AlT5OP+JtStLHV9VY3V8080caqIlAWFGYjn6QarEftMe1MVSL /nGjzr5ffy/rdpd6nbW99c63cXNtZzzJHI0VykXD00dgxBcMNu+KvdcVeE/85Ffkq2v2z+bvLsFd dtUrf2sY+K6iQbOgA3lQf8Eu3UDFIYn/AM42+bNX8y/mtdX2szCe+i8vNafWD9uVYbm34s5J+J+P U96VxUvovX/N/lfy76H6d1W20z61z+rfWZFj9T0+PPjyIrx5rX54ofHv/ORfm/RfNH5iG70a6W9s bWzhtFuUqY2ZWeRuBIFQDLT54pD2r8iPzX8h2X5ZaRpWra5aWGpWAmint7h/RIBndoypfZqxsvQ9 cVL2u2uILm3iubeRZYJ0WSGVTVWRxyVgfAg4ofn/ACxRTfmO8UqLJFJrBSSNwGVla6oQQdiCMU9H 3NB5A8iW6FIPLmlxITUqllbqK9K0CYoY/wCc/wApfy7v/LOqxp5c0+3uTbTPBc2lrFDMsoQlGVol ViQw6d8VSL8pvN2ieUfyY8uS+bb1NIcrdokd0GSRhFdygBY6c2IQqdhirya71DVPz5/Nm3sYvUg8 paZVwu44WqsOcjeEtwaKPDbwOKX1fZ2ltZ2kNpaxLDbW6LFBCgoqIg4qoHgAMUKuKvk3/nKL8s/0 PrqecNNippurvwv0UbRXlCeXsJlFf9YHxxSGQ/8AOO/55aPZ6F/hXzZqCWX6PH+4q+uDxjaA/wC6 Hc7Boz9iv7O3bdUh6J+ftxBc/lNd3NvIssE72kkMqmqsjyoysD4EHMfU/S7v2d/xuPuP3Pk3MB9E diqI07Tr7Ur6CwsIHuby5cRwQRirMx7DCwyZIwiZSNRD6K0jTvLH5KeUv0pqwS983aghVIkNWZuv oxmnwRJt6j9z/sRmUAMQs/U8XmyZe1M3BD04Y/iz59weCeafNWteaNYm1bV5zNcSmiLuI40/ZjjX 9lR/ad8xZSJNl67S6THggIQFD7/elGByX21/yrL8tv8AqU9G/wC4fa/9U8274+m+kaFomi2zWuj6 fbabau5leCzhjgjMhAUuVjCgsQoFfbFVa/0+w1GzlstQtoryzmFJra4RZYnANaMjgqdx3GKpF/yr L8tv+pT0b/uH2v8A1TxVEv5D8jvYR6c/l3TG0+KRporM2duYVkYAM6x8OIYgUJpXFUN/yrL8tv8A qU9G/wC4fa/9U8VTbSfL+g6PGY9I02106NvtJaQRwKfmI1XFVms+WPLeuej+mtJs9U+r8vq/123i uPT5058PVVuPLiK060xVAQflz+XtvPHcW/lfSYZ4WEkUsdjbK6OpqrKwSoIO4IxVkOKuxVJLDyT5 R0/WpdcsNItbTVplZJruCNY3cOQX5cKA8iKkkYqidZ8seW9c9H9NaTZ6p9X5fV/rtvFcenzpz4eq rceXEVp1piqWf8qy/Lb/AKlPRv8AuH2v/VPFXf8AKsvy2/6lPRv+4fa/9U8VZFBBDbwxwQRrFBEo SKJAFRUUUVVUbAAdBir4A/8AKmf9vr/sbxT0foFih2KsC/ObXfKPl7yout+Y9CtdfjgnSG0tLqOG T95N9ooZkkC/ChJoO2Ksp0Ly15d0WN20jR7PSHuFU3KWcEMHIrWgcxKvLjyNMVTTFXYqhtS0vTNU s3stTtIb6ylp6ltcxpNE3EhhyRwymhFemKpH/wAqy/Lb/qU9G/7h9r/1TxVjH5/wQ2/5T3kEEaxQ RSWiRRIAqKiyqFVVGwAHQZj6n6Xeezv+Nx9x+58mZgPoitY2N5f3kNlZQvcXdw4jggjBZmZjQAAY sMmSMImUjQD6Z8kfl+fyz8rza3JpsuuebrlAi21ohl9IsKiFWAPFf9+Sd+g7VzIw8MXVyeG13aH5 7KMfEMeEdT18/wBQePeafK/5veZ9Zm1bVtC1Ca5mNFUQSBI0H2Y41/ZVf898xpCRNkH5F6TS6rRY ICEJxAHmlP8Ayq78xf8AqXNQ/wCRD/0wcMu4/IuT/Kum/wBUj818f5U/mRISF8u3wp/NEV/4lTHg l3H5IPa2lH+Uj832pm1fL3Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWB+dvzt8g+TdSl0rWbmZ dSiiWYW0UEj8g4JUBwOFTTucVfEkWsOPMSazInJxeC8eMdz6vqFcWT6ih/5y98glj62k6qi02KJb Oa/IzJiil8v/ADl5+XYQmLS9Xd+ytFbKPvFw36sVp5p+Zf53W/5k6n5e0a002Sw0y31GGaVppFd5 XZhGvwKOK8Vdv2jWuK0+vcUOxV2KuxV2KvNv+chv/JXah/xmtv8Ak8uY+p+l3ns7/jcfcfufJOYD 6I9y/Ie+/LPy9pra7rWpwQeYZnkhiSZqmGEUFUUA0Mld2PbYd634JQjuebynb2PVZpeHjiTjHd1P 7Hrn/K4Pyz/6mG1+9v8AmnMr8xDv+95z+R9V/qclOT86PyvRuLeYICf8lJWH3qhGD8zDv+wsh2Lq z/AfsaT86vyudgo1+AE+KTKPvKAY/mYd/wBhU9i6v+Yfs/Wq/wDK4Pyz/wCphtfvb/mnD+Yh3/ex /kfVf6nJ/9k= - - - - - - uuid:891fbdbb-3b31-5243-bc95-47036c1e266b - xmp.did:FA7F1174072068118C14B004519BCB3A - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - xmp.iid:F97F1174072068118C14B004519BCB3A - xmp.did:F97F1174072068118C14B004519BCB3A - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - - - - saved - xmp.iid:F77F1174072068118C14B004519BCB3A - 2012-04-16T14:53:41-03:00 - Adobe Illustrator CS5.1 - / - - - saved - xmp.iid:F87F1174072068118C14B004519BCB3A - 2012-04-16T15:48:59-03:00 - Adobe Illustrator CS5.1 - / - - - saved - xmp.iid:F97F1174072068118C14B004519BCB3A - 2012-04-16T16:24:11-03:00 - Adobe Illustrator CS5.1 - / - - - saved - xmp.iid:FA7F1174072068118C14B004519BCB3A - 2012-04-16T16:27:08-03:00 - Adobe Illustrator CS5.1 - / - - - - - - Print - - - False - True - 1 - - 226.666504 - 71.999512 - Points - - - - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - White - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 0.000000 - - - Black - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - CMYK Red - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - CMYK Yellow - CMYK - PROCESS - 0.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Green - CMYK - PROCESS - 100.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Cyan - CMYK - PROCESS - 100.000000 - 0.000000 - 0.000000 - 0.000000 - - - CMYK Blue - CMYK - PROCESS - 100.000000 - 100.000000 - 0.000000 - 0.000000 - - - CMYK Magenta - CMYK - PROCESS - 0.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=15 M=100 Y=90 K=10 - CMYK - PROCESS - 14.999998 - 100.000000 - 90.000000 - 10.000002 - - - C=0 M=90 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 90.000000 - 85.000000 - 0.000000 - - - C=0 M=80 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 80.000000 - 95.000000 - 0.000000 - - - C=0 M=50 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 50.000000 - 100.000000 - 0.000000 - - - C=0 M=35 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 35.000004 - 85.000000 - 0.000000 - - - C=5 M=0 Y=90 K=0 - CMYK - PROCESS - 5.000001 - 0.000000 - 90.000000 - 0.000000 - - - C=20 M=0 Y=100 K=0 - CMYK - PROCESS - 19.999998 - 0.000000 - 100.000000 - 0.000000 - - - C=50 M=0 Y=100 K=0 - CMYK - PROCESS - 50.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=75 M=0 Y=100 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=85 M=10 Y=100 K=10 - CMYK - PROCESS - 85.000000 - 10.000002 - 100.000000 - 10.000002 - - - C=90 M=30 Y=95 K=30 - CMYK - PROCESS - 90.000000 - 30.000002 - 95.000000 - 30.000002 - - - C=75 M=0 Y=75 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 75.000000 - 0.000000 - - - C=80 M=10 Y=45 K=0 - CMYK - PROCESS - 80.000000 - 10.000002 - 45.000000 - 0.000000 - - - C=70 M=15 Y=0 K=0 - CMYK - PROCESS - 70.000000 - 14.999998 - 0.000000 - 0.000000 - - - C=85 M=50 Y=0 K=0 - CMYK - PROCESS - 85.000000 - 50.000000 - 0.000000 - 0.000000 - - - C=100 M=95 Y=5 K=0 - CMYK - PROCESS - 100.000000 - 95.000000 - 5.000001 - 0.000000 - - - C=100 M=100 Y=25 K=25 - CMYK - PROCESS - 100.000000 - 100.000000 - 25.000000 - 25.000000 - - - C=75 M=100 Y=0 K=0 - CMYK - PROCESS - 75.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=50 M=100 Y=0 K=0 - CMYK - PROCESS - 50.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=35 M=100 Y=35 K=10 - CMYK - PROCESS - 35.000004 - 100.000000 - 35.000004 - 10.000002 - - - C=10 M=100 Y=50 K=0 - CMYK - PROCESS - 10.000002 - 100.000000 - 50.000000 - 0.000000 - - - C=0 M=95 Y=20 K=0 - CMYK - PROCESS - 0.000000 - 95.000000 - 19.999998 - 0.000000 - - - C=25 M=25 Y=40 K=0 - CMYK - PROCESS - 25.000000 - 25.000000 - 39.999996 - 0.000000 - - - C=40 M=45 Y=50 K=5 - CMYK - PROCESS - 39.999996 - 45.000000 - 50.000000 - 5.000001 - - - C=50 M=50 Y=60 K=25 - CMYK - PROCESS - 50.000000 - 50.000000 - 60.000004 - 25.000000 - - - C=55 M=60 Y=65 K=40 - CMYK - PROCESS - 55.000000 - 60.000004 - 65.000000 - 39.999996 - - - C=25 M=40 Y=65 K=0 - CMYK - PROCESS - 25.000000 - 39.999996 - 65.000000 - 0.000000 - - - C=30 M=50 Y=75 K=10 - CMYK - PROCESS - 30.000002 - 50.000000 - 75.000000 - 10.000002 - - - C=35 M=60 Y=80 K=25 - CMYK - PROCESS - 35.000004 - 60.000004 - 80.000000 - 25.000000 - - - C=40 M=65 Y=90 K=35 - CMYK - PROCESS - 39.999996 - 65.000000 - 90.000000 - 35.000004 - - - C=40 M=70 Y=100 K=50 - CMYK - PROCESS - 39.999996 - 70.000000 - 100.000000 - 50.000000 - - - C=50 M=70 Y=80 K=70 - CMYK - PROCESS - 50.000000 - 70.000000 - 80.000000 - 70.000000 - - - - - - Grays - 1 - - - - C=0 M=0 Y=0 K=100 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - C=0 M=0 Y=0 K=90 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 89.999405 - - - C=0 M=0 Y=0 K=80 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 79.998795 - - - C=0 M=0 Y=0 K=70 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 69.999702 - - - C=0 M=0 Y=0 K=60 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 59.999104 - - - C=0 M=0 Y=0 K=50 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 50.000000 - - - C=0 M=0 Y=0 K=40 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 39.999401 - - - C=0 M=0 Y=0 K=30 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 29.998802 - - - C=0 M=0 Y=0 K=20 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 19.999701 - - - C=0 M=0 Y=0 K=10 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 9.999103 - - - C=0 M=0 Y=0 K=5 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 4.998803 - - - - - - Brights - 1 - - - - C=0 M=100 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - C=0 M=75 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 75.000000 - 100.000000 - 0.000000 - - - C=0 M=10 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 10.000002 - 95.000000 - 0.000000 - - - C=85 M=10 Y=100 K=0 - CMYK - PROCESS - 85.000000 - 10.000002 - 100.000000 - 0.000000 - - - C=100 M=90 Y=0 K=0 - CMYK - PROCESS - 100.000000 - 90.000000 - 0.000000 - 0.000000 - - - C=60 M=90 Y=0 K=0 - CMYK - PROCESS - 60.000004 - 90.000000 - 0.003099 - 0.003099 - - - - - - - - - Adobe PDF library 9.90 - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/ExtGState<>/Properties<>/Shading<>>>/Thumb 91 0 R/TrimBox[0.0 0.0 226.667 71.9995]/Type/Page>> endobj 84 0 obj <>stream -HlW[%K ? tM/BD҅KDH'gǷ?~/~x*ý_aR+PY;ۜ8-8>hW=avz|V뗗ӇlݰFuǽ3yh,|3Yj{`=[LYT\p,cᎏy|`ǀׄt\?k?aVl?H޴)N.\:2r/ީPA*ON, -}m)VΑ l RCU{B>ns}9vu;/id!mpSjk0fH5g /7m^m&+@No ](X~<9[K<(%P|0eJ,>lL -d"2soLeǠV}s->e͙6/Pyy>Pa@%Y8B ]L _N_~cVp$@,, EQ*[`4<{#%La /Lˈ(CQQ\{iV`!澴<2` PvWZD)p)a>4RUD 7+6Xb(`'{Byc3le;(y(rA^Y" -Y)2P6Jj -B4&0:b ,ҏd~&ĥnF%:7MS%ؒIL2+jJE̹c :]0s|B$6Bކ!DqP&0hpS!r7)uFBXÃL:`&gf - v܅)*n*6= %AHBA8`3THyм0Ohȧz֏R X`Ve>AWaOڥ*B Wo{'`ŵBBؓL"S. ~D -E@:J"T:TV>Fvjs[0TK4@ykCx*QDފDJvȘ%5&[|.b.JCl؈qwS|%B4 B!Œc_̧2&XHFK-2c2Jt[YD,vHZlWbHuC9J\jB"{,7[\ggWMeag7Cu%CcXzLJ~lkWxeGUvԧfEds?kceGD4Mqw3gk; )!Af "L7 -%Aٔ4Ylr+k%$2hN8ͣ@!û|w{J^aqtc\(u++Sm;yz6>) VԇaóB{mf+ftܒ3^Iğ"aVgbfFFarɔKbS{wQ֟5pđGHHwhǐŪY8ZzӜ8dƃ!ɠ1Y)ٻ*T-D`,ɂF`)ڶbax@Nf&@9Cm -Gc>{뒰*aښr:hca*6K,<d% /B3xdʟ^"K[.hvQCI7RA QkNe/3[A(WL@p?8Zkcw/z⻍&tFJg -3tpL;޲)W4~ʁE69 -i!7su}lSC(aJłHz%ٹ~r.3-99{){2a%:bō?D=ON{;S5!!tY@w *?:m@FBU8΁.-pEٽ$V6jkCNFu#LS[fbVC)""8a}dcB˵ei~* A5Xpz%%A=} -rX \$6 -DEИv!ˆ7`S[,QWn+۫׈'>ԘwX=9rb^5Zv -:a/b[쏥Ot$¾iNQ}7mWy#K 9e֡`Q\j9Tu%52 ab)A$sxFiW#SDdO/PFO1($CydO)<xU'̢#aA6F2s(`^ --=K{׍Q0;p L=Uy hJ$cg#2eY9w߻긆cD?.SgW'g:9^ L"dz5AՁsDs6#C>ÐKgY٦3EP0:uMG˒@"3&S¯rGT_dREu^:NqDe]UOƽBuE˲M-]a`lb}?(oВa+D,>3{J6領#='vZ0;]_ǎs@ܗԆȁh@?Mɪb[EM6yj;Ĭe4Z3y2 -Z~D+[Gֽt[Br&ЭL[ b6(!5b!;r̖3B=`ukdF.ݦ&l -Moe: oKg@z@+5C\:,yى_hn58Yl3٩wXlI җݙ&,:IE,`Ӗ%L`m*!IUԘ*C"6,Q/QTzs,V@TMHoįfnDo/FOF (o9ʸ,BiWL\,lRmPU޻yGIokJCbAd~ -r¢:ga'NS$*ͧ^ %d.\oF{!Zˁ[#}z47~GK b'֑Ӥ~B:yqTeLC{0&+f([tمXuڏ|][ٳXT)ꑺp> %f`".ies3oΉ.tihBf1|S<9C@⪐Y n7/# 58QnDclB -$"w>=/׿owc^u-m$QQ}b<1_>_>}I/-]D6 #kIKIkO7&dCJ@MXm fI#pk= [btYsX?ôXeK,YsN~gq% gNct6 -6Uc1zc6 XT`QV=}1% 17&]BqdFӬxIs^@L\9Pr\hw%MΥ1JR: (dAuɰn.[J}.\mPKO -RO"֡u!u>ʀދ'\mc'[9*|-N#k_D]Lc/7ꕵhX{i(j#\܁nԛE!cTw;Dm_;5IhK)քBٻ\48'Kfũ[CV +L1VAR^4dN5-СmɱsΩqsG7&[V1$͹d6rV8bI -'!ܫ$nЖq[3.H!yy%-vjV޴&y*Yy?R =>"nY>hb]7<#ֈDian`)RQD*Z&/psHu -#~-¶w z\>+x-KZ$'k@Ko/v&&I]Jn.})M+%AOHSim$٦(c",[MO,6%kY$!JImx&,L*@G1Y*8'^EHLpPunyҚ\g/OUs,$̩ٽj,XUrAhWQɕt^..XE4Z٪ l)}Bڔ#B&F38Pmn-/{?NSInEK$Ho/9v* -U+s]q,HZz&ZnEB i\C竿6x]O8m k66S%9w} ? 0 endstream endobj 85 0 obj <> endobj 91 0 obj <>stream -8;W:c]+)P0#XggL3`]`."pe35Eqe/,ac7sH2!-b@i:t*E2%r5k[VD\hXH3q+obD$4 -UXgaI+p3^Jk?'aPPXuC.6DAKl0#mqA\Uj2]h>mU(Antu~> endstream endobj 92 0 obj [/Indexed/DeviceRGB 255 93 0 R] endobj 93 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 90 0 obj <> endobj 87 0 obj [/Separation/Black/DeviceCMYK<>] endobj 94 0 obj <> endobj 95 0 obj <> endobj 82 0 obj <> endobj 96 0 obj [/View/Design] endobj 97 0 obj <>>> endobj 88 0 obj <> endobj 89 0 obj <> endobj 98 0 obj <> endobj 99 0 obj <>/Shading<>>>/Subtype/Form>>stream -q -0 g -/GS0 gs -0 -29.8388672 -29.8388672 0 198.4575195 61.1816406 cm -BX /Sh0 sh EX Q - endstream endobj 100 0 obj <> endobj 101 0 obj <> endobj 102 0 obj /DeviceGray endobj 103 0 obj <> endobj 104 0 obj <> endobj 86 0 obj <> endobj 105 0 obj <> endobj 106 0 obj <>stream -%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.1.0 %%For: (Ravi Passos) () %%Title: (marca_abntex-3.pdf) %%CreationDate: 16/04/12 16:28 %%Canvassize: 16383 %%BoundingBox: 191 -448 404 -394 %%HiResBoundingBox: 191.3232 -447.6211 403.957 -394.2681 %%DocumentProcessColors: Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 39 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 184.6665 -457.333 411.333 -385.3335 %AI3_TemplateBox: 298.5 -421.5 298.5 -421.5 %AI3_TileBox: -105 -700.833 678 -141.833 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -482 8 0.75 1172 632 18 0 0 66 154 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:-8 -817 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 107 0 obj <>stream -%%BoundingBox: 191 -448 404 -394 %%HiResBoundingBox: 191.3232 -447.6211 403.957 -394.2681 %AI7_Thumbnail: 128 32 8 %%BeginData: 6514 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD2DFFFD145284FD0DFF7D7D522720A8FD0BFF52272727FFFFFF9A %C3A0C39AC3A0C39AC3FD0CFFA0C2A0FD2DFF52F8272752FD0427F827F8FD %0527F827F8A8FD0CFF7D27F827F827F8A8FD09FF7DF827527EFFFFA19AA1 %C9A1C9A1CAA093A1FD0CFFCA9393FD2DFF2752FD06FF52272727A8FD05FF %5227A8FD0FFF52FD0427FD08FFA827277DFD04FFCA9AFD06FFC2C9FD04FF %CAA1C9C9FD07FF93FD2DFF5252FD06FF7DF82727FD06FF7EF8A8FD10FF27 %27F8277DFD07FF272759FD05FFA1A0CACAA8CAA8CF99CFFFFF9A9A9AA09A %9A99C3FD05FFC3FD2DFF277DFD06FF7D272752FD06FF7D27A8FD11FF2727 %2027A8FD05FF522752FD06FFCA9AFFCACFCACACAC2CFFF9AC2CAFFCAFFCA %CA9AC3FD32FF527DFD06FF7DF82727FD06FFA827FD12FF7DF827F87DFD04 %FF7D2727FD07FFA19AA8CAA1CAA7C999FFA19AA8CAA1CAA1CAA7CA99C3FD %39FF7D27F852FD1BFF522727F8A8FFFFA82727A8FD07FFCA99CAA1C9A1CA %A1A0FFC2A0CAA1CAA1C9A1CAC9C399FD0CFFA8FD09FFA8FFA8FFAFFFA8FD %05FFA8FFA8FD0BFFA8FFFFFFA8FD04FF7DF82727FFFFFFA8A87DA884FD05 %A87EA87DA87DA87DA87DA8FD04FFA827F82727FFFF52F87DFD08FFA19AA1 %C3A1C3A1A0A0FF93C3A1C3A0C3A1C3A0C3A19AA1FD0BFF527DFD07FF7D52 %27522752525227527DFFFF7D2752277DFD08FF5252275252A8FD04FF7D27 %2052FFFFFFA827272027272720272727202727272027272753FD05FF7D27 %20277DA8207DFD09FFCA99C9A1C3A0C99AC3A19AA1C3A0C3A1C3A0C3A1C3 %99C9FD0AFFA8F827FD08FFA827F852A8A87D7DF82752FFFFA8F827F8A8FD %08FF7D2752FFA8FD04FF7DF82727FD05FFA87DF827F82752FD047D847D7D %2727F87DFD06FF2727F827F827FD0AFFA799A0C39AA09AA0999A9AC39AA0 %9AC39AA09AC3A09AA1FD0AFF5227F8A8FD08FF522752FD04FF7D2727A8FF %FF52F82727FD09FF277DFD06FF7D272752FD07FF52F82752FD09FF7D27A8 %FD06FFA82727F827A8FD0AFFCA99C39AC39AA09AC3A0C29AC39AA09AC39A %A09AC399C9FD09FFA8FD0427FD08FF7DF87DFD04FF7E27F8A8FFFF525227 %2727FD08FF5252FD06FF7DF82727FD07FF2827F852FD09FFA8F8A8FD07FF %59F827F8A8FD0AFFA1999A9A999A9A9A999A9A9A999A9A9A99A09A9A9393 %CAFD09FF7D52A82027A8FD07FF532752FD04FFA82727A8FFFF527DA82727 %52FD07FF277DFD06FF7D272752FD07FF53202752FD09FF8427FD08FF7D27 %202752FD0AFFCA93A09AC29A9A9AC29A9A9AC29A9A9AC29A9A939399FFFF %FFA1FD06FFF8A8FF52F87DFD07FF7DF87DFD04FF28277DFFFFFF287DFF7D %F8277DFD06FF5252FD06FF7DF82727FD07FF5227F852FD0AFF7DFD07FFA8 %27F827F8277DFD09FFA793999A939A999A939A999A939A99996E93688D68 %C9FFFFFF93FD05FF7D27FFFF7D2727FD07FF522752FFA8A85252A8FD04FF %527DFFFF7D27277EFD05FF527DFD06FF7D27F852FD07FF52272752FD12FF %52F8A85227F827A8FD08FFCA6F9A999A939A999A939A99996F93688D6893 %6899FFFFFFA068FD05FF2752FFFFFF272759FD06FF7DF8272752F827287D %A8FFFFFF277DFFFFA852F827A8FD04FF5252FD06FF7DF82727FD07FF5227 %F852FD08FF7DFD08FF7DF87DFFA8F827F852FD08FFA7936F996F936F996F %936E93688D688D688D688DA1FFFFC9688DFD04FFA827FD04FF7D2052FD06 %FF522752FFFFFFA8522027A8FFFF527DFFFFFFA8272052FD04FF527DFD06 %FF7D272052FD07FF7D272752FD07FF8427FD07FFA82752FFFFFF53202727 %A8FD07FFCA6F99939993999393689368936893699368939AFFFFFF939368 %FD04FF2752FFFFA8FFA827F8A8FD05FF7DF87DFD04FFA827F852FFFF277D %FD04FF7D27F852FFFFFF5252FD06FF7DF82727FD07FF5227F852FD07FFA8 %F8FD07FF2727A8FFFFFFA827F82727FD07FFA89368936F93688D688D688D %688D688D688D6FFFFFFF6F8D688DFFFFFFA827275227522752272752FD05 %FF522752FD05FF7D2727FFFF527DFD05FF7D27F87DFFFF277DFD06FF7D27 %2752FD07FF52F82752A8A8FFA8FFA8A85227FD06FF522752FD05FF7D27F8 %277DFD06FFCA69936893688D6893688D6893688D689393CFFFFF938D6893 %68FFFFFF5227FFA8FFA8FFA8A8F8277EFD04FF7DF87DFD05FF7DF827A8FF %277DFD06FF5227F8A8FF5252FD06FF7DF82727FD07FF5227F827F827F827 %F827F82727FD05FF7D2727FD07FF2727F827A8FD05FFA78D688D688D688D %688D688D688D686968CAFFFF6F8D688D688DFFFFFF27A8FD07FF52207DFD %04FF522752FD05FF7D2727FFFF527DFD07FF282727A8527DFD06FF7D2727 %52FD07FF522027277D7DA8FD047D2752FD04FFA82727A8FD07FFA8202727 %52FD05FFCF699368936993689369936893699368C9FFFF93936993689369 %FFFF5227FD08FF7D27F8FD04FF52F87DFD04FFA827F87DFFFF277DFD08FF %FD042752FD06FF7DF82727FD07FF5227F852FD07FF7DF8FD04FF52F853FD %09FF52F827F87DFD04FFA793688D688D688D688D688D688D68C3FFFF9369 %688D688D688DFFA92752FD09FF27277DFFFFFF522753FFFFFFA852F87DFF %FFFF277DFD08FFA8F827277DFD06FF5227F827A8FD06FF52272752FD07FF %7E27FFFFFF7D2727A8FD09FFA827F82727A9FFFFFFCA6893688D6893688D %6893688D68C3FFFF9393688D6893688D687D52F82752A8FD05FF7D5227F8 %2752FF7D27F82752522727F87DFFFF7D52F82752A8FD07FFA8F82752FFFF %FF52522727F827F82752527DFFFFFF5227F852FD07FFA852FF5227F8277D %FD0BFF5927F827F8527DFFA78D688D688D688D688D688D68A0FFFF6F6968 %8D688D688D688DFD057DA8FD05FFFD067DA8A8FD047D527D7DFD04FF7D52 %FD047DFD08FFA8527DFFFFFF7D52FD077D52A9FFFFFF7D272752FD0AFFFD %047DFD0DFFFD047D52A9FFCA6893699368936993689368C3FFFF93936893 %69936893699368FD40FF5227F852FD22FFA88D688D688D688D688D68A0FF %FF6F8D688D688D688D688D688DFD40FF52F82752FD0BFF52FD16FFCA688D %6893688D689368A0FFFF938D6893688D6893688D689368FD40FF5227F852 %FD0AFF7D27A8FD15FFA78D688D688D688D689AFFFFA1A0A0A1A0C3A0A1A0 %C3A0A1A1C9FD40FF52202752FD0AFF7D27FD16FFCF69936893699368BCFD %51FF2727F852FD0AFF2752FD16FFA793688D688D689AFD4FFFA8FF7DFD04 %277D52FD057D527D272752FD16FFCA6893688D6893CAFD4FFF52F827F827 %F827F827F827F827F827F827F852FD16FFA78D688D688D689993996F9993 %996F936F936E936F996F999399 %%EndData endstream endobj 108 0 obj <>stream -HWmoH@jwʕ4mNAo_o5)D{ٙgf^z6D.E{Ѡ$k%/e ֩:CvQ nkG}:l KdKmMBWAXBG 0|A5T/7@wCoj#AĆjot3_[kx\=5,)׻ j_ ә{vzJXӝǻ!% "2 ».'뿫n 45Ր +|U {f 7&mܥhEp˃},,4 i5)B>%n>}›Az`1j$ʒŲ,S[r$pX=9%nL r~<>=`qߡ2vd2%>"]߳c'Z;~ y͚"Vu|E!}{Mcvf[ܛyʥ,eg|δniaӚU$ '6,F-my5mk䵧f4,,eYd4]1mmh.[F{|mgMiƖҞ)AUNkODSooEpޟ?ɜmR%28# pNzH'8ęxxQ_'zqK): ڥ3pse6.S0'8qVK8E;~Fu ͢& tRb\|>9˚Uޭv -lݺGi6ZRsF 8ޘm\r26h\nfU)4%K$LTTHZ%]HM\ - b-=CMI1-ݒ4Tn//C&?f2M$&Us\IdNn?yV"}3+(t)+ea5tEߒNH>W<<VgT ۗna0me;Џ"YOT}e1\"2aqsq:DJt&HP~yV4zj+'n,fƒ2_0MlϟMtuon'j6ot3_[kx\BisYveRZ#V5f50좄ADFWnVv.غgNʡ~}~"&$ ^xu:@QZN/vCR2^&qLBç{d/9`I[ѣTRufdl~{qAr.tlT 9_<{xx~5BQ<lYIƮ늷9. +y6lϳͶcqM`jM6zm7g( 6LpMT'SZZ`g*ݒkLn\fI*Ħe FF?09)#7ݡ%'~nX Ølw˽OʽM IM-?<& mbE B}]['h 6[/w^Wnn H>E=%J6?j$^ti_hh`g8'Zu2g26dV -EIg5D]@So^xc@Y3ŝ`g`&쉺C$v/B2p37BN1Iro^/`_J;BG\Ekr<_휅Zo$ĉ0`Dž)inwP9XOhO)N\$toI6K7S"51;x=߱$tej8߁e@22J!]E-lC z[bg Y0,~MMh2JӸ#4Gf6]ls&SJ{? &8.ǙR*Yq7v c]8GUpv)ߓ|Gp )kɗKMfHY+ -,ߙѤJMDC9N+&?\ -vVtZvZ5w=̐TjFXIUlopS V%цZ-0A`vvu[4UM`,d*JY7= " -QD&D6v3r {jG QΡS)YvLA<>/Nϝ—,}PUdU8Lv{2 qFi]Irh$ Y5 ,Ō4-8 3e0 ә4cfaU(Z,^-%+e^\IKs0zS-N'QqcES0|7JCe)F6WTy: -ɪHiOzJB|\<5zŒ^'/:ڲ62a|&+Yh Y9X14 ]?h"8,C^*3`MA` Øi,|;K -屔L nCebv@ Δ~f'탊ǚJ*DΈ~n4M@-q媦G]hAk/.Z;4 Mߦ~J{ȑ_!0 Ldn| ;Jg$fdv~n'$GʇRB=Ж+R X$ foK$z7_B -+CX/V.kp>,D:D}243d>>Lc}o ;wWuIHH˾sk聳XRa;ٟHŭgLR~~e r;J`_s;u<9"xS;ƾsv2vsFs|~sθZX~4:tݛ\SOm lU+#2ь=*tOŊCȹ岐9HMLӁ3.uUdibQ*ϱǩ,5 -֋PUZȼ)"5墰p݀Tg2 Sےkα2OQdT]T +!3$. ~)0Od2F3g< Cڂ`6-BFĽFPi72炬qȔtfYa|=bsIk<FϡAA '6Z  -O=)AsA${ȋB=an M& ?:C yJP RY J`_T6pi6#KBd;hŮMJ&Yo'A -BX*" -,8wmˉ~.\Ɓ({Pe+tl24y' xsﰌKs8IY$dG3FwK1ZI"FziMD|>q\r8h{U%DWTBgqsƕ;XaJ*o2kUZgq]v8K?`|"n.lCWA&tk@:VD+A#g*}: KBJehF3H-UX I[L Dɏ/pj~Q "%qx$!ݒ=U4ܵ”=`[1c#..` -jd}{Pb5#gQMh/*놣qݝ:S.A,0>(ŞO63 ҇CډuokIG*i,%hۏꏥ!bkAt0&S(礵ōzQ ڲ\^J2y{ -?`Fݜ1Ergz2Ap0LBlLgJfH3 ʺyrz`u)B`ɮ5:,),{iЙT]%>;SgNfNCg3i|u iP M4]nݶތdM}U'(\^~Fz>p,m].<╵:Uݸƙr5q u}ky7ɚc蔂BEgt f,2zfC$@I)h{{'##T&J8MlQYO$n[~9G?_si%أ:>Ͱ J,:MǏ;5X~Mx=sͩ,mX4>r5+On74,8Nx_þMj wڿwy͡nt;2m\' gk Q\RUUv_> չQSد ^?~]"UچE._o~H0bJ!+Ie|6'\u[^l~h+FW\zZ bE18MT*N_ rn{YXTC#17gC:峢jQZ-%fހӊ*MDz_[Jڊ!>6лYpw5av1u}ِe&`n8ZIlom|v3݌Ƥ(ȿ`ŗX p|j"^*@OXV2ડ5RO"y"d g0h­`m[<"ocRiZlJ#_kU\X]O"Wv~ي @TtcI4آFpYw.YY֜cz&/TWY\ ¾[v)d!Za~9i8W Vn3 *v:qS4 -rr~rwd.!˳:SF Ӂ6ڍn[Rpܚ3tȝYߺ fA=`hmaܹ4|{.d6B~xjmݍw,0[뭅*!Gc4+[[iKw) [V,UbbyAz1=T,Dti.Mꜞ.Y@9C866*B7Uc$H0!ͻB MAcJh^b0_zw4;|U կ+]](].V 7D,qKnL!NuBG-TcӞLޤO/)eW59wD|%UY}|g7)$'zj8SsT>Hy\bT$<`v3W?14aI= 㒹A']_ 3aߩY\$DUu@1/ F’)!:KM;Sl]k'CgM P;aHt~_CRGԬkuJVj wDd+CdJa'!1\ },,͂mFTJDٔxf"y4+ -rG Azx/Hjict|U8Kxh(qe}u;B}T?1-ZkɟYbMHƧ8xELq>Ôł?H>-9sD؆t}JO.Y5~՜6h*rqG-DlZ(g d?@ -xROLB>6Td f(j9}d*LRymǠaRHQ^#FKBcqZ2D3c_iTVLe; xYzd:X^T -~anh+ao"QVlޢ;ȴxǺn& S-}Bk7Sz|p&l}i687_OeEͺ&aw;S V?s["ý}jX7W^Foߟd2AV_J?'_|c_ }5f}E`Sn-{}?tQ\3L~6{W2 <)Ox7降N-vCERQn|6 <2v58c;8VvD)6S^hFs%b8`R ')R5qQĮY9v uDt1*r=tNG??_ -U?/8w夠_?ʽ?nhx:A\p&ˍ28h3lub 2T}iW%,)h0 r$/*~:~>X`STgˌN!eudiz]DV$ikl-vEo=W4۲:ؽ/Nnn^:Ku~~|ʗ 2{>/[T1x۝k]=9>~Huq<`r]ĬJZq.&ٳQ$~AS|\r.S# -Er!Q;)W P#6+P\~`OkiXp{T^ל4 W`ow.-)f$ĤV'#&N8"MSuN1dZ^1[ Dhm5 I~VϰPl4`gIn#'jP/~tłƚ}I,<5ws&iDq(Mqīl}ZK⅃dž>x~eGX_9U^kZj嫗9YwO{K><0[P%+SBUd#,%UY+)xGq"4Lfμ`pV6}v 6ddss{GMB0EO9Fܖ?&D ;^蠫G#\5%Y?ڝf=cMd#Qԟ_/gòBŞb%ϯå2yJҟD@ ')I5 8٤ms.Y Y`3{¡keFnLr|&瑰?HQ5z(-{>n˻@@_N}g5*D)]k/֔4Q cSfB8ޓm\O\߁=߷ /Qy^\&E NdAܞ`wwtOԝ _x.EM9òk;/q#;٥^Ep,@<ʂ} 50-Wx4Yٴg">1KvbK/_:Gt9-leA8> T?'|*bO{/ušY -C9<1.M{控Gp:RnԷg_UTgoImP:AMF -ӘRI1wr8Ml=&8;~Ϲt¹ơt67v}1x&8R{5\Mk;=ďzRh6d;R @Uoq2a л+we2bே5;}OBEƆҗ>C>uo(ʕb$a8زdw!qc5& X[vz Ğ9}.Rt̖7.99.l`nwi6?Rö04ෛ.͛2okANSA@,89XȩB^ G9fD5l'ɌS߰,Sbѻ?&{%v hvD牄:b!wwj2HIetx R o_+"}B%؂Г;-~Iwܗ7ɒN.2?U·ͦJ*-Q~w}V!urR>c7A%n4l o14⶧J-'{> UA{竉HvԆ]廎͔Uw@Ùg4b>FUx{EKyŘUVGsO3Oj1 -u>]qa kXZ{d:$l`7cU S~=[FAH/#ȊY>f _U:Dwh(YXDeD(@Н&RU}an,.=j.KX5STi? m/P}8#?{n=K3Ȥ* c/ cSMҗlJ$=wjϒl,nC-cJEie~y3S_$M~Ov6ϳ}YeU99h-y$s1 3f^7g;CBvz32lvDe,zbsv0vz9k=*} SOeAx坎6&Y -!O~ x^w[X5+Wf[mݧT]"ޡe;:d#c^R0}Utb 뱿i.x ~kޭ(3L>S뽼l~?_WoB͙K ާ:|¿<Ӡ :UQp<I4S"eJhH #I7$ MGȒ8ofN5҈nh2Є44#BHwEURF8)ê%:U`еF"u:]pet -޿:iࡋXͅGĖrW=) Зd/gI ǀP>MvFYt2 V -ӍՓOPW_5nQ[FkwO$0fz-{!S4 t#j)*y>Ч>b%[M[AMQk(m1 ;Z>xhZ}+r -yjYOo:PZME=ib a&u㶌C|RŦQ}Ao0KKv|*V6U9 d+rl zXI%8Rg;x4ycw+2\DU:ɿd,2 7Fwwa.N7[.*mhΣTWClFPŽ8TDom󻗘ۅ:&ST;vu-–}uɨ&=- -{5qADS`&{(:.ٗjJrLwHV|֐χi6UȠ|]0~d^Ta(WЬc^?MH>\E~h`XMҕ݊(6K zSu5*cV{& >֪w׋f51q4Ϲ@uT`DW_Oۮ<~hEd(OاI̓@nރٖf0RcүK' zdݼS%3h3h-TXtI9db=$])MfKa_۸;)3CAYG 'Yz{.eб 7̜_~_˷s7u{5Bg l={aK9B,ayzn:xEw,c{' *;9wux4}Vl6h!4A#1}h!'Ѓ;Nֳa(UА^8@}a 'DP4@> -b1AKa2(6+| %*KE3 -{ g7CV3C>i9m0p=ys"ǺF#+?4:`A2nI86)K J itRA8e+H|xOZ fu=5>Rcڽ@ۣ7ɺpY]Wn)3Y/*K+Ë,WVqs?Xp3P*femdJϘ7JO(=kˏJ@e,=xd<&7T5nlӧ[u4gҒf -`(D/Ӕ.x&G`Mk endstream endobj 109 0 obj <>stream -HWZL\s@[x,gTAAUO,@I2f <->}Xk+jdU/0PSTA(WVNĪ~>X(!PNkp=tGkYlμg#Y`(* 7`U0DIu27_&oEZ|d^@ɬESN4J6 +=!ؕ_4#l;1/^=5>8En}갼'JjaޡIPG倡n:0DC5s!.3}k7Jd>i\>%v[GFQs]^EUsv f_~h'cN7gܵ4bRr׮$"@-SRs t sH-OuHeBv{Xb{TMJ b+o;zLtO@=fd&jJRb&bƲBcӮiXBc/$kpTrrd֘`GqEzB*(Ɏ.ut^V n$?z@b\$v -5 -$f;্@֯>^F7A07El1dPN?k/Sik+ԋX}t뇖I_<6`{?B8v%$r?h'#g`4?)tji㖾^\Bl{?7i6L8rK8}DBpmFh6udB/qͿH{S%s-d~,p:zb**;m&^B4ewz,8 nA) t|JޑпBĪ?ߖT{-?ܿrkO3,1Y9~7/ѥ#0emK -Ɂ@疺) -c5ZTZt5xjy9wlHּ5ɵ'[O$9ZðUB0O.ˆR$cf{3/>;b/pjWX}acwKPTe"3}E*͗Yn?8/Ŷdx~SQ=q{m/cQTI8ܔ HV.lBy##VrEŋK+ 09lɟ ?[.Ǯd'ޙw_IOI B*4Kœ`B?! J]!b.8eC2/>qfS*sIJM+3MGXע6&c8ucp(D\Q%Ά\3gȞh?}J %5Ey!ާ. ;n)5g;zhz=NDHpaw9 -i`o`Bx pxL\nrcȉ\yI42@%ЇgH.Ş&SKoPZ1K`dn3rw?5ABQ:ӟO&!bH'y_I{ŔV0"I31$Ж}"ܑxEI[K|^+Zw sTh,DŘ_1G5c8`k^=јw^k$K xA(v(m(dQTAFH+7$S_39;@78|նwaQ~("b&/2JmV Lpo(<,T.mcҷ8\G,"ZzY6,^,BAY8J kW눵%’,zf+`/Q$EӗSnj8飼*qIelo@p'kQ뺖{<'a`B eTa01& +Yr87H]4m !7PݫQ2rWL'+QM@BpXxq vǬy%Uw9+(eSQ2,QTh'pll$sd lk]~B!L5sȏYS | eU`^L}dTss묏kNYEm'z9g0/TJ2a0eM7 -Ya2bF[9]s#fRZ (^qࡢ칌ըUb캪j+F%càw _ fvJPEv tMބ!,3 4 z:' i`l.,i' Q*EFo'QZzZ`'\o+X_QXΎarq0"!&yoqf?d19Ns΍FVYsLsf0}ו7˴fwsPk9~7AQ[_:z-I`+%_ -]#ٜB'LS.<ڭ?NNC1Gkf廳ſ7=d_Ф'K<0 3i9IiBz/Ϝz$G"!7zSJl+vcR&{a'Iht{VDR" qqHz -}&3)hGs[`L龾YI_&ثt};b'ծtf{O?SVR` -k%]~B0JE,=k%UAGk&I|DzTM|oCyYܽ~j{Q9+/ ^Ea"x$ [MMAs*i%~j$8v -KFOO+ -80rլL -,^4fIOtw^8^}ZLrb(x_}s%Y*黽5c-Lc8+i<{a'}~ -}`:W";ifiUedq§BV"OG\ LEUtv3Dž?eZYTFl;c+X`L,d:5F|'s2A]퉄YKr^-i~|'1NVAAPgD(0}gޖ~e/f4=2YZJ|aNC\Yaz( }WZ1Msp\1F Z?^hbKYr5;pO(ELV#W[$=:?qq -;&-OP %:AGY5y}`mca-b@ܽ -Cd__C9cvIֲ4+/@(b[OoA;v`͠@ӋQKy3PEBK-ʿLq -kd+¾.;L!puBQ;UK=o\a$1@(!xމ+f;¬ -g˽12b%kL!% Ƹt;LjXvL;=w޷B|% S='p%8wNy, eUCjr&牐&^ܝ萢tM<͕ܦeo:i~"z,TL\ޛ`H0!Dڏ+Yu&7#P<dA}^!CՈ+!B=I{3X=D eJ+)KdSEJ,PFqz}6p{ńO`b:FE{ l2%KҢY<97q2GyUV΋ X5%L-mTc="O֢&'CE4\x]=A`H`шCTW H+~NbdZYDC9sO"`+T_QX,EeP:x>I}A\5z#VNXEa!% a860U`A=(̋<ۨ/J~P*@Zc@l,WG*x(3: ?`1v]Uӥaf|a]Mw<7ˌS08jyd);AK¦NgKtfU4jil^pω3/*hҜJasHAʳH6;4tSYҵĕ y!a1UACEapvwНO>P˩S{ N|!)4F p;09t˞ei4q')@̹ZT(ׯIȩǬJ ٩@R j%pj!;h{d-#FnQ_Ǭ', kܭj'k -9j鑣'glǍVv ,-v]"ZIYa\hSu3AɃ\ -|R1ԇPUJ?ڃoc3!o1cж_?P% \f悷 d'mchDa1 0?PVT?|a3i 8|{X屉?^zlݯ /2s oȦ3OQL{ -ACvyXYA=vp|46vr܋yǵfAo < [Tv^abѹ1@@c!cz}*a KzO߸+A-y=xWcBxlB=vD^hğﲌ a\Di8pT`,(>PxAYnz )Eè,K2`̓I֤ݙTRjLH9:ۦ+cG6UzQ( R&ؑq-'3ݦöe9z\Ξd#GKTC4}b|iZ}e4/q 4j8 ]%s^܄S>-Dߞf\iXB/}tjϚgw[~zb|sIWVɾH]E)Ҕ5 SSKy޿g{&uVi濉j7천m&>{J7vz,L<eu|[~E^?۟`iz9$v&yV\EgʶeD&@QHAT2̢2#uSv}ɪ)ٵk WP(@j -s[UE& !q8Q.|uYϷ3xhq=U6ep_vvBegwjsǀdrlq`_@.= c+S$%&j-U+9ľ!} ֯ZkBEq%pNU\%aǝLr91@oǽ -sؓ6{'$eK!=1mq+ބ fi2:Vװ',93Țѻ|7+ -iP6P`t+ -smy7ufd ,SѕWq5FJ )ت(Ef'%eC!bV~ -EgF$i9(^):sRѝza!|mrUTÕ|4'BOKݑB$p(OI{"F$QH0Ս6|sEȸet5Utmq6כO(|&7I+Ke{_[?<)E1w -! grMy[d%N ^L;Oyi.&2h ]yt-e٭4}r#, -Zt1tEpNgLWztY|k+eo<\bD:rwK0aDKA,>R٠he .q  L)}-%to3%dr^I' o*RA(,lD: NUB3Yގm*N98/I:N1vJ n>f L8&eA-=d<:P(Lv8!fTrmT4aKu`5oZ8o)w +0[tq_'oW*#V:jǛ 'vv; nD:KU 1Kb /Iʡ!<~ࡼaz`IBk7>TmYa쯬\)_`HeroWW\+sU;)-":ѷ+rS> +̂CDr!>& mm1Q%#r:F6U-.[܅\}KˬlzFOjMm^^맾(FOQ%:`HUvdKV6H8\zX-,%K?`I)=hbY_,1PDLד) G+dD$"NǽS)dq -ein3CEjg=bMsK8n,(?R7(_D?11 eGwXnv#ǯGTW:UujB'%lb>V^%rc͖MQ׾[7vyD[]n)풋vN[=޾uެ7PFV8q9%+z -d')[S -k;sn]VBBJ.Jj}w6R[l*\x9M1HC: -q_u!l?Gz+|CA& -BeBE}+*d^N -$~R48o g*AGfe ?✂֝㶟  -P  YM@\PN@3i@h (|ǞN$AaLw1~Oʃ%mr,cvn>H<|/Kd<ۢϸ-fQ&ZDg]2MKL%uV˻.LCy}Pz S&0iHcOVQ`5iK<dŀXMKf멉Ma+(>au Ә(Ş.X، evyùZ ʬu?"JcT/6ɛT2񻰻nr%\B$ qbšgYaWÄ껸r$ -X.,lիi6`+P3 [1˚$B:)^ AղtBbBV1z4 ?;&-W+0Jv{$wK+ZmU AzE57*tN"}C LSvD,knao' 6jY0?Q2Ǒ>D*#!%N/_ָmcUdNTˋ]u-=TNqrf[; lsL}Is#!*woT AHd^XR1Ah7 6x&`dI#H(_g*81A xtJ}:lՆHK @vʱCΫvTK7pSi47ٸ~"Ghc@nqKZr , LYȎ|06Js5!$thmx7.Y@>3@A4f a͜CY QUg @ [ @8A, -(N!ՊrhH @ի+rq0.3Rs -E~4xǕm<S餉(<. ]RNM>7 .L*E4HF1V 1-E4<~8pbg'NhL5)Dn<EuAKeD1ޣ>qL4M_CLWB⏢ pu;>(bN8焓̕ -H36!O d/^Prҋ3S[5`w agۑDێًN>pV~ZaDӼ<g/3 >l`bɆW{ -*saZ.r4 '6|5?QO x4EA l{[GFڙ+4̂MY!?>*} - MXǚIM./Qg쬓L\.o7ȤUx iQ #˲&NFCNyV˯0œK!\DPF* em?Ʋ=iqO Jgy_I v Wc 44Dc haLwh>(p@A3f!aKsRwNܑI-0o)|L].jLֵ*ӴD>댿]CB+Cy}Pz s{qGפF;ˤQO -0k endstream endobj 110 0 obj <>stream -HWR-8SuԭAn*r!|YU =h YUy]hzڢAZ3vLڷٗfƝ+?zsx/{>)YuxOF?_K pbߴ^l1۫O/Eȉ R4q`uݯZ:Eﭓ}uzիc?i^[?輷}lTtz'~`>7lM7\}͇̇wWO%wgQ-lY{z\L=v`#sܒv.x 3,3Sq{Bgӽxp~N_#~>|4M?Y<Yz3E?kV~pv78gͯ<:\ /_r/-R{b8e Zݵs`CIsh骞 -OGw. g/G|ӹ.;]ޝU÷oo?6֖* yV,j\l[*uTR֫OU'#oP\ՉF+AkH:ؑ2DFVU+R5K.T89X(o8X6"ehELRDxoYJ[:T`gEGXCI_kmYAd=bcF 暚yO38 A o y':& -U+tmZ.%+n@= -U(m2c[}' 988:Yۺxg){.H*!B!\hr!V '*ۑ -n!lX SIBĺ0 )gD$KT;t(bGH^No (= QY_1DD!C^[s :b,C!#uFu2E/Ud"e*#@q|Az"m:Di*N7Cjg@&bIH]Mt*$̵<8 "_ -Ԓ.ux ~cWrIzǯ!/ѴțƇ6OG8FĪ˻` |6AfP"Fe&kK2 ΀$e|錟tـZJN䴖pKGp 腷AFDFx+ kBeg$SyA&rDӘ(&ӡFJ=%klD dμ¸H,#II*!][8S2pEagtȡI6jma] Q.fC!F4ITv&>b)()+4|^&W0doQ'NV`Qb5S@GDla 7 0 )Э^ayCOԦɲYHH49WM j@.KTZ - ebNPEx9 "FWS r\-{[q5qGƍF©(S-`VV{3aCp:f: -]@,R`J!Ɏ/mX@$<da - -mAFQFC#X#\MU*[ѳBSO`:+|ۙa“/a>LfaN'\I?w\)Q˄9'1&TqJ>'h!ӧo`COsx9SƔEi&OԤFs%6@ RИ:K\kb -7gbFKs3AN7f4NVpD -"1˻B kIUq٫m)3*RQq!Q2I R.K -^턫f&WEnBR0H׬ԁo 7 3VQ%$]\ܚ>Im& $!&vkH]~tbu30UiۓuÒE\l"(O'A)n]w^G[mfCĀ$-!8:#"k3< -8Ƀl#zhb@@ٝTqwuq1辵&zMPfGPA|nd= I(E_khE1C"`2\N˒A:nnȞL/0TiK-S}LW*=4Z*-.[[YZf%Yڥphu)c/ZP!xMd'8 =Wwm --fNV0Λܰ3y)LFгyT5Ur,, hx,ihe tl,UU{*FBRL |v4Bt7pITTPnC{\*hҎW .Z f|PJ2M[5hNs]:#\@uPßbdYFXĦ`>$dPE+ӭZF!R 4:A$́9O+,f -B}j3tE_eR]|0!S1Gv*\@1WKVڔB)Fu.;mHSIXe5'8~ZU5h=aPABoiGxF@X=.PsLd}犜<۵Ce$ZYat)of]t4[3nm !CAP$GrTaix{Kj8E2^, [ 0;~GCǧ;߾7o~ӧ۫oǧ+_OWw?V>`=}u{rOxuzty}}u{û>_mwV{JbTN4A@%v+i0*#@` AA -XfSa1PRp۠γAJQCmpet P3C~1$ɱE^]H{3zLGP_ c >(6ǟsS뼄PjF*9ΊC!;j dPq|bdg(-ڠJaȭ<7TelkEpoNc"[,a+Y$bF鐴S9 qT_s6zS1cR)D -[k>OJuxj) ҫx i"6Ή4^̘xCubvN2/EXҝZQ<85fƭ] e[]Ŀۦ݁MWQwRvkMgHW2Dq\ 'AFp5$m*~3L5Syy& . O/fWfgbhq -s[u~.lǷ K,lhWh:k/-@@H Hu_#/\k*ڼaS+{Ͽ -meIE&u!%!X o}WyLQȘ=Q5K{a/"(ntGUr, &Hx;YWF-]̉t nW8$fT(7:XxO*1-J㺪֖Ӊ,=˽xrhrM=vָR,!fPb`GtU -oRiv\.cj)J3uE*AgL)YgLnN t_k`'4P{-ZlXWӠH\vT'Dc -sL8֐j. r΍29mG%Xq,P6$.u4Uq6*)k*-5Ok[{ˮ`| rE -zuhcL. Uq"UK!q*N:AZ5J?CU#斡p R`L[Β242K>stream -HnFǟ`ށ!@ gh px4FvQ G[(9m?3&r̙s~<|˫lֽoń&ٳou_$5yXܭֽoz,ajB1({i_~5 Bgg?S'jխΒgh;_/u=߷}8۬ EE {qsOP6oVuwl޸4,9&\1Ӭ.j&3b*L iח}wݬVyEAc,[׿8CMou‚O|1}ԷiP -.p-Zb)կܷݛf.٠poάhDH s6\S;S8ÿa,6Ɲ3CB6-8pӼ"k訬__Cx=oMs;_|WݬY Ma~5x[7-!0fďƟ$ ^6`㹴< 34<f~r$]fk٨78K~~3o/ L<|;g K7X{nxWj/^V-Yz| JZТ}Ѓw˸<9]$?;\ܡE-_: vck~jrOngɿ~e՗$o58>޵=B)c )aȽN zB#մVw|<4<}Yյ>qc[][Csh㿎5.Äupan__^,7}8>Jb^eݯ׋jܞan;kۥ3 :0jPMA}ƞv/z6Q&ܶm3KnDcxm;MM][zԉ }xELoв{І1ndcYXCacϻ={b'iwUrdƶ۳E4wC%]ۛ8&B)eSA%UTSC-MiFiAKZ1LRL3,֌93QJpSqs^W -W) XNE&E!JQ@fK!TRK#Le&e!KYES\ %RZeU2T -UJS4BKPdmu3t ]P#2bIMfMaJSYjVXiXkSYgs[V)MYSJujRi4OL+ьe<T3,ͲeyVdeV9N88R9rWU9Ys\:7$yg˼*h -^BЅ)l\%2XAc%Xf,)aOKa6+X.FVUأNSba)SK_R)]"d,5\]9OTp8sb -Vr!iZZq#5U.A(8 EBH G eXUѕa֯*58B`BXP@ak -A!Pw o}<$ӎ#=_B6G@.Є(O%SrJ9TO)r*Sd?B~T|1*rTC!Í3*\QFō Q)FT{?8u?" Y -uJ@+2@DS XN"""TSRQ:E6E2mHG"((rhCȠHȟ }"{yv$*VX;dkB]CmAcl2 tGjkUn |s[ʥt4vwxrǞ Ry`< h*R(}(u C!z>.G6= -:{r<)#$!AeW>" rI4|\ȩΧ#P!aJ Kh:Q"Ϧ܊Pue1|tMR߯~Qä9m4cv zfAe괽?n/)?ntyTӲ~6r\AK 6s H^E$/(BS3(-ik$QCNs.ΩǺ~߱wi̥[ ρ9r:NJ&ȉ6s(?1r`̊49vgNӸqTDs3&&g̵ RCxQ c$Bќږ4VtK"t 5=0ꌄ\U q2 yBK`l=LI112&՘Xx\n*H<3}F~5F&gl u͔i2SiFjjZء:[:9XOΪMiղU}SYmѴj3&,e E[(^PK/+tŦv|x6 }HemfbXEUwj(O+-FifZgM_E&3 R-yah.wkwjUܪֳoU\˷ni"m)EjTS+ІVSK V'K9 -nȣ"!1KsoHrr{ل`$9IVd◦ 6 :\L()_lXb!6z>Ɇ7xŞS\+x2P(RذGFTV:Z[X͚ߥMa~Pjr; -Kmmy7/-cAx~8oʧN; -ϽU98Lu>u˨5kzgcQ?||Xv}{~|?<ʧ?޿S/osr'Yŝar͇Ht_(oǎ1gsv)~p᩼[?:< ;%AeL#sHzH{@:V2F -PThC:PJAf% "T=N& s8M$T(Ҍ%2LG~)$"* &d&xGR!x1(,":B! Lq^zu 3 iV3 ΜqKYi 6\7|vEjCRqCTNFeڠװC-M[ [ U)m')7Z .nKul]Ӻ'!3{VS(/@m1;"fk 1%o<Û|X\>u -{<*tbb/Nۮ[F{v?֌3P0]+-rP-&wL9cb041A03LHխP2*9% Hz31[22P x|$ "S<3:~}V-5QZ砵 d%(5/噎u˭GXL;oK梗;\]x+/ȲETQ|/5ry -&82!lj M`3 +ZR9<xaPGf(֭hƦ+?Nu/ElLic'\.M?B?@rjrWl$Tjr)ηQ.vvtdjI\O>6[2vS/qo}lvjƁyVyVYR88&>_ȭG^; 'ɡ C7^s֞%ʛ{՘ Ҙ^,"F}Zd<呍>NnFP.AQu2g0< N9Miie\J)d$tq4G|]gc(eq&hd.p!x/_LL#SƧ PuA*ÔTԑcCc8[隘ym:LNZQuގAmBr;uO_N^f%"P(2!>+" :&ªAS5`N^4^͉fiҴ'{ܕwy LuMtGQo;==-{=Hhl}ľP\Cq 7:+ۥTUkuVkLZ|ZkZ-K{jU(b?tg3x'{dXi Y1y(grȹC֏TI_?lΎA~}ܫWWc4_c=MزRa}/w~Ϗ 3O_{O0,_^5cwvC5M`5h~*T5 ?m_}_c[jiao|˸ -- Vșbҫel9p5ҁ Jf'^D2E<8yitTY:|5.>nqq\lނnfd =(5.,6p9s}8 -pýk#d$  Y'v_~S?dϻ*ZtMf˞˛ ޴ !o8$LKbԈ>ٵ|LP$21BI8e$JLiȥ0\21H9%h$)>oOivեhGJʋ!7L$1g71` 1a"ϴƠFh;ؐOØ`S0o8hf1bdHc/=ʻXdTͧ}^ИwSYʔ&҇Xp$O`գ0vg1QDř #cp@lOØKqd.N$6b5?L-̤Abkny !44tF (ͨ& @طl|jߞU&,2/8thR:Sb?~\Sc',b@,&YO J5@wSYʔ&҇X`RyPEX9bC%~F lḁE\x8G G$e VN3jn lsw fL09f7cbJzHrQ8Ѧrh[bDa`#tdC[^y3EգylnAqp c(J8`29i)!}f`햴W)a d.893˴D O:zD Xu%C݅xEC3m)syl #ɖ0%$_X;2| #߹%ɝPs'${\;r 'ٽr[wo2[/xUz/ç"v+?E7iQp/<|/Ïj}Ko~mףv󮡋&<:9(Q)܍D`" ܂R6,M5eRB<`nF C~ qFNf:["8axR7rOt)͜;ލSh7pp.N;ލSq{͆츽YFN) :98z7rON1}ވ -&:ލ{0c>4;N; w1`gSqv:;v#':ahni whKv -l8>OssV -s|#BPL |S d'Tw#%[&y Ts܏"Hy3.v3&5Dh.b MiyqM?:WrP7EzEhGŢSMvHY 綥w_Lj|W{x3u{iU !󛒝@tKRӋ1ίWcSeR{u'2BH{i_ks\n=!TSd[cX0m!h!TʃZj*XIYZ8``]e25LumT+[aIPmTY -[.c.A(&W+٦j 6tG"ZA&86l-Q뼰 -b(ؕ \N -3 oVaVaWՆڥJxԽV#j٭Χ_a\c)ʗwII-BVusݜd"Ck3*,Ѽw#yuzkX0+5SL ІGtAǁ?k#;8`΢2@Gz Гgl<&91;dr+]aäv$<֠-n -'kC25\8-&"Թ*\9 t@} ݜ(آ85=fN],P?cnCo&07N}rDKM%s3H@g~n$t$hgg, lb۩\Cl<}gm8q:.МAԺp-{ű)\{ LuXw*;3@ -]uve/o)&S -~b澣O[G,7M}QFz) Jf7Ǹ {νjWA\$ -X;CSZ}요J a{A<S=AA7J(0yu\txE3Ɨ5cs7t_7RkD҆ݫ!ĉ N]6Mtۯ3 Y@f劮]Q!N).™y4s ƢTJgxV*Yhϭ:\$Qɓ+(B93@+kZ91AWAO܀#l,Eh]IpV&t# coV">ȻU"ڻGl-武d;?&!3⷇ƵM+*yKM  Jk|QO=cn;`q̥flisn{_ǜebi"Ax6܀-Qi7$Ĩ}_)qgT&hw@Q`y)yҋI -p-)6.(N2&h40c،zJ> .Yku_imv:ycr^[ZeʒBk\(. j -;+|i0 Di& :  ?v/7N~*vSgMoi bw}-@-ݠvuJC%CN&} -C{{5fC2 C-۪ѥa!c8`P -QK7E9{}έ cfq6.v*p bs/lh/Yq27 A\N{'  Eq%UKn|Z!HAȉEapK] -ÿ':nmu7:/6|Vv VOvmbi=RcsYދ4.ߙIbZܗ8uӗF{ҋ!gMМ7{2m'Liϑo4j{ޒW囿&w$8p~/p+2hJ"? ->K"bs: e>Wh/ó&t-GCYK~oC2V t)I&_*E7mIJ^sKF)߶t R ۑXڛ<8 >."@=6}_ߒ^.s,]E>0J\V>>y]:&-~_WQz˶q $IEBcN)ۗ|Җx gy>(W&F؋1YSQd ^qGCYV `?ZK'_{~:iGFa,E}5Lڮ/(`X8 p T7P'Z5n.2/A5LQ󧊰g\p,JhYSY"ZLv\֋66,G3@^g(0%~)%=q]EcNUiŧ7'`jR[ƭkQ Ƌ#ɫ2{èMCyxm|[:a6L[S4> t7v+R#g^~cP+ݘD%6[$VCk:k;1K*0TހIz>Q&ڛn``3-ӄ5ꡳ눡!^*з"#Fu (*tg%&C3MW*gMp^Å.2c2HQ+Ht: wCt֫N ->U$[nO0w)Gf -wdjίW]W\@ Pc{,>d[v Ah0%I&].F4KCvȧqiy/ "]vkzm+Êm4=+c`k<94+ Tjw\CӷW(,mco'HtPL YsP†Ĕ%l>*%˥ШAGO 'Z֭";Zd -Fy;Jme8М4kwR÷+Yq`jz1KxmE`"A>3qU0Ict]6VQoˤ"\"im(<#A s[Ořlᰫz9E6.u~{V+D"N]/y Tly(M&sm{I5}#syYJ/Lb+0e/J2%YH@ASH -n/0XG -˾qKYN[\ -ߢ”Ⱥ$Z3Xf}2i -{̹ Q۰hh>4Py>}0؁x&S|A=dҧI<ם+KZTW9N`я^l=t|c:gT{ޠVnP@o(cˣig6ѽpW(Hk 83*y4,C-Wۢ2j.{S6z/yOЁN&0S~x*mGIz5;AUv,]PൌH.Y=[a ՘؂CwrԈcz DŽg(B2{0{~p3Y"4oص,WEb,C&L 3sm I#ȡ.}WHmMJ3(!O{$/G .##,K$s3TEwi<&M'/y^8:`L}kVm4z"cv^7\OV雾-ܿ&,"xJϜ(TPygcW>_dp -?[t\$ud N$-Udo4aԎIv[ uӵU*X6O53J"G_zVU4R.Y'l 5gpya`)pr}i:fb{B:Юd%I<` ,XtRHP{vU zx GܝGHX}6~o@C(\'YA -zbȼÐCn|63{ uv,MDe;aD?S=@<9e$Fkf ~ -#; -^ |jiJ H8S4"|3xd61v}B)MJ墸'Ղw ! O4O`88 6!'w,M>~J. }"=ŴR;d,=ۅI%_u3SpjN*'\EϢjHHJppcHj@bBz>07;nfg eWSҭ˕n;0px&A9|ƞִ,e&F12/ ̤ͷu'ĺ`aצMϺ9ϚKLwt%ISt9Og(p|JYCpŒwSA}-Y 6 pb?#+=!c*ʕ߶ZrHpq )Ə'*i#Yk&$QOs qJCpY5E\['xs›ƫ}z7:h"^l :F4Q0[LG| <2v'fzVE  p!u,R+5hoA{LG7Pik;wi'A8?k `Quly0lOcS 8<Dz0ʵ0* nţ1\\-hy ƦSH̾ɻJF֥vL578Mx0& ګ@'j2i;eڈ o!Tq/ }$E{8u֜q3ǰe3O#2{G `.6,y]_}E>gcvfaxI4pøv-|yp?W[_t]HW1\[/br?0vZdRgŴDK`$ħpQT+~@_*.+VxoNP Pf.r4lߠ'_Xq໢ۯ\Y̗crBYɎm ţֲUQx;7/|MVSz -ܞxv.Q*ke_`0xP1vZ{U 8sȣڣ|l7ۇ?*ΛR ݕCl -=h c]s,PFe(*Z o~ -Nk)%SF&x1V S7.R v3k*M]D&K\vd@r7i5n-g["Aǚab:6Way .*QKfzUs~^Wy:^~.?TڹM2#[HY?X^"d:huyV]ϢvVA;{cYǭmatiwP.rTkzT= -@:tHNW5(g\VUP1: A#ʪ0- 7!`UxfØ `Qcll1gkt'{%/'Mn旵8_?~_ہb[`|VLwOt*^0q 98j+ z'ˮ:lE a2ѶYLc[<>9;ucJ>82t --Mc+%np$ҎzQ5W / -`#c]D{rQjO4"#|J~ Ckl2U6]2WFeTjf lԉk݇-|m1[ahsv/` ~bZWȿ{&[ -' ;/YCJ;/}-Ē#a~-dg8Lw fx `"<&O>p&pQfi\*822,B@R 9O|[ew fZ-(ruQ܀u:%OJ=D\Z]|QaGXAtIw^[%G=|Pͯ?뀾;֢nKMzZ`yS1lQny+Tc6SKF1Lx$`%6]Ա*`pYOho[GH -3Jy$| [IGKF1_פؑE!?oI#)nߢ=;1?lb=ŏM<_|6LCu舺ri+9@0Ke/rLÂW[!dۑCHV -7- - |ٽ'8{ar/ ɎV'-ܕH -=m=+=Iͼvܓ&^?_ -nImLZnϤD>hр!ph+智u -~|+jʼ4qxh -|0)H -Ǒ/;5wIS "%tiӭ%Z킱>R49 |: `%@ةJжAt<`kaqZTY/9v(I,vN惉4u^14.b6wҴbV+{R^p;Z|̓q~=\ZZpUx3 kR;9rC+4R:U-7)VsMAݗ3 %{ O$㌃o着U}aKHHVêUqvju;.vS]'8F'qn-pe :\ƺoݺ)q1Y#=åIx{mF0Y-[uaK/`R"L}-3ߣWk-We+2W J:g KWcռRQ%TTKهEsj95kxPMoHsv^zdNkynj -{Zͭ@d>QE()g#ShL?(%KV!4Ч R~%8Cn-*a仄C"035|]e]͇USH:jܯV[`oqի<,:Upln5K ]=KZhCC/,[=t) KKA[~FX `„Vs;'1_0-ؘ4PS+"uٌRҔv09XuXd m#ic+z~;_PR7C,D+\zh%W#KUHz9kz`qc)Qjڛ7>Ax5&i*Q{|A3>o(r%!{r.<-ӛ~EGX7͈/:kDct2Um%S& 2vJ}y|ݑJd#7ZDpQqsR'c^TT#YX=_Bk268cݸ|M`zcR:v|UBX}~|" l/J2o1T04KGu{p}y|@rbCR}1q!@ IqЦSql\àK` oT[(ZJcΖ.g<~(H)z;jeqK) 6ǡTNڲLsqaOy'poff{JrfҰWL`-8X.f~[*sȋzzai YjajY,#$'{;wO;^BBc/ZI{7P=m0~wv$&(>c:dFn,&.Sm9(}0 /<ç]~@ؔD۵ SL/HVLl~d4U?=qw vſWeڻ4~ ?O&ԳMF$XzPf*'WJ< -%9 ̇wqѠFa L4l{o?]o|fl:}J4W #@r+d'qƞx@-*P3iP0g5w h:(nbH%5==^6Po ֽ]cǫsU`X5yAfbRK˂4.슅 ILߟGl2}vc{-Ň -$@pHgj{0bJ.Q -lV 1"qH{$HPpʬ`;}5gh mimiz=R(1h5rkUed)jӤ23#@>&o]2}(umP7'xFs e@r%Z0 -{OUv endstream endobj 112 0 obj <>stream -HWAre9 -eDN7AcprNI_`pɧ(vKqxuN؇d+8T7TgΰL^c^Ju}0r`(Gqf Ѕ{8@yc/IRh nN۬ x"=|\0oO쎤C},8헸t?4dFgvKhwYr\űP7\S3pYL>lۙ=K@_kW1y{!a\mײ!Vu9}6ˌ}{LD^EɁƎkfkBYΣ̽ٵRwwHt>YozaG,]3Z39/ -+3pUQtѴa-dCVΏ!nQ;Z'Ibc{.=yPك=)`U] Ȩ`;%֬yD2H QHk!뷞%{畧΄Qb D: -lQ<%PufUYBڜ~m71HlUly=lOmi<Hc'mu8zo^`Nz;8.XO{^~)7v.ɪ(QdDm'Y&ZbpYuzʂwQC9rZ:tyVI\`JQ ׇ"ZPXykVVP㜖 Pԩ۸u23\ -p6`GL'V -mZS?Nc;U#v"CXRt=!)tiUYcT]q4}9;6;_D,0%UzFս -q~l:QGmY|+bc(E(-(W^aY-ڳ "Q]"Ѷ~WxKDI(q+F9{F6A69E_#IMj_xj]΀Cb*X҂ 4 PSR4ymn%D}+Z\}6&4gX# W2( 1,Z@ƈ5uʥlN6BfѠvb$3/6 a81jsֆ {qlvFM[)%-`]{yފף"ՖՌ2 -$ ی^A -0.5/ewO@fǠF=jT)02kq X$,0T$qR 6^t8{ls@!OheU&R(_Zbl ˥ۦJ#wȽi_AſW'<9מBKyY(J[$htP,A"'lzEjIKZ 2[edkOV\<4@+&'5"( 'YqU%&m]=U ~Z fSضyHK9la\U:Z[ՉUsnPk%vkZ8qY@p,4ݵm7бK w-V~97ݐF`S:}3-n~ %,#|@`07^%n­bL+ YF]~n픶o ϖ͒dZez?o 0:M+ˈ ewUmGcK@rC[QuqZ-EjYpd}>Z<I@t[ D}ʫTZ2,`"%fU}Tx~k^O78H'in-H;ahb3<^AO O? P!<,qK(ZV@R}Jxj:61 -SlNx z&z_8V 0Vw /wvto偊ng - J-8nSe Д W9$7 {0#q8?qAPUkg5H'ˮϟi InfCc7THV-9˞J5~~>v/p !8~*_ "0䶃Ck`]tc%'*}>a@G J.p2ϖ`ۿgqf7jpPÔ=XךCńD1PvDJ׮d?siyqOiwT|,r&# -'f%J?L0I۱YC|yopY3*ޜ`l -c7 V [|1lYhH8'ԭʼndOtj5aOMi53tR̗@ E ݊BYicH!Lrp -\4,Abo RAx`Y' \-z[zZxv6wgpY9Le!YU 'vRkm0GQLQOwg!'5,tbEB{gv0wA}/| F@ZۧUq7p jjPfP5h`P0-jIv p ;Wl: ̐opcZ>GG-lVMT6eEG;lRi7yVݵ3h8kPh}Q(+D%vKxQoڇX.RfM3Q?erK+"hTzRۨ =MY!2ڐ=ïnk4y᭦N-~@GՎ$GqcQ8 i!k TXqeTUoŐ,TKs@+eJ_^6uSX:- _=*Vu)lp''%O~[V }J@TݝHS }k -eRĪ73-m;\]ҕ >]緳}ɾ>~^0䍴}Cca*w`X^<[fh./һeQO3#{ zsviDJufmNWr&fmdj]sT;?5H;=[<Wwh! -2}CgTxQ/ef+KɒdY~:Iɸ=|tYI9 /{ 5σ -_Dr84yY -_SzTw{e.8۳`Af~\+v.']U+W$TiZwX#lž<ɐp - H`Wl>C>S+\}-'S.Gx*+P,Zo%-S>ELtSv)Y57WEpY\RP>; 0kbb{cmp?}߯ybANؠ-Rzߣ^Sٟ$)k'|h%$2k0\MsQ]6!z^zj:UmHTD餭vzlىjl+7לC @P'Yl -`SD -Di3Nl6Qe6NP,G\Vrz;W-z~rN1*bú%"Q{ѦUveJ <*oZb}N#_\@ FX4 -9~.5fEBu8+Gi,Ŋ5=(3T޴BQl&yTr!9КT -MJU # 8蹥NvK^Tvl:J+<@,55hVwKXmщ|մp;Lr3fўnF`04/`@KSLp"]_x=?˚v,q[ZG[\ ~-bq OE!!Lu쥵Fm`9Vo\i -뾱j:4B`t_RN`3oU+4yj Mn֕-W4z>XsUwjCW6B2Y];L'@+I9:#r+̺epdW5bL̨M#EM[3n=~6J4"{E-m-2tAZ\L*L2 ;@;7~2 *L0e;QN-%OQ=ֳ{9oX7LQـWG>p"Z0䋀yX"B/g[lƏcUL:hI VtK^5.wF DlJTv@/&)@(%I&rZN0;*Zbz{Qek hd6{ƣu5ٮcYW00dad,}nͮKgdjwAn[r`2FeLl-~;~m&=\{N[6 xLBi \MRl3zJU[d¨$î,"2A 7,`XWJ=vi;c ~$IwVgSk'MkWzIJx6gX A)9O^x}KtIG!*ZEmT#.`SߢdI[yw\ rBqQgPe_+ `$.)Rˮ/mu|L&`!7-c*p"c]!O%z@q<6'O~8sBoN?_wnuSd-{~zѪh(]mЃEۣ_ -|a 8V6-ǝq1U]NXuq_*=vEؾr?RFJLvʣ,1e">m4qVexh0\gb{ 5xS 8a` -ffW>2>DզBʭ{MI%r(BvcѱyuMom:zmMt4ݟ)/N}Є$*XĠck_~C2pTư FG`Xm<0wL UƵ=#޻#aG8*,Gcyr>`P"Ōͧk6F~0Q\ Dd<&`i6n$oJYO%Ѭ\$eu5bQGh<{ Pas$j̀-FԚvhQM#mZ4B]ֵQMu0go M@I2S"JsDr1%,v%P>%l.gl=a40̘a|wehI2؋RpMDk-u#8L`(Q~~i°eK=ia+D$fi?{ջ* -U[2y4i 䴜lq5x 1DN9Vkhଉ7$ }}6gYԭ/$ bSՔ t!+/ Z2mT^=Ķ];ǮUIMZ1m3C%-Hu,vl是x1Go]ZW8Eħz) =@#5 !ꩽw6:Y{9k9tm1p={X+BZXmyₓ oqҥ*2aҭx'_|[~Y% zjO۪>՞[&AGj^;A -!7jF#fu o; -z;NY|,R_p,1B45.`۪G[\epH=zej@՘>ط1)ɹ1ITs_|fIoPK{]_ˍ/}9e`5WS4NWzCuxYUhE!Yw T;4^{:۸SGnJ'vў Ey7kǖ-?ww<DWw5;wR 2yBIF1 ,{Cd8EE $z$+3ߧ@S2cPDM Џ J#{571D['8ɾck|}҈gqv_\YfI9I"8@`'ELί*r ^ߛ4 .Gr(σ0aT:3J&e 樸Vvw TМN  fmJ!x\hOnEY%-4̹K3N<~>9 K `L>K.c Ou.c]ZL)daЖoyk*:5v>vH]"F6 sQf}H%pjOjZNYd!>CpnЬCx5m1Y8f*pSr+r)Pr g!)_gg'ֶ{dVBX'Za%C9ПhFNx+#ui-b`<)-M}ߏ Qo yR]4FTJ Iq{rfsKSZ|Bz2Q)]d1L5&J˲;(Pݵ0BVwh֦N)̣G!Zyi"1:@ytԔmu>i+ݡ>B?+ 02C9W?oF Mu_GI^lW.Efqu4#fRs'-{WKf6  N?Dv%k71ENM&$I7/#r=D^qu.?|2~ȹY^.I\$ -{| v>֢ ^UU܎ip1ޢo*Π`ҟܳe2g$?/fhVG7dkL9Pw > -Ρ8P=;`?**]{#PrB@c/hgXXH"Ç]gJ p%4GfD]ʋXA:uJX5:(y TE3,vo3sU!j.}\pFiZ~zsK&:fO] /y 6*؍ˠosjA_R뙎~rAj6L'UuJD@}36SJfA13N^E-%w!H߃|3Qc}`ύEx )U68/a`KXྒྷ8G٧kp) g*F&ǽ:Xq6ݲq*fgyvV2ʸEA̕`5DLMfcnPlq^} kV?m{z}۪z~*)c)q7S -+[Ѳ4N~ DWf/oٯf2!@{3]lD4Z9HI84r#hW܏0v${j*CY$LiAX{fܒC3瑿>Q3|ʙֳ:.eڱZdsWLOeb1I6.NP7ӽ`3h$ >|9Bi9 % s1jKa{ ʰI/%ڞ:o/*\I;54vHU"ײ+(8z?SzCZPTN|atZu8Hpvb xX+V>.bNbDJ8h D\EwL\SfGKݭQՌP.uG -[X!JXe/ \۾ FHw*YKqqLGBڿ`dpuDf9U*3G%g,&VUՈ&@̴kbOo=83x| x#GYi2|])sگ7ņ ިCP}9AIbu]Xy^ku鞳, ?|2~<`'|k;{!|GY -kS^͹EpB~4Nz @?;W:Sggƽ^H0I!sׄ]<0^HcP|,w}WV -C!ud^|L`ر{}m#$YbR[޵_Dt->qACqm}]MV)sW,Wgw,G)GQOs*T*؝8켊 `iiJb3U Дf"sl; 2N/~% m)rxf}'++q@8RD$$% - `9Z=^`}kqor֐FkD._܆9藼?bbXu7I:lH*>Sؚ2%7d,T4>7/fL̄ V[K6ZbBch-UM+אָ+-uQCivѕ1r1`C~,0i ?E -<~rW>JߙpGv=i 5j?Z܆E$z& oxPeCXegMM/ OglاifOx}gVS =VQ|׏%H\sNcهRj+0^PG\p4v^U-Q,jK`ųUК -pnIcʻ?%>Bo9 >l19L4JqW[#kϦ99?eg-0ŋ;G.ʟM8N4ٷ.SDmjm+MMxjИ ׽Y IVBIgmyi7Zʣ)ꬵt^B+Wd(bWӯr0Ñ# X쑋 l nf>~Ғfšvu<&jhћgoLWfvs+,CRط7f4-՗p ))zφBv5. -=opkWw=Z6^umWmSo5[lk]F'رq+↴ϪzMMJcb3s"tT -Py†{/3:?lVf+ !DtV jEe۽XUedlf N~,ֺ[ )EYl.e<=B -"jbWn'aծۗt+w|̇ A{ƒ¼2*^8;b0=3D;U?2r7YI{X.πMZ֭F`u7Bu^YMi˾v p+Q7yWgn <A lG irOvGZP#nGi`ϼC|oJ[k 1 -RǢV ǡ{} ~޺VY\x!: ` dPo *ht55cVz; -8%>wFr8[],+t.iۤU_P7Oɓ.#.ЃĵMy4?wɓiXs2b ]TGY5ȱ~Z>smKfiV g.h^_1g#IEYVl5lQVܪ {_h7glF,CAVGJ5$H>322}`^> -xН+Cb!^.˳o=')$oBq!Kg%XzX؂Kcgi?O%|xB\+RبhS|f{me:>Aߝ<*@r@N?G.ԸcЬ -m27߻5枍 gf{mѻZ).v=8=Sd vʆ -:M/?]/̼3\RxWV_u8:9^~빁[GM }uo]ȮxO6gv[]|a$ m24adg67rGfm2O''U"[,sJnY{${'ah_3Uk>MvH ڬR7#(>++5B ag> 5P~xt=X0y _-&ʭ!t`!-@^ qkpc;}| [sJAylN,QY~o+e>6A[{X4;k܅̎8}ᤍ!Ȥ'w/<[ݤVF8˾)dC~h$K&|"4qarkߡ.l/!xm -Xw+xV)< +_ ਛBYEk1j,6ݠƶ#kl艦Z4deq[eػ<ڵEN]rL?Ӥv> uwnu˦X¦t:8els7.\z׽sK6E!2?ƵdYځhSr---G?OFnj$|I5 ZpR cgS#iF+ӝ[|#i %&HL7 ؍EnpNjY+h6JY!<ٓ]R) -rm"h1hr!4R1.=!Νes*L+<xyR/5@'Ch') *26Cڥ1?8|1%}Ҳ*İf*Ftu -ޥYvsVܷ+\@c?n7 {* xN|VN2.ƕ i3lKX[h`G?ƲLy?d[Qv oP n^1d/, ZC4b,bʽbE%v)6sxBb)&GGh3z -%ຳ]Dy4Pry!I]jϏ`mVm/,u9\UjϬ=ًZ4hsBF=HIʚ:b GNRsujj|6{?{<ߏzk-~5rxgYPvV5h-fG֪wg΂Qq5FCz1_y6*r,GljSz1SC6tƎ9Pue~X A `>]h8<[{(RjPm2ȁ>X1񴚸zg|K -[D2O̧~r$%#^clEZ^YՍ/21 -/ɭx1[93}\:aLR~*7 (HyNLl*hD>_ùޡбN4HfNUkhN=Rn2)?6 5rh؎nCX,xe׃ߌ܂.GFE5W:dN8^􈻼@[R+`&E&ߊdҺHE Rzs"GE%y.EǍ{NƥO3lsN(0MCk,}8k៳ -<2Ww,xWܱ^xuIv,]a]\gp0oOZ-^Y$nSO%vl= Jwޭij=gvrCX r^o6$U>…]zsD_p`aOU>^cABrY[ ϋT9c{[ZoSR֖@;{8) =UYܦ4"^`l`Viӳ$8|D (4+6,ض$:S֌:Q:ӄiOWjKek5,cYm*b8=Υ]L o0y#xJt]p!^D23\fz5]x~ Q9/ZCU/҅M)m -=50($7>jE vgd`JQkHlCȽO)|>D[h)MKrW?U`nNw:>PTOJ9APdόw2?"A ZfW[GN 'Q@)HvuEm&9o%@X2Bh@=xoGgɓOGj 4D$"1/>f⴪ 2WeEpmʩ"(t(qU=O-Fz3 'ˋ¥s5MtW!ڤMVWpZH`]ax~OqΠxaSjJ 6؋OExYu<ȬM 53`}qJUk *ENb zttz'Ra;g gSe]KPCRiˢҌgN*H:()`;dBAYS DTd3oTWZغ]E20llNW鈓0`0yDL,v@lh+}toRP+\zz:ycK{{vh,_8C(Pps]AئOYmE x;sZ!Ak_TROWK-@_O= 5C!HH;\B>mFV5فdܯ79*~%QC`yYK+$ufIzd/5G7^4Gyk+jКg踚g˘PZQ XCdz~N𴥳\ ֜j? >{/ɤrTXOI,h"p%MD_ITbyH(|`AǦ)zhy:Zo3d([ѳamcSY>8 #+1K) m=DuTuL}USaw]k_l֝BufO4 ѷ`٘*.98u &&[@W$Pw_PH(en9'N5WS}K f@3٫3)5:gΙk3'($Om>̱]AS.GVϜ5PJS(S?[HЏ_G /dv8 -Hn=QI?Ѕ*\3aSAB)<+CeWWsg}2/gjs+NJb -(W5 v5#Qвޅeb\,cu..rr6Hϰt!#>k-6DKp -=ٝ% Q{Əy2hesNq33">ތ-EYT~ͭض|gl,#ke/ԎQGg\~OL>=1u%{4n>1҈K[(Ofl#(:xnlpo%#ȳ0VϾj0J( S 2?<E[~FmqCp܀Ϊ wX()C75&( xY/k갰k=uI~6'n" D`ZE"`d7iB{sxQcL(ͰZ8A{HmkgkfŗJ-L)koenB4b|(hIL:;EP چ& -Io~=` kƳˆjY҆H-7C$A{l?LTYiEBW-b=uEҲH,)Ǿb&'h-q&$@j }ڒ;0߫Aylga4Odޟ, oqt'sG 8E֋juV1(@RY5ʄv֋$gR7j^h0@C>Q SmGR*|[c.y,`Nm1եq,Dz.aa${4 '-\N Ň[qlR}BMN̙YK3x甬s 3h3vexw_YUKIu*rEA1[XW֢fmvԿX64~.o(*h/k:՗~& 6i.Y`Yo|GS jW?TN@՗!Ƙ%G'Ý=\\Q,%& F\z?1}buR)yzO|]StV3փqjKxϛsy#_Agow޵:<^YgZ 0Z$(sпS"nwaGLђTYP;f&<$qR|#9~m:Tvx0` - -;pdPdb*tҹljKˤ(IluO|-Ue -¶KqMk=O?H}]"*$IֶθOW>]cc-mulgdPE(VGK@񎧍iXkCAtOv%oW;LupQ}Bl0g97W :BOF pMC=U`z5n7T: :6 ;yۢeXM&8o\RGlli*"U(w"w8תRVNm>*SͮD9lkw>ܣAĶj\ȁn%yTpĔZ]e|Q,@\'; (˼5K](T:,+tG gql̻\AܿgoqY0DM xKP~yrvh'/**e )z#ѶO[{BY8 S0@43./`3 ikdtAz< pD' 4d?zَVV z)݅eHA8ͩ1S~ڲ )!Κ~WAWRxw)Qڍ+ܮKx{$aui7Feo6nZfPeݫ_jJy[h[mN!&; {fqH37SEi*)_MA5(hTPo?Is屲1 &m -\Is`fP_ u2Cf82!ـ)ކUUb]6Xlrd0L91r"p›?]]F iC S 2ڏtbƕtLV~A=Ċ -TPAZCe¤>..&W̄E9*GI,| R5&F+EOJ\VMw}p3]XJ4F5mҎz+kupc_-N)Hop.\Ʃ#yWyI/oD'9etuC$Q<Ǎ.AC0 -zB ^S) bh؅491,BqnF,u| -2Gy>En͐J $^XN5;Jv\J,:9Uӕ֎dIUSSQ6eGg{uSge%/ʸ1$II⁵A54DԄy* -&Ʒwht -j  Tl{ܞ0J_7_[WF\k8B[W> [󝮌rR՘,:u xYI#Q x5CyS8jۊdN)NKkKb )UvC$g0`&|vH̩`24ɱY"fa}OԶyY7o YmO|?Ohc/2xS [:B -A0:NbRɒ#~*-+MNVx\2Zn \Tl#snO?Xo SU-oa -za%&Zv7o>stream -HtW^ }M!hFLL/Z\Z -RJ/҄зao'6F#--i|To{Lr|+a!X%<疫@7mmZ.rx.xj[׫iyvGg"ܰMk4 -K$f{G:^Y3.~@j'C\aűm+r{8 ǐ"i(Xď4lPZjv4u0dc|= ɩP(+DV=}}9kZԔ>et6Š_ٚѱ]r'#9=d,xY#b; Uüx[ډˉY>(L|ӾzWӷ?~z7+ ˧q}?~ k? 狯?\۸ބ域^X5/5SfgWjv8yT'8@0e l)3% fNFJl@4"bzxAWJ ǔ5C#| [%c*j6JBqP -n6Ź@4m| Jye%8e@y<b}Xrxu -B] }Dʴln T]aسm'ߕ1#FuB;5cD 01X;R@#e HUж9[)TDi=,s{bJ_Kin٧^=-0?cԻ9sh%نmЖcu~CK=Ji}NPjnCRp b-u>*rO0r\K:i'YOt Ԇ&>P~Ueeq& ړw& @^vL6aHS*"%8ɗջÐj Ɛ%^ nڊ#Uie={π© 8$I 4O3m= `OmwƢt7RPGoCy>޴]Cꨘ|h_:H@nr9 N+:t58[L~&2`(4XO9U8m'j`.0z`"Ҧ۴~~T' skFTKї-A(:R<zֶq1xl$6zƝQ1cKB}ԏpm;ts̲̉T@pU{+jz,n}͚{~3HI=p],_q(W*nD%W1h'l˂{PDlnYΪ +n5NgXP:xl1]j=:ݓȡKq~,hG7 4jע +0hy>r3sG2bqKK0Z#HS2HQޫh0-;qz[n+hpr"qb9D%FF2f*>| \xDebP9^޽XOԐ84_Pn8`@\{zEn')8[юh> y%AZcg[OLi6W0dKȔgRF :_+Ǻl{-̽nٺ_L6d2QUN@rVd ^1s.%FaUÏJˎMX Rz^bQ;Rύ -`ě jne>K^J39+HCKMz S>O1[Pwe.{m#hxrg!e߽-W cͷ2= d~IG8Oim3/ғ୬$sV F ;/s3X31jY'F=7R%*@Xf0k`lh^d&&#$6$rs? -#gY * WZ`Ye Ьch@)0()Y  ɯ{ÊjMy?+@(RJki Gf b'L \(Âf!G`86RP~? `+MMtM -ZUTR/kĻܡm6sf02TQ.mH։Dȩ41ɽ!J -4 \ -<;b0q4bGZTY-*1/ pf3n[me2>5z3f@E)0r)9bFhq$#A(md(0Il&iA SrJ ,j>#z dRYQB<11z1S(y36J3Ե"wE=%漍cQbui}^sk4`rU$ ! V%1 \-P q [Y͂ yNe/!ŕƥ -0,‘OfAD@FF8 4Ҵ ?*!1]Z&Ed^ۂ^84Fg  "wN({J%iD=?5keƉJ[iU ->aR2 6 $zH5iݘZEEess af"ErdRY by&#213f }0.%ޠ5| W7܃M) R()@>7 A@ -B!PW3R1XH,Im(Xj%O!đϯ9CJ e˔0Ҳ6IhO##3R8 =LK/\CB˧8ǔ8r: K@uTd (DK34X cdʭUn(Jd) []@y`bgabJ$҅AriЩ45}i},)I 6+?ϠPaZ0HR ͕d~.edB"8B1Jy>JCYF!)8TG{<~ef| ۢ] h|mvUW×j8y=_T?xᘓşW۱?Ue_M}'? tꪫwO_t]ŊrZ5{|zw3ϧ7U m.XT7 ǻhiL/8OWЌ~m( ,,83i+v <.^g -Sa -&qwMCw5Ԯ)]+lU(͇:U囯;{޹lx7bơM]x_޲qbM;꫾\!1i^=!Q!4ݻv' -OՄ.8*6tvJ+fӪ q+by5;ثfECy@&b}thZO%!zX15 {(" '3*BkM[/a>sr_t;]yNs8 -6p8)y3?>1T6s0[ o۪_a1r4WH4ۙ늾]!3r~@Uޚv]ڡ+E=58[JOۛY;gI/͠~z<ĦPWۢZ1+p4;W}Wn;]Y+ѽ\w%H+1?[xU[gnr|NjcRѣДTipV͏-hi7Ωӕe;4ce{J3`l t &6Ȋx.m}9ϯʾHkB׮4qU} 3}B}-=%չPwL|FЕMv5FTzDۘӭWC˷n6mnᶵCkk̂#slffVbCRͮ e2-d=IW}Qnyt́_t=_Q*y\S6NІk7]X޲qbM;꫾wU{vy$p .FһjiGcJZGHb*6ٮk}:-#Wo`Z_o8ɋPw7N28%eQ qY9t7eƁ8}^.WWfBfy je'K0۹Ӫ?dL'ٍ~wY@ڣf@vgݞ]{ y+96]oI5qxOdޚ+$}ѻԁ^S]Wrl}(3 O; 'tQ.RJ&QIu9eZ%aŨ"ʗC Z዇h,'*17|KU5 -*d+8TAlbKp6_`O.| -4>|"3֡5¶$Oʴr-#d2r*Bȍ7 ѹCt}OZoMj~xFե3uk9)tM#V jۢd+QMiEǴR0 / 7lC -\x6|ܔ^^[jJ^Y5eJcbM/Dô2jg] HbQcp;*{!u I^2>[C3&(5;+]Ȼ^ɱzK}):yJ(8G_N5uu Ǧ@އ2pp pjM` -DxxZK1\~ HW(t -pAuh\t ׃ɫ£C|y|oK8>EPo@(M!LTV3kH7KU 1dޞ*n eUV?vU(9Wvq#g=ѳv3]vճ>u>lqSa%>3 "KөZ6?l\rِeseV2 jG͜=75|P< -?<Gq'ɮDmɋP)|nDg.c\fTS3/Kd6-kխU"GUT+|XYy,ȡ8憻U9G#c T¦WpL -pN ؓ13Bs ( hOsa@-dGʢ'e6P+FYUFyZ*މtɟޑ[i>a*"K*Hfn9DFj:k2rZ/rઃ -Q(.W3$UYUy)CUtjA5jQOi#A&ACG_axn=!"DEL'HDq Av:^A^ޕ] [[ ._w^΅Afx3`fqPn'dfsQdMMFNԆOp{w(MV3Mpq4[\yOZڢǵ-ę\ݒۤff[#8qԊ`**xuplbtWs  ӘC!(W/ d~dⲛ z8+FXU:yZ*މtiޅi-_U0 endstream endobj 114 0 obj <>stream -Hn۸fsUO9 }"eI E:q~hɮd.zvHM\?/RJҩV]\J|~78g\IF~?tpmZdۯSo8Mb:K'9=VGw}uc~0whH>w(H,(Z]~ 7O颠Ľ|R97.4C)pn6ǽSk,)} k 8ŋX$A̒g=$(Lߏ!kOüSK%-AŊE-$x1K{4嘤S 9AjdӗᝏQNX -ME&06;YRMAק*af*@TQ[3ָ.5nJ(nwV.83VS"uLJF\(օhkWd]B."')U6{oV[ NF5sRx6 Dhsgttp>]y. -(UGlNMq80Ddh,Ql4Mu^^ vNr)4j8Iv>Np7E<]MA캹ךv%'rOV;c+"<YH@_N".;IPh PAA0\q)?l۲M7Gv( -z qKg4y y zxY3xם|_1Mw *d5Sƌ[TD!v#hA -x$\އ3(R4 ^>Aߚ]x'bJ2(_QJNvI -Fƙ w (cRc $'HtP1 ]*^ya8r,o~K \ WdHJU0J mA7Ͽ)Q 0I\3d=uZw6v6*PufCW~+_rk,NUY||riv bqi6+9H x)lb6eBY!8~8XBsQ`-K"hz@b+c}{e2n{g$QC96GnR֛9,b]_Q1/p,FÒc/w[_rwlt2+UݟB -9͜v;2MQA.%KGʓ(x\o.`\LUglWwbv{.3]څ]2څ]څ>>ą/`v#hѮ|ѯ|ڍڍڍ6>vʰQPv>跾 -gW)Ҽըc&bz\U*Ǽ -ȂՅvzP0#7F((*qMYDD.- vMNT$'A. ?f:kKglbo}T"}2:W"G UϽ>aɈA(Okfz !Hl5ZK6 tqp:clExxh]y. -Hi 4o㘢ؽP/T -qx=INwo L뀩j<ֈCjUJw(j=$!y-r:M,$m>]y.6e( IU6'&8U"jh͛ U%3xb .s3؎IC{:H?ꌜAN9jk+W첹זt'rV:c+$Ǣ"M LKI93jt ʣ -)*&sLk0vb=;{9`֟u߷oZzVHژ{`|>r(bMƾngurܷ+s,{6/7O^\8mnjRb;sJYiC#pXJOHAtڛmsA&^QuI;:.Ruks8ሸɧ56nUrޤ3OZq5ޅd<<җ#Yg߅#^!5^Q{x6g "ͫ8C/$ҭO?k)Yں7~O9=Q-\beZ#iǬT7MNe:*uFߋ]vFͤ3ȳAz`r7Ɠʸ|m6'~s~}RBVF*1zd /zwgs:;݉H 6f-6Nd?+#KwL1,u=o?T/nxP=|\ǨW#oxMS/u"_WYs"}Q RVN9#T9SFgV>N}dELQKJ!RV6icPOt 1i,' a:)˚(D5˴Uָ#RL:QNCE^{"FF!h+G;,G\rfe5[ЃuFKw]H -)[ l^fM&BR T1uv͖vaMaAl{{x֑cvc4dYBJ`h,'Ȓ XYU&y9awP!426z^|@}Xµd9Pƹ\"!1Yb /Cp%<}MT/CLz *DEUfȘnUf A\z1 SZ@Z6V9 4H) FdH:o,"'"F%a%H"\4y5!t:Z!=Ͼf Ӕjjk -k65]% tT5+YGHXToEUV?/4$DO gAke>ła_(<EF}6Z1l QR4R/fC/b\+za҅)K%a?R" bC+E.t4AЄu !=(\^H -k01u3}9Jd'@[ky"@po찠ٰZ3%@9e4 ]Db_MQB!4\Np9(dB&aUWM2JR LaEE\oIB"eR϶'؞-8>N TyY>`)b’p aNm)PTNF$HrKin;14(&'p - y"i - 03z endstream endobj 115 0 obj <>stream -HWn ~Y@"I$0z7*)O%|2pMo&ui j\ki,Yr is>j圽]WsiDY7Sk -V8[^+T*rnOv!5/dbD4YDd<$ -^y 98JΖ<tGH V.J ؽv -zQ,89e4<9Xmqc -?5:8[&VY==$~gvd=6N2kS$%Žd8L,I!aACCS;aR-X(Z-H7:'1biy uˠD;#!a -ѷ!:?"Yֲ!\ J2RH2kI-1mQ<ۓ]ХBiѤ%ZI܊YB֟WlAkGdţZ}j:XFIiWqHޞG/257X]1-yXpRvFlK[HgéA*- q4]Z[j WԇT"S, ܄Sj1RjLnIh0ZO)Z5%r?t BD<ʹS dԙZ>{sk` @,`ue.|ݿE<=gHϙj qfN$X{[)"vbeK9ąhG<6>|_#Sgý8cOZ,kLu^Zr;I66RP{޸RG a|i5Z KBFbh!;)7* ԭяi岷S}T5]`8&ceh.$ l#N$ -fŻ_miS6\P`RLGUQpFE!{DvH$$)I\DHlP4F kq8 2+?([` )5u\w%tդ]z Bs/XS[L&= 5w]rO_KЯ,'z<r`a2Lc]0ӆ2&&Jx%4=KO| ijmY}ʻƪeGDv-w,5emԓ72 lx-mzl' =/z<˟0=50n&"cl?',@JExT ahbҾ2`W/~m|WNݸڜ]n\w_N~\/oo9e!Ie۳>o{3PPXOx3d' ?7);v2as} ^Q)$r (L(WIR+C Hxx3q$ӄ^FMtpֻ{/_.nZ 7_^OygD#hqkG5h.ǂVzR\4w+罞E -6}~ɮߟEgG8BGcfș޹<:I(^gɜz,Eb_i/ݸ#?ao^\$A`P#0HaU9KrI:q?;鮮&\t8g<ڽ?vnIlX}˧u8@c-ڴ:!XcM1/jrƢ(="ĤֶٝKa!b@>A!FP#Q^b*NညL ,"gPN-~hvGpoj͗m)G~rLw1L4OT@>Bňccv'1u3cY9k>呄t gVY|A2U+Mq]޸=SԜLhi5tMsz)gqqWE)k|^]޶KrfҊғt.ǦGbHc$bL::*a}o.Nw䢥0n=f5 Ȁ`mq+EAu龩Ay؜f 0X+3Z,#E@ x j웎 m =0KU`-4(:n {?2!,EI;+j\~wNvzt4@DZaf^YsB+q"Z sn;A;*P{hWϏ}NUa6愻2gI_ׇօkq-uMNS:oךmEz;P.d0)sNݸ##S^}b(zMb%E%kn43B8RT;:}Ͼ:pv9Iũսf}a{Hc^`E*&9^ -%7^[B޳OB|zQH ʳY,ucY(Ǘt6J]D/nu^J@Ӿ9Fnw_cII//%+e#cX?*E8!-q?5TrP8v}Iiiw_Jjo7ۺt풀.*a3nS>\ c=jxs;]ON/~~u?^=an7}}⇏7gO/7>뛏[cݫWo_~?N}<5^~~?|+pi4W#'Ab72}P9T">[b -Q+qwI -j 4/+6IY+ q Rڗr&VP$9c%9&쾖ݻ4&\"+bWI0V\eqJ2=FW{dR]J\h蚢SMkp.1|B6|`ΑquDw`vK.Ù(^DȱT8rpY - ?-{wABGބ#iWr2ľ8ȴ5S1P8ĠZ,hbȣ02eFI(*;Lhd%{,9;~s)! 3WZq$i=xp̽KiIީ]e e/q)Pz?ˮ D<;ě>Yލ?e&m\)TϚeuI-5ڊ/9ԍ@* *nu!PԸYg.RjTHJ^%FK7ag롆i \x5Be X -"ؒ86>=Jm!o9E tw!dr<a9%O ?%GUzN\4OhC',$P@{JHkD m 7&$CʳxVAܔxl1 cLD4D&,D[N! -\x;XLHn<^,wu1D$ ]uZvb.KdkVZ\}[$PZ5uXt9*bڕQ?p_ j-F:cx@=7yλ( 7z?{2uĿžͿkkaf\L;AJG2F Jظ9SUM H=)¤jqfUv,"6j,lH$^ީ:H~|S3ˠ;"r *'2J|a'&u+Gr PBVEOYxKI3ip+o[QR0QFxJkfUb%$jZ. >1HEڰRǥbҚy}~9aUҹ8g*1^ɗI܊25'L$3} } ƃ*ٌ)-iem&mn_V d7*0/nB1?8o?yr|EjcQ5!s+ƚ iM)JB[(J:PݟymEr)r0*XJ3\HGkzOR2{1KmV(‡KwOW@YE DJɓ_H0$$';^ Xa͛q`O?VoBq5yl*ELHrTbH;%vN^+UpKw$js,Ғ5?GůȝoGb!vcKy1֮3]^]Lگb9R ;4o:*i듺J9ە13%Bo2&X¹QQ9_u"$$+R$iqce0wi ӧ` P,$irJ 2 'qϦ=iWV(R9W\2o<+i\@3oi39ف0#-[%]c/@.Lk7==BꁻDVQ,(~%mSp+i*Ii8"9r &.|'02^kf -spExY'焖̛!\F}\ؽ0KErUԧ^\dA^uv*nY7Yv8[oAI])cE?S»Tiv-[`'(ج|Ԟo@RvLDC7r.!r_\jL Ud\gTƧЩ9Gy~ Y(`Yƨd!@GX#4[CBkc c"sΧ:@$ 3b,aRkQ TEL13 Ln=\LjЇدSr݉{JKxl%OX}=4S;W0fF"MrӬO5mJ/s>B,LLKXcb~2I[u_0VFP8< ;4㯱ʝQ8ӅfB쓿gY{aĀOݯ{k/L8j\RC۫/E_5ښ>B5suzQUs, Ú%eon`G`:wtEo~%k]ر}KO*+e{Li5qԙ?{gB=L i<3tb lW [G SP$6.8d/tk8Lu z)/~^KGcUoLcӞHmbXY8W2$Z^o=L3=KJ( xM*W`2z^*`cbҼDqCL?T_96~3u:!+:`bĸuЯ!ذ@^J,CAG>o28i,IsyQמr/^Suuhy(q=_" -F6:c"AO]9f-' W+mK 48, "`F\)F)~$w˻{"BGd&P!w } dT$3fE9gά['<*H׮,DNaCx@ۊچ"f^9w~ӬóA:j"Bw=?܊ջ g j4X" txTfd]`#q9w~Ƨ8Վ0l-ɬ^8BB)zlKLN}`?k,1_1CJ#9UFTC&Q||tF·}lEq v1@ D -ki3a#Ғ4mabCô:0_#/ 0j2nB7d[M*M)WM4&aT fIN:ƣR,)Fsni#vTXVZERtT-QBHLc]S`tcR$I]S -V$K%Ű;+("rӚR. 5PHeWQa;Ojʘ4cH`umXUݥ"(J| -.})/8KLv{ eS`~ OdbLEWXCΊWTC_^Euwg2r7Wu_! 28 \sL Ps%2|i;G0F ]dBZ _xiaTTΡDϛݿ~x۟>~矿7N~?r>o_o]?MӿW8xh)r&&~  -|YxMH#vx.5rU]-IU@bUh+(ٷ!Q5ֻ[f} /44 +b`FzJ]6Hb+O{Omev PLh?F--9H'ax3CP4|y*$ -F<6vH ȱ=Ψ/^(VRIMUFl?/)VUZ'H*ejT*,L:.G_^or7 }V^A.$J;]#Q;: sݬbH I$EB1ƬK, -rHfId̆ԃtF z,!ߐnЁ g#[9Էm_#A.KQ[kړTK]#R-mzr,nr+RSݰ919I`؄|K[ -9 -LzIH㷪ԱH CvfO#BHf|''Э{c&I1nhkJXhSv 9Rnd"u4SkjڹIS^o雮"IvFjC"{/- ;Pue;;4"HVyz=K{< rEZ9ʬK+.sFԄ{f@‘?")۰BGUG75DV"aI,d'\[>^R3t={`T)XD ivaj\QӕRhE.S d}mf7B|#mn sD" *Gd H{-b ent"I=sJO\xo~`6PO<9#>ZLz(% ƪZNl$ -U @x ]\O|5,0]ty8df>5I=]>6t)%Ga]>Q@~!ՎS;#Cz\fveA%3LZ`TIժcvzCE CӤr(c6Yy^/ fV>1_&խ~ډ]| 9N(.$y%kxplpE`K%X }.v = G0;wP0>~>:kj;JCyKvEP咗-BV3+OԳr5|X^;N]yxbJ ;zM/zYxK)rԾvF=0R_:9aIg<֖PÅq.oG[v@qήlkw 8DO`g-^0CDڏt=Ӛ6T̝sՇay}g, -::YK<[1NteJi%}j,\-4s`;9Ό8B%Y$DCIcI8Hyf3&gѠzrmytkӾSlikuQW^z8%!1Y4k ג]s&hV\3d kj̊Q p4 ѡbjxƎYjK2q|j_-߶ftFkQ>4o;@rqKUpslgCB;Wʁ*\?l+ v]F`1ԧY/ {%nN&w0(B*%sxC׆㌧:պ:CR3nj@iUm@I=XM  -b|>(]\}Uϩ;MG@8xu%g!kNi8^{Qy e9o61% v20躋L3߼[EBwO[$+zlIKGᮌ\:):'RC1VųrPwO3S̹$P 5z:1z#e?7Nʋ.䭸RgJngQWJ.psmҠNG?ٮ;+O2q~z~~O˯??t/?~U]a wh8}#FJ,r,HYk BE$JU?n>߼{ǷoO_߾ˇ/^=ۇ?'/c_~7^?s7_~e >ٙb'?o7o8/~z3ׇ~?7MЙ+]_}d\O?(#7@W1J9'TOU!*.?a7:H7e ŊִZ>LEڇ=%Ze&s*ݼAʁM]ih۔詧e~ g; *h>3G? V_7 #B:M.I79{t; }(H -}䮩a R:(|ՐT*R[Jx._I̍=yUH@Ia_>y2C9AyFZ! -[M/E:sCG_V[XQK/@Ĕj]45 oG(HHpQ?^t -; Q;*MћV't{Vd OB? pZuMis!4]↋D]>[sk`uf͡zi|,/01R%n=K&j9ZD6fJ!=-2SM&MJ4cZ1VC"1ByΜUϲz[cz}ckzfR(AGND=CZ7N̛e#-[F8vlkjκ8κr;p׏.T,gOA۲a9Gh*lo#ޱAD]~-E=YgbԡJ$x13#Y<$+ -h7kr OyM#P`彦 >G2T\m^6'T+xـݎhϏwpSЖmJU\6`%= <`KEN=0rDD8;i9_g/(4 M%<&]8C=dAZZ DmP*EktIVVTD 6IC2=]B ѵN7ѣkA}c=m)2f@|:;|=3EWEG8{~6< -$¥E>d Fvm -7=<՞menkz2M4%<%b*է@#FT?ֈ%K\{'gWt>RzGɇ," 01-7e 4ҍqTn1n/J.iPaE <(qMRR@\`Ir/ӽHVr>g2qV %dπv  Z!wZe6pY+n8@ _摇QpPnQit{5Dpvh$A՘אx!Vl %n]g8H1z9JP/fʋZ }ܹ?IqN=eBKڇH90PGu#Jα؂-lo:G]o.B b.|MEUX\F,IӎSܤlEUwh7(N)"[699Y*2bN2= Sc s{p[p:rsg 9_OgX:,n *ŢDHT&o*oh` kZB,M4GͼxB{ɒ[QԂC9PCUs=LF]/ -wa^A;~{ eH^ݳZ]^4d*h{ۉ$V >o8[Ğ@'Oj~>{#T쏫=RtgJd7DwRmB]A'jP. -(~_t?){ =q5=Pq/:L;$**IDM ߫K 6Stʌ3uOK q~!dH -@  b72pGY3bnйmܸyW 3=<3T8% /#}E^f& e2V3 PΟ Y#joOx'@1Pp(⻈7a-`mr'qpaΥ"cU/,AmA\\֪^ErA`>c eGaf&Zs'>,d r -Lin^F=lw2iJW:I7?S^5~&Ql-K /?d_`uA[mdu']ռ:~jXnhU%GQS1TμŔF(MQ[MD*ᥕ̶ZN/4[`- -~T[Ǫuَ\$tvPĿboU~yWWNѺMDgspݵrCִWp ~tmG265H27jՆw ðSո?댥O6$s{R}~Q@ lE]WP׮EM^TWB9Gzʏ 7n'̶΄7R+jk~Ւ)i3$SR~$ƺPS0eDw1{bCՎT'ϻ#8 `# m~#J:7r<ROp˶ !hϥ;IH 퓓םa86oȭQQPr=R#'n`Hk̋0p-u[6nkn FR:߮4oomvo!?~ˏu^8 MMoCPfT@Gta8@5Á\"9딅1}{I "G^UЅr}ݲf-]Sn{ 2`.%0"U^\Ң).jDʃO!m'Vt{l v,eb9gB?!ύFLjm`"c뇈osetgV%+iUyLdws [n[XCY=>k i 祽֓6~.Lj=lM4_XO>!oY*~D2ָJap]_[rf+֫.ԍZaQ#r7duԔ4Gp͔J͵6( ϼZ1"[&wyG+HH94^8uB^cALRxc sKE|v`.OEb/5AO?iN x?[`$?f'O 8([#w"ռS3Tn>+lqmh_Ȩ68!/]+ ?pyYB=\ 2p%:عD&rשڻj53N!lɰ.)v{XEk_UZEomy ,yUh=raz'_ Q)鈜fJp$@It|}V3&bg -]\9+kȁ J`V]68UVstXuZ?vG7ݴm??0M` }p B&ҞiL 3X tEk5>dC!rSHX.AK=[wTt.l9hTUīR75e=7ek۶;Qh5^LEJSO(I9A -o7+ȳUuc6>#' +\q(B`慙H3h2KԠXJVD]AttHE-wIL %&-K ;ɃbU+6`C^x/KaR= `=_\$ BP cU=)x)-MClWwTޅ$6KͧEю1sM*p}^JOF= ^aLHjZĵGhM -~Z2,7[[9^#62 as&ҖӪ##B-_XX}N(M:VЉJI@s?"faä&8PP T <6rg\=+аeExy٪ZA>P{$❛")qoǦ'b<ś x(k֋bۊjX8[|HPTȜISTƪ\ZFSi(,\M۰Z?X2 tWE ujB-_2}rO@A5T>F -=a"͐" F g.0=^18,f4ӼyŰgbs(T8pY~ &d"09F/ʡKm;!K1m'DdX7*g -5Mjg+fV,gn4GgAyvSE3>_q(Z|+fВ+ >DK@6*V -l(ZZ ٮd c;xڒαՑaLBtҏfj5jwtg KI5O!:lAERFGJ%P`OSpn)_U6Ch54(v 1 Rsy$V+Bbу;N1Wr"CSA~xYLW*$S^elZtS{#m~};ܪFw=24vh38{B=zB? -nqn"#A*7ԑW;bWY|K[:(LUETS_-TV5ր@hqy﹤tyW<ۧ?z5n/wnܾ?/}㻏o?s3_pu o__A/Vvou/VwzKǽ)|>>{y.?=0._ӏDM駰oVz ʵQx (}iYl؎κ -L3@b -5vI\:H.48n]Z\:>,SKa m'$=!ddU<3}ȭUTG@A?8yz<2wR>~Ŋ[ - G# qYR9o!lշIppB<׹]b;;лHXHOSS乡NܡqNQ s7G=Z6H1;rTo/؞W#pL͍%R%ֱz4İ­v^)Zn ?t^[hP)iS֜(. q]{*k ax1:_FqfMs!⡩] -B"tZ;puΚ -ȼFY>S}>_Yu|jelOh:3D'ҶP$pMhʑN-d*3 v^vn;6{*{|1(pt'?jc[sǘ?Dրe/mKThFt(Feƣ@m?3sB:|ЖVbyӂky>J]ӆ֎:\U5z { -LFxնbHÒMLpȩJ~rٱHg9cu+ -b3ˑ4Вal 4n6']WUfdD8¡ydXuv jdMQ#с{7)M$ݴo@ѿ܄e{\-}1ȧJю<>~*EVh~ZXcD*`<95tV湞+S|8*ѽXp\)j C8ŗEx䤍OΔJC#ܡ++Ewq Q>gCŶzɉUZBɐ=a@͔Q- R`ApatdHa&nz&d5ui4vLݨIŭlFDx/ z>n2>UHi=R,  (~6#hJ@oO5:{/9j; ϓ} o?!o^9 -hC:CEEp{|ByTJm#>ťو)"+?@gJ*]8lL*E;MO>uj[mwDt$ 6JBT'!j -le\C#ʋ*C>{F&K[=tv UM(G er5MкqzOFІǭ/xJڲ?nHNRsS'6x -͖KL\@C%;P*z$L5%~]'>7ÇG?}o=w<χw~!>'޿~ܮ[{ßwo9=߿<_<eWjvfWd*a!xEㆧ;\p%vʏt|^+&@c59ADEBFvgP12nwجcbӄ'{Cdr%fkb:ǡZe{2*ZUv:;s=>HX) -TLfޝDC~O1:OY3w4Qpt4O[T3M.) )DeޛaDڛ3\y2pd^ PQ_9` 612\Vw]+`  KUݗpRADZ 9[Ⲣ'R >TuQπIg8k:qĞ~!EƼVGbSK/ָ}ҳ/i9+օzn=X{dD̢f%<!t1v` n^-(/dq1Y%T>=H.[b^bV &5CD]HPw"ZJ˶y[>3mNӁ)SDhxW\%<U,VäHOt7: "">DOBZ:8+#9qm ]ma" (yΤ,MV{zM폷qUg:O~+H"JUF"da.g=kP_u1&L품VV_'xȨܻ Uck1\$ a 8|X{R!g>mՉ[kKUk >6;b7(j=UTV_+%BK^$T &/j\+ {8 ^3,)W3`όiVo#ys6Lz~z1ȶc$ON2:`%1pC5C -%kNZ"Px#%#vS'1sn"3vҧaU}WU֔uxwmr Zf!hCڕ73 Y)2FTMSXUE+:Ti4%%-l%Ka>-=P=ՄOpDhږ] -/Y=Gܝy!և4RC~d?IבS=7|Z-Dֻj^i'EE.#A 1=o[ƣIxG?CYU&vw85p)W.u҃mַ M5J},PߪŶ'e}4,i|;z;g[}n]QҔKF5l+6Errq(4_XWdjܦPU>stream -Hn^@p7l59$dM \.Pe9"K,-qTԁxl99sf8Sg-ѧ9ĽL̖h6_9K3ܓݻ]X Sg{//JW{#]{Au{{lrR;Y^l!='!w#O(}y?94@oEgm㰪QTZػraw6l%Nn -_7n|ӌ;jvB!;-}7ϝOo?q^}NB8嶏 c%)npv`XSٱ9j F d [A 4ޜO?<{~w׫ۛoJ۳ۓ?n|wW~{ww|ۗ׷.nf=yps|yѯy{: -_o.޽_=9=fy=뫛'/^ -A(2L\JZVj&ZG=|M{͒LIb3HT}ϩOJb}n&RpvHR{h&*Pi١j5)W ħ*vhagK#R`+j~JBjGrT)Ĥ~4I0.$"zH&VEb,7M& }J[Mg̝&}]\HMX9ׯI פ.qʶަu֨!SP[61. EAœUÆl7^Z[S)Eй 4j|ZrkR߬du bU#-PsNƌR,@fb,PϺ_kHb0eh[ -Wg^Mg!SC)%%F"/-IL-Q9AH|?S}yWGPW`;bKcHk&gJ 6b8n#j? -pi_רwqrd05.Dz0d:pŭ+ULul…nT bPذ]zjÕُK#IfV ӲRL1H#' 7cԦ}Hm?P,-6ĐGĊUи/ID H-&U"t(TLz;Az^hcQqF)")*>ꒊ-P߂hMèS@& }U1 -)VnB3:V/I/!Zϊǀc=J>, 2nSSgi:hCIL p-"ə$hH ]~ҴSp=Naޔ‰wLtjS#?4yT1u)5bťDO57E -˚T5TuB*n7z7 hѹ6H(RICs^jJ%TbpAT25[\zޢuS@!8so0us|3am/B'%0E`l҈oL@1we IPPъqYlD\kfEcʖZ#Y 7K{hYV1F!A)M%ȎjAoCᗬ>@oPZ)D):)l@RQדlJfIfuW@Ҕl(u%R( e-6ƥ5]/.:(z 6Bsi-+\R-\oGHX^1,9-0"9$8#W-d @m -Bxc3>*?uJM$_{ɡ~YcV-`WX̳U:8.qOv5ba@mQ*gFvűT~coK”YxŻlTuM4kfalj)vyHɲ@9VL@cܡJ[TI 3XZVqM^o|cԝ!ppm-yzN$QEZey̦6vnn'V)7'~e =Zf+;n9lZ康g ~l_p뷣OPKu #+} hRQZjjJv9uZz!j:~8=f2-2rG6$߀(@? %ѡ 6)[Z g%Bb뙻Pƙv:u>ҎKT``;Z>nTnP"OMg23IF9ή7=`/%VFw.;lY?sŤbڪeŸ!?9K.\"T!}ZiXFl,*Z]wUw9\UZ[|`5$U H@;ԉ$^Bq%sA7Y>f1[i^ƐQ[Mƾ:MlԼBLmW8)bR}E5VМ=$~k|I=`#ퟷ`p^W[̂80u_.zi;zV(L;:=` -tcUAla6{PB81nD}"qXAL"G(![ٽ|@` U+TSsvs/HavwiG=cɆE)ԨhT8GQT ^N_uvѡW}=s -얟W?/ -sWT(i}pxEy}6X} v>EB֚C9d0$ʌ]B䜙̀\_d!}= -lØ v({n & Zzs7Z`qi/ )zCgҹȺַ9m31:;ލ$R{MEV@RcvOq:%g>}}5O򖵟m$:[E5VݏuDHQk"'wU~.AYjfJ7󉐹<"9+Ox•΅y=Yub>seB$f3CGΝDYv؞0e*Q}m 7E {ߢX#MC@Tb4c~˖07ӯ{ -aCS0R!k#ǷWbэ~SxwZ{t RXh7+%dOS5rjKBky 6);vX57{VBum;^7闱fӵ5el)Ra9FQX-ղNj5qJ2h!>}pWJGc_j$2.AŽJ!VG&PNرk)'XGaN76Fޝ.{y0|}%ϟ/Ɗe02WER$Eۅfro=>:guǦ]iwtF6 Hka"q'u[PD(X%@ ;e%/) :gk\3n _6ݐ2cc?c.$1^4y?$НӖ'A( CC#@| vۈ=ި~ƢW4-=6Rn+ acg^djh{VOX90j`V $u<%mtӭ؄6^HGnxN[DtW4Ԁ摫H,m1%o[S"Pqrrq#pܳ  - FB'dyU]9cHzwqV1+À `;Mm/ 76gfq4P+GBsX!$S4fZI\L7 Wjm~k(2=)GQ5j^cs&C[aJAD@ݨ3nN\4q{4 -,uqJۦ#} \'dMMKbfNa"wANS!)k*aagWxaJdf3?ťww@ !HqNxjir31N -&ߢ+.Ry d"5Ҩr!Hj|RO!n@Ji}o]UY J=K c\hK@\+Vԙji5ts֐,#.(R fkF/ʹ/K$ ?P4?}eҔ[J!aʝ.Z5IC'P~toMh 4*FQ:3cЩ-᫵jhxP 'j]4S"4{t|}Iwjy[SÚI ))_je﷔ͅJHjLA]BèI -|@g_)*E|OޢI svz ivɊ *B.+n{++@f1U -5.ɹJٍt+Fz{̧>eRɍC&H695 cWu{==G<^Yסڿ -qd$(ئUTn> - 6 -L]RjǪ\||l}T? zQo,4]FY sjt.8$#yI:?{j|=rFnnC{+; j -cyr[y@Jj&tT#z$υbD."I J˚Arc?ȊLS("-S)Sq wIlDCF:7H5mG_iyV\:k}_"IvyCUŮ^l9>i=D}@Uj”2<;ɒto!!u$@>,"iAJgXBW" ^]hM:n6)jiG@:*zaERbӮ |0m|O``@+mwP6 ˕>˯/?}w|| w߿滷x?|~L{>WŻ?|8974?y7>[}+VWj(tḧ3A%q M7oMǁk7:@p%E= O"}"Ry#Ms*1>S=KhW_ a((Qodiz1eu/& -KV.@ 8TV140pf.7dt8,aj{c{0 FYY$~Ց[`Fy'bR gw - D֢^Fss8ic8K{;[$w9ι[s***ja9P?NG2Tt+}:5?{7'#Z"\G^ʻyKyFV(zTWDg2Z;ϻ'emǎJEavrQ#S_Ƴb%$"w]&@|]=Sz[-k߹ueרlґ*EM $w?q "ph˓ĉl:Awy^Zó UYYzvظNjs1 -2MI4VsGVb8~P2V?ӶX͠4ΛE3q.ŁiC$\Zr_sy)L,uTQq8\#hOoy]r^}Gsuڔ~F -3(I>ss osZTy3<ЎUZ  %Iڧ!n#-1Qܐ&>fft6*՚( +Y?_X_.*2Ѷ@7W.s4ӄ(wm0T{RbJU틶pF!tn/g>Z$dVŻd$l~>5p-~a?UҟPD=pj˃I6}E CvBα:2/@Q:D9m.-2r ^5>Ao[ˑI;zi}WT%@ =h+H`@@0ZFy{8THF?ih#^;}E#pF%.ZQǎ|\SI: ks``W̫Wj-nRNȉ ntHb *yy@>8kPV;%m|V~}k0cLՕu)@J #5z>cӲfnt -s^HF6{xGBu{bM{hjN&x.ER@Ye<ҟo-ʹtr.}6la 8bkɴ -dz͓iX~^OuVr]Ĕtin `4еhIVu;+Խ-5"NEFѤ*Yw~8ͮ[4ѥQ h~LmʼnqϦgC2TP,FCueZ{p#.S[gyF5&*V):, Έ*p蓌/k䅢u.s@Fn Py))V`K `vaahfy)cmoͲ'L\}42]_)]}Wb_v0l[}GLל5ԝKi!`*B@T0#y qv h+Mevl|hJNshyWLof{'|·dQB! @A>SۈD^[aEXTĸJDt -8|t&H 7Ἧ?By`nd9퀨*^UOMbap -Y%kTWSZP6tjEC}]st,QKaŭ$V"_?/iָ?JqZJikVSThX˶DhOS1v.~7DK\cx¼A=QVn s rg0yHw{ӱ_dE^54RoyYĎX -ҲOm\+ZMlq:<= doW~m&ED33}" -sN( |v˫1eKd`[-cN pB_nxiZLWVGndz/C0ItP6Ҙ%̊婙%aVꬰ4WFW x>9I@i [Hm@nm²d/ -0QL --]tgq1E&jMk} ok4mɱ#c;80Vu~ǀe cl@]' zjɓ8,D`q4A\سu<Na0Cdi,_<? -BHڜ!!S Ynа1y *w0= -u#g|<ω%$ӄ<&ܕ9&t*>93_r@ۑ%ĕpoq]٦IЁ,4h5^ RNVvu*e1vMQ:" -cBV{_O‘d\_FPOSRZBgF ;1WB[#f?Be.Ċ]_ fpah)YHDu1LFo|RELjv.~?.`ljmKu+8@w%(2FmkC >7>&7\yi_܂;MPXqoǶ/>ƻDPrӉ&;M[,n LHP"i2V\@/;BSj*HgKa-&+ "E!SQkjA[\-:#2#ֻE[pcXrIuP ~!j@r̸{aa$O- [Z6(m|[BTc$wILu+:qyL.AD)S_ф.-l! @#Sg}S!ezCbbg/_y׏yO_@l@/oۧ_}w?}g?{#O?Og~> ςg`v6DM;2zWmnZ:nv^_Sv{Al_Xф`BDއw)i0)9/S{{kp}5^DO):(sf_%i.%^#Lr(saJ_5])2k4)`Y_x&8hދcBJz'jc(h8]!5 }1g_^$l,:UNOJRA@@+A#._ň5`UNVAMg׹2'ě?{>+.SF*-=r0'Y49z*1# hƭ -2҂{pU m~`'KI " •P[FF# 4 -=GVB,'A0]rPnh UzZR,A ?l Hz:,{t;htuWUF14 9ʱE=P4'K%EI9iΦ˄m0[w3y8GI*̄m#QCvVν]6Ѝ&pSۙ[:nJҤ- ŇfDžg{w0$|Q[6u~Ӵ Bzuq_ r+#;`PpX WəRvo{- d8#~qڻJk9;YâtlM_ƪ4yr L%ƕ $ss& -^jεDjx{7IBاvrN>CˇOdI#]7K_⚉+кuᄃze1CJzlHeY3(ձ0ڸ>XY42Uo)Rx*sn?3boh^oN+o=v9iu%vF_woj[#WF>|̰9jϳǎ4eXAB!t@ۓ3t"-ua) ON.ߒ:Q#泜@y2rw$jP}%۶DڜVyx/$ ~LSV 3=אv$&oP@9H]Nppk;U l?Oٴ]NPGIP1L0)dS۸ҒqJ?P)O5j1:V -` Q<[hSTGt yZ>@jC=E3'۔('H ӫl_ F/9t2#1eiD]v}:A]&f+6~T1C}_ڹ[g~Ȳ3.0y"9 M1-aw.;헔Ծ .Z䵱H`K9&2tn;w=.>f]e6rnJ1M -69`C핾"2eq<^ ?ƕwˢ]L̗tFk妷H]W)+jcZ@%,ge#)n˛j1OX㏯˫~cޔͯ}t&*Va 3DNcfAіUrczܡ# -wZ\G-Ε .֛ ?vl~yRKؘAKTPFzHGMkZGʾOv - ڍѼS/~*ݘi35h -/RϕKۘ-ʪdm=glt)ːvkJENZ"/PӴQ͡i4Eqݬ(C1OQB!}?~׷_!v+`IJlQ;u%YZ'}y]SEŽ4Hk{;>3zQr3#U4מI;oZ`jU[&5o0F #/^ S,G/$Z8ͩ0Nj`ln2:G/W7e!T -$}(T g.&SŶx@[Ͳm掦aVY0wS&##|os:'Hu me97؊ERAy-y^*l>Ř&x_ҷyi/i>ӄ|r(;吻i)t"HʺRKմ’zHTB20Of%ގ+|I:H5*Ћ\ach@jꚖ®+CP_lo]Ré֍'C5^7Νut|)5WN[S@ʼg"xjA{O9H7>yk[ M -C9R!#5#բu~,-WuB9/؞~btIWDg Nؚ|,=`zVj-.rU-?LfH7UӅ%eLa?3f?M[4aYem:U6kMb~_z -ߛȕN USa K^2Ke'g[Tې:"~`g7tSڷWY2{^śu?]!zO>Ve -ʚ6=?S8z L]|evRauD)>i~zm&d*|]_LǮؾhPysX{wzk+Է03,aƿ24, i"-I+-U)ՐaiV$MrUYjm^ x8mI;!%5fxq?=k¬F^JʞI+TeV*$X,B!QY'F: G|DUR7n|Y*rhW™LCݟrC ,1M]v'1@h2|ۺ/2H*Yy'z[]4YC^ʒwٲ׺hZ8EN2dy4aN;Ցȝ}鹋QF\ ɖu;ũ+ij$HvsL*DSWmI[gNlۿ'F] -ɴKy#@ah"b؊+t$΀p_d㏏JN)^.zY?h/:ELHKM A~~ u%;o}Ukuq=;GxB8Df,edVp"ٛ#";>ˤU X>v79"13(`&2 wr&~9quඔl:D7]JNJGH-<ټhTae8e"F/ɚYqM F54xt0/@޺FyesT&.QIICi Br#-9*nqcFW6Ӻ^rԪBM sRJb% ,ǯ09R>/芔U4ϧqCL(-*>'r;0AVY~<+4x{ٗ0ryv@]d -޾][NTSSO%3q,XJݦUfhRv?]Q&p棄w Tq 6o4pr%#F)h7|HrSjPa3IZ4R"@L+:@^OiF iݖ0D܆ l0.Xj湆d֔}D;ve\ɢ!W2xoI =[pJbn-+rk,mū]%w(J_vzZES֯ A.B=ԏ]2&f@ -9* -=5,=.3#E8J=V'*ƍ6n>orMg)E؝ΝE}1+sJGST)'eƆf=$1u sN_@RN|)Ary~ʗg򫗰5ONf!Twm s0*t]0 Tq:(N=^ 7>MՐ3G'ԭ$vQhD758xRވ\LkL#N9=IkhڪB8_6ZTl]A[ K \ț.\ϫf5Q mÛ .u/H; .ٲ,Pw=e԰Q3AihT6 gncEK6lK>Q<9o ̒TTh܉z! )*yߔaa5Agxd1 Р3NdVCx3Z S&h<8RGt2Dj4XW* @YWr3[%&Vi"dRYKNE< 5ӷ%RɄ2-xhd|2CNGMl;{|3< -SB{49{qnBc=ڝ'?:QY)$ ; 摔ݱ-[}Hla[ǹ&X"iX+eZ{dvk.~o9Zm?f7R/!r,Նxeo-,ZM1j5yk~Rj|Wtܺ|i:!5 '*@i2A&?۾3,.8>Zp5l*lIE) 툵rN/Wvz'ɗ{43*=] d';mr[8N0 3i)k#J tbwQCD+ΘI#*4|V!-Pm.Yv~GifL:T]eB&Ƹo[KtzȘl~(nէH,/K$(ك'6Q vIl,$q<_!'A8aڐpg֍zINgɚ2X_=e9-ѧ8x -ӤŪ%êJ/ h!-/h0^ z2.\9aÏrr -T!zBÌHimڌQeUkBc^ȎF4|RktNRxO_O~kJ/~?zo߾w?o\oti\ow?RyqۦjTfa,Jq>]t*eyaD]Ap27(LKf VZ>)d,l[J;2;xb @O?h ߺd]d>0@XcU߱jGݒ-w pK1[H788 - JY0@'qD{Jb{)P{iqĪۇMLa mΎ5\#G-`Β3i5To-[If!ޱgZ8"eKJ*jxϡ5gd0{H)Ñ>~ w_^.v%EghK\wFn"@hY¶d=+"1VXWkໟ^ŢL>QE&ݖkJeu%͎॓4QIv(c#ֆerpr1ϠP6?JiLMr뚚YV/8KgpB'iȄ^E&j48[v0J3gY\^LP69Nz } ǟ@*joF+@<;8[I.' l-ɬQHǺ!/.,s#u0o/j+tMK|mn98l"r -5\'"5U-r/3z,XL/#Mv%/8D8^W ԙ$ifSobfv,IXjM6p7JU,C4Y>aNa[h#xWR9'QvwJ;=PST}8}%L3^=u'_Yݲ<$pVBu%Bps^kk8VJ LK;DMkG{7sOE6m%ƕgVRUxwrGBk=sCQ٘ Q#-TILw6GO2SFtDŰqf"\u7Cv@p7^H||$zBTF0QV]$*g2+qIٛ7l)<%2CɄb͜Bt;?g{ٴv-h+'0PϒYIK\U,FWR`9;k]? Nψkbu^~+}aŀFc,EY;s;Kt&yskrC3%^+F_]%7TYxBaV`+7,\ Ab#ڈp`ĘS&<1i9!96JZq%>w:9lX,&H c^'E/DuwOԸ}E*nPf2zRC 1@3l7_7o6{t'cFYE?l¹GxnL5,t$}e !=J!F5CaoI%7Lz^Jo4CjX -_^ nm_@t5=[c'=F.G뺺orYJ~矿[Ȫo?׏y>/_߾}_^ʣ<~zyh"OZt J\=U]xa"%c@P M~qc|٦!vc_42eWA͍\(.w ڕ -gmqc8IGг4fy~~=.aX+-|G\*.i]UEP6ԫ_&ܹK%ɡw͠0rT'BK8ц9%trb50Y>Euu\z(#&BB*|Gӟ/z7?{X?//aEӧட$"1!)yrPn. 0E% f#fp~7l$ї7kT9fL5c64 -uzL"\xIы\,8Dk~1"dۭ&q(BQl>v# jՕ[Ux#;La[hsklufu}ְ 594+\rFuc%">"_g3ɢE]eo |Zf֡Y"&!¬zY{OYmwӝX܈f,1`Yz<,!G랄 0IK -pwvIeq#pBTW'b{F#rɣͬoSyzLLX*nmaar޾1/D(b@9-"Ems A;Ϙl{ԑd8RHΛڂ]I+$%nvA]Yt.2$7W(=C@UΏL5i͕pCCvy L|`1s`̿y鬕`5&&WUq3td,oq UKf}ɒntV?X ԥ -' uѥH wuZԐK͡Dؚ+hH:߲-Kp_.}G g4GVyZ]#]Jө) -VvI"RrT9^1r4~](9vfz<#oЖ!}^a\v(5A%GvD 2B,2Nb-uޞo]=beueﵾe^3Bo*8CN -#,/gSt$,dی1s0c#5jbAmc7P&iScN ѺvQ*y g7H^!2H!ڋ)ڪu;RYԤClBIwv,p]HR/P-`6R@Rf>3%Fd -|~ף8=G+-ϖȺ*랶D!6‰ˣ0.ߨ-=r]VAGF /㤡mlˍ eڦMIZE3zIEaiNupex'?v򌊽8꒡O1Wv#ˠqN "٥8 -ȧD Tͧ׈Z  NGtu^LS'&e#ӼܕPM -!`wAz6 -32f܋4bnQxW˱O -Ŕ9#4ϢL*Yt5EWo6[ 氻 -n90ՒyA}317Y,]$y4r/ qleQt>l}Y\vw"CZd crw -Q( -gI  1/ \ҵeaq`6WD @h<tEЃ.&&b:~}5aʖr -SPbSDڜa\YF@ևj=aD=ʓùuMJ9$ur$.<TB.?Y) -uXP*KJ8nj+sm:5lXW92B>NҞP2ݫ(HJR`~d\ŪZ,Q13=Y -Ytw;ki]7<׏o<=Cxx_ݼy~|oz_>ͻwy7?|v{oy>~/w1U=xͭPh?xә GI/<>z \>}?˻~?y&>9Ox^?œ/st|8<=JgOڒ:E L{x*eL (0 vTx-Y5dYV@z -}TFMks)j%9W1H]ϔsP[(j$QfIv! -aj+IL7,RZz`l!_`j -bPL3%X*  : ̆k˲9v\ 'pb%8R( -ߵ]'/m>wWMD l:^H0iע5 )gsqdU>1_*B @FETz0Ic@ }6Cګ}Ar;Ts Q o*Xvu TVIg:SU?jl7a!h-&څ#lyL_GtJR$@H@獽 #w%iZ]#A zh0JWhʕ2= Vĝs #TGۦzY-µg=+f-H2;M$MBQRaƤrr$Ph{`5U"%l`A7F4NFLIqU} y_ }9PH!o9CN;v١ѻ7u MCd zz5ġ%>y.g!Oq|s޼JRæ_Nu+h'\ eP+8Ig ADE!7VÀ`֐uF0q<ﺐt~TLtHipoRkeD2s*Pإ *1"o& jJ6 eEX1-nb?N'Q␔0(d d@}#m ,>O)]*u -ytH;r%7 T&+'檦|O+$4*h|Zf6L8@mLP՗V r:'r3sd6Wܳ -sFe/SZq`GV5.ιf[0"`ϖyNQNҵKFm64VTeKIhvmoei{ ]׉!t(vMeԋܚT a4 А. оï%w+s2!Fc_7͑ -ЌsxF3) -ZMPgYUe-M3 hR#A׹3]kFܬTn~)8>X̂mК0AJn|l[f"F)+ =ºJ F#fhQ\T@e$vdt(r#PdHE:)dĝ'|C_AwӭO/p?/mK^֯y7vl9B=<$Z)شp\O_'wY#[| n"͖,]="B^NT帱}KP'>pZ -ǘ^h3/DiďU땦.;vy5Δ};oW"!>vj~9v?̘T\\Hᤐ,Kܿ2 endstream endobj 117 0 obj <>stream -HWͮ^ |gSzO$?bre-fWh` Y;C 0|>^Q!gd^׫3Z9 0E_R&=/Yi0{i5Si-!X\qML[5ǽL牟tX}"P6\{9|߶14VUuc">{ >cظ=fڢR^ E7Θ\6;a[K;anY=>#weU/u^e(C(N:隸lFm#bW"FDbna@`YdvgJTY\QqgIr^Y (; `x6Q7-Q-^~ـJ2VKn] (//jkTVLAP0݆h}HznSySd Yw>ʫ~mOAs^* -fpܽnQ}o7<+I2gDE#+- 2mXT!@`v  D)sehm,B{YV(F:.؅i" X}r5Mf^np*,/`njlK"AK@ U"ҫ~y&gCAıJr"a,$9U08]g%̛l.!wM҅cdpvjȯ u2 &GP$cfu6%7a`v˂X]R&Qȧ(zF8'xqshR0fTʶ@n̢u"d/+Y5qU2w2rayIͧom2lLK2౥*- #ڶZJo `*Po 1a-If+Y=5 - 6{$ l#>Ҙ@lѦM Aƹg 82ς4(j 0@<2DMN9hNcsneXKSN8Q/*lj'qZ$h?/w|Ƿ?azJw㧟w?_O\=V^5׻׏hk~-hOAEۄ op4Z `5JHdD9*8Dgթ(V$,5DGA!$3id+v"-KZl$BJ,!'8m &<dD;ZzֻLM$,Hi`DBX\AA֚.nK lFKx&3*2sH*$@%Zv7OmkP;+ޭɐ OI\U>JAnH'ɂS钭]E]`]?qdk$* -miqIdHgEa7e>T&|"|HX̮{#Ԓזt#o9yɩQaU|K{"<V d# 5K! (6gշg*¯IhLz%7\_ -7?"S:u?,>IQ{@NǪmxEK7.c=>aq_։ak^pj%T^gEC -KUJYPTWɰzi֢yVy}s*@ȷ^5VC?8qV 4tC)YY6uKiR#^0uN[%2]=i%3D-7hS 8^D2[ebKƯ^ZZ|ʇ7 I%>)@mL*8!tڹ*v3sd7y,^dkKrj@sedTj5M!֍M ܍IiE(vLY gO?KG:~}}5k1YCN R#QQ9mPwT/e-7]!MQR[V٪zJ* ե #ԡdh;Y (aJ@(LPN9F MEp[AhGs"Mג##4=zGOVWmTl7OZ-k|=BGatiZM!d>nWᄨdQuE@<&8R籄SӫH`f5{[z.N9v(Yӣ/Dф!yVpRհ Gv<{ԝ&G[+=KtcG # -i"$}ݪXGյ aIc,?څ h)dc׼y " veܹ^.53;ȃÕghTÖY lu[1P7 (8?-ÙLBYơ4`]h!gO7گ3_Xwf 0Nj-"r2@% %%v"I^R4yd:bBPPqm*h&yK uiGچrIMi>/k! Xq%&&[w$KyŪ9$HBRC*RfŊe)"wmFm,$)M$KKX6>r(sUt2bCUmntqDJV;3*Wő7!XSdУcoɫTR=R}:L H"$y6%KK\F:K\9DRHZ/#]d6#|U޳F zjh bEMסOIY\p[F," ͡WCCT]VB÷x$Yh4i].?ԺErՃ 4T279k1)#}h~)ǵpTzo+} -nJ{1rebR ،CZ: W k-4)P-mQ%ޫ+Kl=6.Kb:E+cAՁ5UۢcpKSdf 2SV^UJV]J =^˥d[ v⒴|9 ($T]5k+K) R;GACn٧-&_G e6m (},1YkxɸD!hbEy<ﶌH* ! K򼒿`s"ơio;p3 z^\o+O8{W<~hvOo~}ӫw/>~tkO{^!sO47O~}+q_r_Y]Xm7ՍC! Ow^ݼ9y7 {wV{{\?TXtW%víy1tj"݁! ͙.inh/ZK33F\8A*&-COk9ծ5 -wIFglԐM=J;,U]*]k&F^v),u7]B!G& uI|:oX`*Vw?hb;{B,P<ڻM%F$|HV)x _ǫNԒQu-lKS*n-s @)/u2oaզ0i8krJ&G%KBɺ9}F]-GVS4%QC>P*E%K+EbT'G`Qf^yXǖ!yBǞ*M+í\>k/h*J`\~n_`jM\BV5k2K3/\QR:ޟJ~>u k*q̶>j[sҤĚ?%V|Μ&S_xSTmo#}YeU;:^`+)tەi:N9ލƺ;A5 !$f܉۴Įar^1*2[y GQ!Ba\@W,IgS6^ǚg0"CSb -)~q[Gu.r,B3SŴgOF5 -d-֮R/1(e%*j[lRC ӳ $8cLH7z@+goq>x'CԼIg s@Km5.F8L)՚ qeSxJ*%˪Ci"LtQ7J*o_eFQ$YzG Y0%Cg|+3=dUwI՗%%w|Z%iݚIr iq]?ag&Aw{p{1N^3LMgb5?!3 X1N㭦u~8(@ G}1gg jP^x_4& W?:~[2|}%o(52h$ze`\Nef4ғC.m -[1ۍ>Ku\1t%~R>.EQK|[BdejrRᢇ,Y$uLR[I %Ò h͈)][ÈV8T^QH>%e滉.Dt `< i-)]6luA˔">R h! -lJ/"[:kǾóHN_4UG,#1)TY|,oψTpEdHq A;J+*2]^F"?EF7#,1mj(ҚrmcGOAP -#ي&y}G1 Q:>N1QS>UUsv+I꺾Dͷ4Q0~Th\Μ.n\7^}*lZ[$16xrʟ%CgDv2SJ-x͎a T#\Ԛ-[jDA/u> sY%ӈXK%V -ZrHؖ>Ϣ*זru`1ֿ{5tc@VԠF1TjV|%Y=-6aLjkhU-|[˶_i -O@^@51+`~SlBdDIȮ:6\" -ǻODQ{ 9@\nG]ͳ W4FE.z~$ -A=A YRj I}r&H JeFMhݥJ!l4bBFhŪ%6IuK%Suwk (C~莤` GPK<9(Kא[].63#I9 `*!5$mSZrebL"q2RUpUy{ϐQ~\%H6 N% 2٢}3v45~ ݦ o6(X9K=C!\=t&)Y|َ[ѣ3 -WI;R.]l?#rLLd~O_PLJ˿~_}x~ۇ?ͯϯ|zOort돯_|x|>^^/ûέ^m>3_^t+5zǵ]_0ӌg8y%LsX)"θ3_ ?.Ҋ -SVB\`AKn}jP/3{,k\Gp/2 PsŒ@k~o]x.=:[XpMӏqZf[TOwy꯺:vryz]plVF`hѨsT܂CJ+0lk*bojm+5Ԗ*5cp01Ir_˒$hdA)2我:^Ttv<@h|\y8t0ŬKKIE|*%kxҙɇ"+8(thâq]<2HΥ3ocE ]>Ju8'%~x.R!4{K+jD-1sH'8u;;?藵SsVqPɀH76K^%RZFBY7} O2ey#D%Ěg C\0kjy@)'葧cQ!ZD,UC}8JUCGWL]XO9Џ5 -yY.B7y.9}ٙcɇ#ohxX1d g6gUW3v;[FPhP4Iw8CFk3FkU_Ϲjr8Y$,e3&q|VKKk* ӘӤk4]o;Cc]XÔ1t zu#%$.g>OSIe\dY]lJAo_uӛ7n.i?.%.:Ȍ$ʦdK!P[èUOn=3{C਷)GIMJ M#2n%"fO'%$'UrPӱĺ#poI)`3=WRʊ|n 436X#i>`T*+u˺U]WjWS܉mlVY1iD:z쎨S )s@z\S9V|q!C (0@6*Pe*D[qo#"Xbd+Ct:P}^ϯP{$%~nPW(@-"Ao[6vqE(GjӌhO7]%l>2OQXF,joieȌF[\ؗsT8v2*6dF`9tD{Z/XŮUapt[t&7mVwqI%~*X5aI~ƢnabE@gd>my -wg [M#q{=FJTmji:ݤ,=rSJXFCGXlI`+54.f;Z fXxi 1(Wv[gS.^Y+[>k sC2F%i݆ Qt]FEJ]|k4j0)4]"*y -,U ۣ>YpT uQ6>5.ó'aIX+B_ъC>7edRg[ڞ-q,o9Hg#Kd):}̐‡;$^R[`߹4F<кCpsbSPyy%{G0 4,UblΘ$جӹͻ#  OMPt 3u'oNQk91v":P1J>T&8L/"BU4#sh|%sv7ژ)&yN^avsNy{90#HgՓz3TWߘ:^amϿt?\<ݡ`G'dPLt%zL=sfѢan -vB&b8\M Np' -9kj1ElUصQ+rey0`/0z\V8GP`y݃%Q {f - 1=H-٥)\h -ǾsWPxj~JX_1F3Z41' *xJbu%0[q%C`z0,7m{u;[KP+4'D%i"KSQ\9(? z<ѕQw#xa6x6].LK϶f`:5]ֺט_֠Ap:Ѩ-eQLT5ƨ3Pzȵf6ڡsi%U)Ýڇq2GsWͲ;Pv]Q7e>4Up(KKjR0̍ߧTHNmj"JqƎ.%C;A}6R_Z!x+V aF E0<&T~8Z7Apz9N1.!pH!4[aU vArv^$F73bqBb\*߹`KZ -ZS0i1É JtNEv_xgh_oAq  HYyJ>)KL=P,=ӽ7[ MK*\$'r 1IajZIXO:}saLc @lzq]2I"HQ:iRak^ k]Ѿ55CquIתޙγ"+ؓe(Tu9*m'c9c:kZSP}gҕ -bO1kc!1$Cb|LmN1j@%RF$xet0C\Aus& X};{$NzCPs$0N"$P.z(G/~YU*}_"vtE{yo`mg!鵎LF -޶p&C%7_+l=tz>lqEeL':Bc{IW{ukh Iz.IIHBҙ#$i(6g$<'IyHib@Ͽ?;OЎmF|e\_i? /N 1 2 0_D*pK C6v+vNsX dCWg'w^U#[m!U"k}E>y}󊬯$u \!2!Ig.x:c:'.|7 ShP!6-wL:nc5S5lY#Ma |C_` ě-&?ݪh=vg-Yf}V('cICL -=EiA;!S=lW1 "A,^RCDk4&|-rJϢ;xq+z襶 RJXjٽ;' -Oj#< -rkhȠ'IȈE1]`L(a\dzG>iduNP-?=`>"!^30pH2j ;H֢,ds%, WXY$jN6VN/'QnCdLfi/3t1,asY>w!h&EV=,c _KV~ ㏸yiN2)ZWdOO hgkR @r -oJ)ÜM9 -r\=r[ h9$Yc-< ?D܌::MhNT}1ԛ:mж<htTU B}Gs+Fk翷;tHʏEY)%H36I.;vZI'Z))2yN!t 9Kq znSX_N!ϝ)Pԫe5--)m6OD.iTAL #S;q.SG9k+JԻ?'^* DuP& Sv].>58 -8 vϻ QQk9O&R uxvsO}aby"Tz?&}F~Ob6=_c`*oUI.klF&"ʔ#EB& a:a45s=t+Y)t̲E;p)z{r~܆rDןTJv}^:b:K6"[7'q$8Gֹ_It1֩=HJZ{WS 6F=HYWP5*wS4u ٰ|fK V*[sel,VbɐNy?[g-G2Wd2l,;l֋SV1 nn{]gs.!Խ%T){0黗-d)SXG :7bkFП3-/m1fVٶ]5}nD3 in Bύ Q,*r'?U&O#Ek(VY,n}E -j#Uۦcƥl$tFZ*Qf'VCzp?jvUV!;mMGdC^! WHC3c(enSa@ދ9⹦O+&[NВq;&m  Y跑Y;ݝMkSy cB29 Av)]-5 -Qqz"ݚ ͸u,#j+GƿJvJ ح.VyK֥`R"ͫ@O%h[Oޯ}KSw3as^HN+kX~=qlި@?9L e@vN]әX YN1d$V$I4">:6FTZ}6$FSБIב:w g'd2ƪHm3`? " ]G ֈ_ϟli8[[#p }slRdW̴#QǮ} ^%W7ҟm,vq0Z(=Tcޓ!T=&u֦1U$ֿZB|êr]\dGW$[`G-_;IYrAMcɢ% &ڇ&ū_ EM4q\3]E Lk= ps禶4ezSĠtG(S"lQ>k,:=fDS.%;7ޥu0NV)pd f4yP)U sՙ5P o1hŷK~y\A|eJ{@ -M@iH0-̜(EF Dw=9GNx[jo*8@+^ @l8zڪ~CxY'QlP6}+\Y5#2TV;eζ>Uk8 _i8Q) h?l2/YZ9X@a;q01NY܃R>P1KYcʄ:)C$ $odm3GC+Jbs(YGgoj&C* 2/0'vn)BF̙`YQIe$NӨֆ4 8J@jכu4Jëb졳HlP>As6tÏٻD9g 5Ly_iFe%+.%TgIvߠ6Pu]R!|&TG#j>uɌ%hgZ?oS-c],*#F| }VVqF{rhV܊F'5E5PRq1ꖖPJX2ТgX -(;V1N ;r6T΋ʜD!Mu.Q=⽩,QĻgU%Bmܶdn콊!Bw:̿Lag$#Ȫ5*ܡ\屛P:kV.QS -|Qw/ٓM v@4FaU -TA.cF䠖Q n0FpqҌA|"w .Es:8ҌA#cFjZ*$,Kii@]G[{^"jr4MIؼMF]E\ ̟DܷE6a;faާ _dS%Fbڥ28d@ d)M_z*4S\&i.и&7L4ti7xբF>6i =yl$Df>> YvfUih["a2d=^C-%WuU3?AS/N@|ē-[A`yƽJȃ6<悄<. -ɶƂP-hrY:.\"F.<؄Z'0v eG{P5a5k7ˢ"'t=ASj2Sw\BVT֌BonqYDEŬ]Bk)3{>*c5F.GI rC%8%k͡!j.bkc/MW}bDrYUfEC$cJaiE \Ԯ4j=zt@ҫCPHdM\4  !]=*a.Y]#8Ua -kHl<Ih)R` }Ԥ.H(C1ך RuۚH>Y5HWuh=]}n ҅J'.xxͧ~G~OqxOo?|xU/_tSlVo6_/{s??1WfDo| bIiwX)  D3LD,u((fLrgƙڹTg翱w)l&hIxh@ImIŤ~nBx!lƀ!#FX)"Zi&G*r m !F 5xn@)遃**0 {uUm^Dif=k Yt6et'd\&e˂p% -oNV#֬ Xs[J&5h[ }AHHA#1uX$P! b/94ʓp0+Bk+2H7jه<ӱdDɵ)4oe\IRJtS/)^',s$+eSܫ1ZWED2'}Fڭ7rEvL̘&B;~7"\Ύk9H ïhz2q Jr])hp M3~{m9Qz!+r- v(:prmȝFIBav"{A?MS?5F"s ,0/qAۉbEIL¬URa9RR:y*zKh }':~_g2.rO\@M-*`TKD8x0YA~kEya^^+URi)!b@s*]3ˎ #m3'I^Rjbd ߟR-]12LԖyŖ٬k['6/jRb,VS6I}%"WnQV]HT~PϡmR$.qlq$,yDZ~.1Ԝ=g?,41KƨpabŪ;[0#XF[aEdr}J=vҳwiܒH|W(TJ l܈p5/ϭ˞DbIOI,)ضGqkFQMG V9') Vj6| -+w,9jgV<˵rP9PZ_;[xD5*L!cUN'` TXM=1\?p>sS.7oK퐷RbPn˜e<;G[9 Xz[ϛLQ% -9g7MLR+ vտ MQ+셡\O"6Iw䭇6!6>A2!eTT)F; -?og">ˢ8i| E g=ZB熡ׄJۂH ;Bhv?6r!/D&,}lu=Fa=1;ƃCW+aX0Z# _5lW |ʟҨ-ͤ+\'<!\Pk9*͗t)@, YQTiOMx -,MsPHZc獉?36*n9\yH5޾;j_"nSTZKQXad"T7.ѕXQN֣*SOUOy5B86T0QfJ8Qƻ1k -dȻsĜ]^Z"^37z&xybeh C(N.ӳJN_ 0Pғk6f_3Tw7`L̛:ys"&0h#W2[݋j e毜IA~n${Í-6azH5 -Y=_[2Y'q HKTUeH]V#cѽƨ<62{ Os)" yz"in)NqsJ>\7^ζ2)"]/D@@H4ZdHZR[ QG3rVK 5$b ;DuaBNjƌF=AHyLskӓ=2풟OM~V`OE%=K)c?@pQq$_?y%vkG@9VSq4=jqϾdzcj8T(DŻCYc9 QT*߬FkB6R4I6 #"%oS5"{D>1P `^GK'_n o*A4|h!Z -En#1MI E\sf_,J։z5!\T -R*T]0E:)Y :CEgvGhM -w[jG സ(B "َ"y2]^>z.( ~ǴA@$@X:OhB{4 -d1V="^,DH]@v ӯӐ nJR^뜤b(GsJv8QPl"N?qt?Pj(&֋Bn," Z\dj-\*j$^P&~=JuG%cuʽsK5BF[FR+w7zn!cf -Q@d0N.չ_2P~ADb(_Gm,ijFe\h7(fpbSJZ<Ĝ߉>yzwۋ?1xoN={_hǧ?0{jyJD!w -*'d?yuuq$Y//n˫ח7ӻ7z3ٻw7~q{է_.Fӓn?|*_W7/uuyۯ9)obq#{{1_{^퓟6 v -GY6w ه1~.KFph`_YK-fZ]ؔ$IJH -{>VH*޶âlK6,TJB@] %Fnzl*jJÅİ,y>[O^OܦP[kP_Btvʚf,ū 8r[t`#.;PG -uP}HխR{$ݧtt -M|cMB^pxvG.8Xl>DKXad='F~H4C/+ Vhi_w&QOK,RӢi).壍lJ/M䅊*b˜c©a:SG*z{.Qz]fB);/Ky(oօ`{:y5,,$OtH!E̋ -@J:M7˶߬'Dطq*HJ(#ѐFu~OGca-'j1JϞ\k ȉdxJYi1`ZqWl9u|e`WYYCdckNg6FJYKPg}fˤDhuޣ3rS0Uu"HPT0%MC-Bfs\Mrk2ixf @Jtk r("` -T }N@"iY zF=OZ+@t5"- gDs,YeG\!ա(E*VFJiq F gKL/`o1MFUZiS+gVgR>h#Bz(uvŪ-)8ȒR3n1W@PRhmj-%;ح4SZFDZ`19sp9h7}l1,1M wk[Mg):VKI)$6/(5tn-]]e]3n1h7-5BS]ȋ -\vDӭekS2ƕ%#Xc^<8=`JMՓҙ<$%Ĥ8TREEuF#-r2U9*o"0G>oƗh!KVD&%qJ/K.un>9/h(U\uI-EܯYMK쐝x0UУSUjd,WLҴ&K˩y>@?LN7X^F2{j8;uǔfxZ,P+>|oz -9x2Q5f 2=f-Sj'Kpuztohp.^N)]Qtᒹۏp*+ R7IBf41My+: yY9pHg."z[F}FUv]T֘Kݯj8&uuыGnTUJ]#OSw]!Xe9TTѤY*у?H6Ik׹8n < l܈rvr."0*o@)$ $M*'0H9$)*5M4BCK=$j@;%IbR ; #G+gCoD|<3بO^XS:(2jo"A.70dK8{z4&7Vӥ Ĥme #S3ht"/e!xClɡ |ZPI|l&1sHk,śsP:X-z9x'gBt:8̢&2`<.vv(?eI-)3c D kL7ihǟ*6TbB(C -2:T. C7*K$X44OďkR8gà$@ܺ/./2Ч:Mڥ/st=/DIf1z1ug4] -YQǶ=8&/\SuB`~ v+_ pk̕D=“b9c.±ϟD]jZk۩d8j19'3t[G96LP\iHuD܍1v|svV4-*-G+r|bi眑|Bam3yMnj^ {C*zx5EQ,a`=0.os*9ʓBO &j%às ɠ,#"`'?1LPXP :v){D؆˨$<|LMx>6QR[@x"k4,ԴGSGB^O LEz8]wy6É!,5k:@^WyUqr$m:t[."ԖJݒFШyuBJ# g*IL•rE:Հ'"7O-& \ws endstream endobj 118 0 obj <>stream -HWnb4rG]][$˂DBA ؆@H -ާ(־u5LDeDa^Rxyz4GIa"Ky"R9&SrA9BIi:ߕɳ!%g(2#StgN0c9wPg2<3EHzsf)QEqbrdp1$d0e28xkÓ1'*Iuau9R9@˔f.2ʰgO N&нG`B,/sp9\//vc?)@~Ĺp4g%Id@)fpQJ1!6TshLI!NƄ? &2;T#H*>#"9a9B)LQ$BԔ%$>#-ԙaajDDiifPU#'瓒kVTj0I%LUh|h~zϬ 1CUh9M> )hj2dK-  D BhbH*4Nmk QbnM+Ɋx;9x-ȸ|Y W<!>\Qp`MЌ -*` >RF6Zm&ZDaFV#[jI(" R!5M={~ݧπ뛇n.o/.O?/͐%P |PsAt/0m˻pu~puWwWTÆُ˯>\]\W8Љ\tupwV~}Bbnt_4$^\t}Ӑ7g77wW볻OtÎq?d ῀>"et4IifH@=tκ7 uW`WGSoPcu^F+:(l7nJlvpO=*2 -?:nNމpJc_ -VkU0ތ[{uhTc:מ[\d[ ^RCjT -#ĥLM_NiRlZU*+$xlA*-i!M޻YB|\Zƻjso=emju6^d -3.UQÑmE3(T`/-@I25a\砽gR[RZג2\l!gX6dp94/*7*?slt6K-3Kcms7XʸۥG,^SVviwFu;@J͓^nw@RTȗe(RPz'vBs_G -e)Y^6da -g܇W*G;=96ȵ NKՃ:t -vuO_x60yFc9Yjp( #hg+4#^oT3,4YSUp>bzUo璚J,i˺*C+>5p>־/` ne#2wNZ?^['/Zѡ כ=i 6/V7!~0WAbzB+Zd*Hu$qB5R*ӑ,_]PY޵s\|s:x_ t^;7_*fi F=;NH$Wk?ҹ3v]ʚJ~=9f}S? w;<ߖO-?k=%C ڥFI FkјN} J^sG?ٹX3?D͟D1k[O4h*TSa3-GyRHj||&߬C. ~6(.M zRTY`DT\P-^CҨ%8K]&床Unc=+װ`v%6޼z#`[bZ- -P~e1hΦk%4Yzw6l5}}cKMޒ!vԇ N - y?Ϥm@Za2KB>} n"g(jm76 xwIC=; mE|̶͚vm4 3FFf}2v._v8SAZ]qUm)H -g[-aElzNz= Kݭ!Z[G -XPj_SfNxco =~c_qB9-|'Y\U&͈|Rk֫EWRm^_TQL;Fu=(n7OqY8e %b8!}pMbK0֟ܮԓv '֎C$+Ze'PwB1*ԆgHO1G2RU W+Rĝ()CS1̢ݥNn\g\1GnZ.m'\9ĖG.'6ଏ9kcSS/oi-x_W}~2K/?_3O+_ۗ~V 7zrki$>pIn2j2Rqi72cs""[E0th[e3^cv0ؤVma~ڈRFCM O/MNBZM۬3 -1ƨQ_cXq>OcoPPmǞ,s oo$5n!ǯ1վ3h;ԇq wb̆zCk%̰1ڵjC -Vkee}jlY-ݰ1}BlZ-ul;",=DeUO(gFj_'jvgɖXbq? 3H`˖PB{PSsX*6W9fHT?Tu]RيIQ 4%.OF!Pd&P.w*Bϸ.dTDO5= -ٓaY̭RL]s>] e* ˬo/cs=v -a5W L| ;Mth5O+4*^NPpօ,92Ӝ-g:Pn@v1_,Jϝޠ_oCT -$3}͇uΖLxO8*ŤJik;=jd-FI8:ag%ZuMn X p?g2\Jn\ׄ|[R֓I [Wˊ7}C-gSؖ|{@ Y& ! #YG?"@?ۺv_ΎyCi8B,Ѐ;bM2GbiSEC]5!]$?D'O!eolOr?뗿[nk}Ox^~SȦoVTؚ Y#Q!\*Hn*9pNg׺C8Y)]r|I܂G*iݐ08 8 !{2m\ɠaֺ9CS{e+x4TAE-YԜ O(2]Cpmr.dE,„jݬPK'[⨄Ҟ `Ғ -4,G0!Pvj= $xb@2RHID2~nH㨃p0l^dCR\؎RH< -q|&W{`hItzx )>/3sZV949)[[%PXB}|]GˢbnyCQm\I"Et6f5, Kd>#D$#kۛq V$TA:H›֯+{?#hNUf EQ+OGM8; oQP2~# J͖>R&H,⭇цj^]KV-*O&S 1C :tRځ' -DjdRkasJJj9 G'r?Sy,K]6(}ԡCʠz\hzOn cQ+]*XNTYd93N&ֳYfBKan3!dK'Ēt<ݶDB#n)& bІ\[OmSJOb.QHMhTpn^qMg1-XoHGcgtbmNe=dkeE\TtA ^`kv!* V9BwrJ;Ӵ鑮̌T)I~҈Btȴj;{2: N5k [0)49ln]Dm [|CGIKuQ>j[rE7`hPMVR=08,U3v9h8QT<$I=ڬtOS6Mt~1D>jAvya^QY*H=*P 8*ez"&xs\ ؎GH?%Zյ\@9{G!g;Tdz 'jǨ> aN$6әdv%y|nV3IR eEG!ȅv=Kraޫ{'@%5²Z%mMos~˸{\L?պƭ@?lxY.'l')rāXKdkY2Vr};kI(n g\F%oגO8J99әDsS͆boBX_#]} $C(}sB&Dےt¿d[Gh=)#VM+j۹[!+_R]I"1#YIC״c|$/lᯨPE7$DBhA)eQP&!6VP/L))x$%:EaѽAg2J)BX $,+nQb~ªgUeV4gDQr8b~;ЮmPn2;\--+S)9Q -v/쀙PN]>Pcژ@4az`}dg|0a4ف&M;SPٽ@:q -]{8HgvjM𻳶QTS? -qPw7i`Z> ٽ9%b`%FW;+YUR -q`t:g,WdC64s;MWx[ &q :c$ONÖ:GA99u0AF%yrg'΁$8հÙ:@p;?m~`& )HDY|&ȁbG#3 | -HwiO)h|Úb\bBU*DNuC=F= u bpXE*Peθ{]~}}; Kr'D,;QJ ,Xb -%)PlHj޿Μ㫄W,A si(l -ހC 8ehK{໷. ّ LoF?w~j$%V;5IȪD).%îhC Xs&^u7,dOɴ? rh$r9ϸ.yy?VK:cJ }yq%OgaYHmH.f|Kyrx55#Ktc4v{pg7]vg Ehw9fݰ}|޿ڳq7 'gr&6y"R~y#(ټ]/py(&7O(<"xEp|9s2Yw^.aXq78`]!I7]H~.MDU/s6(|)cA"|?wm?Ky|{_MTԲQ+ -뵮6@XjJR -ՀVdzUd{:KRܫLs1yX݌1? -ĵ -ށO}7dXY68A*jnt5] R; CBp]6Ҽew6.< Bs&_8-v8Y_λhbyv6A4gnۘ5tԢfd/>?ta ̀FW-\<!jn z -ۃ]@x>z[@`׃N{I3g w b,ufH#o_WM u;=vOy8/ׇ& p 1c"%?g|k3$B_Ɉl%Bo&`d ޤah@ jyX)| -F~u_ -%沓ӼO -(m;fD߶. -@ܞ,χ)>uھzʸ q +@\]q{©=zdͪ{[fg"bϻWr{nqo-f_1 -9юxZCF㧟鹹íOl )$6IʑL_j9Ʌqe+`lm6]fCڥf*\;5kk[6.2l-R66v.l`W ]3gtF4Ds]r\CY ʚYCjT֍r}#7W7& -ZA/HѳijhaoV/>`HG/]A<kܻr!ł<۹lkKR6 ;D󜣩(tι -JQbTa󄴲Z@돢ËTvsd+xuWz j}zLFNǒQfÜ`;6lEWv̬Sol|{,\k]3ꚅE;l<FZ ~BV!_HV.е]S8e1ۉޒ&FLIڹ%\[s_򀥩eݵ kY5kp\ -Z 9 lm~`K Qv.l5*ll(F1[NGK4\kFpm5}˶ߵ}2]@:.]tG.hy۵m?a?><Ȧ endstream endobj 5 0 obj <> endobj 44 0 obj <> endobj 58 0 obj [/View/Design] endobj 59 0 obj <>>> endobj 20 0 obj [/View/Design] endobj 21 0 obj <>>> endobj 83 0 obj [82 0 R] endobj 119 0 obj <> endobj xref 0 120 0000000004 65535 f -0000000016 00000 n -0000000173 00000 n -0000048985 00000 n -0000000006 00000 f -0000242093 00000 n -0000000008 00000 f -0000049036 00000 n -0000000009 00000 f -0000000010 00000 f -0000000011 00000 f -0000000012 00000 f -0000000013 00000 f -0000000014 00000 f -0000000015 00000 f -0000000016 00000 f -0000000017 00000 f -0000000018 00000 f -0000000019 00000 f -0000000022 00000 f -0000242350 00000 n -0000242381 00000 n -0000000023 00000 f -0000000024 00000 f -0000000025 00000 f -0000000026 00000 f -0000000027 00000 f -0000000028 00000 f -0000000029 00000 f -0000000030 00000 f -0000000031 00000 f -0000000032 00000 f -0000000033 00000 f -0000000034 00000 f -0000000035 00000 f -0000000036 00000 f -0000000037 00000 f -0000000038 00000 f -0000000039 00000 f -0000000040 00000 f -0000000041 00000 f -0000000042 00000 f -0000000043 00000 f -0000000000 00000 f -0000242163 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000242234 00000 n -0000242265 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000055390 00000 n -0000242466 00000 n -0000049458 00000 n -0000054036 00000 n -0000056578 00000 n -0000055058 00000 n -0000055577 00000 n -0000055690 00000 n -0000054915 00000 n -0000054102 00000 n -0000054354 00000 n -0000054402 00000 n -0000055221 00000 n -0000055316 00000 n -0000055461 00000 n -0000055492 00000 n -0000055805 00000 n -0000055858 00000 n -0000056153 00000 n -0000056231 00000 n -0000056377 00000 n -0000056406 00000 n -0000056503 00000 n -0000056653 00000 n -0000057079 00000 n -0000058119 00000 n -0000064838 00000 n -0000079329 00000 n -0000093138 00000 n -0000099766 00000 n -0000118901 00000 n -0000140251 00000 n -0000147406 00000 n -0000151961 00000 n -0000178265 00000 n -0000204808 00000 n -0000230339 00000 n -0000242491 00000 n -trailer <<04471C46533245799F3A463044EF530A>]>> startxref 242663 %%EOF \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtex-example/references.bib b/macros/latex/contrib/unbtex/unbtex-example/references.bib index 042079af36..f951d7b634 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/references.bib +++ b/macros/latex/contrib/unbtex/unbtex-example/references.bib @@ -21,13 +21,13 @@ % Exemplo tirado de https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management#BibTeX abaixo: @article{greenwade93, - author = "George D. Greenwade", - title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})", - year = "1993", - journal = "TUGBoat", - volume = "14", - number = "3", - pages = "342--351" + author = "George D. Greenwade", + title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})", + year = "1993", + journal = "TUGBoat", + volume = "14", + number = "3", + pages = "342--351" } % Outros exemplos, tirados de https://verbosus.com/bibtex-style-examples.html abaixo: diff --git a/macros/latex/contrib/unbtex/unbtex-example/referencias.bib b/macros/latex/contrib/unbtex/unbtex-example/referencias.bib index 1128453e95..2cac676cb4 100644 --- a/macros/latex/contrib/unbtex/unbtex-example/referencias.bib +++ b/macros/latex/contrib/unbtex/unbtex-example/referencias.bib @@ -4,343 +4,369 @@ %% @book{ibge1993, - Address = {Rio de Janeiro}, - Author = {IBGE}, - Date-Added = {2013-08-21 13:56:10 +0000}, - Date-Modified = {2013-08-21 13:56:10 +0000}, - Edition = {3}, - Organization = {http://biblioteca.ibge.gov.br/visualizacao/livros/liv23907.pdf}, - Publisher = {Centro de Documenta{\c c}\~ao e Dissemina{\c c}\~ao de Informa{\c c}ões. Funda{\c c}\~ao Instituto Brasileiro de Geografia e Estat\'istica}, - Title = {Normas de apresenta{\c c}\~ao tabular}, - urldate = {2013-08-21}, - Year = {1993}} + Address = {Rio de Janeiro}, + Author = {IBGE}, + Date-Added = {2013-08-21 13:56:10 +0000}, + Date-Modified = {2013-08-21 13:56:10 +0000}, + Edition = {3}, + Organization = {http://biblioteca.ibge.gov.br/visualizacao/livros/liv23907.pdf}, + Publisher = {Centro de Documenta{\c c}\~ao e Dissemina{\c c}\~ao de Informa{\c c}ões. Funda{\c c}\~ao Instituto Brasileiro de Geografia e Estat\'istica}, + Title = {Normas de apresenta{\c c}\~ao tabular}, + urldate = {2013-08-21}, + Year = {1993}} @misc{abntex2-wiki-como-customizar, - Author = {Lauro C\'esar Araujo}, - Date-Added = {2013-03-23 21:39:21 +0000}, - Date-Modified = {2015-04-27 22:43:06 +0000}, - Howpublished = {Wiki do abnTeX2}, - Keywords = {wiki}, - Title = {Como customizar o abnTeX2}, - Url = {https://github.com/abntex/abntex2/wiki/ComoCustomizar}, - urldate = {2015-04-27}, - Year = {2015}, - Bdsk-Url-1 = {https://github.com/abntex/abntex2/wiki/ComoCustomizar}} + Author = {Lauro C\'esar Araujo}, + Date-Added = {2013-03-23 21:39:21 +0000}, + Date-Modified = {2015-04-27 22:43:06 +0000}, + Howpublished = {Wiki do abnTeX2}, + Keywords = {wiki}, + Title = {Como customizar o abnTeX2}, + Url = {https://github.com/abntex/abntex2/wiki/ComoCustomizar}, + urldate = {2015-04-27}, + Year = {2015}, + Bdsk-Url-1 = {https://github.com/abntex/abntex2/wiki/ComoCustomizar}} @manual{talbot2012, - Author = {Nicola L.C. Talbot}, - Date-Added = {2013-03-11 12:06:04 +0000}, - Date-Modified = {2013-03-11 12:06:56 +0000}, - Month = {11.}, - Title = {User Manual for glossaries.sty}, - Url = {http://mirrors.ctan.org/macros/latex/contrib/glossaries/glossaries-user.pdf}, - urldate = {2013-03-11}, - Year = {2012}, - Bdsk-Url-1 = {http://mirrors.ctan.org/macros/latex/contrib/glossaries/glossaries-user.pdf}} + Author = {Nicola L.C. Talbot}, + Date-Added = {2013-03-11 12:06:04 +0000}, + Date-Modified = {2013-03-11 12:06:56 +0000}, + Month = {11.}, + Title = {User Manual for glossaries.sty}, + Url = {http://mirrors.ctan.org/macros/latex/contrib/glossaries/glossaries-user.pdf}, + urldate = {2013-03-11}, + Year = {2012}, + Bdsk-Url-1 = {http://mirrors.ctan.org/macros/latex/contrib/glossaries/glossaries-user.pdf}} @manual{babel, - Author = {Johannes Braams}, - Date-Added = {2013-02-17 13:37:14 +0000}, - Date-Modified = {2013-02-17 13:38:38 +0000}, - Month = {04}, - Title = {Babel, a multilingual package for use with LATEX's standard document classes}, - Url = {http://mirrors.ctan.org/info/babel/babel.pdf}, - urldate = {2013-02-17}, - Year = {2008}, - Bdsk-Url-1 = {http://mirrors.ctan.org/info/babel/babel.pdf}} + Author = {Johannes Braams}, + Date-Added = {2013-02-17 13:37:14 +0000}, + Date-Modified = {2013-02-17 13:38:38 +0000}, + Month = {04}, + Title = {Babel, a multilingual package for use with LATEX's standard document classes}, + Url = {http://mirrors.ctan.org/info/babel/babel.pdf}, + urldate = {2013-02-17}, + Year = {2008}, + Bdsk-Url-1 = {http://mirrors.ctan.org/info/babel/babel.pdf}} @manual{abntex2modelo-artigo, - Annote = {Este documento \'e derivado do \cite{abnt-bibtex-doc}}, - Author = {Lauro C\'esar Araujo}, - Date-Added = {2013-01-15 00:10:35 +0000}, - Date-Modified = {2015-04-27 22:43:13 +0000}, - Organization = {Equipe abnTeX2}, - Title = {Modelo Can\^onico de Artigo Cient\'ifico com abnTeX2}, - Url = {http://www.abntex.net.br/}, - Year = {2015}, - Bdsk-Url-1 = {http://www.abntex.net.br/}} + Annote = {Este documento \'e derivado do \cite{abnt-bibtex-doc}}, + Author = {Lauro C\'esar Araujo}, + Date-Added = {2013-01-15 00:10:35 +0000}, + Date-Modified = {2015-04-27 22:43:13 +0000}, + Organization = {Equipe abnTeX2}, + Title = {Modelo Can\^onico de Artigo Cient\'ifico com abnTeX2}, + Url = {http://www.abntex.net.br/}, + Year = {2015}, + Bdsk-Url-1 = {http://www.abntex.net.br/}} @manual{abntex2modelo-relatorio, - Annote = {Este documento \'e derivado do \cite{abnt-bibtex-doc}}, - Author = {Lauro C\'esar Araujo}, - Date-Added = {2013-01-15 00:05:34 +0000}, - Date-Modified = {2015-04-27 22:43:18 +0000}, - Organization = {Equipe abnTeX2}, - Title = {Modelo Can\^onico de Relat\'orio T\'ecnico e/ou Cient\'ifico com abnTeX2}, - Url = {http://www.abntex.net.br/}, - Year = {2015}, - Bdsk-Url-1 = {http://www.abntex.net.br/}} + Annote = {Este documento \'e derivado do \cite{abnt-bibtex-doc}}, + Author = {Lauro C\'esar Araujo}, + Date-Added = {2013-01-15 00:05:34 +0000}, + Date-Modified = {2015-04-27 22:43:18 +0000}, + Organization = {Equipe abnTeX2}, + Title = {Modelo Can\^onico de Relat\'orio T\'ecnico e/ou Cient\'ifico com abnTeX2}, + Url = {http://www.abntex.net.br/}, + Year = {2015}, + Bdsk-Url-1 = {http://www.abntex.net.br/}} @manual{abntex2modelo, - Annote = {Este documento \'e derivado do \cite{abnt-bibtex-doc}}, - Author = {Lauro C\'esar Araujo}, - Date-Added = {2013-01-12 22:55:32 +0000}, - Date-Modified = {2015-04-27 22:43:32 +0000}, - Organization = {Equipe abnTeX2}, - Title = {Modelo Can\^onico de Trabalho Acad\^emico com abnTeX2}, - Url = {http://www.abntex.net.br/}, - Year = {2015}, - Bdsk-Url-1 = {http://www.abntex.net.br/}} + Annote = {Este documento \'e derivado do \cite{abnt-bibtex-doc}}, + Author = {Lauro C\'esar Araujo}, + Date-Added = {2013-01-12 22:55:32 +0000}, + Date-Modified = {2015-04-27 22:43:32 +0000}, + Organization = {Equipe abnTeX2}, + Title = {Modelo Can\^onico de Trabalho Acad\^emico com abnTeX2}, + Url = {http://www.abntex.net.br/}, + Year = {2015}, + Bdsk-Url-1 = {http://www.abntex.net.br/}} @mastersthesis{araujo2012, - Address = {Bras\'ilia}, - Author = {Lauro C\'esar Araujo}, - Date-Added = {2013-01-09 11:04:42 +0000}, - Date-Modified = {2013-01-09 11:04:42 +0000}, - Month = {03}, - School = {Universidade de Bras\'ilia}, - Subtitle = {uma perspectiva de {A}rquitetura da {I}nforma{\c c}\~ao da {E}scola de {B}ras\'ilia}, - Title = {Configura{\c c}\~ao}, - Year = {2012}} + Address = {Bras\'ilia}, + Author = {Lauro C\'esar Araujo}, + Date-Added = {2013-01-09 11:04:42 +0000}, + Date-Modified = {2013-01-09 11:04:42 +0000}, + Month = {03}, + School = {Universidade de Bras\'ilia}, + Subtitle = {uma perspectiva de {A}rquitetura da {I}nforma{\c c}\~ao da {E}scola de {B}ras\'ilia}, + Title = {Configura{\c c}\~ao}, + Year = {2012}} @manual{abntex2cite, - Annote = {Este documento {\'e} derivado do \cite{abnt-bibtex-doc}}, - Author = {Lauro C{\'e}sar Araujo}, - Date-Added = {2013-01-09 10:37:45 +0000}, - Date-Modified = {2015-04-27 22:43:38 +0000}, - Organization = {Equipe abnTeX2}, - Title = {O pacote abntex2cite: Estilos bibliogr{\'a}ficos compat{\'\i}veis com a ABNT NBR 6023}, - Url = {http://www.abntex.net.br/}, - Year = {2015}, - Bdsk-Url-1 = {http://www.abntex.net.br/}} + Annote = {Este documento {\'e} derivado do \cite{abnt-bibtex-doc}}, + Author = {Lauro C{\'e}sar Araujo}, + Date-Added = {2013-01-09 10:37:45 +0000}, + Date-Modified = {2015-04-27 22:43:38 +0000}, + Organization = {Equipe abnTeX2}, + Title = {O pacote abntex2cite: Estilos bibliogr{\'a}ficos compat{\'\i}veis com a ABNT NBR 6023}, + Url = {http://www.abntex.net.br/}, + Year = {2015}, + Bdsk-Url-1 = {http://www.abntex.net.br/}} @manual{abntex2cite-alf, - Annote = {Este documento {\'e} derivado do \cite{abnt-bibtex-alf-doc}}, - Author = {Lauro C{\'e}sar Araujo}, - Date-Added = {2013-01-09 10:37:45 +0000}, - Date-Modified = {2015-04-27 22:43:44 +0000}, - Organization = {Equipe abnTeX2}, - Title = {O pacote abntex2cite: t{\'o}picos espec{\'\i}ficos da ABNT NBR 10520:2002 e o estilo bibliogr{\'a}fico alfab{\'e}tico (sistema autor-data)}, - Url = {http://www.abntex.net.br/}, - Year = {2015}, - Bdsk-Url-1 = {http://www.abntex.net.br/}} + Annote = {Este documento {\'e} derivado do \cite{abnt-bibtex-alf-doc}}, + Author = {Lauro C{\'e}sar Araujo}, + Date-Added = {2013-01-09 10:37:45 +0000}, + Date-Modified = {2015-04-27 22:43:44 +0000}, + Organization = {Equipe abnTeX2}, + Title = {O pacote abntex2cite: t{\'o}picos espec{\'\i}ficos da ABNT NBR 10520:2002 e o estilo bibliogr{\'a}fico alfab{\'e}tico (sistema autor-data)}, + Url = {http://www.abntex.net.br/}, + Year = {2015}, + Bdsk-Url-1 = {http://www.abntex.net.br/}} @manual{memoir, - Address = {Normandy Park, WA}, - Author = {Peter Wilson and Lars Madsen}, - Date-Added = {2013-01-09 10:37:50 +0000}, - Date-Modified = {2013-03-21 13:23:25 +0000}, - Organization = {The Herries Press}, - Title = {The Memoir Class for Configurable Typesetting - User Guide}, - Url = {http://mirrors.ctan.org/macros/latex/contrib/memoir/memman.pdf}, - urldate = {2012-12-19}, - Year = {2010}, - Bdsk-Url-1 = {http://ctan.tche.br/macros/latex/contrib/memoir/memman.pdf}} + Address = {Normandy Park, WA}, + Author = {Peter Wilson and Lars Madsen}, + Date-Added = {2013-01-09 10:37:50 +0000}, + Date-Modified = {2013-03-21 13:23:25 +0000}, + Organization = {The Herries Press}, + Title = {The Memoir Class for Configurable Typesetting - User Guide}, + Url = {http://mirrors.ctan.org/macros/latex/contrib/memoir/memman.pdf}, + urldate = {2012-12-19}, + Year = {2010}, + Bdsk-Url-1 = {http://ctan.tche.br/macros/latex/contrib/memoir/memman.pdf}} @manual{biblatex, - Author = {Philip Kime and Moritz Wemheuer and Philipp Lehman}, - Date-Added = {2021-12-04 14:11:45 +0000}, - Date-Modified = {2021-12-04 14:11:45 +0000}, - Title = {The biblatex Package: Programmable Bibliographies and Citations}, - Url = {https://www.ctan.org/pkg/biblatex}, - Year = {2020}, - Bdsk-Url-1 = {https://ctan.dcc.uchile.cl/macros/latex/contrib/biblatex/doc/biblatex.pdf}} + Author = {Philip Kime and Moritz Wemheuer and Philipp Lehman}, + Date-Added = {2021-12-04 14:11:45 +0000}, + Date-Modified = {2021-12-04 14:11:45 +0000}, + Title = {The biblatex Package: Programmable Bibliographies and Citations}, + Url = {https://www.ctan.org/pkg/biblatex}, + Year = {2020}, + Bdsk-Url-1 = {https://ctan.dcc.uchile.cl/macros/latex/contrib/biblatex/doc/biblatex.pdf}} @manual{biblatexabnt, - Author = {Daniel Ballester Marques}, - Date-Added = {2021-12-04 14:14:45 +0000}, - Date-Modified = {2021-12-04 14:14:45 +0000}, - Title = {biblatex-abnt 3.4}, - Url = {https://ctan.dcc.uchile.cl/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.pdf}, - Year = {2018}, - Bdsk-Url-1 = {https://ctan.dcc.uchile.cl/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.pdf}} + Author = {Daniel Ballester Marques}, + Date-Added = {2021-12-04 14:14:45 +0000}, + Date-Modified = {2021-12-04 14:14:45 +0000}, + Title = {biblatex-abnt 3.4}, + Url = {https://ctan.dcc.uchile.cl/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.pdf}, + Year = {2018}, + Bdsk-Url-1 = {https://ctan.dcc.uchile.cl/macros/latex/contrib/biblatex-contrib/biblatex-abnt/doc/biblatex-abnt.pdf}} @manual{abntex2classe, - Author = {Lauro C\'esar Araujo}, - Date-Added = {2013-01-09 10:37:38 +0000}, - Date-Modified = {2015-04-27 22:42:47 +0000}, - Organization = {Equipe abnTeX2}, - Title = {A classe abntex2: Modelo can\^onico de trabalhos acad\^emicos brasileiros compat\'ivel com as normas ABNT NBR 14724:2011, ABNT NBR 6024:2012 e outras}, - Url = {http://www.abntex.net.br/}, - Year = {2015}, - Bdsk-Url-1 = {http://www.abntex.net.br/}} + Author = {Lauro C\'esar Araujo}, + Date-Added = {2013-01-09 10:37:38 +0000}, + Date-Modified = {2015-04-27 22:42:47 +0000}, + Organization = {Equipe abnTeX2}, + Title = {A classe abntex2: Modelo can\^onico de trabalhos acad\^emicos brasileiros compat\'ivel com as normas ABNT NBR 14724:2011, ABNT NBR 6024:2012 e outras}, + Url = {http://www.abntex.net.br/}, + Year = {2015}, + Bdsk-Url-1 = {http://www.abntex.net.br/}} @manual{NBR10520:2002, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 21:43:38 +0000}, - Date-Modified = {2013-01-12 22:17:20 +0000}, - Month = {08}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 7, - Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- Apresenta{\c c}\~ao de cita{\c c}ões em documentos}, - Title = {{NBR} 10520}, - Year = 2002} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 21:43:38 +0000}, + Date-Modified = {2013-01-12 22:17:20 +0000}, + Month = {08}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 7, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- Apresenta{\c c}\~ao de cita{\c c}ões em documentos}, + Title = {{NBR} 10520}, + Year = 2002} @manual{NBR6024:2012, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 21:24:06 +0000}, - Date-Modified = {2012-12-15 21:24:28 +0000}, - Month = {02}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 4, - Subtitle = {Numera{\c c}\~ao progressiva das se{\c c}ões de um documento}, - Title = {{NBR} 6024}, - Year = 2012} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 21:24:06 +0000}, + Date-Modified = {2012-12-15 21:24:28 +0000}, + Month = {02}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 4, + Subtitle = {Numera{\c c}\~ao progressiva das se{\c c}ões de um documento}, + Title = {{NBR} 6024}, + Year = 2012} @manual{NBR6028:2003, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 21:02:12 +0000}, - Date-Modified = {2012-12-15 21:02:50 +0000}, - Month = {11}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 2, - Subtitle = {Resumo - Apresenta{\c c}\~ao}, - Title = {{NBR} 6028}, - Year = 2003} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 21:02:12 +0000}, + Date-Modified = {2012-12-15 21:02:50 +0000}, + Month = {11}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 2, + Subtitle = {Resumo - Apresenta{\c c}\~ao}, + Title = {{NBR} 6028}, + Year = 2003} @manual{NBR14724:2001, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 20:34:08 +0000}, - Date-Modified = {2012-12-15 20:34:08 +0000}, - Month = {07}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 6, - Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, - Title = {{NBR} 14724}, - Year = 2001} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 20:34:08 +0000}, + Date-Modified = {2012-12-15 20:34:08 +0000}, + Month = {07}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 6, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, + Title = {{NBR} 14724}, + Year = 2001} @manual{NBR14724:2002, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 20:34:17 +0000}, - Date-Modified = {2012-12-15 20:34:17 +0000}, - Month = {08}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 6, - Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, - Title = {{NBR} 14724}, - Year = 2002} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 20:34:17 +0000}, + Date-Modified = {2012-12-15 20:34:17 +0000}, + Month = {08}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 6, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, + Title = {{NBR} 14724}, + Year = 2002} @manual{NBR14724:2005, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 20:34:08 +0000}, - Date-Modified = {2012-12-15 20:35:25 +0000}, - Month = {12}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 9, - Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, - Title = {{NBR} 14724}, - Year = 2005} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 20:34:08 +0000}, + Date-Modified = {2012-12-15 20:35:25 +0000}, + Month = {12}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 9, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, + Title = {{NBR} 14724}, + Year = 2005} @manual{NBR14724:2011, - Address = {Rio de Janeiro}, - Date-Added = {2012-12-15 20:34:08 +0000}, - Date-Modified = {2012-12-15 20:35:25 +0000}, - Month = {03}, - Note = {Substitui a Ref.~\citeonline{NBR14724:2005}}, - Org-Short = {ABNT}, - Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, - Pages = 15, - Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, - Title = {{NBR} 14724}, - Year = 2011} + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 20:34:08 +0000}, + Date-Modified = {2012-12-15 20:35:25 +0000}, + Month = {03}, + Note = {Substitui a Ref.~\citeonline{NBR14724:2005}}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 15, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- trabalhos acad\^emicos --- apresenta{\c c}\~ao}, + Title = {{NBR} 14724}, + Year = 2011} + +@manual{NBR6023:2018, + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 20:34:08 +0000}, + Date-Modified = {2012-12-15 20:35:25 +0000}, + Month = {11}, + Note = {Substitui a norma ABNT NBR 6023:2002}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 74, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- Refer\^encias --- Elabora{\c c}\~ao}, + Title = {{NBR} 6023}, + Year = 2018} + +@manual{NBR10520:2023, + Address = {Rio de Janeiro}, + Date-Added = {2012-12-15 20:34:08 +0000}, + Date-Modified = {2012-12-15 20:35:25 +0000}, + Month = {07}, + Note = {Substitui a Ref.~\citeonline{NBR10520:2002}}, + Org-Short = {ABNT}, + Organization = {Associa{\c c}\~ao Brasileira de Normas T\'ecnicas}, + Pages = 23, + Subtitle = {Informa{\c c}\~ao e documenta{\c c}\~ao --- Cita{\c c}\~oes em documentos --- Apresenta{\c c}\~ao}, + Title = {{NBR} 10520}, + Year = 2023} @article{van86, - Author = {{van}, Gigch, John P. and Leo L. Pipino}, - Journal = {Future Computing Systems}, - Number = {1}, - Pages = {71-97}, - Title = {In search for a paradigm for the discipline of information systems}, - Volume = {1}, - Year = {1986}} + Author = {{van}, Gigch, John P. and Leo L. Pipino}, + Journal = {Future Computing Systems}, + Number = {1}, + Pages = {71-97}, + Title = {In search for a paradigm for the discipline of information systems}, + Volume = {1}, + Year = {1986}} @phdthesis{guizzardi2005, - Address = {Enschede, The Netherlands}, - Author = {Giancarlo Guizzardi}, - Date-Added = {2012-04-23 11:35:28 +0000}, - Date-Modified = {2012-04-23 11:35:28 +0000}, - School = {Centre for Telematics and Information Technology, University of Twente}, - Title = {Ontological Foundations for Structural Conceptual Models}, - Url = {http://www.loa.istc.cnr.it/Guizzardi/SELMAS-CR.pdf}, - urldate = {2011-07-03}, - Year = {2005}, - Bdsk-Url-1 = {http://www.loa.istc.cnr.it/Guizzardi/SELMAS-CR.pdf}} + Address = {Enschede, The Netherlands}, + Author = {Giancarlo Guizzardi}, + Date-Added = {2012-04-23 11:35:28 +0000}, + Date-Modified = {2012-04-23 11:35:28 +0000}, + School = {Centre for Telematics and Information Technology, University of Twente}, + Title = {Ontological Foundations for Structural Conceptual Models}, + Url = {http://www.loa.istc.cnr.it/Guizzardi/SELMAS-CR.pdf}, + urldate = {2011-07-03}, + Year = {2005}, + Bdsk-Url-1 = {http://www.loa.istc.cnr.it/Guizzardi/SELMAS-CR.pdf}} @mastersthesis{macedo2005, - Author = {Fl\'avia L. Macedo}, - Date-Added = {2012-04-23 11:35:13 +0000}, - Date-Modified = {2012-04-23 11:35:13 +0000}, - Keywords = {arquitetura da informa{\c c}\~ao}, - School = {Universidade de Bras\'ilia}, - Title = {Arquitetura da Informa{\c c}\~ao: aspectos epistemol\'ogicos, cient\'ificos e pr\'aticos.}, - Type = {Disserta{\c c}\~ao de Mestrado}, - Year = {2005}} + Author = {Fl\'avia L. Macedo}, + Date-Added = {2012-04-23 11:35:13 +0000}, + Date-Modified = {2012-04-23 11:35:13 +0000}, + Keywords = {arquitetura da informa{\c c}\~ao}, + School = {Universidade de Bras\'ilia}, + Title = {Arquitetura da Informa{\c c}\~ao: aspectos epistemol\'ogicos, cient\'ificos e pr\'aticos.}, + Type = {Disserta{\c c}\~ao de Mestrado}, + Year = {2005}} @manual{EIA649B, - Address = {EUA}, - Date-Added = {2012-04-23 11:34:59 +0000}, - Date-Modified = {2012-04-23 11:34:59 +0000}, - Keywords = {norma}, - Month = {06}, - Organization = {TechAmerica}, - Title = {ANSI/EIA 649-B: Configuration Management Standard}, - Year = {2011}} - -@inproceedings{masolo2010, - Author = {Claudio Masolo}, - Booktitle = {Proceedings of the Twelfth International Conference on the Principles of Knowledge Representation and Reasoning (KR 2010)}, - Date-Added = {2012-04-23 11:34:38 +0000}, - Date-Modified = {2012-04-23 11:34:38 +0000}, - Editor = {Lin, F. and Sattler, U.}, - Pages = {258-268}, - Publisher = {AAAI Press}, - Title = {Understanding Ontological Levels}, - Url = {http://wiki.loa-cnr.it/Papers/kr10v0.7.pdf}, - urldate = {2012-01-02}, - Year = {2010}, - Bdsk-Url-1 = {http://wiki.loa-cnr.it/Papers/kr10v0.7.pdf}} + Address = {EUA}, + Date-Added = {2012-04-23 11:34:59 +0000}, + Date-Modified = {2012-04-23 11:34:59 +0000}, + Keywords = {norma}, + Month = {06}, + Organization = {TechAmerica}, + Title = {ANSI/EIA 649-B: Configuration Management Standard}, + Year = {2011}} + +@inproceedings{martin1997, + address={Rio de Janeiro}, + author={Martin, Neto, L. and C. Bayer and J. Mielniczuk}, + booktitle={Resumos [...]}, + conference-number={26}, + conference-year={1997}, + conference-location={Rio de Janeiro}, + note={ref. 6--141}, + organization={Congresso Brasileiro de Ci\^encia do Solo}, + pages={443}, + publisher={Sociedade Brasileira de Ci\^encia do Solo}, + title={Altera{\c c}\~oes qualitativas da mat\'eria org\^anica e os fatores determinantes da sua estabilidade num solo podz\'olico vermelho-escuro em diferentes sistemas de manejo}, + year={1997}} @inbook{guarino1995, - Address = {Vienna}, - Author = {Nicola Guarino}, - Booktitle = {Philosophy and the Cognitive Science}, - Date-Added = {2012-04-23 11:34:29 +0000}, - Date-Modified = {2012-04-23 11:34:29 +0000}, - Editor = {R. Casati and B. Smith and G. White}, - Month = {07}, - Pages = {443-456}, - Publisher = {Holder-Pivhler-Tempsky}, - Title = {The Ontological Level}, - Url = {http://wiki.loa-cnr.it/Papers/OntLev.pdf}, - urldate = {2012-01-02}, - Year = {1995}, - Bdsk-Url-1 = {http://wiki.loa-cnr.it/Papers/OntLev.pdf}} + Address = {Vienna}, + Author = {Nicola Guarino}, + Booktitle = {Philosophy and the Cognitive Science}, + Date-Added = {2012-04-23 11:34:29 +0000}, + Date-Modified = {2012-04-23 11:34:29 +0000}, + Editor = {R. Casati and B. Smith and G. White}, + Month = {07}, + Pages = {443-456}, + Publisher = {Holder-Pivhler-Tempsky}, + Title = {The Ontological Level}, + Url = {http://wiki.loa-cnr.it/Papers/OntLev.pdf}, + urldate = {2012-01-02}, + Year = {1995}, + Bdsk-Url-1 = {http://wiki.loa-cnr.it/Papers/OntLev.pdf}} @incollection{bates2010, - Address = {New York}, - Author = {Marcia J. Bates}, - Booktitle = {Encyclopedia of Library and Information Sciences}, - Date-Added = {2012-04-23 11:34:29 +0000}, - Date-Modified = {2012-04-23 11:34:29 +0000}, - Edition = {3rd}, - Editor = {Marcia J. Bates and Mary Niles Maack}, - Pages = {2347-2360}, - Publisher = {CRC Press}, - Title = {Information}, - Url = {http://pages.gseis.ucla.edu/faculty/bates/articles/information.html}, - urldate = {2011-10-24}, - Volume = {3}, - Year = {2010}, - Bdsk-Url-1 = {http://pages.gseis.ucla.edu/faculty/bates/articles/information.html}} + Address = {New York}, + Author = {Marcia J. Bates}, + Booktitle = {Encyclopedia of Library and Information Sciences}, + Date-Added = {2012-04-23 11:34:29 +0000}, + Date-Modified = {2012-04-23 11:34:29 +0000}, + Edition = {3rd}, + Editor = {Marcia J. Bates and Mary Niles Maack}, + Pages = {2347-2360}, + Publisher = {CRC Press}, + Title = {Information}, + Url = {http://pages.gseis.ucla.edu/faculty/bates/articles/information.html}, + urldate = {2011-10-24}, + Volume = {3}, + Year = {2010}, + Bdsk-Url-1 = {http://pages.gseis.ucla.edu/faculty/bates/articles/information.html}} @book{doxiadis1965, - Author = {Constantinos A. Doxiadis}, - Date-Added = {2012-04-23 11:34:20 +0000}, - Date-Modified = {2012-04-23 11:34:20 +0000}, - Publisher = {Ceira - Coimbra}, - Title = {Arquitetura em Transi{\c c}\~ao}, - Year = {1965}} + Author = {Constantinos A. Doxiadis}, + Date-Added = {2012-04-23 11:34:20 +0000}, + Date-Modified = {2012-04-23 11:34:20 +0000}, + Publisher = {Ceira - Coimbra}, + Title = {Arquitetura em Transi{\c c}\~ao}, + Year = {1965}} @book{dewey1980, - Address = {New York, NY, USA}, - Author = {John Dewey}, - Date-Added = {2012-04-23 11:34:16 +0000}, - Date-Modified = {2012-04-23 11:34:16 +0000}, - Publisher = {Perigee Books}, - Title = {Art as Experience}, - Year = {1980}} \ No newline at end of file + Address = {New York, NY, USA}, + Author = {John Dewey}, + Date-Added = {2012-04-23 11:34:16 +0000}, + Date-Modified = {2012-04-23 11:34:16 +0000}, + Publisher = {Perigee Books}, + Title = {Art as Experience}, + Year = {1980}} \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtex.cls b/macros/latex/contrib/unbtex/unbtex.cls index 0e737d324f..57444f3ed9 100644 --- a/macros/latex/contrib/unbtex/unbtex.cls +++ b/macros/latex/contrib/unbtex/unbtex.cls @@ -1,7 +1,7 @@ %% %% UnBTeX: A class for bachelor, master, and doctoral thesis at the %% University of Brasilia (UnB), Brazil -%% Version 1.3.2 2023/10/20 +%% Version 1.3.3 2023/11/02 %% Copyright (C) 2021-2023 by Henrique C. Ferreira %% %% This class file may be distributed and/or modified under the conditions @@ -17,12 +17,12 @@ %% This package consists of the following source file: %% unbtex.cls %% Template files: -%% unbtex-example.pdf, unbtex-example.tex and files within unbtex-example -%% directory +%% unbtex-example.pdf, unbtex-example.tex, unbtextcite-pt, unbtexcite-en, +%% and files within unbtex-example directory %% \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{unbtex}[2023/10/20 v1.3.2 Modelo da Universidade de Brasília baseado em abnTeX2] +\ProvidesClass{unbtex}[2023/11/02 v1.3.3 Modelo da Universidade de Brasília baseado em abnTeX2] % --- % Repassa todos os parâmetros a classe abntex2, @@ -49,7 +49,8 @@ \RequirePackage{helvet} % Fonte utilizada para os títulos do trabalho % Próxima do padrão da UnB http://www.marca.unb.br/introducao.php \RequirePackage{graphicx} % Inclusão de gráficos -\RequirePackage{subcaption} % Permite fazer subfiguras +%\RequirePackage{subcaption} % Permite fazer subfiguras +\RequirePackage{subfig} % Permite fazer subfiguras \RequirePackage{icomma} % Configura casas decimais separadas por vírgula \RequirePackage{indentfirst} % Indenta o primeiro parágrafo de cada seção. \RequirePackage[nopatch=item]{microtype} % Para melhorias de justificação @@ -146,16 +147,16 @@ % --- % https://ctan.org/pkg/hyperref \hypersetup{ - %pagebackref=true, - %pdftitle={\@title}, - %pdfauthor={\@author}, - %pdfpagemode=None, - pdfstartview=FitH, - breaklinks=true, - colorlinks=true, - allcolors=azulunb, - linktocpage, - bookmarksdepth=4 + %pagebackref=true, + %pdftitle={\@title}, + %pdfauthor={\@author}, + %pdfpagemode=None, + pdfstartview=FitH, + breaklinks=true, + colorlinks=true, + allcolors=azulunb, + linktocpage, + bookmarksdepth=4 } % --- @@ -167,16 +168,16 @@ % Julia (Linguagem não reconhecida automaticamente pelo pacote listings) \lstdefinelanguage{Julia}% - {morekeywords={abstract,break,case,catch,const,continue,do,else,elseif,% - end,export,false,for,function,immutable,import,importall,if,in,% - macro,module,otherwise,quote,return,switch,true,try,type,typealias,% - using,while},% - sensitive=true,% - alsoother={\$},% - morecomment=[l]\#,% - morecomment=[n]{\#=}{=\#},% - morestring=[s]{"}{"},% - morestring=[m]{'}{'},% + {morekeywords={abstract,break,case,catch,const,continue,do,else,elseif,% + end,export,false,for,function,immutable,import,importall,if,in,% + macro,module,otherwise,quote,return,switch,true,try,type,typealias,% + using,while},% + sensitive=true,% + alsoother={\$},% + morecomment=[l]\#,% + morecomment=[n]{\#=}{=\#},% + morestring=[s]{"}{"},% + morestring=[m]{'}{'},% }[keywords,comments,strings]% \lstset{% @@ -190,8 +191,8 @@ % Python \lstset{ - language = Python, - basicstyle=\linespread{1}\ttfamily\small, + language = Python, + basicstyle=\linespread{1}\ttfamily\small, numberstyle=\footnotesize, numbers=left, backgroundcolor=\color{gray!10}, @@ -366,15 +367,15 @@ % Figura de fundo da capa \RequirePackage{eso-pic} \newcommand\BackgroundPic{% - \put(0,0){% - \parbox[b][\paperheight]{\paperwidth}{% - \vfill - \centering - \includegraphics[width=\paperwidth,height=\paperheight,% - keepaspectratio]{capa_fundo.pdf}% - \vfill - } + \put(0,0){% + \parbox[b][\paperheight]{\paperwidth}{% + \vfill + \centering + \includegraphics[width=\paperwidth,height=\paperheight,% + keepaspectratio]{capa_fundo.pdf}% + \vfill } + } } % --- @@ -402,23 +403,23 @@ \vfill\vfill \abntex@ifnotempty{\imprimirpreambulo}{% - \hspace{.45\textwidth} - \begin{minipage}{.5\textwidth} - {\SingleSpacing - \IfStrEq*{\languagename}{english}{ - \begin{otherlanguage*}{brazil} - \imprimirpreambulo - \end{otherlanguage*}}{ - \imprimirpreambulo} - } - \end{minipage}% - \vfill + \hspace{.45\textwidth} + \begin{minipage}{.5\textwidth} + {\SingleSpacing + \IfStrEq*{\languagename}{english}{ + \begin{otherlanguage*}{brazil} + \imprimirpreambulo + \end{otherlanguage*}}{ + \imprimirpreambulo} + } + \end{minipage}% + \vfill }% {\large \orientadorname: \orienttitulo\ \orientnome\ \orientsobrenome\par} \abntex@ifnotempty{\coorientnome}{% - {\large\coorientadorname: \coorienttitulo\ \coorientnome\ \coorientsobrenome}% +{\large\coorientadorname: \coorienttitulo\ \coorientnome\ \coorientsobrenome}% }% \vfill\vfill @@ -436,7 +437,7 @@ \RequirePackage{xstring} \renewcommand{\fichacatalografica}{ - \thispagestyle{empty}{ +\thispagestyle{empty}{ \setlength{\fboxsep}{10pt} \vspace*{\fill} {\small @@ -457,8 +458,7 @@ \end{center} }} \newpage - } -} +}} % --- % --- @@ -472,10 +472,9 @@ {\bfseries\sffamily\Large \instituicaoi \par\vspace{4pt} \instituicaoii} \par \abntex@ifnotempty{\instituicaoiii}{{\bfseries\sffamily\Large\instituicaoiii}} \vfill\vfill - -\begin{center} -\color{verdeunb}\bfseries\sffamily\Large\imprimirtitulo -\end{center} + \begin{center} + \color{verdeunb}\bfseries\sffamily\Large\imprimirtitulo + \end{center} \vfill @@ -486,31 +485,31 @@ \vfill \abntex@ifnotempty{\imprimirpreambulo}{% - \hspace{.45\textwidth} - \begin{minipage}{.5\textwidth} - {\SingleSpacing - \IfStrEq*{\languagename}{english}{ - \begin{otherlanguage*}{brazil} - \imprimirpreambulo - \end{otherlanguage*}}{ - \imprimirpreambulo} - } - \end{minipage}% - \vfill + \hspace{.45\textwidth} + \begin{minipage}{.5\textwidth} + {\SingleSpacing + \IfStrEq*{\languagename}{english}{ + \begin{otherlanguage*}{brazil} + \imprimirpreambulo + \end{otherlanguage*}}{ + \imprimirpreambulo} + } + \end{minipage}% + \vfill }% \raggedright { Trabalho aprovado. \imprimirlocal, \imprimirdia\ de \imprimirmes\ de \imprimirano:} { - \assinatura{\textbf{\membrodabancainome} \\ \membrodabancaifuncaonome} - \assinatura{\textbf{\membrodabancaiinome} \\ \membrodabancaiifuncaonome} - \assinatura{\textbf{\membrodabancaiiinome} \\ \membrodabancaiiifuncaonome} - \abntex@ifnotempty{\membrodabancaivnome}{\assinatura{\textbf{\membrodabancaivnome} \\ \membrodabancaivfuncaonome}} - \abntex@ifnotempty{\membrodabancavnome}{\assinatura{\textbf{\membrodabancavnome} \\ \membrodabancavfuncaonome}}} + \assinatura{\textbf{\membrodabancainome} \\ \membrodabancaifuncaonome} + \assinatura{\textbf{\membrodabancaiinome} \\ \membrodabancaiifuncaonome} + \assinatura{\textbf{\membrodabancaiiinome} \\ \membrodabancaiiifuncaonome} + \abntex@ifnotempty{\membrodabancaivnome}{\assinatura{\textbf{\membrodabancaivnome} \\ \membrodabancaivfuncaonome}} + \abntex@ifnotempty{\membrodabancavnome}{\assinatura{\textbf{\membrodabancavnome} \\ \membrodabancavfuncaonome}}} \vfill - \begin{center} + \begin{center} {\sffamily\large\imprimirlocal \par \imprimirano} - \end{center} + \end{center} \end{center} \end{folhadeaprovacao} } @@ -521,31 +520,31 @@ % Correção para o pacote microtype \makeatletter \long\def\MT@prot@l#1{% - \MT@get@prot{#1}{left}% - \leavevmode - #1} + \MT@get@prot{#1}{left}% + \leavevmode + #1} \def\MT@prot@group@@{% - \catcode`\\=0 - \catcode`\^^M=10 - \makeatletter - {\expandafter\MT@prot@l\expandafter - {\expandafter\scantokens\expandafter{\the\MT@toks\noexpand}}}% - \endgroup} + \catcode`\\=0 + \catcode`\^^M=10 + \makeatletter + {\expandafter\MT@prot@l\expandafter + {\expandafter\scantokens\expandafter{\the\MT@toks\noexpand}}}% + \endgroup} \makeatother % Ajusta a indentação das listas de figuras e de tabelas \DeclareTOCStyleEntry[ - indent=0pt, - entrynumberformat=\entrynumberwithprefix{\figurename}, - dynnumwidth, - %numsep=0em + indent=0pt, + entrynumberformat=\entrynumberwithprefix{\figurename}, + dynnumwidth, + %numsep=0em ]{tocline}{figure} %\newcommand\entrynumberwithprefix[2]{#1\enspace#2:\hfill} \DeclareTOCStyleEntry[ - indent=0pt, - entrynumberformat=\entrynumberwithprefix{\tablename}, - dynnumwidth, - %numsep=0em + indent=0pt, + entrynumberformat=\entrynumberwithprefix{\tablename}, + dynnumwidth, + %numsep=0em ]{tocline}{table} -\newcommand\entrynumberwithprefix[2]{#1\enspace#2~--\hfill} \ No newline at end of file +\newcommand\entrynumberwithprefix[2]{#1~#2~\hfill} \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtexcite-en.bst b/macros/latex/contrib/unbtex/unbtexcite-en.bst new file mode 100644 index 0000000000..62da0cb780 --- /dev/null +++ b/macros/latex/contrib/unbtex/unbtexcite-en.bst @@ -0,0 +1,2159 @@ +%% +%% unbtexcite-en.bst bibliography style file is adapted from abntex-alf.bst +%% to format bibliographic references in ABNT style for documents written in +%% English, following sugestions avaliable at +%% +%% https://github.com/abntex/abntex2/issues/97 +%% +%% abntex2-alf.bst, v-1.9.7 laurocesar +%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/ +%% +%% 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 the abnTeX2 team, led by Lauro +%% César Araujo. Further information are available on +%% http://www.abntex.net.br/ +%% + +ENTRY + { address author + booktitle booksubtitle + chapter conference-number conference-year conference-location + edition editor editortype + dimensions furtherresp + howpublished illustrated institution + isbn issn journal key month note marginnote number organization + org-short pages pagename + publisher reprinted-from reprinted-text school + series subtitle section title type url urlaccessdate + volume year year-presented + abnt-and-type + abnt-doi abnt-dont-use-etal + abnt-etal-cite abnt-etal-list abnt-etal-text abnt-emphasize abnt-experimental + abnt-full-initials + abnt-last-names abnt-ldots-type + abnt-missing-year abnt-cite-style abnt-no-etal-label abnt-note + abnt-repeated-author-omit abnt-repeated-title-omit + abnt-show-options abnt-refinfo abnt-thesis-year abnt-url-package + abnt-title-command + abnt-verbatim-entry + iso-abbreviation iso-author-punctuation iso-date-place + }{}{ label extra.label year.label} + +%revision string +STRINGS { abnt.bst.revision } + +%general purpose strings +STRINGS { r s t } + +%variables needed to implement the various abnt options +STRINGS {abnt.etal.text abnt.emphasize previous.author previous.title} +INTEGERS {abnt.alf abnt.cite.style abnt.doi + abnt.experimental abnt.etal.cite abnt.etal.list + abnt.full.initials + abnt.last.names abnt.ldots.type + abnt.missing.year + abnt.refinfo abnt.repeated.author.omit abnt.repeated.title.omit + abnt.show.options abnt.and.type + abnt.title.command + abnt.thesis.year + abnt.url.package abnt.verbatim.entry + iso.abbreviation iso.author.punctuation iso.date.place + repeated.author} + +%needed for title formatting +INTEGERS { title.lenght title.pos first.word no.bracket} +STRINGS { title.char} + +%needed for controlling the sentence position +INTEGERS {output.state before.all mid.sentence after.sentence after.block } + +%needed for url identification +INTEGERS {url.type} + +%static values for options +%values for abnt.doi +FUNCTION {abnt.doi.expand.to.url} {#0} %expands a doi address to its url correspondent +FUNCTION {abnt.doi.link} {#1} %links doi to its url correspondent +FUNCTION {abnt.doi.leave.as.is} {#2} %shows doi as is, external viewer will have + %to know what to do with a "doi:" document + +%values for url types +FUNCTION {unknown.url} {#0} +FUNCTION {http.url} {#1} +FUNCTION {file.url} {#2} +FUNCTION {ftp.url} {#3} +FUNCTION {doi.url} {#4} +FUNCTION {mailto.url} {#5} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + + +%output.nonnull decides what is written before the argument s, if a comma, period etc. +FUNCTION {output.nonnull} +{ 's := %the argument is written into s + output.state mid.sentence = + { ", " * write$ } %mid.sentence first write comma + { output.state after.block = + { add.period$ write$ newline$ } + { output.state before.all = 'write$ + { add.period$ " " * write$ } + if$} + if$ + mid.sentence 'output.state := } + if$ + s %now comes s +} +FUNCTION {output.nonnull.dash} +{ 's := %the argument is written into s + output.state mid.sentence = + { " --- " * write$ } %mid.sentence first write comma + { output.state after.block = + { add.period$ write$ newline$ write$} + { output.state before.all = 'write$ + { add.period$ " " * write$ } + if$} + if$ + mid.sentence 'output.state := } + if$ + s %now comes s +} +FUNCTION {output} %does nothing or calls output.nonull +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.dash} %does nothing or calls output.nonull +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.dash + if$ +} +FUNCTION {output.check} %like ouput, but complains if t empty +{ 't := + duplicate$ empty$ + { pop$ "campo " t * " vazio em " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} { " " * before.all 'output.state :=} + +FUNCTION {date.block} {new.block} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { abnt.emphasize "{" * swap$ * "}" * } + if$ +} + + +FUNCTION {tie.or.space.prefix} %if text length less than 3 chars. uses a tie +{ duplicate$ text.length$ #5 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {no.space} { { "" } swap$ } + +FUNCTION {space.word} { " " swap$ * " " * } + +FUNCTION {bbl.and} +{ abnt.and.type #0 = {" and "} 'skip$ if$ +abnt.and.type #1 = {" \& "} 'skip$ if$} +FUNCTION {bbl.chapter} { "chap." } +FUNCTION {bbl.colon} {": "} +FUNCTION {bbl.editors} { "Eds." } +FUNCTION {bbl.editor} { "Ed." } +FUNCTION {bbl.edby} { "edited by" } +FUNCTION {bbl.edition} { "ed." } +FUNCTION {bbl.empty} {""} +FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$} +FUNCTION {bbl.doi.url} {"http://dx.doi.org/"} +FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$} +FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...} +{abnt.ldots.type +{abnt.ldots.type #1 = {"\ldots"} 'skip$ if$ +abnt.ldots.type #2 = {"$\ldots$"} 'skip$ if$ +abnt.ldots.type #3 = {"{...}"} 'skip$ if$} +{""} %for #0 use nothing +if$} +FUNCTION {bbl.master} { "Master of Science" } +FUNCTION {bbl.missing.year} +{abnt.missing.year +{""} %{"[s.d.]"} %#1 +{""} %#0 +if$} +FUNCTION {bbl.monography} { "Monography" } +FUNCTION {bbl.mthesis} { "Dissertation" } +FUNCTION {bbl.no.address} {""}%{"[S.l.]"} +FUNCTION {bbl.no.address.no.publisher} {""}%{"[S.l.: s.n.]"} +FUNCTION {bbl.no.publisher} {""}%{"[s.n.]"} +FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ } +FUNCTION {bbl.nr} { "n." } +FUNCTION {bbl.of} { "of" } +FUNCTION {bbl.phd} { "Doctor in Philosophy" } +FUNCTION {bbl.phdthesis} { "Thesis" } +FUNCTION {bbl.pages} +{pagename empty$ +{ "p." } +{pagename} +if$ +} +FUNCTION {bbl.page} { bbl.pages } +FUNCTION {bbl.reprint} {"Reprint from"} +FUNCTION {bbl.semicolon} { "; "} +FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"} +FUNCTION {bbl.techrep} { "Technical Report" } +FUNCTION {bbl.url.accessdate} +{iso.abbreviation { "Cited "} {"Accessed on: "} if$} +FUNCTION {bbl.url.available} +{ iso.abbreviation {"Available from Internet: "} {"Available at: "} if$} +FUNCTION {bbl.void} {""} +FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ } + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"Jun."} +MACRO {jul} {"Jul."} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sep."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} +FUNCTION {str.to.int} +{ duplicate$ is.num + {chr.to.int$ #48 -} + 'skip$ + if$ +} +FUNCTION {bibinfo.check} %usage: field "field" bibinfo.check +{ swap$ duplicate$ missing$ + {pop$ pop$ ""} + { duplicate$ empty$ + {swap$ pop$} + {swap$ pop$} + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + {swap$ "faltando " swap$ * " em " * cite$ * warning$ pop$ ""} + { duplicate$ empty$ + {swap$ "vazio " swap$ * " em " * cite$ * warning$} + {swap$ pop$} + if$ + } + if$ +} + +FUNCTION {write.field.verbatim} +{ +duplicate$ missing$ + {pop$ pop$} + { + s text.length$ #0 > + {s "," * newline$ write$ "" 's :=} + 'skip$ + if$ + swap$ + "={" * swap$ * "}" * + s swap$ * 's := + } +if$ +} + +FUNCTION {write.entry.verbatim1} +{ + "address" address write.field.verbatim + "author" author write.field.verbatim + "booktitle" booktitle write.field.verbatim + "booksubtitle" booksubtitle write.field.verbatim + "chapter" chapter write.field.verbatim + "conference-number" conference-number write.field.verbatim + "conference-year" conference-year write.field.verbatim + "conference-location" conference-location write.field.verbatim + "edition" edition write.field.verbatim + "editor" editor write.field.verbatim + "editortype" editortype write.field.verbatim + "dimensions" dimensions write.field.verbatim + "furtherresp" furtherresp write.field.verbatim + "howpublished" howpublished write.field.verbatim + "illustrated" illustrated write.field.verbatim + "institution" institution write.field.verbatim + "isbn" isbn write.field.verbatim + "issn" issn write.field.verbatim + "journal" journal write.field.verbatim +} +FUNCTION {write.entry.verbatim2} +{ + "key" key write.field.verbatim + "month" month write.field.verbatim + "note" note write.field.verbatim + "marginnote" marginnote write.field.verbatim + "number" number write.field.verbatim + "organization" organization write.field.verbatim + "org-short" org-short write.field.verbatim + "pages" pages write.field.verbatim + "pagename" pagename write.field.verbatim + "publisher" publisher write.field.verbatim + "reprinted-from" reprinted-from write.field.verbatim + "reprinted-text" reprinted-text write.field.verbatim + "school" school write.field.verbatim + "series" series write.field.verbatim + "subtitle" subtitle write.field.verbatim + "section" section write.field.verbatim + "title" title write.field.verbatim + "type" type write.field.verbatim +} +FUNCTION {write.entry.verbatim3} +{ + "url" url write.field.verbatim + "urlaccessdate" urlaccessdate write.field.verbatim + "volume" volume write.field.verbatim + "year" year write.field.verbatim + "abnt-emphasize" abnt-emphasize write.field.verbatim + "abnt-experimental" abnt-experimental write.field.verbatim + "abnt-doi" abnt-doi write.field.verbatim + "abnt-dont-use-etal" abnt-dont-use-etal write.field.verbatim + "abnt-full-initials" abnt-full-initials write.field.verbatim + "abnt-ldots-type" abnt-ldots-type write.field.verbatim + "abnt-missing-year" abnt-missing-year write.field.verbatim + "abnt-cite-style" abnt-cite-style write.field.verbatim + "abnt-no-etal-label" abnt-no-etal-label write.field.verbatim + %abnt-note + "abnt-repeated-author-omit" abnt-repeated-author-omit write.field.verbatim + "abnt-repeated-title-omit" abnt-repeated-title-omit write.field.verbatim + "abnt-show-options" abnt-show-options write.field.verbatim + "abnt-refinfo" abnt-refinfo write.field.verbatim + "abnt-thesis-year" abnt-thesis-year write.field.verbatim + "abnt-title-command" abnt-title-command write.field.verbatim + "abnt-url-package" abnt-url-package write.field.verbatim + "abnt-verbatim-entry" abnt-verbatim-entry write.field.verbatim +} + +FUNCTION {write.entry.verbatim} +{"" 's := "" 't := + abnt.verbatim.entry + {"{\footnotesize\begin{verbatim}" newline$ write$ + "@" type$ * "{" * cite$ * 's := + write.entry.verbatim1 + write.entry.verbatim2 + write.entry.verbatim3 + s "" = {"}"} {s "}" *} if$ + newline$ write$ + "\end{verbatim}}" newline$ write$} + {newline$} +if$} + +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {get.person} {"{vv }{ll}{, jj}{, ff}" format.name$} +FUNCTION {get.last.name} {#1 "{ll}" format.name$} +FUNCTION {get.first.name} {#1 "{ff}" format.name$} +FUNCTION {get.von} {#1 "{vv}" format.name$} +FUNCTION {get.jr} {#1 "{jj}" format.name$} +FUNCTION {is.composed.von} + {get.person + get.von duplicate$ empty$ {pop$ #0} + {duplicate$ + get.first.name empty$ not + swap$ get.last.name empty$ not and + } if$ + } + +FUNCTION {recompose.name} + {get.person duplicate$ duplicate$ duplicate$ + get.von #1 "{ll }" format.name$ swap$ + get.last.name * + swap$ #1 "{, ff}" format.name$ * + swap$ get.von #1 "{ ff}" format.name$ * + } + +FUNCTION {format.single.name} +{ +s nameptr get.person 'r := +abnt.last.names + {r #1 "{ll}{ jj}" format.name$ "u" change.case$ + abnt.full.initials + {r #1 "{, ff}{ vv}" format.name$ *} + {r #1 "{, f.}{ vv}" format.name$ *} + if$} + {%r #1 is.composed.von {r #1 recompose.name 'r :=} 'skip$ if$ + r #1 "{ll}" format.name$ + #1 "{ll}" format.name$ + r #1 "{ jj}" format.name$ * "u" change.case$ + abnt.full.initials + {r #1 "{, ff}{ vv}" format.name$ * + r #1 "{ll}" format.name$ + #1 "{ ff}{ vv}" format.name$ *} + {iso.author.punctuation + {r #1 "{, f{}}{ vv}" format.name$ *} + {r #1 "{, f.}{ vv}" format.name$ *} if$ + r #1 "{ll}" format.name$ + #1 "{ f.}{ vv}" format.name$ *} + if$} + +if$ +} +FUNCTION {format.names} +{ 'bibinfo := duplicate$ empty$ 'skip$ + {'s := + "" 't := + #1 'nameptr := s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { format.single.name + bibinfo bibinfo.check + 't := + nameptr #1 > + {nameptr #1 #1 + = numnames abnt.etal.list > and + {abnt.etal.list {"others" 't := #1 'namesleft :=} 'skip$ if$ } + 'skip$ + if$ + namesleft #1 > + { "; " * t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " \emph{et al.}" *} + { "; " * t *} + if$ } + if$ } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := } + while$ + } if$ +} + +%from plain.bst +FUNCTION {format.names.plain} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " \emph{et al.}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} {format.names} + +FUNCTION {format.authors} +{ +author "author" format.names +} + +FUNCTION {format.authors.plain} +{ +author format.names.plain +} + +FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.book.pages} +{ pages "pages" bibinfo.check duplicate$ empty$ + 'skip$ + { "~" * bbl.pages * } + if$ +} +FUNCTION {format.dimensions} +{ dimensions empty$ + 'skip$ + { dimensions output} + if$ +} +FUNCTION {format.furtherresp} +{ furtherresp empty$ + 'skip$ + { furtherresp output} + if$ +} +FUNCTION {format.illustrated} +{ illustrated missing$ + 'skip$ + {illustrated empty$ + {"il." output} + {illustrated output} + if$} + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check duplicate$ empty$ + 'skip$ + {new.block "ISBN " swap$ *} + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + {new.block "ISSN " swap$ *} + if$ +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check } + if$ +} + +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ } + if$ + howpublished #2 global.max$ substring$ * "howpublished" bibinfo.check } + if$ +} + +%ABNT styles require that the title acts as an author if +%typical author fields are absent. In this case the first +%word is uppercase. Our main problem is to establish what +%the first word actually is since portuguese uses accents. +%For example: Fun{\c c}\ão (Função) is a whole word but contains a +%space, but if we write Fun\c{c}\ão \c is converted to uppercase... +%You get the problem, don't you? +FUNCTION {format.title.as.author} +{ 's := %holds the title + #1 'title.pos := %our position in the title + #1 'first.word := %boolean, true if we already have the first word + #1 'no.bracket := %boolean, false if we are inside a {} + "" 't := %holds the first title.pos characters of the title + {first.word} + {s title.pos #1 substring$ 'title.char := + %checks if the character is a { + title.char "{" = {#0 'no.bracket :=} 'skip$ if$ + %if we are in a bracket + no.bracket 'skip$ {title.char "}" = {#1 'no.bracket :=} 'skip$ if$} if$ + type$ "journalpart" = + {title.char "." = title.char ":" = or title.char "!" = or + title.char "," = or title.char ";" = or title.char "?" = or} + {title.char " " =} + if$ s t = or no.bracket and + {#0 'first.word := + t title.char * "u" change.case$ + title.pos #1 + 'title.pos := + s title.pos global.max$ substring$ * 's :=} + {title.pos #1 + 'title.pos := t title.char * 't :=} + if$ + } + while$ +s +} + + +%compares current title with the title of the previous entry +FUNCTION {compare.title} +{abnt.repeated.title.omit + {duplicate$ "" = 'skip$ + {duplicate$ previous.title = repeated.author and + {duplicate$ 'previous.title := pop$ bbl.same.field} + {duplicate$ 'previous.title :=} + if$} + if$} + 'skip$ + if$ +} + +FUNCTION {apply.title.command} +{abnt.title.command + {duplicate$ empty$ 'skip$ + {"\bibtextitlecommand{" type$ * "}{" * swap$ * "}" *} + if$} + 'skip$ if$ +} + +FUNCTION {format.title} +{author empty$ editor empty$ and organization empty$ and + {title format.title.as.author} + {title duplicate$ empty$ {pop$ ""} {"t" change.case$} if$} + if$ + subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$ + apply.title.command + compare.title +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%FUNCTION {word.in} { bbl.in " " * } +FUNCTION {word.in} {"\emph{In}: "} + +FUNCTION {format.month} +{ month empty$ 'skip$ + {month "month" bibinfo.check} + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { bbl.missing.year } + { "existe o campo month (mês) mas não o campo year (ano) em " cite$ * warning$ month} + if$} + { month empty$ + { year n.dashify} + { month " " * year * } + if$} + if$ +} +FUNCTION {format.btitle} +{author empty$ editor empty$ and organization empty$ and + {title format.title.as.author "title" bibinfo.check duplicate$ empty$ 'skip$ {} if$ + subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$} + {title "title" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$ + subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$} +if$ +apply.title.command +compare.title +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "não posso usar ambos " swap$ * " os campos em " * cite$ * warning$ } + if$ +} + +FUNCTION {format.volume} %leaves formatted or empty volume on the stack +{volume duplicate$ empty$ + 'skip$ + {volume #1 #1 substring$ is.num + {bbl.volume swap$ tie.or.space.prefix * *} + 'skip$ + if$} + if$ +} + +FUNCTION {format.number} %leaves formatted or empty number on the stack +{ number duplicate$ empty$ + 'skip$ + {bbl.number swap$ tie.or.space.prefix * *} + if$ +} + +FUNCTION {format.patent.number} +{ number +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { format.volume + number empty$ 'skip$ {output format.number} if$ + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + } + if$ +} + +FUNCTION {format.bvolume.if.no.series} +{ series empty$ + { format.bvolume } + { "" } + if$ +} + +FUNCTION {format.number.or.volume} +{number empty$ + {format.volume} + {number} %we use the pure number here without leading "n." + if$ +} + +FUNCTION {format.volume.and.number} +{format.volume output + format.number +} + +FUNCTION {format.volume.number.series} +{ number empty$ volume empty$ and + { series empty$ + { "" } + {" (" series "series" bibinfo.check * ")" *} + if$} + { series empty$ + {""} %{ format.number.or.volume } + { " (" series "series" bibinfo.check * ", " * + format.number.or.volume * ")" * } + if$ } + if$ +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + {output.state mid.sentence = { "l" } { "t" } if$ change.case$ + "edition" bibinfo.check + edition #1 #1 substring$ is.num {". " * bbl.edition * } 'skip$ if$} + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { n.dashify bbl.pages swap$} + { bbl.page swap$ } + if$ + tie.or.space.prefix "pages" bibinfo.check * * } + if$ +} +FUNCTION {format.journal.pages} +{ pages empty$ {""} + { pages n.dashify bbl.pages + swap$ tie.or.space.prefix "pages" bibinfo.check * *} + if$ +} + +FUNCTION {get.url.type} +{s #1 #5 substring$ "http:" = {http.url} + {s #1 #6 substring$ "https:" = {http.url} + {s #1 #5 substring$ "file:" = {file.url} + {s #1 #4 substring$ "ftp:" = {ftp.url} + {s #1 #4 substring$ "doi:" = {doi.url} + {s #1 #7 substring$ "mailto:" = {mailto.url} {unknown.url} if$} + if$} + if$} + if$} + if$} + if$ + 'url.type := +} + +FUNCTION {expand.doi} +{s +url.type doi.url = + {#5 global.max$ substring$ bbl.doi.url swap$ *} + 'skip$ if$ +} + +INTEGERS {url.pos url.length} +FUNCTION {filter.url.tex} +{s text.length$ #1 + 'url.length := + #1 'url.pos := "" 't := + {url.pos url.length <} + {s url.pos #1 substring$ + duplicate$ "_" = {pop$ "\underline{\ }" } 'skip$ if$ + duplicate$ "%" = {pop$ "\%" } 'skip$ if$ + duplicate$ "&" = {pop$ "\&" } 'skip$ if$ + duplicate$ "~" = {pop$ "\~{}" } 'skip$ if$ + duplicate$ "/" = {pop$ "\-/" } 'skip$ if$ + duplicate$ "." = {pop$ "\-." } 'skip$ if$ + duplicate$ "\" = {pop$ "{\textbackslash}" } 'skip$ if$ + duplicate$ "#" = {pop$ "\#" } 'skip$ if$ + duplicate$ "_" = {pop$ "\_" } 'skip$ if$ + t swap$ * 't := + url.pos #1 + 'url.pos := + } + while$ +t +} +FUNCTION {filter.url.html} +{s text.length$ #1 + 'url.length := + #1 'url.pos := "" 't := + {url.pos url.length <} + {s url.pos #1 substring$ + duplicate$ "%" = {pop$ "\%" } 'skip$ if$ + duplicate$ "#" = {pop$ "\#" } 'skip$ if$ + duplicate$ "_" = {pop$ "\_" } 'skip$ if$ + t swap$ * 't := + url.pos #1 + 'url.pos := + } + while$ +t +} + +FUNCTION {compose.url} +{'s := + get.url.type + bbl.url.available + abnt.url.package #0 = + { "$<$" * + abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$ + * "$>$" *} 'skip$ if$ + abnt.url.package #1 = + { "\url{" * filter.url.html * "}" *} 'skip$ if$ + abnt.url.package #2 = + {url.type http.url = + {"\htmladdnormallink{$<$" * filter.url.tex * "$>$}{" * filter.url.html * "}" *} + 'skip$ if$ + url.type doi.url = url.type ftp.url = or url.type mailto.url = or + {"\htmladdnormallink{$<$" * + abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$ + * "$>$}{" * + abnt.doi abnt.doi.leave.as.is = {s} 'expand.doi if$ + * "}" * } + 'skip$ if$ + url.type unknown.url = + {"$<$" * filter.url.tex * "$>$" *} + 'skip$ if$} 'skip$ if$ +} +FUNCTION {format.url} +{ url empty$ 'skip$ + {url compose.url output new.sentence } + if$ + urlaccessdate duplicate$ empty$ 'skip$ + { bbl.url.accessdate swap$ *} + if$ + "urlaccessdate" bibinfo.check output new.sentence +} + +FUNCTION {format.conference.info} +{ conference-number empty$ + 'skip$ + {conference-number "." * output} + if$ + conference-year empty$ + 'skip$ + {conference-year output} + if$ + conference-location empty$ + 'skip$ + {conference-location output} + if$ + new.sentence +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check } + if$ + chapter tie.or.space.prefix "chapter" bibinfo.check * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ } + if$ +} + +FUNCTION {format.booktitle} +{author empty$ editor empty$ and organization empty$ and + {booktitle format.title.as.author "booktitle" bibinfo.check duplicate$ empty$ 'skip$ {} if$ + booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ * + apply.title.command} if$} + {booktitle "booktitle" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$ + %{booktitle "booktitle" bibinfo.check "u" change.case$ duplicate$ empty$ 'skip$ {} if$ + booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ * + apply.title.command} if$} +if$ +} +FUNCTION {format.editors} +{ editor empty$ + {"inbook" type$ = 'bbl.same.field 'skip$ if$} + {author empty$ + {editor "editor" format.names " (" * + editortype empty$ {bbl.editor} {editortype} if$ + ")" * * } + {"inbook" type$ = + {bbl.same.field } + {editor "editor" format.names " (" * + editortype empty$ {bbl.editor} {editortype} if$ + ")" * *} + if$} + if$} + if$ +} +FUNCTION {format.in.ed.booktitle} +{ editor empty$ + {organization empty$ not author empty$ not and %if one of two not empty + {word.in organization "u" change.case$ * output + format.conference.info + booktitle empty$ {""} {new.sentence format.booktitle} if$} + {word.in + organization empty$ author empty$ and 'skip$ + {"inbook" type$ = {bbl.same.field * output new.sentence ""} + 'skip$ if$ } if$ + booktitle empty$ 'skip$ {format.booktitle *} if$} + if$} + {word.in format.editors * output + booktitle empty$ {""} {new.sentence format.booktitle} if$} + if$ + output + new.sentence +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "todos os campos relevantes estão vazios ou faltando em " cite$ * warning$ } + 'skip$ + if$ +} +FUNCTION {format.type} +{ type "type" bibinfo.check + duplicate$ empty$ 'skip$ + {new.block "" swap$ * } + if$ +} + +FUNCTION {format.year} +{year empty$ + { "campo year vazio ou faltando em " cite$ * + abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$ + abnt.missing.year {", " } {""} if$ bbl.missing.year *} + {year n.dashify "year" bibinfo.check} +if$ +} + +FUNCTION {format.year.presented} +{year-presented empty$ + {""} + {year-presented n.dashify} +if$ +} + +FUNCTION {format.field.address} +{ 't := + address empty$ organization empty$ and url empty$ and t empty$ and + {bbl.no.address.no.publisher} + {address empty$ + %if an url is present we don't give a missing address "[s.l.]" notice + %{url empty$ {bbl.no.address ": "} {"" ""} if$} % remove : após [s.l.] em book + {url empty$ {bbl.no.address " "} {"" ""} if$} + {address ": "} + if$ + t empty$ + {%if an organization is present then it is OK not to have a publisher + organization empty$ {* bbl.no.publisher * } 'pop$ if$} + {* t * } + if$} + if$ +} + +FUNCTION {format.address} +{address empty$ + { bbl.no.address} + { address} + if$ +} + +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.check format.field.address} + +FUNCTION {format.publisher.address.relax} +{publisher empty$ address empty$ and {""} + {publisher "publisher" bibinfo.check format.field.address} +if$} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.field.address} + +%retains current authorship for future use +FUNCTION {compare.authorship} +{abnt.repeated.author.omit + {duplicate$ "" = 'skip$ + {duplicate$ previous.author = + {duplicate$ 'previous.author := + pop$ bbl.same.field + #1 'repeated.author :=} + {duplicate$ 'previous.author := + #0 'repeated.author :=} + if$} + if$} + 'skip$ + if$ +} + +FUNCTION {format.author.or.organization} +{ author empty$ + { organization empty$ 'skip$ + { organization "u" change.case$ "organization" bibinfo.check output} + if$} + { format.authors output.nonnull } + if$ + compare.authorship +} + +FUNCTION {format.editor.or.organization} +{ editor empty$ + { organization empty$ 'skip$ + { organization "u" change.case$ "organization" bibinfo.check output} + if$} + { format.editors output.nonnull } + if$ + compare.authorship +} + +FUNCTION {format.author.or.editor.or.organization} +{ author empty$ + { editor empty$ + { organization empty$ + 'skip$ + { organization "u" change.case$ "organization" bibinfo.check output} + if$} + { format.editors output.nonnull } + if$} + { format.authors output.nonnull } + if$ + compare.authorship +} + +FUNCTION {format.reprint} +{ reprinted-text missing$ + {""} + {reprinted-text empty$ + {bbl.reprint} {reprinted-text} if$ + bbl.colon *} + if$ +} + +FUNCTION {format.journal} +{ + format.reprint + journal emphasize * +} + +%generates the first label in \abntrefinfo to be used with \citeonline +FUNCTION {format.names.for.label1} %abnt-alf only +{ 's := "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + {abnt.last.names + {s nameptr "{ll}{ jj}" format.name$} + {s nameptr "{ll}" format.name$ #1 "{ll}" format.name$ + s nameptr "{ jj}" format.name$ *} + if$ + 't := + nameptr #1 > + {namesleft #1 > + { numnames abnt.etal.cite > abnt.etal.cite #0 = not and + {#0 'namesleft := abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {", " * t * } if$ } + { t "others" = + {abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {numnames nameptr = %{bbl.and * t *} + {numnames #2 > {", and " * t *} {" and " * t *} if$} % coloca vírgula antes do "and" se houver mais de dois autores + 'skip$ if$} + if$ + } + if$ } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := } + while$ +} + +%generates the second label in \abntrefinfo to be used with \cite +FUNCTION {format.names.for.label2} %abnt-alf only +{ 's := "" 't := + #1 'nameptr := s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + {abnt.last.names + {s nameptr "{ll}{ jj}" format.name$} + {s nameptr "{ll}" format.name$ #1 "{ll}" format.name$ + s nameptr "{ jj}" format.name$ *} + if$ + % Desabilita caixa alta nas citações do comando \cite ao logo do texto + %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ 't := + abnt.cite.style #0 = {} 'skip$ if$ 't := + nameptr #1 > + {namesleft #1 > + { numnames abnt.etal.cite > + {#0 'namesleft := abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {"; " * t * } if$ } + { t "OTHERS" = t "others" = or + {abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {numnames nameptr = { bbl.semicolon * t *} 'skip$ if$} + if$ + } + if$ } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := } + while$ +} + +FUNCTION {format.title.for.label} +{ 's := + #1 'title.pos := #1 'first.word := + "" 't := + {first.word} + {s title.pos #1 substring$ 'title.char := + title.char "." = title.char ":" = or title.char ";" = or + title.char "," = or title.char " " = or s t = or + {#0 'first.word := + title.pos #1 + 'title.pos :=} + {title.pos #1 + 'title.pos := t title.char * 't :=} + if$ + } + while$ +s t = %title equals first word, dont use bbl.ldots + {t "}{" * t + %abnt.cite.style #0 = {"u" change.case$ * } 'skip$ if$} + abnt.cite.style #0 = { * } 'skip$ if$} + {t bbl.ldots * "}{" * t + %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ * bbl.ldots *} + abnt.cite.style #0 = {} 'skip$ if$ * bbl.ldots *} +if$ +} + +%cvs keys have the general form $key: value $ +INTEGERS {key.pos value.pos} +FUNCTION {extract.cvs.key} %we borrow the functionality of format.title.for.label +{ 's := %holds the entire cvs string + #1 'key.pos := + #0 'value.pos := %0= between first $ and :, 1=between : and second $, 2= at the end + "" 't := %holds the resulting value + {value.pos #0 = value.pos #1 = or} + { s key.pos #1 substring$ 'title.char := + value.pos #0 = + { title.char ":" = {#1 'value.pos := key.pos #1 + 'key.pos :=} 'skip$ if$} + { title.char "$" = + {#2 'value.pos :=} + {t title.char * 't :=} + if$} + if$ + key.pos #1 + 'key.pos := + } + while$ + t +} + +%generates and extended label of type {Author}{AUTHOR}{YEAR} +%for abnt.cite.style=1 they will be of type {Author}{Author}{YEAR} +%final result is placed into variable label +FUNCTION {calc.extended.label} +{ "{" + author empty$ not + {author format.names.for.label1 * "}{" * author format.names.for.label2 *} + {editor empty$ not + {editor format.names.for.label1 * "}{" * editor format.names.for.label2 *} + {org-short empty$ not + %{org-short * "}{" * org-short "u" change.case$ *} + {org-short * "}{" * org-short *} + {organization empty$ not + %{organization * "}{" * organization "u" change.case$ *} + {organization * "}{" * organization *} + {title empty$ not + {title format.title.for.label *} + {"nada}{NADA" *} + if$} + if$} + if$} + if$} + if$ + "}{" * + year empty$ 'skip$ {year *} if$ + 'label := %place the stack into label + % final } will be placed in reverse.pass +} +%generates and simple label of type "Author YEAR" +%final result is placed onto the stack +FUNCTION {calc.simple.label} +{ author empty$ not + {author format.names.for.label1} + {editor empty$ not + {editor format.names.for.label1} + {organization empty$ not + {organization} + {title empty$ not + {title} + {""} + if$} + if$} + if$} + if$ + year empty$ 'skip$ {" " * year *} if$ +} + +FUNCTION {output.bibitem} +{ newline$ + abnt.alf + {"\bibitem[" write$ + calc.simple.label + write$ "]{"} + {"\bibitem{"} + if$ + write$ cite$ write$ "}" write$ newline$ + abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$ + "{" write$ + "" before.all 'output.state := +} +FUNCTION {output.hiddenbibitem} +{ newline$ + abnt.alf + {"\hiddenbibitem[" write$ + calc.simple.label + write$ "]{"} + {"\bibitem{"} + if$ + write$ cite$ write$ "}" write$ newline$ + abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$ + "{" write$ + "" before.all 'output.state := +} +FUNCTION {fin.entry} +{ add.period$ write$ + reprinted-from empty$ 'skip$ + {" " reprinted-text empty$ + {bbl.reprint} {reprinted-text} if$ * bbl.colon * + "\abntreprintinfo{ " * reprinted-from * "}" * write$} + if$ + abnt-note empty$ 'skip$ + {"\footnote{" abnt-note * "}" * write$} if$ + "}" write$ + %newline$ + write.entry.verbatim +} + +FUNCTION { abnt.display.options} +{ 's := 't := + abnt.show.options #1 = % "warn" + {"opção " t * " passou para " * s * warning$ } 'skip$ if$ + + abnt.show.options #2 = % "list" + {"Op\c c\~ao selecionada {\tt " t * "=}\verb+" * s * "+" * output new.sentence } 'skip$ if$ +} + +FUNCTION { abnt-options1 } + { + abnt-show-options empty$ + 'skip$ + {abnt-show-options "no" = + {#0} {abnt-show-options "warn" = + {#1} {abnt-show-options "list" = + {#2 } {#0 } if$} if$} if$ + 'abnt.show.options :=} % #0 "no"; #1 "warn"; #2 "list" + if$ + + abnt.show.options #2 = + {output.bibitem "Mudan\c ca de estilo ap\'os este ponto com o comando \verb!\citeoption{" + cite$ * "}! " * + output new.sentence} 'skip$ if$ + + abnt-show-options empty$ + 'skip$ {"abnt-show-options" abnt-show-options abnt.display.options} if$ + + abnt-cite-style empty$ + 'skip$ + {abnt-cite-style "(AUTHOR, YEAR)" = + {#0 'abnt.cite.style :=} + {abnt-cite-style "(Author, YEAR)" = + {#1 'abnt.cite.style :=} + {"opção " abnt-cite-style * " desconhecida" * warning$} + if$} + if$ + "abnt-cite-style" abnt-cite-style abnt.display.options}if$ + + abnt-experimental empty$ + 'skip$ {abnt-experimental "yes" = 'abnt.experimental := + "abnt-experimental" abnt-experimental abnt.display.options} if$ + + abnt-emphasize duplicate$ empty$ + 'pop$ {'abnt.emphasize := + "abnt-emphasize" abnt.emphasize abnt.display.options + abnt-emphasize "\bf" = abnt-emphasize "\it" = or abnt-emphasize "\em" = or + abnt-emphasize "\bfseries" = or + {"não use " abnt-emphasize * " para abnt-emphasize em " * cite$ * + ", isto alterará TODO o texto. Use \textbf ou \emph. Veja a documentação abnt-bibtex-doc para mais detalhes." * warning$} + 'skip$ if$ + } if$ + + abnt-doi empty$ + 'skip$ + {abnt-doi "expand" = + {abnt.doi.expand.to.url 'abnt.doi :=} + {abnt-doi "link" = + {abnt.doi.link 'abnt.doi :=} + {abnt-doi "doi" = + {abnt.doi.leave.as.is 'abnt.doi :=} + {"opção " abnt-doi * " desconhecida" * warning$} + if$} + if$} + if$ + "abnt-doi" abnt-doi abnt.display.options}if$ + } +FUNCTION { abnt-options2 } + { + abnt-full-initials empty$ + 'skip$ {abnt-full-initials "yes" = 'abnt.full.initials := + "abnt-full-initials" abnt-full-initials abnt.display.options} if$ + + abnt-last-names empty$ + 'skip$ + {abnt-last-names "abnt" = {#0} + {abnt-last-names "bibtex" = {#1} {#0} if$} if$ + 'abnt.last.names := + "abnt-last-names" abnt-last-names abnt.display.options} + if$ + + abnt-ldots-type empty$ + 'skip$ + {abnt-ldots-type "none" = {#0} + {abnt-ldots-type "normal" = {#1} + {abnt-ldots-type "math" = {#2} + {abnt-ldots-type "text" = {#1} {#0} + if$} if$} if$} if$ + 'abnt.ldots.type := + "abnt-ldots-type" abnt-ldots-type abnt.display.options} + if$ + + abnt-missing-year empty$ + 'skip$ + {abnt-missing-year "void" = {#0} + {abnt-missing-year "sd" = {#1} {#0} if$} + if$ + 'abnt.missing.year := + "abnt-missing-year" abnt-missing-year abnt.display.options} + if$ + + abnt-and-type empty$ + 'skip$ {abnt-and-type " and " = + {#0} {abnt-and-type "&" = + {#1} {#0} if$} if$ + 'abnt.and.type := + "abnt-and-type" abnt-and-type abnt.display.options} + if$ + + abnt-thesis-year empty$ + 'skip$ {abnt-thesis-year "final" = + {#0} {abnt-thesis-year "title" = + {#1} {abnt-thesis-year "both" = + {#2} {#0} if$} if$} if$ + 'abnt.thesis.year := + "abnt-thesis-year" abnt-thesis-year abnt.display.options} + if$ + + abnt-refinfo empty$ + 'skip$ {abnt-refinfo "yes" = 'abnt.refinfo := + "abnt-refinfo" abnt-refinfo abnt.display.options} if$ +} +FUNCTION { abnt-options3 } + { + + abnt-dont-use-etal empty$ + 'skip$ {abnt-dont-use-etal "yes" = {#0 'abnt.etal.list :=} 'skip$ if$ + "Uso da opção abnt-dont-use-etal se tornou obsoleto, usamos abnt-etal-list." warning$ + "abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$ + + abnt-etal-cite empty$ + 'skip$ {abnt-etal-cite str.to.int 'abnt.etal.cite := + "abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$ + + abnt-etal-list empty$ + 'skip$ {abnt-etal-list str.to.int 'abnt.etal.list := + "abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$ + + abnt-etal-text missing$ + 'skip$ {abnt-etal-text 'abnt.etal.text := + "abnt-etal-text" abnt.etal.text abnt.display.options} if$ + + abnt-no-etal-label empty$ + 'skip$ {abnt-no-etal-label "yes" = {#0 'abnt.etal.cite :=} 'skip$ if$ + "Uso da opção abnt-no-etal-label se tornou obsoleto, usamos abnt-etal-cite." warning$ + "abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$ + + abnt-repeated-author-omit empty$ + 'skip$ {abnt-repeated-author-omit "yes" = + {#1 'abnt.repeated.author.omit :=} + {#0 'abnt.repeated.author.omit := "" 'previous.author :=} if$ + "abnt-repeated-author-omit" abnt-repeated-author-omit abnt.display.options} if$ + + abnt-repeated-title-omit empty$ 'skip$ + {abnt-repeated-title-omit "yes" = + {#1 'abnt.repeated.title.omit :=} + {#0 'abnt.repeated.title.omit := "" 'previous.title :=} if$ + "abnt-repeated-title-omit" abnt-repeated-title-omit abnt.display.options + abnt.repeated.author.omit not abnt.repeated.title.omit and + {"Use abnt-repeated-title-omit=yes junto com abnt-repeated-author-omit=yes" + warning$} 'skip$ if$} if$ + + abnt-title-command empty$ + 'skip$ {abnt-title-command "yes" = + {#1 'abnt.title.command :=} + {#0 'abnt.title.command :=} if$ + "abnt-title-command" abnt-title-command abnt.display.options} if$ + + abnt-url-package empty$ 'skip$ + {abnt-url-package "url" = + {#1 'abnt.url.package :=} + {abnt-url-package "hyperref" = {#2 'abnt.url.package :=} 'skip$ if$} + if$ + "abnt-url-package" abnt-url-package abnt.display.options} + if$ + + abnt-verbatim-entry empty$ + 'skip$ {abnt-verbatim-entry "yes" = 'abnt.verbatim.entry := + "abnt-verbatim-entry" abnt-verbatim-entry abnt.display.options} if$ + + abnt.show.options #2 = 'fin.entry 'skip$ if$ + } + +%we had to break this function in two parts because of the following message: +%Sorry---you've exceeded BibTeX's single function space 100 +%(That was a fatal error) +FUNCTION { iso-options1 } + { + iso-abbreviation empty$ + 'skip$ {iso-abbreviation "standard" = 'iso.abbreviation := + "iso-abbreviation" iso-abbreviation abnt.display.options} if$ + iso-author-punctuation empty$ + 'skip$ {iso-author-punctuation "void" = 'iso.author.punctuation := + "iso-author-punctuation" iso-author-punctuation abnt.display.options} if$ + iso-date-place empty$ + 'skip$ {iso-date-place "ISO" = 'iso.date.place := + "iso-date-place" iso-date-place abnt.display.options} if$ + } + +FUNCTION { abnt-options } + { + abnt-options1 + abnt-options2 + abnt-options3 + iso-options1 + } + +FUNCTION { iso-options } { abnt-options } + +FUNCTION { iso.year.label } +{ iso.date.place + { abnt.alf + {year.label output new.sentence} + 'skip$ if$} + 'skip$ if$} + +FUNCTION { iso.date } +{ iso.date.place + { abnt.alf + 'skip$ + {year output new.sentence} + if$} + 'skip$ if$} + +FUNCTION { non.iso.date } + {iso.date.place 'skip$ {format.date output} if$} + +FUNCTION {article} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.block + format.journal output + iso.date.place {format.year output} 'skip$ if$ + %iso.date.place {format.date output} 'skip$ if$ + %iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + % {format.year output new.sentence} if$ + section "section" bibinfo.check output.dash + publisher "publisher" bibinfo.check output + address "address" bibinfo.check output + format.volume output + format.number output + format.pages output + non.iso.date + format.issn output new.block + format.note output new.block + format.url + fin.entry +} +FUNCTION {book} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output new.sentence + format.btitle "title" output.check new.sentence + format.furtherresp new.sentence + format.edition output new.sentence + format.publisher.address output + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.volume output new.sentence + format.book.pages output + format.illustrated + format.dimensions new.sentence + format.howpublished output new.sentence + format.volume.number.series output new.sentence + format.note output + format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro + format.isbn output new.sentence + format.url + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output new.sentence + format.btitle "title" output.check new.sentence + format.edition output new.sentence + address "address" bibinfo.check output + format.bvolume output + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.book.pages output new.sentence + format.volume.number.series output new.sentence + format.note output + format.isbn output new.sentence + format.url + fin.entry +} + +FUNCTION {hidden} +{ output.hiddenbibitem + fin.entry} + +FUNCTION {inbook} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.block + format.in.ed.booktitle + format.furtherresp new.sentence + format.edition output new.sentence + format.publisher.address output + %format.year output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.bvolume.if.no.series output + format.volume.number.series output + format.chapter.pages output new.sentence + format.isbn output new.block + format.note output new.block + format.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.sentence + format.in.ed.booktitle + format.edition output new.sentence + format.publisher.address output + %format.year output + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output} if$ + format.volume.number.series output new.sentence + format.bvolume.if.no.series output + format.chapter.pages output new.sentence + format.isbn output new.block + format.note output new.block + format.url + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.sentence + format.in.ed.booktitle + format.publisher.address output + %format.year output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.bvolume.if.no.series output + format.volume.number.series output + format.pages output + format.isbn output + format.issn output new.sentence + format.note output new.sentence + format.url + fin.entry +} +FUNCTION {journalpart} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output new.sentence + format.btitle "title" output.check new.sentence + format.furtherresp new.sentence + format.edition output new.sentence + format.publisher.address output + format.volume output + format.number output + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.date output new.sentence} if$ + format.book.pages output + format.illustrated + format.dimensions new.sentence + format.note output + format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro + format.isbn output new.sentence + format.url + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.btitle "title" output.check new.block + format.furtherresp new.sentence + format.edition output new.sentence + format.address output + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.bvolume.if.no.series output + format.book.pages output new.sentence + format.volume.number.series output new.sentence + format.note output new.sentence + format.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output + format.btitle output new.sentence + format.furtherresp new.sentence + format.publisher.address.relax output + %format.date output new.block + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.book.pages output new.sentence + format.illustrated + format.dimensions new.sentence + format.howpublished output new.block + format.volume.number.series output new.sentence + format.note output new.block + format.url + fin.entry + empty.misc.check +} + +FUNCTION {patent} +{ output.bibitem + format.editor.or.organization new.sentence + iso.year.label + format.authors.plain output new.sentence + format.btitle output new.sentence + format.furtherresp new.sentence + %format.date output new.block + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.patent.number output + format.howpublished output new.block + format.note output new.block + format.url + fin.entry + empty.misc.check +} + +FUNCTION {format.thesis.type} +{ type$ "phdthesis" = + {bbl.phdthesis} + {type$ "mastersthesis" = + {bbl.mthesis} + {type$ "monography" = + {bbl.monography} + {bbl.void} + if$} + if$} + if$ + type empty$ + {type missing$ + {type$ "phdthesis" = + { " (" bbl.phd * ")" *} + {type$ "mastersthesis" = { " (" bbl.master * ")" *} {pop$ ""} if$} + if$} + {""} + if$} + {type$ "thesis" = + {type} + {" (" type * ")" * "type" bibinfo.check} + if$} + if$ + * %joins first and second part of this function +} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check new.block + iso.year.label + format.btitle "title" output.check new.block + abnt.thesis.year #1 = abnt.thesis.year #2 = or + {format.date "year" output.check new.sentence} 'skip$ if$ + format.year.presented output new.sentence + format.book.pages output new.sentence + format.thesis.type output.nonnull + school "school" bibinfo.warn output.dash + address "address" bibinfo.check output + abnt.thesis.year #0 = abnt.thesis.year #2 = or + {format.date "year" output.check new.sentence} 'skip$ if$ + format.note output new.block + format.url + fin.entry +} + +FUNCTION {phdthesis} { thesis } +FUNCTION {mastersthesis} { thesis } +FUNCTION {monography} { thesis } + +FUNCTION {proceedings} +{ output.bibitem + iso.year.label + format.editor.or.organization + format.conference.info + format.btitle "title" output.check + format.bvolume output + format.volume.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { new.sentence format.publisher.address output format.year output} + if$ + } + { publisher empty$ + { new.sentence + format.organization.address output format.year output} + { new.sentence + organization "organization" bibinfo.check output + format.publisher.address output format.year output} + if$ } + if$ + new.sentence format.book.pages output new.sentence + format.isbn output + format.issn output new.block + format.note output new.block + format.url + fin.entry +} + +FUNCTION {techreport} {manual} + +FUNCTION {unpublished} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.title "title" output.check new.sentence + format.note "note" output.check new.sentence + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.url + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { format.single.name 't := + nameptr #1 > + { + nameptr #3 + #1 + = + numnames #3 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {any.sort} +{ author empty$ + { organization empty$ + { editor empty$ + { title empty$ + { key empty$ + { "para ordenar, precisa dos campos author, organization, editor, title ou key in " cite$ * warning$ ""} + { key sortify } + if$} + { title sortify} + if$} + { editor sort.format.names } + if$} + { organization sortify } + if$} + { author sort.format.names } +if$ +} + +FUNCTION {presort} +{ + any.sort + " " * year field.or.null sortify * " " * title field.or.null + sort.format.title * #1 entry.max$ substring$ + %for non-alpha style we drop a void sort.key such that SORT has no effect + abnt.alf 'skip$ {pop$ ""} if$ 'sort.key$ := + year empty$ {""} {year} if$ 'year.label := + calc.extended.label +} + +FUNCTION {set.default.abnt.variables} +{ %if you change abnt-num to abnt-alf by hand you need also to change + %the name of RCSfile by hand, otherwise cvs takes care of it. + % + "$RCSfile: unbtexcite-en.bst,v $ " extract.cvs.key + % + "unbtexcite-en.bst,v " = 'abnt.alf := % #1 para abnt-alf #0 para abnt-num + "$Revision: v-1.9.7 $" extract.cvs.key 'abnt.bst.revision := + #0 'abnt.and.type := % #0 "and"; #1 "&" + "\emph" 'abnt.emphasize := + #0 'abnt.cite.style := %default norm version for NBR10520 + %#0 \cite=(AUTHOR, YEAR) + %#1 \cite=(Author, YEAR) + #0 'abnt.experimental := + abnt.doi.expand.to.url 'abnt.doi := + #3 'abnt.etal.cite := + #3 'abnt.etal.list := + "et al." 'abnt.etal.text := + #0 'abnt.full.initials := + #0 'abnt.last.names := %#0 abnt-style, #1 bibtex-style + #1 'abnt.ldots.type := %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...} + #0 'abnt.missing.year := %#0 "void"; #1 "[s.d.]" + #0 'repeated.author := + #0 'abnt.repeated.author.omit := + #0 'abnt.repeated.title.omit := + #1 'abnt.refinfo := + #0 'abnt.show.options := % #0 "no"; #1 "warn"; #2 "list" + #0 'abnt.thesis.year := % #0 "final"; #1 "title"; #2 "both" + #0 'abnt.title.command := % #0 "no"; #1 "yes" + #0 'abnt.url.package := % #0 "none"'; #2 "url"; #2 "hyperref" + #0 'abnt.verbatim.entry := +} +FUNCTION {set.default.iso.variables} +{ #0 'iso.abbreviation := % #0 ABNT-style; #1 ISO-style + #0 'iso.author.punctuation := % #0 ABNT (Smith, A. B.); #1 ISO (Smith, AB) + #0 'iso.date.place := % #0 ABNT-sty; #1 ISO-style +} +EXECUTE {set.default.abnt.variables} +EXECUTE {set.default.iso.variables} +FUNCTION {process.early.abnt.options} +{%here we intercept all entries which need priority handling + %note: we cannot use type$ at this point + abnt-and-type missing$ + abnt-experimental missing$ and + abnt-etal-cite missing$ and + abnt-etal-text missing$ and + abnt-ldots-type missing$ and + abnt-cite-style missing$ and + abnt-no-etal-label missing$ and + abnt-title-command missing$ and + 'skip$ {call.type$} if$ +} +ITERATE {process.early.abnt.options} +FUNCTION {search.reprinted} +{ reprinted-from missing$ 'skip$ + {"\nocite{" reprinted-from * "}" * write$ newline$ + } + if$ +} +ITERATE {search.reprinted} +FUNCTION {abntreprintinfo} +{"\providecommand{\abntreprintinfo}[1]{%" write$ newline$ + " \citeonline{#1}}" write$ newline$} +EXECUTE {abntreprintinfo} +ITERATE {presort} +SORT +STRINGS { last.label next.extra} +INTEGERS { last.extra.num } +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + year.label extra.label * 'year.label := + extra.label 'next.extra := + label "}" * 'label := +} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {begin.bib} +{ + abnt.alf + {"\setlength{\labelsep}{0pt}" write$} + 'skip$ + if$ + "\begin{thebibliography}{}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + abnt.refinfo #1 = + {"\providecommand{\abntrefinfo}[3]{}" write$ newline$} + 'skip$ if$ + "\providecommand{\abntbstabout}[1]{}" write$ newline$ + abnt.title.command + {"\providecommand{\bibtextitlecommand}[2]{#2}" write$ newline$} + 'skip$ if$ + "\abntbstabout{" abnt.bst.revision * "}" * write$ newline$ + %Se você não usa abntcite e precisa que a margem direita não + %seja justificada, descomente a linha seguinte + %alternativamente coloque \bibliography{abnt-nrj,... +% "\setlength{\rightskip}{0pt plus 2cm}" write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +FUNCTION {process.entry}{call.type$} +ITERATE {process.entry} +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +FUNCTION {apresentacao} +{ "+---------------------------------------------------------+" + "| http://www.abntex.net.br/ |" + "| Em caso de dúvidas ou problemas com este estilo procure |" + abnt.alf + {"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *} + {"| Estilo bibliográfico abntex2-num.bst versão " abnt.bst.revision * " |" *} + if$ + "+---------------------------------------------------------+" + stack$ +} +EXECUTE{apresentacao} \ No newline at end of file diff --git a/macros/latex/contrib/unbtex/unbtexcite-pt.bst b/macros/latex/contrib/unbtex/unbtexcite-pt.bst new file mode 100644 index 0000000000..29a648b4e2 --- /dev/null +++ b/macros/latex/contrib/unbtex/unbtexcite-pt.bst @@ -0,0 +1,2154 @@ +%% +%% unbtexcite-pt.bst bibliography style file is adapted from abntex-alf.bst +%% to format bibliographic references in ABNT style for documents written in +%% Portuguese, following sugestions avaliable at +%% +%% https://github.com/abntex/abntex2/issues/97 +%% +%% abntex2-alf.bst, v-1.9.7 laurocesar +%% Copyright 2012-2018 by abnTeX2 group at http://www.abntex.net.br/ +%% +%% 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 the abnTeX2 team, led by Lauro +%% César Araujo. Further information are available on +%% http://www.abntex.net.br/ +%% + +ENTRY + { address author + booktitle booksubtitle + chapter conference-number conference-year conference-location + edition editor editortype + dimensions furtherresp + howpublished illustrated institution + isbn issn journal key month note marginnote number organization + org-short pages pagename + publisher reprinted-from reprinted-text school + series subtitle section title type url urlaccessdate + volume year year-presented + abnt-and-type + abnt-doi abnt-dont-use-etal + abnt-etal-cite abnt-etal-list abnt-etal-text abnt-emphasize abnt-experimental + abnt-full-initials + abnt-last-names abnt-ldots-type + abnt-missing-year abnt-cite-style abnt-no-etal-label abnt-note + abnt-repeated-author-omit abnt-repeated-title-omit + abnt-show-options abnt-refinfo abnt-thesis-year abnt-url-package + abnt-title-command + abnt-verbatim-entry + iso-abbreviation iso-author-punctuation iso-date-place + }{}{ label extra.label year.label} + +%revision string +STRINGS { abnt.bst.revision } + +%general purpose strings +STRINGS { r s t } + +%variables needed to implement the various abnt options +STRINGS {abnt.etal.text abnt.emphasize previous.author previous.title} +INTEGERS {abnt.alf abnt.cite.style abnt.doi + abnt.experimental abnt.etal.cite abnt.etal.list + abnt.full.initials + abnt.last.names abnt.ldots.type + abnt.missing.year + abnt.refinfo abnt.repeated.author.omit abnt.repeated.title.omit + abnt.show.options abnt.and.type + abnt.title.command + abnt.thesis.year + abnt.url.package abnt.verbatim.entry + iso.abbreviation iso.author.punctuation iso.date.place + repeated.author} + +%needed for title formatting +INTEGERS { title.lenght title.pos first.word no.bracket} +STRINGS { title.char} + +%needed for controlling the sentence position +INTEGERS {output.state before.all mid.sentence after.sentence after.block } + +%needed for url identification +INTEGERS {url.type} + +%static values for options +%values for abnt.doi +FUNCTION {abnt.doi.expand.to.url} {#0} %expands a doi address to its url correspondent +FUNCTION {abnt.doi.link} {#1} %links doi to its url correspondent +FUNCTION {abnt.doi.leave.as.is} {#2} %shows doi as is, external viewer will have + %to know what to do with a "doi:" document + +%values for url types +FUNCTION {unknown.url} {#0} +FUNCTION {http.url} {#1} +FUNCTION {file.url} {#2} +FUNCTION {ftp.url} {#3} +FUNCTION {doi.url} {#4} +FUNCTION {mailto.url} {#5} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +%output.nonnull decides what is written before the argument s, if a comma, period etc. +FUNCTION {output.nonnull} +{ 's := %the argument is written into s + output.state mid.sentence = + { ", " * write$ } %mid.sentence first write comma + { output.state after.block = + { add.period$ write$ newline$ } + { output.state before.all = 'write$ + { add.period$ " " * write$ } + if$} + if$ + mid.sentence 'output.state := } + if$ + s %now comes s +} +FUNCTION {output.nonnull.dash} +{ 's := %the argument is written into s + output.state mid.sentence = + { " --- " * write$ } %mid.sentence first write comma + { output.state after.block = + { add.period$ write$ newline$ write$} + { output.state before.all = 'write$ + { add.period$ " " * write$ } + if$} + if$ + mid.sentence 'output.state := } + if$ + s %now comes s +} +FUNCTION {output} %does nothing or calls output.nonull +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.dash} %does nothing or calls output.nonull +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.dash + if$ +} +FUNCTION {output.check} %like ouput, but complains if t empty +{ 't := + duplicate$ empty$ + { pop$ "campo " t * " vazio em " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} { " " * before.all 'output.state :=} + +FUNCTION {date.block} {new.block} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { abnt.emphasize "{" * swap$ * "}" * } + if$ +} + +FUNCTION {tie.or.space.prefix} %if text length less than 3 chars. uses a tie +{ duplicate$ text.length$ #5 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {no.space} { { "" } swap$ } + +FUNCTION {space.word} { " " swap$ * " " * } + +FUNCTION {bbl.and} +{ abnt.and.type #0 = {" e "} 'skip$ if$ + abnt.and.type #1 = {" \& "} 'skip$ if$} +FUNCTION {bbl.chapter} { "cap." } +FUNCTION {bbl.colon} {": "} +FUNCTION {bbl.editors} { "Ed." } +FUNCTION {bbl.editor} { "Ed." } +FUNCTION {bbl.edby} { "editado por" } +FUNCTION {bbl.edition} { "ed." } +FUNCTION {bbl.empty} {""} +FUNCTION {bbl.etal}{abnt.etal.text "" = {""} {" " abnt.etal.text *} if$} +FUNCTION {bbl.doi.url} {"http://dx.doi.org/"} +FUNCTION {bbl.in}{ "In" iso.abbreviation 'skip$ { bbl.colon *} if$} +FUNCTION {bbl.ldots} %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...} +{abnt.ldots.type + {abnt.ldots.type #1 = {"\ldots"} 'skip$ if$ + abnt.ldots.type #2 = {"$\ldots$"} 'skip$ if$ + abnt.ldots.type #3 = {"{...}"} 'skip$ if$} + {""} %for #0 use nothing +if$} +FUNCTION {bbl.master} { "Mestrado" } +FUNCTION {bbl.missing.year} +{abnt.missing.year + {"[\emph{s.d.}]"} %#1 + {""} %#0 + if$} +FUNCTION {bbl.monography} { "Monografia" } +FUNCTION {bbl.mthesis} { "Disserta\c{c}\~{a}o" } +FUNCTION {bbl.no.address} {"[\emph{S.l.}]"} +FUNCTION {bbl.no.address.no.publisher} {"[\emph{S.l.: s.n.}]"} +FUNCTION {bbl.no.publisher} {"[\emph{s.n.}]"} +FUNCTION {bbl.number} { iso.abbreviation {"no."} {"n."} if$ } +FUNCTION {bbl.nr} { "n." } +FUNCTION {bbl.of} { "de" } +FUNCTION {bbl.phd} { "Doutorado" } +FUNCTION {bbl.phdthesis} { "Tese" } +FUNCTION {bbl.pages} + {pagename empty$ + { "p." } + {pagename} + if$ + } +FUNCTION {bbl.page} { bbl.pages } +FUNCTION {bbl.reprint} {"Separata de"} +FUNCTION {bbl.semicolon} { "; "} +FUNCTION {bbl.same.field} {"\underline{\ \ \ \ \ \ \ \ }"} +FUNCTION {bbl.techrep} { "Rel. Tec." } +FUNCTION {bbl.url.accessdate} + {iso.abbreviation { "Cited "} {"Acesso em: "} if$} +FUNCTION {bbl.url.available} +{ iso.abbreviation {"Available from Internet: "} {"Dispon{\'\i}vel em: "} if$} +FUNCTION {bbl.void} {""} +FUNCTION {bbl.volume} { iso.abbreviation {"vol."} {"v."} if$ } + +MACRO {jan} {"jan."} +MACRO {feb} {"fev."} +MACRO {mar} {"mar."} +MACRO {apr} {"abr."} +MACRO {may} {"maio"} +MACRO {jun} {"jun."} +MACRO {jul} {"jul."} +MACRO {aug} {"ago."} +MACRO {sep} {"set."} +MACRO {oct} {"out."} +MACRO {nov} {"nov."} +MACRO {dec} {"dez."} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} +FUNCTION {str.to.int} +{ duplicate$ is.num + {chr.to.int$ #48 -} + 'skip$ + if$ +} +FUNCTION {bibinfo.check} %usage: field "field" bibinfo.check +{ swap$ duplicate$ missing$ + {pop$ pop$ ""} + { duplicate$ empty$ + {swap$ pop$} + {swap$ pop$} + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + {swap$ "faltando " swap$ * " em " * cite$ * warning$ pop$ ""} + { duplicate$ empty$ + {swap$ "vazio " swap$ * " em " * cite$ * warning$} + {swap$ pop$} + if$ + } + if$ +} + +FUNCTION {write.field.verbatim} +{ +duplicate$ missing$ + {pop$ pop$} + { + s text.length$ #0 > + {s "," * newline$ write$ "" 's :=} + 'skip$ + if$ + swap$ + "={" * swap$ * "}" * + s swap$ * 's := + } +if$ +} + +FUNCTION {write.entry.verbatim1} +{ + "address" address write.field.verbatim + "author" author write.field.verbatim + "booktitle" booktitle write.field.verbatim + "booksubtitle" booksubtitle write.field.verbatim + "chapter" chapter write.field.verbatim + "conference-number" conference-number write.field.verbatim + "conference-year" conference-year write.field.verbatim + "conference-location" conference-location write.field.verbatim + "edition" edition write.field.verbatim + "editor" editor write.field.verbatim + "editortype" editortype write.field.verbatim + "dimensions" dimensions write.field.verbatim + "furtherresp" furtherresp write.field.verbatim + "howpublished" howpublished write.field.verbatim + "illustrated" illustrated write.field.verbatim + "institution" institution write.field.verbatim + "isbn" isbn write.field.verbatim + "issn" issn write.field.verbatim + "journal" journal write.field.verbatim +} +FUNCTION {write.entry.verbatim2} +{ + "key" key write.field.verbatim + "month" month write.field.verbatim + "note" note write.field.verbatim + "marginnote" marginnote write.field.verbatim + "number" number write.field.verbatim + "organization" organization write.field.verbatim + "org-short" org-short write.field.verbatim + "pages" pages write.field.verbatim + "pagename" pagename write.field.verbatim + "publisher" publisher write.field.verbatim + "reprinted-from" reprinted-from write.field.verbatim + "reprinted-text" reprinted-text write.field.verbatim + "school" school write.field.verbatim + "series" series write.field.verbatim + "subtitle" subtitle write.field.verbatim + "section" section write.field.verbatim + "title" title write.field.verbatim + "type" type write.field.verbatim +} +FUNCTION {write.entry.verbatim3} +{ + "url" url write.field.verbatim + "urlaccessdate" urlaccessdate write.field.verbatim + "volume" volume write.field.verbatim + "year" year write.field.verbatim + "abnt-emphasize" abnt-emphasize write.field.verbatim + "abnt-experimental" abnt-experimental write.field.verbatim + "abnt-doi" abnt-doi write.field.verbatim + "abnt-dont-use-etal" abnt-dont-use-etal write.field.verbatim + "abnt-full-initials" abnt-full-initials write.field.verbatim + "abnt-ldots-type" abnt-ldots-type write.field.verbatim + "abnt-missing-year" abnt-missing-year write.field.verbatim + "abnt-cite-style" abnt-cite-style write.field.verbatim + "abnt-no-etal-label" abnt-no-etal-label write.field.verbatim + %abnt-note + "abnt-repeated-author-omit" abnt-repeated-author-omit write.field.verbatim + "abnt-repeated-title-omit" abnt-repeated-title-omit write.field.verbatim + "abnt-show-options" abnt-show-options write.field.verbatim + "abnt-refinfo" abnt-refinfo write.field.verbatim + "abnt-thesis-year" abnt-thesis-year write.field.verbatim + "abnt-title-command" abnt-title-command write.field.verbatim + "abnt-url-package" abnt-url-package write.field.verbatim + "abnt-verbatim-entry" abnt-verbatim-entry write.field.verbatim +} + +FUNCTION {write.entry.verbatim} +{"" 's := "" 't := + abnt.verbatim.entry + {"{\footnotesize\begin{verbatim}" newline$ write$ + "@" type$ * "{" * cite$ * 's := + write.entry.verbatim1 + write.entry.verbatim2 + write.entry.verbatim3 + s "" = {"}"} {s "}" *} if$ + newline$ write$ + "\end{verbatim}}" newline$ write$} + {newline$} +if$} + +STRINGS { bibinfo} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {get.person} {"{vv }{ll}{, jj}{, ff}" format.name$} +FUNCTION {get.last.name} {#1 "{ll}" format.name$} +FUNCTION {get.first.name} {#1 "{ff}" format.name$} +FUNCTION {get.von} {#1 "{vv}" format.name$} +FUNCTION {get.jr} {#1 "{jj}" format.name$} +FUNCTION {is.composed.von} + {get.person + get.von duplicate$ empty$ {pop$ #0} + {duplicate$ + get.first.name empty$ not + swap$ get.last.name empty$ not and + } if$ + } + +FUNCTION {recompose.name} + {get.person duplicate$ duplicate$ duplicate$ + get.von #1 "{ll }" format.name$ swap$ + get.last.name * + swap$ #1 "{, ff}" format.name$ * + swap$ get.von #1 "{ ff}" format.name$ * + } + +FUNCTION {format.single.name} +{ +s nameptr get.person 'r := +abnt.last.names + {r #1 "{ll}{ jj}" format.name$ "u" change.case$ + abnt.full.initials + {r #1 "{, ff}{ vv}" format.name$ *} + {r #1 "{, f.}{ vv}" format.name$ *} + if$} + {%r #1 is.composed.von {r #1 recompose.name 'r :=} 'skip$ if$ + r #1 "{ll}" format.name$ + #1 "{ll}" format.name$ + r #1 "{ jj}" format.name$ * "u" change.case$ + abnt.full.initials + {r #1 "{, ff}{ vv}" format.name$ * + r #1 "{ll}" format.name$ + #1 "{ ff}{ vv}" format.name$ *} + {iso.author.punctuation + {r #1 "{, f{}}{ vv}" format.name$ *} + {r #1 "{, f.}{ vv}" format.name$ *} if$ + r #1 "{ll}" format.name$ + #1 "{ f.}{ vv}" format.name$ *} + if$} + +if$ +} +FUNCTION {format.names} +{ 'bibinfo := duplicate$ empty$ 'skip$ + {'s := + "" 't := + #1 'nameptr := s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { format.single.name + bibinfo bibinfo.check + 't := + nameptr #1 > + {nameptr #1 #1 + = numnames abnt.etal.list > and + {abnt.etal.list {"others" 't := #1 'namesleft :=} 'skip$ if$ } + 'skip$ + if$ + namesleft #1 > + { "; " * t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { " \emph{et al.}" *} + { "; " * t *} + if$ } + if$ } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := } + while$ + } if$ +} + +%from plain.bst +FUNCTION {format.names.plain} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #20 > + { "," * } + 'skip$ + if$ + t "others" = + { " \emph{et al.}" * } + { bbl.and * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} {format.names} + +FUNCTION {format.authors} +{ +author "author" format.names +} + +FUNCTION {format.authors.plain} +{ +author format.names.plain +} + +FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.book.pages} +{ pages "pages" bibinfo.check duplicate$ empty$ + 'skip$ + { "~" * bbl.pages * } + if$ +} +FUNCTION {format.dimensions} +{ dimensions empty$ + 'skip$ + { dimensions output} + if$ +} +FUNCTION {format.furtherresp} +{ furtherresp empty$ + 'skip$ + { furtherresp output} + if$ +} +FUNCTION {format.illustrated} +{ illustrated missing$ + 'skip$ + {illustrated empty$ + {"il." output} + {illustrated output} + if$} + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check duplicate$ empty$ + 'skip$ + {new.block "ISBN " swap$ *} + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + {new.block "ISSN " swap$ *} + if$ +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check } + if$ +} + +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ } + if$ + howpublished #2 global.max$ substring$ * "howpublished" bibinfo.check } + if$ +} + +%ABNT styles require that the title acts as an author if +%typical author fields are absent. In this case the first +%word is uppercase. Our main problem is to establish what +%the first word actually is since portuguese uses accents. +%For example: Fun{\c c}\ão (Função) is a whole word but contains a +%space, but if we write Fun\c{c}\ão \c is converted to uppercase... +%You get the problem, don't you? +FUNCTION {format.title.as.author} +{ 's := %holds the title + #1 'title.pos := %our position in the title + #1 'first.word := %boolean, true if we already have the first word + #1 'no.bracket := %boolean, false if we are inside a {} + "" 't := %holds the first title.pos characters of the title + {first.word} + {s title.pos #1 substring$ 'title.char := + %checks if the character is a { + title.char "{" = {#0 'no.bracket :=} 'skip$ if$ + %if we are in a bracket + no.bracket 'skip$ {title.char "}" = {#1 'no.bracket :=} 'skip$ if$} if$ + type$ "journalpart" = + {title.char "." = title.char ":" = or title.char "!" = or + title.char "," = or title.char ";" = or title.char "?" = or} + {title.char " " =} + if$ s t = or no.bracket and + {#0 'first.word := + t title.char * "u" change.case$ + title.pos #1 + 'title.pos := + s title.pos global.max$ substring$ * 's :=} + {title.pos #1 + 'title.pos := t title.char * 't :=} + if$ + } + while$ +s +} + +%compares current title with the title of the previous entry +FUNCTION {compare.title} +{abnt.repeated.title.omit + {duplicate$ "" = 'skip$ + {duplicate$ previous.title = repeated.author and + {duplicate$ 'previous.title := pop$ bbl.same.field} + {duplicate$ 'previous.title :=} + if$} + if$} + 'skip$ + if$ +} + +FUNCTION {apply.title.command} +{abnt.title.command + {duplicate$ empty$ 'skip$ + {"\bibtextitlecommand{" type$ * "}{" * swap$ * "}" *} + if$} + 'skip$ if$ +} + +FUNCTION {format.title} +{author empty$ editor empty$ and organization empty$ and + {title format.title.as.author} + {title duplicate$ empty$ {pop$ ""} {"t" change.case$} if$} + if$ + subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$ + apply.title.command + compare.title +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%FUNCTION {word.in} { bbl.in " " * } +FUNCTION {word.in} {"\emph{In}: "} + +FUNCTION {format.month} +{ month empty$ 'skip$ + {month "month" bibinfo.check} + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { bbl.missing.year } + { "existe o campo month (mês) mas não o campo year (ano) em " cite$ * warning$ month} + if$} + { month empty$ + { year n.dashify} + { month " " * year * } + if$} + if$ +} +FUNCTION {format.btitle} +{author empty$ editor empty$ and organization empty$ and + {title format.title.as.author "title" bibinfo.check duplicate$ empty$ 'skip$ {} if$ + subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$} + {title "title" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$ + subtitle empty$ 'skip$ {subtitle ": " swap$ * "t" change.case$ *} if$} +if$ +apply.title.command +compare.title +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "não posso usar ambos " swap$ * " os campos em " * cite$ * warning$ } + if$ +} + +FUNCTION {format.volume} %leaves formatted or empty volume on the stack +{volume duplicate$ empty$ + 'skip$ + {volume #1 #1 substring$ is.num + {bbl.volume swap$ tie.or.space.prefix * *} + 'skip$ + if$} + if$ +} + +FUNCTION {format.number} %leaves formatted or empty number on the stack +{ number duplicate$ empty$ + 'skip$ + {bbl.number swap$ tie.or.space.prefix * *} + if$ +} + +FUNCTION {format.patent.number} +{ number +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { format.volume + number empty$ 'skip$ {output format.number} if$ + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + } + if$ +} + +FUNCTION {format.bvolume.if.no.series} +{ series empty$ + { format.bvolume } + { "" } + if$ +} + +FUNCTION {format.number.or.volume} +{number empty$ + {format.volume} + {number} %we use the pure number here without leading "n." + if$ +} + +FUNCTION {format.volume.and.number} +{format.volume output + format.number +} + +FUNCTION {format.volume.number.series} +{ number empty$ volume empty$ and + { series empty$ + { "" } + {" (" series "series" bibinfo.check * ")" *} + if$} + { series empty$ + {""} %{ format.number.or.volume } + { " (" series "series" bibinfo.check * ", " * + format.number.or.volume * ")" * } + if$ } + if$ +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + {output.state mid.sentence = { "l" } { "t" } if$ change.case$ + "edition" bibinfo.check + edition #1 #1 substring$ is.num {". " * bbl.edition * } 'skip$ if$} + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { n.dashify bbl.pages swap$} + { bbl.page swap$ } + if$ + tie.or.space.prefix "pages" bibinfo.check * * } + if$ +} +FUNCTION {format.journal.pages} +{ pages empty$ {""} + { pages n.dashify bbl.pages + swap$ tie.or.space.prefix "pages" bibinfo.check * *} + if$ +} + +FUNCTION {get.url.type} +{s #1 #5 substring$ "http:" = {http.url} + {s #1 #6 substring$ "https:" = {http.url} + {s #1 #5 substring$ "file:" = {file.url} + {s #1 #4 substring$ "ftp:" = {ftp.url} + {s #1 #4 substring$ "doi:" = {doi.url} + {s #1 #7 substring$ "mailto:" = {mailto.url} {unknown.url} if$} + if$} + if$} + if$} + if$} + if$ + 'url.type := +} + +FUNCTION {expand.doi} +{s +url.type doi.url = + {#5 global.max$ substring$ bbl.doi.url swap$ *} + 'skip$ if$ +} + +INTEGERS {url.pos url.length} +FUNCTION {filter.url.tex} +{s text.length$ #1 + 'url.length := + #1 'url.pos := "" 't := + {url.pos url.length <} + {s url.pos #1 substring$ + duplicate$ "_" = {pop$ "\underline{\ }" } 'skip$ if$ + duplicate$ "%" = {pop$ "\%" } 'skip$ if$ + duplicate$ "&" = {pop$ "\&" } 'skip$ if$ + duplicate$ "~" = {pop$ "\~{}" } 'skip$ if$ + duplicate$ "/" = {pop$ "\-/" } 'skip$ if$ + duplicate$ "." = {pop$ "\-." } 'skip$ if$ + duplicate$ "\" = {pop$ "{\textbackslash}" } 'skip$ if$ + duplicate$ "#" = {pop$ "\#" } 'skip$ if$ + duplicate$ "_" = {pop$ "\_" } 'skip$ if$ + t swap$ * 't := + url.pos #1 + 'url.pos := + } + while$ +t +} +FUNCTION {filter.url.html} +{s text.length$ #1 + 'url.length := + #1 'url.pos := "" 't := + {url.pos url.length <} + {s url.pos #1 substring$ + duplicate$ "%" = {pop$ "\%" } 'skip$ if$ + duplicate$ "#" = {pop$ "\#" } 'skip$ if$ + duplicate$ "_" = {pop$ "\_" } 'skip$ if$ + t swap$ * 't := + url.pos #1 + 'url.pos := + } + while$ +t +} + +FUNCTION {compose.url} +{'s := + get.url.type + bbl.url.available + abnt.url.package #0 = + { "$<$" * + abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$ + * "$>$" *} 'skip$ if$ + abnt.url.package #1 = + { "\url{" * filter.url.html * "}" *} 'skip$ if$ + abnt.url.package #2 = + {url.type http.url = + {"\htmladdnormallink{$<$" * filter.url.tex * "$>$}{" * filter.url.html * "}" *} + 'skip$ if$ + url.type doi.url = url.type ftp.url = or url.type mailto.url = or + {"\htmladdnormallink{$<$" * + abnt.doi abnt.doi.expand.to.url = 'expand.doi {s} if$ + * "$>$}{" * + abnt.doi abnt.doi.leave.as.is = {s} 'expand.doi if$ + * "}" * } + 'skip$ if$ + url.type unknown.url = + {"$<$" * filter.url.tex * "$>$" *} + 'skip$ if$} 'skip$ if$ +} +FUNCTION {format.url} +{ url empty$ 'skip$ + {url compose.url output new.sentence } + if$ + urlaccessdate duplicate$ empty$ 'skip$ + { bbl.url.accessdate swap$ *} + if$ + "urlaccessdate" bibinfo.check output new.sentence +} + +FUNCTION {format.conference.info} +{ conference-number empty$ + 'skip$ + {conference-number "." * output} + if$ + conference-year empty$ + 'skip$ + {conference-year output} + if$ + conference-location empty$ + 'skip$ + {conference-location output} + if$ + new.sentence +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check } + if$ + chapter tie.or.space.prefix "chapter" bibinfo.check * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ } + if$ +} + +FUNCTION {format.booktitle} +{author empty$ editor empty$ and organization empty$ and + {booktitle format.title.as.author "booktitle" bibinfo.check duplicate$ empty$ 'skip$ {} if$ + booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ * + apply.title.command} if$} + {booktitle "booktitle" bibinfo.check emphasize duplicate$ empty$ 'skip$ {} if$ + %{booktitle "booktitle" bibinfo.check "u" change.case$ duplicate$ empty$ 'skip$ {} if$ + booksubtitle empty$ 'skip$ {booksubtitle ": " swap$ * "t" change.case$ * + apply.title.command} if$} +if$ +} +FUNCTION {format.editors} +{ editor empty$ + {"inbook" type$ = 'bbl.same.field 'skip$ if$} + {author empty$ + {editor "editor" format.names " (" * + editortype empty$ {bbl.editor} {editortype} if$ + ")" * * } + {"inbook" type$ = + {bbl.same.field } + {editor "editor" format.names " (" * + editortype empty$ {bbl.editor} {editortype} if$ + ")" * *} + if$} + if$} + if$ +} +FUNCTION {format.in.ed.booktitle} +{ editor empty$ + {organization empty$ not author empty$ not and %if one of two not empty + {word.in organization "u" change.case$ * output + format.conference.info + booktitle empty$ {""} {new.sentence format.booktitle} if$} + {word.in + organization empty$ author empty$ and 'skip$ + {"inbook" type$ = {bbl.same.field * output new.sentence ""} + 'skip$ if$ } if$ + booktitle empty$ 'skip$ {format.booktitle *} if$} + if$} + {word.in format.editors * output + booktitle empty$ {""} {new.sentence format.booktitle} if$} + if$ + output + new.sentence +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "todos os campos relevantes estão vazios ou faltando em " cite$ * warning$ } + 'skip$ + if$ +} +FUNCTION {format.type} +{ type "type" bibinfo.check + duplicate$ empty$ 'skip$ + {new.block "" swap$ * } + if$ +} + +FUNCTION {format.year} +{year empty$ + { "campo year vazio ou faltando em " cite$ * + abnt.missing.year {" (vou colocar [s.d.])" *} 'skip$ if$ warning$ + abnt.missing.year {", " } {""} if$ bbl.missing.year *} + {year n.dashify "year" bibinfo.check} +if$ +} + +FUNCTION {format.year.presented} +{year-presented empty$ + {""} + {year-presented n.dashify} +if$ +} + +FUNCTION {format.field.address} +{ 't := + address empty$ organization empty$ and url empty$ and t empty$ and + {bbl.no.address.no.publisher} + {address empty$ + %if an url is present we don't give a missing address "[s.l.]" notice + {url empty$ {bbl.no.address ": "} {"" ""} if$} + {address ": "} + if$ + t empty$ + {%if an organization is present then it is OK not to have a publisher + organization empty$ {* bbl.no.publisher * } 'pop$ if$} + {* t * } + if$} + if$ +} + +FUNCTION {format.address} +{address empty$ + { bbl.no.address} + { address} + if$ +} + +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.check format.field.address} + +FUNCTION {format.publisher.address.relax} +{publisher empty$ address empty$ and {""} + {publisher "publisher" bibinfo.check format.field.address} +if$} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.field.address} + +%retains current authorship for future use +FUNCTION {compare.authorship} +{abnt.repeated.author.omit + {duplicate$ "" = 'skip$ + {duplicate$ previous.author = + {duplicate$ 'previous.author := + pop$ bbl.same.field + #1 'repeated.author :=} + {duplicate$ 'previous.author := + #0 'repeated.author :=} + if$} + if$} + 'skip$ + if$ +} + +FUNCTION {format.author.or.organization} +{ author empty$ + { organization empty$ 'skip$ + { organization "u" change.case$ "organization" bibinfo.check output} + if$} + { format.authors output.nonnull } + if$ + compare.authorship +} + +FUNCTION {format.editor.or.organization} +{ editor empty$ + { organization empty$ 'skip$ + { organization "u" change.case$ "organization" bibinfo.check output} + if$} + { format.editors output.nonnull } + if$ + compare.authorship +} + +FUNCTION {format.author.or.editor.or.organization} +{ author empty$ + { editor empty$ + { organization empty$ + 'skip$ + { organization "u" change.case$ "organization" bibinfo.check output} + if$} + { format.editors output.nonnull } + if$} + { format.authors output.nonnull } + if$ + compare.authorship +} + +FUNCTION {format.reprint} +{ reprinted-text missing$ + {""} + {reprinted-text empty$ + {bbl.reprint} {reprinted-text} if$ + bbl.colon *} + if$ +} + +FUNCTION {format.journal} +{ + format.reprint + journal emphasize * +} + +%generates the first label in \abntrefinfo to be used with \citeonline +FUNCTION {format.names.for.label1} %abnt-alf only +{ 's := "" 't := + #1 'nameptr := s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + {abnt.last.names + {s nameptr "{ll}{ jj}" format.name$} + {s nameptr "{ll}" format.name$ #1 "{ll}" format.name$ + s nameptr "{ jj}" format.name$ *} + if$ + 't := + nameptr #1 > + {namesleft #1 > + { numnames abnt.etal.cite > abnt.etal.cite #0 = not and + {#0 'namesleft := abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {", " * t * } if$ } + { t "others" = + {abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {numnames nameptr = + {bbl.and * t *} + 'skip$ if$} + if$ + } + if$ } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := } + while$ +} + +%generates the second label in \abntrefinfo to be used with \cite +FUNCTION {format.names.for.label2} %abnt-alf only +{ 's := "" 't := + #1 'nameptr := s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + {abnt.last.names + {s nameptr "{ll}{ jj}" format.name$} + {s nameptr "{ll}" format.name$ #1 "{ll}" format.name$ + s nameptr "{ jj}" format.name$ *} + if$ + % Desabilita caixa alta nas citações do comando \cite ao logo do texto + %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ 't := + abnt.cite.style #0 = {} 'skip$ if$ 't := + nameptr #1 > + {namesleft #1 > + { numnames abnt.etal.cite > + {#0 'namesleft := abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {"; " * t * } if$ } + { t "OTHERS" = t "others" = or + {abnt.etal.cite {" \emph{et al.}" *} 'skip$ if$} + {numnames nameptr = { bbl.semicolon * t *} 'skip$ if$} + if$ + } + if$ } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := } + while$ +} + +FUNCTION {format.title.for.label} +{ 's := + #1 'title.pos := #1 'first.word := + "" 't := + {first.word} + {s title.pos #1 substring$ 'title.char := + title.char "." = title.char ":" = or title.char ";" = or + title.char "," = or title.char " " = or s t = or + {#0 'first.word := + title.pos #1 + 'title.pos :=} + {title.pos #1 + 'title.pos := t title.char * 't :=} + if$ + } + while$ +s t = %title equals first word, dont use bbl.ldots + {t "}{" * t + %abnt.cite.style #0 = {"u" change.case$ * } 'skip$ if$} + abnt.cite.style #0 = { * } 'skip$ if$} + {t bbl.ldots * "}{" * t + %abnt.cite.style #0 = {"u" change.case$} 'skip$ if$ * bbl.ldots *} + abnt.cite.style #0 = {} 'skip$ if$ * bbl.ldots *} +if$ +} + +%cvs keys have the general form $key: value $ +INTEGERS {key.pos value.pos} +FUNCTION {extract.cvs.key} %we borrow the functionality of format.title.for.label +{ 's := %holds the entire cvs string + #1 'key.pos := + #0 'value.pos := %0= between first $ and :, 1=between : and second $, 2= at the end + "" 't := %holds the resulting value + {value.pos #0 = value.pos #1 = or} + { s key.pos #1 substring$ 'title.char := + value.pos #0 = + { title.char ":" = {#1 'value.pos := key.pos #1 + 'key.pos :=} 'skip$ if$} + { title.char "$" = + {#2 'value.pos :=} + {t title.char * 't :=} + if$} + if$ + key.pos #1 + 'key.pos := + } + while$ + t +} + +%generates and extended label of type {Author}{AUTHOR}{YEAR} +%for abnt.cite.style=1 they will be of type {Author}{Author}{YEAR} +%final result is placed into variable label +FUNCTION {calc.extended.label} +{ "{" + author empty$ not + {author format.names.for.label1 * "}{" * author format.names.for.label2 *} + {editor empty$ not + {editor format.names.for.label1 * "}{" * editor format.names.for.label2 *} + {org-short empty$ not + %{org-short * "}{" * org-short "u" change.case$ *} + {org-short * "}{" * org-short *} + {organization empty$ not + %{organization * "}{" * organization "u" change.case$ *} + {organization * "}{" * organization *} + {title empty$ not + {title format.title.for.label *} + {"nada}{NADA" *} + if$} + if$} + if$} + if$} + if$ + "}{" * + year empty$ 'skip$ {year *} if$ + 'label := %place the stack into label + % final } will be placed in reverse.pass +} +%generates and simple label of type "Author YEAR" +%final result is placed onto the stack +FUNCTION {calc.simple.label} +{ author empty$ not + {author format.names.for.label1} + {editor empty$ not + {editor format.names.for.label1} + {organization empty$ not + {organization} + {title empty$ not + {title} + {""} + if$} + if$} + if$} + if$ + year empty$ 'skip$ {" " * year *} if$ +} + +FUNCTION {output.bibitem} +{ newline$ + abnt.alf + {"\bibitem[" write$ + calc.simple.label + write$ "]{"} + {"\bibitem{"} + if$ + write$ cite$ write$ "}" write$ newline$ + abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$ + "{" write$ + "" before.all 'output.state := +} +FUNCTION {output.hiddenbibitem} +{ newline$ + abnt.alf + {"\hiddenbibitem[" write$ + calc.simple.label + write$ "]{"} + {"\bibitem{"} + if$ + write$ cite$ write$ "}" write$ newline$ + abnt.refinfo #1 = {"\abntrefinfo" write$ label write$ newline$} 'skip$ if$ + "{" write$ + "" before.all 'output.state := +} +FUNCTION {fin.entry} +{ add.period$ write$ + reprinted-from empty$ 'skip$ + {" " reprinted-text empty$ + {bbl.reprint} {reprinted-text} if$ * bbl.colon * + "\abntreprintinfo{ " * reprinted-from * "}" * write$} + if$ + abnt-note empty$ 'skip$ + {"\footnote{" abnt-note * "}" * write$} if$ + "}" write$ + %newline$ + write.entry.verbatim +} + +FUNCTION { abnt.display.options} +{ 's := 't := + abnt.show.options #1 = % "warn" + {"opção " t * " passou para " * s * warning$ } 'skip$ if$ + + abnt.show.options #2 = % "list" + {"Op\c c\~ao selecionada {\tt " t * "=}\verb+" * s * "+" * output new.sentence } 'skip$ if$ +} + +FUNCTION { abnt-options1 } + { + abnt-show-options empty$ + 'skip$ + {abnt-show-options "no" = + {#0} {abnt-show-options "warn" = + {#1} {abnt-show-options "list" = + {#2 } {#0 } if$} if$} if$ + 'abnt.show.options :=} % #0 "no"; #1 "warn"; #2 "list" + if$ + + abnt.show.options #2 = + {output.bibitem "Mudan\c ca de estilo ap\'os este ponto com o comando \verb!\citeoption{" + cite$ * "}! " * + output new.sentence} 'skip$ if$ + + abnt-show-options empty$ + 'skip$ {"abnt-show-options" abnt-show-options abnt.display.options} if$ + + abnt-cite-style empty$ + 'skip$ + {abnt-cite-style "(AUTHOR, YEAR)" = + {#0 'abnt.cite.style :=} + {abnt-cite-style "(Author, YEAR)" = + {#1 'abnt.cite.style :=} + {"opção " abnt-cite-style * " desconhecida" * warning$} + if$} + if$ + "abnt-cite-style" abnt-cite-style abnt.display.options}if$ + + abnt-experimental empty$ + 'skip$ {abnt-experimental "yes" = 'abnt.experimental := + "abnt-experimental" abnt-experimental abnt.display.options} if$ + + abnt-emphasize duplicate$ empty$ + 'pop$ {'abnt.emphasize := + "abnt-emphasize" abnt.emphasize abnt.display.options + abnt-emphasize "\bf" = abnt-emphasize "\it" = or abnt-emphasize "\em" = or + abnt-emphasize "\bfseries" = or + {"não use " abnt-emphasize * " para abnt-emphasize em " * cite$ * + ", isto alterará TODO o texto. Use \textbf ou \emph. Veja a documentação abnt-bibtex-doc para mais detalhes." * warning$} + 'skip$ if$ + } if$ + + abnt-doi empty$ + 'skip$ + {abnt-doi "expand" = + {abnt.doi.expand.to.url 'abnt.doi :=} + {abnt-doi "link" = + {abnt.doi.link 'abnt.doi :=} + {abnt-doi "doi" = + {abnt.doi.leave.as.is 'abnt.doi :=} + {"opção " abnt-doi * " desconhecida" * warning$} + if$} + if$} + if$ + "abnt-doi" abnt-doi abnt.display.options}if$ + } +FUNCTION { abnt-options2 } + { + abnt-full-initials empty$ + 'skip$ {abnt-full-initials "yes" = 'abnt.full.initials := + "abnt-full-initials" abnt-full-initials abnt.display.options} if$ + + abnt-last-names empty$ + 'skip$ + {abnt-last-names "abnt" = {#0} + {abnt-last-names "bibtex" = {#1} {#0} if$} if$ + 'abnt.last.names := + "abnt-last-names" abnt-last-names abnt.display.options} + if$ + + abnt-ldots-type empty$ + 'skip$ + {abnt-ldots-type "none" = {#0} + {abnt-ldots-type "normal" = {#1} + {abnt-ldots-type "math" = {#2} + {abnt-ldots-type "text" = {#1} {#0} + if$} if$} if$} if$ + 'abnt.ldots.type := + "abnt-ldots-type" abnt-ldots-type abnt.display.options} + if$ + + abnt-missing-year empty$ + 'skip$ + {abnt-missing-year "void" = {#0} + {abnt-missing-year "sd" = {#1} {#0} if$} + if$ + 'abnt.missing.year := + "abnt-missing-year" abnt-missing-year abnt.display.options} + if$ + + abnt-and-type empty$ + 'skip$ {abnt-and-type "e" = + {#0} {abnt-and-type "&" = + {#1} {#0} if$} if$ + 'abnt.and.type := + "abnt-and-type" abnt-and-type abnt.display.options} + if$ + + abnt-thesis-year empty$ + 'skip$ {abnt-thesis-year "final" = + {#0} {abnt-thesis-year "title" = + {#1} {abnt-thesis-year "both" = + {#2} {#0} if$} if$} if$ + 'abnt.thesis.year := + "abnt-thesis-year" abnt-thesis-year abnt.display.options} + if$ + + abnt-refinfo empty$ + 'skip$ {abnt-refinfo "yes" = 'abnt.refinfo := + "abnt-refinfo" abnt-refinfo abnt.display.options} if$ +} +FUNCTION { abnt-options3 } + { + + abnt-dont-use-etal empty$ + 'skip$ {abnt-dont-use-etal "yes" = {#0 'abnt.etal.list :=} 'skip$ if$ + "Uso da opção abnt-dont-use-etal se tornou obsoleto, usamos abnt-etal-list." warning$ + "abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$ + + abnt-etal-cite empty$ + 'skip$ {abnt-etal-cite str.to.int 'abnt.etal.cite := + "abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$ + + abnt-etal-list empty$ + 'skip$ {abnt-etal-list str.to.int 'abnt.etal.list := + "abnt-etal-list" abnt.etal.list int.to.str$ abnt.display.options} if$ + + abnt-etal-text missing$ + 'skip$ {abnt-etal-text 'abnt.etal.text := + "abnt-etal-text" abnt.etal.text abnt.display.options} if$ + + abnt-no-etal-label empty$ + 'skip$ {abnt-no-etal-label "yes" = {#0 'abnt.etal.cite :=} 'skip$ if$ + "Uso da opção abnt-no-etal-label se tornou obsoleto, usamos abnt-etal-cite." warning$ + "abnt-etal-cite" abnt.etal.cite int.to.str$ abnt.display.options} if$ + + abnt-repeated-author-omit empty$ + 'skip$ {abnt-repeated-author-omit "yes" = + {#1 'abnt.repeated.author.omit :=} + {#0 'abnt.repeated.author.omit := "" 'previous.author :=} if$ + "abnt-repeated-author-omit" abnt-repeated-author-omit abnt.display.options} if$ + + abnt-repeated-title-omit empty$ 'skip$ + {abnt-repeated-title-omit "yes" = + {#1 'abnt.repeated.title.omit :=} + {#0 'abnt.repeated.title.omit := "" 'previous.title :=} if$ + "abnt-repeated-title-omit" abnt-repeated-title-omit abnt.display.options + abnt.repeated.author.omit not abnt.repeated.title.omit and + {"Use abnt-repeated-title-omit=yes junto com abnt-repeated-author-omit=yes" + warning$} 'skip$ if$} if$ + + abnt-title-command empty$ + 'skip$ {abnt-title-command "yes" = + {#1 'abnt.title.command :=} + {#0 'abnt.title.command :=} if$ + "abnt-title-command" abnt-title-command abnt.display.options} if$ + + abnt-url-package empty$ 'skip$ + {abnt-url-package "url" = + {#1 'abnt.url.package :=} + {abnt-url-package "hyperref" = {#2 'abnt.url.package :=} 'skip$ if$} + if$ + "abnt-url-package" abnt-url-package abnt.display.options} + if$ + + abnt-verbatim-entry empty$ + 'skip$ {abnt-verbatim-entry "yes" = 'abnt.verbatim.entry := + "abnt-verbatim-entry" abnt-verbatim-entry abnt.display.options} if$ + + abnt.show.options #2 = 'fin.entry 'skip$ if$ + } + +%we had to break this function in two parts because of the following message: +%Sorry---you've exceeded BibTeX's single function space 100 +%(That was a fatal error) +FUNCTION { iso-options1 } + { + iso-abbreviation empty$ + 'skip$ {iso-abbreviation "standard" = 'iso.abbreviation := + "iso-abbreviation" iso-abbreviation abnt.display.options} if$ + iso-author-punctuation empty$ + 'skip$ {iso-author-punctuation "void" = 'iso.author.punctuation := + "iso-author-punctuation" iso-author-punctuation abnt.display.options} if$ + iso-date-place empty$ + 'skip$ {iso-date-place "ISO" = 'iso.date.place := + "iso-date-place" iso-date-place abnt.display.options} if$ + } + +FUNCTION { abnt-options } + { + abnt-options1 + abnt-options2 + abnt-options3 + iso-options1 + } + +FUNCTION { iso-options } { abnt-options } + +FUNCTION { iso.year.label } +{ iso.date.place + { abnt.alf + {year.label output new.sentence} + 'skip$ if$} + 'skip$ if$} + +FUNCTION { iso.date } +{ iso.date.place + { abnt.alf + 'skip$ + {year output new.sentence} + if$} + 'skip$ if$} + +FUNCTION { non.iso.date } + {iso.date.place 'skip$ {format.date output} if$} + +FUNCTION {article} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.block + format.journal output + iso.date.place {format.year output} 'skip$ if$ + %iso.date.place {format.date output} 'skip$ if$ + %iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + % {format.year output new.sentence} if$ + section "section" bibinfo.check output.dash + publisher "publisher" bibinfo.check output + address "address" bibinfo.check output + format.volume output + format.number output + format.pages output + non.iso.date + format.issn output new.block + format.note output new.block + format.url + fin.entry +} +FUNCTION {book} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output new.sentence + format.btitle "title" output.check new.sentence + format.furtherresp new.sentence + format.edition output new.sentence + format.publisher.address output + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.volume output new.sentence + format.book.pages output + format.illustrated + format.dimensions new.sentence + format.howpublished output new.sentence + format.volume.number.series output new.sentence + format.note output + format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro + format.isbn output new.sentence + format.url + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output new.sentence + format.btitle "title" output.check new.sentence + format.edition output new.sentence + address "address" bibinfo.check output + format.bvolume output + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.book.pages output new.sentence + format.volume.number.series output new.sentence + format.note output + format.isbn output new.sentence + format.url + fin.entry +} + +FUNCTION {hidden} +{ output.hiddenbibitem + fin.entry} + +FUNCTION {inbook} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.block + format.in.ed.booktitle + format.furtherresp new.sentence + format.edition output new.sentence + format.publisher.address output + %format.year output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.bvolume.if.no.series output + format.volume.number.series output + format.chapter.pages output new.sentence + format.isbn output new.block + format.note output new.block + format.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.sentence + format.in.ed.booktitle + format.edition output new.sentence + format.publisher.address output + %format.year output + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output} if$ + format.volume.number.series output new.sentence + format.bvolume.if.no.series output + format.chapter.pages output new.sentence + format.isbn output new.block + format.note output new.block + format.url + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.author.or.organization new.sentence + iso.year.label + format.title "title" output.check new.sentence + format.in.ed.booktitle + format.publisher.address output + %format.year output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.bvolume.if.no.series output + format.volume.number.series output + format.pages output + format.isbn output + format.issn output new.sentence + format.note output new.sentence + format.url + fin.entry +} +FUNCTION {journalpart} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output new.sentence + format.btitle "title" output.check new.sentence + format.furtherresp new.sentence + format.edition output new.sentence + format.publisher.address output + format.volume output + format.number output + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.date output new.sentence} if$ + format.book.pages output + format.illustrated + format.dimensions new.sentence + format.note output + format.issn output %pode parecer curioso, mas revistas inteiras são tratadas como livro + format.isbn output new.sentence + format.url + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.btitle "title" output.check new.block + format.furtherresp new.sentence + format.edition output new.sentence + format.address output + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.bvolume.if.no.series output + format.book.pages output new.sentence + format.volume.number.series output new.sentence + format.note output new.sentence + format.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.type output + format.btitle output new.sentence + format.furtherresp new.sentence + format.publisher.address.relax output + %format.date output new.block + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.book.pages output new.sentence + format.illustrated + format.dimensions new.sentence + format.howpublished output new.block + format.volume.number.series output new.sentence + format.note output new.block + format.url + fin.entry + empty.misc.check +} + +FUNCTION {patent} +{ output.bibitem + format.editor.or.organization new.sentence + iso.year.label + format.authors.plain output new.sentence + format.btitle output new.sentence + format.furtherresp new.sentence + %format.date output new.block + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.patent.number output + format.howpublished output new.block + format.note output new.block + format.url + fin.entry + empty.misc.check +} + +FUNCTION {format.thesis.type} +{ type$ "phdthesis" = + {bbl.phdthesis} + {type$ "mastersthesis" = + {bbl.mthesis} + {type$ "monography" = + {bbl.monography} + {bbl.void} + if$} + if$} + if$ + type empty$ + {type missing$ + {type$ "phdthesis" = + { " (" bbl.phd * ")" *} + {type$ "mastersthesis" = { " (" bbl.master * ")" *} {pop$ ""} if$} + if$} + {""} + if$} + {type$ "thesis" = + {type} + {" (" type * ")" * "type" bibinfo.check} + if$} + if$ + * %joins first and second part of this function +} +FUNCTION {thesis} +{ output.bibitem + format.authors "author" output.check new.block + iso.year.label + format.btitle "title" output.check new.block + abnt.thesis.year #1 = abnt.thesis.year #2 = or + {format.date "year" output.check new.sentence} 'skip$ if$ + format.year.presented output new.sentence + format.book.pages output new.sentence + format.thesis.type output.nonnull + school "school" bibinfo.warn output.dash + address "address" bibinfo.check output + abnt.thesis.year #0 = abnt.thesis.year #2 = or + {format.date "year" output.check new.sentence} 'skip$ if$ + format.note output new.block + format.url + fin.entry +} + +FUNCTION {phdthesis} { thesis } +FUNCTION {mastersthesis} { thesis } +FUNCTION {monography} { thesis } + +FUNCTION {proceedings} +{ output.bibitem + iso.year.label + format.editor.or.organization + format.conference.info + format.btitle "title" output.check + format.bvolume output + format.volume.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { new.sentence format.publisher.address output format.year output} + if$ + } + { publisher empty$ + { new.sentence + format.organization.address output format.year output} + { new.sentence + organization "organization" bibinfo.check output + format.publisher.address output format.year output} + if$ } + if$ + new.sentence format.book.pages output new.sentence + format.isbn output + format.issn output new.block + format.note output new.block + format.url + fin.entry +} + +FUNCTION {techreport} {manual} + +FUNCTION {unpublished} +{ output.bibitem + format.author.or.editor.or.organization new.sentence + iso.year.label + format.title "title" output.check new.sentence + format.note "note" output.check new.sentence + %format.date output new.sentence + iso.date.place {abnt.alf 'skip$ {format.year output new.sentence} if$} + {format.year output new.sentence} if$ + format.url + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { format.single.name 't := + nameptr #1 > + { + nameptr #3 + #1 + = + numnames #3 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {any.sort} +{ author empty$ + { organization empty$ + { editor empty$ + { title empty$ + { key empty$ + { "para ordenar, precisa dos campos author, organization, editor, title ou key in " cite$ * warning$ ""} + { key sortify } + if$} + { title sortify} + if$} + { editor sort.format.names } + if$} + { organization sortify } + if$} + { author sort.format.names } +if$ +} + +FUNCTION {presort} +{ + any.sort + " " * year field.or.null sortify * " " * title field.or.null + sort.format.title * #1 entry.max$ substring$ + %for non-alpha style we drop a void sort.key such that SORT has no effect + abnt.alf 'skip$ {pop$ ""} if$ 'sort.key$ := + year empty$ {""} {year} if$ 'year.label := + calc.extended.label +} + +FUNCTION {set.default.abnt.variables} +{ %if you change abnt-num to abnt-alf by hand you need also to change + %the name of RCSfile by hand, otherwise cvs takes care of it. + % + "$RCSfile: unbtexcite-pt.bst,v $ " extract.cvs.key + % + "unbtexcite-pt.bst,v " = 'abnt.alf := % #1 para abnt-alf #0 para abnt-num + "$Revision: v-1.9.7 $" extract.cvs.key 'abnt.bst.revision := + #0 'abnt.and.type := % #0 "e"; #1 "&" + "\emph" 'abnt.emphasize := + #0 'abnt.cite.style := %default norm version for NBR10520 + %#0 \cite=(AUTHOR, YEAR) + %#1 \cite=(Author, YEAR) + #0 'abnt.experimental := + abnt.doi.expand.to.url 'abnt.doi := + #3 'abnt.etal.cite := + #3 'abnt.etal.list := + "et al." 'abnt.etal.text := + #0 'abnt.full.initials := + #0 'abnt.last.names := %#0 abnt-style, #1 bibtex-style + #1 'abnt.ldots.type := %#0 use nothing, #1 use \ldots, #2 use $\ldots$, 3# use {...} + #0 'abnt.missing.year := %#0 "void"; #1 "[s.d.]" + #0 'repeated.author := + #0 'abnt.repeated.author.omit := + #0 'abnt.repeated.title.omit := + #1 'abnt.refinfo := + #0 'abnt.show.options := % #0 "no"; #1 "warn"; #2 "list" + #0 'abnt.thesis.year := % #0 "final"; #1 "title"; #2 "both" + #0 'abnt.title.command := % #0 "no"; #1 "yes" + #0 'abnt.url.package := % #0 "none"'; #2 "url"; #2 "hyperref" + #0 'abnt.verbatim.entry := +} +FUNCTION {set.default.iso.variables} +{ #0 'iso.abbreviation := % #0 ABNT-style; #1 ISO-style + #0 'iso.author.punctuation := % #0 ABNT (Smith, A. B.); #1 ISO (Smith, AB) + #0 'iso.date.place := % #0 ABNT-sty; #1 ISO-style +} +EXECUTE {set.default.abnt.variables} +EXECUTE {set.default.iso.variables} +FUNCTION {process.early.abnt.options} +{%here we intercept all entries which need priority handling + %note: we cannot use type$ at this point + abnt-and-type missing$ + abnt-experimental missing$ and + abnt-etal-cite missing$ and + abnt-etal-text missing$ and + abnt-ldots-type missing$ and + abnt-cite-style missing$ and + abnt-no-etal-label missing$ and + abnt-title-command missing$ and + 'skip$ {call.type$} if$ +} +ITERATE {process.early.abnt.options} +FUNCTION {search.reprinted} +{ reprinted-from missing$ 'skip$ + {"\nocite{" reprinted-from * "}" * write$ newline$ + } + if$ +} +ITERATE {search.reprinted} +FUNCTION {abntreprintinfo} +{"\providecommand{\abntreprintinfo}[1]{%" write$ newline$ + " \citeonline{#1}}" write$ newline$} +EXECUTE {abntreprintinfo} +ITERATE {presort} +SORT +STRINGS { last.label next.extra} +INTEGERS { last.extra.num } +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + year.label extra.label * 'year.label := + extra.label 'next.extra := + label "}" * 'label := +} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {begin.bib} +{ + abnt.alf + {"\setlength{\labelsep}{0pt}" write$} + 'skip$ + if$ + "\begin{thebibliography}{}" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + abnt.refinfo #1 = + {"\providecommand{\abntrefinfo}[3]{}" write$ newline$} + 'skip$ if$ + "\providecommand{\abntbstabout}[1]{}" write$ newline$ + abnt.title.command + {"\providecommand{\bibtextitlecommand}[2]{#2}" write$ newline$} + 'skip$ if$ + "\abntbstabout{" abnt.bst.revision * "}" * write$ newline$ + %Se você não usa abntcite e precisa que a margem direita não + %seja justificada, descomente a linha seguinte + %alternativamente coloque \bibliography{abnt-nrj,... +% "\setlength{\rightskip}{0pt plus 2cm}" write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +FUNCTION {process.entry}{call.type$} +ITERATE {process.entry} +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +FUNCTION {apresentacao} +{ "+---------------------------------------------------------+" + "| http://www.abntex.net.br/ |" + "| Em caso de dúvidas ou problemas com este estilo procure |" + abnt.alf + {"| Estilo bibliográfico abntex2-alf.bst versão " abnt.bst.revision * " |" *} + {"| Estilo bibliográfico abntex2-num.bst versão " abnt.bst.revision * " |" *} + if$ + "+---------------------------------------------------------+" + stack$ +} +EXECUTE{apresentacao} \ No newline at end of file -- cgit v1.2.3