From 6bf1b33e4da0d37f0c18eaec423714d704b45668 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Thu, 1 Apr 2021 13:34:40 +0200 Subject: [PATCH] Fix date on cover page. --- docs/amg4psblas_1.0-guide.pdf | Bin 1807026 -> 1806652 bytes docs/html/index.html | 6 +- docs/html/userhtml.css | 23 +++-- docs/html/userhtml.html | 6 +- docs/html/userhtmlli1.html | 4 +- docs/html/userhtmlli2.html | 4 +- docs/html/userhtmlli3.html | 4 +- docs/html/userhtmlli4.html | 37 ++++--- docs/html/userhtmlli5.html | 21 ++-- docs/html/userhtmlse1.html | 4 +- docs/html/userhtmlse2.html | 4 +- docs/html/userhtmlse3.html | 4 +- docs/html/userhtmlse4.html | 4 +- docs/html/userhtmlse5.html | 4 +- docs/html/userhtmlse6.html | 38 ++++--- docs/html/userhtmlse7.html | 4 +- docs/html/userhtmlse8.html | 140 ++++++++++++-------------- docs/html/userhtmlse9.html | 4 +- docs/html/userhtmlsu1.html | 4 +- docs/html/userhtmlsu10.html | 4 +- docs/html/userhtmlsu11.html | 4 +- docs/html/userhtmlsu12.html | 4 +- docs/html/userhtmlsu13.html | 4 +- docs/html/userhtmlsu14.html | 4 +- docs/html/userhtmlsu15.html | 4 +- docs/html/userhtmlsu2.html | 4 +- docs/html/userhtmlsu3.html | 22 ++--- docs/html/userhtmlsu4.html | 4 +- docs/html/userhtmlsu5.html | 4 +- docs/html/userhtmlsu6.html | 181 +++++++++++++++++----------------- docs/html/userhtmlsu7.html | 4 +- docs/html/userhtmlsu8.html | 92 +++++++---------- docs/html/userhtmlsu9.html | 4 +- docs/src/userhtml.tex | 2 +- 34 files changed, 307 insertions(+), 349 deletions(-) diff --git a/docs/amg4psblas_1.0-guide.pdf b/docs/amg4psblas_1.0-guide.pdf index 93917123aeec9d76b3feb5331d14f0f9bf772a9b..ddf0dcf1580cad391adfa6d66e8f9c93b3603ae2 100644 GIT binary patch delta 43987 zcmZ@g1zc3i*V59kyZ0^&0!xU5tlNQ73W%VDq9_I+AxKJyV650JJz}?lieO<2c03hZ z>;eM|6|nuz++7s(|GoEn?ChO$XU;iu=JdW@o01Q&Po6$YWtQqJwOQ)3G-hee(wfzE zmi8>2S-P|IX6er|m}NN2XqNFFntl^9R-v09=O;AV>H$qOfr^R*MSh|2sw-a8#40L0 z6!C?|uV%ib<>D_e!>&H?j#jLq!dHArX{Pm4LCfCJtPuAT&A9s62bz-#3TUQTRl|25 z6}0OE%^p=grD;`fYN0u+Aj40vo_ZV2j2c>1dwiy`RaC^)uyjA==7Q?mUuinOzmVT) zu_|a{3oNDB>|qtC&IO1Fp(vLcp~1 z^db7N;zGJTlBv+GfZAX&%W>{(6?*k-6^3t&s!WV>&(H@Wvrmk>==(TEG~(8fdU64W zFXpqw5-CT>ldwaQ*dy&j;^NaCocTP7eR@n(Mtn-L;!AW)dXxjtJ}rK1jB+|7E=Dmm zHZnavO8GE0B~AG-Gd?joK6xDeCbo}Ej#fO5OifM9Rz8;4TX_!ZFAN&eccAAG#dJz? zjB_Gv6EiU;k$Qsi*(NNxSS;j7#YzN|G7~f66O|AGiTx<9h#Sv|;q-(Tggkp#5}xqj zi$H3hn&!Zh*~dhsBuB?%T4K^Lp72sud`6rCL_r2T@=wc7Oqr;dPESdksDzc;$Fq~8 z5;LP?FbMz`k2wOLzws7G5zm8eO%uwv94Sx6{(~*zr7`KKq9@&uC*eywOaPxpa~wv8 z__29xF8s@5^LSj2NFZU0MLZ6V4@ZG2<#aP79?x*o5O4%M9$FJc5NOGGMt4oVgd^q3 z(Ejm^$?aol0wcD4{L_xGLU|EPZFDh#q22y;j1^&v){Z39b%prIm22oHGThoBf)W{4 z8ayG01j-0)yaFp-l_fp`Yqc4(|jzAz{iR%RnB}7)F{RAx8{qZP+xBTjluHG)9u9kjLRlWynv?$Wgp^PR{59t4Sm> zq%)l{LpjW!&WO_#a6v%%=+|_{U<24s0EdoG7#o~0RnA~Is)I-f(1RI_V;UlkR4PU5XEG-1V&oO;iqQ1&z|*{= z3~f^$oC~!!56%K;r_`k~l`Y`8B+XEVAgA6}RZ;wRz=f#B#ljB&~#fC`mE?YWEub+|7Als%WRtmCPRsZ+0Z zo5xtJs=`Ihi0M|XvyidT0fik0d?HpcHIU946Fqrid~!@A*3M#3?b+!WF-eMXR7w)1 z(&2F|s7r}`igF@S37Y}h8(xGNtN{TmIzBxLzDw<6GU9V0l{NyNr^G7eDT9EAQv39% z$VA1aa*2IRVq$!1Mtqb4D#*)QF~CY%YM(OJnNo;cj!Y&~Dn&R%A)5z!Lc~{GZu`WT zq;!shvw+99_f5$HBar4G5!z$bFXGu}C`=cOqEjf6V3eGap_mL$j){s%PmfHCPs~<4 ziAqURP?4Sr_CdKs3jXB6QrNh``{{8hX&Eu;%0*%(#YAN)3C0`7Cn>>Fk|~SJ62QIX zvQx&6*Xh$or`N!k~VlY ze;xKnpg@Kx$ih|+<`q=IAU!4{Gga}7Iy3;IPMd2_Szx7c1;EH?Y&a)kD&gCZsJN`i zv>ePC8B$4SFsgsuV(eBywQWpB_33)XYZkJqCg|0tJ~EhADnisel1Wz+iv@^xhSn3b z2T7~u5kzBGkYp|&nOP84a=dIzWE3{WfJ9PEMqElXK2D%dc?Lj1B*kWc%uI&^ry%2# zGh)(WBcqgg?c!dqgP5`haK5Wzr5b%2qa5HGKr2r%4bW&7!6=3*l-|A3Jc5N)C5v7 zTgrtu1yTuHD(Az=3S@k?6fXwMkP0an84TbJA(zLNieNDToVgSn79BVT&~*?<2;g93 zTuhEk%$D&%hy*eTTZV}f$fRtUh!1Q5EiV&G#ITNlEt3kkY+$8KDh0oXD`d+6SPmmD zjAT3=A)E)CExaoP=a>g374I*Ckq~eca>Xzb0rEnw1V%tNjHED<0%}4yUGT24Fz~?B z1}lyQ1$*4o;e#~rcp@%er#pxrzk~Ajsg77csAyS&jB})XI65)7ia-XyawI^K7+gmI zPlR$mGJByN`9ugI0>4QFtP+BUDgidY$#P)+JDrL0RuQJCe*rOs0nR7Bt$dLHtQy7> zZZ8VnNifmUCZ;Z`DZ&%lH6gb)JIH1R9Om8Yl?^^nnD3M#o*-@6I@L(c#q(0##3Vf zM<#;kqnO}A9C_6Y7kQx&uKH z9%?QjoIx_EDa9UexBoZ*cn=95Rkbj!k^Uxv4jR{e17QvExymc14PrlJ8fa11Ln1!Lk0AfpCpF@=by!6cT=&*+vI7@)u%K1@ZkbVp3$a ziLj;NJ=?t(3VA6C#n1o8yNlsDs$EX-I#Hks(eNKBfZI$RbqA(NDJd}hA5s7}2NQwv zwm{S{@CV%;J>E=t}jB^oSiyjlBk>7n-*nEGhZS8$Z#8ku@1 zrIpE6109E~wi4D1YVA(q2v-W99`9dnf^xx#U~Q=Qlu)1TQi(jCGGo!eU4#?fA2{ug z3d@K9v~Mfnhc16$c1416!jslfmtgb(6Oc6sFM1Tr7dHC&%JBc7PuaYo^{1X;s zI%w)nVgjZB9|y|XMHt|tg70W~B>}Dkpc_oGoKde=%-*U(9?EZJS`pZk0+t<51E%sC zm>dS5QUD!v1L%8HRz--6u*&X0nh@n$u;|Ex$r^z2j988+aTlSFjCTX-CwGC=ln-UM;L9GPSYObhw6iV@UbEz%R}jS}*MA(yM>f5#LnQB{Hx8!K)Y+ zDEuB_+7;{%=vFBY)h+^!5OIz0(vS){G6^yikrw)5ND5#xD}@+{hjJxkPxNRmNi!5e z)QW8!7)O8=Bg^Z=K=nT`?@z#esk}~fRmby4{+2XH7jF~V8lBgn8we#F>}a$v!@ogz zcUXqnN&M|LG;41D+HmbQv z1ZrRpUy2yF2!9Pprzu0UK%bQALrwxxLsE$X&Z3yKFS$)<{ROL!rqvU4q#b4pXvc^Q55;x0|e zDv5HP|G}z%UyJKXG7NCK2z==F7q2WQO_9Yz5TU;}8UB#4Ye!|)Lt>1kM8p9X5+_8-iD1-FS5@964?(d=Aq70?J>k>| z3uz%TE( znSp@_EG{Gq+V=u8=#6UnkXjTNS}P&hm^TofxC3v1A}b9(j|ch)?4c#fs{-iv$H8d9 z`9pqLh^9!%K5D<`Yj%hQTZMUAgMQqhCxfV+w${sF&T zM0zSx*~XP*B_>_#9~fBD10)^RLWaZ0;b_G#(iP>M1!L*!L3$vgO{6X=@*p1|k5Ez% z>8xiE$jAe*IPXb1{IwYS533Z|A(P=`59-waf)putyxNyc19u0cNQ(UW!B_${1*lsb zhcO@yZq3rWG`5Zy$}_-D@aRylv1DId15-y^y+|4?!-wGFm=_tN0Xk74M2_C%Bt2@V zxUCVWY79x&#zjrGGZu@w8enddH%W8q0QDyy{`>F%77{!>fe@TD9&+#@Q^Bx6J`An) zAyYKDSOE(Vy+4`JK3?3P9;6i9Pd+GJNRnV!rSd?$@gzwpWkV1I4$j;t z0T9=hw9}M9t^&#=qkYLK?c+zjq^NyNX+nR8U zie397tMfF1+7&(O@G^eEKmz#Ta;S1awjarBU-0cHh8>#f_h+|-ek8Yjveu7`)&>JB zg!~|Q76#)$2~Yaq(30$ENX5@L=#;ZBj5O&kP*;yi&Mx{6BzH z1Yx<5gph$+2Xv3WSkBJ zD9TzN%Dn>|XeBwnpIfxLGqRsUz&PPDCDf ze-r?(6BBxNSPJj;hZDbnDNbm2fLpqV?4eu>i3`XKP%>NrAMGq4V{q&vgm}lakR1H` z4Ilu>q|o6jBORdAS`m+e;jlm+g$zUVb0edjRLG%<1R|7B1f*iW2b&iq)Ww}7l+7ss z#JfQ{qKXB;Lf#*!)M8Rfr`}g663=8sK@S}&COKGf%fOhuEhfD?th{zP>8PbxRD>YB zvFR`exOK-~6CEx*Mye|!GuxM$fk<9wP(wr+MU0O`VH8v0NYz0Ygs7^KbpB1H4wP=W z5clj}M!I#F#^h=7AZ)^O;C*v{&w*WQB-GKPQqq{AnEzk&iJ=q^)`g<4eNzuORB#7y z8eF+BMdI)2-wSso#Zt&(gQ8LbDs~7!#&r;9C#@hyg7L!3Ut9qP)Be6QMKZVv5?p$x zoNj!)aI?XGS7^mf=L`N7Tn&(4?Ny}fKTrw=C?OyU>xX3-YnqOWSsRL=LjYGZcuL68 z-9aa1+=fgr1pi%8`hO6javLBTe524)zu$(Vw$)c$_V#!4Cjv0sb}da_=WUz~F+ZSs z^?RGMYe;C5fCwEZldL5CRbsZm_0I85J2`lD`}A^SmTy2cId zE)joYyGvxYiIo4fZ6LnIuwUK=xM|$YB>C68J{rIU{f4z5#T6bTmD_RLxEZ*@g_{rY zDSZp+(LNrr1x&B<`O+<q5?B5Sf7;FO7*R3SI9Z0*3?2D@sQZUoOWhBTuHCDXf)2}~T7YN>HO&K@^ zN~lW!g$+1Flk{@ZOF0}>P70L6qH-WZAO-hKhVGP;uI*#QJUC~lgZG*?O=|T--;Dcmbex5l zyWsakqnyJaoC@#z4gES}@lzWP-Qs~tVD^VVQU?GE!^s8`;M6HI*s>opVKa0S2 z0m`Y8^^n2Bg4AKUJ>mdw(uUsk_w7=mhB9}N#hM~4N8qgNCMW#;CZ$?2N)q(wHS~J{ zv6PDx3>6cqRQ+@h=`4mI6TawiRUj&9A{o_uGv;}oim>{}K;}mS_=L6tKXV+C24piA zT0mWgO4zEkis9dtm7HaaaD-_-M zG9DCJae!eUzkPCQtS6q+Bm3|>E=He`c5K7iil85)forhcpW(ic!#V`*gcBq*^ zicJWb1JXEnS3rs@gr%W+26b3?iy{TT1*ukG9>9QK2l&D~<`N_gVE|v`QfLeig8mmm zt_%iHl&4Sw#))v1UkIU-h$j>2U|dAF9RL@nMF0&0m=fc9J_NcVDW)Dy0?Na%5gdR> z2E}9{R1L+@I0{c7W5vVFgJ?sH`xAt)pI9X4a)H%2V1_z7Zaol-@j_787DL_&1^^B9 zaLfxBz&8+SkN{Xw1mXeJdDsz7QUcwtFa@bq+y;QLlZbc%9T89^K1wsTRZAgt_4sh8J(qW!JULX1)bVN{F zkwP0Dpa~^-Kt%+_VHp>9Fo5XFc(9KMPDO?}hC3ku6eJmn)iN>FBLLNT+*ToyLnAAM za`-h6Q!cPv2RC6s=^X?Fx*}kNC6$U4g;b*imT!z9mI)qL40wnDd59wc84(;ZuEs+I zh>P~PUjw_&P?m=^z~_PyPauYpuMjYyiZ8lU0~M|%LG=YnW!7lQ1tuMOioz~1ZE1hk zp8zHgo+F1UC})o%p%kSkI6=iQti6~9^7MDn2|Td;2Bx#=zf~vT6;*6P&R3aUX!;(= zJiPyp=}W^ksE(x}NDJVKm?}ia6P6O43VBd8qKaL>=)d;`Y@yg?^Y6BxEjre?Ah1`~ zzkL{3qjcUIY&liDHn~hOCg8dP597N`C@x-Ra$uHjMM5*ezxzuly1_@mQz)Pgs*jZ| zOdAGPMSpD~#T9GZ%vH0T;3LjMsH~bdFb&a?uXH^W`-ur9OOcXN5QD!d6;YIeJS%2? zm;A9_!<1sRrubCUTCq~Y-<1VSAu?V?_(LJv3@yLM?1^q&We!BsuQG?@vTL7`k8}fM zeT_K?McrWfql4F&|JLpx>xh{Ilqm)4w_L#tu*?RGKs(3uP{noV<@i&7g)93vL1L)l zg2<@yxyZAg$wU$L%pqvU4dw_M?hoiF8qmCeMT3DA?LRY^r)r>iJMMjxNkS_2-CH_e z72GAo;epBd2LtNxI95vB{;*V068_CPaeEVhl6OA0nKY<3E4Tso_Ai{Im>bsU^G&8c zy11O^j*r?I%&tO+;oAO5L*NM*?y9I8M68e#pK=f%usat9@7;C znbHl>ush7ae+sUU%22QlG*xFbVMf6^33Y69Ivf_HhW|!UN*xx*Z zj{;|^$>TT9ke^oGKZ=LWQ2z!R{4Ahh8LND-EzlbSsvmmxvEId138_fg5!7~{IfxWN zsuUY`C|+U1DTK~#Xf#8$_nA`k;UUw%n-V~Rli^@~!Tv#R6|^KDO2MePP0=~TLZ=@< z+fN?u9&mWVRFv2uQ9#{zpz-lDNMpM^gwv}9u_Aw_gX9?bo&uA0A0h?^wh`9AR2C$=qUM8vGVx9 z?EW)@k53i+-l|Om54pc$>Y{N^;8M3=I(^2!$A~*8KwthVYGAt+xOY|>5WjXlHi<&? z%%3rb8~=Sxp}>UsT7QR0Q-z!=#Z%Z2c$$qomBvG#K{2IM!vc7)7%2+{x>WBEb_zPv zD??WvGi^#5K|w>21t>?u8<+;D+g)h&0Tr!>PV2Kc(6vo<%y`gPdJOQ)r~~@bF#|oE zxNoYD2*P`6>i5}U2ZN#?{0qgWf*;tsz~7Z;2w?5}@Ii4efZ3~?nVQJv1+za=d&yL& z(LFCfjk-UFN$6nFM#Ek*J!n`WI-DywHk9^2=U;**fr>3yWmUkgQwNT-Dm07zAqQM7 z3g-^wz;Bp<9OHk;K`&l0t+cTtL*b6rHG$;?9bte*H34p(uR+{CHi6*XeXYcK;cJk} zgg2l{B1*wP+r44>C~oKgwC@eb<=^=8lnq2KZz=q12srnkuXG;n_M+N{0C_%Ec-Dl% zEOk6^@WxRjjpfYv_ZT24GU^@EnT8#tj(msb9p%so9efXjq~Jdx&Fy!oYcue?sTqia zQyGM2e^3%9`T)c+KLT-Z_spTcWW!)Q|- zIBVX*Qj|A@<&02h=gtI5DFRvlgFwaoLMp9H0!`!Z?fy$nPsiGTMAVExm@7SQ>a+~iweXBn8hNc#vYB{&om>|L_%Tp@iwNm zDV#rUIgZU{MiPhDDg%)`EwEIFrpr zxSgF|{d$s#Skcx~Et+SNVnS6ktE<+0Fzt+JCGadkg3E=T?^Q{~lZ$9?GaUhBtTyfM2 zK_-3z4!8*SFT+MWh*)3%Z%M&36XB>+23iFo0X|p6*MYbNe$9pVfanqOfB*_lpyUal z5PU+c2m^>Gv0EpC&(Ap{kGfPjmGIp~`f zz;E_&D1aNjVIgq8pdAKJ;g}NwIuV4b0{HnB4B#yZ0E@usflf&Ph6oc1b})q_Q7&Jm z1O3?$PRPM?5y5|8;_=dW0FHtP>>xzsu(Sl5Z`^#0<54lhR=_rFr(tQ_n+!kv0y7W5 zQj7DUIsYtX^1>~b_vv~fak z@!JT}fv~@gAX2%+gnHEf&~Hi;u83AaZaSM3h&Mfd(EX5)8mm9DP-iJkU%eX32MxZ| zZXL#}vjYFIeh{K!ry9Lc2h4H%tPpItNbxaVgY~EJSz!v*KvAG|B+H7RV!}?{nsEEE zeujQ31z~?Y63{7>dIp(Pe0K88fGg00nTK|1u|iO~7RwVf^dEj}b_IT8cdDb$0Z35% z&gsfB#?A(n3fQUqa=a@`fFHJX1@ymYu=LQ>n-G(Mx#ryy$CzQ92O`P z>RA3@5BCORjehB{2$YBjcND6_@}~Xe#lrPaaI#K^MTdkUHg>QbIJ6z(e*pR|0so^L z9;UGyWR081{=xz-KgBz^6cjeO`hbm|Io+*;pu+F3D8^mUV?l?sA&cse2JNa~)?j@= ztldEq|Kp&EQKSjOii8Fw#nv61GcnA;!P5Ulii;X`S;NsO1J)p8j9AA*5+hz6(?$)H zF%{2tYzVi5BW~w|KJ9;81fzN;r|19R0u`YS1})s#mzDhXWqYIWH{d}Fjo=bcJ`v5B z6@a?ZmArrekrJFD;|{!l>cQ{sei6tX#Re)$=`118WQ*BgpFe5g>sMG?xDF>{GiUkScydKzTY~ovE|#z;FoTU?*p5NKF1E22{WPA17XlfAKI9 z^=Gi8#+Z#A`47=l5n-bWwc+-k73fiF2&6KPLANGFia@E8w+G#scwUISUau3x87y9Tj*p z$A75=yN87wn?3y59VlNZKlK9fat*|QMa91?rqnXE(xHjbTH0CgVfxUZW~*zYm{ z1oc=H_Ag-kcXkF0FS1|(%p?U&2#o*Hm;kc?!?Y6$y;LQHE=pn0*{YDbp`=F)8PC6{ z1=C4U3)ywW)E@-{b`n#GEipwk*d)a#1<4+be7mu{P=hIJ8G2y_>TFauRxh;Q48Cfa zvwEY2-B?plEfYq4%~`YlzJ`Dj7DxuR+MSpKz5p_?078ODR)8wxrKk&;N2BW!@Jls} zK}X4ed90bN;Ad^r6ea!G_;+3tf+>pO_LkKB+W8hzw25qLoMy=qf%@5M30t;4W*Vx2 z4}l&i9x~X}oF5zJ?y%u}Kuswg<*PyE=^Q*lK33H8*8uZ(rWdbdZ3XYvTPvgyKNxOB zt+_<;aS~6%HFracOW-FOV!q-6Vsc4vpZ*~iIu`!-4aEKhJ{_e@!a{HZl~TyCVa=tq zS%+%~j)}r9T($v?@Jk({OAT9K2p_R*0YN?rRD8@pccpA>wWX-2~+Qa_uOc4v7T ztB9(niCNjbKyN;p#UiTpV_8=%RAklg#mN%F8|tCeMpkc26+!jr6Rh)LaLeH#qq>iU zX*V6kYYdcRZ)&K9%e}mfEQUH%Aw=lMG*f={IeSw#4b8zpo<81vtMxgiZ`9>xuO1W6 z`!!GSIKMldb#zIkEUrs&->}=$t0Cd0lK6=aTSk=;7AX zxKEi8CaF~pt|7(MrKetB?v>qVbDUe9+#q*j{82;^xUD>L^8GF99 zFiuxZo&6w#zGlp-RZ~?9^4*%P2Dpjbzx3L5wpre__?cVo;{pfvn%rSoXEc_dT(u~p zYWo4x?R&cIoFh4FQgu0g;hYNA=t=8t?m2P4*YIUl@}W*8;r5FUoVgUjX!sdrp7eZ- z(N{-#^1R;{D|q02PYi=V3 z;w597!25UH)@>BFc|F}nw0X~>Z+b!fiwEHeKUp&`bzhqd7!2qKx6MB>z zWM9b&>pS7DwZ(s5yGO13v18k=WQI|4xORl7XQojY%{tTK;UTw$X=q&UO}+z9A6I!e z_kFX*nPoF>k_4LGW^tjRy5#z?S|WDw{5l`)y-} z>0TY$Qm1q7EGNpp%KglZEHi`EaU&`lLkre!=wFpl>b(C(-=n8_XEj&pf86(R!+$+b z)G=o~ALM<1;KhXg7jyO`tuN)J-cMkC_8t^<^Va?uyVlOO@x3!UTzjb7vB(+Cq5TJ~ zd~2!G(9B(6bFj%aA#%}CUu*doV@;2(-Sj2I$`WEvbfRFyphb^UCYHH{&lu*?Ce_W} z66AkuT11E0~;7GF~D5ZT3#S6 z^zS?KxZrF?;EmU_82%2iZN2W;ymHA2`gZE%)?XF+3B@uSyDX2w$zdO>9rjLR8b@YS z`xNsX_$Rn3@p0wumy<3xnT~w_fnR*NGGf%epbNvYPrcBMT)H{<=drtbZ#ET<{z0_V z<_@d9q0ODSX`pO!>tt(MdG~|U?|fs}OqZW73lNx$o3di#(sVt?MRqkWYkOxDrg(kZ zy<*jhiN8*mtDe@flJDH@>Cmf`^!>3jShP!E@4-#J^U<@rsP?H&ldflhYB2k>I5A@C zj<;?lM@*+J;xXejCha@$T<~;3VQjZ6#lid3Zn;+&rUvX3^}3?-{rzRbQrio$-V2Ri z@2ZmTjGft_J?yH+3Wi_5owZMgJS|){S~FpeV`}8=EoaXq&8RnAX*RfadTKKNe8#cU zi^Khm=ife9T;ULsoszt0o1kxoe&e2`7l8|No}GIZJ9c=^{k}01)(y%0T(-1oiFxlK z21_R_JijG*)4}h1nhzb&?OpjSMKFKudO^Zld*;-@Z(ZaE7POtQT$M0Se|-P)o@OHh z&1N!dcGyU|EHwH$yqqa{tNo$i!MI4($^%av`=8Yxr8d(~bvJ9qkTr*Hk9uP91vLmR zemt7%vby_?)3qtB2_rOa<%x5e7h zRW1{I9I-22bwU4y?!q@J3tY--huEdv>sC~~cdA)Ho7Sm~mRmmWXdK*kdXC&wP22M3 zio8)#p{88@t_jb-c#KhP+%csG;gulc}u z%r&pJ1DV-_bE`7k-=AJ~eCs!zZ282AKfZZ3o^Uwom>}HiJuTUnVLtqYv+V+Q^7J>S z7GgsB>nHBeU2XEdtdHbR;uN!`Gt@7t>Iiu4i|12|5ad7x`?SzeW@c3~( zU&fybG`p{PSm(k=5B;jMCw`m`vs(Hn=E#V#DkBevKA7~T@ag<+ugr$inPFKQle+|- zZOt0mw7yx#*=<0|hQqyM1Fr4r9wx{?x9aNkxpji1&yFX{&jfhpp)iK3XU!r8RY@6^Io}Lc zM&~a!Y#Fj_A88$;VHdj;*2TVef~QX%E}xV?+5P0D-HwC*B|jn5*65Tre(zBndU@&AFYBCr_J7~Bcw^1E zrV%$s4_UM-?7IETm5DRYrgZ%jW^|s~ zkas7x46TlftZWJP3FV|0U65tWwk^2s8@$SP|JYSstS>wqy4m8(K$jU;#!r&lv3j7) zDXtR@TAw6ah6J4p8QoChof)BfV!Nkio}ICl&DX-_xP4w3J~P@QQ_#-;DoN2V$o8r+Lv(HiRJ;ma#xcNaD7@m?ZNb+ySlwPeb6>By#= z`c`({6GmstU$0ycXz;*f{YbMtKgZRjxv39_EN zvNcR?WW`D2R>wy>yWTxrz+UvtJTPMaz!ywQ^MmW^Uycq-Z7BEhwbs0;E}Z@TVeRp8 z*^8UIdc5L!>8*D@HY14G=%TiF#>(+)`45LUAGJzpc{us|%4M(L_CM-nRW>FeEw8Xv zLvCew@xVcWNVs?!9Mo7Zu_K5R|LARw+!_>S-w`# zH0hW3&Qme60ro9^w#7q>1q-&vPBR@i%4!m4?}Lc_pOOBk$5+qUI&RD!7wJ2b@pBEg zbOzH{h^8i%xUFwHvTAhXx%KkKgMnGP!sJ8yOPgC4?OGAI>Bwr8sS)2*3JgjvEKXF( z9^0L{35~Po9iMZq%QlbiiGm)!k2V|3-1%B=>b5QI{+h!mw<*cw)KAAU--`5w&5uV~ zhiZH^RsXc?^x_X*U0=^k?cVlgk%mdtyN{-``sU7Bb~xz(f9kp{V}d73Nfn0*`q&3x-AR-Fx!8^X(`#(?Pn4zZ?#UlE&7rC=3?7U#m9V?YQ2d zybB?I*=7EoRLs zxQ@Nu(S~lskAA`_6~<)Arg-^4jghhu-{h?F`w3y6J)6fH(=L5k;uFsl_j9VBp|Y+b z;h4m*;%S)4^`%V?FXN6a+_L`LRnfD|;->gHK?}#1_Fy$d=cbxyO&&7NWc35RKBZ$O z2Nvp$d^qjMQHSr1Eh&Zn_g|L`gP)r3pUnqRIL+?2H4TX^I4OGBMO{w-czzP{M{ zWS-WIn?nPgatrJaES}vuZ{F59L$!;9W4-++6rH;ew2fTu{CwWp1F`##yxeK$xWcB? zwqR`1boWOS*5Av{J!?02>7;!odqQs+9p8U%1mmS<@b}U39CBRGMYo5XoSo}te^Pb6 z*dWnw`6wPiM`;tZ0w*;rkG^Ge-DH24H>dY6Q#-2_?B$r?@h;avFzU&i)p2J1cWruj zqUB=!)cAz^jZ;@&Jl`}^h8*DpI}-)V`+FnwQ8rndd&!_^;bHNW zFFEWmdi+W#J4;j1tsU9R)Isn={wsWC1ZR(&uv&TFH*e<4t}!eNpSf=LZ{B#DJ>cJ)vrxsT{|zx-&Q$r{k5L=hrB;Dq3NBu z`?i%$UoA2ZH5b)xHDF6e`_Dwd2~!uPF>_@(`f`7F!LV&!Yb`Ec-gGa1S9PB8{=_HZ zTO-Oh-s<~(58eNW(ZFe8H6h7uv+A0!Hm$7KYp&Yu9526WyUFntOUru~UFQuk*4SPs za=1}I7&#}6~clsnoaYIGQ1&L=1*$|;+cQYg} z%Hnue$KEY*7ao3n&~{MVXXRefZCk_1BlYB@KJ>!E>HpPw57}a;cAx(sMKkUiag zjho=aSybi_+SVHXULA=-~$q`Em zBoZh4J3%MQ>cp~#Sxqiq`Tx0j9631W;EtlIV^5Ave=M5O7@Ax$?CpUwzp_RYEuCw% z_N-cJtN1~D{cz@`Wzo0ShPS-k4V^Jv|c^~P!Wyriuhc1DYXn#aa2T(hgEA9{UH8MEQtq9Zl2CD(cnt$Om@r`O}hp}d;P+Pzs5 zd6%7zF7V5`Q#$t`t^CSSO}*Xy#!lID^tGc-n@04hXnF7foA7SDG4I!3lyAN>^4WhG zmljTlo1~fec9VwR?GQ&!{PfAmIk#*^h|WlpntYp)3QyI!VVI@8|%n8%a*Yo4;$W1}^8 zJ=1QzaHhumWf^_FS7M{P3>Hth0g-s={dgXi~*vrFvm-CFUf zMzy$XjM|!AYv_&1-OHD+(A;@zwRDX7wFsk-(V|^W=;5@Gnb|tQdb6U9C+)nm| z$)gs#=YBe9H@NW4S-$>#N&V^DUbjb98#Q#@cCD|xZ?n(WAwQU|)@o_p=#Q60IK8Y7 znO)nU*81aPy}pgpuu0rAZ-0dsKHXt_zj3i2P3_+1E1Am-N3M;!Av{y%^TWkJH}*!3 z*Q<>)k9eOBzpMF4|K_i$UIz;$x1A612j;OStE`o0%I1tWubx>Lxqj26Ipul$(2@4} zKPOi%aY}Akm|+<`GQB)%#mP-o!n(yfr+@M2Q^EOG@nhxv-E~#SjJ4kG)%@bIOS2ly z7neyxaNKu*;$6y(XW#`&pzN+;sSqWcs=-i%0yR=ad(J@3!Jm*_JP( z%%d+4CFl6wS|^{!SUtS;tftSJy;oeul$vCA87_~#dxwAH#jDnk$35Zy$YK2H{^$9N zd@jki&~jaHv0?QQe}na-C1x*wZ7|8nMdyDJUS|?%@;UrX zl9y*EL{84mTxMP3EZd;tI=UYZt;`>I=i-vV+luNu!bfMsD5i!X*SjMVb^24AO#hs!N*IWZ zE+cA&ikI%5M$3J4D(C3?9^vu#pF2&=zISi+x|bi8`BpyrG>9`f@rmDx!5a*==7qTDoli*pAX8qCKrB6T1b&7jY2Gj5iJX-3|xnuuQXU7r{_I#VCbm}0#7=z;N>y|b2?UNJop zecQ58Wy;&(@uxh>WxrmUW%rvD*WdC|z)SUhb5@>s9Gnql`~8DmX-V}O2~pJ3Vs74b z$ADn(b8d%p-W6<>*9+&zc#!9vM^^rF2y0Zi?9_jV<*rt>0QH4rmz$z}W&ID9&v&;L zNP8}Qt9x(o>8c%b0@Z1)=~o9n%sw3b^fseDP@GjUcwK7V!=A*EuX>8KrHL zDu#aVvdL<1k(pmc-D-=IAK2Z>ew3-Ef1je>>(iE`c+(wd`nVqwxtDv$iF=VYIs(;z zK`P~TZ7aUSz2#Y{^_o#Mp^X_~Y!K2O7u3p=$ zzCbv;V0`#Kk4vX*d!`)d?z~CP2pzz*PRoxv?2~*-V_1*r))_@-OHX;OKYUx?%dgNo zw99UL`el*BHI_@|q{K|_EN}OB;u^@dEvhp*1ztkT)s_f}p;;vo%w_3>oAh+rc1-2| z{?pstFGSi|Hsm@oU;9@MoqW6KRr9j!n7efUmm?nyZYcJez3$+0_h4CmSNZXWt-GRJ zpTBup< zVT_D{yDCQQDz@+Mx>%l`Ge$k*QFPbTBl2FgA*zCs(bL6^H=^EDe6kHFKAK>EKCHPf zr^VmqL7-*+=7H1h&DJwbdhOc(ZjI)L#+6%zF#?Z?51XBza}r9o$Ck19mfvN22D|KF zpMJSz@0<0Jb3$j>oHE!mX}c%yb+Mo|zwWs6jq(R&Q&#VFaT=RmwNJA9mb>L}tNN-J z!?NU8%x*b74>!1%N!5?<>xcmQ`rG_{j?^Sx;JWn(X}ga-Ieq9+9wmunjXp0%DXNeD51U)BPvf~Ze=X}6Z0d9m1ZR@JF-*Q&LfmiZY)NaDvm8Tz^F4tv|e zDet^azgfTj!OesgB4>od+sogJbL#JVT}=Kp?#zZ?QBkW8tT~Xi;LC$Chr0!zmK5)L zFgxI4^_>9M#}+5$tA7k{I23KSW$1l$B=FsmoEcZvR?tSb>goNrEV|G8(j_ToQ^cxX zhUQTl#@-LGd!)t=TvWVOYsrN1mrsq&=u$P1jD}kA=MQhDuXEL&$Csa4a>#99R7AsquebV4nuyBT3$9(5;CQ0%n_=@jt8^ER zsmtAT`Dshiy&l6g9lFVjtAe^uT=#YVJu^F-+*Oz7UHDv~sLY8LoJeEgbUJc@oTM{7*umK^&k^jlzm+n9eV@x<4$ z%ll7rJNulga=baLHnb$XJpJ$;``!_tqzj-n)@A$^3Nv0~4t9}JaPj?LCNWcs$i zI^pw|(0(fW*PE};A)D*GeRisc-58^L*4d`F?}01Vc6~P4t@B~>Ou4~=ou`ABTyf~u zq`P7Lj_yZ%#X)Yh8U|Jk8AZgx7|A@s5JX$-GwiH8ND5D4(cmzlCRu*#P!b4Z}VdO zKYv>?Wh}F;CS&IISM~N<2W^|Xxi(dlCL~%eZo8PK*RPja&qDd~p&Ie^X|qz#qy+8J zIe2Ap_!Rv)KWPbT9v3}(+vDStw^Jh1|F5t&4W#O8|A*~k9y1STlUe5Jn5hWK5Him* znTKN@k0?UsI4UWWQ&h%M5eb|>w&x_~9ckQ*Vz4qGIx~9Fz z_w(5oRB()fDu0x#hnAYR-o0CdjxkVWQ_tSlgxcQF#plF*L@C_sbEtyZqsLllgb-`C zk>0mbQ$~`zl!^V~58Qw5=adLKo-|M`=HFuA5z_JN+K%Q0zM@-Vj(zO6oHRpUMY0Xp zyY{$gUZBAd?7ln>z7o^3-*vDNNq*04-9gjzvYV!Vpl89+ctKYCTkuqxAFroFQ;jG| z?o-Uvle79yBxb%Z-mb%ms>Qw3NW&72X6XmMrQ9RjrZ!9;{NYfY?hHYK+E?lQT)0Q) z^Wgy({6SN_DS_`I`#xASs&(h6XlqC*XN!D!svA3HhzMoKTy|8HtotDPMrW9(<(A_N zyOgW{^DF%$4YFGr8g4WDH^(}w7h|0dPNuV&9;1^zdV=Pt2Hio8)taAC(QPidx`a8q zIumh+U(Lon(WKJck9oK$4jrMeY4bB?V+t{D{qqIX2K|OsyHd;;aW7NsnNG)|r+gW~6*uvyO4`UPlHd2|uAbaaqN>19S-K99nj(E56#N-tosp5Au z^!Dpn{dHe5w?dB`JE4?wy6-WCeXS~CPa%6}e{E;L6x+Aadt?6WYM1<(qz~^`)pSVI z9k%{7O%*@)HTCnlB;UTFSKnV9t5?u??m&EYbVFUU`D+@Lq^p<^@r_TRr0M=Hq~urr z{#0y^>5NqWb?m&i!=Xcd%rB+0@#48l^=8iL@%1TF+@GsI?-!hn3Fkjz)_m;lco7Hr zUtvBphlX1?$)6%U?ei>|BsOxO9E6LuKg@qcU{?8$Vwz5&oq9K&D)dIBGF_H5e|HQA z+KYUAcI<%*l24r*=@l|DbRh3m-J3p%0Bh{ZjNEEobOvRga+lr8we~vg%2O_^j<$Hy zjgYUq0}tWaOKt~9G{ks|YHDapipLb_;XRzbiP%!Mg*qk1C!N367#S2{yLf>hoGfXr z*RvYm!}g87d`R)uynw&#Bc5;x&IEpJ<=Kw%feQIa|2;jc#>AS#P0MViF{$k*jb~GG zWm^g>*-p#1OPu<~`ctFutvZ+d^|UJ|zdEyi`6cqmGFmz)_t2`*a!9c;kGU)3iuco& zN;^;9u6JD?(}w5$bG{muM$o3nX~xi zUGMfVoJ8lkDX%4JBJHFU^_c-6x?n(WT#~XTK;E_gV3^V%yES8aAojh^ld|#C7v!_D$SybmE2{EI}s>8G2hg&--quA_`*RthvvUl!0er9ZR z^+`>Tg!_Rr21(5AR+OcqZGX+B+=A@Ok$u|Acj>q*DjRgxj-*=Gb1JWN)Pv z54+wUo|=%*P~yHQb;A9r_1*l*CIRdFZTVSKd8}oGoo#|KW=B~Q%e1lXnS$R{e=LPR z=8k{JJ(w}Ca+k=G9d{<+pwycz5!oc3m}3N6zbeY>r@mY$jb#|16A~6?-X|v*akWb@ ze9-bv{Ua{p)w=M_moZhs?%#N?Fot(FP%Aawf7wen`1?g_)?baQ#RiOA5K-< z!`ve-<0AD6S@$(%UOCy&@^(6U_{|S<{^kvHu~B|=`Sm-+(Plo|TsyO!SD*URQAy6p zS`fbNo9n8IZnb*3Uv$Moz$@DF6C;Id0lj(anQxBb+LbS3FQYw-ce3`{B}fOn-H&(< zeR09g5GjXBg#LWNi<=jyqtPcicS=9~d-=7w#GGM+v=FWFW6!ap?# z3e*r-SpF1dLppccmzS#bs*EG5P#%7WnC+|H{Oo^%!TkF@@+9LFH^%XPkP zobC8@y!Z&8Af;udT!B$O7s;qXIFEYI5TTu=iK=$cdJC67=h)&WtXH*A7!)X9f8)^e zsRB~@%>yP=*Xa#1-Lwb<$}!6o{{8mFdWRIXXmPigj%Rw(67SUi-su(g%z9S7L4~4e zN9IQPC)@V7^&zO@W8(^eGowTDtfPdmkkR}H%rzKlw!qf(z4sg?6>VxgUobESwVz0g zup68nk&RmDVNq%>fA{61viQJRudeZjS7w|tGs>(^n6W5-c%*Z4b1#ANXwXzAOSVEBr)>Bxq^Xc7?r|k-dL}CmDz^mA2aSpx#J4O*e}9ij=-$-cGg*DtUV-D{#ZiLw58}{`gS4l$FI_H_ zv`}l<#SqONw@7Dr`!n)JjqTOR4Xi+B&SsnOW?s5?MMmGZo}m%5vZC(<36AAocsVA6qCm;T$hp zmo+Apw~}>lPUsLrlTHwl1Y#6rA6E>u)mhfSiTg_KzT67g0wPY zo<3e?tzGwJ{kVnmX@$KUocgQ0i>F=tn<=G#cTRlS>pZ`&qQ4`XXjm(8?`)Gr{}^#3 zO3UXuzCQH_o3VCX`Rfw~Z~RrO63^3c-uG;0d+k_snq)k9GDJ>rG2L$`L2PCZhDm2_ zH_wTIskFV7%&FhC9yZSRveXw+TwA3M~ zTG^WNA=Zo{mouCBH5S_bY zEHwlgqIAUTdRxQFva1cYE*Ad3j|s2RzL--?nxIb;7t7PuqMcb<x_W7P)&F!I=>wdh;68H6IJg~=0 z#N*RieDNc>Nzp=rlaNPuPKB}~TY=~^!VX`T^Nobxc-0p;FMBG{g=4q(6e;*rqZyx- zD&O!Ln^<-R+$b~c(AB27G1c&ZCa0Qirrx@D=P?&U6~s3?5n2~*pc^O;J`b-1`c zS&MR4zTNpG74ZwQYNwV?N7QO@(XA8o@ ztIT zahX12l`4rFhdow2Vy)h0#NO3RSbu(dJ=QLt**!-9m*P_5J^G&zRxz#BG~TQo32g46t``J6H}5A~H_}f;7Y4Vt z2ez1s(S5HF=b7s%}qK1-opmvLu9zh_peT6Mr z(znk~eFt|@gzD;{lefNC9wrjoF1lVKjl988$_jpbutH;NaLcfM%{F^+;LEcjH$tQ= zHQtXybv(eKC7JE8!Ld;P(_N1(lopz$6eI5>s6 z97}WF;yv=AVEKsRF7W>{3T-^D8yQ+WQ51Bi=WKMiMd(NoVy56b;?iQ4Pxs`m0I zoAvy+gZGTgW?s2mH)@SoT>QjQ;}j9|lTb2r$b#z0X|>c~;R|CYd#relbsX8bBtKYp z$=%fY_D8D1v2KO8W9N2@KH<&1vg7pAYq5JDKKLLga;*6mb@>L}V6v20nN!l)cUo`F zL+B>XU8{L?-|T(&-CWva73Lu{jU`#Cw_VE)mmM-u7)E2aqaUkKrqFZQJ?;#jrCv~c z1R+1kdeY3&{y0Ok>^H}KLw=N;#*PD7QTLCp6n}2q-#2pYxx+&Y>rGpesMGz;YX`r4 zGmd|9$|w5~k(YImq4!1$|CMwn&c>fQj(iT~_pguP#VpKj)t@nLJ!z}Dw0=L+@%p?# zsrLX~MrnRmrr~SJ{f&}sVP1Z|j1*(_8aGX*30KS&lchX2Pxha)elH?k5nJ|4PRx3a z@p#woChE05hA_Qj-oAynOQ#$6M-D}>xAh)Z^y&FTOfsVx6pG#0DE=K}ppm?OZuv+1 zUYXNH3_ZUDhOwQcydQK3uU+0m7TU1Yo4JpC(eQMXKJ&Pq!z!i+U6G*>jzq80TC-wQV%-z~QxIMefw6 z>Fd^>wo2VBy2H}%w7m)ff*$5lAL^QJIBQfhNK?i=VKq ziO}LcmdEEJF}v)WVNs`E!E#>;l7G&n5g`>k)CE)PQI&TsJrO0=9Bjr*q7-^%w8n<|?gw63D%aCEZ%(^GsP4%zA zM5#xm^-?jbbap1$;39=bWQ-@2c{|C@3<|wLYIFuO=b*x zqeUUWv{Q%WfyjAf*}y2g5q{y$_`@HM% z&Y#xYtd#FH+*h|=wj7u?C|$1*F3edU@fdrufxYbM3_SvJK7VgbM}?LK%;7N!@bN(0x#dB-bO_1p|)JD{MSEI8ZW;&V{Xaw z%{*;@Tlm%QPp?Z~U2;{s_<;M8au&_;r=ff;ziJbg#*|hPd0A2av)C1;b-Z z+lJB#Og7^y={^zPqz$`qJ?2i0d?uU2r8#t=yZn6ZTF-v7UG*M8Ip^u=*H1bu@8l9x zO3)1>j68FfAGeO-u8@qI*HvS2HP2$_)qR$fIBGK|9Vr*nqxNlCTKAZm-Gy77`zbs0 zR&KiXaOU*vqFeQAJ2d^Vin8+7<)cFl`1qoGOQOA%vC{{tg62B#T^FuPhr7j%C)b8Z zcrH%`@ZdLiiC<;6EZ7P^eB)Bj3e$5F?HP%g|47g}Q0R{I?`3(C-V@qFy({*fR@bIV z(9p>@ESsG(ua&tKJn!eZ8n^kKy|l<(qD0jxcII8>zWQ4iz;ApVhCknJHV`%>TT!_#a}UJJsnUAJU!d&@Ls zO-MDKBCx-i{`qJ_@{DXix-89(q_7>n{7g+8hYIWQr-Q{~CLbmoy`R^i=dRCXgu6zP zD-#?X>ojIh`g!EQsD+H;yYn$CjXb+Tx84RA#WC*@!dxFJj_n8tql;(^-*kG>wL@B` zP<1A!WMW>G_43i4r3D|)gVPj8`r1_UOTyX3f;1!vqH1%>kEiJ}s0^QeZ;OakicH_N z_9kCce+$Rd`l@&0z`eY~w_i4i?0DZ*aX+HscR zx`(P}(%O}rY@KxdRHjzLou1F^F0K&os)gh4G9-ju2>BA4Z+7JygT+-nmvy@8>)dQ* zZsWK|vkm=(!y_M4nY%44bR**ZS_ivn5;ktEz8|Y}mo2ya^2)>M(xUWxnTa1Cm-*?u zt{Wfh(kQ)t=l7aP;8VZNvHFtEmUQN-t?@*B`=UAKO@W2^f>cACd>W;-$0HT}3H97y z&6(F6eEhnqPjI`I#lA~v`~BXy7p&V`dPih@=t^6l94lc+wKX6&m_N#w|6pEeuFf2T zJ%RY*;rQvRtWRWCb+6`*KPvS6V*e^Z!g!!^v^4!JCu7Bng|@X{#XlV%cuMz}Fcq+e zDPE7UW_+`Cr1!(IaUY$4&#Xty*%ef<^cvOooNu$^Pw*wT7@O>8y)zQIn0md%&exsKCV{x*krtQ?~ub(hGeryx`3re?-!mR9nqK?q|q6 zRwHo_6tbEeTHH)#8ZOGBta{BU+0c7r#U%hf*HHn?ZqQ4$3#%Ry_I-_0GilJ64zr;p5+wy+jnJbqr1s!O*zgRUi}p4vAe8ksS>vV*-yK*G0=(v_9vnDh>!=s_Cm zk1p?-EY%xX&zle|pIr&6Hfudbk;`fo=1Vx$Z)YEOOOE68QET1Vh6CIywl$hzJA#hj z-4B$_)P1wLvX}d1k#^>Vpi>?WH<#yLj{N>C?zq@|`XE-S{D{R=8}Db&m7NbaUyU+) zeQ`9d?;ofQ&0M2;Mc>T-u4Llk@hL%;Wzmn;(r@m&)3rxdba)efGOwN5Z@GGX_wfP8 zKE=80cNANT3%@CQzt)WKrrTLQtYs0lwqF~25&7ua#PaG(!ygm_ulH2%xv~&axbQVL z{k;d~!WRRR`--u9m$q`;ST*j&A|k}iTPOGWwtX3)X5UmikYMO_>v5_LKnrqM&B}Rq z*rxR+sz}%J`MEcdd6@8WSVsDm?*K)0?bj(%>~+ul=jMr$Zs!t(3twh$Ummpy^hyxq@!M7AP}Fs!>BinY#T53$n-Aq~(SP?3;>~&Mt{Y6F zIL-YlB>Rka>XYeDuFKp#ygN8A7*uC;9!_oB!y!eJHPN)+(i*vWnTM)g_H_+L!<23N(uKp^jJ~-|rrstj&OD5A4HCa*WMsN#zR;WB6FHJ4 zTj!wsa-FBEXRbH|#_H*R6~V9ow8^TECQD-W}o3wyQQ;)u1fX zz4|*2yG&R%RkI?fCi9&-=8YyhF=LKZSKH zaw{e;ST#mGIr+uJ^!LjojW`nxA=1X-{Sr+l-%h>fd^)M*smVvZtCH|_In`d`aK^L9 z60R0TW2)*|-VCc9RH`3#u{FM!5Qx|MScQM$hObombeA?{&ghQ1Y8j(fg+oMZ$7#{9 zO=r&+;d?aKy!P|oPBr^Fd}`-!e&yu6-}0;_-NbI(ZQePrfx0ZM1*P+6p3uK0c5oZ+ zc>H3SW2f`Z04d?rK9>5(pM=cEJhU5L2YYuIUDx|4sZ?~bV{+`3@j4ars7h>O($Pwr z7Hiq%uh<+-}z9UbcR>exBdYlx~L?ue0XGn{t zpAeJTJ$>KQa48q76gP8jR^X7Y-G)$M)I6VV15sc=W_OPB(Q|vXbXdX(H*#o0UFT~X za#+W>K0YRDDV7E(ZXQ`Zt9~?UB;zbq?PAI6DR&pW%-SOlZy(pXA3s?!ba7yc_i=GSjHS*%)gZ7y;Ytl=bSNVVf;DPYpXYscW43m@>DxH+-v!&LPBZc5ypq#ZxL+Yatm37 zXE|mItq2`azp!Kc^9{eOkO+#w#!Gu;Qx_f5SQM+Brt@Z>N=y>h4-WXee)OO-mAxkM zUGKMA>k3&X(T4TC9q)@0I3xE`hHOpFYpc$@PW-49Ds*o&e}UOw#MNHriar*?U?!nRG6r=)<1nqSrmM6wF|kdLu7V6cCvp+_|olrMw9XB zO@gk$H(Jh0ihTB(LDvNB!Y0{~r81D{-+~8R|cTo0cHf}VVlcGF) zjd<#{MwDj z@Er5CZ9rpd~Bxu#}LH@W5RN| z6z9{0gjwBlO}mv{mZpd@2QBXf?l1o)>Ud#%LD_!y^qx<`>5GS0o>3k)d0X8h$lTt_ z{<7g~^?W;4>~afof%%dDu(g}jt2;`k2_g=^^8*(T$E2rdQwj)rs_frNqm$XcB4^G$ zQp?+Q?NhX$;MG_YKUKT=HFp-S9pzr5g#E2jpJYD8iyO+uQ;xT59rX-lU9kM2XZ?Lm z_QIA@bzX{T?X3yho;s{c+?_?m(L3@U@m#fCyS~dku1o$&rFNg&h}Ot~woaHuV^u4&V^aqk@vbrsP zx)$%VwGNHMzF(I+*)xnQ+I)AJqE9r9`o#Xzn8ctDmCyEjtx*{dU5@#!Dd|zvr-&6e z{<8dpL|=Q|W%KpJnZA3m-&5BfPzx=e{59xc*VO(F%j2*cYj`V~W$TWQVB5vE;p-vF zw+Jkl8H)VtpFINJCxsg@IQ^D1z02oj(%Mw6lycN~$mw}T&i7)Qk{9~dRVOlhM~0p! z`hQ(3BBkznT`;xsVtKjzyrz|9ldXz?|Lr%+-{z!H19koNfskuzVw(JSmwz0ZDNIT< zdAEAvz|rnE!%-4~zTx_tG|h_-Z|P~Uu-fLICREDJv-b9MpI}kB%AIIUr;(iVS?H|6 z!ygkugh?FbJDS$U(+~0vMEd)0g=1Pw1?b|N!@QMAok{EHiCT@H!qh&|hbn|DjT-mS zi&73p>>l(EOX0*5i}NQ#eGB`l&A(FVEZr9we|l_y;*9Lf(R#1g14@#+lD81b)S_a_I-rc*d?k4tKIZR2kiYCGfF>iFjzaC>-)(3wO914 zV5>?U_q~nESoc}06BM^rS2YrI(mC}GKHw^Z{i)EK89pbsDg&Lp3cOFYwSWySOcb@9gdFaSPe48ya`DLtZqkN}8 zf?_&BU-yAxH)D3Z*mnta%%0ygAM=^MGo={&wfvl|JYIIlT>0vC%elx)t#@P3;i-D# z4$&j;K1=Q;ZYXQdwHtb8I~54#?}?D|CgD%KwD{yNK(d}IRLf+N5986rU-|W_u*p^B zseggA$N4vB>2@<3O&)9$dlTb3UAZYF^|d}V&V|sx%S5^F<3kRO*`JG@u4(H+cc@ss?SoJC zTy6nvDh56ki&1DUHZO%8uNb&ReJ+m86P>ZVEqt_RPr}2}>sCv5BYeXP-^y z4k-yC$kA<@#3EBMS_JNI;%_QnpFH98;qilK1vhMN?t1)PAnHS0j^owDmK>4eA26H` zvbF#qTT!7irAq|Ulylv*aD>F}g2?0IyuS>Un`*CQ_@Be3Zpn6!uD?3;Me+OR)tVg? zb`*m+yHg9&EKVJ~)4FPfXMOY)o@-Znwag{d&@vF}PTsY{O{qN!?2-`{+DZ%$Akb&i zIrvUy^bO2e)YS5Ey{M|v=wUPMxb5-T6uE0GHJVjdka^+lL&=g1DeU0JyCq>SZw`AA zVw(izj!{mQF+bs&H)?*apzjA{AV z@zp4W4}ol-71lLw(5DpAPST8NmO)vDpQkH zQD}B%S!^NNWbe}9kn=B$!?r$YkCct(NWOnnN}?Bx5j&BYiM=r9s;0|U@@$VT!<|f* ztA69@n(>Sec2+xfGK)m`TA93SQ}y+qDRjAzV{`K&N$|>xSe)t%cDhJLhoN`OUQ6{o zUd~Lom#}sHNM@x{$J&7xKNKw-GqP%=9Bw~bMWa%$$0olQdDMF|*GzNLW-|PpLCz1E zblT?bxYZl!zSnBoxGyVL&nE9_6YpYCO5UhZSUvywyy{1;yi)GOXAF-5LeH#_OmC2U ztW$W7(mXg6$z34cPG>2&6vV=3b=Yn*s#$kjw>*BFaHS}3L+MVMjIi-)5WC&lSuF^$(W7fT1LyK3Fix)tQcpLIV-y?w zoI?a+wFT){(;h7j65g}g37>woKyyc1SV#7Ca}I7*bV0ki`h9QUgll<-YZ0s5@Vyot zkr?4f%X9o(SKo&OSZKW5_|?n2_jyWM16$qI1+lOlRX+&(({7J#N`5MstYVEjpU!nX zuj*mEz|AT3iM{dnOfidMvj;pHzf62&xi?>+8r$$=rFzaYP3FY4_yM*1DU|cfmB|Km z*-QI8o(mV5(Z&=mwTP_z2rzvaq|7#wz+kz1Cew$4eL-lvuSuPMDU$A;$KEB+$om3@ zGLd5G(&IjX$%F`=3FQap&>rgj=mVv671OD2^=+I~Px*!7jAXoQIqlq3>N+*1b4{ME z4e#%k>zB5`g8YYN@ewVLYw8+q;eK_ndv-I z!mLU@DGt_`waf@;mkm1C@68r+Md+mXKKBf@DoUrlTy;Z|(mqk6`a>t~-60ug-4iyW zNGg}+r_N|JB>f~PiShI~$*;|n6sP|F&GloN-|hFhzv=iVQknJ*@1A$h;^vaMRnkPA z=Gx2T0;fNfUhR84Of&UE`{CN)^Z3C%=~~ZUvI%TNWltBc=yxnum-K)9@bHIwMi=ei zMOsB;r8@QB%x1?6(_Z{$!Crd%zW;Y1QpG~N>KUrRRy=z~&Y8gf_8iS18}n#Z^%H%$ z;`U*l2A@1fL4WB^aDf7mO`MMd!qJgYv4&Exnm*gOS)8rHlh_(F0NDtTc_j#% zipu{begSB&n*SG?SDB2K4)|;V3@3mMg^0EQnG`^>LPi+CxB{SXA=e6!0gysv$cF-e zNR=TFEr1kM17Oe)S6&U`tSYN9s6i-Kfa<9Xa7qCOF+j!z6Vw4-rWydD2bihgN(MLu z3#dZuQt$#rNXh}^kXZvjr7DBf0j4fo5~BMm14LKIoB;rO!5j!U3&73P0DiC%83Yz0 z>1sf76UbbH16Y#em#YCdOu!cjwIG0{0a7r)(*-&Jh*A~ESps;C$#}R7kPaG9gMbyu z>>>cS7jj(!KwI#7U=4sB3Em2EVgZ>9=zu2yKMN#Dfov#X4zQ3qq^wW_0H*31;Eg!2 zEe&N=6$U`D12J9!!woc_21Gu_0XRPZ=?WAD*sTE473cuafB{_y*dEx2CS;C*Og8|w z6;kB@W)jF}qXbsfgb=pMz&M)fis}qF@T4Z7N&$Q{prZ*4s{)J&NJb!hGB6x4Bcv(; zvjC3?0YJz?+(`fv3!oh#+8v-YfwV9Ha~bfLK#X0mYtRFVs{ua%(`#rjr~$=57{J|w zcK|9A2&W8{A-f1bEyEswv;}SfJtY`4V3)vKz#yOn|3N|k7)S&N)C^w$AKBIkJ_6u+ z86bGFk{SpiU`e55Np0rl_HO$R9{bUNsZ~YLby_&A0nrYGCDS?i19Dfbq3=HQA%mr#ftE>hZjWGPhFm?t| ztl%FAiBB}q4FGlyZiXR53k}qRc6+{NYq<_8iC|O|Tf29I4x-$;um_FD0HDDDJ#-jB zR9g4yqpuK9K=o`;E@Hhg;MQr^oH*l$qlXxTj&LcbHE==wVomi9~zUAHtV{S<=Ko2b3Lr z9QQb&0pRU_9~5N%XMaj6M8pNvAWAu+-o$oiV6jvG>CroZ8v~9&MR-FK2MQ)c%*27L z-M*5+Q6VeX_81gKD2L2Z;QE(i1aRrx%jV)DHn^hn#0F=SPXmxXZBGQXp8UWzgf^Kx zjXeH?)T{yu$Uh6IlQmUo&+Ntn%bB_;!FRk$#p3B?>KaP;G0# z>WBhj4p(%?pWQ$rE;t<$Xl-A&m4dugd{fXWfI0#QC%B^4-9 zCAI~i1R`Y+Shzj_rIu8e0%5o9!0jhBfPl<4_V;y~P@q9f3`ETUiYjX$sBq(fs5tR$ z5XgQ0Ak+|~mRAs(LTn61`H1U5z<3%&+F&#sq;p&_s!7ZW0rDros01+Tw_ub9?2bMJ zO@bh=f~{vmK`AB>0eBV!WE1cfI2e#Q3jo0ZV16P%U+ z+d3>8a57+Q04EO60Vh;t$l3?bF5sX6SoZ*x03i4V9dPo4oEhpMdI0kmWR_DSry2Z` z5`*z58?h<`eBqRcPeZ_`7Dq%v(PU~k31n{&%1cbfqhi3VRd`T@m5FP3RF(KW5`>a& zB+3ec<4`2(#t# zqfx8}2wxmHsliN=4EH?jD-XjL_os0Ek*ER*@W(%M)S%>lo&w>G17`eZ4vcTW*z+w8 z#IZs&_)^bAgYa~VMrlA?`bMK7e-PHUU!n|hZJT25uOiA|Ly)8Lze_3uWx=^_d&!|_ zlnVpMrz)dRUQcD9G-Q_iXD(10vPb?S0ZKz=$bTd-C;xmJ{%8S}{!``tNMKe1QhV|? z;$pxylwv_TUIIPiKMo+94F~jxWQzY?9S8J>tX%&{fc}uW@E-}#8*meDug)I}EcGH5 z<+H#6R20yM6`{O_*R3&?us1lE65n~fT3Mj;*)WnzZD8JnH zS5z_*)UAN9P-%H3Xn?;#_+Kep4Ny=CCZM}O!jUy}O#nUwMIR*=C7|a(83jqlK{QN6 zNyG<9;2Xl2gtih-C8Hw5sU-9UF((D2^ zk_K$mlZJA#ZAT=mq|l+DkitEx5+&177OCxLVNKn>x19>GqHd4>94i1rFoN9=5L?ML4_rnrK2JuuqblfCO>Q(>K6t^0!eF zWoA(30EdjQVS+NS6b5e(hs*@nvOpntCkAf^hdW@yilIPo;1LYo77p29!wzL&1q|K> z4mn`M31vJ`W(|j2u;GR>RVcH9LvWV@!wY4GP<99o`Cx;^P!JFtSwl-WMq$GbCj#X# zcndfbfXz-IBOQP;b2t=)jS!T9wJ>;KG75|^Y($`pyb-V{1x6G$z<3DB6V3zXp}>g4 zMgk16z`htf!32(X!A24afz2>@V>pz8jWm>ztpMImfsuiYER>P0U<8M9u#tx{U=Iv_ zKO8E+MiI(@c`$geZ3>JMY?Pr4*a(9+fI}RH09q9&1h&B7^`Q_LjsgSSiv?T6;P=6y zI&3tc3~GeegF{W&Xh9i#J6;zKwPB+JW#stS3x~U5vj@t6@i2JMqri}Fz$b`KnW!i? z9&7@GCuIS?E$2Z96UKybjG2u>a0eBDT% z3{8#)(ShKAQ4t)lJA%_jIG4BY0?Q&e;4=gVtcKwBAzYkq$d4IdM8Ft?5rPBph2TK& zAUF`F2+j!M!qJfDm=dE;pd!#-2oBf_!I>jmI(g(~1$#qCP*c(_gr{4Jd>51qgakqpA%R##NFewS5(qYgL{1El z4hRW^H9`VmjgUYbAS4i^2nkw{CE(Ja zS|B7C4kVC82ni%8LXtwb(>{`?fS^Z6AO{c<$Tozegm5?KP!M33ydaDg67)Dp1L2;9L5#Eg}1acR68-s;u zilu`MGi<04p6|lsyC4iOSm1IDmJK#AiLt<`7%U6I%PK>j0!srPm=%Ks&c|SZJ26-u zgjW^@Fb2y98&KmhSW(yj=VP$YlURO)z^iOQo&#Kt!GdVTU_}sKOPE3!EQnwX78WKf zNKp(HgfRvyf$+N3knc*tA@C;#D~s^@6_I5izA;#G6$9~&!73uWv6|!?Am%Z6nC)0{ z^#snwU{w&_3_=?DHi!TWmaIQ{4)81n3mu3BnT^4MFu-7ek1<#+g!dd3`3Vpy7%aK! zf`GtabzuV{1%urO8{l#b)&SvcRVPmdp@G4IN`b+GaKT`K!!TGggtwy+#vcX?!UBT@ z5rM%1_hPWX`4}wlI|d6Jjlq*$;)3wLSt76H24x6>%JIV?9%McSPml14ejpD)dSdX< ze|V6T7(8?s9&Q#7iUS7E1smu(JP&MuuLu}C^bQ{84<3{a3?BLp&yVn_lA{DKfbjXW zkeA+x@THfNdx8jGRS&r*gz(+xBlm<6EdLa_CxT#iaglqX2sVj>+!I5v?>xyp=wdvm zI2b&%Dqaq{0}qXfCvOadF$V7e8&BAPfX3iKCB#%wAZTa}@p~b99B!!s_b8>Abi8>Jhkn-tIu8fbDvJH%ummpZy#VZR2th(=SO@Go>h;r`cjDNRkt zSAAo>rKi!*p%%Jz;qgX#HVqlQhhai9-G_$$`#^U<{O5F?!nzi^3k_L)hAIAgdT$z< z@q=!SV5p7qpU|}nb3fpD!7n-&&Hh4X6l#8=o2tGS_Jo&OhcIQ=iiW80-dDQr?=R$c z`nc9F+`^4N=qqVzVhTYkRPvHeM-jj13)RE|d?a>uC_@K@)zY=InG7LK)b>n_OlS;; z>>|ccnzZei3Jxh~3~O}Ijzca;q%jH;Y0Qu)6f~JV7@5CkK0x22nUN@QGD8nphOr4{ zOma6Dp+xGC92JoglMs);$Q&Z0k|UC0#zwWyrHqeK0gVk$j)|Zi${fZeB(*+Fjfstn ziH}x&3y+Uftr4D>7(4a%W3PZd;-Ep^{k;aMz!Ku4TwJ`Ov-rtMC71CS1dyO z`Anv{>RC*DL~Lqg6vho8V(>ZP9c1LqW+MxGh6CCh!(yYz2!L)O#w+<&vWRBCLo^l7raYs3zSqxa}#ssGR>R4vyRv@ETrc3M4 zI~FfUtujBBX|2T<@g#Bq+8fK1Yf@umY)e?7$8pTg$Qb^#0a(T{W%?@M){W9a2{wk) zHRMZpLaBr+ZC#7TA?%EV0zOYB68(O7E{^Hiww4M&DBvlCvflt3>H@a5wnPl% z=gZLcB<2w8pW^oQv<^?tW{%euDil0E zV3#(F)eTk8VKUJECbk}1z!&or3I*3iAmu5oTJAQqzw zY0R0hFdq8O0cuI*Jc&YrJie*cb<~jZq*A0emw8501gB7-vbp#QQdA$1&g>3DfkK2b z(wW;^hthe>{<<=rR4k_C6Kysl>`?wZrmiOS5S^LF6txaN&10_86!ZA7Vdi{hbn6fR zRDxh6l*<8GIaeT80ZA4xCmQg15_~dz=TpX`j6jleG3s`g*@Y?KQ^yiZ9eT$^r>ZbTXZJ7&v}q1g zhlKkj;LErIxF=G9LdE8uJ&{)k$ySQFeE7eBD^N&yl8!)dqRH4Yf_ZASKN7I1DXEG0 znN-Cmn8OT(k2dp1**AC^85xrj^B+DmOb&_|KRG;Un(9T&D&S*8LOgOEOX#4^8(0M5 zdNZ`pHE)JqVV8T%3>r;PSa6^Di$jxPvM>rSzhjct;3{ktk_>gJM1lmD>CS~*g7~Zh zN&^^eZb?`x1q!i4RCoj!O+1Q=N*SLJi8;=fs!o8PCWm8A;8AKa$OMeA@dVP23y)}> zz_Nh>515qo$y= zAO?wES`zw7$}bQJMGnc}PsB#KMkb_!=yr3#kJ{)HlT3Lp_)%ndN_cmel?om3osm04 zr^ZFarvRRKR)rTHfrmm(CnP4tgr~HwhhJ6!rc6!5(k>DjV21?DDt>7!I_OCdCK4H+ zC&so5>w(1ZxxA1CSMA` zV)!SJNw`Xp5Wgyh=RyU3jOSogDSidCo=Bz;!2lLh;6D;RSIozo!3$ym-b@TQfdJ_O z?EyJHyagMIC3t%Yz(_F+{1eN-NQfjNu2?}m5pyMAI=CXG1lw*2tSAAmLCl98B{Hr= zLIKIS5~)I=3kIAkk>l;bL`xKa5Ns;t!yl1Uz?BN{rZPSZ6tJL7$d!utu%1*313*e7 zRdA(%D@?%?*cAq1t`w|=u1F?Va-}i_MjBR>QwNvB0H06>uTi)Hm1KN;9=VV!6Yzmj zaz0lk1O|xYVy;XC?17U4FYpW=C}3r|f-93^io&c+25X7ru#5sYERsvPaz5A?5wKCN z6v88*fgE@UQ*y3c1a6iXjwHvzCQ=Bwaw$FzoLVlE3Uq-FT)6@tMU?~E2DC8oE64(fj6k?&SSOAKSFQB#; z!$=4?Vuk>pM0hDFj3ja(K30T$85TxBOaM*+@R_gR3IGsXC?K!^%(fKE2aK@nV2@BB zfJ5na0r3-pN=+C$LD$_~*R?kq^A+xVm?6gyZMh4M;Ql3qYvGl}#5OHd)66h7P+%Vk zxW(rQz;SAR&oD(bFF+q2%OVDoVuh3^1Oki2*gpd{@D)4}9|a!)`(N{rrH6u75Q7Ps zf+qn4gc5MCFh>+ZotDlcVeqG>CMA=Ly?!N(7A0-TtSw5kUn5&4v#%*wzN$p{b(56+yIxUfa zCsPQJM>fINl1RYok)xE>u}G{yyR!)aI7%{^1l8cjLOD++ks@+6AyOC01%>@r6OS}# zLR4{+#U;Q%0$B&@x(@0huwE>BkX7b zWTM0A4n~#Ws>4;JP$ES#!M`Yhd%K?CS*b8mZ4Ni~?;T))v+5ihCceV|%y``f$Nyz6 z(Aivv!@`oo1iN=|Inh;3CT*pKO!m*lGIUUf<6`?iXaTna2*+(Bg$xPy5q_wqoMnc_ z(3o6`6ii@WM^vOLGL&y87!Z$N$_1G#$R$i*{2j)0#lP^vJRp?>lM0;mc6dXagn7sm z!R6}6LzGG9@NE7E+Mt8lqm63l9Dg)#2Qk2;Bg5oqs}08%Y44=?<@JUI)(7GsK%*~O z`jugf&`!byJ60G8QUuztBNB2s#kFq#$PwH8<(LBa-g%~y$Vh&m`>OnPgkfRe=aR~QmPS-Kn-3o$sR)VY6OVXUk%sl|LT>V1fi zzzO#rZAWt_oL-_NdHi8G6=uNd0zm)hVL0;I0wM?w<@E!&B0d67>kHs%=@9^&a|8|@ zeUu15=11Y#&!a?tI;LzpPGNj8rx;kRcbGxtFX4K=vtrQI#Ue#vRw1#Vv&!vpI!C-Q zVzs|T{iEWeQ^teo62YAVcNLW%CK-kC6~s518bsCcj%;f*`#oWVGM*5++F(^=ptw;@ z3du$J%b5n~S30SON=->uO$8`Y38I;i7AW8;p{*sCL*OSz);c72^=-lg8BZh)4d88T z!@yc$;LKY@e~tD~-C9>ky9lX_Q_l#Ue^yB>CJYV4G9K1zt*fL-Ndld?P4NF($^-$Z z0dl@Wbk@MTt+rzILdNg^SyCV6N0D@DA2Efk1ya5zjPZHt>T|Kit7yjcz? zzmd@X3)s1Jw(K4uL9?F`j>z>sVfGh@4O)JmzyUR0Wz&7|dD|msgYu0@eKeqk(9)K- zVrW%GjMI`rRs@Xgk}6_?mIQJvAgy1kh;Ud(Ad#TZ2Sl8fP{fn+rKs`&5uyc|EWSjB z0$&o+KkH{aB&@YyH!zmSdID+rTPWyiG6C9@Mp~oH-##9rX zwZK0RKq3f;9NdYA>I1VLN6C`H;@OD@kp;PBcx+b`&a81IW5S|)hNadid zBnVOHbC3f{h$y=7`8+u!S=djB9vy*p-6SE`aF5W|2B(*TN|dr#=%;{XNC}Rn^siO9 zt%PcY1ww_P-OmW~znA3#!K6G1xc_a7vY!)nf5V7=Z@Bh35DD&?K!(0QC*pA?P6pRG z@dXj41&*K)azb}r5XoAwq*SWF(jxnNDFbxu4ne0d731?;{=QcXO}+r|Kwg!kGwN9n zQXm2kODIJ1>j^n5{%5kO-Q;f(`3qup1Hn+8UfR0IiC08d4V(i*XA@vk^#;Pf;~VA% zD%iFZ=%j3tK?zPrK!z$aDT9P67_znvvsQvwuIps*W|Uo4L!1GFWeouuG3^?yrvsJEXoLWu^Ta6oZr{RW~n636}k zWg3%o^tO>;YqhSS-$aPo##Gi>0*O7yTR|!ql956wn$kqbK$!9H?|IM>5}6F8=>a9a zHWBQ9H!(8B_YDVEtr)AQXWz@$#~xWfCrsO)3^3!OvS!e>t(a9e69KIoyS5N~V+sdV z7(Zx4KrdgEc7@JHRLHo3tRDqd86M=TW8K(gXLVzYYvMrHO50Z@yCFGkW$XWs-4mQ#a zD_#L89Lhdc_aL<)A1wt;C`;-oAssX+0JQZr*-KvtArOR;?H~YGI%<@VWZODmA2EkIBMAgoaBm^lQtb%_vX{o6-C!*%BS;BgP4^pyX2tSBTinUce*+pIAP^mJ zl|ZWAB#UK<4118)T96=td@%}ML-J7h3Z@kC=YdreK_JMNqp@<*9q6H&pQtTteGH;| zz@Y799pC>cA+_7y@99R){r!IH`WD`Q)?exdG(9OLq1w~7i!++Nj%1;N?xacED%ZM` ziCRL?y?}?8I~ntPMQ6m#Vd|oqFCd)w93lm3b|9^gaSzf;Ljdjx66^=zReF<@vi8#A zL&yhqU}q0FR)=}Yyq}E+$RH13sR|GuRIl}*9pD{`L9hRkkXmhv#t$L;qc~46l_P$V zJP6~uUoC;3P<8`VO3;92?K7;q5~245D8ptCp0`+Hi_I&<8cOwxkv zsQ|)8fe(!3pmM;0+y!F*;X^fo+l%a`4!Qy>CQFp~9qO)2dXZ%7Y+f%iN=pI)Es!8% zUvf&@c$qJ0ho-wS%+YmUl4yJS+?V8Pi6P?&)=j@RnFwYCyi}Cdn@qq}A-PnBKK3S4 z+Qx}}NI~29@o8pPRN4oa-3s`y-6W$g*;N}7O(5K$7W=&36kOzn8N_lN)vn+nHU8O zAjkhL1_nsy62!+ml$8yZ2rjUVrhrPnOfm+!|Dy&U_P}?l!;Jf35{D^N)-)rK94P{4 zr*<)up&^t=#DykPSavjImrllNDj>5XKo!BT1@ABk8JLBnDqw)LkjmUqJApD(Xp6vN z;_S+AZKwsAQOF`;jbepB9oqi}iIGxQgr0{nJ_j4sgy(Bt8GOpawuO5 z{OAB~We6r3O0<6tT3xaZ$s1AhLS%1KYrQ~?1+u@uwPO77dncxBRTmj|K z!%ImwJutW;2%o8`Er-aiYT!Avos5IF$VhDs@CNxP(UEQSo9_$_5KBmIWU;vIC;-+- z1YVz22I;Q;_w;WXVC#lqDl*7p9bhO5v`)8CAhILOZyNjoly=0W0~uN&muHbFnoy61 zAV_BgC_9i9=*U3HE69O=Z31UrM(Thufs6+g2ervMT}uFj2W>+W!KpK!K_uo{1@0SV z8L5=00$p55x??u~1!Z)A?5Qnmg`k{VO4>WDW`&x}2o2P@ilj4eezmnm<`s|2e-PY- zttELnpyDCD4v~pL1JM9|ZiLwJg?wfVb@lVUukKtgKMxBBlo7&SvTuNuf3e zjx1D1sD07c)nuwBwG*mdO$s`^sjsrGnHr!2Dgs?dkRo)H9kltAjxrF_uz5E}e>0r9SpY$F$_!3rVi>jD;7 z0{lC0gD`CsqmKK6y3zTKyNR4-s?w+b;Mb;fH1set+77F|nT)}1f(+b*|2C7nKL>Ah z(I_E;J)zO%FSA0|auMR11NN?=+LuH2!naHZm;Vo51?_cc3+bZyH-sTN&Sg2FHdjqk z8zLYOJ4m-?kVpSn&In8!WmVds=4~VUsT{GYZRApwb2e#vn{zfQhg5dhZvZqhS`m4g3)BFTLtzmO$|F7XRbv$&QSDAp$Xm{moed$7 z6GNsKYC05XSsvN5Gg#PG?d`Ig?20^gfQG`)kpB)+pcDD@2QUT(CvpxFY96^zhtAa?}3zrJ|3IM;ud&zJ} z{*(L2jDI-t`4Gv#4gMPpFM;TEu51a<~B6Kib zE>amdM@X=R%GN>zjpJg#{$Mb;71#wV+DiP2` zg+>0XcZRL)5QXPQvSb$6i)0oWOkpjyRD)(3sK+x4_pN3vcf_v+pJO%PO4@;MYPL`aK6cru^Wl~)95DTC2_T>#g?Jr!Um%3C zuNX?HP)~&dB_z@WVyJ72LDC?yf+x^JAdrEJDTZ<~v}{OqarGENVhjwO0z$w~3>9`r z$Ut=&94;X)?u(&R5AijA3y16&SgM3M8O9h+E|f!wUJSKk=qtc;00h-{T`1~9^8nrz zP=FQ%T#ttmI&M}FgZ76019%;~yJ9Gvi*bK}6lf;KwO3pT$4{Z0jd#U$XuK=v5GZ8u zb;WW%E=c3oFi}Jp2-lvWdjJNwod8#-@jn?TB4{uKBIA?csC6%rZHLJajn3AkVIM9fu6D-Cy1fg4?Q;+8QfR^(H&;JR7Uku0NV`K~Y@{NXeAY^#~)}J|Gb2!eKyO;0bU8%JxEd3j|0G43NMV8PxRQ z2^2MOkz4{x$c2E51OyU#86aB*z8ahc14BQ749EdA;mYM8;=oJzfR~_-q~OD%pdq;m z5M?Ed;1Q4v=0HgCxpDbiA%WvafRCUi@f36z;KIKIDpL>_137TN0kjV&gu2krfrS~Q z6)Gjr6aWX6Ku!rpAZikj2k0XJ$&-MD3iwi>nFM$YTSL2wOk#&eKr9JJ6Xfn;5eaY( zdJAy&4>%8ZLnvBZ!Xn{%2b8evQ1=p+35@6B@i}9TJKB7Z;NiP}1L|+EWQTeoGzkls z92dL)QBng6;F4NvB^a)vfZ5LldLm zuM7zM3^_(9G+0xO&_d zt+~c>U;Pf6FOn))BalM{3#zo0tp4a)1b8t4%G9o5!= zq|G#eLNb?R$p4TH-(u*7!D44bh#+$bstc?GPk~J!^fH5&X!ek$Kqnrs+)>j}!pH)m z76~?j(3CF*y$b1h_zp^3fU9_@wwXmzeL>KXWPk=gWcib=FUa7>0Z`b27oh9}?GFR0 zS@M76NzPZXEWKJKPrx!{{{U8MYk#4b2K^fn6@{n{jK7#B7gH1ht=@q`U>a4Fp)M?C z81eTu{Rb`kREL1zF)I)~e*_n<V@wAYJrRPmH$%fu$N!vqxF zfXAq)`Y+sp&BK7XSl|dSClrQ%TA0AHQn)kz!5vys${(=^D2YrmVRAaK5V31ON0>bM zAJzkBFFeAKn{y{EY@%B;0BIpcs*DVs&(YAjxLBsp`(ju4o!J~vl9Cf6e|@n zWb_=!5`r3Eu>N%5fVzVj>(6i*=`VmZm!AVScfMc+pwTZ_klo)8Ee75%S$#V;dx5ip zrOy_fdC4+C&8u*$D`XNuU&P>$7tpj}{L`}psaT99`+s0b2`9P*r_*hfGVoqh%{4)< z02{4WaHsh1;nz4X@z;&708M2Bh@ZHD1tp68&>Ug*n&nH~PZXriAeG`5j70I?gvOnqx)1%N`MXuh%uXx_I84%4j}4)dr
Ubu^DXK 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 - - + + @@ -31,7 +31,7 @@ class="cmr-12">University of Rome Tor-Vergata and IAC-CNR
Software version: 1.0
March 31, 2018 +class="cmr-12">March 31, 2021 diff --git a/docs/html/userhtml.css b/docs/html/userhtml.css index fe7f3289..57ef3dd4 100644 --- a/docs/html/userhtml.css +++ b/docs/html/userhtml.css @@ -63,7 +63,7 @@ div.obeylines-v p { margin-top:0; margin-bottom:0; } td.displaylines {text-align:center; white-space:nowrap;} .centerline {text-align:center;} .rightline {text-align:right;} -div.verbatim {font-family: monospace,monospace; white-space: nowrap; text-align:left; clear:both; } +pre.verbatim {font-family: monospace,monospace; text-align:left; clear:both; } .fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } div.fbox {display:table} div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } @@ -149,7 +149,6 @@ div.abstract {width:100%;} .shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; } .doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; } .rotatebox{display: inline-block;} -.figure img.graphics {margin-left:10%;} .lstlisting .label{margin-right:0.5em; } div.lstlisting{font-family: monospace,monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; } @@ -186,9 +185,9 @@ div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; } #TBL-5{border-collapse:collapse;} #TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-5{border-collapse:collapse;} -td#TBL-5-10-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-5-11-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-5-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6{border-collapse:collapse;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} @@ -201,8 +200,8 @@ td#TBL-5-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-6{border-collapse:collapse;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6{border-collapse:collapse;} -td#TBL-6-5-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-6-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-6-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7{border-collapse:collapse;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} @@ -215,11 +214,11 @@ td#TBL-6-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-7{border-collapse:collapse;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7{border-collapse:collapse;} -td#TBL-7-5-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-7-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} -td#TBL-7-13-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-7-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} +td#TBL-7-13-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} #TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-8{border-collapse:collapse;} #TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} diff --git a/docs/html/userhtml.html b/docs/html/userhtml.html index a287a5ae..2d1ac7b7 100644 --- a/docs/html/userhtml.html +++ b/docs/html/userhtml.html @@ -3,8 +3,8 @@ - - + + @@ -31,7 +31,7 @@ class="cmr-12">University of Rome Tor-Vergata and IAC-CNR
Software version: 1.0
March 31, 2018 +class="cmr-12">March 31, 2021 diff --git a/docs/html/userhtmlli1.html b/docs/html/userhtmlli1.html index c8ce8f48..fc40c5d3 100644 --- a/docs/html/userhtmlli1.html +++ b/docs/html/userhtmlli1.html @@ -3,8 +3,8 @@ Abstract - - + + diff --git a/docs/html/userhtmlli2.html b/docs/html/userhtmlli2.html index b52fe6ee..07c2f5d9 100644 --- a/docs/html/userhtmlli2.html +++ b/docs/html/userhtmlli2.html @@ -3,8 +3,8 @@ Contents - - + + diff --git a/docs/html/userhtmlli3.html b/docs/html/userhtmlli3.html index a102ce70..e358a8db 100644 --- a/docs/html/userhtmlli3.html +++ b/docs/html/userhtmlli3.html @@ -3,8 +3,8 @@ Contributors - - + + diff --git a/docs/html/userhtmlli4.html b/docs/html/userhtmlli4.html index dba92584..2a339025 100644 --- a/docs/html/userhtmlli4.html +++ b/docs/html/userhtmlli4.html @@ -3,8 +3,8 @@ Citing AMG4PSBLAS - - + + @@ -32,24 +32,23 @@ class="cmr-12">When use the library, please cite the following: -
+
 @article{DDF2021,
- 
       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, - 
       title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}}, - 
       journal = {arXiv e-preprints}, - 
       eprint = {2006.16147v3}, - 
       archivePrefix = {arXiv}, - 
       year={2021} - 
     } - 

