From d48418ec98bbfc0427890e518cefb6c995ecb117 Mon Sep 17 00:00:00 2001 From: Peter Klimai Date: Wed, 12 Feb 2020 20:48:37 +0300 Subject: [PATCH 01/15] Add some pictures --- README.md | 18 +++++++++++++++++- .../hep/dataforge/vis/common/VisualGroup.kt | 4 ++++ doc/resources/class-diag-3d.png | Bin 0 -> 20809 bytes doc/resources/class-diag-common.png | Bin 0 -> 22656 bytes doc/resources/gdml-demo.png | Bin 0 -> 99649 bytes doc/resources/muon-monitor.png | Bin 0 -> 67196 bytes doc/resources/spatial-showcase.png | Bin 0 -> 48410 bytes 7 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 doc/resources/class-diag-3d.png create mode 100644 doc/resources/class-diag-common.png create mode 100644 doc/resources/gdml-demo.png create mode 100644 doc/resources/muon-monitor.png create mode 100644 doc/resources/spatial-showcase.png diff --git a/README.md b/README.md index afdbe49e..afd32d1a 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,20 @@ Main features: Common visualisation objects such as VisualObject and VisualGroup. +Class diagram: + +![](doc/resources/class-diag-common.png) + +This module also includes configuration editors for JS (in jsMain) and JVM (in jvmMain). + +Note: this module is not 3D-specific. ### dataforge-vis-spatial -Includes common description and serializers for 3D visualisation, JavaFX and Three.js implementations. +Includes common classes and serializers for 3D visualisation, Three.js and JavaFX implementations. + +Class diagram: +![](doc/resources/class-diag-3d.png) ### dataforge-vis-spatial-gdml @@ -58,6 +68,8 @@ To see the demo: run `demo/spatial-showcase/distribution/installJsDist` Gradle t Other demos can be built similarly. +![](doc/resources/spatial-showcase.png) + ##### muon-monitor A full-stack application example, showing the @@ -68,8 +80,12 @@ Includes server back-end generating events, as well as visualization front-end. To run full-stack app (both server and browser front-end), run `demo/muon-monitor/application/run` task. +![](doc/resources/muon-monitor.png) + ##### gdml Visualization example for geometry defined as GDML file. Once you open Web application, drag-and-drop GDML file to the window to see visualization. For example file, use `demo\gdml\src\jsMain\resources\cubes.gdml`. + +![](doc/resources/gdml-demo.png) \ No newline at end of file diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt index 467616c3..0a90adff 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt @@ -16,6 +16,10 @@ interface VisualGroup : Provider, Iterable, VisualObject { val styleSheet: StyleSheet? + /** + * A map of direct children for specific target + * (currently "visual" or "style") + */ override fun provideTop(target: String): Map = when (target) { VisualObject.TYPE -> children.flatMap { (key, value) -> diff --git a/doc/resources/class-diag-3d.png b/doc/resources/class-diag-3d.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9af2cd282112fa22a9650aa970d4ea3e191563 GIT binary patch literal 20809 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 Cso(1W literal 0 HcmV?d00001 diff --git a/doc/resources/class-diag-common.png b/doc/resources/class-diag-common.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c6f56881e1d38a614dd683ce9651b9bd85fa13 GIT binary patch literal 22656 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 TPm_Ba1o%jcD~Q#J7zO_yFrP** literal 0 HcmV?d00001 diff --git a/doc/resources/muon-monitor.png b/doc/resources/muon-monitor.png new file mode 100644 index 0000000000000000000000000000000000000000..7511b116bff6e4dff4bf58595321d2f313fbb042 GIT binary patch literal 67196 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�#)ahCf?hZaYMh z3_J_oPUuq^=hp6pJsH1#caItw4QL)%%wJafR!OSpoji!~ssvjyFx=$fho@Vz)pH#F z`n<%@^=DIe@q*J*OMF2ttcdc}rM=*%s|_N)_(}lUM91A?zBp>Q^nO&QSgmN&quV8; z0I_9t8XJfm#Cr+ANHPL^8c%A{sks5XfGJT22`Z5|0uCOCl))#5&KQ?bzfg-D&aV+% z{8y16KqmO=h~6% z>CZ{yt>^cNrWj$1{Duek+6CKYMbu#qj{BJ!g+}u!>a$7qb4@H!M~c~uQbZA*h7XE# zsgT`yEYQq{s1!~!jVj?1@=qg!)l#v~Aq+NLoE7SsUN>H{T2h{ulwdYcJ|;gkZ7OXl zt8-wMY26hZ;ly&pM<|E6m3VJN?u)xtJgkgmE7hbJ9vx1nj~y?mOjT2}%7*h;28PTU z+i61)Z^|jnBgNFMzl2XYzm9uWiwGpBfL_u4x+rOpYN@5KHsfTWG>~d#8T2Yk4cI?8B_vfkJbZHYsy|!<&eIy zQ}$3Z6Gh+JrrcHPb!7-0pmC8}!3RADHsjf0HjaXHd`U= zYYGUc1$}eM;(5|fBt+m@J^+1%p=lG9hP6qZ2P^zmxneY!#04f{tUg;l6W8z=k222{ zsm>#634&@r5yg1V22z8iD$#r90ReKcN=nWauBMHRuf;^r-g61ZgN+(X^N~MB)~vhY z2SQr??987055X%WN)y+|l5~>mp0(b-{pDqZgTcVFyxl+>E1qyB$153ABaZ7+8T5+~ zDGwQ#6@U_ARp*BQ5|*e?o&i7iHxl*f=~u8QKt>;AS4*mfOqha!s$8}9vN3@~}ZXWq~-*?mfacLq%}LdREN z9PY@neH3&EJ_+OsbiAv4l9f3=1_-r7mnA|&yp7ZG85om7V0=`(5pRMcohM?^^qEfv zvd`lR7q8LKSn4?4CrCp-NKH)C_)SQH^9RU%zY+^#5X-ebTn3URN^`ke8IzLb&9Bhg z4x!U$;I)$vGv$G2NL_bABqOV!GdKbC16O;ebA!PaS(krQPfzLp78pUlT={^S3wOPm z8IN%@8{i&!>lj%6j(hU&*;3&w>`tJs<_t{K$5BvZ_4`QX;9Bqz`m1h>;>&{7h@l-- zt!~2gb=DsSGE$Fs4GZ#9)cyF(G9^osOF4^y8Mrq75J?IbiVB8U4Mg$cflUP~8hNp> zHo(Ip=-ZQytT2nM;&Gf%NReD=0tyN3=-Xf#UQQdR&Iau^j3<Cept_6a51@Labu zp4rLd_?@XxvMIG=QfrVd<)6$|+_&h-J8?&9RzgNkr*j(1@vN7&04aG23)7;mouNJ&wwKlr@RkVM8 z85$>ldcExD&=4Gx)K9$r?R+BraeUBC%cnXV8{8Y5L{#dRiMM~W%;(+LM@;*lbZt|a zX4Uc+CGR+KO=)v15amNRz)rM}hHc8Y=R%->Y^TyiORPd)a2iO@i(l;DE4f6!6o?6+ ztV&D0_V*(y4<}~<1Z{E2tx~^I*Dx>nB-!5IiOH_tjm&A5S9)Iyv+NH%&G!O}G(Sn< zTSg;ThHP-NOcc31in5vk!(W^AbH*#mA#m}YOZMEYxA*64^wj9ND>=U;5 zy0NDy!B{z=dz5WRO0swI4g=K!Yl50#93m}dqW)xKC4V{;@QD~UNb#}PGAgHaklDGY z?x>9+G)dHdt*hy;7tEto!HS0(bW$6;6lF?{1y_R?_m(pC_`N&cyGYi3FZ6rLoDbiN z@e7DJeSI95KAflezFh1P73%@*8GNHSBQSJsb^>`7L%Q?F^`%`rLH89{oof50qT|0l zq~TMQt=D?wbA0_Wl_DQ-o2CukswkIu@tfQa&;`sztQ^r3Ku_j*!QdZ}c84usfVN>M zAi!#;9uU!y-~wSUo`z;C;e@WkXI&p~yh1Hi0y39b0Cspafxkno9D0l<{So12X+3_X zaYMAEAU&QT;1lxpcn(6J(XNlh-U$Qzntb`wLaURw!|dVv5IMN9lGh`yFv3`FvtNsJ zDahMJ)}(sjVS=N&-{F*zeW2D!yUKbc`kEo|ktt0vHN>KwZs#+|PgcjW>4oGyoFIg- z0Y3HDC4E$XqcG%w6^CN5HWwU)T17h&t{ZckIg)hLDxlqc0Opd!=eslMcd%*%{w-h! zR_=yBT#qe*2ee5!@~!djvu4~yBhvYf1}HxEky=w5bsuk@$u!Hu&i7yccz^As5zZOQ zXQJP;$?SKnDY&txV#1@&G3u6K&&rcRBCjd0cLpU;Y-i;*rZib z!`d0D+T%?Of` ziKCN)eHi@0J@JVoS8;&NCkRc$HuPU=AJ;bxqtsY5f?}!!*A}tXNnv_JeCDJl6`h*p z6+59cl2{1*@SEW_tn@n~LI5-&Xmq>Sbya{K>eLdJiiO9U$SJ(w9+yqN%yGcLjHo#AAXN9(w2Cxe7+_BZ%m)+;}T_HE?17Y;_&oIrv9VhSGGl)JK0kE z7Q4$ypR&(^p2mUPc2AP z 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 WNvKdW!K4rj^d&8>AXXu22va2RWml5VRuy zp|(5ZJO{occahO^(R8qMaW`|aK!KQ9*}JgWTe#fkVdG%q;@r7!6^nvW7p@>JspVn3 zk&J6dvQ&L}1T{uvT@I!gt4{3S9v^5~!I=2W*PClK{(W30S|>t*hd)ArgI}Gv?$J%O zprF?|ISjAE(bCf%8sCzUAbKiUcR##MX*&p&F3?B=E_k@@ZwUsGjT%{|`hwjP&UZdW z(Mw(M~ zFhl}1b-`9{ZgS4AHG7GF;z&Ztz9iLuHfB;s?*{NkhS|?(lgAcis z*xakeND(?%V9|X3Lre@GJycZa2I^)B=NAjsBbRi#c~COmBLZ}s7ZRvq;AeTPQ(M-J z#?j<_kLAN5?O?;iX54U9x{Dj3|OyZ-;8lJc~%rW7&eQciDhIh_jio}n-U>8=8=c++$K31k2 zOojE&sqY%kpE@5J`#PmkML@Y+DK~?$ckdKtrX;IK^+n&Mnt0jhHoL%(IJEN~BoXv{#PpBfkX&jaX7=SB(F} z9;ke9iaF_Q!;bTQ{9}Tl-9_G-mqHAAt?xX@iajDuuUbuH!kEKoynm39cah3hsWSvnK4NKtyv;NAU%~A8q&&K5GpiDumB+sf9kKAih`G9BgcQ*{*qQYx@x8w`b!eksd%-?`*v z!@r=636{BwX9u{}eKzq4mH6q~oWXkrH491dgjjO)kLbqiUya!A!pL?kroZay!D{Nm z`cpFVHaK`EERDPyOPnY2)H(xI#+=+FiYg|YZoURPh9ljy0j*^or1Zqi3)Mnr!J|UW z#ftcy{$}vOf~|@gDuwy@8!#eE-ZKPs$F^HFZ2g%nSlAFw`7Sl9tl*$MuF&a`J;la& z$k67Sw`73Px2-U4Kq~T&ofHP7SDeHc1eQWTDuQwQG*reu_1%;?Zbtcv@WNO>7@Yqu z6gK7BNgI|TIcT>FQ&SqmZt1pr{HSB2Lkk}VE&zrjDu%!v{KF@`{3Qqwu6AMA?4k2V z&7Q&Uw-6`$oq@rjXh9^i&cla`4W1vG+I~(S>lyJX_-&d-L zz4BBviN+5QTCQO*t%iCrdh^|mxkW*2+Q%VF!TG&O7{97dDG*Y2mp zihVw=Q#(?gE!;@sxj7F?6&Jn_+y)sap)m8q0w?Ae+BgkzA`5g4Jf^L?y;7(QC>SS9 zX%z5^#r7<{;nM1np@C@AWF3w&oytJbPbegPpU_U`3OxPvX6XCY!A`CM;R26;)! zC^PVTLq^kmX#Ic-F2!|VV^DAEH;HT(oG4yQ*DM@0)HXHqMYk&&e&VTNn&xOxOL#`< z#7PpsO`hJVy)HxyJy=Y|ssa@xHG?Wr&Y4<1+R`GU|p98YQc;RjO2pA^!S5ewxZ1- z^?^XxY{4RlX%dAedWDN3(?hhU=^v)JfbSU4`QNy5&jZW8zFGk}Re+s+8_aekMoaoe znlxP-ObVR=ITvk;#aft$PK?WIFfWz~B<|0sm)x;AFFkae<;#U1{cYS#&I#tYG=7O% zd9a7h&|C=j*ly63EVtGyfki}5wQqpO6oFMU@FrP?duLe;)F8kTvn&Gnf*7NVveN;q z$sfXBqr~LAJT?7)BFMiISVp9qugD457%3f>K)25Aor1+#T%_cYqV$=w{9+G$@OtQQUr`7`1|5Q;**eoYG{vbZ$Vj6oYH9doz4A1gmL^2{z-#0{ zz$8@jz%4*}3{n@1n~)S?)Y3 zL&8gYBRt}e?gROJJN6dBnjp6WQ5umy39KL!2HaG!(jxhSzhuAj_kE*QHz|4zIB0+9 z|J*?{&)}#jSbLAXW`W(xiU2MISY+iE!izZ9O%Av#lPCah5uziVQwC%Pw4wnR>wjc7 zu>}79f4Xf$J%*EjyDxn1uh_6tkk^V27!w2B4C-aPf34KR{F}h0Z-9B_$p5&qzhl&)B2$ew{`=~ht^XY%uhc!XNEX%|sU>-p8H^EHm*npbfg&$+u{$O$k zLWuf9AllFo0eWuu6MEkB-=d=uz=d0@qWP;(OUk(L0DXimr9|Lg?!XASnh$cd*@A3AVW$ld?2H>KPnKMQ=j<58O+8xAOawE_ zr3wW;Xsy%dV6mIri`Rm7?)VFJR}7 zEVfny%l+!fpc~?Dvn&)h6q$lxidv-xn8e`5Q{`)VtA7gJ__QtczEL^n;7RHj!QOK~ zFzxbdMchd!-}G5Knm!?jf@#?pCEq#eaZ8{_sy7e+YTxxu1#e+n!a*#)7rF9Q&KmbO z*6|NL)@mOL%of}cNHS`e#s-TMS*7(V1eRlc z5Ly55sZ%%?(_@ zyGlr$+$4v1TW#_um)6y0m~;;yB4YvqYZ&m&++N2}7}lyAo;6W8qa~TPNK(Cp#&C!( zE&+?kn8*uKDiRd1HkI@%D8Be%%G`|bCz$20+aVG%dyo(rR8D)#6xNSPrL$j@8E5j-9K^dm&=vU0BZ z&1S~%*2;Mv_51dFS1Rh-lS_si($M0U2{JFDc8sl@s>;7S@2=f+j?=%%JkqMn1sTSLiux`< zg^@qk0|s;H?#~ep)XcVN?!B>N@QS_2a_8?;`nD|Psm-Ck^Csam`~jphRZH|i{g414 z?ksa=1zg_+h9#x}7Qxv}&Bb{a)34)NRo)*p0rC9*5coB?IhErZ&D- zg1+|n4!yR|34Q_Zg%H3as>f^D=Gk@Y z862b27-6vj%rm>`Gb=g?bwUEZ@)keUfRJ`LaL&0m;e1IeB4HQmS?Y_70HjWb@pGac z$xyprHXjo~-{K)EIGN$5FSUBm;|JQZ^cK&;Dt5QZ)ZZ~*K1uCZ(I5X=`~1e3doR>? zNa7<_gh&6meE>`ZUpLimY^8Eb-0#V~UVF?mw;C z-fX&~Ll>+(N)vJNU_wMFp({?X~xxi_4RQ!fGXO&E7A~)8!_C?$5GVZZ6MCVgCzfs*@>L*kJ!PA~# zahl6CTDWQ=b;;VO%tu)3k8Jt=d=bw#d|gc%cuMbC9t2HkQlaTQmbf8Ri+$B(sDPMj3t{Ns(>}#V_w-4Y<#?-_9w?K7gLL6DfJNXC>=* zAoAX5)za2~F5-2X2+GaX+^~<1lNE*8e#&sjolg|P1<#0jNt$OtL+Rierb>;P`%FtW z3P#K831w++TQj;!ykbn<4mWe!~|F0f?t@gyz^Hl77#8IJe@dj0NrG6&))52!?Cg(ym?DzWS zXqAV9ltIZdF{WO<3;XGlxZ4=JLR=(G`t%N+nhmxN@72kfwkzgVdJYnI(@&F8!Q}U- z6H0aP;biqC#y7#2JM@)zv9ijUX4l^>v4B=5aH-1*-Y|fT7*n#W49e8^73H(AF?YjX z?`q5}hLZSw+4U^+>_5Kw;kNme9r{p&1X~Z{HC9O(C1oE-q z--gS4p3NaxO|#yjst?_3>U!gE&}wkv7WaVT-kOh%{bc=<(0yEYuC1h8OmL--uVtT_ zxLYbLHIerxz3T(<{IAiyS;v?a^h?eYm1lbe?26U8<2^QQfUDQ-@}Db7vYoqsHuI4! z)m613TqoHn$bSfiHhjW)-mCfIl54T(6ngHun^Z&{gV{|BBs11yP&#jgEwjlwJseX; zK?&>|E%|3nXmq!X`9;d@?4E0HjhEjm%SbXp0~?WU>ut~-2-Je@f={8zt|eVV!2_nA z5FK4;xsbA7@vps!(v+EoSZMfB__GE4+Wq6Sjo>(#E0diaYvHET;YAeBO%>VrCXlaF zoEZj{mZZqq>V4xERRzW(-iM>4?t-U-(^+vwqC6_GSXb#!lbBQ!NHTk`CHGx80=r#68ocPYyh{_mQ3~TdW zUk?D%%r@A1G(PfL?=`twTFkJO z2S-9$!5+if#0G%b@K#pG$78<1X2MPOShJ4D#*=#gHiPg^AQLppl03QJh7`zyV}L*^ zcD1R{;u&q)6xM3L_`mHJLzl$)aAL=%p^(QxqL)i3V+3#w3=+5SS1jxHCknBJ=p;|kdeKu-D>99L`6g!DFh zvb9BKl}gMSXg#h;(M@ov9L=Ac7>W7)J6NsYP{3fEOeY*{CGaEYtbl=S)GpK(8@x+` z2^L)9RD zSo;2rYlr3I2NEnG&o{JURLAxV{)9^M2j}_=+MFpV<@>*cEZbqPQMM-w8Mr;`sig7O zA4vQII_N+UL^R<8#<>DFudpaj^xoz>{{sElAi(}lXxG0U2cWut!>szeyeaFDVAc;SJx z2(zM48w@aoKsO&h0Gs?a*%JUe%lu=q|GNNc&wtZo>6^^Gce*#eAA%fyQ znuG{*m$I<~7Sw_e^&flCphh)q2;>hoMEU>{J-^!QPyD(ttx3CE3(u;l+F<5L=zRtI z`cAa7hg<=QRRbF7w|6oB;L!jG^&9K^HyGI&%S2Vz)LQ^N?*I^Pg)4Rb<=Obs0J8sg ztP1dK4*!3NGd~n(?rL`uehvP*iVY7RApQgI0#gI{onuxOfW+bh_+3k6MgJADc@v%| zbOL#7VEos@01$exp2{zABjBJ$`eWxBfUNzqA5*+wb1CA|DOWsBJOJ{`$*94tw&rTJpdsNJV-fstnogT^nVlOV>3HsM2Mz07$PyS z{W;}|y47#6$bbmMrvNZXT4vx>T_E@{vR(pJ4oBciR&%vA2ajPEFHp-ajJSD1%ZvhV z!9D@XL_-L@)irtG#1fJ1K!Y!^Hu0l)Dgz5#F3h+5F&_sw?lFbzrXb5nZ{eeF=mA7S z^b^CTMYTP?@Q~{RZ zt$(WD4SbZdyzy$_f&l=}} z?R>QfCzD}FV}u*4`uhCJgsv6Q=-R!#D)Nsor-u}g^s#{_x)AA{^l4YklDlZjB6(a;XYeq3<#COlR(;E?G=)=&|Sr4X~@0G`V15)_tBPf4wH> zm58I7TBaW~hcsly_7}mdm#+NIIzkvhLENjtnKNcg_!A1IBj0Cj)gIbvxy)H~D*O5s zgm9mFKaUwJkE5{>nNSzt?qhFRKME8lU^<+Xu<8AHZ~2bFP;rW&NN23MO*MLK+*Xp) zm@#~qUi`MeV<{Z=?H|H8In5y0F@qjU zytxLWOKhE9ED@(~>owjP4!u*i8u(~GUVCtg>_Wccw7455!6vsDjy%@+&ae)pzw z#ZY(<-5$ZYL~{ZecESJ)zRGD`{FQ~Uj1;R`Wzmf!Zaw0B{Nz{UdmhJ3Hpnm~qU)0l z|J;yxO=f;An?>fr{I?JM9JL)SASL@xSt8tL<&Mv&`RSW&1(}7r9^02A#^TT>#P<@P z;wL{fK_wNOSmSoSAtd%GFSjsbO?C?-#>Ztt+Cb^1=|aJILRsp)L#D$yTg^r3#1qcEHHVq9Q6Q26j*Vn&cyA*`-Vi6Z~zEM_rs)CD?(=m3))us0F z2WW3*TTsU7N%$^oQCizsJ;X9GsQ!QDYj#7@xO~KnNASpg;^iQrBm#FQO;3 z=>{qJRTQ!;zHfT(#HAZ99ir07vE;l}uCrc{uJ<{MK~t5v^3JP3nErPDo*2XYdVS=# zpkJJl8PD>(_cZpG_)J^cIAa_(6bMEa3Sta*37Io_8lkBcZLleTQo%z=FR)a4?1r%m z8+VU=O$}swDaWvk&-A)oVR_T}TM2J76}Z3?`L_$WZ_Rg|EaGP}4Tyq{W&I(F5dd~A z$u#~G-+o`2DdFQsp-MFoVft#5t`4fqlDNIQ&l-A0&D4}3`J%bWr(rE`I5A`9cqxFLhFy8-bUzP zUx%Ip@3usMA*9l^|Gu-lbal4CZ)$11qX{%a>F!Hi{#ei^rH=|cS0Luvu8#j1ML;;= z$uGZUhS_(pNU~NQf9jMEVqqz-->Z8RvV5zn`Mh7C=%oE-BQFGJWMF;JGVI1!iYxc> z4s?15oH<*eID-ael?L~ab5c68qLxqrS_C=w=1#Q5b$`dkN3YeaD%Ex1C zi|N~9i0914N-&e8-4jW;@mUV46tE%3zD6LKmOvD=X0csUb? zb}@MoVN*`!;EFlx_ zU!K-Symz1`6j)38QH02#ehEV-YhAB>YnIB3FQ0b7+{0w31iK8LI{X2e;9uzs!#FM% zLLWZ+z9fG`vp7n6T1W^SVcn@Az3O(yy6EU z#tqK4vjtmk%P*p|)cqnD zB7G|rcn;T!4h1U&YVaKMr0MIE199sH$jjLR_P3?Qlo`(OaS)z!)4ZJ#e)Zh0Q*tYP z$Wr3S>y0olX;GG708E2PA`vmmUXPuN@Im+50wV^}_77!OrtsZ{&-P=#3?4ZK!A_`6 zW`u-Zd7{V5H0vj_DTUzp0)Aw6^PB+%z6xeJaD6me(C}@rG73N`H+Dug`-5TQR22I? z+88{?lZE+MfxALlz&UL$?PUEyAWTen|DHIcQh<5l-fu#WfG$AjK?~j!Cqkz%a>*l2 z%Ew_Ta7gPN(q~Y^VG#e~`?M(ZHZdM9SzjCk5_R?_dgJTHM-$_^7k%d4gj=wdicn6?F$tzhkZ z0lyk$g`LP#B7kbaoxVo#Vy|g*&Ed{$K{RJ_Y@?LrJoIcM7;V2YU&rU!$_L3ec0%fw ztb5TGO3fg-liyg?B`OLyS)SiFiY{Kr!ucc(B@69{o{m7jhfn-8RVlte%so`p?WE`? zl4}Hz0TBZq&&fr!xacaO)+%*)KO%!7J&zW2WifB|_5Dm^K` zPO?sruFXd~i&w#Mgi|S229{HvZLmW@fGFgA29$pRCb%lWYx`088|znZEQ=Q*z1%ldal~Pd$4)lBjd!nq z8FUBg#?H`)Jcl%unF`I7O5|!s6SF?ljE3z)VV<5<1q>%RsY$p z!Z|KF_VB4>VFoER!#t|89%ma}P&!?u1BrVulH>BJU5 zvu|7=#@YyQAVWctP5?9z;7L$v)x1s?-vyUjAIN<$k`ezoYs(jfR&dR+xutM18z#;1%9ECTTVY zJSG4^PuUN}RJ<=uVJ|`pl}~zwx+m+KTWNVe)#gkNJgkpLq*9r5f$PF-7to_i6 zfzIO#z2^N<@M)3Hi}(tdt$l8+Ve@S)H&upfL{ON4nbU39>OwDQlqzo@c>{Vq56W9=S^TdRBcZ&G8b-z*@-ytM%h z$jnpUY-Mu;E_nJ%<_j_R0G0~79zdO+O8k15vZFi7Z$yUvm*`M!wke9^+UH!~NJs_1 z%k&Rv`5CK74<|#kY=n2p6NL+7m@{M*0C7U}p3X=l-3u-}sCvHkTA$pJ z#6_@otR;VYdK9>u^6QDhZwnC<0#h3uW(lW;g~xQ>z1uh{C_5uqcBJ_}t|e0O@p|Qr z4z1bQ1&S{3d0c?zd0jea15p1Dn-fZ`-1vvdBJ)s~nyvDw)8u`Yl#=QrKYgnyg?O*@ z)0W>c4@@Pn_Q7SZ(qOvK)VDK;c$|R3cDR{lKvR5*cu#dIVO2xT#pEt@h|&V^TZ9l~ zm~Mq>y758qLFyegN}h9}<=U2pG6udE7F(KxYzNXuul{&0FjRY`z$2M&)NA^nHy+bs zr`3vam@6M)78^Xxje9*~4Gyl2Cvu?i`p38BRwcS@kGEz78Neen9hGs6b>s8aU>8H` z-#3}hRXJm?$Lix-#6;bXZX&gI{KKM>a=GvVSMGcWGu}=?NUAOn>Y0%D7^#wwr^@3W z?9sYDb|vH(YfP9R>7CvJ6&-lwB=qZM>;)6RCp6^2f|sgsx50`OD?e|-3B88jV^528 zw3aWp28$P(F05x**%)oSjr^-{yt!O2QaPX9-WY=u#DOj_o*n3QPt*@ni7r!S$icOQ*g0%$LdqqaWax^;PxAlZ|A~Pxkrg*; zai&&Iky`hb0Hc(}vAWc6_JIzMS&k3W^^Wspyxq4?G8%zW{&gAR>IwqGFLlOqfkU0C zuU*`d*2>qXAwz6n@jFza&6d+>e_LQ)wS00UTIg4=sRL1JGOv8N+a_E0E{}$M{#@8< z$~wiLCmss${I0R`Bokmm(EQ}(!%`*ukRH+7TN+Y>p}SdHo0HUSC=~l62X|Es9(vCr+bvss`z%zW)hQ zFkArImLny0Gtdzef#e;1EDF4PZtJqY-t2@+NXJ?(-QFEneSHD)0n{W`+XR5zT02_K z`FQQc?d^gHJdzX^XJgZu9gXTH-yKH<@cuInB=v4l`IhmF1ckS>Z}mfgwZ-Lb$eE#X z4?i@WFa3Gro>fKrs+zuJ-SI=?f#!RIpC-Me3U*VJ> zn6E_PESz>?UeCtf*-wGc=h$tQ)J0FKf1FKmAFb2&XzDdyNfY{Gcirpx=U0YJvI{=+ zAHP}XhC(WS*~ab#@H<_yRZDbi`drI>eK1=h1IbFelBJ&=+uO*aA%yw+_X|p zSv~OVILXssYHR4J1M2TErN)F5sNDSI3o#dsI}ig!%+H;7o#-)cyW2%K`dSX2d>yaF zoo{%`R*rI|%_cgm2{I%P7{t6;@1?u=gK++i@Y1?@w%V(6%MI)5li)C=dFz88oGC4U zCMg3v;=mSp7=Y)%bRIp{-#IzWl%~&_Qa9Q7IU#PR4D&WK8F6@fXM;eRn*_r+$)$&bjq z1m7IPst6yqC8ANFg2&7Oa^s3E^8imlwwGmNh(j;r$p9d?-BZR66`IvmEv@gwjTFPBdIPV%51JgVPYFxv;Zg`UQ@jhlPoyC+xNUu7rwl0~N2VHC@LO`|ge6%H#$I&aGuhIcRcxV{$`c zbTVC@67W3xBVPt`=M|(YU(nX}OyNruwoDb7cQ6NZ7HykBlQ*JoB4sW7!pr&uu2#&C z2FD=}`ZYc*e#kONTHQWZSLDDR>HB?=&h-50>2qrw-_r8A$aie`2eM5dlO@~zuq4+g zpZcF_jjv5O*EU+|L(4ujgC4ZTLu!t+-zpIZzSZ+jNZ8&!DRF4iLj-_-we0_^`ZyA=pYRz0s_>y(#TQOfc z33qUuPSMA$Grtw%e7-0i1bg!K%gUJ@vnW5+_>X1P5tyLC3nKK|8Jz?ZL1W0phj$mt zX+)6WL8y`EVdNZLaP&qrKtG1Yf0BKf;4reUe!eZV-FPs=P3d*P|E9F^+py35=h>^g zfa3Zqwg-5bMQM1|g3D_y;?~{whd$J;U%n0l8DvM-HJ;`L!BQ4&k0WZ~-lz{>4N?UoI?2Qqaa=w(V|fCVto#dWV`ucV2xI@T;7fC9PPzK7YLu)9;@TB2B&4 z&#-Gvd>=YBi?_2-e&Lgm2k-X-DzJjb4W|Meq3mK4w;BJhYM9kGKsIxi=P`4mttM}j zKXMiqz|ZY(+M+^9A1=OCvEq{OkBPZkCelv?=GUS5ayry)!0*q+<+Rew^&q)ljuy#I zuVr#5KZP1aSB|S()@%BNV}U00FHb?O<*9xT9`4FHcf)JOXdVm!_U6)GIW|SS0k7}6 zUU1@}BxF0i-qva?3v6k*UI95)1vA(^wmFbnw#)EU7~h zsh+U4O&0}uBgn8Xxz)G)*u4G;ZYm5IdsfkxQ&O2yV!mvDR=#iNDa*MSkl_rdk>BTo zB!`(L=qJU7EZN&?d)_JU_-4*chsRqAC8SQ5@QW>Nw@<=Q;WgqnyxDj`sEMw1ZA9QG z0lm3X3hW&dV-oM#b;cv_^lY*wkXYeeu~9Fpcb%Au_mwOfetm0Ps&9un-EuCi-k_Kd z0tG)fBh4+}^XK5WL1cgdbu~d`rc3EmJdPLgvFd$wgqV;if%3?UW*_7-ZsIOz;LaAv z3D(xmB|iB;pwF_zv!@<(;Mk8AJmwp9^iVkcNz;^I{Q5*Ohrn8-msWgA)w!L19%&jO zOXcO=7TsshQYKCP8%FZdgTxDsg72_1IW9`ncBS5>^nKtj20<0#moxGof<;o_BT2)- zCHYPXUM2<&xoi!#1dUyuLq9EtO%J=h6z^UB&;$@$lFW+=Yxh=i7(T)r9L8q1v0wE> znCLyKXZ|#E*io9b-?{sN*4|CZe~1X-#gmf!ku>jCMle}YEO)$F`xL@o&6LA?n?1z) z@_YB#5qjgs6rB~o8KSezw-s=24TnFA$fk01lZ!pCv(u7fo5GsVbMNl8UoI9BSQCT~ zeEq(|9m;i-i8E%s7FFftS}{B8n0UhU4i?+EGBZBk@{m0R0QQpR!9$0ouIGVMkpkYo zl(VLaFKYZYe6g|Z4<+LP*FreP;l+5|ck7eTHVd?nVPg+*dH!7u;|ZTtBGvQu5KQkK z5mfLLiT{pYw+#sc%Xyw>Z(-m>JQ;gpnZ=JLL~tDId2?x&K|XMT!ZJd38F!6MweOOc zyY!iVk5P&=d}s3LRw>Q2!wZ6vR?y%`o!}Z!Xzjd>j%%=@;B4A>i}+bQOr2ml;B*~x z1@qoCrltGMCQy`9Mb&4IrvXeX5-Qa$8m`qSB2_#Z4Ofig$>gjU2;remx^19APAEjYSMxo{K?Z1qM9nK{>fGa1 z6gBe5JGXi0;Qy-Ltg+mCh9i?wfK%YP=$a+aC`b2e(Xj5E9XF$0SdU;Qws*zt$0RS- z?jC}dk@sgBi={+dUI2_OqAU_u*SH}Q={fmzlQ~aw$d#7Px4-~P`2<15r!DY<^OccC z?%jFNgO*|5ne-$hH&1=fFP~?Y%G@6IX4PL1QKLAMK_57z=`351?8vd1P$OMi%h20o zPJz_(Y&>tIF=Z$G)6hn{-Q@+j)HHxIP8^U*{oHwcHLn1(qMnz`Xi>Mjlg-)^4TF!E zrWbZZ9aWAX(MHp0ofRxGa3i9eu<_IZH{WQsAzxHij~c4YKvJwXI>$He;p$sQCa|UsC*zws_b>Ld zfBKd{Kj7Y{&xQx~$_qoaCTBrCa{7t0ZIITkFt#+e>|PDbb4&IDgYupsc#b+Sla#hi z5^z#AMg~jPDz76Y2S3MKZ^cg20{ODHtTSbE7^idGFB<*Jvwm)*l7FkWsM>P~MmhRX zOnwhb#Dclf`6xg2$APp5D@3O%vjYFR>m|y`t=-$bLFfnbrt{$%cVkWA``U~3{*X8a zpF$IflgdkubWN>R=V9sBasx-VUA!Yf zVfO=;FZHE%b~|BfW?PXPauX_ugErO`dwsy}d(H@uSlmXk4-eiX1?ULv8Y{L1pQn$j)rzW$LH>kpcG0Jw$4l*kOv&hR0_Ppoar~?R$ezDwmwHmBo(p z1^&jPUSC2Av6JuzqJGn9a&xf&lO?azX7FPkb!iUJlmZ#Xz=+#q^LcPsnchQR2OMAj z;dpl#T6M;Y#q(Tx465Q02!^4 zs+11esd*Q=07Zxtk`4zYk>c={AVH7cjf5S@p40!5Iw`T-MS(uY>~9X)e|2^&A@$~} zyBlDt@dN#=Ko>T$zZyyCgC1DEyXsE^7O{ z06W74pi!6kU(rqfJt+@he*UZWTNyu{n5YG}TZr%>Vkl`A{WVloQGHEvomW%}Q|zF? z!%w?ny8)fHzuU%v24o;CIs?7+f10R)oL`D*7xrH@)#i)BKV)))<{u(UkNNivav>#gn?Z@KXI$=gc@aIa` z%tHyF)jQQOXtn8ifaUTkt>iy-znK$$vF6`hU4c`@h3? z-2>N$QU4Q>vkh=cK$Gb{ER{e8UyuScI|H0oAfpAEoq;AzB*9r%Us3DHwCM{J3?ye4 z;1&PrJpb2RTtG<_y43(xH2gL>@R|jHGVHwl3aJk$@M?s*Kx8lVhU1~U!6;E3&0B6Z zp!t42=$x5VfOyR(f0aXxPxT!J*fS^?CNf1b9K?MUE#^V0lWlPZ3Nlq7z(WwF+UB}1 zxyOFLumN~U!Zn2zF|UXVypX_h*Gm|PCsF~|t=h;=a%3y@3Fb83&Odc)zvJJ2tl_Au z`~Rs+Uh(q(*5`c&a!AMeCr0#6!M_MwI^IyxaWXfOwTDjMFrcJgF;0n4pkW92TCNH7 z6!aZIFp=hFP>MZ{P4maAhvp6oy}fyNVdlfh0%^JhcZzpc{_7BM69wqHM>4YknC-?t zdes#?Zv-3zYH~upir}y2{A)E;O8%dtrr+;Q_^+coKEPa6`Hpg`1>juTRQ3YVti?4@ zR~IS#R4G&hgG6(|l*cf)ce`;~04)Y|bYRwy_wK!-fkfbWIxKtR{5?>PoxAa0lP7?_ z8d51w1VFOzk_E4S{X;p0{N|uaA<3=!ROBXGcLdhf2>J$hf?;0wR79z81@g1|_Ya<- zf_mHhvjf+CB&|bJTn-({@^E}K%OaAd0$gktiR<+hAk;48gb1wyG~B#m&cj(o zOf;B3V{Rkg=u+Tp;@dc2MLcN}nP#{14eVb!~uBMy$3x*pQ zby>g#tP5XEc7W~7^UAz=NOIQ+S`R(>wXGmHB10)W-j{@?KWnREm^Sl$lI+!hPW$OG z))Eh)PK}^@xWB3Lf$7)ndY%7BVZF=ADRSf#zenp(tm0?qQtFIu#C+3JhzDRw0J_i_ zkZ8OC(FuEyOwA~ek4pQZ2-h0I*YM3JVZ&mF@H9$UY-v9s_Ux0+FMbo}@pP#a9SIb0 z?A_bYgZ(Cg&lD7hQ1f*+ z3~+IsN#y43V=vN~F1Faoel`h13DxqcAmIT92V z=k@TowP9}V5p|j6T+-yD@r#g#JaKFk8_QD_6-ji>=cE@1sGG1n+-c|wNSl3oLeQBe z(+{XswJ1JffPUw@2GqbwN(d{_X@&Bx72_a%%Em%L2463I6Tnubw10LYEq=Lt+j`g7 zPWkEVul??Qvyp{KpYG0i!B1c436Z=qJDCTPWJ)|1n5P&ry7F;VP|gP&_w(}d^Z6Fv zr-)Dc;xlq~`@1M-{hZje$AZ@Driw5@o*QZln-x{xf4Tg432Z0kz@BX*j61ldA$uAT zUi=~(t?>90i6>qMLZ^L@CO``ZBQrWj;z@P2E^2f2Z3RTu+kHa3G4Q5_o#Z#cmH47n zkG0SWU;A|DzLUx}AA-fcnON@;?$3#Ylju@GMhT=(gJE&o&cAF{c;hBe3y+%v{k~|6 zCIasiqxc00CohX+8?+U#M1Vr=4zYPMYoeX)-x24x1f$8x#_~2Bo|HGx!Znsx?~s^0 z3quV9wch?IUUtw{5H_dY>_^N+;oZ1V|Kky-O@Uy#OAA0%Lm7Lvm^yt{uwNbfY4Mjt zO+~)SO`P@m_crYG!`jqTv*JQ^zr5ln>DH_?7%%0lt(yvGr+-PUHaS_oCuV@CKOH_B$wahvpWZH9`er+m zqz`c9u;(v!NJW*)biULB^$4SRBc(td=cXshf~{V&aT0 z1EY?#S+)UmkG3YjYgXn(L*O+9ubc0wBLuW1Sm6VzS!)?`^8oepUGk{2a)=A|41Ef3 zDD($$UgEe=js56PVv=^4Q&OY=^ID&3S$XHZR%$PeCNmMG+()%@NhAo&&>qS$VPYH8 z=`{BbIy7)T%eS!q#ol{IHMy?szA6(@5K)odrXs!9&`}Xks(^rW5FxbC2_*z<^d`Lp zP*F3mwjj&N;tttu?=~_g>#Vdz^93`A5bGm^|;3w>-~%U)S$i z0CT~L6MHmuTJZ~{J&nB^pq6fWQ@lckrV-J0?Yi4=7I||o&)CwM8^^}Yq{*?V0eNeI zIs}fBq^jCz#rwWyQK~=e3PVUR0=Lc`%{$V2@cOi7_=9P;R1rS?#@1^oCd_e;k6L7m zgWyuE7w_zf79*YsLw-pN-G?u?PDAy|(`@-YhYip>La&Gq#}-TU^eG`|MOiY8l|Ihc z7LDmypwpBN^g7e9Yeg*c*0zr)@4c#_6LD(E?0>CUfYTPpV3!gOc(=g5Rf9-th?8tf zN)yR}b7+s;#g%99R((PEerHEW7P860q}j&Qd@2E{ZKLvl@x5slmmWP1LIKthZ=Wae z5u%%g2(9d$;+W9NDdtFYNGj~!bg%ZoqV(RPp$4^uCvk44p0btr0KElN1gj7czeJ}J zh!&XrA#&EwGWc@YKkv5vjxlfB%X_M2&T;E~N+557lQ$%XXi&*)HXL24%kms7*cz*6 zKe{C>$5X`l^<^V)t2!*#81yD+n#;(^Qr6O=6=Kz=xn~3;l#hQrYFz1G{-m-iU`mIA zd3KXbtuOwKYIjx@M2WM5wolVDX`z2!B8klODnxR1@yQj}ySK4pL4eUAdO?WA^pT@V zsrYYB??F~&D)}@wqY`=L$*`Vc*ke2IGEXIfiuYc{ONMo$8qpF)X#Rc#lcxlkk5tAh zQ?yt1&=|?>l7d&S4p4F?dZUan)Q26C_rfnA7;d$^Q{&XUfT(Cibuk@lXL1qO6ade% z;y1ZS2H@f6s3U1#j=L&W(ChR7DF!^;=trI^!hv7xinKFIoj>(BvPzjoZ##yd%8E)K zoRif)ymBF=e?9&cG4}UD$U9VW7saCQBpJ5-(m6&?^8o%t5K7VagA>Cd=~&$l!2HJw z+rgbv&n&601KcLm^do8*72vT!zl@L(`w7yj{0^uj#+X;SDQ@=t;a&Q*vHfKg0yhB~ z1A}vMPR!4JEwKCsoKSxYx>}1nS6%!B9{uI;`g4!`$FA#~NOUKa;g3D?e;~d7es7jP zednLhU%=lfjDY%CZC=6i0ms-sBZ>fQ8oGbkO98sY;Fo#lZOG+gE%7+U{pC+MR4^&e9I6@lz; z0Aa-Ff6u?V*IfTM`}zE7jce!ni+|YJ@ck;b{My+4FW|tc$wdDk$Ng1OJKxd&4G!#C z56JX?wDbQ}SolvAwI>I$l>Y?~?qAHwA|2xgf6?0juVMAM*YK~i@w{$#0wAu=v5>#a z-+*T%`96oOl5YCrdi&aziH#7opPIp{p6Z4_!-2hqY zvzT&=6mnL z-tzEGb3LbT+FXj{bf-l^iw5l&6qSO7%1hoEMxeC7!jd z0)r;}IcPDhk#OrKV9?jV)|mhvtu%bkpsmBV`djH$0}Ma?C+IfGWYwwHi0ec}y%uq9 z4#k?etLb+@*r&}PSqY4MQ}(d~M)8=J||%=yJ%2+p1!c9U@@tL$YM?q2Nc-C%6k z?~dh@u7ZTr*98W1@hxDhYga!S1Kk$4-#mfAE6Zg8AAb*QJ!~?SsQg6JbKkeZdm3$GswJr?R}7nztp&gx@D8t0s}c74fsxlgOK1_%$t!G&rX% zL$AQ^U&CkXgQ3zTvgB1+C?3Igzy+0mo$_Zp$t@m5Qjnb1We9e^pipG=<8ye?yU%=W zzI!H+ggG#c6mJ&ko50{FM0o z?kdA#hYBev!xEYm2Tc?jsn zwTS?gB0zGj?bg#f+%(Yj*R3CQpk^=k_EE%}ugnNjn>?2bg+_^ zS)_GeBRT~Z7G#~hT$-&*mE=q!`Mn9Y=e9l$wy7R=`thDav~$=sLt5lye#IuJ-cwR_ zcVncFC+`HlQde#}q0wa2$LEmQH;$$bKA$2*fFuG;5%D~C*hLmIU=|fog?1fpv&+y^ zO$GQhA}T(ga@LdK0cUe8bm&cNHtwK(TD~1l6gJl_;Q~z%by%J%8F^F+X;+)~hh%Gk zB{ZvC?I$rc7Ihp_d8m?imkhKNik(i0hboQQ)9;#31$P~i@KDjN*XzHh^4gEVG3F6O zZ&#A`TtOKLK07~m!f*dPcPKjbXfG!XEH-W3^pt8WTOiumSaET8#-{{5mhs%SJW}3v zR_dCat?P?Pc1WriE4M{jE4(SihdRlnMmk?|XiuU7sQcm z&L&yrBC)-fl&z5XSu50KUKOQFo70wnWlgYTOL&u^sZmCaxEL0!=}1w*QP2LRNIF`lS`lI7TC%h_L$^=*Q{WypA#Y>=>}#7TPkb? zS@&Z8aQRYc{m?Fo&BvP8%NjIvG1y`8&Cqz@E4DNE&*i#ttp>a0VUY_vBW9f?90UBGM%c%lXwz* zr7Vrv6vE|THZ{S(wcn$Bt09MqdK64|HRWSx`x0}Q>xS)!!qCFw`Khezs`*S4j9sLC z;DD}BROXB1tx$E|4>VV*h)Gn*)QxLoa_pzP=kfL7eq87rhcyq+-t_QdvT>PyMR}8X z?%ta!Vz?TfmCq~_QZC6bFj6N>B!blZ40V~L!M{?HWGXnl5vdGR+LJ5gR00skW5FjAq$+qT|5uOoeeltBuG zai>Kx7MXMw*}zCtI-%$Q~XK*Z@(V0=0R(dpoO}{nXB8 z?Jg4=a#dw|tVSv;+Go6EbAET3iBI)3p)reoeQKX9uZz!khN9xzQ|mkq&)tBGC1HyV z`zv~yRpyFIAsU0BrEAg(6BROronpi$^J|^h(>@}>M<|_x&z~I{N|=W_@x#rx0qxy^ z_YP=kS+1$JqN;iPVm7|QBQCqJF(IBxU&$r^P-WpRa;;%ZL7lw5^vmNR^E6@*tEMxw zMNu{t5nEbtvRoAc=1vc|zW#EtfvU8g9qii?^PIy=)sXMxsMUL3nIw!aS@t8uKK=Hb z=4)vSh9}k*lThPnEss@PTej{@o^j&z=?`0$Rge#Lw7s{))N>t6FYAv%sZ1G0Wc*$v zZd=QRy97&P#8NEf{V_-<=$>{Yf;5yy=n6PQGnJF}9m*u^@FP20zowGkMu^mX4F>b_ zx5tHb156E}wl>Y-CJ>LHnNL;>ucl$D232mB>oz=6FTI&Dx2w>%W5*Ivy)n`5)-&HG zeG_73-7Sum+Iwksw`|UU$ z;P+gkhzP)KV=)L?x8ruc_$H~7`^%{zRR#HB0TI;8QL?TY-EGRCThX%NDr-_Mjc-4X z?8l}o^;I?1I37jc#LZ_T_a}tRe7%pl_7B<%5$LPiVdaE;f||EXA6D-i%?XmjMJ&-p zW?H((>my@q%rg3Mni{?zrM;FJ4l9cr-zKRVj(DbHu~ThDowhPFdZwI`Hc~#Q#odOs zVVae}_vTrW40sWAc4||!4xj&{j{&v{Ir4z?W5AjOe4D`qe51&1h;Qm6!R^7AQ9upt z=Y)}n8z)k0tiS7Sp=M#(=(LSN$G-@5iJMLD07qk>jr0&Np7z^`-be96#NZwzyUbLj zX=l(o?T+tP1vpDyHVD`^2$*F!>G?aIa?Y29DSX4WtC*{N8yKN0z%yATi`F@MIBKYL zk=g{X-h0Hint7>Npvszx4&-jRA)K|u1oyPSwqIgOnO?L-uyh9n@3U@9;7z!UkBqwP z*d_yqLB1)6wcCPZMG5#v#$`8(Aw$ai$~Lc1Z^V^XI|n%p!7CDRS#U9q!>NGn|{5+sH1N)Yeu#-tpgTU)Q1F`>hSVq@q)FQGEhX9P*_?z4c~W2i_kW-jq_A zFXJKZZP#{IkAl;>dx2bp;VUAGgMhxwdr?jxfHhOdUi6KJ4!_N+gYR>fF6#IfU0;Cn z8}qo&UH%@FQQAK9)AnNEUXDL5EL2w3H_v*wM+o_dF`*&TW$R6y`RqiE<PsD+&bBM_wvvoPqxVFWJX+Ek&>+BX3A%dNT%NKqwlYED^Km)Yuw30=QiDt@{Fkx zXU_Tx;5jp9+#Bel)q5}PmJQ1=uKAefE?TmT+V)ON3u`c@AQ~&Be3|6B%|ysD8tX<1 zWeUxgMZsGp+eW$qdY*JDe=VG*scaNQb{ETkr?^^2tWq!vKZe%F{5Do$kTfdaefz2Y ztJB^|aOh)xzmBG}-k^at#R<93wjJuTXZ!VaAzI3cgbt@&(WSRr1_9y)Pt==nq`FF` z_~ngz6eo)*b@SO9zPl;;pXGXGy=7SLmDz6wqf?H0dU;n7b*;jYjC0f6Cl4i!;>{)+ zI-a@jGT$*~(huAJ9n57PoOmFdvmmUo)mb>Q?idFQTRJ7_){Ep94Js=SXYM=lE5AvV zm~=XR=QP7PKX+@0Ye3dY8l~+G1 z4!RV}%D_k#&CQscNo}g}OV%*~x1vF@1TXMw2(k-#jsUw6(5bHO-?S32yBm-*EL|14s+#`$=%6TBi zaTM#0_#hrGR%|9(7Q>#YO!u2=){Q|L5Z!~B`=P2uE$`hwJ+^i33yL@Pz0o*)o8s&= z{CF~=x5n_fonh7b`~jBD)hIv?rpq|6<-*wyKMS&^gdgZ& zx{c!c?Zqb_U-z+{S}J}1mbur_a5PsSFbF9fv6aaV7QPct`%xTKe*eWv9Mq=1dZ*>U zX`=%vG{`-X7@`^wtg2TRW-npRuCw<5J;+~FM9zN@Wc+f^6iF0g8zd();1 zzHJA&;rMjjUG5p6ayCT|b{XW+NsMYHi5MiwzSlDC`SRTx^dJ~aRm{(0aCWn|F<2#+ zfuZcAj*t6nZb4Q3-P+mEP88u)UCT$$n)sJK$)1QT)b;UZ;*!mclc~zs>@blD)ylr9 zF((To$&6lJVP~kT8FJ3)%n^`DM;FYoa_Q!VtnBJxlpknlC{%JQX(?d#%fxZBKOzFd z3W|?Oz%bcAc4>_LQ}=41Czlk3dn`Bc312!@$)bg1?wo7C=ytD6} z7RdP4ypOY@;vcFp$U=F%n!{2ilbA6yE~2wZ0vifm6GUd+20Hgd) z*WV7n$f#25DctIVQma#RouF#V%cFbrQ$8NM0=;Bk>Z=cFzQczmtXP(WY zihQ2iv9aBQTO`Ij?ALhmQcXNL>bDwl$wBGrGbKk|PCV})K4St9l?{%H_obBO_@P=a z`U}}k%cR!F5u|;K_CA8}-P|wkjLLzLSlA-u&Z$fV$5AI~V&9UzPjmeMAMi7=nq{{y zIgx^cI|N;cjW?_f8}o(itl5gb%9FttHw3aAMA~>8c6$oH1(@(8(85+=(V&|K zzBj#p7gI};J-Y9B=OkXnTlCwoT(jr=L*nQthoa}BPr7~BAOdI=LA1e(V3PrHmafNS z5Bk046vGD|5n5l@+g%PP3}W>PdOO9kZSrPy2lR@uF!MTzIFayVpo23$;e#Rtqq5PC zAJMUoFupYMrb`p$PR49N?`hit*yr@P^#fan%zoGHhddAPuRHk;P7ZZtVc5Jg`t6Ri z(6jEoRQO8sS1MnD#qm!AzB^0@lSgR`4@xLskZBOHWD2c=0Q#gsE`!*GULKrwhiaQ* zsHZ$b4Cu=Y#QW}4^}UgDb6qyov2?!*tFq?R$WcmUp$|{(BAJl7v`hv&*JQcy!OOL> z!9@Kn=Wrw> zp_9-A${eMSn}-mEiRlS?W?Ygp6%Qm~)IyJ3Z_o4X@S)@r@NZ)tJ+%qQ<6RXxY$d9Bq2Knin6=$qchLPlvrj1 zGxm6tw2edTPdYks!hBX8`?&^uJyr+TJciUwjL9o^9)8gr3a*IP1si*DrRr$KDDmp^ zw$+4as%+eIWh@dbHXQP7)KfvDPh8rgdG;-(lD&&X=HI-k+xC5Yl_WUL6eO$6@rDgk z^gDVGd+#;f?Xv}@Q65L%*3r>fJ)Rf0{Enn=j$Hbt*PPp1=bf{Y>$Gua{&IJCzonwj=;+MN6Av*E+?IJf>BVJXzJy&< zo0$IClHIb{9xc*-%=IE08M2iKp4e1Hv!+^4v%IMGt>bj{_;wq-*L-Z=J;O zNh#|d>&jx7NEz+XH)6%Z3^#J0uv#(>_F~?kGsi>=>Z>sWm z*&C)O$wR!oU~puu(Mn_-;kh#+{ixG1*qb>tWavsW!w$(wJVt|lQwiN?9Fe|gnVM9( z3X8rqYm6xsOH375_1K+m*>RP_zrL>j&}{G+Lp94GZZi8o$YuFtp?h?X_rYr8a==rP zMxdhf!My6XW4)7+VCz!><};CR-QktKo<|X9TX=Rh!dwZFZ;fW*#9m)|Pf`PI06$jW zxE9qUiE^lTo$A%j6k9>nN%tgU1I z-SHx3fyhxNWBG92(AS&09`gkuVLK$#!%>(kCIbiEqjA$`3z8e{vz|iuwH4J0#ctW) z@&20+khX@$W?hvbTJvOsbt=8P>|3^T z^{jffhP>~vLs}`Ux{r0bzPO!}P>d@THPQ>o>7!j<9z#)0%#V(o+`VgSv!=MwF#4eT z<~we|hGTRP_-=%HvJ1c6lcOdzkL?2TB}&GF+{~VGp4mraQMmEZC)?ze3;nh?GeOL^ zW2s5-P(}&-z$k0OHd4KwrnG!MaalZ?N>nWg?wxdSwG;&o>r;g93 z7asch-A#ZTJ|$}=HT9;i9p!d68wz*YbU(E{um#p#?gd~i=5?~eJjw()~3LwB9cpg8uV#UnmXE-s7Ikxd0X7Jo#liMm=K zS+yaEntWK~($T&=#@DRf$PXNCbiXkIrQm^}S~ zK%Da~={HMID_~Tbc3b+inc(z6idPna*fTBzbGSRBua8#VTqqQ$c-mo09{+35?yv9;)sVqiqSsTZR%pkLA+gHlg=RtK9+q3|OVB5V+QR5&8l zp9D;>c>H>6%}MHflig!PLNxX|IIVm7QCPKjzw7U=V)mlx6@c@d|D11L@3y~?hEW{K z__jk_L#98mN09`jqE%1Lv_|RftvN7~d)3shOdR$Chr|SvOpn6aHP9bC`0YWcHzFs?DN%hS{A0$yIGu_J80=daBS$p$f}9sHP*DRdu2MB}E8PSY$+ zW=mJ`!{3vI7okV?sGV(%| zJR_a8LaCZy?FK~L9sK+#M?$i!T2V@QJ$DgpBYWO<*pHO$IN^m2>r_;| z=-o(TR;Z+%GG>A_<%rDZ#|%WW?-fs>y^m|JB+!}5n`11hSnftZ?6gj1G|nAO!;Cuy z3JfwY2+*}{%ec^Wl6^ri-&LAkgl1>X_ehHZ7<4K@z7K1^V%Svb0?`L6 zO>~5ipHe3Os9LB6+#?{&^)O(SldaoU|qJqW-PM-D5uU z8F=UfA?`cSoUqEN4akco*s(ybi^vw_uTW}FC?x0CeQ0-a1C0YfS&}jhwqo@!`po2W z(;2%CYvYkRh_u>e{RaaFiv_AAASj|h$Z}1X*Fbrraye8<@FrNd=)mLTFoIbp*^*bJ zfyN=Jsq4{MR{aA&e%zx(-Vk|5V5HnEAd;~lOi6?lDWIX{S%=JFoDwbgasQFuqUxOp zaK}I~oU)>^M~~K3pYr|)#HBZ&Jg=6dp}70ChmMpDbHR-7i*6elD2e)vx0}Pj1_qs? zr3uS8P=Lcbwg(ivE_#@KOrSqmx`W^l0c78X=&goBUmSK@#e2-?vdH4ao#I zd~Z4QGJo(fh;mg)pC!xIohrd9B}tcxCOJuhmUs3VpToY+ARjB$0(Wjb=f*&-EmLMu zgo_UD=AO#TeO$&5rK6vFQv7*X241W4Z zRdQQZM5MjYaA*!_h}4DdIN+hyTa=67c%CzZ!LBCA)Kp>$bJ6FDrv7q^x)|`7%O{VO z7$=x9_*7=7mu!N}q)F1VL)0dY*4GX`wJljzgj7zb%z2MZ^lVd~nFa*N`KLdfSU^|W zWKv6b+f<(Hr9*h%V;{@OY`>AJQ|a~7Gea4LQ|~8`)n+cp?Oe^3--S@9>Ym5QhhjQr z`i)9S{B%iHUf?H7Q~MF%Aw<#QU;vvMEm>>=o@l3T=+iskqq4j@c@=PQ;)PU}tai{IJ7zmHZ*lCV%5T>RZ?v<$}X~+y)}DnYc5i2R14tgLCVp z?o2vMsv)meO7jA}@;`#&E{Pp|Nvfhsu_LYw?2FmKJwlCZHnb?fvZE z1e=j@O|%L7VBMv1!6}ux{mrt{CVgHW3t8x=kd!?vq?@@}QjdDyf6>ifGx_v%Nx!oa_n^W{UGe7zUOuX4oEG9%$Wq%NET$fTf@A)r@ zYmM-d#sY@DW&~V@FJ%2RfL`M8%Ssj75(K>e3Wo*M7W-^6hdP^1#HNan#J;iJr^rjd z;NRE*gDMhR2L&rK8xh8>M~?g6r#fIc{IWYRpK>*(OQ zLaBBa<-W$oy&Ka+F5oZI?m})~v!?65mlC?y3fx{jZ#^d+0a_85zCEBe=^S5jo`zp# z@RW~9HkpW3U)JYIR`;0wq&F8eA@Um?5WNaqZ+)i+dWP0_9De^9LZLwbyYl`&QgeZ6`_kw2cgD*9)1K1*-@x}jWxf4x zP1FBZ41ABA@lBf<_b;l4<|EfzZh|SUkpv%CA#2;oJ9wf{so(kV7YXUPUU>lE>}PQIKAHdoFrdt338Zk|burApguRmADFkCuzU?KlMi(Cr(YdZ??HjsO6& zl452I%7{Xvg;A}zisB-|t>ue9idVj>n=*o zLbNex$^$@fZNJCfx+^~Ea-m3Ei{RuN_sln@*oWv!3YG1&1gD}tpUWubCav5&3ql~z z;?{Sg?vz`%#bkzr;>F--!aa!ibD+JZfCI8?l6r5ZAY{ZJqX~rL+v-J=eD=1PWMtC6 z(CU>x%T}QiLA(inb#s6PSGj4Yt2$-Xq_HWI0)1rHg%JBO(a|2>fR2{!8K;u=@%UiU zUoC#*g)WCNh~zc5y#3yCbAG-{e>l`tc;!-qtMW~79db#Eiu(O9Igue($W_Lh_wDIr zy!4%8J$LGCq7=^UaIQ~khgl+a=wda&^TEYsR6b1_!8?vOcjT5k$K^h8Bl2Ei+M<^&K94|M8;p z;(3BaZvz4{PD2ma&^}f+E%nfjoQEzH-M49e&2Z#|84PRR33_*W>)?@6RmX<_F5UbfSgnM)%D`=jjM7t$IfHy56RWy#VDjpZGcz?t_k+1q*sVZBdBTm`{FdEIqot> zJB=TMWrSJn5#kcrvljajOLl$hUJOXTk6-eoYULu`^jY(*Ic_tE^GSvs#UxLdb~&;70L6m_WwL3#yHZ%a($^Lw$T zYf~4ao7|#6C3A&{*7x|qr5T3xPhLInbob1Askrr8m5(nz_1vv}wM>*GbGuGA`Ns{K z4Br)#b!Vfl$IBa=i#-AhlV)}QRR|2S zL^Kq>ZjdzPb-`f!>N*~Egg?`~e-jKjy*3#H?!BtRLH)r4AKCvt?={)vuCbf94z!fc?4zMl2QV`pzBl{cooXlSe=(Z0G0d(+I!%*e1LXy7`SA!e;b&xKK3 zEUg&b^C{M6`G^3WztHl!*DDpJ`CWolTgkja7cko$s23pKg>l3S7M%bQ7sACU!>?V5 z?7UvDt@+6EwxV2zn8WQ|AH^pi^CwnaNa&O@2yYXVSSf2#f z09ACKMELn&JNqx`?<5QHUJZlU+4ThP%wk8KEmxn`N7juOafi!R%ars! z{@Is+3=iRgdv~i!!Rt!8a`yW}Ti$Pj=4#@5-LGWU8A!WayAsoK%=%IkpXT@Cvei@X zumcy4(p6bCrLpT@bw_J=O#4PQr(ucHrB^Db@DJc&+OBwdRaUILqIeP-*gXOM^( zTrJdcEv9&WT}$Hlu6Q|+WNzsqBDNZdmaHbgM#9b6XtnP%_r0}##^BlwBfh4AmZ&Gd zO0$%LHvqr6m+!THf}gLx;Q#pQ+-f)W@ZX43N^TUN1Zzu}Fj_K+Lme@Sm%Y9)WH*X) zS^2f!0p&MNm^or}6^&OrcoI-XOM-Hl;)8=*wlrIBwegfMR{?)@ic*TyXl-ttXPld+ zrAi<7YErj$=N7R;^bxvRbmOkoGb@F+^;;^li(k3@j*v>D@C`KwY=oEzS534U7u3Z(1h|Ju?Iw3 zTwZAwH|HnN%v%F|qT%9GbtA%e&Xonh)QS-r$|P1@vQVm*(K6-SVJh-=jHf^Xk?LUs zSO9Bms1)J0C$(l}Y@_Uj7`WA^pUPWh6xAMw!tUC>5n8pfRy+Rw3?K&N5J)bNDYJt) zLZ#zn8sw$gvABPrW8xR=KShEdL!7U?3FR_6;?k;Ccc6#^nMRy*?97p0dMf6n{2NgMNtahx{Ma*dM(M`S>|ttOz#r2 z<(-u;hqq!YSSIKxcY*;YWp@;5>@(f_?BL`O!C<7j#-;Lx$NGUGVz%xNL=WQzNw8H` z*LwOSmI@JECG}Pd#%LfONU_;&Qz!QyY8I3Q8HkNT`HxP7=Eap@~}J%CZD2fW*%nVg<#mm1*F zGqE>}?e~l-C!Sqv82l?h3`>DF?jwtxHM!qMs}jKh{lRN6%ScTxEq4(J^`y=BxPKAp zh#~0kGulrFmTr9Ehfl>UfsYNnb(pIHd@qS=?2FcfQ{M{hZ0(+2AijT*{j1?cMJtdP z`1F$kP~d9A=3gQK(komlD7&IBb*bBZX?uDB{W6eMw{%rS27EN~(!D#L>vQkg0F#xW zq9?)6`URqs5&knQgT}uF*pu6VZnn?(@tspuGRV+g_cel zOiRHFwxa8FXY0i&YY%qEe>y10emW>bn#acj)FD1cFo?_L>(YIbAWlj0v>W2>V zSC+Xre|WdfE8`hokf9;~teG~0)lXUbstDTtIqfur|Cy})2VV$CS!!~xW!pEZi`$42 z&1h|s3z!5Xx_*{)F_H+Q`ka_*y}hB+_gQ2(=QtVUvEMVXm%bdZ5;v3c)Vsi6pfQk` zfzIsahJTaqpyONzuOoiKm-h5D;&MK<%g!ZO{jSmZ-+E^NK1(e(Dlf>-K=fpvL-}A8 zlC*LHJ+@75xVC^={-D%ah*w2MGGGX(<@m6@@@o_sh_E7Sj>H|(7mES2C^EezM3%#b zw@LnUsbv}b`_=06srmZLlmy`8aC z(Y`rk*3sQx7W2LZb&wLJeSDAMN9Mkf{!v?aK3#>s2I_(+qIS3{k34NRtCp~uc}4uZ zfJ#lUgvdDl+@TTxR7L@ZidQ(w=*+TtwX+Fm0x_F&kK{eTe_Aa&KZufF2SMf(xBf~G zRZ7I@5`voSMO|MAOR|V)IQ{7=;rIo(y8)IX8+|_ad>d9J2Ag5U-GJ`gg{|%Cp3k$& zukR#4EV-PeyGw7#efrzltn7dRyrrERKeh_EjSE&1{`{y)k9PBLR%Z^q*-skN(jPO% z&5?k8x-j1yaApGb9_iNcp%!0O)YjY7t0m$6%T{oL$*p##=MN{6hyqX@#=hrA)^YpS zk-b3)jPx>1Ioz4o$cZM6=~+z|#3)QOntf;=Z$YBY-<5z?4@gVMuj{v+|60fOJ`*GHnh|=5+=+@agj z-whx2!W2TZT6jJouYOI4x?`OG(w7aUDDpxewq8~AX#%K3 z)EPgQR{BrJ8i+~^GQ-g68J*2x>Uk$uIG${e{mayeXMqb54Li0~Vw0v?aGwK~f0_O` zh3`#GF98wL#f{%kDJYTe^~E;Zb)T&=E{_u+yU(Yr<&Q6-V_e!HH15D-ThhJ_HG0;q z37=Py%IpX4|Dv7!#Vr&^qbGGaT`CuC2aj4j`#6qIwES0RONPV5p7k<%82#)~=={19 zh@;zeK;3pHvwhU|yHb_>?<>*Um))Dps`sq(BF_%$U(>!MtLFuHhWXc5-vE~TKe`&y z9eP_&Kflq)Iklyb9{DznJ<|u-b{3p!?hg41+~eNQ zFjno9;r&$<{aScVo%_MAiR)s}g4Z23$tdze_>s;(s*uVClY3dXcJ)l$Ac24Wta9?P z$;5)gViYDgjEpQNdn}`P^n6a3f#T_+yws}oK9J#Vf0*~ECzx$5#|nUXZ<+9C;0H`J znb+=&I-OtW&3|0zSZ-47;mzzx*?rxvs|e38*KHV_@DqKRQZ2o&e8Y0oUN1%K#!D_QWTBe>i{3u~)YI%i{j?5DUc7=j1f+ ztYysoc$E8GH{fx{fBzNl1fa!$TJC=dQUJ)>%)q^zT;!9?$n`DY^Z@-gEaU%?S^Xce z$iMLOe-@qtuiOt(3IqpSe)vl{?FvGH#_k*|7ZX1Gq8O4XXigq^Zpa}hA#lJ zvt$2rtybMp2gp=Dk6t*hp#O@Rz5?ddxO#BjK{)vLSPK6)cMv3-{&y{C0C)d?kvcrV zAnzFWFUh~awfAoUBack~jx7O9@Ba%)f}ld++tDCc(*h`+|Lp7sXd?i60(hK9ou6_9 z01ZV5NKXd{k}M2=5+oykwF=HDC37-ke?)TwWV=66g{q(2$Cu;k+sQbQAciK*if?x9 zgIY984j2r){}B^wD&`THJdN52fTkpl1kJhH`j~Gww$te?@l0Y-8%P;AeBfXxgb(qN zY`LjCYt%R!(s9sT$7`sZ>!+N;0c>T5nUvM5u&Eqs#ZwM-7SA?j^$n^|TTkD(_*sw= zVNzx)Pj@QisEGGQD2j`x(zFZ`e9F{4^XpD_?%V;#plJcJHd8;TTW=N{eywPRvSK?W za7x?-Wr??+v_$u!4v+_2oN*?xy9-;T27J>_z8hYUi-=uz@F=E&HFmKcF!0sNQ&`~g zr;|MIN><#38T4Y@I?86*l@j$6%F4K59eG7NX6>76Z-fk%*1F4zD75O`<_X7Y&&FP( z?4503EkufHxJje9-A-K@4u>?aMJ+W^+tS?wE*CO8eV4=RWQKlQw{yaAuWfzo^CZ<) zZ@4?QtZa>iMUN}OvTwb+KL?-LZ<)0cA}O?liw|ard&w3LMzVMNRI%Ic4y;YJTQ(#` z!3}{0qC|dm!{hh2B^b`v zX0l?QbJddYep>)^pMjWmTHik;4nhgxU-C-CG<-Fsd@v+>=W8HJ%iR*q*F`M*UZm>j zL!5utnq0i870{fl-McUUTJnADDwd%O!^Jf%4oC|!wTKvkriR*Lf=MOcQ)t|q6Z|+F zy9Q6nCE9!+M8-S0Axu0$9+CA)=d?cw z^xEo%( zXRt{3VoTv()(4S%tDz`)7oj+`azt8{lyh-?k7I{99g%Ym+Uk~Nu!85vjED>@lhukYC{ z?4T!Y05#@;81x#b^;Pl!zrsly*aI(kN>7H@Po!WW@t)oBqK+5_wUk=@4H@vpOrz!I zJ%o6I5YdG8Y3tYTBnR8CNubq2D~AQi-uKvw-=(U4Nv)}hFA|osm5Yt>NHIy+Rcdsd zU(Hh;FIOE;d~y~h_P*l41L|c_DMhC;Gc%DK3$x+UHZ-o(_T{W`dGxhVa%Gyog7ot^ zRg?XP-es+8!+}3fcmO;d0#-MYRh?X3&EXSHE3RgR>{ey^79?|@#maK~s!uG;E~@hW zP8H`{Go~_0W21^}TwtIQ>mE`qcB{{`zJdNlFGomEdv~YEe6Qd=j~U>VN)WMi(0Qpr z+50-HI=1Y$jf9+zLFrPNz2=_HLL6I6a4Z<@zaGswc&r!fyF4&i@|nBgFv=ac=G8$p zn9@C>?mo`BHKIT;?sp)pf*wr85S6P`KvSQTR`Y>9#B!jEKc$gv8KQvIL_aN9`{n1(KgA0Ytg>-nwiuEW=w zANbZ0^EvrJ)MX?tZcHift+?NyLIh`Fb_XTYqMae`773>QB9GO5KkKrKuSHfqJd4VI zdNIGTQ4kQs!A=tXy2>jsqYoQbu2sBUByHTq04bq_U?5mRB(mWoDy*91m;sJAW8t@yO246=OOjXT!G=Ds75MY57mhx*?IpP(< zl9yu9`EOD7*T0ARC(n}Zx&-RyAV?GTP7ox|mnMCt{5>!(n`;Ny!;wXU_;~wi_u{WR zM-;mH=y(w0tlOd0!{yY%XoJ~_vO!alfk&Jh6mAWEa z7SA&=DzO+MK*XrJlKyoV>Q#7LCv33Vim5p&TQ~-cl>AwqWkY)}2WYRL@PjX|G^j@o zgia*1=na2(zpVrUqObC=Tbyfh|JpH*N9`F{wHM$9r%$Zvsvp&EittFn+FsM^FG;%k z#(8&yR@awu9!(SI6@*(VJ0Qp7SpXFL@SnFsfKv@57XX~dP77S3~d6EM4UD+b>gs>)C8n)u^xUE1mr6s9nQ27@~=r&7NX*HLAK zq8>diD94v94in+=xHyH(SgXJ$S2o<2tg@&O3uQIfLE!(@+j&Mcxh!m3KtSm#y{bqD zQKVN9r7DO>6)Bq%iu7Kk!$v6zB0>ltMTJm9l`4oJC80woQbR|2C-6>id(Qqo_Il4+ z=f}$r)*{S$@?>T*<$mtDufZ}cfWOOqUFeL%=i&nR6=<9iU`cQ2w$*c&$W7+I8w9QN z+sw;U#J?|fPEZ8_h5L~SB56X1o!Ms+MFkb<3sFIKU#(gfCb1@1U!Y6=wol?oi)<351My1B%K&rqcgo@*xn_PNmoXmw|((NAUkTS>Ng$caaDizqD7+ zPtk&1f+1!;dv0K}M|2iyOrn|p{K05Oj1uDpG7Lceo{S@CFIanw!Lw;}F<6 z(SpA|96ki{wx6-K`}@pNHM`r=T0ahC-M98jZZjHRvJHoXDnxEjf;M&b}zqGwTM3_V)8H&}pTALA;)!`H@3 zwF^UG3+(pB_)({8z8Q`ZJKTLg(M(5Hmvif|wEspna&`Dpm{KHJorJmP$DvgdgsEOt zT!6>@A=Xn3yZwEM9l1_qyZ}D4XYH4`Coj8f90&J**+vWKrNy{#fI!A>TaK1-jVTw$o~-60nnvw8P?>EfxLU6r#)1X(5Sm2k-3WPn4noX{U+T$^mPZdp_y{k7Q3St8d3R-{*I&Te=?&a zfu4;e?c%a8Jk=+J4dO(X*~+iD87|~IExN}%(K4yR-kcww;%hzdv%;>#%~uWn9%9IT z_4P)5E&?JT;%vOhenRjR`S0hBL4f25Y}VkL`L`fP&Lw3gyQK?Tn8+5UkCOY2oB*|S z;t%{Q<@VT<_Ch_+%y)dGQ0OJhXdsTsVf*6W=3iX4Esj|WOs4s5!#s*=;>!o>d+U)tpRA6?owi*8vcOVj5Fs1u05pr%_gw*K-?uRu*Z z+^g6rh+n+z5;NH9XBW~!KRx^y*hGbLp5!bWQRQvu0K5Ro z%&O1*X@L`$DMBc2U|7Dlo)!P!+V5XUo|X~BIDzhOK5GE7sQUbW3mEywn9&)O_a&K= zNgRZ^0xU_qE12p21UR32dwTZ7Yj8aPKG6i3!zX;(WTs!Ue||~)$B^nToo7__y#DHk zVA#%}gcM`6#b9nn{)WD!guOZeuMt2{v00&8R=}Gj5iiPWTcHW>e^_4yyc$3H*nB)P z&xn&c%qfBA`Eq8T3fS==TOzPpKjCq>Lrk4}3@fzn=U^J-H^IT@H_`$2@C(7qn4g?YVteVM520yfeUgv7$yi|M83Q%ZsO z25v#D`Nf_b1qbHOUoeMW3rr|m<7qIIzgjA?~katizbrupn6p>yRjpJER*a3=! zjf-I?Uo>zyD2eoH8iRZGiz*`4!0DW-)=SMIz~(WqdB<7+czA5QTzxAYfNLS9_D3`e zv~M_K0pnS(U-R->bVd~uG?cUi*h~LYa`qVr%R-+KGp(?6?fW(ndCj30Bvz4#sQIZN zSeqRqx01_G>f`!E8^MK;r#=RFG=NS}dR4^rFv8UTD9~S?{TtWg(jNIO>F}<+N!=cr9#G`kfu0$M>k@rQNdX=bv~@;sOTtm0d`9-H zVVrwkpUHu#ca+KTp5%&v>-Zu2Z&m^MJoB zr_SniTX^WwBE4a|t;NkR?D*Wp^f;5L_KQmFFY7MUuWKq?EpQ{gcmIdlp)KLWrA*~( zCvK-bvs(&{THRclrr+1{IGlQvx>p`s;$!g&sc#SqmNaP@vX?uYcO0_4b%#qeo$B7) zh03TD=eM?Ihx7ab$|5@gR?gljhkG@P98Owl20vkIglnkg+Z3yKbcdfUj+B33 z`E4zp%%!u-korh@yd{306-kl&$B(Bz7Kh5mrV|+F>Sxy-j;eWX4GMA_v=$|GuuwsV zr{;$a@4E!2l-|t1$6C^=%&Lufmc2#nEW{}hUcAXsTR!kXot!MTEm>kwjJG!EsK6YbJW6-LV zsrQIP+7@G5o|I`iBey%l##0=7yaYHZJJ#uAD&2`Ukt?s_Kf^o`#61HpFoa=}3MP2c z*4$TZjyd7s@Fi3Nx-z%VM^=3Dncbs+2fb#OS`w$wh7!cxOb9Ux^-WR|Oki+)>TpR&8RK)kXWH0Xupchw^@)p66Y(AUmOL zdCMuHv%#cmaNp|^+hG9rDPbcf_&Cd*TmF34X;F~&itl>5d_WrSrViUPpav&YMOSs`W4Tu)a^?+h(RdmJ%UgDkRkw~sC^|B+R#^7=|)Z0 zsqw^5otK0A38|LLqCxxhw;RbWm_tk52i+9`6FmZN2VEP*g0GGot-(2f7MIFmDa&Av z+@6NCO|osXrSNAp@mJ!j$-cFmU4k>x=c>}ZHtWeca9h@XJ!^GA7mCQB}5mXK`UUAIqD_4<8q+YhGA8|0sDCg%zczJ{zXKArhQ_yD8AP%0eo zEwQNHbp+G3wU|A(EAj|bl=ff|?L6?4zd!MAtZ_Wl-9AJ94SZ6^A=^_px`>@z(7~ zd~EHfupt!-ZAO&P(q$QAc4*!W^u-%SNqTD@tBEL6&)1coev=GtI zunxg`0@rCjQ;u2c0{1u(q$=6lXpR9;R0MXH`5kVP^656UIB1foqcm2$j3JO3OceCe zX&S27tDrBr8TSPd=Q0qsY!t z^u7m+WWLjjJ=RORG4;!foTB|3d1~ta$f)=RZm2KH34#?vErmA?2gkUJeZ?hYyzJ8~=&+epI<#g#GR9WB zdS2%mEWy7HN^zxAK3{g#Ua&K>-}JPeXs%B?|1Js~yH?TYoZ{qAVTi#W;-#Vzvte2J zqt$_4H$!$KVKnBMO;+uTeXUXpdxzdgmq34~-uL8?Wsf)g*kTE0FVr~PlAi==W69ll zp`6C?D;lhL{85-~zlKr|bRcWw7Ux;-fqNwgq-m;Wzi8BD?e*!sjMJl}h z3#dYIzEbA+UbzE(mAoySbKQNN$bAwG4qRb%s^9c)l8`AcFrkJPb9}|)+UH;VU~}w0 zNGRC^eX;#v8oNE;xMxj%5RZJqX0Dxoe{qA@a(S+3m{6uO{*IB-Q~OsT(g%yo?gLpb zGYtbV-9LbpJyU!u$!v7A)NrUY<-i2HfoPn*AG)0EJk-XmC2e5TnJb1Y z9nh8xNXqQ;m;WO1HjBwA;qaM{<~fer`(Fm^UUi-M%TjLj7>^4~&WzJ^g59n`q(?)ya9K(+=GM=AdUCgpN|eZaBv zQ$+g@Q#=_BP&AXWA(^ z0oa7HkX@ztax!LEY2lTN^9?gHQ3v1ykG!~UeHYuAV9{ftG~E-+{3tjzxnRldbQ$~w zD#uYLgCN)*pqkQ{z-30sI4I5nUwssA=j&?HDF6sgt{Gs6OHTh92<-N0nxIe=1=(jp z0Cutm^RU~kcyTIFNEl3>xm|(sHu7#|c;1S5`! Date: Sat, 15 Feb 2020 13:36:40 +0300 Subject: [PATCH 02/15] README and pictures update --- README.md | 82 ++++++++++++++++++++-------- doc/resources/class-diag-common.png | Bin 22656 -> 6104 bytes doc/resources/gdml-demo.png | Bin 99649 -> 99582 bytes doc/resources/muon-monitor.png | Bin 67196 -> 67190 bytes doc/resources/spatial-showcase.png | Bin 48410 -> 48490 bytes 5 files changed, 59 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index afd32d1a..c5e4e86b 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,34 @@ # DataForge Visualisation Platform -This repository contains [DataForge](http://npm.mipt.ru/dataforge/) -(also [here](https://github.com/mipt-npm/dataforge-core)) components useful for visualization in -various scientific applications. The main application for now is 3D visualization for particle -physics experiments. Other applications including 2D plots are planned for future. +## Table of contents -The project is developed as a Kotlin multiplatform application, currently -targeting browser JavaScript and JVM. +* [Introduction](#introduction) +* [Features](#features) +* [Modules contained in this repository](#modules-contained-in-this-repository) + * [dataforge-vis-common](#dataforge-vis-common) + * [dataforge-vis-spatial](#dataforge-vis-spatial) + * [dataforge-vis-spatial-gdml](#dataforge-vis-spatial-gdml) + * [dataforge-vis-jsroot](#dataforge-vis-jsroot) +* [Demonstrations](#demo) + * [Spatial Showcase](#spatial-showcase) + * [Muon Monitor](#muon-monitor) + * [GDML](#gdml) -Main features: +## Introduction + +This repository contains a [DataForge](#about-dataforge)\-based framework +used for visualization in various scientific applications. + +The main framework's use case for now is 3D visualization for particle physics experiments. +Other applications including 2D plots are planned for the future. + +The project is being developed as a Kotlin multiplatform application, currently targeting browser +JavaScript and JVM. + +## Features + +The main framework's features for now include: - 3D visualization of complex experimental set-ups - Event display such as particle tracks, etc. - Scales up to few hundred thousands of elements @@ -18,14 +37,24 @@ Main features: - Object tree with property editor - Settings export and import - Multiple platform support - -## Modules contained in this repository: +## About DataForge +DataForge is a software framework for automated scientific data processing. DataForge Visualization +Platform uses some of the concepts and modules of DataForge, including: `Meta`, `Configuration`, `Context`, +`Provider`, and some others. + +To learn more about DataForge, please consult the following URLs: + * [Kotlin multiplatform implementation of DataForge](https://github.com/mipt-npm/dataforge-core) + * [DataForge documentation](http://npm.mipt.ru/dataforge/) + * [Original implementation of DataForge](https://bitbucket.org/Altavir/dataforge/src/default/) + +## Modules contained in this repository ### dataforge-vis-common -Common visualisation objects such as VisualObject and VisualGroup. +Contains a general hierarchy of classes and interfaces useful for visualization. +This module is not 3D-specific. Class diagram: @@ -33,7 +62,6 @@ Class diagram: This module also includes configuration editors for JS (in jsMain) and JVM (in jvmMain). -Note: this module is not 3D-specific. ### dataforge-vis-spatial @@ -55,22 +83,23 @@ Some JSROOT bindings. Note: Currently, this part is experimental and put here for completeness. This module may not build. -### demo +## Demonstrations -Several demonstrations of using the dataforge-vis framework: +The `demo` module contains several demonstrations of using the `dataforge-vis` framework: -##### spatial-showcase +### spatial-showcase -Contains a simple demonstration (grid with a few shapes that you can rotate, move camera, etc.). +Contains a simple demonstration with a grid including a few shapes that you can rotate, move camera, and so on. +Some shapes will also periodically change their color and visibility. -To see the demo: run `demo/spatial-showcase/distribution/installJsDist` Gradle task, then open +To see the demo: run `demo/spatial-showcase/Tasks/distribution/installJsDist` Gradle task, then open `build/distribuions/spatial-showcase-js-0.1.0-dev/index.html` file in your browser. -Other demos can be built similarly. +Example view: ![](doc/resources/spatial-showcase.png) -##### muon-monitor +### muon-monitor A full-stack application example, showing the [Muon Monitor](http://npm.mipt.ru/projects/physics.html#mounMonitor) experiment set-up. @@ -80,12 +109,19 @@ Includes server back-end generating events, as well as visualization front-end. To run full-stack app (both server and browser front-end), run `demo/muon-monitor/application/run` task. +Example view: + ![](doc/resources/muon-monitor.png) -##### gdml +### gdml -Visualization example for geometry defined as GDML file. Once you open Web application, -drag-and-drop GDML file to the window to see visualization. For example file, use -`demo\gdml\src\jsMain\resources\cubes.gdml`. +Visualization example for geometry defined as GDML file. -![](doc/resources/gdml-demo.png) \ No newline at end of file +To build the app, run `demo/gdml/Tasks/distribution/installJsDist` task, then open +`build/distribuions/gdml-js-0.1.0-dev/index.html` file in your browser, and +drag-and-drop GDML file to the window to see visualization. For an example file, use +`demo/gdml/src/jsMain/resources/cubes.gdml`. + +Example view: + +![](doc/resources/gdml-demo.png) diff --git a/doc/resources/class-diag-common.png b/doc/resources/class-diag-common.png index b7c6f56881e1d38a614dd683ce9651b9bd85fa13..4943c3f4649c6c9b17206d3f56346dec3c8273b1 100644 GIT binary patch literal 6104 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 Y7n$0?5~U&W_YX@AbzQYe73-J(1BdeOwg3PC literal 22656 zcmeFYRa9I-)3A$Mkl-GII|R4j?(P=cT?Tj8;O_3OgA?3?1$T$RA^4fR-^KT?f1Pvx zU!1j=#q8R%yQ_OwcU4zE9jT-siGoCc1OWkoA}uAR0s#Se2mYWSK!GLhv=GSPe~>OJ zk|Geb(?loW3m6Mwd0_~MhWJmfMzG*(L`NxY7YGQ{!G9mf5r=Y9un^x>T+3C}!Q2&K z)SlEF5@ko?wXlmTm?g0F~y)&kC1_Droj|5EsuwlWm7vrqU4k;&;ShSe-IvtI+P!Pt8Wt~-ow`2$p zJsi;k!J7sjm5?**R|3%lK| zDq9-5Fk*biX4ywvXZN?RQqN#qKp|RHH*N5I{uPm;v7OM9poS+PI+O@5mjmjZDAZZsXSsTK>4$*BFAFHeN@6yBs9` z>D;VU`|P(p?+0J&iNqo&nXU8Ne?;8@pNyC*MxujY+nB{`tnx2WV(AaFZOUlriTFJ7 zB>r-&%W9}ZB6@5e5A&IBF6f127`u!1?N_&$xk&0(18&6<52dlPN2c7)16HWouz~SR zN9L}cdetK{tOTmp!sHj?jLjof9++V7UdW_02ShSM?gqcZ_Tb7#-8j^eYLcmsS=WZb(CkEZwLLOuN! z(wl%d$T_`dQbg#Bdl_ETIA_jNFpmCb6-e0Inh@J@hQK9V6;QK4L1AKvcVG-o%#r^)^%Zgos6CgqFL~e$L21Y{c_#hO{z2Z*Us+vE9Sc+xBQL9 z*jfU*bmnx6siIn?_e=q;Mm&Apb}=qf2ApspWAqx4Og$=jVQHq)P0XQ9%;8N;%*!Pg zhQt(%29vv(lLH4CaclBNp}ddr9#lzx2`bQc$w z_)TapG`v|Lpe=q=SF@W#=M%_t`OxjOF;gAoQFp}RzC#Lmc)LegRVL&7o73pR{B`DR zEWtIecs*rGBVw z+-(_u8#@Ak(q*KNNp&!)>ic6?(Whs{$m!)@>x=I_5pK5YAuS2(Vc!8;CZel#-3Dh> zh`~F?oQ|bK7vsEHC=dW&dCBrJPq1s?imx5kw~0kjhvf^stO6EzCDeO|@6o|LcAN+@ zm~Jv7tUop#_2Di9--Ha@^9&8O;I4JB{G9e;5cl97Jp2<46F?n<&pWko&Ba6KxxE8q zB@lC|yCxh1>mZeq?9bljJAVW&KCh?TIJO-?uTAkOky)fs8LV^GjYuA%47@Q3-c7!` zN4Jv9?6@RTexW`>%WT;SrC#P?B#-KLGks4KRTwHHKr^-Ce*_}Y-CsrIsvgZb+k{Me zN#arjS1)s!6_=u;l8N#cmpFVslp>2~qr7kM$-_Z+C+LV3KTm0X5HP zOfx9p_+u*FHXRO$ZWY>6#_()Zd!!KBpEpvTX7oqCN9#Oy)aPz2&{5}LU-tO?SO#or z`-!NvRHXa6EM65r3xJku^he^}1W&j;uCfF4IGLY z*Yd-oeR26SqWksW>h>*%GZyb#{l~UqXBOWUO{I{Nzeeh1r@))H(Gt=Y`s2l!AYXSRnc@@%bbK*H$*7H4KkXhX7$>}s^)ujQ0-)Tq7UN|y- z$W6EoiJ&1IVWpiD3%&!`V-53hPFZMoqp=huop<)*-$~K2McwS*=)klUXRqI<-_TaEnA~wc?br@SL%t)0&En<>SOA%QrPrno268(R-AIr-o@ewNhx& z*|1eg#q>K)NvU$IPZ}#NlJ_yfcnwSW)rwkWQfO1^D{}{p=@&+b4ytuEh!6RUs9hGM zNf#FaICM5}TdONE>~wWxDO%|3+;{q29C~<=IX=q3e(ocA6o$F{@gAD?yWt&85~o1$ zc5N4tw@q?DaLqXv zOKR58!0ydITTx_BY$cDsiLfM{Z|biCdjRnLkYQoL6dVM|r%u8kb?v0|9tWx?#EhpU zCL?h&)>}foS%^KeUv_(a}zna3Mf7fb%Qe%~8Q6(j*Es zDF^aQ8%)F0Vzpn;>x2~$eZ(I`p@|MP5Pfeol(wPR>=>X}F+9DcpWyD$Xy=w2F%1Bo z#F*`QLpgFyq9AT>{^dc`Jk6q%JTCpG zR5ajdHAsufg*FH%N9BF9&k}d{_qvE$QE5OG$G>7E{)>Q5zV&MTg@ETP-WkKRdvtWP zy!o_{q)yJi%DGIvzWt3CeE*BH+*{ZC#2c7*HT2Q*_i)X@Q9YpPr$~XLo146}^wS|> zaBFntMA8v03B6NWRrp*Goe-oR62!XG*pkMlvEDSr=xiK+uFaoNulLJ_R#sM;bq3-- z{;z)AOnGJ37FWw4{Z)8OEl~-NXO#fJ~A-1 z#Z3ABd@}di{&d;idkb0wm<%<*ov}rV(J?X}ICu2EKijyvy4u^<8f8jsKF>85U3T_H zKc6X|8>LGWU@Hk3f*W#QQXIK_`<%Dz%G15k;*J2Kk&jJ(evLnZJ8n{=yMK6iznu~E z_3_CS@O^%La`E^7xa|Gdgpe2fdo7%HroZrZ;aBv+)$3~#AW?w$UquEh_57??lIKnS ze2-uZMdsJ!{^I}fk{2F6l4j@^siQpjc7L`^Nl8fq6aNsB)nc{Z>JYnCdBObbNVW%q zB*$S>q{Ks$F9|kHFRc0GDl(Y}5)YsJP+}wvTT}bj=jFPrmKkwzahmB`dl3}C-Of>- zzeEE5{s5QFJZ)Z?>)mPjr^mo|XxJ@;%ogQxBCOdW@Op$l%BoTQ?fvMIJXrEH5!DxT zxWV`){4DtKI`6aL_jGfxAAag-DUNw1oukMgOsR#%@tZuxV?{9>T28j1bl_QJ>I4(hge zL^gqLhC=Ep0UKc(*6dw0xeqfnGYJm2t>v~-vOwp<+)rK6g*@sIc_Hd86mrO@LCfyH z=62{gH{TQ8O+98E-AI65fVV#%Cih1yq$Y_1vO%NXO{ZunXR`lRM#=0eUViU;7Msgm zHy!4^Qpo(^{+Bio-d zbJXi$)UK&)-Qqg#6jUE0Y>vZTXz|ZRa2EEfY-rnGo}ViX1%GV&JL(Mg1&O*mt3Yhm zGE=U}@H4^!xRF*g%<=A275|w%g=tm=-1eq<7y<8UCwNpY;|bn9(wIxkgxtZw&H^!X z_wS@+JweDkd)JEbbFwUM9FaKU{`V7_FG-I!Y>!lzzOSz=UI%aI=_{*pcM7?N?|+8` z<_)r%0y~5sa*(?RA>LLn?GC4Ivg+Rb4m6HSr?h2sbZ-19wb7bV6H=|%=17pA_AUiq z+x=Fvd01R#*XZZwo6e5Unlo^3nDWD;$U_r4;pX?*4^%0=RyDFBH-EftIBYGR;?jkF z;Sun7$$x0vkOs~b{-D7tXWa06dp=!O)h=u1IXgL{+>%MWq-6feFl+vt`ttttn5P+C zYweQyIStEKIV9JSlROJtKkRYE5C7U;PI#+ySLTY{DkQZUPRxqAPHh{(Fx1EET8u-GttBEB4$k|-ngg8S*N;M6VA1jt`SUSSke^saZ`ZSUR-{1D zGRD`xrv_mLs==E^Pis|M%^3*5bs7*7AA_By8|wkY8Tzw>r~Ed5f4{uQgGEvu5l33Fqnr8&Dj(@2ak%MaBRa zgYkY<_UPLNgdp5orq)w*4)wjcGykmn`+?HREUUXu8`-mVlkCsN^#%}NKLVF!>#+Da zd{EfGbg!l|V4y}La56k&)YGBmuq|c>0ubOmG1*nxx~jtRSh|Y1%oPr0nFKxbmQ`eq zS&IoyKR6K26K-$v4p(?q!?f?sVuM8^EOt8i2z}kKVqBS2kRa}`e`$*U2&L527QoKs z4-|@Ml0-g)Y`@Ig_eBI`D|xDas??bD_}xx%`M<&XXLq_Gr*77~zCT{>+}p{k|0~wv zG}|iUj1mKp7iERjPPB@#rq5zV!29psU}|e&N(&k|VbT^ydv>;m{-I&|+&v zucQ6)KlL|OR8;i7-pHQSV^=SsLiC!~c)|s4S05EDBR5l)u)Uj*-B! zy>w1SC7A6^s6s;dBnSYJDCGZ}(CBM>uV3uDr562P>JJT2>g5s=vbcZH#bxOQbHRpG zGxZ8xr$$`@BqZdP-;3Q@OK(kVnxACUSF-v8+qb0^85_|myq#v2YOc@gbHRI$pbc;1 zyN_hFWY|WiBCgx9x0lDc=w<@8zEvB)kGIEgG!g;7*FS%~HS0pn%*@cfe77taF1mhx zKC8=eT|F9##*P2NZ{59DvX!t)*U<(1{+}vdUTQ*((CR$M2f;oQx*>q_wkDRNA(f<)u-ZR5iYxX)Q;AI*3ec2!Lu& z0>rxRG67tBTkSQgxeX+!RL-6K76LTf^?JGr=jfonXEwR?&n8-eooNnHjWSYon!zbI zmCd_V*mh{JT!I}Q0#pjWl6s2Xw-JHk?ji?;Fu@*PIi*S6*ZtINXT#A(&^~b>mz$hS zi;(ZKF}gl+{NdVTSdtuZv$mSfQPJxa0#xb88K>zO_<^$wjRF~ZmN*Girix4$Kapoe zWbzA!`p+-WM-v;xPvi_ZBhw@g4=8V%WGHBjJ;{)Tb(Qkn`t-k2QfnBXG4i-ojVf?~ zb8r-DUIkmbgmjz4VM%CH{5i_Ja^_8&E$LJt3 z?LtHC3R$NE?3{faJ^XRTfkk1mp`#zJ&J4AU&xGq#UlMT+o;*6v1&Ij)?A^SYzHgoV ze(L@Mysh+FMcQUcV#C+tf=SRZ)%?Iy zGgUn5j52F}-ZvTftD>o25?!*mrz2Kc!z(kPb}z^k^4kx`s6tTGp(w7B(L($;J}y(@ z3vn@yhQ_S|twktz5-w=)_ncIzP+@Py!?1Q0ZhKKi+Q2O$t$Q^9LCM^7O#9cPms$0w z%Vv`sA$@fDo1NJ!zRm3h)|bOe&3a;s*kg8&ye7G@qfMocKJ}0U&x@4_Ek%TdKil4zGe z)lviD^TOn&HNb`ZTp&Z5kwt?SnrMh`88bO?=C}GmB|^=TFWvC=mU?#wU$^+#EEFEh z#MD0}0xkmXq1gLVtJ5zh$jZe&b$>f6LZs#=_#B(#KGC%maKgonep9;TolL12Uz2+= zZ8ghf2kSWV`S0=#jtwc?8)wR;Zr#x+Vm`8#2r8~+UqLckH!6nL>bw~p?SY895n>ko z0-wdoq|$i3=%S-$Dx13lwR>Cswr(<9b3vO9?+uO(NBYIgRe;5&?}3B!UvrZ zruQB!K_Y_D(t||guauc5vXnW7tUnfWF(6wXu#9!ImDQv}-=X<1dgAZD6Sv=*Fl#Yx zoH_BZF&9FV1mOjipKSg4yQ4rjoRQbdWZmlBWbpm*X8dpS`7f?MeYykF1L}w&lpB58 z_#UH8|2NW!A=PC{=j%S=f)Q&yL)k5@?wMPR!u!G}^K+=F#)DEIGYQ{t20@|00swp8 z5}3iSxuzD?aIGFeOBtF#nd0TPt%haM;<0*zSAQeN8@0k&aMCshzbJql_M#0%i-2b$m9i{Q=Z+U4%9Xv_A%T` zeir4{$>4|2EbHm9L8)SboZa`;Z$>ndJ$fF#6jcb*nHM==lc`gtd~a1NZ4hIsZ4}P$ zz-XDkbY5uqv`{NFnp!0g4Qt!bJ|0sU?dIm;4W67BjGrhs2rFyCVF`kA$~5##LGy=2 zbsDgRS6&*df`?s;=}(f`d-C4t@4HzdYVjV!$) zJc!+)Ko6$?{Cw&C%XR_9JbTHdt>=)uTxm>2TGKKmdA50vQaLt3O=!2&uo-V-ZJj?| zH_VC#qpAxZF=eDo7A9F{vEAk}0ii#WfR3Z6no};0HcVPyTUZ>^fV5O26?0yc@o>sO zOiFnw+qp7^(97e#ekjh~M;%K|+wb;j06q0fpp=$c*A8MSlS0C{I;Nb+(Y2NOSv2Lg zW(KK6G-3J=j-Bc0(hL1oQ&Hnwx{$AAUKd$y*XJe93F9tpF1R;pP0fj=IP$aw*X^e( z;^o^a#p+2mBS&sFy|)_GyoNPh_N?wR z{E~Po6N=z11K@`Jf%pI@APBRwx04*9+@Z9Q>5|N^Jx8bZ87_@T=%gnMBfhx$2MdxWvMsBAx6uG<-M!!1iDLFpK2vf{ZV-grqi7M$;y z^!Yd?XK@Pd$&gP?Bgc-x7_YJDD#m2;g5EHI^1RQ+^p-wZAAWSgj>e@%YT7kbtsfod z8*?tjRHHE5&+yB_zmx@hm|56izSuNML!L6f@jhM9M2g#%WIIh}*1uz!y|LV=5Z;8? zB}a6vwq3V{dsk3U74FB>E*MmV1G4q3&RVa{74F}#^#dLRPuI3e=hv6eGFmx%@NUmK zXwxRmneU{d#G1OkS;wz5o+QBoo_@R`GFD$Aky%n(pymk7+v3YCg&1SSiP0Y&-(gpA zulxb{7&+B1rfM5i=0`EiymZxMoQ^vMAKDq4X>M&3etIr579#Cp_SzxDTdad^q%own?ue0rPxC;oUHydE#pEoou=%sSc*Ve=+)<~^)Mt)C8P zfZVUSNxA7h@WDVA`>|=8&8!){dPF2aBAllA!52B1QUcKRNo2+o;*E}riYUB!sLnodRz3Kz?t9~e?P6iZ?Xat^_i%i;^>$cThjy)& zz$f`I>1Z5pF;XUzv)b=#GZ%e9l;-nkj9D#4XA162B{4puKKI$7^MWUfO*50QTG8|x ze~Kq)=i+4HCjTVs1on+Hng5x|?O~^31H17u_{(p)oOZj^Ih$MCO2nz?AxUxaBrKwK zSMEp}QJ#FRBkhYg_~L(FD<(U8ye2TBDglMnHgWK&m9<2C9{s5>9KbU#kTd6s5y+V^ zoNS7dF!-R!YX03M6q^(Q1f6QPZp7j})_5H($#gCE>yR-@LdPLHyi)(WgGjHkx)DA; zTl{gm=Ux}(ggKKgr+Md4U<}#4=8jg_<(M74B=hj3mJ=tZ$Z)JHzqvW5ziA!X7Rh(@ zjfAPWj*!!}nsE`6aBrUyO~!WbvNcd|`zHBZsfIxCnL!<)3YIYFTl8`2R1f_R-Y;LL zJBMdM8wE76w@cjm?P*E0s_rVg6K>18qK+08``={MH_OvU)?4EDld55DP}*gY($Crw z6{%ShCfxZ_&E2A`-J)<3Cp5^~fj`5}i~pAWu=f!8W)_TDBQ)9Bn%6#>p45e~WTa%7WBCGU;o|LorXwmu*Q<6p zhVR$4mz^MrDj`m1Itk-HA)eK0k!M5!L~+_liZaN5M8GeL za(7(yiBFE_pe6_UzTfxxuV)iu8$;V_qt9c4ezu-^f0s>z)hWu8)}?wk9Lcaby5N2D z$}H`ggU59PA1^rHN!o)z)IHwwE7Xc84Xe`iwZZOW!Wo&xzKy_?=Ap4C zJ?m7eZ3DG}_xvz#XY-)y%_(T%(a`&*R_~WF)9Qt*3mZ;QkLq|IxRN)DTm5XGL=p6Z zHuu@T_wJUdbeOhbZeKiVrz=9d23Zq-V&}Zv0T8al4bwbB3a4CrTHXv5yoEO%Vs=v{$#t*eEyDvr<4 zdrv{>7_Bx_pzaQ{Km?GlMQyZvbOODx2v__uhlzjBG}3|DmKIPA8i2^PU3~Crv+syy zs4_k{!+_s$+Ze9YPfKY_uI`l@ zzTKW~M`D=(%GI{wosDf*7xgy$zJ-?@TcryyRWER)r+o2kDUfgGakRPiEj+&YyR~6{ zC!jD(Pc#>(C+D`tX*!9=fO2}hxjks_5c0BHgR9VhVNXT5-jze3N4u~d6O4+yxG;Mg z9Jj_)2;T3T3a?$sFr?Q~BUw*ri;utHe|GIUG$@(mW+_rl+r#2mKjNd7FcBp;Nj?a{ zbvdD7N;vGbUeTFYP>Dqh@8LEX;I{o7?z?_pbl^Si zi7f5;OJJhHVBtzL~OG8{T^K0R~B`jO0{!rHVz~X{0`7q;Mn0Q3+9{5S#EY&<_B|25-6jaiB6lZ*G z3`sv4%Kn42U|ug#Q8?HLUzm2n`qMQ`hBDO;7g=riI4%T$8KTRr{Vv@{WxX7eNsl|YB@^H0^$M}FA?V3R&GJ?sn_}KvV4~TrbRFW6gJwVfh>_n>JnBfrPR}|UTPsc$ zoij7D;deF)(lBS!zVrDWx3T*NN6918=G>Qz{g~K?vhxgS`yuR(-55Ldz0j`Z%Ino& zsCEwEm>lXVXY0tz1#k1^LWSrE>cysi@0NkTU_$e-6~5DGWx_nb+z7QR`6x=y;Pah{L+Sk!z|Hm8|^jcVDgQIwFagr@wL8p!j z8ilKTOP|gINilVG+RtGbO5D#4b~P_XWd>)67$9JPEpViqE4(gpZEOOE8wd< zak7yGhV8_ew`YXD4OL!FxptO4r9x9j)7fOFDobQN9^2%WV-hWgdW*l0O|cze{;qFT zizLHgOSwU4qtt%}0aem$YrcRecaL=>&8Ed|(PG_r6F)rbel6!U_WXpe^YiSUklnJM zDX$VpTI{8+-B*HRqO9Q+T6GQXpXWJJT6S5ci|})sX0`9)tNe)#k~?({7*2937FmkD zEzWJ#n(U^D<}`!mA%lMT(l=#h-(vR}WXTF^NcOlYDzCiNu!a1nGF-|56a6*ySwf#c z{=`T^*k7B9G>X+(kg_PKCbXgeiA#Q<-*j?EvyZ;< zQYdigDC%~Lr{@vJJ0m$|q&cg_7M3z8U+o)fh2#-KpD{@0Y4Ku%Z&J_&g;Yfi!^=)I zymUaH_K|nC>@EK-Ey0A6DZbrkQ56=TU|xTazB$iSELL?09c?JBUXEM*ZD7TCz}cIt zp#2o2yWeRhrs=Z$ZP8iCh|lcgv{QR#cxXu~)BsC)9I6ga|!sI3kU zO89a%0?_u0pf)NfQpHL$3+Al&4zSDk&OmTj`D1TGMF<}9e ztZy_*rp4NG)gx*UowwE+wbTCr3{ih`}}LS`@E?oZ4lXf(rL@Yh-8BSf@4>^&b*H3Ct-aB@7P^C3|d zS(v(xIdeM0Q%<4u`$Fq0@7Ua~yRFX%6!j{seq=QF@3}@Sye$9fZc5+JnEXu?Q1Jsc zY>v3QTvijq>mr}qpiI)NzSvp82x{Y+7e&?}IR!ZCN1Lvynjvi164$R=ZyAB7bj-I;fgG)o4@bhm3p2%+BO6J{OC5CTR4zaBdiS30#;y_ zGV>nR@0DL<+TA`^4zj+wF3Tza6?3)NtfXelbQy?<<9;LI0~(5cy72?Z-p-YX7+^^xH9(NH3zvvrC^*wPUl`$!2G`v)|@hR>Nsbc!J$>(%z|BAebL-mF(gi?}X zr+0qrls0MQJ9l)|aM8{O*zyH++U~^b|Zk+Zjw*6(eB9GQl!gM~B)ccfG-Gd)Ji( z7^uxeOYia`E*%TxpFKdx|UrN?1zY}tsi=5~AM<`Zr4k6seV zSPo2K<8o*ddn!}p!L=+^{dC2v@ZZ$CbqQ*W9?(^*~1(yhzmvR@=v471jYxJbsoP0bO) zJioF&^YmTJsN7=yn4*Okb;Cm0wUP++I%ZPFT+C^*PSAz5#-aMrx0{y1zG=mw8${{J zASfJ;=umk>SL#ut;R@^R{ia)I?b9NL!U2NC;l_-TQxsS9s2a65xhA`2SXilNo8$u$?#QEH*MuT zGcBqZ8q3Lo4WaE-L$+}rpbK8=N;qZ6cQfUjNeCg%P`CQNc)#NHfZWG8X(SUO|guQIv5~L~XeT(HI*S zUr25xv8$Kgz&*G6l&Ox;J;0u)iv5;KIE4iBqV67hTvflwL{Igm#oOV0cfp2tejACL zR4hW_%h6U$P38}F*NHh8>2x!Et_T{zQ)g#)J!`L@yfoB|Xr<)@g=HfJh{L15EUQi% zK`^(IJ4V)06XbXlw$s0cJFqpZ#XcW;*w{%imGhH;-)A;SPN64(&~&tHeuq_UJTOze zkmrpOQ@nwLeuxdILLEaD@uS?_!L=A5z#FDJUuO;LD4A>0L&Gk2v;mC(`aL>2qsYt8 z>-LS8!WFR8?QEs{+9Zs(-eQyir)S>XM=Y<`Y)Gu>Uhv!>WGpGpr0zL=(eP&UzGe7WBssjX$K|HiRw+SopKl)!9E}cw)ld zejv>$W$2p$W3f>33`*K>V;FmPiQ~fq!kT&4R;_zW75V_aQ^rnm?C7H1apuCbvHWl| zl_xHiIWD(}4f zi*G-%3&jCq$oQ)brQTyAQana2YaXo&GM#fbN9r3UL7n2fpA6RifCq>3`JHzL+4X*N zgC(mgp@5aj9r5@0GS1=LB}jmqB9^m82L-3<=ZH-)E&N=c3F=<|*F4M2$|TRF59eR_ zu_rEBof7emnj2;-mi`>NpF_UjCmmA!tg}!oG$~dp3&mGldHudUv?lkBe?b2NoAiTU zGucZrnTcL5-(V(J<^`Qc^z=G2?>c5|Cj8nf>zehju?7*;$$Jy+0H5aEJ@K~_k$9TT zyhisI=i7jO+b32dsG9OCi7C=;h;_ns6?-*2nO?^_7K1_<2_xZ}>!2*B=xUik_Enu7 zdptL}{FK9BAYz0`h`yyjJE4(9f3dkb#P%kQf2HvDym9c)9~$W z94`ivPzX{9g7#`&kvS*lmLkz1>qZ_s`2}~|fFJSQ>n#m--q`t<=~x>^Isy0?%MS{q z^^V(om!mTQ0W<&C>$HUQ1-eOyc1<+ZaWD|4|8ndb|F{vgZt#BJs2)RthlrHk3dL;r z&f)Do$#>ZvPfY0b@s3uyq5bxNx?MYWJ7maQDz4x?LOfLnfP+K!d3|m03k_TSr&2gn zLqj2&z?IO%P4{DMXD814+oKIpO7j#M1YoLtByw-nvsHEQP5%+Vd}QeNh9+0k+Ch`Q zJY3iZrqLpa+->D6RW3Js6!YHg8HVw@i6H>C5xLzS4^|6h5hv$*h18j&`@-|u2%~K#J=2~H`8a!^4yTNoj0$583@n^8QMnPS-fQ}CGdIhA>_g` z`o5PkgdVJDK0cNZ`oqb5(WbBFUTYP4yt@WHeXn)cl3cw^z)P>;_YY%ytBl&U+A!}& z!i`V4Sn1p8qG>{qMVb&DN5>v=WeNtJ_I%GVTD>Nc19|=;qj$aG^)-WUdHx^L?OC%= zUPn6M+t=Mym&9GZS2N50?`=_zu;3Fz$LfJ~z3+>YF?!MGrzGL1C@@FeEXHka?H_N? zm+K=Pn`WD*uDoaLH@hu@iN(cv2JZ`a#5)8^5dS!}E#Jqr8eQy6vlIPRvrpbf(_;7W zTn?$xLtCc}jH)%2HG|zt?Q}hwdXqrQ%3zc?C|I2esJS^ZIMF$oSO?lBFb$LprcM^b zLfnM|xxnP*2n#<12n=b=!$k!^!GQ--oTz;OADAj>4kXJD5C-E^dp`;Phla^Vp!uN$ zCbYQs;lONxlN=!p6cU~q7z;z~0K=UBe-Zyz^~DyAF9UJ7BLY$|q1-d=lS@ zc)xd1omA+Uk{dOfP^+(E_`#~GMHv(}M`eP$Uk^%dL@(MxFy8>;6i#uh?7NIr<@LVw-NEW8{Z|b-h9?+*K zl1R>-OMDy7A#eSH!&yrh=cT<#SM9!EG?A?&*2CnQ9J#PbNCQ;(Np|yRoUeHiw}Oum zaTo$nl78Wq+I)=EtyO-LTw*JT`}_BVt34avbjvmq`ZwDL48Y%6S+PIz;-oujjvQOg zcj8xE3()^ZAI)Hg9Y3G@b&SM&+BLRvxKM#=4<^9p3eN)hvR3<}2#92Oq>YDOlx8UB zh}$sY67Zdt$HtkJYZtJiwLp7jYN5~t8= zIJP^fYksLiPgQQL=uRz1A@??I+&>201p^Q^>nKxNaOP zF}B~TRD5dtxp!mjpCW9B(oit;yIfVhdsBK=Pf4sWPOGHRhIAU71w&h6*VE`6cWjN6_4ndO4xJL6m!F?R)t4MUvN@awnwmJ z(ObE#ztHYgq#7Y;S&}54v}bUyd0d7*)VAs&pZ25I{`^1 zQ}Fi8ZPcFPqKSw3BiY?dmIXscR! zmP^KnYJ>!{WPW{T^d3+#LBna^q zWqD-4+2F^Mg?~gB9=8hS@qO{17%_9zC zk0xR?+d62lMN23(FpntC{`>U?Nm9rCUV)i!wTNo{_E>fqW7)81tB|#$l9`Bx0|szc z#U3`i?F&TMnE4uf7S8uVXEoqwT^gdAE4AgB+UZ5_)Jo1M8PVT852Yg1b80?lmJ2AH zlhG2;9M#y2k-7iEoYwLIVdV|e`H2(ZG2UHyVqXgdTg`e4)>JS>Y@AvD{#$cehs6vnGv;*|TcFJd~rJ){9l1!_9z!_GKqt`2t zklMG8VM!B&y*N$Di)YB4^+xRL-FJ)WQhR{7HNY;b_@B$N=E4DG1PST4zZ{VWo&YKN zZe{-Y~=pd*h*453kRYWpZ4WUA(bGv)bK879W^800OM;& z@0yFM;#-u!siO1B?~iotpIkDkP?dvRw4>m*K}MqIPMxd1O9ZsirLlVAol>PtTGCw^ z1!sT28FM-z3X3!>R(|H6VZ1-k3H4|6Crz}#Q!uO6wwcxXH|kC=v;fE4*&?GEeI>c9 zmc)H+>B@ktF#LJ-l~-Is-v)HoO{j zg@ZvrczI)7wLeE&tOP|@0=4`Hw)uQ&Ek##b84}1jH4VDrNSGjPCRM6_B>8jw`Xjp6 zdGTS?3Lh_O zn9>L$sZ*BA&4&dnQ$;oD=Et$(S$uRot)MTv?ZSH6v|ZNa!La3XnOc4 zJe7Z;R}0}MKr?jYCf8>*SCwUdW^73kIUpg4<1O&hL~h5-YnbVMMu-O2cAT?PfN`9~ zy*t@>WVeLC=h4rj+6ngiD}19ab~IdMC%V4J2df?c*m)4%)4bh2{@N(D2wn<8^pNY> z1;yQ-4wsh?g!>=XB3w1=u5C3syKXvvMHsek={Tuz z2lQZYWbIq%=~uTP$M=&$X_{Oh@3MGTFQuZo)e~X((^4K)oV1ys$RFj zF#G~RJQN0G)=L=RZ+X!7?T$Sy9;IJD{}oWaVcNbtpn*ec@qCddQTAFZ-}Kwx^!7F; z-2TUy|GzN%f1|+{yPfyE?SM})hTsPOmoI{NB%tnzCHXaFMEc)8-|pX%&iKEB?SF7M zcu;==8{Pjb;lT0!@5EQ{JTnniPuP&4Y!bh}kR#{+7J)|K6S{k|Px6jw69SEoV$Nr^7z-f%_bbcimtZy;@rU_o~6zkvI?cZ2uwv)2MY|vwAqwoLr%n`Q& zEiME(_;1NsaGSLqSJb&=@QZfD3f62W=}1w>Te8njsW16oRsT;h*BK61*RBadFeGXa zq#%(|qL)#kzeI}!(SzuW(ZgtwAfhGF4WmSfo)C;KMoE+*m}sLDeRP9S&X#kX>-xU) z{Ww3*@4eSv?OAI-_kBJ0eO)IMUhQage(YnsS-v4ZQI)g~NbEQw(}6xnDAH9fw%Cvq z&;ASGIYy9q@_=IQ^`On%+-5M5?mu4=<$7_m)&fMJms6l(d~*s&;H1gJZv&i2w%-Mo z<)J{?=ALd7xJy2lOf?)M+41*4%@T(x#;{QGu9z@j`ezsE_W;vOTvYOozg9@gnQ3K- z;$b3j<|-2anX^Nu{$gaNnKR*?0Y5(cu+Ib*#?AC#xyP!xJ%=9vTn|Z4|6(Kuvq+-i z`B?%%dXw>7&$(`6xr<(2!J8lU%2rI;o*8&^ujC@3K)P|_-%b`0p12LU(&uw2|9odF zA>mnkygNILmg;d=IG>lHGs&U4pb{QmtcA#gEbhaLkmj@9MJr*f=3(rXIYwq9-tiMN zrgtXQ5LmT=ii@2IxP)_gdw`DS)@l*x$hmVdvR8keT%_%0p>WVI%ai@No-Aud<}OuW z+7HDp#(YbtwJE}p5Yo8Wzu)zrO_-*^LVqmU|JQ^6n>`r0x)Hr(b(M$whOF{6fY@+U zxY&ws6sVD_pr%7YisDR=wKN|CFv9e|GxPvx3sv|rai~q0+GCjth$H>%qrXwfGGnRo zji`v@W|K3>)c%~nzyXz0wTMD60RyU2IYS8hFE7ptyW)FUG`26X_ zVC|9JvioZ#R;Q@o`pXGe<%{Nyd}xtEsR zjdLi25YK+(30*XV)r?~RY0Jg{TgmJ)e_?w+Lo8NSWt0LY^`?8EGXzK}&xONh2s%$m zYyh1wpDx?K4Bh~^%$fxIL*`c?t&=Z1+f)Te0cJtx#r@hHDDcfA685a4rs(y7s!Pk0qG9gj0p;He4Jl#nhG@IW&PzBQUq`cI+m_QK#9UEs zzNu7%FQ7?(K>eHyu=xo^GQT_=QW;S;mNyB*plM;Am0SBBBS~g0HKC^ z?dx;VLmYA4aO6u*+j_S(`t zb(1tble7>MO;t5(q;%gm&5_G+N|;o&VQh&aiJy5Tn@3K-Y+T^M3#9@VkB+1{t;q!g zb2fd;FtU)OBRoQ&cg|oAmgx5VHbrf3BxqH>Z#$jKO`oCccz-P_zq(CP*vjs42DeRX2z0ec z<1%_4rS#J2#W?YVCd$y!)Ym9#J(t=!?zH5)b;O-kb#{2S-rMRd5i3qn?#9t;Ik9CeA|ha!M?(2ugQVh3t9TpofCRZ9bS(s`)Xyc~ zu)jX$*0EjH5g0^hvYr4=zKM(a6m{$556aI!|6s!!3@|^1{%K4=d=77T5>S2zGWNlX zsBDzOj<>@d#^6-bz9}_>{VgfG2vfc!#NO4aduEuA1~`+ktJRcS=>v0E+`9gNUGEm;FJo$AfI#;Beaa( zcm+~i2?}wx7Zcwn!yy`7wZ8&^G^}3Df(vhZX{05AbGtJypqDl6J2p8!W>?aKjrQkt zMpZpwtV;s5HHo`!%y@9vu(AF&gWj~ib}erhNd)O3P8*D%Urqi06vTgiXWqdxA&BUE zy7EtDA}{|H4?pqgN_*uN`YDdue==L*jkF$jr~VX)yX9K(9MV&U=<~%_ynl-`ChvQ(SDY+|!;?QZ9o{p-n12%DJ_hp*Imbtv4q{_+?qfc=9 z+I@Z2qU?3f39noizIh?xZbEKS{W!W7YN%q=sSSeY+iiXIj_DXCKW}P~ms=2x=~1Jl zH0uW|C$Z&baOigZwq`XelVimWiq)w#ziJYH;qx>r~5I2Z-7n zq0Pzm-VyJzo1Q71mmPe}O66*XJW{;u8wkhwOmodO9+~HXaag!@e(G&=yr^6b0GY)0 z(v#!axX`(VoM~FP`xU7l&`E}_t(!&K6a;HdqK?QeUw~*4@lSj@z9*(lZt;f3u7?Wd z@}#zwDu0Hs1Gs&-5kji@0aECFIIvn=abNMUy2gu{@dtm(1}w}_(a@!ZO;GO+}h~5K^yNx(FP@_Cl)9t4hTH$ z{b_t>__7AomzuZVDewAByfnYxF@s!f@Lf(mWxj_2h^k}mD{r^ejVo6ujr5R=nYl;7 zFyqIJc)M4W$$HZ(^LLYfdt>clP(xL4y5**WQ70DSpK3ST-gt8XW7vRh>*)6$C{MOf z)`WyxFG>ZYB_k%%8nBn%N3}dk$P=$!G)oo}i_-Gn`l`vj$1Z{1ju5;1{iwC~jH7(A zl;}n>18t`nh82+FK!w%TroaYew2=$q2*gO&hJ}dGa*n`}HhBq1&J^mE==n)^Fk}DS zq0MgF#xjRq$P5otl?Y0YZRrO5QP`H??K;==%C&b8?i`r_i;DOqhG^%mlq4UtC>8#0 zfzDW^)F&n{cdt98Qc&6VeM>i~qj^^6Tz9_CW|m^I`;)c{mtxbG(iwP-Wr{udX~Gd- zTzIO{qNDCnzb$0HLDX%g7mvBpA)`3?XXVY;)9%tY$W@@9bE0U%jOY;ce9h)5ZJ<_* z@5!2}tHld8m8S(cn6K7`&&x>t9^*mLdJd3Z$}gztR@zazoD+Vl(zv**`R_&NZrE#& ze-kSsU-JweHrm~XZ*B#~f!3ThGz>o13q(zhSFiC@2n49W6lJS-o#9K=-VFv{81-Vg z<>Bs7&Lz$nXlk|nLKz7zHZU~Z)shos498QFq05BLn-i^Az6&n&eBA9=@t@nf?a?i- zv=`qgezp7`m7~iu&4EN-V@n;$E74&>Wvh~~_SS26E(Z_pej*6y-g#%Ij!$!R zN-{HD63_~Q8FvS{Dnb<hrH*+=k%vRu4k=#8 zQnKI~5OdC-04FKlMJ!Aa@v&|@ZyvgdX#T0aDS9?MoYhru;`^FySKNEhUFmg}hF*w) zceNxg{1#?SU0c#D=wvP=#IBFX%)$+@zM-1DOd~pZNQ(k2@sfyIv0n(2g@4@t&dJ>9>#g}xR1bj1l z^*s{-x8BZ+;!4zKV$aRYlzpL%h8aJ2_vs*>OUil82aDO@m<={&f=}iW-WL%EzvzU) zra_EdZVFvVRnd-j?R8Dq6LsE4sq~k#;e71fP+%HiH_l1h$+5NZGS|?CYZW~#4?q{1 zekqp(pZ>a~6rN?SaBmD4B#2RhwWwlVF57I+C#@(R>%udZjOfRhGa5%v6PASH!Nc{v zr4VCQ-*xeA)4(5R`DFEk^{HC-ep0dkWK>*2u_V1$d7p+%@vzToa}{rrX+_#&%?X*B zC#={CmcylMi9kqYGF zzU{qU(?1j~Jey~UG_-@ItVCwi1+E|Pv0g@6;VK-axm5Uc6yP?eTN@fzam;VqDD8uA zO&s;XAJF+UlDos!X&Ejw#|LU%W01gsa+QiHc?B-%yQQH)#>(Ku8_1DbDI@<1p^XUP zs9wJNzapG7zt9#dnX=8>O%-Wa4TnP$YB+oNI~rex^K|<455GEXAaD%y>?~|cz$Hth zp2q72R;U>FMl?6cx*brLmHOP&z?y8~5I#}W$=!efgTEN^sdIix7In zF9iOY#auWRI_Bg6H!EmFYIDJUsI$KdWxl3;MeKl+|IN1sd z$=4!{owrJgDp#eDX!>2GWMP#wb8~i^vST1`|{4qKkNVCvBmSCbo6JFYQ0Of3#=(?D63 z8l`w;z@VO(@<8~{cvy7wpt3}tv}GzaQl;se^p3Ky1n(C^JkF;5%;q0 zCGxKDz3olyY$BB-6qKAEvY6f88M5@z3r%t(mc@H18{a#87 z;36|tI={;eL^DQ|7~?U3*c1_OE1T30IT-!l|5kIIJM58 yLIzM{B-Ga}0iZuC5y_$il=Lt;{(m$)JX!z{9)IcKw6TAo%n>aFNAR#n{up z^{pqw+WigQJ8OFvPhpogo?KvIQQ?OV4!G<;&Wusb4UC&LfH`|k@96+ALR9#G-}%cc_+ zePG14s)&H%rjT;vsxe_7|Gn3M1YenzA9}~qT>5OU7!@45+;!v;YHRtdYIDZKXlQ=A zkCg+}jFLYvc+C6n+k%Rs@OVIUi2A|79a(fEap&;-@tf_F9rWxe)ZXFp_+qg$8olm{ zz-MTWsm|DzOk(`fs-bk+-d8B$icJ3ed1PV&y4I5AHG2ZZVI+o-5L8;jUX}&Y7=ar} z6roeN2PXJ;7OC!JTqB|fnos#bR}+&>nBif}>hu~RlS#V#-gFiB{RfvFSu=w|?AaW* zx-^vhj|zX7hu1gAOd7q0dwI&$dp8Q++Z@Z)-9GGvVb4b~JIIr0FMaYi|Cd)V!Aty) z&rb(qso|Ur#z`#b+;dx1@7?%P;yq{$qP||>3arXHlP=HbGB-Lt{^Cp4A+EJBWmQj!v0eApd$p52rGe1@5gh{m3o%}l@izf1otKnuO*%vp0z;-fguygD0n3` zy}5b1a&KdrHynn$sM;H&`*BjfhrL{6nn%6w+Oy1tReMwU@{axQm}m%I1CLHU3(wh} z%xDw0-Cv0TL1K66#XTJgGP<^QVNQ-N7vpHG?~?%rONuPns^5x8%nc-e>S*cBESyk$A`k`s(&TnHG^5R?=`gYEn_vD{$gTKlE-`KW6tI=_zHoK7L||8vs&|2XMAual1E zLFXOPnxq=YVtUx1p3%3`UzgKpoAbKRAbfpYVV9=Moa)?j$B7p__Gd@yox?Mv(L2VB z>Rh1EuA?VQhZK=UDW#hmZN}|r-u>AcNy*sEX20nP0b#_??{6=M6En6ftGu)3pZ}6Z z2nq^FwiVME|ass0NKp5;G0Y-UbX+WQ7sR!vufL-UBdns zi-US1fjbi+JDt8ONC-}*-tBUCuwU@}_z`ccOZY$kl}Zd?Zt5F8t6S#mrKheIWu=1A z5z(cu7q^aXO=2NcoSHEHu|DfgqTXMnr4Z-1R8yjdI`uZBV%G~8EUhi1HNu7(|k zW(d^SO!DU=FrPx-cn84P*i!V2A@3e>r8p zvpKVUj5iM{KfODmOw{e+(@}^pl9Oo&&R+5_33}hn!+^x5sE_}sH-WL1Cxq|$b{Osj zZt~Gh{mw*udC_Z?qAqC0{i5B$A7-j(Y}m)`{HQLI#@;GfjX0X{9}{ZPU)zfQFmQMF z_&ja;DX|6jox#+`%W`>d$kpc7Umx^_>hm6cOcRFyD2BKrDh`RXoL49pR!?ALT1_$W zJ6W_nyCDD~=}NijFC&!{cABX_x>$w;((XZzR!(A^XW@Tmt~SO6-WpSZN&fXOX0q!Ti<{oKK%2bO zGE?q3^SHO$qPYB3g%wwY3xGe<(Q>N5g`?#1T6z8|2i}d18(X6s+_y+)%@)**Bxc&x zsRrNTx8IO%DmB(hdM&I!;Q@jS@1X5BoJt3yX>amilP#Y>`xm!6*r1XOjHV^)#+j_$ zBJZbP65alMVh%ODxqJgd0$pK9zB?Dl!Z};s$%MPXPrt^jU)bHYM;Hu5*wBCBwLtP8 zc)fu6y1&ppAK2y@%^PmkeJsSs8nzmO3$8+7u5LV)xg23E1SHNh$cbtr`nPaX|9LGr<^)2 zcb6Dwk{|5f9;o6Sex8zH*&$YRINm@l!ihpxj;u1$M3+cQ9cX^|cRn-(RsSGjc4Q~1 zzty-M2@QUbUi&xxfgm-9-|gkj z$Q_jPI3tVC8&5Adbqe^__o#(6roK7fP$E4e)1*>~2(TyaL~@uW?wRa6TxX^XWO2@n zhJ+$mTe78rfEN_tP7>{`$c3xAx~P5n(nQg36G`$7`>kQxx`-M6p=WSl7qwSTN%=`I zEi^&sAwpp;ftEgA{P0$c|5}F#CoBFx*pn*%Pk?bm;x>ameotMwJDYri$8lr#;;`;u zxraoHiE89l4Tz--=f=%4Tl%3Q}V{hU?&u?Bm4WZFf8(?6Aj-O&Z@VeT~j9 z*kVip-&_2#bK-9sZZtf zP?K;^OopWcGOg<@uD-#<#;NL^wi4u0#8K!u?eynC#7TL-#<9KVyFDe=BJS58Bla+t9vpRUZ zL=~>dikp*vMwyOB>|98?*9?Jpf0?7uiT@@i4??ny%5v$4c-iR?uDK6m7gvKX`h9)~ z`e_ipj(s;_)+Tg2tzpxU&DaPU*c0=P@CN-0?~psmL?D8HBhLlE6bXOH(#MK$N{kuD zgfkz1;c>qgUDn+8gz-`Uax=+rpKS2rEHSAo;uE+E=3jPKsPkT#`<~eRdlLH%M@wUL zeW~kT)yr}+BZK*@*8A|2$kT^hGEZs(VcV}86JAyEyui-V@^ zb~E-%iSvuzCfnZp7r^zd$3Z7|bEi}rBAngR-`i37IAzSN9=l;g89}F45U-=&Kh?Nr z*uKu0r1A9tJaXraX?Mca#>C;5ADMDLa09{5^9}9u4)Vt2Y;jBpDmhGX12xG<;qc!b zd@o#OFh`Ktp3+tQ9+q-MV%Qk2VH0KJpFp=v_v{z-mnK{>vE=irq%MJi&t(Eg_%cKT z`qurem&f4G8Y6zy{FJL*mWjOrSAi4fh)7-a-am+Um-d&6zIRjYJ`d^r!?|0IRRDgw z*>GaF_8*yLW(2T}ic)xt`M)SX$^;;D!QM=6+CS{!AFghEz1!~B>e>8@-il;eme=gH z*)jHQ%zshd`kK-ITzC>q`#%&Pk6Sd5mMcDtQvr%m?mAY)o2W0Q)IFT@$KbGRa)hHc z*x~!M1iZ?4H6JG?Ui>H}lt|n|A!2{3c}~Ap!pp+XvrqL7smRUEy|R?YOzX;U4TS(t z4zlJMg5}!T+izaoeE7#g|EMSAnq1gdGe4Xd7|>B>W&Ut`i-=nkNwcBLnx2u-&~WGI zkG7n|FBpKqpvQ_jOD@1vIwB=2b9hHYAI=RuzcvpKXoCgd zjWcqDK+taBQ=?NQ6TOaE%tR}-f4b4=|CyjMcdQVIw9@%<0PG;}!3frBoexAkuxE0cx46tP&(`jn z?aFz6W+!sSw0Upt=aDH>%^lAg@f}p(9osae1{$Kt2A(Kck&WolxfZ`=AD$>q*wykj%h}GDRT%>l8SNcb zjjhwgA4c85jnAWZ*U0rBSIlMy?N;v<_2|bXGQ=5@X_eZ!khTr`zIF^PNT-PXS{tZ! zK5>gc5+V8p!}HeCuhY}bTmr{;$`dV#f=xS+T{4vDTh_lu!uAjd*v%Ce0m0jM5xq|9 z=cMm`H>jnUmr$J(sTeWKWFoF^l-|dZQKf)OG>?+>A1HY3(7tS#nm?8jkWe(!(lT>< z{umpP43Rt!Ro<_@hpbGrRHwiCQnPay)cAdM0@@WnX z&+Tku$#=>6zSA2S?h8GuJIz_OUH-)dVWXwh*Wg3TWQV;W&*8)yy9wY9GdBS*KM1hY zcVR|h`SSoH{ry+GgUp=U`B`^h(x&j|uZ0a>EHESu!H*CpOZTXX<$E-{9Mffd8|=~w#|-thuf%BfRPA*fW_)1(O*qc zEFC=5my7_iyRdwcc}P}MpwH^}4^_sSMeDCe_E%Q??x+MGL9*l;{H@cXJo|@9MTDK` zk`qKwz9;SBVVaXJHDGKv1$dlV^XQ>gR6>GKNm^RrD&HUE2YB*g3~4TC6g zc+KznjhCTJjlNfImT$f#73>TqbKWq~R62qquJ)T{C!Qmv8`*o9>a*7XKRsF7^BtDQ zwB3|G35u1MXbr4cA^Kr*q2N3I4!!TUsM5FFc!}HS<#xk;mP7^GxtwGF4oJO({ua|^ zg<@R_Z-YKOyDKw@g!&ydHdZN5)XX|ta`b5Sc0B)!9olcco7Tb`93R%s_n4-KuSmJ8!V}vsmOZ9m+bV&eRcHIa`Gf4 zvitiE!UwU~A88Enc=KxkWzK9*lWc&xLN&ofI38^Y|Dq^zz~WvQXb9);sw=fOj1y7P zq2_Mz*c-oHI^P(-#FESjmNnbx{5Nn96sB^u}ZApzW-5&BBCYv8SGCIfl?mAp)Y%2WM48?l;qLat>C z>0x2vR}ST7Zem# zG~1*4+Yb+hVU10e0X>J4D48H|svqMr+XZZPgh9Irg_Ppwy1&OsPQW+OH~ykesu4RW zzy&Inv>_n4L2;zaro$>NKexp2*_*l}PxXE5HU(i{Y&NTGN%RZmsg=oH%#2o_m?K8- z%N&HYP1bGiop^TMVZW5I0QnY5iAl9ZoF`9`1tp* zE8BFjVKT*g|E4%-zitOIT5Zs@DSusC-Io$Gi*`kvWM$ymY{253el6o z%Aw(*ckjpl;$H!KC43V|LOWyHZIC6=9Vx8x*bzY0MP*@&f2vP(M9?tMZErfjuKKb$ z%Y}=D;>RlwqdvtP=-%z*NC890`7*zsQD~u%9$)5D+XPB)CYbH#*Rg;>kL>YC|A1aT z{_s$fu+4^tho`-AtD$~olzigmC)S*JH|w07G_+db)?w7|#xPA*ci#KK?KV8QHc{2% z^j=7L35eOWDK}5ulsFg9!@He*Vhk_#yE51++iu2$bdR>I$jiN8WcqbXCFg@C&Myf1 z1ojk{OchQs8ixm4G$LhvKBk8)J5ms|TYYX{VeBhcK);dJK>QTyG&Qu^#@a9Zva z(NL&TJc-Zno)hdH+R4ws!OY=gvzS_A{v8tO7`X&74{R=M=DCx*-*dT#x0WAf0aP%^BUmK1*{V0!yHN$*f>L<}TUKr3I_Phyk8D#@Cnq3gSjxO8JrM@`)1|v1o(TYsASFdh9op8E5W3TJK zv8=%%Z0~cl;BNic#nWu09@*6_Zrw-hSI{*%n9nc3znU~3FoFkLMfj()2*{#;fRI~(ZlHjk$Ajtq7h@kwpgea_&t zoEE4xW~jQ6Z7J8?uNA4=cYb=}k#5b}o+{w*2>@_W)}Y1su(FeWK3{)b^nrAvn>(BR zJ+7D?|MtkkwvyDO5(6WSrF1(kke_fG{7UXtN|N8w7F__Ro$Gl8#75gw>s9|+AS!*f zeg?W~o6p{W&AQDcoerO5=;F6UI6I)8e?crRNS!tRDm`DB2R*1D|1CZ%AK*xGx>LOx zs()~2HWqivmZGu2OiQ4YNK#+#>?jRGztwMy4GBAStru2|=BK*mV-MKux+1Xt<*0fO z^pcbjrO@+HyjRM^($|^Inu?WAp0)B3S3;Q6Yc~#BpJg}NV09(U+=8u}dYtS{q4u;x zt$)ZwsqMQ#6?6==%M9kP7gr zhN)iLh=!J#bmV>9Tleck{*d?;W*_*JE%>e$(gGwkKuT3H5Zr$=KFt1<3P_W7l5c4< zbGHBru)P&cTw*O7pmQB8MLTVL1V>RxdNN$=7wUw5BtXvLJ=ikF57Nz+5A6K7ylr$J zB>&HRo)U$ruu4nIz{IODP7bQ;c}icaom=wKt`iYCYlp-zQfdxQu_d45jo~W)hu2Aw z61V96k^S@8*w}1Dj>kiup|e$grrT3FUR0{A^)e=|^R>{=0du~xU!s_i(VQARg$*;N z@)*TUwy+D2TjeO~NN`nkwHyrh1+z6jr=^Ab-O+`;JhlFis{l-5NkvsDL-cw~{JB4s zZTNYI##KxgsDIdRI2`CLTq3fRB%MGyvgz`&_oV|!<(;~3`0rQ$D&E1?i+5eh{buJo ze|eUoz31|llaG%)`)4>ivX(T+IzEhK=>X7b=md1eCMTD_9q*rv98t?Z6!>Y8eRtx;#Lm{1ot)3gYtzxm#P!`k-=lYZokD8DNc)Sk zZ!XJg!A4oSV@}o~I~}>_?ZLI-l>Z~I%(S0{5m1{RiP=9M zg3aVB(CE_%R}m3gZf(NRzeGS11-QW2*jPzf8Ho(>$CdRf4(Zdw^@>u*`Kw(&cbsB? zPHO|_4)JCyn}l-&`6roX+rH!@$=MnH`@F}1BG-~f&=o6CxD1(lPYoK}mG?QyUz`rM zbwyzzhfC={67H2F+D-*dodu_>8mg<&xbci|-CI-ow54js*pqD$jQf7HRXT$b;bSsU zN%KFWkL+q0&w4nmFd@Tuq|UFIHnZVc_r!d;Q|=;NN?t?>hNMvc>V zp@A~Q+1b*;7-nhR66*TB{|Y&coIAWc-782j(k*nA71#e2>ej}!aCUN*S7xi_hMaJ< zMDZ7{Gp#dTongBB!DnhmaG$FrF_|CUnXvQC&ALAcO^!xt>^_I*v$@OUGA;{~Z9(eo z%B5WOB4WJ2F699Mm?UUDg$b^YdJQq^i@8AVOP^oNhmKOqw;JFUTkGc9mc$?^KuPjA zmZ#_3mi5A@ukV#Re(I~)o%UGaD7wWWb|t5kSOJOzzkj*imm-qwAA?e0qc*G6B>HjL zofX}1n(5+rQF+y!U+%igw92$66Sy~Ay?p-rGxa)R*D~C)t2~tO)?EPyij8J6 z`~nrLs=SbMQ}EUI02omm0LjLM2`2op?Abv$5-}$!3Oz zp2r)zXj_*Zb5rlrVUPd_wbVFXJ*xxr^%r;`T=r9Rd+DfC?m1cnDlQ)A%fQ}r@n%^P z;|`#m1MzTR8cWb{LRgsOa1WdO*GGSP-UIIc2b1!s%qC+d4?pS-f<&5iuRLa6cER-$ zM-U(87AQE}&reQ}D*)n{KOo*@Df*p(LclB&KF8Ne+bjNXtHy`RnLO%+<~VvTVjO8x(~}bIK60A_Dfd3hqCf zzU&w_@PEZTXbXXuev9k{U>uX38fvLYn$*-08F&oJ|Mh!=jqwT>`G)8_ zP=3#E|2{yS@J?>0htr0|wG24QgJ(*#qMgrb;o;$NidUYeB|{7TIn32!H8M1P($}So z#~l1EYiIBUg|-ruG3xLlD_zV;*s1P>QQoNhj#_!MF;SHRrF*CwwQi%F2yUSy3Q)*uS3JFLao}enU}tC7n*iCf z@=yMF5Kt8*0HWgL*@~+m@2?T=ut*SaRUJ&io5o^V@ONV_4e9S3I@Dx1lHT0b_7BJBMC=h~_otS{bH(``Kn>iGKWIX5oj35MxB4@KymO61(! zb|-u6ZuVT~*UN-XT@6;Qc7~4JnyRWOD&vBB3c!0!Vj?)Hu3L0SfX;xRo`@DZ_4bjf zlTQYjq^@34<5b;jU$ut{2DF(PJP%3u7&S_t4vT!|%@$OXfBwnu$E|a+DJ9sGuW|cI zQil(~Ewe3rhZ;guE1=gSco|#2YzOx-K7e+e{l#%s#sSzjmlO|uFdxC9%z9(&PpoFR zL|I3^Ce7?t*W}_5!qrjupWL$F-=gs%Pm+V< z8|g&_#@=Cm{~FKrqtE*yKIVdTJAuS7S5$K#4#NVYuxRole)%(XC*r+f)?l^*OkI{k z&hPkm)8LRRCk*da5}|5d&~&ovhb~|ViA3<~<(^oL@QA(|u`-^rCbHGvBQK!1dmatP zuaB#Q)45I~K+uR+bGE-zAg{=0LiUUx zpjId=YhJv{Jfb0d`=LbclO`UZJ>gGm%SR2Rk*tB0rpy+S17?#9XZOBsM_ynthK*qUiNcUu9-&>EaLU|u3__l zEGiYeu*B#|PCF~jKq5{<~Qod2CE74bwtK`lQO-m9z?tLWoXpq6lHD1l|YH6Qt_cfTy)No1%GL);HY|K>1*_I;$ zeRj_B8x;HZ%;gZi+b5ckEZzQ(`Q)aio;E-m6VJ74WsTo(T4*UP+hETm)Nr#i@ND#$ ztQJP0k4at%s>nZ&@*N$_!G{M{1!)i*gKX4T@my%yYn@;9-U3iNE&uf&WmRp~^e-uQ z9NAJ!o>_8N|GBX7(98?Y^1zrdoAs@)-#zSIw-lFasI+ve_>$b*^N@kh1`!prtKdkd z%~#bQbqs1dn)uvR+b38$A_jg?@sa0&Y3Cm*^amh&iV`BoW z++)VvVe<`@O$W)wU&d8?=Gj6Jdf+x$R64jy*8dELK2p1sc%cyyaVuczcwxnag<)I7 z840I0`tefD+Z*i9R^(qkkHKNXNsVHJZhme!D56sj9(!1PsxW)y36^2|K27vFz;)Bk z(OD&(gx~k>kSGnoF_-Am5xlU7Ru;m{k#vo8?h(a7vEUgkKOz8DnwuMQii=p1znGdo z7Zwm|yc~$#MP*YNevX~<&G>6=?7rb`)F;Va%~v0TqaCg|JKxY`iX-8RHN4djt6LuG zCnKb97;$fAEDUo`081FkFB(n5%x7weH+AINwKxz;^2UKI^ zO?f%R*n>WZIZdjkz2p_o=gVjV?jTmb8XAI8qU++6%A-^SCxGHToamv^Tln@sWgb97 zm10w)n0rDm{|MY&W{m$KsKf(8S(vAMruh|7)Y=c)+shoc%x_uK|%HPd>!67XelEtqX2WjXeV9tN9(5a_Oe5dGi5O`6O8+UILxXk=>xxS ztLu}xDA*#x+1b7giryhTkleVgQ1gSXXlU8&$7;Ub0oU)70q zYZ0nI?eALq0E#x9)Sxcvzw>a{!O-H*=d8 z7j>dApcA71!>}&XR;&i?8TJz5?=LgHaIr_MCG7{k4-gWorE6i)&gatMasYeEIfw8% zZQW*y)ybB1+q?+o^*?R&J@`9Tl*m*z=Z8HTh+h`qP=MAKR32{5o@TSMxmrj=4$mrN zbS;CO{5_ABHh&fBSk~fB_$sig8Lrv$GJc0+ozXHDa_xQ%0n4p%JT&6W!hmiP2EhLl zMh#CbQX;z-0ct?I+ljTOZAeSrW1y1&!;KBSt^2lZpLBCBlt6tU1^&YLIahleB6yK${Hy ziliKj0`ce|^&1CZmm5Lx@nQOrqGPQ-K+4&kbUFLxI0PW-;BVg*0P3v_P^N?Ac{)!8 zVAurMpH~J>~w zbfn1pA{FZ#ED=z4ZTP#L)6PlAp4|DxFY+wY!}k4?omqYF*~6xTflRgj9rh&Z_R&IJ zwP_*46xbz(fujMliHy9|wY)kzPjp{d5P4K-8sO{`ZEG2-5GTorX!p~P`GQke2f$~k z9o1U$KBnhm%lRy)zI$Ojwp2T%n1mnX?8V36nuQz?oIY4+4F=NLl9#_a`}(#o(A&Ae z1(%562FIg`$M%0UQ-mMG&)kmI`iH$P*ZVRGU0GRACz;IauL%BrTgg(p6DHFvF6(z$ z(fsIgI)yWqQ-L4ShxY(;=@>=5IFhkvRAy#v1@D@4f=&;e0;3)^vA2z_yOmh%*3ZL5ggGzQi7 z_f(E_KZ`aBGkSE->-TdwqUvfBQ|*gfD?!>?H+?Op#UKIEq2!WDF=kaJ6t3@Aol3fhY~gzE&&)io>wg(Fi=}t`wDxC8jj@LII`=1!37#(Yus4q8ZS0t zAs8OsSxwoMgPr_ksk5bV%H6KJ{GID>I^le_zfAgFsT&!SEbHa<7iHpsJ9Fa#)#6AL zRH^sUw9(rW<#h*JlyBfnA{MvU$zTpoJ#O5R`uS#kGXt`hpho$@BPkDGbsRZfZ@n|1 zrkfSl5W4DrezYrV zeqwQ9{)Lkku+s+gdd8oT{;w@us8=1H>zkW&%=Tx5t1D3YT?OiGVy-Bw6(AE?3;Low z$ulAv!RYuZ>?yTblfx2$cwQ>Hc<%a^ogb=w}$!7f)?8`II}Dw`j{U`a^`WVDP&2~mLGyV&e_ z_GIR=US{FWSGcgY?PvvZy}PDjHwNXeo5f-Ei0)Ul&PW3=d<`ZSOqkqP-*3O_3Tlrp zs;?wCWI>-?4)G6tl7cTWxR=izaG$$G$}AdGcNsed1sj@t-5?lRuz%EiYoYw~{G)l4}#@p;|c_xRJHFLSXe`m_X*%1O zK0Q61aF+MOos~txQO{x;b8@VS;C7BUZ#!q?03`&9a|!fYcK3XVT{hYiOo@fMM#bB+ zzPDv!WMrhLcbcgpADJ@H$yuF*d`xn3J@-9c;p-kAnnt2GvD-&i=ESYkD!cMvDE`U* z_H1ETZ1ybBe==XOE;msC4~9?PKw&?yJa);RrPueRk_XQty{hr^t2kS2M%HgCv#Lfe zBq5+QYU(AueDv@TCZkU_Um=tiK@PZchT<>h=cYzRl6A|&kjrh-3Fqa)!AyE&jJ&3w zQJ3q+i9cPpILR^|yLVM}P5ZkBmI$SzSXUr{Aeofx^rk#K++OeG>~~H=#&B4O>VUC4 zzAAe1Z;usp2&57=cX#_NamU1qdhD+*XghI6+fZi2mKc z-*oEAnvadno{^SDJaG?>jYdHwqW=#1zRtt{_~iBLyr!l=1rLj(VcvClIfVaOZ}5(P zOmjU9y^~U~W~nfkDLX!M?A3K5N9w)j;B&Op(&GroE7G&3H+E%?kBr39#5`-TGe+<$ zQ(K5Zdu}^vdA_R*^}A|VU^BYqTw+E0LA?S8V5V>sxRy24Oea`H)j*jniV=u&B(?Vh z2P=R5x@=;ox~1TEv6o^8;cemRFP>4^Y}e zX)fe|+-~2tBM+aRt+X`tTg;Z7t26#8zF6zkx??~qYH8_OY&zZQWKnu3@kVJ3@8 z29yPfj#r>)K_q*NtlKJKJdY>j>LNN&ag97owgA9SqRyf@av+NPdJWIf5Kuj_>c|V4 zzl7AxHG1##3y>9m+f$5*J6;6Oy#U6*RAE2K0ThPdD|T&UL5sYiYkAgZN>7ZUh_6Kv z;vWV-bg#*X`?nr0qR#76N1Y@_1=|dOTw!|iEgKCWnbz>w$&%so11x}q-z=$u`6ds@ zCTJ^Ziw-!cQvJp5Az4txV}K!4w0_?7Q^^b3Ob(eQ2?4q#OUYQNpS&l(R#nKE-rNrh zQExZ?DxH6!oM-)1NFW^;w-XIB<%p>IQ#cUe<^9Q7SV?5l5dl8?e?k3UMv><1KnCRO z)OOcpL9J^q8{#Urh4ppfN@r~Xz(;(-jmj3#MVUWD)~k|fF%Wfr04r{m1YVw0!woc# zCPW~Rzm1-ULqV~nE0`E(Qb<`&M`crfktb3$-D_GVgEbLy%h_Qsz-QgZ#IF}!m|ZVD z6O-)hN1etw^x(Qno+@;x>Pilfm~ga;cw9tbs#f>a2@TDIs74nT7Y+GD%dQ{+y4pI1 z)~!Vu)Hms#iOl(+|DF_CDNHH}xLPPQu3}HK(QJ}<8O9CHGI3#-h2E+mM6U8vrd2WcI%M91Kx;Xa3UZ5o{1A`@Wg|kV3#$O{%iva#9mY+Z9wkNae z&oQU)Q`3oZgdZH9DwGD6ZSrEAxg`@h&IR~{&Yf^D$df?4G~+R!bg#|Pa{0L=+pyGA zq8O&~dyP2jq|7)GUD*JnB=0@vE}b8vlJ{oC?mXCC7=P?SzwalR8}=BcAZ3KA``z^{ zS|SH(plA_P6dP;$tkT1*(ROR=d-}}S&Q#trxHBa3Mr2vhjX#5M3bOry;{89RWV7xM z(PM-cuF|WfH8l`DY<0|REEe89oER2VgN!Ml{`^uZg`;r~weYvq9BvWF9)Q?&xO{Gy zW_>g}c@ z3M~Qx_Jo9JEMZk9yPU^iqx;c^V#jZiE@5x2s~sDU4oi7*&E20mCH^x1Bzfj4&Cz&- zsvXsRRt~0elr_k8BNeMVjApl2Y&aykPCAJ`D7~t^S6WoQ;J0><)GCE}T z@45x^vmYpG(z!CF@8oVt;`3F;MAbw_!lR=lsX?dRz4$L^4PR=%y2&O<`rJ@jKw!3m zuVL-;Y(B%8^CSAI9nX#&Q}T7o0(0!6UOuZIeZWzabZ7V88$7T!GTPBU+-DouTxHvOwghm(?=e_y+#`JRw#~Z5b z4e)fvBGv(e@1L8A@DtYjiK2V|9J+%o_%(QLH=J|e>cC28i z#KpWkmmgBmd$(ELtLtDAeEW<4Vpf{cdUwuCJ(bWvLuTwwkx5%eaIqtMqCvk>+pWZB ze?BOgjf}`uR$@PCKE@B0yirCSHPO3S}&vWIW6ORW1oP3r6l9l4D zS3os}`NTU+n3?|?<>*AmFoS?x!z@UJ(-zX<#LYTmrq`1n+~K0!OvznzoS6R2r|3Uh z8!}}OIL5ZD%i4BgNqmHl4Tfmzkd<<%UUK`BKt2u4h~x5C%UIG(gv%rzRJ?7?xe?J5 z#PGa!jl?6?7|vZ=Ia6LsRl@P&fJHde@s`InK~1)9^I38bHJ(kwlRW&LA)D*G)FyhL z{x4@d35m<`EX4f2)TNU#`v<;x=?95A>`E*3Xzu6F@%i$h=jSFm!p-NQte3N&dz3>{+&Abxo8CG+5>I7TS7U%&EBbnh`o9WL}!BE_7lMA6)Jkd-|H5C zQ32_=8{8Bv@B8o_~YH{%R87%*&-89q|6QKV6S?{dAi`u)|nR88mcNT|_q`Q#(`msffC zBkD5J(r;~TB_&P@-hSArL3bTh{ZUqEs5Nrse7m;l^L7O|bC|}+$dsH(_@L1Aq_mI+ zBr=%gJ3lgxoQCe9!~}L>A2^`$3Q(NaEO@q#Ma&#oG>OD^PKB2F{zzUgZ;N&K+;f_C@!wQrhMjosJl1&R5duW9ju2|_4ubTGF$ID#^R^E%9K z6A@l|5cj&)PHEpJR_Zvi-&Nt1XWDkzc5!M>h!xd>D&TPid zB~qR{7vr-`*;xP8x#-Af5!d`Yexn^Zl{#HSli%9#V3`5}@jAa;=iW=y1a^IUxygtP zI6xU8s+4Da`@8m$BcR6oRn3MRAcxZfgHO}k&zl1M9%T8v-wI)JYxsHlCCgrG9l<%g zO*X5xGALGzjhT?maa=apeJMOW6tfsZtkx;*h4155Z~J;gWJZWEuvIJ=carNwUPbjv z+}?XB>oeu!d;iTsQD!GrAm#Ahq|w+e$${?R@YuTsmmLlFG^c(0sjB>finQj)&AL`k z2Y{$}nmCj619Y*|<#=c|A{`stp_gao^7Er6b+PHFWdgC0q0sZABzmfEi4PX~*M8Y) zkcFsIgb7)dzsfZIxXreo=xh;DZ!7hVK5Q_4E@v>zhP$0SRMhhqCm%KQ#Hv;5doVRt z1Roh}?}M3YZHvn)B)7L3(g~|)A;0FYMAi0CpudG`8g)lzy5{nxkMhW033M;%Y*pLP zjP%wVA)DlM82?kUy3st!n*>2i7>jolN2wnVry~xf+U|6e3WWu}qgkq1SQ8DV46UVm z`SKHRu&B&E&QLQ(M(#!V*Z?tjYEaQ#uF)mB2)_L@4=2c`R6^9>oz!yJ`!$n^x%oJ1 zhX!ER%~G-L$F%m$q;Z8aLjSB4brZhLR09@;LlW5heA-KHsq|D)nK68S!f``6?qCImoDckZ=FXg4C0g!v6`D#x2VZV-<*in}ueml)~;EahwgV0ewX*|iA zDO~|4EnNc1>7md>#7lX{lgHXYEkcFgVinXerwskllvLB{UEdO~9)8cgvc?FXSI6zA z&O}%vN#q)6G`P8ll3Hn7Ut!8xs241w829}Nz3@5}o#^hjIYz)3*H3AdJ%XseHM$(V z9OonYaK>mdn32&gUtXr*6=$3*uI~INJ}53=Gc%CDxk$^va8@le3_V&ImB2#fey-?7 zH_Rqk$5_fXoz!)77dR~nz5H@a2qXt1B8z9b@5wcSt<`1K3Eo);-~AZ$W;JViTDZtw zT6kbWLn^MDnnK*SOp4ie#bu;cnKVjE{qK)?4HhN*s8(;U2V-7&3Gei`C4V^J5pJ|I zw=i?J+1wr2(|An(gpUaG(F}j`!P%#MmY&|)9w9daV~6suE5djFcEDS-QoAU9g7J(* zJ1i;(c3ca;n=G0kfmc08TLoHU;CWkq4 z9tf*f*mw0vTA;pMvqY6D0$4q_y9y^A@bnGTSX(Hkwu4)ELii5*Q}&s1;dg(E4ozXA zc9+u&=1i}2<-+L6Y$_r~Q38xg`jsrM)KRTXPGULVzauz<<2C8y2=$nczq35~h@-f1 z7JKu<T4Z7x=*kY^JFNJ*HrQ zOcMGjhDGCDJI@dE#|&WEdD3`3E^*#T=l6ap3kz$ehD%?PtrwPUGZIKm?21G$tNmWJhrSDa%=~?JpfWMxv|-RNnLW8c z;3b}5rf4k~Ep*@AJktfcSu@;e&;E1F43Niug?2 z4~OuLcVRRHe$xMktFw%YvJKYw2AxYcEDh4#vXpdpcXy|BgRpdmh?IbYq##Row<4W_ zN-2$J-*dj5Z~NPCd++niJ#)?fnu!|77u;hhcdIgXLwg4yUktB8N^a*ngB_k*$KT$H zmq~Xiezte?)p&FnBUXOtL9iT;~ zNSkb>bx4DVoWo>nWq+%~M^h6@spzOiVJZ8A*Sx^?gf|m55?)OykUfaHcoWFu?pb0tQyh{Al15Q9d)s zH#D2{O27{*^()NtJ=%vFr=ssDpO2knwVT!TxLGaPPB$u$J;B^J-#9MMY2uY668v2L zj6*qgAw&dvufSN{q~5nx$x*v3J=n>68d45p*Q4E8?5`-HZ$2d?jBfUZ78Mq<-835B zH2&WBQWgHQ(NkL5-Lmg_C{A(KqYUe>uaw`V!({r+xAuDJ(3|1O&#U;fU%fB;s>>|Q zx0>v!yy8cyJ67ClBA!o1%T|7$e4DxXjw6xgzJcy;@g?Hw>U;0g5go!)laBjU0rhLbM0LoA?6esepHOH?O0r{* zfW)$LqNG~H>OErMenXNgSSp*m>F@nA3>AF!px5Q6)7|p@k>=4CTw|^NACJ$;sY`2xwyXD9@qy{w)ZYTj)*_CY&2!2k ztdq)1HzWhj2C`1tx)%9NDlwWX( zpM~!c(MEt_2vL2eN~if#MbGjUv8VDnGYuGM0NGuMOH@fL8?bPr12*dFF2PAMF~-U25u_Ypi#xT=!fLiJHx}Hl&zWc|I~VeWJd!TU7fg zxxtRVM4M7HR;}#`BJ_w>w$~$Ky{}E36&qFpXLoKi+bWt;`Plj3#4nTB+kTw#+e^$QP{R1#h7O*1 z(J?gKXrWrdzfS)`K?iR38jCze*mx8`PgoK5mr!=I{q4nIPVKg-)wT^7_(nKXN-ai? z&C!~au*zzqh=p(s%tqxfbsdQ_$CytUu6+FE19h>t&10qCDlG6;j0Cka7u%-+1&?XK z6_1qk7CL3iH1?i;s)1*$Ejr?DGBht2+L6rr&qw>MJ>jlP@+8iusn>4Ngl2@gQ8jOZ z3hphPh~z$R#%hLZFEu|fmi`g76h$VKaD`@yrjm^AWAP@Is~_JtO$xU*r8vJgp=F>U zU$~o8^}SN$nZU$>Bt%*L?^%dF&d2Kc@Lw1#Ar1LSjs;nYdIPq1m~6fOpme(%>nEUH zF;xT7<8D&1A$^ES-AUf4g)xPA>6bwglIJ3%y?sBLN!7f=I?%6d03Ety&otgl2)FDf z9eQCu_CCAjgKyZb*D!0W26?b(bTz%1lP}`C7&Gn$V7vq+H}Bg~z3G^~a;@9#Lqy}` z*^5_h(cYY*!h1Xl*0j2k8**?}+(Z!58#v^gY|nSZR}+Xn;G=YX>z_>6H%cviXWst| z!sJ#6Za@{y1GrzQm=r2BXuHBz+UQ1HFs|yjL6`DPf zX>HPR95H>64m@78Ic|7Rj8~-Y*^ixxvAG{EQmh;pSO^}J1;D?rBY)@h*G5=e9)6WG z;rco{HqC0LNIqKG$!bq}GM-XPS<}jCaV1_2RzmfeAy6=bYUGJk7>39fh^<^A-EH%L ziTnbrWdPR6{_8>6?;jH&D>7pERtl<)+5`#L2quU+$jtnqx;(A6F=$Rmc&vsaq_u(4 z*%Y+=lWskXb^pISD&Si&KNwjzOmH6Ds>fm~gE5@#1vqA>{8TO|y29VdndNM#%&}z? z36T9^kt!b58F{sHIx5}~sUzMp6E`(c*)lILC688{Ph^^us?x6DWN~Xkxy*85`k94Q zbYyg-I845JDzXRF%*qB|gYxcdlC#!?N$eOVebqf)U8oXx^L1FHHerwR>+$3T14ucXR-6(Ms8-H*_YeK(~?lGdbn+5tZHIEP-$j@07)l;6i@Dh^KZ zN`tpQV;28tAoZ%%9J=A2f(${ke|8ygcdB_Rm<(GZNsg*xk>cec_#ODYxHYXRDwXTU zUo<#>gMyt1#jF}Cap=nHz+!H^qO-otH#5w6iu8BIAqUO)CraUDxX(<2_0IZlm4SRxT zl7)qC4qS5@hOF`aVi?&Ok<(frz%()Kts_lAHL|!G{Jz%x`7;$Ir3GQS;YW+7=cmw4 zDYcHj$V2NOaYTd_WC_BK-x){JVe~Y0|B1JFkKI*%>|53|#_1cfNYm16Fl);WWC6ZF zhnV{w*-aM`NCgIf$XOy8A}^vdts&AkF6@UhGb}zS;xZSY$vK8P5xwe8HZL+Su6i0B zcLVB`hoG3#_HTv|Nw*!?`#l^luU;PJl1S0!Thg9ay zfoJr%+kdS|DAYXw%1k6U4M1l8l0pdy+@T)rp)d4~ip$XFvlL?i4B3rM=iA}zyz5i*0g_i9t| z)N=5;~Y;d>PMV}R?_P^$?8A2z#`&RJ|8b2^4kjqK= zc0efq>SER7937dN-po*1oJ9r(B(?Eu$SSbB?kZ{d?~pdg1$6VH*$I$^Xpn?N$SiEY!GiKZB}i=x zS{M`Y7UTroet7TF@35)-Qj9s^#BV)6o?~_N(~}?*?$M3M{i_1Td(GAPC)0?)K+CSz z1pf+)2{I2i(JQV0JwJ(yi=%*m*|@!xJ2yAdCFVG5+|_1e$Pm!QO!I)rhdf^H^%smW zcR11H`Lh~6TQRHaVy!xkGl_QnW;CI%snB<^_J2R1XS}Plzs{%%N)+{*Q;Yl89?;w<`8hASx4R~gFe0>aNfwn8$NglQ8 zgPqF1o@i3C<;V@8?K6J>XYvJV98N_HBvF<(84C;=A2LmsTg~83 zDBABL-zkzrN4>@j1C0``k^hrroU?|si9!;0@QsB~MccYWagKbMu*O&<$jS;iyPy{b z`7D(?i><6%U%M@P!!NGBJ#-5dMKL^{xP3M4+nE~d=zH1wVyhE;Jn%*CRP${8@sV-A zjKx0I?djQN@X-B@dZnJW`c@g;%TRnmy{&Hl)Bh`G(Ikf7P>D3re7agKd-pPeo8;+k z{_$veS~^hV>BQ-7@%(bOqdG#o`(Mx6<YC@)n@^qmCtOa=C zxAF^Cy^%C1Vu=NU<=A>2sd5XbnM|id{_CvM1iywv_UJx}}(lXzm#;m=i6#t%_h-4 zo_zX{Htb5c#+)47jC1&QBUp3_W(%xkOuWZD3nj2v6>BBx_Xo3KcMd0V=yw@Dix}4o z3ew{?SpNDg9U8GZLQ}3H>SeV$+xYA7W>qDSCgNg;>Z};4k^esXwb?@dVdu1?`zbF( zNp7|Ma;VK;|8yp!hg4j`wC~9&>QP&>R5EHQ%PX>E7ij{k?7f+{Nagc;e)Roxt$8&n z-M959_W5WwMm>U(_Mcep7$=)2`d@=)j0;Woak~9PM@kYD`t) zQXZn7-Tiy~xz#u4D?JifKuhX%n9Mn0T5r&4r~hRmc|f5KHAOG^c9=*;Q0HFyuOk)Y zlUS&Ob*D=`*9r3r-lPY=;HtIIiPZV>g`l_FgBkwGZDv%;39zAzBV9gvU!qbf>#De16=OTRd9b*`cROx48Xtvi`L@ z`M!+|Nz7qlTz&UG#Dd3vZCf7ol!_BvunzwVH@aV&>G}HSl&*I$5tX{HNP4s9p98}E z{(GD>8TND7!{yONxJ{8|#NVLD^`Fm2R}a#P70(;r9;cQr~Jph&8C;WRae|odlp(lKN{ym#EBWrKptc!vi|Q)Mu|*Y;luP`PkQwW4^phGTY;XP8#Np86oy-|I~3(snn3r*?L=h? zklN2bhYsRQu*1oxd!>1eVsD#;C_gVf#-Vr4Tx572!DpaLeR<(nI?qE{k|Jz$uQ)!@ zec}5`yABuX5tqvJ-aT676ebAPc1S&5*2Jl#h~A7G?APTBb-=02i}c;x@M`a>GCOOG zHuHeDQ2OXzatZF2c#cU)Tg`A{Jj9+C*yU5!+s?vW`cpw$Frx(TDTjMji72jWTxarW zwD?9ElK&)otS=|Qe7YI&HSaV#@A$kyy9qJFI2AaF3Kg}~XM;>A1H-7%2P83Wj8_aR z9@HKoU?)1GFPr&rE{4TZROQ;xNTZ>MXP;5aG}O*ryGnN{fmXSj#YVG(&(Ba%DfxP1 zY&=K+LI2Z1x499a8hzTLQvnQ;E3FMk{gr=!O8xx$%6SPd+v;*8+r z)UG^NMg6(C8p4T)CBKDyx_a@nF#jIFaYWD@(3>kKOy&tRPJubclrJ%BInyK>3x?!C z+>FD@KgVHQee}*|fS~e%Wj_HQelmFrb61oQmpb@yMM^-Tlk(ItF8E_r)SEV!6*VDc#?-)zrig;mpn+j=Ran{ljyX3NJBU%}~7_BkT;axZZi*Lt9+ph}I3 z;GOOWZL0wch<&muvcHmSpKlgpMY{mM-ZB;b%ele!d}Fy;-+Hl&`dY);Tk``#G?A&& zGI3#%zsaqkBH*v=-J$9h$@<4E|3i8k;3R*Ri{G#dlaFyy@& z#4Kfi%L9k%f~k8e>Hq7JIy2#8UIJiQGHkW_9m)g{u+S?mzUIJ>z-Z1fb_G!iN1rtG zN2+bU*Kf$4bo~%qO37HIad$&Os=T&c7u<>c#VErs`gfQ7@C0fQLn=dR`u& z9Q46%p#?#;#$G@EG}4Ut@lF>aNryvvT)g0FD_`^l0GiuWusdGu7Xq=tS$^Dq<(Dr) zln`TI*A!XCC*@QCV+!QV6J$J7S)7QHnekt&2vq-kS(IR!-XG6YPKzBHQ&np6G$!V@ zXFK~DrKD!s%#3NPW*F-Gf~GSG6f8};V_Q6ZesFK33S*V}wi<`zNx(;(TtdsXW`94Y z$a9~vzZF`r-#uo6DI9(-Cx|5htCqx;@G6;t-)~_oNpIdU7yj*H;72u+H2SXXrv6~} zC;qww@>kix!RTDU@|%|ULAsq3@J>}_FoD;Tp%j{#Fz7Qu*2NznW&jb{-SkxZ8d$BF@SPO8D(3^jz5hQ&Cd7mA>_iMkVf+x}rxg zRRW_~0ld<1B}=)Lw#3D%%HYl!WF^ z0`UD=mRgFeEd2r^Y`0MC)euu9{mvtYM!(wHZhsbFRikw(jp%4}Yd&Tfw->!GTdMM! z(gO?+FaXZ$RJ=~+j`sZm>DZCXWn$x%f{S`jd^jy@?H6Kit?st1LCG5-#bXmA0B8_S z8U*9l;Ezr7u?D5()8oog7V9oj6K3Vse?r9v(3c8slmP-`m#(Ti96p7vv(yn9gVj;8 zng42ApPTYp+~ygOKV-i+J-|-1pDwdhVZqXSnMuxCUL*C2ntuE>kd-uBxuWxs3|zoi zm2$qni@|!CR7$PudwFgOk#nc_0J-E5x3nChxb@B8xJAzJsgW)qs3j;UQDgoC5&I)G z3V!9s3dWvwNe61Y2%3*MmEdCr8&Kiez`neKVkJ;{h5lcvzs=92Z5Y$WB;+%Xw zGFw2B&T7b;^zv1DJ_<*s`v8QUeO&8XEE?<}tv`b`zR$okme@&xgvVGP!Bg1Jp*1t2 zf|UnQMX@*btw>>3&I8nbQMh{?LPg}tCl?_vmkKh}LyeRitx;;0awBEneiJ{&H-%a1 z{}rnCn!y#JIRDxFkLSzZ0Fb|Y@AwJY3!8=sd$!I@9~OLU_@tAiVSkI^)DO?&TwTm1 zjk8Iu#K4o`ZtZ(^9A(evhdY9M#=Z_!YX>0P^vaZi&_q9;2dv|{uCinQ)Hi;~zZ>kN z_Seu{U<#B7K`Tmf`MC)252mTiHK_ zkG(>^g6Yk-<0_1j-RP^rz2rTUr8^5Zn6X3@Bs}m%CPk5>N3FAW9_A6gGYQ#cX^Pcm z+QP6|L01cv*_ZQ|U;WBJJD*zfZt%mT0zTCCD^mae<{JF z0EOq5Qz2ZvL#PvC(T3YiDERLvW7LPHR=1K}lWbCEH)NI2Vj+SEx zWA+FW*ZP(eqkx;~7R{S$;2Ui;L9bB0HL~|s$p0FLkYCLR?S5g=XH2;K4Tk0C&5oui zmby8_JNe1CL2qH+do%f5jvx?N& zjt50+v zIQluccWem9FQ_g_szV)PJSi+j)L5I+L3_6zNJzd7k7!d!^ax-xqkz2@0JMcY*m_-S zKarw>c=cf?u{*hrcyudk$zH6aAw*KvaW6wCrZ#GKNSO44B4xXSoDoex{E{0+gYj=m zodeSdLSor0=5!+UeIzh)(iq=p3qbyjynrG0byVatd$q6r?~w*ZQQimtJiy8MvZkjv z3gmAzz+Uh1##aZ~FS6*+u%NA@yOU$CysLj@C2>ToqSSTm0VSXc-fveVWmiOw@Qp>Z z5rV#eitC`&c^GIPcjn^d@#b1be=Oy&m~2n*)<@xPlC$FS0!AzMpSj%S2*-tlWxN@X zEi1&qz_14}hkb+J7fGtp7K`L7&QF37CB8}t@$<8VS~`a%mUDe{3HyFEGU80=HkW9~ z{M00AG2zgGA2yI*l)C7@a1w-mO$Fwig{$mnj=h+W|K;zb#K zm`|a&55-{P4oGGcqX?>>iFCt-HBbs(LlHK54Md}VdV8uT+ZxM_j5 zLbiQ|-T8digQ7@y?1NaM^<-lBa}hXSubhQdO1J4vvX6#2?h1Mc<&7s8Rp|cV4d^m} z!d^`SJqAR#mEEvkZvrL3@hv0?g?XnF* z9xt!hNX{k&`O=jLEINWYjkl9MyFz&FUy9<0SJ`ysx<}ix%X0ITp^YtC&Dfilt(blR zGO#d&sA#3B1!R5%N#iv5eT!_tDttniGsQM%uicIh@8JD{!{dVs;#uWwWxptmRYBT+ zPrxoY?{C4f%3@NCu~a8ti}2S8Hw5(C^m~XvQ<84=pk7WnkR<>=o6$?FP%&~+Dd(W(1m$!55!njqs$D`rshon!q^4MZz5gHRpG~VZH zgAX7goFFqicAEq@fB^p`qtWkcx|;W+Kk7??vA#TP@kS&y0^B2XT~+T3 z;uP=&KbHSIssX7yY+>YrZD60=)zy2=uc^7zUvEJ3{=&|t+4<(#hn6KarI{osXSVBW zBA2ay@u9p%7r261V%%fYlTV?O8sSZ&rG2=93TBUE0;L9#eKv9`3YQ6|{|1`~R_MN$ zMn>XTuA{>ljS42*XH%Yg_m?E?4m6@W={kmDpRWkdY||9!lVmM`}l|0Z7~{JY7w8l~AYx4vD%n|il7Qzvn;)>dq9negiM z_@S^7BzGV0MTN5#up-24{HmCEmu=)o?b^911|MZKvT%3PEeR?!9>;e=$JND*vmnlo zbyGo}C>X1^Jf?J;e8~(Gb0(KwsvXFpz);TCDFj1jKY4q}BRdRF_I0|XKRHd|!#dwq zhPWB*;4YNByiLZpWMu2{s1%~#V5M$F=UO}!Y5fS3A{OWJM}A($0ao@g?m6{u{a*zm z0h*|(>n}^=4XZ4*m6w`Br!j7%n1v^l9Pn z6v}^AP6z({P3biK%zUJ~s?K;qK5|dc5#o+iPA^*~OHqh(6OIz;zQzu8EGi) zg5$7}vog(Vz)bah|HYE-=au8)^=f7zP7PKkah_cNLbYu zp)4m#gn%WiPSd%9;veL(VQC81@*noz_p;6hmx2EfRZ` zGScVU@Lg8FSp{R%RJQGEz!CprOmybxPU1OAau5U(x{Wdy!3!h9kt)_p^>ZfO1`Gpw z0(31DvIGI~HabReFCJrC=HW~PgfattGwgACB5@f`U7gzYav;|fIS^@N@+nSz4CY9w z29UX&b6pa&X3f2V;#iClG;*8&nS4FCs9>$W$#2CQ*B^8g-;aqRI47vr#wtp+{YVtnavY=)>(c#v&g|uPJ)2=jz7;uLKSg>&S)slpzFW8NHD_=XZc|KcE|ju zNdVKYDS?ocl;E#OSN?)IuK6h7zrYDd)NR2=${4xh=te_i*y8syv$u=#6xm+jG}co$h7{8}J5n6WDO2|FU&1zH>LN>q30ZL` ze;)gEs*2u32S!<>TVY4H=o5la2rQ5_r6>WJrVyb3orq6KVtKNPF1{%|4=VIC#>||t zm#f*wAb$_!gokh@;OGBSrWCON`QjjjA9sTO3ENj`zQMl=xa5NNaRb!R!u8ZDWW;jl zVode9nkB|QiuM}K8JuGOLtRH;+pK@gf^37f_7k=Y1;H0g6t36$V#f9qm>lfZUQp(P zgELJsCkRFq%$k-?L-;D#*Uj;H?`5C{+UNii>K-U>Axlt7I6r{{u86GSvNwEKCo7RL zlaoVebI*=;0TO&m|Ip*of>mO#@vC_KLl+7Wh~q`SXPQp9t^J!HD=3C~AZIV-WZy)r z*7KWK;#j?EWCvHCc}*c6ar#-+hPu)+mQ7`=$INRKyRIg30YAo3vFZG#s;9OqFqQ4& z8))80kC??RRG+hBj@>z14Lp3O9QQGnuOl7`@%c&`_1VUj&6W)|2LeX(4Wb7%bewxL zO=@ci9~)8KGNA$7vFhrh*XE;osPD7TX!2xLgwZx}Zg1}tRNjgc8+XTW2C7WrZG@K| zRzef!JD&4jJ9N3*bSoNgLkbCqgnn?M&v3#Jn_gM~Rc zVyAY3gBXyx*6KuD*7s=lMxxVVSUajrUBF5IXYTo~FrsCoR)4XHJO9M?-(WH+Jhh(~ zNxvsmuU9gZ!Njb^LW}{ls%aUHiRwn%7z=b!dNHduLEh-`1SY!Jm*f?^VOKsII$7m- zq%|CBz2<+YIj^Z3aLnBJgyItz!@%rB2wtEhSXEQrx>U=cHNh?|+U$eTQS5GvUf{ZN zwdh6t6Pb?C9)o)7ET%XC**Ox>otz$TWH0|K_vsBzM@o`+()rtvD`7wW7|*k?21BEK zoXqFMWI>edWv?b%W`+x*8uGQ*=a=awX}t;_a&98G1m2QGUFoW1(z}oH%gKrlW`2GsG!!&Q z#m}>#x7v%WQBCaqbcHQNNvu>mj{Z4D&MiCsi;a@BBW%_vI;!ML+=phx`Z9ODA=rJy zhtg>MIRKVu(!`<8P~{R~O8Tk{iyLWfeq@VD50O&Fe!i{{|2jqJeNyOfz{8T{(I=db z#l`fx4#2_4$MmNsYN0o|U9q>d4cCZcV#Z_8CT4TkU+62`IoKL@Vx7rIwatEt-1ecs^>ye=2E8Z zkk?9DtbJ^`)$D}qIVc4R`62yDNQn#x)fnf_PZmVXxaRm|>S6NouhQ3m00XLR7! zGW1d`vj0(B=k)m=GL>huNV+dFU6 zdQq?pHQ*BBsaVF}jnp%e=0)4390Fg4v-b~KMJeePk=Tt>=F>VHx*gM=SnoPu&fwnO zcxZnqHGUnqy7AJEG0Y%;4Sf@bp@0SV$r$71w_CATTIvt_jJIXjtW>5YG z2R@z_Te^~zY@2IQYZ;_{(>>>ezittJuV~aMs+#hr8G220rNy$8UQ^@^u+(GV@`|Ul z%5O;6GLJrnE)0(JY%7j+C2{y5z7bEP66|p{oqb0x-U7{-${X-^|VbEfGpy8`5mpJo4kB(!+y73Fr0p$o_^EFcl zA!uv+@7S8*SW9d}R2o5YJbwR&wNfA*;Fj7ENfsLR=JXwGp>j7p8DZc67Unw>w@$C7kAOl4D=ja;NzT|O{sjEkL$y|R7ef89Xf0aR$>+~xn7 z*;>!YAXyPQ`kRKV$&L@O!11ScUz`_gWe6jNr9`%()DcA+?yQ$Xakct;ZWPT90MsDv z1QKL94&*u@_Ipc=u`CA?CSyA|$SifwGO#K#Ch7kD{;R2#IIYh>CV^gI4Ie2jol z3M|KfaH|CV)#|%(W(b)Vdk|(a>Wh7~3^hUkMEYH=}p1!{T z&%%g)G8)psLFLNMx9RiEYxvb}oXBG)>Ld2FH@%`7q!v?_+w?19<$GhqD@Lk7xw0T> zIage^xkw^ZErH{&lo`l@nX#vrIXcM4sm@A*PKg(v({#*OVTG@$c?FrA;HJHY(UiYD z;$N&sT)r3^;tk0f;)MYIdi^?hadfVbLQF!UzqFKF$8FBSE?E8(kd0NoO0dI6v&IP2 zl~%&|JfRe%nsPV5&b-UPZG|rwJw*@Of+_Qtiv%SjgavCR=;d{$<`|`3!;gmgK1~TS zZHTjfd*|~2>t`8+#UF#zu8@wGv7gvN&%+3}V zdUA*6z*_bXYl>RcBIKkb<*j^dHBo#@7`KU6G3xY2k*;Drby!|vF`kEysBJP5zf)nn zqGV;(MN~@RRPn2p9(W{!afByn`8rWQ{IGl?i6>m3D|v)UGkKumEKAekfEs?G$@;LzD6KNTSG$*j9@2dwRdq4A31!%kr!fr7;mr|w=Cf)dV-heX9@1QjMfKz!HlIBC znxt;`Bd;qT&v&}s*GMg5Sl@oA7)iDu(6Ef(+Y7Di`rs{{Tp1glb7c=IgSB_gs_l2g z;2*xjL#3o}VW8R*L?|yyN1`{;Gsw*4yddH&HkE5z{mA{!SC%my84)XvS&*xlP13oj z3Kkm|k)_!r<1Xdyx+-2v1vQ2+X(NkPVLwlXo>*Zv0!oh%qjo(h+IF;mr+s za$$OHXj*$&l&C{SOEl|{;7ZzN>l}-uAeJer1Ng4;>-N)7Nw7WPYb~v+{5K?weD%K3 z^v0+d;qZ0AKj^R-SRU8{!zQfME(wn%W?09gPW8>3={IT(dF!IJMJ6vygG}V+=ijb+ z?>T%-r3OD752qlKcT_(az;UR9)|+HN9FcC_e_ z+l?~f2|ywTJhmDO04nc|g1nxA0|Ys=4H0IbB@qe>0rPQ2>;Lj=VX_!UoYpPDypMV>zD&^qmmsGFGS{{34XBh@8pii;;gFc>%t5G7p3AC+iLe8X}@a&tCltEI|!Tu~h zZfdHOFc7MHUvDIOG}>xYGvqx6=|xTS=T?GsaE}lgd!32caAo}J{KclSVnZyV1xxCi z79UWDfu$VVi|p)AULG;m_^?OYLR{n7e9YM4nyzLXv(WzVpD4cV>V(d4HtFAl-ZI#% zVB1jh4llw`fY0{6=TDkd)`$w+e#{=efx?k2Tu0m$>Cp#*v@9_fPXV3 zB^nDWO=M04KXg8(DUvcK@*ADBD5OzkU4n=P%F7`YFc~m&CZ-&cZjToFP??HFa{a zanjn~q7J42o6wo94{PPruH1tO5>lK&D4%->|8OAT%6Q4dSjZSUO4J?oG!Ltp&iH-HMR;NF(J|&~iK|0@8 z@>t-Aqv=qyNXqVCXo-nO8Y3(J_Yp^PN%2LqMp?-7nroDb`foH{)V9E%hJs>2Nbn$y zb(bCA%a$WbgDd4kDixTuV03XW`U7;o!;BFj&bBGiAzInuq9g+{ah0{Mb$0^odt^eQ zounc*B=9BAFUTyF`cYisX=MmGxt-hzOQj0)CS$L7N?IoA5riDl?)6nw_3s&M)3C?X z!WDwU`Iy<|;Mo%?`#7m>_2%l5?3 zrb%G7?6(awW7)X3x}oq^YF~;X8=&`C>3-o;nv}eoO-C(LyB0jcY9r@gVWMEZH~4m12n&iG@UH;C zR|jvP2u2Isbhl|?tba&qfSYrjnQvH(dtHcmk&$t0L3#v1?^h6i#K7*zPH^7HYT72l zrx5~1%I`OOy<s@8ghL#7z``UG*`n~fZzV+NXYif(a+Tx=*{pcCyzALKTjK4d`6^crtLBo z5+?rsDD?$H-b044(T4c#qn_uFPHfsoj`{>z0t0e}3BA!url@EajgQ?`2Qaxqhetqu=3;U<8 z?*>O86Q5uo{hC=Wd880ZJ)!^AVHJ12BkP!ZkL=dGgoNTEec+B{rZotiXa##4b&I$- zi!1l?(;x5AY;@s56O-<`mRBk|l-tx;T5PJP(c@^@e5yl2up1~do4Zx*0qIT@bK_Vt zf1prYNcFoNTrVzBrHKi6K7(CGG!(l|FXvC;8H|>m%d_^Cb;f!+y zwy0qtF`pKlJ*gRG8RVwu3~gAVKD;c{<&dG)!dPR8BM9sXIphP;%Li03a`Y;MD1mb^ zY7}X&MYVOR$j)|%){45@dDAiN3uP&k@$-h3p)!EBW%O~{u z%P(9A|Aq_4?n4=M_r#-^u?R;hdhjH%qt}lPnr$uK`0pc^i=y>K_NvGN(j{;Y>=M`& z`|~(`FYiZ;9A<6D4|e{{-KZopv3UN9kTn29tu2H?b+~)!`u%FSfgeU+%uWQ?=kP8C z`%*)lt7_mCsy05?BkFh;%x+f;@^>MwT2X00Yz2Der~qxfrVCZPVF5=fBiAT!f@9?> zmc4ngB)jTKWb-R!m0m+&tI@ZSN!cwG-BGu=#yhOl$~Emwv{aEwdnF8;FYt0lhF4y5 zDxzF2cqwsG;6Fv#I5@i8Z@LPBFy!^r6Da2={ogtdSUT7pg$30)5_jq4hk>#0v;pqt z4k7`#=1l9=qzt@hUWP+H7?&m>X(V;fvP>5$@tYaHnO6 zXqnA}cSEsniQ#Yyn7Omx?nLmjmW7c#t`W61#V7R15A!Z}L<|$HBLa31OmSRrE}|^3d}sZo|0= zvnIgg1x|EdNIVybGt`ArsWI-H1BubeQ>nn&=uk36F@0>AMd&HO2l~Da?=z5Nc_;6# zIC3fN&6{DNB|hM3t(|B>eWo9t)1Km*n57CCSC^T!A+e9eV5*rDnX`CdtFpwGA5|i&j5X;T z^$)|i<6`7X5`1QWj2f@pDpuX7y!73Bg~$#|U~S}46Gm*DWj?v|$Vii{&8G=#CDjuc zJ>fdZB;h}rbTcxgMa0s>p&&VOI{l(mhN9rGvK(dI&6>P6SxkKKYZi|kpO(!}0e4mv zmoOp=cbN!)3P!kweTA?r_7uesj|`W!#-!uRpp5K<_8k0u){*yV5!!D9g$*<_waf^S zd+4BF9T{KMp57VA>+^TsmO^kd*YeCLRMK7HEo zSw_uYYg2cY(v`QYm(uT{6MHAjfQ#?h2~T(|8jg?3GA0jf5z9C=C5)lP-Z7-UQZ+ED zO8EG5PfzA#<0v!JEh}4n%@5?Fw=hnN=%)W9>i+Trg>-cn#>a$8UixwrTSG6|6L&Rr ze%918P||YokdNzq(uD-r7BS%;Z5bWIat@w#@??8d&rzUKBSCw0uWFy_{R6qP%b2qG z72jrgRVDftXizA&2vK4*y(S7qtgBCSS6M>A$0A#|$_QVI@pASMNRUWW8=={<2!>>Y&Kg7?tGD{K+V0L>QbtpZ zBjHhwvo#mefKR_c-Q6t=ytM;!ta$mznXrz5lyw9EV&IYZ!Nw{Nl5Ck5=RZk)o=`iv zx^1a~*lOjpUJbnvnx;jK>8jZ0zjRC~CHw}-bU8_&z^l=~AjkYr>#v-=8rUv;;p3g0 z62H3_b4nY@qM~Y*K@4Mao}Ytw{|{N`{2u2UzUc{OV%xUuG`7(=jh)7}-AruTb{gAB zW3;gwyJ@=f*<*j${qDao?;Ov2zt4T0=Oqv@CJ07VVTRm<`TqG$os9vx3A1S$^QcUT z;10gXim%2LFm?%Edrn|Qi0NK6Wn}U{#Qmdy=%cx+d3Ev+AKB@U#GGO`uMXDM17d)saje=){q%rYRt(=MNM40TArfP$w@?S!ynRp@04 zsPh^82Z7$8Wr(sM3}!kVo(|qGR%&{kFS$0&wk4pF85_c>1zQhq3+UaLLc9_Y4s&1$ zj8vLX!#AXps#|8~91$+hu}>6S*08f#X@Xu)cIg5eV6kk6WfRMgbF|WtrNWfmeTKFe zMuPXhLaps{-2BYv6DHDKCcC7xCZOy%#5z7`XyP))O$C#?&NAOZPWu3R zn4Q+c$)n%Gv1@1eUb$NgEYEEg`i=2EP@F@L5KEV{cJUDC=7`dn@L|hSQc=>cXu}Tu zXm2x@G~7ZfVmjiCq~I-zK$0-CvJ+FEaC7wsf~C{ilkp`nX2wj>gTBVc#b|2vLN1XE zJ0#p&`u=wbaP;JFc!X;UMqFOgw$^~RH>6+)uNKB+FTB+3Fl?qQBH>;Oe-66JE{D=T zhBYDzVz*n5ko|LrEoRDSBT#y~H8M@G$xmHz&;}wm2ILZ5aw!BeiItZ_EMJjY1^ zZLrjgP34_Y=Hkz9&yZT~hU+7Ka5OnU(WT)+C5vbVaTOdE0yaZKv$!a&=isA)C^WG; z`6NP=q3X5d2icp;!{c_~MUh+&RFFNS(j*zCx8Di=h0nbR-4yhHj}A;V=_i-g1r!WS zz#60>Kyh^lMPmS? z9VyBKkdts9of99*_ThAmSiKHHXA(0 z>Lty>D$SpZ6L%6t9{HahQXs*V<;z?IY3V)twXkc_++AD%<0-|Fh$P`U#GA9SB2acB zQ5YgSid*p@Jg-!1g~<-u>h!Ki)p}=z7$KJCvlKq`y0T!?wHq2Ivd8sRuz!9xPWT%} zCAK~HPG>gu=>xptGFOW|HMToTK9eG0sf)4e9*K|mq7h6q0oQe+zl$QJEHj&{2N|TL z{@!W*QnB_wkGBZ}uI0uTr5ov}t z1Q_;)(gt2I{sig{qMDh+u~zy^z1Gd^qFx#DkvDQ%URll+Y*{1}Z}E z!(+-I7`=gF;`aLL8e*;7u#r7{R1*pkEF3&i5F5J%thR|D#d9jN^LaSHXo?+CjcX?7 z0QFwqPJonv&>12+GC8kvt42djimd7zqRRWl4~|^e`B!z$3@y|u#w0-$w zKd($|0Jq1PnTI;UQm^KQsISLIHre(K+CKDZCA40FhxTBF{EY-8 z3N_RVI^5QavmlnJX{v9{g%()n(46S)QU^DroRSqPzoQqIn?mI$YUK{l%%D)R{M8IC zgnuEQ0$B&qS=tJhwRRPUbE*)gvv43AlBj%J;`SIbCL<6O_kV;PNBO~^j3JN6ubvM=O=zvxLQ;`p;Gg8h z5g%Vds7U!YfTd9locb8N!9GNh7;Sw&MR*1`=O?%IzWh=c<{W^jKnhRRh`WLBr^MU~ zcFIjj$sHE{gEp|q7oEovrSTqC6mloaP7iSmaM)WBcQUJWae{*m_0-5&(FKC!pL+isnVJ(CKwJ4{F06y zFQkj{p6C_$O3jD;&E5GJp93O8gUBTR#}{D}Ey`}VQx4dQ3`ZvMVqjNDsE9qt`GD_l zX~?$5xZ#cnRo-y`Ol(|y-mJ32%AN@RCXDTZTRZ4`w2N4ws<`^h*zAk;0R9XN!j*bJ zwa&rct+%L_7QCnFbvarT5Aq?%;azeUamjRf@zT{Ct%3~J9>N-u#GPKRVr}_SX5OPP z4*HbAtev6Lnw;U5iVj&UpuQU>9a5&is72{_vaO5ip5RIjR0PNKyjVOCKJqOS`S1&t zmD2ouF7FQy>;Cp_p_dWQV1 zAQE5ynSoFGNt)e_cjyzGWw=4lIa+flt|zY=SVB*M2vdrc#+HPcId5h%1J+U|vrBKx zfwB(iFLP0l;=f`{^*~LtNe5<+DD)0I2xEttc{%!FFo&x6l-S7uNn?E{D*mJX-~8uG zOgo0b>F|%If5`0mlKGi?lK|=T*EYp)a?JN9_{>3*;)z+U@zv6KeBQ69%na?fUTybn zL*aV9on2udfA;1dX*xO{3MyssyMS9;jNOBj^*?=zeR$NqySoF}n>P}w481WQ@hdkp zBSMXHqf(aux^=uM*v_GW6f#9O2I2X|U+KqEV)n)MQ8C6hXu;Gm-5AsE%#<`1DP5h4 z6XIBZojANaDftycRiG(3sj&|xUx}Du0x0CmwBOG^iczO^)4t$A46XQh!;=JD_XUj+ z#7AN_1Mg&N@jft_Z_m^X)K($k86LIYXbMVdQ&~QdpR7jr?}mME&(qPrXlF~L$3E-V54RV8fI(sCiEqb=YY&q5|=7p__HlbwNy z^nirgY}WF{Am7!QVmDcDtLAmK&TL!A*ZaE*CYRzu)6jnn1P*_5G_G1O+cw^{HljHr z(^E-HLsK-~c(gk&j(Z%xoXIt|KDOz#+cgz+&>h+A0e2WDqRRPO?+~o4sVo%=m9oSh zj3z!#t^wQXF67+jL_1#4q+z!m5Gt~9`Ky{?4J!l7|1)9 z5HGK;o`ThEbR_Cvl7z+tQ>!nEA!|`^N+h9ZaSjkx8NDX@)u4N^P$-yvIk7Mom7Yk+ z@y%cI)u0l&o)PXV$}#vTCbv=CT$*eN(8AmLqvBr-VQE=CO8SL<>by$ymfMxX4fG(T zrdR|_Um0j`E0X4q>^A=Y47VpR*aDvYQVP}l?RjZsSiar0BHXszxeckz;4MLYs`I~O z{_fcHW18?2i!cj|FmvONo$aAnWTBl|NcU4kMp;`2PA;$LXU{<1?qepF9c7)&bH79E zO{sAEY}+lk?rs?@IqTE{^XQ)LMFk!f;OQW1dj~Gpi-Z14m#Hnv9|YIuQ+CfM>gI6J zibSFll{XbFmN})(0uZ%bKX7l#lJ?cEyxz>eKHWc^5c(@-Xkhw>dNwW7qcZknYvDhV zykU{=e!?KNtM6@o%5fYq^qF0tPoMOr1& zMu1CNLK-BbR9k4xiyOq@2KvluFKUp`iceANS*PQPas|DS0_22EtOFasN;CKo=(6D; zxj)3;77;R9q&-EGYZsn=n$>3Fj*+LBO{Lb^&yGxET*gINQ?qVRs_kB zU~KRD7J$Rs1}bX(E+V6Z3hMsp#xC67$rR3pwkkB_#l$7LWO6Ke^Z?i?>l{QdcAQ**kNYG&@)KC+1G7=%kIsC!1 z@bw(6*hm+88~CP`MX67JE;glMOX7RzMS|y4rwN+|Ec4eEh8&jVB}3zCWS21H4EW4-af8$vc;pgJil_yT( zR~O2fjma2}Xk6fTdQUGqx=Pxw?RlXwGi2b>>{1~76rR@7$<}-AAu_1i>$v&$2+Fd% zHb*6^q~?GvL{%Z&?Fe6XRAN>_1FnoiZJ`Tg-I#qYh20h5OB#@WN z@ng9kT^Hk&?uOJGI5oVsJZ*1sjPHsoXMzmYQkPhm<;q?t;C`Wj%j(HqpvJl~WzAP7 zeL#8RY@Do>_J#LBRt+u%i^7a137SOU|LWGkH z7y4C8ZSmLY(06M8D}FAdGlM3kAX$o=@Z&4pyPqm0sbHV_8(@(!JlzzLm{QahY2QgC zN1{oF2QS*1kPxP;K#oE#ROH}JFU?&(eva+>Dn(*I)oAZMt{EqZ)SwpaJu(ERTQe~Q za^{5{6JsiFR$1W}>Wr1byV2{UwcI^J*PoZkg|N6MlaR?p6+WFiR1rm#o_+~6dZ9%Pu0VN{l~7Ne zc9l9=YGq(*LqcAIVKCMec8uQalYh60S_;B(P>j&j)I{G+5T|v(e+AgMqw};CJfxq3C*Due=u(= z>6|l4meZlMW84OSOZ~7?%crkts-)l(lbJwx>N1J<7;K!ZAKe?K~83+`ZmF)bXPK4 zUt4^9B*)gcsW=&Axrsa}0AzI1PHqtky{FQ`iin|SV0!8h2Ly0563!IiOrYba4n;Yh znaEFFFKc!w1Q4KTV0H>FkEmePs+9OFZEGa+ceUDB_Es7kt3e7E;5&%iHxB=+XP9jH zd?2*cM1^A9=Jz(Sn~;NIWJPl<0NvqwoHJeqSMfDmVE34;={uj8m+P}g@q#AZLf0bnqr8SX@`+;4UQ<` zr50dsD8d?$yYjbOZb5Y&LZ6bqnY%wy$bP9P;V2X(zu`+4) zCT;^p$6ETTV*08`dqQrVM+y{nHoq@OFhXGq)zyo_EW3Z8lQ{1M!cI(Fu(WW?x^e2$ zASnJdYs3{V)PDVweuei|brmVwH#EIOA@+knVNY?-6`1 zYEmpK{8AH>zSp}oDvA+S4VX6wNn4f1loZ9}wac$^Hs6JTiD6SG1j4n}V>CdLyfZ)~ zKTO=miBX_KQH!;WAl_f0XtnUxK+!@ie{q|BIeo z4zpWKBJnMjMBf4z*A6?mma86t#bdd?_ySJWs1wAArQz_^23+#r|8udBFRg)uY6%Qs zCap=^-bkiI6GYh#;iaHcaoC?5c^VfXFO4P|egLG}lVyPqUkH3o`brJzwl=Y>q*s;u zI89Z$OA5aptb-C347j^<5U%C^TtzRZz#vC2$wDK}D&+ke!~&iF6XPC>T88?G2TIFj zo{m|Yqw%>Z+&zVxZa+hZks|uY3irSZN0+`DQq@eydi87VT~!XD>8_c>jU!}G^A=!4 z1ap9_t!dy9Z4{o3ie7}?n4N75X2VE<{xw55h0#1CpUWj=JngqeF2P|kZF}>Ij?NVN zDq%+d?y4r-*kloR=W|dBWv4G;MORjqIUJ%I+TZ2o#0zZT|FYn}@MLv*v1D@wOHl5o zDKVH_ryJ`6l$O^95KrGxo1YU$R~h#fi)1vQw>`LpcrRiIlWJv{2uQ#C=f?6*R^rX) zrEDZVX?K0jg`}hyuOX^kssGkoXhWTX5}@mMzQ){Cj+kDCu#r)izvI8-bz4@q=Z)0$ z;FHCAq&uH8w7t`$@1AA8KK&hsTwIH>Rv?(kD}T{3&B`hbuEbQAM=e&=n*#h?j9Dtf z{n;xV1$|dsvKD!e#rEPFE%AnvF>Px_EF7kV_oIKZHTd0*_?FUu3 zgGy>l*hNwY8fQoyY5=n!^7co&UeMMy|QTuJYX!jFxDNIsYcn0oxL82S2E z+0zfpp3Fg zUaU(+!9?vtlvXmjp2Bi%@RTXfFA0NO4)i!48<-GwH|i$tfnV#W)BjKeNlgSGa_Jjh z-N{Q*YfsGgyA=5P00)nXbAIzAF{7?X&x^ZmhM&PV^dk*Ba|!nRpeiH7n6!m= z(2Co6XZN7>3*M);y)S%TFJ9agkzrx`3eqTCj`R*F6;(N9RXsSb+%ChSOqG*^aCcQ_ zVu(rPiWt%D3yof>n(V>bFlyEz)OcNumHlN)y4@6}q|PDX!IHIvJnW$KE-isn@?RKQ zZKxPWEuXbGM}Gr9ss@jZxmyV{dydZC)dPtr>dRcsG}N->jU)u*q{OuYyPTjC5b+AN zf*JSJl8I^ok-XWv%w5ZJ%S=DXj-{XcVMW4I`rFE|M)cNqU2tEzESjk1L)Fyq)uyDQ zAHhGWNHjjqKql@`GaPP%?1TCu*6C_`EYHHFd$?%PSuBHs+!(cKII<9y4C*mrb>ih#?XqOijFL`+F9(y<>I? zMCpYAa|Le-R;uFUZ6&=;a2^lpvlRe1TuY#Z0K3-MLK}0l8SHm(hvWHyZ48gg3JHY$ zfke=Mq^9}8s*@6+Cn%0khwzOc#fYbsr&V`Dnx)N2ZB5@$X<^OCA$-}*Y3p;x55!cy zMt#czdl>E7!gL%TJ28@XOa$C-`Vh#dumGSc$pM9BO4_l(^#>V$JrUCSBbSBeb<8j> z(fGU;Vg)TX{O(gT5f8Nnk>5(6m@q?u0z>5`w&bLLVTKVR;i5G1wx}(v;JVy!5EDtidDE!+;^%n+~|F2t{pzrUk1nC%0dxE$^}zdxF5ROjE$w8G}erjrwFcf!8xJihsVMC zlclYSH&p*5YP~ThJmjI2Jy%10m~os#6M{(X3oy|fn7f9AMKL9=vLmguyvEH$5x#OK z@Q~Wp9F3&Ls01-iY3SEea)Oe5Z%os&>%XW(hu%U?o9grXg0}l%NgK2>mn6$|nw}b4ROg!Y1Ut~Xf zA{P$ifF}5w6o4s|EkKklcrM_bqq|Y%i;fJR#LJ61%~FdkTw?Q*{oqQXR>ps(+oLPl zc!bG8KtNI1<_M$MQ2u+`Sx86CC!)QE=@2jEtS7x7yq8d`9YNQy0&_E~;Z)qA(-HD& z>v{S=ok#P_9i&vsk^}8r5c|O24vz&mwWA2+s#@3RZ+yMOX*X)jos->ZkjjL}l}O z32CrvQePakAvO+k8*=UCU&BdL;MkKd_#>LRESOu2qxz`(ICNV9%nT)mU_nAYCidpi ze1_$RH0J-ebH`E|Tgn^P&5fC6wXiy@aromS5oyCP;uZHI)9wc{XE;B!^U7snvQg&0 zC7R;So`T+&{jy{`j3HOG9gILN&83Ifr}l@Y7Rc7*9|ZRCm|dBS59d^cc|o@^xVX?a ztItU7g<@2zVNHQ~19G4W-_KIS(Y!c8a+o~Bmst?C6zKxh&*TrkX%^jYU8>FeF*o{Z zNg#O&_=n3CZrD;F+ZTo=3FQHyb?j574EA#*uiz2mjbpvW@$|0mt zX7-!1QGbL88e}>Y8Pac_SvW7-E5sK?$#iXahoKMQ_YJ2|Q529T^FP)y_(_qOSZKno za%I)@d|nfh$fFrB(^HO;SnkY{IH|oOuN?iKwja@|iDT|ICFCu|zbfxSfwj?3p(g?r zvZ%+_{%FKq0OTG*$&dt31t2Xg-^I|NzP>|J+=VPrnwjJ1eGt}a5ZDii&%x7?V8JPu z{M3pm1nI0SU>tuzcm@tZ9SlYzt#Zkjbqd6bZ-_lux1LyZ9OgAZtR4HP1NR*7_k2Z8 z0wX+^4q1f0SK+B@OsZ~fcn2T8sK2Cw{@etA452M)`i^_s)-F(VE8|bZu_53kYbAkp zB1bWsw9WiutyDgnm<2Cp3li|dn&hV)wgkD-iTIh*<15Fv+zfOf@$*fv7$a~|(rU3| z?%thbMoGsGF;r)&_7Aiuh|cjgBF5&BEA)c)4`JH*1`plyr0AG!=qpX;918kO>~hzZ!gAS$+mvhBn_dxuv9AhHLr z6*PwNnY>N@`<^$Rzxj)oqDUX?`AGHmCB7Nb@j$h+vfzO%2C->?g86BB@F8=zYuBJ~ zs9-mz*>6xyFg>IOg+U#>Ez%7e$QDoITn9LU@&_R7r0l@|ypyK}1g(v$LcFLEPZ+<_ zVB~Wp+2Q-a=Oe&RhLl70C>V(YpclL;1Q$seT28&&3|u$EGJD5s^NMaMV-pHC_qZ<+ z_Jq-%=njDWcTr+DZD7~KhF-4Tu?55ic?&HeEPfM;YMEd)7hUMjab(iKLfLUSqk1a#4yq1nUSX*?Ob}5^99f5JJsg-bX0hvr zw(Xe{5g~YwbJ)sG($K2%!v6oEMCMY2Cev;cw7)Oa-X~dTB)2HVG~k1#={8BC?}+FS zrINy!hz5j0u=4?^h!#=)lmg@eCsDeIeYf|TEffh)RoahG|eJ&aJ=S5WXA4Wo5dp$orwLa}Xw3q|<;tbF%@T99(rPOJC zw;y&2nW5sE62q=VjjiP24w-{pa=Ho%CP~e$kx5lqUh%(nvqA42pZlIrrRJrsy+2`y zLQ!J5hTlTY;XT2ic)rFJ#;j$CD3tu0*cOYH#zaQ)3I<0L6aXbYeeZC9Z(Cu_8R26i z!NkI@>JrQBn8e{2$Hu{qHY(^^Wx?xVcu7b?f^I^|(x!cRdvs!A)Ywo9Pf6vF(ijpp z`8v6b&?%!zUg(>Z-(&C+a`Cd=_C8(dui2P(M2{fkoD=9Q^9%F;B}os?;Sq$&6(?zP zS?R0!<8BDWi!9i=gH3P`o^f|!|Mp`<;~I8j{Uwku4Y5HQ_=Gh9TYPOzj$%PXTlTTE#LA3cNz7(ed_=2K|vp_>XDe?_c&j(Z#=d)y)#w$=WX?Z!DV2ct?8KGi(%ew9xe#nD6^>(it!*YUyJS=#0%{f`Y!^ zV3U(VWd^HB4&ZR~?RzOdmJ%kr(pp z;Q$KR%`gAlMv0soS8m-bB|4r0b$w~F=|;%T_3Zdz!I-qZQa;|6rTfXujitKtS`nNo zODN~c{8_g3oVS=p)im8&@fmJ0naswQ>X0oa+8^rjICjmnAKaWgYpVL^B$5CfS%qsA z<^>Ke%sy_9X5HGt*dIK_ACY3rvhtKDOZz`}tImzZog9HDy@c>wx092Y$3{}TWaxfK zAQn{SviQodw7TQwvLO(mA`i}``{U5!h*8>6T~0RFT|ZN^0BM2pD&GRO2`9dUeut^WqrYC@N~?x!QtXVQ^vKEcmV;zUD?jL_5=Y5{2NBBTlz{FKLCzq&#CC_DjOi zeqmkc;FSPQxTTo*{WpqZn+W9&b8hS7Z)6t+8?4I%3~>#0lRo(T_Bm7hS3rSmo26@! zzrUj8Oe*yX4s|LyG}gRq44xTzK`d&VHf~n+6hRfUx^Y!;i-NL|d0BmSb9XE;tWxG= zTo|?IuEmdZbiltvbO&{MXtMOWp zJY;cqB$0acV1NS&f*cjuA}d^nIJ^|1xe_UCF-$au5dSh6)F&BdDWcKFTjI$5V1NIM zY&6IYxd$@APt~lYiiC7q?&+72TAGiB-mdGhrvZBV!mgop7sUHC&T$6R0VjyMhBT8# zO%1C>;|}8P=B=sd50Sb(qs`%?agI1?{;68M+MnN;wcWylZZ&91;yWk$L+yUuvXqLktxcqq(}ntl&~6B7-teB)5Mrgy9b6W zBfptPe$x(J(9xJy*;_GA*mJqb;M2)=;eTPCb2!8mKr1wd4{L;9Gl849LjD%`xgJ!_ zM9rO`BlW1Yw%oEj0z>?+ArWuHviD_%iJe93m;MitC8{;&uI^aTtJOmCBC*=EGBlrp zN_m(?FU$(;PF`qhd~ldvt`iVhHFG>HMOjsX9hMlGVVR2}JuvgST2~jF3nNXP&%VaGooew$`QXK0{NeOcVO{-e6VYiloO~f{(3BtKz>Cxzm z&Lo>LD^of7T(eZX(Pv$=rc*|BQKG`H{ADo3!8J)1BM7utMaWt#YMww3<;NW(gdEkq z6ptEVfyA`dh3`|KcFvBel6V@}hX+VC1@@K$-I_aOCNR9<2`sVXx4qf&j>yZ?BF(mJ zCz7L;D+B0ZMdy31BZ;W1V0A$spUb)0QZwQEwxSO1LmS88>ananL|~(O?z!X>Y*3`N zf&V}?(+|n0){{%qDDGNfbFU{|tVXTXq14sivoU*oQ{-?((E9O|s&j+8$1w~f^48fU zbM`_k-lFm!lc0XVt)71w&zBG~Lc+n_m8EYBUJDPWhrzgU*fq4p!MEKvgQC>b(6Aru z)kO$#ZeG?>_b66UJtRFw<{?sc)RB;od4|`ar;LdDA_&|Jvl|o~A;YvBk_u&FRB~t{ zhpu2p<5DFu)Y&6Fs7 zF9^qjPx8d1qEo8Ude&JTO69Izz6OO@!qURMOnUGD(+rgZ4>6Z}_aCCO-QT|%EM+sn zwX&UUp_X361QkGdoiiITQD$Yyou8WWH z;S#9fl22H6 zgO&T~W-X(O+^)BJm8HCgUNg9T!sIQQt;g)>UFwS~zFt}&dvv?_9^wP+N<~F!z|>)x zq{CVY>~eaWks2hSxA^iT9LDOLp9XrBV3!Adi^+>BnailCO3BAM{3G&7ms8XJ{n`o+hjvdMuw zJ%ip9Y^*eFtSoG-NdH20AVWLF#~bQKNeo#ikY9VS#dJ?t5}qRs(}l;S1*NK<7U;6< z)U3=@%mA#z;)JM6pcNIxf0dk^+w7W{T{>9d?IQDH6Wkj2V^JcwL7Mo&X+UXVt>}}6 z67ECn#?-asb8rf%@fIdl@S;X~7@0sTRj9g{;zQT{s_JenrD=-@o#XQ+Z&0D?^NMXb zh6_W+uVJNI(% zimvt}N8$SCQj$ts>kuL%I%?{%+|a8g<=53k5H67^a6a^hdxJNG;hzt3D{`G}H;=cB zPqyEtlw)NDF%CLLV(q1+Ot*}uU?i`;${;vGK2MCP%Qd7z&mz7S(CghM_U1|Z^DW7=VcW~w2SF`mNGbUKp+4wJleRhhSU zbZ>aLA~?<v zZFqOjXl@j$&7}qDc*vFwG`7qC=xYjzVCjF)VSHu1aBz-*QH8z{8HtAeiV8+=PSN4L zV`C*E`wp$#1x>?&!n`64)EZ=jswxjz5IcuQ_mzzTE|TM}~q&vcc1M2uv{M zC#B=4FJ4*N-ww3P09IJSS26=iy-SeZuaI zKX`ah%tdV;f~e_)HSyRqC`GO~*Zu*0Kr4~@a#&MiOC);~8UhAAj<2R)fo9Y!ARcEt z)2}h3loBS|>Y9dj7Nxt#*6@>*ds@cS-?&JDE?t&WuKdr?kI2iwwwv~-!UYU0;1m*q z^k^g$#bn0Mkc>#=bAyFNTPE_yih-<5XzBa)?e4IvdE8yq z#f7}kYZhd`A1pC6HM~tHlxJrGDd_&JzG!OywmiZ6=-Gyb#_h%BM!pW7HVu>dQZ{yg zW1(+Gc}-@z6U8xM8#+hkfTgyhkWC)aU(S~D!x*9s7i(BZF(T^dM|V?a9^Rpdu^7@e zCRW4*B2;HoRfbUkbw%PGd6b1ol&CQOOiK)nm0(=(?zS`{-bLJ*i;=t64z8QRA~4as z6uDZ#HcE=K(tSjL-G1Z-6;*c@<|efXzPL(QI#-zBDSBO4G95lX966Az7zI3%?0oKe zJsWoK4OP0#OV=})uBkB_?KTk{pc{xt$?ZTiSJ6{PZ-5fd|0>^I+H~KnMm)x=_?&=|F{@n=6BhFAX#XI4j%pV-jL-t7K5TfaC$h zyrcU+VC1TqSg&L{bI`%$0zr#o2n2tv7lq7q3;v5Ou)Q z%djkG2aZd?@oh@}-Z6)I$p*0P;J3c0FVyZ-bSq+DFoUI^&@}PVw6gh|yiR;EG#~=N z>dk8W^WGC2;*}?wg{Wo{S@mc)n(S+F{he`7TA;}lUdbL#a8D*=RiT-_0wyRxcVTg9 zutu8>3t65`?VJJKT19X?7>N}33=BARs5{}Rxv0s}he$koG0Za`;?4u~D`hj;w&jsr zlT-uQJw6R)P`AavB@(`bA1TOT-XNQgA-d6FN$9>N;#(5koSATi8rG|sC7IWnNbG&1 zMh|1FZshlE+oX+X=EzMJf+__dB^N8js@t7iT<#=l#Lj7d*8%!C{EKLT%Lp9G=S4YlSsQ5^s9TZ*U2s31^?EGSeIm{crTb=LXQuym=t z8Yl0&GFWBEwHGK5nGX_+`l>>r)s4}+xRwoo!#+X}K%}n!;aK)Sizn2utta9#Z$a;CgDml);L#*;||62Czj=b?!CMso4VKsjHo9w=1teVeC zTdLf9XXkF9-lBu1=BM16cb9}!L1F$GBGTi`nY<8Nl;~W>1okX%@~e!N?)qb^Zp+q) z*$bShVr%OH$_9cS_7kIr;;2!6uC9V$*>e*ar(dLQehGMi-wT72$+xP+> zV#ZJ#cCWwWF>k+EW)Q=dEWf)x>%UWl)Dtzzl^RPf*hy&Bm|f$3wvHez`Wq+t*Nrn- zRcB*&X^Cir!jL|Y`)f`ytHCzH4{K_oNZCJ{L~!U8HLF5tKu8M zb1Zygy^98aT;H%o|6B>Rv5YNl@cYmPiZ3&sTeZ6?L>lz?5^Z%8Z3+QJP|wQw_qQc8ofFGvpM$uVej>JynAa zw{SuG-@TLi+9wjW-u3ZyrFI=u=xjGP!{mxjPp+^Ju_$Vnf4?kNg(L;WmCTzsc!9?9 zOo7Yw*l(gGZc61g+X#dYj-iCz$4hf$jt6bhl}lq>9Rqf92O60bVX6eW&=bVRjP-8M zILS3EomQJKX&L!k-c2x8oG900#D56B$06Ii#EW+71a7dAaM!+{vMDgKg~sIv_*1c+ z%q7KWjJ-h@*1ezXbe=i3>Oog&H5Wl<4!t=+nHc z#_5#cQWQxWMK20Bl#jFVmVVOHZOfA_4Bc9L4W!CZpSN)%y{&M z2yNvS?=-nZs6sSljqRd*wH8JV{TZ32{CC9<4(Y_zI>5a8mD>1~1KV~ATt^*qWWBL` zPt|VO{T@~k7N3f7cei_01)Ygbc%DX&XK&GGr61Vj1G$GxYG(N1KY~^9Y1AB5s7Y^3 z?GM;Lzq{ueiym~{57M;BBM8{hOQ|DE#W-=8z~djLU~s$J=**Xm^k3GtM@ZEllmfeY#6q=7>5k;ZL?zKq`X73b;i}yuh9I?(r>$w& zT$Pj~^i1TOuZuU!lhO!y8%j!LEm!AkNoXya(Q^~`=QcANkr=9NBC+HZ%gSU!pKfpv z&abK9NFC9?mMV?^;4Q=?kAHiUNXaSXsSWLU3eU{;CFOjV?`R?s;WS9*Q!@f>jF3#f zNm=F**zWfH84t7j7kjaMbaOmw@pqq`-=sePy#tJp+5K`3h&@2$L;a>@ZE^%P49RHEW>le@%d zv*)s77c0IGY6I|gTO3HoS*@NP9$ihnY6!2R-Hd)BYm|Hf@lYjNpB$vxh8VQFJc_3A zTxOXH{9iA1K6Tx!B(DAHKgo4<3OrhTRK41Hc{xr%YcLAB-cReXuVE^8mJ?o{6`p2v zs!bc-LzqP7uAo-Uwj+)xU^tS6*LBQ_X`%J=8;d_yNd=t3i}WAAFRj&Y(dDTnI6zS) zH}`Y;Bz&{&`FBV2dpq>^VNBVt7rx0t_ydOv!rQ~}PEAE54#4njjH^!Ccc<;6p3acJ z>a&Zgsw>XzLOLnt`57JD?5n>wC|#GZMSsqv2puG!z{1q0+UK6JB;>4`Z8$G+)7N+YBey7 z3Jitf|<51zYm&tt9qPD`1XqFyxxdn?VM&#gM?{F^BoJ*zW`sf}c?I9_XpZM&&#^)rQ)&hq?9!le#SXhN1IqW;aAcUk|C zpd4RJZR&v?D~|M=k)QoQWVyEV&uW`7$$ zEu9dR*-}gfBh&)E9VQJImB=11{(y&ub;UFxx%$R>hTOIdw~jKVu0?nt^L0)+^;4rG zfqFSy1xxe|{GZ_DEDwjg+}nwzJ;{_8-@DxnJ-pL`8ih4mny@>GV30;WAg-n8Wa=x+ z#A#hmuAL`RMPG!-w$^kt3)__)Jpnr9{@cE!R2ZgKBcluFJ?# zf#L&%@{rbtK+U1`&zVYQkBOAP#|r)oTf2Iq(@Lk5$v5S6<9}Mk5vEovPjybl_bd^D z7n4(@EZ>4rDQ`QSCdqnT5%zF*Yo%-Dw4;`pv5ZbQSRl(W%Is4fZGrA6!z6=_$J<87 z&EN3`4j7ctwy{buz$Kbz$&MstA zd&vS8GcT!~cKIB?%@YIow+zXmwuwL%oRORZEo4SK8^9n$E31U3XJ=PB&X}L^dkhJI zD5K#F547jR zUYvm`g>C#q4y49yOci$J_r09h-;>NYm(>Aa12ij3k~XD`=XREW34P zw1q|0PY#!?OZXi#)6?DF7Bg1O`MP-lcORXTbIhinGagT@YZA!_SmqoZj-EoB;WDD0 zKu^1BTv6i4-Rs&Zqg`03RM;4%BeA)pP~E!VS}L`#1qk#2*8$w_PRQwNa(@0zMPyx_QZ-S-BGdO(aJ2T>StBNYGy?nfLRqedQ z2h#2dx0;}X@3!+fLl^aycVCY)cPlU7k(ZhUthBQe$zI#5ue1QLlZjCM?^Sq2ORW$d z@{_Z}(UnSR$(RE5lKE>7h2fKwTZQkat$tfT;GqN-lJC6Z(e2VaS@dXpt@6JA>zSdl zdVd`^B`U@mP>&p=J(M_vNNX=VC%)o{ik*a~OCe?VDydOS&Y2*e|E;R!R1%j|Q%&D` zWTt<@Q5RL?RgPM5#Tu+%=13=@qhDuSh&l+x2*Ev}V24Ez6$fOWWHsFk#9LGU>6bVds!N^P zfdq(&FL*+!Tt+`cJreG;5={c#{AZx^wy3YApx~L6<$uayFj3h5%gjkG2%~B$mWSO8KnQeA?BH=y4 z_TKVBS+{$zDt<}(c?=OceYJCwHm^D}uoTLZ>Ph{C_D$;`8pPMA(Q=^oe3uNtBX3p_ zrN*hQMo-UlWrEJ-RC&=KA=VL+6lPPj#mASwMO=Qel%i2jho{{^`WDCgk5#a$p|`W6 ztjybCiqrrtxVd?tj`8K##CA@q!dT)r?#Sw#;2TXcXx-ywhV0O(leC|X9WM|W)@{A*3t(_PZ_n$c1|KL_$`7Xhdrc+mL1$i+4H7cLLeGhL;2>P9mwjkx(o;5RHeW*hmz1>+1OwwJNW#nBk~IyJyLzYbeZR2JbkVn`F+vZ9I3| zpamf(A$WGY&_;etdy)v{{#_Z|xBDy}xtF-~NgR>S4l z9eUGK00fG!Ao%0$Q)osl1n73?E)JX)EXHB z=Liha>uoV23fVyN6I@o@curOKlxb`;%(^Rgqh#xUULR80wxqafCJRp+RReOCBp(FF~#5jS=zXeHV_u#D=Gv$BD}g0)WZ|Z zTgfzTN%?2CM$I+KL-vhbQ-LsvktPE}Kf+q~mtbtEqeZ=!O?PimK}il$>3*yG^TvmW z_b0V9c5I98RFYD*^~H_o7Cm%)moc7E&CS#_OmZW^Hs;xa$wMHgcsPY+K1qh$zhtZNO3CuPNsxQInK0OaY+Yuj z!T~jYF@3VQ7gu#|2`^rmcxF}!&DcuHNwj7Od6tMNw4@5fm4G$fTju(L8}Onn*)dDW zFG^HMZ)Q~LO9!ZDi8oMoU`mC>hhJQexVUGrk)%~*kJuJ=jM6v0M2<3DVC<@qyP$i3 zc(<%JXlt>;a25CM*<6(KH)3shcGZCP>^5_=W<9RwY@0Imnt%nz2)%CSFJOj_gxjiq zy=vJGbUqIM#zeqOizw-eG@(~y0@*h(u`q$MSkp|ne4Fnk=2AH8w)$&iA!c&eC^VHD-ww0_c2n?KfnYm5Id<_&upGVz@newV^gLkEFOES;QjZWhfDaHy+unP+o`p!wi;vU3d>lpOxv|MrJmfh82US z3joFMaCS!2UksNB-y(vnPF6_9 z{(FusNE*B;Wm9t#?nLO!JIJaW7yGPu@Fw`z8Suy69I}Nd_OfWreHfn}zHi z(qp`~b85c7oAB_B?R1^F8vAnLf4!LZK5J^8Hx#@gzP~Dm z+-~*tV5|Te0@+Re7_ptfOR^EDJ%|^^XAY^?*`APPtoEqdr!UynIGc*(=2)y5A{?oz z-;$iw#4td}<*m4s^j88~%kul12j0l_E@cxQ`;lp0Ep^hVY1h3IV+zK0Wi9uR>5TFj z$rLS^7jp20l5Rn@A^iD_AkR~mzw2$lC+8KA)vh!AF_mr9_aC7*)z$C<-OV`%g4%0i zl^Z9{7N3ia$@$K~mEpSj05^ADuNxp~%<%*H>IVXnrIRVG1St7OPTo~MZ_>TkO6uT8 z7yOEu@%y>(c@Rm6_;>lQ)yvFQs?ARhMvAxh^MzopVSm&ErCK;VF|fN&q`8^4vWW!i z877;{iCG#3x_~?O^T>cOc7i>c>u~G}`jnP?t?m3Pk`-7U(b$$l{?drakS+{dC?6Ll z)1Pn_gNY1ut*3d=hTveR^3igvUJoT)Wt6 zZQfti+2tXxebf0uLT2TxXBaT zYTIYwHpi{4_ZzxRj3siUY;ioLIoPB!ipDUT8=Ld7A{zpdqn4If4ECv=4HNtjJOfvU z)=)Ne+mU#L7$<`{(P@otDMxts&LFUnQ1fsnGlpQm3IKcZuuRT6cO2+Hi^(wVrP^l57VINnge zEjW@F)Z}0zj2vYW<%-3DkRWjN6tq=!oG$w3DzR`Q@P;XgWV_(=tadWnnaF>)Xj8eG)iu>c!O(t1M&3xr9 z!5Bb0czDfnj<caIpLN zn5SGkHmzrtYTc^BRLn9uO^tzZj7T8BK4luy?BGShr=+1_qM4rec|#P0D@v*tQ zrL&yPr^bPG$F%OzR_V!Q^>1}u?sQ|M_Q{%a)P{>%dy`3+LYH;d7VDGiU!ufn&r#<)Ru_wHO8w@A(9XPJSq|NHQj_s&w9=Ctf!q^giE zwxg68ZI`vUi-~_+ZgtA6)8k%Lm2d*#z|d1fY*~y}j2~gBDl2`C$=MTmrY=s4=t!Kj zD?dlCf2)e3Q%nGHBE^V;gCk9i)R4Qul~yMo04y6(2gfXNj?w(_h}tuv&|WGLy`tq3 zuP*La8;HQbWB|ccwqury+eZHduyQsI>;BHmsaw)?IIy|7boYL*(6Y(Qf&<`Zpc_(kz8`sCg2t zefQF1LS>Sl+TTA^p|J$tu%{Cq{`yDwqYPt>QR#b~ps<5ps*s1bX~wcyJvhvQ8gvCP_ybt=R#EBc#bn6m4J0c$Z7B#3n8VSX z=43TBG!l0Q32hD$;CK*FxKdEPl4}q|dx{ciVkOzARoo%Wn%ONJ!i&jluY(y}$!vSb zY;)u#R<$66y44C4C90k(wfiB;il(t7nMso)2ClCO&|oZtq@ryt6uH6g!jN{q^LufV z6eIBg&dF*wOXI_FL5%Ur_o$qU=NYz3|2SEc8ZjlfmQ7%l4x2YDQ(GG;@LMhwAS`! zj#ur|1m_AiU3UC<-mG^9HpR&*H|EEsz}BnjzF6S2<%B#b1)HM&;ZM&WNn#ci0ZGQLuLicJFU2wnRa{1wb}4uQ6Xy`o z0}Mo1ToeQ)qRyR>pf><#4hY=0l)^9?iP7v#dlu*b4DuV&ws30pVp~1`zLh!JRkxun z5`O#U&fy+8vCE1ky}P}e*iv4pDDR&ps+1!BfAX9C*9h+WUba(-J}tG8bwBU&p2o$u zof#{B&?bX(A-6%#7$iFciE8Nrkns2+J6Fj{BH2N<0Ezr(DPZ$e25D~gIlL>|W$<~q zg`>=FemnTigS@}4RpaQqhAA!YQ$b|$SH^2lWHyXrb<>l_eo{;2W3j_@Z@gYpi_m0y zEkAa@?5vvgJv_8cr&|dHBmoP)H|JC~lPR#%C3)cOHY6n%V8dPIN>&k4hH$F8HVq8^ zj63A-KLdYil34D=Y}aG5MkyS}6%+S(mv> z;Q)tJHaQv4#HIr!CX!d4O1H)B`*ZB4Oc`m04Ki#CHeIkrMQrF&gJzqu=fS9dF6L%4 z71IXhVQGMRC4dD2Ai+>hc+5;0?Ic0`8-^VqrI&;cwv37jAzxXcSW2q^!Z_Cf1?@;W z%1pUPWtid3Ld`lZT6X9mel|SkeRSx>QmOH%g7~Y0mt00wbYTQv0y_^oz(vdnn~+oh7kDTZ)z94!u)jOGRUrD zm(4R;QUZ!eA0NL)0~g9ge*Q+T@+L?KO&az6m@UDHnQ1zBcK_Gz8MZ?c4l%Dq*F_5g zhln7YEeZ*^YJ{i;=JN38d<}c>6yIMK50eBF^|4He(MuKKU@lVoVehVHIk;}L)o86M}bqW=B^V;EqaN_-;x8n)QWn}EKf#4@<*WGb`1y>iZc(n82 zs9@vbis*>lG9*GiW%4x#&pCKm=6-*L%0k=DR{c;rThF!hRrrdXV%tOEu4SUS`r*@# zT!A>K;J8ICJza#Bq9P-fhU_kFNkA*f6XtiRD~2 zczA<_(k^Q1Tw^Aj^Cq{`=X>ft+n>l5Z0x-ZRwU-30bUD=(w4dXO2{}6oBZja6C zLpK1?VHn(KO@zvkb8(5UJg^VlP|=Pagf5>jusCk3w4QN#5EE{+t%h;%o$NIXAYv@b zfi9R_Zgd4{wUX}|ZCPMn4k4#Ztrpj1p3}VOz7bY-#oc7b?K|xHa%rDc@ACg+^EraU zRQleDa`0g0m_2dhM@j{m;j=gl(v4%-Jqr+(~Kk$pJg;~ zkEkn|7&hT=iKkAnkhOZZ%p))1O6DBQ8|$uF!e3A+p#2PQp6=S4UmK|=vAz1Z%GH8; zkC|o0%kusfJsS5;O(J=nix6AfB0pV5X3baJd%*QYw@_RoRgZN=M;0^2dl^^7upfR~u7pSTuNs$8T*>kdNc0`B}Vlschy= zU0&kDFUv+uaEs(83TP>|?G_?QS)_7^YV@C|cl{1N0ds3he2U{>hOTPJT*&G2xANI0 zN6S~P?^yw?-Df%^3(|{_z<+MaitwtC(E8#DOM!YnJqtRy+XzV4=UT*GgYUt}g3|xw zS8dEM+B^Q~VgKbY{mv)eS>l#sY36i-f^%_n!rf6AuMh+#;~&Hxyu{tx)trKT8ygzw z*zR{0f)ACaNVkL^X68{ZXOR?grt_SDp^N&{UZE?(C~xW{Fqed{PFSG(g}ipagl z`d^#Ih~>{yykavm(gfPGBR>!CVQD$iQYmV7uk3(gxzf+yKbw`~w1Tm-fuqA=z&XT{59!f}p7VJ#|~Uee6Xms73ObWs$M^m#VKd zV~{vAR}6O{(7c~DyOBE`Tpci@GDgX<2))=ks*nq$N-B(1RgY;$pmE6W!0~*3_=$Lp zX4O-TEbyj!HTi{}p?#CNu`y?f4~1oD(uVKSW|bXQRV%r%M$7ud#9hhmXm$JC8CMhwOo8`+)FC@W((l6Q^`!f{&b!9qE4VMt z(47lWKVt!>44@rSr?99jsn951K#ImNW|cVI^YG4F!grF(jRdpw#A307^!>x&lrCFE zwXno@E4_!{SY1;&v~z?PD1F%A=4SUEN!AcZ6<5>e4!s8b$u#@a z=*h+DB2yOh*Vp~d`}_WC_WSJ#ECLAaPaad(_m^V5t{w+0aR?yZ-TPFq^*H7k=4N~G!k|B{v21C4@IZnlM6rG7AO5Wy3T_q(( zsyhrEF~SwNnUXgUeS@XgD|Ro)M&OleccpIt4K#RyCFvezTM{4H#Kuj+1o-&7&mF>+ zm>h5fhZ=m`oi~m-dsTIJPK;LPjAvN&V2L$SY^%y^i$jvtxmEcu0&>CaC!HWA1k?(V zs6DxG9YDsK^1p@U^>s`3P;FtpwTZ3}_&d+{P-_Ky#b(|2d|!v0(M*z8JV3KF8J>|G zyn=JlAlvCZV|%jjb{8uTF%f470c{(j!<~=ALno~uT8FRu%VPXaXJ{+#%iFn07kCd+ zBd&H{Z`E(nV}s{2HJoH&RI&mh2u5=?DY8_x1$czSPc_8jh2N;3SWy1Q#IUGa-4&TS zEqcC4!!4^Y1ph$}fi}O9Izcd8!9%3mRNb#jCFi?42dF~3xl$FvR zAh6|&WHAM;a`U(bq{pTjT2^!^DX!!mo}y>C0L~vXO9>=}ho)?sih7DuW&vO<8Y$nz z%ZS0K)UqJZ)EKNhSRq4(9kV5md_UFYb|ss3pj0IMS;-e07@9d@sw|rHF|?=(HUv#u zMr_j5SfL*w(}o&~qA?el;-1L@h4^c+ADN&A%@4MFT%}#v>P5);4OrOMuL)qnifR@u zNWV}X%{beh-G9G4-p{(YHNRE66U|@Aemmjt*YFUFBC^lY+c$Mo>S>0jGZyAFO>z zi?;9=0w-a-!p(OWxMH6WVBSVUu7`9lEW`++%gg$&*GQ10NA}0xSB@dz&5{NZ-nLRf z+e{bmxmnIL+|P529PpCo0>?Zy=aZ8j-=dl(M$i7Bex>3?^0vK7k<0g%Fm zDc(!G=j*)hDO`vFlF6)^U%I_H{wHj&~J$vXF1x6{|wuR1|1&hun4l8#c?{%1^ zhfyoHY;rTCNMmQnlr{@5wWcNwvNux4mPB4DB?KgGtb88RMJi4fyRh>@X><))qaeJ8xw0Oi3l`<|UjmbZ1_Ny$8KZi9+awI}Ws zTo1w^`2MFk20fR+i zQ{fHd3xBOt@`^Q(b@#OjPdG^==o5>kSXfAstW(6}IqP{dObqt!_qZum6#mWB1+zOm zU+RC~@)70qwD8VdR@Eku<57ozog@o=z9_`UmHD04F;i0S9+}yvVB|+9se*@@_#GKs zO|pR%#Y)EyuoI+Rge#^L9H+Ajf;llfx9eJFBy6VaX?M!!1VCbSs*c1+*Hb_HwC`U6 zF&!4MyvU@X@c>R6NR*+fqihMr)P(Kf+=UZGIc>^2)}P9!+79ApmT>qA-QTl5q0d{O zFQNPyhK4XvWcvz!|D+2AO?|r`oYuHcOb2&89m6`@EiaQ)iaV7v!*N2v8N$f@Z;+YC!KD7@(Q2>T z#oPVA@_1C!!l&Xg-r^l|$l;dVugPlTGK;*0?CRLc0}{l=OCA{jiLZ6qx|E7ybTlYN z;xjZtUd9T9djyY>?AwTTK>{ehVJ?jKDo~bZZ(y4DmLJ=Md=h1`HL>(Af(v#{TV%vj zm#L_JJ}G_y&4ZL_94I1HH79Zi|DM9&XCH4h#-?BP=>`%v&s6(H=tE$qStnx33LK|& zp5H&X2m>p>r`N`;bDcdnyIAl25Kv=YCy$6qn=oT3L8rew!{rM5IPHp`^1SKcYr*SJV@AK(r}I?F-&nl9-dqrdU3TMHy*k1d*RE z9Fb2*QpevOeb6gSp@&J1|D%uB_P(w9={4*RoJKHIO-|Ul*!TE~FG*ijRv{{;X&0$=1 zrKM+T!dSpVatEvahnsX7zek{IEV$OJnD1QAYlYC*0h{@q`(G>E{L~W|&KI2)Xsj;s zQBTGR4q<|+)*F@%nNVTje^4`ID^T6sbbhGsCLx(Z=|O=%@e3L;PkdS$>56H(~d$oN{1`kefl@^jC)Pzd^t_*xL;LO>98e@ZWE`_ctD( zr9dWo0Hv(p4ZbFKtp^IVX-n`hM=|okTH;@IL#7j9RdYwFPmmU@DG87I(3CPkk(kP8 z<7KIQ>2il7@+T?FSbC?o238JHl03)KEY>j-k>HV_&lngcc`TmtB0QfmBDfSkDx$3y z)6RhK9D6wepHh9kKuZB8NL;bCAabuG+$qAZj;%6e>og|DkGH<*@trdp1WsT-Q#Fqo zg%CX&OPMon#hN+g6|BU+A;7Xmja#W9{VpB`DQ*H*n-SW7p={zygONxKnf2?CEI0;I z57CR!hlS#ZI9%N0a|ofce#rfX-Hw*$B;SFOPHgvW-aW0B-i>#$D!TK_CQ6J_+2dU{c_N;%P>v^&5L!OZk6K_ z6BROmBWjT*2{6*pWEqzCDhTDL6mH#yd5_sv!tB+e)h%P9mGCq2C^!4HWpOV_sUUIQ zEB%2%=Mk(Cn)Wkw_2`#Q;DQmV=*L35zw7=zY2QXryA0F%Lt|O>YOj03m^t^ib;xES zcB}+Lu=5Ps!)@{0I{UU9a=0SdwCFBY-g2|42Z?FQ5_=OAucdn}{v0X9#|ccNoX+!W&}EMk8sUscSnV{C z%AAnG%>+8X@v6^Dz~L~?|DpAL!S(QhW-)_q1&%8xD_*xvu=SVEp6~tSeBGzZ-Mjyf zpdG)(hR=(`C3S&^kE8%|v0dO-gf0=uR6;t2)J8#N4x(4q+OHM<{cz;j93aAJAXImq zF{+S~3>+7&!ou3&3*Za7xj@8(cV~Bb^0b{LNU;z~68^}W6Z*ZnMd13m=Jr+=Xx)d? z^FG-tLqs}i!0%3n6JwZV()Wh!1kE2ud7xXuM{x9}Bmqcb&eCN5sqiMRpOw{<0_|5? zPS!bj`ojlMQ$dBSF~8fm=6(F;w+ridvC(6A7Yn^TKdrujF_OO8X@G`BKvxP-b0E$a~3mpJE}wEkmb*Q9nbD*wLGmth1{Mb4al~HtW&VMx;32_!2C1#jeEybt zItp;`D(*zhu7yNM3!(zRWeDoV5csJPoM4?)w;IjATAQ`R=>z`-D~PQ2UhqC}JS?no zB-&Gp?y7?K(meR89DJp%-PJtrBWUdn#YIj+SLL(fzZK%Rgn(NR7efURHmV33Ix>#l z^h)TXN~7jJoH~}dFvt14hOaE1TBr*fM{{4~-0a00U0Pv*@3RXJKpdT-h|T`emkxqV zT}{ALA81##+z4XRK9EI8%eXRj(&`fDTjN@b5DXP?1T!gZwky;FVFmpK==-`J9SW9{ z98&$QKs>FOa7azx*>!t)9=GOg1kF!*W5ECZ@0Hw+daP@f9?lIm!jv~U^x0Bb(LvR)@C(qq?F6uMrxAaD@{T?JQjRd)ZKFMWz>46dXg7!7EY-uSYX>Q@`f zvP{5Fv2s=M>*=`0sWoV;cxI@1hAOox>v}>6p&y549A7S{n&W8?hMiv~W)V&M-=;1x z2Y0$A{r4&A^}RcS9LX-%CK|}@st@U;_9c0PPEG}jJCfm_D+MvtdDK3Kd4Fond1n9p*sD4$GQLd_p)74( zNdE0yQF$Z(Sk>3^rUO+u-F5S|cecNt)4neye1jWqXk}eaL_~xk_0v|wO~ZaD#Kgr! zabtaHS#fc3;wR*fK@}qdh;lXHtd$SKshFZO>(4W^6ly>_F(<9~$jF6fO>^m~dJqY0 zJ|L!!Is%}jP5z~-Q2|z;fLC!76AR(2X!|&poRm`APPD6rjvO z^}%b;vgu#JTZ~O@*gO0ufkHt1((%1;2Vu{CTi>PsKJm}`n%NES`#=I)$(p$3LNBnN z_}oqL=%sM;g*ylJyv+*hu;-Td-ER4suZI;xH#A%KkSi%E6_Js`A>9SQWA*z{Pg8k9 zFI0}g-&Yn*GZ2P)GddlPa31b&sC^H|F0C>?7BXtDeB?OL5c8InR z>lH|2a6LHvz0W*pk+1L{FUx%#4-$^#nr}_uPhsTc))Ob*GSM{$7tOJ{;9MTE>>jb1A}3lpY<-aTjro79ZQK=! zt&^I1tE#)zxEocNyRf^^o}{}K+9qucXS8!1?5)6-Z-8h13bUA&{%6$e#JAy@MA_PC z%sf-BXPhd!;uWQ}(F1`+IjQBh{hCX1M{dVn{od<07gsKe~`(`-yY9G^ZWJN_2lK-3@BSO zJC^Y8`uF*b`8l%tv+wRjW%uiSjq97_aa_nN_oL`*L1^9X+kMyjJ7oIvHZP^@?yt~D z@9T?m-m+M%Om% zOQHW^nAbx5bJTWOdiQI+ic3%XKSAiEv!;Auuo~E(u4aN0@q(% zXl*l4@vQe-(ljxPUi){G0y!auOeS{^P=bWO!73;-V=B3>ws8?PoD|eWu9l28^pyY7 z5_XSV5YmsS4w{bTi*-U zrT=X+CdcM7m4lVwT+H_!RU)1{Bn4;yq}4j?W~ioCV8jq$R0tIb2D`!30V0e*jixRR zW^LfvE{nJRh^MPpM{myY#Er)o%t&!Gj-Eis4fPxfT&5qwLV^@*euHOcakeBClJs&B zwv6&gxdu)JZXN*Tk1wt=#s!Z6UmVu+!1cSdLN?eddd>jOx~5jRqZ%SRfKv}C3YY!T zp?j2^p!xg{W7!T?{br%wvJJP7lO69_*4Ktc-{(BkZinY})^9GmJbnMagU6Rhy>ELL z?^#s#bwY2qFdh-i-zF)z56*wnQg%XFz&j;TS<_*F1f3t&A|b;Q&4 z@7=^Zq!mT_nhSZItS@xm^gJ8D;Qp_V;aqqqL+D=?aH7RkCG@p9O!U$AkLhdsX!R>j z9zLY+KEC(mTgm@5@5=paJo-=n`}dLOhe7~!>*hE1>xR&j&*@)Gzt6s@?~S|}pBIHf z{nx{BrqAd(sBiv%14Ld#pMSoOkc{--f6MgUl~MWKW95qqHa*Jxb+~Zz~O-O2SMlILGG|aNqL`l{hdRvP!e%cBd z$geNQiSaDPY>c-D;Uzu>9Gu-P7jB^>JF6C6$cnSRWKXuTCwCjXi@1>3NrVNYv4apS zpm0pic6xmt#X?zMy36Nvwb?!6FbZ;e`#J9)!CbyR%^Cga!H%3!5I-GEZrbn2 z*i&6XbHn?D%uwMpAv$Mwg?%#leANzE1CgM!xQ{$2#CUyV{r`1W7 zoHCA6i(U=Dv05w-+As5B+_M5D)$2}+03@WzBeE%{oR+S^y8|sY>3Iazv^bXKm$$ML z2!e7}Ho;xXS4E?b99{BLLfw75M2^)n^fl9UwM=>ZJ*XX@Un5U1jCTCo-lumNK&LR{ zFRirAW%c+qqSUPEU@}_)GF#uJ6@i`2@_Be#jvmtSvAz5#4S|_j<%X)IHEwvGJdSzI zs@gicD(VY^lxC_w@ae+8Y{6!y>e%p9v6@l!btz!!G@@XM+GkL5>}^zD2xaY`yo!aP zj$F+M1t2Y$rxm!K+Y|M9e8$`#$KdyXmQ5p}?Z_xx1SiOjbq#~sJGgHm4$lb*Oqzmd z8u7?V=CYd3U)p-yE*}w3YxAZ)5Tk*bn7w*xBAteokC5aVS|ZS-A>29=G=TCCa+cepJlWOnafhcok-QHuq{$hLkOKf51wUimzAF3P=7b{LHS+8S^_yIV`{-K zAJl{(306evLhuu8x)01WiB%(8dW}qtM{#nGHCVFd)LbILpqv(EMGa>p>|Hj_u-aYa z5NC=Q9TCG9^k%V&Y8IR-Y{LuJQ~&|iM)&FPQ=o-+wB3H**)Q2e`JX!F&q_aY1AJKd zqU&q)UuW0$c6L}xF78p_Et?~Amef#vX;`}e1u?x9O-DP9F4(X*k%L=|eDje<;Qw_$T1v&?S zcps(lEAS{?rIne%I_8bKU!5~#q3wRrme=?YCJLKlRkp^`H3g?@iOEi@Vzk z(idoID3C7BS`>Q6V@948q@r9y0%U*nd|!Fr(*@^-W4N9^z;RZr^%?t>m3~3#?2~^g zbh*nfbvzJ~&=MOQ9aS&G*k>?)flv){(0}bIWM9teW=TSVN%Lj~KzfOy!|Qhm)JDU$ zn{itgIR!p)uXMr8C8Qt~dNBePi>xljctfarpummMj)-Vs=hdKx;K1TxAoJ!d2$U|o z-OJ`a=|CTB{&?RMTHBV`x9=ZGZCXf-s(gJkK}yaX?m;~+@MC{UDfsiOhoFe zvd%28GaUtZSLFs2~d!RgW*DRMPrXpN5@Go=>fnSc#&!aby?eIc6&Yv z3(uHHo%`;V*yc&ye)z`wTh5m8zorrm{7p0=yXn*TC6WXyi8UYJ5=2vTIIHXmE9R9C zrCd);7+9JL0upi{B_^zztw`#T>an6VsyGP{2-<_06HK~-njpFIGi90IE3~H0PghM_ zSRsr=fHt1xqNPbs+(N@rQT8fpd^^bZ8)|iXSkyG`^E(4ZCeO}p(&t^}zYphAx$g}G zJ5%?6oR2YPK6d=$e2!nb5MHD!XB64{%L+hwBR?N~bMG}^1%A=jc5@$mhIu`KiWQjy zyXkYh{()S)&eH-L9KMaY1uEelc`0-*(s{pBD)$8i8GDpjhR?cTYrX(GD?frRtYz-xu#E@+oZIp7-}QdBr2%dB-)vrN8vhyrU{MgySwaTxy42Kb ztwBDN#FFD0MC|MJm+5C_-I+PQo%KsKF$~)BxeL=w(n0%rEuEtLf)@^Jv)OVsm*%l_ zReY_c7puo=V(ihFznDU6y-LbKpdypRNKp8kF*)0<{GO{vwQh5cl zI_4Am5? zi(9-4yG?Ld>&-smh^oWb zj^U1PB^s+CY9Q~Ayk)pRa0ha}%NBwk(+gYDDnnjZGeyn93GxhAF!%)u7~SFvU!}*F zDb&Z1kuum1=ts8&zp)P9=>$KQojtz9#mqn07^bxXZ$t z**V9sFNIOUR?y#hAP6vOdjeM)W}aF+FC3LXlv9$&cRvag+ZgHa6DMk%7fjxx$|SuL zRQgy;loF99=0Q53&CN=_Y9J>%Ih}HX?qMIm-DftBx>vE*c`w0vHset|M^I#a@nuWA zF0bxgsOz}k^|n`lhy&{tVsdXg507_gnEU?F|7QE&D*tZDiZI5gS?gPt((%>36w{;(2&8qp1T!W$Pw{O%Q5% zAtZ`baXwhuQi#yJfcO+jt?xCM|JM8rk$ttTZEe+c?J3uaTm6K|l(I5x!38nmm<(}G zBDyH}JL@@A&+#zG0E~!-m=JW4YIYcQIqpEmM|O#NEqZ=Itx>n2PXWif4fT%pjuRHJHL=T%?*7q{6ZQ|zSm@pzmQT1QB z_N`ypiSg6L%V6He&4T?0o&|G%HS2TBZj|rmXyA+Axa*}1aM+Xm`!6rkb`VRxqv3%2 z`Tfx}o&#(@d2OUV?wnrjzAghpS8k^j{gl6|>Mh7cV9C$6iD<4WX(pD**@lVV)^yWy z45SUh8$3&yC(gbA_#gLKCf8lzgs<3vEW8+_LDV@a}{FmVCu8AI9)(_M%Xm# z5b@pb!YhiGt*c&`zd@@Uhn9Qlu$2Y6(4+Kt!+O~wMU=uwsgSCem2`AISd9Cy8iKF) zJxsc*n+Up3QJ8Viw#oTSs+hv()Iill__ccF2f9*ssg7vXRSGj{i#U~Tz6vqVkLUm* zMV)>6v7Yv>#)o01b{RPHO^?Q?!kgZ>W1_DSB+V%uijp?b)wXE#w^Wt)SJi!~MA@N1 z*Gv;YBwr%-7Q?1+3}9R0f?YN@BTiS-prI_n0is2y1U!`NV_$#UbZ|xu5=abQnHm} z&o@ON1gD{Fozf7x{!c(sMlj(1^v(o=o1ey%<6oB_p?Hy-3)XLS|F5CsEs?G8pXuU= z?|aMW#_~hsS&ZXr$mzoJZB3V=db;N$xUX+IV;;{bsh@(-M}MB zRK<$8QD)=d;1FV>5D52}cXSb_R8d+bJU@bW%8E<T)Dk*X3vwp~u6y^xb zI9kuToxrh<+h@35j=F2+uZf1kj3=-;xN!MHjreI3S|L;eVKSAg%t~RA(GYq0R>DrIYXzw5D;u5c?>`Qs$w#uxg{;6 z#v>r)D9#f$RjI6{NnEk|Jne7EPoFpp>(bTb zcy(tLzD(qjCchRPxE9qN|HDy(!0Sz?HLdSxUu$+(0HDZgCJ34UTdz|TR%;Q(@gp+rfBwY0E%OHF|cC}eoXZEg|8ni8J5e8hfHm(&#JDiDk zG(mih&hU+m?IWFALUmf1$Cxx~#vEL43>{!Ep-o;1I2MB4E~dmq2#9%ZAc=W0zr~?b z4TPe=5fP1!h!JIvpAfX4@~&tcH*N&AU@dH+uRY@6G%-|n-=4Qb6AQluj&uV?T59rx zg8^p+>I3+*zaSxK8q9$2$%fmdW>*qdWpe{w*flSRBs4Iz2MbJ|-Ny+WBd^H^^P85I zkUKVs7UA1OW?0ak*NwVu#u1>S61*22p2i0kiWx{S4*C3sOfXqftlqhBCd(oG=pF%r zX{*EYo%Yq9?xuRy&e-W4{?{%q=wQm+Ozq_|d4SKVi9HvW-n_f_-v)#V*S$9@(mG5@eDgo1+E`rV%Aa01=cOz@b$J1FJ?V=#%A9Kq~Z; z@8-2t88D>E{LaE;#Pb^bS9_A@*n4VDwu{Af)0g|I*TOVvO9R-J6?hoR zla7tEm(s7hydG{TjALz~&Yy3M00S7shU8jl+35;t@aNVEo2t)asV6yZ)J3LvgdV{@ z)ZK&dW#|FLm-Cop32#*}Vy`l-`WUCn`>8%DZi_jL6C}9=w^6Q<8re~!3ufk8l*pJk z#U`a6y&qA`F9ZR3Xp=hMyCA=LKay(u)X}PE3Hei>ax#)5w&Yr~K zk(OjO~+l(p{4mE$DayKY~MxFJs06xub7$ z2Q?5NoZcsFvOjRN0u<9e>U_+k zU=#|a`)XAOM>={^%3Tw`W0q*WsCO2M@}*Gtfy~mtZ1QlZN)>$dl|tg=ZKb=#ex(n< zpO)6;ucL57yO80~1<|jTcv3C4+!HJEira)`hxO=@5FZFGcXmE}zOrw%h#L?z37awN z8wF&p3TSMjGP@CY1*#^j$dc&a0*SzPkph%Vd9gMwcgsw8J?*ahU|spk^>^`QF}f5C z(kyZpl8_?``ep-_Doo6xMNGS(tjozzMEBTVIh-Es!ZaZY7RR2aaSMAUsSZNaEp8jS ziMq#9?9O@H+b!C(G$2!(-nWj zsY;4C?zx$nbT!$$Oos2bjn~sdh3e?Rjr~6=Nf*+;17fpRvObfIdWf*W)qEds zeq-8j{Lv2KK(*1|AB=^d(9E`n9dOrUv4X*IvE<7npWaEEU@Ja1{}WFc#?R|v}9F3uqM;oU2bRll_(+>wQOmD26-sWo;HXs`1c*kbt zma6x}L>6&BSi+4!cOoQPcv$-5Qh>%LH4Kv@-Gup92h2#Afm_U?m?T^M(1qa_H`NO;{0`-jjwD2mr`L2AI?g)1Tzh%J56s;^y{xb5rYQ*U z(ftS$M5$P?Jhj#?RjsuK#xW9oACv_A0%biwzL|IT^Vt1kC)w zWAMnprjDW)rKi4Fap5i97Ab@|NJIgbfAhAO4Yqu}9+r88ZV9bKqiUkdLz_;sLbmirCjT4tujJSX_q(K4sCAOlmvK)CM)smvDO|)YFl+?A6Yqm`XSP-QWA=R-<0Gs1C z#vfr}6{zmay{?t{a>RM?JFcB(I9~AJ(?t?OBw-QWw2{3eozo!ynK+Zm|0B%;t<9J? zamgm=)DXQ2U@Y_@(q8VEJd6AK_KL5Avx>el6Y1*-xev1%t7(aywz+8J}zW;w48*A^xhAiRqvf}JO1H&!61aP14@90 zS|}rNdW7glKyG(QfI%gCLuMG^?nub=uIMmWJ4lI%TJ2PPR}&yv)`Elx$>6+D$p&%9 zoe=o6FBs>cCS!Bf-@#y!3&W)#C8@q5*S`smfI$;`R)z0(EWKRCg!&-*I9Jl7E+ZAT zz_x+($iv}%v0}-}$-KFJ|{< ziS$rXn=qZUo3ook6;vA%ak#l4S#sw&qVy_uy-)1o6|mlXPIhknAbAvyv5^3A(*E$E zEb^>wCBhQMUohnsW^60{6n+BH)>7qp{^xN)H^v3Y@knrubc|Bg$-~_o8d9$+T#o3< zVgPj5GX%Wum%`(W&b#}*Oc^ri)^CO-vlvQhw=l&3PWsitwL&>yyIVQ7z5uXzqa^6)sx* zaFfO_B#j-_V_tTKLwtTq{qhvPiw3XWoUJ8d0f%B(RxQFHG%F_mqqD(p9biLgU6ra; zX!FvgR&drRG8LBHkDACs>j%(7OL@oLhiXOT3ZN2Pc1mUz%j@F~2>2ri_rU~&DjPuf zgelUEOR5a*-Q%MCPG%@P14003Lc>!#(%f1A-@JerCwH6E!wtbZ;n%-k9%5Rd<|LI@ zS8Ma`Sf+_X5DRd}K_KB?(zdpY98L%=o+Xy z9UCxQ=x7L18&&``t=ZhOVdLI+_G*G5cD`(*Kh#sAKD1+ydoD=UVuB=uc(Fv1T^h6H zC`&1+XW13o&=4I)giKiO%ghEqB>IrT?`a}1fpG}A zRWzz>vD4x_tKOATpMO;*6MSoZ;M`S7+UP7ynn~v^zEVOisnG8I#WL=1QujQK1m?U@ zN`iHOzy^~v9ne+MnByBFNO2N(8ic7_!)bDt*z1WOWI~8hF6GF6rs(A2jG*B6z*-y z=yEeMUp&)Zo*J* z)oJ`?o~6bm_fhyQ^P?VVa5kXiR(Nm6Zr#_7=`Ur&G(oqd!f8pQP#<`g;Ga zo^u`yvJDs=rn+9K`bIW}Ui5DjUWR+qReQ2Wa2c~Z-Ig`p&eZItf~6ln>0gvS@-h)T zt_Y8bm?Ds5%yqRV-~?6A6x!S5fdbf&;FAX)B0PTF7lwcTpWI=dC&0v!OU>9e?PWA9 z?|QOwPHr2=lEusWrhT?@qGR4Y^u+)k+X2cl;B1~5`gt@&~D!35UKB(pbOnv9P^wkL}n;OH`x=yaw z1%z*L*Ft4uK$RfsNdXl|)GjcCogc4BW-G-E!i;t@nqHhO&g%5cY7UyhpnF7BNSaA{ zy=I;{1hHzXrBdJ1#XtPpF%{E2%{a1rU}{hC$f%lLYJQpvzIC=*8s4VK0uO06HA~a^$#(Jm=4T84Hlo39LyR4J(<0$W$CLgzT z?kx-OAfCG3INI6(OaH&Pk1#uimFIv$d1P56FmHA$Xo}Q5B(LU&5?r0_&v&|0u{Lzi z@|mSd4R&8mgGGdE*qtklbUD8odp*c)*q^w3%XN8=HFXKFunz`IIuxZ+Nl&9V@3M^8 zFQ~P+a6g{t(ihn4IS(aada+%l7^%_9^|N;J22!y&J=?+cX$_8c-98+&1&$`TACj!GA!I_vv}$8J2KG8 zhBt9Q!;H|(2=Bw}N~Q5q3b>u*?AlpK3L}8Ub<9&{d5y!SPEIGjVx~Rs7;9A&wXn;n zgNX-t9#sOkfo1s}>SfDPNAu!joC>LyM2fNZN(9L8$5an5ugxtF86h()MK?Sshvq2G zF&CbonrpW4P%4*cMN`f0od&A7t=IH1iCbxM-~ReLU~PHLF}eW+AH~uS}rEn))FZm_r z{MH*ylU}K>MB$oR8|s#GjldylwOy*LF+XxSSbEp-;3_XneZN<)&Mi9&20*vhb-l>V z`Vat4e5zQr-5E@KZ0ZKalC)Uy3RK7wNpTDq;e+})O)z`Q`>CXv`p^#0Z_-f;FAZ1OmNlx3iytKS5B!+fJPvL+XmQ;ZNU_hgGJTcCq5LA|Z}5kLAU{{G60f#q zyPtmex65x3Ql%X;i8p3(5e@pOc6-Qr#Q zxb|1;H8EtE0Y}U4)o+!RyT_g0lK2-tikxuV65qQQvE~R>8&4WcV>g2rKNbdqzs?#m zT0EPq=8{jPbz;#yBDR{`LJj%F>2p&4eR|ZuND!UnPFrztPEm*zpcSvodx8#+M)`GX z1;k@Q%ZD*YgRn;^`WRF=K61m$R-|tEzqwYNOqG32N3B>&uY>7sgPIOV~30csORNCB+!*lyW z3RN4C4$z@V8XGdkmQb1lwd26RjrvlB1`)FfkIYekus!VPFLKM+ku@$N>zzg-V>uw; zG-ItCu2(7chgYF++r}zloqxb{!1NbT_M031RzR!zd?MxDWCZs&(rr2aPBGd)2*0m( z0V3%t8>q=l(=6b+3;kPO^8~Z`zOU7j92Wj#l{#M&uKrp44|fhe>~xK9UoO+#*k-c- zfPvvzI?^dt)F3QV&r4-s34p`CAryf>a;UUHd`n|Uzy@L zH!O?<@sJUV!i_=a<|9xs~~nA1KJ zx5BQ0%9v#8Cm@u*I;lhe4zE1w_xOS=`*dHE*}2NP$^0KPC@s%XPL>Rl>XJLEFrsk$ zET4I|TBNr8bXu8cYbfWWCLn2yg#hC6gGiZ$B}@9MERTuTpx(#KFV+z|0tA?$OVZ75dYhgypjn{u+H5>zA)Vat*zgTA$$p1)&FV;=GFu>(egvQ?`2V|9$x)NbsevNmKGL z@*#oWW3#ZkJ}|%jl42zZuUuo^X*m)jcd6v_mqq_mMa>VlEFXnqlZB8tR9?TDnpG8} zeDvw;D)P~;eKyN!n*CHXDyDy>r-$W3lPIH$lB;1P%R7{xN)#`uAtP{zFGd6PEYKjFKh8D*Rw&W_|C8P z;L?*IX46KQe({QFjxhoS@p!8~v~xKpU{N_&1S9~64eoTNSONgWH%K|p1hl9p>4S_P zJqiDHt7?o@H+=$X_yD~g$_DQ;dtn_e=_m$I%Ba{jwuN(ZVgR;k2Z0@s?XrF37=GN~ z1~I_Pm9omAp{9@m;f`N!IQ6uyaUw}$TdC@64A|gwcz^jueax1okfo@F+y*1wK4mII z>keF?-_wO=y9XZIGqo;ixOTeEW;dVrN3w`D1_un&FZ|XZQMRseM?<099)b6V^B&5C z-x=af+{#)-D+w6W#HL~xGEJxWiZ>AXDIZssB*DOP5_<*F98NUf>^J>%P@Cj-)~>_n zXtUkO&DIp|cU6m^h%iN~G9CZDxKmAo zLAi3Q5l#pWO<58|UjF)Wp`?dB-mQQh;Ob8NUckIYg;>>J@+dE2&L)R;IocP>*SQC5 z>{!i9ub7!-0aHchFbJKa%00^fst7^Psy0rQ^xFoRNwEj^M+;*q&MH`Dwsk=8-D%aCj&tCy&ZWTjoU& z@*{=sY8{JBG3SK!t&&PMXR)u<@fR_1(4QBLx>#QczOS)ja+dol^cc z2$o3Uz;M4SRZVM1cd+tU@;V&B5rT8o~^UoUJ&yJ*>R>~864%Bko87@ zinE0Zh+RH?Cv48)qnV@SV{l z(O|XA@-``8M7V(cVN{Vn@F{b&V6PNr;U`v}og$GXjH}ZCj;WORgVfg|jic2G4&WUg z7wTcfwWG2$3PRc7PmCa(|3#gyY#!EICmNmQKnhgbd4|P^cs^$^?Y9PD2N+koy;$~ zr8Ak2~lt`QJ-@Vuj;_Ys&@zV~mvEvuZCs<$gj}a`z8QiNKx035((>g2BiM z&QV#b26Hc07*UT3af9m;W={!v+#OyGDE(zPpI&ZiRS^9)6NYq^KdyA)8sT7e@9 zsuA@c>1+zDM+C}ebs{Sd>o<=cAkSP^htz?9sd_4TrTo{N@<|aE9F2b{* z0Yw+#6b(-|;Pt3mb{wc#Jkf(e?{=nf_UbF3m#t;F-F{-(C&ekNwYfqA;wjVH1M4Pt zF%I-wUK}AwkxlY_WM3*w_nlJI1HZ#K0Cjz3MVqc zZ{bj|d`)TtzE+eccDrQZh-XF+#f|g2(-R1t4*865uHx9;1)p;cqJD%4ErS7-@_JEzdZ+Fq7>_%kJ z4$_!9S#_`CPX_B{R6}%;n~PGR;rl+x#rovV85?d5s3=Tqx# zeRHz&h#9_Hun3#p+jHh>yC#IJaLV|bnd#=@&E{w%8{%(S#ZZb>;>Q6dTBjL&DysXx z!bUN~S%dS@0c7ld2i$^UedK#-UX!G|aa)83Mf1&9CCINOOVr-8Yi{0njoE~tCSfb~ z223Di?f@9ZsetvQX+1W=;%|l)K+Wv+Olku(S!CHaU>tlmT*7I~=-X$k49g)S7z6Y} z4CVr31fmL=Iv-7-XAg}vKXHZB;BHp~qHR`Yj-f2K2c?w{y8)*_NKqB|l7ulf*=?A) zV;}3}V{Fzn-sFNHh?xt)4CEL_VXBN^kVnQAnIM}#e&;j;hU+G*k7|ooSw&DBfd++Z z%Ctw`(OZhSNN1&xA-J*x35J#LyouY^vLPv+B5*@QcO(g1!3iEQlF`wz@&4LwjC=L8pp=7q5GC}!<=0Hm{3a>+K zj`z^fUA@9lffy)h7|>3u<&~qvz){isdyRA28~`P=ZeN8E8(PbTw9XbtsG;Z%BO+S$ ze`28bk6Y|3ryid5gTnJtOzZ0n3xH=S)E1>k_MdBV7=4qr5t0$(vTe&R!Pv>vHW~QD zF%KyUCh3RoR8Cxfvg}-hBhMW`sZW!w2}Hgh$kV^`^sUnBjPg+!IM$A=$iC;%AS8@t zWs8yjmy5-Q%*f1anB;)F%QVf8?z)F6Dxyp2+|rr}@8fFZy@7Sx#5~!`j&!;yY(YU+ z7T)3z%HVhVgI4Dj@ILeU1$xGL^YZ=2>#=^w{2IA7HPxm7ml&N4$Q7T9Gqp;LABPdW zEE!|xAN?Qz92117r9qnht}3`lwa9a)I-8c8`M-vb=|Z0wTs-{tEXQB8C|oJ_N!$by z)vYb=IUul2^L?<3^SUA#z=^L%|5$X^$e1Fde1=~0<_m9-%(UDwc%?MbaHl2})lx(6 z8%7pRuY-ftDlPUB;!d-L>_j33d|I$rz$boiv_%B_Ev@T|-c?Z8MBF2V=Q+tO=+{Ex z41xUY+(Nlu zOohkxTkkvoiOay1fT{~iVyRN0XpM0|6w1%3i@g9 zni&)rm101C2&N|F@h=yEL~0CDNhC42EfKnvZR=+^EPM4pnG2tb#-sAppKGQE+$Q=t zdSOWppcr9wyL>~%j-Q>T9%j4mt0D7{Uo#0WOfb6!%!aF_Xj4t?+Dwg;M57~f_9j~h z#OMNYR?uQ3K1&CW(T~r>ymV)baB>`00a#+ zOs6HyQ&|S)k-9^Ji&1i=`b!Bu_a&OHEXrYH?5tXH(WVd~JA5>DU7WKtSDiM-h3IXq zW_Jw{%Ttbap$4ZNtbQwA_Jgqx_VB6oeNt!+O}M$c|Y24Da2}86l{gS7c#pmW&UJR{)A*^Gz& zeM57~g~xjod^i%*6aFb?HS$};Ox!P|L(+2QP6Fd+zkK&A7U177_2BeQr2{bhc8W{i z7;i+Fzq7Y49jz+vY&|gwn_TO#a1?@bP&U3W{}5(>D;oSf;2T|cztF-iN|uV+7Asp=p*(TAK4qV5nl`o1{zVm;LFQ}B!`-n8yGDf|Gf5_(`YSl zv8rT2@?1Ctj#{*rj%_cqEq@^fyX*Ac; zIz1yVd9&E1_$7sGNBy48Jxw)A8OdTkTYI{ptiC5jZ3vp!X|#$D#J?GhQGM=ut>v^N zL-|N5s_rNp;dA?63{0%=sCo5tfZWKJpJM@jP^j2D+pid#Gb0CX`^=POl`)3kS!t@@ z2JdP6OpC;YM#A&9aB&$T4ukEA(`5stha@OG+v@(VD5B_8+(7q~RLpVIwa^7X>m2P0 z@}LS?m*HEWZYWLc9zrsvu$?W9c3>qSH!UpT5=p+11 z`T;7?mq>+KB3GPdiJPUFSSF(IABufgK@fR>L%z?>@z{ON1W0kMU(ns<7ocYRF&zzV zVliy(+NkNz*R9gB4U8`rmU&@29URnGIPosw%|g_jODq>YoMu?3_@xyeC`cf;LL&Nx z)?~`4Rqh%yO|l-M)6-WQ&!f50>N?e1^&uIo_=(e|s-(rpW>5=MbMOe%E;zJw!ZXtq zT_FtF5&!O%mHCep8kyn|SOeoVbwz)}mb!>h#Y0E#2^)f|R-%h6d#zCRh8$;y>XTFb zilX_rwcQ&k66Z34!G1P^&&zxk&_Vx%sGX-}WFL8aM$UGI zikhjn|9)Px`5m<`O~`}~#{ApsM)%p=+1#}>lNi1doZ*T|nNCQpyvo7M<# zPOUF4tS@eCE-cJXtt?K>ujo6X%jH&BaIMe_QYj>HXePwUY?6W)$eXL=rsJ%oq z1ksVMQj}AhSyonFS`fii$AZ@j$e~<#{@BQaZ$}c`^dpaiO78w14wMia(OCK&asNjE z7R*bcX?6}QvYO`66z@T?E7Y-NTDoLkMkXlzq2xb|mC;Ukw-`_!Fmf^FpZMt=O(L>) zs-kDp-ve`$uU(B-us3{Pd;T0od4tel;45X|_Tm8J^#&lNW4#ki+?XmvR+hLp7HfCp z0^+4QkWWELmQxDZ6Tw>maz0>58np14^ZZ(!Jj8aVr6wC+KI#d+spWwz$axI6PgD~f z41#ENM;;f9C3YG}DmP6)Z%}g=$5pB-Vz0cs20vq)6`X~FS*t<9N}Mbb3H~ew|Hh{M zw7k=mW7!Nt91I0*&yq$A&4bDYW(s->vqj%NbV1Y@b7pqG>)O0>`A_Ssu}SRO5f0N@ zsKCgt)W?JSJP3h(h=#5jx>j^dBszSCNMh-jM=#I-4H`8om$0*E1*d>AXKOu^q7dsa z!I`gn0>DuU_r8<71jEmcw7`JaM?K=qF%z-L?4^Ah^GTO>!Ghfa^YGi1M?>~QBa~KD zx7TzA@cN|J=l3qe3x;_BLtR}gOOYr*d=&{tuj?+V4CvqcS@ghCyWrPo+W+tyi}>10avt?~wK zjMx)~ilVOuIkUX_8Q{=O&`g-Ra9mDaj1#`$dFx*Op(O1?KuPuek;_KuDy|S8S$y9Ph({WZ3FOW?k$N{tbS({sq!fz`^*9)Y?n&Jr zH&09Y824H!Vm{nUNa1@O!-ZzK5891%9vh-5M3x`2JP4DwdD=lfxGO)l*B5C{Pm_Wq zTseXm2TuX6tO_*{wL0tt&$`%3&;Ed-v%9lxiLhGOMjnd zYhzh{@SiF}C+<0@y-bD+MqT_4u`K{HF-+M2qDX}RM8Xd&yt|aehn_Rf+SOPea1JdA z4qxtrfrfO)3fqkOp633n{JL@V#Tf`iXs4C)_H2LzF;oO>L?KNyq;AL5s_2oEb%?B( zIksW;%bjo0;jQY7`r&1j4d5ibeII#mbSB4PHp0t1q;H)ZEK-Y}$ZK&1%c0vn;_2me z_ufRlOJ_PO-4eKxNTSG@F(E{E!amF7*Dr{M%npoyx6rqCw-!*<6^Qv-n@?_11qo*( z+W*zoai$412N`PRH&P|UFQQ*iVi15~IWS@(J&>B9^3TksX;I4e_e8QNSuc6~3&a3_ zG$D&J;T=B*GlchvYn!v4m1%AlMZHXk2c4Zp&guI460R`1=#5GtapEU^9nR9ZruH`j zXB9+=bN1B)UR^E70g_9be)2z|!!T{uVBAwq5yoA+-X6{6egf;`ra6w}>k$(c18phX6cp)p|0E44!b&eA19x+bq`{&bui# z?CrFb;$%*U94QN%KyvX63u>cRe}w{4Z`2}I`{lMfT)=UyXK?RcRZjbbxPH9#yl&6u z0bgEcz_dY;o3tJk$n-t`_G+pnCjBR4Yg!C3nmhkxUjQJcPthe+DiY&mV`Mi1PvqdOVT$3pK@A$mVQGlc|z1vIQN(0bkVHC zQ=n-;$P-{$cI65FeOwdMv@;}w`LB+x?)ELEuiU0hcTMU915{`byfrtkH}JT1nd{I| zPTbl1Z{GTmq9f(PVCT`egBVH~SomdpD^PFX9`v;`2$(o{iEvsL-^R$hxVQxA>p*EC z%?FVPHn!WK?)K%y`3v9#ti=(d7!4gGe2(xVlMJ5x=RcCxj!5s9r_HzP_(?>!8*|a( z=D7SqI>qIbv;0poTa=V-_4k8(vw(cA+%d*oul4^l@IRiyyUB-ugM>#j4vr(033 zMzL&TCMj;xi`@vaXMHw++5_(~*2;>>-mQn({c}veB&A8A*)EJ-E<_JJ3Jf+jaEX9~ zQ+6*b_=(JihK?E!p)CzC(T-;Ex$|cSBE9?;a5U{s(Z!>kCip#>x~z&7hg-U^K`PF+ zD&?V>L5Mn3Lu{}drV_Q#GBkm2AxH(ntKNm<#WjU|ih9QFasZR9=zW7nAF@IYkDtCk zuLpmjw*o|0G{v6dQ7VcVU%O&~aQ3jsXgW>xd1^)W%6*)nH?APf7naEmLOnjzFmA;eI^JrxvGa8UK7@I5OA>rzUJ?Jt4=(2({b%^$n&X7Y5_L^KFS3n^ zKcC3?E+dspz#0T01>l9=&7rKtIynfN8xO?ob`XTvQn#|jrku>xOFmOK4jd;2=TRNP z4Pe^RPK`6ln^@lDObEkP{zY8*De7n)CcF9tjk)5{EB)x{RtS|rqacIlL3*D4`6eH%Zf^`Z+AY{e2rj%& zw>aCv`uGOZv>#&ff+!k!h?Z7p5N&t#^mydDhfziR{to%XFbwXwK=E5b1&Wc3i?9c^ zrjo2$UbZTwf`*Va6rZ7Zyp2CAs0byIHx1Vy>njphlZ3dBS*Z`&(}jzFV48N37kH_- z2&k})7tMNNm52PCKUC-;i}G7T@eI^ zJa=r}JiYx0hsx-lMkd)Af+JYMq5o-d?aaY{HO7af{d~b;UE{;?t}qRNSeRUuV1%c4 zFGxZ^8e?m+_k?j65<{TSAwV4uv4;eP7iTT|;yUOcxvrDzM5n7BF+XBB_Jb{-3N!*c zXdHR_P4z`%0J{9Qemg>tSc8npG>qlU3J!@?tZ3W0%H?QTsS^l7%=OYdvtivpHP|@d z2tSJSg&o=+^P^R(gT7obrdr4pdfVREjWUAWNTfcW&Dn zdgff@P*^4%hXA@*yqe!21Yym(i#6L>O6vTefLxC$r{`XJZm;WWx$ijAA$Gb8@aWy( zfW3v3ij~(*>|?LPag!FF`!VoUa?GwREr9GKh`G%SZ#9UO!4~8-t&4lvaEAP_3|HPvgH zd!Zs!JW%CORhtN9IEju$ybwBtw|OcWDKjv;Qk_*O`(GUNkY7Qd;l^}r@H*Ja=%#s2 zPd{Fsz=f(mICMY6`v$+ivX)o~WIFLUSSW`SGy-qY^(jLV!D1IpB+T`yO10vugeJc~ z7K|h08eozj44N-D!t!+`l>G!#!IrEStZKs*RJZX~h$MxTdnywXLUi7ewFz*b%~k6J z$Dpod12E74e!&*CrDe6r{~x|oF?}7F_RmX&5mIqai*r|rYC&>aH!>u z)BbOp9m|S~9TqenMa17k8$i6Zjc9*C#Trx!w2JSY8oFa!REbMZTOi*89a6-xb&mUP znleQhlOq)(ta^9gHUFq>#}zT{U7eC|MiPgM1K|QAYLfq0OHBxc2AhP7(H^QKSwPe5 z-eq}d;SrUL7-A;jsnd~s+T!==)Xh&Sp!2rQz+_sz{{d(sQ&M#=P*@;A3UWm_4J+(X zSHa2-SCK05ye*$-V0s!^!3aMz0Z^TYl}(d?W+ntuJoxXJ`G#aK%^IAJgb!xQVR>G@ zXdN`IxH#-swh?$NyeceCuLNdOklZL7K2;T2Q^>PD@_vVsgaZOvh(@P~S_W`gNAxs>>Jb#v*FcebUew;)ZeCm7Tsfzh@$U+GX4m6C{&sb5dgf!5&QZGP%!@H zEG|3N#Lmoqrb#m$`lPjRs=bJ;$co0+(J{(DJAbe(#fJQ5RjMs zbk$6m{!sbBBa|;Nn<2D!cEmH0aO-ko@-s)VR$39B8H*I_2bgcCDQD<+A_#ibDQ>W| zOV^1ih7D3ZhS7#2XrcxbaZ-lWk+1|Xsiu1RW6c3adZau3+w_dFCSUx2Hm4n1d*xiO zPE2$|7z`Pmie)pdbe>C@|9Z^iKe?>;AguvHQ0m%8pK~@Q!A{It=TCCLIP(8@Mx&5HvrA~9ogOM0ceds-){cwng0lTOx7s0p=zK& zuu(Tpfm6`n-_vyRTq=@Y1W7dI%>bcVUKyvsHCQFfF%g$)p0bkb8)eNxzXH$wtt#tm ziR)8U7W&F8VNTQHoJFT>Oa8z?@$ptoKLup&>cNlPr*PyY>ivYuiH8BxOCaYjEpwhh z8H609y}&Ggt;xRDS1($m3K!z?DZ{!7XzBy|6KGsg>M8137hEo9KFt}Resf&Ay#DvS z;y>7}*~rwvfC;FEd|OMhU2OL`*)=h#EAAhFYxrw~!yH&F7^ycHCB(ksW2(m~ev{Fi9Zx-`|2p6Y~abMt#2#JI}z6?LS{kos#g zSm1bOVI#q_Ow&lDtl?9Kw>2k*L=7Y0bh~;=;syxEHQgs z?QdW#G$OOs<^>(C{c*r9PNA<}0k>?-4XT>dgY13cOI)E!LaNHlNfx`2Pzn55P(9(^Cd@al!Z=I8DgY(Ez z-7Fln^D2(=b%m%g;%e=Mv_ZgE%E;q;Nc4~OQQ{dm(rk)!W#4?ceaxkn0WVU|g?+`E z$6^<5H)jP>C5QdEbQtesh^xy^c+XPS^iW7y{d67Oh5rP~6@ZngSBI@HPQNAcfN$WQ z*ThLU=fjYgB3yaJmH9^Cq4)z@8>HWWf>#|yPsZFlF`x# zm7i#G&R$NJ5sEReD0x}jJKuB9@Y*Mcyj#jVTRyfUv^WEtl-7F=zDfZ2m1dDn5Jq{R zC|}7B{5QwcYza2R119h(I%p?DYS{4j;LN)P=mcL?B9`{F9u=yG$V7#ihq4qZNdhDW zgB#N2`KB}F=b+{Lgk)lY8CX6|64=r3yi(zmaVi3P^Qb7MWx&qjKgISAZ6k+EWoeajP5Dcx2||`XQ_5 z2SVW$lWftoyZgf|ZESV#W=irAZRP3yOMJqe6MHn_8186Vf&uWISp{JBXI-CU+F)#A z&W2hFq^?9e3KX?KMH7AlFa%~uPS;}+*;dR7e!ZNJFAR(r+UXdF$a~cbc*?eQeY%cO2vwi`Y)Zbte~I zEv0xYg^q*}WoXe!egCL#REJ|c(Ez?_OV+@}+X>au=l#uxD{!{T&qci?wRjhWO9$t`B90!T zjLnnO8E=B0vnUog{GO_zb44}y zdjlc`L^A!G)J*J>0_(rGtB=2Y-r-dvkPI?szOiU{d8^Rs$wtg~NY9-jNUbNbs4H4O z#jx8;wgAd-6BSVvCr+h$-VzkGI_xzgjly*8pB*zfN5Rf~1N2pIzAU z5+tP(nh?p^EbIE zTrKoe_7ttuQ-SLQQmP1wCH4|YC|#BH#B!Ly{E>y>adT;virogYfcgrfS`c$t9afej z>v=@4A^IMISgH}y!a?(3(G^vML~}n^ITq>RLjIf@Hc_+E4w3~4v7)k~vla3lk%p(i zkzhz1u7w3&SkY`|B~--;{xuFeOKoeEQYTGOOPt(nSD`24Gr4B*01uA?F>}4$5)0SW zSwEo~WK%f}Nm()DEmNitQ$JdRyk`bdNHuLdqg}yha=5y?mZVTmzh%h1$R+*auhaF) zD3Ad816EIU+C6-L_B*W)_s#7Aa5hp5HaXHOWLO0H8rRW>#9dn!4}#-NW+Rs0{F?$c%Z&tM?zKl8UF9b25dWmG4bWI2RsuwxwWruz9-l%TRP{Y#dWSFBO0g2t(xO#4@Ae*(`|^V~dl7mvV2A@tp* zu?4K$cyUeVankHp2sIlzH>8k+$3r!tfO%ku%z=~Q1MrQdJ4_M|s_};2F&YA_)U32c zAxfhDXEcI!R9_g?_pLJiW5f|u;b%2Ww$tY%~{%c z%u&XrLPKB><@*V7j^rKUjtb-hK5#+C)5+Rlzo(q(C;8<@Mr5pzl+ z30t{9{|#ZCR?O6g)Q2i{kQt~PVfP_~)Kbx1>Y*0H)Xz{O?mH($P}$7kmBbjlY?zbN z`R$($*Uu5>;-6Bgx{-dm*+Syq?R4{3+{ISn3Tzp*xPcz-h~DCH_pKPymFN`HKjHe2{b^lIJVNOckSItxRiE~{xza~!C=ahdP498Z)0O~@)^C;3J>-KZBV_pKP)==z$0eBd3 z4215I?cp7+Iyiq6pi}XROK}fexUy;rl%g&09+h-zTr5|_&&kP-V(btgjr`B?XP4;W zA2B{IWGq}L9qNXMqQQOkfNKL?9gXMBP0BBRimlR(OD-Qv?Uh{O0Zts}Pq+ezM!aJh zkUlBC7P?(hOyA7yn}Bd+I5S?kaDDec=^8ZAUcm#E46Y`p8=^SA&4*Wc6r}JeglWr9 zBcycaNi%{Xs%j6To`3s^mY%0)GGR%y={~h~)^#l-dQ2Sy1+ds=u0g(0|xm_@aqic1Rjdg^aRC5hjt>SjPOy$ znPP>F63%Aq1m)Lt$#ssFUkeaiE~l3FU)9)M4Ot2o5?V!Qf$96F&$5WfzwMJ?n0*4x z5Jgi_xs2%*<&vvg5i^T{P)|?arv-7l4d;IN^lqMmq%%oBQcKK9Aw#hky$M@M(L^i= z6C2sZ{xTkaQ3gB&5p3loJUA3mLgn5KtGz~07QNAdSJOjhIHXXgrAMKaT2ZJc2TmkB zBk=S$te(!VU8Z3~20{Jj=*3Eyuz&tfh{Z_NTd46d|R)_9`#8e}%uvX64;v~&Xn ztD3K>8n(?}j*Pv(Mau;76$C75l{QxmmcD&Ji(7_JSo2*p=ig=ltiB{ndU8us6GgjF z_6VhAUN3EObjxmrFR){2Z2bcZs9!T{xA|b8ExAq4!rRJMH#p8!d>qXZw_)S@*am;- z^@iZN9`759&wQ$su`-k?v;$Rqa4l>f9V@E*eSpfg9oE6v!b!jKEOdF)yuRjuEQlb+iHaN%^xZed1jUUz%X^CJYzJ51T+SNLpvbxKaGT~0UQt<+*YXeCb{-k#=h0D8Tg#G)hyuCpS7Qb(Fv6#o)sVq-pWzde0#LEAJ%4Y&CDzJF}^2`ldtSn~p zt%DLQ+h#NZ&b;d7_6%~DdR|=s zmGf2TJYyc5Kwct#g!Xu#LjZ2ZEQ_8e_y5xSW`tWE1(d>&RCTo@LoX{@_#xS~9KY6K zF!^%}o|ISp?m50b!^(kgV3=nyF>*ktqcY6n_BbB7v{X4Km7TLp)>x7&sZ2@!X2$cv zOhi|^9hEr-2KzuEqYljb2R4GA{SO(A%V@zb6PR;tlG*!==WB~Gq9-fNjK6F-6-lMp zZz2%TP~@qZOMO*$qm!JAizQQQk|=rBvEmJ-htWBf;DIsgD_r!PF_)c()w=l*!OO_Ed7(N5ktKwdS-iIF^)7h0nO62%ClH1N8+FguRd8vawlX(TXHNi- z=bbKGl6mNLRoHPQL9Tx97zXCX4Gwd@~EM)dH9UF4z_3o@zKHhC=Y^O#O7+`rW#`gSB4_ZiPc#l zuf7Urc9RFEc{eq!4-c-R!a7`ZbV>w%s!!>`KPibh=)|oSb?dEO4Z7^CN^{DG&)R4nU6|*9hU;avcgTZ`iQ72CYj$$ zcF08zyfjx%4^YKWi$>s!hP|H)b3hv6sZ_EkIWQKqA_c=}xT)yrYi7cr--p_4RLu*P zJ!DVq(@paRD~QFbPq%%uJi}XMnVI`RNy0KUa18a6Jmj%QLg*h8^p9=Qp0j_4eiwR# z-bk!KGFGdup8vYfIJutf9?Dc$k<%vsYu|091~SH(*ULg8r>(f9gTsXFcP?jpy}ENb zKOn5qZ0i-lzcDXBFuG4xbw#R;FJG)30!`^E+P5>1U0lab4g}gpv$6D6(^+ns98G@n zQz+>v1zSs3hOYg~Tm&Mo&WfP4)0C}01P)e(65cLDRXw4Bcnq`rr7F|#X&oF%43xir zE~%zvSQ=C?FV1jrRHxTWjhFK~_2ytVZPV+6XY&E`Ph#jH5Wa+vURs=QNox&UauUU` z*dNy;|Jb6&WF|x>@iTz%3MkXe>j+-7RF$PBds%Gcg*_Z>(^Hr=&p?}|nltWS8_Pt^ z2F8l=t$YnEPZtU(#Mi~053H*9RaWXs5&m1SV8{av&AIb`q0S)ObhPbDDD9BwC22^& zXh{8n#4+H=y0HTjD&bVI6@(^6@RN!IU=pztvQH!--pn6}%5F8@AmHN2DPWQf4qs$YXAnSBb%V3n;MiTnquJar{6$zZ=i$F16vQrq~fa^Va}LG)Yra31^c>l;f;Bs!dQey=nQJCr}2t4v1@tq0~>4G#15S;o%5ZYi^uj6rN$Gq`n|hzc@_AfbO~c6OVmUbcny=8d;%!j^6bOKx8gp;9EMZno zdhu1Nju-1V;1-F3GbRvmmiimC4D^aDf)`m2v!cehTwkTjuWIyz@ZTGllEU!vU+&75 zwvgu9YGG^Q7`z^SUv3P=M}}k+4DwvW?rB4bw-3j+{%j zO*Qi5|(C;q{K5{*=~@94C9`n7gTTW`*ZtUL^k%M6>_`x#>mRNe0-u)swaE{D=fI` z8@WT|_TJvSVpoFhqg4h!gZ z4R&Z+1y&Ti^elkjpAh95yFb8Bpj{uhBA+aZyR|TR3ZdD`nq(uUtf)X#p~rN-@&hqClBjQD%Y$ z#!J#c*uT1qJVi88H1xZq$<6Y%lAb}|mVV%gy^oFMl+jqqfIa>188yq!%47irt?C@byd56bY5zW9zXrT-qn5q!(E@BQ zNgv>PjlgV$mcH3ueB$~FXXWxMtK6IvY$?tdns;t3SSt2T*N zobJCy^)jmC!761kXYjgiiP)=I-AX?}At#y@Cx!a*pawue=CA-`3${MlYcr-CF#n3_2<_ZU(-@}mKBO!3-=xf0v{+M@Ro?^v5 zv%1TFT8LUQPLcav%t$OAJZa&SB{Yt8dJ=OfrNHf{rpgalDaxWWU6uk&+TIFD+xYr= zz&}fo+5IiCI7$?(#U8e4u$)SxQHUUGeQ4`TkH5n-Uag_u&D%%)6RYLuy`O7seT8{h zaa(+z1~$#g?RL*#NjgBuffDMCslf?QzRhfpyW_KB9U0(_+Ld0p7s|;=02p%hdMk#q zFsC_rn%T+SU4mZasiNHieU@7DJ1xZ<$5m^s$A(+x{!`)+##(Ff=1eJntVZ+B+Dlj! z+v~>w+L`%564#=5jSFMSO_-$qM#@s>~QbSPB;{un0*&tK)jycvbZ4~*@ z+p6eu=jU^Nv^v+g-Ya~ME=GCxkAV-CwZ4DV;#lNZUj?ZudDmAZ?0n>+cGL_&v}m^2 zN7Z76x%g#V$1|l&$%~dWw6Q33i4t?JN4`<{hQZP^1oT5?xhfO0+};h4^&r>TvIYXB zTnbJU!ZQU%baV8YR1cPk(FJqv!dSHkjQLtgr0*Qe;G?3RqK0^*E<==8QVlNo>cUIN$RLl0;Ndeb@Z;XM#{fpHS86)hYr1Z)GnZJRHh zO~0;3SCy`NhI~yQ7&+OmBuulUawr$edZ*vycBTvWMEoqNKJU)bAVwNuEE-pRZ0-n% zCq2B=z4KF`HBY~dl|1b5$GNc2@LB}Ht&?2}?!=8118oP?y3keO{2}prc4;o2%)Km? zun=r4tkt=^vF56$MC zP}8Vn%k8|Slz$`j&K6s$$`Ivv-eJ|K+5p1As*N=(RqGL}(h@c%U?VW6qMya4{5pl* z#jeyD+-`d?gdBpgst3YUV9)`d;5*E`XRu~|6_(_L{l|=k}A0XEX6rY*c zi|f2)(54VA=4y*_duLuRy0L?Rfn8bVjM1 z$J-Ew9wf?^l)>6PbVwVW3KN296z9(O@mA@tnO(By!rdU3y$OP=^@SkbyrI5impIn_C3-ciY2H7KbC4rOfRe}Pn>t=Od3+so{Y3NBnr;U9 zK~&T1*HrMiYc2o6$*@4gu$5Q>tpy+Ez^5$d3^3=oHDk*=W;R;u%lMJG8IY+x9|I;* zC?X=upZ=C6&u->e0fUyI*Q9K4B8beTUpFV)5B!oz7J7xRRGs$_Mrk{2?Gvm=ynZ&I zC}C1?7q`7<0|?$ZIIGWPvkR#wdwJt%X>PG!(grp(VpRNs;LClHDU!#ES|(-^`4fvTkq{-nA%BV-^M+ zjDtd3qY@fT*t_?@1)0lY;d|9qyIw|58^%z^Y&HhIIx4 zyR^*F47<=bRJbv4@r9AxlfT<%Z3p-?pL;Dj8VCucG{YUg6YRn|)mABlFiPunY#qxJ z7LlA6g&9fwPq5;P(ZY|blKTj(cU-Q=lyW3Z0sbyX#WU4|d4sDrtC0q3_~ZRI;d?IQ zj2-GmTuu+$bwd^oGcIqK?HrwdQsa~nw0#r@Z&C59C9W_O5TJBgmJqfqkz5q$$V#a= z1*{tC;8@~$by@T5QEdy%CXB$E7&G2^Ua92Y_oqN)V`#I|@ukh_|BB`Wfaiao4Q;}ZrkoSE>HKEn z!xLKkd%>{R^y@-Ta!S#w3I8{)h@s7Uj>M6M`^%NY^K+=qi)V4Uh2r^gSX8J?<=RRTfVw*v{E(3AXF$0=@UaP?s&Oa0pG6X05WBM zbAV`#Pe=^BP6)d;^5y3IxLv}p1cA&MMGSnZ&^JLxbARhVp@!{YGD)4kY-;Yq8SjOZ zai338y6bSrfM|YOSqg9Ne%4G(@~Ic#4<>h(Y}q|^wIw=agofn?!|QtXKsEd-D~kB$F?0| zc*zzgk(Oydf+4dllH`|L?BYPUQ`KLP>+`}Se+XB;9~s6hP!E;+_z{=X!D+^@7YtaS zad1|@D9;tpl?gbpFeTfODyu4@Dj~O$q*#HA&}tz7pQ-4h{>Usyvt#`5{rZcJA`c7G zUMksFy(RE;2lairCO7x8pmKuA94+Q~Cgt8X+&l9_)HC}C+UG7V=t>X1)dUC|JL(T+ zC{Jp5Yc6#c&SdnG^IHU&7CYQFJWX5#J#yP>_4YNTl1+nOK}3xicqTk&71v;~JYg8H zL4JOz92;FgEi%1A=F);Dx!w3^IvtJ#$52j)okZM22}diUp>z!ImBz%PHIR*ihV<7> z>CnJy(!yYRM?e%su}{(!JkAH4OyWZ9h|$r69Z&X0M>BoU#AG!+k493m*q?GZ_zV%# z9z+PVBE9T1p>jiOA9L_%m>%K8+8d)EL*4W(F#0C}1p2l2PEDJ-L7 zk-~xLxx!3bN^TtW=q3o<79M7-3j4+4*twIunaL?$w}dow7zOa2)xUn^JP&&M+L&PK z?AyD3?QB87AQ!iFNi2aiCnWVz_;!?4P8HQyaT(5MWKp0)?vittiGkVA?8x3Xxtk>? z@03hK(I6AbZBj!=Ef*RTsHYsK#@9iixRJFVrQtazfUVK?6Wlmx4(jQA9=H4mxtPox&3$fa|hFPInTio)tpNDq1o=Wq6Gi zrY2&E8jFl76b`DIP zK~_*RwBLSl>_&S{5{<9uBIG)ll0hTb4}oMHnxp-~lBDm}p_ zBn+0P+X|jEJLCc+!|dsMiSb*>X@h4|q_L*>>qkjI7&VUR!S6J9wi-N~z-KhL3v0I1 zFc5!(0P>@Wht$VFL(;A+_OQqpB6U=@mX?W;yS5rb20iM1eP<2}tB-Q?4HMU3Bf940 z{ovhLb0gIt{}C>PvLmOkUqsQanu&+JQtpUhLSC1g;l62i4$C*a|5T15hg_n4L|Mu{ z9j7rb#M$xqvfc5PP4XULaH5D(MN?sO@_ADq@OhdNX5;K{apS1-NB7u1-e;_}B_sy* z^BXgPGSFblw$01H0Ly$CQQ^d5e1^%Kx$ASq^WYfP_vt{>0`rA2q$9bA^#CWFUo}c= zk;fXJ|Ih)uV(+15 z`s8@I2Xm!5K~tw7>cs0zJYw7Um1X4{I_^zGk3P1LpgI3T(?9p+&W|)6c3oVOJS5ab zXp(R4*(2!aomjZsDHuzMIr?|nw1QuCF;VEB zRhB)HJuE<3{yq$IrNI7Ulf1|KLO>TVfT2t@4t@r@Izx=A z1kKDa9ogC{^X;t5!))_)5O>|y?QZ`*#RGv542aKcc%1`x+->o1EG)DoX2%~{G9a|1 zmO}YSy9o>$P@3E8s>N74wBq;C;c4A_wFr+-JJ(wd_!0cU-dFIgaX0#vswv*&dT$@i z>#5UVkCo6#SsJu#&}KDne2)1+$kZAd{K_C)>lk0rDM1tQS+lFpa^q$h@|QrJ0}$y- z{3-7{tEA@Ku~-q}4v}Dm$D?6Q)*CP$T}!eTv*xBDhjRySlE9+%oX70`;6rz*#1&cl z{XF6v-6}IQJHo!VN5u4%uU0B?;HMnLMFs(ZmK^6^U1riqC#4&iUL3Y}G)`r>ui= zY3$KTG&CL(c@~!7d0$XZ0HECohiUDSk2*S?9&oUC&7o+m*lt>$9yhdq$aM?+J$v$7 zoWk^AWTvp$4Mm?4O!ginumA&Bw|sY$qNgQ~FXR%o+JIwY4#CDf`*Uv_7zg=65h`Au zoz>eBKHAT|03!UYZGFX8j1ZFTFw(L-~Lq= z2OF3!{Kx!F6m>Y@=s^PYiAuCFOW?brt9fRn>8v&lG}n+JzTOAD{vccB3V2gFk)mVs!XNTra3BZrErBN za|k>ay1wXzrSnT$kGywHZe7W8^e3jKAEV_qqEj_9?>2&6AwsF1-pbqpboe@o<6V?` z-UE*nSFc?!Ufr&DIiLxp)8TUYG@=AF=n~u!S~|jIyZ8G@G!9?B^no=7s|cyQNJ?I@ z>o8BtKEks(VwA3D8Ls(S96^lTY}j^}G`O|!bWJYM_7Q8k?%YcxAq(4a`?~nN-h$T2 zMv6xAjzL{elyDan%^O(U|INUF0Di634Z)>ZNDGDnoJ4AdyceRH$IPF6yVV(#$cPPT z0%zP-Xec#gMi33HMInwORZwEk^9}ih8tuh$Ljypg9J<9Mmq{>u`E_n0|I;N^ZIcR? zK2D>^+0}vl11mH0Zxda+d~JEHaY2rP_tvgu6%cXO0=2op2aA&rq7aJH)v$r)o`&gI z5_KPl!p8(F@z4XwF>l}>c{7ce{Ty{ax)VfGpY~KJnX+3D)zZSwlZs!i+Nm0$FKF$1 z!U@hR=+EbiN_Nq6rMWYCd**Y(;w5d3f^RKU2tM6I;65x@F(FG&H?C`fNfVa5lrz&d z5tq1amG(dzZ{dL5!#ZnrIz})jgQgUA#l7*tz*-UKF!YD1V9@YR2%=ZAId%8|=RUfI zcjMH`Ze_Cr)_wkKLIIq>vH{sc=i(>y-+~tkbb|92YeS0ybZ5!^PlO{K3?Vo zVy4S4>t_zvJ=44A()pc3KpUR47j{Wi`z9221R}kal8cOO?KNRV^b7}6c9)gMo7O&2 zQ`gI)Rx1|8UK0T)q@)Pshw2?Ydfu2$YEEmfp%7G@#7ur(e!mb2>?o2C9sdnCSshY~ zpTcth5xOR^b0NMl5-chn+KU2rW7c%bbPf5Sa6fB4oui}XwZN#Q((wjPc3<}rg9OoV zOsw=GbhYlFT3tU?-sFt(2+bxGTb!Svj3ol%@kzuq%@YWF-au2zEh!RX8E;GKLE7%A z9{hVgh*&9>l%1?RqL119#^=|#rYcNLW|0l2-HT>|O=DSgNBzf8?Wd$CB6@1M(r`uc zC`?Cy)zv+UuUjl|>HB>Ypy>OvqO-KDshXjyCLsg&p|iC04{l{6nfyM)ggw@?JS*DD za?|8P97>%^y7D9Sg}aI|z^FoM&d&!hj}_XYTWg=6t}YuI0gLue1q^1k9(OW3-IVcT z*H{de;$iF*KRa=1wme4~YUcUcfH_%1@sTT9yCaz?|2j|JZvFnXKNpaIM$4z=;4)bZ zG`s%tm1XA~i35dOB->-WI2HFjp)XRvyzeqp#{c}O>oMrGYR;=#dX6Q@EBJdwci!~` zxoJR@`<^VwJXGh>z|ZI04dEocV(bH{1dzH$%_qaWfZ_3L!FE4j=?59V9#hL_qY4<_ zroahVolf^OUB?ZitjG+uyd-gPY(7UE&i=+{h}=#u)yLO|EoAsj)zM9AIHCrCdja5# zP(YzU?p-sq_Rc11f9spJ+l1md))CLUZyz0|rQ^*^hmf{b8b;TZoQ}-khzpQ_ybDNr zgzVoIL+!@w5r%vz%3jr_v+d_Bla;YL6Zg>BXb))dCqb6SLYf34#A}*msMl`Ekv1A4 z9vhqTf5&U3#-rIFg+)+JG=he|3C;>$rYz>vp+r=D_)tsHHEC|}Uk0Pq%@g|$$Wo*4 zSiI>Gd`l6s<@R8v0qWP!T#Ay3R3(L>h1|@3dzpsY;-25fOPSoX^*YMjjQwh*VsAPy zAsGV)g>5Grajm(r&@|IRAB4pDXc$^KySHbLu-1GuF88jod|0;r6b;&K)%dwWA;HGh zN^Gr#U3WV_2QZpiUdTi8I$m<7*~3}>G0^S%r1~#%r8{jKQz1apL(Mb_9zvoP)=cNi zu+BzGA3qTOkrH4gA!LIHg+U4oKRI5X%1P{1z)dMfm~>J~KgMU7SDnp2V@Vhv{Y*{~ zd^k4W34y?(>Au5XH;u8y)^Qk{r=(>?<3(T9!mkt8WmPvw{5vy4+5;7)N2$1=I(>() z96DXdR9#C&`7|^z1wN|JhnA;Xoa5b1;{s`uZ_uNHZqTs;on?CD=oLO++{3E*Wqjts zpsh}t55HNmc${X~gVhq&@pGAToJ}k3P%SFB@URaSduHb#V#YZ(eB^X> z8S|bsdEfxKh>#(->M*(fguPh)ock%UjHK;CN>W2F465xA;#6j%6<$59hO(Ins^NnFM zSlP+*bR|EsmnsuG#Ey&js-UdI%sZI^h2$JMNX3#+8l8ZT1;1Z1oDXr`{_tJ17zl`l zk)x6Pb)DI=SfTDi4dVkfmYi%CXR@TAz+oxs(vFZ9GsiP4FBA<Hf~zBbLKeZc8K**Y{K0e=p_*DSNH@_CA zLaMJvj+}h2FUS0T>I~SgV@ofqt8^B&RkBsdG?^&+ZHmSLq}s;dMsxJ{HFC_t9D#Ed zq!QN?^#~3_ZIfEBZQ_BN#CvddPEKMx`dhXmp=9<}g&m=^H9`TWw5q5yYM?f}AKK!P zUI3XtrLFNmrGdn(S2QD9b_2k&F76-M@rUo7_{}&^|6-X^QaMY1ZoM@u%24n0a1q42 zN58iDAwX~agYDUKSV=O4o;qrJ0V0BB-?Q99bK`zotVOf){!~1qmX~!ZyB!f40I{)9 zdPf`tn$p*JQO!(Dwdm&EhvEDHB23Bq>Z`Qwr`EFXF$<9(tL|r)z713_!Ot-x3s$eF zOcvF^B$>a`utTJp&GCAw(J@{R3?oK0%PD2wo1*fZelM37!(& zIwkOc&E%=oXuqVytc+8dc%eecs3 zS|Cd}zSfoLD{Nz5iU{x1DcC(y+Y4YV0i(GZF;D}$c&^;STiPJJe z(Oqk*I#02xU@mKfmiKv_5j@=cE}PS16A**j3ds@Ck4FD%v6INDwtZ(SG-Q($gI{8O zr-z2Uiq}&Tl_g?1X`quyP09IuIVtBdnr6CYu8qt^upBMn71`P%V1gXE^%0QnZ&M3g zk!87aJR``ZFsr5Z?|tncRzh22`WilQJ~dNsJUlZ!^e6BpqVC<+KEi98lS)P8G)w8% z5P8#gq~A#%iO184u;*DR^0*C_-#pU06VXWe^QEhep@rvPb2L5=h zgm{&>93R?$l_^_$n*X8D3)&o(*SyY%bNQhGkI#_ahI3m`YgpJpH$iM$m3r$Tk^&b88@BqmYh(WlOccyZr?BXQ|_20`MpYV7C zuao>E`z}~Ib!*nM>9}rRS!MYDJ(xSk)4oofB?8-d0&MMB@eO@YsM!?jhMV_$YV^luy> ny^w}~9heFDC`6{#_7^zL^GweA2s;)S=qDv6FIp|4ANYR&5n${= literal 99649 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 TPm_Ba1o%jcD~Q#J7zO_yFrP** diff --git a/doc/resources/muon-monitor.png b/doc/resources/muon-monitor.png index 7511b116bff6e4dff4bf58595321d2f313fbb042..a5a4f154433f8aebce37e6c1ecc295b17319b857 100644 GIT binary patch delta 64474 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 Yu*E+8$}(CTB*aHfN?EcJQHS;a0CT0fuK)l5 delta 64517 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�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 diff --git a/doc/resources/spatial-showcase.png b/doc/resources/spatial-showcase.png index ad00f8cd3460d010398dcabd265628e5e96ea2f9..5df95df9b90fa64cba0035a57e8344a2a5a25a89 100644 GIT binary patch delta 41312 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

8mZ)-5(RSONsG_ONN-@F$8&UkUntpmD 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/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 Kcf~FHkx7XUVah6J+5Gz9W> zuYT8#7GAJtNvff$!FK~|+RC?<$6ZINy7(BMbHsuVE#0WP+sESu((btOCx(5_*q(!x4l?lW78JlU&Sw&Wof4ZIqRdOm0 zPlfBj(MgrTwlk}lJ>6);uoz92^?YnCI{KK*&gEd{qqN#)CxE44nqRfnV*f~t7+PBCZ%~QYM%(@nTKR^X@552YSyq7J{Tx)vdopdn z(I{)CZ#~M9a34p&_0ta?q@3AF1nIAF_&MmuAFtR zcSxe~VQT)dLvIH+dz3C-i165c1!FYMUfW|y#L_O_sIF)vIX|E!y1>x7#++3Igskfq ziFaE6K}cI{tV#?ug9> z60aA$*!zQ?eeoGy04fY*^UF?L_gVSCh5xorHhc9)n^E!zkjh6gm^9Te1n<-7|3y;% zvO62;s6!8g^MP1^Uqnc_C;-QS!O}T>49&jJphWHi--hrvTM`-dppj9Di2$F4(QVUcSfea ewnIwt`#!xcqrl?e31N3S@Vb7*NFS%`6!j05UAQ^` delta 40648 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 Date: Sat, 15 Feb 2020 15:01:04 +0300 Subject: [PATCH 03/15] README and minor doc update --- README.md | 38 ++++++++++++------- .../dataforge/vis/spatial/GeometryBuilder.kt | 3 ++ .../{serilization.kt => serialization.kt} | 0 3 files changed, 28 insertions(+), 13 deletions(-) rename dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/{serilization.kt => serialization.kt} (100%) diff --git a/README.md b/README.md index c5e4e86b..3395cc2f 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,16 @@ * [Introduction](#introduction) * [Features](#features) +* [About DataForge](#about-dataforge) * [Modules contained in this repository](#modules-contained-in-this-repository) * [dataforge-vis-common](#dataforge-vis-common) * [dataforge-vis-spatial](#dataforge-vis-spatial) * [dataforge-vis-spatial-gdml](#dataforge-vis-spatial-gdml) * [dataforge-vis-jsroot](#dataforge-vis-jsroot) -* [Demonstrations](#demo) +* [Demonstrations](#demonstrations) * [Spatial Showcase](#spatial-showcase) - * [Muon Monitor](#muon-monitor) - * [GDML](#gdml) + * [Muon Monitor](#muon-monitor-visualization) + * [GDML Example](#gdml-example) ## Introduction @@ -54,20 +55,31 @@ To learn more about DataForge, please consult the following URLs: ### dataforge-vis-common Contains a general hierarchy of classes and interfaces useful for visualization. -This module is not 3D-specific. +This module is not specific to 3D-visualization. -Class diagram: +The `dataforge-vis-common` module also includes configuration editors for JS (in `jsMain`) and JVM (in `jvmMain`). + +##### Class diagram: ![](doc/resources/class-diag-common.png) -This module also includes configuration editors for JS (in jsMain) and JVM (in jvmMain). + ### dataforge-vis-spatial Includes common classes and serializers for 3D visualisation, Three.js and JavaFX implementations. -Class diagram: +##### Prototypes + +One of the important features of the framework is support for 3D object prototypes (sometimes +also referred to as templates). The idea is that prototype geometry can be rendered once and reused +for multiple objects. This helps to significantly decrease memory usage. + +The `prototypes` property tree is defined in `VisualGroup3D` class, and `Proxy` class helps to reuse a template object. + +##### Class diagram: + ![](doc/resources/class-diag-3d.png) @@ -87,7 +99,7 @@ Note: Currently, this part is experimental and put here for completeness. This m The `demo` module contains several demonstrations of using the `dataforge-vis` framework: -### spatial-showcase +### Spatial Showcase Contains a simple demonstration with a grid including a few shapes that you can rotate, move camera, and so on. Some shapes will also periodically change their color and visibility. @@ -95,11 +107,11 @@ Some shapes will also periodically change their color and visibility. To see the demo: run `demo/spatial-showcase/Tasks/distribution/installJsDist` Gradle task, then open `build/distribuions/spatial-showcase-js-0.1.0-dev/index.html` file in your browser. -Example view: +##### Example view: ![](doc/resources/spatial-showcase.png) -### muon-monitor +### Muon Monitor Visualization A full-stack application example, showing the [Muon Monitor](http://npm.mipt.ru/projects/physics.html#mounMonitor) experiment set-up. @@ -109,11 +121,11 @@ Includes server back-end generating events, as well as visualization front-end. To run full-stack app (both server and browser front-end), run `demo/muon-monitor/application/run` task. -Example view: +##### Example view: ![](doc/resources/muon-monitor.png) -### gdml +### GDML Example Visualization example for geometry defined as GDML file. @@ -122,6 +134,6 @@ To build the app, run `demo/gdml/Tasks/distribution/installJsDist` task, then op drag-and-drop GDML file to the window to see visualization. For an example file, use `demo/gdml/src/jsMain/resources/cubes.gdml`. -Example view: +##### Example view: ![](doc/resources/gdml-demo.png) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/GeometryBuilder.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/GeometryBuilder.kt index 07ea1612..efc623d9 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/GeometryBuilder.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/GeometryBuilder.kt @@ -31,6 +31,9 @@ fun GeometryBuilder<*>.face4( face(vertex1, vertex3, vertex4, normal, meta) } +/** + * [Shape] is a [VisualObject3D] that can represent its own geometry as a set of polygons. + */ interface Shape : VisualObject3D { fun toGeometry(geometryBuilder: GeometryBuilder) } diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serilization.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serialization.kt similarity index 100% rename from dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serilization.kt rename to dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serialization.kt From b391b2b59d28b61287812693f54e08e36607f49e Mon Sep 17 00:00:00 2001 From: Peter Klimai Date: Sat, 22 Feb 2020 17:27:56 +0300 Subject: [PATCH 04/15] Minor doc update, fix class name in example --- README.md | 24 ++++++++++++------- .../ru/mipt/npm/muon/monitor/MMDemoApp.kt | 4 ++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3395cc2f..51eba421 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![JetBrains Research](https://jb.gg/badges/research.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) -# DataForge Visualisation Platform +# DataForge Visualization Platform ## Table of contents @@ -17,6 +17,7 @@ * [Muon Monitor](#muon-monitor-visualization) * [GDML Example](#gdml-example) + ## Introduction This repository contains a [DataForge](#about-dataforge)\-based framework @@ -28,6 +29,7 @@ Other applications including 2D plots are planned for the future. The project is being developed as a Kotlin multiplatform application, currently targeting browser JavaScript and JVM. + ## Features The main framework's features for now include: @@ -35,10 +37,11 @@ The main framework's features for now include: - Event display such as particle tracks, etc. - Scales up to few hundred thousands of elements - Camera move, rotate, zoom-in and zoom-out -- Object tree with property editor +- Scene graph as an object tree with property editor - Settings export and import - Multiple platform support + ## About DataForge DataForge is a software framework for automated scientific data processing. DataForge Visualization @@ -50,6 +53,7 @@ To learn more about DataForge, please consult the following URLs: * [DataForge documentation](http://npm.mipt.ru/dataforge/) * [Original implementation of DataForge](https://bitbucket.org/Altavir/dataforge/src/default/) + ## Modules contained in this repository ### dataforge-vis-common @@ -64,11 +68,13 @@ The `dataforge-vis-common` module also includes configuration editors for JS (in ![](doc/resources/class-diag-common.png) - - ### dataforge-vis-spatial -Includes common classes and serializers for 3D visualisation, Three.js and JavaFX implementations. +Includes common classes and serializers for 3D visualization, Three.js and JavaFX implementations. + +##### Class diagram: + +![](doc/resources/class-diag-3d.png) ##### Prototypes @@ -78,14 +84,16 @@ for multiple objects. This helps to significantly decrease memory usage. The `prototypes` property tree is defined in `VisualGroup3D` class, and `Proxy` class helps to reuse a template object. -##### Class diagram: +##### Styles -![](doc/resources/class-diag-3d.png) +`VisualGroup3D` has a `styleSheet` property that can optionally define styles at the Group's +level. Styles are applied to child (descendant) objects using `styles: List` property defined +in `VisualObject`. ### dataforge-vis-spatial-gdml -GDML bindings for 3D visualisation (to be moved to gdml project). +GDML bindings for 3D visualization (to be moved to gdml project). ### dataforge-vis-jsroot diff --git a/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt b/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt index 83c3f4d1..966a2e37 100644 --- a/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt +++ b/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt @@ -35,7 +35,7 @@ import org.w3c.dom.HTMLElement import kotlin.browser.document import kotlin.dom.clear -private class GDMLDemoApp : Application { +private class MMDemoApp : Application { private val model = Model() @@ -122,5 +122,5 @@ private class GDMLDemoApp : Application { } fun main() { - startApplication(::GDMLDemoApp) + startApplication(::MMDemoApp) } \ No newline at end of file From 691dbad44e8c284164919e088955650be41dcacd Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Mon, 24 Feb 2020 20:39:24 +0300 Subject: [PATCH 05/15] Minor refactoring --- .../hep/dataforge/vis/common/StyleSheet.kt | 5 +- .../vis/common/VisualObjectDelegate.kt | 73 +++++++++---------- .../hep/dataforge/vis/js/editor/jsTree.kt | 11 ++- .../vis/spatial/gdml/visualGDMLJvm.kt | 2 +- .../hep/dataforge/vis/spatial/Material3D.kt | 36 ++++++--- .../hep/dataforge/vis/spatial/PolyLine.kt | 10 ++- .../dataforge/vis/spatial/VisualObject3D.kt | 14 +--- .../vis/spatial/three/ThreeLineFactory.kt | 5 +- .../vis/spatial/three/ThreeMaterials.kt | 4 +- .../dataforge/vis/spatial/fx/FXMaterials.kt | 2 +- .../resources/cubes.gdml | 0 .../vis/spatial/gdml/demo/saveToJson.kt | 19 +++++ 12 files changed, 104 insertions(+), 77 deletions(-) rename demo/gdml/src/{jsMain => commonMain}/resources/cubes.gdml (100%) create mode 100644 demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt index fce0b422..f831bf68 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt @@ -10,6 +10,9 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import kotlinx.serialization.UseSerializers +/** + * A container for styles + */ @Serializable class StyleSheet() { @Transient @@ -28,7 +31,7 @@ class StyleSheet() { } /** - * Define a style without notifying + * Define a style without notifying owner */ fun define(key: String, style: Meta?) { if (style == null) { diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualObjectDelegate.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualObjectDelegate.kt index 1dba2c7f..ec16f977 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualObjectDelegate.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualObjectDelegate.kt @@ -2,9 +2,7 @@ package hep.dataforge.vis.common import hep.dataforge.meta.* import hep.dataforge.names.Name -import hep.dataforge.names.NameToken import hep.dataforge.names.asName -import hep.dataforge.names.toName import hep.dataforge.values.Value import kotlin.jvm.JvmName import kotlin.properties.ReadOnlyProperty @@ -48,7 +46,7 @@ class VisualObjectDelegateWrapper( override fun getValue(thisRef: Any?, property: KProperty<*>): T { val name = key ?: property.name.asName() - return read(obj.getProperty(name,inherited))?:default + return read(obj.getProperty(name, inherited)) ?: default } override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) { @@ -58,75 +56,72 @@ class VisualObjectDelegateWrapper( } -fun VisualObject.value(default: Value? = null, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.value } +fun VisualObject.value(default: Value? = null, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.value } -fun VisualObject.string(default: String? = null, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.string } +fun VisualObject.string(default: String? = null, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.string } -fun VisualObject.boolean(default: Boolean? = null, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.boolean } +fun VisualObject.boolean(default: Boolean? = null, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.boolean } -fun VisualObject.number(default: Number? = null, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.number } +fun VisualObject.number(default: Number? = null, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.number } -fun VisualObject.double(default: Double? = null, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.double } +fun VisualObject.double(default: Double? = null, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.double } -fun VisualObject.int(default: Int? = null, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.int } +fun VisualObject.int(default: Int? = null, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.int } -fun VisualObject.node(key: String? = null, inherited: Boolean = true) = - VisualObjectDelegateWrapper(this, key?.toName(), null, inherited) { it.node } +fun VisualObject.node(name: Name? = null, inherited: Boolean = true) = + VisualObjectDelegateWrapper(this, name, null, inherited) { it.node } -fun VisualObject.item(key: String? = null, inherited: Boolean = true) = - VisualObjectDelegateWrapper(this, key?.toName(), null, inherited) { it } +fun VisualObject.item(name: Name? = null, inherited: Boolean = true) = + VisualObjectDelegateWrapper(this, name, null, inherited) { it } //fun Configurable.spec(spec: Specification, key: String? = null) = ChildConfigDelegate(key) { spec.wrap(this) } @JvmName("safeString") -fun VisualObject.string(default: String, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.string } +fun VisualObject.string(default: String, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.string } @JvmName("safeBoolean") -fun VisualObject.boolean(default: Boolean, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.boolean } +fun VisualObject.boolean(default: Boolean, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.boolean } @JvmName("safeNumber") -fun VisualObject.number(default: Number, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.number } +fun VisualObject.number(default: Number, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.number } @JvmName("safeDouble") -fun VisualObject.double(default: Double, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.double } +fun VisualObject.double(default: Double, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.double } @JvmName("safeInt") -fun VisualObject.int(default: Int, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper(this, key?.toName(), default, inherited) { it.int } +fun VisualObject.int(default: Int, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { it.int } -inline fun > VisualObject.enum(default: E, key: String? = null, inherited: Boolean = false) = - VisualObjectDelegateWrapper( - this, - key?.let { NameToken(it).asName() }, - default, - inherited - ) { item -> item.string?.let { enumValueOf(it) } } +inline fun > VisualObject.enum(default: E, name: Name? = null, inherited: Boolean = false) = + VisualObjectDelegateWrapper(this, name, default, inherited) { + item -> item.string?.let { enumValueOf(it) } + } //merge properties fun VisualObject.merge( - key: String? = null, + name: Name? = null, transformer: (Sequence>) -> T ): ReadOnlyProperty { return object : ReadOnlyProperty { override fun getValue(thisRef: Any?, property: KProperty<*>): T { - val name = key?.toName() ?: property.name.asName() + val actualName = name ?: property.name.asName() val sequence = sequence> { var thisObj: VisualObject? = this@merge while (thisObj != null) { - thisObj.config[name]?.let { yield(it) } + thisObj.config[actualName]?.let { yield(it) } thisObj = thisObj.parent } } diff --git a/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/jsTree.kt b/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/jsTree.kt index 3cf4a985..dde67544 100644 --- a/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/jsTree.kt +++ b/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/jsTree.kt @@ -26,12 +26,11 @@ fun Element.displayObjectTree( } private fun TagConsumer.subTree( - fullName: Name, + name: Name, obj: VisualObject, clickCallback: (Name) -> Unit ) { -// val fullName = parentName + token - val token = fullName.last()?.toString()?:"World" + val token = name.last()?.toString()?:"World" //display as node if any child is visible if (obj is VisualGroup && obj.children.keys.any { !it.body.startsWith("@") }) { @@ -40,7 +39,7 @@ private fun TagConsumer.subTree( toggle = span("objTree-caret") label("objTree-label") { +token - onClickFunction = { clickCallback(fullName) } + onClickFunction = { clickCallback(name) } } } val subtree = ul("objTree-subtree") @@ -55,7 +54,7 @@ private fun TagConsumer.subTree( .forEach { (childToken, child) -> append { li().apply { - subTree(fullName + childToken, child, clickCallback) + subTree(name + childToken, child, clickCallback) } } } @@ -70,7 +69,7 @@ private fun TagConsumer.subTree( span("objTree-leaf") label("objTree-label") { +token - onClickFunction = { clickCallback(fullName) } + onClickFunction = { clickCallback(name) } } } } diff --git a/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDMLJvm.kt b/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDMLJvm.kt index ae1904f5..1127cead 100644 --- a/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDMLJvm.kt +++ b/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDMLJvm.kt @@ -8,7 +8,7 @@ import java.nio.file.Path fun GDML.Companion.readFile(file: Path): GDML { val xmlReader = StAXReader(Files.newInputStream(file), "UTF-8") - return GDML.format.parse(GDML.serializer(), xmlReader) + return format.parse(GDML.serializer(), xmlReader) } fun VisualGroup3D.gdml(file: Path, key: String = "", transformer: GDMLTransformer.() -> Unit = {}) { diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Material3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Material3D.kt index 342016cb..f489c62a 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Material3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Material3D.kt @@ -7,16 +7,29 @@ import hep.dataforge.names.plus import hep.dataforge.values.ValueType import hep.dataforge.vis.common.Colors import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_COLOR_KEY +import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_KEY import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_OPACITY_KEY class Material3D(override val config: Config) : Specific { + /** + * Primary web-color for the material + */ var color by string(key = COLOR_KEY) - var specularColor by string() + /** + * Specular color for phong material + */ + var specularColor by string(key = SPECULAR_COLOR_KEY) + /** + * Opacity + */ var opacity by float(1f, key = OPACITY_KEY) + /** + * Replace material by wire frame + */ var wireframe by boolean(false, WIREFRAME_KEY) companion object : Specification { @@ -25,7 +38,7 @@ class Material3D(override val config: Config) : Specific { val MATERIAL_KEY = "material".asName() internal val COLOR_KEY = "color".asName() val MATERIAL_COLOR_KEY = MATERIAL_KEY + COLOR_KEY - val SPECULAR_COLOR = "specularColor".asName() + val SPECULAR_COLOR_KEY = "specularColor".asName() internal val OPACITY_KEY = "opacity".asName() val MATERIAL_OPACITY_KEY = MATERIAL_KEY + OPACITY_KEY internal val WIREFRAME_KEY = "wireframe".asName() @@ -54,10 +67,16 @@ class Material3D(override val config: Config) : Specific { } } -fun VisualObject3D.color(rgb: String) { - setProperty(MATERIAL_COLOR_KEY, rgb) +/** + * Set color as web-color + */ +fun VisualObject3D.color(webColor: String) { + setProperty(MATERIAL_COLOR_KEY, webColor) } +/** + * Set color as integer + */ fun VisualObject3D.color(rgb: Int) { setProperty(MATERIAL_COLOR_KEY, rgb) } @@ -76,16 +95,15 @@ var VisualObject3D.color: String? setProperty(MATERIAL_COLOR_KEY, value) } -//var VisualObject3D.material: Material3D? -// get() = getProperty(MATERIAL_KEY).node?.let { Material3D.wrap(it) } -// set(value) = setProperty(MATERIAL_KEY, value?.config) +val VisualObject3D.material: Material3D? + get() = getProperty(MATERIAL_KEY).node?.let { Material3D.wrap(it) } fun VisualObject3D.material(builder: Material3D.() -> Unit) { - val node = config[Material3D.MATERIAL_KEY].node + val node = config[MATERIAL_KEY].node if (node != null) { Material3D.update(node, builder) } else { - config[Material3D.MATERIAL_KEY] = Material3D(builder) + config[MATERIAL_KEY] = Material3D(builder) } } diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt index 75d00ab4..eb850165 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt @@ -4,8 +4,10 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config +import hep.dataforge.meta.number +import hep.dataforge.names.asName +import hep.dataforge.names.plus import hep.dataforge.vis.common.AbstractVisualObject -import hep.dataforge.vis.common.number import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @@ -19,7 +21,11 @@ class PolyLine(var points: List) : AbstractVisualObject(), VisualObject override var scale: Point3D? = null //var lineType by string() - var thickness by number(1.0, key = "material.thickness") + var thickness by number(1.0, key = Material3D.MATERIAL_KEY + THICKNESS_KEY) + + companion object { + val THICKNESS_KEY = "thickness".asName() + } } diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualObject3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualObject3D.kt index db95754a..8e94ed65 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualObject3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualObject3D.kt @@ -22,22 +22,10 @@ interface VisualObject3D : VisualObject { var rotation: Point3D? var scale: Point3D? - fun MetaBuilder.updatePosition() { - xPos to position?.x - yPos to position?.y - zPos to position?.z - xRotation to rotation?.x - yRotation to rotation?.y - zRotation to rotation?.z - xScale to scale?.x - yScale to scale?.y - zScale to scale?.z - } - companion object { val VISIBLE_KEY = "visible".asName() - val SELECTED_KEY = "selected".asName() +// val SELECTED_KEY = "selected".asName() val DETAIL_KEY = "detail".asName() val LAYER_KEY = "layer".asName() val IGNORE_KEY = "ignore".asName() diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLineFactory.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLineFactory.kt index d2e8d52e..945bfc44 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLineFactory.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLineFactory.kt @@ -18,11 +18,10 @@ object ThreeLineFactory : ThreeFactory { vertices = obj.points.toTypedArray() } - val material = - ThreeMaterials.getLineMaterial(obj.getProperty(MeshThreeFactory.EDGES_MATERIAL_KEY).node) + val material = ThreeMaterials.getLineMaterial(obj.getProperty(MeshThreeFactory.EDGES_MATERIAL_KEY).node) material.linewidth = obj.thickness.toDouble() - material.color = obj.color?.let { Color(it) }?: DEFAULT_LINE_COLOR + material.color = obj.color?.let { Color(it) } ?: DEFAULT_LINE_COLOR return LineSegments(geometry, material).apply { updatePosition(obj) diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt index ff3ddcf9..d0d7d390 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt @@ -39,10 +39,10 @@ object ThreeMaterials { fun getMaterial(visualObject3D: VisualObject3D): Material { val meta = visualObject3D.getProperty(Material3D.MATERIAL_KEY).node ?: return ThreeMaterials.DEFAULT - return if (meta[Material3D.SPECULAR_COLOR] != null) { + return if (meta[Material3D.SPECULAR_COLOR_KEY] != null) { MeshPhongMaterial().apply { color = meta[Material3D.COLOR_KEY]?.getColor() ?: DEFAULT_COLOR - specular = meta[Material3D.SPECULAR_COLOR]!!.getColor() + specular = meta[Material3D.SPECULAR_COLOR_KEY]!!.getColor() opacity = meta[Material3D.OPACITY_KEY]?.double ?: 1.0 transparent = opacity < 1.0 wireframe = meta[Material3D.WIREFRAME_KEY].boolean ?: false diff --git a/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXMaterials.kt b/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXMaterials.kt index af8cb2ee..bdaf52dc 100644 --- a/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXMaterials.kt +++ b/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXMaterials.kt @@ -66,7 +66,7 @@ fun MetaItem<*>?.material(): Material { is MetaItem.NodeItem -> PhongMaterial().apply { val opacity = node[Material3D.OPACITY_KEY].double ?: 1.0 diffuseColor = node[Material3D.COLOR_KEY]?.color(opacity) ?: Color.DARKGREY - specularColor = node[Material3D.SPECULAR_COLOR]?.color(opacity) ?: Color.WHITE + specularColor = node[Material3D.SPECULAR_COLOR_KEY]?.color(opacity) ?: Color.WHITE } } } diff --git a/demo/gdml/src/jsMain/resources/cubes.gdml b/demo/gdml/src/commonMain/resources/cubes.gdml similarity index 100% rename from demo/gdml/src/jsMain/resources/cubes.gdml rename to demo/gdml/src/commonMain/resources/cubes.gdml diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt new file mode 100644 index 00000000..09ab2053 --- /dev/null +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt @@ -0,0 +1,19 @@ +package hep.dataforge.vis.spatial.gdml.demo + +import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.VisualGroup3D +import hep.dataforge.vis.spatial.gdml.LUnit +import hep.dataforge.vis.spatial.gdml.readFile +import hep.dataforge.vis.spatial.gdml.toVisual +import scientifik.gdml.GDML +import java.io.File +import java.nio.file.Paths + +fun main() { + val gdml = GDML.readFile(Paths.get("D:\\Work\\Projects\\gdml.kt\\gdml-source\\BM@N.gdml")) + val visual = gdml.toVisual { + lUnit = LUnit.CM + } + val json = Visual3DPlugin.json.stringify(VisualGroup3D.serializer(), visual) + File("D:\\Work\\Projects\\gdml.kt\\gdml-source\\BM@N.json").writeText(json) +} \ No newline at end of file From de3791a4efbad3a0f42ef077c8bb73841a23fb7d Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 26 Feb 2020 10:02:26 +0300 Subject: [PATCH 06/15] Add universal file reader to gdml-jvm --- .../vis/spatial/gdml/demo/GDMLDemoApp.kt | 35 ++++--------- .../vis/spatial/gdml/demo/readFile.kt | 50 +++++++++++++++++++ 2 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt index b4a75c37..23ac0290 100644 --- a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt @@ -4,15 +4,13 @@ import hep.dataforge.context.Global import hep.dataforge.vis.fx.editor.VisualObjectEditorFragment import hep.dataforge.vis.fx.editor.VisualObjectTreeFragment import hep.dataforge.vis.spatial.Material3D +import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.VisualGroup3D import hep.dataforge.vis.spatial.fx.FX3DPlugin import hep.dataforge.vis.spatial.fx.FXCanvas3D -import hep.dataforge.vis.spatial.gdml.LUnit -import hep.dataforge.vis.spatial.gdml.readFile -import hep.dataforge.vis.spatial.gdml.toVisual import javafx.geometry.Orientation import javafx.scene.Parent import javafx.stage.FileChooser -import scientifik.gdml.GDML import tornadofx.* class GDMLDemoApp : App(GDMLView::class) @@ -38,24 +36,10 @@ class GDMLView : View() { buttonbar { button("Load GDML") { action { - val file = chooseFile("Select a GDML file", filters = gdmlFilter).firstOrNull() - if (file != null) { - val obj = GDML.readFile(file.toPath()).toVisual { - lUnit = LUnit.CM - - solidConfiguration = { parent, solid -> - if (solid.name == "cave") { - setProperty(Material3D.MATERIAL_WIREFRAME_KEY, true) - } - if (parent.physVolumes.isNotEmpty()) { - useStyle("opaque") { - Material3D.MATERIAL_OPACITY_KEY put 0.3 - } - } - } - } - canvas.render(obj) - } + val file = chooseFile("Select a GDML/json file", filters = fileNameFilter).firstOrNull() + ?: return@action + val visual: VisualGroup3D = Visual3DPlugin.readFile(file) + canvas.render(visual) } } } @@ -68,8 +52,11 @@ class GDMLView : View() { } companion object { - private val gdmlFilter = arrayOf( - FileChooser.ExtensionFilter("GDML", "*.gdml", "*.xml") + private val fileNameFilter = arrayOf( + FileChooser.ExtensionFilter("GDML", "*.gdml", "*.xml"), + FileChooser.ExtensionFilter("JSON", "*.json"), + FileChooser.ExtensionFilter("JSON.ZIP", "*.json.zip"), + FileChooser.ExtensionFilter("JSON.GZ", "*.json.gz") ) } } diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt new file mode 100644 index 00000000..11c4e162 --- /dev/null +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt @@ -0,0 +1,50 @@ +package hep.dataforge.vis.spatial.gdml.demo + +import hep.dataforge.vis.spatial.Material3D +import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.VisualGroup3D +import hep.dataforge.vis.spatial.gdml.LUnit +import hep.dataforge.vis.spatial.gdml.readFile +import hep.dataforge.vis.spatial.gdml.toVisual +import scientifik.gdml.GDML +import java.io.File +import java.util.zip.GZIPInputStream +import java.util.zip.ZipInputStream + +fun Visual3DPlugin.Companion.readFile(file: File): VisualGroup3D = when { + file.extension == "gdml" || file.extension == "xml" -> { + GDML.readFile(file.toPath()).toVisual { + lUnit = LUnit.CM + + solidConfiguration = { parent, solid -> + if (solid.name == "cave") { + setProperty(Material3D.MATERIAL_WIREFRAME_KEY, true) + } + if (parent.physVolumes.isNotEmpty()) { + useStyle("opaque") { + Material3D.MATERIAL_OPACITY_KEY put 0.3 + } + } + } + } + } + file.extension == "json" -> Visual3DPlugin.json + .parse(VisualGroup3D.serializer(), file.readText()) + file.name.endsWith("json.zip") -> { + file.inputStream().use { + val unzip = ZipInputStream(it, Charsets.UTF_8) + val text = unzip.readAllBytes().decodeToString() + json.parse(VisualGroup3D.serializer(), text) + } + } + file.name.endsWith("json.gz") -> { + file.inputStream().use { + val unzip = GZIPInputStream(it) + val text = unzip.readAllBytes().decodeToString() + json.parse(VisualGroup3D.serializer(), text) + } + } + else -> error("Unknown extension ${file.extension}") +} + +fun Visual3DPlugin.Companion.readFile(fileName: String): VisualGroup3D = readFile(File(fileName)) \ No newline at end of file From 3dc2b13d869cd8c176a5cc648d1a166ea8461fb7 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Wed, 26 Feb 2020 23:03:27 +0300 Subject: [PATCH 07/15] Fix deserialization issue --- dataforge-vis-spatial-gdml/build.gradle.kts | 2 +- .../dataforge/vis/spatial/gdml/visualGDML.kt | 6 + dataforge-vis-spatial/build.gradle.kts | 2 +- .../hep/dataforge/vis/spatial/ConeSegment.kt | 13 + .../dataforge/vis/spatial/VisualGroup3D.kt | 19 +- .../dataforge/vis/spatial/serialization.kt | 6 +- .../hep/dataforge/vis/spatial/geometryJVM.kt | 7 +- demo/gdml/build.gradle.kts | 5 + .../vis/spatial/gdml/demo/GDMLDemoApp.kt | 5 +- .../vis/spatial/gdml/demo/readFile.kt | 7 +- .../vis/spatial/gdml/demo/saveToJson.kt | 4 +- .../vis/spatial/FileSerializationTest.kt | 13 + demo/gdml/src/jvmTest/resources/cubes.json | 458 ++++++++++++++++++ 13 files changed, 521 insertions(+), 26 deletions(-) create mode 100644 demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt create mode 100644 demo/gdml/src/jvmTest/resources/cubes.json diff --git a/dataforge-vis-spatial-gdml/build.gradle.kts b/dataforge-vis-spatial-gdml/build.gradle.kts index 2d8a4200..a1a23902 100644 --- a/dataforge-vis-spatial-gdml/build.gradle.kts +++ b/dataforge-vis-spatial-gdml/build.gradle.kts @@ -7,7 +7,7 @@ kotlin { val commonMain by getting { dependencies { api(project(":dataforge-vis-spatial")) - api("scientifik:gdml:0.1.4") + api("scientifik:gdml:0.1.5") } } } diff --git a/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt b/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt index 8fc395e1..26e1ef98 100644 --- a/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt +++ b/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt @@ -66,6 +66,12 @@ private fun VisualGroup3D.addSolid( solid.deltaphi * aScale, name ) + is GDMLCone -> cone(solid.rmax1, solid.z, solid.rmax2, name = name) { + require(solid.rmin1 == 0.0){"Empty cones are not supported"} + require(solid.rmin2 == 0.0){"Empty cones are not supported"} + startAngle = solid.startphi.toFloat() + angle = solid.deltaphi.toFloat() + } is GDMLXtru -> extrude(name) { shape { solid.vertices.forEach { diff --git a/dataforge-vis-spatial/build.gradle.kts b/dataforge-vis-spatial/build.gradle.kts index 2fe2ac14..f587d39d 100644 --- a/dataforge-vis-spatial/build.gradle.kts +++ b/dataforge-vis-spatial/build.gradle.kts @@ -20,7 +20,7 @@ kotlin { } jvmMain { dependencies { - implementation("org.fxyz3d:fxyz3d:0.5.2") { + api("org.fxyz3d:fxyz3d:0.5.2") { exclude(module = "slf4j-simple") } api("org.jetbrains.kotlinx:kotlinx-coroutines-javafx:${Scientifik.coroutinesVersion}") diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt index 9aa090ef..86abbe61 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt @@ -82,4 +82,17 @@ inline fun VisualGroup3D.cylinder( r.toFloat(), height.toFloat(), r.toFloat() +).apply(block).also { set(name, it) } + + +inline fun VisualGroup3D.cone( + bottomRadius: Number, + height: Number, + upperRadius: Number = 0.0, + name: String = "", + block: ConeSegment.() -> Unit = {} +): ConeSegment = ConeSegment( + bottomRadius.toFloat(), + height.toFloat(), + upperRadius = upperRadius.toFloat() ).apply(block).also { set(name, it) } \ No newline at end of file diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt index 44717f4d..83a089a8 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt @@ -54,10 +54,10 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { private val _children = HashMap() override val children: Map get() = _children - init { - //Do after deserialization - attachChildren() - } +// init { +// //Do after deserialization +// attachChildren() +// } /** * Update or create stylesheet @@ -103,15 +103,18 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { } override fun attachChildren() { - super.attachChildren() - prototypes?.run { - parent = this - attachChildren() + prototypes?.let { + it.parent = this + it.attachChildren() } + super.attachChildren() } companion object { const val PROTOTYPES_KEY = "templates" + + fun fromJson(json: String): VisualGroup3D = + Visual3DPlugin.json.parse(serializer(),json).also { it.attachChildren() } } } diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serialization.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serialization.kt index b4f87d39..37115129 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serialization.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/serialization.kt @@ -46,8 +46,8 @@ object Point3DSerializer : KSerializer { when (val i = decodeElementIndex(descriptor)) { CompositeDecoder.READ_DONE -> break@loop 0 -> x = decodeNullableSerializableElement(descriptor, 0, DoubleSerializer.nullable) ?: 0.0 - 1 -> y = decodeNullableSerializableElement(descriptor, 0, DoubleSerializer.nullable) ?: 0.0 - 2 -> z = decodeNullableSerializableElement(descriptor, 0, DoubleSerializer.nullable) ?: 0.0 + 1 -> y = decodeNullableSerializableElement(descriptor, 1, DoubleSerializer.nullable) ?: 0.0 + 2 -> z = decodeNullableSerializableElement(descriptor, 2, DoubleSerializer.nullable) ?: 0.0 else -> throw SerializationException("Unknown index $i") } } @@ -79,7 +79,7 @@ object Point2DSerializer : KSerializer { when (val i = decodeElementIndex(descriptor)) { CompositeDecoder.READ_DONE -> break@loop 0 -> x = decodeNullableSerializableElement(descriptor, 0, DoubleSerializer.nullable) ?: 0.0 - 1 -> y = decodeNullableSerializableElement(descriptor, 0, DoubleSerializer.nullable) ?: 0.0 + 1 -> y = decodeNullableSerializableElement(descriptor, 1, DoubleSerializer.nullable) ?: 0.0 else -> throw SerializationException("Unknown index $i") } } diff --git a/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/geometryJVM.kt b/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/geometryJVM.kt index 396d43b2..1d9c1a04 100644 --- a/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/geometryJVM.kt +++ b/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/geometryJVM.kt @@ -1,12 +1,13 @@ package hep.dataforge.vis.spatial +import org.fxyz3d.geometry.Point3D as FXPoint3D actual data class Point2D(actual var x: Double, actual var y: Double) { actual constructor(x: Number, y: Number) : this(x.toDouble(), y.toDouble()) } -actual class Point3D(val point: org.fxyz3d.geometry.Point3D) { +actual class Point3D(val point: FXPoint3D) { actual constructor(x: Number, y: Number, z: Number) : this( - org.fxyz3d.geometry.Point3D( + FXPoint3D( x.toFloat(), y.toFloat(), z.toFloat() @@ -32,7 +33,7 @@ actual class Point3D(val point: org.fxyz3d.geometry.Point3D) { } override fun equals(other: Any?): Boolean { - return this.point == (other as? hep.dataforge.vis.spatial.Point3D)?.point + return this.point == (other as? Point3D)?.point } override fun hashCode(): Int { diff --git a/demo/gdml/build.gradle.kts b/demo/gdml/build.gradle.kts index 67570e1d..7558d178 100644 --- a/demo/gdml/build.gradle.kts +++ b/demo/gdml/build.gradle.kts @@ -27,6 +27,11 @@ kotlin { api(project(":dataforge-vis-spatial-gdml")) } } + jvmMain{ + dependencies { + api("org.fxyz3d:fxyz3d:0.5.2") + } + } } } diff --git a/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt b/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt index f4e6d4c5..92ab0f6f 100644 --- a/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt +++ b/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt @@ -14,7 +14,6 @@ import hep.dataforge.vis.js.editor.displayPropertyEditor import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_COLOR_KEY import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_OPACITY_KEY import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_WIREFRAME_KEY -import hep.dataforge.vis.spatial.Visual3DPlugin import hep.dataforge.vis.spatial.VisualGroup3D import hep.dataforge.vis.spatial.VisualObject3D import hep.dataforge.vis.spatial.VisualObject3D.Companion.VISIBLE_KEY @@ -142,9 +141,7 @@ private class GDMLDemoApp : Application { val visual: VisualObject3D = when { name.endsWith(".gdml") || name.endsWith(".xml") -> gdml.toVisual(gdmlConfiguration) - name.endsWith(".json") -> { - Visual3DPlugin.json.parse(VisualGroup3D.serializer(), data).apply { attachChildren() } - } + name.endsWith(".json") -> VisualGroup3D.fromJson(data) else -> { window.alert("File extension is not recognized: $name") error("File extension is not recognized: $name") diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt index 11c4e162..e4d66bdc 100644 --- a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt @@ -28,20 +28,19 @@ fun Visual3DPlugin.Companion.readFile(file: File): VisualGroup3D = when { } } } - file.extension == "json" -> Visual3DPlugin.json - .parse(VisualGroup3D.serializer(), file.readText()) + file.extension == "json" -> VisualGroup3D.fromJson(file.readText()) file.name.endsWith("json.zip") -> { file.inputStream().use { val unzip = ZipInputStream(it, Charsets.UTF_8) val text = unzip.readAllBytes().decodeToString() - json.parse(VisualGroup3D.serializer(), text) + VisualGroup3D.fromJson(text) } } file.name.endsWith("json.gz") -> { file.inputStream().use { val unzip = GZIPInputStream(it) val text = unzip.readAllBytes().decodeToString() - json.parse(VisualGroup3D.serializer(), text) + VisualGroup3D.fromJson(text) } } else -> error("Unknown extension ${file.extension}") diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt index 09ab2053..3f60546f 100644 --- a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt @@ -10,10 +10,10 @@ import java.io.File import java.nio.file.Paths fun main() { - val gdml = GDML.readFile(Paths.get("D:\\Work\\Projects\\gdml.kt\\gdml-source\\BM@N.gdml")) + val gdml = GDML.readFile(Paths.get("D:\\Work\\Projects\\gdml.kt\\gdml-source\\cubes.gdml")) val visual = gdml.toVisual { lUnit = LUnit.CM } val json = Visual3DPlugin.json.stringify(VisualGroup3D.serializer(), visual) - File("D:\\Work\\Projects\\gdml.kt\\gdml-source\\BM@N.json").writeText(json) + File("D:\\Work\\Projects\\gdml.kt\\gdml-source\\cubes.json").writeText(json) } \ No newline at end of file diff --git a/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt b/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt new file mode 100644 index 00000000..c3a69cfb --- /dev/null +++ b/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt @@ -0,0 +1,13 @@ +package hep.dataforge.vis.spatial + +import hep.dataforge.names.asName +import org.junit.Test + +class FileSerializationTest { + @Test + fun testFileRead(){ + val text = this::class.java.getResourceAsStream("/cubes.json").readAllBytes().decodeToString() + val visual = VisualGroup3D.fromJson(text) + visual["composite_001".asName()] + } +} \ No newline at end of file diff --git a/demo/gdml/src/jvmTest/resources/cubes.json b/demo/gdml/src/jvmTest/resources/cubes.json new file mode 100644 index 00000000..31cbf7ba --- /dev/null +++ b/demo/gdml/src/jvmTest/resources/cubes.json @@ -0,0 +1,458 @@ +{ + "templates": { + "children": { + "segment": { + "type": "hep.dataforge.vis.spatial.Tube", + "radius": 20.0, + "height": 5.0, + "innerRadius": 17.0, + "angle": 1.0471976, + "properties": { + "@style": "material[G4_WATER]" + } + }, + "cave": { + "type": "3d.box", + "xSize": 200.0, + "ySize": 200.0, + "zSize": 200.0, + "properties": { + "@style": [ + "material[G4_AIR]", + "opaque" + ] + } + }, + "volumes": { + "type": "group.3d", + "children": { + "composite": { + "type": "group.3d", + "children": { + "segment_1": { + "type": "3d.proxy", + "templateName": "volumes.segment_vol", + "rotation": { + "z": 1.0471975803375244 + } + }, + "segment_2": { + "type": "3d.proxy", + "templateName": "volumes.segment_vol", + "rotation": { + "z": 2.094395160675049 + } + }, + "segment_3": { + "type": "3d.proxy", + "templateName": "volumes.segment_vol", + "rotation": { + "z": 3.1415927410125732 + } + }, + "segment_4": { + "type": "3d.proxy", + "templateName": "volumes.segment_vol", + "rotation": { + "z": 4.188790321350098 + } + }, + "segment_0": { + "type": "3d.proxy", + "templateName": "volumes.segment_vol" + }, + "box": { + "type": "3d.proxy", + "templateName": "box" + }, + "segment_5": { + "type": "3d.proxy", + "templateName": "volumes.segment_vol", + "rotation": { + "z": 5.235987663269043 + } + } + } + }, + "segment_vol": { + "type": "group.3d", + "children": { + "segment": { + "type": "3d.proxy", + "templateName": "segment" + } + } + } + } + }, + "box": { + "type": "3d.box", + "xSize": 30.0, + "ySize": 30.0, + "zSize": 30.0, + "properties": { + "@style": [ + "material[G4_AIR]", + "opaque" + ] + } + } + } + }, + "styleSheet": { + "styleMap": { + "material[G4_WATER]": { + "material": { + "color": 1710240 + }, + "gdml": { + "material": "G4_WATER" + } + }, + "opaque": { + "material": { + "opacity": 0.3 + } + }, + "material[G4_AIR]": { + "material": { + "color": 6376463 + }, + "gdml": { + "material": "G4_AIR" + } + } + } + }, + "properties": { + "rotation": { + "order": "ZXY" + } + }, + "children": { + "@static(1529060733)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "y": 50.0 + }, + "rotation": { + "x": 2.094395160675049, + "y": 4.188790321350098, + "z": 2.094395160675049 + } + }, + "@static(1496355635)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "rotation": { + "x": 2.094395160675049, + "y": 2.094395160675049, + "z": 2.094395160675049 + } + }, + "@static(166794956)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "y": -50.0 + }, + "rotation": { + "x": 2.094395160675049, + "z": 2.094395160675049 + } + }, + "@static(609962972)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "y": 50.0 + }, + "rotation": { + "x": 4.188790321350098, + "y": 4.188790321350098, + "z": 2.094395160675049 + } + }, + "@static(1741979653)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "y": -50.0, + "z": -50.0 + }, + "rotation": { + "x": 2.094395160675049 + } + }, + "@static(1484171695)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "z": 50.0 + }, + "rotation": { + "x": 2.094395160675049, + "y": 2.094395160675049, + "z": 4.188790321350098 + } + }, + "composite_003": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "z": -50.0 + }, + "rotation": { + "y": 2.094395160675049 + } + }, + "@static(6519275)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "y": 50.0 + }, + "rotation": { + "y": 4.188790321350098, + "z": 2.094395160675049 + } + }, + "composite_001": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "y": -50.0 + }, + "rotation": { + "z": 2.094395160675049 + } + }, + "@static(934275857)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0 + }, + "rotation": { + "x": 4.188790321350098, + "y": 2.094395160675049, + "z": 2.094395160675049 + } + }, + "composite_005": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "z": 50.0 + }, + "rotation": { + "y": 2.094395160675049, + "z": 4.188790321350098 + } + }, + "@static(712609105)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "y": -50.0 + }, + "rotation": { + "x": 4.188790321350098, + "z": 2.094395160675049 + } + }, + "@static(1364913072)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "z": 50.0 + }, + "rotation": { + "x": 4.188790321350098, + "y": 2.094395160675049, + "z": 4.188790321350098 + } + }, + "@static(232307208)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "y": 50.0, + "z": -50.0 + }, + "rotation": { + "x": 4.188790321350098, + "y": 4.188790321350098 + } + }, + "@static(1388278453)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "z": -50.0 + }, + "rotation": { + "x": 4.188790321350098, + "y": 2.094395160675049 + } + }, + "@static(1803669141)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "y": -50.0, + "z": -50.0 + }, + "rotation": { + "x": 4.188790321350098 + } + }, + "@static(692331943)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "y": 50.0, + "z": 50.0 + }, + "rotation": { + "y": 4.188790321350098, + "z": 4.188790321350098 + } + }, + "@static(106374177)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "y": 50.0, + "z": 50.0 + }, + "rotation": { + "x": 2.094395160675049, + "y": 4.188790321350098, + "z": 4.188790321350098 + } + }, + "composite_004": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0 + }, + "rotation": { + "y": 2.094395160675049, + "z": 2.094395160675049 + } + }, + "cave": { + "type": "3d.proxy", + "templateName": "cave" + }, + "composite_002": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "y": -50.0, + "z": 50.0 + }, + "rotation": { + "z": 4.188790321350098 + } + }, + "@static(1836463382)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "y": -50.0, + "z": 50.0 + }, + "rotation": { + "x": 4.188790321350098, + "z": 4.188790321350098 + } + }, + "composite_006": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "y": 50.0, + "z": -50.0 + }, + "rotation": { + "y": 4.188790321350098 + } + }, + "@static(306612792)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "y": -50.0, + "z": 50.0 + }, + "rotation": { + "x": 2.094395160675049, + "z": 4.188790321350098 + } + }, + "@static(1818544933)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": 50.0, + "y": 50.0, + "z": 50.0 + }, + "rotation": { + "x": 4.188790321350098, + "y": 4.188790321350098, + "z": 4.188790321350098 + } + }, + "@static(447212746)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "z": -50.0 + }, + "rotation": { + "x": 2.094395160675049, + "y": 2.094395160675049 + } + }, + "@static(2127036371)": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "y": 50.0, + "z": -50.0 + }, + "rotation": { + "x": 2.094395160675049, + "y": 4.188790321350098 + } + }, + "composite_000": { + "type": "3d.proxy", + "templateName": "volumes.composite", + "position": { + "x": -50.0, + "y": -50.0, + "z": -50.0 + } + } + } +} \ No newline at end of file From 9b4105b300bc5707d5770bbc4901f951ec3fba53 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Thu, 27 Feb 2020 11:23:57 +0300 Subject: [PATCH 08/15] Move prototypes to children --- build.gradle.kts | 2 +- .../vis/common/AbstractVisualGroup.kt | 16 ++++-------- .../vis/common/AbstractVisualObject.kt | 3 +++ .../hep/dataforge/vis/common/VisualGroup.kt | 6 ++++- .../dataforge/vis/spatial/gdml/visualGDML.kt | 1 + .../kotlin/hep/dataforge/vis/spatial/Box.kt | 1 + .../hep/dataforge/vis/spatial/Composite.kt | 1 + .../hep/dataforge/vis/spatial/ConeSegment.kt | 1 + .../hep/dataforge/vis/spatial/Convex.kt | 1 + .../hep/dataforge/vis/spatial/Extruded.kt | 1 + .../hep/dataforge/vis/spatial/Label3D.kt | 1 + .../hep/dataforge/vis/spatial/PolyLine.kt | 1 + .../kotlin/hep/dataforge/vis/spatial/Proxy.kt | 7 +++++ .../hep/dataforge/vis/spatial/Sphere.kt | 1 + .../kotlin/hep/dataforge/vis/spatial/Tube.kt | 1 + .../dataforge/vis/spatial/VisualGroup3D.kt | 26 ++++++++++--------- .../dataforge/vis/spatial/transform/UnRef.kt | 1 + .../dataforge/vis/spatial/demo/VariableBox.kt | 1 + 18 files changed, 47 insertions(+), 25 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0378807d..c1218820 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,7 +26,7 @@ allprojects { } group = "hep.dataforge" - version = "0.1.0-dev" + version = "0.1.1-dev" } subprojects{ diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualGroup.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualGroup.kt index 889cb0dc..a0af25b7 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualGroup.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualGroup.kt @@ -1,7 +1,10 @@ package hep.dataforge.vis.common import hep.dataforge.meta.MetaItem -import hep.dataforge.names.* +import hep.dataforge.names.Name +import hep.dataforge.names.NameToken +import hep.dataforge.names.asName +import hep.dataforge.names.isEmpty import kotlinx.serialization.Transient @@ -76,7 +79,7 @@ abstract class AbstractVisualGroup : AbstractVisualObject(), MutableVisualGroup * Add named or unnamed child to the group. If key is null the child is considered unnamed. Both key and value are not * allowed to be null in the same time. If name is present and [child] is null, the appropriate element is removed. */ - override fun set(name: Name, child: VisualObject?) { + override fun set(name: Name, child: VisualObject?): Unit { when { name.isEmpty() -> { if (child != null) { @@ -100,13 +103,4 @@ abstract class AbstractVisualGroup : AbstractVisualObject(), MutableVisualGroup structureChangeListeners.forEach { it.callback(name, child) } } - operator fun set(key: String, child: VisualObject?): Unit { - if (key.isBlank()) { - if(child!= null) { - addStatic(child) - } - } else { - set(key.toName(), child) - } - } } \ No newline at end of file diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualObject.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualObject.kt index 7701eb1c..5487a304 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualObject.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/AbstractVisualObject.kt @@ -73,6 +73,9 @@ abstract class AbstractVisualObject : VisualObject { styleCache = it } + /** + * All available properties in a layered form + */ override fun allProperties(): Laminate = Laminate(properties, mergedStyles) override fun getProperty(name: Name, inherit: Boolean): MetaItem<*>? { diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt index 0a90adff..7108209e 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt @@ -53,7 +53,7 @@ interface VisualGroup : Provider, Iterable, VisualObject { */ fun attachChildren() { styleSheet?.owner = this - this.children.values.forEach { + children.values.forEach { it.parent = this (it as? VisualGroup)?.attachChildren() } @@ -90,4 +90,8 @@ interface MutableVisualGroup : VisualGroup { operator fun VisualGroup.get(str: String?) = get(str?.toName() ?: Name.EMPTY) +operator fun MutableVisualGroup.set(key: String, child: VisualObject?) { + set(key.toName(), child) +} + fun MutableVisualGroup.removeAll() = children.keys.map { it.asName() }.forEach { this[it] = null } \ No newline at end of file diff --git a/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt b/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt index 26e1ef98..97594bd0 100644 --- a/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt +++ b/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt @@ -5,6 +5,7 @@ import hep.dataforge.names.Name import hep.dataforge.names.asName import hep.dataforge.names.plus import hep.dataforge.vis.common.get +import hep.dataforge.vis.common.set import hep.dataforge.vis.spatial.* import hep.dataforge.vis.spatial.World.ONE import hep.dataforge.vis.spatial.World.ZERO diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt index fd6358a2..438fe2f0 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt @@ -10,6 +10,7 @@ import hep.dataforge.meta.get import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.VisualFactory import hep.dataforge.vis.common.VisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt index ed6f087b..a1f5df12 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt @@ -6,6 +6,7 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.meta.update import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt index 86abbe61..9d1c94d7 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt @@ -5,6 +5,7 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.cos diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt index 1ca46886..eac4d39f 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt @@ -5,6 +5,7 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt index 18dac3d0..54577af6 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt @@ -4,6 +4,7 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.PI diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt index 01ff005e..97ac5adf 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt @@ -5,6 +5,7 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt index eb850165..d028c81e 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt @@ -8,6 +8,7 @@ import hep.dataforge.meta.number import hep.dataforge.names.asName import hep.dataforge.names.plus import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt index 62d7b5c0..f56437b2 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt @@ -79,6 +79,10 @@ class Proxy(val templateName: Name) : AbstractVisualObject(), VisualGroup, Visua override fun allProperties(): Laminate = Laminate(properties, mergedStyles, prototype.allProperties()) + override fun attachChildren() { + //do nothing + } + //override fun findAllStyles(): Laminate = Laminate((styles + prototype.styles).mapNotNull { findStyle(it) }) @Serializable @@ -125,6 +129,9 @@ class Proxy(val templateName: Name) : AbstractVisualObject(), VisualGroup, Visua } } + override fun attachChildren() { + //do nothing + } override fun allProperties(): Laminate = Laminate(properties, mergedStyles, prototype.allProperties()) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt index 58e2c8b6..43c2cdb2 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt @@ -5,6 +5,7 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.PI diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt index 248fbfce..c3b8f113 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt @@ -4,6 +4,7 @@ package hep.dataforge.vis.spatial import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject +import hep.dataforge.vis.common.set import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.PI diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt index 83a089a8..1cb85e23 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt @@ -19,6 +19,8 @@ import hep.dataforge.names.isEmpty import hep.dataforge.vis.common.AbstractVisualGroup import hep.dataforge.vis.common.StyleSheet import hep.dataforge.vis.common.VisualObject +import hep.dataforge.vis.common.set +import hep.dataforge.vis.spatial.VisualGroup3D.Companion.PROTOTYPES_KEY import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @@ -30,15 +32,6 @@ import kotlin.collections.set @Serializable @SerialName("group.3d") class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { - /** - * A container for templates visible inside this group - */ - @SerialName(PROTOTYPES_KEY) - var prototypes: VisualGroup3D? = null - set(value) { - value?.parent = this - field = value - } override var styleSheet: StyleSheet? = null private set @@ -52,7 +45,7 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { @SerialName("children") private val _children = HashMap() - override val children: Map get() = _children + override val children: Map get() = _children.filterKeys { it != PROTOTYPES_KEY } // init { // //Do after deserialization @@ -111,13 +104,22 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { } companion object { - const val PROTOTYPES_KEY = "templates" + val PROTOTYPES_KEY = NameToken("@prototypes") fun fromJson(json: String): VisualGroup3D = - Visual3DPlugin.json.parse(serializer(),json).also { it.attachChildren() } + Visual3DPlugin.json.parse(serializer(), json).also { it.attachChildren() } } } +/** + * A container for templates visible inside this group + */ +var VisualGroup3D.prototypes: VisualGroup3D? + get() = children[PROTOTYPES_KEY] as? VisualGroup3D + set(value) { + this[PROTOTYPES_KEY.asName()] = value + } + /** * Ger a prototype redirecting the request to the parent if prototype is not found */ diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/UnRef.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/UnRef.kt index 12681b24..c96be89c 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/UnRef.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/UnRef.kt @@ -6,6 +6,7 @@ import hep.dataforge.vis.common.MutableVisualGroup import hep.dataforge.vis.common.VisualGroup import hep.dataforge.vis.spatial.Proxy import hep.dataforge.vis.spatial.VisualGroup3D +import hep.dataforge.vis.spatial.prototypes object UnRef : VisualTreeTransform() { private fun VisualGroup.countRefs(): Map { diff --git a/demo/spatial-showcase/src/jsMain/kotlin/hep/dataforge/vis/spatial/demo/VariableBox.kt b/demo/spatial-showcase/src/jsMain/kotlin/hep/dataforge/vis/spatial/demo/VariableBox.kt index 20540777..63e6c975 100644 --- a/demo/spatial-showcase/src/jsMain/kotlin/hep/dataforge/vis/spatial/demo/VariableBox.kt +++ b/demo/spatial-showcase/src/jsMain/kotlin/hep/dataforge/vis/spatial/demo/VariableBox.kt @@ -7,6 +7,7 @@ import hep.dataforge.meta.number import hep.dataforge.names.plus import hep.dataforge.names.startsWith import hep.dataforge.vis.common.getProperty +import hep.dataforge.vis.common.set import hep.dataforge.vis.common.setProperty import hep.dataforge.vis.spatial.* import hep.dataforge.vis.spatial.VisualObject3D.Companion.GEOMETRY_KEY From ef42327cc52f0dabefe271fd664bdda49d28bc93 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Fri, 28 Feb 2020 16:36:09 +0300 Subject: [PATCH 09/15] Fix gdml demo file loader --- .../dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt b/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt index 92ab0f6f..b9537275 100644 --- a/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt +++ b/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt @@ -135,12 +135,13 @@ private class GDMLDemoApp : Application { val action: (name: String, data: String) -> Unit = { name, data -> canvasElement.clear() spinner(true) - message("Loading GDML") - val gdml = GDML.format.parse(GDML.serializer(), data) - message("Converting GDML into DF-VIS format") - val visual: VisualObject3D = when { - name.endsWith(".gdml") || name.endsWith(".xml") -> gdml.toVisual(gdmlConfiguration) + name.endsWith(".gdml") || name.endsWith(".xml") -> { + message("Loading GDML") + val gdml = GDML.format.parse(GDML.serializer(), data) + message("Converting GDML into DF-VIS format") + gdml.toVisual(gdmlConfiguration) + } name.endsWith(".json") -> VisualGroup3D.fromJson(data) else -> { window.alert("File extension is not recognized: $name") From 6b455b57aaa4cd47893997b34e245ef94bb840ec Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Fri, 28 Feb 2020 21:07:09 +0300 Subject: [PATCH 10/15] Roll back prototypes location --- .../kotlin/hep/dataforge/vis/spatial/Proxy.kt | 4 +- .../dataforge/vis/spatial/VisualGroup3D.kt | 53 +- .../spatial/transform/RemoveSingleChild.kt | 4 +- .../vis/spatial/gdml/demo/GDMLDemoApp.kt | 42 +- demo/gdml/src/jsMain/web/css/main.css | 4 + demo/gdml/src/jsMain/web/index.html | 28 +- .../vis/spatial/FileSerializationTest.kt | 2 + demo/gdml/src/jvmTest/resources/cubes.json | 458 ------------------ 8 files changed, 80 insertions(+), 515 deletions(-) delete mode 100644 demo/gdml/src/jvmTest/resources/cubes.json diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt index f56437b2..a9b755e6 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt @@ -169,7 +169,9 @@ fun VisualGroup3D.proxy( ): Proxy { val existing = getPrototype(templateName) if (existing == null) { - setPrototype(templateName, obj) + prototypes{ + this[templateName] = obj + } } else if (existing != obj) { error("Can't add different prototype on top of existing one") } diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt index 1cb85e23..3922d970 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt @@ -20,7 +20,6 @@ import hep.dataforge.vis.common.AbstractVisualGroup import hep.dataforge.vis.common.StyleSheet import hep.dataforge.vis.common.VisualObject import hep.dataforge.vis.common.set -import hep.dataforge.vis.spatial.VisualGroup3D.Companion.PROTOTYPES_KEY import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @@ -36,6 +35,15 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { override var styleSheet: StyleSheet? = null private set + /** + * A container for templates visible inside this group + */ + var prototypes: VisualGroup3D? = null + set(value) { + value?.parent = this + field = value + } + //FIXME to be lifted to AbstractVisualGroup after https://github.com/Kotlin/kotlinx.serialization/issues/378 is fixed override var properties: Config? = null @@ -45,18 +53,23 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { @SerialName("children") private val _children = HashMap() - override val children: Map get() = _children.filterKeys { it != PROTOTYPES_KEY } + override val children: Map get() = _children // init { // //Do after deserialization // attachChildren() // } + override fun attachChildren() { + prototypes?.parent = this + super.attachChildren() + } + /** * Update or create stylesheet */ fun styleSheet(block: StyleSheet.() -> Unit) { - val res = this.styleSheet ?: StyleSheet(this).also { this.styleSheet = it } + val res = styleSheet ?: StyleSheet(this).also { styleSheet = it } res.block() } @@ -95,42 +108,25 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { } } - override fun attachChildren() { - prototypes?.let { - it.parent = this - it.attachChildren() - } - super.attachChildren() - } - companion object { - val PROTOTYPES_KEY = NameToken("@prototypes") +// val PROTOTYPES_KEY = NameToken("@prototypes") fun fromJson(json: String): VisualGroup3D = Visual3DPlugin.json.parse(serializer(), json).also { it.attachChildren() } } } -/** - * A container for templates visible inside this group - */ -var VisualGroup3D.prototypes: VisualGroup3D? - get() = children[PROTOTYPES_KEY] as? VisualGroup3D - set(value) { - this[PROTOTYPES_KEY.asName()] = value - } - /** * Ger a prototype redirecting the request to the parent if prototype is not found */ -fun VisualGroup3D.getPrototype(name: Name): VisualObject3D? = +tailrec fun VisualGroup3D.getPrototype(name: Name): VisualObject3D? = prototypes?.get(name) as? VisualObject3D ?: (parent as? VisualGroup3D)?.getPrototype(name) /** - * Defined a prototype inside current group + * Create or edit prototype node as a group */ -fun VisualGroup3D.setPrototype(name: Name, obj: VisualObject3D) { - (prototypes ?: VisualGroup3D().also { this.prototypes = it })[name] = obj +inline fun VisualGroup3D.prototypes(builder: VisualGroup3D.() -> Unit): Unit { + (prototypes ?: VisualGroup3D().also { prototypes = it }).run(builder) } /** @@ -139,10 +135,3 @@ fun VisualGroup3D.setPrototype(name: Name, obj: VisualObject3D) { fun VisualGroup3D.group(key: String = "", action: VisualGroup3D.() -> Unit = {}): VisualGroup3D = VisualGroup3D().apply(action).also { set(key, it) } -/** - * Create or edit prototype node as a group - */ -inline fun VisualGroup3D.prototypes(builder: VisualGroup3D.() -> Unit): Unit { - (prototypes ?: VisualGroup3D().also { this.prototypes = it }).run(builder) -} - diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/RemoveSingleChild.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/RemoveSingleChild.kt index 70db5c75..636b9cc1 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/RemoveSingleChild.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/transform/RemoveSingleChild.kt @@ -51,7 +51,9 @@ object RemoveSingleChild : VisualTreeTransform() { } replaceChildren() - prototypes?.replaceChildren() + prototypes { + replaceChildren() + } } override fun VisualGroup3D.clone(): VisualGroup3D { diff --git a/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt b/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt index b9537275..357962c1 100644 --- a/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt +++ b/demo/gdml/src/jsMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt @@ -24,11 +24,7 @@ import hep.dataforge.vis.spatial.three.ThreePlugin import hep.dataforge.vis.spatial.three.displayCanvasControls import hep.dataforge.vis.spatial.three.output import hep.dataforge.vis.spatial.visible -import kotlinx.html.dom.append -import kotlinx.html.js.p -import org.w3c.dom.DragEvent -import org.w3c.dom.HTMLDivElement -import org.w3c.dom.HTMLElement +import org.w3c.dom.* import org.w3c.files.FileList import org.w3c.files.FileReader import org.w3c.files.get @@ -80,17 +76,18 @@ private class GDMLDemoApp : Application { } private fun message(message: String?) { - document.getElementById("messages")?.let { element -> - if (message == null) { - element.clear() - } else { - element.append { - p { - +message - } - } - } - } + console.log(message) +// document.getElementById("messages")?.let { element -> +// if (message == null) { +// element.clear() +// } else { +// element.append { +// p { +// +message +// } +// } +// } +// } } private val gdmlConfiguration: GDMLTransformer.() -> Unit = { @@ -202,6 +199,19 @@ private class GDMLDemoApp : Application { addEventListener("dragover", { handleDragOver(it as DragEvent) }, false) addEventListener("drop", { loadData(it as DragEvent, action) }, false) } + (document.getElementById("file_load_button") as? HTMLInputElement)?.apply { + addEventListener("change", { + (it.target as HTMLInputElement).files?.asList()?.first()?.let { file -> + FileReader().apply { + onload = { + val string = result as String + action(file.name, string) + } + readAsText(file) + } + } + }, false) + } } } diff --git a/demo/gdml/src/jsMain/web/css/main.css b/demo/gdml/src/jsMain/web/css/main.css index e7f925df..ae59b43e 100644 --- a/demo/gdml/src/jsMain/web/css/main.css +++ b/demo/gdml/src/jsMain/web/css/main.css @@ -1,3 +1,7 @@ +.drop_zone { + outline: 1px solid orange; +} + .loader { border: 16px solid #f3f3f3; /* Light grey */ border-top: 16px solid #3498db; /* Blue */ diff --git a/demo/gdml/src/jsMain/web/index.html b/demo/gdml/src/jsMain/web/index.html index bad59418..5b9bb025 100644 --- a/demo/gdml/src/jsMain/web/index.html +++ b/demo/gdml/src/jsMain/web/index.html @@ -11,17 +11,30 @@ -

- Load data -
- (drag file here) +
+
+ +
+
+
+ Load data +
+ (drag file here) +
+
+
+

GDML demo

- -
@@ -33,5 +46,6 @@
+ \ No newline at end of file diff --git a/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt b/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt index c3a69cfb..273c25ba 100644 --- a/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt +++ b/demo/gdml/src/jvmTest/kotlin/hep/dataforge/vis/spatial/FileSerializationTest.kt @@ -2,9 +2,11 @@ package hep.dataforge.vis.spatial import hep.dataforge.names.asName import org.junit.Test +import kotlin.test.Ignore class FileSerializationTest { @Test + @Ignore fun testFileRead(){ val text = this::class.java.getResourceAsStream("/cubes.json").readAllBytes().decodeToString() val visual = VisualGroup3D.fromJson(text) diff --git a/demo/gdml/src/jvmTest/resources/cubes.json b/demo/gdml/src/jvmTest/resources/cubes.json deleted file mode 100644 index 31cbf7ba..00000000 --- a/demo/gdml/src/jvmTest/resources/cubes.json +++ /dev/null @@ -1,458 +0,0 @@ -{ - "templates": { - "children": { - "segment": { - "type": "hep.dataforge.vis.spatial.Tube", - "radius": 20.0, - "height": 5.0, - "innerRadius": 17.0, - "angle": 1.0471976, - "properties": { - "@style": "material[G4_WATER]" - } - }, - "cave": { - "type": "3d.box", - "xSize": 200.0, - "ySize": 200.0, - "zSize": 200.0, - "properties": { - "@style": [ - "material[G4_AIR]", - "opaque" - ] - } - }, - "volumes": { - "type": "group.3d", - "children": { - "composite": { - "type": "group.3d", - "children": { - "segment_1": { - "type": "3d.proxy", - "templateName": "volumes.segment_vol", - "rotation": { - "z": 1.0471975803375244 - } - }, - "segment_2": { - "type": "3d.proxy", - "templateName": "volumes.segment_vol", - "rotation": { - "z": 2.094395160675049 - } - }, - "segment_3": { - "type": "3d.proxy", - "templateName": "volumes.segment_vol", - "rotation": { - "z": 3.1415927410125732 - } - }, - "segment_4": { - "type": "3d.proxy", - "templateName": "volumes.segment_vol", - "rotation": { - "z": 4.188790321350098 - } - }, - "segment_0": { - "type": "3d.proxy", - "templateName": "volumes.segment_vol" - }, - "box": { - "type": "3d.proxy", - "templateName": "box" - }, - "segment_5": { - "type": "3d.proxy", - "templateName": "volumes.segment_vol", - "rotation": { - "z": 5.235987663269043 - } - } - } - }, - "segment_vol": { - "type": "group.3d", - "children": { - "segment": { - "type": "3d.proxy", - "templateName": "segment" - } - } - } - } - }, - "box": { - "type": "3d.box", - "xSize": 30.0, - "ySize": 30.0, - "zSize": 30.0, - "properties": { - "@style": [ - "material[G4_AIR]", - "opaque" - ] - } - } - } - }, - "styleSheet": { - "styleMap": { - "material[G4_WATER]": { - "material": { - "color": 1710240 - }, - "gdml": { - "material": "G4_WATER" - } - }, - "opaque": { - "material": { - "opacity": 0.3 - } - }, - "material[G4_AIR]": { - "material": { - "color": 6376463 - }, - "gdml": { - "material": "G4_AIR" - } - } - } - }, - "properties": { - "rotation": { - "order": "ZXY" - } - }, - "children": { - "@static(1529060733)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "y": 50.0 - }, - "rotation": { - "x": 2.094395160675049, - "y": 4.188790321350098, - "z": 2.094395160675049 - } - }, - "@static(1496355635)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "rotation": { - "x": 2.094395160675049, - "y": 2.094395160675049, - "z": 2.094395160675049 - } - }, - "@static(166794956)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "y": -50.0 - }, - "rotation": { - "x": 2.094395160675049, - "z": 2.094395160675049 - } - }, - "@static(609962972)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "y": 50.0 - }, - "rotation": { - "x": 4.188790321350098, - "y": 4.188790321350098, - "z": 2.094395160675049 - } - }, - "@static(1741979653)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "y": -50.0, - "z": -50.0 - }, - "rotation": { - "x": 2.094395160675049 - } - }, - "@static(1484171695)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "z": 50.0 - }, - "rotation": { - "x": 2.094395160675049, - "y": 2.094395160675049, - "z": 4.188790321350098 - } - }, - "composite_003": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "z": -50.0 - }, - "rotation": { - "y": 2.094395160675049 - } - }, - "@static(6519275)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "y": 50.0 - }, - "rotation": { - "y": 4.188790321350098, - "z": 2.094395160675049 - } - }, - "composite_001": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "y": -50.0 - }, - "rotation": { - "z": 2.094395160675049 - } - }, - "@static(934275857)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0 - }, - "rotation": { - "x": 4.188790321350098, - "y": 2.094395160675049, - "z": 2.094395160675049 - } - }, - "composite_005": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "z": 50.0 - }, - "rotation": { - "y": 2.094395160675049, - "z": 4.188790321350098 - } - }, - "@static(712609105)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "y": -50.0 - }, - "rotation": { - "x": 4.188790321350098, - "z": 2.094395160675049 - } - }, - "@static(1364913072)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "z": 50.0 - }, - "rotation": { - "x": 4.188790321350098, - "y": 2.094395160675049, - "z": 4.188790321350098 - } - }, - "@static(232307208)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "y": 50.0, - "z": -50.0 - }, - "rotation": { - "x": 4.188790321350098, - "y": 4.188790321350098 - } - }, - "@static(1388278453)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "z": -50.0 - }, - "rotation": { - "x": 4.188790321350098, - "y": 2.094395160675049 - } - }, - "@static(1803669141)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "y": -50.0, - "z": -50.0 - }, - "rotation": { - "x": 4.188790321350098 - } - }, - "@static(692331943)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "y": 50.0, - "z": 50.0 - }, - "rotation": { - "y": 4.188790321350098, - "z": 4.188790321350098 - } - }, - "@static(106374177)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "y": 50.0, - "z": 50.0 - }, - "rotation": { - "x": 2.094395160675049, - "y": 4.188790321350098, - "z": 4.188790321350098 - } - }, - "composite_004": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0 - }, - "rotation": { - "y": 2.094395160675049, - "z": 2.094395160675049 - } - }, - "cave": { - "type": "3d.proxy", - "templateName": "cave" - }, - "composite_002": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "y": -50.0, - "z": 50.0 - }, - "rotation": { - "z": 4.188790321350098 - } - }, - "@static(1836463382)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "y": -50.0, - "z": 50.0 - }, - "rotation": { - "x": 4.188790321350098, - "z": 4.188790321350098 - } - }, - "composite_006": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "y": 50.0, - "z": -50.0 - }, - "rotation": { - "y": 4.188790321350098 - } - }, - "@static(306612792)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "y": -50.0, - "z": 50.0 - }, - "rotation": { - "x": 2.094395160675049, - "z": 4.188790321350098 - } - }, - "@static(1818544933)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": 50.0, - "y": 50.0, - "z": 50.0 - }, - "rotation": { - "x": 4.188790321350098, - "y": 4.188790321350098, - "z": 4.188790321350098 - } - }, - "@static(447212746)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "z": -50.0 - }, - "rotation": { - "x": 2.094395160675049, - "y": 2.094395160675049 - } - }, - "@static(2127036371)": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "y": 50.0, - "z": -50.0 - }, - "rotation": { - "x": 2.094395160675049, - "y": 4.188790321350098 - } - }, - "composite_000": { - "type": "3d.proxy", - "templateName": "volumes.composite", - "position": { - "x": -50.0, - "y": -50.0, - "z": -50.0 - } - } - } -} \ No newline at end of file From ab4765231467f2a7d17e46d31504a4cec66c2ee9 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 1 Mar 2020 11:00:43 +0300 Subject: [PATCH 11/15] Fix proxy child property update issue on Three. Name refactoring. --- .../vis/common/{VisualPlugin.kt => Visual.kt} | 8 +-- .../hep/dataforge/vis/common/VisualGroup.kt | 2 +- dataforge-vis-spatial-gdml/build.gradle.kts | 2 +- .../vis/spatial/gdml/generateSchema.kt | 2 +- .../kotlin/hep/dataforge/vis/spatial/Box.kt | 6 ++- .../kotlin/hep/dataforge/vis/spatial/Proxy.kt | 3 +- .../{Visual3DPlugin.kt => Visual3D.kt} | 25 +++++---- .../dataforge/vis/spatial/VisualGroup3D.kt | 2 +- .../hep/dataforge/vis/spatial/ConvexTest.kt | 2 +- .../vis/spatial/SerializationTest.kt | 2 +- .../vis/spatial/three/ThreeFactory.kt | 14 ++--- .../vis/spatial/three/ThreeMaterials.kt | 4 +- .../vis/spatial/three/ThreeProxyFactory.kt | 2 +- .../vis/spatial/three/outputConfig.kt | 4 +- .../dataforge/vis/spatial/gdml/demo/cubes.kt | 54 +++++++++++++++++++ .../vis/spatial/gdml/GDMLVisualTest.kt | 18 +++++++ .../vis/spatial/gdml/demo/GDMLDemoApp.kt | 6 +-- .../vis/spatial/gdml/demo/readFile.kt | 6 +-- .../vis/spatial/gdml/demo/saveToJson.kt | 4 +- .../ru/mipt/npm/muon/monitor/MMDemoApp.kt | 4 +- .../mipt/npm/muon/monitor/server/MMServer.kt | 4 +- 21 files changed, 126 insertions(+), 48 deletions(-) rename dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/{VisualPlugin.kt => Visual.kt} (82%) rename dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/{Visual3DPlugin.kt => Visual3D.kt} (83%) create mode 100644 demo/gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/cubes.kt create mode 100644 demo/gdml/src/commonTest/kotlin/hep/dataforge/vis/spatial/gdml/GDMLVisualTest.kt diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualPlugin.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/Visual.kt similarity index 82% rename from dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualPlugin.kt rename to dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/Visual.kt index 39a1abc0..a469ac63 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualPlugin.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/Visual.kt @@ -13,7 +13,7 @@ interface VisualFactory { ): T } -class VisualPlugin(meta: Meta) : AbstractPlugin(meta) { +class Visual(meta: Meta) : AbstractPlugin(meta) { override val tag: PluginTag get() = Companion.tag /** @@ -27,11 +27,11 @@ class VisualPlugin(meta: Meta) : AbstractPlugin(meta) { return visualFactories[T::class]?.invoke(context, parent, meta) as T? } - companion object : PluginFactory { + companion object : PluginFactory { override val tag: PluginTag = PluginTag(name = "visual", group = PluginTag.DATAFORGE_GROUP) - override val type: KClass = VisualPlugin::class + override val type: KClass = Visual::class - override fun invoke(meta: Meta, context: Context): VisualPlugin = VisualPlugin(meta) + override fun invoke(meta: Meta, context: Context): Visual = Visual(meta) const val VISUAL_FACTORY_TYPE = "visual.factory" } diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt index 7108209e..c3f497bd 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/VisualGroup.kt @@ -88,7 +88,7 @@ interface MutableVisualGroup : VisualGroup { operator fun set(name: Name, child: VisualObject?) } -operator fun VisualGroup.get(str: String?) = get(str?.toName() ?: Name.EMPTY) +operator fun VisualGroup.get(str: String?): VisualObject? = get(str?.toName() ?: Name.EMPTY) operator fun MutableVisualGroup.set(key: String, child: VisualObject?) { set(key.toName(), child) diff --git a/dataforge-vis-spatial-gdml/build.gradle.kts b/dataforge-vis-spatial-gdml/build.gradle.kts index a1a23902..c13e2e3f 100644 --- a/dataforge-vis-spatial-gdml/build.gradle.kts +++ b/dataforge-vis-spatial-gdml/build.gradle.kts @@ -7,7 +7,7 @@ kotlin { val commonMain by getting { dependencies { api(project(":dataforge-vis-spatial")) - api("scientifik:gdml:0.1.5") + api("scientifik:gdml:0.1.6") } } } diff --git a/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/generateSchema.kt b/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/generateSchema.kt index 628a8651..53768de4 100644 --- a/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/generateSchema.kt +++ b/dataforge-vis-spatial-gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/generateSchema.kt @@ -135,7 +135,7 @@ private fun jsonSchema(descriptor: SerialDescriptor, context: SerialModule): Jso } fun main() { - val context = Visual3DPlugin.serialModule + val context = Visual3D.serialModule val definitions = json { "children" to json { "anyOf" to jsonArray { diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt index 438fe2f0..c2010a0f 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Box.kt @@ -11,13 +11,14 @@ import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.VisualFactory import hep.dataforge.vis.common.VisualObject import hep.dataforge.vis.common.set +import hep.dataforge.vis.spatial.Box.Companion.TYPE_NAME import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.reflect.KClass @Serializable -@SerialName("3d.box") +@SerialName(TYPE_NAME) class Box( val xSize: Float, val ySize: Float, @@ -53,7 +54,8 @@ class Box( } companion object : VisualFactory { - const val TYPE = "geometry.3d.box" + + const val TYPE_NAME = "3d.box" override val type: KClass get() = Box::class diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt index a9b755e6..13b13f2c 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt @@ -59,7 +59,7 @@ class Proxy(val templateName: Name) : AbstractVisualObject(), VisualGroup, Visua } override val children: Map - get() = (prototype as? MutableVisualGroup)?.children + get() = (prototype as? VisualGroup)?.children ?.filter { !it.key.toString().startsWith("@") } ?.mapValues { ProxyChild(it.key.asName()) @@ -85,7 +85,6 @@ class Proxy(val templateName: Name) : AbstractVisualObject(), VisualGroup, Visua //override fun findAllStyles(): Laminate = Laminate((styles + prototype.styles).mapNotNull { findStyle(it) }) - @Serializable inner class ProxyChild(val name: Name) : AbstractVisualObject(), VisualGroup { val prototype: VisualObject get() = prototypeFor(name) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Visual3DPlugin.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Visual3D.kt similarity index 83% rename from dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Visual3DPlugin.kt rename to dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Visual3D.kt index 3f4a194d..cb362558 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Visual3DPlugin.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Visual3D.kt @@ -9,29 +9,32 @@ import hep.dataforge.io.serialization.MetaSerializer import hep.dataforge.io.serialization.NameSerializer import hep.dataforge.meta.* import hep.dataforge.names.Name +import hep.dataforge.names.toName +import hep.dataforge.vis.common.Visual import hep.dataforge.vis.common.VisualObject -import hep.dataforge.vis.common.VisualPlugin import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonConfiguration import kotlinx.serialization.modules.SerializersModule import kotlinx.serialization.modules.contextual import kotlin.reflect.KClass -class Visual3DPlugin(meta: Meta) : AbstractPlugin(meta) { +class Visual3D(meta: Meta) : AbstractPlugin(meta) { + + val visual by require(Visual) + override val tag: PluginTag get() = Companion.tag - override fun provideTop(target: String): Map { - return if (target == VisualPlugin.VISUAL_FACTORY_TYPE) { - mapOf() - } else { - emptyMap() - } + override fun provideTop(target: String): Map = if (target == Visual.VISUAL_FACTORY_TYPE) { + mapOf(Box.TYPE_NAME.toName() to Box) + } else { + super.provideTop(target) } - companion object : PluginFactory { + + companion object : PluginFactory { override val tag: PluginTag = PluginTag(name = "visual.spatial", group = PluginTag.DATAFORGE_GROUP) - override val type: KClass = Visual3DPlugin::class - override fun invoke(meta: Meta, context: Context): Visual3DPlugin = Visual3DPlugin(meta) + override val type: KClass = Visual3D::class + override fun invoke(meta: Meta, context: Context): Visual3D = Visual3D(meta) val serialModule = SerializersModule { contextual(Point3DSerializer) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt index 3922d970..1afa0647 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt @@ -112,7 +112,7 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { // val PROTOTYPES_KEY = NameToken("@prototypes") fun fromJson(json: String): VisualGroup3D = - Visual3DPlugin.json.parse(serializer(), json).also { it.attachChildren() } + Visual3D.json.parse(serializer(), json).also { it.attachChildren() } } } diff --git a/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/ConvexTest.kt b/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/ConvexTest.kt index 3358fe84..0c2b4143 100644 --- a/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/ConvexTest.kt +++ b/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/ConvexTest.kt @@ -25,7 +25,7 @@ class ConvexTest { val convex = group.first() as Convex - val json = Visual3DPlugin.json.toJson(Convex.serializer(), convex) + val json = Visual3D.json.toJson(Convex.serializer(), convex) val meta = json.toMeta() val points = meta.getIndexed("points").values.map { (it as MetaItem.NodeItem<*>).node.point3D()} diff --git a/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/SerializationTest.kt b/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/SerializationTest.kt index 128b507b..ea242679 100644 --- a/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/SerializationTest.kt +++ b/dataforge-vis-spatial/src/commonTest/kotlin/hep/dataforge/vis/spatial/SerializationTest.kt @@ -1,6 +1,6 @@ package hep.dataforge.vis.spatial -import hep.dataforge.vis.spatial.Visual3DPlugin.Companion.json +import hep.dataforge.vis.spatial.Visual3D.Companion.json import kotlinx.serialization.ImplicitReflectionSerializer import kotlin.test.Test import kotlin.test.assertEquals diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeFactory.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeFactory.kt index 65dc71ef..6828cd7b 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeFactory.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeFactory.kt @@ -31,12 +31,14 @@ interface ThreeFactory { /** * Update position, rotation and visibility */ -fun Object3D.updatePosition(obj: VisualObject3D) { +fun Object3D.updatePosition(obj: VisualObject) { visible = obj.visible ?: true - position.set(obj.x, obj.y, obj.z) - setRotationFromEuler(obj.euler) - scale.set(obj.scaleX, obj.scaleY, obj.scaleZ) - updateMatrix() + if(obj is VisualObject3D) { + position.set(obj.x, obj.y, obj.z) + setRotationFromEuler(obj.euler) + scale.set(obj.scaleX, obj.scaleY, obj.scaleZ) + updateMatrix() + } } ///** @@ -54,7 +56,7 @@ fun Object3D.updatePosition(obj: VisualObject3D) { /** * Update non-position non-geometry property */ -fun Object3D.updateProperty(source: VisualObject3D, propertyName: Name) { +fun Object3D.updateProperty(source: VisualObject, propertyName: Name) { if (this is Mesh && propertyName.startsWith(MATERIAL_KEY)) { this.material = getMaterial(source) } else if ( diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt index d0d7d390..786c0efd 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeMaterials.kt @@ -3,8 +3,8 @@ package hep.dataforge.vis.spatial.three import hep.dataforge.meta.* import hep.dataforge.values.ValueType import hep.dataforge.vis.common.Colors +import hep.dataforge.vis.common.VisualObject import hep.dataforge.vis.spatial.Material3D -import hep.dataforge.vis.spatial.VisualObject3D import info.laht.threekt.materials.LineBasicMaterial import info.laht.threekt.materials.Material import info.laht.threekt.materials.MeshBasicMaterial @@ -37,7 +37,7 @@ object ThreeMaterials { } } - fun getMaterial(visualObject3D: VisualObject3D): Material { + fun getMaterial(visualObject3D: VisualObject): Material { val meta = visualObject3D.getProperty(Material3D.MATERIAL_KEY).node ?: return ThreeMaterials.DEFAULT return if (meta[Material3D.SPECULAR_COLOR_KEY] != null) { MeshPhongMaterial().apply { diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeProxyFactory.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeProxyFactory.kt index 84fcb86e..05bdd9e1 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeProxyFactory.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeProxyFactory.kt @@ -25,7 +25,7 @@ class ThreeProxyFactory(val three: ThreePlugin) : ThreeFactory { if (name.first()?.body == PROXY_CHILD_PROPERTY_PREFIX) { val childName = name.first()?.index?.toName() ?: error("Wrong syntax for proxy child property: '$name'") val propertyName = name.cutFirst() - val proxyChild = obj[childName] as? VisualObject3D ?: error("Proxy child with name '$childName' not found or not a 3D object") + val proxyChild = obj[childName] ?: error("Proxy child with name '$childName' not found") val child = object3D.findChild(childName)?: error("Object child with name '$childName' not found") child.updateProperty(proxyChild, propertyName) } else { diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt index 1f3c0a6d..f27a6754 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt @@ -2,7 +2,7 @@ package hep.dataforge.vis.spatial.three import hep.dataforge.js.requireJS import hep.dataforge.vis.js.editor.card -import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.Visual3D import hep.dataforge.vis.spatial.VisualGroup3D import kotlinx.html.InputType import kotlinx.html.TagConsumer @@ -46,7 +46,7 @@ fun Element.displayCanvasControls(canvas: ThreeCanvas, block: TagConsumer - Visual3DPlugin.json.stringify( + Visual3D.json.stringify( VisualGroup3D.serializer(), group ) diff --git a/demo/gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/cubes.kt b/demo/gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/cubes.kt new file mode 100644 index 00000000..24e4845b --- /dev/null +++ b/demo/gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/cubes.kt @@ -0,0 +1,54 @@ +package hep.dataforge.vis.spatial.gdml.demo + +import scientifik.gdml.* + + +fun cubes(): GDML = GDML { + val center = define.position("center") + structure { + val air = ref("G4_AIR") + val tubeMaterial = ref("tube") + val boxMaterial = ref("box") + val segment = solids.tube("segment", 20, 5.0) { + rmin = 17 + deltaphi = 60 + aunit = DEG + } + val worldBox = solids.box("LargeBox", 200, 200, 200) + val smallBox = solids.box("smallBox", 30, 30, 30) + val segmentVolume = volume("segment", tubeMaterial, segment.ref()) {} + val circle = volume("composite", boxMaterial, smallBox.ref()) { + for (i in 0 until 6) { + physVolume(segmentVolume) { + name = "segment$i" + positionref = center.ref() + rotation { + z = 60 * i + unit = DEG + } + } + } + } + world = volume("world", air, worldBox.ref()) { + for (i in 0 until 3) { + for (j in 0 until 3) { + for (k in 0 until 3) { + physVolume(circle) { + name = "composite$i$j$k" + position { + x = (-50 + i * 50) + y = (-50 + j * 50) + z = (-50 + k * 50) + } + rotation { + x = i * 120 + y = j * 120 + z = 120 * k + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/demo/gdml/src/commonTest/kotlin/hep/dataforge/vis/spatial/gdml/GDMLVisualTest.kt b/demo/gdml/src/commonTest/kotlin/hep/dataforge/vis/spatial/gdml/GDMLVisualTest.kt new file mode 100644 index 00000000..bac4481e --- /dev/null +++ b/demo/gdml/src/commonTest/kotlin/hep/dataforge/vis/spatial/gdml/GDMLVisualTest.kt @@ -0,0 +1,18 @@ +package hep.dataforge.vis.spatial.gdml + +import hep.dataforge.meta.string +import hep.dataforge.names.toName +import hep.dataforge.vis.spatial.Material3D +import hep.dataforge.vis.spatial.gdml.demo.cubes +import kotlin.test.Test +import kotlin.test.assertEquals + +class GDMLVisualTest { + @Test + fun testPrototypeProperty() { + val gdml = cubes() + val visual = gdml.toVisual() + visual["composite000.segment0".toName()]?.setProperty(Material3D.MATERIAL_COLOR_KEY, "red") + assertEquals("red", visual["composite000.segment0".toName()]?.getProperty(Material3D.MATERIAL_COLOR_KEY).string) + } +} \ No newline at end of file diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt index 23ac0290..ff07ebc6 100644 --- a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/GDMLDemoApp.kt @@ -4,7 +4,7 @@ import hep.dataforge.context.Global import hep.dataforge.vis.fx.editor.VisualObjectEditorFragment import hep.dataforge.vis.fx.editor.VisualObjectTreeFragment import hep.dataforge.vis.spatial.Material3D -import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.Visual3D import hep.dataforge.vis.spatial.VisualGroup3D import hep.dataforge.vis.spatial.fx.FX3DPlugin import hep.dataforge.vis.spatial.fx.FXCanvas3D @@ -34,11 +34,11 @@ class GDMLView : View() { override val root: Parent = borderpane { top { buttonbar { - button("Load GDML") { + button("Load GDML/json") { action { val file = chooseFile("Select a GDML/json file", filters = fileNameFilter).firstOrNull() ?: return@action - val visual: VisualGroup3D = Visual3DPlugin.readFile(file) + val visual: VisualGroup3D = Visual3D.readFile(file) canvas.render(visual) } } diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt index e4d66bdc..532e1399 100644 --- a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/readFile.kt @@ -1,7 +1,7 @@ package hep.dataforge.vis.spatial.gdml.demo import hep.dataforge.vis.spatial.Material3D -import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.Visual3D import hep.dataforge.vis.spatial.VisualGroup3D import hep.dataforge.vis.spatial.gdml.LUnit import hep.dataforge.vis.spatial.gdml.readFile @@ -11,7 +11,7 @@ import java.io.File import java.util.zip.GZIPInputStream import java.util.zip.ZipInputStream -fun Visual3DPlugin.Companion.readFile(file: File): VisualGroup3D = when { +fun Visual3D.Companion.readFile(file: File): VisualGroup3D = when { file.extension == "gdml" || file.extension == "xml" -> { GDML.readFile(file.toPath()).toVisual { lUnit = LUnit.CM @@ -46,4 +46,4 @@ fun Visual3DPlugin.Companion.readFile(file: File): VisualGroup3D = when { else -> error("Unknown extension ${file.extension}") } -fun Visual3DPlugin.Companion.readFile(fileName: String): VisualGroup3D = readFile(File(fileName)) \ No newline at end of file +fun Visual3D.Companion.readFile(fileName: String): VisualGroup3D = readFile(File(fileName)) \ No newline at end of file diff --git a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt index 3f60546f..f2491423 100644 --- a/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt +++ b/demo/gdml/src/jvmMain/kotlin/hep/dataforge/vis/spatial/gdml/demo/saveToJson.kt @@ -1,6 +1,6 @@ package hep.dataforge.vis.spatial.gdml.demo -import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.Visual3D import hep.dataforge.vis.spatial.VisualGroup3D import hep.dataforge.vis.spatial.gdml.LUnit import hep.dataforge.vis.spatial.gdml.readFile @@ -14,6 +14,6 @@ fun main() { val visual = gdml.toVisual { lUnit = LUnit.CM } - val json = Visual3DPlugin.json.stringify(VisualGroup3D.serializer(), visual) + val json = Visual3D.json.stringify(VisualGroup3D.serializer(), visual) File("D:\\Work\\Projects\\gdml.kt\\gdml-source\\cubes.json").writeText(json) } \ No newline at end of file diff --git a/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt b/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt index 966a2e37..3e680952 100644 --- a/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt +++ b/demo/muon-monitor/src/jsMain/kotlin/ru/mipt/npm/muon/monitor/MMDemoApp.kt @@ -15,7 +15,7 @@ import hep.dataforge.vis.js.editor.displayPropertyEditor import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_COLOR_KEY import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_OPACITY_KEY import hep.dataforge.vis.spatial.Material3D.Companion.MATERIAL_WIREFRAME_KEY -import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.Visual3D import hep.dataforge.vis.spatial.VisualObject3D import hep.dataforge.vis.spatial.VisualObject3D.Companion.VISIBLE_KEY import hep.dataforge.vis.spatial.three.ThreePlugin @@ -41,7 +41,7 @@ private class MMDemoApp : Application { private val connection = HttpClient { install(JsonFeature) { - serializer = KotlinxSerializer(Visual3DPlugin.json) + serializer = KotlinxSerializer(Visual3D.json) } } diff --git a/demo/muon-monitor/src/jvmMain/kotlin/ru/mipt/npm/muon/monitor/server/MMServer.kt b/demo/muon-monitor/src/jvmMain/kotlin/ru/mipt/npm/muon/monitor/server/MMServer.kt index 1518aa35..f46f68e1 100644 --- a/demo/muon-monitor/src/jvmMain/kotlin/ru/mipt/npm/muon/monitor/server/MMServer.kt +++ b/demo/muon-monitor/src/jvmMain/kotlin/ru/mipt/npm/muon/monitor/server/MMServer.kt @@ -1,7 +1,7 @@ package ru.mipt.npm.muon.monitor.server -import hep.dataforge.vis.spatial.Visual3DPlugin +import hep.dataforge.vis.spatial.Visual3D import io.ktor.application.Application import io.ktor.application.call import io.ktor.application.install @@ -35,7 +35,7 @@ fun Application.module() { install(DefaultHeaders) install(CallLogging) install(ContentNegotiation) { - serialization(json = Visual3DPlugin.json) + serialization(json = Visual3D.json) } install(Routing) { get("/event") { From 82c003ca229b5c98dfbf946c79bf6b4983777716 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sun, 1 Mar 2020 17:07:31 +0300 Subject: [PATCH 12/15] Slight design improvement --- dataforge-vis-common/build.gradle.kts | 2 +- .../hep/dataforge/vis/js/editor/bootstrap.kt | 50 ++++++++++++++- .../vis/spatial/three/ThreeLabelFactory.kt | 2 +- .../vis/spatial/three/ThreePlugin.kt | 4 +- .../vis/spatial/three/outputConfig.kt | 63 ++++++++++++++++++- .../vis/spatial/gdml/demo/GDMLDemoApp.kt | 8 +-- demo/gdml/src/jsMain/web/index.html | 41 ++++++------ 7 files changed, 135 insertions(+), 35 deletions(-) diff --git a/dataforge-vis-common/build.gradle.kts b/dataforge-vis-common/build.gradle.kts index 548c1be5..6459c337 100644 --- a/dataforge-vis-common/build.gradle.kts +++ b/dataforge-vis-common/build.gradle.kts @@ -37,7 +37,7 @@ kotlin { jsMain{ dependencies { api("hep.dataforge:dataforge-output-html:$dataforgeVersion") - api(npm("bootstrap","4.4.1")) + //api(npm("bootstrap","4.4.1")) implementation(npm("jsoneditor")) implementation(npm("file-saver")) } diff --git a/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/bootstrap.kt b/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/bootstrap.kt index 2f1e4595..171aa86d 100644 --- a/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/bootstrap.kt +++ b/dataforge-vis-common/src/jsMain/kotlin/hep/dataforge/vis/js/editor/bootstrap.kt @@ -1,8 +1,7 @@ package hep.dataforge.vis.js.editor -import kotlinx.html.TagConsumer +import kotlinx.html.* import kotlinx.html.js.div -import kotlinx.html.js.h3 import org.w3c.dom.HTMLElement inline fun TagConsumer.card(title: String, crossinline block: TagConsumer.() -> Unit) { @@ -12,4 +11,51 @@ inline fun TagConsumer.card(title: String, crossinline block: TagCo block() } } +} + +fun TagConsumer.accordion(id: String, elements: Map Unit>) { + div("container-fluid") { + div("accordion") { + this.id = id + elements.entries.forEachIndexed { index, (title, builder) -> + val headerID = "${id}-${index}-heading" + val collapseID = "${id}-${index}-collapse" + div("card") { + div("card-header") { + this.id = headerID + h5("mb-0") { + button(classes = "btn btn-link collapsed", type = ButtonType.button) { + attributes["data-toggle"] = "collapse" + attributes["data-target"] = "#$collapseID" + attributes["aria-expanded"] = "false" + attributes["aria-controls"] = collapseID + +title + } + } + } + div("collapse") { + this.id = collapseID + attributes["aria-labelledby"] = headerID + attributes["data-parent"] = "#$id" + div("card-body", block = builder) + } + } + } + } + } +} + +class AccordionBuilder { + private val map = HashMap Unit>() + fun entry(title: String, block: DIV.() -> Unit) { + map[title] = block + } + + fun build(consumer: TagConsumer, id: String) { + consumer.accordion(id, map) + } +} + +fun TagConsumer.accordion(id: String, block: AccordionBuilder.() -> Unit) { + AccordionBuilder().apply(block).build(this, id) } \ No newline at end of file diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLabelFactory.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLabelFactory.kt index c3e1024a..54e0ae03 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLabelFactory.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreeLabelFactory.kt @@ -25,7 +25,7 @@ object ThreeLabelFactory : ThreeFactory { } ) return Mesh(textGeo, getMaterial(obj)).apply { updatePosition(obj) - obj.onPropertyChange(this@ThreeLabelFactory){name: Name, before: MetaItem<*>?, after: MetaItem<*>? -> + obj.onPropertyChange(this@ThreeLabelFactory){ _: Name, _: MetaItem<*>?, _: MetaItem<*>? -> //TODO } } diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreePlugin.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreePlugin.kt index 11117b27..e5c99efe 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreePlugin.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/ThreePlugin.kt @@ -74,8 +74,8 @@ class ThreePlugin : AbstractPlugin() { return@onChildrenChange } - val parentName = name.cutLast() - val childName = name.last()!! +// val parentName = name.cutLast() +// val childName = name.last()!! //removing old object findChild(name)?.let { oldChild -> diff --git a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt index f27a6754..70afb07d 100644 --- a/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt +++ b/dataforge-vis-spatial/src/jsMain/kotlin/hep/dataforge/vis/spatial/three/outputConfig.kt @@ -1,7 +1,7 @@ package hep.dataforge.vis.spatial.three import hep.dataforge.js.requireJS -import hep.dataforge.vis.js.editor.card +import hep.dataforge.vis.js.editor.accordion import hep.dataforge.vis.spatial.Visual3D import hep.dataforge.vis.spatial.VisualGroup3D import kotlinx.html.InputType @@ -28,7 +28,64 @@ private fun saveData(event: Event, fileName: String, mimeType: String = "text/pl fun Element.displayCanvasControls(canvas: ThreeCanvas, block: TagConsumer.() -> Unit = {}) { clear() append { - card("Settings") { + accordion("controls") { + entry("Settings") { + div("row") { + div("col-2") { + label("checkbox-inline") { + input(type = InputType.checkBox).apply { + checked = canvas.axes.visible + onChangeFunction = { + canvas.axes.visible = checked + } + } + +"Axes" + } + } + div("col-1") { + button { + +"Export" + onClickFunction = { + val json = (canvas.content as? VisualGroup3D)?.let { group -> + Visual3D.json.stringify( + VisualGroup3D.serializer(), + group + ) + } + if (json != null) { + saveData(it, "object.json", "text/json") { + json + } + } + } + } + } + } + } + entry("Layers") { + div("row") { + (0..11).forEach { layer -> + div("col-1") { + label { +layer.toString() } + input(type = InputType.checkBox).apply { + if (layer == 0) { + checked = true + } + onChangeFunction = { + if (checked) { + canvas.camera.layers.enable(layer) + } else { + canvas.camera.layers.disable(layer) + } + } + } + } + } + } + } + } + +/* card("Settings") { div("row") { div("col-2") { label("checkbox-inline") { @@ -81,7 +138,7 @@ fun Element.displayCanvasControls(canvas: ThreeCanvas, block: TagConsumer - selectElement(name) - canvas.highlight(name) + treeElement.displayObjectTree(visual) { treeName -> + selectElement(treeName) + canvas.highlight(treeName) } canvas.render(visual) diff --git a/demo/gdml/src/jsMain/web/index.html b/demo/gdml/src/jsMain/web/index.html index 5b9bb025..6a8a8ebe 100644 --- a/demo/gdml/src/jsMain/web/index.html +++ b/demo/gdml/src/jsMain/web/index.html @@ -4,24 +4,26 @@ Three js demo for particle physics - - - + + + +
-
-
+

GDML demo

+
+ +
+
+ -
Load data @@ -29,23 +31,18 @@ (drag file here)
+
-
-
-
-

GDML demo

-
- -
-
-
-
-
+
+
+
+
+
-
- - + + + \ No newline at end of file From 5e1abf7d9d671b63ca18f15279b58fdb110bfbcc Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 7 Mar 2020 10:49:13 +0300 Subject: [PATCH 13/15] SerialName for all defined 3d objects --- .../commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt | 2 ++ .../commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt | 2 ++ .../src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt | 2 ++ .../src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt | 2 ++ .../src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt | 2 ++ .../src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt | 2 ++ .../src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt | 2 ++ .../src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt | 2 ++ 8 files changed, 16 insertions(+) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt index a1f5df12..a7b3c774 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Composite.kt @@ -7,6 +7,7 @@ import hep.dataforge.meta.Config import hep.dataforge.meta.update import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @@ -17,6 +18,7 @@ enum class CompositeType { } @Serializable +@SerialName("3d.composite") class Composite( val compositeType: CompositeType, val first: VisualObject3D, diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt index 9d1c94d7..f373a8de 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/ConeSegment.kt @@ -6,6 +6,7 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.cos @@ -15,6 +16,7 @@ import kotlin.math.sin * A cylinder or cut cone segment */ @Serializable +@SerialName("3d.cone") class ConeSegment( var radius: Float, var height: Float, diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt index eac4d39f..e4168ed6 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Convex.kt @@ -6,10 +6,12 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @Serializable +@SerialName("3d.convex") class Convex(val points: List) : AbstractVisualObject(), VisualObject3D { @Serializable(ConfigSerializer::class) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt index 54577af6..ae81eace 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Extruded.kt @@ -5,6 +5,7 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.PI @@ -38,6 +39,7 @@ fun Shape2DBuilder.polygon(vertices: Int, radius: Number) { data class Layer(var x: Float, var y: Float, var z: Float, var scale: Float) @Serializable +@SerialName("3d.extrude") class Extruded( var shape: List = ArrayList(), var layers: MutableList = ArrayList() diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt index 97ac5adf..906b03de 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Label3D.kt @@ -6,10 +6,12 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @Serializable +@SerialName("3d.label") class Label3D(var text: String, var fontSize: Double, var fontFamily: String) : AbstractVisualObject(), VisualObject3D { @Serializable(ConfigSerializer::class) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt index d028c81e..24f5a3b9 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/PolyLine.kt @@ -9,10 +9,12 @@ import hep.dataforge.names.asName import hep.dataforge.names.plus import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers @Serializable +@SerialName("3d.line") class PolyLine(var points: List) : AbstractVisualObject(), VisualObject3D { @Serializable(ConfigSerializer::class) override var properties: Config? = null diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt index 43c2cdb2..b29af3c8 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Sphere.kt @@ -6,6 +6,7 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.PI @@ -13,6 +14,7 @@ import kotlin.math.cos import kotlin.math.sin @Serializable +@SerialName("3d.sphere") class Sphere( var radius: Float, var phiStart: Float = 0f, diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt index c3b8f113..d97ccce6 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Tube.kt @@ -5,6 +5,7 @@ import hep.dataforge.io.serialization.ConfigSerializer import hep.dataforge.meta.Config import hep.dataforge.vis.common.AbstractVisualObject import hep.dataforge.vis.common.set +import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.math.PI @@ -15,6 +16,7 @@ import kotlin.math.sin * Straight tube segment */ @Serializable +@SerialName("3d.tube") class Tube( var radius: Float, var height: Float, From f6bde4704223c4ee0aaadc2d75c3baba401e6458 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 7 Mar 2020 15:44:14 +0300 Subject: [PATCH 14/15] Fix orphaned template bug --- .../hep/dataforge/vis/common/StyleSheet.kt | 18 +++++++++++++++--- .../dataforge/vis/spatial/gdml/visualGDML.kt | 6 +++--- .../kotlin/hep/dataforge/vis/spatial/Proxy.kt | 10 +++++++--- .../hep/dataforge/vis/spatial/VisualGroup3D.kt | 3 ++- .../dataforge/vis/spatial/fx/FXProxyFactory.kt | 4 ++-- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt index f831bf68..7b70a0dc 100644 --- a/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt +++ b/dataforge-vis-common/src/commonMain/kotlin/hep/dataforge/vis/common/StyleSheet.kt @@ -6,9 +6,7 @@ import hep.dataforge.io.serialization.MetaSerializer import hep.dataforge.meta.* import hep.dataforge.names.Name import hep.dataforge.names.asName -import kotlinx.serialization.Serializable -import kotlinx.serialization.Transient -import kotlinx.serialization.UseSerializers +import kotlinx.serialization.* /** * A container for styles @@ -51,6 +49,20 @@ class StyleSheet() { val newStyle = get(key)?.let { buildMeta(it, builder) } ?: buildMeta(builder) set(key, newStyle.seal()) } + + companion object: KSerializer{ + override val descriptor: SerialDescriptor + get() = TODO("Not yet implemented") + + override fun deserialize(decoder: Decoder): StyleSheet { + TODO("Not yet implemented") + } + + override fun serialize(encoder: Encoder, obj: StyleSheet) { + TODO("Not yet implemented") + } + + } } private fun VisualObject.styleChanged(key: String, oldStyle: Meta?, newStyle: Meta?) { diff --git a/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt b/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt index 97594bd0..1f72a899 100644 --- a/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt +++ b/dataforge-vis-spatial-gdml/src/commonMain/kotlin/hep/dataforge/vis/spatial/gdml/visualGDML.kt @@ -68,8 +68,8 @@ private fun VisualGroup3D.addSolid( name ) is GDMLCone -> cone(solid.rmax1, solid.z, solid.rmax2, name = name) { - require(solid.rmin1 == 0.0){"Empty cones are not supported"} - require(solid.rmin2 == 0.0){"Empty cones are not supported"} + require(solid.rmin1 == 0.0) { "Empty cones are not supported" } + require(solid.rmin2 == 0.0) { "Empty cones are not supported" } startAngle = solid.startphi.toFloat() angle = solid.deltaphi.toFloat() } @@ -178,7 +178,7 @@ private fun VisualGroup3D.addPhysicalVolume( context.proto[fullName] = volume(context, volume) } - this[physVolume.name ?: ""] = Proxy(fullName).apply { + this[physVolume.name ?: ""] = Proxy(this, fullName).apply { withPosition( context.lUnit, physVolume.resolvePosition(context.root), diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt index 13b13f2c..9b72e6d5 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/Proxy.kt @@ -26,7 +26,11 @@ import kotlin.collections.set */ @Serializable @SerialName("3d.proxy") -class Proxy(val templateName: Name) : AbstractVisualObject(), VisualGroup, VisualObject3D { +class Proxy private constructor(val templateName: Name) : AbstractVisualObject(), VisualGroup, VisualObject3D { + + constructor(parent: VisualGroup3D, templateName: Name) : this(templateName) { + this.parent = parent + } override var position: Point3D? = null override var rotation: Point3D? = null @@ -155,7 +159,7 @@ inline fun VisualGroup3D.ref( templateName: Name, name: String = "", block: Proxy.() -> Unit = {} -) = Proxy(templateName).apply(block).also { set(name, it) } +) = Proxy(this, templateName).apply(block).also { set(name, it) } /** * Add new proxy wrapping given object and automatically adding it to the prototypes @@ -168,7 +172,7 @@ fun VisualGroup3D.proxy( ): Proxy { val existing = getPrototype(templateName) if (existing == null) { - prototypes{ + prototypes { this[templateName] = obj } } else if (existing != obj) { diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt index 1afa0647..2f271041 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt @@ -62,6 +62,7 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { override fun attachChildren() { prototypes?.parent = this + prototypes?.attachChildren() super.attachChildren() } @@ -74,7 +75,7 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { } override fun removeChild(token: NameToken) { - _children.remove(token) + _children.remove(token)?.run { parent = null } childrenChanged(token.asName(), null) } diff --git a/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXProxyFactory.kt b/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXProxyFactory.kt index 6cdb6610..6052afcd 100644 --- a/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXProxyFactory.kt +++ b/dataforge-vis-spatial/src/jvmMain/kotlin/hep/dataforge/vis/spatial/fx/FXProxyFactory.kt @@ -13,8 +13,8 @@ class FXProxyFactory(val plugin: FX3DPlugin) : FX3DFactory { override val type: KClass get() = Proxy::class override fun invoke(obj: Proxy, binding: VisualObjectFXBinding): Node { - val template = obj.prototype - val node = plugin.buildNode(template) + val prototype = obj.prototype + val node = plugin.buildNode(prototype) obj.onPropertyChange(this) { name, _, _ -> if (name.first()?.body == Proxy.PROXY_CHILD_PROPERTY_PREFIX) { From 439b02c03e19a94d9a32355ee45cef780f7984e1 Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Sat, 7 Mar 2020 17:24:25 +0300 Subject: [PATCH 15/15] Fix test with Proxy builder. --- .../kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt index 2f271041..402290f8 100644 --- a/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt +++ b/dataforge-vis-spatial/src/commonMain/kotlin/hep/dataforge/vis/spatial/VisualGroup3D.kt @@ -82,7 +82,7 @@ class VisualGroup3D : AbstractVisualGroup(), VisualObject3D { override fun setChild(token: NameToken, child: VisualObject) { if (child.parent == null) { child.parent = this - } else { + } else if (child.parent !== this) { error("Can't reassign existing parent for $child") } _children[token] = child @@ -134,5 +134,7 @@ inline fun VisualGroup3D.prototypes(builder: VisualGroup3D.() -> Unit): Unit { * Define a group with given [key], attach it to this parent and return it. */ fun VisualGroup3D.group(key: String = "", action: VisualGroup3D.() -> Unit = {}): VisualGroup3D = - VisualGroup3D().apply(action).also { set(key, it) } + VisualGroup3D().apply(action).also { + set(key, it) + }