From 54d3af40ddc63c641057fc42a75920642141eddc Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 23 Sep 2019 15:31:41 +0200 Subject: [PATCH] Transform the layer extent when a user projection is set --- .../expected.png | Bin 0 -> 24478 bytes .../main.js | 34 +++++++++++++++ .../layer-tile-extent-geographic/expected.png | Bin 0 -> 7161 bytes .../layer-tile-extent-geographic/main.js | 41 ++++++++++++++++++ .../expected.png | Bin 0 -> 15304 bytes .../layer-vector-extent-geographic/main.js | 27 ++++++++++++ src/ol/renderer/canvas/ImageLayer.js | 16 ++++--- src/ol/renderer/canvas/TileLayer.js | 12 ++--- src/ol/renderer/canvas/VectorLayer.js | 14 +++--- 9 files changed, 127 insertions(+), 17 deletions(-) create mode 100644 rendering/cases/layer-image-extent-rotation-geographic/expected.png create mode 100644 rendering/cases/layer-image-extent-rotation-geographic/main.js create mode 100644 rendering/cases/layer-tile-extent-geographic/expected.png create mode 100644 rendering/cases/layer-tile-extent-geographic/main.js create mode 100644 rendering/cases/layer-vector-extent-geographic/expected.png create mode 100644 rendering/cases/layer-vector-extent-geographic/main.js diff --git a/rendering/cases/layer-image-extent-rotation-geographic/expected.png b/rendering/cases/layer-image-extent-rotation-geographic/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..2a11dce94196236fe80efec506436c171649b7dd GIT binary patch literal 24478 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
>yRR*JEnvQ+GBB(&b*Lg2;Q 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 literal 0 HcmV?d00001 diff --git a/rendering/cases/layer-tile-extent-geographic/main.js b/rendering/cases/layer-tile-extent-geographic/main.js new file mode 100644 index 0000000000..ea56577f79 --- /dev/null +++ b/rendering/cases/layer-tile-extent-geographic/main.js @@ -0,0 +1,41 @@ +/** + * Tile layers get clipped to their extent. + */ + +import Map from '../../../src/ol/Map.js'; +import View from '../../../src/ol/View.js'; +import TileLayer from '../../../src/ol/layer/Tile.js'; +import XYZ from '../../../src/ol/source/XYZ.js'; +import {useGeographic} from '../../../src/ol/proj.js'; + +useGeographic(); + +const center = [7, 50]; +const extent = [2, 47, 10, 53]; + +new Map({ + target: 'map', + view: new View({ + center: center, + zoom: 3 + }), + layers: [ + new TileLayer({ + source: new XYZ({ + url: '/data/tiles/satellite/{z}/{x}/{y}.jpg', + maxZoom: 3 + }), + extent: extent + }), + new TileLayer({ + source: new XYZ({ + url: '/data/tiles/stamen-labels/{z}/{x}/{y}.png', + minZoom: 3, + maxZoom: 5 + }), + extent: extent + }) + ] +}); + +render(); diff --git a/rendering/cases/layer-vector-extent-geographic/expected.png b/rendering/cases/layer-vector-extent-geographic/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa17ea1f81bd78039b3b6b298a1f18304180d56 GIT binary patch literal 15304 zcmeHuq;z)+f`EXqlr#b&(hbtxjV#@b)Y5&A-+$tM z@_R(=i{-O3XU=)oM5?RGVWE?tLm&_=1$pVW5C{VJ76F2W3ceV+{Y}>c2>Ylm?!L9@|jAV)cc29q7FI z!V2dlEX((of}gLgT8yZ};maBwHI@duuwHsuI{g?WdfESIG5-s}wbDg>3r6bKKW)c2qPCOtU_`c0OcnM~rP$5pFYzj8GhUHo?OHNB!1}JfTm#H2d^{CV+M~7WKaY()P8iWxFw}D0N2s zv|F3bInxcl*ILt_rhL1M9DAI^?vPDl^UB6%`7DS}ude4DZHW<*J@aVh%pJup#bzDR zWkP1ohIktXMzqoQVY9+2T1u#-l4VOMmT;O+1!KgzAx+W@8=n?Gg7a2}1;uYyY|jBH z7n#@fuN8NSmAE*FYZjYo?T&5a&ec4F=c7q4+@k=@@AG58{&sKB2O-?7OFdc#=ZpaJBcZuti zr6?76MJwa8fsH;hulFgcNfQEg3L+n?J;lAc6Ylm_gN2|O6lsgp)KM=R|LcSlEEencT)PcVF;ai4 zl3-8^S zN|fOZ!&~Ep4oWeBj|{lf#(C7zpPMkMz3U57L><@y-3OG1eP2Ten~)_G0#P#`!~&aJ z;zLD44HGjzcO9Bf?ccm|Un|JxP13n-L3lLGh?XpV14nH*yb+qeYsqVEdyCLj9hj-u z(X?VLwl-GN${6w8{Kr$D6dd*EPn*JFGiw=7YET1@k2b>SDA$PpRlRh--})^AwgLa$ zw0ee}g-XaxSlh~+Y;EAf?M3!g1g>h95gZl5Ee{;Rd+t7dNf5#dehNw@QCX?)X8He$BOv4 zWiD))%$JrCO1nR8$i?k4Jf^<1X<=ZFL)gS3vf$z~z}p++lciel#c*OpWOFmlByB8Z zyHI`S)vA9rLiCc1ikvu+B?A{bU9!pJ0Y|Z$Cg*N%TkU5)GgMr<8J(Fk8$a>Z7kLMd zO4cqLA5Y&M#SvsZ*1y#|Hie~qbjdb{ij zTnIlG*F~Rqi=SQKR*BT6KCA4>3x2b|%Oz8jG$etXga zBe@>zNyl-`_)_PHFwEhS;m^pGi+3!+Z-7ylNw>C4zAeTn< zc`nez5v88b8i}p*Dh@`u(bQ8&(4J`NHF50K;-_K78~g{lOIcoaqAnKFBcvq@q9DX; zgw)Ep;@3DJahwx}Vsl!;p0>=lH>Zpo%=o@ip`^6xtzN>IW_Hc#q}Vej|A2v?lCG>x zn+4|uLOP?0-vwX-Tk9|ng4$t~$c{s-Dj|NlDhQe>w7I0*(X8Hx8uqI1$DgyJDo@S2 zh1kv0GgA$0(qHMG>kukO<<2`)vMv{amqrOIJrK%*M zJBYTb9wIcBXEn+IN69j!`ES)lj6O0iaZSl<4s)(B7;o#%VBmh!v+GHJ8usG@={zmx z!+ZQdp+q7LP?}w_^mWUvJo{b<($wmSKWjWI7xVip#;JXfx@{7n*nwzH0b4)1Rqhn8 z3T~MEEugwz3FWk8IDB{#PR0 zt)`#*Sl3vZhe%DQ_6_Y5A`X~syN-)+OgdorX`n6(lV;7iJ}`|ckzdTkTB?p$)>l)e zz$oV&o84|EKDB+%pgme3%&~5l>m4`yQ1cRjO7Y(;Luy<&lqyUU>a*Llip+H4$?IRM_Suhf@zW)fW*7D3!{DWED!PB!D5_^U_i9T>=h16Cu^<(W zGJJG5dwmacKQ{V^tj}itV<_jp%pv>TF5bE@njFsN-+}AJ#*gq7AMc?{$^udLc?v&n z<2wJ9Z-2&i(h$8*Vc;a1-@M^DHmZDx>=kg|-=(CO zc)}YDGcNxA{Req)Y#_Tys@bvsZ>B05BVPVb9z>RBLHt==Qtw8I&pgsM*9ro#`3|dI zU`iHmzQ5qK!|3smrOJqgsHbIz^w7(^jgCN)Toy3!Elilp>9QEFWE9Q%;{AF>1lDa* zHYUZ*L)XxxPSFUN5bukRypR!GtS@~Lz4S@8$W$%eu5$<5>84`>L6F=n!8{d8#=U(i z=UJydHKC^B7i7WWprJ2P4K?pwG<#LUtavt6^z+cdAw)2tK-YNc1@XOAXe?KBCL%O& z(BlhUQud3nrU*Z|f=9%E0P681H-;bQ!db%;k-0z@8GjV9E7Urr6vu=^y2NUIU@1Tf z!~KA5Fw3>PX>y)GPbK@?&%CngYRk*$DX0E)>+OGmmmII)YNsj!A`jlFM{xU zQB2Iy4FKc*FR;~1lnSLRjc?F`8{$+fAwE5OfyIe7G{!oFJo)$EP|#L36e+~hqt5zO zB6A1lKMj#C>sL26H+%eyfTt6g@qMUNF!tmTE)ts#t+k`7vc*{|_V}DPbsD!o`_kPu z&{>j@)RQL<_KW)6c<&Ly>4C`(YGkxQw&2D-hrcrLQ@n1h3UE%R6of|lCMi z@!nb(EXmg%`pN}188}=HJ4ZZldJvDYKHmCEwDMu$#*T2>tCMGqrx`p{{^$I#S6+&v zqfhJbIY=Vb)&o&0ebCsNpq*<;cmeTg$tW-UtUi5iVQ)Q-a_;)bC(ntYj>mn2?7Z4P zW9+uKgMuwJ-g#2IYfcdqkEZcdhdCiB3Vm0@yQ}hTYj}5`!*op(2l3k<53T73O%1-r z=srbjG`(0$NccM>45fqIMqQE?Q#_#q^KZC6N%bWn=--OiFH>eoVy;XGEsABWEDUh_ z3GZH^%EwHp|Ms@GdOw!)RI@{tF(3{3{4#;RJz#;P$g6>AK#lS$g`A30Rz^P~yfkL1 zB#r+8@-;{EOd*}6imO!!*3Z@yT`tm=LTMu6raaO*<*+%t0XwdP&Mv($^faUw%NxVlgYZ|bH(i2cW#sRf#9v3SmDSq~8 z4|Uj{Y@XK1X#J>Y+41T9GByBho!`&B13k9LS|4mhO9Ln<+SuaS$DK4hpwOtaOP4c9 zcs)6+w4a`z7u#Tk3J@UA1*636LeOErnu(VgL;+Nu*sLyR+FgEHB2E6ymz=WZGFJo4 z-rD=M`5S1m;=<(kNI1Dl2@{7}!`D|aVBHb_sHo1o&)>heND@Px|VF9Bvt|94cO%ig4%PeOuK8<+;8H?RR|n3 zl5)Py$(G+vo14cZv-#U`*fKcxc-l65ghU>3*_VFrhCMot%7Vj(uG_R|p5QGzKRK>q zWG(Jn8dcxQ`C#+p9p#!Z>wrOo9uD(!yEq)nCnnZLIjJF%JD_h%!(2!{XEd8W} zca8>RK2OJ4DLpvG!tFH2wI`lXsJPnK8?T8k(pk6pF%Hi%OVViKx~af62M^?Q(R;-B z_=8P;x_f-_`KNjd4xiVovN08T|~?G)MW{y6UuGF^Y&+UK?K zJbZPIo&AdlUq+W{N^{AmN+fc_fvaZGv8(xb(M@&`xm7zQEk9i>A~b8riUE|2s`1?M zt3Ly~^{`=3$(btw3#zn^#cajXENMe{m1W9z!g{%Z(MnhZ|yISZv%I3%Z79Lrk^OohlHNzuj zKMrh8SS{BlpQU3zh<0soRpnCix8J#>BL*NM9sv33m*%~tw1#Qfk|9hXes#KyYjZ8} z1|QQriM*cj5KO2R(OHf2ETBET9y_n{#2}w}gR5tqKP`$m1p^==a&L@*WweIU8f{JQ zdYAC!d3~E|ZyGbpVM59Xc&wP7Uc)U+gVll}141coOA%%s5Wx%E#z=Q>Nr_HA%^we*!q@ZqJSNvTlQbv{YSBO$8tl!t*atBxI&asgO7>jQK zuAQSfHNLfdD`KACur+5P(D8G0EsG0+pVn0!C%5cGhmW4C$^uL?2Up1F2ZUFxBnkXw*1N>0jKHpmBlft;?fno z)LVtZ_<@`PT5+1U2sRqNBAzK%4P(5U1--I}IPEbQlip_anMC_SY6{^Sb5yrdhKaz6YACfix0rzN6+nwbWWIX-%WyA?HE^pxJyOfKFp5ATwy zb;ENZ0?`c~>_|RpNCurf&>{Y)h%~qoqR@-N#PN=N4HBW<{K=NC7wX1OMkw?N=30P0 z!OzH53J=d}&V5xE{M6nl1o~bNIze?cKVTCv5)0A$b72a3 ze{lgA+{a?)1!M+4)#t|#^F<4q_x|8PQ956j2{*9uCxNmIy8W3XotdT^ldvzGEc5t9 zxsseB=XC%@E8L$vE^yX&P)se0GZrWI{50E%!fXin;X#ZAuvj{20pSV&q72Q+4(fQb z5)4A5CtgVl;4RkI#w!OjRF5t_eV~#p-E1x?QXAWwMsE%3z-;{r?S}fzH>?+_sSeDy zmzSr7N*1n{N{Nb`%0XwgpBe6GU~nd$072L zEo;EUb7A5aenz%sJ8uk=_ZP(;Sc=t2^pN%0xe7)k>{r9tAKz9@OVOeQ#8A}{mipH} zXvL8V-gMmVOZi{)2wm1RRwz*@8ZQzZA>aR9p8EYt(7qujV)MDvQmFywM&e)e{tz^X zb;CZrbv`Sfgno0fLyV~Zusne5}C5`8gO;uenXUamD(ybkBcDF<7 zv11GlX8OeAZ|w$t>RNy+5soMg&=^$opo*_qqfs6cejabvJ(Vr7#q<>vVhm$&#=N&%FQDFKmAikq|0Cw_lm_+CR*{q;(1& z%38!Lie~)6e)~>v)Xa%uU$XEmd{?gYI`qGn9?Y%@X4K^FYFYrRSv%_WvoAYt&$VPu z3!+{hT=+m+trj{cX4?LQDN5$^w^u5jaRYsD=jfMj9j|A#ts^>Y6zAz?L#`BPe$HLh zegJ0lJ)~@Nuv^-vbJp_*i+Y>E@>xS;RqNyS>313;K8ICGLj*!&3=OA#;d>+f=UI3D ze$q}&;o$FG8%J~x@##H0v&-;tn!#RQH2Y>F|0Pa#l|jObf6ygmx*@WB92`l-PajjR z1a*0@b_d%2%`&h-C+SylC-WhWpd^M$x?dd`I<804*y25|b`l#32i?}9$JMs}W_k&6 zjd1}O_mfKTPIetdsI{;QhBGQDTdv3Vso730j4R_rQOn99KyU(2#*o~92b5%GzZ6uq zND=XOa}ynv6gM$R>+l*&Hzvq6Y4c09zVd{Fa+O=6#)OIlQYMtfv>hf11hE5aw& zZ)Vv}tB0(zwIH(=mG3JX8CgbS+$j;IaZ`hJkwrqWQl^9m{N|zG(q9f?nCNwTG|KY9 zyiWfB_4|C2B8tWKdDtrdyRr1k)o1;Rm}-Z8r1!YXG7Vlmn2$bwVqUC6-IO2I<_%d# zrn9G4DbE6Ge#yh~Vx$J%bbbJ>VJ$fw6Yxm2yQ@eImc}QHYKXwNs07;eoMpAogPl_B z-Kv^-il4rm4VDn^lczCZ%7`kpYThP0Or;f@lia6QfaLd5yfkB|PEQ&lo^V>`6nZ|8 z4DL@ZWZ8oD@j$hz-JWIaft~CkNV{Ojm`@`sj+{PDFEg@3*R`F5=4)o3{ArMZCvXi2 zb?j*+LZxM!lhdemfv=jb!j4o%5O8Ql)0uu-iCf+RK%Txj_ zzIE(B>$Xb2U<~m>PXpmJUmz8qW8N|?Seh@%%t3&@4u~;*Rjuv#FHnzC#agCh^Pc`^ zIZ)Qne~B4h;fb?~5x#qc zay>yeH5B=o5d5PKR=($UDWrBO=>jn?Yu|QUN{Qy_>@z?KgYN4gTeakXt^yG1xtI-O z^J%#F6hPaTaede|FgrO8bQbA-bUwj@pH)J-+|#U<;M0|`mH#IwJF>mdJHuV0ungUI z_vd?wu!>nXU}kO;o|R7Y!v!c|s1K5St+39aJMxAANv**XUSs&RPkn*Y;#KO;Ux#bP zIF$7YK!U~=ezr$)GPOyTlk4}DHS{P9^`y-~Fj%!9XFd6oruetKxu|v~CXT8Bv#uOX z8LsE$Ln;OK4I01Zf+dT;uaK@jONk9i68AiLCbh=gF#*IwZY_Y}mpoxV$%5CCeCx&g z4`P-W38MNVYY)!8Y|J2u@I5m%Fz0W(%Sqyc?S7IeRaCIeNJ}TocinNFdLCfaw7F)d z#7(b)PhvC0MhcKG@273e$<*rFv91drSw)k@hy_XutM6g4j9_!~Khe)Z0a?CwlF`ok0{zse&s$bq* zXuB0&h+V`YEIS=;Tv3uqmTS5k%gh<_u|%#%k^D0RTAQ8EgT2qYbZmuh2gb(FoOV=} z)bn$PME6f7+yVJ18&eXsH1gTtW#)rLkmeg^WXeOiMbd4Kuij2gj2V^BoW)pvyB|~M zUo+R95eC(vuDv2t#u>XgJ7&$WQB8~3PW+3J;a@Ai-LJH4dGwq@1oUk)b9>pvSa60? z+;%H6*DRN4RDLt%-KKQadJQv5Ij?)QttxsX=i0(2(7U^W#pS{I5p{47F<9v6tZC@q zK}U3o>sJ}K(~dX%^crgk0BlRE^=VDtP}NU50k%J8!3Vw#KycLm+BPc@*3@nfYfZA9b5hPf*@uWb>XTrvnYDZvh9$I4&d2_<qh--; z=Tkfo*>m)!KpkKzP0K?wV4-A5pg|>vf=oCgChyPX0}upptr12|yX5o{lGD%6F|Tco z$StlZ?XOMP0zbH5m~Q;?DH#_0jZ*)+IXp{JoZa7NEv(NOKy@dFWwkdpD+ih`$kz+TutM02m6ZPaFy~y*oY7Vya^}nB*<^R(ae*p?YAxV z%DkbPgWSKN!D$2AD1N$RGLlLPbc?Cnt+kyYOzo}Vq};{|8~@c!opU0{`9V9r)z`!z zp`*>ofmXIOzsiC$^zmf(>8{YBd10~-2oY@oPiSK>4{5~qGmp%gE5DnOKW8+dPx9Fj z;cWbV!d(l|H+#O1bF(sq3v#YsNK*JEOrz{Nr3D{PN$7Iby*VA3VLJtIz_ox!DfZ!T zxx12F3nBHsCrp3YxMVnt1ApX{9Ns5 zjt(cp6fH(^0JJ}th>;W{ay|P%2ArFXe{asgYYij(`kfLxnBxmLm*d>8RI%7N_7o`e zpWSR%DNnBF`JIFU(D(_lI^?BO@Le4*9FXIT{8z1aaj2;Gl4jG2#&@=2sF@_8Ix?jT zeE|#D5@>IN-ynEt>wk;S$y=UK1BX;RkV#}~d4;!Kt&V>kBV3+xUib?2Bf~jy&|Sw1 ze2F&p``d^WyR}@FoiBHbzI~9VD+OU0L4{4)9{47OFkLh^wTc)^sS$9LZ{DcBOc_z! zOiw>>X$a`X;@wxCF7iH~H=H^C@I7~Egg@CznMJs&L?8~>pI<4;w@8(^=K?DtC=CT@ zxP(cT9bdCna|qvbbNx5=KUM>j1#e(C17`C<3%y2>PQ1yU@99C68>jV8H;qX~U({b@ zPl~;byB+IF4x>1|@`Azr)kx7ppbCb)S;YybW;y4^^SDQDuyy1r|9iadTplqGK(m3r zzg{pX%1Q238maQUk*)VOKLUqW%Yica7%ztHj-$RXp_U=r(^cGQkQ#KCA9Ep`rp`j} z&v1XXEY#hq%HL%FGOii+QMPC`IoDw@9AGb?8Ue?2SRpnycSz-T;H`qRxY4(+IAf>H zi(bdFZ%$;If*%?x<-?7m7l=OJUao=xECbyA#KWq8lGTFUHc-{aE_)r99rm^WlBMnW zF#a>qe{y*YmKdb_Bhoiz%p`7wg@{wFccFOVNB1YAn`-( z9Z@7Ze?}9XnXWXuDZ@VpmjJlMXL$jKF?i+9aC5tE3&pqeBHt;u`R}5TmMF5xnCR4`>BZV zsrT#-$6)UQdDee{S{aqxDZrc#;u*bH|p> zyLG6&p2y^SPT4iprIqPDd#9R?f)ocSQq|DVrO-rJ-C0MxSm3EDH<07=U-9CUrw!3Z z$AFUB5P0Gn6`KfJ6&xH^i`l;l-_6?N9-!Txh=% z5gPJ)G!TN=K?RgNbHckY?av@F(zw;w0>-Q)5Ep=87E>I%d@Oz|$wHF!G3MRa#)EK* zrgqwx40qx3dXu}(%eF>eHlV)XG<$sZ?b}R>E6>dCoGE{efJSsG5Q$35FQOUkHa<4S zmad}n5gV9OOItCwWRQQ#igsGIYR_v7Fm|i!eq|Yz25ee)n?sv{{^YUH(r+*0MbTQRwAcC=U%N0u zWJT{Xz=Qfw$(EVa4TOAzlW4EBAKIMk&FSOy; zjZOwMKoOxSe4Y1A7fB#`1Z;6gQZ-}sEK~JtgSj64yHOP@zkg|fXy#(1=#ftj-R<5k z*`eO0Q8@Z{-agr(llPbut+q$0VJTeEF+go90FWnCH3ozmPDTlV8ywUk=G0lzDW(>@ zI9*v()1@L4D{6SIS`CeO{PV`Ijp);x4repl7W3fr?Bb0p*l^#gLfLZdn1$lw7^x*N zwL#BVe27Ce{zi@TB9_8EK?GRCsDKT9kzeZaSinvoE|1iD8Rbb$AfRYJZ@E#6v~(Ss z+pn>*MK22EuG9$BD-c++clb-sp~boL1Epx=5&ux}*{Bdbm7~qXpn^wnbaVzU zji!#nB0>+rU6%Na%fT*)+M*NF!xmoza|M`NpN_qFhjij!{^sL--=!=V3pLDi%MxE# zOt^!zLMDMx7x>iig7C*dBQ*o(B>nwAG0t=_i;qYRRs(%eE>o@zmn@c6@e|jRLijt= zV-ru$K)_3GUp33v=96oW9{L%AYZ+L5hIU8x0Bmrz)D1BsP@KJ2opRPN{M1S%iWwcO zKXchR?>egeguORgXiAuP%nwK{+yaR9bBo-yZ5n2lH<}Lr+VAD%ttbKAV+X+7#o{I- zI0!3Xe|=fFCXtdJXz~?UZi)yYFWPEhqe^SmDPupDIopTsgne?$pd#k1Kqxcfi%itz zT|!!00AH~H-F!7Q_p@rbBb3A?ZTU*`}?mTiw+H9E7I$ z-XzE;$m0E}Qlo4g`L30uKADCNvVz->CVu$)har3njqG)xt9?CWE24Ct1@ z2<|@v$IqvZ&)=Ae*SO21Y{$>)>z=J@nz*EG z>x#Sq1s?}Fi@R!`puYsmM3^oY&6Uq({%yqK9Q9BK4%aNoSCL1TXj?RfUNh(kiWHCF zGr`3J$E2w#Y!`0Pj)UnJ-w9k~7;KZ9}^aA_}T?f$k+{mrk-qwM1R<^x0urpmMp z$1JnTCLr|Q0R>>d6Fj~ZM3LBj%Rl*7iBaC8_-o@KcF?K5*9h?G{XO?XYWBQK(9rY) zxb0Gb@ZoxZGy){@d>&b%WknzR;`H|@PF(sLHM3F4_(Zl$K-_Jt*sTwlKrr$af{XbH zK+?Z;O04{ui{Dcr^r6Yb&xIU~@LPZ5crme!jIF9s&Qbf^bcF(7O&|o&y;U0m&wN zwq(owJ_j|5Je|o&ubTOauERWFC>s|G9r-`RQ#@1<1UL4PO)M?!fdi~kEQbg{53U0I zMW{F{NNa>URLy#Wpj6`kE|a&0DW7_kK)`Uk`g=1lx`2`uz1}>{Y2wxp;D36YEvuhk zVxkefw3S(<1=A|?xzz+wGrYh6tM9SmK-KBoqz%TPScy?B0K6~Va|KcG^DS|E#Tz$7 zpWcRk)B0JXcrh0+!B{@F^CYpV?o=*0#A8aLQF6IrUpKf&mp%aERHK+B&mlmZ`5?wN zsA`(B)RWQus%(VRlm*Ru0K;=fDzRmT3_9FvqkjL8fBCjg;DNsdg0U z9?whao{BZ!e<)eTse>GDF24-1GcJ|ORj;tQ@CRO0b>7V`x<8Pxg;#`9*zYgQtMJUc zZ?{nx9z@x_{rN+3vyiSbQh1L(u1Gxz4YS;l10VHBOq}JVJ8fKctu|JEkKOet9XF?p zPfXheT{>~QH~9TR_@D%-yRCgd=&YeJtJK5!AS++g*_Xv8YJ(Y;9vb4Bwc_1*MHahX zB)eC)3e!b%-WP`ZWJmq&XIM$|Vg#TY-w^xS&Ku>caRdkX4=Ddr%j6bt;QfBDK}J)T zm*E=-z~Q5#JbB#MpE?O(&y7LoHGz%PS{eh~v>BqUuPk}Kr<(CV)bRBLaGG*OH;uTl z&kO9@-5+25JCVgo*0cPhhX{gXy?&LL4fQc9;kJOI#IZJz3<58Mywcw)1$+HWze$^k z31HANh2ce}%`I(zw{Q^x(Ux^ZE?{wkL9E{#f;+%z%Y_C0s`(nRLu2X$s;z5YHERZNF@(RRMz3^OD!Y zK>qIhm$V7N1aTxli7J89yR>8ZKj|UcdQ(2zS}UOKpF?~9Uq?a+g z9C+%q<$E5zW5f(Fe-%l#fGY*W)e6U+FB*k+%l5ADwqwfodOxxN{H~)w^I}F1e{+8( z!LP)9ac@a-2Pf4TT?d?@=;t1p+n^J5moRPugR_}jLQ+2i)jT6yJYafoqshU7*nQDimARh%o40HZ>{rDsT_uXZb50}y)r3AZ z?UvA_YU%J*dA8&09*O@%R{K~ew=-n_n3zy?_i*FQ8CIp1*0ZnOl(VkiHfw=^=KW)r zPTB1O1D+0!v4QE2?{%6bf0W-K2XAm>=-6`YGLGUE4#-a0X@jJh%H0iEC!lYc0&_F; zG18A1NLU&p%2o_LCmTvu@On}rT(t0Aa?F$Qrq>&-b+qE-AofXK{x|&*hnjnx&@?Ul znRxpTGasV(S7X1UtLD^~fPz~zrHDWw)_7&&#DCUqux1nj(jEW^1L2VnP=#&M4Ycq# z`7u*g&2xfi!JIneH^=X{cn_O>7!4&Ek;C5n$I9oz!a?x@@}tP!i!^~>;${S+dzDfS zgtAB>=|jSY+>o98-WP@1l?(L1$`hRC?gvaE^L5Lb?}JqB&6VJ79}n7+XGMgxk@tU> z(91ydAyx~z-4BNtR}!i5Ing}-WiqNs;v$&p0}!b-T~n>Fy_H9=sWBC6TugFh97G+| z#^nFD0tAi#u9GXz9E+=??4CHLq0SkeX&HhB@IdKyxpe<6Yn2x`0*7F?VVxO+3KL) zRNx3WMon@+E4JqQN>WIiL{w3bo1T66p_3BR<)^iKdAqgk!UQuxx1II}ZADN>+3vTM zn^^Vo?A5aqcG`<|0x@A5KlT0jqK>kU@MkAB@lm9H{EMx6l({T2OF}t&ZK+>3#AUAI zh;NgfpV~Vxm>7_hApk#Gi1oZGRB(L+Sf&!i3P`}lCXdnF2S@t~$}L458T7^sojEP^0-+L0yc zF6BY_WPT?Z=(CmKveLH=f6LLc1C*WJT4s>h1ftt@=maGKxU`@;c+&E;m-V0Mxg!Qh z?^V#!WPxyp3b5#a?(lYMS*=805}>#FTt{gd1qzT4u$@dawfTUmaqKKN`He1)QjiRa z=L6|fh!+W&^5t8fz%dYfs$8-c9arJN|6aY)=T=KDPazJbpAsNPlBOKE-8tlbqAcZy zkXQUpAg`=z0t%LZ_Z;iCsKMv`CZAPTtktHoy3Q~p3xT&J5&W;i)~N zp)!KzjvL`bUOR=|@YTT#PVQ7hD8iBemQr2}8U&ik*rO%zYlX-Z2)cYn_L4>FAmn1T z7#IX{Qhw|iFBBlRdxK=Z()}6%)f}>Bm^#Mz`m%VtY>WP%vs%!gTCfV30*!|>*Z63% zSnHKO5@N259NgZAyjr4Bk>_7#tV`lw_kxE4`gc(ma4u(C&=1VnCk~-I>dI` zUnNUxEe@3r{Qt$g9Z2}%T{fh&HRVYJ#7SqLzU}2>n=?4bS27nMw#dqS#ch>9Q={rv zx)Xl>NupHi{jbKMUWI0!SUDg^e1 zVKhK9jlPNmdh!U~#3}tS3E8#(-vgv)d=DMQKN1v=?qlT}H7d$>l?ehp2~5?vzalSv zSV5L@g_O#;*i80gERqot*sxTmFI(?Ggp&K3fs0GKsfs5^Uzi_n`HyD@diBKM^6#&%rF0M!>*K4Pk@wwn0eSWIu zASvttbsKJJGlI)jiERPve(^aNg7Oq?j3{DQC|06aMo60CE@4|6i#o*awvIx5{UJvP zNB*@G5q|q0|AUZ5SmF1%$rq28^ofmfuC1A|yEY!;A()bZxPAb*T2Uonr1kJE9PsX2 zHh#jUgZ!0)2%@pgw(<-qAd{~6TRt_6-SiHvZM1ZeM--=L0QHyrU8jzR=5a$KhAYb@ zHDbE}aEyTJT|z1pL$6%cZf^>nd5&#?$*1j~%mT#zil%1!GOsVUX+1|~PS)2yPx_I> zXV|W4R@#0KMAi<89#NZmXvUR9wE*J)6QrGU?Mx?Ct2=c;+*0@N%cMTcS@R|Fk*M~R zQN>Om0)a?c?n#|3$68r}v z_~5VEXf#M42nTl1`{)^%rri#_kq((_2WP>4c0%N+<)WhW*>Au|ln*wSp|G7?ZDurN zsr%x&0a1ezGH~4{Tx8>C8d5>@l#372l;aGL#2Jma>N<8$a_I##AHH6&1%tG8|6S={ z+rzFSpsW1Y4dQr3{G)N0-z?XydsuF)|*MK05E)mG!>s9EGc%F$g&o^O1x}{C> zHIHIY5Za6j93O0?M`~-aT23uD5o3r1;U1y&8{=Q$zn_%7mU@B7RvCj$4Z>S`4o_H6 zZAioMMd-BfqUMiCbOtuqEB>Q%-+ZJcIX6@=wt$nSgJWqJ_^|cxK`Tn$_xRO+XrDSe zn(gZ|L1YUU5PcpC$#!4z0L1`ZMQ4Y^r>Q6f&~iP(fOr+RagYEa^`gkV-~MD46+}{6 z?$~(*S4~xTr)wpdr&Vz_x@9jsKB5-xiL%baOcl03vMv=pAC)@3{s{|uqZKJQj-MKB~-&63lX427+wt-c&gIe-FfxxV|UYApuF