@Misc{psctoolkit-web-page, - 
       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, - 
       title =  {{PSCToolkit} {W}eb page}, - 
       url =    {https://psctoolkit.github.io/}, - 
       howpublished = {\url{https://psctoolkit.github.io/}}, - 
       year = {2021} - 
     } -
+       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, +       title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}}, +       journal = {arXiv e-preprints}, +       eprint = {2006.16147v3}, +       archivePrefix = {arXiv}, +       year={2021} +     } +@Misc{psctoolkit-web-page, +       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, +       title =  {{PSCToolkit} {W}eb page}, +       url =    {https://psctoolkit.github.io/}, +       howpublished = {\url{https://psctoolkit.github.io/}}, +       year = {2021} +     } +

diff --git a/docs/html/userhtmlli5.html b/docs/html/userhtmlli5.html index e863c67d..b9362d17 100644 --- a/docs/html/userhtmlli5.html +++ b/docs/html/userhtmlli5.html @@ -3,8 +3,8 @@ References - - + + @@ -65,9 +65,8 @@ class="cmti-12">Improving multifrontal methods by means of block low-rank class="cmti-12">representations, SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452–A1474. See also http://mumps.enseeiht.frA1452–A1474. See also http://mumps.enseeiht.fr.

@@ -332,11 +331,8 @@ class="cmti-12">- an Unsymmetric-pattern Multifrontal Method with a Column Pre-o class="cmti-12">Strategy, ACM Transactions on Mathematical Software, 30, 2004, 196–199. (See also http://www.cise.ufl.edu/~davis/(See also http://www.cise.ufl.edu/~davis/)

@@ -444,9 +440,8 @@ class="cmti-12">PSBLAS 3.5.0 User’s Guide. A Reference Guide for the Parallel Sparse BLAS Library, 2012, available from - https://github.com/sfilippone/psblas3/tree/master/docshttps://github.com/sfilippone/psblas3/tree/master/docs.

diff --git a/docs/html/userhtmlse1.html b/docs/html/userhtmlse1.html index 2d0fbf00..f7af8224 100644 --- a/docs/html/userhtmlse1.html +++ b/docs/html/userhtmlse1.html @@ -3,8 +3,8 @@ General Overview - - + + diff --git a/docs/html/userhtmlse2.html b/docs/html/userhtmlse2.html index 474befde..8c0e20d1 100644 --- a/docs/html/userhtmlse2.html +++ b/docs/html/userhtmlse2.html @@ -3,8 +3,8 @@ Code Distribution - - + + diff --git a/docs/html/userhtmlse3.html b/docs/html/userhtmlse3.html index c806825f..3184abfd 100644 --- a/docs/html/userhtmlse3.html +++ b/docs/html/userhtmlse3.html @@ -3,8 +3,8 @@ Configuring and Building AMG4PSBLAS - - + + diff --git a/docs/html/userhtmlse4.html b/docs/html/userhtmlse4.html index b932dc14..6e7558c6 100644 --- a/docs/html/userhtmlse4.html +++ b/docs/html/userhtmlse4.html @@ -3,8 +3,8 @@ Getting Started - - + + diff --git a/docs/html/userhtmlse5.html b/docs/html/userhtmlse5.html index b4a1075b..8f6ba4e7 100644 --- a/docs/html/userhtmlse5.html +++ b/docs/html/userhtmlse5.html @@ -3,8 +3,8 @@ User Interface - - + + diff --git a/docs/html/userhtmlse6.html b/docs/html/userhtmlse6.html index b4614460..a9f8acff 100644 --- a/docs/html/userhtmlse6.html +++ b/docs/html/userhtmlse6.html @@ -3,8 +3,8 @@ Adding new smoother and solver objects to AMG4PSBLAS - - + + @@ -215,24 +215,22 @@ class="cmr-12">pass it as follows: -


  ! sparse matrix and preconditioner - 
  type(psb_dspmat_type) :: a - 
  type(amg_dprec_type)  :: prec - 
  type(amg_d_tlu_solver_type) :: tlusv - 

...... - 
  ! - 
  !  prepare the preconditioner: an ML with defaults, but with TLU solver at - 
  !  intermediate levels. All other parameters are at default values. - 
  ! - 
  call prec%init(’ML’,       info) - 
  call prec%hierarchy_build(a,desc_a,info) - 
  nlv = prec%get_nlevs() - 
  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1)) - 
  call prec%smoothers_build(a,desc_a,info) - 
-
+
+  ! sparse matrix and preconditioner
+  type(psb_dspmat_type) :: a
+  type(amg_dprec_type)  :: prec
+  type(amg_d_tlu_solver_type) :: tlusv
+......
+  !
+  !  prepare the preconditioner: an ML with defaults, but with TLU solver at
+  !  intermediate levels. All other parameters are at default values.
+  !
+  call prec%init(’ML’,       info)
+  call prec%hierarchy_build(a,desc_a,info)
+  nlv = prec%get_nlevs()
+  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1))
+  call prec%smoothers_build(a,desc_a,info)
+

