PK9fMhVV?linee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/index.html None If you are not redirected automatically, follow this link. PK9fM@linee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/objects.inv# Sphinx inventory version 2 # Project: Python # Version: # The remainder of this file is compressed using zlib. xڥWˎ +vne4DQ} ͪ ~M/0r!a\Q )U\Je3Ao`t6Ȅ{Q˨]v raS%$$gev(7'A]Z1lb[چzMB,w('hkAynh-U2XO\ltr^ Ujx}4p<tGNs:?>oO:(dN9n4ꀝ_D6AG=MmOrZ[J" ?Bb3sp=֞COߌf C3Dmd.i#UKč-~Q2E9̯mOmn=Ȕ*eBu蘛Z&{=PbYzQFLn6Q*c}*Rz5? PK9fM7b?linee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/.buildinfo# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: 5a308d3652db17c1b1bd9c568e51e64a tags: 0957a7f5604f7fa265ade309e7b795c2 PK8fMnlZ***Olinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_images/DCAT-AP_IT_UML.pngPNG  IHDRV cHRMz&u0`:pQ<gAMA|QsRGBbKGD pHYs+ IDATx MXSvi,!!k,PBBY˖(%ъ,!)${idV=%2cswƝ;kƼmr9ΌyuRq Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D4a[v-p HӦMosF8ȪTb9KW@`?jʶmf׷ǏG{}Ν֥K[zMh{/~Gx˖-ֽ{w曭C6`h+W*Vh:ur|ծ]ێ=?2d Hhk ^qs9؂ر.\h͛7b D$i8߂ ,k֬ў?~/^p !Ȯ:w;\bhk sKKԩB!H rӧO]vq0.1峦M^p )ܹKp8uꔍ?ޝ!Hb !Rq Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp9 D!Bp4t'ƶ8HqD3a+S/_>#FzYb.Xk,Ii;~{|]s6mM6p_o1Qn޽2gl2er{a=XߟXcI}}{! p|%K;ڣ>ʁ\$UVVn]Zڵ?{Z.]lծm.4h͝;c׷W_}שSڶm랻ꪫwߵ~mg۶mnǏGnfСcǎY-O?͛ۘ1cqm{6d{I&u 46mئM;SZƌ]v6yd[fլYxhmvi<]֮w6m[oN;7 eI!rʹɣE4iX +Vw}0߷o>*y~{]4zh*Uʽp(h^zYժU?W^yŶn綵>|]~} :wl5rR6k֬/}0`of̘a_ &'aÆ7o^**|Tn:z@"qR*$I&O؁\ۛo֯_o7nKM7͞=/*$in7SO=e7vO2pv!P-[Zn6i֬-Y$Z5`}ٰa͙3rޏǻ*[n%S̸/ݧ9sO3 ^ؿψ_kdѭ+ "0Q\͜9jԨE%ZDJʅ>12lٮZK-Bߵ^뻯ӧ|%h\7p~tڶީ_Ŵj* w-)=;.2}U-}_-K,DUe\/:b:T z^]6pH4ߜ*v­ԩS[ܹ-22Uϩͣ-Ug)STV8}W_eGqs2!۶*6olFrː!C+-""µ̕+y/پ}Uw|4VUΉ[f&tF(UA^hSnkۧNr{sO~.\؆ f'Np>||/\hQ(PTʷz}ml͚5v=$ʸ/iR ?~}ftSUhlzk᪛> g֭T= x.\Hy8^ ~7Wi#:?}tkڴk ]Z޽cT^Wڝw#-&Ŧ0`=.XsNsznqcvN:*hYfwߵjٲeKrzMm$,Xv}YժU^zn_-?{=W/ [cܗ4A϶*|S՝kW(g)[XԹ֨Pwֽ{hskٳ[ڴi}9QX9\T})SO\c JW\qE0-9nk׶GƗ ԮRۅwb)rwO6T> \`zz>%1AgHnjE *^x79>'[J*|yʝO)VV~ y*dN>IbGqm;F.̉^q'[QQ6sSPﺪG{g%KBNij 6 (`M4qŋmƌn:׆TFСCN;J[n:T+EU sҵlٲֱcdzƬ4̝;sZٳDž˖-jժY>}dɒіQЧ9&/^}Oƍ}֩4.SAUzeK\Ə $HK*,˟vmL֮]k˗wD7L 4O[dkРP$z}v]wY \uU1c2jK~/BT#B7U 7O?ͫSMlf͚?t駟ɓn.UYpPwɓ\C }F'%uΞ=ۅ`UY͇7aܴiPKwAyvޙYTzEgX~)S¹9sؑ#Gm۶viW`NXr.22ҷAĉ-UTSg͛7[V\@%Kzx >cw_q 6tpQy;wv3gm*裏>H͚5n5ϣ1b:tpm.ְ :u6kX)>#go>>F88/U%D|ztR{7\ 6mڸ\lǏ<;k0T_y_2mUVtiw_}1ͷ&.> p-2 ~'n>7|ZV~ ,p4hpAB-}^z5m=_)[l֩J>U jӧ'J a Yf8p3Pɝ:wSuXϞ=}eȐlݺuŋ[Æ vڮ^;v/_ҧOoǎ5\N9s-6Yf&MwqaB=x15oli "'>1½y]CgȑCه~h%Jƍۉ'\}z!. 9Hf4mٖ)S&XbЮ/#Am-|lTlʔ).S嚿]_n}s纛S嚨"lРA.:/ҥm۶Uɋ/c.[̶onUTaÆOTIJgׯwzm?um֭W^i&w{ thLJ}Gmݻwwp*wiɇ'""…N6lpf 힚о9} J4TIP*t-.5\Rgo/B?BqӦn{|[[E>TIB9S = >_})2*Ft^0' *̙3s\}ٲes7C8$a i.:7 s//Hd@s+]͟? 7`[lӧW87q{Ey  X)RĆN,F'+Wlo9Us3Ɩ.]TR ,ҿۊ/nUVJ*.zC9sتUVhQ۽{-Zt~#MkC!IIR$9R5kՂs wy' sq6m}7 opN 6δiR !$KGk5\cM^ҥ^ҦM^Sk:uXN\駟Z]%~-?`k߾͘1þkիW}=z4c% ra>l!Å:>?;f ǎƮqOH/ 2b~^N8$-ui "!$;ׯ 6X߾}-gΜ֤IJmܸх?7teϞnݺIkN6-/wu.]WEªgyƲfjժUs *LATv!P-[,qŵNSO=e7=V.Uy!. U5k̖,Y8uRNm/ Ӵ_17>{Ip}qYUu %0F[rr-.)QDHƭn]vʖ-zԩSg}ڥovb6ӥK{׮]9]#FSk}5" d_,Y6bRJ:*U*e /p?UV/i,qŵNϵ^*fϞQA.wH"gTo_;V?S=GQx@R+W.˖-[sjW\X$?ίLo_7=3g ^|E_*T]Xb.}.Q(S-[X2e|˨ Z[.9@+UpA_࣓ܹs`R|%KSwveW^yEDD6:AZg jkݺ V:..۷oJ*%h?=VCuW⹎/6qOHҤIc>M2Ņs }hOUKy-||GD+|lj>裏Z}sΛ7] GU%IU /ITEǺ0p6qDW٭AjJS i IDAT'|*T]r[slcm[T0JsC?s6gXF6 ش^͊Obo}pViXZ߶~Ǝ9Uy}y@F!ƺhѢcұѲTm-Ɏ[[oLQš5k{q)$dNV$'-Lo:}jߨM'״~6loo޸:XTuuN$?vR'{tRP>3`b;T 26otӿr_w]l肄ߺ?iҤ >""_m_ZťiS$>oG¯}RGc~p5=lP~StKܱ?kOm qm˟;}}}^%3d\oq|o:1ֻwoXW9]ͯWx:`-[t'T!:߸b[g 4~TegԨQvwID ЪUZzvR̾{4N.'d|! IU+ɔ)@B!~oi^M zօ{ ]pE%wƺ[DىX9gTkD] ©jKsm-yKu.PYvkUUۥvY 8EUnZNUwu裏Gk9AV0T5d\LxbR8߽{w>?_*eΜprQ.\.p{!G&plͣjUk)R)M<*iӦ=嫯׉8j=G~Æ VhQX'X' j3slz:Q`Vvm;zo@*۱>߲-ܾ O^^|+`Esp* (P ѷ&Z>rClޟ3BDt!*t|@OyDպwK7xEj远G.s!moUUShN9UX6vXW5]HSPhLoE-0/ٶ@F8Ht~ltj߾]PeLW[J枉k\3&?d`\뱊o| i!VNB8~*NEoo&U7o9QHQx&h8 5B3gڬY܅*jy'Nv܉|{/¦իW۲e|-(Uɶn:7OhRFVbePSpjӬ6smƌ^m nKi U Uys5kt1ׯ_k7UGsij3qU)DTUB?qj_UPjҥK]iIs{%u q"UԫΫ2WvSN=RUcƌzȅuԉuCIOX3]Kϛ[=mQg=}S˙Y[ff ޾¸cǎߡC,[l*U r *mzM[-^>͚{N"Pf=\ݧ.Q Shk 8е 5jTH?SzgJt@KBJW7G' ^Ta[8?4 v4\`NrMU 4NΧO@5[Jk׮oܸqU]tqe j|r+]4?(@(~Or* 4v@hK]|iӦt@<.rꫯlѢEmVx˛79Wh9sG8Q8`sδd*]Sf$yZj2Nŧ^zP r:D8HRq Bp9 D!Bp9 DI!#F؁nݺVzhED8$cUT 2eCZ׮]-,,,rErqhk \"3Is@!B8s%=9D%dQ睶o~$As%bӦMv]wѣGԩS+W.4hk׎@A8$cvܹs[,Yo={\СCw^LUXFi?q.;}t3g)S\W09 |s=> E|={Xn?ҥK}p e>}%9O8@h sJ}]k#;}ҥK~*y i#tϳ7̢bףQgNWXUS6e_8`ȑ#.QhA^WpK"##}R0qDKVj1ٷo_ڮ/, KdCO+hذVܹ9shUpƱDn1),x<.`O\HI8 꼄r1Cro rRan4i\5kVwluܼPwƬ֍?o@O?kYR%\NTRpBWa?x{ _^Խ{w\ ضfڮ4_|N]wo>Uzjժ|r0`yv}QNƷG!NA/oݺ)jɨ9ԩ^zQsT֘ TM1Z(d馛lɾC*Ŀ6)y饗K \G7QEv)$1PśBÇ}\B1%RS8T@ 2UxmܸU%꽗ٳ mܸI7gڅ*UUD*܍IA##,)͗/_ն#3_\ O&ݺIBjJZ6~LU?UQlT&/j` dΝeʔ9}Qpjx4 y(sǔHA>#3gtBך5k r 4& ={k=y `ˣ@ԣӻp+!To jyC?Un6՞٫o$}:b:T z^]A@E8)jPQzuWդ T֦M8_ *\b< R5IX>:u*TVLzk*`S)yUVr-"Ʒ[nŵ_5j{5ĐFy:ҧKoH~!]܉`ݵKΛ7ɓ'Y}w.hT{l &9 Hoqy -YĶnj%Ktz*Q 2k,_{@jɧJgj94זhκ*h-[?Y˪o1SP8}L)duž{yҥKȑ#_vs)RlٲOwV+JU)$ڵkK՟a{*׶O:ƯZIp.$|#uKz;oѢE<3i$7>wW5vR{ /Z*(8߶ U\j={@BZx5lv ,Ǝ몡nP'o۷oo^8OmXl; L\BJ^ΩbӦMZok`> T cKƽzo4?>S z+HS^WTZ :0`=.sNsznqcvN:3?UJ3QUWM$˖-r}vlܨ*ЛkOaZ4(q$N`5kڵ.XCma5G}dVJBmۺ ۷~ٞ8q† mo[ HP[K-U)X2e tb՟/ksu7-5r:>bŋT-m6Wi_p/֑ :o*tkFA@9f|%>BRE4\LX ^׬Yc{Nwn9rYqcǎ3""2et:/:+СC.m~ĘbnK-8=o~:IZfɒ qJ^sB/?~Ӹqc;I]L!nsUد ù M`E1:@ѣ%=EiJ2ٷo˟?^cw_qgTpQaT2gDUe bIbR^=_E8췪u!nӦM:ˣ ?Oơ=z\F~WOUYQy`~xxH'N=,kMٍ7kR"$mP͡د_?Ue]:UJ)RIU*yA5-Uөjy?~|ЛPWUypQK/{luQS\cQUNZ e3!Qo6Rx3e l4_n}u#ur wDh^Sxu/^_k۶m+_t-[f۷ow$)UEc:q„ =SyqyWUi>:U)cX$~'""U *Spm3\`4P8:^=z>'{]XԹ̖ ѣݕt]{ڶx.qzn{|[[9(Hq?߾}\*bG*/7o^XWTݦJ.;8x͑#9Qbڮƨ9 ѫW/>|dcbwbH8vaW_}Ϟ={ܺXg8ws(艍`H*T(Aϙ3y|+~U1TWpa7…V)r?KN ZU+W\|G8Bi6ͧ9x|']L$>9{u7N*s@(<ⴝ @!F8@ 4q{E HiZj\`4A"  J&T 4%%22"""\}v;yGxx }nO>'ND{^[珶2f9sY&SN;Zܹ7ްʕ+'we;wO>IJgn)SƏoKvh|zF׿;+RHѣ)S&5_|چ ܘ.\h˗wϵm֖,YbSN8Os~N<ٞx }ĺ,Yضm۬@8|GVD w߾} /]0ﭷ޲˗[Z!Hs W:V z|G.zg} 6Scǎ#G?*kZN:{֭}7e*T &XCcׯ/c_ &Mܹs-[lQ.6̙c T5:UX!?v:ʬ>q澅ϘԹ ?p= "Rw'IW_unjv NSOkʔ).ڴi :z4Zf\6k,mܸqVlYxjW&?lUiͭu e]0}t֭[Fu]v[ O>kv@w@2-Z|+L6m9sTEuD;c]-"D,\Æ ]u٪U\ŗ**j\xv˕+[^Aݯj |е|T4,O?.[ܼy[ZjLǿ}eɒ%-cƌ?~w_x3ϸKڷo\M|0U Os)S Q4\-C V`A߿Z21X¾K7ם;7ڏ?{`A8DXDeb./Q}͘1ׯ<,wܾ`N:v?h [`kkPOB,Ŋ߲e +TH"W]u?~M-.U6zh׊R?+!cTQ20!B'Sv*C3T#yΉZGΞ=U)kѢ{Ö.]_-T *2o)K,jyA\veaaab_NӾk.k!J;fٳg;$MTĩ.;q2šp3GSH^yխ[=6 .rmn^6rjy֓vZF)on{U-[C8p+WHoi$UܩJ/[~=h$p8'#tgbDc]¨&MX~{ӻ5uf\ܰalܸq.XRS8zj:u͛7/_޵Tڈ#/ps6ػ 8g iC:PJA%i^ZCS axSQKZ؝}sw܎ߗϰwww眕:o 懒UVղSNҥKӧOeɒ%rYUNWރB>g޽ݰa48t(E *brܶD(i (izj} A7kҤP |i9ӧ" ١CX_6m"5 4[|}}eڴiҫW/=s(]})|b8K4.^(b6uwܑTRVs(ш<_4i$N8QfQC!m5b]C;8sTTzСC$m^|~8qB (2++W߇;x"tp(2Kn6< J9Ȑ!eXjժA?C֬YeB7oyKwyGMs&"ZEcYf 6e+W.(87n\7gt钌3ϟ/GEeLDDDf1 sDDDDDDDD'|w$JH:GDX^ _|z;[118GDDDDDDDDDDDDQ[wcZp=爈(F q??p[6 \LQupBb>>>c~DDDDsDDDDDDDի=v}I:?^rΒ% 8PuUVg}f aGI 6fI& ʴiӬ.]*M4W^=I<,[,SI,d̘Q֭+3gΔwJ~dϞ=8vX?GߤbŊyf[;vg&"""( `ϙݾ .&L,HvuӧTVMi&)P̪W.+W`*u͚5ĉݚ۷eԩ-> e޽:""")?KT;k޽{˛o)#Fއ@͛7嫯ǏKϞ=e֭9sfiѢ|:ŋG/h%J_-2e *HuȢ2e\zU+v… k`ǬC>'O޷~iܸ>\dNj`2~xw˗OסdɒEZd˖-2`f虆9@YӧOk;ѣGȼB4@Vj($fG9r{gl.Y31#wܲyf֡L2Z^Y{6lP4he7@-g(B Id"S8[o>>>zA:"&^8J3o۶gT,/^,#G^fnݺ̙3pZ7O߫t/ bL(8͚53AiӦzG4@d?#~t]3׶mצCƀ(ĉ[wȚ;xL(?+XN ٲe!;A=3Ϯjժi&s玎,D3K><|0}R>CDDY^n_5kJv4028cܹZB'g,VZi9Dd "0luׯנ.Δ+WN >\7nb# ϶;5<O2jժ:h/ARꫯx{{kڻMDmJ|2s*'N[/6pBg8Y8!qL6MVX=Y{i Z 2ӥKxBϯDsDDDDDDDDDDDotb oR%J5m)-Y܅,]\,C@DDDDDDDDDDDN>쐝{0s(˗OK(R9""""""""""""QaYK""""""""""t~p (cp"ݼU;dq (cp"]džM" ѯ9""""""""""t QLC@DDDDDDDDDDDD1#"""""""""" 'r5Y,^03ҥK* IDAT q]^x=\.\jXDs6>>>7'De-eraI$ď_jԨ!#F)R4YdGI 6hI& ʴi$wzץK.uVI2@W$O\-[fw}O.Wü.+VsI>}Hj?///iذ͛Wݻ'o<{LƎ+e˖7oj) 32eƏ|}%KyuAd'O,Dʗ/b/_>O?i5daA>h߾ fD$G@30vYf]9EI>/-b Ϡ[ 62SxAۃl3ZsЩS'y{Y+SxB` =PQ)Jlٲ7n[#a(1PJe,Ͱ%zM6MKM9r$غnŋ[sxYy&M>?}Tٌɓxڴi5/4\-?(&! """""""""蹯E|_ ۾A.tsso8]JNuA-Q׮]5 h 87dB9zܿ>Q*7mڤ¦Mj~w/Bː!riϞ=~o ^% s0'C sDDDwJյQIRJ_B eMڰ~zٷo̙zV%E _ HQN@/9A lX!8gϖKzȴ=pA h[lۮTTIKa"BJs=,Xz3guC تT"%KNҌb̦-/\ 7o޴fٳ8$ڡw/Eɓpy?]-\(&cpEIϞ=~= VV--~-ZA=?|YȆ nx{{38GDDDDD|,(=6yâ-C eo?Ȅ dƌvG2o]XJ+WԠL̙3Gš4iJ,_Qbl޼ >\7n8UWvm:u.]Z@.YDΞ=UX1;z!ٱc\dʕ%s2x` ""(r^ݱcG~{Yua\wƟ(cp%|9 8q뗙RJ5/| @]u?14ƙODDDDDD_sv\z4kLC(;^b+_|2d !bh@ =a…2eJ!׮]5kjYMd!7yd5ׯfzΝDU#~p;wܹs|Tw\k 'Ol-[wkd;4ع }Cou9a\wƟ( 4 E/98%I'O.ϟ_޽ޏ?=/?(aRf8pر{/M], /;"f9a Y:vRE"ŊM(QAڃj+ҥqhywu-/]hm0zѾ!N8v￵ԧQmd r=,C{ )P[ٻwfaDwTD>bEk(- hqF6O=B +-CXȐ!CԩSx]<5Ђ~AN#Ð(Qt>`>e1(B#z;7ϟ/+VEr(0s5 ǏkyK@`5(v r{3fp(1s5I"\xz]ly_|GիZk?4ݻ6aYs凑 Q͛7Kwʏ?([N3}tYf1͢E$gΜ֞(QBڷo/Eqy4?4?oРdʔIڴiwyGRL)09 zӣ;ve:}< W|||ݏ4E{cƌцͥJҚ#F9`vn:uJ3F-۶m .cRlYɑ#^ӧ)SF_ѣG5mn+Yd޽xyy{,o޼GCHDDDDDNw5xZ%,^ZvaRzuI6.]ZOѣ:I&+W}̓u sٳKϞ==oIƌرcps,Y$I$`{Qtu#O?$IF 6Ckv=ߗ[nEqz~9_6ƪN:d f60GDDDDD޺,sf/_"PIX32e۷fA;d4}?}ԑ5sLҥKR\9P}֑/Q: kk+WȐ!CUףG[nZ'Nu7n\lǏ6wmСF|5jԫWz X(\lSgrmz\݁R`pŋGزE?_ %ODDDDDHCK/+ T_?Ao2܉`ŋҲeK (Sn]!HM==>]Ђvh+ NlԨD 'HΘ1C|zK.B'6L̙GJ*|O8_Ȏ;$!^ ȑ#u̙3=AYfҥ)`4˜Bvѧ՘Ŵ1użnrm9{܁`'zQap(3D'OK>=sR*;{XE|PRpBq@ڵkuY  b?  /@i@FGk@ :TOо}{ټy^G͛kC>~a 'a8XȈBLS`Al;w^3A A+dmUVM_s9/3(mԝ9]=w#"""pơao~voQs~rܾuK۵W%K'NEY}-_P/0(&123Z; (h@L#.sp ~RT)2$˟?޽|={WP`#S YY:xz׮]e̘1r!ɐ!uD cqW!C-'B3pb6駟KJ>\h|G`ma3qF l Faخ];.Q4(W]p0(J׀ 44^yf!Hg={~GB߯s͛7[;ws疜9s:}Ç-/\9{ J9$';pa=/֩N:+W.ݲeVVw<\ ;whFmW*Ue~?hyK=P> Q6q15a1cЯǾK]5ۮFNXbZ"'G",$-B5'Џ *Wa}DK$faǎ5UV _ZXN+W!eϜ9s4I&ҧO \! ZV--5/_X51/3s5LuwPQ SdIsɓ^DL{އeZ={V[`-[`. z3dml0ŢA'B jPQANq5kԒx໨;c0rHmڴIWo\[QǀrՋ8vDDDL%<5hOԈ2R *5z砊Ih{|" }װ1,üZ(i UR7n@r 2 ɘŴ1ܐ@{ O8[݁>9 K4.^h}9""""""""""5 c<Vϱb8b/:uj4zH| ic GIǏ S~ϟE- g̜#"""""""""""aСCnO?c ZaQaQ //xyyEuv횼曒رC߿/ܰ޽+Ǐ%JXrp8vDDDDD,sf/#^;T s׿5lڴI7&L+Vh;vLի'ϟ?]򽉢(P@߾}[N{e޽RreL#"""rS"EdڵGmf8q~i =?KT;+WHeΝ7o^iӦ[N֯_?zHu&[nĉK-d֬7nH^(جY31bs˖- ,ӶjJ ?<(5k֔Kڴi].2d:] t޽{>L%JAӧ[_y_~+'N={L4h4c<\Wt&Olwwvt|l?.Y$Xߛ}olz\YlP5'SLq9""""7Ln8O;""""" /-(n;кʨth.|#QF$I-Im6Xʒ%uڵk˗/52rH-~ǯ^*GiӦNL)Sh4')"; #Y}Z mٲ7N#ٳg׾^B!` Ӷm['O:zzzAIJ=43j(ҥ}vW (ii6ߛ}ol9{܁$X7rsDDDD(\R72cGDDDDDaE,ԥ.@~I9 $X|y 82~0 ,XPCΝ;˰a43gϞլ;@Po߾ր O?eΜZaÆ}v ZL94sf,CPɓEjժ|>XM4z l3g -8by}hC xjY|o<ol9{܁y9""""{gı#""""" 0h#c.?54=ɓ'X2sgΜ ȤI?~X 3f =jժyxs>!C)W%9'OY^l~2 xS~}5j*8K&[cil( t B}ƍ?#.\n|o"'<ŋ'哣GOa5q숈(=o૟~AA7'.ts˕2e`ŌQPBAo/dID"zraz㻎vd,9Zgs䭷 viӦRV-ypP:uju>dtE5K ( [l&bc$""+O>H T+R,Os~+""09i2ji͜Cd5M>]FP!CΜ9ÇRNɕ+އ,$RH;wNn޼)o>sN-燌,d-y܅/[ f W߻wnD3{X?fϞe>񽉼sDDD̅h[W._Ζ#+ DQ(Y?P{D] ˙{~Xs@ݻ4jHnܹsDEQD?$IH%YdұcGQf'/Rnݺիk BOZ xi-H8qqO fazyt'Ӟj^^^nʕ+5 Hdϴi4y_2TB'ֲxr^Qcp( ݾuz+""*We4&ȢڱctA*V۴ic틍ĺue˖ZnJ*$@VڵkUV5kV TREVXjyРA1bfE-^PpԩΞ̬O4_p0ȸ IDATuA_K߾}5׮];]z 4H*7ar^Qcp|M~w7tPk.(\fCڳ[f(Y\xQܹ=RJ%# vM|X&LΦ D4iB5V|oア=̓'$,SLN7`] hUVEk$""""" k Q%nĴEl۶mŋH}h"9rܸq#c8`ݩS'@D῟xٳg᲌>}ԩSB СCDa?eˆI,\P{dܺuz_ɥk׮zH͚5ĉC/4h"J9?HDDDDD_9DDD-h2jԨ!6m*U?XRHo.ߏQɓ#&Lb~6WJ=zTu8}@h {֭%w5jdzk֬,YRΞ='3Fq?3g40!0 {`rMI.)Sz?nGk$""""" WE#(s.*fiѣGː!C^&w"Ν;5K/ QLOxtk֬xވ#$$tUT `Kxk ͞=[>scӌ_U&Mtp549֭/X|B9"""%1NzI-[Ll"vٲe9sȇ~9;vH 4[_2=ɽz.ƍ?d̘Q'NI$h=M&+V>@={HeРAzԩSz~{IGEOeʔ)0aזٳgOCd 0qD"(YH͆"c?Ql<#ζG.]ۃ`GhѣO3֮\1t.[́9@f ^~K,/eRwׇlO>Dp{4iR=Ѝŋ:"c?L,#pm$7onwZWۊ϶vAy Ѷ̽?ӺMG;w^wfi|M]X'F7xCyR~Z@ϝ;NDDDDD.爈(Z5b$Z8H  ᠪ+PC ^162Af^%+!C2SJ;/]d  OÀ,meLߡCٻw SL Ŋ~Ifx p=vX0A'd Y2d.uo#W_ɼyzW*}n:~)RP|. nSupg[qb?~42GId҆dkѢzPGfؘcyvy] X^Fc׷o_1clݺUK?( +t[Oǝ爈(ZX1~6a˕+WMsesaqP{֬YZ̀H3ב8(jopeuWYs7s,%K}8(r|ΡTl-F ׯ_xݻ: ,ۀ3t܉\apb d2SL K,y*J?^ങ9fU8@2uA{O ud0ʻ9zҤIc=XnyeիW;v(jfZzY!8rpDQ]pa?GJH C $(m$g9O#y?v5Әϝ;w撹ƾ)QD;+ Q(8Ғ[q_-gRm ,6mڴiz-G9 #=Q4,Pz.SL:N'.ǎ{gX|g˙ .6H0'JH-m/4Oe([^<}!O/ q'""""؍9"""_i]G 3w-bZzYF9KÆ u#GXk[.2Q6 ˀڵkA^ |: zb'z)AV 2rЧa S?wϞ=qs0fB"zOE~%Do1k [L ɶmow۞ۼ'cۧS~}c'NrУG}MQYx;n QQF -YVB=`w^TRvG@oB i7З%F͛=ݞ?.&M_Q28Ћe }vdժUc'ޡza={hF~2۷K:uO>uC`᫯ɓM6qF)PԫWO|||>^yP²VZ:/QaXf͚:N#`D)yҠA XB??~|448lc6j? 6HF4xΝ;'se cnQsNDDDDDsDDDʑʣruޞk5dAΜ9[n6mo^Jz{ZmȐ!һwo3D[hld̚5K 8.80<'N%=< r]x) #Gײ`Dㆃ2d'~82qE~b̙r ~kٲee„ RX1ɶbmB“mϓmޝ'ca!a=_Qd@_IԫWhY&~.O("Ո}9"""uRHo2q0XO!/^Z xE4i҄֟ޗtl SLz""""""爈( @ Ql)S腈rܾuGoə3tԉo sDDD\džM0aA'WDDDpuyΝ[sy䑟Ynܸ!2e 6EgϞ5kVZZ$Ydr5iѢ ;7oJ=ܰawyGΜ9# Q18GDDŏW/DD'QdC\%^Cǎ{-8e˖9r>}H2edĉ{\rRT)޸qdݺu4˛7_0$" 8"""""""""" ҥK'~aņy\R7ohS,Ye9ȐAD9"""4~~~z… }-6a1ǥKD|||ށb..lmADDD1G%4HfoΠ%&ɞ=lٲ˗9D尬%EJʔ)ܹsC YlȘ1YR%Yt4iy/BڴiŋzOOC.]d֭K5mڴI (o߾-SNf zԩSH=~J.-˗/{Jʕ0j <̙#;vԠݻwK5+tȑnQe=(v3^>~X'OK>=爈5~۩wc ,k'_|2e)YkٳGz%ff(I;wԀQfdĈ?~|С>g# 2C S d„ 7n\PfN[>3d-Z9ժUGj Hx6nrףGmn(_kheլYSn#`x71gy<5+ @$Itrmڴ+W!;a;fX? )R1G'4a_pIFx2t}n}݁6w8d;vUwܹ#mRz쩟̙3TqrU }4>ζc?.>wؿjJ ?< Ylەe`r6o{$la(:_^Ol{;[u ;&2 Gy"""Yя"hѢzN DV?QTÞsDDDi=kWe._]0>CgΜcƌу ڵkk ѨC"/xd4O3ӝI;L):t֮]ksqO>RxqCP cF}嗒#GiԨfe0āf0_3 qڴi42^q< eҤIZ,w br_,?k֬ǝA7|IkD aqfNFX͐l}\qUz)80/!H8sx>Hl;w^3{%DAڷo}W|y9qedP^5jm/_۷\< V^=vmÝmր ϧ~ױldc{pg5oW^DۗO0Q hYdq,us5dEzhL(R{' _zR9snѢEGi8jժw)wV"E,tKa dD,"(}>>>: ⋏qPz$cƌփ/H(:[#ɓ'0_ؐё A Pn뉀Rl<Od D N@2 s]GWc !.(qC)J20ɓ'qx\< QlŁlF`y (Kh˝;5jA@x!C 7 RlBZ~ ^j=}ap;LQ̄`>R(7׾o[nq(L08GDDDykW?n~A19O\E%P*PRg2:tz2(+>E} 9ċt8nF >|3/WP`@VLHJ 9OSD@_vl:jЛ[H~0Mj`Q^mcL`5VpVvbg.c~gʝmv(6';oWۗ#FyX<}ap;#cJDDDQzp۶mDU0Cu"bp^9i2ji͜C jrlٲE{M`+@(/U9ssFΝ;!2_O ? J`:sp?4bsʥ! G6Oΰ<37>#N>2a׮]zP]B c8`/5dl( kpbg.7nh"O3dʆ6'y:oO!۬Dɇ}' }_DQ̀3" BDpȖEEGԕU^]\^݇Ǽ_]hyK[liժxG9K`("ׯB0d>F!^fָʕ+oe̛7OpA9 %ы Ǽq`=PYf2E`12A|ٲe`G)I&P ۲eK]^H`o< (okז˗kAZjt!x^\y=s͝;7L?YnSp$2(Qg0a-Z|Crg5oWI-{ ix>N>Xbԭ[W;aoH1 ""'k"""`__ K۶Ә˗O +qpe$ql3k!7ڵk`7w8.u5_XpM4Y9(y}'#J! %}z 9'N 썇JWvYz1F G\:(TdرC:t +VqiӦٳ'>h2wػM`ϙݾGXz4kL3x4icWAn#q>vu 6?ezJ8b-Xfv!^ "" (fT"" IDATCjhdBDDDR}),CfCܸq=z P^Qo(WE?^mo"g{^W!rL*iMbۓ-<K$1ºlj'ԙ(X+UdoСZ1>}O8! (2}mjFKsNܞOy{emjDo.'$6jYXW3((A^z1˔n}G1l5;y$7T^Zmٻ}YS؅]*jmh ͺl;۠eٛoxk"b=B!""(ڵkW-`FFO?ZUݺuJ >/^޶8 %?~7lP˃#?cPb|²;v'ơj@%n׮V@ed0@w:Zȑ#ZIy5ku?1ILMkoú+WNb爈(f/+VLˢQԀs(w8؀\;9sȥKd̘1aN8P7^ZI]8ڇǍQlJ(۝zO$:F %pC r(:Z//|cJU96s Qlh(ov!D~G%?n)oFj/0hz""""zA\]+K#(6@:LzR(C`}+_w\J#C A80/5M4uٚ @ nРAl葖O"e 3:hԨf!mҥҿ~8(VapzkW?n~A19O\#"g>(0O A(Ui H.MzG i "DDAt&HGHxoq%<絽ݽ%ܻ we=&+lܹS$qp% Ν\ŵԥ:; q6Bc]>ee˖Z"LJ"S#""""0j@i42yf!H1$ʖF@-!(Ai}Lowd7{WOh*pCDDWeϞ] {ãXb=wMN߿!(-i b۷o[n]+W.6 w4o\wbqLj#""""0H`Ȓ4"]U NL8irI(gԭ[7WbzT*U.kA]}Mp_^J,;yx{{G)#ChddeXw=KLD08GDDDDDaj}Wa2vDz Pv=ٲet]O 6>a5zdoVt/k؝:uJ?kJѢE7dҤIp ۶mۤjժdFiyI=hРAa=J*%|c'O#xRX?(͚5IQȐC5kHĉ~ЉK̻>}8]R2m@܆ vׁt_QrƑ^DZ 6qYb(ԣG9xЗ믿9rH۶m… 2p@9 :Tgk#'pb K bl&u 6+WJڴiB ۷\rEgd#jՒ1cX8}O*Κ hqLȽae)1) 1|2P[/駟B]?hak9|@yJr7JeX k~BM{5<~X3"爈(DD4U\YUspOl#N`V64ҳg4k˚L<;zøO'NK.iNa(վ}{\xrTBW^D~b E?|/dց,6w(k&K,.ymSҧO0 egϞI Q3zDM\EZ,5l1;KP"{l fC$IMgB0f͚zA:h1JiզM481"B˘aODA96#(zaґ#G֭[Z]L^w2w@"9"""""v(}RÇ6(kN`=Ǐ*Ǐ<2J(U Κ5TXr'P22OD 9~wU%Jcs LKLGDDqsDDDDDPC5J[6o\)"[lZ+ARNgY g pQ}"rE爈(!lٲZbm޼yruxHB߻w}m޼y޽{Rn]ɗ/>׮_^ҦM'""#JIDsDDDDDΞ=+v풀r,[Lm&6le˦hw]`|3 رcr]Z>u Rkז… k+{2n8ݻ<|Pkذ :TN8VX!ZҲ(%'O ۟3gK9""8$JIDsDDDDDen߾pxҥK5{ӧ>}z}K.e(}edɒI?h7\iٲ^ldppmرcG~^ foؼyK'NV+7$""爈-<$.Aƚ-dECDw!Hx~T<""""""ҥKsYdѢERT)<""""""79""""""7vLƒFDDDDDƘ9GDDDDDDDDDDDDE9GDDDDDn_&LgoPP^$H`yxiKw~3爈ȭݹsG2d N ĉ_Ȳedz?[lz )Rȫ*ݺu>ztI*U\_DD?^nݺ%>>>Rrݾ}[2fhj*ٱc͛W:w̃GDDQ9"""""`ҩS' ݻwOl"ݻwӧO˰aLcҿ8_DD̝;W>c׮]=zȞ={Dzj˲Ǐ˒%K#"hEٳg˘1ct{…eĉR\9}zRmÆ 3gNiٲt]vI&Mŋ:#~*U*}l-6Yd!ChE|^ի4o\?wDD[///F-+V;wX`rUٸq#Ex<DDDDD0C#Gj@XbRN j=zTf͚%||!N 4H/j۷O X^ . wÇu}>.JҥKҥKe۶m:{?dɒEC3f}z 3gnk׮:;Aj<5nX޽+˗/ܔ)SL57)VZ9o{Ӭ/k8'f޼yzmAdݺu;vL_۫TܸqC#iҤkdʕ+qL4fɓ~#K}:#8 'N|VB֞u@>Ӭ9"""wDDsDDDqة¹rM 7DS*&I&魷@ 0@! ְaC ){'P^}Us pB*q:܀=˗/k@x!k֬ZZҀ`J)2Yff!L=L-)FBf|cf7N.$J\K(QG1uǏsŋaaɛ7ܻwO֭+<&֛6mZySo(1u {hdlB*#k֭ee˖ՌDYs~GDT?yd믿J„ 5[""""""r' q;2̆A-dmFhľݲed۶ma}F;334ѱ_{=ɜ9.?vX "0(:08GDDDУ Gep?6kux .,-Zh69 ӬY3 ̠LaӦMN: ;(٪U+ r!(N<9\k׮!P >d9sHt4h#`fɒEQM4р &ANrC*WlzA'Nh8Gm>Ce{~' zzz~`-//Ql} ER???,۷!"h{|ISJndy5\ɻVo9zKwMfthz=gnYG Bd;ŏP2}!?hYLtl/þD3faYe W]s҅r;^x?~H@ }P xxx%L-q=fxo=XO@@mw=DDDYl.IDDNsΕ?X<==-9RJ*%ժ?~ Qh|$0Xdz2e=#dB(EꫯJn>0O˖-tI*U.._Ů>&ulsɓVeRLի'SN~*[nr͛7QF9L;|C/]>֦MټyKk08GDDDUPAСC508FիqF, TEL. ;mcҩS' ݻwOl"ݻwӧO˰aLӀEـO]5N:%yq۟ڵkhѢ0CFlժUuk֬?Ժnܸ!&Mc ʶmtDDDDDDz h"h" ={LYǾh)gj 4۸ӧf_ңG9xʖ-+_ȑCڶm+.\5j݆ $YdҲeK2d钏5lPV\)iӦ6W}+WH֭_~zgU3F2eʤwv;vTRi?gz$I$+W.裏b68` ޽[)Ex<DDDDqøq㴤 Nȣ;)_^#{='1K,1c_E0>ɜ9ZjթSGΜ9Y_Xn2|pG6d"xmF @A/dҥK5:#cΝ;'iҤ!gΜZΌ^zi!1E-f?kזI[A L-ZhFdѕ(QB{+>(ي2ھ}.SX1]e~ 2/AO""""""rx!(iGݻk?g ѠA۵jՒgϞi7x:={Vv%۶mEIzQlٲi6ڝ;w>]` b;vXZC+WhCq($ /^,?s96lk̙3g'|bY+Vz3(V՛"ݩy(Iٳ[BJ1 s8d!4uT exC3aأ\b4([F .?k|Ǎ'{c 6Cʉ'7OZ .JI,ɓ P̙#ҥlh:}DӀS4OD xϿ˙\D{18GDFdrE^<(ʕ+vI&M.cdӔ,Y2yPzeQ?,Q}/,]T>}*ӧǻtbYfҧO]F&?pe˖zvn IDAT% IhO?Ջ 7oqD͛75@lPk !~/W""r"I7 brG\u Bf2}%O\/AƘ-dECL̙3|;29r@"""⸜()(r( 窑Cv[ҥewEf͚_K*ŃODDDDD x6ȍ!M2(1sb/B/_}"""""""9"3z.%O2Uy8""7sQ^?w\y7Avq˱/QtbpȔL/m64""7qeɞ=+R\v-e =wܑׯ@ǾDDD#8#(0H' C} ''ĉ,]U!"rgʕ &HvI&%KȊ+dɒŋ@D1Ҽy"}]t Ǿ{lܸQo?~8Rao_y9}[~AB sVQxDxǏ׀E<^N)w___9sd~IƏ/1?69lܸq< DDDD{ɬY^z|!wQҦMFb˱}/UiF (9o5% ]0{ҥKJ,Nl믿ZjrE۷{/_>~2l0bpB =O׮]kY(}9r7 E$$ܺuKU\2V;vH޼ysn Q|b~`s̑cZ-[Vѫ2h zì:z)׷nӦM;?SNI^z2zhIK+WٳPdRR%?<Č_3 GÇے'Oiذ>KժUe̘1uwIooݺU-Z6mT/{2es9s2&G{0Z&Mwĉ$I(QlXb-@\"[/̀&""""wrZƵuYu9նm[$5c_ƠG={VKa kثk׮Ƿ\5u4>kh=D>g츕6w\iylȑlSDTÿk E$Hpb(R 2H uv .| r?kMz {2exxx_|v߿_7Gʕ+ 8vq~ȸwu̬ߝ?^P£G,hykh=1vv̎[1Dv3&d`B?s=uTYl~WyFo;`pCW=߀Kp/ J8ԭ[WXxwEQaf2F!͚5ܹse̙/ދR#(G/[lqk׮B@*V/vtf_1l dJ.-۷oנEg8Ȍӧ~6lؠׯ0['̄Gs͈e͚ղ #ܮ];#zl۶M޽+ҥ׉'W^%KǙȖmN3kb;# &TJdT#IƍFxܙq3̎[[K2F(_ 9sF._ab 0{6aV̌3tv#2JpCDDDDβ͞cֱ/&>#X@8ىI7g|lD9/q+Q@o|޽{urI5r?#"rsYnkۅ AJUÀt}ChD"31cFsJ#ARҤI-D끓ŋF?;k7nqQs8i~ifQd=*Y鱰Ǎ{Ϻr|y["na"?J \_|"S͆su20Ψen޼2_1@)Y># ja^Xa?VX1-݁mc%KL  +W d +VÇupմiSyyQ+iFo߾rQď_,1caQa͛/x~K/b|$3cߩSjǭ[j *ȸq4e;33n7ٳ]65;>wfhv߈(nvU:Q4LwՋY~+W.)Ql޽{rmYuɜ9g~-˔/_wf"5L2aprڵ2o<ٲqI879"H-[0l=?z޼yr_ w\:qq(b<(%J7J>sDD1&Z8Ѹc/Wg;f¯\rn4ibwiF6* 爈\Pnݺ%>>>Rre/^1 V;v耱s6l0ٳlݺU*U$bŊXx(pQ$H hB]k֬ц/B/_}""H"|/<{LY&N&  -c01YM'fv?(0s( W͚5|:3P7ސ ؽիWE8lÇKyp(N7n˗Oׯ5jpz yuõYvʕҦgΜIPKWXd 0}~(Q"].((Ȳ.|9sߵ۲eK=v옴lR~WI: <|_Vn]m׵kW*U5a_fݯ |_l׮ٳGuQm&wޕt9sg6 ~?r{; &;F{~\|Y)c\~Co99c۸m{/G22]fw;wܑׯQsf c)iҤ< ~>m>n[j%`;"3 2(n/@Ƙ( 鐉TQ .,ͳXw4"x{{[nE+' !`Yȶ1c24։2 Q@G'O8 +w2wR~}ɽ`ˣJ޽%RK @>Y\rg}&ݺu 82^7on aג-SK\-?/G+"ٸ(勒,}5j4G1)PC{DDqsDDD."&LֽB73Q(d C"J2N^,om8ፓΝ,[odu3$ }̑/ZnG&pM6MyRffxad/USuLD%d"m=!ާO1b"s:(YiAkJѢE5`#UV@]fx7n>"0jm…U wQ'p!"""IBˆsJ*W,̟?_k8޺uk}q JݼySKݰa4#!qm .]{2d^Y2z}"•ɌM/yPpD m۶r#a-O2A]dgS_`:PB k.K?'N>=z*-[Vkɑ#O t4EĆ j:мk.X@.)2Na{DP'hA&رc_Z' uy9 xc}?"NG3= `~{6/~nN*ogr $nܸQ;XERd! A_k\3RB>(Sh(U"{ ?W<ʕgQ g e^M5C &[4 - z'|~CYfӧOw2eʄa~]_믿nbOP}O.|N"=wB`9G۵̙3,cZR""?9duL7KMkhvjD'爈(FAN#I8An@B>hشi~wd3N'MԡCɒ%/ևqY6(׶h" u/&<&Ny{9а'iӦcgl/@=kP3mMf e ף" PlW^y~؃;vL?x-72ҴF@k=uiEz9۵y $9ִiӾ/޽+2erg{v + pR߹NA g `dX޽f!`2u`9dz!(2~x]GBJ!FX9@vcnݺUN>8 'yuaDz?cgAY05by{(QWF YMd@&9^G7!>/ #+$TC(k<C UD֩ز,1Ν;[n{pܳB&st\YdE"g{H(em1@scC"2d OA:" YA)?AY2P@dɭʻt}荅Khڷod C2֥Pz'<ʵ2@&.Ֆ-[4oӿ&f)RB[/eٞXgv?c'~m>qL_?_b,ZptYgyҪBAȺ< `yg ֓߿/˗kD>kY[!Xƌ(͊=f 9:ފ6nhHB;wnzKwӺD* 7Ԍ>@{8ou6!>>C}9 [7oeP "@=V1syuj~1e?]/PrOv@C4sA:{!_h0.PB5_|HAi@<Iv% Y!hGT޽{C IDAT5z)=|Ʋ&4 GWҌ`޴i4Єkf?AHdsZdx= k2 BL[2 )<{l-LXd\F6|.4kVj|bdLL7G,Q Q "K &U1\hyK=j׮-zҾf9Ҍ3,%DeTш` zbNӌ#ƌYr(:e &{PZACj ]{"W3k`.^X=(BkݺfZJY7d,7 h‚I \?!"%4 zٽODN.](/];l7d5Ǐ?9""@V(;BDDDDD?P]_ KXAF;v*UH…m۶,/@PnUVlB'O#hO?i@U$BfѢEo^ E=0C: N|6}]s.˖-V(щ,3a օ``<9rq5}Cw}g59s}2qe*T+s{xPBgI<DDD-TL3nܼ!iӦ/PQh[҅b`6m28G}RdI=Uwf͚ګ(\YЯ ~#Sč 2C)|p}B$jjɈ@M6Z(6A3!$a\+}揙%͓OxzYzܹS{Ρĥ&!ȷxbsꠕ9"L#mW ^k؟($̹_eذa Jƍd˖M~GKU&/^}{ァY9+wLMqrDnjeQtKΝ>DD!az!""h, Ȝ ܒ%Kٳg_qFh=*~h'Oiذ>|rKFz-ڵ4iD_rdϞ>On*C?SҤI#>>>2qDKIu#ӳgO}MJ:ڂ doܹsk^{6CҞX?=Yܫ EJ`bׯogPjU3feݝ:uї8>XiӦzL#eʔr̩e:WZ߯_? 0Zs ^08GDD9r -lRN:ѣf@~Gk.ͨÇڵk: <<0~~d͚ղNL<8 #0xt2-gi[!IƚFyO#?~Z1bNDq /L*{8="7lؠS/l cD{v Ul0oǎZfM .lb"x`V!cg]Yq,uԒ9sf@`y@p(Is6jC QrBj}μJD l(_]{ϡ4>f^7NƎQn W\㻾5L/k/'OɄ6X-if/# L+wA֬Ywx3fcBD%KH]vx wy="M1~DO=T5Ao75Ǎ ٟ QcK]-2~>W sD+Z=Q.(7psO?hb4i2"?!Ch (ˁ Rs֠xx #؆9u7 AKcplz{D xeѢE"6YVnj1B\oڴI֭Qz/RU:ՀqEhupڵko6ٶm[_tAP 13{=}O+W Ѷm뵳43(KɚLDL9s}Zn޼3ݻu6ӧO1B~fݰ~B Ç; CNCdB ZE|^*k:uSnݪc *h $10cʕ+ %ƌUC0?dѣG-T&>$+}6ď_,c/gdɒEcTN֭ ><\۴~?bR(mپ_8pKv0i;s\0AA$kڴ/#?{vUx(1sav$HPʖ*b2Kˡɓ5xbq\ߟ~('8\C)l<*T9_(*S>q<~Xʆ=.\̙3Gڤ>3p=}o:P #=G˹j֐q/r 3ܹsGyQ5#+w9"5r{yב#G$M>N:cڴi<q~QAzgfxك`Ld2(+]+i \q\`]#?Wх9""2ԾL7nŋ}2̠=ȶB`?爈(bp˗ÇR@ y{{Ν;R9xȂe (6C@DDQYrhxkԾ58p 爈(Jqk1DDDDDDDDDDqZQ([^!UTljb#@ " 爈"̥6@sDD-&M$w\/J%E^۷%cƌV;vH޼ysmu:d戈b;[9}<}-̙3~x}d.Ǭe(fbYK""vW\/y<;wn_xp°`m={vD>wseڵlذAҥK'wޕ%KʴiӴU ,[LRuܻwO?yx{{t=zqի'#G H.]g/^<۷l޼Yܹ#~~~%#"hw}N,層IZ'"""""""Mku$7oGF}sMF۷%UTc5j_v  uSSNhjk׮EΝ;oCi7ߔ ʶmۤjժe#"h9sf~IFo#0%K"""""""udF犦5kL* &_ңG9xKٲe믿9r]_ǎu=&LWXSNX̙3G2fp'M_֭[K~zϞ=RV-3fdʔIׇtM30e˖2d?cb?!C]'OǧtZ.m۶r8p?^]re^zIu 6+WJڴiAlcŊj*?{Gf̘_X9""vٲe/2VT)} ^}U"""""""uI`Hixmo?7kcj TnGJ!zxxhvŋ5=&O'Usɧ~(dgٮ0d=zTB"[vd2}t7^@ĉҥK O?I6mt۷%KhP ԩ#Ϟ=Æ k{מݻ?cUzuɗ/n>-iժ'ѣwޚ-g엣cV.7 enܸQs\L^p<4hPmb>爈(1J@Zh_%֭[fM7|3gN"b>f0>f FK͚5'""""8_z|j.g&  %8WX1I"xzzuɁĉ.!k`P,X;|앷4hC]@o@cA@x2(;i& ޽[o߮0'I$j^rX/x8 ]PPD9Oq@͛7u}fzΙ=&}i`J*ɟ)gϞ5y1{'`pKYիZNdܹs7ްlcf:i."_:1ۊ¶xb-o9.(P  AQl,@p"8S5by3P({| L"`Η`R4N%GD9r'g6~ Yf2u44c@C`΀Dgs08GDD_Mt1 3P1Koa/R6Ν;rupB Ν;|eۜ={fƴ&"""""  ~~""&yc99^ji߿qR9-[8^3Ĥmz}?~_xy)w}=="!np*<!]t!5QE 4Fc^nҤq p5)G]& "[hcF%Jb IvҌ:G31}^D-} lV^YV4riclwwL8 @9r%x=˟?7}eewD}DDDDDD9ߧt x `!9 y敓'OfT_UHVC` $޽{+,_ܥnݺ_^ҦMCU 8>Ex>|%w!q<3ADDb֬Y(Q(BDN`!# Y:GSLh2"f`; R~g@_X3fzm̒dE` } ȐAʓ k￷0a vc6#?4vf>-ZOpaU 4^O =ƎciӦX 1TB 1=BV*!@Hxk~Л.y :u|b8i$y7D&&O_ڵu9رcC/NѶPn*3f̰O)n """83vء"QFwߕ… [Jn`o81c&!zeժUڻΙ& V(Y{>s!o"""""(.epe2a@@짟~Ҋ#:NCآw'2ǿ,eM)"kDQ=)(hQQdiE)[OekC)JJPYIE1u\w澞=nw̜9̹Μ|?ϸqn+X&0`{KSU]_RLՐtݧu|ӄP 'jwaD|1RO8ezTo߾3fL~ֺ&sׯo[nYd]9sX3%K|\ gnDeM<ٍ=:E.ŖGDNfϞ:t+kb{9!פۺVFشiMT_siҤIݦɛEקG{W+S\#- iOU+V6%kٵk[;wv媇Σ ( xuMN9唰igרQ#… {= 1 jk0]{/Z_spH] ubŬe׮]+b'mڴ9+1h 7|p .XTE%=<%-= TyGqwJ(hݝwiͼ#YfVNdƌgϞ!]VB+ ZmS-D˖.$kiӦW_} 2*w,G6T׶?h~s5k'TehbfyN/SM>}[`93gN7qD׺ukU 5V>-XʌBGnΝ6Pt!ѯ_? I.]\Ν-`cQDI4ܸq[kҤIC7pe-Zԕ/_޽oHU6mh7^T+H|Xz6h0e!Q#I sBuRP;Vj%՟@MռڻXv5(o[n ynFwWZM;5̝;_eSWN*Wl%@S֞W635 [ >_|wg}6?\o Bԟ pyow(zasԜ\1`7oذS`. p}V@Ufɶ@*h 5dn#?+[_-1]vX& {jȜ@sUW+VX;<&@R?zoŊٳ-D q~zWxqrJkpG&n^VkʱcƴS_~]tE~jשիWw/B`믿nկ_?C*h"^˖-СC̙͛3߼eEhTG޳zr7>ȪhY 9d: +PJt ~Y~ ^EU.]J.}L?f׽{w^R%+a\@[N: U`졇r>1=FӧO 5n]z饶M^SOŴ.gO~lYM\sw­Z}<_÷GKwowdd9*]J)bɒ% Iwn>򳰏)v|<۷e6h]ke^akٿ OXzk] rs:= `ҳ>oNSKmۺ>}X eDիW=e]=_*H?Wvmܺݔ)S,i j)K5[{饗\ѢE8NіoԨ?ߺwy'CP?]m֧L2x[ܪU\^,Q5zǨpQ֧5(0m[nԩQO\U~hK%.P _&?;R?Xso,~F&TG/l.ZȽˣiQfMK-=32k< wlv}zslO?2UA5m2.H|/ Q 6f &MDc}nC=x8&ew}y˅ )/9(^2T`MO?Բ Sp߶ͅ^hϏ{Tz)HuTWZ+DAӔ1qD}e>ꫯ,@kQ4.cY9PmWPIh=KkOLl,nbŊ+/W\!A܂s)s.-RRBQ&~;6G>T`Nfݼysǣlz\ȬxѬ^x#wC!QM0 m6acמ>w]B.Ml2 lٲ֖hSO4^s+/B%#S J{, @hذ81b۾}kܸq` ֨2D}+zKI!RFUsX_۟ןQ,658eڵk}YM/?cPۘשIyuYvJ*iTdsNzʢw._ձU`h˖- {7<]֥jxL+M50n8K]UG3gδ>`G%#5_~QIPK_^zMx 믿v;vچf/QsMO7UFB{an}"]7y=0R]o_۶mm?>{c:}M߾}-}WiP c{}:]w4k .ReNѣy8V%>C{g<,ud& U %mApN3uMG8@fk>s N}[TyIe1=C6^p>8٤zi +Qei4M2^LXZh\Ucھ]g_SfWv,sOoUU4/OG؃bDƴ[/l}qt=V4{p4vrX`c4ʜ:P y Zں+W*RAP1 B Qn{ME;Ҥ5CAo:Ez3к<>JT7J]TMBoק7W^yfrO>ݶ Z׭[6oloiӦ٬MkV,ud6.,tIyk>mI3_|]h0@!áA4!R3xUbIk= ?ob4S{ԨQV^ӵgT2N0d]njc/X֯mk@J/F>$ܶo53[DR $={L_ KO^G9ORAcgLȣg;K/Y9DID 'ByAn*);L2PTbA>k7xTIM%bkyc}thAXiLK:'VyJj;ZLDcq X}V3?{$+VV뱦/yc&kvpxЌK *`h}Rzu- +cN'jTsʮӠTRR'Tmcm3pT W3#j)W Rf* V/_2T×id%V*~73=,=?ޣz\e7Mˆ6>Yf􇛑/f+#Au2& @jf {`d ٳ&x h?tݎ4h U $Tl2)V;ML MZfK $~

