diff options
author | Norbert Preining <norbert@preining.info> | 2022-05-23 03:03:21 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-05-23 03:03:21 +0000 |
commit | 989493fc0cf04ec736a261d39eee40e1d7bdf4be (patch) | |
tree | a277a139c974ad3d3703fa42439cb0da70de6f89 /macros | |
parent | fcedb80554137a681150f48c9a1ca20dbfb2e83a (diff) |
CTAN sync 202205230303
Diffstat (limited to 'macros')
24 files changed, 8207 insertions, 7548 deletions
diff --git a/macros/latex/contrib/functional/functional.pdf b/macros/latex/contrib/functional/functional.pdf index b154fa20cc..7cedd591e7 100644 --- a/macros/latex/contrib/functional/functional.pdf +++ b/macros/latex/contrib/functional/functional.pdf @@ -1026,11 +1026,15 @@ endobj << /S /GoTo /D [ 586 0 R /Fit ] >> endobj 589 0 obj -<< /Filter /FlateDecode /Length 1112 >> +<< /Filter /FlateDecode /Length 1109 >> stream -xڕXɎ7+CE@0
D7ç%sH.un.W~(̃vبl`{udi(ۤf7cBܣ1h*?Ce~wz]p'bEc?=շf|!Utdňwgrew86;.ʮ<+(ڊumHb#WMB$"]gDRd^tN@27#Ё|t902F>ӖD0e/ʚWzN-PdoɉQK6QaړM襆UAXP(u-Hڭw?>DB;^ͅ\G|M@,rQmf~wIH.wA~"QBG!Y~&kI]yt_k-8NIt`MJa<r -]AjiUQ;QK ]"HY38WOicƱ3mI!Ry -koSEWkӗo4wY@'Slw+^+GaSN%+3.(rA(bwkMatzYǰztLy٤"he@7u[qhVm9>+߅399@po2S\_ի11x
:ؚrN~lK?(l +xڕXn8WLh4`#L߂f\Crߟb7Ilw KR|^-j+](vRw tqF -(K8]|9+e5^J-s瓒*'?뻘OZ&{8s9
/Xџ[ +6Hު3hE3YYl,'sޕ1eeuVmY%3BQ*2etVx45!$Я|`y8ȂY{\v+yn|EXT
{EaW.2RB%2 +@&en69"kp} 4~D8 +2/}v +|Fe0b O_Ŀx}YtR +VHoSs6$I:,gǿnj8_Vq**˽=YY2kZ.I)D7+CCmSU`zUzSpoۻt3Jɦ$ҭJT2 `#-JɔPՏ/$df`?Kg.yoYr6']:x(nuпva[%Yjkhᑞ}]yZǷZa2wqezN\/Oֺsmyv^VQnEKEQf+.؇f}iOۣhvoy3,7.9͜Sr4Lx:Jj3a
5&ݳ"cqVj*v-6K]UD +pS=LΑ{|Lm9nJ2LxbC9J S~%<w Uc+ #qDf:!:>Rm"UP>>t%6/=+2z9-gZ؞ 2a+zO;0Ի̶W@SF6yjѹ1z>T#ihn.6P]-O}BwP6wEu{`e).I`K/y*tfp٤eH=mpN{<gD_"Rl endstream endobj 586 0 obj @@ -1484,14 +1488,18 @@ endobj 767 0 obj << /Filter /FlateDecode /Length 1907 >> stream -xɎ6@f*5= ǠoA)!$͙Lu0,[Ţkc>-O\=b$H~zN-IiC(3~D)\(RR)E%;퐉^A=W8"J洽i<שo_P
]2bH8?~Ý3];9cʊuejb"i4xUM[iA<.jvgJg!80pQek[қ -j;@Jw1w;G}@N7XV - -rWAD:b+?ge;d2r[;.ŀĠ<./t|o!,0{tqQʆO0dLfOX3.{9u -I?r-<fCtDOm<ɰfpΓ2-ňRl]cku.g{?KE$60$ӞO.g-rÄup34+g袦V6mR{tv1yo1+ -XqE'p -ZfCh˘^s[2H,z5׆lI/G.C+Ɉja?˶KX`H5bSbQ걶`%ש[+Vgbt}-Qɑ<+3|hB+pkhpt;ϲFj0S+IȭwH_X'
v
%N?F)O<tdHrFuܷu[ժυ`Q*e3"ᙻLڧJ],SruD 7t#ۑG{'-+E4Xt?Npy,u l[&bS˻862:C#Gz [`<z] ]RdR#ꙑ-BXJgUP~߉Ӗ#o,N]=!srdV#"cd=c?H^#ʾy3)Kꫤn=")N;-Gin(+{,)t&R3U{ /wQu3љ\d4HKlS,'b:#D#|S&[fUጒLǹN;apuQ>GjFփ7f>`$k"ϭ#<?m丮EkR|>W/KY[(F'0~-sC,x&A:f
VCw05a}$8-I`HؙFb^az(鼲1xxpbO(D1^S -H`k\9,1yfԔԇa 64'9ę.<d9R
Q߷g`fPOLČt&W"V<fF-ag$>#v|v&dgHfGG{'PgmINcōZG[pPO +xɎ6@aHWhq1[kr%WqghEŢkcׂO/7->s +3pB#Q` S FZ^zB(&b6,5ՑFj';i ő28"53͜3U¤C /WZt7))Vbi}WSSP
ַQ(T7z~VaG85?ER_ssaVlz9XTvfsjuқEwORb xW˽'
˽S( +Oh9曳mSJ^K6k&-f$x[^+nvUQKQt^ԟvOg3 +- +%6e[H`!э=I0$Vޟ=:wy<$ARu}\5z>6v~I.MIݩ]Z +:Wq.g#gࢦyV6mR{tv1yo!+DXq't +ZfC)˘-/\T$c2o-׆dM/ +X@%G^5̮̄u_ +a6nflg^{5ݩs +$"`Uhs|$[|~`=wuXLS审>則liLVNU(nWϔB6Zu(Y%rZ$&1sL +Dh7KT3rZH<^fdHIvމbˊe,9lc=.d-sDW8eLƐH-y +߳&FqߥO畝ӵ8Ж PsA>#Ƅ^gzK) #aα5g,pCmv)+OMya [T1ؐC2ޱsMT*} endstream endobj 766 0 obj @@ -1606,28 +1614,22 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F35 638 0 R /F48 640 0 R >> /ProcSet [ /PDF /Text ] >> endobj 772 0 obj -<< /Filter /FlateDecode /Length 3530 >> -stream -x\;#W0ƻjkWU$_R$[J|h -Vo__
,.?N?pؿ}yw -<߾<S$8y -ZQRk4Qb(ZZfPdNL -$bBk&{Z.߹cpls5D#̋acܨMR"5$j0u,$(&pV3`똂QhhŌ7'KKÞˊ\:U;B}\8C^b_Njxoe:a+Wan^ -(XۥrdV9K1:I=xA1LOKh|K'|t݀n[ʹ5Ka~'ޢ9dіGNV;YcY B9Ϻ71\k6qD3w9D=cՅ~2I.2]ipIҔzl&goI}I?`yH@?tha}u6[wX[[p6@W[T}gS߱8Nhq=ɠ30ГʩiAށ[!.)Sip)6W; xGbЛå`%{5ݫ&;;PǃB}l3պyb3EW2MG@nE%/S^9"B3=E -JV72}>C kLPL'$xAWbhU"c@0V53H+է9%jlM0 -^ -yQ%?S##Jos+4
ۖNe-ف
oɘ.CN{M\(l^%%.X&%:, yK}IsJ;iMT ($y2041CεI\/jRZN+DmRKRGy5'c9D̾ -`$
PC=QC0jYM[Au!(s9Ar{Qq5YʡݟCژbBoS9d^dM$_U
j|VPG(2e2U|sQGt=X
jPM*wD/7~bqWTN_~JW -F^bd;]veB}Oh.S5*d^JHbXQPm< LYa˛ox69\(gFS(V9 ?5@wm5/=_7ZZ!bWp5ȟ;$ *>wgo0V0o{&;둍u!gnܩP"vaL)lzk4rEF{j+1HrI2.\N -u,u=TFX{PJx5A3#띫0aѐlRxhZ2kY: -LmTQBvӗ]\L(e3x7G&ðJ#ܲB&l˅YI1sF7σu/M8 {jmԺ/CQXU^z$ _X:FxfaiEW˺ApwFz*Hl1uc,cn[feI -Vjki: ҭueM\j'Ac$n2l Zݮu{u<6<xIeE0e2.qYx/exƘo:aiZ.DoDGUfݪ˅=c:rM8?qHjgxNp7y_z8^0SHG<&kY
:(E'TSE(˩b" Aڹ}]Ɵbb!nգ\:FCTftO\n:@~LriiqÎ^oŢóa} -Joq -g >v'\hDh t0ޛF -@axK>vBIous4Rp1F;zqHOqěSʽin㽩 5'[S -n Z*ImTt9'-RE]T8bG|Ft -99C7H.,:z^Sp!$0s쓦z5I̷lQ"Wl8'}>?&$~͜}*bo&)ha6=wb# -Wuw&
GK*FxLrӖTQ@w۵{),-_4ID_]ۚ'94լbIٚPNڔs-jRޓ},M3U-nAڮ&Sڀz>V-T.Qd|7z]5,v68;6ϤTv&06`A:b*rmtf<]}KӒZ18jrMWNnLyw&RWYe2t5t|pnSo\H̚T-yBgU;RA+̈́'L`<2^ +<< /Filter /FlateDecode /Length 3542 >> +stream +x\;#W0n<(zULe*E؉3CrxZF&?q^x{w'LkPpoIgV듶Pӗ_^9Ϝ;{Ε\;}Bh_Xl^L)UsPg% ї~B#$CgTZ3 +zOٰODE56$=LL^ +0AT1V|=IPqIBs-Ir5f5C/K6?s7,o#Lviص4CzO_y4IPS5h9 MU!'Q0jgqFwS?&Oᦱ~w%8N}}A:&Ip7MSOʖIVIVńÓ^Y@W@9?'s8*@0UQnd#
ZQTk2Ab$jLlN +{ĄR{Zڴܱ9S8[ll =WFx
4˸QV"U4Q
:@XJ$%ͪLf7"R%6F$i0 qs@>L{vQ0zUUwPWB)N~Kb/@lm䀆YC\QL{1`.]<#ȌR7sDzStB:e%K4E>]4v7F1F1RzIh<''Yvlі3ҖG4#Ǭ'nk<u7LcF$!hWnNgx*t(գt @_Y<=>g=B%}Ƣ}1Ƣ-@$L?th`#}ugۺk݃lzP̈xB +𩹉"HWQr%Ekzj*x.txOTwq
:]rD.(Uv@_S>g`&t{B%ÜagtBVܴcBOQVK1\EJf+*I|Q?#(D[#*kk=TH` +%Q3Av?=oMx/hKy\wV_JV#)އ b@Vn$K]b91Vl +{13H:dZMڙ0Gȳuڑ +
!1666e?,Г1݅Q#8I<wO]\#<٥NWvKI?`Jکբ#nڃr6|s9B/ھ(*sIʡޟCܘbBoS9diU_$M5r*&<6{Xe2U|sIG,L$ڡrUwX&#Iח_~oAد\)_ +{ +r9`o$1,1\*M{ƹ`#Wy4i\XmuHWʋk囩oɑn[|%TM_val#!;FPIJGD9O
볯JFPnYd! +ȑ݊UR+UGAduQPɃ,Z
ݮdӒX{u>:Ai|@ +I +ߖȑ?B|;O(N"?o7.ްl[Z{:ײ]P{pRGlne/<C,& +kZ endstream endobj 771 0 obj @@ -1649,20 +1651,14 @@ endobj << /Font << /F34 637 0 R /F15 639 0 R /F55 774 0 R /F36 775 0 R /F48 640 0 R /F50 687 0 R >> /ProcSet [ /PDF /Text ] >> endobj 778 0 obj -<< /Filter /FlateDecode /Length 3274 >> -stream -x\K$
ϯ?DAO -T@3J3tf*rаfGA?ۂK056W J">S+}j.f -eEF -.ܳڔ*9c -}rTX -1r,#ɋ-o9Ɉ@:9y+yf>MpԘt1M1csXB^<+~yԵ}ȋ%y
{\z< =yr\R"=1AUk&OY
-{{1^X)lBsln^s]GxtGboݽ@Zpq9sZ(;N\yQT --|O~Ruq̀0̊&IFܮ`1i<DqP3øchi0m>X&h6
<1 u$b^>)'e$1e|א%{>wþv%xm>][Kb.R '0ίUp(/Zb)$K"8z-ABrq>=ܧ5IZd#^"[舘 0-dX1i]d3H\\_O.f[1)E__Z(rU -=TtlVu&{~i*GTDiWqҲw9ǔUq
mw`6k Z5Cy/"§!<vwA嚫Klhoq*|YD,Ve՜oFDzJHOg msTY=13kGӉVn?y@2Nm5jc]#gaQFWX^ԉrzBtqqP$4S/*TB~I-iysXh8ְ(9J.C焬_g<QcnKgng/nl]y -yH*lQK'D'|:e/azlkv ?h4l7hAR[8> -qْMu.\>=)To|1ξealerTh+S[G)Pʢ^5-UkX8M3ed<ۋJx]4ߔ:GǼӵL1Lds9W:{/GYlY|ʘ#NoWjU]}Uiǫ8VTOrA'8Wo[bEԮSv -hjʻyk'.{\mBI*vu=&j5QZfS
lƵ{\^=m5A1}$vskkQM7!'.ʫy(-ffyPvG-^07hqlVdkLc*^En16f;4v +<< /Filter /FlateDecode /Length 3272 >> +stream +x\ɒ$
W}計)YB's.}k2ARQ]YIa! +~~Iû_'?=Re+e1̌$!_ yzɪԭ3PV::6C@ִ #GX쫸vOyЖtCu\Cs])YZpo
<Y4C+yߔ"!nUj/5WhҖ߲#u, +?XxXVK?y5:K ?%QV#Y|1EK"y00NpqMm8s/7R4긒e%h'`ΤݘND^Syuk/DPoՒ.0טKJcRYү<L^x^u!2%?v{fR6[/U>Om.\xk#S=k9㪷0VȪS(Uc@}P]ٮ2^pk2ۋN5VZ9bA}Jt'њV#O +.YNx6ngHqt5Or9Z
X:zsZHGE2H/8xغfRF.H{,M8 +r(,[p|?c+>ӴȰN:qc8AЇP_v_ +ŧPݓ|RJǨo8$)+Ę_&f^l9qU^-rGAl1S7kXhkGb"y
o{3͍8na?؊pi*_Eܫ-Ɨ,p>C{_ٯʼjS1pr
]\ꨱ\+
+ًCr
=殅wJZ?t&`?
4 endstream endobj 777 0 obj @@ -1678,21 +1674,20 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 782 0 obj -<< /Filter /FlateDecode /Length 3035 >> -stream -x]͎$)S4I&:W۶jfNsyÚ -M -#SMWʡb
bɛv'gPgKkZHbsĹh'@x.r8!yBp)X#5|]@NsFG~o?z)#Q {`QVj5ER
P-}3zaJbJzD& --vkRS;҄NRAQK n -6'l橴NOcLcCa(lkn%8a8?xhtltKg8:-IlQoi*X%QOX*&5FyZMw];Дu`-qBK!likʾ[UV]Sv>MYcN&y^h=L[)ߋDGNylX!>Io@8c:[IjAN"u5$RK!B"QҖS[]oVK
MrD߰!ǃidb<:n86B'wQ\>Md$_]UU k<z䨭Nu5_Kȑk\h"GVw -WLNa(nU-f\
]j<FܪjU:Zo
S^xz2A|]jeFnq`hTˌ|Zq#Ey%<bvFSLjT#ꋧ
p<p9/+S[x
?:#շȄtvsw:it0r('[Akug- -cV'BCw<p@L]0H1pt38Fv=p0kaAylbȹ<~8z#
m^?rRC3QkC -j:Ljh#K6x^}F>V<8fXѧf2Z<hOlm;[ΈdG HХkz9Vo8Ǥ9q߰"]vAlq.[}."E~ja$G^
#a$ka$GF6Fr<Z021H}쁎PטkCi2
ȽOײ?cd_.'h8( -=!E26|h3ī)~|MO;&ZVΛ{ǟNkćS!-傶Pi4iy1m -~݅@BG9 -tJu^ 7'Lݲ<\opzT^f3h\L@9KN:d<f>F[ᦵ-p}ͺ!Ԝ9J BG*UCyifVAF]Gʀ!tZD]%/VяBdS iM9u4&{]ˀ+qF'z|*}Y;5HQZVg AXp,nF3̧yC't`'=K%n8̈́W?RK. -*t?u%rRWCQtW0ŀY4Iq19$͛3E7%& OI-:')?ʈin`ۢ*Z'}cIg\%Dzzj9Zxʬ:
UғS<m~{%*b'O&+O
ynLr$[1w}Z6U}'[]m*+Z++kLK@4LMUkWG=Mj9fVaYTlV^S$bI?z!AF GZb%&98(4Z+6<y8\%&rVԐl7p=m*}7klTgEoY'Ԕv{ռ\dP>IpZ77'۵)4D12ՉPݔ 2:FZRۅ|YJ%,LTRBb_ϛsi~Υq҉.&KSܰȥŭfYy(2"ttw.-+%Zs%\B|8|Q<s"3;}+pU+*_;>NO{TVTZ˽9t;~C۰a- -0V9sFEiS +<< /Filter /FlateDecode /Length 3060 >> +stream +x]M6ϯU 4;h{Rd[0aǔQ#hᯃ<vCig|S<"8w! +R,%|R Y; +!Ы0)c"^\̍,ojމ` ђCkZ/"sıi/@.M<QX*<!d834
kEWn.Ӝ=Y'gի'@pȽe$ +[8jY H'mt'p~ ZHup#~M\R۸(\IF˕,F"ۄ0x"bj*jkQ߰3r,5ȟZX|xy+pɏQ- +;*@kԴfB5?D +#@L"Zi4+:*Mo*z.-k7FT*`/ھSm>$` +uRϾˀҨ\a:qtK3;= eaAu/ziD8V͋0>6R=}EeTUEiﲲXwJIDn01:*Շe5p5*@-8}W#x.6i2}"6ȐS)/!VX^zH:)-cXeiIz,eg5%jwiH+Շ+D-+_Ju$RD[&!iv&R;M^lέ^#tAύĄ!VVĄlx5rGxn(Rjv] +pbR+Ե>bҊvVܔA|bHu8oU#AF"HPخ~(&:Z0[uWM<*L|.헻k)".lE +N n9A"5MuutS<Ϭ}V/6%MʝKOO^_xFND+Ж&
HTf,9x:GesDk"su6R<(Xoks_#&P/ r]RRDLW[fHilRn+A+5x!B]BJu xjO3#1 +9tgHKbYNrUP˟FNbt(<j>UL) Ra3Fel p#fNhy["V% ӜD2jp`ZoM:<*څ]BCތ1p7b5&s)<6&(Cl+&s|b=2~wQ- >VDzs]Q8jMNnS%wU~p8is.^ImM0 \5-*0Q c<mS:ww6^RMߌ*\͖b١Y7zjBMƟ0i=*QKmDgFݖJsՆux$cfɉ.ê&*νӣ[- kۙS6JTwk?}.5zO5M
wkoQ +
Iwvju/{Q+zZ3f9;{J晘jT +"-ݜOCZIa2tU=s*S%q|+7p2U3*NO{V[TgTGK91u2]!cX墰ۖ5 endstream endobj 781 0 obj @@ -1711,14 +1706,16 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R >> /ProcSet [ /PDF /Text ] >> endobj 786 0 obj -<< /Filter /FlateDecode /Length 1524 >> +<< /Filter /FlateDecode /Length 1558 >> stream -xYn8)ՊDJ@`Nz[i39a)˒MƙmkY?Iv;<~{v&2@?&0_~[ZOrwwD3</D$=}S -N&he0JLeT#)'~-Xgbh (ǴXx1yT/Nl
3˫M8r!倏jOgg%('Kc\Nm.\F<w9_ۨ -s$G"co,9^<G.9 -δ7JAVbƈ&K&8Kc2<\Td:⚩4Qʡ\ce64H!?HN#9'\(:;-0PQϺQu%s??z
إqxGao?.hXh@&hq+&Ƣ -OKJt;2nk̭F
ddVn.(\#c-KIXhĞ) 9`1tؒkBR*yI U\,Q -;\ߐOX<ʟW"`/ţ˓kTBSu]fT"tA! u#t!~1jj;n-ӳ0Y1F"#Xs"^xV@&w_X]5v_c+°a؆1>uCN[R}A1V߀g.R7Cefu6p@Q}dCPtK+ݣĂrJ[ 6wZkT7Fx/iikDiBZK:ެp[WcpDk5o:hOB{!dmaճy3JK{G2ʦ:
6n8_+B+5j+/Nt{_F3QR[>[nkB.y,=\F)KqsO[ºJRN71<<-pa c5bOD6'DeD9}},yfA@h eyްVk/7=fذw~7NV
ZڌXI]|-}n?r;MܯA=S6vM_m8k,xۊtmdS^-g]:BO lÙЭ5bMƆvrʶֈzW@w[Hox iB6 +xn6p8C0qVT4=3CZJާY97c;|}ؿ>BvH&c?~ +lLն/A{{9kUc>f,hr3U +4ũ ~##BVbU{/TqF1A=!TϿ]FP1{11 +pf'̞K5oB1Q
$7}oL?2|Z{)֮&Y'-S +Ku8HS(N`Z#
Q#y]Hw)-5:w?\m=}|]+)Al +LeW
.:jwJG=*L˾y]朕\ 9$;BqzM*3k8|<5,svs`<nSB,UOb#<C|ʥ]j o'= +R'R;qۓtR36JF;=|:N{ϻ294 + endstream endobj 785 0 obj @@ -1733,22 +1730,15 @@ endobj 790 0 obj << /Filter /FlateDecode /Length 3559 >> stream -x\IodWq|, `Z-19ėTqy[HZ9Hzͥc˅_뗇?JuΌ
/??_r挹Jw#sʹx\+ǿjaO?}>uu3 "+͓W4sV\GK5~*S[]?ueR&f0bRmuffm,8"M2Ȁv>" -#ȣ45?5?qÿ7(ѫ߾>~w3wOdZI_>3mp~H鬿2$xyF)%J]VLj<',P;C,p7Mfvk?0-TK]b@4i3<S -nNaq$GK -Pj7`Lc6&l|+dDT2XY-2{`Ӕ5Lt''5E\Rr -ӬGsB]Udr%M,
ā&;&"<ҋpRfB1Od9oyV90`.R L -ЊA!F3PS$gAHcָ)H{90mj]&<R2kH5SQ-ۨz
1 -HR~B$
9rG-pnk]icJ~n^fÈuk6[_2up)w$ eCMbBIDຘu"XZ,aw(6>^VlDGs`x9FH<^Z*, -~DV@Ei9@> - (
jBx_9nH5ia?(&F쭉 HWV\C*+,E #,xr ((Kt;0` *z>OIωj":7Dgqҹ#{Q ފ<FׅМy.J4;U5r -g$gS !gQU<1 -!1G -vV2ЧIo;XAITVatvx(<;qd6CH='R&UYi2oH|0Dt_4c!0sUt,SiG&iMdʫĻ|-?i~Eo}]Rz0e5BI5JA[ZBuw`1!b1`Yd
(Kj4Au)tj/M% -]_va4"9T
ɶfѭV,s`4Wۡ7 -k&ӍKbƒr}܈ŬBPPgВܭj7}KH6Eq\q)愿DF*o03TO7Lmȩp%|.3B})( ڬ;gƐ US+\pqi!MҔtGDzY`?o[YI`B=@ߢ]\mr(4DNR?Bd[kbٰ'銸&Q~T/ ]yu%b8Dj^ߐ?yK1LVaX[ -94N3udL.&QD`877.K~e%}-{QCWv1v{qa -¹v>;-ZPByYm65a -ËR'웧όbY"=5)L)Cizj;1Qp Cqp@oJz EX&ڟT+)[X:9k%!^;[Ϛr]0 +x\IϯxG +I +kOO>7usRxkoփpo~^JFJ|R}h)m~w?}y'*}gR?5mTz{j_1ȻO>=4)~2F=ie#`L:MN'Ybx?v-#Z(#<<-%?soXcзÏw7I?q7mPn}˓@.~#y}[: D$u,2ɊFeQ6U?Nn+=.9$" +VowLۖJ uoq#7j_btF&1RG +=|/*ɱ6"<R&sư&,1bUO(*,F!3PPӁK;)|4< IωpH-ΐ4Y,J]|lrO9)b{"k] ͙㤏Q7"!n&]E4ϐ(ΓN\nxI͑,"v&m`4\cKJ)JF#&^Oxa'Gt,+MI(T2/D1"M>ڼ`r,z%0xXLj3*1-@_dQh{}n5+)-s=s$6lOCr6ǯQ-M#Qu'w2,puH)Vbqm>K&r4屚Oe_5MA>/r:k,J#zw|?c5F:ůׅ`eռ}nv3k lKԡ߁LU?#KlU]bPK/Yݬ?~PwJ^4 #5S?&9pﯽ{3~4)Amv;7(07r +:U{;I(s<Zf,iv۪z}'y_hJ%ev>@_zxQ"P`Uî!ċ~;iv\1d[,sU.Co^x + +Śa5ܔ!V&P#nl?f=$}n.ƚ`))L(c#챡+X){W0#kJM#baIXXR@WF,fB3v8u1#ِ>Άi.&qܛkUxD(*o);ӍB|L3E\ipJBJ(.|]RcȘ)~.n5$u?4Y*rME"QK8^@)`3A;\7~HKwjw6EVj=be!Gg▄lYqMGm5JFd0щ(Lf3R-} Q`ٷԼZW)D6=
rOJP*߰tKK>
$c7~h ~_꾔5.k~:ҸN/JaGni :K7:ɥ4vشZ@f^h©Wϯ2zށ> UK*ٟ%*W;]kP>ݰΕ% :˼뻳$iҷt|];4`w^Ф|UϺ)[$%HfHo;!(pvz.Zt a#a-zPR
hI;zT
kB/yy $j.-C۰~<4MZֵb!B}m.7dĕ+r-'όR@#?/)JQq)'*/}&&*Pxu>0)rqޤ?NklJZ)Q>W/? +;L(x:m'O endstream endobj 789 0 obj @@ -1767,23 +1757,22 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F42 792 0 R /F50 687 0 R /F55 774 0 R /F15 639 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 796 0 obj -<< /Filter /FlateDecode /Length 3831 >> -stream -x\Kc|X [>9q >ėT!QZԚ}iId"7y/}3D`ݐ7usRxko!rIJ$%~'zҠoE=DDz9GҕRϩ-?yq?ڕ#)=27zS?M_PBn$V'^*#<ͭYkeZ'y}C}Q[XUBZU:H$@@Wd[CFzoAӷ]r%α,=zJVzwcӓ)2V4)cW&mRKϫCLQM *(d -)'<mxqEqkPF Mb}Z&cS<* -K7B:,FY+3oFDx/DWRەeM֫W`@>օ4NwV|ЀPdk#XGT]{+|HY,&eˇv O|Gw|$_|6(F?}A x.RI6뚯p^
,\W7ӿJE2ovf4ym7<Ўݟg<Ǚt;&r'/P/z(AYceL-Ek2c#Ɵ|cQRˌ+fvJ?vzܳup/,L}YZyzѐ~|jنM/3-8;**K<O=:8!>O9 -C;ItSt)YE*),)uS&-:qsdߟ=KY- -͒BZJ -n^ -O8)b(#9ŨA-m⤦?Q.x?{@t/8ꡪif`z-W.N -Xu&',g+CuɷeѾT>_Nˠ<L=b-֨rsb -EXkI;zѰjȜ.-[kr$,եH$^H@YjX6?rp2pm -T^dfٛjLZpAȢPze<V#p+-YJ|s7K\h
dV2 o)qෂZN9= -@%GȯWzy~jq^55zީUz$tPjo!yܩ0~Lz}J,B,ͶH;"@z^沬CR1ƥ;G)a:#1+Cڕ4~weQb`Fvn{>a(yxRK.5 cso -$ -c'D('P8Wj#,#B(8/dbK -=Z-#K 7nR ;>$>뫑~ cbћb]N#og?+G!eA|Lpx0jCc%`-)%W0N/`Uw6\d!fttGH.L7t`x-^]u#R*%pds^s߽eNW/sF#[2oJb~" (ծwd42]~x*kzJS-4)T*K/荴rd~zL焽<8G5\'Q浘?8AY+Sjiv2NRJ_߉ho䤊~,jOTq?rX"0)@\z qZ;k@dڲ1dgXN8[n6x -Z۸;Xm{~+b$YJhbئM<Ըm9.U)GPrDN{@
J +<< /Filter /FlateDecode /Length 3838 >> +stream +x\K
}0M|VMMΎ'U%ٛ˧$NRK~ +oJcYz{F(SǦ'1?e᮴XЦUcP\lf<IM;.=>={L1BD!4*t/Zŭ
B%4jZb*e^kQU^ M4בd1:*]m]ax4"0Fƣ!znڮ\k^? z_uBc7i6_7 G{F +QݤD?|ΰf@o~gwȃ%E_|כ6(F?~AiE?.R4f߬X(ְ +pj}{(%,gˈԀ0>R=۞yC.N[ m8m4 +B \@
$֤jZ0аJC[~Cˌ+1gvJ?4zܳu5liO9+OO#ҏO-#eg'YeBHAGI63!S'GBL}h3y*..eE*&KJq`KLp}{0e +!C( +]W_s`Sv<O_%]%wٵh'=_-~L?nL +ߜQ9HGd죻Z PuP1eG%TRΜ9>~?5{^3[Z-ۜp
dRt_*̗l1
Sl?nU,`:}^%Q4?v<<ir;^-(|6KsQ2;ش[f?(1%@.}~2V$V`yytc~ ݉wV꽒m +?q~A@k@CBkͨXeɸPX9ac#iJ uO'jRBqcAŲk5wm9^K5\S<MvBzLEN"/7WqaV?b\V/x4oyڗ_,Of{E;V/K|<{.oy}~0{'k%Ry$ohW?wf'GA4} +K}5VHȹ&.-#L%uJ +~MS^J/質krmz#4YsiŰna: F +- + +B*uT4/4y:$TR*x_*$CR-J{^*$I!HK@*͑"U
id'˴0gjXڍJ Ú#;# =jGP0#!m <)Z-QcEwD(Ab LqRG2R +je2vkH CE-_[m~i
g/yh tKyZ^~nk2:,to="b.'KZ\uP5[+^:={dΕ2=jFUP]0
Ȃ\'J~*ke~Jی,>)+>US
9_0xX
y%|.tG:Skμe^ˎuqj\9.FP)<0^}VvOP=jpX7vQZc!0\z
` ORPWltȴUίd+'-&<sZKޟsNӶA(^>EO%;Vu+RN}ˡY8йխ|ݷۉ'j7Q/h endstream endobj 795 0 obj @@ -1796,29 +1785,27 @@ endobj << /D [ 795 0 R /XYZ 70.866 771.024 null ] >> endobj 38 0 obj -<< /D [ 795 0 R /XYZ 70.866 318.926 null ] >> +<< /D [ 795 0 R /XYZ 70.866 318.851 null ] >> endobj 794 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F57 799 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 803 0 obj -<< /Filter /FlateDecode /Length 2238 >> -stream -xZ#7+:ɪV;ٞl
7Myuź dz^ޞ{E@ -c@ۓ/rP3
o_')ე*(&)Oy~Fyp)%az.JIeh0|..Q~+ef/Zݥ ҙ 6 ̦kS)b]%5j5zZըY -i)j5h7KrwVd~02Qߞ@V8/_>ߧA -nwu ,
??Ē
Dg럒;-P<8{J={z͋ΩeK,v;?S\lK);VB<eɣ ʙF7k,_T(igu'/d4[fW(@dyIۤ -"Ev -[>/A3w^8g4;ĸ/V07 6ڦ7K8|;AG վ7U圐5+<h3 -67B8o,T Tbm)fJ:\xA[lՊx\lDYVxT=,eJW5P~UY4*Llg͌zGVuYʁ*`#wWoHuY|w̮b0#6M6U3{g#1@T].-;;O1m~vC0/؍r^㯶q},vDFklGe헣.p\mA X[e+9ZhrX[V>&QRX?&QFHͬTBu=|띞>\HI@vs -dG=ʼnMcnuس^i[w2VNDX3Lk59z&n*W}7@T& -tTCťU'&M>^GB%]rkk*Fq* -#&)f6gp*2G7h&k`S}7"ah咣BpF8phYnH1PX: -n
Ba/z(vxPo9Gre &WcHgX&g`/W&1rџa:p^7EJ;8kiYA]3v )_o/<JNSt5;NU`LJ4.{$`dt$q2wK "kyZ3ݠU,uc^EƖJoj\ ؐ -;B{rV8 [n=cdpfd^{< -kv.ΝP';H9ݳ:nG! -#{guVpj1^xjܮTob~ Ƿ9!:i8j
{&&W*s'Aݹ2nvE\+WOy%3uQ>Jf}Q=):YdaB )eBҌ?6$a<5CtO7[ -fU/Clw!FvE#ewWvEx9㮺nDzb0'-C`- -cuG4~:Rgz0#Y\n^GTw3X4z])F=A](#{\TrXK9<_Wnt&o SX0zo +<< /Filter /FlateDecode /Length 2222 >> +stream +x[7+:QdUh^lo&(;$Gcwb]|uoy{~x4ƀ_+3f0j5<>_Rⓔ꣔4?Z#̇O. KtQ +M6U@i磔tt*P}^ل/0#:Lnqe(|t&8"2ڔiYR6^XӚF\)_!?-EiIN㮞<LQ& +_3 +Gf/i~H#ˆO?<(eY?;N|/CKj@#7Q<MU?iDX)#$lYv7h<E0[xw"8α/ٿmrl.QM' +ǜ[at莏@l{>Y hq$<^ +2RDž͍ F)NcpX0ay +.28FĨms/O18>G"qut5Ǥ9RxUFf_U2L` +|# + +INسbF5#֪,A<ۑbS0jTeW2:;"[ѪۑAwEڭ +9JȱVCpu|WXx߶1Yss +h&.Nu]R7`blʛ cF<}]2oTI-;a5`<lye<?;)!8;[FCGp*qݧn0H(:^a3+^X9ڋ0pG{IG{`T"{8kiYA]4 a_k/<J
?~h.VҥD5[Yefґyn$N.w)c-Z+%t䊃Ԃ\c`?ZY4N݃*oEӥ Yp4JL. lU3~Lhy[1 ar-l#v.Ν'-;Zr2[zv;|i 1W#Zc;n!])ͱ9HwQBosCuӈqvMv?R5rMy+
9akJK[6\[͋4;L_`OFj)s;%UYڃUЁd;Z(:VWZH1Ş$o`L @jfK_^ʴuR/ZYluȎٸƵ8cd*sf@8(_Հ#һvGG9i:+pmQ;90,us0Ź͜q͜qDuc^.,.h]I$o݅*9=7֕KB%5eM_D"=<a + endstream endobj 802 0 obj @@ -1831,24 +1818,22 @@ endobj << /D [ 802 0 R /XYZ 70.866 771.024 null ] >> endobj 46 0 obj -<< /D [ 802 0 R /XYZ 70.866 584.469 null ] >> +<< /D [ 802 0 R /XYZ 70.866 584.475 null ] >> endobj 50 0 obj -<< /D [ 802 0 R /XYZ 70.866 169.009 null ] >> +<< /D [ 802 0 R /XYZ 70.866 169.001 null ] >> endobj 801 0 obj << /Font << /F34 637 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F50 687 0 R /F15 639 0 R >> /ProcSet [ /PDF /Text ] >> endobj 807 0 obj -<< /Filter /FlateDecode /Length 1244 >> +<< /Filter /FlateDecode /Length 1242 >> stream -xXK7WVC$`a`toANiK~əyxm=ز%Q|}")<~Fp! -u>ҕg -G=L&F7|D%̩<9"e]쩲T^hL()dJ'4?{N%[8裟_}AjCIz-yJTΠ:z8|? ߺmOQ2̨ʜD?:ۧc9y.b#$r%K, -4aBpX,'6i/w]fxSxŴI~{n.%
9|_G~F?Oīgj5h+ňT Fiȼ>99Qp#j-4A7/.)<*)bLMFы4]h*U -TBY4mtjB)tNfÿ
g\54Dng|bf72TZL7|fZJRYBګfy4oxXqt汯q,Jk9-6'Җaln_?cC?M/GxwL{|=Oַ &(U.;Eö8j6=Lhhb{z}_ -!7iX&Tnf/R1v}QR u+oSm.J9GBA9Bf((|Z,}p(GP2tu#_=rXP -fYSaŸq0]4!K=8aREMͻ&uϴ(шwhA-"U\ѷ%jJr3&TjE+3m5sޢA~Fd@_R[AAj_G̨0.1\bmqq=_{]~\梁+!FA:yn#)xpuE] { Mw.tTuk +xXKs7Wf<35-SҸͥ.)KG+ ̳qi;m<}]L8&:B01ePf^{9zl\H?dE>bevI~̄C/oU~'h:{54-6"N-#ҋnO>)KR2Ǚ++Df|{6־{Z=g"/+gO3̷կm؉d&zX=@ؓoAăۢQoF?Mȃlb&a<B;Scf)\Ј=٘SefâT!ũvAиз&bK1lG<?={M'M:Pmf8hAvDN8\H!(|rنG/{ͤ<2죷>gd17ޣ"[ˡ9A͡fl`e_InxX.u;oL츙7p5Իd<5?җ]s/[W0$K:EbχkڙH)R]93 +z +C,l*DRTiwTo{1dƾGaYNwwš'Pfsle9b0S4mz;_oӬb +!\'U*DAémjP+j:=FZ}pۂ=>jveuBcJɎ%H;JB\qDۍ\c+FJw߯xKhXUOWhqY% +TuWсZxcMc] w$HaEYwq:V\Q$CM-9)=Ե:j^̦x]Ͻw,?Ґ)C0-@fh$&
Dsq3䜬)Hf_mݖ~!yFF$YnPN m㾍NVB{V[e oś`w.-M endstream endobj 806 0 obj @@ -1861,19 +1846,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 811 0 obj -<< /Filter /FlateDecode /Length 2929 >> -stream -x[9cW(
&xVlw<xӌբxz%~ۅ_~wwLkPpyE7".3E[`Fۗ/98;Jr}z(Ӿkv_%8W㾚1֢~o>Xl%N)@.Hxl:z4q2!J=҆9g"$F1@GN*ȫ|R5Ҋ{+ kaO~8rŘ7$qzV>kAL/ΐxO"2%O/xLp#$nw%.&0NIsir&C4̫$N&mňgfP:k'+LE@dE`N5&tFh -%;=2wf> "ϖiz-@$&Y©4qn3H^_F>Y$!)=6DZ)/ fg/م⤈f+)$1MNЦ_u̢ҾWiv u_XC/prf+d9$/4yu -IzwYW9&bըET(`Ε%#JdnR -E@ -y55nVLiq9-BLfic@!|oC-]|j5yVFa -M/\LJ~GpjܹRRLBQȱy*tR>=b[ƭh,ڏ[ Ug@h4G! -V[+X%YG8$j<`řtAPp|&*m-l+.lm8EE}l8-dy7O^Ω8U^<^V\Q>"GW%P
}#oU[O-Ct
Ӹ$UYPPRl\yڛ jk/T\*/ -TR}0n59M2!b.T˫Xz\#>om3Sά -D6MaY~)5Lww\̍SaFጳ(bf 1
iԸT"G:`'BgXQ9&˓N!lDl4v϶sMcdg[ꇭc ey,*yqL<@NOC)&ϊd^> -??T]~L9{ΑE -ds=A[ƑLTd;$$udoGdN!2[٘SLA9:6}{=C@:g'8'Jx?&t)N ayv!HoF#Mxª~Z}ӺN.tyAD +<< /Filter /FlateDecode /Length 2937 >> +stream +x[K#ϯ>,C +iW{YEmXiYYIeCg`f//?__?^ +U*GOg1mrz2w6A`k-o,詳Qv#s9*CI/q\~;TILt +E~kD)ذ纊L0s9QRH;כ8:dOn~w`|ތ)9?Q)An(~W䚈F7K;[Ke,Br*'5 +b7Z-PsRyU@Wx- +(C2d9PI액f?vO 6T +q5u/']K? +;&\*@eV +,9ǂ 'hzS"e40Ƚ-4[&%NX)ዖz7}=2{fF%yNz?y8yqȵ^aE<_xF{Ȼ[Xp +Mj<4a3?:!2nO;֩C\Rh9;Jtk·cՆJ%)w@/IZ-p1NzUpA~~Aa׃bwY<ܑ0mYq3݁wPPnQ!oՀAn4Qᒷ?;.F}Xb_͐o{9cխ|[:tv\kgto6X]o`1JFQ銄osPSLC۬]*) +&;=:¡j +xKt2\CMl>I]cծ>
rݾ6fAL_GWkqކI&_q\I9m*<2x/1 +,w$ŨFVL.᷍[ʽ)L<lZ?/sxЛJQ53`·CiqV)/X.f\k
* +(iCN}krKd[Dh\
NpQKj̢| fKUZ[է9k:J6&?hJ2}4>
Pzoy4P-s^y6<k}+ui1'zhntCIB*y$~l:wЍ=lNs/ +][ۖsw9e&ݡ%}uANswѩ4o4+ah06uL K剏K{uT:6DoutHt\$:G"Z!erzy[a
RtFSfnY!fsFHw3+|'jeS~rL>3yA>]z6HKxL9GFN}>2]Zџ#S|TT9$#sHg#If{H~1#1ݗjsC%q*5R dHrX犧81iXof;$b3-6pt}Y8-{
@6a(sҬl䒯 +iSl]4ϮA5-ӈU{;>I5_iڊjZ +?Mzo/O endstream endobj 810 0 obj @@ -1886,28 +1877,36 @@ endobj << /D [ 810 0 R /XYZ 70.866 771.024 null ] >> endobj 58 0 obj -<< /D [ 810 0 R /XYZ 70.866 583.291 null ] >> +<< /D [ 810 0 R /XYZ 70.866 583.475 null ] >> endobj 62 0 obj -<< /D [ 810 0 R /XYZ 70.866 300.437 null ] >> +<< /D [ 810 0 R /XYZ 70.866 299.978 null ] >> endobj 809 0 obj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F55 774 0 R /F42 792 0 R /F50 687 0 R >> /ProcSet [ /PDF /Text ] >> endobj 815 0 obj -<< /Filter /FlateDecode /Length 2870 >> +<< /Filter /FlateDecode /Length 2877 >> stream x\KoW1>CV,0 Qio_~}>k?imv_?!"߁(Kw/!_2ƛ[)oҭMo_a<NCp^<O0K=DA;yqsZu1:37s19y}Z2o3?;pXxBG}(l7܁OZ2>z]KVOw<xaj}dbe"Yn33yUN蝂8a{!^
,e9Y_7HCX0l&G;784LѾ')ÂF!A^t=˷n_f!Sكxiכ(["Wː -Y'I3.]@aξ`=^@'ƭ1(k6$Bd<e5o3Mw_~h*~_:T"z|1$p/7ٰ< -3ϓ|_2̭#HTeVToU˦s1Dms~L,rV -'Ṱ -ɷ5{nQB_%,lʸg<"}]\j#lF"˗~tPNHhW.S\C B̌h8y8k+:kEq&UdM5bHT)[}ʤpFM)ҾS{b-<xZb< h@)A,Z'Bx_o5liVw.Y1l2vZP70oy>WC)jFL|^oK;FsL'pV#dK-ZVb.Epd5rZ{.[*K(V6jU%VEO -pɭb#/&W98rp^@|\/n1W -B -ŕ7 -oK*~&~ޢtkg%dE!!2 -w9hPۍb
)PkC 0 +Y'I3.]@aξ`=^@'ƭ1(k6$Bd<e5o3Mw_~h*~_:T"z|1$p/7ٰ< +f)S0F*UVgwq٣puP,_ +#y]hlC9s:"]Nq
%,{s}03e +}װYCG SgVزa9 hAlü\
݂J1y
a,ŕC<H3ْX
+>j}ʹe,ron8Nky +PozkLCN1uGD̴Hv]Wjd!:Ra*C JD188j(%ΊlG.\Ƚs!{r T\㟗Ss +`9jF@;W-=1ZyIqj1
Q_[5Su!( +)bWތ+ShZx[4ޙ}s̚3d=DJH1T/i)ta'(\d1@`u,+&6,Ѩ(lT+O7!AmL~ϩ9q/vsofͮщӝuV,P=)-}om1Y1
]kNs1 +xY +F-exf {kJt1 r1Fɵ+ʑfl (bkmۼۥZ-QJUy{C{aYB:uz?%hgp.\Do8#dF:HiHJR'.-p +[Nzy +r +[{$L,G͌gք/ ݁W, +Y<|h@]qf4Pxf40zV4hg1E$hdpR4`
ԣΊDc|)'}K3\X'7]Zze)1A܉)-[)W;J9Iiju1>)j=6ѩru*d_zu
\gL//zN3b؛v۠W1WF/nogkW\KyIrƙB?f$Ul0Rvj$n(mBYa!L#BhgXgڣsBqp禕͍kA4^msJN +5`]yOڥ<ghT߰j(pSm4C~@y"?3߄?)CZJyhHkı%xHB[?P1aypXb!
D[Zp>YQpB:-^t%z3j֪q'L {5W˜'>0e`*u8y'Yܫ=P6RͯĒQQo*Hs*ܑ=G{[RVoxT_{Iʼ-Ex$m%=,mjە:$j֩܉JPy(ݰJ'l{bs{y1h\sD +e +F. endstream endobj 814 0 obj @@ -1926,21 +1925,20 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 819 0 obj -<< /Filter /FlateDecode /Length 3696 >> -stream -x]KsܸWq}0ƳʥJޒ$qU|^M3 -Ҧd<am]CcKuH&yEH<`v|B -|rV~cx:o&VV53sr3+K霬-|0ƦsXҞќႹs))9`;+}LVwP}wayP{tR Xd?& -+nA8GX'Mї8Jjc3.W5]<^0lG2}+ cbʶXrHdCG)5zQ`%¸O{JV8۔ -RԊ8DiD8)"IS=%TPEV\7A|ahw1ħ+Zn-7PA;dPF
ASu(/k- -YK̢|bKM0UK>jIş1?j3BO|63iU9QX{&U#Mᓪ<I%J dFS'juV6i-^>)kJw -F`hN" -VWgU6o)sNDB#0v8rJjFm*XD0#beqA̔ y^T@k{T(BI4DJCB ZSõ-??z;҈^kl㺷!"HSpy9PwV RP%{+\Q4C_K]L7!%5_Zr.X;S>6|WDҫEAm"P$AWKo÷@DD6잴ւ &AXk -#ք5a[QT^]UdIa"كljs粲O=b|!h-i^69Edҋy;FF]žb}0}KK(n̕ݸC˻K̈́^*
IMs]*v
'_Rҗ/C@A?0W=o5ͼanΏ5o6*u -
(T=ѻ66ߣ -!DZYa3)G -LIhP5:%jhx):[lSja'5ﲽ>,r!m*m}϶WpV8]RC_w9#nػ -=F2Xރ/#%1>~1.k)nb}89%%.K2[=BnmXG3-p`rUSQK\묓g8T˪7/o8WXx.F/'[uNxwxІfOR<_Cc+*vxBMeRgN$ykoR)U{ՊY(.@ +<< /Filter /FlateDecode /Length 3711 >> +stream +x]KܶW:FwY*֛*ߒɉWŇn@A].~}ݍF}I_>E:s;?VQiq%]߁~}@D|E-<}/[4a\i<Ru ? aytQZ13M1j-OnvkQLE?~~ߕGǻ?tҊb8o!?;[ +;ێ Nތ#($Y߿a*2$f\D:!siƟl*SI$Uljc/W5];HW/sK0jHjvd`ވHf\JHbWD5Q(gdpNj2iT*6r +"bٯt,(g6(^\10e8&`UO5(&4(*2rٚ] ~0 +7M2_FyjԠB2a5;:ΪTΣxm#
F0;yg}3RɆNi5 iű3\`#rG gQ MȲW$SꈩJ+})00p$wE/7m֦m>e[Nq[[^yrDd/+Ev}lo.{s*{kF!.XinڰbeX'3ψ[<@̛+賑+¯/Q+Xi_Jzd^WI%J#0(z?vpOSjPT37jGQޖQ+{87*Y渒yT820+;\A +$:b +)v!ifk=^YxIF㽶GZ'sn6>ysy#XWi[,Ys6sR/tK]L}8!%j-Ŵ[d+הG) ~#rai(G+8bJbP(my{Wq$䙇ݳX*qnSTNbcT^w,)T
dϝ[=鼡/ݴ]d좳 +h}ѼY;yFjގ_jMy{mR%r0
Zcr6F9ۜS/i-
.5cD⑩005o>(5|_j=.5ohRsujHjY;$5RX|<Rj~{Qc1RpGʸ0ȥz-q^W'wNƞ91U|w&9iȜ|SilՌj(Gɚ,D9.Qܨ.QJ[fK#%uD)TA܁>eNs҈FvȜXy4~:0?\sjkG/Xi;_vLG~Eh":Non?mI5<-I<9hAxHWVZ3G`4\4Dศnw_W +{Ey#̌A(8Gۍnp\}>d\/ؚ}0ʳwH*l;"WkC6wܔ<Lg
8kB2Vz@&*O4$ЮKn9@E{Axv +e3H-L~dHMQ +1|$bRw2,{LK_&ؒ60E6,$B!LJ +!)K!v{gٴ@;l-|'+6%A5]8^-
2{|QSjar|og˅hR&߫ov[}$4A_VhpgOg{;ܝaM'_=^v2Xٳ :%q>yK/k)ncb}|e)ZCx=Bǹ^ ڌ'k5ɷQ[m+߬AZ:AwJY{Iᕊ&?mM6m}u~k\W +ר/]I⛫[d|RRW{2WT=Kn(ɥ<RCGz{]Y endstream endobj 818 0 obj @@ -1950,29 +1948,31 @@ endobj << /D [ 818 0 R /XYZ 69.866 801.979 null ] >> endobj 74 0 obj -<< /D [ 818 0 R /XYZ 70.866 609.515 null ] >> +<< /D [ 818 0 R /XYZ 70.866 610.038 null ] >> endobj 817 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 823 0 obj -<< /Filter /FlateDecode /Length 3946 >> -stream -x]K8Wq$ 4Hm
43sٿ,zRYN=$rYIH~rv˻/~zQ&/abo^~y`L|`>1ƟS/ -7b JStj7tnrvRт:p5ZWpGizk#qly><TIY۩e㞇W%n`ι&wꚔ35|IY+(ݷ5wI&a*KSCrWLMɊK({;W\`0RsKV"v"R=Kf+G56ZS1˯$rg/~]B]vo>FTWi1VnuYQAlq -z -NA) -߆57shݥut0#(O"`5FPB\蠤 | εR~ -QJ
UQUD,DeL -&WU$ze"u J:RcU$nTUEI5IUUɨ着f"VU2&ڪ*-UJ\ǪJ1تJ㡪R2~BES{lj{qlU%d`&Kh&+o^l/h$ -۠C&1tmnejcKG3!ҌDs%liM5TPg8q5%r)W4h#cbq''ikkG`|_L -*1-b -g/s[t*du`J.#yڠ&xh>6eGAq?PA9j4t>>;HҦ~vF`@wRjLSQώICYu(}|/o>X.5,/JZj~X -1@`'FML˽2'Y[ԇED&xkԙ\aSYidH[8YHI%)-q9`Lsk&!_Rqc$EU$a(Ur5_khUǕ*q> Y&!;
4_#P-U( G5_zs)۫TYOoiy5%4aj*1rUJb#$7[nHm4)}b]}㽸Ng!CG/ߠ{S*^N$`ܘX#Ī٤`; |ߡ8SB VU.(M˞
Tc6s~'TJw~[ beӼ"B -F.;ݲ%J[uQOAVk%m҈EwHdQf6 -t0%m!MH= -#;t!>ʿI~HtUdYOa_mU0_gR.-&AߜYֳ=I:j#ڤ$t$#
mR҄6`9MqCt0&&܃GM8gMҾ&9M&o6|-+hMnM6x$i0m҆6ɉ'\K&K$MĢ{j{4\'{ -ԆaA5g=&"bz8%!CI>nDSri>5UJhE'm!Mv_ui" +<< /Filter /FlateDecode /Length 3867 >> +stream +x]K$
c|XYl- K~ȒTGuԭ9LwI")"Q=뉟Ϛ<Fu8YΜ1'<?s¹|~ +s4fSaN)1rO"Fd<zgѤL-5-"B*V:FOޏ٬kf۴#J[2R2:HVjEV wZ +/P\_F9e>=R^7۴HǴlFc +)Wͨbɶ(5nAW +nZ"pv穲B)Ġc(=H;*6wXjF?4L6@om0 +U0Jv@s,U8w;x"{-B ħC7TReJ!xgfN;\ j$rN]mߧ.6^[oNr
]TgbC.rk!
S+ DPe42n"-g'yB5'Y/Hc}G=&pCLgB +HLțLH<:ΊehGsldD(3S$ +WH"yTPb0k|^N|9r\LR]cuÎa+HJ">U%Cve!ڶJv$/)CrpLUFMUzrCqj^<Z\U]V鵺iVgjrn2Lt]DUw]^vW.D%E|1LkbiiM;NC%"ߓ +jOLc}yJJ*J)f3A.س? +XtB[1Ш$h釒[lU LV2%F/opΤ'ΰ1qV+pKOE.ݞL_-QVy}/RRQ>E3
_9tR뻺&hQK2[h2`Lb|3
,\KI[R&]re0VQ[ +Kq\{Ìvk|=s +p<$!Fxj`N0B\a#Ԍ +s˟ySjZ#+0ݘ96b]omW7_7B +vlI*ZߐSY1²ȲkY-JtA)n^ET[@1/M: ,|YG\y/~K1-S=>prrfaK
8!.ƹ>+/j/i؋kϻx$F}1xзV\pAQ=e2_Eb\X5(_JNפQE$yy>}B\Q$8wcçOvP!K0GPE1W<yCͩQkoRHҵ0_vz
&gQ֟@UQO 1urLw.]AlR\6 ێ$gF +.Iւf}88
SĻWV)+qn;xͽY2Or:3b%A}+7ʵ*;}y< +"5)=mSiO,ibHI6zLRH-@u`<0m$rbu/w:_dΈ;S(Z%Ə͌J\*W`6ϳ=0Zt6W{R<&LL\9Wue[cWN8Cl(RS&LRbkӗ +"@]~I2)Rc:>W%fQ_NAe߷Dq`ĊrJsvԄ5)H5I5`9k2`5k"${v!
swTkRkR-&NIE[Mnxx>i
hgR\>k3DR\tV)Xv\k~IAG6L
Վzq*&;9R+9uSseKn5OJ1w>aï90n$ڪ%28kgUJ)0BB?U{<dX9a]vb]KAo 06$# endstream endobj 822 0 obj @@ -1982,29 +1982,26 @@ endobj << /D [ 822 0 R /XYZ 69.866 801.979 null ] >> endobj 78 0 obj -<< /D [ 822 0 R /XYZ 70.866 424.468 null ] >> +<< /D [ 822 0 R /XYZ 70.866 424.259 null ] >> endobj 821 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 827 0 obj -<< /Filter /FlateDecode /Length 2808 >> -stream -x\MoW!_x<l&; 9d/)Z-E-[Ǫb|r6O_7`hrP3X~}壔IJ"zR~yz=~֦>w=p=|j>ǒ^[V%~Ox
Sރj(k&RVJ+DvUEKD| q.|*w-РjCO&q%so܋YP8(p*]$,C=(VQcu<UCF8j'dvf<vLm!*S앞s -u6zΊi˘6/Ւ)vY8I[mz^l@ZN(lӴ\~iVA`Y*ܭ?+^ȏo5N$/7Oм*fhf63R˭&K#ۃfڵso+9Us#wXKo%SUa[E+=2<iHr<wmy#"eNY蜒Ţ
y:pGw0M܉or]r<Of'Wd[9ǯI`Cj 5 8S~װ{?^]ӕ}W tAk^g+~W~)wWO{rq+\LpAtF. WZWŴN{+qeaA&T5kO -lL|[r'-ѫ@< @t%s6vu>z -/SpY0pG -2"i^},d+#|%> kb1/S7[VeB*iS+G@fw\1wx9QX!`W]]:N<[\ܬ g)y3cjBy;kSrfOJN -[lx[7/8"Hz#.8:˩H{Uͅd甮cL¦k./GVS8D9 MgVf -Z_ I!kp8{Tc4 qH -hN?,p: ʞMÊV:nUGzi)jũa}-'iq;jq*VC{Eu-NV?-N8[x8d̸xʹuQy- -n7-N
a-i@pzKSAG-Kiq*켢qlN(8D\؝)*?AAS>MS8%6-Nn:jqچ`:jqvr8}3kq7Ϭũg{ -W=adNJǍ -:-pJm:TNYy& PIC[Lo!q -qx(7 /U5i 8V8%^Z61N IYSsgG l"9<U !ثpРW9ɖ"'8wR6(rbt9ta/ٲ"ቢ "g:Rv eL֥vȉdENAի89Z?iWW>nJؐ -|l[8xCh8""AIn㠾"Ɖ.vcb$k)NsΧJvqy[c,/kA]Q =gcz\ÓA5B3P&[d>55-%75 -RJW(O<V^˪8_BPGҢ!.eɝRR!9X+r'RkE2Nx<W?$y_Sq*NK()j(ǩa}9h+<8E8o+Q]SOSD'98%&9qS;qVpqjXqWFҝ$)*?OE/9N8[;U/1'ǩrƱ9YSh@2Ӗ Y )Q&ǩrEb78mC -R8;9Jrƙ8gTbiWj69( xJ {=YSQSQ>INMS#)k=,_Ir{Kr'8?,M +<< /Filter /FlateDecode /Length 2815 >> +stream +x\KsܸW=*,JM֛A +MjtV$8IAtvPe>BR >ipPC0Ct(fC@!ixv +kHKZEQ<UCF8j'dvf<"4"BtU0t/+}Z%@2BY;r'd@SW;P腑
CWD۾}?4S&s"3
qMJGVr8[J8@ᕭb(.Xj +/۸TKMHmA~
DŽYo9nTrfrqFaRtn)Xe^2{uD~|q&axty5D3YNakCK#ۃfڵso/9Us'w^KoV%vhOE/=4{U9nxIӒl`tNc!<CCNnd͝t][B.A-m|yu&<~}X[Aj 8S~װ?^]ӕ}WYbGAխl^s+~˯su~0/3謏oM]r7ND4\5iYO4k_ɅFh6&>/jcU ]g ނ
;[pf#x-cp<BI]vBrW|ջ,'gV.r.zߡ+Xd| +oy~~J-',\2^ƒ-j:֥sw,r+~ZWc[ߜIv-^(NM2"i^},dO+#|%ާ5b1/knh +adNNKM +-qrJmUNN)<CFD!-7)x1 +bJJA}.wVbN|{"ڍ5\hSvsR-υ1P]aPz +Qz. +qf'Ej-g<(L䷨9lԴ|+V.<qz;P3sIQU C2˖;i`Cqg(.|e}exƯ~`z852WT5'|GؑSHHͩa}jh+<9Ԝ +ץ +QsVEͩ#5g}%95qN(9>gŷ9+9%Ө95<5DFͩMGjN²UGjN%jN_Ԝ3Ss*yWliiʜ69H y {=SґSߑ>zNSC)ghïD^99!IiNye
3 endstream endobj 826 0 obj @@ -2017,22 +2014,18 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> endobj 831 0 obj -<< /Filter /FlateDecode /Length 3017 >> +<< /Filter /FlateDecode /Length 3015 >> stream x\1߯ݍjk4.f&+-%f`%}7ὙG&,Ѝ_/IOyEƀ_"/bp\\>~,% %JJIJo
Z;н|/ ԫ{ ]O[+)ɼzNҭK$HP
O-!v/,h#6/C'jMNuO&#л6N CϛP
|E~6@LLr&&2'B ωa9_@*P @cU]I6@:! -vK-AЦh(2|de&ӕm-5L9*ܪz"ufr0_Xdԭ -qv>5&Y2^^;+x -Z\ҺZ-t»-%w}egE)Zh2ƶXc78n,:k}5Xz*B&H^rz=T]Je֝+9&,P+ǘ;1{
fHJ}K@Ҩ?<GKY*ԒE4\C0uIRC 7HB*U@ -gxGonGh.˾;ޤΏ`%</[YO|~8ƬyA(_W*|#*|V}gbH%9|oX(t-eA3tOhR=E}ۚPF#d<еF({Xt,}R2vt(oHO5&L>.'wٲ"#t)u>?;VN99h:DC(XGJhU*a(03hґH{Tk鼦_cJH3&zɎ|%L]Op -eOq-2HQ$ET8tDg} -ѶާѺpܴLDZ6МfZ`6;dM~m(,1Z0VIo5UNpnQꇁU|o{9lOM} -F:J8"h;yP*aί#ėKQ*.a~ġ{T×qj=WҝqL(~ѣGbk\2Kdxnܷ6)\Qop%]"Ѿעa$$ á|8,H;_k3YA#p8Y-|{˪K GB::n(+9܀+ɴHat*(OMJESkm--6z8 yQ:FbS)/^ -]Kq$KUՌ({A]!CD-~c͝?D5k#U=)Qwzz8 -=::}g@TJZz)^ j%T\7m>1ю'+ D -;l-j~bCM,,$й<K|M^sgCB2C%Fsf;N A3y1tiCcD=r8,,廹gAeNn| pWm:Ĭ[7v9IspNPa7pO 7lON'!s9z3;IQ%{sΙq Ҝ}jI]"B%b-<MFsgYm01HOnKas u_=6\DE3MT@2vA<Vk~Jx)>4Q8=VTjvs'>zyc#-zGփqr\Q"B 0ȇFyNoi>y";<tEXsFVy%G ~?'.[?dS^}[Ҕ1Ea%o.<k]K.8PH5 -W|ԫ"YH^ZnqE -cc?gq6ևVC
jI*+r.hjI4+ROUWr|W}KePIQTaʠ<K+gtѾ[n՚1OP&+I4LJpM- lF\{P$Ob[]15.vCN'Vg(*Zr-$҃=tzo"~2TV䮶ӡc?qqꪻO+ L}`V#`7/W8z&ѴDnnn 1*[l +1'ϔ[D>ڶ]jCPvvZI>/}GTUB~
ȶ4<
R@BIAJu#}+\0ϻ;"H@ֳрLc뚮~6e=ZZ7 -4/n69 +vK-AЦh(2|de&ӕm-5L9*ܪz"ufr0_Xdԭ +Zܣu2Le[s) w[Jʪ܋R$+Fe'edgmoqXys9tHjTTLRX'){~ 5;NWrLXWʁ1wbp͐^Q!~:xF0˯T%?h&aꚓ^Av)oȻ_U. +o bo!$ܚ\2|S}wVI+؝yMJ͓1By2^(ͳ(<q"Yy >Pxe[TE)NF\U@=<?JsްDEyQZI&rUffnz#B5l1FsW])yZk[Q9IݽXdQ QlߐtCyϟ6jL^3}\N3eE-G5RF{}0;~w`srtruQD4s7F;6CUQapfФ#;Z^yMMVg^
LJ@0V +q=H +NDiNI>g CI.z!^&96Ya[Xhyq|9`/W +u."]d"&*? ~5?s%jw(Mr+*Z=<AБtA89(YMσA!#<P4d<WBkf|\|9m#S~ge?~هwƭj)/-fiJژQE㒷lK%bfRra>|U,$/l +C`W勢GϱرU8tZLwӆsJ\K6Z/EZMJ?r(URhRoU+AfX2(90]oy[faqӾ@0젧IA&}S&dK,ɓFjWL
>]Юy$Uʪw<k6`ޛ㺷2th=OEA#kzJqS?n<؍,Uw8~ofh4%6H +.p뻽5JL.3m,$wûڐ4;¸Vϋ1ztUP_f&m.-)$Oiо97ЦCfy}6;4r)nv8 +n|}΅8bs4 "3غkEY
C>0 M endstream endobj 830 0 obj @@ -2051,21 +2044,21 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F59 833 0 R /F55 774 0 R /F60 834 0 R >> /ProcSet [ /PDF /Text ] >> endobj 837 0 obj -<< /Filter /FlateDecode /Length 2972 >> +<< /Filter /FlateDecode /Length 2971 >> stream x\9%WP,MVxv4LP$[ 2rYBq xiy݉3 ܺL&+G YrLSۻ⠊.b!!)꡶0v) -ŀ#)3JH8@
Q0%Ό-?:LTÌ="&eɘCRޅ͇bE+6&)
tь&لJ"BJ4#
QJ ٝkeBz -~p(wLG8uh!y`gVVH\et\m2IVTS8I@z zHBr*Y~.\s ydOOӽ-GZ獽6J:R@RĭoJq`Zkn (T¸#*4AwՍT@^#A)B(AY¤SېB;1xd\Vrg|bgg ly%eo6 -͊v{!cw^cf[p]nؤz3[ں -
}1*H -q -Bt-yK;E`c0=ƅVhzvE`|1Ķ\wD -4 k 5i(]%(O -,$_DTH
g8|dewAhsqR ?tQK"f,B-˕ݨؓoF -`$GX$\? - +ed{yy!/mk6}ݦMHƍ)Ɒ -Sd0|=ݦM|U/ 9f9̄VC.'3DuAjgJH]f|;GNcͩrkkM鹅E
b $p8=>*J¶pX҈'n ' +ŀ#)3JH8@
Q0%Ό-?:LTÌ="&eɘCRޅ͇bE+6&G.hFlB%
ݿ?l!%A~;czq*Q +i-hqꨁ)B_5|.g<3d5)ݓ뇭q@B 4,T?,\:Jkek{ٱ[.{lPe1tХ![ߔv`5`QV(qGTiq/-%`GȽhG +*R2PI5l!vzc;#iWh"c2ΈۋQA`/K'km +O8Ж +E9.SO8vԚ#9V%S1Tޏ(&2q&Q'34vF#GP.zsd5BldFJ*MI3Is.@9cGY!u3Eb H!fH犯V?B̩r̶:-7ܰI gRauw'$r)bU$ +Ǝ=:jD?ncQbNA1$lPR8FtNb'_I\*Nb'I܃:u:8#b?.bJ(t@!M8
:X׆ɅrІbV0UBWtj`H#hϦ,q1qw.=S9$:֎75= 'VpLx݃cMĩiֻq{d@ʑ,H*x
m-7`Eݦ%֨ըK0B;+qE{7I$][&|8fQx\x\:pszTR+C9T=6MO^VӃ1ׁ0.&= +di''øEZ,EQ%a/NH;eFG~sY +y?xk =G:wJ"?2
ߜ`VG,}X;EZv{u_S5Ί#C%'T0Nn
]L'abM/ŖŃ.N+_ho{ Ry +鞄4 1XuIi J,MMH3e(՚&""e8#Y#@:.^'ݜ$';ͩlwvCz?[p;Z +]wK@+֏LJ6iun'qJFS5Qr%q +<y%^5E~KZM_{iqcx,_O|i_sv~?DGax3q<i>ߤP2KL%@#;yٽ:-AߎuXsisSznBQpål1X1 :?~9Jbe-9)V4IDž( endstream endobj 836 0 obj @@ -2081,18 +2074,18 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F34 637 0 R /F42 792 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 841 0 obj -<< /Filter /FlateDecode /Length 2564 >> +<< /Filter /FlateDecode /Length 2562 >> stream x\Mϯ1{X'h`gg;oqfĎQ"En
zУH`ի5ߟ=p6"XS[9$|YJ*zҰoϧ̌+g?}t}J)6:eN;|pƪtU7Ɯ~c[HqBnȈ@ilLkQZhf~̺լ-TiIQ#t g@ -Gwgz)OAGQSZWz?!{_=9^Xݿ?7>?vRpKwڰ0?$D)ޅ/8S/YKgK$IҗZ6M;)i -Qkn`bT}lS$wS\dPJHڲn$yeޚE2*uN|,|HjOfg슕D -z_ѻ/z:,4-c
gg=V1xWu<?,`> -=`A;hAN#W3X40=[57=5H{8ϵRK*5>ŝ~{y:yal}El(0Hj,X5V{%֑BFOb8q-Oe4O`چi[<*&:2nF7Dizb@
-V'<P3w^m
k6r`e yNA0qr -1yV -̆]gi{]\(ULyp|t"H /u>V5R߷-!c1Lae y㝵wuU0[
v㱠}e9wJ@%辔yN'=ҙRVHi~mKpbu~[|닃dh~YPj(KRq]&"!7sC\R;2rZ&*L2@^x575MǪAK"ʏjHFcKZwZziTkLۜ)x
PWۢ'yDVtdcj+7@>K9no9=0M[/`Rݿ5TDGJjm02Vj[m-&oJ(wzʷ)z&?|SqZ.C_?V`U
#mk -ڤJ;vj] -0V@ +Gwgz)OAGQSZWz?!{_=9^Xݿ?7>?vRpKwڰ0?$D)ޅ/8S/YK''IԲiIIjjRRP?\s#[E,fIf(~ e7M3ݲI +5ۋdU:(YjϜ+a
Y +Q>YFRŭNvC[ȫVǙξj@ ̘3O]GBJM[0|郩U1lbR?Cϙ꼜MU;W\MktUKb)5;YЕhG3mf"p + +S-m$1;MشssMLhbptͷj# +8s1jR7:7-PBZZIxi-rՐ~#BݺdiY+b +=`A;hAN#W3X40=[57=5H{8ϵRKCw^v.!Qq3Q#ec%XXG +9>M|Ľ&>Өbn?jmp4C5jr,
++,vR9HgKi;X!%i/=an~/=eIBA?L/uHuyeg2sJP<AjC2jyY]T& 7=-=ڋ(?!-ie
j]jCR
3osl7@]#lu[5ӑbqM endstream endobj 840 0 obj @@ -2111,25 +2104,21 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 846 0 obj -<< /Filter /FlateDecode /Length 3371 >> -stream -x\K
c0Zz{d7dK~H=lYVUCMMlER(E^W#/AV_> -;L"@zhۖki;ePB1N6\{V*5p6jV -3k2k,m<`u!2CE\O7+|rY.meB%֝t&9-iusY -cV׀fu
#8H:Dv-
M[:S*сI4eF-=O2ӥYW))H jԩ''nd/|xLJ?>?_S.a_JyR%~!Zm\8tNR'~_a)>e !ZΝ|2q6]` -{gBwZ=EaGpZQ,PI='5$PT l2LW؋]M=0.]vPn -flinn}-nA%
~BArlNy3
8= >,Jg[b1d䧁N8S>PT; -vbMBI{v"ZĎD.ސR¹!z[s/aoc1.Um%9Rny'NOfĚB;2 H
Eb+%rB-&%E1ab
<OJ'Ҋx.)@PGe*^wM%ˢع7v{$ +<< /Filter /FlateDecode /Length 3373 >> +stream +x\K
c0Zz{d7dK~H=lYVUCOMlER(E^W#/AV_> +Dli8w$הhҙJ4ǸU,@P}N"
+flinn}-nA%
~BArlNy3
8= >,J7bOpq|XwĚ4Dh)v\(t-k!ϥs#{C¡&_ªwc1.Um%9Rny'NOfĚB;2 H
Eb+%rB-&%E1ab
<OJ'Ҋx.)@PGe*^wM%ˢع7v{$ `:YK[-,m8ӢMess4Ќ~M`m s0bG`/V8
nt8l9ic[&a'f|!.ߎ w -yʥ24}P.M1Frs~!^ԴtAcsjCO-MOCcvSݶ҆hҙJ48S=J5 )QPV)~RL6yi=BEXIĒ`A<V`6a}wUN -yc)c劫^Q*x>S09N:nզ'HKp+ bOM*o.mrb%oR9k~Ѽn%dcͅ55f#oq-&tyqXc(]S(3TA?jFڀN -pSCYնSV|jg^i\؉^Ԍ紐G>&7kb[oYI'~o{OԲQ]U1b ]Ud~m,OJb0UrU= +yʥ24}P.M1Frs~!^ԴtAcsjCO-MOCcvSݶ҆hҙJ48S=J5 )QPV)~RL6yi=BEXIĒ`A<V`6a}wUN +V-M}EGgAk!5Ll]r&E!q˥%U'oǻJ_IN[B'|3QsgPn3Us &A{k(EQ6._ZN`MK'oH!=H[iDŽ|LåZ½[U$`lXlZ>L!@t0U+װK98Wtۧ,W\|Q*x>S09N:nզ'HKp+ bOM*o.mrb%oR9k~Ѽn%dcͅ55f#oq-&tyqXc(]S(3TA?jFڀN +pSCYնSV|jg^i\؉^ԌϧG>&7kb[oYI'~o{OԲQ]U1b ]Ud~m,OJb0UrU= i-H_lU:2VRj$7jkb|aVvLU&f3}LV9X"q|HfLNu¸J&*eJ@ʱEkhR{|ٗMiD2Mƺԕ3ȚM-P ՑFhZZS~.wәh-YCxV%4^ks_cb&G6^
WOq]iϱNd.[ٕ4ÞhUQtUʣ7j(1v>.$>dg֤`i˭V@ )(5[@J`H@OTtl3q͟蘫0f}qŚԓT+X9aK;j
MO.Q\4bP¼!BuW˚BvV'=2ҁOh<sތ(vI1iea,Z ʩc/.0ζK ۂ3%W^Y9!cKJA+ak[d>r$K.hԯ7g͉I1W/ qVUaeYgF^l1FI`"ZkaVTB\a"ڠp+wbSV -ZOԤXN8r4LHj&Z^ϺuWNf䰒sc3Ԯ6R(o6 +ZOԤXN8r4LHj&Z^ϺuWNf䰒sc3Ԯ6R(^{6 endstream endobj 845 0 obj @@ -2145,24 +2134,23 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F34 637 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 850 0 obj -<< /Filter /FlateDecode /Length 3832 >> -stream -x]K`,_b -p»v~mxvcE>pVx$3^("|̬+kPE.)mgahƈq껂{1BjuHkT\RnR@ۙ0B -=\P- -[f^V' y[&ު=C9(I=_OzL7~9 -
rQsCI9C5 -R tQ0x>G`sma pΪK(*%&~CH-uT>IM!mPA *%$uGWXՁ{e2Y"(] f:/$)T' -0=:pi {3}d<V7Lȍq96;Rx2w[~RyqyVyfC저&S+n!8HTH{__T.o"IWK dҐCVdB$1ݱw(%\$h@HeW6ִX/D>Ɔ^<NdD<;+n$9[T|< RBvPܽ\]MIf$.G@LvUl
c2E)D9 B>{H#P||dKfGXM)\a|GCUyF=#!cw5Wבf56#ZxO~UKtBP9e x&X]5?DkcIRZ$.qZ٨c6嘍>p@!2ǹsOvijӾ)/F8I;3);.LJä])$hZ&NO -_,`.&2-D%O7J|f>KWWilҦ±$ -i![Cb<Bz -q#ʠ_J:B-ɫv,߯if.dvnS-[*99HPIvUa֕3^\LVraYK4h+%IR"Wj/%ZbVZ?^I':1#8y@TEǜTD$AU9 5ңy@Ząg`f~'GK +PlsPv CfSdNc3! -Fڜ {Nhz]74ή×P7$/6| TpGCApƺaaa[ݰ%Ꮍ^T !{v@ -R$$.8%$$Ͷ5$#-FA;!!PE*N!6ncɳAK5$Rwk
)ݽV\HwP!ߏ,z3"jHVR>
5$ʪ:!ɶO.`QC0+-ThWm>=;X*<RCR>]3w6v_Fm +CchKdKOD(Xnf:1R_xW.zP2):)JGKH3oHt~JzahÍty9酝ܙA=x
m9vy9vDZ9|: f3yR OB(w^Ebbz}p)Xʽk)pNθn%VjQd -Ц&w0xxPd^-!ۗ/17Ʒ6ȗkDcZ)az<_Q vm=^-H{K
]jG
"eӥ58]HҷRv=-Gȗ.48'=lӎ^ͱ;[^ecsO|9]7>H#h}Kq{R,9A*U'"=T
mҝwK|iI93W?{NwG|A"5Gm-rދS]/>lŇ 6.CՋZŇ1<{J[gv ~yZo5lxy:Yy?HML쟺&$!,jnwD9yY`/]KM?@<k͗_X<U<T -h ncO y[ %"Ii ύC:%ݝNt7w>3-NMR3P̏2I -՝':S_u/r>gl1M ɡT7/ k6O=4o0}9E23Sngi:}#O AjW aN\ ]hϞ\I#dOvf{4I6ªҷ3gwSA1?z\} Jp%|=nIsAˍmC%6/[^tqP^O!ڴ\N3iӚtg{Rr/ie
L BH=Zh%N4NC04zŒv*)Z".OG~wʃ#'M(\k>! -GԠ)k6f|vh(j;N1o|ԧ:("Rjԇ"Y*0>÷U@M,6q\(
!I^ӣm)-f{:ĤQ4T'g߃ǡx`.lpa!c"'7d\a,jfx;OVSHOPdw(dz-U# &r;ݥORfm,ȋu::Iwhh(
%?+DCiq!J숆<~)<жawQ|w^[e||[@)͡%E7?&`$jăhHAw7pzXjߕ9{\{''_ʥ_jS+8tbz]նCz[AQDV!ƉayO, e\^:vAQG9-:Z#]f=yo~I +<< /Filter /FlateDecode /Length 3834 >> +stream +x]K`, +Cd<qe +Cѧ}VqA8CZASͅ*5ge9wǗPA8A@o̚p٤UlyVO?/.$8ڻ/o҇{2gZVwOZء":kY'~,s@rGһޟ~/G\v}S~^A*AJ4)Lǫ9.kpkT]2Xba=TRGTf +-PG-^R{{EY`Z&Y(ҕj{MD!v@W@GN4
DvosG=tӓM\pGM +ٻ!_-X/D
&x7ޝdgMgx;+n$9[T|< RBvPܽ\]MIfy[]]a씫dSr +A}hGD2Wa#d_2<bhH< +{;2g3 y%m$0Ժ{˭Z*&o=:*S&*N+6YjPK(L=Ɋ$A2N2apx̨a1>p@!2ǹsOvijӾ)/(yܤ7);.LJä]
͌}M4-''e^,`.&2-D%O7J|f>Kf8<7 ±$ +-\v͡U1GM!ER=Ke|%\!LK^)if.dvnS-T%rrfALì+gҹxJHO;9fhmW\KDIR"Wj͗_J +Ĭ~XOtb^GxWqPX9H!6+!6o 6s~qjGx|@Ząg`f~'GK +PlsPv CGTp<6 6،:thun#mNC*D'{
1PuC<| uCri3Z7D +h\2X7l]7 lV7ܱR7\*!ҀaNJ}
cM^;j#&]Qz`p$V~R1tlvŬ_cG:dXc +gdN0ޕ!=nAnF7NJG2)ކdnÍty9酝ܙA=x
m9vy9vDZ9|:Lg㻥^AFOB(w^Ecz}pP{ה:;V<[UGVɸzGUAQ\x iie-뜥ݳ@^[-A]No[
$|+G;uOU=mx&iUvxFvܱ ~_B˗*In"3jܾ|)g1eA]#b{J t|6JkƓB/'_H~AR;j,ZORcHCv ]JЮ絥H҅|&`ǻWsl.ǖW +'kX:Yy?HML쟺&$!,jnwT3<sX_s_~J9x_X<U<T +h ncO v@t$%$9XuJ;dn |ugz9'[vӛQg{ڙe;!]Ot_ +4q3O2&$RĂ.d$8S+yRYn~m,UN5Uף<R Ol05̉+^-ٓ+y)lr3ԐF=()};so{v.05N]?{#ёޮ~ڗ +mdzS/Mz'JC{h[JE1i|( ( q(X}pƇw?\XAHtH
8%W&n53䅅N'o)G$'ct(2I;Z
az`
ߖXDAROB')6B:E;K4r4V_㒟
4nO¿
UvDChVV;IC-2MvQВi@: {
!3S=swcʜ|CKmd//)Qkkf:1yjr[rSC("U}ZY'Mvr2ip?.?R;Π(A£Cgt-#]f=yo~% endstream endobj 849 0 obj @@ -2175,18 +2163,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 854 0 obj -<< /Filter /FlateDecode /Length 3735 >> +<< /Filter /FlateDecode /Length 3734 >> stream x\Ks$
Wq}XIRgIoqfIGw[ZII -aIș"EǏ$NxtseF5| >EGOoi~ ?kGRORP[VL#ٙmZ$.~n2߿>=;tL:{_hdZIFj"]$ /<9[*UX%e) -Ջ*!*nH -{`^ݖ -X!%eV::2YT,T#3=`\8fZ˻/%Nfh^(v;'S;?|8Iynæ,`HS*-Lh2me":K5Ἀ2$nDEeݑY -"KDsd?BTZvCfEш-k"WCAEŤ&cGD`Jy0GNKxy -YbXzDȋƶ)F^)5gtMh@dԫt`G\I_j0yYNe? 72eb$qNtI͙%)FU,
us_j2@ϹEfC~[n֚nGi%$
5>n{^C){`vY-5mV _4@|N[HH5kq:*abH\Zd
ĕCWR0Am? _vbYghO.D$wQRZ@;aeШaļUަDZ١
<z[eiA K-#2U!6WTҶd+)А>'w]Ҋ]8U1%u@L@j>N?kCu֊4o @`(P$a[&W0Cv!lo+8_TT5 -bJrLS9s2v^ݒb슭ռ]FnqvXHr!IHOw<a!e
kBv
еʗ&o
q2 L){Lpܙȓe+F~P9;B)TA&R0i2zFrGs9FLS"n2?p,{*z5rJ$R:.%k;%ftEbqB]! LC*x˄_[*cښV*Ɋ+trZG^#a-X{2/X /)u=xx2;#G/$9$I1sU>.e-#>NpE }X1w=K%Z~+:]<ʲO9tR<-A$&fir)&[H0FsdHs- n=Jz1Tt|N>)]{W(9g֒l<N쮄
~֪B{qOEuܭvRע/"ґM]JF5Ļ725SwX,װ*)k)ȽD+e-MnO])st`B衜50dMtqKDCR }dvgӣP$Fo# -VuTݎ:쵳:!tzuvҾv=5x2a3s,u&+.Qg\qogug?gF~>Q-9\T]=5yXNJ%йiv9ږt~vr쒞b-̞Y.,
":CLhZJBȜܶϋ֓LՔ rzE*4[ ]gey7R<=F:ھ@dࠃ_oF;)/;yJWBDǤpYfOA悀uo=^x6RBI{:FgH0 f
,Xvlxi -U--cT50ۉM (-6j)P';`KnFInd\pTў/MRkz)+[)E?DJJ͜lRD)oVWAUݲZrr1E] +aIș"EǏ$NxtseF5| >EGOoi~ ?kGRORP[VL#ٙmZ$.~n2߿>=;tL:{_hdZIFj"]$ /<9[*UXEEOQ.^T !Tt#gER]4V + -!~ZLʀfiSU;3<SY_pwh.<*;Qyݢ"~L|k$Ai4!MdlF3m˴"^Nj,IDׄ".8a1vGf +Ӫ>e +EK7QǦH!V7څ>G4Ab/ȗhejAO&mJMF17 + Ӊ*fMLF?|<OpD*OnOQ$yZZ^sUL3$){}X@>i̒hMc^(CS_ʒJ+kV|'/Ԡv(1/iA84}bRg*(cfqmZq>hNV՛c`s +JNȱk_1rL"[1\6 ++.&5a;"S͛9rXrʯ'ɔf +y0ײthSHb^*oh"rPQB4Ϡ[RҪ +*i[KߕHHwhAJȓ;.AviEɮ +}u: & F5'v^}_!:kEٷJjNw^ +iԋqnz_fvjޮwFՀI#8;,k|k$;ᰐ2Ϗ5v_C{K8NuU׃pl=&@c8z}cɌhk#?[pqH!*
wD)\4B=##~Ds9#SJx?7L8UTY +[N]R9F%}^`[QRqUCO`dJ~8.͐j?ڋ|!<e]ɇS|M-m1m{+mdg:9#vǑܰQYk,=T,{:xɞ}<iu<ySe퀣SiHKSZ֤똹*r@~oq"Z>?лq-
?lMGeYЧ:) X]4H9y|t$B92x$ɹIT
=i*X:>T'dq殽+3kI6
zv'vWB݆vEvkUս8ϧ:VakЂZNKȎQƦT.%#S[K +v;jqjki|B䔵^ؕM7'R.ԎT9k:0cPq&:Y[8%!g)Ԅzk>2gQ(Z~Em7 +O0A _9d˜t`h3'-8'ڧՒs}<J+c}ɗXaZJ48.5 Xzk#*iIwܰ<{R}(eOv_ +| 魗qz{]u"_OIk5X0=fScjW%+RrV
˳}^y61¬i/Z
҆`kBO +6pt:nGW]Y::bi_uv;<9N̕y (Nx3yQoyڸ3QݺK3O{?#?GV_ˍhi.*.ki<c,'4mK]U]:?I9vICMf,vZZP!&@T-Gqpd]On[EIj +||ksG; +f endstream endobj 853 0 obj @@ -2202,20 +2197,23 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F36 775 0 R /F60 834 0 R >> /ProcSet [ /PDF /Text ] >> endobj 858 0 obj -<< /Filter /FlateDecode /Length 3674 >> -stream -x\;$WL"XVc@$Ee+w$ٽ3s+9ݞ&XH<$Oz:yb)`O>'urRxkO!>óIJ,RZO+QkMohzbGsH)Ѥsy'V*ӗ1(#u%#ͣYe -DwƑ2K/OYȏҨO')tW= }ӟ0^Q߈dҡ BY?Xg)3?kVF`+7w=S6D|1s^PزKdaU}HQQfFxNwIy0\-B^l} 'n+=;1#c3H-y.a; _<[?ĥ1x>n_e^4bB<!O~j(Vehq>]j%SaQXvVQaLf&$^\ -ȲJn9Ƅj@jٙuєdHZ5ph(ǣ!@dlmme&0F- HD -zZAzAZom@٫R
CٽCM`r+RJ]}@M@%BL0d$Gp)-R;ZTC??/Q^k!{0Q@S2'?^ -IYM]=hT)z(UGf=cO-ۚQH!kR\YEKݺ]!> -Y}~j?]SVywJHąAg+/Im5t&Ke.aމe_FB2wʥk{<xVQ_iI&F#҆*N50Cd".w=w{T?(.q(=Wn -r_4˼!5? -ctAk&ZwjHŵ=ݨ,f:=xT<8Ck}K%zGlU>wwyR7fUd5r|${va]_Jm9HO -y'pp -T -c=GWAilZAdWvbʗ0vXky/O. f~#L81MEy&sĜ4&〄4P9cP?"?)B~||OY $@Wj6("KЮT4x{Q8MP)§C(9]s-0|/T9 -Ù!'E}œc)@ՕܽhטwsYK,~|y{N(J~=v1P94 %2|\ B%Qt⮘xf(%Z
-JrAS6nma@똶b?*T?3)7w-Q|{=
+<~l#7Oj[TzItA;anrE?@!cϛ]xREU]qp6QLM~j36\o?9nuzY
|jo"va@q,c|ڗ;c96ð)p\?İC.kZAlMe?,P*hbAl!iӭJk/je9 CwHi-M=nUሄ4y%R[QG\u{G4>^XH_ _͛;R? ZX>Z)EeAD;nB;Pu7Ҭ8a +<< /Filter /FlateDecode /Length 3677 >> +stream +x\;#W0ڪ*e/ٖ*+}fnwt ?Oz:yb)`է/?? |O8֞K|g'w3Fqn=Q)79>7sm{syO;+[VOyĘ_cL +4uڕKҰ M?<JQFh[;ZHݗ,G?1o>>;}Lo|ד6O}g!Pʻp
$V%P-5I]~O$HkI5+F@H˴
oaK Bw+{C1s/ݲKdaUF2!}D GU桝"-,aygXyql}IOݨW<;1c3H-y.!;y~^"&.M
}.JܧU1A͓T".%PvMCZ ƝhT\^k,|֨WZ3Yls-yX.F%aى_7cB5 EL
۪hJ]]${-zt8m|g!Ȗ$g}MfXԯ+"-FU*gג~sl]g/\^-ua<8&b*e>WV D N?KnȻk:ϴyJ1?c=PΎZD8dN{%C: GIQ?OX<-ՇYύyO6xxY>D1(?'&ɺvb5#>yɥ/*05TS[gҢ[L*6#PQp~gA*khP.$Q5xn潇a)$57OQlb tX: TDZ+!uxP&H7YI߲ՠn}j(YYelp*gn֣nH¢7uQQ&𐋎zƞZv?5"!jR\YLuB|$$wNhLw\&UԄ$j*_k;FJ,#&=g/(n6^PS؉tL4,LS0rX=V(@3IPf# +Bu/d[;/Vh!E\t9P$ +?s#C(ƿv6R^v(;@WCpb{4XGpcIdR&t!d}KTl50zC
MjXYd.6QYSy{ͦ/[2Ss4yҜ~qhZ'؆FoY(Lsc$0\GlpBiz+!USٸFHyGx&`Z֊+stS%m"
8{{܂#YwE^;%QG$$zJ0' +'Ns6W8M7s1J̈́S= ZKJAsjnޡ?HJQڗmDq"}-EjI' О'SS4J!F5Ga39D`$f yܬ9 16~jZ)aƿ"BS/T-U6b&K^3@gP_4N].s8SN,2-9*x4xA+PDՔ$'~LjAiAff踝Vzs8@ziGʩrWZ3Bϕ +3+Z:Bf{xAT\ݣ.膂6AkC}:p[>OiژYTuŌʥ%OFKú( +sڑZ217i +rNF +y9PB6ĨUDJdNirt%`44\,5,FYfhYiK)=IX]cA!Гz +ܷM"WG")^J媧 iп/&F`纮ALwUn:4`+qWd(9
J#thA!;]K] /m!BIk4:]_ZǤ59TG{k:GIqו +#;G`Lr +oC`*_K9![q|]'QNw3==KCNt'SlUܽCXLer\4kY9d|~w<=j_ϧD-6h Y>hI.rKZD]1.hfR"_Ъ;M[[:-؏"{AݕJgԽz6%NKn;~O +_?G=?*UO~Ocv+-! +Tʇw <۰G1k7S$suP.|x81 e5@#k
6D=6q,ct1ljf[ðaQb!~Y5Al_,PPg CҊݧ[^R4Ҽ[ +7ACDV#RJ,,x )PEBTqKdt<pռI#!)5C(Cj]/h'j
uCtj<ZGfG- endstream endobj 857 0 obj @@ -2231,29 +2229,22 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F36 775 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 862 0 obj -<< /Filter /FlateDecode /Length 3809 >> -stream -x]K
}X -ca1/"!ZіOZ7>v)|E5NMј1#l\~.9_N(KT0<?/}kG'K`-xE -ߗYy)̐B-mE#rȺ-KEiDke|ז\:l5(ی8|%G( -N#@kZ>ax)ӸCq~VT|W*|v).8EzsnOCFc~'RKMKI3k窌EH\`"$?EvHlɗZc - Ew{%{d,9f݊_~Kp_ϩ~ԗ_.)%R&1ԗsD64fv̈VX5#Ui@)Ŋb. 7n~}{k7SAA(عgO˻c*KѱqqMyP$:/PQ]d{5UFtIbK<aMF<LΰVxL"r@M"r 6\1G<-FPˣpc&?ק
|yF4}Jc4b+M8ND%Rp"m -)AITt({" -H9k9JK\8sW j+, -3o\EGOmk#q"qg2vq4QS[|flųu-ʆbKșζ(ŖyKNVataK<_yB -ؼiűOs2_jT*O_3sW؛*4.4ww_mL@iT /%䗦jBc+\,)GnrM0FSoz7[bqbߠoWeot89jye04L1إv/"@LO%D@HBɅw -RrpCڦ_PCx a]&pv5F@
ri66BQ u%&Q[w1\@{;Y~6- Tg~i(o=ZV(th[5P)@dJqM -fdKP' ]U)Y4V4Fq/NH$a$prM"Ryz1j.1(@^C}
Ĥpu-T|KC ]
-N]RGu-zʔ*Y!Nn"CH4#kLP|bڦ!(bw@+
"a -
B(ba;؇%!؇o>4ҫK~w -LRG -R.VD9^i,kFR1Ԩk} X`g[-3ɖ2E-[5;`Ŗ6b4(ϼ -㭶`Q_E%֣Ga+;{ӕbjj -*`KVӮy%$G)Qh9 -t|].Jk~fq[p -Y߭ lM?\Py
u̽=NOkv/{R=sYÖ;Ep9m{;PPL -sB-Hv*
mjA c;De/΅5#x,w8 -6UAvf8su[h+-ffN,]\-=\|sn,QYf*0>7yY1B-,eLHeF6[[l4&qlm1&IMjN$A3-$zͺBᡮL
YhpYA } +<< /Filter /FlateDecode /Length 3834 >> +stream +x]KܶW>F?*MoqtsĊCrO7Hr'菐|_|zëdGϗO^_BLƢ|'kGk'kZG(+.>!<u;k->P ?rCwsϿ}Yk!8rLP\ љ~)pkO9`DT].|YK۽?}z.{1\;ΎceIwmd)&"Ή@Epx.)ʷ! OXcq2#V!xYEÌΏI?7?v{ װ +/dr@:1u.*w? k:ȼZ*J-UML|Ch/-]SJ>;)>,/m/ih2FA*5#UiA(R3>P`wn8oLP^5:KWv=TϏ5U✥? +Kˠ2Bp$-D%Ӧ 2"#&˄FkKRyPĞAₐVx~M"JM"J .^1`-FP+HCCPGO<m_G҄)р]'Wm)$ݛ-XW_&:=vln5Vi%EMCAL9+e
RK+,( +qj6բgJĴ`Dl褬GS'6i3v韭1LZR +}uN
w,o%k"ĒKnD"W]Szvcb|CK57qlw%M]?>o0rӠYUBs&Ԣjx5j#mZ~ZU*!uOYVKmN̄swG8n0ŗ!jfX<Z7~bKh\-Ժ=lKiZlY&TqFFL}e790?^C/{ːZd'ޖfkߒ˥NI?:8ziI)BDؐuau1$jf;}4k"2+UB~jv=
.4h^Bb!GO%Z(Sh2D>tQ+X}kzEFs9~fN$AWa>Ǎ{f!|ƈB@J)$H',;_/B@(K"Dn_.]?h,k\=tT[^mfr2%^ኁo
D&8h)jk|`{5W+U I:HАS!4k宖d.i;|r# +=&1Yɬ",8$@ ,kMCXw3ɉ"{-pَ&q;!2:q}X|+KZk<;'<|YK1 $zD-&$Ǖ'3[Q W;e|y!ùMj8yi#0(3>1^fP+>"$bp#X`|dVF +M|=1PGx*1 #&:# 7٤6JEnnVh=*{j8D!pmh"_X(B¶MERJ5#38DM84uX)R;5hCۦ!d<-(wc
)"SbL +]:
B(l" += +lY ++$s`@>$dl0!RE|ȾV߂I'/ޙ@vMD~ ]k7]ZҵG(k=h+AH[>&C@ +.$_"㰎<%a>%o fcpFB5ҁ@ [uFB3>#fC?'m#_S&+KJ"̽G% +XH83jN]?9[i%t.^&ܱ8y䝬9ڌ<gab*H3ga=gw&A)xip.tUǭLE#<f̠L=Kxe<Q̖ɒ6w-diMy1YrŘL\N +LxW7dKfti F?E_ endstream endobj 861 0 obj @@ -2269,30 +2260,29 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 866 0 obj -<< /Filter /FlateDecode /Length 4757 >> -stream -x]O
S>D8ַ i4ү_R#Jّ4y/zIy??k~0w7q9cny[kɹqv/Xk?,kιs1byʈ/?}s{LWgԇ -ci`\Qq֪%0Yq5aKaqI&Q|#/PY'P$?YQjLhՄ3>Yg*I,5q&Vʽp$) -#*{#I4'QG0M+]r -#P"6(K0YO._i -,Uɵ:a+4LLNLѱ:n6v"F-ɖ\'P1ѱ3lm}y ڼa6WĄ4ZIr;+",JOc u@9Eq[:y}@D&9Gaȃ_I5gd7 -gƼiT -CS#,mƊ:^H8?p@G615,@P!f;X4 -CA.VWKfJ'=ga*͇PA tPE?>;xh"cٺF$:h%f
X:5nmzV|^hoyM{5-[]eo+.]Tj{;t^dorjoVao/jo\~ -9;AAgB"AAwoξDGS8v_Svv_~`}="JuflT+:+WW.X껯\}})̻v? x~+0&,(T:aqIh>s:a\}RXa\~~@ -V -Oy}M}ު3O"4}RߵzHak%ݏH ^Hοv? t~+GyJxf衸wZ݉YJD˼-܅9,<{BX-=p.'>%{DOЮ!9~7|R=9)ՃR=9N+S.LL:ŋ{I_2^*>MXUޠxќ3}Y - )G5'ѿb4jK2a<LH%a. S7qʵ˲uRKpS -K(,BZs^͇3qC9OS-f( -}tz1PCk'123_-ll҂bc9z*Ģ7r&̰PNpSkZxFeV'毙&f\M5:ZG7jtU&QҎ/gW&ή#eVZ͎B,XO2OcJ %j;Txjeϸgor-]型m)Fh[̓`[U%\`42g(y5R rC#TRe*;P4#TgJ&.L1B[켦BjVP6BC`[TFrFmآ*4Bl5BTg8h2BmVdU@ÙgCT'Vn)(~/\2hB R&["JЉ7\I>Ed)hY`ZQ41F\AqtsV
8: 8*!8:}~؟^ܘk@ު~ӡDEEh"8S -AdHտF,䆏jg.H`\Rp5bΝy[ -1܄*k܈$#jzԫGM$5Qܩ&Vj$4]MXKѐѩ&*i
%5qV5SMnU'~j$9^@ZVPM-(EZU-u筚<S5,^y1vf<F͓cl/Ujurkh[FJ3#iQ up3hGp;v;prVbDTOE昨0c#ܐ`Î%>-ɉt;7Ҵʺm-l%gdփn=Q^҇TB|lHęm -Jl1솪լEЇTw-l.{GX:uo06)lxyfjF]p1kBa*)rqzdk^sjqy1ΓA,ƹjD:EnqM4Γsxfy88kpqC[2sіhKmЖڒqZM4"-(Ig'PWA~2stU0葼i$YgH7'|ǑٜBgdb7B䚩Ic -=8&,=n1o(cKhP 0ҸXd*Yb PP(W}ɳ8KB\^)J#Ka{TrFUZτ<ËF^7 ͆ˬdieTzYVes=fY{2+yZf:YԮˬ$4Ԝ&<{¢
,\Nby:Byĺ+!n91˹\n;py9#)jNrj#G -Ro(#LN207#ܓ-1k}W97y&͊Sғ)&<o%B4 -A3ݬFM|<0U'-ߒч/O$=AiiSt%^q'D /KK*Ϛ\EȢmEYMz - lGځ41\ݣ4) -}#siU/O4*[k9Tu F[%K緜w%٬paYs)|Kӆmw\.LX?K"]1osvnP-0D=o>ߜ{VǺDW +<< /Filter /FlateDecode /Length 4760 >> +stream +x]MݶWeKqȮmvAVmhͦ3KR"Kg]זDqxxf)~YgހQy's3xO8o9s.>r%7RJ|B^~Xkιs<eD?@=@hR%CTrI +I~"9ё +:Td]D:4IAg=(BFP +ud ++d)qDyF +]&"#"<>="WZ sa-j7"LYRp
H~fLi'ci!Pc%ZFaY +͊P`m-e!<~ye]3h;pۈ,4Ziۢksy6z<'w#+q-|Ujvdg6M^YYɽaމTOL)/+U*J!b2*p5^y",gQ}zunjg#Vp;upYD/mij^!I/\y"V^/\W]ㅻ*x[[oC[pY5d\q-We7h0;AQɯ"A!x`ﻅ>eđu
}R/D_Ҝݦ_ҷq:/չqhBuG7N6N0o +8-dѯYNaO2q<tL%CkJr䞔C%DVB驕N<UZubnH96eJxˤ_@](hu'&SsalELuZ0c"'Z +&m;ŤdVZ%WJ<B-i^; +ic<H^3wCKçR.E/\ +~9!ʥe%&\:r)I+λ +zºCgT0UrwZi!E&y.d-w'
auJe^O!~i*Vt9V[]VT.eꝎk.TmJ4Zt8>l8K*C7H;u~ij9-}H|/fH*[1Ca9 +,Vhc
\QsGa8ga2 +ӺdoAQC<v;MGd[Aӝ"77D8 /ՌpEUD%8%膎 hD+M̐~ +7KZ:1 +a31[2ᶚN3j&N~V3QV9 +`40FG?%n
kzT5(͌𧁣)p`$6LBrZv6ujءrL4b!`2# +S'fD.5sZ{[=4\Dyz"jnA_eDeLފF4lZ״Hb +$J4~W"b! )m_Jekc8ZÔGv1p=},$+6c'pT錨~pe+4nрOSs/懺te<_щod3sصB3\*m.UʖC7fjz>2%_b%_"ls8 1NxӨcHUY91ϠkYj6ƼղK_(y@
@0F<9BR3R8p>4Ӽt,_te쳫Nٵ}>*5g2,>{gWhN>{2:g3gh1J$]sbij>{yge^3/'^cK>*5g_K\v)<rog]/gEeZAUi!7MCn^CgD;4fSK@JھxcR_S-
&?Ox9|8j@~,e7 <LgUy-gU=pv%+e)uonh@RFĴR;hB +Q#]K_ 3!r=pH
jIsrjufY-jV +TvHrlIr;լK**tYjVV4;#©N#wj+T-|܌{u[k<]<e
ϫmWsRZ.uE1Mv)沷(HԲ2.)NEmё#]Kr endstream endobj 865 0 obj @@ -2305,34 +2295,32 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F36 775 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 870 0 obj -<< /Filter /FlateDecode /Length 5236 >> -stream -x]M丑ȣ}O`Ѐkeiw5s/HH1E2P]]||AO&oӗߍ,X}_}!oޜB}?H /zҠߊ;D+>1wιR:cN;OZ*}cG6e -ڥ&%2Jݡ>B -oJ$Y./5-@ҍ@MHzçJPkbB!l#drVFJz`;YWp -6fb~K#i)[GZV;VZ)`
FC˸@Q^+MLrU^D"mrn;$ƒD#$jX -#HM¤H(0%wIas$*#Q^QK?DIב@ - -[AAS1ۃv:z!bSآoyӨBg;塞Pʙh/=JE=z0Mm8JK:kJ)ZdCJ} -F<aM7NXHO_2cQYsͦ7B} '*pݒUNa,W)ǿkǏuuـ';6hAEg#AlH]"Lekja4Kʵe"o+mx#EXVtb
Öy?o#H--Os҅^M6+!`DT"wx״NDX-E v_7۳)Cʊ^_N3`iT8;RyH:c#H9+aHyl5(x@mjAhFc42 -)8&f(&vzD^0AsD}:Dp-E`ۢ я$mmA"=d -DHn_ܽ,,
}Vzb#Z(+,&KE#xԽoC+X">,abwlkrB+ʧz8FXL|,RT
ׇ()k!'v.OBHC0nC08%t -: -
MuŻ5.dOE.Z4]1dmNDPUx0kGS"g|
br}4Ƌj@5ܦ⾭ -[R# -4z%ʁjp^h9<F$G9hQn( -HRUs*Nm:hkAzlޞ
){\˹PЈ_\:nɛHle*Z<P9[}'uxeaxx/ p:>\(t!pFz:f6=. ܑZ<,灬ϝZ3Z؞W4y״<0PyZw+N![CP;]HO[,YeVzl -KZFsT@!=J[y( XɃz)%$Gb05oѤQ3ŇRDIǃk!/0J`&s-DZ~PQPE(fI9ZӲfQiM]geά]ܙe!R?ClY{..)kw2%k#Xxj#[ST۲PmCT۲v^jf־f[>zjF+m:aݧJ5%f~9?*&OkR˯;_6<dә-J0i(e%H; zPfd*I$s&;@`*=jYUҤYf^unBt?6
RBhvfy%I3HAh^[l
-
pBJ_`98{qf:z=oo~w2L:}66oޖyz[yھy>pApVph|?a'܀jjqQK8˓P:7IS:Xz@Pi'@yoQA -AXck(LtLp8=}!"LkhHV5S7YUPriU1*_; <9|M `#]m[N{koQC3LBҢ$^-I︭b!\I6sNҨ'z
/z'٬.XR= ӗ&CcG 'OK0kFGo)HsZQv:(!<XHU{!0*u`#>/N|WZ}tQ\LJs`Q\pB"`EP%*`~UB;"FAZ%NOL^>K -3[2`~OɀctȀ)x:kȀ+_n-!!d+nȀy!+ZeDCҹR5(2yIa/XdCzq[Wl|iOmn]ٵuQ胄'IP|qmZ0qЊ/nڲ9QiR^FQiR%pyIG|rgp/EYKn:ȶ*̶UEd[G5PU1!kON]3~p-ϧK~+e^tytٰtYٙ.R -]S,lLSqe.S).Ky鲋/1t9m1]^O.?k[ږ.R3<y-W)]сpFQl+}?U ;JD0ETYKCRBi>cMj;x7sL,~OkZwbũKA(jT#9GaYĎ2UnR#oyD[" - yePRѼ -P
5&g~Cޤy>D9W0QDxoR3orCGB~̀Ę+"onڇ[ڝPK7""e0YMM!-{t\~}I-Lڤ9FIڳDPͤ2کeO-sLMx5Y O2ew!XTzj^TSJD{1>|^I%[4Uܶ"ݟФ1ٷ)],nc[Jn6WQq8wjŶ^CtpĤ#
--pQO,WSoZt|Ļ9UI(߷YC~
3
Ǿs?=KQZ /Y
➌:;~rgB_Un|'ˑ9x?-mhxۅុ$}WRTШ@k EԍCugވ|>7/,w9]ayW'(>WS!>0ӳ%Zr}&==VB:oQ˫F#vۡ+ʼ&|!G7r$aڽMU9"W>"fsh9cdKgbe Il[Wɶ"fƝY:{L<:JA])(/,q^OI -n@4v=P0y`=ǎM[6-jsf#m` (O
-s8iSwn^{Z%{f(6&̐Tzl'bJ{ -mTi;NfY,؟4=SgҠ )k>uh +<< /Filter /FlateDecode /Length 5226 >> +stream +x]ˎ,q߯h1'0ڀvg'he[ +asMTD=Pi. +k;GkyEIj+3HP Q~$:XpD
K#QadFITtPDJ3It@o#$jX +#H7r4g鏟C¤H 4!J
Z
0+}ri-<Ϧ9opAh +quxT9z{N'쁲5Df2")џo
k09"FάKѽ:䦎Ag/VN yG|Trh;)uFph)hi1R^Om-QWhm)mְVyaj;"IkejNmI^m*v9RRj[LmnKm<_7[ +^٩[$¶V8
7)t_/xk9d{ +*}nm!溪[c;St]Ccﺺ+#F҂XC$guD6V6$^*E}IwYCB!ma4X~Kʽ,mVĿݿln)@-X¹/g$Ưmf-nLidv}V
R+S+$ju9ǫ]%rj++(@d~ߝm_)EJUvĦY_D$IH79 EVNaZi(x@mjAh*gGpe%=npnF(JdGT*5}d/ܘj Lު5`ND1=DSiM26
"E:DE(*-pc/
t#tpTT=+;D80>nbW۾Zs{JG @I +qzhdYn! +x_e&>sצEuzLyګ)=>кZmIۄ>Z|㭶 +:Pb9'8@uI8z;R9SR9ZK4iwE#c֥mٝpvmKaG:3nKZt]n"*^ݗyapzkc (M|ԈOZ-:=qwd` +zecSgPfxF+5u +jq5 =6oφ }ݍ˹noTNB-K>3{ĆP!ᬢγJ[*9;G};w Q40dὉP(!P93f6=tHEd5|?Skdz +,!Gi=VݎG>f!'xӞn~O![PT~OM7^=uKrU_}`kKרC+|!'-9"|M=Oۼ Kϵ[*]8N$8нV/j<qٸ[!N\^Rr(SRzU\{^)ZRS.R>J<߉u +JM&^^O$!|~g|)&)b֭b^~N|_uV>/ly͝|*~[>oy+|>˖y.S>+q!|E|>x[>x[>tm|x[>[ײ.^z8 K3 DV}U zzM3l}Um\gC\0j1h[ݖ_)v?nӹ -kp%.
+M +GG {q9;}qgvz_n7 +l:o`c}cy_< ! +=7QZ|oq{,:TB1r{doTms02v>ᔮ{(@.ck(LȁNh
?
HeG g)|8a\YfG`@C\GreKTN+k~BJ\O;m#| +09b[r`x5ȎF(-JZłb)5-h.J4H+Cm +bs0}y>4vr>ciAT$>QGo)JsZQN?+!<XHaU{1*u`#>0N4)0..Jq,ˋuިC]{eC^`hUň0/^Z)鋗k鋗o<+<gĖeSur:g<oe`}qEM?@yKHߝqe0
}1J.⏖zAzj>5q?#~DTPw+Dإ.4튍/߲#K#.}l%I"J/a|OXytNisJ+xNi4HKTzUǻjJ[\i..IԇKUTaG~A.3(ZM + B_CaEv0|oT3T=srS:\t4ʙI}T.>J.'$
>;+T`g94>9Y4}[Z6h5^fR|D~N3 + +PCaBx~ +[
݄Mw#Dno˫{F.fam^ܩ]!G7rT'&/;>\yKc<Ho.ZڧAhm;)t/| M-Zo/K.1/h5cv};C6=ӂ'6:9JN])okNPXR)E+D4*4ExGd@uh5+MTʼnS0?yIu=ዟ<~cޖLV3ҔuJBU"z">]O|Gz"J12.mOq\܄ei&2ۍƽjs,kk=9roʭ\|kUŢ62`NEG)kdܼ<+ *
{OJ4Ki7V4kaD]
UYLaWp>'>:]qk2cocVbp踼m` U\~ubx52lV(w@~ +T7;k5PߒP|>Q])rSRgo?Nq endstream endobj 869 0 obj @@ -2345,21 +2333,17 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 874 0 obj -<< /Filter /FlateDecode /Length 2836 >> -stream -x\MoWs0'`HL[6sS^SDXTni -a=IϏRFk(e1]sGJz`yO11{V(k3.>fܷ#p)a&Q#NvoJaNbpecH(BP -dh+s9ON㼈n&AOi|. ,^I.Cc#jKH'܆ZP <]諾5<!קɷ6ti4jV4ɪ3^x{g qK++ {-( -C*Hlj@ -d*+dpgI
%yHTrB&8lSp(C.(%פJiIjK&P5&MKeYr*vgYeWY\e]2tie8góvɍ?yHЃ@%emON׆
gXr%hJ)/dl -
DjN=_!ʂ躨qŔ#HTҾ^wWFc -|vAΙw<g:V]Npec0>rfƥBo+J)$DjDejX]c<Dr.-JZJ+4,ig[&ݳ#3d9[lҡanwMUaISG1WYVagMMZVs/B>'Йx%tG;I!,+?m3QSsdpEAi9w +=`nVP`4cd\;&Vt- -qMZ[hp&hy$e#GSU41,rH%uQ -"R]NO{: -BlÄGk -QcͬB"^T)_Yp8Sċ4fRS/B?ig+e&`{x -&dI>Ю=\M=\M܄IJ脑K&PӿM(-8heA.ɞuW\e]vpuLh%Pe/gBM_!/K~X[pV8h, {*ZCXT-X-[j܇,l(֊
▴L!@m:2K7C뛁ろVXMzgͅEm̢wW\wWᩩY^ -/p%T8y ƙtgs1r[3;)shW˜V>Y-sGlcg+gLSGљmm%dNT'D'98
2`wKRVq]%Cɲ-ݒ^GWTfnL,B;>;0]=#)6(FB A0r6XWǡ"S_{)g'O +<< /Filter /FlateDecode /Length 2852 >> +stream +x\K#ϯ04Y'0 Y-l 5_]d7[duKMJaFR*ɚï{:|~hD`'E_A
N +o|/Ï/R_OR>+z|}FDjgRj3s;臞X5*cϟ5@,]iK^Fi[GOЌ!Kp+Okv!t߿<ڠ0Tv/OJf
Pe[H7i_Hj% qCY5xfD@T#kHI/ +m욌I"q8}e5Fত间FrgV +eAnx$L!(nU[,ɣPέ8EqH(Mo0K[x KMH'ϴ@x\"nw7-(O6mg98d
i:u&::za¢3p"}Vh$wB3;%-j^}!z +
osD\;'$3}>2S/Y~(sB)_#lLGVm+` `mVhׇKg +\(&I'dFk̘:jK:);ӥty]% + ِYä1klYbisa$M8VC[1)WGykvN-CR\++.G{r? te
<=Qh*#21"ҿrۨ9tj5&#ɧ' c h +=`nVP`4Cd;U2Vt, +<7"--Jփojpya&f^ʵ3# +ڕ3ccb$+9w<.ǫkg˛"2uQu;ƞ*ى? endstream endobj 873 0 obj @@ -2375,23 +2359,19 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 879 0 obj -<< /Filter /FlateDecode /Length 3352 >> -stream -x]Mϯ4YlxgoOI /)$-Exf%~<>*%/_/뗧o4x
u".3g:8_.?>s8q.kɹqo|Rb W{h}5\XN}bD,eDO_\
^"B!hAӚڤZBjiRv2aT'6cR^_^~z\w_KpÔ+-V"bF˯>D'b5ɜ8Tpx#cFCpmTnml
kS(;($%zE19%Dik/>ck ^KL*ÄkmhwЖ%j(dJ _y]Hc՚]R\"$(
gz(@fv32v=M<R-# }L<dxH%9F< -7iuיqtXzp?[:; -Ka〥#>tfKo,1NdMPK7?kM/?7˖NᎱtDK0rw8`3қfoc˧1Nd=O}R'P{N!8ڝ䲊[Iyo%v.DxJ^qCEmOvx -fSv0ǟ<ywT0U6XD%Y^/Bs2@[̈́d遰u"`Vo}!5(}О!p5hSpϱ|8!dSme|ۭ!4ҿr T@~h-68urGd -s=Ec8cQӀćTsIƗܧ@Yo8e<hl -] -ץUwKiK6]9heA.ɞuI:.;ʺ$Ch%`Ho#Q3e_qQ/+iOЫ*#h#Zc)K FR]A;ƕ!}LөDHE., -ִ':+Lt_Ө$Q3ޯcTؖ_RH+={X{fJS7Jeӆe#21]se!R6\6N_kj)emɨ 7-7|@|j7][{vy(%6푪tJ6ghK{fKxnfм6\e?tbz -kNecj8,uZ -K[N5% -E^$`oSq xUoł["ɞc1shf$[jɒ)"]s/O.Gy=ʓ!7O;l$ŤZkhD^aQ*י-TT诫2-hj
,^z^XV(i<q^~!@{?phܙ(??ז&q'o q4vܡ=¦ aJr(^aDYHlJpJm)9O=O5=B6eK#ux(ihc! ۤC*I'hht6e|L8%6ݔuTpH*;xP<I4we(! ox8b:*7*hYYIx
#FJחj?*gP
1&DphC[FX651#%Ha|cmPkBsWҟdMe2X6pXy5m9bMcƚ}>ҪD,K<ΙrIS -.$HsD6P$Pm;RK}Vi-:Cb=EUEcp.cy) #ZE flS2{kRED!\ۇL:+W=R{GRSbjx9(/@yuw]xl>-ЖXQpvpx|v4 -9E -;Etunp7JܔO:) %СN:N:4$u
I'`}CI,՜t V·toI!MHҭxpI -R+Ȥ+QntrN)#rN0R#>*;
c<\hIed,{d<S.|Rn"AH7w$X5Dum2][9+2xXZVB++*ĩ sZd%;dnqK4jCcbnH_Y*W$DVD^my!y/Ep35(.WnT^p#{%hPqZλ9+hCҴ4-YMڌn>`z.b
Afx(I+:S"KDRD# -"Q[' +<< /Filter /FlateDecode /Length 3360 >> +stream +x]Mϯ{X,~w<|7ǧ$ėER--ElϨXXZ>}˗o4<$>r挙~3s¹壔KHGks^sΕ\NY+FRFo~KYhC\:$ +Flixx@gc! C*1!' +߾I;t`'469H|K5GkR}AAXƃ@C: +ˏx83
o2e+cв+tl`tюK*P2 }m\sШ˒V]t4V\e]vpuIЦK$G0f^VxWU~A+~Gxώ5F`Oиb$E8c\0M?zAn]Tb +i3Dfė4<nt& w̢$&(yd:J:ް4F)螙ԍҮvaTyKĹ I^X./Qѵvv٨ _[n x$n ZQJnm#Ul2Ж͖܈4~;Cp.잸
5NUJaP$TY+$T٣D[K.Nꆬ]&k9ͷaKՒ
k-xzQ雊KoXU*vu?K=~LT#so6O.Wͬ}1$cK>Yr3Gknb%J^$nȍ(ko#I1eZ&fX$ufK21U&BK5"f6Et|愦^/,zG參/o\V2^Ew&/7?p;~ӈ7L+!}<6tTFDP{#RʆFJgPDŽSBlMYg1~y@)[-CC{HS&RiLm<,WEC#Ax(yhc)!馬3唍;\8DZ8T)SO(I}Q A쐳yGt=N͍[Zr}%$MS{ևCLrS'Ԗ +˭Ò')kz%)OI.c,<ѲdjbfcY??nUy"NZN%[!L9unB )>?l`)xwvF)AR"E|Z?KOZ˥XO-৶+xmQy,/%^7aԫ@@ +Mf^fWAY) ãz`ӵ#0=S{Gy1RSjo9W/@uw]xl>\ЖQpvޝpx|ޝv4{W{W;Byw<zPۣuwK\l:јQpЦKA.;κeWI=\%]!bP,?#</jF'-pИAvà*a00)h*)BJT<ԖAɧ9G;GtunWձͪR#7e7sT +Hm9*tsT5sT-*b'9*`]C +XߐK5稠n5tHdt+G%~K~~8G%uI]upO +4I%%I*j-I%Tf gIy6Ku|I*ٮ +/z#:ʩeCS;7RNR魻wHiMR:I*(H#sTD9AHQO@THQKƳA`<s;M endstream endobj 878 0 obj @@ -2406,8 +2386,14 @@ endobj 883 0 obj << /Filter /FlateDecode /Length 1193 >> stream -xڵZM8W*R>"@=m-?,YCbGG=F;}O/Cgן/t*8FWgkMFk3=P>y?Ikm)ϥ
X@r@lX_FκH*"ɑQ@sWq$#M:ݚ4/1TwcB|l6M+rV -x]=9c9bw"wK31Iᵅ3 +xڵZM6ϯXUD} +мPq܃a9.=GoZkbLų-4.ŐNHDh9SUIC;uY r3<{1$G[7czɣH
6ӎ=irΊ.87u`>:S+ڏN.¾gG'l>ӌ=}$ǼA-EpB{>D-bQ]`̀=)U&e`{E\F +q +Ni'iS9a,>fj<YD +NXw&3PX]UN-7HF(UB20~fQ"g,G$rYara5pB +[28o!c/bR1mQn,\+ +u,QYutBe]HsgYn*}!"'J_WިM+.u.\MH[^gUϲ%:J8/TBDN(}%'#JQ雲W(]`\GEJt\R誢WNm5Wլ 1?a=_h_>WSའvQ=.EfV&kWq +=M?020/ι8٠,/9I9[`<@~cۜi<{IP endstream endobj 882 0 obj @@ -2426,14 +2412,10 @@ xZ;$
Wtx,z`{{|p
_
)JJU]m,|zJ(>?RR.*?>^ ~y46jrTcACM"
P^3jk#fy@dlja+ G[khZVKfcY,9}%A bN-#6SRz"mEZXZ
skvIAU"RfnlZLJwkVWd1JӈyMRU6;no2̏IŪ2'htX[*"j_\eX6{&QվRM_=sQ]/s$Ji u6h/mjr'@:Oc0^(ztJ{3eVG߂c'x?L`RE|
L>d*`C`j؍+Ķ\K<>
[ON J).a'9"( 2<,t1t5Gu3mz fd0KV -"k'Gd)q+cFaтGʴh*D>Ë495;рNepd+<8GVT̺|#E_"ї̸ZE -QI*^J
NQ}W=~=gE.|qb:@S!c0"841) B{LW
e3t -Ykkı -!B-Z]mRVF݈1 #ǰ龊VOxc= -<Bv/iLЭ9JÚmi'چU/AL4BoHs~:DnZ;C_42C,5̣9Xop巬~xEVϥblh4{^+DJalαrTQ-OKYDXVmbc&!=@lE؋yKħ]R¸.Q[q\V*@!;v5Qk7=1f[(Ź#o
o+d5Ӿ lz w~^ <9e;*5q`pR4&
ۖHa+gb:h.[ -:Rq.U8ĖD$ƺ|A7tCוYt16̌gCkvLߓv%ėMnF[= -2xYht0_*@u4#&8'fn8zw-צ(Y QB+A -a}Wo@[b;QD3mis?7P]Ӿ>VMN]\͒/ ?=1UiJ젯vQ
`Mw7:3uq$FΎH{zͭd&٭PE +"k'Gd)q+cFaтGʴh*D>Ë495;рNepd+<8GVT̺|#E_"ї̸ZE +bkq!֦F<lĮq+d寭* +pk/vJiZ!w#z,Þ*Z?㵏~(0&1A(khVh5i2>fj"}()Vh}} Ȱ0$bUÕ߲Yr߿>ֳ-֣y%)Qͳ9ǶMSeD%F2?. gfa]Z_IjX"(
W4qb/b-IvI Cڻ,NDmUxpY".n8cgDuQ:Ƙ}oa玼56@fL>,Ƃlz&lz% +_6m(lxeaDaӍGm endstream endobj 887 0 obj @@ -2456,13 +2438,10 @@ endobj stream x[M
ϯ1{X~TmMՎǝ*ߒS'K~I}Zm=snAx u>D wv?}Қ>k?hm^6~yhG}eJhm~_~L0-I{u moq}/#kXe_p=u.l;fhMy(mY3|yWW&q*wkh^>; -]+.Y1H_@A}g~_;+2_&|~NV.739eF3L/:ԨҪ|Y*:oZ I`^?W
a}\:C5nŃT|<`@e^÷l:7gNEZ ZnT*D@&7+1!f i*o>*ZM%
=]&)GI~,e:j -x7[g=$9b3vdvRE(ͥr~
i1-_o8ņUޚ5#+-QK-MZ4yRdM/>S'Cq}Pc -{Cr!rp%Gz{Mb68RP0\]3h?in8k[d,P}SZsMV| -vY-3'gsYt=&cLKb
5z4̋1zd6C{a0fՊIJ0j{
-ṞQ^mBfo9KO䲄$Y숥Mx -R'26P+t&?O8)uI<m2VY`0xoLgoX_O_/ -yҲM)Ue%eT.0N+խ%HUKAEܹv6i n5g[2_uoiL4mrrѾJ<M|}~_I
$
}K{D"HWH X`E"aH0hU5n"aWAJuH;`ga:걅4,bj<>zPʚ'=wсCR_yn4I4WmSHHvr̅zӊL%V+lvͼK콊QN&۠ -ѴR8 Bb)O8NaWT&E].4|*l=
a/0[·zal((Bm!loƭk.Vj +]+.Y1H_@A}g~_;+2_&|~NV.739eF3e~L/:ԨҪ|Y*:oZ ^~/ +0,u0Qy!kv݊m
.}yʼot&oΒӵ41
J@RܨjURõMnWbBB@T|T൚J:~{MRLُ2/\YpuՌ#Hn.7r{<Irgt)H/]QKR ec^[Vqr
y5U+,k;FG#VZ2
[:h*5-Ț_|)
9N(>/~wqnH5CJ7\gK +dsW]axC|bt"|cpW\p ;!b̝R6b~'F`6F|+_<Uvh|Hi}3ʐAIVq<waJ2F%T$3TtnkdrHӶ%\YpX}m)DiS<bbH_ԻZR^R رtַCLr482
^nP ]5mO)dx@Ĥ-$|SϷ2oe]Vzy +.c Qf|@ͰQ+U"opKbX[#^yZ:iItx4TXa#Pa-ηSJ >/ëaRGQvC)RSP:R.!KWVɡ<Xddr ?LM~axo@fK&ıhUc84^VI~; endstream endobj 891 0 obj @@ -2481,26 +2460,23 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 896 0 obj -<< /Filter /FlateDecode /Length 3111 >> -stream -x\Ɏ6W>4MF7P@Wk -@FB&4`:07R2weew{p.~$^!?̂J[ׂ*_QYb<3LJ]+iFuJ4=R~w?r`&ãMCb}BY`Б̑p4IbO³mjd -dP) !o7ጐ[E9Mh;e;ax}1Jo@)%AJJ:oRJH:h` N)Z \SUVpy[6Sruzlk\
S4*Z`4B8}j
^a8W`Ǜ擭9Ths%WVq<3 P!8@\4EZ -1D0tEu!Os{?A>m|S'MLU$;J$~K;7͂D8/eABHUto.d!RHa -ro~Qѭ D[E3;D~*XH"nSe2BJrn`t-2uY -*Z -ۭpuVXB=f%j4`
+,1 -dC%Z5o6-PQڤJRmsH`-$8\)oʃ&dڴS{1+fD7eVLxdТJz3wg$ɩЈhQ,ħ 박k(<"]۬D.صNP& fO]Q¥D%Й3$x{P$͜ثHB\+:VOJS>Q]홾ɣ˻E9۲6Nف^i[<1
d-G+'ik9cXWT܊S -:r'ʱۓ8]BغRJPf1>,>;0pw+nԷʐ1O8 F.`dU/Ht~kzݸQCc8_!XjFO k3Vƕ<K}KKA kU"
EkY -k4? -P7RMd
S -<0U[dtMv@<Rl3 -9<!)r*)$LR;/;#)Nq<)yX]mk5c ܖI.u|ss]:I2ha+Lȅgu9tђTnˮ>@R~xFdk j<
%'Ad
D /`dgfDa)Re-5d}wq2\P$_ί2y - -86/TF|3)ldM9r)晭5:32-!bRaAqT -J4";Xdm.,,R^]zm.̭j(딱t*M2!mV2fm?/(zmK ɸU}|WrzW0]/bz)cQckƝ*KrR@Z TGE{p+(+(
F@݊Z4o>-q.>R -k}j}*Z>aezqY֖m-WyZ̷[op:o -${"}FCjGZMgyF!IPʡƭ'Je7/ktD҅Q)U~ѳ +<< /Filter /FlateDecode /Length 3112 >> +stream +x\Ɏ6W>4MF7P@Wk +1FiENOXXQe+ZM2$Ef12Wq"^)lߞ.*bkGtX}H{E'oX_|=pǩi?Osψ>N{Sq'y۱\J[sP7>?_tW2t%[9-OZ
9IrAQZM8V>[wsޔ@F}udJ]]~kc +ewck(<2I#W gNU4[딗xJq*}L,V$A4Y5c>sd<`U@N;}ހ!Iȱ +xFR?b3(z㎢HHҪp|τ(,eohÔux1|^!mRErF,}ؖ/3g([ +3ЌܬK`kߙw p9?ߥguEpxs2"2*o_kL|-Ge!0)u)AWxX&J-ݙˁJ7
a- if9CG2G%$Y> >Qfa*YCѦT'L݄3B&oźB4\ȗٟ2# +@J))e"ҿJ)"1aLB:'_+Lk&p%NYV1o[Ym٬Nq=qտqM6LѨhhn<"ZJNf_Pe52#Wz^YoOvPa%2ϕ_ZEDZ +EEn&m@`b"UvO)w~ +;#ӵlgHPiAEk5#bUΦ{pKKR.vs+V>obD{RՐs-+,Zh+8o=Ya XBs5t?+L
hռڴ@yFj*I!
|(x:hHra+ByjNŬޔY1㑡C*ܝ&>>h/w@#.F\TfXl"VfXAbxl +mV"BGp'((RLX=(`fPUWFa!eSQsI)vxήL߃zݢmYeJ{۴EVS2}lՖ{41T+
nEV)c}9iwgkwU.F[_l]f)j%a(YE@riLVJH7V[ea'#0t|UofƗ_s$qyNY +e5T=np(ꡱ_km O,w]{'H|EE5kJ뾥w5*aBVFDxˌ<3xфl;e;|v=awZNA)CUFisT)cnwӎ-~2ÿWxZCH&U; )w/w +$6!eh3{B~C|J|9`VY~&[ĝ~8~μ[,6ֵ1_nˤ^O:.z`sIpjకwh c³Ѻ:{hI*YW^e? yV?P<#2^5_ +I5T B" +xG3"T^_]O)䲖;8r{O(NfuzH<x]AR*#>Gp왔w6rwNc @H10䌠8\*U%^{rlKJ,6e)/~RSV5uX:s]&e6~g+}]%dܪ>Z`9=+ʮ{K1X +ֱ(I1F5NncIۋpKw%9_hh +[ۢ=
P
w^hlnEiia-}VS8|Zv^OԃTܵ>v>O0^2k˶} +[vu-78{·R~uG>!@]kh[<ՋIP`lX2ʛI5:W"EԨ*L endstream endobj 895 0 obj @@ -2516,26 +2492,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 900 0 obj -<< /Filter /FlateDecode /Length 3637 >> -stream -x]M$
crXY/`1g${3|r$@|/!U*VUKx@3SS)X:}I*yxCs ZE/!&OZ÷Z6Z;OtwW|Bt{=~~~=È{0L2%+q-w -z9W^W,IVˤbRq -M29.L_b) -0Hxt2=-P6}DAꡝ)>{d2N`c$qo%|cGZ_c{\RLrIe+PG69 -hcgǙ
㓵uOK53>+%h1>6G?دq&|mQ;
<>Hmh2>mi-3q3b|e}&Fbo0lZ3/Yz^vFK(G62mq/%Q>1cc<H EV
rw(GP?4BvrSBrGK|ZWmh6Ɲ>%\||n1"RV@9s7k9ܟ˂>2sHS@ru +<< /Filter /FlateDecode /Length 3641 >> +stream +x]M$
crXY/`1g${3|r$@|/!U*VUKx@3=]S)X:}I*yxCs ZE/!&OZ÷Z6Z;߯Otw.>}!;3^F?rsO?~a=&咕8nֻB +[Ta3&sK=/R~Ïl[ʡ}?yŘ/Ɛ.;2{2>^g
=O=IE߯A`wNQ(M$bA?9Os:y + + E<(<iY0xA'@<#>.o+6c6S
d/D.'ߓzrWx2\[*cS))mMZ>Qj +uBߴƞN4U|8ͧ>wڰ3;-b#n8y\@jqzіʮQTؐ0fMOeLjyYZ9Or>b*
ĕy]6KUYz[*U _~iT9y+!Xi=I-*D^5/wcs %=Sa(D&u,7GzٛVo=GcÙ{\W!]}wdnU\_1Xqm ,UBD +E#`f|H +8N6Dž@nvpg|jpc|$6G
6⎴]̖1C>IM{>#7|t6,=I +cM`{;c%a#zض8ߗ(\i11ڇn~
ܢ\+9ݻc#o^iC;^
WȅOD#%YV>L-+p^}}ZN_.RI|n1"RV@9s7k9ܟ˂>2sHS@ru Fёō3Y@NI{i:aPTV(tUP,\4)P#ւ2{L!Oi{]2ҭtqGC'08c=ު88^̗c5pq6% Z֭k{sG;JmFEC --$tID FCz3ޔsׯng.ؕ,ǸkmWB`fJ5÷%o: -ok6#V~Yjjx% -ji3 -u
٘cX¨1Vj/Nk@QJˇ+=m(p+X; -*B -B-=H=2c?xDZZ=B]?BBP)7Iv=V1)4]3պm?||!kOV%^Ɲ?%w}&JF#t=6Svwӹ -:u+cvpˎOL'Rm8`k$ϓ:&ƤƷq6u\DH=pSۍ*kq)odtꠢD!r24LaD9s --?|<_q|BqXp#YRiR$|`DngTCu+7o8X2PA30nE|xxd5@-dISUUA҃n)GXfwNY { +-$tID FCz3ޔsׯ73u^c܊|+pQ03%ے7 +?Zu3)mLdri?,z +zkvd<P-{MZʮoP!P$ʘAjݶʟB>5H/SN̟> %V~#:Mz}
)e;S?U1;eG
'Rz)6͵HOwqIMcҎh۸V|:Z."m8C`8D7f}[uPOL9dz̊S&A0]ALc>/V8j>8f~,Y)u)]>Vx"nгhkf7W,w̠|H"><<|gԖ)*yKpZjt |Dϔ#I;,bE +5= ޡx@b+fK;pe2C3MSeFQeۅ穲Ǩ2 *QeXfLGɞۨ]<è6L|H=G6t U# t *H$_xQmda::^Gp?m܆j/Y;*J*@ +4R66rliNChxY!lz|)+|fP2~LJXb\&١94\g -}(0( +}(= endstream endobj 899 0 obj @@ -2551,16 +2526,24 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 904 0 obj -<< /Filter /FlateDecode /Length 3394 >> -stream -x\Ko$Wq}MՎɉ -3K2*ԧ&ߏz,s!O\rr^֏ǡŀsjȗ>\Q051Q{Jvu$\UVƭkgd< Oz VcrxB#!~RI\e=:q6ZiuWZǬ&+*a㋷ßҟ<T̟3}yriR{1(mךD1`NqL
uW!b5P[}ttaNf}J1mzWaB -JKr]ŇPQ<A*՞p'6L˶*,S_d$deGlz'61yy)[ ,:Nk2qm$JL7kAf6 v6_"¶qLZY78. 6V6~l)Ȣ/{(^ Drߊf_֣0´FN7zHL
N+ROU>]ΛKmj~5ˏ
SiTjR [)9!r6NNc.S#.mzn#!tsΙ")7yBޣ7π6Üne,M&_J&LdOċF;B(>ڐhT鄄&G$62iаu6ƪ̂7Crhn#tBMiFgӞ/0O0Y]EUh82ӔT":U-Bu(w2E^ġVi5McC)ci3QMD"AP(zbMYL>3#:8[rXkJaÆ6qXbq8W-J0Bw-n6o9trۉ䎜Ľ-܊/ܴ:j;Jd
9 ~loT g yģ\;b%2 -=4GOX(ycv^0.fAw%Aog=o%blAfd;y 9thTD 9:l 9pӉPMiv -u\#PFDa+~HNBGSSo.T+)҅&K 1KV -z@k*%OP+{0cQUi
!3-+Q_tGŚsmb[7 -3}XEha@hX%b܌!3:c8cAmc$(Vco9l%ծF4<d0tWAІaֆuzuoeA:,E' -3ANf\0a+ +<< /Filter /FlateDecode /Length 3391 >> +stream +x\K$
}Y"wvgoONK~HT%Tlo(>RUE^~p#/AV_>A.N +o $/_.??J KTW)
Ji=}WD7o*1/RjH\ߘ_>b*(arLIti[;R(-v1Y$**A3MfhxV +G)奝"\Tfw<H=yϯgnt~{Y0,dztl)nlps
LJOU|V+iP:}U> +A$2I^t GC.LZx[)7jb-a92" =KO)h-l4\ZXDg'H7}5'ìijzjI/Tm0b/#\1١ޅyqFگ<5k|VF&3
X' + +Ė4 # DEb5ݏba6%vn +h`e^%q#:.ss 4?Gҙ>;XXu +=N|2
.6 !̿xp:0IVT<?ȿJ0M(C
Dr]c֙:R*)&n%t3d";Dd:1FS`UBσ*> R ;& =!a`l0BVv9LxfS?yõSl%q&7Ԧe}Lh2WtyxpKōn<HgX`wP^Kg"8ʺq2<ZkSE_ZUq:Hͽ.'3y#hƍ@pn&4K*G;?[Wi#Im'@{L"75rjdC6NiqzFny>0N1%
8":Q:3@d \Fcc93E@Sĭ9n} lom9A* p6_kkkBə4ɞ_;%v"I|1p ˤA~ +EoZ`,Δ33fH'ZݎQw%u8llsՄ8vj9HrX:@$\
_-s>I䦷9O'o{[:u_:iud:Is\;?[^-ߨQ @pxI %v3td<dXhМ=9`[8,%2kߕS Ki#B;y 9rdTD 9:l 9FD9v +PLswϙ&V*Z/!;CcD@w@<JݯVtJw@ѪEW
6djČbf[W鎊=戆7˷nƵNtQ~R1
G:b*(JfHVLiKF4ZQw~Ur~wwJm/TQ]dxJ{a +Я%CE`Y1 ]V?@n9`U_ۃu!# ]|A̮7Rf0af2|c +<{p'ojABƨw|] +¡SI>ۉ)Ľ-ߊ/ߴ:#Sd{tnу3lHw~Tf`>7 +3(KSA|02+q_J=Kv&қNWKS_N+͛Nl0Vl@6!' +Gji;QdMJ"m QߛHӕЍmlhj6-9tiw;<AjykM4%Jս>cLoj>vCyIJv8>SްN%kK +#R` ( c"`bXv45ZΤR͈봛3dm_#6<p=T3k
A<B%]h>/uwt\)1.3 endstream endobj 903 0 obj @@ -2576,29 +2559,23 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 908 0 obj -<< /Filter /FlateDecode /Length 4425 >> -stream -x]K
ﯘuC*ViTD7ۧ$N\K~ -I -h55du4'b[;*Z(FLTq%<h&{۴O!W:8)F\;Uu5{OztȅYzܐH,*u -_-Y -0[o9(f-Zu(IyU_m&^u8H<[:;bUK6J6ц
f
?@ӆRD??ptyV6|MQS$Y ['(umgXp}1r9L$NäQٟH)li4Mr{^B!k"d"faNইW8/)4&cok
E0T׳F@0uQ| -#CFQn<|}GBphdBpޒN@X|ԬJq_GFafװ-!y1+qsOA -7 .qPbD_yj^`R~bmTUDGkr֪ϑ\ -_4;]С5U=}ݮs<@Us{
5Ya潮wK"tMƵ(*Aw"N6 -MȂz"~s4Yw/*o -iX_HZÿOHGQl}umpm0dZ_K3ehgKR-gQ
jx8zqp֭nZL 0*ɄDV\$@|Q!0xUR9aW#^6 -T+J8р6Pupj\O9)6bi&9L<% -h˶Omd\F6[,=BfqCKs3c2FٍrKXD3d;&vK[lsx3,QXSиLDڈB5R9& -0 -9랚9XκuO=eݽ od -y\mBȃUclY!O O<4 = Ӑ8y. ؆<;pM[DEN -X>|N* -gY1z S*>kuҵ"@Id
٩7VBRR3'z,Bі,4m -M@[_O#6F;U&udd^>zZOƸ -| -\5\:ِ9J*T6=}C@W`ZA/keۿ蘪MH,>$J$aZ!50Lp^W<q6FfjNd#$ό80'Bg:!c*dqT]qKNJ"JZI
{sE8)j犌,e,R$`U[,2όfkEiETD@43RSs[FoN^: --GPd`dNI'C(7[h)V,뼵pKJ^˝:]":j68#ngk'W3pJm -/40%4a$|;d7=(]E˅r5{^XUX`݁#cuCіp0euiCZZAcFfm7t;\1CCH;M
F|i+F=FN*n^M[g\Ghr8'3Cb9C?Վ-NM[pe`.BCuPl˜p53BZn -"mZ~giy <mdB`PZvgr阮1wʭ}Qz+r:eQ:Pmйf,j]}XkErNTHOHN(+Њ<>o*F+U519z7+)ڠJ;'$Z;~ 5SB}ǺZU`o9(.xTaꙩ(sdX\Lh5%)n}b{i9{֊v+D!q{CXr@㉪wRߨ*2\+R?b>EƨRI\jW1܇!&f IIo%5KMק ѐА
/p
3å3-^=8\%D4W7<w
-旼y~4[$յ 8? +<< /Filter /FlateDecode /Length 4426 >> +stream +x]K
ﯘuC*ViTD7ۧ$N\K~ +hF'A{A9P17438*!I8Xm+?P\ZUZ1@h[dȓQY;U¯f0)'X" >ugGa ۑ-L?Kƞ̘A)N53h +G$u5 +JTM9wT0R3a=HN9gf[>:="D",qviQ=C&^m[̡/YN +W 5=j $Z}ìs55YydaZZ'u]I#ZQCMa!If.Dlb`\V*Gdv)Jgg1yF~iR0Q/EEXA%K@yyRida*&o6bIޭ|ODE&M4FtKJqiY.*o.$uO1Vtc`tCs #%@~bN0D1dGqyBq4GFо291LP[bf +aΩg`V4ZBGЍ:-x+Ж$',i%#(21ʱY f&%Z)MH a[Bp'c<WL102'OMPK&epNQ[ ٞ.!4 ![ۢ-f f&kƮ9U2BT"'02PeVn23ƝghWH,뜽L7Gq{D`BY%0v@YSEz0iq[䃸XOdn>Bf8R̉q-s%d%nL`KX +(-'O290p3[' ܴ0`0
T *)H )C8.`rpU*FX'l35VZەh q'3mDsԸ6rRLm$ L$ry\eKZCIѲm7Ȇ$l?jX{9)83r+X; fd3喰:grv`M햶f Y`DOqYPj2r.3`MtO)R`Zs=5{s=!u?n9zʺ{Ⱥƹې'<A}([ٲTCA yi&!O{!Oq]:v!O
ywnv5lO8T]mO}Tr8U<*b#?rT|kE<ȳSoꭄ<㓥$g O +\OY-/YWi +; _3l9Zc*!DZZ2cuAh0`9+H_u$EkfnoQ(U]|1;ȡp^kbWF0%N6d;ŁŷJMO|:Մ7VZsn:jögbgl{`%3+V~|Hg
*#% ו{ +tDžnE;P#?3^nogt +,J;R}v,w+RNJ0@*i8W$q6>WᤨY+2nY8pJET9lwH?3ftf~1W!9TRR35{HIbNͭo9Lx0nFhO٥a2h7#-E۷dgS}flDy&h?p۪4p̈́,4e|g~mZ@ON1` /Ɵ:r?=:TSAw>lx݃7?ֆ)_rע몤"?˦hsYss1kSˬ\snꚹAѡRe6ňɠ0q
zދ5p):S$%FjM/p}b|FAǔXorʹ:ҷ6ۂɋޖ/
+W +VHwBs`NmE5G+iJ˻9pjiS/( C䓥9]0'dXlXL-/)!x-ww1$|rb{^u(AP<KZ38kԍh{6Wh|G[N8AwcZ-{*<+C)WIjz;qO_f%\Z +h`Eo}F.r2+̫{ntЗ +F뭸ޣ˭v:EA@B皹R`fتu5a
M;
R!Q?!:dGB+'K`1ު endstream endobj 907 0 obj @@ -2614,27 +2591,33 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F36 775 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 912 0 obj -<< /Filter /FlateDecode /Length 4166 >> -stream -x]M
c|XY5UnUٛ˧$vRK~ - ;'_OE[IX3<iCHWR( ->N]ό]a gO;Zm0_EBÃ|^g>EBΘ{Op|/}M}%[%ߌ*n@FcMTĵSDg*BP -X_x+eڢx̧̉|xf'yv6ꦃP&Y3ɘ%F'#k6QaÑ~Óp_MTycau%/\_&QY4xL.LCgMrx&aB -alZ2҄-qYHtuVy3/wE 4:%a -$B-IaUN-oIj[eۊlsm[`ige?moQV+0:ȿ&1OxnZet&;ADr1x"y5yh4X -Š[<L*pj }xxA"u=bKN -?'p.Rmzm-BjR[1!%jT)FRП~ɵN"q.ߎ(i{Zo2^^7,OY Hi͖Oߵ-n-tNVjGPMQT0tBFrgB!EPC))|P.h%-27Xm -lͧ -?lBVQ^ZTgZOGːĜؑ]w-y{Ss£DLb60Yf۱q 3x -2(e
demśF~4x[۩}ؖ}lC -CZq2NBM -FoR
XwL35d@; *" -jTduZ>EObbqjeZV%f\t[NB%̬R9Ź,{ ۏKim"x5]R(0Җ)M~PR()f ЯRؔ& rVHUo6쿖4bC·Ǔm - [$9rY汋VnTJ)d9dp%`ʥK j@wR8j5oǥXa0w24QIq?d#%<Q}GDZ97pG26}}kTg}V'yBsNJ;r=r}-r[=$
v싉.ix -Wy(@@/MQH۳TE -@L>#UZndVĢ\5yN5(;msOϕ;WdxRL&pE1ƅ b}DbVu{O1Zܐ?4mQ.bC=mܰ3x.ëIkZF 5E7" -auhib9<?T:1\Ks' -pHbtu7!8Zf`MlWçc.76NolaC#7C.ذٻVJ=*I%Sf$;)(3^yaT;dY.F7ύ
L$L/A^G3W
X9DUGj3Ա*])ӣ
?:V +<< /Filter /FlateDecode /Length 4175 >> +stream +x]Kc|XzgoOI%?U))vS3{vzbW~?| /.N +o $_$%|'% zҠosSw̫ǟX' +JsSAt[[)(-v>y8,4ԀӰם+_V +Pׂ'ikOl0a,)Qy+St/4<x?יpƨH ~e~~I}%[%ߌn@FcMTĵSDg*BPX_x+Ӈhx]D9C<<S2ZtJ$k!dd~&*d3j^8s47$*p&0S +@YaB +!l|g}J~Y@k`lJ9X7x(JdSM6mהn4*dhӍVNz:/h%ˏ +wMGxy=6j8%4GGHl{I&1}XUkN@+PH.Oabi]MNAxF9~9i-)N ֳq1@B7ïg)!v~;ߌE3U=cGi$;(8OI>sXDg~ +Tue;c֊%43JS?MRR!2D~HXCE-k(vV)/zi!{&[7jYj[1o8d#uPK*鋞۩$`-܃єb=BRXplcǖo֕&oUl/]lႥӺ<ZF@pmnr1 :ƛWv>1)<Lv8l)FyA('C+Zx贰ՠ[<Lpj }x7cPد3kq/@b'\@MF]0 Frc=Q<=U +?'0W)햧r9S0~{Ɔ![R[1&jT-FRџ~ɵ^"q.ߎ(Oi{ZgU/KSQ +EZSwm멛pv:&TӪR*:Z#9w3ڐ"(C)rʉP/h%/i]m)iD,9ȴad0)Qܼ&bl6ϴU/CscG2v"PyZ21ʔQ33986:kQrfo\3cw۩X/kV|ޡ0fRC"+W"Gf +/`'N+2*z%7xpZ, +ђ++K9rځ|iY2s4"՜5GH_uEfׂi7e(zlQLLkJѧ9U +CFSk\Z}poJ1y@kc7x5 +N7k@Xn;&y2H --0Gs\YGX +:Xuǻph`'4=VZm~1)i젤®#--4h[#ad*1ZUC9J +\/ɚxYGG3p>DzӮ5녧rR +Y]9KcaߎOd15 +ǹ|Zq n0JpLN屢.y8O. PE/3 +_TǗ:SrI +>QTАy-M*:m>^Odžjq&2wP+չ$9$$.XDTrۛ=bptG}zh`(ou#ִP? +dž!Aj +W C4w@\'<Ծ~Hg zCځdDic6nd*@@_mx82LUA%p:EPzpu +DH7UmFp_byMWv<;4$ޛK6x~tr1!at *Z^ĊEPQa$b;]>y?i.zA;՚ejI>"/7wȵ.Ͳ藕7Qf^]bNy_mPe>Y]q.gUFf m.T'`UKKqDzhWn&kZTd]pVb6 t]">s9<fN!0m>77J8G,7C&fhxQY]װM@yƗu{N=Y=eS/]ͯX]6D;߰ +/eKA.J=ŀ_}>|wt[!2qTO~V)sjE\ܴU+:)\щM= Ntb`x-My>zLDj5>XrǼtX[ހxM;皆>ޥkVC.Te9sڦ^MT$=mO+yX]Itm'>l.[qΏq}$=3mov']qb>ĉv=ymOߝwV#[^κJ! +oz_U
# endstream endobj 911 0 obj @@ -2650,26 +2633,27 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 916 0 obj -<< /Filter /FlateDecode /Length 5450 >> -stream -x]ˎ%9nW̢eIh0YYe`v{7cp/<I7x7|U:<$/o|V>N;_|"8! -~}g)R7)-H_ -U/?)BE5V0P^~"^VjrLg\;>ZIF
Az -%PC6z -BZh%tZ[]8ҝ@ --GU?3ޑg)a с~Poqܞ5nD:Ej^19p<[krpcL@x,[J3Mn9Ner
/:M_~_ ZW 4kfmwHozFBT(Sx.
Z CL豔: -*BU2odJDW2M( ׄVQ|6Ok9[>L>"Q;TͧF~a~H>\ͧq_S#j'V|>52'װXƈ - B>9! -G1!huWC%ꎺz4l9P(a|))Z 4"80x1vrcW* 8uH"$ł3vyVjheBkx6lk߫tniߋV]wıo43x6o"ż^ iDuHn"ź.&0#|SW1[8NL`Dpg{mz8`ly;騇FTB%9.1,;!EԎ2#5j\ݿ -xb3t]..tWq0h=v>V~VN5u{;$N$uW*#SɢՈwZ{r{Kfur#&Oy;crcr#sgLY1n<\JLK]kȘu1Wc|;)$c2DsL[*^J3t -"8CǛ˻gOOM34ЊPw|8;W@S
o@xG -8C״M3f7{>gcW\Y."ryg\j0:a`P"Xxj脊S.Ew xT~UBv@1Ƹx#TR
2KV.:5J1 -pXV
<m`m
9~<j}՚Vt&]N![oK0 -$;sjNhW@Y8x\58\pjJkcKbON*$dJ?sj1U -2:_<(^ -'EڿKmzz(g䶲Bj$w -פWP04P*h.@8JoC\ш*<J"XL>|eOfi}<dհ`Jh<~d۔O<lS\ğCḄZ!nZ
L"f%Wh8#Rw뺗Qẑ+\mFp36\ -WdzCh)qԎkJD(Kse۲lOϊWTWvokŁ@-56Yީlwל2MAQNgvS:]BP?Ӹ)o iٓxAF7/Z_Ca,Z}>,;mz7gd*_MAO3C: +<< /Filter /FlateDecode /Length 5455 >> +stream +x]M*r˙Ð|GttTW#fg&f5؎[x6D+@p--!̓)_?wyF=~'9cy/9?q.q.8גs߿EJWܗ_I,+]}Dߧ_Lb=1L{Yoj;ekmb+ZiRVBKO[iV_w3¥=L+>'δK?5ZM3iτqJZC|]~'H;]HpY/?BHfRP s/IڇaJF1h\m .$?R߭XϬS +\t\H-ںv)Ccw7Ov /f~Sp +t=@&YL`>Ùc+yy31u +;{Ҙ_5MWمt%C|{irj|FdR1P İ~ Up*>c)4Q&^#3J. |I<Y +|[BOX| +``tr |OF-/[YBi~'/Ff5:h5h)ⴻ٩(GDĝg$@o#efKOIŸx=&qu 6#a30iGǩÕ%T8kM+Ai;{ѭ0O +Gq7cV?pvOࢮp{Sy
NiJp"lVTIJ՜ +I*[/P|ԸZɑiߎV +CrD +gִ.T:"r<N#JU|$*y?L+K2p ++cq:ur%X|s?/Y-0c'N;_eS[ݵŴTʫV9<c}_d-[ۅi{(9R4_!!+\6'1Y/qةKt\=ۨ踰j4kctWw0`O +3{JQ*1C8wT0 Lj_q۞z0nntBGN80xg;aW',>JX0r"my4\hat#y)WY)/J-~UZhwnhLPw/ة%cwFrD!-LȈVF!55 N3W`"K[<#nh]Ңn<@g|zT7u)lfLf}q׀&y70nh5%#c&zW|,):
G#"?J93)*4}Qv*Hb{ieVvCu$〲pP/L&Pvf{xl,.)ᐻť4ξ%'%,keiPtIxɟ%UrĒn;r^/9n}%݊V?h:mV2CB`Q)pvP +%(`a6}#shu0JY,%@ds +2/k@ +*F4 EV`"ʪMN1ՋS.窢xTh(({[STyy3S5W[{D1^2(.4J|M#>5joǫIl]o;߾C~QғOr%PηoL/B=>1ltX2}%紮Ɲڲw+7#ԾFC饥bByT!A]~O7/W8Ϩr[xOXg{ZsZ2X&i^1K +%З%/LꌅҒB/ ,U{8Ȯ1*A~%} LVR~J/:/J[y`FG2}~aK7fI>3/,EC&4a,nxuO@KshƢȉ![(G4W{ѹx=q +DKgNݑ~h^/5cόyIwA"o<,Lh$\?|eo*cV@ygMMZ=b\=
Yfl©&rV6NU-g*д纂Fj/`_E!(9D:DJ5BTqMT
b"Vô_9cK㹸Kq81]&ro]i!Pay/x!{WL0yT<>k]=#hSts)Bb?<{] ̟C9>H\(.%['n,|8줡Aح?o5%/:Q8cB4SBB9%T,hm(j>m7<F/[asDmeLKwǞeб]7tV:(]%,:3fx`#xX8vC^_;Hi}!<mTmk^Z|jA\$Nve +rى[ED|:<X˸TrC5-asOKb(o(\cUcWjhd +cE +@=elw endstream endobj 915 0 obj @@ -2682,14 +2666,22 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 920 0 obj -<< /Filter /FlateDecode /Length 3021 >> -stream -x\M#ϯ04YN -C9hp>1tqE )\,.ѐ2PDlQf(3b~̟qb1;]1vqE^׆n`Wnpui}pԳ8b` -W?53Z
V|crpʌXqGPk֢SiW9bCZWyTs<`Ul[%\y.˭荓Xh}ܸsɰKy5F{R4X"N+L]+
!M@^ܻe
/$\f![RiAZU8&X)m=3:S{5ˬgkm:
umx9 -^b):`V<
'AV1VNZӾ6BSd"*6*mt[FK}b#һ
FGb#֯Sl$&6:$Fd/6*QtnUFDl$&f/vF_슍52ѧti>Zo̿r"ӿ -d&zXDҵ#jL$p
3q -wŘ)_;3'#eŅNUqtQqPvIΊb#(g=qԯDNLt`dMg +<< /Filter /FlateDecode /Length 3033 >> +stream +x\M#ϯ4YN +9!4V'f 4^b{81B-5<I⤸]ǟgһkӯҒi%?=3m6H_~Av.1Jkˤހ瘑 K&y@LJk@
%il += +c`5>RFY8\!59eآvPf,?>|ll|wzAz^_eץP9,/(\h5\XaA(3`aA
[NE`4^+3Uk-_eQbVnp幸 +C.^JW_7NV6V_b|bIHܢ]r &j.J8K`H8W3-v6L$ +g7yisN1c#dC(7LkPsumKnIniro:VJWbk[(qsL-ku$˟,N/4Ye`^nJK/Jrs|l[N(
S$d.4[ۘJQ6Mdʵyih2<Ngb%K#DljKJ5`kٓgkmC$W7!]AJhYVx0!ǣ>K RY+^ +_#j} +רa$x& +P˂ԲEm +3ĢW/kC80$fD0L$&2mLlP(7 +K}G7e^׆kozOioYio(\ڛ@-koPڛ ++ƻ[;o(g ,1 -=bL^&7[!?-<6 +רx4&*PJԲҸEm68)Ɍ+/&5ZɌ1#S,2vgNOGjک +ҡ>qл#GQک_~ endstream endobj 919 0 obj @@ -2705,15 +2697,17 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 924 0 obj -<< /Filter /FlateDecode /Length 2643 >> +<< /Filter /FlateDecode /Length 2660 >> stream -x\Mϯq1vc7ofI(JbIݢЫd_?zuNw=]>?.Й/Ot*8F~pڒ._?p -/eֆr~)oϟOn57 Sj'P{
ղ`1^֢5$XV*玆\0; $ϘJX(earz^3%?5<v(?\/%Pzc>NrߔuV -iz0Xw/GePҔNbwrm>t@rnKkyB"ȸFUZdgŽOV9xnBFEsO6m88^Npwɓ ^^4MD>|tPnHc["t/{»Dd>jeXn%7qrYΕae
v^,
o9cNΕ -ўuÍA)*>KPR"tLP6sHP -K
],(A)a={ib[F^Nޕc0'encXu.砨oJ11!!YzlD5!Dyw,d3{g%tFV+͜%Tm?%j[Ƽë+4@bpdc9"HO!IN7ő{yC-yl -ku6eQ1ʙt2H{):r6!G+oӰ`kn~3?OC(Nw`yoðҡpEx~4nPU8Ffi,'ѳrK#]4 -KۏNh81UBN=Z)iĤ/!+(FڶAs\4`I~F6~9j}P/?(@xpNYFBP?+BzW]AːB!(r2Į2WerG +x\M6ϯ>*` +-\)~Ⱥ%BA'K$JK4mtNB,AiI6;\CBZ
ӭ.yH{oƋ +0(ӝ!o}W'ZHŘr2(G㙖q08OӠR_]9Q8!S(K
KK:vTgyM߯ib~tמ=<BHQx~(4nӂ塪qt*Q)gö_'rۡq+s+F-kqrjxav@ʙ)
]kuL{fY<-:vmHp^X4Ӷ#k|gap>pʳ!Da{PC%]b5&@"^&j26t<V>πﰍN4Q;p+D&%b3h#Ay +k7Av9a% lٹMY Aڤ Q/*I8!3
(VїYFZaLQXKj۷i8QV$j\]Qsvj\Y͙8I !CȖS\C͑bNg9?ʡ-C:@%qJ|sӄL"NqkbΡ캘s7SlfỦS9sf1'ŜFwszWZc+<LSUNy2rx%ع56l)ͯP_pT֥2e*0H5Ji}@y!_'uʕWíY6Z=Nu&Ns &*9ssPMfcA|?GmtbǖqNRyի1bAۅ!KhF4_6Wz_ +WNxBgrA,ݒA'Q*gMoH\X`\ZCå| :^%nSnJ+KmڭB9B%-Q~"l9znξ
c5h2;i9,jƠ,F> +N;Y_҂GuJVmL +uc%עƔ 9&#@sHB
j>X~tc6}w 2H5^_/Z/at[ޘ$B&xI +ҫfNh81K*wS4BY˥mq +.\zrB>4+}I-A9ȊW(%*9=;xTϊ'I+!}=:ݏ翱!(ʆ!îʆ!zeC~sGh` endstream endobj 923 0 obj @@ -2758,20 +2752,19 @@ endobj 933 0 obj << /Filter /FlateDecode /Length 3986 >> stream -x\Ko$ﯘ U' Y!q@|/&I[# -]|J#OZ%]?w{f7x=1{!%̑1*2ΝGn*ӎ.;7ʂQvE^gHi^́qjL7Z=7;^AOfTDٲ\o<7ab[Y>sw\!cE`^c(f'wBŋMNh }vMiq.Q1]XF:BǑ;BG}w9۸KJ vt&jzJf-9|#wJ5Qvb? |*432 -Jf?%Ңj -`'ܼuLMG*
`!Hl^k?1g!zxC_glըм"oB>uj<p1I'sTwI˫Jp3M,Mm^۬!Rkȭv2X -(0PH7ȷ+=sYS*qjS
bGpduh
i g+fe^h]hl30YX Fkjћ"v .C -uqTi[
d*vOyCȊ -Ćdr}N`Q<]PP*2D96H(4RL)[>+Y}\İxNJYe:2W -:F'Z蛓`fK.L9-q=إ~Ȉ
r{W0SpIh9gDKڻ~=qYnAZbD1 uOx&!'Vӄ;TilԉtP\RqE{%w -0&lגh֑z -b1%ASR,ۜR,g]#2ÀvcOSF7Gk2sӄI:ȴz36 -5EMF!+d֭(ٕQ%88LiK)^+bg;EcΗg2Z -JvZcf^=̛ۙ:M`ZACEF;0E:Z$Q4viH>1iof<)iot3$'s9!d%kSBM9w^&Ʌ}1!g8챎3lc۩57=_?1d4Z kcmџ|m\}'Xuwue\rhSFdX#??}/JݭK_skMT;13
xc7puw2s>[h@PhQZ0HhоcŮIʇV{ΐO-k8𐂬Xf, -m0/uvUd9h@֖8[aNMޖ8{'g&f2t]RCryΚIHaWO<7w~p۲L\6aze 7\νå;뷒ac'v<K}3'@JoOVywLG2XHMeS꒛44a9v^k -%)AҴz*Ԍ;]q<[SЦV4F>=>@6R˺k\mR`Ei_,eqD,NԱnli
Glgg_"qRϭ(rbKK?yY{"nf< t;jF 1al:0R-D#)(s@W2ٍPz<"FF{v:i9ywstgzƳ|NCn3q0>!vAige2֣Q_TaLJ<DĿ_Y#1 m~dvXx}3nI8 &!40B9bzQQwW #*g!.HaUBTaBxVH0^R9y:#[<eVbDzsj$Yr%y'LV(2XU3v\n9GzzeZdg
nN6$ax1V$HT2WK%c߄NK{2m-nHȌB;ǖq Q[q).j*GI5=?ĭv*?e_/j8<cCER~#:".kD(ή*nX5xpv˪({P"QOst@Lq -'fhl8m +x\Ko$ﯘO`!@,!q@|/j$I+4bbu˿.퇇>KTѡ3~ +(q0RH7ԓȷ+=sYc*8QyNJgA#jN4vԎ4ɅHx.Ie4p,c,#nj5M_a@Pt:8)%6Y1 +=x^-b8 +MF,&\e[cGsT +ixX-uK2J[ғq6iӷ WFQ;x +ػpo%XwwOL~H&ZU +Ć֕sN`UI֮(LUTSK$yӨW!@~*A }GRr&-Ϥ;U/|R6BU==29 = +}0/mvSd9h@֞8[aNKޞ8Y'g%f2tCRGr}ΚVHHaWO<w8lwix[ڲL\6azc 7Q\.e8K[T3;㾅 Cl%'@c+ؼ;vM#zZ$ǦǺ)wQ00;o5 +7}kR +(㋜p IgMgq|mcKoh8z`8pWw|nEsXX_BnAcV(c&Ͷ3H{ +7>$sȷ} +W@/+!vrKNe7QEvrOB["};ǐ]]B˝ܒ82sGv9XywK(-cw_$nDX`p:wg}lBϨl;ЎA3jqrlpVl6p4'H.;N^kfyIJ ǀ9#¡a[M|+NP܃eX<2/`WԂzx|bj."c2ut:ZwR(Awݖ)Ic)7yW^N);3gwËtp@OK+ + endstream endobj 932 0 obj @@ -2787,29 +2780,20 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F36 775 0 R /F37 793 0 R /F42 792 0 R /F39 935 0 R /F55 774 0 R /F48 640 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 938 0 obj -<< /Filter /FlateDecode /Length 3833 >> -stream -x\;$WL(GX,Pf2Im|lnvȀiŏfo_s4^>$~Ùbcϗ98s.+ɹ]o/Ff_>coqyO~ߧg"QO?xR {ZsD@(&NR[I<aP/~~+t*J_??3!w<1ڽS maBY @!>B -f]QEa||=ȓ/`軼O3co3$ di.DVc
&27۽Y -:yJv4IU*fIAҔ~Rk%KB"z^+ľڣPQ1;Z%WO#w=wZzR{6aX=-5R!LodB<5Nzi( -փ)}%ƭ9[2$(z }y[HmZ!m^=똥[%jڼ;t
% r/)6X): 2p 2B.졑ח=,g<.0Iq@e~ -"wx#)ܻ blebOL?FN
ݨ
.L9$
:$YJom63[VuCx$4Ǭ/
3k++6,A96H1U;k#D.\QٙjO爫$&8S5μ;{"?Γ 巿]~
Rp&Q@ҪcMRc!)r7͠d&PX=!X&lE-!`\8dؾwmVt_\gyt~{%v^SܳI1VѢU`iQFES\'ς#Sm0;'fC}Q!A@K dN9r!d:ޑU
è=*BcBZj;B=FD:`=6"ȫ멘eƵPĻKi/Gd9( 42Ce3Iڈ,Vv~ǁibaJMqnqd$wWiI\FwH\=8kTSq0kQCQGFFi#{i#aڨO<%aM㔋\JJʅtj+=IvDׂo4E7$6M7l[" *0#efbC6KE#v<ICķloyX7͔q&sT!
2EKDj2|fX6ĔK뿃d"
\GXB2N{AEmmPVఛ$&X[ݚp9w:C8bbb+yiD'|<NSgs|c~~<! PP</H.yJ,6GմDE'~_a'.kY`vȪϪ9bU'O_ERٌ5["Rӓ7uYحEhg -UHD
p 2p-4%SA%]mMmȋFwЋi;Fއ0w۱~vB <@>l0ךeSʻ9|K¯!.yvx3D|dNJ5=}J3Б'VY*j?li!$s8{8'_A:Z*ُrTnuTf\,lH=[ضZtkPoF}%y_laK"[is*QU -o>8|Gh/REිs -;dCWVۮ@F*lA6s-m)U -~D˾!XXZPCNcvԎOncfjtЊ -&;N(a6&[>&@ =4GD)h.V$ -@2`OBM!Y9-'pp78T88eqXeb$+z=g<`J= nDUG!'nu=udOjz:K;iGd?Nk }Ch~q"rڿlBܫ\# -?D -H> -'LёCCŴ̫̔\>uyw+3E&HQ7dL9C:;ՙ ]4TePq`gl@{vY\`qxפ;t-č0b0(OSuhS>*^۞o_H -᭖ͧ7ʩٶD>εԎ.WUmV$άط=H착qr3l5.y%ߨ᪥{(BKp 8w<M@4~DĐHb'[h%{L/V@^~oNAY( -fvŇ[Gww<Ԓ>L&-}l S)LO7,&΅)HW{~-$z,ӦTh4wB7ъZw\L9,&EgIV8d7˜#hYrd -l"@-['4D@Gw{͙KxcjRw5?ފGrNs
mwj0d -bFȷƤLhz, -)2p -i!5Kp- njS(:Ee g2Կ0T8`+}ϗSR=?`.܊Ƒ$fҼr GxSdAms(r~υwuU7хJ5<#<c,FK?,>¾
1<i;#)(G -=6c>ج[Ŧ6@RFbdl])Ow?<]\6]v-k]\>}tbwaґUyl)onSAdޖIM6-6#〯mџG)2?\ +<< /Filter /FlateDecode /Length 3834 >> +stream +x\K$ϯtXIYޛmَ((ݖ#||/1AӯO~q1Y/:Ɓ~|ss=ʹkKAJIoho1!w}z&R^~'H1
e;NbR`Z饕PVJ C4m+В/~'租~J~p&'J2OzLizE?]~!:\V)DŽyh]+!F@Z 1-i5.>B +fPEa|{|=(N2.SXD%/ͅ3Ҫ},C4aDFF|{4K +~-$2`Ih[|^eTO^Wq8;W{ +*FrGˢ!{#LW5ihFR`J\#*/VN&t:WtWz˙j@PQ.Cּƾ`?Uϑ[T-MPrtxfO9-:u&s$wHI_^)}%9[)t2$(r 3}ikfXB۴{1k?xM1Kyw&*J<rHXc
V/0 -Bue`!8#vy Xw* T .r=p}3{U׃ZlH)!|)G#
[Few6-~ﺅC*^$j
7gWVomVyYe1ɵA96H1Uk#$YM]0(SILp&kyQimD'Ao-ɗD1I.K5iSHI4W{HqCqkc4}k(@$7s
Ic[Q}Y8;̣yc+=Pck[Iy-? +E\qoT4u,(Z1>-%F sb;d@Ч(>+B DX@#'B/[{Ppڎ3"D<6-fZ#-os4p-ֹ)TE^]K md,3n5tπ"t^H{9"A +[-T:Z5[(7XSfkCW6[X<c6$|K m>RUω7Y*Z~/9穰=r6tcj`d/M|k7nrYo]ѵz=΄](%y3%] +:_&ㅭ xTХHϵ+
%zn]
9rY;<eǛAxhҊLSK'0X6[>&s"mh$} +$Uw s6 +swE~F-ɁuFN B3ʤ$fE@)Q(ɞp$
w)CӤ4aԞI|bF R*XC_/Wо"zֵT'-R7/2?1i鼇O,!\8AނB,g.ĽhwN `mP70!Aq +Zxh;b*䵩;r@fGr`n`0M_|H5t7+_O-3`d+Ђё0EJLJ{oʴt{{jos@J80RFއ_! +Faޏ<
'SHTHQφk O v-TFщ/*oO8ȕ9|-b9n/=_NsMp+G.H9&]2 +o[ +R/\xs_[q].'^83bc#[}HViٳ|D*=\m3ͺ_mi$k'&Hxq ΗKצɮ-~s7œO݆5hpiOW*<_w m2o?&NGzSѐ1qK +w̒<ᶼ帬!L"\w&v(i(e*PR0
|<ݤc))m˫?893w)",fSՐAXFUFF"(9uK! cۑR% (K,n~DeSookM.R5w.Ͽlp#p7( 7Hd겙z9RiB[Vdw<fkRg》]lT6) endstream endobj 937 0 obj @@ -2825,19 +2809,17 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F36 775 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 942 0 obj -<< /Filter /FlateDecode /Length 2505 >> +<< /Filter /FlateDecode /Length 2506 >> stream -x[Kܸ
ϯ1>! -u>D55}Z[vHD3|.|e7i|~(=(X{ˏ%,ACjcAo[[Y<w5~?ckg,)kO>ie?(S,[ [QLk,&KrrE[ (Oe -Es9S۞y Ai -ׁ\yY?F_GFHڄ&(nТqϳa_Z -HSt - ȒaOvf/NG")nqoY -q οk!^|It;{
Ǜ}qpfiwPn ͙jֹqNӤto(`Jl픏x$ -v3 -|ua$ -Mv7bXڝ > -M5zͽZūp8WVxVX;5m[} =Iˇ?b=(ȷrEG"=o]ǪaTY.zdfh]y?Mr@w*n
zI:mO jz?ʞp_G.mKNlR
~\dUփ)})okGL+qBh|{d2G@,ĎtkӀz{26oС;=$gMH=9ҍ9Hz\[3#tREތvb|*}y֣xk|JəsWJ<Ó_BzܑN.:uQv[@h\pzHg-"5Ok[,̳ +x[Kܸϯc|0*cm`oI|[iMK~ɖHZnٳ>ї]/OOO~qTӯO.A%Ĥ4ϗi?hm>jMWG<5oq߆pf}?g~g{ӏ%.AgcǮO/ +!?|yS6OO~.:3O駟?Ir.V cbH+qr.)f92>-騜\kh&.4o@e0e@暏^㬀pVoâ9ɓ\)oE6>92\- mTݰcL5axϢw_Z8HSu@Gy~~ˁU&zt +_{Σ66|0"M1>`vr/^ګQMJ&h@&˲D.gZ5nZ*gf&^Mj}{Wl%]>Д&pGs?L7Lac@#`:1rqGN-6*M JnA&b3Q>b\;gwQ8{sc$7BU!lwg!:-\(&8,'Ik$r9 Bjݳ0hGka<B
`4ӌWd +4óEp
r +,(poawG$R'CpmZ{eORv|IjxoxuRV|'w,y;F;]C@ +EW:w@`T j97jX'U'GZ/ץCR)r#(]NߎCHkV`| +=ukrV2^7@akN`v9b]&%p`ԂXg2Ξ4
+E'Ą(Pmi垝C4`P +*ء,9 N;mb#طE"4imzyNv@13чW36Ёu@zgx.YgnΫ`(=-nT38mT㤞d]?6X)ܿDND-J ۙuy_Kcɧ#z=F#8gCf&KѥYnJyɼVEEQ{7K\ْi`\2Z
]u~(f5',MnCp?Zvh8(+yEvܲ2#B~d>+v3>wřdu'FevuA
Q=]G]n35b^~@Em_KAYUm࠴KIk,@61Zr9:zPD~4ڧ G(:"Θ7Tܸn+]*@)MJw&߆C0Ϟs0D*0ELa_̱=#Ԏv?-<O_0 G0lc;9"K&*Q R}kE37)K@_"b0gT^cʖ
Kw&\dna3E:z]%ŶEa1PgOBS\lsop_+0Ʌ^Rgvn۳ilۊnLOZ>d(0hK;E==,]Ǫxsi,h:iWvNa$op8^#BMꍶB݈:ng +aewMj<ԏKY`=lٛQx\h
endstream endobj 941 0 obj @@ -2856,20 +2838,17 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R /F37 793 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 946 0 obj -<< /Filter /FlateDecode /Length 3072 >> -stream -x\MoW1{0dUdn=%d!{O)J"%}Z"_(>ÏOQEg`}2'UpCT/N|~hm&nO -YZ%y=DJqcLOhb1H*&cLMBi-~4?'
ߺDf0cq)!ǧ1.ޕ,<Yk1G#b+۶R
͵Z*oZ/V'[-M6AVO",5PNTKpOut{w"hK҆tMHUr&x?9
ˀvab¬4NL
9ZA!ۇz<v)w0t_ip -@q[t83*>|N%3VҜ@>8*ΐej #xY}TXC6ʱ,BupCXx -mXYbXniG+e,
-^xD,Y&Ưb폥#fEm'8 -_|uiG& -]4jQL_<1`K[ - -e9g@H*ƪq]6f+Ivyd°MdXʕlʳ #eۨvcMly45<ԙ6)lpm˭6iϣcMwƶ ݔvf:Bm7OĶ[,oƶ wŀŶdkX߅m1_vSڑɷmb~f[mooad|M62O&vfRw6*M&3V -k|gSlҜv6Mrnz/~VC`I=hktB<X n6Y94+U/C5kѾu.rSj+:#LH-=i.ԕ;jUi@BrdvchAܑ(qFw, Ĝ:H5'p,^'Z橃\wL;fUEKyWP
<A57 .:H6Bk8?Eӂ7Fb3BG|Sa,0n9z8@x.a;/Ba -ΛETJ2<umP/0@'A܊h
q8j^G-χQ(xGlJ;2Vp~ -/GiFaHeT3>nNiE_ƍxB-߆+ -w(f'ʬa&<y<@=>Z -9̵6:TuBzRWٍ[YNX2J$= +<< /Filter /FlateDecode /Length 3075 >> +stream +x\M,I|DLt#f{n{Fxދ3AJ==})/Lx>ÏI8{ N^ɇ|=AkQk5<kMpG=7|~,5(=g@le7
1@ +Oz*k}F/Փ?}ykO/OZa[,"- +t<GL>/ٿh!#9Ab7W\6ƄoYklJAå||[qSd&ť
9>
foxW2dWl{Cٶj"֪6vskWHVy}:WLi铢J'o[?auarZ_Zr'8jTIWw'¶d)m*MWc<\%3iX+r +{ NL
;ӲK- \ l jEvC;uڒL 7$]mosW{hPc\i7<Ċ]YkP[UJ?0JDSp.ٜyŋފ^ +$8*_^]w3ҙ&r*F8o + =e9gP;&URtU[#Em +")`/ͧYeWd°OdXʕ;gADeVȻض :lP+WmRvUam˭mܟG6i_X3M< Al)l6Bm7OĶ[,ƶ AwÀǶd[X߄m +4qw+ KG<DZy +.w3Y+CJm~-4دy of/akl畃pwf1X2_WPޗ$!x&[t`]ݪ+a1@Z>``qݲ !r5{̤2eg&%TϤd_^:+}5]fʿ:ER30;StŔ6gC//J؛vŀ9(C9d8DغYbS:IgǀFmzD37lp endstream endobj 945 0 obj @@ -2885,27 +2864,21 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F36 775 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 950 0 obj -<< /Filter /FlateDecode /Length 4104 >> -stream -x]K
c|X -NԖKGNq:!WySbfUv;!c1C[_iwR醆k9hN`Jgj]^!fц6 JqR@4BV -ڦCp'No!0~PCΪˉZ,|cP櫩cʆc;Ii,WՌ:y^{nYZc~='JlٻߑF^|c/}I]nTjD=qt`H#߳$G"sU'}b+Ǧ>ۺoB3yr?b3LrstI,X<bS=;9T~8+j[;"$9"vVҭ#vhH'>M\1:3%PdG
d-( o,,i'ސvdQ&i,QK)vUk˙h6 /hpIzΈw\}jm -d -wA艵!AOAO:rG'
}Г^?+s -M.H[qр%:H#(5 -xSpK - ^*Lؽ^rԀ\qV~f鸨'6 - -p* v+ƎhMTza]Vcb:H稇V!1;raH
iHiM
/oXsUFM`HT))'lI3"*g.^QL~iDD 1XeNʘȩv[XlG -V&_-Xɔrv 35[ތN |7'z{_Z2×
ee6u c -bfp]XA앳!o8c@7F*i<rX#iRBz -Q@
Y(A+kjYYcGRb
MAlJP
MԡPxN>P1xPȀѣ -j_FT%NpE='w{I+d -
$O)8
dL/' -G81*ar5K 'xe$Nf}Kw#i<cs=]k3o
FM*jQ [rO"I!]"9(vղ0!֚Ƅ~>gXYxF g4t`Fט=}/pλmƨeoj8ujُэhU?o0/!--5-ĥ -Cyx^d,v:S`@2tHTvY̡څ!3JC]ƑZKgd:YG|*z=2t(DR-azCV#rsYg zsSq>榢kMš -i#Q3 -]XZ&isK^$r(t ^SR'M#2֊-{^euV?;`:6t*_w4Fg^i\T㓑CGϸ1(53fbui|k گcd`@v99^0@+orP4BjT3 -[&6S%d!iObOPnDpL(ׅO3<hI!.D7hhihVjAعg> j8? }Qˉ55&D~gQ.J&W-ݯ糹7 ev.SyLt>8鬢J+K\`"0[=)Ð:rʠc$J#)_NP
V.;͚Fw&[G\yE +<< /Filter /FlateDecode /Length 4103 >> +stream +x]K
c|XWTx<-\>%_-Az}wZ# +FV?/A}Ϧ_X_s[.Ɉ)tQRw\K?w ʛ5íӐd1{h}q S9NX{-Zx؎ڙZ +(ҝ=z^ 3K9ՠ]>4;vzKV]O$]MfjJ\S27NLSݸ*fЉ6qeϓs[ynWB4z2ї܅fQE$H@Ƒu`W(ӁEΎ B0
o:p^>6
ش֍~y-Keg>
5}<N2egqQ +&p +=q@o?\;Ǟo<{4oS^?2Pc 0 +PY\T>l-1!+ +c$`8FV{SQHm9h{8 Z؍2'ؤ)wi:?&38e$ȝ!?;/Ҁށ]#k!--o\shD792"Q)LJG"*e.A!)R&% +(pH7Vs5k6'celT;-I
K|+SVJ{u);-oJi'3KGN/=w[PO +D2oDj2Y)I'?YDK %u\0#E>6A[ +G Pq\y49T +a7 +]8L#isK$U9Amu?o)mJvduk=/xuV?;B>H}>կ;ȵt7zdv<1=+j|<aY/3^;Z&vߠ'_O~3ȳF +E endstream endobj 949 0 obj @@ -2921,25 +2894,18 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F42 792 0 R /F55 774 0 R /F48 640 0 R /F36 775 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 954 0 obj -<< /Filter /FlateDecode /Length 3661 >> -stream -x]K
c0ZIh40=`omd7 -[WIrUOS.ˤ>~(OLJ/߽Zy":˯ -'uRN>D!5~ӣYJ,)] -;Oq䇶Cqp<W)x)Ux
(/EqN&}NTU4 @2=8i+)=;M٪GuCԂHL*w -æĚŦX0kcJcBXQ)z3x 2eJݣB(Ɔe2PJQf%(eOs)ϥ9s1UKyj楠<Wy6lҼy` ̬`Ev㹮p
.
=[uĠt?cH[GgZaFrP -c-(ǂ Dhx\j" -H/krd Y-E\~<pRwɃ\A{' -ǒnRAo)y`~$͓~=Ѷ٠JFa<p\=h]KVAw%hϯldQ#d 2*ԇz{'@v2/LxN78;uYOU'erAC61)KQA8U1T.Zz(<p#áR2+IctB":'9Q7#OA|2Ng fA4x@.hСBg-zk1tHj:f5 -U9
rf8 -:w6>r.><5dqVWJ<2
>X)RgıOo}`fȲUo[%tZ5>I -ͧͶHPbQA5 -2#e7" -C)]BDOBϸ~D?* ν{3.Da:?@JNruڧc(x[u"HхO=P.Hԟ8eZO?+3?*E'KRZmiDXKqlKt8T~̞jT=Pb|h|&T<Tˊ8\Wr4c0xZۑ/[Y}.8DDd .ok$/eSLHC6Z
cڟqcV&lxf)>ĭ>{ wH'bPD=|T&!jUEOWޘn͔eJ[9*ígRQ3w]ir])26sט;sI3wӧcfn<i>3=!3w;9se[Cvf/܇r/7:s֙Eu.[b)֙7,~H|&)W
-UIY\;uSPgvV}߽"Jܛ,Oјޔ|~L{yun/%|s}IOW1ĉvݔPVc7^{@iɽ/[\V 6=lC|ӑ?2`2 -f
|{3 -56%>V"8f+1[vIPc;#`Ͽ]1DZtэHtv1ڿ;D7BB,{#QA8ӕpq -ep/K_*utoQ/5/uS<7uJK`8{Jx# -N)VF6`5Fch#lp.Y<hLppǭlbK魘8Eaӕ'3@11Ǯw~`ӫSɭ>/֧SQwM,ma,xi0>WJлYtΩH/lRSjnD;q8^N(d6o5Wns9NвF,kkG.ke-mA#*p~yQ>nG*Ic+q㘭|l@H(g@_fIX&zj襠YjNXf +<< /Filter /FlateDecode /Length 3666 >> +stream +x]K$
cD +LںG2߶tj)Wj뇟~/??\1\nbh?~)[u89nyF\<~1?OX\q3TV!(P4p BwxmJZA >/fh[?.NfB_hCO*= J*#lD/Ȳ;rwM^]H8X+Uj`+lV9XiF*Q=>5@ !Js!Cv'}OQj|_[acA +<Jbȓ9V:^@8DZ +0Wg$ߧx*pon +æڏ̚է\0k&sFЛڕsv+d8AvW#e.,[Mf72+n@)gsLK#p>5eKsd2I,kAoORI7ذi>FZu#R,1:?324AЂՐNHLZAowy #{a}iSgA +FaݕpXDTv'/HX"|mABtW !M4Mt +n*X֪r_Q.\.UkjkPkrՋ^R+z"elzmAeL\<aNJxmUDPU2/,q8>@i#sN Z ^ְ Fۜ#ZdJwqt|q5f;~z} +Sgט6^yLc:ۘ~*1ՉNmLgqV1*1L~⳪IH[zZC5"WrsYJ1aCMWJ} +k)
Z$ [oj
ՕTW tjHmq8:f*խȃm>ht2 +ܪ_j#3Sec2qm|@(g endstream endobj 953 0 obj @@ -2949,28 +2915,30 @@ endobj << /D [ 953 0 R /XYZ 69.866 801.979 null ] >> endobj 198 0 obj -<< /D [ 953 0 R /XYZ 70.866 368.575 null ] >> +<< /D [ 953 0 R /XYZ 70.866 368.55 null ] >> endobj 952 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F34 637 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 958 0 obj -<< /Filter /FlateDecode /Length 2505 >> -stream -x[ˎWhYCNO.^%v S|Id-}=vHVթCX*_y|zӳgHO?=|XΜ1uqO>/}|9|\\8q -sogޕxO>Z?۠"gFe"f M%t)ei/(C3g -+~s|'4Wq֘3[P`)DNİE: -O7zP5I}NH'+1OuRz R -_ۖp-:E~/fACh0Wy}M+$AV0<:&fPHNHϙ۔T^<0{ a*\~) r&^VT&qǐeLV -zeke
1vwKls -'*Z(s:e1[EdE-t -J5kɖjlۋNTX(z(<.sIW:T^t:'J4*^nĊ6u-`&ZM˸xwԺ߄cٝNvGP6a80AwQ3bGQ$o@oD :jpj
w;ON{_|-zE1|JsrDpz款#Z۫~!Y{~ f&-3-SyS9ygp&q+vA]Е;(|H/Mpdmr`Is
߲um</2~i Z>xյ99*X =jَu]+^Z~6"L;JE|;k,힉14F~"&ᒷge)$'o(=t:-dLӊ@⑻5-(Z'Lx.aLX:
Woܭ|Hp=ST2T=B-.,U*Gvhh|5JVd1SuL1cL$MSqE"dl8d+w
1hB -&0m9`Iؙdž;U6UAlZ1jT𢦿\V78S0 -Z -/jo«1d;p"WxI -/«Aj - -/"KF۩ok% Fo:_2|HxZmչʩzrUGlDPDZ +Ϙzvѷ6@1vVuծ/}\+ +<< /Filter /FlateDecode /Length 2503 >> +stream +x[MoWaY3:@n-ɩMͥCR-~_'٤[DrfyHP#yE^{t'#/A-^>t聼[{q>w_KI TRz_OoZX[o]iOTc**a5p]K!Z +yoc^z^HS.h S.BD?VcQ7秹4.P(Ep?٩GՌ46,(+ +Y2IwuǞM˺m4I1?Eo +VgIIdD)b<~:D +@9Vode%+3>D%.3 +;Fo3;Z\<|E]v`<[T,څvO?dIPi :V!MhR4Tť*p[hVH0\9RwϾ劼l&v*c#/8rɶD8ϸeZC|yH{e#/_-毱iD>|<Qw@F?^/MM?_Ѐ0.R\ +a/p!LuGCDakc"F.cbmj\)1[8JhG +?2_}OvyK.Xr#eד<ztQI^ȚHgh9Aq+a +N$i +[ ~欄MYU^@iᤑA@k:`@hT\L8V?!ZNPQdMwVi&@O!w??+xksⱞ. Ӧ? ޜVVq{c=cDXQ O-4'yœiZCNRhi( ܐ%!Ełxhmd旅QvQ`*G*c 낝0)IZ_t9x:6H2^z:;t Og¨Y@~Y&U|D5=FĂmILc n%SZh}NH+uMR_ۖq-9Y~Ϟr,\ONW +Cxҷq5?-;DF!Kȳ;EfgyoAӑ)K觔U_~S:h9I}-+*hͤ"b2:V*E^e +-2/qrLiyJJ\m1[Eda(\[kv$;>um/A;KFtz E\] +҉vtYҮ2kq`$+/ShLELHRpWz2ZȔk7j:2ahiڅL)n8{KiiV#b%I!%BUꭘW+$nf +j[Gb#-#L-KG&*#xʑ`=Z/-{zL$ة:Ƙ1&2Ц8_"yS2Crq;ʘ4:&Jyk歠Wc͔151qf˘f[ʘț1
cV&0+UL{zN*dSiw$ +ku*vf^@U6MiV+*Wxih^fT7_U9XMmTx5Ux1C~^.^ +/9XTx5HUx1^Z5ᣥ +Uvo7Qg[ΗFNo[R@V#]w_6ipU^ +ϘOҎ{v7jүFc#ô:vu|ϥ"{ endstream endobj 957 0 obj @@ -3009,7 +2977,7 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F55 774 0 R /F36 775 0 R /F39 935 0 R /F43 964 0 R >> /ProcSet [ /PDF /Text ] >> endobj 967 0 obj -<< /Filter /FlateDecode /Length 5443 >> +<< /Filter /FlateDecode /Length 5442 >> stream xڵ=˒w}E(ńh>X.<>ȚGc$y%9v_ E%[I|c"i, SH55c9_ՋXEgp:,o@WpuFe[.N%ȣ@k\U[hܯl٢%g&ʅ&cɔ9VqAϔZU'{bҤ"OIKH>uY(Zh[ygU>)bfDWkfj
A6)?tP!/VVS Ŝvߞ/ "sR _= ~>r
h͂(~RsGxw& C($W LXا @@ -3027,15 +2995,13 @@ O`_1\w6C *1E1c]ÿ_OG.$ -?۹߂*3~5AOrzjYj;%WnQ&?<y=4RB>x OSJ68n EjQ4B) XrYzw2 -w,wE'X
RKR1(RhK՛5($3W@^5v3Rr;zշi,n-Hhv'ߩU@Řۃ/%?<M54+GiR5} Po|9uK=p{)n(ʹ%ĭeZr/
3ln}4m^$RoP\d4^e)5@BbKq*/FZByܜec:%ttFq;]GϾ?HX=ȗTLo%MMpU^GQ_M.a%2_&VZqvF"'*; <czno%\~S)'IDץC`_s^.14uCT" -EvՋrE
O8uRʊQX7#r:*ZRGuUnO߇n5(^eSuh0~08{`i^4K0/XUZnmPn@\Ag$F=\3m,{KVKr)$,Oz)=JXGHxun _$W?i\ams;dNEt6WIN*B*z:MQI4.Ը8%.6=Ӷ$qlDIioՓ?^~?gY\9P!aȩ2Y&'͠d)} -eYrdse,Rpk4sM1OQ|nu JqkhP3/^W@$״6y -)=NPhUmS!
Ի -CiJi>FXö#tڊ=I"Ӧ[at~E ٥`ʕធt5C<29 [WDN JWcX)Xآo/t/r/Ԇkb~^ -TP"qgսE -`.UV8߹˅<Z%z>-xjUiw@ *zC>%TP -7d\(-R^P8$K\f -
)^U_Mr{뭥*ʶ&S
-69sS<plrћ66܍5"-(l6Pc)D4MLv'Nƥ6a&atj7]j.2ݮ} +w,wE'X
RKR1(RhK՛5($3W@^5v3Rr;zշi,n-Hhv'ߩU@Řۃ/%?<M54+GiR5} Po|9uK=p{)n(ʹ%1^dz
lF>M`6/Dhhk7(.tLlm2ښT !8#R-}WnB1:rXt8.#Tg$iKu*&ŷЦJU&U*ԨUe/jji/Ip+oO`Zfth#HH1=V77ZZG.)ŔU@$j +jr`TR` +I +̩D +Ϊ{+b1\psyrJ(|Z@"PT|<1J&7o6PnU[J[0B2qI +Zy=NV{m@#GP؎D8U2l$SfdUI"UC*ApMu/p3ps-Mׄx0)u~_:?BqB. WpBR +\z5![KwUmMZlsx&7ml3kDZQlR endstream endobj 966 0 obj @@ -3053,28 +3019,25 @@ endobj 972 0 obj << /Filter /FlateDecode /Length 4028 >> stream -x]Kϯd`mN -E N|n3QНT{F'Po~&G[ka~
F u1 -.C݉|ȉФa
tQ|f -3#6Gm1nug8^ lEg.(+~+ &^v%R=Wim3Qh2Z8_ -anäi.a''XFm&UgyGOsϽ7B0˽"P`_
֝6C@k@ҝOI;Z)4F`5ZQt"u]^ yG-Lw&'Bw"Pc*Jr{-9dR,/R^"nV2EFM^ 5(5U'2wZnFn -Na)ʿܺn)Cmt=R~;0@A*%n*ږFc2mZyUN(, -֣߿!{dҰk!Pn -W/8mʤhսGGZͽza9hh۴ -+0 kP* EX -51Պ@3RKЉPϿEg{@+}1 -NQ~8M;aA -XThXkOh_nA[wt9mۑo
<PhQ$Z.i968;mSd'ţ!G 6zlIշ-Љkdd;= -r=Q)
-.Qp4'GDlP0y%Yr.273pRG ( yr1OUyT f`M'6gwɰD.Sb)/n
HƏ}h?S©N} -_Z 辝e/'`ayЇl9&M9I@RE^N -tI)PQ0q|eaK 8.DPW`@~$SH[1SVևZRs-/kM@L${l<*L -[1;
CA7c9 AqzĹSZNajhs}t,N9)ZZĈ\txHܦiG[j-Y~Ѿ;;o -n.}Nb{2I^uT zTBJ@MJR XBwv@z'm#WH(C\Ho0r0[Z{C@iF5K)/vlе÷v ---9@ѩD!!Z87^H)<TNOG}_jfo8h{ @p=%'u!KI̡,}:,4;S -{7 -Týv%B-sTN
m?"0%%]K]i)纴nܲ\qJ@%B; -e ;dvH
:QѢ;6-
Dfi9DtUYW[/ru-N";Y2O5YZ,Zk%WuquB^KvdizmԡZA-%{ZIs%&ivZ -y.UZaڏÒg75l +x]Kilgv7' K~C-RjI(~`U_}Kё3AyQ/EpCϗ?II_TW)\+-4|=n?ڗGtDuNSS_wrr(JAVa=W +D)_Z/f+-l(&IeɄ=vJA,r*{9oz}O)ܔkURcublVV:ryYW +i)}A!IuT7JBdݧ* +m/ +#6Gt,i?lz&P$F_ob:/e([W/MsEm8]ZKûEaUrpͭ]6y9b%ՠ*ɂ^2Ip0Lu +(p뺥,ۚv&v<aPA)aBUFc2p{+2#pN\Q{7_(vV;S!î0۩@qY1] +Z?[64nkw"hFa~߶qlPn4^QΪLwwA8v:6-o+)"7:{@&-)tn85塵a#6./ +jh(\V8 kTC Q:?÷r,MDƮbߌ;c=)>}KkY;_DQHj`Gg)Er9CJ;4AvVHD϶t +,*kԡ(-`CҎݣfGp +p"b!2a'bcAz{\,(N~bypͫNP]~=qP`L&z"``f9"p +6?,}N[~Gm0bԽC÷KZ5xx&,(9lp`bt`OJ y(At^#۽ Cƞ(g rGAAh|sdwucrt.L`+)(a쒖kdx&{8(`rXbADɧ<AЯN?`Pv܊-5y¿W'cWNA +^nG8 #CGg4'Tc +@ώaf6e:}| +_Z:(}?^Nt^{lp@M +:}3Xn2vp!Qv8e2BwZ_j@m Ez?H&?GU9>i I|OI$Rv2:%DD`=-'%JoFFֿ8%Ź$A6Lũ8TOY=NCl6)
ԅGXaߝ7 jB٩hLPw/. `0C:x|F4D;>У3z|`r|$cp8PCtr +=-os`SZ \.=eU0Bȹ@NASIx3S%a_qho +K*{ +㕍S1Õ1T\i X8{^ 7l"Vk=M<A؊zʝ"zꏜǔ82Qݲ4Nm2t#,ڧ8w=o.U1pIK1ICoÕZuQ^*?CfUj YY⋖UNW_o3V|˖-8pSRvƏLiG=sTNm? +rش@|60D$q.7WBfag[K_mkɁA.r2<8fUB|1b^/i{^.9^|)佤lS`6M/9FHn;S8r0WR)`Hq"`Eכc.>t;XӍ~ckzZ>7<'֓fN%ߔW;Yh>ȯW*z=';=Yo}CYV{ +w\zO*)ܪK%oD*l endstream endobj 971 0 obj @@ -3090,20 +3053,29 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F60 834 0 R /F40 876 0 R /F39 935 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 976 0 obj -<< /Filter /FlateDecode /Length 3010 >> +<< /Filter /FlateDecode /Length 3012 >> stream x\KoWA`,_ @cYķ͞l >d/I[Y:=$]_ٖ^wowx6D`;E?ȋ8)烐@||/%<JJR-]ZkzB]>;ݑy܃x8B<</֗_7CZITk~ =]F. -hN8<JQF@toGʬ;:_i߾w"-j_t'R/Z{.5~K&e}<fia҂b$(VDGiEzG}TjbɠXVc^s_]I$?G>mr>pdXzDBd@`ЧL)Dz]YI51䃱IfINl4(\i\֮F6IZT+ -DZh;pT,o0R I(<O5$\!$sZ+ -kQC"_S#mHVR,dka}V`)THHEn.YRV,vm8ɡ'8]is8:h:-24-^] >iEUY_9AnB$BO+^ F %e3-*˶YU_ʧ˘r|'8ucbA5GC}<HKbYި8\'Y6GE<fIlHГ[y< ?fSVJ4j/KlOe3) g]5R
9tG/(&ldRpFА|m8E5`GgQZO!(r +hN8<JQF@toGʬ;:_i߾w"-j_t'R/Z{.5~K&e}<ILZP@5 +~B((HOݖ6rdFM, >+jL9+?~NkCs0Ƀ(~GđOO.!u3ѹТ))SƱleV'*fM:`}*?5FCS~2
; +Bp+MG#7Q/n(rR +9pM1I3W#pyXc]OA6l$+)2eUB>+0lh$$ˋ"xB\7V,)leeM[ff6]JP[X9ki.uiw܅լ鯜 7K!j'ope[̬/SeL9>[I]RQϺ1` ɣ>$i,oT~] +]٬}#GLSd3e6CO$X<paum)+%j5%E6ܲ賮)bΆv|Qp#JQe6s)8zhH`hVہZģ3('9(w1Dَ:(/]8Mo Te8h^lx@߄0I8-?G+8#?P^(\~=M d-:t%d9LJn&f$I8 'wY+)jU;lzY-Z }u5vQ,o#5_ZD!FrcSslmQa5w*3VM'>W|(Ex&wZo"H胵gi{šoZu\;R,OUqґΧd[eV:z30vcV*Aq8:} `PT=ۓ*Zf9X)k9NC(h9E\0#2UO+nqѕD y_(hQΌmx~?w
ŧ~Ъ7!][g B=R Ե۴9=jUxH{K'4ŏv=1Ɓ*h?m:rFH7#aa=gdԘRsb[˜cF݆*8;_0l;o|ʦK܌貵ޯ\
gnfi?ūU0G 'сr)7YqEPF#))⩨&84_O)i3Gq-\HT ¤)i -FJVM$$ȒӳK9<đcnF
kLFnFyD/>y>`9Aa(r]CM=V:id~(YlXZ4Sh#0,,' -x *XG3 xP:{8c3έo+0N@+Fz#akp̭_=Aח!E@$"OL\!h ;>Ȋp FN9(臛 +FJVM$$ȒӳK9<đcnF
kLFnFyD/>y>`9Aa(r]CM=V:id~(YlXZ4Sh#0,,' +Jzg}$ch<j_/kEW\=BOԸ!M79 dZ +pJ *\pu^RVZX)ֹNmg<OhxuC`JWm;Lt4=44RK;`j..Cͣ +<}Aw)ndŚ⣏vONI HΗNtHʺOG}+09Ħq :hw Jd-<=)mO=edj:&k^<Ɂ y\;;J.v(SBwJ聼hf[wgՍ;Pt*<Sv}ѣaFy_ +Ł_JHGtkSZ7Q& +@29̗ͽՠպn=k%gV^7z7`(%7*z( <aвCa$jV({v6JC*{W_.C,V%N7wYE +̪q>6،so*G +LS; +'HX\sWO|9zaQ-IS/W0Z("S-|2
endstream endobj 975 0 obj @@ -3122,11 +3094,12 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F34 637 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 980 0 obj -<< /Filter /FlateDecode /Length 3250 >> +<< /Filter /FlateDecode /Length 3251 >> stream x\Ko$
W1`E -W64KwA<6w56}*wקďKO?SA/_3FeBϿ溜V6.rl_-6trV93yfn5bvin>hMGF'hDEE~rp_[Vɺg50)C__.aET˄/+ל_H!YӂEߚ?GC.@l/e57IE<+!)j(*ɨ$h0&"zUfB'y
Et _"g]Kczű|kJV^tvΪx=&(#Uml)kVFS͑ -̜TШؼ418|иUx#l-VZVL8*¼y;"AKwqP*0zOymo|!B.W_xU^mEiuNMJڐJlLEBSa.<GQ4fIgytY%zn_)[J4L%ҸWn8f9yN5pK0ypQaR,tpCqji$7◨ղk컞QrXfM釉|DK_0ꆌ`8Vt6!ZI]X|zJڻ1տ ko+(iG*isQKxQ897ą\b1>%wCXa݈@yyI,O5 +W64KwA<6w56}*wקďKO?SA/_3FeBϿ溜V6.rl_-6trV93yfѢ<c;Ls@h?5=2:A#* +Ջ|'Vַu+jaRB-e]8¦3 _Vԯ9B6߳5Wۥ52"|Y\_ jnyVyCRfVQeѡUQI`-LNE2*e͘NL8!A6ǿ4sDW2T\%cCFV,`U{o%(MQF*R֬# 9{&4Qy
i|Mcq8,QHqG;#&'[3lq5;>歘p`UywD.IAiT5`h iaIC]>{ɇTw39ڊ +xiuNMJڐJlLEBSa.<GQ4fIgytY%zn_)[J4L%ҸWn8f9yN5pK0ypQaR,tpCqji$7◨ղk컞QrXfM釉|DK_0ꆌ`8Vt6!ZI]X|zJڻ1տ ko+(iG*isQKxQ897ą\b1>%wCXa݈@yyI,O5 KHqT]}sC(x &mƩ_ $ؤ;Hp%wPtb8C]@7 5jo &̀|ЉNDRv{4)jaʃZtnȥ6 +%5` Bp5$KDxsqS$DĶG]1ax Έ {GCžH9 @@ -3140,7 +3113,7 @@ $uͳ5i@E}0P9nyш̻<(}HF
Y*y|e){jcmSV? L]xs\*giH[WK{,pD$Itض `);t F#>C{4m)pH @p|,9r3Qk^v=^[22vud@l8HM]Ek'-ZrW(O.h[+iCݐ͇rv5<PE[A \"6 d%aĉЎ5LγaS-&Z˰8 '֝M8*$3O63j8ҵkwX_ -Si/-Å3-GA׀D&
$6ǝgF\_CB{WkLqp%/b3{Ӕ9@2-O=˧)2u{Z@,wn
g./Q@6l&K^Pgp +Si/-Å3-GA׀D&
$6ǝgF\_CB{WkLqp%/b3{Ӕ9@2-O=˧)2u{Z@,wn
g./Q@6l&K^Pgp/ endstream endobj 979 0 obj @@ -3161,27 +3134,30 @@ endobj 984 0 obj << /Filter /FlateDecode /Length 5355 >> stream -x]K8ϯaRMDpc'`"\O,ɲ*{ne>KTZ^~|y /_~zyQ'|_.?>I R)
Ji=Hw ]5sRjGW3'n.nD|mFXяrtMO_~@a] &n[Z)keZU-e4lMUoQpZ-Z0t~>m>Ct<tݍ'NQB:ȨL o[6Znw8wJ PF2_5U_ z#!})JP!V -5
<G/,9=ccnpz2c!<KMl%9&-=WUz:3:do>~:UrNלA|K&:lZ! -) -)8յùET t - -
+ -(r̗j⨷C՝H}K-_w%{CX$1JTUWK"&/3N`R^qh0~Ԥ9lhsHc!(wҹ?[,1Q_umP -=47^Um~ZgkVv(O}uV7H+zFS'M?0&".04ӜIAA^V _"Z
kݦmQb0&rƄ4cjU+Ǿ@7jǤd|@@tL4"4" -g+s͋Sl_W(TbU 6cKid, '4Uݴu<z]Ya$aΫ?Y`5ҹq}
C/}u,,ym؏/B?gx/eq+/1 - RI]VyMF(nXطy/"d - 9.NΌ v+B#@s6XfiCtGGȓ]۰kM@숦8zLJ4S9\%pO
o2R60VW
o#k@
yPf1?P&O+WִJ!A*${a8!{ g⪩h|v|
!qhyk/$N u7m!9(Jk쩰(Yysoa>JPgR' hV,8WOjDPy9aMѪ yveJE
Đ4@{<>9&rFOkJS+0shJo-+`ʕ*qtOstOUϫ's2NSXܜȑsyuV3ڡ
n/B''oy=2Mb؉̽rzduG-;JPwW* -k8n2zl -,zccRС%x05<-$agATK¼vţoݍiAK7NA*[oх<me}32"WRL&rpGRkW_vx,5He܌P/+erX+q0D\jr]ج{.
w'8bT_Ҫ\tC{/w6d]Zo;EiOO<:2WSS c[۶3tu*ha[tn=Ӄ<˜iB2/
b#nC]!nuzՊK -Jo -_r8SH'y|Č@$s+4q
> -I c<3|VqR_ -SYŽɇcܗ>O}9p_N㾜ҴCe?Ș`F0͉\ʁ~5_p5o>h͗α
%Ǭyʹ|l[p&kV= XCk~*#k~SZԾ5b͗m|5?58kMX!+|v/'咍,wU,%%b,6
s׳vFnęF{w鎍ʵV& R~ߍ^7Z3U+zj
w3p*9JVFg0}U羦KU-g}69RNVuboۻSKpC RC߭FsuymI.f/F #hC)i(>BXV^F0Q:Q\4&Fƾ4#ʛ
<ͯ -hڍWoF(dqȯ6Gէ*hӗFyAZiJ!7>EuU-7.B_LY܋!yM[lH| Q-Rb)q 1JV]<2a\Wy@U:Ww_jEK}0[ -Ert&[mngz@
x;Fq-u'9O53Xq<z",MĨζvbpvic7WO9{ʨ15(f52cʜVF]/~_1M -lkDyڴp"gf¤*i.2466jvMz%0
G\zRjGU*71mx\6紀)5{1ԣHrڼP= -USa|JKgfLWq`Te8>]Ĭu8Pb
{3?M'~ +x];ܸ+&n<jr2#|8$1ÑDCn4oyͻ~x3D`_)B^I᭽8OR)ՋWGD;9Y)+{|N{>D#oGS +1qIdĺefI. &aCCF .+Wн_WE2&^;
+L\_n>jC#sF,9Vp!=h?H@M$ +3?;+&WTi|
UU5z9q
6WFi:?]rZ'ZlurPnh +$` LMiNKܤ jrm/.间H$VhZT۴#mc>J{(mB!lLH3F1!. +w*QC;wU/GnI|WplX3cu}i5#tzDT +TnIeFjc?/zV鶣K1 +H + i,g1g)<lPZРQp%a ѷՍis[Š%LW-ABFL^+G&y98dj#s5y`+9-8RY-87c}kvh-+erX+qo=/\jv! +խQӠs]8|Lޢ'mBi
)ī>l{JlAޮ>Qu踝H}Cێʎ_G$Q$Gxu?|.N-;*|$^ +գDeOৠ\`Pv'5&'W!wϓX'4Vu < +Cx>aێxrx?b`YtxHQ#Z!9ެZē&7c:{f6}GwG`ݖ)N"+]0# +i8Wy5(^S^*QnM^MAנsP
37EmQzBQz5/Szdױ )+s98c<8%\Gsp7kzQ~zZ~vai!n.Hv5vy&zGy<t( 8A*m?w>7Y[+p02ZNBcbp4IF-YaOq5cf*1p㉒+N1 +mB~'K\$(v4W4`F`< Wڎ*4\d4t<z\UCp:ڞyFB74\.adn,ꑺìjd8cJXC` +LY9 +闛sE9fgsmk k9$MSEսc1y +zB 8^urr/qCȨ!5etxRЊ}$)q?rO +?-K5;yJ1)ey]!̉o9/sbĜӴMMO:<4q_?%re)#|CA#luo(9f[P5cd#߂3y6NSCXb{Q^F~?_z?#w!N,FTN,FXwb8eGr_6K' +?ča RdkM^ם6CN'팤fҎ6h9([m|kʯrw{+ۆx֮AWJZòmwpƷNREL[X`L_iCRՍsQmGbwUY>obAb;9\4@"WJwQFchכarf/F #hC^)iQ|>" +k~R;[DI<lFXqכa +.e\OKh1fK +UdZHθѤ\K OEMVO)K=1j>z9\Нozk^,2*'3N~qz +UsmeNgQ=o6{-vL5dmZ8wa3aRG/gA!Lgl<k͵M]ө\} cCPwT7[ZZJoqg.дDգk5E}NU;_SU}Ul] +m6`l]M\VSۖ.bzN㲰4tXO}Iߦ5/|kC2Q.aJ +E6վWde+\֘H6uI۷v{MR$r}WȘb"c"A%3bVO_y$95d] N/_( endstream endobj 983 0 obj @@ -3201,14 +3177,8 @@ endobj stream x[Iq0YU܀F|7''Nd%?M\<GFH=zb-kFNׇ? M 1azA9JጙׯӏRg)EJ4Z3Og$RQ/Ld:tKiBӪܗ={[7Qv{}xb6u"dԥ -?ŐYU Nz~BiWԝpKpuPA/ZH@NW_~@ǩ_'(4!?=HUatUWul;/CkZD+@l9Jr$5W%B -JiA$n&r<=}"FR3pE7aAfopLpcIu&?E$e4YN2n*y@9a'IOr( +b#bk9-*V_0fV0i4Z̦w=ٴ`v$uZ w,I!k12~Ҡ7fr?:vtfqp&iΝBDaաBj=H -Ŋ>z -x)T%aIu+R^b> -pL=;apN%K64v{i^DL;e-&ɘTD -'!;A1欯%K[h\9r8U;ϵ)2yDg̫
#vgVZfZR -TsͲxzݸ*Dg
t>q m20FF͜džjѢU$|teY}4k8hFYsY_fc>oy}pFڼk4q[|3rKCۡ
{v́c'Ǣ>0c =q_:~u8s=;(・Rå//QO:z@Xs\;@Fl2X_VDۣj>ۢ7=7ҸgWQ[uh2>/<;%v}Ҝ(\V={Z+;iǸsp<Uwprts\cZP[zn2)wUpul:̥/Ko;r[cN͑8-uo-s=W% ~SYR7s]3 Đku iuRG<89ŒKt -tLGokK~#\/1\|q^%ڛ9u9soKuuxNgF88O͂t8mwtvy_X[*JH -!oiqr,oMWvʓzFÅ1`U=~( +JiA$n&r<=}"FR3pE7aAfopLpcIu&?E$e4YN2n*y@9a'IOr( +b#bk9-*V_0fV0i4Z̦w=ٴ`v$uZ w,I!k12~Ҡ7fr?:vtfqp&iΝBDaաBj=H +TsͲxzݸ*Dg
t>q m20FF͜džjѢU$|teY}4k8hFYsY_fc>oy}pFڼk4q[|3rK9Q ܰ[yjj^:v},3֞3-_|Pwuw\W;ף=srO=>+u\=\HA endstream endobj 987 0 obj @@ -3230,24 +3200,22 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F55 774 0 R /F42 792 0 R /F50 687 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 992 0 obj -<< /Filter /FlateDecode /Length 3339 >> -stream -x\Kϯq}0*``o$K~nZ'[#I~Y_(yE^t7#/AV_I᭽8D?J/RRUJQ)EOh9~i^'j3#֘_Ȑ$&azqBN`hYjd@]JѴ-e/O __>+}7E -Eo|E%V/y# -!We''㏎(xyS`q$#U1Pp6ЍalJea!Csns-焙5R.p J°:AixD'R;wNP@:^А7x<4ZugZ8vn4,}t *OH
6ڧ8ZgC튔#k6Uy%>ȳK%Y^>)%_~@yk~$&3P[C3PBkpH3U4tMI:1@M{
PyCrFޭ[ <~^ -E<Lr`涱l9Q0
HWKէ Izn-=O2>oNP -k -}C0syo%pꀘ({P{AS'@f11a.i-@',&tâb3L0IFgL6;zi:r7Bl'UOOR*+j!zQ -=xV%H}d9,]=ٲ*7jn.(Nn؛)Im9zmՆaH)SMV0,ScAcGrʠ~bVE{*l1]pz[Nzvub0PsgLI&Y?ktS*7}G͠ɐ ]dHL@Z8G(͐,!¶5r/4٬4m0Hh_~dAHӊia$3'PLH;2:Xo*2AixY f̮I /;gd~5ބCMоNf7mRB=FX!xc3R5;@82Lh$+=laV6? nb4j*k3(~m]y.lirLТ@mj69kcf5 ->x -],z~#Sn U5}LΉG+R];R/KrVv^w@k -u`{CvM -:aethQeZ9qNz0=e֘UY`P>lB$"OGBəJcb>a"x]ZKZJd4٦j(Z#$F_Q'ژTҌp/ȉw/-RsVr3QÊ4G=Pyg)Syu+.霒n=:</PCD#nȼJ\byȕ7ZoQ)҈wxiGwgjݞv[CtcRh5 1EȹByfӻvcfښ#| -B=Pw}`)L/fy9lH(|+z`^wv`#UкFLZeEz>Gl:cvtDC(gh"_WV{
9ǚ5z0fow|CM8usw߹C7TbWb9;O -qmW~;WzD[&4f,xz6$E(V(۲N(Ny!VЎL[d@@GnWo1@L9b*7+1@J\J).;=_`Rjwr!_hFV{}N_ re:S;}|iS4TL|a_Ii-ɩ4>=ɱ[)LQt/gx -zV - @x@0B
E_f?SE=0=KڔzlJ;@~g&^qCyQ7+dvЊt-5'Ts^W;Z;NGE~6@iDwyn<&qbw+d93rʷBVS xL I&]yYF`i
ym+bTnH#ߖ8-94mCG;q #6Z~>nCgPʭs ]K=Άb7gP=~b?q_tEY -{Ma\;\dTn!YA[ -&˿JcvqfGa+
+X(:Fħitه"lVfC)N8s~`~/F5z- +<< /Filter /FlateDecode /Length 3342 >> +stream +x\Kϯq}0*``o$K~nZ',I~Y_(yE^t7#/AV_I᭽8D?J/RRUJRs<~IOgF1Ͽ~!%H L3L6667ȀZi[[,_3R~}WoE +Eo|E%V_')G +4A4I1J4JϨjv$EF)RոʊV?Ö@(lT:?+3 +gm0>=Ł֚>B@gnWQ\Jˎh(/v)G]Z.işI)A/[ +h(8xM٥JrYp( sz Ly6lg.$9ƔG[I,oEkH~Jd}9@:J;eݪGj6ЍS^î0W js{s(WĄ@1,ؓĄ":92k1 cvALkIZh789`6gĔN==-5B<#gZىSo.FNӑ7 +g`[&W<е'LzzRYQ3g
ЋW)g
g#h,QDs'aiDΖ
OTQs;tGhtwF4NIrl㗰Ήum6\$.C>Ml߶aR<\NtS:=?-Sd +[ފtҳ~HO^%rC?c$H7YT;ʐoMy"Cb +pȐ8B +9"Ǭى +$&宩+DWsWbSgGr[fʍLEOtN\8_jڑzY[ҿev7 +GV ˡ,ؖlgoyG9aV8A5 +pnd/(;r6: +);F}su(2!kp :e)ِ~u +S;Μ6؇_Q
^U] endstream endobj 991 0 obj @@ -3263,21 +3231,22 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F36 775 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 996 0 obj -<< /Filter /FlateDecode /Length 2501 >> -stream -x[MoW9C8ޒm$Y s^"%Z-K3/XzDNvy~y]ё3ݗ_NNu^\Cpkӣ*R}/ָ
{{uQ1+~_~dHa )%l3L3"b{u&enc|{nț3wO??BK~RXK:G,[@n
B0d~~@- c.VBԸ"%?-+BizhX . c - -%6: e^<xY2y/c -0Gsܒ0QSI)6P4bQꑏآv9^Qx~u=W6ǞD0fcN52$m2cd5Y#Vk'bO[ỵy맣ںVG -Hͼr9帔rRJiO̶X}k$A(Qx7UqBSAXjp^H>^XtmǠHN/ӽ;lIcvcO഼ۚVp^V`c=52{4=ە]Q#
"U"{]\B!#ֵΪu$ -P&ߪh\B_z8yQ0+7znqĕL 1;Zhr>YD"R$qe;XSӪ];z0 ->b* -|o9P -fZh [(ЌDLٹ/`Rc_~ضY-|zi%K%V[*B8"-=R/JZrbtT$^d@.xDz&ao.g?nbeCyȾ\ -hO9U{luOXͬ])u՟M w5w08 67$ T
WGHGeSJ -HLq̈́/[3QtϗhnWBYrb_5+@M㯼b+Z 笐l|p b-
U3@UtvKAO
a:e<{!@C4䆫
6*ZH<)686>́}}T h%8)/d/0ى"=(P:@u9qO*--X'/=2S\hR(35T"]5i(T~-;νT -5ט -1Q0Egϵ0 *ߞ b-
-DSybv+ +<< /Filter /FlateDecode /Length 2504 >> +stream +x[MoW9C8ޒm$Y s^"%Z-K3/XzDNvy~y]ё3ݗ_NNu^\Cpkӣ*R}/ָ
{{uQ1+~_~dHa )%l3L3"b{u&enc|{nț3wO??BK~RXK:G,[@n
B0c~~@- c.VBԸ"%?-+Bi4c=<@+@\Q5@~+@&JwAA mvu8XAʼy:Y9;e^H:7aڧ,z%ao\iU;!aSl8hbG#-Estmo֣8x{8 m=`̬ǜ ke4I d?bkF֮O"fWwk?OG%uΟfy7m7].G+rq)夔T=ˋ֟YmH'%Po7观 +-2} ێAm?|_+{wؒ=$iy5ZiFOf50,w z2?ke0h{+Fh-DDfG\1B\G%k%U~IfL4U'&=" 幠 +@qaV8o ++5H!=@jcvи|EI"Gv:Uv`lt /JLe&s{TNص|nvl;z3&$emۓ]ELGF8Y +r6&Ehq|ظ@u'{I<K2qּ6a_Dp1j/n|&H|9nH| ȏ}WO
O!9ujN.,["LR(GF{qNnf{jf0POlJ0 I!a j`x:JE:-JW J(Zp &!.m +J + M;3AզMkGŃ\zn& J>d
'pe~VQksЯJHUI@ڻ['Lh}mA,pIZad5d +b +2imZ% +rn`F)Ju*h(/ ,^ ɂi}l%xb(QE!-o($g"g) +yF3PG( +P
ץHK ߤK+iN*[[;*ĭ+ +)B āXc1{zֱB^7@V4" +4@@Mc@DH:o4{ endstream endobj 995 0 obj @@ -3296,24 +3265,20 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1000 0 obj -<< /Filter /FlateDecode /Length 3039 >> -stream -x\Kc|EV h4 -X!}}ڠ0;E?ݯOh`#FƐOU,P kBtU,muncv
qZwx%t>Kl0
4 -mlݚuU@G>n )[6^kۇHkT[]CXhm(4 -I[M)( -PAɽՆ>W8?/༟P)b]$TI0=S;*yL呟x -OradL'䪵3paS^C)#dCơ{U~lHLr$崬)ȭI/{\؝,td+g8+bd@YkU|}
DTȌ_RQ(VWq_3K5$ƽHa^߳>Qm
$1]=ɬ0^RbH#r3+|'{fsf-Yrʹ[ <Un
]1BWRb,ȒQ< -\R\e9#j{Xlap<I*W[8_u'.WcWj<~G
,%xuU%2y.`FzP$@Q dr
Nn8vW
)RP -м;'suWVs[F1ȽhA: @R -h);YGjAnhK
W6kg#I?Jj;ռòj`gIjD~6SC=&$kl>-~+\ikg qƸ -duqE<:GVW[s߃@8Z|\Y\OQ[X - - {ގ~a~p#~- g/ZsPovJljb -xVk$mpfyh:T^@Q5xy]v`Xf-fֵ -<X8仢0> ;պwaRQg!'kx!f~/)B-aCgU;`A -GDZiQƽ_fkEit+\M.)[SZO;[GF[Xa1 K Cj%-K8[%Z%٘jY<?W -]">C+RdDr)X(KԽ;*KJ("Upoi;)K䊣u&Z\ +<< /Filter /FlateDecode /Length 3041 >> +stream +x\Mc|EVh|S;}WO7{W=VM*V#+:]ݗ_ $ᛯRg)EJRZ +~|̸C[9ӟ<A" ~>=kڇ-)3QZhڧGCӓ2[7sc~dP +C
Zc^؈,1 SUq1*}oA8H[mLTa6^/_#O@f߆qhߵ1Xhc֬kj?k^Xpj54>IZ#6\V]GZ2*b9FkծC@M20
lX +rS +vLJ1V"(zFl!esx"[u@L#h0uxĩ`+,SG[
~<=2SVP˔,gM1jrogv`9IIEi\7~~t~?ԈB!}]ȝO/Mg,Ʀs5o4Ls
+BnCS + +x82+aV[>[E*|i +FnkD¸w>䈰¨өY^աa7\kT簵bSYNߐ[rQL@337'5 r_]dY$GꕡI)?m@gzk7|#mPo>G\c9uy4U?W +D{zڐa
QxB'ߔV'o-ip +#Ɲ-hv˲ߗPosSq'Z0vLW<$o6YpoXVޚH?IV7HQgp/&ZOۋI^.ո3jڀ{c\5PwUdub<:unZ;38YM^ ohsegY[ +Dߨ +yll:p5])O$)QN)$bs#xR:=
İFdj-A)/&;
"f;NWf!/Z{Y&vQZ&%ol5:ovu*Kg|W\5ݟv^X]\B'TcYc'i3-ccljKo}5Xc`nz^ endstream endobj 999 0 obj @@ -3329,21 +3294,26 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F36 775 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1004 0 obj -<< /Filter /FlateDecode /Length 4126 >> -stream -x]K
W1>&UUZ&U+%? -zu cYCףcUOG?VO2߾dQYSwcB$@=`AS$ -3$;?oXT :yˊg>Q<doW6&cFVn{/3ui:w\3HNRȮ+0*傯|e@_UKL?LaH -`1 O 3!bVf[fZMy+2qkJ"0,@lDk6ܻ8l3xCP -u9ާ5×=g@vnjO Rc_A>F"X?XD}<.
-}Kk+d?7q<^![AJAtC6MŠЮɭC+W?6qۭ9pOܛ?u0k碀CE(rYm8C18L G@ϋ2SC9@\~76w%-o1^mZjU˯?Obc1~u?ZA\%?_T8.~Йu;-&/naJXcz&\?V9Tf1/*q\{[)|\EagӜ]bN d߅=b[-Ɔ> -2,sFz -3N5p1st0j=JBV1f/ - {9[)K.p)lУ,պ-\I>)IGL
Z|R>¼՛e3qA}s%7PeCbd\yh_32nk"@9_.86mF;w;D\qbluF(O;Ź)%dxvM) b3PO-m>z(uwT+EZ`DO)\}g;heҲ
`1F)c}+J'8E;FA< -Zr;>E+r<R{EZf'6s
CKzͫ;4hl{qtt;FqA(oLju#,5O6#-&]6ڂJY0BI'c(99͉=z064^{|УĒʑ?8.gC)#8ҧy?? F۔F`dyK0n -R]:1lyry(G,Put.C -ǂ^m^9z7*Bwe@oNЫx z3ޒ_aYb#
a'u(^c_MlհrkhmTp,qݍ~+0VQ?H/Gml2[u@d]'*Bٴ_7Fӣ{Lj)v.S -C8W14s}f>t}M9ߺ|9\m==V +<< /Filter /FlateDecode /Length 4134 >> +stream +x]K
W1>!U*֛*)TŇ~{3\I>fAJ_~_=~W/QE.yg}1UpCT.?}>jkm_#"A
Or?E=}'~kV>a)(ÆF}zw@ +^߶@8*|Mk D*`ܲ8W0݉=A7|?DƓ#HviP跴|INy-ТW߷[EflV/tlT=ޜ&rwhbPhwm}Qk4
v{<~α'mI$_s$96\?&ãSS_~SST9~buoV +kWϵk`!ʬӿUe1Sxo[25Wbe +u]cN fߕ=_b[)Ɓ< +%.i}2n*JBDL&˜. J
ތg"~Qh
']s&~`ݬh#RED\Eq9pG[9j!!ɘв*S8Ȯi#Սڷ8rD"gH-Ma2aK֖Xy IlYf{ +uH%D}]^IkvrL'uU, +X3K{UӒ?}[zd}Cܺ Vf(cЍeZQalkBjsLjgE+ [˭yc/9XFR}i,xA'g9P"VB5ԗw3=Ѧ̿Վ@T,^OGbvS,+z2}щG$Cl=`ؖ
V`ƻ7j8*O=4tc:}XS> + {Vs<7?HQt]"p=Kq-3CPTvp-R$8x,)8 +'˝$zhч.Cd[ +ZYZ@}=X,{ْbpUGR x,2^k
;eܨ~ogCuiIoyu[xkCTe缁R&ܘ
'SNyv@2wq|Cm߀!;h٩v +aÿl@lx[Ch"߽T#@Te譽ƚH?>.H)L4j_QOzbp4nXtַ*ۓڗ63<?ĉG0S +(a`82Tnj9x(t Z7xKU~X0ܛxDe.yV`YV^"ܱNBR^reAkZ\Mn+6䯺i{P"Uu[*{BO\:j 5ŔYlBV4s.{Gb]71ݮ:.QK6"ؖTrn3@73V@NE +o;}LoC*t-;Ma +Ri]11 +c
#@f!t/qnbڬk̹O^#RZDG#Ya3珀}1 ȺT5Z+9m +9R#`prMI3Vf/6:1(拜. p-g̀.YS8@ۈ
979+['*ɢkgo牳7ٳ7 +vMݺzz/:j'@Eۍ`tdC8we.Y?إ8
1sW1,=c]:| ¸< FMdV}\)36x۾8ԇY
Se% +7E4e?V^e^kᷳ_sjYaw8y`q4V,} /&`fvULayD9f t;cܙs|54^q&/f֯7yփQ֛PiKNӄʉhBM{F4d&T`ډ*%-gϳ͆3I89')҆<Uώm˟磗>Uۭ.+~xcW9Ic4O=QP褎<ڧu&co'5L[ַ5C
_R\捕OBBrw#q[{5Q_?37tz>)UϿ#p1KvY?%!k_wO?#{.M<PM<k&NK_?Monuͳ.wr=%0|ngF4,vV endstream endobj 1003 0 obj @@ -3359,22 +3329,19 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1008 0 obj -<< /Filter /FlateDecode /Length 2811 >> -stream -x\Mϯ>MVX4-86
\SD,q$[؇ޑDVbuៃ~z!`/OnA
N -o|R·RwR~W3"yv7Ms#Q5#i1?]5@)aH86vLmQZh(KGo^Q4j5RH ^s -OyXzD)_ gi4BuUu TO)K63%PJ)G}{R`B"q)6$kBOƻ.Џ\{ -jbErZj:6BiV4ٵ]LT!pt{r|*K^Llh?gҜ|ǙC -auK[5Kʀ%qJ(ϑ2u :;p19!\W_g3` -GȠl<{8|ɟʴ^.0V%\>b<v_'@4*`U>=ЪHv]^R=kSYq22ǺXSτFTVuaDPJx -<\wr2N&̧WLvnug+6ЪčMc>BMFQG :Hf=h,Z C;zQGOFaZ2Դ#D}u! xq5&9%"S-T|O=նcCu҅^*fZ= o+,E$\drEf\.N卜FD}v3:hf -F:ݣ),<^Ya&OUX:PK -KjIa٢V
-/kcQt -[Nwo-ag|i,`X1TS -ÿGxK5?
:
>ggmN)Rxj{M@Ws5 -^ˁAʔq\X-<xLdgx4e#>_V]cwY
c~ZN,.yMަf;fPڤYXE~ fw][tF6Q:`f&YMhXJXn읪u -ay^WBgut'ceߩ8t0#QZ*Z|Gj] +<< /Filter /FlateDecode /Length 2822 >> +stream +x\M6194CVr9Y`(%Z"mH=DVbny$O?]>=}j)`ӧߞݐ'urRxkO!|9} %|+%~'HiPJwE=?#"=g\|~t_;>?5^32s%_s &O4`cA֎仁aFmUB4~ 3y.S@?,25{!@}"hAG^Ʊ@ؐ#^O?y]~~8IAa4u?0QD鿄EӴb~^LX%xJYZ49-(PL9?ޢ#7K]!<BOƻ.Џ\[ +57JOyMӢ)'PpBKBRKQ{K+R+Cy-.+RQ7
WH2mSRᑸq;ʆTX0*M/hRȘja
rBFPdG5zmPİ)E$mdtd +^U$팦4.m֯LvRZthzP:*5Jŋptmd=ҬhK쉨6B,#TH<^~5,ۥ9+)32 +ҷKxH}KR}PQ#e@7er2:8`.sC.U˫1&>h.gV>vXS[:5v +GvȠl<{8|џʸ^0V%\>b<v_F@4*`U6=ЪHvM^R=kSZq#223XSOFTuaDPJx<\kT@;9yC{|v'W:[
:+qlX&ϾPB|&HazVЎ^QœQXV5aOc1Q_DyG5Gk bFT<@7jCO혥CmfPƬFEt٨V*2Cv[ +KI#Y$\.qY<dlm& +Šj~#Qa1Q߷F2zbN(,E$m +WaoRXCԒҁZRX֨:BdZEX+ȌLc7_sJQҝQZ{UէM>iuէFnԧ"&U:8OvI[#BPo>4OT զ>1nU:(OUM 5 WgԧgUF[;;4\XrpӗK [<KcC}>r:UU?2[j(mGv)'8msLS#nטAHWZWƌj0 pnʒє6|YinZN;,.yMަf;fPڤYXE~ dw][tF6Q:`f&YMhXJXnu +XJ0.M5_MgVlaO*#5Gi0*uEFpuﻞ5RW;|7^N-xz~=6M2㣂"AWȄtYEeW+*@LMHG0jp.|=б1zJ˒.>.kd3wPO=k*st +a~^XBgut'溚Ce|i~_T.Fβkl-Iv`5qDg`{Z$ޅWZ[9Nc+}
8~3*RJ"ر+D3UJD^yw| @u߰1G%T2,wȵ +:}%&@uWO`k̘їC&1 J dҹǼ endstream endobj 1007 0 obj @@ -3392,13 +3359,12 @@ endobj 1013 0 obj << /Filter /FlateDecode /Length 1350 >> stream -xڵYɎ7W>XHj
Ҟ -gdxIJx+%RRj8~V
"v7 O6ѷ⚖9j}>F.RB{À -;d$S}~ `u4B+1BYR1Jnm#EV -kbįH6Яd{e06xNs5
[$s4@)X -h$TW@tlA8:KBFP|Hpu$'Erd,~]2<hx&'<*){7kN27e&hA9Ժuh^M$mX. -j<I586cV=\Yʆ`lt -LSmT>=ШXZut/p%G_ 69'."*c|<q'%B/l|dM|%m蒯CTr}/-1NM$[L'3;ЖHUE0HPk/²<\k [=GdC"nͺē<ͼV[k9Bm
"Uیiv#.hG̕)CbǕx*nc>?W6`JW#7wˮsQ^C:鑻R#垍ziwoqԻ_
4z8dPĴ>?OկB[Ol +xڵYˎ6߯2YDH.f +dvvAV- +AwPxƀQ`9ѐ%JVR~{9"CsaqEӁ%2ZCcdv3@F8[g~Q-قf=y#cGLYy$S}~ `+u4B+QBYB1Jfn#EV +kǯ]O6Яd{e06bxNs6
k$s4@)x +7ULNyRT%!4.>]KdtMrцr>F;a52O3ڰ]KmT^@i +jܑ p8@mǬD{rfpg)fjB;(#69<N`/bS ĦU6\!jlM: endstream endobj 1012 0 obj @@ -3411,13 +3377,17 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1017 0 obj -<< /Filter /FlateDecode /Length 2128 >> +<< /Filter /FlateDecode /Length 2126 >> stream -xZKo$5W=U嗴C8\=>WvOO'ä3\\n9:;/&0=r9Jጙa4MOowR⣔꽔4?=Z34ᇧo2mYGJJ:z_hv ;ϼ;<d/y"7 YPB?bܒeш<ԑѦ.S$HXa\]UOg-ȥUΠ
:?zY2ѥ~&jNiγ-1o뫧?V`݇$z7~HЄwIUatS3`lN/C#,[`k6
]Be(!J0%**W6GckMoq%Ki!fg@bxp76-NޱW89+[<k\(``{
zc+¬+9OYnNb]/&&R^q
ڴ&B<WHN%*ʂ}&H)E_0FGpO.f]J,#sge4#(Qt.rk -k?OD9PXH`Ce **" -]i$úZn)ϕ}Us]5 -%whpHCɭ P$Clsnk%BG̚kU{ch-ovY#ݐ˪NPޛvexaHST1k˼YWUn!Bxw!FI)vCt^<ں"̖L#Wetv{\kٻIIAaHj9lE - .D+(ka!tUƅ+%?J(l>^ɾ1[Mr1]|=RQ,%W&N
6Rݓz^u +xZKo$5W=U嗴l8H.}ʯv힞Ne&zrIN_<=}4ƀ_&+3f24=}+%|%%>JIIJ;S>ܣ<C7~xiJ=
^VR)}ԻBӨK1ld~$˟_
|!OȂSD/Fd桎6u"dF +ꢨJ~=kA.trmb9.4 VpJpm~\X CNOw?ğWi"BO}s'VIiO?Wfesz
)@Ƥ$=fي[i*C Q +g/dVQ6bmķ9]h|+YJi5[6>SU?eƃiiq}Y!A\@Ack+ +j ;E|8%jAڒkN% 0zse1AS@2Jsރ4sqU}o}#
ZFK>ӻ)}%F01h1>)ͺ
l~KD|Tق%xn̙t]9#s:h0,RΑ?]"}$8[@%'2[Q.٠̗Px_K<~>V +:x(
xQVP-<Tr*#ƹ\
P!-8Tø&_W1-W)+ͻe\7(_d* u˓pC4+2p@9HB]MVܛ5PzDmlx :uJ0}_O.G4aD\mC_l*KP+F^;me7[v-8:\vcza).Vh˝NJs#GhyN!زۛK|yؙsLdd +LE<TLfiV_<:5rkdaǐcIA3iP
%>uE1W"lΨ[j#m%r !fy-@QmR͎i3ANI f͌ꔩ:rP]6FM`Rަ̾~d0 x%fcĚH
6:T@a)/ +ehiL-ϊ(QcEPzkm1ܥ.A2{\ЮW5ו]l.\^Zh+NGJ`|f>B]e=q(kq ӳcv*
Cr;õb<zDj@.w^1c7}xa]U%G%*@q-\ўE-COVٓu +er}N=.Kln.>l})e㼦mӔq*e +@
E>?61F-rƨ=g\CoQ|~I endstream endobj 1016 0 obj @@ -3439,18 +3409,25 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F55 774 0 R /F42 792 0 R /F50 687 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1021 0 obj -<< /Filter /FlateDecode /Length 3760 >> -stream -x]I
ϯx0p*{:Uř˧$vRK~ -#[e4_AUJY|xd5En#ц^ea6+ -+a(C5SҚ4%ˤa -G -M(TB$|XK}W5R$#)rZ\WE *#F -:`k$\|Ɵ4f$]Qg(1gFbp#oO5ݲ/u0<
\1kk8#歸`CqJ@ͽZ_\?g)yv:R<|c!BZkOPW}-N -ZIcơ8R^/Jө -N:k+Z@P.CV="ů[QX\rdj/L"
]!ѫ0b,\MUm{<q+לjv84uSieK|:o|fjb{&I|S%6{{7_~(e\r&5|9p6sXxf x-*݆C'ߛF}ze@k2;TLz=/)QK=W.<kV/%q2x7S5([=MKbS)1dR - 4̏Kqnvi8aqL (JCOyf=P0o'Ob>@%Ԫ8Ce j)=Ss
LgVNʖ+f^\1s`{"8
I
S@xIl5~B 6|
zPfϙ1T;VW>2~¼?=cXGm uvC)|Qcp.w1Voi+ϲa:_+˶.yREjP7ޡoCEo5QSH;5Qld-X
f1^ -Щ2NV'ҥa37.խڰ"}͙s7yNv ?O7V=6~Tʐ"&$ז"{D稅CU
jM >vJJ<9hZwT>r;93ֻV:сZ0ŇX@*uDO,z/&zh Yp7Њ^]JY;cVbUR?Q;+fR}.BD)T%sV!QD gPEn2U*ᦔӗpNHjZcD&3\>H-NѓGz|+~_jBE;[)UXO24Yhc#WZ5ȕP+^\0R{b@ +<< /Filter /FlateDecode /Length 3763 >> +stream +x]K$
crXE,xvgoOI%?TRCoOWT'$jOz7/q9c.y%wGε8-J)BKέoZh9|?1_kDj>+ܻ[ŏ-}~ u\Ks·{i0oEً6ЭV[زAP-y\_/?]ۧT#,]':Z1
\~O腕hbN6.K4(e +n>?)մkXPr1A>9NC&G{o";w*b^زWc:ڳg\K^Є4v:\fʭ%FDc[@4^.eѷ|JߪAZʹw:H,}Ꙭ>yF80-[fĔ)%%3Vힹ.&Nd8`0|ySYx%,e܃f'$QcޙaOP58%
GJ +Sfob.r+Tg +BU +T?|xd5En#ц^ea6+ ++a(C5SҚ4%ˤa +>P"ݗIZY#H× +-jH<%FS䴸ATF +e_`.08ybpF[q8d
{Y~)yvxhHC"9?ZӕASMo }Jۋ8&l`+DF"-WE8d.^&"
|f}ht7ϳ(F@UTyU +{etФjM=I<+Јyp2ڇSFm{{ i?چ3J)CUueT6 +Q0ݟxhuXŔPg<lNzއ5A+ݤA"QRDžJH(^V8M4A.^Kײi?ܖϽfDegj%,%I꾯[dhvZhKNl+td+hne"[a1Ӫ9kag @7]_r}ѐVײYC"9.}rl/r|aj2֍b,(nS5.gH%/{1}J%m$9qXZ7pةxŜm?pK{^s^ӠiWĜWCމ9ܷJ*Yr^mh!/ѸD^gh)fh~329{0]_>ddr4mZ)lfHN)LPRjtZ (aрddrw66SHJ{XN!8vK>Paҁ
@p:$7
(tݫAtZ`tP\:X:6H{rFKJ7-!@@*j %PDAa[3uLbݑFb]|X.d;G&JX&!`b={Au!ױNIA˔V]YZ4= b
M +Р]7w|z +:-3oZ?aVBH2CBd)PKL1PKE)j/ʗPu%Tp큩6wV+PnD_0?!̐)4\j
+ǬRRȐ$zUj5q6*=7 +ő>*
+
S`&Z#) +N:j+Z@P.CV9"ů[QX\rdj/L"
]!ѫ0b,\MUm{<q+לjv84uSieK|:ofjb{&I|S%6{{7~(e\r&5|9p6sXxf x-*݆C;ߛF}ze@k2=TLz=/)QK=W.<kV/%q2x7S5([=MKbS)1dR + 4=̏Kqnviy9aqL (JCOyf=P0o;Ob>@%Ԫ8Ce j)=Ss
LgVNʖ+f^\1s`{"8
I
S@xHl5~Bx 6|
zPfϙ1T;VzW^2~¼?=cXGm uvC)|Qc}q.w1Vwi#ϲa:_3Ͷ.yREjP7ޡoCEo5QSH;5Qld-Xq
f1^ +Щ2V'ҥa37.խ/ڰ"͙s7yNv /_O7V56~Tʐ"&$ז"{D稅CU
jN ߗv}JJ<9hZwT^r;93ֻV:сZ0ŇX@*uDO,z/&zh Yp7Њ^]JY;cVbUR?Q;+fR}.BD)T%sV!QD gPEnw2U*ᦔӛpNHjZcD&3\>H-NѓKz+_jBE;[)/UXO04Yhc#WZ5ȕP+^\0R{b@ endstream endobj 1020 0 obj @@ -3466,18 +3443,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1025 0 obj -<< /Filter /FlateDecode /Length 3291 >> -stream -x\K$
cDR/`0gg'oqfĎ8@|)JRu=wv]]>RH~bvї{/QE.}g}1UpCT?.?=h
k6OZ[l/|
Cy*:3 S/JgrK֙q\D$K}^TźK,"m+J<Ctx/_pc~Z;M%V`?/1<wa& -[@Ď8eN@G|vpFBD{Hn!|;0&as`XIE(=2jDqnYW"2dz6&u=ڏ@.Ő^T"g]1OwNeyi⯯zǺprfb;?֓q弅oLC32
)+,V)>*hJ/;) -B0YٗlaЧ)'^'',^lՖ>~HI:, -(p"q:bqe+j]l: ňfu5{q8a /ӝy-NA-?l摌Z:>(/yHsANr8p%μ2yrj8q>/G
7Β=xktD9ִ d2q̓es;zYxk$XxlDz"u{w^y#}7ޝL=»sĕ#={3ʉTXl>8<un`D=)aVl<S`\W3V8y"+4q(LoOKyqf
NCe<ڳKzVUM̛V"ߡi߉MF:@lرxT %sf`8 -Whu|;TS:)>hek<8 iA$'nxJ
Ntb e9\)4KVSXP6D;kN餏u$EufBGtr J#AcYfytgo9$pw,e0K1K~m.8t'B$O(DKLc+
f\9BO0QYBOgN_8/a'OSj
z~ -%.'mDz`(Y1*-YGrb8)l=pQ.^<4yt:2YހWB$8|rq -jʹywvҲ?7k~uFMi,n:#)~f`˴EH3QYgZC`^J\l}5G91nUCF>k1nr6r7дDTpA0
4Njd9`x!ܗusbsVq -qFh-/ϢC3@^(;W،r"W-ܯ -[]۽ - f96a/EPj#+'g|xs^p"+[͉V|E-S~a(:\gR̙IOsV+U|=!]|mfR@Hw*8[W|
rpN7iK2W};K[PzbIK2p$ż$id-2ZʝF7{&Ģ_ooWޝI +<< /Filter /FlateDecode /Length 3295 >> +stream +x\Ko$
W1sDR/0--n^CIң^}quIHQ"E^zg-/^x._~Ss ͷ/RRg)գ4V燏OhzڡRҏF
cw>dRQ/?q\OpN8{}^JAE[UJ^+ͭlʰR0':Go/qسY-߾݅ۤQhH.ߎṱ3P8Y +* +xw_|۸&ߗG[ֆQʆ>
ΖHnmoWNx7-1ȟܬX%Pi>_amUd;`H>n<lp< +㩄5Γ61:4OQ}W0j+y) G9BO8[20oG驶UUԠ[3Y]71slu 5d,jc~]>*ൿ`A(kD!Ѽwmrآ^h uƆ=Urד
/j^ٺU:x,SK0ko38}0[V;0CV߶͆ȱζuT"ףa:(0S3éWAƤ>|SHG0dVܸv5_7h^#%emr1-zߊ@@ǐtJhSf,E8固c6"/CrrL=c"6wt +\S}X88)#S>R.\C@^ +biƛv[55Q^?ESх++W5u5Κ|7Gnlr2M%#/A)T +M:9)ORͲ?y˃8~fh!I٤DSO^TzOjKw>ƇD +$`k2ls@? c~
:*#N\s#bP>G9lc-_!yUsJXeƾv#9/;vnq;y[zS-?
l摌p)
yHsANr8pC0y0J8q>/E3Β=xkttD$9Ԯrd2r̓es +966 +,<kYx'zo,<qzy6_y"`=_2Ļ{/ڼ^N6L>»sĕ"={5ʉ{ +,pZQ:_7JP{˔Zl<SLW58y""Ǎ[bEaL
};w }>c` +v(XNgt:>T&@=]5гjR^$*=5NDP \1 +`JH?&/U +'!Ŕh;
>T5x#dF ++uf@pGtJHL $<s*'pw /ԧiLK6I;Ga|0ƉF Fu"ÏEp{KƼCR@y!SR(kIBK'Nϋi>l$鯩%m!SCOScIitC'G3t@hd8S1俩l=pQ..DrLp:e,+!Jqx8yy% +)I/ЕzH#lQ)0$B3ǜSt.L,1!2s-M=P$ME-o?OV,zw!Cp _tWa:APfؼn&h4'SY=w6Xu^5d:XTּyQCƷQ#y9dMFJ8POTR{r˰.4t?f]2p.H*tM0gmJz7Yqb.ިpWíWͫ֨Woǽ:|6|}T$y#oeq대W[Ai#MG1fk
Y\.lm5G91nUCF>k1R6r3PDTpA0
/4 +N㪰d9Va)!ܗ5shB|5g +5@^:~e
aᅒs('r'(n~WXc6Xnn]h Ɵc^(R//PeXm$2Wru)Nvzy
2(;k`PtXYfb̙OsV*U|=(!]|-mfNa[p4+<+wK2>.N(ɨz=$Ē-/+ɨ1+ɨZZ%\Jrg.dTX{J endstream endobj 1024 0 obj @@ -3493,27 +3477,26 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R /F37 793 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1029 0 obj -<< /Filter /FlateDecode /Length 3953 >> -stream -x]K#ϯ>,CV;|7ç$NK~n>AMErh&z}$/_3oQ/?= _r挹X/99Ϝ+87? -^Nɒ8Ѥ<t6)) -Ԋ -8O)}zv@M=BHaɻ4?gi<JڱOhnHƒv@Q -3soķYdJr0ˤw\= 3JLM&6`,>*9J>`[3VtXEL;Y -ّ3:W&^}^mWOnuJ WKZwU0PTEB0>*!%9{#zI&?Fb -=(%39#(ä5J_ RᙙFN[2m~.Qƒ%(hzqgbæ<0%́q@9`s~`Dp\4&V#pw]XqsM1I.5
͎F_ odzi+stwa/+%:^9,\or=t3s}O['(dqormݦNrTR6 0uPSu
5ZmJsP[7㲡4-9uZzps2]RqJiuL
[z-mTi|XJTun
]mTVRҔCʑ_ -5[
Le}a>ш<3V=ڡVoW?\?@Z<Bc0{1xp"K)ڛtlAP=aCYo({璢G4`0Y*T@|'=|N@:j|ko{:Q}MEa9iҞ+5S I5y hnu0&yKbrBW9l 9 -_ ->R;"AS'XfqBpk;0#BADŽxW(sJk[(oubDCdJ7mooSm=rPXe5{0UY'l:QЦ-؛Ĥ\JduʉD;x[GQL[w<-+WSWXY)F%!6/00`GjD&Q+rNZNɹ~IJ$^X˺ -Xˑϕи -Mu).VQhPg
w晎^%_2Y/4B`T_3:N^#eבI@q謃-E(
ygOʞF^?yޑIoz.Ư6Ǩ<=q])hXԳ*qOkg -`:x1Z)gZvcjMĂ=kѣWlXGuC@rRgCxL!"gk -FIHr5NÐ2MKk # -mC;kyWQyy9{XDjrv-!i{5C:A -ϋ+* -bTs \}J"`e 'coЙHqDS7kQC3E3 -C6&q;lhfQKJ5썦aQ1gGlY -to=-P!edn<ݭyXӯw9צzip(Ӛ]480!E:sWN.jG{)m_Bݠnw3#EqIunӀ֬.#g|٥Mm8S6Y9\N7geQHsؒ˙y+̟]DT"S)Ivk[פ//(:>tzg +<< /Filter /FlateDecode /Length 3955 >> +stream +x]K#ϯ>,CV;|7ç$NK~n>AMErh&z}$/_3oQ/?= _r挹X/99Ϝ+87? +P78hZDRF@1n*r~vkaL(ȍP;>&%EOhu~h6MEW(u"inMr_R v[ +dz|:*v[;?6Ѥ:<4np}!^jV r-(* +nޞ3ơdzkd>O
d(& +}C}RZ8ڦ=|]uHbwSIBS{$-g+)N4.-M{J +ВJTHv0)6խ/b^%0ECJCe" +}HI^uH`a7;t nD4B-JLp0)e@RȲTcxfQS-As[KdI" +6k\+癦)LIs`b +Yܛz[
5hE]6B~eCV\6Ԗa"{Al1MtCxN]jĺV7\'fL (trT\xhZ)oCV=^z[ %jVUDoEg[Cmmm;4吨rBM aj<Sh+ju8{O(w4"Ug`vh0ϧ;}F3X;DĞG%\/;9R&ۦz(%xzrؐj(A)ѵ|4
24LJ>P)IwO)#c)z-_枎zTm_SFwkNg/JHjEylMd)Zt[7{;gE0qĒ`52uBNt;s(NxQuS_§Ԏh cY.kaܸ.,C9/̈PP1( +BR(['ҍDۛT[$BυV٩tͫ^>LU :&ۧN.i>&1)5Yrv:QaOjթz!eViIEHF#<Q?IƊar_R)3ɱW/ֲ&&rds%4mS]s`C(Z!YÝayWWLi< M$m 7y<HYlu$GP:`cK3}C^铲'ⳑ`WOwzқ}MyA=1OO\k{ + +z(u=blB6^,?n뤁rig<F +虖X@?B 3jZ{Qb&<о&Sٚ~&zD\ +.RK0jsC'eQ7ym8Ӻ0К#p=:qTAz=S8SJ5IQrAN$(.ۊLЦP6#PxDu/@ayB|}َL7
.8BX$/ʵ-F
'mU'"mzOgmc`[ԃݚƇAl8˙U/'O*i>UTOYtygt3
CJG}JW|LZ#%ih{4R&WĜ gaꝅ +'L4ŅzmH wj/SФrLu'nQJ!'l + 80._ˀeಚзeEಊeBpYEpـ$2\Vu l@.;GG2\6 U|pYXubݻeuLE6kOÀrR{Aa|MaL+F͈C-s͎ f9gXvMhX>,ϿbFp'#fTxBBV)~Y8dȬjDȬCAf5 Cf5C/BYTvf_igu88HHգED"j͡jZN>:.퇬i{)dK>zSYˉY=jg
-j~@+>pqq +i.(7Un \}$½|@>C1{Ȣ:X<jo)[1t&xTZziLQ?%@txNtmNtHέMmV%_ot$٩2p]d&aT0n?A;u?UShe=YciCN1yI($̩
8{NUW4+YKLI<mDi÷j6 +
ˢ{Yѩʉ=='˜zg]@OO5eT(J'L
'HТ_|H&|*2?_g:䘙+(5CAKrJ҄碱Bd?
ĺI3u{\4ZyAԒv
{)-smTLwѴ[ݫ[Okj|Y@D+ϡmw+}'j-lε)^50ʨƴAW!i>'pH;n~S9w^a7jHQ3zea4 5_vix[:MexV+@o8rGފ endstream endobj 1028 0 obj @@ -3529,29 +3512,26 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F37 793 0 R /F40 876 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1033 0 obj -<< /Filter /FlateDecode /Length 3524 >> -stream -x\K$
sXY"x< - =;92𢽡"xٛk%ϊPu9) - VbM -s$/5F+J9@.ŷs|AmIu!EUOGr`CD#A#T 3X2frH{&^7!CşEFڜ ,z'y3|pq\(teGp0}_\YU#OJ>l/9;d3v҇l%jقLih\jQt );[ad^q<'RNgT_WuVG
3DjFJ%@Щ9:bb71>yӵvڮlb9M,yj)-&/ -NB*F'Ho輈Ur{UX6t) #8)e[X,frXw+rҺ
ˡi=?˩f4
˩i˩FS,ݰ $3]YjL{P=H$-R)=;YpPQr&'tpwƳUY
Y=oójóQczWf()YZ1HAiyWDWdM,C2T@&[]p'M5C -oRQjʞ~6r+
*H2ha1U܁t%5bR<Hd<in(5X/E|)~)|AZa -ӽBCz8k,77Cls-е
v4 -GJE'6 3:
Nĥ4Mo -gUd?Ott~_'MaLCXsO5;@Ie
F_bc#jMkR/^(kj7=YpDQ0$wE &f5f:^xMc[0AFg)Oް8%"iӒ0WJ~+%~dhJ[z+i{FeFaa,3ZOѱv%tB~X4EŬv4bH'ؤi}ko/2Tfo4<,Ek=@ -\njh3Q >|E9\b7o9WKw(ڒ%=ηAlF<OXi4^[ -.PKK-X%ͳ$3P=I`HI˚wݻ|^{SωjIqG;rWcE5HՆΩfr9K*?g:@oT2tGѬ74H6dV/LP.W'k&'Y̡n%Y;j2 fݭuRpUY]= -qG>)ĕdVRbD1mνQ-w}WZX[4Um"Nף$:8k"ptlp$7/:,f;ùhe9˯d -qpCB6蒜L>jrzԌxb|ݑ/Ub {5A 50UWJA=T֤\YAZA(ȹPsCX -BTLZ_pB Ta͵++_P|]AUi -h_ -jU(ݭ A -d+h8M[.ޫ h -f syͻzR~I"ݵ\Sq\RNeТxх -B\A5M
vv()+ &-/4j -Bt:)C -2*qU|qk@ɖ5ﺊP#fW +<< /Filter /FlateDecode /Length 3525 >> +stream +x\K$
sXY"x< +vN։H)eS +YX`Y! +Wcl%6=5X~,RNf_맍ًRftrT/fI^hvPkr Gʸ
,eRJ)칫9hG{j<nE Qc,?:w? +|ꯈ)zؤMQ߀SƂ8@(2p"ӇVut02h6v<51ڤ>,U0}. +: ^;i )v>HZK!8'OՖ=V=+Zv]vym4<MWB$9ULdn4ҕIQ@Ch`q,0܀Qk96_RR>M#r>o-]"a +BCz8k<77Cls-е
v, +Gg mMjm(A +glR T--.KEٚ +r:''(|%ލI(EΪz~94iGgla"OO:#$SniaϽ?a0,^ +[3h+E\բ)u| dt֒1I>qw
n;ӫYr*f>- sRgLF=0 gLFk6+^!peCݷ+JFxH5,,fQb<bǧg-CeFOvKcR,փt@Ղ֍1
My&7J$woh=gX[FS3
4gjIr@E@Zӵ'3@q<V6֨ +k~k2݅f~iy6s'))iYˮ{:jqs +~cW֫u;=-8!pLK! +tIN&j59 +BjF<7_wbBXApMP(~;LRx5)WV*V +r TPA(P-?UA8a2S C)#0_A8UAXK +B%W $_WAhzExUj/}VҠ^b4-R{ޫ h +CԹ]<)$z$8D.)X}hQ^g )&r;;oKvxŗJ +Z:!c endstream endobj 1032 0 obj @@ -3567,25 +3547,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1037 0 obj -<< /Filter /FlateDecode /Length 4138 >> -stream -x]Kc|X,_b -*S -mxvcszgPԐiX iq*> -ճZW)y -P[x+/?K
q{+CZ]?`Ԅqc3+X#Ju=ʐmMRq0]5++{}MXGE=6&9;&Z[:ٟGgJ4XiZ)fFӚ'ȴمIzCpljKfu`R3NvdN}PPY
CS9.Oh$Mys槜ib<k~npE}ga
-h]=5Wqwxd[M+U*&9@h2 .G_\`!H]?5;ӏ<G\[$ -RK8e8=SAVk8d=d\w$dPųciMD/~ʠ䣄r$DܳX< F%yL\_ "VldVNZjRY\dD2oɬ2Q`[q SЖ]>fy$` ' 86p8a&=R*
6T|[C!ajy_ -*fT[8 -P4ߛJ^ZS^$-2#l&W-2,a&@kd%oBy5@My
ayw:۠| - eO2jE7ƤΖk9'WAdլuсhK{&L#c(a]˙F2j>z6Z|urQu(fzQZڬkEkSn6&x -!9CQusfi Q.uR -oH4~ɪV<;E%!YBpPO)V|E|ooKLI -J͔L5"6nmǫ9H:cy]CeccTrָ<L eX?o&=!]F4#>REP7"'y/krӒTpfD xw3UTM3qtA]$QЬװYa%I{-O[Jf:xsi+hmdL'd%1=Lu-pZr9yO0#Ym<)-+JRil^Ӹbq_bcń3g^ -\a6ٝޱ+XRr'hrB5!zҸΒ;:CD:p>DT:QCDGo;DTc>wCC8a1n3n*c9Heqg<=n@i`yg4ȈHu-h%*ےF&\)טr#=F|5[qҒWř.Td+ k('sĸSb-~`2ܞToA9sG9SΪgjth JM¬%
͑ܥ Y -xuFxly㋧&Z -j1olUn} -
#V]#ԝz*n݇#SOYXOv*>[rqԓ.֮5?$]0 +<< /Filter /FlateDecode /Length 4163 >> +stream +x]KcrX,_bO +[sY6T;i2[Bt(KL:Is/#ol\ߕd +_?u4Z$ +?>ЃXP7(`~L%MWEA)@GiygG8"gD!GRgc'_H̓*"(j]X)gBXy!/XTpz8ĭ%CFMkKA7V%8TI +iɰzb,6GVף?^a!H>5;ӏRB݃5g8f{(d&-.qm g뎄z|,˴pWP||1S} %,s'l@Yeߵ< uuv+@&9@&pVE696$*䵔դE\J6"ٷdvA-8)hKnI<@ܶ 86p8c&=R*
vT|[C!aky d3j[8`\N8:ܛJ^ZSb$wL SФh7 htao-Q5Ch1|"Ky=@xx +2 BeqiDfAcrf5f ]gfֺs )t?D=73kb +giaLw$ +oJdbiE+kB܌M-TFr +66sS([ylCPzC7Iyt"yS<lRc0es`io*/*S4;njI597iNE28'UK*.$MsqtA]1%eP|Z\Y>jB%I{OۜJ:o>v$]o3P=!cabYĥm㜶'o,6ly4ZilsC}Z%-VMX8;:yL,TkvONI 2]'15%.[],[=
D%ۺՍ>@ם$͙d2(ޫ\#, Kj[~9S_J}WcZI$jN}VvisQY|[qŨOL +mi9Q
+@# +ʁpNpGТ;m ecLn#z*aki-C]C"bUˬDŌWjwcapatg[W[ok3T4]M,9b>/%-s8DpCK=@G{ka#*sZl:xC5`ٿԬדN`yi3q(jĞi=ipK@:-X{{],#TGj7>j/Ҙ]T=l{\439ug쌏=1~<J?>
\Fu=I Cifa(廉|ڶ{Xz7w)VL<)1ŝ^GQA쫘/]9
iXfۜsނaהKmX}CqwlVv'thD>B6H{_:gI_"0Q3#Dx!:}#D-'+qߜA1m#qw2ǝǶNh(LwBvT'b]ӆK<ă7TAd40LQN#H<QSSִG{#iKK.pnj5&mP9$gƵd
$ +^'CO0VӍf]J( CC bq (LA+94}x +v>iexcb~=`ߣG0y~aP9 +T[/nfX;Dwzq\zqabJݙY\1;>B)u 7oYI{gq8IO3a=#=vnq?L4YsI.L魐hn،rD]wۦ]{[Lmnɧ̣R2T4y9Q_!`ij51%T6ZH<|Zd豊6Ń?WH^|L<CyzrN][W[~Zhq +Nq54zp_*S{FTgj:fNUͣjKect|(UIViI>JCm5џh'c'K3n ?̈%yzب
{>w)HbIuyfŽ' ߛRI\4]i^A!́}_te [2WG;;%3K䇦q+b7}= a`H +Z1lU}`7NdsLA#~@2Et(lEs_K>'{.?/]0]Sr6Esh>e L
+K@ˊ3|w5l@Zl"#0VKnmox!*9^S # 7BK^oxacEEkkEo+5U$+5V'" H7wt&C#v$=] m2WH@?ϗIߥ>Bݹ~9߬W>x1Ү݇#Nd<Ҟx';^hn9?BU*kзD373 endstream endobj 1036 0 obj @@ -3595,37 +3575,42 @@ endobj << /D [ 1036 0 R /XYZ 69.866 801.979 null ] >> endobj 302 0 obj -<< /D [ 1036 0 R /XYZ 70.866 565.451 null ] >> +<< /D [ 1036 0 R /XYZ 70.866 565.469 null ] >> endobj 1035 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1041 0 obj -<< /Filter /FlateDecode /Length 4943 >> +<< /Filter /FlateDecode /Length 4961 >> stream x=ɒ,qsL/&(B7ӼI:ٖ`] -Ujt
uׯ@
/O_|ȗ _~E?־8ח|~R=4(Y_CDz.л91RJCzG~֪e4zg}Oyv)Ў^*_Z5όz<ː(NRf4(];QOq\/_ -?~^(Go˯$0?JɌ- - vP~q -̅U;8/Hjp<T\@W Ʋ6H0@8DA$A:.3шo -E)(NKK;Cg -3 -vN*Pԭ -T3@5PRj(PCk -tqK1nLg;:B {?C0uEB%XT0:nQ$5G 5E -Z`ӷ#BibpGI%z¸3莍v3hBV) -/ HaI%o4%hsUSdVX;"8GowYcYc$Vhi!sC}5ՙJ]}dL$3(ah2/ƤP:Zc8s6n@EME<=!7u@rKaahajQz"쬨CpB4BK?.Nz%S<LGPnKhy7_"kHfmfyRboZK~wɍLIIIϴ#+xVHIFྥ_οB8ҳ!ۜ~܈"r["Bu2\ץe^lF."#ߒ0jI]&\9
b&G!аadQį[Tv;!ZP52ZX,0 z$V*
P(G1C2[Dr.*&+E`fGP& -TWxz:h|i2}ƨ{AFY!W}B)xY?!7ŝE9B]RAXP Vmvb@-yI@e_q;>Ȇ?6ߑ_ycZT)o21}ŁL u8Fx{L>aQby8z86~N4GmCu$ɗh0;XLAӖFkg56s15 ۅ h9PDYBA췰$[o.woiAO=g=mOf;zH֓!H,wC
\>!iWIAhN9OSK
ac -WvIf #{AIo{ءN?Q=\vQd7#p9(ѶKڍ2qZ|J5h3SlUm`l_(<.٥^)6sze9%D`)k5x+6scTЍD-BmMRxFRdBfã0O32XR`f73Z}w -$Z͒]
;;G\7Er9rEΏ 8==HEvo&i;"|
8'"ON
hcYE֓{fhYkܚ[kVB.7u8I'PjCeJڬǢ҅:fQ IvO1@\N=ܭE=C,چ#jE)n$L|I?lc[N5c͝:EMQRl -3ghWCMЎ;I7RG5 > -4hEJ~MFʎjp1 a!x\8(qϧ&tR9*Z8$*_#tj H5ji0e =R^լYt -bA- H;r3sKtKDB
yxC2WZ@ξ{Qzx1֨r\=#۷F*2/|SH<SFr?,w;8A;#2uoS=˽oջ} -q-QQ K?+;1RvWn $FoyWݨ_v5SOWsB\o!v^MyUUi`|iˢP'|PX>h|PsV> o -zݥ|,d94x/)!'.D8gPDEqGh)ݿ3%$- Us}*:
TOkw5jH<gi?qlC>Lh"0"A>9V -|U}(AC{YvC`;z -"y`Av2!?iШ!ׅ^F/.b拀nv\gO7uG~ܨ⋱e5t7e9uu(>XH!5XCVGkX>QSe>QTQ51gݶ£94u{.)^jڧ80KM;x3/
p rQpR[SY.+ף"zH:ߦjqv`fzS %CWQ8 -o\A{P5fZHdg/(>.uTij)d55'5AxH#4D"w-mʣَ6a1IJڇߐU +Ujt
u7܀/"_˗ߍ| "X嗿Q|Q/N +oAHo~}W))')CJRZO;D'H91FJH/ZW>?KU+\_9*̳JT;(eFڵ,1EGe=~v+iԿ//^~/ڠ0_#J9]x|"I BYrMӋJ +hZo˯$zꕓ2 +W_<ZG~\BsYt$s5:G+^\"HW Ʋ6H0@8$A$C1ꙅoi9_lSPpn$wJH;"g*Pԭ +T3@5RRj(Pk +t}VK1m̉g;C:B {?C0uEB%/{T0:nQ$^kkoGҾXJ4<#q3Πfģ;6"M̐M1ܭ8s +9b7 Aͦ"b W r`FD=1vV!8wQqr'iߒ^|bPnKdy7_&G^63yrboZK~wɍLIIIϴE#+xV*-b$;HF"yN~+߿/ҷ;
ʒbC6t- Pek
Ӡe8( +G>`9#B;"jhqwn)ߎӮ|I#Ź0waV#/QѣWDb(qG-U5h=N4>O4>cԌ`Bf#⬐>ƟcxqgѺvs2iW=1B*
j&oj9XۢwTGlmc7EY.®T&f~OԳ8ВI65?!ՊdX@hI}(<0,!B8?EA8~N4Gi.cu%əp;)XlAӖFkg5A6s1U
ś6 -HH#g%B" +2dŅVA2Vm#yۊz6X
fu0pOiz;DiC~nA"?49 +aXU +wshE{6 +t\I >5PyΈ\s%ΆA +DŽvhR*(K*64_")<x\Av|ʏ26,+GdZ#+e/fNv,ߴ*Q2ܢL6u-$gUζI=CPI=#)zst,2v{MnIoN5ޘ{cR%Z%Z\]RӒzhO<.RSM|KB/e +{oI-rs0.bUc|,9XrK6oPt2 <Kϓ8s^pB3̻0ɵ<?AEѬGp +8mf'aC_k +zQPMaYt[{~uu;2F߿`Zfgmj;wHQ|@֊%?[(1YFWT) +ZOX +[dWk#-נs"p݀6{@(^6+y7/{@hҋ{{>YE +8|$@mNϙ)[/uD%'=CqM:WCnӣ +bA-/q +vh +; #疴9f閈icb3!o*b](ՙ6bZJW/f3\UΟg\XHE@h{#9២7Z5(06.z)z +Gd,~rNlf[6SG +֓
+<֒/_
U{.fOnIM¡H^:Z ;Ù/4j5!oׄQS+y + [%# +v㡁8%?r^J@I=o$Fϐ]_;JSHK endstream endobj 1040 0 obj @@ -3635,37 +3620,29 @@ endobj << /D [ 1040 0 R /XYZ 69.866 801.979 null ] >> endobj 306 0 obj -<< /D [ 1040 0 R /XYZ 70.866 481.554 null ] >> +<< /D [ 1040 0 R /XYZ 70.866 481.484 null ] >> endobj 1039 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R /F60 834 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1045 0 obj -<< /Filter /FlateDecode /Length 4277 >> -stream -x]K$
crXY [>%c >$*ԭ=tuGQ)v|xW#/A-^A.N -o _IJYJRZO -- -A~|!01\@O4L=k::\2V(F;!{ -z{{_&Z)p'Qhӈv7yhڠXp0"<k]R g:{<#HZ/QwᬷIGɅ&c8ncP!YmeXomA*6PJ>qQK-Fhph zE 5VѤݨm&SCF5 -VQU0KRLki~JibFѸf?Oӄ뗞a'41ll}t/X[>7B"+r5@&y^u(y x=hc3+ck3Y~+gZ -icuc*;Z
;Gv[S.9;nHXSQB{19F4_fGӭ;&!xȭiLd^ʖܞ|`y8'xC] Cr#h -<b#K&GqNKv!wcA;`!aZ=[K=4Fha)_Sb$(uJdpIB8#֒#]4N ][#$<TT8T@Z8ߣupkL}i ?ܖ@]^P~^5V|r@NPo_eCFV;U%WW3,0sqQ.<i4,:˨3juu9+B+?O 7,,MswnΎEaE ꔎEc1p ;Hݗ&!照Ž:~FXk%un\
2FjLI8iכ4IPӨ7PgiGBqC[MQXes^ -OHe7iǬ|j$s4R\&[8khҽ絡i)2c2C-g=j-tB
zg9NnR{dE/ܝ0Jtm\Ŗ@W"ؔ}PSF+CZ_O{] !"HW!W¾$RG!ڵJ@;QiPC#ނhG66oEEq,|7ArJdc`T'=0Y#$X(&^|KB\l4K,H2!k)P
{wbdP~VmIkN[5}JB#>vji-\}B"wȃLRPյVΕ[5JJB#s%vjI?ih%= -мNuIrT҄Х -JhR8%Ah]+Iksj΄5 -p-)C}l^RЪymRak5ʭt%s6;11I -^Iu*Ύ)ٙˑ)yW.
_e#"ݼX<2pw.͔l.IO)b\#>J>r{WO:uܠ87l&CblH(WqnҲ\qqxNmjV`-ThwQGI*w/TWFu!7`k?k_6MMKw>E0*re)I2&;˞N]78MZUYN_
\7KdA#7VQ3_>*UMRU2um-e}e+"]gs&VFgt+Wy;+}[ -Vym3%s~w(NUxX -`[oI,y6,V$O(GkKB?`JddEML(<.ZUכֿiÃ1jcb.Ɯ~mrh5ep4~9z. C?kfaV -<XI\rՎۃqעk'sѦHzE\.c/V=V*jTRSxq?u4騛g:КIu$huӲA84'#zziy93rXVht{ 46(q!]_,Ea4@6Zs3E&ܘ",y"ܰscs9Ю -_Jv۪*jT$PӖ;'aBC=r$l) UY0 -'`h`w(04`rXk%<G!?\caܰفPO\
5:ͳc0hUH m;z`c,Y5xLܞ%049WXB -5n>} -UivVyu?'J -ĠSV])#4dmCnعJnFHo{4U%n%Qp9XH)ÓqR -~dTj@$U"<1@҆ -Pر
8ߒjsv9yJui
oIJK{T`нzHEՂJZjAhiՂn[ml[j+g9nI, ]jpSx{%dt2MWP6 -ChߩKN~ځw߮9;sܫ~I<:ۣPȒ$+ӰGiqZVDtSØuھtP9-kfC%$+%F7>#,}\됋nIu/:ZD<HcTLg)_hWu_}6^A*IWs>k'_5cۇX ҕ}x|pZ8a:7㉳'Ϡ3:cOޑ6Įcvl:Pyt$cUo<:i|ySk<YZ?S_愔)N+>w?/D +<< /Filter /FlateDecode /Length 3609 >> +stream +x\Ɏ$W>EFp
t<7A'ےXw\Ȭd{Ke%3>v|xW#/AV_A.N +o $7\~$%|/% zҠgE>}DDÀ._9)>rUy4>y2B;Qi$kD<Go<gl*)Ql24JkW5G<s'l\|O=6H!khx^~>Nb! +oIBz[$ + +0ZXz,xzo00xQ*L#`d(مfch +J(Zf[Vny[w\A.k<8c|v$twt҆Si梽7|ӊi<lF!ݑyWtw@iE>f>mzOќMX5 (;JA1#j)`'}I#BӚ
P
^~aRow%hxAdB=$e(.v.Iv&5==ʬc,c5?q=wu5Y{T+M#m-ldŖ\4$ħ,JUgJ;t?r4q]rS/?Gf[=yo1K"TL z%ƶUM!TJ^t%lS'E,-_+ +)j|ޘCubN~K|_>Ǿ]ɰ`c{iqn%6؛(z+BQ2EIOY㥞U~\]SDe;mģ d(Q?G]x\R<ǚɑx\s5;!wcE'`!aoi.o?Smq\%]\Za(HKZ(;;SSVK$Pd' `ʄ.)?xQtn踥G
HukaqF8Ay*-9J.%EOi_a,wWorZ̊l\2%WW(I<4'24~M=m]Ͻ6T^h+i䆙DLqS9ɬQZ1q:eb5] (lFb0K,!"E:'roW4 S*Up,K2Wi{U$t?Jo5bR[B[q͵|u˜|i.U<P oli'Vteڗ4Z|nSfOئ(iF939ĚՀ\8FT^L< +|CnxYfÞ|l#|rw`Uq"kZH+D\PUcM"/^'{bu\e:P +}ӄWQFSp*4:v17hǎ۴5-KXUk[Iarojʖ QʆRw-jN`MO/VlշR୩ޒ-U娃U*ъ*ZO(h +oTpOF1di(ݭY.,G,ԄFVVMn} +dRMqDs_>E7POmOhK*Y8bCNm+}4Q,3ŢGfW̍Wt
Ė'wShd2ܹgF/ed,u6_i̘Լ`'3S_4eIun/S[2*VR +B-U;v_Z"̶C?<\^*w)O.}5Fڒom(4M +ߡhBq7"- jW)$c 7)Hm!+ZJ +r-_yM|We{euf_d4rpG~8<rUpSp+~EZ +w)ݭL#}w}ww݇D}zYb$}J㻇oݧowwpQoOEoS9].9~5-_E` endstream endobj 1044 0 obj @@ -3675,19 +3652,21 @@ endobj << /D [ 1044 0 R /XYZ 69.866 801.979 null ] >> endobj 310 0 obj -<< /D [ 1044 0 R /XYZ 70.866 665.155 null ] >> +<< /D [ 1044 0 R /XYZ 70.866 665.106 null ] >> endobj 1043 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1049 0 obj -<< /Filter /FlateDecode /Length 2081 >> +<< /Filter /FlateDecode /Length 2567 >> stream -xZM6=DHJ`l6[ {rj@sh.l;ܱ5춇3H=>~HzG#?^+vnFk|ڢ֎o#}}'߾ާ1VkMo:F-ǿY7ƿ. /3:3˵rY kYΙgY
M9uik"(GqN##ۗam{,FDhM,*K8 (a6bkOFƼtF9C+(6Q}!*S,yʈh(t&q?a$&j}rKzfrK $C3fZK݇YcƙB uLLnlzӅrլ.``
N5be& -R]"0Xf>a!߿?ww`(0wQ1og{-TN7N@YLkYA 1ClҲne0 JB!H -MXܼssJ` 7:m+a!qtRX)lnO$ uARPP -VX]53R$chh#$Zj
+0=oqs~8dG=4)#&XI:[' ڰn - RZIL5IVO~s.
*FWSdRMT䨽F(aM +x[Ks
W19CjU8U{fn[{JI2%? Eijɡݶ) +X`2.̨" +8ҪqC{xrͤӑ.K-M +t/kqrc"70[D'r0##*b!jMޓV|TC?x~_|A+4fIϏ#KJq5a]r}Gy mD#I'3#{T*Ir(]7KUytvs)-I)bm^sUTO0]qB5?ڕ`4k>W8qZsGX5MΟď)ef}̭t%.5IߺP*Ԧnr*^%q.FRZ4x;a/TPjeTߑUf +1JF>S݊>T7ˑg vta|zZtGҁEo.:g[[k\:ed&#a>Q)'*oWixjMo'im&s7x]U7<BnPj+|rRJw&٠K;(Z¨vѻluO;(ӭͪA`svpvPhnE{2j;84vP6^ƴ2\j;8v2&jET`%nnEěěonߝyonFw%^rYh)ⓒl:4c%U@/s<[5,͏_]J8c4]yaa^J&{f,uf +Xs0Pfl[uv!FЉ!*ueC6FB8O)+q%t F1*rRt}Zuv)FЉ) ue +N:$L5"N S@[>nw齃[H썻FɡqT3u:9ւĝwuYn-rl 'Ѱfwc?øz7QtD52삕:Ԩsl'Q endstream endobj 1048 0 obj @@ -3697,7 +3676,7 @@ endobj << /D [ 1048 0 R /XYZ 69.866 801.979 null ] >> endobj 1047 0 obj -<< /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1054 0 obj << /Filter /FlateDecode /Length 2152 >> @@ -3706,8 +3685,11 @@ xZKo-9We[Ĺ n4+``$6}ʯ8ݓ\e,N:G\&=A/H M_?;u:Ee LzÃVF;;ioYLhc Vq^PiˌhcfWnbS3ʓY#Y
߂E\vKbm?ҷ4RAmWlwz+h4y,Q_MdGv'鞷=?=-X}XFpF^I i#^f'b}$V1MҢ?xSӭ.l GI 7B.ӵ%m"y -wS}nKv&uveWFEmk(63o%XJuZY4 -B*!Iv4NXj@F|}(m=K^fD:uʉ'UE1tA7q}B}#G].l)JaǸ/xAXqr{SMy<QBҭn[z5_X2Q$]{ǁ3r`6q# D4o7.o/M@0+VAtv.Kߔvww/wJȏ^Ֆ2{5zvnn1K]p #mehsg,* +wS}nKv&uveWFEmk(63o%XJuZY4 +,pK&Iʅ嬿:R,dbzjk[/ӞbKs_nFP1V96:S\ [;l?:B4#ƌBvUMl+nQl?m.5#t[eʋJw{1'SR/nL
+%CaI,BmvU\ +u1S+9V- %N"Zg^T$3n9mfXņqKady GI4)ʇ#@G[I)js\Jw1<F5|; $ Fۛ4\َ 0[-tkƧZOכNF=wEkk.7^74,$ϟb+$=0.GC^èFYdKb39J*qlRs-Z^Xjc+=Kmz2WpŧrbW]}JA6+>R,
91lBuc罽d35Qazo6Gn B˶B*7vBuT8wv%$bI?oĆn`)8~t z
يC0AEX)udnoh"f5k!{PPDQ[ +B*!Iv4NXj@F|}(m=K^fD:uʉ'UE1tA7q}B}#G].l)JaǸ/xAXqr{SMy<QBҭn[z5_X2Q$]{ǁ3r`6q# D4o7.o/M@0+VAtv.Kߔvww/wJȏ^Ֆ2{5zvnn1K]p #mehsg,~n endstream endobj 1053 0 obj @@ -3729,21 +3711,19 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F55 774 0 R /F42 792 0 R /F50 687 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1058 0 obj -<< /Filter /FlateDecode /Length 3785 >> -stream -xɮ#>_}xY0`F|37ç$vćOqk.n%YÌ^/dkH~O?;|'ǜ-O}'?j}21qs8gr-]Ͼcǿ4X?kx!c}+T8^_-,0adW=D8CPh(FLJ{<ѠG@$R;~%.h'/\8ԗx-/\[LiqFN0Զ}E["<z@Lo~v.iT= $H˄se=^ O!`$B&M$S 9J,rɳypg[1GXxj]4˻jϫ1uF*0, @sI^<c.<*+ws#ɲ82C\7eͨMj=x6J)-8sO?zwY+xKLI<!2?O1yET+@fIYW -!x6xȫl*ke|1d$APRY~DIڵ)GTR}z0ja=E~UЯ~f&Ū2!Dy^cqaF- -l+<9ZI߃ɑGbLa_?ߏȤ^cqߧHizEqٹv'F2wYрÚ6CE\(f% =^BDroY0r8
HzC/%1)."`:8##dGY G"*ńGY'Cb0[".TrN仇H"WGH -DZ*O_IY
=#BJ
J%*/n4}~ȌY3|h
5ͳ9閼u;;9D/eYVR+ -R܃n yz&HՂ1cRy7;L2)GΩ}IDZ}W4Y{d0-q[~}\|9aCBCŜ=ru/r9'9Nfv;
w{lHe6bͼIba&.Լ#8qd229Zgde/Y -Y_QHݭiGkmϽqZsobR<ؚuv)|r,绺^ɛze-Ҡ-|Tqzߝ"ful]bT.JqmhDƎJ#y/l\V}+^+hT
0拯^+i{u'V?z=um~sU\>TFa |zݏz^ RzGO^ƕRPbV0h](1_AR$6aV΄c? -V)hW#s,Y~pQ!6x8 bkb 1FSQSnJ{\I!3MUҩEBJM&)Z)=^R(kUVOÔ \^^#\4)R]rKj#vZgmbbc\9Y6 KZSÛrj*8Ha#^>-}o -AoɼQIߖ^PkEZ/PH$!uf]NpUi?gTI&:H)p@3imYy(v@MtIE %?Z.eXqkQNe;r*$z]Y.
^)ѭ'"S<=^7Wc8l'*2غO^jkH^uU4)!#THO~+tq*oC -ROf}!RMd+{kMEs<ѷP?ܿF+S?{|za6z(
xC*~ŇR(M +<< /Filter /FlateDecode /Length 3783 >> +stream +xɮ#>_}xY0`F|37ç$vćOqk.n%YÌ^/dkH~O?;|'ǜ-O}'?j}21qs8gr-]Ͼcǿ4X?kx!c}+T8^_-,0adW=D8CPh(FLJ{<ѠG@$R;~%.h'/\8ԗx-/\[LiqFN0Զ}E["<z@Lo~v.iT= $H˄se=^ O!`$B&M$S 9J,rɳypg[1GXxj]4˻jϫ1uF*0, @sI^<c.<*+ws#ɲ82C\7eͨMj=x6J)-8sO?zwY+xKLI<!2?O1yET+@fIYW +L<:mds?BA~D&uO>-GJ+Bh_;6Cg* +2B>ISABhOް!ckb9k'}QW3;Z˝ކĻ
wW6$2X|Hg R1af^$r{j^K8v32D},s" Cb\_Y>\9$c:|ٕ +B'!'9aO4&3Cҙ, EGm7Z2{1!1e:g]R `\PR2蔆E֤jHZ5,EϜo3d"] +wT-7%ʄ1]_CkUXD[v1qb;$3خsƿ,+¿Վwp"!&,دIDִ#jnj8ӌ{71LjK)dlMZ>9l]]M2\͖^fiXSNMX@^q1^wcz6eQcG%?^+>oW|\W4ҽa؟P{_u?9~۪K^K*euްz}TG=z}vz⣧Uo kEBODyJJ)Dg(1+Tb )PSxQYgks+fxvO,?ըIL<ABOrAt151#LkqgHHIr=I$ѐ&*|T"!&dK)5W*+'i~caJLlR.څhsn.y.b;6 XK1ıe.ZʥͩM9UU$ci
Ѿ7Fޠd(äoK/
(IV5LI"RC-{HnZ]e$Ij6#.1(|-i٪#%0U RJ6LZ|aV~EP6ݭkR)98$*f ϭKbY(;DZSA{ +p*IeAֳKW7|tzD@0/cg{.+W ZWh}m]&MzHғ_l +2Gu[{Đl7Sc ?ij\GzH4@̶
\|
Dfs)3XAՙG~%VqXA $@(EWѺQ-e>]aꖒuهĸ 4~M֝dS3Z ~Y[P\"S*H!~{,iwHdE( -WXvz^=hee +WXvz^=hee endstream endobj 1057 0 obj @@ -3762,25 +3742,24 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F42 792 0 R /F55 774 0 R /F48 640 0 R /F36 775 0 R /F34 637 0 R /F57 799 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1062 0 obj -<< /Filter /FlateDecode /Length 3621 >> -stream -x]Kc|0êX-oOI%?UwK=̪[-fQo?}շCgn?}*8w!*?jiMk
w-i-_x{wg}6r_ krGں__0dYO?TT0oڹ<p֓mm]nv1
SKנ%J`rW4]#GOBuu%?U< -wh`FJ]e)a4I`,iC - -8EòF&L+lEMT,ԯytF#F˼AnfGM*pmq8 -)Ot}t5u=x~5,|Ѧ6FMI*]ٚRAE#~9&V뚡d -X"S&e/XS~;L4e\TV$RLz=Ly)i$K!4
ٿ -le=XܬҌ.b e%(0B[^G0-^&{OúzLas-vAV&J 8#JD1ǰ6Feoϳ-_n;{75t~}x$3`E`@$JM:2P[/1A
s
igR(8@Q9[C -6dHBg/Ap/
Xfk-G#nj~ڏ[ꗱӁtA|amJr(=_;1n#prB--l.QǼ -=.G&:sz^L25 -b}Wz%@wz!0U=¿>e%ud(X֏칷c혼x~q5I3w8hq1څI;HA+h1ȟHbBVl*/I,ķvU9;6@2MʑHUy@w:G+RT'%d#]#L{ɬǪz3egY\'qU.1 -B鶈nԙ-~.l]ds2e_$!A;b8O:s#fdFmg#Flޖ!nLˊXw -c57&i⯤zO#{7Բx12p|nk% -5 XD60V V[i;y^r _Ge\2|$K_neSRTXs>m>=>`g4]͓q\ܾ]|RKC
CCjS>(_#R:|d+e')_MdXyQWBvCPERr0"0t\446suW"ߑD7.*x&0ʱw̪YS]V2TB5eY"RH+,$M`ϮIІ5::sEsFrk%=y~g(
_-s$ՐȦpĊlr,6 3kd3v7f+&'3*)W.O8R'@AUvvږhDhv_B0wQbYK8W?W٠v6[$fȮdM>+mɯG~EF)9>SɆr #RWɊ)p)BIipLk41v-Ceorʒ; -"m*{|5TFI%^P
)|$τm:[ew-go[tWcxPb=>oҝ6ŠX
Ne -WC[;VˈpjY)PJ7Xe}:g,fLQq)bx~tezUCMJ2
vZ^v
MA${{%O.aЃ%*M%ҽ٣.gm9W>k3Ow!ɾ=+K_aQ$Q6c}ED5Ɂa}ź i5}:2h?xY =gdzYp< -'Y,}Kh9k^ǎltqLW|Jʳ˥N`>tjϾ -?&1,T<a_7WfyqdCdہlrzQG4we,:0Ũe%{r[^KY>^J*)z-9%ڱ`kS֨sXZ~g6?,n:IBޛ>p`NA8G; +<< /Filter /FlateDecode /Length 3619 >> +stream +x]Kc|0êX-oOI%?UwK=jZ-fQo?}շCgn?}*8w!*?jiMk
w-i["',Ox{wgm>@~/m厴u%t`嗟~`@sy*' 3%lں +T+FGc3:AKp0<i&0z#ӿrG eCN7~H ^PT +>)NL73VDJÈh19:6̳)ȧ7S#DeoX +kڭ/Q ~+ tO?"0-Er
&.~[mUpFT3\V2dwo.0L 7McYLzOxW_Pš,$04fZe+nf~W;5Z%5Zu4{8hR3or.ƳY1^LUϷ,2US}*GƩOy`0IÛT^{FR+h¦t<-J{װ}R FWo7&YtfkJɎl[QkZMV+0b4fO^$E`bO2=l&qQY=H00P@/ANl`g6d+r(cqVK3fؖr@ignyhxhwwO?-1y̱OY{(X(a_%ot]=~Ӈ|"rXRMDr?y_Ùm GYqg +-V@s5t0>S=[9w_ +o03c؟'"zd3$Y ]ܷ yWby߭A|[%ܣ*s]VbqYHremʞ{k>ގљ-'X^4ss;Io].Q$&dɦ"B|kXSlqCj$_Ejts>ZPArZ|/5@uYM6="ϴw8Ο̺|!;Yvub\}.$knF9ۏxeyN6'S6O2?;A,sZ.37bF&kz;b&Lmi{T` +x-x7 mB#Ke5m!z +8+Jg42k~@-K+/SYƿVaZMzly6;>}x"iRMЭX#갞ЁAdmb%Ő{ΐ7m%)u^&:!p%CʷA^6%EI56N#^AxO<w,0@k04;5y+ecgOR}AUJފߔN& +q1>u5,dG@P=eYd++E:*#b aJgH(E)@Ck0WPw%yNtC)ng{GͬZQ>յh%3H%XYS^ثQB:,t]Ap` iV{v=NR6ia+4G[+Ec{=C)njќ$tD6{< Vdc)fT^#;ל'F'
`$OGU5#XQ6=auQI +x0$wyl=ϷxLwZw^D(Fݿ'rlC`
u'fǨ\¹ +۴Y"97S^Fvu%lYImK~=+0L9J6CeGϗ*2NVM]XL*?NZmL;eBFXs;lA*{SaPiSٛGCa7ZMg/4RjkuoNa'#yx&|o +>-gmk%(X>{ۂ8ڶ)}[֗LWE/ƺl +'9Z,1o] +#Ve1êJ +RE~ْ'K쮌aM +GJB`{S#:7hѼyCkq{7Y YH~lDea1;f& 3{@ڟ˥`mz
p}8hq-XO湗
$>N+z#b ٥TCfIcI,nZ endstream endobj 1061 0 obj @@ -3793,28 +3772,20 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1066 0 obj -<< /Filter /FlateDecode /Length 3321 >> -stream -x\;+&X7X@gel|}_duOszgW -fgGXH<}=_=}yӋ EO_~@֞B"=vAJ(,%<Iio_?(sTbԡS_*}A|^^ӓϵ$秏
ڴyϑ -z4e^G0V-4O-eAR+ӟ_O+˻.VH|{˵QhuZ -@Hi-<Nb4t|S`0h˙;65N"uDj
O-w"JUp*5eez*[JnӂJ`0Us\nѐHѭx jK^Н3{%r269}Vz>6GɫF
FD -o36 Yv?cS{) -#*s<&ayVMxI-歰5bV;0bQpr>y&>RwhpB%N#End
j׃82I1.W)p$8!z~z!sPTi+ѽ%09vOQSRX臇l$im qN۸VPgD/gb99WlPIseY:dq8ć㨩$L~珳VZ(QkMoSO(4.3=5< SD#)ӑD?$cHLOea"d%_9T:ɵX<>Uϔk~1jRjXs^iJšbWf:*0_K;t9y:F7I]7C͵cȍ#?_駛U.M}UqDqY0\ịɹZiՔk='}~FߦTs{J܌* -[#W:HjQy;"xV: ^%P蠦u}L:uڨ556 Mkfl)ak81F3}V?ohcCKͲ#^m2 -`QWJɹNKXxYj[WhvF -vhR <e ieMRb -U $Cm<L0)b1em
r -diuss0 -W'g捺Fz?#^ -7#,$[>w552)i-n5Ie0)nb) h!I쉨zbXv -P@;5TF(w4qɜ;@QtONOÌ>gB?HSRs:)cdCVf4{&5[u#`%=!فEU.N -$#vJU4$EXu$.Z潿$%ٙ?0$CjV%my5H
x$̈ NekB2A2!;ssx.99t^iMr)YEK(9 bJ} -܍W>MdY?W(7#P~M5Ňve@W[p(a8GY -f:tQnO\mu䙷w%MLZ· U&C+h#)^?]@8]ѲEE+t,p/8 {](,}y"n1tvۚ0V|#8x=y%IuNOϒrץ>2ćuzbi|A~;>c9\8{}r{_+BCvC˚醖ǠX^r/u6TN%qhoaN{ՐOmCD\J^aٌLYvQZ8T[Bc4 -p0z7i- -qth2T2]D{Nۜy>kJsõdpz=>QGƮp)r)(;G1i3 W4㹃/_I'
|hN5o|kpdZ;,
7nk7i
>z7%m3PWD^)k
^$f>7cfĨDR2qsWěS -/qVe9-k`,啮%60و;lV%+6 +<< /Filter /FlateDecode /Length 3330 >> +stream +x\K1s.
+z4eG0VM4O-eAR+ß3l'D+??rm0Z!~6DÁސ0*@EQ5tǤ:fY5HuX$*Nc1E-<Nc1wfsz)u@R̍'"~#s\Wz\GZXVK۫2-[%=27x:r3FC"݄F7K=&-yAw7/s67Enr4|=l<Wa; +N`e1]3pэp4Cͪe1\[cͪIm&>Qr*84ZPU(4Qp\v.״j5>?u#RC*9=%nR +, +ܝW>Md]X?W(7#P~^L5Ňv5ʀ@8P>.q3 +$O\mµ癷w%MLZWA](LW:"`Z&{t%q
EE+t,pO!^!pQz]7ADbvE105}b&rH{1Bq6{J샲);>+ޖ0J|X} +,lI -I'bp}k_tC
1f
-kZ^nc={1aZmJӰ2j_!B!ۦ2+`RL❋"
Hki&PqIp9+DPɽݤ<+LUχ_PSp픶9|5nתs${|}s/-S-KkVpϥ#be9'DIrD7~=J:lCkvLշtʬp}3g,[$*h -fjq_cOK7ݙ=o1ջ((.0mUzEn;AqNBPvSM0z[iD[M$.7w%K9lqř\ +̛r5kJQm};eN5]*,e35VL6ha?, +b +8ZJ0Ywe$?Q| Ns +Vn`%8¨Hy?j7NZ/2n[1,.S +4iJD ^kP4Ɨd*3j:d䗾s0-AR endstream endobj 1065 0 obj @@ -3833,32 +3804,22 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R /F48 640 0 R /F42 792 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1070 0 obj -<< /Filter /FlateDecode /Length 4138 >> -stream -x]KW1:f߀W5[81K~jӏtnbH˿.{5Dho8)烐Hq壔)YJRZ9GO,6~ןr_ߗw kO>i3?1)~(鑖 Wy{qo-v15}Ze02܂ hu"2Q>>>HkK(syj}J؎*w
k/$@<˝+šmV/ ʪ4@NոZ 6k2T`02WG`Ild6T_ftbN6uA -5Cy&Ox' W,D]H>]f3Qou m3T?gX3Ӌ9Hݎ!sPRR#u\aǰ.DpF1EUQL~*F>(]Ie?2u^ҠGVSN*Ǟ8:C:v+l+vWT%?eh,Wl6L3Ter<:&E*[R#S?|~єl -IQ 7ڙäGʶsnI|q3KzdjкMqF,pn- -&\8~n{%oj\X53,>ɗ$#=A-Ҏ=H`4CGq#䢮̪UW]Uu]
1FzqQ#uȊ +f +S6~gKfw -L'=v -sz -ifoB-OptK9<Ɔ@s;,O%nNt7b9MK>dB![c!/Ix J JM\Yԑ@Cf -g[^Bbc~}~bY/6bwdYP)y[.hqdUhZ~2O,k'wnA碌d3dxWEdY0YY*lZ[6"m2QMKՔA#_II$XTcCHM #'iA~I@GS7#J]*7GↃqn("Rr -#ȇe$v$<3#iyTQ~;# - 顧3l(G&JNpH}Og2j>64|CZRiTsHkt1Y~#^^ ;)QGKŅf=^ -_(ig>6/= --Wdkm#iE\-;-9I%V)K?k侪.Wmf4z/?莘k߭iCkMiS -\SWBKpaWzfsXRZN![cM1}\0mEv;h߹ȄN)8v|+NNc:42^B]_]kdUU<fT&8!oObKÌ̼`>O2ј -ʵYͯ8LC=k[Jniz}mq_\^RmGu07 ~rB
fvۧ:L:1d!S8--RXpUP 'Mjiruu`^͖mΨ1$1 - &=1(J FiLokQFk{5qVN-GVK71;c*D??=OpF=Od=7빢euwtVP)FHQSyr%#q_:ٖTдr{Û7k`c(+S#^IgCk#TGbwnF5l~ݤE0*C~،n|suZ3R9*5+ښ(#PZu2 -p#8YeXBJy U+/i - I&>jQhk=T~y7=76l*u㧜 -Pidvܢy!m[7SkTB MW
-2(+ -nj˰]Ql^5YӎmZJ-Xn#y% -Pؘ~Tӌ=
D2ir۽*h-edBkHC%X:KF%p@:;*3wTH{@L(\@>J%- B({ośNƍjo27wdJ; -rexȆdmӳfHis7E -"/gǟAhnF:[%GGGiץK=M~'[t;o!=f}Lyj YjJZFAUoSn-z)1%::ID;YC7(0@L -csz ͷz\ ١#^wpqx߈
4\ :QO= ?f/eYYE-<̷$ݓVT߁:c3.uzg35Mw~I{s >mdzN.XpJ<7Ez -H|;hrZҿɖ72`[@ss#ȞXD#48; -Ta6A6rQ!xcBq~ \* }k\ϣiEnh|ggs[ +<< /Filter /FlateDecode /Length 4140 >> +stream +x]KW1:&o@X-nOI%?U|5cG#F&zX,R4x
u;_XΜ1<q#=+Zrn-RJl!}k->1"wͧ}~z
лƽA=_~F&ip巇 +)3 +u'-iީӟs3THkS \LŤGsnI\v3Kza8e?K;:BG,ذ-I +WKcv~{Eoj\7X5xݿ->kM M}AnG${0#ňOCz9fUO.1=h38TD-c՚UDͰiNX6ˁnLJ68] +x,De#.1<oiv| +tWf.ޞUJ`x1hKuY"jѷ\H_h- b^{Xie.?uS"?2Bт^%e\Che!Jim%>,]%"D6TJʠX/'$@b,*Vӱ"IÄ `C݂X$ũDH&"{opC +'rCj=ܐF0=>9ar3ФR߫Up~B@clB M$ +GHgJm:A<0Bz:wht&99@btHK8R}C@<!Q3Rәv6ʅc`dLk/ +ߩ)O2/OY'O $"צd"9l&(^nm膘
-iCKMnlUC#c쀐K58R)_)R"YcI1m\,0mYv=Voߩ
HM)0v|/ԥOc2d<B]iM[$U +M<flTU&暸J1!nOԥbKn̼Ig.MphLDyڸrV+%`>֖Rm?n-.%-5Fmk{+z GJis\$5,gXray)Τ]y[M,oij"Ŗ &1fҖՁ~&N2[9-DK肘sO(&.Pcxk[g6\urTM\95 VI-D_4OPdޫ]g0܌7<<J\߯Ң~[9\`n:+/NQcyr!!q]:ɖW[CJ4o=Aa^AJB8[EZi&C*vkgڏ|uLko c_vu/ +Hjيf%#,xfƩeԽi)СOPη YULsa26iXdW(_#1sp*H0?dzG<oX`F]\.:O$O/LLJ'qˇ5T~ą(\ '+:3+Ō)Yp#QrbVoC_;. cv<W b{tu^r3
K>yT!&7UBP{U2;}v*ur+$2J!_X_d^]QH/"3{DS`WfM}Cۺ5QڷE^ +^CևZQV+8NΘ^=ڀ$+j6OݫVG6=ʓw8R1*OOW*qt+5}Ƞqd|\`<0|-6uӶǾT{&QP8V˭3#g 7tL=5ۋo:~9K*RZtᗛoVKo +I7OBJ7~~ LAJ͔Gkw_8̈́/
x&6cݶcy&aK8sgtGA]*-*7{d +eak*eY:J'N4P<ݽ|œ'q.ؽ+y`SȦmewh%s9UP'4 pWDi5.Ⱦɶ<tGPO-nP7&%{xrɿĮ=hIFp.>9 _+O8Z'%YfǺ
Gg!
5/I:qX߀X;d3vv~@Ι㖦[7hQ[GTp={'M)k)4RpZF7Jrl@Hq.ْ6ko]>a8ja`m]TCXIDR!yF1v endstream endobj 1069 0 obj @@ -3874,39 +3835,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F42 792 0 R /F48 640 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1074 0 obj -<< /Filter /FlateDecode /Length 4385 >> -stream -xM~#4_Uʷ8|Jb'U!损7
/yˇ>K?P@^I᭽8zORRoTR-_>j
_>:ŪL7i,s_5>6p__|MϘ~Q=TPk\r.! 8{z)e -D̉=eY_.m VH
haP_E?/?@F@oTESCqF!c4g5ʁ#Ba?VwҷvV$f;kIyBe0кJ#l=L:67%v7kWK!QU娞Z۰LxK<zx۵ޱ<@Y:ђtפ
=cf)-z3Diy@@.Y[{xQ -C;@r(c -SWa0%c -SDYKa*T -F0#pLiP%tM+яP.ڷWPn5 -#Ì%d>q(i1 ۊTXvc@EhtBC -@ -R\f?bC-_ÐYЧ2R8ڽ$! vd,ۜi
SzC.g'' -p@kTz>5*@{k
jpF˶0jDBwaZ:Y+OSAGy#kM琹V]mykd~5% 5 Y4O*e7mz
Z<YTIz#jw#ʱ0PBFy,lk`m)mGi}jMԭ-X`p&a00"X}(D ©tje(ӘM|/c|{CK -TyP]O}ϓ*mE@3B;MT|:CHnS&ƷM ?HVm;/TM<F4\-RzDyrr儳CbW
qwk3FK;P2A`^c3:װoxt4ϋ͔<ĥ7fOuqעĩϙbƆ:9IᗑBFL3|T@[>e"~!>vDIrgDfk=x
SgŒ<Uz)ہy0dxal:䐙f+#EGd!Mԫy -AY&
8-Ct}ChAsvvk@XCW`j^9pGd"WÌGyâkao:QuPԺygԺ愨 -۱NՓb#nyx)WMTm,oNH(@aɕk1\1O -ЌX^9`_8"OB}µ
hﻵQAFɜrgW6HS67{6nl 6-1{`;y͎ګC'̒ML -ĉ)mV\Yŧo?דxlPc~ĭ|b0lAʚPļfɭ:Wȳ8X XG!N>0ŽUd<J!5]J]E0ݟ9n :(IֶG#y8ߙ9OAheK|՚h8zќ3`t -y(-9v -?Y ->fP. mHߒUּAc'nffls9IL+9Ta2`غ*b!T@D -zT?oQMؓt>`f^leFhw/Q΅Dr5%=ݛ}yߣQĕ6 -ŘDsx@qp9pךz'DV/7αt_\hgOWZ`rBh}B5B5,O?, -͋s;w 'A;p} -#Rr*oفq/Nfw£
we]ǀY"M*piK67|F:|U0<|5 -XVb -*aS -'*] -T1ygج@N,V(#HDeVć@O9ۦ"Y!iPxD"5}k`y&\Y&e8IU71 {õ;T:c)24aqwKX*w!#$FE/Dc"C9!õ)w89z1<2_9־|'T[2_MKer|*W o!2 -YtEZe~|i2ZVZU@VU!TKOUlM/]aCbÑ|u]0_Oij%hoS3'Y'6evĮ쎍tfҏ'w'X&|}5sp2Cl[\g.||8ǒ}t#Ӂt4B{+'ѳ[J-g=IY/bQ汯aVᔸ)O:v8Za!#hmDY[)9kXF
(3 T!yF(%->:Cxws -'5sq0:||{x}=*HQCi)cݍ(x'9C
.t?G&p;a] -A փ>}!(I"}H6sR!\&Im+d Bas,W\Dr,bA -k$W$ؤ$v<ơ -/\ٚv>UBHĪ
+<< /Filter /FlateDecode /Length 4394 >> +stream +x]K$uXdؘF,ɶdGXL +(m=[]O2a嗋n%`?P[{q>_/?~R-%|+zҀ +zEfj@Fl(Iwҧl&IPOmlXO*+z@*Oұ(atoMZi7Ⴚ5j[=ӳ6
B`!8=C%O2$C~nz;`
|ׅDY;ђt״=Sf)hlGpн%ot/\l={AڌIi6Wp+pAzDPM~FQ@h֭[RD^ƌ\H2GAsdp (yZ2OHӼCCh|wz{(P~?D_~c_|9\rR(0
>A
$cuKSǺױRoOV\=r.oHO1"m [X'E3
Vjc?NQOS[lР;2Ê뚴%2A`G$-٪1 2V\tۍ
Kt'5d3[C+@ +1)zk0k0gL b`*,O45
N/l0qxac8AJ״q}~ъݭzRVm:tpX@3B90Xpp T0&=1ѐP5@6&ol&c +fKpR{q
b]zXISXя`wGxgZu؍"(9ZhFxd.J5UE +7)0
fJX7ArЎj;A06V4R5ɠnHrxq34Ib +42 gİ&nlV3P3AX5`L0䯱/Qk'5
yWR?q~⍙%~]BEsQ,1 cB]B̗QBN L-G2$-1_8&H&{=#5i&vF'ЊUy == +)m SBja>Y@;zGP[w@AƯr*GdXu( +
CGzꮧl +14p%?O?YT_Khݒ9
h94n\
!5P^n0Īմ:x20N!p_"W(nz*^>!:C + zFD/hZ/wVwJN8Y5}'+j,O;YQ +`[Y{G֞@T=3muO V_nzݪOKU}T_czRþXw~⁎ 96wB4GȜrg9 $' +Zqu><1d|9>=L +aG>03);.R2Ƿ9W.1},"Ḟcc+ +ܡG/\a#G+n^0Z$H#b $i$\@ZwIkƲ#550f@'К]T yl@NeK[$7?97$"<hdU1$Rk,)0K"|fEMK6QIz˒nDb
_SOF糢WƾX<GX +fg]WLkk&zRMq-XC2jmso? +b +j=*o<iQErAEÌG=<qO&g@:xb#n4\:ܗJ>{,κ$3]Y!:t[AF^sUO endstream endobj 1073 0 obj @@ -3916,38 +3863,31 @@ endobj << /D [ 1073 0 R /XYZ 69.866 801.979 null ] >> endobj 346 0 obj -<< /D [ 1073 0 R /XYZ 70.866 425.096 null ] >> +<< /D [ 1073 0 R /XYZ 70.866 425.086 null ] >> endobj 1072 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1078 0 obj -<< /Filter /FlateDecode /Length 4269 >> -stream -x]Kc|X* -ʕl?\]-sF%Q,
)u|Y ^ -VG~GRTArZG&9R^ -\21-eNL 㧅AI(K+?=9=7}F9J}c>8]ɽ/^oZ;<
ڹUJS:t`$*y]f2h%æ[ ->]#wc7od|:a/A -ȩ#^U_ݭ/x2 ~r}LXzw_DAG 1 -rB}<PoyܬL=+ӋL5aҢlyx/VC\z=;r^WW҇1fs.\g-iRriy73?̇O=N<<]y:գ(
O3L2c?
QR0 ΐn0bw5<=? ePqr0m (4l#$hzx>b 6͎:C
Hn>_.t.RY4yg** [Oꖳs)=DRC=gDǻ}*3QudoIo#,A5$@LM>5*˻ -"%twpVY~wtRVsus]>v)zm>5,!_o|-mk97So2$&;2 +T:' -
-nӮm{yQEzo -Ţ4҆^?s=81+Ƹa;6`Ml4~!ӍU4~+
hG!4 -p+qv;EMwE^"BIԑPn՛5ս0\
.Uz. esSpl ݼ}Z%u5$9N'i_I;90K%KZ?:]M{{Nz;;LXx!¹V%$Dޥ>ˡTO<-||vǐt,i~GäӤ̫ư,4RwΌ"o%
(KV -zBk+ nkf<:zrK~^Q6Qu~QQΆ$
rwh,O;vor͚K$87pa&i5GxxE^Νߟ>N˧4wc -A@wD#IeksRds'StGY{-,-JG(ELO-#Ou -_C5nQpmƻV=`lh7A9P-x@'Jc -h)CQ -tݷ -UF`>ZkXz(J^#-] -RqT>C^|h|wݛԐ-ϜTi&P^ -ug%J{szGz -g'ϒwSO->+ '?7 ?/P~Vfh@\sGwutU
wmf&pYjȧ3,щu80 -S(@r#+4MnئM&7ya_dX˭M?j\\鿨m'#@-+zlwY`(cl+OlWnlk5%mWqdm+<_mBo{CO"nWb`noB
;g^::~Euv<_FՑr5JrlϺ߭)nkWsdcIOdG8Ǔ#ʖTY
1\ٲQ4YlH}|Jgꮆ{@==gVzxT>)ʬg`"1ջ#'N].INH -փ
yJ/yJqA6$jBȬR/RL^9@;(%Β!ywg%)l jd8o 6ٳ5DBIw|} ϓJw"ӣPlwae?ە6RV[ϕEŝ\&vmw_v@%|v@A -K[b$VXb$*$:r(hS_`("*$Vg$j=@[ؑ@{S1V= t!xgFC_{q|Y5`;$
سGpcjeYiY
aܧ"7{v9@ÿ~F߶G;#><iЃg7$ή07ziv2
av̇e=a{ME -ǖ)v!csõf='7+, +<< /Filter /FlateDecode /Length 4284 >> +stream +x]Kϯc|Xd_b +s>}qĀn~sϿ|E[h (e9*wo*¦@pnǻۺTa5&Ҙԣ
~'/O?Bx +R<7 (@??i<}Ř? +VomT6ƕ;^Y\*rm@EIX\NA%ӢЁ"W*f +5Ht6X>p zTHa`u|w+UĹ_/i"IoNkI4 +d."8
ƕΥDm-k|[F%Q4Eh)CU KWFQŦ(ZҴ7EklQW!\Jףh + +uZx(A)h P +#)*㼔r4
q!}M|2ل9KR54
\(ؓr e
- +GqTfe,_N^$lQEF)ʖbzMbZӢ^K(P/++3+|<kϳ*pM\*f5Sw#,Oy0Z宼}gl\ezJ2A?b0lH31_|.Oy,Y'_ʟNY ç~L'A#Qh%X:;>ʆ||*\\Ņ<Y4
(Tʀm<o~?QΪ[Ny'Wfnv ʣJKwVwO~ΪBwT>*gɎے&. qiӺ15[v4t +
m>5,!|-nk)7SmɒRo]vd5RmhpuVvnگ9ekP,p*n+cb68a$,xLro(AZHf>zmb~mth8{]ۇZ!<C¿[ۇUS:2z8%MAX-%^W8gi9r$J,% I
u\FN7DV.ihI|V!77%ϋ
<%_9tRr6y]5G]ls9J۔%&Jc!h6ѻ_;0K,s?=argts&
! + +`kkJYlUp^%JR 4q`/:wSRI\B=lVsٜm)9\z`>J6~8@@er<;4a1Z-ɊvR`o=K߫,tƑ2sʴpt̔huyy0)Ӏzhhq}.)kBbe;oj/}N:J;Q{0pS{syo^H\_GgCg<Gp;Xx$Hw;r͚D87pB܃nw$+h97n*zǝROi5>փБ-zm*S\V
'%?Qe熻:j/F/JGE-%G>s0G| +@Y [ϯ$6Ws*~h +^MƠ\-* +[+A-|C|厄
>`ҽa0^oiu[DB6v;~ 4_NՑbs1J@3O~ٵɳ1GXJ#nhA:%VՙC+1݇D[7dB=i<0i]K{0H2-wШ@{)0Q!ĥui#EkWSw=`AЩ&GInIX`hIPד d;3+=34BٴV(WՋҫaU,#m9-jiIӌ&VmȧGEFTI!h^E@$J'q%Rreދ +%GZhCKaMUrLU%ǝ\&v1)9~'9Jfq:f endstream endobj 1077 0 obj @@ -3960,35 +3900,26 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1082 0 obj -<< /Filter /FlateDecode /Length 4262 >> -stream -xɎ>_`,7a -o $Н_/?~RRHi}{ZkMOk]*?Cow6~yGw>+>}a@SgO_gT| vQ´oRQ(jN$?7e/OYQ?魿OtE -_/h0/}˓#J9ڻp\!s-Λ 1Syoz'躦뚾VcIAo2̛OCZAӷ -&/-)E
m -$SΏp9hzT:aMAZȺ&nS@^O'PNwou]e捸eTEp+#beDoOl2#r#V J,`(,S@)V+DPHAxI֖5gSdTOD8'lzXv?9ɽ8BN CoQIxBkT!Њ jpwx%atO3_ltϑ5{ƥƓTQᵾkv$[#n%h֩MNYeKkd~1)Mo2#/Ucč -GV~k<x2j)-QVϹ7&dSW+ڝWEV2E -L:)@϶3Y|k -55N2Lߤ5$8{C@gbY(ܭu63g<wrvqJnV|E1W5Nxx+z$V -USZ|XU5%R#TPxWbu?f<7+Ȟ$lV^B41pr ѠuʖKUn97a1f1KƧ -0B2.:u"Uo^U5BV!|.]Oc< -[wa,:;!Il6PY78 if9IдlQL27<2&ʶ2f: -K\C4moZdGY+',%{d]f"Dj5'n MrEZ$@Ar{fnR42X5IrY -n=תu-ʼn3yv0iӵ8^I-pSJ7O@0[eq5'гRK -o1WP!Lw۸#(u*8mj0[yKXI^-MN/6cWu@eD^Z -[(:d -a!Bzdnܛ(=^dc{0~f.U'A"9l~wT(/7x,5c5-l<wNZm3W(<;> ɏ -G]~fazT- ;6@H"Ybߞ@bHha9{wjṙ 0'7 8B}pկ&c 7 -PړvJ[Kqmq!v3m.ݮ -tݽN -+~j#] UĀauV2ȕr6Í5~`+C,ݰ<vݹǟM/w~Kd|W+2n0"Jq -NWo큈< -IAp"2GSZ \ *U1J'm&Y']7HphIx40kdP|)^,$jwRO
Rc]Jc<q/TuH$sxA`ډ@ -31¹c/۵p*nKdYZPOXh߅s|YdrЬF}SDCr_4QQ3Xk_C< -ͩysS}Պ2@x|(T8{ŏL3H^
Wgp4z=fl%v|8:hnqJ>o`g<CCv++S@!d -:< :k -xCtU3%p'_
NkS-·較y"Gb -<5TڒBwA9&ʼny[ak"%mdВ\!5ߐ5ɹ͐|
L't|jϺ!\E9r|}PO;"^`9LZk6RBtbu۪4/姻'/ -l3[%oD,) rx@*6FaZLAVc?+p>4Vm +<< /Filter /FlateDecode /Length 4279 >> +stream +xˎ>_`,_bώ) +`ezNol +/M^(c[nkSHrtD!&?uM ܦ6 +hc+RhO.2a!q˨ +4dR ˔TJ756=_`kY,2m'coyDt!Y#Av,QPKYQ4=S%6KY1%s%Y@²GqȼҪILkxmY0+ErlCPW$88lUytuqZMX e܁t[,A-ذ/ + +ܐ(%emOr!!OR u?HTO,y$}0@Y'v&o
`5LNWfeۈMA:a~ + +sم\B5o93
Gڮeܝ9_2cI y7_Rx?(yHNW+M0RxB_5륢OU}.
#AYN H6D絺/놧+;KǬ ߺ+Ao$ǜB1`Tm[Z$1--&yq5GϳV͍Qe;/@n2x=x`$㔀9aܺ;r+JaIb"l9@(#!4$,(J.aV1TH`!RfB99t +,,{Zb[zeXɕEC+ ̯^*5v,a3a1fm1KƧ +9=@~4ha +sezv`V}c .I@` +Ey$ +in xGbmax|sY36]stu&<zՍɳ34QA,YO[yxȴ@[VD4@*\ -,GqKT-<7UF^: +31¹c/۵p*nKdYZPOXh߅s|YdrЬF}SECr_4QQ3Xk_C< +켗^xSͫoe{P?2^&qx5\-R,"Ϙk +m<u +X$6+>շw>v:y' endstream endobj 1081 0 obj @@ -4007,22 +3938,18 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1086 0 obj -<< /Filter /FlateDecode /Length 2521 >> -stream -x\96W(\K~^_NGITKz(JTtTb)_;}ITv!5|~k)铔꽔+|~y~GD?sUw0~>Y*OcS;ҕ8g?}~|1?~&D^8W4aƎef"̅~ Ꙩނ۸]w?}~j6ɉ}ӗx
I?/O1t3 HxYx& H%& i) wq1HxxwɌ6q/Ɍx_4
pqWM.!3'"Yx -92hz5g?a.¤pWT7֨ڌW- zh鄕2hxIhcJ91ZٝrF8(gF~9[OpcdR2mDG
HkaD!QNiĈJ -خe#ݵe -%dC]>XϦ('qD*VŊx??M $ye*meG}_(˩cںʀ{ھ\T,EsK -+6S0H,? -7,ҽ@);[%1Jѫ6GY ^ .m9;ik'K;qI(=NCρWɎ p~iXHX \£U28"o]0Q㈬La<"3RkʈJFȒJpdnbJ-#"<ht,Æ⨭TVdH$j -?OG~)djxP=Jmʙ;a(%iRE ѳ0dyj%,j7jG~}7)E%7-q1!-9_hTLME"3˶FnPUݺj߁UW_s`WkDLגhh艋V9"zaQr+L\58&8Ґ6@ۜDy=. 6Z,{,'خ]rlTaѪָMPDn/1R[zȥ@#Jȑa`壆÷]?Tpőxz -Om,tEyA=0 -͒Wȕ^\97t]%Ȱ\NhZ8TN+t2$G Ys%%XT@XLK$U P" HSXRa%Fi!SӦBQYT/ӆ -V;(5%s
lN#*MF$tK7Y&]s2%ɆK0ש+PC{CC
`4olԊSyb6g`mn2- -&RKBUMtqpXIڜXlUQz5mBZ4TcUNרP
Ɇg5jMj}@ -;Flv<d0#C\Z,lXI7~0퉙Wt>THSܣIw"/ҪBgi4Pw]=$Jvh$=-Baz2::4=yݷ'u˺0JQ.}K"
ȻAnqZxdr
r8J^rT8@{aiG ts:{
G4X0ذ -ddy9/d9Z2BA5
J<qѵ(]Ix\.TZ5-f߃3ugxTw)be]4x -(8s؝=LbQT4 +<< /Filter /FlateDecode /Length 2532 >> +stream +x\IoW9<*n@` oqen9%;d.(춥jW~t_buUt
ݙk|J|~W֖v
KOxg`4-gt?MO|WXpȃq>$JX)㥔WhQƮF/G1tc?RsMwҭ\_>w1U4緧t],++1+]^B\I*X̂YFye(TXK{#3WfT@e&3FP +Ƿʋ=rNUS5!pg{9^cɿ| ~R@( +)iScG^*Ө?#l<ǂ4 { +ڗ-b=5ҥnyHj䔤PZjF*4y +bQ +Xsw$dj5o#;jFS\Sڹߦ`6Z4'U:]Nk=j( bN^L+69GdjFj/&
IŖہ`ڙ?v I)cfpv @sz=K9{6Spo'| +Ok +%?jEӷ +.4|+xgIl{Y%υ(F]pwꂧ((K~Pv|{5gGTBb8'Szu=Ҷq_~{jYVz
zeQ +><iZV*?!% endstream endobj 1085 0 obj @@ -4035,19 +3962,19 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1090 0 obj -<< /Filter /FlateDecode /Length 2580 >> +<< /Filter /FlateDecode /Length 2578 >> stream xZˎWed_@km83Jl'@fl)t3%QdaQMw7ZmӯOț9)7 rn)"'k}}s`c~WAڏ r\z"ΡKt3]^!6>)zK,$[K\~Urŋƫ^T#VTߪurLժ*JנͶ֧Koҿ"?/W䇜z2+䌐WRr{K
gEJ4(Aahrzvg7AJFЎfDB5Ñ xq抹b"_><[9ᔿv -Ժ+V£>Q -
s0K@0Kplg3'+aUi|\;eOG#epjHCQ㮬AXuidcs(QN8{)aEKT(>Rcm+RdR+XJ<KljZ`(\+[mNREBMRy\.Mxq\,QC=ɫ17?^Ng~zD#U N;;tA XCo#JPQc< O K8UwrE |S3Q^(]f+e -WY.ww6
cy(U~>/ŞyO}#lRiRz? -toJ=]كxP?@̽˾يX.ޮfh4z<;ēwjNIs[{;Li0mfIʉoPM$! 0_An,RO^xAhqECYV?PNR^8gSN3+>qaΘJ>CP^40{θ.wk7ߑ٘rJw;g2Ú,G!rb(/t<m[|uUdz]28U{=W1c;9uj@eU({IL|eX0
08Σp7z2 -wP>;CvFBS/'8m#|VG 2DB^#$tCJDؽG
{<CHngZ\<mA8 - G3#!CB4+$䱏 !%$DBBc,Lj+ɦHx qN.HX=DB4{$\Q
CL0aHxUKnCKݧJw敷"WV0h?yGI;Ra^R|QqovQ[]:za{#TntPWk?Tz7t -Up^uE -0X#bӺ1M ᢿw%O wVÀP ..Õ(-9G1/5P+!=m?ʐuAUWRS -5PQtE̿BK"h G{rLs^Dj;۰-b8u[o_#BYIW9}4ē6amUئ/-;y +Ժ+V£>Q -
s0K@0Kplg3'+aUi|\;eOG#epjHCQ㮬AXuidcs(QN8{)aEKT(>Rcm+RdR+XJ<KljZ`(\+[mNREBMRy\.Mxq\,QC=ɫ3/9U|&w'xA|8ύ\`#C b56l
y:$S|'!|;^٫}g155iY& +P@uE%K4!A_ZxOiu#]݂Pg8VJUfsd.|*Tq;әe(]Wchdi|K+<#.G0dzZͻtJfn6'),iD +N{BQ{T:S"_d]}V6wFǂwave4GX&xSsO+$aJi^F?5KRN}ǯo" A>Oh$4] +rHdɗzB+,z͊rd?䐨@rtdXix
[wU +,/XM&$V-w}w;]ƬSر8ĔLWd9JyclGxi;3E'hw&[w֫
}?Xj빊ہ̩S;D5*EsObetG`( +3?x +<| dH>alv:}
%c\!!ߥ3U =HhܫBBv;3JiaX6WHfv> Y!!} '.!!;$d9F$D_L6MDBĻHvuA%#*.`G&P֭ZvZ}_w
>/S{0Eҵ:yEuGa;i6vǾ՝Bj7|VtSY/:*<N?x?ʘzKGY/zoDW
Α[{Jzjq\\#jqWثI'C5X7k\pdwP̵Bg,7#FfΎ,Kq%L+c-ڷ6=R۽Rw>tnb72/}'Cp^+Tg/Zfp`wUlZ7;\D)Aj\tP*?%%|2vY/0j%/_.TJJ +"VTC*6ӾHWhi\
hOi띈T-1}a]~Egn|kxxVWH6˚?*w_=&;?x&"/|;} endstream endobj 1089 0 obj @@ -4069,18 +3996,28 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F59 833 0 R /F42 792 0 R /F50 687 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1095 0 obj -<< /Filter /FlateDecode /Length 3209 >> +<< /Filter /FlateDecode /Length 3250 >> stream -xˎ#>_04Y$$0ʬgoOIK~?U|4H0+d_$k'y+OA4O=(z!O'烐@o>~~~RRZJ[֚FX??:8z;<p7-մ}ӏ_Btq^ I3[,efYe1n;8SfnfϿҋߏ')tġOja:ORX!J9ڻp@,<)5 I&˖9r2Iݼsp -1$qC,CTg -vD -x/i:8g_x~4 -^MZN R?)Eh=Mn8edW -d2 B -X&TD)@Z?QEט=-GL7j=i|@ cՈ~j(m1?L[ާ,4Dh_,|nNDn~xS*JVQWq@i?2,q|;:Mlu; -{-݆jmg7 -<4#6WlmB -h~=rC5]23 +xn$ |+ pG|37ۧ$Nd%Ej MwW|F<$O;b)`ӗ'urRxkO!|= % %~R4([="{CGw~9gΔ*jZ<GF/!1N"`pZVy2KBk7B9Δ۟{_YzI +8IF#}wXDw,cdlPO2D3YJY]?sp +mIXCTg +'6U8^>fT7&*7 +VI'q=BY$O{F#* 4{DFCZE1C +7yft(gK:&k$%"+sX[?e +iDsѩꙧщ%cZQKds`5COArä٢BA]h +O +G2eMHtZc-3B^SJ^hvݣY%Q#P[WzX-'6Ӗ)
Qbk)#-ԮJUvU\(3PYڶ;K$?}/r +11 +MN|-7#hT-.ΐ Hn?cꜭ'
MrdQJ~RrwmΒ>n-Sj
P +uP +<_ڒ$P{HNK+T.)Yx]cnZH +-;Pigjg7.9_S`]B¤x&UeRwuYEwhJiP]*T35<T~ʹӸUfe}ބl{ZKJ:4%/X(PH1mY=Ccܢ1/%)X
_(;ӥ./ ?J:Ǫd<(GG;8<^NZ dT6:*VWյٰcy_OFl&Fbʀ%*C,_S݂YlHd
C}3~^=g<LItbz7l5Wa* CO%{PTTw|P +];Z*/tϨ*־EtGrrq~}QI[7o.W6WKvLw 澘Z^1d-Q1gwIB^\/G
L,!bԖ`έId=[Q-M'qS[)pL +p)pw8Qg +s[\x/1c6ޘ](1dTvUyroAzJ谞U[$Ul;dq>F4\|r<e$vsSݸ;NC +jSVgz[H6w3SX@P+~`
6r[GX*ep9 +#p&}(C+sdhW>IB^?RiHbIL;h- +Lyt[##s@O3hn@bZͼU`
{6xu+AV YOS8^awwȿZ+ZNnαF}}hݜmh5{:fo4*GAcb)ZE>(+ endstream endobj 1094 0 obj @@ -4099,19 +4036,27 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F36 775 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1099 0 obj -<< /Filter /FlateDecode /Length 3651 >> -stream -xˎu?_e,y`L&S wd6mfl=dIxf1,"O:ӟ^>Sէ<)AI=9ORwRRW)
Ji=}W/Hw{N2}x~p<ѯV_:l^~# -3 -z-&aqO}Ǜ -͌84ϡ3^LSNzi-<~#4õfs[ԄcclB6mCC6MPjls|+TCVov٬Trɦ541;d5m(uIc8zkp -do{dKF`rl:v}'蛌7#[Kx발jmBG_sP4>t"vL%iˊiL8$E -F9r3542Y&x<"E l.>CE
kO>nA)W>`n)C_[0_7ûo{w0n\<9m6>Rlgͤ:]Jm)C碋!yR+un_MI/9
pߥnqf6ECy w~._IJ i~]HQAJ JnVjs"~ߐP!*C((U''I
%Z%rVhFH)lͷզґ@xjC̝mmu(:mx!_$j ź<zdxn꭪xO1eqٷʺjT6 -hɅXEϖ|rFG(P[7\*z9a8kUmB]姠3O#51~=/gX5\ZxFx{xh!67djg$wgǁWSE;BQh;S+!GHcȸs !k0éޠOpFIӴ[nTɪr߳+ԌScTxG1:Xi`s8;u9K>Lq9A~F'-= -mṇʓ -RU_ -QcMNk<Q/VnsuX長L\809>'%KqSK1-Ci_0pQჿ' -e`'PrCYYX91F%j<jw-]7Sꐏݤ~baB*UXi=:GYNpӬ$oaQ5Vˁ-~H=mdnڹTyV~@>OX$jD\ov>FA5-uO}QݲTEޗ\zFˁXV!
n|]*tOY=*)ϱ4"ieGiG{ݡNZ3NvHs?hxE +<< /Filter /FlateDecode /Length 3655 >> +stream +xnuﯘe,ya ٵ i4f9|HJ#3[#<$O~zw#OAVyR''|N?=K I?H^4(_ "as9G߃e;? ^ÙvCZ꼲y_0Cv/;Q+zO)QZh]|Rfj3'=ߞ~x?/IF#ߞ$tR?i<~&eǚpSwDlȼ{m0
`iVhkLPH[jz)B$$]Ξ$G?t'+Co
=/ІNX0^@{T֯[HaB:hUx7cǏ,JIpeu*9?Qr^[YքWt/l6u
,[%9ZUH5# +$$Ȟj?ТPϞfIGp̮;wIݭ:R<= +RcN+T6H0yo7! +Ʊ%tJ5fW6tE]NNiQmw.RUvlˈ!~gڧV@-Ěa811Мw
f +z-&aqO}Ǜ +ku-)W|Hڇ;C5PL1|Ox<eUZkO{Yp
[WVX9Cz|Dvq"Ğۮ1
Ji߈ڭ&=lQ +)mU)@"˥6í +O.P.ųuؓ7g뜷#}o2(lM".%Urɶ +͉BҤ\Ӎ2I-+3pFF)`+Иd<rxbgC_ 4\.p?fp ^ynpq^}m|Wᄀۇn
r#Ha4v+v6/.t/IQM|5J#;'4+fҺJ[y20xQQwfs`~'*pv#Eu'(Anc'(Y
͉H
E2z2Ruqr.x@Xr0ZQ"|O+1yhVjd2vN|[m<)F;~V8"Xs݆rI<≮JˣGfGު*Sp}+QYWF902khْO9ݣ_QbFY\#>L'cBAzPt {~&Ưl;9^o3x-Q#&&LWDL8UuhG(J5BYbgJw1dZ +XJ/[~p8-8k*̅}m6bknF$cz0F +D\nXJM;d`i)m +iPzrnFjN/ƢDՊwHתݱ + -}hAtQ +4 +.ڂf^H @}2>g^yϙ7 nuf4HZ)MIdHUcFK1@<myMЙx>f_/i
^j*kq
{W +ۥM;y|əvύ +TD~ӒF/]ǻu*DdyQJ%cn`P-7ڞKcT]b&j|zRu35MZ/v*-R5%--cs7 +OɑU8{~oUXⷌ3Fv.KnT<}LcE"O PFĵfnkD8T#ڂQQ-KU}1ʥmtoR +&Uizx2Mԑգ<\nK#PvFyԼ*H\!Uw X@CAG'Sd endstream endobj 1098 0 obj @@ -4124,21 +4069,22 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1103 0 obj -<< /Filter /FlateDecode /Length 3734 >> +<< /Filter /FlateDecode /Length 3738 >> stream xܸ1߯ tY*tl+;_dlW_w7@ -/zXzE)ޅϓߒ BY?XOe//UvM5IL|E9! +/zXzE)ޅϓߒ BY?X2T;D]~$iME$<>3_QN@J +?ÖҴHgq؏ %+'1QIsF$٧ `2Bg3y4I^<d[GyA#2艙ři,>w
(~o8y/kzBceH|m':-_%ORr?ꨳBξ6ğ ̄}nf#4eŊ<FNǐd(x9)E:Y95Q_=oCѠ9μAeVJp;LUʒ#1dal)ɮ̚l"j/=Br']>Os(ȥ )]XHe_XhЅղ/&߀I7_'EV\;=<m"$ %6|YoDz2Q~>2cJIYxdT -80{r7@IG(8,49U#p4}=s /rŤقn.BIQ\R9)w{ F()9jFH.k֊{QPS@m -{5}`%8RA'ĽғQ(zil9VXAx@GlvW8t@90ֵda(ZR
N!nEʝ[%fp\&(_$sҝ/KʞmG쾠D~OJP-#"{U.ŰRH\\77U9=B4q;1;GZ6K+NzCo@5(dzrXZ-(bh/EiHjTcȲ{ɦe=IF.[əq܄SQ9Zz:~7u_E\+PxҪ2ƾ@Q[u+oa+/U<a|CZ몳]֧GY~o4 RN$RIUS^X65>k>
L T}yHNAu|bbMI%_Vh=V5ܯl\>/y]a*C}6j(x:KG*b<ϔz\s|G-v5WY2;UʚOuN+e?<!ު" sD?oY&&S6FxˢBOR ~昱n
OAl^^6\{Pz&]nVStbQme<s<BJ%`=˃?]2Ї؊:5[l{^·07;_.wd,YNoL -mziz3'%A':k -`ۙPژ=MxﴡYȔ2 -I{Ĕ5u).ٜIrxK -1)iؤG(W+ 0qBy"3>ϧz3]ǣ.tArPX%)IfդtwkENyj۞QR_SweܺD짚yA1rE8qܹg+JWk/٨7-$2#qWҵĹHHs8bЮjC5KMA}[z#^?yC5(5UK;|\ikp|ҴIU\ķ$ոcSx9Ԓw6|NXvOWh -rm]NO_
/f@Ob#tjU<y\n7agC tǏQTk==fLFV/Z17,=;6iiq-o3~եE#j̹q d*F7qfg}eڰAKm!o+hpAtנMCp]<1sc+k:}m} -{_^]KW"5TCD7EAP߉ +80{r7@IG(8,49U#p4}=s /rŤقn.BIQ\R9)w{ F()9jFH.k֊{QPS@m +^(4H @\+,ŠnpH Lqj ++w: pGAZXZ@u
-QW@7XaI-ȅTTZ8[.|Ht^/ +t9MΗ%eO#dv_P"'cz뽪@nbX)S
H.~.JHЪKRЊØ#L +AqLs4NlңrZ{a8FC}tbvAЇ\P=ә.hQtv N +YL:Ǡa9Jl,T$PKjReVΉ`Lݵ"<EmO(Z)2n]"DSͼW9H"s + +83+~mgVjlԛHBZ8e+Zi$$9@[1hJȥ߿-y\ꚪΝ}>IiGu>i ֏]ݤ*H.n[j^TyԱQ)<ZN[j;x>x,;ԧ~n+j@9ap*u˃vY}`7#:y'<WwZ7rPonInYiK66Fo.wZ3 çK[1LU__:JswmT{ތ<Џ03(d
h`ε^Ӟ}B}3j#|ad@87bҢBeo2C83ɳ2mhlFh4_ tkЦߡ.PP1Vޕ5>綾tr:a>O
h.#s3Ytg]iٽ/k+
!
qޛ TD endstream endobj 1102 0 obj @@ -4154,28 +4100,25 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1107 0 obj -<< /Filter /FlateDecode /Length 4642 >> -stream -x]KcrXd ,p{<|'*D-z̴$֓R"./oF\o$^yqb^PxOBoW!a=- -HJI;O|~/p_E?}1Hw;h|cG66a/6ɶ1
dwl R5TrR_>2Tfjѓ"78=Ńk4]&хIPcIKS=&dd)#ɠU}YwDDo2γpRN)Ԣs5!r/VHzðS'^ş!]CA h D8.OVFLCg>X3)ozL$<Lڌ>I%C_ -0@;uƎlPK"()ߥ(c8zehNI7q)6s;)i9VLbg?e<7kwW1u!ep5 rD&:5-N5N\suZVt -{&6`Cۇwǭ:Rʒ`o逐bje'cbtgq٘hmb -8W8*Zeևn%pP+ڡZ*ϑVjA3h
^.Xst)ag8%.p:)F*|%s騯Mp7B\@gX}IqPt6"Z(hK>7p#Q+8F4f(UN&,7U0)*G¦F -+uVa+^ߋW+E)b! -&JQݻ 'eܮ){<";9B)0I:(G>ÉAO|w:1ЭW]yƤWQ;N,q+"૧J}m:pf`B>R(7O'.x*) -1ЅB(SPۉ3A6:Il6P({垣h<'T3%%@L\b)BuI.|΄h@6n[bp'l~cA@w0`֎['Pq侖-ʏֲX[̆s^u^1[ɰ%+fy@E3GZh4KGto^}^qE%o -$1{)X-6LK3ɞLa5ѡ&45t?g4/Zndsv_~@ŽH
7R|k4F{.P -
azXT9P0ƻqFz
KjP܆%4$CN*-\Ja|GգOX2֊C^lFt,߆7;X*߀VdEzӄV7 -3 -~NX7/XSL奒y6KϯW/童;f\n1Yf2E^ -cj\U ~]E~]aUwz.rkuu -;`д}x
mO7ѳZX5_]cF=<fݵkw[kѵ+Q*83u4č]ͮ]Fm`ԋjbKQ(6oc}a[δ&AN-8PbKh%1k|
<^PǸhm㊑u\!Ѝs+GYuG!`hv8VNx -'/ɏP2 L^/K9;͜zOؤvl"V`ME_|bgC?{<W -w$5nulF>cS:6xcSXǦtlt]+cӹyFǦrx~;6UOܱig۱73rǦs-wlzMOԱmcSulzM*gwlRvl1ntA[)ɵ-Ӽ|h7)JЩŶMG伫?ӫju%nGm~43AO
WouS`֭o-{'ƷKfWC=NF6 -1Rg5
N&4`|E&kD;3)ι*'U j=ܮx= -ꄴZI^7αdѺgl"i!g!flb'@!'~TYRLneU(-ULThkk!jPTکnR9Œ.М?HjPBd -_ד|ڽn|Z}Y]Ӕ.s A-w~I(~*p>BWD{K9r -`p#vjr~V_ 7fO%P5kfប +<< /Filter /FlateDecode /Length 4647 >> +stream +x]KcrXd ,x<|7ç$Nć*D-l϶$֓R".?|xw#.a +VY}E^$^'!ԷBBW!a=_/ +s|^W~31k?x?þŰ0y53L9YY19w#4ԓ֮~ +HJIߝ~o~/~ /E?~1HpI4)X#0Ik,iLοٝ,*T8j
.qן $ѓ"78=Ńk4]&]хIPcIKS=&dd)#ɠU}YwDDo2γpRN)Ԣs5!r/VHvŰ['^Ot`~! pRe@ZD|@'TKKߢtI@W١[|W܃K=Lg&bX&mFŤ/I[1R &11$t&`R% &`RI虘4X.`ҸL* %$Hh֢9 +1n@Z3YEOOiZD]ULF`Y:j|M41ѩqnoprͦS%ל'm֪!-e:@jqM%|(m{@RTbJʀټønhf0
Z^9X7,;NO:
lnWwܿ6*_kɗ'qX! +=JPs,C$//oLzKf)e-`=0h;QFCVޭG
ÝGEqf$؛g: uɘY,7'a6&z_^WS{E+D\-vòAC78JEHJ-N+f,9Ӕ3JwWV8#>wBƒ9`tԯMp7B\@gX}IqPt6"Z(hK>7p#Q+8F4f(UN&,7U0)*G¦F ++uVa+^ߋW+E)b! +"sZFGt*Kb2VvXZ1JLQd&T +am-5*<>E7TU+=)eeU{*ݐi\@;'jҭQLkZ;°O2tvLE3
@ŮASHrfp||\+E?hsq-Q/8^mK"^|A9tL8mk-cipת*l1 ;kv0*hkGlc$>pgn>,nꖸ~GWh2lJDP (qQFs|Haot;@a36*6rrwB[41g +0buVh2-${ޙ7jC-L̢:h.Yk6_Wfi_Yٛ%]wwynh
Ε0t5\gST[LSysawP*x_Sn)
/KiH:T!Z8e8!ޕ:Gtea(W0
}-_qtTFl|GjtcEtJ[nq-M"iBICR +,c+)5s4&|Ijd7CKN8Y)9aBܼhK~Y^58nE:R;|Zcs?&ˬBd&kyB +ǺxՊPFUCūnGū".^--0ŋūӺxqN]@U<C
W{6ŀ_1K@NDiWMū :ū&.^.^PtU.^.^wbh,wjXAl{ržYN^\{*ɡ;]^^յimcֽ{+3SJC\啮^evF6.vd8[ۗ!ݼ\ku5rhijMcuo_Bȏ/AYk/
kZ<5(EkW7nd(^9dZ
APhv8VNx +~R}}4_['MZ?|bgC?{<V +csWpةxGUװ'EP0"_Y"rBۥi+,պ j=\
0O
!I^Shݓ7z\Yz[0P _U,.
'f|6S[o&8"'K'97>= + :vj+
fbI"hNp E.^L6Y;a#$}n7b1ARxQOR&~8ڡF
Rږ5Dڬw3>m?p$5M2rrA? <]pON)(FZUD{K9r +`p#vjr~Z`Ar)yNK +MƐ5$j endstream endobj 1106 0 obj @@ -4185,32 +4128,34 @@ endobj << /D [ 1106 0 R /XYZ 69.866 801.979 null ] >> endobj 382 0 obj -<< /D [ 1106 0 R /XYZ 70.866 273.255 null ] >> +<< /D [ 1106 0 R /XYZ 70.866 273.235 null ] >> endobj 1105 0 obj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1111 0 obj -<< /Filter /FlateDecode /Length 3581 >> -stream -x]KܶW19RmVMoqtsĊC|O7Ap&g̀a53$~ -];CE텰6*e{r㤏^YiSF\|S6[<>>><oZnNB?Cqdc-'-OIl>z>!`
o<$q49 yp-u~sN' -̕6sȥ\W
zؘF!M=>'U(_$Ӎ;^匵(x[8_0n9(`kNE!WOaã_}P+qz#I<hn}m23i`V!ll2 qA/뵉c0u$rYM .O3WqEbmSeߤku@C4'nqڦ'(Z0Gam7A_b: -KݭD߆Z`.<s+)tXz]L\N9J#_,"S4'RgD, RGiYpOnK%a4A -mmm+\>Klz3gSR4\d?Tɿ+VW~rì"1rx.q»uܕwDEwQw4t$ݑhRonU>js,0J]JL$ؚl)Y{7NSvqq}굔vK]2('YRs+¨^ -n -Yw>8(9<-Bp.!UR9茶D%()؈5J@U+iȓZa#!3$#L"Q]@ /H%?J`rݮT -H/ bPړF*9CѫT9م:4ӬXl -ζ?Ú>QUք7[%~e,qӰr>ޑ4';G.
6(tuj$bXS7Î
둺'gCNfN] -]֡^K2ʔm;DrHɡCSUOyU0=*A+(mkQ`P$˧o<^).2SLj - :יi7v]3gfbʯښ2xeNi|td`*qX&x\$.8#-Wd4<90k[zm&DHB$ -"wQAb`&^VG~"ސrǍ2[Tw|XoX{RR"Y^ػ)vܻ!ݘ{xmF~@
}SEif[˥Z)fMCh*-Π+AWJ8o:tFСʙU<Q> -$٩^z7 ![R -AbKP4!EPC[pGLl>aN8,x;A*e3&w4HguN tIcD9yŠKdB -xS -yDvw%Dڵ$aAb%6+L>%ѝAOLM+xʢis5W{!r;6
Ze6X=)䉛X6%7nZz5?SEe5o˳Xf4*='gjΏbFThT3[M6C X r4iZf
*w`P y&~x!6,G;.Gېr=o[&[&Z}#Ѥ,0~Kn7$tǷ"UVKv9+]sﭣ:w@>`8i`8( -xѨI^{mX+X\X+g
sy5O Χ
V*SKFtI_0]K+p|c0Ve' -*i_`Z.tmPQ`Zi֦`kS0=kS0}M lS0~s0=m%^>7hI"x=<sGLc$K +<< /Filter /FlateDecode /Length 3600 >> +stream +x]KܶW19RmVMoqtsĊC|O7pV:Iݍ$O{F>}NN +o $Н_>H TRzקHO|?w}H}Ls-Δݵ*ݱjzyO̰b0Xs
"izͭjeZv2k5x>;qguYmXs;
+G_s6lTnKS4CMS:cub1@pVxFB!LlBׄEqC'z9_U<jKzus fdLO{Y9H~BX(CP5e*! ++Ւ5!Bj= `vy0S{}@(}z'P^>c+toq;^k1Y
k7liM"]^z\'b5;.@@jeSsC,ŪD:HL/1(rnQu3]a;2;JWNםpo{.JlKQ.{ +-7~JP.=y/[iE+-4֣I_21OjO
">r>!72IGM;Ҕ_E~Db:y--:@=j3#VR¤iރ>{_~XQeA" ;K7).t7_刵(V +)
Q[sƳ/ҍOO~& +?P +ʼn8=$[_.ٱW}:u5̌f}͆! +W
%V\Z+09Ьt؈v]L\N9J][VsFTsSGmCQ<V, RCaZpOnK%a C +h^KQ[87P +4rG['WtdSߵd# 5ݦO8,x,}%?ഫyL8!(٘~y< {teVxM%cU. 뜊& +$qQJ]*_uD\19y`]-tJwD.R}.SZ`) +Z5rt[t=:s+y-b 7M2[QWxlɫRZi +Fj/< ㄱo +HdV)#7S}J=e`P/hBRl`jv*(`X3*! +zbT]5+^Y\Х.QVX44Jӣ&k5\*Nd]tB?ܭM'4[kb<3g@:f``ʤ>.hx\cyjy-qBZNԈ<6͈=Ob$l(ږ۾I10tuՑ7#'HS^xn_Rֿfڊʹ2[̻xm3mofڪi~sղV]pGG{VDn̦g{<߶߳GeաQ檼]5ڙ믽*J:O9hTv`= +ۡV;<5aNosab%[Cbtv!g%Ɂkr;la-J+L'v1x>DD,xl;!Vd(gDTҦC:-SHXIlSoՅ&$G9FJ{m(ٚ[UgpO})d5Ɂ,o=j.-:RޢUG:oՑ3J
Z1aZDwxJfRӄ)/(f1W]D5f}8OvZ%ڭX=A䉛hZbU+/nZ5?SEK +F_Ֆ7Y/4*;$-M2aWL(3#
@XN'J=B`qV`R:kiwtTrb]y?K6dtmۖ-]Z}#KjY[Pf_Wmߐ`Q/{vKͯm:j鐳kΑr +;ZG 6wdA: +UgtPudA0qoMy>y WGx{i^>䕃tjcE^>^=.)k Fyo^vjϼxيF/;VG6hG{.\L^vjm^y˾9&/ۅV#`/{(Nd@*fo&HVÁxCb^ؠZiĚd?- endstream endobj 1110 0 obj @@ -4231,18 +4176,20 @@ stream xI$>&ApմJٞC':Xnɬҡ2 l;iVc<6K »<
VR:,32sC3t)_b^kOR@f0SD`qAC>!/BG|¥QHG*8dT|Vΰ(OW)=>C|ʻf|"3¹a_ c :"aV}imWׇ5~3^Ka0{ a3$3
T Q#N,NزpqںP^lD:Ɋ"SEqP"8͂ST4`9/*J>bws=zuXĂ:"izN\I
P9kFE&: 0s0$*4tO #pM03[#DrR_*,0bғlXQ忘$k\62 -EAHO` )!A']ald ֪,)ڶ7 --6Ҫj{ayz1OG݁u@cW8(\SN埴Fe<k=yuD!`5bM?6)LAzsDαp'=vmW7rtY&h^{ -($| `ı.8^8G?Oغdʝ:vz@3=}Gyݔ~cxS-<,Qg~S_Ì -[Wli9}:,_[[{:H?*GLCLF$=)+;} -rrq;"ٌ4g|n_̄<xg=7i)}縠P|W~rWCJS$Z[(pa_sB~D -wrSKE!@EKcJqE퉉H]w -\]9|LͽXFpchV<vTϟ߶O^nqmۭIf@r,*fm;yV#gwŴ)@~;"UɌ7=+9a|>L 3#ۼM11J*I܂X[h$
9Q|{ -!q7М1hSx(IC4<dȘ%Ɣ6ܚbS{G휙@5&_ΛM
n&ENmSG&we -mFạ -j yjM -[jmp|E#E8 (g<=PĖ_xI>K>ZʛqϑtH=u9_?_qϻyBc2c<'kʯ&(G47)_z+8)P -G`}WNr6(;?5q[6wʛyZ~7O@(xyCK?`9dN^CPwR.CytC2j^ߍ}G5HGK>srm.;6%Z.q)Jo}:ɖ~
& +EAHO` )!A']ald ֪,)ڶVU+yd8+dFjЇju*5*9]뱴`#b
iGlOa + +[%p8K陖YՍ<-4'}d r^" +4w@Q/'H/ +0}( +3}9."啟Ր( \rF\$#QRQ%PQbXvqGRrEQ{b~14Rl1CWzxs/>Q\Ͼ];W[ovE@G(yһ0 |hNUHٝp1lJ"0`!b?HU2MJEO%!H6o@)aSpm`d;-e#ICfN.+ +Tnj+Ls%Ħ]T;3O'Gxckn9}W/mOes8ekX=PUՔV +5],§/cwԖrjI,|Vml2{^\}~* +s#dȊj_o.2ߛF$LEYfgoYZ{Oiaf{$Րk"˕!#`Prʐda07#i9{@.|~!60nwnx.$}.(3P͈rLv&QG|n(iZJLߩi|\NjH_Nݢ}d6U=h~<#M9(g]j/=2B<)wʝrg[fQԡO-k%{9ήyDogkK|*#h'nFQeXVԎW ++31&d=:78hҮ֫w-_I;[R=m>7"S<l7e| +P>S,n^;> +UEN +i3`W/RڈQJYC4 lWOTONpgIs/İ1k~֘5?{L5/E\jnQhm A15Uf|1;Qaؿ̼aƅا}`9nCj-`OnET"Klau[WXUܼ
g%OMV
q8r}lC=7 +^m"~ӸWTP E@ŽiWwcߑn
e=ґRA윪5dpKwM KaA\[mc凯d endstream endobj 1114 0 obj @@ -4261,19 +4208,27 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F66 1117 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1120 0 obj -<< /Filter /FlateDecode /Length 3484 >> +<< /Filter /FlateDecode /Length 3483 >> stream xn$}XxV O}BIxҫQ鈝2H&"sMI֚FM6^ӫ/; ,!kDei2Q⺄ټ]I81DJYd"WقZA2aV[#1IYW`Ȳ }LfVU$ڦjH) c":<i)dɰ`gbmm,*EZkҺ.WfFүʊ0{GQ+|ivV1qG=I XiЙ, /s3n}kyBӞ%zpGZ݊+<Y?=;_<NA E9qOPτO{{vրnͼJ~wu>ӓ>|}\§N*;>!τG i=s֑>3:3C5d@Y''h -]gJ9~A.}|.|*$F:|nFjĿ +Pko*F()2}tguKD_)ip?HHmB\ K._Kc2MyS}҈#Jqq"oۣ(=:mFiXmZbB;ֵy=˷rd]77l҅ANNJX,ZR
VfRSlSCu^X giTa6L`GYQY"%\9ֆ_$H$TC˧$xM"D%E]V2Ej'HCHN$\9 -9';{Ngq,&Zd;f=TQ;-tj\ =T.2rȬs JP0'>{D!{.h/# >lzawyp)AQS(u)zaý";QNaG13[te7֛
w݁XEEĘ[) -9o(]hWw,3Dp.<鯪,U&,\E -eyMYi --)A E<Ƿrh2-+ -Y՟aC6<rɭ yf6]'l6(bvZk@Oi
J!|q5B`0N +]gJ9~A.}|.|*$F:|n +C<8W@U +P=BSd:5Ξ:*7~{S.R&:p]0d1:Gn6E ߢG!FQ2ztی(Ӱr͵\)wVw5#kt{o/n\U%nh٤*d'99)ahI7XٛIM9MQXya%Q'P͎0L=&BGgVDAgpYRHXNT#yP
z,^5<"j1vY="cL"B"
:Ep@ +AzPnF}xtt'uqYgdK0DWJVۢ1?/ւp(#JSEC+RXAyɕK:[)r厏k=( +,|7<$nl "CD*QTK%Um,Q.j쯬!O;5!Un_1Uj$O( //1lRԙYg#?1ť +%^~p(<[W + +2&Ǥ9 +(_HˤNc$Z_t@aYR5TwPkwMPBN1a=GAz3ɸ#ƭY~ǎxK-wݳW5q=ƅ/hu,J{Ff
KQ91]KC\^F$#|hRP9ZS:{;E.vA%)&@cg&n7>
S)1ɷ&(SrmPx$"]Yg\y_U71?YMY.i$?*qSۄDR)e
6I9@*I;tcaoaqF13?3̪ +n;Y~v\l;ڎ[GS[DZrmB1x ةP,ʄ + =cߘ!lYC1IB-
pW=zIW%ڃs2-H.^(e-WT"OS2UWeHFgG(V(@ 6\ +eS~/Ix8>+yđҥQ +L;.^|4鸫6-ȭ)sJ(֜)_jpƒ*Wߪmb!axRakQ k]'5AKij2l8aPhO *8h)z>Ci\\)ݚR4NlowN*mV su4d<
6WZ*T(o.8a*K~'xFnR`@mVTvJ
xlU=5x{v'jYmjOZmGNPZV{ɃjsaHtP +ݽ endstream endobj 1119 0 obj @@ -4289,31 +4244,37 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F57 799 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1124 0 obj -<< /Filter /FlateDecode /Length 4914 >> -stream -x]K$ϯ}O5y՞lڒג^ $$]3kz'+ "~=5y4O~of9sܬKOo8Og5pn_? -=.Ajb@*'+ {|NeZȤ܈P9}+v@qKpEO컪VMvʉ,Z3ؕ4JX]?e2Y^Je+s'wmcɼ@{ܗ
GkPAHs`bIn")$zg6d%2<zic2*ڬK+fZ_vN_qV%4%n\iE=rG
rzm%5/;^ -'QVprk@34\m -Xp7`sԟ])0)B|qڽ1>9Q to봭\tLUB&!LjyP?%LKtS.@SN`2ă5>AQ5}8Z}8e`Sn)KqJ7SN8e k%Nk%Nys8c)k`qJ(NySĕ8帕Wv~Ɍ)s!T,啴`M -,Ï_[n R2۟CfM -4LS(0+Q -ה7KQz}'Вo$&xW$25+}8N";%TN iA2)XjQuSXbXV'E42h
MX,Fvl[!vK}זq -ej~KZ@x3~V!0j}PL'NriAx&ztIi.0̪ճ -ze✴No'-|ev2-e.h![f$]Tj4aTT93pu⧴ysB-sixf焊VKT(݊33dj& -K{%v@SK=7G4kT -ê -hI*P'*-*Kt%Ϸy -s啃ԮM&M!o{9WK3eO"T`HgZ|3C
MyMҔ`{(y.H5F؉Dp7!K*.xN&~:-j"aQ_Km@TG{xSR^6loӦZ6 ɏD~cbi2`)77ǝɺX>dU侑ƍG1Ay<u?ݶ'L!3PH@SHC 'K{; m -4#2fJml:)OVwΫ +g)4Koq3;DdB6GQ!L9,]ZɎP<{*%h}LŤpWcRW4rWIkgU@kz%50ؑjQO"25y)+` -vJ;Je'XNtᨥ\"bR'5tKd V1/]+9;G,%
-z"b(6D-,(NapAiWفjj0 :M)-^'J2IݮENkJ9P½y5u<MmO93%(5X2݉99h#Rr$zE+ה}{rvd"lxp3g;1ޑ7r3qm -|Ɲf" -o5T -M,3s{àxؓ*M3+lbe\hvƢTjY'qBJ˺ -AFTӮchtpLPLrzpW[UnWP^܄sT!͍ƭR']Cѹ[#9RUҊzoR҂2iAkoF/Y
ox[#IuJYۂz2&yZNk'om\{2hRgA6Jh +Fs^)$[䥜eۂmMH%O/'5"#0pm -rt蛹Z0_`؈sb@ݾO'=]~s|Jst_
X{ -<?v -
LU\t"ܗ>*ߌڞuҮ +<< /Filter /FlateDecode /Length 4926 >> +stream +x]ˎ+rd T-MO<g|%_7J<^H*oOC3oQA!3g:ϸo~yG87 +9ÌC\2/R}8T~,"-36A$D@fCAP"sɣGVOFW]}iŌwK߮-Ϊ$\)4+${i)&>@XJռNzS.pUzs+ +'`ksR<@< +ĸt;#Oq@M)!0JIѧ0NO)1nes1qԶrWɾ71tZZ63=e~?[tk%Z +\2ăx\;E `{MyG +_}orO:̃hgm>eQSF8z Zq'EpiCF<f$)'~5egR^s 5>L
N%Pd簅$W82}~ Z2[]0SX'M4dh^
MX,1h7Ec߷}0~2@XWZ Iq73- +Qb3y@ht['&*2Ҿ22VZf+轖Ys2;].v{̮ۖlm`iètC
rf0pu憅Zl@e@%(݊2dj26[{%~gģb<
ZnCig:a$;-TL5Q{\b M衜aK
1fjRu12[֓zUWP>[)Hߔy~xz>c5/< +|O.'\/מKRc@k֚BS'?%/KY_@ +zrtл/{{n"3v9U<@CR,IZi2p&'5vLAՖZ@&v0,'Z=_bA8}uG]_o$.w ƚNQK}C1}jb{oklDK;O-^LvBޚHmĹHuv-H}w"u9}aOhV
0(1PvL,j\N+~! +7,I te]zFZJr@E`XUp-TjDEi1 єe>}p$G!WJnO,Tm
APyCeJb-cgKɦ8X<Z2Ws{T4RT@, +;AjWTiֻ[% z*Dt;˦ĎHZő,δ,ha.!<V)2=Q][6jp9nN(o)%C4 +U\LkuXպE8.<)_|-<DQS#l8MO@}j!&8&?9
H3ʀܘ?w2'bp)VFYyM<IX&c͐(wg)PM[aV/Azr@<4Tke$Pv<'e00u\V
OjWjF<ނLKSc
H<\߶n0BTMEJl!%- I~:F +Z6*XV*;'_N +A +6L&5u*;gw*U:ӕʇT_<{߽]>%Nb$FSf <Z[m"Eeh״iɒi4S<G(:0e7%+ed*l=OLat +C'lS"WVAɯ2n'>cShDg]3Ow>Ȅ2m31BirX7维ﵤx +Uu[{%'tI!<Υh+E/64&9N
IkgU@kz#50ؑjQ/"665y+خ+` +A,Oq|R.уjuz +ᧈ%p2[ V1/]+ +9N#n[C=4'J
QJDPUv=~}ۻtS|:} LRkӚRNlGiMݼ#DrNJi,DCIÜUrёSw)9{i=㢕kɾ=9O26<F +\L^3ߘv_8S6}}6OIr +Ayʛ +-DM;G#lj%R~G+8ahxpj͎gx+ GԒ/z9SLd+U{*}=}0zSM?P5klwMRo;kZ +;<1ϝS5":4)q "چ4}Vn9wJY6S탧b~PW7|rc9CnCJu}˺b9u +gh'cYd!'QXYԤLDI#2DdJ_fq{YVL_-CoCtVIt| +笰jrA)ɨ>j0Fa_3D6cؙhe1}*кGb.4`܉MwGUh?B=I7QbiyT߰jz +0,\%zcK#O>.2e{F5֓[OCt! sWv<W2vŦ*'ؤ3[\Sxu6rhnlP̈V
74/kH49ϟ$\]BCoӑ +ne=` +ڶ7R@H5^J'q&omh-6Ho&7!QFVHzZֈt6*a)W
endstream endobj 1123 0 obj @@ -4326,41 +4287,32 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F42 792 0 R /F37 793 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1128 0 obj -<< /Filter /FlateDecode /Length 4612 >> -stream -xn%xGaX -<[Fޏgjb_b̫Y%]M2 -b7k.ę2qeUH,32p_gb<F3Ux>qK#xCE / -s/ E(kຎ~guoxN+߯%[d+)\(+aPx7$pV&A8R7BIe8N¡f<fYB'?>(nfHE!bqte2ɧM\6l_7)w*ҳZUBjr -I+<gBG8ٗeh<ڦ^+oן݉V?ooRoC y0(&-_
NG -OBVA|
-ϒ>k[FyJ`2jf^7TAu$(A^]V 4 -i`WiSv8:U#Oc0c0@ٯkYBq5ZT-*3\vFFi[1몼Հ*o^&o%aʴM'[vk]*o,UT)t*ObU;*Ph
t_'B˞q=Z/S-Gj=,aӂ&+ =p
h
Vtp[Z,Hr`-DAweG^f5 -X!vD3Xcݮl$k<GvlHJ -fur(s -L&cH^1>,)oQ2vH:2=A &Z4,"y?6jf[c'{+!wz!: tHal<i.Cs2OԪYmĒ5iaB)YSgu/[&NmB ¡
|VXjff-MgW_Odh7=nn9Ub_:"P`%͞e&8әтۙ/8jM9.
/Fؚe.U8h!ƫ6OkBJք6Ok;p<m9OX\-*V0<Ld&Kޝ(&в{R# b -JhkVཱི7 -"/h3Ai蟚-;~M|h:cLrJmsP.3'$ۖh*?B(UcpvZ6IUQ5-:nk" jߴaݣKSC/a1N.9Vκgk -By1$O8CFmφX -2[ d>u|qw$PDZ.d<TYM3&Em}_~qX,ضK:'-Ђ%A4s)&-ɚJaVnіl$`3V+2LQ':Mΰ-j+J}ױy\*Yڧ +
*ZTՃ'm->=ҠU3-@P|TβA-klnlc,Z*Ctel.v_*6oqiLioaϖ#Apk'6|~ -&*:<QxU'\߭Eu2{ױq,?_ o -9A
-ݦOi)X:gHKbgmʍ0պYَ^~@'<8Q/"\*;'i$KQg|GBPTORftRK; -̀,7SѲ+ - :vg -`pkcYjlobyNS0Rx]
fhPXtz?5À -OghwΪNީ|Ы7)ך6bW
=j<#Lfgj|UVbQZ-V9j -ɝ6^F4ڮ@Gv^]V0C*&#~8y)uS{怎w.~eq3VhJ5XZK5E3ViױS,{)&u,주2rv7nIp&{iǀ-X.6ՊWFU20Q -3Kݭ5y2p9{M] -ݓInl)b/J0-$ng -Ras#XzZb%QˢdpEr_\n*]9YH`0ܵV -m֛G]ǢOZDB|LE:-#B|Zke͜8kx!;.Oݾl}uE*t&徭EM@7o]_vfU^ -,qoU:*)eI~ɷ
nb+<eI~m -55,yuYerq+лPԆJAI6'ƟBKL)ٰGpR4x@nܖͻg<<]1 -knQG"V8jaֲA/Ģa(dfK\̠xi>p'M"%hYkI
:IO-$fb/we߸UXtF7yqr ->9nEn2t?=6 I&gmRR`ZZI~,z]$2R(͇[^xE[4*_[)=-y`oƎ"WeD#W~TǨ/[4&J EDAfe)6S% -
2{hs(ktOs8dTW+k-PI?t}W, -HCT
%FLSDŽ{+v1=~wHo5\@;߹n w[HK/;|PrQ>YFʻU6]x~T<tY<
HZSwkRא?^C'BMmχ.|%P>Ji4+voP%Iw!&ۧ(TشŤXnfV@r$ܪ
}2 mLc_uf'#Enhu5"R^_I&>fNj٥e(/oCoZp7/4,)Z8H,
w^gMݱ+_X"K%q`o>0i\]e[.P&BQ{e<k&GXV'fݧBIU[&6xLzb' JOJNj?V5$TgK`:,|,3 -_ =}L nMĆ -ڹ7wE,wyڒ8v|vJtfT~gi#uC.\Z Oi[
HXI6C=IzDI_ikh:x$4twɫYW?
; +<< /Filter /FlateDecode /Length 4610 >> +stream +xn%xGaX +6uդMv+lrQ: %ٺu֎i^UiZNzE|.B`8X%4X-vS!U{N=Ƙ>WkKpJx[̾Dimq`q]dyiPNaL+H5s~Hc=핐XIM:ذV4I9ICzc'jE6b5iaB)YSg}t/[&ά}h +
9ΐQ76g @Wd:אP<hBZțq>($<tBEI3`{.LP'т뙒.8jM9d.
/Fتe.U8H!F6OkBJք6Ok;p<m9OX\-*Rhw1JR%NBmh=)PC1dX$BLiTd3 oOѲgFIȔߔ61a+i39 +C|K\"ϜRf[vGl +uT) lP-ғ<!S5u_ +5oZ0ȌQ%bpAF|γ.@oL#*\%[&gȓ-Ȼ&'Tj#~S QV̺o5"gܸbDE~k2oր/]oש[GCBserEm +kň(ňbDň bR1' Ŏ:JoZ(_,F4^PV05[#I
ؗ"^Xs^=e/ +kS=fr=={c&(cZk=d 1y +2HSWO')[|K2"2LXT\FP5g5ΘYZ~!a`)Y&t@rf|FP#&-IJ!Vn$`3V+2LQ':Mΐ-jc+J}בy\*i: +
*ZTՃ'm->=ҠU3-@P|TβՆKe+YRRFXYjѕeult҈`VySK`NC--|{AX=q MY&(؝0xb7@{dS];KhbN=f9:5ahҾdyɘx) +AGN['4dQY'seb+̯chMqG=^5r4XW[nMɿ>R2_dCj~vT/[$rKSi͔u< 7F1YhBK!¥Zb}Fz֙w iڿ` +wxMP8"ک;-w]I<֜'%~dL +^C/(r,cRLQfa@C@3{wΪ)|W&$?o50_
4_.DhlR4;}WZیj1YVZ|Mk;Z{Z뽵pEk=ivZZk֚oZ
Vuj;yQ;g}_楻[וWVC
gʋ84Գ.TXmieDȩ +dzeZh3[%9u["vF3Ea@C@^ +i=ws@w.~eq3][kj-38:;8\;ԾErE("AػЀ&GLcfHs{`1T%yK;t
0orVl2ꕁE`?HWirnw,3=)i(ߝ֙2A- 3Ҋ_H;jv1ĖuhcjQD-JbB}-sEd6d&Y:dʂZC+You%c +9?j +QH3QB.ZFZk2fNh5o`}`}'n_>":bow"y&˷ˊ;\;3]~٪Rk/ò +,q;ߪuޕSʒ
'66z-jt$%qB']@aIӆf"DQXޅ66;8gsɯ8QZfJYφMl4ӗr<o
8$ڍw}DXo&mO/v +>9nEnt?36 !giRR`ZZ
+amhRIoQf.Rrbrxy){íQ/
k-SLtJzK+%;=UYEȕ (1n? RsmLyw% +
2{6A=?Q.qrYI) 03u Wg[Փ(=XPmQy7HM=o[a=3Ig/%d!r}{ +::m7F1)'u0/lCC9c}nU +٤Z(j9YY39]GѨ:>T +b0i2wu0E9ȂPdp+>*Nj?5$;TgK`2,|g3, +Ȏx3ԓNDE>FǪArMCwʛuyS@/oBu/?oK~9?ګ1p44f_.@ endstream endobj 1127 0 obj @@ -4376,30 +4328,35 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F42 792 0 R /F48 640 0 R /F55 774 0 R /F37 793 0 R /F40 876 0 R /F34 637 0 R /F39 935 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1132 0 obj -<< /Filter /FlateDecode /Length 5579 >> -stream -x]K%qϯKgad_0@F ] -M~>|t7YHbtu&Hoo?}?~s-Ƿͼo!&-۟h#}6> -A4Q(D'\1;t
+pƯfNAY-"m:ZP1
<h>LL'ωo$ߏ99+=FvyJxqYE1G_-T^/=:h;5d;q}.!"U텞%pʺ` *jVaeYXYNKߏÒKK:,t}~ lR7M@y~,(1bS"fmCHNƆg вm{h:6I~d&F{'^%JA'\B Јt
8m_gi6g~ l"ElPt^h -A
AE(㕷QWV}!xo,I^/d{o%|-hÃ9{Lb1~|+2@8iN,i[:7MB;L[u4*Ewd--XU"^K ";qqx@@!,xQm]wD/Ҷ i0ѹ1n-:/K --ug`!FW@neOcӪXfE - -Mť5Ss*ݷ3Him3IED?u`U8e篍틳by?̆z|l}S
G2N|'\?BJ6*`XW0Ͷz6zi^H*HL*E; -Ηhd"i8ֶ5_ 31 -Hqh_bJg~`mӄ1%?UT
kPvTV8UuS-wbZ -Pt`JRL)Ru$*zBMmOռ̎`V«<\%'B6t"
4i!ᝓ`P
~Hq_ip'B*Z3 Rv6w4(A@6B@ -ⅹ`9%dy6[MlKO7W`# -Y{SݨS\SJ#̙;Lo1){ZQا2Zs oq<%ePd7=qG!-O5hi"zfrۙ:/JYYH,6Gr2+^*bhCS -oKLu5_|eoyw3o썧ZNj!*p.2箢2:ڳ9}Y!M*#M bML(1եGDIN_&<oT,nu?sb]+iA#TA-o>|?WЈ&金U̶ -05'|><>)n -M\RCgP"0ԦșnpB9JHaIG-2i\ -]'hI^NzެC;&fY֡lY|w/̗>5d "ZA"xiVZ?(`ͨ(PR%|!cRE"\#HSqfxH3HY"D4uuW5T:ўu6\Χeiz1Rdz)u{L!dLF1RE'2MSFėVRsDR/( -=!(QX JӴݙ$3Nggt -nsm}O[S%sw(ܙ|0˲k$,4(AC8D -X)x \5l@/tN
(=INH"wg!-H[-Q iҪV!藅EH"u IqHH@ %H[G mDp@imG8_"8/B⚏Y -ֱTכV-GݾPF;-:rg[|`oX)V%GIݥ)ܟ!_ bxQ[)H=PJ
@F
0W>iMw;PցDh2<n]>۟(Hs?[r㚂1Û|G* -dUTtɹ$/$ç5$M #yK麹?pi;e<8YQ[Th Q4'"o=46k^ҤҌFOwwߣ.)TMDf323֙NY{}v6nA3\Wg6<ٞo0ER j]rqSFq+˘_v=ٰr -]v^m[a+w*
^24,^&H;DGϬ-۴ǂL;83a -i&ʴ]WU_U'}U]7zwNZ g5|U1
w
MˊJzjm8DkA]Y^Z -WZ_Z鋵ܐ"xۂ/}.J%l6.Vg. +<< /Filter /FlateDecode /Length 5577 >> +stream +x]K%qϯKgad_0@F ] -M~>|t7YHbtu&Hoo?}?~s-Ƿͼo!&-۟h#}6> +4?NY&ZGG +JɱkwUq$8{Y +笈іfU +(eq
~ɷHD^k@P!z<,9 +Lc$>NVYz~)%2XYga&g:y.:,u|?K,u/:,u?K$K~wXj1JX?4Q@{1\Yh@LjI +,u
1w;mM4g3!nѨRm%֒
`V xՇ/o\y Y +Xll_7lyR;eCdt݂}Ċ3; &%VDZc1{T`<Sw;kghpMl^h"bbbTVar/b(~!_^ +s?B
;v0r'Sa;x
BzRyh1*5`j`_<5Z#5q69jI O-#
7Jl*4m0TLϩv46"!I>z&MуTmT0J6b/Ίqxo0E@=M 6lj8Qmp)Q0ڨ]c]4<}Jy! Q2u|gex +vP胮9hTڥ);_͋x`P[֠R~(k šI~)emoDLV.,Vi\SP5lBU"R^ZT"L܉QjZ>Ǩe K` . +Н)JmS0*2K۷Hr2{ב 6O<U2;UT:Z lcPspŖlH +ٔӉ7hIwNz7A}6H-#k yL~YHkw'H1ڽ!?H1S]-) +~x痐lG +4ަն/=\m,;d|6-Lq:[;IerVo{pGm߳lTAGDZ҉lN2AZWpA% *7Pwwlgó`MLnۄќcI-x/;;_Fg)9DC7^-%UP_{k[ޯMwKt>˃?t.;P2{lRpG,<y.:h{sW;3mݼSKV[--w
x% np˕Kelɸegho{oO-E<8L7VL/noԛowFYgU!؆Y<~f"%oDdLFDsx ͮC_J9Ofd4Ժh4-%g>ZCN8YH8!%Xe#@4[[Oy۾NՖ9$Cym3Cr<OBxfS^=M;w1:/G9Q^=qZ +M# +/a@7y
t#)=÷OH=aAs1Lhrny5CD͞ S4x}L|//ےBq>_&4]F|0wȡ(_}>/)0ogmOuNQdsO)y_hK2g +hh298G;iIF%cVB + ,j=0UZ*xAi+݇hW>,Qng6(ubge#jwFDzjxU5AO)ܿ[bO,.1OO| +IfDC$\ 7fk
/Rs``ù@?ߟke4ƪ +i#(M"%r@qB +D;!16''P +oug=8Dm6WmOoPys' +В4w4-IX^<UAl4d^2/Gvn~bZ:FRADќxW=ǮyO`HJ3A>U'R|~P48.8Zg~C8e}GQVٸp-^ـnd{œ֮n{+I%MwiMYŭ.c~dÎM4Ld7v=uvjYd8\(;PK7#EmsZOnMLe~&h۠OsewPk5\8||sDgirQZ>wmWHk2Ydxro;/fLC캹
A4rOwb}_l[i=\buoT#dҽKB|fڋ\l]| -WmJN:^NQE _Y?/X]GH%5QѼ;M|QGҫV[)t {);mi4xo+ze +8Qb!R<ۻn2@2)ꛘ+v1^W|Wă`Uu`9llh^>Ϸ'؞xU454.+*A䫵q
umfzzk+ _kMjmH0/FsC_kmkg()ߖڸZuv?64)H8߷@* +e +SRóVg9\.!42r˧=\f*xsFm3<]3;onoDzIYcQP@jU$.^8QX +qv˷4)ëih}߉s'(*_g(1QڷǼz#H).?{f4pJ!h gw^M< endstream endobj 1131 0 obj @@ -4415,24 +4372,31 @@ endobj << /Filter /FlateDecode /Length 5323 >> stream x]M;nWeE/@8쒼`VL olCJ%%aU!#JX?}?|w-Ƿ_ͼo!&-}۟ߵ5Qk} -R|Ёrz/E+' ?3qY>}3Vћ}4G@RCANU(e#Be"nqQ&b-qu :O;^jRU4Dg7_m|߰㷂0$")$ vK3
;4a,tJfT}`kPgiLWKJ319ʳO+VEE<<{4k4z9TT5Vc:X$ؙbPNdE}RO:}/ -mG, -<kYFyt8#Q݀h婽5pcPe1⠼j"O&g2V`%xx[zAV3^{ՋCv."4Ki 8]caNE'rtIn%FQޭڟyLǠ_V}X#ZY"F;.B.b@:1؋~Z -ji^a -l}n]I:Za*OˏZgfu#y}+BܿUXN>h-я^j0t[=1\#ę:}= y(8ׂZy --\>WI`bALQY]?`,wmEQM̘nь%ní]!;R>
w')ޛ(Fl<F6D#V0V/uJ܍r=ϧq3L}Τ<S 3ȄHȢ":ެ7!f%zn&G`:i{'k@Gnm3NYmļpCo˜cSr_qJ磃 -J藫ʹ5KQevo+9v[Hju&P0<8j";*uı/dH6yJy(D8\c"x-`D1-4M̜l`,nO&%в
ۋuKQ!4N^wʡ<?~<昝{S@yyPAQ|`^{=r7W;ZխF@]XbV6R\ĝ&!! 7}:iТF/#*%d'_IlG\@]ctΨp^r6<7sC>t<שqGKqĝ1P!HFCK<@i+Uӎ(pVSп>u"aBWH1S -sh=F pb-nl JU`NfYIk"&y
DwD7:=L<%:Bt"W8N -Ў+F'Nt QomI?9 -WQXɳ&߫Z{Ni$uA*֝udvAYp9L 7!%ۺZQ3x;K6|4IMx>\f CI2" 1v/\EVO tNL_k>|{r'6RԉOi8$'-׆HGLk#T>ͷeKF?вGރw~vhEOGcD#-tsrkEBzzM"_ϔpKfiD؝fϟޝ
lBg"s-kMnn.H'wg:ř
R%j5\uۮBTӵm:rVQ*$
ӰC;YٮUX:\y!O>D4{8*]Hю̗Chgdv\F^En~3rdrc}ͥ<K\?zWu\l8 -HF/,<k5^U{\@+KwVZk8+I14VT -ю'瞇7$F88$Fm)MN-}鴯--˝ -t4unw"듉&#>\,Ju:Hv*7wwԽMJ:JHFS?&Z4JmTjJOPK|~v,\ EdT*Zle&2XJR14pw˵ӻzBT*' -ctR0+Cjn;fgnPI.y?oOW؏/R<fT k
Bkчq\j{$df=QI% E4xTmӭ' F+۷.f|ТUm:I;QDR҈{Ufr$ZȕŭMƈf`bqşKjqO MXibj2:v.2V~{!A_}
=y2:]>MnΤQw]Ө<!3HɯЏkF-#oMfQV(I/يS4YےO5齯o])X>CyXy\ښj˔LVݱ'vk(,\b~Tp~>?5L?4~6i.\JsO8[|f!iV3i.Z y5g_M\u6|G,F#J^EZN} --F9wK$7^ę3rҼ -HPz#^*ɜi:ڼ*i)GWM|M8ojWMb6tMK: - -Z!0kji"L
֧h2hhgaIU䘱(Č틿7ME|U@q#F+;'49{aYV-c^|FP!*
_ڛ`ͯgZ'\cWJssGaX.<e"j9;MRiB.ӺfL+2MgZs#y.z1̴n~!BGVbMc;SB]9Xmۧf\-~ݦa>Knߖ <(
&
MI|
(H:ߥa7ܥaIiثAir, lKUZWM̼?qaEGuhEpu.M$I +R|Ёrz/E+' ?3͑$' +܊DH$-"6<`Fݣ)Q1^mB+3^-)SD;P*V<:t(ZA9pѠ*mPQEXp/s(biJcgC9aIa?8?Pa4@fm
d8(+╭}c"l~=TrgrZ29:K?k,$4zy4ӏ +@/4NXxײ.a!jqF,IS{nk(G^BQ9bAylE*)Md&"KJ5Rf\Dh $"$@qh\hNh +6
"K
s[?왎AqE6 +G$lDF0w\\O+uc<70pE+)m!&҆5~Li{e?N9{y]??9۷?_H#2yu"rO-QSw +ȷF, + +IH֕4cex@{VoVZ|<"n|'"۪+o_lڊ4̿:y +7̤۷L35p1SL,:/!R3ͪaxBk^fr:ټW{&NOKp^zoXh +{>d̩zh0+Ml;%wרy>:h~LZUfV>sXqnVoڭÃ/ҼoRGBo㐧QWOAيË^5[>&"
VOBdRydR- +\p@:{.Oj` R-i8b\&ZOQX˦%:H*Ck$$SY;Dwwn^C]kh% NSD7 gN +b4,2|DEyk֟μ>w}^$qFN +pW$u#C*BWf/>m"{W[x/gE_s))m{U[=:#Gf7WI O<ɛ`#_N+t_>_Oq.ݣDqDJsR>u ++ u + y-+Q4{
CYN_KI'a&$!Mc>J:F~Q|\T#4,L$AD8U,P)Z#]x-RHFIY^$&elhA# +A-#248PDVǓº"B"Fm).OZWƁD|cU02Dj(n杕ũVJRDMա$B ǹa8E&o`M8IiN% Qh[qJ*ugvKA:ktr?o]d"HOp:iD8RwRM*u]*uoӤR;NR!R$ETŏIV2ͥR8C<R1DD9&%&Hh''E3(V%AI;ֽFT%rm*u( LR)O^Cxnww/t>՝8bKiJ2L4)hZt*)6̧FXO;)WB915aQ. +cpR )U࠷Orxלj>g]oMێGnͰW)s"+R-h_$KR/ zhd] w +ZCbJ<i"|XCпE`6_ C5*!{fzwf~
-/Caf +岝*-su`CQol(إ*){Nf)RYIk"y
w7:=LQ<8Bq"W8(N +)3eئ7ܥu
&MMK?1/NYpk +2IZ~#ޡ,$#5/eJ9Fju9H܅np/d$ Zs$@_EYF`-$ta$ ֝P
E(Zz-+1'8c$q4 +1cMwA_;P܈ + M`^XGU˘% +{Lkr"{tәB<˴}3_ȴF.QXF;-/@Wyah@i$"q_`;hiҰ۷e8Jw®IFlӰgҰa +ҰwiMwiCAjP\x.lhl(鯖US~13OE$irZ\K)>Y endstream endobj 1136 0 obj @@ -4448,18 +4412,21 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F42 792 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1141 0 obj -<< /Filter /FlateDecode /Length 3876 >> -stream -x]K
ϯ`+ޒS<8@rY%i
cRcuE]~>zuK&˧>iB]%%p)/7/<+e~R~PJU[BkǗ7ZxM?Xix
~myc{:?߮;맟43İ8%)VŧyK-mZRU?|zo _ዿ/j9]>]^' -Km[L^ZZXWVk=~V?o<^/f1ĵ_Lg!tF:b:â]RrֈK{gbSY$o|hݦ<m|خlcv%hwiz``iuz96 -Bv%SG
9-.VuBXX3¦%)K-C<4"a3*-wliQ
lsvHVmF'fϴ6Q\u<р,HI&$֨kK7;IO'|_[9ڬO!֧2`n?z~oƝknO-هdW$@ 8VuNVg=NZg<'Fޣa,B%^;4:5lUzPKI}[.sgTj.Fw- -HӠ@kCٷ+`+[%:ݺ -S7mG;~>N85M{'Hh1,:`7-S;p|zn@ua,!"/^de{%,$iu8(kn5jCFknۈ3ހ.\pC-"m>pS-3A`:Kpwp -hhZۄHtS!|Pa܉H!6&[v -fj<䶋>4|c~@mc&牣kXn}2r?ޣ$̚ +=57^ %L;n($z;v|x!UníC\74+~D./锩
Iͭ.6alFEæ!3Ih#yB(\:TIꇷr8)1Eͱ;Uxo<%y< -,KpY/>Ky۷bttgGK2?Kyi?p-c$ʲ쏾/tc48C\M-lv1p ݬB+[B\z&χxp0;.ET<8=Wf̕Ȓel2Kl[ 3c+n^_)3 93 8N&4#ePrfHWm3߯93EINSg0uF} ز&<8uj7u:Gnݩ3nHq5i]v+z=DZRgԒop:&<KXqn]%-U&"$LRl5Cn9I`v֨J8k~A@[枠lLd,qSy`Й'"_g,'Lc'9ӳf;)`ä:!ػQ RQ|'^aAjky`њR>;FNb|'+Bi_3g+-a߀7;p;ߎN<i *s9P%a -59B]VǞڊTMx}#ivpj;6×wl;69(UwV̋KѝxjHVލ;Ez.wt] -TSxkZ +<< /Filter /FlateDecode /Length 3879 >> +stream +x]K
ϯ`+ޒS<8@rY%i
cRcuE]~>zuK&˧>iB]%%p)/7/<+e~R~PJU[BkǗ7ZxM?Xix
~myc{:?߮;맟43İ8%)VŧyK-mZRU?|zo _ዿ/j9]>]^' +m~{()%@aٛ5kc +ךvvoK6-&/^-[+cAxh?f7KryJl`dx3{/&:`PFf1Yaat.)I9wkĥͽ3fb`x,enD7>4nSh6>lWav4id04:TE!aFL֩#+:!,`aӒ q@!~a +q:I|˅~lvJ?@hNE)y|thmH#W<vlaEx+9DCg[`([iNctJsZ181݃{O>vFCm#a4q gb&ܷi :EeJѸz.<V_Hns8%"DDa+uŐB2Mqm6Э]mH7u-mq0n_ľnS}&\l[^g N-;v8{I> P4`,!Mb +Fi;)f&toZ<n}a'cJ}qq
?[;^>QvöbՒh:t N:RNԬs,1&<Mzd;w}#c4sk2\A]WҸ'kteb')ғ|ڼm@]kkO{>sg{& +$@* +/|ؚ +m5ԕkeѽtҒT&&b iHƱܕq^e.g)oVLޒphI`)/B"S?vy`! +fH3-' .Ui4Gy
=:\6HshMӝL;>n*p]Qb:DB6c]iD1sz6l'3%luTg {W9Yj5JdaK:?(Tm-,ZX'|'IC,rdE(:+y,8v%9s||1ߩ4;〵Te.5 R>kju}S[1 +϶a;}|Um&ax
qF;'u<NߊyqI:O!3ʻqHo%xx.]kW[fs-%]K{I \4Q"2IG@N +J47j7 +&]OI߁7M +K0JFRǻ*~uJ|[AUJ|[!5J@y%Jꚓ%I(dgD hMpGRp`(H#$`yQs=>*yuRLg*
)ڄbˎ룃()߅(a:'QDZgN"p.˧G]18"F1x6}8sgML:[ۓh#D D^YYtBdE+ m? endstream endobj 1140 0 obj @@ -4472,26 +4439,21 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F40 876 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1145 0 obj -<< /Filter /FlateDecode /Length 3432 >> +<< /Filter /FlateDecode /Length 3434 >> stream x\K$
ϯ$ ,-8
_C=X%TURw7r*=OH_z??}3oQ?? |/b9s\K|8Og5pn-{ -\'δ"Bି]t\9מYe9W9YxN߶xw<8C2< (W!w1t @AeE<)8fLS({-Suwh;2$w-8]"=) Jcz'9 -pguqh'l 4}w"l6h'`H\DI71m㰬Ve5J'zm7G"OWm>d'ONR-@'Mg/ij(fq>J?uF^+вOOTqdL(>%1ئ^z
N -Jyrwa
c"oe4nJk,;"Bz?5nPY،'I*qA -+HA3W+$5D,XO䕉dc -D{%@IT] -f@UY=2վPΌ3*!Zls{yJ@C&uɄY6*W(C8P)A9wмXJp.Zj*vy>R~ߋLD0$0z{1 -I!(`^EQYEFz2{,v+q_ٝa-LCM]Kpl[7B'f*"+6!? -Ge0P -ulKlf~zcFɥ*DLEu%bL#όwZ
T6!6a!L.Zb^ J"h`?X߈8A`NnG-\\t./qZIkK2Ԣ*%m+gŕkƵ]tR1WՔ}YʬQF8jX'86;mOK7p6@@wNC
@ :Y(h -Mipnl;)}n (R![7CyݥttmYqxDcJs37ᰠtT OdjoeN-<%}!1¿ywSe{;\-3 7<,ӝ_r99Lo5b+A4 -'R$LlRt\wI.mW{fȆ_7 ` n{:Of <D*o]`G%V)_&n]~ˍ)VߛnpFզ>óM;ˮQ]-ehҪ|Lm@>}!Ihm[oN
VVӓ&&CtHp^f][ ZA}2(0-|RĪv!DAw-DBNBlmrclmjEHk״5hUL9 -o
HK
z+{Z4[.ψqĞސޮA>!w=0*$P
QhTZږSN~cJO(b0K&(cᕙp\H09Y'_зf7n=#rx'@ԛ𫬽ꞬŴGp5= -'LG#fm[=:ƹ$3Kj^+"@`<gccd)%r -Щb<<X.æbWt#q-$݇7%uF,Y
p|$R2Pe:zm.7x¬<Xm$K8[K9\1V3eU+Iޥz_9AI[0ĥ6ƠBFY[ttrsic[Pf f -U/pWI9Mhu#OsehۤmUzZa-DCԤP}%:]kUj^jM+U(Hy|H<8Rf&R(CHD5 .k
n۠ϔ VmZLf73:#G (tEG9+jRV2z&TX:ȹiMCHCntl\0iF[wtcPrhfbcA٨<9lQp: -nDz\䰬49l7rX 09ͅJcænl4qc -]8l +\'δ"Bି]t\9מYe9W< +? Ǽ$K!\biB5Q~2oRuA6!_wL,fm`Viq@{ZH*q2iC%N<UtE)_3 +<G9 +ՙQbV:Dz{aO;]~6wR hh¤W.a<0Z +e7eUy"(+T NE+BMEuR5uU:>u'R/{DSW/z/F!2I31kh>*2UObŎy"n>#3iHq3k QwFwQE;rWd&䇕ZALJmIPbrOoLRHR:Th[ `sQ0Nj&$&l:>R3UTKwDA9
ug@'=p5lɭ0%N2IxmIFZTy嬸aN*jsrU0SԶۺ/K]5ZGgfgi)H3ih1~hP'5-Zi65-m's1-A:}X*$srH15 K8^[Sisn< +d[퍕lݩ9/D0F7OnloeD紛}_.?3 rQ +<S~h7Nvb`V5Р%cZR/-saQ=Ȫ5SI7颜ͳRJÙ4z?l3p T+A j!נ]K +zsدRT1}yPLT bGe
$t!2(, S^:B%HK!0$,PntRv֨,,k#tE慀~)+s> +Por{شB шnVζq.z4ҾJ6G+Hz3'!aؘ:oFJ ); +PזyB0iU+yt+yaG;v6)i{yqX/5)T_*xNZ-4ZӊjoU/f?R(e71_3R(C|7d58R(yBMnZণ63%gcq:9rC7Qf9 +lQG,Z;r Vres<s-n!D/30jEQ3'Za%Xаe6j8Ot7[:C09,+EnVEvsòX[.M@4"-!$v!DFI[!B:!6Bw!~tq +!6"}B!CR]7B??A,&x0XSa)P=FدwGt0Ю!YtAֵ2D\tQS endstream endobj 1144 0 obj @@ -4504,24 +4466,23 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R /F37 793 0 R /F40 876 0 R /F60 834 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1149 0 obj -<< /Filter /FlateDecode /Length 4142 >> -stream -xڽ\Id9;K*mEb'|~/š^z G|䷿w|7ϼn_I&n3g:87~~~\~\q%?^Rb
[i6Hm$5+>[+ӈ?F,/?݊x)G[JҜ4ʒNKU/-SjꥐkŞ<sO>ן/_gһc_oJKyLl"
R:o)e̵ܑgV"s9o64%l =y6/bt@ ,y RY/ -A35)9iFTX,PFGp0-8#k8aJQ3R1Қ*%{ZAu˜S,m{`Gk\<b -%>B[:(:_bÄYn:̹BY02JOgeg
mɚol+h;ͶmG'H`${=)w2t: ~U;l6UQcˑ!|q5}`lEm -&:6q|b[6 -=zMG9up#ִ1>ph6/",3։&?xW(mV)' 1 -Sz&@VV}{'kFO]9H` -RҵBz4r Ü|ntF[~6М5Q7p -ީ2/1 Lː"K,ЂҶ~f~jФ-TYBϊ
*mePz,[7N`HVhPi1XLq3$*ף$%[3YGDEkr -Ur"(!9vW1[~Ո$c<,jNH2攨獟y,0h?Hߜ]j}63H{{}hPA cg96 ܨSL!h4tB2>7$|,-by+&R|mWU6y@2GǘVIɨdld 0SLkڌhe]D4iô3+]j$ĜApJܒM5ll&7*W
p !+OaFlui;&ڍlis9E G1[^.)Cc'6I;;ֵs6^N+UEIRZy0³g"QOxʴwSΠ%NJP"Y}Uakhs0N19E?6~oD%OPѤ(oUMf/\0JVwL6 -\7pNy,|pIb
>tpv=7Il_%Aa?̢yq^{7Ϳ cNO\AO@/=Z~2+u*=O)4>:渀BF6d]3J9bɍsیN=7K %:i0ݘD5HРcr߯Az[dB~l qOkZj붼i<>_Ӛ.abk3<6! -3" -%کV2iU%sJS -2cؘzk/};3XMi_sʧ)Сwr'
@k@30+Vuo$(אOH
W?ًkcbw\#:/ռ'~2=Cϯ]rnڡ6٭Lc<@~je?'ߟ{DQ='r5cq1-w/ˌ>>1qЯCIʃ](eq7#y`}9NB,.ǡDZ9q^.P݄ )>t -ގt^\T0O,I)10 xU:zitb]r?"vծ ^u~]'>°Pa|wq;xtzr\]d{Lߜg7g9l -Z+b&EwPUJB5Jd(űc*왮eitp[,Hm]kSy]M74hly)}(`Zk@q}ilSmji+UÇX,obX{&\I"EwAdX?ղ|N7E.˄='Jb.фv5rz{AըO$]hfTrbF"ܮxݿ^6Qd}{D|s#emz>D=Dtnu)afVW.(I5DlW癊H=aƱ /9 -̙82OU~)"p[:j{: -*rz"0;=|Uwi(m'=EVcZ*|g-JN +<< /Filter /FlateDecode /Length 4146 >> +stream +xڽ\Id9;K*mEb'|~/š^z G|䷿w|7ϼn_I&n3g:87~~~\~\q%?^Rb
[i6Hm$5+>[+ӈ?F,/?݊x)G[JҜ4ʒNKU/-SjꥐkŞ<sO>ן/_gһc_oJKyLl"
R:o)e̵ܑgV"sG H|KVenW}Ix6C1c:Nt )ˬԙyG~K͜4C#\*F([#^#8nbhfMG7[t7 +x9BS*&UZwCZqtO?VbS~b
c5hGYD\hYXKa0+֭@9wsYu<8 +y:Jwuq92<`o FO\mh/
WD1Olkc6a['Ti5NzĚ4N-%;#Xcf:g +m*%4v$a: R0j#Z g[5`K 5r\%5Ņ5O(mht'XzQ+, +_ZCVY9'+,ȉ"#X$Aq/pDJ^#I )dҦqe"X3iê:vh唼T%ѓ5QhWتh1>`I%(a2ez2`B +==z=HUHq* uqHkJ'7EHy5Yx^HxW[Uf4J0f6z(bLת'~fǸ(aIxvl=(wޑ>ia5'(@"! + -_(nvu~Yh6W3[BvT ʣ0ZC8\!8CNS+2 +x2R +'I@%)I{RF$QGmgQ,vhGm97D=ocfI1G5,,A6Rcݔﳙ䏜@Ebܓ;G2gp=8Y,NfaO`o|FB`IFS?_'荐<'s[>g}nI(X0Z08V0MޥI)ld2S1F-)QVɀoap6ִ3>˺Dwui҆i˹fV2ՔI)~9%=$j&L +j#iW:LAKE`ѫHikў3R}`&9LC0PkFOd]d M>Vdf`uql +ŏ'Oy)*0#)@'hGOsSfU,:w :ĵQ
zG)^7_RS2aN>x1KSco(``aacOe819?S)8Cy*PZ9k -ЍIZPӁ
>&ZόDu +`0z@jkozygz)O%C,l +N8tyʮ<مRg.{~s8b1 +F?Jٗ$"rJ4MbCH58ΥKs 9r4i뉡[ǚJ'%S+RiWxZ +zN镊j_gLlN~R+E*Fw7G''EUMdi xvs?J'95hO_ŕ]
%7ŹRpj--nR~Q}W?_{)~T $QSD[;ZF'QL:
ρЕ_f:$zCHOsVWه&:qvחvA=06ڪMBYU8|I5&Wnb%$2\tDS-tSLS|?.vMxnǙ[#7_ɨ[*zIҵh-IU!.f(jeE ǸL:ܿ~L77RЦ7샿-A$0#}@DfA\1fnu2T^kLV|%poгf; endstream endobj 1148 0 obj @@ -4597,18 +4558,17 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F42 792 0 R /F66 1117 0 R /F34 637 0 R /F36 775 0 R /F39 935 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1162 0 obj -<< /Filter /FlateDecode /Length 3700 >> +<< /Filter /FlateDecode /Length 3696 >> stream xɎc>_c|40fgnOI%*-RA,^Ţw/+|址/E\gڋq v#ʹQ[yFSe{>1 Ϝk~TF8;b^~="WKgVfľ$I,IdƻiYAԧwX93X`eqÅP:`sj(FMnB43iB -%\7sKOe1C1.}Iys'{j_R/XuO0"Q3jDz B͕WV'u}KsS
x7>-S2p>Qp_"Ӭ|}ޠks|8RpG5
_" yLIR2"yrF6-&ӧ[eXwZZ01vM2m[EIX;A6k,RCK=1<>Q>JP8r 8U)YIR+mI[h!qqNf2(Eި$u
s|Q}Ȋ ɗu9w[ }rK''DZy'AFȬE"rdwHIY z4bd6](0MG?8Sr"|HQ,ɶyVT
1"Wd;kF4ީw[AL$d`eqWiJwLjV9 E]ܽV$*?3 ܻ0ȣ+FnУA{iDBZRNC4Cd5E^ V2L^ET붢7$er7}bQ̫XIUcƌp&7![<:L@B=/uNBd72-R\
7<SC
qIƝ!Ij$I:?-wBx7$+z=ݾ&hrI5iK2δ6]H(X.2,2JB*d -B$ -AIMėnY&ϯf+5xsm9K`@t{\3D1SH2mAG2=eK5ϕ.-a8,<@0x&efn2VP]%q]Pdlx3&6)MP:x8A7ނHy쯍v^[~ƊY҆\SŖA/I2}hoOfׯt|=)uict`Д2*7Ja -Ӂbz2QZˬ0:lZ-Gn)#zňљl8iJ}2E/| ]NZŻO"5)kEmZNt4:)璉?B$s,DA<,jb%3դ246IŸTB0Aţ[6HN*$>HG(iMFmZ陑fcb`@<0(+[KFgZ%Fͬs#^;ctdNOHH?^#P'| -c'!7LL퉋*V&h!iwTg5:R5=Uͣ4Y4(ꯉh7i+Eǂ.ݩ9 -ɨԟǻih"aR?1r.6eb1~a,d>I؞Ԛ0IINy]<~n#=v6C-FvrO* -V_\bڤ{f -_&jJ%{ Qgɩ{%c1]rvDźm2Nc.7eRO-!;Znlpa4^Κ"كЖ x4̺ճwЁgS{aKibi.l)y[8gQo97e<XXC$NNW|h~*'
HZ7/Kޏ(җ.Eiyys^Fjٗ
$х4 P]?Pj;ҦnrqkK>;r|s%]ձUз֧;WNvΰN&ӈpk+^2+_lA&YJKDFx| +%\7sKOe1C1.}Iys'{j_R/XuO0"Q3jDz B͕WV'u}KsS
x7>-S2p>Qp_"Ӭ|}ޠks|8RpG5
_" yLIR2"yrF6-&ӧ[eXwZZ01vM2m[EIX;A6k,RCK=1<>Q>JP8r 8U)YIR+mI[h!qqNf2(Eި$u
s|Q}Ȋ ɗu9w[ }rK''DZy'AFȬE"rdwHIY z4bd6](0MG?8Sr"|HQ,ɶyVT
1"Wd;kF4ީw[AL$d`eqWiJwLjV9 E]ܽV$*?3 ܻ0ȣ+FnУA{iDBZRNC4Cd5E^ V2L^ET붢7$er7}bQ̫XIUcƌp&7![<:L@B=/u%0
\t)ņU)_r!ي`JLOmv$
N5$͈v|t<bnBT4״%bgZShЮ$tX,Kz`HILWb%!wCGi
+VKy.Y)G~#KLṔ:w\u0Z]$,F\~w?<4&!MhځԖg.0kv03ɍC+昞HŴu%2Z.5 +3byJ9ZnS +%0Zyn _C=.[f_Vr)$V6 #{FFJl0i@L fi<2L37+e箎PP2kol&fn<\mwmoA$j<s;-?cE,iC)߅bˠ
GB'3{:AS@>x j0hLcHqsZ0@Qa][(ke +^|t%C#<õ&cF~<h2V)NTnw!ۑ$(EH9pr}C!+?㻽0̸|hUw{la6Y9 + ^Ǫ0wM{=}o'8bRC7ɁtObyQP5-N̚Z/:盐ˈa}jΆ->!|J*3A8s;ŶXSz&~Hah$cOQJL?ahߔ Ť`
_m bSa]AD"Ky**F<o +Uajt7=đks%~/~HMBAҧ@:ly.|[q endstream endobj 1161 0 obj @@ -4633,7 +4593,7 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F36 775 0 R /F48 640 0 R /F34 637 0 R /F42 792 0 R /F59 833 0 R /F71 1164 0 R /F68 1166 0 R /F72 1167 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1171 0 obj -<< /Filter /FlateDecode /Length 4896 >> +<< /Filter /FlateDecode /Length 4894 >> stream x<9~ˣxfpd
?p(6Yd7l0
G*)xxޭ|Dv ?ȇzx)sOR)W)իH?c؊l{ZK6&}H]4_m/'Vkˡ!)k,K
~QʮFY`_O)+7 FDi:I3= @@ -4650,16 +4610,13 @@ x<9~ˣxfpd
?p(6Yd7l0
G*)xxޭ|Dv :&ȱqʺvd3Z>D0W䋇D|nA|J1=㣕yL ͞H)kϜI`)^W*+s%jݗiTӺɶ9^jo>v1:ŎZPNԇ[>|
<>kR}J@ZZ<PCCA_ vQDGSCW\`-86̥_艪\:{RUNS{wGgpc]P}Yl(# #mQ5v7(ä8ͼH&. -?g̣B{ijEnzoMG҇_!sYY=OD&5A|K@%OQN%v-(ʀH1Awc`(t2#`*/|ypuP[ΏQaUf5 fg맰4* X,)9
ܽC-nݼKtS?F7~_GWyn#\@$SP 3,AbqTbno["zc ڔ˚"GrB(G ~9 -tWsDn6X߉^
Dz|Ґ:'WJ^εϐXFm&OgcOV^ѻB<W98E9b-}߳c=]wHt}j&1
+|M@ -}βUx4T+rmO~(NwOFo%}uY{w%zdsE
# -6CtWgkC7zB'X1<Ehŝ&$C? V/G5}Ixz92$Y -nP-5VQb{|S__<.m -z&|vݯ\Zc z13e,ig[ -\n{jZ<L:mUd/n_<n5aiڃ?aQvF,q8F#O/"-l+Wn /ęw6z*SYst:S8,}wRZ݊,ƅ.jBgFzK -pfƪG_؆:UoN(Nne:SjFM]`.@:$Fckm\MD0AȞiPi__O1)i'hæ2ge$"VP6*\R7NEC_:5U(BJо%)ji#YYn]Nj}O.S\^^ֲG -ãux-ЕuFԤ*ӥ]4KxUaĚ})ji1}YGSp
2セaH;-(W̅jz*8t.d+m6dGݺ1v -jαS\r?FkUYhcNIwQ~2[ݫG+46#r\blzMRRq\DqG,-\ja(9qv.o[\z)(gQ7SSyYvI<(a/3"t*w 4Fr'q6!~f5'R(k1 (^Q,ThLri_~C#Ğk^ofSJ^:; +?g̣B{ijEnzoMG҇_!sYY=OD&5A|K@%OQN%v-(ʀH1Awc`(t0><zQ(-lfQ¨Gհ*{`mtOֳSXzr} +oK{yv.|M%,D cf^iwÓ.9 Ϗp LA4{SQEͿmS. V_l_WJDkS.kW ͣ<@vg?Dg'(8]zc}'z58S;GIC"fS|H\i~(9{;>CJSc1Lyz'>u<]2rb[yYF +2^<S刵hK}Ϯrt!Ā67GG쳨 +:E荱|6C>i[(lr~ӿ_?ªi2]We}utWD3/֔ii\Eiq>ch<?Jⷰb\t +|vʿgqLeLoݵû3Ji9t+VoyL +m39@o/y+i*cYt~aV߇:E{ԋ8?%{@N1o<5YtR ++=O*"Cڗ[;䦨]H\pgeɶu]:}7?پLIskzM{ůbZ* v},^㵬BWr
0=_SLv,Uk8Ŝcedr~M6ȼ"pZ4_1f_'vӹlQ`ڠړauΊ)i':NqfF{'zMqHWu`fIKY:%V+yG%luexgq]6H_KqQ|ﳴp{Oƭˏ2عm-χsDL{<[k\F(OMe!ډ&{G`ˇOJf,$wө
̧',ӬFBM?ۄ^ٛՠxJ<uf$x}2G^cS?0ɥ}3_qNct\\{{LM)qz0(| endstream endobj 1170 0 obj @@ -4675,7 +4632,7 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F42 792 0 R /F48 640 0 R /F73 1173 0 R /F34 637 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1176 0 obj -<< /Filter /FlateDecode /Length 4662 >> +<< /Filter /FlateDecode /Length 4661 >> stream xڵ<;$Vփz1pgpQU*jft(R$E%??kio_9cy%//9W?8okŹq[ߔRBK|{f
OSOwfZz& {]x7#^Z@z@qɴ^Lzg`/ևOYxW9c;v$>aKW%o#__V0jK{x!{q Zg@ߥҏ{ZoV1)2( ~O~'&<3SZwzZ@_~.S.Cs^( iN/"* }As$H^xpyxLR flĤ: 3eQuğ(9 QR1YUJ5rL
q2XLwlE "44Y@h*ͳme[ێUjB~}UݲٳUo[5Gd.w$03ErnkfA%u6<E:&ӓH)`HqBKVõ!kn㠁g%Ì}M-Ď4wV|Rƚs,)c6ũI
lԆQo4{SKxyrS5#7ްЕz) Ud 8hOW΄iK+fcִz`^!%\cp @@ -4685,18 +4642,20 @@ xڵ<;$Vփz1pgpQU*jft(R$E%??ki tE-:ښf=g!:d{\'ua/ȭQ}۾bZ!_҂k<(7wxNz2mȃZdT!d = >YZ'D?ŷ@ wfgƧ5sg>3|1:۸kjCf.qb/J\77JT6>WW>[,j40L}5hmY mĒ"FQU:&p-jE;CqF=p w*R3;8o};!As&$l<
z f$3vhuۘzYc(PՕhgrӁ8y1k!Lpw@DE4_hۍAϺ"PG"L51*8jޙh[dgVѩb -;eVQsi@+e0uh`Fh1:XC0۲o -2sdӯ\&4^eߢ:6C f H(G)>uBӓ\K2i&WjЬ"c1@$]2-ON-q"=(q)kHX -lruTRmPSܨK"l/(%vLB`*$PRR,*HF|KSrby >fgZՔK2ӈj_4@er*hٕ~u)av;z]j!&obgw1WݔCP~:@+۳Ӯ2'D։+t[aMjA\a|LpoRLEi)PR]O9cbƑ:H ƙ>~-49g:O@cHmW9d~L%dhJwCÚP> -]pp^23dae<0F_Q{k5$о*.h#;bGRp"~)WJfqt(x&̫,̀ -SMLz{3s),J_[MBm!2}r8b1S sٗ/aįgK'k*śC^GOm }w;w>*ꁎSdǣ@/'K%G#4ӝ,κW6*4>)'#\p>/TO&\LXiÏ|M9u0<#2Ex{>-ѽ؝-;zaȝk!/(PEdc-roS.j@À:GATˤ*aa<_k2њj
5C^cEZ:RvUF&L-!ju }:KI@!NjדVzeݧ10l{01o\ -4V6gF:(6s -ڋj)BXeF^[/&}š8}\6^af8ƌzD7n҅*ۣ\Gsi##w|/r5^9q繿Iϙg<9Цe -Xyvm SMB1 -%z65k,'aC\晳`;~(u[w'h\۴>03en%^ރ -%\帛`lIm --ccrM1f|[soKQ`w* _)39@W+{_t8u9Iߞy4yp{%Y_._QJ̞\Y˄٥±6'X7se\ -Qs ??ޚ +;eVQsi@+e0uh`Fh1:XC0۲o +d31gV{I+ZjTGÍYKe0NshrJF +(T@֟\*lP݁t;%3$eCUE-K1g$ݧ֍`#cmzu0z`O ?z8 +t9eW.G2no|w^ +Gҡ3NS$d#:mI%Z4Y5thVNtʱ\ V.'ظiVŔwc}aFn9źYp6)ncHEBq&@!0g\WVKM)L$~h#>ǀb9ۅ]1<Wf3-j%CQiDrg 2EO9o
ÈJYJܔ0@q.7+n!(?BiWao"DB:m0&F@ 0>&7)"4Ȕ}()ٮX1MȃtgaLv3j1v|{f?Y&⒏lFC!ZaM(\pNjEbMԮ#ˎ3s?)LCsY1W(%/+4}VO%
+M +TKF=U~d;J Kem1M|<7פ,x8 +08g5iB6̤3dl~BwnC;~ee4BeW<k9ei+ bWk`*Qbbj25^^Y!n_;ᢜKKI,ɪי5-jY?Á]8T8/Jd]x~w2E2p=5L`nh_\4Y`ʑq1D +Q#)8?`+EPbz
3H8e< +TUm{vWf~ +ǥ5ͅPAxࣧ>Ļǝ;Pp@)2Qa#ONOqg+wCb\[x[g.`N*C'p.W &,4GUǦ[u机qC"=^N͖~c0ѵx("nWj97)}ZY}zajp }e
0ĵ
XhMN5d!^/?u-}^e*#Wͺ>^i^mK뉌I=HފG=NW}RKۘ7].+ + 3FK#v9_CFN!NBq#/xPyUD\OAM03cF=XBBQϣ9ʹ; +V@IS~QĞF +n=^(j"D2hM}z;dSdx^5R%UiO}-Pf>Y_4$0<M:8T<a&cP@mawg=`;NnXun76ao. Q9UFL(:IѨ!'37=-]]i*tj&PځܻRkGrY=x/V-ٓz,mmy=J%1%"ta(<slRw!nd
kPw~Zu֓zc'ff4̭{'bq9q}Î.ԧ#v!;8|/'*fWӜqjʟ5==Ew-7 +}N%+e<gWvequOg.4'_:3c<;>&O.{$Kb+*^s+kv endstream endobj 1175 0 obj @@ -4712,18 +4671,15 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R /F42 792 0 R /F60 834 0 R /F39 935 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1180 0 obj -<< /Filter /FlateDecode /Length 1442 >> +<< /Filter /FlateDecode /Length 1447 >> stream xYKs#'W19@
TTIVǷ=%ٽć%?<`FGuewxt" ^s> (%,~RZJyFYpq9ԋG)u:XFc3<*v-Pmkc$i2KZf,lK &mle k>{KGtX-z$t~]蝕idSiRh -CoLJCL8Ƨe4,r[&R -jJ`1T͑e$!ZJ!dX_-8LapMlA"3mRsbpZ*RRm}6vJ[o2 ʖ[@Ne -W -H:~F/t^ 5N:kI -@Io\0\c(oSHpT?$/һܲ.e`XOqV$x-FϚpO=%Uʰ$Da6/Joqo
-2o5Wj\b7+lDp-2`{sL89*[=5%XE-Z(FCuPb -:D -|?lnt5.UIZǶ̞#E-U )BRf,!`thFły31͏ح!&Y!YaʷTTlJI}DbPtN% YT¡P8dthM9 -G4)X"?èO'x1,:CmRk"~0}d=R=(csL~l7)sPLʼn<{/z&rIC_4* +CoLJC2)5o0
ܖ +7Th4=~?<چP/ +E~m9+lvCx5Bhőj#]#3m#5
wwE҇krM\8(qu]14erLNeoS)RCS@GgЋ?B8$uK8FBqN"(yhRBoPW&d`$W +WiSHpT?$/һܲ.e`XOqV$x-Yā|K_RKBia֠ V{y6/ +zxϥ?-apCFMy"ƽgI8S\JSYQ2n:5b:TGI!
%FwhIs"r̦<eWϸEf#rkax +VwVWkq]wc(Vc4WDs6ǒz`Fq|qF^3Z.Rula}M;R[dޢ\%8*!eƂO9lڻ\,w?3b|KEJPfTGT*VEY!1J%</
C&J֔3JytM%3O8XJzbˢC1&vi0*|G)yS267q&}RQ97D]γgg"wl4Y_ endstream endobj 1179 0 obj @@ -4736,27 +4692,20 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F48 640 0 R /F36 775 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1185 0 obj -<< /Filter /FlateDecode /Length 2831 >> -stream -x\Kϯ>,CV ,pϸ
gnONK~/9ޝ03*~R/9>//3Aǃ;|j=i^>M~~'Ε\;?~@ E{紷d˔yom;Υ~D1-HY>$6^܄\TFMn
\ɬlJr`´(V ?=;<qN~B$H a5nq$_:cN"Pڋ~d-b::&` Z8a)"[4LrWQ_GH\+&/`?Lfn֎Y%k<RZfA3,(B0J(K53Biη@YP셲aP%*wurt#\_ }vԌ+\18 -d].WX&DØ&]"S -'1<(X
.s"2XQ J1iM -5YJ%6Μxl%s)Cs
kWՊJOx@SЧ -xIW맼\߱Li"HczM] -?љf}jtrDzns)*;~CZe:&}.Ɛ#`[/0rx/_3?iEVWy/h ^P)5'K;˒SP. ޅ'(N19y\3^}I%l.1 i$,z0 c2IY1!OiM -FhУ'Ŗ7+t4-1y[
U6.l -[(5 K$&Izٺ(]w]V*ڎ-lnT&
ElUJ*"ulpDr]'h%Rr=-YUf=j'IEq`ԳjAԆWZnM=Ώ{Am}%%{J[JPϨ{S>DTP'W"JP.!3O.wKZ%jp_VmU?R"\|ƪgU?s`CUG僃RU?L߷W¶U=U\ց@OW+X?O+&)
ʼ1
}f)Y5
RěݮJERdN4/K)_+$ؔR{>uiW4SBd,n#.4*TdHp Z$%~oL;h7 -en}#7{@骶Kd1p^FUՎG\]Yy6+Q<7ԖK8 h_ÄÞ \2F$QR= -sC!j+
!d!GiJ5y]lrjYGkIBuճBϥbz;?Άº0C ->F&3xfo( !UlV:[W| w%`&M -|Tn>,h_¾rW%n5kn (bpSE>V -
-Mx4d}:<Ds-frKDv>Zu()S+NȮ߉^闼,)gЕ,ͲjVIu7rs4EcKTٖ;s>Ri5QdR9VB0BG"\Oc#4N! kdNdܚ|Pq?aܛN~RO%ÍqTvd=֧!TX'6Ugږ6*bJpD<Ss헟hr6E]ec|~R\69zIj -ԫxXTma|UBaw`ٵ#4.`7~SS:49zщfLC+`dB[ -+C:M˛Df|&%3L[gjJv}i7(:}3wkĊvz.0َǠvZ??mdeA[;0w -D]^XE2y9_TU -R1d[=_.isn9F8Wi_v,~z7b.WuB'k+F-@#<Bo<T1ij2}YPqW6a.07<q\15anxy'-L'Oߢ=f!w& -'?a sJ焹 0WM0a@4O_hy +<< /Filter /FlateDecode /Length 2830 >> +stream +x\Ko6WKV 8@n-)I9l.HJ-z̡vKdzWͧ?&>xo('LkP0~' +d8ZOCO/GsȹkGhݡ/tX`R6탓~()-?F^8&|.UJ%n0嚝$&La/wmAr/҅막3tv_$2%~qFLq_$̍NS;4h!gn +1L2D +Px@])i֧I'~Z(K:rR˹7uLQSI+Cm)bJ;h fz¯-GXU彠%xA/+֜,$/K._ry]@hOaQc8ST'^g|}&,NܯeL#a_5'˅IpFÔMzΪݏ|J(nkWP\0jEn==)Y15o)5LO +mhծʶtaeY@AQk +SZ<lكӂ_Gz6L+SzHm/9E'ʗgJ}i,ޮ K n(SllJք&$`+/DCֵhEYs"RA<vwoIgs2i(bõRR%e{XU$:DE()ՔiJ"0]nQ;I**{UGPڽ6Ԓ-@$tkYu~j+A- TrrWzFůߛ!<uQBBPEzqxrDY_,[^WWk13V
oU;#PEU?*ė4eUUخ~ʧZRmUJWՏ]UK<c2g^Z#,9%˶;R +ZCx6U)"hY)ufeZ!ŦALcp%$\eqp|U5%CBH")|;`gz%9GS:jpǴA +W3)2F +v(B +H)l!uԄa˜\dPiEN;
+5L8˵a9pߊ-nTM%C<@:7(ּBvrF\ŖX+ƘuV[L$YW=ˡ-T+}l㾱l(XK0 +OZĺk~˒z +],\n_dYW~#07ASd1fTMm2'̱1eVS5QH IS1G*z@]z4_~
ntH9& endstream endobj 1184 0 obj @@ -4772,15 +4721,22 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F42 792 0 R /F50 687 0 R /F15 639 0 R /F36 775 0 R /F55 774 0 R /F37 793 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1189 0 obj -<< /Filter /FlateDecode /Length 1194 >> +<< /Filter /FlateDecode /Length 1197 >> stream xXMo7б9XHȭoANmͥHhoxR"Hqp|<|rFE烕FYʇ
ț'1pg7qh
"Ynoo3Ɛ˲t_e.Dزcmݽ3~zSƃGm9OXRvĨvE˺)-g&v#-]m -)ʈ^}&Vɾ<3&ON#T
oχ_Ny:8)Mbk -]Q -;}ĆI;3q3eNVI0sڧV..Dh;k5 -} -Lc3TڱcZ9ieZ`aP Qh#$4 >^/@>DVa$YrwQ{D2o0]f܀c#sWyo`*%M22{*ccAyi#s̅gTv*H(?D!&{ޣ?!g&:^/roƈ}C)pn|dat僦@'YC)-bPvOPhnr,"V$1A/Q,"͖=K3u^?:Jt~f,chzx,gzo%'kqyRv3dơUݴJ$з/'iqSu)1i7߸Og.JNP0,Q0Kr6zȟ}4vwѻ`ppBaXIs/8B+8/c
[:^4&FęMƜf5sVD7ȥ\ E\/KT/^\NunB́v#ʹ -mm'nm+nK9xU8Y*\UU4iVHBaV]^U)* ^ν^2&`hKyw^֘i $0XZkb +)ʈ^}&Vɾ<3&ON#T
oχ_Ny:8)Mbk +`AeTw@3
#Mvgf+˜Mߓ`pO2]]v<j!kIufc +Ls/làAf5 +GHh +Njڧ*6$UÓvc:jH
ˌpvd*O
LT6I&\fOe|l^{,(:/MUu!ys +1ԮX%iB4=<դv{'DYB'e:BNxMv(%C=M7α| +[
SE +$3: +Q%]rV'tS]<bY{iG!`RQہO_V`%]{
r\%Lcmd .O@.s84jV 62$m?nJ.%f9r`
VR +% +fPUO.z7NȠ0l+i }GBhc}lt+SNjDhИ8ӸɘլƘa|*ChT"\y#[ +qŋ˩ UM9naDVMB$b
xU4jg:k[뷊sW&23 +I(*\+2E>ҹ}Bmv2}t4?d += endstream endobj 1188 0 obj @@ -4801,12 +4757,12 @@ dNIQjv*yvOKKjf
58buUjӈEd0ڳ.DjT:U=5 (dF-1܇~:m ,O˒1W6 Wia&e込ܢ)T~xeL[v8~ӫASVT2o%ğ'zSPwI>=@b)*8S; P"Ue{{gpHuɨҞ9vnޝk>D$ԯ15o@ -t-0:ڗXJQ +t-0:ڗXJQ +a3;/qTZ=$ؘG֨krvFWMpBֶu`16о'#⒙ddDӬ@DtHvQˇU\hCCjsg:VF~bll-Xh!+jChz>saԝ{G
80^FscXr֧:@_vܣ*m%[SIna\)|eK;}Ľ'\G{IUZF3wB/-ǵC0j^vz<95IhC0՝$6{P3%v< =?8a:@F>>pVm"sU
o-uuʰM9[pt:)L SXBT)ű}66gB}ҏCpV-+AgHoxNz}қNzsқ'%G&r(=߶&':++?)i_BzWʈ݉J4nVm#Qc{~DA
FE -`QP(%q3Q"JOP8uOn,R43HFK)ߍӔm&ff5jFL}vdr
HFE5Nv"́k?׃Sy͘]W95;rNA EiFh_
qAєZCL^gNZ?L"lk-(CИF9kyPy?Sy%k`C}}J$VbW^ИLL?≂ZwFmNPn^&ӱ_䃼}TV!|{X`EcݫJ%fI7ك $͚_4d$NWYcªʳH C I3A&56g>~:6#(hWi柸"Wvo;U=!MVǮ[~:DMoFQUqKd"96 ' = ^oc}`CdcAh#_N -qQKNL{fx|qbҴ!rF -§Đ$0ȘmXmԧ<^{@&2eyJ瑶Z5b}\˯Bs? ]Z. -<8!Nեdf4=y|x:xfck<O/3JB"dB1f̦X"Hb യf}.w
1qK>F%;sgO}.hX\2WA-![.0;%ciz;/{pz?ǣΌ=VRz|1HODБSC_SZaոvmi
?
;btc\a'F6SIG.z /$- +`QP(%q3Q"JOP8uOn,R43HFK)ߍӔm&ff5jFL}vdr
HFE5Nv"́k?׃Sy͘]W95;rNA EiFh_
qAєZCL^gNZ?L"lk-(CИF9kyPy?Sy%k`C}}J$VbW^ИLL?≂ZwFmNPn^&ӱ_䃼}TV!|{X`EcݫJ%fI7ك $͚_4d$NWYcªʳH C I3A&56g>~:6#(hWi柸"Wvo;U=!MVǮ[~:DMoFQUqKd"96 ' = ^oc}`CdcAh#_N +89|0BQ3X@OZlC+5Kgf.GLJ!,M"g`zjC16=9io8fC<jwN֝NUI%87յB& ѽk.Z;YLW5ymRjgwi;O־{Ɍuxot1lJܜhqxb)*\TTm*~
<}XV/'{'hΥmnH ?u$8Z=,IpF^
F$ߦ + ;ͷjdn@?B:굟URvfNuPia}Y9m5x endstream endobj 1193 0 obj @@ -4833,20 +4789,22 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F42 792 0 R /F50 687 0 R /F55 774 0 R /F36 775 0 R /F59 833 0 R /F39 935 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1199 0 obj -<< /Filter /FlateDecode /Length 3211 >> +<< /Filter /FlateDecode /Length 3214 >> stream xڵ[IWQB d7=O pퟗ_1~g&:@xC25(^8`G©q0 -at ?,D -`AaDDN@G@66QS>yeR֨~Q#`a0WKIGfM<(y^͎6 cH[C<h(j'QV=} p`<>U9FCU'՚MW}<ZY^l[qV+ 9j[&)".@"=Sx2#op
Y^vQBV,8jEoA2Z:ǟ?lK -
yU58L*CѨ({g4| #(`{ODq7,Ǎ='Q<q0]Q<nZ?sA7G
Q!;G2,c_♂s(gDx gnE|3-_Gx(( obeJ{zPu!P=κaIݼkTxe$4~Dpmj5oJș;<Um EUJ X:>J<) #S94"Hťs|0:UU5B媥S̛Ta
}Mܕ
A+wZe}Ϛm#8fbQZ)Rv5xq66YVuv/c!dn2"W9Q^ĸF=F[G#B/PU1Ag<eD;IJ)}/< -RN="p箮8!j|DQF@9/-4b,Br -SZ3+[qHO=c͛1AImU͡>4H,[٠{j9='CV>SitXޟճ?hAeJףG!
B}qE}"LWx[9dzl1aeC,~jFIj'ϓ?"49qx֬1ۭd7̳su/UJmf_?eYsꕝHM3[$C:!Jy͵õ6ud7vWziaHϛqI,\6^dCtVŭeQy>^(([.˲Oev7ק<)wϫz2=8nk*T-V_ϑl_^1YT8s63T␂.n:gPb%k4wNk؋7n;^er -8Nus!7"*+c99bYt}jlݬ@*=rUj!壝t|7솨^V Œe(k"^VrM~VumC%:B*}Fʀpgl|J5,fEI!CGx@
aq'pЬL-Rv{*i[- -6>n&8#e3BSxx\M7͌dTqbU&w^ۂlI<NyOfjMy}Lt=$V*x++?5ܧZ:uj`]<-q5ztYeXyµ8ʠK#ǝip\&(Eu&AX -^zI+DN>Oon*<T_2pZٗy -ű如2G9i+${9)=Ѱ+9:oshn) 8% d>;s+W + !/"!"|GG@66QS>yeR֨~Q#`a0dqx%㓎^5y1QnfGRt1~T4(u+qKuJ8sgo0E|x#tMW!ߪjͦ+>,x/bu +ZQj4yPM8Owaoې9y{m´ZOfVDZV.g} +.?DAG`S<_0yKCrf(ס㷣L_{qCnlx3Y%gׇG9=n~d˾gVKp7aShho
7 e¼eTiTڜFF;<[~&Ϥag,'x<{(NA[x$YgQ<n(8ۇQ|qע7,9m +yǼ#()8~IO"ΡxQ?7x(~-ob:(?[$wP
UwU{dHǑ;ZFRnO#GQߊ전 3i8(9ZeݖQP}PT5#ē;! +92CփjBdeS_EL։鲰[aH`4>
?@5^eT3ּtxvZCIJH.
zR>,oYc<?FY یQ=T{;^}=p ,XigZDg,"t%^Ga1>X*yp<vV0Ēꧦa4vR<#K3#g:,8@kJv<;'XRffE}S0^ىԱy|<EK8wҨto`\;1\{hSGvql'y>wvLiK6!
OgUZ㵉B1,Tv`{}y}ʓr詇(ӃcKVfL%NiΘݲhJ0j3C%{{.)(<so}Fy]!f^FC.|W*Խ6z^ xFZ[cY&T7HZb]~s(2S
.FxE'͠6 +Ѓ(Wn(: +.ȿbI +m\g_ں/ +L*k}c٭E6gyi]8{+#XTgSOQ,-77=#gsOpSۧ#CwgꇎP^MI Ԗ߲zUs˫ +mدJ(vBxS
Q/5}JOI3
[ԉŨFjpԻٗE~o%99GvZR+.NGbt`VX>_;SUnVTϫsJ<n5jF2hRjT4
<2NVsNrwq+)'s}/u-o[QuR^mC>[?M8W/?O{|<NȝBnkA>]&+y%P-:ͬ集rʝC#ߎoܒiZ<>fuJdZ lBLތ`դܽnRt0Ro#rԢPjhDpɗ6V6H#ʌ4ą%e4Z v[գv1M
T8|Y}w{!5xqV:]j83x:,ѽ>c6}FZ8fj4|pQx1C endstream endobj 1198 0 obj @@ -4859,7 +4817,7 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F55 774 0 R /F39 935 0 R /F36 775 0 R /F48 640 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1203 0 obj -<< /Filter /FlateDecode /Length 3375 >> +<< /Filter /FlateDecode /Length 3377 >> stream x\9\Wt
Dlo̶F66`v}<65:YUOۍ?>$ހ3A?^of8Zߴ&}zs̹|p.~\!wOIE#~sZ`R6-5HѦ5C;]Os$cVq 4n9
'r(D+$m0 %=wZN}H?{a-
aXex\ďbҤ~Y??
@@ -4869,14 +4827,13 @@ OSD{~yw@[[#%8jM!SXGKX|ä̻#оyWw\ Rb}ê
-2<TSe"USY;#Oi9#["/ҽ<!Ebcױ>%IP<K݅Βx)4#6櫇L֣pA(K{5
LԥF 9ʕFy
T#]FR8<m`\&Eގ~kGLlB+#NjIj"HƍߥuR|BP\0!L =Iil6w#6Ten2ip=؇,f@ -c9#,pQv] jlsSWZ:%<+m`1 w?;ePGT5 L9{{ 1N`ڊ3AmV5ۿ]xv݂8eM6T6^"n[n%B2W˙A>Ѻ|˭ACڿ1Jn=?}yȩt o__~~;|L_+CRΔ!B!5nI-YF<NaS&۾{Fn(úAHgT/Br0:C!lLiUF_v56} -rc4N9>73{T6GJÄH0ᬳѫi⸾FIfSG30mah(:SN,5J=R<PvMa_( )͠45qcf5Io|ɜA4rՎ[,$Ó+s.$ƶK6jc"(+G뼮 -#m9\R YmV> 5ΐ(&$ھ -fтRISW#s^)""8,Qޕ% Ŝ+ẘ5 PkЅ!1LؙTϭ^I{`ݵ-S -_p$ -&D%ŒL3j&S6oj"U!v>ܛc>5'i,^
1W_)Č_1!f !cZ%]1+"3P`Y5WB̂9Č^1+R9ĬȔB@艽JL5:rw;}nec#P@v#Hg,(a`!8$-ˁrn$?L -L#,oVT+9O_XlU{{W摫Q;~ipOy7ܒyF!qԚ\W1pC9`!n -'A+qPD@[ +c9#,pQv] jlsSWZ:%<+m`1 w?;ePGT5 L9{{ 1N`ڊ3AmV5ۿ]xv݂8eM6T6^"n[n%B2W˙A>Ѻ|˭ACڿ1Jn=?}yȩt o__~~;|L_+CRΔ!B!5nI-YF<Na)f~m=\#@SYi7a `FN! +9 c6|g#/;ˌry;
hd`T 'ޙ=r #C̀atN
$pUx4pq\_zr`$
#unakSj0
)xm'mcpb1O!zSzs=J#E7jJs3'42F
qYd6F_2eDdP;pVj8#J\0,7 9ҫخ<GF:+lI/1sv1Dj4Yb3}aQm^D_Xt歈xorv[f`͑!}|&?
l|_k(i&q4`)Z2}Q%Yg2=&}D!BӶcCa#ybBJ')sL3rpbTCYF5 }Q53`{6N[p[ɉ KSd6禇~蛍`ӴYR35=k|6\_mLG +V0 +.pc;ASm /br]%#xk߭⾰Tjs7Z7FtӳjP6=ƂCzpCh/Kbp" 7z!T$$ G&P*lN?>Qg[}6-s/'>?k#@{j4+aۼF6
W)V +l$Kw/r| H1'b&qBnMB +1BL;b}cbFIC̊)?bD!f+ a1C̊T!Ĭ9j1+23zbSb͠Af,iHf!Ԥ1Pvu~@裡R85!nX5,brj-\ AR3JqnI6\KR)EI<CD">I{w^Q?JTkD%-hɬ;N=k_?hH(˸o?&5dݹI8SJg[fH&v Nx~Z3bjs[ZCBB!2fEOY.F?e 1zEwՆpD|{F6~~s7Jalo4$߾g/|MђpzD)bktQڸZzU+T+6wXy-Azm4WrR9byHRuԣn +&cHCl;ZΜ*Ӕl=_{m
{sHhhlB9f\$/14pnvry쏓3JUto9\e֦XfDBQ>˰h>_3$ ;ES#?^ endstream endobj 1202 0 obj @@ -4895,12 +4852,12 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F42 792 0 R /F50 687 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1207 0 obj -<< /Filter /FlateDecode /Length 751 >> +<< /Filter /FlateDecode /Length 752 >> stream -xڭW;o0+4C:. S>fhD{dS<}HWX}쎛*A]u!{U!z_ -oaQ`u.iAԹ'egj8e֭.3/l`a.fNn=Yd\p^QND:Y!bdKMmeUș ?A~<h
Rvk) ->Ud}˔faq5,+r+q/o۷z3dJ)J65rh}PNO{4K*\%) -Ol?,Sg[.Po|Rmv]1P:UM;htq͖50{),.HR ԵO۲us; +xڭWn@,QdpDA .&Y^&(Z*JμcX}7oɳmC +1=y!{DCD?VDlcuvGT멟붏\B+"B-k{,F&(oE9LMYHVrxwyx_$o=R'T +E +&CXϭrO)rjlcj(4
ҪyFYH<$Ա<d Q7?ޜԃ٭LPj#zdс蘦]x!k|Ki endstream endobj 1206 0 obj @@ -4913,17 +4870,18 @@ endobj << /Font << /F50 687 0 R /F58 798 0 R /F15 639 0 R /F48 640 0 R /F55 774 0 R /F42 792 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1211 0 obj -<< /Filter /FlateDecode /Length 2740 >> +<< /Filter /FlateDecode /Length 2752 >> stream -x[Kϯ1>,C`흴) -DhnMnYC@jMqsU_߉~jjDIAw*E(**/֝% Ayr!c=}Is)1q]&g>3J_wRO$lH鬟~<
b} ULPHj+q\2=xQvM#k""Sro><SRIheD/ݗ瓨$fT"Ze^yqZJj)+Mx^$`;+P<Q!@c -VDBvteH63R-/ٍׅlP2IƋKm VggE줤|A["4<u
."d\RR(=Kd)CcIjY
RCs
[I-DzLigdRiMExe46P%PR-jl%,_ڰ, -R%;S.&VBSQWL2b
դ63 -gYrzfu2ݴ<
8ajܢHõedL Gu(Z%eF=ҖU26an!gӤxKߦ%(ڔ(-q,m pnE]LZc>vx?4JXdjQ+Ił.H _`JMrR짿ԥ]\j
x9ȪiչU(GҼđTWw[ -kps)9|p8svIL۹\´'v=R -Kf+\0ٽ8pcf}IHR
-BgǣhM
zw}:YZ}4Z;)(6߇kqn!z Qz%3Pi
CXw -d,R8NAyBPAv38Hw%Rmg`/"
Ǿb~fdǺ^py{ܰn=rx=-ZPƌl߁-u[ikpQ#v:x&LMo*Y{:Uz3Rl F:|N;f:Yf@;k^%iJ-POH?|s8}HQCZä>i[}߃9 -#
d* Lo"DUT׆)û#<v̊hz*!&蠊[ԯG#B,BBaB,˷}kX-r +x[Ko#W=C/00G-{JI!{OQlM=n39ؒZd=?byAO `ۃoAڃ _Rꓔꋔ>ʧOa'|"Nlϲ
ɶYR"P"Tr^(4ׅ^6
PP+)<KCʼn?^)U](16H|B9f=>)U1YKi<.>P'6[y賤hMRʷ %6T]4aMoF Iq:ur ETc
99itKNRnqʱ$$.҈l+Ӈ~}WoA +ih=/+v@Е"O)M+:NIT2,diirYM&@ !0#bTIrVJ$~6lbPExHUTj57XչCJk/mB<<0 hna El r,&.o +֓<Sj4
hzoJPAJ&)_.~
xr7YJڤWT_gB_vsC&Qr-2G=$4T_tU",LʉX26EJhT8NΚ$R]}}!bf;\Bb, +WKKݺB5<iJbZѯdtk%@j0-ҋ_JO+oYND28HO&c;k*[kc32;%`ְ/˾m.FB-x2DʲTdeVVGWh0#j!1xXyXoy2ykMEEmil:4]H$QՔ:ڱ"6CNXV&.!fVΒJSh.,PhU[F8F{RQMސjpVWMބH˯4z6ɾ-dqj_OEQB;80Pǹ'/K'@6/i}9OM5%`ؔ4Fjt*>tr}__;K<@]OR:nrBRiCTcUo0,0xar:RGwxlP/{
=Y벅U]*O\#`m^HW2w[ +vSYed,?t&`0=]uVy&~ˎK{}mvZ# -7^R='?F^VC axMqPc=C*mnbkōH;aqm`%qP}6HalrRTX9T:+W
r
Aoo`iZשWk,l +=("5P%ZK<#pV%)T:f@X}wi;z?k.s2^tm5%ʸWB#nsbݙq+[wmCALu +=)ĭjkl\?f+KUTw3$vʍRgm`"ju6wml{iĉַX W*{ +0hhz1a'l檭: p9 +vdD0401l]^&<nZ.DkhުB +O={S'Í]$App Ry!2l3A/6wbf6?3wdƃ;2oodl}33eCm.xtgf<xf|Cf!3!3m@df<}}{1c"s2x/W?2{
#3FCU3V@ endstream endobj 1210 0 obj @@ -4945,22 +4903,17 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F50 687 0 R /F42 792 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1215 0 obj -<< /Filter /FlateDecode /Length 3095 >> -stream -x\Kϯh̐70 -Hd%?_Z""գf{F-^_f"/}ç?js!)#KO>)#/]\ ||YJUJ)EMx/joq_Z>xi֦
emZCZ]Y%[>wY͒MؔL à]#7XK(#g6Lx5A\HnMWdsҦR~sdM~G=_(;o_xMOuAh!.%6륌D㳇l8i'XY]VSvJF -Ǯ55NuJ2[䥢8+IJ)wwUd~RSB!<wMD6$0NM>ф,QZ4>#/kZŒp37qLKHg3b-HlHa먗ވ([u\Sc6d7\2,4դkJ(@]u=E'\<)0]^T:| o,2[PSϮDЬX{$"P -Y-x4Ѻ@~T)+6U4w8^%/*jgF2E;1wDJ?⍟ptgI-ߗ<I -< R_Hm\{))DsSqt -v:Z8t_ xC -ܶ -kGEt[[pP:Lvr%W맺F -ov- ƸJszfȩyh^KVkQ L1l1jG_jw1.Z\geQt01s-lze˝$Csbdi]p><Cṯ:JJ^1ҵ#0uF!]6q@
sHdl<tGǜ)dVq -6dt>v+pCtBłUhʤ5F Cu0~\%6unMƁLP8PKG:յ4ͪ~jGTET}՛ S+B-H̟\lك l#Ǿ)dQRO ¹#DFP|'ԥGD&V%ZoFy04gM:Rh^u_"nKw7Wl7)NݘS4W%F|jغ;`(":Ef|d#% -ՍXU,{ظ(Z<HZ>=Gl07Jg|T -mNeOQ)]fP -CCЯqeQ\-/zW}Mtv! #OuO::ǵSz"OsZd糭 xS9HxImgu*[uP3J䯃1O*ިUSp,47)NP|xءVNߠ8igCqbS'۳-flKqz!Mc0I뵖]=y#'6l)Gq:LgJP6қDb0yMTi37Lc%C6[Nm|\k~zpF^KR7FjDSJ'yO린p-5. -M*(j)-߅U"[.1lrQvGvva;WMx;/a ބsY,k
DL Z$yz ]7F|쫒C:@$aߵC|1\+PWJ +wGʣ) /yLILX -C O +<< /Filter /FlateDecode /Length 3098 >> +stream +x\Mϯh̐o`0@6 [>%qb {/y%jTT=Zb}*Vf"/~^ΑOO +ȋx)sHh.o_.?<KIRJ$5R [-K߾kთvkm +P6>? ޕuYUsz,8,لM0>5B{%|-){":rftWTyȅJ~AV>'m+7MwH~ve״Ty0i?KXZRRj^ʸJ4>{ƋvBHe5iׯdqZSA\D eJ^*踩{Đr~W} +VVc%\N"Q %Nv0ɎWNJR2oj_9Mcޭ\0zwU&y&]a$L),sy]ksOc|&RL߿<#~V.n:5<IPi:>H\bnדٖ]D&Wk3BX<Ϳs[
)h-d}p
*"p*#9^HmylAt?0ɕNh^ +t(< صN*3ӷ2"My-![͞>D;0DNǨ}m +6dt>v+hM^(TXP +3
^Fs0zۨ: ҡ}u +\VFI<CF`0F &%&1(Ec8lPU8;DF-8;2?б-xl[&v?@gku#:ldT}Pj"ɳkE(1=SqT;yq/L_i>+FgvjBp-p>&Z;QIG +QD?Hyԙf>$| kinR֩雨u4乀V_ endstream endobj 1214 0 obj @@ -4976,7 +4929,7 @@ endobj << /Font << /F34 637 0 R /F48 640 0 R /F15 639 0 R /F59 833 0 R /F39 935 0 R /F57 799 0 R /F55 774 0 R /F42 792 0 R /F50 687 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1219 0 obj -<< /Filter /FlateDecode /Length 1874 >> +<< /Filter /FlateDecode /Length 1873 >> stream x[n6+aHY$ ǁoAS.Ch!ٖZ#ك`rk#BA_d= fR j=q@X|R^TRZ#%+~g
KWo#w^XKSߠK_?:G/*R|R @@ -4986,12 +4939,15 @@ zl| )`bbŲqDZA+;c liJ9| qWZos:[ةĜqdSAa0}ZBa^sEt(sg䂠D ":kXq* r]H&R&кW*F-DA5NMс3G:eH@( 4wdQ)T_ -sBŶ.sU-X:+)ƽb¬֪՞mj
jw4xAǝP'Sc<Ʈph(;5IfMCh@v6jL9ƎT -}Mdp0
I&`V
X -VYDs$K[9c6;h.=W@ b/5#AV
@?M]9snC+$W%S -u4EXfe#MU/ib>h&iN*!`v ԵA.겪$51u5ʄN:"Ja<"ߠ{
TkWݩ/o#I)K:".A[Ă2+1#N+eR:alZ;P-buIG$_s{k)۞1Y]k_ZOɍ%Z~NZ)y̺W]0#%&zD[xKA\rHZHNd9H57,ٳdԒIscL(x[Φe^]OynZ(ͽ GYlSʹZKjDqkh'˻-:I/iiy,ʫ[6[7Oz#Z$pFHO6BU9v$BŎ$Ϧr#C'jV(~,KoG{ꈎi*E0}*Zjvc#BoԞViwW2J:߲!ฝTJ#=[.B>fÆL -($SݛsxzǥN)Uy=+Є@sġӱVgN7Q*oo{9+¹r
44B*Ś%5voU5v/:B -Dg4>r?M8 +sBŶ.sU-X:+)ƽb¬֪՞mj
jw4xAǝP'Sc<?BC +C4I;5IfMCpD +&c{Z\ iiq:qY궎D.aDY/0U̻bj+V(\oU<z'PB%#ʉ9Ƙs-l]h{C*+ECҶx1ؼt<8}-l.VΘ +Im sxBz݀;<rV}fH{KZO(fZ$%J]BEG=um⦷$wfm
2&εR!{7ޟlZsgw>ttFRRjDPV*J̈JY>k/+cKX]G(^,Z +'aLVt=~SrcӲVJD|-5bLzwF-Qw/RPrk;>\*Ҹ%YRlM'K,dq:ܘ7S>w,ޖiق<n%DWSh^, +gso9QT3m nNxZtZv^b9Vb
(刹I2\Q7ғꧦ
AqU P#'#$ųH: ⇚Je.Kۑ:#Cڄnuv)cLX<HgUݕηl8n'Hϖlư!*텩n1%T' q|JuU6D/>d^ki +4!>y>qto=řmwTʛe^ +pne
G +:olI(8d你yqMPRFs%ܻx}{E}` endstream endobj 1218 0 obj @@ -5070,16 +5026,20 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1232 0 obj -<< /Filter /FlateDecode /Length 2638 >> +<< /Filter /FlateDecode /Length 2643 >> stream -x\Ɏ6W -/B)|RʮJN29;$P*i~IkKQ?7ĕwO(5Z"J{4p%v#/.t,H 5?=1 -)@
ݦP\N{6;qt/ܧkn
VEx!,aTT5cڽqn$R^ %$ׄɆ^eT{MQE2 ڜ+!ɦ2<h:k ->Iۘfx9Zc9Y:6:}vlEgl1-Тk?vCawxe,~/vZq2UႢSX)/tսK#.)ݥ<m
>'oq`}.9 -g PqbeXd+ѹԾ]#Ql݇xW9-fm;/BL!tTz 92l1=uRq~Jn <{o@WZN}(PǸ۾-#ژmjJ -3pQ^gm!q;=nHחx廚|6z98*xaasHS]TѺ6]Z{8B\`u>uCFT8;a^gtcXz#WsWմS+毳{tޝyӣiGuDrV%Q@<ncQ$$;m3fr -Q빎|`ՆdF`
뫲4_wƔRF[[Ih[AZטU\.\m,d}I[R8z -y`z.oB}WQ\Y\a\Űq4.m8urGhK
v*>[3QSzy%Dr\x\.[w`xdkD>10 Ha"{)Zk8h,s:*i(nLᆹOPG +x\͒#SCVk#|t*Aۇ%/Ih~/ϼ.C/E\,gΘuq9Oŕs-97ߤ
+vf=}3|.Ƅop|G~|"{w*t
枩i~m4FuF013cLp]g!Hp` +͆2ӏn6{2|zU +3Y
ʐstl +] +Uӵ!K̃bޗȤU2AEzKK۞\eIyzZ}gay1.b4Eu*
uf#2oSTGu*aXGSz
˽mbUe|&VyAS.͟WߘLsPIJm=Tv$VyIJ`5l$FEW +=rvyU͔~Vq|XO$J[慮̇HHJGaLnØ3Bmo^Q#rf1dhR.7׆4)faT7)˷
2J0ᶘB Y{ָx!f߲1qâg(\$()1DntM^h?iW2]VT4}oOLhX3I~C8%+-L:}}rG_\JQsa?U9PY̴q闷w*8FN
%"e`(UǮ1cG(U4?%#UtO`bdнdl:fnDVۋ[[#̬<sZ[MxNJ
+ͥpXX.?qKЏv a*mϸr\ +?Su%uf~->8X`pxAާφx>5O-Cb5wyk&t:೫bhm4=Qp;8.!0L
YcΤT1-mUWWy8t2|!
Ldd]7Uj1_T +КU#< Zۮ]Z/(Kpv
^]1V*k9;jjgO73<^=іgkI-Q\9죸@Oan ~ cʟw +ﵫ +^1G/R^=nl4_|S}«0sIDPlݯhT*O:&K)DKwO4ㅎfh\;[\R^蹟.r2̻/Kd]Qȓ˿B6|xŀk_OǢrq]KƋB˙5rJw)~[w6YJA]v}>VIW= +k endstream endobj 1231 0 obj @@ -5092,25 +5052,18 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1236 0 obj -<< /Filter /FlateDecode /Length 2396 >> -stream -x\ˮ6+aı"fMѡD1%Jѵ-qμqׅ_~|CgހQs3??p8wŕs-97;Z%s{Lx{$pGx~@.3#
8Ki9FvF01vkF3ṿ'/> -Pmx]}1}YLPϲ#niqKnHF5lY -PE\=$O\DeBoD .R:{)O$[4Z `?'TntM.]C9?/@)ӕ&W(X!EpU/ݕGSv3 NH6&㬌q\av -/ -ޯb\Z˚{Ӳ$BI@b;vq[)C#yla,E*msTiSꂧCIq7RMcMڿ_E0V}B#H.rΔV1 -JpLu[GV*+&`KKɼgoTkԸH`^w-~8X+5ҮfWc?LVŃ^o~2c -GP0l -j@Pi -%E)5S(fd9*ę5['QVEeEYńJ|]ٯ0亇Pm8dc}+ -&kս@:#(T -1r'g -souG0ySO5Mڦ:=yD&W
zoDMw𫱱#.NI'SױԴf\8C[CLRUExi -1MvYrp帖ko2m/3`5LDTO -k3l&1[ޒ3ccFGr -&-$PCNNmD -ᘅgɇcl{yD89ax@s]GAq9_</6rLkSLȬ[M?GUd5xܳQVStQ"2V[65YwL!BUC'Ы4pgZX^RPS[͔U9_/W9
e1Uv̫{zRRZOLۼSJrY&@jUr6+. H8w% <)^-)oU'PӇv gq+m-W -0OGDd)F}^8?4ml;8}V;N|qh*TfF̣8Iڽ}7ausLs{sӎhڵ+p2(غkkIX5_yb{jJK[DU2iਢ,_X*nm"oje6l74AT5pZNUn8gO42l߿Q+8}<'SՖ6CUaTtl<`z2IV8zFᶪf)arBR613Un`B#"K^SŚ +<< /Filter /FlateDecode /Length 2397 >> +stream +x\ˮ6+au.+mVJCZdJptmK3˯t}]gހQ> _r挹X_8o7ŕs-97;Z%KIpi.s@.3#
8Ki9FvF01vkF3ṿ'/>c +Q(H1-?(NսH5Q.J#7Zg?)a;`
![>$<%~AMȟ<UGeBG<ns2?7GA/ +}`SOȦIs>>ujd=Ed;d}Pax0eϡ$Zy)nj%f-W2A'IY@U<:9%L +k@-A/Ets /ѷMBkBq4y^cj֪LZ]%0 tNdk
=R9+ȸ[mɎ_?};8' +]ԬRp}Roͥ5Z +SE+>^Fq{Ia9hJ/3<Z}*sa6'rTlm9nQ'^]ku?nQB|X#Tp
#.!JR`e)kGPJ`1iWᴶA]+,O2<2:^_!v'7:lt- +' +cEYў"n
:x&#)zkmɰHgOw|W&>|r[[ҢYZvLK[brsi2Ozӫ1d^K}Ht+vo< +-3y˹#ySO9Mڦ:=yDettDqͩ4OϘXfB/)O),lZmluL;b>-Kif]TcJiִKd*[HɃ2q1mPecU0Patmrc'y_77]gs= 4t'?>+6(7Ln@ǹUQbn>7>Է!'
pJ<D (xtP֓S@=8mkq1675ƱQzx[@vOgAOgKT7lWݐNC \$DNob"+O9U)T?qЫ4];j)) +$V3eUדG1V_SJ==)qNw)'&mӍ| EGA9nY %Gj׀_6+9. H8w% <H-&'`3 #=~o?\<o.ǚ#y='zuL8ˀ˵ǝ$ѭi,'j:oc, endstream endobj 1235 0 obj @@ -5123,19 +5076,17 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1240 0 obj -<< /Filter /FlateDecode /Length 2295 >> +<< /Filter /FlateDecode /Length 2307 >> stream -x\n#7SJ?X M1ȭ=?X-xL~$I ?s⧟_߿3o_~Od9sƜ~ϯs̹|7)%ޡswh7kxK/c78~_ .I> -w@BjʑG<Zk^b쵟`(IW-NGo?j -ɘ[l8f3L/uѳI"]ZI4 -43yj~-\MT -S<_G%AQ="8?+J JrFFI=goJv3xnܰ0
˚sP0l U8żYY[N5]e;ַiE>&1NזqxYNP]\ko3ǝVk+K\K%!y苦b}3L^[S斶D0ดA2ty;e -A0 -N v}a0SoP*ݔucyK&3^M9/^⾐>`ܧN}bwAz}3< -_%Oՙ]K)>`,~<X<o#|;Kel>&E:צRR"=\PN۔dikL| -~%oدdv
ٯp_6Wcw:nEdG9f؈y;sN>Hڼ+Xzt=6jV[J/3DSxy2774f_-Gii`Q-<bh`9ƃ5o(9k+@cjomMA(P5GY"c`n#(9:Gdw4Ƒj&pvkZ1Ƙh1.>~cpmwUϜ2On*4Gx*;]5DF_b~_e`'ډ>u@۸_FJsU~]lՙ]KIeVq:e m/i4 FT~+VOmܟ3Cuw&~f&>įO}=_&>iKshR(>V!0ciлFV>.̈Gy/XjY~SfZmefb -3< -3q#mDq:e m/itkO%*q.oewvg%`ܧN}bw I?X#gx*qUDwq+;q_6Oՙ]ы>}w;Owj9C}=NSOPܹNIN85NY}|2yk;~k$Liwyw!h)Xzt=>^An"QyΣ%r=1Nn w2{Y`[Mgv n8j5x<qxfMK)ێ<`:h{Xg㠳:ЁGu;N9OF(}}y?voՁ +x]=6WCRi*MDkR2)+[fk(/?s⧟_^?v7`/'q9cNy7sιx\KߟR8Wxv߿Zkkux1 .Y\>+`%{rGxI7#c5!d{ahI?~^ +rOBK_oԷI).0x߅A8^oK|<7, VJ"h0\ά7 +b5c+Xzߥ%fʪ.']?$sGܪ;Ly% $p$~" }@{2To;:D4V5}|Dp`(2!ٵw & zD-IpJϗ}S&]SCRy7]&hloĴ&qlb}%/z*c,cY*$%0r>"T&GtdνɬqZ5IhBac(p-"G;ZkW[jkQޮ_<;+Ik|*~NjZ`>_NѦߧ.7MΣ%?mV +pv^^A鱤=Y+:PHzdqjD +ֆkfm6;&%j;-4ajH.#UO>>ݤR!v>֦!_GOl'fCQ#be}kw]Ƹc^z${Gc=2{WV
;_!^d2^]+W4Nn-J0n_cFwZX|A5W`z{̳Xou%3DCrxy2sx +G_IgI) +{"k[2Tq1|b{e"oDbKa"vɴOQw;G5jDׅ*i!/mL䍈EJ/j_z~~ڧ_*ڧڴ?$RQ+C_C_?"VIJ/iSn~11'W$kIXL"04OUz<j;U.kǯULKvfk>=K5JL*f̨q | ؟\km1^ciSfy-?'2D#V1 +m!HBPŅG LW^ҾL_KO}'۴_( | +Q#".TIDii{eD._UzQ*O>>ݤR!NS`mگ!zDX%+}g}ɴOQwB F폈TP%W=}۴? V*}7d;n!Wlީzd;ݼCUzr{:`Nƫ:eB&wcqH endstream endobj 1239 0 obj @@ -5148,21 +5099,15 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1244 0 obj -<< /Filter /FlateDecode /Length 2634 >> -stream -x휻}~Ӽ_ -5O<բk-fIȟ.51Y!PK!C'B/c>- -W8e -v>R yo"{';&ɑfcSeiR+q\uv/̴xӸce (6Mz>JEJٯ(~:vd_?V]3AkO^|TYq7m4F'T)BUs=Oވk#~|6{yƽ(Gy17I#aϨTľT]cGk#B6$GY7q7H#YmϨRL=ȧCo&')շȻ1D(3KOr[ޭk4SM,G5x>s8MUKp(جevV@`Ö*ɶwgnRr쭈4gw"=w"pVCnDϿ$PgsՆgl\4%/Q 樛}(^#`Pnhm̃q֒ظ\:J3O<s-G -sl;
JUʴ5%{aUȶ140UՒD<J!L9(Zmv28*X<}sćf/zkLXŭ8VukfV||,A#N-甏>s cg+ -V-&OLŐV[O¹3v Up|"y眲jY3oWXKj`#JY)zkY\(X'f-.m&Wep7 2y!7Gc)*TX;[+[x.,Q Ƽ,!7 - p(.gEwtФ<,Jk -k\Gcwfj[vu/N -'O^}\주/4i1kdF"}Wb?Ә7V]K'agŽYQƱnbԤ<,) -w*_S}4vEoF"}[a=4E>ʻIMzXX#3*+Udh؝&^d:ƽ(Gy7iSkdF"}Wb?Ӯ7V]+K;ƽ(Gy_h>JEJٯ(~:WmO~W"R.O8q4f4뢱;̺5U{̺3ͺ -L5z! Gu]7kɂOJFp{aW2ia& -;KΨUȾ^}\주/4igkdF"}Wb?ӳ;V]k>ƽ(Gy_hh.JEJٯ(~:vgwF6W8sy?{1qQnc?op.JEJٯ(~:vgwF6Pvy?{1qQnc?op.JEJٯ(~:vgwF6P}Q܋2}w&baϨTdT]cwzvgjc{} -_3X%J3_Ŵ`9ٴT525}ZüdUfT*\?EUfRIU!ΎL[ka?շ8ɶO06깦OPǗ{e +<< /Filter /FlateDecode /Length 2649 >> +stream +x˒&~TuOO*R&l$mI,zܶe9|=~qkyoJ7cWJ;R%(3pJ8B_~2|
|co'-oGg~PJBuDJi"pգp5# /6ID% 5/Ux_-#<ik0SMhc`*-{2Ljw%@ @Aw+x_C}TR;@uX0RN䡢 +$hSYOR+Mzv!4oۈ
EaK}FqғlVMpCz3a"mQQkp-7MSp(,evf@`Ö2eؤ'Gm^2`{low!k?hR'[i-M+gl\4QvUDK99jM{
q('\Ev\|Xo.^La-Z?{1`Ũ1ciXYR5(Xy=jPdT=VLa/-0D3+ǤG)Ԃm3a.nˤ`qhܶ_o,kLX--m{YQnx}y
2<8%p/&sw<ϚЦ]go}ڼ++I֚xrG*'pI*E8z>sNYjQ?uu竴[q^Jrb.ݎOjR(alN +֤֊Y|Iq;א:9ɐ:А0MQG*sFVG5]={Az`rA\}ts}q{8B) + +5E{vQּ+ӾE-~I>BFFgd*ߗ~E.Ӷ;y3rU><2uy?bd~HzXX#32KUdhi6^d_Y:{1qRnc?/pLERٯ(~vQoF6ٗzߋ2}wyFgd*ߗ~E.Ӷ;-{3rUȾ[}<ic'e (6ERGٟ~_"EO ^dsh~,⁆]vajaza][۠gТߟDN0fq
?Y}I,y{aWX1L +5?ϰ+4J]İ5"=`369uŴp)]K§MVwܟTɞ]bg)۷zkk?u?HZfPcJ[;EUVBIUReK6#qrkurk7ukڝ*\TSh+qZyU1uk7kUqAWVïQϒ2n'ݴ_(p.ֶ?%Sa'3Ua'hN>jӵ;#Wq'z}E3{1qRncPѮ],*_QN\mwU//~I>BFvFgd*ߗ~E.Ӷ;]3rU>7prE^}죸ϋ4ܵ5?#STE+vڝEX^}죸ϋ4ܵ5?#STE+vڝE LpO8)Gq_(h.LERٯ(~vkwF6_@>ZgI>R`6d*ߙ~MQU/o>@~@>jñ_SDZs=ӱ_T>mkC{PY\C {8ƨs002|5?ϱϘEHP~!+kSK`ő\5S4õo$e +v8Rڿk/~tkOE͚S6P%\딕6d_g_5l*V?CSJRAc_ߑx endstream endobj 1243 0 obj @@ -5175,28 +5120,20 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1248 0 obj -<< /Filter /FlateDecode /Length 2897 >> -stream -x]ˮW -EO5~S(>PDWMZ}xs|J8t_H'T?$>+xH>ozUoRP]qC;ǔ;~'vL'~i~#Hf F` -eG꾂h*ߴ)WڷχK?3f'~u -]^|զ \j_f@k?H@!j~Y.]eu- -$wRJHtWE9md@)be%}#bޚ#ҺQא5G_ -LxA}oY~=sLxQY[G쵉Ŭ' -lyZCų=uҒym?U>iϸsKMŖDt~B&k)NK!M -2Yum+3¶6w0ڊt0Pi}Ts]j_#0dbPE"HZo}UW<ַӷ$1(Ⱦ%t_M5,ʸher -;%4f26Q}4Pymݹ_{F9א\0+7\1Nsuv|PA3 -N=Irfpi_P.w7>%em
9Xg0 -_AKyrfpj+z}Jq?fڧ>MA+kP}T+vi?oskVwE-^0vL'~i9Xg0 -_AKysfpj+z}xvL'~i:Xg0 -_AKytfpj+z})C쾙))OnFFoԡ?)~U -]ܨ3U]Chѽ`))OnFF֡?)~U -]ܲ3U]KW3-~A8Sv(6Oa*i='mwnڙj/z}oi2P6A}Q3BQگ ڥmԾ٦ \jiP -n#mwlثڳar=sS7Qڒ&XakȚ
ܯ_g/Xnf(Ym[K5 -Lny[)&[[6<}v%u*Ҧm4X Ez/NKu W>p7e<;4mtp$n)J,#gs/ -Չ7vv -PoYX1tފ-<
dӺs5#eh6\( -enaT^wG^VڕĻ[C +<< /Filter /FlateDecode /Length 2844 >> +stream +xݝˮ6~px +L+7D$&reyi.x)Zv)\5j +[D87]=OJ +6A>͈N< GCO5R?S}]m#F_wE/oJϻ}/KƁOn~#@'ڨ}={ϛ^h"~!NpzO2ybweT
=HO!}B+vF_wEٷG?'.~nuE}. ^B܄?ֳxFx?
yy7#:e 67dFCO5R?S}]m|F_wEׂ`p~ߌ}ꔁ>O!}B+v؟!20c^p}3SOncR'ٟ)dU~E.jcVLxq?X_ +>XHD":`R@|jH:ކh<i2ڒf>z(ŭr}5G]Cj6tŬ?~">,=sLx4sHmgR,i=ܢ1/սWu3\"S^Kt$֏^":fLn3Lei
r,:ژ'/hy}]-Zd^۪OMgܹSMg R&5JLP(:-0SreǸku)Y1n1xxB&dxfյXsmUOX
GWԠgD+@HEg/\Q]uM/&6,&8z<c8IlY8rl;7ӦO,X _RQhVU3ܦeNp&ymt0sN^ 0uvǂ)ҹL^y;1u]y1u®!'_raH~rL}S]Чv7]U9TX)J;].O\3W83-W~ߌ}ꔁ9TX#3< +ٯ(~vZ4~O2}bwAB +kd>W!E\3W+]CT)q<yo>u@mAP +kd>W!E\3W+]C^p}3SOnc:TX#3< +ٯ(~v璝Z^b_ϴ<O}/cVF/ڡ؟~5E{'mw.ڙ+d/zȾs
g?اN> ^C5?S~]mw.ڙ!N/8)'v_i*B\Wb?os_wEٷsCyHo>u@mA>O!}B+vmO~W}fXX;p^rBNJ,}<s^a%z]mI<臂^',+R5J*5)sX/1y꼼y<f
K_FI|ꧦHi6-,Xg= +:̇p3:WhTL-r+]T.\YV5&:ÎQf[V ^[[wr鼮fssFʄi +@!(5D
pWqfeè,uKџv%-/dм$%rfeè,uK}ˊ]XזTP2kh^aRHy0*/Kݻ?/+vKb][^RAɬyIKsb3u{]yٟv%-/ |ȼ$¦r"/IrCޝ5%)/AɬyIKxzeJ/sܹtcLiyӴ%DT}҆ئUOݷL햻`*,0PUY@iFZM{pi/7>M."< n:}O9nn}5Zd7f72n3>{:}ޜTW +{ths$,bmpS70.a"JZW雽I8F&NIE֬)wx34v8Z8-NeuXf'[9,2*kȻD?5/ endstream endobj 1247 0 obj @@ -5209,14 +5146,14 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1252 0 obj -<< /Filter /FlateDecode /Length 2059 >> +<< /Filter /FlateDecode /Length 2140 >> stream -x\͒(SBURgTqkn[{ݜr?l6$[9x<nZ?ގo?84h<|&~Ù`c_?s_99GΕ\[,ӗORJ:CHg(1s<?/+&3'L'Tqp/)<jL{j^ͽW&3;߬<P9B -ܒ.pĄ8v(k^B9'㤛 -'}5A$c>p%7)qdÃ,
J,|BwI4}S a]+&Zg-݈ȸOdY-&8 -3ץ~TV0Oc)1vwUkfMb1RYQx:W2Vaz_GĎd,̩2Vc5ggs,$ᮑ pf
b56A\)RDV䂑jF٫ůԵ~oa^}BvAq'Ԑ@-F@mCj"CY녈 r0wO tq4/3ۋ<})iv\/3+mKM2p|o;fQ71/wHߘg;4T$f
LRS yՎbN20[` -":Ni+ϓZSQ
u>̫ -NZe2㝢4l2|[';gE>^d +Y&qjiխTa(0/(6W4L+|k<^~v܍oj~&h8^.1@oVPcP\z]"$ǘu++߿A= +x\K&ϯXMڪxrL-kr%m@6iaF$n$~O?Οo]?94h<}&?j}21tӟ_9řs%9ז|EJIw(e}1||=G% +5TqǰFq?)ïyUՂԈ69PkLr48GFNڭwe'}_ iR$hǹ/0\GpĶk
RБz>S礄LIp-n + ;xB +p<JBH$hN+Q(L)۔mo$GֳBVH[Қgv,bj`BK)ぞҮJ>L:Ya)4ǬۻP*-lqԲkZbؐjLv؈NGR:X+(T(K(?]Gޕ]߲ϗ6Qok(徆caNZ_mGGO54o:FyYEFa%x<fLr
:LR#$kzPi\y7* +Jݳ=9j˦ǢJ]6=> pDJ;2g_'Hg7ve8iZU6e?wp̰I&~|U':e֦>LwmzWӰU-^"jo]+M5{8R +`Iu<~|/ endstream endobj 1251 0 obj @@ -5229,25 +5166,22 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1256 0 obj -<< /Filter /FlateDecode /Length 2114 >> -stream -x\n6+%g..p8Ȯ]u_t(5d$Z!m/zAۻ ( B]w)᧔xR4(]oHwR9=6>!uz||#~w_Pej@BH#LfM]B-JaA -\@.K:7$Оv);}^rB -J#7Rmn|0Wdv+3|m?$9\Kd8?<Jgt -2~ -F85, -P-^49I -xb<ayR{O$N
Rp0<)Q
{YaOAed)?OFF=x¬0'J#Rp0<)Q
㉿O?CGE;y-:M#e&rccع{H?լoe(w5n+)`68Q\S]i7 -F,-A
a빘 -'n5vo -M(
9q%Lvj -a1THHH -ppZ62@ GXҁY -K -b5>kXJwy9Vܸ -}dXJ[kiHX -ij8ڙ -A(;1rJ{nZkUѰɅV"%+DBr/5vz^d7d08R/ŷUE#ZVY#|>| -)xr$SiiÕ@@o+ݶõbLaewV}?S?S!ݗ!`a
sKJtpO33#oioWsmӮQbDd\l}\.AtMyKi\t
Va?Ĵ o +<< /Filter /FlateDecode /Length 2108 >> +stream +x\(Wjҝ=nmkVؐĂIfX< 'ah93w+ j4/nIMN +89tRRQJu҂鷢? +\ +dNj czSFg܄A(c +o7!A'l0.G|j\m͢[qyti)"@'
Qf*JX˗9B +.QLFS6L;4vTa۪ fC :VA|m֥<htJi +Dڣ&R.z$Ҕ垱"/_b(q++`sPȊH+8͐(U+Z9OVč)5_3!Ϙ__&5RjXfط'R fpaMσTˢ +C&p*jCK%02В|ckC
nBNU0p7QFRٳpM'뷥p] +`~^+;54aݾVZ!+ߵ&T(dkηWu߳$>hng7je^硏CgR;Ul &ukSg[ +* TG.057=v\\bX\/,-4-U)2_#HDЍJVq;&Ҵ\sYw9H5VT|'Skj+P.B]9,gSŒ8S[#z:pt)2+JA@ +D8"OJT=Ya9"OJT=Ya6 'xTP
?V'88*vhRGC+m$JcY'T
1+kEYg;.ϖKBK]X+hzdYѮR1\n֍xď9n<z7Cѕ*ӽ"c~ض.&4%A:Jr&܍XVAo-\0\;GRBiB0,88U-w
wa>̕J +a5U[B QNķ1NhcuV2~Z2Yޣ%kfgt=+w=t6R ?YBqh-~-)f@ҋZzU4l +!
I +Q?;Y bm[Lv`0G=VםT7zgJ!!}(gB@E n]Y
n@HteV,ל)lLm Omt(BMY
>.'|z$#`,|db2}o;L_l:U$g㸶?~yB endstream endobj 1255 0 obj @@ -5260,20 +5194,28 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1260 0 obj -<< /Filter /FlateDecode /Length 2509 >> -stream -x\K)W-FH{r[us/wCa&ĞvAGA~/\%=Yb(q;iJR'm,{RF))Reoﯯ_9xJ!WKݗQ_7$ɷ;_PI-[BoӨ1+U $DL%R{~שr mL9njh'EpsԂśi -(An*]iKU -۹HcjRlo/rYTk]tU -c٥'-a:bUhw .D5zrR L1dA5h%G -B~2/P
dso˒&2O+_E%9s!iJtfvn"[
}Ư=ti9Q+>D".kȣ+(SMRY@՟"WA[I0Bq8 -[WOr -УZxZEYlT) anf - -t*m/1;Os:;l磌tVMs -\ӕ}Y=F^BΪa?HEg?zvy߽}'8iq=\tAep)d#Mv@&?ɟ
!垓f)sc7xzt+{l=֊9ƪ7cWohLONlLL -OLŹyo0cGC+~D!{-usf)
"dzۗX^{12ZA?-]U -wuCD֕F,Cʍs0<o1Z*92F:c;kBvAJQ=Ni礴Sߌňi⛥cnH +<< /Filter /FlateDecode /Length 2729 >> +stream +x\ˎWZh0U0Aw{g5KٔcSRI;CR%_~f%`&~Ǚ|`\/^sɹx(έ~{;\ƿ}w{>}1=)}jy#/!OTsItaz#쓉e.UeTeh4 +0w7at~?P"$9mb;x)O#ovuۆeJ#|^gcFj=ܵOɏ]I: +_3Ɠzy^Ȫ5Kc?I5X@{D qMlBoaDi8oy1'Rte=*T&h_Ay
!֏ݞEl+oocFhH'zƓ9nipmBf)}(#vWKȣsc(t|GZAX +n8"P?AQB^:Y5T>(@5
tЃM$*-E2^mEv +ڻīy}?o߁s\=|.oߕ3i^$/W?t
~U-wIӁ֔J"ސ%n.<m.@/
Zyл@OzQsȘ.ZO)8 +WQs3eۑ anDveh +)[ܶVj
5P +:$
@.PV$Fh;H|\I*жRsS
cȶCju?Wu +LjŪ&EcbHE\"E\Zow-*FɋdiȚV*C#iYS|zd-aΩN;L +aô C쭼fևRs +>Y&YQXt!Vž!ƚhmǩqvDX8"ULhDcZŶ͏J7H\ōu^t2/pL8}ЁP)S1EjSX5
. x1jp +=n;I!Ѫv/mdz=pr@n(zHm+mU3!p,'40~Rm,|KSОv'Mɶ/(zd:=(GMEv=j8=HO=F;=µ{aZgg,50=-X> ,RXZ(i`HK +`(i~#fF^d&A}w]G_{An٠alT +RUXj85N|oxE +ZB1NV'lS|(ԫ]z\5iCqVqC1ia)%!N1$ms1E\㦤 +eH'JRΧSbiP=K'tKm d]:U\ƃJ9To_8"t@sɻiOhӎЂ-rJMc6R +RՊiStujJaxkH:j}LN"v{æM +K5J= mQTo +^2/_ݶ>ǯ0]W| +3; TH=ww>яD}# endstream endobj 1259 0 obj @@ -5283,21 +5225,30 @@ endobj << /D [ 1259 0 R /XYZ 69.866 801.979 null ] >> endobj 494 0 obj -<< /D [ 1259 0 R /XYZ 70.866 522.658 null ] >> +<< /D [ 1259 0 R /XYZ 70.866 499.496 null ] >> endobj 498 0 obj -<< /D [ 1259 0 R /XYZ 70.866 286.072 null ] >> +<< /D [ 1259 0 R /XYZ 70.866 148.749 null ] >> endobj 1258 0 obj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1264 0 obj -<< /Filter /FlateDecode /Length 2138 >> -stream -x[˒&W<*3UYޚ]*dMF -9ז}yED*sI%}5Ƽ2\*߇7&c ϗޟ_BU1Yk^Kqueqw/O}jÛJ͙JFFSI27)~#3/7K %T>|qDп3jl*kQy z@2IBi8,IMhPߗPWZ|۠,|27r3=_/De$dԧUwn\8|Sg h1acklhއ)`&y zJR}SNz61
:cBikG@"YBP -NT" ;5sDtS-o3Dzg帘"?dBCmkitu{i/PYuJI#I9'L'R3lvςiꖂ7LR=FD!Kѳb%Ay01&nM
(oӔxi>Z>R>^G0vDx5ݴE\6d3uTR2g>r;cmE[<Dn&J;fme~k -]Jn +<< /Filter /FlateDecode /Length 2016 >> +stream +x[ˎ6W|9sr͞rҔH"iŝ-KV0|˷˯7/9
Z^>~j}11??pq+ +9ז|" +8t_1| 5: 6Z^0TP%RC{0̓ő e9XR97**-JtC ( rZHaGEQ'hs͟u'" +(/ד!'dfY1u +PV0oD+bBÄ[Lw no 5\q:3+}?o!C_ :;ԺЪtv+G)&$R9Q;uC.OkAf[r0s̐8 +p8Dǵ6+('f|Wz]LtjW%JIκi(&A) T +;C(ɔQwt3ω +"rm{0: Ichmˇ3sWgvyF;lM? (*,F}=E!
~尞5k)]K /SR'5 kkN]ҿq;jv.MgLV=u陛Agp*Ȥ(aD9ôj5
Rzx;,r%.s<jQyxݙ*FZ ݚ/j!0h+u8 +e3+ڊz4SoOl(P5"ȓ0fm0ە8J#_{ʆ҂YnG|R>p~}5R3p]Ċq:S*Sz-DŠ*ѝw;e{}8.sgbԐ#C[z/&j<I6@eBsr^\Wu?V0EDF̐N2Ga߉-806oE0I +gFD S0[^ +=h (??, +͊zӚHW50ae5%յuњ؛p&rwcA Yp\,=˂<k?Rf؎|[" b,[fy(W(30h"iyloм'tȬ,2DN1c@%iߥ76LsǗnh,]9Ib\`̓у J!Na}$饄0@'R3- +*}oAZQa+י endstream endobj 1263 0 obj @@ -5306,26 +5257,22 @@ endobj 1265 0 obj << /D [ 1263 0 R /XYZ 69.866 801.979 null ] >> endobj -502 0 obj -<< /D [ 1263 0 R /XYZ 70.866 245.158 null ] >> -endobj 1262 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1269 0 obj -<< /Filter /FlateDecode /Length 2773 >> +<< /Filter /FlateDecode /Length 2399 >> stream -x\KhCji9iލf{n_LaS6N I"ǎzQU_^/_~~ ,Xi[{q>0.?s;sq(έ_RH50s[jap>)=b9Ϗ?Pa5<0]Sc`<c -a'Og^8ŋRޅ_cK52x,摪@ȇLpE -**6_-Z2lHߡgprc 1"&T܉(5'!m -fHe-Q9s\i??m7L h -9js?2%L1]Q6|`&:|l]nlF&<jml=gkJ9fp}fFP+`@Z3x`87>W}{OBC76eh1+tI^zp{:daqtm|3AmqwLvuwlp(B2].N8pUtpNAޔ܂5a۾NK&uN&& -Ϝ%ޞ3r8kJ VvxMiD&Q+@vK()']eB -0ME@$u> -+T5_.v/pl֤Ld3kPS?'kF)eF,{hJ8!wm>E:oXP -[Vo@PZpA\YxX -74Q. -5,+WZ2v&"zGKu!DD8CDBO̹a>\4'"rZX'W_md3xifϲnX4'9#J3k.(nuЈ9˛vI"ji4dt815i8$v:ň6}HkP| ZKچ4 nN]>OCCh lZmFQ#$YIƨ%=4zd!6L=˿~- +x[Ɏ6WCi;@&\7"iC-K*ZYEeMҋ%Vq%.?(uο?(Q +WJDJko_ +ۖbh:\rψ@Bac +xrXx=j;tߝ=xc92qbxڗ$k1M0(K.UX\7lK~Łi%GK)iK`w4d,ߛRS|\&!Ő0K7C,# }M5-rc +_L-vZ;V8e2h)!Yp=T-1̜U`:H0"慰YZ\+e_V<37v3c&#{-N,1 +Oj{)pБv68^`֣@=87 +UuvglK.3OYfө+._%Әvxd!lnZkȝB5>BRy9`o8#{I%FYO[G#+HPt8J2l"ŪB7sq +`O"J!N_hf^
q%Xִ̑)I(.Mr[Ɣ
gk<4f'eHVʕmz%q~{jI|)3`ŋz@"A۴hU +#Pr@["ԦoڲiQ8`-k8cEZhK1kE뺝
BT#_q=D Ʒud]i9ҳL}B|H)={R%OK0*O3t黗@ۆ PZ5\
^)p&"Em=D*[?Vh"ݷ=/饟9~jm7{ub1ꉉagܗRFW->^2E]6eP
^ɮfk¤<Q\C3]Xuś9>GڱxQ +,hދhq?)EaI1ޘEg⬆|wm}Ur>+a$S9Xj]O*IX5.,[=3$1uxgqC>5y{8ـ_ 8"gmc
RL xU<nw-M
+-Oble1aH5tB25Kdc!ׂMQ[=ǭqܙI tVC?p٦D<Q"ΊHf endstream endobj 1268 0 obj @@ -5334,26 +5281,27 @@ endobj 1270 0 obj << /D [ 1268 0 R /XYZ 69.866 801.979 null ] >> endobj -506 0 obj -<< /D [ 1268 0 R /XYZ 70.866 433.219 null ] >> +502 0 obj +<< /D [ 1268 0 R /XYZ 70.866 771.024 null ] >> endobj -510 0 obj -<< /D [ 1268 0 R /XYZ 70.866 263.688 null ] >> +506 0 obj +<< /D [ 1268 0 R /XYZ 70.866 266.613 null ] >> endobj 1267 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1273 0 obj -<< /Filter /FlateDecode /Length 2660 >> +<< /Filter /FlateDecode /Length 3091 >> stream -x\ˎWhOd.U6EiEI$RmYb*՛%/o84|A/b(Z_ur_?(OJٕR%(>3]g(N3}nsp%i?O ->B)߄(v3MG~A딂ĨR~ijB}`KӴWuM0z꧅.0SGGg!9_') -m-շ7'<b'gTl^37$3HdِjJJLbra,.%p,"$S)BǞ+n{Og2,C+ҍ̅r}{`TWyvfI=_K#9G}_!}9җLBT<N~
x$`ҭWSӾ@ψToRYÞp3nMP(!+\ -dh醾n``:2nzS!M#`<q&XwGؚR7i WvKm;<P3scAS}Aju>Ss[`E:튒 -B>3נv-q*fErˮqF܀vrY'ʼn -Ga6LED:#$~rq0"dgjytYxG5vGhɗ唾_@szDc8NIAnIi"+͆VsQb*]EM9HZ3'/鱪wA(K(97meDp(8qk,En*y
DWy<q(c`~a_FU6ԽעRkDVѮʭm,UFQm+_u_Zω%m>U0*vW99Kh|R==DZX,x;X*ℚܖTAz7FLNl{r9Pj6>CdYDqxRQAá\M4c3ϳ˻é\Ns# dNa}98ZͩD/ !k4'9mU2 -l4{h40<Bw+t˓%_e4'߆yfDn) x":!qVߥO5<kni]D9dN\$FtjM)߲~v!u>!LּɍyޚwF1S!a4tSkg%B#0=m
õEROZӰʒC<S2<ר^ʄj)ogfTH}-:Cu[S=ihɵz̏CYuƜ^cPLרo$Q0(bX>.ᷜ|l:ZɅ4W -]fF4 +x]˒WgDGE&.'zwc3/&HY,v/\$L/_/ן_~7ҨϿ/b9s\K89ŕs
} +g jSWX|N/ϱ5C3n5>g
̈Lkvƃ 0`d۷Ja""q<mw0*3*-Q_.۽o-٨</Y<Dƨ/EG[Cܷ L5Hlo4~`cT9Ds+zcmnE㴚yJngnAv'6EYRUd)!2YC1@xUb!>J^dk2lz&lDN3QE):-q':a>ۢ*'R?oa)lld}q!j6Sj!Fax`'CңJY:ʶ85mmGn!!Ѡm0O +_HtLdKڃ4Juk +rp)슾*Cީ炙l&PIkX@W\Y9tloLͦyC=m%=9=.q~^=& RȜ˶Ɯ@Ded:z^1(>2#N*lr[lAٌNekt9m+HEftǼd3 +fDQبtGB#>Gc +eFOHf3Ke,S?hVLXw(,Ce5ꂨJgeRJ1Ǖ!)-یx8--0DAx+sn)cnk19TLn))`ni2-A֘[,!k-
AsKwٛ3K
^5ѥ+gGFDAhcP+[+G)1% +|wq`]Z])ʞewU=jSk[|W"Z[kהz,\w#]#ئ|^C]^]^gMNqF6$=mr!C;懽-=AT*L"X67)S궏̲<$mf~)
|y6+n;lZy) F]}'KbcشLW`rnJέ+*]E#e7 +هcM7n>`G>=rq1Ba?;iﲧ/d^][?OՓ^ނeY:Dms
{!3U9(rUlv-
2mР
g6HnH5TgH4ۑ!M)]]'ۛaS<ImS<A9<œTR2$]ex2Y8S_'k>q|*qW-W`Ti(7Nc$eLʼnmL)mvOtJzۈT>6"B0m5Ш[8<?)'R<(coUJ5*P*~C)˚C1͡eIa-u8:<LAh^[>ghsr՛$Bq;ɬmklIxVhS|0nSҘߋ7I<]"[jZ +;%hW#zW4QlM^iimu/ endstream endobj 1272 0 obj @@ -5362,26 +5310,26 @@ endobj 1274 0 obj << /D [ 1272 0 R /XYZ 69.866 801.979 null ] >> endobj +510 0 obj +<< /D [ 1272 0 R /XYZ 70.866 771.024 null ] >> +endobj 514 0 obj -<< /D [ 1272 0 R /XYZ 70.866 571.933 null ] >> +<< /D [ 1272 0 R /XYZ 70.866 366.239 null ] >> endobj 1271 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1277 0 obj -<< /Filter /FlateDecode /Length 2249 >> +<< /Filter /FlateDecode /Length 2043 >> stream -xڽ\Ɏ(W4
.Z96i. lMLpP1Eؐυ_~}~}3oq9c.y{sx\~p.kɹqYϟߥB -[h%R6 .B*P=S%Ҁ J駳yxe2+=W2Y4H^gZmg6Is#O^c0ڜ>WS?v>8~*.;U8Hy&Ybk4cyr_M{4c}x!g+,<fEiZDoKga$I;w3ɲKݷV -Q_VI4ǹ<^۾
3[>*Lh=&CeQ)`N1c]TwQI# -jB"~V~ëAӄ 4Ntcaͦq\dlUaeܳlZl%(n>Mf9}hOlcRWD+:L`<9@15HLs&)< -de`0J3%u\/MCp)eMd!de>2oDtɚn~SK&S~MG^s$<R5T,it&jJ34.UҬQ*`j5 @G+p1$bZÞӅhfjTPUFbEPdMfaS>- ژpE%HfZy4e2)[9G55f|AK%&ѢXWOܦ~o7kH8]mg
ЙݒǜsbI43QstS[fb-3龢YD/M|g4Bp'*: I -c;_,22Zgkސ̙H
CYNW(ZcwM/ A|]0˻or0]Fדd^l{#;(my
ʜ<I!~rtg`>jO,A\;^<c,0̓Qw^1M"&<TDԳH5i2{FoDiFk"&Ȟ1J,k -X[ -XmY%4;钗힛;Bz6k9:QzBs#;&J@xP@G%<@( %j8#?
+=bfU`%Z a'(=Oѻ1} {-d{&pFG%"g@a{-nԠA`>M;}"<mn -3<EVO(2d -oG J|ۄ߂fJ=-GɷT{{ԍ|K?ՏwF,1[X]Z Fi_8n;䷅*tOg
Sc/eF!\m:hHIRQ J+n%Lm -3:@0 +x\Ko#)W-Eq<G{4E6$s*z~9ϧIgހQϿ^q9cy{sx\~p.&ε8<,;4p^/鞏p_DŽ'8~'e;Q +TsT40R4OzO]#B[ LgB!^8y8rt<0ke +( "OQ 0٠P'Gtq>V΅{0O>v ,V +9u
T8 +nE!V-Wx=j0I 4|c2qM"k.㵵y'ׁ\(Escts|>fB4j +-3V6qݾF֭ߢ恘q!|&ivJעa?T-V^T c-ݖ,6Jrފ(l1!KDrUcb"t3wP j_a_3gS)EsCV\?_E
N3/.AÆ>gB+5q<Dn>x0!HfjJf
DZ/|,4_rj^8]pD965eʖ%pI%&ɴ~m&EŚE2(}4kk+`ԵUÅ2saUy%*3R2cP)Ǹޚi.0F]o[#= -ݑN_0{Tt>e\+ts
m=LnWWk|%(×8Qn= +6<v++}RaJ5")`<ޠ +ٕx3 9'yFIz e[6z\S~==>;;\vؼY" Q` R#^koWoyb6!ѫ/9.ʤfR7iYZ2_k4wK;)_r5<sD)q ڶ[#bUYi_5m`8»3-~4F5Ue+?`qLd4B+i{~5[-- ǖι3իszs&[sb9S;e6La>nOLNN^#-i1U?60ux[1@|dOl+Jo kbaq\a3;2L/3хѥXFx_n`dyωa@ďxΪNt[-z;]6{zoyNMY
]4iR4@s*))7:4"9azJ.^(Tکf镺4:"eJ~3Ny=ک-c3>nNC?Q^}nA}tʣZ@GAuicC%iyYUɸ[^Kp~9 rӴZ I%1+5%pAķQ2L7*MTR(ّJfmTRC7P;嬤vj۹#Q)_D%dTNJJwKSzRWS kKIk!$S^0C6JY#}T=Dkٷ endstream endobj 1276 0 obj @@ -5391,26 +5339,23 @@ endobj << /D [ 1276 0 R /XYZ 69.866 801.979 null ] >> endobj 518 0 obj -<< /D [ 1276 0 R /XYZ 70.866 662.516 null ] >> +<< /D [ 1276 0 R /XYZ 70.866 431.382 null ] >> endobj 1275 0 obj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1281 0 obj -<< /Filter /FlateDecode /Length 3016 >> -stream -x]M(oPDGG6b}i.H@[2CeG&dy&or'oX?_!oB\_}RҼKR:#o7c|i)-|oϼϕ
o7u,-OO{O -D2cH7!\ǠOM6S\A>rlDFkldeaysu jN'B0\/Q5E&1ϽE7MS1uy 6y͡K&"n./D*zu "(&x7:^qF;İ"Zޭw;^D/L`ۦTuK$̧,W 羪{{N6ع}rr /d<2lJ<%^k&@fsjU2A4~N<lT0p^siD!ǻadc6p͝&Ei1,W -Și -;UDX2B}KUPLǾmJQMUZ||rt ?s_*W@pTE4SԱoR:zԉB|U:XAH O&.c}rU:Np-NZ!7챐'X]OnMopNcOXc]0b=w h=J:D0Td,<GCU+X6\(Ҵ5Үːˀ/q[NTY.2/? -(؏6m~@bYh%G!u>㫤nhWY)% -gqoDwjlzh=V&,:2 -(VիV}o+N?vIfzRpݠE-"
i98+kgż!O]dPcWNe.? -9'[+sd͛Ӣ߷uћc˭L-JC6`aѾmTfA9OLdQ"X6,d Bc.IR:8D#mn5L -N`۶^NJF̲iV!"e`D6c(8خGÁLy].z8??uDž˴9;./r*Gլ| Ct -H#WlzVZabs0AGw(Or:"@zig@tiXgNnNvN}ۈU#T-h`MΜ3m6pnŜ?c*;?eck bȻ,|2ke^, :+ 26Z-MZaY,V}$W(~yT?%oGK;D!e^d8Rx6xlN;l ɦprJ8.!:N6<z(&aܗ͕/aܗzRnaYc 譱#m0KK,%ڸX] "a*4ײo/Lˮʦ7 `Ot:aRעƕu~aQqaX|d}ȠR;!f*vAm|9Q[tTo`20BCrdTd` -oZXNA%kE -Y%hȸc1aяL7q7xkpLA%ͱIfVb9pj;u^+2-ޛ2q0=_ _$ %S~7$,+f
n\YthU/uAt +<< /Filter /FlateDecode /Length 2872 >> +stream +x]ˎWh#]MVwsqmj,OA2)E^߮%䵷_SK"z 1 ^!~ҼKR:#nO8-O{9ߐ:}SGl|"?? +şZX8'!䕥DŽPB'}e B9vGXB)-ob$bB'&}-u/BhBY@8FaŮyE-L`2&bJ4%9*<n i).
脱fPB
~ O
^l`olB!VPʠAo_OW5Z4ȟW+x(\a7u/*hc8Q+4xytb^p
ֽP +_``ByűU/BhB8Y+c/Bh?VP8^(o\h8ByKAVe-t"O>yJ箟
6!=80F[#I"H56)nHGZaT`ΆMq"8*'c"D g-PosR[$V-E$rɥt,GYyJN`vre03״\ـLg1/Ҳ¢FYhM{<$ڗW}ERӗ{-@BN͚hD]D1!̘F@s6vi3?ro5ir3:l)P:l0O:+[+X}+F˕D&DPy90Dwh6kfӎ6^cfCsl:OMzljDh6KBƖ8gejgPQw2oYHjsU@mbˀ-D<#NZY(7 "H)eT)E%r%*m`~9RTJ5"ΨT!J3J+QUQTb D!Һ3*lJlcTc/ +c89nYȗdfu +?1KmzM)|7ߙ($_0}ۘ^)>7!Ž9<{#а>imf +aۦtuF_o)
PN?,ӠǍq{F_CP|b下s>>J.8ɪiJ#i0+IR#K=8X/.B{1.vދp^b }WX"cJ=mS:FhRcis_\c;7X/A}qW-|uuۦuj!CuF8|:X/AXWH+Sy[-ϱ_&=V
8ªaE3`=vRC
"&e, +6ǕQJXϱ*UqF
(C}*;gXhF`:@nS;F]! 4ꍱՒ<PdNIcS[93X;% B^ΪPOIl9%M<̰Vɓex7CGCUfdX¬im$6@8[vA$weYo<+(LED<a餧^Z!;PxPC-֥a=ShǪG\ja-88bg<!J]m[բAep̪k^!P7KL˕˝+>h3Tkc*v+@ OUgA|y_G$1t`0*ۧo[8_dS溾}VôZmL8nPe4d`s,TYE9l;a@~2/::/:?K̰K߽K@fcM#x]AkTVT9ƺѹ0PPܑ(G"p'flcl_fH6kX)Bj~c
")tYIU0`nytRU͏lʫzڡ(ݖb晥ےi5(ݖ|j{ cCu([2z7uV##rgb8of[ɀԲ ZnKO%MDܐT" +xUhCf<˜h{S!F|13:'Kez^zt`A_& _/9izc7mQfK[#[2 WO ,9Nrz)rә,?9j͎C3!/Y,ì!uaf݊^v<gx4w +1%W!TH@EVIĢ@p:S.u라-_ endstream endobj 1280 0 obj @@ -5420,23 +5365,26 @@ endobj << /D [ 1280 0 R /XYZ 69.866 801.979 null ] >> endobj 522 0 obj -<< /D [ 1280 0 R /XYZ 70.866 771.024 null ] >> +<< /D [ 1280 0 R /XYZ 70.866 485.719 null ] >> endobj 1279 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1285 0 obj -<< /Filter /FlateDecode /Length 2436 >> -stream -x]Ɏ8<6(е5ƻ
:sS6EKU^PfZJ^{?~ۗ$^~燂E]KIH
)RO)՛H#ןxRZx?C/=}?!a|RGy{G+C?r{@L¶H3([>-K{W >G5_P*11ᥝc>*atk_]MBI_cM%.&Z
DN-<`:>,C&ְ{ٷP -tn
`^^B&YOu;vmvWRm# @
{])-lFλy&O<c@緘cc>s s-4R0zeRBz[k-
,LjDmLjRFD& -x"~Ad)
fvF$dӐOR lfo3JA{Ue+3P"z0 -yX\4U;;m1Uә,*qϬcUPN˪5ZWK@>c*S;C hm<u\_+c^*.1O$VQ4",
Dv:oI\Wu脱lA>
Өk4⚂-SJKDŽPVM3Ðt;|;T+9`d4ՙJPi\?ilg
iW#LczX4K봰
i9gap/ZN.g`q~:K8d:b2
ML+xN[Eo<Fġ3S'eB$zر@˂x1DYVV+'\l=L.GdׯG|JQ_D^vI=|u`}vL2g91G,8} o]}2cq&sY蚴8 ``[Lvm\clcBi|A9R<<3vi+&yZ$<-",1DӲ *v,ϴi(zZ⊧#=|)IIcEQcP]Cp|YxZ2DO#Oڈ>8}J1#
"c`_@tIJ=|\d$|mXL4S,'
쀥sBp?m<6E?6V - ]imN˗%RQ2*#X
ˑ~Ǚh$낔QF.x| T5 -E|Sgfnj5%3%#?UvUG%~mڌ+#cw\&c -S5.=tJjYU W*
Wi|Cmz(&NJQ;~Y:.HAĨLaWhER`}Ҥ!yc -u1Kc9;Pp'P _(GYzNX{+؏:R -SX+`zkSZtVgo$rOn[Av9o)}J1@V0LǻopgطV0Nj\Gv"s^chSne[!Le&|_G<:vwȟ3v<_sK(_?[ +<< /Filter /FlateDecode /Length 2952 >> +stream +x]nޟ?E($8nU7}EGIZ3IG&7h}/{נ/Yh뛁苹$/iJ[?Mky:8ןspEZ{",R^Rkb'#oWvܟ? +T6Uy +=O"i QGYb\֛Zd+د&tuNi`nQsٞÜ +v1XT^[R^AoߢA."jZD oMʀP.Bt (Eh
1"czɔrZy[6*-a|YnC۾Y~7ןzZm[ƕ߷_3bκ:]ZьDvn +
E;!^JKC!S 8kz@Ry7TaSٍIp*ȸ#n@:ɸ:[T2Fru"Ʃ7^fFR%O#8:OU^l^K~ǰyt>WKhEmz-D9I
EH=1%s+JJ+մvw`fM|ȃ<u'}
̙-2DtuH@!L@{ qʿxe9?n,ʏpӸ`}*"eQdi!2I]yyLj%Nd
⛱Pk+r*8;hq!>3pVNMvÏ;<Gxxr}b +Ùf#
"F.%,%]mlmIm;]YX2`Qf-ty2AB}?єz0.-""\J6}f.#ElL;v쏰[[`?w Kq +, 4VK +9]Յ~sa28
y{9y`(s`{Zrv"X!6ps5NhF(^l**{=|*2`n-r,2{ktDDlhM2D[$Ï} +gY>M[aD&ywdkk{k|[n$l]hc[ُ=)}'2%'nskeYچfľGv(m\CZ+bZW-V\ -E}&;D +f\F/G!T
#:2O(]3j{53"#T
"CdjC"rc&I=~X9`1ZYbE&NTD|;Fcݎ#]U8F"D$!s $*[:GBh>Mswa0mXW0N
J6NQ3}RhR-2mɑ0ؖD%0j8eg6utUSJDϯEl<[r$Ys uT"̸)X~? u1}GI[9Q뱾z̏3d{ +2A>1ۙ I.Tl~ۜ5NIf8uY^C#__
JAb!sur~/-
W*m|7pm!R9m炉۰|_'
%_xz>XSc|]Q&ՙYf|YKk;%Ys _T"̸,9/'E:AדC1ac>@mOF܃}f"[jo .ScnM2Yv[´}?{Q(MNJYq)Dh:h +mmpm)m?%M'xiz1Et~-"MoEtzK B>zj7egHlκՆ:*)%n4]M?vV&.HSαt @HӧՌkrRK;c/Gӯ~c>;5eE^[,5Ia٥5gD *wPc @!"I~?q7x ĝLqW7:Z{i*ɕ蒱HFBC*J@e"!SA\{?`'_9Hp&VěqJb`=²K%ގ/d0RD +٫~Ļ~IRNT0Ƭz"v0ɹDǒ)_4ƾw}蝄pB endstream endobj 1284 0 obj @@ -5445,29 +5393,32 @@ endobj 1286 0 obj << /D [ 1284 0 R /XYZ 69.866 801.979 null ] >> endobj -526 0 obj -<< /D [ 1284 0 R /XYZ 70.866 216.189 null ] >> -endobj 1283 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1289 0 obj -<< /Filter /FlateDecode /Length 3045 >> -stream -x]M8Weҝ -L%m&0FeG -~LmY,[)(g
v -E*8aIQqiOz?mѾ[߃{wrg-lDBX3FbFbRܔb#jcQ:5V)Q\5#;$dU>;YTJxϲ)#Ϻ7;c^?_Jl7kLs -% -F,OAsn%hn?Hױ\vgpG5yNJFRDCnѬYP -j#>[!nޢ}4Em)aE.+n@ttfݏ"Bvڴe;Qd9E4"
@N]'di^ǑH *m`t@PGE4R"du$b+Ԯ}B]:lpjvZtݏ_Hݘl.L>O6UlT^<wM@xX`R<TLWN(xg!s<,GF
eg\Ւl:VΕ[*cKL~k#jS_{?4E璊&ŢVM>Fd<uHfuleP%sA -EYB4s -e ;a[,р|a`
W51TkarGQ.*DyTrP@'v -Ky2/PTX; -+^Bt9̧oO*3$ˌSVT@8@</]ܧ;:/]"bKFL\r?P*?|`+30c/'S {cAd`G7"gf-W>"}G2%A -Lm=ke~_AfӅw\ڄO<u}W4dBy`Ĥs'u=+G
:θ -3'نĻC4@>P ;b{-DO0/+IbQd9!=G9DmkATz={!5pbl >Ĭor}dx9 i|TAf(!ցrYOI;Oz>NZ|&)E -3\ B^p8\=)#m~$DL+H2r?6<}d>fCrXs,!m|R-&ik26@lR|P y@kx"bmL}@P|ϼ%}+}+6{+nԻ)ر!/Ck'Fi\!M]^*nd#ZQ +<< /Filter /FlateDecode /Length 3092 >> +stream +x]ˎ:WZWo@[̲ѻlf3U$EwRrxD7yo;y[_nA-EH
OR?4oRg)G]?cNKi.BxʯyK /;uđ+oz{߿~*wEieyj˭<Ds߷grJi* +?AXN%tBE ,kp)[JUЮH㇠]@{I*y^i
0ҿk`\3kq\SH1"%mMsRPCRS]`k;'\) H9E +RQ&RТ]7<{ +ØtR-Rp뱦@
) H=^\Gni[ZiR@ehFiaɆkZQFiᚽaQ /#%mMd@RS]`빆"\) H +Z2:J)E +)8\@H)E +aZȻt|[|ہm 6=@#wasm~YOBqG5x?p+S
ЩV$̦a ++9jZ<3"OA9a Θf"CF!ʂ1+yR[ۊ [yL1A>0 w0^ + x:V+` +U(yDz 2Ec=DR +~XˤzD +G$-XW^%S! LZd49 +8<έ<ۅ5Ύ,MZ@]& +YKT~+#jc%q=Xkoqe\K9J[SNDS)x0qE2 +2y +c5==OhGiz1Si#kn䁤aSǜZZ5c-x_y +JW|+4/1 +(amkR^n<*8X݈9KCbtTRoV6k3)B +]=ԴyB6Lƫ5:FÃj "D/LD{`[IyE9u~˶FwrsXZWC ADKlNGi2uj[΅j4Uwvo 2ǟT#wPrhyo6MYR5@QYxʍKSZ@[2g}a fEbE_X!QZl'kJDx7p_9Q#C1DyF6Vh't0l~ڥDVThjKv!'.-õX~Re?H58
c"]f@y¯ +aj>
Ce3=?|@#\^Y>ю-40.#`P#;qۻʃXo;\{-jj艭Uuu,x'YVYxs+,l֍EGR2ݶ-Nk#qcz/l <7kC}rPlKo#eZi|W8Pm^<vǬ^o}~VF"=mg:-O7x=^Օ?Yqwzw[^X2o)[١@>x endstream endobj 1288 0 obj @@ -5476,39 +5427,35 @@ endobj 1290 0 obj << /D [ 1288 0 R /XYZ 69.866 801.979 null ] >> endobj +526 0 obj +<< /D [ 1288 0 R /XYZ 70.866 635.439 null ] >> +endobj 1287 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1293 0 obj -<< /Filter /FlateDecode /Length 3320 >> -stream -x]M
ϯ?e{1[kr%LzʔDڢ1FtWIϤG*7ח_ls|/b͔[fc}ᛵSB}G4[)wxϷ}|'#oXïW.Mv6EeO[^p\ -6%WuuݯC1LG|l?m51~a;N&ϳQ -f:R]0k.3A#}k^P
|HI'3ϓ%[>Z+&0U~j&~_aI4LWsM^ϑ-TnkV?>ʯŮVW\#MJa*R(ՖeuZCUh+xVym˕䳷&sRS -ϯ#@
RΊ<%ZĐyb*Je-RJj?4_H媅cH )2SH5( )@H=V埬`=b2ױ css-,? -knpc쭹mh^e>W]O1ku| ƚw}e
fo[oc*fHds0.&dBI]+lm+n,Iٞf\u"·㥴ԒE uIKSmd3CNXngxmǖK-NB"(`E.^\L.Q@ - -dl~_!U*n@c -ωKv-cz -ꜩ
M\)J=Gֻ3hDp+nGT*K<B6+[lVt[6':6lj~bFVA9k,b&OQmhp6EZm}!dLuIm!z""RLu@fN8U;aab;r@D0!yASEf?<ӤFO+#~lAVX՚mr\yFK[eU ]\m?6 -8OJBT$X_]7+2@}u`D_oծigǕԒڇ V(B^^AV1Ze{mmEUc@mEkjmڊV
aڊj{hg]{6Uf#ct8RչhWƻWu$%]VX9W&1<f>*ND<Qi\0EmxW̃EXdTF'C@]CP;g'Dm:cUӏív;xyJdkQo)2VS5 -Z3xl{zˉR%pG|6h[}d3G=-I~[fPQi0?!L[L -OLlIE*`l/RAۉxF -,%:=F:Z7SY%X3.3iWaO
OXBh<D7iXgƳS46Ym!<Uŭܑ2\ZpK#L$ܺҀj;[ -h{ۉ(d f0>S.ht<K5F~ Rd3UI-j/5ԁϝ4x'e፩mh>!dlֆ5ݩ\5+ȋ<<#Wf滲~٫k<tc>;e)uqڗ -"ͬBiG ˣ -\rum3 -60VHW@s/9Fyz,b^"+_cB| -OE+*cDX+Aj y2Ȅq$G=R(\:n27JQHYa5sUB+ -pC:)- -N8Թ"6;Mj/y0k讽b26Nn9Q[@9h@zhd]uwEF%yER<% RPOjpJT$^.(Q@ -%d$y~ĨHjJT"*+J-P*<AnuUAn"Z -UHyq»(mdBo.yfrG%|ER<% RPOpJT(J.(Q@ʈC%:8TG<%|EJTn9Q[@9hD -D[J\F&L\ѭX׃'xJ%HJ""a?ζ(Spoam`39uÙA>ee=H{t!s)0e.c6^dAO[`dFlV:fݫ+%%"C T<D#[LrwJfYvvA)KfvH|P,!Bt*^Qn=w:j6,
w'9 -^?d!dl!*r89d|Ce+Жt
Di<Dʅu~Bk -yі;)'y>Q<#N\4xCZWw6(=Z_ГgX{8âb8iXwD(9E9J8e
RtHRϤ., -xL -<cF၄1~Ӈ8 +<< /Filter /FlateDecode /Length 2977 >> +stream +x]Ɏ8WF4l`
:}ahKSΐd<"3h!oo/[kooMnA-$ww)w)ͫEJgWcNKi.[s|C:'O' +N`)P.9JmRwSZBdR]8^ +˓11~qt¨J%kw^' 5j +""
Obp$@J +x4Q*F@/U$|J<vP
<CB + aj zj?H0. +gQyP+ND+| +T'(2xgI_f>k֎n\ky^Z*`baIxX*٭*RX_h"ɁM+}0K5b +>FZ9`TN)H!-']F,Ʋ@&*OЧmFµ~^HeXcp1ZXnd%YYunxA +gY8x:tͲ@ffشf +V<cSp~fSE0u}Գk2`q@&CRzImqW("Y_˅V|_T`]r/VOlwvLKנm!:DG34k-ckDZQ72dA
G^^cцN@P/8<к r<ЂuMp,m^AĪR||b;LLlwtYUlCo;%ps<bia>3Y}Wc^!zO2:xlA&eaB;Loeq!OS鐝}O[k_Sף+4}/-]$$aEeKա䊎ߵ2RHnkbmdc)r ʻrBʙeWN#';;;dX; `7! FCX;%_Efk +z?ߎn{Ͻw歃37=4n[-gNP}'B*D?)®`
-؉>h 9` +Ҩc:kpz6-1t1R &NOvtrq]=tU؎*EXt9vLXSm|B94ɃU +/1()Ή qq+LL3'&[
U'tĄsbR61xLL-^a=-θ=pejՙ3}>pvZ'3;`gjg1spK[gjaIՠˈe3X8 f,e~1L#2Z<đj4G,w"qsUX%,.K]>We[Z;D +~ܩ2?c1#qxceSa_%]Pg*M3cR=x> +/DHLd;ޓzWT=-t- -5 +4Hs=]?̏]8Rձ3[101| +w1kg6:t +xJ03>rFOz3s=^X9ނaf^W}aW|cf^)[#CQjݗD<#]fݚtq`&]u'~t3e+EU~5៹4wCh&/DJu<p$Ƿz+asBt +
$XlI endstream endobj 1292 0 obj @@ -5521,23 +5468,16 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1297 0 obj -<< /Filter /FlateDecode /Length 3239 >> -stream -x]n#W7@` plU6Z]ɶHa[XsXTK__?GЗr_~\VKd-˟jmjkmZu\w?<#X=<#,R}}='?BWޟ>nPo8uro7ߕ:_oRQv<Ra -ZDW.d`12LE\%*f~6ys4&CXqDdY
9H'afL['غ'-<a^Mx@mjk@ڇ"5D-QN[ۨQ):D.<[T`U5EqնU~~^y<l3}q֪S>UVӶgms.A9cgpY/1mڸxd>iy摃WT,s\9pdl A͓%0 !˰x@e{Dv -
S]e]|p!DE4}_,,M>kKjPs`=m0t{X-Z 39긫}TL'^Kۉ8TJq/y?Sal1]3C R3sw/wLcu{0-Be+{ٛfL`Ԫ!WtV6Wr4N1X\S,5nnR,-*qRT-Gq˖9 -IO]LAҙr`?%]d.XejEm/ K˵zW0\dmQ36 I!b11'^b5L؞ˀ}FK#©a]H{ܡpe$͖lAi$ &OVQ%# 3% -`?+JF$e>[a]07Xmޡ|ǧkNnrYAj9ӑNSe~jNڷ10m@jg$|،%&6*fJl
p`6_l}ɚb9]Yl!)//Xk=_Uk8kmюٺ]"w8ԑtw"ۃm-PnX(aˏ -K2% -KbXAM*˕ZW5KAGv(WvٺyÙQmAtg -jcIc=W)/?X`ILTҏfS(YT09Chq(ǒsT:nwzl? -oSR xT=niTTq=Tg@=DJ*J#DJ*-^UlckrkByyjrcʹ fuj=\&BLPb7t>&nqi3݉uڠnq&B6 *X+TFhV4En3pY,|/L -'߆Ųm/Wz=TOQwr~G0q'5_o5]M}RQ.O2)u6;{ͭ-_Z"XanUf۔tu۔"$"g[rȁ -\s0CuJnxXWGoi}&N'*|HΥ~A`7N""쳘./5\*~(eM<G.c$ Sr%1QUiXJ8W݅]偰(yrfENe,": K9Xn'edi̝3ۓM'4?psD4&Sm7ZⵔIdJ=LD - -VIDz- T\j90Im#/UT8g|6_MVzo(AuHGy1@(S1mYBL:@GNb_PSGd;RzЦW3m9Tf=uqK5Hۖ~oNj -G; -sHœ9<%
_'Y@
?Gv3 SaR2b0N%%`;pO/L9 +<< /Filter /FlateDecode /Length 3105 >> +stream +xŝˎ6E!>]4zgvb] +dD墑UYԉ+2*h}o|y_^vۏ|1fnQ-]i߿jmjkm^N&/ι o'|3ߏg
_ݿi\?qv|?3=PwGx9X%U]:!H`TJe!~Ao9`=e9^}~߅7a?
+vs9tZ]EؾvZYް>o3hS&蜉r=3q3%?w%u}?G`Z|<tPǼtQP'Ҁ}omT1fSZ'"T795yeg#Lt9i#3fU3y^LTiikewVX"$h~dY!XcʼnXJqŪ{(ɶD%m>2RGEBK:@!Zg#,X3
Vp.)`ۖkg-xoy؎zo봔iTC)kÓ.CSh1h4b$x$Ah8Ȗ==Ӎ\ 8H[7[aesׅNN|8|Hm]{gL38wR)>3DTKVeJUfUVʀvU+ױIb,/4% 38ʲ*lO-Wβ~ZՖ^+Yx3s8\3К5pmHEN$Vt0q]LStG+EwN?(B(x9vPT\7"Z9&2-S)XH:?$BTDgoA,,4KW1<K-I'^``gKÜ֘<6;d^9[gqvL4w;Cʬ\'fV
Y.)YaVY]2b^=q1ľ֒v1ddG)^SK%Υq&3;g4YL +uxbLl0Rү\vkm\skRRw:Lw@B'(H'bw@sD; T +l9 y0ZNl,D-eq3151t05; t0ɬiRf
O3+
Y4<febV/ CBWhľ +۔Mbݢቅ3^DTxKwJZxUm=2]mJFRAFOD9K'vxPԘ9KjPMNLG#0pٵ^AK1I.ؙkJ05f&R0Rܓ I[Nb
Ov
4<nbk/ XCkGtĽrO{Y(y*F:y#"&yNO&S<
3~062HGX;*|:i,ǀz~TM8E3>GEK^\'f|
.)aV$}]H_֬FRvRu[r=bPhNh] СqX{ +W0YH+ Iׄhj7wh#͝/?g$\JÁš1pD}4-J
FI
&3SQ[>ڜڰjݞ-$QLLp%ml,ZӁQ\j/ܖ5 +cdH4Dokl"j֤T2utHQ$(X2ȆpЄ۟3`ZHc[CL-5EFZg^guA( endstream endobj 1296 0 obj @@ -5550,21 +5490,23 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1301 0 obj -<< /Filter /FlateDecode /Length 2984 >> -stream -x]ˎ:+ lgVw3Ē-RHJY$mQQQby?nN^H^{{o -~!/_BLBjߗR)R]tFJ -~nO8-O{GW~oHx#|"+B -¨"XbI
!&VBjԾ^Azm<!z)Ҝwk{TGk3ɟ:vꩢ;_/z +Lվ l=e9ޙPlщd\lVp\q&SR 8ml/6nlk!"
*b|?3ޙ'8`,FQs0lbN_g
͌e2&S/1&<jc"35. -gy#f|)qԨ:(4<5j<уYhQ=d5}̦Fֈ'-XCF&+fB."*]OpJjWT'7+o0̄u#&46c$eginj;-@iqD˟f%h}5₰HVyUo%UIǰWm©B8K!~NP .w\f-.tOW<d[躆6>k3A n+눧+A¤Qފd8
utpRαh&z@ɂxADc *s,cg:L -oAM$-&=qh0軆.%OQ!Ѣ@ɂX1DBS@.'ԭg4umLc^nz3wѺC -B
D@' -4R,C
pn|FY%b4HU3^1Uƽ8O{]lx@XFҭƣW/:e=|4nS䰩3Uuhkfhc{Pe*}AtF3#ŀ"c7D[B-mzh|,@v
q B74"tCCy!D[IO<<%i2z!r']:0Q0Z@^hv-p*uR+L܌(PjCm.
ɸ =H;fԏԦsshʧ79wr>\L8{rwv67O -3/8{?\9qw4lb؈C;/=%HƢԓH2hI3Rf=eʴ1`L%|I;FَSfBhIa;EY3QIC&W[_ecNH2tDsNH+ 8e'JÌsbdYN(>q &O)bֺҥ0a6b$]{7mix'iD2FS'Ja2qҟeC?qzoy:f3);1>/+"6(sfq_w
fI$6M4礈32d5e4Lugti'QsfSvܞrNYD#mӹE"w)mz&hce34p27G5;WzlGYDsNh):*W3QJrB|#5fn%yB*sRDF)j2E&b.y?^ -oZ9`wx+EDUMO43rg(K5alĐNDX=AYDY;ɗb?nHm -٠[x_M:\([5hs=*zmVOW7`9qq=NʯS8<p͜PrQ Gy`;<39(SZo!<|X_Y:Kr<@}\/@"<<" -&E\75ZnprQ.?b6_䂜E.)G!PXL'-#fF'䄣<"/@N9C姘
CP
L&3sf==E pqA偞q̳<x^m*T_
%v%j6 -
qV8X=w +<< /Filter /FlateDecode /Length 2656 >> +stream +x͝n6U-( +lI^cSHO&OZ3G_˯_^-ˢh|닁苹$r-?imj^6/Zuo?OO)g^g߮i3bn~PZB^:"obquTfe?dwK]]* =_!eh;}o>.?[ߋi +0)(<U&LGZ%[]5
lsmsm `âLgr9tMqjzp.e~۱
+}Eުcy)ǯJiCùV(ljכ`>6:RtW(|sYvFxXrKdpFfYY;[w06|sEC5[SAgl3I9*sk +>ulR)}U.+YAz^|VqY*JjZ +uNi]T9
ERv'vpzmuZ"&:3&X
s<b6d;9\=˅|Jw%?
X&0\ٮPecqn +ًqbT:'r-k=_/-1Nf1$ԝcd +x,@7%s^g\ڪ2 /bFUw.H"JTfs~-^H_kx)?b!Q)ș<El{2DzI콦ZE9:KdEP,L*¼Jfr|BRٺOWD
#_5lz(8W1/4$SzU=W"/snDX +n,p5W
ًt.58(7R|H0rcG)n"1j/rqwn$QBsJ} +aFnZk;7#vF3S^ܹ;7#sT(qJ]'qVA$H0rcm<2%?
lXԂb3Պ8u$l(=M2Oa%Y$<ēs,~{_}J>|Ud.zpפq{_E&"rU=]" +wM*ڸ|5DϾ#K"wyq/dؽ1. G"wͅr]s0:l02 wKgᮣN5N
X_3慆|J2z~]H_G
Ź[<TbqN+I*|_WدH\:jغciHJ%7R=||'EڋL(EFzEbRV4Cr#ZCnXF3EǜAp#BQDQ9EwCV!9b +Fjlٺ34v{Fk:q|(@Šv֊nTXXX8 $!8I ^n4XUSs8jbb-~KFmilG6O6>,pK#]".i(NDJ%S=|(|fӘb /ox %U=" +O*P\D(uV؝![o{!|ApȮ`#s0f#2>lFoٻi۳kƌАOImOǚ"0;w±xk%#:~
d'nRqs,DZnb U:3o=U{D#u49/"{vE.{D I( +`NQ +M3=e{'Ýwk+ 8yo*8vޓ73.4A=k.G0^Nv`>٬3,mמ3mWtZ)lRCmbR66~ V$n}}955BJoR"] kۢ9oc^dAT8=ͧ69/b{xËL .Žt!@\DQIE@|n_f .C9'"{A`q GqAauP[$ +<{ݞ]3f|J26^{O/Q=x4^_TP
rEGߩ5lmͩ1=-3HM*rl2hY'o/ݜ endstream endobj 1300 0 obj @@ -5573,26 +5515,26 @@ endobj 1302 0 obj << /D [ 1300 0 R /XYZ 69.866 801.979 null ] >> endobj -530 0 obj -<< /D [ 1300 0 R /XYZ 70.866 479.203 null ] >> -endobj 1299 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1305 0 obj -<< /Filter /FlateDecode /Length 2974 >> -stream -x]ˎ8߯FhV[
̲qwNf3*S1DT,(ʕHI#Ɏ}ї?/Eh7sIZ/)-翗y:8c
o9xGZ{xGRg}'Ohx}~flW}]>_&
(EZqڊ~Z77]..s?3WE|s]u -ukHL^+$Km.AXI9nsq3cN[&O͢kXFF3 /|>aVBKfLK(F{ :Ez^!u1a̵e1U1F:$1ȇxc|{-"v2*j[~4$UpÈAX#.+_o"XDۃ@T1䷇85>>9u&2\v -ZD %HyAc`X?K{)zv싞v'5:x,Qļ
;3{"%Fu]Ku<rQI?':txusVݘDxo\A֑B$tyk"$銙sɴD!y "Y E&'|f`N̝J>K Ҽ@sp'lDcǣmJmz[a~B)#O3)Lr%\g2nTNq ->qf68 J11b -/20CCǫқCptIlly)ڢi#JߢcARsw$:r6cW=ĸ@X
']'MA -nKMAJB97=( -pBU&$ry0QqYh[7/Y|ʸڒ&j;fͫ-=p#[1ok`h>is5EJ2Y,!H<Td BecDB:%@ǀ%C^L<P#4t86㌛'_ksBQcq~#^::o#/D c<A4u8Ҕ،n^" -#PZˑu<dA\eȤei/J;N"14D0upUҢiz6vr{YO"msRՑfsJ|2j[O4-Fmh<K|7HI{KI2h<QzH;?#雦9+h0ƈ"B`b&{
Ir:TϺ6QG{]Puz6}GlԳlDh*JiBeX -y2$l]td2͗Y"ڙn%1e4E<zf~\Юh"gAȮ&zlbZ:@Fu-ZXBMU/{.. UN77,cDcuo_wFIN 5{LdϨ4.:|:SNsUu[.EE9? 0$b7WL۳'\e*i}=h.L@KG\-1 -u;rs4떺gӑNV42K -˚31,qNwJUtgՄcnS:\C5X\XOK8!qCy7JxfrRŕ1ODžKxd/6*z֭w
~ +<< /Filter /FlateDecode /Length 3063 >> +stream +x]Mo8hIA`
{%lIJEe8ի*If?~?>
Ll~Ǚĸsssu\\97swH5ߝso=>|
;w/ +5" 1gvzŦ1Bfbv*ĬUI&ipcNLy3E'5&{HL8NX5v +mYMx<]Ud'vXzbofݖ +S*~}ym*mml>(lo ?M8)Н[U3>Zҿ#b+Lmz@91;^X$s<tsb
98'`SdhN"Ή99q8'v"Zڍ!OgqNΉɊ-#DzqN|4s"ؗ8'>DXq +Y2LW7%Z
5e'cbpN܈sm}?cN3of4;WaBSXf36A<?RN6tAz(d07LepL~1|yWz+GI7|ex +CW8|ѳ.Y_k"k8|u/r y +R1) -67yJh2FOx|8M6̎R8>BϸY?
\mZ#^b;$ҙC7M~oȰjFc}a4۫-P5h +u),fDː.L +%yrت?2q[em&ѯ@N8=;VQz99cr]pϜE0]FvAN8E=pW g|r.(?eP>=-Lfsva@Oxz£=0?hg큞qzʣ=P~ʰ!!RttPW{ 'rW{ g|zvP~ʰ!eQ{vx.5?ۣNqUpL#ljOo8crW`mm +/+ eV]]Y<yWΛ.PCpg ji!! 49cNoZKS[X>կaeqme,Q|\S6}\)!#X-+n +@On +.J;w2Eb2E626G5cBRa!In)ojyЈH;Ukxc Sk+"m +ܖ=Vǿ[9ZVGU)q^Tr<Xz)o̕kY3/ٺ\m8d[ֽN>Ƥ +#SRtǐ4cik:WXr cqlo2% endstream endobj 1304 0 obj @@ -5601,25 +5543,24 @@ endobj 1306 0 obj << /D [ 1304 0 R /XYZ 69.866 801.979 null ] >> endobj +530 0 obj +<< /D [ 1304 0 R /XYZ 70.866 570.859 null ] >> +endobj 1303 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1310 0 obj -<< /Filter /FlateDecode /Length 3520 >> -stream -x]Mo6ϯ?ߔ 1bS.KUrT7*a{n"+_?j6|3fnI)[fm?y:8oϟ˯Vk_I)_w}}W35hг-G̭ķ"n+3}~UUѨFr.s.J_Əeοf!`Y9kbڿk U([0.gɿI/xw㛻6iܔP۞Tm|(85P;|8i [=@P ;!& f6Y -'h;lQinQ\ZgI5mmZ:,?繦GIs^њImUXlya<kUM~Ȓ>
PǟcmUkuXt&n&QR Yl{q&O
ZZtb; iaSZO]T/MenR'@hK"T3pr(8h`L -3<P
M?o<]Yd4+>f{X͍2o^kpywU7߭Sřia[|-xzbk}d[շRWRA=\Tuv|,?W0O)ADnƖ -'/IEecQy}Q^Y5w}dv2^ZS|GCH-BSZ^Y Bv(eRK\X>HN52/A/O5tlY&I!C阋/3Fsj0јm8F} 7"l;Hf=<'|k48P Ч@EuADpAjn"os (3Qxr 艈n;iy6 -qq7rt=I]_9#Ur8]wRSin3sZX_2dnY︇,UBwY!KV]q2w"Aܬ6eZy.;.NYWy"iY&-% ,T -{c>N}YQņbPHTF.R7F;^\Z/}*3jV6*B -*AB4L;Q0 sP -0w}ޏSbuII|ǘĚ%ʷj" "<Pӊ -NZ>[=+2
T<<$<"Ʃ^m;`6#n[Uz*DUZ!#V\aU:*/{mfڙT9Jǘê91ZXU*V1UD}#UOCj P!<xCخ/NMcxTV>|ݡ&֢{4eN2@;SU|m'3a[ٌJΧOU-Ԝ)D5cǂG I.{^oڣ[ƨKq+MQeRz֬j֚5'Tx5DD8T?@%*q cġ"x4T+NÝ,N2(YlhSAd1(5HTcx@]ʹ1ܘpnlAh8LP*63Wq6G!L^#
"ˡPVAʶcCwoX+ێCGb{Oܫj~ZOxr'sDU;6
m.6:1D8
oAp7NQ*~87X+ -u$:@ƿKB!qr.g"^?ă=_H_ꔺ_$].w<)pKnm - a[L[,tHjnP<.M<uDaQAOW9}oְcwós,ii# YZjgɇ xy㕭K*+=o_I{<$oo1٤.q<xm[lQ -kbOW'ʔɍk'SN(B<LqU}S!E%bߗ\ՈQF3g9e -@|EXGH%ӱerMvL|#;cm"[1щ^*$ғj4w(}*<?~~`#% +<< /Filter /FlateDecode /Length 2809 >> +stream +x]n#9SF`0@3}[u4}òDDT8vl#ER(ѷo痗_~}
VT6ۏ~1}3UrQ_7Ww͋i3<78j!KJ=qo'mFw,ϖws +*Mz +&{eA@پZkG +(B(0_ۏ U{"[ۋf,8XS1[g:^]`!Dj,$F2-K˃|{_HCW3`Jodsj Ts:B{QSI:2ATcq}q}
F\\ g*V&&K1A,x"& \>|YTq/CfrVP^OkSx q:{:<laZʆ +Ei\iVt-"fLo)/G%{<&䥩pFd泉 +T=Fˑ<$_Du%_>oEVx^soݮὲaClD3I@b۹5LD1rA$YK.dq3,L=pJCt}o0}^۶U%$@ԮS_s-!ϻ=;u$;mE hsƼWjVĽx2g,X/sue-1sLG{د#kӵA$@ã bN_+)I%|Q|bKd=TW_:Bn: fmk\O80Fc 9>XI;{μK"jt|OĎ,'y!ݗBu)B</1xTquQY/bǏ,fǭn^4T(c8uњ6q+W< +uH}%ym#{I7JdOP7O,lg#8d<#8s?SZžĉGez;'YpvP;B_5Wa<%N\PnE]y X׃<0~R#x$QbƑZ>#l>+].誧$l]OIQ?Dj ?U'F~_~Zf +r$^W6Hv#7NjuULrϤggQ> $j;CϻMR@r$xpݥXZG+7l
D?r7sXX@rJtVJX1@In(dmz[(9NOz;;vAGjG5a^7"-Z./mOLdMT߮᷾ڨ5M ydDuTOs-R:&$(Hy"xU\؋ɥHI2'$'A9PR<o}I~;yLkcQVO+Jz||6zu` +П?vnJYW''=~RFtmP:ƈi6W:)D^#PxAYkRr'$?V0 endstream endobj 1309 0 obj @@ -5632,19 +5573,17 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1314 0 obj -<< /Filter /FlateDecode /Length 2827 >> +<< /Filter /FlateDecode /Length 3325 >> stream -x]Mo8?0Z}t:8b?,eNL9dɡR.D[?Џ?=Yh7y$iJ[ǿ~~<iq^sVkGRJ1?qtL,c]ha? g@H<ok
x4HLq@ZʓsKʏG'}(g1GL`3Y
Z7ȲQiY$r<x8禜1so|
-xR3RۨY}z;vTK/G>Fer&ɠVPŧQ9^uG
~z n)]-8]eZ -A ri8;D9B|kvO[M3)_/٠<KCMJg>tfSY_(syxҶJ%v|e6&kQ̐FclrD`Y0FT[6Avd.vsz
.kef*i_6aA20fvݱLˡCbayn -.-D{xz14s[(`q-z3k<ck̺|8B/BFe[9v#B\&-È杌8Ni8I\XTpRO tuixRI-.Rŷ-^\"29u` Z<(4J0T-u]NlDy8؈/oDunq,np&zY* -J;b2TTJxaqG|DZGG-x
D7G} 0ec>o(>jf -wPw D$>@-˕鎶K) Cj!HLmW4z[w8eLHf($v"4"Zt)*r#ɹ/PlĦ@2-Sc3B5G tJ - Ojb`Hy{HunMi|eDk9s68K*Rt`gMw.sجc[..lUd+B5y8F9TQʦe -!oc1A}5Dx"*+r"`f(Nl:y^Bi`*D=;/@`5A.@w*j#|OyFԵ]eĞDgqzvluZͶhn=I[Y}lM=qg'Þ -W>fz2nY1jJS]N9=P+ɫ0]q>U6+,$j2゚9iP7ƍ38gމ1{[#5Ю%Ė6srb
N3`mrZУ f=ؗkAH>WNVtQv$mby@lh>3\ -1(3G!\37a7k5&dSϏD -[PD|aQ[f6p -1(l3Ga[37cK="ZQ/
ؗӌ +x]M
ϯ?%f1[krK!-˔EdUeˏ"Hn7ۯomRSѿ7_71<)m]kSks:8c~7lRJm~m⼇˞6ב-Ov_@M8|tײ.+sQ + q*vwxt PB63 +hlz Cij*$V?"4'yktSϪSδД&Ra:W75)_42U*N,UK)AZY_+Ѿ3;$ݥI0;{'Mʃgzv(-oDZ ?6 +Ϳ'i\Hk;_.]"?/ <` +!.OZ"4x_P2kZ9?AρRt*tm3~֭ +"WyYM|A6KuyY[_4X7D +P딤R0L\)I=WR5XSͲ{%^$YI0YS5kCcEx*kA^^Z^a'>Ze+ BOl{B?qoq\]=WQ`hq|PhtK +kglgAkf1D57I *O/!Pq*t#ړU +v;jaӳDhi`K#ՔT~xTBYGldײAiK#EDdswvlCM>a^Glh01Ä$خi8`4p&ֶtAVJ5֔{Q3 "%)M:G
4<Q`Llb endstream endobj 1313 0 obj @@ -5657,18 +5596,17 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1318 0 obj -<< /Filter /FlateDecode /Length 3564 >> +<< /Filter /FlateDecode /Length 2792 >> stream -xڽ]ˎ8W7%`L{\mם\KYE̤C\6%#QM_?j6~3fnI%[ZVm߷]kCkupZ%n?˟Vk?¦~>7t~M`o'gjBhЫ-
G\_?ܨսG!{cra/o֖5ױՕRf&~{6'} ->e=B*ʬz6&BxuݢsYqcC]߷w?]Xɥ/ԵtDsJ+گx ;[;^]21x_TmɅ5&Ž1O)/Ff>-myUgQHDZ4g#nK
%5_A-(4+Z8C{Qc24[(|<ZtQhhBLҡq34C#|>rж'@kJGr*4и&|r*+>U-pQ-!嫫 !~j#\B%Z! -nÚ<qȌqrK`-^e&?sC*E+ ǂbyy;(섣< xvƋ<S@<^"Q@Cpff\f, ǮQ5/N8?d7t?$/x~ oP\"F8'-mdvQs섣\r1f8E./rN9Ka]DU0<t -'ʣ#i;ڋ{tC>_\ҋan ;ܚ}Ԯ!GJZS)hkmq9[:DtaQ%"ۖ6ے^5Ծ\Wt*&rqtP[mK^YNxV*6f9Da% -9сԈ$-HA$(2+6
3>DbD+NbE:ыH0fdIp#me#ghH0$-J#$S2W<@S2]"%$DofȗT1N;^{[:FϬ#i]A$MvQYalw?Z;q2C.d:.7 2&';]ɚM$oUM,7VY{(G$|=}%]ƜΡ2t? }*DDM!
O{cmޤm+obۤIs&#gLj9I4g"Bx9Ͱ^q<m蝘3x)⊛ag8N|ɶ< 'z%Ó>3{N7umΨݤq`fl:lxfp&Fo%6:9D$#!pIf*t%}cZ#4#Es5 [kFN*,PK6HL;/Nu;k4RWoh -!IP^h1BWPzg -
ʛ Gt))w:P -6{T݉o/iߖ`x[>X6%=O8:BH BABđW64ж9
DXyEL e1XBIkb
") -Y"=X+qñO'F\ -+5'Wh` v'[CDXԡGю8 +x]M8%o-bUb2CՉ#=>$M?ނ-j6ۯ|3[*xKyQ+wwO͋i3o會3![Jzr;4G(+g}O +; +s|y#NlrPy$ + V挟5O<}_[;z4CmkV}l?qb N8P@
)X(vWx iAi㺘b,VA+"v*s
(Et]HP'"uAT7&Յ,9@m[Psf!A'kB-pe0ɢsIEX-[gt((1!$kdA a>1^IjIH#N흀)Ikv`daϜ'6ViܳLZ{Ԋ^G:NqM%
Y$Dp~L+poYF&aGO|H5102*:OadA֠daa"&Y"LEtE&&"0zL "l&D +˪$#*:&&R&Hܝǹ3%-uk͂l=I`Q:a[cBΦ91Zu!|,_L)-*}AI0YC1ZE`,bjY},ZNcՔ"@Tg3TRIPuS*]U=}8M*E +o2&Ï;"u1^VݑIzkccZ"x%s7^mcW z¶humIr2ߠ$oPIrO0_,bgK"$`q/1I.JID$I9?P^} p|D,$ Xy$UJr@U!ח&?dxAQnUD
(ou`GDo1s6Qc&Ǻ
6s"{ +9?P+Qb5G"JZ~Q~<V*i%*iY]I_o-{:Q_+_>d)~B/wU{Pʾ~y]hOY2_uR:@L{U>L0;/nEXZaru\F:t|[GR
ұgbv*$珓=16^Ih뤪qhb>%kFmR~ikU0iL |`j'Bʰ)b#$t(#6 +A÷A|ee`BidA``?Sv +Ⲋgq+a; ,;
{)_,bc\ gCpo3 endstream endobj 1317 0 obj @@ -5677,32 +5615,24 @@ endobj 1319 0 obj << /D [ 1317 0 R /XYZ 69.866 801.979 null ] >> endobj -534 0 obj -<< /D [ 1317 0 R /XYZ 70.866 771.024 null ] >> -endobj 1316 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1322 0 obj -<< /Filter /FlateDecode /Length 2841 >> -stream -x]Ɏ8W}
TfU60Fs>e0A![AIJ!EHIM?>%?!oBLBjx翷..)z)}oRZB|g~oH~_^_u2 [#8|n3-oLW4}9ןU`*[\fpc
-2pcO7w*)њ[f-;+{vX`8}+|,~[+-dMg|*_Đ῞¨m_#Z8l>^5҉W6 -Ҩ0$vI^?|=KFy6a[0H!,OV"iG۶J0FKt 3Lg_5m{9vlCV\ЪIUۭJ|U#9KWZB|ZȐe4S-KܳR9j"uQz.: -gFx#gkHi
p}ڄ$5mS
GM[ ZirDֺ -䧲/X
!<dM2^1m|[%}!MT5;v<˚ -@f
iCl%nԺB4rWt Xb6)k绔uͶ l3Ͷi@uJېtΉ=yԹU
CW}3U0xU8ħD(r"t,V=3=Vκ(XX2B8qV{Pc%`#o&6G]"x-$M;v|N~}f"~R!b~BuNLAFh"7E$|X>"(bթ%1裈-D)NNP|x=(#9!#!>n;^N *DzOB<ܑ2ϕrd ,@5Ote JVfmRerL -Y۱al^ڨ{r"}d"z의O! ¾ -Bu&gi(dq -Mcy\}{{=x#57cAU*E!9)$z袐, -)0.L@3dM >\ $,"xMؘN<5a04kgn0Ii66AA.ەLzHwxZoa=O-W)b'(b6I5QoL&|jM
ImPSԚĠZ7uNQk<IC1$!+'>[gAa(VY0=|uG8\8\8\/.e: -fm|D56LuQo-hhaRd]Ő%Sl@ƃAqBi!i{P4}8-ɉ=Z?Ǥ!Zc1FZcԧ}QcYp~!-Ⱥ#gB"-8um|n`n{I k;)*C躃A[P}01Ā"+;ۥoHNQdI!=@ -[ΐB>RBt)9J21#)1¾ٻPh]aQوlWq܈0qBGoG}
wr7N\Q߸cՄ+X]no0U -Jіv/N/߹uNj+>ǝFǕƾB -v S\^?ں۩% -jͥp \ICv
F*(ە>ɩ:2EpNrB>W*.Cd<.jZoe0(sӱEQc?TתPI'P,"a\y^ɞNͳ]( -VbY)8<]+<]F, -E0%?y -G'>֞6C\xMyLF1Hgnz[),V +<< /Filter /FlateDecode /Length 3093 >> +stream +xŝn:~
;I<`3/$dMҪr[>*R,/o?tD˟SK"z 1 ^&)R]tFJn-.Bx|L6~CyOui? +D>\>>1!ov9{R>.OoK7q7DPI"wߵHZ }.l30__EmϘ5x\坐hB +j9,X(}l<& +i?m41§T,_mNK
:7L>;;d111GEXܠs.u*L)JƕU#ZA5ڦ9I!oIői5TPK/+Zi!chLݵUt!D/2c9r1oLyкA۔Яxd +(h+:8Li5se
ZOC(AE{lbs'MIĆEMAŵqԍD
6!"l@;\o.>&>zK J
7U\;t08x:-+lOc/B`~ă{sj7ɲL +eh۟Krv<4JWƝXa^.س(q̿
4MbjTh9j^5wB>/~f{%ρV윙8ojuPQ
[[|fFPL: +{ɤ핅ޞ'+Z$Z*C^p
yOŵV@Aq-2&BKkSr J3}t +Jа6J ++8 Ĩ։CuWf[{ť[P[XV&xnَTŶ`˺ |qQքa`(DeID`+Lkb@h*m>|Kŧiu?95@NSc٠>y}}gɳYYOe7 «*λV,l+EjsIsmMu-ܧVS6A@,} %J1%qu<XJo4,K$L()퀲;)IFX㱱h,8l֮{." +5S_v +4.]šC,IJfO/^-HdFǠ]DO'!]J'~uXu[7"~Q{pF^OX9BfV0G8 3CKF(Be"KtJYw Y+4Q7*6tuiM4?_ԭaq0sjUf1R{Xj51U2
x>K9}1N-eA@h)ֺc3XF8~?bW$ؤZgTIw"bM,3X&VLTF1-3FpL?4<P4ӣou-xOɓ#_-gEn{aAQ
}Rױ'tuݚ!M{Gr5inmqR}0+"JR
'$}tQ|(FAC6Ɛ~ puۘ3,i/;Pqu1]*|Ulq,>\S-t}'%kaA.jD'\.F]MWtrjju]F(<FxTFxf4f,4.{di\<z7_H{*;Rf6c(Ɍf}sJ +sj:&rC|mt'ߟvǟoC endstream endobj 1321 0 obj @@ -5711,36 +5641,25 @@ endobj 1323 0 obj << /D [ 1321 0 R /XYZ 69.866 801.979 null ] >> endobj +534 0 obj +<< /D [ 1321 0 R /XYZ 70.866 634.62 null ] >> +endobj 1320 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1326 0 obj -<< /Filter /FlateDecode /Length 3300 >> -stream -x]ˎ8+48mם\⣊d)ծ#Cd)J痷__0%`/Exqyk_K?/~\~\\qnR ->a$>aιs}xr~ -jx`FqX85۷yze"rx_g< -TD.
* -1)!4WB+ξiZ{dʛP -xMVM0* !Q#jX¨W1*"R=w ާܘ`l٦QũG#;w#AʥȀ&P>ѫgg\<JԟudcLqx:f PlۚtRAc*rն?Vo0.T -1AՊVߕ]"a -OpKv [bQ㘗FÏ0
zZV4a1 [e4{xqduڂQI@9~%3K%ϝrI=Do㼛nw7ch-TsR]N5hfN8532QPJ%]"tXLrID -$i} -U9DS*Pd -:DL"JQ<sgFQT_TPg8y -7ƒc zʍwpcc"UOn(D諦u=RV3n,Y& -Xi=qZqgZ&c5Ue@jZ& -Dh20M3MYBXUg"`pVSi9sZwkKItVSUqx& -DA3#gqƕNn懧c -N7~ӭ;x/C{;$>s
^| --ɏP(kAQL~1ohZHˡλ7[ &ZEUx+ZEeTeV6U.LO UEGuA\ij.?_aU;Y .aEsϏ~RʧXK;,X3:qEꠊn236f7~h:s]kr]xNkzcv=sX5sQ[L%X wCk>$pTBݑGqϡ+
ްGi7;#~uIF^xo/H-:.w+9L -q}ll1)k$ -BsZZZ9˶PmeA+$eyk+%L# 옄)0A S"01 boc%<<$L#'$cbtۢ0Si|H -Q\v05٤fCp}H>$LlR 36J -Q!Z!a@s,LJ Sxf@00A S"'aVJ}oE x -qZy++SƿHKЎǝZhSABT<&'*S\yo2Eji7y2E ې,u -䭬LT)H70^6mOn:
VVA2+T~PZNT#hIHю>M
ŋtd bt< -<+rB*X}{>Hv@Moe܇f9>sb9ץ<rqum緇<?}? +<< /Filter /FlateDecode /Length 3125 >> +stream +x͝n8~0`A{9e%XEvXX>NXhE۟_߾=ۢh}7sKZo)/J[oUkupZ?_s`%kyuǷ_ڌ#XZ_a -Рkҕ#(1<ZW,z_ +*SM=`0iv +jf=}w^Ϧþ6wu9%qwfj;#)|<e}IJg*;4MIʮ{I
oWv
+ڂ-e븲X%ܘNژQUvc.N֨ƀPIcMPvq-30Q3Lمl:DtrBC~JA; +bC#:%Rx҄b +Sx,Gi(7f?Tx
+aA u>۔5QyyU%Rk*oktn%GX;8eDަm]^$*JL(c$Q~Bw$>/^jι'Z%hsÅuxa1A[|N,<6x9d\?.&J1ӱ?_BJvY[ )m3q*|$=;u}F8[</j磻H#/)R"L3[n ' `3趕 afYr:ԉ5m;<Lݮ&ngR8ʾ=2m5(GNN.eq-;} '(G^NG#ԇ#$I4Hɼ3"ocn(yY|NZfsz:#*%E +"gFR{e:̬^[.{R4yC\c\a 53WS;~:R2^(a+lmUZc/JZuWrjT)84Y,-bIۮίLGIN.t`s0w[+J땫6v+BxCVi{DmOx
Jr K D!:U;JY:ͪ&^"`/8Dq?LL[)H0s^2R,WZ2;ܗ7!g&nJ4AOOK +O{E;W.^.^I/^y܄IT^ ޘ)ߊS.i9K =@('H$p8.Ec:ǰ6|l=ѿʀukh+'֘~lR.HX/Z\bZ(MG7bxORHVN+H!bW<!BTNAf\_3[88w:^pf敂K8 !d};ȦYvXdՐ \9sdɬ'y۬荾_MQk~|d쾭~Du?8Y5 g،Wi{TW>F >#:߆Oy]:{$kk*k{/5hӰgpέ$cmlƈPKa0㻼x)'{K%xGŷONEɧ>ePQ1ɩr
V
[cni)aˠWf։xbjαFzبf<^+v2<e{$ݱ'h'kǡڵӕn؟uxj7ZseiV;FM`uO#]X. r|۰!mس턧oOHÞW+V?9iXa<Dz%*`f}ʿ +{yejܡrBphQY0b8<O}t$$-y@V(jGuE5ya =sS"$XssƉuFly!nB܀gx
j
q`]zbU/U)r*ʻ}:1ɛ[mKkל-ۧ=+GL)1V[Y韗qx]{y||AӉϔDZ W,0kD1*Pzw RRS^OBjFy<|I8~73.`R鄠]#H +kM*Y{T^JY%cc{؏1>:ǔ*!cb1<pDb$h㲘8/=@yzݖ1ýf[k9crTD@(+MLf`&0B5{`ӼGuE5Iy Vkm9pDbq`|Q4I1^6 !*blB|CB$<υ{X_<2qXu *qxAYk@\W
!3em=(鈬κ9NJzIZDY;\0Z!N{== i;LW-?OvxZr־?!9+fWŬꢖ%IY d
toC2VP{XE
;i¤oBE8zG~ endstream endobj 1325 0 obj @@ -5749,33 +5668,25 @@ endobj 1327 0 obj << /D [ 1325 0 R /XYZ 69.866 801.979 null ] >> endobj -538 0 obj -<< /D [ 1325 0 R /XYZ 70.866 226.69 null ] >> -endobj 1324 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1330 0 obj -<< /Filter /FlateDecode /Length 3521 >> -stream -x]ˮ(W4,ZUYj77iJe;E)ޛ C<N -Z+eZm4w -\U28 -H.o '( ;P@u x!: 6 CK}I -(BdDjKP͜<湄JKD1OvOeNum -Y8Fp6pu!YRF++cejK7Pg":\BF=\Vl- [~Ř9Xcֳhl2$?&T.Ef_0~GN
єŲD?h" -nA"
[%\Mixeni|n{s,~1K|:РKH5"HɔypSY -W-IW1؝6eV m9哉.s2d -!S̱uX*T2x\ľL$0|ƶbڧҶ?AQ̩!͎q锡-YĒXDtQ)(2+{FGqLqh#̗HGjDzB#e=2GY#vzcvmELV9qEt##,cH밤zdz#=zd*=`eE!= -qщZz##qL?Ʊ] -`
#W6j9 b$4ɦX($cr7=M@]ʁ9UʣEMuY]LW;KI'TC%JbQIEQ"xC9%V }$`s1DĈHD$K{%8~&J+ޡIF,Ԩq$
"E!n,v(2@t" mELVd9qEtY$aa cZ\$/T=="I$rpd.`eE!Á -ѫIǻȾ7J=ҎhsK$r"IR䓋5 -+9s\eCntr:6wdgrC0,3[0aMxH1PdaŋϾ/3 8>Sx@_1)kI(@YMyeFnqxsƭ0_Z!P#WjDx{BFP~p~+ycpgq꧈+I;̽㕹=q8? <mcb*I/Cr69DYp -Y1WpCU.\_=mY>עPF̒xrVF:>I r|1_֣8!n\gNrLzUf" {7Rr3~rOUm#1:in0&$u -W -dݎ8fa._C;\ec@WOܝސxO% Hv1)8_01%MMhIS MQ)ckgejFQx<q9LjPһsB'zJzd'j*ɩօ:#Z2{0]\Dg]ա);=a"B[!2F(g> ,*
[KObzjADYT@Է=p`s\%)im6FC$bײ40CLw[WF:(aNm'V-,G8|N:
"ש^+\Koen{VV=Jp4:sıHNis6ᕃm!N%uzenSaF;, T*dTޜ*kIz۩=ET;|*B۷֤CEɺ]wUQFv;84MG(q˦
"C# ;+Q(F*d5n~ZƤdPk284!ƺ
ʗ~۾lxu%g=oy=W[.lNq.[G6]Ξ#TWVk9_珍̙3E9r/$d1q{uKw.0s(aP,lIDyQ>oxBmx@÷1y߆9.÷ѻ|.$6|E"PR1]<_\*B]NaG[lU`^9'_ŝo(yvj8Hx%q^;<)K}3% -ueQ -'KMUPTq9u%"z@C&' - +<< /Filter /FlateDecode /Length 3019 >> +stream +x]r8߯GUWW%&]5˩7E@H$%¹ĉ-Ç-no?݊[\S~MXs7"߿^oBW!_+6w-]Gw@-oW*?? @=jE\L4pЊ3Z\=.2x3>r +Bㄻ8TVl5¤"c^EXȫC(I#Ͻ,O#0Ev[~OѝRD|yFڏ(+
/5lQN@Zì~(md^MTƬTUFCMD' hLgul1}~]K
=zsC;,=Z-:{|Ї)`_EU#j!%yo۰X=;.,1ƸfQ#ƵibD|Z(ə6V-.k_|N|اŷzq
FƜv0FӕE;\rmDVٵKH2cWDH(1f' +0m+p]6l[4'F5:l4k` +
GlkewT%QpwIu96U 2OÃr&16=IDLciRb1MBΒ{BL{RL +!aF
6XBܾ/]ja?>$d,*u_r 97xzMmD,7߳+L
?Oi"]s+Y~ҵ'aHD#v&=?D4йJ.6T{3nm}η`HWRQ9/zT ZYXР +} V$=>lA;oD\t&b!6"s FEצ\O.B+xv+ e"ϷҔTM&S8}5ߋZHnyqG<h!BeqWqE*.j +:6A;m,6DDerlhoɂ+ +im"ԝ!K8ݢ@7W,S- .2l.-hs`\胝Y@u +mow=df{Nz`x0zfSw̞GֲH>)s,&o#C*i~#g?T6niyIv<'Ӝ1@c1h[D/.:) +=w<6*Zq9J[Y\-.O(jHD! +}Ú%E}: Lq̛)}"ϠI(. +;y,,kp$FaOΨ=瘣^h,*~=j|C7|5e<# +jw#tCB`f0R\|%z|-WƞUASJ1˘IU6@;?Edu}C\)!eh9tE^Xtr#?]Diɏ-#X6J(_Q۲$ CDŽ 1( czE3|t["N0xvu&{Xs-C8HRDݷe \Y endstream endobj 1329 0 obj @@ -5788,17 +5699,26 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1334 0 obj -<< /Filter /FlateDecode /Length 2832 >> -stream -x]r
W/ߏ*T325T*"D-PnjBn -VMͦ":|fBP -5"u2h[X!3i^قb|-Qoh~MIqTDvϿ/>&?V??+EW%gV]q~WPÉր-KHR$KCklն5 Fjd
Lh<'iO'/yC|=1u!Um&mz6/d98!x( hG4>b'xqPLqxAXgOxuA$X¨)F>Im$'b6l<Ƭ\T?cN$όBFZQaX~[ -/ J=":h/I7r2|bH([)-Db5'ݏ"d6e|R=1\Ҏe| 9߹w-mҷ,lzQ)Yz,d&X(}"fmk`Dl$[WĶuZh/mcdoMɤ6hJ -}RGBZ!'͔:(u6KƭMi`|JR":aW0de>ұnR2|!mHg>Bt^:/9iXp/JE1(uw9`UPE"*RQ:cRg~|iF(ucآԹ"Q\(u" E!J*dJ}|Rǁ;yծm9c'ujGݪR:<R"XYJHOSGpXs8Z[# w"Y&u -$=l4Wx*tSxxAc%~2yʽkF-e<JyG+B1S58ۘ `wlk6H0p] -K.,Eh)NЬMO1P -(>>>`T!cǧf -N`k&LG*Jdv&%j:wlk]M7b8`RV}1E꒹a,2B2ֺ-.qCaYXPԡ@R"*GkXܙ5gxf9j>D d8P
1|ZKuR_F<1xփQ91K +<< /Filter /FlateDecode /Length 3342 >> +stream +xŝ˲(~#ErWD:z۽ͼb@"Ȁi/\>$?d~/|ۧᗕVZ}qq-^ܲ2.;^\~\\\97s緯J) #9f9?3|>c7}\ _´@
_I
e<W<A!օGV +斥<,3dd8Y}9\;*SWAnk%lUciKH㌯<W2Vҟ!;{n[*,{u~F)SµT1J1ΗĀT)b@/̮d@>Q #1 .-Iz;}AL'|p*9ζTRҶc]xl
BuRџ5լx5*ꖊ?(:w[DZ<N` TL
$MXi OAƟ&o xMAlSMxNEh*BUMXД865%S,{865 +"V,
XYDg(ztE.G!;)DZuo:"P)[Hn0JFA[+8]Ɍv[9V2+ETewr/&yRBWR~I[`Iw4[,3UDX|-:=\'gE6)Ra^3יY@8 +\OᓣSl! +>}]>mhrF-^</tާ4t*X *Xg_HǺn#_?/~ +xW*WI +U/i|t+/~~Lh_`:אH+?*6h( +~jگ)"P;ٯWCmR56/ +~
a/o_9xoi `ЙSP59f0=u5ޒ1«j#i¸sSΎڱ ͎4ӳa}KS3KT4=kb&ˏEhɢ*ֱd`(ZmKjJdN6jäCCmK96Q[D}UClRmu:5,<$SƖ+2Cn̾Co_ા)g
}ڶpPn.rc'x[+v_T^G+|ʨ(/GO9T@ ٺU+DANDFކr-OyD'kqbEyQ־}8ьCbeTh?rˍA
nkwX>EIQ0ábw^'BBT8kæo +!غg(aRoyr0c3+FAmQ%=&Q0C2B|E(key}(e#m(GAQ10_#A
u/gP:D`HͿ
%-fzi +*p +JTTtJRT0KZTuJZT0%O3-r*EL5mL%tz:TS*@M ְ=TS*TujPNXeL`-dUe +2CR<9R Rΐu03(ΌEEA{=5JPr +BW.l]G.Z*{Ȭ*ġ֫(U<C+ᵯl7"lZ;QHfi"Wȷ dXh$ +D#qPm&$:aeV=n6+۶j4w) Q->Ecۨ+&m%9zOmzK-Y
XlM"˛SUa/mELIAoVL}dՀR7ڄDY'uldEfEL.VcD.X9jWoH5ЙSh0sЀ:̧PA=J"JUy,-}T+/~cLhAXSkJL "P1y)Ǫ˟X7ciNjQՂXIXa]Q""XByz +1% XydBX
XS%.`X
"P1y!OzpfȖ'V͍)Ԇ^cz +3cDVcUȾi +hQx/(E endstream endobj 1333 0 obj @@ -5807,26 +5727,33 @@ endobj 1335 0 obj << /D [ 1333 0 R /XYZ 69.866 801.979 null ] >> endobj -542 0 obj -<< /D [ 1333 0 R /XYZ 70.866 264.903 null ] >> +538 0 obj +<< /D [ 1333 0 R /XYZ 70.866 574.007 null ] >> endobj 1332 0 obj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1338 0 obj -<< /Filter /FlateDecode /Length 2741 >> -stream -xڽώ'~yCK%{c[kr%LKh35TaM~|oN6yT["zqR{滔HcY~hIpZJ^!Ou5>C;u,-?W}= U'MVid-wKq{4\DWjH -v<Es[8:ٔ1N.qf[z|K4vKcJGa[HY -ɘ]ew21,TCE)ktϷ<B/=K,(ELE'6fKBy\9fk5d}}i._3P;Fbv[dǴhzI=j/S8i^I{=~^7۾@XTn2jt3]ᱢ-5kmN`&^-yf^hc't`4NDE%_h -}6 -mXme$ VF37/U]Ҩo wO/u/[6{zWZϐǐA*T+4[k?59uH;>X; \˝ mc|@d:`ɖRrnESA*ER4<(V*LHkdhx#=+dB
]STc^E+|SS"tVctɥ:iH}e7x
C#+ -V4K<R@unXE˜NV#xVP&Tx&\M<)']^k+~gRRZ:re*VgZRTs;V`+X]WZ+5zQ0\Rۂrjbq~gT,Ǩbq@PYcQղZhib[8\QQ7OV\*yur)59F繎o8^&c/s-{0^Fz{AmO{aq `h^XA<J< 7ŗ- <V[;ɗ<NMq龲㌕vE+
v̰2°[J^s-<lBnK^nX'Fγ[Ƿۤsnu`E`9Fz QnVDxL&.
hE0"=E TKOu|f=Po3GV~m#W
+q[ -Qe D;ɡܕ3J -˕+@ݹr#e w(Td!()*)=m|<k'u -Bc9y*N -^V^`,ݐ@(^A~ԽYV=| -*Jۦ|ͿYk{$cl[tO~+mek>o&XzO-4}kE%1|?+<F,gg'l -xy|Oqy!mJ+p%]5O8+sk(-
i)ZjTʸ*'TTG[$BX)E4hëBӓ^Me%Vuٖcq&OjMg#u6%ǵ,i}n]͢4MъYmezjQm]JKORJLOXʧ':ӜW%=-eGz2L#i73bf!%6%
g*>oj)CT4E+ҀIzJuo+@;J)n$9%swª=sK H %0lMz[hgl&(#6G}2oIwpiHJl+]a{Qo+];*)8frEj=-bE+ ,RH7d9J]>ӎۙij28y)' +<< /Filter /FlateDecode /Length 3196 >> +stream +x]n8W/0oؤĔ-&K̪>]|D)Y۟^~~o
B-jB4+m7Mk o會OLVk/y˟τ
7mOO{O +V&a!
ѕT?'=>Rʲ1oQ_aFV|LVGI:5LVG1
cu V׀{uocu
[㵟 Xqcu,+bukɳ:27&6GXYڢIغ><$ +5xBR7"`MtYЁ:-:"ok\R{_,z?6@ +UdxM,ȊXNS"+_Ȟ1Ud%,Egrfr-G^W$cm kg&&.g֙e:%Kg/9-eWІbF=G{)2)3PF'nsv w9{nrD40WY9ZZ%tjey`dfmqOBՇЏ
4g` +$my^&&/pFW9)G
cXN +Z/P4 + /?zd(Z>~huZL-`2>Mi?9>rs˺wv}m0 +6dlFGjBu!*ݑ0{żtӻXdk"5X_fhB*^sB:.'".'~߸Y1>qw6H66ǶQ?$dUHao:#Ƀߺ(I}t*lL +g&1n]PY%.=SgOy,vXؾ5܇^ihy}ȵ!/AOƉ~x`zyZ`_Wlt#~@uI5` +gmy/OʓIkɤƽfT(p +YVa"Pt&E6bb<l_6q@;|LFA| +FꌇR] If`4bncxz3^UJ
gǹ`^h8y
^@#o,6/ALܓyB mu*Cw+؟'xW +k-DڊO=,Ob7r8FGY["ʖvx
>O>ܠ>?E5Idq&-W!_H>A H[[s6^0bj`fOAx)@^Mш~x&3 NrH.H6P]"d
$=%yh/oۿq+g Zh=^(!͗@b+7?<w66K66&dv2myTlor+GڥѾQaRf^NxO}`A0P}17l_حc 0>`0^h$K +4 +PCCx?<Os@#aCP]ht
x~VZc@__hcZ'D]Z'"D(7 +F|($bZl@X[hmhmh}ME!B&rM'->M^# +e+̿4?ʢ +0Q/q2ރP_7V7fb{~tK,n,"ojKOy)>>y!_a#ē6*Xj??3%RbE!LfYty#,]"DtK1ZMaugbv.7ٹ<C0tٗ<Z.m].
-$ endstream endobj 1337 0 obj @@ -5839,25 +5766,19 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1342 0 obj -<< /Filter /FlateDecode /Length 3424 >> -stream -x]ˎ#W7~,17WIUfĤYCg-2IF,uQ?\ۗWeZ ?4@]%ieR~?Wʼ)e?WU*
7k-7J9
?[w{;!C;L-o~ìϿPk@Z&W"M8T\nV8\oKϨ -zmT9a. -vAmeqdDͳjv6hH};gWy3ى8-vE;:r.Ȱ=;PwMx /?tvqaIY'mn{^Yf%4t!ԴKDwm -#+y ~'@o40J=<)e{nzw4yH[V"#µaV)/}xL*%ë -3VIg#] $y%0.7/YD*- LZ1%iAw(tX*m#[
h{C -4F -3hIiWٰGj]=9Cy?S;?s@;Pq(ʬ#҉Awt7
?>Ц/AOmtA;^4;%2A4g #Yga/pHRy9磁X
~(kQv/_Zpp7V0\s<.^EhUľy0
H_@ (;`աbS-DJNp`z=řf]>D$sU1'$sA9Ǒ*7TvTg!m2p@=t^$Kڗ*p!RԎjp&T8cx|np}#>. > --qN y~ҳt̺c11kC:PyxұuXɉtL9Kݷ%bL{1D8xX0 z8(;xAI>qnK7>o%{pF}ӝLF_5-q"RT0cTy9\ -:=roi{@e=n~ۓ|ٷc{ٞ,L@t9:/o;ƛf{X1d{JdmO66`lO"=tf{f{5B}oG7]ߛf{NTߛ骦HM)*
R*o3>x@SGa{|~4v4ڸ^o0Go( -Dd*?F!=wVؘܥXd,d"u)]g+._,]uydfmslUOTOWvFH@ԃD nKaѽq={-hf7% -4DR(;զbD>#Ӡrb}6Czž#7E%>~6Dr#x|T度~+3fP -7fP D$Cf"]y ቶ!j2@8w,@SRD?*дż -(Rt$#=Wt-I^^CDԾy9!<mTt6q\a f^0j>6r<Q ;xHYE -M{r`Nȁm0&hr`-ƼR*ݜט -_(_tᡅ%C's`#Y9D%sM6uH9ț$єԇ& Dxݗi3<piLqx -.ILrIT+}LV` - +<< /Filter /FlateDecode /Length 2881 >> +stream +x]ˎ:+4fy`sW_LQb6)ʙE:uz(y/|8yI"y(xC^%H.|R\TR:#\߾cNKi.~Bx+g|7uđOgz~*dEq$eH˷ey*tKտTGTy%* +BcadhUpRjѵ,LJl"&rjlglR"XdwYf.c=ۿcTZZ NVAՌ9M{ IA +d}XZgcُ.{6cY|<絉m
$!VzlwK8Fv\$V:XrkQkHN`z8;JfYQ +;dl0 sq9S;H|-ә] 3%pJy?T]9u=*XPPClt}sawV;j(sb|xLt#+4XS2ZX)9-X6}09ócUzgKXP{"QJү"H(C?kAYD%Ro0@\jQ lFΓ` +\Eh(uTx6;縀;`ў3fd +O +]
qi"S#{SYĢWfUuV=ywգ<hR6Qߠd"uAlձzHBt~SkUODW8怆.9" +,5X~^fUDc &CĈg3[x fzTchRYa:PP
L:k析
Z@Ox 0qY8z14S^/&JaCt؍K6bMA}
dcd \q r[Xf{ +KP8NKqZ~-s*gɲ Ub#T"=VlAa>la}F;KCF"*J|F6ear5YGk6}dnB"U(7)Zl:G-R +ƈ2Ga/a<Gl')Mb1@nQet'nQrLJ5M1ہjv DeADXr "@UۈT
ϷQoXVЎm
ȏƞ}1CK;h{q!\hDXoF8:@m۸~P HP+,Q Ztvp^&iθ?=-ڍg3b)8!&Hֺs"X3b)o:_%Jev`רyE죤8 +
Q}VedHº31DŝG(?rCpF=0BrCksz/.6tR"9f endstream endobj 1341 0 obj @@ -5866,25 +5787,24 @@ endobj 1343 0 obj << /D [ 1341 0 R /XYZ 69.866 801.979 null ] >> endobj +542 0 obj +<< /D [ 1341 0 R /XYZ 70.866 534.994 null ] >> +endobj 1340 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1346 0 obj -<< /Filter /FlateDecode /Length 2631 >> -stream -xڽ]ˎ9+ -?WJ-wĿr~@i5<0]#8T۫yoB3lk9ڿ7.kxߕ@ -nr$5 8mƈx^8b:vw߃wVN#k46xd"p;["_<+V(`a;ny $ ;кźU-kx-bx߯oԋ=zK8hG9q<-A,)Wxbs-Lh{YY45qh1ALR+PЌDcK<7D8R!ަ}??KV|zo-=#iNvYHM&˱;Z(+mNʞaY%V4v#$b0!5qT0%@9S@Q.4 -'a((WJ2
!P* -.PVw[|u(n*^KBޭJq,xR{XY5nqŽ<rpzX5nϤW4#W (q'7b?X)ˍ7G:Sde%s\|{=\%SR-)T|u6</<56y+-}-fvX2]b -lu -Ux+T(gGэ9c:E街D8ۼ!-NzIЩߎ* 9;:8*l'Ppvhs33Er=W)6Eh;D֙)v$jLv}aV?vzOrE#"˨ceBBӪR8*a]v_"A
,tIz -ϥ"L^@AiIC^` d;H!sn9m =8O}һ'=Qg<3CQp[=0@C(K^Ғ}W4%+XrC)@(pV҉n<9<FiNV:9sr;c,Rv»TEqqy#jDw)l[O%q%)a>fes;CkeN.Y -B+S2=DL9+?Ck^dLG,M2F1o!i7&
zff6,!m&A9/gμ-zo%M .V+0vd th.s8RdidNMEҦd<$f"t@Áӭ#$5uDuD#؉t11 -b0±!
3n57? -wˁkˁ@sp9Ata9P6x٤`SK홅 O'OcG*I\PNB %$d.m.@)D8 OI61ӹ6vL[BVGѷl{t"&EHCbRyŻr7-CcHXMCEcN)K>.YBgW3v<}]ٜ%`r)ZC#()_NR>4KXHXfuz.Y( -X00/17rchS;3<O',mS,9mySCs9IIGp:ӗ7OpPHVjrTZ;e=W6Jce" -Ck ,9ƒZ^zKjS7|N&_P }(TQMhqʇ_&д M&LGsNHZ0y0QUޖwpxy+}Q1*}QbJ;!S<]_I7( +<< /Filter /FlateDecode /Length 3057 >> +stream +x͝ˮ~ +0
s,e]mMňd[,vF^utuT[s?||oN6y(["zqROW)RCJg~pZJp_B3>o#OO +ŘGo2|T}=t~m&5&[yfG}"۔1,<Ik
^,ۯ/镵Bn_`Ncݍ=rV87&7rXY1Y-dk{tjST藼ZzgVZ&-UFjȂ,fSV?)@){s:Xb`Y?с~h
\S{ y.lg
m7eHMҰɀ'kc;;DJAf<DMi%6xtʹI"&2_ݪӕy@1`cN3'U5%T>*_'l- +9"D(0MxuIƼQb4%^I0y.b~5f1lg09vD#gC"W7sADmxGs_8ZjWV\88,c8[ǁ[ő|Άt|>;4":տfЌMQSNg!4ryge~8X}>έ\Yr?IЁMXMa^zxFeboU5JϭRe^B<'461OKoӝsЀ$U[-YbVXcxG9(_OU,DؔvږAق%`ar>۳C>SX됆3x{?ϛ頻x$Ŗv_#tr'kvfYljdסbDIJ)k=V:IVl76![Xg#ybjE-`1sd(Ës%lTYYk;-|(^i&XY0UsCS39Qq9w53¼fZNLKFS3,jfVfxQLZ1o1X1klt[:RJ)zlJ3a<XѰk)SZ +.\ъkg V~na圥p9s`^)
'@uh)
r +J]cྎaD?#=_\+;gE,SXr)BJx7ͺ9rW <+x;WMzs"ϩIz}#5fK&h,
qVeuV JXΩSE$gzh}^-$_[Mn
¤}0%NdqoϱVz*Ixt{#Z)>rh|p +9[ד{QTr6 +]t@?HFT=fmw;v,118]LD-7c0x` , +fԃdt|zh=r995g|z?ǚoX-kiiG:_$ͷ{Z2R0lOS額FEn\'Pf>#+-PhDt:#isN7|8&5>Mc!͝^-Nx8<:9qxc},sUB3*W|XC㶖,E,F˹K:_#+N[rڑӎiKFrzxZsۭ4J؟x7P3
M jc816vt}<@ϔIއyQiϳ`YJ)(_U\E}K endstream endobj 1345 0 obj @@ -5893,28 +5813,23 @@ endobj 1347 0 obj << /D [ 1345 0 R /XYZ 69.866 801.979 null ] >> endobj -546 0 obj -<< /D [ 1345 0 R /XYZ 70.866 771.024 null ] >> -endobj -550 0 obj -<< /D [ 1345 0 R /XYZ 70.866 698.641 null ] >> -endobj 1344 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1351 0 obj -<< /Filter /FlateDecode /Length 2640 >> +<< /Filter /FlateDecode /Length 3287 >> stream -x]n8W0`-{aS.%fRb ->eWH2HY?Џ?נEhy$r>㟿kmj~hm^NosVkWo)5?|C6coW,-W{ -4>!U\p
$Mٌ( hՙ:H -n.:\̪Q,"kl&-P - -Ceq}r^gm9W^fyoiN4k_P}A9o_Phos7E"WĈA2dO6.O`\'R6GeK9K 6_;u1 'z.e?>awPoۜ%9 o܂!߸og1c,qD;'%|'χ "}هzr_t4Y9fJ6t|܋!&Ed-4fmqDGرR<OEa*T TdDIP=TWT$!:"rbTE.-}C2GUV%DfX[hE=c3./$d L2RT -2W%&#NV*&PRtHw[$Mq5:SŶ*n&^i7KSDO,^z -|H<mS⊍Q#vޔϳOO`''R6>-Kpm4P
iP=H6`jZtbnP]yˁ9[Z@KmRi:kᩞGPFc -Fb)tDuWF+N5zSHV|\x -ۢӕ2mhN$0V(vcNuxb>NzәvɬH_osW7%y\hXL!<Ϭ٤' +x]ˎ8W(4Юr
E{9eIH$%{u2d&#(旿.o|~ ,Xi x_q歽8/z\\8Wz3\{Kyxp|_>)=ϐ +jDrd"Hda|wAn@I|=OA.Pg'nYy
$$5^mxLp!yпf<M֔:رC{Jsi(;(X5~፠AS7r⺗4 +Dw7'?҄7r}/<S;';MC]Ej+NCQywC)W2Gyx38֝,*[%_ɛ/umk}f#_]tblc`,~Rt$Cc 4Dc_]sQ@9mQ!3oQ̢ iQŴPaqҢ9ED)*MYZT?pQa~0E\Txs(L +cɁ +$Ң"qd*W5Ofƛ߸5C0s>+cZi7|(kXoǰbm`=4g+rk#V(ߣ:Ƀa_Rk,n}
μeƸѬ˃wyVGލl?$A8Ǔ +LVfPp]$ՂFq9Gre"\yl}^v]Iu((F +Qzئ^l'EvR_}&/%8W`|-ipLǼ
+9I0y>G<})9>9Nc9ir,C3Ֆd(!>YI*Z,,6L (^6ޝM#P\
&7 +ӢCmI1Q6Q6,uc_r2'zN[gHN[g#SY a)-.[;S߳C[vWai@~Wμ,?j+/,E\A5ur:ۘM`e
;m[M/??v Uf|!d
+Fkql%A,}DEP"4U& +A&^Z6~1zl`jTa_7pS+ohH|ro9ҙLe_k,6h-4ˁ,
L#{RL1D~)[b_6%
ZXq:(_~ir57>BGyzVc>FngL0-e_af(dV鸷A9VбbtPW鸷AF9Vбbt0n_Y1c&PJ&NQc ;Sh}B\LGT(Ou +g
a_`b(LPQc ;SݩLLDj endstream endobj 1350 0 obj @@ -5923,30 +5838,29 @@ endobj 1352 0 obj << /D [ 1350 0 R /XYZ 69.866 801.979 null ] >> endobj +546 0 obj +<< /D [ 1350 0 R /XYZ 70.866 243.248 null ] >> +endobj +550 0 obj +<< /D [ 1350 0 R /XYZ 70.866 164.993 null ] >> +endobj 1349 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1355 0 obj -<< /Filter /FlateDecode /Length 3389 >> -stream -x]ˎ
Wl`0@L -^k@#\}0uj\r&%$Glw07;f_b+K+WKY7aڗ?Hc -o,q1}jvyomfټLYM5} /w͕Epo>\kJ+86gqZIi;VzK)%Gecs&tPt&j8mBmܳ,L'@oeqћ%R -#h7t -cY@3Ye!SZ!e'`Z7 +rM宯e#C|
&O%?_L)CEɘ*r+?KPqyF^ Q3XZ2PkcRrOPIr'FIx(&Z@9Pzr۴--H^rqܚa䛶%TfSݧTڥ{:]L"F6 -"ncA)}ʽMXt<鸧
[H1ӉDCh!dMZyEIK&{IZ9c}X;Ro!2$H2a -1]a -nt[+{PW_\@AEo:( >D6Cox=NDkjV?TfH=< -lU2`SQRt$?D"|:XgxgJq2DAhBOkxx=ٞ61ћHL{2˯}RdhB19N߲AEՀG)6$wd~'?%C
yV4_:tYےaOsy6%-j51dSь^ZcLkGi-|eN -?8]A$#dվ#G(I&J<yق_,K
"Nzk91APFk805m+uP-P}2GWιhn^-oT`njchX}n~>-|UpC\'37=0N"ƾyŔjb~SJ63rNuh<;2ڢڧTti8[DJwY ŏjqW -PI<4+h7h;ڎJ8ߢS1k+Ef#!U{Yr#U7EѺpJ3 -"W;τ0'D̀OFaythç -*<:tg1as$dִ|{OX#tvk^`qEDft kf$|&:xHu(A$1ɫݒÚi^=!훖$H&na RrAxNn#"ӓ-9[r4P=ckGȢ;o#@s|7\"/XEۘ -mCXu!NBC\H钜C[TPx-@Hw\M+옯ꪆi5uUEJVZWd8.Vm&lJKJVɀ<ܫ]2NŔ5jJO*'JֶW<쳋px%O+x%sWvʞWx%k{WjzJ+{JG\6TmR+B!x@:~Wj8:CRCR -[T]ʾJ%^%n#
ML"١lwidjIO8j<k<9e ǂ>]>?UABJJ4r8!TаA:yGÝw{:9sY>hiޢm<yWħjLyU.R
57bdɔ9>L2<.ZHaLQ˖DFŅP\Ԝ5/8qNO0q>qℵ-8q 2&NX崉G0qW~>jO++KU4s&h4|T.* ADZ4Θ|w o?tVNK#MKwx:=.O1TQP^7ȕ
Yo3R+Wo67YJ`j!W∈#ip%PIMEgTjٝyRokfFnW]q䰟tZz<qnt:᧬ʜXc~O[V)h~P8]mD*VE %R:dĂّ:0Y4!hL"o'zp/ptۣz|V((h;5khcG - --w$ri -L\4W>Yn) -B54u
<./CG +<< /Filter /FlateDecode /Length 2919 >> +stream +x͝n$7@p_ +t{'jُDqtTw̓!~Fn%ȯr0u9{ +dq9f$vm#D~]¾cxK71P|g5TGW`i¬ 0<ϸa-w^>%%ڔcHɰhm^ n٦4leysf4XϬM:2_1`|]1QBTElWJbi)p +ۃI]
%c8Lp]6#,XshG:s`Dt,V6)x=50 iΧیi&XzF]L(z~
i2-OEFbDoV6/UhU`Ui&u
D|Gy>~IP\M5N-")G*'O56G¯ٗcd." +G05'l-X1auER3 +bhsu1)XlYVYҼ\sE\ki܈x1b?H7Fr*VJi֬M)J aRB͙[GKlGITP,J*T@#!"LsvÄ`8Sg+p^BT5sy
˙48BtݳL'-WfM,De?GeF;ҧ^R,>&XG[5|=nje|NKM;17[xni\jagƀ9SMsEMii͈xArJVshs8":i5kOtZ,zwZbwZf+mnlޯtZ,j*pn%qa:#t-E5աI +T_Xvr+s{tI/ϕUhv!vkVU +;+nMK>ul!^X<a.bka%lK`(`;կSynEVHĀP5h4-%#JXk( +FL]Sü`1B;W,hglO))f8ٕ߱4Q٬5/O٬9lVfF+Aza9e3(xZKY;U:z3,lwd+nϾޘO+,5zn,1ˍ<L%{/ZBfQrmf@ +J&mԓJ'=FI
Kl72@hM= +8nG[vOVmX
d8Ta}TMb3:T;f endstream endobj 1354 0 obj @@ -5959,18 +5873,20 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1359 0 obj -<< /Filter /FlateDecode /Length 2644 >> -stream -x]M7WD7z,r+zmOJyY5kI3sXx3kKo$9E^~|ۛ$^~IE]KIH
)7)ͫ*3RVxRZx_?{|ח'uđwws*$l40)>-իPI.;W]+E`wY0 -ŘbD} -m[LjLS#ʶBHsI()oIIxO+S{+LdC!NT8zh%v3NʹĽ։_t _ȂMFj/[3sYi/-I֗2J_}<ҘmV`-6xb:-|FH F(:o`Ol3c}l. -mjslB[ݢ³mu$\U-QWE'F -ԲFG5t93<]Zit)[CƼ:d%_-Ǻ*ϡ]2Dݱ5ϒpф-N<F'3Y5 -/ut[fRg;|'
Cu)1viDO jeJ+-dMTX|k$/q/Ж$"M$;ZqCbz]3MZZ=gRVt*)Юqމ -i_*I 0Ri;|_`!!dPP<J@Q+;|ߎ3bF.XvcԲ`CJU2<ZCW~K%|]1B[ Xk!|.*4@qanJAOՆڒ
[ -dMb*+-T-%wg7ٮ{d㖬[}~+I>ț_ -'vp"CQDe "4\ΌfF(R7Xgfhՠp?5y-,Ac06&SApzv1ߎ2uVdx>z+
5HmQKdxӀp=Tm?@>B<7[:-$*3vA2|0Vx9F6G1pWgj;_>2ӫ~4}s@u<S(^ek|mUB2߃nɃU0q\eN UHM(3! Ҝ\;*L~~nO(VZe$lJ"ȁI{0;0w'4ܓwdv"3OO;65TRt˔٨-g7SᙹS: -+kt;?BR:r!VScK9rK9-TgwRN|)qr!1ALXp".P}K9,$DT4ni3m3?PR\ḟ39TF=<ɲ3Xy4Hw6ϨG@JKvzjmSXۊ3_AQﵩNF`_,q2|Вp$*<1}Tb6mBNt ]eJΪs-唕#j[ST^<
ydJN(z]j`Hk&YByT~4Y|Yw-<W
z%<W:ϝ8^^]˹,J1zۉǢƢ<AlIF M9;,=)iQ'2X^,">"B̉\:O* +<< /Filter /FlateDecode /Length 2735 >> +stream +x]ˎ8߯Zh s^6n0ۙlC٢+|#SRqP"s,Y%o۟~|[koo?MnA-$o{oR껔滔MJg>+_1pRZ8 !Vs|?_ꈖ3|^P厀:mf&kY<w3w +9GidcY[xAW[B
ny[?c}t}[9>kpRƮր#K)dߏWm۾yFSAH{[aĨIx+S<"\ԃYFi +DX}"e"6%BXcP "`teށVkDz=g罭Ybwo*8m`'H{Q/E}x;c#} +r 5՟W{''<}N'-災j\97iɧ 1Q.5 Ȓ!Er<.#}ȟ%K4G\OߤQs<PvzAe0jb/dbˤHu=iPN"5ߵ@e"GlϧS +Mƀlye_|U;>SmS8w:EܰT}I7z!:'홒mNZDY@DaFP2FD~XoD!7Oч9 'Ϻ r,}mהuчoܛ.D\!H|G)7UPnyp=NS@^xҀ bRdJ<;QLTq|"9l'h'''j<'r.<=Qp&Q=TҪ8,HY#hz@N +F6h<Qpt=J`Ċ aSBBD:G0N%Ѳ6.mh5`:~ښ+rk<BRd4?WWi|F 17.tD>]٦iCH +I}xӝ'tj2L^y͞tP*yO 7K<yzemu8eD7(QCg-g)#쾎Wli+ѺTFZE_
B +IP@4 ++@Y|Q +TJl>TiBRCPظdu/ $' ++>mCt~KƶNў/k9W>;VQ~*Zs UQDeX$| /F!nZw" +m-j<KۘB|:{|YO"{LdT|e*}|ӡʞ=D{:iY^eȖdSlykgmtxٴKu=KrڴK$?"+q&Th5)7SZA9X endstream endobj 1358 0 obj @@ -5983,22 +5899,23 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1363 0 obj -<< /Filter /FlateDecode /Length 2827 >> -stream -x]ˎW0e0noVl]\-YTwK:<HJ_7y/;yK"y(@-H߷?IHiޤT/R:#߿5NKi -
!|+!:b|^P厀:mf&O\-ſ{SV^FVcߝK«}nT'{`/= S*|'qp]G-.7;{p~*T鶽DsdYL֘YlsgjD;Fz -V}i#6k3cv'l-2z-1` \;#a \$0
q#q11Pn@&Qҥ -a~Dy7<OZ5sVCO0pv\a:<L@<@X4Gox<3s:3.g2НW%/Lr7yN8|EN0rPM3|ENP!>z0_.`r9hвE /r1"O$\gb>E.(?%,
A
ϓp܉dA' GyN8dM3tQ?%^8}lGtQC.pdc>M3|ENPdXK;o|X+d`IlX6osY -B>Gp6paI !re22x6"xeT̰&K*KLn߾GhO -ȱ-&G4gvBDvf]k#[_qwM:Q5rO -DShWxJ\vqUtiӕ:ɑƛDOyva=}+5&'i#2kޮX03sԗow2Wd>W=(&tt -u -&^1֝,KVq_|!W3({j3`^uIޚ㽭J*p*jv_ԇłO%_<ɿ"(<JhEp`Զj/
IHHZ(XDbQD8geWGT&xP~X$f
iٴos.N.5Kt]]Zh2Sk3F")1FECU0iy0E9h*\H́'Gh3lދp~Yx*cg `A -c#-#E3tRRcAdvT0а*KLP*>)mz6ر;CZaSUj*5ZO+o1D?ID#gU%ɥ<1qҢo\`rCLbCt%CXxBxtaAT+N[%Fk"RIDǭ$",J"2V}aQ"0m0qvRұ咔TF;3+ys64@&ѾybX'60uNu5a]u]ZhaPQ-b7{N ۦw<V<r *e`q+1Z;lc)0`RhDX<8n1FuFh *ⱑ20ȕb - L2,)0:r. -g\GJ॓_x`j/>ϺmbFu`}F<X;ˍՋ=_w,OFY!=.QUq,5@ea,c"7/q?/ ϥ7[?ڽZyA3K5^a y>de uA$'XruG<ua Ǖ -UHۧiͼ-/`!D%XPI}|g=5mbv`L{_vAte~jJ6-,g;oc)H}}?c5O̱9V>TzZUG̱r5|mygώ3.(TmSr(>T@zGХ;<ϳ@ʀY,
ΟW98# <6c6>' -Yw61nxt/_$RA~9;vcvj<1^_4Im[&/T +<< /Filter /FlateDecode /Length 3298 >> +stream +x]Mo8?0Z} +!oBLBjo]J}|RH錔> +~7cᴔpBc1>BOX-Gzܿ*dEq?Ӳxܼ +d/_PB +BA`dSd59lJJ +)Ud\ՠݨInTBzb^d>ҋ}pS +.nROVG+U[)r2fgi)`xˮ+"0b
Fĸ1#Q'Dr|h38ͽRNJ~Z^hdl![]y
ŎXMh@հ) + WcQR|͙2@iM-P'EHSXȇ+٦l,UeT#]Re +WGYv9Yω:#2'Cp,Ȃ^1Fg@10mDמݚLӷ..;PQ?Q!]Ƿyz{`_\45q6 z8FJ+ +Kyڳy(^BlO=;0uj9$*qNmm+U][):,F${`Y]Z
6Pe%څ*TgELgvn"NAH)(?&$aOBh!$@>&N溕bUoVM"HA73d`]V>p`Hn}dw|K"&d"!%%Zǖ<M$M[$"q|HF"x#JdqBFhN +"^\GSU-&8`Io4ϩg4aMd1MO*Ed!".8Us`*zxT90~@)bAhR!U O'?.=H yS:X([K{[q~uUWnBiWa< +弑?'aE`\t<˯+L=NGU:9^0&h"\ېmE)JWTuط+ri#qMboþnc vѹumyǫv.V'X[&Deaoyi_( f(UO*f0w[(41h5TR3a/R[Gs "<Ѷ1v }Xŷel}&8h# + d{27=$zA>߶+iSz̕0߯a.e +EiAnhWa$wV$ǗGɟ<iA m`( t>PrC +ɔ<q
USh|{o/_^ډG[uQk)kVsѹ>_k(4D?$jn'<NĺN"mQm$D+Xs|L٣YJ6T+rtߗ7
_VOR
" q1B3sy"Ø?fDⷓ_)N>\ٞzk_ҵI!2XW66D`ITtD%u?S* ܅:ܗzSWĀ68HBF"I)$&tNH*!HWT*=Zʎ}Dꃇk~<[Fm.%4>o endstream endobj 1362 0 obj @@ -6007,24 +5924,21 @@ endobj 1364 0 obj << /D [ 1362 0 R /XYZ 69.866 801.979 null ] >> endobj -554 0 obj -<< /D [ 1362 0 R /XYZ 70.866 771.024 null ] >> -endobj 1361 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1367 0 obj -<< /Filter /FlateDecode /Length 2708 >> +<< /Filter /FlateDecode /Length 2583 >> stream -x]ˎ+a~ -gθ?f:Ƥ\Ne}VYi6> <4AIr6rw|uLuxk^տg}^d%9u:n.amR).#oSZspYķNlYŲ|Sv69crewJu*C (z!D%@T4TRsR4T.dYȲD{kS"ۨeY*ۄ 4wX/3Iv*fZ)hǬ\ -2:"B2 2ěM^Ih(1.^5nJے?SͣCط%wZN'obg-m^`쨊kUWUVWT2U0H }uu -[H%ʊX -@o+=`G'(Č;#Q.U`tc6kcJ崓wmvڱv -Խ3S+/wA$Zq# -*FiS-8P g:I7nSI|Z -3PHjL -n"o@N['1W7(S<O_t^3YC/ԛ@Z6cc.y<TȬc XHv[TDQǡ8q~+8?.xqxtt 1w75<Q75,1ڨd($;n֭wя_Li; +x\ˎ8߯Fh U^6n0ۙlCŢ+TuTbKH#ɖ\o/?Kko/?M.A%$_{RMJ"3R+o8i)-~/p|]#g*dEq}ղXGz% +`L?G%u."/- +J2]C4;4IcƂk%h=*j)kLz&fprnyPlIQa4+;}gׇ6iOih5 +m\HG8Vb7QYs!Bjb.v̸<cNxkf>",Эm#(lz$N$۳=W6{7"8Hi{T*Ԉf +tt*IdnL)ITϕhcxKtJшk,Ʉ0V}X6#0QOy>Ւ&}dl= `JzJh~"32m+SgXRt75m: +
9c,ۂz\Yl#[{n?_[3u=D \v[ZS:94V WW"eʬoR5(ɔYN0Qf^,ʌEuH8ʬF=XehSfSfkc
XCeF8,*5/2"*O"Fq8Z2cAT"N,;6Ϩ4黇~6;fVzL63օ)Fz(vDצQTy +5\yJj~NsnjdVsF>^n6 +!mL AX"=LhU_|k{e%m@@˫8_m|zmּQ|bT
J2^S#gbg"&DËksQao6f
a:ž6Pӏ5Tb_"*vz/"$bi;#Q*vDE!º9Y;G@vE{Pw]MQ%Ւqڂ
Wn/n&TJSJu]צQ?=j'S3K;Q+".O
u߬Q) +`>xދHZ/R)^/B=x9]CTo/ X)X/ywɋ;$N Kx+ޥ/"TKJMz@&{l}w~|?* endstream endobj 1366 0 obj @@ -6037,19 +5951,21 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1371 0 obj -<< /Filter /FlateDecode /Length 3515 >> -stream -x]n$9WF4n`
:}ab-*CPHW:SzH>=Q!_7}˷_mbfnI-墴}ZۯZ7:f_9VkRJϼl^߿i3v~tQEpo:U:T#SE`hSj"syPio@=^0vf|QZ[LoMr*6aa}>MXb5I9C08SoAoU7m1"TJE -wࠥA>F泊*8UܬBQ& -Drv[fI[!JDtTI9c`ᜉ"MIfcO[ p6jZ+W17m-wMJL1N<^d`ֽa":MbAǫXJkcb0Ԛ!5m0$8XV2#Aq8#YQ`'6CDR;@zڼでi'd{/t#bm31DɠISUƙX`ɛkj:=/:l:Kl_r~Ǿ|b{}Nsyǂ)+Cr>H%Ҽa5|yl!]&E`
#;LcΩH5\]ӭ̤g3$u>ey8B| ։GK"S)AJv0֖Ds,[(;:2t*«3PԻp{[I|8c>yG>}-*y#Hy3j3!r'|` 8pc3( -IEeS4E<ر$NE;2T|L{[Ʌ8Wԃ;# fr!EĺYB -_8rюcӆ3xVvL"e.("-E*FXA<dJR1y2BVÂܽg[ml]O`k^WȑT2?=hϴD3n|ݐt{kӭ*~}?؟:mN}&ST5vP
֥FJU!ҙN@A;Hc:ΜXx"lsx+q@=xS$_l: leBki>vO46Yw4?QBYhGS@I"Dz[:+ !^w=CFiSDe\RDZyA/X|5DR
۞PC2{שc\5DQSCϔ0T-)"rh,ET -Ɏ$Zm\5e5ATׯSWsO-2Rϓi!|9\~&)T$:vaI%ҫVK"Ksp<y9鋾5*PEvdha=")Zl]")RVpbAH#sVO"/Tm~LE*ALER<*rª?"I*R#*rꌊyߢX@REұTU)hWsɧHFy2pTiU"H CyEAyUA9"E9@ߴ!-H-REx~ḍ 1QuP81Y9<SPm9k屛 (W -c|A銇e
e.K2D.FcxX~䒴͘~̱0vP
E*#TgF<lX*{<cI]XKŎE"zpJ[,'G(Emi;8lyDG(SQ/gzT~"> -E -q8qN4_?Bڞ1Y#͑#F~%S*П(0ʣ^Ej=@}b` -X7_ ͙~ͬ0k|DU OL5Vfĵs eqE8k$,]KSx!%(v}<i^NؔIoOg}UZXe3,GG5$"dQ4SB"XH'9}kK3'nmAUT;U|^Zn>M
A'gbUwCVk;x| žXDz렒{ҧVt)ĺkUju҆F+li?/
)!/Iz(jı>8Bu>5 -2 +<< /Filter /FlateDecode /Length 2987 >> +stream +x]r$W#bb"FW#tIAV7Pji:yH o~,Xi q歽9nŹz\pn~~])Wɹ+9#_kl?oJ-W2}_@9jx`Eq +߉<k\k_軱{%>~ǘLLnWu;x=c9L+;pL|KFѨ?AaB*&\ݰu&,7->y`am2z> \ł" \a\aL`\)ɔ7+r/]ʯ + +Bq>p\C7o7Q9\)D +JwsDZ07LCg.*/{ay_dSCCr0f-TbFl;eT\!:!>F3c|zo_n訏{}f>o|(!JrΓ/:U,<ٗORAfSNn< >%':M%UtN.|alU!X\6]Kߥ'?X;.\]9KۅK=N@V RyShrU)[협tQ6?)SGlMVEl5[x0b El#S _e#IIS,g6rrDJKi
ع~Q{P 8sHsX??9:5T!)W'{.WI2)&a|!Pbyt)ƜN/L*ӥۊyHNJaVqkzXOMSy +ڡADQ#]adj~,QN0=m"SdQ"@_ԈDuL$ܕJJU=RS'7R J)dǥb5ILz)N'$3m9"A39D8
@yC75ƛ +2,7[>7[n<"HL,g˹/=AP[
+yTxL#$HdQ6?rH#_˛ +_k+ +`At!|m_AáT8hHA#O9hhrCA#<uNO݆hm0F +0hd",^!9,ܯ2< O?sQ.O\.ܓ\.\oC; +0 +܉x78B=6{=LxL[Z[~ etxV|/pT_r/so ~WVWU۞I1^Wc!A놏ő`:V^)HMOԣ;.-Hk3l-YNsN6\ϞR + endstream endobj 1370 0 obj @@ -6058,21 +5974,29 @@ endobj 1372 0 obj << /D [ 1370 0 R /XYZ 69.866 801.979 null ] >> endobj +554 0 obj +<< /D [ 1370 0 R /XYZ 70.866 771.024 null ] >> +endobj 1369 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1375 0 obj -<< /Filter /FlateDecode /Length 3081 >> -stream -x]n8SV -[cl c#606on+Kxܢ@Q+ -hdGSӓ{#ӓشӓT'Y9izӓD5\ak,>e -NYˈ!`ڊȽx m!M&NLx}#zϬSs[Nbë b1BZ|HIz Z'ε#lj9ײ>`nmuO3m5=Vl٢b=TgjGuYQC!R;RlFL&pZ
p1e23;XRhxml2y]"k 05Uj?L'P'ݰwYVD[ܒbCؔq=jL8ْa>jȦl>*<s"1Trx)ƑufXAUS*uՙkWNY>25Ռr-bx0A c9 $\\`'dz/# -wDg#܃,Fl{JGsy,U1"¶)BN!嘨Z]CwcMd#cg=4=J^8譼\3'dظS(ygϝiJvx\IQ$10edyy` -3eA=Yd%=0Y) -N9YCufS&+ 8YI5MV[xAkc)!¢^ONhLh3'cZ='c.+Bgq"mIh=LNa<A"b,VtWy'CN[[T9co+33eqXΕl8ZYMgz؟;v]"YkKwxwx2ցS.Pm_ciD]գaEՅ. }IAp1d}Á
18TȢ
'c$bZ-UI|D -v4\KX@2 -sB%
K|NsvyO3'ٜ"{j,| 2xf9E{Uۏ6ȵzKn玛7]z +<< /Filter /FlateDecode /Length 2819 >> +stream +x]ˎ
W\Epq;2]m&meUlBu׃>HIVn_m_f
}3UrQ;wwO͛i3o?~s''B㷔3?g
ߴ-?17}.ׯP]"p7[WhC#1MBieL˩oQ&jƵL1kLOt}g8,ض/?`+Fe?.}506[>~ۚI[ljށ/6jtnqvZƶ<pI`{c`m^2ʃ
J'E)זۼX&vV㵩0އIwHXsju($0ֶ!amR)&#oSZsdqCbRzd;@5״uʕݦ.ɫli l/f ]gurJsJ2T.TYDL{LK2ۨUY*ۂH4wX/I״v*fY)CokǬ\ +2:v"Bk &`:SD +X*_`=pcm?77('Sږ })z(4}9P&gNδ°ߢzL*vP};c;̑xd͑ +c +\H5a5G[.S-"öGEK߯v*^d@?;g~ƩڮAa> /< +.q"`ẑD:QDP_}2b#"1/GsCH*\O ^G_yCp!fPu&]}lD .PddX3/b8]_+_HCN_L@t6NM} c +Bv vNSDu/]@$"gd8( +q3D▙()CD>+8:MCz1/S#O@zc7aڧֶe=4n}f",Am0=YT<z=L\1߂ј.ۂC܂A9l1Oܱt%?px +uL˟cpfmé@uH)al2,˝;- skķR"]u`'e#e#O_<70~P£Hx QQZ^(6Jx*3n z+F
ug5:p3?{okAcA;w~f-lIM^OŎ yzЁN r/7ԃ6_:>_wSnPӃSΫ֡ M
6븉H
T4x}?憋:nbXo-M"N@nG6> +FLz\HzTwIzJv+괫rʰ3*$ro:!`n%ᴃ ~5p٪R,Ojf4h騻[oWyU^r/qlcG0 xL.^pZ$W;r_n\_+KHq2ݡ-!Svr=(iKqzaKk]4=)gֶ9 +3B @(=ox$#N/;Q<?F@ &+JkJBQwϼÛ Hw|en>{Wp˙=ԛȚ XY3(@^I^ Wy|b<Ҕ\pI9gFe\7(r +ɏ"I$>'>R߮HsU֣:2ԝmGE!B"` +kr +,.Cc(:ޥ$k#ַgxUPS0} mN
Z-gMy&l @@fd_gaTI/0u|$^/@kgL֗c.PVLQXAiF㯧40@DV9 b̚H_Ybv$umOUx*mso;5y7v5*pE~A^#չ(Qwjxd[N'Wo{ endstream endobj 1374 0 obj @@ -6085,17 +6009,24 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1379 0 obj -<< /Filter /FlateDecode /Length 2934 >> -stream -x]˒ܸ+؈mK>*ts=?@8
-C-H?㛔))]Jg~W_1BV#_H/uđw;ww -dmߢΫ?1hb]ev;wן5ow~Z#-PK`] -d^Dm?xJaTAp6רR!*N -11U#*|uw]d㝊LZxI6MBI_ Q C;LWJ}-\X>cK$OfHGϢ(*KȒ)A\+-d{⚅ ɀҹGד]fA~X?'L/dNHe#SdڲS.v -8X^"8}N}Weohvh- dvgczUCw&oCdu~ҬLE)}hNkǞhT$7Du*%K<#D~缻y{i
§\)c9hQXxrd5+]SYfi^0FyвPh`>OK ^ x-L<E@i,C8klEUd9 -.LF1 h5k'tP%slZT*zIEZfQd|ԉx|Qz#chx4DGޯd#zފi2nA=i>88Ǟ"RCdI`8h>r6_T惃H4b3|BTZ N5f $~~4V;rcݎݎz%KwF"䪕z91^dd=KqmE,}N`۱g,G1+#TgN~AF:~9fua┫vj5Fmlsq? +OI
)
JO -lMW0'f)φWKzk|sJ-'ܠeJ2mǞ鞊
@]"sYq1Lһ:"d'x=1Dx*]5zU-瓪EƋ"X7&hYrº }&Xomσ;V<8!!{
zxFgs٫w9hy,vZ -TuAa=ԇJǁ{it\`9sS4PEw&rq .ޛfH<\\s4p10$>tP1GwuH__Q +<< /Filter /FlateDecode /Length 3198 >> +stream +x͝n$7d +N`1oMtuk9JG_\})}>d%vm)uv|fT!CzomDZ]KU;ÇdIlJ`KFZBtz%%B
-~Bsx`B5=b>eIOOTwq/>cqGax8%߾6h-mڶy?cm2?M->sM":3j𨟪;쭟GZ\}b5-t0[|V)?' +Bɉ.dW.7?Ya ۞ +DO=̷:j_Uv-TCy'2D0T +t!"kׂFBM'H`}{OIrM;k) GD DWH8"Iv:'J8fZ&fB3q) ߷=#T5TT PpҼ[$J8QI8h+#z VJx۷p][o#xq*C4/]푔'hvޓ^ncbK%}DIL$LUY/;?$ua}6IK,⠪Ѩz1Y/RK{'5ZE֫@Tko%֮:Z$k +.X]6*Ј$Q.yb&Q4:Krյzjqknyb椭4@0!)Er^9,SXp6Aygg|t?[/}?sR?gKrWewɡ U
cX8c +|$EJcB:V&&$PM @ly*iX#UpoUĝYkcUXK<b=ScZZ]PcRs\+*67OUz*xP㎯mOT2WD*x=j)Ug +| +=S3PmUpKET`[Vo*ڵ +#U0QOǞZCUUag9j<v*amUag/ +;[<[aRO4$e{L j +6Q1D +{Py xqR{xĴP
х01igiU]wQ'q10e1"n(UĘg0*~T>Wسڦ< +TTunjXGP[Kkt,LLK}{n<>$QM8j5ky D0GL|+U)p#Qe /<V:,[n5ӭ}t*oBj;km9<vmog:$?1`O7㿗^I;ֳnmUcрTjhOϷUk;&$N=<mmGG
&܋;2`u6}}Gה.[A#4w0;?'xڞ0:Ǻm#u,Nuf[ I-N[2,DeiJz?L??6>^7=pqp[[Wx:1QFx|nɘ#_Nֲ%:
U"XXucMmx~{"mi[Ͻ:m R<&bxf!Ui}<ڃ^qzG|;#tkᣙPfbBKE{+020M= +Q_^+Z^z~G
ѸR'`RRm=aZ.`SYDmOrP5ӈm.YYVȾ|"X)mߨoh7ﰫ%O>'>&B)M
L]\8<Q12G4'exyԝSo{F6o?:%H;`}7sX hk{ V~7zO""W_-ߴvr[!`čiY@N_o`eY +{9W۳R.sp.6ڏQ|m9yuZB^YgY;-<1n0Gʪe;No}Uˏ/F endstream endobj 1378 0 obj @@ -6104,27 +6035,30 @@ endobj 1380 0 obj << /D [ 1378 0 R /XYZ 69.866 801.979 null ] >> endobj -558 0 obj -<< /D [ 1378 0 R /XYZ 70.866 491.158 null ] >> -endobj 1377 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1383 0 obj -<< /Filter /FlateDecode /Length 3291 >> -stream -x]Ɏ#9WZ}
dVU60As>e0tHar<$ޤG#C!_}oRT6˯~3K*xI(m/]ky:8c7|"X=|"?~K)|>ohx~4˳v~4|t`T(qLr{.;EUᙪQ MUUb8PaJ0x1{z0ki2rֳŴրXW!gr,_U}y)f!v1G -ًvx&EE+O'|>Y>PnfDv\ -xeS\BAY%*yPu ->z-;U\c#=</lem\"pY%Bܕ/ l]TAո:U7Ɲ렢1"
ا7JY7LerKIe{V뻚mbD -)?5)bfb}){F֎]~8k<sl-H1NhEK#LN{hY.|^Ѳ[(-'E7A]^Y~nb36P -(RixHLp[Q|RH+cNEEH>A`xzTMwѵ18Yf;\]jjj9d[-o[HFr&9L5<CJj/hP|~@rZ?\(Y4J<Ӡi`ێ1V}=TGڛ<;8&w4 +XZ4V(kJgK=]t -Ǝ*h "
P -'i1A]\xKՇD6nO!ZJΊ>$U - u,)שu\gSi@W|bWU - -ژ0eM7=jI# ~ڢzh|{N䘌OgqМ+ tʘM("pьlTdz{f˱͖>5\Ga?ro>ڒ
"& - "anSGwFYG@q4[ޙ9ͅ=hKtX~Ai
МFYG`oGcj5 s1a,emADY^!LYB}>?TMO丅X_ЉyH5\KDpU
j%Z|#Vcza /S1#V{My$VR.ż]axsĺSs`ʸ"0o(ΪfrUa=GCCl~6gu)@rF0jxE3l;ٶgwv<Ћ mDq]JflF6)(|K[VI7c{tzDʽ[dK%lgv41y-o}ш97 -[@Iw9Q~ϯu2coX']pjxAriNl3c9ZQ5j/^'15jq͠~$gC<kר'Ñc9;poQՁEr1zG~5^[An
pk7`&EW$l +<< /Filter /FlateDecode /Length 3208 >> +stream +x]͎8SFY`8b;NLLKTLPH%q4Ed^^|{jj9^~盃/]5KΗTc=|˿~ֿXެu֦`m^གྷ% +i^LKb/6[Itʆ-U;c*@'hFpf=A6'7ޛ~xP},{{JAPWKc&~ԜE {fr~ȼ/s|'|3SDg|3PrV:/SDR9`Ĝ?PHߊ +09HgLQ_3x9_-\ig|@06yUhm=
hG*<PC1yGsg_YW}WdgVl3+ +es0˜Rᑨ #mjk@u{Lu]U\}vq pSU +z*@udG +)@zUVCL.BQ{%x2k=.2ǒ*LK6Xle3 +.<k%!1zY7p8jkxN*5daX{ν5Pk+S{jBQo[g4a<5?Xˎg̸*|0mm)Ǒ9'fF*{?h$-Z*v2YDngYJ1RYHq\ ;8 cW-c$݉`G5Ts-w4[ZHyA&V<̲ıpNqsץ4NHcr'xsqHnmӑ"ё4PTC^xn#TG/xy,w,0ӊFڀhBձu[V0T%x+#_px$jDD, +5 +Lf3(:8cQ#@VNDJ`i((r1dSkбvJIDX.A-WچU"^MCb&D6E ɦ{ݸlz_v'Φiɦ)34AʚF5x_6&|6).Ȧl>9 ?MlC)Ʀ)6= +ɍMt:¦ 6TL6=BuM<RMY@MSXlZ֍MOjlZQcsٴ|<B6͈GٴƬG6= +pymK|')+:Dg\ ł_Z,؊gk(Cpz;W TqIr=Ah%Gq5E)G qF<9m+E @6#l$TG6
[1 +nTh6kF[ZBsYJP6^5%P,촤@c&XRx`w\G:WT-bv\Gt\y)qݳbǕ긪غ%SlݒώuBNkd37WD^OR4 +~-y`;PrԀa<N
:[3@RPx7fRAt(Md3xN +`s3Ց<Lg +3pG>&z#& ǣ5&~v?M&; +G#g?%1BOQɛ"²)TcMxEr
)ϼA I{f5sǾ<~,v;1wr=\
":\ YLrm^rd@z+OT$J1rMkN^G5=AUP5rIGkW=(k\غID\ jz.&!IH1I85r1FH5@!FH5YGrbFaT*3j7#ȵeDrMVGWjvGdQ-xGpT +AsD<j;(CQPNqAMdOPmHџw92jSrT[fV6n#%@ն,Fl-9=_JUMH06J7<emx]9D\51v<nb(#߃u=Ӄ@ GPRc +w|jo? endstream endobj 1382 0 obj @@ -6137,25 +6071,22 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1387 0 obj -<< /Filter /FlateDecode /Length 3174 >> -stream -x]͎8SZ@b3EWL9d>\q#ER(Yo_~p6koo?
yS E$wwUJCJ&3R1>ᴔ>ⷯ!s!}*}B/ -1%$O,6e}hC~{3Ki -D##&7-7d.::6NmݜYp -Ĝv5P#1g%gXo&|ExtA)Q"<G VwF|
L0
d`DGfqL߯pL -V^Gj,`5R@Z
XtQRIm/iĤʺND[%G.>m`'bmd{5j&&qcՄ"lB -7ɶƺt[4WPGNmNdj'IrX9X;D48S;!mwNjN{LdG*[[v
,KL`$wgtZ@:N: \;X;vOD{px:N}pu\vrUI[a -f_yӀ7G4 -):FB -(,; -)@&e+lk-P -)M(
Ŕ\rr陴RLXAu,foAPje"[6!kc+,`yBdG|Z -}]cU -ecdGۑti@FeѶQj^ -6W?tw4'r)U9
<v~<gU -Ӹ@spǣ5,z4צ -80a6ݑV0IW9R|dHqFj<L .nHgd|OOĪWWw2bG3uu~ʿmoxoaP9Ҙpҙ,<%iJ+<7T<p\f3VQ2T:s1,,Oa?V^,EȃI5S4۹{x/xCy=4G1~Fr[>^ojj<AukGm3zoa(,ݧeAm9a#{|39QSB;Bm3F|Y'||nTrrYe
+yc)ppRíSivknW/y YB4a#xI)t"ť/6GPScHXݲyS+'֯ jPP<#YH^G\F9؞h%7 c.NZi*HmTP!D4
4Cq9j-ӐjCRm
aJCFiH"!{Qq$
2qR!ùҐ.ŭ4dV念h&t9JC8!
B
;%4GC4x_!4LhL%3K }H>%6a(6qNl[Hm$DIyI餅m-#8a-A>Am7-5T}%T,82 -$A5G-jNgic<~ܶ]$v~W9 +<< /Filter /FlateDecode /Length 2823 >> +stream +x]rWQ嚪QNUݺdMD@,>H_y_ޜ$/ +~!/_BLBjߗHKi^TW)GYo_1}
!{| .#\ߑ +B&}?eT¡{z`x^}Z_CZa[ഗ07$P$;Zkl7}fK!ed9&X睊LZxLKBy&g`Etj3S2Yeg&Y^kX~Zhw5?
E@JQ ^lU,Ww}ϭW$s' +EZD;LRq2F +"!{, +g:R6Q^%
63pOp>n7Nl\ CZT>LPK(X.G*. +gG|a/F0&>W\UǷ(CD=V-w.͇z-%&i9UtP\AR3J*~TU\76WZIܜsAX663aóY(pLL<AdԻ1)֘Ĥutx{T> BSldT \JlZ~@K'z!3:GzW'NcYlCpXc +Z_FYhs9`|mhS:$|=N n/.ʌAgm&Olk>O(v߫}zU&S*A[=j!0A4u&s 4I0ŹI"ƝwXK,K<3aS{Ө';}eF,A˨PnSĔ\-N$kjv)Hy[Cwhm斉BNkFqjƞh o n>߄9sd +*.io0f%[Y=t"hwNshJB +ȗjz]LP_kW@^+l$]R«y0ȧu6lm݆vi̗
ti qsW+mǦ(P6Q{oK2f;7-0Ŋ{,Wǂ=tQG:=I>00e"tlǦuKrt*Wޞvtp_*)؎M)=Ln.4Kg<ECtF8?&%e}U:XAJ IVL]vlJ)Q+i1u!,W)!Jɘ*%,W)!Jg`d0!yc;6t[ +3t0_*ܟ40W`J9U:&0u4cJL!yE:pǀ=J=n3Qz:@4#ı2#~[7'- +Pu)y@!cS7nfm]Ei)QjORrE6] We }U51[^5,R78}Fڎ=!x;`/sFOfG'\@(}dQ3[9AnHf5GWx(%f+L%OE0TNDgޕeb๘is +^r=Ƌѵ8Z۹lן_"Y + endstream endobj 1386 0 obj @@ -6164,23 +6095,24 @@ endobj 1388 0 obj << /D [ 1386 0 R /XYZ 69.866 801.979 null ] >> endobj -562 0 obj -<< /D [ 1386 0 R /XYZ 70.866 189.217 null ] >> +558 0 obj +<< /D [ 1386 0 R /XYZ 70.866 311.831 null ] >> endobj 1385 0 obj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1392 0 obj -<< /Filter /FlateDecode /Length 2730 >> +<< /Filter /FlateDecode /Length 2901 >> stream -x]ˎ#W -}#ot| -"À"Xcr90nT$#M=;v(o<caQ^ʣy B[kTST6*P< -ģw"tol1}%t2:_Scy[1*L.~y|m Ǣ]|$wm@ZЉIWcRtNmq 4x%"V_6d]Yyxc3Vޔ\ ]TijZ}_3
ޮxQ"Z
:x ןsy@|L|Xg璊<wނ9/]p -F܅sJq4ϱ-bp;`sdgFslvڢqRa3AynF1Bjߠ>H$\2qSуj:hMj_ջ%EƯ{:B)GS)YYK|䕵]ebK#۴N.AO8X&TP=KBfXU;aH+^n=FD3Im(2^+%J
R
N}y1jIyg0Hx[47ldk9Xb'ڲ͠rƟfR{''uZis}UK<8F:$:T't^̏ڄX=O,vlN$Bn8$6vԸu/THu0E4ĸR'eܔ𘯐GrppnASzcUC'v.95<7֕v!:rog;vt?@, -E*1DPvb6mKlGj:(y -gǑ?J@-Q} -XT@ - e%OPTlGlUFVl瘭~zQ[5t!IjT҇XS>OWk=-*{< G?g͒gW/Bwxo +x]ˎW +1ᴔ?~)^.G#/C +d_mU垩+Ue@ +^ + +(OCf͂+EZ[E2v*b@kTo$*L;^ZN-TXt&z6Y7,nﲸ#e'V2VqB8O<փ*ƝOpR:%`rְ A#c{Ŷ +3(¾ !!W8drS;B. ''dXY\R?x'h{@@ԉ}V1a;>L0e @݃}Q{Qႈܚ#" xM +"& *& @a1rdx>L,?9lU({DVܲ),{ T xKC)G]T&ޡB +aUQ3e>äd۱4K2^/ä(1L^a-Y<l=C
k'9BXSYmN!¾Rz<=}qgǭp{Mt}1,^*) +$Ƿp{;z~_[ȓ endstream endobj 1391 0 obj @@ -6193,16 +6125,32 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1396 0 obj -<< /Filter /FlateDecode /Length 2496 >> +<< /Filter /FlateDecode /Length 3484 >> stream -xڽMo#)!Fr2H{i/[L(NS"']OcLE^~<<>%䵷B^%H/}R_4RG)GY/߾cNKi.~B_o!:^Br@L¶nq_o-GLh.tcݳ+,߀MD&l;<_~|;=
tlFkܛ_ֲ9Ǿi,\Ǿi0/=.G[-
8ŭ`Li>}QԴ9#iɏ }ʦo\2CI>)AE pKL&TؤDw%mСI=OU]YBK/ȝJCᆲִP-If?ۧ0˾lutߧ Bh|(<n(kۥnGsa;faϔ -XZurX!z?cvX`X&1mjc](`vqlf1v/ϪjvqӮo^2Z
:Q0Nu2eFj>m.a̺{}'ECi~dĂNH'5d331"e#QR{8]Q4cp;|>}WRUpk*]<#mCZEuo3!lwJg)cM<թq4h -xN)o`aYfnm96AvgvD -|3{</[2Ez=^/ym'FNcmtSgod+8RP! -4P4HE
:O65g D^:EmVգD q#3|cmrϒ<vY(lաnqZhl{9vtLhg8w&f[)1m5ТTln8(̳n ߬KȞQvj2qՙ5d_OaiOd@.WZIH$XVoԱ(L+u|cam"tLCzk$`4i"Z98bҸ2Qj9v:FDAmQTg0_N89X sX2 ʎ|$@Ɯ% 1 -K]j\;hN#O,6iN3҂qBeP6::>Ms9+"} h)ilnpap l$<<@JDJXLJKIZv)Qۜh33h=U4(7p+2 u`]E;c5j)ᨷqՈfaE$VkZj8`8 -N
8Fj.VY<հRNVC}Fc5KIZv)QۜvF^a~d@f%Y -NȀc +x]ˎ,)߯h7j)ުfٺlW_ɀ +C%&GE)Ac)oo/?[koo?MnA[X_KRW)ՋH_?~3''o!g^g|oꥴ}">?r-NFak +2[\= +em[տLr\ +)reg\pOY+dԃSi55*s?n)>O?Zg`
+w}~ +*+{a@xJuNͮ{|"
Z*EcVIETV;p+ҵ[E:q[ +tʝ"H)[R?@IKz=*D_(Vʹ\4FSZ_Ȉ +Oy,<BŊ5:*)Hײ}L*'؎E>+7Dǹw(H[2(TUۄCd"WZ} +,nd3.ӶjBJ:FVbD~<GVZi|;i[ R{DȪ`d=+u\RG0Gն=Qxt[7x=ţb"Q1GY|<j<GaLxBsGu"sQN}#<"$U{G!ۈ<!6 +84OdVskzf`4eBt6S.mjp.lÍ~{8t}n:eQ><mm
ڽ11b@|f{ +T3ȪgGʯS
g$S6e}?{ΐZ_ϑLؔl)G)Dwҭ,1Vh%c'g6s0C3V@'XzzW~,Z).bfS +KfRaCKڛ+ovjQ +Z|}<M0qvG@D"j.b?rJ@#i"sHEņg'Q$!cz%,.{dLBZPm#dw~,XY%!<YrLe:Ă(_vEe1EmEf"tu$Y*'сn0d + aꃎV +@
۞ @Ļ8m9p3FL*D +@1m;)]D&*:vg_Am?:mN]* =Ook~~[qJ5="<tJ$ѧ2W[F|zx^gÀ =ܾ<G""\7gd0mľ;~Sw."\7mg)l^YYyFa3ݮuv +aO|7i'w.m<M!Dxe~2|ƃڦk<CV2]T(<
>gdz;{MQ{$CuLɁOI +ev 1D:+ni]Zu1yU9Ɋҳ +j{`}笰4<ĂmpV@W@-P +5K9٥7rQKƼjoo|Q)6%>)d<J~L@Uyzfҝ64_@t{ӰǰSshEXiK"}pyYir-7웧ɤ_(D' +Ώ+'r +όH۹үt6`~]eFͿ^q'oJd`;R6ºCi;MKUVm;DӲ͌`* +&n6/~yp·r39d# +B<Xd951<3 Uz(Ɗ3=Ɗ3}Ч)y,]GiR+)HzmuFG'6+$`onޙ}]+ endstream endobj 1395 0 obj @@ -6215,21 +6163,22 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1400 0 obj -<< /Filter /FlateDecode /Length 2540 >> -stream -xڽKo7a~ -~pZJpu5~ nc -_?Cdtl3ˬGr`^ć@ -/R(cbHO0:ᵯΏ&Trf79βDO-7_ǰ{}{_]/Goo?߷LJj"\$РhB&5߉J۾mq*ah3Au!GI#=|Oi25co(|J<1H+)
Mzu&Ӌ}*3}[o={K[8vhgP9֩Xo{ESW(uB~(Vh{'Okj=>`<dm,RF3k::^[OkQ\z"<aT368*=F?=09A=#rҪGD@cQ<I&E@X}0rpdW%GCUhf6=x -ڌ@6A[LK($#WBUƻ
mFQѦ<mfdDXk#
K"OCh$2t<6"=UF' -nfMGǴuqk2Fg&-2`i
%'t[n֩'[!Nf,{F@)L29n/et<;\@:q㈀\2; -1oӑy1Ys|f2@G[&r~*1آ8`Q9Ӏ -J{i3K^R:fvn#o%%!u,yk'"l
`Ӌ -<aF6El9-c&Ea140țd* /[lG+-sx@ -o6vF>+e'>K쐴$]p<<@ns3yeX;wۥQF
SFѯqQ~&oGG7eD(8Uk
V=}~`#-pc˖zx" gR=S>0,jzhG`ئ3۷YR^l0`aZY ]!ax'퓂×}ΦdlflU
S=Vq@HǠWdς ܑ35`iHl7JBz,&6M4ɹI,H:e'46w
ndՙl<s_@x}km(g=\I&.|mU}}XD[χ+ktZ+hڥ3ȂИh!`i H/bZIRqQ#m&cUZZRFSKDjሁRW@r(JwKz;9E9d\E-l3ulh9mH'k,Zyk| -l9-%S=<`nK)y[N#ohl-2i:S~k}ʛ#y]WK -$m80m(9y2E%pzΎ7<QB\]
χv4Dd c9VohZy9Uސ"O/yk?PZyIlF)Z5IR8XK+b]im1fv)E+]JSmzt:;3mgΤOͣFWH
p2jgI
a@ӉZbQ//iYQ̄
&S25hP7Vs^X{J <8\x:iZhpy+)Ze!|ق>ߚϲV -Ǐ??Z +<< /Filter /FlateDecode /Length 3111 >> +stream +x]ˎ8W(4`-saIɲHIZ>eK CL_r7/+/8^.~\~\r.Źw~U)_a$:o_s/5u;#W+W*Li¡ҙn#n3xo^]LT{TYbh*Ob?#!KƠuXE`NFpE~[w߫{`DLXSߏl +_XvoZ<4wN3oAsƽơP30c^7{ o"QV1g} +jrl{?:
ʴU!i1Kˣ <ߒ8Oq.M9G%$xy96T}ӰIf1[øPCGMjʢ3EMbyuEy#1K,<nӭ?5)8$,JYjP{\D3*"Kq-kf ȵXA8aE4$#dʛEUs+,JKb]/Wm< +S4EA$,b̻Bw#:Dg(GaFiر +
9cǴj4ql g!W(A5GϨf~N5D`e<-Nu*
Q>glZZUdz7v+<c r5ou Utj!g +֨. lp[xw-\-K5-K%R
E0T, Z%A
"w:[Ǜ[[E4A1ۘvkLR|/{miJ-P*g^DwsVyO|-s'gg1xa#|ہ5..杺+|d[|,gDD}Y<·ފM#vߗ
nY8+P3>0M.20 ä0uw慧0ţ^iQ2ދx^cwx^ă">U<`AJJ8S<ZꊷqE<y/1ʃ"d@罈]ydixπ)-3+7x^"Xy^ă"+v!N<3 G{Zƥt-Z5nuI-cJ6.XO82pf$;fqHr]tL0>Lrxq&98$G-a?Wɭgx? +vπ-aǓ7ơ$98$o?5uݱte58fjB؈щ8OHGt۷śo}"u2أv(nKJՎ}h%Vpe6ELEAAdu< GO6NG UU`'J1ErCdʉ#Lnc릥Φ9F[DY DB<)5"Fy +TQjP5UkWyeSǀSs+<̢ݍ| +tpۊnR霵{±~tJu/iXze,3νקvu
k<w&ҩ|}]vbxSP#TiianBot "Wq۠ +</"34 5V5_3P9ugabuqϪseT\W9<?|"flw<:S*1h*֮[On ww-Vq <}*XN]kQX= +@|@")8S(wn3Q+B;W58=xĦIU;#dq,Ds}8 mzLڥVK;s,iD=s&|DzD9u7e:uoq`-$|t55 Szlnc*>=`ck:-'ʟ3[$d[s\Sݙqv'ZT\N"Bby?q. EغvI;\-`ݭca?59ma6_dSW#3u$\eSU6unjzsԠ>C3}s#%:94Xr~D)ml_QZ6_-~![CkvjaF&`IUϸ2MV lЫF(=9]5|u.:Rj%maLMDgNMGSSiH>xtt# +jz$=_D}{(Zs
E_eG0p`E"lG~P8 .\&A/ +ˆNn`:+)om'l@`x45F4[g3e0N<gt)dgsK9K5z%SpKEgmJq-n +-mz+f @ח3 endstream endobj 1399 0 obj @@ -6238,23 +6187,22 @@ endobj 1401 0 obj << /D [ 1399 0 R /XYZ 69.866 801.979 null ] >> endobj +562 0 obj +<< /D [ 1399 0 R /XYZ 70.866 610.71 null ] >> +endobj 1398 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1404 0 obj -<< /Filter /FlateDecode /Length 2467 >> +<< /Filter /FlateDecode /Length 2665 >> stream -xڽn7y} -PF:-=0GnY\\WiJ?xjp/G%yƏB%n/䞺tTu$/rnpP8w? ~N׆bƽu;/C9+CC]/nᦫǬ~MjϿI(|JSMH51}oE638kp
Ar|Cm~jvo
mR"Ĉ;9b>P룸=c~籬0*WIJٮ7k_@kKHR$_M_Ay>i~߇q0 -QvJ;]Tl -'ᵚCѩ*:o'=a/uTԜxžeiؤ>m%
t\aH9eMd}2~!]{JN̘m%i%v1a.eטj[2P'F BX% -+f&)pH>o9]
|oNr@kQ=0BX,PjG\F7`ٓ1`fY]koc
9m'uD8W]oZce.p@9/+HǀsƋC)k3iX'M;~.nbKi fk$^YfDn;Y'|% -_lgLFH3Vb@ɝǷdk6D˥оYiYJ<* -c=i'#dQ3>\xD7"&>4%?6H[ -xޮy6Ig~H>iI5l 5G&6BZ0-wa3se7VD^gЖS -LN;q6O/7}`a3Q.Xr9 ]1N -e}N>/%EHlDLGOMTz[e#'{4]X^ƢH'{v<%|B
cZRm4L^/NV;Oj9OD}NdvN;]Ul>OWN9v'KeC'|W/oF9#JIo -H3)y@m%(t\uOZ)YfXۥ=D&66 u)v*j*l:YƏ6urGQۤá2MϬ4ׁ̍NseG mR1Rjv -,maXR`_r%I0hkqbBql1*o|CmXm2oBT[>NQ'cYu>`=k#%M?G5-P>,x鸄u.j3P!ӨyFaM7mo+fc[3iWi#
6h' iCJ9a#ߐj'4ini;⎨NJi>7.
?+7!P@?o8"͎x{oNE@{\`Kmn.ݏV^ŲyqWDh]b{ +xŝnax +rBtB0rۿ2Άn B9`d8te*h)嶶:0Oę0&`8-vk<|
hNDo&:"&`ch*p`MK()Pe9@5e`Q?︠`Z:*3$e)_z<UPRF}3R_)d {XY7K>kE`e﵍VH3e=s{5Qs^.C{
́ +]HW{y/A3xIkXB} +cD}u%e-L]`ve+.:1^ށ0ulY5χF&Da3EΡ} +Si 4. +WV}W:̥#X!GbF(뺈PCA22/O53j9 +'Gt%ۡeAK&msl}]'ME/\GtT:$l8}F988z8wؗdp- endstream endobj 1403 0 obj @@ -6267,15 +6215,22 @@ endobj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1408 0 obj -<< /Filter /FlateDecode /Length 2107 >> -stream -x\n6+$tYdWtۮ/JR2KF$M;zx}q5X~qqyk/%'sʹQ[|>?*`#9װϏι[/c[>[#~{@ijx`4ơ5<!fF -ǔp5lU+"-֛oJ)ѕm}Rsߍ3xU砝 -%2`_;f涓m`oKSV3ՆAS -8"_͈4PC}d(.* HG699" ۢֆ)Q9$۪Lm9lC6ن
ɶ^ȶ/T+nT=YX#6ZElDbkJlBCn+0;0k*"n+9,',AWvt=Ud:ӕNd:J_L1]'GaCQ -[|@>?*g_N<o9觤j+v:)-,/(clö/*pwv%e@yi8g]SbtZ,R -ӧK5_$c|LrU?焼n7LOH -(7oE7;$e:4qTqn7r~К#Zy]=73JX3KHKtpDPYM$Lx>9@x=G#*,d~\JO<99DxU 9Fx'FZv#"#l <y[K'U"o3 Q_]/ CPP`c="ӎle2?Hx0#W6 '<P +<< /Filter /FlateDecode /Length 2746 >> +stream +xŝn7y} +/xRZxB\-ߐ:V˷w;{Un䨓I쇁,A'+U#>)HT/Đ.f>*atoMWMBIo*tD}gI#D[079ki{OQ'}/W{kZzR$?"N}9s+zHhk S9t06 +(u2C0'|^NE5OD'd@gE$0/0,KR0)6|hGhCSEv?HC: +OvmԬ3}Ԩ3٘r)Kqo,R30ЌsQ8ٞF{@+z}Y)PnHZi)U40cZh#`@ + rW@ +>aՍuj+M@8%eA16`o+Yk!`sU:ykIAȃ48eڀe,w58 +MTy|)ug8q:}C%`y)u1`e_hYP&6ja̬%/,H)K.h,>>&(K+ :6&`&H?m%&)P6A`ݗkzLkH^giJ 5:inL! E@=:HǴb;bњ:IX
YHRN Ec)FRh =%Hҝހt#@:OR(@zJ DH@!`#WAy'B2ORB h;C:o}kM^ӱ]9izh +$l4ZT!*}ъ3<P1f@m1%@jI,{EӬ@v7 7Uv3]QnuI_ + ++ m;<6 +HHi%)PVՃl:uOEagŭyFeI8zzmpnv5rm9CړI;sHCgTBLPJ2O9 \8G<I^syup9qnVH8ǒp% +Ν`Ź}P:jqkOOց0+[575Vzu6*AM=H +[lzFtΟЭ`|!|5O:cg~b;&, i4at?SXzaAH`{/C}e>g|Hs{'DDۙ]ma|5χ:܌<XmþbmK6~3{%b=GM46^aOI^;:5y/A8+w=#Va)dn>|7 +с|,GNw&@9Mr|`5Fю(hkޭy>ALoXHٝG{Rn%nRzg=SYy"x{
ZD;X|z'Y-~~}V4 endstream endobj 1407 0 obj @@ -6284,20 +6239,26 @@ endobj 1409 0 obj << /D [ 1407 0 R /XYZ 69.866 801.979 null ] >> endobj -566 0 obj -<< /D [ 1407 0 R /XYZ 70.866 295.89 null ] >> -endobj 1406 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1412 0 obj -<< /Filter /FlateDecode /Length 1856 >> -stream -xڽ\n8+ -R,l"#)pA*&r S1)bă䙘ewSu[1: -@3Π2R(Z!^[VG-o5
X`K(~]5/ۨKH,dc#ؔ܆әVxy5cM6\d-R Ey+r˙ز3"f$VI!>:a,BPx`IVq0܉FP|n9[s,*>ݶiWDM9𬣸^U㯃uǟh(ySt@n6z[w2t|NybDs?0^.Z6(3!nl9LD8.8@tQ|0/Pzg
f -QIvPm$8B4D/\q~D{/ČH^bBDԆM/mx:`y
r;yq/\H{pD;cT/YiPR|n3zB(/lG=-/<s r9cVĈN00Vlk.4Q%AN`xb4!:+y+EJ#nL(4o_qir|nyZh(DMkhj/ϒ\0q84sܸC>ny HӊRi
O@A:1u~r5Xl085i$'=C*XCa'Bq۞ZaT`v!ٮ[mƑxvUӐoEi P& EMtyq<2#.\͈˙ubEK*mt<k^4ȩ<8is%ok5Nڅ&$l){P|UKb1AR:BRމ
`xSmtF_WVh3}U;v#gĵUwjElJi|]'jhjOO;{ǰFcԘvdޗސKĵ|ޫ)y/mG<N3=5fC;Di$!VDFy;jUWޮ^hRbviɞUػjLUtյA9$[#L_ƂY~P'A>Ìh/lb|*wۧ_Mp/5ٗR~Ren˕A^'n- DXq+?v6YcRcқ`̂qiP&+gAiNX|TEX`fxE&WKkU.UiY둔9gX|K]@lt -( +<< /Filter /FlateDecode /Length 2766 >> +stream +xŝɎ$
#k_ +1YYj8]TDBjMஉOgXzEK#w
KWWKrס%-lAbe5/]ި +6p5|{V0NI bF, +Func5,"|?\'yXҨR!iVjK59hW$/і}Y`wP)8
voTrU5/Fb_F+Ѩv;bky@9<C hz +RQ>tgyѯi媡?c*xZ\h3QIGaE9TPD*{ +>D[bDh+d`RcF)8
0Y#ɀuIa +,:h:0jM+/qS2:Nt,ξѮx&Ӂpxe3MgiхpJ=
x4AhypCS҈$zhNB8j%ᔴ%TNE]hp:$uY( +d@ADX`Ma/7δzJ8m=X +1r:z:TDb!;a^@!!JT
bg +&m*'6ՊѮyEo +bH9LpR"!/H
77sX8yh;k`DnG}a%v:T{8odw%+oFvb^nr ++*p_U}bc0;sU8]Av]qOty+wOk&5HNsmjTyumz
dn&1
TZ&#o%CK$@c" s7x e +kW指D5xDr*GWߘR9bť5d=
0뵍ȮwvLlx2ī3{u<eC^4!/"Pvd +{?9sz)XRyÔϴ9휪vy$y:+
JGt8C9{;ͱ]rG9V|_%mRSajK]hI%ѮA%v{b}baw$=@x'WZ,dH}%d^,4dز\~0<qD9s5U;sr'GG0 +VXyt0mȰc0TîNɳۦď&x']KDK}%W@zIϬ?%}]^硋oύ~? mA endstream endobj 1411 0 obj @@ -6306,23 +6267,25 @@ endobj 1413 0 obj << /D [ 1411 0 R /XYZ 69.866 801.979 null ] >> endobj -570 0 obj -<< /D [ 1411 0 R /XYZ 70.866 188.294 null ] >> -endobj 1410 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1416 0 obj -<< /Filter /FlateDecode /Length 2395 >> -stream -x]n#7+p_ -UiQ(]D r7;[/|%jsrj>Xܓ0,+d+V0*%<>}K+cX#x7fI]'&,
V3&vu;XH<`*yCa(((<irzIEe*NFI1r'MZ.5_gt9ඊݤvZPn\UrְƊWRG=|zW!i7Pkc}ٱ\/)^l)fuZ봆3XJ{Ô&kEhx:Ʊ8:][mNvC_A;iØNc<u+m8uh6PJ]9JF8bjvf0|.!v\QjcMuV)<xUO&@Ep'G*Nrɹ^Z6q^YO3R=4>T5Sjcnlج P11a!]wxU=&0&4A̛&Eh/bG%
jQiyJ,H/ɯ6,}-7v}jjlݜc1
Ku?38V:±J~Pe\8bݯ}x#At@[ގ8Xԧ7e=E}Qu,E}jA(57d(.\Crm_(
PQ]܁ubJtJ[%dPj':z|!7^NNjP5x
8V:pɤ+z1Cd*䐡j -jZAÏ*KkPCPacvC۱#'ÆbX^cP,jCS2T$\gCuPM
P!*O=:.NqN͟)%icÈLB7IZdT>hfNbU9f0XD,Vេ@Y ?!ځ_Xt֫;ʭgd`0¶c|)d[I44lKDŽ1Jou<>P-p -d!9~49~K3>ңAuyYB8sqLC?E4o5pެPfuАt`.y`B;Q<ԹUUP̣.Mv[%Big bD+ok6Ȇ<`L~l-aknd}H`5a_cDQm*+5flK"ul=(`nr>H؆O}[,T0KXf?_*J)jR_RvyUw - 0d͗~ vTԗm9w>5RYvr\|ضwBxwL@
vyom['-ָur8X-m]}Z -6˦e;6(7I9I-9~+eߴP4 -ǿ)&ue0+$/qq -}FN_8?8Wv$ 0-LtُǦ
Ow$x`ngQ{G;yE,wҷ;.R>綃uȎ|LhRq7Pl=ئjC}TAYSn(աPfcIL$G6R/{IoJjKdSj젊zNtj[et9"NEN-[&'|ŻaLvۗ\뼒F;9?>i +<< /Filter /FlateDecode /Length 2567 >> +stream +x͝Ko8H; +~pZJpۗ}=~ǧ'u,XZޡ'8\Q'f\>-PI!NgXBn+!0h +z
yB_[|q@'lOmz-1kA\w}iճ<cM='bУѩ;>8`Li>(RjlGSyD}V+an<7=.&"6?b}zǷ)1Aޛ]^_.#{yL<hQwﱬkKhR$sLۧߎp˾,
c0އ#l& +ቶ5.1ѶQzv0`{+LCK??v +'ɀXI`$pa[ +zbcjeʈ7~=4 DZqoQ+VLa#"V3ҙ`j5.Z̀fi\ +XZE(3,"<\D8X&R6 +h$O!u&J#|ICc'L6 XR`LZdɀ.xHNXVJgܖy'B2l6χs:xGCLĹY87)|mפm9CZIہsX
91X%b+!y"eAps<j[pn.CgŹ68p#2uq# +ܦ(u&l +|6ψs 8W{0ZmVt}eAG+F
}h)xwD|v3/e;HE&+`pdx6jd<4zy`#{F! 6j>|x.XD2ai#ƻKzϤ, 01*e@#e+.; +oG|߄`b9{<ci?ߑ?eM%! פz83ImˀRp\.:#OYg<U{0ZmyjcN<jS21ҸJ"Oa))+<}jD7MՃ|6!ISH9+McFAT+JS Ph(4Չ +g(IU{0Zm31xF_db%VIn(2Sdg
dqCAF͌ 7TF=?n m4{n7ȀƦ(F4_5IaU6wɆ/{mkp
yW@MH#m?A!i +QΏϯ}* endstream endobj 1415 0 obj @@ -6331,25 +6294,23 @@ endobj 1417 0 obj << /D [ 1415 0 R /XYZ 69.866 801.979 null ] >> endobj -574 0 obj -<< /D [ 1415 0 R /XYZ 70.866 275.965 null ] >> -endobj 1414 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1420 0 obj -<< /Filter /FlateDecode /Length 2434 >> +<< /Filter /FlateDecode /Length 2080 >> stream -x\ˎ+)߯\RzY5Uod
,Jvi8qNI~og+OQD9/IQH}EJ&%|Iޥ ן -?@jeFp@HX_l1k@xߦ);IO/ -E@+34ZvϣW^%Ags l1iCܚa
`t0s%4KHJ0g0n\jՃ>LRf.(ɌLiz^EkTا4Ys?+[,Ԋ -r$舥yRNzXA]ފǚk!E.E)("Bj -g<vTWL,ǩ8鋽,lr)l|V}(x4l5 --Т -zۗV*.B#Bk>Eh=aSh@I8M WLz)j;huja~(Ԯ/PD-5StZy_(#o=iSuI-t̪kɱ孶*ꈚ4Eye5D,aQ^ Oy
El]8ؾ'}s5L+g!/1az-;0)ts=p"ƛze:pp4gGheI|2[2w9c71;FS[w-gH<la[dX!*wz"'V -%ZlJ8|ƍtro/m99Ynkdy~Q8~nxԶ_l6U-DGpǧj3o*,e2H\cV;-Da%첏-ϢLzOxh@"ǃ%x5Ȃ -d#ET8RAھSP'N I}uQ(`~Vd"6UXIu&i'J=BudU#Ukaс)//Oq.yjyči)ᗥd^(ϖ=I|+ʡX'=O\߳iO+4/8LzdշT!y>?S"G犟m}C+k^A:]8}%9_G#:I*9UF>oHm5k%a -C4qUWC-gF00W¯fK0x wtDY"wvʶuΘ-4:ZM`RV -ĕG݈Kd.[|FD,ϥCT&XmiQH}?x +xŜn8E +@~ +~'u +RDO!&!5G)YJ*z)} +>=}3NKia
:yu!O5^ TP'ҬĬoY]e+ >ܾ@R$_?^71hɊ~,w݂e{y,Ο_WaZBl#gk*7cbHvimu>e
D^^B&Y.[f)5v+. {&g+S3",3HK|JPommzwf{jC$<*atᑦo&e^#PkhYz̔9*w'T~D@t_kK||JqYj+5p$`Pes[ao(G#h/ᥳXLMBaz%[L'lXAAK]v[%0lAz0&zK=gRhaZ|Lo+ZD[EK(sQ8eSm_0aj( [&/Zi8ȥWwnwA-#Rq8L=# NJe-W7s +֔O\4_R*w:;ΤV,:v1Fб҇>C`+:$Ѝ Xz#T@)O} +t幪V46_Un/:R@7\>ڀ}0/C^&GKrMܢQDIrihM<d9y~Gh̷NHrx#EI`~=QD3Şvy UBT3R\GaJ +()zkJG-).;QoDqgLRjb0y:(1aas=Aya_OOR^Z|=kٔ|N}SuGIS^U_aBo#πIutP8S%m`o*iBu&w"f%#?s|zd͵K|?GwcxAw,Hz#./;:g +(IzD+'se}ϙ?hM+b=6tV_/r8V⣍!N|x#E./;}s8seJ|&ys') D\/CnZ9+g+adz9r_v "J$kd/N`zA~@Ȍz#T)O" ++)juEt%;At +DQޥg}:`?j,1 endstream endobj 1419 0 obj @@ -6358,23 +6319,27 @@ endobj 1421 0 obj << /D [ 1419 0 R /XYZ 69.866 801.979 null ] >> endobj -578 0 obj -<< /D [ 1419 0 R /XYZ 70.866 299.875 null ] >> +566 0 obj +<< /D [ 1419 0 R /XYZ 70.866 722.291 null ] >> endobj 1418 0 obj << /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1424 0 obj -<< /Filter /FlateDecode /Length 1532 >> -stream -x͚n6y -@)Qf -XV=?I,;cil{xҟ4I1?~?}Z -lAg -P; -'+m[3y^ޏPePyÍF\`#bwP`v6MmbJRܺμ9Q
ҦOZJ@1-#}9/FE
xuk
iO$%;k)Wnjsf fa9dY\>+M3+$!M[JiFG#9tyaUnR_QlA9:G9V\^T1ML3`J;>pe>&p<Ϥ/5!WF6}c[cG*GK_?ƐB+SηDrRz%a1r-uXIOgl|)Z#[ՍoոP]gO\ר'z8ƔCYyR=)w@%0g$[rMZ9ZFPm_QQ^(͇6x,lBŊ-PG[YJ5.bP -띴, -b_ +<< /Filter /FlateDecode /Length 2186 >> +stream +xŜn#)y +@h(R'4VvNz3K8BUōv9W4?>χogO+>
~'Ǚ|`\;N?q.s8/Źo?RpkGS-^_OJ[\y +jx`VuXh
<9<.O^}jg܊ +.Qi@Lk0@k,^] ++?eϙ-Tg +Kޢ#zM(iogr(%k(UwaPmlÅHK浭z~z +q{-p(/7I-kȅOmA0=9okG'<B]/waMmqB"XB'&-"<eX|=`Pq_=ޤ{Wy=ƥpL G&ms}H[yi+
L<CVQ?t@$6#ROWUگ>+r4݆*hNbC):>v3P=9뱚4 +ItF=2VtժlivV3+ՈbGeYV:_J<H|~T<ęby~砟>
eGs#rMdri52`D6`"5o;7#ݨ<ߞZ1mCS?['|{pԉwLl0d3jg<T5?f?9EgItVIgXFDNcXߠHU*zr=-1
FI^z\
^Uy}#0!!R{å@'tFfN2j<4TQ=G~]2R4NfV66EzG6{ƅ$YpτxN:I`Nbz/PA%Uٲ+:NYð-fވRe2nȪjT"R0TުY| TZTTz +v1*"PƦLҝA͏YRALJDP@h?4lJ&PH8XS@uE
*d@e\@W Ak)τ*~ջND,?JOUI`MJ5`R*HޠǰD o>&A >I1$O$uzM Y H<2){kF(rN,IO67 +U6O"Jsf"0R;N#Kn[3Bs4l=O6U>sp])j$Be.0fXDtdl~]eNRK,zgR</E +Ei#e,{6v5pf݀:Au^)"iR=A䶴3DR!r\5l}('H@'D +fBdG0ӥ44<yROx: DbE "Q6?&H$OHx"{Cd#c!"c!OH9DbkcIuZ)$I!r[")MQ1O5OK94LȆ.D<tOI=ey:DV!++1D DJv"NfA$>"A(: endstream endobj 1423 0 obj @@ -6383,22 +6348,80 @@ endobj 1425 0 obj << /D [ 1423 0 R /XYZ 69.866 801.979 null ] >> endobj -582 0 obj -<< /D [ 1423 0 R /XYZ 70.866 771.024 null ] >> +570 0 obj +<< /D [ 1423 0 R /XYZ 70.866 634.62 null ] >> endobj 1422 0 obj -<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +1428 0 obj +<< /Filter /FlateDecode /Length 2866 >> +stream +x]Mo#7X$@ފ^S/R3dK!ı'|4cy$O}yۇE,^{{'u +RDO!.BjϿ?K_4RW)G[?cNKi.Bއ?O-ߑJ; +}&~
o箭:J!fa_G'eҗ5К[d&|آ/Q# + F& "`{/=TTm`PYa": +m#ҏel:_Wr@%?)(xy~oΕu7#nOkN};uɧ~Z_ئUoaNoE-6ٮ4ֈ
o9Q|bt%WVV`S +)#f
~coa>'B0B@CTFuAo%I
c-#Nj+fMnQG.Dpa,[2Cpy'*fIE_lٟeBq<l|Ƈ>֗fqk1Q4?Qk%M"cɫe8]+^C64wpdiJ%ȩ~BmC#G +#:ZB}&%58Hke2ZJ-h1ȢZrutf
rfc[*:UULwW
'ny0HFY=CW1ݓG皇&L7JNxa|\ŗ}_{}|ygq8˘}״t1 +WL竁9k`
h=)])n[`)@@@N--,S`}>A|.az_̥*H4tT8+LX8pH_3j[_ጅkHlz,?^8Оy]6kC
Qa,->CR:k7|Юdr0sqmMDžcQ tJ:6o/iik?1i!&&-7l;.5;6YmTeӡk~* +D7`$l1}Np,qr<Ʀ1tLcy=1,l<fG1Q#?.+kenc&0!|i +5*Z1RCzmWϋok +6r6.6`(/x-il&'/]yu|bB +,q00gȳ(gZqż(ů OiG_8I'*m5^a}E?ŧG<qlsm&)1Q>jF~̱cdM9`q.K&NNpS·j\Gs}jl +ZϮqFY7b~+<5.rA3Cc wiʶ\C%]A {ZЏQo+>_D3鹑@ַSvsH"]H'}nObppY7H$L$M%+k~/zM}wK=+_ +endstream +endobj +1427 0 obj +<< /Type /Page /Contents 1428 0 R /Resources 1426 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1430 0 R >> +endobj +1429 0 obj +<< /D [ 1427 0 R /XYZ 69.866 801.979 null ] >> +endobj +574 0 obj +<< /D [ 1427 0 R /XYZ 70.866 724.916 null ] >> endobj 1426 0 obj +<< /Font << /F50 687 0 R /F15 639 0 R /F55 774 0 R /F34 637 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +1433 0 obj +<< /Filter /FlateDecode /Length 2174 >> +stream +x\͎&S,UJw#-5{%Ha
tlp0>_~^巗כǜ-/z/b8Z_u=7;ιrsm鳠o_Z(\Re_c6]l?7ƞo{}N@*U1#84u<H"$C$lYС|B9=to(<P
ik$Q'JV")+}{-^I\p]˿?/x-(l2LA^Epq +{ &4;4ߢd{Om93\(rEsC0Vi*n߫*P$?o^^Iyi:ߟ<<'hiox:uU&2n̦&$^s2qL4 +IGYSTHLYU +e`99|_4 +BMiN,g1b那0@&pzĢL߇ʄDtܶH<=O$1C!w%)bgJfA+k,J:Z*ϫ?sqRH,p -]u_}7p"NMt[Tk6!QT <Mu Ş])"[yn`ޥhmZ4(Gh1e;kl!J>j
KZTD<ޙn"i8w2eJK*m
Z5*1c)R,"PhzQRǢܛ6Ve)"Fc QȻUzT}t`؏P2G#|+%'iqc{=POw,k(ONtd9=gYK㍙x]",72DX<^^. ݰ +3*&$ב'$h5&O0 +'OHqsyJƫ$On)s<c1E +HΖGx4@dqjBh[i"9Ct=SF<1q +endstream +endobj +1432 0 obj +<< /Type /Page /Contents 1433 0 R /Resources 1431 0 R /MediaBox [ 0 0 595.276 841.89 ] /Parent 1430 0 R >> +endobj +1434 0 obj +<< /D [ 1432 0 R /XYZ 69.866 801.979 null ] >> +endobj +578 0 obj +<< /D [ 1432 0 R /XYZ 70.866 771.024 null ] >> +endobj +582 0 obj +<< /D [ 1432 0 R /XYZ 70.866 572.141 null ] >> +endobj +1431 0 obj +<< /Font << /F50 687 0 R /F15 639 0 R /F34 637 0 R /F55 774 0 R >> /ProcSet [ /PDF /Text ] >> +endobj +1435 0 obj [ 28 [ 525 ] 50 [ 525 ] 75 [ 525 ] 77 [ 525 ] 96 [ 525 ] 112 [ 525 ] ] endobj -1428 0 obj +1437 0 obj << /Filter /FlateDecode /Length 23 >> stream xc````P``a`h`h endstream endobj -1429 0 obj +1438 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1180 >> stream x}[Pew]YҎg/hǒ`/cҖB@MJ/$@B* @@ -6406,31 +6429,31 @@ x}[Pew]YҎg/hǒ`/cҖB@MJ/$@B* zMQjmD[Fee VՆљ҇Ref,m| u4UH҅:uy.(*"=u~E٫Ptt<)E$Agv=BitCCKa&焤>/xTu bݤVDD7](s~sgg,F..Cx/Yb`N2%@* ۡN0TzZxbnA5½waI?OͿ1( endstream endobj -1427 0 obj -<< /Type /FontDescriptor /FontName /ULKPUD+LMMonoLt10-BoldOblique /Flags 4 /FontBBox [ -480 -308 789 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1429 0 R /CIDSet 1428 0 R >> +1436 0 obj +<< /Type /FontDescriptor /FontName /ULKPUD+LMMonoLt10-BoldOblique /Flags 4 /FontBBox [ -480 -308 789 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1438 0 R /CIDSet 1437 0 R >> endobj -1430 0 obj +1439 0 obj << /Filter /FlateDecode /Length 394 >> stream xڍ]k0+.wQMA0BNc&Gh.M/KR0ҧ=_oyXoW<(lRfLYI:D@i96Z`ۢ4MR)̣5Vh'!o;> ˥ja"LTW\|P&9]
+~I>U۹"enMBr}nf.䟬2Xx+~G4G- w'm]98Gz3$6*3ݹD{XC50+&(8m}iW':SOϓfӰixA4\:/VVe۟w7:Zo* endstream endobj 1173 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ULKPUD+LMMonoLt10-BoldOblique /DescendantFonts [ 1431 0 R ] /ToUnicode 1430 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /ULKPUD+LMMonoLt10-BoldOblique /DescendantFonts [ 1440 0 R ] /ToUnicode 1439 0 R >> endobj -1431 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ULKPUD+LMMonoLt10-BoldOblique /FontDescriptor 1427 0 R /W 1426 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1440 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /ULKPUD+LMMonoLt10-BoldOblique /FontDescriptor 1436 0 R /W 1435 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1432 0 obj +1441 0 obj [ 28 [ 531 ] 35 [ 531 531 ] 43 [ 531 531 ] 80 [ 531 ] 85 [ 531 531 ] 92 [ 531 ] ] endobj -1434 0 obj +1443 0 obj << /Filter /FlateDecode /Length 18 >> stream xc``` endstream endobj -1435 0 obj +1444 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1228 >> stream xmTmLSg-ع:
nS @@ -6439,10 +6462,10 @@ xmTmLSg-ع:
nS -zؓf 9!GHjTzerB'7G`̊h65N;?Oq)(n{J̭*;3%7g;Evl~ofd}`;3h]; p֥WϦQY1?`#?=K+44z(}x/Libj#ɿ-ΆH(Gs_klG{y83rno++M#Nng] ?N@!;dz`w8zdhrpJƯ-Ƙ0Vk"Xg/srbpJ/tryhcwo(*Xb^|nbh'w-@ur"bmCo endstream endobj -1433 0 obj -<< /Type /FontDescriptor /FontName /LHFHNR+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1435 0 R /CIDSet 1434 0 R >> +1442 0 obj +<< /Type /FontDescriptor /FontName /LHFHNR+LMMono8-Regular /Flags 4 /FontBBox [ -456 -320 743 1014 ] /Ascent 1014 /CapHeight 611 /Descent -320 /ItalicAngle 0 /StemV 177 /XHeight 431 /FontFile3 1444 0 R /CIDSet 1443 0 R >> endobj -1436 0 obj +1445 0 obj << /Filter /FlateDecode /Length 402 >> stream x}]k0+. @@ -6453,21 +6476,21 @@ x}]k0+. endstream endobj 1167 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LHFHNR+LMMono8-Regular /DescendantFonts [ 1437 0 R ] /ToUnicode 1436 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /LHFHNR+LMMono8-Regular /DescendantFonts [ 1446 0 R ] /ToUnicode 1445 0 R >> endobj -1437 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LHFHNR+LMMono8-Regular /FontDescriptor 1433 0 R /W 1432 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1446 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /LHFHNR+LMMono8-Regular /FontDescriptor 1442 0 R /W 1441 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1438 0 obj +1447 0 obj [ 28 [ 531 ] 43 [ 472 ] 47 [ 590 ] 50 [ 472 ] 59 [ 531 ] 63 [ 590 354 ] 66 [ 295 ] 72 [ 295 ] 75 [ 885 ] 77 [ 590 ] 81 [ 531 ] 84 [ 590 ] 88 [ 295 ] 96 [ 414 ] 98 [ 419 295 ] 104 [ 767 413 ] 109 [ 590 ] 112 [ 561 ] 116 [ 561 ] 499 [ 502 502 ] ] endobj -1440 0 obj +1449 0 obj << /Filter /FlateDecode /Length 27 >> stream xc```T\0ţaÑҀ endstream endobj -1441 0 obj +1450 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2715 >> stream xڝWTW @@ -6483,31 +6506,31 @@ EFOɱp7 MYecWoؠZHMZbĕLv"<*w[ԙG!>Mjh(RU}@督)<އ;¸#
\4xwY}do7hh"kqnׂŬmΖ endstream endobj -1439 0 obj -<< /Type /FontDescriptor /FontName /WEHDSH+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1441 0 R /CIDSet 1440 0 R >> +1448 0 obj +<< /Type /FontDescriptor /FontName /WEHDSH+LMRoman8-Regular /Flags 4 /FontBBox [ -456 -292 1497 1125 ] /Ascent 1125 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 98 /XHeight 431 /FontFile3 1450 0 R /CIDSet 1449 0 R >> endobj -1442 0 obj +1451 0 obj << /Filter /FlateDecode /Length 475 >> stream x}M0=d,+mj{
@-;rٕR$;aqu`u5bQv@ endstream endobj 1166 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WEHDSH+LMRoman8-Regular /DescendantFonts [ 1443 0 R ] /ToUnicode 1442 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /WEHDSH+LMRoman8-Regular /DescendantFonts [ 1452 0 R ] /ToUnicode 1451 0 R >> endobj -1443 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WEHDSH+LMRoman8-Regular /FontDescriptor 1439 0 R /W 1438 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1452 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /WEHDSH+LMRoman8-Regular /FontDescriptor 1448 0 R /W 1447 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1444 0 obj +1453 0 obj [ 82 [ 611 ] ] endobj -1446 0 obj +1455 0 obj << /Filter /FlateDecode /Length 12 >> stream xc` endstream endobj -1447 0 obj +1456 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 510 >> stream xuQoP~/1 RRQHAh!iH/kDjXR! @@ -6516,10 +6539,10 @@ kE>D<y*Q,#ϓ1lj$B;r $m2NFF(x9#rnŹ\nZȷEev]T(¢e:\f&ҚbTUAвefVӾ"\mh3A2UjSpђtQӦؔBq%ii"4hl#/;,gK\yiNt:PeQto\fVC1lTj:TDPcaa;niη(Ww{7?nBaj| =gԊCwc/=OK_Ѝ"¹'=5`ݭ^,U
rhh{=xMӿ1 endstream endobj -1445 0 obj -<< /Type /FontDescriptor /FontName /JHITRX+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1447 0 R /CIDSet 1446 0 R >> +1454 0 obj +<< /Type /FontDescriptor /FontName /JHITRX+LMRoman6-Regular /Flags 4 /FontBBox [ -515 -298 1647 1125 ] /Ascent 1125 /CapHeight 683 /Descent -298 /ItalicAngle 0 /StemV 117 /XHeight 431 /FontFile3 1456 0 R /CIDSet 1455 0 R >> endobj -1448 0 obj +1457 0 obj << /Filter /FlateDecode /Length 361 >> stream x}Qk0+ @@ -6528,21 +6551,21 @@ nF(`N)5oTeOB ȝ=YeIߴXE2Wd,VzFOQY$] endstream endobj 1164 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JHITRX+LMRoman6-Regular /DescendantFonts [ 1449 0 R ] /ToUnicode 1448 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /JHITRX+LMRoman6-Regular /DescendantFonts [ 1458 0 R ] /ToUnicode 1457 0 R >> endobj -1449 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JHITRX+LMRoman6-Regular /FontDescriptor 1445 0 R /W 1444 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1458 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /JHITRX+LMRoman6-Regular /FontDescriptor 1454 0 R /W 1453 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1450 0 obj +1459 0 obj [ 43 [ 591 ] 50 [ 558 ] 66 [ 302 ] 81 [ 636 ] 84 [ 558 ] 96 [ 602 ] 98 [ 458 ] 116 [ 613 ] ] endobj -1452 0 obj +1461 0 obj << /Filter /FlateDecode /Length 21 >> stream xc` endstream endobj -1453 0 obj +1462 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1428 >> stream x}T{LSW1jk+و29AĄ{yHiᶼUۖ"+zA0ahfp?q;dpY-;'_;EEجyyʼ>CSk|=9i@A6c$8p(qD0G @@ -6553,10 +6576,10 @@ u9_cTV]IyYEY*S,7Ф2itFok4tRzSIA!H1R!`^J VE-QCOu~PǓ
kǷd^nvN`ζ_Lu./\Bra~(cSw8UʋI<2:~(u֞
[ĺ}>/96Ό(-wX'XdnhY0,H 3qk/8쳹%-&䗧on1/o.L}Kbf뇆O}
b?5^{P^ݓ]g?0=9-nE;cm&T`R3X|.8C^xOXjN;xJ4[9~ endstream endobj -1451 0 obj -<< /Type /FontDescriptor /FontName /EPLNLQ+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1453 0 R /CIDSet 1452 0 R >> +1460 0 obj +<< /Type /FontDescriptor /FontName /EPLNLQ+LMRomanCaps10-Regular /Flags 4 /FontBBox [ -496 -290 1501 1100 ] /Ascent 1100 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 106 /XHeight 514 /FontFile3 1462 0 R /CIDSet 1461 0 R >> endobj -1454 0 obj +1463 0 obj << /Filter /FlateDecode /Length 404 >> stream xڍ_k0)PVN0BS{lRoi'!+{I;}~KUk-+HXֈy[-'Պ<}M8RslUfx&@bZރN噜gE`փ.j0'7u)@ԣ*.IؘIHp Q\!dI6ey*OLEYH樅<CQ#EqAk @@ -6566,33 +6589,33 @@ xڍ_k0)PVN0BS{lRoi'!+{I;}~KUk-+H endstream endobj 1117 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EPLNLQ+LMRomanCaps10-Regular /DescendantFonts [ 1455 0 R ] /ToUnicode 1454 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EPLNLQ+LMRomanCaps10-Regular /DescendantFonts [ 1464 0 R ] /ToUnicode 1463 0 R >> endobj -1455 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EPLNLQ+LMRomanCaps10-Regular /FontDescriptor 1451 0 R /W 1450 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1464 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EPLNLQ+LMRomanCaps10-Regular /FontDescriptor 1460 0 R /W 1459 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1456 0 obj +1465 0 obj [892.9 0 0 0 0 0 0 0 0 0 0 0 0 0 585.3 ] endobj -1457 0 obj +1466 0 obj [570 0 0 0 0 0 0 0 0 466.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 277.8 777.8 500 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 828.5 580.6 0 0 0 0 0 0 0 528.6 429.2 432.8 520.5 0 0 0 0 344.5 0 0 0 878 600.2 0 0 0 451.2 0 361.1 0 0 0 571.5 490.3 465 ] endobj -1458 0 obj +1467 0 obj [339.3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 404.2 0 0 0 0 706.2 0 0 0 0 0 0 0 0 0 0 579.4 ] endobj -1459 0 obj +1468 0 obj [525 ] endobj -1460 0 obj +1469 0 obj [ 27 [ 843 ] 82 [ 569 ] ] endobj -1462 0 obj +1471 0 obj << /Filter /FlateDecode /Length 15 >> stream xc``` endstream endobj -1463 0 obj +1472 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 639 >> stream xuROav @@ -6602,10 +6625,10 @@ xuROav +s$ۚAWך-2Vk U&o[q|{Zej[]Hp$ɶX endstream endobj -1461 0 obj -<< /Type /FontDescriptor /FontName /QGDJTQ+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1463 0 R /CIDSet 1462 0 R >> +1470 0 obj +<< /Type /FontDescriptor /FontName /QGDJTQ+LMRoman7-Regular /Flags 4 /FontBBox [ -483 -292 1562 1124 ] /Ascent 1124 /CapHeight 683 /Descent -292 /ItalicAngle 0 /StemV 108 /XHeight 431 /FontFile3 1472 0 R /CIDSet 1471 0 R >> endobj -1464 0 obj +1473 0 obj << /Filter /FlateDecode /Length 367 >> stream x}R]k0}ϯ{(nkDb|/Ikcx<\={dW{C @@ -6614,21 +6637,21 @@ x}R]k0}ϯ{(nkDb|/Ikcx<\={dW{C endstream endobj 833 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QGDJTQ+LMRoman7-Regular /DescendantFonts [ 1465 0 R ] /ToUnicode 1464 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QGDJTQ+LMRoman7-Regular /DescendantFonts [ 1474 0 R ] /ToUnicode 1473 0 R >> endobj -1465 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QGDJTQ+LMRoman7-Regular /FontDescriptor 1461 0 R /W 1460 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1474 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QGDJTQ+LMRoman7-Regular /FontDescriptor 1470 0 R /W 1469 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1466 0 obj +1475 0 obj [ 28 [ 481 ] 42 [ 639 444 ] 50 [ 444 ] 54 [ 569 306 ] 59 [ 500 ] 66 [ 239 ] 72 [ 239 ] 77 [ 517 ] 81 [ 500 ] 84 [ 517 ] 96 [ 342 ] 98 [ 383 ] 105 [ 361 500 ] 109 [ 517 ] 116 [ 461 ] ] endobj -1468 0 obj +1477 0 obj << /Filter /FlateDecode /Length 23 >> stream xc```0PPh`X endstream endobj -1469 0 obj +1478 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1832 >> stream xuU}PSW$<[ =VowX% @@ -6640,10 +6663,10 @@ xuU}PSW$<[ =VowX% XGƒU\q5,/K+8 'Zݩt]pM\{ endstream endobj -1467 0 obj -<< /Type /FontDescriptor /FontName /SVBQKK+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1469 0 R /CIDSet 1468 0 R >> +1476 0 obj +<< /Type /FontDescriptor /FontName /SVBQKK+LMSans10-Regular /Flags 4 /FontBBox [ -420 -309 1431 1154 ] /Ascent 1154 /CapHeight 694 /Descent -309 /ItalicAngle 0 /StemV 93 /XHeight 444 /FontFile3 1478 0 R /CIDSet 1477 0 R >> endobj -1470 0 obj +1479 0 obj << /Filter /FlateDecode /Length 447 >> stream x}Ao0$zHJ @@ -6653,21 +6676,21 @@ E*HQ۠jXKĎ_ۓRU)/yl&?^A[op]FF=# endstream endobj 799 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SVBQKK+LMSans10-Regular /DescendantFonts [ 1471 0 R ] /ToUnicode 1470 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SVBQKK+LMSans10-Regular /DescendantFonts [ 1480 0 R ] /ToUnicode 1479 0 R >> endobj -1471 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SVBQKK+LMSans10-Regular /FontDescriptor 1467 0 R /W 1466 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1480 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SVBQKK+LMSans10-Regular /FontDescriptor 1476 0 R /W 1475 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1472 0 obj +1481 0 obj [ 28 [ 525 ] 34 [ 525 ] 42 [ 525 ] 46 [ 525 ] 49 [ 525 525 ] 54 [ 525 ] 58 [ 525 525 ] 65 [ 525 ] 69 [ 525 ] 71 [ 525 ] 74 [ 525 525 525 525 ] 80 [ 525 ] 83 [ 525 ] 90 [ 525 ] 95 [ 525 525 525 ] 104 [ 525 525 ] 108 [ 525 ] 115 [ 525 525 ] ] endobj -1474 0 obj +1483 0 obj << /Filter /FlateDecode /Length 23 >> stream xc``PPJ2px endstream endobj -1475 0 obj +1484 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 3424 >> stream xڍXXWڞ3
%JedVxw낥UAB07 2!!^zNn}V+v{n?>Los}"BC)D2juq+'ũ YٺS&Tng%kDW_sHJ%F`$lIQṲ^p/=$G#?0W31+t%FQSK +!-|=eʌ<M4bڔ)%^g+D+'oTj3٩ъh @@ -6690,10 +6713,10 @@ aPeկ` k|?죘'0IQ"gmBדA2JVgߥ:EX*MdKA{%^ĺxlzF
bRXpq[o'"]呉4="'zJ%ȋIJN=ЗtK^8"wFx}Kյb endstream endobj -1473 0 obj -<< /Type /FontDescriptor /FontName /VLFCMR+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1475 0 R /CIDSet 1474 0 R >> +1482 0 obj +<< /Type /FontDescriptor /FontName /VLFCMR+LMMonoSlant10-Regular /Flags 4 /FontBBox [ -477 -316 786 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle -10 /StemV 175 /XHeight 431 /FontFile3 1484 0 R /CIDSet 1483 0 R >> endobj -1476 0 obj +1485 0 obj << /Filter /FlateDecode /Length 486 >> stream xڍQk@+>!uME5*-*
n$gB̙3}"ԑ#g;jTK @@ -6703,30 +6726,30 @@ xڍQk@+>!uME5*-*
n$gB̙3}"ԑ#g;jTK endstream endobj 798 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VLFCMR+LMMonoSlant10-Regular /DescendantFonts [ 1477 0 R ] /ToUnicode 1476 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /VLFCMR+LMMonoSlant10-Regular /DescendantFonts [ 1486 0 R ] /ToUnicode 1485 0 R >> endobj -1477 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VLFCMR+LMMonoSlant10-Regular /FontDescriptor 1473 0 R /W 1472 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1486 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /VLFCMR+LMMonoSlant10-Regular /FontDescriptor 1482 0 R /W 1481 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1478 0 obj +1487 0 obj [446.4 446.4 0 0 0 0 0 0 0 569.4 569.4 569.4 569.4 569.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 323.4 0 0 0 0 631 0 0 0 0 452.6 ] endobj -1479 0 obj +1488 0 obj [777.8 277.8 0 500 0 0 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 388.9 388.9 277.8 0 0 0 0 0 833.3 ] endobj -1480 0 obj +1489 0 obj [555.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 277.8 0 0 0 0 777.8 0 388.9 388.9 0 777.8 0 0 0 0 500 500 500 500 500 500 500 500 500 500 277.8 0 0 777.8 0 472.2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 555.6 444.4 555.6 444.4 305.6 500 0 277.8 0 0 277.8 833.3 555.6 500 555.6 0 391.7 394.4 388.9 555.6 0 0 527.8 ] endobj -1481 0 obj +1490 0 obj [ 27 [ 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] 155 [ 525 ] 275 [ 525 ] ] endobj -1483 0 obj +1492 0 obj << /Filter /FlateDecode /Length 23 >> stream xc`` endstream endobj -1484 0 obj +1493 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8419 >> stream xڵzy@WD2F1c @@ -6762,10 +6785,10 @@ Pۦ#t W5E endstream endobj -1482 0 obj -<< /Type /FontDescriptor /FontName /DCBFXU+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1484 0 R /CIDSet 1483 0 R >> +1491 0 obj +<< /Type /FontDescriptor /FontName /DCBFXU+LMMono10-Regular /Flags 4 /FontBBox [ -451 -316 731 1016 ] /Ascent 1016 /CapHeight 611 /Descent -316 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1493 0 R /CIDSet 1492 0 R >> endobj -1485 0 obj +1494 0 obj << /Filter /FlateDecode /Length 753 >> stream x}Kk@FE Y(48CC NK4v$$y|S(M 9ǽշMP.xu]}jsMtuUs+.ݽxi|zq=_/U*? @@ -6774,21 +6797,21 @@ wI3/?S8ͽNjl#XWuįn:l8VDG"lӵ]YW"My}h, endstream endobj 774 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DCBFXU+LMMono10-Regular /DescendantFonts [ 1486 0 R ] /ToUnicode 1485 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DCBFXU+LMMono10-Regular /DescendantFonts [ 1495 0 R ] /ToUnicode 1494 0 R >> endobj -1486 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DCBFXU+LMMono10-Regular /FontDescriptor 1482 0 R /W 1481 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1495 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DCBFXU+LMMono10-Regular /FontDescriptor 1491 0 R /W 1490 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1487 0 obj +1496 0 obj [ 27 [ 750 500 ] 34 [ 708 556 ] 42 [ 722 444 ] 46 [ 764 556 ] 49 [ 681 444 500 ] 54 [ 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 ] 69 [ 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 ] 90 [ 778 528 ] 95 [ 736 392 556 394 ] 100 [ 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 ] 120 [ 444 500 ] 125 [ 556 556 ] 317 [ 500 ] ] endobj -1489 0 obj +1498 0 obj << /Filter /FlateDecode /Length 29 >> stream xc``00.|߿o;ƀ endstream endobj -1490 0 obj +1499 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8142 >> stream xڝz XS x1^lYkg,2O2L$!a!L:UKնMx|gg'{wwի%<\b#¼ׇzL( XsvNPK;Жw'mյJW(Jph @@ -6821,10 +6844,10 @@ v9Q:_ vĠ*:, HdnFcIps
qJ)m11n-g"ODN,$x<NG2@|3܄l endstream endobj -1488 0 obj -<< /Type /FontDescriptor /FontName /UGLMJS+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1490 0 R /CIDSet 1489 0 R >> +1497 0 obj +<< /Type /FontDescriptor /FontName /UGLMJS+LMRomanSlant10-Regular /Flags 4 /FontBBox [ -457 -290 1446 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle -10 /StemV 93 /XHeight 431 /FontFile3 1499 0 R /CIDSet 1498 0 R >> endobj -1491 0 obj +1500 0 obj << /Filter /FlateDecode /Length 642 >> stream xڍKk0FE!]SjKyul%cHdc;}ie 9WGW.û0īcWpXż)m'+]xr1+S6ye']m>R\1zӿßÇP0Czw]oc']eS]_7VWQS͚[s-lkSu NDU<7x}}XmL&bl+Н @@ -6832,21 +6855,21 @@ xڍKk0FE!]SjKyul%cHdc;}ie 9WGW.û0īcWp endstream endobj 687 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UGLMJS+LMRomanSlant10-Regular /DescendantFonts [ 1492 0 R ] /ToUnicode 1491 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /UGLMJS+LMRomanSlant10-Regular /DescendantFonts [ 1501 0 R ] /ToUnicode 1500 0 R >> endobj -1492 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UGLMJS+LMRomanSlant10-Regular /FontDescriptor 1488 0 R /W 1487 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1501 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /UGLMJS+LMRomanSlant10-Regular /FontDescriptor 1497 0 R /W 1496 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1493 0 obj +1502 0 obj [ 27 [ 525 525 ] 34 [ 525 525 525 ] 42 [ 525 525 ] 46 [ 525 525 ] 49 [ 525 525 ] 54 [ 525 525 ] 58 [ 525 525 ] 62 [ 525 525 ] 65 [ 525 525 525 525 525 525 525 525 ] 74 [ 525 525 525 525 ] 80 [ 525 525 ] 83 [ 525 525 ] 90 [ 525 525 ] 95 [ 525 525 525 525 ] 104 [ 525 525 ] 108 [ 525 525 ] 111 [ 525 525 525 525 525 525 ] 118 [ 525 525 525 ] ] endobj -1495 0 obj +1504 0 obj << /Filter /FlateDecode /Length 24 >> stream xc``0N6s
endstream endobj -1496 0 obj +1505 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5120 >> stream xڕYy\ڞ 30Fo3홴V-"Zi֭պ &HX.I B6A\pm]nkm[L{~ߙ~ g>ۛcn\~WW\RVhM~[o-$&_=Gp8űøf_zwXk!(~{ S/=;˄Ћc_o:-0(hZ%Jϔ(Y&
U%ib%RedYded* _LP)%a2T)QEJ6I4x$*^LGk$IX )dR,BKrd$UJdEtLI&OH42DժgMM @@ -6875,32 +6898,32 @@ U&x-bs| !=Jm= fs8A&CE9FdUDSؒ;dddC?`x5VAM$_Q%QK?_@${ɺ/t\0 endstream endobj -1494 0 obj -<< /Type /FontDescriptor /FontName /SWTUXA+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1496 0 R /CIDSet 1495 0 R >> +1503 0 obj +<< /Type /FontDescriptor /FontName /SWTUXA+LMMonoLt10-Bold /Flags 4 /FontBBox [ -454 -308 734 1039 ] /Ascent 1039 /CapHeight 611 /Descent -308 /ItalicAngle 0 /StemV 175 /XHeight 431 /FontFile3 1505 0 R /CIDSet 1504 0 R >> endobj -1497 0 obj +1506 0 obj << /Filter /FlateDecode /Length 574 >> stream x}K0YdpB#4/
-ĆF;J_fF"q}#&*7KSx`aYYkU쵱Fwl8_/֦\ڔ}>V3VǛ۟%<ٓ_os"-/ݴ5,眻?FٗF#JQ
>(Iʎ(g'xsm;}^&6zsb5א]4zin*sd)ͥOڧxTLywlk_+VM\֚[ZzWfg:MVSDڨ/:ǪGRgۈ,)4Ј@b"r9ZZAh($4" #" eD~D/P_N$@,'Bf:lFDy.@'z-Ah @:'B.$D$B'AA`b9"P\F&ID~$?"$Q}yIt^`Fyi7>pSqKӸsp9-j[U$Tg endstream endobj 640 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SWTUXA+LMMonoLt10-Bold /DescendantFonts [ 1498 0 R ] /ToUnicode 1497 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /SWTUXA+LMMonoLt10-Bold /DescendantFonts [ 1507 0 R ] /ToUnicode 1506 0 R >> endobj -1498 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SWTUXA+LMMonoLt10-Bold /FontDescriptor 1494 0 R /W 1493 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1507 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /SWTUXA+LMMonoLt10-Bold /FontDescriptor 1503 0 R /W 1502 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1499 0 obj +1508 0 obj [ 27 [ 750 500 ] 34 [ 708 556 500 278 500 500 278 278 722 444 278 278 764 556 ] 49 [ 681 444 500 778 278 653 306 500 500 785 500 ] 62 [ 750 556 333 361 278 514 306 778 528 625 278 ] 74 [ 917 833 750 556 500 ] 80 [ 778 500 500 681 556 389 389 ] 88 [ 278 778 778 528 ] 95 [ 736 392 556 394 278 500 500 500 ] 104 [ 722 389 500 500 750 556 ] 111 [ 750 528 1028 722 750 528 750 528 611 444 500 583 833 ] 125 [ 556 556 ] 199 [ 778 ] 251 [ 444 ] 280 [ 670 ] 284 [ 500 ] 499 [ 472 472 278 278 ] ] endobj -1501 0 obj +1510 0 obj << /Filter /FlateDecode /Length 37 >> stream xc``_ ! endstream endobj -1502 0 obj +1511 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 8649 >> stream xڵzxG @@ -6937,10 +6960,10 @@ K@`cyrڭ2vo}}ZC} P2E,/.(x&$Aj! >),Е_Ujj,uEYV| endstream endobj -1500 0 obj -<< /Type /FontDescriptor /FontName /XEVVKE+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1502 0 R /CIDSet 1501 0 R >> +1509 0 obj +<< /Type /FontDescriptor /FontName /XEVVKE+LMRoman10-Regular /Flags 4 /FontBBox [ -430 -290 1417 1127 ] /Ascent 1127 /CapHeight 683 /Descent -290 /ItalicAngle 0 /StemV 93 /XHeight 431 /FontFile3 1511 0 R /CIDSet 1510 0 R >> endobj -1503 0 obj +1512 0 obj << /Filter /FlateDecode /Length 750 >> stream xڅ_o0)J%T Hh+M @@ -6952,21 +6975,21 @@ xڅ_o0)J%T Hh+M endstream endobj 639 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XEVVKE+LMRoman10-Regular /DescendantFonts [ 1504 0 R ] /ToUnicode 1503 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /XEVVKE+LMRoman10-Regular /DescendantFonts [ 1513 0 R ] /ToUnicode 1512 0 R >> endobj -1504 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XEVVKE+LMRoman10-Regular /FontDescriptor 1500 0 R /W 1499 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1513 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /XEVVKE+LMRoman10-Regular /FontDescriptor 1509 0 R /W 1508 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1505 0 obj +1514 0 obj [ 27 [ 869 559 ] 35 [ 639 ] 42 [ 831 511 ] 46 [ 882 639 ] 49 [ 756 527 575 ] 54 [ 724 351 575 575 ] 59 [ 575 ] 63 [ 639 ] 65 [ 436 319 ] 70 [ 607 692 319 ] 74 [ 1092 958 900 639 575 ] 80 [ 864 575 575 786 639 447 447 ] 90 [ 864 607 ] 95 [ 863 474 639 454 ] 100 [ 575 575 ] 104 [ 800 447 575 575 885 639 ] 112 [ 607 ] 114 [ 831 ] 116 [ 607 ] 118 [ 607 ] 121 [ 575 ] 284 [ 575 ] ] endobj -1507 0 obj +1516 0 obj << /Filter /FlateDecode /Length 28 >> stream xc``0.?0 endstream endobj -1508 0 obj +1517 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5745 >> stream x}YXڞw
2,Y,c"쨨Hݳ,)"JUF-xcj4$\
hLafΞ~~+$ݜhyD87Y[LO<Dh,8q%\7mbK}{!2!}äC)J3,-Fnj1Pʎb'HIǺM6a:E9krЈxrX墱 n)"\!0&e&W2.&0:F<VLU-1ʸhelpc @@ -6991,10 +7014,10 @@ u&H^ #|&d?DP` ȍ=7h+G"k0mhu endstream endobj -1506 0 obj -<< /Type /FontDescriptor /FontName /DJGMOY+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1508 0 R /CIDSet 1507 0 R >> +1515 0 obj +<< /Type /FontDescriptor /FontName /DJGMOY+LMRoman10-Bold /Flags 4 /FontBBox [ -486 -295 1607 1133 ] /Ascent 1133 /CapHeight 686 /Descent -295 /ItalicAngle 0 /StemV 106 /XHeight 444 /FontFile3 1517 0 R /CIDSet 1516 0 R >> endobj -1509 0 obj +1518 0 obj << /Filter /FlateDecode /Length 591 >> stream x}[o0+H!ʼnVVJ @@ -7004,21 +7027,21 @@ m%*>f_u7xlc&:fUq9۽ETt?]Ζ\6Is,W endstream endobj 638 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DJGMOY+LMRoman10-Bold /DescendantFonts [ 1510 0 R ] /ToUnicode 1509 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DJGMOY+LMRoman10-Bold /DescendantFonts [ 1519 0 R ] /ToUnicode 1518 0 R >> endobj -1510 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DJGMOY+LMRoman10-Bold /FontDescriptor 1506 0 R /W 1505 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1519 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DJGMOY+LMRoman10-Bold /FontDescriptor 1515 0 R /W 1514 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1511 0 obj +1520 0 obj [ 27 [ 850 547 ] 34 [ 800 625 ] 42 [ 813 500 313 313 862 625 ] 49 [ 738 513 563 ] 54 [ 707 344 563 563 884 563 ] 63 [ 625 ] 65 [ 419 313 ] 70 [ 594 676 313 ] 74 [ 1067 938 880 625 563 ] 80 [ 845 563 563 769 625 438 438 ] 88 [ 313 ] 90 [ 845 594 ] 95 [ 839 460 625 444 ] 100 [ 563 563 ] 104 [ 782 438 563 563 865 625 ] 111 [ 850 594 1162 813 ] 116 [ 594 ] 118 [ 594 ] 121 [ 563 ] 125 [ 625 ] ] endobj -1513 0 obj +1522 0 obj << /Filter /FlateDecode /Length 25 >> stream xc``0/7_ endstream endobj -1514 0 obj +1523 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 6279 >> stream xڕy \DH213Qu
[qO}" dߑMEDV[^{[vV;ɜ9YD"5nۖ,nCX*t[ӗ{10V$pBiX\ۇc$SXR
#?ٌ @@ -7051,10 +7074,10 @@ O5,_'Kbp /%XhqiqaWD")>X]CRBh5:;dsip{,NHJO*&#Mg@J
b<m6/1ITk&$o/D3(Q&#ꕤB=!qu}3B3Fr[f%d^k.i5!耝'U<C*qY^neVdD' #J02% AN);ME8 !YQP"BB})j6H]ZG4W@&\p{Zv+mt`v_+sMʳf鞙|dMpL1㞅'<Iڋ[QL33}8H]۹&a ~{b'5<XIc)Z`ۤ**pk6F6CL ҔuwmlKs6COFG4J endstream endobj -1512 0 obj -<< /Type /FontDescriptor /FontName /BJFYAB+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1514 0 R /CIDSet 1513 0 R >> +1521 0 obj +<< /Type /FontDescriptor /FontName /BJFYAB+LMRoman12-Bold /Flags 4 /FontBBox [ -476 -289 1577 1137 ] /Ascent 1137 /CapHeight 686 /Descent -289 /ItalicAngle 0 /StemV 104 /XHeight 444 /FontFile3 1523 0 R /CIDSet 1522 0 R >> endobj -1515 0 obj +1524 0 obj << /Filter /FlateDecode /Length 613 >> stream x}[0+sѱmdfz @@ -7065,21 +7088,21 @@ u)h:@.0?2H" T ZH5i<H)֗b yK#K endstream endobj 637 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BJFYAB+LMRoman12-Bold /DescendantFonts [ 1516 0 R ] /ToUnicode 1515 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /BJFYAB+LMRoman12-Bold /DescendantFonts [ 1525 0 R ] /ToUnicode 1524 0 R >> endobj -1516 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BJFYAB+LMRoman12-Bold /FontDescriptor 1512 0 R /W 1511 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1525 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /BJFYAB+LMRoman12-Bold /FontDescriptor 1521 0 R /W 1520 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1517 0 obj +1526 0 obj [ 50 [ 435 ] 72 [ 230 ] 84 [ 502 ] 106 [ 490 ] 116 [ 448 ] ] endobj -1519 0 obj +1528 0 obj << /Filter /FlateDecode /Length 19 >> stream xc` endstream endobj -1520 0 obj +1529 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 835 >> stream xuSmhSg~$mBjiڛ}isSX'j4*$-$FhǘusCu݆3(S
}ؽz9L& @@ -7091,10 +7114,10 @@ JM$p*M )<r dOݟs?O}5cBݕooܗfگ'vQǑRR/^X#lz]u@`vPPif-BdoZ&[[F2ڐV4a! -h)_Oplm,kOW*: }\б vfO endstream endobj -1518 0 obj -<< /Type /FontDescriptor /FontName /QKURIC+LMSans12-Regular /Flags 4 /FontBBox [ -411 -308 1407 1154 ] /Ascent 1154 /CapHeight 694 /Descent -308 /ItalicAngle 0 /StemV 91 /XHeight 444 /FontFile3 1520 0 R /CIDSet 1519 0 R >> +1527 0 obj +<< /Type /FontDescriptor /FontName /QKURIC+LMSans12-Regular /Flags 4 /FontBBox [ -411 -308 1407 1154 ] /Ascent 1154 /CapHeight 694 /Descent -308 /ItalicAngle 0 /StemV 91 /XHeight 444 /FontFile3 1529 0 R /CIDSet 1528 0 R >> endobj -1521 0 obj +1530 0 obj << /Filter /FlateDecode /Length 385 >> stream x}R]k0}ϯ{6~H ec֍6)i$ @@ -7102,21 +7125,21 @@ cғs'm=boAsUj^N2j-+S#o|;XhIQt8RrlT,]bρ endstream endobj 595 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QKURIC+LMSans12-Regular /DescendantFonts [ 1522 0 R ] /ToUnicode 1521 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QKURIC+LMSans12-Regular /DescendantFonts [ 1531 0 R ] /ToUnicode 1530 0 R >> endobj -1522 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QKURIC+LMSans12-Regular /FontDescriptor 1518 0 R /W 1517 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1531 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QKURIC+LMSans12-Regular /FontDescriptor 1527 0 R /W 1526 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1523 0 obj +1532 0 obj [ 28 [ 515 ] 35 [ 515 ] 43 [ 515 515 ] 55 [ 515 ] 59 [ 515 ] 63 [ 515 ] 66 [ 515 ] 68 [ 515 ] 71 [ 515 515 ] 75 [ 515 ] 77 [ 515 ] 81 [ 515 ] 84 [ 515 ] 88 [ 515 ] 96 [ 515 ] 98 [ 515 ] 102 [ 515 ] 105 [ 515 ] 109 [ 515 ] 112 [ 515 ] ] endobj -1525 0 obj +1534 0 obj << /Filter /FlateDecode /Length 23 >> stream xc```ԜѰȥ endstream endobj -1526 0 obj +1535 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 2165 >> stream xڅVTWdB52z3@v @@ -7134,10 +7157,10 @@ y+a mQAeAt6~ endstream endobj -1524 0 obj -<< /Type /FontDescriptor /FontName /EIMLXZ+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1526 0 R /CIDSet 1525 0 R >> +1533 0 obj +<< /Type /FontDescriptor /FontName /EIMLXZ+LMMono12-Regular /Flags 4 /FontBBox [ -444 -311 715 1019 ] /Ascent 1019 /CapHeight 611 /Descent -311 /ItalicAngle 0 /StemV 172 /XHeight 431 /FontFile3 1535 0 R /CIDSet 1534 0 R >> endobj -1527 0 obj +1536 0 obj << /Filter /FlateDecode /Length 464 >> stream x}k0+B(f[m2MN{5c]ҟ;_m 䆒7`8nlЀݓWz2/edmŕAYG$n2{6O§F+
é6!u];ٟw!UrJ_07RbD.Ɣ$rfJ.x3"$GrsCSٕeכO}D/FH2Zvh<EAs @@ -7145,72 +7168,69 @@ x}k0+B(f[m2MN{5c]ҟ;_m 䆒7`8n endstream endobj 594 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EIMLXZ+LMMono12-Regular /DescendantFonts [ 1528 0 R ] /ToUnicode 1527 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /EIMLXZ+LMMono12-Regular /DescendantFonts [ 1537 0 R ] /ToUnicode 1536 0 R >> endobj -1528 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EIMLXZ+LMMono12-Regular /FontDescriptor 1524 0 R /W 1523 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1537 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /EIMLXZ+LMMono12-Regular /FontDescriptor 1533 0 R /W 1532 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1529 0 obj -[ 27 [ 734 490 ] 33 [ 762 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 47 [ 544 ] 50 [ 435 ] 54 [ 639 299 490 490 ] 59 [ 490 ] 63 [ 544 326 353 272 503 299 ] 70 [ 517 612 272 ] 75 [ 816 734 544 ] 81 [ 490 490 ] 84 [ 544 381 381 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 101 [ 490 ] 104 [ 707 381 490 490 ] 109 [ 544 ] 111 [ 734 517 1006 707 734 ] 118 [ 517 ] 121 [ 490 ] ] +1538 0 obj +[ 27 [ 734 490 ] 33 [ 762 ] 35 [ 544 ] 43 [ 435 ] 45 [ 272 ] 47 [ 544 ] 50 [ 435 ] 55 [ 299 490 ] 58 [ 768 490 ] 63 [ 544 326 353 272 503 299 ] 70 [ 517 612 272 ] 75 [ 816 734 544 ] 81 [ 490 490 ] 84 [ 544 381 381 ] 88 [ 272 ] 96 [ 381 ] 98 [ 386 ] 101 [ 490 ] 104 [ 707 381 490 490 ] 109 [ 544 ] 111 [ 734 517 1006 707 734 ] 118 [ 517 ] 121 [ 490 ] ] endobj -1531 0 obj +1540 0 obj << /Filter /FlateDecode /Length 24 >> stream -xc``U{N^Ò +xc``U{N^Ò endstream endobj -1532 0 obj -<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5207 >> -stream -xڭX TW.He;Zeh4j-.
Ԩ"H(tCwC]}oh+.%D#Q'Q$w/g݂d;/3^>}onK D2|7j&2P=s:UhLDVq0RxBx["N*(#/W1=2+${ $eok?-m]¥!!,KɓyiazS&)Wܭ1v+&)Wkn=Z -QjB*eN)C(ݸIJ߰pҠVO*BS+c*RRzU.ըJ*N8QԩT0>j>&tF<"<&.]wr%/+C4ZeJ?65 `Z'!F#Qb"Ax3,b1X@,$^bb)M,#V>*b-%
?"TDN"v" -#bx)N~ybR~4JiPY -W]enF~_,r~KtIU -ꇊ1uD8WB/¶0|V55GB^Sm̉US$f?sM-o;`C2UK̳qv| -mR V -Jᄒ*$N*`Z)4y#\q=eMt^fZ@^nǔx1hR@O
ÑpQ!p8\DVόI"9A:z6\eU5y"?''7pOZ!!8`MԳAµJ.>ɘMX`K<*ax{C' T` -HM|[,IRK7s=OdUYHQ/Xe#;#61~aM ܾ*]N ZZlels1i9 rn(8 NIS'~O*j5'1~~pwGN\% ]yBMl4`(䎆0FϹhA,@J)hR\m
VDG9bKs9lV
-v+[{EC
CnO+D6h8WRd@.nCH8ĉ#y"dզi}ٞꚲ->Ar<g_ֿ5)9YDp'I
6Y(q$b~0T[P[+8jmUz -#
'kN36'qU -lg1 -ܳA1h`[[s;WD$rVW9[~gu`|>[sp5.fQ
tC_BX,5pn(e&_cbpV-- l:N$o^{;>Ԉ7w .]/S0Ceq?W309վSg -/!^xh9tؘhgL]wR;? -Is8T'-Z/fv8~aVR(@zn/ülSNY|u?=c@5~
O܅VjztkeJB2Ɗ0M^\yr_PcKڄxݖ7>3G6q?<ԉeK0c"
h1@u#/ɱ̪LIC4NA?95Yn-JCbȄXuqŹn:y&'Xq\m;gڀ( k0_#Qȋ&Cd>ۈkC=1QIx]"/@[x:%0s/t$u_D.F}Z
.x/ƒwпjNs0U8ry_b-W,k)5e}%h`| -$z!ʊS1\O+[H9K$y4, Ӛ۲mpɧ;G;-),5H]h -p*\#Eb7Awv~"nlS1!\q-٣
ʚ֏ۀOIh`m\ -T3Sd(ݦь>
s=d9i*Yd -t*,v[}Lf+w,"G_СhybWlݧdbI
9han}2$]b_%$:dRd[B9;z8ᆓp>~[cW7i4E]Q͖9a )pzBg]MfLFKXc.Yh6lEsp`SRPݒ]|Ƴv_!]i$Ч]QҪ
zmdm\u\).km}g}65MQ
;f=2X+)ѿWjY$nS+y6`fL{2huurYeeq=^0zV -0)EǮlE.9J>WJr&Eش\{Y)iq1lmDDn
-]Z¸C'R'k
.{c4햩˷aMV-&`f1C#
3`VUsekK(g~>{6 \b_5G%wܥ'ppy9Ͷ,7Dssr/I8 -$ǔՖgUgf( -5@U߱P)Tq*v64a'y*KKi|Hx)[6ݮ`"0_}vG=Uآw<dN9,oLEq$=Ó q[i Xp|(9e<8<E]i桏ǫ1N8Im`c|I/u`7x\p$Fbb։&]XCH僗npN
<ոqӏ)n~Cߞuq`Ҫ[`?xqq\d@9B]4&k*b w-K&?xm235G)F;
\2[E'<.RR*^b'%|۟|}<yJ.VXsBouX*y}Wj\Wp9
_vt~o1UUWz!ΡIq*36/\CQL'HH|\l\$}/S"H4uy3/^0x/ɡ*ڸ9t)? -n NǞ)0.;59;+ɷgٹj3Y$cr/NٽDڽ:Ф.xp[y
ipdDsGź:ٔ-F*3grtIUYs/sZҗ[U\\dI9EGvaMm_m9]hgX@FYNjD''[EyW=`])T[̽E0w3E\[babEv5I1% Дo]ތ3?^|b1zSȄ(v&"p)+g҄pȹG/qp0Ovdq 9 7wB;{A^B8O*Ds5/f^םe>{oٞ])cv8.}|U1{LEtWĿ똷 /V ^PSW%gWFx +1541 0 obj +<< /Subtype /CIDFontType0C /Filter /FlateDecode /Length 5169 >> +stream +xڭX TWm +P*SfqePqA6@7t74tf+*h2FQQKbfndmyesTߪ~}EСH$cr6+#g˃T/Ww+L wD;DĂl(rڿ QFwBT6[]ۗ^BD'X97Ys]qy֬93d+eZuXO([((ۨ⫡)J_$S<^h\ё2PLTJ.Seъ@J \=xV+[h\fΔr,D\䤉vTS 7me-5YR%kBՎcQ_
+48b1xN$gC#b!XJ,#+b%p% 7bp'<Ob+E!B=DA(H"Pj"/GѺ%C$ΐmCY)hgI~d6uڇG
qfvoF0j(èщ|k[8xy)
Ax^ZQX\&pHg#)0$0 ^OQ&Ii`x/SUH +dПVW +LjQs}_,L#i@b'ٕўƅp\3pA_]_[c)ᯭ:
s|91?L8 s$Z={EХReH/Ǵ*b"-M6+ +)0u=@'
QA6"9aVb0D6Ԩhi?x
gL@_ĔJ&n4$;KZ`Z4 +s,5Wpa1y ֖m#*y/UTб:t:;;10MZ-0l_[R,gfq]TQO)ͪ<km(8yK^<fcq)*<
? +}UCjkA03f`y˒3tItBAbY^EKid1-oxKSAC]Iz&i8H~i?Zْ|p%`.g?ڂ7!
[B*d4jm +Pf^zVUp}vkГ'H|%^Y{
KTŰnvbO| wX>\/8 䑬l5ocP$$QsjvVrH铗 +S_p;5= +\+Y)C:{qITBD%'!g5^>p8Pt}+-Pr%H4Z|Oz$-̂=@SR<K9M
PeU|zgWԹ.?(̾~o8lxuppT!nK+d]cz<*/R 4,7쥵1qE2$BI}`\+OF^b%1I t\.:40LpC̗FLNޏ(̵1dۄBnT7pÅ*`38+EW#0s?#HZkp9M?l`oS^j7f#m*gɆz>ȼA?ue0VܷfQ[Qn(O_KB8Ř͠ +cu o#{c;sp 5d^*0' +tq \&ߔm$N=eO?쓫Z6HtO͘h;/C8t`KC(ovrW ]֡"O/}B`5/kf>lnA=v*}u8'Z83djHYsԟ+`}6VC/8:<t>U7,FɎ9nzI'XVo2X4upEEjjU6Zd$I9aien:
"]c^'hEϺk!rv-pSp>Lg)љ2/pQs qN"Kbc30?=phBt'1:C.ȗF["K&l.wY{H@;ٽb!mTZ*.\)A˸s5MMNm(ѿGf4JPlWy&`fS3GҊ<gAatC'` 1RҮ=S9kl#rV|J:8\sj ҤFu9a# pNO*im+G+i_9kwf3*&@g2I8MNW3\U9k2[.P|gIIʿjރGK<w|4ye2@8
ҒaplLIѥu9ٹ!)Dn÷,u}=y +r2^`wݩ +`".Tp)7;-Ͽ;eA`/mO8"vJZkԒj\F`*'CAT6@ +r|093e<XKIJ@MSwt5PM3h=H_+xRCp"&bBm3j} +.ߴ&Gv4EpcX]c'M<$soN/g]5}gio\R̲UM%`Գ~}Sc[\O>hK]K:*ؓ6߶v
ٱsA͟%#x4$>RJ;?Z,%W4|pXVꑼ6%<`PZ[5>2.{NCrWm]:K6Z)E[Nv3ߞ[4rڍb$jAD_`.~@oΕ{S, +28z=0YcN69U<yQkA5 +m}teϴ.4p2Ni̠V{W8`]#lQ6̽M9aB+.G8+11 z1% ДG}34
t?g"0dfc+ +-/Y>( endstream endobj -1530 0 obj -<< /Type /FontDescriptor /FontName /QVISVK+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1532 0 R /CIDSet 1531 0 R >> +1539 0 obj +<< /Type /FontDescriptor /FontName /FTJAXF+LMRoman12-Regular /Flags 4 /FontBBox [ -422 -280 1394 1127 ] /Ascent 1127 /CapHeight 683 /Descent -280 /ItalicAngle 0 /StemV 91 /XHeight 431 /FontFile3 1541 0 R /CIDSet 1540 0 R >> endobj -1533 0 obj -<< /Filter /FlateDecode /Length 569 >> +1542 0 obj +<< /Filter /FlateDecode /Length 564 >> stream -xڅ[0+s1=%3< sXD`ӒM3찂wz7op!{Jvk]pRdnʡRH1F'r/{2]m[Uw&y 拉T3!Ӄ<nᏗ]S*ÝBԖjIL|&Qj)g%VMm삙Jfsjj=ϲ6neU&L^ߜ`ԕW"M~h۫
y6OE-:&Z/,:ZIb$][R"d1<J:&a1T.m-M#J(wr@q% Աv@RGI@=#Q3AA~bU?tO!]R<A[,F)1O^g`Z- 0,(3Lѓa[s`q]PA?2}6J|Oq^gtO/épΰFq4F [qqAksku7މJɏ6ro0KYz +xڅKk0E ];%!AnKb"~$a=<vW=0d/vԕ7ef۶)S$or nSpgwBNYNZK>S2?8X}۔*ýRԖjIL|&/U$?ش]^(YLϵګ%'=b"j~Ƹe~N`$3}sūRB_4I +"4s"6>$Nh=ܾx$G\B]YI]ea>y +NQu:Mt)T.mM#J(wqAq% uo@b$1PG0/ |G)ż-<Auy5RByp)}awb$az?؈AKc6=38%u\':l!}g{~w%Z<k2laZytϟ}t98*ը9'`OAyV{L%KEOW endstream endobj 593 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /QVISVK+LMRoman12-Regular /DescendantFonts [ 1534 0 R ] /ToUnicode 1533 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /FTJAXF+LMRoman12-Regular /DescendantFonts [ 1543 0 R ] /ToUnicode 1542 0 R >> endobj -1534 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /QVISVK+LMRoman12-Regular /FontDescriptor 1530 0 R /W 1529 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1543 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /FTJAXF+LMRoman12-Regular /FontDescriptor 1539 0 R /W 1538 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1535 0 obj +1544 0 obj [ 28 [ 451 ] 43 [ 418 ] 50 [ 418 ] 54 [ 535 287 ] 59 [ 470 ] 65 [ 259 223 ] 71 [ 509 223 ] 75 [ 745 ] 77 [ 484 ] 81 [ 470 ] 83 [ 600 ] 96 [ 320 ] 104 [ 641 340 ] 107 [ 470 ] 109 [ 484 ] 112 [ 432 ] 115 [ 625 ] ] endobj -1537 0 obj +1546 0 obj << /Filter /FlateDecode /Length 23 >> stream xc```PHpe endstream endobj -1538 0 obj +1547 0 obj << /Subtype /CIDFontType0C /Filter /FlateDecode /Length 1752 >> stream xumPwniPbrf-(RED ]1hH@H lZu*(TJQZ[CyWSps?3=Ϟg@86])1id}),0USlZbg؍ͮ
8KXeQĿ&,)k=^>fo}5E;70(z0[m~Ɩp^6Y96&$8xfoFdڬ|ݚo`&V2IJ&l&lb2Zc6cf4טbber,BJFk2v%QuLI0\=G2lL!Ko@LVd+Q-9Ak$k7/pWJ&01>:&yOVjcFi
F8l)tL}Nolecl+mâ0a Xۃe` @@ -7223,10 +7243,10 @@ XpmhXɷW>CQqɩ/ۤ'{O?P@ip-9y|6}4 UD>wFǩ昱Nzq=a?ݑ I]%a#wt^輰|O~EI/ҟm]ٹwB҈P<-R[v2IJ:HIEmHtTE|<U:۹lDʪdJ)I.;nl?j[6BTC<2A$F( endstream endobj -1536 0 obj -<< /Type /FontDescriptor /FontName /YBCNUY+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1538 0 R /CIDSet 1537 0 R >> +1545 0 obj +<< /Type /FontDescriptor /FontName /YBCNUY+LMSans17-Regular /Flags 4 /FontBBox [ -395 -305 1355 1159 ] /Ascent 1159 /CapHeight 694 /Descent -305 /ItalicAngle 0 /StemV 87 /XHeight 431 /FontFile3 1547 0 R /CIDSet 1546 0 R >> endobj -1539 0 obj +1548 0 obj << /Filter /FlateDecode /Length 459 >> stream x}n0<g)]P$V҄44JZMľX @@ -7237,12 +7257,12 @@ wˎڞϝef[r{gwMH<}lݱ~!K/ endstream endobj 592 0 obj -<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YBCNUY+LMSans17-Regular /DescendantFonts [ 1540 0 R ] /ToUnicode 1539 0 R >> +<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /YBCNUY+LMSans17-Regular /DescendantFonts [ 1549 0 R ] /ToUnicode 1548 0 R >> endobj -1540 0 obj -<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YBCNUY+LMSans17-Regular /FontDescriptor 1536 0 R /W 1535 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> +1549 0 obj +<< /Type /Font /Subtype /CIDFontType0 /BaseFont /YBCNUY+LMSans17-Regular /FontDescriptor 1545 0 R /W 1544 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >> endobj -1542 0 obj +1551 0 obj << /Length1 1733 /Length2 9941 /Length3 0 /Filter /FlateDecode /Length 11060 >> stream xڍTo6tRݡ,KtwwwtJHw+R};{\3=3Y4Ya`. @@ -7284,10 +7304,10 @@ WSÎ3j*_$jn~_U9zZo9Y}.''JCuY/ɗUz M+1i)jX<Gt69شhDfƍ+54,aǹ<78Z+Axʼn&{3TIgrNbAg: endstream endobj -1541 0 obj -<< /Type /FontDescriptor /FontName /REYKIW+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /X /Y /a /b /c /comma /d /epsilon /greater /i /less /m /n /period /pi /r /slash /t /x /y /z) /FontFile 1542 0 R >> +1550 0 obj +<< /Type /FontDescriptor /FontName /REYKIW+CMMI10 /Flags 4 /FontBBox [ -32 -250 1048 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet( /X /Y /a /b /c /comma /d /epsilon /greater /i /less /m /n /period /pi /r /slash /t /x /y /z) /FontFile 1551 0 R >> endobj -1544 0 obj +1553 0 obj << /Length1 1456 /Length2 6674 /Length3 0 /Filter /FlateDecode /Length 7664 >> stream xڍtTk6)"]21CHw @@ -7317,10 +7337,10 @@ FɉT-\e>6J,f4_֣R1NNUԧZZABt35UKJ ?l.";g4ڭ0۬EG>Y>z%[pYrzP.I{A@O3qԦLH|*jhA>Sh<etE̓M endstream endobj -1543 0 obj -<< /Type /FontDescriptor /FontName /ZVYJSD+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /i /n /period /y) /FontFile 1544 0 R >> +1552 0 obj +<< /Type /FontDescriptor /FontName /ZVYJSD+CMMI7 /Flags 4 /FontBBox [ -1 -250 1171 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet( /i /n /period /y) /FontFile 1553 0 R >> endobj -1546 0 obj +1555 0 obj << /Length1 1983 /Length2 14698 /Length3 0 /Filter /FlateDecode /Length 15930 >> stream xڍTkgۘζm{ynd5ir56'<{?[}Wk<N'(IUELR FV&>GV @@ -7392,10 +7412,10 @@ AL430ˏyk߄8}w Zpzia=zQhK:>'T*w ^a1CI1
:B .t[D389i&l5[
\XnUL.-֜^ćcpTv_BJY,I\;~w¹q<R-mblk
{K{RA}6{6h=֙wK8A8+fB
!3Xr#lv|(lh9m~q;gUo(ʢ1{aS}sZ3#FK20;?=Y!uy};fG5^u^"RkdOOG,˳Zc_DAh{.酥`ɫzJCۈNu&t"kL endstream endobj -1545 0 obj -<< /Type /FontDescriptor /FontName /TSASKS+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /a /ampersand /b /c /colon /d /e /eight /equal /exclam /f /five /fl /four /g /i /l /m /n /nine /o /one /p /parenleft /parenright /plus /question /r /s /seven /six /t /three /two /u /x /zero) /FontFile 1546 0 R >> +1554 0 obj +<< /Type /FontDescriptor /FontName /TSASKS+CMR10 /Flags 4 /FontBBox [ -40 -250 1009 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /a /ampersand /b /c /colon /d /e /eight /equal /exclam /f /five /fl /four /g /i /l /m /n /nine /o /one /p /parenleft /parenright /plus /question /r /s /seven /six /t /three /two /u /x /zero) /FontFile 1555 0 R >> endobj -1548 0 obj +1557 0 obj << /Length1 1537 /Length2 7420 /Length3 0 /Filter /FlateDecode /Length 8440 >> stream xڍvT\.243 -51C H @@ -7434,10 +7454,10 @@ yhҠ$jJH8b\<Dxԧ14E|=F7{l5Tw?A3:OJjc s{cH1: endstream endobj -1547 0 obj -<< /Type /FontDescriptor /FontName /XLNFQO+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /five /four /i /n /one /parenleft /parenright /s /three /two) /FontFile 1548 0 R >> +1556 0 obj +<< /Type /FontDescriptor /FontName /XLNFQO+CMR7 /Flags 4 /FontBBox [ -27 -250 1122 750 ] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet( /five /four /i /n /one /parenleft /parenright /s /three /two) /FontFile 1557 0 R >> endobj -1550 0 obj +1559 0 obj << /Length1 1588 /Length2 7008 /Length3 0 /Filter /FlateDecode /Length 8070 >> stream xڍxT6š@wH@H݊ShqZHqZܵXBҞ{{gfyf'+Lz @@ -7469,10 +7489,10 @@ M iv*iKv]jsřyp{);5TK;6 CTX{%wg}hshWshq ?Ӹ''YʡOoGhÐ4g|t endstream endobj -1549 0 obj -<< /Type /FontDescriptor /FontName /EZAGZL+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /asteriskmath /bar /infinity /minus /periodcentered /plusminus /radical) /FontFile 1550 0 R >> +1558 0 obj +<< /Type /FontDescriptor /FontName /EZAGZL+CMSY10 /Flags 4 /FontBBox [ -29 -960 1116 775 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet( /angbracketleft /angbracketright /asteriskmath /bar /infinity /minus /periodcentered /plusminus /radical) /FontFile 1559 0 R >> endobj -1552 0 obj +1561 0 obj << /Length1 1416 /Length2 6133 /Length3 0 /Filter /FlateDecode /Length 7101 >> stream xڍtT[5(0-H @@ -7513,10 +7533,10 @@ _ "CQdy)YO()nRTII)2]Q7BfCw;/+ ,
m<8l H)dEhl)Kv=#F8dml<yΩ? Xoj[wxf&/l9-6h_ITBo_giC/EI&3lӻwz?N(Haqf\mc&pݲTDkdl endstream endobj -1551 0 obj -<< /Type /FontDescriptor /FontName /DEGAOD+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /minus /openbullet) /FontFile 1552 0 R >> +1560 0 obj +<< /Type /FontDescriptor /FontName /DEGAOD+CMSY7 /Flags 4 /FontBBox [ -15 -951 1251 782 ] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 49 /XHeight 431 /CharSet( /minus /openbullet) /FontFile 1561 0 R >> endobj -1554 0 obj +1563 0 obj << /Length1 1401 /Length2 5895 /Length3 0 /Filter /FlateDecode /Length 6849 >> stream xڍtTS6EABtHMzB^ҀPH""UDti M:~~Zߙgfgfcf!:4N,RjC `$AaЊ"8M# @@ -7542,88 +7562,91 @@ l/:diAxmiQgwm*ΓC7ˋH<K !O
^v1|k?Ncpvt.:>jsMg}fh A>Egi( oJ*h!cVBԔL4i3$?hA2 endstream endobj -1553 0 obj -<< /Type /FontDescriptor /FontName /DGBCZV+CMTT10 /Flags 4 /FontBBox [ -4 -233 537 696 ] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /visiblespace) /FontFile 1554 0 R >> +1562 0 obj +<< /Type /FontDescriptor /FontName /DGBCZV+CMTT10 /Flags 4 /FontBBox [ -4 -233 537 696 ] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet( /visiblespace) /FontFile 1563 0 R >> endobj 935 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /REYKIW+CMMI10 /FontDescriptor 1541 0 R /FirstChar 25 /LastChar 122 /Widths 1457 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /REYKIW+CMMI10 /FontDescriptor 1550 0 R /FirstChar 25 /LastChar 122 /Widths 1466 0 R >> endobj 876 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /ZVYJSD+CMMI7 /FontDescriptor 1543 0 R /FirstChar 58 /LastChar 121 /Widths 1458 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /ZVYJSD+CMMI7 /FontDescriptor 1552 0 R /FirstChar 58 /LastChar 121 /Widths 1467 0 R >> endobj 775 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /TSASKS+CMR10 /FontDescriptor 1545 0 R /FirstChar 13 /LastChar 120 /Widths 1480 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /TSASKS+CMR10 /FontDescriptor 1554 0 R /FirstChar 13 /LastChar 120 /Widths 1489 0 R >> endobj 793 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /XLNFQO+CMR7 /FontDescriptor 1547 0 R /FirstChar 40 /LastChar 115 /Widths 1478 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /XLNFQO+CMR7 /FontDescriptor 1556 0 R /FirstChar 40 /LastChar 115 /Widths 1487 0 R >> endobj 792 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /EZAGZL+CMSY10 /FontDescriptor 1549 0 R /FirstChar 0 /LastChar 112 /Widths 1479 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /EZAGZL+CMSY10 /FontDescriptor 1558 0 R /FirstChar 0 /LastChar 112 /Widths 1488 0 R >> endobj 964 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /DEGAOD+CMSY7 /FontDescriptor 1551 0 R /FirstChar 0 /LastChar 14 /Widths 1456 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /DEGAOD+CMSY7 /FontDescriptor 1560 0 R /FirstChar 0 /LastChar 14 /Widths 1465 0 R >> endobj 834 0 obj -<< /Type /Font /Subtype /Type1 /BaseFont /DGBCZV+CMTT10 /FontDescriptor 1553 0 R /FirstChar 32 /LastChar 32 /Widths 1459 0 R >> +<< /Type /Font /Subtype /Type1 /BaseFont /DGBCZV+CMTT10 /FontDescriptor 1562 0 R /FirstChar 32 /LastChar 32 /Widths 1468 0 R >> endobj 596 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 586 0 R 633 0 R 684 0 R 731 0 R 766 0 R 771 0 R 777 0 R 781 0 R 785 0 R 789 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 586 0 R 633 0 R 684 0 R 731 0 R 766 0 R 771 0 R 777 0 R 781 0 R 785 0 R 789 0 R ] >> endobj 800 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 795 0 R 802 0 R 806 0 R 810 0 R 814 0 R 818 0 R 822 0 R 826 0 R 830 0 R 836 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 795 0 R 802 0 R 806 0 R 810 0 R 814 0 R 818 0 R 822 0 R 826 0 R 830 0 R 836 0 R ] >> endobj 843 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 840 0 R 845 0 R 849 0 R 853 0 R 857 0 R 861 0 R 865 0 R 869 0 R 873 0 R 878 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 840 0 R 845 0 R 849 0 R 853 0 R 857 0 R 861 0 R 865 0 R 869 0 R 873 0 R 878 0 R ] >> endobj 885 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 882 0 R 887 0 R 891 0 R 895 0 R 899 0 R 903 0 R 907 0 R 911 0 R 915 0 R 919 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 882 0 R 887 0 R 891 0 R 895 0 R 899 0 R 903 0 R 907 0 R 911 0 R 915 0 R 919 0 R ] >> endobj 926 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 923 0 R 928 0 R 932 0 R 937 0 R 941 0 R 945 0 R 949 0 R 953 0 R 957 0 R 961 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 923 0 R 928 0 R 932 0 R 937 0 R 941 0 R 945 0 R 949 0 R 953 0 R 957 0 R 961 0 R ] >> endobj 969 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 966 0 R 971 0 R 975 0 R 979 0 R 983 0 R 987 0 R 991 0 R 995 0 R 999 0 R 1003 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 966 0 R 971 0 R 975 0 R 979 0 R 983 0 R 987 0 R 991 0 R 995 0 R 999 0 R 1003 0 R ] >> endobj 1010 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 1007 0 R 1012 0 R 1016 0 R 1020 0 R 1024 0 R 1028 0 R 1032 0 R 1036 0 R 1040 0 R 1044 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 1007 0 R 1012 0 R 1016 0 R 1020 0 R 1024 0 R 1028 0 R 1032 0 R 1036 0 R 1040 0 R 1044 0 R ] >> endobj 1051 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 1048 0 R 1053 0 R 1057 0 R 1061 0 R 1065 0 R 1069 0 R 1073 0 R 1077 0 R 1081 0 R 1085 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 1048 0 R 1053 0 R 1057 0 R 1061 0 R 1065 0 R 1069 0 R 1073 0 R 1077 0 R 1081 0 R 1085 0 R ] >> endobj 1092 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 1089 0 R 1094 0 R 1098 0 R 1102 0 R 1106 0 R 1110 0 R 1114 0 R 1119 0 R 1123 0 R 1127 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 1089 0 R 1094 0 R 1098 0 R 1102 0 R 1106 0 R 1110 0 R 1114 0 R 1119 0 R 1123 0 R 1127 0 R ] >> endobj 1134 0 obj -<< /Type /Pages /Parent 1555 0 R /Count 10 /Kids [ 1131 0 R 1136 0 R 1140 0 R 1144 0 R 1148 0 R 1152 0 R 1156 0 R 1161 0 R 1170 0 R 1175 0 R ] >> +<< /Type /Pages /Parent 1564 0 R /Count 10 /Kids [ 1131 0 R 1136 0 R 1140 0 R 1144 0 R 1148 0 R 1152 0 R 1156 0 R 1161 0 R 1170 0 R 1175 0 R ] >> endobj 1182 0 obj -<< /Type /Pages /Parent 1556 0 R /Count 10 /Kids [ 1179 0 R 1184 0 R 1188 0 R 1193 0 R 1198 0 R 1202 0 R 1206 0 R 1210 0 R 1214 0 R 1218 0 R ] >> +<< /Type /Pages /Parent 1565 0 R /Count 10 /Kids [ 1179 0 R 1184 0 R 1188 0 R 1193 0 R 1198 0 R 1202 0 R 1206 0 R 1210 0 R 1214 0 R 1218 0 R ] >> endobj 1225 0 obj -<< /Type /Pages /Parent 1556 0 R /Count 10 /Kids [ 1222 0 R 1227 0 R 1231 0 R 1235 0 R 1239 0 R 1243 0 R 1247 0 R 1251 0 R 1255 0 R 1259 0 R ] >> +<< /Type /Pages /Parent 1565 0 R /Count 10 /Kids [ 1222 0 R 1227 0 R 1231 0 R 1235 0 R 1239 0 R 1243 0 R 1247 0 R 1251 0 R 1255 0 R 1259 0 R ] >> endobj 1266 0 obj -<< /Type /Pages /Parent 1556 0 R /Count 10 /Kids [ 1263 0 R 1268 0 R 1272 0 R 1276 0 R 1280 0 R 1284 0 R 1288 0 R 1292 0 R 1296 0 R 1300 0 R ] >> +<< /Type /Pages /Parent 1565 0 R /Count 10 /Kids [ 1263 0 R 1268 0 R 1272 0 R 1276 0 R 1280 0 R 1284 0 R 1288 0 R 1292 0 R 1296 0 R 1300 0 R ] >> endobj 1307 0 obj -<< /Type /Pages /Parent 1556 0 R /Count 10 /Kids [ 1304 0 R 1309 0 R 1313 0 R 1317 0 R 1321 0 R 1325 0 R 1329 0 R 1333 0 R 1337 0 R 1341 0 R ] >> +<< /Type /Pages /Parent 1565 0 R /Count 10 /Kids [ 1304 0 R 1309 0 R 1313 0 R 1317 0 R 1321 0 R 1325 0 R 1329 0 R 1333 0 R 1337 0 R 1341 0 R ] >> endobj 1348 0 obj -<< /Type /Pages /Parent 1556 0 R /Count 10 /Kids [ 1345 0 R 1350 0 R 1354 0 R 1358 0 R 1362 0 R 1366 0 R 1370 0 R 1374 0 R 1378 0 R 1382 0 R ] >> +<< /Type /Pages /Parent 1565 0 R /Count 10 /Kids [ 1345 0 R 1350 0 R 1354 0 R 1358 0 R 1362 0 R 1366 0 R 1370 0 R 1374 0 R 1378 0 R 1382 0 R ] >> endobj 1389 0 obj -<< /Type /Pages /Parent 1556 0 R /Count 10 /Kids [ 1386 0 R 1391 0 R 1395 0 R 1399 0 R 1403 0 R 1407 0 R 1411 0 R 1415 0 R 1419 0 R 1423 0 R ] >> +<< /Type /Pages /Parent 1565 0 R /Count 10 /Kids [ 1386 0 R 1391 0 R 1395 0 R 1399 0 R 1403 0 R 1407 0 R 1411 0 R 1415 0 R 1419 0 R 1423 0 R ] >> endobj -1555 0 obj -<< /Type /Pages /Parent 1557 0 R /Count 100 /Kids [ 596 0 R 800 0 R 843 0 R 885 0 R 926 0 R 969 0 R 1010 0 R 1051 0 R 1092 0 R 1134 0 R ] >> +1430 0 obj +<< /Type /Pages /Parent 1565 0 R /Count 2 /Kids [ 1427 0 R 1432 0 R ] >> endobj -1556 0 obj -<< /Type /Pages /Parent 1557 0 R /Count 60 /Kids [ 1182 0 R 1225 0 R 1266 0 R 1307 0 R 1348 0 R 1389 0 R ] >> +1564 0 obj +<< /Type /Pages /Parent 1566 0 R /Count 100 /Kids [ 596 0 R 800 0 R 843 0 R 885 0 R 926 0 R 969 0 R 1010 0 R 1051 0 R 1092 0 R 1134 0 R ] >> endobj -1557 0 obj -<< /Type /Pages /Count 160 /Kids [ 1555 0 R 1556 0 R ] >> +1565 0 obj +<< /Type /Pages /Parent 1566 0 R /Count 62 /Kids [ 1182 0 R 1225 0 R 1266 0 R 1307 0 R 1348 0 R 1389 0 R 1430 0 R ] >> endobj -1558 0 obj +1566 0 obj +<< /Type /Pages /Count 162 /Kids [ 1564 0 R 1565 0 R ] >> +endobj +1567 0 obj << /Type /Outlines /First 3 0 R /Last 479 0 R /Count 19 >> endobj 583 0 obj @@ -7705,10 +7728,10 @@ endobj << /Title 484 0 R /A 481 0 R /Parent 479 0 R /Next 519 0 R /First 487 0 R /Last 515 0 R /Count -8 >> endobj 479 0 obj -<< /Title 480 0 R /A 477 0 R /Parent 1558 0 R /Prev 475 0 R /First 483 0 R /Last 583 0 R /Count -18 >> +<< /Title 480 0 R /A 477 0 R /Parent 1567 0 R /Prev 475 0 R /First 483 0 R /Last 583 0 R /Count -18 >> endobj 475 0 obj -<< /Title 476 0 R /A 473 0 R /Parent 1558 0 R /Prev 463 0 R /Next 479 0 R >> +<< /Title 476 0 R /A 473 0 R /Parent 1567 0 R /Prev 463 0 R /Next 479 0 R >> endobj 471 0 obj << /Title 472 0 R /A 469 0 R /Parent 463 0 R /Prev 467 0 R >> @@ -7717,22 +7740,22 @@ endobj << /Title 468 0 R /A 465 0 R /Parent 463 0 R /Next 471 0 R >> endobj 463 0 obj -<< /Title 464 0 R /A 461 0 R /Parent 1558 0 R /Prev 455 0 R /Next 475 0 R /First 467 0 R /Last 471 0 R /Count -2 >> +<< /Title 464 0 R /A 461 0 R /Parent 1567 0 R /Prev 455 0 R /Next 475 0 R /First 467 0 R /Last 471 0 R /Count -2 >> endobj 459 0 obj << /Title 460 0 R /A 457 0 R /Parent 455 0 R >> endobj 455 0 obj -<< /Title 456 0 R /A 453 0 R /Parent 1558 0 R /Prev 447 0 R /Next 463 0 R /First 459 0 R /Last 459 0 R /Count -1 >> +<< /Title 456 0 R /A 453 0 R /Parent 1567 0 R /Prev 447 0 R /Next 463 0 R /First 459 0 R /Last 459 0 R /Count -1 >> endobj 451 0 obj << /Title 452 0 R /A 449 0 R /Parent 447 0 R >> endobj 447 0 obj -<< /Title 448 0 R /A 445 0 R /Parent 1558 0 R /Prev 443 0 R /Next 455 0 R /First 451 0 R /Last 451 0 R /Count -1 >> +<< /Title 448 0 R /A 445 0 R /Parent 1567 0 R /Prev 443 0 R /Next 455 0 R /First 451 0 R /Last 451 0 R /Count -1 >> endobj 443 0 obj -<< /Title 444 0 R /A 441 0 R /Parent 1558 0 R /Prev 391 0 R /Next 447 0 R >> +<< /Title 444 0 R /A 441 0 R /Parent 1567 0 R /Prev 391 0 R /Next 447 0 R >> endobj 439 0 obj << /Title 440 0 R /A 437 0 R /Parent 391 0 R /Prev 411 0 R >> @@ -7771,7 +7794,7 @@ endobj << /Title 396 0 R /A 393 0 R /Parent 391 0 R /Next 399 0 R >> endobj 391 0 obj -<< /Title 392 0 R /A 389 0 R /Parent 1558 0 R /Prev 359 0 R /Next 443 0 R /First 395 0 R /Last 439 0 R /Count -6 >> +<< /Title 392 0 R /A 389 0 R /Parent 1567 0 R /Prev 359 0 R /Next 443 0 R /First 395 0 R /Last 439 0 R /Count -6 >> endobj 387 0 obj << /Title 388 0 R /A 385 0 R /Parent 359 0 R /Prev 383 0 R >> @@ -7795,7 +7818,7 @@ endobj << /Title 364 0 R /A 361 0 R /Parent 359 0 R /Next 367 0 R >> endobj 359 0 obj -<< /Title 360 0 R /A 357 0 R /Parent 1558 0 R /Prev 315 0 R /Next 391 0 R /First 363 0 R /Last 387 0 R /Count -7 >> +<< /Title 360 0 R /A 357 0 R /Parent 1567 0 R /Prev 315 0 R /Next 391 0 R /First 363 0 R /Last 387 0 R /Count -7 >> endobj 355 0 obj << /Title 356 0 R /A 353 0 R /Parent 315 0 R /Prev 351 0 R >> @@ -7828,7 +7851,7 @@ endobj << /Title 320 0 R /A 317 0 R /Parent 315 0 R /Next 323 0 R >> endobj 315 0 obj -<< /Title 316 0 R /A 313 0 R /Parent 1558 0 R /Prev 275 0 R /Next 359 0 R /First 319 0 R /Last 355 0 R /Count -10 >> +<< /Title 316 0 R /A 313 0 R /Parent 1567 0 R /Prev 275 0 R /Next 359 0 R /First 319 0 R /Last 355 0 R /Count -10 >> endobj 311 0 obj << /Title 312 0 R /A 309 0 R /Parent 275 0 R /Prev 307 0 R >> @@ -7858,7 +7881,7 @@ endobj << /Title 280 0 R /A 277 0 R /Parent 275 0 R /Next 283 0 R >> endobj 275 0 obj -<< /Title 276 0 R /A 273 0 R /Parent 1558 0 R /Prev 239 0 R /Next 315 0 R /First 279 0 R /Last 311 0 R /Count -9 >> +<< /Title 276 0 R /A 273 0 R /Parent 1567 0 R /Prev 239 0 R /Next 315 0 R /First 279 0 R /Last 311 0 R /Count -9 >> endobj 271 0 obj << /Title 272 0 R /A 269 0 R /Parent 239 0 R /Prev 267 0 R >> @@ -7885,7 +7908,7 @@ endobj << /Title 244 0 R /A 241 0 R /Parent 239 0 R /Next 247 0 R >> endobj 239 0 obj -<< /Title 240 0 R /A 237 0 R /Parent 1558 0 R /Prev 203 0 R /Next 275 0 R /First 243 0 R /Last 271 0 R /Count -8 >> +<< /Title 240 0 R /A 237 0 R /Parent 1567 0 R /Prev 203 0 R /Next 275 0 R /First 243 0 R /Last 271 0 R /Count -8 >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R /Parent 203 0 R /Prev 231 0 R >> @@ -7912,7 +7935,7 @@ endobj << /Title 208 0 R /A 205 0 R /Parent 203 0 R /Next 211 0 R >> endobj 203 0 obj -<< /Title 204 0 R /A 201 0 R /Parent 1558 0 R /Prev 163 0 R /Next 239 0 R /First 207 0 R /Last 235 0 R /Count -8 >> +<< /Title 204 0 R /A 201 0 R /Parent 1567 0 R /Prev 163 0 R /Next 239 0 R /First 207 0 R /Last 235 0 R /Count -8 >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R /Parent 163 0 R /Prev 195 0 R >> @@ -7942,7 +7965,7 @@ endobj << /Title 168 0 R /A 165 0 R /Parent 163 0 R /Next 171 0 R >> endobj 163 0 obj -<< /Title 164 0 R /A 161 0 R /Parent 1558 0 R /Prev 123 0 R /Next 203 0 R /First 167 0 R /Last 199 0 R /Count -9 >> +<< /Title 164 0 R /A 161 0 R /Parent 1567 0 R /Prev 123 0 R /Next 203 0 R /First 167 0 R /Last 199 0 R /Count -9 >> endobj 159 0 obj << /Title 160 0 R /A 157 0 R /Parent 123 0 R /Prev 155 0 R >> @@ -7972,7 +7995,7 @@ endobj << /Title 128 0 R /A 125 0 R /Parent 123 0 R /Next 131 0 R >> endobj 123 0 obj -<< /Title 124 0 R /A 121 0 R /Parent 1558 0 R /Prev 83 0 R /Next 163 0 R /First 127 0 R /Last 159 0 R /Count -9 >> +<< /Title 124 0 R /A 121 0 R /Parent 1567 0 R /Prev 83 0 R /Next 163 0 R /First 127 0 R /Last 159 0 R /Count -9 >> endobj 119 0 obj << /Title 120 0 R /A 117 0 R /Parent 83 0 R /Prev 115 0 R >> @@ -8002,7 +8025,7 @@ endobj << /Title 88 0 R /A 85 0 R /Parent 83 0 R /Next 91 0 R >> endobj 83 0 obj -<< /Title 84 0 R /A 81 0 R /Parent 1558 0 R /Prev 55 0 R /Next 123 0 R /First 87 0 R /Last 119 0 R /Count -9 >> +<< /Title 84 0 R /A 81 0 R /Parent 1567 0 R /Prev 55 0 R /Next 123 0 R /First 87 0 R /Last 119 0 R /Count -9 >> endobj 79 0 obj << /Title 80 0 R /A 77 0 R /Parent 55 0 R /Prev 75 0 R >> @@ -8023,7 +8046,7 @@ endobj << /Title 60 0 R /A 57 0 R /Parent 55 0 R /Next 63 0 R >> endobj 55 0 obj -<< /Title 56 0 R /A 53 0 R /Parent 1558 0 R /Prev 43 0 R /Next 83 0 R /First 59 0 R /Last 79 0 R /Count -6 >> +<< /Title 56 0 R /A 53 0 R /Parent 1567 0 R /Prev 43 0 R /Next 83 0 R /First 59 0 R /Last 79 0 R /Count -6 >> endobj 51 0 obj << /Title 52 0 R /A 49 0 R /Parent 43 0 R /Prev 47 0 R >> @@ -8032,7 +8055,7 @@ endobj << /Title 48 0 R /A 45 0 R /Parent 43 0 R /Next 51 0 R >> endobj 43 0 obj -<< /Title 44 0 R /A 41 0 R /Parent 1558 0 R /Prev 27 0 R /Next 55 0 R /First 47 0 R /Last 51 0 R /Count -2 >> +<< /Title 44 0 R /A 41 0 R /Parent 1567 0 R /Prev 27 0 R /Next 55 0 R /First 47 0 R /Last 51 0 R /Count -2 >> endobj 39 0 obj << /Title 40 0 R /A 37 0 R /Parent 27 0 R /Prev 35 0 R >> @@ -8044,7 +8067,7 @@ endobj << /Title 32 0 R /A 29 0 R /Parent 27 0 R /Next 35 0 R >> endobj 27 0 obj -<< /Title 28 0 R /A 25 0 R /Parent 1558 0 R /Prev 3 0 R /Next 43 0 R /First 31 0 R /Last 39 0 R /Count -3 >> +<< /Title 28 0 R /A 25 0 R /Parent 1567 0 R /Prev 3 0 R /Next 43 0 R /First 31 0 R /Last 39 0 R /Count -3 >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 3 0 R /Prev 19 0 R >> @@ -8062,1627 +8085,1636 @@ endobj << /Title 8 0 R /A 5 0 R /Parent 3 0 R /Next 11 0 R >> endobj 3 0 obj -<< /Title 4 0 R /A 1 0 R /Parent 1558 0 R /Next 27 0 R /First 7 0 R /Last 23 0 R /Count -5 >> +<< /Title 4 0 R /A 1 0 R /Parent 1567 0 R /Next 27 0 R /First 7 0 R /Last 23 0 R /Count -5 >> endobj -1559 0 obj +1568 0 obj << /Names [ (Doc-Start) 591 0 R (Hfootnote.1) 1165 0 R (chapter*.1) 636 0 R (chapter.1) 2 0 R (chapter.10) 274 0 R (chapter.11) 314 0 R (chapter.12) 358 0 R (chapter.13) 390 0 R (chapter.14) 442 0 R (chapter.15) 446 0 R (chapter.16) 454 0 R (chapter.17) 462 0 R (chapter.18) 474 0 R (chapter.19) 478 0 R (chapter.2) 26 0 R (chapter.3) 42 0 R (chapter.4) 54 0 R (chapter.5) 82 0 R (chapter.6) 122 0 R (chapter.7) 162 0 R (chapter.8) 202 0 R (chapter.9) 238 0 R (page.1) 590 0 R (page.10) 791 0 R (page.100) 1177 0 R (page.101) 1181 0 R (page.102) 1186 0 R (page.103) 1190 0 R (page.104) 1195 0 R (page.105) 1200 0 R (page.106) 1204 0 R (page.107) 1208 0 R ] /Limits [ (Doc-Start) (page.107) ] >> endobj -1560 0 obj +1569 0 obj << /Names [ (page.108) 1212 0 R (page.109) 1216 0 R (page.11) 797 0 R (page.110) 1220 0 R (page.111) 1224 0 R (page.112) 1229 0 R (page.113) 1233 0 R (page.114) 1237 0 R (page.115) 1241 0 R (page.116) 1245 0 R (page.117) 1249 0 R (page.118) 1253 0 R (page.119) 1257 0 R (page.12) 804 0 R (page.120) 1261 0 R (page.121) 1265 0 R (page.122) 1270 0 R (page.123) 1274 0 R (page.124) 1278 0 R (page.125) 1282 0 R (page.126) 1286 0 R (page.127) 1290 0 R (page.128) 1294 0 R (page.129) 1298 0 R (page.13) 808 0 R (page.130) 1302 0 R (page.131) 1306 0 R (page.132) 1311 0 R (page.133) 1315 0 R (page.134) 1319 0 R (page.135) 1323 0 R (page.136) 1327 0 R ] /Limits [ (page.108) (page.136) ] >> endobj -1561 0 obj -<< /Names [ (page.137) 1331 0 R (page.138) 1335 0 R (page.139) 1339 0 R (page.14) 812 0 R (page.140) 1343 0 R (page.141) 1347 0 R (page.142) 1352 0 R (page.143) 1356 0 R (page.144) 1360 0 R (page.145) 1364 0 R (page.146) 1368 0 R (page.147) 1372 0 R (page.148) 1376 0 R (page.149) 1380 0 R (page.15) 816 0 R (page.150) 1384 0 R (page.151) 1388 0 R (page.152) 1393 0 R (page.153) 1397 0 R (page.154) 1401 0 R (page.155) 1405 0 R (page.156) 1409 0 R (page.157) 1413 0 R (page.158) 1417 0 R (page.159) 1421 0 R (page.16) 820 0 R (page.160) 1425 0 R (page.17) 824 0 R (page.18) 828 0 R (page.19) 832 0 R (page.2) 635 0 R (page.20) 838 0 R ] /Limits [ (page.137) (page.20) ] >> +1570 0 obj +<< /Names [ (page.137) 1331 0 R (page.138) 1335 0 R (page.139) 1339 0 R (page.14) 812 0 R (page.140) 1343 0 R (page.141) 1347 0 R (page.142) 1352 0 R (page.143) 1356 0 R (page.144) 1360 0 R (page.145) 1364 0 R (page.146) 1368 0 R (page.147) 1372 0 R (page.148) 1376 0 R (page.149) 1380 0 R (page.15) 816 0 R (page.150) 1384 0 R (page.151) 1388 0 R (page.152) 1393 0 R (page.153) 1397 0 R (page.154) 1401 0 R (page.155) 1405 0 R (page.156) 1409 0 R (page.157) 1413 0 R (page.158) 1417 0 R (page.159) 1421 0 R (page.16) 820 0 R (page.160) 1425 0 R (page.161) 1429 0 R (page.162) 1434 0 R (page.17) 824 0 R (page.18) 828 0 R (page.19) 832 0 R ] /Limits [ (page.137) (page.19) ] >> endobj -1562 0 obj -<< /Names [ (page.21) 842 0 R (page.22) 847 0 R (page.23) 851 0 R (page.24) 855 0 R (page.25) 859 0 R (page.26) 863 0 R (page.27) 867 0 R (page.28) 871 0 R (page.29) 875 0 R (page.3) 686 0 R (page.30) 880 0 R (page.31) 884 0 R (page.32) 889 0 R (page.33) 893 0 R (page.34) 897 0 R (page.35) 901 0 R (page.36) 905 0 R (page.37) 909 0 R (page.38) 913 0 R (page.39) 917 0 R (page.4) 733 0 R (page.40) 921 0 R (page.41) 925 0 R (page.42) 930 0 R (page.43) 934 0 R (page.44) 939 0 R (page.45) 943 0 R (page.46) 947 0 R (page.47) 951 0 R (page.48) 955 0 R (page.49) 959 0 R (page.5) 768 0 R ] /Limits [ (page.21) (page.5) ] >> +1571 0 obj +<< /Names [ (page.2) 635 0 R (page.20) 838 0 R (page.21) 842 0 R (page.22) 847 0 R (page.23) 851 0 R (page.24) 855 0 R (page.25) 859 0 R (page.26) 863 0 R (page.27) 867 0 R (page.28) 871 0 R (page.29) 875 0 R (page.3) 686 0 R (page.30) 880 0 R (page.31) 884 0 R (page.32) 889 0 R (page.33) 893 0 R (page.34) 897 0 R (page.35) 901 0 R (page.36) 905 0 R (page.37) 909 0 R (page.38) 913 0 R (page.39) 917 0 R (page.4) 733 0 R (page.40) 921 0 R (page.41) 925 0 R (page.42) 930 0 R (page.43) 934 0 R (page.44) 939 0 R (page.45) 943 0 R (page.46) 947 0 R (page.47) 951 0 R (page.48) 955 0 R ] /Limits [ (page.2) (page.48) ] >> endobj -1563 0 obj -<< /Names [ (page.50) 963 0 R (page.51) 968 0 R (page.52) 973 0 R (page.53) 977 0 R (page.54) 981 0 R (page.55) 985 0 R (page.56) 989 0 R (page.57) 993 0 R (page.58) 997 0 R (page.59) 1001 0 R (page.6) 773 0 R (page.60) 1005 0 R (page.61) 1009 0 R (page.62) 1014 0 R (page.63) 1018 0 R (page.64) 1022 0 R (page.65) 1026 0 R (page.66) 1030 0 R (page.67) 1034 0 R (page.68) 1038 0 R (page.69) 1042 0 R (page.7) 779 0 R (page.70) 1046 0 R (page.71) 1050 0 R (page.72) 1055 0 R (page.73) 1059 0 R (page.74) 1063 0 R (page.75) 1067 0 R (page.76) 1071 0 R (page.77) 1075 0 R (page.78) 1079 0 R (page.79) 1083 0 R ] /Limits [ (page.50) (page.79) ] >> +1572 0 obj +<< /Names [ (page.49) 959 0 R (page.5) 768 0 R (page.50) 963 0 R (page.51) 968 0 R (page.52) 973 0 R (page.53) 977 0 R (page.54) 981 0 R (page.55) 985 0 R (page.56) 989 0 R (page.57) 993 0 R (page.58) 997 0 R (page.59) 1001 0 R (page.6) 773 0 R (page.60) 1005 0 R (page.61) 1009 0 R (page.62) 1014 0 R (page.63) 1018 0 R (page.64) 1022 0 R (page.65) 1026 0 R (page.66) 1030 0 R (page.67) 1034 0 R (page.68) 1038 0 R (page.69) 1042 0 R (page.7) 779 0 R (page.70) 1046 0 R (page.71) 1050 0 R (page.72) 1055 0 R (page.73) 1059 0 R (page.74) 1063 0 R (page.75) 1067 0 R (page.76) 1071 0 R (page.77) 1075 0 R ] /Limits [ (page.49) (page.77) ] >> endobj -1564 0 obj -<< /Names [ (page.8) 783 0 R (page.80) 1087 0 R (page.81) 1091 0 R (page.82) 1096 0 R (page.83) 1100 0 R (page.84) 1104 0 R (page.85) 1108 0 R (page.86) 1112 0 R (page.87) 1116 0 R (page.88) 1121 0 R (page.89) 1125 0 R (page.9) 787 0 R (page.90) 1129 0 R (page.91) 1133 0 R (page.92) 1138 0 R (page.93) 1142 0 R (page.94) 1146 0 R (page.95) 1150 0 R (page.96) 1154 0 R (page.97) 1158 0 R (page.98) 1163 0 R (page.99) 1172 0 R (section.1.1) 6 0 R (section.1.2) 10 0 R (section.1.3) 14 0 R (section.1.4) 18 0 R (section.1.5) 22 0 R (section.10.1) 278 0 R (section.10.2) 282 0 R (section.10.3) 286 0 R (section.10.4) 290 0 R (section.10.5) 294 0 R ] /Limits [ (page.8) (section.10.5) ] >> +1573 0 obj +<< /Names [ (page.78) 1079 0 R (page.79) 1083 0 R (page.8) 783 0 R (page.80) 1087 0 R (page.81) 1091 0 R (page.82) 1096 0 R (page.83) 1100 0 R (page.84) 1104 0 R (page.85) 1108 0 R (page.86) 1112 0 R (page.87) 1116 0 R (page.88) 1121 0 R (page.89) 1125 0 R (page.9) 787 0 R (page.90) 1129 0 R (page.91) 1133 0 R (page.92) 1138 0 R (page.93) 1142 0 R (page.94) 1146 0 R (page.95) 1150 0 R (page.96) 1154 0 R (page.97) 1158 0 R (page.98) 1163 0 R (page.99) 1172 0 R (section.1.1) 6 0 R (section.1.2) 10 0 R (section.1.3) 14 0 R (section.1.4) 18 0 R (section.1.5) 22 0 R (section.10.1) 278 0 R (section.10.2) 282 0 R (section.10.3) 286 0 R ] /Limits [ (page.78) (section.10.3) ] >> endobj -1565 0 obj -<< /Names [ (section.10.6) 298 0 R (section.10.7) 302 0 R (section.10.8) 306 0 R (section.10.9) 310 0 R (section.11.1) 318 0 R (section.11.10) 354 0 R (section.11.2) 322 0 R (section.11.3) 326 0 R (section.11.4) 330 0 R (section.11.5) 334 0 R (section.11.6) 338 0 R (section.11.7) 342 0 R (section.11.8) 346 0 R (section.11.9) 350 0 R (section.12.1) 362 0 R (section.12.2) 366 0 R (section.12.3) 370 0 R (section.12.4) 374 0 R (section.12.5) 378 0 R (section.12.6) 382 0 R (section.12.7) 386 0 R (section.13.1) 394 0 R (section.13.2) 398 0 R (section.13.3) 402 0 R (section.13.4) 406 0 R (section.13.5) 410 0 R (section.13.6) 438 0 R (section.15.1) 450 0 R (section.16.1) 458 0 R (section.17.1) 466 0 R (section.17.2) 470 0 R (section.19.1) 482 0 R ] /Limits [ (section.10.6) (section.19.1) ] >> +1574 0 obj +<< /Names [ (section.10.4) 290 0 R (section.10.5) 294 0 R (section.10.6) 298 0 R (section.10.7) 302 0 R (section.10.8) 306 0 R (section.10.9) 310 0 R (section.11.1) 318 0 R (section.11.10) 354 0 R (section.11.2) 322 0 R (section.11.3) 326 0 R (section.11.4) 330 0 R (section.11.5) 334 0 R (section.11.6) 338 0 R (section.11.7) 342 0 R (section.11.8) 346 0 R (section.11.9) 350 0 R (section.12.1) 362 0 R (section.12.2) 366 0 R (section.12.3) 370 0 R (section.12.4) 374 0 R (section.12.5) 378 0 R (section.12.6) 382 0 R (section.12.7) 386 0 R (section.13.1) 394 0 R (section.13.2) 398 0 R (section.13.3) 402 0 R (section.13.4) 406 0 R (section.13.5) 410 0 R (section.13.6) 438 0 R (section.15.1) 450 0 R (section.16.1) 458 0 R (section.17.1) 466 0 R ] /Limits [ (section.10.4) (section.17.1) ] >> endobj -1566 0 obj -<< /Names [ (section.19.10) 550 0 R (section.19.11) 554 0 R (section.19.12) 558 0 R (section.19.13) 562 0 R (section.19.14) 566 0 R (section.19.15) 570 0 R (section.19.16) 574 0 R (section.19.17) 578 0 R (section.19.18) 582 0 R (section.19.2) 518 0 R (section.19.3) 522 0 R (section.19.4) 526 0 R (section.19.5) 530 0 R (section.19.6) 534 0 R (section.19.7) 538 0 R (section.19.8) 542 0 R (section.19.9) 546 0 R (section.2.1) 30 0 R (section.2.2) 34 0 R (section.2.3) 38 0 R (section.3.1) 46 0 R (section.3.2) 50 0 R (section.4.1) 58 0 R (section.4.2) 62 0 R (section.4.3) 66 0 R (section.4.4) 70 0 R (section.4.5) 74 0 R (section.4.6) 78 0 R (section.5.1) 86 0 R (section.5.2) 90 0 R (section.5.3) 94 0 R (section.5.4) 98 0 R ] /Limits [ (section.19.10) (section.5.4) ] >> +1575 0 obj +<< /Names [ (section.17.2) 470 0 R (section.19.1) 482 0 R (section.19.10) 550 0 R (section.19.11) 554 0 R (section.19.12) 558 0 R (section.19.13) 562 0 R (section.19.14) 566 0 R (section.19.15) 570 0 R (section.19.16) 574 0 R (section.19.17) 578 0 R (section.19.18) 582 0 R (section.19.2) 518 0 R (section.19.3) 522 0 R (section.19.4) 526 0 R (section.19.5) 530 0 R (section.19.6) 534 0 R (section.19.7) 538 0 R (section.19.8) 542 0 R (section.19.9) 546 0 R (section.2.1) 30 0 R (section.2.2) 34 0 R (section.2.3) 38 0 R (section.3.1) 46 0 R (section.3.2) 50 0 R (section.4.1) 58 0 R (section.4.2) 62 0 R (section.4.3) 66 0 R (section.4.4) 70 0 R (section.4.5) 74 0 R (section.4.6) 78 0 R (section.5.1) 86 0 R (section.5.2) 90 0 R ] /Limits [ (section.17.2) (section.5.2) ] >> endobj -1567 0 obj -<< /Names [ (section.5.5) 102 0 R (section.5.6) 106 0 R (section.5.7) 110 0 R (section.5.8) 114 0 R (section.5.9) 118 0 R (section.6.1) 126 0 R (section.6.2) 130 0 R (section.6.3) 134 0 R (section.6.4) 138 0 R (section.6.5) 142 0 R (section.6.6) 146 0 R (section.6.7) 150 0 R (section.6.8) 154 0 R (section.6.9) 158 0 R (section.7.1) 166 0 R (section.7.2) 170 0 R (section.7.3) 174 0 R (section.7.4) 178 0 R (section.7.5) 182 0 R (section.7.6) 186 0 R (section.7.7) 190 0 R (section.7.8) 194 0 R (section.7.9) 198 0 R (section.8.1) 206 0 R (section.8.2) 210 0 R (section.8.3) 214 0 R (section.8.4) 218 0 R (section.8.5) 222 0 R (section.8.6) 226 0 R (section.8.7) 230 0 R (section.8.8) 234 0 R (section.9.1) 242 0 R ] /Limits [ (section.5.5) (section.9.1) ] >> +1576 0 obj +<< /Names [ (section.5.3) 94 0 R (section.5.4) 98 0 R (section.5.5) 102 0 R (section.5.6) 106 0 R (section.5.7) 110 0 R (section.5.8) 114 0 R (section.5.9) 118 0 R (section.6.1) 126 0 R (section.6.2) 130 0 R (section.6.3) 134 0 R (section.6.4) 138 0 R (section.6.5) 142 0 R (section.6.6) 146 0 R (section.6.7) 150 0 R (section.6.8) 154 0 R (section.6.9) 158 0 R (section.7.1) 166 0 R (section.7.2) 170 0 R (section.7.3) 174 0 R (section.7.4) 178 0 R (section.7.5) 182 0 R (section.7.6) 186 0 R (section.7.7) 190 0 R (section.7.8) 194 0 R (section.7.9) 198 0 R (section.8.1) 206 0 R (section.8.2) 210 0 R (section.8.3) 214 0 R (section.8.4) 218 0 R (section.8.5) 222 0 R (section.8.6) 226 0 R (section.8.7) 230 0 R ] /Limits [ (section.5.3) (section.8.7) ] >> endobj -1568 0 obj -<< /Names [ (section.9.2) 246 0 R (section.9.3) 250 0 R (section.9.4) 254 0 R (section.9.5) 258 0 R (section.9.6) 262 0 R (section.9.7) 266 0 R (section.9.8) 270 0 R (subsection.13.5.1) 414 0 R (subsection.13.5.2) 418 0 R (subsection.13.5.3) 422 0 R (subsection.13.5.4) 426 0 R (subsection.13.5.5) 430 0 R (subsection.13.5.6) 434 0 R (subsection.19.1.1) 486 0 R (subsection.19.1.2) 490 0 R (subsection.19.1.3) 494 0 R (subsection.19.1.4) 498 0 R (subsection.19.1.5) 502 0 R (subsection.19.1.6) 506 0 R (subsection.19.1.7) 510 0 R (subsection.19.1.8) 514 0 R ] /Limits [ (section.9.2) (subsection.19.1.8) ] >> +1577 0 obj +<< /Names [ (section.8.8) 234 0 R (section.9.1) 242 0 R (section.9.2) 246 0 R (section.9.3) 250 0 R (section.9.4) 254 0 R (section.9.5) 258 0 R (section.9.6) 262 0 R (section.9.7) 266 0 R (section.9.8) 270 0 R (subsection.13.5.1) 414 0 R (subsection.13.5.2) 418 0 R (subsection.13.5.3) 422 0 R (subsection.13.5.4) 426 0 R (subsection.13.5.5) 430 0 R (subsection.13.5.6) 434 0 R (subsection.19.1.1) 486 0 R (subsection.19.1.2) 490 0 R (subsection.19.1.3) 494 0 R (subsection.19.1.4) 498 0 R (subsection.19.1.5) 502 0 R (subsection.19.1.6) 506 0 R (subsection.19.1.7) 510 0 R (subsection.19.1.8) 514 0 R ] /Limits [ (section.8.8) (subsection.19.1.8) ] >> endobj -1569 0 obj -<< /Kids [ 1559 0 R 1560 0 R 1561 0 R 1562 0 R 1563 0 R 1564 0 R 1565 0 R 1566 0 R 1567 0 R 1568 0 R ] /Limits [ (Doc-Start) (subsection.19.1.8) ] >> +1578 0 obj +<< /Kids [ 1568 0 R 1569 0 R 1570 0 R 1571 0 R 1572 0 R 1573 0 R 1574 0 R 1575 0 R 1576 0 R 1577 0 R ] /Limits [ (Doc-Start) (subsection.19.1.8) ] >> endobj -1570 0 obj -<< /Dests 1569 0 R >> +1579 0 obj +<< /Dests 1578 0 R >> endobj -1571 0 obj -<< /Type /Catalog /Pages 1557 0 R /Outlines 1558 0 R /Names 1570 0 R /PageMode/UseOutlines /OpenAction 585 0 R >> +1580 0 obj +<< /Type /Catalog /Pages 1566 0 R /Outlines 1567 0 R /Names 1579 0 R /PageMode/UseOutlines /OpenAction 585 0 R >> endobj -1572 0 obj -<< /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.15.0) /CreationDate (D:20220514164802+08'00') /ModDate (D:20220514164802+08'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (MiKTeX 22.3 Portable)) >> +1581 0 obj +<< /Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() /Producer (LuaTeX-1.15.0) /CreationDate (D:20220522125721+08'00') /ModDate (D:20220522125721+08'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.15.0 (MiKTeX 22.3 Portable)) >> endobj xref -0 1573 +0 1582 0000000000 65535 f 0000000020 00000 n -0000071182 00000 n -0000816754 00000 n +0000071191 00000 n +0000825484 00000 n 0000000065 00000 n 0000000198 00000 n -0000071243 00000 n -0000816684 00000 n +0000071252 00000 n +0000825414 00000 n 0000000245 00000 n 0000000449 00000 n -0000071303 00000 n -0000816600 00000 n +0000071312 00000 n +0000825330 00000 n 0000000496 00000 n 0000000663 00000 n -0000075042 00000 n -0000816514 00000 n +0000075049 00000 n +0000825244 00000 n 0000000711 00000 n 0000000903 00000 n -0000078516 00000 n -0000816428 00000 n +0000078548 00000 n +0000825158 00000 n 0000000951 00000 n 0000001105 00000 n -0000078578 00000 n -0000816355 00000 n +0000078610 00000 n +0000825085 00000 n 0000001153 00000 n 0000001292 00000 n -0000084490 00000 n -0000816230 00000 n +0000084556 00000 n +0000824960 00000 n 0000001338 00000 n 0000001518 00000 n -0000084552 00000 n -0000816156 00000 n +0000084618 00000 n +0000824886 00000 n 0000001566 00000 n 0000001776 00000 n -0000088861 00000 n -0000816069 00000 n +0000088934 00000 n +0000824799 00000 n 0000001824 00000 n 0000002044 00000 n -0000088923 00000 n -0000815995 00000 n +0000088996 00000 n +0000824725 00000 n 0000002092 00000 n 0000002317 00000 n -0000091665 00000 n -0000815869 00000 n +0000091722 00000 n +0000824599 00000 n 0000002363 00000 n 0000002503 00000 n -0000091727 00000 n -0000815795 00000 n +0000091784 00000 n +0000824525 00000 n 0000002551 00000 n 0000002662 00000 n -0000091789 00000 n -0000815721 00000 n +0000091846 00000 n +0000824451 00000 n 0000002710 00000 n 0000002801 00000 n -0000096843 00000 n -0000815595 00000 n +0000096906 00000 n +0000824325 00000 n 0000002847 00000 n 0000003012 00000 n -0000096905 00000 n -0000815521 00000 n +0000096968 00000 n +0000824251 00000 n 0000003060 00000 n 0000003242 00000 n -0000096967 00000 n -0000815434 00000 n +0000097030 00000 n +0000824164 00000 n 0000003290 00000 n 0000003416 00000 n -0000100302 00000 n -0000815347 00000 n +0000100372 00000 n +0000824077 00000 n 0000003464 00000 n 0000003646 00000 n -0000100364 00000 n -0000815260 00000 n +0000100434 00000 n +0000823990 00000 n 0000003694 00000 n 0000003805 00000 n -0000104551 00000 n -0000815173 00000 n +0000104636 00000 n +0000823903 00000 n 0000003853 00000 n 0000004012 00000 n -0000108988 00000 n -0000815099 00000 n +0000108994 00000 n +0000823829 00000 n 0000004060 00000 n 0000004227 00000 n -0000115707 00000 n -0000814971 00000 n +0000115718 00000 n +0000823701 00000 n 0000004273 00000 n 0000004393 00000 n -0000115769 00000 n -0000814897 00000 n +0000115780 00000 n +0000823627 00000 n 0000004441 00000 n 0000004641 00000 n -0000119206 00000 n -0000814810 00000 n +0000119216 00000 n +0000823540 00000 n 0000004689 00000 n 0000004879 00000 n -0000122261 00000 n -0000814723 00000 n +0000122269 00000 n +0000823453 00000 n 0000004927 00000 n 0000005056 00000 n -0000122323 00000 n -0000814634 00000 n +0000122331 00000 n +0000823364 00000 n 0000005104 00000 n 0000005282 00000 n -0000126185 00000 n -0000814543 00000 n +0000126195 00000 n +0000823273 00000 n 0000005331 00000 n 0000005443 00000 n -0000134673 00000 n -0000814451 00000 n +0000134684 00000 n +0000823181 00000 n 0000005492 00000 n 0000005734 00000 n -0000138852 00000 n -0000814359 00000 n +0000138866 00000 n +0000823089 00000 n 0000005783 00000 n 0000005941 00000 n -0000143153 00000 n -0000814267 00000 n +0000143192 00000 n +0000822997 00000 n 0000005990 00000 n 0000006140 00000 n -0000157319 00000 n -0000814189 00000 n +0000157367 00000 n +0000822919 00000 n 0000006189 00000 n 0000006352 00000 n -0000166043 00000 n -0000814057 00000 n +0000166099 00000 n +0000822787 00000 n 0000006399 00000 n 0000006502 00000 n -0000166106 00000 n -0000813978 00000 n +0000166162 00000 n +0000822708 00000 n 0000006551 00000 n 0000006729 00000 n -0000169067 00000 n -0000813885 00000 n +0000169123 00000 n +0000822615 00000 n 0000006778 00000 n 0000006946 00000 n -0000169130 00000 n -0000813792 00000 n +0000169186 00000 n +0000822522 00000 n 0000006995 00000 n 0000007102 00000 n -0000172720 00000 n -0000813699 00000 n +0000172777 00000 n +0000822429 00000 n 0000007151 00000 n 0000007306 00000 n -0000176849 00000 n -0000813606 00000 n +0000176910 00000 n +0000822336 00000 n 0000007355 00000 n 0000007520 00000 n -0000180722 00000 n -0000813513 00000 n +0000180780 00000 n +0000822243 00000 n 0000007569 00000 n 0000007788 00000 n -0000185639 00000 n -0000813420 00000 n +0000185698 00000 n +0000822150 00000 n 0000007837 00000 n 0000007972 00000 n -0000190297 00000 n -0000813327 00000 n +0000190365 00000 n +0000822057 00000 n 0000008021 00000 n 0000008148 00000 n -0000199675 00000 n -0000813248 00000 n +0000199760 00000 n +0000821978 00000 n 0000008197 00000 n 0000008337 00000 n -0000205142 00000 n -0000813115 00000 n +0000205244 00000 n +0000821845 00000 n 0000008384 00000 n 0000008492 00000 n -0000205205 00000 n -0000813036 00000 n +0000205307 00000 n +0000821766 00000 n 0000008541 00000 n 0000008724 00000 n -0000205268 00000 n -0000812943 00000 n +0000205370 00000 n +0000821673 00000 n 0000008773 00000 n 0000008979 00000 n -0000209720 00000 n -0000812850 00000 n +0000209822 00000 n +0000821580 00000 n 0000009028 00000 n 0000009188 00000 n -0000214071 00000 n -0000812757 00000 n +0000214174 00000 n +0000821487 00000 n 0000009237 00000 n 0000009410 00000 n -0000217081 00000 n -0000812664 00000 n +0000217185 00000 n +0000821394 00000 n 0000009459 00000 n 0000009571 00000 n -0000217144 00000 n -0000812571 00000 n +0000217248 00000 n +0000821301 00000 n 0000009620 00000 n 0000009780 00000 n -0000220721 00000 n -0000812478 00000 n +0000220828 00000 n +0000821208 00000 n 0000009829 00000 n 0000009974 00000 n -0000225317 00000 n -0000812385 00000 n +0000225423 00000 n +0000821115 00000 n 0000010023 00000 n 0000010155 00000 n -0000229470 00000 n -0000812306 00000 n +0000229581 00000 n +0000821036 00000 n 0000010204 00000 n 0000010349 00000 n -0000234677 00000 n -0000812173 00000 n +0000234785 00000 n +0000820903 00000 n 0000010396 00000 n 0000010575 00000 n -0000234740 00000 n -0000812094 00000 n +0000234848 00000 n +0000820824 00000 n 0000010624 00000 n 0000010845 00000 n -0000240662 00000 n -0000812001 00000 n +0000240769 00000 n +0000820731 00000 n 0000010894 00000 n 0000011138 00000 n -0000245260 00000 n -0000811908 00000 n +0000245367 00000 n +0000820638 00000 n 0000011187 00000 n 0000011385 00000 n -0000248814 00000 n -0000811815 00000 n +0000248923 00000 n +0000820545 00000 n 0000011434 00000 n 0000011645 00000 n -0000248877 00000 n -0000811722 00000 n +0000248986 00000 n +0000820452 00000 n 0000011694 00000 n 0000011844 00000 n -0000252632 00000 n -0000811629 00000 n +0000252742 00000 n +0000820359 00000 n 0000011893 00000 n 0000012091 00000 n -0000252695 00000 n -0000811536 00000 n +0000252805 00000 n +0000820266 00000 n 0000012140 00000 n 0000012323 00000 n -0000258555 00000 n -0000811457 00000 n +0000258665 00000 n +0000820187 00000 n 0000012372 00000 n 0000012527 00000 n -0000261481 00000 n -0000811324 00000 n +0000261591 00000 n +0000820054 00000 n 0000012574 00000 n 0000012692 00000 n -0000261544 00000 n -0000811245 00000 n +0000261654 00000 n +0000819975 00000 n 0000012741 00000 n 0000012934 00000 n -0000261607 00000 n -0000811152 00000 n +0000261717 00000 n +0000819882 00000 n 0000012983 00000 n 0000013120 00000 n -0000265425 00000 n -0000811059 00000 n +0000265538 00000 n +0000819789 00000 n 0000013169 00000 n 0000013352 00000 n -0000268431 00000 n -0000810966 00000 n +0000268547 00000 n +0000819696 00000 n 0000013401 00000 n 0000013523 00000 n -0000268494 00000 n -0000810873 00000 n +0000268610 00000 n +0000819603 00000 n 0000013572 00000 n 0000013742 00000 n -0000272028 00000 n -0000810780 00000 n +0000272146 00000 n +0000819510 00000 n 0000013791 00000 n 0000013946 00000 n -0000276652 00000 n -0000810687 00000 n +0000276778 00000 n +0000819417 00000 n 0000013995 00000 n 0000014137 00000 n -0000279964 00000 n -0000810608 00000 n +0000280101 00000 n +0000819338 00000 n 0000014186 00000 n 0000014341 00000 n -0000284393 00000 n -0000810475 00000 n +0000284528 00000 n +0000819205 00000 n 0000014389 00000 n 0000014578 00000 n -0000284457 00000 n -0000810396 00000 n +0000284592 00000 n +0000819126 00000 n 0000014628 00000 n 0000014829 00000 n -0000284521 00000 n -0000810303 00000 n +0000284656 00000 n +0000819033 00000 n 0000014879 00000 n 0000015070 00000 n -0000288756 00000 n -0000810210 00000 n +0000288894 00000 n +0000818940 00000 n 0000015120 00000 n 0000015250 00000 n -0000292535 00000 n -0000810117 00000 n +0000292677 00000 n +0000818847 00000 n 0000015300 00000 n 0000015430 00000 n -0000297002 00000 n -0000810024 00000 n +0000297146 00000 n +0000818754 00000 n 0000015480 00000 n 0000015620 00000 n -0000301040 00000 n -0000809931 00000 n +0000301185 00000 n +0000818661 00000 n 0000015670 00000 n 0000015917 00000 n -0000305679 00000 n -0000809838 00000 n +0000305849 00000 n +0000818568 00000 n 0000015967 00000 n 0000016110 00000 n -0000311110 00000 n -0000809745 00000 n +0000311298 00000 n +0000818475 00000 n 0000016160 00000 n 0000016318 00000 n -0000315888 00000 n -0000809666 00000 n +0000315408 00000 n +0000818396 00000 n 0000016368 00000 n 0000016518 00000 n -0000321020 00000 n -0000809532 00000 n +0000321026 00000 n +0000818262 00000 n 0000016566 00000 n 0000016740 00000 n -0000321084 00000 n -0000809453 00000 n +0000321090 00000 n +0000818183 00000 n 0000016790 00000 n 0000016978 00000 n -0000321148 00000 n -0000809360 00000 n +0000321154 00000 n +0000818090 00000 n 0000017028 00000 n 0000017206 00000 n -0000325408 00000 n -0000809267 00000 n +0000325412 00000 n +0000817997 00000 n 0000017256 00000 n 0000017373 00000 n -0000325472 00000 n -0000809174 00000 n +0000325476 00000 n +0000817904 00000 n 0000017423 00000 n 0000017540 00000 n -0000333352 00000 n -0000809081 00000 n +0000333363 00000 n +0000817811 00000 n 0000017590 00000 n 0000017717 00000 n -0000333416 00000 n -0000808988 00000 n +0000333427 00000 n +0000817718 00000 n 0000017767 00000 n 0000018001 00000 n -0000338054 00000 n -0000808895 00000 n +0000338067 00000 n +0000817625 00000 n 0000018051 00000 n 0000018181 00000 n -0000342927 00000 n -0000808802 00000 n +0000342949 00000 n +0000817532 00000 n 0000018231 00000 n 0000018424 00000 n -0000352357 00000 n -0000808709 00000 n +0000352411 00000 n +0000817439 00000 n 0000018474 00000 n 0000018619 00000 n -0000352421 00000 n -0000808630 00000 n +0000352475 00000 n +0000817360 00000 n 0000018670 00000 n 0000018807 00000 n -0000358421 00000 n -0000808497 00000 n +0000358484 00000 n +0000817227 00000 n 0000018855 00000 n 0000019001 00000 n -0000358485 00000 n -0000808418 00000 n +0000358548 00000 n +0000817148 00000 n 0000019051 00000 n 0000019239 00000 n -0000358549 00000 n -0000808325 00000 n +0000358612 00000 n +0000817055 00000 n 0000019289 00000 n 0000019495 00000 n -0000362246 00000 n -0000808232 00000 n +0000362350 00000 n +0000816962 00000 n 0000019545 00000 n 0000019690 00000 n -0000362309 00000 n -0000808139 00000 n +0000362413 00000 n +0000816869 00000 n 0000019740 00000 n 0000019885 00000 n -0000370619 00000 n -0000808046 00000 n +0000370731 00000 n +0000816776 00000 n 0000019935 00000 n 0000020161 00000 n -0000375749 00000 n -0000807953 00000 n +0000375866 00000 n +0000816683 00000 n 0000020211 00000 n 0000020384 00000 n -0000379818 00000 n -0000807874 00000 n +0000379954 00000 n +0000816604 00000 n 0000020434 00000 n 0000020599 00000 n -0000384090 00000 n -0000807741 00000 n +0000384226 00000 n +0000816471 00000 n 0000020647 00000 n 0000020823 00000 n -0000384154 00000 n -0000807662 00000 n +0000384290 00000 n +0000816392 00000 n 0000020873 00000 n 0000021048 00000 n -0000388101 00000 n -0000807569 00000 n +0000388236 00000 n +0000816299 00000 n 0000021098 00000 n 0000021268 00000 n -0000398565 00000 n -0000807476 00000 n +0000398710 00000 n +0000816206 00000 n 0000021318 00000 n 0000021546 00000 n -0000410418 00000 n -0000807383 00000 n +0000410561 00000 n +0000816113 00000 n 0000021596 00000 n 0000021781 00000 n -0000423243 00000 n -0000807251 00000 n +0000423395 00000 n +0000815981 00000 n 0000021831 00000 n 0000022014 00000 n -0000423307 00000 n -0000807172 00000 n +0000423459 00000 n +0000815902 00000 n 0000022069 00000 n 0000022239 00000 n -0000426982 00000 n -0000807079 00000 n +0000427134 00000 n +0000815809 00000 n 0000022294 00000 n 0000022497 00000 n -0000427046 00000 n -0000806986 00000 n +0000427198 00000 n +0000815716 00000 n 0000022552 00000 n 0000022674 00000 n -0000430937 00000 n -0000806893 00000 n +0000431089 00000 n +0000815623 00000 n 0000022729 00000 n 0000022987 00000 n -0000435354 00000 n -0000806800 00000 n +0000435502 00000 n +0000815530 00000 n 0000023042 00000 n 0000023182 00000 n -0000440870 00000 n -0000806721 00000 n +0000441016 00000 n +0000815451 00000 n 0000023237 00000 n 0000023331 00000 n -0000446047 00000 n -0000806642 00000 n +0000446192 00000 n +0000815372 00000 n 0000023381 00000 n 0000023572 00000 n -0000451245 00000 n -0000806548 00000 n +0000451394 00000 n +0000815278 00000 n 0000023620 00000 n 0000023791 00000 n -0000457372 00000 n -0000806415 00000 n +0000457524 00000 n +0000815145 00000 n 0000023839 00000 n 0000023990 00000 n -0000457436 00000 n -0000806350 00000 n +0000457588 00000 n +0000815080 00000 n 0000024040 00000 n 0000024137 00000 n -0000464973 00000 n -0000806217 00000 n +0000465130 00000 n +0000814947 00000 n 0000024185 00000 n 0000024283 00000 n -0000465037 00000 n -0000806152 00000 n +0000465194 00000 n +0000814882 00000 n 0000024333 00000 n 0000024488 00000 n -0000469414 00000 n -0000806019 00000 n +0000469584 00000 n +0000814749 00000 n 0000024536 00000 n 0000024644 00000 n -0000469478 00000 n -0000805940 00000 n +0000469648 00000 n +0000814670 00000 n 0000024694 00000 n 0000024801 00000 n -0000469542 00000 n -0000805861 00000 n +0000469712 00000 n +0000814591 00000 n 0000024851 00000 n 0000024973 00000 n -0000473112 00000 n -0000805767 00000 n +0000473285 00000 n +0000814497 00000 n 0000025021 00000 n 0000025182 00000 n -0000475500 00000 n -0000805647 00000 n +0000475672 00000 n +0000814377 00000 n 0000025230 00000 n 0000025340 00000 n -0000475564 00000 n -0000805529 00000 n +0000475736 00000 n +0000814259 00000 n 0000025390 00000 n 0000025652 00000 n -0000475628 00000 n -0000805450 00000 n +0000475800 00000 n +0000814180 00000 n 0000025707 00000 n 0000025872 00000 n -0000482478 00000 n -0000805357 00000 n +0000482650 00000 n +0000814087 00000 n 0000025927 00000 n 0000026163 00000 n -0000505073 00000 n -0000805264 00000 n +0000505520 00000 n +0000813994 00000 n 0000026218 00000 n 0000026406 00000 n -0000505137 00000 n -0000805171 00000 n +0000505584 00000 n +0000813901 00000 n 0000026461 00000 n 0000026677 00000 n -0000507724 00000 n -0000805078 00000 n +0000510820 00000 n +0000813808 00000 n 0000026732 00000 n 0000026955 00000 n -0000510946 00000 n -0000804985 00000 n +0000510884 00000 n +0000813715 00000 n 0000027010 00000 n 0000027239 00000 n -0000511010 00000 n -0000804892 00000 n +0000514424 00000 n +0000813622 00000 n 0000027294 00000 n 0000027525 00000 n -0000514119 00000 n -0000804813 00000 n +0000514488 00000 n +0000813543 00000 n 0000027580 00000 n 0000027814 00000 n -0000516817 00000 n -0000804720 00000 n +0000516980 00000 n +0000813450 00000 n 0000027864 00000 n 0000028086 00000 n -0000520282 00000 n -0000804627 00000 n +0000520301 00000 n +0000813357 00000 n 0000028136 00000 n 0000028383 00000 n -0000523167 00000 n -0000804534 00000 n +0000527166 00000 n +0000813264 00000 n 0000028433 00000 n 0000028635 00000 n -0000537320 00000 n -0000804441 00000 n +0000540532 00000 n +0000813171 00000 n 0000028685 00000 n 0000028869 00000 n -0000551770 00000 n -0000804348 00000 n +0000554116 00000 n +0000813078 00000 n 0000028919 00000 n 0000029108 00000 n -0000558732 00000 n -0000804255 00000 n +0000564794 00000 n +0000812985 00000 n 0000029158 00000 n 0000029418 00000 n -0000565905 00000 n -0000804162 00000 n +0000571692 00000 n +0000812892 00000 n 0000029468 00000 n 0000029667 00000 n -0000575894 00000 n -0000804069 00000 n +0000578857 00000 n +0000812799 00000 n 0000029717 00000 n 0000029959 00000 n -0000575958 00000 n -0000803976 00000 n +0000578921 00000 n +0000812706 00000 n 0000030010 00000 n 0000030280 00000 n -0000589023 00000 n -0000803883 00000 n +0000595380 00000 n +0000812613 00000 n 0000030331 00000 n 0000030586 00000 n -0000602826 00000 n -0000803790 00000 n +0000608993 00000 n +0000812520 00000 n 0000030637 00000 n 0000030864 00000 n -0000610112 00000 n -0000803697 00000 n +0000619682 00000 n +0000812427 00000 n 0000030915 00000 n 0000031172 00000 n -0000624389 00000 n -0000803604 00000 n +0000634442 00000 n +0000812334 00000 n 0000031223 00000 n 0000031475 00000 n -0000626693 00000 n -0000803511 00000 n +0000637077 00000 n +0000812241 00000 n 0000031526 00000 n 0000031758 00000 n -0000629537 00000 n -0000803418 00000 n +0000640391 00000 n +0000812148 00000 n 0000031809 00000 n 0000031988 00000 n -0000632420 00000 n -0000803325 00000 n +0000643014 00000 n +0000812055 00000 n 0000032039 00000 n 0000032228 00000 n -0000634401 00000 n -0000803246 00000 n +0000643078 00000 n +0000811976 00000 n 0000032279 00000 n 0000032516 00000 n -0000033762 00000 n -0000033928 00000 n -0000034240 00000 n +0000033759 00000 n +0000033925 00000 n +0000034237 00000 n 0000032568 00000 n -0000034114 00000 n -0000034177 00000 n -0000730856 00000 n -0000727513 00000 n -0000720461 00000 n -0000716678 00000 n -0000800246 00000 n -0000033899 00000 n -0000036463 00000 n -0000036615 00000 n -0000036770 00000 n -0000036925 00000 n -0000037080 00000 n -0000037234 00000 n -0000037387 00000 n -0000037538 00000 n -0000037693 00000 n -0000037848 00000 n -0000038003 00000 n -0000038155 00000 n -0000038310 00000 n -0000038465 00000 n -0000038617 00000 n -0000038771 00000 n -0000038925 00000 n -0000039079 00000 n -0000039232 00000 n -0000039387 00000 n -0000039541 00000 n -0000039693 00000 n -0000039848 00000 n -0000040002 00000 n -0000040157 00000 n -0000040312 00000 n -0000040467 00000 n -0000040622 00000 n -0000040777 00000 n -0000040932 00000 n -0000043777 00000 n -0000043929 00000 n -0000044083 00000 n -0000044238 00000 n -0000041213 00000 n -0000036065 00000 n -0000034351 00000 n -0000041087 00000 n -0000041150 00000 n -0000714487 00000 n -0000706287 00000 n -0000698648 00000 n -0000687829 00000 n -0000036202 00000 n -0000044393 00000 n -0000044547 00000 n -0000044701 00000 n -0000044854 00000 n -0000045009 00000 n -0000045164 00000 n -0000045318 00000 n -0000045470 00000 n -0000045625 00000 n -0000045780 00000 n -0000045935 00000 n -0000046089 00000 n -0000046244 00000 n -0000046399 00000 n -0000046553 00000 n -0000046708 00000 n -0000046863 00000 n -0000047015 00000 n -0000047170 00000 n -0000047324 00000 n -0000047478 00000 n -0000047633 00000 n -0000047788 00000 n -0000047943 00000 n -0000048097 00000 n -0000048252 00000 n -0000048404 00000 n -0000048559 00000 n -0000048712 00000 n -0000048867 00000 n -0000049021 00000 n -0000049176 00000 n -0000049331 00000 n -0000049485 00000 n -0000049640 00000 n -0000049793 00000 n -0000049948 00000 n -0000050101 00000 n -0000053047 00000 n -0000053203 00000 n -0000053359 00000 n -0000050318 00000 n -0000043283 00000 n -0000041324 00000 n -0000050255 00000 n -0000680863 00000 n -0000043420 00000 n -0000053513 00000 n -0000053668 00000 n -0000053823 00000 n -0000053977 00000 n -0000054129 00000 n -0000054284 00000 n -0000054440 00000 n -0000054596 00000 n -0000054752 00000 n -0000054908 00000 n -0000055064 00000 n -0000055220 00000 n -0000055376 00000 n -0000055532 00000 n -0000055689 00000 n -0000055841 00000 n -0000055996 00000 n -0000056152 00000 n -0000056308 00000 n -0000056464 00000 n -0000056620 00000 n -0000056776 00000 n -0000056931 00000 n -0000057083 00000 n -0000057239 00000 n -0000057395 00000 n -0000057551 00000 n -0000057707 00000 n -0000057863 00000 n -0000058025 00000 n -0000058187 00000 n -0000058348 00000 n -0000058509 00000 n -0000058671 00000 n -0000058832 00000 n -0000058988 00000 n -0000059140 00000 n -0000059291 00000 n -0000062029 00000 n -0000062182 00000 n -0000062337 00000 n -0000059507 00000 n -0000052561 00000 n -0000050429 00000 n -0000059444 00000 n -0000052698 00000 n -0000062490 00000 n -0000062646 00000 n -0000062802 00000 n -0000062955 00000 n -0000063108 00000 n -0000063263 00000 n -0000063425 00000 n -0000063587 00000 n -0000063749 00000 n -0000063911 00000 n -0000064072 00000 n -0000064233 00000 n -0000064395 00000 n -0000064556 00000 n -0000064712 00000 n -0000064868 00000 n -0000065024 00000 n -0000065180 00000 n -0000065336 00000 n -0000065492 00000 n -0000065648 00000 n -0000065804 00000 n -0000065961 00000 n -0000066118 00000 n -0000066274 00000 n -0000066429 00000 n -0000066585 00000 n -0000066741 00000 n -0000066898 00000 n -0000067055 00000 n -0000067275 00000 n -0000061607 00000 n -0000059618 00000 n -0000067212 00000 n -0000061744 00000 n -0000071365 00000 n -0000070998 00000 n -0000067386 00000 n -0000071119 00000 n -0000670739 00000 n -0000799524 00000 n -0000075104 00000 n -0000074858 00000 n -0000071502 00000 n -0000074979 00000 n -0000078640 00000 n -0000078332 00000 n -0000075215 00000 n -0000078453 00000 n -0000080554 00000 n -0000080370 00000 n -0000078764 00000 n -0000080491 00000 n -0000084614 00000 n -0000084306 00000 n -0000080665 00000 n -0000084427 00000 n -0000799813 00000 n -0000799669 00000 n -0000088985 00000 n -0000088677 00000 n -0000084764 00000 n -0000088798 00000 n -0000659374 00000 n -0000654298 00000 n -0000800399 00000 n -0000091851 00000 n -0000091481 00000 n -0000089161 00000 n -0000091602 00000 n -0000093498 00000 n -0000093314 00000 n -0000091988 00000 n -0000093435 00000 n -0000097029 00000 n -0000096659 00000 n -0000093648 00000 n -0000096780 00000 n -0000100426 00000 n -0000100118 00000 n -0000097166 00000 n -0000100239 00000 n -0000104613 00000 n -0000104367 00000 n -0000100589 00000 n -0000104488 00000 n -0000109050 00000 n -0000108804 00000 n -0000104776 00000 n -0000108925 00000 n -0000112287 00000 n -0000112103 00000 n -0000109213 00000 n -0000112224 00000 n -0000115831 00000 n -0000115523 00000 n -0000112424 00000 n -0000115644 00000 n -0000650917 00000 n -0000800101 00000 n -0000119268 00000 n -0000119022 00000 n -0000115968 00000 n -0000119143 00000 n -0000122385 00000 n -0000122077 00000 n -0000119431 00000 n -0000122198 00000 n -0000800552 00000 n -0000126248 00000 n -0000126001 00000 n -0000122548 00000 n -0000126122 00000 n -0000130522 00000 n -0000130338 00000 n -0000126424 00000 n -0000130459 00000 n -0000134736 00000 n -0000134489 00000 n -0000130672 00000 n -0000134610 00000 n -0000138915 00000 n -0000138668 00000 n -0000134912 00000 n -0000138789 00000 n -0000143216 00000 n -0000142969 00000 n -0000139078 00000 n -0000143090 00000 n -0000148389 00000 n -0000148205 00000 n -0000143366 00000 n -0000148326 00000 n -0000154054 00000 n -0000153870 00000 n -0000148552 00000 n -0000153991 00000 n -0000157382 00000 n -0000157135 00000 n -0000154217 00000 n -0000157256 00000 n -0000799379 00000 n -0000161176 00000 n -0000160992 00000 n -0000157558 00000 n -0000161113 00000 n -0000162798 00000 n -0000162614 00000 n -0000161339 00000 n -0000162735 00000 n -0000800705 00000 n -0000166169 00000 n -0000165859 00000 n -0000162922 00000 n -0000165980 00000 n -0000169193 00000 n -0000168883 00000 n -0000166306 00000 n -0000169004 00000 n -0000172783 00000 n -0000172536 00000 n -0000169343 00000 n -0000172657 00000 n -0000176912 00000 n -0000176665 00000 n -0000172946 00000 n -0000176786 00000 n -0000180785 00000 n -0000180538 00000 n -0000177062 00000 n -0000180659 00000 n -0000185702 00000 n -0000185455 00000 n -0000180948 00000 n -0000185576 00000 n -0000190359 00000 n -0000190113 00000 n -0000185865 00000 n -0000190234 00000 n -0000196238 00000 n -0000196054 00000 n -0000190522 00000 n -0000196175 00000 n -0000199738 00000 n -0000199491 00000 n -0000196388 00000 n -0000199612 00000 n -0000202823 00000 n -0000202639 00000 n -0000199914 00000 n -0000202760 00000 n -0000800858 00000 n -0000205331 00000 n -0000204958 00000 n -0000202986 00000 n -0000205079 00000 n -0000209783 00000 n -0000209536 00000 n -0000205468 00000 n -0000209657 00000 n -0000799233 00000 n -0000214134 00000 n -0000213887 00000 n -0000209972 00000 n -0000214008 00000 n -0000217207 00000 n -0000216897 00000 n -0000214310 00000 n -0000217018 00000 n -0000220784 00000 n -0000220537 00000 n -0000217383 00000 n -0000220658 00000 n -0000225380 00000 n -0000225133 00000 n -0000220947 00000 n -0000225254 00000 n -0000229533 00000 n -0000229286 00000 n -0000225543 00000 n -0000229407 00000 n -0000232480 00000 n -0000232296 00000 n -0000229709 00000 n -0000232417 00000 n -0000234803 00000 n -0000234493 00000 n -0000232643 00000 n -0000234614 00000 n -0000799958 00000 n -0000240725 00000 n -0000240478 00000 n -0000234953 00000 n -0000240599 00000 n -0000801011 00000 n -0000245323 00000 n -0000245076 00000 n -0000240966 00000 n -0000245197 00000 n -0000248940 00000 n -0000248630 00000 n -0000245538 00000 n -0000248751 00000 n -0000252758 00000 n -0000252448 00000 n -0000249116 00000 n -0000252569 00000 n -0000258618 00000 n -0000258371 00000 n -0000252934 00000 n -0000258492 00000 n -0000261670 00000 n -0000261297 00000 n -0000258807 00000 n -0000261418 00000 n -0000265488 00000 n -0000265241 00000 n -0000261820 00000 n -0000265362 00000 n -0000268557 00000 n -0000268247 00000 n -0000265664 00000 n -0000268368 00000 n -0000272091 00000 n -0000271842 00000 n -0000268720 00000 n -0000271964 00000 n -0000276716 00000 n -0000276463 00000 n -0000272254 00000 n -0000276587 00000 n -0000280028 00000 n -0000279774 00000 n -0000276880 00000 n -0000279899 00000 n -0000801165 00000 n -0000281828 00000 n -0000281638 00000 n -0000280205 00000 n -0000281763 00000 n -0000284585 00000 n -0000284203 00000 n -0000281992 00000 n -0000284328 00000 n -0000288820 00000 n -0000288566 00000 n -0000284723 00000 n -0000288691 00000 n -0000292599 00000 n -0000292345 00000 n -0000288971 00000 n -0000292470 00000 n -0000297066 00000 n -0000296812 00000 n -0000292776 00000 n -0000296937 00000 n -0000301104 00000 n -0000300850 00000 n -0000297243 00000 n -0000300975 00000 n -0000305743 00000 n -0000305489 00000 n -0000301268 00000 n -0000305614 00000 n -0000311174 00000 n -0000310920 00000 n -0000305894 00000 n -0000311045 00000 n -0000315952 00000 n -0000315698 00000 n -0000311338 00000 n -0000315823 00000 n -0000318457 00000 n -0000318267 00000 n -0000316103 00000 n -0000318392 00000 n -0000801329 00000 n -0000321212 00000 n -0000320830 00000 n -0000318595 00000 n -0000320955 00000 n -0000325536 00000 n -0000325218 00000 n -0000321350 00000 n -0000325343 00000 n -0000329607 00000 n -0000329417 00000 n -0000325713 00000 n -0000329542 00000 n -0000333479 00000 n -0000333162 00000 n -0000329758 00000 n -0000333287 00000 n -0000338118 00000 n -0000337864 00000 n -0000333643 00000 n -0000337989 00000 n -0000342991 00000 n -0000342737 00000 n -0000338269 00000 n -0000342862 00000 n -0000347684 00000 n -0000347494 00000 n -0000343142 00000 n -0000347619 00000 n -0000352485 00000 n -0000352167 00000 n -0000347822 00000 n -0000352292 00000 n +0000034111 00000 n +0000034174 00000 n +0000739486 00000 n +0000736143 00000 n +0000729138 00000 n +0000725355 00000 n +0000808876 00000 n +0000033896 00000 n +0000036460 00000 n +0000036612 00000 n +0000036767 00000 n +0000036922 00000 n +0000037077 00000 n +0000037231 00000 n +0000037384 00000 n +0000037535 00000 n +0000037690 00000 n +0000037845 00000 n +0000038000 00000 n +0000038152 00000 n +0000038307 00000 n +0000038462 00000 n +0000038614 00000 n +0000038768 00000 n +0000038922 00000 n +0000039076 00000 n +0000039229 00000 n +0000039384 00000 n +0000039538 00000 n +0000039690 00000 n +0000039845 00000 n +0000039999 00000 n +0000040154 00000 n +0000040309 00000 n +0000040464 00000 n +0000040619 00000 n +0000040774 00000 n +0000040929 00000 n +0000043774 00000 n +0000043926 00000 n +0000044080 00000 n +0000044235 00000 n +0000041210 00000 n +0000036062 00000 n +0000034348 00000 n +0000041084 00000 n +0000041147 00000 n +0000723164 00000 n +0000714964 00000 n +0000707325 00000 n +0000696506 00000 n +0000036199 00000 n +0000044390 00000 n +0000044544 00000 n +0000044698 00000 n +0000044851 00000 n +0000045006 00000 n +0000045161 00000 n +0000045315 00000 n +0000045467 00000 n +0000045622 00000 n +0000045777 00000 n +0000045932 00000 n +0000046086 00000 n +0000046241 00000 n +0000046396 00000 n +0000046550 00000 n +0000046705 00000 n +0000046860 00000 n +0000047012 00000 n +0000047167 00000 n +0000047321 00000 n +0000047475 00000 n +0000047630 00000 n +0000047785 00000 n +0000047940 00000 n +0000048094 00000 n +0000048249 00000 n +0000048401 00000 n +0000048556 00000 n +0000048709 00000 n +0000048864 00000 n +0000049018 00000 n +0000049173 00000 n +0000049328 00000 n +0000049482 00000 n +0000049637 00000 n +0000049790 00000 n +0000049945 00000 n +0000050098 00000 n +0000053044 00000 n +0000053200 00000 n +0000053356 00000 n +0000050315 00000 n +0000043280 00000 n +0000041321 00000 n +0000050252 00000 n +0000689540 00000 n +0000043417 00000 n +0000053510 00000 n +0000053665 00000 n +0000053820 00000 n +0000053974 00000 n +0000054126 00000 n +0000054281 00000 n +0000054437 00000 n +0000054593 00000 n +0000054749 00000 n +0000054905 00000 n +0000055061 00000 n +0000055217 00000 n +0000055373 00000 n +0000055529 00000 n +0000055686 00000 n +0000055838 00000 n +0000055993 00000 n +0000056149 00000 n +0000056305 00000 n +0000056461 00000 n +0000056617 00000 n +0000056773 00000 n +0000056928 00000 n +0000057080 00000 n +0000057236 00000 n +0000057392 00000 n +0000057548 00000 n +0000057704 00000 n +0000057860 00000 n +0000058022 00000 n +0000058184 00000 n +0000058345 00000 n +0000058506 00000 n +0000058668 00000 n +0000058829 00000 n +0000058985 00000 n +0000059137 00000 n +0000059288 00000 n +0000062026 00000 n +0000062179 00000 n +0000062334 00000 n +0000059504 00000 n +0000052558 00000 n +0000050426 00000 n +0000059441 00000 n +0000052695 00000 n +0000062487 00000 n +0000062643 00000 n +0000062799 00000 n +0000062952 00000 n +0000063105 00000 n +0000063260 00000 n +0000063422 00000 n +0000063584 00000 n +0000063746 00000 n +0000063908 00000 n +0000064069 00000 n +0000064230 00000 n +0000064392 00000 n +0000064553 00000 n +0000064709 00000 n +0000064865 00000 n +0000065021 00000 n +0000065177 00000 n +0000065333 00000 n +0000065489 00000 n +0000065645 00000 n +0000065801 00000 n +0000065958 00000 n +0000066115 00000 n +0000066271 00000 n +0000066426 00000 n +0000066582 00000 n +0000066738 00000 n +0000066895 00000 n +0000067052 00000 n +0000067272 00000 n +0000061604 00000 n +0000059615 00000 n +0000067209 00000 n +0000061741 00000 n +0000071374 00000 n +0000071007 00000 n +0000067383 00000 n +0000071128 00000 n +0000679416 00000 n +0000808154 00000 n +0000075111 00000 n +0000074865 00000 n +0000071511 00000 n +0000074986 00000 n +0000078672 00000 n +0000078364 00000 n +0000075222 00000 n +0000078485 00000 n +0000080620 00000 n +0000080436 00000 n +0000078796 00000 n +0000080557 00000 n +0000084680 00000 n +0000084372 00000 n +0000080731 00000 n +0000084493 00000 n +0000808443 00000 n +0000808299 00000 n +0000089058 00000 n +0000088750 00000 n +0000084830 00000 n +0000088871 00000 n +0000668051 00000 n +0000662975 00000 n +0000809029 00000 n +0000091908 00000 n +0000091538 00000 n +0000089234 00000 n +0000091659 00000 n +0000093553 00000 n +0000093369 00000 n +0000092045 00000 n +0000093490 00000 n +0000097092 00000 n +0000096722 00000 n +0000093703 00000 n +0000096843 00000 n +0000100496 00000 n +0000100188 00000 n +0000097229 00000 n +0000100309 00000 n +0000104698 00000 n +0000104452 00000 n +0000100659 00000 n +0000104573 00000 n +0000109056 00000 n +0000108810 00000 n +0000104861 00000 n +0000108931 00000 n +0000112300 00000 n +0000112116 00000 n +0000109219 00000 n +0000112237 00000 n +0000115842 00000 n +0000115534 00000 n +0000112437 00000 n +0000115655 00000 n +0000659594 00000 n +0000808731 00000 n +0000119278 00000 n +0000119032 00000 n +0000115979 00000 n +0000119153 00000 n +0000122393 00000 n +0000122085 00000 n +0000119441 00000 n +0000122206 00000 n +0000809182 00000 n +0000126258 00000 n +0000126011 00000 n +0000122556 00000 n +0000126132 00000 n +0000130534 00000 n +0000130350 00000 n +0000126434 00000 n +0000130471 00000 n +0000134747 00000 n +0000134500 00000 n +0000130684 00000 n +0000134621 00000 n +0000138929 00000 n +0000138682 00000 n +0000134923 00000 n +0000138803 00000 n +0000143255 00000 n +0000143008 00000 n +0000139092 00000 n +0000143129 00000 n +0000148431 00000 n +0000148247 00000 n +0000143405 00000 n +0000148368 00000 n +0000154086 00000 n +0000153902 00000 n +0000148594 00000 n +0000154023 00000 n +0000157430 00000 n +0000157183 00000 n +0000154249 00000 n +0000157304 00000 n +0000808009 00000 n +0000161232 00000 n +0000161048 00000 n +0000157606 00000 n +0000161169 00000 n +0000162854 00000 n +0000162670 00000 n +0000161395 00000 n +0000162791 00000 n +0000809335 00000 n +0000166225 00000 n +0000165915 00000 n +0000162978 00000 n +0000166036 00000 n +0000169249 00000 n +0000168939 00000 n +0000166362 00000 n +0000169060 00000 n +0000172840 00000 n +0000172593 00000 n +0000169399 00000 n +0000172714 00000 n +0000176973 00000 n +0000176726 00000 n +0000173003 00000 n +0000176847 00000 n +0000180843 00000 n +0000180596 00000 n +0000177123 00000 n +0000180717 00000 n +0000185761 00000 n +0000185514 00000 n +0000181006 00000 n +0000185635 00000 n +0000190427 00000 n +0000190181 00000 n +0000185924 00000 n +0000190302 00000 n +0000196311 00000 n +0000196127 00000 n +0000190590 00000 n +0000196248 00000 n +0000199823 00000 n +0000199576 00000 n +0000196461 00000 n +0000199697 00000 n +0000202925 00000 n +0000202741 00000 n +0000199999 00000 n +0000202862 00000 n +0000809488 00000 n +0000205433 00000 n +0000205060 00000 n +0000203088 00000 n +0000205181 00000 n +0000209885 00000 n +0000209638 00000 n +0000205570 00000 n +0000209759 00000 n +0000807863 00000 n +0000214237 00000 n +0000213990 00000 n +0000210074 00000 n +0000214111 00000 n +0000217311 00000 n +0000217001 00000 n +0000214413 00000 n +0000217122 00000 n +0000220891 00000 n +0000220644 00000 n +0000217487 00000 n +0000220765 00000 n +0000225486 00000 n +0000225239 00000 n +0000221054 00000 n +0000225360 00000 n +0000229643 00000 n +0000229397 00000 n +0000225649 00000 n +0000229518 00000 n +0000232588 00000 n +0000232404 00000 n +0000229819 00000 n +0000232525 00000 n +0000234911 00000 n +0000234601 00000 n +0000232751 00000 n +0000234722 00000 n +0000808588 00000 n +0000240832 00000 n +0000240585 00000 n +0000235061 00000 n +0000240706 00000 n +0000809641 00000 n +0000245430 00000 n +0000245183 00000 n +0000241073 00000 n +0000245304 00000 n +0000249049 00000 n +0000248739 00000 n +0000245645 00000 n +0000248860 00000 n +0000252868 00000 n +0000252558 00000 n +0000249225 00000 n +0000252679 00000 n +0000258728 00000 n +0000258481 00000 n +0000253044 00000 n +0000258602 00000 n +0000261780 00000 n +0000261407 00000 n +0000258917 00000 n +0000261528 00000 n +0000265601 00000 n +0000265354 00000 n +0000261930 00000 n +0000265475 00000 n +0000268673 00000 n +0000268363 00000 n +0000265777 00000 n +0000268484 00000 n +0000272209 00000 n +0000271960 00000 n +0000268836 00000 n +0000272082 00000 n +0000276842 00000 n +0000276589 00000 n +0000272372 00000 n +0000276713 00000 n +0000280165 00000 n +0000279911 00000 n +0000277006 00000 n +0000280036 00000 n +0000809795 00000 n +0000281965 00000 n +0000281775 00000 n +0000280342 00000 n +0000281900 00000 n +0000284720 00000 n +0000284338 00000 n +0000282129 00000 n +0000284463 00000 n +0000288958 00000 n +0000288704 00000 n +0000284858 00000 n +0000288829 00000 n +0000292741 00000 n +0000292487 00000 n +0000289109 00000 n +0000292612 00000 n +0000297210 00000 n +0000296956 00000 n +0000292918 00000 n +0000297081 00000 n +0000301249 00000 n +0000300995 00000 n +0000297387 00000 n +0000301120 00000 n +0000305913 00000 n +0000305659 00000 n +0000301413 00000 n +0000305784 00000 n +0000311362 00000 n +0000311108 00000 n +0000306064 00000 n +0000311233 00000 n +0000315472 00000 n +0000315218 00000 n +0000311526 00000 n +0000315343 00000 n +0000318463 00000 n +0000318273 00000 n +0000315623 00000 n +0000318398 00000 n +0000809959 00000 n +0000321218 00000 n +0000320836 00000 n +0000318601 00000 n +0000320961 00000 n +0000325540 00000 n +0000325222 00000 n +0000321356 00000 n +0000325347 00000 n +0000329609 00000 n +0000329419 00000 n +0000325717 00000 n +0000329544 00000 n +0000333490 00000 n +0000333173 00000 n +0000329760 00000 n +0000333298 00000 n +0000338131 00000 n +0000337877 00000 n +0000333654 00000 n +0000338002 00000 n +0000343013 00000 n +0000342759 00000 n +0000338282 00000 n +0000342884 00000 n +0000347721 00000 n +0000347531 00000 n +0000343164 00000 n +0000347656 00000 n +0000352539 00000 n +0000352221 00000 n +0000347859 00000 n +0000352346 00000 n +0000355495 00000 n +0000355305 00000 n +0000352690 00000 n 0000355430 00000 n -0000355240 00000 n -0000352636 00000 n -0000355365 00000 n -0000358613 00000 n -0000358231 00000 n -0000355568 00000 n -0000358356 00000 n -0000801493 00000 n -0000362373 00000 n -0000362056 00000 n -0000358764 00000 n -0000362181 00000 n -0000366461 00000 n -0000366271 00000 n -0000362537 00000 n -0000366396 00000 n -0000370683 00000 n -0000370429 00000 n -0000366612 00000 n -0000370554 00000 n -0000375813 00000 n -0000375559 00000 n -0000370834 00000 n -0000375684 00000 n -0000379882 00000 n -0000379628 00000 n -0000375964 00000 n -0000379753 00000 n -0000384218 00000 n -0000383900 00000 n -0000380033 00000 n -0000384025 00000 n -0000648421 00000 n -0000388165 00000 n -0000387911 00000 n -0000384344 00000 n -0000388036 00000 n -0000393516 00000 n -0000393326 00000 n -0000388329 00000 n -0000393451 00000 n -0000398629 00000 n -0000398375 00000 n -0000393680 00000 n -0000398500 00000 n -0000404684 00000 n -0000404494 00000 n -0000398832 00000 n -0000404619 00000 n -0000801657 00000 n -0000410482 00000 n -0000410228 00000 n -0000404822 00000 n -0000410353 00000 n -0000414782 00000 n -0000414592 00000 n -0000410633 00000 n -0000414717 00000 n -0000418651 00000 n -0000418461 00000 n -0000414946 00000 n -0000418586 00000 n -0000423371 00000 n -0000423053 00000 n -0000418828 00000 n -0000423178 00000 n -0000427110 00000 n -0000426792 00000 n -0000423574 00000 n -0000426917 00000 n -0000431001 00000 n -0000430747 00000 n -0000427248 00000 n -0000430872 00000 n -0000435135 00000 n -0000435482 00000 n -0000434962 00000 n -0000431179 00000 n -0000435289 00000 n -0000645573 00000 n -0000435418 00000 n -0000643778 00000 n -0000639422 00000 n -0000435104 00000 n -0000440934 00000 n -0000440680 00000 n -0000435701 00000 n -0000440805 00000 n -0000636785 00000 n -0000446111 00000 n -0000445857 00000 n -0000441112 00000 n -0000445982 00000 n -0000448003 00000 n -0000447813 00000 n -0000446288 00000 n -0000447938 00000 n -0000801821 00000 n -0000451309 00000 n -0000451055 00000 n -0000448141 00000 n -0000451180 00000 n -0000452940 00000 n -0000452750 00000 n -0000451473 00000 n -0000452875 00000 n -0000457133 00000 n -0000457500 00000 n -0000456960 00000 n -0000453078 00000 n -0000457307 00000 n -0000457102 00000 n -0000461161 00000 n -0000460971 00000 n -0000457677 00000 n -0000461096 00000 n -0000465101 00000 n -0000464783 00000 n -0000461325 00000 n -0000464908 00000 n -0000466263 00000 n -0000466073 00000 n -0000465239 00000 n -0000466198 00000 n -0000469606 00000 n -0000469224 00000 n -0000466401 00000 n -0000469349 00000 n -0000473176 00000 n -0000472922 00000 n -0000469744 00000 n -0000473047 00000 n -0000475692 00000 n -0000475310 00000 n -0000473353 00000 n -0000475435 00000 n -0000478113 00000 n -0000477923 00000 n -0000475791 00000 n -0000478048 00000 n -0000801985 00000 n -0000482542 00000 n -0000482288 00000 n -0000478212 00000 n -0000482413 00000 n -0000485565 00000 n -0000485375 00000 n -0000482654 00000 n -0000485500 00000 n -0000488333 00000 n -0000488143 00000 n -0000485664 00000 n -0000488268 00000 n +0000358676 00000 n +0000358294 00000 n +0000355633 00000 n +0000358419 00000 n +0000810123 00000 n +0000362477 00000 n +0000362160 00000 n +0000358827 00000 n +0000362285 00000 n +0000366569 00000 n +0000366379 00000 n +0000362641 00000 n +0000366504 00000 n +0000370795 00000 n +0000370541 00000 n +0000366720 00000 n +0000370666 00000 n +0000375930 00000 n +0000375676 00000 n +0000370946 00000 n +0000375801 00000 n +0000380018 00000 n +0000379764 00000 n +0000376081 00000 n +0000379889 00000 n +0000384354 00000 n +0000384036 00000 n +0000380169 00000 n +0000384161 00000 n +0000657098 00000 n +0000388300 00000 n +0000388046 00000 n +0000384480 00000 n +0000388171 00000 n +0000393663 00000 n +0000393473 00000 n +0000388464 00000 n +0000393598 00000 n +0000398774 00000 n +0000398520 00000 n +0000393827 00000 n +0000398645 00000 n +0000404827 00000 n +0000404637 00000 n +0000398977 00000 n +0000404762 00000 n +0000810287 00000 n +0000410625 00000 n +0000410371 00000 n +0000404965 00000 n +0000410496 00000 n +0000414928 00000 n +0000414738 00000 n +0000410776 00000 n +0000414863 00000 n +0000418799 00000 n +0000418609 00000 n +0000415092 00000 n +0000418734 00000 n +0000423523 00000 n +0000423205 00000 n +0000418976 00000 n +0000423330 00000 n +0000427262 00000 n +0000426944 00000 n +0000423726 00000 n +0000427069 00000 n +0000431153 00000 n +0000430899 00000 n +0000427400 00000 n +0000431024 00000 n +0000435283 00000 n +0000435630 00000 n +0000435110 00000 n +0000431331 00000 n +0000435437 00000 n +0000654250 00000 n +0000435566 00000 n +0000652455 00000 n +0000648099 00000 n +0000435252 00000 n +0000441080 00000 n +0000440826 00000 n +0000435849 00000 n +0000440951 00000 n +0000645462 00000 n +0000446256 00000 n +0000446002 00000 n +0000441258 00000 n +0000446127 00000 n +0000448153 00000 n +0000447963 00000 n +0000446433 00000 n +0000448088 00000 n +0000810451 00000 n +0000451458 00000 n +0000451204 00000 n +0000448291 00000 n +0000451329 00000 n +0000453092 00000 n +0000452902 00000 n +0000451622 00000 n +0000453027 00000 n +0000457285 00000 n +0000457652 00000 n +0000457112 00000 n +0000453230 00000 n +0000457459 00000 n +0000457254 00000 n +0000461316 00000 n +0000461126 00000 n +0000457829 00000 n +0000461251 00000 n +0000465258 00000 n +0000464940 00000 n +0000461480 00000 n +0000465065 00000 n +0000466421 00000 n +0000466231 00000 n +0000465396 00000 n +0000466356 00000 n +0000469776 00000 n +0000469394 00000 n +0000466559 00000 n +0000469519 00000 n +0000473349 00000 n +0000473095 00000 n +0000469914 00000 n +0000473220 00000 n +0000475864 00000 n +0000475482 00000 n +0000473526 00000 n +0000475607 00000 n +0000478285 00000 n +0000478095 00000 n +0000475963 00000 n +0000478220 00000 n +0000810615 00000 n +0000482714 00000 n +0000482460 00000 n +0000478384 00000 n +0000482585 00000 n +0000485742 00000 n +0000485552 00000 n +0000482826 00000 n +0000485677 00000 n +0000488511 00000 n +0000488321 00000 n +0000485841 00000 n +0000488446 00000 n +0000491190 00000 n 0000491000 00000 n -0000490810 00000 n -0000488432 00000 n -0000490935 00000 n -0000494006 00000 n -0000493816 00000 n -0000491099 00000 n -0000493941 00000 n -0000497275 00000 n -0000497085 00000 n -0000494105 00000 n -0000497210 00000 n -0000499706 00000 n -0000499516 00000 n -0000497374 00000 n -0000499641 00000 n -0000502192 00000 n -0000502002 00000 n -0000499805 00000 n -0000502127 00000 n -0000505201 00000 n -0000504883 00000 n -0000502291 00000 n -0000505008 00000 n -0000507788 00000 n -0000507534 00000 n -0000505313 00000 n -0000507659 00000 n -0000802149 00000 n -0000511074 00000 n -0000510756 00000 n -0000507900 00000 n -0000510881 00000 n -0000514183 00000 n -0000513929 00000 n -0000511186 00000 n -0000514054 00000 n -0000516881 00000 n -0000516627 00000 n -0000514295 00000 n -0000516752 00000 n -0000520346 00000 n -0000520092 00000 n -0000516993 00000 n -0000520217 00000 n -0000523231 00000 n -0000522977 00000 n -0000520458 00000 n -0000523102 00000 n -0000526661 00000 n -0000526471 00000 n -0000523343 00000 n -0000526596 00000 n -0000530353 00000 n -0000530163 00000 n -0000526760 00000 n -0000530288 00000 n -0000533964 00000 n -0000533774 00000 n -0000530452 00000 n -0000533899 00000 n -0000537384 00000 n -0000537130 00000 n -0000534063 00000 n -0000537255 00000 n -0000540743 00000 n -0000540553 00000 n -0000537496 00000 n -0000540678 00000 n -0000802313 00000 n -0000544635 00000 n -0000544445 00000 n -0000540842 00000 n -0000544570 00000 n -0000547834 00000 n -0000547644 00000 n -0000544734 00000 n -0000547769 00000 n -0000551834 00000 n -0000551580 00000 n -0000547933 00000 n -0000551705 00000 n -0000555060 00000 n -0000554870 00000 n -0000551946 00000 n -0000554995 00000 n -0000558795 00000 n -0000558542 00000 n -0000555159 00000 n -0000558667 00000 n -0000562701 00000 n -0000562511 00000 n -0000558907 00000 n -0000562636 00000 n -0000565969 00000 n -0000565715 00000 n -0000562800 00000 n -0000565840 00000 n -0000569095 00000 n -0000568905 00000 n -0000566081 00000 n -0000569030 00000 n -0000572891 00000 n -0000572701 00000 n -0000569194 00000 n -0000572826 00000 n -0000576022 00000 n -0000575704 00000 n -0000572990 00000 n -0000575829 00000 n -0000802477 00000 n -0000579047 00000 n -0000578857 00000 n -0000576134 00000 n -0000578982 00000 n -0000582808 00000 n -0000582618 00000 n -0000579146 00000 n -0000582743 00000 n -0000585824 00000 n -0000585634 00000 n -0000582907 00000 n -0000585759 00000 n -0000589087 00000 n -0000588833 00000 n -0000585923 00000 n -0000588958 00000 n -0000592180 00000 n -0000591990 00000 n -0000589199 00000 n -0000592115 00000 n -0000596067 00000 n -0000595877 00000 n -0000592279 00000 n -0000596002 00000 n -0000599520 00000 n -0000599330 00000 n -0000596166 00000 n -0000599455 00000 n -0000602890 00000 n -0000602636 00000 n -0000599619 00000 n -0000602761 00000 n -0000606566 00000 n -0000606376 00000 n -0000603002 00000 n -0000606501 00000 n -0000610176 00000 n -0000609922 00000 n -0000606665 00000 n -0000610047 00000 n -0000802641 00000 n -0000613291 00000 n -0000613101 00000 n -0000610288 00000 n -0000613226 00000 n -0000616159 00000 n -0000615969 00000 n -0000613390 00000 n -0000616094 00000 n -0000619071 00000 n -0000618881 00000 n -0000616258 00000 n -0000619006 00000 n -0000621910 00000 n -0000621720 00000 n -0000619170 00000 n -0000621845 00000 n -0000624452 00000 n -0000624199 00000 n -0000622009 00000 n -0000624324 00000 n -0000626757 00000 n -0000626503 00000 n -0000624564 00000 n -0000626628 00000 n -0000629601 00000 n -0000629347 00000 n -0000626869 00000 n -0000629472 00000 n -0000632484 00000 n -0000632230 00000 n -0000629713 00000 n -0000632355 00000 n -0000634465 00000 n -0000634211 00000 n -0000632596 00000 n -0000634336 00000 n -0000634577 00000 n -0000636059 00000 n -0000634666 00000 n -0000634772 00000 n -0000636308 00000 n -0000636950 00000 n -0000637161 00000 n -0000638697 00000 n -0000637261 00000 n -0000637362 00000 n -0000638937 00000 n -0000639580 00000 n -0000639784 00000 n -0000642979 00000 n -0000640047 00000 n -0000640157 00000 n -0000643220 00000 n -0000643937 00000 n -0000644142 00000 n -0000644887 00000 n -0000644175 00000 n -0000644270 00000 n -0000645129 00000 n -0000645732 00000 n -0000645937 00000 n -0000647687 00000 n -0000646048 00000 n -0000646152 00000 n -0000647934 00000 n -0000648585 00000 n -0000648795 00000 n -0000648854 00000 n -0000649147 00000 n -0000649312 00000 n -0000649337 00000 n -0000650225 00000 n -0000649381 00000 n -0000649479 00000 n -0000650467 00000 n -0000651075 00000 n -0000651280 00000 n -0000653527 00000 n -0000651482 00000 n -0000651588 00000 n -0000653768 00000 n -0000654456 00000 n -0000654661 00000 n -0000658557 00000 n -0000654920 00000 n -0000655026 00000 n -0000658805 00000 n -0000659537 00000 n -0000659747 00000 n -0000659958 00000 n -0000660238 00000 n -0000660597 00000 n -0000669662 00000 n -0000661030 00000 n -0000661136 00000 n -0000669903 00000 n -0000670897 00000 n -0000671102 00000 n -0000679889 00000 n -0000671528 00000 n -0000671640 00000 n -0000680138 00000 n -0000681027 00000 n -0000681238 00000 n -0000686932 00000 n -0000681598 00000 n -0000681705 00000 n -0000687172 00000 n -0000687986 00000 n -0000688190 00000 n -0000697573 00000 n -0000688697 00000 n -0000688817 00000 n -0000697815 00000 n -0000698807 00000 n -0000699013 00000 n -0000705373 00000 n -0000699410 00000 n -0000699521 00000 n -0000705613 00000 n -0000706443 00000 n -0000706646 00000 n -0000713551 00000 n -0000707057 00000 n -0000707165 00000 n -0000713791 00000 n -0000714643 00000 n -0000714846 00000 n -0000715969 00000 n -0000714925 00000 n -0000715027 00000 n -0000716210 00000 n -0000716836 00000 n -0000717041 00000 n -0000719673 00000 n -0000717295 00000 n -0000717401 00000 n -0000719914 00000 n -0000720619 00000 n -0000720824 00000 n -0000726619 00000 n -0000721198 00000 n -0000721305 00000 n -0000726861 00000 n -0000727672 00000 n -0000727878 00000 n -0000730073 00000 n -0000728108 00000 n -0000728214 00000 n -0000730314 00000 n -0000731014 00000 n -0000742401 00000 n -0000731219 00000 n -0000750502 00000 n -0000742716 00000 n -0000766793 00000 n -0000750740 00000 n -0000775765 00000 n -0000767203 00000 n -0000784237 00000 n -0000776045 00000 n -0000791788 00000 n -0000784565 00000 n -0000799000 00000 n -0000792029 00000 n -0000802805 00000 n -0000802964 00000 n -0000803092 00000 n -0000803169 00000 n -0000816863 00000 n -0000817576 00000 n -0000818279 00000 n -0000818970 00000 n -0000819609 00000 n -0000820271 00000 n -0000820975 00000 n -0000821789 00000 n -0000822581 00000 n -0000823360 00000 n -0000823987 00000 n -0000824155 00000 n -0000824195 00000 n -0000824327 00000 n +0000488610 00000 n +0000491125 00000 n +0000494211 00000 n +0000494021 00000 n +0000491289 00000 n +0000494146 00000 n +0000497427 00000 n +0000497237 00000 n +0000494310 00000 n +0000497362 00000 n +0000499939 00000 n +0000499749 00000 n +0000497526 00000 n +0000499874 00000 n +0000502419 00000 n +0000502229 00000 n +0000500038 00000 n +0000502354 00000 n +0000505648 00000 n +0000505330 00000 n +0000502518 00000 n +0000505455 00000 n +0000508049 00000 n +0000507859 00000 n +0000505760 00000 n +0000507984 00000 n +0000810779 00000 n +0000510948 00000 n +0000510630 00000 n +0000508148 00000 n +0000510755 00000 n +0000514552 00000 n +0000514234 00000 n +0000511060 00000 n +0000514359 00000 n +0000517044 00000 n +0000516790 00000 n +0000514664 00000 n +0000516915 00000 n +0000520365 00000 n +0000520111 00000 n +0000517156 00000 n +0000520236 00000 n +0000523702 00000 n +0000523512 00000 n +0000520477 00000 n +0000523637 00000 n +0000527230 00000 n +0000526976 00000 n +0000523801 00000 n +0000527101 00000 n +0000530592 00000 n +0000530402 00000 n +0000527342 00000 n +0000530527 00000 n +0000534069 00000 n +0000533879 00000 n +0000530691 00000 n +0000534004 00000 n +0000537097 00000 n +0000536907 00000 n +0000534168 00000 n +0000537032 00000 n +0000540596 00000 n +0000540342 00000 n +0000537196 00000 n +0000540467 00000 n +0000810943 00000 n +0000543790 00000 n +0000543600 00000 n +0000540708 00000 n +0000543725 00000 n +0000547487 00000 n +0000547297 00000 n +0000543889 00000 n +0000547422 00000 n +0000550651 00000 n +0000550461 00000 n +0000547586 00000 n +0000550586 00000 n +0000554179 00000 n +0000553926 00000 n +0000550750 00000 n +0000554051 00000 n +0000557689 00000 n +0000557499 00000 n +0000554291 00000 n +0000557624 00000 n +0000561080 00000 n +0000560890 00000 n +0000557788 00000 n +0000561015 00000 n +0000564858 00000 n +0000564604 00000 n +0000561179 00000 n +0000564729 00000 n +0000568439 00000 n +0000568249 00000 n +0000564970 00000 n +0000568374 00000 n +0000571756 00000 n +0000571502 00000 n +0000568538 00000 n +0000571627 00000 n +0000575198 00000 n +0000575008 00000 n +0000571868 00000 n +0000575133 00000 n +0000811107 00000 n +0000578985 00000 n +0000578667 00000 n +0000575297 00000 n +0000578792 00000 n +0000582289 00000 n +0000582099 00000 n +0000579097 00000 n +0000582224 00000 n +0000585396 00000 n +0000585206 00000 n +0000582388 00000 n +0000585331 00000 n +0000589066 00000 n +0000588876 00000 n +0000585495 00000 n +0000589001 00000 n +0000592021 00000 n +0000591831 00000 n +0000589165 00000 n +0000591956 00000 n +0000595444 00000 n +0000595190 00000 n +0000592120 00000 n +0000595315 00000 n +0000598648 00000 n +0000598458 00000 n +0000595556 00000 n +0000598583 00000 n +0000602218 00000 n +0000602028 00000 n +0000598747 00000 n +0000602153 00000 n +0000605798 00000 n +0000605608 00000 n +0000602317 00000 n +0000605733 00000 n +0000609057 00000 n +0000608803 00000 n +0000605897 00000 n +0000608928 00000 n +0000811271 00000 n +0000612343 00000 n +0000612153 00000 n +0000609169 00000 n +0000612278 00000 n +0000616199 00000 n +0000616009 00000 n +0000612442 00000 n +0000616134 00000 n +0000619745 00000 n +0000619492 00000 n +0000616298 00000 n +0000619617 00000 n +0000622795 00000 n +0000622605 00000 n +0000619857 00000 n +0000622730 00000 n +0000625913 00000 n +0000625723 00000 n +0000622894 00000 n +0000625848 00000 n +0000629051 00000 n +0000628861 00000 n +0000626012 00000 n +0000628986 00000 n +0000631990 00000 n +0000631800 00000 n +0000629150 00000 n +0000631925 00000 n +0000634506 00000 n +0000634252 00000 n +0000632089 00000 n +0000634377 00000 n +0000637140 00000 n +0000636887 00000 n +0000634618 00000 n +0000637012 00000 n +0000640455 00000 n +0000640201 00000 n +0000637252 00000 n +0000640326 00000 n +0000811435 00000 n +0000643142 00000 n +0000642824 00000 n +0000640567 00000 n +0000642949 00000 n +0000643254 00000 n +0000644736 00000 n +0000643343 00000 n +0000643449 00000 n +0000644985 00000 n +0000645627 00000 n +0000645838 00000 n +0000647374 00000 n +0000645938 00000 n +0000646039 00000 n +0000647614 00000 n +0000648257 00000 n +0000648461 00000 n +0000651656 00000 n +0000648724 00000 n +0000648834 00000 n +0000651897 00000 n +0000652614 00000 n +0000652819 00000 n +0000653564 00000 n +0000652852 00000 n +0000652947 00000 n +0000653806 00000 n +0000654409 00000 n +0000654614 00000 n +0000656364 00000 n +0000654725 00000 n +0000654829 00000 n +0000656611 00000 n +0000657262 00000 n +0000657472 00000 n +0000657531 00000 n +0000657824 00000 n +0000657989 00000 n +0000658014 00000 n +0000658902 00000 n +0000658058 00000 n +0000658156 00000 n +0000659144 00000 n +0000659752 00000 n +0000659957 00000 n +0000662204 00000 n +0000660159 00000 n +0000660265 00000 n +0000662445 00000 n +0000663133 00000 n +0000663338 00000 n +0000667234 00000 n +0000663597 00000 n +0000663703 00000 n +0000667482 00000 n +0000668214 00000 n +0000668424 00000 n +0000668635 00000 n +0000668915 00000 n +0000669274 00000 n +0000678339 00000 n +0000669707 00000 n +0000669813 00000 n +0000678580 00000 n +0000679574 00000 n +0000679779 00000 n +0000688566 00000 n +0000680205 00000 n +0000680317 00000 n +0000688815 00000 n +0000689704 00000 n +0000689915 00000 n +0000695609 00000 n +0000690275 00000 n +0000690382 00000 n +0000695849 00000 n +0000696663 00000 n +0000696867 00000 n +0000706250 00000 n +0000697374 00000 n +0000697494 00000 n +0000706492 00000 n +0000707484 00000 n +0000707690 00000 n +0000714050 00000 n +0000708087 00000 n +0000708198 00000 n +0000714290 00000 n +0000715120 00000 n +0000715323 00000 n +0000722228 00000 n +0000715734 00000 n +0000715842 00000 n +0000722468 00000 n +0000723320 00000 n +0000723523 00000 n +0000724646 00000 n +0000723602 00000 n +0000723704 00000 n +0000724887 00000 n +0000725513 00000 n +0000725718 00000 n +0000728350 00000 n +0000725972 00000 n +0000726078 00000 n +0000728591 00000 n +0000729296 00000 n +0000729501 00000 n +0000735254 00000 n +0000729871 00000 n +0000729978 00000 n +0000735496 00000 n +0000736302 00000 n +0000736508 00000 n +0000738703 00000 n +0000736738 00000 n +0000736844 00000 n +0000738944 00000 n +0000739644 00000 n +0000751031 00000 n +0000739849 00000 n +0000759132 00000 n +0000751346 00000 n +0000775423 00000 n +0000759370 00000 n +0000784395 00000 n +0000775833 00000 n +0000792867 00000 n +0000784675 00000 n +0000800418 00000 n +0000793195 00000 n +0000807630 00000 n +0000800659 00000 n +0000811526 00000 n +0000811685 00000 n +0000811822 00000 n +0000811899 00000 n +0000825593 00000 n +0000826306 00000 n +0000827009 00000 n +0000827705 00000 n +0000828344 00000 n +0000829003 00000 n +0000829700 00000 n +0000830514 00000 n +0000831309 00000 n +0000832086 00000 n +0000832757 00000 n +0000832925 00000 n +0000832965 00000 n +0000833097 00000 n trailer -<< /Size 1573 /Root 1571 0 R /Info 1572 0 R /ID [ <E740AD79D6A306FAF6B8CBCB47499EC8> <E740AD79D6A306FAF6B8CBCB47499EC8> ] >> +<< /Size 1582 /Root 1580 0 R /Info 1581 0 R /ID [ <685E0BB890F211700943D5537F72E4DE> <685E0BB890F211700943D5537F72E4DE> ] >> startxref -824611 +833381 %%EOF diff --git a/macros/latex/contrib/functional/functional.sty b/macros/latex/contrib/functional/functional.sty index ab012e196d..c1eb69900f 100644 --- a/macros/latex/contrib/functional/functional.sty +++ b/macros/latex/contrib/functional/functional.sty @@ -14,7 +14,7 @@ \NeedsTeXFormat{LaTeX2e}[2018-04-01] \RequirePackage{expl3} -\ProvidesExplPackage{functional}{2022-05-14}{2022F} +\ProvidesExplPackage{functional}{2022-05-22}{2022G} {^^JIntuitive Functional Programming Interface for LaTeX2} \cs_generate_variant:Nn \iow_log:n { V } @@ -169,6 +169,7 @@ } \cs_generate_variant:Nn \__fun_new_function:Nnn { cne } +\cs_set_eq:NN \prgNewFunction \__fun_new_function:Nnn \cs_set_eq:NN \PrgNewFunction \__fun_new_function:Nnn \tl_new:N \g__fun_last_result_tl @@ -243,6 +244,7 @@ } } +\cs_set_eq:NN \prgNewConditional \__fun_new_conditional:Nnn \cs_set_eq:NN \PrgNewConditional \__fun_new_conditional:Nnn \int_new:N \g__fun_nesting_level_int @@ -577,21 +579,30 @@ %%> \subsection{Creating Some Useful Functions} %%% -------------------------------------------------------- -\PrgNewFunction \PrgSetEqFunction { N N } +\NewDocumentCommand \fun@NewTwoFunctions {mmmm} + { + \prgNewFunction #1 {#3} {#4} + \AtBeginDocument { \cs_if_exist:NF #2 { \prgNewFunction #2 {#3} {#4} } } + } + +\NewDocumentCommand \fun@NewTwoConditionals {mmmm} + { + \prgNewConditional #1 {#3} {#4} + \AtBeginDocument { \cs_if_exist:NF #2 { \prgNewConditional #2 {#3} {#4} } } + } + +\fun@NewTwoFunctions \prgSetEqFunction \PrgSetEqFunction { N N } { \cs_set_eq:NN #1 #2 \cs_set_eq:cc { __fun_defined_ \cs_to_str:N #1 : w } { __fun_defined_ \cs_to_str:N #2 : w } } -\cs_if_exist:NF \Do { \PrgNewFunction \Do { n } { #1 } } -\PrgNewFunction \PrgDo { n } { #1 } +\fun@NewTwoFunctions \prgDo \Do {n} {#1} -\cs_set_eq:NN \Break \prg_break: -\cs_set_eq:NN \PrgBreak \prg_break: +\cs_set_eq:NN \prgBreak \prg_break: -\cs_set_eq:NN \BreakDo \prg_break:n -\cs_set_eq:NN \PrgBreakDo \prg_break:n +\cs_set_eq:NN \prgBreakDo \prg_break:n %%% -------------------------------------------------------- %%> \subsection{Return Values and Return Processors} @@ -603,7 +614,7 @@ } \cs_generate_variant:Nn \__fun_put_result:n { V, e, f, o } -\PrgNewFunction \Return { m } +\fun@NewTwoFunctions \prgReturn \Return { m } { \__fun_put_result:n { #1 } } @@ -702,7 +713,7 @@ %%> \subsection{Printing Contents to the Input Stream} %%% -------------------------------------------------------- -\PrgNewFunction \PrgPrint { m } +\fun@NewTwoFunctions \prgPrint \Print { m } { \tl_log:n {running PrgPrint} \int_set_eq:NN \l__fun_return_level_int \g__fun_nesting_level_int @@ -711,35 +722,34 @@ \tl_gclear:N \gResultTl } -\PrgSetEqFunction \Print \PrgPrint - %%% -------------------------------------------------------- %%> \subsection{Filling Arguments into Inline Commands} %%% -------------------------------------------------------- %% To make better tracing log, we want to expand the return value once, %% but at the same time avoid evaluating the leading function in \gResultTl, -%% therefore we need to use \tl_set:Nn command instead of \TlSet function. +%% therefore we need to use \tl_set:Nn command instead of \tlSet function. -\PrgNewFunction \PrgRunOneArgCode { m n } +\fun@NewTwoFunctions \prgRunOneArgCode \PrgRunOneArgCode { m n } { \cs_set:Npn \__fun_one_arg_cmd:n ##1 {#2} \exp_args:NNo \tl_set:Nn \gResultTl { \__fun_one_arg_cmd:n {#1} } } -\PrgNewFunction \PrgRunTwoArgCode { m m n } +\fun@NewTwoFunctions \prgRunTwoArgCode \PrgRunTwoArgCode { m m n } { \cs_set:Npn \__fun_two_arg_cmd:nn ##1 ##2 {#3} \exp_args:NNo \tl_set:Nn \gResultTl { \__fun_two_arg_cmd:nn {#1} {#2} } } -\PrgNewFunction \PrgRunThreeArgCode { m m m n } +\fun@NewTwoFunctions \prgRunThreeArgCode \PrgRunThreeArgCode { m m m n } { \cs_set:Npn \__fun_three_arg_cmd:nnn ##1 ##2 ##3 {#4} - \exp_args:NNo \tl_set:Nn \gResultTl { \__fun_three_arg_cmd:nnn {#1} {#2} {#3} } + \exp_args:NNo \tl_set:Nn \gResultTl + { \__fun_three_arg_cmd:nnn {#1} {#2} {#3} } } -\PrgNewFunction \PrgRunFourArgCode { m m m m n } +\fun@NewTwoFunctions \prgRunFourArgCode \PrgRunFourArgCode { m m m m n } { \cs_set:Npn \__fun_four_arg_cmd:nnnn ##1 ##2 ##3 ##4 {#5} \exp_args:NNo \tl_set:Nn \gResultTl @@ -787,7 +797,8 @@ { \prg_return_true: } } -\PrgNewFunction \Local { } { \bool_gset_true:N \g__fun_variable_local_bool } +\fun@NewTwoFunctions \prgLocal \Local { } + { \bool_gset_true:N \g__fun_variable_local_bool } %% We must not put an assignment inside a group \cs_new_protected:Npn \__fun_do_assignment:Nnn #1 #2 #3 @@ -801,34 +812,38 @@ %%> \section{Interfaces for Argument Using (Use)} %%% -------------------------------------------------------- -\PrgNewFunction \Name { m } +\fun@NewTwoFunctions \expName \Name { m } { \exp_args:Nc \__fun_put_result:n { #1 } } -\PrgSetEqFunction \ExpName \Name -\PrgNewFunction \Value { M } +\fun@NewTwoFunctions \expValue \Value { M } { \__fun_put_result:V #1 } -\PrgSetEqFunction \ExpValue \Value -\PrgNewFunction \Expand { m } +\fun@NewTwoFunctions \expWhole \Expand { m } { \__fun_put_result:e { #1 } } -\PrgSetEqFunction \ExpWhole \Expand -\PrgNewFunction \ExpPartial { m } +\prgNewFunction \expPartial { m } { \__fun_put_result:f { #1 } } -\PrgNewFunction \ExpOnce { m } +\prgNewFunction \expOnce { m } { \__fun_put_result:o { #1 } } +\cs_set_eq:NN \unExpand \exp_not:n +\cs_set_eq:NN \noExpand \exp_not:N +\cs_set_eq:NN \onlyName \exp_not:c +\cs_set_eq:NN \onlyValue \exp_not:V +\cs_set_eq:NN \onlyPartial \exp_not:f +\cs_set_eq:NN \onlyOnce \exp_not:o + \cs_set_eq:NN \UnExpand \exp_not:n \cs_set_eq:NN \NoExpand \exp_not:N \cs_set_eq:NN \OnlyName \exp_not:c @@ -836,13 +851,13 @@ \cs_set_eq:NN \OnlyPartial \exp_not:f \cs_set_eq:NN \OnlyOnce \exp_not:o -\PrgNewFunction \UseOne { n } { \Return { #1 } } +\fun@NewTwoFunctions \useOne \UseOne { n } { \prgReturn {#1} } -\PrgNewFunction \GobbleOne { n } { \Return { } } +\fun@NewTwoFunctions \gobbleOne \GobbleOne { n } { } -\PrgNewFunction \UseGobble { n n } { \UseOne { #1 } } +\fun@NewTwoFunctions \useGobble \UseGobble { n n } { \prgReturn {#1} } -\PrgNewFunction \GobbleUse { n n } { \UseOne { #2 } } +\fun@NewTwoFunctions \gobbleUse \GobbleUse { n n } { \prgReturn {#2} } %%% -------------------------------------------------------- %%> \section{Interfaces for Control Structures (Bool)} @@ -859,86 +874,87 @@ \bool_new:N \gTmpiBool \bool_new:N \gTmpjBool \bool_new:N \gTmpkBool \bool_new:N \g@FunTmpxBool \bool_new:N \g@FunTmpyBool \bool_new:N \g@FunTmpzBool -\PrgNewFunction \BoolNew { M } { \bool_new:N #1 } +\fun@NewTwoFunctions \boolNew \BoolNew { M } { \bool_new:N #1 } -\PrgNewFunction \BoolConst { M e } { \bool_const:Nn #1 {#2} } +\fun@NewTwoFunctions \boolConst \BoolConst { M e } { \bool_const:Nn #1 {#2} } -\PrgNewFunction \BoolSet { M e } { +\fun@NewTwoFunctions \boolSet \BoolSet { M e } { \__fun_do_assignment:Nnn #1 { \bool_gset:Nn #1 {#2} } { \bool_set:Nn #1 {#2} } } -\PrgNewFunction \BoolSetTrue { M } +\fun@NewTwoFunctions \boolSetTrue \BoolSetTrue { M } { \__fun_do_assignment:Nnn #1 { \bool_gset_true:N #1 } { \bool_set_true:N #1 } } -\PrgNewFunction \BoolSetFalse { M } +\fun@NewTwoFunctions \boolSetFalse \BoolSetFalse { M } { \__fun_do_assignment:Nnn #1 { \bool_gset_false:N #1 } { \bool_set_false:N #1 } } -\PrgNewFunction \BoolSetEq { M M } +\fun@NewTwoFunctions \boolSetEq \BoolSetEq { M M } { \__fun_do_assignment:Nnn #1 { \bool_gset_eq:NN #1 #2 } { \bool_set_eq:NN #1 #2 } } -\PrgNewFunction \BoolLog { e } { \bool_log:n {#1} } +\fun@NewTwoFunctions \boolLog \BoolLog { e } { \bool_log:n {#1} } -\PrgNewFunction \BoolVarLog { M } { \bool_log:N #1 } +\fun@NewTwoFunctions \boolVarLog \BoolVarLog { M } { \bool_log:N #1 } -\PrgNewFunction \BoolShow { e } { \bool_show:n {#1} } +\fun@NewTwoFunctions \boolShow \BoolShow { e } { \bool_show:n {#1} } -\PrgNewFunction \BoolVarShow { M } { \bool_show:N #1 } +\fun@NewTwoFunctions \boolVarShow \BoolVarShow { M } { \bool_show:N #1 } -\PrgNewConditional \BoolIfExist { M } +\fun@NewTwoConditionals \boolIfExist \BoolIfExist { M } { - \bool_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \bool_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \BoolVarIf { M } { \Return {#1} } +\fun@NewTwoConditionals \boolVarIf \BoolVarIf { M } { \prgReturn {#1} } -\PrgNewConditional \BoolVarNot { M } +\fun@NewTwoConditionals \boolVarNot \BoolVarNot { M } { \bool_if:NTF #1 - { \Return { \cFalseBool } } { \Return { \cTrueBool } } + { \prgReturn { \cFalseBool } } { \prgReturn { \cTrueBool } } } -\PrgNewConditional \BoolVarAnd { M M } +\fun@NewTwoConditionals \boolVarAnd \BoolVarAnd { M M } { \bool_lazy_and:nnTF {#1} {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \BoolVarOr { M M } +\fun@NewTwoConditionals \boolVarOr \BoolVarOr { M M } { \bool_lazy_or:nnTF {#1} {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \BoolVarXor { M M } +\fun@NewTwoConditionals \boolVarXor \BoolVarXor { M M } { \bool_xor:nnTF {#1} {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewFunction \BoolVarDoUntil { N n } +\fun@NewTwoFunctions \boolVarDoUntil \BoolVarDoUntil { N n } { \bool_do_until:Nn #1 {#2} } -\PrgNewFunction \BoolVarDoWhile { N n } +\fun@NewTwoFunctions \boolVarDoWhile \BoolVarDoWhile { N n } { \bool_do_while:Nn #1 {#2} } -\PrgNewFunction \BoolVarUntilDo { N n } +\fun@NewTwoFunctions \boolVarUntilDo \BoolVarUntilDo { N n } { \bool_until_do:Nn #1 {#2} } -\PrgNewFunction \BoolVarWhileDo { N n } +\fun@NewTwoFunctions \boolVarWhileDo \BoolVarWhileDo { N n } { \bool_while_do:Nn #1 {#2} } @@ -959,186 +975,214 @@ \tl_new:N \gTmpiTl \tl_new:N \gTmpjTl \tl_new:N \gTmpkTl \tl_new:N \g@FunTmpxTl \tl_new:N \g@FunTmpyTl \tl_new:N \g@FunTmpzTl -\PrgNewFunction \TlNew { M } { \tl_new:N #1 } +\fun@NewTwoFunctions \tlNew \TlNew { M } { \tl_new:N #1 } -\PrgNewFunction \TlLog { m } { \tl_log:n { #1 } } +\fun@NewTwoFunctions \tlLog \TlLog { m } { \tl_log:n { #1 } } -\PrgNewFunction \TlVarLog { M } { \tl_log:N #1 } +\fun@NewTwoFunctions \tlVarLog \TlVarLog { M } { \tl_log:N #1 } -\PrgNewFunction \TlShow { m } { \tl_show:n { #1 } } +\fun@NewTwoFunctions \tlShow \TlShow { m } { \tl_show:n { #1 } } -\PrgNewFunction \TlVarShow { M } { \tl_show:N #1 } +\fun@NewTwoFunctions \tlVarShow \TlVarShow { M } { \tl_show:N #1 } -\PrgNewFunction \TlUse { M } { \Return { \Value #1 } } +\fun@NewTwoFunctions \tlUse \TlUse { M } { \prgReturn { \expValue #1 } } -\PrgNewFunction \TlToStr { m } { \Expand { \tl_to_str:n { #1 } } } +\fun@NewTwoFunctions \tlToStr \TlToStr { m } + { \expWhole { \tl_to_str:n { #1 } } } -\PrgNewFunction \TlVarToStr { M } { \Expand { \tl_to_str:N #1 } } +\fun@NewTwoFunctions \tlVarToStr \TlVarToStr { M } + { \expWhole { \tl_to_str:N #1 } } -\PrgNewFunction \TlConst { M m } { \tl_const:Nn #1 { #2 } } +\fun@NewTwoFunctions \tlConst \TlConst { M m } { \tl_const:Nn #1 { #2 } } -\PrgNewFunction \TlSet { M m } +\fun@NewTwoFunctions \tlSet \TlSet { M m } { \__fun_do_assignment:Nnn #1 { \tl_gset:Nn #1 {#2} } { \tl_set:Nn #1 {#2} } } -\PrgNewFunction \TlSetEq { M M } +\fun@NewTwoFunctions \tlSetEq \TlSetEq { M M } { \__fun_do_assignment:Nnn #1 { \tl_gset_eq:NN #1 #2 } { \tl_set_eq:NN #1 #2 } } -\PrgNewFunction \TlConcat { M M M } +\fun@NewTwoFunctions \tlConcat \TlConcat { M M M } { \__fun_do_assignment:Nnn #1 { \tl_gconcat:NNN #1 #2 #3 } { \tl_concat:NNN #1 #2 #3 } } -\PrgNewFunction \TlClear { M } +\fun@NewTwoFunctions \tlClear \TlClear { M } { \__fun_do_assignment:Nnn #1 { \tl_gclear:N #1 } { \tl_clear:N #1 } } -\PrgNewFunction \TlClearNew { M } +\fun@NewTwoFunctions \tlClearNew \TlClearNew { M } { \__fun_do_assignment:Nnn #1 { \tl_gclear_new:N #1 } { \tl_clear_new:N #1 } } -\PrgNewFunction \TlPutLeft { M m } +\fun@NewTwoFunctions \tlPutLeft \TlPutLeft { M m } { \__fun_do_assignment:Nnn #1 { \tl_gput_left:Nn #1 {#2} } { \tl_put_left:Nn #1 {#2} } } -\PrgNewFunction \TlPutRight { M m } +\fun@NewTwoFunctions \tlPutRight \TlPutRight { M m } { \__fun_do_assignment:Nnn #1 { \tl_gput_right:Nn #1 {#2} } { \tl_put_right:Nn #1 {#2} } } -\PrgNewFunction \TlVarReplaceOnce { M m m } +\fun@NewTwoFunctions \tlVarReplaceOnce \TlVarReplaceOnce { M m m } { \__fun_do_assignment:Nnn #1 { \tl_greplace_once:Nnn #1 {#2} {#3} } { \tl_replace_once:Nnn #1 {#2} {#3} } } -\PrgNewFunction \TlVarReplaceAll { M m m } +\fun@NewTwoFunctions \tlVarReplaceAll \TlVarReplaceAll { M m m } { \__fun_do_assignment:Nnn #1 { \tl_greplace_all:Nnn #1 {#2} {#3} } { \tl_replace_all:Nnn #1 {#2} {#3} } } -\PrgNewFunction \TlVarRemoveOnce { M m } +\fun@NewTwoFunctions \tlVarRemoveOnce \TlVarRemoveOnce { M m } { \__fun_do_assignment:Nnn #1 { \tl_gremove_once:Nn #1 {#2} } { \tl_remove_once:Nn #1 {#2} } } -\PrgNewFunction \TlVarRemoveAll { M m } +\fun@NewTwoFunctions \tlVarRemoveAll \TlVarRemoveAll { M m } { \__fun_do_assignment:Nnn #1 { \tl_gremove_all:Nn #1 {#2} } { \tl_remove_all:Nn #1 {#2} } } -\PrgNewFunction \TlTrimSpaces { m } { \Expand { \tl_trim_spaces:n { #1 } } } +\fun@NewTwoFunctions \tlTrimSpaces \TlTrimSpaces { m } + { \expWhole { \tl_trim_spaces:n { #1 } } } -\PrgNewFunction \TlVarTrimSpaces { M } +\fun@NewTwoFunctions \tlVarTrimSpaces \TlVarTrimSpaces { M } { - \__fun_do_assignment:Nnn #1 { \tl_gtrim_spaces:N #1 } { \tl_trim_spaces:N #1 } + \__fun_do_assignment:Nnn #1 + { \tl_gtrim_spaces:N #1 } { \tl_trim_spaces:N #1 } } -\PrgNewFunction \TlCount { m } { \Expand { \tl_count:n { #1 } } } +\fun@NewTwoFunctions \tlCount \TlCount { m } + { \expWhole { \tl_count:n { #1 } } } -\PrgNewFunction \TlVarCount { M } { \Expand { \tl_count:N #1 } } +\fun@NewTwoFunctions \tlVarCount \TlVarCount { M } + { \expWhole { \tl_count:N #1 } } -\PrgNewFunction \TlHead { m } { \Expand { \tl_head:n { #1 } } } +\fun@NewTwoFunctions \tlHead \TlHead { m } + { \expWhole { \tl_head:n { #1 } } } -\PrgNewFunction \TlVarHead { M } { \Expand { \tl_head:N #1 } } +\fun@NewTwoFunctions \tlVarHead \TlVarHead { M } + { \expWhole { \tl_head:N #1 } } -\PrgNewFunction \TlTail { m } { \Expand { \tl_tail:n { #1 } } } +\fun@NewTwoFunctions \tlTail \TlTail { m } + { \expWhole { \tl_tail:n { #1 } } } -\PrgNewFunction \TlVarTail { M } { \Expand { \tl_tail:N #1 } } +\fun@NewTwoFunctions \tlVarTail \TlVarTail { M } + { \expWhole { \tl_tail:N #1 } } -\PrgNewFunction \TlItem { m m } { \Expand { \tl_item:nn {#1} {#2} } } +\fun@NewTwoFunctions \tlItem \TlItem { m m } + { \expWhole { \tl_item:nn {#1} {#2} } } -\PrgNewFunction \TlVarItem { M m } { \Expand { \tl_item:Nn #1 {#2} } } +\fun@NewTwoFunctions \tlVarItem \TlVarItem { M m } + { \expWhole { \tl_item:Nn #1 {#2} } } -\PrgNewFunction \TlRandItem { m } { \Expand { \tl_rand_item:n {#1} } } +\fun@NewTwoFunctions \tlRandItem \TlRandItem { m } + { \expWhole { \tl_rand_item:n {#1} } } -\PrgNewFunction \TlVarRandItem { M } { \Expand { \tl_rand_item:N #1 } } +\fun@NewTwoFunctions \tlVarRandItem \TlVarRandItem { M } + { \expWhole { \tl_rand_item:N #1 } } -\PrgNewFunction \TlVarCase { M m } { \tl_case:Nn {#1} {#2} } -\PrgNewFunction \TlVarCaseT { M m n } { \tl_case:NnT {#1} {#2} {#3} } -\PrgNewFunction \TlVarCaseF { M m n } { \tl_case:NnF {#1} {#2} {#3} } -\PrgNewFunction \TlVarCaseTF { M m n n } { \tl_case:NnTF {#1} {#2} {#3} {#4} } +\fun@NewTwoFunctions \tlVarCase \TlVarCase { M m } + { \tl_case:Nn {#1} {#2} } +\fun@NewTwoFunctions \tlVarCaseT \TlVarCaseT { M m n } + { \tl_case:NnT {#1} {#2} {#3} } +\fun@NewTwoFunctions \tlVarCaseF \TlVarCaseF { M m n } + { \tl_case:NnF {#1} {#2} {#3} } +\fun@NewTwoFunctions \tlVarCaseTF \TlVarCaseTF { M m n n } + { \tl_case:NnTF {#1} {#2} {#3} {#4} } -\PrgNewFunction \TlMapInline { m n } +\fun@NewTwoFunctions \tlMapInline \TlMapInline { m n } { \tl_map_inline:nn {#1} {#2} } -\PrgNewFunction \TlVarMapInline { M n } +\fun@NewTwoFunctions \tlVarMapInline \TlVarMapInline { M n } { \tl_map_inline:Nn #1 {#2} } -\PrgNewFunction \TlMapVariable { m M n } +\fun@NewTwoFunctions \tlMapVariable \TlMapVariable { m M n } { \tl_map_variable:nNn {#1} #2 {#3} } -\PrgNewFunction \TlVarMapVariable { M M n } +\fun@NewTwoFunctions \tlVarMapVariable \TlVarMapVariable { M M n } { \tl_map_variable:NNn #1 #2 {#3} } -\PrgNewConditional \TlIfExist { M } +\fun@NewTwoConditionals \tlIfExist \TlIfExist { M } { - \tl_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlIfEmpty { m } +\fun@NewTwoConditionals \tlIfEmpty \TlIfEmpty { m } { - \tl_if_empty:nTF {#1} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_empty:nTF {#1} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlVarIfEmpty { M } +\fun@NewTwoConditionals \tlVarIfEmpty \TlVarIfEmpty { M } { - \tl_if_empty:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_empty:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlIfBlank { m } +\fun@NewTwoConditionals \tlIfBlank \TlIfBlank { m } { - \tl_if_blank:nTF {#1} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_blank:nTF {#1} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlIfEq { m m } +\fun@NewTwoConditionals \tlIfEq \TlIfEq { m m } { - \tl_if_eq:nnTF {#1} {#2} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_eq:nnTF {#1} {#2} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlVarIfEq { M M } +\fun@NewTwoConditionals \tlVarIfEq \TlVarIfEq { M M } { - \tl_if_eq:NNTF #1 #2 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_eq:NNTF #1 #2 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlIfIn { m m } +\fun@NewTwoConditionals \tlIfIn \TlIfIn { m m } { - \tl_if_in:nnTF {#1} {#2} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_in:nnTF {#1} {#2} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlVarIfIn { M m } +\fun@NewTwoConditionals \tlVarIfIn \TlVarIfIn { M m } { - \tl_if_in:NnTF #1 {#2} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_in:NnTF #1 {#2} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlIfSingle { m } +\fun@NewTwoConditionals \tlIfSingle \TlIfSingle { m } { - \tl_if_single:nTF {#1} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_single:nTF {#1} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \TlVarIfSingle { M } +\fun@NewTwoConditionals \tlVarIfSingle \TlVarIfSingle { M } { - \tl_if_single:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \tl_if_single:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -1167,175 +1211,192 @@ \str_new:N \gTmpiStr \str_new:N \gTmpjStr \str_new:N \gTmpkStr \str_new:N \g@FunTmpxStr \str_new:N \g@FunTmpyStr \str_new:N \g@FunTmpzStr -\PrgNewFunction \StrNew { M } { \str_new:N #1 } +\fun@NewTwoFunctions \strNew \StrNew { M } { \str_new:N #1 } -\PrgNewFunction \StrLog { m } { \str_log:n { #1 } } +\fun@NewTwoFunctions \strLog \StrLog { m } { \str_log:n { #1 } } -\PrgNewFunction \StrVarLog { M } { \str_log:N #1 } +\fun@NewTwoFunctions \strVarLog \StrVarLog { M } { \str_log:N #1 } -\PrgNewFunction \StrShow { m } { \str_show:n { #1 } } +\fun@NewTwoFunctions \strShow \StrShow { m } { \str_show:n { #1 } } -\PrgNewFunction \StrVarShow { M } { \str_show:N #1 } +\fun@NewTwoFunctions \strVarShow \StrVarShow { M } { \str_show:N #1 } -\PrgNewFunction \StrUse { M } { \Return { \Value #1 } } +\fun@NewTwoFunctions \strUse \StrUse { M } { \prgReturn { \expValue #1 } } -\PrgNewFunction \StrConst { M m } { \str_const:Nn #1 {#2} } +\fun@NewTwoFunctions \strConst \StrConst { M m } { \str_const:Nn #1 {#2} } -\PrgNewFunction \StrSet { M m } +\fun@NewTwoFunctions \strSet \StrSet { M m } { \__fun_do_assignment:Nnn #1 { \str_gset:Nn #1 {#2} } { \str_set:Nn #1 {#2} } } -\PrgNewFunction \StrSetEq { M M } +\fun@NewTwoFunctions \strSetEq \StrSetEq { M M } { - \__fun_do_assignment:Nnn #1 { \str_gset_eq:NN #1 #2 } { \str_set_eq:NN #1 #2 } + \__fun_do_assignment:Nnn #1 + { \str_gset_eq:NN #1 #2 } { \str_set_eq:NN #1 #2 } } -\PrgNewFunction \StrConcat { M M M } +\fun@NewTwoFunctions \strConcat \StrConcat { M M M } { \__fun_do_assignment:Nnn #1 { \str_gconcat:NNN #1 #2 #3 } { \str_concat:NNN #1 #2 #3 } } -\PrgNewFunction \StrClear { M } +\fun@NewTwoFunctions \strClear \StrClear { M } { \__fun_do_assignment:Nnn #1 { \str_gclear:N #1 } { \str_clear:N #1 } } -\PrgNewFunction \StrClearNew { M } +\fun@NewTwoFunctions \strClearNew \StrClearNew { M } { \__fun_do_assignment:Nnn #1 { \str_gclear_new:N #1 } { \str_clear_new:N #1 } } -\PrgNewFunction \StrPutLeft { M m } +\fun@NewTwoFunctions \strPutLeft \StrPutLeft { M m } { \__fun_do_assignment:Nnn #1 { \str_gput_left:Nn #1 {#2} } { \str_put_left:Nn #1 {#2} } } -\PrgNewFunction \StrPutRight { M m } +\fun@NewTwoFunctions \strPutRight \StrPutRight { M m } { \__fun_do_assignment:Nnn #1 { \str_gput_right:Nn #1 {#2} } { \str_put_right:Nn #1 {#2} } } -\PrgNewFunction \StrVarReplaceOnce { M m m } +\fun@NewTwoFunctions \strVarReplaceOnce \StrVarReplaceOnce { M m m } { \__fun_do_assignment:Nnn #1 - { \str_greplace_once:Nnn #1 {#2} {#3} } { \str_replace_once:Nnn #1 {#2} {#3} } + { \str_greplace_once:Nnn #1 {#2} {#3} } + { \str_replace_once:Nnn #1 {#2} {#3} } } -\PrgNewFunction \StrVarReplaceAll { M m m } +\fun@NewTwoFunctions \strVarReplaceAll \StrVarReplaceAll { M m m } { \__fun_do_assignment:Nnn #1 - { \str_greplace_all:Nnn #1 {#2} {#3} } { \str_replace_all:Nnn #1 {#2} {#3} } + { \str_greplace_all:Nnn #1 {#2} {#3} } + { \str_replace_all:Nnn #1 {#2} {#3} } } -\PrgNewFunction \StrVarRemoveOnce { M m } +\fun@NewTwoFunctions \strVarRemoveOnce \StrVarRemoveOnce { M m } { \__fun_do_assignment:Nnn #1 { \str_gremove_once:Nn #1 {#2} } { \str_remove_once:Nn #1 {#2} } } -\PrgNewFunction \StrVarRemoveAll { M m } +\fun@NewTwoFunctions \strVarRemoveAll \StrVarRemoveAll { M m } { \__fun_do_assignment:Nnn #1 { \str_gremove_all:Nn #1 {#2} } { \str_remove_all:Nn #1 {#2} } } %% Avoid naming confict with xstring package -\cs_if_exist:NF \StrCount - { \PrgNewFunction \StrCount { m } { \Expand { \str_count:n { #1 } } } } +\fun@NewTwoFunctions \strCount \StrCount { m } + { \expWhole { \str_count:n { #1 } } } %% Provide another name for \StrCount function -\PrgNewFunction \StrSize { m } { \Expand { \str_count:n { #1 } } } +\prgNewFunction \StrSize { m } { \expWhole { \str_count:n { #1 } } } -\PrgNewFunction \StrVarCount { M } { \Expand { \str_count:N #1 } } +\fun@NewTwoFunctions \strVarCount \StrVarCount { M } + { \expWhole { \str_count:N #1 } } -\PrgNewFunction \StrHead { m } { \Expand { \str_head:n { #1 } } } +\fun@NewTwoFunctions \strHead \StrHead { m } + { \expWhole { \str_head:n { #1 } } } -\PrgNewFunction \StrVarHead { M } { \Expand { \str_head:N #1 } } +\fun@NewTwoFunctions \strVarHead \StrVarHead { M } + { \expWhole { \str_head:N #1 } } -\PrgNewFunction \StrTail { m } { \Expand { \str_tail:n { #1 } } } +\fun@NewTwoFunctions \strTail \StrTail { m } + { \expWhole { \str_tail:n { #1 } } } -\PrgNewFunction \StrVarTail { M } { \Expand { \str_tail:N #1 } } +\fun@NewTwoFunctions \strVarTail \StrVarTail { M } + { \expWhole { \str_tail:N #1 } } -\PrgNewFunction \StrItem { m m } { \Expand { \str_item:nn {#1} {#2} } } +\fun@NewTwoFunctions \strItem \StrItem { m m } + { \expWhole { \str_item:nn {#1} {#2} } } -\PrgNewFunction \StrVarItem { M m } { \Expand { \str_item:Nn #1 {#2} } } +\fun@NewTwoFunctions \strVarItem \StrVarItem { M m } + { \expWhole { \str_item:Nn #1 {#2} } } -\PrgNewFunction \StrCase { m m } { \str_case:nn {#1} {#2} } -\PrgNewFunction \StrCaseT { m m n } { \str_case:nnT {#1} {#2} {#3} } -\PrgNewFunction \StrCaseF { m m n } { \str_case:nnF {#1} {#2} {#3} } -\PrgNewFunction \StrCaseTF { m m n n } { \str_case:nnTF {#1} {#2} {#3} {#4} } +\fun@NewTwoFunctions \strCase \StrCase { m m } + { \str_case:nn {#1} {#2} } +\fun@NewTwoFunctions \strCaseT \StrCaseT { m m n } + { \str_case:nnT {#1} {#2} {#3} } +\fun@NewTwoFunctions \strCaseF \StrCaseF { m m n } + { \str_case:nnF {#1} {#2} {#3} } +\fun@NewTwoFunctions \strCaseTF \StrCaseTF { m m n n } + { \str_case:nnTF {#1} {#2} {#3} {#4} } -\PrgNewFunction \StrMapInline { m n } +\fun@NewTwoFunctions \strMapInline \StrMapInline { m n } { \str_map_inline:nn {#1} {#2} } -\PrgNewFunction \StrVarMapInline { M n } +\fun@NewTwoFunctions \strVarMapInline \StrVarMapInline { M n } { \str_map_inline:Nn #1 {#2} } -\PrgNewFunction \StrMapVariable { m M n } +\fun@NewTwoFunctions \strMapVariable \StrMapVariable { m M n } { \str_map_variable:nNn {#1} #2 {#3} } -\PrgNewFunction \StrVarMapVariable { M M n } +\fun@NewTwoFunctions \strVarMapVariable \StrVarMapVariable { M M n } { \str_map_variable:NNn #1 #2 {#3} } -\PrgNewConditional \StrIfExist { M } +\fun@NewTwoConditionals \strIfExist \StrIfExist { M } { - \str_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \str_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \StrVarIfEmpty { M } +\fun@NewTwoConditionals \strVarIfEmpty \StrVarIfEmpty { M } { - \str_if_empty:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \str_if_empty:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \StrIfEq { m m } +\fun@NewTwoConditionals \strIfEq \StrIfEq { m m } { - \str_if_eq:nnTF {#1} {#2} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \str_if_eq:nnTF {#1} {#2} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \StrVarIfEq { M M } +\fun@NewTwoConditionals \strVarIfEq \StrVarIfEq { M M } { - \str_if_eq:NNTF #1 #2 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \str_if_eq:NNTF #1 #2 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \StrIfIn { m m } +\fun@NewTwoConditionals \strIfIn \StrIfIn { m m } { - \str_if_in:nnTF {#1} {#2} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \str_if_in:nnTF {#1} {#2} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \StrVarIfIn { M m } +\fun@NewTwoConditionals \strVarIfIn \StrVarIfIn { M m } { - \str_if_in:NnTF #1 {#2} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \str_if_in:NnTF #1 {#2} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %% Avoid naming confict with xstring package -\cs_if_exist:NF \StrCompare +\fun@NewTwoConditionals \strCompare \StrCompare { m N m } { - \PrgNewConditional \StrCompare { m N m } - { - \str_compare:nNnTF {#1} #2 {#3} - { \Return { \cTrueBool } } - { \Return { \cFalseBool } } - } + \str_compare:nNnTF {#1} #2 {#3} + { \prgReturn { \cTrueBool } } + { \prgReturn { \cFalseBool } } } %% Provide another name for \StrCompare function -\PrgNewConditional \StrIfCompare { m N m } +\prgNewConditional \StrIfCompare { m N m } { \str_compare:nNnTF {#1} #2 {#3} - { \Return { \cTrueBool } } - { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } + { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -1356,139 +1417,157 @@ \int_new:N \gTmpiInt \int_new:N \gTmpjInt \int_new:N \gTmpkInt \int_new:N \g@FunTmpxInt \int_new:N \g@FunTmpyInt \int_new:N \g@FunTmpzInt -\PrgNewFunction \IntEval { e } { \Expand { \int_eval:n {#1} } } +\fun@NewTwoFunctions \intEval \IntEval { e } { \expWhole { \int_eval:n {#1} } } -\PrgNewFunction \IntMathAdd { e e } { \Expand { \int_eval:n { (#1) + (#2) } } } +\fun@NewTwoFunctions \intMathAdd \IntMathAdd { e e } + { \expWhole { \int_eval:n { (#1) + (#2) } } } -\PrgNewFunction \IntMathSub { e e } { \Expand { \int_eval:n { (#1) - (#2) } } } +\fun@NewTwoFunctions \intMathSub \IntMathSub { e e } + { \expWhole { \int_eval:n { (#1) - (#2) } } } -\PrgNewFunction \IntMathMult { e e } { \Expand { \int_eval:n { (#1) * (#2) } } } +\fun@NewTwoFunctions \intMathMult \IntMathMult { e e } + { \expWhole { \int_eval:n { (#1) * (#2) } } } -\PrgNewFunction \IntMathDiv { e e } { \Expand { \int_div_round:nn {#1} {#2} } } +\fun@NewTwoFunctions \intMathDiv \IntMathDiv { e e } + { \expWhole { \int_div_round:nn {#1} {#2} } } -\PrgNewFunction \IntMathDivTruncate { e e } +\fun@NewTwoFunctions \intMathDivTruncate \IntMathDivTruncate { e e } { - \Expand { \int_div_truncate:nn {#1} {#2} } + \expWhole { \int_div_truncate:nn {#1} {#2} } } -\PrgNewFunction \IntMathSign { e } { \Expand { \int_sign:n {#1} } } +\fun@NewTwoFunctions \intMathSign \IntMathSign { e } + { \expWhole { \int_sign:n {#1} } } -\PrgNewFunction \IntMathAbs { e } { \Expand { \int_abs:n {#1} } } +\fun@NewTwoFunctions \intMathAbs \IntMathAbs { e } + { \expWhole { \int_abs:n {#1} } } -\PrgNewFunction \IntMathMax { e e } { \Expand { \int_max:nn {#1} {#2} } } +\fun@NewTwoFunctions \intMathMax \IntMathMax { e e } + { \expWhole { \int_max:nn {#1} {#2} } } -\PrgNewFunction \IntMathMin { e e } { \Expand { \int_min:nn {#1} {#2} } } +\fun@NewTwoFunctions \intMathMin \IntMathMin { e e } + { \expWhole { \int_min:nn {#1} {#2} } } -\PrgNewFunction \IntMathMod { e e } { \Expand { \int_mod:nn {#1} {#2} } } +\fun@NewTwoFunctions \intMathMod \IntMathMod { e e } + { \expWhole { \int_mod:nn {#1} {#2} } } -\PrgNewFunction \IntMathRand { e e } { \Expand { \int_rand:nn {#1} {#2} } } +\fun@NewTwoFunctions \intMathRand \IntMathRand { e e } + { \expWhole { \int_rand:nn {#1} {#2} } } -\PrgNewFunction \IntNew { M } { \int_new:N #1 } +\fun@NewTwoFunctions \intNew \IntNew { M } { \int_new:N #1 } -\PrgNewFunction \IntConst { M e } { \int_const:Nn #1 { #2 } } +\fun@NewTwoFunctions \intConst \IntConst { M e } { \int_const:Nn #1 { #2 } } -\PrgNewFunction \IntLog { e } { \int_log:n { #1 } } +\fun@NewTwoFunctions \intLog \IntLog { e } { \int_log:n { #1 } } -\PrgNewFunction \IntVarLog { M } { \int_log:N #1 } +\fun@NewTwoFunctions \intVarLog \IntVarLog { M } { \int_log:N #1 } -\PrgNewFunction \IntShow { e } { \int_show:n { #1 } } +\fun@NewTwoFunctions \intShow \IntShow { e } { \int_show:n { #1 } } -\PrgNewFunction \IntVarShow { M } { \int_show:N #1 } +\fun@NewTwoFunctions \intVarShow \IntVarShow { M } { \int_show:N #1 } -\PrgNewFunction \IntUse { M } { \Return { \Value #1 } } +\fun@NewTwoFunctions \intUse \IntUse { M } { \prgReturn { \expValue #1 } } -\PrgNewFunction \IntSet { M e } +\fun@NewTwoFunctions \intSet \IntSet { M e } { \__fun_do_assignment:Nnn #1 { \int_gset:Nn #1 {#2} } { \int_set:Nn #1 {#2} } } -\PrgNewFunction \IntZero { M } +\fun@NewTwoFunctions \intZero \IntZero { M } { \__fun_do_assignment:Nnn #1 { \int_gzero:N #1 } { \int_zero:N #1 } } -\PrgNewFunction \IntZeroNew { M } +\fun@NewTwoFunctions \intZeroNew \IntZeroNew { M } { \__fun_do_assignment:Nnn #1 { \int_gzero_new:N #1 } { \int_zero_new:N #1 } } -\PrgNewFunction \IntSetEq { M M } +\fun@NewTwoFunctions \intSetEq \IntSetEq { M M } { - \__fun_do_assignment:Nnn #1 { \int_gset_eq:NN #1 #2 } { \int_set_eq:NN #1 #2 } + \__fun_do_assignment:Nnn #1 + { \int_gset_eq:NN #1 #2 } { \int_set_eq:NN #1 #2 } } -\PrgNewFunction \IntIncr { M } +\fun@NewTwoFunctions \intIncr \IntIncr { M } { \__fun_do_assignment:Nnn #1 { \int_gincr:N #1 } { \int_incr:N #1 } } -\PrgNewFunction \IntDecr { M } +\fun@NewTwoFunctions \intDecr \IntDecr { M } { \__fun_do_assignment:Nnn #1 { \int_gdecr:N #1 } { \int_decr:N #1 } } -\PrgNewFunction \IntAdd { M e } +\fun@NewTwoFunctions \intAdd \IntAdd { M e } { \__fun_do_assignment:Nnn #1 { \int_gadd:Nn #1 {#2} } { \int_add:Nn #1 {#2} } } -\PrgNewFunction \IntSub { M e } +\fun@NewTwoFunctions \intSub \IntSub { M e } { \__fun_do_assignment:Nnn #1 { \int_gsub:Nn #1 {#2} } { \int_sub:Nn #1 {#2} } } %% Command \prg_replicate:nn yields its result after two expansion steps -\PrgNewFunction \IntReplicate { e m } +\fun@NewTwoFunctions \intReplicate \IntReplicate { e m } { - \exp_args:NNo \exp_args:No \Return { \prg_replicate:nn {#1} {#2} } + \exp_args:NNo \exp_args:No \prgReturn { \prg_replicate:nn {#1} {#2} } } -\PrgNewFunction \IntStepInline { e e e n } +\fun@NewTwoFunctions \intStepInline \IntStepInline { e e e n } { \int_step_inline:nnnn {#1} {#2} {#3} {#4} } -\PrgNewFunction \IntStepOneInline { e e n } +\fun@NewTwoFunctions \intStepOneInline \IntStepOneInline { e e n } { \int_step_inline:nnn {#1} {#2} {#3} } -\PrgNewFunction \IntStepVariable { e e e M n } +\fun@NewTwoFunctions \intStepVariable \IntStepVariable { e e e M n } { \int_step_variable:nnnNn {#1} {#2} {#3} #4 {#5} } -\PrgNewFunction \IntStepOneVariable { e e M n } +\fun@NewTwoFunctions \intStepOneVariable \IntStepOneVariable { e e M n } { \int_step_variable:nnNn {#1} {#2} #3 {#4} } -\PrgNewConditional \IntIfExist { M } +\fun@NewTwoConditionals \intIfExist \IntIfExist { M } { - \int_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \int_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \IntIfOdd { e } +\fun@NewTwoConditionals \intIfOdd \IntIfOdd { e } { - \int_if_odd:nTF { #1 } { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \int_if_odd:nTF { #1 } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \IntIfEven { e } +\fun@NewTwoConditionals \intIfEven \IntIfEven { e } { - \int_if_even:nTF { #1 } { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \int_if_even:nTF { #1 } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \IntCompare { e N e } +\fun@NewTwoConditionals \intCompare \IntCompare { e N e } { \int_compare:nNnTF {#1} #2 {#3} - { \Return { \cTrueBool } } - { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } + { \prgReturn { \cFalseBool } } } -\PrgNewFunction \IntCase { e m } { \int_case:nn {#1} {#2} } -\PrgNewFunction \IntCaseT { e m n } { \int_case:nnT {#1} {#2} {#3} } -\PrgNewFunction \IntCaseF { e m n } { \int_case:nnF {#1} {#2} {#3} } -\PrgNewFunction \IntCaseTF { e m n n } { \int_case:nnTF {#1} {#2} {#3} {#4} } +\fun@NewTwoFunctions \intCase \IntCase { e m } + { \int_case:nn {#1} {#2} } +\fun@NewTwoFunctions \intCaseT \IntCaseT { e m n } + { \int_case:nnT {#1} {#2} {#3} } +\fun@NewTwoFunctions \intCaseF \IntCaseF { e m n } + { \int_case:nnF {#1} {#2} {#3} } +\fun@NewTwoFunctions \intCaseTF \IntCaseTF { e m n n } + { \int_case:nnTF {#1} {#2} {#3} {#4} } %%% -------------------------------------------------------- %%> \section{Interfaces for Floating Point Numbers (Fp)} @@ -1511,88 +1590,97 @@ \fp_new:N \gTmpiFp \fp_new:N \gTmpjFp \fp_new:N \gTmpkFp \fp_new:N \g@FunTmpxFp \fp_new:N \g@FunTmpyFp \fp_new:N \g@FunTmpzFp -\PrgNewFunction \FpEval { e } { \Expand { \fp_eval:n {#1} } } +\fun@NewTwoFunctions \fpEval \FpEval { e } { \expWhole { \fp_eval:n {#1} } } -\PrgNewFunction \FpMathAdd { e e } { \Expand { \fp_eval:n { (#1) + (#2) } } } +\fun@NewTwoFunctions \fpMathAdd \FpMathAdd { e e } + { \expWhole { \fp_eval:n { (#1) + (#2) } } } -\PrgNewFunction \FpMathSub { e e } { \Expand { \fp_eval:n { (#1) - (#2) } } } +\fun@NewTwoFunctions \fpMathSub \FpMathSub { e e } + { \expWhole { \fp_eval:n { (#1) - (#2) } } } -\PrgNewFunction \FpMathMult { e e } { \Expand { \fp_eval:n { (#1) * (#2) } } } +\fun@NewTwoFunctions \fpMathMult \FpMathMult { e e } + { \expWhole { \fp_eval:n { (#1) * (#2) } } } -\PrgNewFunction \FpMathDiv { e e } { \Expand { \fp_eval:n { (#1) / (#2) } } } +\fun@NewTwoFunctions \fpMathDiv \FpMathDiv { e e } + { \expWhole { \fp_eval:n { (#1) / (#2) } } } -\PrgNewFunction \FpMathSign { e } { \Expand { \fp_sign:n {#1} } } +\fun@NewTwoFunctions \fpMathSign \FpMathSign { e } + { \expWhole { \fp_sign:n {#1} } } -\PrgNewFunction \FpMathAbs { e } { \Expand { \fp_abs:n {#1} } } +\fun@NewTwoFunctions \fpMathAbs \FpMathAbs { e } + { \expWhole { \fp_abs:n {#1} } } -\PrgNewFunction \FpMathMax { e e } { \Expand { \fp_max:nn {#1} {#2} } } +\fun@NewTwoFunctions \fpMathMax \FpMathMax { e e } + { \expWhole { \fp_max:nn {#1} {#2} } } -\PrgNewFunction \FpMathMin { e e } { \Expand { \fp_min:nn {#1} {#2} } } +\fun@NewTwoFunctions \fpMathMin \FpMathMin { e e } + { \expWhole { \fp_min:nn {#1} {#2} } } -\PrgNewFunction \FpNew { M } { \fp_new:N #1 } +\fun@NewTwoFunctions \fpNew \FpNew { M } { \fp_new:N #1 } -\PrgNewFunction \FpConst { M e } { \fp_const:Nn #1 {#2} } +\fun@NewTwoFunctions \fpConst \FpConst { M e } { \fp_const:Nn #1 {#2} } -\PrgNewFunction \FpUse { M } { \Expand { \fp_use:N #1 } } +\fun@NewTwoFunctions \fpUse \FpUse { M } { \expWhole { \fp_use:N #1 } } -\PrgNewFunction \FpLog { e } { \fp_log:n {#1} } +\fun@NewTwoFunctions \fpLog \FpLog { e } { \fp_log:n {#1} } -\PrgNewFunction \FpVarLog { M } { \fp_log:N #1 } +\fun@NewTwoFunctions \fpVarLog \FpVarLog { M } { \fp_log:N #1 } -\PrgNewFunction \FpShow { e } { \fp_show:n {#1} } +\fun@NewTwoFunctions \fpShow \FpShow { e } { \fp_show:n {#1} } -\PrgNewFunction \FpVarShow { M } { \fp_show:N #1 } +\fun@NewTwoFunctions \fpVarShow \FpVarShow { M } { \fp_show:N #1 } -\PrgNewFunction \FpSet { M e } +\fun@NewTwoFunctions \fpSet \FpSet { M e } { \__fun_do_assignment:Nnn #1 { \fp_gset:Nn #1 {#2} } { \fp_set:Nn #1 {#2} } } -\PrgNewFunction \FpSetEq { M M } +\fun@NewTwoFunctions \fpSetEq \FpSetEq { M M } { \__fun_do_assignment:Nnn #1 { \fp_gset_eq:NN #1 #2 } { \fp_set_eq:NN #1 #2 } } -\PrgNewFunction \FpZero { M } +\fun@NewTwoFunctions \fpZero \FpZero { M } { \__fun_do_assignment:Nnn #1 { \fp_gzero:N #1 } { \fp_zero:N #1 } } -\PrgNewFunction \FpZeroNew { M } +\fun@NewTwoFunctions \fpZeroNew \FpZeroNew { M } { \__fun_do_assignment:Nnn #1 { \fp_gzero_new:N #1 } { \fp_zero_new:N #1 } } -\PrgNewFunction \FpAdd { M e } +\fun@NewTwoFunctions \fpAdd \FpAdd { M e } { \__fun_do_assignment:Nnn #1 { \fp_gadd:Nn #1 {#2} } { \fp_add:Nn #1 {#2} } } -\PrgNewFunction \FpSub { M e } +\fun@NewTwoFunctions \fpSub \FpSub { M e } { \__fun_do_assignment:Nnn #1 { \fp_gsub:Nn #1 {#2} } { \fp_sub:Nn #1 {#2} } } -\PrgNewFunction \FpStepInline { e e e n } +\fun@NewTwoFunctions \fpStepInline \FpStepInline { e e e n } { \fp_step_inline:nnnn {#1} {#2} {#3} {#4} } -\PrgNewFunction \FpStepVariable { e e e M n } +\fun@NewTwoFunctions \fpStepVariable \FpStepVariable { e e e M n } { \fp_step_variable:nnnNn {#1} {#2} {#3} #4 {#5} } -\PrgNewConditional \FpIfExist { M } +\fun@NewTwoConditionals \fpIfExist \FpIfExist { M } { - \fp_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \fp_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \FpCompare { e N e } +\fun@NewTwoConditionals \fpCompare \FpCompare { e N e } { \fp_compare:nNnTF {#1} #2 {#3} - { \Return { \cTrueBool } } - { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } + { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -1610,124 +1698,130 @@ \dim_new:N \gTmpiDim \dim_new:N \gTmpjDim \dim_new:N \gTmpkDim \dim_new:N \g@FunTmpxDim \dim_new:N \g@FunTmpyDim \dim_new:N \g@FunTmpzDim -\PrgNewFunction \DimEval { m } +\fun@NewTwoFunctions \dimEval \DimEval { m } { - \Return { \Expand { \dim_eval:n { #1 } } } + \prgReturn { \expWhole { \dim_eval:n { #1 } } } } -\PrgNewFunction \DimMathAdd { m m } +\fun@NewTwoFunctions \dimMathAdd \DimMathAdd { m m } { \dim_set:Nn \l@FunTmpxDim { \dim_eval:n { (#1) + (#2) } } - \Return { \Value \l@FunTmpxDim } + \prgReturn { \expValue \l@FunTmpxDim } } -\PrgNewFunction \DimMathSub { m m } +\fun@NewTwoFunctions \dimMathSub \DimMathSub { m m } { \dim_set:Nn \l@FunTmpxDim { \dim_eval:n { (#1) - (#2) } } - \Return { \Value \l@FunTmpxDim } + \prgReturn { \expValue \l@FunTmpxDim } } -\PrgNewFunction \DimMathSign { m } +\fun@NewTwoFunctions \dimMathSign \DimMathSign { m } { - \Return { \Expand { \dim_sign:n { #1 } } } + \prgReturn { \expWhole { \dim_sign:n { #1 } } } } -\PrgNewFunction \DimMathAbs { m } +\fun@NewTwoFunctions \dimMathAbs \DimMathAbs { m } { - \Return { \Expand { \dim_abs:n { #1 } } } + \prgReturn { \expWhole { \dim_abs:n { #1 } } } } -\PrgNewFunction \DimMathMax { m m } +\fun@NewTwoFunctions \dimMathMax \DimMathMax { m m } { - \Return { \Expand { \dim_max:nn { #1 } { #2 } } } + \prgReturn { \expWhole { \dim_max:nn { #1 } { #2 } } } } -\PrgNewFunction \DimMathMin { m m } +\fun@NewTwoFunctions \dimMathMin \DimMathMin { m m } { - \Return { \Expand { \dim_min:nn { #1 } { #2 } } } + \prgReturn { \expWhole { \dim_min:nn { #1 } { #2 } } } } -\PrgNewFunction \DimMathRatio { m m } +\fun@NewTwoFunctions \dimMathRatio \DimMathRatio { m m } { - \Return { \Expand { \dim_ratio:nn { #1 } { #2 } } } + \prgReturn { \expWhole { \dim_ratio:nn { #1 } { #2 } } } } -\PrgNewFunction \DimNew { M } { \dim_new:N #1 } +\fun@NewTwoFunctions \dimNew \DimNew { M } { \dim_new:N #1 } -\PrgNewFunction \DimConst { M m } { \dim_const:Nn #1 {#2} } +\fun@NewTwoFunctions \dimConst \DimConst { M m } { \dim_const:Nn #1 {#2} } -\PrgNewFunction \DimUse { M } { \Return { \Value #1 } } +\fun@NewTwoFunctions \dimUse \DimUse { M } { \prgReturn { \expValue #1 } } -\PrgNewFunction \DimLog { m } { \dim_log:n { #1 } } +\fun@NewTwoFunctions \dimLog \DimLog { m } { \dim_log:n { #1 } } -\PrgNewFunction \DimVarLog { M } { \dim_log:N #1 } +\fun@NewTwoFunctions \dimVarLog \DimVarLog { M } { \dim_log:N #1 } -\PrgNewFunction \DimShow { m } { \dim_show:n { #1 } } +\fun@NewTwoFunctions \dimShow \DimShow { m } { \dim_show:n { #1 } } -\PrgNewFunction \DimVarShow { M } { \dim_show:N #1 } +\fun@NewTwoFunctions \dimVarShow \DimVarShow { M } { \dim_show:N #1 } -\PrgNewFunction \DimSet { M m } +\fun@NewTwoFunctions \dimSet \DimSet { M m } { \__fun_do_assignment:Nnn #1 { \dim_gset:Nn #1 {#2} } { \dim_set:Nn #1 {#2} } } -\PrgNewFunction \DimSetEq { M M } +\fun@NewTwoFunctions \dimSetEq \DimSetEq { M M } { - \__fun_do_assignment:Nnn #1 { \dim_gset_eq:NN #1 #2 } { \dim_set_eq:NN #1 #2 } + \__fun_do_assignment:Nnn #1 + { \dim_gset_eq:NN #1 #2 } { \dim_set_eq:NN #1 #2 } } -\PrgNewFunction \DimZero { M } +\fun@NewTwoFunctions \dimZero \DimZero { M } { \__fun_do_assignment:Nnn #1 { \dim_gzero:N #1 } { \dim_zero:N #1 } } -\PrgNewFunction \DimZeroNew { M } +\fun@NewTwoFunctions \dimZeroNew \DimZeroNew { M } { \__fun_do_assignment:Nnn #1 { \dim_gzero_new:N #1 } { \dim_zero_new:N #1 } } -\PrgNewFunction \DimAdd { M m } +\fun@NewTwoFunctions \dimAdd \DimAdd { M m } { \__fun_do_assignment:Nnn #1 { \dim_gadd:Nn #1 {#2} } { \dim_add:Nn #1 {#2} } } -\PrgNewFunction \DimSub { M m } +\fun@NewTwoFunctions \dimSub \DimSub { M m } { \__fun_do_assignment:Nnn #1 { \dim_gsub:Nn #1 {#2} } { \dim_sub:Nn #1 {#2} } } -\PrgNewFunction \DimStepInline { m m m n } +\fun@NewTwoFunctions \dimStepInline \DimStepInline { m m m n } { \dim_step_inline:nnnn { #1 } { #2 } { #3 } { #4 } } -\PrgNewFunction \DimStepVariable { m m m M n } +\fun@NewTwoFunctions \dimStepVariable \DimStepVariable { m m m M n } { \dim_step_variable:nnnNn { #1 } { #2 } { #3 } #4 { #5 } } -\PrgNewConditional \DimIfExist { M } +\fun@NewTwoConditionals \dimIfExist \DimIfExist { M } { - \dim_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \dim_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \DimCompare { m N m } +\fun@NewTwoConditionals \dimCompare \DimCompare { m N m } { \dim_compare:nNnTF {#1} #2 {#3} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewFunction \DimCase { m m } { \dim_case:nn {#1} {#2} } -\PrgNewFunction \DimCaseT { m m n } { \dim_case:nnT {#1} {#2} {#3} } -\PrgNewFunction \DimCaseF { m m n } { \dim_case:nnF {#1} {#2} {#3} } -\PrgNewFunction \DimCaseTF { m m n n } { \dim_case:nnTF {#1} {#2} {#3} {#4} } +\fun@NewTwoFunctions \dimCase \DimCase { m m } + { \dim_case:nn {#1} {#2} } +\fun@NewTwoFunctions \dimCaseT \DimCaseT { m m n } + { \dim_case:nnT {#1} {#2} {#3} } +\fun@NewTwoFunctions \dimCaseF \DimCaseF { m m n } + { \dim_case:nnF {#1} {#2} {#3} } +\fun@NewTwoFunctions \dimCaseTF \DimCaseTF { m m n n } + { \dim_case:nnTF {#1} {#2} {#3} {#4} } %%% -------------------------------------------------------- %%> \section{Interfaces for Sorting Functions (Sort)} %%% -------------------------------------------------------- -\cs_set_eq:NN \SortReturnSame \sort_return_same: -\cs_set_eq:NN \SortReturnSwapped \sort_return_swapped: +\cs_set_eq:NN \sortReturnSame \sort_return_same: +\cs_set_eq:NN \sortReturnSwapped \sort_return_swapped: %%% -------------------------------------------------------- %%> \section{Interfaces for Comma Separated Lists (Clist)} @@ -1745,203 +1839,217 @@ \clist_set_eq:NN \cEmptyClist \c_empty_clist -\PrgNewFunction \ClistNew { M } { \clist_new:N #1 } +\fun@NewTwoFunctions \clistNew \ClistNew { M } { \clist_new:N #1 } -\PrgNewFunction \ClistLog { m } { \clist_log:n { #1 } } +\fun@NewTwoFunctions \clistLog \ClistLog { m } { \clist_log:n { #1 } } -\PrgNewFunction \ClistVarLog { M } { \clist_log:N #1 } +\fun@NewTwoFunctions \clistVarLog \ClistVarLog { M } { \clist_log:N #1 } -\PrgNewFunction \ClistShow { m } { \clist_show:n { #1 } } +\fun@NewTwoFunctions \clistShow \ClistShow { m } { \clist_show:n { #1 } } -\PrgNewFunction \ClistVarShow { M } { \clist_show:N #1 } +\fun@NewTwoFunctions \clistVarShow \ClistVarShow { M } { \clist_show:N #1 } -\PrgNewFunction \ClistVarJoin { M m } +\fun@NewTwoFunctions \clistVarJoin \ClistVarJoin { M m } { - \Expand { \clist_use:Nn #1 { #2 } } + \expWhole { \clist_use:Nn #1 { #2 } } } -\PrgNewFunction \ClistVarJoinExtended { M m m m } +\fun@NewTwoFunctions \clistVarJoinExtended \ClistVarJoinExtended { M m m m } { - \Expand { \clist_use:Nnnn #1 { #2 } { #3 } { #4 } } + \expWhole { \clist_use:Nnnn #1 { #2 } { #3 } { #4 } } } -\PrgNewFunction \ClistJoin { m m } +\fun@NewTwoFunctions \clistJoin \ClistJoin { m m } { - \Expand { \clist_use:nn { #1 } { #2 } } + \expWhole { \clist_use:nn { #1 } { #2 } } } -\PrgNewFunction \ClistJoinExtended { m m m m } +\fun@NewTwoFunctions \clistJoinExtended \ClistJoinExtended { m m m m } { - \Expand { \clist_use:nnnn { #1 } { #2 } { #3 } { #4 } } + \expWhole { \clist_use:nnnn { #1 } { #2 } { #3 } { #4 } } } -\PrgNewFunction \ClistConst { M m } { \clist_const:Nn #1 { #2 } } +\fun@NewTwoFunctions \clistConst \ClistConst { M m } + { \clist_const:Nn #1 { #2 } } -\PrgNewFunction \ClistSet { M m } +\fun@NewTwoFunctions \clistSet \ClistSet { M m } { \__fun_do_assignment:Nnn #1 { \clist_gset:Nn #1 {#2} } { \clist_set:Nn #1 {#2} } } -\PrgNewFunction \ClistSetEq { M M } +\fun@NewTwoFunctions \clistSetEq \ClistSetEq { M M } { \__fun_do_assignment:Nnn #1 { \clist_gset_eq:NN #1 #2 } { \clist_set_eq:NN #1 #2 } } -\PrgNewFunction \ClistSetFromSeq { M M } +\fun@NewTwoFunctions \clistSetFromSeq \ClistSetFromSeq { M M } { \__fun_do_assignment:Nnn #1 { \clist_gset_from_seq:NN #1 #2 } { \clist_set_from_seq:NN #1 #2 } } -\PrgNewFunction \ClistConcat { M M M } +\fun@NewTwoFunctions \clistConcat \ClistConcat { M M M } { \__fun_do_assignment:Nnn #1 { \clist_gconcat:NNN #1 #2 #3 } { \clist_concat:NNN #1 #2 #3 } } -\PrgNewFunction \ClistClear { M } +\fun@NewTwoFunctions \clistClear \ClistClear { M } { \__fun_do_assignment:Nnn #1 { \clist_gclear:N #1 } { \clist_clear:N #1 } } -\PrgNewFunction \ClistClearNew { M } +\fun@NewTwoFunctions \clistClearNew \ClistClearNew { M } { - \__fun_do_assignment:Nnn #1 { \clist_gclear_new:N #1 } { \clist_clear_new:N #1 } + \__fun_do_assignment:Nnn #1 + { \clist_gclear_new:N #1 } { \clist_clear_new:N #1 } } -\PrgNewFunction \ClistPutLeft { M m } +\fun@NewTwoFunctions \clistPutLeft \ClistPutLeft { M m } { \__fun_do_assignment:Nnn #1 { \clist_gput_left:Nn #1 {#2} } { \clist_put_left:Nn #1 {#2} } } -\PrgNewFunction \ClistPutRight { M m } +\fun@NewTwoFunctions \clistPutRight \ClistPutRight { M m } { \__fun_do_assignment:Nnn #1 { \clist_gput_right:Nn #1 {#2} } { \clist_put_right:Nn #1 {#2} } } -\PrgNewFunction \ClistVarRemoveDuplicates { M } +\fun@NewTwoFunctions \clistVarRemoveDuplicates \ClistVarRemoveDuplicates { M } { \__fun_do_assignment:Nnn #1 { \clist_gremove_duplicates:N #1 } { \clist_remove_duplicates:N #1 } } -\PrgNewFunction \ClistVarRemoveAll { M m } +\fun@NewTwoFunctions \clistVarRemoveAll \ClistVarRemoveAll { M m } { \__fun_do_assignment:Nnn #1 { \clist_gremove_all:Nn #1 {#2} } { \clist_remove_all:Nn #1 {#2} } } -\PrgNewFunction \ClistVarReverse { M } +\fun@NewTwoFunctions \clistVarReverse \ClistVarReverse { M } { \__fun_do_assignment:Nnn #1 { \clist_greverse:N #1 } { \clist_reverse:N #1 } } -\PrgNewFunction \ClistVarSort { M m } +\fun@NewTwoFunctions \clistVarSort \ClistVarSort { M m } { \__fun_do_assignment:Nnn #1 { \clist_gsort:Nn #1 {#2} } { \clist_sort:Nn #1 {#2} } } -\PrgNewFunction \ClistCount { m } { \Expand { \clist_count:n { #1 } } } +\fun@NewTwoFunctions \clistCount \ClistCount { m } + { \expWhole { \clist_count:n { #1 } } } -\PrgNewFunction \ClistVarCount { M } { \Expand { \clist_count:N #1 } } +\fun@NewTwoFunctions \clistVarCount \ClistVarCount { M } + { \expWhole { \clist_count:N #1 } } -\PrgNewFunction \ClistGet { M M } +\fun@NewTwoFunctions \clistGet \ClistGet { M M } { \clist_get:NN #1 #2 \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \ClistGetT { M M n } { \clist_get:NNT #1 #2 {#3} } -\PrgNewFunction \ClistGetF { M M n } { \clist_get:NNF #1 #2 {#3} } -\PrgNewFunction \ClistGetTF { M M n n } { \clist_get:NNTF #1 #2 {#3} {#4} } +\fun@NewTwoFunctions \clistGetT \ClistGetT { M M n } + { \clist_get:NNT #1 #2 {#3} } +\fun@NewTwoFunctions \clistGetF \ClistGetF { M M n } + { \clist_get:NNF #1 #2 {#3} } +\fun@NewTwoFunctions \clistGetTF \ClistGetTF { M M n n } + { \clist_get:NNTF #1 #2 {#3} {#4} } -\PrgNewFunction \ClistPop { M M } +\fun@NewTwoFunctions \clistPop \ClistPop { M M } { \__fun_do_assignment:Nnn #1 { \clist_gpop:NN #1 #2 } { \clist_pop:NN #1 #2 } \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \ClistPopT { M M n } +\fun@NewTwoFunctions \clistPopT \ClistPopT { M M n } { \__fun_do_assignment:Nnn #1 { \clist_gpop:NNT #1 #2 {#3} } { \clist_pop:NNT #1 #2 {#3} } } -\PrgNewFunction \ClistPopF { M M n } +\fun@NewTwoFunctions \clistPopF \ClistPopF { M M n } { \__fun_do_assignment:Nnn #1 { \clist_gpop:NNF #1 #2 {#3} } { \clist_pop:NNF #1 #2 {#3} } } -\PrgNewFunction \ClistPopTF { M M n n } +\fun@NewTwoFunctions \clistPopTF \ClistPopTF { M M n n } { \__fun_do_assignment:Nnn #1 { \clist_gpop:NNTF #1 #2 {#3} {#4} } { \clist_pop:NNTF #1 #2 {#3} {#4} } } -\PrgNewFunction \ClistPush { M m } +\fun@NewTwoFunctions \clistPush \ClistPush { M m } { \__fun_do_assignment:Nnn #1 { \clist_gpush:Nn #1 {#2} } { \clist_push:Nn #1 {#2} } } -\PrgNewFunction \ClistItem { m m } { \Expand { \clist_item:nn {#1} {#2} } } +\fun@NewTwoFunctions \clistItem \ClistItem { m m } + { \expWhole { \clist_item:nn {#1} {#2} } } -\PrgNewFunction \ClistVarItem { M m } { \Expand { \clist_item:Nn #1 {#2} } } +\fun@NewTwoFunctions \clistVarItem \ClistVarItem { M m } + { \expWhole { \clist_item:Nn #1 {#2} } } -\PrgNewFunction \ClistRandItem { m } { \Expand { \clist_rand_item:n {#1} } } +\fun@NewTwoFunctions \clistRandItem \ClistRandItem { m } + { \expWhole { \clist_rand_item:n {#1} } } -\PrgNewFunction \ClistVarRandItem { M } { \Expand { \clist_rand_item:N #1 } } +\fun@NewTwoFunctions \clistVarRandItem \ClistVarRandItem { M } + { \expWhole { \clist_rand_item:N #1 } } -\PrgNewFunction \ClistMapInline { m n } +\fun@NewTwoFunctions \clistMapInline \ClistMapInline { m n } { \clist_map_inline:nn {#1} {#2} } -\PrgNewFunction \ClistVarMapInline { M n } +\fun@NewTwoFunctions \clistVarMapInline \ClistVarMapInline { M n } { \clist_map_inline:Nn #1 {#2} } -\PrgNewFunction \ClistMapVariable { m M n } +\fun@NewTwoFunctions \clistMapVariable \ClistMapVariable { m M n } { \clist_map_variable:nNn {#1} #2 {#3} } -\PrgNewFunction \ClistVarMapVariable { M M n } +\fun@NewTwoFunctions \clistVarMapVariable \ClistVarMapVariable { M M n } { \clist_map_variable:NNn #1 #2 {#3} } -\cs_set_eq:NN \ClistMapBreak \clist_map_break: +\cs_set_eq:NN \clistMapBreak \clist_map_break: -\PrgNewConditional \ClistIfExist { M } +\fun@NewTwoConditionals \clistIfExist \ClistIfExist { M } { - \clist_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \clist_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \ClistIfEmpty { m } +\fun@NewTwoConditionals \clistIfEmpty \ClistIfEmpty { m } { - \clist_if_empty:nTF {#1} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \clist_if_empty:nTF {#1} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \ClistVarIfEmpty { M } +\fun@NewTwoConditionals \clistVarIfEmpty \ClistVarIfEmpty { M } { - \clist_if_empty:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \clist_if_empty:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \ClistIfIn { m m } +\fun@NewTwoConditionals \clistIfIn \ClistIfIn { m m } { \clist_if_in:nnTF {#1} {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \ClistVarIfIn { M m } +\fun@NewTwoConditionals \clistVarIfIn \ClistVarIfIn { M m } { \clist_if_in:NnTF #1 {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -1958,236 +2066,251 @@ \seq_set_eq:NN \cEmptySeq \c_empty_seq -\PrgNewFunction \SeqNew { M } { \seq_new:N #1 } +\fun@NewTwoFunctions \seqNew \SeqNew { M } { \seq_new:N #1 } -\PrgNewFunction \SeqVarLog { M } { \seq_log:N #1 } +\fun@NewTwoFunctions \seqVarLog \SeqVarLog { M } { \seq_log:N #1 } -\PrgNewFunction \SeqVarShow { M } { \seq_show:N #1 } +\fun@NewTwoFunctions \seqVarShow \SeqVarShow { M } { \seq_show:N #1 } -\PrgNewFunction \SeqVarJoin { M m } +\fun@NewTwoFunctions \seqVarJoin \SeqVarJoin { M m } { - \Expand { \seq_use:Nn #1 { #2 } } + \expWhole { \seq_use:Nn #1 { #2 } } } -\PrgNewFunction \SeqVarJoinExtended { M m m m } +\fun@NewTwoFunctions \seqVarJoinExtended \SeqVarJoinExtended { M m m m } { - \Expand { \seq_use:Nnnn #1 { #2 } { #3 } { #4 } } + \expWhole { \seq_use:Nnnn #1 { #2 } { #3 } { #4 } } } -\PrgNewFunction \SeqJoin { m m } +\fun@NewTwoFunctions \seqJoin \SeqJoin { m m } { - \Expand { \seq_use:nn { #1 } { #2 } } + \expWhole { \seq_use:nn { #1 } { #2 } } } -\PrgNewFunction \SeqJoinExtended { m m m m } +\fun@NewTwoFunctions \seqJoinExtended \SeqJoinExtended { m m m m } { - \Expand { \seq_use:nnnn { #1 } { #2 } { #3 } { #4 } } + \expWhole { \seq_use:nnnn { #1 } { #2 } { #3 } { #4 } } } -\PrgNewFunction \SeqConstFromClist { M m } { \seq_const_from_clist:Nn #1 { #2 } } +\fun@NewTwoFunctions \seqConstFromClist \SeqConstFromClist { M m } + { \seq_const_from_clist:Nn #1 { #2 } } -\PrgNewFunction \SeqSetFromClist { M m } +\fun@NewTwoFunctions \seqSetFromClist \SeqSetFromClist { M m } { \__fun_do_assignment:Nnn #1 { \seq_gset_from_clist:Nn #1 {#2} } { \seq_set_from_clist:Nn #1 {#2} } } -\PrgNewFunction \SeqSetEq { M M } +\fun@NewTwoFunctions \seqSetEq \SeqSetEq { M M } { \__fun_do_assignment:Nnn #1 { \seq_gset_eq:NN #1 #2 } { \seq_set_eq:NN #1 #2 } } -\PrgNewFunction \SeqSetSplit { M m m } +\fun@NewTwoFunctions \seqSetSplit \SeqSetSplit { M m m } { \__fun_do_assignment:Nnn #1 { \seq_gset_split:Nnn #1 {#2} {#3} } { \seq_set_split:Nnn #1 {#2} {#3} } } -\PrgNewFunction \SeqConcat { M M M } +\fun@NewTwoFunctions \seqConcat \SeqConcat { M M M } { \__fun_do_assignment:Nnn #1 { \seq_gconcat:NNN #1 #2 #3 } { \seq_concat:NNN #1 #2 #3 } } -\PrgNewFunction \SeqClear { M } +\fun@NewTwoFunctions \seqClear \SeqClear { M } { \__fun_do_assignment:Nnn #1 { \seq_gclear:N #1 } { \seq_clear:N #1 } } -\PrgNewFunction \SeqClearNew { M } +\fun@NewTwoFunctions \seqClearNew \SeqClearNew { M } { \__fun_do_assignment:Nnn #1 { \seq_gclear_new:N #1 } { \seq_clear_new:N #1 } } -\PrgNewFunction \SeqPutLeft { M m } +\fun@NewTwoFunctions \seqPutLeft \SeqPutLeft { M m } { \__fun_do_assignment:Nnn #1 { \seq_gput_left:Nn #1 {#2} } { \seq_put_left:Nn #1 {#2} } } -\PrgNewFunction \SeqPutRight { M m } +\fun@NewTwoFunctions \seqPutRight \SeqPutRight { M m } { \__fun_do_assignment:Nnn #1 { \seq_gput_right:Nn #1 {#2} } { \seq_put_right:Nn #1 {#2} } } -\PrgNewFunction \SeqVarRemoveDuplicates { M } +\fun@NewTwoFunctions \seqVarRemoveDuplicates \SeqVarRemoveDuplicates { M } { \__fun_do_assignment:Nnn #1 { \seq_gremove_duplicates:N #1 } { \seq_remove_duplicates:N #1 } } -\PrgNewFunction \SeqVarRemoveAll { M m } +\fun@NewTwoFunctions \seqVarRemoveAll \SeqVarRemoveAll { M m } { \__fun_do_assignment:Nnn #1 { \seq_gremove_all:Nn #1 {#2} } { \seq_remove_all:Nn #1 {#2} } } -\PrgNewFunction \SeqVarReverse { M } +\fun@NewTwoFunctions \seqVarReverse \SeqVarReverse { M } { \__fun_do_assignment:Nnn #1 { \seq_greverse:N #1 } { \seq_reverse:N #1 } } -\PrgNewFunction \SeqVarSort { M m } +\fun@NewTwoFunctions \seqVarSort \SeqVarSort { M m } { \__fun_do_assignment:Nnn #1 { \seq_gsort:Nn #1 {#2} } { \seq_sort:Nn #1 {#2} } } -\PrgNewFunction \SeqVarCount { M } { \Expand { \seq_count:N #1 } } +\fun@NewTwoFunctions \seqVarCount \SeqVarCount { M } + { \expWhole { \seq_count:N #1 } } -\PrgNewFunction \SeqGet { M M } +\fun@NewTwoFunctions \seqGet \SeqGet { M M } { \seq_get:NN #1 #2 \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \SeqGetT { M M n } { \seq_get:NNT #1 #2 {#3} } -\PrgNewFunction \SeqGetF { M M n } { \seq_get:NNF #1 #2 {#3} } -\PrgNewFunction \SeqGetTF { M M n n } { \seq_get:NNTF #1 #2 {#3} {#4} } +\fun@NewTwoFunctions \seqGetT \SeqGetT { M M n } + { \seq_get:NNT #1 #2 {#3} } +\fun@NewTwoFunctions \seqGetF \SeqGetF { M M n } + { \seq_get:NNF #1 #2 {#3} } +\fun@NewTwoFunctions \seqGetTF \SeqGetTF { M M n n } + { \seq_get:NNTF #1 #2 {#3} {#4} } -\PrgNewFunction \SeqPop { M M } +\fun@NewTwoFunctions \seqPop \SeqPop { M M } { \__fun_do_assignment:Nnn #1 { \seq_gpop:NN #1 #2 } { \seq_pop:NN #1 #2 } \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \SeqPopT { M M n } +\fun@NewTwoFunctions \seqPopT \SeqPopT { M M n } { \__fun_do_assignment:Nnn #1 { \seq_gpop:NNT #1 #2 {#3} } { \seq_pop:NNT #1 #2 {#3} } } -\PrgNewFunction \SeqPopF { M M n } +\fun@NewTwoFunctions \seqPopF \SeqPopF { M M n } { \__fun_do_assignment:Nnn #1 { \seq_gpop:NNF #1 #2 {#3} } { \seq_pop:NNF #1 #2 {#3} } } -\PrgNewFunction \SeqPopTF { M M n n } +\fun@NewTwoFunctions \seqPopTF \SeqPopTF { M M n n } { \__fun_do_assignment:Nnn #1 { \seq_gpop:NNTF #1 #2 {#3} {#4} } { \seq_pop:NNTF #1 #2 {#3} {#4} } } -\PrgNewFunction \SeqPush { M m } +\fun@NewTwoFunctions \seqPush \SeqPush { M m } { \__fun_do_assignment:Nnn #1 { \seq_gpush:Nn #1 {#2} } { \seq_push:Nn #1 {#2} } } -\PrgNewFunction \SeqGetLeft { M M } +\fun@NewTwoFunctions \seqGetLeft \SeqGetLeft { M M } { \seq_get_left:NN #1 #2 \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \SeqGetLeftT { M M n } { \seq_get_left:NNT #1 #2 {#3} } -\PrgNewFunction \SeqGetLeftF { M M n } { \seq_get_left:NNF #1 #2 {#3} } -\PrgNewFunction \SeqGetLeftTF { M M n n } { \seq_get_left:NNTF #1 #2 {#3} {#4} } +\fun@NewTwoFunctions \seqGetLeftT \SeqGetLeftT { M M n } + { \seq_get_left:NNT #1 #2 {#3} } +\fun@NewTwoFunctions \seqGetLeftF \SeqGetLeftF { M M n } + { \seq_get_left:NNF #1 #2 {#3} } +\fun@NewTwoFunctions \seqGetLeftTF \SeqGetLeftTF { M M n n } + { \seq_get_left:NNTF #1 #2 {#3} {#4} } -\PrgNewFunction \SeqGetRight { M M } +\fun@NewTwoFunctions \seqGetRight \SeqGetRight { M M } { \seq_get_right:NN #1 #2 \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \SeqGetRightT { M M n } { \seq_get_right:NNT #1 #2 {#3} } -\PrgNewFunction \SeqGetRightF { M M n } { \seq_get_right:NNF #1 #2 {#3} } -\PrgNewFunction \SeqGetRightTF { M M n n } { \seq_get_right:NNTF #1 #2 {#3} {#4} } +\fun@NewTwoFunctions \seqGetRightT \SeqGetRightT { M M n } + { \seq_get_right:NNT #1 #2 {#3} } +\fun@NewTwoFunctions \seqGetRightF \SeqGetRightF { M M n } + { \seq_get_right:NNF #1 #2 {#3} } +\fun@NewTwoFunctions \seqGetRightTF \SeqGetRightTF { M M n n } + { \seq_get_right:NNTF #1 #2 {#3} {#4} } -\PrgNewFunction \SeqPopLeft { M M } +\fun@NewTwoFunctions \seqPopLeft \SeqPopLeft { M M } { \__fun_do_assignment:Nnn #1 { \seq_gpop_left:NN #1 #2 } { \seq_pop_left:NN #1 #2 } \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \SeqPopLeftT { M M n } +\fun@NewTwoFunctions \seqPopLeftT \SeqPopLeftT { M M n } { \__fun_do_assignment:Nnn #1 { \seq_gpop_left:NNT #1 #2 {#3} } { \seq_pop_left:NNT #1 #2 {#3} } } -\PrgNewFunction \SeqPopLeftF { M M n } +\fun@NewTwoFunctions \seqPopLeftF \SeqPopLeftF { M M n } { \__fun_do_assignment:Nnn #1 { \seq_gpop_left:NNF #1 #2 {#3} } { \seq_pop_left:NNF #1 #2 {#3} } } -\PrgNewFunction \SeqPopLeftTF { M M n n } +\fun@NewTwoFunctions \seqPopLeftTF \SeqPopLeftTF { M M n n } { \__fun_do_assignment:Nnn #1 { \seq_gpop_left:NNTF #1 #2 {#3} {#4} } { \seq_pop_left:NNTF #1 #2 {#3} {#4} } } -\PrgNewFunction \SeqPopRight { M M } +\fun@NewTwoFunctions \seqPopRight \SeqPopRight { M M } { \__fun_do_assignment:Nnn #1 { \seq_gpop_right:NN #1 #2 } { \seq_pop_right:NN #1 #2 } \__fun_quark_upgrade_no_value:N #2 } -\PrgNewFunction \SeqPopRightT { M M n } +\fun@NewTwoFunctions \seqPopRightT \SeqPopRightT { M M n } { \__fun_do_assignment:Nnn #1 { \seq_gpop_right:NNT #1 #2 {#3} } { \seq_pop_right:NNT #1 #2 {#3} } } -\PrgNewFunction \SeqPopRightF { M M n } +\fun@NewTwoFunctions \seqPopRightF \SeqPopRightF { M M n } { \__fun_do_assignment:Nnn #1 { \seq_gpop_right:NNF #1 #2 {#3} } { \seq_pop_right:NNF #1 #2 {#3} } } -\PrgNewFunction \SeqPopRightTF { M M n n } +\fun@NewTwoFunctions \seqPopRightTF \SeqPopRightTF { M M n n } { \__fun_do_assignment:Nnn #1 { \seq_gpop_right:NNTF #1 #2 {#3} {#4} } { \seq_pop_right:NNTF #1 #2 {#3} {#4} } } -\PrgNewFunction \SeqVarItem { M m } { \Expand { \seq_item:Nn #1 {#2} } } +\fun@NewTwoFunctions \seqVarItem \SeqVarItem { M m } + { \expWhole { \seq_item:Nn #1 {#2} } } -\PrgNewFunction \SeqVarRandItem { M } { \Expand { \seq_rand_item:N #1 } } +\fun@NewTwoFunctions \seqVarRandItem \SeqVarRandItem { M } + { \expWhole { \seq_rand_item:N #1 } } -\PrgNewFunction \SeqVarMapInline { M n } +\fun@NewTwoFunctions \seqVarMapInline \SeqVarMapInline { M n } { \seq_map_inline:Nn #1 {#2} } -\PrgNewFunction \SeqVarMapVariable { M M n } +\fun@NewTwoFunctions \seqVarMapVariable \SeqVarMapVariable { M M n } { \seq_map_variable:NNn #1 #2 {#3} } -\cs_set_eq:NN \SeqMapBreak \seq_map_break: +\cs_set_eq:NN \seqMapBreak \seq_map_break: -\PrgNewConditional \SeqIfExist { M } +\fun@NewTwoConditionals \seqIfExist \SeqIfExist { M } { - \seq_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \seq_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \SeqVarIfEmpty { M } +\fun@NewTwoConditionals \seqVarIfEmpty \SeqVarIfEmpty { M } { - \seq_if_empty:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \seq_if_empty:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \SeqVarIfIn { M m } +\fun@NewTwoConditionals \seqVarIfIn \SeqVarIfIn { M m } { \seq_if_in:NnTF #1 {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -2204,126 +2327,134 @@ \prop_set_eq:NN \cEmptyProp \c_empty_prop -\PrgNewFunction \PropNew { M } { \prop_new:N #1 } +\fun@NewTwoFunctions \propNew \PropNew { M } { \prop_new:N #1 } -\PrgNewFunction \PropVarLog { M } { \prop_log:N #1 } +\fun@NewTwoFunctions \propVarLog \PropVarLog { M } { \prop_log:N #1 } -\PrgNewFunction \PropVarShow { M } { \prop_show:N #1 } +\fun@NewTwoFunctions \propVarShow \PropVarShow { M } { \prop_show:N #1 } -\PrgNewFunction \PropConstFromKeyval { M m } +\fun@NewTwoFunctions \propConstFromKeyval \PropConstFromKeyval { M m } { \prop_const_from_keyval:Nn #1 { #2 } } -\PrgNewFunction \PropSetFromKeyval { M m } +\fun@NewTwoFunctions \propSetFromKeyval \PropSetFromKeyval { M m } { \__fun_do_assignment:Nnn #1 { \prop_gset_from_keyval:Nn #1 {#2} } { \prop_set_from_keyval:Nn #1 {#2} } } -\PrgNewFunction \PropSetEq { M M } +\fun@NewTwoFunctions \propSetEq \PropSetEq { M M } { \__fun_do_assignment:Nnn #1 { \prop_gset_eq:NN #1 #2 } { \prop_set_eq:NN #1 #2 } } -\PrgNewFunction \PropClear { M } +\fun@NewTwoFunctions \propClear \PropClear { M } { \__fun_do_assignment:Nnn #1 { \prop_gclear:N #1 } { \prop_clear:N #1 } } -\PrgNewFunction \PropClearNew { M } +\fun@NewTwoFunctions \propClearNew \PropClearNew { M } { \__fun_do_assignment:Nnn #1 { \prop_gclear_new:N #1 } { \prop_clear_new:N #1 } } -\PrgNewFunction \PropConcat { M M M } +\fun@NewTwoFunctions \propConcat \PropConcat { M M M } { \__fun_do_assignment:Nnn #1 { \prop_gconcat:NNN #1 #2 #3 } { \prop_concat:NNN #1 #2 #3 } } -\PrgNewFunction \PropPut { M m m } +\fun@NewTwoFunctions \propPut \PropPut { M m m } { \__fun_do_assignment:Nnn #1 { \prop_gput:Nnn #1 {#2} {#3} } { \prop_put:Nnn #1 {#2} {#3} } } -\PrgNewFunction \PropPutIfNew { M m m } +\fun@NewTwoFunctions \propPutIfNew \PropPutIfNew { M m m } { \__fun_do_assignment:Nnn #1 { \prop_gput_if_new:Nnn #1 {#2} {#3} } { \prop_put_if_new:Nnn #1 {#2} {#3} } } -\PrgNewFunction \PropPutFromKeyval { M m } +\fun@NewTwoFunctions \propPutFromKeyval \PropPutFromKeyval { M m } { \__fun_do_assignment:Nnn #1 { \prop_gput_from_keyval:Nn #1 {#2} } { \prop_put_from_keyval:Nn #1 {#2} } } -\PrgNewFunction \PropVarRemove { M m } +\fun@NewTwoFunctions \propVarRemove \PropVarRemove { M m } { \__fun_do_assignment:Nnn #1 { \prop_gremove:Nn #1 {#2} } { \prop_remove:Nn #1 {#2} } } -\PrgNewFunction \PropVarCount { M } { \Expand { \prop_count:N #1 } } +\fun@NewTwoFunctions \propVarCount \PropVarCount { M } + { \expWhole { \prop_count:N #1 } } -\PrgNewFunction \PropVarItem { M m } { \Expand { \prop_item:Nn #1 {#2} } } +\fun@NewTwoFunctions \propVarItem \PropVarItem { M m } + { \expWhole { \prop_item:Nn #1 {#2} } } -\PrgNewFunction \PropToKeyval { M } { \Expand { \prop_to_keyval:N #1 } } +\fun@NewTwoFunctions \propToKeyval \PropToKeyval { M } + { \expWhole { \prop_to_keyval:N #1 } } -\PrgNewFunction \PropGet { M m M } +\fun@NewTwoFunctions \propGet \PropGet { M m M } { \prop_get:NnN #1 {#2} #3 \__fun_quark_upgrade_no_value:N #3 } -\PrgNewFunction \PropGetT { M m M n } { \prop_get:NnNT #1 {#2} #3 {#4} } -\PrgNewFunction \PropGetF { M m M n } { \prop_get:NnNF #1 {#2} #3 {#4} } -\PrgNewFunction \PropGetTF { M m M n n } { \prop_get:NnNTF #1 {#2} #3 {#4} {#5} } +\fun@NewTwoFunctions \propGetT \PropGetT { M m M n } + { \prop_get:NnNT #1 {#2} #3 {#4} } +\fun@NewTwoFunctions \propGetF \PropGetF { M m M n } + { \prop_get:NnNF #1 {#2} #3 {#4} } +\fun@NewTwoFunctions \propGetTF \PropGetTF { M m M n n } + { \prop_get:NnNTF #1 {#2} #3 {#4} {#5} } -\PrgNewFunction \PropPop { M m M } +\fun@NewTwoFunctions \propPop \PropPop { M m M } { \__fun_do_assignment:Nnn #1 { \prop_gpop:NnN #1 {#2} #3 } { \prop_pop:NnN #1 {#2} #3 } \__fun_quark_upgrade_no_value:N #3 } -\PrgNewFunction \PropPopT { M m M n } +\fun@NewTwoFunctions \propPopT \PropPopT { M m M n } { \__fun_do_assignment:Nnn #1 { \prop_gpop:NnNT #1 {#2} #3 {#4} } { \prop_pop:NnNT #1 {#2} #3 {#4} } } -\PrgNewFunction \PropPopF { M m M n } +\fun@NewTwoFunctions \propPopF \PropPopF { M m M n } { \__fun_do_assignment:Nnn #1 { \prop_gpop:NnNF #1 {#2} #3 {#4} } { \prop_pop:NnNF #1 {#2} #3 {#4} } } -\PrgNewFunction \PropPopTF { M m M n n } +\fun@NewTwoFunctions \propPopTF \PropPopTF { M m M n n } { \__fun_do_assignment:Nnn #1 { \prop_gpop:NnNTF #1 {#2} #3 {#4} {#5} } { \prop_pop:NnNTF #1 {#2} #3 {#4} {#5} } } -\PrgNewFunction \PropVarMapInline { M n } +\fun@NewTwoFunctions \propVarMapInline \PropVarMapInline { M n } { \prop_map_inline:Nn #1 {#2} } -\cs_set_eq:NN \PropMapBreak \prop_map_break: +\cs_set_eq:NN \propMapBreak \prop_map_break: -\PrgNewConditional \PropIfExist { M } +\fun@NewTwoConditionals \propIfExist \PropIfExist { M } { - \prop_if_exist:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \prop_if_exist:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \PropVarIfEmpty { M } +\fun@NewTwoConditionals \propVarIfEmpty \PropVarIfEmpty { M } { - \prop_if_empty:NTF #1 { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \prop_if_empty:NTF #1 + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \PropVarIfIn { M m } +\fun@NewTwoConditionals \propVarIfIn \PropVarIfIn { M m } { \prop_if_in:NnTF #1 {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -2340,263 +2471,263 @@ \regex_new:N \l@FunTmpyRegex \regex_new:N \g@FunTmpyRegex \regex_new:N \l@FunTmpzRegex \regex_new:N \g@FunTmpzRegex -\PrgNewFunction \RegexNew { M } { \regex_new:N #1 } +\fun@NewTwoFunctions \regexNew \RegexNew { M } { \regex_new:N #1 } -\PrgNewFunction \RegexSet { M m } +\fun@NewTwoFunctions \regexSet \RegexSet { M m } { \__fun_do_assignment:Nnn #1 { \regex_gset:Nn #1 {#2} } { \regex_set:Nn #1 {#2} } } -\PrgNewFunction \RegexConst { M m } { \regex_const:Nn #1 {#2} } +\fun@NewTwoFunctions \regexConst \RegexConst { M m } { \regex_const:Nn #1 {#2} } -\PrgNewFunction \RegexLog { m } { \regex_log:n {#1} } +\fun@NewTwoFunctions \regexLog \RegexLog { m } { \regex_log:n {#1} } -\PrgNewFunction \RegexVarLog { M } { \regex_log:N #1 } +\fun@NewTwoFunctions \regexVarLog \RegexVarLog { M } { \regex_log:N #1 } -\PrgNewFunction \RegexShow { m } { \regex_show:n {#1} } +\fun@NewTwoFunctions \regexShow \RegexShow { m } { \regex_show:n {#1} } -\PrgNewFunction \RegexVarShow { M } { \regex_show:N #1 } +\fun@NewTwoFunctions \regexVarShow \RegexVarShow { M } { \regex_show:N #1 } -\PrgNewConditional \RegexMatch { m m } +\fun@NewTwoConditionals \regexMatch \RegexMatch { m m } { \regex_match:nnTF {#1} {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewConditional \RegexVarMatch { M m } +\fun@NewTwoConditionals \regexVarMatch \RegexVarMatch { M m } { \regex_match:NnTF #1 {#2} - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewFunction \RegexCount { m m M } +\fun@NewTwoFunctions \regexCount \RegexCount { m m M } { \regex_count:nnN {#1} {#2} #3 } -\PrgNewFunction \RegexVarCount { M m M } +\fun@NewTwoFunctions \regexVarCount \RegexVarCount { M m M } { \regex_count:NnN #1 {#2} #3 } -\PrgNewFunction \RegexMatchCase { m m } +\fun@NewTwoFunctions \regexMatchCase \RegexMatchCase { m m } { \regex_match_case:nn {#1} {#2} } -\PrgNewFunction \RegexMatchCaseT { m m n } +\fun@NewTwoFunctions \regexMatchCaseT \RegexMatchCaseT { m m n } { \regex_match_case:nnT {#1} {#2} {#3} } -\PrgNewFunction \RegexMatchCaseF { m m n } +\fun@NewTwoFunctions \regexMatchCaseF \RegexMatchCaseF { m m n } { \regex_match_case:nnF {#1} {#2} {#3} } -\PrgNewFunction \RegexMatchCaseTF { m m n n } +\fun@NewTwoFunctions \regexMatchCaseTF \RegexMatchCaseTF { m m n n } { \regex_match_case:nnTF {#1} {#2} {#3} {#4} } -\PrgNewFunction \RegexExtractOnce { m m M } +\fun@NewTwoFunctions \regexExtractOnce \RegexExtractOnce { m m M } { \regex_extract_once:nnN {#1} {#2} #3 } -\PrgNewFunction \RegexExtractOnceT { m m M n } +\fun@NewTwoFunctions \regexExtractOnceT \RegexExtractOnceT { m m M n } { \regex_extract_once:nnNT {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexExtractOnceF { m m M n } +\fun@NewTwoFunctions \regexExtractOnceF \RegexExtractOnceF { m m M n } { \regex_extract_once:nnNF {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexExtractOnceTF { m m M n n } +\fun@NewTwoFunctions \regexExtractOnceTF \RegexExtractOnceTF { m m M n n } { \regex_extract_once:nnNTF {#1} {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexVarExtractOnce { M m M } +\fun@NewTwoFunctions \regexVarExtractOnce \RegexVarExtractOnce { M m M } { \regex_extract_once:NnN #1 {#2} #3 } -\PrgNewFunction \RegexVarExtractOnceT { M m M n } +\fun@NewTwoFunctions \regexVarExtractOnceT \RegexVarExtractOnceT { M m M n } { \regex_extract_once:NnNT #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarExtractOnceF { M m M n } +\fun@NewTwoFunctions \regexVarExtractOnceF \RegexVarExtractOnceF { M m M n } { \regex_extract_once:NnNF #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarExtractOnceTF { M m M n n } +\fun@NewTwoFunctions \regexVarExtractOnceTF \RegexVarExtractOnceTF { M m M n n } { \regex_extract_once:NnNTF #1 {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexExtractAll { m m M } +\fun@NewTwoFunctions \regexExtractAll \RegexExtractAll { m m M } { \regex_extract_all:nnN {#1} {#2} #3 } -\PrgNewFunction \RegexExtractAllT { m m M n } +\fun@NewTwoFunctions \regexExtractAllT \RegexExtractAllT { m m M n } { \regex_extract_all:nnNT {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexExtractAllF { m m M n } +\fun@NewTwoFunctions \regexExtractAllF \RegexExtractAllF { m m M n } { \regex_extract_all:nnNF {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexExtractAllTF { m m M n n } +\fun@NewTwoFunctions \regexExtractAllTF \RegexExtractAllTF { m m M n n } { \regex_extract_all:nnNTF {#1} {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexVarExtractAll { M m M } +\fun@NewTwoFunctions \regexVarExtractAll \RegexVarExtractAll { M m M } { \regex_extract_all:NnN #1 {#2} #3 } -\PrgNewFunction \RegexVarExtractAllT { M m M n } +\fun@NewTwoFunctions \regexVarExtractAllT \RegexVarExtractAllT { M m M n } { \regex_extract_all:NnNT #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarExtractAllF { M m M n } +\fun@NewTwoFunctions \regexVarExtractAllF \RegexVarExtractAllF { M m M n } { \regex_extract_all:NnNF #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarExtractAllTF { M m M n n } +\fun@NewTwoFunctions \regexVarExtractAllTF \RegexVarExtractAllTF { M m M n n } { \regex_extract_all:NnNTF #1 {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexSplit { m m M } +\fun@NewTwoFunctions \regexSplit \RegexSplit { m m M } { \regex_split:nnN {#1} {#2} #3 } -\PrgNewFunction \RegexSplitT { m m M n } +\fun@NewTwoFunctions \regexSplitT \RegexSplitT { m m M n } { \regex_split:nnNT {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexSplitF { m m M n } +\fun@NewTwoFunctions \regexSplitF \RegexSplitF { m m M n } { \regex_split:nnNF {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexSplitTF { m m M n n } +\fun@NewTwoFunctions \regexSplitTF \RegexSplitTF { m m M n n } { \regex_split:nnNTF {#1} {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexVarSplit { M m M } +\fun@NewTwoFunctions \regexVarSplit \RegexVarSplit { M m M } { \regex_split:NnN #1 {#2} #3 } -\PrgNewFunction \RegexVarSplitT { M m M n } +\fun@NewTwoFunctions \regexVarSplitT \RegexVarSplitT { M m M n } { \regex_split:NnNT #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarSplitF { M m M n } +\fun@NewTwoFunctions \regexVarSplitF \RegexVarSplitF { M m M n } { \regex_split:NnNF #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarSplitTF { M m M n n } +\fun@NewTwoFunctions \regexVarSplitTF \RegexVarSplitTF { M m M n n } { \regex_split:NnNTF #1 {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexReplaceOnce { m m M } +\fun@NewTwoFunctions \regexReplaceOnce \RegexReplaceOnce { m m M } { \regex_replace_once:nnN {#1} {#2} #3 } -\PrgNewFunction \RegexReplaceOnceT { m m M n } +\fun@NewTwoFunctions \regexReplaceOnceT \RegexReplaceOnceT { m m M n } { \regex_replace_once:nnNT {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexReplaceOnceF { m m M n } +\fun@NewTwoFunctions \regexReplaceOnceF \RegexReplaceOnceF { m m M n } { \regex_replace_once:nnNF {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexReplaceOnceTF { m m M n n } +\fun@NewTwoFunctions \regexReplaceOnceTF \RegexReplaceOnceTF { m m M n n } { \regex_replace_once:nnNTF {#1} {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexVarReplaceOnce { M m M } +\fun@NewTwoFunctions \regexVarReplaceOnce \RegexVarReplaceOnce { M m M } { \regex_replace_once:NnN #1 {#2} #3 } -\PrgNewFunction \RegexVarReplaceOnceT { M m M n } +\fun@NewTwoFunctions \regexVarReplaceOnceT \RegexVarReplaceOnceT { M m M n } { \regex_replace_once:NnNT #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarReplaceOnceF { M m M n } +\fun@NewTwoFunctions \regexVarReplaceOnceF \RegexVarReplaceOnceF { M m M n } { \regex_replace_once:NnNF #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarReplaceOnceTF { M m M n n } +\fun@NewTwoFunctions \regexVarReplaceOnceTF \RegexVarReplaceOnceTF { M m M n n } { \regex_replace_once:NnNTF #1 {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexReplaceAll { m m M } +\fun@NewTwoFunctions \regexReplaceAll \RegexReplaceAll { m m M } { \regex_replace_all:nnN {#1} {#2} #3 } -\PrgNewFunction \RegexReplaceAllT { m m M n } +\fun@NewTwoFunctions \regexReplaceAllT \RegexReplaceAllT { m m M n } { \regex_replace_all:nnNT {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexReplaceAllF { m m M n } +\fun@NewTwoFunctions \regexReplaceAllF \RegexReplaceAllF { m m M n } { \regex_replace_all:nnNF {#1} {#2} #3 {#4} } -\PrgNewFunction \RegexReplaceAllTF { m m M n n } +\fun@NewTwoFunctions \regexReplaceAllTF \RegexReplaceAllTF { m m M n n } { \regex_replace_all:nnNTF {#1} {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexVarReplaceAll { M m M } +\fun@NewTwoFunctions \regexVarReplaceAll \RegexVarReplaceAll { M m M } { \regex_replace_all:NnN #1 {#2} #3 } -\PrgNewFunction \RegexVarReplaceAllT { M m M n } +\fun@NewTwoFunctions \regexVarReplaceAllT \RegexVarReplaceAllT { M m M n } { \regex_replace_all:NnNT #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarReplaceAllF { M m M n } +\fun@NewTwoFunctions \regexVarReplaceAllF \RegexVarReplaceAllF { M m M n } { \regex_replace_all:NnNF #1 {#2} #3 {#4} } -\PrgNewFunction \RegexVarReplaceAllTF { M m M n n } +\fun@NewTwoFunctions \regexVarReplaceAllTF \RegexVarReplaceAllTF { M m M n n } { \regex_replace_all:NnNTF #1 {#2} #3 {#4} {#5} } -\PrgNewFunction \RegexReplaceCaseOnce { m M } +\fun@NewTwoFunctions \regexReplaceCaseOnce \RegexReplaceCaseOnce { m M } { \regex_replace_case_once:nN {#1} #2 } -\PrgNewFunction \RegexReplaceCaseOnceT { m M n } +\fun@NewTwoFunctions \regexReplaceCaseOnceT \RegexReplaceCaseOnceT { m M n } { \regex_replace_case_once:nN {#1} #2 {#3} } -\PrgNewFunction \RegexReplaceCaseOnceF { m M n } +\fun@NewTwoFunctions \regexReplaceCaseOnceF \RegexReplaceCaseOnceF { m M n } { \regex_replace_case_once:nN {#1} #2 {#3} } -\PrgNewFunction \RegexReplaceCaseOnceTF { m M n n } +\fun@NewTwoFunctions \regexReplaceCaseOnceTF \RegexReplaceCaseOnceTF { m M n n } { \regex_replace_case_once:nN {#1} #2 {#3} {#4} } -\PrgNewFunction \RegexReplaceCaseAll { m M } +\fun@NewTwoFunctions \regexReplaceCaseAll \RegexReplaceCaseAll { m M } { \regex_replace_case_all:nN {#1} #2 } -\PrgNewFunction \RegexReplaceCaseAllT { m M n } +\fun@NewTwoFunctions \regexReplaceCaseAllT \RegexReplaceCaseAllT { m M n } { \regex_replace_case_all:nN {#1} #2 {#3} } -\PrgNewFunction \RegexReplaceCaseAllF { m M n } +\fun@NewTwoFunctions \regexReplaceCaseAllF \ { m M n } { \regex_replace_case_all:nN {#1} #2 {#3} } -\PrgNewFunction \RegexReplaceCaseAllTF { m M n n } +\fun@NewTwoFunctions \regexReplaceCaseAllTF \RegexReplaceCaseAllTF { m M n n } { \regex_replace_case_all:nN {#1} #2 {#3} {#4} } @@ -2605,113 +2736,113 @@ %%> \section{Interfaces for Token Manipulation (Token)} %%% -------------------------------------------------------- -\PrgNewFunction \CharLowercase { M } +\fun@NewTwoFunctions \charLowercase \CharLowercase { M } { - \Expand { \char_lowercase:N #1 } + \expWhole { \char_lowercase:N #1 } } -\PrgNewFunction \CharUppercase { M } +\fun@NewTwoFunctions \charUppercase \CharUppercase { M } { - \Expand { \char_uppercase:N #1 } + \expWhole { \char_uppercase:N #1 } } -\PrgNewFunction \CharTitlecase { M } +\fun@NewTwoFunctions \charTitlecase \CharTitlecase { M } { - \Expand { \char_titlecase:N #1 } + \expWhole { \char_titlecase:N #1 } } -\PrgNewFunction \CharFoldcase { M } +\fun@NewTwoFunctions \charFoldcase \CharFoldcase { M } { - \Expand { \char_foldcase:N #1 } + \expWhole { \char_foldcase:N #1 } } -\PrgNewFunction \CharStrLowercase { M } +\fun@NewTwoFunctions \charStrLowercase \CharStrLowercase { M } { - \Expand { \char_str_lowercase:N #1 } + \expWhole { \char_str_lowercase:N #1 } } -\PrgNewFunction \CharStrUppercase { M } +\fun@NewTwoFunctions \charStrUppercase \CharStrUppercase { M } { - \Expand { \char_str_uppercase:N #1 } + \expWhole { \char_str_uppercase:N #1 } } -\PrgNewFunction \CharStrTitlecase { M } +\fun@NewTwoFunctions \charStrTitlecase \CharStrTitlecase { M } { - \Expand { \char_str_titlecase:N #1 } + \expWhole { \char_str_titlecase:N #1 } } -\PrgNewFunction \CharStrFoldcase { M } +\fun@NewTwoFunctions \charStrFoldcase \CharStrFoldcase { M } { - \Expand { \char_str_foldcase:N #1 } + \expWhole { \char_str_foldcase:N #1 } } -\PrgNewFunction \CharSetLccode { m m } +\fun@NewTwoFunctions \charSetLccode \CharSetLccode { m m } { \char_set_lccode:nn {#1} {#2} } -\PrgNewFunction \CharValueLccode { m } +\fun@NewTwoFunctions \charValueLccode \CharValueLccode { m } { - \Expand { \char_value_lccode:n {#1} } + \expWhole { \char_value_lccode:n {#1} } } -\PrgNewFunction \CharSetUccode { m m } +\fun@NewTwoFunctions \charSetUccode \CharSetUccode { m m } { \char_set_uccode:nn {#1} {#2} } -\PrgNewFunction \CharValueUccode { m } +\fun@NewTwoFunctions \charValueUccode \CharValueUccode { m } { - \Expand { \char_value_uccode:n {#1} } + \expWhole { \char_value_uccode:n {#1} } } %%% -------------------------------------------------------- %%> \section{Interfaces for Text Processing (Text)} %%% -------------------------------------------------------- -\PrgNewFunction \TextExpand { m } +\fun@NewTwoFunctions \textExpand \TextExpand { m } { - \Expand { \text_expand:n {#1} } + \expWhole { \text_expand:n {#1} } } -\PrgNewFunction \TextLowercase { m } +\fun@NewTwoFunctions \textLowercase \TextLowercase { m } { - \Expand { \text_lowercase:n {#1} } + \expWhole { \text_lowercase:n {#1} } } -\PrgNewFunction \TextUppercase { m } +\fun@NewTwoFunctions \textUppercase \TextUppercase { m } { - \Expand { \text_uppercase:n {#1} } + \expWhole { \text_uppercase:n {#1} } } -\PrgNewFunction \TextTitlecase { m } +\fun@NewTwoFunctions \textTitlecase \TextTitlecase { m } { - \Expand { \text_titlecase:n {#1} } + \expWhole { \text_titlecase:n {#1} } } -\PrgNewFunction \TextTitlecaseFirst { m } +\fun@NewTwoFunctions \textTitlecaseFirst \TextTitlecaseFirst { m } { - \Expand { \text_titlecase_first:n {#1} } + \expWhole { \text_titlecase_first:n {#1} } } -\PrgNewFunction \TextLangLowercase { m m } +\fun@NewTwoFunctions \textLangLowercase \TextLangLowercase { m m } { - \Expand { \text_lowercase:nn {#1} {#2} } + \expWhole { \text_lowercase:nn {#1} {#2} } } -\PrgNewFunction \TextLangUppercase { m m } +\fun@NewTwoFunctions \textLangUppercase \TextLangUppercase { m m } { - \Expand { \text_uppercase:nn {#1} {#2} } + \expWhole { \text_uppercase:nn {#1} {#2} } } -\PrgNewFunction \TextLangTitlecase { m m } +\fun@NewTwoFunctions \textLangTitlecase \TextLangTitlecase { m m } { - \Expand { \text_titlecase:nn {#1} {#2} } + \expWhole { \text_titlecase:nn {#1} {#2} } } -\PrgNewFunction \TextLangTitlecaseFirst { m m } +\fun@NewTwoFunctions \textLangTitlecaseFirst \TextLangTitlecaseFirst { m m } { - \Expand { \text_titlecase_first:nn {#1} {#2} } + \expWhole { \text_titlecase_first:nn {#1} {#2} } } %%% -------------------------------------------------------- @@ -2720,52 +2851,53 @@ \msg_new:nnn { functional } { file-not-found } { File ~ "#1" ~ not ~ found! } -\PrgNewFunction \FileInput { m } +\fun@NewTwoFunctions \fileInput \FileInput { m } { \file_get:nnN {#1} {} \l@FunTmpxTl \quark_if_no_value:NTF \l@FunTmpxTl { \msg_error:nnn { functional } { file-not-found } { #1 } } - { \TlUse \l@FunTmpxTl } + { \tlUse \l@FunTmpxTl } } -\PrgNewFunction \FileIfExistInput { m } +\fun@NewTwoFunctions \fileIfExistInput \FileIfExistInput { m } { \file_get:nnN {#1} {} \l@FunTmpxTl - \quark_if_no_value:NF \l@FunTmpxTl { \TlUse \l@FunTmpxTl } + \quark_if_no_value:NF \l@FunTmpxTl { \tlUse \l@FunTmpxTl } } -\PrgNewFunction \FileIfExistInputF { m n } +\fun@NewTwoFunctions \fileIfExistInputF \FileIfExistInputF { m n } { \file_get:nnN {#1} {} \l@FunTmpxTl - \quark_if_no_value:NTF \l@FunTmpxTl { #2 } { \TlUse \l@FunTmpxTl } + \quark_if_no_value:NTF \l@FunTmpxTl { #2 } { \tlUse \l@FunTmpxTl } } -\cs_set_eq:NN \FileInputStop \file_input_stop: +\cs_set_eq:NN \fileInputStop \file_input_stop: -\PrgNewFunction \FileGet { m m M } +\fun@NewTwoFunctions \fileGet \FileGet { m m M } { \file_get:nnN {#1} {#2} #3 \__fun_quark_upgrade_no_value:N #3 } -\PrgNewFunction \FileGetT { m m M n } +\fun@NewTwoFunctions \fileGetT \FileGetT { m m M n } { \file_get:nnNT {#1} {#2} #3 {#4} } -\PrgNewFunction \FileGetF { m m M n } +\fun@NewTwoFunctions \fileGetF \FileGetF { m m M n } { \file_get:nnNF {#1} {#2} #3 {#4} } -\PrgNewFunction \FileGetTF { m m M n n } +\fun@NewTwoFunctions \fileGetTF \FileGetTF { m m M n n } { \file_get:nnNTF {#1} {#2} #3 {#4} {#5} } -\PrgNewConditional \FileIfExist { m } +\fun@NewTwoConditionals \fileIfExist \FileIfExist { m } { - \file_if_exist:nTF {#1} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \file_if_exist:nTF {#1} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- @@ -2779,34 +2911,35 @@ \quark_if_no_value:NT #1 { \tl_set_eq:NN #1 \qNoValue } } -\PrgNewConditional \QuarkVarIfNoValue { M } +\fun@NewTwoConditionals \quarkVarIfNoValue \QuarkVarIfNoValue { M } { \tl_if_eq:NNTF \qNoValue #1 - { \Return { \cTrueBool } } { \Return { \cFalseBool } } + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } %%% -------------------------------------------------------- %%> \section{Interfaces to Legacy Concepts (Legacy)} %%% -------------------------------------------------------- -\PrgNewConditional \LegacyIf { m } +\fun@NewTwoConditionals \legacyIf \LegacyIf { m } { - \legacy_if:nTF {#1} { \Return { \cTrueBool } } { \Return { \cFalseBool } } + \legacy_if:nTF {#1} + { \prgReturn { \cTrueBool } } { \prgReturn { \cFalseBool } } } -\PrgNewFunction \LegacyIfSetTrue { m } +\fun@NewTwoFunctions \legacyIfSetTrue \LegacyIfSetTrue { m } { \__fun_do_assignment:Nnn \c@name { \legacy_if_gset_true:n {#1} } { \legacy_if_set_true:n {#1} } } -\PrgNewFunction \LegacyIfSetFalse { m } +\fun@NewTwoFunctions \legacyIfSetFalse \LegacyIfSetFalse { m } { \__fun_do_assignment:Nnn \c@name { \legacy_if_gset_false:n {#1} } { \legacy_if_set_false:n {#1} } } -\PrgNewFunction \LegacyIfSet { m m } +\fun@NewTwoFunctions \legacyIfSet \LegacyIfSet { m m } { \__fun_do_assignment:Nnn \c@name { \legacy_if_gset:nn {#1} {#2} } { \legacy_if_set:nn {#1} {#2} } diff --git a/macros/latex/contrib/functional/functional.tex b/macros/latex/contrib/functional/functional.tex index d5bc913ba6..4bed65559a 100644 --- a/macros/latex/contrib/functional/functional.tex +++ b/macros/latex/contrib/functional/functional.tex @@ -3,7 +3,7 @@ \documentclass[oneside]{book} \usepackage[a4paper,margin=2.5cm]{geometry} -\newcommand*{\myversion}{2022F} +\newcommand*{\myversion}{2022G} \newcommand*{\mydate}{Version \myversion\ (\the\year-\mylpad\month-\mylpad\day)} \newcommand*{\mylpad}[1]{\ifnum#1<10 0\the#1\else\the#1\fi} @@ -162,13 +162,13 @@ We will compare our first example with a similar \verb!Lua! example: \begin{minipage}{0.55\textwidth} \begin{codehigh} \IgnoreSpacesOn -\PrgNewFunction \MathSquare { m } { - \IntSet \lTmpaInt {\IntEval {#1 * #1}} - \Return {\Value \lTmpaInt} +\prgNewFunction \mathSquare { m } { + \intSet \lTmpaInt {\intEval {#1 * #1}} + \prgReturn {\expValue \lTmpaInt} } \IgnoreSpacesOff -\MathSquare{5} -\MathSquare{\MathSquare{5}} +\mathSquare{5} +\mathSquare{\mathSquare{5}} \end{codehigh} \end{minipage}% \begin{minipage}{0.45\textwidth} @@ -185,23 +185,23 @@ print(MathSquare(MathSquare(5))) \end{minipage} %\IgnoreSpacesOn -%\PrgNewFunction \MathSquare { m }{ -% \IntSet \lTmpaInt { \IntEval { #1 * #1 } } -% \Return { \Value \lTmpaInt } +%\prgNewFunction \mathSquare { m }{ +% \intSet \lTmpaInt { \intEval { #1 * #1 } } +% \prgReturn { \expValue \lTmpaInt } %} %\IgnoreSpacesOff -%\MathSquare{5} -%\MathSquare{\MathSquare{5}} +%\mathSquare{5} +%\mathSquare{\mathSquare{5}} %\IgnoreSpacesOn -%\PrgNewFunction \MathCubic { m } +%\prgNewFunction \mathCubic { m } % { -% \IntSet \lTmpaInt { \IntEval { #1 * #1 * #1 } } -% \Return { \Value \lTmpaInt } +% \intSet \lTmpaInt { \intEval { #1 * #1 * #1 } } +% \prgReturn { \expValue \lTmpaInt } % } %\IgnoreSpacesOff -%\MathCubic{2} -%\MathCubic{\MathCubic{2}} +%\mathCubic{2} +%\mathCubic{\mathCubic{2}} Both examples calculate first the square of $5$ and produce $25$, then calculate the square of $25$ and produce $625$. @@ -210,11 +210,11 @@ does evaluation of functions from inside to outside, which means composition of functions works like othe programming languages such as \verb!Lua! or \verb!JavsScript!. -You can define new functions with \cs{PrgNewFunction} command. +You can define new functions with \cs{prgNewFunction} command. To make composition of functions work as expected, every function \emph{must not} insert directly any token to the input stream. Instead, a function \emph{must} pass the result (if any) to \verb!functional! package -with \cs{Return} command. And \verb!functional! package is responsible for +with \cs{prgReturn} command. And \verb!functional! package is responsible for inserting result tokens to the input stream at the appropriate time. To remove space tokens inside function code in defining functions, @@ -224,21 +224,21 @@ you'd better put function definitions inside \verb!\IgnoreSpacesOn! and At the end of this section, we will compare our factorial example with a similar \verb!Lua! example: -\begin{minipage}{0.65\textwidth} +\begin{minipage}{0.68\textwidth} \begin{codehigh} \IgnoreSpacesOn -\PrgNewFunction \Fact { m } { - \IntCompareTF {#1} = {0} { - \Return {1} +\prgNewFunction \mathFact { m } { + \intCompareTF {#1} = {0} { + \prgReturn {1} }{ - \Return {\IntEval{#1*\Fact{\IntEval{#1-1}}}} + \prgReturn {\intEval{#1*\mathFact{\intEval{#1-1}}}} } } \IgnoreSpacesOff -\Fact{4} +\mathFact{4} \end{codehigh} \end{minipage}% -\begin{minipage}{0.35\textwidth} +\begin{minipage}{0.32\textwidth} \begin{code} -- define a function -- function Fact (n) @@ -254,11 +254,11 @@ print(Fact(4)) \end{minipage} %\IgnoreSpacesOn -%\PrgNewFunction \Factorial { m } { -% \IntCompareTF {#1} = {0} { -% \Return {1} +%\prgNewFunction \Factorial { m } { +% \intCompareTF {#1} = {0} { +% \prgReturn {1} % }{ -% \Return { \IntMathMult {#1} { \Factorial { \IntMathSub{#1}{1} } } } +% \prgReturn { \intMathMult {#1} { \Factorial { \intMathSub{#1}{1} } } } % } %} %\IgnoreSpacesOff @@ -277,19 +277,19 @@ and you can make every function become a group by setting \begin{codehigh} \Functional{scoping=true} \IgnoreSpacesOn -\IntSet \lTmpaInt {1} -\IntVarLog \lTmpaInt % ---- 1 -\PrgNewFunction \SomeFun { } { - \IntSet \lTmpaInt {2} - \IntVarLog \lTmpaInt % ---- 2 - \IntCompareTF {1} > {0} { - \IntSet \lTmpaInt {3} - \IntVarLog \lTmpaInt % ---- 3 +\intSet \lTmpaInt {1} +\intVarLog \lTmpaInt % ---- 1 +\prgNewFunction \someFun { } { + \intSet \lTmpaInt {2} + \intVarLog \lTmpaInt % ---- 2 + \intCompareTF {1} > {0} { + \intSet \lTmpaInt {3} + \intVarLog \lTmpaInt % ---- 3 }{ } - \IntVarLog \lTmpaInt % ---- 2 + \intVarLog \lTmpaInt % ---- 2 } -\SomeFun -\IntVarLog \lTmpaInt % ---- 1 +\someFun +\intVarLog \lTmpaInt % ---- 1 \IgnoreSpacesOff \end{codehigh} \end{minipage}% @@ -319,7 +319,7 @@ while names of global variables \emph{must} start with \verb!g!. The difference is that \verb!functional! package provides only one function for setting both local and global varianbles of the same type, by checking leading letters of their names. So for integer variables, you can write -\verb!\IntSet\lTmpaInt{1}! and \verb!\IntSet\gTmpbInt{2}!. +\verb!\intSet\lTmpaInt{1}! and \verb!\intSet\gTmpbInt{2}!. The previous example will produce different result if we change variable from \verb!\lTmpaInt! to \verb!\gTmpaInt!. @@ -328,19 +328,19 @@ if we change variable from \verb!\lTmpaInt! to \verb!\gTmpaInt!. \begin{codehigh} \Functional{scoping=true} \IgnoreSpacesOn -\IntSet \gTmpaInt {1} -\IntVarLog \gTmpaInt % ---- 1 -\PrgNewFunction \SomeFun { } { - \IntSet \gTmpaInt {2} - \IntVarLog \gTmpaInt % ---- 2 - \IntCompareTF {1} > {0} { - \IntSet \gTmpaInt {3} - \IntVarLog \gTmpaInt % ---- 3 +\intSet \gTmpaInt {1} +\intVarLog \gTmpaInt % ---- 1 +\prgNewFunction \someFun { } { + \intSet \gTmpaInt {2} + \intVarLog \gTmpaInt % ---- 2 + \intCompareTF {1} > {0} { + \intSet \gTmpaInt {3} + \intVarLog \gTmpaInt % ---- 3 }{ } - \IntVarLog \gTmpaInt % ---- 3 + \intVarLog \gTmpaInt % ---- 3 } -\SomeFun -\IntVarLog \gTmpaInt % ---- 3 +\someFun +\intVarLog \gTmpaInt % ---- 3 \IgnoreSpacesOff \end{codehigh} \end{minipage}% @@ -376,48 +376,48 @@ For example, the tracing log of the first example in this chapter will be the fo % FIXME: spaces at the first line will be removed %\begin{codehigh}[] -% [I] \MathSquare{5} -% [I] \IntEval{5*5} -% [I] \Expand{\int_eval:n {5*5}} +% [I] \mathSquare{5} +% [I] \intEval{5*5} +% [I] \expWhole{\int_eval:n {5*5}} % [O] 25 -% [I] \Return{25} +% [I] \prgReturn{25} % [O] 25 % [O] 25 -% [I] \IntSet\lTmpaInt {25} +% [I] \intSet\lTmpaInt {25} % [O] -% [I] \Value\lTmpaInt +% [I] \expValue\lTmpaInt % [O] 25 -% [I] \Return{25} +% [I] \prgReturn{25} % [O] 25 % [O] 25 %\end{codehigh} \begin{codehigh}[] -[I] \MathSquare{5} - [I] \IntEval{5*5} - [I] \Expand{\int_eval:n {5*5}} +[I] \mathSquare{5} + [I] \intEval{5*5} + [I] \expWhole{\int_eval:n {5*5}} [O] 25 - [I] \Return{25} + [I] \prgReturn{25} [O] 25 [O] 25 - [I] \IntSet{\lTmpaInt }{25} + [I] \intSet{\lTmpaInt }{25} [O] - [I] \Value{\lTmpaInt } + [I] \expValue{\lTmpaInt } [O] 25 - [I] \Return{25} + [I] \prgReturn{25} [O] 25 [O] 25 -[I] \MathSquare{25} - [I] \IntEval{25*25} - [I] \Expand{\int_eval:n {25*25}} +[I] \mathSquare{25} + [I] \intEval{25*25} + [I] \expWhole{\int_eval:n {25*25}} [O] 625 - [I] \Return{625} + [I] \prgReturn{625} [O] 625 [O] 625 - [I] \IntSet{\lTmpaInt }{625} + [I] \intSet{\lTmpaInt }{625} [O] - [I] \Value{\lTmpaInt } + [I] \expValue{\lTmpaInt } [O] 625 - [I] \Return{625} + [I] \prgReturn{625} [O] 625 [O] 625 \end{codehigh} @@ -444,8 +444,8 @@ which is good for power users. \end{code} \end{minipage} -Within \verb!functional! package, there is only one command (\cs{PrgNewFunction}) -for defining new functions, which is good for normal users. +Within \verb!functional! package, there is only one command (\cs{prgNewFunction}) +for defining new functions, which is good for regular users. The created functions are always protected and accept \verb!\par! in their arguments. Since \verb!functional! package gets the results of functions by evaluation @@ -481,45 +481,45 @@ and many expansion functions for expanding them, which are necessary for power u Within \verb!functional! package, there are only three variants (\verb!c!, \verb!e!, \verb!V!) are provided, and these variants are defined -as functions (\cs{Name}, \cs{Expand}, \cs{Value}, respetively), -which are easier to use for normal users. +as functions (\cs{expName}, \cs{expWhole}, \cs{expValue}, respetively), +which are easier to use for regular users. \begin{demohigh} \newcommand\test{uvw} -\Name{test} +\expName{test} \end{demohigh} \begin{demohigh} \newcommand\test{uvw} -\Expand{111\test222} +\expWhole{111\test222} \end{demohigh} \begin{demohigh} -\IntSet\lTmpaInt{123} -\Value\lTmpaInt +\intSet\lTmpaInt{123} +\expValue\lTmpaInt \end{demohigh} The most interesting feature is that you can compose these functions. For example, you can easily get the \verb!v! variant of \verb!expl3! by -simply composing \cs{Name} and \cs{Value} functions: +simply composing \cs{expName} and \cs{expValue} functions: \begin{demohigh} -\IntSet\lTmpaInt{123} -\Value{\Name{lTmpaInt}} +\intSet\lTmpaInt{123} +\expValue{\expName{lTmpaInt}} \end{demohigh} \chapter{Functional Progarmming (\texttt{Prg})} \section{Defining Functions and Conditionals} -\begin{function}{\PrgNewFunction} +\begin{function}{\prgNewFunction} \begin{syntax} -\cs{PrgNewFunction} \meta{function} \Arg{argument specification} \Arg{code} +\cs{prgNewFunction} \meta{function} \Arg{argument specification} \Arg{code} \end{syntax} Creates protected \meta{function} for evaluating the \meta{code}. Within the \meta{code}, the parameters (\verb|#1|, \verb|#2|, \emph{etc.}) will be replaced by those absorbed by the function. -The returned value \emph{must} be passed with \cs{Return} function. +The returned value \emph{must} be passed with \cs{prgReturn} function. The definition is global and an error results if the \meta{function} is already defined.\par The \Arg{argument specification} in a list of letters, @@ -534,103 +534,103 @@ where each letter is one of the following argument specifiers %\hline \end{tabular}\par} The argument manipulation for argument type \texttt{M} or \texttt{m} -is: if the argument starts with a function defined with \cs{PrgNewFunction}, +is: if the argument starts with a function defined with \cs{prgNewFunction}, the argument will be evaluated and replaced with the returned value. \end{function} -\begin{function}{\PrgSetEqFunction} +\begin{function}{\prgSetEqFunction} \begin{syntax} -\cs{PrgSetEqFunction} \meta{function_1} \meta{function_2} +\cs{prgSetEqFunction} \meta{function_1} \meta{function_2} \end{syntax} Sets \meta{function_1} as an alias of \meta{function_2}. \end{function} -\begin{function}{\PrgNewConditional} +\begin{function}{\prgNewConditional} \begin{syntax} -\cs{PrgNewConditional} \meta{function} \Arg{argument specification} \Arg{code} +\cs{prgNewConditional} \meta{function} \Arg{argument specification} \Arg{code} \end{syntax} Creates protected conditional \meta{function} for evaluating the \meta{code}. The returned value of the \meta{function} \emph{must} be either |\cTrueBool| -or |\cFalseBool| and be passed with \cs{Return} function.. +or |\cFalseBool| and be passed with \cs{prgReturn} function.. The definition is global and an error results if the \meta{function} is already defined. \par -Assume the \meta{function} is |\FooIfBar|, then another three functions -are also created at the same time: |\FooIfBarT|, |\FooIfBarF|, and |\FooIfBarTF|. +Assume the \meta{function} is |\fooIfBar|, then another three functions +are also created at the same time: |\fooIfBarT|, |\fooIfBarF|, and |\fooIfBarTF|. They have extra arguments which are \Arg{true code} or/and \Arg{false code}. For example, if you write \begin{codehigh} -\PrgNewConditional \FooIfBar {Mm} {code with return value \cTrueBool or \cFalseBool} +\prgNewConditional \fooIfBar {Mm} {code with return value \cTrueBool or \cFalseBool} \end{codehigh} Then the following four functions are created: \begin{itemize} - \item |\FooIfBar| \meta{arg_1} \Arg{arg_2} - \item |\FooIfBarT| \meta{arg_1} \Arg{arg_2} \Arg{true code} - \item |\FooIfBarF| \meta{arg_1} \Arg{arg_2} \Arg{false code} - \item |\FooIfBarTF| \meta{arg_1} \Arg{arg_2} \Arg{true code} \Arg{false code} + \item |\fooIfBar| \meta{arg_1} \Arg{arg_2} + \item |\fooIfBarT| \meta{arg_1} \Arg{arg_2} \Arg{true code} + \item |\fooIfBarF| \meta{arg_1} \Arg{arg_2} \Arg{false code} + \item |\fooIfBarTF| \meta{arg_1} \Arg{arg_2} \Arg{true code} \Arg{false code} \end{itemize} \end{function} \section{Returning Values and Printing Tokens} -Just like \LuaTeX, \pkg{functional} package also provides \cs{Return} and \cs{Print} functions. +Just like \LuaTeX, \pkg{functional} package also provides \cs{prgReturn} and \cs{prgPrint} functions. -\begin{function}{\Return} +\begin{function}{\prgReturn} \begin{syntax} -\cs{Return} \Arg{tokens} +\cs{prgReturn} \Arg{tokens} \end{syntax} Returns \meta{tokens} as result of current function or conditional. -This function is normally used in the \meta{code} of \cs{PrgNewFunction} -or \cs{PrgNewConditional}, and it \emph{must} be the last function evaluated in the \meta{code}. +This function is normally used in the \meta{code} of \cs{prgNewFunction} +or \cs{prgNewConditional}, and it \emph{must} be the last function evaluated in the \meta{code}. If it is missing, the return value of the last function evaluated in the \meta{code} is returned. Therefore, the following two examples produce the same output: \begin{codehigh} \IgnoreSpacesOn -\PrgNewFunction \MathSquare { m } { - \IntSet \lTmpaInt {\IntEval {#1 * #1}} - \Return {\Value \lTmpaInt} +\prgNewFunction \mathSquare { m } { + \intSet \lTmpaInt {\intEval {#1 * #1}} + \prgReturn {\expValue \lTmpaInt} } \IgnoreSpacesOff -\MathSquare{5} +\mathSquare{5} \end{codehigh} \begin{codehigh} \IgnoreSpacesOn -\PrgNewFunction \MathSquare { m } { - \IntSet \lTmpaInt {\IntEval {#1 * #1}} - \Value \lTmpaInt +\prgNewFunction \mathSquare { m } { + \intSet \lTmpaInt {\intEval {#1 * #1}} + \expValue \lTmpaInt } \IgnoreSpacesOff -\MathSquare{5} +\mathSquare{5} \end{codehigh} \pkg{Functional} package takes care of return values, and only print them to the input stream if the outer most functions are evaluated. \end{function} -\begin{function}{\Print} +\begin{function}{\prgPrint} \begin{syntax} -\cs{Print} \Arg{tokens} +\cs{prgPrint} \Arg{tokens} \end{syntax} Prints \meta{tokens} directly to the input stream. -If there is no function defined with \cs{PrgNewFunction} in \meta{tokens}, -you can omit \cs{Print} and write only \meta{tokens}. -But if there is any function defined with \cs{PrgNewFunction} in \meta{tokens}, -you \emph{have to} use \cs{Print} function. +If there is no function defined with \cs{prgNewFunction} in \meta{tokens}, +you can omit \cs{prgPrint} and write only \meta{tokens}. +But if there is any function defined with \cs{prgNewFunction} in \meta{tokens}, +you \emph{have to} use \cs{prgPrint} function. \end{function} \section{Running Code with Anonymous Functions} -\begin{function}{\Do} +\begin{function}{\prgDo} \begin{syntax} -\cs{Do} \Arg{code} +\cs{prgDo} \Arg{code} \end{syntax} Treats \meta{code} as an anonymous function without arguments and evaluates it. \end{function} -\begin{function}{\PrgRunOneArgCode,\PrgRunTwoArgCode,\PrgRunThreeArgCode,\PrgRunFourArgCode} +\begin{function}{\prgRunOneArgCode,\prgRunTwoArgCode,\prgRunThreeArgCode,\prgRunFourArgCode} \begin{syntax} -\cs{PrgRunOneArgCode} \Arg{arg_1} \Arg{code} -\cs{PrgRunTwoArgCode} \Arg{arg_1} \Arg{arg_2} \Arg{code} -\cs{PrgRunThreeArgCode} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{code} -\cs{PrgRunFourArgCode} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{code} +\cs{prgRunOneArgCode} \Arg{arg_1} \Arg{code} +\cs{prgRunTwoArgCode} \Arg{arg_1} \Arg{arg_2} \Arg{code} +\cs{prgRunThreeArgCode} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{code} +\cs{prgRunFourArgCode} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{code} \end{syntax} Treats \meta{code} as an anonymous function with one to four arguments respectively, and evaluates it. In evaluating the \meta{code}, \pkg{functional} package first evaluates @@ -642,9 +642,9 @@ with the return values respectively. \section{Expanding Tokens} -\begin{function}{\Name} +\begin{function}{\expName} \begin{syntax} -\cs{Name} \Arg{control sequence name} +\cs{expName} \Arg{control sequence name} \end{syntax} Expands the \meta{control sequence name} until only characters remain, then converts this into a control sequence and returns it. @@ -660,28 +660,28 @@ when exhaustively expanded.% %\end{texnote} \end{function} -\begin{function}{\Value} +\begin{function}{\expValue} \begin{syntax} -\cs{Value} \meta{variable} +\cs{expValue} \meta{variable} \end{syntax} Recovers the content of a \meta{variable} and returns the value. An error is raised if the variable does not exist or if it is invalid. -Note that it is the same as \cs{TlUse} for \meta{tl var}, or \cs{IntUse} for \meta{int var}. +Note that it is the same as \cs{tlUse} for \meta{tl var}, or \cs{intUse} for \meta{int var}. \end{function} -\begin{function}{\Expand} +\begin{function}{\expWhole} \begin{syntax} -\cs{Expand} \Arg{tokens} +\cs{expWhole} \Arg{tokens} \end{syntax} Expands the \meta{tokens} exhaustively and returns the result. \end{function} -\begin{function}{\UnExpand} +\begin{function}{\unExpand} \begin{syntax} -\cs{UnExpand} \Arg{tokens} +\cs{unExpand} \Arg{tokens} \end{syntax} -Prevents expansion of the \meta{tokens} inside the argument of \cs{Expand} function. -The argument of \cs{UnExpand} \emph{must} be surrounded by braces. +Prevents expansion of the \meta{tokens} inside the argument of \cs{expWhole} function. +The argument of \cs{unExpand} \emph{must} be surrounded by braces. %\begin{texnote} %This is the \eTeX{} \tn{unexpanded} primitive. In an %|x|-expanding definition (\cs{cs_new:Npx}), \cs{exp_not:n}~|{#1}| @@ -692,14 +692,14 @@ The argument of \cs{UnExpand} \emph{must} be surrounded by braces. %\end{texnote} \end{function} -\begin{function}{\OnlyName} +\begin{function}{\onlyName} \begin{syntax} -\cs{OnlyName} \Arg{tokens} +\cs{onlyName} \Arg{tokens} \end{syntax} Expands the \meta{tokens} until only characters remain, and then converts this into a control sequence. Further expansion of this control sequence is then inhibited -inside the argument of \cs{Expand} function. +inside the argument of \cs{expWhole} function. %\begin{texnote} %Protected macros that appear in a \texttt{c}-type argument are %expanded despite being protected; \cs{exp_not:n} also has no @@ -709,45 +709,45 @@ inside the argument of \cs{Expand} function. %\end{texnote} \end{function} -\begin{function}{\OnlyValue} +\begin{function}{\onlyValue} \begin{syntax} -\cs{OnlyValue} \meta{variable} +\cs{onlyValue} \meta{variable} \end{syntax} Recovers the content of the \meta{variable}, then prevents expansion -of this material inside the argument of \cs{Expand} function. +of this material inside the argument of \cs{expWhole} function. \end{function} \section{Using Tokens} -\begin{function}{\UseOne,\GobbleOne} +\begin{function}{\useOne,\gobbleOne} \begin{syntax} -\cs{UseOne} \Arg{argument} -\cs{GobbleOne} \Arg{argument} +\cs{useOne} \Arg{argument} +\cs{gobbleOne} \Arg{argument} \end{syntax} -The function \cs{UseOne} absorbs one argument and returns it. +The function \cs{useOne} absorbs one argument and returns it. %\begin{texnote} %The \cs{UseOne} function is equivalent to \LaTeXe{}'s \tn{@firstofone}. %\end{texnote} -\cs{GobbleOne} absorbs one argument and returns nothing. +\cs{gobbleOne} absorbs one argument and returns nothing. %\begin{texnote} %These are equivalent to \LaTeXe{}'s \tn{@gobble}, \tn{@gobbbletwo}, %\emph{etc.} %\end{texnote} For example \begin{demohigh} -\UseOne{abc}\GobbleOne{ijk}\UseOne{xyz} +\useOne{abc}\gobbleOne{ijk}\useOne{xyz} \end{demohigh} \end{function} -\begin{function}{\UseGobble,\GobbleUse} +\begin{function}{\useGobble,\gobbleUse} \begin{syntax} -\cs{UseGobble} \Arg{arg_1} \Arg{arg_2} -\cs{GobbleUse} \Arg{arg_1} \Arg{arg_2} +\cs{useGobble} \Arg{arg_1} \Arg{arg_2} +\cs{gobbleUse} \Arg{arg_1} \Arg{arg_2} \end{syntax} These functions absorb two arguments. -The function \cs{UseGobble} discards the second argument, +The function \cs{useGobble} discards the second argument, and returns the content of the first argument. -\cs{GobbleUse} discards the first argument, +\cs{gobbleUse} discards the first argument, and returns the content of the second argument. %\begin{texnote} %These are equivalent to \LaTeXe{}'s \tn{@firstoftwo} and @@ -755,7 +755,7 @@ and returns the content of the second argument. %\end{texnote} For example \begin{demohigh} -\UseGobble{abc}{uvw}\GobbleUse{abc}{uvw} +\useGobble{abc}{uvw}\gobbleUse{abc}{uvw} \end{demohigh} \end{function} @@ -767,8 +767,8 @@ For example Constants that represent \verb|true| and \verb|false|, respectively. Used to implement predicates. For example \begin{demohigh} -\BoolVarIfTF \cTrueBool {\Return{True!}} {\Return{False!}} -\BoolVarIfTF \cFalseBool {\Return{True!}} {\Return{False!}} +\boolVarIfTF \cTrueBool {\prgReturn{True!}} {\prgReturn{False!}} +\boolVarIfTF \cFalseBool {\prgReturn{True!}} {\prgReturn{False!}} \end{demohigh} \end{variable} @@ -800,13 +800,13 @@ prefix~\verb|!| with their usual precedences (namely, \verb|&&| binds more tightly than \verb"||"). In addition to this, parentheses can be used to isolate sub-expressions. For example, \begin{codehigh} -\IntCompare {1} = {1} && +\intCompare {1} = {1} && ( - \IntCompare {2} = {3} || - \IntCompare {4} < {4} || - \StrIfEq {abc} {def} + \intCompare {2} = {3} || + \intCompare {4} < {4} || + \strIfEq {abc} {def} ) && -! \IntCompare {2} = {4} +! \intCompare {2} = {4} \end{codehigh} is a valid boolean expression. @@ -816,200 +816,200 @@ operand is enough to determine the result. \section{Creating and Setting Booleans} -\begin{function}{\BoolNew} +\begin{function}{\boolNew} \begin{syntax} -\cs{BoolNew} \meta{boolean} +\cs{boolNew} \meta{boolean} \end{syntax} Creates a new \meta{boolean} or raises an error if the name is already taken. The declaration is global. The \meta{boolean} is initially \texttt{false}. \end{function} -\begin{function}{\BoolConst} +\begin{function}{\boolConst} \begin{syntax} -\cs{BoolConst} \meta{boolean} \Arg{boolexpr} +\cs{boolConst} \meta{boolean} \Arg{boolexpr} \end{syntax} Creates a new constant \meta{boolean} or raises an error if the name is already taken. The value of the \meta{boolean} is set globally to the result of evaluating the \meta{boolexpr}. For example \begin{codehigh} -\BoolConst \cFooSomeBool {\IntCompare{3}>{2}} -\BoolVarLog \cFooSomeBool +\boolConst \cFooSomeBool {\intCompare{3}>{2}} +\boolVarLog \cFooSomeBool \end{codehigh} \end{function} -\begin{function}{\BoolSet} +\begin{function}{\boolSet} \begin{syntax} -\cs{BoolSet} \meta{boolean} \Arg{boolexpr} +\cs{boolSet} \meta{boolean} \Arg{boolexpr} \end{syntax} Evaluates the \meta{boolean expression} and sets the \meta{boolean} variable to the logical truth of this evaluation. For example \begin{codehigh} -\BoolSet \lTmpaBool {\IntCompare{3}<{4}} -\BoolVarLog \lTmpaBool +\boolSet \lTmpaBool {\intCompare{3}<{4}} +\boolVarLog \lTmpaBool \end{codehigh} \begin{codehigh} -\BoolSet \lTmpaBool {\IntCompare{3}<{4} && \StrIfEq{abc}{uvw}} -\BoolVarLog \lTmpaBool +\boolSet \lTmpaBool {\intCompare{3}<{4} && \strIfEq{abc}{uvw}} +\boolVarLog \lTmpaBool \end{codehigh} \end{function} -\begin{function}{\BoolSetTrue} +\begin{function}{\boolSetTrue} \begin{syntax} -\cs{BoolSetTrue} \meta{boolean} +\cs{boolSetTrue} \meta{boolean} \end{syntax} Sets \meta{boolean} logically \texttt{true}. \end{function} -\begin{function}{\BoolSetFalse} +\begin{function}{\boolSetFalse} \begin{syntax} -\cs{BoolSetFalse} \meta{boolean} +\cs{boolSetFalse} \meta{boolean} \end{syntax} Sets \meta{boolean} logically \texttt{false}. \end{function} -\begin{function}{\BoolSetEq} +\begin{function}{\boolSetEq} \begin{syntax} -\cs{BoolSetEq} \meta{boolean_1} \meta{boolean_2} +\cs{boolSetEq} \meta{boolean_1} \meta{boolean_2} \end{syntax} Sets \meta{boolean_1} to the current value of \meta{boolean_2}. For example \begin{codehigh} -\BoolSetTrue \lTmpaBool -\BoolSetEq \lTmpbBool \lTmpaBool -\BoolVarLog \lTmpbBool +\boolSetTrue \lTmpaBool +\boolSetEq \lTmpbBool \lTmpaBool +\boolVarLog \lTmpbBool \end{codehigh} \end{function} \section{Viewing Booleans} -\begin{function}{\BoolLog} +\begin{function}{\boolLog} \begin{syntax} -\cs{BoolLog} \Arg{boolean expression} +\cs{boolLog} \Arg{boolean expression} \end{syntax} Writes the logical truth of the \meta{boolean expression} in the log file. \end{function} -\begin{function}{\BoolVarLog} +\begin{function}{\boolVarLog} \begin{syntax} -\cs{BoolVarLog} \meta{boolean} +\cs{boolVarLog} \meta{boolean} \end{syntax} Writes the logical truth of the \meta{boolean} in the log file. \end{function} -\begin{function}{\BoolShow} +\begin{function}{\boolShow} \begin{syntax} -\cs{BoolShow} \Arg{boolean expression} +\cs{boolShow} \Arg{boolean expression} \end{syntax} Displays the logical truth of the \meta{boolean expression} on the terminal. \end{function} -\begin{function}{\BoolVarShow} +\begin{function}{\boolVarShow} \begin{syntax} -\cs{BoolVarShow} \meta{boolean} +\cs{boolVarShow} \meta{boolean} \end{syntax} Displays the logical truth of the \meta{boolean} on the terminal. \end{function} \section{Booleans and Conditionals} -\begin{function}{\BoolIfExist,\BoolIfExistT,\BoolIfExistF,\BoolIfExistTF} +\begin{function}{\boolIfExist,\boolIfExistT,\boolIfExistF,\boolIfExistTF} \begin{syntax} -\cs{BoolIfExist} \meta{boolean} -\cs{BoolIfExistT} \meta{boolean} \Arg{true code} -\cs{BoolIfExistF} \meta{boolean} \Arg{false code} -\cs{BoolIfExistTF} \meta{boolean} \Arg{true code} \Arg{false code} +\cs{boolIfExist} \meta{boolean} +\cs{boolIfExistT} \meta{boolean} \Arg{true code} +\cs{boolIfExistF} \meta{boolean} \Arg{false code} +\cs{boolIfExistTF} \meta{boolean} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{boolean} is currently defined. This does not check that the \meta{boolean} really is a boolean variable. For example \begin{demohigh} -\BoolIfExistTF \lTmpaBool {\Return{Yes}} {\Return{No}} -\BoolIfExistTF \lFooUndefinedBool {\Return{Yes}} {\Return{No}} +\boolIfExistTF \lTmpaBool {\prgReturn{Yes}} {\prgReturn{No}} +\boolIfExistTF \lFooUndefinedBool {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\BoolVarIf,\BoolVarIfT,\BoolVarIfF,\BoolVarIfTF} +\begin{function}{\boolVarIf,\boolVarIfT,\boolVarIfF,\boolVarIfTF} \begin{syntax} -\cs{BoolVarIf} \meta{boolean} -\cs{BoolVarIfT} \meta{boolean} \Arg{true code} -\cs{BoolVarIfF} \meta{boolean} \Arg{false code} -\cs{BoolVarIfTF} \meta{boolean} \Arg{true code} \Arg{false code} +\cs{boolVarIf} \meta{boolean} +\cs{boolVarIfT} \meta{boolean} \Arg{true code} +\cs{boolVarIfF} \meta{boolean} \Arg{false code} +\cs{boolVarIfTF} \meta{boolean} \Arg{true code} \Arg{false code} \end{syntax} Tests the current truth of \meta{boolean}, and continues evaluation based on this result. For example \begin{demohigh} -\BoolSetTrue \lTmpaBool -\BoolVarIfTF \lTmpaBool {\Return{True!}} {\Return{False!}} -\BoolSetFalse \lTmpaBool -\BoolVarIfTF \lTmpaBool {\Return{True!}} {\Return{False!}} +\boolSetTrue \lTmpaBool +\boolVarIfTF \lTmpaBool {\prgReturn{True!}} {\prgReturn{False!}} +\boolSetFalse \lTmpaBool +\boolVarIfTF \lTmpaBool {\prgReturn{True!}} {\prgReturn{False!}} \end{demohigh} \end{function} -\begin{function}{\BoolVarNot,\BoolVarNotT,\BoolVarNotF,\BoolVarNotTF} +\begin{function}{\boolVarNot,\boolVarNotT,\boolVarNotF,\boolVarNotTF} \begin{syntax} -\cs{BoolVarNot} \meta{boolean} -\cs{BoolVarNotT} \meta{boolean} \Arg{true code} -\cs{BoolVarNotF} \meta{boolean} \Arg{false code} -\cs{BoolVarNotTF} \meta{boolean} \Arg{true code} \Arg{false code} +\cs{boolVarNot} \meta{boolean} +\cs{boolVarNotT} \meta{boolean} \Arg{true code} +\cs{boolVarNotF} \meta{boolean} \Arg{false code} +\cs{boolVarNotTF} \meta{boolean} \Arg{true code} \Arg{false code} \end{syntax} Evaluates \meta{true code} if \meta{boolean} is \verb!false!, and \meta{false code} if \meta{boolean} is \verb!true!. For example \begin{demohigh} -\BoolVarNotTF {\IntCompare{3}>{2}} {\Return{Yes}} {\Return{No}} +\boolVarNotTF {\intCompare{3}>{2}} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\BoolVarAnd,\BoolVarAndT,\BoolVarAndF,\BoolVarAndTF} +\begin{function}{\boolVarAnd,\boolVarAndT,\boolVarAndF,\boolVarAndTF} \begin{syntax} -\cs{BoolVarAnd} \meta{boolean_1} \meta{boolean_2} -\cs{BoolVarAndT} \meta{boolean_1} \meta{boolean_2} \Arg{true code} -\cs{BoolVarAndF} \meta{boolean_1} \meta{boolean_2} \Arg{false code} -\cs{BoolVarAndTF} \meta{boolean_1} \meta{boolean_2} \Arg{true code} \Arg{false code} +\cs{boolVarAnd} \meta{boolean_1} \meta{boolean_2} +\cs{boolVarAndT} \meta{boolean_1} \meta{boolean_2} \Arg{true code} +\cs{boolVarAndF} \meta{boolean_1} \meta{boolean_2} \Arg{false code} +\cs{boolVarAndTF} \meta{boolean_1} \meta{boolean_2} \Arg{true code} \Arg{false code} \end{syntax} Implements the \enquote{And} operation between two booleans, hence is \texttt{true} if both are \texttt{true}. %Contrarily to the infix operator \verb|&&|, %The \meta{boolean_2} is only evaluated if it is needed to determine the result of -%\cs{BoolVarAnd}. +%\cs{boolVarAnd}. For example \begin{demohigh} -\BoolVarAndTF {\IntCompare{3}>{2}} {\IntCompare{3}>{4}} {\Return{Yes}} {\Return{No}} +\boolVarAndTF {\intCompare{3}>{2}} {\intIfOdd{6}} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\BoolVarOr,\BoolVarOrT,\BoolVarOrF,\BoolVarOrTF} +\begin{function}{\boolVarOr,\boolVarOrT,\boolVarOrF,\boolVarOrTF} \begin{syntax} -\cs{BoolVarOr} \meta{boolean_1} \meta{boolean_2} -\cs{BoolVarOrT} \meta{boolean_1} \meta{boolean_2} \Arg{true code} -\cs{BoolVarOrF} \meta{boolean_1} \meta{boolean_2} \Arg{false code} -\cs{BoolVarOrTF} \meta{boolean_1} \meta{boolean_2} \Arg{true code} \Arg{false code} +\cs{boolVarOr} \meta{boolean_1} \meta{boolean_2} +\cs{boolVarOrT} \meta{boolean_1} \meta{boolean_2} \Arg{true code} +\cs{boolVarOrF} \meta{boolean_1} \meta{boolean_2} \Arg{false code} +\cs{boolVarOrTF} \meta{boolean_1} \meta{boolean_2} \Arg{true code} \Arg{false code} \end{syntax} Implements the \enquote{Or} operation between two booleans, hence is \texttt{true} if either one is \texttt{true}. %Contrarily to the infix operator \verb"||", %The \meta{boolean_2} is only evaluated if it is needed to determine the result of -%\cs{BoolVarOr}. +%\cs{boolVarOr}. For example \begin{demohigh} -\BoolVarOrTF {\IntCompare{3}>{2}} {\IntCompare{3}>{4}} {\Return{Yes}} {\Return{No}} +\boolVarOrTF {\intCompare{3}>{2}} {\intIfOdd{6}} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\BoolVarXor,\BoolVarXorT,\BoolVarXorF,\BoolVarXorTF} +\begin{function}{\boolVarXor,\boolVarXorT,\boolVarXorF,\boolVarXorTF} \begin{syntax} -\cs{BoolVarXor} \meta{boolean_1} \meta{boolean_2} -\cs{BoolVarXorT} \meta{boolean_1} \meta{boolean_2} \Arg{true code} -\cs{BoolVarXorF} \meta{boolean_1} \meta{boolean_2} \Arg{false code} -\cs{BoolVarXorTF} \meta{boolean_1} \meta{boolean_2} \Arg{true code} \Arg{false code} +\cs{boolVarXor} \meta{boolean_1} \meta{boolean_2} +\cs{boolVarXorT} \meta{boolean_1} \meta{boolean_2} \Arg{true code} +\cs{boolVarXorF} \meta{boolean_1} \meta{boolean_2} \Arg{false code} +\cs{boolVarXorTF} \meta{boolean_1} \meta{boolean_2} \Arg{true code} \Arg{false code} \end{syntax} Implements an \enquote{exclusive or} operation between two booleans. For example \begin{demohigh} -\BoolVarXorTF {\IntCompare{3}>{2}} {\IntCompare{3}>{4}} {\Return{Yes}} {\Return{No}} +\boolVarXorTF {\intCompare{3}>{2}} {\intIfOdd{6}} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} @@ -1017,9 +1017,9 @@ For example Loops using either boolean expressions or stored boolean values. -\begin{function}{\BoolVarDoUntil} +\begin{function}{\boolVarDoUntil} \begin{syntax} -\cs{BoolVarDoUntil} \meta{boolean} \Arg{code} +\cs{boolVarDoUntil} \meta{boolean} \Arg{code} \end{syntax} Places the \meta{code} in the input stream for \TeX{} to process, and then checks the logical value of the \meta{boolean}. If it is @@ -1028,22 +1028,22 @@ stream again and the process loops until the \meta{boolean} is \texttt{true}. \begin{demohigh} \IgnoreSpacesOn -\BoolSetFalse \lTmpaBool -\IntZero \lTmpaInt -\ClistClear \lTmpaClist -\BoolVarDoUntil \lTmpaBool { - \IntIncr \lTmpaInt - \ClistPutRight \lTmpaClist {\Value\lTmpaInt} - \IntCompareT {\lTmpaInt} = {10} {\BoolSetTrue \lTmpaBool} +\boolSetFalse \lTmpaBool +\intZero \lTmpaInt +\clistClear \lTmpaClist +\boolVarDoUntil \lTmpaBool { + \intIncr \lTmpaInt + \clistPutRight \lTmpaClist {\expValue\lTmpaInt} + \intCompareT {\lTmpaInt} = {10} {\boolSetTrue \lTmpaBool} } -\ClistVarJoin \lTmpaClist {:} +\clistVarJoin \lTmpaClist {:} \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\BoolVarDoWhile} +\begin{function}{\boolVarDoWhile} \begin{syntax} -\cs{BoolVarDoWhile} \meta{boolean} \Arg{code} +\cs{boolVarDoWhile} \meta{boolean} \Arg{code} \end{syntax} Places the \meta{code} in the input stream for \TeX{} to process, and then checks the logical value of the \meta{boolean}. If it is @@ -1052,22 +1052,22 @@ stream again and the process loops until the \meta{boolean} is \texttt{false}. \begin{demohigh} \IgnoreSpacesOn -\BoolSetTrue \lTmpaBool -\IntZero \lTmpaInt -\ClistClear \lTmpaClist -\BoolVarDoWhile \lTmpaBool { - \IntIncr \lTmpaInt - \ClistPutRight \lTmpaClist {\Value\lTmpaInt} - \IntCompareT {\lTmpaInt} = {10} {\BoolSetFalse \lTmpaBool} +\boolSetTrue \lTmpaBool +\intZero \lTmpaInt +\clistClear \lTmpaClist +\boolVarDoWhile \lTmpaBool { + \intIncr \lTmpaInt + \clistPutRight \lTmpaClist {\expValue\lTmpaInt} + \intCompareT {\lTmpaInt} = {10} {\boolSetFalse \lTmpaBool} } -\ClistVarJoin \lTmpaClist {:} +\clistVarJoin \lTmpaClist {:} \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\BoolVarUntilDo} +\begin{function}{\boolVarUntilDo} \begin{syntax} -\cs{BoolVarUntilDo} \meta{boolean} \Arg{code} +\cs{boolVarUntilDo} \meta{boolean} \Arg{code} \end{syntax} This function firsts checks the logical value of the \meta{boolean}. If it is \texttt{false} the \meta{code} is placed in the input stream @@ -1076,22 +1076,22 @@ of the \meta{boolean} is re-evaluated. The process then loops until the \meta{boolean} is \texttt{true}. \begin{demohigh} \IgnoreSpacesOn -\BoolSetFalse \lTmpaBool -\IntZero \lTmpaInt -\ClistClear \lTmpaClist -\BoolVarUntilDo \lTmpaBool { - \IntIncr \lTmpaInt - \ClistPutRight \lTmpaClist {\Value\lTmpaInt} - \IntCompareT {\lTmpaInt} = {10} {\BoolSetTrue \lTmpaBool} +\boolSetFalse \lTmpaBool +\intZero \lTmpaInt +\clistClear \lTmpaClist +\boolVarUntilDo \lTmpaBool { + \intIncr \lTmpaInt + \clistPutRight \lTmpaClist {\expValue\lTmpaInt} + \intCompareT {\lTmpaInt} = {10} {\boolSetTrue \lTmpaBool} } -\ClistVarJoin \lTmpaClist {:} +\clistVarJoin \lTmpaClist {:} \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\BoolVarWhileDo} +\begin{function}{\boolVarWhileDo} \begin{syntax} -\cs{BoolVarWhileDo} \meta{boolean} \Arg{code} +\cs{boolVarWhileDo} \meta{boolean} \Arg{code} \end{syntax} This function firsts checks the logical value of the \meta{boolean}. If it is \texttt{true} the \meta{code} is placed in the input stream @@ -1100,15 +1100,15 @@ of the \meta{boolean} is re-evaluated. The process then loops until the \meta{boolean} is \texttt{false}. \begin{demohigh} \IgnoreSpacesOn -\BoolSetTrue \lTmpaBool -\IntZero \lTmpaInt -\ClistClear \lTmpaClist -\BoolVarWhileDo \lTmpaBool { - \IntIncr \lTmpaInt - \ClistPutRight \lTmpaClist {\Value\lTmpaInt} - \IntCompareT {\lTmpaInt} = {10} {\BoolSetFalse \lTmpaBool} +\boolSetTrue \lTmpaBool +\intZero \lTmpaInt +\clistClear \lTmpaClist +\boolVarWhileDo \lTmpaBool { + \intIncr \lTmpaInt + \clistPutRight \lTmpaClist {\expValue\lTmpaInt} + \intCompareT {\lTmpaInt} = {10} {\boolSetFalse \lTmpaBool} } -\ClistVarJoin \lTmpaClist {:} +\clistVarJoin \lTmpaClist {:} \IgnoreSpacesOff \end{demohigh} \end{function} @@ -1119,13 +1119,13 @@ until the \meta{boolean} is \texttt{false}. functions to deal with lists of tokens. Token lists may be present directly in the argument to a function: \begin{codehigh} -\TlFoo {a collection of \tokens} +\tlFoo {a collection of \tokens} \end{codehigh} or may be stored in a so-called \enquote{token list variable}, which have the suffix \texttt{Tl}: a token list variable can also be used as the argument to a function, for example \begin{codehigh} -\TlVarFoo \lSomeTl +\tlVarFoo \lSomeTl \end{codehigh} In both cases, functions are available to test and manipulate the lists of tokens, and these have the module prefix \texttt{Tl}. @@ -1136,7 +1136,7 @@ together here. A token list (explicit, or stored in a variable) can be seen either as a list of \enquote{items}, -or a list of \enquote{tokens}. An item is whatever \cs{UseOne} would +or a list of \enquote{tokens}. An item is whatever \cs{useOne} would grab as its argument: a single non-space token or a brace group, with optional leading explicit space characters (each item is thus itself a token list). A token is either a normal \texttt{N} argument, @@ -1171,7 +1171,7 @@ Constant that is always empty. %will \emph{not} match the simple text input \verb|-NoValue-|, \emph{i.e.} %that %\begin{demohigh} -%\TlIfEqTF {\TlUse\cNoValueTl} {-NoValue-} {Result{Yes}} {\Return{No}} +%\tlIfEqTF {\tlUse\cNoValueTl} {-NoValue-} {Result{Yes}} {\prgReturn{No}} %\end{demohigh} %The \cs{cNoValueTl} marker is intended for %use in creating document-level interfaces, where it serves as an indicator @@ -1195,53 +1195,53 @@ code and so should only be used for short-term storage. \section{Creating and Using Token Lists} -\begin{function}{\TlNew} +\begin{function}{\tlNew} \begin{syntax} -\cs{TlNew} \meta{tl var} +\cs{tlNew} \meta{tl var} \end{syntax} Creates a new \meta{tl var} or raises an error if the name is already taken. The declaration is global. The \meta{tl~var} is initially empty. \begin{codehigh} -\TlNew \lFooSomeTl +\tlNew \lFooSomeTl \end{codehigh} \end{function} -\begin{function}{\TlConst} +\begin{function}{\tlConst} \begin{syntax} -\cs{TlConst} \meta{tl var} \Arg{token list} +\cs{tlConst} \meta{tl var} \Arg{token list} \end{syntax} Creates a new constant \meta{tl var} or raises an error if the name is already taken. The value of the \meta{tl var} is set globally to the \meta{token list}. \begin{codehigh} -\TlConst \cFooSomeTl {abc} +\tlConst \cFooSomeTl {abc} \end{codehigh} \end{function} -\begin{function}{\TlUse} +\begin{function}{\tlUse} \begin{syntax} -\cs{TlUse} \meta{tl~var} +\cs{tlUse} \meta{tl~var} \end{syntax} Recovers the content of a \meta{tl~var} and returns the value. An error is raised if the variable does not exist or if it is invalid. Note that it is possible to use a \meta{tl~var} directly without an accessor function. \begin{codehigh} -\TlUse \lTmpbTl +\tlUse \lTmpbTl \end{codehigh} \end{function} -\begin{function}{\TlToStr} +\begin{function}{\tlToStr} \begin{syntax} -\cs{TlToStr} \Arg{token list} +\cs{tlToStr} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string}, returning the resulting character tokens. A \meta{string} is a series of tokens with category code $12$ (other) with the exception of spaces, which retain category code $10$ (space). \begin{demohigh} -\TlToStr {12\abc34} +\tlToStr {12\abc34} \end{demohigh} %This function requires only a single expansion. %Its argument \emph{must} be braced. @@ -1274,52 +1274,52 @@ of spaces, which retain category code $10$ (space). %\end{texnote} \end{function} -\begin{function}{\TlVarToStr} +\begin{function}{\tlVarToStr} \begin{syntax} -\cs{TlVarToStr} \meta{tl var} +\cs{tlVarToStr} \meta{tl var} \end{syntax} Converts the content of the \meta{tl var} to a string, returning the resulting character tokens. A \meta{string} is a series of tokens with category code $12$ (other) with the exception of spaces, which retain category code $10$ (space). \begin{demohigh} -\TlSet \lTmpaTl {12\abc34} -\TlVarToStr \lTmpaTl +\tlSet \lTmpaTl {12\abc34} +\tlVarToStr \lTmpaTl \end{demohigh} \end{function} \section{Viewing Token Lists} -\begin{function}{\TlLog} +\begin{function}{\tlLog} \begin{syntax} -\cs{TlLog} \Arg{token list} +\cs{tlLog} \Arg{token list} \end{syntax} Writes the \meta{token list} in the log file. See also -\cs{TlShow} which displays the result in the terminal. +\cs{tlShow} which displays the result in the terminal. \begin{codehigh} -\TlLog {123\abc456} +\tlLog {123\abc456} \end{codehigh} \end{function} -\begin{function}{\TlVarLog} +\begin{function}{\tlVarLog} \begin{syntax} -\cs{TlVarLog} \meta{tl var} +\cs{tlVarLog} \meta{tl var} \end{syntax} Writes the content of the \meta{tl var} in the log file. See also -\cs{TlVarShow} which displays the result in the terminal. +\cs{tlVarShow} which displays the result in the terminal. \begin{codehigh} -\TlSet \lTmpaTl {123\abc456} -\TlVarLog \lTmpaTl +\tlSet \lTmpaTl {123\abc456} +\tlVarLog \lTmpaTl \end{codehigh} \end{function} -\begin{function}{\TlShow} +\begin{function}{\tlShow} \begin{syntax} -\cs{TlShow} \Arg{token list} +\cs{tlShow} \Arg{token list} \end{syntax} Displays the \meta{token list} on the terminal. \begin{codehigh} -\TlShow {123\abc456} +\tlShow {123\abc456} \end{codehigh} %\begin{texnote} %This is similar to the \eTeX{} primitive \tn{showtokens}, wrapped @@ -1327,14 +1327,14 @@ Displays the \meta{token list} on the terminal. %\end{texnote} \end{function} -\begin{function}{\TlVarShow} +\begin{function}{\tlVarShow} \begin{syntax} -\cs{TlVarShow} \meta{tl var} +\cs{tlVarShow} \meta{tl var} \end{syntax} Displays the content of the \meta{tl var} on the terminal. \begin{codehigh} -\TlSet \lTmpaTl {123\abc456} -\TlVarShow \lTmpaTl +\tlSet \lTmpaTl {123\abc456} +\tlVarShow \lTmpaTl \end{codehigh} %\begin{texnote} %This is similar to the \TeX{} primitive \tn{show}, wrapped to a @@ -1344,91 +1344,91 @@ Displays the content of the \meta{tl var} on the terminal. \section{Setting Token List Variables} -\begin{function}{\TlSet} +\begin{function}{\tlSet} \begin{syntax} -\cs{TlSet} \meta{tl~var} \Arg{tokens} +\cs{tlSet} \meta{tl~var} \Arg{tokens} \end{syntax} Sets \meta{tl~var} to contain \meta{tokens}, removing any previous content from the variable. \begin{demohigh} -\TlSet \lTmpiTl {\IntMathMult{4}{5}} -\TlUse \lTmpiTl +\tlSet \lTmpiTl {\intMathMult{4}{5}} +\tlUse \lTmpiTl \end{demohigh} \end{function} -\begin{function}{\TlSetEq} +\begin{function}{\tlSetEq} \begin{syntax} -\cs{TlSetEq} \meta{tl var_1} \meta{tl var_2} +\cs{tlSetEq} \meta{tl var_1} \meta{tl var_2} \end{syntax} Sets the content of \meta{tl var_1} equal to that of \meta{tl var_2}. \begin{demohigh} -\TlSet \lTmpaTl {abc} -\TlSetEq \lTmpbTl \lTmpaTl -\TlUse \lTmpbTl +\tlSet \lTmpaTl {abc} +\tlSetEq \lTmpbTl \lTmpaTl +\tlUse \lTmpbTl \end{demohigh} \end{function} -\begin{function}{\TlClear} +\begin{function}{\tlClear} \begin{syntax} -\cs{TlClear} \meta{tl~var} +\cs{tlClear} \meta{tl~var} \end{syntax} Clears all entries from the \meta{tl~var}. \begin{demohigh} -\TlSet \lTmpjTl {One} -\TlClear \lTmpjTl -\TlSet \lTmpjTl {Two} -\TlUse \lTmpjTl +\tlSet \lTmpjTl {One} +\tlClear \lTmpjTl +\tlSet \lTmpjTl {Two} +\tlUse \lTmpjTl \end{demohigh} \end{function} -\begin{function}{\TlClearNew} +\begin{function}{\tlClearNew} \begin{syntax} -\cs{TlClearNew} \meta{tl var} +\cs{tlClearNew} \meta{tl var} \end{syntax} Ensures that the \meta{tl var} exists globally by applying -\cs{TlNew} if necessary, then applies \cs{TlClear} to leave +\cs{tlNew} if necessary, then applies \cs{tlClear} to leave the \meta{tl var} empty. \begin{codehigh} -\TlClearNew \lFooSomeTl +\tlClearNew \lFooSomeTl \end{codehigh} \end{function} -\begin{function}{\TlConcat} +\begin{function}{\tlConcat} \begin{syntax} -\cs{TlConcat} \meta{tl var_1} \meta{tl var_2} \meta{tl var_3} +\cs{tlConcat} \meta{tl var_1} \meta{tl var_2} \meta{tl var_3} \end{syntax} Concatenates the content of \meta{tl var_2} and \meta{tl var_3} together and saves the result in \meta{tl var_1}. The \meta{tl var_2} is placed at the left side of the new token list. \begin{demohigh} -\TlSet \lTmpbTl {con} -\TlSet \lTmpcTl {cat} -\TlConcat \lTmpaTl \lTmpbTl \lTmpcTl -\TlUse \lTmpaTl +\tlSet \lTmpbTl {con} +\tlSet \lTmpcTl {cat} +\tlConcat \lTmpaTl \lTmpbTl \lTmpcTl +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlPutLeft} +\begin{function}{\tlPutLeft} \begin{syntax} -\cs{TlPutLeft} \meta{tl~var} \Arg{tokens} +\cs{tlPutLeft} \meta{tl~var} \Arg{tokens} \end{syntax} Appends \meta{tokens} to the left side of the current content of \meta{tl~var}. \begin{demohigh} -\TlSet \lTmpkTl {Functional} -\TlPutLeft \lTmpkTl {Hello} -\TlUse \lTmpkTl +\tlSet \lTmpkTl {Functional} +\tlPutLeft \lTmpkTl {Hello} +\tlUse \lTmpkTl \end{demohigh} \end{function} -\begin{function}{\TlPutRight} +\begin{function}{\tlPutRight} \begin{syntax} -\cs{TlPutRight} \meta{tl~var} \Arg{tokens} +\cs{tlPutRight} \meta{tl~var} \Arg{tokens} \end{syntax} Appends \meta{tokens} to the right side of the current content of \meta{tl~var}. \begin{demohigh} -\TlSet \lTmpkTl {Functional} -\TlPutRight \lTmpkTl {World} -\TlUse \lTmpkTl +\tlSet \lTmpkTl {Functional} +\tlPutRight \lTmpkTl {World} +\tlUse \lTmpkTl \end{demohigh} \end{function} @@ -1438,9 +1438,9 @@ Within token lists, replacement takes place at the top level: there is no recursion into brace groups (more precisely, within a group defined by a categroy code $1$/$2$ pair). -\begin{function}{\TlVarReplaceOnce} +\begin{function}{\tlVarReplaceOnce} \begin{syntax} -\cs{TlVarReplaceOnce} \meta{tl var} \Arg{old tokens} \Arg{new tokens} +\cs{tlVarReplaceOnce} \meta{tl var} \Arg{old tokens} \Arg{new tokens} \end{syntax} Replaces the first (leftmost) occurrence of \meta{old tokens} in the \meta{tl var} with \meta{new tokens}. \meta{Old tokens} @@ -1448,15 +1448,15 @@ cannot contain \verb|{|, \verb|}| or \verb|#| (more precisely, explicit character tokens with category code $1$ (begin-group) or $2$ (end-group), and tokens with category code $6$). \begin{demohigh} -\TlSet \lTmpaTl {1{bc}2bc3} -\TlVarReplaceOnce \lTmpaTl {bc} {xx} -\TlUse \lTmpaTl +\tlSet \lTmpaTl {1{bc}2bc3} +\tlVarReplaceOnce \lTmpaTl {bc} {xx} +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlVarReplaceAll} +\begin{function}{\tlVarReplaceAll} \begin{syntax} -\cs{TlVarReplaceAll} \meta{tl var} \Arg{old tokens} \Arg{new tokens} +\cs{tlVarReplaceAll} \meta{tl var} \Arg{old tokens} \Arg{new tokens} \end{syntax} Replaces all occurrences of \meta{old tokens} in the \meta{tl var} with \meta{new tokens}. \meta{Old tokens} @@ -1465,32 +1465,32 @@ cannot contain \verb|{|, \verb|}| or \verb|#| (begin-group) or $2$ (end-group), and tokens with category code $6$). As this function operates from left to right, the pattern \meta{old tokens} -may remain after the replacement (see \cs{TlVarRemoveAll} for an example). +may remain after the replacement (see \cs{tlVarRemoveAll} for an example). \begin{demohigh} -\TlSet \lTmpaTl {1{bc}2bc3} -\TlVarReplaceAll \lTmpaTl {bc} {xx} -\TlUse \lTmpaTl +\tlSet \lTmpaTl {1{bc}2bc3} +\tlVarReplaceAll \lTmpaTl {bc} {xx} +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlVarRemoveOnce} +\begin{function}{\tlVarRemoveOnce} \begin{syntax} -\cs{TlVarRemoveOnce} \meta{tl var} \Arg{tokens} +\cs{tlVarRemoveOnce} \meta{tl var} \Arg{tokens} \end{syntax} Removes the first (leftmost) occurrence of \meta{tokens} from the \meta{tl var}. \meta{Tokens} cannot contain \verb|{|, \verb|}| or \verb|#| (more precisely, explicit character tokens with category code $1$ (begin-group) or $2$ (end-group), and tokens with category code $6$). \begin{demohigh} -\TlSet \lTmpaTl {1{bc}2bc3} -\TlVarRemoveOnce \lTmpaTl {bc} -\TlUse \lTmpaTl +\tlSet \lTmpaTl {1{bc}2bc3} +\tlVarRemoveOnce \lTmpaTl {bc} +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlVarRemoveAll} +\begin{function}{\tlVarRemoveAll} \begin{syntax} -\cs{TlVarRemoveAll} \meta{tl var} \Arg{tokens} +\cs{tlVarRemoveAll} \meta{tl var} \Arg{tokens} \end{syntax} Removes all occurrences of \meta{tokens} from the \meta{tl var}. \meta{Tokens} cannot contain \verb|{|, \verb|}| or \verb|#| @@ -1500,21 +1500,21 @@ As this function operates from left to right, the pattern \meta{tokens} may remain after the removal, for instance, \begin{demohigh} -\TlSet \lTmpaTl {abbccd} -\TlVarRemoveAll \lTmpaTl {bc} -\TlUse \lTmpaTl +\tlSet \lTmpaTl {abbccd} +\tlVarRemoveAll \lTmpaTl {bc} +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlTrimSpaces} +\begin{function}{\tlTrimSpaces} \begin{syntax} -\cs{TlTrimSpaces} \Arg{token list} +\cs{tlTrimSpaces} \Arg{token list} \end{syntax} Removes any leading and trailing explicit space characters (explicit tokens with character code $32$ and category code $10$) from the \meta{token list} and returns the result. \begin{demohigh} -Foo\TlTrimSpaces { 12 34 }Bar +Foo\tlTrimSpaces { 12 34 }Bar \end{demohigh} %\begin{texnote} %The result is returned within \tn{unexpanded}, which means that the token @@ -1523,52 +1523,52 @@ Foo\TlTrimSpaces { 12 34 }Bar %\end{texnote} \end{function} -\begin{function}{\TlVarTrimSpaces} +\begin{function}{\tlVarTrimSpaces} \begin{syntax} -\cs{TlVarTrimSpaces} \meta{tl var} +\cs{tlVarTrimSpaces} \meta{tl var} \end{syntax} Sets the \meta{tl var} to contain the result of removing any leading and trailing explicit space characters (explicit tokens with character code $32$ and category code $10$) from its contents. \begin{demohigh} -\TlSet \lTmpaTl { 12 34 } -\TlVarTrimSpaces \lTmpaTl -Foo\TlUse \lTmpaTl Bar +\tlSet \lTmpaTl { 12 34 } +\tlVarTrimSpaces \lTmpaTl +Foo\tlUse \lTmpaTl Bar \end{demohigh} \end{function} \section{Working with the Content of Token Lists} -\begin{function}{\TlCount} +\begin{function}{\tlCount} \begin{syntax} -\cs{TlCount} \Arg{tokens} +\cs{tlCount} \Arg{tokens} \end{syntax} Counts the number of \meta{items} in \meta{tokens} and returns this information. Unbraced tokens count as one element as do each token group (\verb|{|$\cdots$\verb|}|). -This process ignores any unprotected spaces within \meta{tokens}. %See also \cs{TlVarCount}. +This process ignores any unprotected spaces within \meta{tokens}. %See also \cs{tlVarCount}. %This function requires three expansions, giving an \meta{integer denotation}. \begin{demohigh} -\TlCount {12\abc34} +\tlCount {12\abc34} \end{demohigh} \end{function} -\begin{function}{\TlVarCount} +\begin{function}{\tlVarCount} \begin{syntax} -\cs{TlVarCount} \meta{tl var} +\cs{tlVarCount} \meta{tl var} \end{syntax} Counts the number of \meta{items} in the \meta{tl var} and returns this information. Unbraced tokens count as one element as do each token group (\verb|{|$\cdots$\verb|}|). -This process ignores any unprotected spaces within the \meta{tl var}. %See also \cs{TlCount}. +This process ignores any unprotected spaces within the \meta{tl var}. %See also \cs{tlCount}. %This function requires three expansions, giving an \meta{integer denotation}. \begin{demohigh} -\TlSet \lTmpaTl {12\abc34} -\TlVarCount \lTmpaTl +\tlSet \lTmpaTl {12\abc34} +\tlVarCount \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlHead} +\begin{function}{\tlHead} \begin{syntax} -\cs{TlHead} \Arg{token list} +\cs{tlHead} \Arg{token list} \end{syntax} Returns the first \meta{item} in the \meta{token list}, discarding the rest of the \meta{token list}. @@ -1576,17 +1576,17 @@ All leading explicit space characters (explicit tokens with character code $32$ and category code $10$) are discarded; for example \begin{demohigh} -\fbox {1\TlHead{ abc }2} -\fbox {1\TlHead{ abc }2} +\fbox {1\tlHead{ abc }2} +\fbox {1\tlHead{ abc }2} \end{demohigh} If the \enquote{head} is a brace group, rather than a single token, the braces are removed, and so \begin{codehigh} -\TlHead { { ab} c } +\tlHead { { ab} c } \end{codehigh} yields \verb*| ab|. -A blank \meta{token list} (see \cs{TlIfBlank}) results in -\cs{TlHead} returning nothing. +A blank \meta{token list} (see \cs{tlIfBlank}) results in +\cs{tlHead} returning nothing. %\begin{texnote} %The result is returned within \cs{exp_not:n}, which means that the token %list does not expand further when appearing in an \texttt{x}-type @@ -1594,37 +1594,37 @@ A blank \meta{token list} (see \cs{TlIfBlank}) results in %\end{texnote} \end{function} -\begin{function}{\TlVarHead} +\begin{function}{\tlVarHead} \begin{syntax} -\cs{TlVarHead} \meta{tl var} +\cs{tlVarHead} \meta{tl var} \end{syntax} Returns the first \meta{item} in the \meta{tl var}, discarding the rest of the \meta{tl var}. All leading explicit space characters (explicit tokens with character code $32$ and category code $10$) are discarded. \begin{demohigh} -\TlSet \lTmpaTl {HELLO} -\TlVarHead \lTmpaTl +\tlSet \lTmpaTl {HELLO} +\tlVarHead \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlTail} +\begin{function}{\tlTail} \begin{syntax} -\cs{TlTail} \Arg{token list} +\cs{tlTail} \Arg{token list} \end{syntax} Discards all leading explicit space characters (explicit tokens with character code $32$ and category code $10$) and the first \meta{item} in the \meta{token list}, and returns the remaining tokens. Thus for example \begin{codehigh} -\TlTail { a {bc} d } +\tlTail { a {bc} d } \end{codehigh} and \begin{codehigh} -\TlTail { a {bc} d } +\tlTail { a {bc} d } \end{codehigh} -both return \verb*| {bc} d |. A blank \meta{token list} (see \cs{TlIfBlank}) -results in \cs{TlTail} returning nothing. +both return \verb*| {bc} d |. A blank \meta{token list} (see \cs{tlIfBlank}) +results in \cs{tlTail} returning nothing. %\begin{texnote} %The result is returned within \cs{exp_not:n}, which means that the %token list does not expand further when appearing in an \texttt{x}-type @@ -1632,24 +1632,24 @@ results in \cs{TlTail} returning nothing. %\end{texnote} \end{function} -\begin{function}{\TlVarTail} +\begin{function}{\tlVarTail} \begin{syntax} -\cs{TlVarTail} \meta{tl var} +\cs{tlVarTail} \meta{tl var} \end{syntax} Discards all leading explicit space characters (explicit tokens with character code $32$ and category code $10$) and the first \meta{item} in the \meta{tl var}, and returns the remaining tokens. \begin{demohigh} -\TlSet \lTmpaTl {HELLO} -\TlVarTail \lTmpaTl +\tlSet \lTmpaTl {HELLO} +\tlVarTail \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\TlItem,\TlVarItem} +\begin{function}{\tlItem,\tlVarItem} \begin{syntax} -\cs{TlItem} \Arg{token list} \Arg{integer expression} -\cs{TlVarItem} \meta{tl var} \Arg{integer expression} +\cs{tlItem} \Arg{token list} \Arg{integer expression} +\cs{tlVarItem} \meta{tl var} \Arg{integer expression} \end{syntax} Indexing items in the \meta{token list} from $1$ on the left, this function evaluates the \meta{integer expression} and returns the @@ -1658,7 +1658,7 @@ If the \meta{integer expression} is negative, indexing occurs from the right of the token list, starting at $-1$ for the right-most item. If the index is out of bounds, then the function returns nothing. \begin{demohigh} -\TlItem {abcd} {3} +\tlItem {abcd} {3} \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -1668,17 +1668,17 @@ If the index is out of bounds, then the function returns nothing. %\end{texnote} \end{function} -\begin{function}{\TlRandItem,\TlVarRandItem} +\begin{function}{\tlRandItem,\tlVarRandItem} \begin{syntax} -\cs{TlRandItem} \Arg{token list} -\cs{TlVarRandItem} \meta{tl var} +\cs{tlRandItem} \Arg{token list} +\cs{tlVarRandItem} \meta{tl var} \end{syntax} Selects and returns a pseudo-random item of the \meta{token list}. If the \meta{token list} is blank, the result is empty. %This is not available in older versions of \XeTeX{}. \begin{demohigh} -\TlRandItem {abcdef} -\TlRandItem {abcdef} +\tlRandItem {abcdef} +\tlRandItem {abcdef} \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -1694,9 +1694,9 @@ All mappings are done at the current group level, \emph{i.e.} any local assignments made by the \meta{function} or \meta{code} discussed below remain in effect after the loop. -%\begin{function}{\TlMapFunction} +%\begin{function}{\tlMapFunction} %\begin{syntax} -%\cs{TlMapFunction} \Arg{token list} \meta{function} +%\cs{tlMapFunction} \Arg{token list} \meta{function} %\end{syntax} %Applies \meta{function} to every \meta{item} in the \meta{token list}, %The \meta{function} receives one argument for each iteration. @@ -1705,9 +1705,9 @@ below remain in effect after the loop. %\texttt{n}-type arguments. %\end{function} % -%\begin{function}{\TlVarMapFunction} +%\begin{function}{\tlVarMapFunction} %\begin{syntax} -%\cs{TlVarMapFunction} \meta{tl var} \meta{function} +%\cs{tlVarMapFunction} \meta{tl var} \meta{function} %\end{syntax} %Applies \meta{function} to every \meta{item} in the \meta{tl var}. %The \meta{function} receives one argument for each iteration. @@ -1716,47 +1716,47 @@ below remain in effect after the loop. %\texttt{n}-type arguments. %\end{function} -\begin{function}{\TlMapInline} +\begin{function}{\tlMapInline} \begin{syntax} -\cs{TlMapInline} \Arg{token list} \Arg{inline function} +\cs{tlMapInline} \Arg{token list} \Arg{inline function} \end{syntax} Applies the \meta{inline function} to every \meta{item} stored within the \meta{token list}. The \meta{inline function} should consist of code which receives the \meta{item} as \verb|#1|. \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\TlMapInline {one} { - \TlPutRight \lTmpaTl {[#1]} +\tlClear \lTmpaTl +\tlMapInline {one} { + \tlPutRight \lTmpaTl {[#1]} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\TlVarMapInline} +\begin{function}{\tlVarMapInline} \begin{syntax} -\cs{TlVarMapInline} \meta{tl var} \Arg{inline function} +\cs{tlVarMapInline} \meta{tl var} \Arg{inline function} \end{syntax} Applies the \meta{inline function} to every \meta{item} stored within the \meta{tl var}. The \meta{inline function} should consist of code which receives the \meta{item} as \verb|#1|. \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\TlSet \lTmpkTl {one} -\TlVarMapInline \lTmpkTl { - \TlPutRight \lTmpaTl {[#1]} +\tlClear \lTmpaTl +\tlSet \lTmpkTl {one} +\tlVarMapInline \lTmpkTl { + \tlPutRight \lTmpaTl {[#1]} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\TlMapTokens,\TlVarMapTokens} +%\begin{function}{\tlMapTokens,\tlVarMapTokens} %\begin{syntax} -%\cs{TlMapTokens} \Arg{tokens} \Arg{code} -%\cs{TlVarMapTokens} \meta{tl var} \Arg{code} +%\cs{tlMapTokens} \Arg{tokens} \Arg{code} +%\cs{tlVarMapTokens} \meta{tl var} \Arg{code} %\end{syntax} %Analogue of \cs{tl_map_function:NN} which maps several tokens %instead of a single function. The \meta{code} receives each \meta{item} in @@ -1771,9 +1771,9 @@ receives the \meta{item} as \verb|#1|. %\cs{tl_map_inline:Nn} is typically faster but is not expandable. %\end{function} -\begin{function}{\TlMapVariable} +\begin{function}{\tlMapVariable} \begin{syntax} -\cs{TlMapVariable} \Arg{token list} \meta{variable} \Arg{code} +\cs{tlMapVariable} \Arg{token list} \meta{variable} \Arg{code} \end{syntax} Stores each \meta{item} of the \meta{token list} in turn in the (token list) \meta{variable} and applies the \meta{code}. The @@ -1783,18 +1783,18 @@ Its value after the loop is the last \meta{item} in the \meta{tl var}, or its original value if the \meta{tl var} is blank. \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\TlMapVariable {one} \lTmpiTl { - \TlPutRight \lTmpaTl {\Expand {[\lTmpiTl]}} +\tlClear \lTmpaTl +\tlMapVariable {one} \lTmpiTl { + \tlPutRight \lTmpaTl {\expWhole {[\lTmpiTl]}} } -\Return{\TlUse\lTmpaTl} +\prgReturn{\tlUse\lTmpaTl} \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\TlVarMapVariable} +\begin{function}{\tlVarMapVariable} \begin{syntax} -\cs{TlVarMapVariable} \meta{tl var} \meta{variable} \Arg{code} +\cs{tlVarMapVariable} \meta{tl var} \meta{variable} \Arg{code} \end{syntax} Stores each \meta{item} of the \meta{tl var} in turn in the (token list) \meta{variable} and applies the \meta{code}. The \meta{code} @@ -1804,19 +1804,19 @@ value after the loop is the last \meta{item} in the \meta{tl var}, or its original value if the \meta{tl var} is blank. \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\TlSet \lTmpkTl {one} -\TlVarMapVariable \lTmpkTl \lTmpiTl { - \TlPutRight \lTmpaTl {\Expand {[\lTmpiTl]}} +\tlClear \lTmpaTl +\tlSet \lTmpkTl {one} +\tlVarMapVariable \lTmpkTl \lTmpiTl { + \tlPutRight \lTmpaTl {\expWhole {[\lTmpiTl]}} } -\Return{\TlUse\lTmpaTl} +\prgReturn{\tlUse\lTmpaTl} \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\TlMapBreak} +%\begin{function}{\tlMapBreak} %\begin{syntax} -%\cs{TlMapBreak} +%\cs{tlMapBreak} %\end{syntax} %Used to terminate a tl map function before all %entries in the \meta{token list variable} have been processed. This @@ -1839,9 +1839,9 @@ or its original value if the \meta{tl var} is blank. %\end{texnote} %\end{function} % -%\begin{function}{\TlMapBreakDo} +%\begin{function}{\tlMapBreakDo} %\begin{syntax} -%\cs{TlMapBreakDo} \Arg{code} +%\cs{tlMapBreakDo} \Arg{code} %\end{syntax} %Used to terminate a tl map function before all %entries in the \meta{token list variable} have been processed, inserting @@ -1867,59 +1867,59 @@ or its original value if the \meta{tl var} is blank. \section{Token List Conditionals} -\begin{function}{\TlIfExist,\TlIfExistT,\TlIfExistF,\TlIfExistTF} +\begin{function}{\tlIfExist,\tlIfExistT,\tlIfExistF,\tlIfExistTF} \begin{syntax} -\cs{TlIfExist} \meta{tl var} -\cs{TlIfExistT} \meta{tl var} \Arg{true code} -\cs{TlIfExistF} \meta{tl var} \Arg{false code} -\cs{TlIfExistTF} \meta{tl var} \Arg{true code} \Arg{false code} +\cs{tlIfExist} \meta{tl var} +\cs{tlIfExistT} \meta{tl var} \Arg{true code} +\cs{tlIfExistF} \meta{tl var} \Arg{false code} +\cs{tlIfExistTF} \meta{tl var} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{tl var} is currently defined. This does not check that the \meta{tl var} really is a token list variable. \begin{demohigh} -\TlIfExistTF \lTmpaTl {\Return{Yes}} {\Return{No}} -\TlIfExistTF \lFooUndefinedTl {\Return{Yes}} {\Return{No}} +\tlIfExistTF \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} +\tlIfExistTF \lFooUndefinedTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\TlIfEmpty,\TlIfEmptyT,\TlIfEmptyF,\TlIfEmptyTF} +\begin{function}{\tlIfEmpty,\tlIfEmptyT,\tlIfEmptyF,\tlIfEmptyTF} \begin{syntax} -\cs{TlIfEmpty} \Arg{token list} -\cs{TlIfEmptyT} \Arg{token list} \Arg{true code} -\cs{TlIfEmptyF} \Arg{token list} \Arg{false code} -\cs{TlIfEmptyTF} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{tlIfEmpty} \Arg{token list} +\cs{tlIfEmptyT} \Arg{token list} \Arg{true code} +\cs{tlIfEmptyF} \Arg{token list} \Arg{false code} +\cs{tlIfEmptyTF} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{token list} is entirely empty (\emph{i.e.}~contains no tokens at all). For example \begin{demohigh} -\TlIfEmptyTF {abc} {\Return{Empty}} {\Return{NonEmpty}} -\TlIfEmptyTF {} {\Return{Empty}} {\Return{NonEmpty}} +\tlIfEmptyTF {abc} {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\tlIfEmptyTF {} {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\TlVarIfEmpty,\TlVarIfEmptyT,\TlVarIfEmptyF,\TlVarIfEmptyTF} +\begin{function}{\tlVarIfEmpty,\tlVarIfEmptyT,\tlVarIfEmptyF,\tlVarIfEmptyTF} \begin{syntax} -\cs{TlVarIfEmpty} \meta{tl~var} -\cs{TlVarIfEmptyT} \meta{tl~var} \Arg{true code} -\cs{TlVarIfEmptyF} \meta{tl~var} \Arg{false code} -\cs{TlVarIfEmptyTF} \meta{tl~var} \Arg{true code} \Arg{false code} +\cs{tlVarIfEmpty} \meta{tl~var} +\cs{tlVarIfEmptyT} \meta{tl~var} \Arg{true code} +\cs{tlVarIfEmptyF} \meta{tl~var} \Arg{false code} +\cs{tlVarIfEmptyTF} \meta{tl~var} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{token list variable} is entirely empty (\emph{i.e.}~contains no tokens at all). For example \begin{demohigh} -\TlSet \lTmpaTl {abc} -\TlVarIfEmptyTF \lTmpaTl {\Return{Empty}} {\Return{NonEmpty}} -\TlClear \lTmpaTl -\TlVarIfEmptyTF \lTmpaTl {\Return{Empty}} {\Return{NonEmpty}} +\tlSet \lTmpaTl {abc} +\tlVarIfEmptyTF \lTmpaTl {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\tlClear \lTmpaTl +\tlVarIfEmptyTF \lTmpaTl {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\TlIfBlank,\TlIfBlankT,\TlIfBlankF,\TlIfBlankTF} +\begin{function}{\tlIfBlank,\tlIfBlankT,\tlIfBlankF,\tlIfBlankTF} \begin{syntax} -\cs{TlIfBlank} \Arg{token list} -\cs{TlIfBlankT} \Arg{token list} \Arg{true code} -\cs{TlIfBlankF} \Arg{token list} \Arg{false code} -\cs{TlIfBlankTF} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{tlIfBlank} \Arg{token list} +\cs{tlIfBlankT} \Arg{token list} \Arg{true code} +\cs{tlIfBlankF} \Arg{token list} \Arg{false code} +\cs{tlIfBlankTF} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{token list} consists only of blank spaces (\emph{i.e.} contains no item). The test is \texttt{true} if @@ -1927,62 +1927,62 @@ Tests if the \meta{token list} consists only of blank spaces (explicit tokens with character code $32$ and category code $10$), and is \texttt{false} otherwise. \begin{demohigh} -\TlIfEmptyTF { } {\Return{Yes}} {\Return{No}} -\TlIfBlankTF { } {\Return{Yes}} {\Return{No}} +\tlIfEmptyTF { } {\prgReturn{Yes}} {\prgReturn{No}} +\tlIfBlankTF { } {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\TlIfEq,\TlIfEqT,\TlIfEqF,\TlIfEqTF} +\begin{function}{\tlIfEq,\tlIfEqT,\tlIfEqF,\tlIfEqTF} \begin{syntax} -\cs{TlIfEq} \Arg{token list_1} \Arg{token list_2} -\cs{TlIfEqT} \Arg{token list_1} \Arg{token list_2} \Arg{true code} -\cs{TlIfEqF} \Arg{token list_1} \Arg{token list_2} \Arg{false code} -\cs{TlIfEqTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} +\cs{tlIfEq} \Arg{token list_1} \Arg{token list_2} +\cs{tlIfEqT} \Arg{token list_1} \Arg{token list_2} \Arg{true code} +\cs{tlIfEqF} \Arg{token list_1} \Arg{token list_2} \Arg{false code} +\cs{tlIfEqTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} \end{syntax} Tests if \meta{token list_1} and \meta{token list_2} contain the same list of tokens, both in respect of character codes and category -codes. See \cs{StrIfEq} if category codes are not important. +codes. See \cs{strIfEq} if category codes are not important. For example \begin{demohigh} -\TlIfEqTF {abc} {abc} {\Return{Yes}} {\Return{No}} -\TlIfEqTF {abc} {xyz} {\Return{Yes}} {\Return{No}} +\tlIfEqTF {abc} {abc} {\prgReturn{Yes}} {\prgReturn{No}} +\tlIfEqTF {abc} {xyz} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} %\begin{demohigh} -%\TlSet\lTmpaTl{abc} -%\TlSet\lTmpbTl{abc} -%\TlSet\lTmpcTl{xyz} -%\TlIfEqTF{\TlUse\lTmpaTl}{\TlUse\lTmpbTl}{\Return{Yes}}{\Return{No}} -%\TlIfEqTF{\TlUse\lTmpaTl}{\TlUse\lTmpcTl}{\Return{Yes}}{\Return{No}} +%\tlSet\lTmpaTl{abc} +%\tlSet\lTmpbTl{abc} +%\tlSet\lTmpcTl{xyz} +%\tlIfEqTF{\tlUse\lTmpaTl}{\tlUse\lTmpbTl}{\prgReturn{Yes}}{\prgReturn{No}} +%\tlIfEqTF{\tlUse\lTmpaTl}{\tlUse\lTmpcTl}{\prgReturn{Yes}}{\prgReturn{No}} %\end{demohigh} \end{function} -\begin{function}{\TlVarIfEq,\TlVarIfEqT,\TlVarIfEqF,\TlVarIfEqTF} +\begin{function}{\tlVarIfEq,\tlVarIfEqT,\tlVarIfEqF,\tlVarIfEqTF} \begin{syntax} -\cs{TlVarIfEq} \meta{tl var_1} \meta{tl var_2} -\cs{TlVarIfEqT} \meta{tl var_1} \meta{tl var_2} \Arg{true code} -\cs{TlVarIfEqF} \meta{tl var_1} \meta{tl var_2} \Arg{false code} -\cs{TlVarIfEqTF} \meta{tl var_1} \meta{tl var_2} \Arg{true code} \Arg{false code} +\cs{tlVarIfEq} \meta{tl var_1} \meta{tl var_2} +\cs{tlVarIfEqT} \meta{tl var_1} \meta{tl var_2} \Arg{true code} +\cs{tlVarIfEqF} \meta{tl var_1} \meta{tl var_2} \Arg{false code} +\cs{tlVarIfEqTF} \meta{tl var_1} \meta{tl var_2} \Arg{true code} \Arg{false code} \end{syntax} Compares the content of two \meta{token list variables} and is logically \texttt{true} if the two contain the same list of tokens (\emph{i.e.}~identical in both the list of characters they contain and the category codes of those characters). For example \begin{demohigh} -\TlSet \lTmpaTl {abc} -\TlSet \lTmpbTl {abc} -\TlSet \lTmpcTl {xyz} -\TlVarIfEqTF \lTmpaTl \lTmpbTl {\Return{Yes}} {\Return{No}} -\TlVarIfEqTF \lTmpaTl \lTmpcTl {\Return{Yes}} {\Return{No}} +\tlSet \lTmpaTl {abc} +\tlSet \lTmpbTl {abc} +\tlSet \lTmpcTl {xyz} +\tlVarIfEqTF \lTmpaTl \lTmpbTl {\prgReturn{Yes}} {\prgReturn{No}} +\tlVarIfEqTF \lTmpaTl \lTmpcTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} -See also \cs{StrVarIfEq} for a comparison that ignores category codes. +See also \cs{strVarIfEq} for a comparison that ignores category codes. \end{function} -\begin{function}{\TlIfIn,\TlIfInT,\TlIfInF,\TlIfInTF} +\begin{function}{\tlIfIn,\tlIfInT,\tlIfInF,\tlIfInTF} \begin{syntax} -\cs{TlIfIn} \Arg{token list_1} \Arg{token list_2} -\cs{TlIfInT} \Arg{token list_1} \Arg{token list_2} \Arg{true code} -\cs{TlIfInF} \Arg{token list_1} \Arg{token list_2} \Arg{false code} -\cs{TlIfInTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} +\cs{tlIfIn} \Arg{token list_1} \Arg{token list_2} +\cs{tlIfInT} \Arg{token list_1} \Arg{token list_2} \Arg{true code} +\cs{tlIfInF} \Arg{token list_1} \Arg{token list_2} \Arg{false code} +\cs{tlIfInTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} \end{syntax} Tests if \meta{token list_2} is found inside \meta{token list_1}. The \meta{token list_2} cannot contain the tokens \verb|{|, \verb|}| or \verb|#| @@ -1990,17 +1990,17 @@ The \meta{token list_2} cannot contain the tokens \verb|{|, \verb|}| or \verb|#| (begin-group) or $2$ (end-group), and tokens with category code $6$). The search does \emph{not} enter brace (category code $1$/$2$) groups. \begin{demohigh} -\TlIfInTF {hello world} {o} {\Return{Yes}} {\Return{No}} -\TlIfInTF {hello world} {a} {\Return{Yes}} {\Return{No}} +\tlIfInTF {hello world} {o} {\prgReturn{Yes}} {\prgReturn{No}} +\tlIfInTF {hello world} {a} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\TlVarIfIn,\TlVarIfInT,\TlVarIfInF,\TlVarIfInTF} +\begin{function}{\tlVarIfIn,\tlVarIfInT,\tlVarIfInF,\tlVarIfInTF} \begin{syntax} -\cs{TlVarIfIn} \meta{tl var} \Arg{token list} -\cs{TlVarIfInT} \meta{tl var} \Arg{token list} \Arg{true code} -\cs{TlVarIfInF} \meta{tl var} \Arg{token list} \Arg{false code} -\cs{TlVarIfInTF} \meta{tl var} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{tlVarIfIn} \meta{tl var} \Arg{token list} +\cs{tlVarIfInT} \meta{tl var} \Arg{token list} \Arg{true code} +\cs{tlVarIfInF} \meta{tl var} \Arg{token list} \Arg{false code} +\cs{tlVarIfInTF} \meta{tl var} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{token list} is found in the content of the \meta{tl var}. The \meta{token list} cannot contain @@ -2008,55 +2008,55 @@ the tokens \verb|{|, \verb|}| or \verb|#| (more precisely, explicit character tokens with category code $1$ (begin-group) or $2$ (end-group), and tokens with category code $6$). \begin{demohigh} -\TlSet \lTmpaTl {hello world} -\TlVarIfInTF \lTmpaTl {o} {\Return{Yes}} {\Return{No}} -\TlVarIfInTF \lTmpaTl {a} {\Return{Yes}} {\Return{No}} +\tlSet \lTmpaTl {hello world} +\tlVarIfInTF \lTmpaTl {o} {\prgReturn{Yes}} {\prgReturn{No}} +\tlVarIfInTF \lTmpaTl {a} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\TlIfSingle,\TlIfSingleT,\TlIfSingleF,\TlIfSingleTF} +\begin{function}{\tlIfSingle,\tlIfSingleT,\tlIfSingleF,\tlIfSingleTF} \begin{syntax} -\cs{TlIfSingle} \Arg{token list} -\cs{TlIfSingleT} \Arg{token list} \Arg{true code} -\cs{TlIfSingleF} \Arg{token list} \Arg{false code} -\cs{TlIfSingleTF} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{tlIfSingle} \Arg{token list} +\cs{tlIfSingleT} \Arg{token list} \Arg{true code} +\cs{tlIfSingleF} \Arg{token list} \Arg{false code} +\cs{tlIfSingleTF} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{token list} has exactly one \meta{item}, \emph{i.e.} is a single normal token (neither an explicit space character nor a begin-group character) or a single brace group, surrounded by optional spaces on both sides. In other words, such a token list has -token count $1$ according to \cs{TlCount}. +token count $1$ according to \cs{tlCount}. \begin{demohigh} -\TlIfSingleTF {a} {\Return{Yes}} {\Return{No}} -\TlIfSingleTF {abc} {\Return{Yes}} {\Return{No}} +\tlIfSingleTF {a} {\prgReturn{Yes}} {\prgReturn{No}} +\tlIfSingleTF {abc} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\TlVarIfSingle,\TlVarIfSingleT,\TlVarIfSingleF,\TlVarIfSingleTF} +\begin{function}{\tlVarIfSingle,\tlVarIfSingleT,\tlVarIfSingleF,\tlVarIfSingleTF} \begin{syntax} -\cs{TlVarIfSingle} \meta{tl var} -\cs{TlVarIfSingleT} \meta{tl var} \Arg{true code} -\cs{TlVarIfSingleF} \meta{tl var} \Arg{false code} -\cs{TlVarIfSingleTF} \meta{tl var} \Arg{true code} \Arg{false code} +\cs{tlVarIfSingle} \meta{tl var} +\cs{tlVarIfSingleT} \meta{tl var} \Arg{true code} +\cs{tlVarIfSingleF} \meta{tl var} \Arg{false code} +\cs{tlVarIfSingleTF} \meta{tl var} \Arg{true code} \Arg{false code} \end{syntax} Tests if the content of the \meta{tl var} consists of a single \meta{item}, \emph{i.e.} is a single normal token (neither an explicit space character nor a begin-group character) or a single brace group, surrounded by optional spaces on both sides. In other words, such a -token list has token count $1$ according to \cs{TlVarCount}. +token list has token count $1$ according to \cs{tlVarCount}. \begin{demohigh} -\TlSet \lTmpaTl {a} -\TlVarIfSingleTF \lTmpaTl {\Return{Yes}} {\Return{No}} -\TlSet \lTmpaTl {abc} -\TlVarIfSingleTF \lTmpaTl {\Return{Yes}} {\Return{No}} +\tlSet \lTmpaTl {a} +\tlVarIfSingleTF \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} +\tlSet \lTmpaTl {abc} +\tlVarIfSingleTF \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} \section{Token List Case Functions} -\begin{function}{\TlVarCase} +\begin{function}{\tlVarCase} \begin{syntax} -\cs{TlVarCase} \meta{test token list variable} +\cs{tlVarCase} \meta{test token list variable} ~ ~ \verb"{" ~ ~ ~ ~ \meta{token list variable case_1} \Arg{code case_1} ~ ~ ~ ~ \meta{token list variable case_2} \Arg{code case_2} @@ -2066,28 +2066,28 @@ token list has token count $1$ according to \cs{TlVarCount}. \end{syntax} This function compares the \meta{test token list variable} in turn with each of the \meta{token list variable cases}. If the two -are equal (as described for \cs{TlVarIfEq}) +are equal (as described for \cs{tlVarIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. The function does nothing if there is no match. \begin{demohigh} \IgnoreSpacesOn -\TlSet \lTmpaTl {a} -\TlSet \lTmpbTl {b} -\TlSet \lTmpcTl {c} -\TlSet \lTmpkTl {b} -\TlVarCase \lTmpkTl { - \lTmpaTl {\Return {First}} - \lTmpbTl {\Return {Second}} - \lTmpcTl {\Return {Third}} +\tlSet \lTmpaTl {a} +\tlSet \lTmpbTl {b} +\tlSet \lTmpcTl {c} +\tlSet \lTmpkTl {b} +\tlVarCase \lTmpkTl { + \lTmpaTl {\prgReturn {First}} + \lTmpbTl {\prgReturn {Second}} + \lTmpcTl {\prgReturn {Third}} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\TlVarCaseT} +\begin{function}{\tlVarCaseT} \begin{syntax} -\cs{TlVarCaseT} \meta{test token list variable} +\cs{tlVarCaseT} \meta{test token list variable} ~ ~ \verb"{" ~ ~ ~ ~ \meta{token list variable case_1} \Arg{code case_1} ~ ~ ~ ~ \meta{token list variable case_2} \Arg{code case_2} @@ -2098,31 +2098,31 @@ does nothing if there is no match. \end{syntax} This function compares the \meta{test token list variable} in turn with each of the \meta{token list variable cases}. If the two -are equal (as described for \cs{TlVarIfEq}) +are equal (as described for \cs{tlVarIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. If any of the cases are matched, the \meta{true code} is also inserted into the input stream (after the code for the appropriate case). \begin{demohigh} \IgnoreSpacesOn -\TlSet \lTmpaTl {a} -\TlSet \lTmpbTl {b} -\TlSet \lTmpcTl {c} -\TlSet \lTmpkTl {b} -\TlVarCaseT \lTmpkTl { - \lTmpaTl {\IntSet \lTmpkInt {1}} - \lTmpbTl {\IntSet \lTmpkInt {2}} - \lTmpcTl {\IntSet \lTmpkInt {3}} +\tlSet \lTmpaTl {a} +\tlSet \lTmpbTl {b} +\tlSet \lTmpcTl {c} +\tlSet \lTmpkTl {b} +\tlVarCaseT \lTmpkTl { + \lTmpaTl {\intSet \lTmpkInt {1}} + \lTmpbTl {\intSet \lTmpkInt {2}} + \lTmpcTl {\intSet \lTmpkInt {3}} }{ - \Return {\IntUse \lTmpkInt} + \prgReturn {\intUse \lTmpkInt} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\TlVarCaseF} +\begin{function}{\tlVarCaseF} \begin{syntax} -\cs{TlVarCaseF} \meta{test token list variable} +\cs{tlVarCaseF} \meta{test token list variable} ~ ~ \verb"{" ~ ~ ~ ~ \meta{token list variable case_1} \Arg{code case_1} ~ ~ ~ ~ \meta{token list variable case_2} \Arg{code case_2} @@ -2133,30 +2133,30 @@ input stream (after the code for the appropriate case). \end{syntax} This function compares the \meta{test token list variable} in turn with each of the \meta{token list variable cases}. If the two -are equal (as described for \cs{TlVarIfEq}) +are equal (as described for \cs{tlVarIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. If none match then the \meta{false code} is inserted into the input stream (after the code for the appropriate case). \begin{demohigh} \IgnoreSpacesOn -\TlSet \lTmpaTl {a} -\TlSet \lTmpbTl {b} -\TlSet \lTmpcTl {c} -\TlSet \lTmpkTl {b} -\TlVarCaseF \lTmpkTl{ - \lTmpaTl {\Return {First}} - \lTmpbTl {\Return {Second}} - \lTmpcTl {\Return {Third}} +\tlSet \lTmpaTl {a} +\tlSet \lTmpbTl {b} +\tlSet \lTmpcTl {c} +\tlSet \lTmpkTl {b} +\tlVarCaseF \lTmpkTl{ + \lTmpaTl {\prgReturn {First}} + \lTmpbTl {\prgReturn {Second}} + \lTmpcTl {\prgReturn {Third}} }{ - \Return {No~Match!} + \prgReturn {No~Match!} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\TlVarCaseTF} +\begin{function}{\tlVarCaseTF} \begin{syntax} -\cs{TlVarCaseTF} \meta{test token list variable} +\cs{tlVarCaseTF} \meta{test token list variable} ~ ~ \verb"{" ~ ~ ~ ~ \meta{token list variable case_1} \Arg{code case_1} ~ ~ ~ ~ \meta{token list variable case_2} \Arg{code case_2} @@ -2168,27 +2168,27 @@ is inserted into the input stream (after the code for the appropriate case). \end{syntax} This function compares the \meta{test token list variable} in turn with each of the \meta{token list variable cases}. If the two -are equal (as described for \cs{TlVarIfEq}) +are equal (as described for \cs{tlVarIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. If any of the cases are matched, the \meta{true code} is also inserted into the input stream (after the code for the appropriate case), while if none -match then the \meta{false code} is inserted. The function \cs{TlVarCase}, +match then the \meta{false code} is inserted. The function \cs{tlVarCase}, which does nothing if there is no match, is also available. \begin{demohigh} \IgnoreSpacesOn -\TlSet \lTmpaTl {a} -\TlSet \lTmpbTl {b} -\TlSet \lTmpcTl {c} -\TlSet \lTmpkTl {b} -\TlVarCaseTF \lTmpkTl { - \lTmpaTl {\IntSet \lTmpkInt {1}} - \lTmpbTl {\IntSet \lTmpkInt {2}} - \lTmpcTl {\IntSet \lTmpkInt {3}} +\tlSet \lTmpaTl {a} +\tlSet \lTmpbTl {b} +\tlSet \lTmpcTl {c} +\tlSet \lTmpkTl {b} +\tlVarCaseTF \lTmpkTl { + \lTmpaTl {\intSet \lTmpkInt {1}} + \lTmpbTl {\intSet \lTmpkInt {2}} + \lTmpcTl {\intSet \lTmpkInt {3}} }{ - \Return {\IntUse \lTmpkInt} + \prgReturn {\intUse \lTmpkInt} }{ - \Return {0} + \prgReturn {0} } \IgnoreSpacesOff \end{demohigh} @@ -2214,7 +2214,7 @@ should be named with the suffix \texttt{Str}. Such variables should contain characters with category code $12$ (other), except spaces, which have category code $10$ (blank space). All the functions in this module which accept a token list argument first -convert it to a string using \cs{TlToStr} for internal processing, +convert it to a string using \cs{tlToStr} for internal processing, and do not treat a token list or the corresponding string representation differently. @@ -2225,7 +2225,7 @@ and for which a level of protection from unwanted expansion is suitable. This data type simplifies comparison of variables since there are no concerns about expansion of their contents. -%The functions \cs{CsToStr}, \cs{TlToStr}, \cs{TlVarToStr} and +%The functions \cs{CsToStr}, \cs{tlToStr}, \cs{tlVarToStr} and %\cs{TokenToStr} (and variants) generate strings from the appropriate %input: these are documented in modules \pkg{Cs}, \pkg{Tl} and \pkg{Token}, %respectively. @@ -2253,142 +2253,142 @@ code and so should only be used for short-term storage. \section{Creating and Using Strings} -\begin{function}{\StrNew} +\begin{function}{\strNew} \begin{syntax} -\cs{StrNew} \meta{str var} +\cs{strNew} \meta{str var} \end{syntax} Creates a new \meta{str var} or raises an error if the name is already taken. The declaration is global. The \meta{str var} is initially empty. \begin{codehigh} -\StrNew \lFooSomeStr +\strNew \lFooSomeStr \end{codehigh} \end{function} -\begin{function}{\StrConst} +\begin{function}{\strConst} \begin{syntax} -\cs{StrConst} \meta{str var} \Arg{token list} +\cs{strConst} \meta{str var} \Arg{token list} \end{syntax} Creates a new constant \meta{str var} or raises an error if the name is already taken. The value of the \meta{str var} is set globally to the \meta{token list}, converted to a string. \begin{codehigh} -\StrConst \cFooSomeStr {12\abc34} +\strConst \cFooSomeStr {12\abc34} \end{codehigh} \end{function} -\begin{function}{\StrUse} +\begin{function}{\strUse} \begin{syntax} -\cs{StrUse} \meta{str var} +\cs{strUse} \meta{str var} \end{syntax} Recovers the content of a \meta{str var} and returns the value. An error is raised if the variable does not exist or if it is invalid. Note that it is possible to use a \meta{str} directly without an accessor function. \begin{codehigh} -\StrUse \lTmpaStr +\strUse \lTmpaStr \end{codehigh} \end{function} \section{Viewing Strings} -\begin{function}{\StrLog} +\begin{function}{\strLog} \begin{syntax} -\cs{StrLog} \Arg{token list} +\cs{strLog} \Arg{token list} \end{syntax} Writes \meta{token list} in the log file. \begin{codehigh} -\StrLog {1234\abcd5678} +\strLog {1234\abcd5678} \end{codehigh} \end{function} -\begin{function}{\StrVarLog} +\begin{function}{\strVarLog} \begin{syntax} -\cs{StrVarLog} \meta{str var} +\cs{strVarLog} \meta{str var} \end{syntax} Writes the content of the \meta{str var} in the log file. \begin{codehigh} -\StrSet \lTmpiStr {1234\abcd5678} -\StrVarLog \lTmpiStr +\strSet \lTmpiStr {1234\abcd5678} +\strVarLog \lTmpiStr \end{codehigh} \end{function} -\begin{function}{\StrShow} +\begin{function}{\strShow} \begin{syntax} -\cs{StrShow} \Arg{token list} +\cs{strShow} \Arg{token list} \end{syntax} Displays \meta{token list} on the terminal. \begin{codehigh} -\StrShow {1234\abcd5678} +\strShow {1234\abcd5678} \end{codehigh} \end{function} -\begin{function}{\StrVarShow} +\begin{function}{\strVarShow} \begin{syntax} -\cs{StrVarShow} \meta{str var} +\cs{strVarShow} \meta{str var} \end{syntax} Displays the content of the \meta{str var} on the terminal. \begin{codehigh} -\StrSet \lTmpiStr {1234\abcd5678} -\StrVarShow \lTmpiStr +\strSet \lTmpiStr {1234\abcd5678} +\strVarShow \lTmpiStr \end{codehigh} \end{function} \section{Setting String Variables} -\begin{function}{\StrSet} +\begin{function}{\strSet} \begin{syntax} -\cs{StrSet} \meta{str var} \Arg{token list} +\cs{strSet} \meta{str var} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string}, and stores the result in \meta{str var}. \begin{demohigh} -\StrSet \lTmpiStr {\IntMathMult{4}{5}} -\StrUse \lTmpiStr +\strSet \lTmpiStr {\intMathMult{4}{5}} +\strUse \lTmpiStr \end{demohigh} \end{function} -\begin{function}{\StrSetEq} +\begin{function}{\strSetEq} \begin{syntax} -\cs{StrSetEq} \meta{str var_1} \meta{str var_2} +\cs{strSetEq} \meta{str var_1} \meta{str var_2} \end{syntax} Sets the content of \meta{str var_1} equal to that of \meta{str var_2}. \begin{demohigh} -\StrSet \lTmpaStr {abc} -\StrSetEq \lTmpbStr \lTmpaStr -\StrUse \lTmpbStr +\strSet \lTmpaStr {abc} +\strSetEq \lTmpbStr \lTmpaStr +\strUse \lTmpbStr \end{demohigh} \end{function} -\begin{function}{\StrClear} +\begin{function}{\strClear} \begin{syntax} -\cs{StrClear} \meta{str var} +\cs{strClear} \meta{str var} \end{syntax} Clears the content of the \meta{str var}. For example \begin{demohigh} -\StrSet \lTmpjStr {One} -\StrClear \lTmpjStr -\StrSet \lTmpjStr {Two} -\StrUse \lTmpjStr +\strSet \lTmpjStr {One} +\strClear \lTmpjStr +\strSet \lTmpjStr {Two} +\strUse \lTmpjStr \end{demohigh} \end{function} -\begin{function}{\StrClearNew} +\begin{function}{\strClearNew} \begin{syntax} -\cs{StrClearNew} \meta{str var} +\cs{strClearNew} \meta{str var} \end{syntax} Ensures that the \meta{str var} exists globally by applying -\cs{StrNew} if necessary, then applies \cs{StrClear} to leave +\cs{strNew} if necessary, then applies \cs{strClear} to leave the \meta{str var} empty. \begin{codehigh} -\StrClearNew \lFooSomeStr -\StrUse \lFooSomeStr +\strClearNew \lFooSomeStr +\strUse \lFooSomeStr \end{codehigh} \end{function} -\begin{function}{\StrConcat} +\begin{function}{\strConcat} \begin{syntax} -\cs{StrConcat} \meta{str var_1} \meta{str var_2} \meta{str var_3} +\cs{strConcat} \meta{str var_1} \meta{str var_2} \meta{str var_3} \end{syntax} Concatenates the content of \meta{str var_2} and \meta{str var_3} together and saves the result in \meta{str var_1}. The \meta{str var_2} @@ -2396,60 +2396,60 @@ is placed at the left side of the new string variable. The \meta{str var_2} and \meta{str var_3} must indeed be strings, as this function does not convert their contents to a string. \begin{demohigh} -\StrSet \lTmpbStr {con} -\StrSet \lTmpcStr {cat} -\StrConcat \lTmpaStr \lTmpbStr \lTmpcStr -\StrUse \lTmpaStr +\strSet \lTmpbStr {con} +\strSet \lTmpcStr {cat} +\strConcat \lTmpaStr \lTmpbStr \lTmpcStr +\strUse \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrPutLeft} +\begin{function}{\strPutLeft} \begin{syntax} -\cs{StrPutLeft} \meta{str var} \Arg{token list} +\cs{strPutLeft} \meta{str var} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string}, and prepends the result to \meta{str var}. The current contents of the \meta{str var} are not automatically converted to a string. \begin{demohigh} -\StrSet \lTmpkStr {Functional} -\StrPutLeft \lTmpkStr {Hello} -\StrUse \lTmpkStr +\strSet \lTmpkStr {Functional} +\strPutLeft \lTmpkStr {Hello} +\strUse \lTmpkStr \end{demohigh} \end{function} -\begin{function}{\StrPutRight} +\begin{function}{\strPutRight} \begin{syntax} -\cs{StrPutRight} \meta{str var} \Arg{token list} +\cs{strPutRight} \meta{str var} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string}, and appends the result to \meta{str var}. The current contents of the \meta{str var} are not automatically converted to a string. \begin{demohigh} -\StrSet \lTmpkStr {Functional} -\StrPutRight \lTmpkStr {World} -\StrUse \lTmpkStr +\strSet \lTmpkStr {Functional} +\strPutRight \lTmpkStr {World} +\strUse \lTmpkStr \end{demohigh} \end{function} \section{Modifying String Variables} -\begin{function}{\StrVarReplaceOnce} +\begin{function}{\strVarReplaceOnce} \begin{syntax} -\cs{StrVarReplaceOnce} \meta{str var} \Arg{old} \Arg{new} +\cs{strVarReplaceOnce} \meta{str var} \Arg{old} \Arg{new} \end{syntax} Converts the \meta{old} and \meta{new} token lists to strings, then replaces the first (leftmost) occurrence of \meta{old string} in the \meta{str var} with \meta{new string}. \begin{demohigh} -\StrSet \lTmpaStr {a{bc}bcd} -\StrVarReplaceOnce \lTmpaStr {bc} {xx} -\StrUse \lTmpaStr +\strSet \lTmpaStr {a{bc}bcd} +\strVarReplaceOnce \lTmpaStr {bc} {xx} +\strUse \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrVarReplaceAll} +\begin{function}{\strVarReplaceAll} \begin{syntax} -\cs{StrVarReplaceAll} \meta{str var} \Arg{old} \Arg{new} +\cs{strVarReplaceAll} \meta{str var} \Arg{old} \Arg{new} \end{syntax} Converts the \meta{old} and \meta{new} token lists to strings, then replaces all occurrences of \meta{old string} in the @@ -2458,70 +2458,70 @@ As this function operates from left to right, the pattern \meta{old string} may remain after the replacement. \begin{demohigh} -\StrSet \lTmpaStr {a{bc}bcd} -\StrVarReplaceAll \lTmpaStr {bc} {xx} -\StrUse \lTmpaStr +\strSet \lTmpaStr {a{bc}bcd} +\strVarReplaceAll \lTmpaStr {bc} {xx} +\strUse \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrVarRemoveOnce} +\begin{function}{\strVarRemoveOnce} \begin{syntax} -\cs{StrVarRemoveOnce} \meta{str var} \Arg{token list} +\cs{strVarRemoveOnce} \meta{str var} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string} then removes the first (leftmost) occurrence of \meta{string} from the \meta{str var}. \begin{demohigh} -\StrSet \lTmpaStr {a{bc}bcd} -\StrVarRemoveOnce \lTmpaStr {bc} -\StrUse \lTmpaStr +\strSet \lTmpaStr {a{bc}bcd} +\strVarRemoveOnce \lTmpaStr {bc} +\strUse \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrVarRemoveAll} +\begin{function}{\strVarRemoveAll} \begin{syntax} -\cs{StrVarRemoveAll} \meta{str var} \Arg{token list} +\cs{strVarRemoveAll} \meta{str var} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string} then removes all occurrences of \meta{string} from the \meta{str var}. As this function operates from left to right, the pattern \meta{string} may remain after the removal, for instance, \begin{demohigh} -\StrSet \lTmpaStr {abbccd} -\StrVarRemoveAll \lTmpaStr {bc} -\TlUse \lTmpaStr +\strSet \lTmpaStr {abbccd} +\strVarRemoveAll \lTmpaStr {bc} +\tlUse \lTmpaStr \end{demohigh} \end{function} \section{Working with the Content of Strings} -\begin{function}{\StrCount} +\begin{function}{\strCount} \begin{syntax} -\cs{StrCount} \Arg{token list} +\cs{strCount} \Arg{token list} \end{syntax} Returns the number of characters in the string representation of \meta{token list}, as an integer denotation. All characters including spaces are counted. \begin{demohigh} -\StrCount {12\abc34} +\strCount {12\abc34} \end{demohigh} -Due to naming conflict, you need to use \cs{StrSize} instead of \cs{StrCount} +Due to naming conflict, you need to use \cs{strSize} instead of \cs{strCount} if you want to use \verb!functional! package together with \verb!xstring! package. \end{function} \begin{function}{\StVarCount} \begin{syntax} -\cs{StrVarCount} \meta{tl var} +\cs{strVarCount} \meta{tl var} \end{syntax} Returns the number of characters in the string representation of the \meta{tl var}, as an integer denotation. All characters including spaces are counted. \begin{demohigh} -\StrSet \lTmpaStr {12\abc34} -\StrVarCount \lTmpaStr +\strSet \lTmpaStr {12\abc34} +\strVarCount \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrHead} +\begin{function}{\strHead} \begin{syntax} -\cs{StrHead} \Arg{token list} +\cs{strHead} \Arg{token list} \end{syntax} Converts the \meta{token list} into a \meta{string}. The first character in the \meta{string} is then returned, @@ -2529,13 +2529,13 @@ with category code \enquote{other}. If the first character is a space, it returns a space token with category code $10$ (blank space). If the \meta{string} is empty, then nothing is returned. \begin{demohigh} -\StrHead {HELLO} +\strHead {HELLO} \end{demohigh} \end{function} -\begin{function}{\StrVarHead} +\begin{function}{\strVarHead} \begin{syntax} -\cs{StrVarHead} \meta{tl var} +\cs{strVarHead} \meta{tl var} \end{syntax} Converts the \meta{tl var} into a \meta{string}. The first character in the \meta{string} is then returned, @@ -2543,14 +2543,14 @@ with category code \enquote{other}. If the first character is a space, it returns a space token with category code $10$ (blank space). If the \meta{string} is empty, then nothing is returned. \begin{demohigh} -\StrSet \lTmpaStr {HELLO} -\StrVarHead \lTmpaStr +\strSet \lTmpaStr {HELLO} +\strVarHead \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrTail} +\begin{function}{\strTail} \begin{syntax} -\cs{StrTail} \Arg{token list} +\cs{strTail} \Arg{token list} \end{syntax} Converts the \meta{token list} to a \meta{string}, removes the first character, and returns the remaining characters (if any) @@ -2559,13 +2559,13 @@ If the first character is a space, it only trims that space. If the \meta{token list} is empty, then nothing is left on the input stream. \begin{demohigh} -\StrTail {HELLO} +\strTail {HELLO} \end{demohigh} \end{function} -\begin{function}{\StrVarTail} +\begin{function}{\strVarTail} \begin{syntax} -\cs{StrVarTail} \meta{tl var} +\cs{strVarTail} \meta{tl var} \end{syntax} Converts the \meta{tl var} to a \meta{string}, removes the first character, and returns the remaining characters (if any) @@ -2574,14 +2574,14 @@ If the first character is a space, it only trims that space. If the \meta{token list} is empty, then nothing is left on the input stream. \begin{demohigh} -\StrSet \lTmpaStr {HELLO} -\StrVarTail \lTmpaStr +\strSet \lTmpaStr {HELLO} +\strVarTail \lTmpaStr \end{demohigh} \end{function} -\begin{function}{\StrItem} +\begin{function}{\strItem} \begin{syntax} -\cs{StrItem} \Arg{token list} \Arg{integer expression} +\cs{strItem} \Arg{token list} \Arg{integer expression} \end{syntax} Converts the \meta{token list} to a \meta{string}, and returns the character in position \meta{integer expression} of @@ -2591,13 +2591,13 @@ If the \meta{integer expression} is negative, characters are counted from the end of the \meta{string}. Hence, $-1$ is the right-most character, \emph{etc.} \begin{demohigh} -\StrItem {abcd} {3} +\strItem {abcd} {3} \end{demohigh} \end{function} -\begin{function}{\StrVarItem} +\begin{function}{\strVarItem} \begin{syntax} -\cs{StrVarItem} \meta{tl var} \Arg{integer expression} +\cs{strVarItem} \meta{tl var} \Arg{integer expression} \end{syntax} Converts the \meta{tl var} to a \meta{string}, and returns the character in position \meta{integer expression} of @@ -2607,8 +2607,8 @@ If the \meta{integer expression} is negative, characters are counted from the end of the \meta{string}. Hence, $-1$ is the right-most character, \emph{etc.} \begin{demohigh} -\StrSet \lTmpaStr {abcd} -\StrVarItem \lTmpaStr {3} +\strSet \lTmpaStr {abcd} +\strVarItem \lTmpaStr {3} \end{demohigh} \end{function} @@ -2618,20 +2618,20 @@ All mappings are done at the current group level, \emph{i.e.} any local assignments made by the \meta{function} or \meta{code} discussed below remain in effect after the loop. -%\begin{function}{\StrMapFunction,\StrVarMapFunction} +%\begin{function}{\strMapFunction,\strVarMapFunction} %\begin{syntax} -%\cs{StrMapFunction} \Arg{token list} \meta{function} -%\cs{StrVarMapFunction} \meta{str var} \meta{function} +%\cs{strMapFunction} \Arg{token list} \meta{function} +%\cs{strVarMapFunction} \meta{str var} \meta{function} %\end{syntax} %Converts the \meta{token list} to a \meta{string} then %applies \meta{function} to every \meta{character} in the %\meta{string} including spaces. %\end{function} -\begin{function}{\StrMapInline,\StrVarMapInline} +\begin{function}{\strMapInline,\strVarMapInline} \begin{syntax} -\cs{StrMapInline} \Arg{token list} \Arg{inline function} -\cs{StrVarMapInline} \meta{str var} \Arg{inline function} +\cs{strMapInline} \Arg{token list} \Arg{inline function} +\cs{strVarMapInline} \meta{str var} \Arg{inline function} \end{syntax} Converts the \meta{token list} to a \meta{string} then applies the \meta{inline function} to every \meta{character} in the @@ -2640,31 +2640,31 @@ The \meta{inline function} should consist of code which receives the \meta{character} as \verb|#1|. \begin{demohigh} \IgnoreSpacesOn -\StrClear \lTmpaStr -\StrMapInline {one} { - \StrPutRight \lTmpaStr {[#1]} +\strClear \lTmpaStr +\strMapInline {one} { + \strPutRight \lTmpaStr {[#1]} } -\StrUse \lTmpaStr +\strUse \lTmpaStr \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\StrMapTokens, \StrVarMapTokens} +%\begin{function}{\strMapTokens, \strVarMapTokens} %\begin{syntax} -%\cs{StrMapTokens} \Arg{token list} \Arg{code} -%\cs{StrVarMapTokens} \meta{str var} \Arg{code} +%\cs{strMapTokens} \Arg{token list} \Arg{code} +%\cs{strVarMapTokens} \meta{str var} \Arg{code} %\end{syntax} %Converts the \meta{token list} to a \meta{string} then applies %\meta{code} to every \meta{character} in the \meta{string} including spaces. %The \meta{code} receives each character as a trailing brace group. -%This is equivalent to \cs{StrMapFunction} if the +%This is equivalent to \cs{strMapFunction} if the %\meta{code} consists of a single function. %\end{function} -\begin{function}{\StrMapVariable,\StrMapVariable} +\begin{function}{\strMapVariable,\strMapVariable} \begin{syntax} -\cs{StrMapVariable} \Arg{token list} \meta{variable} \Arg{code} -\cs{StrVarMapVariable} \meta{str var} \meta{variable} \Arg{code} +\cs{strMapVariable} \Arg{token list} \meta{variable} \Arg{code} +\cs{strVarMapVariable} \meta{str var} \meta{variable} \Arg{code} \end{syntax} Converts the \meta{token list} to a \meta{string} then stores each \meta{character} in the \meta{string} (including spaces) in turn in @@ -2676,18 +2676,18 @@ the (string or token list) \meta{variable} and applies the \meta{string} is empty. \begin{demohigh} \IgnoreSpacesOn -\StrClear \lTmpaStr -\StrMapVariable {one} \lTmpiStr { - \StrPutRight \lTmpaStr {\Expand {[\lTmpiStr]}} +\strClear \lTmpaStr +\strMapVariable {one} \lTmpiStr { + \strPutRight \lTmpaStr {\expWhole {[\lTmpiStr]}} } -\StrUse \lTmpaStr +\strUse \lTmpaStr \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\StrMapBreak} +%\begin{function}{\strMapBreak} %\begin{syntax} -%\cs{StrMapBreak} +%\cs{strMapBreak} %\end{syntax} %Used to terminate a string map function before all %characters in the \meta{string} have been processed. This @@ -2699,7 +2699,7 @@ the (string or token list) \meta{variable} and applies the %Do something useful %} %\end{verbatim} -%See also \cs{StrMapBreakDo}. +%See also \cs{strMapBreakDo}. %Use outside of a string map scenario leads to low %level \TeX{} errors. %\begin{texnote} @@ -2710,9 +2710,9 @@ the (string or token list) \meta{variable} and applies the %\end{texnote} %\end{function} % -%\begin{function}{\StrMapBreakDo} +%\begin{function}{\strMapBreakDo} %\begin{syntax} -%\cs{StrMapBreakDo} \Arg{code} +%\cs{strMapBreakDo} \Arg{code} %\end{syntax} %Used to terminate a string map function before all %characters in the \meta{string} have been processed, inserting @@ -2738,44 +2738,44 @@ the (string or token list) \meta{variable} and applies the \section{String Conditionals} -\begin{function}{\StrIfExist,\StrIfExistT,\StrIfExistF,\StrIfExistTF} +\begin{function}{\strIfExist,\strIfExistT,\strIfExistF,\strIfExistTF} \begin{syntax} -\cs{StrIfExist} \meta{str var} -\cs{StrIfExistT} \meta{str var} \Arg{true code} -\cs{StrIfExistF} \meta{str var} \Arg{false code} -\cs{StrIfExistTF} \meta{str var} \Arg{true code} \Arg{false code} +\cs{strIfExist} \meta{str var} +\cs{strIfExistT} \meta{str var} \Arg{true code} +\cs{strIfExistF} \meta{str var} \Arg{false code} +\cs{strIfExistTF} \meta{str var} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{str var} is currently defined. This does not check that the \meta{str var} really is a string. \begin{demohigh} -\StrIfExistTF \lTmpaStr {\Return{Yes}} {\Return{No}} -\StrIfExistTF \lFooUndefinedStr {\Return{Yes}} {\Return{No}} +\strIfExistTF \lTmpaStr {\prgReturn{Yes}} {\prgReturn{No}} +\strIfExistTF \lFooUndefinedStr {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\StrVarIfEmpty,\StrVarIfEmptyT,\StrVarIfEmptyF,\StrVarIfEmptyTF} +\begin{function}{\strVarIfEmpty,\strVarIfEmptyT,\strVarIfEmptyF,\strVarIfEmptyTF} \begin{syntax} -\cs{StrVarIfEmpty} \meta{str var} -\cs{StrVarIfEmptyT} \meta{str var} \Arg{true code} -\cs{StrVarIfEmptyF} \meta{str var} \Arg{false code} -\cs{StrVarIfEmptyTF} \meta{str var} \Arg{true code} \Arg{false code} +\cs{strVarIfEmpty} \meta{str var} +\cs{strVarIfEmptyT} \meta{str var} \Arg{true code} +\cs{strVarIfEmptyF} \meta{str var} \Arg{false code} +\cs{strVarIfEmptyTF} \meta{str var} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{string variable} is entirely empty (\emph{i.e.} contains no characters at all). \begin{demohigh} -\StrSet \lTmpaStr {abc} -\StrVarIfEmptyTF \lTmpaStr {\Return{Empty}} {\Return{NonEmpty}} -\StrClear \lTmpaStr -\StrVarIfEmptyTF \lTmpaStr {\Return{Empty}} {\Return{NonEmpty}} +\strSet \lTmpaStr {abc} +\strVarIfEmptyTF \lTmpaStr {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\strClear \lTmpaStr +\strVarIfEmptyTF \lTmpaStr {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\StrIfEq,\StrIfEqT,\StrIfEqF,\StrIfEqTF} +\begin{function}{\strIfEq,\strIfEqT,\strIfEqF,\strIfEqTF} \begin{syntax} -\cs{StrIfEq} \Arg{tl_1} \Arg{tl_2} -\cs{StrIfEqT} \Arg{tl_1} \Arg{tl_2} \Arg{true code} -\cs{StrIfEqF} \Arg{tl_1} \Arg{tl_2} \Arg{false code} -\cs{StrIfEqTF} \Arg{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code} +\cs{strIfEq} \Arg{tl_1} \Arg{tl_2} +\cs{strIfEqT} \Arg{tl_1} \Arg{tl_2} \Arg{true code} +\cs{strIfEqF} \Arg{tl_1} \Arg{tl_2} \Arg{false code} +\cs{strIfEqTF} \Arg{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code} \end{syntax} Compares the two \meta{token lists} on a character by character basis (namely after converting them to strings), @@ -2783,84 +2783,84 @@ and is \texttt{true} if the two \meta{strings} contain the same characters in the same order. %Thus for example %\begin{codehigh} -%\StrIfEq{abc}{\TlToStr{abc}} +%\strIfEq{abc}{\tlToStr{abc}} %\end{codehigh} %is logically \texttt{true}. -See \cs{TlIfEq} to compare +See \cs{tlIfEq} to compare tokens (including their category codes) rather than characters. For example \begin{demohigh} -\StrIfEqTF {abc} {abc} {\Return{Yes}} {\Return{No}} -\StrIfEqTF {abc} {xyz} {\Return{Yes}} {\Return{No}} +\strIfEqTF {abc} {abc} {\prgReturn{Yes}} {\prgReturn{No}} +\strIfEqTF {abc} {xyz} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} %\begin{demohigh} -%\StrSet\lTmpaStr{abc} -%\StrSet\lTmpbStr{abc} -%\StrSet\lTmpcStr{xyz} -%\StrIfEqTF{\lTmpaStr}{\lTmpbStr}{\Return{Yes}}{\Return{No}} -%\StrIfEqTF{\lTmpaStr}{\lTmpcStr}{\Return{Yes}}{\Return{No}} -%\StrIfEqTF{\StrUse\lTmpaStr}{\StrUse\lTmpbStr}{\Return{Yes}}{\Return{No}} -%\StrIfEqTF{\StrUse\lTmpaStr}{\StrUse\lTmpcStr}{\Return{Yes}}{\Return{No}} +%\strSet\lTmpaStr{abc} +%\strSet\lTmpbStr{abc} +%\strSet\lTmpcStr{xyz} +%\strIfEqTF{\lTmpaStr}{\lTmpbStr}{\prgReturn{Yes}}{\prgReturn{No}} +%\strIfEqTF{\lTmpaStr}{\lTmpcStr}{\prgReturn{Yes}}{\prgReturn{No}} +%\strIfEqTF{\strUse\lTmpaStr}{\strUse\lTmpbStr}{\prgReturn{Yes}}{\prgReturn{No}} +%\strIfEqTF{\strUse\lTmpaStr}{\strUse\lTmpcStr}{\prgReturn{Yes}}{\prgReturn{No}} %\end{demohigh} \end{function} -\begin{function}{\StrVarIfEq,\StrVarIfEqT,\StrVarIfEqF,\StrVarIfEqTF} +\begin{function}{\strVarIfEq,\strVarIfEqT,\strVarIfEqF,\strVarIfEqTF} \begin{syntax} -\cs{StrVarIfEq} \meta{str var_1} \meta{str var_2} -\cs{StrVarIfEqT} \meta{str var_1} \meta{str var_2} \Arg{true code} -\cs{StrVarIfEqF} \meta{str var_1} \meta{str var_2} \Arg{false code} -\cs{StrVarIfEqTF} \meta{str var_1} \meta{str var_2} \Arg{true code} \Arg{false code} +\cs{strVarIfEq} \meta{str var_1} \meta{str var_2} +\cs{strVarIfEqT} \meta{str var_1} \meta{str var_2} \Arg{true code} +\cs{strVarIfEqF} \meta{str var_1} \meta{str var_2} \Arg{false code} +\cs{strVarIfEqTF} \meta{str var_1} \meta{str var_2} \Arg{true code} \Arg{false code} \end{syntax} Compares the content of two \meta{str variables} and is logically \texttt{true} if the two contain the same characters -in the same order. See \cs{TlVarIfEq} to compare tokens +in the same order. See \cs{tlVarIfEq} to compare tokens (including their category codes) rather than characters. \begin{demohigh} -\StrSet \lTmpaStr {abc} -\StrSet \lTmpbStr {abc} -\StrSet \lTmpcStr {xyz} -\StrVarIfEqTF \lTmpaStr \lTmpbStr {\Return{Yes}} {\Return{No}} -\StrVarIfEqTF \lTmpaStr \lTmpcStr {\Return{Yes}} {\Return{No}} +\strSet \lTmpaStr {abc} +\strSet \lTmpbStr {abc} +\strSet \lTmpcStr {xyz} +\strVarIfEqTF \lTmpaStr \lTmpbStr {\prgReturn{Yes}} {\prgReturn{No}} +\strVarIfEqTF \lTmpaStr \lTmpcStr {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\StrIfIn,\StrIfInT,\StrIfInF,\StrIfInTF} +\begin{function}{\strIfIn,\strIfInT,\strIfInF,\strIfInTF} \begin{syntax} -\cs{StrIfIn} \Arg{tl_1} \Arg{tl_2} -\cs{StrIfInT} \Arg{tl_1} \Arg{tl_2} \Arg{true code} -\cs{StrIfInF} \Arg{tl_1} \Arg{tl_2} \Arg{false code} -\cs{StrIfInTF} \Arg{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code} +\cs{strIfIn} \Arg{tl_1} \Arg{tl_2} +\cs{strIfInT} \Arg{tl_1} \Arg{tl_2} \Arg{true code} +\cs{strIfInF} \Arg{tl_1} \Arg{tl_2} \Arg{false code} +\cs{strIfInTF} \Arg{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code} \end{syntax} Converts both \meta{token lists} to \meta{strings} and tests whether \meta{string_2} is found inside \meta{string_1}. \begin{demohigh} -\StrIfInTF {hello world} {o} {\Return{Yes}}{\Return{No}} -\StrIfInTF {hello world} {a} {\Return{Yes}}{\Return{No}} +\strIfInTF {hello world} {o} {\prgReturn{Yes}}{\prgReturn{No}} +\strIfInTF {hello world} {a} {\prgReturn{Yes}}{\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\StrVarIfIn,\StrVarIfInT,\StrVarIfInF,\StrVarIfInTF} +\begin{function}{\strVarIfIn,\strVarIfInT,\strVarIfInF,\strVarIfInTF} \begin{syntax} -\cs{StrVarIfIn} \meta{str var} \Arg{token list} -\cs{StrVarIfInT} \meta{str var} \Arg{token list} \Arg{true code} -\cs{StrVarIfInF} \meta{str var} \Arg{token list} \Arg{false code} -\cs{StrVarIfInTF} \meta{str var} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{strVarIfIn} \meta{str var} \Arg{token list} +\cs{strVarIfInT} \meta{str var} \Arg{token list} \Arg{true code} +\cs{strVarIfInF} \meta{str var} \Arg{token list} \Arg{false code} +\cs{strVarIfInTF} \meta{str var} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Converts the \meta{token list} to a \meta{string} and tests if that \meta{string} is found in the content of the \meta{str var}. \begin{demohigh} -\StrSet \lTmpaStr {hello world} -\StrVarIfInTF \lTmpaStr {o} {\Return{Yes}}{\Return{No}} -\StrVarIfInTF \lTmpaStr {a} {\Return{Yes}}{\Return{No}} +\strSet \lTmpaStr {hello world} +\strVarIfInTF \lTmpaStr {o} {\prgReturn{Yes}}{\prgReturn{No}} +\strVarIfInTF \lTmpaStr {a} {\prgReturn{Yes}}{\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\StrCompare,\StrCompareT,\StrCompareF,\StrCompareTF} +\begin{function}{\strCompare,\strCompareT,\strCompareF,\strCompareTF} \begin{syntax} -\cs{StrCompare} \Arg{tl_1} \meta{relation} \Arg{tl_2} -\cs{StrCompareT} \Arg{tl_1} \meta{relation} \Arg{tl_2} \Arg{true code} -\cs{StrCompareF} \Arg{tl_1} \meta{relation} \Arg{tl_2} \Arg{false code} -\cs{StrCompareTF} \Arg{tl_1} \meta{relation} \Arg{tl_2} \Arg{true code} \Arg{false code} +\cs{strCompare} \Arg{tl_1} \meta{relation} \Arg{tl_2} +\cs{strCompareT} \Arg{tl_1} \meta{relation} \Arg{tl_2} \Arg{true code} +\cs{strCompareF} \Arg{tl_1} \meta{relation} \Arg{tl_2} \Arg{false code} +\cs{strCompareTF} \Arg{tl_1} \meta{relation} \Arg{tl_2} \Arg{true code} \Arg{false code} \end{syntax} Compares the two \meta{token lists} on a character by character basis (namely after converting them to strings) in a lexicographic @@ -2874,8 +2874,8 @@ order according to the character codes of the characters. The \end{itemize} For example: \begin{demohigh} -\StrCompareTF {ab} < {abc} {\Return{Yes}} {\Return{No}} -\StrCompareTF {ab} < {aa} {\Return{Yes}} {\Return{No}} +\strCompareTF {ab} < {abc} {\prgReturn{Yes}} {\prgReturn{No}} +\strCompareTF {ab} < {aa} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} %\begin{texnote} %This is a wrapper around the \TeX{} primitive @@ -2885,15 +2885,15 @@ For example: %clusters, locale, etc. %\end{texnote} \par -Due to naming conflict, you need to use \cs{StrIfCompare}/\cs{StrIfCompareTF} as a replacement +Due to naming conflict, you need to use \cs{strIfCompare}/\cs{strIfCompareTF} as a replacement if you want to use \verb!functional! package together with \verb!xstring! package. \end{function} \section{String Case Functions} -\begin{function}{\StrCase} +\begin{function}{\strCase} \begin{syntax} -\cs{StrCase} \Arg{test string} +\cs{strCase} \Arg{test string} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{string case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{string case_2} \Arg{code case_2} @@ -2904,22 +2904,22 @@ if you want to use \verb!functional! package together with \verb!xstring! packag Compares the \meta{test string} in turn with each of the \meta{string cases} (all token lists are converted to strings). If the two are equal (as described for -\cs{StrIfEq}) then the associated \meta{code} is left in the +\cs{strIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. \begin{demohigh} \IgnoreSpacesOn -\StrCase {bbb} { - {aaa} {\Return{First}} - {bbb} {\Return{Second}} - {ccb} {\Return{Third}} +\strCase {bbb} { + {aaa} {\prgReturn{First}} + {bbb} {\prgReturn{Second}} + {ccb} {\prgReturn{Third}} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\StrCaseT} +\begin{function}{\strCaseT} \begin{syntax} -\cs{StrCaseT} \Arg{test string} +\cs{strCaseT} \Arg{test string} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{string case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{string case_2} \Arg{code case_2} @@ -2931,26 +2931,26 @@ input stream and other cases are discarded. Compares the \meta{test string} in turn with each of the \meta{string cases} (all token lists are converted to strings). If the two are equal (as described for -\cs{StrIfEq}) then the associated \meta{code} is left in the +\cs{strIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. If any of the cases are matched, the \meta{true code} is also inserted into the input stream (after the code for the appropriate case). \begin{demohigh} \IgnoreSpacesOn -\StrCaseT {bbb} { - {aaa} {\TlSet\lTmpkTl{First}} - {bbb} {\TlSet\lTmpkTl{Second}} - {ccb} {\TlSet\lTmpkTl{Third}} +\strCaseT {bbb} { + {aaa} {\tlSet\lTmpkTl{First}} + {bbb} {\tlSet\lTmpkTl{Second}} + {ccb} {\tlSet\lTmpkTl{Third}} }{ - \Return{\TlUse\lTmpkTl} + \prgReturn{\tlUse\lTmpkTl} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\StrCaseF} +\begin{function}{\strCaseF} \begin{syntax} -\cs{StrCaseF} \Arg{test string} +\cs{strCaseF} \Arg{test string} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{string case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{string case_2} \Arg{code case_2} @@ -2962,25 +2962,25 @@ input stream (after the code for the appropriate case). Compares the \meta{test string} in turn with each of the \meta{string cases} (all token lists are converted to strings). If the two are equal (as described for -\cs{StrIfEq}) then the associated \meta{code} is left in the +\cs{strIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. If none match then the \meta{false code} is inserted. \begin{demohigh} \IgnoreSpacesOn -\StrCaseF {bbb} { - {aaa} {\Return{First}} - {bbb} {\Return{Second}} - {ccb} {\Return{Third}} +\strCaseF {bbb} { + {aaa} {\prgReturn{First}} + {bbb} {\prgReturn{Second}} + {ccb} {\prgReturn{Third}} }{ - \Return{No~Match!} + \prgReturn{No~Match!} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\StrCaseTF} +\begin{function}{\strCaseTF} \begin{syntax} -\cs{StrCaseTF} \Arg{test string} +\cs{strCaseTF} \Arg{test string} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{string case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{string case_2} \Arg{code case_2} @@ -2993,21 +2993,21 @@ match then the \meta{false code} is inserted. Compares the \meta{test string} in turn with each of the \meta{string cases} (all token lists are converted to strings). If the two are equal (as described for -\cs{StrIfEq}) then the associated \meta{code} is left in the +\cs{strIfEq}) then the associated \meta{code} is left in the input stream and other cases are discarded. If any of the cases are matched, the \meta{true code} is also inserted into the input stream (after the code for the appropriate case), while if none match then the \meta{false code} is inserted. \begin{demohigh} \IgnoreSpacesOn -\StrCaseTF {bbb} { - {aaa} {\TlSet\lTmpkTl{First}} - {bbb} {\TlSet\lTmpkTl{Second}} - {ccb} {\TlSet\lTmpkTl{Third}} +\strCaseTF {bbb} { + {aaa} {\tlSet\lTmpkTl{First}} + {bbb} {\tlSet\lTmpkTl{Second}} + {ccb} {\tlSet\lTmpkTl{Third}} }{ - \Return{\TlUse\lTmpkTl} + \prgReturn{\tlUse\lTmpkTl} }{ - \Return{No~Match!} + \prgReturn{No~Match!} } \IgnoreSpacesOff \end{demohigh} @@ -3072,19 +3072,19 @@ of an expression or after \texttt{+}, \texttt{-}, \texttt{*}, \texttt{/} or~\texttt{(} leads to an error. \end{itemize} Each integer operand can be either an integer variable (with no need -for \cs{IntUse}) or an integer denotation. +for \cs{intUse}) or an integer denotation. For example both of the following give the same result because \cs{lFooSomeTl} expands to the integer denotation~$5$ while the integer variable \cs{lFooSomeInt} takes the value~$4$. \begin{demohigh} -\IntEval {5 + 4 * 3 - (3 + 4 * 5)} +\intEval {5 + 4 * 3 - (3 + 4 * 5)} \end{demohigh} \begin{demohigh} -\TlNew \lFooSomeTl -\TlSet \lFooSomeTl {5} -\IntNew \lFooSomeInt -\IntSet \lFooSomeInt {4} -\IntEval {\lFooSomeTl + \lFooSomeInt * 3 - (3 + 4 * 5)} +\tlNew \lFooSomeTl +\tlSet \lFooSomeTl {5} +\intNew \lFooSomeInt +\intSet \lFooSomeInt {4} +\intEval {\lFooSomeTl + \lFooSomeInt * 3 - (3 + 4 * 5)} \end{demohigh} %\begin{texnote} @@ -3100,9 +3100,9 @@ while the integer variable \cs{lFooSomeInt} takes the value~$4$. \section{Using Integer Expressions} -\begin{function}{\IntEval} +\begin{function}{\intEval} \begin{syntax} -\cs{IntEval} \Arg{integer expression} +\cs{intEval} \Arg{integer expression} \end{syntax} Evaluates the \meta{integer expression} and returns the result: for positive results an @@ -3110,49 +3110,49 @@ explicit sequence of decimal digits not starting with~\texttt{0}, for negative results \texttt{-}~followed by such a sequence, and \texttt{0}~for zero. For example \begin{demohigh} -\IntEval {(1+4)*(2-3)/5} +\intEval {(1+4)*(2-3)/5} \end{demohigh} \begin{demohigh} -\IntEval {\StrCount{12\TeX34} - \TlCount{12\TeX34}} +\intEval {\strCount{12\TeX34} - \tlCount{12\TeX34}} \end{demohigh} \end{function} -\begin{function}{\IntMathAdd} +\begin{function}{\intMathAdd} \begin{syntax} -\cs{IntMathAdd} \Arg{integer expression_1} \Arg{integer expression_2} +\cs{intMathAdd} \Arg{integer expression_1} \Arg{integer expression_2} \end{syntax} Adds \Arg{integer expression_1} and \Arg{integer expression_2}, and returns the result. For example \begin{demohigh} -\IntMathAdd {7} {3} +\intMathAdd {7} {3} \end{demohigh} \end{function} -\begin{function}{\IntMathSub} +\begin{function}{\intMathSub} \begin{syntax} -\cs{IntMathSub} \Arg{integer expression_1} \Arg{integer expression_2} +\cs{intMathSub} \Arg{integer expression_1} \Arg{integer expression_2} \end{syntax} Subtracts \Arg{integer expression_2} from \Arg{integer expression_1}, and returns the result. For example \begin{demohigh} -\IntMathSub {7} {3} +\intMathSub {7} {3} \end{demohigh} \end{function} -\begin{function}{\IntMathMult} +\begin{function}{\intMathMult} \begin{syntax} -\cs{IntMathMult} \Arg{integer expression_1} \Arg{integer expression_2} +\cs{intMathMult} \Arg{integer expression_1} \Arg{integer expression_2} \end{syntax} Multiplies \Arg{integer expression_1} by \Arg{integer expression_2}, and returns the result. For example \begin{demohigh} -\IntMathMult {7} {3} +\intMathMult {7} {3} \end{demohigh} \end{function} -\begin{function}{\IntMathDiv} +\begin{function}{\intMathDiv} \begin{syntax} -\cs{IntMathDiv} \Arg{integer expression_1} \Arg{integer expression_2} +\cs{intMathDiv} \Arg{integer expression_1} \Arg{integer expression_2} \end{syntax} Evaluates the two \meta{integer expressions} as described earlier, then divides the first value by the second, and rounds the result @@ -3161,13 +3161,13 @@ this is identical to using \verb|/| directly in an \meta{integer expression}. The result is returned as an \meta{integer denotation}. For example \begin{demohigh} -\IntMathDiv {8} {3} +\intMathDiv {8} {3} \end{demohigh} \end{function} -\begin{function}{\IntMathDivTrancate} +\begin{function}{\intMathDivTrancate} \begin{syntax} -\cs{IntMathDivTrancate} \Arg{integer expression_1} \Arg{integer expression_2} +\cs{intMathDivTrancate} \Arg{integer expression_1} \Arg{integer expression_2} \end{syntax} Evaluates the two \meta{integer expressions} as described earlier, then divides the first value by the second, and rounds the result towards zero. @@ -3175,56 +3175,56 @@ Note that division using \verb|/| rounds to the closest integer instead. The result is returned as an \meta{integer denotation}. For example \begin{demohigh} -\IntMathDivTruncate {8} {3} +\intMathDivTruncate {8} {3} \end{demohigh} \end{function} -\begin{function}{\IntMathSign} +\begin{function}{\intMathSign} \begin{syntax} -\cs{IntMathSign} \Arg{intexpr} +\cs{intMathSign} \Arg{intexpr} \end{syntax} Evaluates the \meta{integer expression} then leaves $1$ or $0$ or $-1$ in the input stream according to the sign of the result. \end{function} -\begin{function}{\IntMathAbs} +\begin{function}{\intMathAbs} \begin{syntax} -\cs{IntMathAbs} \Arg{integer expression} +\cs{intMathAbs} \Arg{integer expression} \end{syntax} Evaluates the \meta{integer expression} as described for -\cs{IntEval} and leaves the absolute value of the result in +\cs{intEval} and leaves the absolute value of the result in the input stream as an \meta{integer denotation} after two expansions. \end{function} -\begin{function}{\IntMathMax,\IntMathMin} +\begin{function}{\intMathMax,\intMathMin} \begin{syntax} -\cs{IntMathMax} \Arg{intexpr_1} \Arg{intexpr_2} -\cs{IntMathMin} \Arg{intexpr_1} \Arg{intexpr_2} +\cs{intMathMax} \Arg{intexpr_1} \Arg{intexpr_2} +\cs{intMathMin} \Arg{intexpr_1} \Arg{intexpr_2} \end{syntax} Evaluates the \meta{integer expressions} as described for -\cs{IntEval} and leaves either the larger or smaller value +\cs{intEval} and leaves either the larger or smaller value in the input stream as an \meta{integer denotation} after two expansions. \end{function} -\begin{function}{\IntMathMod} +\begin{function}{\intMathMod} \begin{syntax} -\cs{IntMathMod} \Arg{intexpr_1} \Arg{intexpr_2} +\cs{intMathMod} \Arg{intexpr_1} \Arg{intexpr_2} \end{syntax} Evaluates the two \meta{integer expressions} as described earlier, then calculates the integer remainder of dividing the first expression by the second. This is obtained by subtracting -\cs{IntMathDivTruncate} \Arg{intexpr_1} \Arg{intexpr_2} times +\cs{intMathDivTruncate} \Arg{intexpr_1} \Arg{intexpr_2} times \meta{intexpr_2} from \meta{intexpr_1}. Thus, the result has the same sign as \meta{intexpr_1} and its absolute value is strictly less than that of \meta{intexpr_2}. The result is left in the input stream as an \meta{integer denotation} after two expansions. \end{function} -\begin{function}{\IntMathRand} +\begin{function}{\intMathRand} \begin{syntax} -\cs{IntMathRand} \Arg{intexpr_1} \Arg{intexpr_2} +\cs{intMathRand} \Arg{intexpr_1} \Arg{intexpr_2} \end{syntax} Evaluates the two \meta{integer expressions} and produces a pseudo-random number between the two (with bounds included). @@ -3233,27 +3233,27 @@ pseudo-random number between the two (with bounds included). \section{Creating and Using Integers} -\begin{function}{\IntNew} +\begin{function}{\intNew} \begin{syntax} -\cs{IntNew} \meta{integer} +\cs{intNew} \meta{integer} \end{syntax} Creates a new \meta{integer} or raises an error if the name is already taken. The declaration is global. The \meta{integer} is initially equal to $0$. \end{function} -\begin{function}{\IntConst} +\begin{function}{\intConst} \begin{syntax} -\cs{IntConst} \meta{integer} \Arg{integer expression} +\cs{intConst} \meta{integer} \Arg{integer expression} \end{syntax} Creates a new constant \meta{integer} or raises an error if the name is already taken. The value of the \meta{integer} is set globally to the \meta{integer expression}. \end{function} -\begin{function}{\IntUse} +\begin{function}{\intUse} \begin{syntax} -\cs{IntUse} \meta{integer} +\cs{intUse} \meta{integer} \end{syntax} Recovers the content of an \meta{integer} and returns the value. An error is raised if the variable does not exist or if it is invalid. @@ -3261,148 +3261,148 @@ An error is raised if the variable does not exist or if it is invalid. \section{Viewing Integers} -\begin{function}{\IntLog} +\begin{function}{\intLog} \begin{syntax} -\cs{IntLog} \Arg{integer expression} +\cs{intLog} \Arg{integer expression} \end{syntax} Writes the result of evaluating the \meta{integer expression} in the log file. \end{function} -\begin{function}{\IntVarLog} +\begin{function}{\intVarLog} \begin{syntax} -\cs{IntVarLog} \meta{integer} +\cs{intVarLog} \meta{integer} \end{syntax} Writes the value of the \meta{integer} in the log file. \end{function} -\begin{function}{\IntShow} +\begin{function}{\intShow} \begin{syntax} -\cs{IntShow} \Arg{integer expression} +\cs{intShow} \Arg{integer expression} \end{syntax} Displays the result of evaluating the \meta{integer expression} on the terminal. \end{function} -\begin{function}{\IntVarShow} +\begin{function}{\intVarShow} \begin{syntax} -\cs{IntVarShow} \meta{integer} +\cs{intVarShow} \meta{integer} \end{syntax} Displays the value of the \meta{integer} on the terminal. \end{function} \section{Setting Integer Variables} -\begin{function}{\IntSet} +\begin{function}{\intSet} \begin{syntax} -\cs{IntSet} \meta{integer} \Arg{integer expression} +\cs{intSet} \meta{integer} \Arg{integer expression} \end{syntax} Sets \meta{integer} to the value of \meta{integer expression}, -which must evaluate to an integer (as described for \cs{IntEval}). +which must evaluate to an integer (as described for \cs{intEval}). For example \begin{demohigh} -\IntSet \lTmpaInt {3+5} -\IntUse \lTmpaInt +\intSet \lTmpaInt {3+5} +\intUse \lTmpaInt \end{demohigh} \end{function} -\begin{function}{\IntSetEq} +\begin{function}{\intSetEq} \begin{syntax} -\cs{IntSetEq} \meta{integer_1} \meta{integer_2} +\cs{intSetEq} \meta{integer_1} \meta{integer_2} \end{syntax} Sets the content of \meta{integer_1} equal to that of \meta{integer_2}. \end{function} -\begin{function}{\IntZero} +\begin{function}{\intZero} \begin{syntax} -\cs{IntZero} \meta{integer} +\cs{intZero} \meta{integer} \end{syntax} Sets \meta{integer} to $0$. For example \begin{demohigh} -\IntSet \lTmpaInt {5} -\IntZero \lTmpaInt -\IntUse \lTmpaInt +\intSet \lTmpaInt {5} +\intZero \lTmpaInt +\intUse \lTmpaInt \end{demohigh} \end{function} -\begin{function}{\IntZeroNew} +\begin{function}{\intZeroNew} \begin{syntax} -\cs{IntZeroNew} \meta{integer} +\cs{intZeroNew} \meta{integer} \end{syntax} Ensures that the \meta{integer} exists globally by applying -\cs{IntNew} if necessary, then applies \cs{IntZero} to leave +\cs{intNew} if necessary, then applies \cs{intZero} to leave the \meta{integer} set to zero. \end{function} -\begin{function}{\IntIncr} +\begin{function}{\intIncr} \begin{syntax} -\cs{IntIncr} \meta{integer} +\cs{intIncr} \meta{integer} \end{syntax} Increases the value stored in \meta{integer} by $1$. For example \begin{demohigh} -\IntSet \lTmpaInt {5} -\IntIncr \lTmpaInt -\IntUse \lTmpaInt +\intSet \lTmpaInt {5} +\intIncr \lTmpaInt +\intUse \lTmpaInt \end{demohigh} \end{function} -\begin{function}{\IntDecr} +\begin{function}{\intDecr} \begin{syntax} -\cs{IntDecr} \meta{integer} +\cs{intDecr} \meta{integer} \end{syntax} Decreases the value stored in \meta{integer} by $1$. For example \begin{demohigh} -\IntSet \lTmpaInt {5} -\IntDecr \lTmpaInt -\IntUse \lTmpaInt +\intSet \lTmpaInt {5} +\intDecr \lTmpaInt +\intUse \lTmpaInt \end{demohigh} \end{function} -\begin{function}{\IntAdd} +\begin{function}{\intAdd} \begin{syntax} -\cs{IntAdd} \meta{integer} \Arg{integer expression} +\cs{intAdd} \meta{integer} \Arg{integer expression} \end{syntax} Adds the result of the \meta{integer expression} to the current content of the \meta{integer}. For example \begin{demohigh} -\IntSet \lTmpaInt {5} -\IntAdd \lTmpaInt {2} -\IntUse \lTmpaInt +\intSet \lTmpaInt {5} +\intAdd \lTmpaInt {2} +\intUse \lTmpaInt \end{demohigh} \end{function} -\begin{function}{\IntSub} +\begin{function}{\intSub} \begin{syntax} -\cs{IntSub} \meta{integer} \Arg{integer expression} +\cs{intSub} \meta{integer} \Arg{integer expression} \end{syntax} Subtracts the result of the \meta{integer expression} from the current content of the \meta{integer}. For example \begin{demohigh} -\IntSet \lTmpaInt {5} -\IntSub \lTmpaInt {3} -\IntUse \lTmpaInt +\intSet \lTmpaInt {5} +\intSub \lTmpaInt {3} +\intUse \lTmpaInt \end{demohigh} \end{function} \section{Integer Step Functions} -\begin{function}{\IntReplicate} +\begin{function}{\intReplicate} \begin{syntax} -\cs{IntReplicate} \Arg{integer expression} \Arg{tokens} +\cs{intReplicate} \Arg{integer expression} \Arg{tokens} \end{syntax} Evaluates the \meta{integer expression} (which should be zero or positive) and returns the resulting number of copies of the \meta{tokens}. \begin{demohigh} -\IntReplicate {4} {Hello} +\intReplicate {4} {Hello} \end{demohigh} \end{function} -%\begin{function}{\IntStepFunction} +%\begin{function}{\intStepFunction} %\begin{syntax} -%\cs{IntStepFunction} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function} +%\cs{intStepFunction} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function} %\end{syntax} %This function first evaluates the \meta{initial value}, \meta{step} %and \meta{final value}, all of which should be integer expressions. @@ -3428,9 +3428,9 @@ and returns the resulting number of copies of the \meta{tokens}. %\end{quote} %\end{function} -\begin{function}{\IntStepInline} +\begin{function}{\intStepInline} \begin{syntax} -\cs{IntStepInline} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code} +\cs{intStepInline} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value}, \meta{step} and \meta{final value}, all of which should be integer expressions. @@ -3441,18 +3441,18 @@ with \verb|#1| replaced by the current \meta{value}. Thus the \meta{code} should define a function of one argument~(\verb|#1|). \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\IntStepInline {1} {3} {30} { - \TlPutRight \lTmpaTl {[#1]} +\tlClear \lTmpaTl +\intStepInline {1} {3} {30} { + \tlPutRight \lTmpaTl {[#1]} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\IntStepOneInline} +\begin{function}{\intStepOneInline} \begin{syntax} -\cs{IntStepOneInline} \Arg{initial value} \Arg{final value} \Arg{code} +\cs{intStepOneInline} \Arg{initial value} \Arg{final value} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value} and \meta{final value}, all of which should be integer expressions. @@ -3463,18 +3463,18 @@ with \verb|#1| replaced by the current \meta{value}. Thus the \meta{code} should define a function of one argument~(\verb|#1|). \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\IntStepOneInline {1} {10} { - \TlPutRight \lTmpaTl {[#1]} +\tlClear \lTmpaTl +\intStepOneInline {1} {10} { + \tlPutRight \lTmpaTl {[#1]} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\IntStepVariable} +\begin{function}{\intStepVariable} \begin{syntax} -\cs{IntStepVariable} \Arg{initial value} \Arg{step} \Arg{final value} \meta{tl var} \Arg{code} +\cs{intStepVariable} \Arg{initial value} \Arg{step} \Arg{final value} \meta{tl var} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value}, \meta{step} and \meta{final value}, all of which should be integer expressions. @@ -3486,19 +3486,19 @@ the \meta{code} should make use of the \meta{tl~var}. %For example %\begin{demohigh} %\IgnoreSpacesOn -%\TlClear\lTmpaTl -%\IntStepVariable{1}{3}{30}\lTmpiTl{ -% \TlPutRight\lTmpaTl{\Value\lTmpiTl} -% \TlPutRight\lTmpaTl{~} +%\tlClear\lTmpaTl +%\intStepVariable{1}{3}{30}\lTmpiTl{ +% \tlPutRight\lTmpaTl{\expValue\lTmpiTl} +% \tlPutRight\lTmpaTl{~} %} -%\Return{\Value\lTmpaTl} +%\prgReturn{\expValue\lTmpaTl} %\IgnoreSpacesOff %\end{demohigh} \end{function} -\begin{function}{\IntStepOneVariable} +\begin{function}{\intStepOneVariable} \begin{syntax} -\cs{IntStepOneVariable} \Arg{initial value} \Arg{final value} \meta{tl var} \Arg{code} +\cs{intStepOneVariable} \Arg{initial value} \Arg{final value} \meta{tl var} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value} and \meta{final value}, all of which should be integer expressions. @@ -3511,50 +3511,50 @@ the \meta{code} should make use of the \meta{tl~var}. \section{Integer Conditionals} -\begin{function}{\IntIfExist,\IntIfExistT,\IntIfExistF,\IntIfExistTF} +\begin{function}{\intIfExist,\intIfExistT,\intIfExistF,\intIfExistTF} \begin{syntax} -\cs{IntIfExist} \meta{integer} -\cs{IntIfExistT} \meta{integer} \Arg{true code} -\cs{IntIfExistF} \meta{integer} \Arg{false code} -\cs{IntIfExistTF} \meta{integer} \Arg{true code} \Arg{false code} +\cs{intIfExist} \meta{integer} +\cs{intIfExistT} \meta{integer} \Arg{true code} +\cs{intIfExistF} \meta{integer} \Arg{false code} +\cs{intIfExistTF} \meta{integer} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{integer} is currently defined. This does not check that the \meta{integer} really is an integer variable. \end{function} -\begin{function}{\IntIfOdd,\IntIfOddT,\IntIfOddF,\IntIfOddTF} +\begin{function}{\intIfOdd,\intIfOddT,\intIfOddF,\intIfOddTF} \begin{syntax} -\cs{IntIfOdd} \Arg{integer expression} -\cs{IntIfOddT} \Arg{integer expression} \Arg{true code} -\cs{IntIfOddF} \Arg{integer expression} \Arg{false code} -\cs{IntIfOddTF} \Arg{integer expression} \Arg{true code} \Arg{false code} +\cs{intIfOdd} \Arg{integer expression} +\cs{intIfOddT} \Arg{integer expression} \Arg{true code} +\cs{intIfOddF} \Arg{integer expression} \Arg{false code} +\cs{intIfOddTF} \Arg{integer expression} \Arg{true code} \Arg{false code} \end{syntax} This function first evaluates the \meta{integer expression} -as described for \cs{IntEval}. +as described for \cs{intEval}. It then evaluates if this is odd or even, as appropriate. \end{function} -\begin{function}{\IntIfEven,\IntIfEvenT,\IntIfEvenF,\IntIfEvenTF} +\begin{function}{\intIfEven,\intIfEvenT,\intIfEvenF,\intIfEvenTF} \begin{syntax} -\cs{IntIfEven} \Arg{integer expression} -\cs{IntIfEvenT} \Arg{integer expression} \Arg{true code} -\cs{IntIfEvenF} \Arg{integer expression} \Arg{false code} -\cs{IntIfEvenTF} \Arg{integer expression} \Arg{true code} \Arg{false code} +\cs{intIfEven} \Arg{integer expression} +\cs{intIfEvenT} \Arg{integer expression} \Arg{true code} +\cs{intIfEvenF} \Arg{integer expression} \Arg{false code} +\cs{intIfEvenTF} \Arg{integer expression} \Arg{true code} \Arg{false code} \end{syntax} This function first evaluates the \meta{integer expression} -as described for \cs{IntEval}. +as described for \cs{intEval}. It then evaluates if this is even or odd, as appropriate. \end{function} -\begin{function}{\IntCompare,\IntCompareT,\IntCompareF,\IntCompareTF} +\begin{function}{\intCompare,\intCompareT,\intCompareF,\intCompareTF} \begin{syntax} -\cs{IntCompare} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} -\cs{IntCompareT} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} \Arg{true code} -\cs{IntCompareF} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} \Arg{false code} -\cs{IntCompareTF} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} \Arg{true code} \Arg{false code} +\cs{intCompare} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} +\cs{intCompareT} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} \Arg{true code} +\cs{intCompareF} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} \Arg{false code} +\cs{intCompareTF} \Arg{intexpr_1} \meta{relation} \Arg{intexpr_2} \Arg{true code} \Arg{false code} \end{syntax} This function first evaluates each of the \meta{integer expressions} -as described for \cs{IntEval}. The two results are then +as described for \cs{intEval}. The two results are then compared using the \meta{relation}:\par {\centering\begin{tabular}{ll} Equal & \texttt{=} \\ @@ -3563,16 +3563,16 @@ Less than & \texttt{<} \\ \end{tabular}\par} For example \begin{demohigh} -\IntCompareTF {2} > {1} {\Return{Greater}} {\Return{Less}} -\IntCompareTF {2} > {3} {\Return{Greater}} {\Return{Less}} +\intCompareTF {2} > {1} {\prgReturn{Greater}} {\prgReturn{Less}} +\intCompareTF {2} > {3} {\prgReturn{Greater}} {\prgReturn{Less}} \end{demohigh} \end{function} \section{Integer Case Functions} -\begin{function}{\IntCase} +\begin{function}{\intCase} \begin{syntax} -\cs{IntCase} \Arg{test integer expression} +\cs{intCase} \Arg{test integer expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{intexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{intexpr case_2} \Arg{code case_2} @@ -3587,9 +3587,9 @@ associated \meta{code} is left in the input stream and other cases are discarded. \end{function} -\begin{function}{\IntCaseT} +\begin{function}{\intCaseT} \begin{syntax} -\cs{IntCaseT} \Arg{test integer expression} +\cs{intCaseT} \Arg{test integer expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{intexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{intexpr case_2} \Arg{code case_2} @@ -3607,9 +3607,9 @@ cases are matched, the \meta{true code} is also inserted into the input stream (after the code for the appropriate case). \end{function} -\begin{function}{\IntCaseF} +\begin{function}{\intCaseF} \begin{syntax} -\cs{IntCaseF} \Arg{test integer expression} +\cs{intCaseF} \Arg{test integer expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{intexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{intexpr case_2} \Arg{code case_2} @@ -3628,7 +3628,7 @@ match then the \meta{false code} is into the input stream For example \begin{demohigh} \IgnoreSpacesOn -\IntCaseF { 2 * 5 } +\intCaseF { 2 * 5 } { { 5 } { Small } { 4 + 6 } { Medium } @@ -3639,9 +3639,9 @@ For example \end{demohigh} \end{function} -\begin{function}{\IntCaseTF} +\begin{function}{\intCaseTF} \begin{syntax} -\cs{IntCaseTF} \Arg{test integer expression} +\cs{intCaseTF} \Arg{test integer expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{intexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{intexpr case_2} \Arg{code case_2} @@ -3768,7 +3768,7 @@ towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$. \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians). \item Dimensions, automatically expressed in points, \emph{e.g.}, \texttt{pc} is $12$. -\item Automatic conversion (no need for \cs{IntUse}, etc) of +\item Automatic conversion (no need for \cs{intUse}, etc) of integer, dimension, and skip variables to floating point numbers, expressing dimensions in points and ignoring the stretch and shrink components of skips. @@ -3789,7 +3789,7 @@ A \enquote{floating point} is a floating point number or a tuple thereof. An example of use could be the following. \begin{demohigh} \LaTeX{} can now compute: $ \frac{\sin(3.5)}{2} + 2\cdot 10^{-3} -= \FpEval {sin(3.5)/2 + 2e-3} $. += \fpEval {sin(3.5)/2 + 2e-3} $. \end{demohigh} The operation \texttt{round} can be used to limit the result's @@ -3816,9 +3816,9 @@ replacing it by \verb|+0|. \section{Using Floating Point Expressions} -\begin{function}{\FpEval} +\begin{function}{\fpEval} \begin{syntax} -\cs{FpEval} \Arg{floating point expression} +\cs{fpEval} \Arg{floating point expression} \end{syntax} Evaluates the \meta{floating point expression} and returns the result as a decimal number with no @@ -3827,98 +3827,98 @@ for the exponent. Non-significant trailing zeros are trimmed, and integers are expressed without a decimal separator. The values $\pm\infty$ and \nan{} trigger an \enquote{invalid operation} exception. -For a tuple, each item is converted using \cs{FpEval} and they are combined as +For a tuple, each item is converted using \cs{fpEval} and they are combined as \verb|(|\meta{fp_1}\verb*|, |\meta{fp_2}\verb*|, |\ldots{}\meta{fp_n}\verb|)| if $n>1$ and \verb|(|\meta{fp_1}\verb|,)| or \verb|()| for fewer items. %This function is identical to \cs{fp_to_decimal:n}. For example \begin{demohigh} -\FpEval {(1.2+3.4)*(5.6-7.8)/9} +\fpEval {(1.2+3.4)*(5.6-7.8)/9} \end{demohigh} \end{function} -\begin{function}{\FpMathAdd} +\begin{function}{\fpMathAdd} \begin{syntax} -\cs{FpMathAdd} \Arg{fpexpr_1} \Arg{fpexpr_2} +\cs{fpMathAdd} \Arg{fpexpr_1} \Arg{fpexpr_2} \end{syntax} Adds \Arg{fpexpr_1} and \Arg{fpexpr_2}, and returns the result. For example \begin{demohigh} -\FpMathAdd {2.8} {3.7} -\FpMathAdd {3.8-1} {2.7+1} +\fpMathAdd {2.8} {3.7} +\fpMathAdd {3.8-1} {2.7+1} \end{demohigh} \end{function} -\begin{function}{\FpMathSub} +\begin{function}{\fpMathSub} \begin{syntax} -\cs{FpMathSub} \Arg{fpexpr_1} \Arg{fpexpr_2} +\cs{fpMathSub} \Arg{fpexpr_1} \Arg{fpexpr_2} \end{syntax} Subtracts \Arg{fpexpr_2} from \Arg{fpexpr_1}, and returns the result. For example \begin{demohigh} -\FpMathSub {2.8} {3.7} -\FpMathSub {3.8-1} {2.7+1} +\fpMathSub {2.8} {3.7} +\fpMathSub {3.8-1} {2.7+1} \end{demohigh} \end{function} -\begin{function}{\FpMathMult} +\begin{function}{\fpMathMult} \begin{syntax} -\cs{FpMathMult} \Arg{fpexpr_1} \Arg{fpexpr_2} +\cs{fpMathMult} \Arg{fpexpr_1} \Arg{fpexpr_2} \end{syntax} Multiplies \Arg{fpexpr_1} by \Arg{fpexpr_2}, and returns the result. For example \begin{demohigh} -\FpMathMult {2.8} {3.7} -\FpMathMult {3.8-1} {2.7+1} +\fpMathMult {2.8} {3.7} +\fpMathMult {3.8-1} {2.7+1} \end{demohigh} \end{function} -\begin{function}{\FpMathDiv} +\begin{function}{\fpMathDiv} \begin{syntax} -\cs{FpMathDiv} \Arg{fpexpr_1} \Arg{fpexpr_2} +\cs{fpMathDiv} \Arg{fpexpr_1} \Arg{fpexpr_2} \end{syntax} Divides \Arg{fpexpr_1} by \Arg{fpexpr_2}, and returns the result. For example \begin{demohigh} -\FpMathDiv {2.8} {3.7} -\FpMathDiv {3.8-1} {2.7+1} +\fpMathDiv {2.8} {3.7} +\fpMathDiv {3.8-1} {2.7+1} \end{demohigh} \end{function} -\begin{function}{\FpMathSign} +\begin{function}{\fpMathSign} \begin{syntax} -\cs{FpMathSign} \Arg{fpexpr} +\cs{fpMathSign} \Arg{fpexpr} \end{syntax} Evaluates the \meta{fpexpr} and returns the value -using \cs{FpEval}\verb|{sign(|\meta{result}\verb|)}|: $+1$ for positive +using \cs{fpEval}\verb|{sign(|\meta{result}\verb|)}|: $+1$ for positive numbers and for $+\infty$, $-1$ for negative numbers and for $-\infty$, $\pm 0$ for $\pm 0$. If the operand is a tuple or is \nan{}, then \enquote{invalid operation} occurs and the result is $0$. For example \begin{demohigh} -\FpMathSign {3.5} -\FpMathSign {-2.7} +\fpMathSign {3.5} +\fpMathSign {-2.7} \end{demohigh} \end{function} -\begin{function}{\FpMathAbs} +\begin{function}{\fpMathAbs} \begin{syntax} -\cs{FpMathAbs} \Arg{floating point expression} +\cs{fpMathAbs} \Arg{floating point expression} \end{syntax} Evaluates the \meta{floating point expression} as described for -\cs{FpEval} and returns the absolute value. +\cs{fpEval} and returns the absolute value. If the argument is $\pm\infty$, \nan{} or a tuple, \enquote{invalid operation} occurs. Within floating point expressions, \verb|abs()| can be used; it accepts $\pm\infty$ and \nan{} as arguments. \end{function} -\begin{function}{\FpMathMax,\FpMathMin} +\begin{function}{\fpMathMax,\fpMathMin} \begin{syntax} -\cs{FpMathMax} \Arg{fp expression_1} \Arg{fp expression_2} -\cs{FpMathMin} \Arg{fp expression_1} \Arg{fp expression_2} +\cs{fpMathMax} \Arg{fp expression_1} \Arg{fp expression_2} +\cs{fpMathMin} \Arg{fp expression_1} \Arg{fp expression_2} \end{syntax} -Evaluates the \meta{floating point expressions} as described for \cs{FpEval} +Evaluates the \meta{floating point expressions} as described for \cs{fpEval} and returns the resulting larger (\texttt{max}) or smaller (\texttt{min}) value. If the argument is a tuple, \enquote{invalid operation} occurs, but no other case raises exceptions. Within floating point expressions, @@ -3927,32 +3927,32 @@ but no other case raises exceptions. Within floating point expressions, \section{Creating and Using Floating Points} -\begin{function}{\FpNew} +\begin{function}{\fpNew} \begin{syntax} -\cs{FpNew} \meta{fp var} +\cs{fpNew} \meta{fp var} \end{syntax} Creates a new \meta{fp var} or raises an error if the name is already taken. The declaration is global. The \meta{fp~var} is initially $+0$. \end{function} -\begin{function}{\FpConst} +\begin{function}{\fpConst} \begin{syntax} -\cs{FpConst} \meta{fp var} \Arg{floating point expression} +\cs{fpConst} \meta{fp var} \Arg{floating point expression} \end{syntax} Creates a new constant \meta{fp var} or raises an error if the name is already taken. The \meta{fp var} is set globally equal to the result of evaluating the \meta{floating point expression}. For example \begin{demohigh} -\FpConst \cMyPiFp {3.1415926} -\FpUse \cMyPiFp +\fpConst \cMyPiFp {3.1415926} +\fpUse \cMyPiFp \end{demohigh} \end{function} -\begin{function}{\FpUse} +\begin{function}{\fpUse} \begin{syntax} -\cs{FpUse} \meta{fp var} +\cs{fpUse} \meta{fp var} \end{syntax} Recovers the value of the \meta{fp var} and returns the value as a decimal number with no exponent. @@ -3968,114 +3968,114 @@ decimal number with no exponent. \section{Viewing Floating Points} -\begin{function}{\FpLog} +\begin{function}{\fpLog} \begin{syntax} -\cs{FpLog} \Arg{floating point expression} +\cs{fpLog} \Arg{floating point expression} \end{syntax} Evaluates the \meta{floating point expression} and writes the result in the log file. \end{function} -\begin{function}{\FpVarLog} +\begin{function}{\fpVarLog} \begin{syntax} -\cs{FpVarLog} \meta{fp var} +\cs{fpVarLog} \meta{fp var} \end{syntax} Writes the value of \meta{fp var} in the log file. \end{function} -\begin{function}{\FpShow} +\begin{function}{\fpShow} \begin{syntax} -\cs{FpShow} \Arg{floating point expression} +\cs{fpShow} \Arg{floating point expression} \end{syntax} Evaluates the \meta{floating point expression} and displays the result in the terminal. \end{function} -\begin{function}{\FpVarShow} +\begin{function}{\fpVarShow} \begin{syntax} -\cs{FpVarShow} \meta{fp var} +\cs{fpVarShow} \meta{fp var} \end{syntax} Displays the value of \meta{fp var} in the terminal. \end{function} \section{Setting Floating Point Variables} -\begin{function}{\FpSet} +\begin{function}{\fpSet} \begin{syntax} -\cs{FpSet} \meta{fp var} \Arg{floating point expression} +\cs{fpSet} \meta{fp var} \Arg{floating point expression} \end{syntax} Sets \meta{fp var} equal to the result of computing the \meta{floating point expression}. For example \begin{demohigh} -\FpSet \lTmpaFp {4/7} -\FpUse \lTmpaFp +\fpSet \lTmpaFp {4/7} +\fpUse \lTmpaFp \end{demohigh} \end{function} -\begin{function}{\FpSetEq} +\begin{function}{\fpSetEq} \begin{syntax} -\cs{FpSetEq} \meta{fp var_1} \meta{fp var_2} +\cs{fpSetEq} \meta{fp var_1} \meta{fp var_2} \end{syntax} Sets the floating point variable \meta{fp var_1} equal to the current value of \meta{fp var_2}. \end{function} -\begin{function}{\FpZero} +\begin{function}{\fpZero} \begin{syntax} -\cs{FpZero} \meta{fp var} +\cs{fpZero} \meta{fp var} \end{syntax} Sets the \meta{fp var} to $+0$. For example \begin{demohigh} -\FpSet \lTmpaFp {5.3} -\FpZero \lTmpaFp -\FpUse \lTmpaFp +\fpSet \lTmpaFp {5.3} +\fpZero \lTmpaFp +\fpUse \lTmpaFp \end{demohigh} \end{function} -\begin{function}{\FpZeroNew} +\begin{function}{\fpZeroNew} \begin{syntax} -\cs{FpZeroNew} \meta{fp var} +\cs{fpZeroNew} \meta{fp var} \end{syntax} Ensures that the \meta{fp var} exists globally -by applying \cs{FpNew} if necessary, then applies -\cs{FpZero} to leave the \meta{fp var} set to $+0$. +by applying \cs{fpNew} if necessary, then applies +\cs{fpZero} to leave the \meta{fp var} set to $+0$. \end{function} -\begin{function}{\FpAdd} +\begin{function}{\fpAdd} \begin{syntax} -\cs{FpAdd} \meta{fp var} \Arg{floating point expression} +\cs{fpAdd} \meta{fp var} \Arg{floating point expression} \end{syntax} Adds the result of computing the \meta{floating point expression} to the \meta{fp var}. This also applies if \meta{fp var} and \meta{floating point expression} evaluate to tuples of the same size. For example \begin{demohigh} -\FpSet \lTmpaFp {5.3} -\FpAdd \lTmpaFp {2.11} -\FpUse \lTmpaFp +\fpSet \lTmpaFp {5.3} +\fpAdd \lTmpaFp {2.11} +\fpUse \lTmpaFp \end{demohigh} \end{function} -\begin{function}{\FpSub} +\begin{function}{\fpSub} \begin{syntax} -\cs{FpSub} \meta{fp var} \Arg{floating point expression} +\cs{fpSub} \meta{fp var} \Arg{floating point expression} \end{syntax} Subtracts the result of computing the \meta{floating point expression} from the \meta{fp var}. This also applies if \meta{fp var} and \meta{floating point expression} evaluate to tuples of the same size. For example \begin{demohigh} -\FpSet \lTmpaFp {5.3} -\FpSub \lTmpaFp {2.11} -\FpUse \lTmpaFp +\fpSet \lTmpaFp {5.3} +\fpSub \lTmpaFp {2.11} +\fpUse \lTmpaFp \end{demohigh} \end{function} \section{Floating Point Step Functions} -%\begin{function}{\FpStepFunction} +%\begin{function}{\fpStepFunction} %\begin{syntax} -%\cs{FpStepFunction} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function} +%\cs{fpStepFunction} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function} %\end{syntax} %This function first evaluates the \meta{initial value}, \meta{step} %and \meta{final value}, each of which should be a floating point @@ -4108,9 +4108,9 @@ expression} evaluate to tuples of the same size. For example %\end{texnote} %\end{function} -\begin{function}{\FpStepInline} +\begin{function}{\fpStepInline} \begin{syntax} -\cs{FpStepInline} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code} +\cs{fpStepInline} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value}, \meta{step} and \meta{final value}, all of which should be floating point @@ -4122,18 +4122,18 @@ with \verb|#1| replaced by the current \meta{value}. Thus the \meta{code} should define a function of one argument (\verb|#1|). \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\FpStepInline {1} {0.1} {1.5} { - \TlPutRight \lTmpaTl {[#1]} +\tlClear \lTmpaTl +\fpStepInline {1} {0.1} {1.5} { + \tlPutRight \lTmpaTl {[#1]} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\FpStepVariable} +\begin{function}{\fpStepVariable} \begin{syntax} -\cs{FpStepVariable} \Arg{initial value} \Arg{step} \Arg{final value} \meta{tl var} \Arg{code} +\cs{fpStepVariable} \Arg{initial value} \Arg{step} \Arg{final value} \meta{tl var} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value}, \meta{step} and \meta{final value}, all of which should be floating point @@ -4146,46 +4146,46 @@ the \meta{code} should make use of the \meta{tl var}. %For example %\begin{demohigh} %\IgnoreSpacesOn -%\TlClear\lTmpaTl -%\FpStepVariable{1}{0.1}{1.5}\lTmpiTl{ -% \TlPutRight\lTmpaTl{\Value\lTmpiTl} -% \TlPutRight\lTmpaTl{~} +%\tlClear\lTmpaTl +%\fpStepVariable{1}{0.1}{1.5}\lTmpiTl{ +% \tlPutRight\lTmpaTl{\expValue\lTmpiTl} +% \tlPutRight\lTmpaTl{~} %} -%\Return{\Value\lTmpaTl} +%\prgReturn{\expValue\lTmpaTl} %\IgnoreSpacesOff %\end{demohigh} \end{function} \section{Float Point Conditionals} -\begin{function}{\FpIfExist,\FpIfExistT,\FpIfExistF,\FpIfExistTF} +\begin{function}{\fpIfExist,\fpIfExistT,\fpIfExistF,\fpIfExistTF} \begin{syntax} -\cs{FpIfExist} \meta{fp var} -\cs{FpIfExistT} \meta{fp var} \Arg{true code} -\cs{FpIfExistF} \meta{fp var} \Arg{false code} -\cs{FpIfExistTF} \meta{fp var} \Arg{true code} \Arg{false code} +\cs{fpIfExist} \meta{fp var} +\cs{fpIfExistT} \meta{fp var} \Arg{true code} +\cs{fpIfExistF} \meta{fp var} \Arg{false code} +\cs{fpIfExistTF} \meta{fp var} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{fp var} is currently defined. This does not check that the \meta{fp var} really is a floating point variable. For example \begin{demohigh} -\FpIfExistTF \lTmpaFp {\Return{Yes}} {\Return{No}} -\FpIfExistTF \lMyUndefinedFp {\Return{Yes}} {\Return{No}} +\fpIfExistTF \lTmpaFp {\prgReturn{Yes}} {\prgReturn{No}} +\fpIfExistTF \lMyUndefinedFp {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\FpCompare,\FpCompareT,\FpCompareF,\FpCompareTF} +\begin{function}{\fpCompare,\fpCompareT,\fpCompareF,\fpCompareTF} \begin{syntax} -\cs{FpCompare} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} -\cs{FpCompareT} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} \Arg{true code} -\cs{FpCompareF} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} \Arg{false code} -\cs{FpCompareTF} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} \Arg{true code} \Arg{false code} +\cs{fpCompare} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} +\cs{fpCompareT} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} \Arg{true code} +\cs{fpCompareF} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} \Arg{false code} +\cs{fpCompareTF} \Arg{fpexpr_1} \meta{relation} \Arg{fpexpr_2} \Arg{true code} \Arg{false code} \end{syntax} Compares the \meta{fpexpr_1} and the \meta{fpexpr_2}, and returns \texttt{true} if the \meta{relation} is obeyed. For example \begin{demohigh} -\FpCompareTF {1} > {0.9999} {\Return{Greater}} {\Return{Less}} -\FpCompareTF {1} > {1.0001} {\Return{Greater}} {\Return{Less}} +\fpCompareTF {1} > {0.9999} {\prgReturn{Greater}} {\prgReturn{Less}} +\fpCompareTF {1} > {1.0001} {\prgReturn{Greater}} {\prgReturn{Less}} \end{demohigh} Two floating points $x$ and $y$ may obey four mutually exclusive relations: @@ -4196,7 +4196,7 @@ any value, even another \nan{}, hence $x=x$ is not true for a \nan{}. To test if a value is \nan{}, compare it to an arbitrary number with the \enquote{not ordered} relation.\par %\begin{demohigh} -%\FpCompareTF{0/0}?{0}{\Return{Is~a~Nan}}{\Return{Isn't~a~NaN}} +%\fpCompareTF{0/0}?{0}{\prgReturn{Is~a~Nan}}{\prgReturn{Isn't~a~NaN}} %\end{demohigh} Tuples are equal if they have the same number of items and items compare equal (in particular there must be no \nan{}). @@ -4234,13 +4234,13 @@ code and so should only be used for short-term storage. \section{Dimension Expressions} -\begin{function}{\DimEval} +\begin{function}{\dimEval} \begin{syntax} -\cs{DimEval} \Arg{dimension expression} +\cs{dimEval} \Arg{dimension expression} \end{syntax} Evaluates the \meta{dimension expression}, expanding any dimensions and token list variables within the \meta{expression} -to their content (without requiring \cs{DimUse}/\cs{TlUse}) +to their content (without requiring \cs{dimUse}/\cs{tlUse}) and applying the standard mathematical rules. The result of the calculation is returned as a \meta{dimension denotation}. %This is expressed in points (\texttt{pt}), and requires suitable @@ -4248,38 +4248,38 @@ calculation is returned as a \meta{dimension denotation}. %an \meta{internal dimension}. For example \begin{demohigh} -\DimEval {(1.2pt+3.4pt)/9} +\dimEval {(1.2pt+3.4pt)/9} \end{demohigh} -%\DimEval{(1.2pt+3.4pt)*(5.6-7.8)/9} +%\dimEval{(1.2pt+3.4pt)*(5.6-7.8)/9} \end{function} -\begin{function}{\DimMathAdd} +\begin{function}{\dimMathAdd} \begin{syntax} -\cs{DimMathAdd} \Arg{dimexpr_1} \Arg{dimexpr_2} +\cs{dimMathAdd} \Arg{dimexpr_1} \Arg{dimexpr_2} \end{syntax} Adds \Arg{dimexpr_1} and \Arg{dimexpr_2}, and returns the result. For example \begin{demohigh} -\DimMathAdd {2.8pt} {3.7pt} -\DimMathAdd {3.8pt-1pt} {2.7pt+1pt} +\dimMathAdd {2.8pt} {3.7pt} +\dimMathAdd {3.8pt-1pt} {2.7pt+1pt} \end{demohigh} \end{function} -\begin{function}{\DimMathSub} +\begin{function}{\dimMathSub} \begin{syntax} -\cs{DimMathSub} \Arg{dimexpr_1} \Arg{dimexpr_2} +\cs{dimMathSub} \Arg{dimexpr_1} \Arg{dimexpr_2} \end{syntax} Subtracts \Arg{dimexpr_2} from \Arg{dimexpr_1}, and returns the result. For example \begin{demohigh} -\DimMathSub {2.8pt} {3.7pt} -\DimMathSub {3.8pt-1pt} {2.7pt+1pt} +\dimMathSub {2.8pt} {3.7pt} +\dimMathSub {3.8pt-1pt} {2.7pt+1pt} \end{demohigh} \end{function} -\begin{function}{\DimMathRatio} +\begin{function}{\dimMathRatio} \begin{syntax} -\cs{DimMathRatio} \Arg{dimexpr_1} \Arg{dimexpr_2} +\cs{dimMathRatio} \Arg{dimexpr_1} \Arg{dimexpr_2} \end{syntax} Parses the two \meta{dimension expressions}, then calculates the ratio of the two and returns it. @@ -4287,81 +4287,81 @@ The result is a ratio expression between two integers, with all distances converted to scaled points. For example \begin{demohigh} -\DimMathRatio {5pt} {10pt} +\dimMathRatio {5pt} {10pt} \end{demohigh} The returned value is suitable for use inside a \meta{dimension expression} such as \begin{codehigh} -\DimSet \lTmpaDim {10pt*\DimMathRatio{5pt}{10pt}} +\dimSet \lTmpaDim {10pt*\dimMathRatio{5pt}{10pt}} \end{codehigh} \end{function} -\begin{function}{\DimMathSign} +\begin{function}{\dimMathSign} \begin{syntax} -\cs{DimMathSign} \Arg{dimexpr} +\cs{dimMathSign} \Arg{dimexpr} \end{syntax} Evaluates the \meta{dimexpr} then returns $1$ or $0$ or $-1$ according to the sign of the result. For example \begin{demohigh} -\DimMathSign {3.5pt} -\DimMathSign {-2.7pt} +\dimMathSign {3.5pt} +\dimMathSign {-2.7pt} \end{demohigh} \end{function} -\begin{function}{\DimMathAbs} +\begin{function}{\dimMathAbs} \begin{syntax} -\cs{DimMathAbs} \Arg{dimexpr} +\cs{dimMathAbs} \Arg{dimexpr} \end{syntax} Converts the \meta{dimexpr} to its absolute value, returning the result as a \meta{dimension denotation}. For example \begin{demohigh} -\DimMathAbs {3.5pt} -\DimMathAbs {-2.7pt} +\dimMathAbs {3.5pt} +\dimMathAbs {-2.7pt} \end{demohigh} \end{function} -\begin{function}{\DimMathMax,\DimMathMin} +\begin{function}{\dimMathMax,\dimMathMin} \begin{syntax} -\cs{DimMathMax} \Arg{dimexpr_1} \Arg{dimexpr_2} -\cs{DimMathMin} \Arg{dimexpr_1} \Arg{dimexpr_2} +\cs{dimMathMax} \Arg{dimexpr_1} \Arg{dimexpr_2} +\cs{dimMathMin} \Arg{dimexpr_1} \Arg{dimexpr_2} \end{syntax} Evaluates the two \meta{dimension expressions} and returns either the maximum or minimum value as appropriate as a \meta{dimension denotation}. For example \begin{demohigh} -\DimMathMax {3.5pt} {-2.7pt} -\DimMathMin {3.5pt} {-2.7pt} +\dimMathMax {3.5pt} {-2.7pt} +\dimMathMin {3.5pt} {-2.7pt} \end{demohigh} \end{function} \section{Creating and Using Dimensions} -\begin{function}{\DimNew} +\begin{function}{\dimNew} \begin{syntax} -\cs{DimNew} \meta{dimension} +\cs{dimNew} \meta{dimension} \end{syntax} Creates a new \meta{dimension} or raises an error if the name is already taken. The declaration is global. The \meta{dimension} is initially equal to $0$\,pt. \end{function} -\begin{function}{\DimConst} +\begin{function}{\dimConst} \begin{syntax} -\cs{DimConst} \meta{dimension} \Arg{dimension expression} +\cs{dimConst} \meta{dimension} \Arg{dimension expression} \end{syntax} Creates a new constant \meta{dimension} or raises an error if the name is already taken. The value of the \meta{dimension} is set globally to the \meta{dimension expression}. For example \begin{demohigh} -\DimConst \cFooSomeDim {1cm} -\DimUse \cFooSomeDim +\dimConst \cFooSomeDim {1cm} +\dimUse \cFooSomeDim \end{demohigh} \end{function} -\begin{function}{\DimUse} +\begin{function}{\dimUse} \begin{syntax} -\cs{DimUse} \meta{dimension} +\cs{dimUse} \meta{dimension} \end{syntax} Recovers the content of a \meta{dimension} and returns the value. An error is raised if the variable does not exist or if it is invalid. @@ -4369,127 +4369,127 @@ An error is raised if the variable does not exist or if it is invalid. \section{Viewing Dimensions} -\begin{function}{\DimLog} +\begin{function}{\dimLog} \begin{syntax} -\cs{DimLog} \Arg{dimension expression} +\cs{dimLog} \Arg{dimension expression} \end{syntax} Writes the result of evaluating the \meta{dimension expression} in the log file. For example \begin{codehigh} -\DimLog {\lFooSomeDim+1cm} +\dimLog {\lFooSomeDim+1cm} \end{codehigh} \end{function} -\begin{function}{\DimVarLog} +\begin{function}{\dimVarLog} \begin{syntax} -\cs{DimVarLog} \meta{dimension} +\cs{dimVarLog} \meta{dimension} \end{syntax} Writes the value of the \meta{dimension} in the log file. For example \begin{codehigh} -\DimVarLog \lFooSomeDim +\dimVarLog \lFooSomeDim \end{codehigh} \end{function} -\begin{function}{\DimShow} +\begin{function}{\dimShow} \begin{syntax} -\cs{DimShow} \Arg{dimension expression} +\cs{dimShow} \Arg{dimension expression} \end{syntax} Displays the result of evaluating the \meta{dimension expression} on the terminal. For example \begin{codehigh} -\DimShow {\lFooSomeDim+1cm} +\dimShow {\lFooSomeDim+1cm} \end{codehigh} \end{function} -\begin{function}{\DimVarShow} +\begin{function}{\dimVarShow} \begin{syntax} -\cs{DimVarShow} \meta{dimension} +\cs{dimVarShow} \meta{dimension} \end{syntax} Displays the value of the \meta{dimension} on the terminal. For example \begin{codehigh} -\DimVarShow \lFooSomeDim +\dimVarShow \lFooSomeDim \end{codehigh} \end{function} \section{Setting Dimension Variables} -\begin{function}{\DimSet} +\begin{function}{\dimSet} \begin{syntax} -\cs{DimSet} \meta{dimension} \Arg{dimension expression} +\cs{dimSet} \meta{dimension} \Arg{dimension expression} \end{syntax} Sets \meta{dimension} to the value of \meta{dimension expression}, which must evaluate to a length with units. \end{function} -\begin{function}{\DimSetEq} +\begin{function}{\dimSetEq} \begin{syntax} -\cs{DimSetEq} \meta{dimension_1} \meta{dimension_2} +\cs{dimSetEq} \meta{dimension_1} \meta{dimension_2} \end{syntax} Sets the content of \meta{dimension_1} equal to that of \meta{dimension_2}. For example \begin{demohigh} -\DimSet \lTmpaDim {10pt} -\DimSetEq \lTmpbDim \lTmpaDim -\DimUse \lTmpbDim +\dimSet \lTmpaDim {10pt} +\dimSetEq \lTmpbDim \lTmpaDim +\dimUse \lTmpbDim \end{demohigh} \end{function} -\begin{function}{\DimZero} +\begin{function}{\dimZero} \begin{syntax} -\cs{DimZero} \meta{dimension} +\cs{dimZero} \meta{dimension} \end{syntax} Sets \meta{dimension} to $0$\,pt. For example \begin{demohigh} -\DimSet \lTmpaDim {1em} -\DimZero \lTmpaDim -\DimUse \lTmpaDim +\dimSet \lTmpaDim {1em} +\dimZero \lTmpaDim +\dimUse \lTmpaDim \end{demohigh} \end{function} -\begin{function}{\DimZeroNew} +\begin{function}{\dimZeroNew} \begin{syntax} -\cs{DimZeroNew} \meta{dimension} +\cs{dimZeroNew} \meta{dimension} \end{syntax} Ensures that the \meta{dimension} exists globally by applying -\cs{DimNew} if necessary, then applies -\cs{DimZero} to set the \meta{dimension} to zero. For example +\cs{dimNew} if necessary, then applies +\cs{dimZero} to set the \meta{dimension} to zero. For example \begin{demohigh} -\DimZeroNew \lFooSomeDim -\DimUse \lFooSomeDim +\dimZeroNew \lFooSomeDim +\dimUse \lFooSomeDim \end{demohigh} \end{function} -\begin{function}{\DimAdd} +\begin{function}{\dimAdd} \begin{syntax} -\cs{DimAdd} \meta{dimension} \Arg{dimension expression} +\cs{dimAdd} \meta{dimension} \Arg{dimension expression} \end{syntax} Adds the result of the \meta{dimension expression} to the current content of the \meta{dimension}. For example \begin{demohigh} -\DimSet \lTmpaDim {5.3pt} -\DimAdd \lTmpaDim {2.11pt} -\DimUse \lTmpaDim +\dimSet \lTmpaDim {5.3pt} +\dimAdd \lTmpaDim {2.11pt} +\dimUse \lTmpaDim \end{demohigh} \end{function} -\begin{function}{\DimSub} +\begin{function}{\dimSub} \begin{syntax} -\cs{DimSub} \meta{dimension} \Arg{dimension expression} +\cs{dimSub} \meta{dimension} \Arg{dimension expression} \end{syntax} Subtracts the result of the \meta{dimension expression} from the current content of the \meta{dimension}. For example \begin{demohigh} -\DimSet \lTmpaDim {5.3pt} -\DimSub \lTmpaDim {2.11pt} -\DimUse \lTmpaDim +\dimSet \lTmpaDim {5.3pt} +\dimSub \lTmpaDim {2.11pt} +\dimUse \lTmpaDim \end{demohigh} \end{function} \section{Dimension Step Functions} -%\begin{function}{\DimStepFunction} +%\begin{function}{\dimStepFunction} %\begin{syntax} -%\cs{DimStepFunction} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function} +%\cs{dimStepFunction} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function} %\end{syntax} %This function first evaluates the \meta{initial value}, \meta{step} %and \meta{final value}, all of which should be dimension expressions. @@ -4503,9 +4503,9 @@ current content of the \meta{dimension}. For example %should absorb one argument. %\end{function} -\begin{function}{\DimStepInline} +\begin{function}{\dimStepInline} \begin{syntax} -\cs{DimStepInline} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code} +\cs{dimStepInline} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value}, \meta{step} and \meta{final value}, all of which should be dimension expressions. @@ -4516,18 +4516,18 @@ with \verb|#1| replaced by the current \meta{value}. Thus the \meta{code} should define a function of one argument (\verb|#1|). \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\DimStepInline {1pt} {0.1pt} {1.5pt} { - \TlPutRight \lTmpaTl {[#1]} +\tlClear \lTmpaTl +\dimStepInline {1pt} {0.1pt} {1.5pt} { + \tlPutRight \lTmpaTl {[#1]} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\DimStepVariable} +\begin{function}{\dimStepVariable} \begin{syntax} -\cs{DimStepVariable} \Arg{initial value} \Arg{step} \Arg{final value} \meta{tl var} \Arg{code} +\cs{dimStepVariable} \Arg{initial value} \Arg{step} \Arg{final value} \meta{tl var} \Arg{code} \end{syntax} This function first evaluates the \meta{initial value}, \meta{step} and \meta{final value}, all of which should be dimension expressions. @@ -4539,43 +4539,43 @@ the \meta{code} should make use of the \meta{tl var}. %For example %\begin{demohigh} %\IgnoreSpacesOn -%\TlClear\lTmpaTl -%\DimStepVariable{1pt}{0.1pt}{1.5pt}\lTmpiTl{ -% \TlPutRight\lTmpaTl{\Value\lTmpiTl} -% \TlPutRight\lTmpaTl{~} +%\tlClear\lTmpaTl +%\dimStepVariable{1pt}{0.1pt}{1.5pt}\lTmpiTl{ +% \tlPutRight\lTmpaTl{\expValue\lTmpiTl} +% \tlPutRight\lTmpaTl{~} %} -%\Return{\Value\lTmpaTl} +%\prgReturn{\expValue\lTmpaTl} %\IgnoreSpacesOff %\end{demohigh} \end{function} \section{Dimension Conditionals} -\begin{function}{\DimIfExist,\DimIfExistT,\DimIfExistF,\DimIfExistTF} +\begin{function}{\dimIfExist,\dimIfExistT,\dimIfExistF,\dimIfExistTF} \begin{syntax} -\cs{DimIfExist} \meta{dimension} -\cs{DimIfExistT} \meta{dimension} \Arg{true code} -\cs{DimIfExistF} \meta{dimension} \Arg{false code} -\cs{DimIfExistTF} \meta{dimension} \Arg{true code} \Arg{false code} +\cs{dimIfExist} \meta{dimension} +\cs{dimIfExistT} \meta{dimension} \Arg{true code} +\cs{dimIfExistF} \meta{dimension} \Arg{false code} +\cs{dimIfExistTF} \meta{dimension} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{dimension} is currently defined. This does not check that the \meta{dimension} really is a dimension variable. For example \begin{demohigh} -\DimIfExistTF \lTmpaDim {\Return{Yes}} {\Return{No}} -\DimIfExistTF \lFooUndefinedDim {\Return{Yes}} {\Return{No}} +\dimIfExistTF \lTmpaDim {\prgReturn{Yes}} {\prgReturn{No}} +\dimIfExistTF \lFooUndefinedDim {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\DimCompare,\DimCompareT,\DimCompareF,\DimCompareTF} +\begin{function}{\dimCompare,\dimCompareT,\dimCompareF,\dimCompareTF} \begin{syntax} -\cs{DimCompare} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} -\cs{DimCompareT} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} \Arg{true code} -\cs{DimCompareF} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} \Arg{false code} -\cs{DimCompareTF} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} \Arg{true code} \Arg{false code} +\cs{dimCompare} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} +\cs{dimCompareT} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} \Arg{true code} +\cs{dimCompareF} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} \Arg{false code} +\cs{dimCompareTF} \Arg{dimexpr_1} \meta{relation} \Arg{dimexpr_2} \Arg{true code} \Arg{false code} \end{syntax} This function first evaluates each of the \meta{dimension expressions} -as described for \cs{DimEval}. The two results are then +as described for \cs{dimEval}. The two results are then compared using the \meta{relation}:\par {\centering \begin{tabular}{ll} @@ -4585,16 +4585,16 @@ Less than & \verb|<| \\ \end{tabular}\par} For example \begin{demohigh} -\DimCompareTF {1pt} > {0.9999pt} {\Return{Greater}} {\Return{Less}} -\DimCompareTF {1pt} > {1.0001pt} {\Return{Greater}} {\Return{Less}} +\dimCompareTF {1pt} > {0.9999pt} {\prgReturn{Greater}} {\prgReturn{Less}} +\dimCompareTF {1pt} > {1.0001pt} {\prgReturn{Greater}} {\prgReturn{Less}} \end{demohigh} \end{function} \section{Dimension Case Functions} -\begin{function}{\DimCase} +\begin{function}{\dimCase} \begin{syntax} -\cs{DimCase} \Arg{test dimension expression} +\cs{dimCase} \Arg{test dimension expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{dimexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{dimexpr case_2} \Arg{code case_2} @@ -4609,9 +4609,9 @@ associated \meta{code} is left in the input stream and other cases are discarded. \end{function} -\begin{function}{\DimCaseT} +\begin{function}{\dimCaseT} \begin{syntax} -\cs{DimCaseT} \Arg{test dimension expression} +\cs{dimCaseT} \Arg{test dimension expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{dimexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{dimexpr case_2} \Arg{code case_2} @@ -4629,9 +4629,9 @@ cases are matched, the \meta{true code} is also inserted into the input stream (after the code for the appropriate case). \end{function} -\begin{function}{\DimCaseF} +\begin{function}{\dimCaseF} \begin{syntax} -\cs{DimCaseF} \Arg{test dimension expression} +\cs{dimCaseF} \Arg{test dimension expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{dimexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{dimexpr case_2} \Arg{code case_2} @@ -4649,21 +4649,21 @@ match then the \meta{false code} is inserted. For example \begin{demohigh} \IgnoreSpacesOn -\DimSet \lTmpaDim {5pt} -\DimCaseF {2\lTmpaDim} { - {5pt} {\Return{Small}} - {4pt+6pt} {\Return{Medium}} - {-10pt} {\Return{Negative}} +\dimSet \lTmpaDim {5pt} +\dimCaseF {2\lTmpaDim} { + {5pt} {\prgReturn{Small}} + {4pt+6pt} {\prgReturn{Medium}} + {-10pt} {\prgReturn{Negative}} }{ - \Return {No Match} + \prgReturn {No Match} } \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\DimCaseTF} +\begin{function}{\dimCaseTF} \begin{syntax} -\cs{DimCaseTF} \Arg{test dimension expression} +\cs{dimCaseTF} \Arg{test dimension expression} ~ ~ \verb|{| ~ ~ ~ ~ \Arg{dimexpr case_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{dimexpr case_2} \Arg{code case_2} @@ -4684,15 +4684,15 @@ match then the \meta{false code} is inserted. %For example %\begin{demohigh} %\IgnoreSpacesOn -%\DimSet\lTmpaDim{5pt} -%\DimCaseTF{2\lTmpaDim}{ -% {5pt} {\Return{Small}} -% {4pt+6pt} {\Return{Medium}} -% {-10pt} {\Return{Negative}} +%\dimSet\lTmpaDim{5pt} +%\dimCaseTF{2\lTmpaDim}{ +% {5pt} {\prgReturn{Small}} +% {4pt+6pt} {\prgReturn{Medium}} +% {-10pt} {\prgReturn{Negative}} %}{ -% \Return{[Some Match]} +% \prgReturn{[Some Match]} %}{ -% \Return{[No Match]} +% \prgReturn{[No Match]} %} %\IgnoreSpacesOff %\end{demohigh} @@ -4722,34 +4722,34 @@ code and so should only be used for short-term storage. \section{Creating and Using Comma Lists} -\begin{function}{\ClistNew} +\begin{function}{\clistNew} \begin{syntax} -\cs{ClistNew} \meta{comma list} +\cs{clistNew} \meta{comma list} \end{syntax} Creates a new \meta{comma list} or raises an error if the name is already taken. The declaration is global. The \meta{comma list} initially contains no items. \begin{codehigh} -\ClistNew \lFooSomeClist +\clistNew \lFooSomeClist \end{codehigh} \end{function} -\begin{function}{\ClistConst} +\begin{function}{\clistConst} \begin{syntax} -\cs{ClistConst} \meta{clist var} \Arg{comma list} +\cs{clistConst} \meta{clist var} \Arg{comma list} \end{syntax} Creates a new constant \meta{clist var} or raises an error if the name is already taken. The value of the \meta{clist var} is set globally to the \meta{comma list}. \begin{codehigh} -\ClistConst \cFooSomeClist {one,two,three} +\clistConst \cFooSomeClist {one,two,three} \end{codehigh} \end{function} -\begin{function}{\ClistVarJoin} +\begin{function}{\clistVarJoin} \begin{syntax} -\cs{ClistVarJoin} \meta{clist var} \Arg{separator} +\cs{clistVarJoin} \meta{clist var} \Arg{separator} \end{syntax} Returns the contents of the \meta{clist var}, with the \meta{separator} between the items. @@ -4757,8 +4757,8 @@ with the \meta{separator} between the items. %and a comma list with no items produces no output. %An error is raised if the variable does not exist or if it is invalid. \begin{demohigh} -\ClistSet \lTmpaClist { a , b , , c , {de} , f } -\ClistVarJoin \lTmpaClist { and } +\clistSet \lTmpaClist { a , b , , c , {de} , f } +\clistVarJoin \lTmpaClist { and } \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -4768,9 +4768,9 @@ with the \meta{separator} between the items. %\end{texnote} \end{function} -\begin{function}{\ClistVarJoinExtended} +\begin{function}{\clistVarJoinExtended} \begin{syntax} -\cs{ClistVarJoinExtended} \meta{clist var} \Arg{separator between two} \Arg{separator between more than two} \Arg{separator between final two} +\cs{clistVarJoinExtended} \meta{clist var} \Arg{separator between two} \Arg{separator between more than two} \Arg{separator between final two} \end{syntax} Returns the contents of the \meta{clist var}, with the appropriate \meta{separator} between the items. Namely, if @@ -4783,12 +4783,12 @@ the \meta{separator between two} and returns. %and a comma list with no items produces no output. %An error is raised if the variable does not exist or if it is invalid. \begin{demohigh} -\ClistSet \lTmpaClist { a , b } -\ClistVarJoinExtended \lTmpaClist { and } {, } {, and } +\clistSet \lTmpaClist { a , b } +\clistVarJoinExtended \lTmpaClist { and } {, } {, and } \end{demohigh} \begin{demohigh} -\ClistSet \lTmpaClist { a , b , , c , {de} , f } -\ClistVarJoinExtended \lTmpaClist { and } {, } {, and } +\clistSet \lTmpaClist { a , b , , c , {de} , f } +\clistVarJoinExtended \lTmpaClist { and } {, } {, and } \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -4798,23 +4798,23 @@ the \meta{separator between two} and returns. %\end{texnote} \end{function} -\begin{function}{\ClistJoin,\ClistJoinExtended} +\begin{function}{\clistJoin,\clistJoinExtended} \begin{syntax} -\cs{ClistJoin} \meta{comma list} \Arg{separator} -\cs{ClistJoinExtended} \meta{comma list} \Arg{separator between two} \Arg{separator between more than two} \Arg{separator between final two} +\cs{clistJoin} \meta{comma list} \Arg{separator} +\cs{clistJoinExtended} \meta{comma list} \Arg{separator between two} \Arg{separator between more than two} \Arg{separator between final two} \end{syntax} Returns the contents of the \meta{comma list}, with the appropriate \meta{separator} between the items. As for -\cs{ClistSet}, blank items are omitted, spaces are removed from +\cs{clistSet}, blank items are omitted, spaces are removed from both sides of each item, then a set of braces is removed if the resulting space-trimmed item is braced. The \meta{separators} are -then inserted in the same way as for \cs{ClistVarJoin} and -\cs{ClistVarJoinExtended}, respectively. +then inserted in the same way as for \cs{clistVarJoin} and +\cs{clistVarJoinExtended}, respectively. \begin{demohigh} -\ClistJoinExtended { a , b } { and } {, } {, and } +\clistJoinExtended { a , b } { and } {, } {, and } \end{demohigh} \begin{demohigh} -\ClistJoinExtended { a , b , , c , {de} , f } { and } {, } {, and } +\clistJoinExtended { a , b , , c , {de} , f } { and } {, } {, and } \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -4826,55 +4826,55 @@ then inserted in the same way as for \cs{ClistVarJoin} and \section{Viewing Comma Lists} -\begin{function}{\ClistLog} +\begin{function}{\clistLog} \begin{syntax} -\cs{ClistLog} \Arg{tokens} +\cs{clistLog} \Arg{tokens} \end{syntax} Writes the entries in the comma list in the log file. See also -\cs{ClistShow} which displays the result in the terminal. +\cs{clistShow} which displays the result in the terminal. \begin{codehigh} -\ClistLog {one,two,three} +\clistLog {one,two,three} \end{codehigh} \end{function} -\begin{function}{\ClistVarLog} +\begin{function}{\clistVarLog} \begin{syntax} -\cs{ClistVarLog} \meta{comma list} +\cs{clistVarLog} \meta{comma list} \end{syntax} Writes the entries in the \meta{comma list} in the log file. See -also \cs{ClistVarShow} which displays the result in the terminal. +also \cs{clistVarShow} which displays the result in the terminal. \begin{codehigh} -\ClistSet \lTmpaClist {one,two,three} -\ClistVarLog \lTmpaClist +\clistSet \lTmpaClist {one,two,three} +\clistVarLog \lTmpaClist \end{codehigh} \end{function} -\begin{function}{\ClistShow} +\begin{function}{\clistShow} \begin{syntax} -\cs{ClistShow} \Arg{tokens} +\cs{clistShow} \Arg{tokens} \end{syntax} Displays the entries in the comma list in the terminal. \begin{codehigh} -\ClistShow {one,two,three} +\clistShow {one,two,three} \end{codehigh} \end{function} -\begin{function}{\ClistVarShow} +\begin{function}{\clistVarShow} \begin{syntax} -\cs{ClistVarShow} \meta{comma list} +\cs{clistVarShow} \meta{comma list} \end{syntax} Displays the entries in the \meta{comma list} in the terminal. \begin{codehigh} -\ClistSet \lTmpaClist {one,two,three} -\ClistVarShow \lTmpaClist +\clistSet \lTmpaClist {one,two,three} +\clistVarShow \lTmpaClist \end{codehigh} \end{function} \section{Setting Comma Lists} -\begin{function}{\ClistSet} +\begin{function}{\clistSet} \begin{syntax} -\cs{ClistSet} \meta{comma list} \verb|{|\meta{item_1},\ldots{},\meta{item_n}\verb|}| +\cs{clistSet} \meta{comma list} \verb|{|\meta{item_1},\ldots{},\meta{item_n}\verb|}| \end{syntax} Sets \meta{comma list} to contain the \meta{items}, removing any previous content from the variable. @@ -4883,87 +4883,87 @@ item, then a set of braces is removed if the resulting space-trimmed item is braced. To store some \meta{tokens} as a single \meta{item} even if the \meta{tokens} contain commas or spaces, add a set of braces: -\cs{ClistSet} \meta{comma list} \verb|{| \Arg{tokens} \verb|}|. +\cs{clistSet} \meta{comma list} \verb|{| \Arg{tokens} \verb|}|. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,three} -\ClistVarJoin \lTmpaClist { and } +\clistSet \lTmpaClist {one,two,three} +\clistVarJoin \lTmpaClist { and } \end{demohigh} \end{function} -\begin{function}{\ClistSetEq} +\begin{function}{\clistSetEq} \begin{syntax} -\cs{ClistSetEq} \meta{comma list_1} \meta{comma list_2} +\cs{clistSetEq} \meta{comma list_1} \meta{comma list_2} \end{syntax} Sets the content of \meta{comma list_1} equal to that of \meta{comma list_2}. To set a token list variable equal to a comma -list variable, use \cs{TlSetEq}. Conversely, setting a comma +list variable, use \cs{tlSetEq}. Conversely, setting a comma list variable to a token list is unadvisable unless one checks space-trimming and related issues. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,three,four} -\ClistSetEq \lTmpbClist \lTmpaClist -\ClistVarJoin \lTmpbClist { and } +\clistSet \lTmpaClist {one,two,three,four} +\clistSetEq \lTmpbClist \lTmpaClist +\clistVarJoin \lTmpbClist { and } \end{demohigh} \end{function} -\begin{function}{\ClistSetFromSeq} +\begin{function}{\clistSetFromSeq} \begin{syntax} -\cs{ClistSetFromSeq} \meta{comma list} \meta{sequence} +\cs{clistSetFromSeq} \meta{comma list} \meta{sequence} \end{syntax} Converts the data in the \meta{sequence} into a \meta{comma list}: the original \meta{sequence} is unchanged. Items which contain either spaces or commas are surrounded by braces. \begin{demohigh} -\SeqPutRight \lTmpaSeq {one} -\SeqPutRight \lTmpaSeq {two} -\ClistSetFromSeq \lTmpaClist \lTmpaSeq -\ClistVarJoin \lTmpaClist { and } +\seqPutRight \lTmpaSeq {one} +\seqPutRight \lTmpaSeq {two} +\clistSetFromSeq \lTmpaClist \lTmpaSeq +\clistVarJoin \lTmpaClist { and } \end{demohigh} \end{function} -\begin{function}{\ClistClear} +\begin{function}{\clistClear} \begin{syntax} -\cs{ClistClear} \meta{comma list} +\cs{clistClear} \meta{comma list} \end{syntax} Clears all items from the \meta{comma list}. \begin{codehigh} -\ClistSet \lTmpaClist {one,two,three,four} -\ClistClear \lTmpaClist +\clistSet \lTmpaClist {one,two,three,four} +\clistClear \lTmpaClist \end{codehigh} \end{function} -\begin{function}{\ClistClearNew} +\begin{function}{\clistClearNew} \begin{syntax} -\cs{ClistClearNew} \meta{comma list} +\cs{clistClearNew} \meta{comma list} \end{syntax} Ensures that the \meta{comma list} exists globally by applying -\cs{ClistNew} if necessary, then applies \cs{ClistClear} to leave +\cs{clistNew} if necessary, then applies \cs{clistClear} to leave the list empty. \begin{demohigh} -\ClistClearNew \lFooSomeClist -\ClistSet \lFooSomeClist {one,two,three} -\ClistVarJoin \lFooSomeClist { and } +\clistClearNew \lFooSomeClist +\clistSet \lFooSomeClist {one,two,three} +\clistVarJoin \lFooSomeClist { and } \end{demohigh} \end{function} -\begin{function}{\ClistConcat} +\begin{function}{\clistConcat} \begin{syntax} -\cs{ClistConcat} \meta{comma list_1} \meta{comma list_2} \meta{comma list_3} +\cs{clistConcat} \meta{comma list_1} \meta{comma list_2} \meta{comma list_3} \end{syntax} Concatenates the content of \meta{comma list_2} and \meta{comma list_3} together and saves the result in \meta{comma list_1}. The items in \meta{comma list_2} are placed at the left side of the new comma list. \begin{demohigh} -\ClistSet \lTmpbClist {one,two} -\ClistSet \lTmpcClist {three,four} -\ClistConcat \lTmpaClist \lTmpbClist \lTmpcClist -\ClistVarJoin \lTmpaClist { + } +\clistSet \lTmpbClist {one,two} +\clistSet \lTmpcClist {three,four} +\clistConcat \lTmpaClist \lTmpbClist \lTmpcClist +\clistVarJoin \lTmpaClist { + } \end{demohigh} \end{function} -\begin{function}{\ClistPutLeft} +\begin{function}{\clistPutLeft} \begin{syntax} -\cs{ClistPutLeft} \meta{comma list} \verb|{|\meta{item_1},\ldots{},\meta{item_n}\verb|}| +\cs{clistPutLeft} \meta{comma list} \verb|{|\meta{item_1},\ldots{},\meta{item_n}\verb|}| \end{syntax} Appends the \meta{items} to the left of the \meta{comma list}. Blank items are omitted, spaces are removed from both sides of each @@ -4971,17 +4971,17 @@ item, then a set of braces is removed if the resulting space-trimmed item is braced. To append some \meta{tokens} as a single \meta{item} even if the \meta{tokens} contain commas or spaces, add a set of braces: -\cs{ClistPutLeft} \meta{comma list} \verb|{| \Arg{tokens} \verb|}|. +\cs{clistPutLeft} \meta{comma list} \verb|{| \Arg{tokens} \verb|}|. \begin{demohigh} -\ClistSet \lTmpaClist {one,two} -\ClistPutLeft \lTmpaClist {zero} -\ClistVarJoin \lTmpaClist { and } +\clistSet \lTmpaClist {one,two} +\clistPutLeft \lTmpaClist {zero} +\clistVarJoin \lTmpaClist { and } \end{demohigh} \end{function} -\begin{function}{\ClistPutRight} +\begin{function}{\clistPutRight} \begin{syntax} -\cs{ClistPutRight} \meta{comma list} \verb|{|\meta{item_1},\ldots{},\meta{item_n}\verb|}| +\cs{clistPutRight} \meta{comma list} \verb|{|\meta{item_1},\ldots{},\meta{item_n}\verb|}| \end{syntax} Appends the \meta{items} to the right of the \meta{comma list}. Blank items are omitted, spaces are removed from both sides of each @@ -4989,11 +4989,11 @@ item, then a set of braces is removed if the resulting space-trimmed item is braced. To append some \meta{tokens} as a single \meta{item} even if the \meta{tokens} contain commas or spaces, add a set of braces: -\cs{ClistPutRight} \meta{comma list} \verb|{| \Arg{tokens} \verb|}|. +\cs{clistPutRight} \meta{comma list} \verb|{| \Arg{tokens} \verb|}|. \begin{demohigh} -\ClistSet \lTmpaClist {one,two} -\ClistPutRight \lTmpaClist {three} -\ClistVarJoin \lTmpaClist { and } +\clistSet \lTmpaClist {one,two} +\clistPutRight \lTmpaClist {three} +\clistVarJoin \lTmpaClist { and } \end{demohigh} \end{function} @@ -5004,17 +5004,17 @@ necessary to modify the content. The functions here may be used to update comma lists, while retaining the order of the unaffected entries. -\begin{function}{\ClistVarRemoveDuplicates} +\begin{function}{\clistVarRemoveDuplicates} \begin{syntax} -\cs{ClistVarRemoveDuplicates} \meta{comma list} +\cs{clistVarRemoveDuplicates} \meta{comma list} \end{syntax} Removes duplicate items from the \meta{comma list}, leaving the left most copy of each item in the \meta{comma list}. The \meta{item} -comparison takes place on a token basis, as for \cs{TlIfEqTF}. +comparison takes place on a token basis, as for \cs{tlIfEqTF}. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,one,two,three} -\ClistVarRemoveDuplicates \lTmpaClist -\ClistVarJoin \lTmpaClist {,} +\clistSet \lTmpaClist {one,two,one,two,three} +\clistVarRemoveDuplicates \lTmpaClist +\clistVarJoin \lTmpaClist {,} \end{demohigh} %\begin{texnote} %This function iterates through every item in the \meta{comma list} and @@ -5026,17 +5026,17 @@ comparison takes place on a token basis, as for \cs{TlIfEqTF}. %\end{texnote} \end{function} -\begin{function}{\ClistVarRemoveAll} +\begin{function}{\clistVarRemoveAll} \begin{syntax} -\cs{ClistVarRemoveAll} \meta{comma list} \Arg{item} +\cs{clistVarRemoveAll} \meta{comma list} \Arg{item} \end{syntax} Removes every occurrence of \meta{item} from the \meta{comma list}. The \meta{item} comparison takes place on a token basis, as for -\cs{TlIfEqTF}. +\cs{tlIfEqTF}. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,one,two,three} -\ClistVarRemoveAll \lTmpaClist {two} -\ClistVarJoin \lTmpaClist {,} +\clistSet \lTmpaClist {one,two,one,two,three} +\clistVarRemoveAll \lTmpaClist {two} +\clistVarJoin \lTmpaClist {,} \end{demohigh} %\begin{texnote} %The function may fail if the \meta{item} contains \verb|{|, \verb|}|, or \verb|#| @@ -5044,21 +5044,21 @@ The \meta{item} comparison takes place on a token basis, as for %\end{texnote} \end{function} -\begin{function}{\ClistVarReverse} +\begin{function}{\clistVarReverse} \begin{syntax} -\cs{ClistVarReverse} \meta{comma list} +\cs{clistVarReverse} \meta{comma list} \end{syntax} Reverses the order of items stored in the \meta{comma list}. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,one,two,three} -\ClistVarReverse \lTmpaClist -\ClistVarJoin \lTmpaClist {,} +\clistSet \lTmpaClist {one,two,one,two,three} +\clistVarReverse \lTmpaClist +\clistVarJoin \lTmpaClist {,} \end{demohigh} \end{function} -%\begin{function}{\ClistVarSort} +%\begin{function}{\clistVarSort} %\begin{syntax} -%\cs{ClistVarSort} \meta{clist var} \Arg{comparison code} +%\cs{clistVarSort} \meta{clist var} \Arg{comparison code} %\end{syntax} %Sorts the items in the \meta{clist var} according to the %\meta{comparison code}, and assigns the result to @@ -5068,24 +5068,24 @@ Reverses the order of items stored in the \meta{comma list}. \section{Working with the Contents of Comma Lists} -\begin{function}{\ClistCount,\ClistVarCount} +\begin{function}{\clistCount,\clistVarCount} \begin{syntax} -\cs{ClistCount} \Arg{comma list} -\cs{ClistVarCount} \meta{comma list} +\cs{clistCount} \Arg{comma list} +\cs{clistVarCount} \meta{comma list} \end{syntax} Returns the number of items in the \meta{comma list} as an \meta{integer denotation}. The total number of items in a \meta{comma list} includes those which are duplicates, \emph{i.e.} every item in a \meta{comma list} is counted. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,three,four} -\ClistVarCount \lTmpaClist +\clistSet \lTmpaClist {one,two,three,four} +\clistVarCount \lTmpaClist \end{demohigh} \end{function} -\begin{function}{\ClistItem} +\begin{function}{\clistItem} \begin{syntax} -\cs{ClistItem} \Arg{comma list} \Arg{integer expression} +\cs{clistItem} \Arg{comma list} \Arg{integer expression} \end{syntax} Indexing items in the \meta{comma list} from $1$ at the top (left), this function evaluates the \meta{integer expression} and returns the @@ -5093,10 +5093,10 @@ appropriate item from the comma list. If the \meta{integer expression} is negative, indexing occurs from the bottom (right) of the comma list. When the \meta{integer expression} is larger than the number of items in the \meta{comma list} (as -calculated by \cs{ClistCount}) then the function returns nothing. +calculated by \cs{clistCount}) then the function returns nothing. \begin{demohigh} -\TlSet \lTmpaTl {\ClistItem {one,two,three,four} {3}} -\TlUse \lTmpaTl +\tlSet \lTmpaTl {\clistItem {one,two,three,four} {3}} +\tlUse \lTmpaTl \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -5106,9 +5106,9 @@ calculated by \cs{ClistCount}) then the function returns nothing. %\end{texnote} \end{function} -\begin{function}{\ClistVarItem} +\begin{function}{\clistVarItem} \begin{syntax} -\cs{ClistVarItem} \meta{comma list} \Arg{integer expression} +\cs{clistVarItem} \meta{comma list} \Arg{integer expression} \end{syntax} Indexing items in the \meta{comma list} from $1$ at the top (left), this function evaluates the \meta{integer expression} and returns the @@ -5116,11 +5116,11 @@ appropriate item from the comma list. If the \meta{integer expression} is negative, indexing occurs from the bottom (right) of the comma list. When the \meta{integer expression} is larger than the number of items in the \meta{comma list} (as -calculated by \cs{ClistVarCount}) then the function returns nothing. +calculated by \cs{clistVarCount}) then the function returns nothing. \begin{demohigh} -\ClistSet \lTmpaClist {one,two,three,four} -\TlSet \lTmpaTl {\ClistVarItem \lTmpaClist {3}} -\TlUse \lTmpaTl +\clistSet \lTmpaClist {one,two,three,four} +\tlSet \lTmpaTl {\clistVarItem \lTmpaClist {3}} +\tlUse \lTmpaTl \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -5130,18 +5130,18 @@ calculated by \cs{ClistVarCount}) then the function returns nothing. %\end{texnote} \end{function} -\begin{function}{\ClistRandItem,\ClistVarRandItem} +\begin{function}{\clistRandItem,\clistVarRandItem} \begin{syntax} -\cs{ClistRandItem} \Arg{comma list} -\cs{ClistVarRandItem} \meta{clist var} +\cs{clistRandItem} \Arg{comma list} +\cs{clistVarRandItem} \meta{clist var} \end{syntax} Selects a pseudo-random item of the \meta{comma list}. If the \meta{comma list} has no item, the result is empty. \begin{demohigh} -\TlSet \lTmpaTl {\ClistRandItem {one,two,three,four,five,six}} -\TlUse \lTmpaTl -\TlSet \lTmpaTl {\ClistRandItem {one,two,three,four,five,six}} -\TlUse \lTmpaTl +\tlSet \lTmpaTl {\clistRandItem {one,two,three,four,five,six}} +\tlUse \lTmpaTl +\tlSet \lTmpaTl {\clistRandItem {one,two,three,four,five,six}} +\tlUse \lTmpaTl \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -5160,9 +5160,9 @@ intended to be mixed with the general ordered data functions detailed in the previous section: a comma list should either be used as an ordered data type or as a stack, but not in both ways. -\begin{function}{\ClistGet} +\begin{function}{\clistGet} \begin{syntax} -\cs{ClistGet} \meta{comma list} \meta{token list variable} +\cs{clistGet} \meta{comma list} \meta{token list variable} \end{syntax} Stores the left-most item from the \meta{comma list} in the \meta{token list variable} without removing it from the @@ -5170,17 +5170,17 @@ Stores the left-most item from the \meta{comma list} in the If the \meta{comma list} is empty the \meta{token list variable} is set to the marker value \cs{qNoValue}. \begin{demohigh} -\ClistSet \lTmpaClist {two,three,four} -\ClistGet \lTmpaClist \lTmpaTl -\TlUse \lTmpaTl +\clistSet \lTmpaClist {two,three,four} +\clistGet \lTmpaClist \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\ClistGetT,\ClistGetF,\ClistGetTF} +\begin{function}{\clistGetT,\clistGetF,\clistGetTF} \begin{syntax} -\cs{ClistGetT} \meta{comma list} \meta{token list variable} \meta{true code} -\cs{ClistGetF} \meta{comma list} \meta{token list variable} \meta{false code} -\cs{ClistGetTF} \meta{comma list} \meta{token list variable} \meta{true code} \meta{false code} +\cs{clistGetT} \meta{comma list} \meta{token list variable} \meta{true code} +\cs{clistGetF} \meta{comma list} \meta{token list variable} \meta{false code} +\cs{clistGetTF} \meta{comma list} \meta{token list variable} \meta{true code} \meta{false code} \end{syntax} If the \meta{comma list} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -5190,14 +5190,14 @@ not defined in this case and should not be relied upon. If the it from the \meta{comma list}. The \meta{token list variable} is assigned locally. \begin{demohigh} -\ClistSet \lTmpaClist {two,three,four} -\ClistGetTF \lTmpaClist \lTmpaTl {\Return{Yes}} {\Return{No}} +\clistSet \lTmpaClist {two,three,four} +\clistGetTF \lTmpaClist \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\ClistPop} +\begin{function}{\clistPop} \begin{syntax} -\cs{ClistPop} \meta{comma list} \meta{token list variable} +\cs{clistPop} \meta{comma list} \meta{token list variable} \end{syntax} Pops the left-most item from a \meta{comma list} into the \meta{token list variable}, \emph{i.e.} removes the item from the @@ -5206,17 +5206,17 @@ The assignment of the \meta{token list variable} is local. If the \meta{comma list} is empty the \meta{token list variable} is set to the marker value \cs{qNoValue}. \begin{demohigh} -\ClistSet \lTmpaClist {two,three,four} -\ClistPop \lTmpaClist \lTmpaTl -\ClistVarJoin \lTmpaClist {,} +\clistSet \lTmpaClist {two,three,four} +\clistPop \lTmpaClist \lTmpaTl +\clistVarJoin \lTmpaClist {,} \end{demohigh} \end{function} -\begin{function}{\ClistPopT,\ClistPopF,\ClistPopTF} +\begin{function}{\clistPopT,\clistPopF,\clistPopTF} \begin{syntax} -\cs{ClistPopT} \meta{comma list} \meta{token list variable} \Arg{true code} -\cs{ClistPopF} \meta{comma list} \meta{token list variable} \Arg{false code} -\cs{ClistPopTF} \meta{comma list} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{clistPopT} \meta{comma list} \meta{token list variable} \Arg{true code} +\cs{clistPopF} \meta{comma list} \meta{token list variable} \Arg{false code} +\cs{clistPopTF} \meta{comma list} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{comma list} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -5226,22 +5226,22 @@ not defined in this case and should not be relied upon. If the the item from the \meta{comma list}. The \meta{token list variable} is assigned locally. \begin{demohigh} -\ClistSet \lTmpaClist {two,three,four} -\ClistPopTF \lTmpaClist \lTmpaTl {\Return{Yes}} {\Return{No}} +\clistSet \lTmpaClist {two,three,four} +\clistPopTF \lTmpaClist \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\ClistPush} +\begin{function}{\clistPush} \begin{syntax} -\cs{ClistPush} \meta{comma list} \Arg{items} +\cs{clistPush} \meta{comma list} \Arg{items} \end{syntax} Adds the \Arg{items} to the top of the \meta{comma list}. Spaces are removed from both sides of each item as for any \texttt{n}-type comma list. \begin{demohigh} -\ClistSet \lTmpaClist {two,three,four} -\ClistPush \lTmpaClist {zero,one} -\ClistVarJoin \lTmpaClist {|} +\clistSet \lTmpaClist {two,three,four} +\clistPush \lTmpaClist {zero,one} +\clistVarJoin \lTmpaClist {|} \end{demohigh} \end{function} @@ -5267,22 +5267,22 @@ have already been trimmed on input, and items are simply stripped of one set of braces if any. This case is more efficient than using explicit comma lists. -%\begin{function}{\ClistMapFunction,\ClistVarMapFunction} +%\begin{function}{\clistMapFunction,\clistVarMapFunction} %\begin{syntax} -%\cs{ClistMapFunction} \Arg{comma list} \meta{function} -%\cs{ClistVarMapFunction} \meta{comma list} \meta{function} +%\cs{clistMapFunction} \Arg{comma list} \meta{function} +%\cs{clistVarMapFunction} \meta{comma list} \meta{function} %\end{syntax} %Applies \meta{function} to every \meta{item} stored in the %\meta{comma list}. The \meta{function} receives one argument for %each iteration. The \meta{items} are returned from left to right. -%The function \cs{ClistMapInline} is in general more efficient -%than \cs{ClistMapFunction}. +%The function \cs{clistMapInline} is in general more efficient +%than \cs{clistMapFunction}. %\end{function} -\begin{function}{\ClistMapInline,\ClistVarMapInline} +\begin{function}{\clistMapInline,\clistVarMapInline} \begin{syntax} -\cs{ClistMapInline} \Arg{comma list} \Arg{inline function} -\cs{ClistVarMapInline} \meta{comma list} \Arg{inline function} +\cs{clistMapInline} \Arg{comma list} \Arg{inline function} +\cs{clistVarMapInline} \meta{comma list} \Arg{inline function} \end{syntax} Applies \meta{inline function} to every \meta{item} stored within the \meta{comma list}. The \meta{inline function} should @@ -5290,19 +5290,19 @@ consist of code which receives the \meta{item} as \verb|#1|. The \meta{items} are returned from left to right. \begin{demohigh} \IgnoreSpacesOn -\TlClear \lTmpaTl -\ClistMapInline {one,two,three} { - \TlPutRight \lTmpaTl {(#1)} +\tlClear \lTmpaTl +\clistMapInline {one,two,three} { + \tlPutRight \lTmpaTl {(#1)} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -\begin{function}{\ClistMapVariable,\ClistVarMapVariable} +\begin{function}{\clistMapVariable,\clistVarMapVariable} \begin{syntax} -\cs{ClistMapVariable} \Arg{comma list} \meta{variable} \Arg{code} -\cs{ClistVarMapVariable} \meta{comma list} \meta{variable} \Arg{code} +\cs{clistMapVariable} \Arg{comma list} \meta{variable} \Arg{code} +\cs{clistVarMapVariable} \meta{comma list} \meta{variable} \Arg{code} \end{syntax} Stores each \meta{item} of the \meta{comma list} in turn in the (token list) \meta{variable} and applies the \meta{code}. The @@ -5313,28 +5313,28 @@ list}, or its original value if there were no \meta{item}. The \meta{items} are returned from left to right. \begin{demohigh} \IgnoreSpacesOn -\ClistMapVariable {one,two,three} \lTmpiTl { - \TlPutRight \gTmpaTl {\Expand {(\lTmpiTl)}} +\clistMapVariable {one,two,three} \lTmpiTl { + \tlPutRight \gTmpaTl {\expWhole {(\lTmpiTl)}} } -\TlUse \gTmpaTl +\tlUse \gTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\ClistMapTokens,\ClistVarMapTokens} +%\begin{function}{\clistMapTokens,\clistVarMapTokens} %\begin{syntax} -%\cs{ClistMapTokens} \Arg{comma list} \Arg{code} -%\cs{ClistVarMapTokens} \meta{clist var} \Arg{code} +%\cs{clistMapTokens} \Arg{comma list} \Arg{code} +%\cs{clistVarMapTokens} \meta{clist var} \Arg{code} %\end{syntax} %Calls \meta{code} \Arg{item} for every \meta{item} stored in the %\meta{comma list}. The \meta{code} receives each \meta{item} as a %trailing brace group. If the \meta{code} consists of a single -%function this is equivalent to \cs{ClistMapFunction} or \cs{ClistVarMapFunction}. +%function this is equivalent to \cs{clistMapFunction} or \cs{clistVarMapFunction}. %\end{function} -%\begin{function}{\ClistMapBreak} +%\begin{function}{\clistMapBreak} %\begin{syntax} -%\cs{ClistMapBreak} +%\cs{clistMapBreak} %\end{syntax} %Used to terminate a clist map function before all %entries in the \meta{comma list} have been processed. This @@ -5359,9 +5359,9 @@ list}, or its original value if there were no \meta{item}. The %\end{texnote} %\end{function} % -%\begin{function}{\ClistMapBreakDo} +%\begin{function}{\clistMapBreakDo} %\begin{syntax} -%\cs{ClistMapBreakDo} \Arg{code} +%\cs{clistMapBreakDo} \Arg{code} %\end{syntax} %Used to terminate a clist map function before all %entries in the \meta{comma list} have been processed, inserting @@ -5389,27 +5389,27 @@ list}, or its original value if there were no \meta{item}. The \section{Comma List Conditionals} -\begin{function}{\ClistIfExist,\ClistIfExistT,\ClistIfExistF,\ClistIfExistTF} +\begin{function}{\clistIfExist,\clistIfExistT,\clistIfExistF,\clistIfExistTF} \begin{syntax} -\cs{ClistIfExist} \meta{comma list} -\cs{ClistIfExistT} \meta{comma list} \Arg{true code} -\cs{ClistIfExistF} \meta{comma list} \Arg{false code} -\cs{ClistIfExistTF} \meta{comma list} \Arg{true code} \Arg{false code} +\cs{clistIfExist} \meta{comma list} +\cs{clistIfExistT} \meta{comma list} \Arg{true code} +\cs{clistIfExistF} \meta{comma list} \Arg{false code} +\cs{clistIfExistTF} \meta{comma list} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{comma list} is currently defined. This does not check that the \meta{comma list} really is a comma list. \begin{demohigh} -\ClistIfExistTF \lTmpaClist {\Return{Yes}} {\Return{No}} -\ClistIfExistTF \lFooUndefinedClist {\Return{Yes}} {\Return{No}} +\clistIfExistTF \lTmpaClist {\prgReturn{Yes}} {\prgReturn{No}} +\clistIfExistTF \lFooUndefinedClist {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\ClistIfEmpty,\ClistIfEmptyT,\ClistIfEmptyF,\ClistIfEmptyTF} +\begin{function}{\clistIfEmpty,\clistIfEmptyT,\clistIfEmptyF,\clistIfEmptyTF} \begin{syntax} -\cs{ClistIfEmpty} \Arg{comma list} -\cs{ClistIfEmptyT} \Arg{comma list} \Arg{true code} -\cs{ClistIfEmptyF} \Arg{comma list} \Arg{false code} -\cs{ClistIfEmptyTF} \Arg{comma list} \Arg{true code} \Arg{false code} +\cs{clistIfEmpty} \Arg{comma list} +\cs{clistIfEmptyT} \Arg{comma list} \Arg{true code} +\cs{clistIfEmptyF} \Arg{comma list} \Arg{false code} +\cs{clistIfEmptyTF} \Arg{comma list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{comma list} is empty (containing no items). The rules for space trimming are as for other \texttt{n}-type @@ -5418,40 +5418,40 @@ outer braces) is empty, while \verb|{ ,{},}| (without outer braces) contains one element, which happens to be empty: the comma-list is not empty. \begin{demohigh} -\ClistIfEmptyTF {one,two} {\Return{Empty}} {\Return{NonEmpty}} -\ClistIfEmptyTF { , } {\Return{Empty}} {\Return{NonEmpty}} +\clistIfEmptyTF {one,two} {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\clistIfEmptyTF { , } {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\ClistVarIfEmpty,\ClistVarIfEmptyT,\ClistVarIfEmptyF,\ClistVarIfEmptyTF} +\begin{function}{\clistVarIfEmpty,\clistVarIfEmptyT,\clistVarIfEmptyF,\clistVarIfEmptyTF} \begin{syntax} -\cs{ClistVarIfEmpty} \meta{comma list} -\cs{ClistVarIfEmptyT} \meta{comma list} \Arg{true code} -\cs{ClistVarIfEmptyF} \meta{comma list} \Arg{false code} -\cs{ClistVarIfEmptyTF} \meta{comma list} \Arg{true code} \Arg{false code} +\cs{clistVarIfEmpty} \meta{comma list} +\cs{clistVarIfEmptyT} \meta{comma list} \Arg{true code} +\cs{clistVarIfEmptyF} \meta{comma list} \Arg{false code} +\cs{clistVarIfEmptyTF} \meta{comma list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{comma list} is empty (containing no items). \begin{demohigh} -\ClistSet \lTmpaClist {one,two} -\ClistVarIfEmptyTF \lTmpaClist {\Return{Empty}} {\Return{NonEmpty}} -\ClistClear \lTmpaClist -\ClistVarIfEmptyTF \lTmpaClist {\Return{Empty}} {\Return{NonEmpty}} +\clistSet \lTmpaClist {one,two} +\clistVarIfEmptyTF \lTmpaClist {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\clistClear \lTmpaClist +\clistVarIfEmptyTF \lTmpaClist {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\ClistIfIn,\ClistIfInT,\ClistIfInF,\ClistIfInTF} +\begin{function}{\clistIfIn,\clistIfInT,\clistIfInF,\clistIfInTF} \begin{syntax} -\cs{ClistIfIn} \Arg{comma list} \Arg{item} -\cs{ClistIfInT} \Arg{comma list} \Arg{item} \Arg{true code} -\cs{ClistIfInF} \Arg{comma list} \Arg{item} \Arg{false code} -\cs{ClistIfInTF} \Arg{comma list} \Arg{item} \Arg{true code} \Arg{false code} +\cs{clistIfIn} \Arg{comma list} \Arg{item} +\cs{clistIfInT} \Arg{comma list} \Arg{item} \Arg{true code} +\cs{clistIfInF} \Arg{comma list} \Arg{item} \Arg{false code} +\cs{clistIfInTF} \Arg{comma list} \Arg{item} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{item} is present in the \meta{comma list}. In the case of an \texttt{n}-type \meta{comma list}, the usual rules of space trimming and brace stripping apply. For example \begin{demohigh} -\ClistIfInTF { a , {b} , {b} , c } {b} {\Return{Yes}} {\Return{No}} -\ClistIfInTF { a , {b} , {b} , c } {d} {\Return{Yes}} {\Return{No}} +\clistIfInTF { a , {b} , {b} , c } {b} {\prgReturn{Yes}} {\prgReturn{No}} +\clistIfInTF { a , {b} , {b} , c } {d} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} %\begin{texnote} %The function may fail if the \meta{item} contains \verb|{|, \verb|}|, or \verb|#| @@ -5459,20 +5459,20 @@ of space trimming and brace stripping apply. For example %\end{texnote} \end{function} -\begin{function}{\ClistVarIfIn,\ClistVarIfInT,\ClistVarIfInF,\ClistVarIfInTF} +\begin{function}{\clistVarIfIn,\clistVarIfInT,\clistVarIfInF,\clistVarIfInTF} \begin{syntax} -\cs{ClistVarIfIn} \meta{comma list} \Arg{item} -\cs{ClistVarIfInT} \meta{comma list} \Arg{item} \Arg{true code} -\cs{ClistVarIfInF} \meta{comma list} \Arg{item} \Arg{false code} -\cs{ClistVarIfInTF} \meta{comma list} \Arg{item} \Arg{true code} \Arg{false code} +\cs{clistVarIfIn} \meta{comma list} \Arg{item} +\cs{clistVarIfInT} \meta{comma list} \Arg{item} \Arg{true code} +\cs{clistVarIfInF} \meta{comma list} \Arg{item} \Arg{false code} +\cs{clistVarIfInTF} \meta{comma list} \Arg{item} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{item} is present in the \meta{comma list}. In the case of an \texttt{n}-type \meta{comma list}, the usual rules of space trimming and brace stripping apply. \begin{demohigh} -\ClistSet \lTmpaClist {one,two} -\ClistVarIfInTF \lTmpaClist {one} {\Return{Yes}} {\Return{No}} -\ClistVarIfInTF \lTmpaClist {three} {\Return{Yes}} {\Return{No}} +\clistSet \lTmpaClist {one,two} +\clistVarIfInTF \lTmpaClist {one} {\prgReturn{Yes}} {\prgReturn{No}} +\clistVarIfInTF \lTmpaClist {three} {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} %\begin{texnote} %The function may fail if the \meta{item} contains \verb|{|, \verb|}|, or \verb|#| @@ -5504,33 +5504,33 @@ code and so should only be used for short-term storage. \section{Creating and Using Sequences} -\begin{function}{\SeqNew} +\begin{function}{\seqNew} \begin{syntax} -\cs{SeqNew} \meta{sequence} +\cs{seqNew} \meta{sequence} \end{syntax} Creates a new \meta{sequence} or raises an error if the name is already taken. The declaration is global. The \meta{sequence} initially contains no items. \begin{codehigh} -\SeqNew \lFooSomeSeq +\seqNew \lFooSomeSeq \end{codehigh} \end{function} -\begin{function}{\SeqConstFromClist} +\begin{function}{\seqConstFromClist} \begin{syntax} -\cs{SeqConstFromClist} \meta{seq var} \Arg{comma-list} +\cs{seqConstFromClist} \meta{seq var} \Arg{comma-list} \end{syntax} Creates a new constant \meta{seq var} or raises an error if the name is already taken. The \meta{seq var} is set globally to contain the items in the \meta{comma list}. \begin{codehigh} -\SeqConstFromClist \cFooSomeSeq {one,two,three} +\seqConstFromClist \cFooSomeSeq {one,two,three} \end{codehigh} \end{function} -\begin{function}{\SeqVarJoin} +\begin{function}{\seqVarJoin} \begin{syntax} -\cs{SeqVarJoin} \meta{seq var} \Arg{separator} +\cs{seqVarJoin} \meta{seq var} \Arg{separator} \end{syntax} Returns the contents of the \meta{seq var}, with the \meta{separator} between the items. If the sequence has @@ -5538,8 +5538,8 @@ a single item, it is returned with no \meta{separator}, and an empty sequence returns nothing. An error is raised if the variable does not exist or if it is invalid. \begin{demohigh} -\SeqSetSplit \lTmpaSeq {|} {a|b|c|{de}|f} -\SeqVarJoin \lTmpaSeq { and } +\seqSetSplit \lTmpaSeq {|} {a|b|c|{de}|f} +\seqVarJoin \lTmpaSeq { and } \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -5549,9 +5549,9 @@ the variable does not exist or if it is invalid. %\end{texnote} \end{function} -\begin{function}{\SeqVarJoinExtended} +\begin{function}{\seqVarJoinExtended} \begin{syntax} -\cs{SeqVarJoinExtended} \meta{seq var} \Arg{separator between two} \Arg{separator between more than two} \Arg{separator between final two} +\cs{seqVarJoinExtended} \meta{seq var} \Arg{separator between two} \Arg{separator between more than two} \Arg{separator between final two} \end{syntax} Returns the contents of the \meta{seq var}, with the appropriate \meta{separator} between the items. Namely, if the @@ -5564,8 +5564,8 @@ a single item, it is returned, and an empty sequence returns nothing. An error is raised if the variable does not exist or if it is invalid. \begin{demohigh} -\SeqSetSplit \lTmpaSeq {|} {a|b|c|{de}|f} -\SeqVarJoinExtended \lTmpaSeq { and } {, } {, and } +\seqSetSplit \lTmpaSeq {|} {a|b|c|{de}|f} +\seqVarJoinExtended \lTmpaSeq { and } {, } {, and } \end{demohigh} The first separator argument is not used in this case because the sequence has more than $2$ items. @@ -5579,43 +5579,43 @@ because the sequence has more than $2$ items. \section{Viewing Sequences} -\begin{function}{\SeqVarLog} +\begin{function}{\seqVarLog} \begin{syntax} -\cs{SeqVarLog} \meta{sequence} +\cs{seqVarLog} \meta{sequence} \end{syntax} Writes the entries in the \meta{sequence} in the log file. \begin{codehigh} -\SeqVarLog \lFooSomeSeq +\seqVarLog \lFooSomeSeq \end{codehigh} \end{function} -\begin{function}{\SeqVarShow} +\begin{function}{\seqVarShow} \begin{syntax} -\cs{SeqVarShow} \meta{sequence} +\cs{seqVarShow} \meta{sequence} \end{syntax} Displays the entries in the \meta{sequence} in the terminal. \begin{codehigh} -\SeqVarShow \lFooSomeSeq +\seqVarShow \lFooSomeSeq \end{codehigh} \end{function} \section{Setting Sequences} -\begin{function}{\SeqSetFromClist} +\begin{function}{\seqSetFromClist} \begin{syntax} -\cs{SeqSetFromClist} \meta{sequence} \meta{comma-list} +\cs{seqSetFromClist} \meta{sequence} \meta{comma-list} \end{syntax} Converts the data in the \meta{comma list} into a \meta{sequence}: the original \meta{comma list} is unchanged. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,three} -\SeqVarJoin \lTmpaSeq { and } +\seqSetFromClist \lTmpaSeq {one,two,three} +\seqVarJoin \lTmpaSeq { and } \end{demohigh} \end{function} -\begin{function}{\SeqSetSplit} +\begin{function}{\seqSetSplit} \begin{syntax} -\cs{SeqSetSplit} \meta{sequence} \Arg{delimiter} \Arg{token list} +\cs{seqSetSplit} \meta{sequence} \Arg{delimiter} \Arg{token list} \end{syntax} Splits the \meta{token list} into \meta{items} separated by \meta{delimiter}, and assigns the result to the \meta{sequence}. @@ -5623,110 +5623,110 @@ Spaces on both sides of each \meta{item} are ignored, then one set of outer braces is removed (if any); this space trimming behaviour is identical to that of \pkg{Clist} functions. Empty \meta{items} are preserved by -\cs{SeqSetSplit}, and can be removed afterwards using -\cs{SeqVarRemoveAll} \meta{sequence} \verb|{}|. +\cs{seqSetSplit}, and can be removed afterwards using +\cs{seqVarRemoveAll} \meta{sequence} \verb|{}|. The \meta{delimiter} may not contain \verb|{|, \verb|}| or \verb|#| (assuming \TeX{}'s normal category code r\'egime). If the \meta{delimiter} is empty, the \meta{token list} is split into \meta{items} as a \meta{token list}. -%See also \cs{SeqSetSplitKeepSpaces}, which omits space stripping. +%See also \cs{seqSetSplitKeepSpaces}, which omits space stripping. \begin{demohigh} -\SeqSetSplit \lTmpaSeq {,} {1,2,3} -\SeqVarJoin \lTmpaSeq { and } +\seqSetSplit \lTmpaSeq {,} {1,2,3} +\seqVarJoin \lTmpaSeq { and } \end{demohigh} \end{function} -\begin{function}{\SeqSetEq} +\begin{function}{\seqSetEq} \begin{syntax} -\cs{SeqSetEq} \meta{sequence_1} \meta{sequence_2} +\cs{seqSetEq} \meta{sequence_1} \meta{sequence_2} \end{syntax} Sets the content of \meta{sequence_1} equal to that of \meta{sequence_2}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,three,four} -\SeqSetEq \lTmpbSeq \lTmpaSeq -\SeqVarJoin \lTmpbSeq { and } +\seqSetFromClist \lTmpaSeq {one,two,three,four} +\seqSetEq \lTmpbSeq \lTmpaSeq +\seqVarJoin \lTmpbSeq { and } \end{demohigh} \end{function} -\begin{function}{\SeqClear} +\begin{function}{\seqClear} \begin{syntax} -\cs{SeqClear} \meta{sequence} +\cs{seqClear} \meta{sequence} \end{syntax} Clears all items from the \meta{sequence}. \begin{codehigh} -\SeqClear \lTmpaSeq +\seqClear \lTmpaSeq \end{codehigh} \end{function} -\begin{function}{\SeqClearNew} +\begin{function}{\seqClearNew} \begin{syntax} -\cs{SeqClearNew} \meta{sequence} +\cs{seqClearNew} \meta{sequence} \end{syntax} Ensures that the \meta{sequence} exists globally by applying -\cs{SeqNew} if necessary, then applies \cs{SeqClear} to leave +\cs{seqNew} if necessary, then applies \cs{seqClear} to leave the \meta{sequence} empty. \begin{demohigh} -\SeqClearNew \lFooSomeSeq -\SeqSetFromClist \lFooSomeSeq {one,two,three} -\SeqVarJoin \lFooSomeSeq { and } +\seqClearNew \lFooSomeSeq +\seqSetFromClist \lFooSomeSeq {one,two,three} +\seqVarJoin \lFooSomeSeq { and } \end{demohigh} \end{function} -\begin{function}{\SeqConcat} +\begin{function}{\seqConcat} \begin{syntax} -\cs{SeqConcat} \meta{sequence_1} \meta{sequence_2} \meta{sequence_3} +\cs{seqConcat} \meta{sequence_1} \meta{sequence_2} \meta{sequence_3} \end{syntax} Concatenates the content of \meta{sequence_2} and \meta{sequence_3} together and saves the result in \meta{sequence_1}. The items in \meta{sequence_2} are placed at the left side of the new sequence. \begin{demohigh} -\SeqSetFromClist \lTmpbSeq {one,two} -\SeqSetFromClist \lTmpcSeq {three,four} -\SeqConcat \lTmpaSeq \lTmpbSeq \lTmpcSeq -\SeqVarJoin \lTmpaSeq {, } +\seqSetFromClist \lTmpbSeq {one,two} +\seqSetFromClist \lTmpcSeq {three,four} +\seqConcat \lTmpaSeq \lTmpbSeq \lTmpcSeq +\seqVarJoin \lTmpaSeq {, } \end{demohigh} \end{function} -%\begin{function}{\SeqSetSplitKeepSpaces} +%\begin{function}{\seqSetSplitKeepSpaces} %\begin{syntax} -%\cs{SeqSetSplitKeepSpaces} \meta{sequence} \Arg{delimiter} \Arg{token list} +%\cs{seqSetSplitKeepSpaces} \meta{sequence} \Arg{delimiter} \Arg{token list} %\end{syntax} %Splits the \meta{token list} into \meta{items} separated %by \meta{delimiter}, and assigns the result to the \meta{sequence}. %One set of outer braces is removed (if any) but any surrounding spaces %are retained: any braces \emph{inside} one or more spaces are %therefore kept. Empty \meta{items} are preserved by -%\cs{SeqSetSplitKeepSpaces}, and can be removed afterwards using -%\cs{SeqVarRemoveAll} \meta{sequence} \verb|{}|. +%\cs{seqSetSplitKeepSpaces}, and can be removed afterwards using +%\cs{seqVarRemoveAll} \meta{sequence} \verb|{}|. %The \meta{delimiter} may not contain \verb|{|, \verb|}| or \verb|#| %(assuming \TeX{}'s normal category code r\'egime). %If the \meta{delimiter} is empty, the \meta{token list} is split %into \meta{items} as a \meta{token list}. -%%See also \cs{SeqSetSplit}, which removes spaces around the delimiters. +%%See also \cs{seqSetSplit}, which removes spaces around the delimiters. %\end{function} -\begin{function}{\SeqPutLeft} +\begin{function}{\seqPutLeft} \begin{syntax} -\cs{SeqPutLeft} \meta{sequence} \Arg{item} +\cs{seqPutLeft} \meta{sequence} \Arg{item} \end{syntax} Appends the \meta{item} to the left of the \meta{sequence}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two} -\SeqPutLeft \lTmpaSeq {zero} -\SeqVarJoin \lTmpaSeq { and } +\seqSetFromClist \lTmpaSeq {one,two} +\seqPutLeft \lTmpaSeq {zero} +\seqVarJoin \lTmpaSeq { and } \end{demohigh} \end{function} -\begin{function}{\SeqPutRight} +\begin{function}{\seqPutRight} \begin{syntax} -\cs{SeqPutRight} \meta{sequence} \Arg{item} +\cs{seqPutRight} \meta{sequence} \Arg{item} \end{syntax} Appends the \meta{item} to the right of the \meta{sequence}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two} -\SeqPutRight \lTmpaSeq {three} -\SeqVarJoin \lTmpaSeq { and } +\seqSetFromClist \lTmpaSeq {one,two} +\seqPutRight \lTmpaSeq {three} +\seqVarJoin \lTmpaSeq { and } \end{demohigh} \end{function} @@ -5737,17 +5737,17 @@ necessary to modify the content. The functions here may be used to update sequences, while retaining the order of the unaffected entries. -\begin{function}{\SeqVarRemoveDuplicates} +\begin{function}{\seqVarRemoveDuplicates} \begin{syntax} -\cs{SeqVarRemoveDuplicates} \meta{sequence} +\cs{seqVarRemoveDuplicates} \meta{sequence} \end{syntax} Removes duplicate items from the \meta{sequence}, leaving the left most copy of each item in the \meta{sequence}. The \meta{item} -comparison takes place on a token basis, as for \cs{TlIfEqTF}. +comparison takes place on a token basis, as for \cs{tlIfEqTF}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,one,two,three} -\SeqVarRemoveDuplicates \lTmpaSeq -\SeqVarJoin \lTmpaSeq {,} +\seqSetFromClist \lTmpaSeq {one,two,one,two,three} +\seqVarRemoveDuplicates \lTmpaSeq +\seqVarJoin \lTmpaSeq {,} \end{demohigh} %\begin{texnote} %This function iterates through every item in the \meta{sequence} and @@ -5756,34 +5756,34 @@ comparison takes place on a token basis, as for \cs{TlIfEqTF}. %\end{texnote} \end{function} -\begin{function}{\SeqVarRemoveAll} +\begin{function}{\seqVarRemoveAll} \begin{syntax} -\cs{SeqVarRemoveAll} \meta{sequence} \Arg{item} +\cs{seqVarRemoveAll} \meta{sequence} \Arg{item} \end{syntax} Removes every occurrence of \meta{item} from the \meta{sequence}. -The \meta{item} comparison takes place on a token basis, as for \cs{TlIfEqTF}. +The \meta{item} comparison takes place on a token basis, as for \cs{tlIfEqTF}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,one,two,three} -\SeqVarRemoveAll \lTmpaSeq {two} -\SeqVarJoin \lTmpaSeq {,} +\seqSetFromClist \lTmpaSeq {one,two,one,two,three} +\seqVarRemoveAll \lTmpaSeq {two} +\seqVarJoin \lTmpaSeq {,} \end{demohigh} \end{function} -\begin{function}{\SeqVarReverse} +\begin{function}{\seqVarReverse} \begin{syntax} -\cs{SeqVarReverse} \meta{sequence} +\cs{seqVarReverse} \meta{sequence} \end{syntax} Reverses the order of the items stored in the \meta{sequence}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,one,two,three} -\SeqVarReverse \lTmpaSeq -\SeqVarJoin \lTmpaSeq {,} +\seqSetFromClist \lTmpaSeq {one,two,one,two,three} +\seqVarReverse \lTmpaSeq +\seqVarJoin \lTmpaSeq {,} \end{demohigh} \end{function} -%\begin{function}{\SeqVarSort} +%\begin{function}{\seqVarSort} %\begin{syntax} -%\cs{SeqVarSort} \meta{sequence} \Arg{comparison code} +%\cs{seqVarSort} \meta{sequence} \Arg{comparison code} %\end{syntax} %Sorts the items in the \meta{sequence} according to the %\meta{comparison code}, and assigns the result to @@ -5791,9 +5791,9 @@ Reverses the order of the items stored in the \meta{sequence}. %described in Section \ref{sec:l3sort:mech}. %\end{function} -%\begin{function}{\SeqVarShuffle} +%\begin{function}{\seqVarShuffle} %\begin{syntax} -%\cs{SeqVarShuffle} \meta{seq var} +%\cs{seqVarShuffle} \meta{seq var} %\end{syntax} %Sets the \meta{seq var} to the result of placing the items of the %\meta{seq var} in a random order. Each item is (roughly) as likely @@ -5810,23 +5810,23 @@ Reverses the order of the items stored in the \meta{sequence}. \section{Working with the Contents of Sequences} -\begin{function}{\SeqVarCount} +\begin{function}{\seqVarCount} \begin{syntax} -\cs{SeqVarCount} \meta{sequence} +\cs{seqVarCount} \meta{sequence} \end{syntax} Returns the number of items in the \meta{sequence} as an \meta{integer denotation}. The total number of items in a \meta{sequence} includes those which are empty and duplicates, \emph{i.e.} every item in a \meta{sequence} is unique. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,three,four} -\SeqVarCount \lTmpaSeq +\seqSetFromClist \lTmpaSeq {one,two,three,four} +\seqVarCount \lTmpaSeq \end{demohigh} \end{function} -\begin{function}{\SeqVarItem} +\begin{function}{\seqVarItem} \begin{syntax} -\cs{SeqVarItem} \meta{sequence} \Arg{integer expression} +\cs{seqVarItem} \meta{sequence} \Arg{integer expression} \end{syntax} Indexing items in the \meta{sequence} from $1$ at the top (left), this function evaluates the \meta{integer expression} and returns the @@ -5834,11 +5834,11 @@ appropriate item from the sequence. If the \meta{integer expression} is negative, indexing occurs from the bottom (right) of the sequence. If the \meta{integer expression} is larger than the number of items in the \meta{sequence} (as -calculated by \cs{SeqVarCount}) then the function returns nothing. +calculated by \cs{seqVarCount}) then the function returns nothing. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,three,four} -\TlSet \lTmpaTl {\SeqVarItem \lTmpaSeq {3}} -\TlUse \lTmpaTl +\seqSetFromClist \lTmpaSeq {one,two,three,four} +\tlSet \lTmpaTl {\seqVarItem \lTmpaSeq {3}} +\tlUse \lTmpaTl \end{demohigh} %\begin{texnote} %The result is returned within the \tn{unexpanded} @@ -5848,18 +5848,18 @@ calculated by \cs{SeqVarCount}) then the function returns nothing. %\end{texnote} \end{function} -\begin{function}{\SeqVarRandItem} +\begin{function}{\seqVarRandItem} \begin{syntax} -\cs{SeqVarRandItem} \meta{seq var} +\cs{seqVarRandItem} \meta{seq var} \end{syntax} Selects a pseudo-random item of the \meta{sequence}. If the \meta{sequence} is empty the result is empty. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two,three,four,five,six} -\TlSet \lTmpaTl {\SeqVarRandItem \lTmpaSeq} -\TlUse \lTmpaTl -\TlSet \lTmpaTl {\SeqVarRandItem \lTmpaSeq} -\TlUse \lTmpaTl +\seqSetFromClist \lTmpaSeq {one,two,three,four,five,six} +\tlSet \lTmpaTl {\seqVarRandItem \lTmpaSeq} +\tlUse \lTmpaTl +\tlSet \lTmpaTl {\seqVarRandItem \lTmpaSeq} +\tlUse \lTmpaTl \end{demohigh} %This is not available in older versions of \XeTeX{}. %\begin{texnote} @@ -5879,9 +5879,9 @@ intended to be mixed with the general ordered data functions detailed in the previous section: a sequence should either be used as an ordered data type or as a stack, but not in both ways. -\begin{function}{\SeqGet} +\begin{function}{\seqGet} \begin{syntax} -\cs{SeqGet} \meta{sequence} \meta{token list variable} +\cs{seqGet} \meta{sequence} \meta{token list variable} \end{syntax} Reads the top item from a \meta{sequence} into the \meta{token list variable} without removing it from the @@ -5889,17 +5889,17 @@ Reads the top item from a \meta{sequence} into the If \meta{sequence} is empty the \meta{token list variable} is set to the special marker \cs{qNoValue}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqGet \lTmpaSeq \lTmpaTl -\TlUse \lTmpaTl +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqGet \lTmpaSeq \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\SeqGetT,\SeqGetF,\SeqGetTF} +\begin{function}{\seqGetT,\seqGetF,\seqGetTF} \begin{syntax} -\cs{SeqGetT} \meta{sequence} \meta{token list variable} \Arg{true code} -\cs{SeqGetF} \meta{sequence} \meta{token list variable} \Arg{false code} -\cs{SeqGetTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{seqGetT} \meta{sequence} \meta{token list variable} \Arg{true code} +\cs{seqGetF} \meta{sequence} \meta{token list variable} \Arg{false code} +\cs{seqGetTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{sequence} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -5908,31 +5908,31 @@ not defined in this case and should not be relied upon. If the \meta{sequence} in the \meta{token list variable} without removing it from the \meta{sequence}. The \meta{token list variable} is assigned locally. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqGetTF \lTmpaSeq \lTmpaTl {\Return{Yes}} {\Return{No}} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqGetTF \lTmpaSeq \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\SeqPop} +\begin{function}{\seqPop} \begin{syntax} -\cs{SeqPop} \meta{sequence} \meta{token list variable} +\cs{seqPop} \meta{sequence} \meta{token list variable} \end{syntax} Pops the top item from a \meta{sequence} into the \meta{token list variable}. the \meta{token list variable} is assigned locally. If \meta{sequence} is empty the \meta{token list variable} is set to the special marker \cs{qNoValue}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqPop \lTmpaSeq \lTmpaTl -\SeqVarJoin \lTmpaSeq {,} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqPop \lTmpaSeq \lTmpaTl +\seqVarJoin \lTmpaSeq {,} \end{demohigh} \end{function} -\begin{function}{\SeqPopT,\SeqPopF,\SeqPopTF} +\begin{function}{\seqPopT,\seqPopF,\seqPopTF} \begin{syntax} -\cs{SeqPopT} \meta{sequence} \meta{token list variable} \Arg{true code} -\cs{SeqPopF} \meta{sequence} \meta{token list variable} \Arg{false code} -\cs{SeqPopTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{seqPopT} \meta{sequence} \meta{token list variable} \Arg{true code} +\cs{seqPopF} \meta{sequence} \meta{token list variable} \Arg{false code} +\cs{seqPopTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{sequence} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -5941,21 +5941,21 @@ not defined in this case and should not be relied upon. If the in the \meta{token list variable}, \emph{i.e.} removes the item from the \meta{sequence}. The \meta{token list variable} is assigned locally. \begin{demohigh} -\SeqPopTF \cEmptySeq \lTmpaTl {\Return{Yes}} {\Return{No}} +\seqPopTF \cEmptySeq \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\SeqPush} +\begin{function}{\seqPush} \begin{syntax} -\cs{SeqPush} \meta{sequence} \Arg{item} +\cs{seqPush} \meta{sequence} \Arg{item} \end{syntax} Adds the \Arg{item} to the top of the \meta{sequence}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqPush \lTmpaSeq {one} -\SeqVarJoin \lTmpaSeq {|} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqPush \lTmpaSeq {one} +\seqVarJoin \lTmpaSeq {|} \end{demohigh} -You can only push one item to the \meta{sequence} with \cs{SeqPush}, +You can only push one item to the \meta{sequence} with \cs{seqPush}, which is different from \cs{ClistPush}. \end{function} @@ -5966,9 +5966,9 @@ For implementation reasons, the actions at the left of the sequence are faster than those acting on the right. These functions all assign the recovered material locally. -\begin{function}{\SeqGetLeft} +\begin{function}{\seqGetLeft} \begin{syntax} -\cs{SeqGetLeft} \meta{sequence} \meta{token list variable} +\cs{seqGetLeft} \meta{sequence} \meta{token list variable} \end{syntax} Stores the left-most item from a \meta{sequence} in the \meta{token list variable} without removing it from the @@ -5976,17 +5976,17 @@ Stores the left-most item from a \meta{sequence} in the If \meta{sequence} is empty the \meta{token list variable} is set to the special marker \cs{qNoValue}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqGetLeft \lTmpaSeq \lTmpaTl -\TlUse \lTmpaTl +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqGetLeft \lTmpaSeq \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\SeqGetLeftT,\SeqGetLeftF,\SeqGetLeftTF} +\begin{function}{\seqGetLeftT,\seqGetLeftF,\seqGetLeftTF} \begin{syntax} -\cs{SeqGetLeftT} \meta{sequence} \meta{token list variable} \Arg{true code} -\cs{SeqGetLeftF} \meta{sequence} \meta{token list variable} \Arg{false code} -\cs{SeqGetLeftTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{seqGetLeftT} \meta{sequence} \meta{token list variable} \Arg{true code} +\cs{seqGetLeftF} \meta{sequence} \meta{token list variable} \Arg{false code} +\cs{seqGetLeftTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{sequence} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -5997,14 +5997,14 @@ in the \meta{token list variable} without removing it from the \meta{sequence}, then leaves the \meta{true code} in the input stream. The \meta{token list variable} is assigned locally. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqGetLeftTF \lTmpaSeq \lTmpaTl {\Return{Yes}} {\Return{No}} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqGetLeftTF \lTmpaSeq \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\SeqGetRight} +\begin{function}{\seqGetRight} \begin{syntax} -\cs{SeqGetRight} \meta{sequence} \meta{token list variable} +\cs{seqGetRight} \meta{sequence} \meta{token list variable} \end{syntax} Stores the right-most item from a \meta{sequence} in the \meta{token list variable} without removing it from the @@ -6012,17 +6012,17 @@ Stores the right-most item from a \meta{sequence} in the If \meta{sequence} is empty the \meta{token list variable} is set to the special marker \cs{qNoValue}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqGetRight \lTmpaSeq \lTmpaTl -\TlUse \lTmpaTl +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqGetRight \lTmpaSeq \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\SeqGetRightT,\SeqGetRightF,\SeqGetRightTF} +\begin{function}{\seqGetRightT,\seqGetRightF,\seqGetRightTF} \begin{syntax} -\cs{SeqGetRightT} \meta{sequence} \meta{token list variable} \Arg{true code} -\cs{SeqGetRightF} \meta{sequence} \meta{token list variable} \Arg{false code} -\cs{SeqGetRightTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{seqGetRightT} \meta{sequence} \meta{token list variable} \Arg{true code} +\cs{seqGetRightF} \meta{sequence} \meta{token list variable} \Arg{false code} +\cs{seqGetRightTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{sequence} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -6033,14 +6033,14 @@ in the \meta{token list variable} without removing it from the \meta{sequence}, then leaves the \meta{true code} in the input stream. The \meta{token list variable} is assigned locally. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqGetRightTF \lTmpaSeq \lTmpaTl {\Return{Yes}} {\Return{No}} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqGetRightTF \lTmpaSeq \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\SeqPopLeft} +\begin{function}{\seqPopLeft} \begin{syntax} -\cs{SeqPopLeft} \meta{sequence} \meta{token list variable} +\cs{seqPopLeft} \meta{sequence} \meta{token list variable} \end{syntax} Pops the left-most item from a \meta{sequence} into the \meta{token list variable}, \emph{i.e.} removes the item from the @@ -6049,17 +6049,17 @@ The assignment of the \meta{token list variable} is local. If \meta{sequence} is empty the \meta{token list variable} is set to the special marker \cs{qNoValue}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqPopLeft \lTmpaSeq \lTmpaTl -\SeqVarJoin \lTmpaSeq {,} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqPopLeft \lTmpaSeq \lTmpaTl +\seqVarJoin \lTmpaSeq {,} \end{demohigh} \end{function} -\begin{function}{\SeqPopLeftT,\SeqPopLeftF,\SeqPopLeftTF} +\begin{function}{\seqPopLeftT,\seqPopLeftF,\seqPopLeftTF} \begin{syntax} -\cs{SeqPopLeftT} \meta{sequence} \meta{token list variable} \Arg{true code} -\cs{SeqPopLeftF} \meta{sequence} \meta{token list variable} \Arg{false code} -\cs{SeqPopLeftTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{seqPopLeftT} \meta{sequence} \meta{token list variable} \Arg{true code} +\cs{seqPopLeftF} \meta{sequence} \meta{token list variable} \Arg{false code} +\cs{seqPopLeftTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{sequence} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -6069,13 +6069,13 @@ in the \meta{token list variable}, \emph{i.e.} removes the item from the \meta{sequence}, then leaves the \meta{true code} in the input stream. The \meta{token list variable} is assigned locally. \begin{demohigh} -\SeqPopLeftTF \cEmptySeq \lTmpaTl {\Return{Yes}} {\Return{No}} +\seqPopLeftTF \cEmptySeq \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\SeqPopRight} +\begin{function}{\seqPopRight} \begin{syntax} -\cs{SeqPopRight} \meta{sequence} \meta{token list variable} +\cs{seqPopRight} \meta{sequence} \meta{token list variable} \end{syntax} Pops the right-most item from a \meta{sequence} into the \meta{token list variable}, \emph{i.e.} removes the item from the @@ -6084,17 +6084,17 @@ The assignment of the \meta{token list variable} is local. If \meta{sequence} is empty the \meta{token list variable} is set to the special marker \cs{qNoValue}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {two,three,four} -\SeqPopRight \lTmpaSeq \lTmpaTl -\SeqVarJoin \lTmpaSeq {,} +\seqSetFromClist \lTmpaSeq {two,three,four} +\seqPopRight \lTmpaSeq \lTmpaTl +\seqVarJoin \lTmpaSeq {,} \end{demohigh} \end{function} -\begin{function}{\SeqPopRightT,\SeqPopRightF,\SeqPopRightTF} +\begin{function}{\seqPopRightT,\seqPopRightF,\seqPopRightTF} \begin{syntax} -\cs{SeqPopRightT} \meta{sequence} \meta{token list variable} \Arg{true code} -\cs{SeqPopRightF} \meta{sequence} \meta{token list variable} \Arg{false code} -\cs{SeqPopRightTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{seqPopRightT} \meta{sequence} \meta{token list variable} \Arg{true code} +\cs{seqPopRightF} \meta{sequence} \meta{token list variable} \Arg{false code} +\cs{seqPopRightTF} \meta{sequence} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{sequence} is empty, leaves the \meta{false code} in the input stream. The value of the \meta{token list variable} is @@ -6104,7 +6104,7 @@ in the \meta{token list variable}, \emph{i.e.} removes the item from the \meta{sequence}, then leaves the \meta{true code} in the input stream. The \meta{token list variable} is assigned locally. \begin{demohigh} -\SeqPopRightTF \cEmptySeq \lTmpaTl {\Return{Yes}} {\Return{No}} +\seqPopRightTF \cEmptySeq \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} @@ -6114,21 +6114,21 @@ The \meta{token list variable} is assigned locally. %local assignments made by the \meta{function} or \meta{code} discussed %below remain in effect after the loop. -%\begin{function}{\SeqVarMapFunction} +%\begin{function}{\seqVarMapFunction} %\begin{syntax} -%\cs{SeqVarMapFunction} \meta{sequence} \meta{function} +%\cs{seqVarMapFunction} \meta{sequence} \meta{function} %\end{syntax} %Applies \meta{function} to every \meta{item} stored in the %\meta{sequence}. The \meta{function} will receive one argument for %each iteration. The \meta{items} are returned from left to right. -%To pass further arguments to the \meta{function}, see \cs{SeqVarMapTokens}. -%The function \cs{SeqVarMapInline} is faster than -%\cs{SeqVarMapFunction} for sequences with more than about $10$ items. +%To pass further arguments to the \meta{function}, see \cs{seqVarMapTokens}. +%The function \cs{seqVarMapInline} is faster than +%\cs{seqVarMapFunction} for sequences with more than about $10$ items. %\end{function} -\begin{function}{\SeqVarMapInline} +\begin{function}{\seqVarMapInline} \begin{syntax} -\cs{SeqVarMapInline} \meta{sequence} \Arg{inline function} +\cs{seqVarMapInline} \meta{sequence} \Arg{inline function} \end{syntax} Applies \meta{inline function} to every \meta{item} stored within the \meta{sequence}. The \meta{inline function} should @@ -6136,35 +6136,35 @@ consist of code which will receive the \meta{item} as \verb|#1|. The \meta{items} are returned from left to right. \begin{demohigh} \IgnoreSpacesOn -\SeqSetFromClist \lTmpkSeq {one,two,three} -\TlClear \lTmpaTl -\SeqVarMapInline \lTmpkSeq { - \TlPutRight \lTmpaTl {(#1)} +\seqSetFromClist \lTmpkSeq {one,two,three} +\tlClear \lTmpaTl +\seqVarMapInline \lTmpkSeq { + \tlPutRight \lTmpaTl {(#1)} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\SeqVarMapTokens} +%\begin{function}{\seqVarMapTokens} %\begin{syntax} -%\cs{SeqVarMapTokens} \meta{sequence} \Arg{code} +%\cs{seqVarMapTokens} \meta{sequence} \Arg{code} %\end{syntax} -%Analogue of \cs{SeqVarMapFunction} which maps several tokens +%Analogue of \cs{seqVarMapFunction} which maps several tokens %instead of a single function. The \meta{code} receives each item in %the \meta{sequence} as a trailing brace group. For instance, %\begin{verbatim} -%\SeqVarMapTokens \lMySeq { \PrgReplicate { 2 } } +%\seqVarMapTokens \lMySeq { \prgReplicate { 2 } } %\end{verbatim} %expands to twice each item in the \meta{sequence}: for each item in %\verb|\l_my_seq| the function \cs{PrgReplicate} receives \verb|2| and %\meta{item} as its two arguments. The function -%\cs{SeqVarMapInline} is typically faster but it is not expandable. +%\cs{seqVarMapInline} is typically faster but it is not expandable. %\end{function} -\begin{function}{\SeqVarMapVariable} +\begin{function}{\seqVarMapVariable} \begin{syntax} -\cs{SeqVarMapVariable} \meta{sequence} \meta{variable} \Arg{code} +\cs{seqVarMapVariable} \meta{sequence} \meta{variable} \Arg{code} \end{syntax} Stores each \meta{item} of the \meta{sequence} in turn in the (token list) \meta{variable} and applies the \meta{code}. The \meta{code} @@ -6175,19 +6175,19 @@ or its original value if the \meta{sequence} is empty. The \meta{items} are returned from left to right. \begin{demohigh} \IgnoreSpacesOn -\IntZero \lTmpaInt -\SeqSetFromClist \lTmpaSeq {1,3,7} -\SeqVarMapVariable \lTmpaSeq \lTmpiTl { - \IntAdd \lTmpaInt {\lTmpiTl*\lTmpiTl} +\intZero \lTmpaInt +\seqSetFromClist \lTmpaSeq {1,3,7} +\seqVarMapVariable \lTmpaSeq \lTmpiTl { + \intAdd \lTmpaInt {\lTmpiTl*\lTmpiTl} } -\IntUse \lTmpaInt +\intUse \lTmpaInt \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\SeqVarMapIndexedFunction} +%\begin{function}{\seqVarMapIndexedFunction} %\begin{syntax} -%\cs{SeqVarMapIndexedFunction} \meta{seq var} \meta{function} +%\cs{seqVarMapIndexedFunction} \meta{seq var} \meta{function} %\end{syntax} %Applies \meta{function} to every entry in the \meta{sequence %variable}. The \meta{function} should have signature |:nn|. It @@ -6195,9 +6195,9 @@ or its original value if the \meta{sequence} is empty. The %\verb|1| for the first entry, then \verb|2| and so on) and the \meta{item}. %\end{function} -%\begin{function}{\SeqVarMapIndexedInline} +%\begin{function}{\seqVarMapIndexedInline} %\begin{syntax} -%\cs{SeqVarMapIndexedInline} \meta{seq var} \Arg{inline function} +%\cs{seqVarMapIndexedInline} \meta{seq var} \Arg{inline function} %\end{syntax} %Applies \meta{inline function} to every entry in the \meta{sequence %variable}. The \meta{inline function} should consist of code which @@ -6205,9 +6205,9 @@ or its original value if the \meta{sequence} is empty. The %and so on) as \verb|#1| and the \meta{item} as \verb|#2|. %\end{function} -%\begin{function}{\SeqMapBreak} +%\begin{function}{\seqMapBreak} %\begin{syntax} -%\cs{SeqMapBreak} +%\cs{seqMapBreak} %\end{syntax} %Used to terminate a seq map function before all %entries in the \meta{sequence} have been processed. This @@ -6232,9 +6232,9 @@ or its original value if the \meta{sequence} is empty. The %\end{texnote} %\end{function} -%\begin{function}{\SeqMapBreakDo} +%\begin{function}{\seqMapBreakDo} %\begin{syntax} -%\cs{SeqMapBreakDo} \Arg{code} +%\cs{seqMapBreakDo} \Arg{code} %\end{syntax} %Used to terminate a seq map function before all %entries in the \meta{sequence} have been processed, inserting @@ -6296,49 +6296,49 @@ or its original value if the \meta{sequence} is empty. The \section{Sequence Conditionals} -\begin{function}{\SeqIfExist,\SeqIfExistT,\SeqIfExistF,\SeqIfExistTF} +\begin{function}{\seqIfExist,\seqIfExistT,\seqIfExistF,\seqIfExistTF} \begin{syntax} -\cs{SeqIfExist} \meta{sequence} -\cs{SeqIfExistT} \meta{sequence} \Arg{true code} -\cs{SeqIfExistF} \meta{sequence} \Arg{false code} -\cs{SeqIfExistTF} \meta{sequence} \Arg{true code} \Arg{false code} +\cs{seqIfExist} \meta{sequence} +\cs{seqIfExistT} \meta{sequence} \Arg{true code} +\cs{seqIfExistF} \meta{sequence} \Arg{false code} +\cs{seqIfExistTF} \meta{sequence} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{sequence} is currently defined. This does not check that the \meta{sequence} really is a sequence variable. \begin{demohigh} -\SeqIfExistTF \lTmpaSeq {\Return{Yes}} {\Return{No}} -\SeqIfExistTF \lFooUndefinedSeq {\Return{Yes}} {\Return{No}} +\seqIfExistTF \lTmpaSeq {\prgReturn{Yes}} {\prgReturn{No}} +\seqIfExistTF \lFooUndefinedSeq {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\SeqVarIfEmpty,\SeqVarIfEmptyT,\SeqVarIfEmptyF,\SeqVarIfEmptyTF} +\begin{function}{\seqVarIfEmpty,\seqVarIfEmptyT,\seqVarIfEmptyF,\seqVarIfEmptyTF} \begin{syntax} -\cs{SeqVarIfEmpty} \meta{sequence} -\cs{SeqVarIfEmptyT} \meta{sequence} \Arg{true code} -\cs{SeqVarIfEmptyF} \meta{sequence} \Arg{false code} -\cs{SeqVarIfEmptyTF} \meta{sequence} \Arg{true code} \Arg{false code} +\cs{seqVarIfEmpty} \meta{sequence} +\cs{seqVarIfEmptyT} \meta{sequence} \Arg{true code} +\cs{seqVarIfEmptyF} \meta{sequence} \Arg{false code} +\cs{seqVarIfEmptyTF} \meta{sequence} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{sequence} is empty (containing no items). \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two} -\SeqVarIfEmptyTF \lTmpaSeq {\Return{Empty}} {\Return{NonEmpty}} -\SeqClear \lTmpaSeq -\SeqVarIfEmptyTF \lTmpaSeq {\Return{Empty}} {\Return{NonEmpty}} +\seqSetFromClist \lTmpaSeq {one,two} +\seqVarIfEmptyTF \lTmpaSeq {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\seqClear \lTmpaSeq +\seqVarIfEmptyTF \lTmpaSeq {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\SeqVarIfIn,\SeqVarIfInT,\SeqVarIfInF,\SeqVarIfInTF} +\begin{function}{\seqVarIfIn,\seqVarIfInT,\seqVarIfInF,\seqVarIfInTF} \begin{syntax} -\cs{SeqVarIfIn} \meta{sequence} \Arg{item} -\cs{SeqVarIfInT} \meta{sequence} \Arg{item} \Arg{true code} -\cs{SeqVarIfInF} \meta{sequence} \Arg{item} \Arg{false code} -\cs{SeqVarIfInTF} \meta{sequence} \Arg{item} \Arg{true code} \Arg{false code} +\cs{seqVarIfIn} \meta{sequence} \Arg{item} +\cs{seqVarIfInT} \meta{sequence} \Arg{item} \Arg{true code} +\cs{seqVarIfInF} \meta{sequence} \Arg{item} \Arg{false code} +\cs{seqVarIfInTF} \meta{sequence} \Arg{item} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{item} is present in the \meta{sequence}. \begin{demohigh} -\SeqSetFromClist \lTmpaSeq {one,two} -\SeqVarIfInTF \lTmpaSeq {one} {\Return{Yes}} {\Return{Not}} -\SeqVarIfInTF \lTmpaSeq {three} {\Return{Yes}} {\Return{Not}} +\seqSetFromClist \lTmpaSeq {one,two} +\seqVarIfInTF \lTmpaSeq {one} {\prgReturn{Yes}} {\prgReturn{Not}} +\seqVarIfInTF \lTmpaSeq {three} {\prgReturn{Yes}} {\prgReturn{Not}} \end{demohigh} \end{function} @@ -6348,14 +6348,14 @@ Tests if the \meta{item} is present in the \meta{sequence}. an unordered list of entries each of which consists of a \meta{key} and an associated \meta{value}. The \meta{key} and \meta{value} may both be any \meta{balanced text}, the \meta{key} is processed using -\cs{TlToStr}, meaning that category codes are ignored. It is possible to +\cs{tlToStr}, meaning that category codes are ignored. It is possible to map functions to property lists such that the function is applied to every key--value pair within the list. Each entry in a property list must have a unique \meta{key}: if an entry is added to a property list which already contains the \meta{key} then the new entry overwrites the existing one. The \meta{keys} are compared on a -string basis, using the same method as \cs{StrIfEq}. +string basis, using the same method as \cs{strIfEq}. %Property lists are intended for storing key-based information for use within %code. This is in contrast to key--value lists, which are a form of @@ -6383,43 +6383,43 @@ code and so should only be used for short-term storage. \section{Creating and Using Property Lists} -\begin{function}{\PropNew} +\begin{function}{\propNew} \begin{syntax} -\cs{PropNew} \meta{property list} +\cs{propNew} \meta{property list} \end{syntax} Creates a new \meta{property list} or raises an error if the name is already taken. The declaration is global. The \meta{property list} initially contains no entries. \begin{codehigh} -\PropNew \lFooSomeProp +\propNew \lFooSomeProp \end{codehigh} \end{function} -\begin{function}{\PropConstFromKeyval} +\begin{function}{\propConstFromKeyval} \begin{syntax} -\cs{PropConstFromKeyval} \meta{prop var} -\{ -~ \meta{key1} \verb|=| \meta{value1} \verb|,| -~ \meta{key2} \verb|=| \meta{value2} \verb|,| $\cdots$ -\} +\cs{propConstFromKeyval} \meta{prop var} +~ \{ +~ ~ \meta{key1} \verb|=| \meta{value1} \verb|,| +~ ~ \meta{key2} \verb|=| \meta{value2} \verb|,| $\cdots$ +~ \} \end{syntax} Creates a new constant \meta{prop var} or raises an error if the name is already taken. The \meta{prop var} is set globally to contain key--value pairs given in the second argument, processed in -the way described for \cs{PropSetFromKeyval}. If duplicate +the way described for \cs{propSetFromKeyval}. If duplicate keys appear only the last of the values is kept. This function correctly detects the \verb|=| and \verb|,| signs provided they have the standard category code $12$ or they are active. \begin{codehigh} -\PropConstFromKeyval \cFooSomeProp {key1=one,key2=two,key3=three} +\propConstFromKeyval \cFooSomeProp {key1=one,key2=two,key3=three} \end{codehigh} %Notice that in contrast to most keyval lists (\emph{e.g.} those in %\pkg{l3keys}), each key here \emph{must} be followed with an \texttt{=} sign. \end{function} -\begin{function}{\PropToKeyval} +\begin{function}{\propToKeyval} \begin{syntax} -\cs{PropToKeyval} \meta{property list} +\cs{propToKeyval} \meta{property list} \end{syntax} Returns the \meta{property list} in a key--value notation. Keep in mind that a \meta{property list} is \emph{unordered}, while key--value interfaces @@ -6431,37 +6431,37 @@ don't necessarily are, so this can't be used for arbitrary interfaces. %It also needs exactly two steps of expansion. %\end{texnote} \begin{codehigh} -\PropToKeyval \lTmpaProp +\propToKeyval \lTmpaProp \end{codehigh} \end{function} \section{Viewing Property Lists} -\begin{function}{\PropVarLog} +\begin{function}{\propVarLog} \begin{syntax} -\cs{PropVarLog} \meta{property list} +\cs{propVarLog} \meta{property list} \end{syntax} Writes the entries in the \meta{property list} in the log file. \begin{codehigh} -\PropVarLog \lTmpaProp +\propVarLog \lTmpaProp \end{codehigh} \end{function} -\begin{function}{\PropVarShow} +\begin{function}{\propVarShow} \begin{syntax} -\cs{PropVarShow} \meta{property list} +\cs{propVarShow} \meta{property list} \end{syntax} Displays the entries in the \meta{property list} in the terminal. \begin{codehigh} -\PropVarShow \lTmpaProp +\propVarShow \lTmpaProp \end{codehigh} \end{function} \section{Setting Property Lists} -\begin{function}{\PropSetFromKeyval} +\begin{function}{\propSetFromKeyval} \begin{syntax} -\cs{PropSetFromKeyval} \meta{prop var} +\cs{propSetFromKeyval} \meta{prop var} \{ ~ \meta{key1} \verb|=| \meta{value1} \verb|,| ~ \meta{key2} \verb|=| \meta{value2} \verb|,| $\cdots$ @@ -6474,101 +6474,101 @@ Spaces are trimmed around every \meta{key} and every \meta{value}, and if the result of trimming spaces consists of a single brace group then a set of outer braces is removed. This enables both the \meta{key} and the \meta{value} to contain spaces, commas or equal -signs. The \meta{key} is then processed by \cs{TlToStr}. +signs. The \meta{key} is then processed by \cs{tlToStr}. This function correctly detects the \verb|=| and \verb|,| signs provided they have the standard category code $12$ or they are active. \begin{codehigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} \end{codehigh} %Notice that in contrast to most keyval lists (\emph{e.g.} those in %\pkg{l3keys}), each key here \emph{must} be followed with an \texttt{=} sign. \end{function} -\begin{function}{\PropSetEq} +\begin{function}{\propSetEq} \begin{syntax} -\cs{PropSetEq} \meta{property list_1} \meta{property list_2} +\cs{propSetEq} \meta{property list_1} \meta{property list_2} \end{syntax} Sets the content of \meta{property list_1} equal to that of \meta{property list_2}. \begin{codehigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropSetEq \lTmpbProp \lTmpaProp -\PropVarLog \lTmpbProp +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propSetEq \lTmpbProp \lTmpaProp +\propVarLog \lTmpbProp \end{codehigh} \end{function} -\begin{function}{\PropClear} +\begin{function}{\propClear} \begin{syntax} -\cs{PropClear} \meta{property list} +\cs{propClear} \meta{property list} \end{syntax} Clears all entries from the \meta{property list}. \begin{codehigh} -\PropClear \lTmpaProp +\propClear \lTmpaProp \end{codehigh} \end{function} -\begin{function}{\PropClearNew} +\begin{function}{\propClearNew} \begin{syntax} -\cs{PropClearNew} \meta{property list} +\cs{propClearNew} \meta{property list} \end{syntax} -Ensures that the \meta{property list} exists globally by applying \cs{PropNew} -if necessary, then applies \cs{PropClear} to leave the list empty. +Ensures that the \meta{property list} exists globally by applying \cs{propNew} +if necessary, then applies \cs{propClear} to leave the list empty. \begin{codehigh} -\PropClearNew \lFooSomeProp +\propClearNew \lFooSomeProp \end{codehigh} \end{function} -\begin{function}{\PropConcat} +\begin{function}{\propConcat} \begin{syntax} -\cs{PropConcat} \meta{prop var_1} \meta{prop var_2} \meta{prop var_3} +\cs{propConcat} \meta{prop var_1} \meta{prop var_2} \meta{prop var_3} \end{syntax} Combines the key--value pairs of \meta{prop var_2} and \meta{prop var_3}, and saves the result in \meta{prop var_1}. If a key appears in both \meta{prop var_2} and \meta{prop var_3} then the last value, namely the value in \meta{prop var_3} is kept. \begin{codehigh} -\PropSetFromKeyval \lTmpbProp {key1=one,key2=two} -\PropSetFromKeyval \lTmpcProp {key3=three,key4=four} -\PropConcat \lTmpaProp \lTmpbProp \lTmpcProp -\PropVarLog \lTmpaProp +\propSetFromKeyval \lTmpbProp {key1=one,key2=two} +\propSetFromKeyval \lTmpcProp {key3=three,key4=four} +\propConcat \lTmpaProp \lTmpbProp \lTmpcProp +\propVarLog \lTmpaProp \end{codehigh} \end{function} -\begin{function}{\PropPut} +\begin{function}{\propPut} \begin{syntax} -\cs{PropPut} \meta{property list} \Arg{key} \Arg{value} +\cs{propPut} \meta{property list} \Arg{key} \Arg{value} \end{syntax} Adds an entry to the \meta{property list} which may be accessed using the \meta{key} and which has \meta{value}. If the \meta{key} is already present in the \meta{property list}, the existing entry is overwritten by the new \meta{value}. Both the \meta{key} and \meta{value} may contain any \meta{balanced text}. The \meta{key} is -stored after processing with \cs{TlToStr}, meaning that category +stored after processing with \cs{tlToStr}, meaning that category codes are ignored. \begin{codehigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} -\PropPut \lTmpaProp {key1} {newone} -\PropVarLog \lTmpaProp +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propPut \lTmpaProp {key1} {newone} +\propVarLog \lTmpaProp \end{codehigh} \end{function} -\begin{function}{\PropPutIfNew} +\begin{function}{\propPutIfNew} \begin{syntax} -\cs{PropPutIfNew} \meta{property list} \Arg{key} \Arg{value} +\cs{propPutIfNew} \meta{property list} \Arg{key} \Arg{value} \end{syntax} If the \meta{key} is present in the \meta{property list} then no action is taken. Otherwise, a new entry is added as described for -\cs{PropPut}. +\cs{propPut}. \begin{codehigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} -\PropPutIfNew \lTmpaProp {key1} {newone} -\PropVarLog \lTmpaProp +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propPutIfNew \lTmpaProp {key1} {newone} +\propVarLog \lTmpaProp \end{codehigh} \end{function} -\begin{function}{\PropPutFromKeyval} +\begin{function}{\propPutFromKeyval} \begin{syntax} -\cs{PropPutFromKeyval} \meta{prop var} +\cs{propPutFromKeyval} \meta{prop var} \{ ~ \meta{key1} \verb|=| \meta{value1} \verb|,| ~ \meta{key2} \verb|=| \meta{value2} \verb|,| $\cdots$ @@ -6576,28 +6576,28 @@ action is taken. Otherwise, a new entry is added as described for \end{syntax} Updates the \meta{prop var} by adding entries for each key--value pair given in the second argument. The addition is done through -\cs{PropPut}, hence if the \meta{prop var} already contains +\cs{propPut}, hence if the \meta{prop var} already contains some of the keys, the corresponding values are discarded and replaced by those given in the key--value list. If duplicate keys appear in the key--value list then only the last of the values is kept. \begin{codehigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} -\PropPutFromKeyval \lTmpaProp {key1=newone,key3=three} -\PropVarLog \lTmpaProp +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propPutFromKeyval \lTmpaProp {key1=newone,key3=three} +\propVarLog \lTmpaProp \end{codehigh} %The function is equivalent to storing the key--value pairs in a -%temporary property variable using \cs{PropSetFromKeyval}, then +%temporary property variable using \cs{propSetFromKeyval}, then %combining \meta{prop var} with the temporary variable using -%\cs{PropConcat}. In particular, the \meta{keys} and +%\cs{propConcat}. In particular, the \meta{keys} and %\meta{values} are space-trimmed and unbraced as described in -%\cs{PropSetFromKeyval}. This function correctly detects +%\cs{propSetFromKeyval}. This function correctly detects %the \verb|=| and \verb|,| signs provided they %have the standard category code $12$ or they are active. \end{function} -\begin{function}{\PropVarRemove} +\begin{function}{\propVarRemove} \begin{syntax} -\cs{PropVarRemove} \meta{property list} \Arg{key} +\cs{propVarRemove} \meta{property list} \Arg{key} \end{syntax} Removes the entry listed under \meta{key} from the \meta{property list}. If the \meta{key} is @@ -6605,37 +6605,37 @@ not found in the \meta{property list} no change occurs, \emph{i.e} there is no need to test for the existence of a key before deleting it. \begin{codehigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropVarRemove \lTmpaProp {key2} -\PropVarLog \lTmpaProp +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propVarRemove \lTmpaProp {key2} +\propVarLog \lTmpaProp \end{codehigh} \end{function} \section{Recovering Values from Property Lists} -\begin{function}{\PropVarCount} +\begin{function}{\propVarCount} \begin{syntax} -\cs{PropVarCount} \meta{property list} +\cs{propVarCount} \meta{property list} \end{syntax} Returns the number of key--value pairs in the \meta{property list} as an \meta{integer denotation}. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropVarCount \lTmpaProp +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propVarCount \lTmpaProp \end{demohigh} \end{function} -\begin{function}{\PropVarItem} +\begin{function}{\propVarItem} \begin{syntax} -\cs{PropVarItem} \meta{property list} \Arg{key} +\cs{propVarItem} \meta{property list} \Arg{key} \end{syntax} Returns the \meta{value} corresponding to the \meta{key} in the \meta{property list}. If the \meta{key} is missing, nothing is returned. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\TlSet \lTmpaTl {\PropVarItem \lTmpaProp {key2}} -\TlUse \lTmpaTl +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\tlSet \lTmpaTl {\propVarItem \lTmpaProp {key2}} +\tlUse \lTmpaTl \end{demohigh} %\begin{texnote} %This function is slower than the non-expandable analogue @@ -6647,9 +6647,9 @@ nothing is returned. %\end{texnote} \end{function} -\begin{function}{\PropGet} +\begin{function}{\propGet} \begin{syntax} -\cs{PropGet} \meta{property list} \Arg{key} \meta{token list variable} +\cs{propGet} \meta{property list} \Arg{key} \meta{token list variable} \end{syntax} Recovers the \meta{value} stored with \meta{key} from the \meta{property list}, and places this in the \meta{token list variable}. @@ -6658,17 +6658,17 @@ If the \meta{key} is not found in the to the special marker \cs{qNoValue}. The assignment of the \meta{token list variable} is local. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropGet \lTmpaProp {key2} \lTmpaTl -\TlUse \lTmpaTl +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propGet \lTmpaProp {key2} \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} \end{function} -\begin{function}{\PropGetT,\PropGetF,\PropGetTF} +\begin{function}{\propGetT,\propGetF,\propGetTF} \begin{syntax} -\cs{PropGetT} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} -\cs{PropGetF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{false code} -\cs{PropGetTF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{propGetT} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} +\cs{propGetF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{false code} +\cs{propGetTF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{key} is not present in the \meta{property list}, leaves the \meta{false code} in the input stream. The value of the @@ -6679,14 +6679,14 @@ not be relied upon. If the \meta{key} is present in the \meta{property list}, then leaves the \meta{true code} in the input stream. The \meta{token list variable} is assigned locally. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropGetTF \lTmpaProp {key2} \lTmpaTl {\Return{Yes}} {\Return{No}} +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propGetTF \lTmpaProp {key2} \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\PropPop} +\begin{function}{\propPop} \begin{syntax} -\cs{PropPop} \meta{property list} \Arg{key} \meta{token list variable} +\cs{propPop} \meta{property list} \Arg{key} \meta{token list variable} \end{syntax} Recovers the \meta{value} stored with \meta{key} from the \meta{property list}, and places this in the \meta{token list variable}. @@ -6696,18 +6696,18 @@ to the special marker \cs{qNoValue}. The \meta{key} and \meta{value} are then deleted from the property list. The assignment of the \meta{token list variable} is local. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropPop \lTmpaProp {key2} \lTmpaTl -Pop: \TlUse \lTmpaTl. -Count: \PropVarCount \lTmpaProp. +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propPop \lTmpaProp {key2} \lTmpaTl +Pop: \tlUse \lTmpaTl. +Count: \propVarCount \lTmpaProp. \end{demohigh} \end{function} -\begin{function}{\PropPopT,\PropPopF,\PropPopTF} +\begin{function}{\propPopT,\propPopF,\propPopTF} \begin{syntax} -\cs{PropPopT} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} -\cs{PropPopF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{false code} -\cs{PropPopTF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} \Arg{false code} +\cs{propPopT} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} +\cs{propPopF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{false code} +\cs{propPopTF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} \Arg{false code} \end{syntax} If the \meta{key} is not present in the \meta{property list}, leaves the \meta{false code} in the input stream. The value of the @@ -6717,8 +6717,8 @@ the \meta{property list}, pops the corresponding \meta{value} in the \meta{token list variable}, \emph{i.e.} removes the item from The \meta{token list variable} is assigned locally. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} -\PropPopTF \lTmpaProp {key2} \lTmpaTl {\Return{Yes}} {\Return{No}} +\propSetFromKeyval \lTmpaProp {key1=one,key2=two,key3=three} +\propPopTF \lTmpaProp {key2} \lTmpaTl {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} @@ -6728,9 +6728,9 @@ The \meta{token list variable} is assigned locally. %local assignments made by the \meta{function} or \meta{code} discussed %below remain in effect after the loop. -%\begin{function}{\PropVarMapFunction} +%\begin{function}{\propVarMapFunction} %\begin{syntax} -%\cs{PropVarMapFunction} \meta{property list} \meta{function} +%\cs{propVarMapFunction} \meta{property list} \meta{function} %\end{syntax} %Applies \meta{function} to every \meta{entry} stored in the %\meta{property list}. The \meta{function} receives two arguments for @@ -6741,9 +6741,9 @@ The \meta{token list variable} is assigned locally. %\cs{prop_map_tokens:Nn}. %\end{function} -\begin{function}{\PropVarMapInline} +\begin{function}{\propVarMapInline} \begin{syntax} -\cs{PropVarMapInline} \meta{property list} \Arg{inline function} +\cs{propVarMapInline} \meta{property list} \Arg{inline function} \end{syntax} Applies \meta{inline function} to every \meta{entry} stored within the \meta{property list}. The \meta{inline function} should @@ -6753,36 +6753,36 @@ The order in which \meta{entries} are returned is not defined and should not be relied upon. \begin{demohigh} \IgnoreSpacesOn -\PropSetFromKeyval \lTmpkProp {key1=one,key2=two,key3=three} -\TlClear \lTmpaTl -\PropVarMapInline \lTmpkProp { - \TlPutRight \lTmpaTl {(#1=#2)} +\propSetFromKeyval \lTmpkProp {key1=one,key2=two,key3=three} +\tlClear \lTmpaTl +\propVarMapInline \lTmpkProp { + \tlPutRight \lTmpaTl {(#1=#2)} } -\TlUse \lTmpaTl +\tlUse \lTmpaTl \IgnoreSpacesOff \end{demohigh} \end{function} -%\begin{function}{\PropVarMapTokens} +%\begin{function}{\propVarMapTokens} %\begin{syntax} -%\cs{PropVarMapTokens} \meta{property list} \Arg{code} +%\cs{propVarMapTokens} \meta{property list} \Arg{code} %\end{syntax} -%Analogue of \cs{PropVarMapFunction} which maps several tokens +%Analogue of \cs{propVarMapFunction} which maps several tokens %instead of a single function. The \meta{code} receives each %key--value pair in the \meta{property list} as two trailing brace %groups. For instance, %\begin{verbatim} -%\PropVarMapTokens \lMyProp { \StrIfEqT { mykey } } +%\propVarMapTokens \lMyProp { \strIfEqT { mykey } } %\end{verbatim} %expands to the value corresponding to \texttt{mykey}: for each -%pair in \verb|\lMyProp| the function \cs{StrIfEqT} receives +%pair in \verb|\lMyProp| the function \cs{strIfEqT} receives %\texttt{mykey}, the \meta{key} and the \meta{value} as its three -%arguments. For that specific task, \cs{PropVarItem} is faster. +%arguments. For that specific task, \cs{propVarItem} is faster. %\end{function} -%\begin{function}{\PropMapBreak} +%\begin{function}{\propMapBreak} %\begin{syntax} -%\cs{PropMapBreak} +%\cs{propMapBreak} %\end{syntax} %Used to terminate a prop map function before all %entries in the \meta{property list} have been processed. This @@ -6807,9 +6807,9 @@ should not be relied upon. %\end{texnote} %\end{function} -%\begin{function}{\PropMapBreakDo} +%\begin{function}{\propMapBreakDo} %\begin{syntax} -%\cs{PropMapBreakDo} \Arg{code} +%\cs{propMapBreakDo} \Arg{code} %\end{syntax} %Used to terminate a prop map function before all %entries in the \meta{property list} have been processed, inserting @@ -6837,54 +6837,54 @@ should not be relied upon. \section{Property List Conditionals} -\begin{function}{\PropIfExist,\PropIfExistT,\PropIfExistF,\PropIfExistTF} +\begin{function}{\propIfExist,\propIfExistT,\propIfExistF,\propIfExistTF} \begin{syntax} -\cs{PropIfExist} \meta{property list} -\cs{PropIfExistT} \meta{property list} \Arg{true code} -\cs{PropIfExistF} \meta{property list} \Arg{false code} -\cs{PropIfExistTF} \meta{property list} \Arg{true code} \Arg{false code} +\cs{propIfExist} \meta{property list} +\cs{propIfExistT} \meta{property list} \Arg{true code} +\cs{propIfExistF} \meta{property list} \Arg{false code} +\cs{propIfExistTF} \meta{property list} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{property list} is currently defined. This does not check that the \meta{property list} really is a property list variable. \begin{demohigh} -\PropIfExistTF \lTmpaProp {\Return{Yes}} {\Return{No}} -\PropIfExistTF \lFooUndefinedProp {\Return{Yes}} {\Return{No}} +\propIfExistTF \lTmpaProp {\prgReturn{Yes}} {\prgReturn{No}} +\propIfExistTF \lFooUndefinedProp {\prgReturn{Yes}} {\prgReturn{No}} \end{demohigh} \end{function} -\begin{function}{\PropVarIfEmpty,\PropVarIfEmptyT,\PropVarIfEmptyF,\PropVarIfEmptyTF} +\begin{function}{\propVarIfEmpty,\propVarIfEmptyT,\propVarIfEmptyF,\propVarIfEmptyTF} \begin{syntax} -\cs{PropVarIfEmpty} \meta{property list} -\cs{PropVarIfEmptyT} \meta{property list} \Arg{true code} -\cs{PropVarIfEmptyF} \meta{property list} \Arg{false code} -\cs{PropVarIfEmptyTF} \meta{property list} \Arg{true code} \Arg{false code} +\cs{propVarIfEmpty} \meta{property list} +\cs{propVarIfEmptyT} \meta{property list} \Arg{true code} +\cs{propVarIfEmptyF} \meta{property list} \Arg{false code} +\cs{propVarIfEmptyTF} \meta{property list} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{property list} is empty (containing no entries). \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} -\PropVarIfEmptyTF \lTmpaProp {\Return{Empty}} {\Return{NonEmpty}} -\PropClear \lTmpaProp -\PropVarIfEmptyTF \lTmpaProp {\Return{Empty}} {\Return{NonEmpty}} +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propVarIfEmptyTF \lTmpaProp {\prgReturn{Empty}} {\prgReturn{NonEmpty}} +\propClear \lTmpaProp +\propVarIfEmptyTF \lTmpaProp {\prgReturn{Empty}} {\prgReturn{NonEmpty}} \end{demohigh} \end{function} -\begin{function}{\PropVarIfIn,\PropVarIfInT,\PropVarIfInF,\PropVarIfInTF} +\begin{function}{\propVarIfIn,\propVarIfInT,\propVarIfInF,\propVarIfInTF} \begin{syntax} -\cs{PropVarIfIn} \meta{property list} \Arg{key} -\cs{PropVarIfInT} \meta{property list} \Arg{key} \Arg{true code} -\cs{PropVarIfInF} \meta{property list} \Arg{key} \Arg{false code} -\cs{PropVarIfInTF} \meta{property list} \Arg{key} \Arg{true code} \Arg{false code} +\cs{propVarIfIn} \meta{property list} \Arg{key} +\cs{propVarIfInT} \meta{property list} \Arg{key} \Arg{true code} +\cs{propVarIfInF} \meta{property list} \Arg{key} \Arg{false code} +\cs{propVarIfInTF} \meta{property list} \Arg{key} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{key} is present in the \meta{property list}, -making the comparison using the method described by \cs{StrIfEqTF}. +making the comparison using the method described by \cs{strIfEqTF}. \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} -\PropVarIfInTF \lTmpaProp {key1} {\Return{Yes}} {\Return{Not}} -\PropVarIfInTF \lTmpaProp {key3} {\Return{Yes}} {\Return{Not}} +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propVarIfInTF \lTmpaProp {key1} {\prgReturn{Yes}} {\prgReturn{Not}} +\propVarIfInTF \lTmpaProp {key3} {\prgReturn{Yes}} {\prgReturn{Not}} \end{demohigh} %\begin{texnote} %This function iterates through every key--value pair in the -%\meta{property list} and is therefore slower than using \cs{PropGetTF}. +%\meta{property list} and is therefore slower than using \cs{propGetTF}. %\end{texnote} \end{function} @@ -6903,16 +6903,16 @@ Let us give a few examples. The following example replace the first occurrence of \enquote{\texttt{at}} with \enquote{\texttt{is}} in the token list variable \cs{lTmpaTl}. \begin{demohigh} -\TlSet \lTmpaTl {That cat.} -\RegexReplaceOnce {at} {is} \lTmpaTl -\TlUse \lTmpaTl +\tlSet \lTmpaTl {That cat.} +\regexReplaceOnce {at} {is} \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} A more complicated example is a pattern to emphasize each word and add a comma after it: \begin{demohigh} -\TlSet \lTmpaTl {That cat.} -\RegexReplaceAll {\w+} {\c{underline} \cB\{ \0 \cE\} ,} \lTmpaTl -\TlUse \lTmpaTl +\tlSet \lTmpaTl {That cat.} +\regexReplaceAll {\w+} {\c{underline} \cB\{ \0 \cE\} ,} \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} The |\w| sequence represents any \enquote{word} character, and |+| indicates that the |\w| sequence should be repeated as many times as @@ -6923,10 +6923,10 @@ and its argument |\0| is put between braces |\cB\{| and |\cE\}|. If a regular expression is to be used several times, it can be compiled once, and stored in a regex -variable using \cs{RegexSet}. For example, +variable using \cs{regexSet}. For example, \begin{codehigh} -\RegexNew \lFooRegex -\RegexSet \lFooRegex {\c{begin} \cB. (\c[^BE].*) \cE.} +\regexNew \lFooRegex +\regexSet \lFooRegex {\c{begin} \cB. (\c[^BE].*) \cE.} \end{codehigh} stores in \cs{lFooRegex} a regular expression which matches the starting marker for an environment: \cs[no-index]{begin}, followed by a @@ -6961,47 +6961,47 @@ However, they may be overwritten by other non-kernel code and so should only be used for short-term storage. \end{variable} -\begin{function}{\RegexNew} +\begin{function}{\regexNew} \begin{syntax} -\cs{RegexNew} \meta{regex var} +\cs{regexNew} \meta{regex var} \end{syntax} Creates a new \meta{regex var} or raises an error if the name is already taken. The declaration is global. The \meta{regex var} is initially such that it never matches. \end{function} -\begin{function}{\RegexSet} +\begin{function}{\regexSet} \begin{syntax} -\cs{RegexSet} \meta{regex var} \Arg{regex} +\cs{regexSet} \meta{regex var} \Arg{regex} \end{syntax} Stores a compiled version of the \meta{regular expression} in the \meta{regex var}. For instance, this function can be used as \begin{codehigh} -\RegexNew \lMyRegex -\RegexSet \lMyRegex {my\ (simple\ )? reg(ex|ular\ expression)} +\regexNew \lMyRegex +\regexSet \lMyRegex {my\ (simple\ )? reg(ex|ular\ expression)} \end{codehigh} \end{function} -\begin{function}{\RegexConst} +\begin{function}{\regexConst} \begin{syntax} -\cs{RegexConst} \meta{regex var} \Arg{regex} +\cs{regexConst} \meta{regex var} \Arg{regex} \end{syntax} Creates a new constant \meta{regex var} or raises an error if the name is already taken. The value of the \meta{regex var} is set globally to the compiled version of the \meta{regular expression}. \end{function} -\begin{function}{\RegexLog,\RegexVarLog,\RegexShow,\RegexVarShow} +\begin{function}{\regexLog,\regexVarLog,\regexShow,\regexVarShow} \begin{syntax} -\cs{RegexLog} \Arg{regex} -\cs{RegexVarLog} \meta{regex var} -\cs{RegexShow} \Arg{regex} -\cs{RegexVarShow} \meta{regex var} +\cs{regexLog} \Arg{regex} +\cs{regexVarLog} \meta{regex var} +\cs{regexShow} \Arg{regex} +\cs{regexVarShow} \meta{regex var} \end{syntax} Displays in the terminal or writes in the log file (respectively) how \pkg{l3regex} interprets the \meta{regex}. For instance, -\cs{RegexShow} \verb+{\A X|Y}+ shows +\cs{regexShow} \verb+{\A X|Y}+ shows \begin{codehigh} +-branch anchor at start (\A) @@ -7015,35 +7015,35 @@ the second branch is not anchored to the beginning of the match. \section{Regular Expression Matching} -\begin{function}{\RegexMatch,\RegexMatchT,\RegexMatchF,\RegexMatchTF} +\begin{function}{\regexMatch,\regexMatchT,\regexMatchF,\regexMatchTF} \begin{syntax} -\cs{RegexMatch} \Arg{regex} \Arg{token list} -\cs{RegexMatchT} \Arg{regex} \Arg{token list} \Arg{true code} -\cs{RegexMatchF} \Arg{regex} \Arg{token list} \Arg{false code} -\cs{RegexMatchTF} \Arg{regex} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{regexMatch} \Arg{regex} \Arg{token list} +\cs{regexMatchT} \Arg{regex} \Arg{token list} \Arg{true code} +\cs{regexMatchF} \Arg{regex} \Arg{token list} \Arg{false code} +\cs{regexMatchTF} \Arg{regex} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{regular expression} matches any part of the \meta{token list}. For instance, \begin{demohigh} -\RegexMatchTF {b [cde]*} {abecdcx} {\Print{True}} {\Print{False}} -\RegexMatchTF {[b-dq-w]} {example} {\Print{True}} {\Print{False}} +\regexMatchTF {b [cde]*} {abecdcx} {\prgPrint{True}} {\prgPrint{False}} +\regexMatchTF {[b-dq-w]} {example} {\prgPrint{True}} {\prgPrint{False}} \end{demohigh} \end{function} -\begin{function}{\RegexVarMatch,\RegexVarMatchT,\RegexVarMatchF,\RegexVarMatchTF} +\begin{function}{\regexVarMatch,\regexVarMatchT,\regexVarMatchF,\regexVarMatchTF} \begin{syntax} -\cs{RegexVarMatch} \meta{regex var} \Arg{token list} -\cs{RegexVarMatchT} \meta{regex var} \Arg{token list} \Arg{true code} -\cs{RegexVarMatchF} \meta{regex var} \Arg{token list} \Arg{false code} -\cs{RegexVarMatchTF} \meta{regex var} \Arg{token list} \Arg{true code} \Arg{false code} +\cs{regexVarMatch} \meta{regex var} \Arg{token list} +\cs{regexVarMatchT} \meta{regex var} \Arg{token list} \Arg{true code} +\cs{regexVarMatchF} \meta{regex var} \Arg{token list} \Arg{false code} +\cs{regexVarMatchTF} \meta{regex var} \Arg{token list} \Arg{true code} \Arg{false code} \end{syntax} Tests whether the \meta{regex var} matches any part of the \meta{token list}. \end{function} -\begin{function}{\RegexCount,\RegexVarCount} +\begin{function}{\regexCount,\regexVarCount} \begin{syntax} -\cs{RegexCount} \Arg{regex} \Arg{token list} \meta{int var} -\cs{RegexVarCount} \meta{regex var} \Arg{token list} \meta{int var} +\cs{regexCount} \Arg{regex} \Arg{token list} \meta{int var} +\cs{regexVarCount} \meta{regex var} \Arg{token list} \meta{int var} \end{syntax} Sets \meta{int var} within the current \TeX{} group level equal to the number of times @@ -7056,15 +7056,15 @@ Infinite loops are prevented in the case where the regular expression can match an empty token list: then we count one match between each pair of characters. For instance, \begin{demohigh} -\IntNew \lFooInt -\RegexCount {(b+|c)} {abbababcbb} \lFooInt -\IntUse \lFooInt +\intNew \lFooInt +\regexCount {(b+|c)} {abbababcbb} \lFooInt +\intUse \lFooInt \end{demohigh} \end{function} -\begin{function}{\RegexMatchCase} +\begin{function}{\regexMatchCase} \begin{syntax} -\cs{RegexMatchCase} +\cs{regexMatchCase} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{code case_2} @@ -7086,14 +7086,14 @@ discarded, while if none of the \meta{regex} match at a given position then the next starting position is attempted. If none of the \meta{regex} match anywhere in the \meta{token list} then nothing is left in the input stream. Note that this differs from -nested \cs{RegexMatch} statements since all \meta{regex} are +nested \cs{regexMatch} statements since all \meta{regex} are attempted at each position rather than attempting to match \meta{regex_1} at every position before moving on to \meta{regex_2}. \end{function} -\begin{function}{\RegexMatchCaseT} +\begin{function}{\regexMatchCaseT} \begin{syntax} -\cs{RegexMatchCaseT} +\cs{regexMatchCaseT} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{code case_2} @@ -7111,9 +7111,9 @@ discarded. Each \meta{regex} can either be given as a regex variable or as an explicit regular expression. \end{function} -\begin{function}{\RegexMatchCaseF} +\begin{function}{\regexMatchCaseF} \begin{syntax} -\cs{RegexMatchCaseF} +\cs{regexMatchCaseF} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{code case_2} @@ -7132,9 +7132,9 @@ is left in the input stream. Each \meta{regex} can either be given as a regex variable or as an explicit regular expression. \end{function} -\begin{function}{\RegexMatchCaseTF} +\begin{function}{\regexMatchCaseTF} \begin{syntax} -\cs{RegexMatchCaseTF} +\cs{regexMatchCaseTF} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{code case_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{code case_2} @@ -7155,12 +7155,12 @@ as a regex variable or as an explicit regular expression. \section{Regular Expression Submatch Extraction} -\begin{function}{\RegexExtractOnce,\RegexExtractOnceT,\RegexExtractOnceF,\RegexExtractOnceTF} +\begin{function}{\regexExtractOnce,\regexExtractOnceT,\regexExtractOnceF,\regexExtractOnceTF} \begin{syntax} -\cs{RegexExtractOnce} \Arg{regex} \Arg{token list} \meta{seq var} -\cs{RegexExtractOnceT} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} -\cs{RegexExtractOnceF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{false code} -\cs{RegexExtractOnceTF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} +\cs{regexExtractOnce} \Arg{regex} \Arg{token list} \meta{seq var} +\cs{regexExtractOnceT} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} +\cs{regexExtractOnceF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{false code} +\cs{regexExtractOnceTF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} \end{syntax} Finds the first match of the \meta{regular expression} in the \meta{token list}. If it exists, the match is stored as the first @@ -7173,7 +7173,7 @@ capturing groups, in the order of their opening parenthesis. The \par For instance, assume that you type \begin{codehigh} -\RegexExtractOnce {\A(La)?TeX(!*)\Z} {LaTeX!!!} \lTmpaSeq +\regexExtractOnce {\A(La)?TeX(!*)\Z} {LaTeX!!!} \lTmpaSeq \end{codehigh} Then the regular expression (anchored at the start with |\A| and at the end with |\Z|) must match the whole token list. The first @@ -7181,16 +7181,16 @@ capturing group, |(La)?|, matches |La|, and the second capturing group, |(!*)|, matches |!!!|. Thus, \cs{lTmpaSeq} contains as a result the items |{LaTeX!!!}|, |{La}|, and |{!!!}|. Note that the $n$-th item of \cs{lTmpaSeq}, as obtained using -\cs{SeqVarItem}, correspond to the submatch numbered $(n-1)$ in -functions such as \cs{RegexReplaceOnce}. +\cs{seqVarItem}, correspond to the submatch numbered $(n-1)$ in +functions such as \cs{regexReplaceOnce}. \end{function} -\begin{function}{\RegexVarExtractOnce,\RegexVarExtractOnceT,\RegexVarExtractOnceF,\RegexVarExtractOnceTF} +\begin{function}{\regexVarExtractOnce,\regexVarExtractOnceT,\regexVarExtractOnceF,\regexVarExtractOnceTF} \begin{syntax} -\cs{RegexVarExtractOnce} \meta{regex var} \Arg{token list} \meta{seq var} -\cs{RegexVarExtractOnceT} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} -\cs{RegexVarExtractOnceF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{false code} -\cs{RegexVarExtractOnceTF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} +\cs{regexVarExtractOnce} \meta{regex var} \Arg{token list} \meta{seq var} +\cs{regexVarExtractOnceT} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} +\cs{regexVarExtractOnceF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{false code} +\cs{regexVarExtractOnceTF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} \end{syntax} Finds the first match of the \meta{regex var} in the \meta{token list}. If it exists, the match is stored as the first @@ -7202,52 +7202,52 @@ capturing groups, in the order of their opening parenthesis. The \meta{false code} otherwise. \end{function} -\begin{function}{\RegexExtractAll,\RegexExtractAllT,\RegexExtractAllF,\RegexExtractAllTF} +\begin{function}{\regexExtractAll,\regexExtractAllT,\regexExtractAllF,\regexExtractAllTF} \begin{syntax} -\cs{RegexExtractAll} \Arg{regex} \Arg{token list} \meta{seq var} -\cs{RegexExtractAllT} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} -\cs{RegexExtractAllF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{false code} -\cs{RegexExtractAllTF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} +\cs{regexExtractAll} \Arg{regex} \Arg{token list} \meta{seq var} +\cs{regexExtractAllT} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} +\cs{regexExtractAllF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{false code} +\cs{regexExtractAllTF} \Arg{regex} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} \end{syntax} Finds all matches of the \meta{regular expression} in the \meta{token list}, and stores all the submatch information in a single sequence (concatenating the results of -multiple \cs{RegexExtractOnce} calls). +multiple \cs{regexExtractOnce} calls). The \meta{seq var} is assigned locally. If there is no match, the \meta{seq var} is cleared. The testing versions insert the \meta{true code} into the input stream if a match was found, and the \meta{false code} otherwise. For instance, assume that you type \begin{codehigh} -\RegexExtractAll {\w+} {Hello, world!} \lTmpaSeq +\regexExtractAll {\w+} {Hello, world!} \lTmpaSeq \end{codehigh} Then the regular expression matches twice, the resulting sequence contains the two items |{Hello}| and |{world}|. \end{function} -\begin{function}{\RegexVarExtractAll,\RegexVarExtractAllT,\RegexVarExtractAllF,\RegexVarExtractAllTF} +\begin{function}{\regexVarExtractAll,\regexVarExtractAllT,\regexVarExtractAllF,\regexVarExtractAllTF} \begin{syntax} -\cs{RegexVarExtractAll} \meta{regex var} \Arg{token list} \meta{seq var} -\cs{RegexVarExtractAllT} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} -\cs{RegexVarExtractAllF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{false code} -\cs{RegexVarExtractAllTF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} +\cs{regexVarExtractAll} \meta{regex var} \Arg{token list} \meta{seq var} +\cs{regexVarExtractAllT} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} +\cs{regexVarExtractAllF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{false code} +\cs{regexVarExtractAllTF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} \end{syntax} Finds all matches of the \meta{regex var} in the \meta{token list}, and stores all the submatch information in a single sequence (concatenating the results of -multiple \cs{RegexVarExtractOnce} calls). +multiple \cs{regexVarExtractOnce} calls). The \meta{seq var} is assigned locally. If there is no match, the \meta{seq var} is cleared. The testing versions insert the \meta{true code} into the input stream if a match was found, and the \meta{false code} otherwise. \end{function} -\begin{function}{\RegexSplit,\RegexSplitT,\RegexSplitF,\RegexSplitTF} +\begin{function}{\regexSplit,\regexSplitT,\regexSplitF,\regexSplitTF} \begin{syntax} -\cs{RegexSplit} \Arg{regular expression} \Arg{token list} \meta{seq var} -\cs{RegexSplitT} \Arg{regular expression} \Arg{token list} \meta{seq var} \Arg{true code} -\cs{RegexSplitF} \Arg{regular expression} \Arg{token list} \meta{seq var} \Arg{false code} -\cs{RegexSplitTF} \Arg{regular expression} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} +\cs{regexSplit} \Arg{regular expression} \Arg{token list} \meta{seq var} +\cs{regexSplitT} \Arg{regular expression} \Arg{token list} \meta{seq var} \Arg{true code} +\cs{regexSplitF} \Arg{regular expression} \Arg{token list} \meta{seq var} \Arg{false code} +\cs{regexSplitTF} \Arg{regular expression} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} \end{syntax} Splits the \meta{token list} into a sequence of parts, delimited by matches of the \meta{regular expression}. If the \meta{regular expression} @@ -7261,19 +7261,19 @@ The testing versions insert the \meta{true code} into the input stream if a match was found, and the \meta{false code} otherwise. For example, after \begin{codehigh} -\SeqNew \lPathSeq -\RegexSplit {/} {the/path/for/this/file.tex} \lPathSeq +\seqNew \lPathSeq +\regexSplit {/} {the/path/for/this/file.tex} \lPathSeq \end{codehigh} the sequence |\lPathSeq| contains the items |{the}|, |{path}|, |{for}|, |{this}|, and |{file.tex}|. \end{function} -\begin{function}{\RegexVarSplit,\RegexVarSplitT,\RegexVarSplitF,\RegexVarSplitTF} +\begin{function}{\regexVarSplit,\regexVarSplitT,\regexVarSplitF,\regexVarSplitTF} \begin{syntax} -\cs{RegexVarSplit} \meta{regex var} \Arg{token list} \meta{seq var} -\cs{RegexVarSplitT} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} -\cs{RegexVarSplitF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{false code} -\cs{RegexVarSplitTF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} +\cs{regexVarSplit} \meta{regex var} \Arg{token list} \meta{seq var} +\cs{regexVarSplitT} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} +\cs{regexVarSplitF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{false code} +\cs{regexVarSplitTF} \meta{regex var} \Arg{token list} \meta{seq var} \Arg{true code} \Arg{false code} \end{syntax} Splits the \meta{token list} into a sequence of parts, delimited by matches of the \meta{regular expression}. If the \meta{regex var} @@ -7289,12 +7289,12 @@ stream if a match was found, and the \meta{false code} otherwise. \section{Regular Expression Replacement} -\begin{function}{\RegexReplaceOnce,\RegexReplaceOnceT,\RegexReplaceOnceT,\RegexReplaceOnceTF} +\begin{function}{\regexReplaceOnce,\regexReplaceOnceT,\regexReplaceOnceT,\regexReplaceOnceTF} \begin{syntax} -\cs{RegexReplaceOnce} \Arg{regular expression} \Arg{replacement} \meta{tl var} -\cs{RegexReplaceOnceT} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} -\cs{RegexReplaceOnceF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{false code} -\cs{RegexReplaceOnceTF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} +\cs{regexReplaceOnce} \Arg{regular expression} \Arg{replacement} \meta{tl var} +\cs{regexReplaceOnceT} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} +\cs{regexReplaceOnceF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{false code} +\cs{regexReplaceOnceTF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} \end{syntax} Searches for the \meta{regular expression} in the contents of the \meta{tl var} and replaces the first match with the @@ -7304,12 +7304,12 @@ first capturing group, |\2| of the second, \emph{etc.} The result is assigned locally to \meta{tl var}. \end{function} -\begin{function}{\RegexReplaceOnce,\RegexReplaceOnceT,\RegexReplaceOnceT,\RegexReplaceOnceTF} +\begin{function}{\regexReplaceOnce,\regexReplaceOnceT,\regexReplaceOnceT,\regexReplaceOnceTF} \begin{syntax} -\cs{RegexVarReplaceOnce} \meta{regex var} \Arg{replacement} \meta{tl var} -\cs{RegexVarReplaceOnceT} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} -\cs{RegexVarReplaceOnceF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{false code} -\cs{RegexVarReplaceOnceTF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} +\cs{regexVarReplaceOnce} \meta{regex var} \Arg{replacement} \meta{tl var} +\cs{regexVarReplaceOnceT} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} +\cs{regexVarReplaceOnceF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{false code} +\cs{regexVarReplaceOnceTF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} \end{syntax} Searches for the \meta{regex var} in the contents of the \meta{tl var} and replaces the first match with the @@ -7319,12 +7319,12 @@ first capturing group, |\2| of the second, \emph{etc.} The result is assigned locally to \meta{tl var}. \end{function} -\begin{function}{\RegexReplaceAll,\RegexReplaceAllT,\RegexReplaceAllF,\RegexReplaceAllTF} +\begin{function}{\regexReplaceAll,\regexReplaceAllT,\regexReplaceAllF,\regexReplaceAllTF} \begin{syntax} -\cs{RegexReplaceAll} \Arg{regular expression} \Arg{replacement} \meta{tl var} -\cs{RegexReplaceAllT} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} -\cs{RegexReplaceAllF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{false code} -\cs{RegexReplaceAllTF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} +\cs{regexReplaceAll} \Arg{regular expression} \Arg{replacement} \meta{tl var} +\cs{regexReplaceAllT} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} +\cs{regexReplaceAllF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{false code} +\cs{regexReplaceAllTF} \Arg{regular expression} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} \end{syntax} Replaces all occurrences of the \meta{regex var} in the contents of the \meta{tl var} @@ -7335,12 +7335,12 @@ independently, and matches cannot overlap. The result is assigned locally to \meta{tl~var}. \end{function} -\begin{function}{\RegexVarReplaceAll,\RegexVarReplaceAllT,\RegexVarReplaceAllF,\RegexVarReplaceAllTF} +\begin{function}{\regexVarReplaceAll,\regexVarReplaceAllT,\regexVarReplaceAllF,\regexVarReplaceAllTF} \begin{syntax} -\cs{RegexVarReplaceAll} \meta{regex var} \Arg{replacement} \meta{tl var} -\cs{RegexVarReplaceAllT} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} -\cs{RegexVarReplaceAllF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{false code} -\cs{RegexVarReplaceAllTF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} +\cs{regexVarReplaceAll} \meta{regex var} \Arg{replacement} \meta{tl var} +\cs{regexVarReplaceAllT} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} +\cs{regexVarReplaceAllF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{false code} +\cs{regexVarReplaceAllTF} \meta{regex var} \Arg{replacement} \meta{tl var} \Arg{true code} \Arg{false code} \end{syntax} Replaces all occurrences of the \meta{regular expression} in the contents of the \meta{tl var} @@ -7351,9 +7351,9 @@ independently, and matches cannot overlap. The result is assigned locally to \meta{tl var}. \end{function} -\begin{function}{\RegexReplaceCaseOnce} +\begin{function}{\regexReplaceCaseOnce} \begin{syntax} -\cs{RegexReplaceCaseOnce} +\cs{regexReplaceCaseOnce} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7371,14 +7371,14 @@ variable or as an explicit regular expression. In detail, for each starting position in the \meta{token list}, each of the \meta{regex} is searched in turn. If one of them matches then it is replaced by the corresponding \meta{replacement} as -described for \cs{RegexReplaceOnce}. This is equivalent to -checking with \cs{RegexMatchCase} which \meta{regex} matches, -then performing the replacement with \cs{RegexReplaceOnce}. +described for \cs{regexReplaceOnce}. This is equivalent to +checking with \cs{regexMatchCase} which \meta{regex} matches, +then performing the replacement with \cs{regexReplaceOnce}. \end{function} -\begin{function}{\RegexReplaceCaseOnceT} +\begin{function}{\regexReplaceCaseOnceT} \begin{syntax} -\cs{RegexReplaceCaseOnceT} +\cs{regexReplaceCaseOnceT} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7396,9 +7396,9 @@ input stream. If none of the \meta{regex} match, then the variable or as an explicit regular expression. \end{function} -\begin{function}{\RegexReplaceCaseOnceF} +\begin{function}{\regexReplaceCaseOnceF} \begin{syntax} -\cs{RegexReplaceCaseOnceF} +\cs{regexReplaceCaseOnceF} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7416,9 +7416,9 @@ the input stream. Each \meta{regex} can either be given as a regex variable or as an explicit regular expression. \end{function} -\begin{function}{\RegexReplaceCaseOnceTF} +\begin{function}{\regexReplaceCaseOnceTF} \begin{syntax} -\cs{RegexReplaceCaseOnceTF} +\cs{regexReplaceCaseOnceTF} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7437,9 +7437,9 @@ the input stream. Each \meta{regex} can either be given as a regex variable or as an explicit regular expression. \end{function} -\begin{function}{\RegexReplaceCaseAll} +\begin{function}{\regexReplaceCaseAll} \begin{syntax} -\cs{RegexReplaceCaseAll} +\cs{regexReplaceCaseAll} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7459,8 +7459,8 @@ search resumes at the position that follows this match (and replacement). For instance %% FIXME %\begin{codehigh} -%\TlSet \lTmpaTl {Hello, world!} -%\RegexReplaceCaseAll +%\tlSet \lTmpaTl {Hello, world!} +%\regexReplaceCaseAll % { % {[A-Za-z]+} {``\0''} % {\b} {---} @@ -7468,8 +7468,8 @@ replacement). For instance % } \lTmpaTl %\end{codehigh} \begin{codehigh} -\TlSet \lTmpaTl {Hello, world!} -\RegexReplaceCaseAll +\tlSet \lTmpaTl {Hello, world!} +\regexReplaceCaseAll { {[A-Za-z]+} {``\0''} {\b} {---} @@ -7481,12 +7481,12 @@ results in \cs{lTmpaTl} having the contents the word-boundary assertion |\b| did not match at the start of words because the case |[A-Za-z]+| matched at these positions. To change this, one could simply swap the order of the two cases in the -argument of \cs{RegexReplaceCaseAll}. +argument of \cs{regexReplaceCaseAll}. \end{function} -\begin{function}{\RegexReplaceCaseAllT} +\begin{function}{\regexReplaceCaseAllT} \begin{syntax} -\cs{RegexReplaceCaseAllT} +\cs{regexReplaceCaseAllT} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7502,9 +7502,9 @@ assigned locally to \meta{tl var}, and the \meta{true code} is left in the input stream if any replacement was made. \end{function} -\begin{function}{\RegexReplaceCaseAllF} +\begin{function}{\regexReplaceCaseAllF} \begin{syntax} -\cs{RegexReplaceCaseAllF} +\cs{regexReplaceCaseAllF} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7520,9 +7520,9 @@ assigned locally to \meta{tl var}, and the \meta{false code} is left in the input stream if not any replacement was made. \end{function} -\begin{function}{\RegexReplaceCaseAllTF} +\begin{function}{\regexReplaceCaseAllTF} \begin{syntax} -\cs{RegexReplaceCaseAllTF} +\cs{regexReplaceCaseAllTF} ~ ~ |{| ~ ~ ~ ~ \Arg{regex_1} \Arg{replacement_1} ~ ~ ~ ~ \Arg{regex_2} \Arg{replacement_2} @@ -7544,7 +7544,7 @@ any replacement was made or not. \subsection{Regular Expression Examples} We start with a few examples, and encourage the reader to apply -\cs{RegexShow} to these regular expressions. +\cs{regexShow} to these regular expressions. \begin{itemize} \item |Cat| matches the word \enquote{Cat} capitalized in this way, but also matches the beginning of the word \enquote{Cattle}: use @@ -7583,9 +7583,9 @@ We start with a few examples, and encourage the reader to apply \item |\G.*?\K| at the beginning of a regular expression matches and discards (due to |\K|) everything between the end of the previous match (|\G|) and what is matched by the rest of the regular - expression; this is useful in \cs{RegexReplaceAll} when the + expression; this is useful in \cs{regexReplaceAll} when the goal is to extract matches or submatches in a finer way than with - \cs{RegexExtractAll}. + \cs{regexExtractAll}. \end{itemize} While it is impossible for a regular expression to match only integer expressions, \newline\verb*"[\+\-\(]*\d+\)*([\+\-*/][\+\-\(]*\d+\)*)*" matches among @@ -7735,19 +7735,19 @@ match. Parenthesized groups are labelled in the order of their opening parenthesis, starting at $1$. The contents of those groups corresponding to the \enquote{best} match (leftmost longest) can be extracted and stored in a sequence of token lists using for -instance \cs{RegexExtractOnceTF}. +instance \cs{regexExtractOnceTF}. The |\K| escape sequence resets the beginning of the match to the current position in the token list. This only affects what is reported as the full match. For instance, \begin{codehigh} -\RegexExtractAll {a \K .} {a123aaxyz} \lFooSeq +\regexExtractAll {a \K .} {a123aaxyz} \lFooSeq \end{codehigh} results in \cs{lFooSeq} containing the items |{1}| and |{a}|: the true matches are |{a1}| and |{aa}|, but they are trimmed by the use of |\K|. The |\K| command does not affect capturing groups: for instance, \begin{codehigh} -\RegexExtractOnce {(. \K c)+ \d} {acbc3} \lFooSeq +\regexExtractOnce {(. \K c)+ \d} {acbc3} \lFooSeq \end{codehigh} results in \cs{lFooSeq} containing the items |{c3}| and |{bc}|: the true match is |{acbc3}|, with first submatch |{bc}|, but |\K| resets @@ -7832,8 +7832,8 @@ get the latter effect, it is simplest to use \TeX{}'s expansion machinery directly: if \cs{lTmpaTl} contains \verb"B|C" then the following two lines show the same result: \begin{codehigh} -\RegexShow {A \u{lTmpaTl} D} -\RegexShow {A B | C D} +\regexShow {A \u{lTmpaTl} D} +\regexShow {A B | C D} \end{codehigh} \subsection{Miscellaneous} @@ -7851,7 +7851,7 @@ Anchors and simple assertions. End of the subject token list. \item[\\G] Start of the current match. This is only different from |^| in the case of multiple matches: for instance - |\RegexCount {\G a} {aaba} \lTmpaInt| yields $2$, but + |\regexCount {\G a} {aaba} \lTmpaInt| yields $2$, but replacing |\G| by |^| would result in \cs{lTmpaInt} holding the value $1$. \end{l3regex-syntax} @@ -7895,9 +7895,9 @@ escaped with a backslash. For instance, \begin{demohigh} -\TlSet \lTmpaTl {Hello, world!} -\RegexReplaceAll {([er]?l|o) .} {(\0--\1)} \lTmpaTl -\TlUse \lTmpaTl +\tlSet \lTmpaTl {Hello, world!} +\regexReplaceAll {([er]?l|o) .} {(\0--\1)} \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} The submatches are numbered according to the order in which the @@ -7943,120 +7943,120 @@ extract the value of the control sequence and turn it into a string. Matches can also be used within the arguments of |\c| and |\u|. For instance, \begin{demohigh} -\TlSet \lMyOneTl {first} -\TlSet \lMyTwoTl {\underline{second}} -\TlSet \lTmpaTl {One,Two,One,One} -\RegexReplaceAll {[^,]+} {\u{lMy\0Tl}} \lTmpaTl -\TlUse \lTmpaTl +\tlSet \lMyOneTl {first} +\tlSet \lMyTwoTl {\underline{second}} +\tlSet \lTmpaTl {One,Two,One,One} +\regexReplaceAll {[^,]+} {\u{lMy\0Tl}} \lTmpaTl +\tlUse \lTmpaTl \end{demohigh} Regex replacement is also a convenient way to produce token lists with arbitrary category codes. For instance \begin{codehigh} -\TlClear \lTmpaTl -\RegexReplaceAll { } {\cU\% \cA\~} \lTmpaTl +\tlClear \lTmpaTl +\regexReplaceAll { } {\cU\% \cA\~} \lTmpaTl \end{codehigh} results in \cs{lTmpaTl} containing the percent character with category code $7$ (superscript) and an active tilde character. \chapter{Token Manipulation (\texttt{Token})} -\begin{function}{\CharLowercase,\CharUppercase,\CharTitlecase,\CharFoldcase} +\begin{function}{\charLowercase,\charUppercase,\charTitlecase,\charFoldcase} \begin{syntax} -\cs{CharLowercase} \meta{char} -\cs{CharUppercase} \meta{char} -\cs{CharTitlecase} \meta{char} -\cs{CharFoldcase} \meta{char} +\cs{charLowercase} \meta{char} +\cs{charUppercase} \meta{char} +\cs{charTitlecase} \meta{char} +\cs{charFoldcase} \meta{char} \end{syntax} Converts the \meta{char} to the equivalent case-changed character -as detailed by the function name (see %\cs{StrFoldcase} and -\cs{TextTitlecase} for details of these terms). The case mapping -is carried out with no context-dependence (\emph{cf.} \cs{TextUppercase}, +as detailed by the function name (see %\cs{strFoldcase} and +\cs{textTitlecase} for details of these terms). The case mapping +is carried out with no context-dependence (\emph{cf.} \cs{textUppercase}, \emph{etc.}) These functions generate characters with the category code of the \meta{char} (i.e. only the character code changes). \end{function} -\begin{function}{\CharStrLowercase,\CharStrUppercase,\CharStrTitlecase,\CharStrFoldcase} +\begin{function}{\charStrLowercase,\charStrUppercase,\charStrTitlecase,\charStrFoldcase} \begin{syntax} -\cs{CharStrLowercase} \meta{char} -\cs{CharStrUppercase} \meta{char} -\cs{CharStrTitlecase} \meta{char} -\cs{CharStrFoldcase} \meta{char} +\cs{charStrLowercase} \meta{char} +\cs{charStrUppercase} \meta{char} +\cs{charStrTitlecase} \meta{char} +\cs{charStrFoldcase} \meta{char} \end{syntax} Converts the \meta{char} to the equivalent case-changed character -as detailed by the function name (see %\cs{StrFoldcase} and -\cs{TextTitlecase} for details of these terms). The case mapping -is carried out with no context-dependence (\emph{cf.} \cs{TextUppercase}, +as detailed by the function name (see %\cs{strFoldcase} and +\cs{textTitlecase} for details of these terms). The case mapping +is carried out with no context-dependence (\emph{cf.} \cs{textUppercase}, \emph{etc.}) These functions generate \enquote{other} (category code $12$) characters. \end{function} -\begin{function}{\CharSetLccode} +\begin{function}{\charSetLccode} \begin{syntax} -\cs{CharSetLccode} \Arg{intexpr_1} \Arg{intexpr_2} +\cs{charSetLccode} \Arg{intexpr_1} \Arg{intexpr_2} \end{syntax} Sets up the behaviour of the \meta{character} when -found inside \cs{TextLowercase}, such that \meta{character_1} +found inside \cs{textLowercase}, such that \meta{character_1} will be converted into \meta{character_2}. The two \meta{characters} may be specified using an \meta{integer expression} for the character code concerned. This may include the \TeX{} \verb|`|\meta{character} method for converting a single character into its character code: \begin{codehigh} -\CharSetLccode {`\A} {`\a} % Standard behaviour -\CharSetLccode {`\A} {`\A + 32} -\CharSetLccode {65} {97} +\charSetLccode {`\A} {`\a} % Standard behaviour +\charSetLccode {`\A} {`\A + 32} +\charSetLccode {65} {97} \end{codehigh} The setting applies within the current \TeX{} group. \end{function} -\begin{function}{\CharSetUccode} +\begin{function}{\charSetUccode} \begin{syntax} -\cs{CharSetUccode} \Arg{intexpr_1} \Arg{intexpr_2} +\cs{charSetUccode} \Arg{intexpr_1} \Arg{intexpr_2} \end{syntax} Sets up the behaviour of the \meta{character} when -found inside \cs{TextUppercase}, such that \meta{character_1} +found inside \cs{textUppercase}, such that \meta{character_1} will be converted into \meta{character_2}. The two \meta{characters} may be specified using an \meta{integer expression} for the character code concerned. This may include the \TeX{} \verb|`|\meta{character} method for converting a single character into its character code: \begin{codehigh} -\CharSetUccode {`\a} {`\A} % Standard behaviour -\CharSetUccode {`\a} {`\a - 32} -\CharSetUccode {97} {65} +\charSetUccode {`\a} {`\A} % Standard behaviour +\charSetUccode {`\a} {`\a - 32} +\charSetUccode {97} {65} \end{codehigh} The setting applies within the current \TeX{} group. \end{function} -\begin{function}{\CharValueLccode} +\begin{function}{\charValueLccode} \begin{syntax} -\cs{CharValueLccode} \Arg{integer expression} +\cs{charValueLccode} \Arg{integer expression} \end{syntax} Returns the current lower case code of the \meta{character} with character code given by the \meta{integer expression}. \end{function} -\begin{function}{\CharValueUccode} +\begin{function}{\charValueUccode} \begin{syntax} -\cs{CharValueUccode} \Arg{integer expression} +\cs{charValueUccode} \Arg{integer expression} \end{syntax} Returns the current upper case code of the \meta{character} with character code given by the \meta{integer expression}. \end{function} -%\begin{function}{\CharShowValueLccode} +%\begin{function}{\charShowValueLccode} %\begin{syntax} -%\cs{CharShowValueLccode} \Arg{integer expression} +%\cs{charShowValueLccode} \Arg{integer expression} %\end{syntax} %Displays the current lower case code of the \meta{character} with %character code given by the \meta{integer expression} on the %terminal. %\end{function} % -%\begin{function}{\CharShowValueUccode} +%\begin{function}{\charShowValueUccode} %\begin{syntax} -%\cs{CharShowValueUccode} \Arg{integer expression} +%\cs{charShowValueUccode} \Arg{integer expression} %\end{syntax} %Displays the current upper case code of the \meta{character} with %character code given by the \meta{integer expression} on the @@ -8089,12 +8089,12 @@ covered as the engine treats input outside of this range as east Asian. %Importantly, notice that these functions are intended for working with %user \emph{text for typesetting}. For case changing programmatic data see -%the \pkg{Str} module and discussion there of \cs{StrLowercase}, -%\cs{StrUppercase} and \cs{StrFoldcase}. +%the \pkg{Str} module and discussion there of \cs{strLowercase}, +%\cs{strUppercase} and \cs{strFoldcase}. -\begin{function}{\TextExpand} +\begin{function}{\textExpand} \begin{syntax} -\cs{TextExpand} \Arg{text} +\cs{textExpand} \Arg{text} \end{syntax} Takes user input \meta{text} and expands the content. Protected commands (typically formatting) are left in place, @@ -8106,14 +8106,14 @@ Commands which are neither engine- nor \LaTeX{} protected are expanded exhaustiv %\cs{l_text_accents_tl} and \cs{l_text_letterlike_tl} are excluded from expansion. \end{function} -\begin{function}{\TextLowercase,\TextUppercase,\TextTitlecase,\TextTitlecaseFirst} +\begin{function}{\textLowercase,\textUppercase,\textTitlecase,\textTitlecaseFirst} \begin{syntax} -\cs{TextLowercase} \Arg{tokens} -\cs{TextUppercase} \Arg{tokens} -\cs{TextTitlecase} \Arg{tokens} -\cs{TextTitlecaseFirst} \Arg{tokens} +\cs{textLowercase} \Arg{tokens} +\cs{textUppercase} \Arg{tokens} +\cs{textTitlecase} \Arg{tokens} +\cs{textTitlecaseFirst} \Arg{tokens} \end{syntax} -Takes user input \meta{text} first applies \cs{TextExpand}, then +Takes user input \meta{text} first applies \cs{textExpand}, then transforms the case of character tokens as specified by the function name. The category code of letters are not changed by this process (at least where they can be represented by the engine as a single @@ -8127,9 +8127,9 @@ maps to a special form, for example \texttt{ij} in Dutch which becomes \texttt{IJ}. \par For titlecasing, note that there are two functions available. The -function \cs{TextTitlecase} applies (broadly) uppercasing to the first +function \cs{textTitlecase} applies (broadly) uppercasing to the first letter of the input, then lowercasing to the remainder. In contrast, -\cs{TextTitlecaseFirst} \emph{only} carries out the uppercasing operation, +\cs{textTitlecaseFirst} \emph{only} carries out the uppercasing operation, and leaves the balance of the input unchanged. %Determining whether non-letter characters at the start of text should switch %from upper- to lowercasing is controllable. @@ -8144,24 +8144,24 @@ and leaves the balance of the input unchanged. \par Case changing does not take place within math mode material. For example: \begin{demohigh} -\TextUppercase {Text $y=mx+c$ with {Braces}} +\textUppercase {Text $y=mx+c$ with {Braces}} \end{demohigh} \begin{demohigh} -\TextLowercase {Text $Y=mX+c$ with {Braces}} +\textLowercase {Text $Y=mX+c$ with {Braces}} \end{demohigh} %The arguments of commands listed in \cs{l_text_case_exclude_arg_tl} %are excluded from case changing; the latter are entirely non-textual %content (such as labels). \end{function} -\begin{function}{\TextLangLowercase,\TextLangUppercase,\TextLangTitlecase,\TextLangTitlecaseFirst} +\begin{function}{\textLangLowercase,\textLangUppercase,\textLangTitlecase,\textLangTitlecaseFirst} \begin{syntax} -\cs{TextLangLowercase} \Arg{language} \Arg{tokens} -\cs{TextLangUppercase} \Arg{language} \Arg{tokens} -\cs{TextLangTitlecase} \Arg{language} \Arg{tokens} -\cs{TextLangTitlecaseFirst} \Arg{language} \Arg{tokens} +\cs{textLangLowercase} \Arg{language} \Arg{tokens} +\cs{textLangUppercase} \Arg{language} \Arg{tokens} +\cs{textLangTitlecase} \Arg{language} \Arg{tokens} +\cs{textLangTitlecaseFirst} \Arg{language} \Arg{tokens} \end{syntax} -Takes user input \meta{text} first applies \cs{TextExpand}, then +Takes user input \meta{text} first applies \cs{textExpand}, then transforms the case of character tokens as specified by the function name. The category code of letters are not changed by this process (at least where they can be represented by the engine as a single @@ -8203,7 +8203,7 @@ Currently, the languages recognised for special handling are as follows. \chapter{Files (\texttt{File})} This module provides functions for working with external files. -%Some of these functions apply to an entire file, and have prefix \cs{File}, +%Some of these functions apply to an entire file, and have prefix \cs{file}, %while others are used to work with files on a line by line basis and have %prefix \cs{Ior} (reading) or \cs{Iow} (writing). @@ -8228,36 +8228,36 @@ this will trim spaces from the start of the name only. \section{File Operation Functions} -\begin{function}{\FileInput} +\begin{function}{\fileInput} \begin{syntax} -\cs{FileInput} \Arg{file name} +\cs{fileInput} \Arg{file name} \end{syntax} Searches for \meta{file name} in the path as detailed for -\cs{FileIfExistTF}, and if found reads in the file and +\cs{fileIfExistTF}, and if found reads in the file and returns the contents. All files read are recorded for information and the file name stack is updated by this function. An error is raised if the file is not found. \end{function} -\begin{function}{\FileIfExistInput,\FileIfExistInputF} +\begin{function}{\fileIfExistInput,\fileIfExistInputF} \begin{syntax} -\cs{FileIfExistInput} \Arg{file name} -\cs{FileIfExistInputF} \Arg{file name} \Arg{false code} +\cs{fileIfExistInput} \Arg{file name} +\cs{fileIfExistInputF} \Arg{file name} \Arg{false code} \end{syntax} Searches for \meta{file name} using the current \TeX{} search path. %and the additional paths included in \cs{l_file_search_path_seq}. If found then reads in the file and returns the contents as described -for \cs{FileInput}, otherwise inserts the \meta{false code}. +for \cs{fileInput}, otherwise inserts the \meta{false code}. Note that these functions do not raise -an error if the file is not found, in contrast to \cs{FileInput}. +an error if the file is not found, in contrast to \cs{fileInput}. \end{function} -\begin{function}{\FileGet,\FileGetT,\FileGetF,\FileGetTF} +\begin{function}{\fileGet,\fileGetT,\fileGetF,\fileGetTF} \begin{syntax} -\cs{FileGet} \Arg{filename} \Arg{setup} \meta{tl} -\cs{FileGetT} \Arg{filename} \Arg{setup} \meta{tl} \Arg{true code} -\cs{FileGetF} \Arg{filename} \Arg{setup} \meta{tl} \Arg{false code} -\cs{FileGetTF} \Arg{filename} \Arg{setup} \meta{tl} \Arg{true code} \Arg{false code} +\cs{fileGet} \Arg{filename} \Arg{setup} \meta{tl} +\cs{fileGetT} \Arg{filename} \Arg{setup} \meta{tl} \Arg{true code} +\cs{fileGetF} \Arg{filename} \Arg{setup} \meta{tl} \Arg{false code} +\cs{fileGetTF} \Arg{filename} \Arg{setup} \meta{tl} \Arg{true code} \Arg{false code} \end{syntax} Defines \meta{tl} to the contents of \meta{filename}. Category codes may need to be set appropriately via the \meta{setup} @@ -8268,20 +8268,20 @@ assignment to \meta{tl} if the file is found, and \meta{false code} otherwise. \end{function} -\begin{function}{\FileIfExist,\FileIfExistT,\FileIfExistF,\FileIfExistTF} +\begin{function}{\fileIfExist,\fileIfExistT,\fileIfExistF,\fileIfExistTF} \begin{syntax} -\cs{FileIfExist} \Arg{file name} -\cs{FileIfExistT} \Arg{file name} \Arg{true code} -\cs{FileIfExistF} \Arg{file name} \Arg{false code} -\cs{FileIfExistTF} \Arg{file name} \Arg{true code} \Arg{false code} +\cs{fileIfExist} \Arg{file name} +\cs{fileIfExistT} \Arg{file name} \Arg{true code} +\cs{fileIfExistF} \Arg{file name} \Arg{false code} +\cs{fileIfExistTF} \Arg{file name} \Arg{true code} \Arg{false code} \end{syntax} Searches for \meta{file name} using the current \TeX{} search path. %and the additional paths controlled by \cs{l_file_search_path_seq}. \end{function} -%\begin{function}{\FileInputStop} +%\begin{function}{\fileInputStop} %\begin{syntax} -%\cs{FileInputStop} +%\cs{fileInputStop} %\end{syntax} %Ends the reading of a file started by \cs{file_input:n} or similar before %the end of the file is reached. Where the file reading is being terminated @@ -8310,7 +8310,7 @@ to themselves and should therefore \emph{never} be executed directly in the code. This would result in an endless loop! Quarks can be used as error return values for functions that receive erroneous input. -For example, in the function \cs{PropGet} to retrieve a value stored +For example, in the function \cs{propGet} to retrieve a value stored in some key of a property list, if the key does not exist then the return value is the quark \cs{qNoValue}. As mentioned above, such quarks are extremely fragile and it is imperative @@ -8323,38 +8323,38 @@ environment. \begin{variable}{\qNoValue} A canonical value for a missing value, when one is requested from a data structure. This is therefore used as a \enquote{return} value -by functions such as \cs{PropGet} if there is no data to return. +by functions such as \cs{propGet} if there is no data to return. \end{variable} \section{Quark Conditionals} -\begin{function}{\QuarkVarIfNoValue,\QuarkVarIfNoValueT,\QuarkVarIfNoValueF,\QuarkVarIfNoValueTF} +\begin{function}{\quarkVarIfNoValue,\quarkVarIfNoValueT,\quarkVarIfNoValueF,\quarkVarIfNoValueTF} \begin{syntax} -\cs{QuarkVarIfNoValue} \meta{token} -\cs{QuarkVarIfNoValueT} \meta{token} \Arg{true code} -\cs{QuarkVarIfNoValueF} \meta{token} \Arg{false code} -\cs{QuarkVarIfNoValueTF} \meta{token} \Arg{true code} \Arg{false code} +\cs{quarkVarIfNoValue} \meta{token} +\cs{quarkVarIfNoValueT} \meta{token} \Arg{true code} +\cs{quarkVarIfNoValueF} \meta{token} \Arg{false code} +\cs{quarkVarIfNoValueTF} \meta{token} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \meta{token} is equal to \cs{qNoValue}. \begin{demohigh} -\ClistGet \cEmptyClist \lTmpaTl -\QuarkVarIfNoValueTF \lTmpaTl {\Return{NoValue}} {\Return{SomeValue}} +\clistGet \cEmptyClist \lTmpaTl +\quarkVarIfNoValueTF \lTmpaTl {\prgReturn{NoValue}} {\prgReturn{SomeValue}} \end{demohigh} \begin{demohigh} -\SeqPop \cEmptySeq \lTmpaTl -\QuarkVarIfNoValueTF \lTmpaTl {\Return{NoValue}} {\Return{SomeValue}} +\seqPop \cEmptySeq \lTmpaTl +\quarkVarIfNoValueTF \lTmpaTl {\prgReturn{NoValue}} {\prgReturn{SomeValue}} \end{demohigh} \begin{demohigh} -\PropSetFromKeyval \lTmpaProp {key1=one,key2=two} -\PropGet \lTmpaProp {key3} \lTmpaTl -\QuarkVarIfNoValueTF \lTmpaTl {\Return{NoValue}} {\Return{SomeValue}} +\propSetFromKeyval \lTmpaProp {key1=one,key2=two} +\propGet \lTmpaProp {key3} \lTmpaTl +\quarkVarIfNoValueTF \lTmpaTl {\prgReturn{NoValue}} {\prgReturn{SomeValue}} \end{demohigh} \end{function} -%\begin{function}{\QuarkIfNoValue,\QuarkIfNoValueTF} +%\begin{function}{\quarkIfNoValue,\quarkIfNoValueTF} %\begin{syntax} -%\cs{QuarkIfNoValue} \Arg{token list} -%\cs{QuarkIfNoValueTF} \Arg{token list} \Arg{true code} \Arg{false code} +%\cs{quarkIfNoValue} \Arg{token list} +%\cs{quarkIfNoValueTF} \Arg{token list} \Arg{true code} \Arg{false code} %\end{syntax} %Tests if the \meta{token list} contains only \cs{qNoValue} %(distinct from \meta{token list} being empty or containing @@ -8368,47 +8368,47 @@ in \pkg{functional} code but which need to be manipulated when working as a \LaT package. To allow these to be integrated cleanly into \pkg{functional} code, a set of legacy interfaces are provided here. -\begin{function}{\LegacyIf,\LegacyIfT,\LegacyIfF,\LegacyIfTF} +\begin{function}{\legacyIf,\legacyIfT,\legacyIfF,\legacyIfTF} \begin{syntax} -\cs{LegacyIf} \Arg{name} -\cs{LegacyIfT} \Arg{name} \Arg{true code} -\cs{LegacyIfF} \Arg{name} \Arg{false code} -\cs{LegacyIfTF} \Arg{name} \Arg{true code} \Arg{false code} +\cs{legacyIf} \Arg{name} +\cs{legacyIfT} \Arg{name} \Arg{true code} +\cs{legacyIfF} \Arg{name} \Arg{false code} +\cs{legacyIfTF} \Arg{name} \Arg{true code} \Arg{false code} \end{syntax} Tests if the \LaTeXe{}/plain \TeX{} conditional (generated by \tn{newif}) if \texttt{true} or \texttt{false} and branches \hbox{accordingly}. The \meta{name} of the conditional should \emph{omit} the leading \texttt{if}. \begin{demohigh} \newif \ifFooBar -\LegacyIfTF {FooBar} {\Return{True!}} {\Return{False!}} +\legacyIfTF {FooBar} {\prgReturn{True!}} {\prgReturn{False!}} \end{demohigh} \end{function} -\begin{function}{\LegacyIfSetTrue,\LegacyIfSetFalse} +\begin{function}{\legacyIfSetTrue,\legacyIfSetFalse} \begin{syntax} -\cs{LegacyIfSetTrue} \Arg{name} -\cs{LegacyIfSetFalse} \Arg{name} +\cs{legacyIfSetTrue} \Arg{name} +\cs{legacyIfSetFalse} \Arg{name} \end{syntax} Sets the \LaTeXe{}/plain \TeX{} conditional \verb|\if|\meta{name} (generated by \tn{newif}) to be \texttt{true} or \texttt{false}. \begin{demohigh} \newif \ifFooBar -\LegacyIfSetTrue {FooBar} -\LegacyIfTF {FooBar} {\Return{True!}} {\Return{False!}} +\legacyIfSetTrue {FooBar} +\legacyIfTF {FooBar} {\prgReturn{True!}} {\prgReturn{False!}} \end{demohigh} \end{function} -\begin{function}{\LegacyIfSet} +\begin{function}{\legacyIfSet} \begin{syntax} -\cs{LegacyIfSet} \Arg{name} \Arg{boolexpr} +\cs{legacyIfSet} \Arg{name} \Arg{boolexpr} \end{syntax} Sets the \LaTeXe{}/plain \TeX{} conditional \verb|\if|\meta{name} (generated by \tn{newif}) to the result of evaluating the \meta{boolean expression}. \begin{demohigh} \newif \ifFooBar -\LegacyIfSet {FooBar} {\cFalseBool} -\LegacyIfTF {FooBar} {\Return{True!}} {\Return{False!}} +\legacyIfSet {FooBar} {\cFalseBool} +\legacyIfTF {FooBar} {\prgReturn{True!}} {\prgReturn{False!}} \end{demohigh} \end{function} diff --git a/macros/latex/contrib/pdfpages/pdfpages.dtx b/macros/latex/contrib/pdfpages/pdfpages.dtx index 2deaa46206..1342d7ba42 100644 --- a/macros/latex/contrib/pdfpages/pdfpages.dtx +++ b/macros/latex/contrib/pdfpages/pdfpages.dtx @@ -27,12 +27,12 @@ %<*dtx> \makeatletter %</dtx> -\def\AM@fileversion{v0.5u} +\def\AM@fileversion{v0.5v} \def\AM@Git@Date@process$#1: #2 #3${\AM@Git@Date@process@i#2\END} \def\AM@Git@Date@process@i#1-#2-#3\END{\def\AM@Git@Date{#1/#2/#3}} \def\AM@Git@SHA@process$#1: #2${\def\AM@Git@SHA{#2}} -\AM@Git@Date@process$Date: 2022-01-29 16:59:20 +0100 $ -\AM@Git@SHA@process$SHA-1: 7a5d1a24653fdc93c11ca1043f6d77a403446d92 $ +\AM@Git@Date@process$Date: 2022-05-22 20:11:16 +0200 $ +\AM@Git@SHA@process$SHA-1: 059ee4174cc52b0e6a4c834c1a9719bcf5a453b0 $ %</!(example1,example2,example3,installer)> % % @@ -1339,6 +1339,7 @@ \newcommand*{\AM@findfile@ii}[1]{% \ifx\AM@currentdocname\relax \PackageError{pdfpages}{Cannot find file `#1'}{}% + \let\AM@filenotfound\relax \fi } % \end{macrocode} @@ -1393,7 +1394,7 @@ \def\AM@pagecount{0}% }{% \AM@findfile{#2}% - \if\AM@threadname\relax + \ifx\AM@threadname\relax \def\AM@threadname{\AM@currentdocname}% \fi }% @@ -1481,8 +1482,17 @@ % \macro{\AM@output} % This is the main output routine used by |\includepdf| % and |\includepdfmerge|. +% Let's stop here if the PDF file doesn't exist and the user did not quit +% \LaTeX\ yet (which may result from `--interaction=scrollmode`). +% If we do not quit here, we might run into an infinite loop. % \begin{macrocode} -\newcommand{\AM@output}[1]{% +\newcommand\AM@output{% + \ifdefined\AM@filenotfound + \else + \expandafter\AM@output@i + \fi +} +\newcommand{\AM@output@i}[1]{% % \end{macrocode} % For the following calculations we need to know the page size. % But since we are still before |\newpage| we must not set |\paper{width,height}| @@ -4851,6 +4861,12 @@ % \item Adding |\leavevmode| before |\@chapter|,... in |addtotoc|. % Bug fix for \url{https://tex.stackexchange.com/questions/631514/}. % \end{itemize} +% +% \subsection*{2022/05/21 v0.5v} +% \begin{itemize} +% \item Do not enter an infinite loop if the PDF file doesn't exist. +% Bug fix for \url{https://tex.stackexchange.com/questions/644971/}. +% \end{itemize} % \Finale % % \iffalse diff --git a/macros/latex/contrib/pdfpages/pdfpages.pdf b/macros/latex/contrib/pdfpages/pdfpages.pdf Binary files differindex 1fea4ad0c1..15703669ad 100644 --- a/macros/latex/contrib/pdfpages/pdfpages.pdf +++ b/macros/latex/contrib/pdfpages/pdfpages.pdf diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md index 537cda320d..2342ebae59 100644 --- a/macros/latex/required/babel/base/README.md +++ b/macros/latex/required/babel/base/README.md @@ -1,4 +1,4 @@ -## Babel 3.74 +## Babel 3.75 This package manages culturally-determined typographical (and other) rules, and hyphenation patterns for a wide range of languages. Many @@ -8,9 +8,9 @@ is a set of ini files for about 250 languages. The latest stable version is available on <https://ctan.org/pkg/babel>. -Changes in version 3.74 are described in: +Changes in version 3.75 are described in: -https://latex3.github.io/babel/news/whats-new-in-babel-3.74.html +https://latex3.github.io/babel/news/whats-new-in-babel-3.75.html Apart from the manual, you can find information on some aspects of babel at: @@ -46,11 +46,20 @@ respective authors. ### Summary of latest changes ``` -3.74 2022-04-30 +3.75 2022-05-22 + * `\BabelEnsureInfo` is active by default, to make sure the BCP 47 + codes are always available, as they may be required by the + LaTeX kernel. + * `\localeinfo*` is like `\localeinfo` but expands to empty if + unknown (fully expandable). + * The key `character`/`ranges` in `ini` files now sets the + corresponding Unicode script ranges (as used by `onchar`). * Fixes: - - Error in transforms if | is active. - - Minor fixes in Khemer, Turkmen, Marathi. - * RTL math improved (with luatex). + - Misplaced rule un diagbox (#43) + - Caption names of 'chapter' and 'part' swapped in Chinese (#180). + - Captions after numbers in Lithuanian. + - `hyphenrules` in the `ini` files for `en-AU` and + `en-NZ` where set to `english` instead of `ukenglish`. ``` ### Previous changes diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx index 980ab2b11e..6bc32b0c7b 100644 --- a/macros/latex/required/babel/base/babel.dtx +++ b/macros/latex/required/babel/base/babel.dtx @@ -32,7 +32,7 @@ % % \iffalse %<*filedriver> -\ProvidesFile{babel.dtx}[2022/04/30 v3.74 The Babel package] +\ProvidesFile{babel.dtx}[2022/05/22 v3.75 The Babel package] \documentclass{ltxdoc} \GetFileInfo{babel.dtx} \usepackage{fontspec} @@ -184,11 +184,7 @@ Poppelier, Piet van Oostrum and many others have been used. Bernd Raichle has provided many helpful suggestions.}} \author{Johannes Braams\\ - Kersengaarde 33\\ - 2723 BP Zoetermeer\\ - The Netherlands\\ - \normalsize From version 3.9 on, Javier Bezos\\ - \normalsize \texttt{www.texnia.com}} + Javier Bezos} \date{Typeset \today} \begin{titlepage} @@ -213,12 +209,12 @@ Version \csname @gobble\expandafter\endcsname\fileversion\newline \LARGE \vspace{1.2cm} -Johannes L. Braams\\[-.5ex] -{\large Original author} - -\vspace{.3cm} Javier Bezos\\[-.5ex] {\large Current maintainer} + +\vspace{.3cm} +Johannes L. Braams\\[-.5ex] +{\large Original author} \end{minipage} &\cellcolor[rgb]{.92, .86, .73} \vspace{2cm} @@ -2890,7 +2886,8 @@ argument is the name of a language; the second and third arguments are the actions to take if the result of the test is true or false respectively. -\Describe{\localeinfo}{\marg{field}} +\Describe{\localeinfo}{% + \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}{\marg{field}}} \New{3.38} If an |ini| file has been loaded for the current language, you may access the information stored in it. This macro is fully @@ -2902,15 +2899,30 @@ expandable, and the available fields are: %%% activated because the bug in \languagename is far from trivial. \item[|tag.ini|] is the tag of the |ini| file (the way this file is identified in its name). -\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below). +\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below). This + is the value to be used for the ‘real' provided tag (\babel{} may + fill other fields if they are considered necessary). \item[|language.tag.bcp47|] is the BCP 47 language tag. \item[|tag.opentype|] is the tag used by OpenType (usually, but not always, the same as BCP 47). \item[|script.name|], as provided by the Unicode CLDR. \item[|script.tag.bcp47|] is the BCP 47 tag of the script - used by this locale. + used by this locale. This is a required field for the fonts to be + correctly set up, and therefore it should be always defined. \item[|script.tag.opentype|] is the tag used by OpenType (usually, but not always, the same as BCP 47). +\item[|region.tag.bcp47|] is the BCP 47 tag of the region or territory. + Defined only if the locale loaded actually contains it (eg, |es-MX| + does, but |es| doesn’t), which is how locales behave in the CLDR. + \New{3.75} +\item[|variant.tag.bcp47|] is the BCP 47 tag of the variant (in the BCP 47 + sense, like |1901| for German). \New{3.75} +\item[|extension.|\m{s}|.tag.bcp47|] is the BCP 47 value of the + extension whose singleton is \m{s} (currently the recognized + singletons are |x|, |t| and |u|). The internal syntax can be somewhat + complex, and this feature is still somewhat tentative. An example is + \textsf{classiclatin} which sets |extension.x.tag.bcp47| to classic. + \New{3.75} \end{description} \begin{warning} @@ -2919,6 +2931,18 @@ expandable, and the available fields are: counterintuitive. \end{warning} +\New{3.75} Sometimes, it comes in handy to be able to use |\localeinfo| +in an expandable way even if something went wrong (for example, the +locale currently active is undefined). For these cases, |localeinfo*| +just returns an empty string instead of raising an error. Bear in mind +that \babel{}, following the CLDR, may leave the region unset, which +means |\getlanguageproperty*|, described below, is the preferred +command, so that the existence of a field can be checked before. This +also means building a string with the language and the region with +|\localeinfo*{language.tab.bcp47}|\allowbreak |-|\allowbreak +|\localeinfo*{region.tab.bcp47}| is not usually a good idea (because of +the hyphen). + \Describe{\getlocaleproperty}{% \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}% \marg{macro}\marg{locale}\marg{property}} @@ -2955,12 +2979,15 @@ named |\LocaleForEach| to traverse the list, where |#1| is the name of the current item, so that |\LocaleForEach{\message{ **#1** }}| just shows the loaded |ini|’s. -\Describe{\BabelEnsureInfo}{} -|ini| files are loaded with |\babelprovide| and also when languages are -selected if there is a |\babelfont| or they have not been explicitly -declared. To ensure the |ini| files are loaded (and therefore the -corresponding data) even if these two conditions are not met, write -|\BabelEnsureInfo| in the preamble. +\Describe{ensureinfo=off}{} +\New{3.75} Previously, |ini| files are loaded only with |\babelprovide| +and also when languages are selected if there is a |\babelfont| or they +have not been explicitly declared. Now the |ini| files are loaded (and +therefore the corresponding data) even if these two conditions are not +met (in previous versions you had to enable it with |\BabelEnsureInfo| +in the preamble). Because of the way this feature works, problems are +very unlikely, but there is switch as a package option to turn the new +behavior off (|ensureinfo=off|). \subsection{Hyphenation and line breaking} @@ -5116,8 +5143,8 @@ help from Bernd Raichle, for which I am grateful. % \section{Tools} % % \begin{macrocode} -%<<version=3.74>> -%<<date=2022/04/30>> +%<<version=3.75>> +%<<date=2022/05/22>> % \end{macrocode} % % \textbf{Do not use the following macros in \texttt{ldf} files. They @@ -9748,6 +9775,11 @@ help from Bernd Raichle, for which I am grateful. \ifx\bbl@KVP@language\@nil\else \bbl@csarg\edef{lname@#2}{\bbl@KVP@language}% \fi + \ifcase\bbl@engine\or + \bbl@ifunset{bbl@chrng@\languagename}{}% + {\directlua{ + Babel.set_chranges_b('\bbl@cl{sbcp}', '\bbl@cl{chrng}') }}% + \fi % == onchar == \ifx\bbl@KVP@onchar\@nil\else \bbl@luahyphenate @@ -10251,6 +10283,10 @@ help from Bernd Raichle, for which I am grateful. \ifin@ \bbl@ini@calendar{##1}% \fi + \in@{=identification/extension.}{=##1/##2}% + \ifin@ + \bbl@ini@extension{##2}% + \fi \bbl@ifunset{bbl@inikv@##1}{}% {\csname bbl@inikv@##1\endcsname{##2}{##3}}}% \bbl@inidata} @@ -10360,6 +10396,24 @@ help from Bernd Raichle, for which I am grateful. Reported }}} % \let\bbl@release@transforms\@empty +% \end{macrocode} +% +% BCP 47 extensions are separated by a single letter (eg, +% |latin-x-medieval|. The following macro handles this special case to +% create correctly the correspondig info. +% +% \begin{macrocode} +\def\bbl@ini@extension#1{% + \def\bbl@tempa{#1}% + \bbl@replace\bbl@tempa{extension.}{}% + \bbl@replace\bbl@tempa{.tag.bcp47}{}% + \bbl@ifunset{bbl@info@#1}% + {\bbl@csarg\xdef{info@#1}{ext/\bbl@tempa}% + \bbl@exp{% + \\\g@addto@macro\\\bbl@moreinfo{% + \\\bbl@exportkey{ext/\bbl@tempa}{identification.#1}{}}}}% + {}} +\let\bbl@moreinfo\@empty % \def\bbl@ini@exports#1{% % Identification always exported @@ -10383,6 +10437,9 @@ help from Bernd Raichle, for which I am grateful. {\csname bbl@esname@\languagename\endcsname}}% \bbl@exportkey{sbcp}{identification.script.tag.bcp47}{}% \bbl@exportkey{sotf}{identification.script.tag.opentype}{DFLT}% + \bbl@exportkey{rbcp}{identification.region.tag.bcp47}{}% + \bbl@exportkey{vbcp}{identification.variant.tag.bcp47}{}% + \bbl@moreinfo % Also maps bcp47 -> languagename \ifbbl@bcptoname \bbl@csarg\xdef{bcp@map@\bbl@cl{tbcp}}{\languagename}% @@ -10951,13 +11008,21 @@ help from Bernd Raichle, for which I am grateful. % following macro just exposes it with a user command. % % \begin{macrocode} +\def\bbl@localeinfo#1#2{% + \bbl@ifunset{bbl@info@#2}{#1}% + {\bbl@ifunset{bbl@\csname bbl@info@#2\endcsname @\languagename}{#1}% + {\bbl@cs{\csname bbl@info@#2\endcsname @\languagename}}}} \newcommand\localeinfo[1]{% - \bbl@ifunset{bbl@\csname bbl@info@#1\endcsname @\languagename}% - {\bbl@error{I've found no info for the current locale.\\% - The corresponding ini file has not been loaded\\% - Perhaps it doesn't exist}% - {See the manual for details.}}% - {\bbl@cs{\csname bbl@info@#1\endcsname @\languagename}}} + \ifx*#1\@empty % TODO. A bit hackish to make it expandable. + \bbl@afterelse\bbl@localeinfo{}% + \else + \bbl@localeinfo + {\bbl@error{I've found no info for the current locale.\\% + The corresponding ini file has not been loaded\\% + Perhaps it doesn't exist}% + {See the manual for details.}}% + {#1}% + \fi} % \@namedef{bbl@info@name.locale}{lcname} \@namedef{bbl@info@tag.ini}{lini} \@namedef{bbl@info@name.english}{elname} @@ -10968,7 +11033,22 @@ help from Bernd Raichle, for which I am grateful. \@namedef{bbl@info@script.name}{esname} \@namedef{bbl@info@script.name.opentype}{sname} \@namedef{bbl@info@script.tag.bcp47}{sbcp} -\@namedef{bbl@info@script.tag.opentype}{sotf} +\@namedef{bbl@info@script.tag.opentype}{sotf} +\@namedef{bbl@info@region.tag.bcp47}{rbcp} +\@namedef{bbl@info@variant.tag.bcp47}{vbcp} +% Extensions are dealt with in a special way +% Now, an internal \LaTeX{} macro: +\providecommand\BCPdata[1]{\localeinfo*{#1.tag.bcp47}} +% \end{macrocode} +% +% With version 3.75 |\BabelEnsureInfo| is executed always, but there is +% an option to disable it. +% +% \begin{macrocode} +%<<*More package options>> +\DeclareOption{ensureinfo=off}{} +%<</More package options>> +% \let\bbl@ensureinfo\@gobble \newcommand\BabelEnsureInfo{% \ifx\InputIfFileExists\@undefined\else @@ -10978,12 +11058,15 @@ help from Bernd Raichle, for which I am grateful. \bbl@foreach\bbl@loaded{{% \def\languagename{##1}% \bbl@ensureinfo{##1}}}} +\@ifpackagewith{babel}{ensureinfo=off}{}% + {\AtEndOfPackage{% Test for plain. + \ifx\@undefined\bbl@loaded\else\BabelEnsureInfo\fi}} % \end{macrocode} % % More general, but non-expandable, is |\getlocaleproperty|. To inspect % every possible loaded |ini|, we define |\LocaleForEach|, where % |\bbl@ini@loaded| is a comma-separated list of locales, built by -% |\bbl@read@ini|. +% |\bbl@read@ini|. % % \begin{macrocode} \newcommand\getlocaleproperty{% @@ -11791,11 +11874,7 @@ help from Bernd Raichle, for which I am grateful. % latter solution will be eventually removed). % % \begin{macrocode} -\bbl@ifformatlater{2021-06-01}% - {\def\bbl@patchfont#1{\AddToHook{selectfont}{#1}}} - {\def\bbl@patchfont#1{% - \expandafter\bbl@add\csname selectfont \endcsname{#1}% - \expandafter\bbl@toglobal\csname selectfont \endcsname}} +\def\bbl@patchfont#1{\AddToHook{selectfont}{#1}} % \end{macrocode} % % \end{macro} @@ -13524,6 +13603,15 @@ help from Bernd Raichle, for which I am grateful. end return has_bidi end + function Babel.set_chranges_b (script, chrng) + if chrng == '' then return end + texio.write('Replacing ' .. script .. ' script ranges') + Babel.script_blocks[script] = {} + for s, e in string.gmatch(chrng..' ', '(.-)%.%.(.-)%s') do + table.insert( + Babel.script_blocks[script], {tonumber(s,16), tonumber(e,16)}) + end + end } \endgroup \ifx\newattribute\@undefined\else @@ -14767,22 +14855,21 @@ end % \(text|par)dir required in pgf: \def\bbl@pictresetdir{\bodydir TRT\pardir TRT\textdir TRT\relax}% \fi}% - \ifx\AddToHook\@undefined\else - \AddToHook{env/picture/begin}{\bbl@pictsetdir\tw@}% - \directlua{ - Babel.get_picture_dir = true - Babel.picture_has_bidi = 0 - % - function Babel.picture_dir (head) - if not Babel.get_picture_dir then return head end - if Babel.hlist_has_bidi(head) then - Babel.picture_has_bidi = 1 - end - return head + \AddToHook{env/picture/begin}{\bbl@pictsetdir\tw@}% + \directlua{ + Babel.get_picture_dir = true + Babel.picture_has_bidi = 0 + % + function Babel.picture_dir (head) + if not Babel.get_picture_dir then return head end + if Babel.hlist_has_bidi(head) then + Babel.picture_has_bidi = 1 end - luatexbase.add_to_callback("hpack_filter", Babel.picture_dir, - "Babel.picture_dir") - }% + return head + end + luatexbase.add_to_callback("hpack_filter", Babel.picture_dir, + "Babel.picture_dir") + }% \AtBeginDocument{% \long\def\put(#1,#2)#3{% \@killglue @@ -14797,7 +14884,7 @@ end \setbox\z@\hb@xt@\z@{% \@defaultunitsset\@tempdimc{#1}\unitlength \kern\@tempdimc - #3\hss}% + #3\hss}% TODO: #3 executed twice (below). That’s bad. \edef\bbl@tempc{\directlua{tex.print(Babel.picture_has_bidi)}}% \fi % Do: @@ -14807,35 +14894,26 @@ end \kern\@tempdimc {\ifnum\bbl@tempc>\z@\bbl@pictresetdir\fi#3}\hss}% \ignorespaces}% - \MakeRobust\put}% - \fi + \MakeRobust\put}% \AtBeginDocument - {\ifx\pgfpicture\@undefined\else % TODO. Allow deactivate? - \ifx\AddToHook\@undefined - \bbl@sreplace\pgfpicture{\pgfpicturetrue}% - {\bbl@pictsetdir\z@\pgfpicturetrue}% - \else - \AddToHook{env/pgfpicture/begin}{\bbl@pictsetdir\@ne}% - \fi + {\AddToHook{cmd/diagbox@pict/before}{\let\bbl@pictsetdir\@gobble}% + \ifx\pgfpicture\@undefined\else % TODO. Allow deactivate? + \AddToHook{env/pgfpicture/begin}{\bbl@pictsetdir\@ne}% \bbl@add\pgfinterruptpicture{\bbl@pictresetdir}% \bbl@add\pgfsys@beginpicture{\bbl@pictsetdir\z@}% \fi - \ifx\tikzpicture\@undefined\else - \ifx\AddToHook\@undefined\else - \AddToHook{env/tikzpicture/begin}{\bbl@pictsetdir\z@}% - \fi + \ifx\tikzpicture\@undefined\else + \AddToHook{env/tikzpicture/begin}{\bbl@pictsetdir\z@}% \bbl@add\tikz@atbegin@node{\bbl@pictresetdir}% \bbl@sreplace\tikz{\begingroup}{\begingroup\bbl@pictsetdir\tw@}% \fi - \ifx\AddToHook\@undefined\else - \ifx\tcolorbox\@undefined\else - \AddToHook{env/tcolorbox/begin}{\bbl@pictsetdir\@ne}% - \bbl@sreplace\tcb@savebox - {\ignorespaces}{\ignorespaces\bbl@pictresetdir}% - \ifx\tikzpicture@tcb@hooked\@undefined\else - \bbl@sreplace\tikzpicture@tcb@hooked{\noexpand\tikzpicture}% - {\textdir TLT\noexpand\tikzpicture}% - \fi + \ifx\tcolorbox\@undefined\else + \AddToHook{env/tcolorbox/begin}{\bbl@pictsetdir\@ne}% + \bbl@sreplace\tcb@savebox + {\ignorespaces}{\ignorespaces\bbl@pictresetdir}% + \ifx\tikzpicture@tcb@hooked\@undefined\else + \bbl@sreplace\tikzpicture@tcb@hooked{\noexpand\tikzpicture}% + {\textdir TLT\noexpand\tikzpicture}% \fi \fi }} @@ -22564,6 +22642,39 @@ Babel.cjk_breaks = { % \end{macro} % \end{macro} % +% There is no locale file for this pseudo-language, so the +% corresponding fields are defined here. +% +% \begin{macrocode} +\def\bbl@inidata@nil{% + \bbl@elt{identification}{tag.ini}{und}% + \bbl@elt{identification}{load.level}{0}% + \bbl@elt{identification}{charset}{utf8}% + \bbl@elt{identification}{version}{1.0}% + \bbl@elt{identification}{date}{2022-05-16}% + \bbl@elt{identification}{name.local}{nil}% + \bbl@elt{identification}{name.english}{nil}% + \bbl@elt{identification}{name.babel}{nil}% + \bbl@elt{identification}{tag.bcp47}{und}% + \bbl@elt{identification}{language.tag.bcp47}{und}% + \bbl@elt{identification}{tag.opentype}{dflt}% + \bbl@elt{identification}{script.name}{Latin}% + \bbl@elt{identification}{script.tag.bcp47}{Latn}% + \bbl@elt{identification}{script.tag.opentype}{DFLT}% + \bbl@elt{identification}{level}{1}% + \bbl@elt{identification}{encodings}{}% + \bbl@elt{identification}{derivate}{no}} +\@namedef{bbl@tbcp@nil}{und} +\@namedef{bbl@lbcp@nil}{und} +\@namedef{bbl@lotf@nil}{dflt} +\@namedef{bbl@elname@nil}{nil} +\@namedef{bbl@lname@nil}{nil} +\@namedef{bbl@esname@nil}{Latin} +\@namedef{bbl@sname@nil}{Latin} +\@namedef{bbl@sbcp@nil}{Latn} +\@namedef{bbl@sotf@nil}{Latn} +% \end{macrocode} +% % The macro |\ldf@finish| takes care of looking for a % configuration file, setting the main language to be switched on % at |\begin{document}| and resetting the category code of diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins index 1c80ae6d80..188056d227 100644 --- a/macros/latex/required/babel/base/babel.ins +++ b/macros/latex/required/babel/base/babel.ins @@ -26,7 +26,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %% -\def\filedate{2022/04/30} +\def\filedate{2022/05/22} \def\batchfile{babel.ins} \input docstrip.tex diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf Binary files differindex b68346d6e5..52960c988b 100644 --- a/macros/latex/required/babel/base/babel.pdf +++ b/macros/latex/required/babel/base/babel.pdf diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx index b7a7c3dfbc..725de441f2 100644 --- a/macros/latex/required/babel/base/bbcompat.dtx +++ b/macros/latex/required/babel/base/bbcompat.dtx @@ -30,7 +30,7 @@ % % \iffalse %<*dtx> -\ProvidesFile{bbcompat.dtx}[2022/04/30 v3.74] +\ProvidesFile{bbcompat.dtx}[2022/05/22 v3.75] %</dtx> % %% File 'bbcompat.dtx' diff --git a/macros/xetex/latex/bidi/README b/macros/xetex/latex/bidi/README index 7b70297c85..0c1c7cdd26 100644 --- a/macros/xetex/latex/bidi/README +++ b/macros/xetex/latex/bidi/README @@ -1,6 +1,6 @@ ___________________ The bidi package -v36.8 +v36.9 This package provides a convenient interface for typesetting bidirectional texts in Plain TeX and LaTeX, using XeTeX engine. @@ -25,7 +25,7 @@ The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. -Current version release date: 2022/05/20 +Current version release date: 2022/05/22 ___________________________________________ Vafa Khalighi diff --git a/macros/xetex/latex/bidi/bidi-doc-intro.ltx b/macros/xetex/latex/bidi/bidi-doc-intro.ltx index bbf28a1baf..96be56fdff 100644 --- a/macros/xetex/latex/bidi/bidi-doc-intro.ltx +++ b/macros/xetex/latex/bidi/bidi-doc-intro.ltx @@ -20,7 +20,7 @@ If you use \textsf{bidi} package to write any input \TeX\ document, and then run * Copyright (c) 2007--2022 Vafa Khalighi * Copyright (c) 2018--2020 bidi-tex GitHub Organization * -* v36.8, 2022/05/20 +* v36.9, 2022/05/22 * * License: LaTeX Project Public License, version * 1.3c or higher (your choice) diff --git a/macros/xetex/latex/bidi/bidi-doc-title.ltx b/macros/xetex/latex/bidi/bidi-doc-title.ltx index d46cbe3b32..4cca7587dd 100644 --- a/macros/xetex/latex/bidi/bidi-doc-title.ltx +++ b/macros/xetex/latex/bidi/bidi-doc-title.ltx @@ -3,7 +3,7 @@ \begin{document} \title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\ \LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt] -\large User documentation for \textcolor{blue!65!black}{version 36.8}} +\large User documentation for \textcolor{blue!65!black}{version 36.9}} \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}} \setcounter{page}{0} \thispagestyle{empty} @@ -13,7 +13,7 @@ \textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}} \Large -User documentation for \textcolor{blue!65!black}{version 36.8}} +User documentation for \textcolor{blue!65!black}{version 36.9}} \vskip 0pt plus 3fill \textit{\large to my Master, \textbf{Ferdowsi The Great}} diff --git a/macros/xetex/latex/bidi/bidi-doc.ltx b/macros/xetex/latex/bidi/bidi-doc.ltx index 6ef42930c0..cd2d09f9aa 100644 --- a/macros/xetex/latex/bidi/bidi-doc.ltx +++ b/macros/xetex/latex/bidi/bidi-doc.ltx @@ -1,7 +1,7 @@ \documentclass{ltxdoc} \input{bidi-doc-preamble.ltx} \hypersetup{% - pdftitle={User documentation for version 36.8 of the bidi + pdftitle={User documentation for version 36.9 of the bidi package}% } \begin{document} diff --git a/macros/xetex/latex/bidi/bidi-doc.pdf b/macros/xetex/latex/bidi/bidi-doc.pdf Binary files differindex 64ecfc6a86..dfc66c1851 100644 --- a/macros/xetex/latex/bidi/bidi-doc.pdf +++ b/macros/xetex/latex/bidi/bidi-doc.pdf diff --git a/macros/xetex/latex/bidi/bidi.dtx b/macros/xetex/latex/bidi/bidi.dtx index 2814a22334..4b48ad45ea 100644 --- a/macros/xetex/latex/bidi/bidi.dtx +++ b/macros/xetex/latex/bidi/bidi.dtx @@ -5,7 +5,7 @@ %<*readme> ___________________ The bidi package -v36.8 +v36.9 This package provides a convenient interface for typesetting bidirectional texts in Plain TeX and LaTeX, using XeTeX engine. @@ -30,7 +30,7 @@ The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. -Current version release date: 2022/05/20 +Current version release date: 2022/05/22 ___________________________________________ Vafa Khalighi @@ -179,7 +179,6 @@ by Vafa Khalighi. \generate{\file{rotating-xetex-bidi.def}{\from{\jobname.dtx}{table,rotating-xetex-bidi.def}}} \generate{\file{scrartcl-xetex-bidi.def}{\from{\jobname.dtx}{table,scrartcl-xetex-bidi.def}}} \generate{\file{scrbook-xetex-bidi.def}{\from{\jobname.dtx}{table,scrbook-xetex-bidi.def}}} -\generate{\file{scrlettr-xetex-bidi.def}{\from{\jobname.dtx}{table,scrlettr-xetex-bidi.def}}} \generate{\file{scrreprt-xetex-bidi.def}{\from{\jobname.dtx}{table,scrreprt-xetex-bidi.def}}} \generate{\file{sidecap-xetex-bidi.def}{\from{\jobname.dtx}{table,sidecap-xetex-bidi.def}}} \generate{\file{soul-xetex-bidi.def}{\from{\jobname.dtx}{table,soul-xetex-bidi.def}}} @@ -235,7 +234,7 @@ by Vafa Khalighi. \documentclass{ltxdoc} \input{bidi-doc-preamble.ltx} \hypersetup{% - pdftitle={Source documentation for version 36.8 of the bidi + pdftitle={Source documentation for version 36.9 of the bidi package}% } \EnableCrossrefs @@ -254,7 +253,7 @@ by Vafa Khalighi. % \GetFileInfo{\jobname.dtx} % \title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\ %\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt] -%\large Source documentation for \textcolor{blue!65!black}{version 36.8}} +%\large Source documentation for \textcolor{blue!65!black}{version 36.9}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}} %\setcounter{page}{0} %\thispagestyle{empty} @@ -264,7 +263,7 @@ by Vafa Khalighi. %\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}} % %\Large -%Source documentation for \textcolor{blue!65!black}{version 36.8}} +%Source documentation for \textcolor{blue!65!black}{version 36.9}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -313,7 +312,7 @@ by Vafa Khalighi. %\iffalse %<*table> %\fi -%% \CheckSum{50563} +%% \CheckSum{50672} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -1933,8 +1932,8 @@ by Vafa Khalighi. % \section{File \texttt{bidi.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\def\bididate{2022/05/20} -\def\bidi@version{36.8} +\def\bididate{2022/05/22} +\def\bidi@version{36.9} \ProvidesPackage{bidi}[\bididate\space v\bidi@version\space Bidirectional typesetting in plain TeX and LaTeX] \edef\@bidi@info{****************************************************^^J% @@ -2022,7 +2021,7 @@ Bidirectional typesetting in plain TeX and LaTeX] } \newcommand*{\@bidi@pdfcustomproperties}{% This is the bidi package, Version \bidi@version, - Released May 20, 2022. + Released May 22, 2022. } \@RTLmainfalse \AtBeginDocument{% @@ -2265,9 +2264,9 @@ Bidirectional typesetting in plain TeX and LaTeX] %\fi % \section{File \texttt{bidi.tex}} % \begin{macrocode} -\def\bididate{2022/05/20} +\def\bididate{2022/05/22} \catcode`@=11 -\def\bidi@version{36.8} +\def\bidi@version{36.9} \let \protect \relax \newlinechar`\^^J \edef\@bidi@info{****************************************************^^J% @@ -2369,7 +2368,7 @@ Bidirectional typesetting in plain TeX and LaTeX] } \def\@bidi@pdfcustomproperties{% This is the bidi package, Version \bidi@version, - Released May 20, 2022. + Released May 22, 2022. } \def\bidi@pdfm@mark{% \special{pdf:% @@ -18286,7 +18285,7 @@ to\rtside{\box\bslice\hfil}} %\fi % \section{File \texttt{scrartcl-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{scrartcl-xetex-bidi.def}[2017/06/09 v1.1 bidi adaptations for scrartcl class for XeTeX engine] +\ProvidesFile{scrartcl-xetex-bidi.def}[2022/05/22 v1.2 bidi adaptations for scrartcl class for XeTeX engine] \newcommand{\scr@saved@LTRfootnotetext}{} \newcommand{\scr@saved@RTLfootnotetext}{} \let\scr@saved@footnotetext\@footnotetext @@ -18305,28 +18304,68 @@ to\rtside{\box\bslice\hfil}} \csname FN@mf@prepare\endcsname } \renewcommand\deffootnote[4][]{% - \long\def\@makefntext##1{% - \setlength{\@tempdimc}{#3}% - \def\@tempa{#1}\ifx\@tempa\@empty - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#2}% - \if@RTL\parshape \@ne 0pt \@tempdima\else\parshape \@ne #2 \@tempdima\fi}% - \else - \addtolength{\@tempdimc}{#2}% - \addtolength{\@tempdimc}{-#1}% - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#1}% - \@tempdimb = \hsize - \addtolength{\@tempdimb}{-#2}% - \if@RTL\parshape \tw@ 0pt \@tempdima 0pt \@tempdimb\else\parshape \tw@ #1 \@tempdima #2 \@tempdimb\fi + \expandafter\ifnum\scr@v@is@ge{3.22}\relax + \long\def\@makefntext##1{% + \ExecuteDoHook{footnote/text/begin}% + \raggedfootnote + \if@RTL + \rightskip + \else + \leftskip + \fi + #2 + \l@addto@macro\@trivlist{% + \ifnum\@listdepth=\@ne + \if@RTL + \advance\rightmargin #2\relax + \else + \advance\leftmargin #2\relax + \fi + \fi }% - \fi - \par - \parindent\@tempdimc\noindent - \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% - }% + \parindent #3\noindent + \IfArgIsEmpty{#1}{}{% + \hskip \dimexpr #1-#2\relax + }% + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% + \ExecuteDoHook{footnote/text/end}% + }% + \else + \ClassInfo{\KOMAClassName}{% + Using old \string\@makefntext\space due to compatibility + level\MessageBreak + less than 3.22}% + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#2}% + \if@RTL + \parshape \@ne \z@ \@tempdima + \else + \parshape \@ne #2 \@tempdima + \fi}% + \else + \addtolength{\@tempdimc}{#2}% + \addtolength{\@tempdimc}{-#1}% + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#1}% + \@tempdimb = \hsize + \addtolength{\@tempdimb}{-#2}% + \if@RTL + \parshape \tw@ \z@ \@tempdima \z@ \@tempdimb + \else + \parshape \tw@ #1 \@tempdima #2 \@tempdimb + \fi + }% + \fi + \par + \parindent\@tempdimc\noindent + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% + }% + \fi \def\@@makefnmark{\hbox{\ftnm@font{#4}}}% } \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} @@ -18345,11 +18384,48 @@ to\rtside{\box\bslice\hfil}} \hbox to \columnwidth{\hskip \dimexpr\columnwidth-\ftn@rule@width\relax \leavevmode\leaders\hrule\@height\ftn@rule@height\hfill\kern\z@}}}% \kern 2.6\p@} \renewcommand*\maketitle[1][1]{% + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \else + \def\and{% + \end{tabular}% + \hskip 1em \@plus.17fil% + \begin{tabular}[t]{c}% + }% + \fi \if@titlepage \begin{titlepage} \setcounter{page}{% #1% }% + \if@titlepageiscoverpage + \edef\titlepage@restore{% + \noexpand\endgroup + \noexpand\global\noexpand\@colht\the\@colht + \noexpand\global\noexpand\@colroom\the\@colroom + \noexpand\global\vsize\the\vsize + \noexpand\global\noexpand\@titlepageiscoverpagefalse + \noexpand\let\noexpand\titlepage@restore\noexpand\relax + }% + \begingroup + \topmargin=\dimexpr \coverpagetopmargin-1in\relax + \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax + \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax + \textwidth=\dimexpr + \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax + \textheight=\dimexpr + \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax + \headheight=0pt + \headsep=0pt + \footskip=\baselineskip + \@colht=\textheight + \@colroom=\textheight + \vsize=\textheight + \columnwidth=\textwidth + \hsize=\columnwidth + \linewidth=\hsize + \else + \let\titlepage@restore\relax + \fi \let\footnotesize\small \let\right@footnoterule\relax \let\left@footnoterule\relax @@ -18360,54 +18436,97 @@ to\rtside{\box\bslice\hfil}} \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% - \ifx\@extratitle\@empty \else - \noindent\@extratitle\next@tpage\cleardoubleemptypage - \thispagestyle{empty}% + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty + \else + \if@twoside\mbox{}\next@tpage\fi + \noindent\@frontispiece\next@tdpage + \fi + \else + \noindent\@extratitle + \ifx\@frontispiece\@empty + \else + \next@tpage + \noindent\@frontispiece + \fi + \next@tdpage \fi \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative \ifx\@titlehead\@empty \else \begin{minipage}[t]{\textwidth}% - \@titlehead + \usekomafont{titlehead}{\@titlehead\par}% \end{minipage}\par \fi \null\vfill \begin{center} \ifx\@subject\@empty \else - {\subject@font \@subject \par}% + {\usekomafont{subject}{\@subject\par}}% \vskip 3em \fi - {\titlefont\huge \@title\par}% + {\usekomafont{title}{\huge \@title\par}}% \vskip 1em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% \vskip 2em - {\Large \lineskip 0.75em - \begin{tabular}[t]{c} - \@author - \end{tabular}\par + {% + \usekomafont{author}{% + \lineskip 0.75em + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% }% \vskip 1.5em - {\Large \@date \par}% + {\usekomafont{date}{\@date \par}}% \vskip \z@ \@plus3fill - {\Large \@publishers \par}% + {\usekomafont{publishers}{\@publishers \par}}% \vskip 3em \end{center}\par - \@thanks + \@thanks\global\let\@thanks\@empty \vfill\null - \if@twoside\next@tpage - \begin{minipage}[t]{\textwidth} - \@uppertitleback - \end{minipage}\par - \vfill - \begin{minipage}[b]{\textwidth} - \@lowertitleback - \end{minipage} + \if@twoside + \@tempswatrue + \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax + \else + \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty + \@tempswafalse + \fi\fi + \fi + \if@tempswa + \next@tpage + \begin{minipage}[t]{\textwidth} + \@uppertitleback + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \@lowertitleback + \end{minipage}\par + \@thanks\global\let\@thanks\@empty + \fi + \else + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi \fi - \ifx\@dedication\@empty \else - \next@tpage\null\vfill - {\centering \Large \@dedication \par}% + \ifx\@dedication\@empty + \else + \next@tdpage\null\vfill + {\centering\usekomafont{dedication}{\@dedication \par}}% \vskip \z@ \@plus3fill - \if@twoside \next@tpage\cleardoubleemptypage \fi + \@thanks\global\let\@thanks\@empty + \cleardoubleemptypage \fi + \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi \end{titlepage} \else \par @@ -18415,101 +18534,111 @@ to\rtside{\box\bslice\hfil}} #1% \relax\ifnum\@tempcnta=1\else \ClassWarning{\KOMAClassName}{% - Optional argument of \string\maketitle\space ignored - at\MessageBreak - notitlepage-mode% + Optional argument of \string\maketitle\space ignored\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% }% \fi \begingroup + \let\titlepage@restore\relax \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark - \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark} + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% + \next@tdpage \if@twocolumn \ifnum \col@number=\@ne + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi \@maketitle \else + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \twocolumn[\@makeextratitle]% + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \twocolumn[\@makefrontispiece]% + \next@tdpage + \fi \twocolumn[\@maketitle]% \fi \else - \newpage - \global\@topnum\z@ + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else \mbox{}\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi \@maketitle \fi - \thispagestyle{\titlepagestyle}\@thanks + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi + \@thanks\global\let\@thanks\@empty \endgroup \fi \setcounter{footnote}{0}% - \let\thanks\relax - \let\LTRthanks\relax - \let\RTLthanks\relax - \let\maketitle\relax - \let\@maketitle\relax - \global\let\@thanks\@empty - \global\let\@author\@empty - \global\let\@date\@empty - \global\let\@title\@empty - \global\let\@subtitle\@empty - \global\let\@extratitle\@empty - \global\let\@titlehead\@empty - \global\let\@subject\@empty - \global\let\@publishers\@empty - \global\let\@uppertitleback\@empty - \global\let\@lowertitleback\@empty - \global\let\@dedication\@empty - \global\let\author\relax - \global\let\title\relax - \global\let\extratitle\relax - \global\let\titlehead\relax - \global\let\subject\relax - \global\let\publishers\relax - \global\let\uppertitleback\relax - \global\let\lowertitleback\relax - \global\let\dedication\relax - \global\let\date\relax - \global\let\and\relax -}% -\renewcommand*{\@maketitle}{% - \clearpage - \let\footnote\thanks - \let\LTRfootnote\LTRthanks - \let\RTLfootnote\RTLthanks - \ifx\@extratitle\@empty \else - \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \let\thanks\relax + \let\LTRthanks\relax + \let\RTLthanks\relax + \let\maketitle\relax + \let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@subtitle\@empty + \global\let\@extratitle\@empty + \global\let\@frontispiece\@empty + \global\let\@titlehead\@empty + \global\let\@subject\@empty + \global\let\@publishers\@empty + \global\let\@uppertitleback\@empty + \global\let\@lowertitleback\@empty + \global\let\@dedication\@empty + \global\let\author\relax + \global\let\title\relax + \global\let\extratitle\relax + \global\let\titlehead\relax + \global\let\subject\relax + \global\let\publishers\relax + \global\let\uppertitleback\relax + \global\let\lowertitleback\relax + \global\let\dedication\relax + \global\let\date\relax \fi - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \ifx\@titlehead\@empty \else - \begin{minipage}[t]{\textwidth} - \@titlehead - \end{minipage}\par - \fi - \null - \vskip 2em% - \begin{center}% - \ifx\@subject\@empty \else - {\subject@font \@subject \par} - \vskip 1.5em - \fi - {\titlefont\huge \@title \par}% - \vskip .5em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% - \vskip 1em - {\Large - \lineskip .5em% - \begin{tabular}[t]{c} - \@author - \end{tabular}\par - }% - \vskip 1em% - {\Large \@date \par}% - \vskip \z@ \@plus 1em - {\Large \@publishers \par} - \ifx\@dedication\@empty \else - \vskip 2em - {\Large \@dedication \par} - \fi - \end{center}% - \par - \vskip 2em + \global\let\and\relax }% \def\raggedsection{\if@RTL\raggedleft\else\raggedright\fi} \def\raggedpart{\if@RTL\raggedleft\else\raggedright\fi} @@ -18587,16 +18716,6 @@ to\rtside{\box\bslice\hfil}} \fi \bib@endhook } -\renewcommand*\left@footnoterule{% - \kern-3\p@ - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - \hrule\@width.4\columnwidth - \kern 2.6\p@} -\renewcommand*\right@footnoterule{% - \kern-3\p@ - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill } - \kern2.6\p@} \renewcommand*{\raggeddictum}{\if@RTL\raggedright\else\raggedleft\fi} \renewcommand*{\raggeddictumtext}{\if@RTL\raggedleft\else\raggedright\fi} \renewcommand*{\raggeddictumauthor}{\if@RTL\raggedright\else\raggedleft\fi} @@ -18605,76 +18724,61 @@ to\rtside{\box\bslice\hfil}} } \renewcommand{\@@makecaption}[3]{% \cap@margin - \ifonelinecaptions - \@tempcnta=\value{mpfootnote}\@tempcntb=\value{footnote}% - \let\scr@tmp@footnotetext=\@footnotetext - \let\@footnotetext=\@gobble - \let\scr@tmp@LTRfootnotetext=\@LTRfootnotetext - \let\@LTRfootnotetext=\@gobble - \let\scr@tmp@RTLfootnotetext=\@RTLfootnotetext - \let\@RTLfootnotetext=\@gobble - \sbox\@tempboxa{% - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}% - #3\unskip\strut}}% - }% - \let\@footnotetext=\scr@tmp@footnotetext - \let\scr@tmp@footnotetext=\undefined - \let\@LTRfootnotetext=\scr@tmp@LTRfootnotetext - \let\scr@tmp@LTRfootnotetext=\undefined - \let\@RTLfootnotetext=\scr@tmp@RTLfootnotetext - \let\scr@tmp@RTLfootnotetext=\undefined - \setcounter{footnote}{\@tempcntb}% - \setcounter{mpfootnote}{\@tempcnta}% - \else - \sbox\@tempboxa{\hspace*{2\cap@width}}% - \fi - \begingroup% - \setlength{\@tempdima}{\cap@width}% - \ifdim \wd\@tempboxa >\@tempdima - \hb@xt@\hsize{% - \setbox\@tempboxa\vbox{\hsize=\cap@width - \ifdofullc@p - {\capfont{\@hangfrom{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}}% - {#3\unskip\strut\par}}}% - \else% - \ifdim\cap@indent<\z@ - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\hspace*{-\cap@indent}#3\unskip\strut\par}}% - \else% - \if@capbreak - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\@hangfrom{\hspace*{\cap@indent}}{#3\par}}}% - \else - {\capfont{\@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}% - {\hspace{-\cap@indent}\scr@smashdp{\ignorespaces#1% - {{\caplabelfont{#2\captionformat}}}}#3\unskip\strut\par}}}% - \fi - \fi - \fi + \begingroup + \ifonelinecaptions + \def\stepcounter##1{\advance\value{##1}\@ne}% + \let\refstepcounter\stepcounter + \let\label\@gobble + \let\@footnotetext=\@gobble + \let\@LTRfootnotetext=\@gobble + \let\@RTLfootnotetext=\@gobble + \let\hypertarget\@gobbletwo + \edef\@xnewline{% + \unexpanded{\ClassInfo{\KOMAClassName}{% + Workaround for not recommended usage of \string\\ or\MessageBreak + \string\newline in caption text + }% + \hspace*{\linewidth}\hspace{1sp}% }% - \setlength{\@tempdima}{\ht\@tempboxa}% - \addtolength{\@tempdima}{\dp\@tempboxa}% - \addtolength{\@tempdima}{-\ht\strutbox}% - \ht\@tempboxa\ht\strutbox - \dp\@tempboxa\@tempdima - \strut\cap@left - \box\@tempboxa - \cap@right\strut + \unexpanded\expandafter{\@xnewline}% }% - \else - \global \@minipagefalse - \sbox\@tempboxa{% - {\capfont{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}% - #3}}% + \edef\@xcentercr{% + \unexpanded{\ClassInfo{\KOMAClassName}{% + Workaround for not recommended usage of \string\\ or\MessageBreak + \string\newline in caption text + }% + \hspace*{\linewidth}\hspace{1sp}% + }% + \unexpanded\expandafter{\@xcentercr}% }% - {\capfont{\hb@xt@\hsize{\strut\cap@left\if@RTL\beginR\fi\box\@tempboxa\if@RTL\endR\fi\cap@right\strut}}}% + \settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}% + \ifdim\@tempdima>\cap@width + \aftergroup\scr@makemultilinecaption + \else + \aftergroup\scr@makesinglelinecaption + \fi + \else + \aftergroup\scr@makemultilinecaption \fi \endgroup + {#1}{#2}{#3}% +} +\renewcommand{\scr@makesinglelinecaption}[3]{% + {% + \usefontofkomafont{caption}{% + \hb@xt@\hsize{% + \cap@left + \if@RTL + \beginR + \fi + \scr@@makesinglelinecaption{#1}{#2}{#3}% + \if@RTL + \endR + \fi + \cap@right + }\par\kern\dp\strutbox% + }% + }\kern-\dp\strutbox } \renewcommand{\@makecaption}[2]{% \if@captionabove @@ -18689,10 +18793,8 @@ to\rtside{\box\bslice\hfil}} \vskip\belowcaptionskip \fi } + \bidi@AfterFile{longtable-xetex-bidi.def}{% - \@ifpackageloaded{caption2}{\@komalongtablefalse - \scr@caption@before@longtable@warning{caption2}% - }{}% \if@komalongtable \renewcommand{\LT@makecaption}[3]{% \noalign{% @@ -18704,6 +18806,7 @@ to\rtside{\box\bslice\hfil}} }% \LT@mcol\LT@cols c{% \hbox to\z@{\hss\parbox[t]\linewidth{% + \def\@captype{table}% \@@makecaption{#1}{#2}{#3}% \endgraf \if@captionabove @@ -18755,12 +18858,11 @@ to\rtside{\box\bslice\hfil}} \expandafter\renewcommand% \csname scr@tso@#1@linefill\endcsname{% \if@sectionentrywithdots - \TOCLineLeaderFill\relax + {\usekomafont{sectionentrydots}{\TOCLineLeaderFill}}\relax \else \hfill \fi }% - % F^^fcr die Eintr^^e4ge die Schrift von Element sectionentry verwenden. \expandafter\renewcommand% \csname scr@tso@#1@entryformat\endcsname{\usekomafont{sectionentry}}% \expandafter\renewcommand% @@ -18778,14 +18880,6 @@ to\rtside{\box\bslice\hfil}} \CloneTOCEntryStyle{subsection}{default} \DeclareSectionCommand[% - style=part,% - level=\z@,% - tocstyle=part,% - toclevel=\m@ne,% - tocindent=\z@,% - tocnumwidth=2em% -]{part} -\DeclareSectionCommand[% style=section,% level=1,% indent=\z@,% @@ -18796,6 +18890,14 @@ to\rtside{\box\bslice\hfil}} tocnumwidth=1.5em% ]{section} \DeclareSectionCommand[% + style=part,% + level=\z@,% + tocstyle=part,% + toclevel=\m@ne,% + tocindent=\z@,% + tocnumwidth=2em% +]{part} +\DeclareSectionCommand[% style=section,% level=2,% indent=\z@,% @@ -18822,6 +18924,7 @@ to\rtside{\box\bslice\hfil}} beforeskip=3.25ex \@plus1ex \@minus.2ex,% afterskip=-1em,% tocstyle=subsection,% + tocindentfollows=subsubsection,% tocindent=7.0em,% tocnumwidth=4.1em% ]{paragraph} @@ -18842,7 +18945,7 @@ to\rtside{\box\bslice\hfil}} %\fi % \section{File \texttt{scrbook-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{scrbook-xetex-bidi.def}[2017/06/09 v1.1 bidi adaptations for scrbook class for XeTeX engine] +\ProvidesFile{scrbook-xetex-bidi.def}[2022/05/22 v1.2 bidi adaptations for scrbook class for XeTeX engine] \newcommand{\scr@saved@LTRfootnotetext}{} \newcommand{\scr@saved@RTLfootnotetext}{} \let\scr@saved@footnotetext\@footnotetext @@ -18861,28 +18964,69 @@ to\rtside{\box\bslice\hfil}} \csname FN@mf@prepare\endcsname } \renewcommand\deffootnote[4][]{% - \long\def\@makefntext##1{% - \setlength{\@tempdimc}{#3}% - \def\@tempa{#1}\ifx\@tempa\@empty - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#2}% - \if@RTL\parshape \@ne 0pt \@tempdima\else\parshape \@ne #2 \@tempdima\fi}% - \else - \addtolength{\@tempdimc}{#2}% - \addtolength{\@tempdimc}{-#1}% - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#1}% - \@tempdimb = \hsize - \addtolength{\@tempdimb}{-#2}% - \if@RTL\parshape \tw@ 0pt \@tempdima 0pt \@tempdimb\else\parshape \tw@ #1 \@tempdima #2 \@tempdimb\fi + \expandafter\ifnum\scr@v@is@ge{3.22}\relax + \long\def\@makefntext##1{% + \ExecuteDoHook{footnote/text/begin}% + \raggedfootnote + \if@RTL + \rightskip + \else + \leftskip + \fi + #2 + \l@addto@macro\@trivlist{% + \ifnum\@listdepth=\@ne\advance + \if@RTL + \rightmargin #2\relax + \else + \leftmargin #2\relax + \fi + \fi }% - \fi - \par - \parindent\@tempdimc\noindent - \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% - }% + \parindent #3\noindent + \IfArgIsEmpty{#1}{}{% + \hskip \dimexpr #1-#2\relax + }% + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% + \ExecuteDoHook{footnote/text/end}% + }% + \else + \ClassInfo{\KOMAClassName}{% + Using old \string\@makefntext\space due to compatibility + level\MessageBreak + less than 3.22}% + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#2}% + \if@RTL + \parshape \@ne \z@ \@tempdima + \else + \parshape \@ne #2 \@tempdima + \fi + }% + \else + \addtolength{\@tempdimc}{#2}% + \addtolength{\@tempdimc}{-#1}% + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#1}% + \@tempdimb = \hsize + \addtolength{\@tempdimb}{-#2}% + \if@RTL + \parshape \tw@ \z@ \@tempdima \z@ \@tempdimb + \else + \parshape \tw@ #1 \@tempdima #2 \@tempdimb + \fi + }% + \fi + \par + \parindent\@tempdimc\noindent + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% + }% + \fi \def\@@makefnmark{\hbox{\ftnm@font{#4}}}% } \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} @@ -18901,11 +19045,48 @@ to\rtside{\box\bslice\hfil}} \hbox to \columnwidth{\hskip \dimexpr\columnwidth-\ftn@rule@width\relax \leavevmode\leaders\hrule\@height\ftn@rule@height\hfill\kern\z@}}}% \kern 2.6\p@} \renewcommand*\maketitle[1][1]{% + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \else + \def\and{% + \end{tabular}% + \hskip 1em \@plus.17fil% + \begin{tabular}[t]{c}% + }% + \fi \if@titlepage \begin{titlepage} \setcounter{page}{% #1% }% + \if@titlepageiscoverpage + \edef\titlepage@restore{% + \noexpand\endgroup + \noexpand\global\noexpand\@colht\the\@colht + \noexpand\global\noexpand\@colroom\the\@colroom + \noexpand\global\vsize\the\vsize + \noexpand\global\noexpand\@titlepageiscoverpagefalse + \noexpand\let\noexpand\titlepage@restore\noexpand\relax + }% + \begingroup + \topmargin=\dimexpr \coverpagetopmargin-1in\relax + \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax + \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax + \textwidth=\dimexpr + \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax + \textheight=\dimexpr + \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax + \headheight=0pt + \headsep=0pt + \footskip=\baselineskip + \@colht=\textheight + \@colroom=\textheight + \vsize=\textheight + \columnwidth=\textwidth + \hsize=\columnwidth + \linewidth=\hsize + \else + \let\titlepage@restore\relax + \fi \let\footnotesize\small \let\right@footnoterule\relax \let\left@footnoterule\relax @@ -18916,54 +19097,97 @@ to\rtside{\box\bslice\hfil}} \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% - \ifx\@extratitle\@empty \else - \noindent\@extratitle\next@tpage\cleardoubleemptypage - \thispagestyle{empty}% + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty + \else + \if@twoside\mbox{}\next@tpage\fi + \noindent\@frontispiece\next@tdpage + \fi + \else + \noindent\@extratitle + \ifx\@frontispiece\@empty + \else + \next@tpage + \noindent\@frontispiece + \fi + \next@tdpage \fi \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative \ifx\@titlehead\@empty \else \begin{minipage}[t]{\textwidth}% - \@titlehead + \usekomafont{titlehead}{\@titlehead\par}% \end{minipage}\par \fi \null\vfill \begin{center} \ifx\@subject\@empty \else - {\subject@font \@subject \par}% + {\usekomafont{subject}{\@subject\par}}% \vskip 3em \fi - {\titlefont\huge \@title\par}% + {\usekomafont{title}{\huge \@title\par}}% \vskip 1em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% \vskip 2em - {\Large \lineskip 0.75em - \begin{tabular}[t]{c} - \@author - \end{tabular}\par + {% + \usekomafont{author}{% + \lineskip 0.75em + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% }% \vskip 1.5em - {\Large \@date \par}% + {\usekomafont{date}{\@date \par}}% \vskip \z@ \@plus3fill - {\Large \@publishers \par}% + {\usekomafont{publishers}{\@publishers \par}}% \vskip 3em \end{center}\par - \@thanks + \@thanks\global\let\@thanks\@empty \vfill\null - \if@twoside\next@tpage - \begin{minipage}[t]{\textwidth} - \@uppertitleback - \end{minipage}\par - \vfill - \begin{minipage}[b]{\textwidth} - \@lowertitleback - \end{minipage} + \if@twoside + \@tempswatrue + \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax + \else + \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty + \@tempswafalse + \fi\fi + \fi + \if@tempswa + \next@tpage + \begin{minipage}[t]{\textwidth} + \@uppertitleback + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \@lowertitleback + \end{minipage}\par + \@thanks\global\let\@thanks\@empty + \fi + \else + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi \fi - \ifx\@dedication\@empty \else - \next@tpage\null\vfill - {\centering \Large \@dedication \par}% + \ifx\@dedication\@empty + \else + \next@tdpage\null\vfill + {\centering\usekomafont{dedication}{\@dedication \par}}% \vskip \z@ \@plus3fill - \if@twoside \next@tpage\cleardoubleemptypage \fi + \@thanks\global\let\@thanks\@empty + \cleardoubleemptypage \fi + \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi \end{titlepage} \else \par @@ -18971,106 +19195,116 @@ to\rtside{\box\bslice\hfil}} #1% \relax\ifnum\@tempcnta=1\else \ClassWarning{\KOMAClassName}{% - Optional argument of \string\maketitle\space ignored - at\MessageBreak - notitlepage-mode% + Optional argument of \string\maketitle\space ignored\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% }% \fi \begingroup + \let\titlepage@restore\relax \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark - \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark} + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% + \next@tdpage \if@twocolumn \ifnum \col@number=\@ne + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi \@maketitle \else + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \twocolumn[\@makeextratitle]% + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \twocolumn[\@makefrontispiece]% + \next@tdpage + \fi \twocolumn[\@maketitle]% \fi \else - \newpage - \global\@topnum\z@ + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else \mbox{}\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi \@maketitle \fi - \thispagestyle{\titlepagestyle}\@thanks + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi + \@thanks\global\let\@thanks\@empty \endgroup \fi \setcounter{footnote}{0}% - \let\thanks\relax - \let\LTRthanks\relax - \let\RTLthanks\relax - \let\maketitle\relax - \let\@maketitle\relax - \global\let\@thanks\@empty - \global\let\@author\@empty - \global\let\@date\@empty - \global\let\@title\@empty - \global\let\@subtitle\@empty - \global\let\@extratitle\@empty - \global\let\@titlehead\@empty - \global\let\@subject\@empty - \global\let\@publishers\@empty - \global\let\@uppertitleback\@empty - \global\let\@lowertitleback\@empty - \global\let\@dedication\@empty - \global\let\author\relax - \global\let\title\relax - \global\let\extratitle\relax - \global\let\titlehead\relax - \global\let\subject\relax - \global\let\publishers\relax - \global\let\uppertitleback\relax - \global\let\lowertitleback\relax - \global\let\dedication\relax - \global\let\date\relax - \global\let\and\relax -}% -\renewcommand*{\@maketitle}{% - \clearpage - \let\footnote\thanks - \let\LTRfootnote\LTRthanks - \let\RTLfootnote\RTLthanks - \ifx\@extratitle\@empty \else - \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi - \fi - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \ifx\@titlehead\@empty \else - \begin{minipage}[t]{\textwidth} - \@titlehead - \end{minipage}\par + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \let\thanks\relax + \let\LTRthanks\relax + \let\RTLthanks\relax + \let\maketitle\relax + \let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@subtitle\@empty + \global\let\@extratitle\@empty + \global\let\@frontispiece\@empty + \global\let\@titlehead\@empty + \global\let\@subject\@empty + \global\let\@publishers\@empty + \global\let\@uppertitleback\@empty + \global\let\@lowertitleback\@empty + \global\let\@dedication\@empty + \global\let\author\relax + \global\let\title\relax + \global\let\extratitle\relax + \global\let\titlehead\relax + \global\let\subject\relax + \global\let\publishers\relax + \global\let\uppertitleback\relax + \global\let\lowertitleback\relax + \global\let\dedication\relax + \global\let\date\relax \fi - \null - \vskip 2em% - \begin{center}% - \ifx\@subject\@empty \else - {\subject@font \@subject \par} - \vskip 1.5em - \fi - {\titlefont\huge \@title \par}% - \vskip .5em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% - \vskip 1em - {\Large - \lineskip .5em% - \begin{tabular}[t]{c} - \@author - \end{tabular}\par - }% - \vskip 1em% - {\Large \@date \par}% - \vskip \z@ \@plus 1em - {\Large \@publishers \par} - \ifx\@dedication\@empty \else - \vskip 2em - {\Large \@dedication \par} - \fi - \end{center}% - \par - \vskip 2em + \global\let\and\relax }% \def\raggedsection{\if@RTL\raggedleft\else\raggedright\fi} \renewcommand*\autodot{\if@altsecnumformat\@SepMark\fi} \renewcommand*\thesection{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax + \expandafter\ifnum\scr@v@is@gt{2.97d}% \if@mainmatter\thechapter\@SepMark\fi \else \thechapter\@SepMark% @@ -19085,27 +19319,17 @@ to\rtside{\box\bslice\hfil}} \renewcommand*{\thesubparagraph}{% \theparagraph\@SepMark\@arabic\c@subparagraph } -\renewcommand*\thefigure{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax - \if@mainmatter\thechapter\@SepMark\fi - \else - \thechapter\@SepMark% - \fi - \@arabic\c@figure -} -\renewcommand*\thetable{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax - \if@mainmatter\thechapter\@SepMark\fi - \else - \thechapter\@SepMark% - \fi - \@arabic\c@table -} -\renewcommand*\theequation{% - \ifnum \scr@compatibility>\@nameuse{scr@v@2.97d}\relax +\expandafter\ifnum\scr@v@is@le{2.97d}% + \renewcommand*\thefigure{\thechapter\@SepMark\@arabic\c@figure} +\fi +\expandafter\ifnum\scr@v@is@le{2.97d}% + \renewcommand*\thetable{\thechapter\@SepMark\@arabic\c@table} +\fi +\renewcommand*{\theequation}{% + \expandafter\ifnum\scr@v@is@gt{2.97d}% \if@mainmatter\thechapter\@SepMark\fi \else - \thechapter\@SepMark% + \thechapter\@SepMark% \fi \@arabic\c@equation } @@ -19174,16 +19398,6 @@ to\rtside{\box\bslice\hfil}} \fi \bib@endhook } -\renewcommand*\left@footnoterule{% - \kern-3\p@ - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - \hrule\@width.4\columnwidth - \kern 2.6\p@} -\renewcommand*\right@footnoterule{% - \kern-3\p@ - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill } - \kern2.6\p@} \renewcommand*{\raggeddictum}{\if@RTL\raggedright\else\raggedleft\fi} \renewcommand*{\raggeddictumtext}{\if@RTL\raggedleft\else\raggedright\fi} \renewcommand*{\raggeddictumauthor}{\if@RTL\raggedright\else\raggedleft\fi} @@ -19192,76 +19406,61 @@ to\rtside{\box\bslice\hfil}} } \renewcommand{\@@makecaption}[3]{% \cap@margin - \ifonelinecaptions - \@tempcnta=\value{mpfootnote}\@tempcntb=\value{footnote}% - \let\scr@tmp@footnotetext=\@footnotetext - \let\@footnotetext=\@gobble - \let\scr@tmp@LTRfootnotetext=\@LTRfootnotetext - \let\@LTRfootnotetext=\@gobble - \let\scr@tmp@RTLfootnotetext=\@RTLfootnotetext - \let\@RTLfootnotetext=\@gobble - \sbox\@tempboxa{% - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}% - #3\unskip\strut}}% - }% - \let\@footnotetext=\scr@tmp@footnotetext - \let\scr@tmp@footnotetext=\undefined - \let\@LTRfootnotetext=\scr@tmp@LTRfootnotetext - \let\scr@tmp@LTRfootnotetext=\undefined - \let\@RTLfootnotetext=\scr@tmp@RTLfootnotetext - \let\scr@tmp@RTLfootnotetext=\undefined - \setcounter{footnote}{\@tempcntb}% - \setcounter{mpfootnote}{\@tempcnta}% - \else - \sbox\@tempboxa{\hspace*{2\cap@width}}% - \fi - \begingroup% - \setlength{\@tempdima}{\cap@width}% - \ifdim \wd\@tempboxa >\@tempdima - \hb@xt@\hsize{% - \setbox\@tempboxa\vbox{\hsize=\cap@width - \ifdofullc@p - {\capfont{\@hangfrom{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}}% - {#3\unskip\strut\par}}}% - \else% - \ifdim\cap@indent<\z@ - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\hspace*{-\cap@indent}#3\unskip\strut\par}}% - \else% - \if@capbreak - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\@hangfrom{\hspace*{\cap@indent}}{#3\par}}}% - \else - {\capfont{\@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}% - {\hspace{-\cap@indent}\scr@smashdp{\ignorespaces#1% - {{\caplabelfont{#2\captionformat}}}}#3\unskip\strut\par}}}% - \fi - \fi - \fi + \begingroup + \ifonelinecaptions + \def\stepcounter##1{\advance\value{##1}\@ne}% + \let\refstepcounter\stepcounter + \let\label\@gobble + \let\@footnotetext=\@gobble + \let\@LTRfootnotetext=\@gobble + \let\@RTLfootnotetext=\@gobble + \let\hypertarget\@gobbletwo + \edef\@xnewline{% + \unexpanded{\ClassInfo{\KOMAClassName}{% + Workaround for not recommended usage of \string\\ or\MessageBreak + \string\newline in caption text + }% + \hspace*{\linewidth}\hspace{1sp}% }% - \setlength{\@tempdima}{\ht\@tempboxa}% - \addtolength{\@tempdima}{\dp\@tempboxa}% - \addtolength{\@tempdima}{-\ht\strutbox}% - \ht\@tempboxa\ht\strutbox - \dp\@tempboxa\@tempdima - \strut\cap@left - \box\@tempboxa - \cap@right\strut + \unexpanded\expandafter{\@xnewline}% }% - \else - \global \@minipagefalse - \sbox\@tempboxa{% - {\capfont{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}% - #3}}% + \edef\@xcentercr{% + \unexpanded{\ClassInfo{\KOMAClassName}{% + Workaround for not recommended usage of \string\\ or\MessageBreak + \string\newline in caption text + }% + \hspace*{\linewidth}\hspace{1sp}% + }% + \unexpanded\expandafter{\@xcentercr}% }% - {\capfont{\hb@xt@\hsize{\strut\cap@left\if@RTL\beginR\fi\box\@tempboxa\if@RTL\endR\fi\cap@right\strut}}}% + \settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}% + \ifdim\@tempdima>\cap@width + \aftergroup\scr@makemultilinecaption + \else + \aftergroup\scr@makesinglelinecaption + \fi + \else + \aftergroup\scr@makemultilinecaption \fi \endgroup + {#1}{#2}{#3}% +} +\renewcommand{\scr@makesinglelinecaption}[3]{% + {% + \usefontofkomafont{caption}{% + \hb@xt@\hsize{% + \cap@left + \if@RTL + \beginR + \fi + \scr@@makesinglelinecaption{#1}{#2}{#3}% + \if@RTL + \endR + \fi + \cap@right + }\par\kern\dp\strutbox% + }% + }\kern-\dp\strutbox } \renewcommand{\@makecaption}[2]{% \if@captionabove @@ -19277,9 +19476,6 @@ to\rtside{\box\bslice\hfil}} \fi } \bidi@AfterFile{longtable-xetex-bidi.def}{% - \@ifpackageloaded{caption2}{\@komalongtablefalse - \scr@caption@before@longtable@warning{caption2}% - }{}% \if@komalongtable \renewcommand{\LT@makecaption}[3]{% \noalign{% @@ -19291,6 +19487,7 @@ to\rtside{\box\bslice\hfil}} }% \LT@mcol\LT@cols c{% \hbox to\z@{\hss\parbox[t]\linewidth{% + \def\@captype{table}% \@@makecaption{#1}{#2}{#3}% \endgraf \if@captionabove @@ -19342,7 +19539,7 @@ to\rtside{\box\bslice\hfil}} \expandafter\renewcommand% \csname scr@tso@#1@linefill\endcsname{% \if@chapterentrywithdots - \TOCLineLeaderFill\relax + {\usekomafont{chapterentrydots}{\TOCLineLeaderFill}}\relax \else \hfill \fi @@ -19365,15 +19562,6 @@ to\rtside{\box\bslice\hfil}} \CloneTOCEntryStyle{section}{default} \DeclareSectionCommand[% - style=part,% - level=\m@ne,% - pagestyle=plain,% - tocstyle=part,% - toclevel=\m@ne,% - tocindent=\z@,% - tocnumwidth=2em% -]{part} -\DeclareSectionCommand[% style=chapter,% level=\z@,% pagestyle=plain,% @@ -19388,10 +19576,20 @@ to\rtside{\box\bslice\hfil}} beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,% afterskip=2.3ex \@plus.2ex,% tocstyle=section,% + tocindentfollows=chapter,% tocindent=1.5em,% tocnumwidth=2.3em% ]{section} \DeclareSectionCommand[% + style=part,% + level=\m@ne,% + pagestyle=plain,% + tocstyle=part,% + toclevel=\m@ne,% + tocindent=\z@,% + tocnumwidth=2em% +]{part} +\DeclareSectionCommand[% style=section,% level=2,% indent=\z@,% @@ -19417,6 +19615,7 @@ to\rtside{\box\bslice\hfil}} indent=\z@,% beforeskip=3.25ex \@plus1ex \@minus.2ex,% afterskip=-1em,% + tocindentfollows=subsubsection,% tocstyle=section,% tocindent=10em,% tocnumwidth=5em% @@ -19431,131 +19630,14 @@ to\rtside{\box\bslice\hfil}} tocindent=12em,% tocnumwidth=6em% ]{subparagraph} - - % \end{macrocode} % \iffalse %</scrbook-xetex-bidi.def> -%<*scrlettr-xetex-bidi.def> -%\fi -% \section{File \texttt{scrlettr-xetex-bidi.def}} -% \begin{macrocode} -\ProvidesFile{scrlettr-xetex-bidi.def}[2015/11/14 v0.3 bidi adaptations for scrlettr class for XeTeX engine] -\renewcommand\deffootnote[4][]{% - \long\def\@makefntext##1{% - \edef\@tempa{#1}\ifx\@tempa\@empty - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#2} - \if@RTL\parshape \@ne 0pt \@tempdima\else\parshape \@ne #2 \@tempdima\fi}% - \else - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#1} - \@tempdimb = \hsize - \addtolength{\@tempdimb}{-#2} - \if@RTL\parshape \tw@ 0pt \@tempdima 0pt \@tempdimb\else\parshape \tw@ #1 \@tempdima #2 \@tempdimb\fi}% - \fi - \par - \parindent #3\noindent - \hbox to \z@{\hss\@@makefnmark}##1} - \def\@@makefnmark{\hbox{#4}} -} -\deffootnote[1em]{1.5em}{1em} - {\textsuperscript{\thefootnotemark}} -\def\left@footnoterule{\kern-1\p@ - \hrule width 0.4\columnwidth - \kern .6\p@} -\def\right@footnoterule{% - \kern-1\p@ - \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill } - \kern .6\p@} -\def\@datefield{\@reffalse - \ifx\varyourref\@empty \else \@reftrue \fi - \ifx\varyourmail\@empty \else \@reftrue \fi - \ifx\varmyref\@empty \else \@reftrue \fi - \ifx\varcustomer\@empty \else \@reftrue \fi - \ifx\varinvoice\@empty \else \@reftrue \fi - \ifx\varrefitemi\@empty \else \@reftrue \fi - \ifx\varrefitemii\@empty \else \@reftrue \fi - \ifx\varrefitemiii\@empty \else \@reftrue \fi - \vskip -\parskip - \vskip \refvskip - \if@ref - \ifx\varyourref\@empty \else - \settowidth{\sc@temp}{\varyourref} - \setbox0\hbox{\scriptsize \sf \yourrefname} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varyourref}\hfill - \fi - \ifx\varyourmail\@empty \else - \settowidth{\sc@temp}{\varyourmail} - \setbox0\hbox{\scriptsize \sf \yourmailname} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varyourmail}\hfill - \fi - \ifx\varmyref\@empty \else - \settowidth{\sc@temp}{\varmyref} - \setbox0\hbox{\scriptsize \sf \myrefname} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varmyref}\hfill - \fi - \ifx\varcustomer\@empty \else - \settowidth{\sc@temp}{\varcustomer} - \setbox0\hbox{\scriptsize \sf \customername} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varcustomer}\hfill - \fi - \ifx\varinvoice\@empty \else - \settowidth{\sc@temp}{\varinvoice} - \setbox0\hbox{\scriptsize \sf \invoicename} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varinvoice}\hfill - \fi - \ifx\varrefitemi\@empty \else - \settowidth{\sc@temp}{\varrefitemi} - \setbox0\hbox{\scriptsize \sf \varrefitemnamei} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemi}\hfill - \fi - \ifx\varrefitemii\@empty \else - \settowidth{\sc@temp}{\varrefitemii} - \setbox0\hbox{\scriptsize \sf \varrefitemnameii} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemii}\hfill - \fi - \ifx\varrefitemiii\@empty \else - \settowidth{\sc@temp}{\varrefitemiii} - \setbox0\hbox{\scriptsize \sf \varrefitemnameiii} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \varrefitemiii}\hfill - \fi - \ifx\@date\@empty \else - \settowidth{\sc@temp}{\@date} - \setbox0\hbox{\scriptsize \sf \datename} - \ifdim \sc@temp > \wd0 \sc@@temp\sc@temp \else \sc@@temp\wd0 \fi - \parbox[t]{\sc@@temp}{\noindent \box0\par \@date} - \fi - \par - \vspace{2.5\baselineskip} - \else - {\ifx\@date\@empty \else \if@RTL\raggedright\else\raggedleft\fi\fromplace\ \@date\par \fi} - \vspace{1.5\baselineskip} - \fi} -\long\def\closing#1{\par\nobreak\vspace{0.5\baselineskip} - \stopbreaks \noindent \sc@temp\textwidth \advance\sc@temp by - -\sigindent \hspace{\sigindent}% - \parbox{\sc@temp}{\if@RTL\raggedleft\else\raggedright\fi\ignorespaces #1\mbox{}\\[\presig@skip] - \fromsig\strut}\par - \vspace{1.5\baselineskip}} -% \end{macrocode} -% \iffalse -%</scrlettr-xetex-bidi.def> %<*scrreprt-xetex-bidi.def> %\fi % \section{File \texttt{scrreprt-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{scrreprt-xetex-bidi.def}[2017/06/09 v1.1 bidi adaptations for scrreprt class for XeTeX engine] +\ProvidesFile{scrreprt-xetex-bidi.def}[2022/05/22 v1.2 bidi adaptations for scrreprt class for XeTeX engine] \newcommand{\scr@saved@LTRfootnotetext}{} \newcommand{\scr@saved@RTLfootnotetext}{} \let\scr@saved@footnotetext\@footnotetext @@ -19574,28 +19656,69 @@ to\rtside{\box\bslice\hfil}} \csname FN@mf@prepare\endcsname } \renewcommand\deffootnote[4][]{% - \long\def\@makefntext##1{% - \setlength{\@tempdimc}{#3}% - \def\@tempa{#1}\ifx\@tempa\@empty - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#2}% - \if@RTL\parshape \@ne 0pt \@tempdima\else\parshape \@ne #2 \@tempdima\fi}% - \else - \addtolength{\@tempdimc}{#2}% - \addtolength{\@tempdimc}{-#1}% - \@setpar{\@@par - \@tempdima = \hsize - \addtolength{\@tempdima}{-#1}% - \@tempdimb = \hsize - \addtolength{\@tempdimb}{-#2}% - \if@RTL\parshape \tw@ 0pt \@tempdima 0pt \@tempdimb\else\parshape \tw@ #1 \@tempdima #2 \@tempdimb\fi + \expandafter\ifnum\scr@v@is@ge{3.22}\relax + \long\def\@makefntext##1{% + \ExecuteDoHook{footnote/text/begin}% + \raggedfootnote + \if@RTL + \rightskip + \else + \leftskip + \fi + #2 + \l@addto@macro\@trivlist{% + \ifnum\@listdepth=\@ne + \if@RTL + \advance\rightmargin #2\relax + \else + \advance\leftmargin #2\relax + \fi + \fi }% - \fi - \par - \parindent\@tempdimc\noindent - \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% - }% + \parindent #3\noindent + \IfArgIsEmpty{#1}{}{% + \hskip \dimexpr #1-#2\relax + }% + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% + \ExecuteDoHook{footnote/text/end}% + }% + \else + \ClassInfo{\KOMAClassName}{% + Using old \string\@makefntext\space due to compatibility + level\MessageBreak + less than 3.22}% + \long\def\@makefntext##1{% + \setlength{\@tempdimc}{#3}% + \def\@tempa{#1}\ifx\@tempa\@empty + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#2}% + \if@RTL + \parshape \@ne \z@ \@tempdima + \else + \parshape \@ne #2 \@tempdima + \fi + }% + \else + \addtolength{\@tempdimc}{#2}% + \addtolength{\@tempdimc}{-#1}% + \@setpar{\@@par + \@tempdima = \hsize + \addtolength{\@tempdima}{-#1}% + \@tempdimb = \hsize + \addtolength{\@tempdimb}{-#2}% + \if@RTL + \parshape \tw@ \z@ \@tempdima \z@ \@tempdimb + \else + \parshape \tw@ #1 \@tempdima #2 \@tempdimb + \fi + }% + \fi + \par + \parindent\@tempdimc\noindent + \ftn@font\hbox to \z@{\hss\@@makefnmark}##1% + }% + \fi \def\@@makefnmark{\hbox{\ftnm@font{#4}}}% } \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} @@ -19614,11 +19737,48 @@ to\rtside{\box\bslice\hfil}} \hbox to \columnwidth{\hskip \dimexpr\columnwidth-\ftn@rule@width\relax \leavevmode\leaders\hrule\@height\ftn@rule@height\hfill\kern\z@}}}% \kern 2.6\p@} \renewcommand*\maketitle[1][1]{% + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \else + \def\and{% + \end{tabular}% + \hskip 1em \@plus.17fil% + \begin{tabular}[t]{c}% + }% + \fi \if@titlepage \begin{titlepage} \setcounter{page}{% #1% }% + \if@titlepageiscoverpage + \edef\titlepage@restore{% + \noexpand\endgroup + \noexpand\global\noexpand\@colht\the\@colht + \noexpand\global\noexpand\@colroom\the\@colroom + \noexpand\global\vsize\the\vsize + \noexpand\global\noexpand\@titlepageiscoverpagefalse + \noexpand\let\noexpand\titlepage@restore\noexpand\relax + }% + \begingroup + \topmargin=\dimexpr \coverpagetopmargin-1in\relax + \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax + \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax + \textwidth=\dimexpr + \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax + \textheight=\dimexpr + \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax + \headheight=0pt + \headsep=0pt + \footskip=\baselineskip + \@colht=\textheight + \@colroom=\textheight + \vsize=\textheight + \columnwidth=\textwidth + \hsize=\columnwidth + \linewidth=\hsize + \else + \let\titlepage@restore\relax + \fi \let\footnotesize\small \let\right@footnoterule\relax \let\left@footnoterule\relax @@ -19629,54 +19789,97 @@ to\rtside{\box\bslice\hfil}} \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% - \ifx\@extratitle\@empty \else - \noindent\@extratitle\next@tpage\cleardoubleemptypage - \thispagestyle{empty}% + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty + \else + \if@twoside\mbox{}\next@tpage\fi + \noindent\@frontispiece\next@tdpage + \fi + \else + \noindent\@extratitle + \ifx\@frontispiece\@empty + \else + \next@tpage + \noindent\@frontispiece + \fi + \next@tdpage \fi \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative \ifx\@titlehead\@empty \else \begin{minipage}[t]{\textwidth}% - \@titlehead + \usekomafont{titlehead}{\@titlehead\par}% \end{minipage}\par \fi \null\vfill \begin{center} \ifx\@subject\@empty \else - {\subject@font \@subject \par}% + {\usekomafont{subject}{\@subject\par}}% \vskip 3em \fi - {\titlefont\huge \@title\par}% + {\usekomafont{title}{\huge \@title\par}}% \vskip 1em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% + {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}% \vskip 2em - {\Large \lineskip 0.75em - \begin{tabular}[t]{c} - \@author - \end{tabular}\par + {% + \usekomafont{author}{% + \lineskip 0.75em + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% }% \vskip 1.5em - {\Large \@date \par}% + {\usekomafont{date}{\@date \par}}% \vskip \z@ \@plus3fill - {\Large \@publishers \par}% + {\usekomafont{publishers}{\@publishers \par}}% \vskip 3em \end{center}\par - \@thanks + \@thanks\global\let\@thanks\@empty \vfill\null - \if@twoside\next@tpage - \begin{minipage}[t]{\textwidth} - \@uppertitleback - \end{minipage}\par - \vfill - \begin{minipage}[b]{\textwidth} - \@lowertitleback - \end{minipage} + \if@twoside + \@tempswatrue + \expandafter\ifnum \@nameuse{scr@v@3.12}>\scr@compatibility\relax + \else + \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty + \@tempswafalse + \fi\fi + \fi + \if@tempswa + \next@tpage + \begin{minipage}[t]{\textwidth} + \@uppertitleback + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \@lowertitleback + \end{minipage}\par + \@thanks\global\let\@thanks\@empty + \fi + \else + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `twoside=false' mode% + }% + \fi \fi - \ifx\@dedication\@empty \else - \next@tpage\null\vfill - {\centering \Large \@dedication \par}% + \ifx\@dedication\@empty + \else + \next@tdpage\null\vfill + {\centering\usekomafont{dedication}{\@dedication \par}}% \vskip \z@ \@plus3fill - \if@twoside \next@tpage\cleardoubleemptypage \fi + \@thanks\global\let\@thanks\@empty + \cleardoubleemptypage \fi + \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi \end{titlepage} \else \par @@ -19684,101 +19887,111 @@ to\rtside{\box\bslice\hfil}} #1% \relax\ifnum\@tempcnta=1\else \ClassWarning{\KOMAClassName}{% - Optional argument of \string\maketitle\space ignored - at\MessageBreak - notitlepage-mode% + Optional argument of \string\maketitle\space ignored\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@uppertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\uppertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% + }% + \fi + \ifx\@lowertitleback\@empty\else + \ClassWarning{\KOMAClassName}{% + non empty \string\lowertitleback\space ignored + by \string\maketitle\MessageBreak + in `titlepage=false' mode% }% \fi \begingroup + \let\titlepage@restore\relax \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% \let\@oldmakefnmark\@makefnmark - \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark} + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% + \next@tdpage \if@twocolumn \ifnum \col@number=\@ne + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi \@maketitle \else + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else\if@twoside\mbox{}\fi\fi + \else + \twocolumn[\@makeextratitle]% + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \twocolumn[\@makefrontispiece]% + \next@tdpage + \fi \twocolumn[\@maketitle]% \fi \else - \newpage - \global\@topnum\z@ + \ifx\@extratitle\@empty + \ifx\@frontispiece\@empty\else \mbox{}\fi + \else + \@makeextratitle + \fi + \ifx\@frontispiece\@empty + \ifx\@extratitle\@empty\else\next@tdpage\fi + \else + \next@tpage + \@makefrontispiece + \next@tdpage + \fi \@maketitle \fi - \thispagestyle{\titlepagestyle}\@thanks + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi + \@thanks\global\let\@thanks\@empty \endgroup \fi \setcounter{footnote}{0}% - \let\thanks\relax - \let\LTRthanks\relax - \let\RTLthanks\relax - \let\maketitle\relax - \let\@maketitle\relax - \global\let\@thanks\@empty - \global\let\@author\@empty - \global\let\@date\@empty - \global\let\@title\@empty - \global\let\@subtitle\@empty - \global\let\@extratitle\@empty - \global\let\@titlehead\@empty - \global\let\@subject\@empty - \global\let\@publishers\@empty - \global\let\@uppertitleback\@empty - \global\let\@lowertitleback\@empty - \global\let\@dedication\@empty - \global\let\author\relax - \global\let\title\relax - \global\let\extratitle\relax - \global\let\titlehead\relax - \global\let\subject\relax - \global\let\publishers\relax - \global\let\uppertitleback\relax - \global\let\lowertitleback\relax - \global\let\dedication\relax - \global\let\date\relax - \global\let\and\relax -}% -\renewcommand*{\@maketitle}{% - \clearpage - \let\footnote\thanks - \let\LTRfootnote\LTRthanks - \let\RTLfootnote\RTLthanks - \ifx\@extratitle\@empty \else - \noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi + \expandafter\ifnum \csname scr@v@3.12\endcsname>\scr@compatibility\relax + \let\thanks\relax + \let\LTRthanks\relax + \let\RTLthanks\relax + \let\maketitle\relax + \let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@subtitle\@empty + \global\let\@extratitle\@empty + \global\let\@frontispiece\@empty + \global\let\@titlehead\@empty + \global\let\@subject\@empty + \global\let\@publishers\@empty + \global\let\@uppertitleback\@empty + \global\let\@lowertitleback\@empty + \global\let\@dedication\@empty + \global\let\author\relax + \global\let\title\relax + \global\let\extratitle\relax + \global\let\titlehead\relax + \global\let\subject\relax + \global\let\publishers\relax + \global\let\uppertitleback\relax + \global\let\lowertitleback\relax + \global\let\dedication\relax + \global\let\date\relax \fi - \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative - \ifx\@titlehead\@empty \else - \begin{minipage}[t]{\textwidth} - \@titlehead - \end{minipage}\par - \fi - \null - \vskip 2em% - \begin{center}% - \ifx\@subject\@empty \else - {\subject@font \@subject \par} - \vskip 1.5em - \fi - {\titlefont\huge \@title \par}% - \vskip .5em - {\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}% - \vskip 1em - {\Large - \lineskip .5em% - \begin{tabular}[t]{c} - \@author - \end{tabular}\par - }% - \vskip 1em% - {\Large \@date \par}% - \vskip \z@ \@plus 1em - {\Large \@publishers \par} - \ifx\@dedication\@empty \else - \vskip 2em - {\Large \@dedication \par} - \fi - \end{center}% - \par - \vskip 2em + \global\let\and\relax }% \def\raggedsection{\if@RTL\raggedleft\else\raggedright\fi} \renewcommand*\autodot{\if@altsecnumformat\@SepMark\fi} @@ -19794,14 +20007,12 @@ to\rtside{\box\bslice\hfil}} \renewcommand*{\thesubparagraph}{% \theparagraph\@SepMark\@arabic\c@subparagraph } -\renewcommand*\thefigure{% - \thechapter\@SepMark% - \@arabic\c@figure -} -\renewcommand*\thetable{% - \thechapter\@SepMark% - \@arabic\c@table -} +\expandafter\ifnum\scr@v@is@le{2.97d}% + \renewcommand*\thefigure{\thechapter\@SepMark\@arabic\c@figure} +\fi +\expandafter\ifnum\scr@v@is@le{2.97d}% + \renewcommand*\thetable{\thechapter\@SepMark\@arabic\c@table} +\fi \renewcommand*\theequation{% \thechapter\@SepMark% \@arabic\c@equation @@ -19871,16 +20082,6 @@ to\rtside{\box\bslice\hfil}} \fi \bib@endhook } -\renewcommand*\left@footnoterule{% - \kern-3\p@ - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - \hrule\@width.4\columnwidth - \kern 2.6\p@} -\renewcommand*\right@footnoterule{% - \kern-3\p@ - \ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi - \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill } - \kern2.6\p@} \renewcommand*{\raggeddictum}{\if@RTL\raggedright\else\raggedleft\fi} \renewcommand*{\raggeddictumtext}{\if@RTL\raggedleft\else\raggedright\fi} \renewcommand*{\raggeddictumauthor}{\if@RTL\raggedright\else\raggedleft\fi} @@ -19889,76 +20090,61 @@ to\rtside{\box\bslice\hfil}} } \renewcommand{\@@makecaption}[3]{% \cap@margin - \ifonelinecaptions - \@tempcnta=\value{mpfootnote}\@tempcntb=\value{footnote}% - \let\scr@tmp@footnotetext=\@footnotetext - \let\@footnotetext=\@gobble - \let\scr@tmp@LTRfootnotetext=\@LTRfootnotetext - \let\@LTRfootnotetext=\@gobble - \let\scr@tmp@RTLfootnotetext=\@RTLfootnotetext - \let\@RTLfootnotetext=\@gobble - \sbox\@tempboxa{% - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}% - #3\unskip\strut}}% - }% - \let\@footnotetext=\scr@tmp@footnotetext - \let\scr@tmp@footnotetext=\undefined - \let\@LTRfootnotetext=\scr@tmp@LTRfootnotetext - \let\scr@tmp@LTRfootnotetext=\undefined - \let\@RTLfootnotetext=\scr@tmp@RTLfootnotetext - \let\scr@tmp@RTLfootnotetext=\undefined - \setcounter{footnote}{\@tempcntb}% - \setcounter{mpfootnote}{\@tempcnta}% - \else - \sbox\@tempboxa{\hspace*{2\cap@width}}% - \fi - \begingroup% - \setlength{\@tempdima}{\cap@width}% - \ifdim \wd\@tempboxa >\@tempdima - \hb@xt@\hsize{% - \setbox\@tempboxa\vbox{\hsize=\cap@width - \ifdofullc@p - {\capfont{\@hangfrom{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}}% - {#3\unskip\strut\par}}}% - \else% - \ifdim\cap@indent<\z@ - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\hspace*{-\cap@indent}#3\unskip\strut\par}}% - \else% - \if@capbreak - {\capfont{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat\par}}}% - \noindent\@hangfrom{\hspace*{\cap@indent}}{#3\par}}}% - \else - {\capfont{\@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}% - {\hspace{-\cap@indent}\scr@smashdp{\ignorespaces#1% - {{\caplabelfont{#2\captionformat}}}}#3\unskip\strut\par}}}% - \fi - \fi - \fi + \begingroup + \ifonelinecaptions + \def\stepcounter##1{\advance\value{##1}\@ne}% + \let\refstepcounter\stepcounter + \let\label\@gobble + \let\@footnotetext=\@gobble + \let\@LTRfootnotetext=\@gobble + \let\@RTLfootnotetext=\@gobble + \let\hypertarget\@gobbletwo + \edef\@xnewline{% + \unexpanded{\ClassInfo{\KOMAClassName}{% + Workaround for not recommended usage of \string\\ or\MessageBreak + \string\newline in caption text + }% + \hspace*{\linewidth}\hspace{1sp}% }% - \setlength{\@tempdima}{\ht\@tempboxa}% - \addtolength{\@tempdima}{\dp\@tempboxa}% - \addtolength{\@tempdima}{-\ht\strutbox}% - \ht\@tempboxa\ht\strutbox - \dp\@tempboxa\@tempdima - \strut\cap@left - \box\@tempboxa - \cap@right\strut + \unexpanded\expandafter{\@xnewline}% }% - \else - \global \@minipagefalse - \sbox\@tempboxa{% - {\capfont{\scr@smashdp{\strut\ignorespaces - #1{{\caplabelfont{#2\captionformat}}}}% - #3}}% + \edef\@xcentercr{% + \unexpanded{\ClassInfo{\KOMAClassName}{% + Workaround for not recommended usage of \string\\ or\MessageBreak + \string\newline in caption text + }% + \hspace*{\linewidth}\hspace{1sp}% + }% + \unexpanded\expandafter{\@xcentercr}% }% - {\capfont{\hb@xt@\hsize{\strut\cap@left\if@RTL\beginR\fi\box\@tempboxa\if@RTL\endR\fi\cap@right\strut}}}% + \settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}% + \ifdim\@tempdima>\cap@width + \aftergroup\scr@makemultilinecaption + \else + \aftergroup\scr@makesinglelinecaption + \fi + \else + \aftergroup\scr@makemultilinecaption \fi \endgroup + {#1}{#2}{#3}% +} +\renewcommand{\scr@makesinglelinecaption}[3]{% + {% + \usefontofkomafont{caption}{% + \hb@xt@\hsize{% + \cap@left + \if@RTL + \beginR + \fi + \scr@@makesinglelinecaption{#1}{#2}{#3}% + \if@RTL + \endR + \fi + \cap@right + }\par\kern\dp\strutbox% + }% + }\kern-\dp\strutbox } \renewcommand{\@makecaption}[2]{% \if@captionabove @@ -19974,9 +20160,6 @@ to\rtside{\box\bslice\hfil}} \fi } \bidi@AfterFile{longtable-xetex-bidi.def}{% - \@ifpackageloaded{caption2}{\@komalongtablefalse - \scr@caption@before@longtable@warning{caption2}% - }{}% \if@komalongtable \renewcommand{\LT@makecaption}[3]{% \noalign{% @@ -19988,6 +20171,7 @@ to\rtside{\box\bslice\hfil}} }% \LT@mcol\LT@cols c{% \hbox to\z@{\hss\parbox[t]\linewidth{% + \def\@captype{table}% \@@makecaption{#1}{#2}{#3}% \endgraf \if@captionabove @@ -20039,7 +20223,7 @@ to\rtside{\box\bslice\hfil}} \expandafter\renewcommand% \csname scr@tso@#1@linefill\endcsname{% \if@chapterentrywithdots - \TOCLineLeaderFill\relax + {\usekomafont{chapterentrydots}{\TOCLineLeaderFill}}\relax \else \hfill \fi @@ -20062,15 +20246,6 @@ to\rtside{\box\bslice\hfil}} \CloneTOCEntryStyle{section}{default} \DeclareSectionCommand[% - style=part,% - level=\m@ne,% - pagestyle=plain,% - tocstyle=part,% - toclevel=\m@ne,% - tocindent=\z@,% - tocnumwidth=2em% -]{part} -\DeclareSectionCommand[% style=chapter,% level=\z@,% pagestyle=plain,% @@ -20085,10 +20260,20 @@ to\rtside{\box\bslice\hfil}} beforeskip=-3.5ex \@plus -1ex \@minus -.2ex,% afterskip=2.3ex \@plus.2ex,% tocstyle=section,% + tocindentfollows=chapter,% tocindent=1.5em,% tocnumwidth=2.3em% ]{section} \DeclareSectionCommand[% + style=part,% + level=\m@ne,% + pagestyle=plain,% + tocstyle=part,% + toclevel=\m@ne,% + tocindent=\z@,% + tocnumwidth=2em% +]{part} +\DeclareSectionCommand[% style=section,% level=2,% indent=\z@,% @@ -20114,6 +20299,7 @@ to\rtside{\box\bslice\hfil}} indent=\z@,% beforeskip=3.25ex \@plus1ex \@minus.2ex,% afterskip=-1em,% + tocindentfollows=subsubsection,% tocstyle=section,% tocindent=10em,% tocnumwidth=5em% @@ -20128,8 +20314,6 @@ to\rtside{\box\bslice\hfil}} tocindent=12em,% tocnumwidth=6em% ]{subparagraph} - - % \end{macrocode} % \iffalse %</scrreprt-xetex-bidi.def> @@ -20971,7 +21155,7 @@ to\rtside{\box\bslice\hfil}} %\fi % \section{File \texttt{tocbasic-xetex-bidi.def}} % \begin{macrocode} -\ProvidesFile{tocbasic-xetex-bidi.def}[2016/09/14 v0.2 bidi adaptations for tocbasic package for XeTeX engine] +\ProvidesFile{tocbasic-xetex-bidi.def}[2022/05/22 v0.3 bidi adaptations for tocbasic package for XeTeX engine] \bidi@undef\scr@dte@def@l@undottedtocline \bidi@undef\scr@dte@undottedtocline@init \DeclareTOCEntryStyle{undottedtocline}[{% @@ -20980,15 +21164,15 @@ to\rtside{\box\bslice\hfil}} \DefineTOCEntryLengthOption{numwidth}% {scr@tso@}{@numwidth}{entry number width}% \@ifundefined{#1tocdepth}{% - \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{% - \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{% - \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{% - \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{% - \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{% - \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{% - \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{% - \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% - \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{% + \Ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{% + \Ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{% + \Ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{% + \Ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{% + \Ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{% + \Ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% \expandafter\let\csname #1tocdepth\expandafter\endcsname \csname #1numdepth\endcsname }% @@ -21003,20 +21187,20 @@ to\rtside{\box\bslice\hfil}} }{}% \@ifundefined{scr@tso@#1@indent}{% \@ifundefined{scr@#1@tocindent}{% - \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% - \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% + \Ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% + \Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% \scr@ifundefinedorrelax{l@chapter}{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@indent}{3.8em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@indent}{7em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@indent}{10em}% }{% }% @@ -21025,15 +21209,15 @@ to\rtside{\box\bslice\hfil}} }% }% }{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@indent}{7.0em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@indent}{10em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@indent}{12em}% }{% }% @@ -21052,19 +21236,19 @@ to\rtside{\box\bslice\hfil}} }{}% \@ifundefined{scr@tso@#1@numwidth}{% \@ifundefined{scr@#1@tocnumwidth}{% - \ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% + \Ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% \scr@ifundefinedorrelax{chapter}{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@numwidth}{3.2em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@numwidth}{4.1em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@numwidth}{5m}% }{% }% @@ -21073,15 +21257,15 @@ to\rtside{\box\bslice\hfil}} }% }% }{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@numwidth}{3.1em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@numwidth}{5em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@numwidth}{6em}% }{% }% @@ -21118,8 +21302,12 @@ to\rtside{\box\bslice\hfil}} \leavevmode \bfseries \advance\bidi@leftskip\@tempdima - \advance\bidi@leftskip\@nameuse{scr@tso@#1@indent}% - \hskip -\dimexpr \bidi@leftskip-\@nameuse{scr@tso@#1@indent}\relax + \Iftocfeature{\@currext}{noindent}{% + \hskip -\bidi@leftskip + }{% + \advance\bidi@leftskip\@nameuse{scr@tso@#1@indent}% + \hskip -\dimexpr \bidi@leftskip-\@nameuse{scr@tso@#1@indent}\relax + }% ##1% \nobreak \hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}% @@ -21135,15 +21323,15 @@ to\rtside{\box\bslice\hfil}} \DefineTOCEntryLengthOption{indent}% {scr@tso@}{@indent}{entry indent}% \@ifundefined{#1tocdepth}{% - \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{% - \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{% - \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{% - \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{% - \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{% - \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{% - \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{% - \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% - \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{% + \Ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{% + \Ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{% + \Ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{% + \Ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{% + \Ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{% + \Ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% \expandafter\let\csname #1tocdepth\expandafter\endcsname \csname #1numdepth\endcsname }% @@ -21158,20 +21346,20 @@ to\rtside{\box\bslice\hfil}} }{}% \@ifundefined{scr@tso@#1@indent}{% \@ifundefined{scr@#1@tocindent}{% - \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% - \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% + \Ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% + \Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% \scr@ifundefinedorrelax{l@chapter}{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@indent}{3.8em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@indent}{7em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@indent}{10em}% }{% }% @@ -21180,15 +21368,15 @@ to\rtside{\box\bslice\hfil}} }% }% }{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@indent}{7.0em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@indent}{10em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@indent}{12em}% }{% }% @@ -21226,7 +21414,10 @@ to\rtside{\box\bslice\hfil}} \leavevmode \large \bfseries - \advance\bidi@leftskip\@nameuse{scr@tso@#1@indent}% + \Iftocfeature{\@currext}{noindent}{% + }{% + \advance\bidi@leftskip\@nameuse{scr@tso@#1@indent}% + }% ##1% \hfil \nobreak\hb@xt@\@pnumwidth{\hss ##2}% \par @@ -21245,14 +21436,57 @@ to\rtside{\box\bslice\hfil}} \else \tocbasic@DependOnPenaltyAndTOCLevel{#1}% \addvspace{\@nameuse{scr@tso@#1@beforeskip}}\relax + \@nameuse{Ifscr@tso@#1@dynindent}{% + \expandafter\ifx\csname scr@tso@#1@indentfollows\endcsname\@empty + \PackageWarning{tocbasic}{`dynindent' for `#1' not available}% + \else + \edef\reserved@a{\@nameuse{scr@tso@#1@indentfollows}}% + \@for \reserved@a:=\reserved@a\do {% + \scr@trim@spaces\reserved@a + \ifx\reserved@a\@empty\else + \scr@ifundefinedorrelax{\reserved@a tocdepth}{% + }{% + \ifnum \@nameuse{\reserved@a tocdepth}<\@nameuse{#1tocdepth}% + \@tempdima\@nameuse{scr@tso@\reserved@a @indent}\relax + \@nameuse{Ifscr@tso@\reserved@a @dynnumwidth}{% + \scr@ifundefinedorrelax + {scr@dte@\reserved@a @lastmaxnumwidth}{% + \advance\@tempdima + \@nameuse{scr@tso@\reserved@a @numwidth}\relax + }{% + \advance\@tempdima + \@nameuse{scr@dte@\reserved@a @lastmaxnumwidth}\relax + }% + }{% + \advance\@tempdima + \@nameuse{scr@tso@\reserved@a @numwidth}\relax + }% + \ifdim \@tempdima>\@nameuse{scr@tso@#1@indent}\relax + \expandafter\edef\csname scr@tso@#1@indent\endcsname + {\the\@tempdima}% + \fi + \fi + }% + \fi + }% + \fi + }{}% {% - \bidi@leftskip \@nameuse{scr@tso@#1@indent}\relax - \bidi@rightskip \@tocrmarg + \Iftocfeature{\@currext}{noindent}{% + \bidi@leftskip \z@ + }{% + \bidi@leftskip \@nameuse{scr@tso@#1@indent}\relax + }% + \bidi@rightskip \@nameuse{scr@tso@#1@rightindent}\relax \parfillskip -\bidi@rightskip \@nameuse{Ifscr@tso@#1@raggedpage}{% \addtolength{\parfillskip}{\z@ \@plus 1fil}% }{}% - \parindent \@nameuse{scr@tso@#1@indent}\relax + \Iftocfeature{\@currext}{noindent}{% + \parindent \z@ + }{% + \parindent \@nameuse{scr@tso@#1@indent}\relax + }% \@afterindenttrue \interlinepenalty\@M \expandafter\ifx\csname ragged#1entry\endcsname\raggedright @@ -21286,6 +21520,7 @@ to\rtside{\box\bslice\hfil}} \sbox\scr@dte@tocline@numbox{\@nameuse{scr@tso@#1@numberformat}{##1}}% \global\scr@dte@tocline@numberwidth \dimexpr\wd\scr@dte@tocline@numbox+\@nameuse{scr@tso@#1@numsep}\relax + \relax \ifdim \scr@dte@tocline@numberwidth >\@nameuse{scr@dte@#1@maxnumwidth}\relax \global\@nameuse{scr@dte@#1@maxnumwidth}\scr@dte@tocline@numberwidth @@ -21293,9 +21528,8 @@ to\rtside{\box\bslice\hfil}} \@nameuse{Ifscr@tso@#1@dynnumwidth}{}{% \ifdim \scr@dte@tocline@numberwidth >\dimexpr \@nameuse{scr@tso@#1@numwidth}% - +\@nameuse{scr@tso@#1@numsep}\relax - \PackageWarning{tocbasic% - }{% + +\@nameuse{scr@tso@#1@numsep}\relax\relax + \PackageWarning{tocbasic}{% number width of #1 toc entries should be increased!\MessageBreak Currently used number width = @@ -21319,6 +21553,8 @@ to\rtside{\box\bslice\hfil}} {% \normalfont\normalsize\@nameuse{scr@tso@#1@linefill}% \nobreak + \expandafter\let\expandafter\scr@dte@pagenumberwidth + \csname scr@tso@#1@pagenumberwidth\endcsname \@nameuse{scr@tso@#1@pagenumberbox}{% \@nameuse{scr@tso@#1@pagenumberformat}{#3}% }% @@ -21331,6 +21567,7 @@ to\rtside{\box\bslice\hfil}} \fi } + \bidi@undef\scr@dte@def@l@tocline \bidi@undef\scr@dte@tocline@init \DeclareTOCEntryStyle{tocline}[{% @@ -21340,6 +21577,10 @@ to\rtside{\box\bslice\hfil}} {scr@tso@}{@breakafternumber}{line break after number flag}% \DefineTOCEntryIfOption{dynnumwidth}% {scr@tso@}{@dynnumwidth}{dynamic number width flag}% + \DefineTOCEntryListOption{indentfollows}% + {scr@tso@}{@indentfollows}{list of levels that define the indent}% + \DefineTOCEntryIfOption{dynindent}% + {scr@tso@}{@dynindent}{dynamic indent width flag}% \DefineTOCEntryCommandOption{entryformat}% {scr@tso@}{@entryformat}[1]{entry format}% \DefineTOCEntryCommandOption{entrynumberformat}% @@ -21358,6 +21599,10 @@ to\rtside{\box\bslice\hfil}} {scr@tso@}{@pagenumberbox}[1]{page number box}% \DefineTOCEntryCommandOption{pagenumberformat}% {scr@tso@}{@pagenumberformat}[1]{page number format}% + \DefineTOCEntryLengthOption{pagenumberwidth}% + {scr@tso@}{@pagenumberwidth}{width of page number box}% + \DefineTOCEntryLengthOption{rightindent}% + {scr@tso@}{@rightindent}{entry's text right indent}% \DefineTOCEntryOption{raggedentrytext}[true]{% \FamilySetBool{KOMAarg}{raggedentrytext}{@tempswa}{##1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed @@ -21377,7 +21622,7 @@ to\rtside{\box\bslice\hfil}} \DefineTOCEntryLengthOption{numwidth}% {scr@tso@}{@numwidth}{entry number width}% \scr@ifundefinedorrelax{#1tocdepth}{% - \ifstrstart{#1}{sub}{% + \Ifstrstart{#1}{sub}{% \scr@ifundefinedorrelax{\scr@dte@nosub{#1}tocdepth}{}{% \expandafter\edef\csname #1tocdepth\endcsname{% \the\numexpr \noexpand\@nameuse{\scr@dte@nosub{#1}tocdepth}+\@ne\relax @@ -21386,15 +21631,15 @@ to\rtside{\box\bslice\hfil}} }{}% }{}% \@ifundefined{#1tocdepth}{% - \ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{% - \ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{% - \ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{% - \ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{% - \ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{% - \ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{% - \ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{% - \ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% - \ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{part}{\@namedef{#1tocdepth}{-1}}{% + \Ifstr{#1}{chapter}{\@namedef{#1tocdepth}{0}}{% + \Ifstr{#1}{section}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{subsection}{\@namedef{#1tocdepth}{2}}{% + \Ifstr{#1}{subsubsection}{\@namedef{#1tocdepth}{3}}{% + \Ifstr{#1}{paragraph}{\@namedef{#1tocdepth}{4}}{% + \Ifstr{#1}{subparagraph}{\@namedef{#1tocdepth}{5}}{% + \Ifstr{#1}{figure}{\@namedef{#1tocdepth}{1}}{% + \Ifstr{#1}{table}{\@namedef{#1tocdepth}{1}}{% \expandafter\let\csname #1tocdepth\expandafter\endcsname \csname #1numdepth\endcsname }% @@ -21409,7 +21654,7 @@ to\rtside{\box\bslice\hfil}} }{}% \scr@ifundefinedorrelax{scr@tso@#1@indent}{% \@ifundefined{scr@#1@tocindent}{% - \ifstrstart{#1}{sub}{% + \Ifstrstart{#1}{sub}{% \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@indent}{% \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{}{% \expandafter\edef\csname scr@tso@#1@indent\endcsname{% @@ -21436,21 +21681,47 @@ to\rtside{\box\bslice\hfil}} \@namedef{scr@tso@#1@indent}{\@nameuse{scr@#1@tocindent}}% }% }{}% + \scr@ifundefinedorrelax{scr@tso@#1@pagenumberwidth}{% + \Ifstrstart{#1}{sub}{% + \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@pagenumberwidth}{% + \@namedef{scr@tso@#1@pagenumberwidth}{\@pnumwidth}% + }{% + \expandafter\let + \csname scr@tso@#1@pagenumberwidth\expandafter\endcsname + \csname scr@tso@\scr@dte@nosub{#1}@pagenumberwidth\endcsname + }% + }{% + \@namedef{scr@tso@#1@pagenumberwidth}{\@pnumwidth}% + }% + }{}% + \scr@ifundefinedorrelax{scr@tso@#1@rightindent}{% + \Ifstrstart{#1}{sub}{% + \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@rightindent}{% + \@namedef{scr@tso@#1@rightindent}{\@tocrmarg}% + }{% + \expandafter\let + \csname scr@tso@#1@rightindent\expandafter\endcsname + \csname scr@tso@\scr@dte@nosub{#1}@rightindent\endcsname + }% + }{% + \@namedef{scr@tso@#1@rightindent}{\@tocrmarg}% + }% + }{}% \@ifundefined{scr@tso@#1@indent}{% - \ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% - \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% + \Ifstr{#1}{figure}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{table}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{part}{\@namedef{scr@tso@#1@indent}{0em}}{% + \Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@indent}{0em}}{% \scr@ifundefinedorrelax{l@chapter}{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{0pt}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@indent}{3.8em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@indent}{7em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@indent}{10em}% }{% }% @@ -21459,15 +21730,15 @@ to\rtside{\box\bslice\hfil}} }% }% }{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@indent}{1.5em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@indent}{3.8em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@indent}{7.0em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@indent}{10em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@indent}{12em}% }{% }% @@ -21483,7 +21754,7 @@ to\rtside{\box\bslice\hfil}} }{}% \scr@ifundefinedorrelax{scr@tso@#1@numwidth}{% \scr@ifundefinedorrelax{scr@#1@tocnumwidth}{% - \ifstrstart{#1}{sub}{% + \Ifstrstart{#1}{sub}{% \scr@ifundefinedorrelax{scr@tso@\scr@dte@nosub{#1}@numwidth}{}{% \expandafter\edef\csname scr@tso@#1@numwidth\endcsname{% \glueexpr \noexpand\@nameuse{scr@tso@\scr@dte@nosub{#1}@numwidth}% @@ -21497,19 +21768,19 @@ to\rtside{\box\bslice\hfil}} }% }{}% \@ifundefined{scr@tso@#1@numwidth}{% - \ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% + \Ifstr{#1}{figure}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{table}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{chapter}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% \scr@ifundefinedorrelax{chapter}{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{1.5em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@numwidth}{3.2em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@numwidth}{4.1em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@numwidth}{5m}% }{% }% @@ -21518,15 +21789,15 @@ to\rtside{\box\bslice\hfil}} }% }% }{% - \ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% - \ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{% - \ifstr{#1}{subsubsection}{% + \Ifstr{#1}{section}{\@namedef{scr@tso@#1@numwidth}{2.3em}}{% + \Ifstr{#1}{subsection}{\@namedef{scr@tso@#1@numwidth}{3.2em}}{% + \Ifstr{#1}{subsubsection}{% \@namedef{scr@tso@#1@numwidth}{3.1em}% }{% - \ifstr{#1}{paragraph}{% + \Ifstr{#1}{paragraph}{% \@namedef{scr@tso@#1@numwidth}{5em}% }{% - \ifstr{#1}{subparagraph}{% + \Ifstr{#1}{subparagraph}{% \@namedef{scr@tso@#1@numwidth}{6em}% }{% }% @@ -21546,13 +21817,13 @@ to\rtside{\box\bslice\hfil}} \expandafter\renewcommand% \csname scr@tso@#1@LastTOCLevelWasHigher\endcsname{\LastTOCLevelWasHigher}% \@ifundefined{scr@tso@#1@beforeskip}{% - \ifstr{#1}{part}{% + \Ifstr{#1}{part}{% \@namedef{scr@tso@#1@beforeskip}{\glueexpr 2.25em \@plus\p@\relax}% }{% - \ifstr{#1}{chapter}{% + \Ifstr{#1}{chapter}{% \@namedef{scr@tso@#1@beforeskip}{\glueexpr 1.0em \@plus\p@\relax}% }{% - \ifstr{#1}{section}{% + \Ifstr{#1}{section}{% \scr@ifundefinedorrelax{l@chapter}{% \@namedef{scr@tso@#1@beforeskip}{\glueexpr 1.0em \@plus\p@\relax}% }{}% @@ -21572,16 +21843,16 @@ to\rtside{\box\bslice\hfil}} \csname scr@tso@#1@numsep\endcsname{.4em}% \expandafter\renewcommand% \csname scr@tso@#1@numberformat\endcsname[1]{##1}% - \ifstr{#1}{part}{% + \Ifstr{#1}{part}{% \expandafter\renewcommand% \csname scr@tso@#1@entryformat\endcsname[1]{\large\bfseries ##1}% }{% - \ifstr{#1}{chapter}{% + \Ifstr{#1}{chapter}{% \expandafter\renewcommand% \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}% }{% \scr@ifundefinedorrelax{l@chapter}{% - \ifstr{#1}{section}{% + \Ifstr{#1}{section}{% \expandafter\renewcommand% \csname scr@tso@#1@entryformat\endcsname[1]{\bfseries ##1}% }{}% @@ -21593,39 +21864,59 @@ to\rtside{\box\bslice\hfil}} \expandafter\renewcommand \csname Ifscr@tso@#1@breakafternumber\endcsname[2]{##2}% \@ifundefined{scr@tso@#1@linefill}{% - \ifstr{#1}{part}{% + \Ifstr{#1}{part}{% \@namedef{scr@tso@#1@linefill}{\hfill}% }{% - \ifstr{#1}{chapter}{% + \Ifstr{#1}{chapter}{% \@namedef{scr@tso@#1@linefill}{\hfill}% }{% \scr@ifundefinedorrelax{l@chapter}{% - \ifstr{#1}{section}{% + \Ifstr{#1}{section}{% \@namedef{scr@tso@#1@linefill}{\hfill}% - }{} - }{} + }{}% + }{}% \expandafter\renewcommand% \csname scr@tso@#1@linefill\endcsname{\TOCLineLeaderFill\relax}% }% }% }{}% \expandafter\renewcommand\csname Ifscr@tso@#1@raggedpage\endcsname[2]{##2}% - \ifstr{#1}{part}{% + \Ifstr{#1}{part}{% \expandafter\renewcommand% \csname scr@tso@#1@pagenumberformat\endcsname[1]{\large\bfseries ##1}% }{% - \expandafter\renewcommand% - \csname scr@tso@#1@pagenumberformat\endcsname[1]{% - {\normalfont\normalcolor ##1}}% + \Ifstr{#1}{chapter}{% + \expandafter\renewcommand% + \csname scr@tso@#1@pagenumberformat\endcsname[1]{\bfseries ##1}% + }{% + \scr@ifundefinedorrelax{l@chapter}{% + \Ifstr{#1}{section}{% + \expandafter\renewcommand% + \csname scr@tso@#1@pagenumberformat\endcsname[1]{\bfseries ##1}% + }{}% + }{}% + \expandafter\renewcommand% + \csname scr@tso@#1@pagenumberformat\endcsname[1]{% + {\normalfont\normalcolor ##1}}% + }% }% \expandafter\renewcommand% \csname scr@tso@#1@pagenumberbox\endcsname[1]{% - \hb@xt@\@pnumwidth{\hfil ##1}}% + \hb@xt@\@nameuse{scr@dte@pagenumberwidth}{\hfil ##1}}% \expandafter\renewcommand\csname Ifscr@tso@#1@dynnumwidth\endcsname[2]{##2}% + \expandafter\renewcommand\csname Ifscr@tso@#1@dynindent\endcsname[2]{##2}% + \scr@ifundefinedorrelax{scr@tso@#1@indentfollows}{% + \Ifstrstart{#1}{sub}{% + \expandafter\edef\csname scr@tso@#1@indentfollows\endcsname{% + \scr@dte@nosub{#1}% + }% + }{% + \expandafter\let\csname scr@tso@#1@indentfollows\endcsname\@empty + }% + }{}% }]{% \scr@dte@tocline{#1}{##1}{##2}% } - % \end{macrocode} % \iffalse %</tocbasic-xetex-bidi.def> @@ -23024,7 +23315,6 @@ $\@@underline{\hbox{#1}}\m@th$\relax\fi\fi} \if@bidi@csundef{@idxitem}{}{% \renewcommand\@idxitem{\par\hangindent \if@RTL-\fi40\p@}% } -\@ifpackageloaded{tocbasic}{\input{tocbasic-xetex-bidi.def}}{} \@ifclassloaded{article}{\@ifclassloaded{svmult}{}{\input{article-xetex-bidi.def}}}{} \@ifclassloaded{extarticle}{\input{extarticle-xetex-bidi.def}}{} \@ifclassloaded{artikel1}{\input{artikel1-xetex-bidi.def}}{} @@ -23032,7 +23322,6 @@ $\@@underline{\hbox{#1}}\m@th$\relax\fi\fi} \@ifclassloaded{artikel3}{\input{artikel3-xetex-bidi.def}}{} \@ifclassloaded{amsart}{\input{amsart-xetex-bidi.def}}{} \@ifclassloaded{letter}{\input{letter-xetex-bidi.def}}{} -\@ifclassloaded{scrlettr}{\input{scrlettr-xetex-bidi.def}}{} \@ifclassloaded{extletter}{\input{extletter-xetex-bidi.def}}{} \@ifclassloaded{memoir}{\input{memoir-xetex-bidi.def}}{} \@ifclassloaded{refrep}{\input{refrep-xetex-bidi.def}}{} @@ -23163,6 +23452,7 @@ $\@@underline{\hbox{#1}}\m@th$\relax\fi\fi} \@ifpackageloaded{tabls}{\input{tabls-xetex-bidi.def}}{} \@ifpackageloaded{tabulary}{\input{tabulary-xetex-bidi.def}}{} \@ifpackageloaded{tcolorbox}{\input{tcolorbox-xetex-bidi.def}}{} +\@ifpackageloaded{tocbasic}{\input{tocbasic-xetex-bidi.def}}{} \@ifpackageloaded{tocstyle}{\input{tocstyle-xetex-bidi.def}}{} \@ifpackageloaded{tocbibind}{\@ifclassloaded{memoir}{}{\input{tocbibind-xetex-bidi.def}}}{} \@ifpackageloaded{tocloft}{\@ifclassloaded{memoir}{}{\input{tocloft-xetex-bidi.def}}}{} diff --git a/macros/xetex/latex/bidi/bidi.pdf b/macros/xetex/latex/bidi/bidi.pdf Binary files differindex f44cb3feb5..707a619cb6 100644 --- a/macros/xetex/latex/bidi/bidi.pdf +++ b/macros/xetex/latex/bidi/bidi.pdf diff --git a/macros/xetex/latex/xepersian/README b/macros/xetex/latex/xepersian/README index 18207bc0e1..1fdeacf9e2 100644 --- a/macros/xetex/latex/xepersian/README +++ b/macros/xetex/latex/xepersian/README @@ -1,6 +1,6 @@ ____________________ The XePersian package -v23.9 +v24.0 The xepersian package provides a convenient interface for typesetting Persian and English texts in LaTeX, using XeTeX @@ -25,7 +25,7 @@ The announcements for the new releases of the package will also appear in the Discussions space under the Announcements category. -Current version release date: 2022/05/20 +Current version release date: 2022/05/22 ___________________________________________ Vafa Khalighi diff --git a/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx b/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx index aa635c0c71..daa681cd38 100644 --- a/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx +++ b/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx @@ -25,7 +25,7 @@ If you use \textsf{\XePersian} package to write any input \TeX\ document, and th * Copyright (c) 2008--2022 Vafa Khalighi * Copyright (c) 2018--2020 bidi-tex GitHub Organization * -* v23.9, 2022/05/20 +* v24.0, 2022/05/22 * * License: LaTeX Project Public License, version * 1.3c or higher (your choice) diff --git a/macros/xetex/latex/xepersian/xepersian-doc-title.ltx b/macros/xetex/latex/xepersian/xepersian-doc-title.ltx index c39ef15a30..71f29bdd56 100644 --- a/macros/xetex/latex/xepersian/xepersian-doc-title.ltx +++ b/macros/xetex/latex/xepersian/xepersian-doc-title.ltx @@ -3,7 +3,7 @@ \begin{document} \title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\ \LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] -\large User documentation for \textcolor{blue!65!black}{version 23.9}} +\large User documentation for \textcolor{blue!65!black}{version 24.0}} \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}} \setcounter{page}{0} \thispagestyle{empty} @@ -13,7 +13,7 @@ \textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}} \Large -User documentation for \textcolor{blue!65!black}{version 23.9}} +User documentation for \textcolor{blue!65!black}{version 24.0}} \vskip 0pt plus 3fill \textit{\large to my Master, \textbf{Ferdowsi The Great}} diff --git a/macros/xetex/latex/xepersian/xepersian-doc.ltx b/macros/xetex/latex/xepersian/xepersian-doc.ltx index f9ff704d30..29f42a326f 100644 --- a/macros/xetex/latex/xepersian/xepersian-doc.ltx +++ b/macros/xetex/latex/xepersian/xepersian-doc.ltx @@ -1,7 +1,7 @@ \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% - pdftitle={User documentation for version 23.9 of the XePersian + pdftitle={User documentation for version 24.0 of the XePersian package}% } \begin{document} diff --git a/macros/xetex/latex/xepersian/xepersian-doc.pdf b/macros/xetex/latex/xepersian/xepersian-doc.pdf Binary files differindex 08825250c8..955b5e6835 100644 --- a/macros/xetex/latex/xepersian/xepersian-doc.pdf +++ b/macros/xetex/latex/xepersian/xepersian-doc.pdf diff --git a/macros/xetex/latex/xepersian/xepersian.dtx b/macros/xetex/latex/xepersian/xepersian.dtx index 7bf394e7b3..6e3e33a3d4 100644 --- a/macros/xetex/latex/xepersian/xepersian.dtx +++ b/macros/xetex/latex/xepersian/xepersian.dtx @@ -5,7 +5,7 @@ %<*readme> ____________________ The XePersian package -v23.9 +v24.0 The xepersian package provides a convenient interface for typesetting Persian and English texts in LaTeX, using XeTeX @@ -31,7 +31,7 @@ also appear in the Discussions space under the Announcements category. -Current version release date: 2022/05/20 +Current version release date: 2022/05/22 ___________________________________________ Vafa Khalighi @@ -166,7 +166,7 @@ by Vafa Khalighi. \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% - pdftitle={Source documentation for version 23.9 of the XePersian + pdftitle={Source documentation for version 24.0 of the XePersian package}% } \EnableCrossrefs @@ -185,7 +185,7 @@ by Vafa Khalighi. % \GetFileInfo{\jobname.dtx} % \title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\ %\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] -%\large Source documentation for \textcolor{blue!65!black}{version 23.9}} +%\large Source documentation for \textcolor{blue!65!black}{version 24.0}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}} %\setcounter{page}{0} %\thispagestyle{empty} @@ -195,7 +195,7 @@ by Vafa Khalighi. %\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}} % %\Large -%Source documentation for \textcolor{blue!65!black}{version 23.9}} +%Source documentation for \textcolor{blue!65!black}{version 24.0}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -243,7 +243,7 @@ by Vafa Khalighi. %\iffalse %<*table> %\fi -%% \CheckSum{10976} +%% \CheckSum{11097} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -3218,14 +3218,36 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET %\fi % \section{File \texttt{scrartcl-xepersian.def}} % \begin{macrocode} -\ProvidesFile{scrartcl-xepersian.def}[2010/07/25 v0.2 adaptations for scrartcl class] +\ProvidesFile{scrartcl-xepersian.def}[2022/05/22 v0.3 adaptations for scrartcl class] \renewcommand*{\thepart}{\@tartibi\c@part} -\renewcommand*\appendix{\par% +\renewcommand*\appendix{% + \Ifstr{\@currenvir}{appendix}{% + \ClassWarning{\KOMAClassName}{% + You are using + `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak + You should note, that `\string\appendix' is a mostly + globally\MessageBreak + working command not an enviroment with only local\MessageBreak + effects. Therefore `\string\end{appendix}' will neither\MessageBreak + switch back to normal section numbering nor finish\MessageBreak + every other effect of `\string\begin{appendix}'.\MessageBreak + Nevertheless, some effects may end with\MessageBreak + `\string\end{appendix}' and the document may become\MessageBreak + inconsistent.\MessageBreak + Because of this, you should remove `\string\end{appendix}'\MessageBreak + and replace `\string\begin{appendix}' by command\MessageBreak + `\string\appendix'% + }% + }{}% + \par \setcounter{section}{0}% \setcounter{subsection}{0}% \gdef\thesection{\@harfi\c@section}% - \csname appendixmore\endcsname } +\IfLTXAtLeastTF{2020/10/01}{% + \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}% +}{} +\g@addto@macro{\appendix}{\csname appendixmore\endcsname} \renewcommand*{\@@maybeautodot}[1]{% \ifx #1\@stop\let\@@maybeautodot\relax \else @@ -3254,19 +3276,41 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET %\fi % \section{File \texttt{scrbook-xepersian.def}} % \begin{macrocode} -\ProvidesFile{scrbook-xepersian.def}[2010/07/25 v0.2 adaptations for scrbook class] +\ProvidesFile{scrbook-xepersian.def}[2022/05/22 v0.3 adaptations for scrbook class] \renewcommand*\frontmatter{% \if@twoside\cleardoubleoddpage\else\clearpage\fi \@mainmatterfalse\pagenumbering{harfi}% } \renewcommand*{\thepart}{\@tartibi\c@part} -\renewcommand*\appendix{\par% +\renewcommand*\appendix{% + \Ifstr{\@currenvir}{appendix}{% + \ClassWarning{\KOMAClassName}{% + You are using + `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak + You should note, that `\string\appendix' is a mostly + globally\MessageBreak + working command not an enviroment with only local\MessageBreak + effects. Therefore `\string\end{appendix}' will neither\MessageBreak + switch back to normal section numbering nor finish\MessageBreak + every other effect of `\string\begin{appendix}'.\MessageBreak + Nevertheless, some effects may end with\MessageBreak + `\string\end{appendix}' and the document may become\MessageBreak + inconsistent.\MessageBreak + Because of this, you should remove `\string\end{appendix}'\MessageBreak + and replace `\string\begin{appendix}' by command\MessageBreak + `\string\appendix'% + }% + }{}% + \par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter}% - \csname appendixmore\endcsname } +\IfLTXAtLeastTF{2020/10/01}{% + \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}% +}{} +\g@addto@macro{\appendix}{\csname appendixmore\endcsname} \renewcommand*{\@@maybeautodot}[1]{% \ifx #1\@stop\let\@@maybeautodot\relax \else @@ -3295,15 +3339,37 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET %\fi % \section{File \texttt{scrreprt-xepersian.def}} % \begin{macrocode} -\ProvidesFile{scrreprt-xepersian.def}[2010/07/25 v0.2 adaptations for scrreprt class] +\ProvidesFile{scrreprt-xepersian.def}[2022/05/22 v0.3 adaptations for scrreprt class] \renewcommand*{\thepart}{\@tartibi\c@part} -\renewcommand*\appendix{\par% +\renewcommand*\appendix{% + \Ifstr{\@currenvir}{appendix}{% + \ClassWarning{\KOMAClassName}{% + You are using + `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak + You should note, that `\string\appendix' is a mostly + globally\MessageBreak + working command not an enviroment with only local\MessageBreak + effects. Therefore `\string\end{appendix}' will neither\MessageBreak + switch back to normal section numbering nor finish\MessageBreak + every other effect of `\string\begin{appendix}'.\MessageBreak + Nevertheless, some effects may end with\MessageBreak + `\string\end{appendix}' and the document may become\MessageBreak + inconsistent.\MessageBreak + Because of this, you should remove `\string\end{appendix}'\MessageBreak + and replace `\string\begin{appendix}' by command\MessageBreak + `\string\appendix'% + }% + }{}% + \par \setcounter{chapter}{0}% \setcounter{section}{0}% \gdef\@chapapp{\appendixname}% \gdef\thechapter{\@harfi\c@chapter}% - \csname appendixmore\endcsname } +\IfLTXAtLeastTF{2020/10/01}{% + \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}% +}{} +\g@addto@macro{\appendix}{\csname appendixmore\endcsname} \renewcommand*{\@@maybeautodot}[1]{% \ifx #1\@stop\let\@@maybeautodot\relax \else @@ -3474,8 +3540,8 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET % \section{File \texttt{xepersian.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\def\xepersian@version{23.9} -\def\xepersiandate{2022/05/20} +\def\xepersian@version{24.0} +\def\xepersiandate{2022/05/22} \ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space Persian typesetting in XeLaTeX] \RequirePackage{fontspec} @@ -4324,7 +4390,7 @@ Persian typesetting in XeLaTeX] \newcommand*{\@xepersian@pdfcustomproperties}{% This is the xepersian package, Version \xepersian@version, - Released May 20, 2022. + Released May 22, 2022. } \newcommand\twocolumnstableofcontents{% @@ -4336,25 +4402,27 @@ Persian typesetting in XeLaTeX] \end{multicols}}} \bidi@newrobustcmd*{\XePersian}{\leavevmode$\smash{\hbox{X\lower.5ex \hbox{\kern-.125em\bidi@reflect@box{E}}Persian}}$} -\def\figurename{\if@RTL شکل\else Figure\fi} -\def\tablename{\if@RTL جدول\else Table\fi} -\def\contentsname{\if@RTL فهرست مطالب\else Contents\fi} -\def\listfigurename{\if@RTL فهرست تصاویر\else List of Figures\fi} -\def\listtablename{\if@RTL فهرست جداول\else List of Tables\fi} -\def\appendixname{\if@RTL پیوست\else Appendix\fi} -\def\indexname{\if@RTL نمایه\else Index\fi} -\def\refname{\if@RTL مراجع\else References\fi} -\def\abstractname{\if@RTL چکیده\else Abstract\fi} -\def\partname{\if@RTL بخش\else Part\fi} -\def\datename{\if@RTL تاریخ:\else Date:\fi} -\def\@@and{\if@RTL و\else and\fi} -\def\bibname{\if@RTL کتابنامه\else Bibliography\fi} -\def\chaptername{\if@RTL فصل\else Chapter\fi} -\def\ccname{\if@RTL رونوشت\else cc\fi} -\def\enclname{\if@RTL پیوست\else encl\fi} -\def\pagename{\if@RTL صفحه\else Page\fi} -\def\headtoname{\if@RTL به\else To\fi} -\def\proofname{\if@RTL اثبات\else Proof\fi} +\AtBeginDocument{% + \def\figurename{\if@RTL شکل\else Figure\fi}% + \def\tablename{\if@RTL جدول\else Table\fi}% + \def\contentsname{\if@RTL فهرست مطالب\else Contents\fi}% + \def\listfigurename{\if@RTL فهرست تصاویر\else List of Figures\fi}% + \def\listtablename{\if@RTL فهرست جداول\else List of Tables\fi}% + \def\appendixname{\if@RTL پیوست\else Appendix\fi}% + \def\indexname{\if@RTL نمایه\else Index\fi}% + \def\refname{\if@RTL مراجع\else References\fi}% + \def\abstractname{\if@RTL چکیده\else Abstract\fi}% + \def\partname{\if@RTL بخش\else Part\fi}% + \def\datename{\if@RTL تاریخ:\else Date:\fi}% + \def\@@and{\if@RTL و\else and\fi}% + \def\bibname{\if@RTL کتابنامه\else Bibliography\fi}% + \def\chaptername{\if@RTL فصل\else Chapter\fi}% + \def\ccname{\if@RTL رونوشت\else cc\fi}% + \def\enclname{\if@RTL پیوست\else encl\fi}% + \def\pagename{\if@RTL صفحه\else Page\fi}% + \def\headtoname{\if@RTL به\else To\fi}% + \def\proofname{\if@RTL اثبات\else Proof\fi}% +} \def\@Abjad#1{% \ifcase#1\or آ\or ب\or ج\or د% \or ه\or و\or ز\or ح\or ط% diff --git a/macros/xetex/latex/xepersian/xepersian.pdf b/macros/xetex/latex/xepersian/xepersian.pdf Binary files differindex 5817645f19..987fb2a2d4 100644 --- a/macros/xetex/latex/xepersian/xepersian.pdf +++ b/macros/xetex/latex/xepersian/xepersian.pdf |