diff --git a/docs/html/userhtmlse7.html b/docs/html/userhtmlse7.html index be3f3a40..20a74c45 100644 --- a/docs/html/userhtmlse7.html +++ b/docs/html/userhtmlse7.html @@ -3,8 +3,8 @@ Error Handling - - + + diff --git a/docs/html/userhtmlse8.html b/docs/html/userhtmlse8.html index bab484f0..01bbaa41 100644 --- a/docs/html/userhtmlse8.html +++ b/docs/html/userhtmlse8.html @@ -3,8 +3,8 @@ License - - + + @@ -36,42 +36,37 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright -


                           AMG4PSBLAS  version 1.0 - 
              Algebraic MultiGrid Preconditioners Package - 
             based on PSBLAS (Parallel Sparse BLAS version 3.7) - 

  (C) Copyright 2021 - 

  Pasqua D’Ambra         IAC-CNR, IT - 
  Fabio Durastante       University of Pisa and IAC-CNR, IT - 
  Salvatore Filippone    University of Rome Tor-Vergata and IAC-CNR, IT - 

  Redistribution and use in source and binary forms, with or without - 
  modification, are permitted provided that the following conditions - 
  are met: - 
    1. Redistributions of source code must retain the above copyright - 
       notice, this list of conditions and the following disclaimer. - 
    2. Redistributions in binary form must reproduce the above copyright - 
       notice, this list of conditions, and the following disclaimer in the - 
       documentation and/or other materials provided with the distribution. - 
    3. The name of the MLD2P4 group or the names of its contributors may - 
       not be used to endorse or promote products derived from this - 
       software without specific written permission. - 

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - 
  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - 
  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - 
  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS - 
  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - 
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - 
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - 
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - 
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - 
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - 
  POSSIBILITY OF SUCH DAMAGE. - 