_i¹·=\0eb-F!\* 0+E+5z L- şK 0$2(R/*٨YGsLwqZ֠.`|cZi?zQ+! iօj JUStWpi@߯>kUPiKe B]EnU05D3bٲekT/pI_X0Q`鴧ݪ ~ڵ-Z;rCoG0HUW,4V\3ŗUe׊F1RtDctq'|e5X]i8^vDHUJQ_0:A2Z @*S>+#SIʦ_cJ,Z3﵋D#u Ysi *Jh&._zIpLcM,tm֬]fEۦ2?_%/<#_e1=^NT?[65 Кl$M&QpS?j]w 4B6gǂzt]0`DH]K'M~k‹&Z& qMHTj śIfQ&(}x ӖLe"( e߿?EAMGyIJ>C0P$X%u҉K Lij2~gDZޟQ>^ ?eyK.v> TW21jҤ9r]*Av ^pTMSqTZMYᎍmC{cW]uOЅ.M"G zkkCcu1-Xi?ZFi[fЪ^i:gkzjgÇ^J&+A?=m WUoyi^9u4F ZV z}i*yo2BUWg]3Oٚt)eժUvͣ*ck7J+]*L޽ EzTuvU :/+?{o;t{~n+f:t +^kyŕG [LR[ /=H 43]R3 =xl3U‡77#? W^y^mR edXkPB=]_D翶ƿH1_m&Ht9a'a'XPsPQ5lC *ӑ֋3eX+=McנoiʀӀ%E{c}>\^8hЃ<>xn3"ͺ4_ȏڪTOn59AW,ѽ xz_Ef I Ω*;RDCpl(B$*Ũ2ɓ',!+XxӀ: M,̆$ҌH3ý6р2)ɚm6@d^.%,$(}׿OcUV)cϞ=2@iѲyf7l" IDAT0W~}(8RJt $2s@&.Շ yeF HmZjwNx9 ]l߾kC.3qD[oիsȜ9r/ɏCs{w{q6f̘tɾD@Qɒ%d#OǺu,Cs#'}?K'PYD ߿gNTTǚ9*8ױ%+/188-ZdA?UZ@VBEWR;.g]v׻M6B s9ǝq.gzO{L" y -'EKs޲e1c}@FJ~ y GgWjs7mt rժUs+V d@s?Z@{Vwvf@5jFrɓ\o۹sgWn];#Fzi*UdA3Դ۷c ڵ+zۋNG˖-h]o PV-?(PC7k,I_n3,o}wO>v'J(a'Xʢ+X͆.,7_ʔ)-ju|Mǻu:vh=]e)p`B_*WطHm/:Tv2nj'3g$aÆpȜ9s\ܹ]ɒ%C>ٳgO̦I&7|ӲT2UV)/_|v\W_}?xWTt^uΞ=ݻu!p2̈́ l矟叅 Ua߾}.o޼VYG+z5oޜ_(`nͮqƮ^z)۲eML:&-[~< 9p ?2<^IK)^T\(eQM7dӦMP`צMj^IHۋΓN:eTSkKD=~3JAj)b'M^o8QN8۰a+\TETB2X;\vl@CV&l{;u{֩ZB7`OikHd۶m[tRsc TqG}5+]V=lZVtׯ_?;RpW~V!:eʔ)t֭sw4j?}yȐ!V@T]O?45*P]z!{'|裏UW]vm/R ysyƌ4 A9={Z@kѢE54pHOK/dzv[rۀD0 |xU@u6w. 53x`w5׸SO=RJ.]wNj׮mXnz'Ov}ݧ@]^rJ xX"PA4QKSi)O-,PS^ݻ[Las(Mt­StU`k֬YsSpM0=GTmS=E2\U>z ]qVkڵ4Ԅ4D{,1RE#Gwb׿n+u 4K:>O9eycS g_PHt P0\l th+o~Qٟm۶EE9b9?~f5O>n+͛,7xFvm1m/:+Wl, PsLԛE 9·?QQ@&9I E eD} W_}՝uY P X){My In\ǎSUe˗z%{۔믿>p[d .@ͺ׾yAC|PiE5mW4L4y-ھ.]MS2u~|aذaziѪI*M43O,AP h9es4X*ڶfEl2E9/.5ۋNQ9d`Z*7nM{',hpu)λTnR tG3=ɤIlztھ*+:^GMD-oZ,b!gN ;Ȝ&L`i Ω&(8WbE+}ܼys0,T*.XS0-3 ҄?#P@A#);-OOoHpԾDGqƣ(UAM"nL2U$s_/@bSPҏ JU\fri̺NJoMe-vjwjӦ=tƍ*ݥN;ͭ[2ɔ}۲e*Uz͛7ʡ+K/:N}\׾bA, *59f ri6l`=wX=V^m'^{V:9r}ϓ'm_IZ5X|~׶m[kѴiSs볦K./~>5CgZk4G>W~ShGv,+\cǎҨQ#%;~x롪!CcI+˗/lrj^W@F98tnՊnM5d9vt|ή\{<H@?ڷo9@^z+V5kZO__}SG%\b=Νke• [Je˖ κu뺇z2Ք\eqVf\rhK-`nOkذU!{׮1c;sm@Swq{Gn/-,x2'}F(޳ 7}yc[w)o[PM*s&rJ_]tZpL27ްz\Q ^tED}ibɅ^֯_f@F[y}/[H@0 Lҍr ''^(PתU˭]>4cs/nҳgO׽{wuV )So ͛7[[mt۶m^z 5+k~KzmtpbWeGGG#x2͚5&sKUT LfQw}>_e)H>V+h­OʤS_:}x̙)iݺuI4^vZ2嵯SN 3"/Q{ms@#8D<6m}/]]H %J <îk׮O>ťsNA/emn\U[oz}nw5kt=zHSYn2݊-je,}݈sNרQ#+sR q>@"P\ժUD;aпuApo ۴iQԊG>HojժeUڣfCd 2T6o7nիrSYfeZ mBpIerJ 裏5k ڿ˗/o=&NHpwÆ sիWw~ܶ)M4qgyfB7$2 !ԩSǕ)S}o߾C_UTɭ[͘1 &XSx493H\~WX=SyGNMٵk۷o5m dv irߚ5k8Hɒ%]98H 琴:,7n8 ޽Yf˖H8xl믿×_~˗<ꫯv|K 7`g 3SpNΝ;\rq@ YCR0`+W;w{]F8(_\۶mҥK]ӦMΝ;S}ܼy?l˪4wmPn#n=N:ǻ?]wunȐ!1hw_~,_2رoݺu`]ڟZjÔaϴ_e]v­ӭ[7ױcGIZ#w(SD ^B_*Wb=js{^r~zV\u*ȩ DۺufΜn&~2! ٳ s@2aMkpN%8)͙3Νە,Y2W={@ߤIܛoi_*تUڇh)_|W-~j=_};]R>O'J 'τH={ۻwСC>e QPnĉvN dEޢ*9GS?g1Sfa^@iŋ[)Ge'J(L^ J)=IJXUZֱi&[^wy䋶ߑyI'}YSO=_@RzUYL(8ʒӿYsxILyڶm.]jvܙիW.]XI0emذ͛7%KJvmGlnʔ)nQFʗ5j?}hȐ!˭oox[vkvCCK?lAHۋNv6Ǝ/ tbŊYyȮ]W^yOmڴ9<4h>|iܲe.\B}W*Q֘M} 'SN9%h;V owa﹯>e Fi#SdzB V*'ty^t: vUe%#TXJZ7o_\S5eyVJ ~i&z-3mAh9N {ok6$~[>>3On_BD&5QXn/9$e\)}k Ez@VV Y, B%tRJ@2"TVO>O1Y`AV.,v/]Tnݺ;m]eF(pn⋭P,ᶧ,pTRف]z=͜9J@zSY`ܢGe-[fe\@ӶmZ.R{ڵkNԛOÞH/'Ϗyύ}L>n+m…6qBAN߿e*{D*+ӦMs>U5QXM.UUQ1cgˁj&*mj"}ׯ @fFpIE'(J_nΜ9.wl6e$Ui1i$$V6JF̯|^ي2T-igv{A2 ^b y x)Ƃ 'zҺ(Obz}jSֲӲ߱S@l*+4 2ʊ&=jNU/ф+2PeOs.B yT E6. ) yR4AHe(5V0U%xZ_y9 IiS=e9bSxqR\eQ,$EʒBY#/eh?H(ZTJZF^ujV Ӆ% ~TrSe17o f3:ȪUeEԩSS%TB+*SGs*(Mh\2+s@ҬbŊW׮]_.ڴicL mVJߏϼp"*TDTRETD%$Efiq[H3&meI2ebsuwyߣn/:ZՇh'k/eL3:ȪYee„ 0S6Zwy ܮX%D>X!f&Z8Pʛ r 꿧5Q7ʇygVرcX2׼* ֺukOlh,Ԍ۬Ie,A޽-H> Ųpkg}f)P>xUY %RM\xMTl׮]!S]BJ^g]rء>h}>Ӱ(cRˌ1@ ȜbE%U$JAH UDBDeM֮]XLD?5 ?meN_Nϟ(ӧOp[pTo P:IEZU| IDATgʕ߿eG_%H4񪲲g|r.Ӻy{5k̮f̘aI%ZEmz ROYh͚5]Æ ߪr&k,DFpHrBW zE$(;OY|ڶZlbEE[de\>}\CVYQU.5Uu]si|,X`UVѣ۹skԨM̑#ׯ_VVƍ]ݺu]&M~*(Lmz=N:VFCk?w:t{mbu, #8EJjn޼ 6կ_?SM<(~u[n m֞_puGͣqYgqYPN*gv@8&TB_}Ue%cʪ"Udͣ䂴0`e+Ν;׽1 R^>H?W@׼yspDgw4~WDRo 5hЀD ,hCD!8K,i3DLw֭[,@49Ԕe`VΝ%1^[@DpHJe2%L`P H fWx@`[nu6l@#s@ (md~ Wvm7h ׾}{w׆\fĉrիWs@(m1cD]SNbCp *gxA x k 8r*ѦK~K=$7s(8\Ν]\m@駟]FYJZfĈnԩʔ){תU+wqf͚ݻwJ*5jN0D^As@J,:ˍ7eϞ݂7 Νp;?X& .@Xd 0znƍ$5s=7]Y9 H쳻]s^z)?$q,7A=~," ,er3IkFMCZ PR\]޼y9 n޼5nիW/25ke^~2SA1[]NpծxDtHr,BYJ,%d*wQpÚ5k ڿUpɒ%V\rM(c\rnܹרQ#~0 V28(矻M6Yɬ׻eWhѤ|Hk9Vf믿n׭[?YH6nMp=Y2| Px*CO D7|^W_J(n&֬Y㏰oݺmذ!i^W0{rs的dmY?CUV㎳.`2jԨ4.+|]׮]ol@b]4h{.^zҼn;LdY^ʆy due)/^<[+XfR3fLe:ud_$fk,* Bp)C\rnܹШQ# e)o]{!Q[oER&4obڴi/_Ukwdl|.Cp%{-fiС]ve#G7|,^/ 9 ȑ-oW̔gsi'$k5\5˕HW_\f<Y:#]ޝ;w3f{=3)˕++_\ٳVZǏoϩSN܃U|r;vO|s׿#yU{u .Xpn̘ܧ3ϱٽnՊՁ^8J9sdK^heڵZG/_>w?[l[dcV~SfMw738#m1}p:{}_={SO=?P'3~H8rcM瀣w\2?vseʔ)ɓ'촆 իWx5mԕ+Wk+m1}X!8rox36lؐ4wڵO׫>ׯϔ[? /K !1Q|tǥ"s@SOٝwyo&=n…n˖-tꫯ?t&Mr|[t+Rkٲ{ 'x@J{k{]tܹs`Ŕ)S$ *cǺ/&iGe <؍7Νs9/ϣ}'ؿu?|pw'˿nݺnժUaQv_=ٳ-lРA^z>]z'kױcG=sLu}wm2w}+6u\|AWjU9@2J*egכY^s[vH% [xq~WcaÆY/ossm۶ɿݻw[ʕ+x̿-ݬY3yfG+US3<ӖѺeqc?>{yn߾}e5UVGu=Pxg/X< 5> )d)Y-CA-&GFZ7v ԩSݬYl`+LOJS?;Bw SxS0MY\̵+"(PY?|Λ8X9e~JR*駟̳{+V&*V(& ڏ;8Wn]3HT nl۶+\U|IwZ|gF,Q@N)r&L˗/o#n2=ʆԄ9sv,x'8hVf|׬Yfx4k_cppX=O(]"|Ӆ@ףq8#SvsUz )KiSN`错n:_a(ϧ{APk~ _w_T25TbcwX?<تd'e䦨\ǻ @VJ*#FXV2E=-%8 N:֧EY}n:4?VុN93~ [zuvr+VVp}-/ WV3- zE0!?~})_`b,JMՊjEƓ~zO*a)Z@f§phq,(Y*gDWVu`;W*Jݦ5k\/J,L T6\jɓ'p_?`M6Y_;w~Y7JO?ymM܉Du*gy7z}VSkaٲeDG<\'-?'s9n+k@̂ aUlvoW=W^ K=A$ ʕ+Νk35jA_jLᅬSgy&}PiSe$UV_Y=`@^ҥ$P*X^d^i8 co;2`؃>hYX]&Y9餓j*;wn}v-Zp ZצM['w1QkSo;{)-TSA7O}v̧^<% ׺uk dJjKzjc k]~,>\wqjJ>^R9 85o͛|#13 -Zdveh4`{ P6jߓxn?3H rW_}mUvk xwqe.}>#[n?tW\qE>;-h`ԭ+#-ꪫ\flrdS0di-Ȥ J2=_,\zυӴiS^z, /WC퓂GKR+:N&Lp{LE?O&Mȑ#-pWV-+iONZz)`GQ=K 0Bp ڸaS;1ͪ7o9R:.Ns[3%0uꩧɓ'|rװaCˤxlV~f8PLT\QΜ9&;׫އh ]?=Cnʔ)@El@jV .]XIt )(OÇYh GYhVjh*K`4ZFmlٲ;}ڧڵk R*Vxqkw>t~-\Ђ]wkР>5zrsݧl=z1 @GZ2f0 8& .A_ey裏c=>,~ؼ;^c^Gi}|LO=Ro=P~p*U ,@lb3 )bҤI6"E-[Z 42ݔQ袋ص^kЀ3*T( /5jT?x;J}'/`O?O ۷lq駟H*sF{J\.7n RJYJ?eN;4e)HUV_[Gs$Oڞi[ngK)P?M^| k9 S:xˑ=[*=P񽠘fdg>tRӠʜP1(.Jv)k瞳!CX2rUrLek[Ǟ={ڵkۀ/^\Q"ɡSOm۶Af,saA9s4Rg2JѢES|5ey9Bф4}Er$ր쟲HtdZN=l`= <=񦀔Dk-# B)N9>-Kȣayl ʡyYڎTvK^1WK j֭Oni~,]R-tLݩbzmT܆ "du@w­ZV?tnMr$f dx)H87Ge-C)qTFQ֜GYq/ʕ+2x,9S,0l:e[WH{Sɴ~U@Pq-R~~E*uh"+925;sՉy;G}AJ4ȵo>Pj1)Өz4ZzuvAG Gw:u WYz*gy7z}VT/%J,ꫯZOXA<{]:'|yj2zA,s$sdoqY[g̘ac1zhU4ܹs[O!C}?1=(eCJ.mTQn&暴_kږL?4fA,KfK" |S<.sMiw3!M5*N!+gVOOOir=n+"ή2Rpq0zkzg<%[n唟'u>k>  ^3EpSͷ 'Rt%LsGAn7+pZz~z*oNQBRrHy{^#H_jzK1v>O.ޫ^TQ>m2\DN8wYgS,&m":zj~%e&}]>k{;w6|xGydYzVMc`f9];Mq `8+s~*P.X^P {ߞd6l 3,-^x6d !>NfB dUwhԑgܞ|ɽlRMp2_*yI 6"<Q8_X]a{ǔ:{ߝΑ<{6K:s2=Z?ۏᄏ}w+}Cɠ-Qa+϶Ėuxu :N{#Y^7xc%tr\+~_`%xqiΰ\X W izhze+O}S5ngT![2Jg?+  ȼRE,α[fg:;\1x-\0e_bE07Qk_ZktW"`﨣JYm% W ,HE]D+XY6Gi)zܽ@l{!6]#6|MozS ^|AA0Sgz_McËadzau.BGsj+_d\g?;a)s5Rg-Bc;_}Fcvl_1S uʰc8ɲ\q׾A݌lm IDAT00WƒRȦw[pOL&URIO07  ѡw1X"=K峃+(!vmGydBgFBBRoy[R094~ٮA0D!(/~1L<%={,}PFHwߛ-[a]vI~A* Ӫ:JmxS@Dn鏔^&Hʷ|S}2J-Y$JHe<0e?pVRgjÿ`b]ʆn1>>"d^veoq2D#ɬѝ4;  ӫ.aq]r8Qc[J; 0Vpۧ8sF΅\{X<;}ӟNxs+(y+^1=GQ2^ƛ - \%6_6Li]kX OLR㠔>|{KUxn~gmL]m},{>فzcէ,de`M'}lj8jͭڪ8U~mۑũoߞ?o~UB iv~o]%L.!(S6/Άr?p]UՐR0L hQK"  2RY1v,3o`P5<U)[aM*T+O3կNsĨǠ1 Dۑk'C8uf}sS{%$e&d]d5}iT9ji=q. "2(2T"AAW{Y6#|e,Ym%mr"rr2*%+@nOuSu]2 8 S)CFB[x^I<ɣ^$:?v[; \"Vp+Mog8 s!N)sIH\rIQ /L˾QD֌웜$J>XF8"{w] qQPcbVۘ'U|kۯyds$,3=UZ]{@Zfٲec*馛U'́*3[ou*͙{u)eJdt]^~ƭ( A(K4e2 鮻5d5ã #S?%/yID`vlyD  #+Ɵ}ඝqvatۓ8T"Z]֙r}'U8G?Jqsʞr)X14yJ96mr7٩vdƫ4(Xm{Kf<~'{SI4ǎۦL\j|0hJzeGi?q~ZlOfB6|ԃJf ,T0RP'g/{vvu@'Oӧu?AXה҇%]G}t>t-]3AC!*$,%Qu+W0,eiKg…j%HY嬹.5jCi{&)۫KYX%}r d p}^l|?pOY޲b3't҄.\AL3Ӥs28DTüh\2@Mh%[TNm 9?P>튖TQik6J-xL=hp p|XȲau9Glz,ls- ӶEuf b+@AS'W6.a[ܨ*[`_F__vk}Mد`8&Oe[\ͧ$%TTbsgv됵&U6Ñ3vJ3ֿۿMU|9R84 :k<)aE(A9'onڻ[z{nz>zߜҀD{7\V(Fstgjks!LVUy\#HZHk^g>Q3gCY2 $ι~ _ྂAUriK {gc_Nwry`Aa SO}rccp\.2EK׮,_#p*[ (@:Fgܛdf+h:O mg.\A1D/2t7!&cl䞅#F"gK.M͒=x)aQAd~R#~2w󝩄r pl`Y'\+8$D@aR ђb͡ݮR']>[</AH7Nx"Ey U3^fxD4E4KfK" Ǘw⥽UfX8'{^rqalU.&ÀM*N&u2!dwIR춌,rmM˔+$ ˕s˼`˞+[LtbQxdmmr}cIWF_0[pr*ו^AgA kT\#M +{?+ݕ\^h;=Wz.$pbE &+@W?@\z9sv&ڞyv+tݯ:<0e޶mscX.i9!O8?W_}u z;j#t3srE]{cS*}8d fuei;s `y?P C.% $ e3d{Q#{E2~"P)Ǡ )5C/ ѧtSde{ 2Nlu82"r=xb4}C sFT4c:pL`6qv@ 8fS~^ELʕOL"C_'e֙,,q J3cALD) GlvZ*ᨼ^M(!N`8az "A qmryRp{ueV!g( G2S+2W'Υj'W~gowBБ9,c<~|^8 AJWà,Fhk*Lv I? gyZd{Sbu=dD#+ ٯ7xc7ouҴJsAA0ޭG6=}%rYL>#N ##ETY-vu4\ooFkE;ݮՐܫ^"Dy8 Fae %`6g?+ ©#˧KQ{5T"HH w=nxo*wk#XZk˂RJMw/3h 0 b 8+ُ2T_A|8mdt}:1̢ e-=]xI쒉”= !SgIsyyMx>ˀSij݈*Y"E~Dk"l{lbyu+WP]Ƒd;᫼_ _uc{t ~`pQ9|oȾYo}u>~>e\a?K}goeai:W3 q. 09+%rHF㹎A"K lwQFmWF&}.-$ˮZR% J+N8'Yzd|ɩd)u뭷~ᑉslelI{|vRe#9@e;KCF/D^BY#~lSېCPĿcP8e&7q-Jhrf/, aQ5LX eX Au`{U.cM ]wݕD"g*V/$`'7 .eQеmM`u+W0`XAk*ҞUt9Su2 C.3g MIv!AAAR}J3OARk3beʜ@A4@U5jYHR+7X5mOӋ% 9]AD3"zZ6Ds˺ǎ^_җF؊ޓ.ˏy{z5c<9GUcIþ>9L4_`)Kܝdg'l-ld># [S.fJ89cm㸗i~=uT[ ;ʾzꩩ`~"nx:e 1DP!x}}͂ 7=,Eb;A`}ɈJbBϷeKz4XqStJ VN 83ޛ97^;p?pM89oMF ֲ!8 휔ܲDsb*-@!m;2zRù3xSL=1 eȀ E6P޶y3Ȋ)ocnޑGI-{8ʞ$7 x/:"lwl[n% pwD}g!w3?`OB~tM[Y ,&&C*gZl:J F/96ʲJLQ,uA@i=.T 1gmWKs, ϴ GM}Gm>ި=;_އ2ex$.X3  ~F*#WGzsLOAPOB.a>BB-Zʚε+V>72akSPd)[a/˅\0š,ٜ/??@"X!׵hѢB0zޗܶ!"L{emի{9e5eە=Y/TPJuF1B$! f7R:7yMz<{8>Mvw};C%Av~& "(4/Y}6,k_ډDՔ19(2 &A+^s=}e_l}8w 0̹;=t,⛽3.F %(&)ۜ+<|7'/퍯9Q"99ozӛRGwzN2ޔnٲeٯ>?al0۱oNAV? >_*kWk,h}2f8@^.]ed5Ѵ@|Ȅ2`W&;u1h.Co\sR4rʲ!R( Dϖ}ۦ^r]0K/?#^p2,*ՔwĎ\UyF$`:A. 9e0/'~q.wg7Łx_.Kfbs'{O l˘[$\:dem&keY͔E3Yc/~'9Ҷe3!()%ts, md3rd«oU?aNA㐱'{Q)ϩ(/zыRYC9w&1.g/8V.GUJʦK1[8Dl;z<% h*jQJS9L| m'][%grP31#{ゥ4r<#:n/ze!zAA.`L 9s `Oag=S랎\sM +Wkrޚ^}M'y?K?\m2mGv~oU{PsJ5*emVwى9'Y*2= sz)׈lp%x^w}wꯦUW]2nε;#e*]wݕJ?L}|V>=dARk!SVOHЮ2vq4?yZrze.\x*H\`Z\&4#x_ٸ6&Kp6!4&=ʛ}ecߔ섬U*%gFk0S=裩{] J. \AA04>`oJe ַ>CXQnKWʤ}_g?KXǮ|!Ww qT^pѢy7}=dyp _H?’O&An~=V*`SΎ=ZVŋ'1Jv8eq1+}/SO]2evl0zʖ5Lft,YבL?A0{! `*sENGt\͌%Z{DN/#MkE?_% iD+2=zh||ʅq g)LY.tMﵾC=4uJ2XCD=җuiV\uh.?IU͏T޲L1[eB#NN:i9E/9?;%5vx2G}#Izbߟ .cU7i3z}7LX׾1~l)PLUvZV{)iʘ#hXXBAƾr7?#:O̹2 Yk-nu#6go}+{u)u~a*zWaDkAo;]G1[g mϲ Ɲ2}\~G[o9&9̝w5!D`ŹzϹ) ` JokѲ/~oU{s^X¯l+H%_oC*9m~UDYG0!֖ɹN/9|ӻl]?:\5_CIJeєzt3 '^ضXoeVKd Q|Lq.1Kr $͂vIYb3O {<1Tʴw Pf[W2[ n%G5\# HSv?V<묳:}1CJ/Jaݛ1ߣo|{gUef#-xK^{W-I 8⬯>& .=S_4|j%K$g(ò% ?XhR?XlYzqhVNd.|A.BoZ岲 "̷hYpd05,S:e;rɞ˙QǹqS'69۶9Ⱥ׽.198\+ +sOcO0-۶ j);B]iـ놨ٖ%nl…^Z{ aKa9se*ϕǗw⥩ X86sBz衴zҥQW>Q9]uݖ+!i:$ ጝ~ti}:EG^ ;?Cl# u*?KRN6xЄ-(jDWcX=W"3?S.ǣi̾#T#[Qޮv*IIbR#`N6P`Fa`R|>!BVfXr\ƞ6RP^2&Pf.D.+˗EehY\0;p9odOaW*(QC6{:ob!r뜍՜/`١mrt]:EӋTv]̥~0{٠s{\e61d.\Њ#<A+unݼ|]E+״!]{oʧ$ V' h6 mJT*?8d͹MTlгin2.eQfVoAm}fJBey2{՗>(M$$µ1%wA0+ 2#s)sn6p%LsJ ,qTs$3Lo]vI{_d=A0jBﰴEGDuD܇#& 7YJ^o~s6܆۴n{kJQ_W%"uR{A_|IhD =' 7xoc\v6;F#er^,B-^82m{ {6V_^AxM,.ydk E2*`L*' !(ؚԎSgqp2E3,g/v9܌DgCܦ᭷ޚO>y|ozjazٲ1#sfyto۶]cX}xMoRʶ2{.#Y3W\qE*'COY8w1"-"xP"Z6cay)T do M>_`yMNۦ ~F}1ف1Z7U;Cn+;M,G0#;Hϙ2v`&ΕUv$n5c<*O[V?L'=^'pB#kryH8se޼v<p@G{ v0o:o\]XdIaD*bHƬ\DA~Q=gǰ 2?? wSX*lٜ}ٍ|vd!/ꫯxo FŴs+W>{7Ź3<3ad1xd_1R Jy(QfqA|gr(Yڶɨ#AFG+Ail:؆mp Dw3N3{CY .72*I4:'xYn<պq6E)D"`Q0z026frթeqm?Ⱦ1|^ߥG߱kL;4c_WAV[lIϭ `62"-"xP"Z6aq+& d]`Arseecć~xL~Ȗd+Kj|}3]:QaY1 &&#͘%#@dn{sc7w^SپmfWZ.8m)U3K\"8ugY|$?/q |].xTǰx|dα,W??d>e}Y9+(jr9 {v}eƶqTo2HNVQ2? n|/xǭ>c D* D`cT2#G-勞]E?cH5ᡚvgLDB֕5(@ndDX69?{m2dLcv q&p+U&ʒـ% d!WRR1/{΃}CIb^m8m7[ Bpp+!fq:ߜ2hw`f emuٹ;:"Z6]V?;m;%75.Hš <"ɜ(fr%s)llsIZJd|p&mr6u,[g)i7^Xm[_q <~Jv%c>eSsys.6i]FX1N04^uh[w)'ܶӥfuCm5ĩG2YmTUA{2_JZ|. -AsgՁ˘K/M/.Ƅ2@*)WG>! Flery&G}+;V3isd2. hR&oXsqL([ 7ԡ"lW * p@5JIPV9O__?USnl`%(K^~QnAd^[[9:*{lrw5I&youy\{(Įp ;DAA5 W**A X[e 9wޭʍ6 m_={Y%  1mʆJKz00痈YesWFB[l|Ϊ{, M(Gܺ!(AѕwuWrV)kF%!]]OlGtm,m0}g[dIze&۶pmwW\X^;C2_Ž]ѕrD25$2؈fgC#PHdKN%?x62;s:NJtx;ߙy١?3.Am8mP) ZO!Qy"AͨeK"r6w{Wbb6+{O\9e*T SKY_}oÔp"g2>\8M"\uIjjW>+]"񖽎XA0<{a"c NU%͆t 3lf${8Y>ϥ#qA`Sܶ\rS2vXnHvADy枱^{Mdzqw#v<ԛ(K!_b9M Ќ epOی͝VĶ;U׭djI'+8>AUu(}#>Ǯ>rpo曟 XҶ*u=d :v^s^+J9?>Uc<7}[Ud8Ag!'2 oHdd8hDNed(4ܯnX&}ӱ9R"}P^Eee8dA7F.9^%= ^קN_98jgR%rԲZAe"8H93sI&ۭpDDsVʿU?{mpbx?u [WFA0 X3/w.*eZ5Wo"E RG*6jo,jc*ls9'dt IDAT[ @D*hT1?4+[30_J؂^mB̏-"N2soRc< ?+$<ȾVf9na9:m"WmU*%^W۞/iˢTBK?|^;4.UDd=u XA0jB :QW1[pT*p wY"9՞M0Σ%mm2H887d[sqyp-C֙z9}k.˔~YGl9ukbyvmS& GmQm:]s6DNd"}qJ,6^`iQ =viR2j908Μ܄]hꪫT\c[4Ak71 QK.MvpÖ]lYoM6)gUA0/ vQH""Ua=U@̷NU vu4߱yl7w5!f+D:#{Q#; IclJ~Wg>^%\_g+e;`GR}2 UuLd+Fr !:C/Ngy.A0ϣ۶nKGshF>h97N#)e qyuu߫ %0%RᬳΪڢ"hMc,74g!;[0H_Qx;8 F=a5 Z}nc`(3$Y2ňar A߫U&dozrr`JMF\Y}.ʊM叕O;|Dvawǀ-.5Dz$]q߾6H~0#e幅Gq/`]euA'Tym `2]Uۺsw9=0q^2Vx>YKD  XWq.A8=q믿>E|:fC ~mn ™,/9:EQWZ֣,$Q[~-6d h nXWy.4F gG{{+z[Q7Wgwt<EX~G[o9H0 Pw߭X-X }KW>&qB kB%ku譫wjҿ][tb֌% {GT6N`:T曯wG D%- O 2qZB\۶֥JcT-D˶ѻj7 ŹO#1o%uhDmmlM"8Dr+SEQK"]ݶۜ]VaS "mHtt68AO6|z/}{[I`$>ņ9wY_Յ>-2 rcv?˵[`ʎ_#!LQ-*k/ˠxT__) _ '[xS73eTy6( F܌ %(QIFV* ,X] QlT|(mkLv馛&rK:e{f%6ozXtG;8Bk1rqnqi ٌ5z͆6Ao]~ߙ5ʛɨ25Qoo8!L٫i2PD,7pm4FK.}1`>)կl\w:ώrzc7TuCj%%ܻz+sݾO옙W&?D@sJ; 2i~flݬ,Ǽ=po~ JX 3&Tvwl,9dZz$uoT|Vh7!d]vYa+#PKp~K,I5˿GDi|ePj )~ꩧP pK.@)c+om[u޷O<1`ptv~/97/T=TcY<;|z?zǽ_q0 `Ok>)ltuq` zmm"MR'~M74Aܘu+n)X,KJhWӛ+E\ z/*ۆq-X`%]4]kώYe]|SڜY=Ƥ0~8*"r| e$g}պ5;yӁlFsͿ)`3 SCh"w}i9\';1%r62|A'oS=;4o"϶O>y1 "aTڑ伊"\]N/۷,h2/O;wmJ~쪫)~^ڰo6R}.oA|`^{%"&U>h}ggsox;fc7/]9!+׵V_~v(+3FQLY|Gphc%湺r {2uKC`] Z>ȶW] _µJ>&H_"]K epgdg~VΞe=Y\20VR]7 tQ^c{e&<hVrp|vc<2{iWJwFuAA0xv `1"/mEЊ\{&R^zѡi\]o~sbɔdyEC[Tp[ruف2,!=>ke=Np"\g<~,O>p8pMdrcY`(Z4^qQfќĘ5>S:[ރ>8Һ%=@r5dtӸdW){&ۊ.:NU–;el_֑?3?Ⱦo % 2It箂s'CYg("Ft˫.%{yܜZޛ` Fr̺lk~/lOefv92 DL+ 3ŹGѯt~3/b>ԑ,>KT}h6D_douEЊw}2ws9'c}2w5dz\O[mU$I9aϭTbIཱུ֜-H MQؗ5\q5&`iY/c_ԍј'R5APS{Ҝ~Yg~1CI{'m[fl0R/{7|nas(,A$uWe(!Cn7Alf΋suѯgDsZ_S~Ç(k:\ 8ɰ]+AۯdQ9hۯm_0A.u'Nw{Db@?"GED7o^b[gN_>_vl\a2c [۹Fb*+顇JˉK.M"Tb˖-KNY\"-_g9X9Wm|%ˋ$kuJ|qpGlCWaD֣,$QPX_g US(@ \P Dy g|D#!0/W+7wr}o{o?aswAxy\*A!`a%AJAL2-\uѯgtɈ~/wߝ,"'K2n}Y3>8AAA2-\uѯg(rϕ"&EFtpζ DptFEtD Gtp; αs3EY[ۈvڵ~X-X}9W>&qN9~{xcܶnjl7|o]cnm6%!ܵe\M3er fTKe2W a!zy=H76v׶McQB {֝v$S=j[|>fzLrkԵ `1-\uѯgDgK#E_#!hHKUr~wO"oAL87z] K[~("^?Ns/z/xS&l/'gt׽.ؚn}G9@@"S=lΣ}F"7->Q"& ʍr-)+}GE^׶/zы@b $!MIG͕W$T^5Ohj[7Ar#xԶzdCp~4*]_ƕmpկN⛒L_J몫Jvg>+//YJW T?/2dUۥl?Q7w/'>e1 f'SՎDbAa=ꨣO%wyz BBq? o:]y睩M,K.dbD[c~nϨ<@ H.mg=uw6-gjA5AA3-bXz` JXwy+zeyɈ[S&~%%LG\'Mr6L &~X0V2o`+/Kj>)'ӑv-nmN}cVE`9oucZ1g9?RG7P&%`3HrE>$C h}MI=jCbΒƯ$meYЄ(̄r;iNu?A cb@v .Ҧxֵ\ ɜ.ƠDuN$^+9D|EGLP*;=$cΛc=6ʮ[Ƙ J^aJd &D|!o̶v) /Le\=qz9.Ғж6ձyZ0v> wqG2g=p^zugY1ۀ(VY>3|d"H\/(_ >д̿9;Q!DfO_n=K駟6gδ@&4-/ũa-pJ*#em5l0x/2{ON%.l>3~sap* 92a*ۑd،MA^~{(HSnsO߱VQp^ikwvL Onَ c)ii;JAL87z]Tee%m=0~/ l OBF<,G8~tz0`;wxG+5Z}ޗ2$i]wM3*gm-^*.Z(Oc9GM7ݔ‰o=m48'^|8j (CsIч?u)iTgCmGDkxC[tDT%>>˱/(iYiFV 9Q M*\Y`JlTX`/5 b1\')ZY8ƽXpa;a:ڑRY'T$x>6A_Qm"x&)- NNsbt6-m3m-W  X9 .˞e22m=0~/bApƹ{oy".yȥR˒=x09a[]zG!##[jdDdyFڶ~4+MlC{`k[/!ִϾugŒ\!PB V3~ߑ¼`D~˺?x#70#vȎ6`6WS}$ihl IHa@߲.(ވ &'*DVA0WMH!gA}Ѿcd;ڝ^y)wr9fA>} 3AgY3 v=W>U.-ol[a~lDqga9rO|:#`0R'<_{dL9ɬm_:QEVUjBɠCD&cTLG/<< r_2 ]')="7xNYu>1+̰sk 1{syCF LS T#m<7y9pEȆokWڝtNtҋgVJ Kv*0/Wec+HڦxAA0 _DЊdi+* IDAT皗o碨UMrRe2{2x#~ޏ(~7tH259>NV%ԫF-sOEt?9· uUz2*`Xt-f~%!+Q.G=#{QG8-ǀ'. O#8" >Ɖl1&L)HMXæ}UNއO?=?V~xK/MN;'(YVZ:\5뮻WUqLWkC.qWvoll,KpS3q6s;x#exu[ɼOl?\S:d *Ose)sDGl"73cA0Uwv~Knj\6UHZYE?ϔ^7ˆmT+k]H.kkwvLڟ~m:UpWWw6-'{K  V\<0 eu%r#KS6dy0GrWR]qWoU$ ]sz2wV~d?bFFt =D@ygx5_k[=(Fuq7~](#<}--(ވmsdB=2^>٪&Zה[LqFs8nh,q+0oN%!>~N׺ms12|_ML} "=g o果A+_.([6,6s/4>AGYmۿrm̝Oi;NMAzp2>3SFݱjw6DGY[EٽCMe 'Ɵ=a7Džz}hAo'[9UHaر J[Qmlz&mZc? `\YB2Eտ |^O}m82 ~. =9< s!m+;KiFQthG\>;>Q@fsL6b]s Deʔ"?OW5߿ yuŊn햜}_җz\sM6BZAyr:#K\"u}|ɴzf k}Vd\۴3hx'$J&϶yt =C)x~XoO˽O|"_ qRzY|V `4<|7'/퍯2:sAAA3!A)Si}A}LY]2d&$oOez=k2&R@aŒ2sQ#˨RH586JӍp9!@mdlJ nٲe??M>2aD0e*+LVN;D~˺oN{sA76U0*d@ێǘr +_ʵU۸s2іl]p|?5A{bʄ^s]-ZWV~AA0~;T~*XLS1g>A\A0 ;DodTg/%IM8ryDe&lT>NHaD~iғz7I.,ܼjn{SO9a?GiӼ2\,ګ9F5~_M=W*̝GuT;N`~0(sOzp R٫8'@AA0q. wD "`Y1TԸ?| _J4/Z.qƹ?CPp4,oюf%>d׿NN\~cWU+"es8.{^ze z~xwa PD~?ONj;?G;Kfe\,6?wd{پ9w@$CVxGT`4)=C=4  f!A`f?HOL}߰e6q%E RpC,/E.dme>mٿQ 3ϫc6؏`mJA7ʈ3!6]T!X-׾6UHȁ|+Sahlo9GVr+:1(>[ޒ~'ұWr@LХK&yXE?gQ= f7!ADow"w|?8-A 9cy}b 1`x|xo|O.ڱ}-^k,f=e8P(z-6hT5  ؀vPWp۝wޙٻxR]uWҤnD?*ERddD(D+C$IRFJg*:s8^K>L㱝}>"9w/v.¹l%M_~yB 6 mi`|&}V9_""")8'"" 9x?E*T { k߯bNĻS<t;ӂx dΝ;[@ϠA\Jlʔ)c&(8' 9?lk~Ĝ_P>>SIqyvrNΉ)w~gœ2sEDDDDDA3#=(iڪU+פI4Ys̱Zz~w ;tKf/g_)8' &0ѣGYf٤{ŋ`I¹'ߙꫯڤ;w ._fULQSwKx… Ϙ9:}EDD$: Ή$fFN33?XHꊉ=is.]gs邉KNofFRj?3rYm˨q?f[J!Rd%CǙSN)g]$3ܪUs~-[f%AIlIɜ'8Dz BZ>*UP!mڴ=POr?}tz9W6mM |? hРAEDD$cSpNDD$47r+~bfk`A8?m{1 *A&@|]qV.x͗/Yfeyٳg?o@--y͛7efOF2e KGg#:u0 ʕ+m2'[2Cw5ߛovȸB@JR5RdB'~Nzڵ;v֨Q#ݴiU ÞLcBFyV [0a}?%'8~<7F\&y."""[*""YfjHfw9~_&q2dwɲyGf8|x&Olٕ|۲eK{+Y:usm&P״iS;&>lDg#g%O2žx~?`;ߣi.>v&z̜9Ρ)?~7~ݺued Χ9bU ҬY3c]l_y IVXw&RpD~:=駟Zi`n⿯"""R58esnǶ:""ehfdVFݓ&!g\'|}G es,]> ɾر]" 1lT6HV$1.[q>r_|MP|l֯_H:RYK44`9zY2qI mf=|{yBE&஻~Zd}޽2EG6u]dڵ>z-[c=ZnmYg䒳~I(x͛7IP2ɼ&;zt>CW8ǥD1[nu J?ޭ]UTI_DD$(8'""J47)682x+Hkh^\rK.e(Z|-CVYپ}{קO ;:A:`^)ƍ%KXp.98p`Y~=9~L:챗JDD$O>9k{tEDDYJ,nɞ4W${"\0`塞uI0.7ܹsaÆ%/X,%J$k. rիWO`,rP k_1119EDDDDD$S月*^(g p?'-/YB|,)K9L_$|F"PrZ? ~)mNV1" 0LZߜ?ʠ߿_JDDDD$SpNDDDDDnJZ4عs 5kָSN|lR,8U~}Wti.\ilXG;>AժU]V\&M.C9sXXɜ\rʕ5...If/^JQ&QDŽ̙3=DܪU\||۳g5k[l[h_paF#N4zybW$=jժeѣplӦ{衇|ӧ>ЋsswӦM/{!B] .Yp~aHHFeqeY._|f͚龭d-7ove˖vY,Bq1 KHH+=#x}|E#2z#sW]ueըQ%[ϘC]cǎm5rs6mtd5obRJ#G<+C-O0>{ݰaC{OOĉ,w"""""")8'""Fx'2Ķзf˖-Ә߭[77p@zl7ne#pH?N:Y*2J2>v3gδǏY>{Ȥ;rHf|x|cŊI~ѣ]<8駟Z?ky!u쿯"رcVrejߌcϾ}lKm۶2""""9)8'""D^t (]yI_\Ν( 3ݲeKc޾}e0BY'GuժUs#Fp={p-ZpzWvuuO?Kl],c>iӦnm_-[eܹ}֭s[nu_|{7#@Ƕ>1H>7dc⻟}4Y$\'Mvͷ~}Qg4=+RHn:d ߦK.B; !CƘ?2SZZJSf'Ld\~^!Qؔxu׹'N]fɒ%{sN믿nOn)o}YN)J2q<7N\,d2;tͫH&S@DD$0z1C_ٳg[2Κ4ibEǏwݻwA+Wu^ "Q. Njۮ]"敋?H{Ydy) FY3ʠѣ\rv?$@}!=Fi5SVw/_K o'1 fWX1XJs56y87vgυ;ܲDDϩO>䬭Hz-;|#`2իWg,DZj_|΃*T`<'YL:b3ɞɓ-!87fk dnvZF"V^mYl|B0)ճgOˀJIIѼ8s$ [oKZiw9#@gx<7|2 'p{0ĹcR.\g}/Df!""""ɩC "")U<(D)#GXJ̀LomvAF N:6n[#E?ޱĦ ="]O$ɀPa6;=f>x`(2NY( OI]DW&sΆqYV J-"'3_y%=^IK{/Hz#D!KsM`9%"=Ц% l8$bbbXs­[&d&d29)d'c8GӯDD$ʊ3MgFÜ9sܽ ,4i֯_o![iӦbeYϔj"Ez18 ]b[ݢE < lEbi޼ NS#Gx=~0@FFYn5j԰ٷzY ,zΐBk׮رcv O9٨8e|1߹sg جY3X%zm'޷m۶L>(L #FX vޛ|'8zN xyyAPJ(>?giɀ:7x#>2\6'2'f^pw?sNO;zl1@E@7v u<$g3nQfBB"Zv2x#'|n\v @ l67K9M@I\=8 *dkAId!ٜ198G+}^{d6|FH֣d9qKG|֍7ZvU{xho!J aƲ3Ao_;' C$Ҏ?K$cv8ـ z%;#=&2>osΜ9Ӳhz0n'3>"s5.51@>{lZ H/y3`9d@%nc@';vhA]v{:!hԺuk7c 8<ٶLb2\' n[13X [v3z3 1`%n3Uox1\3$|6(Lj2 +p@fJfTnժ|zLx\>~-XfE^,G>zF/ƍ'%K(K)e˔)cV\0{n;ܼ{rl+9=Bݳ>ѱ"gvsdO ev՛MDDD$)8'""YΉSds,=}1С;9IԐmmgc=0H%@7v~dvP#M#M=p R 8#F_)2Lj`=@,;Op2o~e֔+W'D~?'yd/_neo >stwLg$2![`!6y!87vgυ;<1#H  4ȂShA0I23rpm#`?Hw;$cqwo *$)qMFn}@[&ܦ&ٴL6y~$M)}C˒J@AHnޫ^d#`R[=vl?7 &ڳ+RI~/N,xl.m\L9@%|ثT"^` (M|]e@3 NF0κ@nV+Hp>Ν2s<g>A>0ـ2(Kf%/^&WM)S(ge^򾢼(9=J%"jF__ANbmld5w^ZL%""ٚs""Ĝwy:vmG\_?-pzy ̔Pj }vY-&5Ry)+ @(g 4dP撟d֐D·~xzRpw/A9(g镅M9r~w ;tK8-HhG$`o߾L>(~JQ@3feЫ,5gkI>p{eѯ+ԶF\֯_ߕ.]nl… Wgcdp VW_ҙXfJvG{<}K}7tP;7oH3*Q]DehW^R1{_""d91'- s<;`wn߿~ ?t%^N<;/Yz/^gTYLLLE-/"Sʕ-{dp-Z(FEJ!9r}TȂ?ۏ?hO>ݽږ;zE҃[@`:ul0,ܶFVZx$HզM+%z"OJGZ-[̲4h`l0#~W`I&%_{|mwS>{=As""Ż X6~[yA7E7A1#`Y/_>WfͰg>s9'~fWXўlefO_#z0ÈAfqy,Xڀ6Ǚ"z:"njis7gw [o-Zŋ[?=؊d[#Ei޼( Iyɑ#GFHsva?1GF5j԰ٷz'~ڵ;v|CmwSҗWNԷd~9"""Lٺ]ݖyϝq{3[9o~s p p r=@ON\֭]#VJ=6Xɓ'~^mݺJe/8W_+n;p1b1c۵kOs K{^XI%~̽Ԯzen|ɮⳑI ϟ?~eGI,E"Xp))LBǐcHn=L!XDPB6]ރg{1e\dq^4DÇC+VX veϋ_""q)sNDD I% u~vQ~s,GcǺ"E-[;v޽{۷[vѣG-2h 6k7I\(Ȕ;wVzieȀի\z[{駭]۶m-?؎'OY&q1KOMY~>oE2쒋pwJH{r1ݽ\&2x=gΜpO:?3rٌv-fz-1qw^ַ8Cӏ6W_}52""""""s"""@ld R;wt\pݿf͚ʥJr?_+]c.\.4^=1qds35 m{.\d"W\arネi֬Y._|f͚aygϞ}zSX'.>6oʖ-?ɔĢDa ѣ0`rv}B)q 8u~z ;vJH/_^FDDDDD)8'""w}VZe {챁e˖E X`*,;i$!mÆ tjղQGodq']3*awe7n}N(#OpN,m=^?p('xwutJi6n-YĂsYStItsUxIwEѕ+Wk""YYrE *}\~I9IU fW\zSmݺ 4(Ǐwk׮u*UɄ(dV9{ L[ٸq˝;6lXmRgD&|y *W;DJY%{#K\(駟k""]ժUsV\&MB.K:ڡIJ9IUd|'/ /蠉db\Җ<>rե/Y\J2r" d%jRZڷԿKDD/ ΉHuFF%-آΝ;\`YƝ:u*cK*~'W~}Wti.\zk^dO9uDDDDD$}[j[l:ukР]˶IDDDDD$Ç]&gΜn̙=wq?~ݷ/K޽]nlYTX29b߸ҬY3dBBBױbŊ$.HySxs9gld ΉHʓ']!cx)-_X̲eˆ\ sNDDDDD$ Wre7n8/Ǐ^~*U”9'"""""a'D /&""""" (sNDDDDDD$ĸ7cǎq߮]$"""")sNDD2u SN%W/E\\;su<;vpE ػ/=%ύ9sZIO|7xⶭ.!!np38b7|pw?)Rĕ)Sz >s>H6dZ[=vl?r9Cw)n""rFrfrqɗ/YOv͛]ٲeڽ{С[hUXэ3]s5acZ_ՂP^zkР4h"~a7i$ٳ{?bcc{ot%Jp3gt6mԩSM8Q""""""٘s""1Kt0D$ņ :d5jHrÇ]RwyǭX•*Uʵk.Q?fL1}'O<W7vʕwojժ}Y`,q袋ܖ-[ܿ4{]ynʕ_ 2tܔ)Sܲe\Zߎ`%72{(8'""""2^:wl@`GuW yEdUTծ]~f̘\\)R/eA۹s֭[tel/q!͚5 [;F}Mرc_˖-Lc޽]~\۶m-EI@}{܋/hIGu.={{w /஻:C&M,;hyR<ڶmѣȬ޽:|1?iߗ_~ׯoA3s뮻܉',+ҏw9r䰟_XϷپVZY𓠑6mv"xxI|9YAݍ9cx #+- $>{:ud?ܶ[ouKq ] q$Ⱦr\ƍdxMZ$ZXY6lhogGvxI*\V IDAT ԩS-(GPr'.ϟ:\1K\|s1AsI۰ae7|;p@%KXpv]v.=Vrǒ]H@D![$w[i߾}v-_ܞ磌q?Ao&e,X}sׯ1Ldoh rk֬ 2Q駟Z060`@=㖝J7:^g_d# QeG2sze6mXvZ xc+;;DDDDDСC-… -ZbNĻS<t;'O %^>fvKs-IkVNrݺu2#EwqGʝ;P^*(Q2|M ͜9r-VlȆ$E?7eL7/0(I+"\BKdHxW=e˖M~%XF q9#\vG&-=Ȥd_ Ή#G^z^xϸA19O.rsz6hV6!A62?è;naoY:ɲڼcI_9-@p\M7dAa~m H]oϛurߩ.(-bgW""9|+2 =Y|%YD QJz|zd_ Ή#/xXrĞ\xw9A.9tP2ҏK裏'3hϞ=WcƌydQޑ\pG hA(J9TRV$C_lYFp~qz|kҤݻ|rqqqV‘2gWN[~izcqG-xlAYMJiu]dܾ}ҥ#30qL `*}(GsϹ^zIo*T94D$z=-Ɲt{'GAս ,h%! x_'H5k,״iS7`,K0)!!=˗@Mv;fQ@&e"quf=?ydۮ͛[0l%Qҋ% Ga>r$!ӎx^Hr-Z `:ujxjA[TolE -HvaJG@m۶f͚kٲe2EDD$cǺ+r$e lذaСCPF$9wq+V2d%Bll g(XH7d0믿 ֭[W%C`df+[2ﹳdKFZFE(}pϙi2(E,9|{%g)#s;^AP~R8cƍo{ꩧ$)xhꫯܕW^yH#,{^$^J ,E\R I^O{Z9bbb3! SLXp3׻݂ ln^SNY޼y˗… '8y7ÔXgX*U'/Yen+/NK.Ir^j;:t4h`>}}ҥUv{4<ܣn""ENGX27p%g\H@egKVnp#^ImzcǎY&}i)~ 7>Ȟ}B/xWDG,=ZXPfۿzHf9Iw&""ɓ3%QVҎb9Y}L>qqǎhѢZGZxn{̙q,9X;y2kODD7zΝ;hYF~$o̙rP `/Ѥԥkmذ=s<|v{Bg}fe8=x<{dgdv ΉH"8 $ "ѻ++~1mnNjO[lq׿e-77nʕ+g^ 1C@Wj,@J`'tO܍7&~w[iɍ7;wZI6mJmyW[_/27tP3Xѣv?~d89q}2Ii}#ET(Unذa6im,HfdIS'ISv#~v// z%{1XI~,鮻s-۵kWz7w~iնm[{.XtbyN>yyGlok֬@a5j Cb $1mUV̭FsZ)Ծ^ZdwPۺu^0alnoݭ[ng w @|[ GYl|x>f3ӽe˖Vwޖq?~[1|<} 0:̙ce¡ KZM";vK9 }lj}yζbE.Qv}`\&45ʬҧO }۪U+ xy=reM @X,۫W/`oϹMڵ-+M6ǹҧ~j*U1A%c逸 z;)9_!ss`#ƹW^(IOnƏoGV?q(Y^=;te6.\ DDRs""P 2x d\DD;ʝLpo jظfЄA#m͌g`Fi8^pnڴi0;~[ P,.PvU^_~l@֬l[u~paȐ!d`Y?m΢W AАay/ܾy˒K`dycjyf3 Iq 3.xn3cѽ{w+HG?cjߞ 2/^l>X/۶m:/x m RCP`fz/퍣&"" 孽@W]uo- Ma % |/ϟ߮vm6rLJzlfB^ s7!|ڵk-(Gϒ%K&˹/&q vHfd sN *X&E 3*""w֡v庍Y # lJ%y3L"fBpR03{͚5a -X~}{+WZe|\b0i6 "?8XC1\v웇Y^<(g.JOqC?Ѐ]rd5jCrAYh ~c OmT㻚c}7[iE6db9 "R*h{Ӊ@a|ym>6BN~ !Զ}.""EN(AFp5|IocǎDz/o ee1'])~]˹IZ//xȘ"CID(,G KbUTq+VY YdvQ& 3gtwyeS;wn{-y!=\<2"s&Bߙؑ웇&Ed?Z"Imԩ<=~8͎oȲLڍlB䕈HVdx_dkҤIe)ŲMӧOwׯOf <^N'NL?L'x' iyĹc]l?NﱧN_;u-,8GƷ JX#Zp s|&xg<>=RL/tof/ :'!;mՉ=K_Fvu}0D|5ˑufs ԑH`|_4w&>"v,XL=~gCHV"""" }'@D$h'p+KLI wpܟYA@J*6ol%>J']~;%# ڤO={Z;h{k׮m=^z%wQWN%@ Z9@%ƅj\ 1y{ݎ3Ƃg^fz3gerB$x25r{ ,AĢEG=.2x-Qj@={T܋fRr|Q"1bc?_{5+iY^Ŀ͆ iJ]t~t${l t8^~e'.Cj=."""""(8'"""J(J=\dJˑE`9/_ndy-ﶬ}Km߾=Vm {_ݗ_~iA %'GA~ݺuKs9 |x|HǔW֎}$Hpu׹)S^ %K0^#G ˗ <`u>=iɾ?q}s|9 4%`G g 8-[ςH䳋M_Aq)HfH*^y0l `Q⍀ҥKvx=rsdπ=z ?1PMovzGg[ǮrʮDI3n޽AA' A2z ΅;F$gu?lp ΅:؆QsQ"JC?!}| G2+Zב#G'ח =,..Y 4(|}˟?MPǷ[$'Q[_/2xd#pI>gΜ(>=dQz- 0駟1೑'_/qׂHFH*Xz +V,wApNQP3O`ʔ)x=T>J呭D@`o<nv}׮]P  wV\\֭o/A8M%-H+Cg#E8u S` /^|Ő#gW5A]JDDDDD$#PpNDDD$0?[&⛽A(J[=Gffz\uUNMvDwd1MO/>|F,O…;F](=HH)"0o<+kKOKh d98n8uVu(KMߒ""""""I9T@Ȃ ZN:ɓ'[V78}5XIÇۀ4%( f6}< ]$YbR=x {^]//(368Н8q"AE<}'ױcǨe]y[ѣGXHFZ._3-'"""""(8'"""JmEЩo߾UVlʕ͘15n?28Ͳed$}-Zd=FG^"Z/A.3rH{N{]/=(KG9ZqPRӦMG,>zYթS'cDIͦMZYx?^\"""""""eHPl"hAFO~[OjҌ^xae^˗ϝ{krOl<|dԅ~rV@[Jё#G,{0=qlݮn˼t D=z{rJhDDK""-eΉH{#Ppdd5h \48H8FDDDDDDDD"DDDD29JZ_:tȍ;լYSEDDDD2,22J$H Ήdre"eDDDD22\ŊscƌT6;Z:I- Ήdr۱m;`=Sܮ=;]"]Μ9ͱ̬^(""uLdLdԢ!!!ܵ[ۭ}T"""iڡY9,DvI-pZzJEwyeY;+kQDD2wVvlH)8'"""" :ԩjԨÇ x[b+Uk׮]?xG`Xb֛.;b%HI'Nt;wvŋv۷o{Gի5\͛s4UTծ]~/S۸q1cF FEs'Of}'[$HI'ժUs%K^x2d3g[reT_~Y`Gvfrʕs{u/qCv9"""rD#H#DfW9~l ԩS]Μ9݉'|cܹuEDDDDDD2 DDDDDC…  ꀈdP*k)""""wW;u@ɰaܡC\:u\5waW@+VRJwH&9,ࢋ.Ru̕KsdZ/ IDAT-hVxq}߾}QFH"e˖zA%G|3f耋dB Ήjժ%KuC q:u_6l=\^n])X\9w@dR ΉdFrgdLt60 *S9sZPrsAȌ*\8p0 \.fСp .XDDDDD$ P3 t{nw饗Z8O AP?8fѹsgիWϝzӈdʜIUVuÇw ,Hu̘1MCDDDDDD2>DDDDDDɨQ\ѢE]Æ U 6:tթSըQ#2[b+Uk׮^"""""eH7`…ŋ 8q?~߳ [o4hO2e\|HV9T{nw饗Z *}]]3qV+Yc~\JѣݬY\r޽{DDcZ_ʕ+guE}w+"S3Ԡ9TRjU7|p`4[e'ÖԩS]Μ9݉'eܹlonYvdQwi^x[hQeZdN%\kq%YM9eΉ2,p}Ei~.СC]ҥݚ5k… ߮H* KwF/~mw=abt`DDRpNDD$($b瞛}fW_~A_-[=쳮^z~>9{:w{lw͚5s[lqwyߓܿsNױcGj*;/߿ Νkey]9\߾}ڵk-;e7n{1Xn۶m|衇lDy7n.שS'w-Ǐ뮻 2>O:e|@B{nԨQg{ E"{'OtGUpNDD: !=J W~KDoFon6AD2 1J\4gTD'XW_}۾}m>^Ď;/_6ol(yoS"nݺDz+#Z'?ׯ-[ =?r-l2uV|ի}=~2==WӦM]]͚5ݼyܠAlaÆn„ o>h}6#|ҤIa0b6=J2B0RDDD27VX^y$f"/C/p_}[tݎ|OspEPJ*64&@o֨_9s F1cywrFηz>jYq XV.ۿp)bbbUW]V\ DDD|(@EvB^`x}Λ7.\7a633w}wl^f5Sb"exOo]ק2믶]t7h|=馛,bw >{l׼y~m[xN͂Sܽ{^θo̙޲s&9OuڵJ(xo Çŋ[_ww=2e$^?ZO 8s\\\\8Xz9w饗Zޞ={T\DD҅ZHNiHx6m6?$H?@3ϸZ_(7'@(8F#Gԋ% f!5s03kH"Agg_s5I@3jrs{#޶h6sk|||Ax3yz3yOp'? G}q=z"""")9?~|3<܅ DL^"(]+n䜕 YLL٦ȟP"JHѿHj?^d2HhѢ$M9#fXJ݉'<I>KT ED ,h%9/4^Kp>|pw;3_lbf{ {$@5:))I)SmTW'0N:{5O?֭վZO `ȹ}\J:c;c;"""gZl(ZK`6(op })@5B&0`3+W|o947[ןoh$  6{ 1+?D'%;E$QVZ&M\fƌ+,Ռ;^߁K߿Tgu]g%`^Nl伉Tsq6юsիy99Oڵjd*Ud N/4m4?%A/GpnIso.1~p;@_r{rl9bP\9l:Im ΉI (+Y vLj^G^pgvABYi@dZn]} ᶟ\ws%5k!&""J9?)@EvY 7; OC^Ҳ(챁Pos9?k#Ô (`٥%-""Zj loN/lޝT^KʾBh#/BhA !+$-'YJWZv?mQd L玙;3νzܙ39w|? W0J[n1wJP%x+\źM(#NJ/WN72+s @Svvr 7rvJ"y ux޽{9P.XezJj*:C-#իWwK.sMuOO?d߁+O:Ԝ^R֏zw͹5k#CNz\s S=Vu2SUJwu]we˩‚*|zn&+x'_~5MTpvMk5(Koȑ6L&OU["s @vv٢:ϟ?E:~ý6H* s9nVOp^ @J+:M- RN}*1kRP=Rzۺuk3^ Ҝ]̰zj6d <7R0PzN߃ZGJQѣGʬ1|]m … meh9 6DՎ@V& 9(Bԁ<P`Qp"׆梥h5@$&L,Rr*!q6hܸWAU\,=kr5)u i֬UsHuz\`SvY)SI3J5k> HQvS&JrjwuT&]z)COT"Ѽ7rK.$, O]|\ B> rr׏i^vZ ^+zs*{>){W,P|4'@Ρ;vJWRʖ-k%*Ypuc-T9h; Ge(׷o_˴ۻw1'c@y ύ[7@y60kҤIg^Me*UZr̘16ׯaR9[ pnС_~6?\׮]-9۷oo5{7:wle/^lsg<ʞ={l:w}-zL XIH W+lBtǍv~ vݻ7패4ߤ dcNeVP(Txq7ocʶSI%J:ٴi+Y"^ m6 ʥ% { G!#Nmd~3h c(-Ps)R`.$^|ɑױ'Fp)@l&Lj*9D SpLA2͹Q`IpOZjuf7zhw嗻3<0sd̮g}֝qXb`>3N馛ȑ#SުU~صj*MzR- ;!8Q5jz鮿,>x ׮];{&M:jժżO>,X0zd9@O?n\]qnϞ=ɞ_\>}l^w۸q/܏?hnf͚{Ç9s 6zyv 0{yզux_v 4pǏr饗CZ*mׯ?xtR Ω]nF_K.M2% ? v_|=z?ܕ.]އʃG 2 .L9.zuܹ]x?t `@Bp%)s9[F2C+-Zɫ:wvخ]Znj׮^z%XOtyDj-3hРdìY,`On;  ;E9˓O>iY1@V_>qp.s5jd}Wnٲe{Nj/ʕ+ger)HwI'ٲ͚5s{n` :U\ٕ*U2,Y:=-m/%ʨQ\ٲe-lɮRJ?l5em۶v e 2ĶhS]^OJ!5\cY+V_xץKtdKd9+bu֥1e}._|B !_n˕+W ,3fpe4d۶mS\gm|iv(*Y [f-rpݺu ,̷hgڵ,SϣL9im%KZTe6U:S%4[hl9!i+u}@l;vdEe2B/맬/9r7o"3ҶB9xT +iҶCQI~T+11JFjN7ݢ=6ݺukީm::vMfYs@vĕ.)E(+W<ʊӧSFJmܸ:57~WZݻ}j޼馛l(AsW)H>*W`A[mn 6u*x믿=zXYҥK۷./Ǧc`ҤI_~_VNy<3ܘ1cSO=e)褬1eOc t+V0qR)3m \i}OiҾ~Vr'p?l"/_j*[Nyއh#s۲dIt_>PQsy۷o"+QD 2Vd>٨ҶRV]8 l\,#PA/O?ֽi&+/-뉦=?QOe@hΖ-[lAƍC.3w\^R}Pֳh'?s@6駟Z6L B>n:+W. "-Zdju-𘲂<3f̰:Um۶!׹vZ )ǣ@"\Ad_S8^O"/?jPL`OZjej;k֬ _ &xyg݀Gs{*cZɢ cVoN :ʌ߮!!9P=9 ٘:wa)ʜ-[JT* nݺG޿_)@LT=?e)GA9T/>x?xf4@,5jd}zcذa}5kVk`>x*h_No'\4}i7e(Ek҈38Í3J)qF{N#5 y4s@Mt (u(U"EgKdZA(k p_k֬۵kۿ+S>|֭qDp J[VX^ 6[Ε-[60\m۶7>ۧf͚nÆ 3sQPPn׬l„ |@6=W*Tr͇O ܘ1c\׮]ݵ^r]Ϟ=ժUIANn'7sQPpN޽{;.jlȪpD9{".ӫW/>ds1Pg}Vne8WY].';w&{Lq>VJzSIbRc˖-J~} (k ȴ4^ l.Xu۷g.>@j׮^{5wnA IDATٲeqhH3sLK5b͂Szz9@ʕ+ *V\i~} 252ZZŋҥKYb} syn׮]v_?UF> H4jR|`\YOwƽA>f弱4cEA3>HA5?R4 ڴqs>9 c9 29 0)5wpt#<"II,JBn\4` V(>F@*ݻϮB PBɞ[v;pR dcr uֹnݺI&!sv/vsUVu3fL@*}WGqcƌʕ+N;47߸cǺw},X @Dyq\s$%1d 3ܸqԩSJGnv]f=W0?ZvϞ=ZɓԤ~z_N2Ž޳ߕSOYMkqʖ-r_ > 6̲-jY*_.}ssG{*8p@wUWm=M4 ^ףGxq믿vCuK.rk׮={i R)Rpnahyg\B‘~p nʕܟiyl޼u ?tݺus p:tΎ~ٲs#Gtk۶uI߾}]͚5]w[IHZ^)\rux0ڷ^zY9'TPGu{OݪU܈#M/[ܹsK.'tM~'x@΢O%K!&)˝+!C֯_o%eEYiߔ3gfM6uŊs:u:j Eʗ/o?k?|I92;vh>s}v{^A0xC({,;wnk.ms۶mW^jdV@W_}{ή!u=9d[Nmk׮{xO}5w58`UJF{hrSO=:|ArgZFYz94O:HAv'PRƭj5 /t .Ν;-v-XK)p#D,:թձ2r .W_}u9= l ^u *jۦFYNו*U*DޝwFm=BwIOoT8*I )RĮ}-e+SLt=Һuk])h߼gϞlZ\veX VD Ӏwy'9= li~k>eIԝ|A9]꧲in6\` Fp*Bݺum7˄@9Le-YĂsNuΨFGu() Q̢,2A#묨PNhwhP"m_Yt5bYeDCgaqu(?eslO -p@kdSzَw% -QHUDYsexy"<H Yf5ODL26n(:Gs^zi~!0qouA[˗/V}P+5r2@Kmp.}4J:+WD͘1:Hvm@Jhk)gCf}?zV}ٰA9O3\UJӣ,@?uhG hx O^ _?^H~Zjiݪ@O?m5tMGќz>ik?Q~6mj~ks)9ih_Ti!hD)L_ )̱;vh`Q9R;vnjYjDھQ#(X^Һ=ٓ)37r@@).-?kצi]R'W t][oYLPTaZjY:2|*7綾^:j 7Oo} A9y:e¿ŋ F Zh RbŊY&ר`o,]u(cLn &@4[N1i9ݨQ޽{hUXѭX"?w4+*(yt=̵:m>:&}eoVmذ}su ,{ioM>1_f͚]v2eʸÇnݺ87OnQBF\ʕ{ٳݢE-WZ5믿 (Q֭[ʖ-ksլYӂl۶mܸ1X 2\4)SpNr 41֠A7f7*_tj:Q̏9e `4a׿?sݼy˞viouӧO'8#OLO˗/wۻw5jTڷo.]*UdYcwu]YZ& e_k֬۵ku)S >q5jp|ౝ;wo5hЀ̂mg NF\ʕ~BTAVVX֬Ys{+M@rʆ3f?~e_|ժU~?-[wze3MR!;WBԷ3gZLz\:u 2Su[E+҂i$ tEyq˗w%K*Kv׿l{ߒm+ܺD12fo&n㏻!C^矻MڼpvmnXgYQ撋e[ {#s =\nr٨~ze3Qas?%ߣgS&*o}en:ܤ28֭>CˀeyPحj8UP.\~N05imڴn!uO8ѲD%{zڵU+ݻ ۷ŋn[%~TS8bgQxbR=>ۊd6Szَ#eyVTqv__^`N@U8 `=|˗/weʠSucǦO>SeSO?mw\ n[QR RƲ- lҺu\ٲe]"E\͚5mΦPmfWhQ׮];7}t7uT >)Ȕ7o2^N81߽ۮu.r =c\˖--жw^שS' ƝuY2-宾jwUWY~M2ŞWJ7ܺ7onAݻwoٕ.]:0怛5k;=ڠnݺiv,9ti}s6zhgEq!Q>URٓFCРA7f׵kWwצ:gϞ[Fͭj*רQ#7j( D?_~.nȐ!VR74(z͜9P:7q@SY܂^֥l3e^pիWwӧ[re 4\ZK{-!a98Rs@s~װ17n8p`QHժniӦrȑ#]:u1p38D\mݺJ.(Q"7mdd+V ;5kI'dYwTQ_~J,K6u8p^_|y]][S`+^mmHkl78Ȝ1W`Nsj 6s*UZ5믿ZpxS9Xxm)Q-4on^2(Lv \49hN-CNKrdd3pni%p>\!7sC@hSO=}7t͛7QFzNxFQ/4s vZ 9OK}s!1 )S֭sv/tUVu3f̈>gvd"EB l弱nϿM7 Cp/iСCe˖nٲe,W_}}MvFaz-״iS>xpLH<H! 1wBZLM9tl'))ɽ⋁_xL[|{޽{m-M{b9CڵkWn_~q'|۸q{ݎ;2w}w}r}'FgWlrʔSK/ԶtlѣG~ծ]۶קOwA7sLw)ܰa=-ZԵh;69:n8k7_梋.rwu;mW_}=#v .^dW;Ri m,-[Xy[oF9u͓n@v&II\\ Q VpaWd˗[޼yzOk_|ڶmSV[jM7vq7dȐQM@X?WÆ ]ƍ]&Mq/`@_o5r*T@U6<*Ay%X_r|Iw7QMϭܹsUn ,W`A I׺uk}فAثW/+bvi1bСT>|8qL2SYHٰaݻWϣl={f[oO?}O:d}`ۼy~vwk\g9L"e;ӺUr͚5vZ߷o-8:r_ՖQ]$ =G= [`OSaϩdh{W y&׼ࡂgɂs|駭ʛG! 4͎u_׷@}j:5g 7`e=g-^To-ˊ\Φ ŋK?FGufͲHS.⣞ST=w߹Ui;KLb$ TnAN׷od2Bǎ1-M ,]jʚtgaĻM>J̺R[4OYuֵTwޱR?kԨa#w|M˔~* U9TBt~饗ȑ#w<\p(ӣGߴiSߕO9ʖ922$5?leF5^hFN&QQhѢd)  8r3}F}+-[9:De8EZ:ԉBej?ԩ mG::udIlv=_F yVH4ARPmT"z?%sta4m09eJ}76G.2*oTm_}_k\j5[,{,'h}fT@m.j8@p35lͣkھQi2sZDLpZ>V#]:G6|p )M)p:MRp.֡FQ:c SJi$(sNڴic#ΝkLRHu^#X-Z=6B|̙Is^[(sRQS@i X9X߻/%#Ab^/%ӂxIGEYZg]իW/4ӵKٲe9ٳgi;z^YuJcjpU?m0WZDڮ~j `*ec0TfSUUӫg\qY2(ۆ O hۭC5'X:w`NԬY3*i[8*(Hy|J*ѩFik:Ѽ%gvRR7ͫJ,e}N:vSٟTsH@ґOݼT2J[R+vTA9dk9/@&AyG3o۶mI?h%Lv 2 EWZe> G*W`„ xRW"mGqȤjz=R P?Lv] Xh]^s?6Wp4kҤIVsV '!8BR}YiItC9]~aÆ7lذds>;UvYfVJO%PuF$kcA8Dch-C9Wn] {W?3;$RHTZ[e5?\rXe_y{LXӤIt3d( S9=zD&}6. >=*;޴iS7Nӕ课Rrڠ%͉|FU)!d@H [6ovJr N?Э^ڕ*u1?R]%K5?m۶7f8cfNM4tK_-rV2];Sғe|};{lwuYinZ|=fͲ`X eUB\4Wn*1ɓ'[.8Hi; ,Ν;[O, 7n\mߗ?Q& >=7D hzR GqW\qERsΜ96kʔ)?YEBRJ-os+獥!PÝ~RVɥM\um[O>u֘1c=,;uix̩s,#ǻ7z,tsn |a5S{Af=֏wf )U*ln=_D 'O̚ON{4v~7+ьEdΝ.11тg hPԲeYgkTj\YnB@F#s >{qzeC.qcxA|Ǣ[.PFTTP!ӷٱŋJƩ,4W)ݪU3f]ɊrH=xndɒ~KefF_}1 29@H<H!El\l{q ,w>9~T:OwVʴ,q dܿh@hrE4py Wקbf!w}w}r-\s֮]_zdυZ w̄SL7sL>LY9@͓nS?e((>ըQURCС0sg6ْ%Kʕ+]%\6m< (Xnv?]ٳg7M:5i]wur~W=W|y+7w\+C֚6mlSLqo{J*Y9;϶sqe˖ gܰa,hѢEnرuZe.ޣcyWeׯ_o۽ uhNɓ'z(^Z]JO;~nŊn͚57q:ob=k7tPtRuVw)vc᎙޽{G}:}PMCk߾}wm|=z,xgѴ#nry{nyĿka8c?$W\VQTbŊv%&&p|8޽{܆M͛\bEU>d62JR!;WB ˇ2(0ۜf V*!!=裶: iŊs:u >uxss/߭TztSG鯿l|I J*Tu^矻۷}GuqPnj>pMl>B^e9~H-E<ϢiWex6@8/87~xׯ_:n{O(L:eZFzmz :-ZȽ UNg#:t dy<9-ۉFJ#5YoS_v q[jr&LtFa"x:$=*}?ul:zsY϶̹M7bŊs9szzQlv M"e;qu3[ZQ;~D\I*{5sXǣ:ڕ v?9= ;_,Q'HƲ?ˢs J*sN˲ U~i;n4h`)^bW}YΛX/Tf( 'c]   F:~TLc7yM*ciӦѣG;vX̶mڠ@!t ^ąa_lЄuݢU`o4HA^tbTT s3fQﷲ%UQszk̟?m{ ˿X)ϻ>}ؾXAp!¨Q-TT:t<^ԁBu޽2PFFgD{{#EH )0ޣO8!rʩ]"ԘFk!3eA!})3F^GQ'GQ:O8@FgetNT)GIJeyt*U*Pr "_?s摋N;͂mP?w8=n,vUi\~ej`4j%rY6὿H#ibQ5\cOx tmyxܹ]GA<̣䤓N ~^ʂTIPSYR-kr5砎k ſPYA:uw s F=+[嬀Q4Y)P-C#3ydxKi/(G`+*q6֩ιc<: Lut=O_g}i^K>^ j*6wܨޓIr@Y :tSŋ;CleEk912rj]vm'G*gxyR{&Mj4gr5PRTj9@ #mGRKhsʊQGSO=zundEڮcZVv[)Q֑|5-YFSO}j+R{?|m bjh)(䴭@X uDjN?vd2<| ҩ3SP(, .-R{=Q>e˖:EQ:DUUZҥs\)QA૯ڲ;աS,fJY *y,S,`aÆ ߢPEFz\Isw:ߴ-cѲeK{ZGN, GZǾ"v_wI{u.cWA8\ wt`'Nh~.Ӝ^Y*:}Ѿi٬hksρ#AIGbr_?u Ӏ- GpeӋTAs%'7s F=GNTRs')~]#3LTd7nTgcGگp@g)0S+<LÇ۹oիW2}Nve)8R .nժUa:jԨ@iP]*9RµeݪAOTFMuQy-u̙Gp.=&&K7x:uS˲wx@_e(NpAH;0C4søo2tʊb +P&߷ \+QH"TƜwOYA˪>5ǢnU]ٳ~5khvuچJ[Jy"an $[GSyխ[7暁f IDATX  Eee^}gyMZFݛ3KvTiX_N~$@dU@Tsj`g}f%keBLwaY5QTUA%JuMrzH?|O@>}?([•, .&s F=GNgc*ovhРAqW`p`VL,O, Nc7vU֭ 4(ͥA%C {2>je:*Q@)^|=`J+W OzqhND P &?s&M  .xwfxa?5dx_):|ٻwkܸ5ȑ#ZF_|]//ZFC@F#seרXαKO'|r??̚7o~a+qtR+UOF1jd7)J c^ŊݼyK/}QwꩧN:\>w6oSO=~ᇐ#y5^#ncu  8Q"8.nшfSow:tn%3#9pכѯM!*Wj* 9!3>DRGK].!./pgŸ5kO"./.ⸯ;~w.bYkӓ7pٲe]6m zrSLwym۶ ={uFfeF}fW|TIjdg޽6o83yr zO(Lǐ!C]wed"Eʕ+)Yg-Z^xOX_V|…I&( !8r4ZgϞ6w\pAZ_fc޽[oeojժ&L=\[&hI<2z.]j4|CNn&FICH4i{֭[]5رc] R/] 5n2nVױcG[gvܜ9s\b\FlwFe ~_ZZ֯_}]{:tuipޏ֭6o{ɓ'RJl6qNӧO?4s Q=u1".e6۷wժUuc 6X`,hI퍌M6GyM>~'3͋w/@SO2RIH1a2DJBCO5M_ňˤD2C2SF5TH[&]JD==ouv9϶>_3k9{9cwWOǔ{B{Mw+.)KzС;cݜ9s܂ lK.^pv4m4WTTtb&<%)AH'lPQƖvڹݻwy  ~͚5vZɓm͛7۱-v}/t#Fp 󴲲2{N+q >^%Mi >\Y&&L[V ` ~{GqSNMY:Zhڷo4ib 3sTsV'|bٹjkAYarJ@{嗻z."$ϟ%+8h| 4)YڵkW7x`裏\۶m-SN2e!o۶ժU˖]8Q%.ZgMkQ(0ư7Ͻk]RNh?ri^0SK[-sOQq+?_wbWZܮ$9S^^:n4k56md+ i:S9~R0~D%RWz޳7<зo_ fi J=94FRpN|A;_tLر=8JRPPh[oVX֮]kˉG~ y bIٳu;Hpzn0@#8ȊLe=5ʂoRp+,WhR..-y+VoXVpՂGZt!EHΝkYGV!eV'ܿ}駶Zl4h`i}(Y?{\uqGN:((օ+T)ʥ9gR4rssA}'s9s.,@ӹ^L]H$c% sTs^[p]W KJE`=2{\vmQ]x dSUAۚ,:, ;>Q NQb%[*eS0n`saAc*ճaJTTmkc-srJ].SߖAD(UU)%@cZ:,KtocoiI :.cnJR%^.FazY m ju#&%M(D絪@"SYz낭8.dɒ?YVp?_Xfu9sUh9ݩS'bQM%ɂpaY>Ñ!SAsxk UUJ<9A긑Jlغ+SnXmkc-sˮJ=f ¹W*U* JUi:zA:|E/%{nnҤI+ :ϙ5k=[JRR;лwo;R{uۤ`?(+gy*s7㿶Ym`֭Ӯ03#9@Vd*9^XVSd]˗L3gNFˬN.k:|%]҅|xx G{*eEKFUzmc%6hdUFZm[[ o2M2>:OSȎ;SN9d/pRŮ+*-U wB7%Hv -lluUx3%wx*j j%o|<\:o/͑ڿ:|饗. HGpzի*on.]jtq#Tz?HXfu۫ x 8Ǐi24'.x㍶?k4RZթ}򂧨2U)4HӅLUYvaXEmиj;HJѨsx*R͛ VO쐱Tƪ4VvX^03گ%lprM{OC9xHTQqS]*kT [>u($Cs6XQZ[-J>4WZe=%5oSio96HBȸ믿nQDɌ#KȔn[ðvl ZXm.T;wѪ %%%JD2Je}JlPG׼cn}ﲬl_L}޿߂, ا֟8qU^-HaN"Z&k^]!֜^ |$s(jܨQ#wwN:UW^jjw֭ m uq>}~Z'?l.iٳg}7v&L[\5mEy7o:WhnmS v7t*srF+o[gO=Szf.45c=P {OK,6᪀6lX7ydz衴W׻3<3>Tͩ9kUq7ؼ믿nN矷ju许 KZG9t{U̻ WeUoUIƍj$<-Z9wwG}*sO2W .:ڕW^|I j]W]u>};m/w8 {#4v<oT־}{{{SQ?omsv :4֪06oy6߰*zƌ6O̙3co_]G}ڶmFN:u;o>Æ =V\i/=SO?hy}oz{W-@_|wz=ZTd{S]we駟@9iwWV\) W\Rp͍_#FXWծ];{nR%*Q, –Og#Lׯ0޽{GM -6EEEK.Vɤ`IA6mj⋭mާq{\{j ׷4ܶmUrQ~ܹsݝwiGnٱx,jlmL[haM6Z0NU`{kz_¶E4Gym. k֬q?馛"2=ڏ U@TT\Jߏ"rؕ;+IpΣT&~{nswGk=y4-:|ȒmsQ(֦M{ Vv\E_A#m[nyKպRA)"5rWOKضH&ۡ*Gp/ GU> 7 "8rҮݥtNbb{ [>HFbUycƞSƿR;a{DëbjذauwTe2NŤO>vϦ~תUZvj^JZli 7nhm!m/{9.u:̣6I$S;KQjҥVqjժ\n?xԽZ2 .pK, sg~Iu[Q>yU&z?*4_;udsURy N@*.ܮRq(`WrNA:,kc94h`ϩu'pB["F}ώ;Q~E^`hʔ)Q&SeޯqݺuVUǽV͛7'*<چtUtś3gmPRY|UEٖ$Ϩ6ª=Xl֬{'sZ?n[]%ܹCo /LJeY䱯:Li4<4gZ'ݻ˧?_*Q#GZѣݤI"SD^yE?OqFe,ZnmsA۠5kt=3ff͚u@TTt*V^~w o~xlW(/4t*ڵUkT-Zj>G}ڶVt{@D%:\qIk1h-,= ?~ R̛7uŪQ &ddt i (6;vtڵ@Rx iyOָqcDuΝkur KAt \oРA`JGEh^Ck׺oѝr ,*7=_~̙qKӧOw(5g-8F8p+= { *.kڤ|T- w<8~oʶm۬e׶1˧-[XL_K6'\mPU֭[cwWTTdyns(˧_2᯿Y.PR/WZ.¤˩ Sy{ @ կk7 P.{Vt(z]L*hj[S/\gY2QR/8*:]znԩ6ml҄5RE *[lY2&MbG&*,!8d 9 Ksv `'@pVsmy ;m-,!8d m-aW~]s@%95l;sHwwn@|۟IDATH[uh%,!8d 9 KYBps@aDIENDB`PK9fMFo, c cJlinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/websupport.js/* * websupport.js * ~~~~~~~~~~~~~ * * sphinx.websupport utilities for all documentation. * * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ (function($) { $.fn.autogrow = function() { return this.each(function() { var textarea = this; $.fn.autogrow.resize(textarea); $(textarea) .focus(function() { textarea.interval = setInterval(function() { $.fn.autogrow.resize(textarea); }, 500); }) .blur(function() { clearInterval(textarea.interval); }); }); }; $.fn.autogrow.resize = function(textarea) { var lineHeight = parseInt($(textarea).css('line-height'), 10); var lines = textarea.value.split('\n'); var columns = textarea.cols; var lineCount = 0; $.each(lines, function() { lineCount += Math.ceil(this.length / columns) || 1; }); var height = lineHeight * (lineCount + 1); $(textarea).css('height', height); }; })(jQuery); (function($) { var comp, by; function init() { initEvents(); initComparator(); } function initEvents() { $(document).on("click", 'a.comment-close', function(event) { event.preventDefault(); hide($(this).attr('id').substring(2)); }); $(document).on("click", 'a.vote', function(event) { event.preventDefault(); handleVote($(this)); }); $(document).on("click", 'a.reply', function(event) { event.preventDefault(); openReply($(this).attr('id').substring(2)); }); $(document).on("click", 'a.close-reply', function(event) { event.preventDefault(); closeReply($(this).attr('id').substring(2)); }); $(document).on("click", 'a.sort-option', function(event) { event.preventDefault(); handleReSort($(this)); }); $(document).on("click", 'a.show-proposal', function(event) { event.preventDefault(); showProposal($(this).attr('id').substring(2)); }); $(document).on("click", 'a.hide-proposal', function(event) { event.preventDefault(); hideProposal($(this).attr('id').substring(2)); }); $(document).on("click", 'a.show-propose-change', function(event) { event.preventDefault(); showProposeChange($(this).attr('id').substring(2)); }); $(document).on("click", 'a.hide-propose-change', function(event) { event.preventDefault(); hideProposeChange($(this).attr('id').substring(2)); }); $(document).on("click", 'a.accept-comment', function(event) { event.preventDefault(); acceptComment($(this).attr('id').substring(2)); }); $(document).on("click", 'a.delete-comment', function(event) { event.preventDefault(); deleteComment($(this).attr('id').substring(2)); }); $(document).on("click", 'a.comment-markup', function(event) { event.preventDefault(); toggleCommentMarkupBox($(this).attr('id').substring(2)); }); } /** * Set comp, which is a comparator function used for sorting and * inserting comments into the list. */ function setComparator() { // If the first three letters are "asc", sort in ascending order // and remove the prefix. if (by.substring(0,3) == 'asc') { var i = by.substring(3); comp = function(a, b) { return a[i] - b[i]; }; } else { // Otherwise sort in descending order. comp = function(a, b) { return b[by] - a[by]; }; } // Reset link styles and format the selected sort option. $('a.sel').attr('href', '#').removeClass('sel'); $('a.by' + by).removeAttr('href').addClass('sel'); } /** * Create a comp function. If the user has preferences stored in * the sortBy cookie, use those, otherwise use the default. */ function initComparator() { by = 'rating'; // Default to sort by rating. // If the sortBy cookie is set, use that instead. if (document.cookie.length > 0) { var start = document.cookie.indexOf('sortBy='); if (start != -1) { start = start + 7; var end = document.cookie.indexOf(";", start); if (end == -1) { end = document.cookie.length; by = unescape(document.cookie.substring(start, end)); } } } setComparator(); } /** * Show a comment div. */ function show(id) { $('#ao' + id).hide(); $('#ah' + id).show(); var context = $.extend({id: id}, opts); var popup = $(renderTemplate(popupTemplate, context)).hide(); popup.find('textarea[name="proposal"]').hide(); popup.find('a.by' + by).addClass('sel'); var form = popup.find('#cf' + id); form.submit(function(event) { event.preventDefault(); addComment(form); }); $('#s' + id).after(popup); popup.slideDown('fast', function() { getComments(id); }); } /** * Hide a comment div. */ function hide(id) { $('#ah' + id).hide(); $('#ao' + id).show(); var div = $('#sc' + id); div.slideUp('fast', function() { div.remove(); }); } /** * Perform an ajax request to get comments for a node * and insert the comments into the comments tree. */ function getComments(id) { $.ajax({ type: 'GET', url: opts.getCommentsURL, data: {node: id}, success: function(data, textStatus, request) { var ul = $('#cl' + id); var speed = 100; $('#cf' + id) .find('textarea[name="proposal"]') .data('source', data.source); if (data.comments.length === 0) { ul.html('

  • No comments yet.
  • '); ul.data('empty', true); } else { // If there are comments, sort them and put them in the list. var comments = sortComments(data.comments); speed = data.comments.length * 100; appendComments(comments, ul); ul.data('empty', false); } $('#cn' + id).slideUp(speed + 200); ul.slideDown(speed); }, error: function(request, textStatus, error) { showError('Oops, there was a problem retrieving the comments.'); }, dataType: 'json' }); } /** * Add a comment via ajax and insert the comment into the comment tree. */ function addComment(form) { var node_id = form.find('input[name="node"]').val(); var parent_id = form.find('input[name="parent"]').val(); var text = form.find('textarea[name="comment"]').val(); var proposal = form.find('textarea[name="proposal"]').val(); if (text == '') { showError('Please enter a comment.'); return; } // Disable the form that is being submitted. form.find('textarea,input').attr('disabled', 'disabled'); // Send the comment to the server. $.ajax({ type: "POST", url: opts.addCommentURL, dataType: 'json', data: { node: node_id, parent: parent_id, text: text, proposal: proposal }, success: function(data, textStatus, error) { // Reset the form. if (node_id) { hideProposeChange(node_id); } form.find('textarea') .val('') .add(form.find('input')) .removeAttr('disabled'); var ul = $('#cl' + (node_id || parent_id)); if (ul.data('empty')) { $(ul).empty(); ul.data('empty', false); } insertComment(data.comment); var ao = $('#ao' + node_id); ao.find('img').attr({'src': opts.commentBrightImage}); if (node_id) { // if this was a "root" comment, remove the commenting box // (the user can get it back by reopening the comment popup) $('#ca' + node_id).slideUp(); } }, error: function(request, textStatus, error) { form.find('textarea,input').removeAttr('disabled'); showError('Oops, there was a problem adding the comment.'); } }); } /** * Recursively append comments to the main comment list and children * lists, creating the comment tree. */ function appendComments(comments, ul) { $.each(comments, function() { var div = createCommentDiv(this); ul.append($(document.createElement('li')).html(div)); appendComments(this.children, div.find('ul.comment-children')); // To avoid stagnating data, don't store the comments children in data. this.children = null; div.data('comment', this); }); } /** * After adding a new comment, it must be inserted in the correct * location in the comment tree. */ function insertComment(comment) { var div = createCommentDiv(comment); // To avoid stagnating data, don't store the comments children in data. comment.children = null; div.data('comment', comment); var ul = $('#cl' + (comment.node || comment.parent)); var siblings = getChildren(ul); var li = $(document.createElement('li')); li.hide(); // Determine where in the parents children list to insert this comment. for(var i=0; i < siblings.length; i++) { if (comp(comment, siblings[i]) <= 0) { $('#cd' + siblings[i].id) .parent() .before(li.html(div)); li.slideDown('fast'); return; } } // If we get here, this comment rates lower than all the others, // or it is the only comment in the list. ul.append(li.html(div)); li.slideDown('fast'); } function acceptComment(id) { $.ajax({ type: 'POST', url: opts.acceptCommentURL, data: {id: id}, success: function(data, textStatus, request) { $('#cm' + id).fadeOut('fast'); $('#cd' + id).removeClass('moderate'); }, error: function(request, textStatus, error) { showError('Oops, there was a problem accepting the comment.'); } }); } function deleteComment(id) { $.ajax({ type: 'POST', url: opts.deleteCommentURL, data: {id: id}, success: function(data, textStatus, request) { var div = $('#cd' + id); if (data == 'delete') { // Moderator mode: remove the comment and all children immediately div.slideUp('fast', function() { div.remove(); }); return; } // User mode: only mark the comment as deleted div .find('span.user-id:first') .text('[deleted]').end() .find('div.comment-text:first') .text('[deleted]').end() .find('#cm' + id + ', #dc' + id + ', #ac' + id + ', #rc' + id + ', #sp' + id + ', #hp' + id + ', #cr' + id + ', #rl' + id) .remove(); var comment = div.data('comment'); comment.username = '[deleted]'; comment.text = '[deleted]'; div.data('comment', comment); }, error: function(request, textStatus, error) { showError('Oops, there was a problem deleting the comment.'); } }); } function showProposal(id) { $('#sp' + id).hide(); $('#hp' + id).show(); $('#pr' + id).slideDown('fast'); } function hideProposal(id) { $('#hp' + id).hide(); $('#sp' + id).show(); $('#pr' + id).slideUp('fast'); } function showProposeChange(id) { $('#pc' + id).hide(); $('#hc' + id).show(); var textarea = $('#pt' + id); textarea.val(textarea.data('source')); $.fn.autogrow.resize(textarea[0]); textarea.slideDown('fast'); } function hideProposeChange(id) { $('#hc' + id).hide(); $('#pc' + id).show(); var textarea = $('#pt' + id); textarea.val('').removeAttr('disabled'); textarea.slideUp('fast'); } function toggleCommentMarkupBox(id) { $('#mb' + id).toggle(); } /** Handle when the user clicks on a sort by link. */ function handleReSort(link) { var classes = link.attr('class').split(/\s+/); for (var i=0; iThank you! Your comment will show up ' + 'once it is has been approved by a moderator.'); } // Prettify the comment rating. comment.pretty_rating = comment.rating + ' point' + (comment.rating == 1 ? '' : 's'); // Make a class (for displaying not yet moderated comments differently) comment.css_class = comment.displayed ? '' : ' moderate'; // Create a div for this comment. var context = $.extend({}, opts, comment); var div = $(renderTemplate(commentTemplate, context)); // If the user has voted on this comment, highlight the correct arrow. if (comment.vote) { var direction = (comment.vote == 1) ? 'u' : 'd'; div.find('#' + direction + 'v' + comment.id).hide(); div.find('#' + direction + 'u' + comment.id).show(); } if (opts.moderator || comment.text != '[deleted]') { div.find('a.reply').show(); if (comment.proposal_diff) div.find('#sp' + comment.id).show(); if (opts.moderator && !comment.displayed) div.find('#cm' + comment.id).show(); if (opts.moderator || (opts.username == comment.username)) div.find('#dc' + comment.id).show(); } return div; } /** * A simple template renderer. Placeholders such as <%id%> are replaced * by context['id'] with items being escaped. Placeholders such as <#id#> * are not escaped. */ function renderTemplate(template, context) { var esc = $(document.createElement('div')); function handle(ph, escape) { var cur = context; $.each(ph.split('.'), function() { cur = cur[this]; }); return escape ? esc.text(cur || "").html() : cur; } return template.replace(/<([%#])([\w\.]*)\1>/g, function() { return handle(arguments[2], arguments[1] == '%' ? true : false); }); } /** Flash an error message briefly. */ function showError(message) { $(document.createElement('div')).attr({'class': 'popup-error'}) .append($(document.createElement('div')) .attr({'class': 'error-message'}).text(message)) .appendTo('body') .fadeIn("slow") .delay(2000) .fadeOut("slow"); } /** Add a link the user uses to open the comments popup. */ $.fn.comment = function() { return this.each(function() { var id = $(this).attr('id').substring(1); var count = COMMENT_METADATA[id]; var title = count + ' comment' + (count == 1 ? '' : 's'); var image = count > 0 ? opts.commentBrightImage : opts.commentImage; var addcls = count == 0 ? ' nocomment' : ''; $(this) .append( $(document.createElement('a')).attr({ href: '#', 'class': 'sphinx-comment-open' + addcls, id: 'ao' + id }) .append($(document.createElement('img')).attr({ src: image, alt: 'comment', title: title })) .click(function(event) { event.preventDefault(); show($(this).attr('id').substring(2)); }) ) .append( $(document.createElement('a')).attr({ href: '#', 'class': 'sphinx-comment-close hidden', id: 'ah' + id }) .append($(document.createElement('img')).attr({ src: opts.closeCommentImage, alt: 'close', title: 'close' })) .click(function(event) { event.preventDefault(); hide($(this).attr('id').substring(2)); }) ); }); }; var opts = { processVoteURL: '/_process_vote', addCommentURL: '/_add_comment', getCommentsURL: '/_get_comments', acceptCommentURL: '/_accept_comment', deleteCommentURL: '/_delete_comment', commentImage: '/static/_static/comment.png', closeCommentImage: '/static/_static/comment-close.png', loadingImage: '/static/_static/ajax-loader.gif', commentBrightImage: '/static/_static/comment-bright.png', upArrow: '/static/_static/up.png', downArrow: '/static/_static/down.png', upArrowPressed: '/static/_static/up-pressed.png', downArrowPressed: '/static/_static/down-pressed.png', voting: false, moderator: false }; if (typeof COMMENT_OPTIONS != "undefined") { opts = jQuery.extend(opts, COMMENT_OPTIONS); } var popupTemplate = '\
    \

    \ Sort by:\ best rated\ newest\ oldest\

    \
    Comments
    \
    \ loading comments...
    \
      \
      \

      Add a comment\ (markup):

      \
      \ reStructured text markup: *emph*, **strong**, \ ``code``, \ code blocks: :: and an indented block after blank line
      \
      \ \

      \ \ Propose a change ▹\ \ \ Propose a change ▿\ \

      \ \ \ \ \
      \
      \
      '; var commentTemplate = '\
      \
      \
      \ \ \ \ \ \ \
      \
      \ \ \ \ \ \ \
      \
      \
      \

      \ <%username%>\ <%pretty_rating%>\ <%time.delta%>\

      \
      <#text#>
      \

      \ \ reply ▿\ proposal ▹\ proposal ▿\ \ \

      \
      \
      <#proposal_diff#>\
              
      \
        \
        \
        \
        \ '; var replyTemplate = '\
      • \
        \
        \ \ \ \ \ \
        \
        \
      • '; $(document).ready(function() { init(); }); })(jQuery); $(document).ready(function() { // add comment anchors for all paragraphs that are commentable $('.sphinx-has-comment').comment(); // highlight search words in search results $("div.context").each(function() { var params = $.getQueryParameters(); var terms = (params.q) ? params.q[0].split(/\s+/) : []; var result = $(this); $.each(terms, function() { result.highlightText(this.toLowerCase(), 'highlighted'); }); }); // directly open comment window if requested var anchor = document.location.hash; if (anchor.substring(0, 9) == '#comment-') { $('#ao' + anchor.substring(9)).click(); document.location.hash = '#s' + anchor.substring(9); } }); PK9fM>uClinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/up.pngPNG  IHDR7IDATx@ez $& 8:& :Kpwn}O<:!!{G@Dz?"̧ S{g<ݢ lMQwy|? 0 pq8q` pL-'SBNAwTń|U VIENDB`PK9fM$zRRIlinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/pygments.css.highlight .hll { background-color: #ffffcc } .highlight { background: #ffffff; }PK9fM v**Flinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/basic.css/* * basic.css * ~~~~~~~~~ * * Sphinx stylesheet -- basic theme. * * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /* -- main layout ----------------------------------------------------------- */ div.clearer { clear: both; } /* -- relbar ---------------------------------------------------------------- */ div.related { width: 100%; font-size: 90%; } div.related h3 { display: none; } div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline; } div.related li.right { float: right; margin-right: 5px; } /* -- sidebar --------------------------------------------------------------- */ div.sphinxsidebarwrapper { padding: 10px 5px 0 10px; } div.sphinxsidebar { float: left; width: 230px; margin-left: -100%; font-size: 90%; word-wrap: break-word; overflow-wrap : break-word; } div.sphinxsidebar ul { list-style: none; } div.sphinxsidebar ul ul, div.sphinxsidebar ul.want-points { margin-left: 20px; list-style: square; } div.sphinxsidebar ul ul { margin-top: 0; margin-bottom: 0; } div.sphinxsidebar form { margin-top: 10px; } div.sphinxsidebar input { border: 1px solid #98dbcc; font-family: sans-serif; font-size: 1em; } div.sphinxsidebar #searchbox form.search { overflow: hidden; } div.sphinxsidebar #searchbox input[type="text"] { float: left; width: 80%; padding: 0.25em; box-sizing: border-box; } div.sphinxsidebar #searchbox input[type="submit"] { float: left; width: 20%; border-left: none; padding: 0.25em; box-sizing: border-box; } img { border: 0; max-width: 100%; } /* -- search page ----------------------------------------------------------- */ ul.search { margin: 10px 0 0 20px; padding: 0; } ul.search li { padding: 5px 0 5px 20px; background-image: url(file.png); background-repeat: no-repeat; background-position: 0 7px; } ul.search li a { font-weight: bold; } ul.search li div.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } /* -- index page ------------------------------------------------------------ */ table.contentstable { width: 90%; margin-left: auto; margin-right: auto; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } /* -- general index --------------------------------------------------------- */ table.indextable { width: 100%; } table.indextable td { text-align: left; vertical-align: top; } table.indextable ul { margin-top: 0; margin-bottom: 0; list-style-type: none; } table.indextable > tbody > tr > td > ul { padding-left: 0em; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } div.modindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } div.genindex-jumpbox { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 1em 0 1em 0; padding: 0.4em; } /* -- domain module index --------------------------------------------------- */ table.modindextable td { padding: 2px; border-collapse: collapse; } /* -- general body styles --------------------------------------------------- */ div.body { min-width: 450px; max-width: 800px; } div.body p, div.body dd, div.body li, div.body blockquote { -moz-hyphens: auto; -ms-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } a.headerlink { visibility: hidden; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink, caption:hover > a.headerlink, p.caption:hover > a.headerlink, div.code-block-caption:hover > a.headerlink { visibility: visible; } div.body p.caption { text-align: inherit; } div.body td { text-align: left; } .first { margin-top: 0 !important; } p.rubric { margin-top: 30px; font-weight: bold; } img.align-left, .figure.align-left, object.align-left { clear: left; float: left; margin-right: 1em; } img.align-right, .figure.align-right, object.align-right { clear: right; float: right; margin-left: 1em; } img.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } .align-left { text-align: left; } .align-center { text-align: center; } .align-right { text-align: right; } /* -- sidebars -------------------------------------------------------------- */ div.sidebar { margin: 0 0 0.5em 1em; border: 1px solid #ddb; padding: 7px 7px 0 7px; background-color: #ffe; width: 40%; float: right; } p.sidebar-title { font-weight: bold; } /* -- topics ---------------------------------------------------------------- */ div.topic { border: 1px solid #ccc; padding: 7px 7px 0 7px; margin: 10px 0 10px 0; } p.topic-title { font-size: 1.1em; font-weight: bold; margin-top: 10px; } /* -- admonitions ----------------------------------------------------------- */ div.admonition { margin-top: 10px; margin-bottom: 10px; padding: 7px; } div.admonition dt { font-weight: bold; } div.admonition dl { margin-bottom: 0; } p.admonition-title { margin: 0px 10px 5px 0px; font-weight: bold; } div.body p.centered { text-align: center; margin-top: 25px; } /* -- tables ---------------------------------------------------------------- */ table.docutils { border: 0; border-collapse: collapse; } table.align-center { margin-left: auto; margin-right: auto; } table caption span.caption-number { font-style: italic; } table caption span.caption-text { } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; border-top: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #aaa; } table.footnote td, table.footnote th { border: 0 !important; } th { text-align: left; padding-right: 5px; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.citation td { border-bottom: none; } /* -- figures --------------------------------------------------------------- */ div.figure { margin: 0.5em; padding: 0.5em; } div.figure p.caption { padding: 0.3em; } div.figure p.caption span.caption-number { font-style: italic; } div.figure p.caption span.caption-text { } /* -- field list styles ----------------------------------------------------- */ table.field-list td, table.field-list th { border: 0 !important; } .field-list ul { margin: 0; padding-left: 1em; } .field-list p { margin: 0; } .field-name { -moz-hyphens: manual; -ms-hyphens: manual; -webkit-hyphens: manual; hyphens: manual; } /* -- hlist styles ---------------------------------------------------------- */ table.hlist td { vertical-align: top; } /* -- other body styles ----------------------------------------------------- */ ol.arabic { list-style: decimal; } ol.loweralpha { list-style: lower-alpha; } ol.upperalpha { list-style: upper-alpha; } ol.lowerroman { list-style: lower-roman; } ol.upperroman { list-style: upper-roman; } dl { margin-bottom: 15px; } dd p { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } dt:target, span.highlighted { background-color: #fbe54e; } rect.highlighted { fill: #fbe54e; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } .optional { font-size: 1.3em; } .sig-paren { font-size: larger; } .versionmodified { font-style: italic; } .system-message { background-color: #fda; padding: 5px; border: 3px solid red; } .footnote:target { background-color: #ffa; } .line-block { display: block; margin-top: 1em; margin-bottom: 1em; } .line-block .line-block { margin-top: 0; margin-bottom: 0; margin-left: 1.5em; } .guilabel, .menuselection { font-family: sans-serif; } .accelerator { text-decoration: underline; } .classifier { font-style: oblique; } abbr, acronym { border-bottom: dotted 1px; cursor: help; } /* -- code displays --------------------------------------------------------- */ pre { overflow: auto; overflow-y: hidden; /* fixes display issues on Chrome browsers */ } span.pre { -moz-hyphens: none; -ms-hyphens: none; -webkit-hyphens: none; hyphens: none; } td.linenos pre { padding: 5px 0px; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { margin-left: 0.5em; } table.highlighttable td { padding: 0 0.5em 0 0.5em; } div.code-block-caption { padding: 2px 5px; font-size: small; } div.code-block-caption code { background-color: transparent; } div.code-block-caption + div > div.highlight > pre { margin-top: 0; } div.code-block-caption span.caption-number { padding: 0.1em 0.3em; font-style: italic; } div.code-block-caption span.caption-text { } div.literal-block-wrapper { padding: 1em 1em 0; } div.literal-block-wrapper div.highlight { margin: 0; } code.descname { background-color: transparent; font-weight: bold; font-size: 1.2em; } code.descclassname { background-color: transparent; } code.xref, a code { background-color: transparent; font-weight: bold; } h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { background-color: transparent; } .viewcode-link { float: right; } .viewcode-back { float: right; font-family: sans-serif; } div.viewcode-block:target { margin: -1px -10px; padding: 0 10px; } /* -- math display ---------------------------------------------------------- */ img.math { vertical-align: middle; } div.body div.math p { text-align: center; } span.eqno { float: right; } span.eqno a.headerlink { position: relative; left: 0px; z-index: 1; } div.math:hover a.headerlink { visibility: visible; } /* -- printout stylesheet --------------------------------------------------- */ @media print { div.document, div.documentwrapper, div.bodywrapper { margin: 0 !important; width: 100%; } div.sphinxsidebar, div.related, div.footer, #top-link { display: none; } }PK9fM``Plinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/underscore-1.3.1.js// Underscore.js 1.3.1 // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc. // Underscore is freely distributable under the MIT license. // Portions of Underscore are inspired or borrowed from Prototype, // Oliver Steele's Functional, and John Resig's Micro-Templating. // For all details and documentation: // http://documentcloud.github.com/underscore (function() { // Baseline setup // -------------- // Establish the root object, `window` in the browser, or `global` on the server. var root = this; // Save the previous value of the `_` variable. var previousUnderscore = root._; // Establish the object that gets returned to break out of a loop iteration. var breaker = {}; // Save bytes in the minified (but not gzipped) version: var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; // Create quick reference variables for speed access to core prototypes. var slice = ArrayProto.slice, unshift = ArrayProto.unshift, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty; // All **ECMAScript 5** native function implementations that we hope to use // are declared here. var nativeForEach = ArrayProto.forEach, nativeMap = ArrayProto.map, nativeReduce = ArrayProto.reduce, nativeReduceRight = ArrayProto.reduceRight, nativeFilter = ArrayProto.filter, nativeEvery = ArrayProto.every, nativeSome = ArrayProto.some, nativeIndexOf = ArrayProto.indexOf, nativeLastIndexOf = ArrayProto.lastIndexOf, nativeIsArray = Array.isArray, nativeKeys = Object.keys, nativeBind = FuncProto.bind; // Create a safe reference to the Underscore object for use below. var _ = function(obj) { return new wrapper(obj); }; // Export the Underscore object for **Node.js**, with // backwards-compatibility for the old `require()` API. If we're in // the browser, add `_` as a global object via a string identifier, // for Closure Compiler "advanced" mode. if (typeof exports !== 'undefined') { if (typeof module !== 'undefined' && module.exports) { exports = module.exports = _; } exports._ = _; } else { root['_'] = _; } // Current version. _.VERSION = '1.3.1'; // Collection Functions // -------------------- // The cornerstone, an `each` implementation, aka `forEach`. // Handles objects with the built-in `forEach`, arrays, and raw objects. // Delegates to **ECMAScript 5**'s native `forEach` if available. var each = _.each = _.forEach = function(obj, iterator, context) { if (obj == null) return; if (nativeForEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context); } else if (obj.length === +obj.length) { for (var i = 0, l = obj.length; i < l; i++) { if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return; } } else { for (var key in obj) { if (_.has(obj, key)) { if (iterator.call(context, obj[key], key, obj) === breaker) return; } } } }; // Return the results of applying the iterator to each element. // Delegates to **ECMAScript 5**'s native `map` if available. _.map = _.collect = function(obj, iterator, context) { var results = []; if (obj == null) return results; if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); each(obj, function(value, index, list) { results[results.length] = iterator.call(context, value, index, list); }); if (obj.length === +obj.length) results.length = obj.length; return results; }; // **Reduce** builds up a single result from a list of values, aka `inject`, // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available. _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) { var initial = arguments.length > 2; if (obj == null) obj = []; if (nativeReduce && obj.reduce === nativeReduce) { if (context) iterator = _.bind(iterator, context); return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator); } each(obj, function(value, index, list) { if (!initial) { memo = value; initial = true; } else { memo = iterator.call(context, memo, value, index, list); } }); if (!initial) throw new TypeError('Reduce of empty array with no initial value'); return memo; }; // The right-associative version of reduce, also known as `foldr`. // Delegates to **ECMAScript 5**'s native `reduceRight` if available. _.reduceRight = _.foldr = function(obj, iterator, memo, context) { var initial = arguments.length > 2; if (obj == null) obj = []; if (nativeReduceRight && obj.reduceRight === nativeReduceRight) { if (context) iterator = _.bind(iterator, context); return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator); } var reversed = _.toArray(obj).reverse(); if (context && !initial) iterator = _.bind(iterator, context); return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator); }; // Return the first value which passes a truth test. Aliased as `detect`. _.find = _.detect = function(obj, iterator, context) { var result; any(obj, function(value, index, list) { if (iterator.call(context, value, index, list)) { result = value; return true; } }); return result; }; // Return all the elements that pass a truth test. // Delegates to **ECMAScript 5**'s native `filter` if available. // Aliased as `select`. _.filter = _.select = function(obj, iterator, context) { var results = []; if (obj == null) return results; if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context); each(obj, function(value, index, list) { if (iterator.call(context, value, index, list)) results[results.length] = value; }); return results; }; // Return all the elements for which a truth test fails. _.reject = function(obj, iterator, context) { var results = []; if (obj == null) return results; each(obj, function(value, index, list) { if (!iterator.call(context, value, index, list)) results[results.length] = value; }); return results; }; // Determine whether all of the elements match a truth test. // Delegates to **ECMAScript 5**'s native `every` if available. // Aliased as `all`. _.every = _.all = function(obj, iterator, context) { var result = true; if (obj == null) return result; if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context); each(obj, function(value, index, list) { if (!(result = result && iterator.call(context, value, index, list))) return breaker; }); return result; }; // Determine if at least one element in the object matches a truth test. // Delegates to **ECMAScript 5**'s native `some` if available. // Aliased as `any`. var any = _.some = _.any = function(obj, iterator, context) { iterator || (iterator = _.identity); var result = false; if (obj == null) return result; if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context); each(obj, function(value, index, list) { if (result || (result = iterator.call(context, value, index, list))) return breaker; }); return !!result; }; // Determine if a given value is included in the array or object using `===`. // Aliased as `contains`. _.include = _.contains = function(obj, target) { var found = false; if (obj == null) return found; if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1; found = any(obj, function(value) { return value === target; }); return found; }; // Invoke a method (with arguments) on every item in a collection. _.invoke = function(obj, method) { var args = slice.call(arguments, 2); return _.map(obj, function(value) { return (_.isFunction(method) ? method || value : value[method]).apply(value, args); }); }; // Convenience version of a common use case of `map`: fetching a property. _.pluck = function(obj, key) { return _.map(obj, function(value){ return value[key]; }); }; // Return the maximum element or (element-based computation). _.max = function(obj, iterator, context) { if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj); if (!iterator && _.isEmpty(obj)) return -Infinity; var result = {computed : -Infinity}; each(obj, function(value, index, list) { var computed = iterator ? iterator.call(context, value, index, list) : value; computed >= result.computed && (result = {value : value, computed : computed}); }); return result.value; }; // Return the minimum element (or element-based computation). _.min = function(obj, iterator, context) { if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj); if (!iterator && _.isEmpty(obj)) return Infinity; var result = {computed : Infinity}; each(obj, function(value, index, list) { var computed = iterator ? iterator.call(context, value, index, list) : value; computed < result.computed && (result = {value : value, computed : computed}); }); return result.value; }; // Shuffle an array. _.shuffle = function(obj) { var shuffled = [], rand; each(obj, function(value, index, list) { if (index == 0) { shuffled[0] = value; } else { rand = Math.floor(Math.random() * (index + 1)); shuffled[index] = shuffled[rand]; shuffled[rand] = value; } }); return shuffled; }; // Sort the object's values by a criterion produced by an iterator. _.sortBy = function(obj, iterator, context) { return _.pluck(_.map(obj, function(value, index, list) { return { value : value, criteria : iterator.call(context, value, index, list) }; }).sort(function(left, right) { var a = left.criteria, b = right.criteria; return a < b ? -1 : a > b ? 1 : 0; }), 'value'); }; // Groups the object's values by a criterion. Pass either a string attribute // to group by, or a function that returns the criterion. _.groupBy = function(obj, val) { var result = {}; var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; }; each(obj, function(value, index) { var key = iterator(value, index); (result[key] || (result[key] = [])).push(value); }); return result; }; // Use a comparator function to figure out at what index an object should // be inserted so as to maintain order. Uses binary search. _.sortedIndex = function(array, obj, iterator) { iterator || (iterator = _.identity); var low = 0, high = array.length; while (low < high) { var mid = (low + high) >> 1; iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid; } return low; }; // Safely convert anything iterable into a real, live array. _.toArray = function(iterable) { if (!iterable) return []; if (iterable.toArray) return iterable.toArray(); if (_.isArray(iterable)) return slice.call(iterable); if (_.isArguments(iterable)) return slice.call(iterable); return _.values(iterable); }; // Return the number of elements in an object. _.size = function(obj) { return _.toArray(obj).length; }; // Array Functions // --------------- // Get the first element of an array. Passing **n** will return the first N // values in the array. Aliased as `head`. The **guard** check allows it to work // with `_.map`. _.first = _.head = function(array, n, guard) { return (n != null) && !guard ? slice.call(array, 0, n) : array[0]; }; // Returns everything but the last entry of the array. Especcialy useful on // the arguments object. Passing **n** will return all the values in // the array, excluding the last N. The **guard** check allows it to work with // `_.map`. _.initial = function(array, n, guard) { return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n)); }; // Get the last element of an array. Passing **n** will return the last N // values in the array. The **guard** check allows it to work with `_.map`. _.last = function(array, n, guard) { if ((n != null) && !guard) { return slice.call(array, Math.max(array.length - n, 0)); } else { return array[array.length - 1]; } }; // Returns everything but the first entry of the array. Aliased as `tail`. // Especially useful on the arguments object. Passing an **index** will return // the rest of the values in the array from that index onward. The **guard** // check allows it to work with `_.map`. _.rest = _.tail = function(array, index, guard) { return slice.call(array, (index == null) || guard ? 1 : index); }; // Trim out all falsy values from an array. _.compact = function(array) { return _.filter(array, function(value){ return !!value; }); }; // Return a completely flattened version of an array. _.flatten = function(array, shallow) { return _.reduce(array, function(memo, value) { if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value)); memo[memo.length] = value; return memo; }, []); }; // Return a version of the array that does not contain the specified value(s). _.without = function(array) { return _.difference(array, slice.call(arguments, 1)); }; // Produce a duplicate-free version of the array. If the array has already // been sorted, you have the option of using a faster algorithm. // Aliased as `unique`. _.uniq = _.unique = function(array, isSorted, iterator) { var initial = iterator ? _.map(array, iterator) : array; var result = []; _.reduce(initial, function(memo, el, i) { if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) { memo[memo.length] = el; result[result.length] = array[i]; } return memo; }, []); return result; }; // Produce an array that contains the union: each distinct element from all of // the passed-in arrays. _.union = function() { return _.uniq(_.flatten(arguments, true)); }; // Produce an array that contains every item shared between all the // passed-in arrays. (Aliased as "intersect" for back-compat.) _.intersection = _.intersect = function(array) { var rest = slice.call(arguments, 1); return _.filter(_.uniq(array), function(item) { return _.every(rest, function(other) { return _.indexOf(other, item) >= 0; }); }); }; // Take the difference between one array and a number of other arrays. // Only the elements present in just the first array will remain. _.difference = function(array) { var rest = _.flatten(slice.call(arguments, 1)); return _.filter(array, function(value){ return !_.include(rest, value); }); }; // Zip together multiple lists into a single array -- elements that share // an index go together. _.zip = function() { var args = slice.call(arguments); var length = _.max(_.pluck(args, 'length')); var results = new Array(length); for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i); return results; }; // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**), // we need this function. Return the position of the first occurrence of an // item in an array, or -1 if the item is not included in the array. // Delegates to **ECMAScript 5**'s native `indexOf` if available. // If the array is large and already in sort order, pass `true` // for **isSorted** to use binary search. _.indexOf = function(array, item, isSorted) { if (array == null) return -1; var i, l; if (isSorted) { i = _.sortedIndex(array, item); return array[i] === item ? i : -1; } if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item); for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i; return -1; }; // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available. _.lastIndexOf = function(array, item) { if (array == null) return -1; if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item); var i = array.length; while (i--) if (i in array && array[i] === item) return i; return -1; }; // Generate an integer Array containing an arithmetic progression. A port of // the native Python `range()` function. See // [the Python documentation](http://docs.python.org/library/functions.html#range). _.range = function(start, stop, step) { if (arguments.length <= 1) { stop = start || 0; start = 0; } step = arguments[2] || 1; var len = Math.max(Math.ceil((stop - start) / step), 0); var idx = 0; var range = new Array(len); while(idx < len) { range[idx++] = start; start += step; } return range; }; // Function (ahem) Functions // ------------------ // Reusable constructor function for prototype setting. var ctor = function(){}; // Create a function bound to a given object (assigning `this`, and arguments, // optionally). Binding with arguments is also known as `curry`. // Delegates to **ECMAScript 5**'s native `Function.bind` if available. // We check for `func.bind` first, to fail fast when `func` is undefined. _.bind = function bind(func, context) { var bound, args; if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); if (!_.isFunction(func)) throw new TypeError; args = slice.call(arguments, 2); return bound = function() { if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments))); ctor.prototype = func.prototype; var self = new ctor; var result = func.apply(self, args.concat(slice.call(arguments))); if (Object(result) === result) return result; return self; }; }; // Bind all of an object's methods to that object. Useful for ensuring that // all callbacks defined on an object belong to it. _.bindAll = function(obj) { var funcs = slice.call(arguments, 1); if (funcs.length == 0) funcs = _.functions(obj); each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); }); return obj; }; // Memoize an expensive function by storing its results. _.memoize = function(func, hasher) { var memo = {}; hasher || (hasher = _.identity); return function() { var key = hasher.apply(this, arguments); return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments)); }; }; // Delays a function for the given number of milliseconds, and then calls // it with the arguments supplied. _.delay = function(func, wait) { var args = slice.call(arguments, 2); return setTimeout(function(){ return func.apply(func, args); }, wait); }; // Defers a function, scheduling it to run after the current call stack has // cleared. _.defer = function(func) { return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); }; // Returns a function, that, when invoked, will only be triggered at most once // during a given window of time. _.throttle = function(func, wait) { var context, args, timeout, throttling, more; var whenDone = _.debounce(function(){ more = throttling = false; }, wait); return function() { context = this; args = arguments; var later = function() { timeout = null; if (more) func.apply(context, args); whenDone(); }; if (!timeout) timeout = setTimeout(later, wait); if (throttling) { more = true; } else { func.apply(context, args); } whenDone(); throttling = true; }; }; // Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. _.debounce = function(func, wait) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; func.apply(context, args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; }; // Returns a function that will be executed at most one time, no matter how // often you call it. Useful for lazy initialization. _.once = function(func) { var ran = false, memo; return function() { if (ran) return memo; ran = true; return memo = func.apply(this, arguments); }; }; // Returns the first function passed as an argument to the second, // allowing you to adjust arguments, run code before and after, and // conditionally execute the original function. _.wrap = function(func, wrapper) { return function() { var args = [func].concat(slice.call(arguments, 0)); return wrapper.apply(this, args); }; }; // Returns a function that is the composition of a list of functions, each // consuming the return value of the function that follows. _.compose = function() { var funcs = arguments; return function() { var args = arguments; for (var i = funcs.length - 1; i >= 0; i--) { args = [funcs[i].apply(this, args)]; } return args[0]; }; }; // Returns a function that will only be executed after being called N times. _.after = function(times, func) { if (times <= 0) return func(); return function() { if (--times < 1) { return func.apply(this, arguments); } }; }; // Object Functions // ---------------- // Retrieve the names of an object's properties. // Delegates to **ECMAScript 5**'s native `Object.keys` _.keys = nativeKeys || function(obj) { if (obj !== Object(obj)) throw new TypeError('Invalid object'); var keys = []; for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key; return keys; }; // Retrieve the values of an object's properties. _.values = function(obj) { return _.map(obj, _.identity); }; // Return a sorted list of the function names available on the object. // Aliased as `methods` _.functions = _.methods = function(obj) { var names = []; for (var key in obj) { if (_.isFunction(obj[key])) names.push(key); } return names.sort(); }; // Extend a given object with all the properties in passed-in object(s). _.extend = function(obj) { each(slice.call(arguments, 1), function(source) { for (var prop in source) { obj[prop] = source[prop]; } }); return obj; }; // Fill in a given object with default properties. _.defaults = function(obj) { each(slice.call(arguments, 1), function(source) { for (var prop in source) { if (obj[prop] == null) obj[prop] = source[prop]; } }); return obj; }; // Create a (shallow-cloned) duplicate of an object. _.clone = function(obj) { if (!_.isObject(obj)) return obj; return _.isArray(obj) ? obj.slice() : _.extend({}, obj); }; // Invokes interceptor with the obj, and then returns obj. // The primary purpose of this method is to "tap into" a method chain, in // order to perform operations on intermediate results within the chain. _.tap = function(obj, interceptor) { interceptor(obj); return obj; }; // Internal recursive comparison function. function eq(a, b, stack) { // Identical objects are equal. `0 === -0`, but they aren't identical. // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal. if (a === b) return a !== 0 || 1 / a == 1 / b; // A strict comparison is necessary because `null == undefined`. if (a == null || b == null) return a === b; // Unwrap any wrapped objects. if (a._chain) a = a._wrapped; if (b._chain) b = b._wrapped; // Invoke a custom `isEqual` method if one is provided. if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b); if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a); // Compare `[[Class]]` names. var className = toString.call(a); if (className != toString.call(b)) return false; switch (className) { // Strings, numbers, dates, and booleans are compared by value. case '[object String]': // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is // equivalent to `new String("5")`. return a == String(b); case '[object Number]': // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for // other numeric values. return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b); case '[object Date]': case '[object Boolean]': // Coerce dates and booleans to numeric primitive values. Dates are compared by their // millisecond representations. Note that invalid dates with millisecond representations // of `NaN` are not equivalent. return +a == +b; // RegExps are compared by their source patterns and flags. case '[object RegExp]': return a.source == b.source && a.global == b.global && a.multiline == b.multiline && a.ignoreCase == b.ignoreCase; } if (typeof a != 'object' || typeof b != 'object') return false; // Assume equality for cyclic structures. The algorithm for detecting cyclic // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. var length = stack.length; while (length--) { // Linear search. Performance is inversely proportional to the number of // unique nested structures. if (stack[length] == a) return true; } // Add the first object to the stack of traversed objects. stack.push(a); var size = 0, result = true; // Recursively compare objects and arrays. if (className == '[object Array]') { // Compare array lengths to determine if a deep comparison is necessary. size = a.length; result = size == b.length; if (result) { // Deep compare the contents, ignoring non-numeric properties. while (size--) { // Ensure commutative equality for sparse arrays. if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break; } } } else { // Objects with different constructors are not equivalent. if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false; // Deep compare objects. for (var key in a) { if (_.has(a, key)) { // Count the expected number of properties. size++; // Deep compare each member. if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break; } } // Ensure that both objects contain the same number of properties. if (result) { for (key in b) { if (_.has(b, key) && !(size--)) break; } result = !size; } } // Remove the first object from the stack of traversed objects. stack.pop(); return result; } // Perform a deep comparison to check if two objects are equal. _.isEqual = function(a, b) { return eq(a, b, []); }; // Is a given array, string, or object empty? // An "empty" object has no enumerable own-properties. _.isEmpty = function(obj) { if (_.isArray(obj) || _.isString(obj)) return obj.length === 0; for (var key in obj) if (_.has(obj, key)) return false; return true; }; // Is a given value a DOM element? _.isElement = function(obj) { return !!(obj && obj.nodeType == 1); }; // Is a given value an array? // Delegates to ECMA5's native Array.isArray _.isArray = nativeIsArray || function(obj) { return toString.call(obj) == '[object Array]'; }; // Is a given variable an object? _.isObject = function(obj) { return obj === Object(obj); }; // Is a given variable an arguments object? _.isArguments = function(obj) { return toString.call(obj) == '[object Arguments]'; }; if (!_.isArguments(arguments)) { _.isArguments = function(obj) { return !!(obj && _.has(obj, 'callee')); }; } // Is a given value a function? _.isFunction = function(obj) { return toString.call(obj) == '[object Function]'; }; // Is a given value a string? _.isString = function(obj) { return toString.call(obj) == '[object String]'; }; // Is a given value a number? _.isNumber = function(obj) { return toString.call(obj) == '[object Number]'; }; // Is the given value `NaN`? _.isNaN = function(obj) { // `NaN` is the only value for which `===` is not reflexive. return obj !== obj; }; // Is a given value a boolean? _.isBoolean = function(obj) { return obj === true || obj === false || toString.call(obj) == '[object Boolean]'; }; // Is a given value a date? _.isDate = function(obj) { return toString.call(obj) == '[object Date]'; }; // Is the given value a regular expression? _.isRegExp = function(obj) { return toString.call(obj) == '[object RegExp]'; }; // Is a given value equal to null? _.isNull = function(obj) { return obj === null; }; // Is a given variable undefined? _.isUndefined = function(obj) { return obj === void 0; }; // Has own property? _.has = function(obj, key) { return hasOwnProperty.call(obj, key); }; // Utility Functions // ----------------- // Run Underscore.js in *noConflict* mode, returning the `_` variable to its // previous owner. Returns a reference to the Underscore object. _.noConflict = function() { root._ = previousUnderscore; return this; }; // Keep the identity function around for default iterators. _.identity = function(value) { return value; }; // Run a function **n** times. _.times = function (n, iterator, context) { for (var i = 0; i < n; i++) iterator.call(context, i); }; // Escape a string for HTML interpolation. _.escape = function(string) { return (''+string).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/\//g,'/'); }; // Add your own custom functions to the Underscore object, ensuring that // they're correctly added to the OOP wrapper as well. _.mixin = function(obj) { each(_.functions(obj), function(name){ addToWrapper(name, _[name] = obj[name]); }); }; // Generate a unique integer id (unique within the entire client session). // Useful for temporary DOM ids. var idCounter = 0; _.uniqueId = function(prefix) { var id = idCounter++; return prefix ? prefix + id : id; }; // By default, Underscore uses ERB-style template delimiters, change the // following template settings to use alternative delimiters. _.templateSettings = { evaluate : /<%([\s\S]+?)%>/g, interpolate : /<%=([\s\S]+?)%>/g, escape : /<%-([\s\S]+?)%>/g }; // When customizing `templateSettings`, if you don't want to define an // interpolation, evaluation or escaping regex, we need one that is // guaranteed not to match. var noMatch = /.^/; // Within an interpolation, evaluation, or escaping, remove HTML escaping // that had been previously added. var unescape = function(code) { return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'"); }; // JavaScript micro-templating, similar to John Resig's implementation. // Underscore templating handles arbitrary delimiters, preserves whitespace, // and correctly escapes quotes within interpolated code. _.template = function(str, data) { var c = _.templateSettings; var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' + 'with(obj||{}){__p.push(\'' + str.replace(/\\/g, '\\\\') .replace(/'/g, "\\'") .replace(c.escape || noMatch, function(match, code) { return "',_.escape(" + unescape(code) + "),'"; }) .replace(c.interpolate || noMatch, function(match, code) { return "'," + unescape(code) + ",'"; }) .replace(c.evaluate || noMatch, function(match, code) { return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('"; }) .replace(/\r/g, '\\r') .replace(/\n/g, '\\n') .replace(/\t/g, '\\t') + "');}return __p.join('');"; var func = new Function('obj', '_', tmpl); if (data) return func(data, _); return function(data) { return func.call(this, data, _); }; }; // Add a "chain" function, which will delegate to the wrapper. _.chain = function(obj) { return _(obj).chain(); }; // The OOP Wrapper // --------------- // If Underscore is called as a function, it returns a wrapped object that // can be used OO-style. This wrapper holds altered versions of all the // underscore functions. Wrapped objects may be chained. var wrapper = function(obj) { this._wrapped = obj; }; // Expose `wrapper.prototype` as `_.prototype` _.prototype = wrapper.prototype; // Helper function to continue chaining intermediate results. var result = function(obj, chain) { return chain ? _(obj).chain() : obj; }; // A method to easily add functions to the OOP wrapper. var addToWrapper = function(name, func) { wrapper.prototype[name] = function() { var args = slice.call(arguments); unshift.call(args, this._wrapped); return result(func.apply(_, args), this._chain); }; }; // Add all of the Underscore functions to the wrapper object. _.mixin(_); // Add all mutator Array functions to the wrapper. each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { var method = ArrayProto[name]; wrapper.prototype[name] = function() { var wrapped = this._wrapped; method.apply(wrapped, arguments); var length = wrapped.length; if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0]; return result(wrapped, this._chain); }; }); // Add all accessor Array functions to the wrapper. each(['concat', 'join', 'slice'], function(name) { var method = ArrayProto[name]; wrapper.prototype[name] = function() { return result(method.apply(this._wrapped, arguments), this._chain); }; }); // Start chaining a wrapped Underscore object. wrapper.prototype.chain = function() { this._chain = true; return this; }; // Extracts the result from a wrapped and chained object. wrapper.prototype.value = function() { return this._wrapped; }; }).call(this); PK9fMa$a$Hlinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/doctools.js/* * doctools.js * ~~~~~~~~~~~ * * Sphinx JavaScript utilities for all documentation. * * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ /** * select a different prefix for underscore */ $u = _.noConflict(); /** * make the code below compatible with browsers without * an installed firebug like debugger if (!window.console || !console.firebug) { var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; window.console = {}; for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {}; } */ /** * small helper function to urldecode strings */ jQuery.urldecode = function(x) { return decodeURIComponent(x).replace(/\+/g, ' '); }; /** * small helper function to urlencode strings */ jQuery.urlencode = encodeURIComponent; /** * This function returns the parsed url parameters of the * current request. Multiple values per key are supported, * it will always return arrays of strings for the value parts. */ jQuery.getQueryParameters = function(s) { if (typeof s === 'undefined') s = document.location.search; var parts = s.substr(s.indexOf('?') + 1).split('&'); var result = {}; for (var i = 0; i < parts.length; i++) { var tmp = parts[i].split('=', 2); var key = jQuery.urldecode(tmp[0]); var value = jQuery.urldecode(tmp[1]); if (key in result) result[key].push(value); else result[key] = [value]; } return result; }; /** * highlight a given string on a jquery object by wrapping it in * span elements with the given class name. */ jQuery.fn.highlightText = function(text, className) { function highlight(node, addItems) { if (node.nodeType === 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); if (pos >= 0 && !jQuery(node.parentNode).hasClass(className) && !jQuery(node.parentNode).hasClass("nohighlight")) { var span; var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); if (isInSVG) { span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); } else { span = document.createElement("span"); span.className = className; } span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); if (isInSVG) { var bbox = span.getBBox(); var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); rect.x.baseVal.value = bbox.x; rect.y.baseVal.value = bbox.y; rect.width.baseVal.value = bbox.width; rect.height.baseVal.value = bbox.height; rect.setAttribute('class', className); var parentOfText = node.parentNode.parentNode; addItems.push({ "parent": node.parentNode, "target": rect}); } } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { highlight(this, addItems); }); } } var addItems = []; var result = this.each(function() { highlight(this, addItems); }); for (var i = 0; i < addItems.length; ++i) { jQuery(addItems[i].parent).before(addItems[i].target); } return result; }; /* * backward compatibility for jQuery.browser * This will be supported until firefox bug is fixed. */ if (!jQuery.browser) { jQuery.uaMatch = function(ua) { ua = ua.toLowerCase(); var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || /(webkit)[ \/]([\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || /(msie) ([\w.]+)/.exec(ua) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || []; return { browser: match[ 1 ] || "", version: match[ 2 ] || "0" }; }; jQuery.browser = {}; jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; } /** * Small JavaScript module for the documentation. */ var Documentation = { init : function() { this.fixFirefoxAnchorBug(); this.highlightSearchWords(); this.initIndexTable(); if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { this.initOnKeyListeners(); } }, /** * i18n support */ TRANSLATIONS : {}, PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, LOCALE : 'unknown', // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext : function(string) { var translated = Documentation.TRANSLATIONS[string]; if (typeof translated === 'undefined') return string; return (typeof translated === 'string') ? translated : translated[0]; }, ngettext : function(singular, plural, n) { var translated = Documentation.TRANSLATIONS[singular]; if (typeof translated === 'undefined') return (n == 1) ? singular : plural; return translated[Documentation.PLURALEXPR(n)]; }, addTranslations : function(catalog) { for (var key in catalog.messages) this.TRANSLATIONS[key] = catalog.messages[key]; this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); this.LOCALE = catalog.locale; }, /** * add context elements like header anchor links */ addContextElements : function() { $('div[id] > :header:first').each(function() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this headline')). appendTo(this); }); $('dt[id]').each(function() { $('\u00B6'). attr('href', '#' + this.id). attr('title', _('Permalink to this definition')). appendTo(this); }); }, /** * workaround a firefox stupidity * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 */ fixFirefoxAnchorBug : function() { if (document.location.hash && $.browser.mozilla) window.setTimeout(function() { document.location.href += ''; }, 10); }, /** * highlight the search words provided in the url in the text */ highlightSearchWords : function() { var params = $.getQueryParameters(); var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; if (terms.length) { var body = $('div.body'); if (!body.length) { body = $('body'); } window.setTimeout(function() { $.each(terms, function() { body.highlightText(this.toLowerCase(), 'highlighted'); }); }, 10); $('') .appendTo($('#searchbox')); } }, /** * init the domain index toggle buttons */ initIndexTable : function() { var togglers = $('img.toggler').click(function() { var src = $(this).attr('src'); var idnum = $(this).attr('id').substr(7); $('tr.cg-' + idnum).toggle(); if (src.substr(-9) === 'minus.png') $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); else $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); }).css('display', ''); if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { togglers.click(); } }, /** * helper function to hide the search marks again */ hideSearchWords : function() { $('#searchbox .highlight-link').fadeOut(300); $('span.highlighted').removeClass('highlighted'); }, /** * make the url absolute */ makeURL : function(relativeURL) { return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; }, /** * get the current relative url */ getCurrentURL : function() { var path = document.location.pathname; var parts = path.split(/\//); $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { if (this === '..') parts.pop(); }); var url = parts.join('/'); return path.substring(url.lastIndexOf('/') + 1, path.length - 1); }, initOnKeyListeners: function() { $(document).keyup(function(event) { var activeElementType = document.activeElement.tagName; // don't navigate when in search box or textarea if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); if (prevHref) { window.location.href = prevHref; return false; } case 39: // right var nextHref = $('link[rel="next"]').prop('href'); if (nextHref) { window.location.href = nextHref; return false; } } } }); } }; // quick alias for translations _ = Documentation.gettext; $(document).ready(function() { Documentation.init(); }); PK9fM%cY((Hlinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/_stemmer.js// generatedy by JSX compiler 0.9.89 (2014-05-20 06:01:03 +0900; 8e8c6105f36f3dfe440ea026a3c93a3444977102) var JSX = {}; (function (JSX) { /** * extends the class */ function $__jsx_extend(derivations, base) { var ctor = function () {}; ctor.prototype = base.prototype; var proto = new ctor(); for (var i in derivations) { derivations[i].prototype = proto; } } /** * copies the implementations from source interface to target */ function $__jsx_merge_interface(target, source) { for (var k in source.prototype) if (source.prototype.hasOwnProperty(k)) target.prototype[k] = source.prototype[k]; } /** * defers the initialization of the property */ function $__jsx_lazy_init(obj, prop, func) { function reset(obj, prop, value) { delete obj[prop]; obj[prop] = value; return value; } Object.defineProperty(obj, prop, { get: function () { return reset(obj, prop, func()); }, set: function (v) { reset(obj, prop, v); }, enumerable: true, configurable: true }); } var $__jsx_imul = Math.imul; if (typeof $__jsx_imul === "undefined") { $__jsx_imul = function (a, b) { var ah = (a >>> 16) & 0xffff; var al = a & 0xffff; var bh = (b >>> 16) & 0xffff; var bl = b & 0xffff; return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0); }; } /** * fused int-ops with side-effects */ function $__jsx_ipadd(o, p, r) { return o[p] = (o[p] + r) | 0; } function $__jsx_ipsub(o, p, r) { return o[p] = (o[p] - r) | 0; } function $__jsx_ipmul(o, p, r) { return o[p] = $__jsx_imul(o[p], r); } function $__jsx_ipdiv(o, p, r) { return o[p] = (o[p] / r) | 0; } function $__jsx_ipmod(o, p, r) { return o[p] = (o[p] % r) | 0; } function $__jsx_ippostinc(o, p) { var v = o[p]; o[p] = (v + 1) | 0; return v; } function $__jsx_ippostdec(o, p) { var v = o[p]; o[p] = (v - 1) | 0; return v; } /** * non-inlined version of Array#each */ function $__jsx_forEach(o, f) { var l = o.length; for (var i = 0; i < l; ++i) f(o[i]); } /* * global functions, renamed to avoid conflict with local variable names */ var $__jsx_parseInt = parseInt; var $__jsx_parseFloat = parseFloat; function $__jsx_isNaN(n) { return n !== n; } var $__jsx_isFinite = isFinite; var $__jsx_encodeURIComponent = encodeURIComponent; var $__jsx_decodeURIComponent = decodeURIComponent; var $__jsx_encodeURI = encodeURI; var $__jsx_decodeURI = decodeURI; var $__jsx_ObjectToString = Object.prototype.toString; var $__jsx_ObjectHasOwnProperty = Object.prototype.hasOwnProperty; /* * profiler object, initialized afterwards */ function $__jsx_profiler() { } /* * public interface to JSX code */ JSX.require = function (path) { var m = $__jsx_classMap[path]; return m !== undefined ? m : null; }; JSX.profilerIsRunning = function () { return $__jsx_profiler.getResults != null; }; JSX.getProfileResults = function () { return ($__jsx_profiler.getResults || function () { return {}; })(); }; JSX.postProfileResults = function (url, cb) { if ($__jsx_profiler.postResults == null) throw new Error("profiler has not been turned on"); return $__jsx_profiler.postResults(url, cb); }; JSX.resetProfileResults = function () { if ($__jsx_profiler.resetResults == null) throw new Error("profiler has not been turned on"); return $__jsx_profiler.resetResults(); }; JSX.DEBUG = false; var GeneratorFunction$0 = (function () { try { return Function('import {GeneratorFunction} from "std:iteration"; return GeneratorFunction')(); } catch (e) { return function GeneratorFunction () {}; } })(); var __jsx_generator_object$0 = (function () { function __jsx_generator_object() { this.__next = 0; this.__loop = null; this.__seed = null; this.__value = undefined; this.__status = 0; // SUSPENDED: 0, ACTIVE: 1, DEAD: 2 } __jsx_generator_object.prototype.next = function (seed) { switch (this.__status) { case 0: this.__status = 1; this.__seed = seed; // go next! this.__loop(this.__next); var done = false; if (this.__next != -1) { this.__status = 0; } else { this.__status = 2; done = true; } return { value: this.__value, done: done }; case 1: throw new Error("Generator is already running"); case 2: throw new Error("Generator is already finished"); default: throw new Error("Unexpected generator internal state"); } }; return __jsx_generator_object; }()); function Among(s, substring_i, result) { this.s_size = s.length; this.s = s; this.substring_i = substring_i; this.result = result; this.method = null; this.instance = null; }; function Among$0(s, substring_i, result, method, instance) { this.s_size = s.length; this.s = s; this.substring_i = substring_i; this.result = result; this.method = method; this.instance = instance; }; $__jsx_extend([Among, Among$0], Object); function Stemmer() { }; $__jsx_extend([Stemmer], Object); function BaseStemmer() { var current$0; var cursor$0; var limit$0; this.cache = ({ }); current$0 = this.current = ""; cursor$0 = this.cursor = 0; limit$0 = this.limit = current$0.length; this.limit_backward = 0; this.bra = cursor$0; this.ket = limit$0; }; $__jsx_extend([BaseStemmer], Stemmer); BaseStemmer.prototype.setCurrent$S = function (value) { var current$0; var cursor$0; var limit$0; current$0 = this.current = value; cursor$0 = this.cursor = 0; limit$0 = this.limit = current$0.length; this.limit_backward = 0; this.bra = cursor$0; this.ket = limit$0; }; function BaseStemmer$setCurrent$LBaseStemmer$S($this, value) { var current$0; var cursor$0; var limit$0; current$0 = $this.current = value; cursor$0 = $this.cursor = 0; limit$0 = $this.limit = current$0.length; $this.limit_backward = 0; $this.bra = cursor$0; $this.ket = limit$0; }; BaseStemmer.setCurrent$LBaseStemmer$S = BaseStemmer$setCurrent$LBaseStemmer$S; BaseStemmer.prototype.getCurrent$ = function () { return this.current; }; function BaseStemmer$getCurrent$LBaseStemmer$($this) { return $this.current; }; BaseStemmer.getCurrent$LBaseStemmer$ = BaseStemmer$getCurrent$LBaseStemmer$; BaseStemmer.prototype.copy_from$LBaseStemmer$ = function (other) { this.current = other.current; this.cursor = other.cursor; this.limit = other.limit; this.limit_backward = other.limit_backward; this.bra = other.bra; this.ket = other.ket; }; function BaseStemmer$copy_from$LBaseStemmer$LBaseStemmer$($this, other) { $this.current = other.current; $this.cursor = other.cursor; $this.limit = other.limit; $this.limit_backward = other.limit_backward; $this.bra = other.bra; $this.ket = other.ket; }; BaseStemmer.copy_from$LBaseStemmer$LBaseStemmer$ = BaseStemmer$copy_from$LBaseStemmer$LBaseStemmer$; BaseStemmer.prototype.in_grouping$AIII = function (s, min, max) { var ch; var $__jsx_postinc_t; if (this.cursor >= this.limit) { return false; } ch = this.current.charCodeAt(this.cursor); if (ch > max || ch < min) { return false; } ch -= min; if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) === 0) { return false; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; }; function BaseStemmer$in_grouping$LBaseStemmer$AIII($this, s, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor >= $this.limit) { return false; } ch = $this.current.charCodeAt($this.cursor); if (ch > max || ch < min) { return false; } ch -= min; if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) === 0) { return false; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; }; BaseStemmer.in_grouping$LBaseStemmer$AIII = BaseStemmer$in_grouping$LBaseStemmer$AIII; BaseStemmer.prototype.in_grouping_b$AIII = function (s, min, max) { var ch; var $__jsx_postinc_t; if (this.cursor <= this.limit_backward) { return false; } ch = this.current.charCodeAt(this.cursor - 1); if (ch > max || ch < min) { return false; } ch -= min; if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) === 0) { return false; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; }; function BaseStemmer$in_grouping_b$LBaseStemmer$AIII($this, s, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor <= $this.limit_backward) { return false; } ch = $this.current.charCodeAt($this.cursor - 1); if (ch > max || ch < min) { return false; } ch -= min; if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) === 0) { return false; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; }; BaseStemmer.in_grouping_b$LBaseStemmer$AIII = BaseStemmer$in_grouping_b$LBaseStemmer$AIII; BaseStemmer.prototype.out_grouping$AIII = function (s, min, max) { var ch; var $__jsx_postinc_t; if (this.cursor >= this.limit) { return false; } ch = this.current.charCodeAt(this.cursor); if (ch > max || ch < min) { ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; } ch -= min; if ((s[ch >>> 3] & 0X1 << (ch & 0x7)) === 0) { ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; } return false; }; function BaseStemmer$out_grouping$LBaseStemmer$AIII($this, s, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor >= $this.limit) { return false; } ch = $this.current.charCodeAt($this.cursor); if (ch > max || ch < min) { ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; } ch -= min; if ((s[ch >>> 3] & 0X1 << (ch & 0x7)) === 0) { ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; } return false; }; BaseStemmer.out_grouping$LBaseStemmer$AIII = BaseStemmer$out_grouping$LBaseStemmer$AIII; BaseStemmer.prototype.out_grouping_b$AIII = function (s, min, max) { var ch; var $__jsx_postinc_t; if (this.cursor <= this.limit_backward) { return false; } ch = this.current.charCodeAt(this.cursor - 1); if (ch > max || ch < min) { ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; } ch -= min; if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) === 0) { ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; } return false; }; function BaseStemmer$out_grouping_b$LBaseStemmer$AIII($this, s, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor <= $this.limit_backward) { return false; } ch = $this.current.charCodeAt($this.cursor - 1); if (ch > max || ch < min) { ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; } ch -= min; if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) === 0) { ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; } return false; }; BaseStemmer.out_grouping_b$LBaseStemmer$AIII = BaseStemmer$out_grouping_b$LBaseStemmer$AIII; BaseStemmer.prototype.in_range$II = function (min, max) { var ch; var $__jsx_postinc_t; if (this.cursor >= this.limit) { return false; } ch = this.current.charCodeAt(this.cursor); if (ch > max || ch < min) { return false; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; }; function BaseStemmer$in_range$LBaseStemmer$II($this, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor >= $this.limit) { return false; } ch = $this.current.charCodeAt($this.cursor); if (ch > max || ch < min) { return false; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; }; BaseStemmer.in_range$LBaseStemmer$II = BaseStemmer$in_range$LBaseStemmer$II; BaseStemmer.prototype.in_range_b$II = function (min, max) { var ch; var $__jsx_postinc_t; if (this.cursor <= this.limit_backward) { return false; } ch = this.current.charCodeAt(this.cursor - 1); if (ch > max || ch < min) { return false; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; }; function BaseStemmer$in_range_b$LBaseStemmer$II($this, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor <= $this.limit_backward) { return false; } ch = $this.current.charCodeAt($this.cursor - 1); if (ch > max || ch < min) { return false; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; }; BaseStemmer.in_range_b$LBaseStemmer$II = BaseStemmer$in_range_b$LBaseStemmer$II; BaseStemmer.prototype.out_range$II = function (min, max) { var ch; var $__jsx_postinc_t; if (this.cursor >= this.limit) { return false; } ch = this.current.charCodeAt(this.cursor); if (! (ch > max || ch < min)) { return false; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; }; function BaseStemmer$out_range$LBaseStemmer$II($this, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor >= $this.limit) { return false; } ch = $this.current.charCodeAt($this.cursor); if (! (ch > max || ch < min)) { return false; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); return true; }; BaseStemmer.out_range$LBaseStemmer$II = BaseStemmer$out_range$LBaseStemmer$II; BaseStemmer.prototype.out_range_b$II = function (min, max) { var ch; var $__jsx_postinc_t; if (this.cursor <= this.limit_backward) { return false; } ch = this.current.charCodeAt(this.cursor - 1); if (! (ch > max || ch < min)) { return false; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; }; function BaseStemmer$out_range_b$LBaseStemmer$II($this, min, max) { var ch; var $__jsx_postinc_t; if ($this.cursor <= $this.limit_backward) { return false; } ch = $this.current.charCodeAt($this.cursor - 1); if (! (ch > max || ch < min)) { return false; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t - 1) | 0, $__jsx_postinc_t); return true; }; BaseStemmer.out_range_b$LBaseStemmer$II = BaseStemmer$out_range_b$LBaseStemmer$II; BaseStemmer.prototype.eq_s$IS = function (s_size, s) { var cursor$0; if (((this.limit - this.cursor) | 0) < s_size) { return false; } if (this.current.slice(cursor$0 = this.cursor, ((cursor$0 + s_size) | 0)) !== s) { return false; } this.cursor = (this.cursor + s_size) | 0; return true; }; function BaseStemmer$eq_s$LBaseStemmer$IS($this, s_size, s) { var cursor$0; if ((($this.limit - $this.cursor) | 0) < s_size) { return false; } if ($this.current.slice(cursor$0 = $this.cursor, ((cursor$0 + s_size) | 0)) !== s) { return false; } $this.cursor = ($this.cursor + s_size) | 0; return true; }; BaseStemmer.eq_s$LBaseStemmer$IS = BaseStemmer$eq_s$LBaseStemmer$IS; BaseStemmer.prototype.eq_s_b$IS = function (s_size, s) { var cursor$0; if (((this.cursor - this.limit_backward) | 0) < s_size) { return false; } if (this.current.slice((((cursor$0 = this.cursor) - s_size) | 0), cursor$0) !== s) { return false; } this.cursor = (this.cursor - s_size) | 0; return true; }; function BaseStemmer$eq_s_b$LBaseStemmer$IS($this, s_size, s) { var cursor$0; if ((($this.cursor - $this.limit_backward) | 0) < s_size) { return false; } if ($this.current.slice((((cursor$0 = $this.cursor) - s_size) | 0), cursor$0) !== s) { return false; } $this.cursor = ($this.cursor - s_size) | 0; return true; }; BaseStemmer.eq_s_b$LBaseStemmer$IS = BaseStemmer$eq_s_b$LBaseStemmer$IS; BaseStemmer.prototype.eq_v$S = function (s) { return BaseStemmer$eq_s$LBaseStemmer$IS(this, s.length, s); }; function BaseStemmer$eq_v$LBaseStemmer$S($this, s) { return BaseStemmer$eq_s$LBaseStemmer$IS($this, s.length, s); }; BaseStemmer.eq_v$LBaseStemmer$S = BaseStemmer$eq_v$LBaseStemmer$S; BaseStemmer.prototype.eq_v_b$S = function (s) { return BaseStemmer$eq_s_b$LBaseStemmer$IS(this, s.length, s); }; function BaseStemmer$eq_v_b$LBaseStemmer$S($this, s) { return BaseStemmer$eq_s_b$LBaseStemmer$IS($this, s.length, s); }; BaseStemmer.eq_v_b$LBaseStemmer$S = BaseStemmer$eq_v_b$LBaseStemmer$S; BaseStemmer.prototype.find_among$ALAmong$I = function (v, v_size) { var i; var j; var c; var l; var common_i; var common_j; var first_key_inspected; var k; var diff; var common; var w; var i2; var res; i = 0; j = v_size; c = this.cursor; l = this.limit; common_i = 0; common_j = 0; first_key_inspected = false; while (true) { k = i + (j - i >>> 1); diff = 0; common = (common_i < common_j ? common_i : common_j); w = v[k]; for (i2 = common; i2 < w.s_size; i2++) { if (c + common === l) { diff = -1; break; } diff = this.current.charCodeAt(c + common) - w.s.charCodeAt(i2); if (diff !== 0) { break; } common++; } if (diff < 0) { j = k; common_j = common; } else { i = k; common_i = common; } if (j - i <= 1) { if (i > 0) { break; } if (j === i) { break; } if (first_key_inspected) { break; } first_key_inspected = true; } } while (true) { w = v[i]; if (common_i >= w.s_size) { this.cursor = (c + w.s_size | 0); if (w.method == null) { return w.result; } res = w.method(w.instance); this.cursor = (c + w.s_size | 0); if (res) { return w.result; } } i = w.substring_i; if (i < 0) { return 0; } } return -1; }; function BaseStemmer$find_among$LBaseStemmer$ALAmong$I($this, v, v_size) { var i; var j; var c; var l; var common_i; var common_j; var first_key_inspected; var k; var diff; var common; var w; var i2; var res; i = 0; j = v_size; c = $this.cursor; l = $this.limit; common_i = 0; common_j = 0; first_key_inspected = false; while (true) { k = i + (j - i >>> 1); diff = 0; common = (common_i < common_j ? common_i : common_j); w = v[k]; for (i2 = common; i2 < w.s_size; i2++) { if (c + common === l) { diff = -1; break; } diff = $this.current.charCodeAt(c + common) - w.s.charCodeAt(i2); if (diff !== 0) { break; } common++; } if (diff < 0) { j = k; common_j = common; } else { i = k; common_i = common; } if (j - i <= 1) { if (i > 0) { break; } if (j === i) { break; } if (first_key_inspected) { break; } first_key_inspected = true; } } while (true) { w = v[i]; if (common_i >= w.s_size) { $this.cursor = (c + w.s_size | 0); if (w.method == null) { return w.result; } res = w.method(w.instance); $this.cursor = (c + w.s_size | 0); if (res) { return w.result; } } i = w.substring_i; if (i < 0) { return 0; } } return -1; }; BaseStemmer.find_among$LBaseStemmer$ALAmong$I = BaseStemmer$find_among$LBaseStemmer$ALAmong$I; BaseStemmer.prototype.find_among_b$ALAmong$I = function (v, v_size) { var i; var j; var c; var lb; var common_i; var common_j; var first_key_inspected; var k; var diff; var common; var w; var i2; var res; i = 0; j = v_size; c = this.cursor; lb = this.limit_backward; common_i = 0; common_j = 0; first_key_inspected = false; while (true) { k = i + (j - i >> 1); diff = 0; common = (common_i < common_j ? common_i : common_j); w = v[k]; for (i2 = w.s_size - 1 - common; i2 >= 0; i2--) { if (c - common === lb) { diff = -1; break; } diff = this.current.charCodeAt(c - 1 - common) - w.s.charCodeAt(i2); if (diff !== 0) { break; } common++; } if (diff < 0) { j = k; common_j = common; } else { i = k; common_i = common; } if (j - i <= 1) { if (i > 0) { break; } if (j === i) { break; } if (first_key_inspected) { break; } first_key_inspected = true; } } while (true) { w = v[i]; if (common_i >= w.s_size) { this.cursor = (c - w.s_size | 0); if (w.method == null) { return w.result; } res = w.method(this); this.cursor = (c - w.s_size | 0); if (res) { return w.result; } } i = w.substring_i; if (i < 0) { return 0; } } return -1; }; function BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, v, v_size) { var i; var j; var c; var lb; var common_i; var common_j; var first_key_inspected; var k; var diff; var common; var w; var i2; var res; i = 0; j = v_size; c = $this.cursor; lb = $this.limit_backward; common_i = 0; common_j = 0; first_key_inspected = false; while (true) { k = i + (j - i >> 1); diff = 0; common = (common_i < common_j ? common_i : common_j); w = v[k]; for (i2 = w.s_size - 1 - common; i2 >= 0; i2--) { if (c - common === lb) { diff = -1; break; } diff = $this.current.charCodeAt(c - 1 - common) - w.s.charCodeAt(i2); if (diff !== 0) { break; } common++; } if (diff < 0) { j = k; common_j = common; } else { i = k; common_i = common; } if (j - i <= 1) { if (i > 0) { break; } if (j === i) { break; } if (first_key_inspected) { break; } first_key_inspected = true; } } while (true) { w = v[i]; if (common_i >= w.s_size) { $this.cursor = (c - w.s_size | 0); if (w.method == null) { return w.result; } res = w.method($this); $this.cursor = (c - w.s_size | 0); if (res) { return w.result; } } i = w.substring_i; if (i < 0) { return 0; } } return -1; }; BaseStemmer.find_among_b$LBaseStemmer$ALAmong$I = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I; BaseStemmer.prototype.replace_s$IIS = function (c_bra, c_ket, s) { var adjustment; adjustment = ((s.length - (((c_ket - c_bra) | 0))) | 0); this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket); this.limit = (this.limit + adjustment) | 0; if (this.cursor >= c_ket) { this.cursor = (this.cursor + adjustment) | 0; } else if (this.cursor > c_bra) { this.cursor = c_bra; } return (adjustment | 0); }; function BaseStemmer$replace_s$LBaseStemmer$IIS($this, c_bra, c_ket, s) { var adjustment; adjustment = ((s.length - (((c_ket - c_bra) | 0))) | 0); $this.current = $this.current.slice(0, c_bra) + s + $this.current.slice(c_ket); $this.limit = ($this.limit + adjustment) | 0; if ($this.cursor >= c_ket) { $this.cursor = ($this.cursor + adjustment) | 0; } else if ($this.cursor > c_bra) { $this.cursor = c_bra; } return (adjustment | 0); }; BaseStemmer.replace_s$LBaseStemmer$IIS = BaseStemmer$replace_s$LBaseStemmer$IIS; BaseStemmer.prototype.slice_check$ = function () { var bra$0; var ket$0; var limit$0; return ((bra$0 = this.bra) < 0 || bra$0 > (ket$0 = this.ket) || ket$0 > (limit$0 = this.limit) || limit$0 > this.current.length ? false : true); }; function BaseStemmer$slice_check$LBaseStemmer$($this) { var bra$0; var ket$0; var limit$0; return ((bra$0 = $this.bra) < 0 || bra$0 > (ket$0 = $this.ket) || ket$0 > (limit$0 = $this.limit) || limit$0 > $this.current.length ? false : true); }; BaseStemmer.slice_check$LBaseStemmer$ = BaseStemmer$slice_check$LBaseStemmer$; BaseStemmer.prototype.slice_from$S = function (s) { var result; var bra$0; var ket$0; var limit$0; result = false; if ((bra$0 = this.bra) < 0 || bra$0 > (ket$0 = this.ket) || ket$0 > (limit$0 = this.limit) || limit$0 > this.current.length ? false : true) { BaseStemmer$replace_s$LBaseStemmer$IIS(this, this.bra, this.ket, s); result = true; } return result; }; function BaseStemmer$slice_from$LBaseStemmer$S($this, s) { var result; var bra$0; var ket$0; var limit$0; result = false; if ((bra$0 = $this.bra) < 0 || bra$0 > (ket$0 = $this.ket) || ket$0 > (limit$0 = $this.limit) || limit$0 > $this.current.length ? false : true) { BaseStemmer$replace_s$LBaseStemmer$IIS($this, $this.bra, $this.ket, s); result = true; } return result; }; BaseStemmer.slice_from$LBaseStemmer$S = BaseStemmer$slice_from$LBaseStemmer$S; BaseStemmer.prototype.slice_del$ = function () { return BaseStemmer$slice_from$LBaseStemmer$S(this, ""); }; function BaseStemmer$slice_del$LBaseStemmer$($this) { return BaseStemmer$slice_from$LBaseStemmer$S($this, ""); }; BaseStemmer.slice_del$LBaseStemmer$ = BaseStemmer$slice_del$LBaseStemmer$; BaseStemmer.prototype.insert$IIS = function (c_bra, c_ket, s) { var adjustment; adjustment = BaseStemmer$replace_s$LBaseStemmer$IIS(this, c_bra, c_ket, s); if (c_bra <= this.bra) { this.bra = (this.bra + adjustment) | 0; } if (c_bra <= this.ket) { this.ket = (this.ket + adjustment) | 0; } }; function BaseStemmer$insert$LBaseStemmer$IIS($this, c_bra, c_ket, s) { var adjustment; adjustment = BaseStemmer$replace_s$LBaseStemmer$IIS($this, c_bra, c_ket, s); if (c_bra <= $this.bra) { $this.bra = ($this.bra + adjustment) | 0; } if (c_bra <= $this.ket) { $this.ket = ($this.ket + adjustment) | 0; } }; BaseStemmer.insert$LBaseStemmer$IIS = BaseStemmer$insert$LBaseStemmer$IIS; BaseStemmer.prototype.slice_to$S = function (s) { var result; var bra$0; var ket$0; var limit$0; result = ''; if ((bra$0 = this.bra) < 0 || bra$0 > (ket$0 = this.ket) || ket$0 > (limit$0 = this.limit) || limit$0 > this.current.length ? false : true) { result = this.current.slice(this.bra, this.ket); } return result; }; function BaseStemmer$slice_to$LBaseStemmer$S($this, s) { var result; var bra$0; var ket$0; var limit$0; result = ''; if ((bra$0 = $this.bra) < 0 || bra$0 > (ket$0 = $this.ket) || ket$0 > (limit$0 = $this.limit) || limit$0 > $this.current.length ? false : true) { result = $this.current.slice($this.bra, $this.ket); } return result; }; BaseStemmer.slice_to$LBaseStemmer$S = BaseStemmer$slice_to$LBaseStemmer$S; BaseStemmer.prototype.assign_to$S = function (s) { return this.current.slice(0, this.limit); }; function BaseStemmer$assign_to$LBaseStemmer$S($this, s) { return $this.current.slice(0, $this.limit); }; BaseStemmer.assign_to$LBaseStemmer$S = BaseStemmer$assign_to$LBaseStemmer$S; BaseStemmer.prototype.stem$ = function () { return false; }; BaseStemmer.prototype.stemWord$S = function (word) { var result; var current$0; var cursor$0; var limit$0; result = this.cache['.' + word]; if (result == null) { current$0 = this.current = word; cursor$0 = this.cursor = 0; limit$0 = this.limit = current$0.length; this.limit_backward = 0; this.bra = cursor$0; this.ket = limit$0; this.stem$(); result = this.current; this.cache['.' + word] = result; } return result; }; BaseStemmer.prototype.stemWord = BaseStemmer.prototype.stemWord$S; BaseStemmer.prototype.stemWords$AS = function (words) { var results; var i; var word; var result; var current$0; var cursor$0; var limit$0; results = [ ]; for (i = 0; i < words.length; i++) { word = words[i]; result = this.cache['.' + word]; if (result == null) { current$0 = this.current = word; cursor$0 = this.cursor = 0; limit$0 = this.limit = current$0.length; this.limit_backward = 0; this.bra = cursor$0; this.ket = limit$0; this.stem$(); result = this.current; this.cache['.' + word] = result; } results.push(result); } return results; }; BaseStemmer.prototype.stemWords = BaseStemmer.prototype.stemWords$AS; function ItalianStemmer() { BaseStemmer.call(this); this.I_p2 = 0; this.I_p1 = 0; this.I_pV = 0; }; $__jsx_extend([ItalianStemmer], BaseStemmer); ItalianStemmer.prototype.copy_from$LItalianStemmer$ = function (other) { this.I_p2 = other.I_p2; this.I_p1 = other.I_p1; this.I_pV = other.I_pV; BaseStemmer$copy_from$LBaseStemmer$LBaseStemmer$(this, other); }; ItalianStemmer.prototype.copy_from = ItalianStemmer.prototype.copy_from$LItalianStemmer$; ItalianStemmer.prototype.r_prelude$ = function () { var among_var; var v_1; var v_2; var v_3; var v_4; var v_5; var lab1; var lab3; var lab5; var lab6; var lab7; var cursor$0; var $__jsx_postinc_t; v_1 = this.cursor; replab0: while (true) { v_2 = this.cursor; lab1 = true; lab1: while (lab1 === true) { lab1 = false; this.bra = this.cursor; among_var = BaseStemmer$find_among$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_0, 7); if (among_var === 0) { break lab1; } this.ket = this.cursor; switch (among_var) { case 0: break lab1; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "\u00E0")) { return false; } break; case 2: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "\u00E8")) { return false; } break; case 3: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "\u00EC")) { return false; } break; case 4: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "\u00F2")) { return false; } break; case 5: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "\u00F9")) { return false; } break; case 6: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "qU")) { return false; } break; case 7: if (this.cursor >= this.limit) { break lab1; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); break; } continue replab0; } this.cursor = v_2; break replab0; } this.cursor = v_1; replab2: while (true) { v_3 = this.cursor; lab3 = true; lab3: while (lab3 === true) { lab3 = false; golab4: while (true) { v_4 = this.cursor; lab5 = true; lab5: while (lab5 === true) { lab5 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab5; } this.bra = this.cursor; lab6 = true; lab6: while (lab6 === true) { lab6 = false; v_5 = this.cursor; lab7 = true; lab7: while (lab7 === true) { lab7 = false; if (! BaseStemmer$eq_s$LBaseStemmer$IS(this, 1, "u")) { break lab7; } this.ket = this.cursor; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab7; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "U")) { return false; } break lab6; } this.cursor = v_5; if (! BaseStemmer$eq_s$LBaseStemmer$IS(this, 1, "i")) { break lab5; } this.ket = this.cursor; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab5; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "I")) { return false; } } this.cursor = v_4; break golab4; } cursor$0 = this.cursor = v_4; if (cursor$0 >= this.limit) { break lab3; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } continue replab2; } this.cursor = v_3; break replab2; } return true; }; ItalianStemmer.prototype.r_prelude = ItalianStemmer.prototype.r_prelude$; function ItalianStemmer$r_prelude$LItalianStemmer$($this) { var among_var; var v_1; var v_2; var v_3; var v_4; var v_5; var lab1; var lab3; var lab5; var lab6; var lab7; var cursor$0; var $__jsx_postinc_t; v_1 = $this.cursor; replab0: while (true) { v_2 = $this.cursor; lab1 = true; lab1: while (lab1 === true) { lab1 = false; $this.bra = $this.cursor; among_var = BaseStemmer$find_among$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_0, 7); if (among_var === 0) { break lab1; } $this.ket = $this.cursor; switch (among_var) { case 0: break lab1; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "\u00E0")) { return false; } break; case 2: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "\u00E8")) { return false; } break; case 3: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "\u00EC")) { return false; } break; case 4: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "\u00F2")) { return false; } break; case 5: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "\u00F9")) { return false; } break; case 6: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "qU")) { return false; } break; case 7: if ($this.cursor >= $this.limit) { break lab1; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); break; } continue replab0; } $this.cursor = v_2; break replab0; } $this.cursor = v_1; replab2: while (true) { v_3 = $this.cursor; lab3 = true; lab3: while (lab3 === true) { lab3 = false; golab4: while (true) { v_4 = $this.cursor; lab5 = true; lab5: while (lab5 === true) { lab5 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab5; } $this.bra = $this.cursor; lab6 = true; lab6: while (lab6 === true) { lab6 = false; v_5 = $this.cursor; lab7 = true; lab7: while (lab7 === true) { lab7 = false; if (! BaseStemmer$eq_s$LBaseStemmer$IS($this, 1, "u")) { break lab7; } $this.ket = $this.cursor; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab7; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "U")) { return false; } break lab6; } $this.cursor = v_5; if (! BaseStemmer$eq_s$LBaseStemmer$IS($this, 1, "i")) { break lab5; } $this.ket = $this.cursor; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab5; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "I")) { return false; } } $this.cursor = v_4; break golab4; } cursor$0 = $this.cursor = v_4; if (cursor$0 >= $this.limit) { break lab3; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } continue replab2; } $this.cursor = v_3; break replab2; } return true; }; ItalianStemmer.r_prelude$LItalianStemmer$ = ItalianStemmer$r_prelude$LItalianStemmer$; ItalianStemmer.prototype.r_mark_regions$ = function () { var v_1; var v_2; var v_3; var v_6; var v_8; var lab0; var lab1; var lab2; var lab3; var lab4; var lab6; var lab8; var lab9; var lab10; var lab12; var lab13; var lab15; var lab17; var lab19; var lab21; var limit$0; var cursor$0; var $__jsx_postinc_t; this.I_pV = limit$0 = this.limit; this.I_p1 = limit$0; this.I_p2 = limit$0; v_1 = this.cursor; lab0 = true; lab0: while (lab0 === true) { lab0 = false; lab1 = true; lab1: while (lab1 === true) { lab1 = false; v_2 = this.cursor; lab2 = true; lab2: while (lab2 === true) { lab2 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab2; } lab3 = true; lab3: while (lab3 === true) { lab3 = false; v_3 = this.cursor; lab4 = true; lab4: while (lab4 === true) { lab4 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab4; } golab5: while (true) { lab6 = true; lab6: while (lab6 === true) { lab6 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab6; } break golab5; } if (this.cursor >= this.limit) { break lab4; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } break lab3; } this.cursor = v_3; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab2; } golab7: while (true) { lab8 = true; lab8: while (lab8 === true) { lab8 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab8; } break golab7; } if (this.cursor >= this.limit) { break lab2; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } } break lab1; } this.cursor = v_2; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab0; } lab9 = true; lab9: while (lab9 === true) { lab9 = false; v_6 = this.cursor; lab10 = true; lab10: while (lab10 === true) { lab10 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab10; } golab11: while (true) { lab12 = true; lab12: while (lab12 === true) { lab12 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab12; } break golab11; } if (this.cursor >= this.limit) { break lab10; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } break lab9; } this.cursor = v_6; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab0; } if (this.cursor >= this.limit) { break lab0; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } } this.I_pV = this.cursor; } cursor$0 = this.cursor = v_1; v_8 = cursor$0; lab13 = true; lab13: while (lab13 === true) { lab13 = false; golab14: while (true) { lab15 = true; lab15: while (lab15 === true) { lab15 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab15; } break golab14; } if (this.cursor >= this.limit) { break lab13; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } golab16: while (true) { lab17 = true; lab17: while (lab17 === true) { lab17 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab17; } break golab16; } if (this.cursor >= this.limit) { break lab13; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } this.I_p1 = this.cursor; golab18: while (true) { lab19 = true; lab19: while (lab19 === true) { lab19 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab19; } break golab18; } if (this.cursor >= this.limit) { break lab13; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } golab20: while (true) { lab21 = true; lab21: while (lab21 === true) { lab21 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII(this, ItalianStemmer.g_v, 97, 249)) { break lab21; } break golab20; } if (this.cursor >= this.limit) { break lab13; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } this.I_p2 = this.cursor; } this.cursor = v_8; return true; }; ItalianStemmer.prototype.r_mark_regions = ItalianStemmer.prototype.r_mark_regions$; function ItalianStemmer$r_mark_regions$LItalianStemmer$($this) { var v_1; var v_2; var v_3; var v_6; var v_8; var lab0; var lab1; var lab2; var lab3; var lab4; var lab6; var lab8; var lab9; var lab10; var lab12; var lab13; var lab15; var lab17; var lab19; var lab21; var limit$0; var cursor$0; var $__jsx_postinc_t; $this.I_pV = limit$0 = $this.limit; $this.I_p1 = limit$0; $this.I_p2 = limit$0; v_1 = $this.cursor; lab0 = true; lab0: while (lab0 === true) { lab0 = false; lab1 = true; lab1: while (lab1 === true) { lab1 = false; v_2 = $this.cursor; lab2 = true; lab2: while (lab2 === true) { lab2 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab2; } lab3 = true; lab3: while (lab3 === true) { lab3 = false; v_3 = $this.cursor; lab4 = true; lab4: while (lab4 === true) { lab4 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab4; } golab5: while (true) { lab6 = true; lab6: while (lab6 === true) { lab6 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab6; } break golab5; } if ($this.cursor >= $this.limit) { break lab4; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } break lab3; } $this.cursor = v_3; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab2; } golab7: while (true) { lab8 = true; lab8: while (lab8 === true) { lab8 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab8; } break golab7; } if ($this.cursor >= $this.limit) { break lab2; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } } break lab1; } $this.cursor = v_2; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab0; } lab9 = true; lab9: while (lab9 === true) { lab9 = false; v_6 = $this.cursor; lab10 = true; lab10: while (lab10 === true) { lab10 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab10; } golab11: while (true) { lab12 = true; lab12: while (lab12 === true) { lab12 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab12; } break golab11; } if ($this.cursor >= $this.limit) { break lab10; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } break lab9; } $this.cursor = v_6; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab0; } if ($this.cursor >= $this.limit) { break lab0; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } } $this.I_pV = $this.cursor; } cursor$0 = $this.cursor = v_1; v_8 = cursor$0; lab13 = true; lab13: while (lab13 === true) { lab13 = false; golab14: while (true) { lab15 = true; lab15: while (lab15 === true) { lab15 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab15; } break golab14; } if ($this.cursor >= $this.limit) { break lab13; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } golab16: while (true) { lab17 = true; lab17: while (lab17 === true) { lab17 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab17; } break golab16; } if ($this.cursor >= $this.limit) { break lab13; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } $this.I_p1 = $this.cursor; golab18: while (true) { lab19 = true; lab19: while (lab19 === true) { lab19 = false; if (! BaseStemmer$in_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab19; } break golab18; } if ($this.cursor >= $this.limit) { break lab13; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } golab20: while (true) { lab21 = true; lab21: while (lab21 === true) { lab21 = false; if (! BaseStemmer$out_grouping$LBaseStemmer$AIII($this, ItalianStemmer.g_v, 97, 249)) { break lab21; } break golab20; } if ($this.cursor >= $this.limit) { break lab13; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); } $this.I_p2 = $this.cursor; } $this.cursor = v_8; return true; }; ItalianStemmer.r_mark_regions$LItalianStemmer$ = ItalianStemmer$r_mark_regions$LItalianStemmer$; ItalianStemmer.prototype.r_postlude$ = function () { var among_var; var v_1; var lab1; var $__jsx_postinc_t; replab0: while (true) { v_1 = this.cursor; lab1 = true; lab1: while (lab1 === true) { lab1 = false; this.bra = this.cursor; among_var = BaseStemmer$find_among$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_1, 3); if (among_var === 0) { break lab1; } this.ket = this.cursor; switch (among_var) { case 0: break lab1; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "i")) { return false; } break; case 2: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "u")) { return false; } break; case 3: if (this.cursor >= this.limit) { break lab1; } ($__jsx_postinc_t = this.cursor, this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); break; } continue replab0; } this.cursor = v_1; break replab0; } return true; }; ItalianStemmer.prototype.r_postlude = ItalianStemmer.prototype.r_postlude$; function ItalianStemmer$r_postlude$LItalianStemmer$($this) { var among_var; var v_1; var lab1; var $__jsx_postinc_t; replab0: while (true) { v_1 = $this.cursor; lab1 = true; lab1: while (lab1 === true) { lab1 = false; $this.bra = $this.cursor; among_var = BaseStemmer$find_among$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_1, 3); if (among_var === 0) { break lab1; } $this.ket = $this.cursor; switch (among_var) { case 0: break lab1; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "i")) { return false; } break; case 2: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "u")) { return false; } break; case 3: if ($this.cursor >= $this.limit) { break lab1; } ($__jsx_postinc_t = $this.cursor, $this.cursor = ($__jsx_postinc_t + 1) | 0, $__jsx_postinc_t); break; } continue replab0; } $this.cursor = v_1; break replab0; } return true; }; ItalianStemmer.r_postlude$LItalianStemmer$ = ItalianStemmer$r_postlude$LItalianStemmer$; ItalianStemmer.prototype.r_RV$ = function () { return (! (this.I_pV <= this.cursor) ? false : true); }; ItalianStemmer.prototype.r_RV = ItalianStemmer.prototype.r_RV$; function ItalianStemmer$r_RV$LItalianStemmer$($this) { return (! ($this.I_pV <= $this.cursor) ? false : true); }; ItalianStemmer.r_RV$LItalianStemmer$ = ItalianStemmer$r_RV$LItalianStemmer$; ItalianStemmer.prototype.r_R1$ = function () { return (! (this.I_p1 <= this.cursor) ? false : true); }; ItalianStemmer.prototype.r_R1 = ItalianStemmer.prototype.r_R1$; function ItalianStemmer$r_R1$LItalianStemmer$($this) { return (! ($this.I_p1 <= $this.cursor) ? false : true); }; ItalianStemmer.r_R1$LItalianStemmer$ = ItalianStemmer$r_R1$LItalianStemmer$; ItalianStemmer.prototype.r_R2$ = function () { return (! (this.I_p2 <= this.cursor) ? false : true); }; ItalianStemmer.prototype.r_R2 = ItalianStemmer.prototype.r_R2$; function ItalianStemmer$r_R2$LItalianStemmer$($this) { return (! ($this.I_p2 <= $this.cursor) ? false : true); }; ItalianStemmer.r_R2$LItalianStemmer$ = ItalianStemmer$r_R2$LItalianStemmer$; ItalianStemmer.prototype.r_attached_pronoun$ = function () { var among_var; this.ket = this.cursor; if (BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_2, 37) === 0) { return false; } this.bra = this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_3, 5); if (among_var === 0) { return false; } if (! (! (this.I_pV <= this.cursor) ? false : true)) { return false; } switch (among_var) { case 0: return false; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } break; case 2: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "e")) { return false; } break; } return true; }; ItalianStemmer.prototype.r_attached_pronoun = ItalianStemmer.prototype.r_attached_pronoun$; function ItalianStemmer$r_attached_pronoun$LItalianStemmer$($this) { var among_var; $this.ket = $this.cursor; if (BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_2, 37) === 0) { return false; } $this.bra = $this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_3, 5); if (among_var === 0) { return false; } if (! (! ($this.I_pV <= $this.cursor) ? false : true)) { return false; } switch (among_var) { case 0: return false; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } break; case 2: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "e")) { return false; } break; } return true; }; ItalianStemmer.r_attached_pronoun$LItalianStemmer$ = ItalianStemmer$r_attached_pronoun$LItalianStemmer$; ItalianStemmer.prototype.r_standard_suffix$ = function () { var among_var; var v_1; var v_2; var v_3; var v_4; var lab0; var lab1; var lab2; var lab3; var cursor$0; var cursor$1; var cursor$2; var cursor$3; var cursor$4; this.ket = this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_6, 51); if (among_var === 0) { return false; } this.bra = this.cursor; switch (among_var) { case 0: return false; case 1: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } break; case 2: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } v_1 = ((this.limit - this.cursor) | 0); lab0 = true; lab0: while (lab0 === true) { lab0 = false; this.ket = this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS(this, 2, "ic")) { this.cursor = ((this.limit - v_1) | 0); break lab0; } this.bra = cursor$0 = this.cursor; if (! (! (this.I_p2 <= cursor$0) ? false : true)) { this.cursor = ((this.limit - v_1) | 0); break lab0; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } } break; case 3: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "log")) { return false; } break; case 4: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "u")) { return false; } break; case 5: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "ente")) { return false; } break; case 6: if (! (! (this.I_pV <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } break; case 7: if (! (! (this.I_p1 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } v_2 = ((this.limit - this.cursor) | 0); lab1 = true; lab1: while (lab1 === true) { lab1 = false; this.ket = this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_4, 4); if (among_var === 0) { this.cursor = ((this.limit - v_2) | 0); break lab1; } this.bra = cursor$1 = this.cursor; if (! (! (this.I_p2 <= cursor$1) ? false : true)) { this.cursor = ((this.limit - v_2) | 0); break lab1; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } switch (among_var) { case 0: this.cursor = ((this.limit - v_2) | 0); break lab1; case 1: this.ket = this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS(this, 2, "at")) { this.cursor = ((this.limit - v_2) | 0); break lab1; } this.bra = cursor$2 = this.cursor; if (! (! (this.I_p2 <= cursor$2) ? false : true)) { this.cursor = ((this.limit - v_2) | 0); break lab1; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } break; } } break; case 8: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } v_3 = ((this.limit - this.cursor) | 0); lab2 = true; lab2: while (lab2 === true) { lab2 = false; this.ket = this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_5, 3); if (among_var === 0) { this.cursor = ((this.limit - v_3) | 0); break lab2; } this.bra = this.cursor; switch (among_var) { case 0: this.cursor = ((this.limit - v_3) | 0); break lab2; case 1: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { this.cursor = ((this.limit - v_3) | 0); break lab2; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } break; } } break; case 9: if (! (! (this.I_p2 <= this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } v_4 = ((this.limit - this.cursor) | 0); lab3 = true; lab3: while (lab3 === true) { lab3 = false; this.ket = this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS(this, 2, "at")) { this.cursor = ((this.limit - v_4) | 0); break lab3; } this.bra = cursor$3 = this.cursor; if (! (! (this.I_p2 <= cursor$3) ? false : true)) { this.cursor = ((this.limit - v_4) | 0); break lab3; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } this.ket = this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS(this, 2, "ic")) { this.cursor = ((this.limit - v_4) | 0); break lab3; } this.bra = cursor$4 = this.cursor; if (! (! (this.I_p2 <= cursor$4) ? false : true)) { this.cursor = ((this.limit - v_4) | 0); break lab3; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } } break; } return true; }; ItalianStemmer.prototype.r_standard_suffix = ItalianStemmer.prototype.r_standard_suffix$; function ItalianStemmer$r_standard_suffix$LItalianStemmer$($this) { var among_var; var v_1; var v_2; var v_3; var v_4; var lab0; var lab1; var lab2; var lab3; var cursor$0; var cursor$1; var cursor$2; var cursor$3; var cursor$4; $this.ket = $this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_6, 51); if (among_var === 0) { return false; } $this.bra = $this.cursor; switch (among_var) { case 0: return false; case 1: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } break; case 2: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } v_1 = (($this.limit - $this.cursor) | 0); lab0 = true; lab0: while (lab0 === true) { lab0 = false; $this.ket = $this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS($this, 2, "ic")) { $this.cursor = (($this.limit - v_1) | 0); break lab0; } $this.bra = cursor$0 = $this.cursor; if (! (! ($this.I_p2 <= cursor$0) ? false : true)) { $this.cursor = (($this.limit - v_1) | 0); break lab0; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } } break; case 3: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "log")) { return false; } break; case 4: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "u")) { return false; } break; case 5: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "ente")) { return false; } break; case 6: if (! (! ($this.I_pV <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } break; case 7: if (! (! ($this.I_p1 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } v_2 = (($this.limit - $this.cursor) | 0); lab1 = true; lab1: while (lab1 === true) { lab1 = false; $this.ket = $this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_4, 4); if (among_var === 0) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } $this.bra = cursor$1 = $this.cursor; if (! (! ($this.I_p2 <= cursor$1) ? false : true)) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } switch (among_var) { case 0: $this.cursor = (($this.limit - v_2) | 0); break lab1; case 1: $this.ket = $this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS($this, 2, "at")) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } $this.bra = cursor$2 = $this.cursor; if (! (! ($this.I_p2 <= cursor$2) ? false : true)) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } break; } } break; case 8: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } v_3 = (($this.limit - $this.cursor) | 0); lab2 = true; lab2: while (lab2 === true) { lab2 = false; $this.ket = $this.cursor; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_5, 3); if (among_var === 0) { $this.cursor = (($this.limit - v_3) | 0); break lab2; } $this.bra = $this.cursor; switch (among_var) { case 0: $this.cursor = (($this.limit - v_3) | 0); break lab2; case 1: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { $this.cursor = (($this.limit - v_3) | 0); break lab2; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } break; } } break; case 9: if (! (! ($this.I_p2 <= $this.cursor) ? false : true)) { return false; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } v_4 = (($this.limit - $this.cursor) | 0); lab3 = true; lab3: while (lab3 === true) { lab3 = false; $this.ket = $this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS($this, 2, "at")) { $this.cursor = (($this.limit - v_4) | 0); break lab3; } $this.bra = cursor$3 = $this.cursor; if (! (! ($this.I_p2 <= cursor$3) ? false : true)) { $this.cursor = (($this.limit - v_4) | 0); break lab3; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } $this.ket = $this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS($this, 2, "ic")) { $this.cursor = (($this.limit - v_4) | 0); break lab3; } $this.bra = cursor$4 = $this.cursor; if (! (! ($this.I_p2 <= cursor$4) ? false : true)) { $this.cursor = (($this.limit - v_4) | 0); break lab3; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } } break; } return true; }; ItalianStemmer.r_standard_suffix$LItalianStemmer$ = ItalianStemmer$r_standard_suffix$LItalianStemmer$; ItalianStemmer.prototype.r_verb_suffix$ = function () { var among_var; var v_1; var v_2; var cursor$0; var cursor$1; var cursor$2; v_1 = ((this.limit - (cursor$0 = this.cursor)) | 0); if (cursor$0 < this.I_pV) { return false; } cursor$1 = this.cursor = this.I_pV; v_2 = this.limit_backward; this.limit_backward = cursor$1; cursor$2 = this.cursor = ((this.limit - v_1) | 0); this.ket = cursor$2; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I(this, ItalianStemmer.a_7, 87); if (among_var === 0) { this.limit_backward = v_2; return false; } this.bra = this.cursor; switch (among_var) { case 0: this.limit_backward = v_2; return false; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } break; } this.limit_backward = v_2; return true; }; ItalianStemmer.prototype.r_verb_suffix = ItalianStemmer.prototype.r_verb_suffix$; function ItalianStemmer$r_verb_suffix$LItalianStemmer$($this) { var among_var; var v_1; var v_2; var cursor$0; var cursor$1; var cursor$2; v_1 = (($this.limit - (cursor$0 = $this.cursor)) | 0); if (cursor$0 < $this.I_pV) { return false; } cursor$1 = $this.cursor = $this.I_pV; v_2 = $this.limit_backward; $this.limit_backward = cursor$1; cursor$2 = $this.cursor = (($this.limit - v_1) | 0); $this.ket = cursor$2; among_var = BaseStemmer$find_among_b$LBaseStemmer$ALAmong$I($this, ItalianStemmer.a_7, 87); if (among_var === 0) { $this.limit_backward = v_2; return false; } $this.bra = $this.cursor; switch (among_var) { case 0: $this.limit_backward = v_2; return false; case 1: if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } break; } $this.limit_backward = v_2; return true; }; ItalianStemmer.r_verb_suffix$LItalianStemmer$ = ItalianStemmer$r_verb_suffix$LItalianStemmer$; ItalianStemmer.prototype.r_vowel_suffix$ = function () { var v_1; var v_2; var lab0; var lab1; var cursor$0; var cursor$1; v_1 = ((this.limit - this.cursor) | 0); lab0 = true; lab0: while (lab0 === true) { lab0 = false; this.ket = this.cursor; if (! BaseStemmer$in_grouping_b$LBaseStemmer$AIII(this, ItalianStemmer.g_AEIO, 97, 242)) { this.cursor = ((this.limit - v_1) | 0); break lab0; } this.bra = cursor$0 = this.cursor; if (! (! (this.I_pV <= cursor$0) ? false : true)) { this.cursor = ((this.limit - v_1) | 0); break lab0; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } this.ket = this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS(this, 1, "i")) { this.cursor = ((this.limit - v_1) | 0); break lab0; } this.bra = cursor$1 = this.cursor; if (! (! (this.I_pV <= cursor$1) ? false : true)) { this.cursor = ((this.limit - v_1) | 0); break lab0; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } } v_2 = ((this.limit - this.cursor) | 0); lab1 = true; lab1: while (lab1 === true) { lab1 = false; this.ket = this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS(this, 1, "h")) { this.cursor = ((this.limit - v_2) | 0); break lab1; } this.bra = this.cursor; if (! BaseStemmer$in_grouping_b$LBaseStemmer$AIII(this, ItalianStemmer.g_CG, 99, 103)) { this.cursor = ((this.limit - v_2) | 0); break lab1; } if (! (! (this.I_pV <= this.cursor) ? false : true)) { this.cursor = ((this.limit - v_2) | 0); break lab1; } if (! BaseStemmer$slice_from$LBaseStemmer$S(this, "")) { return false; } } return true; }; ItalianStemmer.prototype.r_vowel_suffix = ItalianStemmer.prototype.r_vowel_suffix$; function ItalianStemmer$r_vowel_suffix$LItalianStemmer$($this) { var v_1; var v_2; var lab0; var lab1; var cursor$0; var cursor$1; v_1 = (($this.limit - $this.cursor) | 0); lab0 = true; lab0: while (lab0 === true) { lab0 = false; $this.ket = $this.cursor; if (! BaseStemmer$in_grouping_b$LBaseStemmer$AIII($this, ItalianStemmer.g_AEIO, 97, 242)) { $this.cursor = (($this.limit - v_1) | 0); break lab0; } $this.bra = cursor$0 = $this.cursor; if (! (! ($this.I_pV <= cursor$0) ? false : true)) { $this.cursor = (($this.limit - v_1) | 0); break lab0; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } $this.ket = $this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS($this, 1, "i")) { $this.cursor = (($this.limit - v_1) | 0); break lab0; } $this.bra = cursor$1 = $this.cursor; if (! (! ($this.I_pV <= cursor$1) ? false : true)) { $this.cursor = (($this.limit - v_1) | 0); break lab0; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } } v_2 = (($this.limit - $this.cursor) | 0); lab1 = true; lab1: while (lab1 === true) { lab1 = false; $this.ket = $this.cursor; if (! BaseStemmer$eq_s_b$LBaseStemmer$IS($this, 1, "h")) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } $this.bra = $this.cursor; if (! BaseStemmer$in_grouping_b$LBaseStemmer$AIII($this, ItalianStemmer.g_CG, 99, 103)) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } if (! (! ($this.I_pV <= $this.cursor) ? false : true)) { $this.cursor = (($this.limit - v_2) | 0); break lab1; } if (! BaseStemmer$slice_from$LBaseStemmer$S($this, "")) { return false; } } return true; }; ItalianStemmer.r_vowel_suffix$LItalianStemmer$ = ItalianStemmer$r_vowel_suffix$LItalianStemmer$; ItalianStemmer.prototype.stem$ = function () { var v_1; var v_2; var v_3; var v_4; var v_5; var v_7; var lab0; var lab1; var lab2; var lab3; var lab4; var lab5; var lab6; var lab7; var cursor$0; var cursor$1; var limit$0; var cursor$2; var limit$1; var cursor$3; var cursor$4; v_1 = this.cursor; lab0 = true; lab0: while (lab0 === true) { lab0 = false; if (! ItalianStemmer$r_prelude$LItalianStemmer$(this)) { break lab0; } } cursor$0 = this.cursor = v_1; v_2 = cursor$0; lab1 = true; lab1: while (lab1 === true) { lab1 = false; if (! ItalianStemmer$r_mark_regions$LItalianStemmer$(this)) { break lab1; } } cursor$1 = this.cursor = v_2; this.limit_backward = cursor$1; cursor$2 = this.cursor = limit$0 = this.limit; v_3 = ((limit$0 - cursor$2) | 0); lab2 = true; lab2: while (lab2 === true) { lab2 = false; if (! ItalianStemmer$r_attached_pronoun$LItalianStemmer$(this)) { break lab2; } } cursor$3 = this.cursor = (((limit$1 = this.limit) - v_3) | 0); v_4 = ((limit$1 - cursor$3) | 0); lab3 = true; lab3: while (lab3 === true) { lab3 = false; lab4 = true; lab4: while (lab4 === true) { lab4 = false; v_5 = ((this.limit - this.cursor) | 0); lab5 = true; lab5: while (lab5 === true) { lab5 = false; if (! ItalianStemmer$r_standard_suffix$LItalianStemmer$(this)) { break lab5; } break lab4; } this.cursor = ((this.limit - v_5) | 0); if (! ItalianStemmer$r_verb_suffix$LItalianStemmer$(this)) { break lab3; } } } this.cursor = ((this.limit - v_4) | 0); lab6 = true; lab6: while (lab6 === true) { lab6 = false; if (! ItalianStemmer$r_vowel_suffix$LItalianStemmer$(this)) { break lab6; } } cursor$4 = this.cursor = this.limit_backward; v_7 = cursor$4; lab7 = true; lab7: while (lab7 === true) { lab7 = false; if (! ItalianStemmer$r_postlude$LItalianStemmer$(this)) { break lab7; } } this.cursor = v_7; return true; }; ItalianStemmer.prototype.stem = ItalianStemmer.prototype.stem$; ItalianStemmer.prototype.equals$X = function (o) { return o instanceof ItalianStemmer; }; ItalianStemmer.prototype.equals = ItalianStemmer.prototype.equals$X; function ItalianStemmer$equals$LItalianStemmer$X($this, o) { return o instanceof ItalianStemmer; }; ItalianStemmer.equals$LItalianStemmer$X = ItalianStemmer$equals$LItalianStemmer$X; ItalianStemmer.prototype.hashCode$ = function () { var classname; var hash; var i; var char; classname = "ItalianStemmer"; hash = 0; for (i = 0; i < classname.length; i++) { char = classname.charCodeAt(i); hash = (hash << 5) - hash + char; hash = hash & hash; } return (hash | 0); }; ItalianStemmer.prototype.hashCode = ItalianStemmer.prototype.hashCode$; function ItalianStemmer$hashCode$LItalianStemmer$($this) { var classname; var hash; var i; var char; classname = "ItalianStemmer"; hash = 0; for (i = 0; i < classname.length; i++) { char = classname.charCodeAt(i); hash = (hash << 5) - hash + char; hash = hash & hash; } return (hash | 0); }; ItalianStemmer.hashCode$LItalianStemmer$ = ItalianStemmer$hashCode$LItalianStemmer$; ItalianStemmer.serialVersionUID = 1; $__jsx_lazy_init(ItalianStemmer, "methodObject", function () { return new ItalianStemmer(); }); $__jsx_lazy_init(ItalianStemmer, "a_0", function () { return [ new Among("", -1, 7), new Among("qu", 0, 6), new Among("\u00E1", 0, 1), new Among("\u00E9", 0, 2), new Among("\u00ED", 0, 3), new Among("\u00F3", 0, 4), new Among("\u00FA", 0, 5) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_1", function () { return [ new Among("", -1, 3), new Among("I", 0, 1), new Among("U", 0, 2) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_2", function () { return [ new Among("la", -1, -1), new Among("cela", 0, -1), new Among("gliela", 0, -1), new Among("mela", 0, -1), new Among("tela", 0, -1), new Among("vela", 0, -1), new Among("le", -1, -1), new Among("cele", 6, -1), new Among("gliele", 6, -1), new Among("mele", 6, -1), new Among("tele", 6, -1), new Among("vele", 6, -1), new Among("ne", -1, -1), new Among("cene", 12, -1), new Among("gliene", 12, -1), new Among("mene", 12, -1), new Among("sene", 12, -1), new Among("tene", 12, -1), new Among("vene", 12, -1), new Among("ci", -1, -1), new Among("li", -1, -1), new Among("celi", 20, -1), new Among("glieli", 20, -1), new Among("meli", 20, -1), new Among("teli", 20, -1), new Among("veli", 20, -1), new Among("gli", 20, -1), new Among("mi", -1, -1), new Among("si", -1, -1), new Among("ti", -1, -1), new Among("vi", -1, -1), new Among("lo", -1, -1), new Among("celo", 31, -1), new Among("glielo", 31, -1), new Among("melo", 31, -1), new Among("telo", 31, -1), new Among("velo", 31, -1) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_3", function () { return [ new Among("ando", -1, 1), new Among("endo", -1, 1), new Among("ar", -1, 2), new Among("er", -1, 2), new Among("ir", -1, 2) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_4", function () { return [ new Among("ic", -1, -1), new Among("abil", -1, -1), new Among("os", -1, -1), new Among("iv", -1, 1) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_5", function () { return [ new Among("ic", -1, 1), new Among("abil", -1, 1), new Among("iv", -1, 1) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_6", function () { return [ new Among("ica", -1, 1), new Among("logia", -1, 3), new Among("osa", -1, 1), new Among("ista", -1, 1), new Among("iva", -1, 9), new Among("anza", -1, 1), new Among("enza", -1, 5), new Among("ice", -1, 1), new Among("atrice", 7, 1), new Among("iche", -1, 1), new Among("logie", -1, 3), new Among("abile", -1, 1), new Among("ibile", -1, 1), new Among("usione", -1, 4), new Among("azione", -1, 2), new Among("uzione", -1, 4), new Among("atore", -1, 2), new Among("ose", -1, 1), new Among("ante", -1, 1), new Among("mente", -1, 1), new Among("amente", 19, 7), new Among("iste", -1, 1), new Among("ive", -1, 9), new Among("anze", -1, 1), new Among("enze", -1, 5), new Among("ici", -1, 1), new Among("atrici", 25, 1), new Among("ichi", -1, 1), new Among("abili", -1, 1), new Among("ibili", -1, 1), new Among("ismi", -1, 1), new Among("usioni", -1, 4), new Among("azioni", -1, 2), new Among("uzioni", -1, 4), new Among("atori", -1, 2), new Among("osi", -1, 1), new Among("anti", -1, 1), new Among("amenti", -1, 6), new Among("imenti", -1, 6), new Among("isti", -1, 1), new Among("ivi", -1, 9), new Among("ico", -1, 1), new Among("ismo", -1, 1), new Among("oso", -1, 1), new Among("amento", -1, 6), new Among("imento", -1, 6), new Among("ivo", -1, 9), new Among("it\u00E0", -1, 8), new Among("ist\u00E0", -1, 1), new Among("ist\u00E8", -1, 1), new Among("ist\u00EC", -1, 1) ]; }); $__jsx_lazy_init(ItalianStemmer, "a_7", function () { return [ new Among("isca", -1, 1), new Among("enda", -1, 1), new Among("ata", -1, 1), new Among("ita", -1, 1), new Among("uta", -1, 1), new Among("ava", -1, 1), new Among("eva", -1, 1), new Among("iva", -1, 1), new Among("erebbe", -1, 1), new Among("irebbe", -1, 1), new Among("isce", -1, 1), new Among("ende", -1, 1), new Among("are", -1, 1), new Among("ere", -1, 1), new Among("ire", -1, 1), new Among("asse", -1, 1), new Among("ate", -1, 1), new Among("avate", 16, 1), new Among("evate", 16, 1), new Among("ivate", 16, 1), new Among("ete", -1, 1), new Among("erete", 20, 1), new Among("irete", 20, 1), new Among("ite", -1, 1), new Among("ereste", -1, 1), new Among("ireste", -1, 1), new Among("ute", -1, 1), new Among("erai", -1, 1), new Among("irai", -1, 1), new Among("isci", -1, 1), new Among("endi", -1, 1), new Among("erei", -1, 1), new Among("irei", -1, 1), new Among("assi", -1, 1), new Among("ati", -1, 1), new Among("iti", -1, 1), new Among("eresti", -1, 1), new Among("iresti", -1, 1), new Among("uti", -1, 1), new Among("avi", -1, 1), new Among("evi", -1, 1), new Among("ivi", -1, 1), new Among("isco", -1, 1), new Among("ando", -1, 1), new Among("endo", -1, 1), new Among("Yamo", -1, 1), new Among("iamo", -1, 1), new Among("avamo", -1, 1), new Among("evamo", -1, 1), new Among("ivamo", -1, 1), new Among("eremo", -1, 1), new Among("iremo", -1, 1), new Among("assimo", -1, 1), new Among("ammo", -1, 1), new Among("emmo", -1, 1), new Among("eremmo", 54, 1), new Among("iremmo", 54, 1), new Among("immo", -1, 1), new Among("ano", -1, 1), new Among("iscano", 58, 1), new Among("avano", 58, 1), new Among("evano", 58, 1), new Among("ivano", 58, 1), new Among("eranno", -1, 1), new Among("iranno", -1, 1), new Among("ono", -1, 1), new Among("iscono", 65, 1), new Among("arono", 65, 1), new Among("erono", 65, 1), new Among("irono", 65, 1), new Among("erebbero", -1, 1), new Among("irebbero", -1, 1), new Among("assero", -1, 1), new Among("essero", -1, 1), new Among("issero", -1, 1), new Among("ato", -1, 1), new Among("ito", -1, 1), new Among("uto", -1, 1), new Among("avo", -1, 1), new Among("evo", -1, 1), new Among("ivo", -1, 1), new Among("ar", -1, 1), new Among("ir", -1, 1), new Among("er\u00E0", -1, 1), new Among("ir\u00E0", -1, 1), new Among("er\u00F2", -1, 1), new Among("ir\u00F2", -1, 1) ]; }); ItalianStemmer.g_v = [ 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 ]; ItalianStemmer.g_AEIO = [ 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 ]; ItalianStemmer.g_CG = [ 17 ]; var $__jsx_classMap = { "src/among.jsx": { Among: Among, Among$SII: Among, Among$SIIF$LBaseStemmer$B$LBaseStemmer$: Among$0 }, "src/stemmer.jsx": { Stemmer: Stemmer, Stemmer$: Stemmer }, "src/base-stemmer.jsx": { BaseStemmer: BaseStemmer, BaseStemmer$: BaseStemmer }, "src/italian-stemmer.jsx": { ItalianStemmer: ItalianStemmer, ItalianStemmer$: ItalianStemmer } }; })(JSX); var Among = JSX.require("src/among.jsx").Among; var Among$SII = JSX.require("src/among.jsx").Among$SII; var Stemmer = JSX.require("src/stemmer.jsx").Stemmer; var BaseStemmer = JSX.require("src/base-stemmer.jsx").BaseStemmer; var ItalianStemmer = JSX.require("src/italian-stemmer.jsx").ItalianStemmer; PK9fMS[SElinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/file.pngPNG  IHDRaIDATxR){l ۶f=@ :3~箄rX$AX-D ~ lj(P%8<<9:: PO&$ l~X&EW^4wQ}^ͣ i0/H/@F)Dzq+j[SU5h/oY G&Lfs|{3%U+S`AFIENDB`PK9fM%ZZZElinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/plus.pngPNG  IHDR (!IDATxc8 g>@;([[U @l-!a@IENDB`PK9fM$@;;Klinee-guida-cataloghi-dati-profilo-dcat-ap-it-latest/_static/searchtools.js/* * searchtools.js * ~~~~~~~~~~~~~~~~ * * Sphinx JavaScript utilities for the full-text search. * * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ if (!Scorer) { /** * Simple result scoring code. */ var Scorer = { // Implement the following function to further tweak the score for each result // The function takes a result array [filename, title, anchor, descr, score] // and returns the new score. /* score: function(result) { return result[4]; }, */ // query matches the full name of an object objNameMatch: 11, // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object objPrio: {0: 15, // used to be importantResults 1: 5, // used to be objectResults 2: -5}, // used to be unimportantResults // Used when the priority is not in the mapping. objPrioDefault: 0, // query found in title title: 15, // query found in terms term: 5 }; } if (!splitQuery) { function splitQuery(query) { return query.split(/\s+/); } } /** * Search Module */ var Search = { _index : null, _queued_query : null, _pulse_status : -1, init : function() { var params = $.getQueryParameters(); if (params.q) { var query = params.q[0]; $('input[name="q"]')[0].value = query; this.performSearch(query); } }, loadIndex : function(url) { $.ajax({type: "GET", url: url, data: null, dataType: "script", cache: true, complete: function(jqxhr, textstatus) { if (textstatus != "success") { document.getElementById("searchindexloader").src = url; } }}); }, setIndex : function(index) { var q; this._index = index; if ((q = this._queued_query) !== null) { this._queued_query = null; Search.query(q); } }, hasIndex : function() { return this._index !== null; }, deferQuery : function(query) { this._queued_query = query; }, stopPulse : function() { this._pulse_status = 0; }, startPulse : function() { if (this._pulse_status >= 0) return; function pulse() { var i; Search._pulse_status = (Search._pulse_status + 1) % 4; var dotString = ''; for (i = 0; i < Search._pulse_status; i++) dotString += '.'; Search.dots.text(dotString); if (Search._pulse_status > -1) window.setTimeout(pulse, 500); } pulse(); }, /** * perform a search for something (or wait until index is loaded) */ performSearch : function(query) { // create the required interface elements this.out = $('#search-results'); this.title = $('

        ' + _('Searching') + '

        ').appendTo(this.out); this.dots = $('').appendTo(this.title); this.status = $('

        ').appendTo(this.out); this.output = $('