(/Xclosest_to cacheconstant MAX_CACHE_SIZE => 1000:: require => 0, search_path => [ '' ]; my @plugins =->; =head1 NAME C<> - SYNOPSIS ;my $new( 'hsv:76,0.43,0.89'( $red, $green, $blue ) =->rgb# GTK uses 16-bit valuesgtk_col = Gtk2::Gdkas_rgb1616# HTML#rrggbb in hexhtml = ''DESCRIPTION This m providesbetween commonly used ways to expresss. Its such as RGBHSV,it look up by a.classa base for subes which represent particular in. Themethodthe fewnient forms, thoughmay more specific detailsin question. For, readdocumen on thees;ly: =over 4 =item * L<> - red//as float0188integers16HSV> - hue/satur/LlightnesCMYcygenta/yellowK/key (blackness) =back The following areof one ofabove,a way to acceedefinednamesVGAbasic VGAX11offrom X11's F=cutCONSTRUCTORmy $_2__initialised%; # {$}lass2 # doc'ed laterreadability... sub register_ {= shift;) = @_existsand croak is already ";clared a";no strict 'refs'*{"as_"} = => sub {->t_to }; } unless( )++;# Itoforeach( (file = ".pm" ) =~ s{::}{/}g;or next->can( 'COLOR_SPACE' ) my $this=::warn( deprecated => "Discoveredby"()} turn2 newSTRING ) Ra newed bytring. should be toit applies. For examplegb:RED,GREEN,BLUE8:RRGGBB16:RRRRGGGGBBhsv:HUE,SAT,VALlLUMcmy:CYAN,MAGENTA,YELLOWk,KEYvga:INDEXx11seenstructorsubtr=~ m/^(\w+):(.*)$/ orUnto pars$str,( $1, $2recogn''1 METHODS2 rgbsindividual components, this is done directlyo by firstting them to an usir C rgbselfAbstract - overload".ref( CONVERSIONS Cross-iC<, assisthelperintwoinvolved. WhC<>SRCDEST,opeattemped,is order.and refer tos, e.g. C.1. Ifare equaas it s.2th_DEST>,it3new_from_SRC>, callnd pass4rgb t5nseworked,throw an excepse funcmay beedways:()Dest::C rgb( ) Atinto itsi given. See variouachierelevanthabeen (explicitly, or im by> ors)awill be inst Mimcurrently Ced iy do not yet, but eaturenot bied upon -belowto_o_rom=ref}if(eq{dentityself;de;codself"" )ode->() els,rgb# TODO: check thatrgb ise'' to} # Fallback implecasdon' anything better_;EDC behaviouraically callical:'rgb')gtedstor, sofuwill not havheadisand, delicate nof# Sinceed, we can dynamnewfor # dat runtianas_1undef};SUPER::our $::([^:]+)$/ifeq "DESTROY"_[0][0]t's possihalazyy just creRelynto"&{}*= goto &||qq(locate obje"via"OTHERAs well ait is likelors to obtaUBCLASSisnded tod2 aspalett( %argsset, toup match with setprotro>8enum =>or CODE Ar anonymousenceulis._oncs per C<>andsultdsoalling C<= $pkg( $orig,Thean measu; defaulo. Isa tiersthe target,onehosepkgargs{ =my @;}R'' or${pkg}::||= "rgb"# Prevact-too- bigdelete $ } while keys>orig =$dst = "dst_${}_cheapmy $key = join ",",$key} //={dst( $_ ) }(qw( rgb hsv hsl )gbrgb,rgb@_ ),HOR <>0x55AA; 5724652usqw__PACKAGE__'cmyaed asDred0, 1, 1Can alspink'0,0.3,0.3Via >cyancmy:1,0,0OsaCMY,three ing-pointange 0 to, $, $se be . Voutsidebmp ) Pars>simila -argrmco decimal c, $m, $yif== 1local $_/^(\d+(?:\.\d+)?),, $3pec '$_3usage:SPECC, M, Y )# Clamp_ = 0_ < 0;1> 1b[],cyanm $yAmplyan {[0] }12mymyandmy1 -r, $g, $brgSEE ALSO/keyK77572000KkKK, 0KkKfourK,K,, $k, $4K4K, K $kfoursub key 3An aliaskey* = \&key; #k,andk# Pure(1kkey;w- $k( ( * $w) + $k,my;cmynew_min$k0,1# Rescalearou # white($c) / $w, ($my_cmy( 1---cmm$cmy150231644HSL::hslHSLHSL0.5'0,1,0.8hsl:305HSL. Hugrees, 360 (exclusive). Sonsidecylinder, of heightradius 1 posinglexie sthe. Ishapeentiraxisughentrsof greytop of circumirse midway aloure-. Becaoth surf itcs, a ly-relanby reshapnto a bi-conetopbottombecome (a dift"" thanby CIE)ilisarHue--Lconfitly-umin(HCL)$hu, $ hue sesshue,h, $s, $lH, S, L# Fi[0,360h +=$h$h ->huhs $vhuederived propertymapoinstead tuitivcept of how ful"as useful for calculshsll >upper 2 * $s * -low$lhslslhsl# See http://en.wikipedia.org//HSVmy $q = $l 6map< 1 ? $p + ( ( $q - $p ) * $_ ) :3q4( 4 -$}mix_hue_min_maxlmax + ) / ===? 0$l <= 1/2 ?-(-dst_$(se Euclidean asadjusted sub# ... / sqrt(4)>sit omifinal square-rooscaling e,sa matter,when pick"b" ouas. It fornd 4 corysl-_hue_dst_squ+ $dl*$dlL_and_HSLHSV on WV4156VvVVV1V0.7,1v1V ,a atscact VVvvVvVVvv*hsvvvvvhi = int(f - $hipv-;qft)hi == 0( $v, $t,;1q,2pt3q45qhue,max/ vvvvvvvvvv*$dv02654403# hidCPAN #cingdians # atan2(1,0) == PI/2PIover180 =>/ 90Nwe'rea tax#L,sommon es. ;ininhu{ =r60ggbr + 12brg24U - #wopo1,2r11;22h# Sr1*$rr2*$r*2*cos(*234635RGBrgb1'10.7rgb:RGBF8- or8> and16>red,bR, G, B1]redrgbbbred{}[0..2]@_alpha_blenmix, [ $ ]lcombina.al C<> parametermix , 0.5 ifrlendof ,1 C<>,=1PA, $gA, $bABBBrA *+ $rBggbbunwed . Two 0,and 1alllieinrgb3 sumscparrgbs i It u3rAB;gggbbbB$dr*$drg*$dgb*$dbEXAMPLESGradientsC<>na smooth gur"vga:blue"cyana_/10 )for 0 .. 1045702001616 in 161665535'49152'orffffc000c00016:0,; i.e. bits >. Itbe hex encoded 16_hexrrrrggggbbbb[[:xdigit:]]{4})hex( $1 ),23 )16map int,0xffff $_ /}*1616bex, in aC<>ex :sprintf "%04x"1616Addounding + 0.516Sorksaetic.anx7fffint(),1616*16*(^2)8144661732RGB8rgb88 8825'255,192,19ffc0c8:0,255,2525882588gg28825525525525588888GG,oful, or pl2x888882581272552558888255*2588825844237VGAvgaVGAVGAed'd0of8 ir ue ylookby stmy %vga_= ( ],1111Alsoesqwred}$.a.\d+>=Th[3]namT615575X118x11# D puin We'll trym taking #wd our @RGB_TXT'/etc/X11/',usr/shareX11R6)X11X11x118 file@x11_; # To rves;_load_rgbt(-open(, "<",e$_ - $!\nlasNo was found ( <>s/^\s+//; # trim leWSnext if m/^!, =\s+->=push wereum_Wscantextrcoun or }X111367750 KV 8 KV168.gz03253101ZysIO XPHqK1!h]fJVu,dv{^BV(,zU֨,:7,[BG2"ZȉǹţW#%LV%|,a}jb1VuɚjT)~^7C|{ˑwx#ICte('ZBҏ\ H@\$+[MtbhGuY*l?d$D+lͦsœjd1Z=67lv; ߙvt؝ID[Эu*T T1 ݍw)&xv+B}_`VtZgH~j˶~ Po>5hYiXee44(jvQ*LHF=*6!jJ&P1#[uW󣃸k mŕs@4KOς9C-*1Ik#8Ш2GS)?GU, 4,~-"T XRIDEP"^ScH_"7#ai;eOeW xD7ciu:'dSLq*BD}WG$P>eldzƼbjݞb$Vi8a#51SCL/E'#`P)O,6Ͽ8nO 멘qWALd%"bA^Ěva;%<%}sb 7aV&2pU p!OX&ińg~(Sq8Q04yL<f1ӡDD֦=ңH1ht@`ܘ;|4K! k2XU$Z{U͋,9VvU3ITxTi_~^2Q'Oc{̉`w}4 dŢC:OGaz/ !Ff>'7F z7V͸QʝƿZjkޭ[_ %Wa~-UԋG ;zhS2^yy2BN)v\.陯X2g*E*74vпoSԷld*?}U#xC)jK'Z5P)*ҨwgXv@=R<=~f VTr"a؇+ r阐O0VD6lX>1m+*'h&G2PQĹcG%zUF֨:_ϬSv')m8|n6=;RA*E۔!jj * +~ f@rnSN*J +Hd'%6 QZGNzL0L(y2%淢1MTx%FaHQD+ldIEXRqk_ĨT .mCE 2{E5aO|m$i2^n|37 )GL%ϣ 7~X-S |t_.ds9+ʭAchEmP+owVûzqL C$4ԅC_P 8-(m@:\E|@KʫQԡxPC>dfP) 7-j2(U>P@rUW.m,F 81n /GYKLA/"hfٞsu6Y }S=̚ 棍=Ʊ:Ѳw=`Ɠ*^׳P)nD  g+qvQc Q/%D9e3pqZA]ZFNoW zxLZ:P͵Gxߵ-3|T~ex6Q =NzsۿZW݉1atlYXGs4djCj6]_%Md.d$(! >g6:ÏtR3KHW$/]5IR͍ajJb,aO<";!TT;ؕ]2&A*,-9en6ʰ`RLգ*5 =hjBd+-פ.87PMaP f$!&dʌ޳@Us#ʣ8.ҺP.;.:us]6_vڡPjz LSiƖ Bдjz4ٽ׃02R2̮e< u&j&C;%"ܓxSʝ#mQ|B4RtI S{X3E.C!ѤKꖙJboA=U]/?lgg>dw9M)˟mc"tɋK39VUsֻԿ..?eVd9y9m*Q9[lTOhT"2"dSWda듍*$˂Z-U>WztGc !pfb]4MMƤT?‡P<tSsuN0I)FaGv)'Q$;3v? PT;m/bxco0DU4g6u yq 󸜼{5b\N,r?YO2bpjmc ?ILeiK)^>Bqm-§%cmP 2 O:ڄUQ^U+HJ/}cI*U22t8C5jg\T;J:LhE(V,ku|TGX*ݿRMi; .˓yVHfy{><@S49f,Yh&e"%n=v8 p߹Ev뜤,|-VJC^Cu1uɀTӠ15%mTtS}4V$צz',*@/l?ϒ¤\.aiaR,,j2R? >IgHyhu2;j̅O`BeaHblnE0(V)J@NJ3d7<7!y.\2|{TM—3H fӹ= R\]hWߏ<(7iHbXn_3A)XE0F8Z!|xK>p70ENzax{A*]Vmz~;y_9/+iLWvk[:Mqжܖtr$UH&' *䴟pɮEh;쌅4bmz=6IϰY)2߉eakʕQ=ijW7@s@o4}b8eA!Х_~Y /Mnu[O[MuWGLؽ>aX,> c-^sUsI"ʣtʇ@FCօ6lmp' _bI،[w#p.%C,G]ݑd)H"@S.dJc.&|aKmY\rz0ԗm3?=Evq_t֜SR&W"mzAFRs"t2 y󞾲'JS oiCԡL#NgRhHaܡ?v̲mD6m8٧[)]7߀PlyMuy=݀)Ca]3+~8./`P+4713646XksHίKĮq6)8Tv{nvQνGw˴tgQ 2 e"2dE߉Mk9ؗg5k]/3"q)N&S3]Iy#*p$5sR#B# 2RDQQRGĒR Ɣ{%N14Mfu#R 1oLLuډ/lOktN Cʉ>Pd N>BW~%BhȕI¡| 4fR`cn$. vMJ*"Ef])9QUs4EI4eTgq, T E>OS)3׌,"RE3*)^V5cƹK𓪉aB9uU.'t#O*gGGfsojF,!Smg:R訷 wNMi߄Mؐ8pr)^˿45Cy@n=+MlDΥH *,[wJk,,-i$d bE].JqCai[{odOMw4Gރm4ݰs^l^ܒӖ[^jY>E_֨b~66Zݭ;1mpCw;V}EӰԿa׫\CzQ۱ri=.i|`ƶ4GVt~`ƿFWU|p8IY:RVB]~:(YOXp]b=^+5{ĊJ!I[JQI'zl0N$&XBmwj0UR?J0e~DY̖Uz[c9]K6v'Tq\oǽ=*7dתťOr|HinD$ψ(EiV1RtWnȘě4V=oGF0{.Ψ(ڃ]y(+%y+a=:D^ڽrc80~2-4?||5;TuWy(˓$7e)Vf|q9UpÙV p8(GE:P]oBU Rp~|A'訓 Z?>5SBa'36>T}9ǚ ufzp 6{ܢ1wGTyQ=!Xs\wiv8mᏚup IiH) oE|鶺UE7Rql޶eL;oĶx&l<y uq#q|cڱkc 4vK\P*3%V'R֦~ g8ZIp!]?XVrp~|}ap}yxLuחss~SyxұJ͵$g[)X /lOaya$@^1KQ Ąy0{DfK)C2F/(pQ-:`pRK׼OzcG)ٍbԞ^Oi,ɝl=_$sBT0E2Sԕ)Ҭ_3[T:,'P&8r%|t/t-齪cF][%k3y‚( PP*fl4 U}|LaЉ8 ]'+YBun>_[$]Q1X053:y;TzGTNN ү5e?pĞՙ3xH?{oV4 ' l7Og _|&/ů%33=N676s\ ;S{b{48TdPWpo] I:wJў=]vN, D94LD&]iGGoDHO-5xAK3 n&]'RS_)?iILRX8Z i%QJ2c((#3fJU :A\.BBqKkZK^]+6;-w,RH" F ,Ge-x?olYdV 7]#ʜW߆;hAː&ft5#G40_ /u'@.Ǻ è I)El`=.hP8I_&lB,ATH+sY;HM8dtxzCN}77 )ȹCp8ˠa6t]$K ;~s`:YqbWxܒyTCDk6U pw[6>,1 [~ؒߒrKK-06Շw5?N}pOW}w]];=>mS_0s7⿹#5VgY?XyZN<|YCc +z1v+j16kK].CvoIمrtyMb0+%y!aF^:e!zfGw]ii k w6ڕ|`J%s(P[Jʸ7 A`سZQc (ۚu Ŗ(c-h坁 f]kmrZ@Π惒1[eMxЂ+*lV m)A{_%TsN˹&a(IM+~Ώdd={eN|Y fo{ˏVYW ܲ#8Iݏfk<Q9=~$Qo.G$7χADbRYd!YHA^7d΀ȘU(qE8U92psFGFGGW?XGSF!n_0?o~rsIOQswX&>-̽L w)c">aMsy,rF~Q)$$nJipe68_uZ/1jx8TdzpMNM<.0Y:NKj=}sl<&]\RD⺙&{;ȓ^'v:֩gם%=iaDj)}^aZskzk/?gwOBjNۖߧvn! ?QB;(ON_5f)Tz!6H-`}wduo[dx=ߌn`kjf; 7qܲҾ~o y&'!Qy7~;zʵz^d.tKM%!ۈu)W{جV~*Y('my0 Tf+)C[eҭ^Qttk!VA,]af='輯Y;rHqo ZoJ}tSfIdnEaVlH\ RivMQtcM"2VET)BԵ!Lj"40}H77WgUEd=g`A{!yI@V!T֪}MCqC|"nZI~_؊+?lss۠i0UC 5TY99?ד{h:ݚMolW;o޺w܎MeI?V*A+/ictpOskFN9K63643Y[SG~ׯK2NPlC!ILK07Ok7߾9=7 C2X}ܯ-n,zXP%2Uuod(hrľuiXv~4+WĉWc>~4@yfUX:J*J82l"JX`̛TX:֋BZ5,q+BR "U҆5O} U¶K.+71 iCX(_KH'UHjעP t媹B:Mp-!^OXl7R݂uɏ$0?n$|9'"AvAIEGOBE!8rURmK%qJ)-u61[SlAq'`T@&,v_:N«p,шuK0EI(I$FeihN(8MJ<a ƬR#'UDMB΀!^dRcI?sN d'=}qt4tx՚/i .Iecvjwvbd& 8p6;j~R\l*zr+~ %G ?bGwW()"J&s;%sFmD-wL5Is9q c:iQOyUBxZ 0~mj+F!\zжì׶γFY zolP{A왡 MS"YUV[_|/ p}ȞؓNFMiq֬82wZu. ᰸ێ;t:Ϗ j͠Fbnk~fô4Xە^)SҘkT}:=xxQ~Բ*&d` #Z:#"fŧ#{]ue/$,~enN3vCs+G4zn/׈1B;i.ÀՎ V].Ua$q腆FC ߡFiX%mC(_ \QA) vFg'Jg'Y0N$E_q}PwF3lu])%ou f, QG~F*PFEpݏNY/GXv\B" b/Ÿ6H\QkWa|;SE,sW322<28o^,nIbJIGx|1}-q{!vh0: F tJ|zao |ie4^id j+, ?2zs ՜r:pʧ?COp4c;Z,CoݜfzRYKMa09!V6H(Xf%d>}"_"^N/qzu#5*>Fa~Ǡk??k38fC贇]1@ԩn>  o_G=8?Nwܾm6%s`q K,OϦ˫8oYb4q|piyS&y-*vTcGpы#_%.5@<+yx 1qchOio:L+\MDm|hoY0<V=`Y4%%]g$2 l$G A"4F*#͡qS&QF#m| )O&v)rC{-󻕴*E+ՠb쨗w{1>/%%ҹ7Qf-Z뚚[׸̩QNbKނnK ^pGLDZѶx.e:G S酹1kV5x+H Y* M Fs5JpӺ(F8%KT "^y0J;z<9s2 nSxĶfʡY;ӬF~TJɞAZe܁t['7g㤵0Ӡeth8:HLbryt1 J%W7 -Zoz ǧg e49Sg B̓2 er9M(u mdͻf7=(3iOQ3@^ ]\VŘ8 Auܠ?V$ݴ+L^mkѴ۳)6e>Ք5vmF`<g>:4>CI+J}Z]~1;&2q6-\F'PjbZ"O$lS?ŭ9!405kWF_1뤑lRpJ ,&{n2ǖQ4vygt38I?t9hfyWq[$dijaaKgbfv-kgxz9 $l9Xۢ_6x<%,c}X\i€NU ^"fk<˕`5 ,cJbW1,ѸfX1[t#O,26yg9auIХx !I”Se"eYc⚌HWsbZei/Øu2X n[DM%IÇ&!njP)ILy<L3*2p (MİE*#$ۊ[JD5@hZ['H0Sy&;g)GH26J\|b"Lh.Ҕ\ϸw8h;.)-TL ϤlM"Z\&FUxzNOǤSj< 9s)b%I'"4*gIi*<>yS0T9YTyJ 3>:x*I,=g c [PcˣASǛx^2%lL9\7ZXZ\GGmtv#>읳QGNZO)P+`.m*V){:/a0Fo'/QhGSDOA&wJ,I-kLr"/e~G 16F$JOEUlRxZ10~c+sz>@n^ȿsgu}EoEgV!2M M53\= .cm-:~zcO.:'$;pdM.ay_;tw(Qmyaì2X{页a41Qs{tz(xQqd;520!ÉFDtFDJG5.t4ʞkd~z6\^^^wx 9ʲqNWKFL ~۩"~%2ma Wh…J\KT]Ka h~*Xt/ L:Z߷Z(-y!Hf[ odvI_WD" WF2X^tnn1y*sjiS)idD)TcT26+a͸c(samS25k*e #s{8u7Y(eieĴ<%@Iiӥn~XUP( JC6mX X,Dd;눩^ W}}v{qu7Ec5 йQ>lZhT[ T#Ղ=Wn7P5H/*Jd Qn(ǐ61jMQ4J&R }hͮԃBF4V62(sK>!E^lpioK'̢YAyhR̍7Bh0赩_dԪ*6r__ )gzWݖ NMC*hg~X`w;YPa$}{ٙki|v- {q`/^ |5^:]29TbnJ;ڶ=_*" ET٬(?nl[1ǰ(h9^*iw"Z$"D x͚>!tR Eh,Zzc}ud΄Y6| @G~QK]\fVQCKm 4Gp|-T-PyM2G"]٥( %ػ;ݖK\ľ|J3)I(Gzzol_8%fT*x6׳A>`<#>L8 o; ˝[}'\n[` p!?n T",'`40#[Ǎ;n}q!^mx|ȟ3ܛ?nyt{[nDmpv]5lnGFM%I&!jjPHDy"`8 K&bh%ꖢpC >np'> d>U>g)e}0!X*e~/H2,/]ϸwXgͥ* db^S媔?0';N1'Q~*b3Uh5v_ȝ:^{m;-sىk^Q{F왡U ̡DhV|O#{;,.{Π:k)?2*MKfg8զ6mӵz?=6Q6iÎ/o澆 `_ꮏ !iu}SCPo%^1 qV4"&bFz5y@y]ЗVP; K>N̊,~H~fkKU",w:t;;#3 ͎ic/hj@Mfj9Y12:`<.V\W8֐7K.x •TDA[Q(ڡj^;K*:?t6,>>sTJKڍhkw]U_aDiTIX0 Q,Y.g7η䶚eD~#AB~Gi/rOմrz~WO$$]yua;eNqrFFFGG>[?.S>Jbt_htI6]#6.Q{8NBZw^ow1 &7~xEl{5SOңbG`fp)j}~9իx3Tp8K0Q3EzX~Wtӽ x R8ÏϨIImr< C  =ˤ'X5zsq9>ejs8X _ΣvZ3Y HA,rz#}OX$BT# kķG@=?GL¾Z@e%}ghsz:yVͺ.&@?hFP(imksnf܏܂ ag4 [{H"b:8{~M(-=n29CFntg Kպ>cjCd\RxOb>"=zԭ=Jr8L+g}ZR|E|p=@5I NꏋhDKpճnFtX*@ +D^Uxj{ap\+S[571yVxVpBvX'h]/Nf{rL̥^t@/ [䫒]@7SGۗ^!Ɖ^\]K{Iv5jfqֶQ;2ʱ_C51k+,,C$lǤcM_ܚ*Uu+yI&nsۥ#aAT1 E0F1h?8#?bKdT\N8`ņcdJGS=O> e.u ArD*%4w' 59PD$Zܳ13G[z-@"ux$4_D) >1SWz2 Mz Ά %Zw/ZhZE U[2%\eMv`{ qs9VK߰IH5te$)vDˠ7pkᘓ$ޭyCN.+ݖc2-x8 [-:q]ۿ{s)Gu^/ IՏ IB3B3SR ƚI`%J kP \"\5C)~Ѡ=_=w}Y$䭕%#,

dkTꡛl _<ѿ.κfA`vR41$&^U8Gm69U1>9W{-^cngRi#&kWO*n>m4:|r[ ]&5̗XCN(-NxjeNC̒?v?,92567SGOv!, P albvG҆}yo_S񇻭{gMKGy"we!.p/iwL?f"tERH|yGOt%Mc(V)#^ʐ֒$ysLc2Vjc ͌q /Lf?L~:<ɯ3'ɶ[&ɛNB-W)@ֆ'1Q"N&>EaJPʕs/,Ej/{!=WJp \. xy5P쩹_9Ag Ser xeւ M6s dk {,qR=]aʖ2(v3] g؂ǒщAsh&|>P([B}nut[nn]FP{sdȘ%:75ݓwS !nI0TJEF9IKJaS6!8u<ZՍ-#D 5@`*J[GĂ~Y"|>gϤSJR\xIP)#xqg!gQ\$zڽBϼ>h)Vy8aRT) WSPJ"HnYʩ5*IȾrfs)8,B h(T ya J#GU0DC$f@/X1)7ÄS<\o*V,.(O_:zF/Y@笲vfwv`ULp@:<vc>7Ni\ϱR"Og 5eh=ڧRO!r*E:WyS6gi4Eޒ!~+db^cdi!'sw!aL'wCm4NV̀~vV σ2zk4=^jwmgÞƝߍ~iW-z-b/4BT%B)[58?66 }޷x=%:m8Ǟ gJo&%hrm[V 7Q Ɨvl?!ƿ^75lUK(/ MNQs[v z8Mb0k&a}ŠBg錉ZQ޲tQ覿=V(NB b6iƮ6^`[!isv<7l>.7[VԎ\XT'i6A[9j!Kˠ_w\(Y\8ҭ1o\=DA[RU(ڑrZ;ƉXk;Bt_$7+=Hh;=TL|Z;L )w2XK^?<@Q>OSe@Yi<ͼ9RzK]UuL6@0QWT #eZ\Ou x )3;z{<.CiOJL2Cw{Hnx ;+{8@V5?]\Nϧ gm{ZKTh ؃u sAס\ހP_~3$?V45 oB`>)~o_5&^};9g4BhHOlxZm9wbf: |otru~y}~m/Y=4r6m47A N} !.Y)Mގ@or(@GJ%OU{G%@K>W0Q⪭tJ]GL>\ ?sB_ؕLĺ0Eʂj.%z r.]FvfRdM؊0e,n48C{ WVUWM@ b際 oyɱM~-V. 3L%EZa]]ɎrѡH*J`)}m )[FۅR >2^w*Rt?\x0ʊ<[N@Y٩ӠT| R^+uZ\'/%/_ /ԝJFݻ&-#^vJ,iQOC1_O6=ALՂ+PN7p,8zrI11khY{4-ژNQ:H&f!=#R oL ]o9jojr&tȮmogt.{17R%#UP7><=KMѥHs(!~YK s= 5s%H{䎏:VJ.e;H#T:vu @̯3_8D,t;) ľ'G:, OV@G~E"|ICGOIHQrҧCvrrRX@jpjU@? :IĂHdQQ!NE6Zw:p$`EWQ2űܖ՗b:)w晳D¸ofU DyS_&N5V,|n*a&v5^A͑#cmvGM%@Ç&#h0jp)Y4uD,)]KgLXV7Rz*ƪ+mt#_1kT/ftF Cʁ ~9!*E~,D2, !+]OX7-*'̬4rr\w;긫hq=96X9M_Kzєrs5صr[-ğkh\AeWI澆 `Wx}!i}%.;nW 0,c f%;I)6-+Pj^.hh囁, VϠtxaχ{].ܔΐ7 )xQbE%j@Ж3Jv,\;N+q$)/QeKu?t7?.KTJSh8f, h1eŭ)7d8VWۗdd<i\y}Uϰjl 89#####k֏/֋_)jWvx8(9<Ո@rsNר= ax:7Osia.>& ks{'7[Yy(˓8)C;dPαiўP*Bʳ3=xE50Yu NB?97VIsx%f 8QDpwʫ`/Ҵvʩ4VY_ JenxWM TQ?  |dwn8*KY;ٺ*xHX%KR\eXR XE&)AJjSl͢&ąT;+zti>-kଌjgm Z|mȯЪ:QN_ro?SS8QzƊ d))IN oNo/O6z}yz`s,_i!B971zxR60M5re\[щ8 UDjYr|=[}$ה=y-=7( _zDʖ.=Rwq8CdCmp ~I qwiY8zXitz__WsX{wC7+b7{ ~.C+-- x!O}nņZSS- :\qoTxjV "LpMي럔_#D(0(f*Θ#@v);a*ݗJ}uo2ФAjkطA4H]_і9_$AcntKURqz7o3橥Hshq<6W,r:y! ny;>B(}ȧ@ŎP}kixdh b~"x5"x2Y7,]'';3n("~\)_LzzD5lcy摬\CVA/ >#SvvL2^gtO_O7$4Sk&b24aX&w\9B:Ic/&&hhb5Ĕcx^dDŽÁ"DsO+8Ae|KrO&qMgV苹""0w*K8 .8=[*t&c9bIˈc7߅| _ A[GɞF cl*^:S%nB((N}{aLka3e ;iuv]E I݈aciְÆyyr5_7ःco'3ɃYmJ_k?Xs+up iRW!!c7![ a^twWdA)'KJ"u$rԍ>!-#T*5@`[/N|aCHrQ L83bt }C1T]\d=YB#W1No/0o.{4 Lq" O%@*"Ge1: &DYWQj2#G& XEY:R?aMR$i2bf" ULQq81ءċ.Vz̸0t|V=1)y0*߱x|U>=9i7zS/ְJͿӀ.l;tJ^''Mv:X-u8N?c6aˣSE3HLGt|췏iaF;S.NS_"RĐs;pA1]:qv$sty 1A&ʫVxn< uP%{bCջŶѰVd:YcZAsC^o{e&Q"F] Uz(a.] e29޷-c/.; ;ݬ^;l3FU3V{߲C?qfi9Mc GĚ5͠i<T(^OR{e8Q(Wdd=eN)nz薸XW ܲq#8qݟj<PܞZ?]6.r}LIRrkʑ=[h΀e|0k i-#s~7gtd4ytpt?<:L7z? 1}n?۽G'iw[NsW\>-̃L ৄW㌇!ENۨYM_ōGi-,I Q&kzRl5pvy7L7q(w"Y[7ׁot= d RxÏ.^{u[QtAߴcx[N4ѿ?^ GvzVgWH? ٪ٯ<`=! v5Aq)2ueG jO`ɟ%߱/9y+޷ئ=8+-qÌTtEIg'׃㦟76nf508=8v*%42˕ LS za)u$>|KhԔ 5J{5R?Ve,x:=>N_}\\]o:usc4:bIFU R9zzR4Zr'\R4y%“(؛ij?b5g&lH"]Bkxu<sO=)SaHcxC"xFws]mu vHu1tXیX];v~h޽OpVZ}[_FݟfO?W3570{sHG[^B*)C\vB֒Fn֟~=@U-Uz3-ݬS/Ke`m" &KJ}ktP "_Б~|Ԭf4JбbXX]|}j#hXމXJIdقi!ȶB-,Ps)%=H?+(d݄yS/'0?T|NkRCM]|ScIٱ"dohQ"5bNELilm2Lb_9:hhĔxkɱ0'<^Yn92㽟2%ķı7Bm(lEߊSP*+2]qJg"-$ns󙶐{_*H|{0{82}U[ /Q9d6>Sߜk-ݘkLkf&~o&m+X@ 5FSX@8"/o 3lgYy:x }MdZq`$ ^=&ٝV:Uv؆4W!mto{UWiZEPEJ)(mEĵLƄ{%.bȍe@S{DRCnOlbU[ tE1C…>oh\*E.L"Lq̩@4ufI6I,Q3VRI9cxs޸d,NPK3 eZbi$a+Q2}Y6+?'e GzsA3EdM%^vǴ+-o'1WV}T` *ӧggfs]ojVi/4=LM3|fuRYg3sk:5N1vm#\*TQ~x ݲm2:==lwۧ4z;x;}5N3?DCmw,䝣Yqvb9S`کDqC TxH? uT%5oCѻŶ0VugӍ! y i7=e&R_ժюb괪2#G\hZsh1%jM.ZtQf۱/4FU@ ɾ1]m4qe{ã&_ dk %dÛ;D+yRj-%X>V('Wz+*al!?_\_dd=GaNY1Q):lم/8g+Nn88UGqsu4^w΍ɬUKdHV(Ei^V9R,ϖeMuʛz̑,N3:2<:8v`|1ߧޗ!K_Gà#Pi'v:'F"i~'<(CTcP w&f JذFg'~BzRG3:Klfc鸶n|򗃶&|AyêkC ܂_Bbw^zp^/v/#8 R!0P@&EIXfT@:0G"H((a( *;@"[!$@= (-pLT^/oxNй'ܬ7"$_>8jNn~9'Ff?z`h# 9v) @K 4 0ֵ( 0w*ʑ  8<3H;X6w8S''K#qs0fN3 ngן^i7ab` E- &ȗW@<<@<8䚏pٖi'밒z?;%`=7fm \gst 1&tHr95 mi/U'HJO.Wg+!ObnX$IX1`["8#J|VR6C`|s#Չ1N}~ۓReOlٖbR(%oo>HWD 2`*q#CbwOTnFkk &>I1y N\=0e`X~I t!LzZŬ_NOVb@H(*'Pכ;x,գW0P"3{0Gu}ɌʀXC&ޯqn~@2@.vKᙄ[{/dѶfGt!"#Z/ 쫸,\m}+q]-31n[g%:e.ǫQϥV*Q MT6^I6)Z xg8+ AI%*i5WtczU=#h櫖PAugLM^.Tލ"e \+0^Bȥ|uk59R E&ܘAbS^7n$.lb=ꘖk2O@ Ő"a>z'uX=/f끼ZQ#ё\Bql+Dm(]p@Ԕ y<\v4"7=ͪ=% _䌇*d(ľU3>(ͫot*̵Բƹ94)|WB<8,P)E=.TOxJnG4y ۀ*/ [)$}FEE7mqoᛚ@cD\~{#sB Saw%W"J^SyZ^ҏuzsWТ^KA/pŷ:2=+iHʷf@_~ƶo`-޵wHX.d88 )P{Y?DX'JtCmxڄ]/ѧYF>{ֺ4u\.9U)wrxRv@@:~PȕgNcN ̧ 4G`OGP-^mзs=E(sݲہcR'k*9/C!` Hz+2nGaDxmڴzgld%i{uk z(h4atLӹm*DZhTQ6~q\Ԡh!xo(@ )Q03 s&mc>)단dz–$D]0L":"qg>YHQVEfHȵa)~+2MrFb}5FB+FƊBZqX23*{=*WpXt&P]YX){a<@ј@ 4\I>ym&L`c'Ci>`4o楾r],t]ؚhqHCľ>>ow'}( [ٷFE͏h'!@y@S5@@b!%@YkgWVmeKV'ngu~K,M)2n5M\+$MrVP/<"ܡHt= wxRp&񿦉77qZ)jL={ þ3ZĠ6G[5eDEdQ"ؠy|XFjH -iXA!9~ +^{uа6oٯUu#}$ҟT/2!ᥝI]![!DVcZ \VhKxT-)ꞌNadNR0xHUlA؂/ ̱f-ىSӳdS^X[^mral#/mޞPLnmC^j/,Jqlѝyy;sWd&)/;2?_1t=Ÿ)}4O;he*ԁISj["ލkХry @˹nIKgzw1 F^ Hm9'|/|Om*To|)ߦO|בYh"QD 8KR!3q` c)n GH* 8Xs<ќeI9H)ITMGmC&R"c.d(* M_/jfh7ފTp– iG(W$yE:wP:9cQ2- n2,7fZ(k^ަFh+D@HLd|&&`LqzHb3\M <s%̷`ٕ潙BʋTaX8^ 2a%8w-k^m,ñ6DQ<B4s!fLw1 >:|f%M$Vv([} NB6 <1Vd2ϖֲhSU.j{oXo}?vuEFBAǦO=U*?GJUA6 gexvN=\_MxԈ֨#ogezΨMxׁ%/*+algFn,\МE Lf9LsH~м{"]gN*|@s-X 8X1KJ{~C]=nqX/ɢ,yR9<Ƴ;M~[l9e8:WpF h"- VSsZbPD[UU(%^6YR'ˇ>i:1V|>8r=Ǐ)\㔑7~kB/Yqq..֬U\Žx*W%B1%/gUJ\#n#WlRV)ȴT_Mp7cy*5kTȣRg K6d$U[u+ Y88tû%Z= 1Dce\VsC,-Ft e"f hOk4N1dɜkznCh7qZ98o1ln&WĹ(kNs_o XgA6Jm~=O0ڼ_Xy gI)y`hM_|vq!<BY\|xTCd ʌōm{KkѠt&jg '!YRL.]7_}bM%E(nTA59$}NoW GQɳ*򨥂HOT_OJj*:D?j.eJ C%gBGVM Ɇ;hFdx 4kEm~z^5'b:sHړ_:޺pgMu0p֗1Nq2HP@6-1_(`-WC|sO$@}w٘CrF y { ?hj!6rJesbH^8ܜxmOXo^6&X?볺k\-_ Du$~ez9FDpH3 ;dʮ-u'HB!yfivK6n6;Zq/. i$):YGZksOlt(HlJ&`9NFCq16f99jm۵~+o|bZlg|ؓ}\*uu.ɚXlNXXGv5k,\è_sF([쀍-@#\kWV(12(XlY3y]#Ӆ/nR>/c͓o pLWЦh p붡r;[rq3O&zr/Ew wW.c)eIW22P.H%lﻴM2OTpRt"LYj pxNA{%l5iMsP}?h(u+Ta Toh~\*a$#&k%;4eԨ my Yw/_U5G MDSXm uEzg9+Kh)`E'U dӫ+nHJkTR1ĭ:e|aU(d&!y\tCES' UBjSVDpwaHgLh&QnxSk{@[F'o`>4@E4OPxYaYo7u7$۫UՙO_ќ%&~FAiT#{a_HWbuG,`trFEcrѶ70KG6as8r\MQW8TQEPL;K/KX ϊ 7<[#`La|r*_ x 7ZR*\ƉfWʒGEˎ1ʭCqlqJaIWOIBRH!w"-u'4WX2~3 Kja=LpdMOnhVv&>$S6j{|GZFj\(Zr JSݒF+}sUw-)u,&g~pa {?۾P7g-9#@lx[6,ggΧW1$gΟo08oKMЁ;b@m֥:{ܮ|S)bO F^BڈNg1'o&|LZ"}Q~P,Xm],eBq6K~*\z篑?qqZٚ !Jn-]_3A 6M~HkFRXRѰ)FwCzo0&mivm0joLq uL4 wlO+v:t9LտNw%PADXʟ g%RXT.6 +X]<犼'OA.$AFEGq@*xod\ˠ*@sC@EJ6JADfLlebGNVo4q;~&iC6J&;zSԷE{! ̯0TY(]vy oYU H*`Mled