-
+
+                           AMG4PSBLAS  version 1.0
+              Algebraic MultiGrid Preconditioners Package
+             based on PSBLAS (Parallel Sparse BLAS version 3.7)
+  (C) Copyright 2021
+  Pasqua D’Ambra         IAC-CNR, IT
+  Fabio Durastante       University of Pisa and IAC-CNR, IT
+  Salvatore Filippone    University of Rome Tor-Vergata and IAC-CNR, IT
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions, and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. The name of the MLD2P4 group or the names of its contributors may
+       not be used to endorse or promote products derived from this
+       software without specific written permission.
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
+  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+

@@ -83,44 +78,37 @@ class="cmr-12">abide by its terms: -



                           MLD2P4  version 2.2 - 
  MultiLevel Domain Decomposition Parallel Preconditioners Package - 
             based on PSBLAS (Parallel Sparse BLAS version 3.5) - 

  (C) Copyright 2008-2018 - 

      Salvatore Filippone - 
      Pasqua D’Ambra - 
      Daniela di Serafino - 


  Redistribution and use in source and binary forms, with or without - 
  modification, are permitted provided that the following conditions - 
  are met: - 
    1. Redistributions of source code must retain the above copyright - 
       notice, this list of conditions and the following disclaimer. - 
    2. Redistributions in binary form must reproduce the above copyright - 
       notice, this list of conditions, and the following disclaimer in the - 
       documentation and/or other materials provided with the distribution. - 
    3. The name of the MLD2P4 group or the names of its contributors may - 
       not be used to endorse or promote products derived from this - 
       software without specific written permission. - 

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - 
  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - 
  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - 
  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS - 
  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - 
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - 
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - 
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - 
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - 
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - 
  POSSIBILITY OF SUCH DAMAGE. - 
