tiles-2.2.2/src/src/ 40755 1750 1750 0 11406465015 11441 5ustar 0 0 tiles-2.2.2/src/src/site/ 40755 1750 1750 0 11406465016 15366 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/resources/ 40755 1750 1750 0 11406465015 17377 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/resources/images/ 40755 1750 1750 0 11406465015 20644 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/ 40755 1750 1750 0 11406465015 16151 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/security/ 40755 1750 1750 0 11406465015 20020 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/migration/ 40755 1750 1750 0 11406465015 20142 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/dev/ 40755 1750 1750 0 11406465015 16727 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/how-to/ 40755 1750 1750 0 11406465015 17366 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/tutorial/ 40755 1750 1750 0 11406465015 20014 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/tutorial/extension/ 40755 1750 1750 0 11406465015 22030 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/tutorial/integration/ 40755 1750 1750 0 11406465015 22337 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/tutorial/advanced/ 40755 1750 1750 0 11406465015 21561 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/apt/tutorial/basic/ 40755 1750 1750 0 11406465015 21075 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/xdoc/ 40755 1750 1750 0 11406465016 16323 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/xdoc/dev/ 40755 1750 1750 0 11406465016 17101 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/xdoc/images/ 40755 1750 1750 0 11406465015 17567 5ustarantonioantonio 0 0 tiles-2.2.2/src/src/site/resources/images/db-schema.png100644 1750 1750 23443 11406465015 23320 0ustarantonioantonio 0 0 PNG  IHDRr pHYs  tIME  1  IDATxIP'_e #QÏA, i> s`~` F@ٿ?߿mbחM@vzڜY]_Wh1O|߯74R\oې;4}BjrQKϐΥF?ycV=edt\?iqG0:.#mNFMB?Yo;xuMT}:#O,Z FW?3@ 绛A=d䴌`#69 g `tCt~}פIXڳ805;Y)ٷKV*,mlSitL|R㈓~2^R;xh?`}^0:A; #6x$6TrTD앾{ b vz^;l{yicrN^0bz-V6=vz&~0OtfK:]:3U_5!ў=")*W}9); Cns HfBJX?4R_;J^&O9\}P-h;/q2)Q0;%mmt)' =_rɟ\7P}7=en4Gr)6~^iPhI*]m*i\RF#Gݽ:S.G`QDhٍ+mnٹ"BBO:(4@St[ٸֻť;f[5ӹfG2B׷07(.Nn V>Oy#x{ C1wb'uET#*{% J+Ч7+ݏ؎?9*RM|}s+= ɀh G;_:۷MЎVneO:di#%#G \; wMfɹ*gG~&VJ}uP}\hzʸ4QZl5zk4^șaZ?inG0 ^ݎxQ#֚'+UKjgiztҷ}ӓx3""26j4ptUI*nF Es c{itQJ'Zsl#v.I#8e6:b#[XW0qT^O+#QGƗN:pٳ_6/xL;>f5o:TF|KGd̾IJbThi;d޴-$;A$-JB+[" 3G6쓀=?K]Nq:^+?էRoz7ߕ_X՛J ﳮ,-ۤ)tрH6xܢX4Q(#MsWZă Y4\}J*jh.u$Hk=ZRԳ^+Aa:{\wҚ^486먌@$nZx7|i?ct䐑]rٳMݕYf'kh;i3Pgv>u^0ڵ`7̣n\TId#KmkXٮ[m,w`9T3Igvcnݐ{Tt:|oߢ1Ϻ=]j| *_|Tֶ8?=^$TZkfhDWo-r= dE;Z FCKt_' 7VѰJSVg?YEEJ]v>j8oJ/n@ v*5{P4lSTųw#w:c5eϦ~>qtIy~鼑fZ<\ɡza_GAODm׈tSG6plB_P~vsώmppZ8;Pzb{xټ-~#VڂsqZeOwRKh(d.Fd}tÆR*;IH6`k׹~t Ն'+k!E@Cu2{2e"aOU )JKl\錑T/ggu42\s҇dώϼEA-+Pz)h̯׿-a]*ב3FΥ ?m0FƗFNn{;הR6y #88{B'wBye62c56 gvlZz\bts¨~ԫ!\-q6M ʨe+%n:BM~܆ahbSBҦM F=%+'/-F,s;Oѿۆ @0#r<` F{k>,H>,m(x__c\kTrM8el#@0ɽ3hRF#l@0#j#` F` F`3ϧ` F=P-|}e;̇`@qa7nF` F` F` F` F` F` F` F` F`  F` F` F` F` F` F` F` xM#`zO=Ҿ{2GnZh*^YitHf,G{8;.:R ;9N3'ٻiQ8xL=J)tu j(8Qq*' 55 ڦJs+m6^3/|Xll]읻R#.Eժj09f{{'i7†t6`>l %8u`8SN>,-dvEW_B}J`Lj)[Z-zVXngYO "K_DBA#q.FA鎊[-ǡ[iNt\ob*Ĩ(!gk@0& XkdͳT?M?n)0)qv[N01:|ƟSۧ^C)mڍ$&g˝,vONCӚv3sUg+/hߥtPnhn"-FSix_Mg/&[ѥ6U/pL^>{n`lh#\ri Kgѕi1_̱ɤDQg/Չ#ukUqd]l`:)9mQUn!7@}]Ryأ8ni=a}j?wY{]VQHEz^]e%&+->0[RQM!ݢđKZW C*^7NzշLz ?~߭^te镟fG}J&}`6W<ߕ#_U\QX='L.ىKf[}O#E)qv4.t:@%:U"g/|2[k Kě>̑Q]B 9 fM:!sCX66W5*ʀ` @zvMk_npiW.,R3d~wO+m)>e>Z5# #HY9a\k"߽}*%KFcjĥ&l:ڴ`**YjoTy~)ّ?;o@TUU!g*g⥯8F-^)ݏEΙoX) *w8 vY#1ahj)GNP94#P!V!W֌mC~g#Q>"#@Xȕ~w?}1TUXc#+;(reo̖xT@XX8-:R޳O#4tZکJ%>yl$ *NBOuZ'X/bH ܧ1xѦbb?į;HlKo7qGog܌Yje_owrwb**=k؋ěnCM )l@0sWWaZ0b#P!F5`/87`o2_@@*@AuV! uVp!suV:+8#uVp FC0Y`y1YX'r`펵W36`MQ& F:+tYm@03h@6zHE =:F:+`F` F` F` F` F` ` F` F` F` F` F` F)}ǣ@0Iy<\[i` F` :֋ 'a߿:Sx)8A` )}y7LP㾎~~~玲p-F$m{ܼ'O &d'H^*JB:*[bWz}Xj|O."dĕ*TYp|Oq[l_`|m1iq# O]O4˲VڸuJjv#?Lx9:kD0O젷Ҳo+}r+Oӥd̮ämU* Ũ!e\H,v?:0գRdkķwY3񣰩?;(}+{,T)%RlAgO慨ec̷V妘;kwQ2 vى{h=CJ"䓟 yL(IDATQiTw{R6* G FTE"wI(קsQѰEgKF$n' =Q'}o p ,Fږe<e):4JcpgF׿ߟg,{`ȥrǝnG~ "{7DW$Qyέɂ =6Q>&F8ׂNql#5tRz?ecro}Tٟec`?Boo(m%KV֡/"ѧRbv[:kvSdsJI}R`h.PXsϾ8#9}i$EœGs)f_&$AJ{AK_?02>$"5=#Rpm1JEff-"lQPs(ޅ~2 mo/u)t-;:0' F& mK>}KC| TTjMhyaW}J^<Z W} Uj3" 8(T0Z|̤5lfe^?񿳯Ϯ {T]PvpZ)g I~>p>uz7w#fB( i0Rol b%S0TɣӂVL>tXqI?)sM"B64b W=ѤQda=.\]ݶ((8T\>%Z߳Gt̆Sj=RJ>dxLEzN Go)CwWHE֔tRv`٧tL i;YK{R7t^_;"ힴptа(='ޢ$Ne[%fapޏ.u?[i5/>2oI?чo>KOkA:e՟ =m[if##_@0D0F`dԂl` ` F` F|>m#HϘ^F7Uۢ֎q#pxq+ @0#@0#V@^bIENDB`tiles-2.2.2/src/src/site/resources/images/page_to_page.png100644 1750 1750 114461 11406465015 24130 0ustarantonioantonio 0 0 PNG  IHDR,ɮjsBIT|d pHYs  @.tEXtSoftwarewww.inkscape.org< IDATxy]Gy9w}.aɶ1 &p&@^b,80 K0d $@ aIDXlFl˶VkVw;ys[o/jI}׾}9ιUSSOU NP_kfcHYef[@ \HzKMIcn)H*7eS=ُl䀍w;%Wy5ׁ-oq2sZ'?Yy%SQIZ΂O\f/xCSVCfVR - 0lff?$xݛ] jXHwҶ_7뗭p7w/t/e 0!nI38pLIC[%}%_At8 1I'+xC\xK jI*~ 鋒 IKztHzwJ|ߐ􏒾'6Ia廷Ygi_<[fe>MD>1 @AYE{k9^<_r^ ?^bЙ7> D?l>H_Ⱦ 0ܙ]Sԁۀ,Ex@`ѹ8إ->|%_of4#5dJ9__?ug)W_h :^2s ,ǾtԔk|)7fY?モg\$|Zg^߫9HW7پFUYcO>ifI#&% |)_%NOK*~˖ Y*7Z㍒Q 5Z*;f*>bnYH%=#3fvn7X8JJZ١挒WM~_wtkl?׳= ?-qQ_i걤˳>Yxx,:o3J1;/!/, p:4+y clfzS#Cփ>&hI-cf6[@ 8]>jY~+1,:஦DzYN3ys9қu5%26Xl kb|2=w?'HԇknWҋN @ p&\"3kɷ?Cs܏~8k|Iz*~R3< ȩ(oK$JirK𗲩{Z|[IRRgIcIWWIKzW%=+\8 Xx,SӬt3GQML+|``39}PRcyH%i>Y9&`/~ 0~i7Wr 7;Ҝ7 y)|CzR 랷w l>7} OaI˧A|Wk߀_^mI')㍖_2適'.Ư )]Hx^6w>R6ʹ@@zv=C%nOO~&pm;IڅJ7 WK~YY&Sifyʱ/S_m ᔔO*fV: 3~@ XdEjqL~/5ֲ^ p.Юtn\6e-~컂?sxKAUeZo ,(Kv]ʹE@ 8~@ 0?ok#i3~#@ 01"؁*L!2pv?m[@%3k]d'~kX{lr"8V}˩,@&(@ .@!(@ .@!(@ .@Wntr#II[rnx=I޺47oW[©$i-ppkG!w;0o<wAV{m)Ub1/ߛқ>1}Vuo+v.]_ sJ?frjII+ϛه;VR/0af']_RE@Xtke3?Z̬r)V`;*3۳e %ӗ獒QI_tqK%Ytt- 8/V5BAI~hv%]uuJ0&i7yd:(< GHvځ@B+3yqI/t+$}!풾!+Ւ*kY__@KڑHڙ])/ۀ8mnk9ϋ$}B$ם3 ,/.=w}UR)* *?ǀUY4wW|C|;QUqx[ 7nU~ksI>>5eːeƿПJˀ6d_tہdyx? 5ρ۔ qcx9x5,%mY?,}'v,ƀ/|4|w)Pے~mvFW)gr'>D%VSo䞺Ҟ]'[dy?ݒH?Xg^Kv/^r׼ы|[6inȾ%O |`uY{)߿eє֑ɧlJ{u-l{&OhJv4}vmmJ{P%U-%ٵ,^T-F ߩ=I[[{%-%$ͬڔiJx|<G l26==nO~%og⃙|M <o=`fLfY)y hf$e&\*)|<xI8Xj){Y3|O[>#:GJZWa`X؍7V,@f3^y:KZ>yCLyfvDwO=bQ5sex#m1pJ 3{| 7[Y7+Fdaϫq?kf,@b?|9l|L&Y<|?x9𐙙0kქ3xYR݃e޴Ds%_mImX{ KxYq~8k[>? h |lx:> >zԒ~?>F9c8XRof{/I KS%MKICI+%]|=1.%]|{o3kf]M8EoKz"c Xzދw]fM'5HQ6YR'~alǁ !<{ ^!ٛ7cQӔjI(IgrCa9^)nWQ}'Wo#>3~w~ 9؅vsڏJC_۽\&CsI Oen3| T?%]|,,)p!% 1"1n:3H^M6s-tm=hfR$ef_\fGҋ5x΍xs%~Wl2̎7 f$W>-$yr_1iAl_2h,.H"ZSp= @Lوa%3r"9VEm>MULǯf< \؜}2lY~(Z^M oh8g%M`~6nP5TkIgU |,W~ b`8lcK}6Dp8\ Q=1t98 9 .Q&:9K:$ҖHMK&D 2' ] <|-`AE)\6$ [/)} F/@V*@\J uAezAg9mbZ VUU\MB$*њ\ & {sЙZ P-C=@rZFzv<:x@X:*pWaO RHڈi.)BQ/z:$c\^w}&ϫjQV Qp!tzFa$XU V`i w P살˳JX$ވ!ɯ3z9r>/ e>(Ci*_` ,}s@F;!^ZB u`ybMڥL*r)3L}&:Yx~iʠq8pA!:(UKS\xx!VwBJH׀A^Qˬ}e̙Rj;rд;%cieFA!>!Hq蟔/o=9J7m lh%X/P ?0󥑵2l5gtl?hn!.PS*8MLx!փ6R2s'4vqe\p&zL˼4LU OǠ iKm) )}@ KPE^<+~[_)-k$iF=t*s֟vo0+LPQHCM5ٍȭdw[t2?%pUe1K:g) s5B.V^(0hZu `%DkVBQ=)mE#XFSl5h]YA]H+f4;?o@~ビf,DGPut4ǽ]wʰӉW`/C@vA_H}b|`+>H Pg cdÔyǻXn{Ƈ ;j sP̓/:I#0Y0}Kn]' 0Pu*ӔOɲY,0?zKCuաv<[#W^ s`B# 4hFV)QE9X`3p _•Pï)p>0|yp\K8֦X,[2(bGZTu+a4AZgo9׀ [9lx.Ӣ[iJMe7fS,Ӯ@=cfWE,*IE漀, ,Μ׋|1#8~ι3)Ws4/zQ~9nIcd,Sࢋ#kQ8ܷ4l #wgw73w?S9E/Zm07Kͥ%K , )B~׽0~u~bqo?od|:\4Kt֬6h::ƍs ^y쓴׾@n2Ү3&o1aG|}} \ 9V<{u  'ewkóN`ӟo2::<`?so!ǷK2ȁLLg }?qv]G9vlG r ;)N_Ƀ.h/M:+ U;\8i3v|۽|=A4o!_Uˮ]|=etS/~o}wWG{~>n.le˿즧G]uW?G]sK| mR?Z1g>3殻z4^1~Gص+3/8;[WyGa~ٲ%SꙦn>g?[OW~e뮛gy~0$k%OO4BA^vNxK_8uz#jf Ϗ>~ʲos}9?;S_!njfRP;OTX7~mu36f_Yq睽70 ~` ^;O\cnwasuS6Ҽ_p[VspE?'R^j5v5z[o-/n4e|ux"cψ:۷wsg_1mynSu0_wHSogK8?Wy9?6 0l7ޘcΙɛ7OJ%toɟJ曋|Ce^Q5;1_'~;G|ee.#.({ǃO #G| v?rv*(98zԸ喙kc~OfEqu1V9ϙs 78=K#^<]T]q=uS^vܮ]Ɍ֭yH`y챔(>5fTg>S!\X ?LkxpP_sE7i7-M}b֭xn#FFg?;Gox˲o[n"TeJ$ |eɀo9 '(97n:#}b~O|"b703 vb^{$ڕCɔ[~}<8s{i7:m:?o_y674`:c7?Ys PG/Lxס! IDATS^7:rbַ\sM'?ysd`.|2/c^8`·&9N)ڰ!?Lf}+k"?.34t1?$=[ [~0^_= P526ڠ8Yog~{7O}jD$.ؾj?pܘ>Xf7x׻&xK%Gu311ѽ=<ˍ7V9hi60v}syWKMy"Ӿ~ʻO|3cl{+4?eտ9^ӊᄏ}y;Yƫ~wvθ> _o6K`ZM7>]fMcziv^4S_?111ϟI4W7)^^ʑʼ=:}Vٹ6-ؘ$| СA>֯w$S3 oߨsg<Ͽ[/pݽ\uSS򶷕ػϩߟ7oO{=  h86Lrs ], \)2zEdz(qTV/ҢGa)LVa($G1~r`]hy>\g0A!=n(98[`wQ#`G@Gap`9 k1hs;@FGd=U,@z 1@_ršNvMKP`\>{0zYP(>p~ֆʙ5vV@k"ǂ1spҟ׼·蘗eaGAj Rkkp| Pu4= iKS6+u(h/(!ȍX V@;Ha #P>ѣ:U*?Ȱ͋4f{B(qÐP Vs-Cq\,g+~ r`_46i`6=CP #&`S-X6aƽã:,3e}`% ʆ-/dY6#S/8nu $J̶{J##c6 1.:`Z,h ̬{U2?`t7hwU mv.\#WW4 }r^Q"W}@ f,.0&UQ|a Flk,k7_QcþGu?= Akg;Kϲʒżg52d*^H<q1;I ڊ٭Df<=X@+z⏽kmɲ3Ny' L:PMG<=GC~RȲ00 G :'c1I?.p%2#ZIܙtz{#&Ǚx\\| %RK@gG!zAG8-Z@{hx.׌h׆HAԋ߈'\ez9yk^)'/_{q,gӟ2p6%˲ɔ$[ƆWC$-‡6+}hV+&@2ب\n2 AYrŅSE8L‘(!ZF,WcV]P&D^F ? &aKK\*kplI znP T, ,2TȹL-f]ل3W` D=Ij+c)ѨHFj`t=T]Cs`+=TP\!&ʥ4"Nɝ_VYG}S#wɒSy )Rq%*ĉ\clbqv'"^'4Qbi.&iNRW.*Z4YqqVr`gHܛµ5xlz)%)(ɼPʦ#M>%+f:ԩfY31u(+*Ɖ+0q"**DD ۹&˖ꐐnUI\'19<+w1YK[\-ѶtځJRPRi.I⤳.KmR ֊9NִbD*Vud&(_?4$CմL=GW)6qnk8,rݹJ.r.9p"KFQ.3apIj"KČ\(%z-qijry$JCsڶ;υ7~8[0#ZRVHmjZ2s)Fu*.l 'vu5jT.K'*i2B֔&Ót1tJ`'`R¸[:sdsWQ\RLͩ"5).NI-[TKBU+U8T]K{?ddjp[x rEJɒΎ(gĢRbis2(QJަK%vrr'Ƈ;ǫ_g]}HrV][yK;}ž(x1/눜J4͛XF$'N'0xd$5WwR$-'QZVsqd1vlݚ XrvKVoȕ{ -V\!,%lyGugjITS*iځ>|lv_t͓sw>JO;+QFBފΪżsyEiΒ9N8%6} N1]0ԛ~aR=5s4j,V'HUYujO: [Bv/IcnˆBhEɀ9P#dNi.w^̵pf9׭bJ&FӘaViU5Nlػ!y%JmCro\wuQOV>Qz!1ɏ9bŘ$PvZ  RKDZVMIJ18FbWO}r\vHX*$t;-'z;rOwWKj6;1+ENS1?͌qrvM\GjNu\E)؀IrlXǟ9xtE]VL+O][QwRj=zbYWj%`4"'s收D f˯d2DF:4jh4ͥ#9+vQuǮd.oҗ|%*^AQoOZE.`i$EX!\ɜ1"B Ki|ߴqT9l_\bh݁[cßi۷w狹R)_,܊i~L"d.a._6 CT7SٸK5b:rĢau\; (R ʫ((*ttʭY^WA7儚"SE F9LFݤaN,:s#-/zlhcƯdjΨ;$X.LruYb}&pr2@ 1'䄜)uG©d:?[Qf)5RHUCe3'`CcZnVƯy]K۪ov7|ޛH:,bt~D z@tdeCVqPJ"VuQ!bP9RR[ qA՘[`keD 0+)2m"Q`L6 zqq-[4ZM\ې=\y]O5^.dFhSX W ڪNS$Hۛ Q;Ec%D)iD.]b%`=X `VB.Y 8ITӿfeT f:.9*ƕw\Wjnob>/tp󶸔<]Q6=Yiҋ@H`yȦ& ~WAUU (z*\})\żcm8IƋ[Ol365X)gXXɧl.BH'M'R$j8"+v߮޶͖.Lv׳ao~eEDrɮbd :yLʦ,23DbP*kU?JʧQ*nޜO&c[~!N:JQ=5ٺ'rkd5%Y,g4 k6Dzi^*iQTSnPl(.vs4+l׮3u0ڦw3XTrH6fnK̴Rð"섅J ; (J sɤK\uǏw&=[&/J.ekSԱ̞$X-.X#2p|'% >Om4-e*Sbju#uXL8 %wCf<83$m#-v4g+  4a9"ކ_T1pb?JίWmV+{6m߻ا B.@ 2o)]_h#uT/)?A+m.D gyR?BP׻dJҭm\G mܴ)vS.Y-b`3$9E TdVYO D"28 Ykэ6U[]XzL.2u&1(Ř"dW,p`eYgQB.53'W9z5~=[ ~`*^>ɭ8 lh>NH4;x. @N bau8Ր"^ǯ{-Qi\Q;l5 2mLrZeIْydbaI1-vbV*a*rf:QZuXe"7)=]+&\\ϧթ_$Yse9"' %7WGdTrQWG3qqk 6 U,g sf:Ct顦 V"$Ee ʊ5X}j`Q3n$p2~=  33zf8XGXgN?M̙l78{\.J) uI/fƒYsgpQћ@H,#v|-W+|>H.KCoЇ) NN\3c~ړy7 ]H)R9r;ARJ!KE`~Zy撝g* NFlPSRW(uV'ruו]Tu4t4o')_s!YG3@"|؀rV(1.we>t+k偢Af|O\P\!W+IJnnd~9PdfY}`L̞A/C*:1H$jmٶ-Ea[ԛwQXR\13 [X,Y6L] SQ/XO5qw9Q.scX.C8tvԔ\e¬0򈒓d1nt +btMeeiL?RG8r9S s{p #ũ8Nn"( JYS{a[Ů|~ҤNytK+_3T''x_Y&&˺fy[iwVjn12ۀe!=ICB$<$$' !!Ų14cqz[mo]JZɺ+y뵒޹wν3ss|HFdh26ۺ\E2Im{ Ex5.j WqW'" +Ȅj¤HD,5J 8ζ:cVP0[Hukiu{Z8 IÙdcR3צ5jE& `đYT?x *FˊFO1d2eєzaBTՔIb|,^{јZڟyoo:NYB }$ϝK.[Niq3}~*ėZRAȝ_+ WùW~/&*]@>D"e套Ow&G?GW+>>^9,zyn耫SNՊQ5L(McHX%aDTw(%aTHl7yMr"1&JTgpq˾{ΑE۟ydXO :8fu-4/ZJP.ѷ/ba|Dpsѳg1O9{{`sf }}򄟽{N~7_`套Ġ/US, " ɗ s05ssj %$F1'+Uo6/ǴgMu 5GSluld0z *F)jdToU QG1ĈQv!8q`B6" IDAT^"՗_IP. lg׃,R\񞏰x텔sC$ul1kSi^?7n晭?5yk[6~A4q8WϐG(R6&5E&j{8{2SJǹq(NI$AU5TkcK,?e ]TU ߈AF֘(Ԡ{#}QVēD<~5qjK_=5RD~R֣,[c7WW\rTYnk^ϪOzxϥ7~o^.|,8<_s'Hfuيx՗jLcXW(s'0m0dk*E*IZ0_WQlt5(EBE:sd7hwk=jZg餙!D''=B"ᚏk>?`k@O~1w5{⑸UJ<(:D/_OP) 9bx4.XU>TdN\ qMf\y-CO+Z4`f]V Hoϐ<2gK/ny[X+0񦅋h]rۿG[rE$&*{~KV_v%+_~{}Ja!gK.ûV_Fǵnv,j(t$)n4.\FF>"i6dtw'S{;8osh\\wlr| w?sm%kHqd9U~WüaE]s 筿@߄z+~^݈ 7ROxBTs5guV 8FGG)~4͋`g.NvJedy^tYwK|Ic}AUz;VsCлoCݝ0k'kn\6R;tnt]=zq3 /c?儖޽;+]nч<ֻoτ6.hu*_ -8\?M%Ri-{;<ΰ}qsA4u+_C_7g}q?~#]q4ijzqX\8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8.;8,Ⴞ8t`"K_1yK+ST"qvEdӱV(uJv327YAK ɷGW9Lşh1Εșfdx=޲6'R8 %sǙ;1eZ K_<}\wΌ GT;ǵǙ]zt?^!w eP2g:ާ89Eq.TVs8iV%{a0_L'/K$RgGufٽ?Q9'AI*9˞t"_/|G.zc7/t腘({KXrUbgD߳4ΙfdП({UJ7yC9]/m#ާtd-{_#|_',^KgȠnh$2yh&V2Eox+O􇄕-мx)^",cfȜ%4̛OϞ]tIޭ:>7XWY~ZeNRPnq 3ҋֱxͅl_y ZN=ξb=O8Nпw?~}OW#Ty*,;Aq.χ If\ҹylҼx){gܺx{c%v>&'^ޏн{'q\7Oo{.z(q? T]E׽y ðm2m筥u.xU_gk_^x1}KѼxM*\&ZqA\fϑo? ;u{M䬗\J"abhIGx=n0H8 f>E\?݅9K?%O/˔esdttoFz̶9|tl\wH`/`'KG'kt]| Vkv~?# U^R:ٻ` iI=W`2冑OfhY}{&\r[6=nǩ ',|\E]q.O<}KSSs.?J8Gi S4:u=WE4O/}M2E%WZ CJ{Fi9`fdҴjF혢0@vE9MG03BWz>',7Q4`?/yo;>Al1?gUo`sOR<\6Zm >1EsyPl_=p& %TL~o-yd~VdYv~( _cǿ0]5o9@q6wRc+8[X}pKW32YáJ 8@C,غ`[ˆO?ɓ?g׃\Or\؀okC紞7s :S? 9UuuxP硛1(KG. uדoǞ%2:Iυ 'b p w  ymT[>T¾n ndYur۰/It3cV]?_ moؙşlwc |%W-gnoX~O>Ls7Ŗtvܲ&qEyMlϿe2_;TڷsHocKz9U;/>sb4YvMYßWMr2=`&1[84: [<9!;iu6oJW{b EgaR!#✑ ?QD@W95uGdϻpTM̹:_&&z~|ʘ>k5+b};~(g*MI.CBq3êe}[_qgL Rxv055P%}hwCȠ?'?aqO]83ۓ_6ROܯ4 Y~i./9CԽD}t.Ҍ6#> _bUQ lg]w4V'VGixT-Os2x7mDz|3Ͼfl Ysw*qLjaMyZt`_ob6f=qqN_,g]9UO+G烮qO4ѸbUp>ǩV,:C#ԽSMqg%)Z/HN:+_5.2c~PŃ=qKS38Ω;2$Aβ@̷r<%Xy}}K&Qdw qgȗx+]fu-9e׭v|'?ew ufT?#_`4gg.M8HϵǙ4w8xwda4e)n{ۙ{K]g暱A~ʷdY,u|:,y9{qok3 K7ș3.Ya5YV]e%)Cv~?oL8]YV>ݏUx/}{ sɌ sIpXvM|&'E`~Uv9m,:9Y—)uGAψ9Ϻ6ʷdy > '._"qfj$*~_ʂKS,45;Wp-)3cֵIZ&uAqIFjXǙ)"QP%@Ìo9v>ކ`U4)yOUIX.rX7EW;f^يE)PB 'iOUky ZO> P*٠~NgJ.>.e(Th$sZQ~p_uE4y`ˀOdL:ߴn<]Z)l1%/J R%8'zwb;T(Z@uC&ם*}QR1AY@@6H䀒*EU6^M][sBE@=( dZST m]]vSgF:#JE" C"R 'q:P@ PPtF iPW؊^QDUWR*"vq?'3xB8 YP(9~GT{"/0e|89GF'&ͬ-ThHVKU5/2[G 'xn51QH]۪͡gׇ/Qx:$"=VS-*KU@sE*" X$Vs^gC %*} ]@U'£-ԅj]s{(XD(GU#HswR@Um_i(}L>0ۨvt t# !"*nS["wK B!ځIԫ2T8ma&nRfk;>@#h::!S=dz@f_ډx V7:4&QWz#N4Hx*?k H bOD#w( a;5BCz# ^4eXK6G7l᜙ְ&ӝD'~<[xRymĪcvӕr~YDž޿CږdJ^qڨGDZQL+!YjP0)wx>8yH^vrP[k:=30(W2K6n?͂>Γ%Alo.J:[QV,#bǤtJuX^Qy=R/PXMC}eM5ƈ(֊ %J)3rTKWT3* nDۍe [塡\be.9TͲ;lY$҇<خf.URFPZ-LN2&, $N*+Ϡ,앨KUU,b߸-,HVoVT4q≠?iGJ4 V %UDWŴGa 5;MO찬Yߨ!蚷mK yE- : " UiF4#*ID}UzjFjXl-H|kvFcvJwG6"^fk+""AJ8GhQ&QEp oDU-gDՉFJBGF% ]Im[;5J%tyjl$V  m@H$cP5P7$~V-D١<ϫzb2K[0 Q"WWm^5elc|H`"ȀZmF^&*l㍮pJ< x;EeW[%&9e;`a 5jzkٵ> U/e ^'HiP4+JByyU'(* gvkZ0 d*o;&gFU7Kvp]%_$㣖HA(PHj7Qe]ߟ"qKҏ0Z6B^1jG#vB uhȔ `s}7ǩ E5a!=`l$Q"FCm4 F5$QZE("Wd7b*ҞlԶ#{mf,/7O7Fbl9^!adEL 6+b2H|YȺ˸l 8qOGJTu@DzD.tih{KȠEy0ajڭ?A?ӆhӳW.xܖ'$͕POaz; ēvP>B'>[uu=UhnPFmEFL(0b{=FmZ PB\|Q\?#~^nxpKA`((6x2X%O&tKsjlb7eJiFF?2ǛЬ d' T=Mn&tL"Rh^UPЮ&Gv{U bٺ;J׊2-& ҭ& Y( 1&xH *j5A P#fUO4ͥ=S zuKM>7v<[_}qb[A8/w,Ӵo5"yG٢QZ|DœBh.Jo[0| m8i{MxAhS kI˨jZ&E)X9ua@#6DтRM),ٰrڮM[FU3U \8o[ijAzCToEF(7; „U 7ŰvWnMDbdh!R"j$'6 Uc"0 OUҥ|0&{夛O tlSWj&3AH*eRj43FG<ωO fQO+Zlď#5I&"pNt™rZ-{h*/0({R(BT_Y?N6u4^,o;,¬_HGO:E)5$um?jg|"_$>q64**Ph'-%tX߶vKyl э.șuYS`rY4?mRN|}E$4?i_#}t# Tҧ*SDLF9FN #F񱾱6_ڒik]OiU[7FǚP&f׵$rdƷ4"h7j9bS5Tl5#^MMnpbڍ?m1j$D-%#.Ac]Hw?X/[*7pL-l޵%k(dP2K&s#fAEiU#Ƣ2sd.B"jŚ@E)HND"ϤSA_"4onh6bjeDX1EF2eb̢y"4dAӂz.ʝidLWbU@QPzʹ*,9iQU0#;f,0r2UHHjJMVoGГbbPe+z6`qfy]I4UŞDX9m(ME'"U|3kt7ٍ)IcH` >XRK}Xl 7f[5 ""/Δm/5bVY+]j VA;cM3zw\}߈wq\U[UZe[ngCH0!B0L97Bb^$30@ !CHB6gټV$K]TuWu=GVKl%uOKuݺu}9{I@^BX "o2*J"[ƀjAIJbj!t/Jn I1]Dz) 2uJǴPnTE{\_:`Ĉjh/ p rB邘#(xΤJai"P8 ̳& MB gV=̯UA}qkEm*q%@ @ ʙ&ӇH2=.|=w"BJ90'=!B2rAv!n*`pcBj\ ,"$f@Q;)_ 1a @e fZ!,e"/9 u*J/U!=1'@b4 !S_HLhB*s4pe-ԣ(=BFJAr0i$SŸ ~/,~|Q-< -SO=g$Q# 112hn0h W4 X张$Q&AB`1TP#/ u򠗇嚓=FC 2PAL3шՋk !PG…ʂ+vMDvC 9!\LTcGI%Pe {"̤k0!DnIn4r!.ĖbA돟Fr bV"Ѓ؊9s'ԑx@xI%08Ƚ10;vKcr{;KkNC`N*.>epeJ\ f/4 @KҺr + !hD$PB)>3S%?zא؆̶5WӞA |m~IDAT ׿ 4B+kk7<v}%lBЀv|b9!Ϭ DDe,`gV yGdçn~PA ǤyYRyB< MVB:T7^V. m"l`W"Ѝt<.0oE#!xiZkeb>|@Led0*#-@σ+|lmݒꏘ Ԕ!PG{>iBBl_ٽ] G1#:mj10$M~8!oPU.e۝!~K]n yEhKxh6Gl䓍C0_jCb!9;u\W#(ۅn1+[_rfFG.~`ܑơŃ8뾏|}v7`uD$_ghݶQ}Y=}~A`V `6?@eY`v§Vazmf Zyh{N[2|{CL)1 y~pDPӊ:<3g\# (L5zbڡ&`~yZ3ͷ0?)\  yr(7 }vdvY}2tRXE+ⓋA@i-0#rL$h_uTYݑ3_N_fJhg{s0XQSn(~,ia?Gq甁 ??ߖiB caR@69vk `F'_:I]-/zam[=aG#Pq).Iٟ^-@;AuɧP#| X! m{=)UpǗ s8-@KN4Ӯ+)NjJ?oA iHmHORFP}[[#bsл5xϙK mQh5h]!@F@+w$~<(ݼvs/DZ4oAvء۷`.’^UPPǁ[7n;;{Dh֣vu'ϠHZ% -bCD&g|,Ijɘ#xbIcHJ@\(]Yl-<,6Oi3p-p-@BۯbgV`cvu t&B*pFgTtO|_E&} q-" 0"Kg"/dh#2&H9 $@I W]\I*AiSo4~!#7C7BjV8vuƞ]Z :ﲆ5tcF`vzY>-68iM9'vK 2w8TDf'y ӝ7N8I ғ<ȕ`߈-q2=ߋn$.\`mvx]vw"qfǐy ?MHonAp^"l-:/eE⭋> 9eR6:ގ{O5Ay'v]&".psBr/jg*we٨.pM.%~Bwr s{Qeǃw"/m##vgvga3crGlKd3ۧ^gRt`;H &ؑ @ ffh)kFȓDvQr3~Z$C#{(O6'%h@ bW2l)flQظC y!9 dpy\D'7XƻR`xjb0$y `J,K,SH1n2,İ#Ba(D)YASH0(K KrynU< ypظ+}0I :n AȲqj(Ib# @J#ʰ9fSC?qd7uɞx,-00J+FdS`0XXMJ+E !B^9)TX]H[VoH=J3s1S,`կ,Dap gt,;$stE1`fnNelLF;@=X nTrlzs$Yƾ,#r v"bW=E͠V-{uޙw2ÃlQ ʙ9DD FZJ_b5`J#j?Ra"CSv:ފjPqRanq;LmD"fH̤OK-e4y}J;`d@h%g;ܵJSW[ϖSJ2(4 i 4 fI~ԴIf4&힕ZP\䕊Z޲|֩IJ& l %AĂ n!(9yJL; A Bb pQdeђZw -J$Z!8pHh  Z /l\- ]`n_OP}Yk&OEe5٥&bfHbq`SA\H$8L!NM _7>`uo߉uQ*>awg˺,;X$IDYC#@U1h fy\0r]v ]޻EџP?^>_愳"s  @ĵ T( L#%˦}YhOA'ɥB>43A֧_k_wm.>ב9q{S=ҼD"ɐ]PE@a`H 0^(N I0y3z 3'Iy5~DÑfTdX(*J~ǖm)B)33rNxAn1 $M .SAt`_1xA 92 7eŁ/.z+ٹ d梬h]etO$EU#1I rG(S@! df1%K_*b K a )0ڄ!3:u7䲶eգ}oOD?g&Sɯ3m%\Dߩk%DfQr*\OݵˢVm2@ @> 5Rl$$3wUvsN=K]S&wwsV^э~r4o◦3#̜;Ɗ꘹neN)WF9a#OR Lh"’ ИQXy,3yfb4IB77ӵLkopG~:̜(K[UoC>Gw/~od#;I?DT-HdM0X삳 #NT  xAx" #p_b;$" ' Cؚ@γ)gr!rzkC~vDubknjُxr}px<o 0`HϋYlY/ͭ~˪s[7/_ce̼kb?ű2QJ&Sl0,BR FtM=ᆅDdCgA$z'SerO &TXOŪsÕyգ]8]=!N(? jFp !=זNp]J #uwwG;NaO`Ǟy0D0u躁X47}._#O>}I+kw~* XOkRuG5{(CjLClƎȆjx  c[/SW}/Kh=XgfRf~DSL * kֆ^\A=96rT?5 vivlW;xx}DE‘{sŒO-nƧ:cey[s0IJ:EF {"EKOH Z}TrfDRL,׷%3 YuF$b-+?{B/|cid'_;U }6$eǧ:'p6 ӓcM˼'ĵW~x',2/F(ٍ›ٲIP&J) Xyr]A۱փX{iYW1F*$M%~dzzi+ҝ]?ghBPfF"[{pgw'>˭u?VDn>dƣOmЎ۱~"z?l]q8qPL:exI7QJ+d:=۶o=RS(N6p'Fۺ7_y13))'D% SR6+0_3󅣕W}E 7%k/>aZ'&i B1VknmesG_t]j(|@)}E ̽e܍߽)On˘h^kBOYjKg2G,'5_|vf̘%IhQ{람 jBPMhv>ߺ1sKg2?N} ʼnyiۣ~2W3] B1 !rGr7;<3RR!,?w~aZG;JP(&!(ˍ,n/3x%V1鱲6IS(1A$;ݴ 9yy[3!f~b*WJ_Q*oKL7{d7HP(X4Y*ziQ \s|9귇T(-1qT࿪jl^V&[ThF"?meNUH\\<'".LDڈOzhwe/B<;&h a[U(hт*\q$U'"Y`D+/+D~$vn"1Z'96f8-Oę(|,^\" U5/"$dϿ#[&,Tۀ%e2m# QmE1aۉ~|ɓt}10SF"WKD?"s OYrX{D"N/&*i( _\]YD Obnjĩ8"" t2<,"$ӫhQ{꘼Y{ M$D2wHY!~]DmޥL=v$*" "rLئ.ڿTɢ0H`ϩꑢE\ x("1_\|D =S^4F`ǘs_P8f~pL >L(SM8USL}ΘS." fgW_DTnU͏ )E#49vR3Y@ U`9E,ͪ)b̼FD^|QDnT=BwaĜ* %d׀11#2fBg.>]a9lmvpoAD]/cb:}YEߧ>)"׺Lz$; s` =;0d$ucRܣ IH)t) XHPÐG*v6x0P =uCX Ag"QP|sMC Jެȯ| dgN^FH-3fpj@ǃT?`lǓ0ڛ8&'<^ !y0 =} nrPdtRq`@Z hJpu DL2'xOYC< h'~=pQiEV'A'g@C r s.RwRX ˝dXroDQo[̀HoTxrJ?FT?lμDX9aoM6HXDZcl/7mh5kF/wؿ?d"qi65 _J6$UjklVh::'Z'\w]C7chhnw|+ݲQd;~.|Yn)áC%7Q3τ|3X;"f_o_Gk`pPY#G,czo{?~&ç?]m5#>ZЍNկfT|n 8?Դ}5tuYnahJsO?MJ =\nGJK/uy[9r$ /x_G˖Nd%;;-dOGnh$SOEs_0Źa fX9Vk׺Z:bupPyJkA!|06puaϾhd:.h2T49cbU'$jLtv YȄL^_jtR7 a3@R_B#hhx9q[ܜf}/Pĩl !wO~[Hs'r:aǓti۪D|e'"|$R֗=?^#&9 94ppv+ɔc ulwϋ[`{d?CP{|04"IiB8Z;4ƶbkղMe26, |q bcqJ ղ\ˉp2{k0 : |톖>8dMeN+Mi !/HO:t<S86D UO9vUAHTk}K;fެs@|ZlVt:僵ff%YАw&kk2T&Qh b#Fjj=qjEU 껁!߫ \fY|-gԷ~gѢd2.\kx֪* \7QNQ&Z ьx^"ۜ--Rso+^~kpRIGkVsj"ho|̀tCENHhUK7c4?t]MH? 6"b'4lm]qE"N]N_8Ysq76t':s88{lޡ!X  `6&2a=biMJXg5L+Q)gB(HUU* QPcMv'l75H^m= .YҐ5x+D"ZDLa7ʂE*Y((€1Qeֲzu`wb7md<%d0I[kUm$hA/-st88(jBCЇJ=bM1n(ٖ+"J94"u58*iED>97Q%TR&Xf2̲e)CA^ƺƳ-F Ĵj^&q@-4yY3JLJ!EUPWņ>֯Ʒ͛n,c=']ckLq"U9KDa.IPYAst%\O".`-BE%zZ bP5"bG4d즨Fŧ!Ԩ22j #j( CP`zlȦM:ttmiI"dB[Zš5d1- mCX2l՜LSo,VXh",DA() e%h Dm)KitczRڶ2uK֋hԋhUVj '$@jUTZl x6aYM"҂J+h@P'Dy`TpV ҂c?RK%fE$"AxxQIqA l=ql^&Ek ~7p]R8NUS!d$z*):DUڄ&L> %g FT1Uu "q9r5|&)inhyCU$TKq\lRє$UD5k>'QGqT4!HRѤ#&bݬU&\LHizA29|\QF"(&bǨE]]UP3c:QYUU>A)7qc< w0 J`P1*"2y=uY!ƖuŻ"b "FT ?L$&vh$SY6rTB>R)ֺbFEɸ*|=e`[U{*9M8elV記᎙TLƀ獟~r׼&'P̤TL]yf-[ygR*&={>0UTyYRI*&ΣGC2̜ QLR5`#k&hn6f>Jf!4blks6}4㖉߶-_c+^aϞ&(YWOʳBGn57lyJKq èyB83?ެղt9ɺY;_Q1q>H ]'__O""4/]΅oy;ostSӂ]wϳd2:&NH:an?%kϧiQ{8:_gbmHͯǝm/'Y@{W%ƅЖqv\rA.ˁmOU/OO455r󣶾`Ew$Ѽd)u97p'y/3W?(ف~:wd믡u%w\K71йg4Vz~_,S1q>χ>tl8sUWEgA֥+hh[ȓ|Fof~x{^V\W9Wчw0? l?e3C=ד=spq\E.P>{83۷QmTL]]!tL+o{[-٬puttFS︎3ZMsRi SvλbvU/zQFݻ}ozsfwj CS̪\__8_B?wЌ)Ϭq :;Cy$5|1'^_nF0|hi1u\}O>Ns}G"˿ G;ʶmy>&xnj5LMU>l/~KsSLMEURW'͵rIvFLƬ$;u5dʽqM}l>̜Ywܱ6_"?d=72̪8kkŋzz,g4񑏌<̗=̽ns1ì3lIDATQ~wnb&fV9X78T-8cX1UK,Θ%gL3jS〈ZbqT-8cX1UK,Θ%gL3jS〈ZbqT-8cX1UK,Θ%gL3jS〈ZbqT-8cX1UK,Θ%gL3jS〈ZbqT-8cX1Ug%2g\' 2>)0HB3d0QFQTDATDN:+*jTJ;=rJ+\w5 )Q@""w ȳ,D8=-Lmc^X :w T@V {Y`T#+:7$P pZUUT8r'YkAg FP՘zt r1yuk,zb fah qLUĊZ "bUc&}3E%e*iy( Ԩ!jP TDE";;Q#W̙> *jEX*h[ ېR%;iSUıfEUG2KYE$F<FBQ|TyE4P"XѨ]idcZADP  y -Xu`.6cFL*ѯ"16 ]jChNdR,BNGqiT-IP3  %)6ah==zx?8;$d1уG88f>yЌfZ c23}" R0 *K5htU D4VAT_Tӡ\>A&`c&MdQt]?Dho;h[zz3j\!cT]ԊmI:"{.YzX+DoPbUJNKx(QZW8;, NU[;wKkjb*^4րqJpq9.UUP娪uãԦ|r g?IgXAD?z+B1*/f&~`R(ժHGn1k|0x? M˜zRqFsmy{zG|_sh1HCA*6J`EWu֚^Uם˅yv@CZXbMipDjTmRD\k)6bUv3Gz~RkQkEɆJwz}A=Ö-vlalTŊt׭{ƪ:0l JIqo /db9\$y&gSYl"83fv6ȡ-zeCX'x^VLЯ)# zxFMhxKӲ_VoX#QG~Hr|'C"I&bx˖0z4@W`+3CgQuC#⬯u~Մg]T;L.3gw=h]K;ݹI4 JOy'5l͒Nq] PLZs䰎aQOa$\·ͻCm[ث4mlga:ڼd-]Opcчuvϸ Y%bZHXYDo+C"}GOq=Cul&wA<_lFW))"rweW6&Zj.lCM`%SMyƄV+Ppd*&Tq*hn౿>tb2BhҪ:n/o2gkVg͊nٟRwpJ-M~ҶJ[g `TRVAԘ*zNUWj}8m"C"o]祄5k08@' mWP,TW;⬶bYڀ:1ն+8.Cs.bb5PѬA9=b $ozl^>9PFs-lvV4ХÈb*mFD\Dlǖh^#͝PT|4bAqI~]d,wN%OO'깫PL* 0NK9?x1?bc08ED_YE'2EN_y|$W4/ uV `yP?,ZްĒF.z _.5u MYGwX? /ed݊SIa9 1J$pSr'eCCFPwjk=n|3]tݵ)EOEm8E﹘=Ԯ]ȲjKy]]nr^1l'~ԪVE$;9p<Xۜ; ̜6눟4SUQDDV4O)gS/nIX`b_hRfvб~=?ىۜ]} z ,mΣ;;l7m8nK ߻"XWp;ϒ3grjGCz$,ծk.J;]30IPrkP6:EKH,̚ՍRD:0o \w>]vV!d`ܾAu@  )l{mu!߼|>?I7ט✌/Ԏ4$xa:_ MguqqN"O /o/ ֑\4Rftphhi,퇟y+YA, cW_Ӑ$7\9r>b.Y_E~9[?6D]VL!ޟ. pRY-,FJ\O@Ϗvx,X@d ՏF_x%qgn|]4*}-fџMG<]̎c, Y+`+4VlRM%Q#kzͮ:1z`1B ̇O1BbI`$L%Al E k vgb UOh5`PPȦź@a_5Q/2fUWO*L Ⱦ;#ah;9%6 tϔ> Q$3 9V'd3M`L03aSӨ+-R3Hc3ZŽ"ѼFl.18I &VE Yǟ0hXkB%Z$P@/{yu]Wc *TvpX1"*4ܾ*YlI@wrn`AnFڋ~ͨjETrvc/XPWd5͟zFM;&[|h\1kGDhBp:T\9g?fN!Aai[0 + _uhϢũ/\+C_iD*ҢB(7YOSDZBKUXeJkl|xplsc1 euI>)ڀJR5i#+ #XON>#cyPgraKGs \o'P887F嵛@+C1M G3m4TUщc:Hd6ڶ*}QT\R>N_?i޲)r,=rz0GZFc D:($(VՈ  Apache Software Foundation http://www.apache.org/images/asf-logo.gif http://www.apache.org Apache Tiles 2 http://tiles.apache.org/images/logo.png http://tiles.apache.org tiles-2.2.2/src/src/site/apt/security/index.apt100644 1750 1750 2055 11406465015 21734 0ustarantonioantonio 0 0 ~~ $Id: index.apt 782137 2009-06-05 21:18:52Z apetrelli $ ~~ ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ~~ ----------- Security bulletins ----------- Security bulletins Here are collected all security bulletins about Tiles. * {{{./security-bulletin-1.html}Security Bulletin 1}}. tiles-2.2.2/src/src/site/apt/security/security-bulletin-1.apt100644 1750 1750 5757 11406465015 24462 0ustarantonioantonio 0 0 ~~ $Id: security-bulletin-1.apt 940000 2010-05-01 12:46:53Z mck $ ~~ ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ~~ ----------- Security bulletin 1 ----------- Security bulletin 1 * Summary EL expressions in JSP using some Tiles JSP tags are evaluated twice. *-------------------------+-----------+ | Who should read this | All Tiles 2.1 developers | *-------------------------+-----------+ | Impact of vulnerability | Remote server context exposure | *-------------------------+-----------+ | Maximum security rating | High (read-only exposure) | *-------------------------+-----------+ | Recommendation | Developers should not install Tiles 2.1.1 under a production environment, | | | upgrade to Tiles 2.1.2 | *-------------------------+-----------+ | Affected Software | Tiles 2.1.0/2.1.1 (Tiles 2.0.x versions are safe) | *-------------------------+-----------+ | Original JIRA Ticket | {{{https://issues.apache.org/jira/browse/TILES-351}TILES-351}} | *-------------------------+-----------+ | Reporter | Antonio Petrelli (Tiles PMC member) | *-------------------------+-----------+ * Problem Tiles 2.1.x allows, with the {{{../tutorial/advanced/el-support.html}correct configuration}}, to use EL expressions in Tiles configuration files. The problem is that, if attribute values or templates are defined using some JSP tags (tiles:putAttribute, tiles:insertTemplate), the EL expression is evaluated twice, one by the container, one by the ELAttributeEvaluator class. Now, if at the first evaluation the EL expression is connected to a user-entered content, it could be maliciously exploited to access the server context. Therefore, there could be an unwanted exposure of server data or XSS attacks. * Solution The API and the core have been modified to separate the expression evaluation from the attribute/template manipulation made by JSP tags in a safe way. Since Tiles 2.1.1 is still in beta, the recommendation is not to install it in a production environment. A release, in this case, is not necessary. Experimenter can download the latest version of Tiles from the {{{http://svn.apache.org/repos/asf/tiles/framework/trunk/}SVN repository}}. tiles-2.2.2/src/src/site/apt/migration/index.apt100644 1750 1750 4337 11406465015 22063 0ustarantonioantonio 0 0 ~~ $Id: index.apt 701152 2008-10-02 15:22:30Z apetrelli $ ~~ ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ~~ ----------- Migration from Struts-Tiles ----------- Migration from Struts-Tiles This tutorial is intended to provide a help when migrating from the previous version of Tiles, known as <<{{{http://struts.apache.org/1.3.8/struts-tiles/index.html}Struts-Tiles}}>>. To use Tiles you need to put in your web application library directory: * <<>>: it contains the API to manipulate and render Tiles. * <<>>: it contains the "engine" of Tiles, and the basic implementation of the APIs. * <<>>: it contains the servlet support in Tiles. * <<>>: it contains the JSP support to Tiles, i.e. JSP specific classes and the tag library. * <<>>: it contains the compatibility layer of Tiles to support Struts-Tiles 1.x XML definition files. * Further steps * {{{configuration.html}Tiles configuration files}}: How to migrate Tiles configuration files, the file usually named <<>>. * {{{tags.html}Tiles JSP tags}}: How to migrate Tiles JSP tags, the <<<\>>> tags. * {{{apis.html}Java APIs considerations}}: Some information and warnings on the different behaviour of the Tiles Java API. * {{{extension.html}Tiles extensions}}: How to migrate Tiles extensions, with explanation of main changes in the code structure. tiles-2.2.2/src/src/site/apt/migration/configuration.apt100644 1750 1750 16032 11406465015 23636 0ustarantonioantonio 0 0 ~~ $Id: configuration.apt 814761 2009-09-14 18:12:31Z apetrelli $ ~~ ~~ Licensed to the Apache Software Foundation (ASF) under one ~~ or more contributor license agreements. See the NOTICE file ~~ distributed with this work for additional information ~~ regarding copyright ownership. The ASF licenses this file ~~ to you under the Apache License, Version 2.0 (the ~~ "License"); you may not use this file except in compliance ~~ with the License. You may obtain a copy of the License at ~~ ~~ http://www.apache.org/licenses/LICENSE-2.0 ~~ ~~ Unless required by applicable law or agreed to in writing, ~~ software distributed under the License is distributed on an ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~~ KIND, either express or implied. See the License for the ~~ specific language governing permissions and limitations ~~ under the License. ~~ ----------- Migrating Tiles configuration files ----------- {Reusing old Tiles configuration files} With Tiles 2.1 and 2.2 it is possible to use old Struts-Tiles definition files, since 1.1 version. To use this feature it is needed to: * include the <<>> package in the classpath; * configure the compatibility definitions reader instance, that is able to read old definition files. * Configuration Override the {{{../apidocs/org/apache/tiles/factory/BasicTilesContainerFactory.html#createDefinitionsReader(java.lang.Object,%20org.apache.tiles.TilesApplicationContext,%20org.apache.tiles.context.TilesRequestContextFactory)}createDefinitionsReader}} method this way: --------------------------------------- @Override protected DefinitionsReader createDefinitionsReader(Object context, TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory) { return new CompatibilityDigesterDefinitionsReader(); } --------------------------------------- You need to add a renderer for the "page" attribute type, that is in fact the "template" type. So override the {{{../apidocs/org/apache/tiles/factory/BasicTilesContainerFactory.html#registerAttributeRenderers(org.apache.tiles.renderer.impl.BasicRendererFactory,%20java.lang.Object,%20org.apache.tiles.TilesApplicationContext,%20org.apache.tiles.context.TilesRequestContextFactory,%20org.apache.tiles.TilesContainer,%20org.apache.tiles.evaluator.AttributeEvaluator)}registerAttributeRenderers}} method. --------------------------------------- @Override protected void registerAttributeRenderers( BasicRendererFactory rendererFactory, Object context, TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory, TilesContainer container, AttributeEvaluator evaluator) { super.registerAttributeRenderers(rendererFactory, context, applicationContext, contextFactory, container, evaluator); TemplateAttributeRenderer templateRenderer = new TemplateAttributeRenderer(); templateRenderer.setApplicationContext(applicationContext); templateRenderer.setRequestContextFactory(contextFactory); templateRenderer.setEvaluator(evaluator); rendererFactory.registerRenderer("page", templateRenderer); } --------------------------------------- <> Configuration with initialization parameter has been deprecated! If you still want to use it, please refer to the {{{../../2.1/framework/migration/configuration.html}2.1 version of this page}}. Tiles configuration files translation A better, and more powerful, choice is to rewrite the definition files, to use the new features of Tiles 2.1. Most of XML elements and attributes can be translated one-to-one or many-to-one without losing functionality from the 1.1-1.3 to the 2.1 DTD version. * Header The new header to be put in your Tiles definitions files is: ------------------------------------------------------------ ------------------------------------------------------------ * Definitions attributes *---------------------------------+--------------------------------+ | <> | <> | *---------------------------------+--------------------------------+ | <<<\>>> | <<<\>>> | | <<<\>>> | | *---------------------------------+--------------------------------+ | <<>> | <<