summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/fduthesis
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-09 21:17:26 +0000
committerKarl Berry <karl@freefriends.org>2018-04-09 21:17:26 +0000
commitc2963777bab7935e5a01b69f45bd913766ac922a (patch)
tree152c47e9e84e5c33e49ad7235c752db0ab5abea7 /Master/texmf-dist/tex/latex/fduthesis
parent6c211336f233c6fa76374d84bdec20e12ab498c9 (diff)
fduthesis (9apr18)
git-svn-id: svn://tug.org/texlive/trunk@47408 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fduthesis')
-rw-r--r--Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls1067
-rw-r--r--Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty2253
-rw-r--r--Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls1474
-rw-r--r--Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls1743
-rw-r--r--Master/texmf-dist/tex/latex/fduthesis/fduthesis.def132
5 files changed, 6669 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls b/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls
new file mode 100644
index 00000000000..ef43eb060e9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fduthesis/fdudoc.cls
@@ -0,0 +1,1067 @@
+%%
+%% This is file `fdudoc.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fduthesis.dtx (with options: `doc')
+%% fduthesis-doc.dtx (with options: `doc')
+%%
+%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c 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 Xiangdong Zeng.
+%%
+%% This work consists of the files fduthesis.dtx,
+%% fduthesis-doc.dtx,
+%% fduthesis-logo.dtx,
+%% fduthesis-template.tex,
+%% and the derived files fduthesis.ins,
+%% fduthesis.cls,
+%% fduthesis-en.cls,
+%% fduthesis.def,
+%% fdudoc.cls,
+%% fdulogo.sty,
+%% fdulogo-example.tex,
+%% fduthesis-cover.tex,
+%% fduthesis-en.tex,
+%% fduthesis.pdf,
+%% fduthesis-en.pdf,
+%% fduthesis-code.pdf,
+%% latexmkrc,
+%% latexmkrc-en,
+%% and README.md.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $
+ {Documentation class for fduthesis}
+\ProvidesExplClass{fdudoc}
+ {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+\ExplSyntaxOff
+\@namedef{ver@thumbpdf.sty}{9999/99/99}
+\PassOptionsToPackage{log-declarations = false}{xparse}
+\LoadClass[a4paper, full]{l3doc}
+\RequirePackage[UTF8, heading, sub3section, fontset = none]{ctex}
+\RequirePackage{graphicx}
+\RequirePackage{caption}
+\RequirePackage{geometry}
+\RequirePackage{listings}
+\RequirePackage{makecell}
+\RequirePackage[toc]{multitoc}
+\RequirePackage{siunitx}
+\RequirePackage{tabularx}
+\RequirePackage{threeparttable}
+\RequirePackage{unicode-math}
+\RequirePackage{xcolor}
+\RequirePackage{xcolor-material}
+\RequirePackage{zref-base}
+\def\macro@code{%
+ \topsep \MacrocodeTopsep
+ \@beginparpenalty \predisplaypenalty
+ \partopsep \z@skip
+ \trivlist \parskip \z@ \item[]%
+ \MacroFont
+ \leftskip\@totalleftmargin \advance\leftskip\MacroIndent
+ \rightskip\z@ \parindent\z@ \parfillskip\@flushglue
+ \blank@linefalse \def\par{\ifblank@line
+ \leavevmode\fi
+ \blank@linetrue\@@par
+ \penalty\interlinepenalty}
+ \obeylines
+ \let\do\do@noligs \verbatim@nolig@list
+ \let\do\@makeother \dospecials
+ \global\@newlistfalse
+ \global\@minipagefalse
+ \init@crossref}
+\ExplSyntaxOn
+\tl_new:N \l__fdudoc_tmpa_tl
+\tl_new:N \l__fdudoc_tmpb_tl
+\cs_new_protected:Npn \__fdudoc_patch_cmd:Nnn #1#2#3
+ {
+ \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_new_protected:Npn \__fdudoc_preto_cmd:Nn #1#2
+ {
+ \ctex_preto_cmd:NnnTF #1 { } {#2}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_new_protected:Npn \__fdudoc_appto_cmd:Nn #1#2
+ {
+ \ctex_appto_cmd:NnnTF #1 { } {#2}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_set_protected_nopar:Npn \xmacro@code
+ { \__fdudoc_marco_code:w }
+\cs_set_protected_nopar:Npn \sxmacro@code
+ {
+ \fontspec_print_visible_spaces:
+ \xmacro@code
+ }
+\cs_new_protected_nopar:Npn \__fdudoc_marco_code:w
+ {
+ \ifcodeline@index
+ \__fdudoc_marco_code_every_par:n { \__fdudoc_code_line_no: }
+ \else:
+ \__fdudoc_marco_code_every_par:n { }
+ \fi:
+ \__fdudoc_make_finish_tag:x { \@currenvir }
+ \__fdudoc_macro_code_start:w
+ }
+\cs_new_protected:Npn \__fdudoc_marco_code_every_par:n #1
+ {
+ \everypar
+ {
+ \everypar {#1}
+ \if@inlabel
+ \global \@inlabelfalse \@noparlistfalse
+ \llap { \box \@labels \hskip \leftskip }
+ \fi
+ #1
+ }
+ }
+\group_begin:
+ \int_set:Nn \tex_endlinechar:D { -1 }
+ \use:n
+ {
+ \char_set_catcode_active:n { 32 }
+ \tl_const:Nn \c__fdudoc_active_space_tl
+ }
+ { }
+\group_end:
+\group_begin:
+ \char_set_catcode_active:n { 13 }
+ \cs_new_protected:Npx \__fdudoc_make_finish_tag:n #1
+ {
+ \tl_set:Nn \exp_not:N \l__fdudoc_macro_code_finish_tl
+ {
+ \c_percent_str
+ \prg_replicate:nn { 4 }
+ { \exp_not:o { \c__fdudoc_active_space_tl } }
+ \exp_not:o { \active@escape@char } end
+ \c_left_brace_str #1 \c_right_brace_str
+ \exp_not:N ^^M
+ }
+ }
+ \cs_generate_variant:Nn \__fdudoc_make_finish_tag:n { x }
+ \cs_new_protected:Npn \__fdudoc_macro_code_start:w #1
+ {
+ \str_if_eq:nnTF {#1} { ^^M }
+ { \__fdudoc_macro_code_read_line:w }
+ { \__fdudoc_macro_code_read_line:w #1 }
+ }
+ \cs_new_protected:Npn \__fdudoc_macro_code_read_line:w #1 ^^M
+ {
+ \tl_set:Nn \l__fdudoc_macro_code_line_tl { #1 ^^M }
+ \tl_if_eq:NNTF
+ \l__fdudoc_macro_code_line_tl \l__fdudoc_macro_code_finish_tl
+ { \exp_args:Nx \end { \@currenvir } }
+ {
+ \__fdudoc_macro_code_process_line:
+ \__fdudoc_macro_code_read_line:w
+ }
+ }
+ \cs_new_protected:Npn \__fdudoc_swap_cr:
+ {
+ \exp_after:wN
+ \__fdudoc_swap_cr_aux:w \l__fdudoc_macro_code_line_tl
+ }
+ \cs_new_protected:Npn \__fdudoc_swap_cr_aux:w #1 ^^M
+ {
+ \group_insert_after:N ^^M
+ \tl_set:Nn \l__fdudoc_macro_code_line_tl {#1}
+ }
+ \tl_const:Nn \c__fdudoc_active_cr_tl { ^^M }
+\group_end:
+\tl_new:N \l__fdudoc_macro_code_line_tl
+\tl_new:N \l__fdudoc_macro_code_finish_tl
+\tl_new:N \g__fdudoc_macro_code_verbatim_stop_tl
+\cs_new_protected_nopar:Npn \__fdudoc_process_normal_line:
+ {
+ \str_case_x:nnF
+ { \str_head:N \l__fdudoc_macro_code_line_tl }
+ {
+ { \c_percent_str }
+ {
+ \__fdudoc_check_angle:x
+ { \tl_tail:N \l__fdudoc_macro_code_line_tl }
+ }
+ { \c_hash_str }
+ { \__fdudoc_output_comment_line: }
+ }
+ { \__fdudoc_output_line: }
+ }
+\cs_new_protected_nopar:Npn \__fdudoc_process_verbatim_line:
+ {
+ \tl_if_eq:NNTF \l__fdudoc_macro_code_line_tl
+ \g__fdudoc_macro_code_verbatim_stop_tl
+ {
+ \tl_gclear:N \g__fdudoc_macro_code_verbatim_stop_tl
+ \cs_gset_eq:NN \__fdudoc_macro_code_process_line:
+ \__fdudoc_process_normal_line:
+ \__fdudoc_output_module:nn
+ { \color { verb@guard } }
+ {
+ \__fdudoc_swap_cr:
+ \__fdudoc_module_pop:n { \l__fdudoc_macro_code_line_tl }
+ }
+ }
+ { \tl_use:N \l__fdudoc_macro_code_line_tl }
+ }
+\cs_new_eq:NN \__fdudoc_macro_code_process_line:
+ \__fdudoc_process_normal_line:
+\DeclareDocumentCommand \CheckModules { }
+ {
+ \cs_set_eq:NN \__fdudoc_macro_code_process_line:
+ \__fdudoc_process_normal_line:
+ }
+\DeclareDocumentCommand \DontCheckModules { }
+ {
+ \cs_set_eq:NN \__fdudoc_macro_code_process_line:
+ \__fdudoc_output_line:
+ }
+\cs_new_protected:Npn \__fdudoc_check_angle:n #1
+ {
+ \str_if_eq_x:nnTF { \str_head:n {#1} } { < }
+ { \__fdudoc_check_module:x { \tl_tail:n {#1} } }
+ { \__fdudoc_output_comment_line: }
+ }
+\cs_generate_variant:Nn \__fdudoc_check_angle:n { x }
+\cs_new_protected:Npn \__fdudoc_check_module:n #1
+ {
+ \str_case_x:nnF { \str_head:n {#1} }
+ {
+ { * } { \__fdudoc_module_star:w }
+ { / } { \__fdudoc_module_slash:w }
+ { @ } { \__fdudoc_module_at:w }
+ { < } { \__fdudoc_module_verb:w }
+ }
+ { \__fdudoc_module_pm:w }
+ #1 \q_stop
+ }
+\cs_generate_variant:Nn \__fdudoc_check_module:n { x }
+\group_begin:
+ \char_set_catcode_active:N \>
+ \cs_new_protected:Npn \__fdudoc_module_star:w #1 > #2 \q_stop
+ {
+ \tl_set:Nn \l__fdudoc_tmpa_tl {#2}
+ \tl_if_eq:NNTF \l__fdudoc_tmpa_tl \c__fdudoc_active_cr_tl
+ {
+ \__fdudoc_output_module:nn
+ { \__fdudoc_star_color: }
+ {
+ \__fdudoc_module_push:n
+ { \__fdudoc_module_angle:n {#1} }
+ }
+ }
+ {
+ \__fdudoc_output_module_left:nn
+ { \__fdudoc_star_color: }
+ {
+ \__fdudoc_module_push:n
+ { \__fdudoc_module_angle:n {#1} }
+ }
+ }
+ \__fdudoc_output_line:n {#2}
+ }
+ \cs_new_protected:Npn \__fdudoc_module_slash:w #1 > #2 \q_stop
+ {
+ \tl_set:Nn \l__fdudoc_tmpa_tl {#2}
+ \tl_if_eq:NNTF \l__fdudoc_tmpa_tl \c__fdudoc_active_cr_tl
+ {
+ \__fdudoc_output_module:nn
+ { \__fdudoc_slash_color: }
+ {
+ \__fdudoc_module_pop:n
+ { \__fdudoc_module_angle:n {#1} }
+ }
+ }
+ {
+ \__fdudoc_output_module_left:nn
+ { \__fdudoc_slash_color: }
+ {
+ \__fdudoc_module_pop:n
+ { \__fdudoc_module_angle:n {#1} }
+ }
+ }
+ \__fdudoc_output_line:n {#2}
+ }
+ \cs_new_protected:Npn \__fdudoc_module_at:w @ @ = #1 > #2 \q_stop
+ {
+ \__fdudoc_output_module:nn
+ { \color { at@guard } }
+ { \__fdudoc_module_angle:n { @ @ = #1 } }
+ \tl_gset:Nn \g__codedoc_module_name_tl {#1}
+ \__fdudoc_output_line:n {#2}
+ }
+ \cs_new_protected:Npn \__fdudoc_module_verb:w #1 \q_stop
+ {
+ \cs_gset_eq:NN \__fdudoc_macro_code_process_line:
+ \__fdudoc_process_verbatim_line:
+ \tl_gset:Nx \g__fdudoc_macro_code_verbatim_stop_tl
+ { \c_percent_str \tl_tail:n {#1} }
+ \__fdudoc_output_module:nn
+ { \color { verb@guard } }
+ {
+ \__fdudoc_swap_cr:
+ \__fdudoc_module_push:n { \l__fdudoc_macro_code_line_tl }
+ }
+ }
+ \cs_new_protected:Npn \__fdudoc_module_pm:w #1 > #2 \q_stop
+ {
+ \__fdudoc_output_module_left:nn
+ { \__fdudoc_pm_color: }
+ { \__fdudoc_module_angle:n {#1} }
+ \__fdudoc_output_line:n {#2}
+ }
+\group_end:
+\cs_new_protected:Npn \__fdudoc_output_line:n #1
+ {
+ \tl_set:Nn \l__fdudoc_macro_code_line_tl {#1}
+ \tl_if_eq:NNTF
+ \l__fdudoc_macro_code_line_tl \c__fdudoc_active_cr_tl
+ { \tl_use:N \l__fdudoc_macro_code_line_tl }
+ {
+ \str_if_eq_x:nnTF
+ { \str_head:N \l__fdudoc_macro_code_line_tl } { \c_percent_str }
+ { \__fdudoc_output_comment_line: } { \__fdudoc_output_line: }
+ }
+ }
+\cs_new_protected_nopar:Npn \__fdudoc_output_line:
+ {
+ \tex_noindent:D
+ \__fdudoc_replace_at_at:N \l__fdudoc_macro_code_line_tl
+ \tl_use:N \l__fdudoc_macro_code_line_tl
+ }
+\cs_new_protected:Npn \__fdudoc_output_comment_line:
+ {
+ \tex_noindent:D
+ \group_begin:
+ \__fdudoc_swap_cr:
+ \color { code@gray } \slshape \__fdudoc_output_line:
+ \group_end:
+ }
+\cs_new_protected:Npn \__fdudoc_replace_at_at:N #1
+ {
+ \tl_if_empty:NF \g__codedoc_module_name_tl
+ { \__fdudoc_replace_at_at_aux:No #1 \g__codedoc_module_name_tl }
+ }
+\cs_new_protected:Npn \__fdudoc_replace_at_at_aux:Nn #1#2
+ {
+ \tl_replace_all:Nnn #1 { _ @ @ } { _ _ #2 }
+ \tl_replace_all:Nnn #1 { @ @ } { _ _ #2 }
+ }
+\cs_generate_variant:Nn \__fdudoc_replace_at_at_aux:Nn { No }
+\cs_new_protected_nopar:Npn \__fdudoc_module_push:n
+ { \__fdudoc_module_push_aux:on { \int_use:N \c@HD@hypercount } }
+\cs_new_protected:Npn \__fdudoc_module_push_aux:nn #1
+ {
+ \seq_gpush:Nn \g__fdudoc_module_dest_seq {#1}
+ \hypersetup { hidelinks }
+ \exp_args:Nx \hdclindex
+ { \zref@extractdefault { HD.#1 } { guard@end } { 1 } } { }
+ }
+\cs_generate_variant:Nn \__fdudoc_module_push_aux:nn { on }
+\cs_new_protected_nopar:Npn \__fdudoc_module_pop:n
+ {
+ \seq_gpop:NNTF \g__fdudoc_module_dest_seq \l__fdudoc_tmpa_tl
+ { \__fdudoc_module_pop_aux:on { \l__fdudoc_tmpa_tl } }
+ { \BOOM \use:n }
+ }
+\cs_new_protected:Npn \__fdudoc_module_pop_aux:nn #1
+ {
+ \zref@labelbylist { HD.#1 } { fdudoc }
+ \hypersetup { hidelinks }
+ \hdclindex {#1} { }
+ }
+\cs_generate_variant:Nn \__fdudoc_module_pop_aux:nn { on }
+\seq_new:N \g__fdudoc_module_dest_seq
+\zref@newlist { fdudoc }
+\zref@newprop { guard@end } [ 1 ]
+ { \int_eval:n { \c@HD@hypercount - 1 } }
+\zref@addprop { fdudoc } { guard@end }
+\cs_set_protected:Npn \MacroFont
+ {
+ \linespread { 1.05 }
+ \small \ttfamily \mdseries \upshape
+ \__fdudoc_verb_addon:
+ }
+\cs_new_protected:Npn \__fdudoc_output_module:nn #1#2
+ {
+ \tex_noindent:D
+ \group_begin:
+ #1
+ \footnotesize \normalfont \sffamily #2
+ \group_end:
+ }
+\cs_new_protected:Npn \__fdudoc_output_module_left:nn #1#2
+ {
+ \tex_noindent:D
+ \hbox_overlap_left:n
+ {
+ \__fdudoc_output_module:nn {#1} {#2}
+ \skip_horizontal:n { \leftskip + \smallskipamount }
+ }
+ }
+\cs_new_protected_nopar:Npn \__fdudoc_star_color:
+ {
+ \seq_gpop:NNTF \g__fdudoc_star_color_seq \current@color
+ { \set@color }
+ { \__fdudoc_select_color: }
+ \seq_gpush:No \g__fdudoc_slash_color_seq { \current@color }
+ }
+\cs_new_protected_nopar:Npn \__fdudoc_slash_color:
+ {
+ \seq_gpop:NNTF \g__fdudoc_slash_color_seq \current@color
+ {
+ \set@color
+ \seq_gpush:No \g__fdudoc_star_color_seq { \current@color }
+ }
+ { \BOOM }
+ }
+\cs_new_protected_nopar:Npn \__fdudoc_pm_color:
+ {
+ \seq_get:NNTF \g__fdudoc_star_color_seq \current@color
+ { \set@color }
+ {
+ \__fdudoc_select_color:
+ \seq_gpush:No \g__fdudoc_star_color_seq { \current@color }
+ }
+ }
+\seq_new:N \g__fdudoc_star_color_seq
+\seq_new:N \g__fdudoc_slash_color_seq
+\cs_new_protected_nopar:Npn \__fdudoc_select_color:
+ { \color { guard@series!!+ } }
+\definecolorseries { guard@series }
+ { cmyk } { last } { blue } { purple }
+\resetcolorseries [ 3 ] { guard@series }
+\definecolor { verb@guard } { named } { MaterialLime600 }
+\definecolor { at@guard } { named } { MaterialPink }
+\definecolor { code@gray } { named } { MaterialGrey }
+\cs_new_protected:Npn \__fdudoc_module_angle:n #1
+ { \textlangle #1 \textrangle }
+\cs_new_protected_nopar:Npn \__fdudoc_code_line_no:
+ {
+ \int_gincr:N \c@CodelineNo
+ \hbox_overlap_left:n
+ {
+ \hbox_to_wd:nn
+ { \MacroIndent }
+ {
+ \HD@target
+ \tex_hss:D \__fdudoc_code_line_no_style:
+ \theCodelineNo \enspace
+ }
+ \tex_kern:D \@totalleftmargin
+ }
+ }
+\tl_set:Nn \theCodelineNo { \arabic { CodelineNo } }
+\cs_new_protected_nopar:Npn \__fdudoc_code_line_no_style:
+ { \color { code@gray } \normalfont \sffamily \tiny }
+\cs_set_protected:Npn \HD@SetMacroIndent #1
+ {
+ \group_begin:
+ \settowidth \MacroIndent
+ {
+ \__fdudoc_code_line_no_style:
+ \prg_replicate:nn { \tl_count:n {#1} } { 0 }
+ \enspace
+ }
+ \dim_gset_eq:NN \MacroIndent \MacroIndent
+ \group_end:
+ }
+\sys_if_engine_xetex:TF
+ {
+ \cs_set_eq:NN \__fdudoc_verb_addon: \xeCJKVerbAddon
+ \cs_set:Nn \__fdudoc_plain_punct_style:
+ { \xeCJKsetup { PunctStyle = plain } }
+ \cs_set:Nn \__fdudoc_disable_ecglue:
+ { \xeCJKsetup { CJKecglue } }
+ \__fdudoc_appto_cmd:Nn \meta@font@select
+ { \mode_if_inner:T { \__fdudoc_disable_ecglue: } }
+ }
+ {
+ \cs_set_eq:NN \__fdudoc_verb_addon: \prg_do_nothing:
+ \cs_set_eq:NN \__fdudoc_plain_punct_style: \prg_do_nothing:
+ \cs_set:Nn \__fdudoc_disable_ecglue:
+ { \ltjsetparameter { autoxspacing = false } }
+ \__fdudoc_appto_cmd:Nn \meta@font@select
+ { \__fdudoc_disable_ecglue: }
+ }
+\BeforeBeginEnvironment { function }
+ { \par \nointerlineskip }
+\AtEndEnvironment { function }
+ {
+ \par
+ \cs_gset:Nx \__fdudoc_fix_previous_depth:
+ { \prevdepth = \the \prevdepth \space }
+ }
+\AfterEndEnvironment { function }
+ { \__fdudoc_fix_previous_depth: }
+\AtBeginEnvironment { syntax }
+ {
+ \linespread { 1.2 }
+ \__fdudoc_plain_punct_style:
+ \__fdudoc_disable_ecglue:
+ }
+\AtBeginEnvironment { fdusyntax }
+ {
+ \cs_set:Npn \lparen { \textup { ( } }
+ \cs_set:Npn \rparen { \textup { ) } }
+ \char_set_catcode_active:N |
+ \char_set_catcode_active:N <
+ \char_set_catcode_active:N (
+ \char_set_active_eq:NN | \orbar
+ \char_set_active_eq:NN < \syntaxopt@aux
+ \char_set_active_eq:NN ( \defaultval@aux
+ }
+\cs_new_eq:NN \__fdudoc_ltx_changes:nnn \changes@
+\cs_set_protected:Npn \changes@ #1#2
+ {
+ \__fdudoc_save_version_date:nn {#1} {#2}
+ \__fdudoc_ltx_changes:nnn {#1} {#2}
+ }
+\prop_new:N \g__fdudoc_version_date_prop
+\cs_new_protected:Npn \__fdudoc_save_version_date:nn #1#2
+ {
+ \prop_get:NnNTF \g__fdudoc_version_date_prop
+ {#1} \l__fdudoc_tmpa_tl
+ {
+ \exp_after:wN
+ \__fdudoc_save_version_date_aux:nnnn \l__fdudoc_tmpa_tl
+ {#2} {#1}
+ }
+ { \__fdudoc_save_version_date_aux:nnn {#1} {#2} {#2} }
+ }
+\cs_new_protected:Npn \__fdudoc_save_version_date_aux:nnnn #1#2#3#4
+ {
+ \__fdudoc_if_date_later:nnTF {#1} {#3}
+ { \__fdudoc_save_version_date_aux:nnn {#4} {#3} {#2} }
+ {
+ \__fdudoc_if_date_later:nnT {#3} {#2}
+ { \__fdudoc_save_version_date_aux:nnn {#4} {#1} {#3} }
+ }
+ }
+\cs_new_protected:Npn \__fdudoc_save_version_date_aux:nnn #1#2#3
+ { \prop_gput:Nnn \g__fdudoc_version_date_prop {#1} { {#2} {#3} } }
+\prg_new_conditional:Npnn \__fdudoc_if_date_later:nn #1#2 { TF, T }
+ {
+ \if_int_compare:w
+ \__fdudoc_parse_date:w #1 / / / 0 \q_stop >
+ \__fdudoc_parse_date:w #2 / / / 0 \q_stop \exp_stop_f:
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
+\cs_new:Npn \__fdudoc_parse_date:w #1/#2/#3/ #4 \q_stop
+ { #1#2#3 }
+\cs_new_protected:Npn \CTEX@versionitem #1 \efill
+ {
+ \@idxitem
+ \prop_get:NnNTF \g__fdudoc_version_date_prop
+ {#1} \l__fdudoc_tmpa_tl
+ {
+ \exp_after:wN
+ \__fdudoc_print_version_date:nnn \l__fdudoc_tmpa_tl
+ {#1}
+ }
+ { \BOOM }
+ }
+\cs_new_protected:Npn \__fdudoc_print_version_date:nnn #1#2#3
+ {
+ \noindent
+ \Hy@raisedlink { \belowpdfbookmark {#3} { HD.#3 } }
+ \textbf {#3} \hfill
+ \hbox:n
+ {
+ \footnotesize
+ \str_if_eq:nnTF {#1} {#2}
+ { ( #1 ) } { ( #1 ~ -- ~ #2 ) }
+ }
+ \par \nopagebreak
+ }
+\ctex_patch_cmd:Nnn \HDorg@theglossary
+ { \let \item \@idxitem }
+ { \let \item \CTEX@versionitem }
+\ctex_patch_cmd:Nnn \@wrglossary
+ { hdpindex }
+ {
+ \ifnum \c@HD@hypercount = \z@
+ hdpindex
+ \else
+ hdclindex { \the \c@HD@hypercount }
+ \fi
+ }
+\ctex_patch_cmd:Nnn \@addtocurcol
+ { \vskip \intextsep }
+ {
+ \edef \save@first@penalty { \the \lastpenalty } \unpenalty
+ \ifnum \lastpenalty = \@M
+ \unpenalty
+ \else
+ \penalty \save@first@penalty \relax
+ \fi
+ \ifnum \outputpenalty < -\@Mii
+ \addvspace\intextsep
+ \vskip\parskip
+ \else
+ \addvspace\intextsep
+ \fi
+ }
+\ctex_patch_cmd:Nnn \@addtocurcol
+ {
+ \vskip \intextsep
+ \ifnum \outputpenalty < -\@Mii
+ \vskip -\parskip
+ \fi
+ }
+ {
+ \ifnum \outputpenalty < -\@Mii
+ \aftergroup \vskip \aftergroup \intextsep
+ \aftergroup \nointerlineskip
+ \else
+ \vskip \intextsep
+ \fi
+ }
+\ctex_patch_cmd:Nnn \@getpen { \@M } { \@Mi }
+\ctex_patch_cmd:Nnn \l@section { 2.5em } { 1.5em }
+\ctex_patch_cmd:Nnn \l@subsection { 2.5em } { 1.5em }
+\__fdudoc_preto_cmd:Nn \@thehead
+ { \cs_set_eq:cN { MakeUppercase \space } \@iden }
+\ctex_patch_cmd:Nnn \HDorg@thebibliography
+ { \section* } { \section }
+\cs_set_eq:NN \thebibliography \HDorg@thebibliography
+\__fdudoc_appto_cmd:Nn \GlossaryParms
+ {
+ \raggedcolumns
+ \cs_set_eq:NN \Hy@writebookmark \HDorg@writebookmark
+ \cs_set:Npn \@idxitem { \par \hangindent 2em }
+ \cs_set:Npn \subitem { \@idxitem \hspace* { 1em } }
+ \cs_set:Npn \subsubitem { \@idxitem \hspace* { 2em } }
+ }
+\ctex_patch_cmd:Nnn \HoLogo@LaTeXe
+ { \hbox { \HOLOGO@MathSetup 2 $ _{ \textstyle \varepsilon } $ } }
+ {
+ \hbox
+ {
+ \mathsurround 0pt \relax
+ 2
+ \if b \expandafter \@car \f@series \@nil
+ $ _{ \textstyle \symbf { \varepsilon } } $
+ \else
+ $ _{ \textstyle \varepsilon } $
+ \fi
+ }
+ }
+\ctex_patch_cmd:Nnn \SpecialMainEnvIndex
+ { (environment) } { ~ 环境 }
+\ctex_patch_cmd:Nnn \SpecialMainEnvIndex
+ { environments: } { 环境: }
+\ctex_patch_cmd:Nnn \HDorg@SpecialEnvIndex
+ { (environment) } { ~ 环境 }
+\ctex_patch_cmd:Nnn \HDorg@SpecialEnvIndex
+ { environments: } { 环境: }
+\cs_set_eq:NN \list \__codedoc_oldlist:nn
+\__fdudoc_patch_cmd:Nnn \__codedoc_function_descr_start:w
+ { \noindent }
+ { \skip_vertical:n { -\parskip } \noindent }
+\__fdudoc_preto_cmd:Nn \__codedoc_function_assemble:
+ {
+ \box_if_empty:NTF \g__codedoc_syntax_box
+ { \skip_zero:N \medskipamount }
+ { \skip_add:Nn \medskipamount { \parskip } }
+ }
+\__fdudoc_patch_cmd:Nnn \__codedoc_typeset_functions:
+ { \small \ttfamily } { \footnotesize \CodeFont }
+\__fdudoc_preto_cmd:Nn \__codedoc_typeset_functions:
+ { \MacroFont }
+\__fdudoc_patch_cmd:Nnn \__codedoc_macro_init:
+ { \hbox:n } { \MacroFont \hbox:n }
+\__fdudoc_patch_cmd:Nnn \__codedoc_macro_dump:
+ { \hbox_unpack_clear:N } { \MacroFont \hbox_unpack_clear:N }
+\cs_set_eq:NN \__codedoc_macro_end_style:n \use_none:n
+\cs_set_protected:Npn \__codedoc_typeset_TF:
+ {
+ \group_begin:
+ \exp_args:No \__codedoc_if_macro_internal:nT \l__codedoc_tmpa_tl
+ { \color [ gray ] { 0.5 } }
+ \itshape TF
+ \makebox [ 0 pt ] [ r ]
+ {
+ \color { red }
+ \underline { \phantom { \itshape TF } \kern -0.1 em }
+ }
+ \group_end:
+ }
+\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2
+ {
+ \vbox_set:Nn \l__codedoc_macro_box
+ {
+ \MacroFont
+ \vbox_unpack_clear:N \l__codedoc_macro_box
+ \hbox_set:Nn \l_tmpa_box
+ { \__codedoc_print_macroname:nN {#1} #2 }
+ \dim_set:Nn \l_tmpa_dim
+ { \marginparwidth - \labelsep - \marginparsep }
+ \dim_compare:nNnT { \box_wd:N \l_tmpa_box } > \l_tmpa_dim
+ {
+ \box_resize_to_wd_and_ht:Nnn \l_tmpa_box
+ { \l_tmpa_dim } { \box_ht:N \l_tmpa_box }
+ }
+ \hbox_overlap_left:n
+ {
+ \box_use:N \l_tmpa_box
+ \skip_horizontal:n { \marginparsep - \labelsep }
+ }
+ }
+ \int_incr:N \l__codedoc_macro_int
+ }
+\cs_set_protected:Npn \__codedoc_print_macroname:nN #1#2
+ {
+ \strut
+ \__codedoc_get_hyper_target:xN
+ {
+ \exp_not:n {#1}
+ \bool_if:NT #2 { \tl_to_str:n {TF} }
+ }
+ \l__codedoc_tmpa_tl
+ \cs_if_exist:cTF { r@ \l__codedoc_tmpa_tl }
+ { \exp_args:NNo \label@hyperref [ \l__codedoc_tmpa_tl ] }
+ { \use:n }
+ {
+ \tl_set:Nn \l__codedoc_tmpa_tl {#1}
+ \tl_replace_all:Non \l__codedoc_tmpa_tl
+ { \c_catcode_other_space_tl }
+ { \fontspec_visible_space: }
+ \__codedoc_macroname_prefix:o \l__codedoc_tmpa_tl
+ \__codedoc_macroname_suffix:N #2
+ }
+ }
+\cs_set_protected:Npn \__codedoc_special_index_module:nnnnN #1#2#3#4#5
+ {
+ \use:x
+ {
+ \exp_not:n { \__codedoc_special_index_aux:nnnnnnn {#1} {#2} }
+ \tl_if_empty:nTF {#3}
+ { { } { } { } { } }
+ {
+ \str_if_eq_x:nnTF {#3} { TeX }
+ {
+ { TeX~ and~ LaTeX2e }
+ { \string \TeX{}~ 和~ \string \LaTeXe{} }
+ }
+ { {#3} { \string \pkg {#3} } }
+ \bool_if:NTF #5
+ { { commands~ internal } { ~ 内部命令: } }
+ { { commands } { ~ 命令: } }
+ }
+ }
+ {#4}
+ }
+\cs_new_protected:Npn \__codedoc_special_index_aux:nnnnnnn #1#2#3#4#5#6#7
+ {
+ \tl_set:Nn \l__codedoc_index_escaped_key_tl {#1}
+ \__codedoc_quote_special_char:N \l__codedoc_index_escaped_key_tl
+ \__codedoc_special_index_set:Nn
+ \l__codedoc_index_escaped_macro_tl {#2}
+ \str_if_eq:onTF { \@currenvir } { macrocode }
+ { \codeline@wrindex }
+ {
+ \str_case:nnF {#7}
+ {
+ { main } { \codeline@wrindex }
+ { usage } { \index }
+ }
+ { \HD@target \index }
+ }
+ {
+ \tl_if_empty:nF { #3 #4 #5 #6 }
+ { #3 #5 \actualchar #4 #6 \levelchar }
+ \l__codedoc_index_escaped_key_tl
+ \actualchar
+ {
+ \token_to_str:N \verbatim@font \c_space_tl
+ \l__codedoc_index_escaped_macro_tl
+ }
+ \encapchar
+ hdclindex { \the \c@HD@hypercount } {#7}
+ }
+ }
+\DeclareDocumentCommand \StopSpecialIndexModule { }
+ {
+ \cs_set_eq:NN
+ \__codedoc_special_index_module:nnnnN \use_none:nnnnn
+ }
+\tl_map_inline:nn { \actualchar \encapchar \levelchar }
+ { \exp_args:Nx \DoNotIndex { \bslash \tl_to_str:N #1 } }
+\RenewDocumentCommand \meta { m }
+ {
+ \group_begin:
+ \sys_if_engine_xetex:T { \xeCJKsetup { CJKecglue = { } } }
+ \rmfamily \__codedoc_meta:n {#1}
+ \group_end:
+ }
+\msg_redirect_name:nnn { l3doc } { foreign-internal } { log }
+\msg_redirect_name:nnn { l3doc } { print-changes-howto } { log }
+\msg_redirect_name:nnn { l3doc } { print-index-howto } { log }
+\ExplSyntaxOff
+\AtBeginDocument{%
+ \addtocontents{toc}{\StopSpecialIndexModule}}
+\pdfstringdefDisableCommands{%
+ \let\path\meta
+ \let\opt\@firstofone
+ \let\kaishu\relax}
+\renewcommand\@makefntext[1]{\parindent 0em\noindent\@makefnmark~#1}
+\IndexPrologue{%
+ \section{\indexname}%
+ \textit{无衬线字体的数字表示对应索引项出现的页码;
+ 带下划线的数字表示定义对应索引项的代码行号;
+ 其他普通数字则表示使用对应索引项的代码行号.}}
+\def\IndexLayout{%
+ \newgeometry{%
+ left = 0.85 in,
+ right = 0.85 in,
+ top = 1.25 in,
+ bottom = 1.00 in}%
+ \setlength\IndexMin{0.5\textheight}%
+ \ctexset{section/numbering=false}%
+ \StopSpecialIndexModule}
+\def\indexname{代码索引}
+\def\usage#1{\textsf{#1}}
+\GlossaryPrologue{\section{\glossaryname}}
+\def\glossaryname{修订记录}
+\setmainfont{TeX Gyre Pagella}
+\setsansfont{TeX Gyre Heros}
+\setmathfont{TeX Gyre Pagella Math}
+\setCJKmainfont{FZShuSong-Z01}%
+ [
+ BoldFont = FZHei-B01,
+ ItalicFont = FZKai-Z03,
+ BoldItalicFont = FZKai-Z03
+ ]
+\setCJKsansfont{FZHei-B01}%
+ [
+ BoldFont = FZHei-B01,
+ ItalicFont = FZKai-Z03,
+ BoldItalicFont = FZKai-Z03
+ ]
+\setCJKmonofont{FZFangSong-Z02}%
+ [
+ BoldFont = FZHei-B01,
+ ItalicFont = FZKai-Z03,
+ BoldItalicFont = FZKai-Z03
+ ]
+\newCJKfontfamily\kaishu{FZKai-Z03}%
+ [BoldFont = *, ItalicFont = *, BoldItalicFont = *]
+\newCJKfontfamily\fangsong{FZFangSong-Z02}%
+ [BoldFont = *, ItalicFont = *, BoldItalicFont = *]
+\setmonofont{CMU Typewriter Text}%
+ [
+ UprightFont = * Light,
+ BoldFont = * Bold,
+ SlantedFont = * Light Oblique,
+ HyphenChar = None
+ ]
+\newfontfamily\fdudoc@code@font{Source Code Pro}%
+ [BoldFont = * Semibold]
+\newCJKfontfamily\fdudoc@cjk@code@font{Source Han Sans SC}%
+ [BoldFont = * Bold, AutoFakeSlant = 0.22]
+\newcommand*\CodeFont{\fdudoc@code@font\fdudoc@cjk@code@font}
+\ctexset
+ {
+ section = {name = {第,节}, format+ = \raggedright},
+ subsubsection/tocline = {\kaishu\CTEXnumberline{#1}#2},
+ paragraph = {runin = false, numbering = false}
+ }
+\setcounter{secnumdepth}{4}
+\setcounter{tocdepth}{3}
+\sisetup
+ {
+ number-math-rm = \ensuremath,
+ inter-unit-product = \ensuremath{{}\cdot{}},
+ group-digits = true,
+ group-minimum-digits = 4,
+ group-separator = \text{~},
+ range-phrase = \symbol{"FF5E},
+ separate-uncertainty = true
+ }
+\hypersetup
+ {
+ bookmarksdepth = 4,
+ bookmarksnumbered = true,
+ colorlinks = true,
+ citecolor = MaterialGreen,
+ linkcolor = MaterialPink,
+ urlcolor = MaterialIndigo
+ }
+\captionsetup{labelsep = quad, labelfont+ = bf}
+\setlist{noitemsep, topsep=\smallskipamount}
+\setlist[1]{labelindent=\parindent}
+\setlist[enumerate]{leftmargin=*}
+\setlist[itemize]{leftmargin=*}
+\newlist{optdesc}{description}{3}
+\setlist[optdesc]{%
+ font=\mdseries\small\ttfamily, align=right,
+ listparindent=\parindent,
+ labelsep=\marginparsep, labelindent=-\marginparsep,
+ leftmargin=*}
+\renewlist{tablenotes}{description}{1}
+\setlist[tablenotes]{%
+ format=\normalfont\tnote@item, align=right,
+ listparindent=\parindent, labelindent=\tabcolsep,
+ leftmargin=*, rightmargin=\tabcolsep,
+ after=\@noparlisttrue}
+\AtBeginEnvironment{tablenotes}{%
+ \setlength\parindent{2\ccwd}%
+ \normalfont\footnotesize}
+\AtBeginEnvironment{threeparttable}{%
+ \stepcounter{tpt@id}%
+ \edef\curr@tpt@id{tpt@\arabic{tpt@id}}}
+\newcounter{tpt@id}
+\def\tnote@item#1{%
+ \Hy@raisedlink{\hyper@anchor{\curr@tpt@id-#1}}#1}
+\def\TPTtagStyle#1{\hyperlink{\curr@tpt@id-#1}{#1}}
+\def\UrlAlphabet{%
+ \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j%
+ \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
+ \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D%
+ \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
+ \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X%
+ \do\Y\do\Z}
+\def\UrlDigits{%
+ \do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9\do\0}
+\g@addto@macro\UrlBreaks{\UrlOrds}
+\g@addto@macro\UrlBreaks{\UrlAlphabet}
+\g@addto@macro\UrlBreaks{\UrlDigits}
+\DoNotIndex{\begin,\end,
+ \a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,
+ \n,\o,\p,\q,\r,\s,\t,\u,\v,\w,\x,\y,\z,
+ \A,\B,\C,\D,\E,\F,\G,\H,\I,\J,\K,\L,\M,
+ \N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z,
+ \0,\1,\2,\3,\4,\5,\6,\7,\8,\9}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\newcommand*\exptarget{\Hy@raisedlink{\hypertarget{expstar}{}}}
+\newcommand*\rexptarget{\Hy@raisedlink{\hypertarget{rexpstar}{}}}
+\newcommand*\expstar{\hyperlink{expstar}{$\star$}}
+\newcommand*\rexpstar{\hyperlink{rexpstar}{\ding{73}}}
+\renewcommand*\expstar{\hyperlink{expstar}{$\mfrake$}}
+\renewcommand*\rexpstar{\hyperlink{rexpstar}{$\mfrakc$}}
+\ExplSyntaxOn
+\cs_set_eq:NN \__codedoc_typeset_exp: \expstar
+\cs_set_eq:NN \__codedoc_typeset_rexp: \rexpstar
+\ExplSyntaxOff
+\renewcommand*\marg[1]{\{\meta{#1}\}}
+\renewcommand*\oarg[1]{[\meta{#1}]}
+\renewcommand*\parg[1]{(\meta{#1})}
+\DeclareDocumentCommand\opt{m}{\texttt{#1}}
+\DeclareDocumentCommand\kvopt{mm}
+ {\texttt{#1\breakablethinspace=\breakablethinspace#2}}
+\def\breakablethinspace{\hskip 0.16667em\relax}
+\def\syntaxopt#1{\textit{#1}}
+\def\defaultval#1{\textbf{\textup{#1}}}
+\def\syntaxopt@aux#1>{\syntaxopt{#1}}
+\def\defaultval@aux#1){\defaultval{#1}}
+\def\orbar{\textup{\textbar}}
+\def\TF{true\orbar false}
+\def\TTF{\defaultval{true}\orbar false}
+\def\TFF{true\orbar\defaultval{false}}
+\DeclareDocumentEnvironment{arguments}{}
+ {\enumerate[%
+ label={\texttt{\#\arabic*:~}}, labelsep=0pt, nolistsep]}%
+ {\endenumerate}
+\def\TeX{\hologo{TeX}}
+\def\LaTeX{\hologo{LaTeX}}
+\def\LaTeXe{\hologo{LaTeXe}}
+\def\pdfTeX{\hologo{pdfTeX}}
+\def\pdfLaTeX{\hologo{pdfLaTeX}}
+\def\XeTeX{\hologo{XeTeX}}
+\def\XeLaTeX{\hologo{XeLaTeX}}
+\def\LuaTeX{\hologo{LuaTeX}}
+\def\LuaLaTeX{\hologo{LuaLaTeX}}
+\def\AmSLaTeX{\hologo{AmSLaTeX}}
+\def\TeXLive{\TeX\ Live}
+\def\MiKTeX{\hologo{MiKTeX}}
+\def\BibTeX{\hologo{BibTeX}}
+\def\BibTeX{\hologo{BibTeX}}
+\def\biber{\hologo{biber}}
+\def\TikZ{Ti\emph{k}Z}
+\renewcommand*\env[1]{\textbf{\texttt{#1}}}
+\newcommand*\bashcmd[1]{\texttt{#1}}
+\newcommand*\scite[1]{\textsuperscript{\cite{#1}}}
+\DeclareDocumentEnvironment{quote*}{oo}
+ {\quote\fangsong\qquad}%
+ {\endquote\IfNoValueF{#1}{%
+ \hfill —— \IfNoValueF{#2}{〔#2〕}#1}}
+\lst@CCPutMacro\lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{-{}}}
+\@empty\z@\@empty
+\lstdefinestyle{style@base}
+ {
+ extendedchars = true,
+ gobble = 3,
+ lineskip = 2 pt,
+ frame = l,
+ framerule = 1 pt,
+ framesep = 0 pt,
+ escapeinside = {(*}{*)},
+ basicstyle = \small\CodeFont\color{MaterialGrey900},
+ keywordstyle = \bfseries\color{MaterialIndigo},
+ commentstyle = \itshape\color{MaterialGrey600},
+ stringstyle = \color{MaterialRed},
+ backgroundcolor = \color{MaterialGrey50}
+ }
+\lstdefinestyle{style@shell}
+ {
+ style = style@base,
+ rulecolor = \color{MaterialPink},
+ language = bash,
+ alsoletter = {-},
+ emphstyle = \color{MaterialGreen800}
+ }
+\lstdefinestyle{style@latex}
+ {
+ style = style@base,
+ rulecolor = \color{MaterialIndigo},
+ language = [LaTeX]TeX,
+ alsoletter = {*, -},
+ texcsstyle = *\color{MaterialDeepOrange},
+ emphstyle = [1]\color{MaterialGreen800},
+ emphstyle = [2]\color{MaterialTeal}
+ }
+\lstdefinestyle{style@syntax}
+ {
+ extendedchars = true,
+ gobble = 6,
+ escapeinside = {(*}{*)},
+ language = [LaTeX]TeX,
+ alsoletter = {*, -},
+ basicstyle = \footnotesize\CodeFont\color{MaterialGrey900},
+ keywordstyle = \bfseries\color{MaterialIndigo},
+ commentstyle = \itshape\color{MaterialGrey600},
+ texcsstyle = *\color{MaterialDeepOrange},
+ emphstyle = [1]\color{MaterialGreen800},
+ emphstyle = [2]\color{MaterialTeal}
+ }
+\lstnewenvironment{shellexample}[1][]{%
+ \lstset{style=style@shell, #1}}{}
+\lstnewenvironment{latexexample}[1][]{%
+ \lstset{style=style@latex, #1}}{}
+\lstnewenvironment{fdusyntax}[1][]{%
+ \lstset{style=style@syntax, #1}\vspace{-1.8ex}}{}
+\endinput
+%%
+%% End of file `fdudoc.cls'.
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty b/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty
new file mode 100644
index 00000000000..daa565b8257
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fduthesis/fdulogo.sty
@@ -0,0 +1,2253 @@
+%%
+%% This is file `fdulogo.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fduthesis.dtx (with options: `logo')
+%% fduthesis-logo.dtx (with options: `logo')
+%%
+%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c 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 Xiangdong Zeng.
+%%
+%% This work consists of the files fduthesis.dtx,
+%% fduthesis-doc.dtx,
+%% fduthesis-logo.dtx,
+%% fduthesis-template.tex,
+%% and the derived files fduthesis.ins,
+%% fduthesis.cls,
+%% fduthesis-en.cls,
+%% fduthesis.def,
+%% fdudoc.cls,
+%% fdulogo.sty,
+%% fdulogo-example.tex,
+%% fduthesis-cover.tex,
+%% fduthesis-en.tex,
+%% fduthesis.pdf,
+%% fduthesis-en.pdf,
+%% fduthesis-code.pdf,
+%% latexmkrc,
+%% latexmkrc-en,
+%% and README.md.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $
+ {Fudan University's Visual Identity}
+\ProvidesExplPackage{fdulogo}
+ {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+\RequirePackage { luatex85 }
+\RequirePackage { xcolor, tikz }
+\RequirePackage { xparse }
+\NewDocumentCommand \fduname { O { } }
+ {
+ \__fdulogo_tikz:Nx \fdulogo@name
+ { \l__fdulogo_default_arg_tl, #1 }
+ }
+\NewDocumentCommand \fduemblem { t+ s O { } }
+ {
+ \__fdulogo_tikz:cx
+ {
+ \IfBooleanTF {#1}
+ {
+ \IfBooleanTF {#2}
+ { fdulogo@emblem@new@reversed } { fdulogo@emblem@new }
+ }
+ {
+ \IfBooleanTF {#2}
+ { fdulogo@emblem@reversed } { fdulogo@emblem }
+ }
+ }
+ { \l__fdulogo_default_arg_tl, #3 }
+ }
+\NewDocumentCommand \fdumotto { O { } }
+ {
+ \__fdulogo_tikz:Nx \fdulogo@motto
+ { \l__fdulogo_default_arg_tl, #1 }
+ }
+\tl_const:Nn \l__fdulogo_default_arg_tl { x = 1 pt, y = 1 pt }
+\cs_new_protected:Npn \__fdulogo_tikz:Nn #1#2
+ {
+ \begin{tikzpicture} [#2]
+ #1
+ \end{tikzpicture}
+ }
+\cs_generate_variant:Nn \__fdulogo_tikz:Nn { Nx, cx }
+\definecolor { FudanBlue } { HTML } { 0E419C }
+\definecolor { FudanRed } { HTML } { C80000 }
+\definecolor { MaterialGrey } { HTML } { 9E9E9E }
+\ExplSyntaxOff
+\def\fdulogo@name{%
+ \fill \fdulogo@name@fu
+ \fdulogo@name@dan
+ \fdulogo@name@da
+ \fdulogo@name@xue;}
+\def\fdulogo@emblem{%
+ \fill \fdulogo@emblem@kernel
+ \fdulogo@emblem@text
+ \fdulogo@emblem@year
+ \fdulogo@emblem@ring@inner@i
+ \fdulogo@emblem@ring@inner@ii
+ \fdulogo@emblem@ring@outer@i
+ \fdulogo@emblem@ring@outer@ii;}
+\def\fdulogo@emblem@reversed{%
+ \fill \fdulogo@emblem@text
+ \fdulogo@emblem@year;
+ \fill[even odd rule]
+ \fdulogo@emblem@kernel
+ \fdulogo@emblem@ring@inner@i
+ \fdulogo@emblem@ring@outer@i
+ \fdulogo@emblem@ring@outer@ii;}
+\def\fdulogo@emblem@text{%
+ \fdulogo@emblem@F
+ \fdulogo@emblem@U@i
+ \fdulogo@emblem@D
+ \fdulogo@emblem@A
+ \fdulogo@emblem@N@i
+ \fdulogo@emblem@U@ii
+ \fdulogo@emblem@N@ii
+ \fdulogo@emblem@I@i
+ \fdulogo@emblem@V
+ \fdulogo@emblem@E
+ \fdulogo@emblem@R
+ \fdulogo@emblem@S
+ \fdulogo@emblem@I@ii
+ \fdulogo@emblem@T
+ \fdulogo@emblem@Y}
+\def\fdulogo@emblem@year{%
+ \fdulogo@emblem@one
+ \fdulogo@emblem@nine
+ \fdulogo@emblem@zero
+ \fdulogo@emblem@five}
+\def\fdulogo@emblem@new{%
+ \fill \fdulogo@emblem@new@kernel
+ \fdulogo@emblem@new@text
+ \fdulogo@emblem@new@year;
+ \fill[even odd rule]
+ \fdulogo@emblem@new@ring@inner@i
+ \fdulogo@emblem@new@ring@inner@ii
+ \fdulogo@emblem@new@ring@outer@i
+ \fdulogo@emblem@new@ring@outer@ii;}
+\def\fdulogo@emblem@new@reversed{%
+ \fill \fdulogo@emblem@new@text
+ \fdulogo@emblem@new@year;
+ \fill[even odd rule]
+ \fdulogo@emblem@new@kernel
+ \fdulogo@emblem@new@ring@inner@i
+ \fdulogo@emblem@new@ring@outer@i
+ \fdulogo@emblem@new@ring@outer@ii;}
+\def\fdulogo@emblem@new@text{%
+ \fdulogo@emblem@new@F
+ \fdulogo@emblem@new@U@i
+ \fdulogo@emblem@new@D
+ \fdulogo@emblem@new@A
+ \fdulogo@emblem@new@N@i
+ \fdulogo@emblem@new@U@ii
+ \fdulogo@emblem@new@N@ii
+ \fdulogo@emblem@new@I@i
+ \fdulogo@emblem@new@V
+ \fdulogo@emblem@new@E
+ \fdulogo@emblem@new@R
+ \fdulogo@emblem@new@S
+ \fdulogo@emblem@new@I@ii
+ \fdulogo@emblem@new@T
+ \fdulogo@emblem@new@Y}
+\def\fdulogo@emblem@new@year{%
+ \fdulogo@emblem@new@one
+ \fdulogo@emblem@new@nine
+ \fdulogo@emblem@new@zero
+ \fdulogo@emblem@new@five}
+\def\fdulogo@motto{%
+ \fill \fdulogo@motto@i
+ \fdulogo@motto@ii;}
+\def\fdulogo@motto@i{%
+ \fdulogo@motto@bo
+ \fdulogo@motto@xue
+ \fdulogo@motto@er@i
+ \fdulogo@motto@du
+ \fdulogo@motto@zhi}
+\def\fdulogo@motto@ii{%
+ \fdulogo@motto@qie
+ \fdulogo@motto@wen
+ \fdulogo@motto@er@ii
+ \fdulogo@motto@jin
+ \fdulogo@motto@si}
+\def\fduthesis@cover{%
+ \hspace{1.5cm}
+ \begin{tikzpicture}[x=1pt, y=1pt, scale=1.1, color=MaterialGrey]
+ \useasboundingbox ( 100, -140) rectangle ( 800, 800);
+ \fdulogo@emblem@new
+ \end{tikzpicture}
+ \begin{tikzpicture}[x=1pt, y=1pt]
+ \useasboundingbox ( 750, -150) rectangle (1350, 850);
+ \fill \fdulogo@motto@i;
+ \end{tikzpicture}
+ \begin{tikzpicture}[x=1pt, y=1pt]
+ \useasboundingbox (1280, 10) rectangle (1880, 1210);
+ \fill \fdulogo@motto@ii;
+ \end{tikzpicture}
+ \hspace*{-42.5cm}}
+\def\fdulogo@name@fu{%
+ ( 86.79426450, 309.23000203)
+ .. controls ( 90.52759774, 306.43000210) and ( 95.27426428, 304.13666883) .. ( 96.80759758, 299.37666895)
+ .. controls (100.07426416, 292.95000244) and (100.74093081, 285.69666929) .. (101.08759747, 278.60333613)
+ .. controls ( 97.58093089, 266.51000310) and ( 89.47426443, 256.63000335) .. ( 83.27426458, 245.87000362)
+ .. controls ( 76.79426475, 235.84333720) and ( 70.78093156, 225.51000413) .. ( 64.22093173, 215.53667104)
+ .. controls ( 62.24759844, 212.88333778) and ( 62.18093178, 209.48333786) .. ( 61.44759846, 206.37667127)
+ .. controls ( 66.44759834, 207.63000457) and ( 71.00759822, 205.08333797) .. ( 75.68759811, 203.80333800)
+ .. controls ( 77.31426473, 200.65667142) and ( 78.78093136, 197.41667150) .. ( 80.55426465, 194.33667157)
+ .. controls ( 80.19426466, 188.60333838) and ( 77.71426472, 183.32333852) .. ( 74.72759813, 178.52333864)
+ .. controls ( 68.70093162, 167.31000558) and ( 62.86093176, 155.99000587) .. ( 56.75426525, 144.81667281)
+ .. controls ( 54.87426529, 140.92333958) and ( 54.19426531, 136.60333968) .. ( 52.91426534, 132.51000645)
+ .. controls ( 54.60759863, 129.12333987) and ( 56.99426524, 126.08333995) .. ( 58.50093187, 122.61667337)
+ .. controls ( 59.66093184, 116.97667351) and ( 61.08759847, 111.27000698) .. ( 60.52759849, 105.45667380)
+ .. controls ( 59.15426519, 78.25667448) and ( 58.22093188, 51.01667516) .. ( 56.68759858, 23.83000917)
+ .. controls ( 54.52759864, 19.44334261) and ( 53.56759866, 12.80334278) .. ( 47.75426547, 12.03000946)
+ .. controls ( 42.10093228, 14.51000940) and ( 39.03426569, 20.09667593) .. ( 37.23426574, 25.71000912)
+ .. controls ( 36.24759909, 37.23000883) and ( 41.36759897, 48.00334190) .. ( 42.15426561, 59.35000828)
+ .. controls ( 43.31426558, 69.33667470) and ( 41.59426563, 79.37667445) .. ( 41.47426563, 89.39000753)
+ .. controls ( 41.72759896, 92.87000744) and ( 39.83426567, 95.81667404) .. ( 38.20759904, 98.71000730)
+ .. controls ( 36.59426575, 98.21667398) and ( 34.98093246, 97.73667399) .. ( 33.35426583, 97.24334067)
+ .. controls ( 28.54093262, 89.83000752) and ( 23.40759941, 82.63000770) .. ( 18.54093287, 75.25667455)
+ .. controls ( 16.62093292, 75.76334120) and ( 14.67426630, 76.15000786) .. ( 12.80759968, 76.81667451)
+ .. controls ( 12.07426636, 78.93667446) and ( 11.02093306, 81.43000773) .. ( 12.54093302, 83.45667435)
+ .. controls ( 20.94093281, 99.43000728) and ( 29.63426593, 115.23000688) .. ( 38.19426571, 131.11000649)
+ .. controls ( 42.94093226, 140.45667292) and ( 48.59426545, 149.36333936) .. ( 52.68759868, 159.00333912)
+ .. controls ( 55.28759862, 168.04333890) and ( 60.40759849, 176.51000535) .. ( 59.79426517, 186.20333844)
+ .. controls ( 54.76759863, 185.93667178) and ( 51.83426537, 181.23000523) .. ( 47.56759881, 179.16333862)
+ .. controls ( 44.71426555, 181.43000523) and ( 41.87426562, 183.71000517) .. ( 39.04759902, 186.01667178)
+ .. controls ( 40.84759898, 191.27000498) and ( 41.78093229, 196.92333818) .. ( 44.86093221, 201.65667139)
+ .. controls ( 52.82093201, 215.04333772) and ( 60.74093181, 228.45667072) .. ( 68.78093161, 241.80333705)
+ .. controls ( 74.71426480, 252.79000345) and ( 83.66093124, 262.99000319) .. ( 83.84759790, 276.12333620)
+ .. controls ( 83.06093126, 284.17666933) and ( 81.95426462, 292.19000246) .. ( 81.08759797, 300.24333559)
+ .. controls ( 82.94093126, 303.27000218) and ( 84.82093121, 306.28333544) .. ( 86.79426450, 309.23000203)
+ (143.71426307, 60.96334157)
+ .. controls (144.87426304, 59.85667494) and (146.06092968, 58.77667496) .. (147.26092965, 57.72334166)
+ .. controls (149.38092960, 57.35000833) and (151.54092954, 57.99000832) .. (153.66092949, 58.11000831)
+ .. controls (154.46092947, 59.65667494) and (155.27426278, 61.20334157) .. (156.08759610, 62.75000820)
+ .. controls (152.87426284, 64.45667482) and (149.39426293, 65.55000813) .. (145.88759635, 66.47000810)
+ .. controls (145.16759637, 64.64334148) and (144.43426306, 62.80334153) .. (143.71426307, 60.96334157)
+ (144.91426304, 141.67000622)
+ .. controls (143.54092974, 139.96333960) and (143.79426307, 137.71000632) .. (143.52759641, 135.67000637)
+ .. controls (146.12759635, 135.72333971) and (148.42092962, 137.09667300) .. (150.07426291, 139.03000629)
+ .. controls (154.63426280, 143.33667285) and (153.22092950, 150.21667268) .. (154.36759614, 155.79000587)
+ .. controls (151.31426288, 151.01667266) and (148.14092963, 146.32333944) .. (144.91426304, 141.67000622)
+ (139.83426317, 253.56333676)
+ .. controls (153.16759617, 263.92333650) and (166.98092916, 273.65666959) .. (180.19426216, 284.17666933)
+ .. controls (184.74092871, 283.19000269) and (188.98092861, 281.07000274) .. (192.24759519, 277.71000282)
+ .. controls (182.23426211, 263.05666986) and (165.90092919, 254.75000340) .. (153.84759615, 242.09667038)
+ .. controls (146.96759633, 233.00333727) and (139.40759651, 224.41667082) .. (132.67426335, 215.21667105)
+ .. controls (126.63426350, 204.79000465) and (121.22093030, 194.00333825) .. (115.50093045, 183.39000518)
+ .. controls (113.88759715, 181.04333857) and (113.86093049, 178.20333864) .. (113.84759715, 175.44333871)
+ .. controls (120.24759699, 184.61667182) and (126.19426351, 194.09667158) .. (132.54093002, 203.31000468)
+ .. controls (140.58092982, 217.01667101) and (152.38092952, 229.56333736) .. (167.99426247, 234.25667058)
+ .. controls (172.19426236, 231.63000397) and (176.00759560, 228.21667073) .. (178.48759554, 223.88333750)
+ .. controls (178.03426222, 208.04333790) and (170.72759573, 193.64333826) .. (166.24759584, 178.71000530)
+ .. controls (159.55426268, 161.00333907) and (159.48759601, 141.69667289) .. (154.91426279, 123.47000668)
+ .. controls (152.00759620, 118.13667348) and (151.20759622, 111.04334032) .. (145.19426304, 108.15000706)
+ .. controls (142.22092978, 112.72334028) and (137.62092989, 115.56334021) .. (132.30093003, 116.57667352)
+ .. controls (129.06093011, 111.89667363) and (125.34093020, 107.51000708) .. (122.47426360, 102.59000720)
+ .. controls (120.10093033, 96.57667402) and (117.70093039, 90.31000751) .. (118.26093038, 83.71000767)
+ .. controls (126.60759683, 88.87000754) and (134.99426329, 93.95000742) .. (143.28759642, 99.20334062)
+ .. controls (149.03426294, 101.97667388) and (155.03426279, 104.23000716) .. (160.84759598, 106.89667376)
+ .. controls (165.36759587, 109.01667371) and (171.96759570, 109.15000704) .. (174.74092896, 104.25667383)
+ .. controls (180.14092883, 99.07000729) and (179.06092886, 91.27000748) .. (179.26092885, 84.47000765)
+ .. controls (176.34092892, 77.25667450) and (172.12759570, 70.45667467) .. (170.91426239, 62.64334153)
+ .. controls (177.99426222, 55.12334172) and (184.76759538, 47.13667525) .. (193.68759516, 41.68334206)
+ .. controls (194.34092847, 38.95000879) and (195.18092845, 36.17667553) .. (194.71426180, 33.32334227)
+ .. controls (192.94092851, 33.12334227) and (191.18092855, 32.92334228) .. (189.42092860, 32.71000895)
+ .. controls (185.27426203, 35.52334221) and (180.14092883, 37.20334217) .. (177.14092890, 41.41667540)
+ .. controls (173.59426233, 46.16334194) and (168.66092912, 49.52334186) .. (163.82092924, 52.81667511)
+ .. controls (161.22092930, 47.79000857) and (157.30092940, 43.59000868) .. (152.34092952, 40.83000874)
+ .. controls (145.87426302, 45.28334197) and (139.71426317, 50.23000851) .. (134.72759663, 56.35000836)
+ .. controls (132.92759668, 59.23000828) and (132.14093003, 62.59000820) .. (130.94093006, 65.73667479)
+ .. controls (132.47426335, 69.56334136) and (134.59426330, 73.12334127) .. (137.24759657, 76.27000786)
+ .. controls (143.88759640, 74.47000790) and (150.47426290, 72.52334129) .. (157.11426274, 70.73667466)
+ .. controls (160.58092932, 73.36334126) and (164.75426255, 75.89667453) .. (166.18092918, 80.25667443)
+ .. controls (168.00759580, 85.73667429) and (170.20759574, 91.05667416) .. (172.34092902, 96.43000735)
+ .. controls (169.06092911, 96.77667401) and (165.74092919, 98.00334065) .. (162.46092927, 97.59000733)
+ .. controls (155.74092944, 94.68334073) and (148.95426294, 91.79000747) .. (142.84759643, 87.72334091)
+ .. controls (137.52759656, 84.17667433) and (131.24759672, 81.96334105) .. (126.76759683, 77.24334117)
+ .. controls (121.84759695, 72.37667462) and (116.75426375, 67.65667474) .. (111.88759720, 62.72334153)
+ .. controls (106.62093067, 55.99000837) and (101.46093080, 49.15000854) .. ( 96.48759759, 42.20334204)
+ .. controls ( 93.54093099, 36.41667552) and ( 90.70093107, 30.57667567) .. ( 87.42093115, 24.96334247)
+ .. controls ( 83.87426457, 26.44334244) and ( 79.19426469, 28.04334240) .. ( 78.46093137, 32.35000896)
+ .. controls ( 80.48759799, 37.96334215) and ( 83.39426458, 43.21667535) .. ( 85.60759786, 48.75000855)
+ .. controls ( 87.51426448, 54.04334175) and ( 92.48759769, 57.36334166) .. ( 95.11426429, 62.25667488)
+ .. controls ( 96.75426425, 65.41667480) and ( 98.54093087, 68.48334139) .. (100.08759750, 71.68334131)
+ .. controls (102.40759744, 76.51000785) and (102.58093077, 82.07000771) .. (105.12759737, 86.80334093)
+ .. controls (109.44759726, 94.08334075) and (113.92759715, 101.27000723) .. (118.08759705, 108.63000705)
+ .. controls (121.11426364, 116.92334018) and (125.23426354, 124.81667331) .. (127.67426347, 133.31000643)
+ .. controls (127.40759681, 142.21667288) and (125.86093019, 151.13667265) .. (127.35426348, 160.04333910)
+ .. controls (126.95426349, 166.37667227) and (130.68759673, 171.60333881) .. (133.59426333, 176.88333868)
+ .. controls (135.03426329, 179.41667195) and (138.31426321, 179.64333861) .. (140.76759648, 180.61667192)
+ .. controls (145.40759636, 173.87000542) and (150.78092956, 167.68333891) .. (155.87426277, 161.28333907)
+ .. controls (154.00759615, 168.75000555) and (157.66092939, 175.69667204) .. (159.02092936, 182.88333853)
+ .. controls (161.96759595, 195.19000489) and (167.38092915, 207.07000459) .. (167.04759582, 219.96333760)
+ .. controls (164.47426255, 219.76333760) and (161.64759596, 220.45667092) .. (159.34092935, 219.03000429)
+ .. controls (154.63426280, 216.43000435) and (149.44759626, 214.25667108) .. (146.07426301, 209.87000452)
+ .. controls (141.96759645, 204.55000465) and (136.86092991, 200.01667143) .. (133.08759667, 194.44333824)
+ .. controls (126.78093016, 180.76333858) and (120.64759698, 166.89667226) .. (117.15426374, 152.17667263)
+ .. controls (111.54093054, 136.29667302) and (108.63426395, 119.43000678) .. (100.72759748, 104.43000715)
+ .. controls ( 99.18093085, 102.67000720) and ( 96.75426425, 101.97667388) .. ( 94.79426430, 100.76334058)
+ .. controls ( 93.07426434, 102.04334055) and ( 91.35426438, 103.32334052) .. ( 89.62093109, 104.59000715)
+ .. controls ( 88.06093113, 110.39000701) and ( 84.32759789, 116.45667352) .. ( 86.74093116, 122.52334004)
+ .. controls ( 92.48759769, 139.11000629) and ( 97.71426422, 155.87000587) .. (103.47426408, 172.44333879)
+ .. controls (111.64759721, 187.41667175) and (119.76759701, 202.41667137) .. (127.88759680, 217.41667100)
+ .. controls (139.84759650, 232.69667061) and (152.04759620, 247.83000357) .. (163.92759590, 263.19000319)
+ .. controls (153.66092949, 255.16333672) and (145.20759637, 245.01667031) .. (135.38092995, 236.47000385)
+ .. controls (130.47426340, 233.84333725) and (124.72759688, 232.63000395) .. (120.52759699, 228.76333738)
+ .. controls (115.07426379, 223.92333750) and (109.78093059, 218.89667096) .. (104.15426406, 214.25667108)
+ .. controls (101.86093079, 217.11000434) and ( 99.04759752, 219.79000427) .. ( 97.95426422, 223.39000418)
+ .. controls ( 96.06093093, 230.88333733) and ( 96.82093091, 239.12333712) .. (100.50093082, 245.96333695)
+ .. controls (104.34093072, 255.28333672) and (108.88759728, 264.28333649) .. (112.63426385, 273.64333626)
+ .. controls (113.75426382, 277.21666950) and (116.74093041, 279.49666944) .. (119.50093035, 281.76333605)
+ .. controls (121.56759696, 280.59000275) and (123.74093024, 279.56333611) .. (125.63426353, 278.11000281)
+ .. controls (128.27426346, 274.76333623) and (129.70093009, 270.69666966) .. (131.18093005, 266.76333643)
+ .. controls (129.26093010, 259.37666995) and (126.90093016, 252.08333680) .. (125.56759686, 244.55000365)
+ .. controls (131.00759672, 246.40333694) and (135.18092995, 250.37667017) .. (139.83426317, 253.56333676)}
+\def\fdulogo@name@dan{%
+ (318.28759204, 86.52334094)
+ .. controls (328.19425846, 87.00334092) and (337.14092490, 91.81667414) .. (346.11425801, 95.59000738)
+ .. controls (351.20759122, 94.93667406) and (356.20759109, 93.69667409) .. (360.83425765, 91.41667415)
+ .. controls (361.59425763, 89.11000754) and (362.34092427, 86.79000760) .. (363.11425759, 84.47000765)
+ .. controls (357.78092439, 79.79000777) and (350.70092457, 78.47000780) .. (344.07425806, 76.67000785)
+ .. controls (343.51425808, 77.64334116) and (342.42092477, 79.59000778) .. (341.87425812, 80.56334108)
+ .. controls (332.26092503, 77.56334116) and (322.44759194, 75.27000788) .. (312.82092551, 72.32334129)
+ .. controls (306.68759233, 70.84334133) and (301.54092579, 66.97667476) .. (296.48759259, 63.39000818)
+ .. controls (292.74092601, 58.63000830) and (291.00759272, 52.12334180) .. (285.50092620, 48.87000854)
+ .. controls (279.98092633, 44.65667532) and (272.30092653, 47.80334190) .. (268.44759329, 52.75000845)
+ .. controls (266.51426000, 56.84334168) and (264.15426006, 60.80334158) .. (262.72759343, 65.11000814)
+ .. controls (262.96759343, 67.80334140) and (263.51426008, 70.45667467) .. (263.96759340, 73.12334127)
+ .. controls (267.08759332, 73.39000793) and (270.23425991, 73.53667459) .. (273.32759317, 74.08334125)
+ .. controls (288.47425945, 77.64334116) and (303.11425909, 83.09667435) .. (318.28759204, 86.52334094)
+ (347.60759131, 212.41667112)
+ .. controls (352.20759119, 214.71000440) and (357.26092440, 212.57667112) .. (362.04759095, 212.12333780)
+ .. controls (363.84759090, 209.92333785) and (365.60759086, 207.69667124) .. (367.28759082, 205.39000463)
+ .. controls (364.44759089, 193.92333825) and (356.31425776, 184.75000515) .. (353.11425784, 173.41667210)
+ .. controls (350.19425791, 164.27000566) and (347.51425798, 155.04333922) .. (344.23425806, 146.01667278)
+ .. controls (342.48759144, 141.53667289) and (342.50092477, 136.68333968) .. (341.74092479, 132.00333980)
+ .. controls (340.55425815, 124.59000665) and (339.36759152, 117.16334017) .. (338.18092488, 109.73667369)
+ .. controls (336.31425826, 108.56334038) and (334.43425831, 107.39000708) .. (332.59425835, 106.17667378)
+ .. controls (329.91425842, 108.37667372) and (326.87425849, 110.39000701) .. (325.35425853, 113.61667359)
+ .. controls (323.51425858, 117.24334017) and (321.70092529, 121.09667340) .. (317.79425872, 122.88334003)
+ .. controls (314.35425881, 120.28334009) and (311.04759222, 117.48334016) .. (307.38092565, 115.20334022)
+ .. controls (303.08759242, 121.15000674) and (307.50092565, 127.88333990) .. (309.52759226, 133.76333975)
+ .. controls (308.32759229, 143.05667286) and (300.79425915, 151.83000597) .. (304.55425905, 161.37667240)
+ .. controls (305.95425902, 164.12333900) and (308.52759229, 166.09667228) .. (310.39425891, 168.52333889)
+ .. controls (313.00759217, 167.01667226) and (315.76759211, 165.71000562) .. (318.16759205, 163.84333900)
+ .. controls (322.47425860, 158.48333914) and (326.20759184, 152.29667262) .. (327.11425849, 145.35000613)
+ .. controls (327.94092513, 140.35000626) and (328.71425845, 135.32333972) .. (329.59425843, 130.32333984)
+ .. controls (330.34092507, 130.55000650) and (331.83425837, 131.00333982) .. (332.59425835, 131.21667315)
+ .. controls (335.83425827, 146.37667277) and (340.43425816, 161.20333907) .. (343.70092474, 176.35000536)
+ .. controls (345.04759137, 181.07000524) and (345.90092469, 185.93667178) .. (347.64759131, 190.53667167)
+ .. controls (350.00759125, 194.93667156) and (353.07425784, 199.07000479) .. (353.80759115, 204.15000466)
+ .. controls (347.32759132, 204.91000464) and (341.32759147, 201.87000472) .. (335.78092494, 198.93667146)
+ .. controls (331.47425838, 196.45667152) and (326.50092517, 195.12333822) .. (322.70092527, 191.79000497)
+ .. controls (315.19425879, 185.56333846) and (307.60759231, 179.45667195) .. (300.19425916, 173.12333877)
+ .. controls (296.47425925, 170.24333884) and (294.80759263, 165.69667229) .. (291.99425937, 162.05667238)
+ .. controls (292.47425935, 156.11000586) and (295.62092594, 150.99000599) .. (297.87425922, 145.64333946)
+ .. controls (299.80759250, 137.37667300) and (302.00759245, 127.76333990) .. (297.06092591, 120.15000676)
+ .. controls (295.79425927, 117.40334016) and (293.94092598, 115.01667356) .. (291.96759270, 112.76334028)
+ .. controls (289.50092610, 118.09667348) and (285.55425953, 123.29667335) .. (286.28759284, 129.49667319)
+ .. controls (286.84759283, 138.20333964) and (284.63425955, 146.71000610) .. (283.44759291, 155.27000588)
+ .. controls (286.83425950, 162.61667237) and (286.67425950, 170.93667216) .. (288.94092611, 178.63000530)
+ .. controls (291.67425937, 180.88333858) and (293.70092599, 183.88333850) .. (296.54092592, 186.00333845)
+ .. controls (306.46092567, 191.56333831) and (316.12759210, 197.56333816) .. (325.99425852, 203.21667135)
+ .. controls (333.27425833, 206.09667128) and (340.30092483, 209.61667119) .. (347.60759131, 212.41667112)}
+\def\fdulogo@name@da{%
+ (500.52758749, 206.59000460)
+ .. controls (503.94092073, 220.15000426) and (500.12758750, 234.41667057) .. (504.03425407, 247.92333690)
+ .. controls (511.07425389, 246.55000360) and (517.44758706, 242.07000371) .. (519.55425368, 234.97667056)
+ .. controls (516.83425375, 217.67000432) and (512.24758719, 200.72333808) .. (509.44758726, 183.43000518)
+ .. controls (505.98092068, 167.81667224) and (503.00758742, 152.09667263) .. (499.86092084, 136.41667302)
+ .. controls (505.75425402, 140.20333959) and (512.02092053, 143.41667285) .. (517.80758705, 147.37667275)
+ .. controls (519.20758702, 148.73667271) and (519.98092033, 150.59000600) .. (521.03425364, 152.20333929)
+ .. controls (519.78092034, 156.32333919) and (518.88758703, 160.77667241) .. (522.32758694, 164.09667233)
+ .. controls (528.04758680, 164.07000566) and (533.75425332, 164.08333900) .. (539.46091985, 164.07000566)
+ .. controls (541.24758647, 162.17667238) and (544.28758639, 160.44333909) .. (542.76758643, 157.40333916)
+ .. controls (541.94091978, 149.95000602) and (534.75425330, 146.48333944) .. (529.51425343, 142.35000621)
+ .. controls (520.10092033, 136.29667302) and (510.22092058, 131.00333982) .. (500.80758748, 124.93667331)
+ .. controls (503.71425407, 118.32334014) and (507.70092064, 112.28334029) .. (510.84758723, 105.77667379)
+ .. controls (515.51425378, 95.17667405) and (524.40758689, 87.40334091) .. (531.72758671, 78.67000780)
+ .. controls (538.30091988, 74.05667458) and (544.99425304, 69.55000803) .. (551.88758620, 65.37667480)
+ .. controls (556.27425276, 63.48334151) and (560.44758599, 61.11000824) .. (564.12758590, 58.03000831)
+ .. controls (558.10091938, 53.81667509) and (550.71425290, 52.76334178) .. (543.98091973, 50.16334184)
+ .. controls (539.66091984, 48.55000855) and (534.92758663, 48.35000856) .. (530.38092007, 48.51000855)
+ .. controls (520.74092031, 51.48334181) and (513.10092051, 59.24334162) .. (509.72758726, 68.72334138)
+ .. controls (504.24758739, 85.40334096) and (500.02092083, 102.44334054) .. (494.66092097, 119.16334012)
+ .. controls (491.66092104, 110.84334033) and (488.38092112, 102.61667387) .. (485.64758786, 94.20334074)
+ .. controls (481.35425463, 87.89667423) and (477.18092140, 81.47000773) .. (472.75425485, 75.24334122)
+ .. controls (465.78092169, 65.49667479) and (454.34092197, 59.77667494) .. (442.62092227, 58.23000831)
+ .. controls (439.51425568, 58.68334163) and (436.43425576, 59.39000828) .. (433.48758916, 60.48334159)
+ .. controls (430.78092256, 61.73667489) and (429.92758925, 64.85667481) .. (428.51425595, 67.21667475)
+ .. controls (434.07425581, 68.15000806) and (439.74092234, 68.56334138) .. (445.26092220, 69.84334135)
+ .. controls (455.00758862, 73.60334126) and (464.20758839, 79.99000777) .. (469.18092160, 89.41667420)
+ .. controls (473.36758817, 98.01667398) and (479.90092134, 105.60334046) .. (481.12758797, 115.40334021)
+ .. controls (475.23425479, 113.83000692) and (470.84758823, 109.43000703) .. (466.18092168, 105.79000712)
+ .. controls (460.79425515, 100.05667393) and (457.03425524, 91.63000747) .. (448.46092212, 90.15000751)
+ .. controls (445.51425553, 95.32334072) and (444.71425555, 101.31000723) .. (443.67425557, 107.07000709)
+ .. controls (446.92758883, 106.27000711) and (450.19425541, 105.51000713) .. (453.47425533, 104.79000715)
+ .. controls (462.60758843, 111.72334031) and (470.71425490, 120.11000676) .. (480.90092131, 125.56333996)
+ .. controls (485.82092119, 128.04333990) and (487.58092114, 133.69667309) .. (488.79425445, 138.65667297)
+ .. controls (493.14092100, 161.23000573) and (496.22092093, 184.00333850) .. (500.52758749, 206.59000460)}
+\def\fdulogo@name@xue{%
+ (747.62091464, 258.36333664)
+ .. controls (750.15424791, 256.21667003) and (752.74091451, 254.15000341) .. (755.38091445, 252.13667013)
+ .. controls (750.84758123, 243.33667035) and (742.26091478, 238.23000381) .. (734.47424830, 232.65667062)
+ .. controls (736.20758159, 230.40333734) and (737.98091488, 228.19000406) .. (739.79424817, 226.00333745)
+ .. controls (743.27424808, 226.81667076) and (746.76758133, 227.55000408) .. (750.28758124, 228.23000406)
+ .. controls (751.46091455, 225.40333746) and (752.64758118, 222.57667087) .. (753.86091449, 219.76333760)
+ .. controls (750.62091457, 213.24333777) and (748.54091462, 206.27000461) .. (746.78091466, 199.23000478)
+ .. controls (748.22091463, 197.71000482) and (749.67424792, 196.17667153) .. (751.14091455, 194.67000490)
+ .. controls (760.71424765, 211.47000448) and (769.88758075, 228.49667072) .. (779.47424718, 245.29667030)
+ .. controls (773.42091400, 244.24333699) and (767.28758082, 243.89667033) .. (761.19424764, 243.24333702)
+ .. controls (760.47424765, 248.00333690) and (766.58091417, 249.36333686) .. (769.60758076, 251.87000347)
+ .. controls (775.06091396, 251.71000347) and (782.16758045, 254.05667008) .. (786.15424701, 249.12333687)
+ .. controls (787.15424699, 247.96333690) and (788.06091363, 246.71000360) .. (788.99424694, 245.47000363)
+ .. controls (786.26091368, 234.07000391) and (778.42091387, 225.05667081) .. (772.88758068, 214.99000439)
+ .. controls (768.59424745, 208.51000455) and (764.74091421, 201.75000472) .. (760.55424765, 195.21667155)
+ .. controls (758.16758105, 190.29667167) and (756.44758109, 185.07000514) .. (754.07424781, 180.13667193)
+ .. controls (759.44758101, 179.95000527) and (764.83424755, 179.33667195) .. (770.22091408, 179.47000528)
+ .. controls (776.19424726, 180.55000525) and (781.90091379, 182.84333853) .. (787.99424697, 183.31000518)
+ .. controls (792.42091352, 184.25667183) and (796.32758009, 181.16333857) .. (800.31424666, 179.72333861)
+ .. controls (800.47424665, 177.73667199) and (800.64757998, 175.75000537) .. (800.83424665, 173.76333875)
+ .. controls (790.94091356, 167.73667224) and (782.19424711, 159.31000578) .. (770.64758073, 156.49667252)
+ .. controls (756.94091441, 154.17667258) and (743.36758142, 151.12333932) .. (729.70091509, 148.53667272)
+ .. controls (723.98091523, 147.25667275) and (717.72758206, 145.35000613) .. (714.59424880, 139.93667293)
+ .. controls (723.31424858, 140.35000626) and (731.92758170, 145.47000613) .. (740.60758148, 142.33667287)
+ .. controls (742.23424811, 139.56333961) and (743.82091474, 136.75000635) .. (745.38091470, 133.92333975)
+ .. controls (743.54091474, 131.48333981) and (742.03424812, 128.80333988) .. (740.20758149, 126.36333994)
+ .. controls (735.48758161, 121.79000672) and (729.54091509, 118.80334013) .. (723.72758191, 115.85667354)
+ .. controls (728.02091513, 114.00334025) and (732.62091502, 115.64334021) .. (737.06091491, 115.85667354)
+ .. controls (744.58091472, 116.27000686) and (752.03424787, 117.36334016) .. (759.52758101, 118.15000681)
+ .. controls (762.92758093, 116.28334019) and (766.28758084, 114.35000691) .. (769.48758076, 112.13667363)
+ .. controls (770.55424740, 108.49667372) and (771.60758071, 104.85667381) .. (772.66091402, 101.21667390)
+ .. controls (771.22091405, 98.23000731) and (769.11424744, 95.67000737) .. (766.28758084, 93.91000742)
+ .. controls (756.02091443, 97.39000733) and (745.16758137, 96.35000736) .. (734.52758164, 96.37667402)
+ .. controls (729.95424842, 95.96334070) and (725.63424853, 94.23000741) .. (721.18091530, 93.17667410)
+ .. controls (717.24758207, 83.47000768) and (718.54091537, 72.91000794) .. (717.83424872, 62.71000820)
+ .. controls (717.24758207, 53.75000842) and (722.64758193, 43.71000867) .. (716.04758210, 35.91000887)
+ .. controls (712.07424886, 35.36334221) and (708.03424897, 33.52334226) .. (704.04758240, 34.85667556)
+ .. controls (697.94091588, 36.35000886) and (691.66091604, 37.27000883) .. (685.71424952, 39.37667545)
+ .. controls (678.32758304, 44.67000865) and (670.20758324, 49.53667519) .. (665.38091670, 57.52334166)
+ .. controls (673.52758316, 53.41667510) and (681.47424963, 48.71000855) .. (690.28758274, 46.15000861)
+ .. controls (694.52758264, 44.61667532) and (698.95424919, 46.32334194) .. (703.22091575, 46.88334193)
+ .. controls (704.35424906, 49.84334185) and (705.78091569, 52.71000845) .. (706.66091567, 55.76334170)
+ .. controls (707.98091563, 66.84334143) and (706.18091568, 78.27000781) .. (709.15424894, 89.13667420)
+ .. controls (708.72758228, 89.65667419) and (707.86091564, 90.69667416) .. (707.43424898, 91.21667415)
+ .. controls (695.24758262, 90.37667417) and (683.74091624, 85.91000762) .. (673.22091650, 79.89667443)
+ .. controls (667.54091664, 76.23000786) and (660.62091682, 76.04334120) .. (654.28758364, 74.23000791)
+ .. controls (648.38091712, 73.23000793) and (643.48758391, 77.65667449) .. (639.82091734, 81.69667439)
+ .. controls (638.15425071, 84.59000765) and (637.00758407, 87.73667424) .. (635.58091744, 90.75000750)
+ .. controls (641.15425064, 95.83000737) and (649.06091711, 94.83000739) .. (655.91425027, 96.53667402)
+ .. controls (669.07424994, 99.97667393) and (682.16758295, 103.71000717) .. (695.24758262, 107.53667374)
+ .. controls (700.00758250, 109.08334037) and (706.22091568, 108.84334038) .. (709.24758227, 113.48334026)
+ .. controls (713.56758216, 119.85667344) and (721.44758196, 123.11000669) .. (724.18091523, 130.64333983)
+ .. controls (717.19424874, 130.88333983) and (710.54091557, 128.16333989) .. (703.74091574, 127.00333992)
+ .. controls (700.96758248, 129.33667320) and (700.46091582, 132.96333977) .. (699.67424917, 136.28333969)
+ .. controls (702.44758244, 139.24333962) and (705.16758237, 142.28333954) .. (708.15424896, 145.04333947)
+ .. controls (713.63424883, 149.91000602) and (720.66091532, 152.35000596) .. (727.23424849, 155.35000588)
+ .. controls (731.56758171, 157.07000584) and (731.92758170, 162.24333904) .. (732.67424835, 166.16333894)
+ .. controls (723.46091525, 167.77667224) and (714.14091548, 164.72333898) .. (705.96758235, 160.63000575)
+ .. controls (700.03424917, 157.68333916) and (693.82091599, 155.39000588) .. (687.82091614, 152.59000595)
+ .. controls (684.79424955, 153.49667259) and (682.08758295, 155.12333922) .. (679.58091634, 157.03000584)
+ .. controls (680.38091632, 167.76333890) and (682.68758293, 178.51000530) .. (681.42091630, 189.31000503)
+ .. controls (680.79424965, 193.81667159) and (681.86091629, 198.25667148) .. (682.78091626, 202.64333803)
+ .. controls (683.50091625, 202.24333804) and (684.95424954, 201.45667140) .. (685.67424952, 201.05667141)
+ .. controls (687.36758282, 198.41667147) and (689.34091610, 195.97667153) .. (691.35424938, 193.57667159)
+ .. controls (694.04758265, 194.40333824) and (696.83424925, 195.01667156) .. (699.39424918, 196.21667153)
+ .. controls (701.24758247, 198.09667148) and (702.44758244, 200.47000475) .. (704.11424906, 202.49667137)
+ .. controls (709.31424893, 207.03000459) and (715.47424878, 210.37667117) .. (722.04758195, 212.47000445)
+ .. controls (724.15424856, 214.63000440) and (726.15424851, 216.88333768) .. (728.10091513, 219.19000429)
+ .. controls (727.86091514, 220.85667091) and (727.62091514, 222.52333754) .. (727.40758181, 224.19000416)
+ .. controls (723.18091525, 223.24333752) and (719.78091534, 220.56333758) .. (716.82091541, 217.55000433)
+ .. controls (716.16758210, 224.28333749) and (713.46091550, 231.16333732) .. (716.06091543, 237.81667049)
+ .. controls (718.95424869, 236.79000385) and (721.88758195, 235.89667053) .. (724.86091521, 235.07000389)
+ .. controls (732.74091501, 242.52333704) and (743.15424809, 247.96333690) .. (747.62091464, 258.36333664)
+ (696.82091591, 220.16333759)
+ .. controls (700.36758249, 219.00333762) and (703.24758242, 216.63000435) .. (705.64758236, 213.81667109)
+ .. controls (704.32758239, 210.63000450) and (703.11424909, 207.39000458) .. (702.15424911, 204.07000466)
+ .. controls (700.64758248, 203.27000468) and (699.14091585, 202.45667137) .. (697.63424923, 201.64333806)
+ .. controls (696.60758258, 203.37667135) and (695.56758261, 205.08333797) .. (694.55424930, 206.80333793)
+ .. controls (695.31424928, 211.25667115) and (696.06091593, 215.71000437) .. (696.82091591, 220.16333759)
+ (749.11424794, 167.77667224)
+ .. controls (747.63424798, 165.07000564) and (746.10091468, 162.37667237) .. (744.63424805, 159.67000577)
+ .. controls (755.00758112, 160.13667243) and (764.79424755, 163.65667234) .. (774.58091397, 166.85667226)
+ .. controls (778.28758054, 167.81667224) and (780.35424716, 171.29667215) .. (782.99424709, 173.76333875)
+ .. controls (771.44758071, 174.45667207) and (759.56758101, 172.97667211) .. (749.11424794, 167.77667224)
+ (742.71424810, 179.96333860)
+ .. controls (740.74091481, 176.05667203) and (747.15424799, 179.88333860) .. (742.71424810, 179.96333860)
+ (713.83424882, 188.16333839)
+ .. controls (711.34091555, 184.93667181) and (709.32758227, 181.25667190) .. (706.18091568, 178.57667197)
+ .. controls (699.63424918, 177.63000532) and (692.48758269, 178.65667197) .. (687.60758281, 183.47000518)
+ .. controls (687.67424947, 177.49667199) and (687.62091614, 171.52333881) .. (687.64758281, 165.53667229)
+ .. controls (699.67424917, 169.11000554) and (711.88758220, 172.00333880) .. (723.98091523, 175.37667205)
+ .. controls (721.91424862, 176.56333868) and (719.84758200, 177.75000532) .. (717.79424872, 178.93667196)
+ .. controls (718.16758205, 181.56333856) and (718.52758204, 184.19000516) .. (718.88758203, 186.81667176)
+ .. controls (717.19424874, 187.27000508) and (715.51424878, 187.71000507) .. (713.83424882, 188.16333839)
+ (741.00758147, 214.85667106)
+ .. controls (737.16758157, 207.41667125) and (733.72758166, 199.53667144) .. (734.23424831, 190.96333832)
+ .. controls (735.32758162, 190.33667167) and (736.43424826, 189.69667169) .. (737.55424823, 189.07000504)
+ .. controls (738.12758155, 193.45667160) and (738.30091488, 197.91000482) .. (739.31424818, 202.21667138)
+ .. controls (740.48758149, 206.29667127) and (743.34091475, 210.61667117) .. (741.00758147, 214.85667106)
+ (701.99424912, 258.20333664)
+ .. controls (704.94091571, 255.97667003) and (708.68758228, 254.55000340) .. (711.04758222, 251.68333681)
+ .. controls (711.56758221, 247.73667024) and (712.63424885, 242.96333702) .. (709.48758226, 239.81667044)
+ .. controls (703.08758242, 233.87000392) and (696.68758258, 227.91000407) .. (690.47424940, 221.77667089)
+ .. controls (689.72758276, 223.44333751) and (688.99424944, 225.11000414) .. (688.27424946, 226.76333743)
+ .. controls (691.99424937, 232.81667061) and (695.06091596, 239.23000378) .. (698.54091587, 245.41667030)
+ .. controls (700.23424916, 249.49667019) and (700.87424914, 253.93667008) .. (701.99424912, 258.20333664)
+ (654.71425030, 137.15000634)
+ .. controls (658.28758354, 146.24333944) and (659.68758351, 156.59000585) .. (667.11424999, 163.60333901)
+ .. controls (667.80758330, 160.27000576) and (668.83424995, 157.00333917) .. (669.26091660, 153.63000592)
+ .. controls (668.40758329, 150.57667267) and (666.80758333, 147.80333940) .. (665.84758335, 144.79000615)
+ .. controls (665.35425003, 140.60333958) and (665.68758336, 136.36333969) .. (665.72758336, 132.15000646)
+ .. controls (664.06091673, 130.12333985) and (662.02091678, 128.45667322) .. (659.56758351, 127.47000658)
+ .. controls (657.88758355, 130.67000650) and (656.24758359, 133.88333975) .. (654.71425030, 137.15000634)}
+\def\fdulogo@emblem@kernel{%
+ (351.02572456, 574.53945678)
+ .. controls (353.31905783, 587.19278979) and (370.06572408, 593.55278963) .. (380.65239048, 586.95278980)
+ .. controls (386.01239035, 582.31278991) and (389.51905693, 574.99279010) .. (388.22572363, 567.81945694)
+ .. controls (386.66572367, 555.08612393) and (380.57239049, 543.57945755) .. (377.06572391, 531.37945785)
+ .. controls (375.69239061, 525.83279133) and (379.82572384, 521.44612477) .. (382.75905710, 517.29945821)
+ .. controls (419.97238950, 519.71279148) and (457.09238857, 523.61945805) .. (494.39905431, 524.81945802)
+ .. controls (505.81238735, 525.81945799) and (517.31905373, 525.21945801) .. (528.69238678, 524.05945804)
+ .. controls (539.05238652, 523.29945806) and (548.67905295, 513.85945829) .. (547.86571964, 503.17945856)
+ .. controls (547.22571965, 497.11279204) and (542.46571977, 490.89945887) .. (535.86571994, 491.12612553)
+ .. controls (523.49238691, 491.00612553) and (511.29238722, 493.79279213) .. (498.93238753, 494.09945879)
+ .. controls (478.77238803, 495.83279208) and (458.51905520, 495.72612541) .. (438.31905571, 495.01945876)
+ .. controls (427.34572265, 493.97945879) and (416.13238960, 494.20612545) .. (405.57238986, 490.60612554)
+ .. controls (398.26572338, 488.08612560) and (390.46572357, 486.52612564) .. (383.90572374, 482.24612575)
+ .. controls (379.85239050, 479.57945915) and (376.14572393, 475.11279259) .. (376.97239058, 469.93945939)
+ .. controls (378.22572388, 458.71279300) and (386.95905699, 449.31279324) .. (386.15905701, 437.71279353)
+ .. controls (383.69239041, 424.51279386) and (378.01239055, 412.21946083) .. (374.45239064, 399.31279449)
+ .. controls (371.06572406, 387.49946145) and (370.10572408, 375.17946176) .. (368.23905746, 363.07279540)
+ .. controls (367.66572414, 356.96612888) and (366.55905750, 350.91279570) .. (366.34572417, 344.76612919)
+ .. controls (363.49239091, 318.55279651) and (365.89239085, 292.17946383) .. (366.31905751, 265.91279782)
+ .. controls (366.58572417, 249.05946491) and (367.50572415, 232.21946533) .. (369.07905744, 215.44613242)
+ .. controls (369.79905742, 204.24613270) and (372.17239070, 193.21946631) .. (372.89239068, 182.01946659)
+ .. controls (372.62572402, 175.80613341) and (371.38572405, 167.51280028) .. (364.62572422, 165.19280034)
+ .. controls (358.59905770, 163.63280038) and (350.94572456, 163.64613371) .. (346.71905800, 168.96613358)
+ .. controls (338.13239155, 178.77946667) and (337.71905822, 192.48613299) .. (335.77239161, 204.72613269)
+ .. controls (331.25239172, 230.40613205) and (330.90572506, 256.55279806) .. (331.15905839, 282.55279741)
+ .. controls (288.67905945, 280.91279745) and (245.66572719, 283.05946406) .. (203.82572824, 274.09946429)
+ .. controls (200.02572833, 273.43279764) and (195.38572845, 270.87279770) .. (192.34572852, 274.64613094)
+ .. controls (185.49239536, 281.73946410) and (184.87906204, 292.20613050) .. (182.30572878, 301.25946361)
+ .. controls (185.73239536, 303.24613022) and (188.99906194, 305.72613016) .. (192.98572851, 306.45946348)
+ .. controls (217.54572789, 311.79279668) and (242.75906060, 313.05946331) .. (267.81239330, 313.27279664)
+ .. controls (289.33239277, 313.92612996) and (310.87905889, 315.92612991) .. (332.42572502, 314.57946327)
+ .. controls (332.63905835, 354.81946227) and (336.22572493, 396.36612790) .. (353.90572449, 433.12612698)
+ .. controls (355.45239111, 435.01946026) and (353.79905782, 436.64612689) .. (352.65239118, 438.15279352)
+ .. controls (344.61239138, 431.49946035) and (339.75905817, 422.07279392) .. (335.77239161, 412.61946082)
+ .. controls (331.29239172, 401.53946110) and (322.95905859, 391.68612801) .. (322.25239194, 379.32612832)
+ .. controls (320.61239198, 363.93946204) and (319.06572536, 347.01946246) .. (308.14572563, 335.00612943)
+ .. controls (294.86572596, 321.71279643) and (275.35905978, 317.88612986) .. (257.25239357, 317.31279654)
+ .. controls (244.57239389, 317.01946321) and (231.38572755, 315.24612992) .. (219.17239452, 319.59279648)
+ .. controls (199.06572836, 326.67279631) and (183.39906208, 345.41946250) .. (180.62572882, 366.63279531)
+ .. controls (176.82572891, 393.49946130) and (177.69239556, 421.24612727) .. (185.07906204, 447.43279329)
+ .. controls (187.31906198, 454.19279312) and (188.82572861, 462.31279291) .. (195.33239512, 466.37945948)
+ .. controls (225.99906102, 487.49945895) and (267.79905997, 488.05945894) .. (300.91905914, 472.39279266)
+ .. controls (312.34572552, 465.79279283) and (313.77239216, 451.15279319) .. (315.38572545, 439.37946015)
+ .. controls (318.67905870, 442.36612675) and (320.02572533, 446.68612664) .. (322.13239195, 450.47279321)
+ .. controls (330.99905839, 465.63279283) and (344.74572471, 477.15279254) .. (354.63905780, 491.48612552)
+ .. controls (353.30572450, 493.36612547) and (350.90572456, 494.19279212) .. (349.06572461, 495.49945875)
+ .. controls (339.71905817, 486.91279230) and (328.70572512, 479.15279249) .. (315.81239210, 477.43279254)
+ .. controls (308.29239229, 476.05945924) and (300.81239248, 482.25945908) .. (300.05239250, 489.71279223)
+ .. controls (300.29239249, 493.88612546) and (303.38572575, 496.91279205) .. (305.75905902, 500.05945864)
+ .. controls (316.66572542, 513.49945830) and (329.54572509, 525.39279134) .. (338.87905819, 540.08612430)
+ .. controls (345.31905803, 550.57945737) and (348.10572463, 562.72612374) .. (351.02572456, 574.53945678)
+ (211.99906137, 380.15279497)
+ .. controls (213.41239466, 369.35279524) and (216.90572791, 357.49946220) .. (226.42572767, 351.12612903)
+ .. controls (238.31906071, 346.09946249) and (251.69239371, 345.40612917) .. (264.37239339, 347.04612913)
+ .. controls (269.66572659, 347.21946246) and (275.17239312, 348.29946243) .. (279.49239301, 351.53946235)
+ .. controls (289.10572611, 358.76612884) and (292.73239268, 371.93946184) .. (290.85239273, 383.45946155)
+ .. controls (264.70572672, 389.28612807) and (238.03906072, 383.60612822) .. (211.99906137, 380.15279497)
+ (220.85239448, 442.37946008)
+ .. controls (211.53239471, 434.35279361) and (209.46572810, 421.25946061) .. (209.38572810, 409.60612757)
+ .. controls (235.99906077, 409.13946091) and (262.61239343, 411.53946085) .. (289.21239277, 412.67279416)
+ .. controls (289.95905942, 420.89946062) and (289.99905942, 429.51279373) .. (286.93239283, 437.32612687)
+ .. controls (284.69239288, 443.07279340) and (279.74572634, 448.15279327) .. (273.42572650, 449.03279325)
+ .. controls (266.31906001, 450.25945988) and (259.06572686, 450.32612655) .. (251.90572704, 451.01945986)
+ .. controls (241.14572730, 450.67279321) and (229.57239426, 449.28612657) .. (220.85239448, 442.37946008)
+ (450.54572207, 484.52612569)
+ .. controls (463.87905507, 485.19279234) and (477.23905474, 484.59279236) .. (490.58572107, 484.91279235)
+ .. controls (506.99905399, 486.12612565) and (524.78572021, 485.08612568) .. (538.90571986, 475.72612591)
+ .. controls (546.77238633, 470.17945938) and (548.85238628, 459.53945965) .. (547.14571965, 450.56612654)
+ .. controls (546.15905301, 446.07279332) and (545.11905304, 440.93946012) .. (541.03905314, 438.16612685)
+ .. controls (528.78572011, 428.23279377) and (512.14572053, 427.39279379) .. (497.05238757, 427.35279379)
+ .. controls (466.02572168, 428.56612709) and (434.85238913, 425.24612717) .. (403.91905657, 428.87279375)
+ .. controls (397.62572339, 429.84612706) and (392.70572352, 435.05946026) .. (390.78572356, 440.95279345)
+ .. controls (388.53239029, 447.27279329) and (388.27905696, 454.15279312) .. (388.61239028, 460.79279295)
+ .. controls (390.07905691, 469.07279275) and (397.18572340, 474.97945926) .. (404.33238989, 478.60612584)
+ .. controls (418.87905619, 485.12612568) and (435.21238912, 482.07279242) .. (450.54572207, 484.52612569)
+ (415.59905628, 458.27279302)
+ .. controls (412.73238968, 456.53945973) and (413.49238966, 452.84612648) .. (413.25238967, 450.03279322)
+ .. controls (414.81238963, 448.92612658) and (416.33238959, 447.43279329) .. (418.39905621, 447.41945995)
+ .. controls (447.37238882, 446.75279330) and (476.33238809, 448.08612660) .. (505.29238737, 448.96612658)
+ .. controls (510.42572057, 449.33945991) and (515.23905379, 451.27279319) .. (520.01238700, 453.05945981)
+ .. controls (519.62572034, 456.45945973) and (518.38572037, 459.73945965) .. (515.66572044, 461.93945959)
+ .. controls (487.70572114, 462.57945957) and (459.71905517, 462.08612625) .. (431.78572254, 460.81945962)
+ .. controls (426.35905601, 460.52612629) and (420.41238949, 461.31279294) .. (415.59905628, 458.27279302)
+ (434.01238915,419.45946065)
+ .. controls (450.58572207, 421.12612728) and (467.27905498, 420.31279396) .. (483.87905457, 421.35279394)
+ .. controls (500.83905415, 422.59279391) and (517.85238705, 420.91279395) .. (534.57238664, 418.08612735)
+ .. controls (542.10571978, 417.03279405) and (547.46571965, 410.41946088) .. (549.71905292, 403.55279438)
+ .. controls (552.38571952, 395.33946126) and (553.19905284, 385.84612816) .. (548.91905294, 378.03279502)
+ .. controls (544.65238638, 370.49946188) and (536.97238658, 364.72612869) .. (528.23905346, 363.79279538)
+ .. controls (491.77238771, 359.75279548) and (454.99905529, 362.17946208) .. (418.42572287, 360.08612880)
+ .. controls (411.46572305, 358.71279550) and (403.94572323, 360.21946213) .. (398.41239004, 364.75279535)
+ .. controls (389.18572360, 372.11279517) and (385.21239037, 385.13946151) .. (388.13239030, 396.48612789)
+ .. controls (389.59905693, 400.72612779) and (392.98572351, 403.88612771) .. (395.93239010, 407.13946096)
+ .. controls (400.77238998, 412.32612750) and (407.02572316, 416.53946073) .. (414.21238964, 417.44612737)
+ .. controls (420.79905615, 418.16612735) and (427.35905598, 419.32612732) .. (434.01238915, 419.45946065)
+ (434.35905581, 393.23279464)
+ .. controls (427.49238931, 392.47279466) and (420.30572283, 393.41946130) .. (413.71905632, 390.99279470)
+ .. controls (413.31905633, 390.03279472) and (412.51905635, 388.11279477) .. (412.13238970, 387.15279479)
+ .. controls (413.11905634, 385.65946150) and (413.75905632, 383.40612822) .. (415.87905627, 383.20612823)
+ .. controls (424.22572273, 380.80612829) and (432.86572251, 383.40612822) .. (441.34572230, 383.33946156)
+ .. controls (465.45238836, 385.19279484) and (489.63905443, 385.57946150) .. (513.75905382, 387.15279479)
+ .. controls (517.51905373, 387.05946146) and (519.97238700, 390.40612805) .. (521.50572030, 393.41946130)
+ .. controls (509.73238726, 396.53946123) and (497.45238756, 395.43279459) .. (485.46572120, 394.75279460)
+ .. controls (468.42572162, 394.47279461) and (451.41238871, 393.20612798) .. (434.35905581, 393.23279464)
+ (409.93238975, 351.67279568)
+ .. controls (434.37238914, 354.71279560) and (459.05238852, 354.63279561) .. (483.62572124, 355.91279557)
+ .. controls (485.82572119, 350.48612904) and (483.75905457, 344.68612919) .. (479.95905467, 340.59279596)
+ .. controls (476.77238808, 336.71279605) and (472.75905485, 333.45946280) .. (470.66572157, 328.76612959)
+ .. controls (481.29238797, 329.64612956) and (491.83905437, 331.35279619) .. (502.50572077, 331.65946285)
+ .. controls (510.19905391, 333.91279612) and (513.45238716, 342.01946259) .. (519.03905369, 346.97946246)
+ .. controls (523.06572026, 349.80612906) and (527.89238680, 353.35279564) .. (533.07905334, 351.55279568)
+ .. controls (540.77238648, 348.75279575) and (544.71905305, 339.03279600) .. (542.39905311, 331.43279619)
+ .. controls (536.53238659, 309.72613006) and (530.59905340, 287.99279727) .. (522.91905359, 266.85946447)
+ .. controls (511.78572054, 262.21946458) and (499.50572085, 266.01946449) .. (487.89238780, 265.24613117)
+ .. controls (483.34572125, 264.73946452) and (478.39905471, 265.49946450) .. (474.30572148, 263.07279790)
+ .. controls (474.23905481, 261.36613127) and (474.34572147, 259.65946465) .. (474.65238813, 257.96613136)
+ .. controls (478.51905470, 242.35279841) and (481.25238797, 226.47279881) .. (485.98572118, 211.08613253)
+ .. controls (487.06572116, 204.00613271) and (487.67905447, 196.05946624) .. (484.25238789, 189.51279973)
+ .. controls (476.31905476, 184.71279985) and (465.85238835, 189.35279974) .. (460.89238848, 196.41946623)
+ .. controls (451.43905538, 210.80613254) and (446.58572217, 227.61946545) .. (443.34572225, 244.36613170)
+ .. controls (442.22572228, 249.07279825) and (441.66572229, 254.07279812) .. (438.85238903, 258.15279802)
+ .. controls (419.99905617, 259.47279799) and (405.93238985, 243.37946505) .. (387.73239031, 241.71279843)
+ .. controls (379.39905718, 242.19279842) and (375.17239062, 251.88613151) .. (376.69239058, 259.24613132)
+ .. controls (377.26572390, 264.15279787) and (381.23905714, 267.63279778) .. (385.10572371, 270.17946438)
+ .. controls (391.30572355, 273.80613096) and (398.41239004, 275.27279759) .. (405.15905654, 277.51279753)
+ .. controls (415.71905627, 280.60613079) and (426.22572268, 284.92613068) .. (437.39905573, 284.68613069)
+ .. controls (437.42572240, 291.23279719) and (437.54572239, 297.80613036) .. (436.70572242, 304.32613020)
+ .. controls (418.06572288, 303.93946354) and (402.18572328, 292.19279717) .. (383.91905707, 289.95279722)
+ .. controls (379.93239050, 289.39279724) and (376.61239058, 292.69946382) .. (375.42572395, 296.21946373)
+ .. controls (373.71905732, 301.08613028) and (374.13239065, 306.87279680) .. (376.93239058, 311.27279669)
+ .. controls (384.66572372, 317.89946319) and (395.17239012, 320.05946314) .. (405.07905654, 320.76612979)
+ .. controls (417.17238957, 322.07279642) and (429.94572258, 321.69946310) .. (441.02572231, 327.49946295)
+ .. controls (440.74572231, 329.12612958) and (440.49238899, 330.76612954) .. (440.25238899, 332.37946283)
+ .. controls (429.37238927, 333.83279613) and (417.82572289, 328.43279626) .. (407.47905648, 333.69946280)
+ .. controls (400.06572333, 337.24612937) and (401.46572330, 350.71279570) .. (409.93238975, 351.67279568)
+ (470.38572157, 306.49946348)
+ .. controls (470.22572158, 300.08613030) and (470.13238825, 293.64613046) .. (470.43905491, 287.23279729)
+ .. controls (479.91905467, 288.63279726) and (489.97238775, 287.17946396) .. (499.06572086, 290.41946388)
+ .. controls (502.74572076, 295.76613041) and (502.45238744, 302.59279691) .. (502.78572076, 308.79279675)
+ .. controls (491.93238770, 310.05946339) and (481.17238797, 307.24613012) .. (470.38572157, 306.49946348)}
+\def\fdulogo@emblem@F{%
+ ( 85.70573119, 304.00613021)
+ .. controls ( 90.07906441, 311.59279668) and (100.06573083, 314.24612995) .. (108.09239730, 311.64613001)
+ .. controls (103.82573074, 301.69946360) and (107.82573064, 290.84613053) .. (112.17239720, 281.68613076)
+ .. controls (119.41239701, 280.19279747) and (126.06573018, 284.45946403) .. (132.95906334, 285.88613066)
+ .. controls (137.94572988, 286.45946398) and (139.27906318, 291.77946384) .. (141.21239647, 295.53946375)
+ .. controls (142.14572978, 295.53946375) and (144.01239640, 295.52613042) .. (144.94572971, 295.52613042)
+ .. controls (148.49239629, 287.19279729) and (154.53239614, 279.35279749) .. (153.91906282, 269.83279773)
+ .. controls (149.89239625, 270.88613103) and (145.59906303, 272.07279767) .. (141.47906313, 270.85946437)
+ .. controls (125.89239685, 265.43279784) and (110.17239725, 260.40613130) .. ( 94.46573097, 255.35279809)
+ .. controls ( 89.01239777, 253.68613146) and ( 84.71906455, 249.71279823) .. ( 80.70573132, 245.81946499)
+ .. controls ( 73.74573149, 252.05946484) and ( 70.87906489, 261.25946461) .. ( 68.05239830, 269.87279773)
+ .. controls ( 64.50573172, 280.96613078) and ( 57.47906523, 291.33946386) .. ( 58.22573188, 303.44613022)
+ .. controls ( 62.19906511, 305.32613017) and ( 65.98573168, 307.81946344) .. ( 70.30573158, 308.83279675)
+ .. controls ( 74.57239814, 304.05946354) and ( 71.82573154, 297.28613037) .. ( 71.27906488, 291.71279718)
+ .. controls ( 72.87906484, 283.55279738) and ( 77.30573140, 276.27279757) .. ( 80.70573132, 268.76613109)
+ .. controls ( 88.21239779, 270.85946437) and ( 96.07906426, 272.48613099) .. (102.67906410, 276.83279755)
+ .. controls (102.70573077, 283.04613073) and ( 99.11906419, 288.36613060) .. ( 97.53239756, 294.19279712)
+ .. controls ( 95.97239760, 299.61946365) and ( 90.13239775, 301.51279693) .. ( 85.70573119, 304.00613021)}
+\def\fdulogo@emblem@U@i{%
+ ( 50.99906539, 392.96612798)
+ .. controls ( 54.67906530, 390.99279470) and ( 58.05239855, 387.84612811) .. ( 62.49239844, 387.95279477)
+ .. controls ( 76.31906476, 388.51279476) and ( 90.14573108, 389.13946141) .. (103.97239740, 389.69946140)
+ .. controls (110.18573058, 389.12612808) and (117.35906373, 390.09946139) .. (122.42573027, 385.65946150)
+ .. controls (129.65239676, 379.60612832) and (131.54573004, 369.59279523) .. (131.63906338, 360.61946212)
+ .. controls (131.19906339, 353.85946229) and (131.29239672, 346.59279581) .. (127.78573014, 340.53946263)
+ .. controls (126.01239685, 337.35279604) and (122.75906360, 335.13946276) .. (119.15906369, 334.52612944)
+ .. controls (101.30573080, 331.45946285) and ( 83.07906459, 332.15279617) .. ( 65.17239837, 329.57946290)
+ .. controls ( 61.19906514, 328.36612960) and ( 57.73239856, 324.13946304) .. ( 53.25239867, 325.91279632)
+ .. controls ( 51.42573205, 332.44612949) and ( 51.81239870, 339.35279599) .. ( 53.03906534, 345.95279582)
+ .. controls ( 74.42573147, 345.69946250) and ( 95.83906427, 346.47279581) .. (117.07906374, 348.97946241)
+ .. controls (119.71906367, 350.11279572) and (120.93239698, 353.23279564) .. (121.71906362, 355.83279558)
+ .. controls (123.27906358, 362.08612875) and (121.62573029, 368.72612859) .. (119.06573036, 374.47279511)
+ .. controls (117.10573041, 378.72612834) and (111.81239720, 378.75279500) .. (107.82573064, 378.64612834)
+ .. controls ( 92.15906436, 378.25946168) and ( 76.47906475, 377.84612836) .. ( 60.86573181, 376.51279506)
+ .. controls ( 58.59906520, 373.07279515) and ( 56.30573193, 366.75279530) .. ( 51.03906539, 368.65946192)
+ .. controls ( 50.62573207, 369.13946191) and ( 49.82573209, 370.11279522) .. ( 49.41239876, 370.59279521)
+ .. controls ( 47.93239880, 378.00612836) and ( 46.78573216, 386.17946148) .. ( 50.99906539, 392.96612798)}
+\def\fdulogo@emblem@D{%
+ (64.02573173, 473.6194593)
+ .. controls ( 78.02573138, 477.27279254) and ( 92.67906435, 474.61945927) .. (106.45239734, 471.21945936)
+ .. controls (111.21239722, 469.93945939) and (116.33239709, 469.28612607) .. (120.49239699, 466.43279281)
+ .. controls (127.27906348, 462.27279292) and (131.21239672, 454.53945978) .. (132.19906336, 446.80612664)
+ .. controls (133.41239666, 440.40612680) and (130.65239673, 434.23279362) .. (129.90573009, 427.96612711)
+ .. controls (128.55906345, 418.87279400) and (127.78573014, 408.80612759) .. (121.33239697, 401.63279443)
+ .. controls (114.69239713, 407.53946095) and (105.42573070, 407.83279428) .. ( 97.10573091, 409.17946091)
+ .. controls ( 80.67906465, 411.91279417) and ( 63.93239840, 417.91279402) .. ( 47.22573215, 413.43279414)
+ .. controls ( 48.17239880, 428.72612709) and ( 50.41239874, 443.89946004) .. ( 52.57239869, 459.05945966)
+ .. controls ( 53.59906533, 465.39279284) and ( 57.58573189, 471.75279268) .. ( 64.02573173, 473.61945930)
+ ( 67.21239832, 459.93945964)
+ .. controls ( 60.79906515, 452.17945983) and ( 60.07906516, 441.68612676) .. ( 58.89239853, 432.11279367)
+ .. controls ( 78.57239804, 427.71279378) and ( 98.43906421, 424.23279387) .. (118.22573038, 420.35279396)
+ .. controls (119.94573033, 426.56612714) and (122.21239694, 432.80612699) .. (122.02573028, 439.35279349)
+ .. controls (121.94573028, 443.07279340) and (121.23906364, 447.20612663) .. (118.14573038, 449.64612656)
+ .. controls (107.43906398, 459.37945965) and ( 92.27906436, 460.72612629) .. ( 78.53239804, 462.00612626)
+ .. controls ( 74.75906480, 461.88612626) and ( 69.99906492, 463.28612622) .. ( 67.21239832, 459.93945964)}
+\def\fdulogo@emblem@A{%
+ (107.38573065, 530.41945788)
+ .. controls (111.05239722, 526.09945799) and (114.81239713, 521.85945809) .. (118.71906370, 517.76612486)
+ .. controls (120.58573032, 520.44612479) and (122.43906361, 523.13945806) .. (124.26573023, 525.84612466)
+ .. controls (118.67906370, 527.49945795) and (113.02573051, 528.93945792) .. (107.38573065, 530.41945788)
+ ( 89.70573109, 544.55279086)
+ .. controls ( 91.74573104, 545.16612418) and ( 93.89239765, 544.69945752) .. ( 95.93239760, 544.41945753)
+ .. controls (115.55906378, 540.88612428) and (134.86572996, 535.79279108) .. (154.51906280, 532.49945783)
+ .. controls (160.10572933, 531.44612452) and (167.25239582, 533.00612448) .. (170.87906239, 527.48612462)
+ .. controls (168.58572912, 523.08612473) and (165.61239586, 519.11279149) .. (162.43906261, 515.32612492)
+ .. controls (157.33239607, 519.85945814) and (150.53239624, 521.39279144) .. (144.02572973, 522.69945807)
+ .. controls (139.35906318, 516.29945823) and (134.78572996, 509.81945839) .. (130.29239674, 503.28612522)
+ .. controls (132.79906335, 500.36612530) and (135.02572996, 497.21945871) .. (137.59906323, 494.33945878)
+ .. controls (140.86572981, 490.48612554) and (146.43906301, 490.76612554) .. (150.51906290, 488.17945893)
+ .. controls (145.53239636, 481.44612577) and (143.07906309, 472.28612600) .. (135.02572996, 468.32612610)
+ .. controls (120.83906365, 493.68612546) and (101.47906413, 515.53945825) .. ( 85.14573120, 539.44612432)
+ .. controls ( 86.58573117, 541.20612428) and ( 87.99906447, 543.03279090) .. ( 89.70573109, 544.55279086)}
+\def\fdulogo@emblem@N@i{%
+ (153.31906283, 624.63278886)
+ .. controls (156.06572943, 630.35278871) and (161.94572928, 633.68612196) .. (167.59906248, 635.97945524)
+ .. controls (179.55906218, 618.63278901) and (194.97239513, 604.12612270) .. (208.77239478, 588.31278976)
+ .. controls (212.86572801, 584.17945653) and (219.05239452, 578.93945667) .. (215.43906128, 572.49945683)
+ .. controls (210.57239474, 572.80612349) and (206.01239485, 574.61945677) .. (201.35906163, 575.87279008)
+ .. controls (183.07906209, 581.17945661) and (165.26572920, 588.16612310) .. (146.61239633, 592.09945634)
+ .. controls (156.63906275, 580.55278996) and (168.83906245, 571.23279019) .. (179.42572885, 560.24612380)
+ .. controls (183.30572875, 555.93945724) and (189.82572859, 557.67279053) .. (194.91906179, 556.27279057)
+ .. controls (192.39906186, 547.75279078) and (184.19906206, 542.28612425) .. (177.15906224, 537.52612437)
+ .. controls (172.38572902, 539.67279098) and (172.66572902, 546.39279081) .. (168.70572912, 549.51279073)
+ .. controls (157.05239607, 560.07279047) and (146.07906301, 571.32612352) .. (134.61239663, 582.08612325)
+ .. controls (131.57239671, 585.24612317) and (126.90573016, 585.17945651) .. (122.93239693, 586.12612315)
+ -- (119.852397, 589.08612308)
+ .. controls (124.66573022, 596.48612289) and (131.69239671, 601.99278942) .. (137.39906323, 608.63278926)
+ .. controls (154.65239613, 603.63278938) and (171.90572904, 598.63278951) .. (189.26572860, 594.00612296)
+ .. controls (183.41239541, 601.83278943) and (175.70572894, 608.04612260) .. (169.03906244, 615.16612243)
+ .. controls (165.26572920, 619.17945566) and (159.41239601, 617.56612237) .. (154.55906280, 618.04612235)
+ .. controls (152.37239619, 619.28612232) and (152.86572951, 622.55278891) .. (153.31906283, 624.63278886)}
+\def\fdulogo@emblem@U@ii{%
+ (258.77239353, 689.04612058)
+ .. controls (263.03906009, 694.20612045) and (270.21239324, 695.88612041) .. (276.62572642, 694.88612043)
+ .. controls (276.59905975, 690.75278720) and (275.33239312, 686.48612064) .. (276.51905975, 682.41945408)
+ .. controls (282.11905961, 665.88612116) and (289.74572609, 649.93945489) .. (293.02572601, 632.69945532)
+ .. controls (294.21239264, 626.47278881) and (291.66572604, 619.00612233) .. (285.58572619, 616.32612240)
+ .. controls (278.66572637, 613.15278914) and (271.43905988, 610.23278922) .. (263.81239340, 609.36612257)
+ .. controls (254.57239364, 608.23278927) and (245.35906053, 614.29945578) .. (241.86572729, 622.75278890)
+ .. controls (236.78572741, 634.63278861) and (232.09239420, 646.68612164) .. (227.06572766, 658.57945467)
+ .. controls (224.87906104, 664.13945454) and (217.69239456, 665.99278782) .. (216.43906126, 672.12612100)
+ .. controls (224.42572772, 675.79278758) and (232.47906085, 680.09945414) .. (241.53239396, 680.01945414)
+ .. controls (240.37239399, 674.65945427) and (235.95906077, 669.33945441) .. (238.66572737, 663.75278788)
+ .. controls (244.29239389, 650.99278820) and (248.97239378, 637.77945519) .. (255.50572695, 625.41945550)
+ .. controls (257.49239356, 621.37945560) and (262.10572678, 619.03278900) .. (266.54572667, 619.45945565)
+ .. controls (273.71905982, 620.08612230) and (280.29239299, 623.95278887) .. (285.22572620, 629.05945541)
+ .. controls (285.79905952, 636.09945524) and (282.41239294, 642.45945508) .. (280.02572633, 648.84612158)
+ .. controls (275.86572644, 658.92612133) and (272.35905986, 669.28612107) .. (267.86572664, 679.23278749)
+ .. controls (266.06572668, 683.59278738) and (260.81239348, 684.91278735) .. (258.77239353, 689.04612058)}
+\def\fdulogo@emblem@N@ii{%
+ (345.57239136, 707.99278677)
+ .. controls (351.03905789, 715.44611992) and (361.02572431, 712.24612000) .. (368.81239078, 712.56611999)
+ .. controls (367.34572415, 708.07278677) and (363.99905757, 704.12612020) .. (363.83905757, 699.28612032)
+ .. controls (365.07905754, 679.73945415) and (367.55905748, 660.25945463) .. (368.05239080, 640.65945512)
+ .. controls (368.63905745, 636.84612188) and (362.54572427, 633.19278864) .. (360.34572432, 637.16612188)
+ .. controls (349.19905794, 652.40612150) and (338.90572486, 668.24612110) .. (328.15905846, 683.76612071)
+ .. controls (326.07905851, 686.48612064) and (324.19905856, 690.83278720) .. (320.06572533, 690.09945389)
+ .. controls (319.41239201, 685.96612066) and (319.43905868, 681.75278743) .. (320.21239199, 677.63278753)
+ .. controls (322.09239195, 666.87278780) and (322.53239194, 655.93945474) .. (324.17239190, 645.15278834)
+ .. controls (325.58572519, 640.72612179) and (329.97239175, 638.20612185) .. (332.14572503, 634.19278862)
+ .. controls (326.27905851, 628.95278875) and (317.94572538, 628.97945541) .. (310.55905890, 628.49945543)
+ .. controls (305.85239235, 632.85945532) and (311.27905888, 638.31278851) .. (311.17239222, 643.37945505)
+ .. controls (310.53239224, 656.73945472) and (307.94572563, 669.89945439) .. (306.62572567, 683.19278739)
+ .. controls (306.25239234, 686.61945397) and (306.75905900, 690.33945388) .. (304.94572571, 693.44612047)
+ .. controls (302.85239243, 697.00612038) and (300.17239250, 700.25945363) .. (298.98572586, 704.29945353)
+ .. controls (306.07905901, 706.59278681) and (314.30572548, 709.81945339) .. (321.50572530, 706.32612015)
+ .. controls (335.55905828, 694.53945378) and (342.13239145, 675.93945424) .. (356.90572441, 664.89945452)
+ .. controls (356.95905774, 675.96612091) and (354.50572447, 686.87278730) .. (354.14572448, 697.93945369)
+ .. controls (353.74572449, 702.85945357) and (348.65239128, 704.89945352) .. (345.57239136, 707.99278677)}
+\def\fdulogo@emblem@I@i{%
+ (393.63905683, 711.84612001)
+ .. controls (401.78572329, 713.56611997) and (410.42572307, 711.12612003) .. (418.22572288, 708.49945343)
+ .. controls (419.49238951, 706.96612013) and (420.79905615, 704.49945353) .. (418.99905619, 702.80612024)
+ .. controls (417.34572290, 700.15278697) and (413.27905633, 699.49945365) .. (412.61238968, 696.23278707)
+ .. controls (410.30572308, 680.88612078) and (409.26572310, 665.35278784) .. (406.74572316, 650.01945489)
+ .. controls (407.15905649, 644.20612170) and (412.57238969, 639.67278848) .. (411.42572305, 633.57945530)
+ .. controls (402.90572326, 634.09945529) and (393.87905682, 633.55278863) .. (385.95905702, 637.24612187)
+ .. controls (382.23905711, 642.79278840) and (392.01239020, 645.07278835) .. (392.18572353, 650.45945488)
+ .. controls (394.46572347, 666.68612114) and (395.21239012, 683.08612073) .. (397.15905674, 699.33945366)
+ .. controls (396.67905675, 703.57945355) and (388.99905694, 707.79278678) .. (393.63905683, 711.84612001)}
+\def\fdulogo@emblem@V{%
+ (441.78572229, 703.56612022)
+ .. controls (448.49238879, 702.35278691) and (455.27905528, 701.24612027) .. (461.71905512, 698.95278700)
+ .. controls (463.45238841, 698.27278702) and (465.39905503, 697.71278703) .. (466.45238834, 696.01945374)
+ .. controls (466.90572166, 691.77945384) and (462.97238843, 688.87278725) .. (461.18572180, 685.39278734)
+ .. controls (460.79905515, 673.55278763) and (460.79905515, 661.69945460) .. (461.15905514, 649.85945489)
+ .. controls (460.83905515, 646.92612163) and (463.10572176, 644.73945502) .. (464.71905505, 642.59278841)
+ .. controls (473.78572149, 651.93945484) and (480.62572132, 663.12612123) .. (488.50572112, 673.44612097)
+ .. controls (491.79905437, 677.59278753) and (488.85238778, 683.29945406) .. (491.63905438, 687.63278728)
+ .. controls (498.55905420, 687.17945396) and (507.41238731, 686.35278731) .. (511.02572056, 679.44612082)
+ .. controls (503.19905409, 674.83278760) and (496.61238758, 668.47278776) .. (491.50572105, 660.96612128)
+ .. controls (480.99905464, 647.37945495) and (471.69238821, 632.75278865) .. (459.53238851, 620.52612229)
+ .. controls (456.67905525, 622.16612225) and (453.65238866, 623.43278889) .. (450.57238874, 624.53945553)
+ .. controls (448.95905544, 641.12612178) and (447.43905548, 657.71278803) .. (445.82572219, 674.29945428)
+ .. controls (445.07905554, 679.45945415) and (445.34572220, 684.76612069) .. (443.85238890, 689.79278723)
+ .. controls (442.51905560, 694.27278712) and (441.53238896, 698.87278700) .. (441.78572229, 703.56612022)}
+\def\fdulogo@emblem@E{%
+ (526.98572016, 668.59278776)
+ .. controls (530.17238675, 669.21945441) and (532.65238668, 666.80612114) .. (535.09238662, 665.19278784)
+ .. controls (547.45238631, 655.96612141) and (561.49238596, 649.28612157) .. (573.99905232, 640.27278847)
+ .. controls (578.85238553, 635.77945524) and (575.13238562, 627.07278880) .. (569.21238577, 625.37945550)
+ .. controls (565.73238586, 639.41945515) and (550.83905290, 644.23278837) .. (539.90571984, 651.08612153)
+ .. controls (535.22571995, 646.21945498) and (529.57238676, 641.72612176) .. (527.15905349, 635.21945526)
+ .. controls (529.51905343, 629.52612207) and (535.87905327, 627.33945546) .. (540.77238648, 624.31278886)
+ .. controls (546.33238634, 620.17945563) and (553.49238616, 625.57945550) .. (559.19905269, 622.00612226)
+ .. controls (557.10571941, 614.04612245) and (552.87905284, 605.24612267) .. (544.41238639, 602.64612274)
+ .. controls (542.49238644, 612.75278915) and (533.62571999, 619.48612232) .. (524.83905355, 623.59278888)
+ .. controls (521.87905362, 625.23278884) and (519.13238702, 622.43278891) .. (517.53238706, 620.20612230)
+ .. controls (514.90572046, 616.47278906) and (511.87905387, 612.81945582) .. (510.49238724, 608.40612260)
+ .. controls (509.59905393, 605.47278934) and (511.30572055, 602.61945607) .. (513.65238716, 600.96612278)
+ .. controls (519.42572035, 596.49945623) and (525.18572020, 591.80612301) .. (531.94572003, 588.91278975)
+ .. controls (536.98571991, 588.85945642) and (541.79905312, 590.76612304) .. (546.73238633, 591.63278968)
+ .. controls (550.63905290, 583.88612321) and (541.33238647, 575.32612342) .. (533.66571999, 578.12612335)
+ .. controls (521.42572030, 583.35278989) and (511.61238721, 592.63278966) .. (500.49238749, 599.72612281)
+ .. controls (495.63905428, 603.19278939) and (489.46572110, 605.95278932) .. (487.42572115, 612.03278917)
+ .. controls (495.85238760, 615.57945575) and (501.03905414, 623.43278889) .. (505.39905403, 631.05945536)
+ .. controls (511.77238721, 642.09945509) and (521.27905363, 651.56612152) .. (524.62572022, 664.15278787)
+ .. controls (525.11905354, 665.76612116) and (525.31905353, 667.68612111) .. (526.98572016, 668.59278776)}
+\def\fdulogo@emblem@R{%
+ (594.53238514, 624.33945553)
+ .. controls (604.35905156, 620.15278897) and (610.29238474, 610.84612253) .. (618.54571787, 604.51278936)
+ .. controls (626.91905099, 597.44612287) and (634.30571748, 587.99278977) .. (635.51905078, 576.76612339)
+ .. controls (636.38571742, 567.01945696) and (628.43905096, 557.52612387) .. (618.63905120, 556.84612388)
+ .. controls (612.81238468, 556.05945724) and (607.19905149, 559.85945714) .. (601.46571830, 557.91279052)
+ .. controls (599.13238502, 548.69945742) and (595.37238512, 539.60612432) .. (596.02571843, 529.89945789)
+ .. controls (596.55905175, 525.01945801) and (590.23905191, 525.37945800) .. (587.15905199, 526.69945797)
+ .. controls (579.63905218, 528.67279126) and (576.29238559, 538.76612434) .. (580.51905215, 545.09945751)
+ .. controls (584.26571873, 550.67279071) and (587.94571863, 556.56612389) .. (589.05238527, 563.32612372)
+ .. controls (589.65238526, 567.80612361) and (587.42571865, 572.03279017) .. (584.82571871, 575.51279008)
+ .. controls (584.02571873, 575.35279009) and (582.41238544, 575.04612343) .. (581.61238546, 574.88612343)
+ .. controls (576.83905225, 570.57945687) and (571.67905237, 566.53945698) .. (567.95905247, 561.21945711)
+ .. controls (567.26571915, 557.91279052) and (567.86571914, 553.57945730) .. (564.86571921, 551.31279069)
+ .. controls (561.95905262, 550.63279071) and (560.17238600, 553.53945730) .. (558.30571938, 555.21945726)
+ .. controls (554.73238613, 559.59279048) and (550.77238623, 563.65945705) .. (547.39905298, 568.17945693)
+ .. controls (545.87905302, 569.69945690) and (546.42571967, 571.96612351) .. (546.21238634, 573.85945679)
+ .. controls (549.82571959, 575.89945674) and (554.03905282, 574.81945677) .. (557.94571938, 575.44612342)
+ .. controls (561.51905263, 577.15279004) and (563.70571924, 580.59278996) .. (566.37238584, 583.36612322)
+ .. controls (574.14571898, 591.17945636) and (581.69238546, 599.20612283) .. (589.57238526, 606.91278930)
+ .. controls (594.50571847, 611.35278919) and (593.13238517, 618.48612234) .. (594.53238514, 624.33945553)
+ (592.65238518, 585.5394565)
+ .. controls (591.53238521, 581.93945659) and (593.85238515, 578.40612335) .. (596.10571843, 575.77945674)
+ .. controls (598.30571838, 573.47279014) and (600.42571832, 570.77945687) .. (603.53238491, 569.68612356)
+ .. controls (612.70571802, 566.64612364) and (624.47905105, 576.00612341) .. (621.10571781, 585.80612316)
+ .. controls (617.58571789, 591.11278969) and (613.22571800, 596.53945623) .. (606.97238483, 598.64612284)
+ .. controls (601.49238496, 595.15278959) and (596.38571842, 590.89945637) .. (592.65238518, 585.53945650)}
+\def\fdulogo@emblem@S{%
+ (638.23905071, 535.65945775)
+ .. controls (644.62571722, 539.87279098) and (653.18571700, 542.09945759) .. (660.43905016, 538.80612434)
+ .. controls (669.22571660, 534.85945777) and (674.87904979, 525.96612466) .. (676.86571641, 516.77945822)
+ .. controls (677.59904973, 511.88612501) and (677.78571639, 506.92612513) .. (678.57238304, 502.03279192)
+ .. controls (679.25238302, 497.08612538) and (683.17238292, 493.05945881) .. (682.65238293, 487.87279228)
+ .. controls (676.70571642, 483.33945906) and (669.71904992, 479.61945915) .. (661.99905012, 480.09945914)
+ .. controls (660.69238348, 487.24612562) and (669.39904993, 491.04612553) .. (669.37238327, 497.92612536)
+ .. controls (669.99904992, 507.01945846) and (667.61238331, 516.13945824) .. (663.41238341, 524.16612470)
+ .. controls (660.99905014, 528.63279126) and (654.89238363, 529.96612456) .. (650.89238373, 526.83279130)
+ .. controls (645.69238386, 512.75279165) and (649.19905044, 497.60612537) .. (650.66571707, 483.17945906)
+ .. controls (651.43905038, 478.12612585) and (648.98571711, 473.13945931) .. (645.39905053, 469.73945940)
+ .. controls (634.13238415, 460.97945961) and (616.05238460, 463.81945954) .. (607.49238481, 475.07279260)
+ .. controls (599.98571833, 484.69945902) and (597.97238505, 497.76612536) .. (599.85238500, 509.60612507)
+ .. controls (597.17238507, 510.68612504) and (594.49238514, 511.72612501) .. (591.83905187, 512.81945832)
+ .. controls (591.82571854, 514.47279161) and (591.81238520, 516.12612490) .. (591.81238520, 517.77945819)
+ .. controls (599.25238502, 521.72612476) and (606.35905151, 526.57945797) .. (614.50571797, 528.99279125)
+ .. controls (618.49238454, 530.51279121) and (621.70571779, 524.55279136) .. (618.77238453, 521.79279143)
+ .. controls (615.51905128, 517.81945819) and (610.41238474, 514.41945828) .. (610.30571808, 508.77945842)
+ .. controls (609.93238475, 501.56612527) and (609.59905143, 493.80612546) .. (613.13238467, 487.24612562)
+ .. controls (615.38571795, 482.81945907) and (620.01238450, 479.41945915) .. (625.03905104, 479.24612582)
+ .. controls (630.01238425, 480.01945914) and (632.85238418, 485.43279234) .. (633.13238417, 490.04612555)
+ .. controls (632.71905085, 499.36612532) and (629.99905092, 508.51279176) .. (630.45238424, 517.88612486)
+ .. controls (630.45238424, 524.44612469) and (632.39905086, 531.89945784) .. (638.23905071, 535.65945775)}
+\def\fdulogo@emblem@I@ii{%
+ (693.17238267, 460.65945962)
+ .. controls (695.39904928, 458.89945967) and (698.14571588, 457.08612638) .. (698.39904921, 453.96612646)
+ .. controls (700.21238249, 444.25946003) and (703.63904908, 434.81946027) .. (704.10571573, 424.88612718)
+ .. controls (702.42571577, 424.35279386) and (700.77238248, 423.80612721) .. (699.13238252, 423.24612722)
+ .. controls (696.71904925, 426.16612715) and (694.93238263, 430.25946038) .. (690.86571606, 431.11279369)
+ .. controls (676.33238309, 429.47279374) and (662.25238344, 425.27279384) .. (647.78571714, 423.21946056)
+ .. controls (642.43905061, 422.31279391) and (636.83905075, 421.92612726) .. (632.07905086, 419.04612733)
+ .. controls (631.17238422, 414.68612744) and (630.98571756, 409.28612757) .. (626.54571767, 406.89946097)
+ .. controls (625.27905103, 407.88612761) and (623.54571774, 408.52612759) .. (622.90571776, 410.12612755)
+ .. controls (618.81238453, 419.75279398) and (617.74571789, 430.27279372) .. (615.85238460, 440.47279346)
+ .. controls (615.19905129, 444.11279337) and (616.45238459, 449.79279323) .. (621.06571781, 449.76612656)
+ .. controls (626.46571767, 447.93945994) and (625.82571769, 440.51279346) .. (630.81238423, 438.12612685)
+ .. controls (649.21238377, 441.15279344) and (667.62571664, 444.21946003) .. (685.87904952, 447.96612661)
+ .. controls (691.09238272, 449.81945989) and (691.13238272, 456.33945973) .. (693.17238267, 460.65945962)}
+\def\fdulogo@emblem@T{%
+ (687.11904949, 391.40612802)
+ .. controls (692.18571603, 396.44612789) and (700.15904916, 398.43279451) .. (706.61238233, 394.81946127)
+ .. controls (706.78571566, 374.25946178) and (705.19904904, 353.75279563) .. (703.82571574, 333.25946281)
+ .. controls (700.34571582, 329.09946291) and (694.30571598, 327.64612961) .. (689.37238277, 329.96612956)
+ .. controls (688.77238278, 331.28612952) and (686.81238283, 333.12612948) .. (688.65238278, 334.40612945)
+ .. controls (693.03904934, 338.87279600) and (696.07904926, 344.75279585) .. (696.21238259, 351.11279569)
+ .. controls (676.75904975, 354.25946228) and (656.98571691, 354.79279560) .. (637.30571740, 354.53946228)
+ .. controls (634.55905080, 351.79279568) and (633.61238416, 346.79279580) .. (629.33238427, 345.80612916)
+ .. controls (626.47905100, 344.97946251) and (624.83905105, 348.13946244) .. (624.63905105, 350.49946238)
+ .. controls (623.18571775, 359.37946215) and (623.46571775, 368.61946192) .. (625.85238435, 377.31279504)
+ .. controls (626.31905101, 378.97946166) and (627.93238430, 379.81946164) .. (629.11905094, 380.89946162)
+ .. controls (632.85238418, 378.88612833) and (634.81238413, 374.55279511) .. (638.83905070, 373.08612848)
+ .. controls (652.43905036, 371.25946186) and (666.17238335, 370.56612854) .. (679.85238300, 369.60612857)
+ .. controls (683.91904957, 369.20612858) and (688.18571613, 368.07279527) .. (692.10571603, 369.79279523)
+ .. controls (696.71904925, 371.05946186) and (698.61238253, 377.13946171) .. (696.22571593, 381.05946161)
+ .. controls (694.06571598, 385.20612818) and (690.09238275, 387.91279477) .. (687.11904949, 391.40612802)}
+\def\fdulogo@emblem@Y{%
+ (617.57238456, 308.67279676)
+ .. controls (618.33238454, 308.65946342) and (619.85238450, 308.63279676) .. (620.61238448, 308.63279676)
+ .. controls (623.38571775, 305.37946350) and (624.41238439, 301.15279694) .. (625.58571769, 297.15279704)
+ .. controls (633.54571749, 294.43279711) and (641.94571728, 290.29946388) .. (650.53238374, 292.67279716)
+ .. controls (660.39905016, 294.88613043) and (670.37238324, 296.63279706) .. (680.22571633, 298.93946367)
+ .. controls (686.91904949, 299.96613031) and (690.85238273, 306.43279681) .. (697.30571590, 308.08613010)
+ .. controls (698.06571588, 299.28613032) and (694.90571596, 290.91279720) .. (692.13238270, 282.73946407)
+ .. controls (691.75904937, 281.24613077) and (690.83904940, 280.21946413) .. (689.37238277, 279.64613081)
+ .. controls (686.74571616, 280.49946413) and (685.17238287, 282.87279740) .. (683.39904958, 284.80613069)
+ .. controls (673.79904982, 282.88613073) and (664.23905006, 280.71279745) .. (654.85238363, 277.89946419)
+ .. controls (662.07905011, 271.45946435) and (667.39904998, 262.52613124) .. (676.59904975, 258.60613134)
+ .. controls (678.67904970, 257.53946470) and (681.47904963, 257.63279803) .. (683.17238292, 255.99279807)
+ .. controls (684.90571621, 248.51279826) and (682.79904960, 238.67279851) .. (674.89238313, 235.51279858)
+ .. controls (669.46571660, 249.71279823) and (655.46571695, 257.24613137) .. (646.86571716, 269.09946441)
+ .. controls (641.23905064, 276.16613090) and (631.89238420, 278.01946419) .. (623.53238441, 279.72613081)
+ .. controls (617.95905122, 280.92613078) and (613.19905134, 272.47279766) .. (607.85238480, 276.92613088)
+ .. controls (608.41238479, 285.40613067) and (611.27905138, 293.47279714) .. (613.22571800, 301.68613026)
+ .. controls (613.77238466, 304.49946353) and (615.46571795, 306.80613014) .. (617.57238456, 308.67279676)}
+\def\fdulogo@emblem@one{%
+ (210.6390614,174.63280011)
+ .. controls (216.67906125, 175.21946676) and (221.81239445, 178.87280000) .. (227.55906098, 180.56613329)
+ .. controls (232.15906086, 177.80613336) and (236.70572742, 174.56613344) .. (239.37239402, 169.75280023)
+ .. controls (238.14572738, 166.88613363) and (236.77239408, 164.03280037) .. (234.83906080, 161.55280043)
+ .. controls (221.77239446, 143.96613421) and (209.17239477, 126.04613465) .. (196.18572843, 108.40613510)
+ .. controls (194.77239513, 106.56613514) and (193.47906183, 104.56613519) .. (191.71906187, 103.00613523)
+ .. controls (187.97239530, 101.52613527) and (184.55906205, 104.48613519) .. (181.98572878, 106.81946847)
+ .. controls (179.35906218, 109.25946841) and (175.50572895, 112.13946834) .. (177.26572890, 116.21946823)
+ .. controls (185.81239535, 129.96613456) and (196.33239509, 142.37946758) .. (204.86572821, 156.15280057)
+ .. controls (200.26572833, 159.91280047) and (195.41239511, 163.57946705) .. (191.87906187, 168.41946693)
+ .. controls (191.99906187, 173.07280015) and (195.02572846, 177.91280002) .. (199.63906168, 179.32613332)
+ .. controls (203.25239492, 177.65946670) and (206.67906150, 175.33946676) .. (210.63906140, 174.63280011)}
+\def\fdulogo@emblem@nine{%
+ (293.61239266, 125.28613467)
+ .. controls (287.66572614, 121.88613476) and (283.09239292, 113.28613497) .. (287.54572614, 106.99280180)
+ .. controls (291.95905937, 100.09946864) and (301.35905913, 98.67280201) .. (308.67905895, 100.99280195)
+ .. controls (313.38572550, 103.20613523) and (316.67905875, 108.65946842) .. (315.75905877, 113.87280163)
+ .. controls (314.18572548, 118.32613485) and (309.63905893, 120.55280146) .. (305.89239235, 122.89946807)
+ .. controls (302.19905911, 124.79280135) and (297.74572589, 127.05946796) .. (293.61239266, 125.28613467)
+ (283.21239292, 137.61946770)
+ .. controls (289.81239275, 139.92613431) and (297.09239257, 139.31280099) .. (303.86572574, 138.12613435)
+ .. controls (314.97239213, 136.04613440) and (326.23905851, 129.27280124) .. (330.05239175, 118.11280152)
+ .. controls (332.94572501, 105.13946851) and (328.85239178, 92.08613550) .. (324.65239188, 79.88613581)
+ .. controls (321.90572529, 69.68613606) and (312.95905884, 62.39280291) .. (303.49239241, 58.59280301)
+ .. controls (296.41239259, 55.49946975) and (288.41239279, 57.07280305) .. (281.25239297, 59.04613633)
+ .. controls (270.17239325, 62.33946958) and (260.70572682, 71.61946935) .. (258.78572686, 83.21946906)
+ .. controls (258.14572688, 88.32613560) and (261.02572681, 92.88613548) .. (265.11906004, 95.67280208)
+ .. controls (271.74572654, 93.39280214) and (272.38572652, 85.77946899) .. (275.58572644, 80.55280246)
+ .. controls (281.01239297, 73.16613598) and (292.19905936, 70.15280272) .. (300.31905916, 74.83280260)
+ .. controls (303.61239241, 76.65946922) and (306.47905900, 80.12613580) .. (306.43905901, 84.04613570)
+ .. controls (296.22572593, 85.09946901) and (285.02572621, 86.75280230) .. (277.26572640, 94.09946879)
+ .. controls (271.26572655, 100.64613529) and (266.10572668, 110.17946838) .. (269.73239326, 119.12613483)
+ .. controls (272.42572652, 126.23280132) and (275.69239311, 134.44613444) .. (283.21239292, 137.61946770)}
+\def\fdulogo@emblem@zero{%
+ (411.01238972, 111.88613501)
+ .. controls (404.38572322, 109.99280172) and (402.09238995, 102.60613524) .. (401.35905663, 96.49946873)
+ .. controls (400.65238998, 86.93946897) and (400.89238998, 76.60613589) .. (406.01238985, 68.15280277)
+ .. controls (408.30572313, 64.69946952) and (411.50572305, 61.23280294) .. (415.78572294, 60.48613629)
+ .. controls (424.71905605, 58.92613633) and (433.35905583, 66.55280281) .. (434.53238914, 75.23280259)
+ .. controls (435.43905578, 84.84613568) and (432.83905585, 94.45946878) .. (429.02572261, 103.20613523)
+ .. controls (425.89238935, 109.53946840) and (418.07905621, 114.51280161) .. (411.01238972, 111.88613501)
+ (405.74572319, 127.83280128)
+ .. controls (415.94572293, 129.47280124) and (427.99905597, 129.88613456) .. (436.03905577, 122.24613475)
+ .. controls (447.95905547, 108.76613509) and (453.13238867, 90.09946889) .. (451.81238870, 72.33946933)
+ .. controls (450.19905541, 58.21946968) and (438.79905570, 43.93947004) .. (423.73238941, 43.91280337)
+ .. controls (411.93238970, 44.16613670) and (398.71905670, 47.67280328) .. (391.73239021, 57.95280302)
+ .. controls (384.51905705, 68.47280276) and (383.82572374, 81.67280243) .. (382.77239043, 93.95280212)
+ .. controls (382.50572377, 108.28613510) and (390.71905690, 124.67280136) .. (405.74572319, 127.83280128)}
+\def\fdulogo@emblem@five{%
+ (521.86572029, 172.09946684)
+ .. controls (529.15905344, 177.17946671) and (539.82571984, 165.40613367) .. (533.55905333, 158.84613383)
+ .. controls (531.37238672, 156.05946724) and (528.26572013, 154.12613395) .. (525.10572021, 152.59280066)
+ .. controls (518.22572038, 149.35280074) and (511.30572055, 146.17946748) .. (504.49238739, 142.79280090)
+ .. controls (505.89238735, 138.48613434) and (507.39905398, 134.20613445) .. (509.29238727, 130.08613455)
+ .. controls (513.69238716, 132.57946782) and (518.31905371, 134.84613443) .. (521.93238695, 138.48613434)
+ .. controls (531.25238672, 148.75280075) and (549.73238626, 147.07280080) .. (557.66571939, 135.93946774)
+ .. controls (564.54571922, 127.15280129) and (566.22571918, 114.91280160) .. (563.05238592, 104.33946853)
+ .. controls (560.75905265, 96.36613540) and (554.18571948, 90.75280220) .. (547.63905298, 86.16613565)
+ .. controls (536.71905325, 79.13946916) and (521.10572031, 79.37946915) .. (511.09238722, 87.96613561)
+ .. controls (506.94572066, 92.15280217) and (511.54572054, 97.87280203) .. (515.22572045, 100.51280196)
+ .. controls (522.31905361, 102.40613525) and (528.73238678, 95.71280208) .. (535.89238660, 98.12613535)
+ .. controls (541.66571979, 101.15280194) and (546.25238634, 106.04613515) .. (549.17238627, 111.84613501)
+ .. controls (550.74571956, 119.79280148) and (545.49238636, 128.76613459) .. (537.27905323, 130.08613455)
+ .. controls (532.50572002, 130.93946787) and (529.15905344, 126.76613464) .. (525.82572019, 124.11280137)
+ .. controls (519.34572035, 118.00613486) and (511.38572055, 113.83280163) .. (503.55905408, 109.76613506)
+ .. controls (496.57238759, 123.39280139) and (487.81238780, 136.40613440) .. (484.21238789, 151.49946735)
+ .. controls (496.54572092, 158.76613384) and (509.27905393, 165.29946701) .. (521.86572029, 172.09946684)}
+\def\fdulogo@emblem@ring@inner@i{%
+ (361.25239097, 616.49945573)
+ .. controls (394.65239013, 618.07278902) and (428.63905595, 615.12612243) .. (460.33238849, 603.93945604)
+ .. controls (533.42572000, 578.20612335) and (592.38571852, 515.31279159) .. (612.77238468, 440.47279346)
+ .. controls (618.50571787, 421.04612728) and (619.83905117, 400.69946112) .. (620.91905114, 380.57946162)
+ .. controls (621.31905113, 350.97946236) and (617.47905123, 321.11279644) .. (607.53238481, 293.12613048)
+ .. controls (581.78571879, 222.35279891) and (521.59905363, 164.84613368) .. (449.29238877, 143.36613422)
+ .. controls (411.30572305, 132.47280116) and (370.74572406, 131.20613453) .. (331.93239170, 138.13946769)
+ .. controls (299.90572584, 143.89946754) and (269.06572661, 156.40613390) .. (242.41239394, 175.12613343)
+ .. controls (198.49239504, 205.71279933) and (163.47906258, 250.28613155) .. (147.89239630, 301.81946359)
+ .. controls (138.98572986, 331.20612953) and (135.87906327, 362.25946208) .. (138.06572988, 392.84612798)
+ .. controls (139.77239651, 425.36612717) and (148.53239629, 457.45945970) .. (163.30572925, 486.47279231)
+ .. controls (189.25239527, 536.12612440) and (232.15906086, 577.09945671) .. (283.82572624, 599.16612283)
+ .. controls (308.26572563, 609.68612256) and (334.66572497, 615.49945575) .. (361.25239097, 616.49945573)}
+\def\fdulogo@emblem@ring@inner@ii{%
+ (349.85239125, 596.91278955)
+ .. controls (326.69239183, 594.15278962) and (303.94572573, 587.73945645) .. (282.86572626, 577.75279003)
+ .. controls (223.78572774, 548.76612409) and (176.71906225, 493.71279213) .. (161.78572929, 429.11279374)
+ .. controls (149.99906292, 378.21946168) and (154.90572946, 323.12612973) .. (178.09239555, 276.07279757)
+ .. controls (192.53239519, 247.36613162) and (213.46572800, 222.12613225) .. (238.09239405, 201.59279943)
+ .. controls (263.25239342, 180.57946662) and (293.22572600, 165.37946700) .. (325.15905854, 157.91280052)
+ .. controls (375.03905729, 145.87280083) and (429.05238927, 150.95280070) .. (475.53238811, 172.84613348)
+ .. controls (499.71905417, 184.55279986) and (521.54572029, 200.91279945) .. (540.18571983, 220.23279897)
+ .. controls (557.53238606, 238.29946518) and (572.49238569, 258.88613133) .. (582.82571876, 281.77946409)
+ .. controls (605.98571818, 332.51279616) and (608.94571811, 391.84612801) .. (592.09238520, 444.89946002)
+ .. controls (582.54571877, 475.56612592) and (565.71905252, 503.83279188) .. (543.55905308, 527.05945796)
+ .. controls (521.82572029, 550.60612404) and (495.25238762, 569.84612356) .. (465.65238836, 582.24612325)
+ .. controls (449.98572208, 588.81945642) and (433.39905583, 592.84612298) .. (416.79905625, 596.25945623)
+ .. controls (394.66572347, 599.43278949) and (372.03905737, 599.48612282) .. (349.85239125, 596.91278955)}
+\def\fdulogo@emblem@ring@outer@i{%
+ (368.57239079, 736.61945272)
+ -- (390.89239023, 736.61945272)
+ .. controls (400.37238999, 735.31278609) and (409.98572308, 735.60611942) .. (419.45238951, 734.27278612)
+ .. controls (471.66572154, 729.01945291) and (522.85238693, 712.13945334) .. (567.25238582, 684.00612071)
+ .. controls (616.45238459, 652.68612149) and (658.38571687, 609.85945589) .. (688.45238279, 559.87279048)
+ .. controls (704.79904905, 532.39279116) and (717.45238206, 502.64612524) .. (725.18571520, 471.59279268)
+ .. controls (732.34571502, 444.25946003) and (735.50571495, 416.08612740) .. (737.17238157, 387.93946144)
+ -- (737.17238157, 364.21946203)
+ .. controls (736.39904826, 358.60612884) and (736.11904826, 352.95279565) .. (735.83904827, 347.29946246)
+ .. controls (731.38571505, 289.00613058) and (713.05238217, 231.36613202) .. (680.23904966, 182.75279990)
+ .. controls (638.58571737, 120.48613479) and (578.70571887, 69.67280273) .. (508.59905395, 42.48613674)
+ .. controls (471.46572155, 28.04613710) and (431.73238921, 21.32613727) .. (392.06572353, 19.28613732)
+ -- (362.01239095, 19.28613732)
+ .. controls (301.01239247, 21.79280393) and (240.03906067, 38.79280350) .. (188.59906195, 72.15280267)
+ .. controls (137.71906322, 104.44613519) and ( 94.53239764, 148.89946742) .. ( 64.27906506, 201.05946611)
+ .. controls ( 39.81239900, 242.93946507) and ( 25.45239936, 290.41946388) .. ( 20.70573282, 338.60612934)
+ .. controls ( 16.61239958, 377.51279503) and ( 19.02573286, 416.99279405) .. ( 26.67906600, 455.32612642)
+ .. controls ( 38.51906570, 513.71279163) and ( 66.61239833, 568.51279026) .. (106.13239735, 612.99278915)
+ .. controls (125.09239687, 634.91278860) and (146.65239633, 654.56612144) .. (170.07906241, 671.60612102)
+ .. controls (218.11906121, 706.80612014) and (275.75905977, 728.24611960) .. (334.91905829, 734.28611945)
+ .. controls (346.09239135, 735.72611941) and (357.37239107, 735.51278608) .. (368.57239079, 736.61945272)}
+\def\fdulogo@emblem@ring@outer@ii{%
+ (354.53239114, 717.84611986)
+ .. controls (321.10572531, 715.17945326) and (287.69239281, 709.16612008) .. (256.34572692, 696.99278705)
+ .. controls (208.13239480, 678.63278751) and (164.83906255, 648.37945493) .. (129.51906343, 610.92612253)
+ .. controls (106.35906401, 586.08612315) and ( 86.22573118, 558.24612385) .. ( 71.11906489, 527.77945794)
+ .. controls ( 36.07906576, 456.27279307) and ( 28.85239928, 372.71279515) .. ( 46.18573218, 295.37946375)
+ .. controls ( 61.50573180, 225.76613216) and (102.38573077, 163.29946706) .. (155.91906277, 116.89946822)
+ .. controls (196.98572841, 80.45946913) and (247.34572715, 54.51280311) .. (301.01239247, 42.79280340)
+ .. controls (383.25239042, 25.40613717) and (472.61238818, 34.95280360) .. (546.25238634, 76.84613588)
+ .. controls (609.82571809, 113.67280163) and (662.57238344, 169.83280023) .. (692.95904934, 236.93946522)
+ .. controls (715.01238212, 285.51279733) and (723.18571525, 339.56612932) .. (721.19904864, 392.63279466)
+ .. controls (718.73238203, 452.08612650) and (701.41238246, 511.41945835) .. (668.46571662, 561.23279044)
+ .. controls (631.46571755, 617.03278905) and (579.43905218, 663.59278788) .. (517.91905372, 690.64612054)
+ .. controls (466.78572166, 713.11278664) and (410.05238975, 721.16611978) .. (354.53239114, 717.84611986)}
+\def\fdulogo@emblem@new@kernel{%
+ (284.68492622, 377.38587424)
+ .. controls (296.85159258, 374.46587432) and (317.35159207, 372.84454102) .. (328.85159178, 381.34454081)
+ .. controls (340.07825816, 389.64187394) and (342.01825812, 410.17787342) .. (336.41292492, 413.51120667)
+ .. controls (327.05025849, 419.07920653) and (273.18492650, 410.84454007) .. (263.01826009, 410.17787342)
+ .. controls (261.01826014, 399.01120704) and (271.06492656, 380.65520750) .. (284.68492622, 377.38587424)
+ (336.35159159, 441.01120599)
+ .. controls (336.35159159, 441.01120599) and (337.68492489, 455.17787230) .. (334.68625830, 462.27653879)
+ .. controls (329.13025844, 475.43120513) and (323.68492524, 480.17253834) .. (299.01825919, 480.17253834)
+ .. controls (282.14492628, 480.17253834) and (267.18492665, 476.01120511) .. (261.31159347, 461.96720546)
+ .. controls (257.23692690, 452.22453904) and (258.30759354, 437.71253940) .. (262.91292676, 437.06587275)
+ .. controls (270.44892657, 436.00720611) and (336.35159159, 441.01120599) .. (336.35159159, 441.01120599)
+ (246.59292717, 497.03520459)
+ .. controls (259.37426018, 506.15653769) and (276.74092641, 512.23387087) .. (300.29559249, 512.23387087)
+ .. controls (348.32492463, 512.23387087) and (363.12892426, 484.62187156) .. (364.18492423, 471.84453855)
+ -- (364.78892421, 471.84453855)
+ .. controls (368.40759079, 488.78853813) and (395.43425678, 511.51120422) .. (399.44359001,521.76720397)
+ .. controls (400.91825664, 525.54053721) and (395.33292345, 527.64187049) .. (392.01825687,525.67787054)
+ .. controls (389.01825694, 523.90053725) and (372.68492402, 506.42853768) .. (360.51825765,506.42853768)
+ .. controls (354.64359113, 506.42853768) and (344.76892471, 511.67787089) .. (344.76892471,520.02320401)
+ .. controls (344.76892471, 527.51120382) and (366.72892417, 547.37253666) .. (375.35159062,559.84453635)
+ .. controls (381.31959047, 568.47653613) and (388.58492362, 581.05386915) .. (391.51825688,595.84453545)
+ .. controls (395.51825678, 616.01120161) and (404.51825655, 623.17786810) .. (415.85158960,623.17786810)
+ .. controls (424.46225606, 623.17786810) and (437.85158905, 613.67786834) .. (429.85158925,588.01120231)
+ .. controls (425.73692269, 574.80853597) and (419.22092285, 550.54453658) .. (430.35158924,549.51120327)
+ .. controls (446.51825550, 548.01120331) and (563.19691925, 564.04320291) .. (582.07425211,556.90053642)
+ .. controls (592.35158519, 553.01120319) and (602.68491827, 540.51120350) .. (592.74091851,526.23387052)
+ .. controls (590.55558524, 523.09653727) and (546.51825300, 529.51120377) .. (514.51825380,529.51120377)
+ .. controls (502.89825409, 529.51120377) and (439.94758900, 527.47387049) .. (429.24358927,513.09253752)
+ .. controls (418.18492288, 498.23387122) and (433.51825583, 482.17787162) .. (433.51825583,471.17787190)
+ .. controls (433.51825583, 452.84453902) and (415.35158962, 427.34453966) .. (415.35158962,364.34454124)
+ .. controls (415.35158962, 329.84320877) and (418.18492288, 298.67787621) .. (422.96225609,221.78854480)
+ .. controls (424.97425604, 189.40721228) and (394.85159013, 194.47654548) .. (389.85159025,223.34454476)
+ .. controls (386.22225701, 244.30187757) and (382.29559044, 297.12187625) .. (382.07425711,314.23387582)
+ .. controls (336.68492492, 315.84454245) and (279.18492635, 309.56720927) .. (249.18492710,302.23387612)
+ .. controls (241.04359397, 300.24320951) and (230.30226091, 322.72854228) .. (232.73692751,328.19387547)
+ .. controls (237.18492740, 338.17787522) and (304.07292573, 341.84587513) .. (337.85159155,344.01120841)
+ .. controls (352.71159118, 344.96454172) and (362.68492427, 344.77654173) .. (382.07425711,343.78854175)
+ .. controls (382.24359044, 356.26587477) and (382.09159045, 361.90454130) .. (383.18492375,378.67787421)
+ .. controls (384.31292373, 395.98454045) and (387.89425697, 424.28187307) .. (391.45825688,437.71787274)
+ .. controls (396.07425676, 455.12187230) and (405.51825653, 466.34453869) .. (400.96225664,468.67787196)
+ .. controls (394.59159014, 471.94053855) and (374.85159063, 431.14587290) .. (370.35159074,409.49120677)
+ .. controls (367.44625748, 395.51120712) and (371.86359070, 373.07254102) .. (349.62892459,358.67787471)
+ .. controls (331.35159172, 346.84454167) and (282.04359295, 338.87787521) .. (256.35159359,354.84454147)
+ .. controls (238.74092736, 365.78854120) and (226.51826100, 381.78854080) .. (226.51826100,426.23387302)
+ .. controls (226.51826100, 452.40053904) and (225.85159435, 482.23387162) .. (246.59292717,497.03520459)
+ (519.40705368, 324.28907557)
+ .. controls (520.27772033, 321.35440898) and (522.26838694, 319.59440902) .. (524.01905357, 319.40640903)
+ .. controls (527.39772015, 319.04240904) and (544.90705304, 319.34507569) .. (546.76838633, 320.92774232)
+ .. controls (552.93238618, 326.17174219) and (554.93505279, 341.67840847) .. (551.93905287, 343.33840843)
+ .. controls (549.50438626, 344.68640839) and (532.46305336, 343.27307510) .. (523.78705357, 340.68507516)
+ .. controls (522.12038695, 340.18907517) and (519.07372036, 338.67840854) .. (518.75372036, 335.68107529)
+ .. controls (518.29638704, 331.41174206) and (518.48438704, 327.39974216) .. (519.40705368, 324.28907557)
+ (452.62972202, 377.89974090)
+ .. controls (454.40705531, 380.67840749) and (460.51772182, 383.39974076) .. (470.18438825, 383.89974075)
+ .. controls (482.77238793, 384.55174073) and (526.92305349, 388.98507395) .. (532.97372001, 387.58640732)
+ .. controls (536.18438660, 386.84507401) and (534.01771998, 379.17840753) .. (531.37772005, 375.70774095)
+ .. controls (529.41638676, 373.13040768) and (525.70172019, 369.17707445) .. (524.01772023, 366.92774117)
+ .. controls (522.12572028, 364.39974124) and (521.15772030, 361.51707464) .. (523.38305358, 360.27574134)
+ .. controls (525.85105352, 358.89974137) and (546.79638633, 361.95574130) .. (553.22705284, 363.09440793)
+ .. controls (558.79771936, 364.08107458) and (560.80971931, 369.80240777) .. (563.93505257, 374.26107432)
+ .. controls (569.21238577, 381.79040747) and (577.07371891, 386.01174069) .. (582.85105210, 386.01174069)
+ .. controls (589.62971859, 386.01174069) and (591.42305188, 374.38374099) .. (590.75238523, 366.33574119)
+ .. controls (589.71238526, 353.83574150) and (577.80438555, 312.07974254) .. (574.23505231, 303.75707608)
+ .. controls (573.29638567, 301.56640947) and (569.88438575, 300.01174284) .. (566.93505249, 300.01174284)
+ .. controls (562.33771927, 300.01174284) and (536.85105325, 301.92774280) .. (526.56705350, 298.69440954)
+ .. controls (524.00438690, 297.88907623) and (523.26838692, 295.76107628) .. (524.01772023, 290.26107642)
+ .. controls (524.61238688, 285.90107653) and (533.49905333, 247.55841082) .. (534.66171997, 239.50507769)
+ .. controls (536.96305324, 223.56641142) and (521.42305363, 220.83707816) .. (512.54305385, 232.40374453)
+ .. controls (504.74038738, 242.56641095) and (500.54705415, 254.53174398) .. (496.62305425, 267.26774366)
+ .. controls (491.90438770, 282.58240995) and (493.95505432, 293.84107633) .. (483.74038791, 292.78907636)
+ .. controls (470.72438823, 291.44774306) and (447.51772215, 274.87174347) .. (435.67372244, 274.87174347)
+ .. controls (427.17638932, 274.87174347) and (425.42038936, 289.38107644) .. (429.01772261, 295.34507629)
+ .. controls (435.35105578, 305.84507603) and (475.30972145, 316.46907577) .. (487.88172114, 317.47040907)
+ .. controls (488.71505445, 325.38774221) and (488.68438778, 330.42774208) .. (486.68438783, 337.09440858)
+ .. controls (479.43505468, 337.17840858) and (471.10172156, 335.26107530) .. (461.92172179, 331.04507540)
+ .. controls (450.90705539, 325.98640886) and (436.74438908, 322.49307562) .. (431.17372255, 322.49307562)
+ .. controls (425.06172271, 322.49307562) and (420.74038948, 337.89974190) .. (430.29638924, 345.12240838)
+ .. controls (435.23905579, 348.85840829) and (445.41505553, 351.63307489) .. (449.95372208, 352.43707487)
+ .. controls (458.85105520, 354.01174149) and (486.96305449, 353.34507484) .. (489.68172109, 359.03040804)
+ .. controls (490.40038774, 360.53574133) and (490.68438773, 364.39974124) .. (488.19772113, 365.49040787)
+ .. controls (485.73372119, 366.57174118) and (469.18438827, 363.01174127) .. (460.40705516, 363.89974125)
+ .. controls (451.95905537, 364.75574123) and (450.23372208, 374.15707432) .. (452.62972202, 377.89974090)
+ (465.02505504, 479.10973837)
+ .. controls (470.18505491, 476.67773843) and (560.01838600, 480.17773834) .. (564.76771921,482.34440495)
+ .. controls (570.23305241, 484.83640489) and (569.77571909, 493.67773800) .. (564.35171922,496.01107128)
+ .. controls (558.92771936, 498.34440455) and (473.45438816, 494.42840465) .. (468.18505496,492.56707136)
+ .. controls (461.68105512, 490.26840476) and (460.15705516, 481.40440498) .. (465.02505504,479.10973837)
+ (512.51838719, 517.56707074)
+ .. controls (550.96238623, 517.56707074) and (578.74105220, 517.56707074) .. (590.23038524,506.59240435)
+ .. controls (595.69438511, 501.37240448) and (599.18505169, 483.56707159) .. (588.92905194,472.13107188)
+ .. controls (579.25038552, 461.33773881) and (539.85171984, 459.34440553) .. (504.85972071,459.19507220)
+ .. controls (494.19305431, 459.14840553) and (455.35172195, 457.17773892) .. (449.05705544,461.39240548)
+ .. controls (429.26772260, 474.64440515) and (433.46105583, 495.05640464) .. (442.07438895,502.23373779)
+ .. controls (455.40772195, 513.34440418) and (467.40772165, 516.67773743) .. (512.51838719,517.56707074)
+ (469.51812160, 412.41240670)
+ .. controls (478.85145470, 412.22040671) and (551.62878621, 415.45640663) .. (562.58611927,417.44173991)
+ .. controls (572.83011901, 419.29907320) and (572.35145236, 428.51107297) .. (566.51811917,429.34440628)
+ .. controls (558.35945271, 430.50973958) and (474.17278815, 426.64840635) .. (466.69545500,424.28307307)
+ .. controls (460.51812182, 422.32973979) and (462.43545511, 412.55774003) .. (469.51812160,412.41240670)
+ (453.04878867, 444.45907257)
+ .. controls (474.88078813, 454.19773899) and (578.96211886, 454.67773898) .. (587.85145197,448.01107248)
+ .. controls (600.58211832, 438.46307272) and (600.43145166, 419.22840653) .. (595.50211845,409.49107344)
+ .. controls (586.74078533, 392.17774054) and (506.59678734, 392.17774054) .. (466.18478835,392.17774054)
+ .. controls (452.18478870, 392.17774054) and (435.68478911, 400.67774033) .. (435.68478911,416.51107327)
+ .. controls (435.68478911, 423.84440642) and (435.60612244, 436.67773943) .. (453.04878867,444.45907257)}
+\def\fdulogo@emblem@new@F{%
+ (128.08471915, 329.48133989)
+ -- (127.14177837, 332.01133349)
+ -- (105.95308200, 324.11420442)
+ -- (128.23005803, 264.34310569)
+ -- (130.86546803, 265.32533568)
+ .. controls (128.57617887, 272.75622407) and (129.41093008, 275.34847365) .. (134.89258287, 277.39151202)
+ -- (185.91412041, 296.40748451)
+ .. controls (191.39577320, 298.45052287) and (193.10540239, 297.40687447) .. (196.85613434, 289.92037447)
+ -- (199.49154434, 290.90260446)
+ -- (185.34743257, 328.85250841)
+ -- (182.71202258, 327.87027842)
+ .. controls (185.90496332, 318.01481284) and (185.34717211, 315.64584725) .. (179.54927011, 313.48494128)
+ -- (154.98724894, 304.33055784)
+ .. controls (151.19058341, 315.16160902) and (153.63728983, 320.51571619) .. (165.31554342, 326.54909292)
+ -- (164.33331344, 329.18450291)
+ -- (128.70257028, 315.90475353)
+ -- (129.68480027, 313.26934353)
+ .. controls (142.40947544, 315.85081706) and (147.47417141, 313.53636504) .. (151.40309135, 302.99472506)
+ -- (126.94648658, 293.87963081)
+ .. controls (123.04607978, 292.42593043) and (121.48115619, 293.40345164) .. (119.47740703, 298.77968803)
+ .. controls (111.81601315, 319.33588600) and (119.27761075, 323.79769475) .. (128.08471915, 329.48133989)}
+\def\fdulogo@emblem@new@U@i{%
+ (100.51870590, 377.96853391)
+ -- ( 97.71928261, 377.69763724)
+ -- (101.38180565, 339.84943428)
+ -- (104.18122894, 340.12033095)
+ .. controls (104.20655678, 348.03456725) and (105.53222649, 349.51915670) .. (113.59456558, 350.29933913)
+ -- (150.99486081, 353.91851870)
+ .. controls (161.96860013, 354.98043366) and (167.22791658, 357.86290671) .. (171.49391369, 365.17027770)
+ .. controls (174.89298469, 370.92442577) and (176.21507398, 378.28599501) .. (175.42405569, 386.46031104)
+ .. controls (173.33273336, 408.07185888) and (159.86303178, 414.11507061) .. (142.84253814, 412.46801883)
+ -- (107.12189689, 409.01137727)
+ .. controls (100.51525791, 408.37206111) and ( 98.57192487, 409.76636429) .. ( 96.75866006, 416.82452926)
+ -- ( 93.95923677, 416.55363258)
+ -- ( 96.34312750, 391.91870758)
+ -- ( 99.14255080, 392.18960425)
+ .. controls ( 98.96921476, 400.98882014) and (100.99203606, 403.44507611) .. (109.16635208, 404.23609440)
+ -- (143.31931629, 407.54103383)
+ .. controls (159.89190220, 409.14474215) and (168.22511905, 403.62170878) .. (169.51458722, 390.29645390)
+ .. controls (170.61984565, 378.87480685) and (164.50082069, 373.19652877) .. (149.27195796, 371.72285086)
+ -- (111.87166273, 368.10367129)
+ .. controls (103.02548511, 367.24763780) and (101.68899846, 369.37881776) .. (100.51870590, 377.96853391)}
+\def\fdulogo@emblem@new@D{%
+ (161.13377402, 431.77641390)
+ .. controls (165.99478812, 430.84205928) and (167.67345668, 427.65541280) .. (166.66276259, 421.20524173)
+ -- (169.42470242, 420.67435842)
+ -- (176.13506745, 455.58527790)
+ .. controls (180.72189924, 479.44843805) and (168.53387923, 498.28768735) .. (145.66501742, 502.68340115)
+ .. controls (122.90663320, 507.05787961) and (106.12398751, 494.24543310) .. (101.21862573, 468.72510905)
+ -- ( 94.74184936, 435.02944310)
+ -- ( 97.50378919, 434.49855979)
+ .. controls ( 99.52571602, 441.44171376) and (101.58635124, 443.22225805) .. (106.66832053, 442.24543276)
+ (143.62723349, 483.14176993)
+ .. controls (169.25803513, 478.21517282) and (174.20076693, 466.38197552) .. (171.99229236, 454.89230582)
+ .. controls (171.03670241, 449.92081412) and (169.32443437, 448.76066473) .. (164.35294268, 449.71625468)
+ -- (107.56745973, 460.63121552)
+ .. controls (105.02647508, 461.11962816) and (104.12545061, 463.58400402) .. (104.95362857, 467.89263016)
+ .. controls (106.86480848, 477.83561355) and (116.44974554, 488.36566169) .. (143.62723349, 483.14176993)}
+\def\fdulogo@emblem@new@A{%
+ (213.73056745, 560.05088194)
+ -- (213.52877972, 559.64866116)
+ .. controls (211.56134940, 555.72700852) and (208.64253939, 555.17751094) .. (194.25467970, 556.10248902)
+ -- (130.11298094, 560.21376615)
+ -- (128.70046687, 557.39822066)
+ -- (172.60549553, 507.43004883)
+ .. controls (180.04014537, 498.91738678) and (180.94311014, 496.95402046) .. (179.42665420, 491.67334867)
+ -- (181.94053410, 490.41217539)
+ -- (192.18126114, 510.82488017)
+ -- (189.66738124, 512.08605346)
+ .. controls (186.28879152, 506.35508462) and (184.02240494, 504.59723135) .. (181.40796985, 505.90885157)
+ .. controls (180.10075230, 506.56466167) and (177.99044785, 508.63027652) .. (173.61985282, 513.46606992)
+ -- (170.45490415, 516.94182818)
+ -- (181.80546368, 539.56674728)
+ .. controls (191.36396463, 539.05076331) and (195.58931486, 538.44133613) .. (197.80152917, 537.33150365)
+ .. controls (199.91318828, 536.27211809) and (200.26293014, 534.46043123) .. (198.69839794, 530.84010551)
+ .. controls (198.44616328, 530.33732953) and (197.89090837, 528.97966505) .. (197.38576172, 527.47099844)
+ -- (199.89964162, 526.20982516)
+ -- (216.24444735, 558.78970866)
+ (167.28995547, 520.41758644)
+ -- (147.59705438, 542.12837916)
+ -- (177.12710706, 540.02584966)}
+\def\fdulogo@emblem@new@N@i{%
+ (180.22686421, 631.40888576)
+ -- (163.64330505, 614.42493307)
+ -- (165.65562172, 612.46005639)
+ .. controls (167.22752306, 614.06990973) and (169.77102921, 614.25935906) .. (178.13167444, 613.64308824)
+ -- (216.28519850, 576.38902642)
+ .. controls (220.87328050, 571.90910759) and (220.82125183, 569.60138665) .. (215.80824593, 563.01806637)
+ -- (217.82056260, 561.05318969)
+ -- (235.66164284, 579.32502506)
+ -- (233.64932617, 581.28990174)
+ .. controls (226.87307200, 575.79932200) and (223.92900012, 575.84376027) .. (218.21402078, 581.42401004)
+ -- (185.85596873, 613.01922702)
+ -- (264.77597447, 606.24373256)
+ -- (266.97663635, 608.49752723)
+ -- (219.56645561, 654.79002177)
+ .. controls (214.97837360, 659.26994059) and (214.95370480, 661.33808113) .. (219.2574575, 667.35605515)
+ -- (217.24514083, 669.32093182)
+ -- (200.34720140, 652.01500846)
+ -- (202.35951807, 650.05013179)
+ .. controls (208.73900170, 655.45642366) and (211.92265398, 655.33528792) .. (217.63763332, 649.75503815)
+ -- (242.18789670, 625.78354268)}
+\def\fdulogo@emblem@new@U@ii{%
+ (331.45282512, 724.53468765)
+ -- (330.63705847, 727.22628423)
+ -- (294.24667267, 716.19711919)
+ -- (295.06243932, 713.50552261)
+ .. controls (302.82732441, 715.03602217) and (304.54348943, 714.02795994) .. (306.89289736, 706.27616178)
+ -- (317.79153974, 670.31643143)
+ .. controls (320.98934498, 659.76537283) and (324.84918874, 655.17508751) .. (332.85243369, 652.42834813)
+ .. controls (339.16237243, 650.22638488) and (346.64021167, 650.37679795) .. (354.49967369, 652.75883655)
+ .. controls (375.27879931, 659.05655505) and (378.55705453, 673.45122874) .. (373.59719333, 689.81613596)
+ -- (363.18801094, 724.16090836)
+ .. controls (361.26280166, 730.51307630) and (362.24800509, 732.69252743) .. (368.81218569, 735.85752868)
+ -- (367.99641904, 738.54912526)
+ -- (344.31036911, 731.37037878)
+ -- (345.12613576, 728.67878220)
+ .. controls (353.71970109, 730.57799095) and (356.52559167, 729.07732700) .. (358.90763028, 721.21786498)
+ -- (368.85998334, 688.38038667)
+ .. controls (373.68932188, 672.44613490) and (369.91166147, 663.19001105) .. (357.09966174, 659.30696182)
+ .. controls (346.11794768, 655.97863391) and (339.34786455, 660.86242188) .. (334.91009400, 675.50470729)
+ -- (324.01145163, 711.46443764)
+ .. controls (321.43362903, 719.96988284) and (323.26059964, 721.69913479) .. (331.45282512, 724.53468765)}
+\def\fdulogo@emblem@new@N@ii{%
+ (409.66623928, 741.32018157)
+ -- (385.93186303, 740.93540199)
+ -- (385.97745303, 738.12327211)
+ .. controls (388.22715694, 738.15974410) and (390.16675926, 736.50346737) .. (395.66999384, 730.17934402)
+ -- (396.53438018, 676.86136137)
+ .. controls (396.63832537, 670.44970523) and (394.97657784, 668.84755849) .. (386.78157096, 667.70206894)
+ -- (386.82716096, 664.88993905)
+ -- (412.36130033, 665.30389623)
+ -- (412.31571034, 668.11602611)
+ .. controls (403.63793789, 668.98797568) and (401.57855597, 671.09236960) .. (401.44908038, 679.07881848)
+ -- (400.71599323, 724.29786706)
+ -- (451.98891394, 663.92106986)
+ -- (455.13849941, 663.97213066)
+ -- (454.06439908, 730.22591079)
+ .. controls (453.96045389, 736.63756693) and (455.39905463, 738.12358127) .. (462.69235634, 739.36696722)
+ -- (462.64676634, 742.17909711)
+ -- (438.46244932, 741.78702313)
+ -- (438.50803931, 738.97489325)
+ .. controls (446.84470898, 738.32244327) and (449.02022329, 735.99490256) .. (449.14969888, 728.00845368)
+ -- (449.70589684, 693.70046907)}
+\def\fdulogo@emblem@new@I@i{%
+ (476.71960763, 671.89702757)
+ .. controls (475.48868767, 666.40836111) and (473.16811016, 665.31466569) .. (464.76278168, 666.39263232)
+ -- (464.14732170, 663.64829909)
+ -- (502.56798690, 655.03185940)
+ -- (503.18344687, 657.77619262)
+ .. controls (494.96376586, 660.19605760) and (493.22273019, 662.20063379) .. (494.50288695, 667.90884691)
+ -- (506.41819213, 721.03913821)
+ .. controls (507.69834888, 726.74735132) and (510.39748318, 727.98673821) .. (518.59456473, 726.49429666)
+ -- (519.21002471, 729.23862989)
+ -- (480.78935952, 737.85506958)
+ -- (480.17389954, 735.11073636)
+ .. controls (487.95448724, 732.78934497) and (489.89045116, 730.62575865) .. (488.63491281, 725.02731887)}
+\def\fdulogo@emblem@new@V{%
+ (602.12727238, 694.33228933)
+ -- (580.41288862, 704.46574992)
+ -- (579.22351531, 701.91711333)
+ .. controls (586.22376857, 698.02956582) and (587.41992600, 696.60232359) .. (585.89752816, 693.34006875)
+ .. controls (585.13632925, 691.70894133) and (584.25959367, 690.62832056) .. (580.48079869, 687.05343948)
+ -- (551.88157206, 659.55539834)
+ -- (553.70312548, 700.17052387)
+ .. controls (553.90703363, 705.66199345) and (554.07015096, 707.07563874) .. (554.78377495, 708.60482070)
+ .. controls (555.87799839, 710.94956636) and (557.93050460, 711.35734248) .. (561.89958209, 709.75338598)
+ .. controls (562.40930941, 709.51551131) and (563.78217537, 708.99898266) .. (565.35893225, 708.38730413)
+ -- (566.54830556, 710.93594073)
+ -- (532.29462977, 726.92111800)
+ -- (531.10525646, 724.37248141)
+ .. controls (535.86950512, 721.28011654) and (536.40641483, 720.03637844) .. (536.33843014, 713.24000463)
+ -- (533.93908436, 639.99548921)
+ -- (536.69161188, 638.71096604)
+ -- (587.86166289, 687.70586863)
+ .. controls (593.25799982, 692.88468900) and (595.30371044, 693.54393098) .. (600.93789907, 691.78365274)}
+\def\fdulogo@emblem@new@E{%
+ (594.15792842, 607.98334063)
+ .. controls (588.62449694, 612.58998385) and (587.91748388, 615.08155932) .. (591.01257229, 618.79933359)
+ -- (608.43144194, 639.72262136)
+ .. controls (617.85556742, 631.87693213) and (618.59324875, 625.55386652) .. (611.28122633, 614.66077637)
+ -- (613.52918286, 612.78932756)
+ -- (637.85801734, 642.01276254)
+ -- (635.61006080, 643.88421134)
+ .. controls (626.25153717, 635.28038827) and (620.30284663, 634.81656760) .. (611.22456061, 642.37434163)
+ -- (610.87872115, 642.66225683)
+ -- (627.57780280, 662.72094592)
+ .. controls (630.31299721, 666.00642086) and (632.08478468, 665.84883526) .. (636.58069775, 662.10593765)
+ .. controls (650.67365604, 650.37339321) and (652.46291030, 643.90679653) .. (645.05122654, 630.60816424)
+ -- (647.21272321, 628.80869424)
+ -- (661.68046206, 646.18712746)
+ -- (611.79311892, 687.71889519)
+ -- (609.99364891, 685.55739852)
+ .. controls (615.67146452, 680.24502184) and (616.16254119, 677.49406677) .. (612.49162238, 673.08461356)
+ -- (577.65388307, 631.23803803)
+ .. controls (573.91098546, 626.74212496) and (571.90878052, 626.79876963) .. (564.93491997, 631.43352191)
+ -- (563.13544997, 629.27202524)
+ -- (613.71447204, 587.16442711)
+ -- (632.14445716, 602.26892739)
+ -- (629.72358089, 604.28433380)
+ .. controls (618.15969086, 598.83394993) and (607.81858737, 596.61069020) .. (594.15792842, 607.98334063)}
+\def\fdulogo@emblem@new@R{%
+ (703.67107461, 556.48625378)
+ .. controls (714.47632067, 563.60142604) and (714.27048109, 576.80121049) .. (702.94807655, 593.99564552)
+ -- (683.02559423, 624.25033449)
+ -- (680.67662770, 622.70355791)
+ .. controls (684.78529306, 615.44126165) and (684.24210802, 613.19777445) .. (677.47708440, 608.74305790)
+ -- (635.94735607, 581.39604802)
+ .. controls (629.08837379, 576.87946042) and (627.53007655, 577.20033640) .. (621.85850567, 583.97227242)
+ -- (619.50953914, 582.42549584)
+ -- (640.42195846, 550.66746829)
+ -- (642.77092499, 552.21424487)
+ .. controls (638.88456869, 560.16173109) and (639.29940333, 561.78189940) .. (645.97046829, 566.17474488)
+ -- (664.38636592, 578.30147324)
+ -- (666.05688463, 575.76458938)
+ -- (649.45513367, 536.94950373)
+ -- (662.13870160, 517.68797815)
+ -- (664.48766814, 519.23475473)
+ .. controls (663.37398900, 520.92601063) and (663.13341715, 522.51869961) .. (663.73616912, 524.26261004)
+ -- (678.07830393, 560.78155396)
+ .. controls (685.19134232, 555.09351361) and (693.42958052, 549.74230791) .. (703.67107461, 556.48625378)
+ (698.63980292, 593.58328528)
+ .. controls (704.33194073, 584.93908843) and (702.58094762, 578.80216225) .. (692.71528818, 572.30570063)
+ .. controls (681.25233149, 564.75743093) and (676.11916711, 567.43879411) .. (667.39304309, 580.28134726)
+ -- (691.35250174, 596.05846835)
+ .. controls (694.64105489, 598.22395555) and (696.72179997, 596.49600378) .. (698.63980292, 593.58328528)}
+\def\fdulogo@emblem@new@S{%
+ (743.20312975, 515.46936653)
+ .. controls (738.43076287, 530.00602567) and (727.28790107, 536.17566139) .. (713.82011393, 531.75420384)
+ .. controls (704.41404037, 528.66620174) and (699.50487531, 520.89733859) .. (697.58812596, 506.17757866)
+ -- (696.51882808, 497.89322644)
+ .. controls (695.11756780, 487.01333370) and (693.18068300, 483.53567665) .. (687.62254863, 481.71094814)
+ .. controls (680.24733186, 479.28967377) and (673.71795216, 482.94805456) .. (671.01595033, 491.17836892)
+ .. controls (665.64703758, 507.53211045) and (681.41553406, 517.20837331) .. (686.73126071, 520.49281728)
+ -- (685.71362365, 523.59254607)
+ -- (659.31248536, 514.92508563)
+ -- (660.33012242, 511.82535684)
+ .. controls (663.21284801, 512.06130697) and (664.45556027, 511.52202777) .. (665.01701519, 509.81183258)
+ .. controls (666.21010691, 506.17766779) and (664.11994318, 500.28153929) .. (667.38339994, 490.34102974)
+ .. controls (672.57685802, 474.52172420) and (685.17136327, 466.81573355) .. (698.63915042, 471.23719110)
+ .. controls (706.65569038, 473.86901107) and (713.05804743, 481.41764222) .. (714.23261811, 489.38133285)
+ -- (716.87701653, 507.65538929)
+ .. controls (718.31013894, 517.71688977) and (720.21031841, 520.94568148) .. (725.34090398, 522.63004626)
+ .. controls (731.96791036, 524.80568411) and (737.50344312, 521.64987718) .. (739.88962656, 514.38154761)
+ .. controls (742.55653747, 506.25812044) and (739.77220119, 496.34505570) .. (726.88804471, 487.26049550)
+ -- (727.87059083, 484.26765391)
+ -- (751.06511313, 491.88238636)
+ -- (750.01238514, 495.08900235)
+ .. controls (746.98768142, 494.92484849) and (745.85185636, 495.49921862) .. (745.25531050, 497.31630102)
+ .. controls (744.27276438, 500.30914260) and (746.11567718, 506.59772897) .. (743.20312975, 515.46936653)}
+\def\fdulogo@emblem@new@I@ii{%
+ (690.18650034, 451.64645084)
+ .. controls (684.60177379, 450.97454421) and (682.79616397, 452.79691191) .. (681.00644231, 461.07993480)
+ -- (678.21407904, 460.74398149)
+ -- (682.91742546, 421.65089566)
+ -- (685.70978873, 421.98684897)
+ .. controls (685.24696331, 430.54282399) and (686.55536222, 432.85315393) .. (692.36347783, 433.55193683)
+ -- (746.42363080, 440.05599302)
+ .. controls (752.23174641, 440.75477592) and (754.30105969, 438.62420089) .. (755.63056509, 430.39912000)
+ -- (758.42292837, 430.73507332)
+ -- (753.71958195, 469.82815914)
+ -- (750.92721867, 469.49220583)
+ .. controls (751.33629157, 461.38300894) and (749.94307439, 458.83585180) .. (744.24665331, 458.15050703)}
+\def\fdulogo@emblem@new@T{%
+ (695.27817006, 394.86431990)
+ .. controls (686.98727938, 395.61711698) and (685.86675195, 396.96144894) .. (685.95735078, 406.66801892)
+ -- (683.15637420, 406.92234225)
+ -- (679.52463696, 366.92439666)
+ -- (682.32561355, 366.67007332)
+ .. controls (683.88289314, 376.35643423) and (685.11518604, 377.48713459) .. (693.63015485, 376.71399165)
+ -- (752.67474121, 371.35285572)
+ .. controls (750.97531414, 357.61274267) and (745.29252469, 352.25466632) .. (731.78693629, 351.56058132)
+ -- (731.49192122, 348.31144849)
+ -- (754.03211881, 346.49076699)
+ -- (760.13587887, 413.71420497)
+ -- (737.64654595, 416.09508178)
+ -- (737.35153088, 412.84594895)
+ .. controls (750.51123954, 409.73070579) and (755.13604392, 403.43671956) .. (754.32275642, 389.50318398)}
+\def\fdulogo@emblem@new@Y{%
+ (727.37709643, 264.98714859)
+ -- (735.52753927, 288.35663423)
+ -- (732.87191590, 289.28282091)
+ .. controls (729.85861091, 282.35098762) and (728.37900448, 280.84154347) .. (725.29848138, 281.91592003)
+ .. controls (723.28020762, 282.61982191) and (720.08099945, 285.40363235) .. (716.65196381, 289.57820189)
+ -- (701.11261978, 308.22295111)
+ -- (730.20250072, 312.37493083)
+ .. controls (731.62538980, 312.35526096) and (735.02196252, 313.55357297) .. (737.35891108, 312.73852869)
+ .. controls (739.69585965, 311.92348440) and (739.98994711, 310.03373064) .. (738.47100095, 305.67850832)
+ -- (737.65103920, 302.98583749)
+ -- (740.30666256, 302.05965080)
+ -- (752.71756415, 337.64500393)
+ -- (750.06194078, 338.57119061)
+ .. controls (748.58987702, 335.03363777) and (745.60836911, 332.97569135) .. (741.25577198, 332.11080654)
+ -- (699.20940712, 324.97140268)
+ -- (683.59434172, 330.41738039)
+ .. controls (675.83992149, 333.12184551) and (675.07896935, 334.69784194) .. (677.26706220, 343.70466632)
+ -- (674.61143883, 344.63085301)
+ -- (661.75596764, 307.77080066)
+ -- (664.41159100, 306.84461398)
+ .. controls (668.29928281, 315.25867889) and (669.73200683, 315.95045356) .. (677.59265200, 313.20894097)
+ -- (697.13803998, 306.39220696)
+ -- (723.09792840, 274.58148207)
+ .. controls (725.02243735, 272.24224123) and (725.44996228, 269.71022039) .. (724.72147307, 265.91333528)}
+\def\fdulogo@emblem@new@one{%
+ (274.53952078, 192.6967679)
+ .. controls (276.90649749, 191.17738787) and (276.61091282, 188.42592116) .. (273.75447837, 183.97600496)
+ -- (250.35602597, 147.52456373)
+ .. controls (245.37245949, 139.76088014) and (242.44569971, 139.36684000) .. (233.01169676, 145.28890583)
+ -- (231.55309194, 143.01660820)
+ -- (267.05774249, 120.22590781)
+ -- (268.51634731, 122.49820545)
+ .. controls (260.02210251, 128.21810688) and (259.32418637, 130.67147132) .. (264.00387685, 137.96175957)
+ -- (298.64574144, 191.92882841)
+ -- (297.03619728, 192.96200682)
+ -- (266.55257519, 197.95733905)
+ -- (264.97241997, 195.49568328)
+ .. controls (266.79116106, 194.99667541) and (272.07786501, 194.27692313) .. (274.53952078, 192.6967679)}
+\def\fdulogo@emblem@new@nine{%
+ (346.53719503, 87.17026768)
+ .. controls (362.44194107, 86.72957443) and (370.45737301, 88.21059494) .. (380.22737659, 93.27206544)
+ .. controls (393.00061366, 99.87385110) and (401.02069729, 110.71391337) .. (403.43237633, 124.79726455)
+ .. controls (406.71757692, 143.98167207) and (398.66128891, 158.25957093) .. (383.13633486, 160.91811476)
+ .. controls (369.27476873, 163.29181460) and (357.41447084, 154.02251812) .. (354.81289581, 138.83024165)
+ .. controls (352.57212316, 125.74492323) and (359.14810987, 115.48728020) .. (371.23539553, 113.41741394)
+ .. controls (375.44931164, 112.69580918) and (378.42746538, 112.75654226) .. (381.68741805, 113.79631850)
+ .. controls (374.03262029, 97.75720684) and (363.55014714, 90.53485455) .. (347.03092460, 90.05347343)
+ (387.19655934, 133.96962358)
+ .. controls (386.68384018, 130.97552530) and (385.85438796, 127.46494357) .. (384.66717843, 122.53174856)
+ -- (383.84077127,1 19.70551161)
+ .. controls (383.52099316, 118.50468339) and (383.51185796, 116.45164907) .. (378.18901657, 117.36314981)
+ .. controls (371.31367978, 118.54050493) and (369.88353794, 125.51992491) .. (372.86490494, 142.93005197)
+ .. controls (375.06769840, 155.79358533) and (376.96809671, 158.89248601) .. (382.40183063, 157.96199567)
+ .. controls (387.61377949, 157.06948453) and (390.23489515, 151.71242822) .. (387.19655934, 133.96962358)}
+\def\fdulogo@emblem@new@zero{%
+ (468.53843186, 119.70741769)
+ .. controls (473.74690799, 97.12388612) and (487.76874274, 83.38513668) .. (502.34937235, 86.74789069)
+ .. controls (516.49148678, 90.00950924) and (523.24855517, 108.77145056) .. (518.16649836, 130.80683817)
+ .. controls (513.10972541, 152.73259697) and (498.65786882, 166.83401000) .. (484.51575438, 163.57239145)
+ .. controls (470.37363995, 160.31077290) and (463.58279437, 141.19466133) .. (468.53843186, 119.70741769)
+ (501.64142414, 89.81749692)
+ .. controls (496.15998444, 88.55330369) and (492.58528933, 94.54100910) .. (488.84327735, 110.76607062)
+ -- (483.05327233, 135.87106446)
+ .. controls (479.23540876, 152.42501236) and (479.85189169, 159.26387584) .. (485.11407380, 160.47750135)
+ .. controls (490.48588471, 161.71641072) and (494.24606002, 155.42510278) .. (497.96278832, 139.30967006)
+ -- (503.75279334, 114.20467623)
+ .. controls (507.94991488, 96.00629641) and (506.02657590, 90.82885151) .. (501.64142414, 89.81749692)}
+\def\fdulogo@emblem@new@five{%
+ (596.81323106, 144.25778675)
+ .. controls (593.53398643, 141.88060609) and (592.81646298, 137.88650017) .. (595.12761085, 134.69834567)
+ .. controls (598.62734904, 129.87056885) and (606.22172437, 130.51231652) .. (614.32874582, 136.38923538)
+ .. controls (629.35861705, 147.28464673) and (633.41288249, 164.11949675) .. (624.10225824, 176.96320489)
+ .. controls (617.23484744, 186.43657827) and (606.12245552, 189.49768961) .. (594.14661482, 185.12390882)
+ .. controls (589.95882917, 183.61665399) and (586.87090400, 181.93399782) .. (579.07134947, 176.97475918)
+ -- (575.72667581, 185.80578112)
+ -- (601.04973158, 204.16289844)
+ -- (596.58044201, 218.57075501)
+ -- (567.24942058, 197.30819466)
+ -- (581.19499276, 159.47691905)
+ .. controls (590.31078455, 165.11240378) and (594.44167660, 167.27320765) .. (599.37410141, 168.90338888)
+ .. controls (609.33004115, 172.22978413) and (617.92168735, 170.53738499) .. (622.27985189, 164.52543650)
+ .. controls (625.97768848, 159.42438929) and (624.87516584, 152.51098060) .. (619.77411864, 148.81314402)
+ .. controls (613.94435040, 144.58704507) and (603.28063019, 148.94611527) .. (596.81323106, 144.25778675)}
+\def\fdulogo@emblem@new@ring@inner@i{%
+ (427.28478932, 410.40467342) circle [radius=241.88932729]}
+\def\fdulogo@emblem@new@ring@inner@ii{%
+ (427.28478932, 410.40467342) circle [radius=226.77199428]}
+\def\fdulogo@emblem@new@ring@outer@i{%
+ (427.28478932, 410.40467342) circle [radius=359.05469569]}
+\def\fdulogo@emblem@new@ring@outer@ii{%
+ (427.28478932, 410.40467342) circle [radius=343.93732473]}
+\def\fdulogo@motto@bo{%
+ (446.44078884, 999.91565267)
+ .. controls (447.61812214, 1000.07431933) and (456.16345526, 1001.95698595) .. (459.29012185, 1001.31565264)
+ .. controls (462.45812177, 1000.66498599) and (466.03678835, 997.51565273) .. (466.58345500, 994.39565281)
+ .. controls (466.94345499, 992.40898619) and (463.75145507, 988.95165295) .. (461.25012180, 987.90231964)
+ .. controls (452.27412203, 984.13831973) and (442.91278893, 980.49831982) .. (442.91278893, 980.49831982)
+ .. controls (442.83012226, 967.45698682) and (443.36478892, 968.93832011) .. (444.83012221, 956.91298708)
+ .. controls (446.84478883, 940.36898749) and (445.10745554, 926.59832117) .. (444.86612221, 909.79965492)
+ .. controls (444.24612223, 900.95698848) and (440.71412232, 902.67165510) .. (438.57945570, 901.24898847)
+ .. controls (434.45412247, 898.49832187) and (433.83012249, 894.41565531) .. (429.68345592, 901.04098848)
+ .. controls (426.80745600, 905.63832169) and (420.49412282, 921.06898798) .. (424.47678939, 936.04898760)
+ .. controls (429.10745594, 953.47165383) and (434.23278914, 978.47565321) .. (433.49678916, 979.24898652)
+ .. controls (432.91545584, 979.85965317) and (422.17945611, 977.18765324) .. (413.71812299, 974.91565330)
+ .. controls (406.57945650, 972.99965334) and (404.51812322, 974.85431996) .. (404.16345656, 976.97165324)
+ .. controls (402.99678993, 983.91565307) and (425.50345603, 995.32898612) .. (429.25012260, 996.32898609)
+ .. controls (430.26345591, 1003.82231924) and (427.74345597, 1012.83565235) .. (433.50345583, 1018.02231889)
+ .. controls (435.66345578, 1019.96898550) and (445.62345553, 1020.43565216) .. (447.27678882, 1014.63565230)
+ .. controls (448.91678878, 1008.86231911) and (447.44078881, 1006.90231916) .. (446.44078884, 999.91565267)
+ (504.16305406, 912.58232152)
+ .. controls (502.92838743, 909.46365493) and (498.38572087, 907.08232166) .. (494.82972096, 907.85965497)
+ .. controls (491.09905439, 908.67565495) and (482.10838795, 915.89165477) .. (480.82972131, 920.52632132)
+ .. controls (479.89638800, 923.90898790) and (488.12438780, 925.41565453) .. (489.60705443, 925.35965454)
+ .. controls (498.44038754, 925.02632121) and (501.60705413, 921.81565462) .. (502.99638743, 919.69298801)
+ .. controls (504.38572072, 917.57165473) and (505.21905404, 915.24898812) .. (504.16305406, 912.58232152)
+ (487.05198782, 975.33231995)
+ .. controls (487.49865448, 974.51765331) and (488.71198778, 974.55231997) .. (490.13598775, 974.72165330)
+ (485.82932119, 957.10565374)
+ .. controls (485.94132118, 952.99898718) and (484.68132122, 952.39632053) .. (483.66265458, 949.99898725)
+ .. controls (482.81865460, 948.00832064) and (481.70665462, 945.06965404) .. (480.71865465, 944.74965405)
+ (495.41332095, 1000.22165266)
+ .. controls (494.64398763, 1000.57898599) and (492.11598770, 998.61231937) .. (491.45465438, 997.29098607)
+ .. controls (490.95465439, 996.29098610) and (490.28798774, 993.45765283) .. (490.99598773, 992.91631951)
+ .. controls (491.70532104, 992.37365286) and (494.96932096, 994.68965280) .. (495.78798761, 996.16565277)
+ .. controls (496.77465425, 997.94298605) and (496.19065426, 999.86031934) .. (495.41332095, 1000.22165266)
+ (494.57998764, 976.58165325)
+ .. controls (495.53865428, 977.18698657) and (495.93332094, 978.03098655) .. (496.24665426, 979.35098652)
+ .. controls (496.74665425, 981.45498647) and (496.53865425, 983.79098641) .. (496.03865427, 984.41498639)
+ .. controls (495.54132094, 985.03631971) and (492.46798769, 984.60965305) .. (490.51598774, 983.77231974)
+ .. controls (489.52798776, 983.34831975) and (488.04798780, 982.33498644) .. (487.69065447, 981.66565313)
+ .. controls (487.11598782, 980.58698649) and (486.61598783, 976.12831993) .. (487.05198782, 975.33231995)
+ .. controls (487.49865448, 974.51765331) and (488.75465445, 974.33631998) .. (490.13598775, 974.72165330)
+ .. controls (492.30132103, 975.32565329) and (493.25332100, 975.74565328) .. (494.57998764, 976.58165325)
+ (520.88532031, 963.13765359)
+ .. controls (524.19465356, 967.71765348) and (523.08932026, 983.79631974) .. (523.80665357, 995.49498612)
+ .. controls (523.94532023, 997.75898606) and (525.24665354, 1006.99898583) .. (523.16265359, 1009.24831910)
+ .. controls (521.97332028, 1010.53365241) and (513.52398716, 1009.74831909) .. (511.99598720, 1008.30431913)
+ .. controls (509.65198726, 1006.08698585) and (508.88132061, 1000.42298599) .. (509.94132058, 1000.13765267)
+ .. controls (512.82932051, 999.36031935) and (513.82932049, 999.47098602) .. (513.82932049, 996.41631943)
+ .. controls (513.82932049, 990.90031956) and (509.78132059, 991.59898621) .. (509.92532059, 987.34565299)
+ .. controls (510.05198725, 983.63765308) and (513.54265383, 986.85098633) .. (514.74665380, 986.24965301)
+ .. controls (516.74665375, 985.24831970) and (517.45732040, 982.63365310) .. (517.66265373, 980.83231982)
+ .. controls (517.99598705, 977.91498655) and (517.02665374, 975.56431995) .. (514.49598714, 975.41498662)
+ .. controls (511.66265388, 975.24965329) and (510.16265391, 973.54832000) .. (510.07732058, 971.16565339)
+ .. controls (509.99598725, 968.91632011) and (514.39198714, 969.35098677) .. (515.66265378, 966.99898683)
+ .. controls (517.32932040, 963.91498690) and (518.41332037, 961.24832030) .. (520.88532031, 963.13765359)
+ (483.99598790, 899.66565518)
+ .. controls (487.24665449, 903.33232175) and (507.74665397, 888.08165547) .. (511.30265388, 891.05765539)
+ .. controls (513.19465384, 892.64032202) and (511.71865387, 906.86432166) .. (512.18665386, 913.54298816)
+ .. controls (512.63732052, 919.98832134) and (515.78532044, 933.76832099) .. (514.72265380, 935.48565428)
+ .. controls (514.09598715, 936.49632092) and (501.18798747, 932.59232102) .. (496.16265426, 931.74832104)
+ .. controls (488.43332112, 930.45098774) and (478.10798805, 930.19365441) .. (474.21865481, 929.24832110)
+ .. controls (468.21732163, 927.79098781) and (456.01998860, 919.60298801) .. (453.84132199, 924.58165455)
+ .. controls (450.99598873, 931.08165439) and (458.29332188, 935.63898761) .. (462.16265511, 936.91632091)
+ .. controls (464.67465505, 937.74432089) and (478.34665471, 939.01632086) .. (489.07998777, 940.41632083)
+ .. controls (496.60132092, 941.39632080) and (507.15598732, 942.95632076) .. (513.44132050, 944.02698740)
+ .. controls (516.05198710, 944.47098739) and (516.43465376, 948.35098729) .. (516.59732042, 951.64698721)
+ .. controls (516.77465375, 955.24832045) and (514.17465381, 955.60298711) .. (512.23198719, 956.74832042)
+ .. controls (509.83865392, 958.16032038) and (510.12132058, 960.30698699) .. (507.41332065, 960.49898699)
+ .. controls (504.66265405, 960.69365365) and (504.12798740, 957.67765373) .. (501.38532080, 957.74832039)
+ .. controls (498.16265421, 957.83232039) and (501.09598747, 966.30165351) .. (497.32932090, 969.33232010)
+ .. controls (495.62132094, 970.70698673) and (487.37598782, 970.38298674) .. (485.87065452, 969.15898677)
+ .. controls (484.53732122, 968.07632013) and (485.74398786, 960.27498700) .. (485.82932119, 957.10565374)
+ .. controls (485.94132118, 952.99898718) and (484.79198788, 952.31365386) .. (483.77465457, 949.91632059)
+ .. controls (482.92932126, 947.92432064) and (481.70665462, 945.06965404) .. (480.71865465, 944.74965405)
+ .. controls (478.66265470, 944.08298740) and (472.59065485, 949.98965392) .. (469.74132159, 953.72698716)
+ .. controls (466.61065500, 957.83232039) and (467.63465498, 960.38298699) .. (468.94132161, 967.91632014)
+ .. controls (469.49465493, 971.10832006) and (471.41332155, 977.09365324) .. (471.41332155, 981.08165314)
+ .. controls (471.41332155, 986.33231968) and (472.23865486, 991.96165287) .. (473.07998817, 995.74965278)
+ .. controls (474.03465482, 1000.04965267) and (477.52798806, 1001.20031931) .. (479.45465468, 999.91498600)
+ .. controls (481.82932129, 998.33231938) and (481.97598795, 990.93898623) .. (482.67732127, 990.00565292)
+ .. controls (483.66265458, 988.69365295) and (485.42132120, 987.09631966) .. (486.37998784, 994.39498614)
+ .. controls (486.58132117, 995.93498610) and (487.43332115, 998.91098603) .. (488.38532112, 1000.41498599)
+ .. controls (489.42265443, 1002.05631928) and (492.01598770, 1004.67098589) .. (492.99598768, 1005.52698586)
+ .. controls (496.49598759, 1008.58165245) and (496.16265426, 1011.02698573) .. (494.88532096, 1012.08165237)
+ .. controls (493.79065432, 1012.98698568) and (483.77465457, 1009.74831909) .. (481.49598796, 1012.91498568)
+ .. controls (480.45732132, 1014.36031898) and (485.74265452, 1020.96165215) .. (489.34398777, 1022.80698543)
+ .. controls (492.48532102, 1024.41631873) and (496.27465426, 1024.33098539) .. (496.44132092, 1025.88831869)
+ .. controls (497.03865424, 1031.49898522) and (496.94532091, 1036.76165175) .. (500.86265415, 1037.07631841)
+ .. controls (504.53998739, 1037.37098507) and (506.16265401, 1031.02698523) .. (506.94132066, 1030.86031856)
+ .. controls (508.01198730, 1030.63098524) and (512.47198719, 1032.08965187) .. (514.41332047, 1030.91631856)
+ .. controls (516.65865375, 1028.92031861) and (517.26398707, 1026.54031867) .. (516.80932041, 1023.91231874)
+ .. controls (516.31332043, 1021.04565214) and (512.73732051, 1017.26031890) .. (513.41332050, 1016.66565225)
+ .. controls (514.63465380, 1015.59231895) and (525.93465352, 1018.33498554) .. (532.07998670, 1014.33365231)
+ .. controls (535.66265328, 1012.00031904) and (535.94265327, 1009.57498576) .. (536.58665325, 1005.58165253)
+ .. controls (538.77465320, 992.02698620) and (540.78798648, 985.29098637) .. (541.55198646, 979.91631984)
+ .. controls (542.38265311, 974.06965332) and (543.99598640, 967.41632015) .. (540.91331981, 961.91498695)
+ .. controls (539.51465318, 959.42032035) and (536.03465327, 957.03232041) .. (533.41332000, 954.83232047)
+ .. controls (531.54665338, 953.26565384) and (529.13465344, 949.64698726) .. (533.18265334, 950.15232058)
+ .. controls (536.95465324, 950.62432057) and (541.92398645, 952.08032053) .. (549.91331959, 953.24965384)
+ .. controls (555.96931943, 954.13498715) and (570.27465241, 955.47098712) .. (571.20665239, 949.68432059)
+ .. controls (571.71865237, 946.50965401) and (568.74398578, 945.94832069) .. (565.86131919, 945.04432071)
+ .. controls (563.78798591, 944.39498739) and (561.29065263, 942.25898745) .. (557.24665274, 941.41632080)
+ .. controls (551.87198620, 940.29498750) and (544.23198639, 941.14698747) .. (540.16265316, 940.83232082)
+ .. controls (532.11198670, 940.20965416) and (526.47332017, 939.24965419) .. (524.99598688, 938.02698755)
+ .. controls (523.46798691, 936.76298758) and (524.03465357, 929.96565442) .. (525.66265353, 923.74832124)
+ .. controls (528.00398680, 914.80965480) and (531.32265338, 900.78298848) .. (531.09598672, 891.45898872)
+ .. controls (530.84665340, 881.19365564) and (521.08132031, 876.64032242) .. (510.91332056, 877.16565574)
+ .. controls (501.17598747, 877.66832239) and (499.74665417, 883.16565559) .. (492.26265436, 888.25898880)
+ .. controls (486.28665451, 892.32432203) and (482.35332127, 897.81098856) .. (483.99598790, 899.66565518)
+ (534.55198664, 1039.13791836)
+ .. controls (543.04798642, 1039.49258502) and (549.71998626, 1035.34591845) .. (549.16265294, 1026.74725200)
+ .. controls (548.87598628, 1022.31791878) and (542.22665311, 1014.58591897) .. (540.43598649, 1014.33258564)
+ .. controls (538.85731986, 1014.10991898) and (526.66265350, 1026.91525200) .. (524.09732023, 1031.66991854)
+ .. controls (523.03732026, 1033.63525183) and (529.21865344, 1038.91525170) .. (534.55198664, 1039.13791836)}
+\def\fdulogo@motto@xue{%
+ (441.96958895, 769.22205844)
+ .. controls (449.34558877, 772.01539170) and (456.88558858, 744.13805907) .. (451.85358870, 731.95805937)
+ .. controls (450.76292206, 729.32072610) and (447.74692214, 726.46339284) .. (444.82958888, 726.49939284)
+ .. controls (442.41225561, 726.52872617) and (439.10692236, 728.52739279) .. (438.10692238, 733.74872599)
+ .. controls (437.51892240, 736.82472592) and (439.10692236, 768.13805847) .. (441.96958895, 769.22205844)
+ (527.62132014, 755.16565879)
+ .. controls (527.63065348, 757.19099207) and (526.74665350, 758.41632538) .. (525.24665354, 758.12432538)
+ .. controls (523.81998690, 757.84699206) and (522.13065361, 756.10565877) .. (522.80132026, 753.97099215)
+ .. controls (523.57998691, 751.49899222) and (525.21865354, 750.05499225) .. (525.78798686, 750.20699225)
+ .. controls (526.35732017, 750.36032558) and (527.60798681, 752.33232553) .. (527.62132014, 755.16565879)
+ (487.79865447, 742.41365911)
+ .. controls (490.32932108, 743.13765909) and (486.96798783, 751.05499223) .. (486.33998784, 750.40299224)
+ .. controls (485.70532119, 749.74565893) and (485.20932120, 747.66165898) .. (485.16265454, 746.41632568)
+ .. controls (485.05198787, 743.41499242) and (484.87332121, 741.57765913) .. (487.79865447, 742.41365911)
+ (493.82932099, 758.16565872)
+ .. controls (496.82932091, 757.58165873) and (496.82932091, 760.87365865) .. (496.78132091, 762.59099194)
+ .. controls (496.73332092, 764.27499190) and (496.70532092, 764.91499188) .. (495.07998762, 765.24832520)
+ .. controls (494.02932098, 765.46432520) and (491.57998771, 765.20699187) .. (490.20532108, 763.41499192)
+ .. controls (489.97198775, 763.11365859) and (489.53865443, 761.12432531) .. (489.82932109, 760.33232533)
+ .. controls (490.27998774, 759.10832536) and (492.20532103, 758.48165871) .. (493.82932099, 758.16565872)
+ (490.89598773, 727.51099281)
+ .. controls (489.52532110, 726.15365952) and (488.32932113, 724.58299289) .. (490.78798773, 724.49899289)
+ .. controls (493.61998766, 724.40299289) and (501.82932079, 726.29099285) .. (503.57998741, 727.16565949)
+ .. controls (504.53465405, 727.64299281) and (506.07998735, 730.58299274) .. (502.34532077, 731.84565937)
+ .. controls (498.24932088, 733.23365934) and (492.55065435, 729.14832611) .. (490.89598773, 727.51099281)
+ (536.09598660, 719.86165967)
+ .. controls (533.92931999, 720.36432633) and (512.19865386, 716.67765975) .. (499.91332084, 714.49899314)
+ .. controls (481.93332129, 711.31099322) and (470.32932158, 708.16565997) .. (462.88532176, 705.36032670)
+ .. controls (458.57198854, 703.73499341) and (445.98265552, 698.81366020) .. (440.94132231, 691.36032705)
+ .. controls (439.66265568, 689.47099377) and (439.80798900, 683.43632725) .. (439.44398901, 681.91632729)
+ .. controls (438.88532236, 679.58299401) and (437.19065574, 678.58432737) .. (434.18265581, 678.02299405)
+ .. controls (426.91332266, 676.66566075) and (419.64398951, 682.58299394) .. (419.66265618, 689.86032709)
+ .. controls (419.68532284, 698.31632688) and (425.60798936, 703.41499342) .. (429.55332259, 706.96966000)
+ .. controls (433.74398916, 710.74565990) and (447.44132215, 720.13765967) .. (448.70532212, 718.47099304)
+ .. controls (449.57065543, 717.33099307) and (444.53465555, 711.52699321) .. (445.32932220, 709.80432659)
+ .. controls (445.73732219, 708.92032661) and (451.32132205, 711.04432656) .. (452.85598868, 711.66432654)
+ .. controls (455.20532195, 712.61232652) and (461.95198845, 715.57632645) .. (463.49598841, 716.52699309)
+ .. controls (464.21865506, 716.97099308) and (462.32932178, 717.99899305) .. (460.57998849, 724.16565957)
+ .. controls (459.75065517, 727.08832616) and (459.89332184, 733.08832601) .. (460.10798850, 736.99765924)
+ .. controls (460.41332182, 742.58165910) and (461.99598845, 743.69365908) .. (462.88532176, 750.13765892)
+ .. controls (463.40932175, 753.94165882) and (463.21332175, 758.85099203) .. (463.24665509, 763.49899192)
+ .. controls (463.28798842, 769.28832510) and (462.91332176, 776.79099158) .. (461.28798847, 779.58165818)
+ .. controls (459.10398852, 783.33499142) and (459.16265519, 785.41499137) .. (461.56398846, 787.06165799)
+ .. controls (463.69598841, 788.52299129) and (467.03998832, 789.16299127) .. (469.55865493, 788.64032462)
+ .. controls (471.07332156, 788.32565796) and (473.38532150, 787.30432465) .. (472.97198818, 783.31899142)
+ .. controls (472.81198818, 781.77632479) and (471.38532155, 779.80432484) .. (470.74665490, 777.16565824)
+ .. controls (469.54398826, 772.19899170) and (468.71732162, 766.42432518) .. (468.66265495, 761.49899197)
+ .. controls (468.61732162, 757.31899207) and (472.82932151, 758.83232537) .. (473.66265483, 752.13765887)
+ .. controls (474.53732147, 745.11632571) and (474.95732146, 736.34032593) .. (474.99598813, 730.97099273)
+ .. controls (475.05465479, 722.92565960) and (474.30932148, 719.34165969) .. (474.71865480, 719.36032635)
+ .. controls (476.88398808, 719.45899302) and (483.88532124, 721.52699296) .. (483.99598790, 723.16565959)
+ .. controls (484.12798790, 725.10699287) and (480.57732132, 724.27899290) .. (479.80532134, 726.25499285)
+ .. controls (478.07998805, 730.66565940) and (478.49598804, 745.20699237) .. (479.41332135, 752.24832553)
+ .. controls (479.91865467, 756.13365877) and (480.64132132, 758.04299205) .. (480.78798798, 760.54032532)
+ .. controls (480.97598798, 763.72832524) and (480.49598799, 766.24965851) .. (480.70398798, 770.04032508)
+ .. controls (480.98932131, 775.22965829) and (484.05465457, 781.59499146) .. (485.17732120, 786.51099134)
+ .. controls (486.52398784, 792.40965786) and (487.44132115, 797.87499106) .. (496.07598760, 795.66699111)
+ .. controls (502.05198745, 794.13765782) and (500.72532082, 787.43099132) .. (499.95332083, 782.88432476)
+ .. controls (499.41332085, 779.70699151) and (496.60798758, 777.52699156) .. (497.66265423, 772.69365835)
+ .. controls (498.08265421, 770.77499173) and (501.99598745, 773.30432500) .. (506.21865401, 772.08299170)
+ .. controls (507.91465397, 771.59099171) and (508.25598729, 765.93632519) .. (508.05198730, 761.08165864)
+ .. controls (507.97332063, 759.21765869) and (507.81465397, 752.69899219) .. (507.82932064, 751.83232554)
+ .. controls (507.88532064, 748.66565895) and (511.99598720, 749.74965893) .. (512.80132051, 745.85232569)
+ .. controls (513.32798717, 743.29499242) and (513.53598716, 740.52565916) .. (513.21865384, 737.63765923)
+ .. controls (512.96798718, 735.35632595) and (510.01598725, 735.36832595) .. (509.66265393, 733.80432599)
+ .. controls (509.16398727, 731.59099271) and (508.98532061, 729.32832610) .. (510.21865391, 729.24965944)
+ .. controls (512.19065386, 729.12299277) and (519.91332034, 729.80432609) .. (525.11465354, 731.78299271)
+ .. controls (526.53998684, 732.32565936) and (525.49598686, 735.12432596) .. (523.71865357, 736.80432592)
+ .. controls (522.23465361, 738.20699255) and (521.82932029, 738.29099255) .. (519.10798702, 743.69365908)
+ .. controls (517.51465373, 746.85499233) and (515.41065378, 753.78565882) .. (515.16265379, 756.63765875)
+ .. controls (514.96132046, 758.96965870) and (517.07998707, 759.16032536) .. (517.83598705, 759.73765868)
+ .. controls (518.54398704, 760.28032533) and (518.53732037, 762.00432529) .. (518.32932038, 763.13765859)
+ .. controls (517.97332038, 765.08032521) and (515.11598712, 764.31099189) .. (514.99598713, 765.47099187)
+ .. controls (514.44132047, 770.86032506) and (518.88532036, 773.13765834) .. (522.85865360, 772.50165836)
+ .. controls (526.36132017, 771.94032504) and (529.00532011, 768.54165846) .. (530.20398674, 769.87365842)
+ .. controls (531.70532004, 771.54032505) and (531.45465338, 780.09632483) .. (531.03865339, 782.70699143)
+ .. controls (530.82532006, 784.04299140) and (528.88932011, 783.82299141) .. (527.10798682, 783.47099142)
+ .. controls (523.13732025, 782.68699144) and (517.91998705, 780.70699148) .. (517.25465374, 781.47899147)
+ .. controls (515.95998710, 782.98432476) and (521.16265364, 794.74832447) .. (531.75198671, 795.31232445)
+ .. controls (539.35731985, 795.71765778) and (542.37465311, 791.12832456) .. (544.21198639, 783.24565809)
+ .. controls (546.43865301, 773.70032499) and (548.21865296, 762.08165862) .. (546.05198635, 752.02699220)
+ .. controls (545.21331970, 748.13499230) and (539.41331985, 740.49899249) .. (535.16265329, 737.49899257)
+ .. controls (532.96798668, 735.94965927) and (532.85998668, 732.85099268) .. (533.66265333, 732.97099268)
+ .. controls (544.88531971, 734.64965930) and (554.99598613, 736.24832593) .. (566.55731917, 727.45899282)
+ .. controls (574.73198563, 721.24432630) and (574.61065230, 714.82165980) .. (565.06798587, 710.35899324)
+ .. controls (557.28265273, 706.71766000) and (548.89731961, 704.19232673) .. (540.56131982, 701.98566012)
+ .. controls (537.63065323, 701.20832681) and (531.57998671, 699.49899352) .. (529.82932009, 701.83232679)
+ .. controls (527.94265347, 704.34832673) and (531.13465339, 710.47632657) .. (533.77598666, 713.74832649)
+ .. controls (536.73998658, 717.41899307) and (539.21865319, 719.13765969) .. (536.09598660, 719.86165967)
+ (490.44078774, 696.97126024)
+ .. controls (487.89412114, 695.43659362) and (486.00745452, 693.61259366) .. (483.05145459, 690.91526040)
+ .. controls (482.00212128, 689.95792709) and (479.99412133, 686.74859383) .. (476.99678808, 685.85526052)
+ .. controls (474.50212147, 685.11126054) and (471.99678820, 687.91526047) .. (471.27412155, 690.13792708)
+ .. controls (470.29012158, 693.16726034) and (470.77412156, 698.66992687) .. (473.10745484, 699.75259351)
+ .. controls (475.92345477, 701.06059348) and (480.03812133, 700.83259348) .. (484.24612123, 702.16592678)
+ .. controls (488.11945446, 703.39259342) and (490.63545440, 704.66459339) .. (494.55945430, 706.37126001)
+ .. controls (501.39412080, 709.34459327) and (506.33012068, 710.69392657) .. (511.83012054, 710.69392657)
+ .. controls (518.55145370, 710.69392657) and (525.10078687, 706.36059334) .. (525.10745354, 702.91526010)
+ .. controls (525.12078687, 695.37392695) and (519.03145369, 693.97259365) .. (515.51145378, 691.53392705)
+ .. controls (512.77412051, 689.63792709) and (514.33012048, 683.41526058) .. (517.43545373, 684.01659390)
+ .. controls (521.96345362, 684.89126055) and (530.48745340, 684.91926055) .. (534.16345331, 684.74859388)
+ .. controls (540.16345316, 684.47126056) and (544.93145304, 682.47126061) .. (544.91278638, 679.08192736)
+ .. controls (544.89145304, 674.88592746) and (542.62745310, 670.13126092) .. (537.38478657, 667.86059431)
+ .. controls (533.95411998, 666.37392768) and (528.09945346, 667.61526098) .. (527.33012015, 666.41526101)
+ .. controls (526.74745350, 665.50859436) and (527.69012014, 659.94859450) .. (527.57945348, 654.74859463)
+ .. controls (527.48878681, 650.44326141) and (527.17945349, 646.96726150) .. (524.66345355, 643.13792826)
+ .. controls (522.54345360, 639.91259500) and (518.18478705, 633.90859515) .. (512.33012053, 628.91526195)
+ .. controls (507.59412064, 624.87659538) and (503.12078742, 621.70726213) .. (497.83012089, 621.70726213)
+ .. controls (490.16345441, 621.70726213) and (480.87145464, 628.54059529) .. (474.33012148, 633.99926182)
+ .. controls (465.15278837, 641.65526163) and (458.24612188, 649.79126142) .. (460.33012183, 651.91526137)
+ .. controls (461.24745514, 652.85126135) and (466.77545500, 651.87659471) .. (472.66345485, 649.87392809)
+ .. controls (476.99412141, 648.40059479) and (490.94878773, 639.93526167) .. (494.03145432, 638.97659503)
+ .. controls (497.28612090, 637.96459505) and (503.92612074, 644.68592822) .. (504.99678738, 654.41526131)
+ .. controls (505.51012070, 659.08192786) and (506.02078735, 671.32592755) .. (504.33012073, 671.02726089)
+ .. controls (500.71812082, 670.38859424) and (473.93678815, 661.41259447) .. (470.49678824, 659.97126117)
+ .. controls (468.10478830, 658.96992786) and (461.67145512, 656.10059460) .. (459.38478852, 655.02726129)
+ .. controls (455.24612195, 653.08192801) and (447.97945547, 653.66192799) .. (448.78745545, 661.70326113)
+ .. controls (449.37012210, 667.50326098) and (450.90078873, 671.64459421) .. (459.08745519, 672.16859420)
+ .. controls (472.32078819, 673.01792751) and (499.05412086, 678.70992737) .. (501.03812081, 679.37392735)
+ .. controls (501.72345412, 679.60326068) and (499.70478751, 682.41526061) .. (497.16345424, 685.47126053)
+ .. controls (495.04878762, 688.01259380) and (493.23012100, 689.90592709) .. (493.24612100, 692.20726036)
+ .. controls (493.27412100, 696.13792693) and (504.57145405, 694.69926030) .. (506.05145402, 695.91526027)
+ .. controls (507.53278731, 697.13259357) and (508.72078728, 701.09259348) .. (506.99678733, 701.52726013)
+ .. controls (502.35812077, 702.69392677) and (494.49678764, 699.41526018) .. (490.44078774, 696.97126024)}
+\def\fdulogo@motto@er@i{%
+ (461.66398846, 521.23979797)
+ .. controls (458.99598853, 527.08246449) and (472.53065485, 539.48513085) .. (475.21865479, 544.85979738)
+ .. controls (476.99598808, 548.41579729) and (475.94132143, 551.52646388) .. (472.38532152, 549.41579727)
+ .. controls (469.05465494, 547.43846398) and (458.63332187, 543.46246408) .. (456.42132192, 547.74913064)
+ .. controls (454.32932198, 551.80513054) and (460.82932181, 560.35979699) .. (466.95065499, 564.42246356)
+ .. controls (473.84532149, 568.99713011) and (490.41865441, 577.49579657) .. (502.87198743, 569.37446343)
+ .. controls (511.49598721, 563.74913024) and (511.32932055, 558.33179704) .. (505.56532069, 552.93046385)
+ .. controls (501.92398745, 549.51846393) and (496.83465425, 546.36113068) .. (493.24665434, 543.41579742)
+ .. controls (485.96265452, 537.43446423) and (478.11865471, 528.56513112) .. (473.66132149, 524.41713123)
+ .. controls (469.71865492, 520.74779798) and (462.48265510, 519.44779802) .. (461.66398846, 521.23979797)
+ (546.32931968, 518.98566469)
+ .. controls (546.61998633, 523.10033126) and (546.32931968, 527.41633115) .. (542.66265310, 527.65633114)
+ .. controls (537.49065323, 527.99499780) and (510.67465390, 525.49633120) .. (509.65598726, 521.49899797)
+ .. controls (508.91332061, 518.58299804) and (515.44132045, 517.13766474) .. (518.57998704, 507.58299831)
+ .. controls (520.01065367, 503.22566509) and (518.96798703, 496.66566525) .. (520.91332031, 494.33233198)
+ .. controls (523.59598691, 491.11366539) and (528.76398678, 488.95766545) .. (531.66265338, 488.08299880)
+ .. controls (534.60798663, 487.19366549) and (536.81465325, 490.43366541) .. (539.74665317, 494.83233197)
+ .. controls (544.41331972, 501.83233179) and (545.82931969, 511.90299821) .. (546.32931968, 518.98566469)
+ (498.49732087, 530.70833107)
+ .. controls (508.24665396, 533.74966433) and (529.91465342, 538.43633088) .. (543.32931975, 539.08299753)
+ .. controls (556.60798608, 539.72166418) and (567.39998582, 534.18699765) .. (568.66265245, 525.86033119)
+ .. controls (570.82931906, 511.58299821) and (570.88531906, 504.47099839) .. (563.89731924, 491.04966539)
+ .. controls (561.09331931, 485.66433219) and (556.52665275, 481.04699898) .. (551.93198620, 477.05099908)
+ .. controls (545.75065302, 471.67499921) and (541.49731980, 470.89633256) .. (536.21865326, 470.58299924)
+ .. controls (526.88532016, 470.02699925) and (520.67332032, 480.32966566) .. (518.57998704, 480.24966566)
+ .. controls (514.24665381, 480.08299900) and (511.57998721, 464.91633271) .. (506.83732066, 462.48966611)
+ .. controls (504.57865405, 461.33366614) and (502.17065411, 462.86433276) .. (501.41332080, 467.08299933)
+ .. controls (500.24665416, 473.58299916) and (500.84265415, 491.84966537) .. (500.22265416, 499.16699852)
+ .. controls (499.82932084, 503.80433174) and (495.77065427, 504.87633171) .. (495.12532096, 503.36833175)
+ .. controls (494.05198765, 500.86033181) and (495.27465428, 494.91633196) .. (494.46798764, 489.60966543)
+ .. controls (493.74532099, 484.84699888) and (490.16265441, 482.50299894) .. (487.44132115, 482.02699895)
+ .. controls (485.21065454, 481.63633230) and (481.55198796, 482.52699894) .. (479.49598801, 488.63766545)
+ .. controls (476.59865475, 497.25499857) and (477.41198806, 510.16433158) .. (483.77465457, 510.58299824)
+ .. controls (487.57998781, 510.83233157) and (490.55465440, 506.33366501) .. (491.91865437, 507.90699830)
+ .. controls (493.66265433, 509.91633159) and (496.05332093, 517.31233140) .. (493.71865432, 517.91633139)
+ .. controls (492.40132102, 518.25633138) and (485.25598787, 515.80299811) .. (477.91332139, 511.91633154)
+ .. controls (470.44398824, 507.96166497) and (463.58798841, 501.50166513) .. (460.88532181, 496.24966526)
+ .. controls (458.21998854, 491.07099873) and (459.75598851, 486.31899884) .. (459.16265519, 480.33233233)
+ .. controls (458.32932188, 471.91633254) and (452.09198870, 467.21099932) .. (447.79465547, 466.89633266)
+ .. controls (443.49598891, 466.58299934) and (437.99598905, 472.24966586) .. (437.07198907, 480.16566567)
+ .. controls (436.15998910, 487.98166547) and (437.70132239, 497.62033190) .. (439.57998901, 505.83233169)
+ .. controls (440.57998899, 510.20566491) and (443.49065558, 518.47899804) .. (447.27465548, 518.52699804)
+ .. controls (451.60798871, 518.58299804) and (455.63332194, 506.69366500) .. (457.10798857, 506.91633166)
+ .. controls (460.49598849, 507.42699832) and (467.16265499, 515.36433145) .. (471.71865487, 518.30433138)
+ .. controls (477.82932139, 522.24966461) and (485.80665452, 526.74966450) .. (498.49732087, 530.70833107)}
+\def\fdulogo@motto@du{%
+ (491.26185439,364.0330019)
+ .. controls (490.21918774, 365.05433521) and (485.86052119, 365.21300187) .. (483.96852123, 364.85966855)
+ .. controls (482.05785462, 364.50366856) and (480.77652131, 361.88100196) .. (482.45518794, 361.16633531)
+ .. controls (484.01785457, 360.49966866) and (488.39652112, 360.37033533) .. (489.88185442, 360.56766866)
+ .. controls (491.13118772, 360.73433532) and (491.72185437, 363.58233525) .. (491.26185439, 364.03300190)
+ (498.07918755, 309.24900327)
+ .. controls (495.40718761, 308.81433662) and (494.07918765, 307.79033664) .. (494.82985430, 305.12367004)
+ .. controls (495.38718762, 303.13967009) and (497.10052091, 300.70767015) .. (499.20452085, 301.35300347)
+ .. controls (500.60318748, 301.78233679) and (501.00318747, 302.68633677) .. (501.07918747, 304.95700338)
+ .. controls (501.16318747, 307.43700332) and (499.87118750, 309.54100326) .. (498.07918755, 309.24900327)
+ (513.70452049, 390.37433458)
+ .. controls (513.75385382, 392.10633453) and (512.80585385, 393.27566784) .. (510.68052057, 391.91433454)
+ .. controls (509.81918725, 391.36366789) and (508.63385395, 389.53966793) .. (507.32985398, 387.94366797)
+ .. controls (506.33518734, 386.72633467) and (505.35785403, 385.49300137) .. (504.91252071, 384.44366806)
+ .. controls (503.66318741, 381.49966813) and (505.89252069, 379.53300151) .. (508.24585396, 381.02633481)
+ .. controls (509.30718727, 381.69966813) and (509.86718725, 383.61700141) .. (510.91252056, 385.24900137)
+ .. controls (512.14452053, 387.17166799) and (513.66318716, 388.91566795) .. (513.70452049, 390.37433458)
+ (496.44052092, 347.91566897)
+ .. controls (493.14852100, 342.35966911) and (487.07918782, 342.66633577) .. (482.74585460, 346.08233568)
+ .. controls (477.92052139, 349.88766892) and (479.77385467, 357.30233540) .. (477.27518807, 357.35700207)
+ .. controls (474.57918814, 357.41566873) and (474.95785479, 352.38100219) .. (474.49652147, 351.44366888)
+ .. controls (473.63518816, 349.69300226) and (471.25918822, 350.27033558) .. (468.88585494, 349.97166892)
+ .. controls (465.80185502, 349.58233560) and (465.21918837, 348.16633563) .. (463.74585507, 348.30500229)
+ .. controls (461.03252181, 348.56100229) and (460.10718850, 349.27700227) .. (457.91252189, 349.74900226)
+ .. controls (455.31252195, 350.30900224) and (450.94052206, 349.41566893) .. (450.44052207, 355.63833544)
+ .. controls (449.97918875, 361.37833530) and (454.17918865, 365.29966854) .. (457.82985522, 371.66633504)
+ .. controls (460.86985514, 376.96633491) and (461.78852179, 382.66633477) .. (464.32985506, 384.74900138)
+ .. controls (466.36718834, 386.41966801) and (469.16852160, 385.19700137) .. (471.32985488, 385.66633469)
+ .. controls (473.82985482, 386.20766801) and (475.22452145, 387.77966797) .. (476.57918809, 387.74900131)
+ .. controls (482.69918793, 387.61433465) and (483.38585458, 381.13833481) .. (488.16318780, 381.08233481)
+ .. controls (493.07652101, 381.02500148) and (506.05252068, 393.85966782) .. (511.32985388, 398.63833437)
+ .. controls (516.60718708, 403.41566758) and (526.18318685, 412.05033403) .. (534.27385331, 405.24900087)
+ .. controls (535.89118660, 403.88900091) and (538.52051987, 400.89300098) .. (538.27385321, 398.02633439)
+ .. controls (537.66318656, 390.91566790) and (529.43385343, 387.95833464) .. (531.07918672, 384.66633472)
+ .. controls (531.99652003, 382.83300143) and (536.99651991, 384.30500139) .. (541.85385312, 382.19700145)
+ .. controls (548.41118629, 379.35166819) and (549.44051960, 373.19300167) .. (542.82985310, 368.24900180)
+ .. controls (537.34718657, 364.14900190) and (531.04452006, 363.72500191) .. (534.22051998, 357.18633541)
+ .. controls (536.05251993, 353.41566883) and (536.30451993, 350.42900224) .. (533.28318667, 347.61433565)
+ .. controls (530.38585341, 344.91566905) and (525.47118686, 346.40500234) .. (524.07918690, 344.74900238)
+ .. controls (522.23518694, 342.55433577) and (525.44052020, 341.22233581) .. (525.32985353, 337.02633591)
+ .. controls (525.21918687, 332.80500268) and (517.32985373, 332.35966936) .. (517.32985373, 329.91566942)
+ .. controls (517.32985373, 328.06100280) and (517.00452041, 326.62233617) .. (518.37918704, 326.18100285)
+ .. controls (520.82985365, 325.39433620) and (525.69518686, 326.30766951) .. (526.10052018, 323.50233625)
+ .. controls (526.45118684, 321.08766964) and (526.44052017, 316.61033642) .. (524.99652021, 315.74900311)
+ .. controls (523.49385358, 314.85300313) and (520.01518700, 315.67166978) .. (519.57118701, 314.44900314)
+ .. controls (519.19785369, 313.42366983) and (519.28585368, 311.29433655) .. (520.05252033, 311.08233656)
+ .. controls (522.37385361, 310.43966991) and (526.12985351, 311.77966987) .. (528.99652011, 311.58233655)
+ .. controls (531.51518671, 311.40900322) and (532.50452002, 309.87300326) .. (532.45518669, 306.41567001)
+ .. controls (532.34852002, 299.02367019) and (526.09652018, 299.02900353) .. (522.49652027, 296.83300358)
+ .. controls (519.28852035, 294.87433696) and (518.28852038, 288.99967044) .. (521.06585364, 287.72500381)
+ .. controls (523.74318691, 286.49567051) and (532.77652001, 291.14233706) .. (541.38585313, 293.85967032)
+ .. controls (548.53651962, 296.11700360) and (554.31251948, 297.13300357) .. (560.75918598, 297.13833691)
+ .. controls (572.57651902, 297.14767024) and (579.51918551, 289.53033710) .. (579.20318552, 278.51967071)
+ .. controls (578.60185220, 257.56100456) and (564.04051923, 237.39967173) .. (545.09118637, 229.35300527)
+ .. controls (532.67518668, 224.07967207) and (522.02318695, 225.81567202) .. (513.44052050, 235.58233845)
+ .. controls (507.82985397, 241.96900495) and (499.03252086, 249.68633809) .. (496.38585426, 249.35967144)
+ .. controls (493.72185432, 249.03300478) and (482.01785462, 246.01167152) .. (473.93118815, 244.41033823)
+ .. controls (466.41918834, 242.92233826) and (446.60718883, 239.41567168) .. (436.60718908, 238.35967171)
+ .. controls (432.82718918, 237.96100505) and (431.32985588, 236.49967176) .. (428.49652262, 236.41567176)
+ .. controls (425.05652271, 236.31433843) and (422.24585611, 237.95700505) .. (419.66318951, 241.66633829)
+ .. controls (417.99918955, 244.05433823) and (416.92052291, 247.78500481) .. (417.28852290, 251.12367139)
+ .. controls (417.70452289, 254.91567130) and (421.87918945, 256.95833791) .. (428.66318928, 257.62367123)
+ .. controls (436.16318910, 258.35967121) and (438.25385571, 256.52100459) .. (446.88985549, 256.70900458)
+ .. controls (453.82985532, 256.85967125) and (472.74585485, 258.33300454) .. (481.45518796, 259.49967118)
+ .. controls (483.41785458, 259.76233784) and (485.44185453, 260.25567116) .. (486.83252116, 260.77167115)
+ .. controls (487.26585449, 260.93167115) and (485.01252121, 265.87167102) .. (485.82985452, 266.08233768)
+ .. controls (487.77385447, 266.58233767) and (492.26718769, 263.18367109) .. (494.82985430, 263.58233775)
+ .. controls (501.17118747, 264.57167105) and (510.05785392, 265.77833769) .. (516.13518710, 266.74900433)
+ .. controls (523.76585357, 267.96767097) and (532.82985335, 268.13833763) .. (533.53518666, 265.93967102)
+ .. controls (534.00451998, 264.47833772) and (528.48852012, 260.62500449) .. (522.77385360, 257.91567122)
+ .. controls (517.58452039, 255.45567128) and (511.47918721, 254.14900465) .. (512.32985386, 253.49967133)
+ .. controls (513.60185383, 252.52767136) and (530.44452007, 246.09833818) .. (534.49651997, 247.08233816)
+ .. controls (537.41251990, 247.79033814) and (543.77785307, 254.45700464) .. (549.55251959, 264.91567105)
+ .. controls (553.81251949, 272.63167085) and (558.50718604, 288.15433713) .. (556.57918609, 289.33300377)
+ .. controls (554.65251947, 290.51033707) and (541.27785313, 286.57700384) .. (534.14051998, 284.39833723)
+ .. controls (520.45918699, 279.91300400) and (507.27385398, 274.85967080) .. (492.93518768, 271.51167088)
+ .. controls (488.76185445, 270.53700424) and (481.10718797, 269.69567093) .. (478.88585469, 272.91567085)
+ .. controls (476.11518810, 276.93033741) and (476.04052143, 285.11433721) .. (476.32985476, 293.16633701)
+ .. controls (476.60852142, 300.93567015) and (477.15518807, 308.58766995) .. (479.77385467, 311.91566987)
+ .. controls (482.19918795, 314.99700313) and (490.84052106, 317.42366973) .. (493.74585432, 318.08233638)
+ .. controls (499.99652083, 319.49966968) and (498.51652087, 322.47033627) .. (498.51652087, 325.80500286)
+ .. controls (498.51652087, 328.13833613) and (494.71918763, 327.13833616) .. (490.66318773, 327.91566947)
+ .. controls (487.01652116, 328.61566945) and (485.28718787, 332.57566935) .. (489.75652109, 337.50100257)
+ .. controls (491.45918771, 339.37833585) and (495.38585428, 341.74900246) .. (496.49652092, 342.41566911)
+ .. controls (497.60718756, 343.08233576) and (503.04452076, 345.68900236) .. (507.21918732, 346.13833568)
+ .. controls (512.50318719, 346.70500233) and (514.66318713, 346.02633569) .. (517.44052040, 347.52633565)
+ .. controls (521.31518697, 349.61966893) and (521.26318697, 364.89166855) .. (520.91252031, 366.74900183)
+ .. controls (520.44185366, 369.25033510) and (515.92585377, 366.09566852) .. (514.05252048, 366.47166851)
+ .. controls (509.62585393, 367.47966848) and (507.55252064, 370.80500173) .. (503.71918741, 370.02633509)
+ .. controls (498.80452086, 369.03033511) and (495.55652094, 362.61833527) .. (495.71652094, 357.26366874)
+ .. controls (495.84185427, 353.03433551) and (499.10718752, 352.41566886) .. (496.44052092, 347.91566897)}
+\def\fdulogo@motto@zhi{%
+ (512.24638719, 153.66567383)
+ .. controls (512.47838719, 150.62834057) and (511.49705388, 146.99900733) .. (513.74638716, 147.41634065)
+ .. controls (518.23038704, 148.24567396) and (526.40638684, 149.32967394) .. (527.24638682, 145.37367403)
+ .. controls (527.95438680, 142.04034078) and (528.16238680, 138.71500753) .. (523.77438691, 135.19367429)
+ .. controls (520.66372032, 132.69767435) and (517.50372040, 132.90034101) .. (515.55172044, 130.47100774)
+ .. controls (513.99438715, 128.53500779) and (513.96905382, 119.16567469) .. (516.77438708, 119.63767468)
+ .. controls (519.48905368, 120.09500800) and (524.63572022, 121.27634130) .. (528.07972013, 121.41634130)
+ .. controls (533.64771999, 121.64034129) and (537.49438656, 118.33367471) .. (537.49571990, 113.41634150)
+ .. controls (537.49705323, 110.36034158) and (533.90638665, 106.28300835) .. (530.34105341, 105.88567502)
+ .. controls (526.60772017, 105.47100837) and (525.24638687, 108.58167495) .. (521.07972031, 108.62434162)
+ .. controls (515.94905377, 108.67500829) and (510.59972057, 106.95100833) .. (499.49572085, 104.08167507)
+ .. controls (493.72772099, 102.59234177) and (488.03838780, 100.72834182) .. (482.69705460, 99.520341850)
+ .. controls (477.65972139, 98.38034188) and (471.57838821, 96.480341920) .. (465.94105502, 96.248341930)
+ .. controls (463.30372175, 96.14034193) and (458.61438853, 96.236341930) .. (457.80238855, 100.31100849)
+ .. controls (457.05172191, 104.08167507) and (457.67972189, 107.07500833) .. (462.44105511, 109.24834160)
+ .. controls (467.55172164, 111.58300821) and (482.99705459, 112.86034151) .. (489.38505443, 114.30434148)
+ .. controls (492.46772102, 115.00167479) and (491.70505437, 123.16567459) .. (490.12105441, 123.70700791)
+ .. controls (487.46638781, 124.61634122) and (478.63838803, 121.42434130) .. (472.78238818, 122.42567461)
+ .. controls (469.96772158, 122.90700793) and (463.91305507, 123.10700792) .. (464.49572172, 129.33234110)
+ .. controls (465.10772171, 135.86034094) and (484.69438788, 137.48434090) .. (488.35172112, 138.72967420)
+ .. controls (491.99572103, 139.97100750) and (491.07438772, 146.65634067) .. (490.57972107, 149.11767394)
+ .. controls (488.73572111, 158.29634038) and (489.04505444, 164.86034021) .. (500.27838749, 165.97367352)
+ .. controls (511.62238721, 167.09767349) and (512.05572053, 156.16300710) .. (512.24638719, 153.66567383)
+ (477.14665474, 84.89994221)
+ .. controls (472.73998818, 81.22527564) and (467.58798831, 76.65460909) .. (463.99598840, 72.30394253)
+ .. controls (462.33465511, 70.29194258) and (463.05465509, 58.65327620) .. (463.10798842, 55.47060962)
+ .. controls (463.21865509, 48.80394312) and (460.37198849, 40.91594331) .. (453.45465533, 40.91594331)
+ .. controls (445.28798887, 40.91594331) and (444.20265556, 46.74927650) .. (443.32932225, 50.99860973)
+ .. controls (442.19732228, 56.51327626) and (443.66132224, 63.83994274) .. (445.21865554, 66.35994268)
+ .. controls (446.79598883, 68.91194261) and (452.75865535, 71.92527587) .. (457.92665522, 75.68794244)
+ .. controls (468.97065494, 83.72927558) and (482.18532128, 94.29727531) .. (483.77465457, 92.64660869)
+ .. controls (485.03865454, 91.33194205) and (479.27598802, 86.67460884) .. (477.14665474, 84.89994221)
+ (476.49638809, 72.74900918)
+ .. controls (480.21905466, 74.35967581) and (501.89638745, 50.07834308) .. (510.82972056, 47.24900982)
+ .. controls (515.82972044, 45.66634319) and (532.30172003, 46.16634318) .. (537.63505323, 46.24900985)
+ .. controls (538.76705320, 46.26634318) and (540.66305315, 46.49967651) .. (540.59505315, 47.73300981)
+ .. controls (540.52038649, 49.09834311) and (500.66305415, 75.58234245) .. (503.74572074, 79.16500902)
+ .. controls (505.18172070, 80.83300898) and (525.21905354, 70.58234257) .. (540.71905315, 64.52634272)
+ .. controls (556.74171941, 58.26634288) and (572.32971903, 53.35967634) .. (572.32971903, 48.58234312)
+ .. controls (572.32971903, 43.46367658) and (566.08038585, 43.41567658) .. (563.08038592, 39.49967668)
+ .. controls (561.54438596, 37.49567673) and (561.41371930, 34.58234347) .. (558.66305270, 32.58234352)
+ .. controls (549.60438626, 25.99434369) and (535.51105328, 25.81434369) .. (524.88572021, 26.15834368)
+ .. controls (504.88572071, 26.80501033) and (495.99638760, 29.91567692) .. (487.99638780, 40.91567665)
+ .. controls (478.70838803, 53.68767633) and (473.71505482, 71.54500921) .. (476.49638809, 72.74900918)
+ (507.10745399, 87.63794214)
+ .. controls (508.21812063, 90.80460873) and (515.55412044, 93.42460867) .. (524.74612021, 94.66594197)
+ .. controls (535.22878662, 96.08060860) and (548.44611962, 96.18060860) .. (551.57945288, 95.24860862)
+ .. controls (557.74611939, 93.41527533) and (560.91278598, 86.41527551) .. (560.49678599, 80.49927566)
+ .. controls (560.21945266, 76.56594242) and (556.38478609, 75.08194246) .. (553.55145283, 75.08194246)
+ .. controls (549.55145293, 75.08194246) and (543.79011974, 76.84460908) .. (539.55811984, 77.15260907)
+ .. controls (532.15012003, 77.69394239) and (524.42745356, 78.01127572) .. (520.71812032, 78.58194237)
+ .. controls (514.94078713, 79.47127568) and (505.79145402, 83.88727557) .. (507.10745399, 87.63794214)}
+\def\fdulogo@motto@qie{%
+ ( 70.41306491, 978.12405322)
+ .. controls ( 68.59973162, 977.99071989) and ( 61.77439846, 976.13738660) .. ( 56.44106526, 974.19338665)
+ .. controls ( 51.01039872, 972.21338670) and ( 47.16373215, 968.74938678) .. ( 42.77439893, 967.74938681)
+ .. controls ( 38.32373238, 966.73472017) and ( 27.71839931, 965.08272021) .. ( 25.59173269, 972.32672003)
+ .. controls ( 24.69706605, 975.37205328) and ( 31.35573255, 978.65738654) .. ( 35.71839911, 981.09738648)
+ .. controls ( 40.16373233, 983.58271975) and ( 50.54506540, 987.01471966) .. ( 56.73839858, 988.37605296)
+ .. controls ( 60.80639848, 989.26938627) and ( 70.49573157, 991.41605288) .. ( 72.62106485, 992.66538619)
+ .. controls ( 74.04239815, 993.50138617) and ( 73.41306483, 1004.24938590) .. ( 72.24639819, 1007.16538582)
+ .. controls ( 69.62239826, 1013.72405233) and ( 69.98906492, 1025.04271871) .. ( 79.22106469, 1025.33205204)
+ .. controls ( 87.39039782, 1025.58938536) and ( 88.54373112, 1019.55471885) .. ( 88.66373112, 1011.74938571)
+ .. controls ( 88.73039778, 1007.33605249) and ( 85.75306452, 999.49871935) .. ( 87.44106448, 996.69338609)
+ .. controls ( 89.12906444, 993.88805282) and ( 95.55173094, 997.80405272) .. ( 96.82639758, 996.37605276)
+ .. controls ( 98.79706420, 994.16671948) and ( 99.24373085, 989.33205294) .. ( 96.61173092, 988.43205296)
+ .. controls ( 90.38506441, 986.30405301) and ( 86.55173117, 986.91605300) .. ( 85.04773121, 978.98671986)
+ .. controls ( 84.33173123, 975.21471996) and ( 84.13839790, 971.34805339) .. ( 83.83039790, 966.74938683)
+ .. controls ( 83.38773125, 960.16272033) and ( 83.64373124, 956.11872043) .. ( 84.03173123, 955.66538711)
+ .. controls ( 85.20506454, 954.29072048) and (101.00239747, 967.46805348) .. (109.66239726, 973.83205332)
+ .. controls (119.56506368, 981.10938647) and (128.27839679, 988.06005297) .. (131.55173004, 989.97071959)
+ .. controls (133.45439666, 991.08271956) and (135.66906327, 994.46271947) .. (136.49706325, 993.99871949)
+ .. controls (138.57972987, 992.83205285) and (137.16372990, 989.69338626) .. (141.07972981, 989.66538626)
+ .. controls (146.73839633, 989.62538626) and (150.99706289, 989.74938626) .. (150.41306291, 983.16538642)
+ .. controls (149.91972959, 977.59471990) and (149.02906294, 971.76405338) .. (148.24639629, 966.99872016)
+ .. controls (147.24639632, 960.91605365) and (152.66372952, 965.49872020) .. (153.99972948, 959.75472034)
+ .. controls (154.93972946, 955.71338711) and (159.54106268, 956.39872043) .. (161.71306262, 958.37872038)
+ .. controls (163.88506257, 960.36005366) and (167.24372915, 970.34538674) .. (168.57972912, 981.08271981)
+ .. controls (169.87439575, 991.48805288) and (171.32772905, 1007.98271914) .. (169.68772909, 1009.37205243)
+ .. controls (167.74239581, 1011.02138573) and (157.99706272, 1000.24938600) .. (149.74639626, 1000.41605266)
+ .. controls (142.70639643, 999.65471934) and (137.03706324, 1002.73205260) .. (136.51572992, 1004.14138590)
+ .. controls (135.48372995, 1006.93471916) and (143.43439641, 1010.10538575) .. (147.18639632, 1011.49471905)
+ .. controls (154.63972947, 1014.25338565) and (161.57972929, 1014.66538564) .. (168.57972912, 1017.83205222)
+ .. controls (171.25039572, 1019.04005219) and (172.36639569, 1022.16405212) .. (173.91306232, 1021.83205212)
+ .. controls (181.62772879, 1020.17738550) and (191.32772855, 1014.26005231) .. (191.90772854, 1006.67205250)
+ .. controls (192.90639518, 993.61871950) and (192.74639518, 980.61738649) .. (190.68106190, 965.57872020)
+ .. controls (189.56506193, 957.44672040) and (184.02772873, 952.24005386) .. (178.35172887, 946.71472067)
+ .. controls (172.59039569, 941.10672081) and (157.91306272, 936.49872092) .. (152.73706285, 940.72538748)
+ .. controls (147.28239632, 945.18005404) and (145.86106302, 950.55472057) .. (144.49706305, 951.86005387)
+ .. controls (143.37972975, 952.92805385) and (141.25306314, 950.52005391) .. (139.24639652, 947.33205399)
+ .. controls (134.99706329, 940.58272082) and (127.31439682, 929.87605442) .. (121.49706363, 923.08272126)
+ .. controls (115.30639712, 915.85338811) and (111.05173056, 911.24938822) .. (109.11439727, 912.24938820)
+ .. controls (107.65439731, 913.00272151) and (116.65706375, 928.63472112) .. (123.88506357, 945.80405402)
+ .. controls (130.10106341, 960.57072032) and (135.21172995, 976.57605325) .. (134.44106331, 982.30405311)
+ .. controls (133.99572998, 985.60805303) and (131.79706337, 985.56138636) .. (129.92239675, 984.51471972)
+ .. controls (124.86506355, 981.68938646) and (118.97706369, 970.97472006) .. (114.49706380, 965.99872019)
+ .. controls (101.56239746, 951.63472055) and (100.63439748, 950.83205390) .. ( 87.21839782, 936.91605425)
+ .. controls ( 81.92773129, 931.42805438) and ( 71.99573153, 921.13738797) .. ( 69.28773160, 920.91605465)
+ .. controls ( 66.92506499, 920.72138798) and ( 66.88506499, 923.74938791) .. ( 64.83039838, 924.58272122)
+ .. controls ( 62.35306511, 925.58672120) and ( 60.49706515, 924.19338790) .. ( 57.99039855, 926.09872118)
+ .. controls ( 50.60506540, 931.71205438) and ( 62.66373177, 937.69338756) .. ( 66.88506499, 948.02672064)
+ .. controls ( 71.88239820, 960.25605366) and ( 73.33039817, 968.25205346) .. ( 73.83039815, 974.16538665)
+ .. controls ( 74.15306481, 977.99338655) and ( 72.20506486, 978.25605321) .. ( 70.41306491, 978.12405322)}
+\def\fdulogo@motto@wen{%
+ (113.88533049, 800.33232433)
+ .. controls (113.88533049, 792.49899119) and (103.44133075, 785.91499135) .. ( 93.77466432, 787.69365798)
+ .. controls ( 91.97599770, 788.02432464) and ( 91.99599770, 790.54032457) .. ( 92.36799769, 792.02699120)
+ .. controls ( 93.00133101, 794.55499114) and ( 94.03866432, 794.79099113) .. ( 94.21866431, 797.41499107)
+ .. controls ( 94.41999764, 800.34565766) and ( 90.55199774, 798.87365770) .. ( 90.55199774, 802.45765761)
+ .. controls ( 90.55199774, 807.73499081) and ( 91.41999771, 813.70699066) .. ( 93.82799765, 814.61899064)
+ .. controls ( 95.18533095, 815.13232396) and ( 99.94266417, 810.02832409) .. (104.23466406, 809.80299076)
+ .. controls (109.99599725, 809.49899077) and (113.88533049, 808.05499080) .. (113.88533049, 800.33232433)
+ ( 68.24639829, 746.24899235)
+ .. controls ( 76.02373143, 746.24899235) and ( 76.30906476, 717.77832639) .. ( 76.32906476, 695.74899361)
+ .. controls ( 76.34639809, 678.91566070) and ( 73.70373149, 668.63299429) .. ( 68.82639828, 668.61832762)
+ .. controls ( 65.44106503, 668.60899429) and ( 58.49173187, 673.23166084) .. ( 57.54506523, 683.24899392)
+ .. controls ( 55.93039860, 700.35032683) and ( 58.49706520, 720.08232633) .. ( 62.50239844, 732.20499270)
+ .. controls ( 63.84106507, 736.25832593) and ( 65.57973169, 746.24899235) .. ( 68.24639829, 746.24899235)
+ (117.19559707, 733.34792600)
+ .. controls (114.83026380, 735.24925929) and ( 94.68759763, 733.44392600) .. ( 94.49693097, 732.49859269)
+ .. controls ( 93.99693098, 730.02659275) and ( 98.73693086, 730.33459274) .. ( 99.60759751, 726.35992618)
+ .. controls (100.98626414, 720.06125967) and (103.24626409, 712.70792652) .. (105.56093069, 712.68259319)
+ .. controls (106.91293066, 712.66792652) and (110.07293058, 717.64525973) .. (112.74626385, 722.74925960)
+ .. controls (115.32226378, 727.66792614) and (118.09959705, 732.62125935) .. (117.19559707, 733.34792600)
+ (125.07959687, 717.74925973)
+ .. controls (125.16359687, 710.58259324) and (136.33026326, 717.41592640) .. (136.33026326, 709.91592659)
+ .. controls (136.33026326, 706.99859333) and (134.99692996, 703.58259341) .. (132.91293001, 703.16526009)
+ .. controls (128.86226345, 702.35592678) and (122.66493027, 701.93192679) .. (122.83026360, 700.99859348)
+ .. controls (123.33026358, 698.16526022) and (134.45826331, 690.91192706) .. (137.88492989, 690.69326040)
+ .. controls (139.35426318, 690.59992707) and (141.45292980, 694.44792697) .. (141.41292980, 701.24926014)
+ .. controls (141.33026313, 715.33192645) and (141.46226313, 737.09459258) .. (141.41292980, 747.83192564)
+ .. controls (141.33026313, 766.24925851) and (140.87559648, 775.70525828) .. (135.57959661, 774.99859163)
+ .. controls (130.28359674, 774.29192498) and (125.66359686, 768.83192512) .. (123.01693026, 763.93192524)
+ .. controls (119.17693035, 756.81859208) and (114.00093048, 755.98125877) .. (107.77559731, 760.51859199)
+ .. controls (103.80893074, 763.40925858) and ( 98.44093087, 763.85725857) .. ( 95.31426428, 763.30525859)
+ .. controls ( 91.04359772, 762.55192527) and ( 89.00626444, 756.68125875) .. ( 87.94093113, 755.30392545)
+ .. controls ( 85.66359786, 752.35992553) and ( 82.55159794, 750.35992558) .. ( 78.55159804, 751.41592555)
+ .. controls ( 74.74493146, 752.41992553) and ( 68.07959830, 757.89592539) .. ( 68.07959830, 764.08259190)
+ .. controls ( 68.07959830, 770.26925841) and ( 73.10359817, 771.43059172) .. ( 75.41826478, 770.34659174)
+ .. controls ( 78.83026470, 768.74925845) and ( 80.62226465, 763.49992525) .. ( 86.29693118, 765.48925853)
+ .. controls ( 89.41293110, 766.58259184) and ( 95.18626429, 773.48792500) .. (102.21826411, 775.08259163)
+ .. controls (106.99693066, 776.16525827) and (113.86626382, 773.31725834) .. (116.63959708, 776.18925826)
+ .. controls (122.11293028, 781.85592479) and (125.22626354, 780.03192484) .. (130.24626341, 783.74925808)
+ .. controls (133.91559665, 786.46659134) and (136.36892992, 790.42792458) .. (144.21826306, 790.47059124)
+ .. controls (150.91292956, 790.50792457) and (155.77292944, 786.62259134) .. (160.33026266, 779.80392484)
+ .. controls (164.95292921, 772.88792501) and (165.57559586, 766.17059185) .. (165.99692918, 757.80392539)
+ .. controls (166.52626250, 747.25325899) and (165.26626254, 744.26125906) .. (165.66359586, 734.41592598)
+ .. controls (166.04092918, 725.02125954) and (169.01826244, 708.54259329) .. (169.90626242, 696.58259359)
+ .. controls (171.03426239, 681.39592730) and (156.09159610, 668.34259429) .. (145.21826304, 666.42526101)
+ .. controls (136.66359658, 664.91592771) and (132.88493001, 670.47059424) .. (130.10759675, 675.24926079)
+ .. controls (123.69826357, 686.27192718) and (115.95026377, 694.92259363) .. (110.10759725, 698.24926021)
+ .. controls (106.83959733, 700.10926017) and (101.64359746, 698.15726022) .. ( 96.44093092, 699.02659353)
+ .. controls ( 89.31159777, 700.21726016) and ( 86.33293118, 709.19592661) .. ( 85.74626452, 719.16525969)
+ .. controls ( 85.49693120, 723.41592625) and ( 89.71026442, 729.00125944) .. ( 90.50226440, 730.49725941)
+ .. controls ( 91.91293104, 733.16525934) and ( 90.13959775, 736.64125925) .. ( 92.66359768, 738.58259254)
+ .. controls (100.24626416, 744.41592573) and (111.62759721, 747.60659231) .. (119.89826367, 748.24125896)
+ .. controls (123.97026357, 748.55325896) and (129.79693009, 746.79459233) .. (132.24626336, 743.41592575)
+ .. controls (134.66359663, 740.08259250) and (134.83026330, 735.58259261) .. (133.07559667, 730.62659274)
+ .. controls (131.31159672, 725.63992619) and (125.03826354, 721.36525964) .. (125.07959687, 717.74925973)}
+\def\fdulogo@motto@er@ii{%
+ (108.90466394, 536.58766425)
+ .. controls (109.87666392, 538.57566420) and (102.97266409, 537.08499758) .. ( 98.66333087, 536.37433093)
+ .. controls ( 94.84066430, 535.74366428) and ( 88.89133111, 534.12899765) .. ( 86.55266450, 538.04633088)
+ .. controls ( 84.44066456, 541.58233080) and ( 89.92999775, 547.88499731) .. ( 94.20733098, 550.49299724)
+ .. controls ( 99.89399750, 553.95833049) and (111.29533055, 558.12099705) .. (118.74599703, 558.49966371)
+ .. controls (125.64599686, 558.84899703) and (133.83799665, 551.11166389) .. (133.85132999, 544.52899739)
+ .. controls (133.85932999, 539.75166418) and (127.88866347, 534.22766431) .. (126.31133018, 532.76633102)
+ .. controls (121.78999696, 528.57966445) and ( 98.29533088, 509.82766492) .. ( 92.82999768, 505.85966502)
+ .. controls ( 88.25133113, 502.53566511) and ( 86.05133118, 503.03566509) .. ( 85.59266453, 503.66499841)
+ .. controls ( 85.02466454, 504.44366506) and ( 86.99666449, 508.74899828) .. ( 91.82999770, 514.91566480)
+ .. controls ( 98.69266420, 523.67166458) and (106.80599733, 532.29699770) .. (108.90466394, 536.58766425)
+ (133.85066332, 493.80459866)
+ .. controls (134.29466331, 488.91526545) and (146.75732966, 471.29926589) .. (155.10399612, 472.01393254)
+ .. controls (160.93732931, 472.51393252) and (165.88532919, 481.74859896) .. (167.66266248, 488.19393213)
+ .. controls (168.81732911, 492.37926536) and (169.31332910, 501.70726513) .. (168.63866245, 502.65793177)
+ .. controls (167.98799580, 503.57259841) and (159.59866268, 500.35793183) .. (151.99599620, 498.87393186)
+ .. controls (143.42132975, 497.20059857) and (133.68132999, 495.66459861) .. (133.85066332, 493.80459866)
+ (119.70533034, 486.04059885)
+ .. controls (118.57999704, 486.62459884) and (116.17199710, 486.29259885) .. (115.62133044, 485.54059886)
+ .. controls (115.16266379, 484.91526555) and (116.61999708, 465.61526603) .. (113.77733049, 461.77526612)
+ .. controls (110.88399723, 457.86993289) and (102.49199744, 457.94193289) .. ( 99.68399751, 460.35259949)
+ .. controls ( 96.45466426, 463.12459942) and ( 94.27733098, 467.76593264) .. ( 94.44133097, 472.47126586)
+ .. controls ( 94.62133097, 477.66593239) and ( 97.28666423, 483.17793226) .. ( 95.79999761, 484.01126557)
+ .. controls ( 94.97599763, 484.47393222) and ( 86.97466449, 480.91259898) .. ( 82.37199794, 480.20726566)
+ .. controls ( 75.94133143, 479.22059902) and ( 74.85066480, 485.58193220) .. ( 73.28799817, 485.33259887)
+ .. controls ( 70.95599823, 484.95926555) and ( 72.57999819, 474.64459914) .. ( 73.60799816, 468.02726597)
+ .. controls ( 74.32133148, 463.43126608) and ( 75.78533144, 458.58059954) .. ( 75.32933145, 455.63793294)
+ .. controls ( 74.49599814, 450.24859975) and ( 71.07999822, 448.08193313) .. ( 66.74399833, 447.52726648)
+ .. controls ( 62.58933177, 446.99659983) and ( 58.03866522, 450.99926639) .. ( 55.91333194, 456.29126626)
+ .. controls ( 54.88399863, 458.85259953) and ( 53.27866533, 461.95393279) .. ( 53.38933200, 475.23793245)
+ .. controls ( 53.47866533, 485.96859885) and ( 56.64133192, 504.78593172) .. ( 61.67199846, 508.24993163)
+ .. controls ( 67.35733165, 512.16326487) and ( 70.84266490, 506.77793167) .. ( 71.96133153, 503.75393174)
+ .. controls ( 73.07999817, 500.72993182) and ( 71.44799821, 494.38059864) .. ( 73.20533150, 493.24859867)
+ .. controls ( 74.21866481, 492.59659869) and ( 85.44933120, 497.09259858) .. ( 99.66266418, 500.83259848)
+ .. controls (114.55199714, 504.74859838) and (131.64933004, 508.53526496) .. (143.95466307, 510.95793156)
+ .. controls (156.87199608, 513.49926483) and (174.41332897, 516.70726475) .. (181.47199546, 514.83393147)
+ .. controls (187.07332866, 513.34859817) and (191.83332854, 505.08059838) .. (193.02266184, 499.35526519)
+ .. controls (194.44132847, 492.52726536) and (194.20799514, 479.94593234) .. (188.99599528, 470.13793258)
+ .. controls (185.57732869, 463.70459941) and (180.38532882, 460.47126616) .. (173.56799566, 457.37926623)
+ .. controls (169.12932911, 455.36726629) and (158.60132937, 452.72859968) .. (153.71866282, 453.13793301)
+ .. controls (145.77466302, 453.80459966) and (142.66399643, 465.36459937) .. (139.82932984, 465.58193270)
+ .. controls (136.21866326, 465.86059936) and (133.63332999, 458.01526622) .. (130.27466341, 452.41526636)
+ .. controls (127.86533014, 448.40059979) and (124.58533022, 445.84059986) .. (123.16266359, 446.02726652)
+ .. controls (120.82933031, 446.33259984) and (121.47333030, 457.59259956) .. (121.60799696, 467.80459931)
+ .. controls (121.71866362, 476.24859910) and (120.89599698, 485.42326553) .. (119.70533034, 486.04059885)}
+\def\fdulogo@motto@jin{%
+ (147.52999631, 311.63046988)
+ .. controls (148.58999629, 309.42913660) and (152.49666285, 307.13846999) .. (155.99532943, 297.70780356)
+ .. controls (158.12599605, 291.96247037) and (159.99666267, 280.74913732) .. (159.64332934, 273.74780416)
+ .. controls (159.23266269, 265.59180436) and (157.10066274, 260.92113781) .. (154.41532947, 257.01847124)
+ .. controls (150.25666291, 250.97713806) and (146.14599635, 247.36913815) .. (147.32999632, 247.08247149)
+ .. controls (150.07932958, 246.41580484) and (181.78199546, 246.25847151) .. (191.17132855, 248.63447145)
+ .. controls (201.71799496, 251.30513805) and (223.91666107, 249.58647143) .. (224.21799439, 243.24913825)
+ .. controls (224.52066105, 236.91180508) and (214.10332798, 233.82647182) .. (202.32999494, 231.99847187)
+ .. controls (191.77399521, 230.35980524) and (153.31132950, 227.27047199) .. (134.81932996, 228.33180529)
+ .. controls (111.10733056, 229.69313859) and ( 94.27533098, 234.98247179) .. ( 80.55133132, 240.13847167)
+ .. controls ( 70.49666490, 243.91580490) and ( 62.00199845, 249.09180478) .. ( 55.44066528, 249.69313809)
+ .. controls ( 50.32866541, 250.16247142) and ( 46.21799884, 248.13847147) .. ( 42.82999893, 244.69313822)
+ .. controls ( 39.36333235, 241.17047164) and ( 34.71799913, 241.69313829) .. ( 32.66333252, 244.24913823)
+ .. controls ( 31.71666587, 245.42647153) and ( 29.24599927, 249.70780476) .. ( 31.59799921, 254.44247131)
+ .. controls ( 33.57133249, 258.41313788) and ( 37.53133240, 261.19180447) .. ( 41.82999895, 262.62380444)
+ .. controls ( 47.16333215, 264.40113773) and ( 54.84866530, 263.66647108) .. ( 54.91266529, 265.66513769)
+ .. controls ( 55.03799862, 269.54113760) and ( 50.16333208, 275.91580410) .. ( 47.32999882, 284.91580388)
+ .. controls ( 45.24466554, 291.53713705) and ( 44.63399888, 303.49313675) .. ( 44.74599888, 312.16513653)
+ .. controls ( 44.79666555, 316.04113643) and ( 45.49933220, 319.51446968) .. ( 45.44066553, 322.30513628)
+ .. controls ( 45.32999887, 327.63846948) and ( 43.71533224, 330.87180273) .. ( 43.77133224, 334.48246931)
+ .. controls ( 43.83799890, 338.86646920) and ( 44.82733221, 343.80513574) .. ( 48.99666544, 343.91580240)
+ .. controls ( 55.24599862, 344.08246907) and ( 57.56066523, 337.90380256) .. ( 58.24599854, 331.83180271)
+ .. controls ( 58.82999853, 326.66513617) and ( 56.79799858, 319.75846968) .. ( 56.75133191, 314.24913648)
+ .. controls ( 56.66333192, 303.58247008) and ( 59.79266517, 301.92113679) .. ( 63.00733176, 295.52513695)
+ .. controls ( 66.16333168, 289.24913710) and ( 66.24466501, 276.24913743) .. ( 66.24466501, 265.97180435)
+ .. controls ( 66.24466501, 262.88780443) and ( 71.16733155, 260.61713782) .. ( 78.21799804, 257.80513789)
+ .. controls ( 84.61666455, 255.25180462) and ( 92.80599768, 252.25713803) .. (100.57933082, 250.49847141)
+ .. controls (110.16333058, 248.33180479) and (137.50332990, 246.89447150) .. (138.89132986, 247.36647149)
+ .. controls (141.16332980, 248.13847147) and (137.05132991, 250.52647141) .. (136.85932991, 256.47047126)
+ .. controls (136.64999658, 262.92113776) and (136.15666326, 308.45713662) .. (135.71532994, 308.55313662)
+ .. controls (132.49666335, 309.24913660) and (118.69266370, 301.95047012) .. (118.55133037, 293.58247033)
+ .. controls (118.41266371, 285.33180387) and (116.57933042, 277.41580407) .. (112.66466385, 268.59847095)
+ .. controls (109.55666393, 261.59980446) and (104.05666407, 254.43580464) .. ( 99.10999752, 255.39847128)
+ .. controls ( 93.57799766, 256.47447126) and ( 89.94599775, 263.78247107) .. ( 89.47133110, 271.23847089)
+ .. controls ( 88.99666444, 278.69313737) and ( 91.36733105, 295.31580362) .. ( 94.57799764, 309.33313660)
+ .. controls ( 97.74599756, 323.16513626) and (104.65399738, 336.30380260) .. (107.88466397, 341.63846913)
+ .. controls (109.72599726, 344.67713572) and (112.85266385, 350.43046891) .. (116.38466376, 358.30513538)
+ .. controls (118.76999703, 363.61980191) and (119.21799702, 369.63846843) .. (123.07933026, 370.91580173)
+ .. controls (127.88866347, 372.50646836) and (130.19533008, 369.12780177) .. (133.12199667, 368.58246845)
+ .. controls (135.57932994, 368.12380180) and (138.91266319, 368.54113512) .. (141.18599647, 367.05313516)
+ .. controls (142.73132977, 366.04246852) and (143.94066307, 364.24913523) .. (143.85399640, 359.57980201)
+ .. controls (143.76199641, 354.61713547) and (140.43399649, 350.66780224) .. (135.32999662, 347.63846898)
+ .. controls (130.22599674, 344.60780239) and (118.23266371, 338.83313587) .. (116.71799708, 335.08246929)
+ .. controls (116.09933043, 333.54780266) and (116.42466376, 327.45046948) .. (116.66333042, 321.74913629)
+ .. controls (116.91666374, 315.68780311) and (117.13933040, 310.05313658) .. (118.41266371, 310.08246992)
+ .. controls (119.71799701, 310.11180325) and (125.09799687, 319.04113636) .. (132.78866335, 324.87446955)
+ .. controls (138.17266321, 328.95846945) and (144.78466305, 331.71446938) .. (149.10732961, 333.74913599)
+ .. controls (154.41799614, 336.24913593) and (162.34866261, 337.07046924) .. (165.78866252, 335.24913595)
+ .. controls (170.03799575, 332.99846934) and (172.99666234, 329.83180276) .. (173.16332900, 325.99846952)
+ .. controls (173.30732900, 322.66780294) and (172.03799570, 320.29046966) .. (169.21799577, 317.74913639)
+ .. controls (166.46066251, 315.26246979) and (162.63532927, 314.11046982) .. (158.74599603, 313.88780316)
+ .. controls (153.96466282, 313.61446983) and (146.78332966, 313.18246984) .. (147.52999631, 311.63046988)}
+\def\fdulogo@motto@si{%
+ (106.49093067, 108.99527494)
+ .. controls (107.99626397, 108.66594162) and (109.39359727, 109.32060827) .. (110.41359724, 111.66594154)
+ .. controls (112.08026386, 115.49927478) and (112.58026385, 120.99927464) .. (111.08026389, 121.66594129)
+ .. controls (109.64693059, 122.30327461) and (104.98826404, 120.65127465) .. (104.03359740, 120.00460800)
+ .. controls (102.34959744, 118.86460803) and (105.34026403, 109.24727494) .. (106.49093067, 108.99527494)
+ ( 93.55226433, 38.30461004)
+ .. controls ( 91.74159771, 33.33527684) and ( 87.66293114, 27.77527697) .. ( 79.82959800, 27.80461031)
+ .. controls ( 74.49759814, 27.82461031) and ( 71.40826488, 31.66327688) .. ( 69.12159827, 36.40061009)
+ .. controls ( 66.58026500, 41.66594329) and ( 68.38293162, 53.36727634) .. ( 71.54026488, 59.73527618)
+ .. controls ( 76.03759810, 68.80594262) and ( 85.36026453, 77.49794240) .. ( 85.16693120, 78.80327570)
+ .. controls ( 84.83893121, 81.01527564) and ( 79.32959802, 82.33260894) .. ( 78.16293138, 86.70727550)
+ .. controls ( 76.04826477, 94.63794197) and ( 89.88559775, 94.02727532) .. ( 90.00826442, 96.90727525)
+ .. controls ( 90.17359775, 100.80327515) and ( 80.55226465, 107.13794166) .. ( 80.24693133, 118.99927469)
+ .. controls ( 79.98826467, 129.03394111) and ( 82.75626460, 143.82727407) .. ( 85.77359786, 144.24860740)
+ .. controls ( 87.65226448, 144.51127406) and ( 98.21893088, 128.58194112) .. (101.22559747, 129.59527443)
+ .. controls (103.59626408, 130.39260774) and (107.60693064, 133.24860767) .. (109.16293060, 135.36060762)
+ .. controls (110.87093056, 137.67660756) and (111.02693056, 140.45927416) .. (111.60693054, 143.52727408)
+ .. controls (112.38559719, 147.63794064) and (119.11893036, 149.52327393) .. (121.90026362, 148.91527395)
+ .. controls (125.71893019, 148.08194063) and (128.20959679, 143.25127409) .. (129.77359676, 141.63794079)
+ .. controls (131.55226338, 139.80460751) and (134.96692996, 139.03794086) .. (134.98426329, 134.57794097)
+ .. controls (134.99626329, 131.19394106) and (132.67226335, 130.15794108) .. (131.78826337, 128.12460780)
+ .. controls (130.95493006, 126.20727451) and (130.85093006, 124.21527456) .. (130.12159675, 122.58194127)
+ .. controls (128.01093013, 117.86060806) and (125.46959686, 112.70860818) .. (126.91359683, 112.66594152)
+ .. controls (129.74693009, 112.58194152) and (135.20426329, 125.02727454) .. (142.32959644, 136.91527425)
+ .. controls (148.52026295, 147.24194065) and (151.95492953, 152.08194053) .. (151.95492953, 155.20727379)
+ .. controls (151.95492953, 157.78460706) and (139.55226318, 156.80460708) .. (128.66293012, 155.97127377)
+ .. controls (120.72559698, 155.36327379) and (105.30026403, 154.68727380) .. (105.06293071, 155.59527378)
+ .. controls (104.41359739, 158.08194038) and (107.78293064, 163.07260693) .. (118.44026371, 166.24860685)
+ .. controls (123.65626358, 167.80327347) and (143.06559642, 168.37794013) .. (152.58026285, 165.99927352)
+ .. controls (160.91359598, 163.91527357) and (172.26826236, 150.59127390) .. (174.74692896, 146.41527401)
+ .. controls (176.73626225, 143.06327409) and (175.10692896, 138.36060754) .. (171.26426239, 131.99527437)
+ .. controls (168.19492913, 126.91260783) and (160.09092933, 118.71260803) .. (153.99626282, 111.69394154)
+ .. controls (150.84292956, 108.06194163) and (148.52026295, 103.64327508) .. (146.05226302, 100.86060848)
+ .. controls (142.99626309, 97.41527523) and (132.12159670, 94.86060863) .. (124.58026355, 92.99927534)
+ .. controls (118.95359703, 91.60994205) and (106.72959733, 87.84860881) .. (103.41359741, 86.33260884)
+ .. controls (101.65893079, 85.52994220) and ( 98.92026419, 81.12727564) .. ( 98.98426419, 76.91394241)
+ .. controls ( 99.10693086, 68.86060928) and ( 98.60693087, 63.08194276) .. ( 97.66293089, 55.83260961)
+ .. controls ( 96.79493091, 49.16860977) and ( 96.03493093, 45.12060987) .. ( 93.55226433, 38.30461004)
+ (100.89439748, 57.58234290)
+ .. controls (101.56773079, 59.78367617) and (110.22639724, 56.74234292) .. (114.57306380, 54.50500964)
+ .. controls (123.16373025, 50.08234308) and (132.66373002, 41.41567663) .. (140.20506316, 39.04101003)
+ .. controls (143.06772976, 38.13967672) and (158.71839603, 37.29034340) .. (158.83039603, 39.58234335)
+ .. controls (158.94639603, 41.98367662) and (148.73839628, 46.95167650) .. (144.33039639, 50.74900973)
+ .. controls (140.16906316, 54.33167631) and (130.74639673, 62.99834276) .. (132.24106336, 65.39700937)
+ .. controls (133.55972999, 67.51167598) and (143.95706307, 62.07167612) .. (149.83039625, 60.49967616)
+ .. controls (154.49706280, 59.24900952) and (163.29172925, 58.37167621) .. (171.74639571, 56.66634292)
+ .. controls (181.79706212, 54.63834297) and (192.89039518, 51.46900972) .. (199.00639502, 48.75967645)
+ .. controls (206.71039483, 45.34634320) and (207.40239481, 43.34900992) .. (202.28639494, 37.40901007)
+ .. controls (197.58372839, 31.94767687) and (190.61039523, 25.90234369) .. (183.41306208, 23.33301042)
+ .. controls (169.41306243, 18.33301054) and (150.69039623, 18.54634387) .. (136.69706325, 20.04767717)
+ .. controls (120.84639698, 21.74634379) and (113.83039715, 31.41567688) .. (110.24639724, 37.24901007)
+ .. controls (107.79973064, 41.23167664) and (104.83573071, 49.55034310) .. (103.57973074, 52.16634303)
+ .. controls (102.32373078, 54.78234297) and (100.67573082, 56.86634291) .. (100.89439748, 57.58234290)
+ (128.04773013, 74.22207581)
+ .. controls (126.84373016, 74.84474246) and (132.99706334, 84.33274223) .. (142.83039643, 90.16607542)
+ .. controls (150.18506291, 94.52874197) and (161.83039595, 99.36074185) .. (170.55172907, 99.36074185)
+ .. controls (176.49706225, 99.36074185) and (181.49706213, 96.74874192) .. (184.56239539, 93.83274199)
+ .. controls (187.18772865, 91.33540872) and (188.57306195, 88.19274213) .. (188.28106196, 83.24874225)
+ .. controls (187.99706197, 78.41540904) and (183.91306207, 75.57407578) .. (178.07572888, 75.45407578)
+ .. controls (163.99706257, 75.16607579) and (146.80906300, 79.21140902) .. (141.89306312, 79.04474236)
+ .. controls (135.37706328, 78.82340903) and (130.41306341, 72.99940918) .. (128.04773013, 74.22207581)}
+\endinput
+%%
+%% End of file `fdulogo.sty'.
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls
new file mode 100644
index 00000000000..f0737c87907
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis-en.cls
@@ -0,0 +1,1474 @@
+%%
+%% This is file `fduthesis-en.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fduthesis.dtx (with options: `class-en')
+%%
+%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c 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 Xiangdong Zeng.
+%%
+%% This work consists of the files fduthesis.dtx,
+%% fduthesis-doc.dtx,
+%% fduthesis-logo.dtx,
+%% fduthesis-template.tex,
+%% and the derived files fduthesis.ins,
+%% fduthesis.cls,
+%% fduthesis-en.cls,
+%% fduthesis.def,
+%% fdudoc.cls,
+%% fdulogo.sty,
+%% fdulogo-example.tex,
+%% fduthesis-cover.tex,
+%% fduthesis-en.tex,
+%% fduthesis.pdf,
+%% fduthesis-en.pdf,
+%% fduthesis-code.pdf,
+%% latexmkrc,
+%% latexmkrc-en,
+%% and README.md.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $
+ {Thesis template for Fudan University (English version)}
+\ProvidesExplClass{\ExplFileName-en}
+ {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+\RequirePackage { xparse, xtemplate, l3keys2e }
+\clist_map_inline:nn { expl3, xparse, xtemplate, l3keys2e }
+ {
+ \@ifpackagelater {#1} { 2017/12/16 }
+ { } { \msg_error:nnn { fduthesis } { l3-too-old } {#1} }
+ }
+\msg_new:nnn { fduthesis } { l3-too-old }
+ {
+ Package~ "#1"~ is~ too~ old. \\\\
+ Please~ update~ an~ up-to-date~ version~ of~ the~ bundles \\
+ "l3kernel"~ and~ "l3packages"~ using~ your~ TeX~ package \\
+ manager~ or~ from~ CTAN.
+ }
+\sys_if_engine_xetex:F
+ {
+ \sys_if_engine_luatex:F
+ {
+ \msg_fatal:nnx { fduthesis } { unsupported-engine }
+ { \c_sys_engine_str }
+ }
+ }
+\msg_new:nnn { fduthesis } { unsupported-engine }
+ {
+ The~ fduthesis~ class~ requires~ either~ XeTeX~ or~ LuaTeX. \\\\
+ "#1"~ is~ not~ supported~ at~ present.~ You~ must~ change \\
+ your~ typesetting~ engine~ to~ "xelatex"~ or~ "lualatex".
+ }
+\box_new:N \l__fdu_tmpa_box
+\clist_new:N \l__fdu_tmpa_clist
+\clist_new:N \l__fdu_tmpb_clist
+\dim_new:N \l__fdu_tmpa_dim
+\dim_new:N \l__fdu_tmpb_dim
+\skip_new:N \l__fdu_tmpa_skip
+\tl_new:N \l__fdu_tmpa_tl
+\tl_new:N \l__fdu_tmpb_tl
+\int_new:N \g__fdu_thesis_type_int
+\clist_new:N \g__fdu_to_ctexbook_clist
+\clist_new:N \g__fdu_to_hyperref_clist
+\bool_new:N \g__fdu_twoside_bool
+\bool_set_true:N \g__fdu_twoside_bool
+\bool_new:N \g__fdu_draft_bool
+\tl_new:N \g__fdu_config_tl
+\cs_generate_variant:Nn \cs_generate_variant:Nn { cn }
+\cs_generate_variant:Nn \file_input:n { V }
+\cs_generate_variant:Nn \int_to_arabic:n { v }
+\cs_generate_variant:Nn \keys_define:nn { nx }
+\cs_generate_variant:Nn \tl_map_inline:nn { xn }
+\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF }
+\cs_new:Npn \__fdu_quad: { \skip_horizontal:n { 1 em } }
+\cs_new:Npn \__fdu_qquad: { \skip_horizontal:n { 2 em } }
+\cs_new_protected:Npn \__fdu_vspace:N #1
+ {
+ \dim_set_eq:NN \l__fdu_tmpa_dim \prevdepth
+ \hrule height \c_zero_dim
+ \nobreak
+ \skip_vertical:N #1
+ \skip_vertical:N \c_zero_skip
+ \dim_set_eq:NN \prevdepth \l__fdu_tmpa_dim
+ }
+\cs_new_protected:Npn \__fdu_vspace:n #1
+ {
+ \skip_set:Nn \l__fdu_tmpa_skip {#1}
+ \__fdu_vspace:N \l__fdu_tmpa_skip
+ }
+\cs_generate_variant:Nn \__fdu_vspace:N { c }
+\cs_new:Npn \__fdu_symbol:n #1 { \tex_char:D #1 \scan_stop: }
+\cs_new:Npn \__fdu_arabic:n #1
+ { \int_to_arabic:v { c@ #1 } }
+\cs_new_protected:Npn \__fdu_patch_cmd:Nnn #1#2#3
+ {
+ \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_new_protected:Npn \__fdu_appto_cmd:Nn #1#2
+ {
+ \ctex_appto_cmd:NnnTF #1 { } {#2}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_new_protected:Npn \__fdu_define_fn_style:nn #1#2
+ { \tl_const:cn { c__fdu_fn_style_ #1 _tl } {#2} }
+\cs_new_protected:Npn \__fdu_define_punct:nn #1#2
+ { \tl_const:cn { c__fdu_ #1 _tl } { \__fdu_symbol:n {#2} } }
+\cs_new_protected:Npn \__fdu_define_name:nn #1#2
+ { \tl_const:cn { c__fdu_name_ #1 _tl } {#2} }
+\cs_new_protected:Npn \__fdu_define_name:nnn #1#2#3
+ {
+ \tl_const:cn { c__fdu_name_ #1 _tl } {#2}
+ \tl_const:cn { c__fdu_name_ #1 _en_tl } {#3}
+ }
+\cs_new:Npn \__fdu_msg_new:nn { \msg_new:nnn { fduthesis } }
+\cs_new:Npn \__fdu_error:n { \msg_error:nn { fduthesis } }
+\cs_new:Npn \__fdu_error:nn { \msg_error:nnn { fduthesis } }
+\cs_new:Npn \__fdu_error:nx { \msg_error:nnx { fduthesis } }
+\cs_new:Npn \__fdu_error:nnn { \msg_error:nnnn { fduthesis } }
+\cs_new:Npn \__fdu_warning:n { \msg_warning:nn { fduthesis } }
+\cs_new:Npn \__fdu_warning:nn { \msg_warning:nnn { fduthesis } }
+\cs_new:Npn \__fdu_warning:nxx { \msg_warning:nnxx { fduthesis } }
+\cs_new:Npn \__fdu_info:nx { \msg_info:nnx { fduthesis } }
+\keys_define:nn { fdu / option }
+ {
+ type .choice:,
+ type .value_required:n = true,
+ type .choices:nn =
+ { doctor, master, bachelor }
+ { \int_set_eq:NN \g__fdu_thesis_type_int \l_keys_choice_int },
+ type .initial:n = bachelor,
+ oneside .value_forbidden:n = true,
+ twoside .value_forbidden:n = true,
+ oneside .code:n =
+ {
+ \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { oneside }
+ \bool_set_false:N \g__fdu_twoside_bool
+ },
+ twoside .code:n =
+ {
+ \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { twoside }
+ \bool_set_true:N \g__fdu_twoside_bool
+ },
+ draft .choice:,
+ draft / true .code:n =
+ {
+ \bool_set_true:N \g__fdu_draft_bool
+ \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { draft }
+ },
+ draft / false .code:n =
+ { \bool_set_false:N \g__fdu_draft_bool },
+ draft .default:n = true,
+ draft .initial:n = false,
+ config .tl_set:N = \g__fdu_config_tl,
+ unknown .code:n = { \__fdu_error:n { unknown-option } }
+ }
+\__fdu_msg_new:nn { unknown-option }
+ { Class~ option~ "\l_keys_key_tl"~ is~ unknown. }
+\ProcessKeysOptions { fdu / option }
+\file_input:n { fduthesis.def }
+\tl_if_empty:NF \g__fdu_config_tl
+ {
+ \file_input:V \g__fdu_config_tl
+ \__fdu_info:nx { load-config-file } { \g__fdu_config_tl }
+ }
+\__fdu_msg_new:nn { load-config-file }
+ { You~ are~ loading~ config~ file~ '#1'. }
+\PassOptionsToClass
+ {
+ UTF8,
+ scheme = plain,
+ heading = true,
+ fontset = fandol,
+ zihao = -4,
+ \g__fdu_to_ctexbook_clist
+ }
+ { ctexbook }
+\clist_map_inline:nn
+ {
+ { no-math } { fontspec },
+ { perpage } { footmisc },
+ { amsmath, thmmarks } { ntheorem }
+ }
+ { \PassOptionsToPackage #1 }
+\RequirePackage { etoolbox }
+\LoadClass { ctexbook }
+\RequirePackage
+ {
+ amsmath,
+ unicode-math,
+ geometry,
+ fancyhdr,
+ footmisc,
+ ntheorem,
+ graphicx,
+ longtable,
+ caption,
+ xcolor
+ }
+\cs_new_protected:Npn \__fdu_check_package:nnn #1#2#3
+ {
+ \@ifpackagelater {#1} {#2}
+ { } { \__fdu_error:nnn { package-too-old } {#1} {#3} }
+ }
+\__fdu_msg_new:nn { package-too-old }
+ {
+ Package~ "#1"~ is~ too~ old. \\
+ The~ fduthesis~ class~ only~ supports~ "#1"~ with~ a~ version \\
+ higher~ than~ v#2. \\\\
+ Please~ update~ an~ up-to-date~ version~ of~ it~ using~ your \\
+ TeX~ package~ manager~ or~ from~ CTAN.
+ }
+\__fdu_check_package:nnn { ctex } { 2017/08/07 } { 2.4.10 }
+\__fdu_check_package:nnn { fontspec } { 2017/09/22 } { 2.6e }
+\__fdu_check_package:nnn { unicode-math } { 2017/11/18 } { 0.8i }
+\sys_if_engine_xetex:T
+ { \__fdu_check_package:nnn { xeCJK } { 2017/08/07 } { 3.5.0 } }
+\geometry
+ {
+ paper = a4paper,
+ vmargin = 2.54 cm,
+ hmargin = 3.18 cm,
+ headheight = 15 pt
+ }
+\bool_if:NT \g__fdu_draft_bool { \geometry { showframe } }
+\prop_new:N \g__fdu_font_name_prop
+\prop_new:N \g__fdu_font_options_prop
+\prop_new:N \g__fdu_cjk_font_name_prop
+\prop_new:N \g__fdu_cjk_font_options_prop
+\keys_define:nn { fdu / style }
+ {
+ font .choice:,
+ font .value_required:n = true,
+ font / libertinus .code:n =
+ {
+ \fdu_choose_font:nn { main } { Libertinus~ Serif }
+ \fdu_choose_font:nn { sans } { Libertinus~ Sans }
+ \fdu_choose_font_with_option:nnn { mono }
+ { TeX~ Gyre~ Cursor } { Ligatures = Common Off }
+ \fdu_choose_font:nn { math } { Libertinus~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = libertinus }
+ },
+ font / lm .code:n =
+ {
+ \fdu_choose_font:nn { main } { Latin~ Modern~ Roman }
+ \fdu_choose_font:nn { sans } { Latin~ Modern~ Sans }
+ \fdu_choose_font:nn { mono } { Latin~ Modern~ Mono }
+ \fdu_choose_font:nn { math } { Latin~ Modern~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = pifont }
+ },
+ font / palatino .code:n =
+ {
+ \fdu_choose_font:nn { main } { TeX~ Gyre~ Pagella }
+ \fdu_choose_font:nn { sans } { TeX~ Gyre~ Heros }
+ \fdu_choose_font_with_option:nnn { mono }
+ { TeX~ Gyre~ Cursor } { Ligatures = Common Off }
+ \fdu_choose_font:nn { math } { TeX~ Gyre~ Pagella~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = pifont }
+ },
+ font / times .code:n =
+ {
+ \fdu_choose_font_with_option:nnn { main } { XITS }
+ {
+ UprightFeatures = { SmallCapsFont = * },
+ BoldFeatures = { SmallCapsFont = *~ Bold },
+ ItalicFeatures = { SmallCapsFont = *~ Italic },
+ BoldItalicFeatures = { SmallCapsFont = *~ Bold~ Italic },
+ }
+ \fdu_choose_font:nn { sans } { TeX~ Gyre~ Heros }
+ \fdu_choose_font_with_option:nnn { mono }
+ { TeX~ Gyre~ Cursor } { Ligatures = Common Off }
+ \fdu_choose_font:nn { math } { XITS~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = xits }
+ },
+ font / none .code:n =
+ {
+ \__fdu_initialize_prop:Nn \g__fdu_font_name_prop
+ { main, sans, mono, math }
+ \__fdu_initialize_prop:Nn \g__fdu_font_options_prop
+ { main, sans, mono, math }
+ \keys_set:nn { fdu / style } { footnote-style = plain }
+ }
+ }
+\cs_new_protected:Npn \__fdu_initialize_prop:Nn #1#2
+ {
+ \prop_gclear:N #1
+ \clist_map_inline:nn {#2} { \prop_gput:Nnn #1 {##1} { } }
+ }
+\clist_map_inline:nn
+ { main, sans, mono, math }
+ {
+ \exp_args:Nc \RenewDocumentCommand { set #1 font } { O { } m O { } }
+ { \fdu_choose_font_with_option:nnn { #1 } {##2} { ##1, ##3 } }
+ }
+\cs_new_protected:Npn \fdu_choose_font_with_option:nnn #1#2#3
+ {
+ \prop_gput:Nnn \g__fdu_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_font_options_prop {#1} {#3}
+ }
+\cs_new_protected:Npn \fdu_choose_font:nn #1#2
+ {
+ \prop_gput:Nnn \g__fdu_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_font_options_prop {#1} { }
+ }
+\cs_new_protected:Npn \fdu_choose_cjk_font_with_option:nnn #1#2#3
+ {
+ \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} {#3}
+ }
+\cs_new_protected:Npn \fdu_choose_cjk_font:nn #1#2
+ {
+ \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} { }
+ }
+\cs_new_protected:Npn \__fdu_set_font:
+ {
+ \clist_map_inline:nn { main, sans, mono, math }
+ {
+ \prop_get:NnN \g__fdu_font_name_prop {##1} \l__fdu_tmpa_tl
+ \prop_get:NnN \g__fdu_font_options_prop {##1} \l__fdu_tmpb_tl
+ \tl_if_empty:NT \l__fdu_tmpa_tl
+ { \__fdu_error:nn { font-not-defined } {##1} }
+ \use:c { __fdu_set_ ##1 _font:VV } \l__fdu_tmpa_tl \l__fdu_tmpb_tl
+ }
+ }
+\clist_map_inline:nn { main, sans, mono }
+ {
+ \cs_new_protected:cpx { __fdu_set_ #1 _font:nn } ##1 ##2
+ { \exp_not:c { __fontspec_main_set #1 font:nn } {##2} {##1} }
+ }
+\cs_new_protected:Npn \__fdu_set_math_font:nn #1#2
+ { \__um_setmathfont:nn {#2} {#1} }
+\clist_map_inline:nn { main, sans, mono, math }
+ { \cs_generate_variant:cn { __fdu_set_ #1 _font:nn } { VV } }
+\__fdu_msg_new:nn { font-not-defined }
+ {
+ \str_upper_case:f { \tl_head:n {#1} } \tl_tail:n {#1} ~
+ font~ is~ not~ defined. \\\\
+ You~ can~ set~ option~ "font"~ via~ "\string\fdusetup",~
+ or~ use~ command~ \\
+ "\string\set #1 font"~ to~ define~ new~ font~ families.
+ }
+\ctex_at_end_preamble:n
+ {
+ \__fdu_set_font:
+ }
+\keys_set:nn { unicode-math }
+ {
+ math-style = ISO,
+ bold-style = ISO,
+ }
+\keys_define:nn { fdu / style }
+ {
+ font-size .choice:,
+ font-size .value_required:n = true,
+ font-size / -4 .code:n = { },
+ font-size / 5 .code:n =
+ {
+ \RenewDocumentCommand \tiny { } { \zihao { 7 } }
+ \RenewDocumentCommand \scriptsize { } { \zihao { -6 } }
+ \RenewDocumentCommand \footnotesize { } { \zihao { 6 } }
+ \RenewDocumentCommand \small { } { \zihao { -5 } }
+ \RenewDocumentCommand \normalsize { } { \zihao { 5 } }
+ \RenewDocumentCommand \large { } { \zihao { -4 } }
+ \RenewDocumentCommand \Large { } { \zihao { -3 } }
+ \RenewDocumentCommand \LARGE { } { \zihao { -2 } }
+ \RenewDocumentCommand \huge { } { \zihao { 2 } }
+ \RenewDocumentCommand \Huge { } { \zihao { 1 } }
+ }
+ }
+\keys_set:nn { ctex }
+ {
+ chapter =
+ {
+ format = \centering,
+ nameformat = \LARGE \bfseries,
+ titleformat = \huge \bfseries,
+ aftername = \par \nobreak \vskip 10 pt,
+ beforeskip = 50 pt,
+ afterskip = 40 pt,
+ number = \__fdu_arabic:n { chapter },
+ fixskip = true
+ },
+ section =
+ {
+ format = \Large \bfseries \raggedright,
+ beforeskip = 3.5 ex plus 1.0 ex minus 0.2 ex,
+ afterskip = 2.7 ex plus 0.5 ex,
+ fixskip = true
+ },
+ subsection =
+ {
+ format = \large \bfseries \raggedright,
+ beforeskip = 3.25 ex plus 1.0 ex minus 0.2 ex,
+ afterskip = 2.5 ex plus 0.3 ex,
+ fixskip = true
+ }
+ }
+\fancyhf { }
+\tl_new:N \l__fdu_header_center_mark_tl
+\bool_if:NTF \g__fdu_twoside_bool
+ {
+ \fancyhead [ EL ] { \small \nouppercase { \itshape \leftmark } }
+ \fancyhead [ OR ] { \small \nouppercase { \itshape \rightmark } }
+ }
+ {
+ \fancyhead [ L ] { \small \nouppercase { \itshape \leftmark } }
+ \fancyhead [ R ] { \small \nouppercase { \itshape \rightmark } }
+ \fancyhead [ C ]
+ {
+ \small \nouppercase
+ { \itshape \l__fdu_header_center_mark_tl }
+ }
+ }
+\fancyfoot [ C ] { \small \thepage }
+\cs_new:Npn \fdu_front_matter_header:n #1
+ {
+ \bool_if:NTF \g__fdu_twoside_bool
+ { \markboth {#1} {#1} }
+ {
+ \markboth { } { }
+ \tl_gset:Nn \l__fdu_header_center_mark_tl {#1}
+ }
+ }
+\RenewDocumentCommand \cleardoublepage { }
+ {
+ \clearpage
+ \bool_if:NT \g__fdu_twoside_bool
+ {
+ \int_if_odd:nF \c@page
+ { \hbox:n { } \thispagestyle { empty } \newpage }
+ }
+ \tl_gset:Nn \l__fdu_header_center_mark_tl { }
+ }
+\pagestyle { fancy }
+\clist_map_inline:nn
+ {
+ { plain } { plain },
+ { libertinus } { libertinus },
+ { libertinus_neg } { libertinus* },
+ { libertinus_sans } { libertinus-sans },
+ { pifont } { pifont },
+ { pifont_neg } { pifont* },
+ { pifont_sans } { pifont-sans },
+ { pifont_sans_neg } { pifont-sans* },
+ { xits } { xits },
+ { xits_sans } { xits-sans },
+ { xits_sans_neg } { xits-sans* }
+ }
+ { \__fdu_define_fn_style:nn #1 }
+\tl_new:N \l__fdu_fn_style_tl
+\keys_define:nn { fdu / style }
+ {
+ footnote-style .choices:nn =
+ {
+ plain,
+ libertinus, libertinus*, libertinus-sans,
+ pifont, pifont*, pifont-sans, pifont-sans*,
+ xits, xits-sans, xits-sans*
+ }
+ {
+ \tl_gset_eq:NN \l__fdu_fn_style_tl \l_keys_choice_tl
+ \int_compare:nT { 5 <= \l_keys_choice_int <= 8 }
+ { \RequirePackage { pifont } }
+ },
+ footnote-style .value_required:n = true
+ }
+\cs_new:Npn \__fdu_fn_symbol_libertinus:n #1
+ {
+ \int_compare:nTF { #1 >= 21 }
+ {
+ \int_compare:nTF { #1 >= 47 }
+ { \__fdu_symbol:n { \int_eval:n { "24B6 - 47 + #1 } } }
+ { \__fdu_symbol:n { \int_eval:n { "24D0 - 21 + #1 } } }
+ }
+ { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } }
+ }
+\cs_new:Npn \__fdu_fn_symbol_libertinus_neg:n #1
+ {
+ \int_compare:nTF { #1 >= 11 }
+ { \__fdu_symbol:n { \int_eval:n { "24EB - 11 + #1 } } }
+ { \__fdu_symbol:n { \int_eval:n { "2776 - 1 + #1 } } }
+ }
+\cs_new_eq:NN \__fdu_fn_symbol_libertinus_sans:n
+ \__fdu_fn_symbol_libertinus:n
+\cs_new:Npn \__fdu_fn_symbol_pifont:n #1
+ { \ding { \int_eval:n { 171 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_pifont_neg:n #1
+ { \ding { \int_eval:n { 181 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_pifont_sans:n #1
+ { \ding { \int_eval:n { 191 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_pifont_sans_neg:n #1
+ { \ding { \int_eval:n { 201 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_xits:n #1
+ {
+ \int_compare:nTF { #1 >= 10 }
+ {
+ \int_compare:nTF { #1 >= 36 }
+ { \__fdu_symbol:n { \int_eval:n { "24B6 - 36 + #1 } } }
+ { \__fdu_symbol:n { \int_eval:n { "24D0 - 10 + #1 } } }
+ }
+ { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } }
+ }
+\cs_new:Npn \__fdu_fn_symbol_xits_sans:n #1
+ { \__fdu_symbol:n { \int_eval:n { "2780 - 1 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_xits_sans_neg:n #1
+ { \__fdu_symbol:n { \int_eval:n { "278A - 1 + #1 } } }
+\cs_set:Npn \thefootnote { \fdu_footnote_number:N \c@footnote }
+\cs_new:Npn \fdu_footnote_number:N #1
+ {
+ \tl_case:NnF \l__fdu_fn_style_tl
+ {
+ \c__fdu_fn_style_plain_tl
+ { \int_use:N #1 }
+ \c__fdu_fn_style_libertinus_tl
+ {
+ \fontspec { Libertinus~ Serif }
+ \__fdu_fn_symbol_libertinus:n {#1}
+ }
+ \c__fdu_fn_style_libertinus_neg_tl
+ {
+ \fontspec { Libertinus~ Serif }
+ \__fdu_fn_symbol_libertinus_neg:n {#1}
+ }
+ \c__fdu_fn_style_libertinus_sans_tl
+ {
+ \fontspec { Libertinus~ Sans }
+ \__fdu_fn_symbol_libertinus_sans:n {#1}
+ }
+ \c__fdu_fn_style_pifont_tl
+ { \__fdu_fn_symbol_pifont:n {#1} }
+ \c__fdu_fn_style_pifont_neg_tl
+ { \__fdu_fn_symbol_pifont_neg:n {#1} }
+ \c__fdu_fn_style_pifont_sans_tl
+ { \__fdu_fn_symbol_pifont_sans:n {#1} }
+ \c__fdu_fn_style_pifont_sans_neg_tl
+ { \__fdu_fn_symbol_pifont_sans_neg:n {#1} }
+ \c__fdu_fn_style_xits_tl
+ {
+ \fontspec { XITS }
+ \__fdu_fn_symbol_xits:n {#1}
+ }
+ \c__fdu_fn_style_xits_sans_tl
+ {
+ \fontspec { XITS }
+ \__fdu_fn_symbol_xits_sans:n {#1}
+ }
+ \c__fdu_fn_style_xits_sans_neg_tl
+ {
+ \fontspec { XITS }
+ \__fdu_fn_symbol_xits_sans_neg:n {#1}
+ }
+ }
+ { \int_use:N #1 }
+ }
+\cs_set:Npn \@makefntext #1
+ {
+ \mode_leave_vertical:
+ \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil }
+ #1
+ }
+\clist_const:Nn \c__fdu_thm_style_plain_clist
+ { plain, margin, change }
+\clist_const:Nn \c__fdu_thm_style_break_clist
+ { break, marginbreak, changebreak }
+\tl_new:N \l__fdu_thm_style_tl
+\tl_new:N \l__fdu_thm_header_font_tl
+\tl_new:N \l__fdu_thm_body_font_tl
+\tl_new:N \l__fdu_thm_qed_tl
+\tl_new:N \l__fdu_thm_counter_tl
+\keys_define:nn { fdu / theorem }
+ {
+ style .tl_set:N = \l__fdu_thm_style_tl,
+ header-font .tl_set:N = \l__fdu_thm_header_font_tl,
+ body-font .tl_set:N = \l__fdu_thm_body_font_tl,
+ qed .tl_set:N = \l__fdu_thm_qed_tl,
+ counter .tl_set:N = \l__fdu_thm_counter_tl
+ }
+\cs_new_eq:NN \__fdu_thm_ntheorem_style:n \theoremstyle
+\cs_new_eq:NN \__fdu_thm_ntheorem_new:w \newtheorem
+\RenewDocumentCommand \newtheorem { s o m m }
+ {
+ \IfBooleanTF {#1}
+ { \tl_set:Nn \l__fdu_thm_qed_tl { \ensuremath { \QED } } }
+ { \tl_set:Nn \l__fdu_thm_qed_tl { } }
+ \tl_set:Nn \l__fdu_thm_style_tl { plain }
+ \IfValueT {#2} { \keys_set:nn { fdu / theorem } {#2} }
+ \fdu_thm_set_header_font:V \l__fdu_thm_header_font_tl
+ \fdu_thm_set_body_font:V \l__fdu_thm_body_font_tl
+ \fdu_thm_set_qed:V \l__fdu_thm_qed_tl
+ \IfBooleanTF {#1}
+ {
+ \clist_if_in:nVF { plain, break } \l__fdu_thm_style_tl
+ {
+ \clist_if_in:NVTF
+ \c__fdu_thm_style_plain_clist \l__fdu_thm_style_tl
+ { \__fdu_thm_redefine_style:n { plain } }
+ {
+ \clist_if_in:NVTF
+ \c__fdu_thm_style_break_clist \l__fdu_thm_style_tl
+ { \__fdu_thm_redefine_style:n { break } }
+ {
+ \__fdu_error:nx { unknown-theorem-style }
+ { \l__fdu_thm_style_tl }
+ }
+ }
+ }
+ \tl_put_left:Nn \l__fdu_thm_style_tl { nonumber }
+ \fdu_thm_new_no_number:Vxx \l__fdu_thm_style_tl {#3} {#4}
+ }
+ {
+ \clist_clear:N \l__fdu_tmpa_clist
+ \clist_concat:NNN \l__fdu_tmpa_clist
+ \c__fdu_thm_style_plain_clist \c__fdu_thm_style_break_clist
+ \clist_if_in:NVF \l__fdu_tmpa_clist \l__fdu_thm_style_tl
+ {
+ \__fdu_error:nx { unknown-theorem-style }
+ { \l__fdu_thm_style_tl }
+ }
+ \fdu_thm_new:VVxx \l__fdu_thm_style_tl \l__fdu_thm_counter_tl
+ {#3} {#4}
+ }
+ }
+\cs_new:Npn \__fdu_thm_redefine_style:n #1
+ {
+ \__fdu_warning:nxx { redefine-theorem-style }
+ {#1} { \l__fdu_thm_style_tl }
+ \tl_set:Nn \l__fdu_thm_style_tl {#1}
+ }
+\__fdu_msg_new:nn { redefine-theorem-style }
+ { Theorem~ style~ "#2"~ will~ be~ redefined~ as~ "#1". }
+\__fdu_msg_new:nn { unknown-theorem-style }
+ { Theorem~ style~ "#1"~ is~ unknown. }
+\cs_new:Npn \fdu_thm_new:nnnn #1#2#3#4
+ {
+ \__fdu_thm_ntheorem_style:n {#1}
+ \__fdu_thm_ntheorem_new:w {#3} {#4} [#2]
+ }
+\cs_generate_variant:Nn \fdu_thm_new:nnnn { VVxx }
+\cs_new:Npn \fdu_thm_new_no_number:nnn #1#2#3
+ {
+ \__fdu_thm_ntheorem_style:n {#1}
+ \__fdu_thm_ntheorem_new:w {#2} {#3}
+ }
+\cs_generate_variant:Nn \fdu_thm_new_no_number:nnn { Vxx }
+\cs_new:Npn \fdu_thm_set_qed:n #1 { \theoremsymbol {#1} }
+\cs_new:Npn \fdu_thm_set_header_font:n #1 { \theoremheaderfont {#1} }
+\cs_new:Npn \fdu_thm_set_body_font:n #1 { \theorembodyfont {#1} }
+\cs_generate_variant:Nn \fdu_thm_set_qed:n { V }
+\cs_generate_variant:Nn \fdu_thm_set_header_font:n { V }
+\cs_generate_variant:Nn \fdu_thm_set_body_font:n { V }
+\captionsetup [ figure ]
+ {
+ font = small,
+ labelsep = quad
+ }
+\captionsetup [ table ]
+ {
+ font = { small, sf },
+ labelsep = quad
+ }
+\cs_set:Npn \thefigure
+ { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { figure } }
+\cs_set:Npn \thetable
+ { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { table } }
+\clist_map_inline:nn
+ {
+ title, date, author, supervisor, department, major, student_id,
+ school_id, clc
+ }
+ { \tl_new:c { l__fdu_info_ #1 _tl } }
+\clist_new:N \l__fdu_info_instructors_clist
+\clist_new:N \l__fdu_info_keywords_clist
+\clist_map_inline:nn
+ { title, author, supervisor, department, major }
+ { \tl_new:c { l__fdu_info_ #1 _en_tl } }
+\clist_new:N \l__fdu_info_keywords_en_clist
+\int_new:N \l__fdu_info_degree_type_int
+\keys_define:nn { fdu / info }
+ {
+ degree .choices:nn =
+ { academic, professional }
+ { \int_set_eq:NN \l__fdu_info_degree_type_int \l_keys_choice_int },
+ title .tl_set:N = \l__fdu_info_title_tl,
+ title* .tl_set:N = \l__fdu_info_title_en_tl,
+ date .tl_set:N = \l__fdu_info_date_tl,
+ author .tl_set:N = \l__fdu_info_author_tl,
+ author* .tl_set:N = \l__fdu_info_author_en_tl,
+ supervisor .tl_set:N = \l__fdu_info_supervisor_tl,
+ instructors .clist_set:N = \l__fdu_info_instructors_clist,
+ department .tl_set:N = \l__fdu_info_department_tl,
+ major .tl_set:N = \l__fdu_info_major_tl,
+ student-id .tl_set:N = \l__fdu_info_student_id_tl,
+ school-id .tl_set:N = \l__fdu_info_school_id_tl,
+ keywords .clist_set:N = \l__fdu_info_keywords_clist,
+ keywords* .clist_set:N = \l__fdu_info_keywords_en_clist,
+ clc .tl_set:N = \l__fdu_info_clc_tl
+ }
+\tl_new:N \l__fdu_cover_logo_tl
+\clist_new:N \l__fdu_cover_logo_size_clist
+\keys_define:nn { fdu / style }
+ {
+ logo .tl_set:N = \l__fdu_cover_logo_tl,
+ logo-size .clist_set:N = \l__fdu_cover_logo_size_clist
+ }
+\bool_new:N \l__fdu_secret_bool
+\tl_new:N \l__fdu_info_secret_level_tl
+\keys_define:nn { fdu / info }
+ {
+ secret-level .choices:nn =
+ { none, i, ii, iii }
+ {
+ \int_compare:nTF
+ { \l_keys_choice_int >= 2 }
+ {
+ \bool_set_true:N \l__fdu_secret_bool
+ \tl_set:Nn \l__fdu_info_secret_level_tl
+ {
+ \clist_item:Nn \c__fdu_secret_clist
+ { \l_keys_choice_int - 1 }
+ }
+ }
+ { \bool_set_false:N \l__fdu_secret_bool }
+ },
+ secret-level .value_required:n = true,
+ secret-year .tl_set:N = \l__fdu_info_secret_year_tl
+ }
+\cs_new_protected:Npn \__fdu_spread_box:nn #1#2
+ {
+ \mode_leave_vertical:
+ \hbox_to_wd:nn {#1}
+ { \tl_map_inline:xn {#2} { ##1 \hfil } \unskip }
+ }
+\cs_new_protected:Npn \__fdu_center_box:nn #1#2
+ {
+ \mode_leave_vertical:
+ \hbox_to_wd:nn {#1} { \hfil #2 \hfil }
+ }
+\cs_generate_variant:Nn \__fdu_center_box:nn { Vn }
+\cs_new:Npn \__fdu_fixed_width_box:nn #1#2
+ { \parbox {#1} {#2} }
+\cs_new:Npn \__fdu_fixed_width_center_box:nn #1#2
+ { \parbox {#1} { \centering #2 } }
+\cs_new:Npn \__fdu_get_text_width:Nn #1#2
+ {
+ \hbox_set:Nn \l__fdu_tmpa_box {#2}
+ \dim_set:Nn #1 { \box_wd:N \l__fdu_tmpa_box }
+ }
+\cs_generate_variant:Nn \__fdu_get_text_width:Nn { NV }
+\cs_new:Npn \__fdu_get_max_text_width:NN #1#2
+ {
+ \group_begin:
+ \clist_set_eq:NN \l__fdu_tmpa_clist #2
+ \bool_until_do:nn { \clist_if_empty_p:N \l__fdu_tmpa_clist }
+ {
+ \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl
+ \__fdu_get_text_width:NV \l__fdu_tmpa_dim \l__fdu_tmpa_tl
+ \dim_gset:Nn #1 { \dim_max:nn {#1} { \l__fdu_tmpa_dim } }
+ }
+ \group_end:
+ }
+\cs_new:Npn \__fdu_blank_underline:n #1
+ { \rule [ -0.5 ex ] {#1} { 0.4 pt } }
+\cs_new:Npn \__fdu_line_spread:N #1
+ { \linespread { \fp_use:N #1 } \selectfont }
+\cs_new:Npn \__fdu_line_spread:n #1
+ { \linespread {#1} \selectfont }
+\cs_new_protected:Npn \__fdu_cover_id:
+ {
+ \__fdu_fixed_width_box:nn { 120 pt }
+ {
+ \bool_if:NT \l__fdu_secret_bool
+ {
+ \group_begin:
+ \sffamily
+ \__fdu_cover_id_aux:n { secret_level }
+ \c__fdu_name_secret_star_tl
+ \l__fdu_info_secret_year_tl
+ \group_end:
+ \par
+ }
+ \__fdu_cover_id_aux:n { school_id } \par
+ \__fdu_cover_id_aux:n { student_id }
+ }
+ \hbox_to_wd:nn { -24 pt } { }
+ }
+\cs_new:Npn \__fdu_cover_id_aux:n #1
+ {
+ \tl_use:c { c__fdu_name_ #1 _tl }
+ \c__fdu_fullwidth_colon_tl
+ \tl_use:c { l__fdu_info_ #1 _tl }
+ }
+\cs_new_protected:Npn \__fdu_cover_logo:
+ {
+ \clist_pop:NN \l__fdu_cover_logo_size_clist \l__fdu_tmpa_tl
+ \clist_pop:NNTF \l__fdu_cover_logo_size_clist \l__fdu_tmpb_tl
+ {
+ \tl_if_empty:NTF \l__fdu_tmpa_tl
+ { \includegraphics [ height = \l__fdu_tmpb_tl ] }
+ {
+ \includegraphics
+ [ width = \l__fdu_tmpa_tl, height = \l__fdu_tmpb_tl ]
+ }
+ }
+ { \includegraphics [ width = \l__fdu_tmpa_tl ] }
+ { \l__fdu_cover_logo_tl }
+ }
+\cs_new_protected:Npn \__fdu_cover_type:
+ {
+ \tl_set:Nx \l__fdu_tmpa_tl
+ {
+ \clist_item:Nn \c__fdu_thesis_type_clist
+ { \g__fdu_thesis_type_int }
+ }
+ \__fdu_spread_box:nn { 0.45 \textwidth } { \l__fdu_tmpa_tl }
+ }
+\cs_new_protected:Npn \__fdu_cover_degree:
+ {
+ \int_compare:nNnT \g__fdu_thesis_type_int = \c_two
+ {
+ \tl_set:Nx \l__fdu_tmpa_tl
+ {
+ \clist_item:Nn \c__fdu_degree_type_clist
+ { \l__fdu_info_degree_type_int }
+ }
+ \c__fdu_fullwidth_left_paren_tl
+ \l__fdu_tmpa_tl
+ \c__fdu_fullwidth_right_paren_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_cover_info:
+ {
+ \begin{minipage} [ c ] { \textwidth }
+ \centering \zihao { 4 }
+ \clist_set:Nx \l__fdu_tmpa_clist
+ {
+ \c__fdu_name_department_tl,
+ \c__fdu_name_major_tl,
+ \c__fdu_name_author_tl,
+ \c__fdu_name_supervisor_tl,
+ \c__fdu_name_date_tl,
+ }
+ \clist_set:Nx \l__fdu_tmpb_clist
+ {
+ { \l__fdu_info_department_tl },
+ { \l__fdu_info_major_tl },
+ { \l__fdu_info_author_tl },
+ { \l__fdu_info_supervisor_tl },
+ { \l__fdu_info_date_tl }
+ }
+ \__fdu_get_max_text_width:NN \l__fdu_tmpb_dim \l__fdu_tmpb_clist
+ \bool_until_do:nn
+ { \clist_if_empty_p:N \l__fdu_tmpa_clist }
+ {
+ \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl
+ \clist_pop:NN \l__fdu_tmpb_clist \l__fdu_tmpb_tl
+ \__fdu_spread_box:nn { 6 em } { \l__fdu_tmpa_tl }
+ \c__fdu_fullwidth_colon_tl
+ \__fdu_center_box:Vn \l__fdu_tmpb_dim { \l__fdu_tmpb_tl }
+ \skip_vertical:n { 1 ex }
+ }
+ \end{minipage}
+ }
+\cs_new_protected:Npn \__fdu_cover_signature:N #1
+ {
+ \clist_map_inline:Nn #1
+ {
+ ##1 \c__fdu_fullwidth_colon_tl
+ \__fdu_blank_underline:n { 6 em }
+ \__fdu_quad:
+ }
+ }
+\DeclareObjectType { fdu / cover } { \c_zero }
+\NewDocumentCommand \DeclareCoverTemplate { m m }
+ { \fdu_cover_declare_template:nn {#1} {#2} }
+\cs_new_protected:Npn \fdu_cover_declare_template:nn #1#2
+ {
+ \tl_set:Nn \l__fdu_cover_template_tl {#1}
+ \__fdu_cover_declare_template_interface:nx {#1}
+ {
+ format : tokenlist,
+ top-skip : skip,
+ bottom-skip : skip,
+ \clist_map_function:nN {#2} \__fdu_cover_key_type:n
+ }
+ \tl_new:c { l__fdu_cover / #1 / format_tl }
+ \skip_new:c { l__fdu_cover / #1 / top_skip }
+ \skip_new:c { l__fdu_cover / #1 / bottom_skip }
+ \clist_map_inline:nn {#2}
+ {
+ \tl_new:c { l__fdu_cover / #1 / ##1 / content_tl }
+ \tl_new:c { l__fdu_cover / #1 / ##1 / format_tl }
+ \skip_new:c { l__fdu_cover / #1 / ##1 / bottom_skip }
+ }
+ \__fdu_cover_declare_template_code:nxn {#1}
+ {
+ format = \exp_not:c { l__fdu_cover / #1 / format_tl },
+ top-skip = \use:c { l__fdu_cover / #1 / top_skip },
+ bottom-skip = \use:c { l__fdu_cover / #1 / bottom_skip },
+ \clist_map_function:nN {#2} \__fdu_cover_key_binding:n
+ }
+ {
+ \AssignTemplateKeys
+ \tl_use:c { l__fdu_cover / #1 / format_tl }
+ \__fdu_vspace:c { l__fdu_cover / #1 / top_skip }
+ \clist_map_inline:nn {#2}
+ {
+ \use:c { __fdu_cover / #1 / ####1 / align:n }
+ {
+ \tl_use:c { l__fdu_cover / #1 / ####1 / format_tl }
+ \tl_use:c { l__fdu_cover / #1 / ####1 / content_tl }
+ \par
+ }
+ \__fdu_vspace:c { l__fdu_cover / #1 / ####1 / bottom_skip }
+ }
+ \__fdu_vspace:c { l__fdu_cover / #1 / bottom_skip }
+ }
+ }
+\tl_new:N \l__fdu_cover_template_tl
+\cs_new_protected:Npn \__fdu_cover_declare_template_interface:nn #1#2
+ { \DeclareTemplateInterface { fdu / cover } {#1} { \c_zero } {#2} }
+\cs_new_protected:Npn \__fdu_cover_declare_template_code:nnn #1#2#3
+ { \DeclareTemplateCode { fdu / cover } {#1} { \c_zero } {#2} {#3} }
+\cs_generate_variant:Nn \__fdu_cover_declare_template_interface:nn { nx }
+\cs_generate_variant:Nn \__fdu_cover_declare_template_code:nnn { nxn }
+\cs_new:Npn \__fdu_cover_key_type:n #1
+ {
+ #1 / content : tokenlist,
+ #1 / format : tokenlist,
+ #1 / bottom-skip : skip,
+ #1 / align : choice { left, right, center, normal } = normal,
+ }
+\cs_new:Npn \__fdu_cover_key_binding:n #1
+ {
+ #1 / content =
+ \exp_not:c
+ { l__fdu_cover / \l__fdu_cover_template_tl / #1 / content_tl },
+ #1 / format =
+ \exp_not:c
+ { l__fdu_cover / \l__fdu_cover_template_tl / #1 / format_tl },
+ #1 / bottom-skip =
+ \exp_not:c
+ { l__fdu_cover / \l__fdu_cover_template_tl / #1 / bottom_skip },
+ #1 / align =
+ {
+ left =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ {
+ \exp_not:n
+ {
+ \group_begin:
+ \flushleft ##1 \endflushleft
+ \group_end:
+ }
+ },
+ right =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ {
+ \exp_not:n
+ {
+ \group_begin:
+ \flushright ##1 \endflushright
+ \group_end:
+ }
+ },
+ center =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ {
+ \exp_not:n
+ {
+ \group_begin:
+ \center ##1 \endcenter
+ \group_end:
+ }
+ },
+ normal =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ { \exp_not:n { \group_begin: ##1 \group_end: } }
+ },
+ }
+\NewDocumentCommand \makecoveri { }
+ {
+ \thispagestyle { empty }
+ \UseInstance { fdu / cover } { cover-i-default }
+ }
+\NewDocumentCommand \makecoverii { }
+ {
+ \thispagestyle { empty }
+ \UseInstance { fdu / cover } { cover-ii-default }
+ }
+\NewDocumentCommand \makecoveriii { }
+ {
+ \cleardoublepage
+ \thispagestyle { empty }
+ \UseInstance { fdu / cover } { cover-iii-default }
+ }
+\DeclareCoverTemplate { cover-i }
+ { id, logo, type, degree, title, title-en, info }
+\DeclareCoverTemplate { cover-ii } { title, name-list }
+\DeclareCoverTemplate { cover-iii }
+ {
+ originality-decl-name,
+ originality-decl-text,
+ originality-decl-sig,
+ authorization-decl-name,
+ authorization-decl-text,
+ authorization-decl-sig
+ }
+\DeclareInstance { fdu / cover } { cover-i-default } { cover-i }
+ {
+ format =
+ \__fdu_line_spread:N \c__fdu_line_spread_fp,
+ bottom-skip = 0 pt plus 1.5 fill,
+ id / content = \__fdu_cover_id:,
+ logo / content = \__fdu_cover_logo:,
+ type / content = \__fdu_cover_type:,
+ degree / content = \__fdu_cover_degree:,
+ title / content =
+ \__fdu_fixed_width_center_box:nn
+ { 0.9 \textwidth } { \l__fdu_info_title_tl },
+ title-en / content =
+ \__fdu_fixed_width_center_box:nn
+ { 0.9 \textwidth } { \l__fdu_info_title_en_tl },
+ info / content = \__fdu_cover_info:,
+ id / format = \zihao { -5 },
+ type / format = \zihao { 2 },
+ degree / format = \zihao { 4 },
+ title / format = \zihao { -2 } \sffamily,
+ title-en / format =
+ \__fdu_line_spread:n { 1.2 } \zihao { 4 } \bfseries,
+ id / bottom-skip = 0 pt plus 1.6 fill,
+ logo / bottom-skip = 0 pt plus 0.3 fill,
+ type / bottom-skip = -18 pt,
+ degree / bottom-skip = 0 pt plus 0.8 fill,
+ title-en / bottom-skip = 0 pt plus 2.5 fill,
+ id / align = right,
+ logo / align = center,
+ type / align = center,
+ degree / align = center,
+ title / align = center,
+ title-en / align = center,
+ info / align = center,
+ }
+\DeclareInstance { fdu / cover } { cover-ii-default } { cover-ii }
+ {
+ format =
+ \__fdu_line_spread:N \c__fdu_line_spread_fp,
+ title / content =
+ \__fdu_spread_box:nn { 7 em } { \c__fdu_name_instructors_tl },
+ name-list / content =
+ \clist_use:Nn \l__fdu_info_instructors_clist { \par },
+ title / format = \zihao { 2 } \sffamily,
+ name-list / format = \large,
+ title / align = center,
+ name-list / align = center,
+ }
+\DeclareInstance { fdu / cover } { cover-iii-default } { cover-iii }
+ {
+ format =
+ \__fdu_line_spread:n { 1.8 } \dim_set:Nn \parindent { 2 \ccwd },
+ top-skip = 0 pt plus 0.2 fill,
+ bottom-skip = 0 pt plus 2.5 fill,
+ originality-decl-name / content = \c__fdu_name_orig_decl_tl,
+ originality-decl-text / content = \c__fdu_orig_decl_text_tl,
+ originality-decl-sig / content =
+ \__fdu_cover_signature:N \c__fdu_orig_decl_sign_clist,
+ authorization-decl-name / content = \c__fdu_name_auth_decl_tl,
+ authorization-decl-text / content = \c__fdu_auth_decl_text_tl,
+ authorization-decl-sig / content =
+ \__fdu_cover_signature:N \c__fdu_auth_decl_sign_clist,
+ originality-decl-name / format =
+ \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily,
+ authorization-decl-name / format =
+ \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily,
+ originality-decl-name / bottom-skip = 0.4 cm,
+ originality-decl-text / bottom-skip = 0.4 cm,
+ originality-decl-sig / bottom-skip = 0 pt plus 2.5 fill,
+ authorization-decl-name / bottom-skip = 0.4 cm,
+ authorization-decl-text / bottom-skip = 0.4 cm,
+ originality-decl-name / align = center,
+ originality-decl-sig / align = right,
+ authorization-decl-name / align = center,
+ authorization-decl-sig / align = right,
+ }
+\bool_new:N \l__fdu_auto_make_cover_bool
+\keys_define:nn { fdu / style }
+ {
+ auto-make-cover .bool_set:N = \l__fdu_auto_make_cover_bool,
+ auto-make-cover .default:n = true
+ }
+\AtBeginDocument
+ {
+ \bool_if:NT \l__fdu_auto_make_cover_bool
+ {
+ \begin{titlepage}
+ \makecoveri \newpage \makecoverii
+ \end{titlepage}
+ }
+ }
+\AtEndDocument
+ { \bool_if:NT \l__fdu_auto_make_cover_bool { \makecoveriii } }
+\tl_const:Nn \__fdu_chapter_toc_format: { \normalfont \sffamily }
+\tl_const:Nn \__fdu_chapter_toc_en_format: { \bfseries }
+\keys_set:nn { ctex }
+ {
+ contentsname = \c__fdu_name_toc_en_tl,
+ chapter / tocline =
+ {
+ \__fdu_chapter_toc_en_format:
+ \CTEXnumberline {#1} #2
+ },
+ section / tocline =
+ {
+ \bfseries
+ \CTEXnumberline {#1} #2
+ },
+ subsection / tocline =
+ {
+ \CTEXnumberline {#1} #2
+ }
+ }
+\__fdu_patch_cmd:Nnn \tableofcontents
+ {
+ \chapter*{\contentsname
+ \@mkboth{%
+ \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
+ }
+ {
+ \chapter* { \contentsname }
+ \fdu_front_matter_header:n { \c__fdu_name_toc_en_tl }
+ }
+\__fdu_patch_cmd:Nnn \@starttoc
+ { \begingroup }
+ {
+ \begingroup
+ \__fdu_line_spread:N \c__fdu_line_spread_fp
+ }
+\NewDocumentEnvironment { abstract } { }
+ { \__fdu_abstract_en_begin: } { \__fdu_abstract_en_end: }
+\cs_new_protected:Npn \__fdu_abstract_en_begin:
+ {
+ \chapter* { \c__fdu_name_abstract_en_tl }
+ \fdu_front_matter_header:n { \c__fdu_name_abstract_en_tl }
+ \addcontentsline { toc } { chapter }
+ {
+ \__fdu_chapter_toc_en_format:
+ \c__fdu_name_abstract_en_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_abstract_en_end:
+ {
+ \__fdu_keywords_par:
+ \textbf { \c__fdu_name_keywords_en_tl } \__fdu_quad:
+ \clist_use:Nn \l__fdu_info_keywords_en_clist { \__fdu_quad: }
+ \__fdu_clc_par:
+ \textbf { \c__fdu_name_clc_en_tl } \__fdu_quad:
+ \l__fdu_info_clc_tl
+ }
+\cs_new:Npn \__fdu_keywords_par:
+ {
+ \par \mode_leave_vertical: \par
+ \noindent \hangindent = 4 em \hangafter = 1
+ }
+\cs_new:Npn \__fdu_clc_par:
+ { \par \noindent }
+\NewDocumentEnvironment { notation } { O { l p { 7.5 cm } } }
+ {
+ \__fdu_notation_begin:
+ \group_begin:
+ \__fdu_notation_long_table_setup:
+ \longtable {#1}
+ }
+ {
+ \endlongtable
+ \group_end:
+ }
+\cs_new_protected:Npn \__fdu_notation_begin:
+ {
+ \chapter* { \c__fdu_name_notation_en_tl }
+ \fdu_front_matter_header:n { \c__fdu_name_notation_en_tl }
+ \addcontentsline { toc } { chapter }
+ {
+ \__fdu_chapter_toc_en_format:
+ \c__fdu_name_notation_en_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_notation_long_table_setup:
+ {
+ \tl_set:Nn \arraystretch { 1.3 }
+ \dim_set_eq:NN \LTpre \c_zero_dim
+ \dim_set_eq:NN \LTpost \c_zero_dim
+ }
+\bool_new:N \l__fdu_bibtex_bool
+\tl_new:N \l__fdu_bib_style_tl
+\tl_new:N \l__fdu_bib_gb_style_tl
+\tl_new:N \l__fdu_cite_style_tl
+\tl_new:N \l__fdu_bib_resource_tl
+\keys_define:nn { fdu / style }
+ {
+ bib-backend .choice:,
+ bib-backend .value_required:n = true,
+ bib-backend / bibtex .code:n =
+ { \bool_set_true:N \l__fdu_bibtex_bool },
+ bib-backend / biblatex .code:n =
+ { \bool_set_false:N \l__fdu_bibtex_bool },
+ bib-style .choice:,
+ bib-style .value_required:n = true,
+ bib-style / numerical .code:n =
+ {
+ \tl_set:Nn \l__fdu_bib_gb_style_tl { numerical }
+ \tl_clear:N \l__fdu_bib_style_tl
+ },
+ bib-style / author-year .code:n =
+ {
+ \tl_set:Nn \l__fdu_bib_gb_style_tl { author-year }
+ \tl_clear:N \l__fdu_bib_style_tl
+ },
+ bib-style / unknown .code:n =
+ { \tl_set_eq:NN \l__fdu_bib_style_tl \l_keys_value_tl },
+ cite-style .code:n =
+ {
+ \bool_if:NTF \l__fdu_bibtex_bool
+ { \__fdu_warning:n { cite-style-not-available } }
+ { \tl_set:Nn \l__fdu_cite_style_tl {#1} }
+ },
+ bib-resource .tl_set:N = \l__fdu_bib_resource_tl
+ }
+\__fdu_msg_new:nn { cite-style-not-available }
+ { Option~ "cite-style"~ is~ not~ available~ in~ BibTeX. }
+\ctex_at_end_preamble:n
+ {
+ \bool_if:NTF \l__fdu_bibtex_bool
+ {
+ \RequirePackage [ sort & compress ] { natbib }
+ \__fdu_bibtex_setup:
+ \NewDocumentCommand \printbibliography { o }
+ {
+ \exp_args:NV \bibliography \l__fdu_bib_resource_tl
+ \IfValueT {#1}
+ { \__fdu_warning:nn { invalid-option-in-bibtex } {#1} }
+ }
+ }
+ {
+ \__fdu_biblatex_setup:
+ \RequirePackage [ backend = biber, hyperref = manual, natbib ]
+ { biblatex }
+ \exp_args:NV \addbibresource \l__fdu_bib_resource_tl
+ \__fdu_biblatex_allow_url_break:
+ \exp_args:Nnx \DefineBibliographyStrings { english }
+ { bibliography = { \c__fdu_name_bib_en_tl } }
+ }
+ }
+\__fdu_msg_new:nn { invalid-option-in-bibtex }
+ { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. }
+\cs_new:Npn \__fdu_bibtex_setup:
+ {
+ \tl_if_empty:NTF \l__fdu_bib_style_tl
+ {
+ \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical }
+ {
+ \bibliographystyle { gbt7714-unsrt }
+ \__fdu_set_cite_style_numerical:
+ }
+ {
+ \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year }
+ {
+ \bibliographystyle { gbt7714-plain }
+ \__fdu_set_cite_style_author_year:
+ \cs_set_eq:NN \cite \citep
+ }
+ }
+ }
+ { \exp_args:NV \bibliographystyle \l__fdu_bib_style_tl }
+ }
+\cs_new:Npn \__fdu_biblatex_setup:
+ {
+ \tl_if_empty:NTF \l__fdu_bib_style_tl
+ {
+ \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical }
+ { \PassOptionsToPackage { style = gb7714-2015 } }
+ {
+ \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year }
+ { \PassOptionsToPackage { style = gb7714-2015ay } }
+ }
+ }
+ { \PassOptionsToPackage { style = \l__fdu_bib_style_tl } }
+ { biblatex }
+ \tl_if_empty:NF \l__fdu_cite_style_tl
+ {
+ \PassOptionsToPackage { citestyle = \l__fdu_bib_style_tl }
+ { biblatex }
+ }
+ }
+\cs_new:Npn \__fdu_biblatex_allow_url_break:
+ {
+ \int_set_eq:NN \c@biburlucpenalty \c_one
+ \int_set_eq:NN \c@biburlnumpenalty \c_one
+ \int_set_eq:NN \c@biburllcpenalty \c_one
+ }
+\cs_new:Npn \__fdu_set_cite_style_numerical:
+ {
+ \NAT@numberstrue \NAT@supertrue
+ \cs_set:Npn \NAT@open { [ }
+ \cs_set:Npn \NAT@close { ] }
+ \cs_set:Npn \NAT@sep { ,~ }
+ }
+\cs_new:Npn \__fdu_set_cite_style_author_year:
+ {
+ \NAT@numbersfalse
+ }
+\cs_set:Npn \bibsection
+ {
+ \chapter* { \bibname }
+ \fdu_front_matter_header:n { \bibname }
+ \addcontentsline { toc } { chapter }
+ { \__fdu_chapter_toc_format: \bibname }
+ }
+\NewDocumentCommand \hypersetup { m }
+ { \fdu_hyperref_setup:n {#1} }
+\cs_new_protected:Npn \fdu_hyperref_setup:n #1
+ { \clist_gput_right:Nn \g__fdu_to_hyperref_clist {#1} }
+\cs_new:Npn \__fdu_set_hyperlink_color_key:n #1
+ {
+ hyperlink-color / \clist_item:nn {#1} {1} .code:n =
+ {
+ \__fdu_define_hyperlink_color:nnn
+ { \clist_item:nn {#1} {2} }
+ { \clist_item:nn {#1} {3} }
+ { \clist_item:nn {#1} {4} }
+ \fdu_hyperref_setup:n
+ {
+ linkcolor = fdu@link, linkbordercolor = fdu@link,
+ urlcolor = fdu@url, urlbordercolor = fdu@url,
+ citecolor = fdu@cite, citebordercolor = fdu@cite
+ }
+ },
+ }
+\cs_new_protected:Npn \__fdu_define_hyperlink_color:nnn #1#2#3
+ {
+ \definecolorset { HTML } { fdu@ } { }
+ { link, #1; url, #2; cite, #3 }
+ }
+\keys_define:nx { fdu / style }
+ {
+ hyperlink .choice:,
+ hyperlink .value_required:n = true,
+ hyperlink / border .code:n = { },
+ hyperlink / color .code:n =
+ { \fdu_hyperref_setup:n { colorlinks = true } },
+ hyperlink / none .code:n =
+ { \fdu_hyperref_setup:n { hidelinks = true } },
+ hyperlink-color .choice:,
+ hyperlink-color .value_required:n = true,
+ \clist_map_function:nN
+ {
+ { autumn, D70000, D75F00, AF8700 },
+ { business, D14542, 295497, 1F6E43 },
+ { classic, FF0000, 0000FF, 00FF00 },
+ { default, 990000, 0000B2, 007F00 },
+ { elegant, 961212, C31818, 9B764F },
+ { fantasy, FF4A19, FF3F94, 934BA1 },
+ { material, E91E63, 009688, 4CAF50 },
+ { science, CA0619, 389F9D, FF8920 },
+ { summer, 00AFAF, 5F5FAF, 5F8700 },
+ { graylevel, 616161, 616161, 616161 },
+ { prl, 2D3092, 2D3092, 2D3092 }
+ }
+ \__fdu_set_hyperlink_color_key:n
+ }
+\cs_new:Npn \fdu_allow_url_break:
+ {
+ \cs_new:Npn \__fdu_add_url_break_points:
+ { \tl_map_function:NN \c__fdu_url_break_points_tl \do }
+ \__fdu_appto_cmd:Nn \UrlBreaks
+ { \UrlOrds \__fdu_add_url_break_points: }
+ }
+\tl_const:Nn \c__fdu_url_break_points_tl
+ {
+ abcdefghijklmnopqrstuvwxyz
+ ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789
+ }
+\ctex_at_end_preamble:n
+ {
+ \RequirePackage { hyperref }
+ \hypersetup
+ {
+ bookmarksnumbered = true,
+ pdftitle = \l__fdu_info_title_en_tl,
+ pdfauthor = \l__fdu_info_author_en_tl,
+ pdfkeywords = \l__fdu_info_keywords_en_clist,
+ pdfcreator = \c__fdu_name_pdf_creator_tl
+ }
+ \exp_args:NV \hypersetup \g__fdu_to_hyperref_clist
+ \fdu_allow_url_break:
+ \bool_if:NF \l__fdu_bibtex_bool { \BiblatexManualHyperrefOn }
+ }
+\ctex_at_end_package:nn { hyperref }
+ {
+ \pdfstringdefDisableCommands
+ {
+ \cs_set_eq:NN \fdu@kai \prg_do_nothing:
+ \cs_set_eq:NN \quad \c_space_tl
+ \cs_set_eq:NN \qquad \c_space_tl
+ }
+ }
+\keys_define:nn { fdu }
+ {
+ info .meta:nn = { fdu / info } {#1},
+ style .meta:nn = { fdu / style } {#1}
+ }
+\keys_set:nn { fdu }
+ {
+ style / font = times,
+ style / font-size = -4,
+ style / auto-make-cover = true,
+ style / logo = { fudan-name.pdf },
+ style / logo-size = { 0.5 \textwidth },
+ style / hyperlink = color,
+ style / hyperlink-color = default,
+ style / bib-style = numerical,
+ info / degree = academic,
+ info / secret-level = none,
+ info / school-id = { 10246 },
+ info / date = { \zhtoday },
+ theorem / header-font = { \bfseries \upshape },
+ theorem / body-font = { \itshape },
+ theorem / counter = { chapter }
+ }
+\NewDocumentCommand \fdusetup { m }
+ { \keys_set:nn { fdu } {#1} }
+\newtheorem* { proof } { \c__fdu_name_proof_en_tl }
+\newtheorem { axiom } { \c__fdu_name_axiom_en_tl }
+\newtheorem { corollary } { \c__fdu_name_corollary_en_tl }
+\newtheorem { definition } { \c__fdu_name_definition_en_tl }
+\newtheorem { example } { \c__fdu_name_example_en_tl }
+\newtheorem { lemma } { \c__fdu_name_lemma_en_tl }
+\newtheorem { theorem } { \c__fdu_name_theorem_en_tl }
+\endinput
+%%
+%% End of file `fduthesis-en.cls'.
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls
new file mode 100644
index 00000000000..f4028da0676
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.cls
@@ -0,0 +1,1743 @@
+%%
+%% This is file `fduthesis.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fduthesis.dtx (with options: `class')
+%%
+%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c 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 Xiangdong Zeng.
+%%
+%% This work consists of the files fduthesis.dtx,
+%% fduthesis-doc.dtx,
+%% fduthesis-logo.dtx,
+%% fduthesis-template.tex,
+%% and the derived files fduthesis.ins,
+%% fduthesis.cls,
+%% fduthesis-en.cls,
+%% fduthesis.def,
+%% fdudoc.cls,
+%% fdulogo.sty,
+%% fdulogo-example.tex,
+%% fduthesis-cover.tex,
+%% fduthesis-en.tex,
+%% fduthesis.pdf,
+%% fduthesis-en.pdf,
+%% fduthesis-code.pdf,
+%% latexmkrc,
+%% latexmkrc-en,
+%% and README.md.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $
+ {Thesis template for Fudan University}
+\ProvidesExplClass{\ExplFileName}
+ {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+\RequirePackage { xparse, xtemplate, l3keys2e }
+\clist_map_inline:nn { expl3, xparse, xtemplate, l3keys2e }
+ {
+ \@ifpackagelater {#1} { 2017/12/16 }
+ { } { \msg_error:nnn { fduthesis } { l3-too-old } {#1} }
+ }
+\msg_new:nnn { fduthesis } { l3-too-old }
+ {
+ Package~ "#1"~ is~ too~ old. \\\\
+ Please~ update~ an~ up-to-date~ version~ of~ the~ bundles \\
+ "l3kernel"~ and~ "l3packages"~ using~ your~ TeX~ package \\
+ manager~ or~ from~ CTAN.
+ }
+\sys_if_engine_xetex:F
+ {
+ \sys_if_engine_luatex:F
+ {
+ \msg_fatal:nnx { fduthesis } { unsupported-engine }
+ { \c_sys_engine_str }
+ }
+ }
+\msg_new:nnn { fduthesis } { unsupported-engine }
+ {
+ The~ fduthesis~ class~ requires~ either~ XeTeX~ or~ LuaTeX. \\\\
+ "#1"~ is~ not~ supported~ at~ present.~ You~ must~ change \\
+ your~ typesetting~ engine~ to~ "xelatex"~ or~ "lualatex".
+ }
+\box_new:N \l__fdu_tmpa_box
+\clist_new:N \l__fdu_tmpa_clist
+\clist_new:N \l__fdu_tmpb_clist
+\dim_new:N \l__fdu_tmpa_dim
+\dim_new:N \l__fdu_tmpb_dim
+\skip_new:N \l__fdu_tmpa_skip
+\tl_new:N \l__fdu_tmpa_tl
+\tl_new:N \l__fdu_tmpb_tl
+\int_new:N \g__fdu_thesis_type_int
+\clist_new:N \g__fdu_to_ctexbook_clist
+\clist_new:N \g__fdu_to_hyperref_clist
+\bool_new:N \g__fdu_twoside_bool
+\bool_set_true:N \g__fdu_twoside_bool
+\bool_new:N \g__fdu_draft_bool
+\tl_new:N \g__fdu_config_tl
+\cs_generate_variant:Nn \cs_generate_variant:Nn { cn }
+\cs_generate_variant:Nn \file_input:n { V }
+\cs_generate_variant:Nn \int_to_arabic:n { v }
+\cs_generate_variant:Nn \keys_define:nn { nx }
+\cs_generate_variant:Nn \tl_map_inline:nn { xn }
+\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { Vn } { T, TF }
+\cs_new:Npn \__fdu_quad: { \skip_horizontal:n { 1 em } }
+\cs_new:Npn \__fdu_qquad: { \skip_horizontal:n { 2 em } }
+\cs_new_protected:Npn \__fdu_vspace:N #1
+ {
+ \dim_set_eq:NN \l__fdu_tmpa_dim \prevdepth
+ \hrule height \c_zero_dim
+ \nobreak
+ \skip_vertical:N #1
+ \skip_vertical:N \c_zero_skip
+ \dim_set_eq:NN \prevdepth \l__fdu_tmpa_dim
+ }
+\cs_new_protected:Npn \__fdu_vspace:n #1
+ {
+ \skip_set:Nn \l__fdu_tmpa_skip {#1}
+ \__fdu_vspace:N \l__fdu_tmpa_skip
+ }
+\cs_generate_variant:Nn \__fdu_vspace:N { c }
+\cs_new:Npn \__fdu_symbol:n #1 { \tex_char:D #1 \scan_stop: }
+\cs_new:Npn \__fdu_arabic:n #1
+ { \int_to_arabic:v { c@ #1 } }
+\cs_new_protected:Npn \__fdu_patch_cmd:Nnn #1#2#3
+ {
+ \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_new_protected:Npn \__fdu_appto_cmd:Nn #1#2
+ {
+ \ctex_appto_cmd:NnnTF #1 { } {#2}
+ { } { \ctex_patch_failure:N #1 }
+ }
+\cs_new_protected:Npn \__fdu_define_fn_style:nn #1#2
+ { \tl_const:cn { c__fdu_fn_style_ #1 _tl } {#2} }
+\cs_new_protected:Npn \__fdu_define_punct:nn #1#2
+ { \tl_const:cn { c__fdu_ #1 _tl } { \__fdu_symbol:n {#2} } }
+\cs_new_protected:Npn \__fdu_define_name:nn #1#2
+ { \tl_const:cn { c__fdu_name_ #1 _tl } {#2} }
+\cs_new_protected:Npn \__fdu_define_name:nnn #1#2#3
+ {
+ \tl_const:cn { c__fdu_name_ #1 _tl } {#2}
+ \tl_const:cn { c__fdu_name_ #1 _en_tl } {#3}
+ }
+\cs_new:Npn \__fdu_msg_new:nn { \msg_new:nnn { fduthesis } }
+\cs_new:Npn \__fdu_error:n { \msg_error:nn { fduthesis } }
+\cs_new:Npn \__fdu_error:nn { \msg_error:nnn { fduthesis } }
+\cs_new:Npn \__fdu_error:nx { \msg_error:nnx { fduthesis } }
+\cs_new:Npn \__fdu_error:nnn { \msg_error:nnnn { fduthesis } }
+\cs_new:Npn \__fdu_warning:n { \msg_warning:nn { fduthesis } }
+\cs_new:Npn \__fdu_warning:nn { \msg_warning:nnn { fduthesis } }
+\cs_new:Npn \__fdu_warning:nxx { \msg_warning:nnxx { fduthesis } }
+\cs_new:Npn \__fdu_info:nx { \msg_info:nnx { fduthesis } }
+\keys_define:nn { fdu / option }
+ {
+ type .choice:,
+ type .value_required:n = true,
+ type .choices:nn =
+ { doctor, master, bachelor }
+ { \int_set_eq:NN \g__fdu_thesis_type_int \l_keys_choice_int },
+ type .initial:n = bachelor,
+ oneside .value_forbidden:n = true,
+ twoside .value_forbidden:n = true,
+ oneside .code:n =
+ {
+ \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { oneside }
+ \bool_set_false:N \g__fdu_twoside_bool
+ },
+ twoside .code:n =
+ {
+ \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { twoside }
+ \bool_set_true:N \g__fdu_twoside_bool
+ },
+ draft .choice:,
+ draft / true .code:n =
+ {
+ \bool_set_true:N \g__fdu_draft_bool
+ \clist_gput_right:Nn \g__fdu_to_ctexbook_clist { draft }
+ },
+ draft / false .code:n =
+ { \bool_set_false:N \g__fdu_draft_bool },
+ draft .default:n = true,
+ draft .initial:n = false,
+ config .tl_set:N = \g__fdu_config_tl,
+ unknown .code:n = { \__fdu_error:n { unknown-option } }
+ }
+\__fdu_msg_new:nn { unknown-option }
+ { Class~ option~ "\l_keys_key_tl"~ is~ unknown. }
+\ProcessKeysOptions { fdu / option }
+\file_input:n { fduthesis.def }
+\tl_if_empty:NF \g__fdu_config_tl
+ {
+ \file_input:V \g__fdu_config_tl
+ \__fdu_info:nx { load-config-file } { \g__fdu_config_tl }
+ }
+\__fdu_msg_new:nn { load-config-file }
+ { You~ are~ loading~ config~ file~ '#1'. }
+\PassOptionsToClass
+ {
+ UTF8,
+ heading = true,
+ fontset = none,
+ zihao = -4,
+ linespread = \c__fdu_line_spread_fp,
+ \g__fdu_to_ctexbook_clist
+ }
+ { ctexbook }
+\clist_map_inline:nn
+ {
+ { no-math } { fontspec },
+ { perpage } { footmisc },
+ { amsmath, thmmarks } { ntheorem }
+ }
+ { \PassOptionsToPackage #1 }
+\RequirePackage { etoolbox }
+\LoadClass { ctexbook }
+\RequirePackage
+ {
+ amsmath,
+ unicode-math,
+ geometry,
+ fancyhdr,
+ footmisc,
+ ntheorem,
+ graphicx,
+ longtable,
+ caption,
+ xcolor
+ }
+\cs_new_protected:Npn \__fdu_check_package:nnn #1#2#3
+ {
+ \@ifpackagelater {#1} {#2}
+ { } { \__fdu_error:nnn { package-too-old } {#1} {#3} }
+ }
+\__fdu_msg_new:nn { package-too-old }
+ {
+ Package~ "#1"~ is~ too~ old. \\
+ The~ fduthesis~ class~ only~ supports~ "#1"~ with~ a~ version \\
+ higher~ than~ v#2. \\\\
+ Please~ update~ an~ up-to-date~ version~ of~ it~ using~ your \\
+ TeX~ package~ manager~ or~ from~ CTAN.
+ }
+\__fdu_check_package:nnn { ctex } { 2017/08/07 } { 2.4.10 }
+\__fdu_check_package:nnn { fontspec } { 2017/09/22 } { 2.6e }
+\__fdu_check_package:nnn { unicode-math } { 2017/11/18 } { 0.8i }
+\sys_if_engine_xetex:T
+ { \__fdu_check_package:nnn { xeCJK } { 2017/08/07 } { 3.5.0 } }
+\geometry
+ {
+ paper = a4paper,
+ vmargin = 2.54 cm,
+ hmargin = 3.18 cm,
+ headheight = 15 pt
+ }
+\bool_if:NT \g__fdu_draft_bool { \geometry { showframe } }
+\prop_new:N \g__fdu_font_name_prop
+\prop_new:N \g__fdu_font_options_prop
+\prop_new:N \g__fdu_cjk_font_name_prop
+\prop_new:N \g__fdu_cjk_font_options_prop
+\keys_define:nn { fdu / style }
+ {
+ font .choice:,
+ font .value_required:n = true,
+ font / libertinus .code:n =
+ {
+ \fdu_choose_font:nn { main } { Libertinus~ Serif }
+ \fdu_choose_font:nn { sans } { Libertinus~ Sans }
+ \fdu_choose_font_with_option:nnn { mono }
+ { TeX~ Gyre~ Cursor } { Ligatures = Common Off }
+ \fdu_choose_font:nn { math } { Libertinus~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = libertinus }
+ },
+ font / lm .code:n =
+ {
+ \fdu_choose_font:nn { main } { Latin~ Modern~ Roman }
+ \fdu_choose_font:nn { sans } { Latin~ Modern~ Sans }
+ \fdu_choose_font:nn { mono } { Latin~ Modern~ Mono }
+ \fdu_choose_font:nn { math } { Latin~ Modern~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = pifont }
+ },
+ font / palatino .code:n =
+ {
+ \fdu_choose_font:nn { main } { TeX~ Gyre~ Pagella }
+ \fdu_choose_font:nn { sans } { TeX~ Gyre~ Heros }
+ \fdu_choose_font_with_option:nnn { mono }
+ { TeX~ Gyre~ Cursor } { Ligatures = Common Off }
+ \fdu_choose_font:nn { math } { TeX~ Gyre~ Pagella~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = pifont }
+ },
+ font / times .code:n =
+ {
+ \fdu_choose_font_with_option:nnn { main } { XITS }
+ {
+ UprightFeatures = { SmallCapsFont = * },
+ BoldFeatures = { SmallCapsFont = *~ Bold },
+ ItalicFeatures = { SmallCapsFont = *~ Italic },
+ BoldItalicFeatures = { SmallCapsFont = *~ Bold~ Italic },
+ }
+ \fdu_choose_font:nn { sans } { TeX~ Gyre~ Heros }
+ \fdu_choose_font_with_option:nnn { mono }
+ { TeX~ Gyre~ Cursor } { Ligatures = Common Off }
+ \fdu_choose_font:nn { math } { XITS~ Math }
+ \keys_set:nn { fdu / style } { footnote-style = xits }
+ },
+ font / none .code:n =
+ {
+ \__fdu_initialize_prop:Nn \g__fdu_font_name_prop
+ { main, sans, mono, math }
+ \__fdu_initialize_prop:Nn \g__fdu_font_options_prop
+ { main, sans, mono, math }
+ \keys_set:nn { fdu / style } { footnote-style = plain }
+ },
+ cjk-font .choice:,
+ cjk-font .value_required:n = true,
+ cjk-font / adobe .code:n =
+ {
+ \fdu_choose_cjk_font:nn { song } { Adobe~ Song~ Std }
+ \fdu_choose_cjk_font:nn { hei } { Adobe~ Heiti~ Std }
+ \fdu_choose_cjk_font:nn { fang } { Adobe~ Fangsong~ Std }
+ \fdu_choose_cjk_font:nn { kai } { Adobe~ Kaiti~ Std }
+ },
+ cjk-font / fandol .code:n =
+ {
+ \fdu_choose_cjk_font_with_option:nnn { song }
+ { FandolSong } { BoldFont = FandolSong~ Bold }
+ \fdu_choose_cjk_font:nn { hei } { FandolHei }
+ \fdu_choose_cjk_font:nn { fang } { FandolFang }
+ \fdu_choose_cjk_font:nn { kai } { FandolKai }
+ },
+ cjk-font / founder .code:n =
+ {
+ \fdu_choose_cjk_font_with_option:nnn { song }
+ { FZShuSong-Z01 } { BoldFont = FZXiaoBiaoSong-B05 }
+ \fdu_choose_cjk_font:nn { hei } { FZHei-B01 }
+ \fdu_choose_cjk_font:nn { fang } { FZFangSong-Z02 }
+ \fdu_choose_cjk_font:nn { kai } { FZKai-Z03 }
+ },
+ cjk-font / mac .code:n =
+ {
+ \fdu_choose_cjk_font_with_option:nnn { song }
+ { STSong } { BoldFont = STZhongsong }
+ \fdu_choose_cjk_font:nn { hei } { STHeiti }
+ \fdu_choose_cjk_font:nn { fang } { STFangsong }
+ \fdu_choose_cjk_font:nn { kai } { STKaiti }
+ },
+ cjk-font / windows .code:n =
+ {
+ \fdu_choose_cjk_font:nn { song } { SimSun }
+ \fdu_choose_cjk_font:nn { hei } { SimHei }
+ \fdu_choose_cjk_font:nn { fang } { FangSong }
+ \fdu_choose_cjk_font:nn { kai } { KaiTi }
+ },
+ cjk-font / none .code:n =
+ {
+ \__fdu_initialize_prop:Nn \g__fdu_cjk_font_name_prop
+ { rm, sf, tt, kai }
+ \__fdu_initialize_prop:Nn \g__fdu_cjk_font_options_prop
+ { rm, sf, tt, kai }
+ }
+ }
+\cs_new_protected:Npn \__fdu_initialize_prop:Nn #1#2
+ {
+ \prop_gclear:N #1
+ \clist_map_inline:nn {#2} { \prop_gput:Nnn #1 {##1} { } }
+ }
+\clist_map_inline:nn
+ { main, sans, mono, math }
+ {
+ \exp_args:Nc \RenewDocumentCommand { set #1 font } { O { } m O { } }
+ { \fdu_choose_font_with_option:nnn { #1 } {##2} { ##1, ##3 } }
+ }
+\RenewDocumentCommand \setCJKmainfont { O { } m O { } }
+ { \fdu_choose_cjk_font_with_option:nnn { rm } {#2} { #1, #3 } }
+\RenewDocumentCommand \setCJKsansfont { O { } m O { } }
+ { \fdu_choose_cjk_font_with_option:nnn { sf } {#2} { #1, #3 } }
+\RenewDocumentCommand \setCJKmonofont { O { } m O { } }
+ { \fdu_choose_cjk_font_with_option:nnn { tt } {#2} { #1, #3 } }
+\RenewDocumentCommand \setCJKfamilyfont { m O { } m O { } }
+ { \fdu_choose_cjk_font_with_option:nnn {#1} {#3} { #2, #4 } }
+\cs_new_protected:Npn \fdu_choose_font_with_option:nnn #1#2#3
+ {
+ \prop_gput:Nnn \g__fdu_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_font_options_prop {#1} {#3}
+ }
+\cs_new_protected:Npn \fdu_choose_font:nn #1#2
+ {
+ \prop_gput:Nnn \g__fdu_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_font_options_prop {#1} { }
+ }
+\cs_new_protected:Npn \fdu_choose_cjk_font_with_option:nnn #1#2#3
+ {
+ \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} {#3}
+ }
+\cs_new_protected:Npn \fdu_choose_cjk_font:nn #1#2
+ {
+ \prop_gput:Nnn \g__fdu_cjk_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g__fdu_cjk_font_options_prop {#1} { }
+ }
+\cs_new_protected:Npn \__fdu_set_font:
+ {
+ \clist_map_inline:nn { main, sans, mono, math }
+ {
+ \prop_get:NnN \g__fdu_font_name_prop {##1} \l__fdu_tmpa_tl
+ \prop_get:NnN \g__fdu_font_options_prop {##1} \l__fdu_tmpb_tl
+ \tl_if_empty:NT \l__fdu_tmpa_tl
+ { \__fdu_error:nn { font-not-defined } {##1} }
+ \use:c { __fdu_set_ ##1 _font:VV } \l__fdu_tmpa_tl \l__fdu_tmpb_tl
+ }
+ }
+\clist_map_inline:nn { main, sans, mono }
+ {
+ \cs_new_protected:cpx { __fdu_set_ #1 _font:nn } ##1 ##2
+ { \exp_not:c { __fontspec_main_set #1 font:nn } {##2} {##1} }
+ }
+\cs_new_protected:Npn \__fdu_set_math_font:nn #1#2
+ { \__um_setmathfont:nn {#2} {#1} }
+\clist_map_inline:nn { main, sans, mono, math }
+ { \cs_generate_variant:cn { __fdu_set_ #1 _font:nn } { VV } }
+\cs_new_protected:Npn \__fdu_set_cjk_font:
+ {
+ \clist_map_inline:nn { rm, sf, tt, kai }
+ {
+ \use:c { __fdu_parse_cjk_ ##1 _font: }
+ \__fdu_check_cjk_font:n {##1}
+ \__fdu_set_cjk_font_aux:n {##1}
+ }
+ \clist_map_inline:nn { song, hei, fang }
+ {
+ \prop_gremove:Nn \g__fdu_cjk_font_name_prop {##1}
+ \prop_gremove:Nn \g__fdu_cjk_font_options_prop {##1}
+ }
+ }
+\tl_new:N \l__fdu_font_name_tl
+\clist_new:N \l__fdu_font_options_clist
+\cs_new_protected:Npn \__fdu_parse_cjk_rm_font:
+ {
+ \prop_get:NnNF \g__fdu_cjk_font_name_prop
+ { rm } \l__fdu_font_name_tl
+ {
+ \__fdu_get_cjk_font_name_options:nn { rm } { song }
+ \use_ii:nn
+ {
+ \tl_if_in:NnF \l__fdu_font_options_clist { BoldFont = }
+ {
+ \clist_put_right:Nx \l__fdu_font_options_clist
+ { BoldFont = \l__fdu_font_name_tl }
+ }
+ }
+ {
+ \prop_get:NnN \g__fdu_cjk_font_name_prop { hei }
+ \l__fdu_tmpa_tl
+ \clist_put_right:Nx \l__fdu_font_options_clist
+ { BoldFont = \l__fdu_tmpa_tl }
+ }
+ \__fdu_get_cjk_kai_font:
+ \__fdu_set_cjk_font_options:n { rm }
+ }
+ }
+\cs_new_protected:Npn \__fdu_parse_cjk_sf_font:
+ {
+ \prop_get:NnNF \g__fdu_cjk_font_name_prop
+ { sf } \l__fdu_font_name_tl
+ {
+ \__fdu_get_cjk_font_name_options:nn { sf } { hei }
+ \clist_put_right:Nx \l__fdu_font_options_clist
+ {
+ BoldFont = \l__fdu_font_name_tl,
+ ItalicFont = \l__fdu_font_name_tl,
+ BoldItalicFont = \l__fdu_font_name_tl
+ }
+ \__fdu_set_cjk_font_options:n { sf }
+ }
+ }
+\cs_new_protected:Npn \__fdu_parse_cjk_tt_font:
+ {
+ \prop_get:NnNF \g__fdu_cjk_font_name_prop
+ { tt } \l__fdu_font_name_tl
+ {
+ \__fdu_get_cjk_font_name_options:nn { tt } { fang }
+ \clist_put_right:Nx \l__fdu_font_options_clist
+ { BoldFont = \l__fdu_font_name_tl }
+ \__fdu_get_cjk_kai_font:
+ \__fdu_set_cjk_font_options:n { tt }
+ }
+ }
+\cs_new_protected:Npn \__fdu_parse_cjk_kai_font:
+ {
+ \prop_get:NnN \g__fdu_cjk_font_name_prop { kai }
+ \l__fdu_font_name_tl
+ \clist_set:Nx \l__fdu_font_options_clist
+ {
+ BoldFont = \l__fdu_font_name_tl,
+ ItalicFont = \l__fdu_font_name_tl,
+ BoldItalicFont = \l__fdu_font_name_tl
+ }
+ \__fdu_set_cjk_font_options:n { kai }
+ }
+\cs_new_protected:Npn \__fdu_get_cjk_font_name_options:nn #1#2
+ {
+ \prop_get:NnN \g__fdu_cjk_font_name_prop {#2} \l__fdu_font_name_tl
+ \prop_gput:NnV \g__fdu_cjk_font_name_prop {#1} \l__fdu_font_name_tl
+ \prop_get:NnN \g__fdu_cjk_font_options_prop {#2} \l__fdu_tmpa_tl
+ \clist_set:NV \l__fdu_font_options_clist \l__fdu_tmpa_tl
+ }
+\cs_new_protected:Npn \__fdu_get_cjk_kai_font:
+ {
+ \prop_get:NnN \g__fdu_cjk_font_name_prop { kai }
+ \l__fdu_tmpa_tl
+ \clist_put_right:Nx \l__fdu_font_options_clist
+ {
+ ItalicFont = \l__fdu_tmpa_tl,
+ BoldItalicFont = \l__fdu_tmpa_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_set_cjk_font_options:n #1
+ {
+ \prop_put:NnV \g__fdu_cjk_font_options_prop {#1}
+ \l__fdu_font_options_clist
+ }
+\cs_new_protected:Npn \__fdu_check_cjk_font:n #1
+ {
+ \prop_get:NnN \g__fdu_cjk_font_name_prop {#1}
+ \l__fdu_font_name_tl
+ \tl_if_empty:NT \l__fdu_font_name_tl
+ { \__fdu_error:nn { cjk-font-not-defined } {#1} }
+ }
+\cs_generate_variant:Nn \xeCJK_set_family:nnn { nVV }
+\cs_generate_variant:Nn \ctex_ltj_set_family:nnn { nVV }
+\cs_new_protected:Npx \__fdu_set_cjk_font_aux:n #1
+ {
+ \prop_get:NnN \exp_not:N \g__fdu_cjk_font_name_prop {#1}
+ \exp_not:N \l__fdu_tmpa_tl
+ \prop_get:NnN \exp_not:N \g__fdu_cjk_font_options_prop {#1}
+ \exp_not:N \l__fdu_tmpb_tl
+ \sys_if_engine_xetex:TF
+ { \xeCJK_set_family:nVV }
+ { \sys_if_engine_luatex:T { \ctex_ltj_set_family:nVV } }
+ {#1} \exp_not:n { \l__fdu_tmpb_tl \l__fdu_tmpa_tl }
+ }
+\__fdu_msg_new:nn { font-not-defined }
+ {
+ \str_upper_case:f { \tl_head:n {#1} } \tl_tail:n {#1} ~
+ font~ is~ not~ defined. \\\\
+ You~ can~ set~ option~ "font"~ via~ "\string\fdusetup",~
+ or~ use~ command~ \\
+ "\string\set #1 font"~ to~ define~ new~ font~ families.
+ }
+\__fdu_msg_new:nn { cjk-font-not-defined }
+ {
+ CJK~ font~ family~ "#1"~ is~ not~ defined. \\\\
+ You~ can~ set~ option~ "cjk-font"~ via~ "\string\fdusetup",~
+ or~ use~ commands~ \\
+ "\string\setCJKmainfont",~ "\string\setCJKsansfont"~ or~
+ "\string\setCJKmonofont",~ etc~ \\
+ to~ define~ new~ CJK~ font~ families.
+ }
+\sys_if_engine_xetex:T
+ {
+ \prop_gput:Nnn \g__xeCJK_family_font_name_prop { rm } { }
+ \prop_gput:Nnn \g__xeCJK_family_name_prop { rm } { }
+ \msg_redirect_name:nnn { xeCJK } { CJKfamily-redef } { none }
+ }
+\ctex_at_end_preamble:n
+ {
+ \__fdu_set_font:
+ \__fdu_set_cjk_font:
+ }
+\sys_if_engine_xetex:TF
+ {
+ \prg_new_protected_conditional:Npnn
+ \fdu_family_if_exist:n #1 { TF }
+ {
+ \xeCJK_family_if_exist:nTF {#1}
+ { \prg_return_true: } { \prg_return_false: }
+ }
+ }
+ {
+ \sys_if_engine_luatex:T
+ {
+ \prg_new_protected_conditional:Npnn
+ \fdu_family_if_exist:n #1 { TF }
+ {
+ \ctex_ltj_family_if_exist:nNTF {#1} \l__fdu_tmpa_tl
+ { \prg_return_true: } { \prg_return_false: }
+ }
+ }
+ }
+\cs_new_protected:Npx \fdu_cjk_font_kai:
+ {
+ \fdu_family_if_exist:nTF { kai }
+ {
+ \sys_if_engine_xetex:TF
+ { \xeCJK_switch_family:n { kai } }
+ {
+ \sys_if_engine_luatex:T
+ { \ctex_ltj_switch_family:n { kai } }
+ }
+ }
+ { \exp_not:n { \rmfamily \itshape } }
+ }
+\cs_new_eq:NN \fdu@kai \fdu_cjk_font_kai:
+\keys_set:nn { unicode-math }
+ {
+ math-style = ISO,
+ bold-style = ISO,
+ }
+\keys_define:nn { fdu / style }
+ {
+ font-size .choice:,
+ font-size .value_required:n = true,
+ font-size / -4 .code:n = { },
+ font-size / 5 .code:n =
+ {
+ \RenewDocumentCommand \tiny { } { \zihao { 7 } }
+ \RenewDocumentCommand \scriptsize { } { \zihao { -6 } }
+ \RenewDocumentCommand \footnotesize { } { \zihao { 6 } }
+ \RenewDocumentCommand \small { } { \zihao { -5 } }
+ \RenewDocumentCommand \normalsize { } { \zihao { 5 } }
+ \RenewDocumentCommand \large { } { \zihao { -4 } }
+ \RenewDocumentCommand \Large { } { \zihao { -3 } }
+ \RenewDocumentCommand \LARGE { } { \zihao { -2 } }
+ \RenewDocumentCommand \huge { } { \zihao { 2 } }
+ \RenewDocumentCommand \Huge { } { \zihao { 1 } }
+ },
+ fullwidth-stop .choice:,
+ fullwidth-stop .value_required:n = true,
+ fullwidth-stop / catcode .code:n =
+ { \__fdu_set_fullwidth_stop_catcode: },
+ fullwidth-stop / mapping .code:n =
+ {
+ \sys_if_engine_xetex:TF
+ {
+ \clist_gset:Nn \g__xeCJK_default_features_clist
+ { Mapping = fullwidth-stop }
+ }
+ {
+ \sys_if_engine_luatex:T
+ {
+ \__fdu_warning:n { mapping-not-available }
+ \__fdu_set_fullwidth_stop_catcode:
+ }
+ }
+ },
+ fullwidth-stop / false .code:n = { }
+ }
+\__fdu_msg_new:nn { mapping-not-available }
+ {
+ Option~ "fullwidth-stop = mapping"~ is~ not~ available~ in~ LuaTeX. \\
+ "fullwidth-stop = catcode"~ will~ be~ set~ instead.
+ }
+\cs_new:Npn \__fdu_set_fullwidth_stop_catcode:
+ {
+ \char_set_active_eq:nN { "3002 } \c__fdu_fullwidth_full_stop_tl
+ \char_set_catcode_active:n { "3002 }
+ }
+\keys_set:nn { ctex }
+ {
+ chapter =
+ {
+ format = \huge \normalfont \sffamily \centering,
+ beforeskip = 50 pt,
+ afterskip = 40 pt,
+ number = \__fdu_arabic:n { chapter },
+ fixskip = true
+ },
+ section =
+ {
+ format = \Large \normalfont \sffamily \raggedright,
+ beforeskip = 3.5 ex plus 1.0 ex minus 0.2 ex,
+ afterskip = 2.7 ex plus 0.5 ex,
+ fixskip = true
+ },
+ subsection =
+ {
+ format = \large \normalfont \sffamily \raggedright,
+ beforeskip = 3.25 ex plus 1.0 ex minus 0.2 ex,
+ afterskip = 2.5 ex plus 0.3 ex,
+ fixskip = true
+ }
+ }
+\fancyhf { }
+\tl_new:N \l__fdu_header_center_mark_tl
+\bool_if:NTF \g__fdu_twoside_bool
+ {
+ \fancyhead [ EL ] { \small \nouppercase { \fdu@kai \leftmark } }
+ \fancyhead [ OR ] { \small \nouppercase { \fdu@kai \rightmark } }
+ }
+ {
+ \fancyhead [ L ] { \small \nouppercase { \fdu@kai \leftmark } }
+ \fancyhead [ R ] { \small \nouppercase { \fdu@kai \rightmark } }
+ \fancyhead [ C ]
+ {
+ \small \nouppercase
+ { \fdu@kai \l__fdu_header_center_mark_tl }
+ }
+ }
+\fancyfoot [ C ] { \small \thepage }
+\cs_new:Npn \fdu_front_matter_header:n #1
+ {
+ \bool_if:NTF \g__fdu_twoside_bool
+ { \markboth {#1} {#1} }
+ {
+ \markboth { } { }
+ \tl_gset:Nn \l__fdu_header_center_mark_tl {#1}
+ }
+ }
+\RenewDocumentCommand \cleardoublepage { }
+ {
+ \clearpage
+ \bool_if:NT \g__fdu_twoside_bool
+ {
+ \int_if_odd:nF \c@page
+ { \hbox:n { } \thispagestyle { empty } \newpage }
+ }
+ \tl_gset:Nn \l__fdu_header_center_mark_tl { }
+ }
+\pagestyle { fancy }
+\clist_map_inline:nn
+ {
+ { plain } { plain },
+ { libertinus } { libertinus },
+ { libertinus_neg } { libertinus* },
+ { libertinus_sans } { libertinus-sans },
+ { pifont } { pifont },
+ { pifont_neg } { pifont* },
+ { pifont_sans } { pifont-sans },
+ { pifont_sans_neg } { pifont-sans* },
+ { xits } { xits },
+ { xits_sans } { xits-sans },
+ { xits_sans_neg } { xits-sans* }
+ }
+ { \__fdu_define_fn_style:nn #1 }
+\tl_new:N \l__fdu_fn_style_tl
+\keys_define:nn { fdu / style }
+ {
+ footnote-style .choices:nn =
+ {
+ plain,
+ libertinus, libertinus*, libertinus-sans,
+ pifont, pifont*, pifont-sans, pifont-sans*,
+ xits, xits-sans, xits-sans*
+ }
+ {
+ \tl_gset_eq:NN \l__fdu_fn_style_tl \l_keys_choice_tl
+ \int_compare:nT { 5 <= \l_keys_choice_int <= 8 }
+ { \RequirePackage { pifont } }
+ },
+ footnote-style .value_required:n = true
+ }
+\cs_new:Npn \__fdu_fn_symbol_libertinus:n #1
+ {
+ \int_compare:nTF { #1 >= 21 }
+ {
+ \int_compare:nTF { #1 >= 47 }
+ { \__fdu_symbol:n { \int_eval:n { "24B6 - 47 + #1 } } }
+ { \__fdu_symbol:n { \int_eval:n { "24D0 - 21 + #1 } } }
+ }
+ { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } }
+ }
+\cs_new:Npn \__fdu_fn_symbol_libertinus_neg:n #1
+ {
+ \int_compare:nTF { #1 >= 11 }
+ { \__fdu_symbol:n { \int_eval:n { "24EB - 11 + #1 } } }
+ { \__fdu_symbol:n { \int_eval:n { "2776 - 1 + #1 } } }
+ }
+\cs_new_eq:NN \__fdu_fn_symbol_libertinus_sans:n
+ \__fdu_fn_symbol_libertinus:n
+\cs_new:Npn \__fdu_fn_symbol_pifont:n #1
+ { \ding { \int_eval:n { 171 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_pifont_neg:n #1
+ { \ding { \int_eval:n { 181 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_pifont_sans:n #1
+ { \ding { \int_eval:n { 191 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_pifont_sans_neg:n #1
+ { \ding { \int_eval:n { 201 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_xits:n #1
+ {
+ \int_compare:nTF { #1 >= 10 }
+ {
+ \int_compare:nTF { #1 >= 36 }
+ { \__fdu_symbol:n { \int_eval:n { "24B6 - 36 + #1 } } }
+ { \__fdu_symbol:n { \int_eval:n { "24D0 - 10 + #1 } } }
+ }
+ { \__fdu_symbol:n { \int_eval:n { "2460 - 1 + #1 } } }
+ }
+\cs_new:Npn \__fdu_fn_symbol_xits_sans:n #1
+ { \__fdu_symbol:n { \int_eval:n { "2780 - 1 + #1 } } }
+\cs_new:Npn \__fdu_fn_symbol_xits_sans_neg:n #1
+ { \__fdu_symbol:n { \int_eval:n { "278A - 1 + #1 } } }
+\cs_set:Npn \thefootnote { \fdu_footnote_number:N \c@footnote }
+\cs_new:Npn \fdu_footnote_number:N #1
+ {
+ \tl_case:NnF \l__fdu_fn_style_tl
+ {
+ \c__fdu_fn_style_plain_tl
+ { \int_use:N #1 }
+ \c__fdu_fn_style_libertinus_tl
+ {
+ \fontspec { Libertinus~ Serif }
+ \__fdu_fn_symbol_libertinus:n {#1}
+ }
+ \c__fdu_fn_style_libertinus_neg_tl
+ {
+ \fontspec { Libertinus~ Serif }
+ \__fdu_fn_symbol_libertinus_neg:n {#1}
+ }
+ \c__fdu_fn_style_libertinus_sans_tl
+ {
+ \fontspec { Libertinus~ Sans }
+ \__fdu_fn_symbol_libertinus_sans:n {#1}
+ }
+ \c__fdu_fn_style_pifont_tl
+ { \__fdu_fn_symbol_pifont:n {#1} }
+ \c__fdu_fn_style_pifont_neg_tl
+ { \__fdu_fn_symbol_pifont_neg:n {#1} }
+ \c__fdu_fn_style_pifont_sans_tl
+ { \__fdu_fn_symbol_pifont_sans:n {#1} }
+ \c__fdu_fn_style_pifont_sans_neg_tl
+ { \__fdu_fn_symbol_pifont_sans_neg:n {#1} }
+ \c__fdu_fn_style_xits_tl
+ {
+ \fontspec { XITS }
+ \__fdu_fn_symbol_xits:n {#1}
+ }
+ \c__fdu_fn_style_xits_sans_tl
+ {
+ \fontspec { XITS }
+ \__fdu_fn_symbol_xits_sans:n {#1}
+ }
+ \c__fdu_fn_style_xits_sans_neg_tl
+ {
+ \fontspec { XITS }
+ \__fdu_fn_symbol_xits_sans_neg:n {#1}
+ }
+ }
+ { \int_use:N #1 }
+ }
+\cs_set:Npn \@makefntext #1
+ {
+ \mode_leave_vertical:
+ \hbox_to_wd:nn { 1.5 em } { \@thefnmark \hfil }
+ #1
+ }
+\clist_const:Nn \c__fdu_thm_style_plain_clist
+ { plain, margin, change }
+\clist_const:Nn \c__fdu_thm_style_break_clist
+ { break, marginbreak, changebreak }
+\tl_new:N \l__fdu_thm_style_tl
+\tl_new:N \l__fdu_thm_header_font_tl
+\tl_new:N \l__fdu_thm_body_font_tl
+\tl_new:N \l__fdu_thm_qed_tl
+\tl_new:N \l__fdu_thm_counter_tl
+\keys_define:nn { fdu / theorem }
+ {
+ style .tl_set:N = \l__fdu_thm_style_tl,
+ header-font .tl_set:N = \l__fdu_thm_header_font_tl,
+ body-font .tl_set:N = \l__fdu_thm_body_font_tl,
+ qed .tl_set:N = \l__fdu_thm_qed_tl,
+ counter .tl_set:N = \l__fdu_thm_counter_tl
+ }
+\cs_new_eq:NN \__fdu_thm_ntheorem_style:n \theoremstyle
+\cs_new_eq:NN \__fdu_thm_ntheorem_new:w \newtheorem
+\RenewDocumentCommand \newtheorem { s o m m }
+ {
+ \IfBooleanTF {#1}
+ { \tl_set:Nn \l__fdu_thm_qed_tl { \ensuremath { \QED } } }
+ { \tl_set:Nn \l__fdu_thm_qed_tl { } }
+ \tl_set:Nn \l__fdu_thm_style_tl { plain }
+ \IfValueT {#2} { \keys_set:nn { fdu / theorem } {#2} }
+ \fdu_thm_set_header_font:V \l__fdu_thm_header_font_tl
+ \fdu_thm_set_body_font:V \l__fdu_thm_body_font_tl
+ \fdu_thm_set_qed:V \l__fdu_thm_qed_tl
+ \IfBooleanTF {#1}
+ {
+ \clist_if_in:nVF { plain, break } \l__fdu_thm_style_tl
+ {
+ \clist_if_in:NVTF
+ \c__fdu_thm_style_plain_clist \l__fdu_thm_style_tl
+ { \__fdu_thm_redefine_style:n { plain } }
+ {
+ \clist_if_in:NVTF
+ \c__fdu_thm_style_break_clist \l__fdu_thm_style_tl
+ { \__fdu_thm_redefine_style:n { break } }
+ {
+ \__fdu_error:nx { unknown-theorem-style }
+ { \l__fdu_thm_style_tl }
+ }
+ }
+ }
+ \tl_put_left:Nn \l__fdu_thm_style_tl { nonumber }
+ \fdu_thm_new_no_number:Vxx \l__fdu_thm_style_tl {#3} {#4}
+ }
+ {
+ \clist_clear:N \l__fdu_tmpa_clist
+ \clist_concat:NNN \l__fdu_tmpa_clist
+ \c__fdu_thm_style_plain_clist \c__fdu_thm_style_break_clist
+ \clist_if_in:NVF \l__fdu_tmpa_clist \l__fdu_thm_style_tl
+ {
+ \__fdu_error:nx { unknown-theorem-style }
+ { \l__fdu_thm_style_tl }
+ }
+ \fdu_thm_new:VVxx \l__fdu_thm_style_tl \l__fdu_thm_counter_tl
+ {#3} {#4}
+ }
+ }
+\cs_new:Npn \__fdu_thm_redefine_style:n #1
+ {
+ \__fdu_warning:nxx { redefine-theorem-style }
+ {#1} { \l__fdu_thm_style_tl }
+ \tl_set:Nn \l__fdu_thm_style_tl {#1}
+ }
+\__fdu_msg_new:nn { redefine-theorem-style }
+ { Theorem~ style~ "#2"~ will~ be~ redefined~ as~ "#1". }
+\__fdu_msg_new:nn { unknown-theorem-style }
+ { Theorem~ style~ "#1"~ is~ unknown. }
+\cs_new:Npn \fdu_thm_new:nnnn #1#2#3#4
+ {
+ \__fdu_thm_ntheorem_style:n {#1}
+ \__fdu_thm_ntheorem_new:w {#3} {#4} [#2]
+ }
+\cs_generate_variant:Nn \fdu_thm_new:nnnn { VVxx }
+\cs_new:Npn \fdu_thm_new_no_number:nnn #1#2#3
+ {
+ \__fdu_thm_ntheorem_style:n {#1}
+ \__fdu_thm_ntheorem_new:w {#2} {#3}
+ }
+\cs_generate_variant:Nn \fdu_thm_new_no_number:nnn { Vxx }
+\cs_new:Npn \fdu_thm_set_qed:n #1 { \theoremsymbol {#1} }
+\cs_new:Npn \fdu_thm_set_header_font:n #1 { \theoremheaderfont {#1} }
+\cs_new:Npn \fdu_thm_set_body_font:n #1 { \theorembodyfont {#1} }
+\cs_generate_variant:Nn \fdu_thm_set_qed:n { V }
+\cs_generate_variant:Nn \fdu_thm_set_header_font:n { V }
+\cs_generate_variant:Nn \fdu_thm_set_body_font:n { V }
+\captionsetup [ figure ]
+ {
+ font = small,
+ labelsep = quad
+ }
+\captionsetup [ table ]
+ {
+ font = { small, sf },
+ labelsep = quad
+ }
+\cs_set:Npn \thefigure
+ { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { figure } }
+\cs_set:Npn \thetable
+ { \__fdu_arabic:n { chapter } - \__fdu_arabic:n { table } }
+\clist_map_inline:nn
+ {
+ title, date, author, supervisor, department, major, student_id,
+ school_id, clc
+ }
+ { \tl_new:c { l__fdu_info_ #1 _tl } }
+\clist_new:N \l__fdu_info_instructors_clist
+\clist_new:N \l__fdu_info_keywords_clist
+\clist_map_inline:nn
+ { title, author, supervisor, department, major }
+ { \tl_new:c { l__fdu_info_ #1 _en_tl } }
+\clist_new:N \l__fdu_info_keywords_en_clist
+\int_new:N \l__fdu_info_degree_type_int
+\keys_define:nn { fdu / info }
+ {
+ degree .choices:nn =
+ { academic, professional }
+ { \int_set_eq:NN \l__fdu_info_degree_type_int \l_keys_choice_int },
+ title .tl_set:N = \l__fdu_info_title_tl,
+ title* .tl_set:N = \l__fdu_info_title_en_tl,
+ date .tl_set:N = \l__fdu_info_date_tl,
+ author .tl_set:N = \l__fdu_info_author_tl,
+ author* .tl_set:N = \l__fdu_info_author_en_tl,
+ supervisor .tl_set:N = \l__fdu_info_supervisor_tl,
+ instructors .clist_set:N = \l__fdu_info_instructors_clist,
+ department .tl_set:N = \l__fdu_info_department_tl,
+ major .tl_set:N = \l__fdu_info_major_tl,
+ student-id .tl_set:N = \l__fdu_info_student_id_tl,
+ school-id .tl_set:N = \l__fdu_info_school_id_tl,
+ keywords .clist_set:N = \l__fdu_info_keywords_clist,
+ keywords* .clist_set:N = \l__fdu_info_keywords_en_clist,
+ clc .tl_set:N = \l__fdu_info_clc_tl
+ }
+\tl_new:N \l__fdu_cover_logo_tl
+\clist_new:N \l__fdu_cover_logo_size_clist
+\keys_define:nn { fdu / style }
+ {
+ logo .tl_set:N = \l__fdu_cover_logo_tl,
+ logo-size .clist_set:N = \l__fdu_cover_logo_size_clist
+ }
+\bool_new:N \l__fdu_secret_bool
+\tl_new:N \l__fdu_info_secret_level_tl
+\keys_define:nn { fdu / info }
+ {
+ secret-level .choices:nn =
+ { none, i, ii, iii }
+ {
+ \int_compare:nTF
+ { \l_keys_choice_int >= 2 }
+ {
+ \bool_set_true:N \l__fdu_secret_bool
+ \tl_set:Nn \l__fdu_info_secret_level_tl
+ {
+ \clist_item:Nn \c__fdu_secret_clist
+ { \l_keys_choice_int - 1 }
+ }
+ }
+ { \bool_set_false:N \l__fdu_secret_bool }
+ },
+ secret-level .value_required:n = true,
+ secret-year .tl_set:N = \l__fdu_info_secret_year_tl
+ }
+\cs_new_protected:Npn \__fdu_spread_box:nn #1#2
+ {
+ \mode_leave_vertical:
+ \hbox_to_wd:nn {#1}
+ { \tl_map_inline:xn {#2} { ##1 \hfil } \unskip }
+ }
+\cs_new_protected:Npn \__fdu_center_box:nn #1#2
+ {
+ \mode_leave_vertical:
+ \hbox_to_wd:nn {#1} { \hfil #2 \hfil }
+ }
+\cs_generate_variant:Nn \__fdu_center_box:nn { Vn }
+\cs_new:Npn \__fdu_fixed_width_box:nn #1#2
+ { \parbox {#1} {#2} }
+\cs_new:Npn \__fdu_fixed_width_center_box:nn #1#2
+ { \parbox {#1} { \centering #2 } }
+\cs_new:Npn \__fdu_get_text_width:Nn #1#2
+ {
+ \hbox_set:Nn \l__fdu_tmpa_box {#2}
+ \dim_set:Nn #1 { \box_wd:N \l__fdu_tmpa_box }
+ }
+\cs_generate_variant:Nn \__fdu_get_text_width:Nn { NV }
+\cs_new:Npn \__fdu_get_max_text_width:NN #1#2
+ {
+ \group_begin:
+ \clist_set_eq:NN \l__fdu_tmpa_clist #2
+ \bool_until_do:nn { \clist_if_empty_p:N \l__fdu_tmpa_clist }
+ {
+ \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl
+ \__fdu_get_text_width:NV \l__fdu_tmpa_dim \l__fdu_tmpa_tl
+ \dim_gset:Nn #1 { \dim_max:nn {#1} { \l__fdu_tmpa_dim } }
+ }
+ \group_end:
+ }
+\cs_new:Npn \__fdu_blank_underline:n #1
+ { \rule [ -0.5 ex ] {#1} { 0.4 pt } }
+\cs_new:Npn \__fdu_line_spread:N #1
+ { \linespread { \fp_use:N #1 } \selectfont }
+\cs_new:Npn \__fdu_line_spread:n #1
+ { \linespread {#1} \selectfont }
+\cs_new_protected:Npn \__fdu_cover_id:
+ {
+ \__fdu_fixed_width_box:nn { 120 pt }
+ {
+ \bool_if:NT \l__fdu_secret_bool
+ {
+ \group_begin:
+ \sffamily
+ \__fdu_cover_id_aux:n { secret_level }
+ \c__fdu_name_secret_star_tl
+ \l__fdu_info_secret_year_tl
+ \group_end:
+ \par
+ }
+ \__fdu_cover_id_aux:n { school_id } \par
+ \__fdu_cover_id_aux:n { student_id }
+ }
+ \hbox_to_wd:nn { -24 pt } { }
+ }
+\cs_new:Npn \__fdu_cover_id_aux:n #1
+ {
+ \tl_use:c { c__fdu_name_ #1 _tl }
+ \c__fdu_fullwidth_colon_tl
+ \tl_use:c { l__fdu_info_ #1 _tl }
+ }
+\cs_new_protected:Npn \__fdu_cover_logo:
+ {
+ \clist_pop:NN \l__fdu_cover_logo_size_clist \l__fdu_tmpa_tl
+ \clist_pop:NNTF \l__fdu_cover_logo_size_clist \l__fdu_tmpb_tl
+ {
+ \tl_if_empty:NTF \l__fdu_tmpa_tl
+ { \includegraphics [ height = \l__fdu_tmpb_tl ] }
+ {
+ \includegraphics
+ [ width = \l__fdu_tmpa_tl, height = \l__fdu_tmpb_tl ]
+ }
+ }
+ { \includegraphics [ width = \l__fdu_tmpa_tl ] }
+ { \l__fdu_cover_logo_tl }
+ }
+\cs_new_protected:Npn \__fdu_cover_type:
+ {
+ \tl_set:Nx \l__fdu_tmpa_tl
+ {
+ \clist_item:Nn \c__fdu_thesis_type_clist
+ { \g__fdu_thesis_type_int }
+ }
+ \__fdu_spread_box:nn { 0.45 \textwidth } { \l__fdu_tmpa_tl }
+ }
+\cs_new_protected:Npn \__fdu_cover_degree:
+ {
+ \int_compare:nNnT \g__fdu_thesis_type_int = \c_two
+ {
+ \tl_set:Nx \l__fdu_tmpa_tl
+ {
+ \clist_item:Nn \c__fdu_degree_type_clist
+ { \l__fdu_info_degree_type_int }
+ }
+ \c__fdu_fullwidth_left_paren_tl
+ \l__fdu_tmpa_tl
+ \c__fdu_fullwidth_right_paren_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_cover_info:
+ {
+ \begin{minipage} [ c ] { \textwidth }
+ \centering \zihao { 4 }
+ \clist_set:Nx \l__fdu_tmpa_clist
+ {
+ \c__fdu_name_department_tl,
+ \c__fdu_name_major_tl,
+ \c__fdu_name_author_tl,
+ \c__fdu_name_supervisor_tl,
+ \c__fdu_name_date_tl,
+ }
+ \clist_set:Nx \l__fdu_tmpb_clist
+ {
+ { \l__fdu_info_department_tl },
+ { \l__fdu_info_major_tl },
+ { \l__fdu_info_author_tl },
+ { \l__fdu_info_supervisor_tl },
+ { \l__fdu_info_date_tl }
+ }
+ \__fdu_get_max_text_width:NN \l__fdu_tmpb_dim \l__fdu_tmpb_clist
+ \bool_until_do:nn
+ { \clist_if_empty_p:N \l__fdu_tmpa_clist }
+ {
+ \clist_pop:NN \l__fdu_tmpa_clist \l__fdu_tmpa_tl
+ \clist_pop:NN \l__fdu_tmpb_clist \l__fdu_tmpb_tl
+ \__fdu_spread_box:nn { 6 em } { \l__fdu_tmpa_tl }
+ \c__fdu_fullwidth_colon_tl
+ \__fdu_center_box:Vn \l__fdu_tmpb_dim { \l__fdu_tmpb_tl }
+ \skip_vertical:n { 1 ex }
+ }
+ \end{minipage}
+ }
+\cs_new_protected:Npn \__fdu_cover_signature:N #1
+ {
+ \clist_map_inline:Nn #1
+ {
+ ##1 \c__fdu_fullwidth_colon_tl
+ \__fdu_blank_underline:n { 6 em }
+ \__fdu_quad:
+ }
+ }
+\DeclareObjectType { fdu / cover } { \c_zero }
+\NewDocumentCommand \DeclareCoverTemplate { m m }
+ { \fdu_cover_declare_template:nn {#1} {#2} }
+\cs_new_protected:Npn \fdu_cover_declare_template:nn #1#2
+ {
+ \tl_set:Nn \l__fdu_cover_template_tl {#1}
+ \__fdu_cover_declare_template_interface:nx {#1}
+ {
+ format : tokenlist,
+ top-skip : skip,
+ bottom-skip : skip,
+ \clist_map_function:nN {#2} \__fdu_cover_key_type:n
+ }
+ \tl_new:c { l__fdu_cover / #1 / format_tl }
+ \skip_new:c { l__fdu_cover / #1 / top_skip }
+ \skip_new:c { l__fdu_cover / #1 / bottom_skip }
+ \clist_map_inline:nn {#2}
+ {
+ \tl_new:c { l__fdu_cover / #1 / ##1 / content_tl }
+ \tl_new:c { l__fdu_cover / #1 / ##1 / format_tl }
+ \skip_new:c { l__fdu_cover / #1 / ##1 / bottom_skip }
+ }
+ \__fdu_cover_declare_template_code:nxn {#1}
+ {
+ format = \exp_not:c { l__fdu_cover / #1 / format_tl },
+ top-skip = \use:c { l__fdu_cover / #1 / top_skip },
+ bottom-skip = \use:c { l__fdu_cover / #1 / bottom_skip },
+ \clist_map_function:nN {#2} \__fdu_cover_key_binding:n
+ }
+ {
+ \AssignTemplateKeys
+ \tl_use:c { l__fdu_cover / #1 / format_tl }
+ \__fdu_vspace:c { l__fdu_cover / #1 / top_skip }
+ \clist_map_inline:nn {#2}
+ {
+ \use:c { __fdu_cover / #1 / ####1 / align:n }
+ {
+ \tl_use:c { l__fdu_cover / #1 / ####1 / format_tl }
+ \tl_use:c { l__fdu_cover / #1 / ####1 / content_tl }
+ \par
+ }
+ \__fdu_vspace:c { l__fdu_cover / #1 / ####1 / bottom_skip }
+ }
+ \__fdu_vspace:c { l__fdu_cover / #1 / bottom_skip }
+ }
+ }
+\tl_new:N \l__fdu_cover_template_tl
+\cs_new_protected:Npn \__fdu_cover_declare_template_interface:nn #1#2
+ { \DeclareTemplateInterface { fdu / cover } {#1} { \c_zero } {#2} }
+\cs_new_protected:Npn \__fdu_cover_declare_template_code:nnn #1#2#3
+ { \DeclareTemplateCode { fdu / cover } {#1} { \c_zero } {#2} {#3} }
+\cs_generate_variant:Nn \__fdu_cover_declare_template_interface:nn { nx }
+\cs_generate_variant:Nn \__fdu_cover_declare_template_code:nnn { nxn }
+\cs_new:Npn \__fdu_cover_key_type:n #1
+ {
+ #1 / content : tokenlist,
+ #1 / format : tokenlist,
+ #1 / bottom-skip : skip,
+ #1 / align : choice { left, right, center, normal } = normal,
+ }
+\cs_new:Npn \__fdu_cover_key_binding:n #1
+ {
+ #1 / content =
+ \exp_not:c
+ { l__fdu_cover / \l__fdu_cover_template_tl / #1 / content_tl },
+ #1 / format =
+ \exp_not:c
+ { l__fdu_cover / \l__fdu_cover_template_tl / #1 / format_tl },
+ #1 / bottom-skip =
+ \exp_not:c
+ { l__fdu_cover / \l__fdu_cover_template_tl / #1 / bottom_skip },
+ #1 / align =
+ {
+ left =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ {
+ \exp_not:n
+ {
+ \group_begin:
+ \flushleft ##1 \endflushleft
+ \group_end:
+ }
+ },
+ right =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ {
+ \exp_not:n
+ {
+ \group_begin:
+ \flushright ##1 \endflushright
+ \group_end:
+ }
+ },
+ center =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ {
+ \exp_not:n
+ {
+ \group_begin:
+ \center ##1 \endcenter
+ \group_end:
+ }
+ },
+ normal =
+ \exp_not:N \cs_set_protected:cpn
+ { __fdu_cover / \l__fdu_cover_template_tl / #1 / align:n }
+ \exp_not:n {##1}
+ { \exp_not:n { \group_begin: ##1 \group_end: } }
+ },
+ }
+\NewDocumentCommand \makecoveri { }
+ {
+ \thispagestyle { empty }
+ \UseInstance { fdu / cover } { cover-i-default }
+ }
+\NewDocumentCommand \makecoverii { }
+ {
+ \thispagestyle { empty }
+ \UseInstance { fdu / cover } { cover-ii-default }
+ }
+\NewDocumentCommand \makecoveriii { }
+ {
+ \cleardoublepage
+ \thispagestyle { empty }
+ \UseInstance { fdu / cover } { cover-iii-default }
+ }
+\DeclareCoverTemplate { cover-i }
+ { id, logo, type, degree, title, title-en, info }
+\DeclareCoverTemplate { cover-ii } { title, name-list }
+\DeclareCoverTemplate { cover-iii }
+ {
+ originality-decl-name,
+ originality-decl-text,
+ originality-decl-sig,
+ authorization-decl-name,
+ authorization-decl-text,
+ authorization-decl-sig
+ }
+\DeclareInstance { fdu / cover } { cover-i-default } { cover-i }
+ {
+ bottom-skip = 0 pt plus 1.5 fill,
+ id / content = \__fdu_cover_id:,
+ logo / content = \__fdu_cover_logo:,
+ type / content = \__fdu_cover_type:,
+ degree / content = \__fdu_cover_degree:,
+ title / content =
+ \__fdu_fixed_width_center_box:nn
+ { 0.9 \textwidth } { \l__fdu_info_title_tl },
+ title-en / content =
+ \__fdu_fixed_width_center_box:nn
+ { 0.9 \textwidth } { \l__fdu_info_title_en_tl },
+ info / content = \__fdu_cover_info:,
+ id / format = \zihao { -5 },
+ type / format = \zihao { 2 },
+ degree / format = \zihao { 4 },
+ title / format = \zihao { -2 } \sffamily,
+ title-en / format =
+ \__fdu_line_spread:n { 1.2 } \zihao { 4 } \bfseries,
+ id / bottom-skip = 0 pt plus 1.6 fill,
+ logo / bottom-skip = 0 pt plus 0.3 fill,
+ type / bottom-skip = -18 pt,
+ degree / bottom-skip = 0 pt plus 0.8 fill,
+ title-en / bottom-skip = 0 pt plus 2.5 fill,
+ id / align = right,
+ logo / align = center,
+ type / align = center,
+ degree / align = center,
+ title / align = center,
+ title-en / align = center,
+ info / align = center,
+ }
+\DeclareInstance { fdu / cover } { cover-ii-default } { cover-ii }
+ {
+ title / content =
+ \__fdu_spread_box:nn { 7 em } { \c__fdu_name_instructors_tl },
+ name-list / content =
+ \clist_use:Nn \l__fdu_info_instructors_clist { \par },
+ title / format = \zihao { 2 } \sffamily,
+ name-list / format = \large,
+ title / align = center,
+ name-list / align = center,
+ }
+\DeclareInstance { fdu / cover } { cover-iii-default } { cover-iii }
+ {
+ format =
+ \__fdu_line_spread:n { 1.8 },
+ top-skip = 0 pt plus 0.2 fill,
+ bottom-skip = 0 pt plus 2.5 fill,
+ originality-decl-name / content = \c__fdu_name_orig_decl_tl,
+ originality-decl-text / content = \c__fdu_orig_decl_text_tl,
+ originality-decl-sig / content =
+ \__fdu_cover_signature:N \c__fdu_orig_decl_sign_clist,
+ authorization-decl-name / content = \c__fdu_name_auth_decl_tl,
+ authorization-decl-text / content = \c__fdu_auth_decl_text_tl,
+ authorization-decl-sig / content =
+ \__fdu_cover_signature:N \c__fdu_auth_decl_sign_clist,
+ originality-decl-name / format =
+ \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily,
+ authorization-decl-name / format =
+ \__fdu_line_spread:n { 1.2 } \zihao { -2 } \sffamily,
+ originality-decl-name / bottom-skip = 0.4 cm,
+ originality-decl-text / bottom-skip = 0.4 cm,
+ originality-decl-sig / bottom-skip = 0 pt plus 2.5 fill,
+ authorization-decl-name / bottom-skip = 0.4 cm,
+ authorization-decl-text / bottom-skip = 0.4 cm,
+ originality-decl-name / align = center,
+ originality-decl-sig / align = right,
+ authorization-decl-name / align = center,
+ authorization-decl-sig / align = right,
+ }
+\bool_new:N \l__fdu_auto_make_cover_bool
+\keys_define:nn { fdu / style }
+ {
+ auto-make-cover .bool_set:N = \l__fdu_auto_make_cover_bool,
+ auto-make-cover .default:n = true
+ }
+\AtBeginDocument
+ {
+ \bool_if:NT \l__fdu_auto_make_cover_bool
+ {
+ \begin{titlepage}
+ \makecoveri \newpage \makecoverii
+ \end{titlepage}
+ }
+ }
+\AtEndDocument
+ { \bool_if:NT \l__fdu_auto_make_cover_bool { \makecoveriii } }
+\tl_const:Nn \__fdu_chapter_toc_format: { \normalfont \sffamily }
+\tl_const:Nn \__fdu_chapter_toc_en_format: { \bfseries }
+\keys_set:nn { ctex }
+ {
+ contentsname = \c__fdu_name_toc_tl,
+ chapter / tocline =
+ {
+ \__fdu_chapter_toc_format:
+ \CTEXnumberline {#1} #2
+ },
+ section / tocline =
+ {
+ \CTEXnumberline {#1} #2
+ },
+ subsection / tocline =
+ {
+ \fdu@kai
+ \CTEXnumberline {#1} #2
+ }
+ }
+\__fdu_patch_cmd:Nnn \tableofcontents
+ {
+ \chapter*{\contentsname
+ \@mkboth{%
+ \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
+ }
+ {
+ \chapter* { \contentsname }
+ \fdu_front_matter_header:n { \c__fdu_name_toc_tl }
+ }
+\NewDocumentEnvironment { abstract } { }
+ { \__fdu_abstract_begin: } { \__fdu_abstract_end: }
+\NewDocumentEnvironment { abstract* } { }
+ { \__fdu_abstract_en_begin: } { \__fdu_abstract_en_end: }
+\cs_new_protected:Npn \__fdu_abstract_begin:
+ {
+ \chapter* { \c__fdu_name_abstract_tl }
+ \fdu_front_matter_header:n { \c__fdu_name_abstract_tl }
+ \addcontentsline { toc } { chapter }
+ {
+ \__fdu_chapter_toc_format:
+ \c__fdu_name_abstract_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_abstract_en_begin:
+ {
+ \chapter* { \c__fdu_name_abstract_en_tl }
+ \fdu_front_matter_header:n { \c__fdu_name_abstract_en_tl }
+ \addcontentsline { toc } { chapter }
+ {
+ \__fdu_chapter_toc_format:
+ \c__fdu_name_abstract_en_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_abstract_end:
+ {
+ \__fdu_keywords_par:
+ \textsf { \c__fdu_name_keywords_tl \c__fdu_fullwidth_colon_tl }
+ \clist_use:Nn \l__fdu_info_keywords_clist
+ { \c__fdu_fullwidth_semicolon_tl }
+ \__fdu_clc_par:
+ \textsf { \c__fdu_name_clc_tl \c__fdu_fullwidth_colon_tl }
+ \l__fdu_info_clc_tl
+ }
+\cs_new_protected:Npn \__fdu_abstract_en_end:
+ {
+ \__fdu_keywords_par:
+ \textbf { \c__fdu_name_keywords_en_tl } \__fdu_quad:
+ \clist_use:Nn \l__fdu_info_keywords_en_clist { \__fdu_quad: }
+ \__fdu_clc_par:
+ \textbf { \c__fdu_name_clc_en_tl } \__fdu_quad:
+ \l__fdu_info_clc_tl
+ }
+\cs_new:Npn \__fdu_keywords_par:
+ {
+ \par \mode_leave_vertical: \par
+ \noindent \hangindent = 4 em \hangafter = 1
+ }
+\cs_new:Npn \__fdu_clc_par:
+ { \par \noindent }
+\NewDocumentEnvironment { notation } { O { l p { 7.5 cm } } }
+ {
+ \__fdu_notation_begin:
+ \group_begin:
+ \__fdu_notation_long_table_setup:
+ \longtable {#1}
+ }
+ {
+ \endlongtable
+ \group_end:
+ }
+\cs_new_protected:Npn \__fdu_notation_begin:
+ {
+ \chapter* { \c__fdu_name_notation_tl }
+ \fdu_front_matter_header:n { \c__fdu_name_notation_tl }
+ \addcontentsline { toc } { chapter }
+ {
+ \__fdu_chapter_toc_format:
+ \c__fdu_name_notation_tl
+ }
+ }
+\cs_new_protected:Npn \__fdu_notation_long_table_setup:
+ {
+ \dim_set_eq:NN \LTpre \c_zero_dim
+ \dim_set_eq:NN \LTpost \c_zero_dim
+ }
+\bool_new:N \l__fdu_bibtex_bool
+\tl_new:N \l__fdu_bib_style_tl
+\tl_new:N \l__fdu_bib_gb_style_tl
+\tl_new:N \l__fdu_cite_style_tl
+\tl_new:N \l__fdu_bib_resource_tl
+\keys_define:nn { fdu / style }
+ {
+ bib-backend .choice:,
+ bib-backend .value_required:n = true,
+ bib-backend / bibtex .code:n =
+ { \bool_set_true:N \l__fdu_bibtex_bool },
+ bib-backend / biblatex .code:n =
+ { \bool_set_false:N \l__fdu_bibtex_bool },
+ bib-style .choice:,
+ bib-style .value_required:n = true,
+ bib-style / numerical .code:n =
+ {
+ \tl_set:Nn \l__fdu_bib_gb_style_tl { numerical }
+ \tl_clear:N \l__fdu_bib_style_tl
+ },
+ bib-style / author-year .code:n =
+ {
+ \tl_set:Nn \l__fdu_bib_gb_style_tl { author-year }
+ \tl_clear:N \l__fdu_bib_style_tl
+ },
+ bib-style / unknown .code:n =
+ { \tl_set_eq:NN \l__fdu_bib_style_tl \l_keys_value_tl },
+ cite-style .code:n =
+ {
+ \bool_if:NTF \l__fdu_bibtex_bool
+ { \__fdu_warning:n { cite-style-not-available } }
+ { \tl_set:Nn \l__fdu_cite_style_tl {#1} }
+ },
+ bib-resource .tl_set:N = \l__fdu_bib_resource_tl
+ }
+\__fdu_msg_new:nn { cite-style-not-available }
+ { Option~ "cite-style"~ is~ not~ available~ in~ BibTeX. }
+\ctex_at_end_preamble:n
+ {
+ \bool_if:NTF \l__fdu_bibtex_bool
+ {
+ \RequirePackage [ sort & compress ] { natbib }
+ \__fdu_bibtex_setup:
+ \NewDocumentCommand \printbibliography { o }
+ {
+ \exp_args:NV \bibliography \l__fdu_bib_resource_tl
+ \IfValueT {#1}
+ { \__fdu_warning:nn { invalid-option-in-bibtex } {#1} }
+ }
+ }
+ {
+ \__fdu_biblatex_setup:
+ \RequirePackage [ backend = biber, hyperref = manual, natbib ]
+ { biblatex }
+ \exp_args:NV \addbibresource \l__fdu_bib_resource_tl
+ \__fdu_biblatex_allow_url_break:
+ }
+ }
+\__fdu_msg_new:nn { invalid-option-in-bibtex }
+ { Option(s)~ "#1"~ are~ invalid~ in~ BibTeX. }
+\cs_new:Npn \__fdu_bibtex_setup:
+ {
+ \tl_if_empty:NTF \l__fdu_bib_style_tl
+ {
+ \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical }
+ {
+ \bibliographystyle { gbt7714-unsrt }
+ \__fdu_set_cite_style_numerical:
+ }
+ {
+ \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year }
+ {
+ \bibliographystyle { gbt7714-plain }
+ \__fdu_set_cite_style_author_year:
+ \cs_set_eq:NN \cite \citep
+ }
+ }
+ }
+ { \exp_args:NV \bibliographystyle \l__fdu_bib_style_tl }
+ }
+\cs_new:Npn \__fdu_biblatex_setup:
+ {
+ \tl_if_empty:NTF \l__fdu_bib_style_tl
+ {
+ \tl_if_eq:VnTF \l__fdu_bib_gb_style_tl { numerical }
+ { \PassOptionsToPackage { style = gb7714-2015 } }
+ {
+ \tl_if_eq:VnT \l__fdu_bib_gb_style_tl { author-year }
+ { \PassOptionsToPackage { style = gb7714-2015ay } }
+ }
+ }
+ { \PassOptionsToPackage { style = \l__fdu_bib_style_tl } }
+ { biblatex }
+ \tl_if_empty:NF \l__fdu_cite_style_tl
+ {
+ \PassOptionsToPackage { citestyle = \l__fdu_bib_style_tl }
+ { biblatex }
+ }
+ }
+\cs_new:Npn \__fdu_biblatex_allow_url_break:
+ {
+ \int_set_eq:NN \c@biburlucpenalty \c_one
+ \int_set_eq:NN \c@biburlnumpenalty \c_one
+ \int_set_eq:NN \c@biburllcpenalty \c_one
+ }
+\cs_new:Npn \__fdu_set_cite_style_numerical:
+ {
+ \NAT@numberstrue \NAT@supertrue
+ \cs_set:Npn \NAT@open { [ }
+ \cs_set:Npn \NAT@close { ] }
+ \cs_set:Npn \NAT@sep { ,~ }
+ }
+\cs_new:Npn \__fdu_set_cite_style_author_year:
+ {
+ \NAT@numbersfalse
+ \cs_set_eq:NN \NAT@open \c__fdu_fullwidth_left_paren_tl
+ \cs_set_eq:NN \NAT@close \c__fdu_fullwidth_right_paren_tl
+ \cs_set_eq:NN \NAT@sep \c__fdu_fullwidth_semicolon_tl
+ \cs_set_eq:NN \NAT@aysep \c__fdu_fullwidth_comma_tl
+ \cs_set_eq:NN \NAT@yrsep \c__fdu_ideographic_comma_tl
+ }
+\cs_set:Npn \bibsection
+ {
+ \chapter* { \bibname }
+ \fdu_front_matter_header:n { \bibname }
+ \addcontentsline { toc } { chapter }
+ { \__fdu_chapter_toc_format: \bibname }
+ }
+\NewDocumentCommand \hypersetup { m }
+ { \fdu_hyperref_setup:n {#1} }
+\cs_new_protected:Npn \fdu_hyperref_setup:n #1
+ { \clist_gput_right:Nn \g__fdu_to_hyperref_clist {#1} }
+\cs_new:Npn \__fdu_set_hyperlink_color_key:n #1
+ {
+ hyperlink-color / \clist_item:nn {#1} {1} .code:n =
+ {
+ \__fdu_define_hyperlink_color:nnn
+ { \clist_item:nn {#1} {2} }
+ { \clist_item:nn {#1} {3} }
+ { \clist_item:nn {#1} {4} }
+ \fdu_hyperref_setup:n
+ {
+ linkcolor = fdu@link, linkbordercolor = fdu@link,
+ urlcolor = fdu@url, urlbordercolor = fdu@url,
+ citecolor = fdu@cite, citebordercolor = fdu@cite
+ }
+ },
+ }
+\cs_new_protected:Npn \__fdu_define_hyperlink_color:nnn #1#2#3
+ {
+ \definecolorset { HTML } { fdu@ } { }
+ { link, #1; url, #2; cite, #3 }
+ }
+\keys_define:nx { fdu / style }
+ {
+ hyperlink .choice:,
+ hyperlink .value_required:n = true,
+ hyperlink / border .code:n = { },
+ hyperlink / color .code:n =
+ { \fdu_hyperref_setup:n { colorlinks = true } },
+ hyperlink / none .code:n =
+ { \fdu_hyperref_setup:n { hidelinks = true } },
+ hyperlink-color .choice:,
+ hyperlink-color .value_required:n = true,
+ \clist_map_function:nN
+ {
+ { autumn, D70000, D75F00, AF8700 },
+ { business, D14542, 295497, 1F6E43 },
+ { classic, FF0000, 0000FF, 00FF00 },
+ { default, 990000, 0000B2, 007F00 },
+ { elegant, 961212, C31818, 9B764F },
+ { fantasy, FF4A19, FF3F94, 934BA1 },
+ { material, E91E63, 009688, 4CAF50 },
+ { science, CA0619, 389F9D, FF8920 },
+ { summer, 00AFAF, 5F5FAF, 5F8700 },
+ { graylevel, 616161, 616161, 616161 },
+ { prl, 2D3092, 2D3092, 2D3092 }
+ }
+ \__fdu_set_hyperlink_color_key:n
+ }
+\cs_new:Npn \fdu_allow_url_break:
+ {
+ \cs_new:Npn \__fdu_add_url_break_points:
+ { \tl_map_function:NN \c__fdu_url_break_points_tl \do }
+ \__fdu_appto_cmd:Nn \UrlBreaks
+ { \UrlOrds \__fdu_add_url_break_points: }
+ }
+\tl_const:Nn \c__fdu_url_break_points_tl
+ {
+ abcdefghijklmnopqrstuvwxyz
+ ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ 0123456789
+ }
+\ctex_at_end_preamble:n
+ {
+ \RequirePackage { hyperref }
+ \hypersetup
+ {
+ bookmarksnumbered = true,
+ pdftitle = \l__fdu_info_title_tl,
+ pdfauthor = \l__fdu_info_author_tl,
+ pdfkeywords = \l__fdu_info_keywords_clist,
+ pdfcreator = \c__fdu_name_pdf_creator_tl
+ }
+ \exp_args:NV \hypersetup \g__fdu_to_hyperref_clist
+ \fdu_allow_url_break:
+ \bool_if:NF \l__fdu_bibtex_bool { \BiblatexManualHyperrefOn }
+ }
+\ctex_at_end_package:nn { hyperref }
+ {
+ \pdfstringdefDisableCommands
+ {
+ \cs_set_eq:NN \fdu@kai \prg_do_nothing:
+ \cs_set_eq:NN \quad \c_space_tl
+ \cs_set_eq:NN \qquad \c_space_tl
+ }
+ }
+\keys_define:nn { fdu }
+ {
+ info .meta:nn = { fdu / info } {#1},
+ style .meta:nn = { fdu / style } {#1}
+ }
+\keys_set:nn { fdu }
+ {
+ style / font = times,
+ style / cjk-font = fandol,
+ style / font-size = -4,
+ style / fullwidth-stop = false,
+ style / auto-make-cover = true,
+ style / logo = { fudan-name.pdf },
+ style / logo-size = { 0.5 \textwidth },
+ style / hyperlink = color,
+ style / hyperlink-color = default,
+ style / bib-style = numerical,
+ info / degree = academic,
+ info / secret-level = none,
+ info / school-id = { 10246 },
+ info / date = { \zhtoday },
+ theorem / header-font = { \sffamily },
+ theorem / body-font = { \fdu@kai },
+ theorem / counter = { chapter }
+ }
+\NewDocumentCommand \fdusetup { m }
+ { \keys_set:nn { fdu } {#1} }
+\newtheorem* { proof } { \c__fdu_name_proof_tl }
+\newtheorem { axiom } { \c__fdu_name_axiom_tl }
+\newtheorem { corollary } { \c__fdu_name_corollary_tl }
+\newtheorem { definition } { \c__fdu_name_definition_tl }
+\newtheorem { example } { \c__fdu_name_example_tl }
+\newtheorem { lemma } { \c__fdu_name_lemma_tl }
+\newtheorem { theorem } { \c__fdu_name_theorem_tl }
+\endinput
+%%
+%% End of file `fduthesis.cls'.
diff --git a/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def
new file mode 100644
index 00000000000..1835db36c6d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fduthesis/fduthesis.def
@@ -0,0 +1,132 @@
+%%
+%% This is file `fduthesis.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fduthesis.dtx (with options: `definition')
+%%
+%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c 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 Xiangdong Zeng.
+%%
+%% This work consists of the files fduthesis.dtx,
+%% fduthesis-doc.dtx,
+%% fduthesis-logo.dtx,
+%% fduthesis-template.tex,
+%% and the derived files fduthesis.ins,
+%% fduthesis.cls,
+%% fduthesis-en.cls,
+%% fduthesis.def,
+%% fdudoc.cls,
+%% fdulogo.sty,
+%% fdulogo-example.tex,
+%% fduthesis-cover.tex,
+%% fduthesis-en.tex,
+%% fduthesis.pdf,
+%% fduthesis-en.pdf,
+%% fduthesis-code.pdf,
+%% latexmkrc,
+%% latexmkrc-en,
+%% and README.md.
+%%
+\GetIdInfo $Id: fduthesis.dtx 0.7a 2018-04-09 12:00:00Z Xiangdong Zeng <xdzeng96@gmail.com> $
+ {Definition file for fduthesis}
+\ProvidesExplFile{\ExplFileName.def}
+ {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+\tl_const:Nn \c__fdu_name_simp_tl { 复旦大学 }
+\tl_const:Nn \c__fdu_name_trad_tl { 復旦大學 }
+\tl_const:Nn \c__fdu_name_en_tl { Fudan~ University }
+\clist_map_inline:nn
+ {
+ { ideographic_comma } { "3001 },
+ { ideographic_full_stop } { "3002 },
+ { fullwidth_comma } { "FF0C },
+ { fullwidth_full_stop } { "FF0E },
+ { fullwidth_colon } { "FF1A },
+ { fullwidth_semicolon } { "FF1B },
+ { fullwidth_left_paren } { "FF08 },
+ { fullwidth_right_paren } { "FF09 }
+ }
+ { \__fdu_define_punct:nn #1 }
+\fp_const:Nn \c__fdu_line_spread_fp
+ { \dim_ratio:nn { 20 pt } { 12 bp } / 1.2 }
+\tl_const:Nn \c__fdu_orig_decl_text_tl
+ {
+ 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究
+ 工作所取得的成果。论文中除特别标注的内容外,不包含任何其他个人或机
+ 构已经发表或撰写过的研究成果。对本研究做出重要贡献的个人和集体,均
+ 已在论文中作了明确的声明并表示了谢意。本声明的法律结果由本人承担。
+ }
+\tl_const:Nn \c__fdu_auth_decl_text_tl
+ {
+ 本人完全了解复旦大学有关收藏和利用博士、硕士学位论文的规定,即:学
+ 校有权收藏、使用并向国家有关部门或机构送交论文的印刷本和电子版本;
+ 允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影
+ 印、缩印或其它复制手段保存论文。涉密学位论文在解密后遵守此规定。
+ }
+\clist_const:Nn \c__fdu_orig_decl_sign_clist
+ { 作者签名, 日期 }
+\clist_const:Nn \c__fdu_auth_decl_sign_clist
+ { 作者签名, 导师签名, 日期 }
+\clist_const:Nn \c__fdu_thesis_type_clist
+ { 博士学位论文, 硕士学位论文, 本科毕业论文 }
+\clist_const:Nn \c__fdu_degree_type_clist
+ { 学术学位, 专业学位 }
+\clist_const:Nn \c__fdu_secret_clist { 秘密, 机密, 绝密 }
+\clist_map_inline:nn
+ {
+ { secret_level } { 密 \qquad 级 },
+ { secret_star } { \textrm { \bigstar } },
+ { school_id } { 学校代码 },
+ { student_id } { 学 \qquad 号 },
+ { department } { 院系 },
+ { major } { 专业 },
+ { author } { 姓名 },
+ { supervisor } { 指导教师 },
+ { date } { 完成日期 },
+ { instructors } { 指导小组成员 },
+ { author_sign } { 作者签名 },
+ { supervisor_sign } { 导师签名 },
+ { sign_date } { 日期 },
+ { bib_en } { Bibliography },
+ { pdf_creator } { LaTeX~ with~ fduthesis~ class },
+ { orig_decl } { \c__fdu_name_simp_tl \\ 学位论文独创性声明 },
+ { auth_decl } { \c__fdu_name_simp_tl \\ 学位论文使用授权声明 }
+ }
+ { \__fdu_define_name:nn #1 }
+\clist_map_inline:nn
+ {
+ { abstract } { 摘 \quad 要 } { Abstract },
+ { keywords } { 关键字 } { Keywords: },
+ { clc } { 中图分类号 } { CLC~ number: },
+ { toc } { 目 \quad 录 } { Contents },
+ { notation } { 符号表 } { List~ of~ Symbols }
+ }
+ { \__fdu_define_name:nnn #1 }
+\clist_map_inline:nn
+ {
+ { proof } { 证明 } { Proof },
+ { axiom } { 公理 } { Axiom },
+ { corollary } { 推论 } { Corollary },
+ { definition } { 定义 } { Definition },
+ { example } { 例 } { Example },
+ { lemma } { 引理 } { Lemma },
+ { theorem } { 定理 } { Theorem }
+ }
+ { \__fdu_define_name:nnn #1 }
+\endinput
+%%
+%% End of file `fduthesis.def'.