-
+
+                           MLD2P4  version 2.2
+  MultiLevel Domain Decomposition Parallel Preconditioners Package
+             based on PSBLAS (Parallel Sparse BLAS version 3.5)
+  (C) Copyright 2008-2018
+      Salvatore Filippone
+      Pasqua D’Ambra
+      Daniela di Serafino
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions, and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. The name of the MLD2P4 group or the names of its contributors may
+       not be used to endorse or promote products derived from this
+       software without specific written permission.
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
+  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+

diff --git a/docs/html/userhtmlse9.html b/docs/html/userhtmlse9.html index 21676acb..5a1864d1 100644 --- a/docs/html/userhtmlse9.html +++ b/docs/html/userhtmlse9.html @@ -3,8 +3,8 @@ Contributor Covenant Code of Conduct - - + + diff --git a/docs/html/userhtmlsu1.html b/docs/html/userhtmlsu1.html index 8498220a..d3d37856 100644 --- a/docs/html/userhtmlsu1.html +++ b/docs/html/userhtmlsu1.html @@ -3,8 +3,8 @@ Prerequisites - - + + diff --git a/docs/html/userhtmlsu10.html b/docs/html/userhtmlsu10.html index 9c7a2c0d..c8ffd9e1 100644 --- a/docs/html/userhtmlsu10.html +++ b/docs/html/userhtmlsu10.html @@ -3,8 +3,8 @@ Method smoothers_build - - + + diff --git a/docs/html/userhtmlsu11.html b/docs/html/userhtmlsu11.html index 79602b0e..e00f2580 100644 --- a/docs/html/userhtmlsu11.html +++ b/docs/html/userhtmlsu11.html @@ -3,8 +3,8 @@ Method build - - + + diff --git a/docs/html/userhtmlsu12.html b/docs/html/userhtmlsu12.html index 8f1f65bf..9bc621c1 100644 --- a/docs/html/userhtmlsu12.html +++ b/docs/html/userhtmlsu12.html @@ -3,8 +3,8 @@ Method apply - - + + diff --git a/docs/html/userhtmlsu13.html b/docs/html/userhtmlsu13.html index b482a53d..b5d808cd 100644 --- a/docs/html/userhtmlsu13.html +++ b/docs/html/userhtmlsu13.html @@ -3,8 +3,8 @@ Method free - - + + diff --git a/docs/html/userhtmlsu14.html b/docs/html/userhtmlsu14.html index 7720e669..4e4894be 100644 --- a/docs/html/userhtmlsu14.html +++ b/docs/html/userhtmlsu14.html @@ -3,8 +3,8 @@ Method descr - - + + diff --git a/docs/html/userhtmlsu15.html b/docs/html/userhtmlsu15.html index 69f7e6e9..7d8bb549 100644 --- a/docs/html/userhtmlsu15.html +++ b/docs/html/userhtmlsu15.html @@ -3,8 +3,8 @@ Auxiliary Methods - - + + diff --git a/docs/html/userhtmlsu2.html b/docs/html/userhtmlsu2.html index 4a2ae192..64e76ece 100644 --- a/docs/html/userhtmlsu2.html +++ b/docs/html/userhtmlsu2.html @@ -3,8 +3,8 @@ Optional third party libraries - - + + diff --git a/docs/html/userhtmlsu3.html b/docs/html/userhtmlsu3.html index 6106476b..5391df6b 100644 --- a/docs/html/userhtmlsu3.html +++ b/docs/html/userhtmlsu3.html @@ -3,8 +3,8 @@ Configuration options - - + + @@ -44,9 +44,9 @@ class="cmr-12">As a minimal example consider the following: -

