From 156d757bd840cfb706662c18775315b602d27775 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Tue, 25 Jan 2011 14:32:06 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20Documentation=20Fran=C3=A7ais?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr/Makefile | 130 +++ docs/fr/_build/doctrees/basis.doctree | Bin 0 -> 10446 bytes docs/fr/_build/doctrees/environment.pickle | Bin 0 -> 22018 bytes docs/fr/_build/doctrees/faq.doctree | Bin 0 -> 11188 bytes .../_build/doctrees/getting_started.doctree | Bin 0 -> 10950 bytes docs/fr/_build/doctrees/index.doctree | Bin 0 -> 13144 bytes docs/fr/_build/doctrees/install.doctree | Bin 0 -> 10934 bytes docs/fr/_build/doctrees/internals.doctree | Bin 0 -> 19934 bytes docs/fr/_build/doctrees/settings.doctree | Bin 0 -> 41041 bytes docs/fr/_build/doctrees/themes.doctree | Bin 0 -> 29358 bytes docs/fr/_build/html/.buildinfo | 4 + docs/fr/_build/latex/Makefile | 58 ++ docs/fr/_build/latex/Raclette.tex | 829 ++++++++++++++++++ docs/fr/_build/latex/fncychap.sty | 683 +++++++++++++++ docs/fr/_build/latex/howto.cls | 70 ++ docs/fr/_build/latex/manual.cls | 108 +++ docs/fr/_build/latex/python.ist | 11 + docs/fr/_build/latex/sphinx.sty | 744 ++++++++++++++++ docs/fr/_build/latex/tabulary.sty | 452 ++++++++++ docs/fr/basis.rst | 58 ++ docs/fr/conf.py | 152 ++++ docs/fr/faq.rst | 38 + docs/fr/index.rst | 54 ++ docs/fr/index.rst.save | 53 ++ docs/fr/install.rst | 67 ++ docs/fr/internals.rst | 81 ++ docs/fr/settings.rst | 111 +++ docs/fr/themes.rst | 106 +++ 28 files changed, 3809 insertions(+) create mode 100644 docs/fr/Makefile create mode 100644 docs/fr/_build/doctrees/basis.doctree create mode 100644 docs/fr/_build/doctrees/environment.pickle create mode 100644 docs/fr/_build/doctrees/faq.doctree create mode 100644 docs/fr/_build/doctrees/getting_started.doctree create mode 100644 docs/fr/_build/doctrees/index.doctree create mode 100644 docs/fr/_build/doctrees/install.doctree create mode 100644 docs/fr/_build/doctrees/internals.doctree create mode 100644 docs/fr/_build/doctrees/settings.doctree create mode 100644 docs/fr/_build/doctrees/themes.doctree create mode 100644 docs/fr/_build/html/.buildinfo create mode 100644 docs/fr/_build/latex/Makefile create mode 100644 docs/fr/_build/latex/Raclette.tex create mode 100644 docs/fr/_build/latex/fncychap.sty create mode 100644 docs/fr/_build/latex/howto.cls create mode 100644 docs/fr/_build/latex/manual.cls create mode 100644 docs/fr/_build/latex/python.ist create mode 100644 docs/fr/_build/latex/sphinx.sty create mode 100644 docs/fr/_build/latex/tabulary.sty create mode 100644 docs/fr/basis.rst create mode 100644 docs/fr/conf.py create mode 100644 docs/fr/faq.rst create mode 100644 docs/fr/index.rst create mode 100644 docs/fr/index.rst.save create mode 100644 docs/fr/install.rst create mode 100644 docs/fr/internals.rst create mode 100644 docs/fr/settings.rst create mode 100644 docs/fr/themes.rst diff --git a/docs/fr/Makefile b/docs/fr/Makefile new file mode 100644 index 00000000..bf49b542 --- /dev/null +++ b/docs/fr/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Raclette.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Raclette.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/Raclette" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Raclette" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/fr/_build/doctrees/basis.doctree b/docs/fr/_build/doctrees/basis.doctree new file mode 100644 index 0000000000000000000000000000000000000000..80bef55de4542800fb766e386cb5931eb481b0af GIT binary patch literal 10446 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 literal 0 HcmV?d00001 diff --git a/docs/fr/_build/doctrees/environment.pickle b/docs/fr/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..8561eea0ed027543a6dc026c94933291471f93d8 GIT binary patch literal 22018 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 literal 0 HcmV?d00001 diff --git a/docs/fr/_build/doctrees/index.doctree b/docs/fr/_build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7d258321cb20d2c6e54a6d4f2f95b600000570f4 GIT binary patch literal 13144 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 H>}mTq^BPQP literal 0 HcmV?d00001 diff --git a/docs/fr/_build/doctrees/install.doctree b/docs/fr/_build/doctrees/install.doctree new file mode 100644 index 0000000000000000000000000000000000000000..433be37db97d885eb5cd381b79de179d224e7129 GIT binary patch literal 10934 zcmeHNd3+sJ+3uDmxlPh7EtFCiTH1z^+?28iL9CI@S_l;wjA*#by?2tC+qrk{d1od~ zDx*|Hsk^u!u80dQiYTt&Zd`Cz6jv0*U2(&GL!al&%*{IQaT zOkHDC{76*W&~Ofg;j*Ik87=^eEY7b@2AN zPPfDQRk1om*QejBV|8fuJrX-JhoXc2QRz=X&Px!g!!O^Xj948}G+RS!j9OP~&DJ0hMy)e* zRv3y~j6xuHWUSWrm~G{#&US&?Frqe^ttHP2pj*{5qK-1#idJbSL=M!Z5p}dV-z^8K zcSQA>8=5uSXNP^%Y@gLfbLcDEeVJnOmf4bw-an!?J2@*d7kF;XR>y3ghpAIjRa+c< zl^oYA16y_Mh&t{*DupR{fa!R^eL}1r0eH2AZEG^(16kOP)WS}LYF0aI9K%^_w&=0c zNe&Pg=y4$T$qvMQqyr&OaUkEL9B{iea=@em)*LYO=-J9U-=2Vr4L&F)9s}*18mrU5 zyhDagh>BKJ)FyO#tj@?xCgsyvM+VQ-3_g|&ZX<(_BZJ$`j%Ed@vn+CawzJS8(=8d( zLp=`hIww{;h!>r{887vC@NjwpilfmuS5I~xCp({$nVjqbj{Srg0}nfc_Z{ttknX}* zJ&DqBS9;jseNJ_b`Tm2MjkpdG`gYXik(Af>D6Uc6rxo! zg>H;c6i)5;ruLT{OU9Ze;wWe8kd`;Lm0Y9dM}dK$N!G@FL_`l^kPPP<3?r(EUz*xq zwk59$(+HdG4bj!b)U2h!E)wh#!7dYQn_!O;?AA<+V*vYqDLf8L#*I~lCPS!3rX6Bu ztUMH(bDSj3W_GHbqN<^*%~&*ii%8aqq#}}HwnBS-Tu%b+9wAZf$WV+JW!ZjB;euEiBTZQJ=&LU89tFqaL|IW1QU$ zXBik!mp4hIZSR>{qGwT}D=5)kO7v_>^c+gmm7(-pNOaM^okjIL0QLM>y?}`P4@~z$ zz;W3DqZ2}fEtXd(VyWGkQ!j$1u8h@-$=4RZu+FgRVc!^VPu10ge{LPMHC>S|JTIAs z-t3$)ym~34z{`-6OjNyrpl%^2xyo!q7z=C}x7Ew3ldGwnS8$DbC6)Cms_4~J(UMF> zuYrmlB5$t+?AOHVbr27J*6m!WF|pGn>DpMmKB+l?2fjfY&>LsxeQ(lEcpaJENA~xd zIXYpQ6<)9X@Xcg@MaKSH5Xn8x9_H%xouEwOqZXTRzGP2H{;%-8IiRSOaI4Q6e6kx4l1 zO_zp9xHQam(;NWkEBRP->hyKNLKD@e_S2)efFubb7n00r^TrN3vtDk}<%HuR;pUo_ z8lO%I4Y>FFn^4m3{Q-^A2Z_>$h|-6N(npBWM~Tuw8TeB`>Bj#&nbpUj%8$qD6V%y% zBLAO+!fr{-k0IvPSbd73>^fkG$!sTgBzIRv3CV|TIAK^12KxI^g8f#$Ej@R$tAkXC&BP)4uX`O7;y3 z`c3-Ex6DKJR=6+O3HJe7ZiM^Njj*~yN3w4_tvca8Im6*QNie%JR^O#Q4d`?5zuQrN z55V8v9OCZM41J#r{eTSpkPQ8Zp#PYlHzxZDKz~3p{1oW?ELJ}UOAcqdb2{+d9jjlE z(|hJ3{n2U0xQ&jF6$8FEA*KM9x^cw!u%{m-b{jxiXa{+F^F_DNnj(UUp(%rdH z1WzcX$}UD=F(_V7Cb6SM3ZEQGjQX{*W}|5`uFc#RL~x$07(=5odKuQZT|!l^7J+l| z$z9f{%sD(}TRakJ%EhY4#B|IqMq_zn2yxkuik=JnfP-B_Kcr_?kV8){7zpDPBo5>u zl&O7zQL)JjPepJ7f;MFU$ceGpkHiIAdE-1cozSgfSgWz)2z~D00j|{ajt85O1lGXN z`yBw4!rp5HZVhmQp^}4A%|EwK%ox=#n`}=n9KX`G_iNhTZ)kh>(Dr^y+xs1D@085Y ze-GRHf1CL~X)}L7H2Gt!{={fP`?2EZpzndNU=rBDh zQupdO`VXf~$5A6SFPVdIq(iC9#ak@%^!IXo^mumj(WA^q4VYNf6hLKxZoOedT3FdL zA`3}3jYunL?})UK_K!$AD9yStZ;lm%2bg9NDlXq69U!rE;tA<1$=nsPm_*c-Txq0B zH(H!DYV2P#4!M7oCAtzEF2#$ZlV(}QS1`Gp6ijx5^2BY6tiT&_l9hNNzr7hw2caOr z>0rFYvPyr?&Z6ZI6g%A&GS-aKYTX)K9Lfsdw1yNc97YNj4kyLD2I!1=k6^{@1Y6dk z6drwa& zA~ug1T`t~8Ng@!PHHW_M>2*I%rE6IEX}nnLvuqk`cMd0#SlC^tBiX013G$yHa>tPw z*x0wpW5CD(Z1_~oAHY40^#J#DQhYzyx%$ z9VC{s@T5OHyeyqfT)Hb%|FmxnX$H?p8C(aKa(@Tzp7qYr8W3`BaWXUPvEtazWo^gOGHp;Ll zuWVjyMs+*PKgLRc;gDi-mlTs%NCD1H&>1s&teA1IDpeE#fEq|FKAr%elFV8mThkt2 z*G*K?WcUOq`CJ!AIY_gMq}VstJy%6j`;(Iy?DM#pm`Z+Z>hm3L9N?>hA(~{;i%p=1 zg-jtUAyY&OnZ`*W(=JlTGyzJP)@LYAvSM)f*oVfC>_&IU{}hl|F2R#7_D~0l$xC;I zNKHG(Q}xhKONSl+pa12;Ly)o~(Z0T@jz2trIQ0@z`-8{c{yHUxf;(z3h?#{{Q=%y$wrvyRixnN z)uiC=HKdsMwV)BKdntZ($~7z;9Nq+-pBBM8uo1Tnmwr;h@l(hjWTC;Ix&y}A^dH6A zyu1#*faSFyvAiD73`_C_ESYH+y4Kv+00Z$)J6ct_J(p;U$B1AKnva z_v4MiTn}1Vfrr(A_RXx)(7uIlknjf36xz4qb$f3L?Tz@TWS}bJ2ML47-3Vz~*= z2B`1QAK>bpYy?o>MG8LNO$t!oLy9Ti3kpyxl$E&NOqwK^4+z)fXb;fdf{uXpeIT*C zAI}V0a@P#4ZFZF+q%F0ukQ^z?2hd{3#6bZLpLH4{AJiqw@C(!*_5HBshjsz?KqQn8 zp=SGBvz4mFkAC?uzGL|ao;}V&=Pakyxx;C5?seLSoSc()a7lwweH8W1YK!TXxhNDI zmW=vRMe;O-iXpSJF$u2`$j9`UAIH;dLxH{;AfM2MpJd^ZV6s~Dy+YP2kXunaBA;UA z(iu$a@jk6Px@oIv65yeC1vW6_# zHIhKSq`TdQC%Lctg5+AhtedyFkoD#WqAm2sZkl7)lC3L`Tn@BwQ9?Hzs zJa@*iv(AC@t{sl%eHrU_!m8IVcdPa$ zm!ILA0%#=_lA!!^l;PG%2SmliqFUk(ck6~Z$MV9o*)P~^f!Uezmt2RDU$UKZ(vW#5 zRPIXwK;e|KHdaVJ9jjLM@cJt>GnY_+03997?*R?@HH%xyHckrVHyp`aVpoecO=c25 zfE?QnH~w!q&_c3S3gvhF=;Y-d99tG9=y&paltHVD%TcvnXqa#y ze?U3B5jSq!+Nhs4{$tX(YnO#{M96}1ZL2DO(rs5zZKJNIwO_z>Du@Dm|1&D_lhUsD zt>1iHS^mP$rS^o2kOS|Ef)vHSa_AOwAvWxz?wI^d52mJ8tvd|a#yDnXUKN{A~ zf{kNkuV9sN1&9}rVXlFw)kZj&Hlu?6Un>7VqrK*QyEZO!=25~#@OofJWk^}| zWUek=Vo%h47_tjbk(%WNGEbK;BYL=Lrf&qLsLV&rUUN|rK?`&iS)dzt(I1)&xkZ;Q zo~1Eah+?xP3P<}+lvcjy(xK=@ZOKS(ty#&^&SvepOJ4xEa{OLgD7%4GgaT3!7wNw3 zh&1>QIqFVG2b=!Y?UaXwXrmY>(qlRz2vK z6>N3rOweX|-bys7XpiV(gN7YA-?hi{ltxR>VJIXss-3PzhgLge!-QvcruD0FltkOx4KIPMyCi3k7 z_gL<5Zja1mGj3BR%kDZo(vf%~H`~HocD)`Ism%r!B9+-liqxhDw2@pL#X_B2ZQ>g; ioufe`vprj60_jBoj@a-t7t&ObP2}+rOFvr{^Zx`cqBcYT literal 0 HcmV?d00001 diff --git a/docs/fr/_build/doctrees/internals.doctree b/docs/fr/_build/doctrees/internals.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6c8143cbf1717d7063f88039541159cfbaa3fe7b GIT binary patch literal 19934 zcmeHP349!N^)Ee>ZIj;RN?>S#ZXit%L9tMqV!4EdN;|L!aWmPSWH#B|*?BYDG~g(x zoZdHH;C(CJiZ>o8;Dv$*DBgGr-s1iJzTeDdleGUoAInE-C7*oe?flO7zVH3syx%c% z$?QVWFVv$_Iqa$WMK{dww>!Ot4?qrNQhtn3J_zt4_s@CTeaN%#DM2+1%1uvu4%Y za;e}{tx`2|rRtQ!V19pYH8MPZ+=_gwRH>C+wq!Y0)g8A++^Q>1ydgKrLepK}%Hy=ihM8T3X z_p=vJ_EIqnmd3%dtT*3Ynh3sbQt;*80^5Sv>mq+$L+o|VI*7flA$G9BYq2|bQ_6@O ztn^y#rHQ!fCdFMNX2)a5V z4vx&)Eya3`<-%a?K#;W;6v|E*;;w5TILdAratdQYZ67@lblY>Nnsoy~kGI^h=b2i) z1Hm!ge5Y>DEtjfp@Q5>KqshdqgJZqf9w2;VcDnE|r82}m4hS9}2an2n9cp}AXPEh; zy-x2S?-1`WZ;d@qYXv8G;QTRJ5B#q8z~+e_m^;Y>UmHAd^VqrvCcLEUjnjMH?(W2J z>)TCtn}FZRaqu`WqAa`XnGq^uLH%@yiBke5}XnTr&5B;pu+85DYO#2Ee!Dj z&~|CAR$~Z<*0?WYrRqpyG?yoOtWBXc;n&x4ZTq{&7@3x>djP9XQ zWckBZ3bC37?%c4tHnP0BMArJQ;It;xS{vL3rxUp|6uHL}xig8}SwwCNk?SXNb5rEb z_WJfBiMB#9Pl$tas2ECjiYmtA5Zo3A+mUR~niSeQoRZoq>A95jJW86Qr0099918nH zuhpTvEvdX0WIdYWg>f)IWzy@OJ;N7134Lrc=IE&%=CzMO_TjLPA@)&V2gNC^yFhc- zO%6k{kvQ-u8JoY*NJhgd#la|fxgETm=Q)uzm>AKZY8+M)T9Kos+)6i}6d_zpCiGz^up+-6)#_1?Wrub6{0S8BTuU3U;K3|$8*Z^^ zMHo2RYQ>SUqCZ|W1-mosiSY60r%yO*gfk$VnN(Sl1)lR#Sb`83MsZLlSd*zc(0Xa+=v6P0hgWmqqzmvu z*x>$L7GI@&0(^JUPQ_0gMb@o6HcPZFefU1dpf~SF@r^mrF z(4^YsPAC-~Z1J?dgUjkesCg4=?jst#9D-jF2UilyeMqdUj48QL7YF9maqvt^cp?;c z#@Ze5(JsAg8y-Ox|DP+GU4qld; zb>a%`g-xY`mvhj(B5Th#iNPy#`vIn-D9NiR)3tnZUq=yNO~GD6!Iq?gy>>>Zz@GDX z4puV3>(Kq{Bx+RvO*GZfqvyhxoFV|z8 zf#+QLVg(MOFTHX^|=LuXm=D;2+5 zp0MhnTQr{39~wohNRL=R%t`B@=8bO#4^^wiSPM4eD@%>&HSEa*Z-hp!NdlkN1_r^K z2=1HJO5Q>U-%3Q^Mr_|sFy8?%`%^66skVB39K4Hw-MLQ#7Q7pHy*_y|>!aj73etNC z()$R~`w7wq2+{|Q#ldZVDC^Pr-w+2MCPeD|Q=1AtLa0Bgt$d8Fe4MR(f~|a#t=vfG ze?6W5rxNF%)C@k2f%Ta<_-r~#Zcyj%8DD=J)UeN)Yj6`p{#+bBv3598^6Q~B>S*BL=zSb!rM@nyntqe55uJVJ|+l|6m?ma`HT-C|cJ_`;+Q^3?HsQAfj9b~)crc)m$^zD0QMBs_N!o^R9T ztfaH}j&V76$H8|Aj=G%Gc!KZI<$PaT`2kz`AzS$oTlq0txrZ+2cDC}9#N{M4gP&sj z{VWcCjwUtUyt~=u+?u+aeZww;UqIMj#=)uc_fFZsy)NxQ~+F$6+)XA`GT$ zd<;k2rbyFF!@?fxRJf2*6^m;cbEL};2vb}{Jf+CX3~rLBRKRTUv~;x)ffQn$!L3-! zn@qzrvkGVCqZ>i9>Txm-;+^VnX{4TnK#A|+RIlh;Ag!e6CPRvD7J|};-Op|oF|jX~L93HyEp14> z>{4k5iDfaaiAx(LFU?-Fd)p7723zjq>tr9 zbLI$?RjdS1_t$a&^#CRS)B{NY>OrIc^{y&6Z>*)Xn0Dy(u)j8b__@?kH9sRj2tyfb`h#RbPi39HGDo& z`8>|>nR|$NIv#8o9Zm+f@+jr-(FupwQIn0eM{Ga&oaKhrAVShw8NNOo?B*1itJaq5 zgcFQ@bvmSreOxSr+poAi)^<$2!-;C->|`iAI9jTXI>(|io;!GiNFC3J3TDWNYp@>K zXsYZwQq>-czOHk-VJSklcno2!-LDpVGID|uBbhU6yef}T{$XY7nF%X9krY;T5-F@~ z11YTRv7k-Q5823ctn^49e#Ei~S3XFt-Rp6XlgWAKDD~Im{pE2g0g%|t3?Oj|DUdjo z6iA##3M5Vk<&)qLy67`-W1a+$$FEq<)ca|xq;eKgIi|O0F8b(a0{S?c6n$(ZMITQf zMIYyYVoZ+`Tz0dKbjkv%Y)29Xv<(u=xwxhSnv66L=!H-T)_PKll=DnQt~teWzNwg- zUg(KPPx?=M^95S|!lv>~wk-oJ4+)>7`H(Qr1V}hY3JD!jNH|0a2@9aj5*C@>r_p|6 z$cT$X$T$oV%LuNijAW)+#^cp#{Tt&;Jkv!{<*0ov3B_s)8&k_08j%nA2g32X1N#3GP>-KlGwY`LXM>? zA%k3<@qAq-MiwfWMH^0oz@4tc;IXEwGG_Ieye11eJ@R5mHB|##@syXSu+YFunGX$I zLkbPNj1(GpIVm*o3Q%g`h}0Zji3IMbUB1`AB(DNX(Dbz+v0SJ8b?i<2y&5b*2Q;(f z5%L;k^|cAB^jb#O@;VlUeqOIx(9au~0R6m?6#97+DfIJZQt0O`pmc<6oX^L%lJ@21 zqDhWIc^mG5&D%j@c?Yhk8zc+OZg2x??3t;(({y#ccJ(gPRc_CleK%Taphus_A^RTf z!)=JId#>eX9$o{MWc4d0Wx9d4Y_T~2QOqj;mLo(|Z+J+W$*3pv_yBeznt zHZ(MsO%|}RafZ|j*0O`O-PT&3gu=Ni2)uTnt5G#&WrI~I_TUDqN>P@*bs4G1cgiB$ zyEtxC)ircT*p21)aviR}$~Ly3yB_W*hS?_3*-UBJBHJvN-*U?KO`A7u-?S}%>KUh; zwRzhlNG!=ec8dOHl)Qj#3}m&-3yx`$gq7TK=PtthuUsW*&lZ$+ckim z$v~s1d48md>z;%}J`F2@g-s3*yKRb5$!Ayq?&-5MC%biLrMy0@IR#g4LW12=!zmC~ z0Q=`y4&&zYq!>pxlVW_`LW=QqD=Eg)7eG0lj!wtZ7n#xbu$ew=rtm-9o7$C`ehEeb zFZyMWSiXX5`b@hKzbC`G+cf{HCSOlfZPVj%h@rSJfYU}BFxWeo z4}<+WDGd1=q%iDnlEQ$$1xf=xDK+3bnPC>yX7+X$GQs$_L1Ot1u3&sLVS(H#?`c?n zx0d>@DK#^!|DI-m#qZ+>S^NPhSo|R=So{&`3JvRj%%2N1tlyY2dJob}SpO6Jish$z z-=QakcN5k(mRGUfU93H16=)*6kPp^6kPq96u{jJO5hs&+{cW* z2ipB_P#Q@779^J6;YuVEo+!_x75rX{{J|8-P2fS@*scgopgrV-I55pMq-b1^N8`jB zj-1giBJRdE#`!pGiRl0iAalpFU^Z+`+@2Z2UPpHtpA?||g%qIul@y@;4V0j5N|pF`X7oM8QvCx=Ko|c6 ziDec74C*2gmFOE?;5?A*hs;=Jn<6ynX8Yk;Aep0ilgEH$E)odEJW@b3pA--+AO$2X zpoC;|3P~#xvfOl+41UG3Q13f(#4z0xbMqQ1?2NFQs1q*Cs*H~KK<5rQ4oF*At>g(D zh6d>Yp~eWnhSTPzy(=D5oSfO2jrw{G&tkLVHd6M7oU(Cc*sy2tfYU;-2&{3I!c4*p z=XRlo^Fc+}Of>FtvmW*{*{5lD97n!sR8tQGHI|B|Z{{%&p0=`X&BP%wc1T_=W>RTu zJg3j4R;L;Qg$jde94pWrK0U6Ko*ngTb*}7c(47jS+lH*rW1Y+qfJ2n^G9&Y&FpiE& zPk=TKde)Ppr_=-^N**AM&>%6vVFVXvM?<=7+?PvZE(a^-&K@S?t~JC7HpU(f(BTLb z&#K~9!Y1Uf=DP@X0E43mCJu|o6r@ef1BTVk3>em8QW)G4QjEQ&q%gE)pfI%b#FQ*& zI;SEl@FSL$xWevp9I`Xveb~%YrGxvrnaL_zMdv78PxF%c{%RetvICd_E8{$jR(236 ztn6S?SXl?Cac7vzcjCq@sUL!0u^g)R9l2$Ah|RPyv5-xZK1_?Dv(-#MXKP5&+2N$< z>m&J6O$w#4?C0SbbWz0t0SiuUghVmP&v%T(2 z@_ge=jiF-#{Q52gCsR4H(*29CI>_F{dstYiOFRec~NK?z^yeZ7Z2JCNB?I z$%_YrmRVt)d^9HUd(xCnIq-78h`!`&DueUkdR5;b#oGsZE@DO~@9uQ?J};X^@x%jg zijYYeP5IJj9;+&NxfW9oPIM^w)TxP?VWeiL>%N%DW>~OT3dgK$8m60fC2(pl>Cs4; z=W^~~m*VU?1rKu+gy(p3%C95-!^EaXibm1X!*EwMjKMd|d6i@Y8aMMV+JfGAcds}DJ&%brtfM(@LFU5 z1wQ~~> z$lF)}Dt@~bfQsM21gQ9(q)_qoq)_p@NTK3)gEp)9Jxn*pzbD(3_aYVgeIH0H@5eRO zFWG6~caz3pU$|sOKAfIIB(kY)t(e`fC+)pug z#k8t?jXji4Yk|+OKx=^qWBF35d{$F$!j;SD_M-HwEc{M~d=AO@4ogFp#wT3l^IGj@ zT*-Y6`zDa{7A@XVDw>bA$gQ}?_gdPTnGNL&TJ?*p+LrQRIQ$aQV)-(2mS8oygoriD zk{6}L_A0^_w19!V%>&gE7eB(?kRvO zDPP75H)Z(&((nnEMG%#HR%#0JLoJx`oHAbI)?z9LU4G1R-U9Ni=cbDMgvs-Y?ofS1e#(~YC2nQNrO8a-B_q#u zBl#K9ud+K$*tEO$f6j*HleI!5zu-+9zo=5JSMoc#Wg)*r8nn8&Sg+Lb4HFLKS4hWb z#J5pO)nPv={A*LVeH=%~DGSJ6Wmi&doZwLV`ES2Q7Z`t%bdpE^YIA-;a{}Ph34Z#c)PzkCV$n!?HmvAD(2%Dq5Mr#7f;ie z{2j^mym~ae?gaS zB@1}BX^+3IBrR;GwXt_6t+?;E+tmywLC_-e zqPqiMb*hEEvWTTRrouLD?6slDsE&zt`riB`PVKBbyHu3L{Lzj<(5&wzNW98E*o=4A zd@C#jo{^VNK20G@Q3RtWQG||)P?jNaK$f$~RXR@aMj=jM;Q<51Qg20BflQ3Xh4=_Ram{)w&Ecix_z=_zv$?#= z+g7)iP5CC7dCDH7)egoLdl$ztKIzaV5TA515%I_&q=-)r1x>%sB^DD8WB76ye<561 h4O+Kb(`QO3Ymk8L7F_N5w9H~CN8l!wBUy5&=Usv=Vr#0cSe9R8$Ugb5UVhQ?MDMm_YpOWAJypne^YY!xr!3#4OP9(*vbDV>Rj6!F zwPYHTZ555Vw&sfV+4&yh7Maq62E}x$l^#87rmRLO8K2gXX-dU&ZSiz&X1th-H@Z}^ zn2OKNb-1{-&G(|`a{$d6^rBx`Q9~CdTDb|F01KCEK%raC=@eA zY{<3MHKm#h`Nh0^pG3d*q${NAU{FX-gGS$}`F@FhjUCQmTwMXBjj8WzhD6U|a++M4AC%}>BAj0%QI;$gU8bRnVMfWU6$-fbZg19rSj{I>x#(I5YMll?wZDf8>)7 z@FoWXZdF9UM)Q+(cK#7ho>RDX?Yr&o26m5c^Xbzq@lBA8WLM|q|u!&X&lj6 zVQp#_Gp=fGEhF*PC@)`)`m{7|)X|XaXhpBx z@#*D~BC&0{cTzmM2Rv%Z)3R}bm!BvbHTNcmgK+M-w;h^B`zEK&)=8#mvNY97Q$m`y zmzo{s(lI4nwLrl;V&zU=erH)JB@@ib&JJS4CK+q(>9YJTFrMn=cNOD07*F)~Kk-Z< zt~r>Q*5Q&3Eh*?H+ol(^r%BG)pqUYG&a|Y4YI{+8pEx_Ocss+2re)gSH0Bu6ZB22F znBl|ob#p9F^bUFC>*emGIiW#LXp|G0-ZTC+zySbIqsmWyZ^A<(mJ3 zy6Jdk>U_i1k}0NKvZbzpox=38d8;kC*nE@nHpAUrbjPbCud1hPw-e zh=Yl3%;zEz=sTC_e7mBMXAd{4wPkprJ;_epC3>~HR3YVNr1AyDqo~MqXlBk(pk^vO zvlO1PAUv}P&tKrR8}8oS%kP0%HWOR@3913=dHFqM?ZcW5J3W=5(lo@B5w z(wcLwHJ)o`fVR&rrWu*7xuy<=Zh6wi=#Yx|j-~OLPR>ZhlWk?GS$5QoH_VQ= zh-4Jk|Eq&>*=FftvAr<7vT|CcnC@ucAl+K2gLyK;(YGVqTXTGb`RFescHz^6vriZ=b-w2bSaDhX0By@&^%=gT4GA^8SBG<)Qe+ z>uBh_&*I3G;yByLk>oIj#Nl542$5>W5C5fr9jV!IRC%JC9cqtW@Oj%Yi5@WSaGCtE zQ^vsYKQ(gl$7xg?ukmq$CgF)1E+=V_oZKPD=@5Jh<70s*m8TNb)4crY!Bjh(sm8&# zcj)8%8S@5!v$ts}j;m+l{jsPRim7WbuWv z_##<+ak>Xb;F8goU_cL_WB$^Ph7`wk?K&>=@|TP04lo_j(lXa!IL;|_TQSp|Nx4G2 zwWCmsH`w`cJk!Quti3Qao@2k_W@ZXH{-tKeXL7C<=UkR{W$iB4$mwvZsUm+x=b3z^ z&E%^@^lI_GMlriql&{lF?jOwL>j~7~N$dvVe504Y2?wM_^0GO*)SJEhE%M9W_+<`5K@+dGPQuB@2m+(Abi-(9#=rvs@b zojXWDF~u((eybF;-=3LjX{pHH+S!4(nFDW^1MiRn@00`Yk^}FS1D6UMcn=QzpRnLw zJbj;+zh9n~H8;=qKwgwz%kmE}E+6#r57F3;bfq&vPJXpL|F9;(Bj$le<$=fKfyd>6 zC**-A@jy-BfTud|CX3TtuA{vy|1>(D@$%35IuQ6=xgx!Gl|JKKir<9Yy| z>#2q|Mh1JXmlcLgb-l?*SD6r9iwV)yM~JSzpmhBzUHw$ae$XvW#&i8ikvOFfv%Yj9 z71z&)@^{_jd=sTm=&NGCnI{R3ZXYp2))&W z&|4i0eKJUu^2r)xJU5tBKIw-~X6jc=rWkL^v3uImm8)eeE6q`_46z=lT~ixSyOt2O zLxrdvCPZxo7<#2rl~waovo>4s%Q}GP)+Lo+O1i}{@JrTrND2=v%20Ic`P<|$cC5)J zx4u<$9<{}WToXfU12$sxhJfcbB1Mbu#*M9jJ)4k`J;R0Av#Ah!HWOmc=3p>8+!hqd z)6539B{|P+W#y8{5mrEC6&Z;fDMaKbAtI}Vh#UK${1aB)uaE%bb6F>I=2_1a|aywTG?$`=A=V6dZW^iY&{$TQ8DET{ z#qH9|9C9x0Z?dhWp%(-uV{)>g9LP?$0%Tjrh-|A6vTZ`h=7f-K2cv<>t6qU|WIR_O zRbU1Xm{Fkis~85icBa8bC+OckQb@ixvcbuBWveF(6!tvGx)hB2Js!tT6 z`XnK$PZpy36i`7}QF>3MkS)!L)5v@7bW-`()G*A>urhMbBqO#b1Uf!`sVI_K;p+fLJqxmJFp6jRf3F2lj9 zIhATERK&StZ!;!SD66-s%0Y#SByB6Wq*FgMKGWn3D(L#2#OUC!YbNB&O44RmxNAiu zmX&SMm|kauFzkA5z_1&H7dS>KIY4P+~hvt%l)?mJV~F> zWBjV-P%-B`B)VgJ%2YhNz21ivms@Ebw|zbQoUTc8AsoCLou)D(M%jOX4Z)fBUs&$U~q zn>2ZHy?am1V_7kXPK5WZ8|pvM2GoBjMEyrX)PF2Q{XalWgjJ;b6AHnQ`;@%r{z;1Z ztf^sWeP(6keojVmzYrq#OCfT<5+e6&P-e*riT+0D53PBuaNn|#q4gc$x$jAXp(PU0 zp~d}>InfOc^*>m*AH#0Y{K*Q?{F#hs{vw3tuR>`4CWPkiVAT76s9xUh(p6j*A(i*H zoZp@yvTt+TO_*o@7O%;*rOL|Na&a~fab1yxL&P>3sYOi%RJ&eo4R%O+HgjX4&aQoa$@c`uW}bIkmVIu&6&7S+s-@ zig%G)wLgcOu${LZE=yinty~BXK zTbDY5xE|oS^+|oF#j?`9&>6IWb=xrP2D^={0K1LJh}|Ya*bNuLZc`!bHUp!+-dy$a z^%i72w3^{Kg$z(Dgj7)}_Le z1}0Rzd~ja1s7_+TaS@m~O z9fNd2G#2pOHl!L1CI0f&g6G*d>o(r+=FhWjt$>j=WMt$7Ax2IVV&ry0jGP2U=huMDUJ61n(q7@XnwFi=0O0E<(kADj9wqk}CE~YMza% z9z7y4zP2vd``5cVwT@*)AR4=R>xK5DHlV#hi1tPy+M9%EPl1Zvs#4udA((H|$a^kL zDi@m?Ms&u?$jy?G-04E(wg{2iDnxD@D63?IMCXK6Q~F~?XCquY+X!kN@SG#{ofylC z!$Rj>!MYX0Zm{gI0xV~c5zCoESk4l{a<&kbyMa;P@2-0Jeh)I9^GN0UjWq8fGblKP z)?91mBDt1Sut=vOUf-H2G}h}zW9baN!tE)Mv8-4|1GJZkhT`7Z0L6WTP~2At#r=d( z+#d`BbN~gNWDokYgxrDjz_$kho;%pO5BN8_A3_h<%N=u0qz^S=hn0kB*^+O!J6x^t z{}Hwc^|^C^Dkd0U;zhS0(Vo%o(+a!&W<_&bj?tbm7CAZaa-jzB z6=XbjC8-9mE_#MLkMSdFwyt+qsbwrH<*rHQIpYYlUdOPKf5~g=oG3)VLfd zwKq}-b{sd6_uS2-XwI4%hQuvaM((X-B=;MxCijuy`;g=kpAeB=#PA^@3?CN4@DU*l9|fa6 ze@ylA`Qv0f_XMeYJ`A5ncN#6pwrL$KtJ6-SqmZhI2baD0jXpTlHn_q)DM7KUxJ5(q zlnI2`)7k*BXM_-YRtT}@gb;fk3`6pQDy#kiix=sLV_yP1_cE!%SfVBi7kr3)#k#%f zck^e-YgT~&>tw|L4I%vB6vF>4A^hJ4qqF24%Hb?|mxAZsQ&lia-nRmRKOiH)9|{rt zkr2Tj3laPeP=ZBHW9k#3BK9d6exH#lVp_^oKWgmciQ`A?ST}LR*42~iCe+kzTV0c= zcb}4-4 z7NLXZx`y4Lx~LVP+Kr5;b{9gmhY+egg;4DUMx)SM^@>6n8P6?7swmWpdZxh5K~0M9K;s!>z2Mt)rI>|D;e zE$?^pXXgr5z~mLl$mErTn7pzOlUEU9@&GV8J7bi?*%_zcxm8sa%+7&UK=5j0BzScp zf(Ho^yoM0LgFy)vISt`*p~l4!GW_Ht)ws}*t{**O{P?O7BgbiCj-FgMii_0sZY_0) zWyK*H%%Rp10>iWc0u@3CR0<)mwh#jAfC}ayX6-M9Pr#0q`oU-SCz^@_k4GTfOXRRnZ}dTevN)^)HFG+2yii)A>T z*}Sy%AcfhiiEE8F+2W5(TXU{ZR^D37w5EpmKS{NAbZ{}wDkIjBXf>ZLh349i<61Yf zyG%>%=$+isZ6hMw+!NT!VOv7y#u*_D8?Ox*wyhAuYJ?azL5N`!!7#Ghsj}+-z=}yI zCa{wM&()G@G?h$~hZj6&6V`2ezned2cd!EXPaz}wcNAj(PD1S8S&03+fYCWSm2x;| zcctLDI#mU8w%!T|PLh$}1|fnQg$QmEA~*#~u*hj>Hw!glrjg-iBdJD={WkD#AZ64d zmX*?ID6`fQjnlOOjV(enwhGbMCPZTnR4B`(uAM?KN%Q3S*+?q4ni|G_!OF-jl9AjF zA#!I3kvmg}+*zP35pjv0E%bkah`8I0GQry&@Z27xzO!Ok>0Rio^sL*SVKf-}cFCQOB#&ZXe%E#5rN|$1(6^mr!9gekcxp=OlsGF!d zRO+sfT~>{ra0Yjc`0YC9wvjtn3SwDtj)v$EQv~5dwE@D12_byA5W+_YA$%klhUh2? z`l-6kU!muYrZ-+c2H?J=i5l=1MIA?Ptdi5_{DeK;1fNh6ytEE2{>_@XJ#wP@60?)6 zAuc#s6}aFOAuc#ohzm{=;)2sb#Z1~Xn$8eb*~OcA<-0T4ij`*po;#Z~7+azj9a{_f zU3!l7J~!+Q-Seyf-Sf$a?gc{VUMPg_MMCIa42o{>yYv#u;r`)L3ZA=6Rl)w@aw{PC z3NjLWr4Yea2@!m?5W&}g5-f7^!?i+<-RsDB?s`&n%dG-YP`vZJ-9=no@Z?gx$h{wwH6kz34+#B>#{qfwAa%s@A;5DFlLoPr?r1FM`+M{e>-K2a4R()N0d|j* z5xXaZuzOMnyQhS(dm4=T`We;B*Uysi+;gPz_2vtnh{4^Lxpot}`4SIrzC16%v8=d8 z!}EeEfar_b0MVC(5Pew)(N}~JeH9GD^O`EF{sXLDM-YyG1Mu9NqzZ9~sywjZqw8DN z?QOrCe{_Av3fS{58QJrm5PRMiV$TOc?D-Ik&Yq7bhqLEn3ZDCis)E_`i4_q1DH#d= zrx3xP2@(9c5W!!75-f5WZ(j-((XYsO?rTy-)Gi5cGqz@%5p~s5YO8A|kDXA%-OO*) zI+hiIXqdjWUTFVL8_@o}5bZw*(f*?l?LUDE(@?4YnL;p&ej)F}tR~m9C~dRj z+hp3Z$#vsAl$L5M@WfQXo|6i0$>@qtS>%cjH#8$H%XOsY*K3g{R1i6&!YwJav8*hK z25~7KcnN-81WQe@C;F-9J zbsOM!^Jikr3RoK_BWqU`V(ma7)~+VR+SS46OdLcxoQZ2tVEw16f|*!u1q2TvBf)D5 z5xkZV!9#@z9tKLV$Z5=02sIii$#`yUQjG??ax|{GdScy#MD4^xZQZD`ld4D7vV5xE zt)nintXM=Nxvq7E!g|^Oh4qC{*gyz{4TVtH2vj61q<>=y!F1e&yyu3K%Fm{TfxfAg zk-Hfg$=zIt+%1I2-BO6$tw5P3OC)-P(7$ptUrSsS4G8Z@z;mNWeRsyPBC^mqS#8}$ zhuxsMwH2T`hK#6=6+(3zAymf+p*kLnMqyjkD+)DaJU4+C~ z!c7#BSXQ=0W4oOZ!mvr&fMJt`7*;F9u!Io9wgOQVUP6D_uTS0WO$`Cu2k_j!q`t#qS!rJA%-qkq?H_i7+W}U9+ks@n z?I0oC4i>`g5Fy+S1*3jGO!e~f;bgcGNGd<)<~~}6&mOfV-Sm$3cyMcEK8MWFT)(v| zzC1 zV}zJ?tPsMF5DCpO0{eQs_cOuFN=ShI)PBzW{W%0-fN9ck7qzm0CD8pw8 z-kjgcry7sbN<6yb0duuGU5yzmXV?}zdZsGy=vhKMdbSXco+HGg=Ykq660d=Lp0H{P zXLMbNojac*W?ulXLYFic#Uc2mebp3hq;zR*ayL-Io*Mzr-9#GL zBlVr^VLe-y3L4*Rjc@TAPqEsN{emt6+-m)9^ZWTb;oGf%6?c%46?Y1;;w~Xp+%3e4 zdq7zcTm-n6a<~(|kAmm!S5>eRe!vO{evpg=KO{u(!$Jfww~?wE@M?2vPj35XH|4QT#lpsk^SU zzCa<^6Te8_b1#viIBRN%_sdpB?ki*@_f;WsUlSttbs=)!0A-N)OZ1z2GPx5fhy>?zlMTl&v;mG^3gP&b z5RP99;rI<02IpHUDz#!GiMPB+$vR7Fmo2Q0)o4dk>Kt^1osdk zxTg@oy+8>TISsVls#hG#$Z)HaRB^P+>;9DKqZZuI6hxxZ*IJ^npEjUzaUmM}3(>fQ z5RFTMipu&@w-kk7$}COZbIXv*t)_+%xvZ6uyBrzGU0#UX6@*IUYY1UB7>xS3 zT=nwt5Hj3$B$bcj%oV+DLzmU{_6WT?f}2*{y3!SP|0jc6OMSTmDTsJ~sL6oKFl~TK zg%B>4Lb$9ggv&Z$=>2t7S@q`>uSZ+lw?4p)Nm2!=#71^3cLrHP|P*G-%>VPy5>$$GGF8#U#2p&$~5an=RZI*N3jCwU%sET%Fzqu++IwSd=utOQ9T*L> zY%3m|tqMH2n-CA~F2sX-2=Sl?YBWfN2JD`~swq8@S_+ffiz~??acYxo|-%lNA1xz`Jj7&LLh$)8%G38JprW^*^z=niO zIh=C1pE`nq=Z;iWu%9~03J5-$j07JeMDVdf1Rp0v@bRDoi<|_XAk>UGkqoyCNi}2a z(%_`(?W-qEuC5y~Y2=u(+gI03m^7-I{ng3p63dE3bfBMNU7>KQHbCJtArwv*Lg5S{ z6wU-S&^MC)vnT}ntFy^_?i^AmWK9j>KiA60J&%m!o-ai11w!OrC`9f>piGk`5`D4I zzce^sOWY+iU@%+?aL14|7z`p39Sn1wi3N)>FSl-2gx#Qer4^uh6&X>zS_su^giyU! z2-WMrXcVqjy`pdf8PDBFswhlkFxq$`#c{b=}ZHl1+4MH}FLs}SzD3E_Ub z5bk$?VfgM;W!2w9^e$u*p1T1aY$VmFD6yBH7JQa)uXVf6@8-|G`>lY950H_G4+=5y zAt5F{EX2e|!07CIlyW%x9;4v7$5j=~z9+1J;3vsQ@KZtrKP^P?GeQJE3reuaX^1{2 zRNS8@kr)-_JO#s}e3> zCWLEuAzXV1;o1|7j`?1c!!h5Rg6GOq6^!}CtbpJ?WF)w+5W)R~2wq%>;QpWli=2kZ z5<*2{Niv>Wid2!XMHL!1H6ylVb>z}&70XI-)b-0)YqTz_4QO3Xh}PwWXk9^w))hgy zez;VwL?IaTE0g!!Dx`9)sliPHtc=_k8Oe>WO7}uXeYtfT5_W^#npS|_T4cm-s1SC;gs`g+!mbjG`g(2E%h&6W z;q@(~^0j`2a7ydq8s_$x{ZO}_n#Quy9(DNo)&rfkAFn*pBNoK#^bDHqEHkMJ$5+m?Pef3Lok6<|1mj2Ko4VK`CD6dZ>9r(ZjUMGuqIGM1I{sM9A~4>Z?m1DX>;G;c3N^A18Z>spGOzNysiNFf;I zJCXO?&ZKg$sbL)LVrAq`B_p}J3XxkUL~gwhxk*qK$pDFN5SCt=6fwXxQcp0O0PcB_ z`p%1GrGKF#z1g}=3%kKEZ3P%+$cSN92*c?@7`6yu*a}8{-llr_JV(ZJ?WFSgF^u%u zG%wC8veK}T<@m+)+_!7|w{14+ZFw2JO4eVhUsk%jXqQk1`ke<>#H+$50e8Dy#lSEu9TH2FPxJ=XNL6a4eaxNG*7_?_u3MzneeX_p|~&+KY^Qw6_o+?IXlT z`wH>VeqeOA?@u|L?FUfs+<~eJX8S=_K=8q2B=`^^f)5oU_%I=Y4+kY!dew?uN_mpZFMl`k5>CwRurPaKgRl@|5$B6|8YX}A1_4z2}1Or2rBqn zNcl+=f;oROdC#3fDkqy7X4I)xM($~3B=>Y7a?cPV_e>#j&jMwa%#i4_h5jPYdChR= zu$91`3$SvN)OTboD;5i#`R7}=3&L*jywD2pyoii=UMz&?B|>;!Dum}{VATJYt6u)U zf(*aGNag?inE8|aSS= zx;xaKh~H@&alu`xzy)^;alt)8TyU=t7u*Lb;?kgzdB4zKO5n?M4^V?m4+5Thh%^|D zq7fa9bQ^{5{v(ln*jM_9DSgye`k#~j7y?7DF6c7T@z|<`>YVpJ_pLP!A;cXDTh1B7btk{MO6hm$(O8v;Frlr@GC+DzbZuVYeEFS4oa}d zDP(U5HA&wj!*5PfO;TN&tGB&ly?a|tVp(a8PLy}7DJtL922{Q$MCJQJRDK{t<%ggq z$_VNEh(fSm{FpqyK1orTH8qUBPppjGPsvE`KZVHsOo-gig~?`yzw-;f4_Pl}_1Z@!n2zO`=Oh25a`y%nJL0~t~KQ3$o4gi!lg2(@3psF#0L zy}bMz8PEMrDlZ>}m;HSprz7^z6R+xWynnpWf7rr5JE^d}SA$(?D&ytheDQ-H2mS=J zou^J_k~*DXXX>BHu&~9&8`HT$s;#UcRh*gPedjve2^N?JFZ{ATg?M=(mE!HhJl{CP z{UNHctgMely9*;iZ!C3-kdf(Kg_ypm5YxK}F}*t&M!Sb9tNthL>S05bXnnXkSf;_SHcJew0)Xq7Y2;HOTXGn^Z0~HO!@Q zD#~?l4eR$q0$A5c=!9I~(CD*+x*;20XV8sqaLV%aUK{j9=Hf ztrvEK<@#2D3%xQxOY?F`w<$TqPZ@b&uY~2`Zr-~l_ z8?W8ipeF}%ebvQnLxtzYk(P!|@R1q&wu>8Y8}Qn;WaPCPAzqsx#A_3U%ji=tZaZar z+SgvTDZP2yO`^^|_~Is$ATBE}V1v-Dcu*CGo7s=_1d# zcD2O?dE0;soGNfZL5K^ALR`=x#04`z?QbMqd&QYTf34uKqMJntTV?~E+l{m|n6pwJ z-4D`5KLNtX?Cy8m!#a9?$GKbVNo8miv!?UQiW@pwI6tY=nMRr0i^fc)CQLvD8y9<331iILR@nQsL>I;?%o|r z#XPT07r{ENvbL7F!`KeX!vWS9t1)|O-Rj|G5v{ZN+(XhGNiDQxh(9S4y+Z-+DAhvx zXzL22V^jg7V}&q1P6+ekg)lq;gkebVMAhqHaS|EU=#pwimXwNDbkBW?ZAQ(h+JKtV zgs3@Ph?+Bms5uk#9l-!OOO;if%sQJ&#>qJV_j5@jYQ@FhsWN&?E;`Q|p6@rDvN|p* zWOP2NujLeGx8>Sq^KdYyo&%d11-wdQR&ii__z-si9p>_0HgMU6CJI|FQWI>sScol` z2(jf-A+}rwMqPHf>gBR4$Z&CiRNPCN#53x$t86oBuGR+BTq8uywL;WfCq&KlpjXD3^@ncP<9Zezpzy>`2G z!JIqP1as~bV$NMc%(+{LIro53uidM9dF?(jtivURqpdiNsCEyiSu87lQ7=Ad%~AW1 zHlX%lA!;8HqV`cCY99mT#fkFbAHA7{A2WO<%)djJn`u9E_#srx<%Zgl?%;rAFE6xLx-{}bi8mYay%zl@ z;v<5ovYEUcrktNxg$}2#bG;MM#&WWukZa+ic;OGOj2^3d7CJa;8$sk6(sRZVM?J3% zIO+ukwxbXYx1Vw z#Flm0=V5fs?oWJm(*GC`U&uxdi>)nu3Cq2OvibP_ zZR3FN-_dq_|E>_t`6*`H~0Wo0jKB5vAd<<}@!dm#x`GhS# zp%NbQ07I3pOu0|3@jpwAry%ZcbHZm*&Y|aXDf7QE<-Q<4Wi_<^3D3JPCE(a8l{DAK zrv8l>xUbX|hkh-@!QTjR{I^0J|D6y=e-G+ZMIO=);Rj*WpJwXB_(OoY6U1EZ7O1VEMWdn=5FhtVJ>f=&w z5oIyDs}Q3X6=HNZVK04XDzv-1ss^R!d}hk^pvH4ONwpW&Z$nPduL`dZFG(uzKbe8HqIl8d_IxYMrFZeC4O0Ghp1hiEu<(-CD%)o z=G}kwHbz)grtMg@m=J6G2nl&#Ay)PSHHW4Ib7*lYG>3FzD_dNDDu~_^03U|2tpnz4 zU5X0y%MWu-k(ai%%aq#cX^4nN+_LIIc$Ty6a9my$a9lwM#}$QeTuBJWl|h9;N;Ldd z5q3Ti8bBp9V*u|WCJhFe$k-su`mgh+r#^W3cL!!wpU*(!vzpK6zoK|`bcGSov6s(I zxj{x_4WCA*^Y^qqJmm)4Hlk6k{zPMlkZ7zaBpPc8iN;Wn5fh&J4pTj!opKdqJXcBT zyB?uyTY=8&s1d@}6{2K4AxhR4B6I`L{~VRukgR=?Dl5{8_eNm3z7^#*Cg-_LtX%ry z%y289VpB3wv6&DRn+s8~g%A~6f^)th<+h?|pQg%+x73Uf+Q+0!R~1FijU)}t8D#}@ zRjVnwMhnrkwGdrngyy{$s@wh7Uj1GS&qMM~RMIiC+z<*8>M;sDldlR_n1(ky=d z8EyC>gkZU9(b{+T?fpy1GpqownPkLkmJnXEh49)<2(R72s6X~lz5L;k;WIO&@`o0< zboxluUTPW3N_o^Hds`1Q@1qT9-dBj`{e)=VUx?-dz|bQHs&c*`sXB-)_~c-~bBB=1 zCneqD*vThz9;VVK1=hC*tg;&bm~^PgILw#f`{{5i!1f3-Vtb?zwnqtJd$bU?$AHmM zek^7GD^$mk^W5=PF6|ReumVy~BqOOO36XlT5UHmKk$Ng9sbZ#qaT*v7^V2EtFsrJ9 zVSc6+5PTLH2|inh;B$lsK39m~^FRp}ISD>rsIXo@hCA}43ah>eq8E&AmzZ2PXMx^D zY8=Z-e>AceTPKuXq75j&REYA+gebpUi1I5yMRr$dzLG+49serwp1YbcL8*&n zWkED{51Cr%KdcSVe?$oVM}^RTObGqQ!7z4DsIuyB0~r zzd=TV-xMPFEg^#679#i^P=ZBHL-bvtqW>Nlo|`3A^z~}+`mM*-j!9J2*+TFS)Gn5l z>S)+LwD#!zNE^`mu@Jrg5Tf@JA$mUr6}EaQ{U?QB%6&$jA9tj3uBl-(e_>_heo01h zzY-$%Yaw#K5hC|nQ1*zvM1Lo&vK75^=)3Q!C6GS=p8Jv1cU&wh?F*f4KUue*!*1~V z#R~BIm5liPCWPPbLiqh5gkKjfvPS*A2xaqkS2CVklvMuS4u5m8$MNBAeL&lmgqLUh zr^WnbKW(WYe4wJ}KMKZVYb(>;bSn4()W}!1xo*RcVZXP_G&JyXeb-IOVp;Kz2Ccg( zg?tZfhkQ>V)(ml0y)vS4(kEk`+=Y0Fda+zP4+X4;BYK=4XrBzR>Zf>#kD zcz_VWF;Ide za@P?ecU@3c$q0#FPw3yO?relxpKSzn1Hf||lKM`JWyN8kvu-2nwsF`EmYY}smcz-2 z<)%VdZYG4~=0aF*0Y-hlrRwGTt;l$81gU&Klvy`8F=E&h{)X+y-(bzAWFs#I)qLVo z#54|h$+l$6Y*z3VDqNN1#Im9mjmk)q2d`1u0IzBxyhaP*wY3mlW56&fV^vx8?~~Yu zez|5|$+19$%_}%=uGQkSapGZdZw-Z8tk`Vfnh0w1BqjM!eIh-ro zQ}EmlstV?cZpGM&njOhV@J>Pm?<_>{ET0Y<&-sa{^*lMJufC6$-A!pn2sn^WxI<`?UyYW0QI zq49)k8DjUpS~6|Z3pQQa+qrwl8D1GjB^I70^?0D$Te4$W(T#>@AJYNXeYF9u`w8K? zzYwkm2;q7l7>4H{RaX6Hh#ib9+-_4&rM_2)qjwBC#WizJttZL!6%WC;FE<2K1GP&Q-ugV4U}M! z(~vt|sJNa%#&c(qDz2Obbg7>_VdU5mJlJ=Z+QhO_8;#G|))t-TXahRW6{7PzAv(_& zqVob!@kvSHg%pD6a}jyZT}&#+ni|IFC00i6rDP=cG9hv=7b5oxA#$$-Ws9gw^i@KC zWrt7QT}=%Eyaw>xwWPko_$nv)h0dSrtlRZrH@Mwk1-RWvM%-=^!tG`u+-?!V?N%`A z=i5{-Ki^J%Bs_-Y10X{a_fM2UPiI=FguX_8_uw|3iT19wt?oOKjzb1<#*HtlOi0 zH-G*-W(7=ooQzC*LWoIE3Nh&^AtpTyM(58nl*9S+ECt@&tEyoBJZ}XAzd%NUUlbzv zB_V=e79#i+P=ZBHWA0U<;`$mH?h2ABuKuFJ9mdwyR!^!+Os<~fKP~u%TF0^?5RKHE z)(h=#X#?8d7NY$fA==*+qWwKkk(wse?^6h7(g)-{_aUiVY-$*-A6Xf>ACr;Xe+ZHL zi4eJ;3X%IyP*%wZiT+GjT2$D{2=_VL2vf= zB_o#K31RuY5SBj(VfiB%_5Dw(m+yZj!|yCo`F^I3NxBi_A99+S__4zS5=E{nls<66 zvVu&bj#P|ctp?`f*bOW$)k8f|J0stP$1ad0p1i$ zs^L{KQeOX;Ggy}{$8ZkjzY%Jz<+wa$;p%D9dim0(v=FYbZSiDNQ%1Y9q2_yCMY0v( zoF)vM$(o~q!Fx}F57R_$g86r!cvfO|nWS+0ubAdNLc!g=##~!-W?BbtA=PTT;jTA| ziBacO3T4KJ7%isl#Hf#u81)qrqkckSv^c03wFGzh`ct91eEK-^U$De2L4TaQB*1gV zCd~gh^Is9RH2twoKAv+AaTyc6Y)N$Idx*=a3lnj9+l~iTPz4@XQHTdt65@fCg?L~U zP!mx~w7VD}?0gR~MkQ9o0lr;B8tf-TCc2-Xr@rR(Z$;4!^rf$6(pUGT{{=CF=oxxT z_xD=ZovdL(2bYBE%Q(SDOyisTqfwvs9O%mZ&XIxCE;kObjxJr0%hpsIT)37H*A5lp z+F?RmSpjM=<$}RfsSW5+BP4tga4$CZHdKf0kysZlX7l7 zTGS-^Hs^9hZmOs1T&lU?);B>LkS2Ojp*>x}ZD^Gnsj`1zc56efr7q}Ia2r$25^rr> zBH2;Q1zUW1!)@!P+PZY7u6~2ftik4L(7Q3CXVX~Q?Y6MmElK5xM4!eE=eTOj%1K@z zycN|oi6ui@>fl(=1FUX@b*mzsXGx>~rJSH?nHxzXqB{!kT(x=xNB_}QAUa!TA}q#>JHE5Ih9Mkv@`i2faf@X-}ZDclj%G?YaWx|6VK z$`%aRF;c9bUGZYl>03YpD_Pj3UuVJkp$hF5E81rd)K}~o4J?yr=0U)=##B><+ZjoW zv0VV(ltmhhG10ZTo31xV^qbquZdYrNE&0061k{HDm>o$gU|j>5z}JoBeP1_`ldUOj z4Se0KO7rzJ+AL($LFoR)9xNjqq~25Y2fZ zUUouM6+n4ew#dsxVbzqe^Y!wdSYtF_hj$=i7kaeGsYOgBC))yB=7rn2qreZggJAGYV*zN9Q&R@=mq;XXoNbG7RM zZhyAGb1ALQaZPnisdi*A05eSM1K3uR=;N9j>-5@_I=;N)4x}!zQfXNh%XeA|6`54A z*%rlV6r#CU2un(@P51$H`87h+?{fVT5aEAPAUVA zhf$f;n=KQ4gV!k2gR2&Yvmwzn)#i>+rnh~LtH=ymUCB|@jbopNjfG;S z&GvZiXlq!OPPVX4vj|zJoYtk`=fqn)X6TR3rY|z^4H@P!aT!ICXMUDGn zN1^1!vn0BEqKALl=gu~f7Ho#~j12c3bIzS(waYZ}E$``dDZbX-Qpc&IDm ziB&MQH9YFg89#M}b~*Mu8Xb~YG}Si4oo~W?!`lm~jwY;ZZE+V^b^p|?b{;&e%P>Xw z8PQU37h3(2@?N2%p{Q$RC9hm$G8glYFgo&0cNbgZewql85qyc&F5W3(?oz4~-8+iS z!!~x8DPL9+rRj6IFUj7l83x&1p=Q0U%dkRbn!8fv#p}2Mo8&bUjCGwmyQ{2kZ+0>5 zu*l4ESF4%kTC$;z)AM55T|>>dUWtBl4^nrn8g@_Aj)u~8%J-}*9YC*FX{*XKuO6?Q z*1_H1WCyv4E;r33Tm7%rRkq|BlP$p!tCAs9sBCtX!G5Sh@3p=`VtSX}txIHYq+FBe zXQObA&u_BYJ{nlz{^Vx$jFt8$GiT1^U|39ZJw=Obn^H4S+g_-2x2V<1b9=4R)Vq}? zS(_65w9l=Z3pu{A5897r!I*_Gff5e0C~?nNLrp=#{d1aTzYhR>GWCYWwTmrnqEG=az|oGMm4*+ zVuvyE&nF+Ut`C#4P-}giB|lo z$xF^T=bUr?-><5>rICkw`R~HL&)xs`nX_HNN$&)9LwhwWJbVUT4vy)!LuCB{fI7 zQZ7y|7R!ZV*=sMA(dW-IVYbv@v6}5F`SS+;d<~gFsZsTm&Yu~a8Uml=EuRZyhNP0P zIlf#R@7Nsg*c=a=@h~iy8Je0m=5jn-j<0gLP$rQY6f(JRW>{)~rE!tW@YINiL#J!e z%!t%z$6!tKWM*V)XqCUkGNV$%L-t&=v6a-2&P+Dn1tb3AZT=Ds_3lOQyFHw1Nt|n` zz+W2YGU;g{cMYv`F&<4#$@V%XR`-`l4T61m_8T+(Q-i_=%hroGUazSXvYohc!XMYV zHsYEy#U8J@yOPc4(|C6C)~48P(mg$Pe46vc&UC&xbj4&Gx{@{9{Iya8X_M{p*UrpeNe#$n3!c9Y z?lL5rnf|(&{u#(!uhLQ9{gT%yuS@vrL+=KGzhOhBA=NJfWtn9&O{w|4>AlowM?TZ1 z(CKxxcg$$FecCASH_i;oELF-Zml_<3@i)oPrA-?$*t=NFLRADT%gxenzsCW%>1*lABFV&L~!r)6#{qq=m~i zStePWR&eY0xa4Hd%O@urPa2cu^c1ueO1)XP=uuGYv0WMKq>c@nC8lMvof#=jPfcg@ zTHlkCv;-w=FH3Z@J6q0FI+|E|nsv-cXECo5&(AU%n|sowvS+G!_K4E#G&RR7AN=@T zHJ&jv9s=K!cTBe4(Jk-D$UCy~j-0$>io9cxTv^_cZ^*RSUB$s}n(4cXl0Zc4QIW|aVNW=yISB7Xm-i0*eK6FnE(V`x@(qpq;_qAO$Y_b* zFYxzQcNU;KzwOHY0qVtp4Y9!oWvo#LXBJM&u0v$kp|a~R*>!j(k&aC}BC}j(d9<~) z-Xk6V4pYKE5`K>g{G-L(zfZ4@aT6dTH$OJ;k5lh6N*0(F$^sg%m>W%7BQqi}F_Q5}!tv*guR_wTK-*&ciD zvo`-zHs3FsACS!t%I1e;^Qef4hp~CxKfnb45xV+l;6J85{UHJ$r%QLw@=Pb6<=~vo zw|8)6Jtg5k0h><-{!`MtN&kNR-Z<{GH;&tje;DEnyfg8}ar@kP)}3c1s|B5s!1JZ;#4O!Z23Kc}MRW}T#TWlL-?XC$NIKCP;oKs8dUUQ_I3 zujh5y?W&jN)Fs^Q)HM$GPT5!~jje0sv-k(6SJpYIwPxMiZC`&|ceF#RYn?50dDG+0 zI?LsYEs91}+m&oZD>`hN=`^sXmHD%K>Y@l^~ zE_mqH>19*G|AH0ct?)9z(72oam*Vd$dqDnLEPW%=z7>7niLdYBt0kiA2YYhxW8nWJ zPHz3*&WZmslzbMROxY8YUn~#5!h`9D8$pGcO}J8<=`UQf&CCuuA6mT43?R|Rh3qAm z>NTc>8Az>V_BMlnzzkLs*wdxr$fL{tE zM|P)Xlrr50)wz@zP0s#%n=wFO<{%8GP);`3^J^})>Pk`7Of#n~LeBbF_OJW6nG1Q? zFgFmGc?i|(KS=hxh*R$?9l4O)`K+4xLp38s?o5-+ETAS(yr8WD#S19|iWe3_@ghPf zUQ`IhNie2(F=e*d%jLCV%~?d$wUo7LX=hdI zf1mmWG`i7YXT-(83@fQw#v0QY8uNr5py-arESA*x?3RU&#VlG*xk%Whv)T9}AEObk zy9v8?+VwD6Kzq3UpDuH2B)TxdHAbz60 zmJ{M|%Y!wmtyw|&?8eNBL;|xCp{CH||Blp|mDSnCoV=uFK{l({PD9?RDuBGzgpl_a zA>^$tguFFCEz4uIAg)QGAzB&MA`zIil?8jlW@gWPq1#%=K5I51lVxF3ATXN|M$3YXsaqEA)w0m%lp>b(zsUd1=C0cl zY`3>?-ERFi>fe@hDIEGrhg;hS!^=OW#ddou*KK=_TYC}6Y;6nhux%s-58GCVhixas z!zKzB(lsHIQgo=jEVOiZ@@2Ls&t4faI}i(u&U59_y5>GHT1jWVcWic)oW`6itGQ-m zblXK|I%X#oV9L%yOlcEh$}U3eXa_Z`Vk0K0z}*k{EuCqq;QJjwU^)pgG8Y;m%iSSC z>spts;<+kzUE55zY$_!!tLgBLOw!${8RzDKR%ET(UQb5{M}lmD<=HOXxW8hoD~F zwX_EzdqpG?H!eIVghwWIAzN-Tlj+^eBcKya(``G=2xL^w2xNtfKu*XAOc62yc~B#; zOymYVDroyRWvf8v@SP$Mm|jBpPDr7=rRqDrtzul2)?Jwc>*+F6JP+&%gYh~&E`@1S ztIt7%M|?StbDfe`E;C#_l)*uLT#^$2>d#29w^EhPbT7NA9YeoMcj}6mbrY_rA-|lT z!EJKPn8hHMt#u4?Mdb|gR3U>rO~@cm7c$5*Kn?QvXpnbRLEHayw|2t{Mq_s%Fae=P zBkZgAcca0TZ?lK3vZt$}rLT6$(Is%Rmo0;fy@`m6eS~nauMjTw6DIBIx4)tz?CQ6C z#K-~Uxz+DLVu3lxrW@>&E*sQ6>0%C+fX1Axs$KRDv2C#7P!(XqVM1&;T!;-v2pNwf zL5)YO{U{Z*&05*fl)=(5Kwyp~6icB6vbE~7$Jr{!yDF_Khdx`BzZFYfGWNshWVajN z<+?%9U1x|~yUCn@gqgc%*OU{jV7hmb%IV(8Lb`W~knWu-qfVYGxu>h3?O(9y z3BS&DjV@rAOGx)IquUfKy$N$EW!P~U5SYse=>vA4?(a5% z*ei%g&6PsbUnNBS)k4%=1EvOa7V{-@Ezt@6b)u+_=|u55u+Oyu)#Z_tgt?wlwBG;( z=0;VGwBKYCXup|=wBI5``>jH>-zG%+?I4dI74y@wUFD4V2gwN|WP!RQ3+@o|cuT0% z+)0`pbg23+Qh~XfFjjq!O`!T-B2s;y5Y_(_qWXRzsviJrR6j^^!b-KOA5z8Ta!zBP z5y*Jyu7r7*I#BQk5ST{^V>=$R3G_ZrM0%ePV$YL8?0ZUx9Z!R`YM&upugw&vCCsxF zpzApxFwYalx?ZpebiGJKx?U2Z>t!LjUJ;_}RZzNQuh@MJ>@&Vx4m2|o=5@+Y_XZG{ zH&rnj-M4H4b#D`qx_5-Adsm3M_k^f>ACx+oEOj3Ubr$s@k-&UJh){c3Y5VZmLG!Wd zH0GqXc2o67YLa~Yzex=N|nH79Z9`pViATZw&VnQy| zD!c5w*P{^wEfMBBo0kje_}(`A!8LPJ?MIuyw4aE`w4a5T_KOhHeidR`KklW~(lHxp zOGkeqftj69bZEP`p*;cY)q`PXfT}g-q`8)nfwnqo2dNyjgN3LaB1G*_A!-v~%*Zfh zw)N35oNP!L0R(0wp-2f8%esh^oMXd-p4o9qGs=~TElxnvU1qe+sQ2G;N3jc+8bcwY zKL-$)ISJ9?IGoES=*-+i)R}pNbY@;5otaNaXXXcMXUhVl8*<^)Sdc_u7E)Fucww7B z@FGMccu^sOlR^Y9CPeU9P=aNgTxW5xAsY21NCaj{WkrIQvIzt)O+)b44LKR}!Lg zWl%%DniQ_0Og9N)1*?+Bc&`Qo<}ZYpkPEfSuDbD#cv#)mU&GaRBe$kaVAEPeWYgM0 zY+6T%P3sD=X+5x(hxL^&9yTBnm<LjdU(NX+8Ix@T6q1Bgcs^_aRDl^Q8@0qIzPS<;iAK z?DeS4o~yxY>TXKfYt7WJ@Yt!D!TzekDUV5b<<2Ivk!)|wiH_Rw+1U00E_4%8Tx=?Y zi_L^^vAGZ~CV=tyY(YW~tZnv3_S|fVR7SW32+USiMZ+JgVr!(rg2u0UQF|M!aNAI! zp5BND!EC1noSaOwrSOze20U#qgr^;Z@YE`VryW80j8w>#|0-;29gNg)WX(=w(a)WM zz_by%8QPeWA-FL|@HtsI?bBv0wEKfSVHc;q-KwAD)VKZ#deVrFxz=SI`W3ImIkyZ) z%V38!rqdbYW@(pAz_=$lFg{rbX86wT+l9{RsjXCM8onzB%MHEg~0Sadb zQMjuRg}Vt+xI3shwx+ZN%51BVz6Tk&&7J@oJwlY{LY1=UHx|IXZT)>*eMjxSHi1F= z5s^Xr3o+;bAqE{N#Gr$~S_TeQz8E-!NMH^n6a%Zlz(iKQ63^1sFMsYfDl4E}0K=tk zTq0fS^a@>E4={&GW@Aof){=I(m5q%@r~n&}6k_91LTo%*h>gd9F=@vtv+Z9q=s0A+ z^YK7nP9PM|p_S@)9nYLt)H(Bsw&h8#rDObLo1izR5K(VV71Ep2g!JZgA-y>Rtaauy zNypB77Ky-|t*pqI&#?&vpG!o7&l4i}Z$bp0FGTPKpajb}xz~k44dq2d0&_8;hEmT9 z>TwuziOL&uQdv7Jm)d&hyG#Y>yIhFAzYEcKg%EvLf*O{!rR*wYx`z?1@T*Bf@ijnT zt|b)3p+?zLM{#s4zs}ab-qm-+-e42hb0ZPibCVEzZWdzCEkf+M6|C+5ZOT{wZzmF% ze-Ntw8`J;wxaQPZj&2s{5~I5W2`$NnDc+3IGVao4&A~olJbqN9i(t`FzscMo4UIV& zUCZE|RudNAr2;IzTZqN?2(kEHAr{{U#ti;bnQechdG{lcF?aw7%!7m)gV1JiQa1*D z-TWcj@?qD~jm9H3LEj!FqP{&Qq;HQ4>Dv=R`t~GP>*i09j@|re5`lR}S&^GRYZC~5 zj)(+5FGTPQLIl4kMDR=3e`xD} z-@3>hFbE{euvze-vW%PhiaD&&q83qfPt;sf@+1Kw$dK z?#3dtTin!*MPJvSjW&Vl?^?Q1ncXJn-vA=&-#{V#8ziKEgN5{O2w3a-LrKT3pCA#K zVakeJf4EH`cmxp%9w|idC?SGJ3lTg9lwcVrKb%9T;hvL7VCEv!aO-r%-oY_*t3qQ= zI%`L29$OKG^Qr)a^9fNnzYv8B2vN8osF7M<+7?o#J6&N{%3+5`qIPDBPRA;h31g&4Gy5QCNmYZ+)zz8F}BNMITX#lRRC(CJF# z#LnJjRk<-I{k3e2vyD(bUIi#`5~93Wi1OuxC|@3o*;qlDZNH&uMG9eNB_J>>6N;Ho zy)3O`rs{sgxM-mZ6J`}#PZ@*C_R6YRHEJ2%C|!*VcFKgvhsnNo3s$#f^lc3y>f4$^ z`nHykzO5}>)ZQ&vN73Q-Zo$UU1?_dob9W2YBNmwTZMvcFk7dmUYTcNVNg=s*L;mR#!;Ew;*5 zu1f3v)+xB78Qt8f-ihq{e73!r;JI6xIzOl$O2V6(JeHW?ffxIeH{ZLFbiwXMqGYC9oZO%%daN(fimgW_t_Xqa{& zL%a3f|A8)=R+KXyI|70EtF@%zf5wuXP_9V;RQLWnTf5pqyYz$exp^uo=AwH(MO#cSdnJWl`a*hXg!Hl` zq?ct7FN^Q_R7mH-n>$m92WA?f>k;ftw+Y(MAR>9Y3emHh5IwsKksE;F&7D1nx|=&P zT~zJ~Hbi$)_979Oy_FRmEBCPpwCqbnTJ{s7Wq%=B4iKW{K(OXc%0VREO&pmnO$Q63 zJ1LRIL&#*;OBicB%qGxyxEi4G2q7Ae6r%AcAsUYcYcw81a>9yolSt#Ssu*hw@6sGc zW?+sdj5VHM6KFV54bX6s5X~nGvE&pX8czjl6`V#oy54d+@xYux7|T7=CXjm;5y?GU zh}?68$URqx-19)mm2INxZ(w`^b3Tc{T%fFIP%g9y1Ybl%f-e>#_!1$4FBKyAGEjnL zoCIGk)ZzQ@L;`aKAwp-qHFBluH0GqX_NaZ8t&7g9Re;WGgy_6hh|cST=)4}(V!4GB z-k{97doMSV$0WT82+Yldn2-y#%C5SDb#xkYi>-gFtM5)@ZnFt&x}At@`iBsk?hsuBjq0h37PHaz)H*i?pfgWc8BaPHj-jV)0#lzR zB2%9cV(PO(Onpv>sn3J8uKfb(_?F6xBm(o2vLY9J*(MPD3K0o@Rfyo%gb03Jh~PIs z36^p4h&RF5x8EWWn75S`34X^W5d1C?34TwA;P-_H{y>P}4?zi*aT5HIP-FTrk-&UH zs4>;!>d_Sh^Qr1I=A^cEKtHo}(fPRw(D{WBonH#k`IQizUxOOZ7AgEjnRT~Rz9o;* z{0<1r_k=-S`AGz30cAzbxu8uTcp)MZys!|#iwF_Cs1U(PP=aNgd}T4A z24yUfz${LvL6LLD{4b$8jX9~U<$p?wr>hS=#90^5rs8x2=Q5`vFv#r0JtM3S2-X^eV1tPL(MIkn=B*dnbh1j$TSj)qz z$`=o-5n(GuC>|O@=hV9poMZBEJU0OJZXkY)qzys*n@+R3WHjbvRxM9!SXtP#rV6lW zEg?3oEySjEgxIt$81uBAGTZ*|3|OBw@VEiMhKo=UOakBY*icM zX9m&saw98nVTM;UG>Cxs1aH<8Irx!q##C+i}$o_)$r&UV&3oym_cctKLB$+ThO%-q@C<}TK9 zxNBEA+)Wa~U0Mit9YVP41jSt{8nrGmwAs24DiGSE3g`k)pe>CxI~gfsb~+dY=Z zhk-J{y+}fQ(N05|gd;L%f}$e@~1obt^XB4GiV$0Rpy50MAfkExMXSV6IVC zG$_~F1cI+4BEi=S5qyIX!8ZyKd=n_aGERbT7V32179xSUl@Osb??-P_oyMHh)*kL} zw{_9^4;7&E4k0@46r%GkAv*5{wVduKh4(14Za;c2c})BJfWZ8d5EF8tR@qf|IFC+? z?zi5 z&9ziKZL6d985N-RSs`kl6QcHcA!=U$V=7)$X5anjOJu{w%RpdWAru>-Vp&(mM)l;T z?|$@EE8{gM!!h)_OqQc>ZjwqVg9Npz>ECD*JJ#Nh)U( zqOw1z@!U!JW>=>oRkwbz@Ej z)eMsQ_!{7GljjLadorh&A(pF+uYyv+eh)UVz$gw;;gNq=e!wv`2lZ7B9rfn|7vgx7Fy1IjquIi3?W&yiP-BHoOc9%LS z+VA|8Jhw~TiCAEEwrS^;JnZB)j%{k#n3FXj&31>ni>-_9b`_v|k`Uc#A-X$+(A)`% z=2&Z&3Y=%gN<8x5a5BK2h)^7cnq`~i(E3frR>`_5tr`4gW8Rb;J>{eyf&Pbk)#|HP z!uNL8?o_jdM02<^#j@r}1T{NTlSApuOxXSA6l)7i%|ERd#-IgmOF&@CR;Al-{&^}ZXn`q>Rdv5P)fzA@G(e9rRS7oJ)q>5<3|kDD zyD9@RcN0S9?n1~6gpj!hsD(v3wBGG0jJ?Y3Gxs8op6?9=W*h}2{z0z3)l!`@@t*KtTTJ&3krcXjsF3a*CZv0Z z3+dhwAifgs36CTl?Fo+}9+;yEU4NkM7@MH|u|y>AI3aqD7oz6`A#zUy!#&|iMBScH zri;Uq!FW%23W>m+s;ubfcbZM0<#Zy_a)uBsXA04BmJlsxgEc#}b4a>9p-h*ibA|B^ zE!-2HM7%p%9H13DJ155RI3BH5xA^>Gp(?#>-SO))?*yFDH{< z?-9ltudoR;T&V_VxJroTtA$u{jS!93f^xt}!F8mgQ0~~9g6QK5|{@F5jyjp@IlpS%t>wSG4>%_7o88Q0G*Er(fOzlosS98`8cR0Z?Y6V zq0G8H;gjSs*`5Ld^E4qQp$!2yHk?qYyz8}CnB3(5MtAdLTq|T zh)pkpwLH9{eDUxqk-)r0C?4wfgs-bwV@{fDsd&RyN9~&`KTmtd`He?>ap6Mju1FyAOEa=~wH0>R%Ak>Kxz2>wBc;2(tu{t1*|87GhU8H|1V z7ZQQ_RaueXempy3Uqdk)5ee=uMDXlF1P>4*cpxajGERaADPLncm`GrT5Nb@h5uiuJ z%}^CL=A^N9EEBdG{TQZl)D0J+ZiEnZBZa6N1!^oa(luI{ZL#bzBpJgw0Dg8ys4)x` z%9^?{j68ZSTYqj>-;LKiHi0?w5|KIc2{C7WA?7R~#GD1e+TJgueD!`|B7s?iP`zKA z-q)XG!$zO`K8vb(V@?*;vXiu8FlR9pV9r<}<}5D6oF#;qvm_X^vy?L1ez)$WsSbM$ zKwy?36nmjT>P;Pc)fo^iy^XfzvaY4$ahy$H_;?~Ryh(`R%|Z-cPKe>lgSGCt0_oU2 zS0uqZmXsB_=gKyL;8lo7@Tx)tuO>wBUxWx=9h6`hCzn}6r~z7&NMP0?)BtHW818OL zW^L8sEkXkO>i +g!)iMd!LIK<9cwbgnN%=LSM_ZU|}=vQoH_GTqV}E7+JksNMt! z%%+5*I@Bt=>Zpz!bu(Lkb64LHJi#WgX$vBpiuv}aRmpUb%~O0T95d55R;;|q zwzONNbJaD~TmMQXV=H7;VQ6PoZzC=iN+xG>rx0o%lNug<-bLTxFnO~1piA7B_**ch z$2Kbv_W2EbX$Idb=!vQ(Op!`BMK2H-UoD~;XKaEIE)hu$%zIP4yeSi(Fq_7=LQLa5 zRi)u4P|P%CHpv~PE5`88P_g}Ph}o4WpAH$IZ}*tpZ2o2~8*gQHCtA_W35Zx1-GfMA z_9Tq0*~=!dW^YwO!9GIt?<>Tf{e&poAC%v#M-qB~(7jG$Qz?eJDM|Oml;l`$d)9t7 zXso^l!H02}2+=o5n#_R+z!wh!0&_5-vxzsF5XTXD?KqAFq(;t6t~tb3$b}RiY6Tn? z3t%g8xJ}ThBZx#4A4%L%d=xQt@o1Gs6d$8ZOYyOa(c|M(>?l5-=!8Kb#V3%+#pIr- z+M53-5edx6gfY3N*aUW*s!EW1nh?#W3nBLmA*#*&fJnsQg~T0)7ZFoWE>>y8;U&tn z9A2sz9lK1$j>F4|#vJ~gM3uuUR9hTgNhB~=5yl)|Z4=mWjVi(6wL&ysCxpZ6g{Zm# z6o=}IIJ{BV*4j8r4)uD(Su%JNtzhtGATYNOMhwcdSup5n9qTO`-iK~(rAkX`NVdy; z|H<4&nu*CveyX2_Dw*5K)TdnqrP`v|#PrMjs(qLsB>-!0OlEt&f%!Ol5( z(-XfG-4$MfMhkw{`Zxut{$9a6p~z7CQ{Xc12{un!F~i;Hw7X^YDe@+;-qT0E z{Z+6>1M{@4n8>8_yp!3k#?PqQfYgZ4F!u>3^Q`J+QZ1>480(^GhoPc=L)-3>8Q#Ll z>wC;|R7;JPY1RtJ2fk9v{U@=2h}JAoI?+Y+-US zto)j*JaSsv6x0{wdg&hXx~)66#!D{@)3CQkKg}?2P{_O1z25OlF1J#bc~i+TykL&c zqj7+(ltLEYlIVe{LA>^Ha<<#NZAIF_=Ic~bv!yJrEH&@g+_`z-dwNQ{eyWjgPj~TU zF?}@4yi4IhsfFokPkcsD^`Cb8+IRCFl@3nL?iHq*_pLD3@!pbG>7tiCdGmqI9?ci4 zcmq{Cuha7kzYQsw4{iP&Vvmo(xmN`{3O}+khq(`s@uKd+6!WpIJW>-OK8lshCpLFf z-H4e_$xaQdlqZj0&3vYKA{3?R^SP6hE%5%L%W=RLR*1!M8@r#r7&m{kV~u>Ywd0vneu?8Bjae{mDEy zwV<2q(c3^Evz%!UzusnMrwUUi90fZiN@f6=Y}+Mr9y>{RTe@Bd!si6Nf(EV245E;! zIE=5~#d(8W-Uv%gypj(gx24jNn!ElimMLY*W~dtVv!9(a3F7=pk+6Xet!vz1*`AO zNUMWm?{\MakeUppercase#} +%%% Apr. 6th Modified Lenny option to prevent undesired +%%% skip of line. +%%% Nov. 8th Fixed \@chapapp for AMS +%%% +%%% Revision 1.2 (1998) +%%% +%%% Feb. 11th Fixed appendix problem related to Bjarne +%%% Aug. 11th Fixed problem related to 11pt and 12pt +%%% suggested by Tomas Lundberg. THANKS! +%%% +%%% Revision 1.3 (2004) +%%% Sep. 20th problem with frontmatter, mainmatter and +%%% backmatter, pointed out by Lapo Mori +%%% +%%% Revision 1.31 (2004) +%%% Sep. 21th problem with the Rejne definition streched text +%%% caused ugly gaps in the vrule aligned with the title +%%% text. Kindly pointed out to me by Hendri Adriaens +%%% +%%% Revision 1.32 (2005) +%%% Jun. 23th compatibility problem with the KOMA class 'scrbook.cls' +%%% a remedy is a redefinition of '\@schapter' in +%%% line with that used in KOMA. The problem was pointed +%%% out to me by Mikkel Holm Olsen +%%% +%%% Revision 1.33 (2005) +%%% Aug. 9th misspelled ``TWELV'' corrected, the error was pointed +%%% out to me by George Pearson +%%% +%%% Revision 1.34 (2007) +%%% Added an alternative to Lenny provided by Peter +%%% Osborne (2005-11-28) +%%% Corrected front, main and back matter, based on input +%%% from Bas van Gils (2006-04-24) +%%% Jul. 30th Added Bjornstrup option provided by Jean-Marc +%%% Francois (2007-01-05). +%%% Reverted to \MakeUppercase{#} see rev 1.1, solved +%%% problem with MakeUppercase and MakeLowercase pointed +%%% out by Marco Feuerstein (2007-06-06) + + +%%% Last modified Jul. 2007 + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{fncychap} + [2007/07/30 v1.34 + LaTeX package (Revised chapters)] + +%%%% For conditional inclusion of color +\newif\ifusecolor +\usecolorfalse + + + +%%%% DEFINITION OF Chapapp variables +\newcommand{\CNV}{\huge\bfseries} +\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}} + + +%%%% DEFINITION OF TheChapter variables +\newcommand{\CNoV}{\huge\bfseries} +\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}} + +\newif\ifUCN +\UCNfalse +\newif\ifLCN +\LCNfalse +\def\ChNameLowerCase{\LCNtrue\UCNfalse} +\def\ChNameUpperCase{\UCNtrue\LCNfalse} +\def\ChNameAsIs{\UCNfalse\LCNfalse} + +%%%%% Fix for AMSBook 971008 + +\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{} + + +%%%%% Fix for Bjarne and appendix 980211 + +\newif\ifinapp +\inappfalse +\renewcommand\appendix{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \inapptrue% + \renewcommand\@chapapp{\appendixname}% + \renewcommand\thechapter{\@Alph\c@chapter}} + +%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + +\@ifundefined{@mainmatter}{\newif\if@mainmatter \@mainmattertrue}{} + +%%%%% + + + +\newcommand{\FmN}[1]{% +\ifUCN + {\MakeUppercase{#1}}\LCNfalse +\else + \ifLCN + {\MakeLowercase{#1}}\UCNfalse + \else #1 + \fi +\fi} + + +%%%% DEFINITION OF Title variables +\newcommand{\CTV}{\Huge\bfseries} +\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}} + +%%%% DEFINITION OF the basic rule width +\newlength{\RW} +\setlength{\RW}{1pt} +\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}} + +\newif\ifUCT +\UCTfalse +\newif\ifLCT +\LCTfalse +\def\ChTitleLowerCase{\LCTtrue\UCTfalse} +\def\ChTitleUpperCase{\UCTtrue\LCTfalse} +\def\ChTitleAsIs{\UCTfalse\LCTfalse} +\newcommand{\FmTi}[1]{% +\ifUCT + {\MakeUppercase{#1}}\LCTfalse +\else + \ifLCT + {\MakeLowercase{#1}}\UCTfalse + \else {#1} + \fi +\fi} + + + +\newlength{\mylen} +\newlength{\myhi} +\newlength{\px} +\newlength{\py} +\newlength{\pyy} +\newlength{\pxx} + + +\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@} + +\newcommand{\DOCH}{% + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 20\p@ + } +\newcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +\newcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + +%%%%%% SONNY DEF + +\DeclareOption{Sonny}{% + \ChNameVar{\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\Large\sf} + \ChRuleWidth{0.5pt} + \ChNameUpperCase + \renewcommand{\DOCH}{% + \raggedleft + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip 40\p@} + \renewcommand{\DOTI}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} + \renewcommand{\DOTIS}[1]{% + \CTV\raggedleft\mghrulefill{\RW}\par\nobreak + \vskip 5\p@ + \CTV\FmTi{#1}\par\nobreak + \mghrulefill{\RW}\par\nobreak + \vskip 40\p@} +} + +%%%%%% LENNY DEF + +\DeclareOption{Lenny}{% + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{2pt} + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{1pt} + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\space\CNoV\thechapter% + \hskip1pt% + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%% Peter Osbornes' version of LENNY DEF + +\DeclareOption{PetersLenny}{% + +% five new lengths +\newlength{\bl} % bottom left : orig \space +\setlength{\bl}{6pt} +\newcommand{\BL}[1]{\setlength{\bl}{#1}} +\newlength{\br} % bottom right : orig 1pt +\setlength{\br}{1pt} +\newcommand{\BR}[1]{\setlength{\br}{#1}} +\newlength{\tl} % top left : orig 2pt +\setlength{\tl}{2pt} +\newcommand{\TL}[1]{\setlength{\tl}{#1}} +\newlength{\trr} % top right :orig 1pt +\setlength{\trr}{1pt} +\newcommand{\TR}[1]{\setlength{\trr}{#1}} +\newlength{\blrule} % top right :orig 1pt +\setlength{\trr}{0pt} +\newcommand{\BLrule}[1]{\setlength{\blrule}{#1}} + + + \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} + \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} + \ChTitleVar{\Huge\bfseries\rm} + \ChRuleWidth{1pt} +\renewcommand{\DOCH}{% + + +%%%%%%% tweaks for 1--9 and A--Z +\ifcase\c@chapter\relax% +\or\BL{-3pt}\TL{-4pt}\BR{0pt}\TR{-6pt}%1 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%2 +\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%3 +\or\BL{0pt}\TL{5pt}\BR{2pt}\TR{-4pt}%4 +\or\BL{0pt}\TL{3pt}\BR{2pt}\TR{-4pt}%5 +\or\BL{-1pt}\TL{0pt}\BR{2pt}\TR{-2pt}%6 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%7 +\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%8 +\or\BL{0pt}\TL{-3pt}\BR{-4pt}\TR{-2pt}%9 +\or\BL{-3pt}\TL{-3pt}\BR{2pt}\TR{-7pt}%10 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%11 +\or\BL{-6pt}\TL{-6pt}\BR{2pt}\TR{-7pt}%12 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%13 +\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%14 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%15 +\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%16 +\or\BL{-5pt}\TL{-3pt}\BR{-8pt}\TR{-6pt}%17 +\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%18 +\or\BL{-3pt}\TL{-3pt}\BR{-6pt}\TR{-9pt}%19 +\or\BL{0pt}\TL{0pt}\BR{0pt}\TR{-5pt}%20 +\fi + +\ifinapp\ifcase\c@chapter\relax% +\or\BL{0pt}\TL{14pt}\BR{5pt}\TR{-19pt}%A +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}%B +\or\BL{-3pt}\TL{-2pt}\BR{1pt}\TR{-6pt}\BLrule{0pt}%C +\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}\BLrule{0pt}%D +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-3pt}%E +\or\BL{0pt}\TL{-5pt}\BR{-10pt}\TR{-1pt}%F +\or\BL{-3pt}\TL{0pt}\BR{0pt}\TR{-7pt}%G +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%H +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%I +\or\BL{2pt}\TL{0pt}\BR{-3pt}\TR{1pt}%J +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%K +\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-19pt}%L +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%M +\or\BL{0pt}\TL{-5pt}\BR{-2pt}\TR{-1pt}%N +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%O +\or\BL{0pt}\TL{-5pt}\BR{-9pt}\TR{-3pt}%P +\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%Q +\or\BL{0pt}\TL{-5pt}\BR{4pt}\TR{-8pt}%R +\or\BL{-2pt}\TL{-2pt}\BR{-2pt}\TR{-7pt}%S +\or\BL{-3pt}\TL{0pt}\BR{-5pt}\TR{4pt}\BLrule{8pt}%T +\or\BL{-7pt}\TL{-11pt}\BR{-5pt}\TR{-7pt}\BLrule{0pt}%U +\or\BL{-14pt}\TL{-5pt}\BR{-14pt}\TR{-1pt}\BLrule{14pt}%V +\or\BL{-10pt}\TL{-9pt}\BR{-13pt}\TR{-3pt}\BLrule{7pt}%W +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%X +\or\BL{-6pt}\TL{-4pt}\BR{-7pt}\TR{1pt}\BLrule{7pt}%Y +\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%Z +\fi\fi +%%%%%%% + \settowidth{\px}{\CNV\FmN{\@chapapp}} + \addtolength{\px}{\tl} %MOD change 2pt to \tl + \settoheight{\py}{\CNV\FmN{\@chapapp}} + \addtolength{\py}{1pt} + + \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} + \addtolength{\mylen}{\trr}% MOD change 1pt to \tr + \settowidth{\pxx}{\CNoV\thechapter} + \addtolength{\pxx}{-1pt} + + \settoheight{\pyy}{\CNoV\thechapter} + \addtolength{\pyy}{-2pt} + \setlength{\myhi}{\pyy} + \addtolength{\myhi}{-1\py} + \par + \parbox[b]{\textwidth}{% + \rule[\py]{\RW}{\myhi}% + \hskip -\RW% + \rule[\pyy]{\px}{\RW}% + \hskip -\px% + \raggedright% + \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD +% \CNV\FmN{\@chapapp}\space\CNoV\thechapter %ORIGINAL + \hskip\br% %MOD 1pt to \br + \mghrulefill{\RW}% + \rule{\RW}{\pyy}\par\nobreak% + \vskip -\baselineskip% + \vskip -\pyy% + \hskip \mylen% + \mghrulefill{\RW}\par\nobreak% + \vskip \pyy}% + \vskip 20\p@} + + + \renewcommand{\DOTI}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + + \renewcommand{\DOTIS}[1]{% + \raggedright + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + + +% + + +%%%%%% BJORNSTRUP DEF + +\DeclareOption{Bjornstrup}{% + \usecolortrue + % pzc (Zapf Chancelery) is nice. ppl (Palatino) is cool too. + \ChNumVar{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont} + \ChTitleVar{\raggedleft\Large\sffamily\bfseries} + + \setlength{\myhi}{10pt} % Space between grey box border and text + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\myhi} + \renewcommand{\DOCH}{% + \settowidth{\py}{\CNoV\thechapter} + \addtolength{\py}{-10pt} % Amount of space by which the +% % number is shifted right + \fboxsep=0pt% + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}% + \kern-\py\raise20pt% + \hbox{\color[gray]{.5}\CNoV\thechapter}\\% + } + + \renewcommand{\DOTI}[1]{% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \vskip-1ex% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } + + \renewcommand{\DOTIS}[1]{% + \fboxsep=0pt + \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\% + \nointerlineskip\raggedright% + \fboxsep=\myhi% + \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% + \vskip 40\p@% + } +} + + +%%%%%%% GLENN DEF + + +\DeclareOption{Glenn}{% + \ChNameVar{\bfseries\Large\sf} + \ChNumVar{\Huge} + \ChTitleVar{\bfseries\Large\rm} + \ChRuleWidth{1pt} + \ChNameUpperCase + \ChTitleUpperCase + \renewcommand{\DOCH}{% + \settoheight{\myhi}{\CTV\FmTi{Test}} + \setlength{\py}{\baselineskip} + \addtolength{\py}{\RW} + \addtolength{\py}{\myhi} + \setlength{\pyy}{\py} + \addtolength{\pyy}{-1\RW} + + \raggedright + \CNV\FmN{\@chapapp}\space\CNoV\thechapter + \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} + + \renewcommand{\DOTI}[1]{% + \addtolength{\pyy}{-4pt} + \settoheight{\myhi}{\CTV\FmTi{#1}} + \addtolength{\myhi}{\py} + \addtolength{\myhi}{-1\RW} + \vskip -1\pyy + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 80\p@} + +\newlength{\backskip} + \renewcommand{\DOTIS}[1]{% +% \setlength{\py}{10pt} +% \setlength{\pyy}{\py} +% \addtolength{\pyy}{\RW} +% \setlength{\myhi}{\baselineskip} +% \addtolength{\myhi}{\pyy} +% \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak +% \addtolength{}{} +%\vskip -1\baselineskip +% \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt +% \raggedleft\CTV\FmTi{#1}\par\nobreak +% \vskip 60\p@} +%% Fix suggested by Tomas Lundberg + \setlength{\py}{25pt} % eller vad man vill + \setlength{\pyy}{\py} + \setlength{\backskip}{\py} + \addtolength{\backskip}{2pt} + \addtolength{\pyy}{\RW} + \setlength{\myhi}{\baselineskip} + \addtolength{\myhi}{\pyy} + \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak + \vskip -1\backskip + \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt % + \raggedleft\CTV\FmTi{#1}\par\nobreak + \vskip 40\p@} + } + +%%%%%%% CONNY DEF + +\DeclareOption{Conny}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Huge\rm\bfseries} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{2pt} + + \renewcommand{\DOCH}{% + \mghrulefill{3\RW}\par\nobreak + \vskip -0.5\baselineskip + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\space \CNoV\thechapter + \par\nobreak + \vskip -0.5\baselineskip + } + \renewcommand{\DOTI}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + \renewcommand{\DOTIS}[1]{% + \mghrulefill{\RW}\par\nobreak + \CTV\FmTi{#1}\par\nobreak + \vskip 60\p@ + } + } + +%%%%%%% REJNE DEF + +\DeclareOption{Rejne}{% + + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\centering\Large\rm} + \ChNumVar{\Huge} + \ChTitleVar{\centering\Huge\rm} + \ChRuleWidth{1pt} + \renewcommand{\DOCH}{% + \settoheight{\py}{\CNoV\thechapter} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\py}{-1pt} + \CNV\FmN{\@chapapp}\par\nobreak + \vskip 20\p@ + \setlength{\myhi}{2\baselineskip} + \setlength{\px}{\myhi} + \addtolength{\px}{-1\RW} + \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip + 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak + \vskip -3\p@% Added -2pt vskip to correct for streched text v1.31 + } + \renewcommand{\DOTI}[1]{% + \setlength{\mylen}{\textwidth} + \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 + \addtolength{\mylen}{-2\RW} + {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak% + \vskip -3pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}% + \vskip 60\p@% Added -2pt in vskip to correct for streched text v1.31 + } + \renewcommand{\DOTIS}[1]{% + \setlength{\py}{\fboxrule} + \setlength{\fboxrule}{\RW} + \setlength{\mylen}{\textwidth} + \addtolength{\mylen}{-2\RW} + \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} + \setlength{\fboxrule}{\py} + \vskip 60\p@ + } + } + + +%%%%%%% BJARNE DEF + +\DeclareOption{Bjarne}{% + \ChNameUpperCase + \ChTitleUpperCase + \ChNameVar{\raggedleft\normalsize\rm} + \ChNumVar{\raggedleft \bfseries\Large} + \ChTitleVar{\raggedleft \Large\rm} + \ChRuleWidth{1pt} + + +%% Note thechapter -> c@chapter fix appendix bug +%% Fixed misspelled 12 + + \newcounter{AlphaCnt} + \newcounter{AlphaDecCnt} + \newcommand{\AlphaNo}{% + \ifcase\number\theAlphaCnt + \ifnum\c@chapter=0 + ZERO\else{}\fi + \or ONE\or TWO\or THREE\or FOUR\or FIVE + \or SIX\or SEVEN\or EIGHT\or NINE\or TEN + \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN + \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi +} + + \newcommand{\AlphaDecNo}{% + \setcounter{AlphaDecCnt}{0} + \@whilenum\number\theAlphaCnt>0\do + {\addtocounter{AlphaCnt}{-10} + \addtocounter{AlphaDecCnt}{1}} + \ifnum\number\theAlphaCnt=0 + \else + \addtocounter{AlphaDecCnt}{-1} + \addtocounter{AlphaCnt}{10} + \fi + + + \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or + FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi + } + \newcommand{\TheAlphaChapter}{% + + \ifinapp + \thechapter + \else + \setcounter{AlphaCnt}{\c@chapter} + \ifnum\c@chapter<20 + \AlphaNo + \else + \AlphaDecNo\AlphaNo + \fi + \fi + } + \renewcommand{\DOCH}{% + \mghrulefill{\RW}\par\nobreak + \CNV\FmN{\@chapapp}\par\nobreak + \CNoV\TheAlphaChapter\par\nobreak + \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak + \vskip 20\p@ + } + \renewcommand{\DOTI}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } + \renewcommand{\DOTIS}[1]{% + \CTV\FmTi{#1}\par\nobreak + \vskip 40\p@ + } +} + +\DeclareOption*{% + \PackageWarning{fancychapter}{unknown style option} + } + +\ProcessOptions* \relax + +\ifusecolor + \RequirePackage{color} +\fi +\def\@makechapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 + \DOCH + \fi + \fi + \interlinepenalty\@M + \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424 + \DOTI{#1}% + \else% + \DOTIS{#1}% + \fi + }} + + +%%% Begin: To avoid problem with scrbook.cls (fncychap version 1.32) + +%%OUT: +%\def\@schapter#1{\if@twocolumn +% \@topnewpage[\@makeschapterhead{#1}]% +% \else +% \@makeschapterhead{#1}% +% \@afterheading +% \fi} + +%%IN: +\def\@schapter#1{% +\if@twocolumn% + \@makeschapterhead{#1}% +\else% + \@makeschapterhead{#1}% + \@afterheading% +\fi} + +%%% End: To avoid problem with scrbook.cls (fncychap version 1.32) + +\def\@makeschapterhead#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \DOTIS{#1} + \vskip 40\p@ + }} + +\endinput + + diff --git a/docs/fr/_build/latex/howto.cls b/docs/fr/_build/latex/howto.cls new file mode 100644 index 00000000..6844533a --- /dev/null +++ b/docs/fr/_build/latex/howto.cls @@ -0,0 +1,70 @@ +% +% howto.cls for Sphinx +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{howto}[2008/10/18 Document class (Sphinx HOWTO)] + +% Pass all given class options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions\relax +\LoadClass[twoside]{article} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{ + \rule{\textwidth}{1pt} + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright} + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title} \par + {\em\large\py@HeaderFamily \py@release\releaseinfo} \par + \vspace{25pt} + {\Large\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular}} \par + \vspace{25pt} + \@date \par + \py@authoraddress \par + \end{flushright} + \@thanks + \setcounter{footnote}{0} + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{ + \begingroup + \parskip = 0mm + \py@OldTableofcontents + \endgroup + \rule{\textwidth}{1pt} + \vspace{12pt} +} + +\@ifundefined{fancyhf}{ + \pagestyle{plain}}{ + \pagestyle{normal}} % start this way; change for +\pagenumbering{arabic} % ToC & chapters + +\thispagestyle{empty} diff --git a/docs/fr/_build/latex/manual.cls b/docs/fr/_build/latex/manual.cls new file mode 100644 index 00000000..2fb77c62 --- /dev/null +++ b/docs/fr/_build/latex/manual.cls @@ -0,0 +1,108 @@ +% +% manual.cls for Sphinx +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{manual}[2008/10/18 Document class (Sphinx manual)] + +% Pass all given class options to the parent class. +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessOptions\relax +\LoadClass[twoside,openright]{report} + +% Set some sane defaults for section numbering depth and TOC depth. You can +% reset these counters in your preamble. +% +\setcounter{secnumdepth}{2} +\setcounter{tocdepth}{1} + +% Change the title page to look a bit better, and fit in with the fncychap +% ``Bjarne'' style a bit better. +% +\renewcommand{\maketitle}{% + \begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \rule{\textwidth}{1pt}% + \ifsphinxpdfoutput + \begingroup + % These \defs are required to deal with multi-line authors; it + % changes \\ to ', ' (comma-space), making it pass muster for + % generating document info in the PDF file. + \def\\{, } + \def\and{and } + \pdfinfo{ + /Author (\@author) + /Title (\@title) + } + \endgroup + \fi + \begin{flushright}% + \sphinxlogo% + {\rm\Huge\py@HeaderFamily \@title \par}% + {\em\LARGE\py@HeaderFamily \py@release\releaseinfo \par} + \vfill + {\LARGE\py@HeaderFamily + \begin{tabular}[t]{c} + \@author + \end{tabular} + \par} + \vfill\vfill + {\large + \@date \par + \vfill + \py@authoraddress \par + }% + \end{flushright}%\par + \@thanks + \end{titlepage}% + \cleardoublepage% + \setcounter{footnote}{0}% + \let\thanks\relax\let\maketitle\relax + %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} +} + + +% Catch the end of the {abstract} environment, but here make sure the abstract +% is followed by a blank page if the 'openright' option is used. +% +\let\py@OldEndAbstract=\endabstract +\renewcommand{\endabstract}{ + \if@openright + \ifodd\value{page} + \typeout{Adding blank page after the abstract.} + \vfil\pagebreak + \fi + \fi + \py@OldEndAbstract +} + +% This wraps the \tableofcontents macro with all the magic to get the spacing +% right and have the right number of pages if the 'openright' option has been +% used. This eliminates a fair amount of crud in the individual document files. +% +\let\py@OldTableofcontents=\tableofcontents +\renewcommand{\tableofcontents}{% + \setcounter{page}{1}% + \pagebreak% + \pagestyle{plain}% + {% + \parskip = 0mm% + \py@OldTableofcontents% + \if@openright% + \ifodd\value{page}% + \typeout{Adding blank page after the table of contents.}% + \pagebreak\hspace{0pt}% + \fi% + \fi% + \cleardoublepage% + }% + \pagenumbering{arabic}% + \@ifundefined{fancyhf}{}{\pagestyle{normal}}% +} + +% This is needed to get the width of the section # area wide enough in the +% library reference. Doing it here keeps it the same for all the manuals. +% +\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}} +\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}} diff --git a/docs/fr/_build/latex/python.ist b/docs/fr/_build/latex/python.ist new file mode 100644 index 00000000..9ffa0f95 --- /dev/null +++ b/docs/fr/_build/latex/python.ist @@ -0,0 +1,11 @@ +line_max 100 +headings_flag 1 +heading_prefix " \\bigletter " + +preamble "\\begin{theindex} +\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}} + +" + +symhead_positive "{Symbols}" +numhead_positive "{Numbers}" diff --git a/docs/fr/_build/latex/sphinx.sty b/docs/fr/_build/latex/sphinx.sty new file mode 100644 index 00000000..6b98d289 --- /dev/null +++ b/docs/fr/_build/latex/sphinx.sty @@ -0,0 +1,744 @@ +% +% sphinx.sty +% +% Adapted from the old python.sty, mostly written by Fred Drake, +% by Georg Brandl. +% + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{sphinx}[2008/05/01 LaTeX package (Sphinx markup)] + +\RequirePackage{textcomp} +\RequirePackage{fancyhdr} +\RequirePackage{fancybox} +\RequirePackage{titlesec} +\RequirePackage{tabulary} +\RequirePackage{amsmath} % for \text +\RequirePackage{makeidx} +\RequirePackage{framed} +\RequirePackage{color} +% For highlighted code. +\RequirePackage{fancyvrb} +% For table captions. +\RequirePackage{threeparttable} +% Handle footnotes in tables. +\RequirePackage{footnote} +\makesavenoteenv{tabulary} +% For floating figures in the text. +\RequirePackage{wrapfig} +% Separate paragraphs by space by default. +\RequirePackage{parskip} + +% Redefine these colors to your liking in the preamble. +\definecolor{TitleColor}{rgb}{0.126,0.263,0.361} +\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486} +\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388} +% Redefine these colors to something not white if you want to have colored +% background and border for code examples. +\definecolor{VerbatimColor}{rgb}{1,1,1} +\definecolor{VerbatimBorderColor}{rgb}{1,1,1} + +% Uncomment these two lines to ignore the paper size and make the page +% size more like a typical published manual. +%\renewcommand{\paperheight}{9in} +%\renewcommand{\paperwidth}{8.5in} % typical squarish manual +%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' + +% For graphicx, check if we are compiling under latex or pdflatex. +\ifx\pdftexversion\undefined + \usepackage{graphicx} +\else + \usepackage[pdftex]{graphicx} +\fi + +% for PDF output, use colors and maximal compression +\newif\ifsphinxpdfoutput\sphinxpdfoutputfalse +\ifx\pdfoutput\undefined\else\ifcase\pdfoutput + \let\py@NormalColor\relax + \let\py@TitleColor\relax +\else + \sphinxpdfoutputtrue + \input{pdfcolor} + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} + \pdfcompresslevel=9 +\fi\fi + +% XeLaTeX can do colors, too +\ifx\XeTeXrevision\undefined\else + \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} + \def\py@TitleColor{\color{TitleColor}} +\fi + +% Increase printable page size (copied from fullpage.sty) +\topmargin 0pt +\advance \topmargin by -\headheight +\advance \topmargin by -\headsep + +% attempt to work a little better for A4 users +\textheight \paperheight +\advance\textheight by -2in + +\oddsidemargin 0pt +\evensidemargin 0pt +%\evensidemargin -.25in % for ``manual size'' documents +\marginparwidth 0.5in + +\textwidth \paperwidth +\advance\textwidth by -2in + + +% Style parameters and macros used by most documents here +\raggedbottom +\sloppy +\hbadness = 5000 % don't print trivial gripes + +\pagestyle{empty} % start this way; change for +\pagenumbering{roman} % ToC & chapters + +% Use this to set the font family for headers and other decor: +\newcommand{\py@HeaderFamily}{\sffamily\bfseries} + +% Redefine the 'normal' header/footer style when using "fancyhdr" package: +\@ifundefined{fancyhf}{}{ + % Use \pagestyle{normal} as the primary pagestyle for text. + \fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} + \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + } + % Update the plain style so we get the page number & footer line, + % but not a chapter or section title. This is to keep the first + % page of a chapter and the blank page between chapters `clean.' + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0.4pt} + } +} + +% Some custom font markup commands. +% +\newcommand{\strong}[1]{{\bf #1}} +\newcommand{\code}[1]{\texttt{#1}} +\newcommand{\bfcode}[1]{\code{\bfseries#1}} +\newcommand{\samp}[1]{`\code{#1}'} +\newcommand{\email}[1]{\textsf{#1}} + +\newcommand{\py@modulebadkey}{{--just-some-junk--}} + +% Redefine the Verbatim environment to allow border and background colors. +% The original environment is still used for verbatims within tables. +\let\OriginalVerbatim=\Verbatim +\let\endOriginalVerbatim=\endVerbatim + +% Play with vspace to be able to keep the indentation. +\newlength\distancetoright +\newlength\leftsidespace +\def\mycolorbox#1{% + \setlength\leftsidespace{\@totalleftmargin}% + \setlength\distancetoright{\textwidth}% + \advance\distancetoright -\@totalleftmargin % + \noindent\hspace*{\@totalleftmargin}% + \fcolorbox{VerbatimBorderColor}{VerbatimColor}{% + \begin{minipage}{\distancetoright}% + \smallskip% + \noindent\hspace*{-\leftsidespace}% + #1 + \end{minipage}% + }% +} +\def\FrameCommand{\mycolorbox} + +\renewcommand{\Verbatim}[1][1]{% + % The list environement is needed to control perfectly the vertical + % space. + \list{}{% + \setlength\parskip{0pt}% + \setlength\itemsep{0ex}% + \setlength\topsep{0ex}% + \setlength\partopsep{0pt}% + \setlength\leftmargin{0pt}% + }% + \item\MakeFramed {\FrameRestore}% + \small% + \OriginalVerbatim[#1]% +} +\renewcommand{\endVerbatim}{% + \endOriginalVerbatim% + \endMakeFramed% + \endlist% +} + + +% Index-entry generation support. +% + +% Command to generate two index entries (using subentries) +\newcommand{\indexii}[2]{\index{#1!#2}\index{#2!#1}} + +% And three entries (using only one level of subentries) +\newcommand{\indexiii}[3]{\index{#1!#2 #3}\index{#2!#3, #1}\index{#3!#1 #2}} + +% And four (again, using only one level of subentries) +\newcommand{\indexiv}[4]{ +\index{#1!#2 #3 #4} +\index{#2!#3 #4, #1} +\index{#3!#4, #1 #2} +\index{#4!#1 #2 #3} +} + +% support for the module index +\newif\ifpy@UseModuleIndex +\py@UseModuleIndexfalse + +\newcommand{\makemodindex}{ + \newwrite\modindexfile + \openout\modindexfile=mod\jobname.idx + \py@UseModuleIndextrue +} + +\newcommand{\printmodindex}{ + \@input@{mod\jobname.ind} +} + +% Add the defining entry for a module +\newcommand{\py@modindex}[2]{% + \renewcommand{\py@thismodule}{#1} + \ifpy@UseModuleIndex% + \@ifundefined{py@modplat@\py@thismodulekey}{ + \write\modindexfile{\protect\indexentry{#1@{\texttt{#1}}|hyperpage}{\thepage}}% + }{\write\modindexfile{\protect\indexentry{#1@{\texttt{#1 }% + \emph{(\platformof{\py@thismodulekey})}}|hyperpage}{\thepage}}% + } + \fi% +} + +% "Current" keys +\newcommand{\py@thisclass}{} +\newcommand{\py@thismodule}{} +\newcommand{\py@thismodulekey}{} +\newcommand{\py@thismoduletype}{} +\newcommand{\py@emptymodule}{} + +% \declaremodule[key]{type}{name} +\newcommand{\declaremodule}[3][\py@modulebadkey]{ + \renewcommand{\py@thismoduletype}{#2} + \ifx\py@modulebadkey#1 + \renewcommand{\py@thismodulekey}{#3} + \else + \renewcommand{\py@thismodulekey}{#1} + \fi + \py@modindex{#3}{} + %\label{module-\py@thismodulekey} +} + +% Record module platforms for the Module Index +\newif\ifpy@ModPlatformFileIsOpen \py@ModPlatformFileIsOpenfalse +\long\def\py@writeModPlatformFile#1{% + \protected@write\py@ModPlatformFile% + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble}% + {\string#1}% +} +\newcommand{\py@ModPlatformFilename}{\jobname.pla} +\newcommand{\platform}[1]{ + \ifpy@ModPlatformFileIsOpen\else + \newwrite\py@ModPlatformFile + \openout\py@ModPlatformFile=\py@ModPlatformFilename + \py@ModPlatformFileIsOpentrue + \fi + \py@writeModPlatformFile{\py@defplatform{\py@thismodulekey}{#1}} +} +\newcommand{\py@defplatform}[2]{\expandafter\def\csname py@modplat@#1\endcsname{#2}} +\newcommand{\platformof}[1]{\csname py@modplat@#1\endcsname} + +\InputIfFileExists{\jobname.pla}{}{} + +% \moduleauthor{name}{email} +\newcommand{\moduleauthor}[2]{} + +% \sectionauthor{name}{email} +\newcommand{\sectionauthor}[2]{} + +% Ignore module synopsis. +\newcommand{\modulesynopsis}[1]{} + +% Reset "current" objects. +\newcommand{\resetcurrentobjects}{ + \renewcommand{\py@thisclass}{} + \renewcommand{\py@thismodule}{} + \renewcommand{\py@thismodulekey}{} + \renewcommand{\py@thismoduletype}{} +} + +% Augment the sectioning commands used to get our own font family in place, +% and reset some internal data items: +\titleformat{\section}{\Large\py@HeaderFamily}% + {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsection}{\large\py@HeaderFamily}% + {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\subsubsection}{\py@HeaderFamily}% + {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} +\titleformat{\paragraph}{\large\py@HeaderFamily}% + {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor} + + +% Now for a lot of semantically-loaded environments that do a ton of magical +% things to get the right formatting and index entries for the stuff in +% Python modules and C API. + + +% {fulllineitems} is used in one place in libregex.tex, but is really for +% internal use in this file. +% +\newcommand{\py@itemnewline}[1]{% + \@tempdima\linewidth% + \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}% +} + +\newenvironment{fulllineitems}{ + \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt + \rightmargin 0pt \topsep -\parskip \partopsep \parskip + \itemsep -\parsep + \let\makelabel=\py@itemnewline} +}{\end{list}} + +% \optional is mostly for use in the arguments parameters to the various +% {*desc} environments defined below, but may be used elsewhere. Known to +% be used in the debugger chapter. +% +% Typical usage: +% +% \begin{funcdesc}{myfunc}{reqparm\optional{, optparm}} +% ^^^ ^^^ +% No space here No space here +% +% When a function has multiple optional parameters, \optional should be +% nested, not chained. This is right: +% +% \begin{funcdesc}{myfunc}{\optional{parm1\optional{, parm2}}} +% +\let\py@badkey=\@undefined + +\newcommand{\optional}[1]{% + {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} + +% This can be used when a function or method accepts an varying number +% of arguments, such as by using the *args syntax in the parameter list. +\newcommand{\py@moreargs}{...} + +% This can be used when you don't want to document the parameters to a +% function or method, but simply state that it's an alias for +% something else. +\newcommand{\py@unspecified}{...} + +\newcommand{\py@varvars}[1]{{% + {\let\unspecified=\py@unspecified% + \let\moreargs=\py@moreargs% + \emph{#1}}}} + +\newlength{\py@argswidth} +\newcommand{\py@sigparams}[1]{% + \parbox[t]{\py@argswidth}{\py@varvars{#1}\code{)}}} +\newcommand{\py@sigline}[2]{% + \settowidth{\py@argswidth}{#1\code{(}}% + \addtolength{\py@argswidth}{-2\py@argswidth}% + \addtolength{\py@argswidth}{\textwidth}% + \item[#1\code{(}\py@sigparams{#2}]} + +% C functions ------------------------------------------------------------ +% \begin{cfuncdesc}[refcount]{type}{name}{arglist} +% Note that the [refcount] slot should only be filled in by +% tools/anno-api.py; it pulls the value from the refcounts database. +\newcommand{\cfuncline}[3]{ + \py@sigline{\code{#1 \bfcode{#2}}}{#3}% +} +\newenvironment{cfuncdesc}[3]{ + \begin{fulllineitems} + \cfuncline{#1}{#2}{#3} +}{\end{fulllineitems}} + +% C variables ------------------------------------------------------------ +% \begin{cvardesc}{type}{name} +\newenvironment{cvardesc}[2]{ + \begin{fulllineitems} + \item[\code{#1 \bfcode{#2}}] +}{\end{fulllineitems}} + +% C data types ----------------------------------------------------------- +% \begin{ctypedesc}[index name]{typedef name} +\newenvironment{ctypedesc}[2][\py@badkey]{ + \begin{fulllineitems} + \item[\bfcode{#2}] +}{\end{fulllineitems}} + +% C type fields ---------------------------------------------------------- +% \begin{cmemberdesc}{container type}{ctype}{membername} +\newcommand{\cmemberline}[3]{ + \item[\code{#2 \bfcode{#3}}] +} +\newenvironment{cmemberdesc}[3]{ + \begin{fulllineitems} + \cmemberline{#1}{#2}{#3} +}{\end{fulllineitems}} + +% Funky macros ----------------------------------------------------------- +% \begin{csimplemacrodesc}{name} +% -- "simple" because it has no args; NOT for constant definitions! +\newenvironment{csimplemacrodesc}[1]{ + \begin{fulllineitems} + \item[\bfcode{#1}] +}{\end{fulllineitems}} + +% simple functions (not methods) ----------------------------------------- +% \begin{funcdesc}{name}{args} +\newcommand{\funcline}[2]{% + \py@sigline{\bfcode{#1}}{#2}} +\newenvironment{funcdesc}[2]{ + \begin{fulllineitems} + \funcline{#1}{#2} +}{\end{fulllineitems}} + +% classes ---------------------------------------------------------------- +% \begin{classdesc}{name}{constructor args} +\newcommand{\classline}[2]{ + \py@sigline{\strong{class }\bfcode{#1}}{#2}} +\newenvironment{classdesc}[2]{ + % Using \renewcommand doesn't work for this, for unknown reasons: + \global\def\py@thisclass{#1} + \begin{fulllineitems} + \classline{#1}{#2} +}{\end{fulllineitems}} + +% \begin{excclassdesc}{name}{constructor args} +% but indexes as an exception +\newenvironment{excclassdesc}[2]{ + % Using \renewcommand doesn't work for this, for unknown reasons: + \global\def\py@thisclass{#1} + \begin{fulllineitems} + \py@sigline{\strong{exception }\bfcode{#1}}{#2}% +}{\end{fulllineitems}} + +% There is no corresponding {excclassdesc*} environment. To describe +% a class exception without parameters, use the {excdesc} environment. + + +\let\py@classbadkey=\@undefined + +% object method ---------------------------------------------------------- +% \begin{methoddesc}[classname]{methodname}{args} +\newcommand{\methodline}[3][\@undefined]{ + \py@sigline{\bfcode{#2}}{#3}} +\newenvironment{methoddesc}[3][\@undefined]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \methodline{#2}{#3} + \else + \def\py@thisclass{#1} + \methodline{#2}{#3} + \fi +}{\end{fulllineitems}} + +% static method ---------------------------------------------------------- +% \begin{staticmethoddesc}[classname]{methodname}{args} +\newcommand{\staticmethodline}[3][\@undefined]{ + \py@sigline{static \bfcode{#2}}{#3}} +\newenvironment{staticmethoddesc}[3][\@undefined]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \staticmethodline{#2}{#3} + \else + \def\py@thisclass{#1} + \staticmethodline{#2}{#3} + \fi +}{\end{fulllineitems}} + +% class method ---------------------------------------------------------- +% \begin{classmethoddesc}[classname]{methodname}{args} +\newcommand{\classmethodline}[3][\@undefined]{ + \py@sigline{class \bfcode{#2}}{#3}} +\newenvironment{classmethoddesc}[3][\@undefined]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \classmethodline{#2}{#3} + \else + \def\py@thisclass{#1} + \classmethodline{#2}{#3} + \fi +}{\end{fulllineitems}} + +% object data attribute -------------------------------------------------- +% \begin{memberdesc}[classname]{membername} +\newcommand{\memberline}[2][\py@classbadkey]{% + \ifx\@undefined#1\relax + \item[\bfcode{#2}] + \else + \item[\bfcode{#2}] + \fi +} +\newenvironment{memberdesc}[2][\py@classbadkey]{ + \begin{fulllineitems} + \ifx\@undefined#1\relax + \memberline{#2} + \else + \def\py@thisclass{#1} + \memberline{#2} + \fi +}{\end{fulllineitems}} + +% For exceptions: -------------------------------------------------------- +% \begin{excdesc}{name} +% -- for constructor information, use excclassdesc instead +\newenvironment{excdesc}[1]{ + \begin{fulllineitems} + \item[\strong{exception }\bfcode{#1}] +}{\end{fulllineitems}} + +% Module data or constants: ---------------------------------------------- +% \begin{datadesc}{name} +\newcommand{\dataline}[1]{% + \item[\bfcode{#1}]\nopagebreak} +\newenvironment{datadesc}[1]{ + \begin{fulllineitems} + \dataline{#1} +}{\end{fulllineitems}} + +% bytecode instruction --------------------------------------------------- +% \begin{opcodedesc}{name}{var} +% -- {var} may be {} +\newenvironment{opcodedesc}[2]{ + \begin{fulllineitems} + \item[\bfcode{#1}\quad\emph{#2}] +}{\end{fulllineitems}} + +% generic description ---------------------------------------------------- +\newcommand{\descline}[1]{% + \item[\bfcode{#1}]\nopagebreak% +} +\newenvironment{describe}[1]{ + \begin{fulllineitems} + \descline{#1} +}{\end{fulllineitems}} + +% This version is being checked in for the historical record; it shows +% how I've managed to get some aspects of this to work. It will not +% be used in practice, so a subsequent revision will change things +% again. This version has problems, but shows how to do something +% that proved more tedious than I'd expected, so I don't want to lose +% the example completely. +% +\newcommand{\grammartoken}[1]{\texttt{#1}} +\newenvironment{productionlist}[1][\py@badkey]{ + \def\optional##1{{\Large[}##1{\Large]}} + \def\production##1##2{\code{##1}&::=&\code{##2}\\} + \def\productioncont##1{& &\code{##1}\\} + \def\token##1{##1} + \let\grammartoken=\token + \parindent=2em + \indent + \begin{tabular}{lcl} +}{% + \end{tabular} +} + +% Notices / Admonitions +% +\newlength{\py@noticelength} + +\newcommand{\py@heavybox}{ + \setlength{\fboxrule}{1pt} + \setlength{\fboxsep}{7pt} + \setlength{\py@noticelength}{\linewidth} + \addtolength{\py@noticelength}{-2\fboxsep} + \addtolength{\py@noticelength}{-2\fboxrule} + \setlength{\shadowsize}{3pt} + \Sbox + \minipage{\py@noticelength} +} +\newcommand{\py@endheavybox}{ + \endminipage + \endSbox + \fbox{\TheSbox} +} + +% Some are quite plain: +\newcommand{\py@noticestart@note}{} +\newcommand{\py@noticeend@note}{} +\newcommand{\py@noticestart@hint}{} +\newcommand{\py@noticeend@hint}{} +\newcommand{\py@noticestart@important}{} +\newcommand{\py@noticeend@important}{} +\newcommand{\py@noticestart@tip}{} +\newcommand{\py@noticeend@tip}{} + +% Others gets more visible distinction: +\newcommand{\py@noticestart@warning}{\py@heavybox} +\newcommand{\py@noticeend@warning}{\py@endheavybox} +\newcommand{\py@noticestart@caution}{\py@heavybox} +\newcommand{\py@noticeend@caution}{\py@endheavybox} +\newcommand{\py@noticestart@attention}{\py@heavybox} +\newcommand{\py@noticeend@attention}{\py@endheavybox} +\newcommand{\py@noticestart@danger}{\py@heavybox} +\newcommand{\py@noticeend@danger}{\py@endheavybox} +\newcommand{\py@noticestart@error}{\py@heavybox} +\newcommand{\py@noticeend@error}{\py@endheavybox} + +\newenvironment{notice}[2]{ + \def\py@noticetype{#1} + \csname py@noticestart@#1\endcsname + \par\strong{#2} +}{\csname py@noticeend@\py@noticetype\endcsname} + +% Allow the release number to be specified independently of the +% \date{}. This allows the date to reflect the document's date and +% release to specify the release that is documented. +% +\newcommand{\py@release}{} +\newcommand{\version}{} +\newcommand{\shortversion}{} +\newcommand{\releaseinfo}{} +\newcommand{\releasename}{Release} +\newcommand{\release}[1]{% + \renewcommand{\py@release}{\releasename\space\version}% + \renewcommand{\version}{#1}} +\newcommand{\setshortversion}[1]{% + \renewcommand{\shortversion}{#1}} +\newcommand{\setreleaseinfo}[1]{% + \renewcommand{\releaseinfo}{#1}} + +% Allow specification of the author's address separately from the +% author's name. This can be used to format them differently, which +% is a good thing. +% +\newcommand{\py@authoraddress}{} +\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} + +% This sets up the fancy chapter headings that make the documents look +% at least a little better than the usual LaTeX output. +% +\@ifundefined{ChTitleVar}{}{ + \ChNameVar{\raggedleft\normalsize\py@HeaderFamily} + \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily} + \ChTitleVar{\raggedleft \rm\Huge\py@HeaderFamily} + % This creates chapter heads without the leading \vspace*{}: + \def\@makechapterhead#1{% + {\parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \DOCH + \fi + \interlinepenalty\@M + \DOTI{#1} + } + } +} + +% Redefine description environment so that it is usable inside fulllineitems. +% +\renewcommand{\description}{% + \list{}{\labelwidth\z@% + \itemindent-\leftmargin% + \labelsep5pt% + \let\makelabel=\descriptionlabel}} + +% Definition lists; requested by AMK for HOWTO documents. Probably useful +% elsewhere as well, so keep in in the general style support. +% +\newenvironment{definitions}{% + \begin{description}% + \def\term##1{\item[##1]\mbox{}\\*[0mm]} +}{% + \end{description}% +} + +% Tell TeX about pathological hyphenation cases: +\hyphenation{Base-HTTP-Re-quest-Hand-ler} + + +% The following is stuff copied from docutils' latex writer. +% +\newcommand{\optionlistlabel}[1]{\bf #1 \hfill} +\newenvironment{optionlist}[1] +{\begin{list}{} + {\setlength{\labelwidth}{#1} + \setlength{\rightmargin}{1cm} + \setlength{\leftmargin}{\rightmargin} + \addtolength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \renewcommand{\makelabel}{\optionlistlabel}} +}{\end{list}} + +\newlength{\lineblockindentation} +\setlength{\lineblockindentation}{2.5em} +\newenvironment{lineblock}[1] +{\begin{list}{} + {\setlength{\partopsep}{\parskip} + \addtolength{\partopsep}{\baselineskip} + \topsep0pt\itemsep0.15\baselineskip\parsep0pt + \leftmargin#1} + \raggedright} +{\end{list}} + +% Redefine includgraphics for avoiding images larger than the screen size +% If the size is not specified. +\let\py@Oldincludegraphics\includegraphics + +\newbox\image@box% +\newdimen\image@width% +\renewcommand\includegraphics[2][\@empty]{% + \ifx#1\@empty% + \setbox\image@box=\hbox{\py@Oldincludegraphics{#2}}% + \image@width\wd\image@box% + \ifdim \image@width>\linewidth% + \setbox\image@box=\hbox{\py@Oldincludegraphics[width=\linewidth]{#2}}% + \box\image@box% + \else% + \py@Oldincludegraphics{#2}% + \fi% + \else% + \py@Oldincludegraphics[#1]{#2}% + \fi% +} + + +% Fix the index and bibliography environments to add an entry to the Table of +% Contents; this is much nicer than just having to jump to the end of the book +% and flip around, especially with multiple indexes. +% +\let\py@OldTheindex=\theindex +\renewcommand{\theindex}{ + \cleardoublepage + \phantomsection + \py@OldTheindex + \addcontentsline{toc}{chapter}{\indexname} +} + +\let\py@OldThebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{ + \cleardoublepage + \phantomsection + \py@OldThebibliography{1} + \addcontentsline{toc}{chapter}{\bibname} +} + +% Include hyperref last. +\RequirePackage[colorlinks,breaklinks, + linkcolor=InnerLinkColor,filecolor=OuterLinkColor, + menucolor=OuterLinkColor,pagecolor=OuterLinkColor, + urlcolor=OuterLinkColor,citecolor=InnerLinkColor]{hyperref} + +% From docutils.writers.latex2e +\providecommand{\DUspan}[2]{% + {% group ("span") to limit the scope of styling commands + \@for\node@class@name:=#1\do{% + \ifcsname docutilsrole\node@class@name\endcsname% + \csname docutilsrole\node@class@name\endcsname% + \fi% + }% + {#2}% node content + }% close "span" +} diff --git a/docs/fr/_build/latex/tabulary.sty b/docs/fr/_build/latex/tabulary.sty new file mode 100644 index 00000000..ba83c0af --- /dev/null +++ b/docs/fr/_build/latex/tabulary.sty @@ -0,0 +1,452 @@ +%% +%% This is file `tabulary.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% tabulary.dtx (with options: `package') +%% DRAFT VERSION +%% +%% File `tabulary.dtx'. +%% Copyright (C) 1995 1996 2003 David Carlisle +%% This file may be distributed under the terms of the LPPL. +%% See 00readme.txt for details. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tabulary} + [2007/10/02 v0.9 tabulary package (DPC)] +\RequirePackage{array} +\catcode`\Z=14 +\DeclareOption{debugshow}{\catcode`\Z=9\relax} +\ProcessOptions +\def\arraybackslash{\let\\=\@arraycr} +\def\@finalstrut#1{% + \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1} +\newcount\TY@count +\def\tabulary{% + \let\TY@final\tabular + \let\endTY@final\endtabular + \TY@tabular} +\def\TY@tabular#1{% + \edef\TY@{\@currenvir}% + {\ifnum0=`}\fi + \@ovxx\TY@linewidth + \@ovyy\TY@tablewidth + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@F\the\count@\endcsname\relax + \@tempswafalse + \else + \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname + \csname TY@F\the\count@\endcsname + \global\expandafter\let\csname TY@F\the\count@\endcsname\relax + \expandafter\let\csname TY@S\the\count@\expandafter\endcsname + \csname TY@\the\count@\endcsname + \fi}% + \global\TY@count\@ne + \TY@width\xdef{0pt}% + \global\TY@tablewidth\z@ + \global\TY@linewidth#1\relax +Z\message{^^J^^JTable^^J% +Z Target Width: \the\TY@linewidth^^J% +Z \string\tabcolsep: \the\tabcolsep\space +Z \string\arrayrulewidth: \the\arrayrulewidth\space +Z \string\doublerulesep: \the\doublerulesep^^J% +Z \string\tymin: \the\tymin\space +Z \string\tymax: \the\tymax^^J}% + \let\@classz\TY@classz + \let\verb\TX@verb + \toks@{}\TY@get@body} +\let\TY@@mkpream\@mkpream +\def\TY@mkpream{% + \def\@addamp{% + \if@firstamp \@firstampfalse \else + \global\advance\TY@count\@ne + \edef\@preamble{\@preamble &}\fi + \TY@width\xdef{0pt}}% + \def\@acol{% + \TY@subwidth\col@sep + \@addtopreamble{\hskip\col@sep}}% + \let\@arrayrule\TY@arrayrule + \let\@classvi\TY@classvi + \def\@classv{\save@decl + \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@ + \sbox\z@{\d@llarbegin\@nextchar\d@llarend}% + \TY@subwidth{\wd\z@}% + \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}% + \prepnext@tok}% + \global\let\@mkpream\TY@@mkpream + \TY@@mkpream} +\def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble \vline} +\def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \@addtopreamble{\hskip \doublerulesep}\or + \@acol \or + \@classvii + \fi} +\def\TY@tab{% + \setbox\z@\hbox\bgroup + \let\[$\let\]$% + \let\equation$\let\endequation$% + \col@sep\tabcolsep + \let\d@llarbegin\begingroup\let\d@llarend\endgroup + \let\@mkpream\TY@mkpream + \def\multicolumn##1##2##3{\multispan##1\relax}% + \CT@start\TY@tabarray} +\def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}} +\def\TY@array[#1]{\@array[t]} +\def\TY@width#1{% + \expandafter#1\csname TY@\the\TY@count\endcsname} +\def\TY@subwidth#1{% + \TY@width\dimen@ + \advance\dimen@-#1\relax + \TY@width\xdef{\the\dimen@}% + \global\advance\TY@linewidth-#1\relax} +\def\endtabulary{% + \gdef\@halignto{}% + \let\TY@footnote\footnote% + \def\footnote{}% prevent footnotes from doing anything + \expandafter\TY@tab\the\toks@ + \crcr\omit + {\xdef\TY@save@row{}% + \loop + \advance\TY@count\m@ne + \ifnum\TY@count>\z@ + \xdef\TY@save@row{\TY@save@row&\omit}% + \repeat}\TY@save@row + \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1 + \unskip\global\setbox1=\lastbox}\egroup + \dimen@\TY@linewidth + \divide\dimen@\TY@count + \ifdim\dimen@<\tymin + \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}% + \tymin\dimen@ + \fi + \setbox\tw@=\hbox{\unhbox\@ne + \loop +\@tempdima=\lastskip +\ifdim\@tempdima>\z@ +Z \message{ecs=\the\@tempdima^^J}% + \global\advance\TY@linewidth-\@tempdima +\fi + \unskip + \setbox\tw@=\lastbox + \ifhbox\tw@ +Z \message{Col \the\TY@count: Initial=\the\wd\tw@\space}% + \ifdim\wd\tw@>\tymax + \wd\tw@\tymax +Z \message{> max\space}% +Z \else +Z \message{ \@spaces\space}% + \fi + \TY@width\dimen@ +Z \message{\the\dimen@\space}% + \advance\dimen@\wd\tw@ +Z \message{Final=\the\dimen@\space}% + \TY@width\xdef{\the\dimen@}% + \ifdim\dimen@<\tymin +Z \message{< tymin}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else + \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@ +Z \message{***}% + \global\advance\TY@linewidth-\dimen@ + \expandafter\xdef\csname TY@F\the\TY@count\endcsname + {\the\dimen@}% + \else +Z \message{> tymin}% + \global\advance\TY@tablewidth\dimen@ + \global\expandafter\let\csname TY@F\the\TY@count\endcsname + \maxdimen + \fi\fi + \advance\TY@count\m@ne + \repeat}% + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@checkmin + \TY@count\z@ + \let\TY@box\TY@box@v + \let\footnote\TY@footnote % restore footnotes + {\expandafter\TY@final\the\toks@\endTY@final}% + \count@\z@ + \@tempswatrue + \@whilesw\if@tempswa\fi{% + \advance\count@\@ne + \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax + \@tempswafalse + \else + \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname + \csname TY@SF\the\count@\endcsname + \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname + \csname TY@S\the\count@\endcsname + \fi}% + \TY@linewidth\@ovxx + \TY@tablewidth\@ovyy + \ifnum0=`{\fi}} +\def\TY@checkmin{% + \let\TY@checkmin\relax +\ifdim\TY@tablewidth>\z@ + \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth + \ifdim\TY@tablewidth <\linewidth + \def\TY@ratio{1}% + \fi +\else + \TY@warn{No suitable columns!}% + \def\TY@ratio{1}% +\fi +\count@\z@ +Z \message{^^JLine Width: \the\TY@linewidth, +Z Natural Width: \the\TY@tablewidth, +Z Ratio: \TY@ratio^^J}% +\@tempdima\z@ +\loop +\ifnum\count@<\TY@count +\advance\count@\@ne + \ifdim\csname TY@F\the\count@\endcsname>\tymin + \dimen@\csname TY@\the\count@\endcsname + \dimen@\TY@ratio\dimen@ + \ifdim\dimen@<\tymin +Z \message{Column \the\count@\space ->}% + \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin + \global\advance\TY@linewidth-\tymin + \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname + \let\TY@checkmin\TY@@checkmin + \else + \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}% + \advance\@tempdima\csname TY@F\the\count@\endcsname + \fi + \fi +Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }% +\repeat +Z \message{^^JTotal:\the\@tempdima^^J}% +} +\let\TY@@checkmin\TY@checkmin +\newdimen\TY@linewidth +\def\tyformat{\everypar{{\nobreak\hskip\z@skip}}} +\newdimen\tymin +\tymin=10pt +\newdimen\tymax +\tymax=2\textwidth +\def\@testpach{\@chclass + \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else + \ifnum \@lastchclass=7 5 \else + \ifnum \@lastchclass=8 \tw@ \else + \ifnum \@lastchclass=9 \thr@@ + \else \z@ + \ifnum \@lastchclass = 10 \else + \edef\@nextchar{\expandafter\string\@nextchar}% + \@chnum + \if \@nextchar c\z@ \else + \if \@nextchar l\@ne \else + \if \@nextchar r\tw@ \else + \if \@nextchar C7 \else + \if \@nextchar L8 \else + \if \@nextchar R9 \else + \if \@nextchar J10 \else + \z@ \@chclass + \if\@nextchar |\@ne \else + \if \@nextchar !6 \else + \if \@nextchar @7 \else + \if \@nextchar <8 \else + \if \@nextchar >9 \else + 10 + \@chnum + \if \@nextchar m\thr@@\else + \if \@nextchar p4 \else + \if \@nextchar b5 \else + \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi + \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \ifcase\@chnum + \hfil \d@llarbegin\insert@column\d@llarend \hfil \or + \kern\z@ + \d@llarbegin \insert@column \d@llarend \hfil \or + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious "s" case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi}\prepnext@tok} +\def\TY@box#1{% + \ifx\centering#1% + \hfil \d@llarbegin\insert@column\d@llarend \hfil \else + \ifx\raggedright#1% + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfil \else + \ifx\raggedleft#1% + \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else + \ifx\relax#1% + \d@llarbegin \insert@column \d@llarend + \fi \fi \fi \fi} +\def\TY@box@v#1{% + \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}% + #1\arraybackslash\tyformat + \insert@column\@endpbox} +\newdimen\TY@tablewidth +\def\Gscale@div#1#2#3{% + \setlength\dimen@{#3}% + \ifdim\dimen@=\z@ + \PackageError{graphics}{Division by 0}\@eha + \dimen@#2% + \fi + \edef\@tempd{\the\dimen@}% + \setlength\dimen@{#2}% + \count@65536\relax + \ifdim\dimen@<\z@ + \dimen@-\dimen@ + \count@-\count@ + \fi + \loop + \ifdim\dimen@<8192\p@ + \dimen@\tw@\dimen@ + \divide\count@\tw@ + \repeat + \dimen@ii=\@tempd\relax + \divide\dimen@ii\count@ + \divide\dimen@\dimen@ii + \edef#1{\strip@pt\dimen@}} +\long\def\TY@get@body#1\end + {\toks@\expandafter{\the\toks@#1}\TY@find@end} +\def\TY@find@end#1{% + \def\@tempa{#1}% + \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa + \else\toks@\expandafter + {\the\toks@\end{#1}}\expandafter\TY@get@body\fi} +\def\TY@warn{% + \PackageWarning{tabulary}} +\catcode`\Z=11 +\AtBeginDocument{ +\@ifpackageloaded{colortbl}{% +\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1% + \expandafter{% + \expandafter\let\expandafter\CT@setup\expandafter\relax + \expandafter\let\expandafter\CT@color\expandafter\relax + \expandafter\let\expandafter\CT@do@color\expandafter\relax + \expandafter\let\expandafter\color\expandafter\relax + \expandafter\let\expandafter\CT@column@color\expandafter\relax + \expandafter\let\expandafter\CT@row@color\expandafter\relax + \@mkpream{#1}} +\let\TY@@mkpream\@mkpream +\def\TY@classz{% + \@classx + \@tempcnta\count@ + \ifx\TY@box\TY@box@v + \global\advance\TY@count\@ne + \fi + \let\centering c% + \let\raggedright\noindent + \let\raggedleft\indent + \let\arraybackslash\relax + \prepnext@tok +\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil + \ifnum\@chnum<4 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \ifnum\@chnum=6 + \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ + \fi + \@addtopreamble{% + \setbox\z@\hbox\bgroup\bgroup + \ifcase\@chnum + \hskip\stretch{.5}\kern\z@ + \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or + \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<< + \d@llarbegin \insert@column \d@llarend \hfill \or + \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or + $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or + \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or + \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or + \d@llarbegin \insert@column \d@llarend \or% dubious s case + \TY@box\centering\or + \TY@box\raggedright\or + \TY@box\raggedleft\or + \TY@box\relax + \fi + \egroup\egroup +\begingroup + \CT@setup + \CT@column@color + \CT@row@color + \CT@do@color +\endgroup + \@tempdima\ht\z@ + \advance\@tempdima\minrowclearance + \vrule\@height\@tempdima\@width\z@ +\unhbox\z@ +}\prepnext@tok}% + \def\TY@arrayrule{% + \TY@subwidth\arrayrulewidth + \@addtopreamble{{\CT@arc@\vline}}}% + \def\TY@classvi{\ifcase \@lastchclass + \@acol \or + \TY@subwidth\doublerulesep + \ifx\CT@drsc@\relax + \@addtopreamble{\hskip\doublerulesep}% + \else + \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}% + \fi\or + \@acol \or + \@classvii + \fi}% +}{% +\let\CT@start\relax +} +} +{\uccode`\*=`\ % +\uppercase{\gdef\TX@verb{% + \leavevmode\null\TX@vwarn + {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces + \@ifstar{\let~*\TX@vb}{\TX@vb}}}} +\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}% + \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!} +\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= } +\begingroup +\catcode`\*=\catcode`\# +\catcode`\#=12 +\gdef\TX@vfirst{% + \if\@tempa#% + \def\@tempb{\TX@v@#}% + \else + \let\@tempb\TX@v@ + \if\@tempa\space~\else\@tempa\fi + \fi + \@tempb} +\gdef\TX@v@*1 *2{% + \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2} +\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2} +\endgroup +\def\TX@vwarn{% + \@warning{\noexpand\verb may be unreliable inside tabularx/y}% + \global\let\TX@vwarn\@empty} +\endinput +%% +%% End of file `tabulary.sty'. diff --git a/docs/fr/basis.rst b/docs/fr/basis.rst new file mode 100644 index 00000000..7a6fd118 --- /dev/null +++ b/docs/fr/basis.rst @@ -0,0 +1,58 @@ +Les bases de Pelican +#################### + +Créer son premier article +========================= + +Pour créer notre premier article, nous allons éditer un fichier, par exemple premier_article.rst :: + + Premier article pour Pelican + ############################ + :author: Guillaume + :date: 2011-01-08 10:20 + :category: GNU-Linux + :tags: tutoriel, git + Ceci est un tutoriel pour configurer git. + Bla, bla, bla .... + +Maintenant que ce fichier est créé, on va lancer la création du blog :: + + pelican . + +Vous aller obtenir une sortie comme celle ci — $PATH représente le dossier où vous +avez créé votre article :: + + [ok] writing $PATH/output/feeds/all.atom.xml + [ok] writing $PATH/output/feeds/GNU/Linux.atom.xml + [ok] writing $PATH/output/feeds/all-en.atom.xml + [ok] writing $PATH/output/premier-article-pour-pelican.html + [ok] writing $PATH/output/index.html + [ok] writing $PATH/output/tags.html + [ok] writing $PATH/output/categories.html + [ok] writing $PATH/output/archives.html + [ok] writing $PATH/output/tag/tutoriel.html + [ok] writing $PATH/output/tag/git.html + [ok] writing $PATH/output/category/GNU-Linux.html + + +Première analyse +================ + +Nous allons décortiquer un peu tout ça ensemble. + +* Un dossier output/ a été créé pour y mettre le fichiers xml et html du blog. +* Dans le dossier feeds/, nous retrouvons les différents flux de syndication. +* Le fichier de l’article et la page principale du blog a été généré. +* Le répertoire tag/ propose une page par tag. +* La page correspondant à la catégorie est générée dans le répertoire category/ + +Si vous ouvrez le fichier index.html — ou un autre — avec votre navigateur, vous +remarquerez que : + +* Le thème utilisé par défaut est notmyidea +* Le nom du blog est A Pelican Blog. + +Bien évidemment, il y a des paramètres de base que l’on peut modifier pour mettre +un peu tout ça à sa sauce. C’est ce que nous allons voir au travers du fichier de configuration. + + diff --git a/docs/fr/conf.py b/docs/fr/conf.py new file mode 100644 index 00000000..301ec096 --- /dev/null +++ b/docs/fr/conf.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# sys.path.insert(0, os.path.abspath('..')) + +# -- General configuration ----------------------------------------------------- +templates_path = ['../_templates'] +extensions = ['sphinx.ext.autodoc',] +source_suffix = '.rst' +master_doc = 'index' +project = u'Pelican' +copyright = u'2010, Alexis Metaireau and contributors' +exclude_patterns = ['_build'] +pygments_style = 'sphinx' +version = "2" +release = version + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +sys.path.append(os.path.abspath('../_themes')) +html_theme_path = ['../_themes'] +html_theme = 'flask_small' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + 'index_logo': 'pelican.png', + 'github_fork': 'ametaireau/pelican', +} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['../_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Raclettedoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'Raclette.tex', u'Raclette Documentation', + u'Alexis Métaireau', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'raclette', u'Raclette Documentation', + [u'Alexis Métaireau'], 1) +] diff --git a/docs/fr/faq.rst b/docs/fr/faq.rst new file mode 100644 index 00000000..bee1dd54 --- /dev/null +++ b/docs/fr/faq.rst @@ -0,0 +1,38 @@ +Frequently Asked Questions (FAQ) +################################ + +Here is a summary of the frequently asked questions for pelican. + +Is it mandatory to have a configuration file ? +============================================== + +No, it's not. Configurations files are just an easy way to configure pelican. +For the basic operations, it's possible to specify options while invoking +pelican with the command line (see `pelican --help` for more informations about +that) + +I'm creating my own theme, how to use pygments ? +================================================ + +Pygment add some classes to the generated content, so the theming of your theme +will be done thanks to a css file. You can have a look to the one proposed by +default `on the project website `_ + +How do I create my own theme ? +============================== + +Please refer yourself to :ref:`theming-pelican`. + +How can I help ? +================ + +You have different options to help. First, you can use pelican, and report any +idea or problem you have on `the bugtracker +`_. + +If you want to contribute, please have a look to `the git repository +`_, fork it, add your changes and do +a pull request, I'll review them as soon as possible. + +You can also contribute by creating themes, and making the documentation +better. diff --git a/docs/fr/index.rst b/docs/fr/index.rst new file mode 100644 index 00000000..3d77a923 --- /dev/null +++ b/docs/fr/index.rst @@ -0,0 +1,54 @@ +Pelican +####### + +Pelican est un generateur de blog simple codé en python + +* Écrivez vos articles directement dans votre éditeur favori (vim !) et + directement en syntaxe reStructuredText ou Markdown ; +* Un outil simple en ligne de conmmande pour (re)générer le blog ; +* Sortie complètement statique, facile pour l'héberger n'importe où ; + +Fonctionnalités +=============== + +Pelican supporte actuellement : + +* des articles de blog ; +* des pages statiques ; +* les commentaires via un service externe (`disqus `_) + Notez qu'étant bien un service externe assez pratique, vous ne gérez pas + vous même les commentaires. Ce qui pourrait occasionner une perte de vos données; +* support de template (les templates sont crées avec `jinja2 `_) ; +* génération optionnelle de vos pages et articles en pdf. + +Pourquoi le nom "Pelican" ? +============================ + +Vous n'avez pas remarqué ? "Pelican" est un anagramme pour "Calepin" ;) + +Code source +=========== + +Vous pouvez accéder au code source via mercurial sur http://hg.notmyidea.org/pelican/ +ou via git à l'adresse http://github.com/ametaireau/pelican/ + +Feedback ! +========== + +Si vous voulez de nouvelles fonctionnalitées pour Pelican, n'hésitez pas à nous le dire, +à cloner le dépôt, etc … C'est open source !!! + +Contactez Alexis à "alexis at notmyidea dot org" pour quelques requêtes ou retour d'expérience que ce soi ! + +Documentation +============= + +.. toctree:: + :maxdepth: 2 + + install + basis + settings + themes + internals + faq diff --git a/docs/fr/index.rst.save b/docs/fr/index.rst.save new file mode 100644 index 00000000..822f0fcd --- /dev/null +++ b/docs/fr/index.rst.save @@ -0,0 +1,53 @@ +Pelican +####### + +Pelican est un generateur de blog simple codé en python + +* Écrivez vos articles directement dans votre éditeur favori (vim !) et + directement en syntaxe reStructuredText ou Markdown ; +* Un outil simple en ligne de conmmande pour (re)générer le blog ; +* Sortie complètement statique, facile pour l'héberger n'importe où ; + +Fonctionnalités +=============== + +Pelican supporte actuellement : + +* des articles de blog ; +* des pages statiques ; +* les commentaires via un service externe (`disqus `_) + Notez qu'étant bien un service externe assez pratique, vous ne gérez pas + vous même les commentaires. Ce qui pourrait occasionner une perte de vos données; +* support de template (les templates sont crées avec Jinja 2 `jinja2 `_) ; +* génération optionnelle de vos pages et articles en pdf. + +Pourquoi le nom "Pelican" ? +============================ + +Vous n'avez pas remarqué ? "Pelican" est un anagramme pour "Calepin" ;) + +Code source +=========== + +Vous pouvez accéder au code source via mercurial sur http://hg.notmyidea.org/pelican/ +ou via git à l'adresse http://github.com/ametaireau/pelican/ + +Feedback ! +========== + +Si vous voulez de nouvelles fonctionnalitées pour Pelican, n'hésitez pas à me le dire, +à cloner le dépôt, etc … C'est open source !!! + +Contactez Ale "alexis at notmyidea dot org" pour quelques requêtes ou retour d'expérience que ce soi ! + +Documentation +============= + +.. toctree:: + :maxdepth: 2 + + getting_started + settings + themes + internals + faq diff --git a/docs/fr/install.rst b/docs/fr/install.rst new file mode 100644 index 00000000..e853979d --- /dev/null +++ b/docs/fr/install.rst @@ -0,0 +1,67 @@ +Installation et mise à jour de Pelican +###################################### + +Installation +============ + +Il y a deux façons d’installer Pelican sur son système. La première est via l’utilitaire +pip, l’autre façon est de télécharger Pelican via Github. Ici nous allons voir les deux +façons de procéder. + +Via pip +------- + +Pour installer Pelican via pip, vous aurez besoin du paquet python-pip. puis installez Pelican :: + + # apt-get install python-pip + # pip install pelican + + +Via Github +---------- + +Pour installer Pelican en reprenant le code via Github, nous aurons besoin du paquet +git-core pour récupérez les sources de Pelican. Puis nous procédons à l’installation :: + + # apt-get install git-core + $ git clone https://github.com/ametaireau/pelican.git + $ cd pelican + # python setup.py install + +Mises à jour +============ + +Via pip +------- + +Rien de bien compliqué pour mettre à jour via pip :: + + $ cd votreRepertoireSource + $ pip install --upgrade pelican + + +Via Github +---------- + +C'est un peu plus long avec Github par contre :: + + $ cd votreRepertoireSource + $ git pull origin master + $ cd pelican + # python setup.py install + +Vous aurez un message d’erreur si le module setuptools de python n’est pas installé. +La manipulation est la suivante :: + + # apt-get install python-setuptools + +Alors, quelle méthode choisir ? +=============================== + +Vous avez le choix entre deux méthodes, mais aussi entre deux concepts. La méthode +de Github est la version de développement, où les modifications arrivent assez +fréquemment sans être testées à fond. La version de pip est une version arrêtée avec un +numéro de version dans laquelle vous aurez moins de bug. N’oubliez cependant pas +que le projet est très jeune et manque donc de maturité. Si vous aimez avoir les toutes +dernières versions utilisez Github, sinon penchez vous sur pip. + diff --git a/docs/fr/internals.rst b/docs/fr/internals.rst new file mode 100644 index 00000000..80fc8661 --- /dev/null +++ b/docs/fr/internals.rst @@ -0,0 +1,81 @@ +Pelican internals +################# + +This section describe how pelican is working internally. As you'll see, it's +quite simple, but a bit of documentation doesn't hurt :) + +Overall structure +================= + +What `pelican` does, is taking a list of files, and processing them, to some +sort of output. Usually, the files are restructured text and markdown files, +and the output is a blog, but it can be anything you want. + +I've separated the logic in different classes and concepts: + +* `writers` are responsible of all the writing process of the + files. It's writing .html files, RSS feeds and so on. Since those operations + are commonly used, the object is created once, and then passed to the + generators. + +* `readers` are used to read from various formats (Markdown, and Restructured + Text for now, but the system is extensible). Given a file, they return + metadata (author, tags, category etc) and content (HTML formated) + +* `generators` generate the different outputs. For instance, pelican comes with + `ArticlesGenerator` and `PageGenerator`, into others. Given + a configurations, they can do whatever they want. Most of the time it's + generating files from inputs. + +* `pelican` also uses `templates`, so it's easy to write you own theme. The + syntax is `jinja2`, and, trust me, really easy to learn, so don't hesitate + a second. + +How to implement a new reader ? +=============================== + +There is an awesome markup language you want to add to pelican ? +Well, the only thing you have to do is to create a class that have a `read` +method, that is returning an HTML content and some metadata. + +Take a look to the Markdown reader:: + + class MarkdownReader(object): + + def read(self, filename): + """Parse content and metadata of markdown files""" + text = open(filename) + md = Markdown(extensions = ['meta', 'codehilite']) + content = md.convert(text) + + metadatas = {} + for name, value in md.Meta.items(): + if name in _METADATAS_FIELDS: + meta = _METADATAS_FIELDS[name](value[0]) + else: + meta = value[0] + metadatas[name.lower()] = meta + return content, metadatas + +Simple isn't it ? + +How to implement a new generator ? +================================== + +Generators have basically two important methods. You're not forced to create +both, only the existing ones will be called. + +* `generate_context`, that is called in a first place, for all the generators. + Do whatever you have to do, and update the global context if needed. This + context is shared between all generators, and will be passed to the + templates. For instance, the `PageGenerator` `generate_context` method find + all the pages, transform them into objects, and populate the context with + them. Be careful to *not* output anything using this context at this stage, + as it is likely to change by the effect of others generators. + +* `generate_output` is then called. And guess what is it made for ? Oh, + generating the output :) That's here that you may want to look at the context + and call the methods of the `writer` object, that is passed at the first + argument of this function. In the `PageGenerator` example, this method will + look at all the pages recorded in the global context, and output a file on + the disk (using the writer method `write_file`) for each page encountered. diff --git a/docs/fr/settings.rst b/docs/fr/settings.rst new file mode 100644 index 00000000..e59d1b5b --- /dev/null +++ b/docs/fr/settings.rst @@ -0,0 +1,111 @@ +Settings +######## + +Specifying the settings +======================= + +Pelican is configurable thanks to a configuration file, that you can pass to +the command line:: + + $ pelican -s path/to/your/settingsfile.py path + +Settings are given as the form of a python module (a file). You can have an +example by looking at `/samples/pelican.conf.py +`_ + +All the settings identifiers must be set in caps, otherwise they will not be +processed. + +Here are the available settings. Please note that all the settings you put in +this file will be passed to the templates as well. + +======================= ======================================================= +Setting name what it does ? +======================= ======================================================= +`AUTHOR` Default author (put your name) +`CATEGORY_FEED` Where to put the atom categories feeds. default is + `feeds/%s.atom.xml`, where %s is the name of the + category. +`CATEGORY_FEED_RSS` Where to put the categories rss feeds. default is None + (no rss) +`CSS_FILE` To specify the CSS file you want to load, if it's not + the default one ('main.css') +`DEFAULT_CATEGORY` The default category to fallback on. `misc` by default. +`DEFAULT_LANG` The default language to use. Default is 'en'. +`DISPLAY_PAGES_ON_MENU` Display or not the pages on the menu of the template. + Templates can follow or not this settings. +`FALLBACK_ON_FS_DATE` If True, pelican will use the file system dates infos + (mtime) if it can't get informations from the + metadata? +`FEED` relative url to output the atom feed. Default is + `feeds/all.atom.xml` +`FEED_RSS` relative url to output the rss feed. Default is + None (no rss) +`JINJA_EXTENSIONS` A list of any Jinja2 extensions you want to use. + Default is no extensions (the empty list). +`KEEP_OUTPUT_DIRECTORY` Keep the output directory and just update all the generated files. + Default is to delete the output directory. +`MARKUP` A list of available markup languages you want to use. + For the moment, only available values are `rst` and `md`. +`OUTPUT_PATH` Where to output the generated files. Default to + "output" +`PATH` path to look at for input files. +`PDF_PROCESSOR` Put True if you want to have PDF versions of your + documents. You will need to install `rst2pdf`. +`REVERSE_ARCHIVE_ORDER` Reverse the archives order. (True makes it in + descending order: the newer first) +`SITEURL` base URL of your website. +`SITENAME` Your site name, +`STATIC_PATHS` The static paths you want to have accessible on the + output path "static". By default, pelican will copy + the 'images' folder to the output folder. +`STATIC_THEME_PATHS` Static theme paths you want to copy. Default values + is `static`, but if your theme have others static paths, + you can put them here. +`THEME` theme to use to product the output. can be the + complete static path to a theme folder, or chosen + between the list of default themes (see below) +`TRANSLATION_FEED` Where to put the RSS feed for translations. Default + is feeds/all-%s.atom.xml where %s is the name of the + lang. +======================= ======================================================= + +Themes +====== + +3 themes are available. You can specify them using the `-t` option: + +* notmyidea +* simple (a synonym for "full text" :) +* martyalchin + +You can define your own theme too, and specify it's emplacement in the same +way (be sure to specify the full absolute path to it). + +Here is `a guide on how to create your theme +`_ + +The `notmyidea` theme can make good use of the following settings. I recommend +to use them too in your themes. + +======================= ======================================================= +Setting name what it does ? +======================= ======================================================= +`DISQUS_SITENAME` Pelican can handle disqus comments, specify the + sitename you've filled in on disqus +`GITHUB_URL` Your github URL (if you have one), it will then + use it to create a github ribbon. +`GOOGLE_ANALYTICS` 'UA-XXXX-YYYY' to activate google analytics. +`LINKS` A list of tuples (Title, Url) for links to appear on + the header. +`SOCIAL` A list of tuples (Title, Url) to appear in the "social" + section. +`TWITTER_USERNAME` Allows to add a button on the articles to tweet about + them. Add you twitter username if you want this + button to appear. +======================= ======================================================= + +In addition, you can use the "wide" version of the `notmyidea` theme, by +adding that in your configuration:: + + CSS_FILE = "wide.css" diff --git a/docs/fr/themes.rst b/docs/fr/themes.rst new file mode 100644 index 00000000..7d492544 --- /dev/null +++ b/docs/fr/themes.rst @@ -0,0 +1,106 @@ +.. _theming-pelican: + +How to create themes for pelican +################################ + +Pelican uses the great `jinja2 `_ templating engine to +generate it's HTML output. The jinja2 syntax is really simple. If you want to +create your own theme, feel free to take inspiration from the "simple" theme, +which is available `here +`_ + +Structure +========= + +To make your own theme, you must follow the following structure:: + + ├── static + │   ├── css + │   └── images + └── templates + ├── archives.html // to display archives + ├── article.html // processed for each article + ├── categories.html // must list all the categories + ├── category.html // processed for each category + ├── index.html // the index. List all the articles + ├── page.html // processed for each page + ├── tag.html // processed for each tag + └── tags.html // must list all the tags. Can be a tag cloud. + +* `static` contains all the static content. It will be copied on the output + `theme/static` folder then. I've put the css and image folders, but they are + just examples. Put what you need here. + +* `templates` contains all the templates that will be used to generate the content. + I've just put the mandatory templates here, you can define your own if it helps + you to organize yourself while doing the theme. + +Templates and variables +======================= + +It's using a simple syntax, that you can embbed into your html pages. +This document describes which templates should exists on a theme, and which +variables will be passed to each template, while generating it. + +All templates will receive the variables defined in your settings file, if they +are in caps. You can access them directly. + +Common variables +---------------- + +All of those settings will be given to all templates. + +============= =================================================== +Variable Description +============= =================================================== +articles That's the list of articles, ordsered desc. by date + all the elements are `Article` objects, so you can + access their properties (e.g. title, summary, author + etc. +dates The same list of article, but ordered by date, + ascending +tags A dict containing each tags (keys), and the list of + relative articles. +categories A dict containing each category (keys), and the + list of relative articles. +pages The list of pages +============= =================================================== + +category.html +------------- + +This template will be processed for each of the existing categories, and will +finally remain at output/category/`category_name`.html. + +============= =================================================== +Variable Description +============= =================================================== +articles The articles of this category +category The name of the category being processed +============= =================================================== + +article.html +------------- + +This template will be processed for each article. .html files will be outputed +in output/`article_name`.html. Here are the specific variables it gets. + +============= =================================================== +Variable Description +============= =================================================== +article The article object to be displayed +category The name of the category of the current article +============= =================================================== + +tag.html +-------- + +For each tag, this template will be processed. It will create .html files in +/output/tag/`tag_name`.html + +============= =================================================== +Variable Description +============= =================================================== +tag The name of the tag being processed +articles Articles related to this tag +============= ===================================================