+
 ./configure --with-psblas=PSB-INSTALL-DIR
-
+

which assumes that the various MPI compilers and support libraries are available in might be configured with: -

+
 ./configure --with-psblas=/opt/psblas-3.5/ \
- 
--with-umfpackincdir=/usr/include/suitesparse/ -
+--with-umfpackincdir=/usr/include/suitesparse/ +

Once the configure script has completed execution, it will have generated the file To build the library the user will now enter -

+
 make
-
+

followed (optionally) by -

+
 make install
-
+

diff --git a/docs/html/userhtmlsu4.html b/docs/html/userhtmlsu4.html index f6e35e2e..0ae348d6 100644 --- a/docs/html/userhtmlsu4.html +++ b/docs/html/userhtmlsu4.html @@ -3,8 +3,8 @@ Bug reporting - - + + diff --git a/docs/html/userhtmlsu5.html b/docs/html/userhtmlsu5.html index dac9747d..128fca5e 100644 --- a/docs/html/userhtmlsu5.html +++ b/docs/html/userhtmlsu5.html @@ -3,8 +3,8 @@ Example and test programs - - + + diff --git a/docs/html/userhtmlsu6.html b/docs/html/userhtmlsu6.html index 6adab472..921424cf 100644 --- a/docs/html/userhtmlsu6.html +++ b/docs/html/userhtmlsu6.html @@ -3,8 +3,8 @@ Examples - - + + @@ -128,59 +128,58 @@ class="cmr-12">. -

+
   use psb_base_mod
- 
  use amg_prec_mod - 
  use psb_krylov_mod - 
... ... - 
! - 
! sparse matrix - 
  type(psb_dspmat_type) :: A - 
! sparse matrix descriptor - 
  type(psb_desc_type)   :: desc_A - 
! preconditioner - 
  type(amg_dprec_type)  :: P - 
! right-hand side and solution vectors - 
  type(psb_d_vect_type) :: b, x - 
... ... - 
! - 
! initialize the parallel environment - 
  call psb_init(ctxt) - 
  call psb_info(ctxt,iam,np) - 
... ... - 
! - 
! read and assemble the spd matrix A and the right-hand side b - 
! using PSBLAS routines for sparse matrix / vector management - 
... ... - 
! - 
! initialize the default multilevel preconditioner, i.e. V-cycle - 
! with basic smoothed aggregation, 1 hybrid forward/backward - 
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level - 
! solver - 
  call P%init(’ML’,info) - 
! - 
! build the preconditioner - 
  call P%hierarchy_build(A,desc_A,info) - 
  call P%smoothers_build(A,desc_A,info) - 

! - 
! set the solver parameters and the initial guess - 
  ... ... - 
! - 
! solve Ax=b with preconditioned CG - 
  call psb_krylov(’CG’,A,P,b,x,tol,desc_A,info) - 
  ... ... - 
! - 
! deallocate the preconditioner - 
  call P%free(info) - 
! - 
! deallocate other data structures - 
  ... ... - 
! - 
! exit the parallel environment - 
  call psb_exit(ctxt) - 
  stop -
+  use amg_prec_mod +  use psb_krylov_mod +... ... +! +! sparse matrix +  type(psb_dspmat_type) :: A +! sparse matrix descriptor +  type(psb_desc_type)   :: desc_A +! preconditioner +  type(amg_dprec_type)  :: P +! right-hand side and solution vectors +  type(psb_d_vect_type) :: b, x +... ... +! +! initialize the parallel environment +  call psb_init(ctxt) +  call psb_info(ctxt,iam,np) +... ... +! +! read and assemble the spd matrix A and the right-hand side b +! using PSBLAS routines for sparse matrix / vector management +... ... +! +! initialize the default multilevel preconditioner, i.e. V-cycle +! with basic smoothed aggregation, 1 hybrid forward/backward +! GS sweep as pre/post-smoother and UMFPACK as coarsest-level +! solver +  call P%init(’ML’,info) +! +! build the preconditioner +  call P%hierarchy_build(A,desc_A,info) +  call P%smoothers_build(A,desc_A,info) +! +! set the solver parameters and the initial guess +  ... ... +! +! solve Ax=b with preconditioned CG +  call psb_krylov(’CG’,A,P,b,x,tol,desc_A,info) +  ... ... +! +! deallocate the preconditioner +  call P%free(info) +! +! deallocate other data structures +  ... ... +! +! exit the parallel environment +  call psb_exit(ctxt) +  stop +

@@ -289,19 +288,19 @@ class="cmr-12">.

-

+
 ... ...
- 
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with - 
! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi - 
! sweeps (with ILU(0) on the blocks) as coarsest-level solver - 
  call P%init(’ML’,info) - 
  call P%set(’SMOOTHER_TYPE’,’BJAC’,info) - 
  call P%set(’COARSE_SOLVE’,’BJAC’,info) - 
  call P%set(’COARSE_SWEEPS’,8,info) - 
  call P%hierarchy_build(A,desc_A,info) - 
  call P%smoothers_build(A,desc_A,info) - 
... ... -
+! build a V-cycle preconditioner with 1 block-Jacobi sweep (with +! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi +! sweeps (with ILU(0) on the blocks) as coarsest-level solver +  call P%init(’ML’,info) +  call P%set(’SMOOTHER_TYPE’,’BJAC’,info) +  call P%set(’COARSE_SOLVE’,’BJAC’,info) +  call P%set(’COARSE_SWEEPS’,8,info) +  call P%hierarchy_build(A,desc_A,info) +  call P%smoothers_build(A,desc_A,info) +... ... +


Listing 2: setup of a multilevel preconditioner based on the default decoup

-

+
 ... ...
- 
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps - 
! as pre- and post-smoother, a distributed coarsest - 
! matrix, and MUMPS as coarsest-level solver - 
  call P%init(’ML’,info) - 
  call P%set(’PAR_AGGR_ALG’,’COUPLED’,info) - 
call P%set(’AGGR_TYPE’,’MATCHBOXP’,info) - 
call P%set(’AGGR_SIZE’,8,info) - 
  call P%set(’ML_CYCLE’,’WCYCLE’,info) - 
  call P%set(’SMOOTHER_TYPE’,’FBGS’,info) - 
  call P%set(’SMOOTHER_SWEEPS’,2,info) - 
  call P%set(’COARSE_SOLVE’,’KRM’,info) - 
  call P%hierarchy_build(A,desc_A,info) - 
  call P%smoothers_build(A,desc_A,info) - 
... ... -
+! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps +! as pre- and post-smoother, a distributed coarsest +! matrix, and MUMPS as coarsest-level solver +  call P%init(’ML’,info) +  call P%set(’PAR_AGGR_ALG’,’COUPLED’,info) +call P%set(’AGGR_TYPE’,’MATCHBOXP’,info) +call P%set(’AGGR_SIZE’,8,info) +  call P%set(’ML_CYCLE’,’WCYCLE’,info) +  call P%set(’SMOOTHER_TYPE’,’FBGS’,info) +  call P%set(’SMOOTHER_SWEEPS’,2,info) +  call P%set(’COARSE_SOLVE’,’KRM’,info) +  call P%hierarchy_build(A,desc_A,info) +  call P%smoothers_build(A,desc_A,info) +... ... +


Listing 3:

-

+
 ... ...
- 
! set RAS with overlap 2 and ILU(0) on the local blocks - 
  call P%init(’AS’,info) - 
  call P%set(’SUB_OVR’,2,info) - 
  call P%bld(A,desc_A,info) - 
... ... - 
! solve Ax=b with preconditioned BiCGSTAB - 
  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info) -
+! set RAS with overlap 2 and ILU(0) on the local blocks +  call P%init(’AS’,info) +  call P%set(’SUB_OVR’,2,info) +  call P%bld(A,desc_A,info) +... ... +! solve Ax=b with preconditioned BiCGSTAB +  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info) +


Listing 4: Method init - - + + diff --git a/docs/html/userhtmlsu8.html b/docs/html/userhtmlsu8.html index 981f565a..0515303e 100644 --- a/docs/html/userhtmlsu8.html +++ b/docs/html/userhtmlsu8.html @@ -3,8 +3,8 @@ Method set - - + + @@ -903,16 +903,16 @@ algorithm: smoothed or unsmoothed (i.e., tentative prolongator).




Note. The aggregation algorithm stops when at least one of the following criteria is met: the coarse size threshold,
-
the minimum coarsening ratio, or the maximum number of levels is reached.
-
Therefore, the actual number of levels may be smaller than the specified maximum number of levels.
-
the minimum coarsening ratio, or the maximum number of levels is reached.
+
Therefore, the actual number of levels may be smaller than the specified maximum number of levels.
+




@@ -1051,16 +1051,16 @@ class="td11">

Matrix used in computing the smoo prolongator: filtered or unfiltered.






Note. Different thresholds at different levels, such as those used in [33, Section 5.1], can be easily set by invoking the rou-
-
tine
tine set with the parameter ilev.
-




@@ -1303,27 +1303,27 @@ and SuperLU_Dist are available only in double precision.




Note. Defaults for COARSE_SOLVE and COARSE_SUBSOLVE are chosen in the following order:
-
single precision version –
single precision version – MUMPS if installed, then SLU if installed, ILU otherwise;
-
double precision version –
double precision version – UMF if installed, then MUMPS if installed, then SLU if installed, ILU otherwise.
-




p,t) factorization and first drop-tolerance for the approximate inverses.






Note. Further options for coarse solvers are contained in Table 6.
-
For a first use it is suggested to use the default options obtained by simply selecting the solver type.
-
For a first use it is suggested to use the default options obtained by simply selecting the solver type.
+




@@ -1565,15 +1565,9 @@ class="cmtt-10x-x-109">’

integer

Any integer -<<<<<<< HEAD -

> 0

-1

> 0

-1 >>>>>> b7eba989ad763746ba3317b0316a49c8861f7568 class="td11">

Number of iterations after which a trace is to be printed. ’

integer

Any integer -<<<<<<< HEAD -

> 0

-1

> 0

-1 >>>>>> b7eba989ad763746ba3317b0316a49c8861f7568 class="td11">

Number of iterations after which a residual is to be calculated.

real(kind_parameter)

Any real < -1

0 )

Any real

< 1

0 >>>>>> b7eba989ad763746ba3317b0316a49c8861f7568 +class="cmmi-10x-x-109">< 1

0

Tolerance for the stopping criterion on the residual. Method hierarchy_build - - + + diff --git a/docs/src/userhtml.tex b/docs/src/userhtml.tex index 0357730b..cdd4318b 100644 --- a/docs/src/userhtml.tex +++ b/docs/src/userhtml.tex @@ -114,7 +114,7 @@ %\today Software version: 1.0\\ %\today - March 31, 2018 + March 31, 2021 \clearpage \ \\ \thispagestyle{empty}