From a3ba789d1441f1140e0b9988269b5a7b8d471f45 Mon Sep 17 00:00:00 2001 From: BenjaminV_sl <60651082+Bvallon-sl@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:35:46 +0200 Subject: [PATCH] update to sdk v4.0.7 (#32) --- .../Mesh/ZED_Manny/CR_ZED_Manny_FootIK.uasset | Bin 2001046 -> 1906226 bytes Content/ZED/Levels/L_BodyTrackingSingle.umap | Bin 42632 -> 42636 bytes .../Private/Core/StereolabsCameraProxy.cpp | 53 + .../Public/Core/StereolabsBaseTypes.h | 104 +- .../Public/Core/StereolabsCameraProxy.h | 24 + .../Public/Core/StereolabsCoreGlobals.h | 40 +- .../ThirdParty/sl_zed_c/bin/sl_zed_c.dll | Bin 152064 -> 156160 bytes .../sl_zed_c/include/sl/c_api/types_c.h | 3076 +++++++++++------ .../sl_zed_c/include/sl/c_api/zed_interface.h | 1509 ++++---- .../ThirdParty/sl_zed_c/lib/sl_zed_c.lib | Bin 48116 -> 51130 bytes 10 files changed, 3036 insertions(+), 1770 deletions(-) diff --git a/Content/ZED/Assets/Mannequin/Mesh/ZED_Manny/CR_ZED_Manny_FootIK.uasset b/Content/ZED/Assets/Mannequin/Mesh/ZED_Manny/CR_ZED_Manny_FootIK.uasset index b6343189ee0f32b495d20f9378144e95a368619a..89987c1fd9d6c4a2939364c7e82d01f37be40f37 100644 GIT binary patch literal 1906226 zcmcG11zeO__wcd1Yi-s910@t?EgBTWrF6!?0UlsuCFe$D)A@Mc{-RQ9Ft;AI-W zWlp8*MU8EDw)(X4sI2o+zjZ+&7Y2-PVVRL<*MV!rP}u|btLuw|kE*(@|Jl`xT7PR? z5S6vGemy(Tf4$$G(vzlGoGO>AiOPJt%)S~Jwx`DO)g^~!luNkdg34YbuYd55Z|1u~ z*WDKR>IZ)_08SduX$78hkS z@QaA$f5ZlwOxBP#h(0%5$qS*|qtRk~FU_!a%vx2by*&!(RKo`DS;Ht}+67~tm? z=;rSe80h2f=I_@i0HM(T?L+mL*)|7YR(E}KK+~8!kPrPGvONzBLjQk!CJ#)%T-*3( zzC1p|8?HU~!EIPX#FZPbisfI{YWtKGCx08;u|f`nkNIFl@<2|=0j&;>%~2AS)~y>I z(5P+%V_-?VhYvAnRVujwkC6m&Y`PqlJ-qbfk*^p(yv6hW?jy7*)!0U-q# zm=wlng?oL1_F!+bW#bwkSS5yux0=jt^u`3Rw(4}cx(b27H!35QfmcI%#AClw;4NUb zVKU%bbn7Q>s)*4>y*1WHpWfdv?#g!#+gdtWYB{oWD zPGYPuFzWZM*yjZbGZP&i*9}z=K84h8;iL?64b>YNo!QT1Fqt8x+>YV6$1Ct~{XI=* zg_E_5FR7%05Mi?FkS*c$nFVvJsNh7Ibw*1fayDr9VDyEGDp<5pAhr39tvJ?j+5{Mr zkghPi)vypJn_|}hT36gYzo#+g4Dg@3@FosHQgTuc#%$D^jFG8kWa~(zH3OC1OV$;) zD3#?(H4!7`9XhV9*aGc*L)y3o;D1B)DS9h$kMm1AkEkk=EZ{_-IOWSE>w4;uq3YI* z?|{22ryxPY|6qS$Jpoc*Tz+3p35oa%R7{!Qpn?)OATg1+HVoNfj{ijoBhqB($(Uj4 z-tw7F>Tup8TSfhrS8O4oEv`>HGt(~3VBisB=ALd+RKyVVh?p?Q?7F*1U3sZ%00LrX zj?r7vbOutTb|$^i8fHphVEl{YyTu)nFd`%|VZ0+nrt0Du2+p(pTQwW*gdm_76Q5>f zaF=I#S;4c`o=h}4fDi0X@&7w7{wpED)dwJK+BFnF=`Ys~uzx(H2){LuK7}bL{MN$S zEo1)RsD0sD_g+0Ys4t>k=<|A?@LL0AJ59YR{MN$R-hI;Xkd9?XFcuVz!EOAHiA5wu zh|kKyZ%4=qHBkB5w7+GAS~&cpS2#8n;^^(o*4bHabn>Z({_(A6O0zmqK`zkgapGj0 zJNP7YOS4$<&>76=laj5lq2H}?y%hk?dXtmXjF>5nJD8jer?{{!iY0*tlgTV#geN9i z7^@Z+_@$Z6C^icsiC%4)bgF<0EFE03A+3c}HCG!-I2c%1>!hHpt5j3aE~~T<2O4>8 zU3pa@ab0kR3JR+k?0It9OHnZ!E5P<+RrWe73A90VZHtl}D3R)w+d+I1U6$AF*Ahn; zn+j3>thwP)eN9O`j0$KZK%=+^Pr^d)w^jsYqoqkJ)4ah2PVDmjf%~7WFnM!~zTD6v z)t*z!Rm2foPoBGlqm2SX5gO_t?T;VW?f{|&{=T&2jsu8VX!^EwDjqi!MBB6=+_QYH zkH=|8kZE(9u6rgpOhFp_@}T~)cvPk`f=y<9ZxqaQhIS^4-iq6E*UQ0MdfGw2aR5bW zH0Y#RLQU~HOoY25V!()hhv|*}jKQk&*ITSQV?4w4P7WtlV^h+>1#TI>HWeyltDdWz zEj&2aJi4|WeNop;=Vf+)-D%8ChtV}qC>eIuvd3LqZHPN|c!tpX6tov(BY&%NWLL1` z_!^jd^>zct@wMRpz2QK+)|59S6b*mjg{N+6?%^t@K($zXBzSlBXf#mqYW*A8qtU{_ z?}x1RXky)Ly<@@1<)v`qu2vsJBlV9hMT;h6gFpj0OLfm>uT78yajV10UZcj?YZDnh zvTv86>l$W{4mLnD%@{E4v!T#>T3;Mo3~Tn@)x9Ji99Jr}>2GtjTDc(OE+oizU_7iqKmLi_%W(nJ1Fc(GON-|p~r zyQZ^KMXa2f0~JnfRv_$uP}G($YUiY#c{=?cGNsOQ;Fq%{+Wy~Z%G!1I>p#2Ug$L?7 zTz(2|ep}f8H=AOTT%kk?Pug)(B}z}ZY>DIG0-nWwxgpFnxN=G6Tg_?DX}l^R6)r|W z5jnk4^sy|EG_c>f;esrXv{1h2?P3ZVp%IqT4z{`0y?|E`WE$Zi5?30g&N_HbK@JC} zX>YV==xcjOB-4Fv%6rNd2@S6zqr&@<(?$z32u@2W5;D<)_~iw%MAJZI|1-uc(X=qS zL-hlSnu!h7bvR7Li!o9|vDpDJRm`(HO%$a`jde6`Lks(8#9RZKe#v9&kg>v8#2Y7w zvGOY>v2>|4#F)VJf(q;JmuRY>GC!Otv*4LQL@uU`FwXMW3OeA3gBKC$;#;8EloFM0 zqM^dVjoL&0*%DOWA$7vgnu$Kukbwqgr|;jd2028;t~SL=%n=uY7NGPx12=r07`Xd{ z-_NrXTX#kc)Aav=6_c-i==ZKEsl5*mL^ z+RlDnjxoZE!%Qq~ZmzZc*Cm$q{t0qHfoJJ|Ef)rPyH=4X!0N%;w!&SnBMP0{T@rSl z=NdF#p-)PXP}u4DSFbr)qG{m3naW?XMAO1A&)!BUY9fekNZ5HXy6!|JG-(KicPYEh2@5WK+qg^7kjc(Y2$}8xq6T_RuJ_sj zL@g}bd@xo;L$Tp>@%8`2Yx%NxjWy&91G7y>$g;N`96G?g7~gJzigFw?S7N@XOBH4} zSCneo|0ID*99fDKZ?0De{YdpJmJE(^vv3pqFFZCNZ%1?;it$Xf`6tZHm zo7mPwF&xR`ccxE)Z+J)7w#6J|D7N#>dna4`Pt3$I{Etu1XDf`AijAgNRY??geLP`~ z!r?O~sVP?v2?{>_RlZNtEko>ioa#~FpJ$lcbTMOo3<3P&vpS&;&f zqN~Y!)vSNZc`ACFO^p=UiTl)euj+082Ug-9^|5}QX9`)7qm`8Or^zRR`}rvOpJO!? z8o&E`rvnOEk&;r9uE6%CL5EiQD`Z7kk_!sVzyIl!LROR|2WdYVT<*UZg-&2&4b@)s zxW^xp6zpK1fl!O0LD!NM+SZ2Lksj1_c+EC=_gOY3*zyv_rI*IF6BHu94T++=%X?4W zqT6pO_?BbL#C_-8&7GZonvuBYj5|8#KVJtdqF6mizX{$r?|I9gwBlZ6vIG;)NE zQlDXRzxcOFwuuGdr%e@#DU4sX?IRH`?Jw=47cIaiHK>opFlMVhUbIP9Y{;hmp{iiK zio~ttMwx=lrZi&$w?#)c$GOEMeq&7Q0-6-3=fXyYT%@aEs>3v29uNgQg8AGA+((*2P=7>FENOd)8L!QaR_ylF#hhw_1`VHhR(v$1B$mV``eP zBm-57ZM;b;sEXpsWi7Dv&OLH0hCMi@z|J)iIUeKT52t2#Z%x`;oh^%sreU4o;0Fhh zHSo0ZvPljiYr*5UkQSu1)zu(f(Li>l;b2CIsboLTA#|kqnt?8bvO%DM3UfmZ*&xuu zpeEYaK_^jDSIOI-B_;@{2KnN~cejh8f%OBP z6}F3_1-&NEVl_?35y!lFUSB3F1tQCGnvj?d?Zy`Voy?roFz94=M2C9!?W2*YZi`%r zSJiZ;XDQ(R-y@cg6%GY~6a|@Qze}|{Ss0SRdI~CiTkc2X z;EYHkHZ?o>^;ig5Ft7m$-Sf`3NtNXiC^_FP%MI9fLawP41=acSt*dnD$5s~CXEo4n z{~nJlIB8+jqe!|WWy?w2?K(GFy@M=Z*hNE{-Rm-asso4`i1z#UUk4DiFqWy*xvZ=U zMKbXwV*>7A`@3A+EVn2RrCluU&e+^?J4jKG-p7MGjLHH@0|TO)zsv$j3rj5*eAG1} zT`l!`;S9N}2pZAOcD>KOoO1ifaAUO$P&QEbixDJ|BQFM~_{Oet7<-?X?m1Jh2Au1zFB57(NZxMN9y=(MdK;lS@T znl;0NxFR$*1RVym>huOnJDrg+KnbgN4}4@b&fly{r-zTLy1KYvi^K&a=&d@;adnNJ zvDlPx0Y>~g0bEl0Ov61TE}&N`N*FCZMl@&=T=vkY1zKv_Y$i19J`9|CR!2*eW(&}@ z1hQL1&$)MXb^9GRIhtbOv+YcRkA);tV4iip8s%g0F{1{7^&>9aXA9`Th?19$%W%uY zg;+>|4qX%2%akmM9R-#7XJA9eQ{pvSjF(tkq`D4mmL%yrG4ClSoxVnIv6&Mq7qSh%&WHLx=MtyEBFeCeZ>D)^z%<2omOtytKQM)#MbB zW(1$x&XsYq`Wn(0d?MW%l!iR!Y`zN7cs9Y8MrK&hX@8V#TClJ|)&g}UM5Ox{E;0E| zeq0$-LPl)789Z_gJ&E0pYyt#5E^-^^^Z17ods-XoK+l0Ykz(rUnO<`T5#}OH3v{hB z$BNB~5y`>TOUDWv#@ypfCIh$@N_a}DhJNr}p?L1~qls_g5?vD70g5vDCF>0d=oBy% ztS}=LThq5)jLxjb?&8l_$dwOV!2xAz6~>#+0yGSHqd)SU0Cb}z1I|xN9f;k)7u_g` zPj*G^iF^F5CYOe<2wq|)nnbR0}_TIB94n?#K zO)&%s$x~~m6V(V01d_?fGca%#?!G)JE2UD*a$;4EjL3;?zwJFX5r-_16gVdL7@V(( zfHGMfI|ZB;%z#$^(Ox;JQ~e1u!m(eANQu1i8SQq7>g6t~SGj$IT8irBF0WT$#P+A6 zdZC>!BIzHG9_vK)a(5+id~(k3B$DGHl5?uW{d^)h9&$Oop4LAmlHO%_Nm6ca#Va%8e8-3P^5gP|?H5VG-e%k_AE6Nm2Xn5`sk z;emmKf4m$4*T=tYk82$lZDH6O19WWIIr#5#c>aa~=zwD)gYF?DpxnT~SYSz+x4)4v zmVxd8J-s(!KM8W^haZ+XWoCL6VlTEJ5?yi9B{7ho*%3ej2`cB~-J`bk_v4Y>57x$< zb;e-2cIQOnYHOos0jwS^L@R6DUA19zu3pAc{ZNEVGNI`9v47?fER`#WG@;cblme74 zQRPp&Tba!fqVP?aUULTf zVL!)ZCUh8FXV#@y;Pt5%Mevx8N>foff=0b5$7anYCE;!TW82~bKbt?glW|`NiS<_Z zD2clgDnTg&$~=P1y3}MSeI>I3Zg#F1Cuns1S~+9Od}0cgz{~+QYD53RLzrK?c4SD) zTdrhrq9y&!UTB;8F~fy07MHd|3oEey)uZ*erIoISZtU7A7!M5!uvkB6Z+`NHsANV1 z30gpL^4F!LVxu2e(6csa3>LtZUtWCWHBpt`YJp1oCr&0x$#1#9mG5m!6V~XyjVYzQ zJ|T&*k|ER@cMshV1@MPed3zSe%yb#t|DsH}pO9QB zM>y_aSTlnzgEVgMsgHb}X&Jdrk=4DdvAUtTh&9>k7xR(gwE?B;4uim75eMz?-rW7qKbX%c|RQ_&=ibRx|eSnIHcgjC(3g zV!QXg8cEd0DXqdCx1N1^=D~w9!M0sR-xJhzGR_ewST-7OoY=V)jz$zHK0rBh-}Y1- zB5fdOjU-}r=u%~v1|AM~IiL*FLbCA6~&IVPm2D(%WE2Ik6!ie09mk8}0V&NkPRBK$zh=)CD zdAtc2Wr{@iG~<&4(JkbEC$#E?r>%-my8P5C*fp}%z2x6 zOgt#KELTjKrOt|;qyQuAP8_JZ5{E3RFQ#L6m!>p&5KTe_FNfPPgVklOw-TBj({Lcv zwreU~{!0ajwj*+E+NJ_TTMxB6{~}nH>r@AyN(uF0)bD~{VIeox_F5D6i)fj!xK>WbHZJ`?nfnkB0+15-rgNx*v@V_ouu3- z6EcVjd)}S8o|;l!iboa(^#-(n>g|nYN@lXUg%r$pt(bW5VTcUgvUG9Z zEAvuYyxfKxRsLRqw|9`i6sI##%u}TcbRe;-SG*w&tuvCPI179&6;z+34)g&7&`$bfwo-_xdNE3G z#Kx7T1JJqLA7u8Aiz8wM^t>NSkS3$$DAv=|BD2%xZ^X_fG+%?FRo=X%Jk9AkbAp8? zr%<=xoa@+Y(BLa7cA_)pmVPN^2nX`qN|VwX=Hajwh;m0`f`LveaveEImaPJj@z~CY zCycwJikHEAM7Wr|595pGi$McMl#7hc^N2 zV%naFPb~1@Nc2h*n#M6cNl9k30B%JAj?G9xySI9OJY^B#TDfFiz&hZ+thJ;9XpLI5 zKPez~KR9S14wnME)MUoYAl!JyH$w>aC>nAa7#9}yl9AxIUqbMlDpk0Y65}qAG%0bY z5I(dZk|L1MDWMqs$OZrJq*Y0Gm*wIQE}r$Q!}5v=<0jJh_5mIvk>jV+g)u?;?q6R% zuVqVt4}18NS(*5q59m~)O9M_<5q|+2Ut<-RS92<2pE)`SBVhl&snI=2sqoX-YvTVBxbIh^5%C}TocK~D4rW$=TLad<=2wGeIPN0 z-H#$s!~*^<&do`fV~g1}8+cfucM)GKL|V?DiL!nF0IxfkGh%Hr`kNW~Qd|5CCvjp7 z`h`zX`ZTsJO(TlsCr|kP2@IULt+U)7N z;FYbi$1H-erkRasL>Epxb^y1!d*A)}&H} zR7FOLI}^#Z_s4G8;_V2Xc(9k;1l=9{VNjE7bKsL+Slp#&q`em9HJ3(nX}IH#UT&@u z-L9S^%7`vJtlmChx~C&FLfdmX!RV9*rL!`Z^W}llM zdC8FO7iYAX#OJ-+EewvlwF~ONNT^l>ZM{??# z?eq~B?oDi(eQH5`{vO5NG|xT*8X7rUOqw!rY%4oVYz_z0;gm}j_!anaw?@9V*MC*` z;Qr69OnHpj)W_a{Y{Nn52HYSTs|8cHO+)Qj)rO1w(DdLAUv*?&U=#ZybQ$qF^xhoG zZ_ooS39&w~yrO~TR9WJpK?5br=xvj-8z*&hRTS+4af;6}Rb?!@XE1N+O%X9=JSuvvT4gCbb)EMtXeh@0Dc@B`m}dX8*Ly2bIIV zss@r^(01VQF3NeAD!tGJeFu2Gb`yR)Wp=oHgLs!T#-gY{OfgTaE!-ZffhSz%RHqPZ>CA-3fYjaMFa9a1hr zm!MCxaLfWLE8-sS_m~}N@lIfA%e#xuG z_U3K1gLjif3@H`6%?MB8%Y=|gI}66UffnwB$GEedOXC$pZp1_<_|Pf?TH(NFQSjb7 zl>c_cP~ z4TLVdca0uSww!FiWPSHq(bMhm608JF7cF=H@o|m~V_r3gSQZ}aB&X!T!fAQ0%%szJ zF-jsqz++FkLuH@glknP*eKfS&5gyRBp96>*_|zd!1qTqd@N55PTktZuifE!MdvRs( z<2K}aRo19TQ}-by&(?H^ud4=z%}ZbIAhH%ZZJ$Zb*NN3Yp2T}g`S+_fvR=qr8o`Ob z?24JuAFtWVXfcd>%&sXnPpBafpUHWA+P}C@$v9B2sXw?@TLo%f4H%^>^P-w9HIE>8 z&bY5pm*fqIY9U~9zEi(@zJKKnsDy~xWWtU^$qu1vpvjV@#T-J_!rj5a3*?O_QGn>o z`q20Y%VoTjCo`W=EfF%(_+(tD)nRlE^c&z(%3*XZEYTd>jW_q`ZiN%x%X0EdMhCo{ zdVTxH1sb<&_z)%aheAa@={*;8Q*G z;1YcH*{|K_WE@9>;q2T$*Wuz|MwbAm*N^%S?pzz(%P zo{uhwYPkwInpu>6v&u_BC;zhJNdvJMC<47L^sI~+M+Exvo_1HbgjvqQ2#=Sn@VeCw@cSMhlqB94( zKF4grdtjpNFRDkg)fXmWPeJGM;bO_nWpL6-w+&3F#|oPqqV-vP2u*VEEG7K*MN)sG zuy6Lqg~qLk!WJi?N(m4Zc(f5g6`kMsZ_lPS*mFsMp4j8dNKzx&F^&bNKkXo9M>`ti z8l?rUEv)<*duMA{xHKRMR|4-7ZEoHn6FVjPJKcnKrNFO#+s&9gxwe!T5>pa4LZ~hd z-T4^)`_!UXSSXsei7W$y*LQz|8z+=WwECdO{QFevl?(I4zwwqB6kNZn8m`yD!+b+#QC_`2DeMxd(U*^Bibf?g@=AjoXfg zS57qLPh~GS*JX)VTePd)J;MzSg}F|!DRzen-S<1$6nns$o__?{6nnz*T9pQft4w%P zu|1y|$|gi$2@} zMdppJjzbq_8l8&8Bt^9Dn2(fLEa+PTW4!-Z!TcPyd;Ul>-(?Ivv`!ZsX@vm2#sDvQA?}E_`R4`;MFqa_;O2p%yi|9tW~M2ntT-nK#epDJ zJZVSEOW(eodym5`1&Ze7g)J3Vl1@XY2!LB9g?h#(2}DBz3$YL=I+gMuvT1eFxTKsL zrJqfIEflh&L;U6GYXqHWAwSgneR{^ofxPV0($%|?w&T8&gRTTDOF4OnxFszkAFM!b zb#B1SMwx>KVbg@6*`*V^7LJbBLim7wu{)L zSGM|dvQ4osSQ4F@<2I3Cv%a;w=8ihJ=ku^ow2@9+EJyRqjY<$-xLUDyWjut-X;_w{ zjtL7X#x*TNYbn}uLwa{{p8vOPxi5?;+9Mpds7R2|^X~rDhYT+~5ZMRux?J{R zPl*k1u`d*B=zUFM16<51oUt``H|)$}PQ(QBryVV!0Puyt_0D_oEM7*z@|$<=L>@e& z!BAnl8?ToVcQlzf!9ndq8{tWk9Ynlhjt+NLzq7Qbvm= zhR(Hh*`K>)Er-xGx^(zA_q6MHu5Zg+cnB1=M8Q>?3M!jHjE0ibhLM{mIDn{u5pB;s zaR5;ZU6NY{WvQVrTo~8+k1YA&&%pdX$G@`!h#Gh_=vQwC5Vg>9+1aUh+^}my)}QWe zA9k7ZUBREIyT876^0YF{7hHbSh{uz3sSJ_hyH1}qmg{$PJA}rO1HQ@OTn`qNBSX~m z+_Y8+qJhaSmrp1`w9uwllSEr7zVJ)J@V{*-u(|!e`1MtSpxMi#S{0QbXcn{o_+~Cv z2s*PCEK(?cEElolKqRm8pI0BNg3%i(7xoNP1*2C{-bXgD(TT*5Qfb%AaE-%@#SkRZ zEBLajGE4&lqc?>p!?d8Wbbh2H%@SyW`gX^EPMn8{D@egeZi%6XBJ3b&VCl@IjqD(3VZgrNS<-gp_S{g2X*}uOBdK}< z5ZBr_a-S*~RXn!wRaG#md&bpt70JHvYFmX66uW^f0RKci$Cmt=R3Px?b)%g#+ zVvRd4H7j2&*6@wCEZNSDOcVo;+sGn|w3E)@yh9+R0Ho6_x2C%lK^mxEuhR`hkQUw* z+-Oyh-iL;X0DoOK&Wz|cRRieTcoo}o}c69_7qnh}lWiw|>hKDkp7T!cpCtE0T zI@Ye=D^7kP4RMq$@4APQ3+JH!*soz$Zcq7>(^#3p0MDO z4p8fc+Z67X1|}ViddL0JLh#=^JL2ge!la}Lei5N~9SIe5fQyg*GqXQ55dURP8TN-3 zcHT1Y#Ir{3IS2aOMnq!CD}*;%JnI0z_KEZ7eraG@V!rC!FD-<(`e!WZaI%k8!P4%* zqlpx~u>*A4wu-FwqH~KHc((G-jx0nA?qi+akstVW_p}#3{vgVrALNcXxkDU$N7oe3 z-|<%n4Hk$m^`;!L5`G*q6n}zpc~Z+8cp8mzBJv15>efXzow+9|@`a02tA~-k$zib# zn>44u4U&|ze!|K@Lv)fG;w zAA9xTIiX?DZSnuw2adps;`d4D+9Qm7_puSB;68U(X}Nh3wu|(9T;8o~Tggi`uwm7y z+VWB@B#)~(63 zH(lA=>(I4E>|1PDvJoqKGh}*HW>4&rxSVVxoLilH6{#yKV2{bHj$HSF!$GHKI>3>R zBXf!hG++*V!C-g8Tr9BT`)mWJQIy__ZpVIbsQ3Bu2YNw0uu1g}f+R)MjAt4*) zT{U#LDrYG!8Uxd6*Iw!}+j4e;o~>PdlpD&8x@V6;36GTB6Yb0^yh>8I)sc;A42gT* z8#uAG9R&3H-rV=~?I566_jXkrtcrl$v)j3Yx$Pim;MVD7WTimCBKW(0TFCu06S?}PI*N@xHc@l(9W`uQ z_bi!`v0K^2+>oA)X7z8Z2Gzje5fy(|gKDAU!uQ{mqo+HpGwgq<+>-9pJxv!w!!t1Y?I38N&GB19?I37j@=K4pstDLUtwW!#v4fz2Lo+9kmsxGy z)1A6!g?&0kx#`HqQ)KShc;u4=W%oqbQkR2DjrVU=X26bM}L%Omtn5vJILV4SKDpzykf$B(!aoGD3*QTj0RK-HJL zC?4OnA@%<6N4vR@3r@tBx9 zAJcP|%l5Lp8yzi#U0AhH%tUGIDZ?_Ai?Safm-lG(JmrX3-N?53Z@1hY?Q)LKrhtk(V1H2gH4Y-9 z$EdY^PdbQ<9;NO(nNjdvu^M9EeO&rTSq0BhK}VX`td_G=HVDwBOv|L-vO$3MYRZqw zRPbGQ`1m=qmV)oHSx1$@%tHm=MZ>AccSmin-%-Jfgb|uLo8~{iw+gY6pa=ts@ z%etuw9;SebJfPUh;7|vVHL!hK{kje!Ye6^Z&`<^66{{ik-Ob~tSrj}=1s(hDgg?q< zg8=#N45j?KcHIBUajC~1jyKk;Lt|f0o0Y~kb%fXc|9On~X9vvMI z-tF-hof>f)cKyXhjG1 zj*DK#*@&imw>oqruTx@7E{?<8Z=Hcl4e4vdFeZ1;np~sMB2F?GN}0Rh)Gw7W^we8o zlhJuz{IZ9sW4?-baS??MC$1|)uNF?^sFygNc()ncJ`Y8-K!-Mw$p!Ea?jr4@kH7sw zbP;aWX%-&T6V9lJKQ*+@>&#y)AxZw=ipTQ0BqL?BLH3ArrON?ZNo151qc!fZ6c(%DK#&WhmSa^g3vy>Cxqjz8#MQ!N5ipC2=7gH^IFlD)PtMu&@BcF93H!R z4Dl8Yz&^y<@IvwSc>9u{OSNOnDQPsJXs1Ju(*RR_dqvV8>AOl;9`6>Hrmfw~!g}hN zbo}NvdN3Ltva%$@qa#jVSyg)KO=%Xs6+_?8c#@xpq~G$0?AG8GnRC!@dpOaXa!&N} zLY>dW=aR9Ed(0ZYp3OgJZQea@Gid_$Wt>2RF3AEnOjS0DOYyR_1$L(AIZpIJLzCn{ z{r*NJt)va4W7dq6JNK~5;!_+jYRXCrRzo<_5s9A-PeRcGJz!hx-kz=a&~F6jCpP*e zAO4G6@q#m_?~@lQMc2aMYpZVk5(x@_HPcyda*{?m{Fo+PO2&UlFEEm0&f+tE^eaUs zbBfMD{uGY*xj?8kA_<2rkp|>VL;g}<%#YCAIMRp_q`E*v%#|0|=fo(23^;r!VjK<| zVlcZ9Uom-hFWj`YAT-K+-Zy=O3Qz-Ki~jvv1*nD0p_Rhr64{0KNqK_j;jLq_L<*u; zX-0QH)kFnOZqj%(9F$9L4ypNJscX%#G8D80DsB+?ShHXp9t%WTAQYKdGuscCA!{0h zBr@!ToHNKv?ouwSX`}BQ|5Mf|h?)YCaSb;!$%BhZv}oDj#(_5_RH?O)^KsR^GV3Ge ztcmYTsOXGChLp9~$en9F4pYS-W`59bO;1|`$qe1K!MOkMkvoYX^lXawH@(!nZ}1;G zaQ-2N;E%G3e`8GkO7r~t1NYzs8Zm+j0eXbPH2lGNoGN66&F(ekn9(k^X%^^`t47={ zG44ue=5B+zTRCz>}YU(Znz)<^SREZN;jMq}Gw(8186%?8R{-xiPWSN|4i{{YXs#63k3 z9rdaLN#`2kDUW?zR^KB5FOPZIMYh|c`YdnyQSR1Ky(Hw~{2Eg##`E}=s`>Dr0G!vcSfjY2?@8K#9Yrw8`oc{4iBd@1BOPQx_=OJ>K2Ma3~)vCXoD+@zbubQj!0X3)wmRIRTj$Mj1;%K$d zqsg=aa;cuI)XruvZM)PgO5P?HbLC9iqo7N=T%X2#dv0AhiR|o4C}TM*%pA70 zAIY_;M`G`aZA?B;LM=Ee@Nj9lPF$7h+^KT9yEkywOopBeAArb#wO)R`cjY5)Y(a zu}wwjfiSRY)pj&m5p>afXv6)o@5!`}ydy_vO6+W?$f-Bgr~w2belGMY^LJ?#AUf#S zYnVj^h|WEB>3)+;WJD6B59xk5P%lKJeh_%&?Cm8g2!_%7>eUt%gh2B}A+1COt>MAY zWv}S?K$J(P_t<&D6nO`LZ8kAb15MBMB+qIq0JZS<#~E!zb`+l$ zoN*+nIUQQ4Dr8XsMja|N11}zN+(;>M>4c`|$rp2^C{U5s%1)XHq6feftGs}Uz?8g%xq!U|7o&>I2?9Okb8|#zEOADxP;E$8=OJ>{m z>)Vmm*C!>Dd)%ux9l40tYtbur$@C(3y3@cLM0r|5Z*sRzu3Vl+BUiaKvpiRjx??oa zUG7ePkILJYyTdRh|5n>_4{-05a?ZBg6TF-+{zL38;ZN`U>b~8jF3Z8V3*Dtg)hkR| zQ3`N}lj{yHRseWFzm3ZdD*!y9*S#uViSebZr~;LGG$vQ_iPdoB(P}fk)xCXKzt@t= zkaBm>EuIoj4!(X|QUy}(4$(_I zlWfa9;NFhk!M5BJ9{=;CiKNP+JKo;27YFfPi*H|-F!U?JI)Aco%e!Osbz6DQ<*s?p zt6y~@-@xK~-f!YeWR0I#1_8)L@80G2hvU5fQb=!l9}2D?Nfv7qAK8{Ks}*T}tQLOw z8ZoeWHBxwwr%^(=KS^X)!Xl48_?&&R0&hkt^1&E%L2>PpPdV+Qkp-`EKQ=Zci-t<_ z=u&t0l!0XTQ&FHWHJlUURtujRvyUchZyp_diEI{TfzNGmzB^j!p-a~6S#&fAJT{E| zGaCfx`^i22S&~Q0o1-g}*`P;HX>doI!aN(fZvoh74sUh{@)9+5zA}jrh9!HU=6DPdQ zdmu|p;>EX?hkjNY2k@c;b>kH06D92NyF;oEp!U7bA|4ScP$=T!D+v{18fWP+=zUy2PNa!iPsJ0q}RcBxRU z(kpG(W}i+2`*YlCo_#tkl&|eE8J_}D4mu4{Z{?$Md}xncYC}HqEQCq|bMn`Wjbtrc zxh+{V>ee1jFQhwwOB{Q2+{{oXyP8th-j*k#n0=nS|3QvZ6(ZFG6|NGGE5zyQ^_Fb0 z<3ti7E>yde-&fs^6DiRkXXtpScv^O;H1Pa(TFLBEX`#`l*?a6bkVHeVqn|o+&ClI# zvj`>>(V^Pae|9YY&roV$)`vx=pP|%(-(R8o)#JCw+3OX#l~+A}v###`@VTFQ6s1Vi z(YJR_pnJNCor1+AZk{8r>p}JS&7~m&+%G=2Cz-c7j9$0qmU{eFbnpsC4?IlYKf391CmpCHr(*sM39HlzRNeZ*1}LyVamIuhio=MkVpv5Orajdi> z_oWW8<3vg{$QkrMevQd475ePwJ%6|CQlYPb9$q=mjsr#a~w#0z8r+C(U z-kodYlT6jYL4g3ZdSI`+RkKB+fj7+1UfCkig0o+@E2%rCiigvZbjdwFRF|qwORS)(M`6KVaWqQ^i*GCkmBVr0JFz?uK zxu&XbDG;Fcu72BfU$#gzka?)h)ohVyA?)EF>8c(qR!r={o8H|Wr|MHGM5spIcgqgX zHkk&-eYM=pHklTpuFoZ38&z&2G|=!-_}s#?UsQ8h4}?h)j{fgsy;V~f4vYHnpO+yh zYgFRN>El}WRn2xVSDJ0~t^3<>yBq~?{#xTiylUQnIr6ANuJQ0*v!d#bBcb6u+UIph zLv_bdB0(Ooccp%BHi^)C-P;OZ%O(+e(0kIop6X5`QBUmI!yBg0cT<}tN{uHXLpA%} zFjve^5TeJI>LSoWOl!%aDj4}RLoozA=G_%Z7UuBk8j8)N93lF2M3HF>xqNK=y!S`-l zI5~l--tdAUMTDq^52`-y^HZc6h|D>-(od0UVRQ|{Ce@V%50pjnzTa*{P#ZhZoz1el zE=VVz{#F?+#Ci6Huki`wG-V%sDi&+ za^zZSC%TJiIB!4Z-TI-OE}}q!JfTNWlh|w$Y2c`~bCYZmX`yQ0P1Ei4DzSPZXN5~E zYkaoTJyghWbf3GV@=p+==sxg3@1Gz<(S2!yOR5puQ}FKhTRRw3^KVa@xh!AVd97;f zr8qRAKfJX*H7i8o*PVucZljuid$Ku8FXzrv>~Q1b30!HA5v7`cdn)BCtKGsgRcDZ5 z3eKOe&41ZKwF@W^pf)d4D(8)Ck!WC1(WKqkBGE!0=TW6p-CwMj*pCbQ_e@ZAe-$EB zqe?MD&t;noJ?how?$&IRp{Kr5ij`N5(4OM#r1a(+{Zu0~#w59krPE1g)gZ}XQ9pJm z5=TBzr5K@kRN~1KW1PpUMre#mvy#01BmS@}T=3?KKUPgrjnJ4Qk19myf-~J;t2>T_ zhV$t3=1i2j<0z3J56DsBd;4q>X<%!<+3K0Tv_e8AV)`|0zPi&$)DwI5f)NjotHw*I zED;&18Pn)V)t?~Lz2d$C^KK40%lJKT6jh2?qfR8o!5UP>PAeLl6BYJ?V3aQ++{ z{oKTZGQcGq<6MRG>~$?ap!E2Xkqh_tN*I@8L?s_hlJSMHFK!CzX}nK&|j+0 z$~GB_(2oMYWt$8|=>5whR3kJ#&d=x239a`9t43&yNg{NP>S<1@L6XCwe%x?)+J>xA zi6@V`)pE3IgvMNHgnsS6`nFw;f;Z>1?w+a|p)p4uRfy1sI+b@;cN_@~=h55$@>D&0 z7AqCQ#mx>7F>sB$y0LlX=|pi1M5nyD6h%)i7 z8dTJLJuY@MF@fy%#JM})tC72B?5tXhN_x!jv+v%E`;{Dlc9!E7zmj&bNI&V}T);(q zW>(CLc9D-S&n#BMpm%<5_nQAud=6I3qdkL9Hba%%W4DXDqX-503?DH@~g~Dt&T&DjLw|*RdGwCI&0?ZuhUD)loEF*-p<>c>)aN{GNhCQPsz}CyMOf& zpV*es$Sl3>XeEoRN@5Ab)PG!Xm25rAI109oOKVtMoN*{25@X+R?Oj)9B(YR#?eit? zO}B$Y&HZKQ`g1ae6>}m;C_K&hIHFCKXc}nn^j^Iz(X{a4bm1YgE-MzwHnP4!>)YZ1 zSZWP%cWQsfwTO73(-u>yq1_W-PZb|Vx1o|XwfDlMH`TS~`qiX0)!k(QP*gV-i*~K& z^}VWPjY=9kx@W)g>V`#JX_No`v7@(LG}`DVbOrjV`x)ZKHGAuc{;eHA)WElKzt(pE zQ42LzogJ*+bCGDa@y*YxoGK3FNMlTxFM1m-J{fVuVD7t<0fjk`pFxiv8wbm#w_fb+oR~25NPMc^AUrBQ_~eN(>{XJOFqsR~ zsXm(CaMdSa7+-2CP8xuw@P;r;3eauN|DOhsu(as_4m?uMFuT?)C zKDasCX=Ml@35bC{5r3`iywmgo>^&_R68&86yNk_lH|FY0K1zVz6Y)vtmS(XAo6P#& zCL?<2h$y?Ca;fR`#PXFdihEE zK2t%xrm?5P(xvr|E#La)&(Uh&N$v)_*tL2G6qnR_PVK?7$m?~SHozkf)J3q*hQY7%v;wdg{ z$QQ_Hc*DDVvAzaVeD^3*M4Az96zTtt4XFyKB1G-TnB!`Q?qZI0db)p8L-Y_M7TEQ& zgqoIUnMsU#>-2l_p?S2JXrrYkzArCEZUs-L}51q!cPh;eXsnV7Y;4&l@ zWrmIM2pM^Ok$cmrM&DVsUQ5upCmDG~-kH0tc9I8RIVyTUC;s#DayH>Xf=6{ldg|lR z%bM+Xwjv**m-rdQ7r(&CY3!NWeJ7i%$*hOp0OYW8H#N*-GfWv4$_1_H@+x1g)Io>l z+q5YWPt}BJ8F$ODGdejd{HlQ&+dRq?U|?_>K#l*c@zWMICJ;X;ZByqPegAFz@TczE)EllB~G^F3b*OXY7zx`Z8xTJXB0$cRywfYh6ft4#8%zzop4Z9 zOe)AsTNJ;@VM4LQ#J5E^Iao)ryvdbHrnASRv#O({g84ODX0!9dEa`;WnYX00bWEDN zL|TdSi{?8f&0S>6BJ)qB+vGor%}x%uNF*M95?tFRjj=;3)bVWMF{9&@;wHT5wQ_)C z*1`G;5HM6qQ@xg>ZyN++)2!-#e9jfOGVoJfF`6IUtb(BtQ(26;)Pj#$* zULtAhm;AccF)Fbv-2-rSj7r>ezkIJX#%9u}7-9r#tm(2cOf|}*42zp9%8cK))ZZi7 z{Tkb7EhZD!YPqG&Ue&giuk1+}*{3glEEI z@bn$MwT^tm%+numDp1JA&F#>0uKTpnu)T$vSp*_Qn>CD}UZ-@Rw8JlNs!CpR>2KmJve{o&-xBb} zno$K|(5=WoTi&ep9iYUd*P~Ry8dy4Z>PuCy76z>B2C9;X+)5W}&_&WhqD)|Ng z^=cRBm}a?Ffa8E(kpURVuGOvVi#?ODN1i%bzvC)(!Zc$7lMvY>O=o7<&-lLGl<+7o!X?LL z;8fei1}Py)i~?JpnsqoEP{NcN9eNF$8G)(PH0^*g<0D#Gm3z3AJf_UZ9f>(@d_=ykYGV*| zh07Pp1m{1hEXG|f#{K^DZOURikeK%~M%7e<`a-?ENu!m;c*w;R?wB!4nUNy8q39;Jkf_d>uuY}UPw$xoex!%#dskXm{|B1a#C1{R_1B%db}iG zR+eRfhjDHyreRM@ojCm^AI_8!h)zg+!iTM7rSpv-n5WFAO&e$`L61Y?4J%irwJnIg zK655M-iR0rd}Ib{(75?SR$~E&SZI{@PzxO*Mbv_c&QE)HRT)fd)cwrf`)qv$zSKzj zd{!Q{0Z}VWyYgwEjm88d99J(rd}4mK)dkKJhs%yP$H!l$d7DUe2?|Px5)6O+mIV@e zP`t;MPFWzK*Tvg+e2X{YC3dFbh=%Obu%8#E=4Aa^uDA#dY36chcr^zQH8Ah?{Qw6L zwGi~F$WuC2iVVWKU;lAQab%K^tV?A=^>JpMS&x#P*A0gH;8_;G;NZlrS7;wpCZ8aQ z)c0m!W0J=+JlT$H6RQpIj}6lqjTzvTZ^LfF(UfSVUvnX!78$Vc#zNBWLNWXGJm}bF z?PoHbA=~Xx>}Uh>iVxkMcf#B6`0IP@2D}s9fzQdfGi1huBN2>Q8vn95RwR{)N9XL~ zo!aTlx)cjkz7_35rWC2kjF~}pj%R!`M4y;(jYA)Rg03!Se<#hXh818;fWfXKTa#wC zgM?bIf1c8=S)ys+#4kNUvP9ED@fPzRkxX1osQCL;=Ar#HcxPShYdEeVWTdI(9#nT2 zT?2=IF#ZmsYoYSBG0(`bV@Gp#G8Q)5OulYwPj8Bfv@Y;>;lWv1ghkfC-f#Mc4kBwI z>BflGc9BJX1Fv*9Q|($qgp58(UvXE!awmID!+yB&SnI(n?Yaf|Oe{n%4yjCfzM63f z8nV_3)3Ra?AZnnB`CzgGh*~%nRqvR+nxHh9^r>_Ip8IC6CODl&z3N%MrU~}sQZ!T( z!~Id`9Y92%82tWxivx)0V}n<7R4iadf zp}BX*Y)H_;KT(qu*4_y1INn`;a)Jw8Q8c@agl-;xM`vW^^ufGYfQ4 z2ZG{{gCCKkN5$V!McEG2^2W6zS+qXwLO}r+$(Q5pv<}yaMn&si*b8MyIz>fqbq5!w z^DT8nDJpuS+jy@g9l-QP1}=6F9hZ-I7y9J}85^Ik$4eF#w3)`Z;dO28!>NOK1b0|~ zR#eEyOLnf%QYTu6fYpOF{!~%?jaa$^$!Cseybd&*QrORr>@0BW038^`sL>XN-OLCv zrlwgT>D-7ibYK)=$+r67#e^E;Nj6VZVWo0=B9EOPA0v690uc3)m}b2@se(0d_t&bw zse-l8B;T7%l2VA7qh(5z5LEcyX_$>t1can+YMt0j1*n1C?Q?Zh0czn^j~DMqCMA~0 zW=2N2%wE(%t{%Ql|zD*CUoEPP?(TQ#5BEjRx zr3dkrkSm2Doi;qHwA+R+3)Mj04;eSqpjx=|*K{lGk|NijwA_9p-RA_~YF3>M9}Wl1 zF8iGDCWu5s4vKWF_3(KIb+`s5eHztL9j=Ao+es5Q$oNa9v{Yw2S>-H>|CTv9E+XDT zCbhC|Lh$J}HvUt|2!xD%8&lE|$(kQ^Ao3?ya~CLe$a-kU|B2#JCNo;g`v0xDY!B51 z7S^vjl#WhVqf@7Pt{oKA1j^(bYVMLaFYSs<%6T74fyV`Z}WpT zb~&;gWAd|gpYVwkRVygE@cj>m0_<}qLj#nVn&-1!ed!Q_T;~&Nu-5{4Ntt>?5n5j z>^rY-$b(P**{PR}yMLH8-6;$6$sNAi`}bw!69ut>-Z1zt*?d8tl6=MqU)by?iI~S0(Jhlj0!emf=qAT{U=QQ z`$-mcWN|gnWaO|3j^S$I?%M87WHM;gnXRyQ!>Yw(9UT91BFmsoiD>SImOjy}%n9E~ zgoG%CREy!$@FGAh%&&=wfvO*1Hj0&tPE7Zb*b<2lJIQqif3jvcPc)p0^ zx{ep-$qF^_OW@Z3WQAHd(6vJhSuf@kVtv?Pi5^b&L!{-1x5jhn93_YbUb-Cmq6E=` zSF!q0<@l<{dsbA*ZJUsBjnfet)N*SXCUw;M1knA7zEU@ax+p9mFz)Uii^(L`O0k zOiN8QnbF~efS%~|G5#R01wQB8P%$UcCkk%d`X>mtHQUL276eShGU!hyx>1wdYuj3! zX0nA`UgN}0>uO#reI2Vn!T5Wp=u6>Nv&jH!26TFjU5-NN`4%l?E=V|u6JlD*abua4 zsCCL4Z#P7-#{kjy#mUFV;bx7Y--%{SFTn>7dt0|*AB;-Y$9Fd}77KjYVVFcjCa0yu z8FhLCd2nE3sK+MknNcQ_AxfW$4%g({i+@|uZ!7s7dz6FI-#-{)6&e_h-hMTih(S*n zSQ7EYu;PPshj6zMZP-Bb@V0sKkg_xerq=rU=4LQPen`Xci6&S@HDhf?7!#YUa>R@LfG zj^k^fTh72B$MLnWsmAgrS!geq2L6uSus93u0yfgVbL0Ha9LLwd)4C~R9mm&#N0A}b zaSulMvlBbq(-8(Pq#wSG`znU;Cvu%o5@tZIxv_vxCU$GI#i>Vrg-$j$4PBlKk6vWc z6BadeTb`f%G6$vU6JV&@;eogd^GAhIEP``4c6Y}^9AAizSjl}O^yRqHczI8PLuK46 zzAptYUy4B}2FiA~lb0kn#MO{tQ5I`EE$M|<5~RR}avsHho4o+fSLJAwiT+9F?Re%O zgW9U1e>iFho=n;zQbti%-UQf+VPA9kf2^Gad=$y^_6K)&5AN>n?m-hYK+r%!2<{Gt zyB|RhINT3+JKW`P5AF_c*QP5pyEP>L-}}tx$mDh>-+A`w>Z+a|S*!2sG8J9_njVB6 z{MT+H+c>^^{#SZF{cip1?aI+XrqjFX1_A#2Isu6$yYlm?E0u!zpC<2o=Bh5gez(%$ zKD%9=bh+~9QM{NbT_FWDB-P5SHC*2f(*sEZFrFGw!UFAdYu` zUO>|5a-I9GUT8?j7xNri{^X3C%g1%vN`3CBHHsGqeLD{;eck5uLf_8Q`rLEvS2}F@ z)n?wWIqo>ncJ3}Zya;tmrLx|mY%jvLt%r5*UF}g}+t$-6d2T^wI*xSG;K(daxwy~O z+9h0)P(He4pL@;F*qbid!JOK#Y{xri1ebooLfX-qnt7q{XK8vh!5T%vu?O|RgZU|lY~UGe$HEZ1FdCGUT9%s&#u zDF!B0a}RLM(i##H0h{Vx?cf?IPFpEQbM`xZEcETv_nLZbS{3?s>RU`JHwo_=CA?p= zlTZT4KF1mkh*LT^aJaK*3yY9ke{Jwc?l^m`R zP7a;=mT(;t=hyElA6lo&9M$!6^7|gv`O@Wl?cevbVkKL-$5o_D@)=d&dN@~+y1!Yy zz0&S*-3j-`##R#l_5azw?_mY{UfOQ|zNgi@YSDzQB3%wc{(X?%aevA$X*NH1$cD8d z3p>&8DkpDOsqvSq2!3DPk=7vV9{cyz&1l^Y`?`uO?0n$+uKDJsu1<2luTVclCD)zk zca_L#Nw0LXf8WDO7imXA`}aMqFX`PKH|hLp5$Bbl{DF>Bv*NpI?=7SJdE1q)|5`m( z{8I8SBkbSzv|^V?l-2dKbKd%xb!VXKU+Z_(-V-*8QPBQ<4{K4iF7Ed4ds=;b27Pl$ zY243_gg?>MrS%H9q_pKR{F=Lb0<~FiN{c`J`d_XPm-&+!8}4^=g>dGx#_sWSeV0>C z?nMuqxxULOr{q7MT`er2-&Gd&PnYbni$x*tdsxRx_uFm%zNeKS+2pvw`ysU@$Ho~i zT#iNxsHYu;9MD$p*kIr9w(zjN_RO>7cUyQ`8SCDN?rO73Vy&C@;T>12xWU_=U0%-> z;*$7$XZfFUg>d2vII?lI>$}{Y9?mZ4S{@2;xW5~eWxcDHKf~QGeA7er@2hXtPE&M& z{rl=0w2NMf?NaAmKHtRgKgPOr3jTOklb#;yf^bQ@=bDE5>Vn{``>ybZF)o7gzvGUc%9(3Kr*k9v@dHa!Mr=c;AA|ol zUj?f{9-nA5nH>B=@Y&kn(+orU?Aj2#seYQw>tpB3yVIr}x^-7ijPY*Oy`6Dp%-7A4 zqa2s3RqW!`%E!A6{Z0?#q;+{;pWyq@Lr(tCtBzZLvRbd>Y+Mw9$Th7-;f^eE=y7>S z^wuY*9iK$s0CVBPp|cd8jePw()%5P{>))Fm#H>!j1Ydw`jar`JB28bb_kG&91)t5b z;+2ZfB)odDv9-HW-H-H}hZVI+f%){Cr*)?P)jV{X$FqKWfA4PXeSO+kd2*F;Tm+fB zUTgmjegV15cInXBafYkBufMnT*gZ`Inhoc7^_evFB%=!6J=8;Z)CpQ^)9kV1NC$62 zPq4ItPPscCvB58@zi3$V=ihvZzuS#YtMS_ny7+s0`BZFU<%l>VDrwDQP3*igGyRs= z%ItT!4E>hR`rfe6i-_vCvTfQ}d$QbrLx|u zwz0+^uh@|cG#&z*{B4@L^pf$I)zK}V#Ue*&_aS%B4X!%p4PCNqyy*Ju)CQeO7NlSf zetNI9_3G^C6rubuU(5IN^1qE23Rn>*&1vEgtc)vap?1#&x1NR@Wsu@ z^qP;CIw={@v)3g0qo1v5?Mdk6xYhdSOXYmJd(#CI0oH{bDeI^EW%H2tDtmYF_E)Fy z+605I9$FTg&R+kdI8Mb|Nmq18MCX2;UZ>mFEsx6y9QWNiy{Dfbk$To=$CFBazFY6- z{b0SVlBG9w{1vSFs6P4g@#siTI`!)4$05xy;!eYI^cNMp+j@2P34YiSog7vHYJJ#R zBO^7D@LtF#w$8uwcu8gN=SJ>7?=fpZXZqALcgtJXHho?D3(L_1g8Olc8XeR#xV(I< z{0ZI-ph_LWGB=`rZ*{NM_%H>ow1rLw*3d_JTT%_J_|v4|WLLd|x{+m`Z=wVAfh)Fg zw1wjdI_mNCjwi>@UYW3%<1gE`RnHUf_5bzpxHCG&>_8o&Vwdint%m!D`_kvBs3bN} z&k{CrWF21>C6orOhSSm}APu0Q$7$*{7*ZBkCp zVz$P_AMlj=RPckDtxlf`&!inwUQlP9y#gqi>{!{THwh1Uv4(m^nw5WKzAR3!D&E+g z1Xx-kbRqFB?`aE^~RTc8@ zUEWJQN2X2iRUc6&hbv2aboci6?H=Im$Q>tN)J{Vm#(1qoUMr4ww|&m97P6ujJocH? znA;Xo>2l4*Eu)>cE^O`0vSyz1t3@np+9$`&Fz(&~-Tk{*c}9odL7}O-gj;Z;8~Jh5 zHi`}PN)`2`3iNcE-d3}*&!W>HOZS`>x-hl)H8J(MbKn+@)Qqj@uI3iOm!()&*6llG zzFkh0tuDc*GUzEryK3z}M?)z7Yt`3&c83;Y-j<`0g!E>Mym_pYz7tB=zn|Co+drs@ zxo;ERBEMCu(T3b~$+?JEhb~rC>)UeMzb{}_j}kqJ?c0T|$!YIxr3A)!mCCu=Tg!Xi zNM!yg-|DPyZJyL=QXx8X!+&Zdt>E554hM(VixdmbQyi*I)gZ0Z=$f-B4jum&@;nts z%th%@I5l-q$6IR9=i}wqEjSu~%q>=*MkM+jM~Zd)N&ms##X|l>bx=Pq73+?7x+E)D zKD(4Qq0->k9sjL2p)q6U)X3>Pc&>4HGasmfXr+dZSwr?q{QXH8`giTCN>Iw4uSJ? zVpO6JZodPcmrkWrYWAd|6H_g4NH7yesVo1Er<@sbv%S6=u}_?nMIASp*gb}RXt|Ys z!FQp^x3^pV=ca~p?9R9**Gj(pN>}H5SAG`LhWV^5FZ-`?2zUHd@KIc;j|00>oAOni zRs#2|LG%K*kM-|$|6a5&e!gxtf57WM=>UwD zR^fuzAzjcZ^Qik>d$;!L7C=KEi~p##{v-NRN?EjAqVA%XE;O7|3$N*S$|AHBq#=b~ z^k&uqQl=N)2Mf!kUjHSR>6Dnu?z@UYR5BsQ?+MP|{^IiYbo%Qz3POq(f5K$Or(vUx zQZ3Sp^Cz_B|N49~7hRbY?>D;W&_#cRjq@I}g#MQypUU}fZQYcwl?-Y3J~Z0Y3%7e+ zwnx3radg&rje?t&-NtLduc+s68n3bQo;tS9{rK_2F?3ZMOEJjXomJa4(SH-#cFn@L zU8^u|H#H2~ol*LlhH<;*Vcf1o7`JN~hV4!(eM7^z-S9AMcS7+NhH<-fVcc$g7`8jE z_PZ#I+bs^`c1yyz-O?~__g5IVb6gS|O5D@uT@gm!-(lQtWf-?x6~^sWhjF`&Vcc$0 z7`NLT#_hI*VY`2o&z-`!-8Nx6&Xb&@C||V^wyU6D<6J>`!}~Yeajv+jwp%W2$NTlt z@10lMalSS4ByYz#k9hpMxgF={&YDM`qoc52X}hC3&;O2hO7XZx{BFCGYP&sQ;L&#b z!mu6Xt1e;q9JC$RHA&w{&EVQb>(I6<|C{}qJZ_`VcpO8aZO3gC+IC#KL))%m7(WM( z4?^Qr3L~$wupN8FwfUxMw~l%MWbT*u!MT>U7E+@fbU_?WToszth989gPpp2>va+tm+4dr&;{@uB&7 z)yqFP=e<+E(3qWv^>hGBOWO<_Ey4e9{^V`xHIv2Ld^Y&>8XpnTG}6R5!CUzoeBzl* z+JgUI;(t>wemC~P$Hg>V;kYMVt;6rJ*B=`HlfkBLM90FkP>7Y+!frTj{d2th+aHpC zXTF*dcPzv&s`+W}{a(NR6VZQXemT7{@zZO*=Y1T%y}?hb`TZZ@_}dJAD$W1%A&#F) z=NR%Qljd)KgyT;kuv%z!QRn5`k1>3rIBt5?{Onr)mZum#$>p(XG%KPtS^YmPcb>WO z^{#_A&_BZx|6O%1BY!+JB;dI#{}=H8fj>;ofe^o>=AU@+zw14E<+y z{p=7A$M0?E|E~2HPlV(5HTb8r{-Vio{IQBpG_vWG&OcF8WBGL4Ve&7zVfhr6CVy#q zET2vRnEdXUuzWgYW%4Uz#q#Ogpvg~=1IM3CV9npAA_t7syMz`U;5A>S1lfcaeOoXr_=fW+#gsz`~Ou>P`sOi z8auU6vt0}OtCo&RHR!0{1jG>$)$gsX*CNp=5Pbq2@ZZSc!z?7=%2 zK6NKE|9sHH!bs0?d>S9pLaW?#v7K7Je#G(n82od3e3d;a&vXRu&+cbv@k#y+GWdMh z`#lDZZ^q|wU4QQ-#_;LT$gE$nb^ThK497R)hsM&h?5d07oAoP;?q7vHas2*9`|`9> zi%vNHFoT~>*OxRsaC|dWhxgwo5R48ZMaaTad0O zREyVNIKJ7wW%T%Sy5sqa!Tb8%&(P`%={NJ+Slz!aZpZ1T@fD8`U+DO0<+%Chcglm` z3yXf@^Z4+R=GQ%q)z9NY=4UyFP-G=}`?tFbSmVEL@Szs7b-gyXk2^dHv8FOSk;`KN&uGK{C1Zk_9*)OE{i%Q}6 z=J5sV?@<=Z=lsw7$`!DD&i~9$S{ciy!%~VL=0C2A<Oeo8{_!&;27?|-!(sc6C9uP)3BfP^Z6aCIgUTc z(C@e%pZ3!Z$0z-CoJ#t+e`V;3Nb{G@#PMe-Fza`G-@Mw-x8*oK`A@Skrv8T8as1hW{#D0ueA3VPliN4) z4J@DQFJGV5^aYMT$M9#aj-Nx8J`t(f<#$V1#)oqa{(Q}E6(7eZ{p^2d%@3CW$EWt? z@d>wYmx4I{Jj0*HTK|DcI6moD|2h7-Yko?{mmmGEWrN=fOZ)z5=x?C;T{__O&nNL} zq17~fT6}*WET8k+K+SJF0>=+D^xxFo_R=IQpY`9;{LO(l{!T-GNj+^oeGP_BcAMvq z=Iirc=eFbc=J|_Mx_$k3;`pXN3n&q(Wx^3GpWFAk=I1$%<#YaIeyr12KG!ei2c5(6 zIX^T1@Fgstj~|)8_!^ea$B)b(d=ty3E=>QJ-~29?&&My!Fa8k2r{jtPM*c~yZ(2KhjvmlNyU7zr%GM3N!`TXhK zs#rdyeQJhCl!(;wqb81jOo3T{8qJUBj^mU6e0=m>*T?jZ?{^ITEWi61miYYF(C_#l z3YfMrRzJXKUsR= z_@tln!x(+9WtKizKHV0ic4HmX$9EeBa(Bv;&gXPmxe~Is{{a?He%co~Kn);*d!ST;2uycNn;&?cr+G!|DSn~r7 z%T4`J4&d}t{Ln+GO@5?9SUx?u*W^byg5~q^HIJXe9mDeJS>>dk@Bd1563chfe0P0) zOP#Y=ep)B}3ol{$=`^47&xLDPetOMctn16U>sWpUCw|ZSSbj#$577EkJj3!cIq@gF z#qu+2KF4PSzL8VC{<|ft`7MirQ2%0ngK&Bx{daKnURe1&KlV)@KmHXN%g?IybADJH z70b`&#J}Wt;BqMD{2%w{VU3@h zT0gh%>Qp%WRDW|h@o%Ta^7Cpww{OBsSbjdu=k|@yH{z++f479yf1ZEl`raldRzIa> z%0GPkGAJ*WPi*=ZQO}RXD2nCt{4?jbI3=-szP{zDoWF5Vb6+f#a78MmqGj(B}uw@QHH$p4}?6_$OR@gP%tGlczOKzj=Se7~Q_L zeQ4&+^Zai$9iOvj;rR6YC|YR6 z&sV*-2*)??Pvq+>mM+2Z&F2Gr((?l!H)Huce&FX*y*h~F_cHwF=Tn_MhU3%oqiCVk z3Eh7epTzM88vIDw|E_0o{J{o4i9W5_;}(uT#Nf03aW8Ouy8e?ETJiH4CV#{7IX=(R zFKTIS=@Xs7|7-g*wE9B%hxGIO$!5*Z7XimNuRm#{y?PW0$2aevy{+$`tq~i?r|~&0 zw7Q~?A9H5J^0|Ha`BafJWBHU8NPiN2d~`Gmme29S`fugL@G0Gx_3@ytkBf5S_)>mr z@A#@IwewJx(E1nYCqB1t6rDdi^Mw!qzLehr8shvRzO(+`ZE$=uKk)OH2KnRoW`1a- zpD&lq@eNd=n6KUrOZyU^{qfNJ!J~2d&HVFR*Y~S`V)?B9rRE=5h~;zsxu)~y)}=W9 z8g=l_`mbyLlx6=r|Ep?rjtt`RcPr5IZ}s7e<+s9>uXoLV>R3zhqb&~Et}P{Iwd7U* zeDwTqKY{Pq$mxf~zhmg9c@z3B44xk-twlas=c?Zc?fBo&_>_)`PgwdG2Q@$Q1}vZ3 zx1;7i-H7FLe3sYzhMTc`u8+*0wFS%P`R!6#|9@Mte4c+>qWQ_UVfj4&R!H-AZ^!Uy zd~3!h$N#$>SU$&RR{BLP1$JTi9G`2nKh5@F_%s|b^TQ*}kGb!E=f5}d4|y?4=QpyZ z8@-^GxBGwcX_tDpj`z$TQvUg3@QKOa6+-!W&!XVJZg=1(pLx_zGVK{@I zxjkJGBroQEB>r1NKk-sV}wLRb5tEB&> z!Ox=jx%3~<$JnQfn@1)bpXYCBH^X%QN|6o6FQ@g>DxcOrKL?KA-r)Oa{bzFH_&k40 zyGgD2CG+9MtS$M!^IsV8PxY4bC-J#0 zGMB;d%W1w^ITq&M2J^Ko)?&S*Ic2f>b+@vzX@2SQ7(R`sO#fSJeuoMeKIKmyKTrdd z(fs2Tv3&ObesD8eF)L&F?Efy!e+B02Zfh}rO%<$uJ#A(EqxE;LisjSzmKHbNzL~0F z`MT^{>w*UF6uO~5fcTW(`1}j;J7|9V+8F(m-z0utcPyX# z7yEOs!T-*G=H$OQKN+C?`Oz4|r|+v_KKZ{)e~@lXF??!YlkcbbDOzCobi8Hqqig;c zFASgZvB^KB{-2ghO)A%`=j-Pk!Fnp?y%qL&wX#KG}VfYoD z_#@T-)3Utt|IUAE^e>Xj-|`6NFH_gKFYbda@ z{!$BZd>)gN?=iIhhgV?vte^R3*W>u+@!esXFjLF*ZCF0*Xa3?N|2sd(=)W}nG0z`; z(n+AxMGT+nFZ0P4&TnllWB62mO+MGJCs#0hs=p@RSNpT=8ir5x*W@?V{H)h8e5$`D z{~ZOAT87`i@TvYXpSmvd``pIxss1vbbaVXp-ox;z{+j$m`at9T{r{c+*yvwT6rbCa z{CQ6wLM<_#VfaxEK5_Z@G2C+uKbjN&FzrMwyFvWuPW;)ycx%K9jQ$u-`~jNp_7cO7 z>BMLM{{-=48GMSLeCq#cY5EGIKeoXq?ic!@mhrDKd`dU`-QhI;T%;#DM!#|8>yPHx zKmU-%hi3nZ?4GgRqKa1uT)$7P#u=%YN#x_^om=6?e7a|Gk93VL1nE4F?4{C;lD9|PtW(A+$Fy$#GS zsJWT+Ita`!thr_MI_@{D|J-l+TxuOKpZgWJ!vHY9ruK#7bUm2Q{VJ#4&kZoYw&rpk zjqx4ZzI8OeoL=V#^XqCZ_uuYdetpg7ezq9QZ=m^HU#@`p4W0Ngeqh_Tk>+#!mjv@0 zYd+VR4q(2A=5zj>3gXlJ35|bv{8>WpXB(KWrv)6>P|_~mgZcWlFN@nZvz17HlHaeS z@wquZWPf663}5R~56suodLjOd0rO*P{oH?dfcfz?pY!K)Fkhc`vAE9X35RW8rZK-A zn6Gbp3DN&2n6DoTY30}LZ~@Hc^Y0u#QNy!idWSZvu=X!~+ib|SYQ;c&n!h#k8|!Zm z=5v1I0W%+>l zdRo}x`Z5vBS0&!DF#iac&;6H=U#y7O_SLtQSg({Wi=uNQ&&$u*bb^B$N_&tIj5=l^3x!}`z1r*sc3EhWKxdOj*G zxq??#7cigmK95i4g87{P*`EtwKG%1yzmcP3+Lx}+;p1x>qi}x62IkZFocJ7{&A@!h z&&1E6{?RfH%;)^f?fVayA17FLi2p%geq7B@uh*$!VB?4DOC`-O1LpJmB%kLQ0p@f4 zs-pE@1oLTpOYvD;^Hayf`p-1>#{*Zj6Qq66w*Dt|*uD@L0tHff*^bT!S zq0N7C{^a`0^=mYk&-It{+ZHgN>m#3^x(nvh@s}C@(PCr$r{{;$!v0qP^W7YD%gU(N z{$PGu&E@ilpD%;)hl>yH^9>pzd5nO_{t=lNTn zf9?q8^Z22R_J1XqPx+tnXDQ8p3g+|tE$9Di39#+U=P#Jw2+ZgD!t(>ez)v2~faY@k-wNh;*Zg{V{Tj^gp}9Q2Q85|T|DKx9^Phvj{9c;R=YLOw`F#A9NAD+m za;!i7G?&{qADG|Yi9a07AE5ajdVLwpALzu-n*!_qAkF9e{0EpnSo3S>^;s}~h~_rY z>(nW+{_y+&*O%U4{!p#Eu3qm1^M@%e9l!AWOzc!xe}-$_JbtJK=8w>P9{)@P^G9kv z$Nvj3f0X7o((A&hvHp)$Tx#Efnm-=Q=lQEbn!g{+AE&uR^!gK+KVEaWe&tPr^?!oq zbNqOL`O}>ISq|n;*L=P{`8JpzSMxc3lDc92pQ-sgKTr$IpQZWSzlMPMvo*h(UT*>O z=V&gE&%>p~`ae(edH$+6n9uXi<@J67zsN~O{E76AZC0UOzrpjXN%h}z|EdS(C)a$g zk7L376q?V+*E_)cl!{N|ANKzPn4ikYpWGR+?aSAmlej3f^@y|&x z-%atUeM{>7B+iKSpRaG>{8KGGqPEs@T+jX-!LYFh84On*0DT zpROAtelGQomU&=)j$mxa`Q?AXe9jA8AHRe71VIGE3Mi`QSk{K(X(YT@y7&aBw>m3nn9uV*lt*dFlMUOxoOjqCPcWbBBG=)8U_Q^Aus=(|d~R3nU#G!*p7-bckT5&8 zeWL`2O-O#I1m^R&lh=QM`Fvdt*RR81KA(5zI`bOLFQfghtk>ysVB5E>=5m~N0P}g= z$^C0Fn9uWioF`6#`P^?g|3t}&^}nL_pT~*0z!LXR zFM;{>m4519Tqon?#roes`@{L!9n5d2^?T|4OaSxwx(&_~FTwoAT7PTyDIeB<56$J{ z$UrdPQ}ekFTm@iWZoad$HCLV z{P5Zrp8q)y=Eu-{KK}Xy=Eu@}j(@j8nD%A=V>{{h0`ucK=^q8=$8*wu6wK%AXW0Lj zV17a;{do&x+c$!f|Bb=?#7_KKU_M{p!u{(im>*H==XtVlMX>%ya%$f)U_PH8VSn0z z`B9wOcRZL+wTl+ke+ta!<2&ZR2lJiBhpCGG@A1=~i&d~CRy%DD&CSF~8vJ7O-|$sQ z4Oyh?yE+*BNNVG?iqC%&Q~zb>y7u~cTiP@9(DZ$fw7dfGyQ%hVZs^|-jJJNY!T3Y`A?hD5Tl6pMy>a}>2A{sqm6i@| zG5j8iZT7E?!FbEB9gc7IuWOp0p*@CA@i|`b=Ld-2+sPl!Kao3P^b_Co=dSiA5X2{c zPV(SZv0rHZ&`ucr#P4I|H;zw#9}K_0@~4HNKfI3r-kov$E(SkH`_s1zhCfj0FKy(v zK+X5|#qrAs{78N{ep!LP1jMKI?Q6tOMBTm>yJGYYwei2IKaMZ?{}{-Z{2$#7qd$f6 zyNULkLbH#K&#VDB{uP7I_t`H3^3CxN^V4?6>F;O6C-din_-R%Cbkm;GipOuMdSLVu zKjdJ~;71_NN1>~Fl%-3xZt`|lP?7t6mpynTr<4f}!$wpxKOP&1Z{^d3j$2a}w`HgKLKKU=rZ_FEo(NBD{{__0B z*wGmN3gy2vzcJ+x9ABE>m^KE(U#av<^BV)l;`q|>b((QFzI1%O8^ovfmF72EjK}C- zYvX_G2{^vwe}suRzUlu0oj(_W_|$((81q+r{8C{OMt?u2{NSPW-v#oI82T4#eu>E# z{gltz8RIKHe!KzXOZBnQ6r6tZ{3f5DDmfL$H^Jb(I3w{Na#82#H-elW*Z zT;Een$MMbjzE|tt1maVCn&(e>ezM05jQ)(O|JE`3*JQ2#C6M3R;D^(FZOBZF{ynOF zqZ<8}jAseR4yRgjL)`tvdRkJ|WODiFt){J#O@Oa2d7fYDF+v%AoL zQ!m8uPuTR|7>jUxssF}WjNzZMiJuQZz7#(*mf-YD@l$vyhEMG)_1{Y%{y7`}_x^>^ zPkhOLuVpyCJ|`SV@pWLok0{hcc?`Y+qH@83AS*uE=q ze6f93Vff_#RP~RS=lYigK)yNu#`9wnR%7&ESK6iHm+5P8eDnB)=O^>5#qi00ALINW z$A5x#82&BAm&S)l*5mk6{BHsBrTA~O0i&P%m*#&yfcTU@#~9-uzJ7K3MvVUZO22ge zXz?Z-Upjx(Xfuv4oj;1b1;c-&{4w(bU%#4YD~@mG2R?sv6vU_aF|SYH{JHoajQ%Ie zAL;n_?`=4~G=5&S9m9X7^h^0|#ts}`%5Q~t;`ma2y9DA>`%2^Ip1UymU)lKYwHwEm z{13MW$CvzH0OC{s9b(Ln@%71N_hR(FQ~sOd=O8_PE58rJe{a*iIrroEQv03&@}>6e zd;p`L{5QwXJUmr7qN%b%3`rbH~aD3_d+mRrC0_BgC|EFEX=qJ9E|EpZV@umF# z1H@146rY^`BVWVlC%ze6Exe~aJ4 z@Tq;J`KxOnetH}K58lVqDA~ybadXM8v{>S)$<4gYk4dQ1}{ntFd%;%@7f5hk~en;c{ z7d=mqmYSb1{F17D|1jo<108hBa{r9uZ#DP}H2*b_f6?Hx{wZHD`m-wk-Lz&}ar@@~ zisPHlXJCH8Z#cdbpM}3;_>q)9=KY&@wO2)dVE7em@=r>OpSWu@j__+}&xa(wlz(;r z`BMIA8V;jBvXlQewFh58{3tg3YvD2aqdM_9ezrxx@T=Lx&%B5@z7#(tBjNZ`{9Fg| z3#fV`oqy>c8KXa&YF}x7yId3;UpoHX2IALI@gp7o9*K(4Pkib4w{J8YUpoHH7ahZ| zr}Rt5zeQu<_~!8)AOAiB@hLu~&r;rP<=uX}t9zp2tM9sia{fa6Q`>pvi0s$cyQV)Rq{O2@w` z6Jhu*ZTyd%7{{0VUkc<){#QzZ(VyL>zCQr+rRP&MPm0qojUPUO_-$4ENaKgd$uatg zFO47m0rI8sgI@}a{timNG=Aur62~{|Baa`lr^4_l{>||-*WbvgaeQff@)X4H?BqY6 ze}9t(qo4Su|9AEHXPg^`PyS2e6Th@LzB#|a^D`~d;rP<^bzbQ)e0p|;6rWZG9N)aY zE=afU0}wwz#g8=pIh_%spZHS!^~;3gOZ7KyW(=R&*Sx-t&mXM?@p~zM%>2yxVO|!D ze&U4C?7^YwXb>pi2IjYehh!KjsFn};P{gNi-3H||MCSf`pJLu z`w=+)?}GT_Z2VtY2&13)lK(XdiEKq2M=n^&nFyP1f!q$=J{XdM=FZr zoBfxcUpD~6&*|h3KY!yrh(FaPK0g=3_(OatK4%xl@um1IRszE(|IPSe|F44hGj068 zQ4*t{_>%tvO5ymD|EWu3_~gIYzqtSI0`Uu~{NG%8#0ww46fT3&Py7}Fe=~?5P4Ug+ zuR#4l3YNv_C%)+q^DhATra#Q@UJj?uj;3F0rc@&9NgjDF%v{&%R1<4gWWtAgR@Qu$MQKJaoNUwS@p@v0d8e=Gl` z=L46hhT}`m2i^$eOV0{EasLe*p3&|7X<2>6iR3?2h46{*;~%d*0_+tAu!|}!T1@Xy$^Z91{d|=P!82!XIuYch4 zzg1db_(v4KvHHggpZ_h`62~{s|K8O*ItAjBKj!nzIR4jrVf6p2_|o~=&8={JDgGO_ z#_^^2e-Gl5|I+m>)7xP5Q~s2m4_we2!#}O`OV{s}Z;Rtg*YCXt@}=wdR<*qu{a*VH7(T_1Ie*K~2QJ?c!@sEfk&b_>b;9wb@pBCy4F9syFXgvF zopF3Azg-0KrTo^T3r0V+uQYy6?2F<5XXC%+hvQ5B2Lkz$|7E&j^i%(po)3Hr#J{Ed zm&VU`{4x4(+qCb4ZaBWwz9Rx~e5rjib;t0@e{=lI1 z_Qdhc`gm85pNsXv@X3E^{G6&chW}XcrTUV#4~{Rz|6U+pihr-Z82#kGG=2`(55uSY zxx;vV0)M|oAc+55>6gaOtNUa06JHuXdkw(xrSWspff)WPrQggCJbq3y2*)?`1CO82 zf%p_ZQhcr+jM1M?ou4)DFQD_awA37e;lESXY){>|qb%+dS>BQg4kFWsM5Vibl?Z7b#H zYNK&{DL;P$@}>N|@ehoCOWj)_<>&2VaC|d9IY0Z3#qcS9r27Y}jl=LGIQhfl+q&a% zeA6H9zfVAX^2Z$i^YeR8PQd6VzWICuo?qHI5yOw7{FmmJ4ot%FrTL{plQH~gO21Tp z*G|FlrTSZEDvmGJ- z^Dz3!fAjnZ-~av`#LuhvZn{s=iuo`9#ONo!89&T_Js-!H{COLQ;TKZJUtVgA&dY86 z%licwem>=odHlln2VGi-<4eacwHIOdX;lA}j$fKB#_^@&m$*xCeChb*Fo>T{`6C^_ zoLq|0PkeKH&c`o9{=)DnKBeQAX3H@Aj86XS*8Qu^avb0Eho29Veg%e4{z%6!(f-Eq zrQ?^6AbwWmzjXZaV+pZJph4c6oMlK<~O{QN3EnB$Wmo!_Qy!069!k&{1W>y`U@-VEd~B|5Wk>J{1iKY(NBCSey#%fQvCEeh|%9)={KK0 z>7nB%`5_$th%tUxsQKMM{1{I0AE^0>4rBBa-;7V@Zvyho{>A(TM=<&eImLgF_U9dl z?`|`GxOo(#pZL=FVc;k~M>3jyGpZML4@xxQi z&vzEXZ=w8`#?PtG;rP<{`6`G{{`eW+@5bY|o#!$73#J!+$5&f`d};h#=n+o;4MTq) z-M(Ldd|zXH&iB`Je~i&Tz^4BW2*UBD{+s#Ovxd`G9wQ1iy&oKIlFST#W=QzI9zSav2pZxbX+L!BNAc#NG#{b1HG5U!w`Cs7` zjxYIt55y<`yBYp-{11DL(Lct<|1NKEe98aVZ*hFd|J5Kq`9H$&KeNt7wccU$Pf-3> zG5C*le(U}o!zcYI)joKcuYYO&0mrWsh3P-4SThh?H*_{(hiZ^x)OzSMuCN5k=@{<{Lir}#9_Z^qK&+iKA<`d2FdrSqGOV&M4F z`HKWGF?{mJJip1;7rh7ZGb+B>fBF3N%vc!x#J{cElu|Q)|5~%y82&n&{*@^XjxY7E zLqNXNzuLyd=qLZjg(v5OmqvOWIUbHb!Qk`rZJL4jo1OYEpMT66AETf6X8+x*{n-!V z7k3&T^7mT}OMuZ|Lh+^R6TSiY()9`56JqplSN==aCk#!5<4e~k6iSTaOV=kn1Mzn` z#Xn!4@HPoXKk?1@=j#)eCB^V5KBemuh9<-C_d5B*`QeY`IKJr*U!Ra61%^-lNY^Js zNr~f2*C)IO@eeBhrRx*ErNZbZzI1)UkJK3cVa1oOPk5XL$Ct(rqup?PY5b5iErw72 zOV=kH1@Zs2@&80RjDF%v{&!A~<4gX>%7EdgQsX!2`@vTM`R4b7bAHR55u^XKP5VaA zgyT!?y8_6U+P7L}jDBigbN+{qkAgt_^EUo($b!*Ne98ZMS#f;H|2H5$`7eDx_>^oI z{g-Y0Z<-y)m;C<<|7QQ<_zzbE!+&n${}Uiz@_$TGoPNpw?8PwrGRl89opWf#{{IW&zqavz zQ*n%b;!FNFD1qZk{=Wn9$$vBdu>aFaV)Vba@qb_`9AEN3O=%oo@_#poPyS2!r$rfz z{?9i4S1pU)s2eP4t4yi^vXEC3ac%n7p4u4w#FzS4%Q`r|)W58{7(T_%E%lF=f%=y~ z5Wk#?f9d|XH0~Jv#5eDcOQ1i?3=qG(;zu?7;q&_|>S6Q~zk$Jjqy4W?AHz?o;?s>A zSFL$`ShxX>Z;nrxe-X$pZCu~Q{O%2L`ctSeA}`EO*a*X?_N{H)pLJ;+e-DW7W|RL{cw+PuU&{a0n&9|S{tp826WjRnM^lV` z;!FNyYlh=X{u~4GslJ%^|K`-Wx?^*U{tAk3))&6NU`7iZU#c(pT4MNFRr|W>K1(ak zKN-Dn{2v1U0FW=$m)5Ot`lb33zBPtV@gvoj1wg)3Uwqr(^h@<6wl|J%))$^XSqJ8}RXqe@Be| zica-~k6(s&!ttg0lEw$aFQ(epP00W8JLC9LeOU+OOZBBr7o2{nzPteODSpiQ@>;jW zcwdZu;+yqlf#whL!|~1f!sC;)U2%M~z65FgdqDhhHu-afKSn?CrTkf~8;&pK&ma)L zh>bsg1YqHRVKDSpiQ%kzf?2jKW-{pI$JFc8N#>u;crrG-GgRDa72!su_P;#0amE5~3QU#c(1 zfqbdH_zc15uVLd)%%M2GId9E;ebvVA{{~i#Z{Fm}i%k>!j zfj0hE+koRs{s#g1lK+2f#OSYPlYg>p!tfW{_@8hyjxYJY5y+SPufGMOpZu5d&sz|G znT`J+w_@}YU-EzEKRCYRf01n%KKU=@pUWWrN*n+8ZO7;*zT|(a9XP(^fB2mkela!o zCe5!d1o5k@_Lc5GZMO@fpZMd9`NJSRmvs}wUvCpXM|WfN6JLs-4tsEXDSo2u#qi00 z^ZqQJzgiCBZ?^G&)jo`V;!FP5+>hf+{yzip$$#_y1&;r52Qd1#+4$e{AdWBjpX3mZ zFZsU(#3%pF>w7u=8y&{zC%$z3ZIdH7zIpvE$IoXFe~(T4+&hZVPkbqUh8@H4rTEG4 zFNR-3wXakk4*>a6eJpVtqyL~y`(`?U<4f&(2*{V(x9v%cerjK-K1M!;;UBf}Kl*7L zU-EwikT3aP?F>dg`7hPSAQ1nAjsNG*V)PSV@;~4ljxYJ2@H~c3{!8_7BakoE$E_D| z`lb5V=pu%H&L)1!Uc&LE__+<_OYt-KGDiOp6+hDPY1%6|K3^YBhmL&x>H{F(ync15 zK0YmZ6{CNsjX!sRe950>*KqnJe|~`Y!<0X!e!l*H$$uFA#5eWx_j7#*@rN7w&HESD zU&rVtKIyL2*!;kGWzr@#9?*{VC>-U0m|5|brqyLUgex7g($CvVR?%O!Nl%G$5 z_|(4U^?U5U?;VW(2R8nD+{N)F|33lwlK->rVf1HJ{#Q4iZ#GcJf6@Cmesh7p707QP z@C!e{>HlHyqv^Tg%^?0WoA})Q5Tl>?Qhc^}gyT!``2)nK_>5;f-;e#D{}`kHm5u+) zf^dAv|0+*#e98YuAU=Jcxs)G9J;mrJzLX!LJj3y&{4fH@m-0iT=NSDTZQ?Wb3mjjH z&(%P_6rZ(TV)Rq|NcrJ8i2v2b{|~P)`iU?3KjSryFZo~i4Thgx`ETAo$ocsah;ON9 zqe}Ph-+GJDPkhP$LGN&U$$z)^7(V&$WsFa5>+#zjApe`ePoefl%YqLW{gIUa=KW=R z9CXXt@e#*2?=QQn`Tag&_&IFizr|+^KdMdqxBr6UOYtA|D~>P4|1uDt{Fmat$~TOD z;!E+L^*e?i%PIc%>iDei1IL%*Ka!P9@9FoeA8K*l;(_s6PMi3D1mefFiT_vOF#3rv z#s8%6IKCABc_U!>orr|vOYuK0GKQbaCjR}RVE9RG z;=gxP9AAq6WYKVZDgOTf@yUNF{ym~&^b=o-|6(yP{8UcyzgNe9gP1tJ6#t21VfeX~ zKmF7{UU>fS6OiB17=JRqS8SaA?*jh=h@Z#CpB`~A`iU?3^A5lwelN{;kB{S<=dW4+F(BXkeskupO@PyHe*ZZ0rzgbl zYuUt4zeG5`6hH5Pd?|jeCC2HO;-_8`9AAo`qDgUlDSpx6hZ?KOkRoihe)6Wn@ax*dPm=UFz7#(bfqW@`dSt-qm*VF+kT1p0`HVRIQv7VogyFl}#7|&m z9AAo`WLa>0DSmzc`BMD!%!<=5#ZR+rIKC7=<+Ee>^=#rNYYrS=il2o*z7#*Ba^mz$ z@nhw}@um2A0OU*Yb38Xje|?+yS)T{Tm*OXTUL0SFpLqFjd?|iL1Nl{6vOe&=U4Fay(1RK@Eh6qGaty8{3%@mr(g2tCWznI#-BbVG5U!w`IEd9 zjxYJM4aE1b@uxv)jDF%v{=5V7C4Z)s!RYr?`rVE57n61V$x{}`uV?V-d>bwMK>QAo zfBpWiq?-S#97caf#ZP9OAGsJT--=cN$FFAa`TWaGAisifez3RJ->4!^e?@_R8py9C z@T*qB>8~O1_W}7e1%C0$IQ_K*{zf1_x^e#k$4|~GIQ_8c7(Uw-c*k z^b=pY{v=N|9ACQrlc5&MwvP|zEr=i0{K$?s#h1MU#efnfqbcc zRdmPcm+IFpAYZCqh3nz;OZ96lkT2D*to1SaM>yrrK;3^6G{EuA{JB8$Hvsu&{$&02 z8)EcRelzP=Z>|3=kT2D*&W&*TP5<|3{W%-s_@@8Ne+J@{_tk{@waNpdf4o!ux~ly- z=!xS?^=p0;9ABzmMVsRIQvF&FHfsyR--RKKPJ`BMFg(*md8 ztY7^6#!(>tOq=>Owk1YC@y-0n^(%)Lj&J7AK%IY1fcTW(r25sl6-GbtrTX;%$T$7x z`m(e&PQU3t^V_z;@M-?DzEQun>-Np$jpKJV=Jy_J{%sI{fok8#2A}5-kF~|VVO|MDfkz>pc$j>YQFj9RG_kzsLUH z0`emp^KZ-_*a@dUslo59{YmYE<9n+%;DzBI-^Jkb{Oti>41cv^oAoPDH^pi{9N(;8%&*lI$2aR2^PhwGmp%ec7wyzf%t!U#c%T zdgAy}efby2m+DK$UO4?yeYp$dOZ8<)Z=8OqzNGDg;qO%ODb<(QeQ|uLzQpZ^;qSJ| zZ=ZpDDZkC`kJB&Zw_*b@d}?2*zFYl8J`~57>Py05IKEV0HURljeaSH#r(dcs{{s0^ed#y? zqyMCeAE~}H8j0ge^~GZphJRY=myTb`kH+z({B{?}m-5@tKQQ{KeWm)6ehh|x-p2n} zV{v@R|5ZS~`&yGIDS-tzXZsSCh#lF!s$21x4m_I-Uag88u^p`Z#o;Nzn#GU0_3+B__OC= z^i%$?XYluH|BKGW@M-*T+~9xE{I5X%K4bjAN%=Tm$sKTHMkrTmcKFPwfU zKU@a#rTpN&45RrnV8j0a;wQA>UtEvTpU8&4X#<9z*oHrKBZi;E;G6N&Z4-u{)Q0cA8N*Lz!_T_~ z!%uGTDgM9E54FVIis7d)_~bwHWBh~Rr!@Ga`!4-ZOXO`Begairr1Ae_AYZEQqqpPq zOZ7eL4h%n);Xk!6`+pR~Ph#W$%AFYf#FzZ9u?xqS{C^7Kr#Aejxaaycb~i?U6U8^j z{|{&9KF zw`l$!`*Hlq20x1aEM*U1_-U1Xb9~O!!PRO57+l$mvMa4AFl5euVDD(k5u2YU&ZmI`kwq6hF? z!!ND$OZEK?kT2DjDK~KXrTUWpCWcS#E7kXNAbxop|99TP=qJA9f3w>-zU2Qm5Wl%i zeV=y+qo4RveNS{3!>^+Jm+E`^dpN#S-!B6BQhgtHAEUpz@<*!gQy<{?X8q#&UgaT% zPw^ww_wC=`_kV@sOa7;NjpIxH z?*#E%sQxR>&o_I6(NBD-zFz?Go2mAd>igZd82!YT>ihI}IKEWhYre!eC#d(7V#%rWssxKQrd}?2* zzSj$f(cjs||B~Txe98aoK)&RE{|FfUEp6(1s)#tgRNtq8`2MPWrTV@o5=KAqrTX45 zGLA3R_gGOd{O(G>RNoUu#qrJh#r6FNh)?k;)%QiwF#3Br`NQ>nMRXkB^oQ$vrx+MM z`6Jc$x-oHlslJzqh2hh8mr3=#a%>!5s_#|fVE6-+eyP6akBj3=_2nFpFV&ZB@i6+S zeWm)IAU=ja#K!+`K)&SvyaYJ?lK&+WV)$M*_5C`KFV*)3i7@&{s`i!Yd+WqFzEs~6 zC&BTh`hEh$|3mpB)%WvBG5U#b)-SH_qmp6x6rWOkZ=D>&ALrx`*Y}PoaD3AruJ74X zV)*2bRNv#J!ttg0Zl%WXCn^7>`W__>jxW{sXl@w(6s2FP?{9#7slH4}i_@g@J8Wx(+z|G$Cwt!(Q1yo?zA#Fy%OqD&b6T;;!1-_vKt z@um8H5y+S7`?xF^{qvPSQhlGA6~{O07uWYH*)V*HAE~~l&yL|Qbn=Jmd$t@nzUdFw z_a`7e`6Jc$GdVH(iEq|-et!F&Tp0dR<-b(lSLMd>rTV@m4~D-?>6hyJth_kBR9}kb z!||p1as|Yv_Lb^;@BA43D{cI5T>!_I{Etu&$CvzH1md?={Z~5wUcL}UKk=pdz8%D0 zr`lJl??($`^b=pI@BND4_)>k(UlhaNsPs$qy;w0E->hF;-=Bl{6hBgZKUy54e~Xhp zd-Tc5(1K0+W4QQB91TlzZ=Mx{BKbSqrZ(!eg6UE zOZB~HWsLqqs(q#UKD-K!FV*)VRdIZ&zP|wRk1Btp`u@HeMnCb*`o;BqMRg3H;!~>c z!)svp$DRD)`aZTMj&J(I^}R+d44?dw>U-|mIKEWhQ`f=pPb>eW`kt{ajxW{s%jY2joljrEYzUerjK{zVr9zz5?+t+W7yj0Y*RZCI6>2#PKEn3pT>= zy>06I1t4Fl?=>4^^j}l{OZB~p2aYe*_t>5|zEs~2g7`O-KT>@^-UOqc_-6g$`aY;B zhEMS+)%PaNF#Ow2{_y;KtL8Yq=?~ZU^er%a@<*!gkz3;UQhk31;@?;POZEM$7e+tv zrTYH86^8#%@um9ys5Oo+)t6CiaD1u0WbwxE$$zQ79|7^7*!X|EEk-}_CI5Ze;rNpO zG23JKZEfoNN+4gV?-@E^^uJX8OZ7cpM;u?O@ArXxslLzcgwg*-`6Jc$MLsybS--fx zH|mVxQ+!JGJzp0L|GkqxT;GfO;`pXNT;D%~_~egN->>^&^b=pI@5j4h_@9;kQhh(? zkK;@A{X#bk|Etn3)%V>2IKEV0T6D+prTX#%#HaQ(>wAzs|24k{M!%(=jVk#+x+jh= z`Jc5HjxYIt6vS_*`mc2Uy+dz|e&S2@{WgdnNwu$3-(U2>=qJ8Z-xv19@um9i(GSCq zs`N|sy=8wK->hF;-xChN@F{+z`u+mMkKyDG*Z21WG5U#b`oq`PZ5f2&lRr{@pEnrC zm+Jf2AsBuf<&RX~rwqmMrTRW?7=|BD>6hxuz~MN)RA17J!11N}vKz#w_Lb^;i;)=p ziER9@Its^^{C^DOOa6}@jnUuUroLzW1IL%@`vMR@xoTgjzONaB(NBD-zPB2S<4g5D z**FY8mC`TOcen94zFEJxzMlv2DL$q8zGebOznhakT;DfO#PLmkxW4zCgyEAvQhjeW z8ON9EdyOd=eg@^gRNw1O#qp*3-e4MrpGoPL>U-(wIKEV0ZUXsIeHl0dqo3MWs_$uL zV))r?{Es#Z$CvzH4&+PzSDlT~-@&H7KL+xp`tCIcqd&K5U#Y(P&c*Si`krncjxW{s zD0AckMi$sfMHuEzo#-}Hy)=L;>w@W~&k zz9(CR<4g5D>S7GPsPbQ`?{Svk_)>k3w-m!KuJlXw{R@yU)t5Pc;q*)OrT8)opW0Wd z@7F+l@?P@);Bt(9VoUyeufXvo|0Dg4;divD?@NGuslKOLiP2v{`7hP??5l8mslML; z@}>GdZ8b)JW#x}l-{-Eu@y+_h^}Wto44>jts_)s?VffXY{NdyGeCu(1(;u$yZ$NzV zN2>1^H(>M=U#jm1H)8m;l>btFKfVdam+Je;%@}?irC+KqTesl&QhjN>6~~wA%SRBO z+E=RYGylQpuW#f3kZm}=oKJJ{ss*T*pWi7(~nCI901 zQhsiF9K-i<$`Abg;H^*K_-20K{G8+@h;NghUjzA4e!hGPquw~naC|90H#?8vcecsTUx9onKhL;;(=X-cycaS2UN-r;^d%f$ z%FnNXd?`OKzl_n}*C{`6eqMV8$2ao>=jS$8F?@=DY5ZLJ8jdgJ=Zybh_ye8%=lmT1 zI*xDp&-wWrh)@1Y`T3t482!XI^K+0M-!8j};SW{*oAYB!HGlFg9ABEBDRLXfm*!_K zgZSjXRKI%N!RYUz_|ox3lDjy*RKL~(`BMF=aSx;a51absc^}7@>Q}4>IKEWB4uJUM zobo5vuYVt6^b_CApIpBNKEm)R{-yfm`54ES>Q|W{41bc7|6IRvKEd%#|G9oW2l2^& zseYY*iqTJesebK$hT%_B{+sn{iLPI(p5ypZ{c?YS<4g7HHHc6COZ98=ON{==YCg|R zdrm8k&%Cd2eDez&nV;k}j$d1S240x|4aCo^*iwGG`v#-GxRd_}^#?in7RNXJXa4wi zIKJsW^Xt9G@jDpp%lxDtaQtBc|2mL=S>P}Hh|^y>JV(D}u|MrT;rML@evZ#LzMsH< z1>{c>_?y3A^!uv(?Do_Cko?*AD~@mWU(Rn{-*9{>zg7N@;rrS6lk*3TFZq+eN@28$ z{jZ^YzcA^S{P_gpceU~7W;l#~;!FM<43FbW{`?&Q!}quGXHrBQU-GACBphGzr&(kS zznhIe<)h&El0R9a;`ow3aiU@P0XF`;1M($*u0_Y`m;Biq1HW}@g;vs$Hnm_e=^3y@O#?$6C*y3FZuHd$d~-NlmMfjj<3z*7aqUu zOo-!~$1luZlnBR{{284X$2X6USif%)9N#=XVt#|9IKFv&#QfsPaD4Oli1}%gyi{1C%9{@tX9;?IEmssevuN}PUggFj#EZV{d{;x=j(NBEI|7z)Qe98YH5TE?-A5jOT zT5fB!=LOc?!Fo&4XXchopDj&J(U z{PWwLh_P z;P__zFn<-0Z^jSvYv#o0r}ph?_|NV849G8H#3#4!*jyO>_ifs@M{XQnYTv|paD1tK zH-q@SRr^Zg=Z1MP`iU=%pJU|1@ul(e9w1*DKexz_(f`yYKC2eM@um2D4CG7kIl3T5 zKgEwUe$HA5!+&Yxe}cj|zU2P~AYbyoUJ;Cb@?RQ1zX9>z+W3FHC`Lc=CI9;u!|^5m zQx(VX$^X6TGw{OW=ba$_M<@Sz{JFOTMnCaQ|C!&nB#v+T&-{X=Fnsb~8b7}P@}=?f zv(h;I()f9784UlsQ~dDwvqxDR-;5vTCoYHMoAJZ^%^*I-k2HR6SRSLF_|o|K9f%(x z+OOA7vOhN~VDuATYTtnsaeS$L(^SIn`zZfESU;B_{p)TJKZ=e2%PV8_6JPSbY84z` z^8Yc2PyU<7FO#+ZqpM={6W=_3VSb8gIKFiJvI@vIk6-xy`Wn@7`pxkn^J~?>@%I|z zpOktoy-rOW->mPf-=`LiFV*)hwQ+p2zO(*Vb#Q#Me)ZPFV(M< zjc|Oaeys-brTSH-F;2f!zitBgQvJH^fzvP5ue+W&zEr<{G{Nzu`W3DjjxW`(Kp@i~5`wZrLWe~8ciJO%OpQ2wxfvYzw9R>CF#3tl`ial_Ux4^y4gKT`>z~~bqo4S!pZNTIgEt`lI77eb|6iRj`ial_ ziO>2i9}IuIjsA^5zN9}^XN>*{hJI>a&OdvBeAZ8Vu3t&JVDwK^`lb558^|~F8~d}w z7pLF!hx7AS5Pyw(cveAZ8V)_)kppKhbSb5D$Z;!FAufcP_P^mpuq(NBCy|6UM(rlH@A|8~7G z`ial_&G_F1;?GiiDSx)wKhpxIe z`TTFfzcBh2+34R5TU!wF&=U?^!`R4e6<8$c> zoPN_Ej?W(;{!$x%R{V|8Pkhs#+tkU_GI1r2FZt7T6^8$plm4T@@~xDsG5iHK_5D7O zFV*+qYjFCd`krwuhEM*R?aTH3Ac()rCjQ&6!{{fz6#uo>awy#>dY^1~@0U&;@@TQT~neWmz`^ACpq zw@v(P1M;Q#3EYO!zuqQ(hHl64rT9s|1IL%*XFrHf?JLDk>zx?=D{bN@_AVUXj2|AK zyan;M+QiS!-5CAEm*S_{9vokapKl;OwXYOE^Y&u&ud<1sD*JGJDSmS8$MARA#LovH zUy7d@2XOkO_$ho4!>9I@;^z{GzgqF7_8oEvqkq3m`&K`U<4f)P1jv`#cgzute)3;x z-|R;*{53Z1dlAGxV$;6!k74u^Uuxgd|Kj*k``!fc$$zPR2Oh`hUu(3lIe(k&1dh-8 ziN8W0zYGQO*D3wd{9DeG82!XI^Bd1EB{+rSvp-}FA78%(@z>k{g-U=bK46zzLcLMU&QgH{Ja#zC;!d% z<@v)(moWM_8SP8?liT+(i2t8W`>wx?(NBD-eci9%_)`162Jy*%ZeQ}B+jsI+jQ-7v zFV(Mt*Km9(Kd1N)$7g>i^{k*DYWWJ{Z?W-b>2-{L;!FOFy@BIP{&c>H;cs=)&*uk| z+`{oq{rr3YKM?;PC;gn?GTg@Ke{7TAo&ot%ej9fOr(eo%Iqzcl{o{ULoBGqgvVX++Rri55{$HkYewjSf&cCtqYpI6*jh$b1kF=>j z`(HVJ#QAkcBmcWn89$>QYg2#vSB@WXeF=!y&cCvM#QpDKjr{Lc)nCjHA%AI8fBIL} zU(63jHS)hFmE#-qM4S54zw-Es{&9b*oquKji1%Nu{ulh;!;jh7LUR(brD*p{WYU^M8gr(@8KNGa^-$d?z z(LZAR_x_}q{t@R_g)G|o7yTpr|C&`h|IxU9(LbLr3IBoFwe!#GqZt3f zf9{;x`WMGn_+Ot(TmPBllSBA#l}B6unN|K@u;eV+WG%kQGeloVNvb;v;Mfv)^FnaYgt@7|C1H< z7ydVw(9S>WkJ}9WCeB}5vw!aYuHu@>^?!(>{^s)Wy;D*<|9#+}8%1T=e?|-K{71_E zS;igtLQ}1jcK-Xz{X_p<wg!8 z|Jw5L&0SSH|6=^G|Hb%msHUxdu|5(0!>eoOe~_YoY~=n~Vxyh^AqxLi^7y<|Lp%So z6#hm3B-Pf=|6YavSb2O_s;iCvhUo7B3jcTI1AU>PcK(Md{Fjyce_Io6{5MMF{Q9%0 zcK(f>UxggB^FLV8KTYNSY3it*{}BrRCbIuA&f57mHvY%EXy<>sqW-3G{kON&#(!gs zpXLhxN96H;s8!1PaeWly=c%VQ{`q`{>rZYJV*MG{T|58c_|m_)eqHp|&c9fH(!W@Ln)qnv zpX)gNzo&NoqZIxt%IDW_y|nW`O!m(<#LE6Z1ZwAhxT5}5W&ex&Xy;#?zbrAev;lEatHvakBckCar z3IF?l(#F3X{2Lqp&Bti#pU0QY5a(CF@!I(}HvX4R)YiYKzc{}xOxDi7vGXg_bZz~M z`it|o-3)E~^Z9vO#rUj=IJelD+WHssgYbWSmUjNzDdr#HzrY;r{Ih?={3HB3&DGYw zn16)-sCnA@7thay|IPEY^Y3A#|Kk^E>tEgf=8LrR-`+_5Jr--{zc2iY?XY|zL@&|S zznC9{|28q&`R^z951S$U7ha*AfA$ZLuhRduRoeLtD>z;{KxQ25tR|_vZ-zo*T9EKO6lo#=r0%y-7R&?EjpGVe|R^YiFEx z{^uB}|D(;?`Dgvb{3-gU@K$a8i|d#0Z@*1D|8tG>PuOtDQ6;uC0Ii zR{H;-v46flMCt#=Rc-3e=L3i6Sl+tHZ&cb_#dOOf6@QK ze}=c()?cijh5tbs`xonH;s1?B{`q`Z^goaB5cxodywj$CgnuzUh5x4-`&ajWzni$Uo;#W&exg+wFrk^%wrt{eM+s|Kk2#9N+dIwX6RLd4A*kApBp_&_DZM z+`o(dcTdo+{wEdn7yf_K&_C;+OFnOf|7MBW)&G={`XA8H|F7^b*0-Ym^*?D>fA&vq zRsU?!*nb|`zZjoYlC-VA_xWMo`^ON~Z^Hi|Q*HZ4e7;!BZyz-FFFyY( z>K|V4pV$AE;`I?e_uPTb!DCka>tEtI-^+i&KRcSwGw6%YH!Oh(c!fCI!Dn$?FY=ne zam8m(;`KLkqg8-4;GFRWaBkxG z;yG9o)Bx21&-q%w2Gj;@Z(UFi)CYAy1He9M1e$`zpdn}i9DqG=1h&8q3#TwT7qAIE7$;n!AIZ$mIHsV4QvNHz)rxv{t4^? zyTM+t4-5fA!7#8D><8^Z6zByuf;g}RID-SAIoJ#ifx}=9I0AkKVPGV9dyqj zUx26J5r_vb!87m}{0067nL!><0^|dQK><({WB_?VL68y9F4F#ha3+u+h&gkW^n3s8&wRCtTr!U${0+!7>R0NfP zHK+`zW1L~yssQR3XBv^7Ws5j%ERSiKm$s^)7N`c8pRzij-UcuYSqIby4M07>{B;3!3{%H6%u5|@jMK(E4AW0T&=@oU z_JF!Zpebk!sAoSjOg+;(09(Mcv@7*2kG96Z4lqthog-i#`eq)MM;-k$EPT^0(z2|^ zKv_T9=#zPvHZy1j27&%y9asUj0ot6vU@!oz2P?sLz`8ku17IIuygAqmw#e}okO#pb zIqm{^6dVSucT2!Be*vOQ>RkcL+Wf3^zAO^5cb^z+z0Y9(?us?PJ>OFuzSPu4qy@2}m zpcmK(*gtWAZR!AKfjM9XpspiW2#$cofVxg#5ts{>0O~q}*VM81Es+ zSwF^o0Q;KlV%%4bvrUY%uj!Bd&N%y+arQUk>|4g!&y2HA8E5}8-WzaCaXc{|063O7 zju;OFN_!CEN_#Nk^fw%2032@|cMP*H*}n|4e?>S9;h$xFIOG&L905654)=weDu;Po zn3wg51Z%+#z~jfdu?@`t&kxp@de)I`aRNL)Sa0SZ2vz}(Kh}%qG4nD!7%)AA}OW5GBu9!vnyU?P|VST^%8FY_=xb(GXo$Nbb$QcoTIQAbHV zb@WdiCH2&?JnAT^r;g=QM@c<(tPgdR)Kka$vHvKkr;cgZXS)E$3HyvX_StU0F~Yv2 zj{UzCa10Fv)bSYX2OK{4R-$yEg&0Jrh^~dV^-5B?tu6uLJ?W3AlnFK!2;iKsme`lH->8 zHGp#s!)pQ0Plne4`et}Npg)Fx0W6Q<4S;1Zyb*9tVtrXp)|vCHIBq=uXy>`e^qWC* zz&_goXk(l08AGN7~ct)Mznbs!W@_M&v7W`sXYj@ zp3Jisu+N9c@qKdK8It)pE;&9KJ^+ONAi^yGeH;QDgCfr3z67`c<~st!xH&58neP~2 zJ&psmk&?O-K-7<6>KUi6lc2R6{#6d^AWs3x-(-1OmS<#nR+i^vd0v(mAX%4-;5N7n zSk5Kz2jKXkj`nNdPjCw`&lPY7Tn9||J9q%Df*XMT*e=GI?jB$o=B00z!MsdE-z?`Y zU|Ra4?LJ^ROfUSg4$8Fj$MTp@_`fN~nTPFRotcMzsbhO?0;Xp#7tfTP9IO`{Tv1~pExCYq2 zwBJNHBL*bLWG3$Z!6y8kfG=jJUmqxYfSw>H;`Z=;I4jncfS>E)XU7hLL*NKF3iy5J zd`|`6*U00{?*9w8wz!k9ECiHw3(3WU05{#AGbsCAUfHU9%z`t}2yBpv-_!F=Sz2PGe z1b`6G3&4ex9lJb$-yy{KQ0xYQfdEOQ_mHpUa5MOF1c*vqAw5BNfPd*1?6!anU^8Hv zekeE+3;luN*G{SseTz$IT%vKuI}X8nO&11@JGu!0sjZ z8$1VZ!3ThUDFM4g@Ckeb88DzS0rulu?B)S9OKORVQ8yoQ0idn~`i#;E693X5?D)C0 zAz&cDzmywo%mYk8UcmIfK(bHyc|CrnZV^}vmVl*T8HfSPK`gLDS~Fy<4oV_pX)p*_ z05ebuBxOS)NFB%kOh86p4vHaP3*Zcz0~gQ|xPn%I-?h;OxB++27PJE%pgrgSI)YB1 zGw1@k0#DElc!8oQz9b~SH?acBv;t*88BiW%0+~S;U-gD}AF_wEBiK?vaYarXuNKqTl7=*I$*-xX06 zKCD4yPz_W8)j7OViPz-q7w#DTeB0ayqYfhAxmSO(UBwcr=n#E4uI`o2RID2fW2TJI0z1bonRN( z4RQm{iN`=E_$-3>e8|j@9U(h|E}%Q83f(BkJYY1K4Prnw==r;}{B0-xehzi~Zbn7>KO-(B?wy+Ht23HV#4y+9GL3@isLKn3{b?^ITV zjD_3+wt@*@8;As5L4VKB%7A>JI4B2RB5yUw2A~-@hWL4K4crBPfurCZcn>~+k023z0!cuJe7QhIkQ?Ly z7N9gR0R=%JU=6B(VxR>05tIbxAU`MoOo1h^0_8zPPzmG!g~1P?Ie1?qwNpdn}k8iS_50XPCD;0&6BC&>Q{Tme_XbMOM(2Y-WC;5B#y z-U11EGJz~0J1_&KKv_^3)C6^bEocd{f(#%hIF9@$z)A2cI0a6Fvmh_*MF8ima)<|G z+|+{%f$Rf9K^O=J5uh*V2U;Uf8_)%G1>Jxb@CI(c9kd1QfCp#~I)F}~Gw29BL3eJxk5`q$oX>6LFz5Mp2!G$c_rUia_}&Bm?jGP=WnD7o^gQB)qTe3tI#TSEOMu61#pX-9W?#D0K8gA48z~2}H>@>V_gb z3=EfbOv{b75zvhUqf|D1f`8+VWiLUQi@_pA*$ghjZmB}YYB0J2yI7T;epW;G3s@uD zs9THhIp-9>OoW#eV@E_7GGO>hld z2lV$lAg^p?eLi`1IBI~Jp zitsb=T-HIQ-)MUY-QVDq%EmTkK!P{We*z!CN5DL9A>V=bK)q3wh+Trh#ym-kBcNkM zwNaHByG$UX!p}rBqvQFe-v<`N4K|Pg?X{c(5U1QM5h@EM;(PWRE18__w z9o5aTYXMx+NaF@u8_-&jhJDZ$ad(xjJ>nh;9g^wm(h0h5ptEeF=z<-8E5=jSF)cSn zy|C*Jyj3=R0y&L8Y<{4pA`R=+8}VKW9rI8h3|){)Pn+0iiomWf=%-4@`~#rtuhKI* z7`q`L%7|?kbi=_HiAvE z4l4b|=w|G;fUQPs+o9V7cE~o0o!IRHyJelhlc7#~q1y-ct8AQOPeXSQoCHU~F@S&R z5O#;b5k^!S$H@ukk1K2p{)*ix@S8#}vQl*(yK~^I!cJco5x=0&F?bofYv78kr}!Pa ztKbh=2bF$f^g4Ebf*UFu+xP^!Ti_A62kry>OSiGR1MV`S+E}lL&_7Vv7<`OfJornY z7g?!#f!%ZPOkt<5zY%|_&@m6AZ?Jm{-l=TN^AWlaD!o362meV3d{Wq$J_GbRz9=AX z)MY|Eqe4d$vt@-Y7sw{tsLPIU4v>i?vI-qt(nopdtU(3YMqNdOD}l?w-3Uh zAWYUVEjQXCpz90zsciZLMs~~-g|tJ#Fe7I}8?nuWZXTF##I_K+MPRYYM!&{3mbDUTSAo^4 zJUnjepj)fb(+~4)gnkohxlHV?jYg^6gni+mwyDh zli;Xqqu*l)9|tF79n*57?N{hdf!|a%VLuD~IdEQOXWom@T>_Vl*nWrZD)>WXqu=yw z^#1^PAA(0JAGF0o_ZN6##P$rj=ir4A+uzW=0Wd>@ z3={=LKw2BiGDjK4*8cBfU51k&b*!-y7)yK%kNIw1+_72ZS22bN=ZIeT2%!eEp#t00tVd4Tf$A zh%#au2HkM*lM&lU=thCjMr>oD8wbW4u|-2S5lk{-n+)9)Fx7}{I&?F@Oe410(9HpJ zjo9Wxw*V|OVp|N|60p>WEe5*fAl8U&C3LI6Y9qF_(5(aORW=+3{l??53AQ+}S(S#i ztz41KF0)1wMjd`*mo*m>+=tW-U$pd|Eg^hXg zA)X%;Q0SF;3PWE=VPl>mh!+LL6nbSIGw6RbViRe;%P)I?{n`tCHV8}vxe@OT841Eb ze-Hu!!2r+)1c8Ad6a<3+5DwC_vAhVR?F;&SB@gQ|7-`0VkzhO+4x+#W@DmscqQM9- z3=9FIKzcUTWi-2uj2twY|Nh#Iun&%ktE$gmSYM(1wkQ|KiYnPt_UcqvMCE-I&;`d z0y9NA*0U7i7Ajp?#LFmj^hF<5&{YQIWgB%B5UvO+$vURxMw>NsRX|mhP1tKfUjx`E z?5tC5#A~T^^$@SC&+ZnVvUZZ?>svI+Y_=of(b3Onnx81Y3a-7>_NDs;j}EOcwY z3fabTS0cO$td@05%Z;|R(5(aORW@OdgMJg(sIaq6TM*x@(rrh4n?fgi?1FAT*e%;w z?jD5qf_<`%X}QsM0J?+Vkjf_P$Duz4jwCEHkTYlPbXH(AHD+-T$Pv$g{sDw{rm zoTdwGok1r>8rI7b@vaIT^HA>%U3Zn9Hs!{$1CXXS=%q-@{6UBZDs;?8eJFH&RC?N! z8~qMMngO7{A}#X|MtqP$$9&WegKnrwPd_7|8wp0KY|JM%ri+Gs0vNAIN57L0pQz9= z5A{=_o1)Uw&kX4Jdzk!9xBuTawwK>c&+kV+t7_t1R+ zA5}JGxka{xk)ujABB*&F!({`gSMj36$8ap zwp1Oe4D?}%yjGz6KlGt;`CpB)Jsr@Fj-XR2?O_^E*m{6&avJKq5bh4VWu0gUZ9dTX zf}SdyGEHyTLO_6=hWP>!4g$flPMN+BbfF+jWmBf<2iqVJDW{>&{s<2M17)2u{b1;Z zfGCwsq)|)y8;!IRz!*6Xbz>182gb`fk&m`$=q7?mDw|02uSoh|0>4YavTyLud~1<@ z9ax`AKBn0OTO8P&Mw;!g?EpK|NV6BVePF+lG%V*3^oPNbRP4v0KLJh}u_JrBHkNY* z`F{sjjrgJcI`n^n8%FG3D}?zUBVRoDD;@cn{%@pv1zx8ky}Eq96gnLjY|0t3oGHs$ zvYai;IkIeuLYcmqES+TOEXzo|;7WUcSq_k84!lM}eNI{Cl4WMx15lqumRV()O_teZ znM0O2WtmHsxn-G0mU(5FPnP**SwNPBWm!y?eb6pcMd}YZ2!w*cAPk^M(s;-TAR6$s zQ zdKE#qILHr5fC7N}%8*q-IZzE)0%VaIK-LHNmzrQ_3+w>%w1eybTtP?B3b4Kbkbxis z^Z;do2`Yf{pd2U*@Gn_oR~b|VRX`VVn+|56j|8Us6E3mSoj0RNIBb`HP^Gz0daDZszvf?W&X3R;5Zz!~6Qa>K3-Xbapy zYtRbdU+REed(a7V1RkIrVBdF!>;k&VaZku@z)OyIhx7(Lb^v0Y?D!w;=C=tKc5^15p14@;!J4K7i+d`W%>CbAyZ^56DEIF9}%+6al3{ zQ9ykS$l9PXr~|A4_0Etkzz(zoO#%L;ZrFK&9-uw&0luIE=m_vH1!ETi!az?D4kCab z@CW#phF}*3hJ(J~ComfH1Cap#($CmU2GhV8FdfVWW5GDUF}DhG1z0J^*FvraYvlMZ zkn6yDIlc*U1K23Xw?M{$&2oG@(ma$og`)5oAL-+yt^QV7a!CO@SSt zUk6BgIou4=5ip$-WOLvw$6G+Q1TKL2T0y$X;Wm)1<*+-Xn;dQj*%r{B2V`f^UXFKx z^aEYxxIbh#=q1M^Acum!faMK`943cHK>h^icO>M`U=(1wDUg%p@HEJ&a(D*hbU8c= za;6-f134Se*IdZ?V4fUb0J#V(1oRyPxfn3*a>x}R7SOf|awVW`HRLZ~jU3+qxdm*L z<69wjfo*bpH{=1Z2hi71$b)kDSIA>>_&3N?fMuM9JPXdq@pF(DzKqBBqJGbHnA>k_^^c&N1<8_f+UV})vrxBmib}k5UCF!P=*V)0zLDE63 zW5%REBs*M0vS!bkB}evb*>mO0kt<*E{Q2_a$!AfdsA+Ml(iO^EmM&MWQnkjlDphGv zrChn%E$TF|vv20qtU^uKwk;jp8#^|$rxRVyT)Fb)$!DHFzqx(oa+U4Bc}v=d7fV!sNvGdLyL1^$GG@x0C2O|qIgns;UMYjl#3VyTlT4X1VzSZ= zhF!{-FH?T=s!cK%Xzi87qK|2{VUrhUEoHl5f5A3qpO>!QJ#=`s?1c*dP^4&?vgItT z%G=baS*v!Px^_+N9UPlEIlH;HZRgRxLr3o(KE6Hu{CkCkNA&F%*?+)KBSwxIJ!b5< zDO0CSpD}aR>^V!8E{j=@f zedq4I`wt#Idi>($->+W3dHe4D2eymt6q})Cs&?f=yE0_VXp%7t+oj9U518c3n900q z=KM`sXYuM&z@pl)tfsb;7jM{~tyJ|k&kJ@BJ)6ByX`5SRUa)EUmZh&@!~apsJ~u46 zU03nhUL6jeNj`j``P~OE-Yk2c&n`G`gWTtuCHAfvWg1`DB+p=rNpB?2dmT(YY^qE% zkIOe@Y0G*|XWV{z`>&tE>Tk+-=GeUr?=SX!?EmWEh0C^16-v3U{bgEf`zpnETV1&L zsO6#zbFN!mxb&!Tt|j9vbslRQ&f4w&N}3kex^cd<_NJ2ib@&UIM-BvB3^qtn1SF9a8bLHt#OUsmN z)3JZPtsR~Fv^h02Tf>XJDwX}zJwwOlr$e`y&0Zf`b=sbSVP_`zSdZ)+>%6c2e z%R6-%SUoVuwg=g3n>kP1KCv6RG=sC%+~{J_Qo~u-U5Z6pN)zTtfu@N|qL&QKH^6P> zh&wT~;Skg^>zJj1pUyJ&Nx_PR+^*OBBeL}L-T9hFm3LXT?!cRpUE@An+wweUL!YgQ zKiKAZ;e6BkdHjcVo3{?VGbu}}3)7o@JbS3o$|NcKgUD4Lab0fstiRjyN%!kB)}Qn| zcBfaTfgPSM^x0L-`OnEKy+3&L@4f6@=)U0gf4-jfveSd37jidpj{A^M^XFB6bSj;9 zf$98JduRTTu-d+OTi09X{QJ#VI4VgRw#L7Ex#tJ|+!3|EPV+n_kGDqpU##R^`@Y?b zqi3Qzw>#9)Y;>GMj)4_CyG(4_YuU?sfo2!Z2iI>ou}GQiWA40jFP!Urw|0R?$DaA6 z%9>?S`R7?SvOB&iGTZ5Qug`T^vbRf;l;Kls)a{GSPc(Y4_hwM%$kAdKh_^AS!J&)3e9@%gNT zJT|w(n>+gC(A9q5sch#&`_NMrwpV=Ge!<=QQ~Ru&wB|sgjQJB>8g9y(khl4Zy1p;U zY~E3F%U1JY?}x8ivi0v8Z9Gl86qx8%MM%5K9jb5ivKvV&4S$(R(v}5e4gjyS93=5&EeRtr#~$}*T2#A33F~Vti5g0_~tp9d7Sre zbZp#O>*yM@v;7e=c~aBpsC9mCX3dPt|2pdKPjgm(v>J3`Lu988+wN5?ZIZaL@cTKt z^9+6MBvos$tLv|K7oKU?+C-`o`n&BYKv5cD&5p^&jT;iOgMa|Bj1p*S%fi7e4a1^?cn=0sZQA?mV!1 zw;{9E)$J11W?J4L=bsYKWO5t0@t>T@64mi_eblhY>8o{npleY*Fl z=i=E3jbbyb^!JMy(0`V1VrZ|;N29w%=WQIn|NZn*4H|6fT*CBX@oHD63|V{fZ|}_o zpP%=vxA)gaPj~s)Ebz0RKK)&>g+Vt?Z1j1N>+Y~BrP{gf_!xR)_L}qOW_Mb(aa^2D z*N%ms+@HSW$)m+VE^Xelt9ZGM&yFVnChyy}XfF0jlB7$LK9=|Fyg1>;Pr2Lm-*d;|PS80`t6c`*6|h zev=cwRp_&{&$`{8io~C&R_OYkDM`}nRVL5l581`6>G`Pq`S#;npOoBGXK2{|rGD#X zek%BE%!MTB=+H(^Qxp6e>R$YiB+crRB<)@K$tH2P^?lFC4)ZRZbvWB4-*f9Rj$LXb zNm)E!tXQ~zM}qhKYTmE*$3DRvSncD1U-w`0yVl$Nok!;q;j7mlsOBGgu;UrHa(Q;k zBx2Ip5cB4zV>)U4!nUc?~@}`y6*Dq8aea<&YDjFMiHtxd9 z*fY6GUw+-^y!$RQr#}*U*}te9x4TBC(?@(8UD`PM1h4 zHSC>hl62+r+$T2Mk7k~E;bD~Z{f52++Q0i{^fUh~pOT~pNs>?O`oo=~Zl9YsxOA2e z9n6-|1@OE_d z23~_Y-Tb}Iz}owhq+Vy-lB8Rup4S^3KhX2Y$s}pR`ZCunuUUSWR&VdFI+Hqny7s(4 z#HeF~112R&1svZj9P0V5V$}2ElOA<#KJU3z%{dKY%_{q;qeIF&?SnlgRIxmG&o z-Tqb{Yo&(cEEi=Ans#E~;PWjOWk4jG<&trdRrH1PkD@P}$u6 zV5>9MBdr@}$ExpeysJJ(=0KZ3n-7+{xh|F^a~6%Lx?_&i_m;!0_!disn*Mz*I`-W3 z0d6Z`HJKRqp?CPAOxGItU9+0j%4F=Zeao);VWlGZo_9F!x@2g9kk?B?mbY%4=UM~* zW%)y`tm4lNErua{{^6p`6SLUt99aVuH+h@gHnjHgbL%@wHRsfvGuRZ5gX-8kIWX$u z^4Z8~iM-QVWt`^GW>AITtNpXwEMNBdtWU)@y~8o;x^sc&m@bV>`|iqY9-h$plv}5j z>qaJ22x)lt#nub?+TMM>`@`LpWA{XVve*<^H~z0pwMMMlbF!-6+M3VbEZh6?*}|oh zUaT-{w%6{|vc1C}yl>ZXWZPYy*L)wg?Q}TtaN9>MSGvsqwcE3;(}%3EZ|XiVYmK?% zJ1wnMXloNp*pGXMFEfv8Z7-F79ecj;+J-~3V*)RQ!y(14clK#8pj8Ggo{z*kIbZj; zlw!KZOYZ-r;5`A+3pf zjUNLZwqJGfN%cjO4$m}6^w|~o>5;{na^rO$FO3*%mL#q1yt~1GcH>Ko@$CK5ru|>G zA3Y~uvK|+h=g)CoukgEP9p~3~jNR%H{$cUDn&U3|w!QSmrbBeZm8XR}pPzTL^NJ)X zGGD^u)`PuE?%O_W_ttTLzlnG1Sn*tJ`=$1?FT|S;DE#}HUT^+xOVs?9J3cMh`|?I3ce7ir@$H=kxhF{(%{m@v zemnLZuCv)~58mB2dB`GUx43bzZ=Q=)6MOA=x8Qx23IzruWwi5xO7o)DY>D18VqBf) z`LB0+X4Wu6r`3b+2HvW-;jQn8L?^Rzi=%Qr&UV&2YAKTYl^g$a;ztKF$J4J?=eWJI z`r9S5hOmPg%*foy`Nrj011sj-GJS%>nb)Sp|ET&QZ`9hxR|9Xq-aPlyyBZhEjfs0x z{KU!Ec8TSCT#9>Nw=-5u153R>|6xHP&s?sDvs`$7?p?1TmbbfR^ZxjvZle3Rk;9I! zx9t?~_;G8Mh3|e?nf;*U-BOeGolTrw`1$D%9}j-4X?<(q>$eN~*bgY+e<}FwTCYaW zb*&nXj;(Y5qT`v#39Ekea9cLny28qH&2G(%sh8#4&ROBTvlh4Mdvfxz@) z%YgIoeGs_%-T5r@d5d`hfFW#@X$=J+y><^**nc_IbT1OD($=FfW8d9WX*~oi1T{ zt#^!X#7^t@`{8ST+v<}z=(pDqHCG0+!gwNXce{(0^xla9yYjD0S zx#aJ*ruD<|5kW~(-^kNvM>Z?s>X7AO@87Ce9=-hc>JF>p^Bmedr{OONuFXyrd|>O} z%BOV1hpMr;Y+np{a^c{^`)hqS#G4_7@fXCAK8Mf86CsGs%i-&bbdxnh0u3}%(Xf? zw~KdboT>clWtf$u4{(xiM^T>!d!AI&&tdWsrEs4ZlYTZ=2fSL85i3!v3$0ATwhnXJ zb_TPVu3yns{X+cXFrgLpTk02!#p;nd%dYvKdh7Ceg;PRa`aCh6eKfX_N*UAp>)8ZtzVqC(nmCB%3b7T45>s4$ko#AS*C^IMg)t45w;PsD} z+==M!3=4K!O?&+@PU5Aa>W*`5@U%k0Rk}=h3~*+MMyD;{(va5=Gpv)`EEi>YYI?33 zFP3lpbUR&&xyCdcC;8nBYrf5`)7mmpqmX6wCt9)hbH$#EUcS&?s*yxEL!&5US&cc6moEi$VWOZPs^mZX4e?57!{YVyZ0| zP}D~koT=bV3#!?iyGzNGK_y#*S7d^wJguqm%VHqLTPyC!aSyoizn^ z!9n4n!2xajd)fv>_=JS|2ZbB-Z9F^LH}!P!3JU7)=@1+o?$lfwxh<1qVLXqcPmoWj zSGZ3Py8y4SF#T_1+I{K4(@y#WFG05~ZFm;^xei~ZH2m7Gn|G*xNVs)!9h>^}^$7?L z@d>S*tV^zU5!8)OlUqe}5AgSPhzRly_YV#Vg9fiYebzgMdWHC(^M4zxDX7nP0Z>f$i8b8$hz0hQZ$_4oD)3wH<&4z#HFx$qv%e7t)2gf_5j;om*f zE3|*BU>q<-oR$8!RZMh|Tz1MTHVY05ckSNG$2SAXM1yH>5-`-i}(gZ_Z1 z^UCJWt(AwVK5b>AIhy*1qGK=^8#uXEZ0h6d6%i2L&I>180}D$li;5gh?!oTC!2#j^ zA*iy2y2O$e7FJeP73H=#1Ox|%Is``q^-#4#Y53fR?r_U=q6V%J;UN*>s#-XB1%&w+ zsff~J%1X2h4h{6uJ63e0P<}4lp&i;C9BNT9l|Hiz4)tkk=*Y?<=~t?1*}g%Q%2o7R z#SY2Aj-P|ZI#g7QZK!Bz(cYq>9P02n)X@-1?q&>;aQ9%xP$M0k()78tJ%Tawpc}u^ z0#SV<{hiWr${u$O_3!B)q&nn6`MC}pvi1Q!9R1CG`lr$HV&3P7Rc25PPyLC|GC0V` zaQ=0+V7Rk|u}&6sk-L^TKld(AG<65N`FMqT`?1Mhm~T}LQyV`w@N*}pIE|`SNuyWQ zz6|}UKcha+tei^zv(vg~)$bGg_lf=c#Qyn8_JWbbY>0y2+0~G`O~W zpLElF;`M#f4eI|-o=Y31uy#J7;r`zLS5~=S*7iR;-F{jA7c1N^lYF_pRW1hbv@+G} zJ#7D`>-`tcNVx`W=HuVfPyI+;Y51}-DWI8&H}ZU6wIsg_EX6sSV$w`u zNuD&nuUb;RZCLrH)|59Ip4GmuTlDX&R=f);We-_Y{Jw7azHSjWcX&VY|DDOjN-BVN z)pvJ`2nh)e4G(h)>gy94hWEqhzn@M2c4H~OGJ*Vt{xF4|pHI-gMZ%|_TW_BLAH1uE zPh_OV(0}c{_xcYmSi3b({uD!HWkml81-IacP;Z}R{`lkq-iO-XDUdbQf3Fzd~5FFaiE3`*gNw?sDzCIRKQZXd&ZXX$f zrxsyNg8T#V$pSnv{@iMOk(A^f8sVe=X{^s5Y2ecWgQk^xhgSBUhP!8d5uelOOAYbz z_JId{;}$T~)ThU1OPKx(dMvHgOiw2TOB;}e2Us_=6&twQ;+mT-R@3Vtl6iv9yDpASY;pD_JL zVR-&<XovhggG2l4E&QCzXNzLFqBrKiUf*Je0I!~562GXaYPH%ms#dE~MWW3q zj30P$4GQS5I1BMrZjyt)t^T7hTc0K3r^xwrM>?s4)LSp@F}MsG!#>;R*bj2ZQR*cH zOFoh__I6UB)K~JA`bc4VZG_ZP>JEK($q(8vS3(oq|Mw7ydKSFIW3y#Hz) zGRuBkQLiABtV4eoT9>R5t^~bs?dNTs;_e1@{qyeyf z&7MV7L*socYU?exTZivu)V4>RG4^ax=P~>FT#qaw>Zqop2l(o`>{r{&{SgORk7_N7>W`>id^r7rnNhoYozFa-^$7i&RUD zfNyjC+0k7x`0e?*JYUQm=5h@=eyrg|%o1Ykrady)cirJHx#zSxLhhK&yrtAfc53$A z>FO^rj(yNOEQhm)P7-rU+HDsl*dtF*w7xHLM@Sy}e&7tO!)GN8XGz+A{`n~3oX6v3 z7(E;%q9h@WAGNQI5}pUbZ`z|If4W*|DyM3xpQX$t_89xBJ4T)Q+|Xf#m7ZQJox*1? zTtztk%rTPH=bB;U_eGm{e)W(7kcuVu)Sqn;`q3_Gn0CJvmdjM0sqSbC&)*)BztPqd zOjm2fSh7Ve15i)S5v@?eo;WLg(Nj9CEYs5~qVL4Dk28t!IYuXm)}-C$FFm@Y>QP+7 z()K83mQGSz^ciQ4aL5p}+6QeclCE|#CI8f;$6SBy<7&tcwd{-44UaR|IY9_TqMTmx zk?MtBwM5D0h=(A3I4nM>3+uz#Fal|LH8q5IJj8f0*N-rBcnrZzsw^u~KN6UmGreI> zWy?4-Fy;;4tX1+zWLcbTi^}auyXVB!+Hg*?b~@blq-R`+^VCIg<>9qWdDUTEboe&W zZ}I2$RevSY(_morOUTCZ3?rn6KCii)SF3AjD~!P2s29CA#hC1l5fF|t#40g0ySQGYJvv2? zRgv6L0`EThpqwfwiK|gxsU2ptvR=<@HDEa^IALYhlZ8$}teB zt?B5Gf#TQkB2;xId*hX#dMWntj#IwS}9$A z#8pw*X634Y*I&a-rIRYB%cF~&${A;a@|u%;Pr$1SXKY@>cwO?wolo-WT~osiyhqzy))VVz);F8`vpQ}2^6 zYhEK=p2hlA*(b`8@ulCI-{ewt4uWjP0Ev~0uv)BEi9^yI0m(L-S z?}s_#CbvfYG)=69tnh4vS9M>B*P(h}lqA-S-}dxVtfA?f>wT_&jOpsj<)ytY5O?@# z9XXxUK%=^gzD-`cB|j}q%hoVmZ7C?H;(Cqu|6E-K;^|l~TsM-BmgqMfzRKNjMfg|8 zpjgcb&&@Dr@m@@aUo=4sQP2}?a)wYUzU#^h-G5Yw_BKa7mZM98To5c*C_EA)p zuR|NPIg;W$YKCz$K%S|L>6(61OOnT)gMOvLyTLH5M;!F?B1dXB{n6y=nrm|Y{j0|* zkL)M8CGIF^fPUq~CqBHhOHUdH*-zTzRLru<_9d66!#%b(trFuaxm6q`Tw(I+mA186 zx>_PuiB_058sex}tWmjQ zm0)GiO+K~N;k7Sq#*4UH;_ATo6Yj645cf4{w?y3c ztJk%LtB(g>!?c#KL=2~FubAn4(F;5;Tc)e;#45uMW8d()j6d?ZrYo+&l_#DdwZL^TTt8Cz z)Y=wjZXo=N=Qv!;Si>*xJNbmiu!eI+*zjzmwOp2X8i5~Y8^*m!}$XD!zKv9rsS`V?NR4RY*LGQ0n=FJ^49@E!x-`aXy=1dc#@I=l1l*SAe=> z#Pd~FKH=c?sAIZnC7zHsLry+jQPwWyy9xN@nSW`IZgG6-=vR_eaa1@z@UJP3fUTZ7 zI3k=4s$zby!QKu>$reY;2FJ+}DIIZ~bW-PZl_$;$7xYuA8j! z^f_fal2?b_(&b;wkG4qd^-Ve0hVI{#gDYY0Z_2?HZjW!u!E>BxeO44P%@4lQl5H9iZX)U0r`B*q{W?16(t3txywZ4evNP5Aa!CK)ULkSx&{LXNLDW z1j;lt-m((aFo~w{7d^9B6`r+D`i~ie%*tp!Iw{0`^x#htTnHh{IkM45F27Ns_)@C8r60( zs%@XjJzPJzjI`S??u(P#&$VvyI+L&8eZ3Dv3%NSsGXnkz-IvEo-CiB$fNv>`WpI8zWAJkuWj)iAAHY7N?*g$6BKb)+7Z zYB}PL*&RonJ>#oiosLd5y%?>AGpZV962qTP8k4SCi8~H4)0*p7b`km!$fM0UbZojj ziT8DbGCbqsSZ7H(XF_lxPk2h;hU%U>o-wf}%7%!*(@`x&Xj`t18JvZT- z>ha|{Ypfp8sn$bW>m2oG7_W5`(^bC6$5*HgPoyTLE1!6;Q0m9Y;qw)r_vt|(0{8xW z*38=doUT&DosxJrBCiXRzcFWbTuIDvebh-)zA>j^PT^Hz>Nn;zl*ydazA>kvOkQWE ze`8KVnanvOT{#QMsoG(T^XkOU7;x>w`*VhPpU?L=`suG;JcDPZ%Wv`w{WX8HWPe|t zRpKd*SdCHg+@76k4l#~-g)uy#nv-f;F$>qg`I>UYq?6{RnoFGN$#b`;)jT;*+G_}L zb>i6Vzr+9s&<%>IelTeO3Nvy za@Nl_J)$rTdsx_$L4FTStV@Tyd7s_hWxvtf=AYd4*=B3)&RXX>es*5qrA zsNa{hTbZu1#C46m#P@cvrOD@j@*T>~7-4-dN|?fM_2zYLRk}(M*EPOc;|(92+g7J5 zr+6nt>U|;3T&3?d>GCbkQ+u?#yF6CJ-HT3I`wx96>#;6fK8nbx#Pi+cdrHHTWWGPV zGT<}q<0+US_r9G{&O ze>*CFXT@Xi?Wi2B=xsst%rhzaQO9|E&~?_&tfV_ft=`CH+~&l}S*f7&qi4$h>xI@k zg6LU4U5xh5%OJ-*CR+Xmt z-XNN$2VkMr8|Zs0dSB4hrr{G}f6RnoY1kyQudME2CWaXZYO+}BgnY`JEcIAy^Hlkc zYHcg}i-cZYQ%#m22Y%~P>7U8+{iS+I|3Cl`fw?&-)0a~P3z!X}ZzswBY582|Qs_Uk zCDZbMLTG)UL@)QXd-=hjUYZVV745lRG)`9&lMOOs*^2%$s1=h4^=_oVoEMTAm;Zb+ zC!aA&X3H7#g#0oqrk^qHDfx!6ekh1uIwp3jA`De*mB5FC+PX_});Tg}*1-`0wxYiZ zy4LzZJZ&qp?YKNZyKQOQ}pR@3vl z#L&79uN8edsAa23XkN?x0#+ZrR9@j7(d)Ebd?u(}cM72Os@&uSpPadg_|XM@_a{^K9Vq}Q9IpYjlEd3CDv3-4kp zWm#Q!joAbR&t&hquY8$Mhb-{<#tLG9akm_=O|a~S@z4gvdI zFJoi93$v`u%+ARO@iJ2~s`bfOk+eg^10jeU@MGAVauOb)5qNf1L(mg603SCh z^pHNk(?aX>rRX6WY!?}zTjTPIo=-`u>QNatlETBXx|x`UzHO4v7~ekx(aYM6yThWJ z-FzXaU6a!Wk318tj{KazkOjo=hXI2NY{)%sA5eMTba)t5`rn~^rqUgA8B$B{W0O16wYMJp!c z9e9eRo*KWx-pH0)(N}`#{dRKJdRg7bTwFSqwR?+q#*rP>X;$SE=`oMy?&DsFeT2q7 z+)c+^4s{#z9=aaQ?oHPJRQGIE8|&G)Tb!CWvy}XQntZYpzoI_QsZ;8l=N@-DhW$jz5jDo89TDd-dH~JOwoke3*j!zVB z{c{jsO>e*!>KCltBQDS-j@+yX*nrVj$$-ivBIARpT0%pfc69Iydj1@0QB*7^DUnzQE64F3Uno;U~Joq;#Ypo5*s5hSyI%JgekrkM&=--3r z8S479tr&H`9@M_^k5Qmy#O$n`WPBQtAZIX8EeMZjn!z=ydqiLV5k&9K$yv-V>HPCI zg08cEsvkz0diZ}LKrm2k70ZSTcrK)d zhr^cPn$GCMA!N=ct?0i>(Nh%Qjy13d$`WL9N;-i1Og8*0k_@=$hIGc1pfsxwqCC8I^iX&Huh1L@$d-=}{CT(hq{#xABlA z5$%CX#AtAuHLHvP+a{+~pNOZ#^PzuQYhc}aEBaw6diV*D9FIqaf(4pg!b!X<6&R|v z8e?pd9;kQ3FSerpE=5oC3bG3FHgrpMjp!H2K!+$4YJ5vX%t)0YQ( z4@v&0kw5W0nG3Zea(~bq-r$3xLVoUHkz01Z6m@T87@jSFjp- zKPyEKTSPChK+W^X{He*Huj}Q%qNw^H}MC(gSPo0B98)Lmz1oe8F!KWuT9|11~rO87em5HF>KJo-LL{=Hxuxr7~vbhRM246Um=B7bbCp9XozMl>R*W&;2io+ltjz}x8b1b5HTF}7Hp{%*^Z@Fu`b?E zkeHNF;PZ$S(HPKEV^juT)iKY7!OT>*JMrf zhH(-3p}qK(buqP7G1V}7_#iw6vvR7JSeSZB#>Gf2)6p2!6V&~g3<3sjD%8UZNQR#q>noD7o_(HxxNBI;w z8ad+!?o^5%978(bF?}X-qJ89w&Z8y78pPCK3iyg8FguDRap!cI@oDV}zTqp-J~W^B z49vmq&=2sMcZ|;Jwb(2Ad1w&5te;CqYCb=Am!MV+MerS1Gd%}=6*Iwpz5!40d}s(V zf>*@-8qtsobBB95uAvpgfba<^;lYp$`iX_1pX4{nIb;K;$5sSlSXU!Ne~?wf&6%I)d{={a??9b zTT*=tp?Cje9Me)QdaBGNQ>8pTjy$iFJ70A56m!Jc)#vP(5z_veqjZXdS$1zl%+0q4O$;$1ROJTg@+`U@8FtwzRF54D0w1`SfdHTKgD(G9D* zb?&Kn|DbEFulQ;5AYDhL7)`8620^5YpFo0GD98z)iAF&wu3|6SkiHr{tu5jQtfH(r zDG>r_fd-*7M5OAszzHG<5FBs*z*6+UAhd*Es{TZ`^nt#kD`ZJJ7pOBHib>RY@Q>3% z??I*L(Q~Ru$Qzx59uXKk)@WVns;4Jv!b%u7IT-oggM;W9&e;4wI$BBZhuDf964ai_ zhgekCy`mBH46Y$*1y7q5ITM&^n}qKENx+K$L@TVT{xRz$bc!RWM2-c=iqs8DG|( z)AOXA_IzwmduxO;zvvj*1t?E{&!><+uxJU*5SuW~(>k@z7-^*o*=wZ=y`#tI0Nf+aqcV(bBTsnC9>!(pX%$V| z)Eo*aQ15^j=oyipMuZy2LW!7$&xwZ~TZ$gnpi4v?WHsmo@4;58Enux?J&aFvKr2Y9 z5$tmuGQRsu&-k@`qg#BEubVtBsC|O8#0e-M*m*XRbk*VPH9 zcjcma3F9HCeWGyBc!*Y=5!72lHLLE2quS=6_Kh1LE_x5Lp(%`?$_Zmf3*eJ_Z}r%^ z?h+r)sF;;MGl*VxJmIKzR#5vk9&n8OTUXg&-&(OD+EJ^}nMlj^u??N;(&`KQ{f6kc zji;B_*(y;&=aV_k4r<@VqjfrReIh8uE9!wdOQ(?=pW|nUZ_r@sikyw-ZOK!TLdIkC z&{TM))euk-3jnLZNcak>kVz1OkR6d=1Yct?DQT(nY6T@)L}OW+SU2Q1TiDf=9U$jWrR7ZzoC%8te% z?Hm8#4cet^Jm3}e9-ZdjBb&xJwl+j#KD z$XBZh=r;Xk6ht+;768rA+>Y2oqhzd%tcGVchm6PQ;i0gNQ8~2E3b)V)ok2iXc&!;A zc7`VEnOwu(#%1V{8G{o@h+IOk!sU;;rT~9}*T8=;TCH1B^=Zl7cxC7jgTO(!L+u04 zO(vllgZ69Xn%D(r{gqPmurD$ojiNw7S_50PE=@o1p4b-j&_X0mrb!Od zik=)q&-Bq@ldT!MR4kM=V^s6@d-nZ%N>KZzALt&vr`knUsWl<=PiHgKQz{};Ye2f_ z3vz?U?5JEuUZ5Lsy;fJr8qh^_lxiEOg&(8l0H-+@PU2y(9Q6OvAbJ+NrmJpw+uat_ zmhlS2RC%jE)#^H&Bj(nXO?WOe5U%2X=|4QxSoyLbdbWF#RoUEXjqO3#+nx$;Rbl5n zh&xKPqI3Cq-pvQKV%0vMpXlt>91run1RO|V!rnwm0} z*^>3mW%QOcFC0`+H8WH%r1Nr`t77BefYvhfd-dd0X08aLm*v-1p=djRbnoyuVPAo%=rk;hYQc(k~ zrOE;tA{8`@j7+hJ*^iTCG<$;R9h1n$Y%yDbH%;@cO6Hy}eX6^zN?r(}Xd@&mq+UbZ z$yhZ5!y9XLf(TF7Oi=UFD4EDeXMw3R?kzi8#@rOdkecxvYWfD;HDnzcBxnlYSVZ|g;b*(^cSrK=QJ-cFGC!oIRu<# z)I?M2dDt~PM8~Z%la4A{vNkQ`TJu!gQ^H*#jGudhTk==0&sUY~nsKRu5Zl{tOV;^? z&@_bH6my(=S#%DK=e)CfyzU%)h4kT?p!N=xGxSMZRr*}hbrEwMj%$kmq5rX_i_j z<`~JHphs?jpP-seWX}2oVs~P6(1W>i_2Xoht>~sw^faeto=hVv{4LQqen{gkdIX9R z6ER|N6;5b1p%p!|6g_eg#zrj`#MWF+F`Loq9b%w3{lFiR7tj-})3%~#m7)jo5DS8$ zDkohB#0U&csc3?_nnxm8VhX$nvk%WMMNijwYaFSwD`VsVnFCigDs+3fUNRv#3DwWQS;Azm}R`lE;dd`D@p!$3tc6krcZA0_v z*mrO*Ho0vcwOY~hgW5A&QL7+|MN^1w$z6%ok+{~#kSp4Q1a#dTvev34JIIIh-{{dU zk|m;`{sgbFJo0DsiTKANQDjRzLi9$QLgkWu=F8BdoCGCG$= z%>unbYjs^a`^}f3hh85(MoL!Dd{~lcnQtE`Gna_bRHQq&!KtIOM~cH&f4v1U)&er zo=xeV_4Tr#*6lvLGemFMw~lpAdH%BFeh6=l5H4!8N=ygdX74HKtP;FDs8y>Napzb* z`(tPRkiMB8U|)^>aV*SC>??wi; zw*=8MoN;=6j>veYjGw;S{-e4FE&KO}jNirp?h})tyraNvuc)3`TQ?t~kI) z5MyyJ)rnUn^zzx$onz_q6j6IN)T@K~_Tc0?GF5g7AX__Hbdepi$$8ipo!sCY*+uH9 z@}4JY@x4Cx0(5yz5FO(I^*KC{uJ0nF#}^P|P=z8gWwhp%sMhGJ4kSrD!V?8Tcy1^| z1`1-4(Y!9`$~z?-0iWjO_3MMKvOBN3^XUyi?Hrv@&+a8nZ*&jX%OyXa>yU>@gFAhY zAc*=q3AMbYSY(y%X}$#_k2ePO*je{w!mlf(4`{{jcBOAw9nSy&sqMEF{az3~lMm05 zL#l5Iy2|9ESFsak_71x@2eo4>U9Fu?RQ>&+Hf#jUL7-u83A)NGhzJt-C{B!Li%H+o;Pd@&%hiqdvYCOZt@!Do#>55 z2Jp2N-CBws*#c2J89x0b0;aaeFO@fP2`Y5N$x!7T$gjB~+1nol(X)8Ls;6d)y+h5=Dc_hVcEGy=a6-ZUL9^oc!k;qICGnr%0Ev@PvX8dM?`W*J#M!k;f!yesGm>mir`eLSzNlF@26($?G! z?9f~ptD#@$g084(MSog~9+@Weun|1HuHjJXpql2~a1D7v4gPVJt}$#y?+&78dvoUZ zJ#za~>fG7U63?WcxxxNO>~xurbx)K}(Ou3U0@Cx2i*XUJ`^bpBIq}ff$UEJ=lN~sn zW$M0}JS|M0S*~*ePW z8CFU?K(U4O5ny>M`tu-q=2JVL#zegK-k|HPzu+1f5#E%nLM;lPqR}%pP3}u?6(PYC zs!DhrDi-fc=oxyr)xB0Npn{a0iTR75URvy}ITUr7R`mX$D{Xw#S*ST81?u%g2&@_c z2N*9=j^=xyJZDg`)%7Q2`aGLrmHh4X98{O#V`WE6OJUjb2ZLI-(I6FFxdqOHop>zu z1G*lH_<#}9chC-P)76VquzA`=$Y`<=Lbt5_LqV-s@97P33^+`!6hFo)U#*ofvq%i3 z^?qtB_-g8?)E3dmR`lUg^r-aHhOUhwBEjS6`XJ&${5!Q-)+NwB^=qApAjZNL|0;-{ z)wJ04pV>j4d!o`=g2C}^Myy2{baMK zqvbv$+g%zTnf6$xNzQeS(43b4>^As>SZZ_f`Z(b}&v!XGj%JS*Z-)d}wa-4(_QWCX zSY?muGel0u#%EJ~v!{Ej-@PjKeCAuiy{SH7#rZjFVP_i;@JoLa#4D@BusVxb{#Nw2 zLD!iMF=L=et@SMQAL&t5XAXh9#qLr;@2RNkH6Z(#(EC^rJ*xwxSHjs!kIwryKOWSc z^&g!B6EqjXLxBZkJ-VWlc?PX{VXfdB=MYzd8pOSy2%=}R?CF_h>wo8yJb1duDrvWu zH!#nakN$X)NJtBIPe-~>>FkVqPCp&gl8vr&#^1)*DWA^-wP^BD3~@FLC4YXvdVcLaYns0Hh>dLQb4cpuH4sqcbo%=ls- zddH2vQ~!z2#WxTQd@hLIk#Z)#RN;vR+}&A3+xUd+E?IvU)UJ&Keqzl;jN~|s$Yz?! zey|z7!K(2YSPAnN)IEuJcshu3z9?$rPAsi=XjIEHK0@SWy(BAyvaUSSY>m1MQ5YCR z>`UcIc~7;4xBy&7d+;g$P?DZTvdB(zWMXc7l-9-JlGbW$4FR}FbxT()wxTbTqQ|(< zedc5}8zswRbm$W(giNTv>uY8=iN}x}*YWI+GW=A(O#6m)L{uj4Xnvgv>zKT0@^_gY?!ieX_c07=K&Q zmrC^#4J8VqR;DOK)lxBu>KTzHmaX=oa#Ecmeu67sE=3P{<5i)dSsNNoRIU{{tP*bP z{QyLrI;VuD5jF9|j}WO_HGEbOgSsj8Ii6|}a_t&9lV5tMx=DndX61pEcWqvtTq< zt@OSgMDGacS=z^E`IPnW{}I%xag8}@Y=oIy>ea|s{kP(X+6(=qTA^d$8(pCXs(qsr zJuHWK4&6n+sF$EscxBqes~{z6`|8oqNqj3g1E~GYQuMGBJeI~O>RX_tJ`4OrVyYKp zxQrjvB{rbC!P7KCw8H9S({VjdcPb($g;=24zSa!1b_dcB)hNn=L41N1 zA{FgBb3y+VM9(TOtb(;?Xy>Cxo_!J0ds_>{3J&U-%wJzGefdt%)sK=h`OVHCcjiR8 zg2A4%e1Y_vs_v!211OSXQmtW1V7*@5fz4}<92jC49zq%LCh4xTL$ z!fng5$Xa&9eVlJ=%#XVA&nzrk!QuH0Ayn5S+#}`(XNXA13h)!)5wlzB-I&J(*Rd+_ zQFq_bHPU4JKknK`vjcmYm_6tCC#8DGY8#>=vKD$q28kcmyBakUpyy=6WMAMZIk3e& zJe#2mN3>Q+9Z(~0VtcC8#Fsj6No5XCsWmzBZ{-juNp$nGQuOebcw?ewVkojpUH?sF zsFhe=(YpEoP?5EB^pt4h=Rx#r?-E-B#q;cJ-6i@@9gn#f?s!2HbtjH_nGND;3}rZ| znLDeu@HY4}&Dk_l;WNCa#_z~f>&2kC&eHHSh7fwDU!CLN$qFG?KS;*a4QJuN1s!X2 zK-x67c%Fh%>5gq^V|E6{=4s61w31fniMGe9HA&x)v1PYtqvkkh9yJE|hW+BbwKhl8 z4Yyf0friqS_AiVc-j)`~=rkT7)*%Yf^|Hi^NKRuUvTe@Syjtg_R+XZM)sicyU0IGz zWJvUlo)f>~*|BXbfa(z_q%{>rS7v;=a!<97*b7_Jhzri@42iDIA){6#(HMgqhLs41 z1ktnFEZ(hiK6pkn%gqP#)Ppkp$98mG5D0{25kDhwok7w06nI6%h|k03)E==fo_bJ* z9-N0m>L1WQ^Z-vmK8f7%9q>+3i_8cqLK&RqsRw1~F)FZ>NSJ=>>K5`%sym=M)ip+| zksfD&)a1=X$gSuuLG*0y=)5>O(`P1SXR>+LL7BeOW4t6Qp%nF$7djV)z9K2chV_7r zDo!YXAOCou~1z?i$G`1b9I)Q zaUlhy5Bh-N_+IijG6cmR?z6l{5IvKF)y2<}h*j^7Cz`c*@Sc6Owbk3!y@J{@{59+) zw$LgUpXl9D@Iw7FewkPaUV$mPHjWB0&n+m!cbyxhUE&?Ip8B!cIJrDl1?Fq^qt-^h z&>-xE=N5#}yH?KRH~U1}^wVc8YST3=T0v)i)#lc?|A85ITgQUW)MvM|?%39Ya6aou z=41WTXq%ZuR^l+Dpsf*oWS=H$&%Zs!`wcUbL@Imb?=kVp7>!}lPs>fW$o$`7LA=RU z7;J>-rf+8HK0&QIjl$be?E|a9FRVs=IC(BUPSK2r4?hmpk?U)%fG0MDNVwZ5unONO z4i9S8Mgi8*KdP@leUF#add%D%495 z@2F40Gg8xFhCpXyc*a8r*KB+s8a|Gz)eeb+@O#uCsi07=(G{-XA5lBF54JOYp7BtI z9{CL(jLH*83J2jF)bQTAV#0C&qG>n+DpAj)E_1(9^r+LS*6CPtP ze8=-7%IFK44JY{}+8_tTGtr{@X2z<~g=!Qy0!37w{MVr!fxp@ZeJPv;v9VW9!8Hj0bJijDwma`G7?n#9c@L|BFuXyooaW1a&ov z;g#kgj6gM$S}WA>#6+1||0VKNEFg9pDMb$yWUdwchJ&g#jDlDizpmDa?b8otTfj6Z z!fBp2QD%J1P3Rb~V59{lvMDHl;2M7O%RWi~t^vFhN0WXK0Y2JXfp|{Y` zF;Us!H8~b?!|t(6o;Oj39@k+>nzb=LB2zd_%Q_zWl<}e~+6%5iKOdUVQ>r|@aFu+@ zuT|Q{a=HA&O7#)mVy`+MiPs{J#bOm7G!F%PE%QeI(0ec!nLoS~Jv=VR1_pwyYPE_{ zYFBtRtuMh1X0DJBx&j{a%!o2Fz%D>+kVtbkss-q@t^~EYGtEiy<~paLUUo+49b1YX zI*NAy_oyKuWyM8uQc%h=S5OFag4=ji%~^S-M49n1j|Q6S`T}$sEzM9;c^G(f}TN3q` z86P-CWlX&;^0FLOb93+l|HxR78}W{=w$v4vEqM+_8G86ev_a=su|711SyAZWPq1rv z32IU4BFZD1)7l2lp(sNSO8_xw1%H7(5NY7o7!PQpm2-3lTW7@JE)r&S(%O>r&=;~^ z@CuZ%`9kEU^+#$SP$KpKVRZfx8^ULl;H-pLjHtxz+a0Z zbj=9Zfqp5%;)N9*Kn%2i2x7DpJ@5v^#ZSXkq)k@GxUmxIc4(g3G*LD_3Vl|&@GOgv z@mXcjRq@Y{*W2pO8a9{3oZWa(doJVAwPB2&ynxY=BQPS3PN;W)pYRo(0`oM>0ta|j zMM(c`g{7;eQ&ULK!|@b~ke00H#AsNN=1cTk?VLP@*Wip=w0aBb)x5{f7zIzEP z(C;1&capaF)jKY!?RLJO3L4ja+gDwl?76ZavoV(oudj$JA(zWvt@^Rjs0^o&lX?rh zCFl;yfdk|v9OxqGp@^$d6*v!WlJz~N6g{*APonF8unA~rjSCyo*BYUK5a0wzsIy&U zMUO2-Pb>D!4M0Z`7jLH8L3D{lLXUU>|EYPQ-WLJAlS|U0mIDS7&4GZLVWC@C6X?R2 zpr+Ws*ohg4e6X3vm7<3}gBaMM`beT|#))Q=C#a1QE#kBA+3Hv52U*|aOVOi`IwHo0 z&d>w3C(r?3s_~-MtvH7YFi{d1--=EtMNj!eY)bBcH&I-MYf#0XF%tTOzF@`h9&bYL zcuGYXd%*M2SG*ry0`6iT#H{cYEFt~@Pe5*b9Z?c?gKhAXigNU{x-N+Jbbe1`52!{-rdrCH6$$2}v58=WJshc+X~ za-Et^F>TX;BF)OTT8C}mH#+-DrrBFVs7~owMPul+j=X*nm330j(zfr5sN^}7)%t2$ zHOny^$+p_RHs?oBpXFp}jrOz@{FX_{&=LP!PW~W1F$zejuN8gOe)tYq+jlDObqRJU zvfDd&1KK`4{_Vv2v4d_48)3jRIA0r_+m5k2IcI>seWZaXs6v**6(~r&iee zL1dhzW;$IDwY)}AFER}S(;l|ce3)yC&yE|^9YbAei!wO3YdcBPXV-kY(5 z-9D786A7rn_2PPU7EASQIjNa-)q@Y6XhgMkImc#py&PksqKDlOb1oOX-e^#rUNSyI zh~*leAXJn+=8r8qX_Ov8m@+^x_1EI01@=v66?PHck1c`W2p z!z|MQK6A)Y&2=g{eYgxGs!b7u| za;OkiEzDL0=)2jSqsOPFE2b4bWC+WKeKbwy9L+2Tef0XPx-lB3&o&-($F$XbW?EQw zjw(M!H$&mZSU=6YJ=9M#ZxO?gWtJvVS1hVemi5x~%d%dYdF+9EAvD8gt9*9i!=Jio z8oG7bX1(L=jd?zu?VqoH%&T*ZZl25WHA~Nj>x|p170GnZ>%;u9qv4Rf|ClCk6Cq=2 z{4x4|lK9xX%{Ts7J(JT;)BY-aRpXEA;cMfMsr?l3wtrvM_~SbG%1X~_^6|m)W9JLq zC>wuV|8yLGp2 zjND(SJ#$e2vk?v(%h-flpXzYD&T(=N`Ev5r@28f7uf6TQO8s$bbeBhteqX#Ce9dEl zX_T`Ovyj1YfID`VQ(w6ouNS>ezYvPk>6ts@RF-p1hM|#O83grPLRf^@ZzSA*)xBCT z?^c+bM)f}n?(_0l{j3r(8xLPkWv}t@b@A2VzFAwH_Tk61#={Sqh59@^_xW1S}v~8`$NiCT-=?E zj$?R;I&oR=sm_kd-CylSWqxY#+N0hT(@8TsMkn1eGIIBLra7qhgG0}a#_vtpyU?_% z9Njz$v%g$t+}`h)OvBumvfT1(y58SjUJuiE!#j@EtA~2ueHA+4yLU_PPNnr;_inj6 znTB=mmhQ4?T4?+am3V(T=JpnFI;Q)xb!sq?so_96x_5W7mBUo$57Knq{rooiyq5^g z{G1hbQpo4j{*k$Rs`SEYUq<}X9{25}yu>YaER zf9dvJY5Zk=btO4kFHh{lqsCwQ@u=~aRJqNEyKFc;$51BTaeJyZ{u0g-t>{dGizCYM zv)*`TP=9Haf+oLoJJmVA<6TwwMa9wWciykbFU?*Xf7$p;v!^QalWhH? z@t0M{AItAA)B7_r(~ZA(vmb7sS7J?zw1(#|-F}NMLUW$Qbl#Ukgzom5)o~xitW8x* z&&66co)CKE-c?qdT?}o#Se}YARI-)sej@_6o2Jti^q3J*4|XFn%^p1F4cUpZKRNL{ zmVUD5rkdxE2I{Wn<&nhl4X2HHUGHBLec2FCUs9bZo^4~5p{;Wo7P>qCvRwRO)W+}L z{4w8L%pck`1b6jSJ~denve&tfM|Ju?A3Ym~q30mpFR!z3%J8|jObkhjW#V#HClQ|G zWoT+~PkOf9aw!|_%Gg!e&53unkwN6qiCH1iHwhG11N?F}f7V;hhMbL@UDUF?a`sWH zGO{4@G7n_PQf+P5kltBN{WQ&I)JM~AS%z)BEQ{3~79W6gn*BNa#k%>dLD2rPs}KYo zM9cHiC%(#vB>o%BMU%rOW*{pcR<+l?E;LigqOerTMb zZSUB}bYocj@nv&$`aT~$*}xhsL0(j<9hASc%2>JQG9{BgU2CP*5{jlEQ5)@)mGVdtBWNj+fiNjQ4B&Y zuT$uri=T^e(5-_RmR8jpYlY8}xjPe!Ie}f9Cw92Nr=~;AEE&F4XRiI)>8iB7wA1Xn zSSC%4w>~dz5-3L4LFMe?wjz(*$a!VT*~QYm>^Us*s!z@#-lp2P6c1~WV6Pa@#R0{5 zSGNx`e0C8_y&0o#rk~$GzszN z&a0N67x3Gm`Gwvx8FpM7!XFz=vEKVR5gPfq{iKVv^WgDwKEG(Eakyw7}9&mQ;|F= zdQy}}>F``+EVX(a33ZznIe0L-$wm6jMchujy*g70b$Ev2c7rdLNPQZ++}^s$Q2NbK z%GkM8K#R4iv2(qj(zw-6y*NA`3CkMmmPr$jSRJTeJ1i5AxM+Sj^`~LP=;5_>_mq%g zoT|_J4TC@KN#?!cS^Zw0&oCVQS?=h-NAJL_t%Kth=k}JfJF`g6b^8YEh09gztlNax z-XQadzWR!Lu1{~7xHZv5G8ry5^&7c_XDEuycO(pIGL(KJqwqNt_e83d?D_k(u5#FK zREjy#VE>@GntO^_Z|om-+`e+2-r-ge+8Un&Z|_mx{c$``$vk|ok-2pe#TA0i6--db zXWQ9m)~vr=%kGYQ7prAk_Qg(ab#_^LuAj!O5PEKwsw_RTz;fertC7mmvsu&b^afdD zmDLP)@9T2WvpJOIqGz_%ot{rW8~F`qe_VgAWH!;uU%Dr17RNC4qWLvhx>{8Gsxk53}~Rb~5?NGP?uM8en6xG1Dp9`)78eQWES zKAB(eNyAl;u%=MlavIp(3%FUuGVS)x{;C{Bf4(e~XL+3}vwFnMVHa!F@>_YGn$@qJ z4)T+3{7IUp4hsXW?!Sv_^jZ`i5`bw@Ur=#V~H|Td(|avW*VI z@|VjU8T;sE<>Axs(D@VZ068#xt z)*|cn;Pun=%d*OG`aFSqx_56+VAZ-|d4gsgAu}ZwGgqtee(ke*X7x0ib%Y0(Ec0HW zUQdMn7&b0PUI#s_0IAhO&yUUybBoszPPSvLVWD$V*K%2b!^>t}1huF&k^?k%MXixl zPF5Rg>LT+omUdtFQFmRWGY`jG<$aiW7_;X_exdV=@G~D%X8Act4D0ikW$Id16&{wq z^u;fA&dd4eW#!@1@20MW2U{CGUGVCL*poSr*3`8O83(cCEMI-dQExV}GSHu1WG%8< zzFPF*GMM^l=Dk4GH1nQ-T*SP2ue#P$YSk9pZ&s9dRwmptR$R;qf6afES#`urfYp@J zIyl*G&EZLtIXOQASBfhSKF?j{98ngReDsw?k?X^6;*bfZ$#Nw$`%t*xHe_}Dcu^gi~lNpuh&*H!0e%F`DgdqGNag5); zhw~?_HgquY2dyw`>#aW)`3_5e=&d1-i@xi{d1zV%U^!`8tm$al$g9ZSe3laWgjhHd zhJbfmOR;>vv6T9)bNMYL^f_c$it|3$@AA*j55wn%KA(zACoCpe{`r_XE36?h@nwOb zd37G$L!(=$hDAYxM7L0}sKeE~^Sut;1Bdp89h>;7=5^{&vj>i?Dgjly%}(caidAan zF?vP3Zg1sb`SB2>u+bD}_C8LO!D)+ui#gHYG#pjT_mp8F`q**}YP1GwC zp>H19;oiaKOt0lwh|(G`4;=XrbO!aAph zwKe+Ys!Vm`c9rt)#83a6L6!9U`sP;a^ujmm%dqtA;I6y)&>L;G9K|9NhY*SYIK zOr5RU9#?K9oTGa%R42{5*r-g?%JHn(9k|&eDLiMbKjzBEc;;K95r6++~(t z6El}twM@Je?k}ybRO~OC`AVYL{-UOp6A?7?mBcKDF6I2TyT9AvVtp0ns`IK&lqdGH zOv#M~Ut_$n7{`aa>1)G188ltQWbIcuuT}>2EZ%KUubEe)hN^S%)#gFXyc)G%;tSty zvCC0QxFeum`2EE$_b*00X9ZR7PUw?)*5mkci$SV~E-&d-I~q&X8R-?6Fwypt6S4Qw zDA0Ki)o#wS&o;!fY@mFOz7 zGs9Y=>9UV9BWmikO}(~^zPQz$F0;;RqA#m<)?cnJ;qEx-PS07mvo#kNm80kGckNEE z+VQz4$}G8Fe&!LZN_zP<4%Aj{jJ;!2L$Ts0tloO9FHWuVzDOUvtW1159$K&U$s~0D z`%#IDUA3KFt<1c^^rqO_^PFIOZjPXM1J{6Lw{2)x$l>#^A^fRQ*R%BM*7JJl<#oJDdVYNi_f#&frB}-zw>O^3 zc@Br`{nZ{DPX(?!E}9kKQ&hM6^BP>Ax8j4-Q(4Wsm#5P2n>(92*N!xvs?03esKiBP zqrLUbEO1znk+05CXT{G)FB>^H-{Gp-{pD}IxDRc%oX$|yM{$tYc%q#j_SOI!eWL-+ z%lYJSplN_*WW6=ODig!f0H2kZR+@zj;sboqe0u#&aqT(1=3qF{{BZc=a+qHHanVf? zf9jn%VvVjl&`z4j(jpiqOFp$|rHE#~tH^cbTxSg{G#lxk zrs13$r+s2$^!cJH>q3mNK3URwUY7OKG)-}Qt(PX+iNrefC%-<)d~I>PGj9*>I@60r zPmpLm6^Q!m0X?zkzr1etk2B`Y9nETVlT|`_TU&13%+jmY|K;(kUV6RxS>5>1M~mN_ zZe+(-w-3tFt8RRL|5Go$dgYhTW~e9Fd~mO9&(&6jmF>~nyr;}c#HVpw>HHwb-)-%9 zr~l+SALcf9tyX*2YF38*$*Nfw-K>i)W81!2q^u@Z>rV`88-K}@Y3hiP8I4VRzav1HS$&*T0QG8Q$m*cic1zbd`LXVy7BOPD&2lc z!$OXbRk1$)R9Rij%A;DHGZe4Kb7bep>y9)A^;BjJ!_v3LQ#osL7~9-aSyZRbTQFW@ z81q^6A=R)vm91Lq9phT2J}l&DJk^0!L-u*9GAjmbt=X{jjjFd{jEfzJO{`~z-wx5; zosOaLV`uyT%{-EH~5o$+@0lTBfm2ITyB3^ zW(~ZnUkuA%5>Gc7ZLis_ezWK%qg~!vL(^pQwAFc@CZi?GTqFJo-s)Zq;dv+A>m8T4 zNGZJKCZnx>9cq)&5;MTpQMrTP;)h{*=q96`6!ggMTiIl^s-bu|hsfslLNbOXqxIhd z);uk#>N&+GqpdCur9xmHse46z5PJCvaC$`=5jLLDJzHI$x@6wcWL@kn9io@NO9Y>6 z_~xF;I#{m_LF?_ci*Mo5Nzs!cdi~@$npVE1KVh6&YkX3ae&Q^jTP&@s3gNwb62o}> zEv;v-3R~B~(}^vQD&_}gTC7-Jj(HiT`wI&9)^lGaEImI6m&10lVJ!X8BR+GI4X4O; z7S|M6vj3@@?mnw>^=P+CQ4!7lqAPf4_TRmApUj%-vp*K88|yn)njk-CmEB^=FkR2% zF|9kCH9wNxQ62jO%Q(}htTY62_GA3<>2tq`Fx4Knv!812w}z*Aw5fX)Nb@AB1GoN} zx8U`nou)&@YeUgCi&2U#*!i*QBM7x2tyP+}8ot?kpY>Mj(TT;)D;m}1c%~dOu!zsm zb)S`u8}iXn^OW#1(O$C>pz6AU(?V(GlU zBy)3_baBM%G<8`1lHTSqK5J2RYh1k%DXr&GqkfuszSc_jP>K)@9NtR}X-93Rn zqC^jf{oH*0QnVQDkLKe~h|v9532*HxiydjpvU2+@lxk=Vj>y|b*K!F**Q{83O4Xph zl?jZ>qU7$}wQ-k;neoGh{@q)y8&6Ghia3|XiZT(c4@>K%=hMpU%y3>a`Wqkev$h)f z5xc{EEUiC&a(%t>^F?5eX0M8cTX|a?fz`Vo@l*=0&1SPURX1iJDMK#ngNskA(1W~P z)lW08d-c-v)p8q2R-rx1Ey@1Z7&f`MKfZLR+}*Pdf;fIpVAj{$6M%Ze%#9~#Ji*|R zPvZ#=+*z>Bs%+y4H2$~vtsZY~I9)~TnfCD$)hceiHNe>tb_+hFp8$^i@Y%s-A*1d5 zxEFt1u0Bi)nGC388Pb)haZUzQbQ}lV-Sk!FMfGO!v~J$cA#nXP4S|=7rdws^C}#a| zBS|-p5;miOp7V5td5pScS>O2l7FjR7ybPw_i74T*2-Mh|SfN(<}E;{6CxKg~Rf)Jt?t-sixtkf1j< z|JU35tb|(mF!LK<bi=&!B?j(hZ)vt=~B;~x& zdI)!ChRhw+R}UG6T*u;jwrt$RD_vP}WoP1@x>bypzh)Tfjr+51e_Z7%A;a>;)mk{3 z;PR1PnqbjMv5nWQ38s(f7)dp>dYSZF&kxnPJmw-1=c9W`Bn)-yL$472)SZ2pRu)OW zzuJsH^Qf0zKI^EGo?qY0tM-Z>$5MWkUUl;Y!__yliQ>w5o)h8G&RAg7Fj%yc-cuHg zwjC%sv*R)do_-!)k^CA24_}`?h#rl%tIfq8bx=Jr4__QLySu-8;edN0TXDaaUyoc) zX5JtS4LWTq#H)q1i+1F9jOnC?zqi)v*&)X5Hd8Dw?m@Qbs`~r8mwSg8-C1YY_mk(n zx67#93@dliSSDKRw>ou)+Mv~bisIq^?juJtU9ZfdvLiCxEz|EY(fE*ln>G@OX}r;2 zBnLfftB6l_j-xk7Bp<$mitftQdkyRITd317lfN&X?{5bcq~d&&wV&0mYBSz4yJ9F> z_LhpX-Re zq;r{a^sJIwj-IR2mD7-ryGwm|P1j5d7<(Ufu%grDv$o$ZzmF6NpOcm0v!a z#Ycm@>IIAIkrQ&RorzX;s}I$i7jE#(qSqP4_~>PA%7=;l#Z35DlSet5;!2ZGIh6A4 zeAz?<*t4q{mgA_~kGH!F`;k>h<-(_nRqig1X21;)!(uic%>y|m0EsPswK3Km7t~MF z=Udz!g7u7Z`0)XJ&EoZP$g*CVd0EywPHI_szZ6O{eQkJt08NLIrk^g$vrpVPMQ!_H zpYWAcn)&yx71SI1thAL?{pBgHir?KkR%fC8ufPc%olmpE@7bDY*IM7(1D)N6SmE9!kb>JRyRtCQ-*TGk1f$0}!){f)4Hs|=;**E*{=^_m0S z(4J2y*1GzvayT4f2Euau;%dMK@y>Q8nlqegfX^=LwG^Lij!8yjk*-B0)uF+#G{HvH z+g1!YifyHCgtpne<-o6gedZwO6~2N)IWX*KHH1fDv3uvNcy;aie1xl__11fYbxUj555(!zDf^Kq19cCV?K=NZ~e)^InNzl)lc7xhSjg6s(zhv z_vIt?YFb!MGKgm9yx3)RaLVN@Rj!5% ziH!R5M2xS$ytc{7hLe+JBU=!@AN_3PHyrup{UtkMSR~#nTbxR*oG6N%>hqWEThV(C z+!s+)iHP+^O)CQxSz%)9WSnO<-t(>bD2D)i5_%t=@4m76Y1(=o=S}OU>G)%O4DqN{ zA|zwX(nQM?x$Bc8p*&S&4mO8tfmX<4*V( z(L?h;j$Zv%Y1+S>G#!78kM&w6yG&Q`9{k14pGV=k(+Z!TT68n3V7*yW}^tR$ErPu z;ez$T7Y~H4*6GX&8KsRW%}3Q;qt|#4wd6AT>DJpgzTQzhh-sARk56A6LX^XsJ4P;o zUBbOi4?^WGj|Dzl<$8z9;d;w;jR)yOzkX}n!^jBwpT()N=90C4pZ{p8(A}zv`D`c4 z&uZ~BA05|A&t=!gs^4x*oVf63k(mbLZvmnQ9Ee_8Ju-+t$9`_s9)sre+5 zj!Te@t}Ar03LaDMhFROLkF7L`IIS|T>%)Qm>bm{PB$V2qGBKas$fUDYF^C4_WkT#| zvjV-5%j!+VGI90(s&}uZxBbeV~a}6_`cji;Wd$Y_zJW6N9p4Kg%Up|_? zsE+5m)HlxlD_Ka>BKjg(=Jmadr*;x8*7wF!uMrRGG`5^X%G4UL43&GaMCwBzdTXA^ z*=9Dn^kFnt8q$`_$o=!L!>Kip-y4oPT7Ap1 z%GsLF+t*9a5Uo3!R69P$7qj2&_2t%Zk@Y4tQY^8kHj0@MZZisWwCBKu?P9}rq^IknYwXrepcr@ke}1D zZoXp>diiV(Jh5oIS9OA!wvgPQZj7>CIDZc6TfS<18-!1tJ{GwckLshDmknOQ==PS4 zWj@9JqrSY&x7NxeWiqK7d+OB#TF?8(`f27ds9u_Gg|*Z6Mw0McoctC19RQ;klA~LSiwG2FsPGYT61P5cH(zN#etvF01%& zkazfJ^-rNsy~C0%`zr2teKknG_o-I0o&51rG(;<^d-mt=Le`Xq<$*p~hv&r(ksDd7 z6&+Zz=FXzfDqZ@yj%c>lWUOYUPmtG|jI;l;wHvb-SGP%{5WVd$s;n}~tG8B5>-nsx zewul{)=Lvv4nJbAcZ_!=Svt!#1kC$e|2>*$f}x03o|mGGsHARd%zD;A==nW?QRwXn+?l-UmK8Ui08CZg zaCzUL5oGc`>HF|{kRHOE2YsaZ$e$d;v7owcKX7JqghU$yk|R#4ygn)>m9A1jut zAKTnjaV*qS4Y0zdYOt@zY-m$IK3HY~nySIU;R!5O=v_6i^$LwAa51b!tkp(z`3SP! zyoT2EQDnU|8&A-90wPgc(;c2eVr#uuH`Q&ChMV;ufa8m`UnRZ#Ok%nEv2nlH6CBv} z<6ig2p@UY*sOSDT?o$b=(;rOt$H7%MSJzGVef6Pgchk&U8?`@`hFjAJO|ykE>oZyV zX|gS<67{=_X2|pX2EoTXew4YV%5kz7KbBvwom5Qoe45tZoiJ#&%_}*XySw0xqC2OI zM@&EY&05Opux~6?dfpm;%jeJ_3$EI#0 zbN7mtrQ2JE{o!HyP7UKv2p+oi(&a|7&V%hC^g{Qo@0?Rc>#Q2%urP#Pm3W_}H%LU0 z9iI>D>!p{sfO_c}YBcg=6)xN#Z1$vH`Q`m(nOU^4wvQ8@@ zX#YT19oEdE9SpN*t|HKD7HzD(er&j&V7XCp7%P6=PEEa~VtL4LrDDApUQAeZogpNy zub*Zo~=ppuWmxbMFUnyVdLl z(S*G3$!lJ{egIhxzs^(d7-@aEqe(xC)H_aOX*ktAKJ!<|xz@#YRJuZT4np_y8cSPN z6L(g^r`g%*Jk_v0aJbH9g4{@%^|4PKU8AZ!C6{YwTYGt;z zYPgz^x6XRyGK^YTxK!MXbt9E3y#lD&Yt1S99UFGnv*wg1AE_rOmTsME^BARZw!6n4 z1eZE9L+Ii6iq{eiLeJ+B9nD_V>GaMX@P#OQqTOS+pK;wXv8=<%q-q@W@hLoV7;op= z#k$)>4#;hg^%ld499-qFx5XHKG@4Mgjdo(^ur$Ht2*oQ^$5S|2gq`)(bC)BU>m4^Z zzg}0|VBVqF;_CHL&I33fWk_I|t*=s0?V8{$MSo4O>h-|c{Jp=mz@uU>*8g%mZ05UG z&U{yy*wSjc!?oLd{7t-VeJiqEmydFG_kFv4u_b6^*-kG%;yg}~9~nk$SuLMB{ky*^ zRVT%;h{A{B{cA#*dtb)ecl;GwOnngr+|S#Kp>~n2aHaX_Vr%Kt0g{WOPt zS2`^y%5FP3%MK+(eVsE}q0&rW8%~qH+L)Y`*e4c)`bX)w6HX63wDkdwUj0_Na?mHs z+v+THRI)wGLmY3j^p-=GS(??25lvY+vNUd+om4kY>@tr9d}^7cqv>Bon%-L`+&-aT zHM4R$)Kn?5Pc?^^d92IYhTk5m_8=je+ISE&zgwo}N1d!Rt3v>g&Usj8?bNEXvqsi8 zu3-dZ{ryECE5(DOTdONP!Ib!J&0bbk>}Q^oA&8}oiDE5B;}qVsKL*;#r%eQD%39Qozv z@IhRYVXswzx`QD#k!I$0LmRnF@0Vld7MwK;cXa#nXkf3k<$UI_W^S{nVYzh~9}Tj> zmCmYNwq+k4HU83%N4^SSmY>!76U(2RM%GI&ZvpkvGpy}CKA(Oz{?f0XzP!9j`Q`m3 zD@;s=z5S*2Wmx{wU%Bk8S=6m>WckJi=d;Yt2d$IbQECXT+B`huXe3EwF{sA&pVfzE z*?!cr$f!4JS?pDeTJ^5f^~Z92N<@ep3`>0Y70Rj3dc=B(h<#P0-t?;U&*+!+!p2y4 zj8#9)e4JG;n)GjFRmyU?{a(HF@-nQF9;lVS4@*BG>e5W`Nzn~42J74kpIZfy*Y>Hy z2%SgjylONx8`v8StsY&BhIQVTwV@q9mGk|fYt{4q!mYRI#UD3IRm>l^wx#MPS@^i) zaNH2o=Ose<)9EGpjj8*kX5M(YWRE6?#tIw6AFFpPmVTYq;gd(b^3O}8UV4URP6O(t zXNbC7^bBE_haP)bT70#96wOYSk7C|i*Qqsd)#@V4H%5y;>Y_N9XEX^EV`JkP4;0T> zCMq&pXk=fUsUM88H&kk5f5(%(i=5GdZaYmin13+Zz2yas-QV%--g2}?_IEtlTfW@L z{*EVmt6em*KTu`wn{#-26h%kMF>~%E7te0G6yZ6uUUEH;2>D2i>^NZV-=6B5O-nMUFbf{c-KRLGS zzv|riy}Ng9=c{uT7xvCCF72A%7p;=-)<*Y`zvpaQoZqvgS53)#M{aTc{If5+a(?^L z3Gug&aNl@3@`&i}a`9OUJNECM-?Hth`RH(Y>lsvZ-}Y(e&hOr~wCn2mbG9vAAs

V)ni_rIF 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

#9zdtT|GPYZ#Q$m& z{E*N6I1fmbd=`zh5PUX9^4S6Zg3tat{7YTzq`jb`PJV|K_kPz%e6A?}HJ%l(#V|zw ze%C*K`sdjBujT=trE(Ez6DIl}pPAlMH3MN<9~94NiLdZi(~7$P1>o(+d4PCMRsXB@FYz1Xct!bFe+NIhW>pqe{7zM8RkV+kjsAId zYO~@KRFr?!PBD%&U};$urSJO*ukU**eyV668k5H2IpO?3MEWc^)ooU92;bh1t<(P{o&15S`2oPjoVO zFwx1}l0+x-UlE9E&egALI`(8iu$7d*ChH*sU zo3NmLgXlQIb2A4nFx*rZJPGOxx2LU9n!U6w{SuX=oE6>;Wrsq2jJs4H!?>L2U%ozu z%x^)<|JBzdV=f4LI^QHZW^WkMBI?TQx*+oM$rru@j)CK2b{{x>Bu)A5i@7gq55cUN zpL@3DkdT#tUU&`})^7ruLsQsD*`uN?-QA&d<*_xw;K+NC$$i3JHw{GX zTOV>7?yuYIY;y6K{+K<`Y?D%i+qY7U7vA5C*nc%%S@fIOzC~EmQf=&{+0*3 zk(OP%_p;s6sW%ux6FYNaZ7p&Q#H?twvCFO|+W^dN#M#OO0I2K)yW=?dq zv6E&`m%WLO=|wozH|%UQEO~c$h82nr(8Q*(;i~bnI9t&Y<~yBg{V8 zt-JDafd`8&NLbTSZS17k)9*P%N6#v3Uv&@QG1c6QU{mbZ%<;8cqHsW*Gf83V-G@cG zVvzkO#1pM2+1e57XseukZI5XW5qryO(tK6@G-_e?W%E_lTroLRkywxW#lCSj%wCpl zp=n=ZJc}+!GbcK}8KVw%((LInE764qLjMA-VkOqYu#Cudyj-3=T3%%si}tgg=Xinr z`l-HHM_c9WrMbeAYl-aTOT@XtlF^zGXnPB;j%YmS1DY#rfaOI?%>M9X-%fWAdb8+) zgf%Vk&D6q9nmzsgPIUY{##_deyjc7g%xdb}yq(r#Fgl~}w{!P05aXSPjL?U6Z9b6G;9VH+L}7&U8sJLg9rAZp+8)&<${ z*6dA*uV?FVFFqJtik+g*U0*(Q@5)0S=sF_%a_h*EG*BBmY4&to3DMEBGW+&Nw&dH) z2W=V}pW8hCG|*Y=wJ-ukfhHDb_nb+W=0s(i2xUz)Y6i!9MZ^*zuf_R*kTw$gGQGb8 zEU43s2j83mbGB|%0roOgy4Xpxr|ZCoj`%TC4>>2L z>O{c_JC20^{M#1T#BxRQPtRk(vS+S4`s9dyU;mM~j-ts|VLn>f1l2UmUPi|nqE9+> zvG=|9k3rt8Zket>768fY8d;5kr zXI;*Kzc(9x*u%5|XPA?BGd5@hXW;NGz@zhb_GE3Fqtd!7_)h9#C(WL&+a@}Grb!Ji z1wBhm0@epK&G$~|3gv9CGas!c!KY1M^?Z0;iuVdlA>O|WZN{RnM2vOphb7u7lyl11 z_vlz>><;ft@E~sZEpO9YFvjGzzG3lAsO=fQwodnKps0DhpVe>GxG6KWd{a#vxbueF zo4+p_SLXMGz5bHDvvK^#cTyKSY4&tG0@3j^bz58=%yNkX@9s2jk^FE3Sk^*Ub;Umf zMtN;%ZqG~X{e?9w6`zm4$7#S{SS0wpOk&STai8eSw41et1nFhKiBnuRe%_u72ifg3 zaIm-p^nK**lRS91x>FrrN3&;8n~fbZJKKSa3^iDH_wqPaUz%?`7p

s++3eKOSBj3DI?E(q}sLgNv3ir$si3XA$H|dro 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

2dYwMxU77FsyGbV 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 n5-kzO!n=;+16e59vhhTYjY(o7aN#E63Ji1%yd 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

?cvLR6paKa*iZ9o*PlK4?dMnd z*ZQr8_B-vIMgM6{(4AXP&wsI5Z^C_1d064e7BUb(RY3riVjcR~!(Vg2w%XKwhEtU(gzfGx;t7YoB2BZn0NWKbjeLa)TYbWTk zm;Dx%q>+7!;VhjCdUl)&UPNIV@}Rqc4$trM`{j3BbHuOry7hxwta{6-`#yx1-Q8t)URO1Htp%Un)53f}_MNhkNTB7myzU3@_* zgsLasf(fUb2QnzD5`C|IN!JrzFAsw5++?kgvXw#=Z-<3@WEP92kVupdDS z;w48&e9L0eLXz*rB+laqN!CbgLq4~qR!B{_DZf@}LKvTI8u^b3AQ1h`=C}z)f%qd6q@;39d59y z<}*;m4YkYFda+f{mLSD|wxQg`m>`6G@AS1k@x%p}wQfGPT0ZfPOGZdU$8MZH@7#6Y z*!!HlR@wLF=f8Rwo!|YXM-RMx;wNXEv-MxD{?FMpXWK&*M^p%t>0%qoIju;GH6E*CP@Vi9J(kl0G+vdy$L2=gwZMd8pxryD^~B@5eWLmGe&X@!AH2C!*L zE1%9n&beL#VKj3sxVOIniM>j`ZVjsJ2}9N}6o!0mbFDC%X}E8qUV^X{b_avSQn>9L z=5nz3U57hf;g%pr7^Wc!4cMMA9(?iOIX`*tpXyi5-tm}Yk4Zg-!jR8xr4on^Q|s!*>rYH25-{c-n)E6ip#!$|~fBFHY@ShC)qZ&~L%jjxWq zzQKCiY;ZPmFP~dq%Y6;@530A)jeIo&yL3V%UV_`{A#hAXs;B^)>N&MS`;3h)9K=nY z2gXMS>hp$2=D?nDoIrdWsNutN2IKjG`#tAB-jM3ti71@oZ7=YopCII%F6C35jQv4_ zW5a_-jkF6by;mi^4HP^V*Y1W7Bd2`pSO3q*_Ww@refOtNoq5!Y4|e?m2#u-k#wp#o zH?`xJhCNB(zU)jM?g@aqeloECV+L*_fpit@UIKBMX014Z>J{CMY*B|0!(8WqJFQfQ z=i@e9SOD)mepsF2IerVFmB{0_Np|j|%MYD5Ep|1-S_?6+5h;{zOU=fEr#nl4`=Wv!&|t`z6K^&ggf|P0HKJb(x^f0Gn|HLT`OO7 z?s%WJVBzBN0d+$oCHyg$R3Po#7W%m553fG(mX|i0aqp!2E_?FPzn?_O2ITV8CwIMT z_80y>2)cneStQaCT)hli?G<6Ko=gr_2b#?aB==x;SF6BmF9)|y_dBV8 zoLq9+s~7$8`)@SwnfJoOuVi2O6EcG57i~Fo-Hh*Dv)2WCO@HIe(;j(}&QE;f*he0F zW9ymUm~h#ZfBoB>@6h?EQkCiI`mzKYr$lwh(tQVs6#wnDzu>33Ct0ag0R}&fUFBFBNTJ6 zB<0@Ul5Fxo>}MQd$Qp)i$mdQKiFAZfX%-r-Rt|EuLq>XRLq2!BNTef-986AHQ0)daUl88p8t@_wg>S_w1T?U`?V@(SaskN3 zqTRM#_mk`WW7_qPR}bFe&f{J}F7W&T$LGpR*WJ4M^_SmR{qnnh?SKHDf6rxKxZ1t}iD*yPZczq_9O|E88dl&{UnBL*d?9SgfeQUA46; z6ouMDo^UfhWJJ~tr|%t3x?kY+vaogMP87e^5e94}2D$QlISKrX(0$6s!^c=ccHaqYF=ZCrfE zZl9y`|9aopmT^{52jzV+upx^bN2`E-XEv^+p4#I?3@3-Y}&HxZyH;6(~j>$lL@jzxlg)&E<*zJ z=-6Qqf}my=Ht#4xGO7fT04yLhGF7<6A3~x=v)b>>3wBtiJ3$hWM+4iC&n?Bq>Cur0 zxV=&nwi|_Cw!npSxEmVw8!cCxV4?-^g9WFwqI$wG{#tN*M-y53>@4CT3!D7t%rD=w z>dDhie|pnrPJeL95!ib?|Ln61_nY|UKGTv%PxHk_x(f0vLeX))3afZcSg3;fm6agg zmh~b?7_zW+18@cj0-sqJjVjauLNQ#rUZ^zc=|Z7Zuh-z#uL^7=1l!R&!su_j9aR{z zhM_Rzb7yLWkp`53J@;V)=`1XigH9CTE`vJWVh#vYC^l9CuNPGqGS;IoF4e= zV}sxPc=zdI>gnnSKDzk@4-B-fXr1uK3wB)nMdS^czTk!r|D(3e_04Y`^`nJf+GVF7 z()qbhU-#{o-kH|A@avPdS$5T{U!wC-@kpkNH05)j#>VN7;yV^wF#AD`AQ3J<$)WC%hhZX ze#9VK$mc56w7kKnnRRhoatS}>jVcUT!%!IVxeK(yD8Owob<6}cns6&_1D0oVwN|vqg{?gZR4uo0%10Sqk>HbBk^F z8eTAm(dh5(hA2V*3kr{j0DVC3b^y@?hb-xY7z*cN>k~fC=d)mK~a&8Nbk}+(tDL6D2fz8 z5d|!WiXv7}QEA_~v&?4l@;1rlOW{BMWH)zb-po65=goV!oXg4vxla;$RFK5!57_w^ zvR}eef>pdgh4nCBmShEQE6Q954$x6duqit|%)J6KbfvU5q>Z}r-ur`ItKx4GJNl`f zmx|AaX)AUF*{-~eh8gbQLF z7Qkvl5mj%&25;vCi_XiB4fwR#gv4?E{*(H)8MueqU}clIScq^0AxK82$Vp=O#>~e+ z_>or#_>e1YcYlO>vdUB3RL7tf~r71Q=NM}BzTCuP<@bUJ3trngS-o7*O2uzd66 zPg5!mDq*ajTlI8wsnohxJn;Jb>!x&ewg7D zk7igN(emqgyWY?KYoFDgtPo-E2Ja3{4q_4fH-rdk*Z5^w0v)mD@xc5DE<2EQB7oB4 z5#SZ}6zFPBjz&*EXQ|_qyY@1&bDJH>Iz7wx6YB`|TQe)O*@q2IF{)8ElA1b_h zN{#b%29GXRB(;Us*pWvHCwpFkla)=O#+@w$rvf4f@|&PGrsYE&NEuJDq+u?pBf>nO z1Xpzh>tADaB`e)x!6qL zrRP%rqu;4>6P6ws^z3vwcKw#**=H~OVaMN)d{4`Jj9vE)vu1wV_3-k_x7iLbl1Do3 zu;-;VSlMjILR$z>MG{e}$18cUP616T;;&Gi6X81^pMgk1l;+GUzkc?;YpiD2*BaY{*{G;>W%;64}HzavqgVja+~eRqb^1@ zIx(!zZH?;BzP{*xM<*^$r5=(zQux^RsSQ>(lNxun5PXV>)tiZh1bA^l*alh^tmME6 zq^n3H@t6gilg(3utOi{cQy$JU931E~gazI-D0pfjwO>a;J&;Es#X(2b5hxlF*{&!B zzpQ5;iL9{bdG@O@4{N3CE=V@-c`d$Ld%}X1&F5mFBb?vxk~fTDk@W488sJGR3?lX}m}MsRzNaseP2!k~g8up+YZ z4FR)$l_;1Jzf3r5CET79^QrrC=zC~%bx-a#b(*0T`o4V3v^#%aJGsoQHV)Le z0~33EU*?s&wT&+wSB6jeQl$n+-n3h>4-f6WY>g^>bj{Ei&3b1CJoX&a4lA?GkaQB- z?5l{z7mtP2B3uzDxFCbyAplk;5H_iT?g3$jX88H>!Wjrda+I8GUy17<8$SEWAiNL% zSHD4N)ab;#*!la<*YrPA{&Qzvo^CkDIs3Rjd2sV&@AhJ+-*W*LU8Ia5%or)-u z;HyA*nS>-+5DkWn49?J zH$DxqFEYZAWUAi?H#KaN%nBk8Q#hPUqfeezWQ75XF%S0%?vsQt0Iw9>J5*s&kp&U< z*nolQGBFyVJS+l)7=y(%i~*}pgaIp?$i)C8=^oUu2B#KiMI=-lwgd!c1n_DH!-%N| z^&oA%a1CR?4%~zRD;ved0BfnKuA3zTu?+q#|z6sggyL$Vz7u#nq49vAFW6+ zVD*VGU}ayBM&Eo_1b6^_8+C&F-m) z%iVX?D}C;&E}Fcm#Ay4+GTf0MwiG(WT1Yv~tBGlL*4oca?1j_`Sz9yg)N@lE+8AiR_ z=c>COohuTxtzFw52Vz#8dHwd-wRhPeo^<{0{@~Aa8v!uyM4KP(o%~F_Q8R{o9>3(P zFL<(c?nXkOU={1fY)J50RB~6q;sySD9hF=y35k1#VAl-{+NiDM zfJ^ShJvcEB521gTeyLuj!(ZNn#f5La?Za<>vm@-IAiv|Y@}26`{L-5AL!31J$b2$!)`EqP4cR!nA4IkS{Zsgz<-6B;VupR?nci;j@~+vzmu-vJeg`hT zNCiQ3zvA=ihG8KP3+71VV<{R^Zm?EH^i?rjRysnv!fcF9jtK3jx9;tV`w#lgQxSI$ zc>A-^Q5&qRy}J?ndo=d)N*)0@Rwh_Y6?@s|gAWA3!3g)Kcr;EpMB&X>6~H|Zq`RoF zKcw3${U5mkLvQ)s_a3?HOx&;ll9-&*t!*aHS?(?BoC~dtUNlSGu(L+3V*04IPj(!7llFjPQJ@}n zKWFZ(eZFbp#5O%U-Cw9&djgi^*WLYm5pmX*Iumx!t6eoJ^`s-;G^p>1<6FP9mUnLV z$_JC9PtbXsbJ0HR#yba3R@>c({XH5@;lVJ${>h^%UR2A=N=yGSr#XI^C;C86NM*lf`z zw*fR^2^vOYT#a~kR-(neihbXxslIu8#R)?eo{V#ky>_+}t}P1xvoBL7nGiYUqQ&22Ni}A5EAw)I|mutND(|e~1nZvjDZu7>-Th>x9?Vi#OoGl76wk@7)wYw4fdo+#& zAtnk6!7BrDOw4I9$3?;g%F!dmTSnljnsJVipQO3e4^}PQ-N4W3wkZ6?;>VM%ayJsf zLPbzBh%PNJ=J^&v+!4epsXEmXGd;++Es!_-hZOw(bG2y)giam?)G^LS1?6s2*Av0anf zwe1>g9e;+lE1_@rLYM8nboX!cJqrKVHa1VJH~xBkOS5M`y}PtAmnU1{Zp8i`jU!R? z49qj++cCxxDdBMd4y~F?oz7m)6E@ zy7EN)hyoWJ4s!& zyGuK8wkXKhbMR#A+>O}Zqj97xqezGkA#5NIp_1;P_xH;N>a`)%2ve#sTs9ft%NyTR z!or6uD(8zBLq-hfKkh&I4_vRkMd4poW!$|B?v?g0?a#u^lWlf45`qZzas@wJ1qdzH zbmXslM56mg!lxQQo`kFyv~P-f(kgIYnJRb5u}i+#d^T}T<)si6BKgx@KYnpw@tBxV zZx24Tu)#|^9r@l4tIF4Tv!AiN?9$tgY}@^~BaakS_PlgXReWEs4*;XzFn9KzXKWylh?2{}J zT*!EVX(~mogSO^sHg&!)VRC{2J8)AQtZY3O18>08EYYB897>cUm;~XnK0hc_{9w>P zOk08arl=c57Y=#yjtz|xCy%N58&oaxx=fF4`cwtq-efflwdyB#!EXF+9Mt39j_h=l6R1X6-I3&LsI+%|wknG zvWM6L8D1jAfYm3$fR%0HVt`UTpl3ilBqB^y!H2+fsw%9ZtOC-eQ82DxEF^UO*~Ngh zkfb9abz4YUi{YJAQCQf7wUIQy^BJ*?U6=Mgp~6v_8ho4M$X|DI0Rbo-x!pIo75$wbL( zizj=hFrE48W`C!>z&#=e;G*Nn2Wu~-^S9)VEreW@j&sbp zDEdsd+$8~BB&z}Lp3pw-jrM0D6dp&|WeeAV?8H0Wo5v^S~W|62BT~4n(K{$|@DCO@yxSk*2*`E5=v#m;L<8%PUI_ zC6PT;Y;X5%rQ5bNiyvFHL)5b+fB(^uw~O~B-7#lCz2!xUOnd3$7y40G>HlyW?;JeY zyY5Ep@3a>}cYFd6^ZKzCLBbw{+P=Rg+o7}6 zPNb-^=jC0?hlS~^S2z1R?IrtAfCOp8URm{dK*UN;TrB{Ob<2lHakYRJCv;`3rnoQP z>4x)3`?DDHWP9C>*xzX{lqU|L$duO$Rg$RmUjX!JVDBLtu7bBz!7NVb$|A*p)hB9$ zmF=_pjUQ;Uztdi*{s^xh-p81=pqjNB5W&+f;iZiVQOGk1#wO>x?Srl?QViGun%ZDx z@7evv5473eX)i2I0|*?YIUD%WOqc~x4p`F^6a!WeFH*3!54ylt?zwMG&5du>>tC|2 zHR7~ip{pnPzEkU8D>J2U-KCX(nEUSG%TbP8JGVG`vwm~j_O}i^HRe+Pe;s+G!wY*} z-nHy5Os!wt?C-P}rv6YSO`$YwgnA>34R3yr0@6oBAE8dI{b=R8?Srn2RSEayJKbhBldUN%i~c^Xpn-iBT&!6u7=1E-BNslB$}cJS&(Ft%6HobU0I|Uu=+%8 zurixs1#)`}VSpl{n$Lm>5z%-$#RY+R-%#*ufgfIx;2R?h3S@Z6E(WaagJP2H?JoRF zWjh-7Lj9PO?p>0*TPexi>^WI-N_aEKEc7_68DtjPjMxnF{=>hN_~qDXbA9u-_di)^ z>Nt0(2-zoSyBGh@A6o5=x$EXy14cGKw`Jk+)jU}O-4ACA-9^jv3*eMOATJhgK4f`= zSz3k11g}gFg@4&=7^mkj^90x6Z0_9-=Le^K_k}vLtUg1_dnZzkdhzf#-|acw{J1fu zR$$-U^DRE3Mo7MM-+<=^MKzBbA9b$GGNpJ;N8TVhcGkUvtk~BVU-;*pi~pUWj@q52 z9XK2B96VXQ>s$wi&;wx$UZq(3ApuYFAyz-2!MlJm37B)hQo_1e@|zEkI>M?(R$#Ee zQX8zSJ{Jt4Cqt1`*&9H-3>cCTB^Ll^myAeN1gB;&hW;;r!D}fqlYa!~X6Wl-h%C==2P>!1i$VnY!8!H{9? z+C?o2y=OyxAj%eMzwKF2JwO;OWcF0$J_F>_MEc-aa(*{C9RZ-W2W zKtAaHKdb8sij({MmX@~aHXm8ENNJy8i% z*!4^frWp*xxsT}s=+mcP*6X;uW|@S!3;Vvfph($=+?YPHriIb7=PY$nhkI+jJL8E@ z9qdjn{p9|?65DDUM@_A~u;|lVN-_eYo{Mwnz_6uv90S`gKWVyY;;Y-wz%_3JHioMZ z2!ujvIT-NpwgIOXl33x*(oj(W5ji4?y;2=+u!&6@q=zs0~)e2Lt>a zAo|zHc`JbJ-zVcGY{{VE^dOW66c-E_*RVpcBQ;^b%EodP!e^kQ7Rqem<|EAs<}Jkf z8y=MUF%1)o{9r^=nnmk>K_S>7mcU?T;lKd%6!=DMGp~YV7|dl6Fo`mUI-Ch&FoHG> zjB8LK*y$K8-0ZCk{&h{qGK*{?lF#s~H?$M+gzWC|oxX37Ff?ZMx={ySJ=VfSX zw&^)TIL*me$^qJues}hvzuAqte)JP1e(=P*j6sVp-d1SAtGDuGd^ixQiE0d96i4&G z`(w%AIaNH!B8Qh$l)$FXfg{6QDo1dz-AIQ8tuG#}S~BqBOG?a)OE2z>p8VWmIv_JF zvaQgb@GA_VSZ*tH@`sJC+*$X__}L3rEoybSdIg?BS3%Ey+|{f}(v|OwF|XhKaj%9u zcJpLYxeD#qe9&W*pz)&elOI}*1)~S=ZoH~}sI}?k+`;@&Xu64aHETX^!o+tI*8jNw z##8s)S~RPhNWW9pPYqr9*~i+T*cr;_Z)rW&l;X+waOmhe#$ywv7?j)=!4oJVQ7-^j zzZyUhT9pGwJ}7im^eN_rT18g&c)(gztnTxle!g=x^)*)%S_-ewL>?4&gzks4M?6BS zM(N9YT24*ayz2x1g-hmSw?aEhX5LbWC!5AqXfvP-ir`UTDF>esNG(wG9!?j(h(#U- zCyjFlGbnWKFYjn>z%E&x%cs7r3GBV^&%$H%b?=sZut`Ptr@t-;g7*{x+Mj)3 zd9oQ?g^>IPihCJ8FUBoU9U@E~iv&vnMF?1okqE-95_3->vbSWWjzp>u?2|@qurfXv zs6_xX5-NQM41~WR=vVbf64r0y9fmb|EC{CgG9W7DA^e~ zhZN+iDIT^UUOp|EBT)!;g>eJ=Zg1D)-$qHPy;8b|pNaLr(jwx?*150yR2xy@dwprq za)&3DnLXG&*>c7)-qeyO+r(8-lug4eF;PuN^?H0NN)w`Nqe!kM+$I?QGNY=?Fzd?E zLXa*ivvo0V>QAUs{~ZkIZ}-ODsq)T`x8qBrE}fp}-X*oQJAW(ueIqwj*co&W{21{~ z-PH16-?*ncnlp~HxOe{gXwiLBo$M{L6L|Kwy7R=v|I86zADz4C`|>4uvP;~X>QfM$ zgxDo42~E&_p*WX`ptAsqz#}D3MiK&au|Tr7s0+PT@4n%#OU>e@UpYRq)t0_?VF|ly zF&FBL|M)?3z={$rU%c+K`!l=0Xr>UaEuQQOA0o`qG!2EhF&b0R2IOQ?UWy57braQ- zB^#oG%-*sgVKg9|x;t=q7zlZ=UgpA~A~hGaNfCRZSRf7s>$eG-YD(6G+1JGSfHWo# zvbSi(*fA+7HOt(soWRjNdV2JGyFN)6_s~5{f81K~1!{wp6|zkd1RypW-)MY61P++Y z5TSs0a1h$a7!@TEyiq7BXv&fx*h|oBI(N(N>#q;5Y;-}2>-XG}b8Bw7b0JT5k*^N$ zu9_NnyG6f>I`t-s`dO5Df?~%Ael)Jx+%4+iz5Av-G5_ld32Tb19lLku-!JlHg}HZK z(c#@d@jkDB(j(x5@RIA(3Sd~UL?m+Q`JcPxJn*zozUS!%v19fuNnHEBH0b>A4S#fQ zoPAdhU;omt9wl)=i{Fb>?K7KROZNCUt8~$NiNj{s8`JHTkuNI?2Rrf?CY>4nXUFOK zsItfY*-)&k&5Yoji}qnR-Z^-(>$tdr-4$VuFuco%49AFq>`;VEQ6jvA+O39??==|Q z-Q%ilU>h;0xo4gC=t9Up`~L%gvF7l$%tXV0|(=~TF^ON)RW?O>$4hu z@q5ConU~HbKHtzJ07xzfOIDxoR*K(z=I1D5Y*jKX+VbZ=IlKD##>=!V*G)LJad^|Z zj+}iEvr;hjyu52E!9^9pH7Ew-!FBGuveHgld0Cyse6vk`ukX{Bad`=Vb9CEmZDrpF$G4MDWBJiIk899 zRfKAz6eNPPQPLM=WWmUX0vTRdmB?y%VKF8QSXnVH21uC2G|2FKQCk$QG^`R7xMGOm zPzwl{9~a#45-A3(J`o12tT-0~SoRV4ZOL9lFH;;)02OTz@gaBwlpOb?(t3JxUOo;l z*~Nghi;!`{-YCMeaZ+k1u|90Yh2JsljM(CFdBVTn&OKf`ZezEjcPLvoKjXG|l)8Ea zJeNODR;u{b1L(un_h@`U1Uc>m0<^GzMGh;9U<4%OPk^1(i{*=^*oj(Z@1*t!G7cYO zo+tLJ`*C?}e1>!FnLV#O_c>3-2Sm{&B(5o-rS(dJPX`An5^E6A2$DMlBpV(sAQ@bK zIRb<_=ibsqc91oXjdh@%35l%GU~4lF8m#OFu6oFbWf4U@zKElj#Q@%isL6pe1XD)B zyC~@SY7ld}NdZ6MD4*>cUHzRCi+aCSZ{bV5{~D|BnS|X7k-XV}4yQ{#*I3@hZSmT_kqez6f$5$oT?M#qRIg&u)Cxhdm}PoVY$90DJ`W6KWN^}wyC+ev zLz}Hip}+8jrveVX?){waJp6dF(p)Um08|K0UvQF8<#o7sOe{N884-~_pT{4>A`h%& zghgVWVDV7g$Y-A2l^nmKzPPF8&YHgy7Oboc9}6e~vYUNi{Kd?`kEu7}3k)QE%N`UW zQLJmt-k>TAJ+l3R3C)3#lEW%8CS z==`_)aEWa86-3#31=X{PxiF?t!aOc#*wOo*%GQLd10zW zA~NFq1rZf9FwCRM3F4*;QOS@7DM`W^=^GGX4L3HLdMaq8y5_nRDRxT|u)?4+LmOkMNh(-0LR`D0&~xvypC8xsc&Y&QMr zJE9(T z1RE8Ia#c|f^U-eUTppzv4=ah(y1ADUw~TB5Ux_#B+r=%NzOt(197n&i8xLomthKul z`+GE+(mjaAr}#v?X2A#m6NBj0OjYor#s=I6!PuF6v1dA$N7xwBldDG+9;MH#R`UFs zv4!?KeWrdziVdr4)CMbStx&5=OKO9awcuia+}VJHH!3L1EfrY|n0*R}FAJdfCqR&` zLR7@4L2}Qef*O_@l)Otnu)C@H#c-g9%}^X_3unf?C7PmQRU#WR&5jeQk6(%q%5 zxBH>x1Z9Gtt+?ggM&I>Yf5MShK6$20RJ--s$nG1uE_kh6RYJs#3hn3Ks4ey!JXuS3 zBlh=b9Eo8FHS;i4L17OR`jHfrG4a7oCCZ{73{F96w0yC5I+sU}p7hCWr4~JRuh6l?QL>BObO-@Ku5<(T_;GCRrL zIWUBQi3nGaL}6JhAU6_8)m{;BA!f^o5J57xcTc5B=@l*l91tJK7tKY4IJy2hR~kVT0#R z&Och7lg#HWoWh0{7G+*M+8<@ha~wk;T6p^ld)JL>MQ z{XH5-`pL2*BK8LrG(CPr2dg)VOe>;@(%Rr)4KnzGfV)GNR8XJg^74e%5mwu-Jvr+W z=VIvwR*d@OQ2(d4Xp54U*BCRR;=K@MdIRZq-c*?GdHA`Jv_R*7**IvF@XHxevuUt5M zNT42(eAxO%Tb7z#>a1z-=r^;Q?_S}^D;KK&Px5VJ;+OWD_i^P*&ty6K=beKmvm2t5 z&=!JJrod-dO%MwLo&k>^t76pDgeOTyzMAOIyZn*tr3+9;*rk=DgLX%le|W(1WZ$_P z34wu#4Fj|uNEbk~svpHNP?<+oRPZL^*+XP9<6q40Q2CsI!Dib~a34u(D%ZFigSJbrF^`k6|He4HRieqwr{; z>qSDK$1rS@V{pvO=b?w4Rk(*9-5OUvY4)f3sN33fO8)yD`&pqrmzvoBp`+c$#*Tfc zc%hEB-#LbUAo-yRYpd_6^?^FG_WlRTtvKN)DBN(+e(sHqVb8&n9d|cke~-qIKv2S~ z4UZTK6oRYO0DFO-%#pBUtDrQqpSH9aenBW0s~qlrxPhSWJYadUFWilUz%T?v4S|{r zLl3xFp;4$)06HOAhkYNO!r;@EW@-3e0E5*g0)v%($pu5E!dDvVq@$cM0uxOQ>>dcJ zvkVDE_h6M`=J5XuU^E=n?%^NK-CSqk%{L@HRc*@$1O_YniVKD+!oLH;HGtuv3Is@- zC4Ov=B6^ToE@zLJG54lDr0VW5=5W=I#@8xzt2XJtU2pH+Q2J;3ojSK+XWKSs#ZT%D z{wC_rLygbu}b0Ymb0JpN&B-n^JFL7jfAlA2D>f&--(-yRVUA!|EDg!^*yKPEIEZVS}`sfPq3&c{K0K?H$=fvSYe2$Y9<38ZgYb4>xbS@5t0B$S;GgSlwsD>`% z@dn$m0`5m0R68K;q@!F^r+JS9&wfSy%nlB$t$}c0Wd;`q#Ul$ISwffbK%+jIi~_Tu zzDC@v1sZil;*yuzQbvqDgx3Y-889vYH~`*pcgiN zvIidBu+KI981Zv`e&ez)cC`F1X508*XRI7KYrp%UalF9v9F&|hX2BmHjL^2!Ew=8( z`ZfCUWU1Wy=trqLQM6FNKmrFG0)S1!uY+3%d}r{*$w8a9>$%Q5w=bdYj8$~~JXa;j zd2TwA7yfL(&L1DSPFr^OFB`^1{m?hFTaMie@y@}M_2S~D-(hU7(ACQXIh`etc!2`c|D1rtY9F=1%3k1tguGLqAMQ=B zA)szGR_ox)wYs@gB847uh;w=j(9Fg>KD&FNAg$wTjT0} z^rp4$rj`v3-=f}_o#BW*2ere>`fzch3LFL^u)F~f7Wohz9{@=WWL`TqOU#?13-ksG zZ*O)#X{^5*2ihA?F`VO^ecYcszQOOEfFcHv)OgnghVJf)>h9h<;$x36` zRRV#*%KCD_(EVNyaxIWspd(@2)MZTvWwc@_k`HVFmcpIo=KYkPw`?O#$!v^aXSp}f z0ko0BH!Fgh7@!mJ`q`IiRDA6VimSII{wVS*Q$lN=$me2@`5vFcUIbl(4ooh%&uh^gGXP z!;`(w1qV!JlCH`~l*Q^yq@-a9jwZzi@)#5+GQ|ww6wJs+;IPIv>U<=+oG#T(?b3~M zOK9Pii3ujNrCNiWEY;4;S@G|Y=5gATsyoiheU(q#+AdOuu#uDczgvH;Uvc;(bKAIS zFE#vd`&6E+m%aDZf6}xaMJ0%^1yxoMS}mxUG{W{0kdU^BsC~&SL@>m6@6jtYs!2-Q z?masur*umTVPI!U+tEq)Y5xBP86TQ^@qv@kzNdB=OG~BthWvC?cQliF`L;N4(wYQ+ z+?;L)N58c3%{%GrB>!gL-THlnM#uD@bzAZK%#XJ^^6SPf>Q!rF&zK3te(Bk}W}^|A zX@qkOdk)@tpQoLjErc#u+Yo7JS+L=t8XP>beo)KO3fKgZg^u?g&2~aLlmIV?9t&$h zB|td+p-<{Gt7djT-8;Fy^KJr9_LA$Ev_Tk^uo2>nI2zQzw0soWD+)dnZZ-`u4<6GW zmi8hKgGlH?-Ktl-?Z>mqBz28{z2)sIww7*3uLT>W>(`9iIrPij=89ME>A!k?r5TR= z(x25EO#gaU{Fuqh-rx0U^aw{DDXQ#w2~}3sml}7rkUCP43Pk_H&4RLWDA)?d9#BA& zksPcSR5y&?p!xecbFPs-dFqjsim_l*8?5YQ_enxvpw_6RA{7Y)D<04aA{-OtS5<{- zu_99XDj50u`f^`qPQYL_jM`vjueeVV0>eZQxQcqKh*I?c3q|mw%oZ3~k$2;VzlkNn z$ZvZ=PQYMCdTN7}g;Es=ln@w5#zR#g(dX4L;RCNBikb*m@}lTBN>i%H)T2?mar?Gi zlcFRe{L3(J{J7MO1C7c)Gvf4xI&%(^^i;*XL)W?e2=mDUn5vF^ZI2}hSR8}h zN)9OgAhBs)j68V<2CHEN1}l4!3x*>5v7#^#x&{Jw$x@Ik4GIRhwnb7DJ?|`)c?U*` z9_MCM{_Kmy*Tzo#@t@CsK0#oxvRAoaP~l)yh@=XB7P(LYB4YYHDtuokD1`^b&Jk{q z(xqG5ls@4Ho?Xs7(m98F+2F{s`V7tEDFKo;>cylARWIBg_qsmw`kT#`U#^_)$oHII zbK~DhTD`3c8eFXP=@-8^a<%CzRdZQ@tSPftwK- zVqU}Nvn;r)M9j`TV89|PMzf?YojRwLQ4PKM`h~l$?0`)#knHOpt2^P&OdX`&vv-3h z>qk2~TL=*t!~=c_b}1cX1G9Lxnll2f&Jm!9F3FYn%ZlRljHNT1`K zjA4xqE-SwNJCm-Sx^^PzwJvA+Ce)q3Z-0-SwJX_UF3Fcn^hz6+l~>o7YCrP1wX2_X z_Ky@!_Po?KD|?L^ceW6m0 z(?jbms`-7(jioPy%8OFxIvhUK;_f0#>#Q62uvB=_!mp`sBp*C;Q?>pZC)J;{YEIMs zBf8pD;w1m)$F~2icztu+pl=r@mS5L)kF$TI;}Lsa-n9&)#+@zn2x2h8w9|*e0)EXe z`awy9C=KFeLpq{{DQKRp|Ff@ktj0Ju!|99rlLt0W_PYC^5Euagr1i+M^I`^$X;uJ^ zVcF7Q6Hs(eV}b#Uj3EU(9z_ZUt6@B?8_op-OvV-}C)riqU2`iJT)FoYO7tV06Q(M-i>r_Kil=qQHdoE@g$%Ly>lXS%$3W#_i~>cZK5#+O^%y#uwu%4{k=2agaI z3TRu93Jb;(Kd7FN{BB|z>;(m*EF+iC2-x)Tjg#6Vb+~}m`<++MU$NkHFJsO#2`gS( zQS1nHf%VRS(5Jm@_IbNvZ(VwU!;_3-jpd+i=j*E&|8@cNO` zSK=qlIb3Jg6Nf{_qaAyf&aNn4jGunRZ1L=(jrKD~`$q~VdtPdTl}&*xw1wbA5gjn? zK&dQC5GY#`(@N9`#tcd~1mkK6vw~gkv$~R%Zn0qVZor!%B=98!1|kTM0H-3kL&N$a zfZ-km3v?JVRnrndzLRJ3>+CN!A_arhFam>>P33|i>M);K&PK$fK65>R+b6i{eNrEv$Tq@tP6>wUUL z+cJ$$>co;opFMcTxfkmXso4E+p$Eom^gGE*J$Pj4*S%K9Pv2F1>ECbkT<6G(UaGb~ zb@C2lamPJHuf+Fz)saU!?y%?OUCV50+}T2p8W!|es`vvaR1P8;jZj5CGJ;KH1yuvD z`cMjX++npPt8s?~n|A}|I6%;68W;lBCx}o3CP)E9=|mXX@J_Sf**B4&op<9-_FwRk zg28GSfx*h=a=|bSELa6(RC!cHZ3p01ql&9!`aq(IPrMe^^^tAh<-xk1ygg2|sB=;FXJ{SkNU1N84jb$o zn%ZDxwxiBDNeB;2hc#6PDA>f+($zYd-|->hsR!90C>cOORgwo}DTX(1mzi15e(6H9>iw~1uZ`&I>1eLlzP>@}p1Z13 z?^&50z(_r(E!2CYD}tgL0mU%wpzI4$7r}riD5ijTaWAL}?A|v@>e;JnnlmRu8Hw$= zY9(|}?rz?EsqJfKi|j4uRr6+BSn=xFSX6e##7_Y7D81Kk-mp`7rf(% zt44&k*^g)!1Usrg6?HnvWS6#5$S1B0o>pX~SuDoX1}n4ej2SSn`~gqEuUUvXfJG3Q zdjJKL6EYw{F(5S<1)b*jyM{4f^@*or6P^CkXGjkabBM7R#!%$O`jNf^BQ*Gl5N?O^ z&$=bCtWDQ22J8S$7_hQYTnq&8C;E^Nj4(`;^Z_L_O8!6#Q1%E>U|uVjoRJ~SHy?+W zZzmObaNDP=>Mc6;!;gP8Z!c3XsC$o`uQc_hu9xZ$T2cO~?@J_x0twDcUNQ3dX(!G8 z{uy5nlOF!d*+0_Zg*`8wla-C8#+@ysRsl1h5$7JJeHvovB;7)AFG#?UECxfn!G`(f zqgt^lk=5|RV$8$c=HknU0Tz?UhZ8_M2sU~UxhN)>7z6M-m^wmQ*f^(a7z0+H2m@9& z*6BZehV%e=lHe)@3zH6#Dp+2?jR#6_%moo}f+*);ph=p!^BTl}&1@y#yuA_OZWe_* zMqkW?vSkORwh?E&{vBw&@T>jf5=YJOJoR_UUY(pU1G*xITbaU@DvTfdbED*C#(<*( z_ileZsJ z3z029RJvF%r9`L1p*Nn`|K0r?wo`jfo3szR@!I0anzwj9OIJjfkFatAzN0k6Gw0jFDXN+Qx}+jb4b5oLIu za&PV8JTo+iv!PT3o`nDF_?$GV%}w8J8GLc2y`Uy}-`&6VZZPKlxV48@9lvSuS-WP78!S5B zz46Y$lht-N5<(odICzc}3pJY!!GhZPeDH#(h$_)#*=GhRUh;iiL)Xu0jQjH4{ipA= zKZ_?%_L#eo5C#~ziSP%hYZ8%Q%dl&Mo)@*3zAC@xi z1l}ZJDdPx%i02FV|IUer9h~W+J@`9%v#-gb>f?UJ~(06 z)Tit`W0I#x{TrizJtvTQcB!OGTf zu@Fsop=1=i0$V#OG~tm_6kP=q6HGkFyV0)wf~(Zm%dJ<>zel|syWG1_Ex94-7oKbd zxBswig6s}!aFj++M1*uB`vK9)nt+-laMqc5Sa6jVi5>Y>S@4U!(IvYt`>HtfLH)eW z-2T;~**_SguIqoO*1gFGd9tMQ}&z$UK90R{|Xw`6L5~x&f`Mh&qh4 zo=tm|gk8^V&(%eVGoPe>{IOt8!dFi`mat*;LxU^Lt1}lO``K5c|B7p|bWi+>iK`Yq za?5->>W}t6(or0{;9wDL*`-cTbo;kkw#HQU9K7?c{tER_@Y_q!& z`+GEwlza$mR1n`sIs66|cz#4JW08loAKAV<1?`}rp0po1=$#u5wY4S|opiIfb=jkY z0LcfeeQ8L1{Z87fjTL^XVhWEr@`eMyeK&qX``9;bIrY-*t>!g#FJ$QYSxs?YzPtbQorf_` z_O`o`5C&MsV3CZ>cQ`=dr~r*H-s+giqo9l5LV*PvgM4?;5c zMnLsal+jX6KbEsHq9zfS?MEIla?=ZBA(Imf*nykcU}fvM7@(F4>a2*C7lt*mrFcPM zt08nvM*tV5G8&(UB@b;Vq}uLx*qTKN+fsy9_1-)rt=Rk8toHOfb+1Fiq(SvtPSajb zs`v8tQhO>nayjX7&-e?UsjtNzSlqc*^=ghh(&2?YFP)Q>ZQw#GgK)(3Lak7I9wnnt zHW;2z*nE8on1Yq7M4SaOys#?azI?*Tz40*S$u_zhvA;*78JM=Q8W2IhB1;xx^T9-l z0T%CeLqpQBCm$ zpzF^r2CSWg?yS94#J|MT*svE0!>4pdDy5Z@+^xwA$w9{bOiF0nj3dL^P5J@Hi0vlD zcXgam|IQwD-s;nH>5cuKx!r9yp{P*W$nd)Ot{*;1Dtos+eA$J6qx?sH;mH~}mIpe> zzNyq@KL{H^(G128aOL@QO-7s<>PG~S(Jf)w6TFf6LbY#S5?vAgzqIzd-FJ={Tz5)J zr>AQ)zwW#@VRD(&s|YIi!1b1vG4-FWBV$r^I;gsakr*iA%SA^#a8gkSarWLd)s z8f1i`C+|3~vyR)Nj`9>ED==7KsSQ@vhzo{-WCFy=K))o^AOMji0y-@bIX#M~z{6Y6 zq4YTcgViQ#gOxSrf&tPNQ0XIl9)!)HN;Oo!1jm9ZAz}}{9@Gz~qtZ;vA)=sr!`&bE zV1Prp8x0cK%PYtU7_7gC+F)f(xL_z$#TwyKUO0)7#spSVJTu5C0F9!K0KH%wS-w!} zJLvLk?CxQwWYPLE3Ow5%Z&dsA&kS+hZ z;(`^u6EA4vTNc{==)&*!(RrM6(LU@(ZL#Oz$)4ci>4&q*K;*0!JhAYgB3A?HQAj2f zJTPLRt}wIg%RS}F{;0EX&EAi5J`h_lZxcm1c2ekEVZEP zD^f=y1%uTlYJ-(EMlC-GfpN(%MFj!f0E*KP^VrWP+2%tn5mVze2%={)C>qxNGkw%!U;PTvyj&>da zGRnoRpR#uNQ!m5}Y}ESF{4%L_=xJtS20MQx_ny7ckY5kc@m+d!?Gv7BJO*utovR+i zj}gyRn?G{h%28t;ux2!``t9cr>@VhiJvjp@ucJKKdhXrB;|tO+4U9WJlv&1*X^(dsSIzP3#J+N`!S5ZVC@!8?I}gHcXb|K#Z@ z{gl~lrr!x6)@I9-ZQ!DYfH~AT0y89X)yOCYng|&qf?rdSa|EljJpg3#sx4^L=#9!6 z;t7@Ppf>W$j@7;^UoK`!%3GIS@ZWNrP-A5qxu_}N6tVoEmQ#VBDtl427<#7!0-EH5 zb2NKtC^>?T`sUu!sSw5R%3Gp-f4$cWbtgSiY4vB{7H&*CX9fm4QrzIQo}D5aq#e0C zPIzxWeCp^gMdDV^_+!b&l*=CXI6>W@jn_?{Y>zXr&_VXW(fFdM9=``uNsI}IBL+bZ z!lnclGs0F_Pd9k{vd96lfZ|bR{J`*Z@v=<;=^?|{NwWp(J8}?H}2b? zV0Mii!;@X&-h98u2Ld*{A5aYxY3xMUB7+$bDa!`(6;L~nTXn^p&?9`Jh`mSibm=jD>ywOX_fEkI8gz!`)x!7`825`&YOSp+qR= z!vQ~1HUh}!LC_Zh-C!PvTVD!DvXL>^w9wylR&37w%2BXs2{fQ5cTY`8?rJyY{F5Qt zl6SYWf`f&S+F)guxp06|L^iPMM0lkRn+@3eFgpe$s^Sw&_|x(#=7Zqqn3R;-x_yd+ zg#DQ-a6~m7QM2ZR!RDZpV@ju^u|9%>l@%)LIWyQ6$02!>|w6?XbV5(*(LfSv>@7r5oxsD=W;s>xlY7QA{5^?;sD?O%3H`OcjZ^ zDDDB$2g{rP0Uu6ZDd3nbG~nDg>fdk8_n!Z&=K91nkBoZ1V$z9C5CzBD4Xq|m+5J%b zTQ#14XMDftx{kc>19ktotHQcE!zLDe#apxbzuCc+JqPc+*Ku(b4Xje&G(#aUu=I;~ zE1}*fo-auUM$W%@uTtmnyrh~KK(f~3~|+l@C&oi{s$Pid9v%d z5Fyt+NHAg`{@4Jov8d{PDWLlU7S?-yp`Zgn?4FeMOuNu@Y29UY{~L3#R?Bt-1j!ft z^U?|L>F?{We`>!ja#;vdp3B|8~}wPx$ETrX@StsqVCYhKG?32($6d%afJh zq6!0t9xy>CMse*(p%*OyWD}H1ffXQD(Du9}-#xYV^)s5{Jm@?aXnz)Co~$Gn1FUx~ ziY)>~zbqOE;FARrwgW#>3VoVtvJ}1f6w#g&3|M`lHdt9HE(WMYgzBQ05Bp33X(WD8 z!Lx;wN;s!{V3!D{RHnHdu3-$=ftxU3Wkt9cAnr#;Zn6Z@9vWOEtmRQnP18*j%?xPZ zttOjUL1pSvHx_R>IrH0>6Rml(>h~MkdfFg}?BQkgdnZ~BsVLQ-7A=n&^>Y0Ej{JQ5 zh&P8H{=V)kq1XK(zkw-ebu;=AnOHnSQFr$j7eI;x$e}AlWd&-ZmISX&PFdD6B<4xgsvTbDY za5h^NqVX5J&H}=_VI_l6%ZmxWy*6AoLqD&)77H-v%zN*x_vXfZ(9x04n)lI`m8&+@pS2_Ye4mfMnV+4phdl?i&&sxNLG@v{5e!5- zf?v=yP1WbaGbSl;^m{g1ym1UG2~z{B$)2JA`%W_QQ_{ulmH#UDd(R)SqYv_lEnCj*NJsyK}?Z z-pgN(sXwOeUFBw6f2e_bqU($*0W|!_I z-I#xWc>lM~PtnEG@6JB-H@i{ie`^12ncr9JP?z4`cGI1g9~jJ&MY#{O8;pho*{m9> zGD==#B%<7aAGGOIzze}~vZWZ3Wvjj`A|xLHsfEkCsm8`L&7*xWW5(3kmzuKhZR$gI z0O@md=yye0G%*J4So!JBAKH{9Kv-F2YRuU}fatP;R547!gg`(?o|uVRvP3^h43Z*9 zc(`FOebY1_nDQM8Z4OCbL!S z?^wlz9TpDZs=^KniTE+%VWCUusmY~ZE^KXmx<`D`t^QBk!@||^r;vh%2e%#nrLk;8 z;{o&dby2+yV*Ik^zU$q-{z zT>1*GdH5!9u9Jp^1J87-)Ni;{e_QO#8D-m^Uj`P`fFMMaVu+E|112gNM2?sv=m7=)iHKdt%&07OGP?9kZQH$lQj_G^ zl;mEn5@z`Xi`4q|x*uM8EM{w6U-chKeNFGnOkrW4hlqlo8UUNH@5xLbh(Wllunz=T zEFyj&j`w@MNz=LG)P?%idb>uB`qBMBIJc8GVDMxgI4@QQy+U;VVZzl>o((Qw!6%~T zffuFK10v$5kiZV!d%-q{A#BQ_qHmoS>#*=Ebf=TNVcqG6vk(34-dHV27cASjSG&}d zw(V2H&zDAH>(u;cPZ`qz4vi7wX_i_Np@MGP;Iok`EE|rUqUtk9u`_P%!f)-sn!(PuCvq-qY{Y zd3NOB$=>Dy0+s@V6e6Bb#x#;b%D|W72R|K3TB~3`4(7-e%zTMAx>JX<0|-0uBtTf% z4lW?%P6iz-!srD*V(mmQ2!U%UU`U9&0|T(9faXgyGO){ptiWJL271TY8x0Xn+op7B z+pcR;VseM19F7h<&`j9TVIqDE`HiWD)SaUxQ6Q zAZ@kr|Dxl)Zb<2tqHn&t%9GOHzg^(TD%g8p{l`|9X#631uq-kJ6C_aZZJ-8@Dw!4> z=Mv4B{efVvp6h+UmTb*^3*_Uts+FV4%Nze3QfJo1s0rWIc{<*C_ffw*B|rUo3HcKnsJ@@24)e|Q-HqZ2YHYrQ4 zN!~elvWj#9XA9w}p;V`Cfkq#7%QY;xQM#N$E=812l;8{qTHgxJ`#~LHmBqexrz6ZK z?auc7jZOytnu7R4+ZIu9-jAGs!DKetzB-nwtw z^%rh?liFZqQSOt3G{a}WaEIItuc-&LfJpR?mgs{?2K1x`@~BxWRo)Fdbb0RKWp4v9 zx=QT0_^E0Y@2#=($i86@BdO2sZrHYT2Yvb6E!`gS412_p-&?k))$glG3G*N8aNyob z?aEOXvwEV~a}aKY$4q6TK4G%5rpl`!V<;+mFgENQUN-9A^ z6iK>7;E{Z(@9dICO2*fJZPmD&VrTyJjUzwvtu>(5e~seT|8zX@-P-GZq4PNBqJ7wn zcMhKHe)oZPgVB&6AVxy*C9vEh7Fh_00`W*8;7HLe6_cP~lvvuBl!vxN_vO*`vr3T_ z1}vUDjH|d$62idrn7WE=b2we`UV~#_)Fb1sd5C*L50WJn8 z>}N=bk;2p$WexxYOzlK+4_FXCSx~{qk>~-tXpGdq5_V-si;=J^!_N3I;+5gM{eKx{ zoq8~F+~qF^rXDYO+PyM#T;jxB*=$+TzCgwK2@AHim{q-||7M=-QTKBZQfbUIkSZsD zBp=~Qng|jpFyx{F7Luhz)j|bJO6fFvC$;aDnna0zNxd_v*|#1>R_va(xvw`(n)$bM z{xco>mY>k;Dc|4+jUk`ZzPr$gBEQn%bp7uBkj%Xi042+ue|^zTf1RO+QjKC#hZ;Ot zBX=Wdpy(bX8dF&?6x~Czj{ryz9f*_`2~|;%T}f%z^;5cZ>e4;ULc+d4a-WNw*3640 zcRBUPuE_}#%huJ_dbW3S9BI_K_eVc^{whrOY_ z75(K0Pu4xVJ3HX9ZSmS~!Us>p49!Bm890DYZP_w)I3++ojCnuiD}i8%-E>^!`BVpm zcmLfzAh_Hc4?3Q#vAYrbdo-HSVN*qD4(zH}`ym}wKxQgvJ1M>z<+=(eqmnbx?8w z!}tHZ`{S0*J?bqx+3k*lM)iTz1}kgJg~8ATpJ`%TK?oempdv@v2Pzv)!-7zjP-;dJUrP-t_~o* z1Oe8dEkadk85NUd@ERKyDmsXW9`pjGskmDab3tJlYuYVhok9@GXa3scwu zL}+ANB|`w{!4VAVLCtY3VBjwSm8Y)#41enD9Up&kq3=B<%moiGS$AS!$?iNEzp#TB zl+a*4LTzA_H&KufYoPQvJiK7ZhWQ=E4agG|51N!NuF_hC_CQFRdx#54uKpYLhje?T z|Kp1L&+Lo_6?c^FT>Yc>z5Yutow>k zGV%Y0)t(dD@NM-LJo8ndNzat;=~lk#`=wuoFRvCiEYTX(`P?Zxu#6Bn*S&9ry>FK> zx4ipQThEFrO{guBzx3Z<-*-CwYu%M=`yKwK!i^goIr}hXbr;z4QroO7OsNM2JnWVj z0JEclIT1=d_)&Nh5h+MYvrzHeHs|KMQH`fXSz*9p%)^~u>H&4>RKI|9GD#3&S_@!A zgBc0TmYOKT$Q_LB&Ud3)PB38giP~UgVM;w%Dk*`2ksT>hD8dR-Cs9Ev3qm(_B(^YS z{X8@*I`>({wZAaC;+y4`@6#4sO4{~#*}xHcK4{AcHtax8ZLl(a2?(DL#zqmWhvaHU zu#yGt2bf_|0s=5eqQ5{h|EU{e?jHTp4@z{*dh_J4Cl@|b&VlHwi|;NR6MLlYtf@0! zD*0x)KOOl~cb2$4;ir?@vd26&$6FesdngJYcYKAA4Pj*8VVM%NoC`_J)e$>inZqbQtQ!$Kdnx7FDsl$P7Kb< zTAp~aan1|}`v(mT(fESQS}#UHWUV9NMS?$y42)_(3dlkLg$sg({nCf<gp?|_*lx=nQgje@|Xg{pF-;Aq{Slxds`s?h6 zZ~N7lzG!G%w@=Hw!c%t@XJzLTJlRyPy5n6h>J|zadPG$O!vF$Tk?I9TP+1lQ6td*p z+5A*@8gbc)9z>a1k?D5=Ah~+K#do%95j(lAzN!7DRv++Wd{7X|;6qF&g6}K|#5JJ( zkX6$Yzy!$vb*@-IVZ0jpWW6tS>3l}7J752F()ytZ4^m$XU;UrHvs<>+S_-e$QBa)R zRqI)8;@?`^`Du0b{?>z*?3n#1Ppx^q<;kXT)f$78NAM^J!3KYQfChAsQ|sVwMX(@D zdO@Dff*Zwosz|pkvs+2O69A)%HfiG+@Z)bnJU zxK9F#&xt7eZF)72h*U)dJUk{mrzrb~K(|0Z&MXWe11C?8!Vu`Ps@fwJ^~T<=(7%oX z(3FM^vv7WQ_MyMojW9U$Qsbk~*8eeaX6-|@Dxdwm22Zwyiwn)|G$8=@DVA)g|A^&^ zW*8tk#(NJ&OTV4rYIRLcPO;LZa^{YyoAN*`ehp)%%M{c$z4U{(#QsuOTeqS4%zAo% zIx5rWf_^6m&Q2OqX++24iF00hazl+?yZ_?JKIFmzGk_|n;JKwL&L98~B^_=L1usCE zf@UQx2KsZ0y$eL*J37?8qM4|IbU4^baPA#!~&$_sjH8Q3!Mg zcsiEdc<12B_7-s+X*U=RfrtQg*-#CHw)tQZ2hjpJq&=vXc1qKT&fx*i5al!ETO>l~UdljRQPsQrNivsdsWA%c30?wD<(m2g3`M&@Lt4#z3 zE8EWn1C?jtXjQPV#ME1|z?Y_>5N!ZVD@Ygw=QLv{_+J2HnD5zUPfl7H`_?^CUw69q zBOigm$~N%9@Sp+_VtP=T0!vMg4C+0YZNVPrQxN9_xl4PGJCr!Ge~*2Co+$k+M467u?0lsn9Y9-o{NK1o=cJS*)QfMQr1h!a?wO?asT6mR zNiEGD*JUz;>47H02DubPFT&1XJoqu<8O#S~&OUy4fx-W!-)`KDv#-7}cmsEgQW z^k(C;d9ugs7o2^_)!{fAe|X?igpGk#V_-hBECu{;2+#)sn1l?wK+yQmIJIp`TKr^& ziA(Okk$7>jj#g9OP7XY8G|?Ie4GL;Jk63O5!LzQBkpo^`4<-fWZywD57mS~( zZfsel^R4EvVlD5SF>Ur30)v%3!UY3#iy#A614zvPDYk|*LlF1kg`~@fR>q>)E)rt8 zh+gtx;2~fAH;0=odvxs5ge~9fd~|&AXCHD8Jac~9xM*9~7BK^^wAlZ{iT=$9J?gR4 zG^NnXwO=+i)|lS-^^L#T?<|tfPJG~w-Q8YLHx0gPzVc3?r?WHgu;-w5Sed{@6qJ>w zju;WIhB7iToFQ<^qGEUe26ter1)1dvcHm)EBddXj1(pZ4$OQwFf5|ei9>;@5c`vGk zJVZppgI&a9AoPs!loiCl6Db(1Ht{sf!v!NCc@&r=koBX2Q3slVlti%cqed%&yA3HA ztx&K7Po!Yft8+`U(xWe{E1tfvQH*_jBZ0xn9_4~zfQOIbQwa0H*gZo-E7{tDO=DN5CF;uj!Y3x|OR5$-<%XY1 z^{906vFwZ->@mD{YH=aKYDfd60)kX6)Zu~4!a%7Q4~P~_m@hF$v>z5B6ynasAzfdy zg9AmNr%lNl_DV|WBc^L41dJo)-D3wdXCL<`?SFCqeOl6m-Z2Y%{#~l%sSc0vWVN}V z;PKEr0;>5^p=i;AXfp)`EK%bPVVfvld9`M1+YViN^-M#?3I6XF?z*yr4DqZ>H3WNe z_a{9saCTIJHF8n!Sy>Hk?@c@q@Ks4(5%l8Vh*11+*@A0aK~-leq;9{S`;*3{z<_IkbH@5kwP z>SAZ@WIg?{Gx~z!W!pdGQy+HZi{2_S!t=(FdeeSu{^Fcl57`kn4$QOgU^TGesgTx#)I|8 zCs+8r{i^PB2tDd}*JZa%tybeZb?wy3o#s~U+|QBkf4Y60gw#?Alg%SZaG)y7o(HWf-!M6QCgEGm~7&M7ZY@CQ*md4uI;UOG1;!|@(uo3-uH5I z-#Me}&uLNpgKY7a#RhvEuX2JXfm*ze8E!djOhbI%l`wpIL3-|V+U_O#tknCU#!8p{kL!r~d^oSZyLOSlKo% z7;rC&D0e_^x*eK;l6g(WmeFaFz}Bgtdk$k*{|jLJ{#(DjEjp|WoLsnN(LUejiy$yq z8K1KkR0($UVqVzq;C=57t`doY%V|=P zDug==RpTIOf?dIG2`wEZq!Yy!6UD94yrD#_0wiW$SYUZz@8p7EvB1M*L7}kb5YQT% z>grsG9U)kYoubpkHhBCmfWc}Lfx*gRxL^p#+Hg2z6=~E+B{SJX7cwm+rz9fJ5|PE& z2T$rcuZ=73gGsQN|8)D%K@&`_#;~y`ItMG;#RUmB3-av{`$20!1(}HO=;HZ|d~^8h z%#!G>mR+~@w9T;vGMnghH=qw zaoNmwo@^iYf=ezt=$>2xD1gEJ1RseA)@(bXLAViQ)F0{>Jl@{Xi29^L=Pn5oW6KmE z(l>sdtN=}(b#(G%`?-K%&Sr~X*R0s)Xf{bTA%PHV{8nmWCxGQw2PEFAHWdM(M-1zI zPAVX5t|0-!$_{V=0ri0eygnANq9M-|r7*~EM-wxw{o!M)y4SU&k(OBf+B>7JopyT__ky&{EvSU=p+xC-7o|UZ#b3G1*?G z^FLRt(`BEgthrL5Y{t>OXT-M@MqP_9PFyuZ>p|+OhsvhT=~rf0)62<|`QUx-L%-9C z<4+OKKnp7Tt?0mRK_6j@S+gUZ0Bdx+2nW8X_pYkZCH(WY9lLk^SAZ}TQkr^WkR5wD zi%o2pE_8H{PmF^j30ThHBFJ^b>6M};7{MaK|>}k zesZ&8P3qI3%eP&-Qr^+EpfdQgc88iwsos&0@ML#*-@%iK^aaMDpRhRoLP-94c_E#HJ`vOF?f~pq?1+)<(Ua*Y^*UqlGzX*PZ@jOneJeE%Kgv`Gcd{ zhEo}z94&YI8=4(WeRb)#);t+GIdIU2r$0OKB#oZZK=ScRs&~!#e2O^qX0Q9}w=Ew| zDCkJwC-0!ou;0OxQP#Qpa6{`*Wwb>{9wA7N=y|W0kzECpdZ+~2dD=A%S^pAU#u$MxvcNH5o^y6 zQS{!eUR_&ckgDugjZ4{rcw3 zb@w4pMtv{chZ`So^e9-h;BjS>?RJw>&@6%l5jB*~Bhv%Dtg_=X@q1jxnUoZCCy@V& zjz##duy$}_tsC#ki`zE3938WpTEwLxa=C74H;4Zr*nDRFB~7SZEb<7+lY-Th$&VV% zXwbuNtG(TCJ(q3mPgt?C%5*a0aAV~JJ-=16fhN5S0_AmQ*rZ^cGiM-cjc+&H(_71+v>UewgR#lZ_YL`Jqg} zm~Xm$)@xh$vpiX#0Sx_gD~bT;n_{+u3kT^;*-K!5qc zLABa`I*l$rS7_ISoKb|F9sIEa7^8!{&r#3Hy^*;K03 zc)S~9q@S+>M!#{EUxqCiq%E#B_TxfVeLtmhurhjtxeqrODxU1flt+o9l@em?f zIL!+7=SVw>Ev@#}=BpRRd&Y8Q?2Mxs#g)gaA;7thHzL^!EUxHGx;jxxO_5DGdH^g+%+ zpJBfvA({K*ZfKo0*m4d1_%z7^+9A|mfEx|ue~M@_+hnuq<;@pQM-l^r1(wdi%KY6( z;1@R-h(3X27DTgVSYih@VQ5O=aJrB@ZKAbg>`fQ96!OMR$KEiBfx&7Mfx*fGxL{!R zXdj2izG_0Z63v2WtQDRg2R5aW2_-6C-h91^W(=FUC9=|~P14FDwj!V0K0J@k!OAGu z;Xd4&fm~M5$fH$--HvP-vsrb45rr7SK@IA(JDqRN=4&MeU!c;0dlApZ`>oqlt75GU z}Ie|TG0U)9n?jz z5TU?L0x^hFQ2w={NY%~PVhngft=c)>9eOx)Y_DU&vhxcH(Hu78zsM;+SNiPa=71SK ze_U@`F7G&!Ck3m^hci_#RrQyUn28%^^*(qh6Jf>5DA?sb+*l!H7HeqKsUvd_UE|>6 zKr2|}03c0THQB+|&u&!XEKVwHz6h%o&HC>BZu@g>^7^JN=KXVIHqC*s8aHKYo{jx~ z3K?~;;S;|VzuzReC#=}bS04HR9TXgo-F(&R*e%R+v@55lXjeak4insP&BeDQ810&d z7n2?B+CM*F%j)gltCLRN>o`Q7dM^HkD>F_=2R&MZ6Z@N zcfa_@tsI&SnGbr=n+m^@vuuvz>uWMb12mi% zG>twT-f#Tm%eLz11%<~qJr*d?>m*NG=jzx(%ZE$TAGYh)r%-Q`C%rH}!=8(G{(AIg zNCdAI)!?{e!yH|D|olY=(`ro{b(FBFJ>ZWz<*e(9RUap~~S6&5=-ZL|0 zyL;a06FoI+_Gu;4R-kjRve5Wn>&Al$Nx_2$N-h+Uf+z+&dFYBG!F_H=LrS}-x3JK; z@t8WVREQPt#)!xKF#V*h!LLE9-*u%am~NteL(=>2POf`Kiu@yJeVwykOGiGKOd#k$&<8mO?>l%h zcZD9E!;LHoyufXMjsyfQ3UjdwQ>|DRtDq%yXkeG7am78^Q+s_(6Jb>(F)&zQ=^U)A zCS>lz4FE z>Ey=Y1_PxTD*8~_Q4MK^hYt=uY#vP##jKnnhV-`|_H|>1E`S+N5dAk9RLo@h+W!UN_!Df5$)AWn5n4#a#I1I|4F)ZU9#r#A5ie0iGdw+m5Yz7v5=!}u`;?rp;2po_8+&jTHzW~ zHvGhsH8$X&pKc{^qEU;*iaP@T7tm5eR-8!ZLyXFT%twdK?A3)FP2<$p`7Jxn7YZJg zgX~&Q3tCdBXQS$v3D|!X$?ST{04C6EGxp?PqN^dp}H%#c_qJX#! zjIHo{n~@BPZ4vU3&;wLP`)rBR74~1$C}&^gCdr7AB;Lr7=E15!Vpy>F@i1*-;6Oj! zSjY}!xWTz#1*?>T_@xb9j+_VvI8kVzAxr+>tzlnJBg1zvh+1u1w@JcE?o|N!JpYz) zSz0#n{p#$xdgaqsxkKk*WjfCnfkB5G5VU);qYBbx#ZyEC?-rWFf?E`Y#5M`7V!;nX zb*x@m$*sp%S7`sv>AaQ9KAW@U4=#QD#s*_0M>Fhk`*z4N%cyJvMAkuHI z1xIt7&>H0rniBZ#z4!)z&PTN z#fk+Rr~)3+W(gTLSh$GDdeav#aZZ@jUe>+}7_2tYIapakE*N%`2(Of20d)#!Q><9g zp>YI40t#YrNWV_GtiPnKi&-eZN|qlR=2R@R6MhRcC0EHpu~ z%BU?>ok&W9>&`)|I!#klo86l$xeXX`OtJD6&P$zqhqrC8@B9~)^iU$Hbwc+_a#nJl zTE)OanP38X^QX_BC%BR;fRQEWlG})pC)*{LaruD#)sN2fA64jZC41WG;k=a`<6Rj`=w=jkvbYXY_?e70ZdIzNRUV{7|X)_E#NpMB8-yhx(UJ?YZemGmOu$=i;5e z6}{Ow+%SnIMY1R;FGh_93ffSuVY0}`*VDiRfjUwzx1{D>Zhh#+JeZ$6{CKkP_@8rQ zA)yN|MTihPL&BmB40oUeS49h&%HmJdEYR{Z1zJ+SjngL0CHE?L9J$=E+19Ia;EbR` zmu_Y%xQWie%9?TUaKcH8`$j~H3-#hc3A$Ob!JUolGgN%pY~EbR(e3hBIP~4Q`kVc> zUAxr&&rt<@jfEV|@cfW&Ev~-bLK*klguVx_f2`-Oki1Q^ioc(bE(Y{J|Bvu@%N!JU zi@oaxW@^%VSccHGvkUHS^4X}Mq}+AvcksTqIemd~xHU~hz6>}rP@91I4UnE8PaVlx z5^Bjb=$Xyi8ALo4N$j>`f#rc6W&lAy-CziKHlr*X6+!3RlqpJXcL`-m9^l4VX?@X1-gNZVUq?UEZJoEDM0}tn6aUhQ!axjX$!em0b@)5 zzC#NP*by*x!-vZ{4fel5=U`e|b7?@%`GqW1O>QZ+!o*p0!JAozT6)F68nXv!)O$H)?9$L$|C^Q0RzW8S%VvJUiS<8Z?SP6mzIV`@a)k{3_1YC%hT}8o9IUK00bv|&Ks1ZZrkRNG9bIKnjtk~@ zi^U8du8a+_Dk|Pw%k9T#*ByPN?j3r~ckGUAN1_8NPBhkXG{eiSm-{v>^eAM*oMS!w zHst)7CP(rPmnMC9(Q;pkIxw_kc*&J#4Eb;63T+R&b6%ZhojU#P#vNn=Au&~Bzk~O^ zZRiV(!;LILhZGz@xf2rXQS6RRwF+v#5XMISA!15i4zKc5Brz~pV0mD-HGrU>ZZMDt z4kBQID<(k}3dbN^D(nN)R+9Z7ugIVAR>vVehPmSAwVfeQdw8>g=|34p!EV3kKTT z;7&17?hjnnXzpjTS~MBF07#P;QO@K|r`%qQc=FI(SEeqR8$7PnjxSrrwAPnqq}B=D zE9_d1DwFhsJ{h}~s~6s-TicdN;fBbW)q`s;C-O5AT+h)yI6>Fk=Xf#MuDMIK%5O{C z-y!cz^Q7e5>hp`mU(Xp|m*b2MQ7gRv~Bm6FC zHi0Tpo9wcqaf_fQEE`p#UhPP?3S)maUHbw}9#j-#h7}rIx1L`=nod&iDObm}B_Q0Y zj%zr*X4W4j4<&q9StmM~ak%kOWt0`Gc60@m6&ZF!v>@3MPF=8pqtMNz{VNGK&bp>T z5-#O^eSCi2lQsv^28`|9JMFm8bUSGZoABSD;YXBT=9UgzRabGycm6Iwa!**X=7mE( z!3G+oFmd=m@|6(H?d{B_64V)+V&o;Sz9tj5?EG%E6VeCE5sF;gy-JwA2??GrrSH1s-Qv7m_G_ir8E z>bos(Wd4h*e_GFzb)`2OhZ`SogqT$g_?T>(ir!GDNw>lqi2w<>bxaP2cMZ&9jCX0y z&wI8$wIy`%(sw$%8@&H0O@XrfTPb&2*1g%rcR}ePJC-!Oag5|NEq!YA2Xn9n1_mPb zcnd$IE@2&7wn>=Fs`<0$&l3zKHumIy`U+=HaJ>?R7n8kS+0f=TPXx=*|SLLvD?fp zQ31CZdIh+gvVc^mG?aU$_6%>?y<2$PVuelaPmw<69r4X$RN;rdxe5l&e*X2B!>4P* zY4Dz|JiShnZ}d&AUMo682Cw^dLeCC^ER%UMU5)4ibhrU=hywZ@iSSdas4laK*yo`u z68hF4pVWnRP-(~wB6sZYX)Glg^g+*Nd_8T<^`XT3=cPo+rFdat@e;S4AGPw0x*WQ2 z()Zby(R-7Ehb`-~Jy*_8R#sUG-DxuV%09w_m7SoI8Alu*uoYOif$q*>wm3{0Dqle@ zOI?wWf`JZ$v7Was-Q%?5Upb?%q#edUjGr$-F%Z(9E|r{JFZ?gx#fLuZw&&D@=Jdv- zK(Q=W_DxagH>(q?jJdz!N{tT*3Rd zlc_=)l>WTvLT{)=3Stp|c=`|xLA;-=A$c-`Y>&7WR>e1j+Z&VYe_x-TzQ z3Fyp(P_Sr5r9W7;;M|bO5+Gb9+f8OKn!@H7Xa0vR8{d!oTV2s^V~@Q;?Zd{{6T0^F zI!(Upr~-#?oz5mrUg$e0+r0R#Arv}MAv{Ulj+T*i) zwdm94H1MQAv2)+IBRVgw8#I4Ny^+87zVbam!OBk2$&AAd1zcP<^b1!|YonLjn26w_F(co3?hq~cNNL_r&P2Nerq0!}X)$uNx5@5{m!m*i^}G;Bos z?+Op?rCkUH*$?qQ z>xKfU>;m;)hJ{2R(qb1-IgS2)W~6na*j|uRcfDxLb0)@GxQN*3@yPY!=uBseul{+} zBpN=wZoG&7j(@O5lDCfZke!GCX%<-p*eWE_VhYU{`j+A zohJP_I$+WLf!{@)yEB(3J4bIe4mTiZxGmbSRsdxSXfkaIQsQ79T!_%4s0gVq-ZPQ& zFjnW{&;AhKDIpDgFn&py&fn`b2uZVyX?yI^2JKizn^ z&`=u9Z4gLCVYmtW`kGBa0g(x$8`N&#MKVh&n@CF8JKAPa#D>V?(jr&ym4Ew|iZn*8 zkDUJC95n6C{?%$*FCX_?^zit97y zzIW#7=&~*3%?FDfS(2;XUfwE__eAB%e&Sws3#t~t+lXc|dU2D(j@~Nhw1W*5_EJa} z_M(a8t#lH*_VhYUzV(UpO@7{F_8Hyk==y5eRuAFHF4CKg!+jsvY;dcgG#y>_B!wz^ z(0RuJXDkH)U1m-6o{5acSWA{~x}}GIrr;g-%Ko8j*wBxL@9AEk*JPF=&u`+wm zwoF6DmKpbTS)S}Nz1cY2cvwL64>zN11#bbEmeF8AH90^!gARKNf?O`ItRg?fFdt=W zb#~W~JnFh;`F2(xd#yT+JSkAL>iqQmsO`_y*^%R$ce(gZHG+bbU80j2hZ_pwn|6TI z0vV!CR3{)2OS7Sf17*obE`W>LJF7@qK8H40vv1Y)rojt#_e!_A&6)@rx+g4>Vj`^x zn@BPW39ce(Ws{(ZoQM}+uQzgXrDtabROlTtA^iJ%qsDzVnr9;G;9DO)iSfyjeM;zZ z)1)rF24!5&lU>F8+=u(J3#c0anI!z~XuIP;?YT?C?h@%m4m%jOQJ~_zzzkJeMQ%Tv zZp5_=!HY9JDI{1&CmNEY3DV?eet)ZAj#W%z<%4 z+N;SVf}x*sU%~y0j`A{UOT4&>oR6`N9qOCm(9Gb_jpqt)UEM3|0UExidx2i3x!+ve zsdd(eZwKxeEkv&y>8Qe!{Y-B*4mTbuYJzPN+R>r_9qu>{trC7J=dEdo7NcYvl&|X`bvCdb4r30kNod5LLTCk*c9m z98rDM3G!H&PUL=|$V%|uI+8-wm7EtUw5|TYH@ah%^h*v8o<_s>bT`oJH1|pk`oCAF z$vXdW%@^PM_(`ubJlRcpvvIibuxk#ASTp`xc$tb?#9;f`XOZppzMg8w!&u znNS^KLw=!4#WDiaE{N$PdmW@{U@!5KH*zb+xp{=T{Z3GTU$nS->Y_;%tu%B`SR~Cz zdhkb5QB{H~$()GdCuk(U!q8stO0q$xd|?H~|EVl_7_h2Q_L7r$Mv}r9G2e8Fl$(}U zX6!$?Y<)n#dOX>0gq(4>FFcsv(8N{1UJ4zik%0?Z5ew?4TxPQig@!KKiz~@C7_9%q zOnL5vl~!kbFtvoK%Etp}{GP5py-t&#SGoJi73upa3+DWAw)5|;JMd(`(wmLL4G20K zfGC;DZ(RuNgX2hb35pD!ICv)!y|j7HNG`xwTW9ZEsBqbK>UiJm%i3iKSWm-G3Lb}# zXUv;>PC1`-SA7bcwHByCc(AftbTZ>`I*8O?sZ}PrT24xGz0eY9$dg*j5C!!6t74?GXAl zxn$Lhe&EP}^P-t-i_u;wKkA2Vxn0`4iUZ0v?qtqN6YzBX>2;cXrCpDXrW@B;iz>D3 z{r)$0&*#bhpf?+b8xT;aY9^%l;a&hM7t#RjNHqrmnk1q(6N(bNXC~KRtb@WYe;FF} zSlaYpV)goK-ycWAPYNEbhx~oc^5Iqg^^ey4^=xXfUW5lLyF({44mTd4?L{Gm4W&Jj z0_%VzbChXiCNK8Lh#x`WUArdikMvk~GRIR?do0eKpn0S< zQL@dW@0OOOmd~smFtlr?TtSbQd>r3ArjMNvXpqyS$#`zTw}H!V1uUu*oiX#(3ldLO z6kY=N;lAW{aIk6EGojlJ>;k&4Vtb9e4qR~12dQdo!KZiHqff?Yd%QLGS@C|Y{g&t7 zxM9&BZ+E8&c)ITNI!(UCxeog(4tefBvTmPB2M-N8#gi4|0^%~EaGm+ArD^d#646R7|Yh!6!lgM1BH@%UeFTKEMh@v)!=$_2`*$wqW2*hWLnZ-#gL{}c-QU`ab=Hb z57GDHh_A4*k{ACb_`*x?dijr+a>Xa&wS2{+ew+rWn2}idKDl0C@@cEJe)4&?>(KPHr1I+2_plQ92Wxf@> zsozqVwK{Qn}Dv3B8=Ekg}YrDd<*GPL=}S)}ONNx=()Lrbjt^!9q5WuRQB zV(H7=48AqNceNB1ShL!-PkFM^-0P0yS1b*%J|v&C8Ovon8%-`G3WKW#l)kaO8N6c| zW@BO*r`1_p=H4pht6tluIdf{dKRvM}_ez%i4}Mh__dZr}cTk?Md9pHGKx75U z(;Dgq&@vG1k`cJXKGP09G_V>`d6~|p;vLH{4HJ`ReqHZU_NzXN8;vTe+?z8PqC_nN zP2Tj$@YVO_vC6WQx1xV&S)c|_R+bA03TvFO4p<_9>KR0ob`d*Go2Y{ON^&SJo0lxZ zTuf?bV8OKCtUu*DD!OUOYBj1*!HGvO5??WR@JD-GG4%6PLh$-LRQo+H zTxHH@jo;5FRxj=nhZGiv*Q*hH;C%CXJXtyJRfn#FBNAEAc3DOQAD!6*G-`9& zMexVSs-o$)fp_e}6ilp5PUrS~{_g}X?~}9Cirt|-6T9;CI!*q{)%kPwMO(Cu6)JYS zP^Iu>p6o*|AYjTA(H$K5u_!aMyYPrqG(mNO8_{V)sz)p!-mweQF|qdld^5Al4_C$L zw)TR5jowm|CY+d|q{)|^GwtE76&7`V!5KMjesk#uo~%3<5F7RmE=>iIm&s(ZsAhPg zP;@HVP;vsUNYqq#XD2ZUlPdU6v)#`7YyH-p3F+=C`W+J6J%hp8g_rybH6;JQg#8Ph z5Qs`JN;MX4+ytXkPcWzi{R;=M?oYOV!RP&FcgmgnQ(HfO^}6)Ydwz~@6?zc{IH>DL zRs_M2eKAIQ~PfpGICZlp31Qp9Db&*anl+fkFw@ zg*L-pbiWS7@IF7A$ua4V>dL67QmZGG37i8_qBj9e{-W>Wi535G`pjs!=tA@R)BEsb zd_W|@uAv4W?lmVi4|WS;x9BGa3PjBbdQd0dAMNFOV?u>ySh04E65VID@Y~`%u%%?D z?=JIXL3}j;6Q%}kAoNle94ZRU%;+D7gbt)TqRkh2ypmt87WH>CN~~W`#}PWMU)xSy z@gwfg{RqaNiJ3f_<2N6M4Ih5MDMl?G5F@{H+|HA^yQ|TO-Rf^eQ*FfIk-~&0A~-J5 zWZW)+oWQqNB&)c{}G>;5^ zn@hj*PwBw^j~_IZia-_GVkxOZFx&pq?42U*Ieo^J+IaeSb1XT zgCYe=BuWs<`wpHgzcDEKA~$}jEa91nw!kVf$ZZN}mPNbCCW0c<3~D}$SzlC`JmW?u zbRYj0ZuESjgT_B<;}mJc)tbu8Rkfn7KO0XgZC#$T)$wB&6xDZr`q{H*{GGp*A#b1d zgVmca{OK3n`BvTh59{c$89Gmy8dblI+%?XB$MO-%)^bnu_$A4gue}@?*6oMDg<}V0 zn|&yZPNSdS^w}h9|FkoMm#*#FcYisT9z3P@o2E3s`qQKVAyI!l4?fo{#C?8NcVE&X z{j72S@aDyny~n*);NlTY*a}${0Z(%Y+aeLIBAsxP;8q9OhJKH~+)Z@ri*-VRS0%w0 z;s&i#=_ZYfp60^pdt!L7*OSh{%8GFDK(z}R-hk3cuxL&@%sxWU6nWIZ35`~MvVQN^ z0c}m!Rvo*vPgsXzaPP;Pt_P>;OYeI55B&_rTsz~nwM8C(@~li+Wk|%1eOtcAVLyBI!w%&|?R^RGi4JMvEOqaUu!C zZqt?IUv2RI)ra$y+TfAjxorKarWXwYD>R7vwPD<^pHwv{E_G)mjb1-qzO)e0q*(w#QXLO(RgYDNqYo=pjD$U#`Gb6o058WGz*+5LQG zA5lABo0`)6jKR`OeteRzS=Ii<0)}OB4SeU9S~KW%lAmZ+XvL-H?}-a-?}R)*cc+vg zuY4fd_ON_J(8g=ex<5=~>tV=~iz@rQys>;>43xgat&WO~h~M#~S1lq@ayeZ#*pi994TdfI3Xunk!h2OI+`NHrxP zwsVB{nkBpn7_5fTIapa4E*P@tayS*FHme$7Q6vGJ%jge)Iyo@02xz@WPsBJ1$kgBu z#TUAdR{?{y{&WsjR*VaV4Xg?RyhBzS?hnM7;7hiGb(kWpGI$1L-D=kc9c_3qi<0mI zGUY5!?w^i7`!Haow7%cXC!5aIDor@i^ct(}zkD*NYS8LE%PUW;H(5{3Ao;+s+&hZy zTq8%F`u*a~!Tt4&U6Lo)^041a=U`>UxsVd~D!lP%80-X@jcReoXxk!6Abvv;rpXc; zrb-FRV?5n3(zt{BaAS2NG0Ve(&AR|4xL{!N=pqenbJWi$2wtKQAwqZ{__DwOr3kS+ z=P6-%QVtAO!+2U(k_(3HG^3-XsMqVG#0UiNCeZeR>xG&pgP=CWEKkaT!S1OD3|3Zv z3x);k&2UVCl^5;9^ppnpC2erlqP@5PZ*7_!I2HJubvD3aVnnAlVR80n*o#y4OGtB* zx@$=~GRfVwu)9h^hLsiKB7>Y^n*}M;$oW#S92AM}1{uSYObvEGmsv-~SV{i}kzx1M zgbXVy%tZ#>uUrC(ZmcSLtD&@AmeFGw^l1(k{?)9Cj!f-tUBWxG?$+i%hz#plAY@os zK`t`b<%?)ug1Ud~_+`5V)JY~Z?EqtnVgWh2tW)&X=pGSKOl}j_wnK_wgTcOZa34L% zy^UC>iVg|mXnCIt36f;YCSn1BbC>8f?TCGvXhTXIQmF4vL;2b@fQ4}@{inl`Fp zSXo&vE)o`dvI|WW(9;Ig)}RAGp$7b+=;&xyLG-LYh0Jkau)9ohguZm0lVWRM`T+iL zpCP_Oufc`U{Xf{+A+r)^8g9TYRv*Lo|jZNHMvucxx=!Np9G!yY~|q1n0YI$ak-qIm;(agtn=v|Lhy3E9glqgmZEodhERD9IUJy_gaA> z7j0og5M3dqhfE&IaY4on3uxAy7TJ+f4n2y#C9xwBPw^6ZDjUGE7nIJy$|`XIk>PYE z3Sq0x77Lyq5D8n*(o03l6v-;Zdh@;F(IYMEKL66L52xOj`h_&BSpCd5Zo5SD`!esQ z($gwGmWR5kz7=-oOFcb|q@UxpyFW>}y4;X~464pGlFxDU9DY36MeC%}n-G}>WZb*3dN@8HJ8b;?}Wlk;_ zcplggxpzPnTp~)Y9d-v2e!%f!BlZe8+Qmo&`yB*k=z#Bs}58$122-x0QqpE323QGH4~`g74pj z6a=S9Hi6Dv&?LKpmQ!}5BfM!Iz2qXpZmbCzR`wAe8KmaA!1N976f}k~quZ=mvDrb> zh%f<=iS+`%K_0#2BEz~C2pLvZfs2fS+79sgB7iMfMRYhsQ8fH}lv3e>N7(9mV?27v zg@pC05G1VZLoOs1fx2mdUPQEj5FQS4vkdkX$&RKvRv{d=Mn3BGB z>r?aoh*n=T)mHU+*kpp1`Me>Ya&bwNPv>9!x4c`R`s8K}b&3|k;o7g3nE9Wa@LQR8 zedp>O|FRqJ5A{9T=D-S@|J>8{_bj{~g}m+;&XW>{x;VFY4T-*9SR_4P+LvpHM;x(fO4p_P!qJm^olNr7| z7rMMk7E3H)kXPJ!oiK-HPaR*pHE_N>vRQ>TS-PM6$Cv`mZ;oak)_ngmzy7(NR*I@B zxpy&BTa~HavdP=xq)tt9<_J9(KuFX3-_0wd)o7C_6J;Lba7;Li)QGG6r`8&R|OrQK6=)0L+gj%=}N z;-Rg*#KF#wlvVA5baES#-#@>s>O1XM%CiRl^`YOy+zX8NCl^)rd+FS)%$JL*48~;* zp?)jqR^iq|pEvvu*&zaoQ_vYKw&{CHY^sy)v|-gFF%@IM=3M|kE*Rk7hMNYtS1!o} zjly05K$y{lRuWCq35x6*1>pm5PT>!bU&{{iRZxx|Tw3~aIVCJl(w#P}ZX{-T zSg;8UR;F;lKxzc;HWUV8&tOKfqRHk!tvEteCaaSY)KV;vkaA$K8b)BSGL;JkTJ52~ z5Hv%Amsb!_M~y}@f=fn$9ExO}DVG|Ya$vAKDguL*RpEkxZKQ}E-=IO)!1609W|S70 zG!dRnCzg+bBX!()Nq<@=cO}j4DG3=?R*j2{B11hKctD}sip@k>oK6e!I#IoW%xRm; zlsfLbltYHyRTDC-tU4DNbQi%h%IUCzkjDb%Q=&sgfh|ImD8q0mHXWH1cju)XGBV>= zAY@osRW33v5$-z+T;vw`du68$)WJ5irgC7-2PSQ>yio-HO-Rs7?rp@nR0tAQR+$Tl z9U(Lk%~z~uR4Y26DyS5*qv?W)s4z{EH8tFMP!%&W(M=e1-0@nRB0CD-DKWfAQQ!XM z4*YW1$CQC^VP)sJBn<$;DX7TvqBKr$zfpr869Q}!*lm#iYD<$Hr=lv(VztA&b!*$9 zwTG(ZZAjL8Y4PxXCF>cNk>*ljakcST#|`xzG_}R>#|sK}A^1o>bn2kx{g-c&Rth^~ zzGzwXXG4Brvg28isog_jS{<0|=QCzLjq0V5(Hr9(yzk)2E^skKv6qNu%G6O9HOfd8 zkx=k2ff@^)hBaA>rAYEnwM@9h8_fSv@kwW)3q}Wxzx<}f$67t88a$<)Y5U%_x8@k~ zu`LcAp1STx=%OX#Ml^Iv!wvbZi(S|DoRv!+vVQ2dTPA;W&yb5J^Blgl;BxSi2RF){ z-J}v3pML%e0b4%*s8)x7b>r<1Lfb6yH{=)7t;iWLv3|fH=NP|XB}%n43EGrx zt1|eLqtliQZRpNR8$b5y8Rd7s;HV+r?Q8QSuRDpdU`ViacuY2Bd-p1R%Urxy);Q0u zg9~bA`17hfX7&Bi`^);f&p%N6c1?%gANg(?TdixuYA0?P@6R@OUe|#Ep`kmPlu!mf zZLr&rADlbq&_6xCP-pCMWoq%=9d`m!KA-lb70X{C8)oH+n6!IC3*-IlJ(ZYFvH0_@ z$wjVCnb1SbhTd6Lw9QgMUo6;=jAViT)?za`P)hbXUAOUPkvM~bfdzX{#y<tJ8!Hmo{*&-tA#^wUgmIL`mV49L#*p}wO>5bgLVzs-qZPls+alYcV zioLI1TLp*dBXFT5$$}>r9rn&6bXeIhTy#K4XmVIAAa|CLc`jh7sG>b7+^w{qz-CiN z$6ec!Qs~6L+VuO&1`Pt5P;x{a9Gd(1`h0VlyG2Wx41Z9-HSYbH1?+5wuE4q#g0N; z$pTVGs{$%$)&=v1-x%z|fq-CT*SJ8~WkFHU*xYJI(@vzEV~Q_&Ry zHwMQO{(n^hVuUXpujR&I7fOT!E4$3c0lntH`b%{>DtMn|^qqs35^fmThSXNG5Q_tD zjQ<1$0c<=z~Eu4%#d%S7j993CK$nY@icHt2^BkbJnXR z654_$MZMm}@RIJ!WpyN>Z^lV=P+71E3|4lN3kDJoRWJ$KVSdm`ShK~q8*V}`2@F*G$cn#!@qZ!j3F z3zNWLWq)$Pu!&f#i7NQJ(7XZl)o^DE5>~LN$r2F3k99kGsI5*pw_|iJVadQ2dqZOC z_742DP}f?6wJ6Fi0?ss>dwT=!n-v4;x zUm1MX@AO~z+kmoR$Et@K@{(g4{*D+O_=Qh1G_9-Jj=%4(YO3oqzC?cSCYNtY^qu`D{o#Gh0q& zWyjBRj!*k(Aw&L2yPJC)JF^9>KYrQ2#-Q77;=5xjYJ5E{OP+xBxvQ;OcFNB^uLWD` z|2}I=etGo0Z&yAll4ZAXo?Acnty?E&#gJjo%6>7f|D8RCyxEj}6;^clEqHFL9QQuS zlEck2lw7wXi$7t^%5HOYN<#HFbr=OP3etHMGdkhGh2oMG6PiVdQi{19Gh>8A>KGK> zn!s=$+=o1Sdn9IjS+&zuj#0&@TsUNKT2R||l!4-=Qo-+FvLHNyUMT{?)ZmRt70;s^ zjTgVX9#EKjj&~nE;({W8*a8ik!D)tCEDg;MEOre=+L8sOYoNRo-XMo#ay5lDI0OnS zd&UI?(Pvcv-G^0Fu{m(rP#0@b%q~2tL4%H{AG>Br*M=T@n%wtjx`B zi`U{xB+$^?fy{oGM3)nfQ!F(!$&AMZip*4$;Qgzd_YJ=>*flT#!O9+T6~ctB02;P1 zR%D?I;Cw-&UV3tZEY*qqp5k)f7@UpWoA<v;3> z(4F1h+3hp2?WM6Zv*u}!8S0L(Bin0N@%^}LaP-}6??w2&)z*;rIXrAhhFiaCUky1w zs{79sh>uf$e{!K^zn7q8Wq)&_rFE;_g=%NPf}IS~YeAul2ss*`V)2GY7Q2G?f}@Sq zk;FE>EZ77FEBl8FhEqV!4P_mJ`$)kZCQ@&EIm>HRJ_de&ep64-HxxkUPzk&-c)NL&qm#%E~1T z`+VZNV#PxLBSqUyHRQ>4JF@ueHyCqG(s6Z4bctZ-M)NRLvN^$WB%+_DhD;R)Sbm6N zETys?-^NsR>d7Se9shNI5KsvmJiX(|a`5qRXy6uu%|YutJmf+0jvRjUl96GEVSa6I zkl!)6ps+U`fx^n(;euiU6$jQhPB3pe;8DY}5FSXI%YuYZL_2Kq8{~IPE-0+UAy8OZ zPA(`&VX~UQsS8#*L`Tti(hPr-)1{!s0d)A5f6;}d@-8yDK(Hp3fM8{Bae+X5loF$n zt|8mZX1j~hgwdA;oq4f+LK7zUF48N0$K>L`K2it=R+fQ_1Gt{Bg+?1Hq$Hs0oT^Ij z*Q5FrcZ210FLT}0f9zcJ>lgA5CcVshUYoaKDVyH}En1G`2d z99UUKE)EWp3Ay{&Itz9OA~N89abUsW!h-{e1H>h$`(M4~cT6r0?3z&52WFj^n~MXo zzroj!`Ytqz0b@N10v%}1>(b03ap9P~?RQKr5bPqDfM8{BbAhm{$k;K1mJXI;^-&2=&9$h8hW{hzp7&Ttkg{}&j^^gAXO4OYbn4OW(&iw3yn(LvFK1{`3n z!|D|UJIE|?*}=vR9thW)Ku(lgF#Z|zPgu?s_k6~iwQ`jYuKbI@U}XVZFw73Yiq@_u z%0S3e=jKPP92E(5YlSUIzNs7k=INnZPe;ar_r>9_~TI zDqHTQmtJyA(+OWX=}T{o^|i$mJ~!)0#AIp7JFPDSS3UB8=FiH4x$}pu1%)1!X(9C- z8-7HKomi`YR7fW@5Ms%h5-rl-^eUB&%tYdf`E(y5UZrU~2%IuM-R(c6;p0PU9vjtn zCVhzHMSVUWv?}b0-^jZ+9v-MTSdXWXyu*we>yDTah!qymB9PUfxYC&>3&!Q&Exe1~KR2EV-g%)K32It` zFVI9^95f^$2?P?XN+qV2>^0(Dx0+l$1T)fF&?Li3X>Mqmfkr{H9a{?xD@mAbdzzdW za&TDJuEm18M|5l3DWYw7mlUYXPCBVka-m_>l&8A2xX_^D7R1{k3e~Z>FrkRSiI54% z)Fk2`bSU;T?-Dd9F-&=QOdr9MoTS3_Iao0>P!}5L`26PsOj$#-mPVuIK4T9Z=oZ>dnUmbVn4_I_a$Ra@1VIP7Z27- z(K%RIZ7v>8tBiU}gwqgwHOY4D(5c?aWwKKu4BVMI9<@4l>{d()Zxi-;+m7+>Bi5~Z z`c{nTio$laAB=9;lj#7xwuF!)r<~Y=x}7FF1N^%LA3{3jDTlF1(}>P zO(C4BcDJxD-HO%j81Z>{u~uC=wlC)2p;Py6#lU+I{+hLh(n9JaDJ>+qs#78F2gk}c zKcvi%QI zYz5lZS5X;^@TJ48Dn=Zg=1}v(!}ULwd>S%t;r<=(ZNDPXCrJMBy5VyVZp-4oICS!W zGns}INy>wpJs0o%dAS&Y^%+}Nu!x|M6FeRcXphYVDm5$~ovIzg<@DfIx`e^nPz&lf zpp4vx|I61wk;bGyqu8sS*yEc;l85fQTvSlninL@+UGDZ)mr&u@^cLY9D?J)-GDBrmzEOZg`S7X~dmS9s*g zYWoW%1tj)dyz}?rf`quMRYt_oYBGVY$^}Or`ph7OP(@2d{O!`ySnBlZ6z}1}F5J$( z3PiLdA%_Re+I_fjG9zQ3*MH}*ttT6N zFsTQfgO&B=;(?Y!NN%EnWrS1|0S(q2b}Z`^n?tZ@4n!BoeN{U=tV_!_O53j8!aB5! zhm5fV`M=zpw7x;!OoI89hAw=C_sM;OvK|gN>AyKl{ApmZV;vz%l7T6_$8XF(fnEI< z_H1`$=z-G>2_IJ0or@2W{!!U(K{BBUEHsp|frk>7Y!rwhsvdnIqD6G<*hTBuy~C$& zBa=4e79s{9WO4gD^E`gi%r|7=p_u;u9!YvX{Oj=k49Zgk8hKv>!5 zTtHL{k~Wa}MLkC?HZ&_x(D+UU2Mc)3h?z&XxFH?8v=57j1A~41ygph91B`{3Ktw_F z+voqv;5X>RfHi7G2Rv7It1Z(wlH z5JaSoa9|pVO`D60cfY|H`1IdaA^f9BK?|N`DZJ!MH49x>FC?#Wt*FFw}qkhYw_Ky8n@{&A$K|d5qk$MI{!&q zy}c2=ZoCJ-zI3n~z}&{GM2Q=31K7-*@D{Ki_EvAo7Erz=?0UCS=b(|7F0DCtp~2et z%O7J4*c4N1AP(A8^=7z#zpA!|^X&O&@?>9fRlsgX@XUrTnkZ}#;fqDVo!MzZWFNeM z=&0%PwAD$&K5J5B3rKoU({FF7?DAoGs$=@hOnJuWdHtUBfG#^>@bLW;3u=s5qK%v- zHWRLVmy0Lk;{q;h8`}S2tp+M0i{ex*5^}__HO9ji#mp8@xTL}skSY(BwCP+v=lth> zYkL;=iF$H!F-?2Z0!5(RI+OQRr z@XU~4LEv-*OR*QXfHaB7-Q|O7Z7UbD;)}?!y{C;RLV%FmmA>Wb?i<#k;;h`@@bl+F zlL8WZF5dZva6v**H*z>Es#R7c3*eC@QAQDi=rG%?vQ=?ra8SE8b&vhU{l=jUC{p4&gEfCLU47jTAh1m9Js9KIg6~w{1HOtL{N3ie z`aREvN#hIO9ymOA=~HwLR`vxK14Td|Isx1p=$%B311Rs5Cht)3Ou|j#)jc42_I%!7 z_|vezG6!rO5xyZL^jp2DvnTVw?g3v80)}HB+buk#<)C4~P<7N6^&S$RAI}hXYAPNJgVBSPmE3n<5G$OA2zV?G8l!L3Pf7BNcXSm+vo5o8vRTV)Odbjz6^V6uLR4Hnn#K zM~xi?{MY@uzUhE#i-UQxueb`WI+0Xq1$7ugMP^iR+K>f}KDB17o}K7Z8%w_JErrfD zYOnO5-DPFKwbMrz7X9E(Vi%EKr>Wn^kB^ zfz%H&)V1O(v?rCmiEgId+0*wBqeaysy+HG%)jA=xcFqm()>HnP$07d(=s zevfYcTQ{t5I@YDxOqaydW0qd0sr!9dxZ;w0&4PxFX#ZW|q5bOdWPCV4=>)bNq+!`a zML>)@cyOeGN)t!Ng^UFz+&}g(WKD%HhYl!oW);oV6BevWCupOE zgclv(!e^17jjr)3HhOjDKW@&9DD4x~pr-xn>!thf6uJdwcC^i;hz*g&rA4mZEC2Q_ z70HuL=PI-fh2`i;kIktWRMY}dz*;Rxu|wV%yo3_ZD5Z`<*TS@xM6cZMuxAY&Sf;^S zIs0y|p4dgC*Jq}Mh%OL&qSPFI9Z^PiA)Fy zpVn$Ul;-+c6xy1wLX+_OWy4H;Wz+}C9jyNL8UO?}eXlEvRzUomjnsY*UO>SW)>lkwru%`;`x z5D_)#4p8E)xscQ;V55QjG%qRi9L%ZF{$CM=`X?ntiLTHw|8}yH~o^ZPp;y{@=2>T!pqe z1WJTL77y$)@+(zr3GFKO_JX9^6^ZwZO+AHf)%ofBQQM!Zvm?hh?{e{-YM7Nrt3<2IayRTuy5lt0*J7dV2`jWm$6Y53AlVA-+&;Bx`u!V%RvakaVq=@i z!*~ka3MZaZwr;1Pr&TSw#^$W|mi1V~lg;BQG-{c!T$VwwX;;v*9)?H+RX#Ed5EP{K zBInXiCN;g$?q=gowRy5=u1bTv92-FpZlP(jOvM3I)JQF4L>qcm39*e2UcQE@ zr_z0+Lb9IE;ODz!&ih|HFFICA>@w2pH1%m0X2pC~zf9oDKh_m5J94itPsWD>n+ZjA zBC8N8tf8t3%~HU2iIPUMsF(l==MGN=l_n0mNf&@sjql64}%9ibc8(Q-j#*E^Gx|Mlth)9 zrhcXTs2{fFc4_k}4k+8WlQ}C-#)re^#8V21;CO7I-GHLOR-^eOVok_&RBdK2DK(|Y zRC)Agtq*fF37t}4)>I*8jeaqcv-C*NAMHqZEj`wgx8qw3D%lFXpx^18ceTOl*j)o} ziILZ4@D!R-%xm?K7vA>)RoIxqI?t3%LpnA_*t*Q9){H2Vp&Q-o~|by zJ@H@PO%+S^xm+eNDymJZFVl2RlBbVQI<|V%=L>&mB(8XB{UUAdD3K@QBL_=>hMFRl zY{Wq(IR)9Qf=>YS?(q5%-Sodr!M_apD+O&fz;{pX0-r?)MXQg%Naw()1Hm+7|Kg4cYSCal(=LL}Q+ej~rsJ zn$>|;=V&c#p(mi8JcAAo$Rd&LX5ND^6|{db=Jf1Q;JuFv&+^^!sMPqkHv~t~T$7{y z30i(?QP9Uoks3aBX+a_~CLsJd32_E;v@M3yqIzfzKH`Jltq z>SXOxUEDD|-H(NqHV!g|PjjmswjswqjjH%N@LM(JNcQc|0tHW+V0X#cMU4&OIv)w}ADol?IXt!h52EruHMXPsuW%Jk8(kVzkI zIGuCspuS1Ll)Y}eYq`W26nzn$G)-~*C!xL>yMJsWL2!k}4t5RP5_T{U-*S4!rp}X*yFzmzZ)`oKMOcd#s|Y{NBJd6htNI7 zX+w=O8W`A-+l8jG7Nq;XAZU*RBb8E+Y5eRBV$3%_42F!}&)%>+*;1}TpeLru<)mK1 z;5tQGkX1t21Dbt+-4mqTFM0sRmE!&v6oS3e2n<%n2Lt|Z*-nKqicQfehQY;+kOo|d zAh(j0*nI3bFy3H=U@bLaz{-|!6~YEaQw5Ff(E>*R`w~i}%wSRkJ-uv`R7GIxlK%?| z!J1eCgO%~Y5H)}S&J1!?fcFjjJ9yALoK6W;5l9VX!FU4|g7q&YxE*nN+KzZ!l6A`P z3QMw1^Y&J(SUAWprbtA+9*Z`-v>h>)WJHBM>c($T*5ReJ?K5|`J2Rqi2v4@0tH_cB zwq`uqkdY3GeZh<_g{UY%PzxOUXmc7%Dxd00GTLBFu)o#!r`;C+9c}85OPhIoXJhy@ zw>;05HVC;nOPuoVju4f*z!7fMf_xj-87 z)uY1KvfD4wQ^9yL(0kZ}&egkEwhY_%cJo_XqeuIXKdLj3CrbcR6$JfANkW#LKsEXn zJ29*};pZ@$K+VK+aQthd^7@x#v{CusTy*=+rDg{%8f?n=vGor(ficZ3XPwF82YmNy z(2QCc4;?N#YCB;<^8ZnH9e`0(U6&5hkq#m#AVq-LCDk;QV5=~Di4cUg(gmu!+>cKPP}fOvQFX5N`s@4NS$6=Rp= z`+4yQWA*p-^PFwlXQ|JAsA2B4mzP$H+T11g^dY4cSUeZhW zK{O4FtC(uR$%ABFmx*In5VSf(Oge~YG#NsWKo7W75w;WZ8ko<<1Dt2$gF$pN4hIqo zMTd?IAb8Lm$R7b68Z??EQ}k-)1bj(G&(C%mUw!e>-Ha-}Jh?H#{$vcsZ0Z9}KJ;Ox@ zKhUH@dalcxD)|JA0L{RuX%Os4O=YmQ72F2l1T7A-LLsOHHA3hI*$~12E0qjNH{@{( zUb>toX@dU?4T2qF2@KZ82Lqy7I2ExG=ndyOiF3niY$Az)1Pa}%>>VMVfbk4A2zE)9 zsEXy1@d|IJ=h^|u@R(qKg1o)N=x{V{2{`XDXOmIxf^(h?$6oEkXQ zYz^Y`7WSX;%@~pa^=Dpa?7!AhsUo~#tMQK`kKXw7#-($62XqaO9_!AQtHRK_p7u#N zB!&gspo{wMK!>KF!Fa1(>-a``EQmR+4~fgQb^CUSx9pinHAytexiJpM5@o=hgS#cl zfJ-R{DfS!p=~lAB@HGV@=Z-wvW98C0ITQ8?9~kXX@JLHM)+0~R$Qh45>p5hqJ%nfb zi`yr#zC$m-R?-r2>PstW{2v(`Ztx*vscomBy^t5RCyBEGXa?k->|eR=i)~*{r}bU& z>!x}|o%>-*vP-bdz@z$0zeJtM*9<~q<7;O$eNwg6h!-J%_5qwl6Z{EJmHkflamKs~ueYAYSMt~>rTol`RYWDH>G6~;SpHgE& zi`N>w(S~Pxz-nut?MK{nqVbg+|Rf zJgE$R`cD8^>ini!y}XqoR=#{-Qs(AM@)IDeEe*U)e_tMiU&4PPZAx@l;5DN3KhVcx z53S0g+koFzf!|X1#1GVZze%$vqiC92kBjkj=;Nu0yvUA1LgU&uZ4&1#{qIM^5C6a< zIsIdN#P*l6wvE)c_MKI(UcvSgsQ#?&KDR+AszcVX0(Rn@%;iE9w<5}*7=@}P#iBUe zo_Qo3^Kk0~T&-#LJbqdq0tp}9^K+sf{Og-f3@NU4qX){znfuN)hBbPvRklvw{zbKB zZE3l0-Lz!5r8Vpfp{gq*ZcK7mvV`0kFseYlT}eaj^~rRD_v?AMf6brUQ}gDZ)Y$uz zx9G=Kl0WGF=8d5(K5l5Q=zja%adwsyz86RJb5-qHu*9hCA-zA_S}bRy^qvHMvKRbq z)}fJg2S-k=|J!>jX1A|E#gRQjs}n0{<}PlH-aF+&r;m3NpMRpuG2id7_u$<(9T!&@ z##oo^2CkTou)_pFr;dZi6q2YSKLSZEGK4sB5RHgw6?9DwD8GTz0}??r0C<{MoF6p)JHIDY zFkxd_+;zt%tt$%E*EIU`$IBl`J?giYLlbUwG4$xEvYfI0?0RDd@fFeIu z0TTyOG~mXluo+v(FU;kpmo?82tKc}8R z)oc6v{q`rqONFkDzH#ABlj%Es_HGBa@7yqCzujN&A6N0da@1!}>7dQtm+r~hGH@Z) zFi$xULkFo8+hv*p7C<1OqB#uVFS^^yEf?@p1YVQyH@vVI^Kj3|#lWqQZ^^@CNdmS| zFfa^cUL)LILF%>YJ-QCK<2*GOu+`Xtxjq+x&Z;O=^?lgQ} zl@IWun~i*sBWC61>LX4T?0vpN&tg1VcJ9jut)%3(a8#s8E{v*@W!svBC7fdE2+fDP zIapp5szU3*JDyjw?b9|tc;oFu*V72ezS2L}rw57r!9I4o6^ zG?8|W00DWxkfm@!_S(W>6ErFm$7hi zxkqKNwp?65WD#Nvs)B<@LAS9g!)9BCKC0=I6=*6M-f)j++N(l!?fXa7Ohwmz95(o@ z{o{=*OPBL(*|_!BB^jykaK}1iTSW%A2Cfc8a)UD)lZcK4HF6I=gI*P?;p!Lf)_qte ztvN7m>+X%^#(c@M<>uBJs`ua?(n0Wy2samYzYv@TNv*15X(}SUDY#yh+%3L2aMH9w z=cb=AW7@rfEqohcs$c9Bwae#q-U%BwNjo*C&TI)L&!}oSkG1`=^Y<~Mi(hCRKd0$h zpFMWy;ZgO5EQ|i6?qy}`)Mm|+GupEE;N3S57gt1Zm>5PNpRPji(t?D60`V=k0ZK{B zGF);{y(+xs;cuj6VWl!yTLCTgC(kuX-AzQ*0^ z)f}I^z1(MKJEA{S+57UIr63b zi!l%PLR<_)9b$Gk0l>tKvsBH2kWVKVcy-+%`YFQ*j#ni$7_jY$%3y7UxfnoC47(iY zN;z!MAR@UzG6aZCfngm1L>S#Y7zEs_k{S%y0h-ESZO?Ntz^RW@0!5P(ISrt5ftZxr zCA+{xtwDUu=~9B~RiSEp_S4MQTSU06elv=qexV<+mU1}UbZCMDm!tzM1xh17FvV1rb*8`*=Pj+VgMfqBKY5UK*zRM91SLl1%x ztU^_Idwh*8uKamJm;9b~?(}1yc?MOoe_!^Gg*O-X313$~Oh5ef$6wF@k<=i;D~o3< z#)U|d9mwLARi_QDDPoNmNPSp?wg(nyqT*GZ3Z`3ys=~Gae{ir6@?d>|3kUQLG?xh_ zW@NKtfKcFPg0ilv$f9iGzr32%PbpX>nQoQT0MfX^&|E)1>Kw5&-LKK_-haLumBHFx zXe&j zE5fZmR$!K`x}ZNMBV5Vhkl}^IZV<=mI0i*`c~;#jRKxPw&y=}zqnbT1Y(vNo6}!C2 zvlZvo8U�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 z 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 IvUvah0avuaga7~l diff --git a/Content/ZED/Levels/L_BodyTrackingSingle.umap b/Content/ZED/Levels/L_BodyTrackingSingle.umap index 3a98b197200811508b3c91d3c08c59c70f3ebb31..6a5e117097f3095e99904349d694fd364a6c78b0 100644 GIT binary patch delta 878 zcmZ|NUr19?90%}of1yxhq!6K)$;vtR=Q{UCuZrTvNhwxg5g1ro!==Iq#ULpnT0;NK zTBkA%EJsZ+j9{_oA*1_{QB5Q8A*dd1P%jY}lo8?j`8x!?bm5-+Ip6a;zk3hdGZ`4n zK>pKH*0G=2Y&Nulu~op>LOg$B-EPL%$@$~mcYQlQeQDh`X-Pkv?uuv5=j7r-v)HG2 zR}N#Xg0rLIhGN%-iW&3ZELqN23qF_U=6YE%)_^(QI^K1m^?}=i_XFu?y{(%AzTYCN zl$-!;)T9q81-Q{>+q1=M+ZBmM4)jGFUe(2N7`};3{fPZ%9T(|RWL0m8%t@NA>#?s>gY04AS7g}{`KeVLUP>mAz5SGei$muCF^tp)XxpqygEulYx$%T&sUU_d zkTj6~3$m|=!_*Klf!uJB2wo1~B*Vz?B}#RqGfu}eRdaX|r!l_O0dM8I^sJ#weu*vUQBoyy$ANqfUd4JF<5jhd^?f zDX3orWm5cVFz2N44^~rUjf;hOwW`bOaMr4Br|PLnRkWSkxYjrFZgFWgwDrOGQl`{8 ST`gYsSj4TUDV5iMO#K6d-YTI0 delta 1016 zcmZ|OZAepL6bJC!6 z&J%$`DuIg<7CE#Jkrjjnq7WoeANmsbMO#T9DgxJW>a$M`?z882{^#6huXh%qcM%fa z+|-W#4u`|;U5v#6V?TTej}Dw+jNMr7Zkjw=zOq(v>PhCz^I4Z~u|GD30tZ$KmN=wd zfz*+T8yy)k?O0zbW4ZMFFoUt<+df>d)izQ{b-HHhDj9XC4_3Y|o=}w!2Q!}?!?2Kc zU7))y&Ul1G8r117lvs3U>pXSU?R5r=WM;9Ev)Vo?|H)}6@(|{~j%{wlBF4`9w`w~p zy~(h{#n?+KxVE!o+8fW+v^53CL3>1S;6jEXw4g3i5#D1ztvR?#s~gL*6kz}-vlMu6 z5q(k`rdfC6&#pu))@tC}W+^37@@i#RsNxI}U${A)IvF;qIRnJcwdih1L6yE(04&oh zV64Y@s~uPLA|y5NR>>fP*nsPoH2A7}Kl%+KEJxE2rB53pbM=x4(@nf_j=1jO)EGr5 zY~{Q~JlV<*Su)D-HcH7P!)!afyzMhhBK*C|sWOXj=o+7Onq`=eGC;i2$y0T<3^hHR z&BWOreyf#i5tgEaRzL%uz;&J1@Jzu*-CLJFG=`>lX(iH4@bU_ z(tHt2BYeP{PxB*@L}eG@^k^ix+!7!8G1b~N;GW>k0lN$*{5uS)3%-Nk$BjZw>=gZt zw85;RU&(v(BvY=zoFkd6lGzqCxcbufbv91NCFuS*#wzUkh7Ug8%>k diff --git a/Plugins/Stereolabs/Source/Stereolabs/Private/Core/StereolabsCameraProxy.cpp b/Plugins/Stereolabs/Source/Stereolabs/Private/Core/StereolabsCameraProxy.cpp index 00f7dd7..4f39159 100644 --- a/Plugins/Stereolabs/Source/Stereolabs/Private/Core/StereolabsCameraProxy.cpp +++ b/Plugins/Stereolabs/Source/Stereolabs/Private/Core/StereolabsCameraProxy.cpp @@ -261,6 +261,7 @@ void USlCameraProxy::Internal_OpenCamera(const FSlInitParameters& InitParameters sl_init_parameters.async_grab_camera_recovery = InitParameters.bAsyncGrabCameraRecovery; sl_init_parameters.open_timeout_sec = InitParameters.OpenTimeoutSec; sl_init_parameters.grab_compute_capping_fps = InitParameters.GrabComputeCappingFPS; + sl_init_parameters.enable_image_validity_check = InitParameters.bEnableImageValidityCheck; InputType = (SL_INPUT_TYPE)InitParameters.InputType; bool IsCameraCreated = sl_create_camera(CameraID); @@ -569,6 +570,37 @@ ESlTrackingState USlCameraProxy::GetPosition(FSlPose& Pose, ESlReferenceFrame Re SL_SCOPE_UNLOCK } +ESlErrorCode USlCameraProxy::SetRegionOfInterest(FSlMat& Mat) +{ + SL_ERROR_CODE err = (SL_ERROR_CODE)sl_set_region_of_interest(CameraID, Mat.Mat); + return sl::unreal::ToUnrealType(err); +} + +ESlErrorCode USlCameraProxy::GetRegionOfInterest(FSlMat& Mat, FIntPoint& resolution) +{ + if (!Mat.Mat) { + Mat.Mat = sl_mat_create_new(resolution.X, resolution.Y, SL_MAT_TYPE_U8_C1, SL_MEM_CPU); + } + SL_ERROR_CODE err = (SL_ERROR_CODE)sl_get_region_of_interest(CameraID, Mat.Mat, resolution.X, resolution.Y); + return sl::unreal::ToUnrealType(err); +} + +ESlErrorCode USlCameraProxy::StartRegionOfInterestAutoDetection(FSlRegionOfInterestParameters& roiParams) +{ + SL_RegionOfInterestParameters params; + params.auto_apply = roiParams.bAutoApply; + params.depth_far_threshold_meters = roiParams.depthFarThresholdMeters; + params.image_height_ratio_cutoff = roiParams.imageHeightRatioCutoff; + + SL_ERROR_CODE err = (SL_ERROR_CODE)sl_start_region_of_interest_auto_detection(CameraID, ¶ms); + return sl::unreal::ToUnrealType(err); +} + +ESlRegionOfInterestAutoDetectionState USlCameraProxy::GetRegionOfInterestAutoDetectionStatus() +{ + return (ESlRegionOfInterestAutoDetectionState)sl_get_region_of_interest_auto_detection_status(CameraID); +} + ESlErrorCode USlCameraProxy::GetIMUData(FSlIMUData& IMUData, ESlTimeReference TimeReference) { SL_ERROR_CODE ErrorCode = SL_ERROR_CODE_FAILURE; @@ -846,6 +878,11 @@ FSlVideoSettings USlCameraProxy::GetCameraSettings() return CameraSettings; } +bool USlCameraProxy::GetCameraSetting(ESlVideoSettings CameraSetting, int& value) +{ + return (sl_get_camera_settings(CameraID, (SL_VIDEO_SETTINGS)CameraSetting, &value) == SL_ERROR_CODE_SUCCESS); +} + bool USlCameraProxy::EnableSpatialMapping(const FSlSpatialMappingParameters& SpatialMappingParameters) { SL_ERROR_CODE ErrorCode; @@ -1015,6 +1052,22 @@ bool USlCameraProxy::RetrieveMeasure(void* Mat, ESlMeasure MeasureType, ESlMemor return (ErrorCode == SL_ERROR_CODE_SUCCESS); } +bool USlCameraProxy::IsCameraSettingSupported(ESlVideoSettings CameraSetting) +{ + return sl_is_camera_setting_supported(CameraID, (SL_VIDEO_SETTINGS)CameraSetting); +} + +bool USlCameraProxy::SetCameraSetting(ESlVideoSettings NewCameraSettings, int value) +{ + if (sl_is_camera_setting_supported(CameraID, (SL_VIDEO_SETTINGS)NewCameraSettings)) + { + sl_set_camera_settings(CameraID, (SL_VIDEO_SETTINGS)NewCameraSettings, value); + return true; + } + return false; +} + + void USlCameraProxy::SetCameraSettings(FSlVideoSettings& NewCameraSettings) { bool bDefault = NewCameraSettings.bDefault; diff --git a/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsBaseTypes.h b/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsBaseTypes.h index 291f730..e016132 100644 --- a/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsBaseTypes.h +++ b/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsBaseTypes.h @@ -325,6 +325,7 @@ enum class ESlRetrieveResult : uint8 UENUM(BlueprintType, Category = "Stereolabs|Enum") enum class ESlErrorCode : uint8 { + EC_CorruptedFrame = 254 UMETA(DisplayName = "Corrupted frame"), EC_CameraRebooting = 255 UMETA(DisplayName = "Camera rebooting"), EC_Success = 0 UMETA(DisplayName = "Success"), EC_Failure UMETA(DisplayName = "Failure"), @@ -364,6 +365,38 @@ enum class ESlErrorCode : uint8 EC_None UMETA(DisplayName = "No error") }; +/** +\brief Lists available camera settings for the camera (contrast, hue, saturation, gain, ...). +\warning All \ref VIDEO_SETTINGS are not supported for all camera models. You can find the supported \ref VIDEO_SETTINGS for each ZED camera in our documentation.\n\n + GAIN and EXPOSURE are linked in auto/default mode (see \ref sl::Camera.setCameraSettings()). + */ +UENUM(BlueprintType, Category = "Stereolabs|Enum") +enum class ESlVideoSettings: uint8 +{ + VS_BRIGHTNESS UMETA(DisplayName = "Brightness"), /**< Brightness control \n Affected value should be between 0 and 8. \note Not available for ZED X/X Mini cameras.*/ + VS_CONTRAST UMETA(DisplayName = "Contrast"), /**< Contrast control \n Affected value should be between 0 and 8. \note Not available for ZED X/X Mini cameras.*/ + VS_HUE UMETA(DisplayName = "Hue"), /**< Hue control \n Affected value should be between 0 and 11. \note Not available for ZED X/X Mini cameras.*/ + VS_SATURATION UMETA(DisplayName = "Saturation"), /**< Saturation control \n Affected value should be between 0 and 8.*/ + VS_SHARPNESS UMETA(DisplayName = "Sharpness"), /**< Digital sharpening control \n Affected value should be between 0 and 8.*/ + VS_GAMMA UMETA(DisplayName = "Gamma"), /**< ISP gamma control \n Affected value should be between 1 and 9.*/ + VS_GAIN UMETA(DisplayName = "Gain"), /**< Gain control \n Affected value should be between 0 and 100 for manual control. \note If EXPOSURE is set to -1 (automatic mode), then GAIN will be automatic as well.*/ + VS_EXPOSURE UMETA(DisplayName = "Exposure"), /**< Exposure control \n Affected value should be between 0 and 100 for manual control.\n The exposition is mapped linearly in a percentage of the following max values.\n Special case for EXPOSURE = 0 that corresponds to 0.17072ms.\n The conversion to milliseconds depends on the framerate:

  • 15fps & EXPOSURE = 100 -> 19.97ms
  • 30fps & EXPOSURE = 100 -> 19.97ms
  • 60fps & EXPOSURE = 100 -> 10.84072ms
  • 100fps & EXPOSURE = 100 -> 10.106624ms
*/ + VS_AEC_AGC UMETA(DisplayName = "AEC AGC"), /**< Defines if the GAIN and EXPOSURE are in automatic mode or not.\n Setting GAIN or EXPOSURE values will automatically set this value to 0.*/ + VS_AEC_AGC_ROI UMETA(DisplayName = "AEC AGC Roi"), /**< Defines the region of interest for automatic exposure/gain computation.\n To be used with overloaded \ref Camera.setCameraSettings(VIDEO_SETTINGS,Rect,sl::SIDE,bool) "setCameraSettings()" / \ref Camera.getCameraSettings(VIDEO_SETTINGS,Rect&,sl::SIDE) "getCameraSettings()" methods.*/ + VS_WHITEBALANCE_TEMPERATURE UMETA(DisplayName = "White balance"), /**< Color temperature control \n Affected value should be between 2800 and 6500 with a step of 100. \note Setting a value will automatically set WHITEBALANCE_AUTO to 0.*/ + VS_WHITEBALANCE_AUTO UMETA(DisplayName = "Auto White balance"), /**< Defines if the white balance is in automatic mode or not.*/ + VS_LED_STATUS UMETA(DisplayName = "LED status"), /**< Status of the front LED of the camera.\n Set to 0 to disable the light, 1 to enable the light.\n Default value is on. \note Requires camera firmware 1523 at least.*/ + VS_EXPOSURE_TIME UMETA(DisplayName = "Exposure time"), /**< Real exposure time control in microseconds. \note Only available for ZED X/X Mini cameras.\note Replace EXPOSURE setting.*/ + VS_ANALOG_GAIN UMETA(DisplayName = "Analog gain"), /**< Real analog gain (sensor) control in mDB.\n The range is defined by Jetson DTS and by default [1000-16000]. \note Only available for ZED X/X Mini cameras.\note Replace GAIN settings.*/ + VS_DIGITAL_GAIN UMETA(DisplayName = "Digital gain"), /**< Real digital gain (ISP) as a factor.\n The range is defined by Jetson DTS and by default [1-256]. \note Only available for ZED X/X Mini cameras.\note Replace GAIN settings.*/ + VS_AUTO_EXPOSURE_TIME_RANGE UMETA(DisplayName = "Auto exposure time range"), /**< Range of exposure auto control in microseconds.\n Used with \ref Camera.setCameraSettings(VIDEO_SETTINGS,int,int) "setCameraSettings()".\n Min/max range between max range defined in DTS.\n By default: [28000 - or 19000] us. \note Only available for ZED X/X Mini cameras.*/ + VS_AUTO_ANALOG_GAIN_RANGE UMETA(DisplayName = "Auto analog gain range"), /**< Range of sensor gain in automatic control.\n Used with \ref Camera.setCameraSettings(VIDEO_SETTINGS,int,int) "setCameraSettings()".\n Min/max range between max range defined in DTS.\n By default: [1000 - 16000] mdB. \note Only available for ZED X/X Mini cameras.*/ + VS_AUTO_DIGITAL_GAIN_RANGE UMETA(DisplayName = "Auto digital gain range"), /**< Range of digital ISP gain in automatic control.\n Used with \ref Camera.setCameraSettings(VIDEO_SETTINGS,int,int) "setCameraSettings()".\n Min/max range between max range defined in DTS.\n By default: [1 - 256]. \note Only available for ZED X/X Mini cameras.*/ + VS_EXPOSURE_COMPENSATION UMETA(DisplayName = "Exposure compensation"), /**< Exposure-target compensation made after auto exposure.\n Reduces the overall illumination target by factor of F-stops.\n Affected value should be between 0 and 100 (mapped between [-2.0,2.0]).\n Default value is 50, i.e. no compensation applied. \note Only available for ZED X/X Mini cameras.*/ + VS_DENOISING UMETA(DisplayName = "Denoising"), /**< Level of denoising applied on both left and right images.\n Affected value should be between 0 and 100.\n Default value is 50. \note Only available for ZED X/X Mini cameras.*/ + VS_LAST +}; + /* * SDK SVO compression modes * see sl::SVO_COMPRESSION_MODE @@ -511,6 +544,17 @@ enum class ESlPositionalTrackingMode : uint8 PTM_Quality UMETA(DisplayName = "Quality") }; +/** +\brief Lists the different states of region of interest auto detection. + */ +UENUM(BlueprintType, Category = "Stereolabs|Enum") +enum class ESlRegionOfInterestAutoDetectionState : uint8 +{ + ROI_RUNNING UMETA(DisplayName = "Running"), /**< The region of interest auto detection is initializing.*/ + ROI_READY UMETA(DisplayName = "Ready"), /**< The region of interest mask is ready, if auto_apply was enabled, the region of interest mask is being used*/ + ROI_NOT_ENABLED UMETA(DisplayName = "Not Enabled"), /**< The region of interest auto detection is not enabled*/ +}; + /* * Lists available object tracking state. */ @@ -2238,6 +2282,40 @@ struct STEREOLABS_API FSlPose bool bValid; }; +USTRUCT(BlueprintType, Category = "Stereolabs|Struct") +struct STEREOLABS_API FSlRegionOfInterestParameters +{ + GENERATED_BODY() + + FSlRegionOfInterestParameters() + : + depthFarThresholdMeters(2.5f), + imageHeightRatioCutoff(0.5f), + bAutoApply(false) + {} + + /** + \brief Filtering how far object in the ROI should be considered, this is useful for a vehicle for instance + + Default: 2.5 meters + */ + float depthFarThresholdMeters = 2.5; + + /** + \brief By default consider only the lower half of the image, can be useful to filter out the sky + + Default: 0.5, correspond to the lower half of the image + */ + float imageHeightRatioCutoff = 0.5; + + /** + \brief Once computed the ROI computed will be automatically applied + + Default: Enabled + */ + bool bAutoApply = true; +}; + /* * SDK IMU data * see Sl::IMUData @@ -2313,7 +2391,8 @@ struct STEREOLABS_API FSlInitParameters bEnableImageEnhancement(true), OpenTimeoutSec(5.0f), VerboseFilePath(""), - GrabComputeCappingFPS(0.0f) + GrabComputeCappingFPS(0.0f), + bEnableImageValidityCheck(false) { } @@ -2493,6 +2572,13 @@ struct STEREOLABS_API FSlInitParameters GrabComputeCappingFPS, *Path ); + + GConfig->GetBool( + Section, + TEXT("bEnableImageValidityCheck"), + bEnableImageValidityCheck, + *Path + ); } FORCEINLINE void Save(const FString& Path) const @@ -2657,6 +2743,13 @@ struct STEREOLABS_API FSlInitParameters GrabComputeCappingFPS, *Path ); + + GConfig->SetBool( + Section, + TEXT("bEnableImageValidityCheck"), + bEnableImageValidityCheck, + *Path + ); } /** Input type used in the ZED SDK */ @@ -2785,6 +2878,15 @@ struct STEREOLABS_API FSlInitParameters */ UPROPERTY(EditAnywhere, BlueprintReadWrite) float GrabComputeCappingFPS; + /** + Enable or disable the image validity verification. + This will perform additional verification on the image to identify corrupted data. This verification is done in the grab function and requires some computations. + If an issue is found, the grab function will output a warning as sl::ERROR_CODE::CORRUPTED_FRAME. + This version doesn't detect frame tearing currently. + \n default: disabled + */ + UPROPERTY(EditAnywhere, BlueprintReadWrite) + bool bEnableImageValidityCheck; }; /* diff --git a/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCameraProxy.h b/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCameraProxy.h index 92d0f26..ef0cbd8 100644 --- a/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCameraProxy.h +++ b/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCameraProxy.h @@ -188,6 +188,19 @@ class STEREOLABS_API USlCameraProxy : public UObject UFUNCTION(BlueprintPure, meta = (Keywords = "get zed camera settings"), Category = "Zed|Camera") FSlVideoSettings GetCameraSettings(); + UFUNCTION(BlueprintPure, meta = (Keywords = "get zed camera setting"), Category = "Zed|Camera") + bool GetCameraSetting(ESlVideoSettings CameraSetting, int& value); + + UFUNCTION(BlueprintPure, meta = (Keywords = "is camera setting supported"), Category = "Zed|Camera") + + bool IsCameraSettingSupported(ESlVideoSettings CameraSetting); + + /* + * Set a camera setting + * @param NewCameraSettings The camera setting to set + */ + UFUNCTION(BlueprintPure, meta = (Keywords = "set zed camera setting"), Category = "Zed|Camera") + bool SetCameraSetting(ESlVideoSettings NewCameraSettings, int value); /* * Set the camera settings * @param NewCameraSettings The camera settings to set @@ -262,6 +275,17 @@ class STEREOLABS_API USlCameraProxy : public UObject UFUNCTION(BlueprintPure, meta = (Keywords = "get zed pose"), Category = "Zed|Tracking") ESlTrackingState GetPosition(FSlPose& Pose, ESlReferenceFrame ReferenceFrame); + UFUNCTION(BlueprintPure, meta = (Keywords = "Set Region Of Interest"), Category = "Zed|Tracking") + ESlErrorCode SetRegionOfInterest(FSlMat& Mat); + + UFUNCTION(BlueprintPure, meta = (Keywords = "Get Region Of Interest"), Category = "Zed|Tracking") + ESlErrorCode GetRegionOfInterest(FSlMat& Mat, FIntPoint& resolution); + + UFUNCTION(BlueprintPure, meta = (Keywords = "start region of interest auto detection"), Category = "Zed|Tracking") + ESlErrorCode StartRegionOfInterestAutoDetection(FSlRegionOfInterestParameters& roiParams); + + UFUNCTION(BlueprintPure, meta = (Keywords = "get region of interest auto detection status"), Category = "Zed|Tracking") + ESlRegionOfInterestAutoDetectionState GetRegionOfInterestAutoDetectionStatus(); /* * Get the current IMU data * @param IMUData The current IMU data diff --git a/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCoreGlobals.h b/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCoreGlobals.h index fc894e2..45b7241 100644 --- a/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCoreGlobals.h +++ b/Plugins/Stereolabs/Source/Stereolabs/Public/Core/StereolabsCoreGlobals.h @@ -229,6 +229,10 @@ namespace sl { switch (SlType) { + case sl::ERROR_CODE::CORRUPTED_FRAME: /**< The image could be corrupted, Enabled with the parameter InitParameters::enable_image_validity_check.*/ + return ESlErrorCode::EC_CorruptedFrame; + case sl::ERROR_CODE::CAMERA_REBOOTING: /**< The camera is currently rebooting.*/ + return ESlErrorCode::EC_CameraRebooting; case sl::ERROR_CODE::SUCCESS: /**< Standard code for successful behavior.*/ return ESlErrorCode::EC_Success; case sl::ERROR_CODE::FAILURE: /**< Standard code for unsuccessful behavior.*/ @@ -312,7 +316,9 @@ namespace sl { switch (SlType) { - case -1: + case SL_ERROR_CODE_CORRUPTED_FRAME: + return ESlErrorCode::EC_CorruptedFrame; + case SL_ERROR_CODE_CAMERA_REBOOTING: return ESlErrorCode::EC_CameraRebooting; case SL_ERROR_CODE_SUCCESS: /**< Standard code for successful behavior.*/ return ESlErrorCode::EC_Success; @@ -2109,38 +2115,6 @@ namespace sl return TrackingParameters; } - /* - * Covnert from FSlInitParameters to sl::InitParameters - */ - FORCEINLINE sl::InitParameters ToSlType(const FSlInitParameters& UnrealData) - { - sl::InitParameters InitParameters; - - InitParameters.camera_disable_self_calib = UnrealData.bDisableSelfCalibration; - InitParameters.camera_fps = UnrealData.FPS; - InitParameters.camera_image_flip = (int)UnrealData.VerticalFlipImage; - InitParameters.camera_resolution = sl::unreal::ToSlType(UnrealData.Resolution); - InitParameters.coordinate_system = sl::unreal::ToSlType(UnrealData.CoordinateSystem); - InitParameters.coordinate_units = sl::unreal::ToSlType(UnrealData.Unit); - InitParameters.depth_minimum_distance = UnrealData.DepthMinimumDistance; - InitParameters.depth_mode = sl::unreal::ToSlType(UnrealData.DepthMode); - InitParameters.enable_right_side_measure = UnrealData.bEnableRightSideMeasure; - InitParameters.sdk_gpu_id = FMath::FloorToInt(UnrealData.GPUID); - InitParameters.sdk_verbose = UnrealData.Verbose; - InitParameters.sdk_verbose_log_file = TCHAR_TO_UTF8(*UnrealData.VerboseFilePath); - InitParameters.grab_compute_capping_fps = UnrealData.GrabComputeCappingFPS; - if (UnrealData.InputType == ESlInputType::IT_SVO) - { - InitParameters.input.setFromSVOFile(TCHAR_TO_UTF8(*UnrealData.SvoPath)); - InitParameters.svo_real_time_mode = UnrealData.bRealTime; - } - else if (UnrealData.InputType == ESlInputType::IT_STREAM) { - InitParameters.input.setFromStream(TCHAR_TO_UTF8(*UnrealData.StreamIP), UnrealData.StreamPort); - } - InitParameters.depth_stabilization = UnrealData.DepthStabilization; - - return InitParameters; - } FORCEINLINE SL_ObjectDetectionParameters ToSlType(const FSlObjectDetectionParameters& UnrealData) { diff --git a/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/bin/sl_zed_c.dll b/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/bin/sl_zed_c.dll index b821f5aa13ad2d78024279d53d69891eed155201..97324d45293deda721624e42bfdb06fe1340850a 100644 GIT binary patch delta 65901 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 Zhj?}@wsFBi-~d~N&`EIP6s~!~%POYkY?K@Z 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�xTJ+mF29EHo6T+hR6 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 Diagnostic tool from the command line with the option -r.*/ + SL_ERROR_CODE_SENSORS_NOT_AVAILABLE, /**< A camera with sensor is detected but the sensors (IMU, barometer, ...) cannot be opened. Only the \ref SL_MODEL_ZED does not has sensors. Unplug/replug is required.*/ + SL_ERROR_CODE_INVALID_RESOLUTION, /**< In case of invalid resolution parameter, such as an upsize beyond the original image size in \ref sl_retrieve_image. */ + SL_ERROR_CODE_LOW_USB_BANDWIDTH, /**< Insufficient bandwidth for the correct use of the camera. This issue can occur when you use multiple cameras or a USB 2.0 port.*/ + SL_ERROR_CODE_CALIBRATION_FILE_NOT_AVAILABLE, /**< The calibration file of the camera is not found on the host machine. Use ZED Explorer or ZED Calibration to download the factory calibration file.*/ + SL_ERROR_CODE_INVALID_CALIBRATION_FILE, /**< The calibration file is not valid. Try to download the factory calibration file or recalibrate your camera using ZED Calibration.*/ SL_ERROR_CODE_INVALID_SVO_FILE, /**< The provided SVO file is not valid.*/ - SL_ERROR_CODE_SVO_RECORDING_ERROR, /**< An recorder related error occurred (not enough free storage, invalid file).*/ - SL_ERROR_CODE_SVO_UNSUPPORTED_COMPRESSION, /**< An SVO related error when NVIDIA based compression cannot be loaded.*/ - SL_ERROR_CODE_END_OF_SVOFILE_REACHED, /**our documentation. +\warning All resolutions are not available for every camera. +\warning You can find the available resolutions for each camera in our documentation. */ enum SL_RESOLUTION { - SL_RESOLUTION_HD2K, /**< 2208*1242, available framerates: 15 fps.*/ - SL_RESOLUTION_HD1080, /**< 1920*1080, available framerates: 15, 30, 60 fps.*/ - SL_RESOLUTION_HD1200, /**< 1920*1200, available framerates: 15, 30, 60 fps.*/ - SL_RESOLUTION_HD720, /**< 1280*720, available framerates: 15, 30, 60 fps.*/ - SL_RESOLUTION_SVGA, /**< 960*600, available framerates: 15, 30, 60, 120 fps.*/ - SL_RESOLUTION_VGA, /**< 672*376, available framerates: 15, 30, 60, 100 fps.*/ - SL_RESOLUTION_AUTO, /**< Select the resolution compatible with camera, on ZED X HD1200, HD720 otherwise */ + SL_RESOLUTION_HD2K, /**< 2208*1242 (x2) \n Available FPS: 15*/ + SL_RESOLUTION_HD1080, /**< 1920*1080 (x2) \n Available FPS: 15, 30*/ + SL_RESOLUTION_HD1200, /**< 1920*1200 (x2) \n Available FPS: 15, 30, 60*/ + SL_RESOLUTION_HD720, /**< 1280*720 (x2) \n Available FPS: 15, 30, 60*/ + SL_RESOLUTION_SVGA, /**< 960*600 (x2) \n Available FPS: 15, 30, 60, 120*/ + SL_RESOLUTION_VGA, /**< 672*376 (x2) \n Available FPS: 15, 30, 60, 100*/ + SL_RESOLUTION_AUTO, /**< Select the resolution compatible with the camera:

  • ZED X/X Mini: \ref SL_RESOLUTION_HD1200
  • other cameras: \ref SL_RESOLUTION_HD720
*/ }; /** -\brief Lists available unit for measures. +\brief Lists available units for measures. */ enum SL_UNIT { - SL_UNIT_MILLIMETER, /**< International System, 1/1000 METER. */ - SL_UNIT_CENTIMETER, /**< International System, 1/100 METER. */ - SL_UNIT_METER, /**< International System, 1 METER */ - SL_UNIT_INCH, /**< Imperial Unit, 1/12 FOOT */ - SL_UNIT_FOOT /**< Imperial Unit, 1 FOOT */ + SL_UNIT_MILLIMETER, /**< International System (1/1000 meters) */ + SL_UNIT_CENTIMETER, /**< International System (1/100 meters) */ + SL_UNIT_METER, /**< International System (1 meter) */ + SL_UNIT_INCH, /**< Imperial Unit (1/12 feet) */ + SL_UNIT_FOOT /**< Imperial Unit (1 foot) */ }; /** @@ -287,129 +489,138 @@ enum SL_UNIT { \image html CoordinateSystem.png */ enum SL_COORDINATE_SYSTEM { - SL_COORDINATE_SYSTEM_IMAGE, /**< Standard coordinates system in computer vision. Used in OpenCV : see here. */ - SL_COORDINATE_SYSTEM_LEFT_HANDED_Y_UP, /**< Left-Handed with Y up and Z forward. Used in Unity with DirectX. */ - SL_COORDINATE_SYSTEM_RIGHT_HANDED_Y_UP, /**< Right-Handed with Y pointing up and Z backward. Used in OpenGL. */ - SL_COORDINATE_SYSTEM_RIGHT_HANDED_Z_UP, /**< Right-Handed with Z pointing up and Y forward. Used in 3DSMax. */ - SL_COORDINATE_SYSTEM_LEFT_HANDED_Z_UP, /**< Left-Handed with Z axis pointing up and X forward. Used in Unreal Engine. */ - SL_COORDINATE_SYSTEM_RIGHT_HANDED_Z_UP_X_FWD /**< Right-Handed with Z pointing up and X forward. Used in ROS (REP 103). */ + SL_COORDINATE_SYSTEM_IMAGE, /**< Standard coordinates system in computer vision.\n Used in OpenCV: see here. */ + SL_COORDINATE_SYSTEM_LEFT_HANDED_Y_UP, /**< Left-handed with Y up and Z forward.\n Used in Unity with DirectX. */ + SL_COORDINATE_SYSTEM_RIGHT_HANDED_Y_UP, /**< Right-handed with Y pointing up and Z backward.\n Used in OpenGL. */ + SL_COORDINATE_SYSTEM_RIGHT_HANDED_Z_UP, /**< Right-handed with Z pointing up and Y forward.\n Used in 3DSMax. */ + SL_COORDINATE_SYSTEM_LEFT_HANDED_Z_UP, /**< Left-handed with Z axis pointing up and X forward.\n Used in Unreal Engine. */ + SL_COORDINATE_SYSTEM_RIGHT_HANDED_Z_UP_X_FWD /**< Right-handed with Z pointing up and X forward.\n Used in ROS (REP 103). */ }; /** -\brief List of possible camera state +\brief Lists possible camera states. */ enum SL_CAMERA_STATE { - SL_CAMERA_STATE_AVAILABLE, /**< Defines if the camera can be opened by the SDK */ - SL_CAMERA_STATE_NOT_AVAILABLE, /**< Defines if the camera is already opened and unavailable*/ + SL_CAMERA_STATE_AVAILABLE, /**< The camera can be opened by the ZED SDK. */ + SL_CAMERA_STATE_NOT_AVAILABLE, /**< The camera is already opened and unavailable. */ }; /** -\brief Lists compatible ZED Camera model +\brief Lists ZED camera model. */ enum SL_MODEL { - SL_MODEL_ZED, /**< Defines ZED Camera model */ - SL_MODEL_ZED_M, /**< Defines ZED Mini (ZED-M) Camera model */ - SL_MODEL_ZED2, /**< Defines ZED 2 Camera model */ - SL_MODEL_ZED2i, /**< Defines ZED 2i Camera model */ - SL_MODEL_ZED_X, - SL_MODEL_ZED_XM + SL_MODEL_ZED, /**< ZED camera model */ + SL_MODEL_ZED_M, /**< ZED Mini (ZED M) camera model */ + SL_MODEL_ZED2, /**< ZED 2 camera model */ + SL_MODEL_ZED2i, /**< ZED 2i camera model */ + SL_MODEL_ZED_X, /**< ZED X camera model */ + SL_MODEL_ZED_XM /**< ZED X Mini (ZED XM) camera model */ }; /** -\brief List available memory type +\brief Lists available memory type. */ enum SL_MEM { - SL_MEM_CPU, /**< CPU Memory (Processor side).*/ - SL_MEM_GPU /**< GPU Memory (Graphic card side).*/ + SL_MEM_CPU, /**< Data will be stored on the CPU (processor side).*/ + SL_MEM_GPU /**< Data will be stored on the GPU (graphic card side).*/ }; /** -\brief List of the available onboard sensors +\brief Lists available sensor types. +\note Sensors are not available on \ref SL_MODEL_ZED. */ enum SL_SENSOR_TYPE { - SL_SENSOR_TYPE_ACCELEROMETER, /**< Three axis Accelerometer sensor to measure the inertial accelerations. */ - SL_SENSOR_TYPE_GYROSCOPE, /**< Three axis Gyroscope sensor to measure the angular velocitiers. */ - SL_SENSOR_TYPE_MAGNETOMETER, /**< Three axis Magnetometer sensor to measure the orientation of the device respect to the earth magnetic field. */ + SL_SENSOR_TYPE_ACCELEROMETER, /**< Three-axis accelerometer sensor to measure the inertial accelerations. */ + SL_SENSOR_TYPE_GYROSCOPE, /**< Three-axis gyroscope sensor to measure the angular velocities. */ + SL_SENSOR_TYPE_MAGNETOMETER, /**< Three-axis magnetometer sensor to measure the orientation of the device with respect to the Earth's magnetic field. */ SL_SENSOR_TYPE_BAROMETER, /**< Barometer sensor to measure the atmospheric pressure. */ }; /** -\brief List of the available onboard sensors measurement units +\brief Lists available measurement units of onboard sensors. +\note Sensors are not available on \ref SL_MODEL_ZED. */ enum SL_SENSORS_UNIT { - SL_SENSORS_UNIT_M_SEC_2, /**< Acceleration [m/s²]. */ - SL_SENSORS_UNIT_DEG_SEC, /**< Angular velocity [deg/s]. */ - SL_SENSORS_UNIT_U_T, /**< MAgnetic Fiels [uT]. */ - SL_SENSORS_UNIT_HPA, /**< Atmospheric pressure [hPa]. */ - SL_SENSORS_UNIT_CELSIUS, /**< Temperature [°C]. */ - SL_SENSORS_UNIT_HERTZ /**< Frequency [Hz]. */ + SL_SENSORS_UNIT_M_SEC_2, /**< m/s² (acceleration) */ + SL_SENSORS_UNIT_DEG_SEC, /**< deg/s (angular velocity) */ + SL_SENSORS_UNIT_U_T, /**< μT (magnetic field) */ + SL_SENSORS_UNIT_HPA, /**< hPa (atmospheric pressure) */ + SL_SENSORS_UNIT_CELSIUS, /**< °C (temperature) */ + SL_SENSORS_UNIT_HERTZ, /**< Hz (frequency) */ }; +/** +\brief Lists possible sides on which to get data from. +*/ enum SL_SIDE { SL_SIDE_LEFT, /**< Left side only.*/ SL_SIDE_RIGHT, /**< Right side only.*/ - SL_SIDE_BOTH /**< Left and Right side.*/ + SL_SIDE_BOTH /**< Left and right side.*/ }; +/** +\brief Lists available input types in the ZED SDK. + */ enum SL_INPUT_TYPE { - SL_INPUT_TYPE_USB, - SL_INPUT_TYPE_SVO, - SL_INPUT_TYPE_STREAM, - SL_INPUT_TYPE_GMSL + SL_INPUT_TYPE_USB, /**< USB input mode */ + SL_INPUT_TYPE_SVO, /**< SVO file input mode */ + SL_INPUT_TYPE_STREAM, /**< STREAM input mode (requires to use sl_enable_streaming() / sl_disable_streaming() on the "sender" side) */ + SL_INPUT_TYPE_GMSL /**< GMSL input mode (only on NVIDIA Jetson) */ }; /** -\brief Defines which type of position matrix is used to store camera path and pose. +\brief Lists possible types of position matrix used to store camera path and pose. */ enum SL_REFERENCE_FRAME { - SL_REFERENCE_FRAME_WORLD, /**< The transform of SL_Pose will contains the motion with reference to the world frame (previously called PATH).*/ - SL_REFERENCE_FRAME_CAMERA, /**< The transform of SL_Pose will contains the motion with reference to the previous camera frame (previously called POSE).*/ + SL_REFERENCE_FRAME_WORLD, /**< SL_PoseData will contain the motion with reference to the world frame (previously called SL_PATH).*/ + SL_REFERENCE_FRAME_CAMERA, /**< SL_PoseData will contain the motion with reference to the previous camera frame (previously called SL_POSE)*/ }; /** -\brief Lists specific and particular timestamps +\brief Lists possible time references for timestamps or data. */ enum SL_TIME_REFERENCE { - SL_TIME_REFERENCE_IMAGE, /** Defines the timestamp at the time the frame has been extracted from USB stream. */ - SL_TIME_REFERENCE_CURRENT, /** Defines the timestamp at the time of the function call. */ + SL_TIME_REFERENCE_IMAGE, /**< The requested timestamp or data will be at the time of the frame extraction. */ + SL_TIME_REFERENCE_CURRENT, /**< The requested timestamp or data will be at the time of the function call. */ }; /** -\brief List of codec +\brief Lists the different encoding types for image streaming. */ enum SL_STREAMING_CODEC { - SL_STREAMING_CODEC_H264, /**< AVCHD/H264 encoding used in image streaming.*/ - SL_STREAMING_CODEC_H265, /**< HEVC/H265 encoding used in image streaming.*/ + SL_STREAMING_CODEC_H264, /**< AVCHD/H264 encoding*/ + SL_STREAMING_CODEC_H265, /**< HEVC/H265 encoding*/ }; /** -\brief Lists available camera settings for the ZED camera (contrast, hue, saturation, gain...). -\warning GAIN and EXPOSURE are linked in auto/default mode (see \ref SL_Camera::setCameraSettings). +\brief Lists available camera settings for the camera (contrast, hue, saturation, gain, ...). +\warning \ref SL_VIDEO_SETTINGS_GAIN and \ref SL_VIDEO_SETTINGS_EXPOSURE are linked in auto/default mode (see sl_set_camera_settings()). */ -enum SL_VIDEO_SETTINGS { - SL_VIDEO_SETTINGS_BRIGHTNESS, /**< Defines the brightness control. Affected value should be between 0 and 8.*/ - SL_VIDEO_SETTINGS_CONTRAST, /**< Defines the contrast control. Affected value should be between 0 and 8.*/ - SL_VIDEO_SETTINGS_HUE, /**< Defines the hue control. Affected value should be between 0 and 11.*/ - SL_VIDEO_SETTINGS_SATURATION, /**< Defines the saturation control. Affected value should be between 0 and 8.*/ - SL_VIDEO_SETTINGS_SHARPNESS, /**< Defines the digital sharpening control. Affected value should be between 0 and 8.*/ - SL_VIDEO_SETTINGS_GAMMA, /**< Defines the ISP gamma control. Affected value should be between 1 and 9.*/ - SL_VIDEO_SETTINGS_GAIN, /**< Defines the gain control. Affected value should be between 0 and 100 for manual control.*/ - SL_VIDEO_SETTINGS_EXPOSURE, /**< Defines the exposure control. Affected value should be between 0 and 100 for manual control.\n The exposition is mapped linearly in a percentage of the following max values. Special case for the setExposure(0) that corresponds to 0.17072ms.\n The conversion to milliseconds depends on the framerate:
  • 15fps setExposure(100) -> 19.97ms
  • 30fps setExposure(100) -> 19.97ms
  • 60fps setExposure(100) -> 10.84072ms
  • 100fps setExposure(100) -> 10.106624ms
*/ - SL_VIDEO_SETTINGS_AEC_AGC, /**< Defines if the Gain and Exposure are in automatic mode or not. Setting a Gain or Exposure through @GAIN or @EXPOSURE values will automatically set this value to 0.*/ - SL_VIDEO_SETTINGS_AEC_AGC_ROI, /**< Defines the region of interest for automatic exposure/gain computation. To be used with overloaded @setCameraSettings/@getCameraSettings functions.*/ - SL_VIDEO_SETTINGS_WHITEBALANCE_TEMPERATURE, /**< Defines the color temperature value. Setting a value will automatically set @WHITEBALANCE_AUTO to 0. Affected value should be between 2800 and 6500 with a step of 100.*/ - SL_VIDEO_SETTINGS_WHITEBALANCE_AUTO, /**< Defines if the White balance is in automatic mode or not*/ - SL_VIDEO_SETTINGS_LED_STATUS, /**< Defines the status of the camera front LED. Set to 0 to disable the light, 1 to enable the light. Default value is on. Requires Camera FW 1523 at least.*/ - SL_VIDEO_SETTINGS_EXPOSURE_TIME,/**< Defines the real exposure time in microseconds. Only available for GMSL based cameras. Recommended for ZED-X/ZED-XM to control manual exposure (instead of EXPOSURE setting)*/ - SL_VIDEO_SETTINGS_ANALOG_GAIN,/**< Defines the real analog gain (sensor) in mDB. Range is defined by Jetson DTS and by default [1000-16000]. Recommended for ZED-X/ZED-XM to control manual sensor gain (instead of GAIN setting). Only available for GMSL based cameras.*/ - SL_VIDEO_SETTINGS_DIGITAL_GAIN,/**< Defines the real digital gain (ISP) as a factor. Range is defined by Jetson DTS and by default [1-256]. Recommended for ZED-X/ZED-XM to control manual ISP gain (instead of GAIN setting). Only available for GMSL based cameras.*/ - SL_VIDEO_SETTINGS_AUTO_EXPOSURE_TIME_RANGE,/**< Defines the range of exposure auto control in micro seconds.Used with \ref setCameraSettings(VIDEO_SETTINGS,int,int). Min/Max range between Max range defined in DTS. By default : [28000 - or 19000] us. Only available for GMSL based cameras.*/ - SL_VIDEO_SETTINGS_AUTO_ANALOG_GAIN_RANGE, /**< Defines the range of sensor gain in automatic control. Used in setCameraSettings(VIDEO_SETTINGS,int,int). Min/Max range between [1000 - 16000]mdB */ - SL_VIDEO_SETTINGS_AUTO_DIGITAL_GAIN_RANGE, /**< Defines the range of digital ISP gain in automatic control. Used in setCameraSettings(VIDEO_SETTINGS,int,int) */ - SL_VIDEO_SETTINGS_EXPOSURE_COMPENSATION, /**< Exposure target compensation made after AE. Reduces the overall illumination by factor of F-stops. values range is [0 - 100] (mapped between [-2.0,2.0]). Only available for GMSL based cameras*/ - SL_VIDEO_SETTINGS_DENOISING, /**< Defines the level of denoising applied on both left and right images. values range is [0-100].Default value is 50. Only available for GMSL based cameras*/ +enum SL_VIDEO_SETTINGS +{ + SL_VIDEO_SETTINGS_BRIGHTNESS, /**< Brightness control \n Affected value should be between 0 and 8. \note Not available for ZED X/X Mini cameras.*/ + SL_VIDEO_SETTINGS_CONTRAST, /**< Contrast control \n Affected value should be between 0 and 8. \note Not available for ZED X/X Mini cameras.*/ + SL_VIDEO_SETTINGS_HUE, /**< Hue control \n Affected value should be between 0 and 11. \note Not available for ZED X/X Mini cameras.*/ + SL_VIDEO_SETTINGS_SATURATION, /**< Saturation control \n Affected value should be between 0 and 8.*/ + SL_VIDEO_SETTINGS_SHARPNESS, /**< Digital sharpening control \n Affected value should be between 0 and 8.*/ + SL_VIDEO_SETTINGS_GAMMA, /**< ISP gamma control \n Affected value should be between 1 and 9.*/ + SL_VIDEO_SETTINGS_GAIN, /**< Gain control \n Affected value should be between 0 and 100 for manual control. \note If \ref SL_VIDEO_SETTINGS_EXPOSURE is set to -1 (automatic mode), then \ref SL_VIDEO_SETTINGS_GAIN will be automatic as well.*/ + SL_VIDEO_SETTINGS_EXPOSURE, /**< Exposure control \n Affected value should be between 0 and 100 for manual control.\n The exposition is mapped linearly in a percentage of the following max values.\n Special case for \ref SL_VIDEO_SETTINGS_EXPOSURE = 0 that corresponds to 0.17072ms.\n The conversion to milliseconds depends on the framerate:
  • 15fps & \ref SL_VIDEO_SETTINGS_EXPOSURE = 100 -> 19.97ms
  • 30fps & \ref SL_VIDEO_SETTINGS_EXPOSURE = 100 -> 19.97ms
  • 60fps & \ref SL_VIDEO_SETTINGS_EXPOSURE = 100 -> 10.84072ms
  • 100fps & \ref SL_VIDEO_SETTINGS_EXPOSURE = 100 -> 10.106624ms
*/ + SL_VIDEO_SETTINGS_AEC_AGC, /**< Defines if the \ref SL_VIDEO_SETTINGS_GAIN and \ref SL_VIDEO_SETTINGS_EXPOSURE are in automatic mode or not.\n Setting \ref SL_VIDEO_SETTINGS_GAIN or \ref SL_VIDEO_SETTINGS_EXPOSURE values will automatically set this value to 0.*/ + SL_VIDEO_SETTINGS_AEC_AGC_ROI, /**< Defines the region of interest for automatic exposure/gain computation.\n To be used with dedicated sl_set_roi_for_aec_agc() / sl_get_roi_for_aec_agc() functions.*/ + SL_VIDEO_SETTINGS_WHITEBALANCE_TEMPERATURE, /**< Color temperature control \n Affected value should be between 2800 and 6500 with a step of 100. \note Setting a value will automatically set \ref SL_VIDEO_SETTINGS_WHITEBALANCE_AUTO to 0.*/ + SL_VIDEO_SETTINGS_WHITEBALANCE_AUTO, /**< Defines if the white balance is in automatic mode or not.*/ + SL_VIDEO_SETTINGS_LED_STATUS, /**< Status of the front LED of the camera.\n Set to 0 to disable the light, 1 to enable the light.\n Default value is on. \note Requires camera firmware 1523 at least.*/ + SL_VIDEO_SETTINGS_EXPOSURE_TIME, /**< Real exposure time control in microseconds. \note Only available for ZED X/X Mini cameras.\note Replace \ref SL_VIDEO_SETTINGS_EXPOSURE setting.*/ + SL_VIDEO_SETTINGS_ANALOG_GAIN, /**< Real analog gain (sensor) control in mDB.\n The range is defined by Jetson DTS and by default [1000-16000]. \note Only available for ZED X/X Mini cameras.\note Replace \ref SL_VIDEO_SETTINGS_GAIN settings.*/ + SL_VIDEO_SETTINGS_DIGITAL_GAIN, /**< Real digital gain (ISP) as a factor. \n The range is defined by Jetson DTS and by default [1-256]. \note Only available for ZED X/X Mini cameras.\note Replace \ref SL_VIDEO_SETTINGS_GAIN settings.*/ + SL_VIDEO_SETTINGS_AUTO_EXPOSURE_TIME_RANGE, /**< Range of exposure auto control in microseconds.\n Used with sl_get_camera_settings_min_max().\n Min/max range between max range defined in DTS.\n By default: [28000 - or 19000] us.\note Only available for ZED X/X Mini cameras.*/ + SL_VIDEO_SETTINGS_AUTO_ANALOG_GAIN_RANGE, /**< Range of sensor gain in automatic control.\n Used with sl_get_camera_settings_min_max().\n Min/max range between max range defined in DTS.\n By default: [1000 - 16000] mdB. \note Only available for ZED X/X Mini cameras.*/ + SL_VIDEO_SETTINGS_AUTO_DIGITAL_GAIN_RANGE, /**< Range of digital ISP gain in automatic control.\n Used with sl_get_camera_settings_min_max().\n Min/max range between max range defined in DTS.\n By default: [1 - 256]. \note Only available for ZED X/X Mini cameras. */ + SL_VIDEO_SETTINGS_EXPOSURE_COMPENSATION, /**< Exposure-target compensation made after auto exposure.\n Reduces the overall illumination target by factor of F-stops.\n Affected value should be between 0 and 100 (mapped between [-2.0,2.0]).\n Default value is 50, i.e. no compensation applied. \note Only available for ZED X/X Mini cameras.*/ + SL_VIDEO_SETTINGS_DENOISING, /**< Level of denoising applied on both left and right images.\n Affected value should be between 0 and 100.\n Default value is 50. \note Only available for ZED X/X Mini cameras.*/ SL_VIDEO_SETTINGS_LAST }; @@ -419,80 +630,86 @@ const int SL_VIDEO_SETTINGS_VALUE_AUTO = -1; \brief Lists retrievable measures. */ enum SL_MEASURE { - SL_MEASURE_DISPARITY, /** Disparity map. Each pixel contains 1 float. SL_MAT_TYPE_F32_C1.*/ - SL_MEASURE_DEPTH, /** Depth map. In SL_UNIT defined in SL_InitParameters. Each pixel contains 1 float. SL_MAT_TYPE_F32_C1.*/ - SL_MEASURE_CONFIDENCE, /** Certainty/confidence of the depth map. Each pixel contains 1 float. SL_MAT_TYPE_F32_C1.*/ - SL_MEASURE_XYZ, /** Point cloud. Each pixel contains 4 float (X, Y, Z, not used). SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZRGBA, /** Colored point cloud. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the RGBA color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZBGRA, /** Colored point cloud. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the BGRA color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZARGB, /** Colored point cloud. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the ARGB color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZABGR, /** Colored point cloud. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the ABGR color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_NORMALS, /** Normals vector. Each pixel contains 4 float (X, Y, Z, 0). SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_DISPARITY_RIGHT, /**< Disparity map for right sensor. Each pixel contains 1 float. SL_MAT_TYPE_F32_C1.*/ - SL_MEASURE_DEPTH_RIGHT, /** Depth map for right sensor. Each pixel contains 1 float. SL_MAT_TYPE_F32_C1.*/ - SL_MEASURE_XYZ_RIGHT, /** Point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, not used). SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZRGBA_RIGHT, /** Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the RGBA color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZBGRA_RIGHT, /** Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the BGRA color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZARGB_RIGHT, /** Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the ARGB color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_XYZABGR_RIGHT, /** Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color). The color need to be read as an unsigned char[4] representing the ABGR color. SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_NORMALS_RIGHT, /** Normals vector for right view. Each pixel contains 4 float (X, Y, Z, 0). SL_MAT_TYPE_F32_C4.*/ - SL_MEASURE_DEPTH_U16_MM, /** Depth map in millimeter whatever the SL_UNIT defined in SL_InitParameters. Invalid values are set to 0, depth values are clamped at 65000. Each pixel contains 1 unsigned short. SL_MAT_TYPE_U16_C1.*/ - SL_MEASURE_DEPTH_U16_MM_RIGHT /** Depth map in millimeter for right sensor. Each pixel contains 1 unsigned short. SL_MAT_TYPE_U16_C1.*/ + SL_MEASURE_DISPARITY, /**< Disparity map. Each pixel contains 1 float.\n Type: \ref SL_MAT_TYPE_F32_C1*/ + SL_MEASURE_DEPTH, /**< Depth map in sl::UNIT defined in SL_InitParameters::coordinate_unit. Each pixel contains 1 float.\n Type: \ref SL_MAT_TYPE_F32_C1*/ + SL_MEASURE_CONFIDENCE, /**< Certainty/confidence of the depth map. Each pixel contains 1 float.\n Type: \ref SL_MAT_TYPE_F32_C1*/ + SL_MEASURE_XYZ, /**< Point cloud. Each pixel contains 4 float (X, Y, Z, not used).\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZRGBA, /**< Colored point cloud. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the RGBA color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZBGRA, /**< Colored point cloud. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the BGRA color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZARGB, /**< Colored point cloud. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the ARGB color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZABGR, /**< Colored point cloud. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the ABGR color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_NORMALS, /**< Normal vectors map. Each pixel contains 4 float (X, Y, Z, 0).\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_DISPARITY_RIGHT, /**< Disparity map for right sensor. Each pixel contains 1 float.\n Type: \ref SL_MAT_TYPE_F32_C1*/ + SL_MEASURE_DEPTH_RIGHT, /**< Depth map for right sensor. Each pixel contains 1 float.\n Type: \ref SL_MAT_TYPE_F32_C1*/ + SL_MEASURE_XYZ_RIGHT, /**< Point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, not used).\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZRGBA_RIGHT, /**< Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the RGBA color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZBGRA_RIGHT, /**< Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the BGRA color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZARGB_RIGHT, /**< Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the ARGB color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_XYZABGR_RIGHT, /**< Colored point cloud for right sensor. Each pixel contains 4 float (X, Y, Z, color).\n The color should to be read as an unsigned char[4] representing the ABGR color.\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_NORMALS_RIGHT, /**< Normal vectors map for right view. Each pixel contains 4 float (X, Y, Z, 0).\n Type: \ref SL_MAT_TYPE_F32_C4*/ + SL_MEASURE_DEPTH_U16_MM, /**< Depth map in millimeter whatever the sl::UNIT defined in SL_InitParameters::coordinate_unit.\n Invalid values are set to 0 and depth values are clamped at 65000.\n Each pixel contains 1 unsigned short.\n Type: \ref SL_MAT_TYPE_U16_C1.*/ + SL_MEASURE_DEPTH_U16_MM_RIGHT /**< Depth map in millimeter for right sensor. Each pixel contains 1 unsigned short.\n Type: \ref SL_MAT_TYPE_U16_C1.*/ }; /** \brief Lists available views. */ enum SL_VIEW { - SL_VIEW_LEFT, /** Left BGRA image. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_RIGHT, /** Right BGRA image. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_LEFT_GRAY, /** Left GRAY image. Each pixel contains 1 unsigned char. SL_MAT_TYPE_U8_C1. */ - SL_VIEW_RIGHT_GRAY, /** Right GRAY image. Each pixel contains 1 unsigned char. SL_MAT_TYPE_U8_C1. */ - SL_VIEW_LEFT_UNRECTIFIED, /** Left BGRA unrectified image. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_RIGHT_UNRECTIFIED, /** Right BGRA unrectified image. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_LEFT_UNRECTIFIED_GRAY, /** Left GRAY unrectified image. Each pixel contains 1 unsigned char. SL_MAT_TYPE_U8_C1. */ - SL_VIEW_RIGHT_UNRECTIFIED_GRAY, /** Right GRAY unrectified image. Each pixel contains 1 unsigned char. SL_MAT_TYPE_U8_C1. */ - SL_VIEW_SIDE_BY_SIDE, /** Left and right image (the image width is therefore doubled). Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_DEPTH, /** Color rendering of the depth. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. Use \ref MEASURE "MEASURE_DEPTH" with \ref Camera.retrieveMeasure() to get depth values.*/ - SL_VIEW_CONFIDENCE, /** Color rendering of the depth confidence. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_NORMALS, /** Color rendering of the normals. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_DEPTH_RIGHT, /** Color rendering of the right depth mapped on right sensor. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ - SL_VIEW_NORMALS_RIGHT /** Color rendering of the normals mapped on right sensor. Each pixel contains 4 unsigned char (B,G,R,A). SL_MAT_TYPE_U8_C4. */ -}; - -/** -\brief Lists available object tracking state + SL_VIEW_LEFT, /**< Left BGRA image. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 */ + SL_VIEW_RIGHT, /**< Right BGRA image. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 */ + SL_VIEW_LEFT_GRAY, /**< Left gray image. Each pixel contains 1 unsigned char.\n Type: \ref SL_MAT_TYPE_U8_C1 */ + SL_VIEW_RIGHT_GRAY, /**< Right gray image. Each pixel contains 1 unsigned char.\n Type: \ref SL_MAT_TYPE_U8_C1 */ + SL_VIEW_LEFT_UNRECTIFIED, /**< Left BGRA unrectified image. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 */ + SL_VIEW_RIGHT_UNRECTIFIED, /**< Right BGRA unrectified image. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 */ + SL_VIEW_LEFT_UNRECTIFIED_GRAY, /**< Left gray unrectified image. Each pixel contains 1 unsigned char.\n Type: \ref SL_MAT_TYPE_U8_C1 */ + SL_VIEW_RIGHT_UNRECTIFIED_GRAY, /**< Right gray unrectified image. Each pixel contains 1 unsigned char.\n Type: \ref SL_MAT_TYPE_U8_C1 */ + SL_VIEW_SIDE_BY_SIDE, /**< Left and right image (the image width is therefore doubled). Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 */ + SL_VIEW_DEPTH, /**< Color rendering of the depth. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 \note Use \ref SL_MEASURE_DEPTH with \ref sl_retrieve_measure() to get depth values.*/ + SL_VIEW_CONFIDENCE, /**< Color rendering of the depth confidence. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 \note Use \ref SL_MEASURE_CONFIDENCE with \ref sl_retrieve_measure() to get confidence values.*/ + SL_VIEW_NORMALS, /**< Color rendering of the normals. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 \note Use \ref SL_MEASURE_NORMALS with \ref sl_retrieve_measure() to get normal values.*/ + SL_VIEW_DEPTH_RIGHT, /**< Color rendering of the right depth mapped on right sensor. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 \note Use \ref SL_MEASURE_DEPTH_RIGHT with \ref sl_retrieve_measure() to get depth right values.*/ + SL_VIEW_NORMALS_RIGHT /**< Color rendering of the normals mapped on right sensor. Each pixel contains 4 unsigned char (B, G, R, A).\n Type: \ref SL_MAT_TYPE_U8_C4 \note Use \ref SL_MEASURE_NORMALS_RIGHT with \ref sl_retrieve_measure() to get normal right values.*/ +}; + +/** +\brief Lists the different states of object tracking. */ enum SL_OBJECT_TRACKING_STATE { - SL_OBJECT_TRACKING_STATE_OFF, /**< The tracking is not yet initialized, the object ID is not usable */ - SL_OBJECT_TRACKING_STATE_OK, /**< The object is tracked */ - SL_OBJECT_TRACKING_STATE_SEARCHING, /**< The object couldn't be detected in the image and is potentially occluded, the trajectory is estimated */ - SL_OBJECT_TRACKING_STATE_TERMINATE /**< This is the last searching state of the track, the track will be deleted in the next retreiveObject */ + SL_OBJECT_TRACKING_STATE_OFF, /**< The tracking is not yet initialized.\n The object id is not usable. */ + SL_OBJECT_TRACKING_STATE_OK, /**< The object is tracked. */ + SL_OBJECT_TRACKING_STATE_SEARCHING, /**< The object could not be detected in the image and is potentially occluded.\n The trajectory is estimated.*/ + SL_OBJECT_TRACKING_STATE_TERMINATE /**< This is the last searching state of the track.\n The track will be deleted in the next sl_retrieve_objects(). */ }; /** \brief Lists the different states of positional tracking. */ enum SL_POSITIONAL_TRACKING_STATE { - SL_POSITIONAL_TRACKING_STATE_SEARCHING, /** The camera is searching for a previously known position to locate itself.*/ - SL_POSITIONAL_TRACKING_STATE_OK, /** Positional tracking is working normally.*/ - SL_POSITIONAL_TRACKING_STATE_OFF, /** Positional tracking is not enabled.*/ - SL_POSITIONAL_TRACKING_STATE_FPS_TOO_LOW, /** Effective FPS is too low to give proper results for motion tracking. Consider using PERFORMANCES parameters (DEPTH_MODE_PERFORMANCE, low camera resolution (VGA,HD720))*/ - SL_POSITIONAL_TRACKING_STATE_SEARCHING_FLOOR_PLANE, /**< The camera is searching for the floor plane to locate itself related to it, the REFERENCE_FRAME::WORLD will be set afterward.*/ + SL_POSITIONAL_TRACKING_STATE_SEARCHING, /**< The camera is searching for a previously known position to locate itself.*/ + SL_POSITIONAL_TRACKING_STATE_OK, /**< The positional tracking is working normally.*/ + SL_POSITIONAL_TRACKING_STATE_OFF, /**< The positional tracking is not enabled.*/ + SL_POSITIONAL_TRACKING_STATE_FPS_TOO_LOW, /**< The effective FPS is too low to give proper results for motion tracking.\n Consider using performance parameters (\ref SL_DEPTH_MODE_PERFORMANCE, low camera resolution (\ref SL_RESOLUTION_VGA / \ref SL_RESOLUTION_SVGA or \ref SL_RESOLUTION_HD720).*/ + SL_POSITIONAL_TRACKING_STATE_SEARCHING_FLOOR_PLANE, /**< The camera is searching for the floor plane to locate itself with respect to it.\n The \ref SL_REFERENCE_FRAME_WORLD will be set afterward.*/ }; /** - \enum POSITIONAL_TRACKING_MODE - \ingroup PositionalTracking_group - \brief Lists the mode of positional tracking that can be used. - */ +\brief Lists the mode of positional tracking that can be used. +*/ enum SL_POSITIONAL_TRACKING_MODE { - SL_POSITIONAL_TRACKING_MODE_STANDARD, /**< Default mode, best compromise in performance and accuracy */ - SL_POSITIONAL_TRACKING_MODE_QUALITY, /**< Improve accuracy in more challening scenes such as outdoor repetitive patterns like extensive field. Curently works best with ULTRA depth mode, requires more compute power */ - ///@cond SHOWHIDDEN - SL_POSITIONAL_TRACKING_MODE_LAST - ///@endcond + SL_POSITIONAL_TRACKING_MODE_STANDARD, /**< Default mode. Best compromise in performance and accuracy. */ + SL_POSITIONAL_TRACKING_MODE_QUALITY, /**< Improve accuracy in more challenging scenes such as outdoor repetitive patterns like extensive fields.\n Currently works best with \ref SL_DEPTH_MODE_ULTRA and requires more compute power. */ +}; + +/** +\enum SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE +\brief Lists the different states of region of interest auto detection. + */ +enum SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE +{ + SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE_RUNNING, /**< The region of interest auto detection is initializing.*/ + SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE_READY, /**< The region of interest mask is ready, if auto_apply was enabled, the region of interest mask is being used*/ + SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE_NOT_ENABLED, /**< The region of interest auto detection is not enabled*/ }; @@ -501,39 +718,39 @@ enum SL_POSITIONAL_TRACKING_MODE { */ enum SL_AREA_EXPORTING_STATE { SL_AREA_EXPORTING_STATE_SUCCESS, /**< The spatial memory file has been successfully created.*/ - SL_AREA_EXPORTING_STATE_RUNNING, /**< The spatial memory is currently written.*/ + SL_AREA_EXPORTING_STATE_RUNNING, /**< The spatial memory is currently being written.*/ SL_AREA_EXPORTING_STATE_NOT_STARTED, /**< The spatial memory file exportation has not been called.*/ SL_AREA_EXPORTING_STATE_FILE_EMPTY, /**< The spatial memory contains no data, the file is empty.*/ SL_AREA_EXPORTING_STATE_FILE_ERROR, /**< The spatial memory file has not been written because of a wrong file name.*/ - SL_AREA_EXPORTING_STATE_SPATIAL_MEMORY_DISABLED, /**< The spatial memory learning is disable, no file can be created.*/ + SL_AREA_EXPORTING_STATE_SPATIAL_MEMORY_DISABLED, /**< The spatial memory learning is disabled. No file can be created.*/ }; /** -\brief Gives the spatial mapping state. +\brief Lists the different states of spatial mapping. */ enum SL_SPATIAL_MAPPING_STATE { - SL_SPATIAL_MAPPING_STATE_INITIALIZING, /** The spatial mapping is initializing.*/ - SL_SPATIAL_MAPPING_STATE_OK, /** The depth and tracking data were correctly integrated in the fusion algorithm.*/ - SL_SPATIAL_MAPPING_STATE_NOT_ENOUGH_MEMORY, /** The maximum memory dedicated to the scanning has been reach, the mesh will no longer be updated.*/ - SL_SPATIAL_MAPPING_STATE_NOT_ENABLED, /** Camera::enableSpatialMapping() wasn't called (or the scanning was stopped and not relaunched).*/ - SL_SPATIAL_MAPPING_STATE_FPS_TOO_LOW, /** Effective FPS is too low to give proper results for spatial mapping. Consider using PERFORMANCES parameters (DEPTH_MODE_PERFORMANCE, low camera resolution (VGA,HD720), spatial mapping low resolution)*/ + SL_SPATIAL_MAPPING_STATE_INITIALIZING, /**< The spatial mapping is initializing.*/ + SL_SPATIAL_MAPPING_STATE_OK, /**< The depth and tracking data were correctly integrated in the mapping algorithm.*/ + SL_SPATIAL_MAPPING_STATE_NOT_ENOUGH_MEMORY, /**< The maximum memory dedicated to the scanning has been reached.\n The mesh will no longer be updated.*/ + SL_SPATIAL_MAPPING_STATE_NOT_ENABLED, /**< sl_enable_spatial_mapping() wasn't called or the scanning was stopped and not relaunched.*/ + SL_SPATIAL_MAPPING_STATE_FPS_TOO_LOW, /**< The effective FPS is too low to give proper results for spatial mapping.\n Consider using performance parameters (\ref SL_DEPTH_MODE_PERFORMANCE, low camera resolution (\ref SL_RESOLUTION_VGA / \ref SL_RESOLUTION_SVGA or \ref SL_RESOLUTION_HD720).*/ }; /** \brief Lists the types of spatial maps that can be created. */ enum SL_SPATIAL_MAP_TYPE { - SL_SPATIAL_MAP_TYPE_MESH, /**< Represents a surface with faces, 3D points are linked by edges, no color information.*/ - SL_SPATIAL_MAP_TYPE_FUSED_POINT_CLOUD /**< Geometry is represented by a set of 3D colored points.*/ + SL_SPATIAL_MAP_TYPE_MESH, /**< The geometry is represented by a set of vertices connected by edges and forming faces.\n No color information is available.*/ + SL_SPATIAL_MAP_TYPE_FUSED_POINT_CLOUD /**< The geometry is represented by a set of 3D colored points.*/ }; /** -\brief Lists available mesh filtering intensity. +\brief Lists available mesh filtering intensities. */ enum SL_MESH_FILTER { SL_MESH_FILTER_LOW, /**< Clean the mesh by closing small holes and removing isolated faces.*/ - SL_MESH_FILTER_MEDIUM, /**< Soft decimation and smoothing.*/ - SL_MESH_FILTER_HIGH, /**< Decimate the number of triangles and apply a soft smooth.*/ + SL_MESH_FILTER_MEDIUM, /**< Soft faces decimation and smoothing.*/ + SL_MESH_FILTER_HIGH, /**< Drastically reduce the number of faces and apply a soft smooth.*/ }; /** @@ -541,106 +758,110 @@ enum SL_MESH_FILTER { */ enum SL_MESH_FILE_FORMAT { SL_MESH_FILE_FORMAT_PLY, /**< Contains only vertices and faces.*/ - SL_MESH_FILE_FORMAT_PLY_BIN, /**< Contains only vertices and faces, encoded in binary.*/ - SL_MESH_FILE_FORMAT_OBJ, /**< Contains vertices, normals, faces and textures informations if possible.*/ - + SL_MESH_FILE_FORMAT_PLY_BIN, /**< Contains only vertices and faces encoded in binary.*/ + SL_MESH_FILE_FORMAT_OBJ, /**< Contains vertices, normals, faces, and texture information (if possible).*/ }; /** \brief Lists available depth computation modes. */ enum SL_DEPTH_MODE { - SL_DEPTH_MODE_NONE, /** This mode does not compute any depth map. Only rectified stereo images will be available.*/ + SL_DEPTH_MODE_NONE, /** No depth map computation.\n Only rectified stereo images will be available.*/ SL_DEPTH_MODE_PERFORMANCE, /** Computation mode optimized for speed.*/ SL_DEPTH_MODE_QUALITY, /**< Computation mode designed for challenging areas with untextured surfaces.*/ //SL_DEPTH_MODE_NEURAL_FAST, /**< End to End Neural disparity estimation, requires AI module */ - SL_DEPTH_MODE_ULTRA, /** Computation mode favorising edges and sharpness. Requires more GPU memory and computation power.*/ - SL_DEPTH_MODE_NEURAL /**< End to End Neural disparity estimation, requires AI module */ + SL_DEPTH_MODE_ULTRA, /**< Computation mode that favors edges and sharpness.\n Requires more GPU memory and computation power.*/ + SL_DEPTH_MODE_NEURAL /**< End to End Neural disparity estimation.\n Requires AI module. */ }; /** -\brief Gives the camera flip mode +\brief Lists possible flip modes of the camera. */ enum SL_FLIP_MODE { - SL_FLIP_MODE_OFF, /** default behavior.*/ - SL_FLIP_MODE_ON, /** Images and camera sensors data are flipped useful when your camera is mounted upside down.*/ - SL_FLIP_MODE_AUTO, /** Live mode: use the camera orientation (if an IMU is available) to set the flip mode. SVO mode: read the state of this enum when recorded.*/ + SL_FLIP_MODE_OFF, /**< No flip applied. Default behavior.*/ + SL_FLIP_MODE_ON, /**< Images and camera sensors' data are flipped useful when your camera is mounted upside down.*/ + SL_FLIP_MODE_AUTO, /**< In LIVE mode, use the camera orientation (if an IMU is available) to set the flip mode.\n In SVO mode, read the state of this enum when recorded.*/ }; /** -\brief List available copy operation on Mat +\brief Lists available copy operation on matrix. */ enum SL_COPY_TYPE { - SL_COPY_TYPE_CPU_CPU, /**< copy data from CPU to CPU.*/ - SL_COPY_TYPE_CPU_GPU, /**< copy data from CPU to GPU.*/ + SL_COPY_TYPE_CPU_CPU, /**< Copy data from CPU to CPU.*/ + SL_COPY_TYPE_CPU_GPU, /**< Copy data from CPU to GPU.*/ SL_COPY_TYPE_GPU_GPU, /**< copy data from GPU to GPU.*/ - SL_COPY_TYPE_GPU_CPU /**< copy data from GPU to CPU.*/ + SL_COPY_TYPE_GPU_CPU /**< Copy data from GPU to CPU.*/ }; /** \brief Lists available compression modes for SVO recording. -\brief SL_SVO_COMPRESSION_MODE_LOSSLESS is an improvement of previous lossless compression (used in ZED Explorer), even if size may be bigger, compression time is much faster. +\note \ref SL_SVO_COMPRESSION_MODE_LOSSLESS is an improvement of previous lossless compression (used in ZED Explorer), even if size may be bigger, compression time is much faster. */ enum SL_SVO_COMPRESSION_MODE { - SL_SVO_COMPRESSION_MODE_LOSSLESS, /**< PNG/ZSTD (lossless) CPU based compression : avg size = 42% (of RAW).*/ - SL_SVO_COMPRESSION_MODE_H264, /**< H264(AVCHD) GPU based compression : avg size = 1% (of RAW). Requires a NVIDIA GPU*/ - SL_SVO_COMPRESSION_MODE_H265, /**< H265(HEVC) GPU based compression: avg size = 1% (of RAW). Requires a NVIDIA GPU, Pascal architecture or newer*/ - SL_SVO_COMPRESSION_MODE_H264_LOSSLESS, /**< H264 Lossless GPU/Hardware based compression: avg size = 25% (of RAW). Provides a SSIM/PSNR result (vs RAW) >= 99.9%. Requires a NVIDIA GPU */ - SL_SVO_COMPRESSION_MODE_H265_LOSSLESS, /**< H265 Lossless GPU/Hardware based compression: avg size = 25% (of RAW). Provides a SSIM/PSNR result (vs RAW) >= 99.9%. Requires a NVIDIA GPU */ + SL_SVO_COMPRESSION_MODE_LOSSLESS, /**< PNG/ZSTD (lossless) CPU based compression.\n Average size: 42% of RAW*/ + SL_SVO_COMPRESSION_MODE_H264, /**< H264 (AVCHD) GPU based compression.\n Average size: 1% of RAW \note Requires a NVIDIA GPU.*/ + SL_SVO_COMPRESSION_MODE_H265, /**< H265 (HEVC) GPU based compression.\n Average size: 1% of RAW \note Requires a NVIDIA GPU.*/ + SL_SVO_COMPRESSION_MODE_H264_LOSSLESS, /**< H264 Lossless GPU/Hardware based compression.\n Average size: 25% of RAW \n Provides a SSIM/PSNR result (vs RAW) >= 99.9%. \note Requires a NVIDIA GPU. */ + SL_SVO_COMPRESSION_MODE_H265_LOSSLESS, /**< H265 Lossless GPU/Hardware based compression.\n Average size: 25% of RAW \n Provides a SSIM/PSNR result (vs RAW) >= 99.9%. \note Requires a NVIDIA GPU. */ }; /** -\brief List available Mat formats. +\brief Lists available matrix formats. +\note Matrix type depends on image or measure type. +\note For the dependencies, see \ref SL_VIEW and \ref SL_MEASURE. */ enum SL_MAT_TYPE { - SL_MAT_TYPE_F32_C1, /**< float 1 channel.*/ - SL_MAT_TYPE_F32_C2, /**< float 2 channels.*/ - SL_MAT_TYPE_F32_C3, /**< float 3 channels.*/ - SL_MAT_TYPE_F32_C4, /**< float 4 channels.*/ - SL_MAT_TYPE_U8_C1, /**< unsigned char 1 channel.*/ - SL_MAT_TYPE_U8_C2, /**< unsigned char 2 channels.*/ - SL_MAT_TYPE_U8_C3, /**< unsigned char 3 channels.*/ - SL_MAT_TYPE_U8_C4, /**< unsigned char 4 channels.*/ - SL_MAT_TYPE_U16_C1, /**< unsigned short 1 channel.*/ - SL_MAT_TYPE_S8_C4 /**< signed char 4 channels.*/ + SL_MAT_TYPE_F32_C1, /**< 1-channel matrix of float*/ + SL_MAT_TYPE_F32_C2, /**< 2-channel matrix of float*/ + SL_MAT_TYPE_F32_C3, /**< 3-channel matrix of float*/ + SL_MAT_TYPE_F32_C4, /**< 4-channel matrix of float*/ + SL_MAT_TYPE_U8_C1, /**< 1-channel matrix of unsigned char*/ + SL_MAT_TYPE_U8_C2, /**< 2-channel matrix of unsigned char*/ + SL_MAT_TYPE_U8_C3, /**< 3-channel matrix of unsigned char*/ + SL_MAT_TYPE_U8_C4, /**< 4-channel matrix of unsigned char*/ + SL_MAT_TYPE_U16_C1, /**< 1-channel matrix of unsigned short*/ + SL_MAT_TYPE_S8_C4 /**< 4-channel matrix of signed char*/ }; /** -\brief Available object subclass, given as hint, when using object tracking an object can change of OBJECT_SUBCLASS while keeping the same OBJECT_CLASS and id (i.e: frame M: MOTORBIKE, frame N:BICYCLE) - */ +\brief List available object subclasses. + +Given as hint, when using object tracking an object can change of \ref SL_OBJECT_SUBCLASS while keeping the same \ref SL_OBJECT_CLASS +(i.e.: frame n: \ref SL_OBJECT_SUBCLASS_MOTORBIKE, frame n+1: \ref SL_OBJECT_SUBCLASS_BICYCLE). +*/ enum SL_OBJECT_SUBCLASS { - SL_OBJECT_SUBCLASS_PERSON, /**< PERSON / PERSON_BODY */ - SL_OBJECT_SUBCLASS_BICYCLE, /**< VEHICLE */ - SL_OBJECT_SUBCLASS_CAR, /**< VEHICLE */ - SL_OBJECT_SUBCLASS_MOTORBIKE, /**< VEHICLE */ - SL_OBJECT_SUBCLASS_BUS, /**< VEHICLE */ - SL_OBJECT_SUBCLASS_TRUCK, /**< VEHICLE */ - SL_OBJECT_SUBCLASS_BOAT, /**< VEHICLE */ - SL_OBJECT_SUBCLASS_BACKPACK, /**< BAG */ - SL_OBJECT_SUBCLASS_HANDBAG, /**< BAG */ - SL_OBJECT_SUBCLASS_SUITCASE, /**< BAG */ - SL_OBJECT_SUBCLASS_BIRD, /**< ANIMAL */ - SL_OBJECT_SUBCLASS_CAT, /**< ANIMAL */ - SL_OBJECT_SUBCLASS_DOG, /**< ANIMAL */ - SL_OBJECT_SUBCLASS_HORSE, /**< ANIMAL */ - SL_OBJECT_SUBCLASS_SHEEP, /**< ANIMAL */ - SL_OBJECT_SUBCLASS_COW, /**< ANIMAL */ - SL_OBJECT_SUBCLASS_CELLPHONE, /**< ELECTRONIC */ - SL_OBJECT_SUBCLASS_LAPTOP, /**< ELECTRONIC */ - SL_OBJECT_SUBCLASS_BANANA, /**< FRUIT/VEGETABLE */ - SL_OBJECT_SUBCLASS_APPLE, /**< FRUIT/VEGETABLE */ - SL_OBJECT_SUBCLASS_ORANGE, /**< FRUIT/VEGETABLE */ - SL_OBJECT_SUBCLASS_CARROT, /**< FRUIT/VEGETABLE */ - SL_OBJECT_SUBCLASS_PERSON_HEAD, /**< PERSON */ - SL_OBJEC_SUBCLASS_SPORTSBALL /**< SPORTSBALL >*/ - -}; - -/** -\brief Lists available object action state + SL_OBJECT_SUBCLASS_PERSON, /**< \ref SL_OBJECT_CLASS_PERSON */ + SL_OBJECT_SUBCLASS_BICYCLE, /**< \ref SL_OBJECT_CLASS_VEHICLE */ + SL_OBJECT_SUBCLASS_CAR, /**< \ref SL_OBJECT_CLASS_VEHICLE */ + SL_OBJECT_SUBCLASS_MOTORBIKE, /**< \ref SL_OBJECT_CLASS_VEHICLE */ + SL_OBJECT_SUBCLASS_BUS, /**< \ref SL_OBJECT_CLASS_VEHICLE */ + SL_OBJECT_SUBCLASS_TRUCK, /**< \ref SL_OBJECT_CLASS_VEHICLE */ + SL_OBJECT_SUBCLASS_BOAT, /**< \ref SL_OBJECT_CLASS_VEHICLE */ + SL_OBJECT_SUBCLASS_BACKPACK, /**< \ref SL_OBJECT_CLASS_BAG */ + SL_OBJECT_SUBCLASS_HANDBAG, /**< \ref SL_OBJECT_CLASS_BAG */ + SL_OBJECT_SUBCLASS_SUITCASE, /**< \ref SL_OBJECT_CLASS_BAG */ + SL_OBJECT_SUBCLASS_BIRD, /**< \ref SL_OBJECT_CLASS_ANIMAL */ + SL_OBJECT_SUBCLASS_CAT, /**< \ref SL_OBJECT_CLASS_ANIMAL */ + SL_OBJECT_SUBCLASS_DOG, /**< \ref SL_OBJECT_CLASS_ANIMAL */ + SL_OBJECT_SUBCLASS_HORSE, /**< \ref SL_OBJECT_CLASS_ANIMAL */ + SL_OBJECT_SUBCLASS_SHEEP, /**< \ref SL_OBJECT_CLASS_ANIMAL */ + SL_OBJECT_SUBCLASS_COW, /**< \ref SL_OBJECT_CLASS_ANIMAL */ + SL_OBJECT_SUBCLASS_CELLPHONE, /**< \ref SL_OBJECT_CLASS_ELECTRONICS */ + SL_OBJECT_SUBCLASS_LAPTOP, /**< \ref SL_OBJECT_CLASS_ELECTRONICS */ + SL_OBJECT_SUBCLASS_BANANA, /**< \ref SL_OBJECT_CLASS_FRUIT_VEGETABLE */ + SL_OBJECT_SUBCLASS_APPLE, /**< \ref SL_OBJECT_CLASS_FRUIT_VEGETABLE */ + SL_OBJECT_SUBCLASS_ORANGE, /**< \ref SL_OBJECT_CLASS_FRUIT_VEGETABLE */ + SL_OBJECT_SUBCLASS_CARROT, /**< \ref SL_OBJECT_CLASS_FRUIT_VEGETABLE */ + SL_OBJECT_SUBCLASS_PERSON_HEAD, /**< \ref SL_OBJECT_CLASS_PERSON */ + SL_OBJEC_SUBCLASS_SPORTSBALL /**< \ref SL_OBJECT_CLASS_SPORT*/ + +}; + +/** +\brief Lists the different states of an object's actions. */ enum SL_OBJECT_ACTION_STATE { @@ -649,84 +870,78 @@ enum SL_OBJECT_ACTION_STATE }; /** -\brief List available models for detection +\brief Lists available models for the object detection module. */ enum SL_OBJECT_DETECTION_MODEL { - SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_FAST, /**< Any objects, bounding box based */ - SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_MEDIUM, /**< Any objects, bounding box based, compromise between accuracy and speed */ - SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_ACCURATE, /**< Any objects, bounding box based, more accurate but slower than the base model */ - SL_OBJECT_DETECTION_MODEL_PERSON_HEAD_BOX_FAST, /**< Bounding Box detector specialized in person heads, particulary well suited for crowded environement, the person localization is also improved */ - SL_OBJECT_DETECTION_MODEL_PERSON_HEAD_BOX_ACCURATE, /**< Bounding Box detector specialized in person heads, particulary well suited for crowded environments, the person localization is also improved, state of the art accuracy */ - SL_OBJECT_DETECTION_MODEL_CUSTOM_BOX_OBJECTS, /**< For external inference, using your own custom model and/or frameworks. This mode disable the internal inference engine, the 2D bounding box detection must be provided */ + SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_FAST, /**< Any objects, bounding box based. */ + SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_MEDIUM, /**< Any objects, bounding box based, compromise between accuracy and speed. */ + SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_ACCURATE, /**< Any objects, bounding box based, more accurate but slower than the base model. */ + SL_OBJECT_DETECTION_MODEL_PERSON_HEAD_BOX_FAST, /**< Bounding box detector specialized in person heads particularly well suited for crowded environments. The person localization is also improved. */ + SL_OBJECT_DETECTION_MODEL_PERSON_HEAD_BOX_ACCURATE, /**< Bounding box detector specialized in person heads, particularly well suited for crowded environments. The person localization is also improved, more accurate but slower than the base model.*/ + SL_OBJECT_DETECTION_MODEL_CUSTOM_BOX_OBJECTS, /**< For external inference, using your own custom model and/or frameworks. This mode disables the internal inference engine, the 2D bounding box detection must be provided. */ }; - +/** +\brief Lists available models for the body tracking module. +*/ enum SL_BODY_TRACKING_MODEL { - SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST, /**< Keypoints based, specific to human skeleton, real time performance even on Jetson or low end GPU cards */ - SL_BODY_TRACKING_MODEL_HUMAN_BODY_MEDIUM, /**< Keypoints based, specific to human skeleton, compromise between accuracy and speed */ - SL_BODY_TRACKING_MODEL_HUMAN_BODY_ACCURATE, /**< Keypoints based, specific to human skeleton, state of the art accuracy, requires powerful GPU */ + SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST, /**< Keypoints based, specific to human skeleton, real time performance even on Jetson or low end GPU cards. */ + SL_BODY_TRACKING_MODEL_HUMAN_BODY_MEDIUM, /**< Keypoints based, specific to human skeleton, compromise between accuracy and speed. */ + SL_BODY_TRACKING_MODEL_HUMAN_BODY_ACCURATE, /**< Keypoints based, specific to human skeleton, state of the art accuracy, requires powerful GPU. */ }; /** - \brief Lists available AI moles. - */ + \brief Lists available AI models. +*/ enum SL_AI_MODELS { - SL_AI_MODELS_MULTI_CLASS_DETECTION, // related to sl::DETECTION_MODEL::MULTI_CLASS_BOX - SL_AI_MODELS_MULTI_CLASS_MEDIUM_DETECTION, // related to sl::DETECTION_MODEL::MULTI_CLASS_BOX_MEDIUM - SL_AI_MODELS_MULTI_CLASS_ACCURATE_DETECTION, // related to sl::DETECTION_MODEL::MULTI_CLASS_BOX_ACCURATE - SL_AI_MODELS_HUMAN_BODY_FAST_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_FAST - SL_AI_MODELS_HUMAN_BODY_MEDIUM_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_MEDIUM - SL_AI_MODELS_HUMAN_BODY_ACCURATE_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_ACCURATE - SL_AI_MODELS_HUMAN_BODY_38_FAST_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_FAST - SL_AI_MODELS_HUMAN_BODY_38_MEDIUM_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_FAST - SL_AI_MODELS_HUMAN_BODY_38_ACCURATE_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_FAST - //SL_AI_MODELS_HUMAN_BODY_70_FAST_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_FAST. - //SL_AI_MODELS_HUMAN_BODY_70_MEDIUM_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_MEDIUM - //SL_AI_MODELS_HUMAN_BODY_70_ACCURATE_DETECTION, // related to sl::DETECTION_MODEL::HUMAN_BODY_ACCURATE - SL_AI_MODELS_PERSON_HEAD_DETECTION, // related to sl::DETECTION_MODEL::PERSON_HEAD_BOX - SL_AI_MODELS_PERSON_HEAD_ACCURATE_DETECTION, // related to sl::DETECTION_MODEL::PERSON_HEAD_BOX_ACCURATE - SL_AI_MODELS_REID_ASSOCIATION, // related to sl::BatchParameters::enable - SL_AI_MODELS_NEURAL_DEPTH, // related to sl::DEPTH_MODE::NEURAL + SL_AI_MODELS_MULTI_CLASS_DETECTION, /**< Related to \ref SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_FAST*/ + SL_AI_MODELS_MULTI_CLASS_MEDIUM_DETECTION, /**< Related to \ref SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_MEDIUM*/ + SL_AI_MODELS_MULTI_CLASS_ACCURATE_DETECTION, /**< Related to \ref SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_ACCURATE*/ + SL_AI_MODELS_HUMAN_BODY_FAST_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST*/ + SL_AI_MODELS_HUMAN_BODY_MEDIUM_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_MEDIUM*/ + SL_AI_MODELS_HUMAN_BODY_ACCURATE_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_ACCURATE*/ + SL_AI_MODELS_HUMAN_BODY_38_FAST_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST*/ + SL_AI_MODELS_HUMAN_BODY_38_MEDIUM_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST*/ + SL_AI_MODELS_HUMAN_BODY_38_ACCURATE_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST*/ + //SL_AI_MODELS_HUMAN_BODY_70_FAST_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST*/ + //SL_AI_MODELS_HUMAN_BODY_70_MEDIUM_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_MEDIUM*/ + //SL_AI_MODELS_HUMAN_BODY_70_ACCURATE_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_ACCURATE*/ + SL_AI_MODELS_PERSON_HEAD_DETECTION, /**< Related to \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST*/ + SL_AI_MODELS_PERSON_HEAD_ACCURATE_DETECTION, /**< Related to \ref SL_OBJECT_DETECTION_MODEL_PERSON_HEAD_BOX_ACCURATE*/ + SL_AI_MODELS_REID_ASSOCIATION, /**< Related to \ref SL_BatchParameters.enable*/ + SL_AI_MODELS_NEURAL_DEPTH, /**< Related to \ref SL_DEPTH_MODE_NEURAL*/ SL_AI_MODELS_LAST }; /** -\brief Lists of supported bounding box preprocessing +\brief Lists supported bounding box preprocessing. */ enum SL_OBJECT_FILTERING_MODE { - /** - * \brief SDK will not apply any preprocessing to the detected objects - */ - SL_OBJECT_FILTERING_MODE_NONE, - /** - * \brief SDK will remove objects that are in the same 3D position as an already tracked object (independant of class ID) - */ - SL_OBJECT_FILTERING_MODE_NMS_3D, - /** - * \brief SDK will remove objects that are in the same 3D position as an already tracked object of the same class ID - */ - SL_OBJECT_FILTERING_MODE_NMS_3D_PER_CLASS + SL_OBJECT_FILTERING_MODE_NONE, /**< The ZED SDK will not apply any preprocessing to the detected objects. */ + SL_OBJECT_FILTERING_MODE_NMS_3D, /**< The ZED SDK will remove objects that are in the same 3D position as an already tracked object (independent of class id). */ + SL_OBJECT_FILTERING_MODE_NMS_3D_PER_CLASS, /**< The ZED SDK will remove objects that are in the same 3D position as an already tracked object of the same class id. */ }; /** -\brief Lists of supported skeleton body model +\brief Lists supported skeleton body models. */ enum SL_BODY_FORMAT { /** - * \brief Legacy 38 keypoint model. - * Body model, including feet simplified face and hands + * \brief 18-keypoint model + * \n Basic body model */ SL_BODY_FORMAT_BODY_18, /** - * \brief Legacy 34 keypoints model. - * Body model, requires body fitting enabled + * \brief 34-keypoint model + * \note Requires body fitting enabled. */ SL_BODY_FORMAT_BODY_34, /** - * \brief 38 keypoint model. - * Body model, including feet simplified face and hands + * \brief 38-keypoint model + * \n Including simplified face, hands and feet. + * \note Early Access */ SL_BODY_FORMAT_BODY_38, @@ -738,16 +953,18 @@ enum SL_BODY_FORMAT SL_BODY_FORMAT_BODY_70, #endif }; - +/** +\brief Lists supported models for skeleton keypoints selection. +*/ enum SL_BODY_KEYPOINTS_SELECTION { /** - * \brief Full keypoint model. + * \brief Full keypoint model */ SL_BODY_KEYPOINTS_SELECTION_FULL, /** - * \brief Upper body keypoint model. - * Only the upper body will be outputted (from hip) + * \brief Upper body keypoint model + * \n Will output only upper body (from hip). */ SL_BODY_KEYPOINTS_SELECTION_UPPER_BODY, /** @@ -758,118 +975,118 @@ enum SL_BODY_KEYPOINTS_SELECTION /** - * \brief semantic of human body parts and order of \ref ObjectData::keypoint for BODY_FORMAT::BODY_18. + * \brief Semantic of human body parts and order of \ref SL_BodyData.keypoint for \ref SL_BODY_FORMAT_BODY_18. */ enum SL_BODY_18_PARTS { - SL_BODY_18_PARTS_NOSE, - SL_BODY_18_PARTS_NECK, - SL_BODY_18_PARTS_RIGHT_SHOULDER, - SL_BODY_18_PARTS_RIGHT_ELBOW, - SL_BODY_18_PARTS_RIGHT_WRIST, - SL_BODY_18_PARTS_LEFT_SHOULDER, - SL_BODY_18_PARTS_LEFT_ELBOW, - SL_BODY_18_PARTS_LEFT_WRIST, - SL_BODY_18_PARTS_RIGHT_HIP, - SL_BODY_18_PARTS_RIGHT_KNEE, - SL_BODY_18_PARTS_RIGHT_ANKLE, - SL_BODY_18_PARTS_LEFT_HIP, - SL_BODY_18_PARTS_LEFT_KNEE, - SL_BODY_18_PARTS_LEFT_ANKLE, - SL_BODY_18_PARTS_RIGHT_EYE, - SL_BODY_18_PARTS_LEFT_EYE, - SL_BODY_18_PARTS_RIGHT_EAR, - SL_BODY_18_PARTS_LEFT_EAR, + SL_BODY_18_PARTS_NOSE, /**< 0*/ + SL_BODY_18_PARTS_NECK, /**< 1*/ + SL_BODY_18_PARTS_RIGHT_SHOULDER, /**< 2*/ + SL_BODY_18_PARTS_RIGHT_ELBOW, /**< 3*/ + SL_BODY_18_PARTS_RIGHT_WRIST, /**< 4*/ + SL_BODY_18_PARTS_LEFT_SHOULDER, /**< 5*/ + SL_BODY_18_PARTS_LEFT_ELBOW, /**< 6*/ + SL_BODY_18_PARTS_LEFT_WRIST, /**< 7*/ + SL_BODY_18_PARTS_RIGHT_HIP, /**< 8*/ + SL_BODY_18_PARTS_RIGHT_KNEE, /**< 9*/ + SL_BODY_18_PARTS_RIGHT_ANKLE, /**< 10*/ + SL_BODY_18_PARTS_LEFT_HIP, /**< 11*/ + SL_BODY_18_PARTS_LEFT_KNEE, /**< 12*/ + SL_BODY_18_PARTS_LEFT_ANKLE, /**< 13*/ + SL_BODY_18_PARTS_RIGHT_EYE, /**< 14*/ + SL_BODY_18_PARTS_LEFT_EYE, /**< 15*/ + SL_BODY_18_PARTS_RIGHT_EAR, /**< 16*/ + SL_BODY_18_PARTS_LEFT_EAR, /**< 17*/ SL_BODY_18_PARTS_LAST }; /** - * \brief semantic of human body parts and order of \ref ObjectData::keypoint for BODY_FORMAT::BODY_34. + * \brief Semantic of human body parts and order of \ref SL_BodyData.keypoint for \ref SL_BODY_FORMAT_BODY_34. */ enum SL_BODY_34_PARTS { - SL_BODY_34_PARTS_PELVIS, - SL_BODY_34_PARTS_NAVAL_SPINE, - SL_BODY_34_PARTS_CHEST_SPINE, - SL_BODY_34_PARTS_NECK, - SL_BODY_34_PARTS_LEFT_CLAVICLE, - SL_BODY_34_PARTS_LEFT_SHOULDER, - SL_BODY_34_PARTS_LEFT_ELBOW, - SL_BODY_34_PARTS_LEFT_WRIST, - SL_BODY_34_PARTS_LEFT_HAND, - SL_BODY_34_PARTS_LEFT_HANDTIP, - SL_BODY_34_PARTS_LEFT_THUMB, - SL_BODY_34_PARTS_RIGHT_CLAVICLE, - SL_BODY_34_PARTS_RIGHT_SHOULDER, - SL_BODY_34_PARTS_RIGHT_ELBOW, - SL_BODY_34_PARTS_RIGHT_WRIST, - SL_BODY_34_PARTS_RIGHT_HAND, - SL_BODY_34_PARTS_RIGHT_HANDTIP, - SL_BODY_34_PARTS_RIGHT_THUMB, - SL_BODY_34_PARTS_LEFT_HIP, - SL_BODY_34_PARTS_LEFT_KNEE, - SL_BODY_34_PARTS_LEFT_ANKLE, - SL_BODY_34_PARTS_LEFT_FOOT, - SL_BODY_34_PARTS_RIGHT_HIP, - SL_BODY_34_PARTS_RIGHT_KNEE, - SL_BODY_34_PARTS_RIGHT_ANKLE, - SL_BODY_34_PARTS_RIGHT_FOOT, - SL_BODY_34_PARTS_HEAD, - SL_BODY_34_PARTS_NOSE, - SL_BODY_34_PARTS_LEFT_EYE, - SL_BODY_34_PARTS_LEFT_EAR, - SL_BODY_34_PARTS_RIGHT_EYE, - SL_BODY_34_PARTS_RIGHT_EAR, - SL_BODY_34_PARTS_LEFT_HEEL, - SL_BODY_34_PARTS_RIGHT_HEEL, + SL_BODY_34_PARTS_PELVIS, /**< 0*/ + SL_BODY_34_PARTS_NAVAL_SPINE, /**< 1*/ + SL_BODY_34_PARTS_CHEST_SPINE, /**< 2*/ + SL_BODY_34_PARTS_NECK, /**< 3*/ + SL_BODY_34_PARTS_LEFT_CLAVICLE, /**< 4*/ + SL_BODY_34_PARTS_LEFT_SHOULDER, /**< 5*/ + SL_BODY_34_PARTS_LEFT_ELBOW, /**< 6*/ + SL_BODY_34_PARTS_LEFT_WRIST, /**< 7*/ + SL_BODY_34_PARTS_LEFT_HAND, /**< 8*/ + SL_BODY_34_PARTS_LEFT_HANDTIP, /**< 9*/ + SL_BODY_34_PARTS_LEFT_THUMB, /**< 10*/ + SL_BODY_34_PARTS_RIGHT_CLAVICLE, /**< 11*/ + SL_BODY_34_PARTS_RIGHT_SHOULDER, /**< 12*/ + SL_BODY_34_PARTS_RIGHT_ELBOW, /**< 13*/ + SL_BODY_34_PARTS_RIGHT_WRIST, /**< 14*/ + SL_BODY_34_PARTS_RIGHT_HAND, /**< 15*/ + SL_BODY_34_PARTS_RIGHT_HANDTIP, /**< 16*/ + SL_BODY_34_PARTS_RIGHT_THUMB, /**< 17*/ + SL_BODY_34_PARTS_LEFT_HIP, /**< 18*/ + SL_BODY_34_PARTS_LEFT_KNEE, /**< 19*/ + SL_BODY_34_PARTS_LEFT_ANKLE, /**< 20*/ + SL_BODY_34_PARTS_LEFT_FOOT, /**< 21*/ + SL_BODY_34_PARTS_RIGHT_HIP, /**< 22*/ + SL_BODY_34_PARTS_RIGHT_KNEE, /**< 23*/ + SL_BODY_34_PARTS_RIGHT_ANKLE, /**< 24*/ + SL_BODY_34_PARTS_RIGHT_FOOT, /**< 25*/ + SL_BODY_34_PARTS_HEAD, /**< 26*/ + SL_BODY_34_PARTS_NOSE, /**< 27*/ + SL_BODY_34_PARTS_LEFT_EYE, /**< 28*/ + SL_BODY_34_PARTS_LEFT_EAR, /**< 29*/ + SL_BODY_34_PARTS_RIGHT_EYE, /**< 30*/ + SL_BODY_34_PARTS_RIGHT_EAR, /**< 31*/ + SL_BODY_34_PARTS_LEFT_HEEL, /**< 32*/ + SL_BODY_34_PARTS_RIGHT_HEEL, /**< 33*/ SL_BODY_34_PARTS_LAST }; /** - * \brief semantic of human body parts and order of \ref ObjectData::keypoint for BODY_FORMAT::BODY_38. + * \brief Semantic of human body parts and order of \ref SL_BodyData.keypoint for \ref SL_BODY_FORMAT_BODY_38. */ enum SL_BODY_38_PARTS { - SL_BODY_38_PARTS_PELVIS, - SL_BODY_38_PARTS_SPINE_1, - SL_BODY_38_PARTS_SPINE_2, - SL_BODY_38_PARTS_SPINE_3, - SL_BODY_38_PARTS_NECK, - SL_BODY_38_PARTS_NOSE, - SL_BODY_38_PARTS_LEFT_EYE, - SL_BODY_38_PARTS_RIGHT_EYE, - SL_BODY_38_PARTS_LEFT_EAR, - SL_BODY_38_PARTS_RIGHT_EAR, - SL_BODY_38_PARTS_LEFT_CLAVICLE, - SL_BODY_38_PARTS_RIGHT_CLAVICLE, - SL_BODY_38_PARTS_LEFT_SHOULDER, - SL_BODY_38_PARTS_RIGHT_SHOULDER, - SL_BODY_38_PARTS_LEFT_ELBOW, - SL_BODY_38_PARTS_RIGHT_ELBOW, - SL_BODY_38_PARTS_LEFT_WRIST, - SL_BODY_38_PARTS_RIGHT_WRIST, - SL_BODY_38_PARTS_LEFT_HIP, - SL_BODY_38_PARTS_RIGHT_HIP, - SL_BODY_38_PARTS_LEFT_KNEE, - SL_BODY_38_PARTS_RIGHT_KNEE, - SL_BODY_38_PARTS_LEFT_ANKLE, - SL_BODY_38_PARTS_RIGHT_ANKLE, - SL_BODY_38_PARTS_LEFT_BIG_TOE, - SL_BODY_38_PARTS_RIGHT_BIG_TOE, - SL_BODY_38_PARTS_LEFT_SMALL_TOE, - SL_BODY_38_PARTS_RIGHT_SMALL_TOE, - SL_BODY_38_PARTS_LEFT_HEEL, - SL_BODY_38_PARTS_RIGHT_HEEL, + SL_BODY_38_PARTS_PELVIS, /**< 0*/ + SL_BODY_38_PARTS_SPINE_1, /**< 1*/ + SL_BODY_38_PARTS_SPINE_2, /**< 2*/ + SL_BODY_38_PARTS_SPINE_3, /**< 3*/ + SL_BODY_38_PARTS_NECK, /**< 4*/ + SL_BODY_38_PARTS_NOSE, /**< 5*/ + SL_BODY_38_PARTS_LEFT_EYE, /**< 6*/ + SL_BODY_38_PARTS_RIGHT_EYE, /**< 7*/ + SL_BODY_38_PARTS_LEFT_EAR, /**< 8*/ + SL_BODY_38_PARTS_RIGHT_EAR, /**< 9*/ + SL_BODY_38_PARTS_LEFT_CLAVICLE, /**< 10*/ + SL_BODY_38_PARTS_RIGHT_CLAVICLE, /**< 11*/ + SL_BODY_38_PARTS_LEFT_SHOULDER, /**< 12*/ + SL_BODY_38_PARTS_RIGHT_SHOULDER, /**< 13*/ + SL_BODY_38_PARTS_LEFT_ELBOW, /**< 14*/ + SL_BODY_38_PARTS_RIGHT_ELBOW, /**< 15*/ + SL_BODY_38_PARTS_LEFT_WRIST, /**< 16*/ + SL_BODY_38_PARTS_RIGHT_WRIST, /**< 17*/ + SL_BODY_38_PARTS_LEFT_HIP, /**< 18*/ + SL_BODY_38_PARTS_RIGHT_HIP, /**< 19*/ + SL_BODY_38_PARTS_LEFT_KNEE, /**< 20*/ + SL_BODY_38_PARTS_RIGHT_KNEE, /**< 21*/ + SL_BODY_38_PARTS_LEFT_ANKLE, /**< 22*/ + SL_BODY_38_PARTS_RIGHT_ANKLE, /**< 23*/ + SL_BODY_38_PARTS_LEFT_BIG_TOE, /**< 24*/ + SL_BODY_38_PARTS_RIGHT_BIG_TOE, /**< 25*/ + SL_BODY_38_PARTS_LEFT_SMALL_TOE, /**< 26*/ + SL_BODY_38_PARTS_RIGHT_SMALL_TOE, /**< 27*/ + SL_BODY_38_PARTS_LEFT_HEEL, /**< 28*/ + SL_BODY_38_PARTS_RIGHT_HEEL, /**< 29*/ // Hands - SL_BODY_38_PARTS_LEFT_HAND_THUMB_4, - SL_BODY_38_PARTS_RIGHT_HAND_THUMB_4, - SL_BODY_38_PARTS_LEFT_HAND_INDEX_1, - SL_BODY_38_PARTS_RIGHT_HAND_INDEX_1, - SL_BODY_38_PARTS_LEFT_HAND_MIDDLE_4, - SL_BODY_38_PARTS_RIGHT_HAND_MIDDLE_4, - SL_BODY_38_PARTS_LEFT_HAND_PINKY_1, - SL_BODY_38_PARTS_RIGHT_HAND_PINKY_1, + SL_BODY_38_PARTS_LEFT_HAND_THUMB_4, /**< 30*/ + SL_BODY_38_PARTS_RIGHT_HAND_THUMB_4, /**< 31*/ + SL_BODY_38_PARTS_LEFT_HAND_INDEX_1, /**< 32*/ + SL_BODY_38_PARTS_RIGHT_HAND_INDEX_1, /**< 33*/ + SL_BODY_38_PARTS_LEFT_HAND_MIDDLE_4, /**< 34*/ + SL_BODY_38_PARTS_RIGHT_HAND_MIDDLE_4, /**< 35*/ + SL_BODY_38_PARTS_LEFT_HAND_PINKY_1, /**< 36*/ + SL_BODY_38_PARTS_RIGHT_HAND_PINKY_1, /**< 37*/ SL_BODY_38_PARTS_LAST }; @@ -957,386 +1174,573 @@ enum SL_BODY_70_PARTS #endif /** -\brief Change the type of outputed position for the Fusion positional tracking (raw data or fusion data projected into zed camera) +* \brief Lists the types of possible position outputs. */ enum SL_POSITION_TYPE { - SL_POSITION_TYPE_RAW = 0, /*The output position will be the raw position data*/ - SL_POSITION_TYPE_FUSION, /*The output position will be the fused position projected into the requested camera repository*/ + SL_POSITION_TYPE_RAW,/**< The output position will be the raw position data. */ + SL_POSITION_TYPE_FUSION,/**< The output position will be the fused position projected into the requested camera repository. */ ///@cond SHOWHIDDEN SL_POSITION_TYPE_LAST ///@endcond }; /** -* \brief Resolution +* \brief Structure containing the width and height of an image. */ struct SL_Resolution { + /** + \brief Width of the image in pixels. + */ long long width; + /** + \brief Height of the image in pixels. + */ long long height; }; /** -Struct containing all parameters passed to the SDK when initializing the ZED. -These parameters will be fixed for the whole execution life time of the camera. -For more details, see the InitParameters class in the SDK API documentation: -https://www.stereolabs.com/docs/api/structsl_1_1InitParameters.html +\brief Structure containing the options used to initialize a camera. + +This class allows you to select multiple parameters for the camera to open such as the selected camera, resolution, depth mode, coordinate system, and units of measurement. +\n Once filled with the desired options, it should be passed to the sl_open_camera() function. + +\note For more info, read about the ZED SDK C++ class it mirrors: +InitParameters */ struct SL_InitParameters { /** + \brief Defines the input source to initialize and open an camera from. + The SDK can handle different input types: - - Select a camera by its ID (/dev/videoX on Linux, and 0 to N cameras connected on Windows) - - Select a camera by its serial number - - Open a recorded sequence in the SVO file format - - Open a streaming camera from its IP address and port - - This parameter allows you to select to desired input. + - Select a camera by its ID (/dev/videoX on Linux, and 0 to N cameras connected on Windows) + - Select a camera by its serial number + - Open a recorded sequence in the SVO file format + - Open a streaming camera from its IP address and port + + \note Available cameras and their id/serial number can be listed using sl_get_device_list() and sl_get_streaming_device_list(). + \note Each camera will create its own memory (CPU and GPU), + therefore the number of cameras used at the same time can be limited by the configuration of your computer (GPU/CPU memory and capabilities). + + Default : (empty) + \note See \ref SL_INPUT_TYPE for complementary information. */ enum SL_INPUT_TYPE input_type; /** - Define the chosen camera resolution. Small resolutions offer higher framerate and lower computation time (SL_RESOLUTION).\n - In most situations, the \ref RESOLUTION "RESOLUTION_HD720" at 60 fps is the best balance between image quality and framerate.\n - Available resolutions are listed here: \ref RESOLUTION. - \n default : \ref RESOLUTION "RESOLUTION_HD720" + \brief Desired camera resolution. + + \note Small resolutions offer higher framerate and lower computation time. + \note In most situations, \ref SL_RESOLUTION_HD720 at 60 FPS is the best balance between image quality and framerate. + + Default:
    +
  • ZED X/X Mini: \ref SL_RESOLUTION_HD1200
  • +
  • other cameras: \ref SL_RESOLUTION_HD720
+ \note Available resolutions are listed here: \ref SL_RESOLUTION. */ enum SL_RESOLUTION resolution; /** - Requested camera frame rate. If set to 0, the highest FPS of the specified \ref camera_resolution will be used.\n - See \ref RESOLUTION for a list of supported framerates. - \n default : 0 - \note If the requested camera_fps is unsupported, the closest available FPS will be used. + \brief Requested camera frame rate. + + If set to 0, the highest FPS of the specified \ref camera_resolution will be used. + \n Default: 0 + \n\n See \ref SL_RESOLUTION for a list of supported frame rates. + \note If the requested \ref camera_fps is unsupported, the closest available FPS will be used. */ int camera_fps; /** - Id of the Camera. + \brief Id for identifying which camera to use from the connected cameras. */ int camera_device_id; /** - If you are using the camera upside down, setting this parameter to FLIP_MODE_ON will cancel its rotation. The images will be horizontally flipped. - \n default : FLIP_MODE_AUTO - * From ZED SDK 3.2 a new FLIP_MODE enum was introduced to add the automatic flip mode detection based on the IMU gravity detection. This only works for ZED-M or ZED2 cameras. + \brief Defines if a flip of the images is needed. + + If you are using the camera upside down, setting this parameter to \ref SL_FLIP_MODE_ON will cancel its rotation. + \n The images will be horizontally flipped. + \n Default: \ref SL_FLIP_MODE_AUTO + \note From ZED SDK 3.2 a new \ref SL_FLIP_MODE enum was introduced to add the automatic flip mode detection based on the IMU gravity detection. + \note This does not work on \ref SL_MODEL_ZED cameras since they do not have the necessary sensors. */ enum SL_FLIP_MODE camera_image_flip; /** - At initialization, the \ref Camera runs a self-calibration process that corrects small offsets from the device's factory calibration.\n - A drawback is that calibration parameters will slightly change from one (live) run to another, which can be an issue for repeatability.\n - If set to true, self-calibration will be disabled and calibration parameters won't be optimized, raw calibration parameters from the conf file will be used\n - default : false + \brief Defines if a flip of the images is needed. + + At initialization, sl_open_camera() runs a self-calibration process that corrects small offsets from the device's factory calibration. + \n A drawback is that calibration parameters will slightly change from one (live) run to another, which can be an issue for repeatability. + \n If set to true, self-calibration will be disabled and calibration parameters won't be optimized, raw calibration parameters from the configuration file will be used. + \n Default: false \note In most situations, self calibration should remain enabled. - \note You can also trigger the self-calibration at anytime after open() by calling \ref Camera::UpdateSelfCalibration(), even if this parameter is set to true. - */ + \note You can also trigger the self-calibration at anytime after sl_open_camera() by calling sl_update_self_calibration(), even if this parameter is set to true. + */ bool camera_disable_self_calib; /** - By default, the SDK only computes a single depth map, aligned with the left camera image.\n - This parameter allows you to enable the \ref MEASURE "MEASURE_DEPTH_RIGHT" and other \ref MEASURE "MEASURE__RIGHT" at the cost of additional computation time.\n + \brief Enable the measurement computation on the right images. - For example, mixed reality pass-through applications require one depth map per eye, so this parameter can be activated. - \n default : false - */ + By default, the ZED SDK only computes a single depth map, aligned with the left camera image. + \n This parameter allows you to enable \ref SL_MEASURE_DEPTH_RIGHT and other \ref SL_MEASURE "SL_MEASURE_XXX_RIGHT" at the cost of additional computation time. + \n For example, mixed reality pass-through applications require one depth map per eye, so this parameter can be activated. + \n Default: false + */ bool enable_right_side_measure; /** - When playing back an SVO file, each call to \ref Camera::grab() will extract a new frame and use it.\n - However, this ignores the real capture rate of the images saved in the SVO file.\n - Enabling this parameter will bring the SDK closer to a real simulation when playing back a file by using the images' timestamps. However, calls to \ref Camera::grab() will return an error when trying to play too fast, and frames will be dropped when playing too slowly. - - \n default : false - */ + \brief Defines if the camera return the frame in real time mode. + + When playing back an SVO file, each call to \ref sl_grab() will extract a new frame and use it. + \n However, it ignores the real capture rate of the images saved in the SVO file. + \n Enabling this parameter will bring the SDK closer to a real simulation when playing back a file by using the images' timestamps. + \n Default: false + \note \ref sl_grab() will return an error when trying to play too fast, and frames will be dropped when playing too slowly. + */ bool svo_real_time_mode; - /** - The SDK offers several \ref DEPTH_MODE options offering various levels of performance and accuracy. - \n This parameter allows you to set the \ref DEPTH_MODE that best matches your needs. - \n default : \ref DEPTH_MODE "DEPTH_MODE_PERFORMANCE" - */ + + /** + \brief \ref SL_DEPTH_MODE to be used. + + The ZED SDK offers several \ref SL_DEPTH_MODE, offering various levels of performance and accuracy. + \n This parameter allows you to set the \ref SL_DEPTH_MODE that best matches your needs. + \n Default: \ref SL_DEPTH_MODE_PERFORMANCE + \note Available depth mode are listed here: \ref SL_DEPTH_MODE. + */ enum SL_DEPTH_MODE depth_mode; - /** - Regions of the generated depth map can oscillate from one frame to another. These oscillations result from a lack of texture (too homogeneous) on an object and by image noise. - \n This parameter control a stabilization filter that reduces these oscillations. In the range [0-100], 0 is disable (raw depth), smoothness is linear from 1 to 100. - \n default : 1 - \note The stabilization uses the positional tracking to increase its accuracy, so the Positional Tracking module will be enabled automatically when set to a value different from 0.\n - */ + + /** + \brief Defines whether the depth needs to be stabilized and to what extent. + + Regions of generated depth map can oscillate from one frame to another. + \n These oscillations result from a lack of texture (too homogeneous) on an object and by image noise. + \n This parameter controls a stabilization filter that reduces these oscillations. + \n In the range [0-100]:
    +
  • 0 disable the depth stabilization (raw depth will be return)
  • +
  • stabilization smoothness is linear from 1 to 100
+ Default: 1 + + \note The stabilization uses the positional tracking to increase its accuracy, + so the positional tracking module will be enabled automatically when set to a value different from 0. + \note Note that calling sl_enable_positional_tracking() with your own parameters afterwards is still possible. + */ int depth_stabilization; + /** - This parameter allows you to specify the minimum depth value (from the camera) that will be computed, measured in the \ref UNIT you define. + \brief Minimum depth distance to be returned, measured in the \ref SL_UNIT defined in \ref coordinate_unit. + + This parameter allows you to specify the minimum depth value (from the camera) that will be computed. + \n In stereovision (the depth technology used by the camera), looking for closer depth values can have a slight impact on performance and memory consumption. - \n On most of modern GPUs, performance impact will be low. However, the impact of memory footprint will be visible. + \n On most modern GPUs, performance impact will be low. However, the impact of memory footprint will be visible. \n In cases of limited computation power, increasing this value can provide better performance. - \n default : (-1) corresponding to 700 mm for a ZED/ZED2 and 300 mm for ZED Mini. + \n Default: -1 (corresponding values are available here) - \note With a ZED camera you can decrease this value to 300 mm whereas you can set it to 100 mm using a ZED Mini and 200 mm for a ZED2. In any case this value cannot be greater than 3 meters. - \note Specific value (0) : This will set the depth minimum distance to the minimum authorized value : - - 300mm for ZED - - 100mm for ZED-M - - 200mm for ZED2 - */ + \note \ref depth_minimum_distance value cannot be greater than 3 meters. + \note 0 will imply that \ref depth_minimum_distance is set to the minimum depth possible for each camera + (those values are available here). + */ float depth_minimum_distance; /** - Defines the current maximum distance that can be computed in the defined \ref UNIT. - When estimating the depth, the SDK uses this upper limit to turn higher values into \ref TOO_FAR ones. + \brief Maximum depth distance to be returned, measured in the \ref SL_UNIT defined in \ref coordinate_unit. - \note Changing this value has no impact on performance and doesn't affect the positional tracking nor the spatial mapping. (Only the depth, point cloud, normals) + When estimating the depth, the ZED SDK uses this upper limit to turn higher values into inf ones. + \note Changing this value has no impact on performance and doesn't affect the positional tracking nor the spatial mapping. + \note It only change values the depth, point cloud and normals. */ float depth_maximum_distance; + /** - This parameter allows you to select the unit to be used for all metric values of the SDK. (depth, point cloud, tracking, mesh, and others) (SL_UNIT). - \n default : \ref UNIT "UNIT_MILLIMETER" - */ + \brief Unit of spatial data (depth, point cloud, tracking, mesh, etc.) for retrieval. + + Default: \ref SL_UNIT_MILLIMETER + */ enum SL_UNIT coordinate_unit; + /** - Positional tracking, point clouds and many other features require a given \ref COORDINATE_SYSTEM to be used as reference. - This parameter allows you to select the \ref COORDINATE_SYSTEM used by the \ref Camera to return its measures. + \brief \ref SL_COORDINATE_SYSTEM to be used as reference for positional tracking, mesh, point clouds, etc. + + This parameter allows you to select the \ref SL_COORDINATE_SYSTEM used by the camera to return its measures. \n This defines the order and the direction of the axis of the coordinate system. - \n default : \ref COORDINATE_SYSTEM "COORDINATE_SYSTEM_IMAGE" - */ + \n Default: \ref SL_COORDINATE_SYSTEM_IMAGE + */ enum SL_COORDINATE_SYSTEM coordinate_system; + /** + \brief NVIDIA graphics card id to use. + By default the SDK will use the most powerful NVIDIA graphics card found. - However, when running several applications, or using several cameras at the same time, splitting the load over available GPUs can be useful. - This parameter allows you to select the GPU used by the \ref Camera using an ID from 0 to n-1 GPUs in your PC. - \n default : -1 + \n However, when running several applications, or using several cameras at the same time, splitting the load over available GPUs can be useful. + \n This parameter allows you to select the GPU used by the sl::Camera using an ID from 0 to n-1 GPUs in your PC. + \n Default: -1 \note A non-positive value will search for all CUDA capable devices and select the most powerful. */ int sdk_gpu_id; + /** - This parameter allows you to enable the verbosity of the SDK to get a variety of runtime information in the console. - When developing an application, enabling verbose mode can help you understand the current SDK behavior. + \brief Enable the ZED SDK verbose mode. + + This parameter allows you to enable the verbosity of the ZED SDK to get a variety of runtime information in the console. + \n When developing an application, enabling verbose (\ref sdk_verbose >= 1) mode can help you understand the current ZED SDK behavior. \n However, this might not be desirable in a shipped version. - \n default : false - \note The verbose messages can also be exported into a log file. See \ref sdk_verbose_log_file for more. + \n Default: 0 (no verbose message) + \note The verbose messages can also be exported into a log file. */ - int sdk_verbose; + int sdk_verbose; /** - Force the motion sensors opening of the ZED 2 / ZED-M to open the camera. - \n default : false. - \n If set to false, the SDK will try to open and use the IMU (second USB device on USB2.0) and will open the camera successfully even if the sensors failed to open. - \n This can be used for example when using a USB3.0 only extension cable (some fiber extension for example). - \n This parameter only impacts the LIVE mode. - \n If set to true, the camera will fail to open if the sensors cannot be opened. This parameter should be used when the IMU data must be available, such as Object Detection module or when the gravity is needed. - \note This setting is not taken into account for ZED camera since it does not include sensors. + \brief Requires the successful opening of the motion sensors before opening the camera. + + Default: false. + + \note If set to false, the ZED SDK will try to open and use the IMU (second USB device on USB2.0) and will open the camera successfully even if the sensors failed to open. + + This can be used for example when using a USB3.0 only extension cable (some fiber extension for example). + \note This parameter only impacts the LIVE mode. + \note If set to true, sl_open_camera() will fail if the sensors cannot be opened. + \note This parameter should be used when the IMU data must be available, such as object detection module or when the gravity is needed. + + \n\note This setting is not taken into account for \ref SL_MODEL_ZED camera since it does not include sensors. */ bool sensors_required; + /** - Enable or Disable the Enhanced Contrast Technology, to improve image quality. - \n default : true. + \brief Enable the Enhanced Contrast Technology, to improve image quality. + + Default: true. + \n If set to true, image enhancement will be activated in camera ISP. Otherwise, the image will not be enhanced by the IPS. - \n This only works for firmware version starting from 1523 and up. + \note This only works for firmware version starting from 1523 and up. */ bool enable_image_enhancement; /** - Define a timeout in seconds after which an error is reported if the \ref open() command fails. + \brief Define a timeout in seconds after which an error is reported if the sl_open_camera() function fails. + Set to '-1' to try to open the camera endlessly without returning error in case of failure. - Set to '0' to return error in case of failure at the first attempt. - \n This parameter only impacts the LIVE mode. + \n Set to '0' to return error in case of failure at the first attempt. + \n Default: 5.0 + \note This parameter only impacts the LIVE mode. */ float open_timeout_sec; /** - Define the behavior of the automatic camera recovery during grab() function call. When async is enabled and there's an issue with the communication with the camera - the grab() will exit after a short period and return the ERROR_CODE::CAMERA_REBOOTING warning. The recovery will run in the background until the correct communication is restored. - When async_grab_camera_recovery is false, the grab() function is blocking and will return only once the camera communication is restored or the timeout is reached. - The default behavior is synchronous, like previous ZED SDK versions + \brief Define the behavior of the automatic camera recovery during sl_grab() function call. + + When async is enabled and there's an issue with the communication with the camera, + sl_grab() will exit after a short period and return the \ref SL_ERROR_CODE_CAMERA_REBOOTING warning. + \n The recovery will run in the background until the correct communication is restored. + \n When \ref async_grab_camera_recovery is false, the sl_grab() function is blocking and will return + only once the camera communication is restored or the timeout is reached. + \n Default: false */ bool async_grab_camera_recovery; /** - Define a computation upper limit to the grab frequency. - This can be useful to get a known constant fixed rate or limit the computation load while keeping a short exposure time by setting a high camera capture framerate. - \n The value should be inferior to the InitParameters::camera_fps and strictly positive. It has no effect when reading an SVO file. - \n This is an upper limit and won't make a difference if the computation is slower than the desired compute capping fps. - \note Internally the grab function always tries to get the latest available image while respecting the desired fps as much as possible. - default is 0. + \brief Define a computation upper limit to the grab frequency. + + This can be useful to get a known constant fixed rate or limit the computation load while keeping a short exposure time by setting a high camera capture framerate. + \n The value should be inferior to the SL_InitParameters::camera_fps and strictly positive. + \note It has no effect when reading an SVO file. + + This is an upper limit and won't make a difference if the computation is slower than the desired compute capping FPS. + \note Internally the sl_grab() function always tries to get the latest available image while respecting the desired FPS as much as possible. */ float grab_compute_capping_fps; + /** + Enable or disable the image validity verification. + This will perform additional verification on the image to identify corrupted data. This verification is done in the grab function and requires some computations. + If an issue is found, the grab function will output a warning as sl::ERROR_CODE::CORRUPTED_FRAME. + This version doesn't detect frame tearing currently. + \n default: disabled + */ + bool enable_image_validity_check; }; /** -Parameters that define the behavior of the grab. +\brief Structure containing parameters that defines the behavior of sl_grab(). + +The default constructor sets all parameters to their default settings. +\note Parameters can be adjusted by the user. */ struct SL_RuntimeParameters { /** - Provides 3D measures (point cloud and normals) in the desired reference frame (default is REFERENCE_FRAME_CAMERA) - \n default : \ref REFERENCE_FRAME_CAMERA + \brief Reference frame in which to provides the 3D measures (point cloud, normals, etc.). + + Default: \ref SL_REFERENCE_FRAME_CAMERA */ enum SL_REFERENCE_FRAME reference_frame; + /** - Defines if the depth map should be computed. - \n If false, only the images are available. - \n default : true + \brief Defines if the depth map should be computed. + + Default: true + \note If set to false, only the images are available. */ bool enable_depth; - /** - Defines if the depth map should be completed or not, similar to the removed SENSING_MODE::FILL - \warning Enabling this will override the confidence values confidence_threshold and texture_confidence_threshold as well as remove_saturated_areas - */ + /** + \brief Defines if the depth map should be completed or not. + + Default: false + \note It is similar to the removed sl_SENSING_MODE_FILL. + \warning Enabling this will override the confidence values \ref confidence_threshold + and \ref texture_confidence_threshold as well as \ref remove_saturated_areas. + */ bool enable_fill_mode; /** - Threshold to reject depth values based on their confidence. - \n Each depth pixel has a corresponding confidence. (\ref MEASURE "MEASURE_CONFIDENCE"), the confidence range is [1,100]. - \n By default, the confidence threshold is set at 100, meaning that no depth pixel will be rejected. + \brief Threshold to reject depth values based on their confidence. + + Each depth pixel has a corresponding confidence (\ref SL_MEASURE_CONFIDENCE) in the range [1, 100]. \n Decreasing this value will remove depth data from both objects edges and low textured areas, to keep only confident depth estimation data. + \n Default: 100 (no depth pixel will be rejected) + \note Pixels with a value close to 100 are not to be trusted. Accurate depth pixels tends to be closer to lower values. + \note It can be seen as a probability of error, scaled to 100. */ int confidence_threshold; + /** - Threshold to reject depth values based on their texture confidence. - \n The texture confidence range is [1,100]. - \n By default, the texture confidence threshold is set at 100, meaning that no depth pixel will be rejected. + \brief Threshold to reject depth values based on their texture confidence. + + The texture confidence range is [1, 100]. \n Decreasing this value will remove depth data from image areas which are uniform. + \n Default: 100 (no depth pixel will be rejected) + \note Pixels with a value close to 100 are not to be trusted. Accurate depth pixels tends to be closer to lower values. */ int texture_confidence_threshold; + /** - Defines if the saturated area (Luminance>=255) must be removed from depth map estimation - \n True by default - \n It is recommended to keep this parameter at true because saturated area can create false detection. + \brief Defines if the saturated area (luminance>=255) must be removed from depth map estimation. + + Default: true + \note It is recommended to keep this parameter at true because saturated area can create false detection. */ bool remove_saturated_areas; }; /** -Properties of a camera. +\brief Structure containing information about the properties of a camera. + +\note A \ref camera_model \ref SL_MODEL_ZED_M with an id '-1' can be due to an inverted USB-C cable. */ struct SL_DeviceProperties { /** - the camera state + \brief State of the camera. + + Default: \ref SL_CAMERA_STATE_NOT_AVAILABLE */ enum SL_CAMERA_STATE camera_state; + /** - the camera id + \brief Id of the camera. + + Default: -1 */ int id; + /** - the camera model + \brief Model of the camera. */ enum SL_MODEL camera_model; + /** - the camera serial number - \n Not provided for Windows + \brief Serial number of the camera. + + Default: 0 + \warning Not provided for Windows. */ + unsigned int sn; /** - camera input type + \brief Input type of the camera. */ enum SL_INPUT_TYPE input_type; }; +/** +\brief Structure containing the intrinsic parameters of a camera. +*/ struct SL_CameraParameters { - float fx; /**< Focal length in pixels along x axis. */ - float fy; /**< Focal length in pixels along y axis. */ - float cx; /**< Optical center along x axis, defined in pixels (usually close to width/2). */ - float cy; /**< Optical center along y axis, defined in pixels (usually close to height/2). */ - double disto[12]; /**< Distortion factor : [ k1, k2, p1, p2, k3 ]. Radial (k1,k2,k3) and Tangential (p1,p2) distortion.*/ - float v_fov; /**< Vertical field of view, in degrees. */ - float h_fov; /**< Horizontal field of view, in degrees.*/ - float d_fov; /**< Diagonal field of view, in degrees.*/ - struct SL_Resolution image_size; /** size in pixels of the images given by the camera.*/ - float focal_length_metric; /**< real focal length in millimeters*/ + /** + \brief Focal length in pixels along x axis. + */ + float fx; + + /** + \brief Focal length in pixels along y axis. + */ + float fy; + + /** + \brief Optical center along x axis, defined in pixels (usually close to width / 2). + */ + float cx; + + /** + \brief Optical center along y axis, defined in pixels (usually close to height / 2). + */ + float cy; + + /** + \brief Distortion factor : [k1, k2, p1, p2, k3, k4, k5, k6, s1, s2, s3, s4]. + + Radial (k1, k2, k3, k4, k5, k6), Tangential (p1,p2) and Prism (s1, s2, s3, s4) distortion. + */ + double disto[12]; + + /** + \brief Vertical field of view, in degrees. + */ + float v_fov; + + /** + \brief Horizontal field of view, in degrees. + */ + float h_fov; + + /** + \brief Diagonal field of view, in degrees. + */ + float d_fov; + + /** + \brief Size in pixels of the images given by the camera. + */ + struct SL_Resolution image_size; + + /** + \brief Real focal length in millimeters. + */ + float focal_length_metric; }; /** -Holds calibration information about the current ZED's hardware, including per-sensor calibration and offsets between the two sensors. -*/ +\brief Structure containing intrinsic and extrinsic parameters of the camera (translation and rotation). + +That information about the camera will be returned by sl_get_camera_information(). + +\note The calibration/rectification process, called during sl_open_camera(), is using the raw parameters defined in the SNXXX.conf file, where XXX is the serial number of the camera. +\note Those values may be adjusted or not by the self-calibration to get a proper image alignment. +\note After sl_open_camera() is done (with or without self-calibration activated), most of the stereo parameters (except baseline of course) should be 0 or very close to 0. +\note It means that images after rectification process (given by sl_retrieve_image()) are aligned as if they were taken by a "perfect" stereo camera, defined by the new \ref SL_CalibrationParameters. +\warning CalibrationParameters are returned in \ref SL_COORDINATE_SYSTEM_IMAGE, they are not impacted by the SL_InitParameters.coordinate_system. + */ struct SL_CalibrationParameters { /** - Intrinsic parameters of the left camera + \brief Intrinsic \ref SL_CameraParameters of the left camera. */ struct SL_CameraParameters left_cam; /** - Intrinsic parameters of the right camera + \brief Intrinsic \ref SL_CameraParameters of the right camera. */ struct SL_CameraParameters right_cam; /** - Left to Right camera rotation, expressed in user coordinate system and unit (defined by InitParameters). + \brief Left to right camera rotation, expressed in user coordinate system and unit (defined by SL_InitParameters.coordinate_system). */ struct SL_Vector4 rotation; /** - Left to Right camera translation, expressed in user coordinate system and unit (defined by InitParameters). + \brief Left to right camera translation, expressed in user coordinate system and unit (defined by SL_InitParameters.coordinate_system). */ struct SL_Vector3 translation; }; /** -\brief Structure containing information about a single sensor available in the current device -\note This object is meant to be used as a read - only container, editing any of its fields won't impact the SDK. +\brief Structure containing information about a single sensor available in the current device. + +Information about the camera sensors is available in the \ref SL_CameraInformation struct returned by \ref sl_get_camera_information(). +\note This structure is meant to be used as a read-only container. +\note Editing any of its fields will not impact the ZED SDK. */ struct SL_SensorParameters { - enum SL_SENSOR_TYPE type; /** The type of the sensor as \ref DEVICE_SENSORS (SL_SENSOR_TYPE)*/ - float resolution; /** The resolution of the sensor. */ - float sampling_rate; /** The sampling rate (or ODR) of the sensor. */ - struct SL_Vector2 range; /** The range values of the sensor. MIN: "range.x", MAX: "range.y" */ - float noise_density; /** also known as white noise, given as continous (frequency independant). Units will be expressed in sensor_unit/squared_root(Hz). "NAN" if the information is not available */ - float random_walk; /** derived from the Allan Variance, given as continous (frequency independant). Units will be expressed in sensor_unit/s/squared_root(Hz)."NAN" if the information is not available */ - enum SL_SENSORS_UNIT sensor_unit; /** The string relative to the measurement unit of the sensor (SL_SENSORS_UNIT). */ - bool is_available; + enum SL_SENSOR_TYPE type; /**< \brief Type of the sensor.*/ + float resolution; /**< \brief Resolution of the sensor. */ + float sampling_rate; /**< \brief Sampling rate (or ODR) of the sensor. */ + struct SL_Vector2 range; /**< \brief Range of the sensor (minimum: `range.x`, maximum: `range.y`). */ + float noise_density; /**< \brief White noise density given as continuous (frequency-independent).\note The units will be expressed in ```sensor_unit / √(Hz)```.\note `NAN` if the information is not available. */ + float random_walk; /**< \brief Random walk derived from the Allan Variance given as continuous (frequency-independent).\note The units will be expressed in ```sensor_unit / √(Hz)```.\note `NAN` if the information is not available. */ + enum SL_SENSORS_UNIT sensor_unit; /**< \brief Unit of the sensor. */ + bool is_available; /**< \brief Whether the sensor is available in your camera.*/ }; /** -\brief Structure containing information about the camera sensor -\note This object is meant to be used as a read-only container, editing any of its field won't impact the SDK. -\warning CalibrationParameters are returned in SL_COORDINATE_SYSTEM_IMAGE, they are not impacted by the InitParameters::coordinate_system - */ +\brief Structure containing information about the camera sensor. +\note This object is meant to be used as a read-only container, editing any of its field won't impact the ZED SDK. +\warning \ref SL_CalibrationParameters are returned in \ref SL_COORDINATE_SYSTEM_IMAGE, they are not impacted by the \ref SL_InitParameters.coordinate_system. +*/ struct SL_CameraConfiguration { - /**< Intrinsic and Extrinsic stereo parameters for rectified/undistorded images (default). */ + /** + \brief Intrinsics and extrinsic stereo parameters for rectified/undistorted images. + */ struct SL_CalibrationParameters calibration_parameters; - /**< Intrinsic and Extrinsic stereo parameters for original images (unrectified/distorded). */ + /** + \brief Intrinsics and extrinsic stereo parameters for unrectified/distorted images. + */ struct SL_CalibrationParameters calibration_parameters_raw; - /**< The internal firmware version of the camera. */ + /** + \brief Internal firmware version of the camera. + */ unsigned int firmware_version; - /**< The camera capture FPS */ + /** + \brief FPS of the camera. + */ float fps; - /**< The camera resolution */ + /** + \brief Resolution of the camera. + */ struct SL_Resolution resolution; }; /** -Structure containing information about all the sensors available in the current device. +\brief Structure containing information about all the sensors available in the current device. + +Information about the camera sensors is available in the \ref SL_CameraInformation struct returned by \ref sl_get_camera_information(). +\note This structure is meant to be used as a read-only container. +\note Editing any of its fields will not impact the ZED SDK. */ struct SL_SensorsConfiguration { /** - The firmware version of the sensor module, 0 if no sensors are available (ZED camera model). + \brief Firmware version of the sensor module. + \note 0 if no sensors are available (\ref SL_MODEL_ZED). */ unsigned int firmware_version; /** - IMU to Left camera rotation (quaternion). + \brief IMU to left camera rotation (quaternion). + \note It contains the rotation between the IMU frame and camera frame. */ struct SL_Vector4 camera_ium_rotation; /** - IMU to Left camera translation (SL_float3). + \brief IMU to left camera translation. + \note It contains the translation between the IMU frame and camera frame. */ struct SL_Vector3 camera_imu_translation; /** - Magnetometer to IMU rotation. That contains rotation between IMU frame and magnetometer frame. + \brief Magnetometer to IMU rotation (quaternion). + \note It contains rotation between IMU frame and magnetometer frame. */ struct SL_Vector4 ium_magnetometer_rotation; /** - Magnetometer to IMU translation. That contains translation between IMU frame and magnetometer frame. + \brief Magnetometer to IMU translation (quaternion). + \note It contains translation between IMU frame and magnetometer frame. */ struct SL_Vector3 ium_magnetometer_translation; /** - Configuration of the accelerometer device + \brief Configuration of the accelerometer. */ struct SL_SensorParameters accelerometer_parameters; /** - Configuration of the gyroscope device + \brief Configuration of the gyroscope. */ struct SL_SensorParameters gyroscope_parameters; /** - Configuration of the magnetometer device + \brief Configuration of the magnetometer. */ struct SL_SensorParameters magnetometer_parameters; /** - Configuration of the barometer device + \brief Configuration of the barometer. */ struct SL_SensorParameters barometer_parameters; }; @@ -1350,179 +1754,267 @@ That information about the camera will be returned by sl_get_camera_information( \note This object is meant to be used as a read-only container, editing any of its field won't impact the SDK. */ struct SL_CameraInformation { - - /**< The serial number of the camera. */ + /** + \brief Serial number of the camera. + */ unsigned int serial_number; - /**< The model of the camera (ZED, ZED-M or ZED2). */ + /** + \brief Model of the camera (see \ref SL_MODEL). + */ enum SL_MODEL camera_model; - /**< Input type used in SDK. */ + /** + \brief Input type used in the ZED SDK. + */ enum SL_INPUT_TYPE input_type; - /**< Camera configuration as defined in \ref CameraConfiguration. */ + /** + \brief Camera configuration parameters stored in a \ref SL_CameraConfiguration. + */ struct SL_CameraConfiguration camera_configuration; - /**< Device Sensors configuration as defined in \ref SensorsConfiguration. */ + /** + \brief Sensors configuration parameters stored in a \ref SL_SensorsConfiguration. + */ struct SL_SensorsConfiguration sensors_configuration; }; /** -Parameters for positional tracking initialization. +\brief Structure containing a set of parameters for the positional tracking module initialization. + +The default constructor sets all parameters to their default settings. +\note Parameters can be user adjusted. */ struct SL_PositionalTrackingParameters { /** - Rotation of the camera in the world frame when the camera is started. By default, it should be identity. + \brief Rotation of the camera in the world frame when the camera is started. + + Default: Identity quaternion */ struct SL_Quaternion initial_world_rotation; /** - Position of the camera in the world frame when the camera is started. By default, it should be identity. + \brief Position of the camera in the world frame when the camera is started. + + Default: Null vector */ struct SL_Vector3 initial_world_position; /** - This mode enables the camera to remember its surroundings. This helps correct positional tracking drift, and can be helpful for positioning - different cameras relative to one other in space. - \n default: true -d \warning: This mode requires more resources to run, but greatly improves tracking accuracy. We recommend leaving it on by default. - */ + \brief Whether the camera can remember its surroundings. + + This helps correct positional tracking drift and can be helpful for positioning different cameras relative to one other in space. + \n Default: true + + \warning This mode requires more resources to run, but greatly improves tracking accuracy. + \warning We recommend leaving it on by default. + */ bool enable_area_memory; /** - This mode enables smooth pose correction for small drift correction. - */ + \brief Whether to enable smooth pose correction for small drift correction. + + Default: false + */ bool enable_pose_smothing; /** - This mode initializes the tracking to be aligned with the floor plane to better position the camera in space. - \n default: false + \brief Initializes the tracking to be aligned with the floor plane to better position the camera in space. + + Default: false \note This launches floor plane detection in the background until a suitable floor plane is found. - The tracking is in POSITIONAL_TRACKING_STATE_SEARCHING state. + \note The tracking will start in \ref SL_POSITIONAL_TRACKING_STATE_SEARCHING state. - \warning This features work best with the ZED-M since it needs an IMU to classify the floor. - * The ZED needs to look at the floor during initialization for optimum results. - */ + \warning This features does not work with \ref SL_MODEL_ZED since it needs an IMU to classify the floor. + \warning The camera needs to look at the floor during initialization for optimum results. + */ bool set_floor_as_origin; /** - This setting allows you define the camera as static. If true, it will not move in the environment. This allows you to set its position using initial_world_transform. - \n All SDK functionalities requiring positional tracking will be enabled. - \n Camera::getPosition() will return the value set as initial_world_transform for the PATH, and identity as the POSE. - */ + \brief Whether to define the camera as static. + + If true, it will not move in the environment. This allows you to set its position using \ref initial_world_position and \ref initial_world_rotation. + \n All ZED SDK functionalities requiring positional tracking will be enabled without additional computation. + \n \ref sl_get_position() will return the values set as \ref initial_world_position and \ref initial_world_rotation. + \n Default: false + */ bool set_as_static; /** - This setting allows you to enable or disable IMU fusion. When set to false, only the optical odometry will be used. - \n default: true - \note This setting has no impact on the tracking of a ZED camera; only the ZED Mini uses a built-in IMU. - */ + \brief Whether to enable the IMU fusion. + + When set to false, only the optical odometry will be used. + \n Default: true + \note This setting has no impact on the tracking of a camera. + \note \ref SL_MODEL_ZED does not have an IMU. + */ bool enable_imu_fusion; /** - * This setting allows you to change the minimum depth used by the SDK for Positional Tracking. It may be useful for example - * if any steady objects are in front of the camera and may perturbate the positional tracking algorithm. - * default : -1 which means no minimum depth + \brief Whether to enable the IMU fusion. + + When set to false, only the optical odometry will be used. + \n Default: true + \note This setting has no impact on the tracking of a camera + \note \ref SL_MODEL_ZED does not have an IMU. */ float depth_min_range; /** - * \brief This setting allows you to override 2 of the 3 rotations from initial_world_transform using the IMU gravity + \brief Whether to override 2 of the 3 components from \ref initial_world_rotation using the IMU gravity. + + Default: true + \note This parameter does nothing on sl.ZED.MODEL since it does not have an IMU. */ bool set_gravity_as_origin; /** - * \brief Positional tracking mode used. Can be used to improve accuracy in some type of scene at the cost of longer runtime - * default : POSITIONAL_TRACKING_MODE::STANDARD + \brief Positional tracking mode used. + + Can be used to improve accuracy in some types of scene at the cost of longer runtime. + \n Default: \ref SL_POSITIONAL_TRACKING_MODE_STANDARD */ enum SL_POSITIONAL_TRACKING_MODE mode; }; /** - \class PlaneDetectionParameters - \brief Sets the plane detection parameters. +\brief Structure containing a set of parameters for the region of interest - The default constructor sets all parameters to their default settings. - */ +*/ +struct SL_RegionOfInterestParameters +{ + /** + \brief Filtering how far object in the ROI should be considered, this is useful for a vehicle for instance + + Default: 2.5 meters + */ + float depth_far_threshold_meters; + + /** + \brief By default consider only the lower half of the image, can be useful to filter out the sky + + Default: 0.5, correspond to the lower half of the image + */ + float image_height_ratio_cutoff; + + /** + \brief Once computed the ROI computed will be automatically applied + + Default: Enabled + */ + bool auto_apply; +}; + +/** +\brief Structure containing a set of parameters for the plane detection functionality. +The default constructor sets all parameters to their default settings. +\note Parameters can be adjusted by the user. +*/ struct SL_PlaneDetectionParameters { /** - \brief controls the spread of plane by checking the position difference. - \n default: 0.15 meters + \brief Controls the spread of plane by checking the position difference. + + Default: 0.15 meters */ float max_distance_threshold; /** - \brief controls the spread of plane by checking the angle difference. - \n default: 15 degree + \brief Controls the spread of plane by checking the angle difference. + + Default: 15 degrees */ float normal_similarity_threshold; }; /** -\brief Recording structure that contains information about SVO. +\brief Structure containing information about the status of the recording. */ struct SL_RecordingStatus { - /**< Recorder status, true if enabled */ + /** + \brief Report if the recording has been enabled. + */ bool is_recording; - /**< Recorder status, true if the pause is enabled */ + /** + \brief Report if the recording has been paused. + */ bool is_paused; - /**< Status of current frame. True for success or false if the frame couldn't be written in the SVO file.*/ + /** + \brief Status of current frame. + + True for success or false if the frame could not be written in the SVO file. + */ bool status; - /**< Compression time for the current frame in ms.*/ + /** + \brief Compression time for the current frame in milliseconds. + */ double current_compression_time; - /**< Compression ratio (% of raw size) for the current frame.*/ + /** + \brief Compression ratio (% of raw size) for the current frame. + */ double current_compression_ratio; - /**< Average compression time in ms since beginning of recording.*/ + /** + \brief Average compression time in milliseconds since beginning of recording. + */ double average_compression_time; - /**< Average compression ratio (% of raw size) since beginning of recording.*/ + /** + \brief Average compression ratio (% of raw size) since beginning of recording. + */ double average_compression_ratio; }; /** -\brief Sets the recording parameters. +\brief Structure containing the options used to record. */ struct SL_RecordingParameters { /** - \brief filename of the SVO file. + \brief Filename of the file to save the recording into. */ unsigned char video_filename[256]; /** - \brief can be one of the \ref SL_SVO_COMPRESSION_MODE enum + \brief Compression mode the recording. + + Default: \ref SL_SVO_COMPRESSION_MODE_H264 */ enum SL_SVO_COMPRESSION_MODE compression_mode; /** - \brief overrides default bitrate of the SVO file, in KBits/s. Only works if \ref SVO_COMPRESSION_MODE is H264 or H265. - \n default : 0 means default values (depends on the resolution) - \note Available range : 0 or [1000 - 60000] + \brief Overrides the default bitrate of the SVO file, in kbits/s. + + Default: 0 (the default values associated with the resolution) + \note Only works if \ref compression_mode is H264 or H265. + \note Available range: 0 or [1000 - 60000] */ unsigned int bitrate; /** - \brief defines the target framerate for the recording module. - \warning This framerate must be below or equal to the camera framerate and camera framerate must be a multiple of the target framerate. It means that - it must respect camera_framerate%target_framerate==0 - Allowed framerates are 15,30, 60 or 100 if possible. - Any other values will be discarded and camera FPS will be taken. - \n default : 0, meaning that the camera framerate will be taken + \brief Framerate for the recording file. + + Default: 0 (camera framerate will be taken) + \warning This framerate must be below or equal to the camera framerate and camera framerate must be a multiple of the target framerate. + \warning It means that it must respect . + \warning Allowed framerates are 15,30, 60 or 100 if possible. + \warning Any other values will be discarded and camera FPS will be taken. */ unsigned int target_framerate; /** - \brief In case of streaming input, if set to false, it will avoid decoding/re-encoding and convert directly streaming input into a SVO file. - This saves a encoding session and can be especially useful on NVIDIA Geforce cards where the number of encoding session is limited. - \note compression_mode, target_framerate and bitrate will be ignored in this mode. + \brief Defines whether to decode and re-encode a streaming source. + + Default: false + \note If set to false, it will avoid decoding/re-encoding and convert directly streaming input into a SVO file. + \note This saves a encoding session and can be especially useful on NVIDIA Geforce cards where the number of encoding session is limited. + \note \ref compression_mode, \ref target_framerate and \ref bitrate will be ignored in this mode. */ bool transcode_streaming_input; }; /** -\brief Sets the streaming parameters. -\note Parameters can be user adjusted. +\brief Structure containing the options used to stream with the ZED SDK. +\note Parameters can be adjusted by the user. */ struct SL_StreamingParameters { /** - \brief Defines the codec used for streaming. - \warning If HEVC is used, make sure the receiving host is compatible with H265 decoding (Pascal NVIDIA card or newer). If not, prefer to use H264 since every compatible NVIDIA card supports H264 decoding + \brief Encoding used for streaming. */ enum SL_STREAMING_CODEC codec; /** - \brief Defines the port used for streaming. + \brief Port used for streaming. \warning Port must be an even number. Any odd number will be rejected. \warning Port must be opened. */ @@ -1530,132 +2022,167 @@ struct SL_StreamingParameters { /** \brief Defines the streaming bitrate in Kbits/s - * - * - * | STREAMING_CODEC | Resolution | FPS | bitrate (kbps) | - * |------------------|--------------|-------|----------------| - * | H264 | HD2K | 15 | 8500 | - * | H264 | HD1080 | 30 | 12500 | - * | H264 | HD720 | 60 | 7000 | - * | H265 | HD2K | 15 | 7000 | - * | H265 | HD1080 | 30 | 11000 | - * | H265 | HD720 | 60 | 6000 | - - \note Available range : [1000 - 60000] + + | \ref SL_STREAMING_CODEC | \ref SL_RESOLUTION | FPS | bitrate (kbps) | + |------------------------------|---------------------------|-------|----------------| + | \ref SL_STREAMING_CODEC_H264 | \ref SL_RESOLUTION_HD2K | 15 | 8500 | + | \ref SL_STREAMING_CODEC_H264 | \ref SL_RESOLUTION_HD1080 | 30 | 12500 | + | \ref SL_STREAMING_CODEC_H264 | \ref SL_RESOLUTION_HD720 | 60 | 7000 | + | \ref SL_STREAMING_CODEC_H265 | \ref SL_RESOLUTION_HD2K | 15 | 7000 | + | \ref SL_STREAMING_CODEC_H265 | \ref SL_RESOLUTION_HD1080 | 30 | 11000 | + | \ref SL_STREAMING_CODEC_H265 | \ref SL_RESOLUTION_HD720 | 60 | 6000 | + Default: 0 (it will be set to the best value depending on your resolution/FPS) + \note Available range: [1000 - 60000] */ unsigned int bitrate; /** - \brief Defines the gop size in number of frames. - \note if value is set to -1, the gop size will last at maximum 2 seconds, depending on camera fps. - \note The gop size determines the maximum distance between IDR/I-frames. Very high GOP size will result in slightly more efficient compression, especially on static scenes. But latency will increase. - \note maximum value: 256 + \brief GOP size in number of frames. + + Default: -1 (the GOP size will last at maximum 2 seconds, depending on camera FPS) + \note The GOP size determines the maximum distance between IDR/I-frames. Very high GOP size will result in slightly more efficient compression, especially on static scenes. But latency will increase. + \note Maximum value: 256 */ int gop_size; /** - \brief Enable/Disable adaptive bitrate - \note Bitrate will be adjusted depending the number of packet dropped during streaming. - \note if activated, bitrate can vary between [bitrate/4, bitrate] - \warning Currently, the adaptive bitrate only works when "sending" device is a NVIDIA Jetson (X1,X2,Xavier,Nano) + \brief Defines whether the adaptive bitrate is enable. + + Default: false + \note Bitrate will be adjusted depending the number of packet dropped during streaming. + \note If activated, the bitrate can vary between [bitrate/4, bitrate]. + \warning Currently, the adaptive bitrate only works when "sending" device is a NVIDIA Jetson (X1, X2, Xavier, Nano). */ bool adaptative_bitrate; /** - \brief Defines a single chunk size - \note Stream buffers are divided in X number of chunk where each chunk is "chunk_size" bytes long. - \note Default value is 16084. You can lower this value if network generates a lot of packet lost : this will + \brief Size of a single chunk. + + Default: 16084 + \note Stream buffers are divided into X number of chunks where each chunk is \ref chunk_size bytes long. + \note You can lower \ref chunk_size value if network generates a lot of packet lost: this will generates more chunk for a single image, but each chunk sent will be lighter to avoid inside-chunk corruption. - Increasing this value can decrease latency. - \note Available range : [4096 - 65000] + \note Increasing this value can decrease latency. + + \n \note Available range: [1024 - 65000] */ unsigned short chunk_size; /** - \brief defines the target framerate for the streaming output. - \warning This framerate must be below or equal to the camera framerate. Allowed framerates are 15,30, 60 or 100 if possible. - Any other values will be discarded and camera FPS will be taken. - \ndefault : 0, meaning that the camera framerate will be taken + \brief Framerate for the streaming output. + + Default: 0 (camera framerate will be taken) + \warning This framerate must be below or equal to the camera framerate. + \warning Allowed framerates are 15, 30, 60 or 100 if possible. + \warning Any other values will be discarded and camera FPS will be taken. */ unsigned int target_framerate; }; /** -\struct StreamingProperties -\brief Properties of a streaming device - */ +\brief Structure containing information about the properties of a streaming device. + */ struct SL_StreamingProperties { /** - the streaming IP of the device + \brief IP address of the streaming device. */ unsigned char ip[16]; /** - the streaming port + \brief Streaming port of the streaming device. + + Default: 0 */ unsigned short port; /** - the serial number of the streaming device + \brief Serial number of the streaming camera. + + Default: 0 */ unsigned int serial_number; /** - the current bitrate of encoding of the streaming device + \brief Current bitrate of encoding of the streaming device. + + Default: 0 */ int current_bitrate; /** - the current codec used for compression in streaming device + \brief Current codec used for compression in streaming device. + + Default: \ref SL_STREAMING_CODEC_H265 */ enum SL_STREAMING_CODEC codec; }; +/** +\brief Structure containing a set of parameters for the spatial mapping module. +The default constructor sets all parameters to their default settings. +\note Parameters can be adjusted by the user. +*/ struct SL_SpatialMappingParameters { /** - \brief Spatial mapping resolution in meters. Should fit \ref allowed_resolution (Default is 0.05f). + \brief Spatial mapping resolution in meters. + + Default: 0.05f */ float resolution_meter; /** \brief Depth range in meters. - Can be different from the value set by \ref setDepthMaxRangeValue. - Set to 0 by default. In this case, the range is computed from resolution_meter + + Can be different from the value set by SL_InitParameters.depth_maximum_distance. + \note Set to 0 by default. In this case, the range is computed from \ref resolution_meter and from the current internal parameters to fit your application. */ float range_meter; /** - \brief Set to true if you want to be able to apply the texture to your mesh after its creation. + \brief Whether to save the texture. + If set to true, you will be able to apply the texture to your mesh after it is created. + \n Default: false \note This option will consume more memory. - \note This option is only available for \ref SPATIAL_MAP_TYPE_MESH + \note This option is only available for \ref SL_SPATIAL_MAP_TYPE_MESH. */ bool save_texture; /** - \brief Set to false if you want to ensure consistency between the mesh and its inner chunk data (default is false). + \brief Whether to only use chunks. - \note Updating the mesh is time-consuming. Setting this to true results in better performance. + If set to false, you will ensure consistency between the mesh and its inner chunk data. + \n Default: false + \note Updating the mesh is time-consuming. + \note Setting this to true results in better performance. */ bool use_chunk_only; /** - \brief The maximum CPU memory (in MB) allocated for the meshing process (default is 2048). + \brief The maximum CPU memory (in MB) allocated for the meshing process. + + Default: 2048 */ int max_memory_usage; /** - \brief Specify if the order of the vertices of the triangles needs to be inverted. If your display process does not handle front and back face culling, you can use this to correct it. + \brief Whether to inverse the order of the vertices of the triangles. - \note This option is only available for \ref SPATIAL_MAP_TYPE_MESH + If your display process does not handle front and back face culling, you can use this to correct it. + \n Default: false + \note This option is only available for \ref SL_SPATIAL_MAP_TYPE_MESH. */ bool reverse_vertex_order; /** - \brief The type of spatial map to be created. This dictates the format that will be used for the mapping(e.g. mesh, point cloud). See \ref SPATIAL_MAP_TYPE + \brief The type of spatial map to be created. + + This dictates the format that will be used for the mapping (e.g. mesh, point cloud). + \n See \ref SL_SPATIAL_MAP_TYPE. */ enum SL_SPATIAL_MAP_TYPE map_type; /** - \brief Control the integration rate of the current depth into the mapping process. - This parameter controls how many times a stable 3D points should be seen before it is integrated into the spatial mapping. - Default value is 0, this will define the stability counter based on the mesh resolution, the higher the resolution, the higher the stability counter. + \brief Control the integration rate of the current depth into the mapping process. + + This parameter controls how many times a stable 3D points should be seen before it is integrated into the spatial mapping. + \n Default: 0 (this will define the stability counter based on the mesh resolution, the higher the resolution, the higher the stability counter) */ int stability_counter; }; @@ -1665,201 +2192,254 @@ struct SL_SpatialMappingParameters { #define MAX_NUMBER_OBJECT 75 #define MAX_TRAJECTORY_SIZE 200 -/** Set the batch trajectory parameters*/ +/** +\brief Structure containing a set of parameters for batch object detection. + +The default constructor sets all parameters to their default settings. +\note Parameters can be user adjusted. +*/ struct SL_BatchParameters { /** - \brief Defines if the Batch option in the object detection module is enabled. Batch queueing system provides: - * - Deep-Learning based re-identification - * - Trajectory smoothing and filtering - \note To activate this option, enable must be set to true. + \brief Whether to enable the batch option in the object detection module. + + Batch queueing system provides: + - deep-learning based re-identification + - trajectory smoothing and filtering + + Default: false + \note To activate this option, \ref enable must be set to true. */ bool enable; /** - \brief Max retention time in seconds of a detected object. After this time, the same object will mostly have a different ID. + \brief Max retention time in seconds of a detected object. + + After this time, the same object will mostly have a different id. */ float id_retention_time; /** \brief Trajectories will be output in batch with the desired latency in seconds. + During this waiting time, re-identification of objects is done in the background. - Specifying a short latency will limit the search ( falling in timeout) for previously seen object IDs but will be closer to real time output. - Specifying a long latency will reduce the change of timeout in Re-ID but increase difference with live output. + \note Specifying a short latency will limit the search (falling in timeout) for previously seen object ids but will be closer to real time output. + \note Specifying a long latency will reduce the change of timeout in re-identification but increase difference with live output. */ float latency; }; /** -\brief contains AI model status. +\brief Structure containing AI model status. */ struct SL_AI_Model_status { - bool downloaded; // the model file is currently present on the host - bool optimized; // an engine file with the expected architecure is found. + bool downloaded; /**< \brief The model file is currently present on the host.*/ + bool optimized; /**< \brief An engine file with the expected architecture is found.*/ }; /** -Sets the object detection parameters. +\brief Structure containing a set of parameters for the object detection module. + +The default constructor sets all parameters to their default settings. +\note Parameters can be user adjusted. */ struct SL_ObjectDetectionParameters { /** - \brief Defines a module instance id. This is used to identify which object detection model instance is used. - * If the id is negative it will be auto incremented/generated + \brief Id of the module instance. + + This is used to identify which object detection module instance is used. */ unsigned int instance_module_id; /** - \brief Defines if the object detection is synchronized to the image or runs in a separate thread. - If set to true, the detection is run for every grab, otherwise, the thread runs at its own speed, which can lead to new detection once in a while. + \brief Whether the object detection is synchronized to the image or runs in a separate thread. + + If set to true, the detection is run on every \ref sl_grab(). + \n Otherwise, the thread runs at its own speed, which can lead to new detection once in a while. + \n Default: true */ bool image_sync; // data synchronized /** - \brief Defines if the object detection will track objects across images flow + \brief Whether the object detection system includes object tracking capabilities across a sequence of images. + + Default: true */ bool enable_tracking; /** - \brief Defines if the mask object will be computed + \brief Whether the object masks will be computed. + + Default: false */ bool enable_segmentation; /** - \brief Enable human pose estimation with skeleton keypoints output (SL_DETECTION_MODEL). + \brief \ref SL_OBJECT_DETECTION_MODEL to use. + + Default: \ref SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_FAST */ enum SL_OBJECT_DETECTION_MODEL detection_model; /** - \brief Defines a upper depth range for detections. - * \n Defined in \ref UNIT set at \ref SL_Camera::open. - * \n Default value is set to \ref SL_Initparameters::depth_maximum_distance (can not be higher). - */ + \brief Upper depth range for detections. + + Default: -1.f (value set in SL_InitParameters.depth_maximum_distance) + \note The value cannot be greater than SL_InitParameters.depth_maximum_distance and its unit is defined in SL_InitParameters.coordinate_unit. + */ float max_range; /** \brief Batching system parameters. - Batching system (introduced in 3.5) performs short-term re-identification with deep learning and trajectories filtering. - * \n BatchParameters::enable need to be true to use this feature (by default disabled) + + Batching system (introduced in 3.5) performs short-term re-identification with deep-learning and trajectories filtering. + \n SL_BatchParameters.enable must to be true to use this feature (by default disabled). */ struct SL_BatchParameters batch_parameters; /** - \brief Defines the filtering mode that should be applied to raw detections. + \brief Filtering mode that should be applied to raw detections. + + Default: \ref SL_OBJECT_FILTERING_MODE_NMS_3D (same behavior as previous ZED SDK version) + \note This parameter is only used in detection model [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL) + and \ref SL_OBJECT_DETECTION_MODEL_CUSTOM_BOX_OBJECTS. + \note For custom object, it is recommended to use \ref SL_OBJECT_FILTERING_MODE_NMS_3D_PER_CLASS or \ref SL_OBJECT_FILTERING_MODE_NONE. + \note In this case, you might need to add your own NMS filter before ingesting the boxes into the object detection module. */ enum SL_OBJECT_FILTERING_MODE filtering_mode; /** - * \brief When an object is not detected anymore, the SDK will predict its positions during a short period of time before switching its state to SEARCHING. - * \n It prevents the jittering of the object state when there is a short misdetection. The user can define its own prediction time duration. - * - * \note During this time, the object will have OK state even if it is not detected. - * \note the duration is expressed in seconds - * \warning the prediction_timeout_s will be clamped to 1 second as the prediction is getting worst with time. - * \warning set this parameter to 0 to disable SDK predictions - * defulat : 0.2f + \brief Prediction duration of the ZED SDK when an object is not detected anymore before switching its state to \ref SL_OBJECT_TRACKING_STATE_SEARCHING. + + It prevents the jittering of the object state when there is a short misdetection. + \n The user can define their own prediction time duration. + \n Default: 0.2f + \note During this time, the object will have \ref SL_OBJECT_TRACKING_STATE_OK state even if it is not detected. + \note The duration is expressed in seconds. + \warning \ref prediction_timeout_s will be clamped to 1 second as the prediction is getting worse with time. + \warning Setting this parameter to 0 disables the ZED SDK predictions. */ float prediction_timeout_s; /** - \brief Allow inference to run at a lower precision to improve runtime and memory usage, - * it might increase the initial optimization time and could include downloading calibration data or calibration cache and slightly reduce the accuracy - * \note The fp16 is automatically enabled if the GPU is compatible and provides a speed up of almost x2 and reduce memory usage by almost half, no precision loss. - * \note This setting allow int8 precision which can speed up by another x2 factor (compared to fp16, or x4 compared to fp32) and half the fp16 memory usage, however some accuracy can be lost. - * The accuracy loss should not exceed 1-2% on the compatible models. - * The current compatible models are all HUMAN_BODY_XXXX + \brief Whether to allow inference to run at a lower precision to improve runtime and memory usage. + + It might increase the initial optimization time and could include downloading calibration data or calibration cache and slightly reduce the accuracy. + \note The fp16 is automatically enabled if the GPU is compatible and provides a speed up of almost x2 and reduce memory usage by almost half, no precision loss. + \note This setting allow int8 precision which can speed up by another x2 factor (compared to fp16, or x4 compared to fp32) and half the fp16 memory usage, however some accuracy could be lost. + \note The accuracy loss should not exceed 1-2% on the compatible models. + \note The current compatible models are all [SL_AI_MODELS_HUMAN_BODY_XXXX](\ref SL_AI_MODELS). */ bool allow_reduced_precision_inference; }; /** -\brief Lists available object class +\brief Lists available object classes. */ enum SL_OBJECT_CLASS { SL_OBJECT_CLASS_PERSON, /**< For people detection */ - SL_OBJECT_CLASS_VEHICLE, /**< For vehicle detection. It can be cars, trucks, buses, motorcycles etc */ - SL_OBJECT_CLASS_BAG, /**< For bag detection (backpack, handbag, suitcase) */ - SL_OBJECT_CLASS_ANIMAL, /**< For animal detection (cow, sheep, horse, dog, cat, bird, etc) */ - SL_OBJECT_CLASS_ELECTRONICS, /**< For electronic device detection (cellphone, laptop, etc) */ - SL_OBJECT_CLASS_FRUIT_VEGETABLE, /**< For fruit and vegetable detection (banana, apple, orange, carrot, etc) */ - SL_OBJECT_CLASS_SPORT, /**< For sport related objects (sports ball etc) */ + SL_OBJECT_CLASS_VEHICLE, /**< For vehicle detection (cars, trucks, buses, motorcycles, etc.) */ + SL_OBJECT_CLASS_BAG, /**< For bag detection (backpack, handbag, suitcase, etc.) */ + SL_OBJECT_CLASS_ANIMAL, /**< For animal detection (cow, sheep, horse, dog, cat, bird, etc.) */ + SL_OBJECT_CLASS_ELECTRONICS, /**< For electronic device detection (cellphone, laptop, etc.) */ + SL_OBJECT_CLASS_FRUIT_VEGETABLE, /**< For fruit and vegetable detection (banana, apple, orange, carrot, etc.) */ + SL_OBJECT_CLASS_SPORT, /**< For sport-related object detection (sport ball, etc.) */ SL_OBJECT_CLASS_LAST }; /** -Sets the object detection runtime parameters. +\brief Structure containing a set of runtime parameters for the object detection module. + +The default constructor sets all parameters to their default settings. +\note Parameters can be adjusted by the user. */ struct SL_ObjectDetectionRuntimeParameters { /** - \brief Defines the confidence threshold: interval between 1 and 99. A confidence of 1 meaning a low - * threshold, more uncertain objects and 99 very few but very precise objects. - * If the scene contains a lot of objects, increasing the confidence can slightly speed up the process, since every object instances are tracked. - * - * Default confidence threshold value, used as a fallback when ObjectDetectionRuntimeParameters::object_class_detection_confidence_threshold is partially set + \brief Confidence threshold. + + From 1 to 100, with 1 meaning a low threshold, more uncertain objects and 99 very few but very precise objects. + \n Default: 20.f + \note If the scene contains a lot of objects, increasing the confidence can slightly speed up the process, since every object instance is tracked. + \note \ref detection_confidence_threshold is used as a fallback when SL_ObjectDetectionRuntimeParameters.object_confidence_threshold is partially set */ float detection_confidence_threshold; /** - \brief Select which object types to detect and track. By default all classes are tracked. - * Fewer object types can slightly speed up the process, since every objects are tracked. - * Only the selected classes in the vector wilviewl be output. + \brief Defines which object types to detect and track. - In order to get all the available classes, the filter vector must be empty. + \note Fewer object types can slightly speed up the process since every object is tracked. + \note Will output only the selected classes. */ int object_class_filter[(int)SL_OBJECT_CLASS_LAST]; /** - \brief Defines a detection threshold for each classes, can be empty for some classes, - * ObjectDetectionRuntimeParameters::detection_confidence_threshold will be taken as fallback/default value + \brief Array of confidence thresholds for each class (can be empty for some classes). + \note SL_ObjectDetectionRuntimeParameters.detection_confidence_threshold will be taken as fallback/default value. */ int object_confidence_threshold[(int)SL_OBJECT_CLASS_LAST]; }; /** -\brief Sets the object detection parameters. +\brief Structure containing a set of parameters for the body tracking module. The default constructor sets all parameters to their default settings. - \note Parameters can be user adjusted. */ struct SL_BodyTrackingParameters { /** - \brief Defines a module instance id. This is used to identify which object detection model instance is used. - * If the id is negative it will be auto incremented/generated + \brief Id of the module instance. + + This is used to identify which body tracking module instance is used. */ unsigned int instance_module_id; /** - \brief Defines if the object detection is synchronized to the image or runs in a separate thread. - If set to true, the detection is run for every grab, otherwise, the thread runs at its own speed, which can lead to new detection once in a while. - */ + \brief Whether the body tracking is synchronized to the image or runs in a separate thread. + + If set to true, the detection is run on every \ref sl_grab(). + \n Otherwise, the thread runs at its own speed, which can lead to new detection once in a while. + \n Default: true + */ bool image_sync; /** - \brief Defines if the object detection will track objects across images flow + \brief Whether the body tracking system includes body/person tracking capabilities across a sequence of images. + + Default: true */ bool enable_tracking; /** - \brief Defines if the mask object will be computed + \brief Whether the body/person masks will be computed. + + Default: false */ bool enable_segmentation; /** - \brief Enable human pose estimation with skeleton keypoints output + \brief \ref SL_BODY_TRACKING_MODEL to use. + + Default: \ref SL_BODY_TRACKING_MODEL_HUMAN_BODY_ACCURATE */ enum SL_BODY_TRACKING_MODEL detection_model; /** - \brief Defines if the body fitting will be applied + \brief Whether to apply the body fitting. + + Default: false */ bool enable_body_fitting; /** - * \brief Defines the body format output by the sdk when \ref retrieveBodies is called. - * + \brief Body format to be outputted by the ZED SDK with \ref sl_retrieve_bodies(). + + Default: \ref SL_BODY_FORMAT_BODY_18 */ enum SL_BODY_FORMAT body_format; /** - * \brief Defines the body selection output by the sdk when \ref retrieveBodies is called. + \brief Selection of keypoints to be outputted by the ZED SDK with \ref sl_retrieve_bodies(). + + Default: \ref SL_BODY_KEYPOINTS_SELECTION_FULL */ enum SL_BODY_KEYPOINTS_SELECTION body_selection; /** - \brief Defines a upper depth range for detections. - * \n Defined in \ref UNIT set at \ref sl::Camera::open. - * \n Default value is set to \ref sl::Initparameters::depth_maximum_distance (can not be higher). + \brief Upper depth range for detections. + + Default: -1.f (value set in SL_InitParameters.depth_maximum_distance) + \note The value cannot be greater than SL_InitParameters.depth_maximum_distance and its unit is defined in SL_InitParameters.coordinate_unit. */ float max_range; @@ -1867,463 +2447,679 @@ struct SL_BodyTrackingParameters { /** \brief Batching system parameters. Batching system (introduced in 3.5) performs short-term re-identification with deep learning and trajectories filtering. - * \n BatchParameters::enable need to be true to use this feature (by default disabled) + * \n BatchParameters::enable must to be true to use this feature (by default disabled) */ struct SL_BatchParameters batch_parameters; #endif /** - * \brief When an object is not detected anymore, the SDK will predict its positions during a short period of time before its state switched to SEARCHING. - * \n It prevents the jittering of the object state when there is a short misdetection. The user can define its own prediction time duration. - * - * \note During this time, the object will have OK state even if it is not detected. - * \note the duration is expressed in seconds - * \warning the prediction_timeout_s will be clamped to 1 second as the prediction is getting worst with time. - * \warning set this parameter to 0 to disable SDK predictions - */ + \brief Prediction duration of the ZED SDK when an object is not detected anymore before switching its state to \ref SL_OBJECT_TRACKING_STATE_SEARCHING. + + It prevents the jittering of the object state when there is a short misdetection. + \n The user can define their own prediction time duration. + \n Default: 0.2f + \note During this time, the object will have \ref SL_OBJECT_TRACKING_STATE_OK state even if it is not detected. + \note The duration is expressed in seconds. + \warning \ref prediction_timeout_s will be clamped to 1 second as the prediction is getting worse with time. + \warning Setting this parameter to 0 disables the ZED SDK predictions. + */ float prediction_timeout_s; - /** - \brief Allow inference to run at a lower precision to improve runtime and memory usage, - * it might increase the initial optimization time and could include downloading calibration data or calibration cache and slightly reduce the accuracy - * \note The fp16 is automatically enabled if the GPU is compatible and provides a speed up of almost x2 and reduce memory usage by almost half, no precision loss. - * \note This setting allow int8 precision which can speed up by another x2 factor (compared to fp16, or x4 compared to fp32) and half the fp16 memory usage, however some accuracy can be lost. - * The accuracy loss should not exceed 1-2% on the compatible models. - * The current compatible models are all HUMAN_BODY_XXXX + \brief Whether to allow inference to run at a lower precision to improve runtime and memory usage. + + It might increase the initial optimization time and could include downloading calibration data or calibration cache and slightly reduce the accuracy. + \note The fp16 is automatically enabled if the GPU is compatible and provides a speed up of almost x2 and reduce memory usage by almost half, no precision loss. + \note This setting allow int8 precision which can speed up by another x2 factor (compared to fp16, or x4 compared to fp32) and half the fp16 memory usage, however some accuracy could be lost. + \note The accuracy loss should not exceed 1-2% on the compatible models. + \note The current compatible models are all [SL_AI_MODELS_HUMAN_BODY_XXXX](\ref SL_AI_MODELS). */ bool allow_reduced_precision_inference; }; /** -\brief Sets the object detection runtime parameters. +\brief Structure containing a set of runtime parameters for the body tracking module. The default constructor sets all parameters to their default settings. - -\note Parameters can be user adjusted. +\note Parameters can be adjusted by the user. */ struct SL_BodyTrackingRuntimeParameters { /** - \brief Defines the confidence threshold: interval between 1 and 99. A confidence of 1 meaning a low - * threshold, more uncertain objects and 99 very few but very precise objects. - * If the scene contains a lot of objects, increasing the confidence can slightly speed up the process, since every object instances are tracked. - * - * Default confidence threshold value, used as a fallback when BodyTrackingRuntimeParameters::object_class_detection_confidence_threshold is partially set + \brief Confidence threshold. + + From 1 to 100, with 1 meaning a low threshold, more uncertain objects and 99 very few but very precise objects. + \n Default: 20.f + \note If the scene contains a lot of objects, increasing the confidence can slightly speed up the process, since every object instance is tracked. */ float detection_confidence_threshold; /** - \brief Defines the minimum keypoints threshold. - * the SDK will outputs skeleton with more keypoints than this threshold. - * it is useful for example to remove unstable fitting results when a skeleton is partially occluded. + \brief Minimum threshold for the keypoints. + + The ZED SDK will only output the keypoints of the skeletons with threshold greater than this value. + \n Default: 0 + \note It is useful, for example, to remove unstable fitting results when a skeleton is partially occluded. */ int minimum_keypoints_threshold; /** - * \brief this value controls the smoothing of the fitted fused skeleton. - * it is ranged from 0 (low smoothing) and 1 (high smoothing) - * Default is 0; + \brief Control of the smoothing of the fitted fused skeleton. + + It is ranged from 0 (low smoothing) and 1 (high smoothing). + Default: 0 */ float skeleton_smoothing; }; /** -Contains data of a detected object such as its bounding_box, label, id and its 3D position. +\brief Structure containing data of a detected object such as its \ref bounding_box, \ref label, \ref id and its 3D \ref position. */ struct SL_ObjectData { /** - \brief Object identification number, used as a reference when tracking the object through the frames - \note Only available if \ref ObjectDetectionParameters::enable_tracking is activated else set to -1. - */ + \brief Object identification number. + + It is used as a reference when tracking the object through the frames. + \note Only available if SL_ObjectDetectionParameters.enable_tracking is activated. + \note Otherwise, it will be set to -1. + */ int id; /** - \brief Unique ID to help identify and track AI detections. Can be either generated externally, or using \ref sl_generate_unique_id() or left empty + \brief Unique id to help identify and track AI detections. + + It can be either generated externally, or by using \ref sl_generate_unique_id() or left empty. */ unsigned char unique_object_id[37]; /** - \brief Object label, forwarded from \ref CustomBoxObjects when using \ref SL_DETECTION_MODEL_CUSTOM_BOX_OBJECTS + \brief Object raw label. + + It is forwarded from \ref SL_CustomBoxObjectData when using \ref SL_OBJECT_DETECTION_MODEL_CUSTOM_BOX_OBJECTS. */ int raw_label; /** - \brief Object category. Identify the object type (sl::OBJECT_CLASS) + \brief Object class/category to identify the object type. */ enum SL_OBJECT_CLASS label; /** - \brief Object subclass (sl::OBJECT_SUBCLASS) + \brief Object sub-class/sub-category to identify the object type. */ enum SL_OBJECT_SUBCLASS sublabel; /** - \brief Defines the object tracking state (sl::OBJECT_TRACKING_STATE). + \brief Object tracking state. */ enum SL_OBJECT_TRACKING_STATE tracking_state; /** - \brief Defines the object action state (sl::OBJECT_ACTION_STATE). + \brief Object action state. */ enum SL_OBJECT_ACTION_STATE action_state; /** - \brief Defines the object 3D centroid. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. + \brief Object 3D centroid. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 position; /** - \brief Defines the detection confidence value of the object. - * From 0 to 100, a low value means the object might not be localized perfectly or the label (OBJECT_CLASS) is uncertain. + \brief Detection confidence value of the object. + + From 0 to 100, a low value means the object might not be localized perfectly or the label (\ref SL_OBJECT_CLASS) is uncertain. */ float confidence; - //Mask + /** + \brief Mask defining which pixels which belong to the object (in \ref bounding_box_2d and set to 255) and those of the background (set to 0). + \warning The mask information is only available for tracked objects (\ref SL_OBJECT_TRACKING_STATE_OK) that have a valid depth. + \warning Otherwise, the mask will not be initialized. + */ int* mask; //int* mask; //IntPtr to an sl::Mat object. - //Image + /** + \brief 2D bounding box of the object represented as four 2D points starting at the top left corner and rotation clockwise. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \code + A ------ B + | Object | + D ------ C + \endcode + */ struct SL_Vector2 bounding_box_2d[4]; /** - * \brief 3D head centroid. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. - \note Not available with DETECTION_MODEL::MULTI_CLASS_BOX. + \brief 3D centroid of the head of the object (a person). + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \warning Not available with [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL). */ struct SL_Vector3 head_position; /** \brief Defines the object 3D velocity - * Defined in \ref sl:InitParameters::UNIT / seconds, expressed in \ref RuntimeParameters::measure3D_reference_frame. + \note It is defined in ```SL_InitParameters.coordinate_unit / s``` and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 velocity; /** - * \brief 3D object dimensions: width, height, length. Defined in SL_InitParameters_UNIT, expressed in SL_RuntimeParameters::measure3D_reference_frame. + \brief 3D object dimensions: width, height, length. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 dimensions; /** - * \brief 3D bounding box of the person represented as eight 3D points - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. - * - * \code - 1 ------ 2 - / /| - 0 ------ 3 | - | Object | 6 - | |/ - 4 ------ 7 - \endcode + \brief 3D bounding box of the object represented as eight 3D points. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \code + 1 ------ 2 + / /| + 0 ------ 3 | + | Object | 6 + | |/ + 4 ------ 7 + \endcode */ struct SL_Vector3 bounding_box[8]; /** - * \brief bounds the head with eight 3D points. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. - \note Not available with DETECTION_MODEL::MULTI_CLASS_BOX. + \brief 3D bounding box of the head of the object (a person) represented as eight 3D points. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \warning Not available with [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL). */ struct SL_Vector3 head_bounding_box[8]; /** - * \brief bounds the head with four 2D points. - * Expressed in pixels on the original image resolution. - \note Not available with DETECTION_MODEL::MULTI_CLASS_BOX. + \brief 2D bounding box of the head of the object (a person) represented as four 2D points starting at the top left corner and rotation clockwise. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \warning Not available with [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL). */ struct SL_Vector2 head_bounding_box_2d[4]; /** - \brief the covariance matrix of the 3d position, represented by its upper triangular matrix value - * \code - = [p0, p1, p2] - [p1, p3, p4] - [p2, p4, p5] - \endcode - where pi is position_covariance[i] + \brief Covariance matrix of the 3D position. + \note It is represented by its upper triangular matrix value + \code + = [p0, p1, p2] + [p1, p3, p4] + [p2, p4, p5] + \endcode + where pi is ```position_covariance[i]``` */ float position_covariance[6]; }; /** -\brief Container to store the externally detected objects. The objects can be ingested - * using \ref sl_ingest_custom_box_objects() functions to extract 3D information and tracking over time - */ +\brief Structure that store externally detected objects. +The objects can be ingested with sl_ingest_custom_box_objects() to extract 3D and tracking information over time. +*/ struct SL_CustomBoxObjectData { /** - \brief Unique ID to help identify and track AI detections. Can be either generated externally, or using \ref generate_unique_id() or left empty + \brief Unique id to help identify and track AI detections. + + It can be either generated externally, or by using \ref sl_generate_unique_id() or left empty. */ char unique_object_id[37]; /** - * \brief 2D bounding box represented as four 2D points starting at the top left corner and rotation clockwise. - * Expressed in pixels on the original image resolution, [0,0] is the top left corner. - * \code - A ------ B - | Object | - D ------ C + \brief 2D bounding box of the object represented as four 2D points starting at the top left corner and rotation clockwise. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \code + A ------ B + | Object | + D ------ C \endcode */ struct SL_Vector2 bounding_box_2d[4]; /** - \brief Object label, this information is passed-through and can be used to improve object tracking + \brief Object label. + + This information is passed-through and can be used to improve object tracking. + \note It should define an object class. This means that any similar object (in classification) should share the same label number. */ int label; /** - \brief Detection confidence. Should be [0-1]. It can be used to improve the object tracking + \brief Detection confidence value of the object. + \note The value should be in ```[0-1]```. + \note It can be used to improve the object tracking. */ float probability; /** - \brief Provide hypothesis about the object movements(degrees of freedom) to improve the object tracking - * true: means 2 DoF projected alongside the floor plane, the default for object standing on the ground such as person, vehicle, etc - * false : 6 DoF full 3D movements are allowed + \brief Provide hypothesis about the object movements (degrees of freedom or DoF) to improve the object tracking. + - true: 2 DoF projected alongside the floor plane. Case for object standing on the ground such as person, vehicle, etc. + \n The projection implies that the objects cannot be superposed on multiple horizontal levels. + - false: 6 DoF (full 3D movements are allowed). + + \note This parameter cannot be changed for a given object tracking id. + \note It is advised to set it by labels to avoid issues. */ bool is_grounded; }; /** -Contains the result of the object detection module. +\brief Structure containing the results of the object detection module. + +The detected objects are listed in \ref object_list. +\note Since the data is transmitted from C++ to C, the size of the structure must be constant. +\note Therefore, there is a limitation of 75 objects in the image. */ struct SL_Objects { /** - \brief Number of detected objects. Used to iterate through the object_list array. + \brief Number of detected objects. + \note You can use it to iterate through the \ref object_list array. */ int nb_objects; /** - \brief Defines the timestamp corresponding to the frame acquisition. - * This value is especially useful for the async mode to synchronize the data. + \brief Timestamp corresponding to the frame acquisition. + + This value is especially useful for the async mode to synchronize the data. */ unsigned long long timestamp; /** - \brief Defined if the object list has already been retrieved or not. + \brief Whether \ref object_list has already been retrieved or not. */ int is_new; /** - \brief Defined if both the object tracking and the world orientation has been setup. + \brief Whether both the object tracking and the world orientation has been setup. */ int is_tracked; /** - \brief Detection model used (SL_DETECTION_MODEL). + \brief Current \ref SL_OBJECT_DETECTION_MODEL used. */ enum SL_OBJECT_DETECTION_MODEL detection_model; /** - \brief The list of detected objects + \brief Array of detected objects. + \note Since the data is transmitted from C++ to C, the size of the structure must be constant. + \note Therefore, there is a limitation of 75 objects in the image. */ struct SL_ObjectData object_list[MAX_NUMBER_OBJECT]; }; /** -Contains data of a detected object such as its bounding_box, label, id and its 3D position. +\brief Structure containing data of a detected body/person such as its \ref bounding_box, \ref id and its 3D \ref position. */ struct SL_BodyData { /** - \brief Object identification number, used as a reference when tracking the object through the frames - \note Only available if \ref ObjectDetectionParameters::enable_tracking is activated else set to -1. - */ + \brief Body/person identification number. + + It is used as a reference when tracking the body through the frames. + \note Only available if SL_BodyTrackingParameters.enable_tracking is activated. + \note Otherwise, it will be set to -1. + */ int id; /** - \brief Unique ID to help identify and track AI detections. Can be either generated externally, or using \ref sl_generate_unique_id() or left empty + \brief Unique id to help identify and track AI detections. + + It can be either generated externally, or by using \ref sl_generate_unique_id() or left empty. */ unsigned char unique_object_id[37]; /** - \brief Defines the object tracking state (sl::OBJECT_TRACKING_STATE). + \brief Body/person tracking state. */ enum SL_OBJECT_TRACKING_STATE tracking_state; /** - \brief Defines the object action state (sl::OBJECT_ACTION_STATE). + \brief Body/person action state. */ enum SL_OBJECT_ACTION_STATE action_state; /** - \brief Defines the object 3D centroid. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. + \brief Body/person 3D centroid. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 position; /** - \brief Defines the object 3D velocity - * Defined in \ref sl:InitParameters::UNIT / seconds, expressed in \ref RuntimeParameters::measure3D_reference_frame. + \brief Body/person 3D velocity. + \note It is defined in ```SL_InitParameters.coordinate_unit / s``` and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 velocity; /** - \brief the covariance matrix of the 3d position, represented by its upper triangular matrix value - * \code - = [p0, p1, p2] - [p1, p3, p4] - [p2, p4, p5] - \endcode - where pi is position_covariance[i] + \brief Covariance matrix of the 3D position. + \note It is represented by its upper triangular matrix value + \code + = [p0, p1, p2] + [p1, p3, p4] + [p2, p4, p5] + \endcode + where pi is ```position_covariance[i]``` */ float position_covariance[6]; /** - \brief Defines the detection confidence value of the object. - * From 0 to 100, a low value means the object might not be localized perfectly or the label (OBJECT_CLASS) is uncertain. + \brief Detection confidence value of the body/person. + + From 0 to 100, a low value means the body might not be localized perfectly. */ float confidence; - //Mask + + /** + \brief Mask defining which pixels which belong to the body/person (in \ref bounding_box_2d and set to 255) and those of the background (set to 0). + \warning The mask information is only available for tracked bodies (\ref SL_OBJECT_TRACKING_STATE_OK) that have a valid depth. + \warning Otherwise, the mask will not be initialized. + */ int* mask; //int* mask; //IntPtr to an sl::Mat object. - //Image + /** + \brief 2D bounding box of the body/person represented as four 2D points starting at the top left corner and rotation clockwise. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \code + A ------ B + | Object | + D ------ C + \endcode + */ struct SL_Vector2 bounding_box_2d[4]; /** - * \brief 3D head centroid. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. + \brief 3D centroid of the head of the body/person. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 head_position; /** - * \brief 3D object dimensions: width, height, length. Defined in SL_InitParameters_UNIT, expressed in SL_RuntimeParameters::measure3D_reference_frame. + \brief 3D body/person dimensions: width, height, length. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 dimensions; /** - * \brief 3D bounding box of the person represented as eight 3D points - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. - * - * \code - 1 ------ 2 - / /| - 0 ------ 3 | - | Object | 6 - | |/ - 4 ------ 7 - \endcode + \brief 3D bounding box of the body/person represented as eight 3D points. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \code + 1 ------ 2 + / /| + 0 ------ 3 | + | Object | 6 + | |/ + 4 ------ 7 + \endcode */ struct SL_Vector3 bounding_box[8]; /** - * \brief bounds the head with eight 3D points. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. + \brief 3D bounding box of the head of the body/person represented as eight 3D points. + \note It is defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. */ struct SL_Vector3 head_bounding_box[8]; /** - * \brief bounds the head with four 2D points. - * Expressed in pixels on the original image resolution. + \brief 2D bounding box of the head of the body/person represented as four 2D points starting at the top left corner and rotation clockwise. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. */ struct SL_Vector2 head_bounding_box_2d[4]; /** - * \brief A set of useful points representing the human body, expressed in 2D, respect to the original image resolution. - * We use a classic 18 points representation, the points semantic and order is given by BODY_PARTS. - * Expressed in pixels on the original image resolution, [0,0] is the top left corner. - \warning in some cases, eg. body partially out of the image, some keypoint can not be detected, they will have negatives coordinates. + \brief Set of useful points representing the human body in 2D. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \warning In some cases, eg. body partially out of the image, some keypoints can not be detected. They will have negatives coordinates. */ struct SL_Vector2 keypoint_2d[38]; /** - * \brief A set of useful points representing the human body, expressed in 3D. - * We use a classic 18 points representation, the points semantic and order is given by BODY_PARTS. - * Defined in \ref sl:InitParameters::UNIT, expressed in \ref RuntimeParameters::measure3D_reference_frame. - \warning in some cases, eg. body partially out of the image or missing depth data, some keypoint can not be detected, they will have non finite values. + \brief Set of useful points representing the human body in 3D. + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \warning In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values. */ struct SL_Vector3 keypoint[38]; /** - * \brief Per keypoint detection confidence, can not be lower than the \ref ObjectDetectionRuntimeParameters::detection_confidence_threshold. - \warning in some cases, eg. body partially out of the image or missing depth data, some keypoint can not be detected, they will have non finite values. + \brief Array of detection confidences for each keypoint. + \note They can not be lower than the SL_BodyTrackingRuntimeParameters.detection_confidence_threshold. + \warning In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values. */ float keypoint_confidence[38]; /** - * \brief Per keypoint detection 3d covariance - \warning in some cases, eg. body partially out of the image or missing depth data, some keypoint can not be detected, they covariance will be 0. - see \ref position_covariance for the storage format + \brief Array of detection covariance for each keypoint. + \warning In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. Their covariances will be 0. */ float keypoint_covariances[38][6]; /** - \brief Per keypoint local position (the position of the child keypoint with respect to its parent expressed in its parent coordinate frame) - \note it is expressed in sl::REFERENCE_CAMERA or sl::REFERENCE_WORLD + \brief Array of local position (position of the child keypoint with respect to its parent expressed in its parent coordinate frame) for each keypoint. + \note They are expressed in \ref SL_REFERENCE_FRAME_CAMERA or \ref SL_REFERENCE_FRAME_WORLD. + \warning Not available with \ref SL_BODY_FORMAT_BODY_18. */ struct SL_Vector3 local_position_per_joint[38]; /** - \brief Per keypoint local orientation - \note the orientation is represented by a quaternion which is stored in sl::float4 (sl::float4 q = sl::float4(qx,qy,qz,qw);) + \brief Array of local orientation for each keypoint. + \note The orientation is represented by a \ref SL_Quaternion (```SL_Quaternion q = SL_Quaternion(qx, qy, qz, qw);```) + \warning Not available with \ref SL_BODY_FORMAT_BODY_18. */ struct SL_Quaternion local_orientation_per_joint[38]; /** - \brief global root orientation of the skeleton. The orientation is also represented by a quaternion with the same format as \ref local_orientation_per_joint + \brief Global root orientation of the skeleton. + + The orientation is also represented by a quaternion with the same format as \ref local_orientation_per_joint. + \note The global root position is already accessible in \ref keypoint attribute by using the root index of a given \ref SL_BODY_FORMAT. + \warning Not available with \ref SL_BODY_FORMAT_BODY_18. */ struct SL_Quaternion global_root_orientation; }; /** -Contains the result of the body detection module. +\brief Structure containing the results of the body tracking module. + +The detected bodies/persons are listed in \ref body_list. */ struct SL_Bodies { /** - \brief Number of detected bodies. Used to iterate through the object_list array. + \brief Number of detected bodies/persons. + \note You can use it to iterate through the \ref body_list array. */ int nb_bodies; /** - \brief Defines the timestamp corresponding to the frame acquisition. - * This value is especially useful for the async mode to synchronize the data. + \brief Timestamp corresponding to the frame acquisition. + + This value is especially useful for the async mode to synchronize the data. */ unsigned long long timestamp; /** - \brief Defined if the object list has already been retrieved or not. + \brief Whether \ref body_list has already been retrieved or not. */ int is_new; /** - \brief Defined if both the object tracking and the world orientation has been setup. + \brief Whether both the body tracking and the world orientation has been setup. */ int is_tracked; /** - \brief The list of detected objects + \brief Array of bodies/persons. + \note Since the data is transmitted from C++ to C, the size of the structure must be constant. + \note Therefore, there is a limitation of 75 objects in the image. */ struct SL_BodyData body_list[MAX_NUMBER_OBJECT]; }; /** -* \brief Objects batch structure +\brief Structure containing batched data of a detected objects from the object detection module. + +This structure can be used to store trajectories. */ struct SL_ObjectsBatch { + /** + \brief Number of objects in the \ref SL_ObjectsBatch. + + Use this to iterate through the top of \ref positions / \ref velocities / \ref bounding_boxes / etc. + \note Objects with greater indexes are empty. + */ int nb_data; - int id; - enum SL_OBJECT_CLASS label; - enum SL_OBJECT_SUBCLASS sublabel; - enum SL_OBJECT_TRACKING_STATE tracking_state; - struct SL_Vector3 positions[MAX_TRAJECTORY_SIZE]; - float position_covariances[MAX_TRAJECTORY_SIZE][6]; - struct SL_Vector3 velocities[MAX_TRAJECTORY_SIZE]; - unsigned long long timestamps[MAX_TRAJECTORY_SIZE]; + int id; /**< \brief Id of the batch.*/ + enum SL_OBJECT_CLASS label; /**< \brief Objects class/category to identify the object type.*/ + enum SL_OBJECT_SUBCLASS sublabel; /**< \brief Objects sub-class/sub-category to identify the object type.*/ + enum SL_OBJECT_TRACKING_STATE tracking_state; /**< \brief Objects tracking state.*/ + struct SL_Vector3 positions[MAX_TRAJECTORY_SIZE]; /**< \brief Array of positions for each object.*/ + float position_covariances[MAX_TRAJECTORY_SIZE][6]; /**< \brief Array of positions' covariances for each object. */ + struct SL_Vector3 velocities[MAX_TRAJECTORY_SIZE]; /**< \brief Array of 3D velocities for each object.*/ + unsigned long long timestamps[MAX_TRAJECTORY_SIZE]; /**< \brief Array of timestamps for each object.*/ + + /** + \brief Array of 2D bounding boxes for each object. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \code + A ------ B + | Object | + D ------ C + \endcode + */ struct SL_Vector2 bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4]; + /** + \brief Array of 3D bounding boxes for each object. + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \code + 1 ------ 2 + / /| + 0 ------ 3 | + | Object | 6 + | |/ + 4 ------ 7 + \endcode + */ struct SL_Vector3 bounding_boxes[MAX_TRAJECTORY_SIZE][8]; - float confidences[MAX_TRAJECTORY_SIZE]; - enum SL_OBJECT_ACTION_STATE action_states[MAX_TRAJECTORY_SIZE]; + + float confidences[MAX_TRAJECTORY_SIZE]; /**< \brief Array of confidences for each object.*/ + enum SL_OBJECT_ACTION_STATE action_states[MAX_TRAJECTORY_SIZE]; /**< \brief Array of action states for each object.*/ + + /** + \brief Array of 2D bounding box of the head for each object (person). + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \warning Not available with [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL). + */ struct SL_Vector2 head_bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4]; + /** + \brief Array of 3D bounding box of the head for each object (person). + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \warning Not available with [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL). + */ struct SL_Vector3 head_bounding_boxes[MAX_TRAJECTORY_SIZE][8]; + /** + \brief Array of 3D centroid of the head for each object (person). + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \warning Not available with [SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_XXX](\ref SL_OBJECT_DETECTION_MODEL). + */ struct SL_Vector3 head_positions[MAX_TRAJECTORY_SIZE]; }; #if 0 /** -* \brief Bodies batch structure +* \brief Structure containing batched data of a detected bodies/persons from the body tracking module. */ struct SL_BodiesBatch { + /** + \brief Number of detected bodies/persons. + \note You can use it to iterate through the \ref positions / \ref velocities / \ref boundingBoxes / etc. array. + */ int nb_data; - int id; - enum SL_OBJECT_TRACKING_STATE tracking_state; - struct SL_Vector3 positions[MAX_TRAJECTORY_SIZE]; - float position_covariances[MAX_TRAJECTORY_SIZE][6]; - struct SL_Vector3 velocities[MAX_TRAJECTORY_SIZE]; - unsigned long long timestamps[MAX_TRAJECTORY_SIZE]; + int id; /**< Id of the batch.*/ + enum SL_OBJECT_TRACKING_STATE tracking_state; /**< Bodies/persons tracking state.*/ + struct SL_Vector3 positions[MAX_TRAJECTORY_SIZE]; /**< \brief Array of positions for each body/person.*/ + float position_covariances[MAX_TRAJECTORY_SIZE][6]; /**< \brief Array of positions' covariances for each body/person. */ + struct SL_Vector3 velocities[MAX_TRAJECTORY_SIZE]; /**< \brief Array of 3D velocities for each body/person.*/ + unsigned long long timestamps[MAX_TRAJECTORY_SIZE]; /**< \brief Array of timestamps for each body/person.*/ + + /** + \brief Array of 2D bounding boxes for each body/person. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + \code + A ------ B + | Object | + D ------ C + \endcode + */ struct SL_Vector2 bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4]; + /** + \brief Array of 3D bounding boxes for each body/person. + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + \code + 1 ------ 2 + / /| + 0 ------ 3 | + | Object | 6 + | |/ + 4 ------ 7 + \endcode + */ struct SL_Vector3 bounding_boxes[MAX_TRAJECTORY_SIZE][8]; - float confidences[MAX_TRAJECTORY_SIZE]; - enum SL_OBJECT_ACTION_STATE action_states[MAX_TRAJECTORY_SIZE]; + + float confidences[MAX_TRAJECTORY_SIZE]; /**< \brief Array of confidences for each body/person.*/ + enum SL_OBJECT_ACTION_STATE action_states[MAX_TRAJECTORY_SIZE]; /**< \brief Array of action states for each body/person.*/ + + /** + \brief Array of 2D keypoints for each body/person. + \warning In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values. + */ struct SL_Vector2 keypoints_2d[MAX_TRAJECTORY_SIZE][70]; + /** + \brief Array of 3D keypoints for each body/person. + \warning In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values. + */ struct SL_Vector3 keypoints[MAX_TRAJECTORY_SIZE][70]; + + /** + \brief Array of 2D bounding box of the head for each body/person. + \note Expressed in pixels on the original image resolution, ```[0, 0]``` is the top left corner. + */ struct SL_Vector2 head_bounding_boxes_2d[MAX_TRAJECTORY_SIZE][4]; + /** + \brief Array of 3D bounding box of the head for each body/person. + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + */ struct SL_Vector3 head_bounding_boxes[MAX_TRAJECTORY_SIZE][8]; + /** + \brief Array of 3D centroid of the head for each body/person. + \note They are defined in SL_InitParameters.coordinate_unit and expressed in SL_RuntimeParameters.reference_frame. + */ struct SL_Vector3 head_positions[MAX_TRAJECTORY_SIZE]; + + /** + \brief Array of detection confidences array for each keypoint for each body/person. + \note They can not be lower than the SL_BodyTrackingRuntimeParameters.detection_confidence_threshold. + \warning In some cases, eg. body partially out of the image or missing depth data, some keypoints can not be detected. They will have non finite values. + */ float keypoints_confidences[MAX_TRAJECTORY_SIZE][70]; }; #endif -/* -Defines a 2D rectangle with top-left corner coordinates and width/height in pixels. +/** +\brief Structure defining a 2D rectangle with top-left corner coordinates and width/height in pixels. */ struct SL_Rect { + /** + \brief x coordinates of top-left corner. + */ int x; + /** + \brief y coordinates of top-left corner. + */ int y; + /** + \brief Width of the rectangle in pixels. + */ int width; + /** + \brief Height of the rectangle in pixels. + */ int height; }; #endif +/** +\brief Structure defining the input type used in the ZED SDK. + +It can be used to select a specific camera with an id or serial number, or from a SVO file. +*/ struct SL_InputType { + /** + \brief Current input type. + */ enum SL_INPUT_TYPE input_type; + + /** + \brief Serial number of the camera. + */ unsigned int serial_number; + + /** + \brief Id of the camera. + */ unsigned int id; + + /** + \brief Path to the SVO file. + */ char svo_input_filename[256]; + + /** + \brief IP address of the streaming camera. + */ char stream_input_ip[128]; + + /** + \brief Port of the streaming camera. + */ unsigned short stream_input_port; }; @@ -2333,37 +3129,45 @@ struct SL_InputType ////////////////////////////////////////////////////////////////////////////////////////////////////////// /** -\enum FUSION_ERROR_CODE +\enum SL_FUSION_ERROR_CODE \brief Lists the types of error that can be raised by the Fusion. - */ +*/ enum SL_FUSION_ERROR_CODE { - SL_FUSION_ERROR_CODE_WRONG_BODY_FORMAT = -7, /**< The requested body tracking model is not available*/ - SL_FUSION_ERROR_CODE_NOT_ENABLE = -6, /**< The following module was not enabled*/ - SL_FUSION_ERROR_CODE_INPUT_FEED_MISMATCH = -5, /**< Some source are provided by SVO and some sources are provided by LIVE stream */ - SL_FUSION_ERROR_CODE_CONNECTION_TIMED_OUT = -4, /**< Connection timed out ... impossible to reach the sender... this may be due to ZedHub absence*/ - SL_FUSION_ERROR_CODE_MEMORY_ALREADY_USED = -3, /**< Detect multiple instance of SHARED_MEMORY communicator ... only one is authorised*/ - SL_FUSION_ERROR_CODE_BAD_IP_ADDRESS = -2, /**< The IP format provided is wrong, please provide IP in this format a.b.c.d where (a, b, c, d) are numbers between 0 and 255.*/ - SL_FUSION_ERROR_CODE_FAILURE = -1, /**< Standard code for unsuccessful behavior.*/ - SL_FUSION_ERROR_CODE_SUCCESS = 0, - SL_FUSION_ERROR_CODE_FUSION_ERRATIC_FPS = 1, /**< Some big differences has been observed between senders FPS*/ - SL_FUSION_ERROR_CODE_FUSION_FPS_TOO_LOW = 2, /**< At least one sender has fps lower than 10 FPS*/ - SL_FUSION_ERROR_CODE_INVALID_TIMESTAMP = 3, /** < Problem was detected with ingested timestamp*/ - SL_FUSION_ERROR_CODE_INVALID_COVARIANCE = 4, /** < Problem was detected with ingested covariance */ - SL_FUSION_ERROR_CODE_NO_NEW_DATA_AVAILABLE = 5 /** < All data from all sources were consumed, no new process available.*/ -}; - + SL_FUSION_ERROR_CODE_WRONG_BODY_FORMAT = -7, /**< The senders are using different body formats.\n Consider changing them. */ + SL_FUSION_ERROR_CODE_NOT_ENABLE = -6, /**< The following module was not enabled. */ + SL_FUSION_ERROR_CODE_INPUT_FEED_MISMATCH = -5, /**< Some sources are provided by SVO and others by LIVE stream. */ + SL_FUSION_ERROR_CODE_CONNECTION_TIMED_OUT = -4, /**< Connection timed out. Unable to reach the sender.\n Verify the sender's IP/port. */ + SL_FUSION_ERROR_CODE_MEMORY_ALREADY_USED = -3, /**< Intra-process shared memory allocation issue.\n Multiple connections to the same data. */ + SL_FUSION_ERROR_CODE_BAD_IP_ADDRESS = -2, /**< The provided IP address format is incorrect.\n Please provide the IP in the format 'a.b.c.d', where (a, b, c, d) are numbers between 0 and 255. */ + SL_FUSION_ERROR_CODE_FAILURE = -1, /**< Standard code for unsuccessful behavior. */ + SL_FUSION_ERROR_CODE_SUCCESS = 0, /**< Standard code for successful behavior. */ + SL_FUSION_ERROR_CODE_FUSION_ERRATIC_FPS = 1, /**< Significant differences observed between sender's FPS. */ + SL_FUSION_ERROR_CODE_FUSION_FPS_TOO_LOW = 2, /**< At least one sender has an FPS lower than 10 FPS. */ + SL_FUSION_ERROR_CODE_INVALID_TIMESTAMP = 3, /**< Problem detected with the ingested timestamp.\n Sample data will be ignored. */ + SL_FUSION_ERROR_CODE_INVALID_COVARIANCE = 4, /**< Problem detected with the ingested covariance.\n Sample data will be ignored. */ + SL_FUSION_ERROR_CODE_NO_NEW_DATA_AVAILABLE = 5 /**< All data from all sources has been consumed.\n No new data is available for processing. */ +}; + +/** +\enum SL_SENDER_ERROR_CODE +\brief Lists the types of error that can be raised during the Fusion by senders. +*/ enum SL_SENDER_ERROR_CODE { - SL_SENDER_ERROR_CODE_DISCONNECTED = -1, /**< the sender has been disconnected*/ - SL_SENDER_ERROR_CODE_SUCCESS = 0, - SL_SENDER_ERROR_CODE_GRAB_ERROR = 1, /**< the sender has encountered an grab error*/ - SL_SENDER_ERROR_CODE_ERRATIC_FPS = 2, /**< the sender does not run with a constant frame rate*/ - SL_SENDER_ERROR_CODE_FPS_TOO_LOW = 3 /**< fps lower than 10 FPS*/ + SL_SENDER_ERROR_CODE_DISCONNECTED = -1, /**< The sender has been disconnected.*/ + SL_SENDER_ERROR_CODE_SUCCESS = 0, /**< Standard code for successful behavior.*/ + SL_SENDER_ERROR_CODE_GRAB_ERROR = 1, /**< The sender encountered a grab error.*/ + SL_SENDER_ERROR_CODE_ERRATIC_FPS = 2, /**< The sender does not run with a constant frame rate.*/ + SL_SENDER_ERROR_CODE_FPS_TOO_LOW = 3 /**< The frame rate of the sender is lower than 10 FPS.*/ }; +/** +\enum SL_COMM_TYPE +\brief Lists the different types of communications available for Fusion module. +*/ enum SL_COMM_TYPE { - SL_COMM_TYPE_LOCAL_NETWORK, /* the sender and receiver are on the samed local network and communicate by RTP, communication can be affected by the network load.*/ - SL_COMM_TYPE_INTRA_PROCESS /* both sender and receiver are declared by the same process, can be in different threads, this communication is optimized.*/ + SL_COMM_TYPE_LOCAL_NETWORK, /**< The sender and receiver are on the same local network and communicate by RTP.\n The communication can be affected by the local network load.*/ + SL_COMM_TYPE_INTRA_PROCESS /**< Both sender and receiver are declared by the same process and can be in different threads.\n This type of communication is optimized.*/ }; struct SL_CommunicationParameters @@ -2373,11 +3177,33 @@ struct SL_CommunicationParameters char ip_add[128]; }; +/** +\brief Useful struct to store the Fusion configuration, can be read from /write to a JSON file. + */ struct SL_FusionConfiguration { + /** + The serial number of the used ZED camera. + */ int serial_number; + + /** + The communication parameters to connect this camera to the Fusion. + */ struct SL_CommunicationParameters comm_param; + + /** + The WORLD SL_Vector3 of the camera for Fusion. + */ struct SL_Vector3 position; + + /** + The WORLD SL_Quaternion of the camera for Fusion. + */ struct SL_Quaternion rotation; + + /** + The input type for the current camera. + */ struct SL_InputType input_type; }; @@ -2388,31 +3214,37 @@ struct SL_FusionConfiguration { struct SL_InitFusionParameters { /** - This parameter allows you to select the unit to be used for all metric values of the SDK. (depth, point cloud, tracking, mesh, and others). - \n default : \ref UNIT "UNIT::MILLIMETER" + * \brief This parameter allows you to select the unit to be used for all metric values of the SDK (depth, point cloud, tracking, mesh, and others). + * + * Default : \ref SL_UNIT "SL_UNIT_MILLIMETER" */ enum SL_UNIT coordinate_units; /** - Positional tracking, point clouds and many other features require a given \ref COORDINATE_SYSTEM to be used as reference. - This parameter allows you to select the \ref COORDINATE_SYSTEM used by the \ref Camera to return its measures. - \n This defines the order and the direction of the axis of the coordinate system. - \n default : \ref COORDINATE_SYSTEM "COORDINATE_SYSTEM::IMAGE" + * \brief Positional tracking, point clouds and many other features require a given \ref SL_COORDINATE_SYSTEM to be used as reference. + * This parameter allows you to select the \ref COORDINATE_SYSTEM used by the \ref SL_Camera to return its measures. + * + * This defines the order and the direction of the axis of the coordinate system. + * \n Default : \ref SL_COORDINATE_SYSTEM "SL_COORDINATE_SYSTEM_IMAGE" */ enum SL_COORDINATE_SYSTEM coordinate_system; /** - * \brief it allows users to extract some stats of the Fusion API like drop frame of each camera, latency, etc + * \brief It allows users to extract some stats of the Fusion API like drop frame of each camera, latency, etc... * */ bool output_performance_metrics; + /** + * \brief Enable the verbosity mode of the SDK. + * + */ bool verbose; /** - * \brief If specified change the number of period necessary for a source to go in timeout without data. For example, if you set this to 5 + * @brief If specified change the number of period necessary for a source to go in timeout without data. For example, if you set this to 5 * then, if any source do not receive data during 5 period, these sources will go to timeout and will be ignored. - * + * */ unsigned int timeout_period_number; }; @@ -2423,12 +3255,17 @@ struct SL_InitFusionParameters struct SL_BodyTrackingFusionParameters { /** - * \brief Defines if the object detection will track objects across images flow + * \brief Defines if the object detection will track objects across images flow. + * + * Default: true */ bool enable_tracking; /** * \brief Defines if the body fitting will be applied + * + * Default: false + * \note If you enable it and the camera provides data as BODY_18 the fused body format will be BODY_34. */ bool enable_body_fitting; }; @@ -2439,19 +3276,23 @@ struct SL_BodyTrackingFusionParameters struct SL_BodyTrackingFusionRuntimeParameters { /** - * \brief if the fused skeleton has less than skeleton_minimum_allowed_keypoints keypoints, it will be discarded. Default is -1. - * + * \brief If the fused skeleton has less than skeleton_minimum_allowed_keypoints keypoints, it will be discarded. + * + * Default: -1. */ int skeleton_minimum_allowed_keypoints; /** - * \brief if a skeleton was detected in less than skeleton_minimum_allowed_camera cameras, it will be discarded + * \brief If a skeleton was detected in less than skeleton_minimum_allowed_camera cameras, it will be discarded. * + * Default: -1. */ int skeleton_minimum_allowed_camera; /** - * \brief this value controls the smoothing of the tracked or fitted fused skeleton. - * it is ranged from 0 (low smoothing) and 1 (high smoothing) + * \brief This value controls the smoothing of the tracked or fitted fused skeleton. + * + * It is ranged from 0 (low smoothing) and 1 (high smoothing). + * \n Default: 0. */ float skeleton_smoothing; }; @@ -2470,22 +3311,40 @@ struct SL_CameraMetrics { struct SL_CameraIdentifier uuid; - // gives the fps of the received datas + /** + * \brief FPS of the received data. + * + */ float received_fps; - // gives the latency (in second) of the received datas + /** + * \brief Latency (in seconds) of the received data. + * + */ float received_latency; - // gives the latency (in second) after Fusion synchronization + /** + * \brief Latency (in seconds) after Fusion synchronization. + * + */ float synced_latency; - // if no data present is set to false + /** + * \brief If no data present is set to false. + * + */ bool is_present; - // percent of detection par image during the last second in %, a low values means few detections occurs lately + /** + * \brief Gives the percent of detection par image during the last second in %, a low value means few detections occurs lately. + * + */ float ratio_detection; - // percent of detection par image during the last second in %, a low values means few detections occurs lately + /** + * \brief Average time difference for the current fused data. + * + */ float delta_ts; }; @@ -2493,13 +3352,22 @@ struct SL_CameraMetrics \brief Holds the metrics of the fusion process. */ struct SL_FusionMetrics { - - // mean number of camera that provides data during the past second + /** + * \brief Mean number of camera that provides data during the past second. + * + */ float mean_camera_fused; - // mean number of camera that provides data during the past second + /** + * \brief Standard deviation of the data timestamp fused, the lower the better. + * + */ float mean_stdev_between_camera; + /** + * \brief Sender metrics. + * + */ struct SL_CameraMetrics camera_individual_stats[MAX_FUSED_CAMERAS]; }; @@ -2509,212 +3377,240 @@ struct SL_FusionMetrics { /////////////////////////////////////////////////////////////////////////////////////////////////////////// /** -\brief Current state of GNSS fusion +\brief Lists the different states of the GNSS calibration. */ enum SL_GNSS_CALIBRATION_STATE { - SL_GNSS_CALIBRATION_STATE_NOT_CALIBRATED = 0, /** < The GNSS/VIO calibration has not been completed yet. Please continue moving the robot while ingesting GNSS data to perform the calibration.*/ - SL_GNSS_CALIBRATION_STATE_CALIBRATED = 1, /** < The GNSS/VIO calibration is completed.*/ - SL_GNSS_CALIBRATION_STATE_RE_CALIBRATION_IN_PROGRESS = 2 /** < A GNSS/VIO re-calibration is in progress in the background. Current geo-tracking services may not be entirely accurate.*/ + SL_GNSS_CALIBRATION_STATE_NOT_CALIBRATED = 0, /**< The GNSS/VIO calibration has not been completed yet.\n Please continue moving the robot while ingesting GNSS data to perform the calibration.*/ + SL_GNSS_CALIBRATION_STATE_CALIBRATED = 1, /**< The GNSS/VIO calibration is completed.*/ + SL_GNSS_CALIBRATION_STATE_RE_CALIBRATION_IN_PROGRESS = 2 /**< A GNSS/VIO re-calibration is in progress in the background.\n Current geo-tracking services may not be accurate.*/ }; /** -\brief Contains all gnss data to be used for positional tracking as prior. +\brief Structure containing GNSS data to be used for positional tracking as prior. */ struct SL_GNSSData { - // longitude in radian + /** + * \brief Longitude in radian. + * + */ double longitude; - // latitude in radian + /** + * \brief Latitude in radian. + * + */ double latitude; - // altitude in meter + /** + * \brief Altitude in meters. + * + */ double altitude; - // Timestamp + /** + * \brief Timestamp of the GNSS position in nanoseconds (must be aligned with the camera time reference). + * + */ unsigned long long ts; /** - * \brief Position covariance in meter must be expressed in ENU coordinate system. - * For eph, epv GNSS sensors, set it as follow: {eph, 0, 0, 0, eph, 0, 0, 0, epv} - * + * \brief Covariance of the position in meter (must be expressed in the ENU coordinate system). + * + * For eph, epv GNSS sensors, set it as follow: ```{eph*eph, 0, 0, 0, eph*eph, 0, 0, 0, epv*epv}```. */ double position_covariance[9]; /** - * \brief longitude standard deviation + * \brief Longitude standard deviation. * */ double longitude_std; /** - * \brief latitude standard deviation + * \brief Latitude standard deviation. * */ double latitude_std; /** - * \brief altitude standard deviation + * \brief Altitude standard deviation. * */ double altitude_std; }; /** - * \brief Coordinates in LatLng format + * \brief Represents a world position in LatLng format. * */ struct SL_LatLng { /** - * \brief latitude coordinate in radian + * \brief Latitude coordinate in radian. * */ double latitude; /** - * \brief longitude coordinate in radian + * \brief Longitude coordinate in radian. * */ double longitude; /** - * \brief altitude coordinate + * \brief Altitude coordinate in meters. * */ double altitude; }; /** - * \brief Holds Geo data + * \brief Holds Geo reference position. * */ struct SL_GeoPose { /** - * pose in ENU (Translation) + * The translation defining the pose in ENU. */ struct SL_Vector3 translation; /** - * pose in ENU (Rotation) + * The rotation defining the pose in ENU. */ struct SL_Quaternion rotation; /** - * the pose covariance in ENU + * The pose covariance in ENU. */ float pose_covariance[36]; /** - * the horizontal accuracy + * The horizontal accuracy. */ double horizontal_accuracy; /** - * the vertical accuracy + * The vertical accuracy. */ double vertical_accuracy; /** - * the latitude, longitude, altitude + * The latitude, longitude, altitude. */ struct SL_LatLng latlng_coordinates; /** - * the heading + * The heading. */ double heading; /** - * \brief timestamp of geopose + * \brief The timestamp of SL_GeoPose. * */ unsigned long long timestamp; }; /** - * \brief Coordinates in ECEF format + * \brief Represents a world position in ECEF format. * */ struct SL_ECEF { /** - * \brief x coordinate of ECEF + * \brief x coordinate of SL_ECEF. * */ double x; /** - * \brief y coordinate of ECEF + * \brief y coordinate of SL_ECEF. * */ double y; /** - * \brief z coordinate of ECEF + * \brief z coordinate of SL_ECEF. * */ double z; }; /** - * \brief Coordinate in UTM format + * \brief Represents a world position in UTM format. * */ struct SL_UTM { /** - * \brief Northing coordinate + * \brief Northing coordinate. * */ double northing; /** - * \brief Easting coordinate + * \brief Easting coordinate. * */ double easting; /** - * \brief Gamma coordinate + * \brief Gamma coordinate. * */ double gamma; /** - * \brief UTMZone of the coordinate + * \brief UTMZone of the coordinate. * */ char UTMZone[256]; }; +/** + * \brief Holds the options used for calibrating GNSS / VIO. +*/ struct SL_GNSSCalibrationParameters { /** - * \brief This parameter defines the target yaw uncertainty at which the calibration process between GNSS and VIO concludes. The unit of this parameter is in radian. By default, the threshold is set at 0.1 radians. - * + * \brief This parameter defines the target yaw uncertainty at which the calibration process between GNSS and VIO concludes. + * The unit of this parameter is in radian. + * + * Default: 0.1 radians */ float target_yaw_uncertainty; /** - * \brief When this parameter is enabled (set to true), the calibration process between GNSS and VIO accounts for the uncertainty in the determined translation, thereby facilitating the calibration termination. The maximum allowable uncertainty is controlled by the 'target_translation_uncertainty' parameter. - \n By default, it is set to false. + * @brief When this parameter is enabled (set to true), the calibration process between GNSS and VIO accounts for the uncertainty in the determined translation, thereby facilitating the calibration termination. + * The maximum allowable uncertainty is controlled by the 'target_translation_uncertainty' parameter. + * + * Default: false */ bool enable_translation_uncertainty_target; /** - * \brief This parameter defines the target translation uncertainty at which the calibration process between GNSS and VIO terminates. By default, the threshold is set at 10 centimeters (10e-2). - * + * \brief This parameter defines the target translation uncertainty at which the calibration process between GNSS and VIO concludes. + * + * Default: 10e-2 (10 centimeters) */ float target_translation_uncertainty; /** - * \brief This initialization parameter determines whether reinitialization should be performed between GNSS and VIO fusion when a significant disparity is detected between GNSS data and the current fusion data. It becomes particularly crucial during prolonged GNSS signal loss scenarios. - * By default, it is set to true. + * \brief This parameter determines whether reinitialization should be performed between GNSS and VIO fusion when a significant disparity is detected between GNSS data and the current fusion data. + * It becomes particularly crucial during prolonged GNSS signal loss scenarios. + * + * Default: true */ bool enable_reinitialization; /** - * \brief This parameter determines the threshold for GNSS/VIO reinitialization. If the fused position deviates beyond the region defined by the product of the GNSS covariance and the gnss_vio_reinit_threshold, a reinitialization will be triggered. - * By default, it is set to 5. + * \brief This parameter determines the threshold for GNSS/VIO reinitialization. + * If the fused position deviates beyond out of the region defined by the product of the GNSS covariance and the gnss_vio_reinit_threshold, a reinitialization will be triggered. + * + * Default: 5 */ float gnss_vio_reinit_threshold; /** - * \brief If this parameter is set to true, the fusion algorithm will used a rough VIO / GNSS calibration at first and then refine it. This allow you to quickly get a fused position. - * By default, it is set to true. + * \brief If this parameter is set to true, the fusion algorithm will used a rough VIO / GNSS calibration at first and then refine it. + * This allow you to quickly get a fused position. + * + * Default: true */ bool enable_rolling_calibration; }; /** - * + * \brief Holds the options used for initializing the positional tracking fusion module. * */ struct SL_PositionalTrackingFusionParameters { /** - * \brief Is the gnss fusion is enabled + * \brief This attribute is responsible for enabling or not GNSS positional tracking fusion. * + * Default: false */ bool enable_GNSS_fusion; /** - * \brief GNSS calibration parameter. Determine target threshold for GNSS / VIO calibration. - */ + * \brief Control the VIO / GNSS calibration process. + * + */ struct SL_GNSSCalibrationParameters gnss_calibration_parameters; }; diff --git a/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/include/sl/c_api/zed_interface.h b/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/include/sl/c_api/zed_interface.h index 0b80a78..774da99 100644 --- a/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/include/sl/c_api/zed_interface.h +++ b/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/include/sl/c_api/zed_interface.h @@ -58,220 +58,293 @@ extern "C" { /** \brief Reports if the camera has been successfully opened. - \param camera_id : id of the camera. - \return true if the ZED is already setup, otherwise false. + \param camera_id : Id of the camera. + \return true if the ZED camera is already setup, otherwise false. */ INTERFACE_API bool sl_is_opened(int camera_id); /** - \brief Opens the camera depending on the init parameters. - \param camera_id : id of the camera. - \param init_parameters : structure containing all the initial parameters. - \param serial number : serial number of the camera. - \param path_svo : filename of the svo (for SVO input). - \param ip : ip of the camera to open (for Stream input). - \param stream_port : port of the camera to open (for Stream input). - \param output_file : sdk verbose log file. Redirect the SDK verbose message to file. - \param opt_settings_path : optional settings path. Equivalent to \ref InitParameters::optional_settings_path. - \param opencv_calib_path : optional openCV calibration file. Equivalent to \ref InitParameters::optional_opencv_calibration_file. - \return An error code giving information about the internal process. If SUCCESS (0) is returned, the camera is ready to use. Every other code indicates an error and the program should be stopped. + \brief Opens the ZED camera from the provided SL_InitParameters. + \param camera_id : Id of the camera to open. + \param init_parameters : A structure containing all the initial parameters. Default: a preset of SL_InitParameters. + \param serial_number : Serial number of the camera to open. + \param path_svo : Filename of the svo to read (for SVO input). + \param ip : IP of the camera to open (for Stream input). + \param stream_port : Port of the camera to open (for Stream input). + \param output_file : ZED SDK verbose log file. Redirect the SDK verbose message to the file. + \param opt_settings_path[optional] : Settings path. + \param opencv_calib_path[optional] : openCV calibration file. + \return An error code giving information about the internal process. If \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" (0) is returned, the camera is ready to use. Every other code indicates an error and the program should be stopped. */ INTERFACE_API int sl_open_camera(int camera_id, struct SL_InitParameters* init_parameters, const unsigned int serial_number, const char* path_svo, const char* ip, int stream_port, const char* output_file, const char* opt_settings_path, const char* opencv_calib_path); - INTERFACE_API void sl_start_publishing(int camera_id, struct SL_CommunicationParameters* comm_params); + /** + \brief Set this camera as a data provider for the Fusion module. + + Metadata is exchanged with the Fusion. + \param camera_id : Id of the camera instance. + \param configuration : A structure containing all the initial parameters. Default: a preset of \ref SL_CommunicationParameters. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. + */ + INTERFACE_API enum SL_ERROR_CODE sl_start_publishing(int camera_id, struct SL_CommunicationParameters* comm_params); + + /** + \brief Set this camera as normal camera(without data providing). + \n Stop to send camera data to fusion. + \return \ref SUCCESS if everything went fine, \ref SL_ERROR_CODE_FAILURE otherwise + */ + INTERFACE_API enum SL_ERROR_CODE sl_stop_publishing(int camera_id); /** \brief Gets the Camera-created CUDA context for sharing it with other CUDA-capable libraries. - \param camera_id : id of the camera instance. + + This can be useful for sharing GPU memories. + \param camera_id : Id of the camera instance. */ INTERFACE_API CUcontext sl_get_cuda_context(int camera_id); /** - \brief Returns the initparameters used to open the ZED camera - \param camera_id : id of the camera instance. + \brief Returns the SL_InitParameters used. + + It corresponds to the structure given as argument to the sl_open_camera() function. + \param camera_id : Id of the camera instance. + \return SL_InitParameters containing the parameters used to initialize the camera. */ INTERFACE_API struct SL_InitParameters* sl_get_init_parameters(int camera_id); /** - \brief Returns the Runtimeparameters used to open the ZED camera + \brief Returns the SL_RuntimeParameters used. + + It corresponds to the structure given as argument to the sl_grab() function. \param camera_id : id of the camera instance. - \return a structure containing all the runtime parameters. + \return SL_RuntimeParameters containing the parameters that define the behavior of the \ref sl_grab function. */ INTERFACE_API struct SL_RuntimeParameters* sl_get_runtime_parameters(int camera_id); /** - \brief Returns the PositionalTrackingParameters - \param camera_id : id of the camera instance. - \return a structure containing all the positional tracking parameters + \brief Returns the \ref SL_PositionalTrackingParameters used. + + It corresponds to the structure given as argument to the \ref sl_enable_positional_tracking() method. + \param camera_id : Id of the camera instance. + \return \ref SL_PositionalTrackingParameters containing the parameters used for positional tracking initialization. */ INTERFACE_API struct SL_PositionalTrackingParameters* sl_get_positional_tracking_parameters(int camera_id); /** - \brief Destroys the camera and disable the textures. - \param camera_id of the camera instance. + \brief Close an opened camera and disable the textures. + \param camera_id : Id of the camera instance. */ INTERFACE_API void sl_close_camera(int camera_id); /** \brief Defines a region of interest to focus on for all the SDK, discarding other parts. - \param camera_id of the camera instance. - \param roi_mask: the Mat defining the requested region of interest, pixels lower than 127 will be discard. If empty, set all pixels as valid, otherwise should fit the resolution of the current instance and its type should be U8_C1/C3/C4. - \return An ERROR_CODE if something went wrong. + \param camera_id : Id of the camera instance. + \param roi_mask : The matrix defining the requested region of interest, pixels lower than 127 will be discarded from all modules: depth, positional tracking, etc. If empty, set all pixels as valid. The mask can be either at lower or higher resolution than the current images. + \return An \ref SL_ERROR_CODE if something went wrong. + \note The function support \ref SL_MAT_TYPE "SL_MAT_TYPE_U8_C1" / \ref SL_MAT_TYPE "SL_MAT_TYPE_UU8_C3" / \ref SL_MAT_TYPE "SL_MAT_TYPE_UU8_C4" images type. */ INTERFACE_API int sl_set_region_of_interest(int camera_id, void* roi_mask); + /** - \brief Grabs the lastest images from the camera. - \param camera_id : id of the camera instance. - \param runtime : structure containing all the runtime parameters. - \return An error code giving information about the internal process."SUCCESS" if the method succeeded. + \brief Get the previously set or computed region of interest + \param camera_id : Id of the camera instance. + \param roi_mask: The \ref Mat returned + \param image_size: The optional size of the returned mask + \return An \ref SL_ERROR_CODE if something went wrong. + */ + INTERFACE_API int sl_get_region_of_interest(int camera_id, void* roi_mask, int width, int height); + /** + \brief Start the auto detection of a region of interest to focus on for all the SDK, discarding other parts. + This detection is based on the general motion of the camera combined with the motion in the scene. + The camera must move for this process, an internal motion detector is used, based on the Positional Tracking module. + It requires a few hundreds frames of motion to compute the mask. + + \param roi_param: The \ref SL_RegionOfInterestParameters defining parameters for the detection + + \note This module is expecting a static portion, typically a fairly close vehicle hood at the bottom of the image. + This module may not work correctly or detect incorrect background area, especially with slow motion, if there's no static element. + This module work asynchronously, the status can be obtained using \ref sl_get_region_of_interest_auto_detection_status(), the result is either auto applied, + or can be retrieve using \ref sl_get_region_of_interest function. + + \return An \ref SL_ERROR_CODE if something went wrong. + */ + INTERFACE_API int sl_start_region_of_interest_auto_detection(int camera_id, struct SL_RegionOfInterestParameters* roi_param); + /** + \brief Return the status of the automatic Region of Interest Detection + The automatic Region of Interest Detection is enabled by using \ref sl_start_region_of_interest_auto_detection + \param camera_id : Id of the camera instance. + \return \ref SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE the status + */ + INTERFACE_API enum SL_REGION_OF_INTEREST_AUTO_DETECTION_STATE sl_get_region_of_interest_auto_detection_status(int camera_id); + /** + \brief Grabs the latest images from the camera. + \param camera_id : Id of the camera instance. + \param runtime : A structure containing all the runtime parameters. Default: a preset of SL_RuntimeParameters. + \return An error code giving information about the internal process. \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the method succeeded. */ INTERFACE_API int sl_grab(int camera_id, struct SL_RuntimeParameters* runtime); /** \brief Lists all the connected devices with their associated information. - This function lists all the cameras available and provides their serial number, models and other information. - \param device_list [Out] : the devices properties for each connected camera. - \param nb_devices [Out] : the number of cameras connected. + This method lists all the cameras available and provides their serial number, models and other information. + \param device_list [Out] : The devices properties for each connected camera. + \param nb_devices [Out] : The number of cameras connected. */ INTERFACE_API void sl_get_device_list(struct SL_DeviceProperties device_list[MAX_CAMERA_PLUGIN], int* nb_devices); /** \brief List all the streaming devices with their associated information. - \param device_list [Out] : the devices properties for each connected camera. - \param nb_devices [Out]: the number of cameras connected. - \return The streaming properties for each connected camera + \param device_list [Out] : The devices properties for each connected camera. + \param nb_devices [Out]: The number of cameras connected. + \return The streaming properties for each connected camera. */ INTERFACE_API void sl_get_streaming_device_list(struct SL_StreamingProperties streaming_device_list[MAX_CAMERA_PLUGIN], int* nb_devices); /** - \brief Performs an hardware reset of the ZED 2 / ZED 2i. - \param sn : serial number of the camera to reset, or 0 to reset the first camera detected. - \param fullReboot : Perform a full reboot (Sensors and Video modules) + \brief Performs a hardware reset of the ZED 2 and the ZED 2i. + \param sn : Serial number of the camera to reset, or 0 to reset the first camera detected. + \param fullReboot : Perform a full reboot (sensors and video modules) if true, otherwise only the video module will be rebooted. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_CAMERA_NOT_DETECTED" if no camera was detected. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. + + \note This method only works for ZED 2, ZED 2i, and newer camera models. */ INTERFACE_API int sl_reboot(int sn, bool full_reboot); /** - \brief Creates a file for recording the ZED's output into a .SVO or .AVI video. An SVO is Stereolabs' own format designed for the ZED. It holds the video feed with timestamps as well as info about the camera used to record it. - \param camera_id : id of the camera instance. - \param filename : filename of the SVO file. - \param compression_mode : compression mode. Can be one for the \ref SL_SVO_COMPRESSION_MODE enum. - \param bitrate : overrides default bitrate of the SVO file, in KBits/s. Only works if \ref SVO_COMPRESSION_MODE is H264 or H265. - \param target_fps : defines the target framerate for the recording module. - \param transcode : in case of streaming input, if set to false, it will avoid decoding/re-encoding and convert directly streaming input to a SVO file. + \brief Creates a file for recording the ZED's output into a .SVO or .AVI video. + + An SVO is Stereolabs' own format designed for the ZED. It holds the video feed with timestamps as well as info about the camera used to record it. + \param camera_id : Id of the camera instance. + \param filename : Filename of the SVO file. + \param compression_mode : Compression mode. It can be one for the \ref SL_SVO_COMPRESSION_MODE enum. + \param bitrate : overrides default bitrate of the SVO file, in KBits/s. Only works if \ref SL_SVO_COMPRESSION_MODE is H264 or H265. + \param target_fps : Defines the target framerate for the recording module. + \param transcode : In case of streaming input, if set to false, it will avoid decoding/re-encoding and convert directly streaming input to a SVO file. This saves a encoding session and can be especially useful on NVIDIA Geforce cards where the number of encoding session is limited. - \return An ERROR_CODE that defines if SVO file was successfully created and can be filled with images. + \return An \ref SL_ERROR_CODE that defines if SVO file was successfully created and can be filled with images. */ INTERFACE_API int sl_enable_recording(int camera_id, const char* filename, enum SL_SVO_COMPRESSION_MODE compression_mode, unsigned int bitrate, int target_fps, bool transcode); /** - \brief Get the recording information - \return The recording state structure. For more details, see \ref RecordingStatus. + \brief Get the recording information. + \return The recording state structure. For more details, see \ref SL_RecordingStatus. */ INTERFACE_API struct SL_RecordingStatus* sl_get_recording_status(int camera_id); /** - \brief Disables the recording initiated by enableRecording() and closes the generated file. - \param camera_id : id of the camera instance. + \brief Disables the recording initiated by \ref sl_enable_recording() and closes the generated file. + \param camera_id : Id of the camera instance. */ INTERFACE_API void sl_disable_recording(int camera_id); /** - \brief Returns the recording parameters used. Correspond to the structure send when the \ref sl_enable_recording() function was called. - \param camera_id : id of the camera instance. + \brief Returns the \ref SL_RecordingParameters used. + + It corresponds to the structure given as argument to the \ref sl_enable_recording() function. + \param camera_id : Id of the camera instance. \return \ref SL_RecordingParameters containing the parameters used for recording initialization. */ INTERFACE_API struct SL_RecordingParameters* sl_get_recording_parameters(int camera_id); /** \brief Pauses or resumes the recording. - \param camera_id : id of the camera instance. - \param status : if true, the recording is paused. If false, the recording is resumed. + \param camera_id : Id of the camera instance. + \param status : If true, the recording is paused. If false, the recording is resumed. */ INTERFACE_API void sl_pause_recording(int camera_id, bool status); /** \brief Initializes and starts the positional tracking processes. - This function allows you to enable the position estimation of the SDK. It only has to be called once in the camera's lifetime. - \param camera_id : id of the camera instance. - \param area_file_path : area localization file that describes the surroundings, saved from a previous tracking session. - \return \ref SL_ERROR_CODE::SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise. + This function allows you to enable the position estimation of the SDK. + It only has to be called once in the camera's lifetime. + + \param camera_id : Id of the camera instance. + \param tracking_param : A structure containing all the specific parameters for the positional tracking. Default: a preset of \ref SL_PositionalTrackingParameters. + \param area_file_path : .area localization file that describes the surroundings, saved from a previous tracking session. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_enable_positional_tracking(int camera_id, struct SL_PositionalTrackingParameters* tracking_param, const char* area_file_path); + // /** + // \brief Initializes and starts the positional tracking processes. + // This function allows you to enable the position estimation of the SDK. It only has to be called once in the camera's lifetime. + // + // \param camera_id : id of the camera instance. + // \param initial_world_rotation : rotation of the camera in the world frame when the camera is started. By default, it should be identity. + // \param initial_world_position : position of the camera in the world frame when the camera is started. By default, it should be identity. + // \param enable_area_memory : this mode enables the camera to remember its surroundings. This helps correct positional tracking drift, and can be helpful for positioning different cameras relative to one other in space. + // \param enable_pose_smoothing : this mode enables smooth pose correction for small drift correction. + // \param set_floor_as_origin : this mode initializes the tracking to be aligned with the floor plane to better position the camera in space. + // \param set_as_static : this mode defines the camera as static. If true, it will not move in the environment. This allows you to set its position using initial_world_transform. + // \param enable_imu_fusion : this mode enables or disables IMU fusion. When set to false, only the optical odometry will be used. + // \param area_file_path : area localization file that describes the surroundings, saved from a previous tracking session. + // \return \ref SL_ERROR_CODE::SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise. + // */ + // /**INTERFACE_API int enable_positional_tracking(int camera_id, struct SL_Quaternion *initial_world_rotation, struct SL_Vector3 *initial_world_position, bool enable_area_memory, bool enable_pose_smoothing, bool set_floor_as_origin, bool set_as_static, + // bool enable_imu_fusion, const char* area_file_path);*/ + /** - \brief Initializes and starts the positional tracking processes. - This function allows you to enable the position estimation of the SDK. It only has to be called once in the camera's lifetime. - - \param camera_id : id of the camera instance. - \param initial_world_rotation : rotation of the camera in the world frame when the camera is started. By default, it should be identity. - \param initial_world_position : position of the camera in the world frame when the camera is started. By default, it should be identity. - \param enable_area_memory : this mode enables the camera to remember its surroundings. This helps correct positional tracking drift, and can be helpful for positioning different cameras relative to one other in space. - \param enable_pose_smoothing : this mode enables smooth pose correction for small drift correction. - \param set_floor_as_origin : this mode initializes the tracking to be aligned with the floor plane to better position the camera in space. - \param set_as_static : this mode defines the camera as static. If true, it will not move in the environment. This allows you to set its position using initial_world_transform. - \param enable_imu_fusion : this mode enables or disables IMU fusion. When set to false, only the optical odometry will be used. - \param area_file_path : area localization file that describes the surroundings, saved from a previous tracking session. - \return \ref SL_ERROR_CODE::SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise. - */ - /**INTERFACE_API int enable_positional_tracking(int camera_id, struct SL_Quaternion *initial_world_rotation, struct SL_Vector3 *initial_world_position, bool enable_area_memory, bool enable_pose_smoothing, bool set_floor_as_origin, bool set_as_static, - bool enable_imu_fusion, const char* area_file_path);*/ - /** - \brief Disables the positional tracking. - \param camera_id : id of the camera instance. - \param area_file_path : if set, saves the spatial memory into an '.area' file. - */ + \brief Disables the positional tracking. + \param camera_id : Id of the camera instance. + \param area_file_path : If set, saves the spatial memory into an '.area' file. + */ INTERFACE_API void sl_disable_positional_tracking(int camera_id, const char* area_file_path); /** \brief Saves the current area learning file. The file will contain spatial memory data generated by the tracking. - \param camera_id : id of the camera instance. - \param area_file_path : save the spatial memory database in an '.area' file. - \return \ref SL_ERROR_CODE::FAILURE if the area_file_path file wasn't found, SUCCESS otherwise. + \param camera_id : Id of the camera instance. + \param area_file_path : Save the spatial memory database in an '.area' file. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" if the area_file_path file wasn't found, \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" otherwise. */ INTERFACE_API int sl_save_area_map(int camera_id, const char* area_file_path); /** \brief Returns the state of the spatial memory export process. - \param camera_id : id of the camera instance. - \return The current state (SL_AREA_EXPORTING_STATE) of the spatial memory export process + + As \ref sl_save_area_map only starts the exportation, this method allows you to know when the exportation finished or if it failed. + \param camera_id : Id of the camera instance. + \return The current \ref SL_AREA_EXPORTING_STATE "state" of the spatial memory export process */ INTERFACE_API int sl_get_area_export_state(int camera_id); /** - \brief Sets the playback cursor to the desired frame number in the SVO file. - This function allows you to move around within a played-back SVO file. After calling, the next call to grab() will read the provided frame number. + \brief Sets the playback cursor to the desired frame number in the SVO file. - \param camera_id : id of the camera instance. - \param frame_number : the number of the desired frame to be decoded. + This function allows you to move around within a played-back SVO file. After calling, the next call to sl_grab() will read the provided frame number. + + \param camera_id : Id of the camera instance. + \param frame_number : The number of the desired frame to be decoded. */ INTERFACE_API void sl_set_svo_position(int camera_id, int frame_number); /** \brief Returns the camera FPS. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \return The current frame rate. */ INTERFACE_API float sl_get_camera_fps(int camera_id); /** \brief Returns the current FPS. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \return The current frame rate. */ INTERFACE_API float sl_get_current_fps(int camera_id); /** \brief Returns the width of the current image. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \return Width of the image. */ int INTERFACE_API sl_get_width(int camera_id); /** \brief Returns the height of the current image. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \return Height of the image. */ int INTERFACE_API sl_get_height(int camera_id); @@ -284,8 +357,10 @@ extern "C" { INTERFACE_API int sl_get_confidence_threshold(int camera_id); /** - \brief Returns the calibration parameters, serial number and other information about the camera being used. - \param camera_id : id of the camera instance. + \brief Returns the SL_CameraInformation associated the camera. + + To ensure accurate calibration, it is possible to specify a custom resolution as a parameter when obtaining scaled information, as calibration parameters are resolution-dependent. + \param camera_id : Id of the camera instance. \param res_width : You can specify a size different from default image size to get the scaled camera information. \param res_height : You can specify a size different from default image size to get the scaled camera information. \return SL_CameraInformation containing the calibration parameters of the ZED, as well as serial number and firmware version. @@ -294,15 +369,16 @@ extern "C" { /** \brief Performs a new self calibration process. + In some cases, due to temperature changes or strong vibrations, the stereo calibration becomes less accurate. Use this function to update the self-calibration data and get more reliable depth values. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. */ INTERFACE_API void sl_update_self_calibration(int camera_id); /** \brief Gets the Calibration Parameters. \param camera_id : id of the camera instance. - \param raw_params : if true, returns Intrinsic and Extrinsic stereo parameters for original images (unrectified/distorded), else returns parameters for rectified/undistorded images. + \param r_params : if true, returns Intrinsic and Extrinsic stereo parameters for original images (unrectified/distorded), else returns parameters for rectified/undistorded images. \return Structure containing Intrinsic and Extrinsic stereo parameters */ INTERFACE_API struct SL_CalibrationParameters* sl_get_calibration_parameters(int camera_id, bool raw_params); @@ -315,10 +391,15 @@ extern "C" { INTERFACE_API struct SL_SensorsConfiguration* sl_get_sensors_configuration(int camera_id); /** - \brief Gets the IMU to Left camera transform matrix. - \param camera_id : id of the camera instance. - \param translation : translation between IMU frame and camera frame. - \param rotation : rotation between IMU frame and camera frame. + \brief Gets the IMU to the left camera transform matrix. + \note This function is only effective if the camera has a model other than a \ref SL_MODEL "SL_MODEL_ZED", which does not contains internal sensors. + \param camera_id : Id of the camera instance. + \param translation : Translation between IMU frame and camera frame. + \param rotation : Rotation between IMU frame and camera frame. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if sensors data have been extracted. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SENSORS_NOT_AVAILABLE" if the camera model is a \ref SL_MODEL "SL_MODEL_ZED". + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MOTION_SENSORS_REQUIRED" if the camera model is correct but the sensors module is not opened. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_PARAMETERS" if the reference_time is not valid. */ INTERFACE_API void sl_get_camera_imu_transform(int camera_id, struct SL_Vector3* translation, struct SL_Quaternion* rotation); @@ -337,15 +418,15 @@ extern "C" { INTERFACE_API int sl_get_zed_serial(int camera_id); /** - \brief Gets the ZED camera Current Firmware version. - \param camera_id : id of the camera instance. + \brief Gets the ZED camera current firmware version. + \param camera_id : Id of the camera instance. \return The firmware of the camera. */ INTERFACE_API int sl_get_camera_firmware(int camera_id); /** - \brief Gets the ZED mcu Current Firmware version. - \param camera_id : id of the camera instance. + \brief Gets the sensor module current firmware version. + \param camera_id : Id of the camera instance. \return The firmware version of the sensor module, 0 if no sensors are available. */ INTERFACE_API int sl_get_sensors_firmware(int camera_id); @@ -358,59 +439,105 @@ extern "C" { INTERFACE_API int sl_get_camera_model(int camera_id); /** - \brief Get the Timestamp at the time the frame has been extracted from USB stream. (should be called after a grab). - \param camera_id : id of the camera instance. - \return The Camera timestamp. + \brief Get the timestamp at the time the frame has been extracted from USB stream. + + \note It should be called after a sl_grab(). + \param camera_id : Id of the camera instance. + \return The camera timestamp. */ INTERFACE_API unsigned long long sl_get_image_timestamp(int camera_id); /** - \brief Get the current Timestamp at the time the function is called. Can be compared to the camera Timestamp for synchronization. - \param camera_id : id of the camera instance. + \brief Get the current timestamp at the time the function is called. + + Can be compared to the camera timestamp for synchronization. + \param camera_id : Id of the camera instance. \return The current timestamp. */ INTERFACE_API unsigned long long sl_get_current_timestamp(int camera_id); /** - \brief Gets the total number of frames in the loaded SVO file. - \param camera_id : id of the camera instance. - \return The total number of frames in the SVO file (-1 if the SDK is not reading a SVO). + \brief Returns the number of frames in the SVO file. + \param camera_id : Id of the camera instance. + \return The total number of frames in the SVO file. -1 if the SDK is not reading a SVO. */ INTERFACE_API int sl_get_svo_number_of_frames(int camera_id); /** - \brief Sets a value in the ZED's camera settings. - \param camera_id : id of the camera instance. - \param mode : Setting to be changed - \param value : new value + \brief Test if the video setting is supported by the camera + \param camera_id : Id of the camera instance. + \param setting : The video setting to test + \return true if the \ref SL_VIDEO_SETTINGS is supported by the camera, false otherwise + */ + INTERFACE_API bool sl_is_camera_setting_supported(int camera_id, enum SL_VIDEO_SETTINGS setting); + + /** + \brief Sets the value of the requested \ref SL_VIDEO_SETTINGS "camera setting" (gain, brightness, hue, exposure, etc.). + \param camera_id : Id of the camera instance. + \param mode : The setting to be set. + \param value : The value to set. + \return \ref SL_ERROR_CODE to indicate if the function was successful. + \note The function works only if the camera is open in LIVE or STREAM mode. */ INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings(int camera_id, enum SL_VIDEO_SETTINGS mode, int value); + /** + \brief Sets the range values of the requested \ref SL_VIDEO_SETTINGS "camera setting" (gain, brightness, hue, exposure, etc.). + Works for the following settings: + \ref SL_VIDEO_SETTINGS SL_VIDEO_SETTINGS_AUTO_EXPOSURE_TIME_RANGE + \ref SL_VIDEO_SETTINGS SL_VIDEO_SETTINGS_AUTO_ANALOG_GAIN_RANGE + \ref SL_VIDEO_SETTINGS SL_VIDEO_SETTINGS_AUTO_DIGITAL_GAIN_RANGE + + \param camera_id : Id of the camera instance. + \param mode : The setting to be set. + \param min : The min value to set. + \param max : The max value to set. + \return \ref SL_ERROR_CODE to indicate if the function was successful. + \note The function works only if the camera is open in LIVE or STREAM mode. + */ + INTERFACE_API enum SL_ERROR_CODE sl_set_camera_settings_min_max(int camera_id, enum SL_VIDEO_SETTINGS mode, int min, int max); + /** \brief Sets the region of interest for automatic exposure/gain computation - \param camera_id : id of the camera instance. - \param side : defines left,right,both to distinguish between left and right or both sides (see \ref SL_SIDE). - \param roi : Region of interest. - \param reset : reset aestruct C_agc if true. - \return SL_ERROR_CODE::SUCCESS if ROI has been applied. Other ERROR_CODE otherwise. + \param camera_id : Id of the camera instance. + \param side : \ref SL_SIDE on which to be applied for AEC/AGC computation. + \param roi : \ref SL_Rect that defines the target to be applied for AEC/AGC computation. Must be given according to camera resolution. + \param reset : Cancel the manual ROI and reset it to the full image. + \return \ref SL_ERROR_CODE to indicate if the function was successful. + \note The function works only if the camera is open in LIVE or STREAM mode. */ INTERFACE_API enum SL_ERROR_CODE sl_set_roi_for_aec_agc(int camera_id, enum SL_SIDE side, struct SL_Rect* roi, bool reset); /** - \brief Gets the value of a given setting from the ZED camera. - \param camera_id : id of the camera instance. + \brief Returns the current value of the requested \ref SL_VIDEO_SETTINGS "camera setting" (gain, brightness, hue, exposure, etc.). + \param camera_id : Id of the camera instance. \param mode : Setting to be retrieved (see \ref SL_VIDEO_SETTINGS). - \param value : the requested setting value. - \return ERROR_CODE to indicate if the function was successfull.If successfull, setting will be filled with the corresponding value. + \param value : The requested setting value. + \return \ref SL_ERROR_CODE to indicate if the function was successful. If successful, setting will be filled with the corresponding value. + \note The function works only if the camera is open in LIVE or STREAM mode. + \note Settings are not exported in the SVO file format. */ INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings(int c_id, enum SL_VIDEO_SETTINGS mode, int* value); /** - \brief Gets the region of interest for automatic exposure/gain computation - \param camera_id : id of the camera instance. - \param side : defines left,right,both to distinguish between left and right or both sides (see \ref SL_SIDE). + \brief Returns the current range of the requested \ref SL_VIDEO_SETTINGS "camera setting" (setting with range value). + \param camera_id : Id of the camera instance. + \param mode : Setting to be retrieved (see \ref SL_VIDEO_SETTINGS). + \param value : The requested setting value. + \return \ref SL_ERROR_CODE to indicate if the function was successful. If successful, setting will be filled with the corresponding value. + \note The function works only if the camera is open in LIVE or STREAM mode. + \note Settings are not exported in the SVO file format. + */ + INTERFACE_API enum SL_ERROR_CODE sl_get_camera_settings_min_max(int c_id, enum SL_VIDEO_SETTINGS mode, int* minvalue, int* maxvalue); + + /** + \brief Gets the region of interest for automatic exposure/gain computation. + \param camera_id : Id of the camera instance. + \param side : \ref SL_SIDE on which to get the ROI from. \param roi [Out] : Region of interest. - \return SL_ERROR_CODE::SUCCESS if ROI has been applied. Other ERROR_CODE otherwise. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if ROI has been applied. Other \ref SL_ERROR_CODE otherwise. + \note The function works only if the camera is open in LIVE or STREAM mode. + \note Settings are not exported in the SVO file format. */ INTERFACE_API enum SL_ERROR_CODE sl_get_roi_for_aec_agc(int id, enum SL_SIDE side, struct SL_Rect* roi); @@ -430,10 +557,10 @@ extern "C" { /** \brief Gets the current range of perceived depth. - \param camera_id : id of the camera instance. - \param min : \b [out] Minimum depth detected (in selected sl::UNIT) - \param max : \b [out] Maximum depth detected (in selected sl::UNIT) - \return SL_ERROR_CODE::SUCCESS if values have been extracted. Other ERROR_CODE otherwise. + \param camera_id : Id of the camera instance. + \param min : [Out] Minimum depth detected (in selected \ref SL_UNIT) + \param max : [Out] Maximum depth detected (in selected \ref SL_UNIT). + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if values have been extracted. Other \ref SL_ERROR_CODE otherwise. */ INTERFACE_API int sl_get_current_min_max_depth(int camera_id, float* min, float* max); @@ -458,25 +585,34 @@ extern "C" { */ INTERFACE_API int sl_convert_coordinate_system(struct SL_Quaternion* rotation, struct SL_Vector3* translation, enum SL_COORDINATE_SYSTEM coord_system_src, enum SL_COORDINATE_SYSTEM coord_system_dest); - /** - \brief Returns the version of the currently installed ZED SDK. - \param major : major int of the version filled - \param minor : minor int of the version filled - \param patch : patch int of the version filled - */ - //INTERFACE_API void sl_get_sdk_version(int *major, int *minor, int *patch); + // /** + // \brief Returns the version of the currently installed ZED SDK. + // \param major : major int of the version filled + // \param minor : minor int of the version filled + // \param patch : patch int of the version filled + // */ + // INTERFACE_API void sl_get_sdk_version(int *major, int *minor, int *patch); /** - \brief Gets the current position of the SVO being recorded to. - \param camera_id : id of the camera instance. - \return The current SVO position; + \brief Returns the current playback position in the SVO file. + \param camera_id : Id of the camera instance. + \return The current frame position in the SVO file. Returns -1 if the SDK is not reading an SVO. */ INTERFACE_API int sl_get_svo_position(int camera_id); /** - \brief Gets the number of frames dropped since Grab() was called for the first time. Based on camera timestamps and an FPS comparison. - \param camera_id : id of the camera instance. - \return The number of frames dropped since the first Grab() call. + * \brief Retrieves the frame index within the SVO file corresponding to the provided timestamp. + * \param camera_id : Id of the camera instance. + * \param timestamp The target timestamp for which the frame index is to be determined. + * \return The frame index within the SVO file that aligns with the given timestamp. + * Returns -1 if the timestamp falls outside the bounds of the SVO file. + */ + INTERFACE_API int sl_get_svo_position_at_timestamp(int camera_id, unsigned long long timestamp); + + /** + \brief Gets the number of frames dropped since sl_grab() was called for the first time. Based on camera timestamps and an FPS comparison. + \param camera_id : Id of the camera instance. + \return The number of frames dropped since the first sl_grab() call. */ INTERFACE_API unsigned int sl_get_frame_dropped_count(int camera_id); @@ -486,15 +622,14 @@ extern "C" { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - \brief Gets the current position of the camera and state of the tracking, with an optional offset to the tracking frame. - \param camera_id : id of the camera instance. - \return true if the tracking module is enabled + \brief Tells if the tracking module is enabled. + \param camera_id : Id of the camera instance. */ INTERFACE_API bool sl_is_positional_tracking_enabled(int camera_id); /** \brief Gets the current position of the camera and state of the tracking, with an optional offset to the tracking frame. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \param rotation : Quaternion filled with the current rotation of the camera depending on its reference frame. \param position : Vector filled with the current position of the camera depending on its reference frame. \param target_quaternion : Rotational offset applied to the tracking frame. @@ -504,8 +639,8 @@ extern "C" { */ INTERFACE_API int sl_get_position_at_target_frame(int camera_id, struct SL_Quaternion* rotation, struct SL_Vector3* position, struct SL_Quaternion* target_quaternion, struct SL_Vector3* target_translation, enum SL_REFERENCE_FRAME reference_frame); /** - \brief Gets the current position of the camera and state of the tracking, filling a PoseData struck useful for AR pass-though. - \param camera_id : id of the camera instance. + \brief Gets the current position of the camera and state of the tracking, filling a \ref SL_PoseData struck useful for AR pass-though. + \param camera_id : Id of the camera instance. \param poseData : Current Pose. \param reference_frame : Reference frame sor setting the rotation/position. \return The current state of the tracking process (see \ref SL_POSITIONAL_TRACKING_STATE). @@ -513,7 +648,7 @@ extern "C" { INTERFACE_API int sl_get_position_data(int camera_id, struct SL_PoseData* poseData, enum SL_REFERENCE_FRAME reference_frame); /** \brief Retrieves the estimated position and orientation of the camera in the specified \ref REFERENCE_FRAME "reference frame". - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \param rotation : Quaternion filled with the current rotation of the camera depending on its reference frame. \param position : Vector filled with the current position of the camera depending on its reference frame. \param reference_frame : Reference frame for setting the rotation/position. @@ -530,45 +665,58 @@ extern "C" { INTERFACE_API int sl_get_position_array(int camera_id, float* pose, enum SL_REFERENCE_FRAME reference_frame); /** - \brief Resets the tracking, and re-initializes the position with the given pose - \param camera_id : id of the camera instance. - \param rotation : rotation of the camera in the world frame when the function is called. - \param translation : position of the camera in the world frame when the function is called. - \return SL_ERROR_CODE::SUCCESS if the tracking has been reset, ERROR_CODE::FAILURE otherwise. + \brief Resets the tracking, and re-initializes the position with the given pose. + \param camera_id : Id of the camera instance. + \param rotation : Rotation of the camera in the world frame when the function is called. + \param translation : Position of the camera in the world frame when the function is called. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the tracking has been reset, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_reset_positional_tracking(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation); /** \brief Resets the tracking with an offset. - \param camera_id : id of the camera instance. - \param rotation : rotation of the camera in the world frame when the function is called. - \param translation : position of the camera in the world frame when the function is called. - \param target_quaternion : rotation offset to apply. - \param target_translation : translation offset to apply. - \return SL_ERROR_CODE::SUCCESS if the tracking has been reset, ERROR_CODE::FAILURE otherwise. + \param camera_id : Id of the camera instance. + \param rotation : Rotation of the camera in the world frame when the function is called. + \param translation : Position of the camera in the world frame when the function is called. + \param target_quaternion : Rotation offset to apply. + \param target_translation : Translation offset to apply. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the tracking has been reset, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_reset_positional_tracking_with_offset(int camera_id, struct SL_Quaternion rotation, struct SL_Vector3 translation, struct SL_Quaternion target_quaternion, struct SL_Vector3 target_translation); /** - \brief Sets a prior to the IMU orientation (using a ZED-mini, ZED2 or ZED2i). - Prior must come from a external IMU, such as the HMD orientation and should be in a time frame - that's as close as possible to the camera. - \param rotation : Prior rotation. - \SUCCESS if the transform has been passed, ERROR_CODE::INVALID_FUNCTION_CALL otherwise + \brief Set an optional IMU orientation hint that will be used to assist the tracking during the next \ref sl_grab(). + + Prior must come from a external IMU, such as the HMD orientation and should be in a time frame that's as close as possible to the camera. + \note This function is only effective if the camera has a model other than a \ref SL_MODEL "SL_MODEL_ZED", which does not contains internal sensors. + + \param rotation : Prior rotation. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if sensors data have been extracted. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SENSORS_NOT_AVAILABLE" if the camera model is a \ref SL_MODEL "SL_MODEL_ZED". + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MOTION_SENSORS_REQUIRED" if the camera model is correct but the sensors module is not opened. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_PARAMETERS" if the reference_time is not valid. */ INTERFACE_API int sl_set_imu_prior_orientation(int camera_id, struct SL_Quaternion rotation); /** - \brief Gets the rotation given by the ZED-M/ZED2 IMU. Returns an error if using ZED (v1) which does not contains internal sensors. + \brief Gets the rotation given by the IMU. + \note This function is only effective if the camera has a model other than a \ref SL_MODEL "SL_MODEL_ZED", which does not contains internal sensors. \param camera_id : id of the camera instance. - \param quat [Out]: Rotation from the IMU. + \param quat : [Out] Rotation from the IMU. \param time_reference : time reference. - \return ERROR_CODE::SUCCESS if sensors data have been extracted. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if sensors data have been extracted. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SENSORS_NOT_AVAILABLE" if the camera model is a \ref SL_MODEL "SL_MODEL_ZED". + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MOTION_SENSORS_REQUIRED" if the camera model is correct but the sensors module is not opened. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_PARAMETERS" if the reference_time is not valid. */ INTERFACE_API int sl_get_imu_orientation(int camera_id, struct SL_Quaternion* quat, enum SL_TIME_REFERENCE time_reference); /** - \brief Gets the full Sensor data from the ZED-M/ZED2/ZED2i. Returns an error is using ZED (v1) which does not contains internal sensors. - \param camera_id : id of the camera instance. - \param data : sensor data. - \param time_reference : time reference. - \return ERROR_CODE::SUCCESS if sensors data have been extracted. + \brief Gets \ref SL_SensorsData (IMU, magnetometer, barometer) at a specific time reference. + \note This function is only effective if the camera has a model other than a \ref SL_MODEL "SL_MODEL_ZED", which does not contains internal sensors. + \param camera_id : Id of the camera instance. + \param data : The \ref SL_SensorsData variable to store the data. + \param time_reference : Defines the reference from which you want the data to be expressed. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if sensors data have been extracted. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SENSORS_NOT_AVAILABLE" if the camera model is a \ref SL_MODEL "SL_MODEL_ZED". + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MOTION_SENSORS_REQUIRED" if the camera model is correct but the sensors module is not opened. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_PARAMETERS" if the reference_time is not valid. */ INTERFACE_API int sl_get_sensors_data(int camera_id, struct SL_SensorsData* data, enum SL_TIME_REFERENCE time_reference); @@ -582,200 +730,211 @@ extern "C" { into several large meshes (which are more convenient to work with). \param camera_id : id of the camera instance. \param nb_faces : define the new number of faces per chunk (useful for Unity that doesn't handle chunks over 65K vertices). - \param nb_vertices : Array of the number of vertices in each submesh. - \param nb_triangles : Array of the number of triangles in each submesh. - \param nb_updated_submeshes : Number of submeshes. - \param updates_indices : List of all submeshes updated since the last update. - \param nb_vertices_tot : Total number of updated vertices in all submeshes. - \param nb_triangles_tot : Total number of updated triangles in all submeshes. - \param max_sub_mesh : Maximum number of submeshes. + \param nb_vertices : Array of the number of vertices in each sub-mesh. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param nb_updated_submeshes : Number of sub-meshes. + \param updates_indices : List of all sub-meshes updated since the last update. + \param nb_vertices_tot : Total number of updated vertices in all sub-meshes. + \param nb_triangles_tot : Total number of updated triangles in all sub-meshes. + \param max_sub_mesh : Maximum number of sub-meshes. */ INTERFACE_API void sl_spatial_mapping_merge_chunks(int camera_id, int nb_faces, int* nb_vertices, int* nb_triangles, int* nb_updated_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh); /** - \brief Initializes and begins the spatial mapping processes. - \param camera_id : id of the camera instance. + \brief Initializes and starts the spatial mapping processes. + \param camera_id : Id of the camera instance. \param type : Spatial mapping type (see \ref SL_SPATIAL_MAP_TYPE). \param resolution_meter : Spatial mapping resolution in meters. \param max_range_meter : Maximum scanning range in meters. \param save_texture : True to scan surface textures in addition to geometry. \param max_memory_usage : The maximum CPU memory (in megabytes) allocated for the meshing process. - \return SUCCESS if everything went fine, ERROR_CODE::FAILURE otherwise. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_enable_spatial_mapping(int camera_id, struct SL_SpatialMappingParameters* mapping_param); /** - \brief Disables the Spatial Mapping process. - \param camera_id : id of the camera instance. + \brief Disables the spatial mapping process. + \param camera_id : Id of the camera instance. */ INTERFACE_API void sl_disable_spatial_mapping(int camera_id); /** - \brief Returns the spatial mapping parameters used. Correspond to the structure send when the \ref enableSpatialMapping() function was called. - \param camera_id : id of the camera instance. - \return \ref SpatialMappingParameters containing the parameters used for spatial mapping intialization. + \brief Returns the SL_SpatialMappingParameters used. + + It corresponds to the structure given as argument to the \ref sl_enable_spatial_mapping() method. + \param camera_id : Id of the camera instance. + \return \ref SL_SpatialMappingParameters containing the parameters used for spatial mapping initialization. */ INTERFACE_API struct SL_SpatialMappingParameters* sl_get_spatial_mapping_parameters(int camera_id); /** - Sets the pause state of the data integration mechanism for the ZED's spatial mapping. - \param camera_id : id of the camera instance. + Pauses or resumes the spatial mapping processes. + \param camera_id : Id of the camera instance. \param status : If true, the integration is paused. If false, the spatial mapping is resumed. */ INTERFACE_API void sl_pause_spatial_mapping(int camera_id, bool status); /** - \brief Starts the mesh generation process in a thread that doesn't block the spatial mapping process. - \param camera_id : id of the camera instance. + \brief Starts the spatial map generation process in a non-blocking thread from the spatial mapping process. + \param camera_id : Id of the camera instance. */ INTERFACE_API void sl_request_mesh_async(int camera_id); /** - \brief Returns the mesh generation status. Useful for knowing when to update and retrieve the mesh. - \param camera_id : id of the camera instance. - \return SUCCESS if the mesh is ready and not yet retrieved, otherwise ERROR_CODE::FAILURE. + \brief Returns the spatial map generation status. + + Useful for knowing when to update and retrieve the mesh or the point cloud. + \param camera_id : Id of the camera instance. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the mesh or the point cloud is ready and not yet retrieved, otherwise \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE". */ INTERFACE_API int sl_get_mesh_request_status_async(int camera_id); /** - \brief Gets the current state of spatial mapping. - \param camera_id : id of the camera instance. - \return The current state ( \ref SL_SPATIAL_MAPPING_STATE) of the spatial mapping process ( + \brief Returns the current spatial mapping state. + + As the spatial mapping runs asynchronously, this function allows you to get reported errors or status info. + \param camera_id : Id of the camera instance. + \return The current \ref SL_SPATIAL_MAPPING_STATE "state" of the spatial mapping process. */ INTERFACE_API enum SL_SPATIAL_MAPPING_STATE sl_get_spatial_mapping_state(int camera_id); /** \brief Updates the internal version of the mesh and returns the sizes of the meshes. - \param camera_id : id of the camera instance. - \param nb_vertices : Array of the number of vertices in each submesh. - \param nb_triangles : Array of the number of triangles in each submesh. - \param nb_submeshes : Number of submeshes. - \param updates_indices : List of all submeshes updated since the last update. - \param num_vertices_tot : Total number of updated vertices in all submeshes. - \param num_triangles_tot : Total number of updated triangles in all submeshes. - \param max_sub_mesh : Maximum number of submeshes. - \return SUCCESS if the mesh is updated. + \param camera_id : Id of the camera instance. + \param nb_vertices : Array of the number of vertices in each sub-mesh. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param nb_submeshes : Number of sub-meshes. + \param updates_indices : List of all sub-meshes updated since the last update. + \param num_vertices_tot : Total number of updated vertices in all sub-meshes. + \param num_triangles_tot : Total number of updated triangles in all sub-meshes. + \param max_sub_mesh : Maximum number of sub-meshes. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the mesh is updated. */ INTERFACE_API int sl_update_mesh(int camera_id, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh); /** - \brief Retrieves all chunks of the current mesh. Call update_mesh before calling this. - Vertex and triangles arrays must be at least of the sizes returned by update_mesh (nb_vertices and nb_triangles). - \param camera_id : id of the camera instance. + \brief Retrieves all chunks of the current mesh. + \note Call \ref sl_update_mesh before calling this. + + Vertex and triangles arrays must be at least of the sizes returned by \ref sl_update_mesh (nb_vertices and nb_triangles). + \param camera_id : Id of the camera instance. \param vertices : Vertices of the mesh \param triangles : Triangles of the mesh. - \param colors : (b,g,r) colors of each vertex. - \param max_submeshes : Maximum number of submesh that can be handled. - \param uvs : uvs of the texture. + \param colors : BGR colors of each vertex. + \param max_submeshes : Maximum number of sub-mesh that can be handled. + \param uvs : UVs of the texture. \param texture_ptr : Texture of the mesh (if enabled). - \return SUCCESS if the mesh is retrieved. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the mesh is retrieved. */ INTERFACE_API int sl_retrieve_mesh(int camera_id, float* vertices, int* triangles, unsigned char* colors, float* uvs, unsigned char* texture_ptr, const int max_submeshes); /** - \brief Updates the internal version of the mesh and returns the sizes of the meshes. - \param camera_id : id of the camera instance. - \param nb_vertices : Array of the number of vertices in each submesh. - \param nb_triangles : Array of the number of triangles in each submesh. - \param nb_submeshes : Number of submeshes. - \param updates_indices : List of all submeshes updated since the last update. - \param num_vertices_tot : Total number of updated vertices in all submeshes. - \param num_triangles_tot : Total number of updated triangles in all submeshes. - \param max_sub_mesh : Maximum number of submeshes. - \return SUCCESS if the chunks are updated. + \brief Updates the Internal version of the mesh and returns the sizes of the meshes. + \param camera_id : Id of the camera instance. + \param nb_vertices : Array of the number of vertices in each sub-mesh. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param nb_submeshes : Number of sub-meshes. + \param updates_indices : List of all sub-meshes updated since the last update. + \param num_vertices_tot : Total number of updated vertices in all sub-meshes. + \param num_triangles_tot : Total number of updated triangles in all sub-meshes. + \param max_sub_mesh : Maximum number of sub-meshes. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the chunks are updated. */ INTERFACE_API int sl_update_chunks(int camera_id, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh); /** - \brief Retrieves all chunks of the full mesh. Call update_mesh before calling this. - Vertex and triangles arrays must be at least of the sizes returned by update_mesh (nbVertices and nbTriangles). - \param camera_id : id of the camera instance. - \param max_submesh : Maximum number of submesh that can be handled. - \param vertices : Vertices of the chunk + \brief Retrieves all chunks of the full mesh. + \note Call \ref sl_update_mesh before calling this. + + Vertex and triangles arrays must be at least of the sizes returned by \ref sl_update_mesh (nbVertices and nbTriangles). + \param camera_id : Id of the camera instance. + \param max_submesh : Maximum number of sub-mesh that can be handled. + \param vertices : Vertices of the chunk. \param triangles : Triangles of the chunk. - \param colors : b,g,r colors of the chunk - \param uvs : uvs of the texture. + \param colors : BGR colors of the chunk. + \param uvs : UVs of the texture. \param texture_ptr : Texture of the mesh (if enabled). - \return SUCCESS if the chunk is retrieved. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the chunk is retrieved. */ INTERFACE_API int sl_retrieve_chunks(int camera_id, float* vertices, int* triangles, unsigned char* colors, float* uvs, unsigned char* texture_ptr, const int max_submesh); /** - \brief Updates the fused point cloud (if spatial map type was FUSED_POINT_CLOUD). - \param camera_id : id of the camera instance. - \param num_vertices_tot : returns the total number of vertices. - \return SUCCESS if the fused point cloud is updated. + \brief Updates the fused point cloud (if spatial map type was \ref SL_SPATIAL_MAP_TYPE "SL_SPATIAL_MAP_TYPE_FUSED_POINT_CLOUD"). + \param camera_id : Id of the camera instance. + \param num_vertices_tot : The total number of vertices. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the fused point cloud is updated. */ INTERFACE_API int sl_update_fused_point_cloud(int camera_id, int* nb_vertices_tot); /** - \brief Retrieves all points of the fused point cloud. Call update_fused_point_cloud before calling this. - \param camera_id : id of the camera instance. + \brief Retrieves all points of the fused point cloud. + \note Call \ref sl_update_fused_point_cloud before calling this. + \param camera_id : Id of the camera instance. \param vertices : Points of the fused point cloud. - \return SUCCESS if the fused point cloud is retrieved. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the fused point cloud is retrieved. */ INTERFACE_API int sl_retrieve_fused_point_cloud(int camera_id, float* vertices); /** \brief Extracts the current spatial map from the spatial mapping process. - \param camera_id : id of the camera instance. - SUCCESS if the mesh is filled and available, otherwise FAILURE. + \param camera_id : Id of the camera instance. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the mesh is filled and available, otherwise \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE". */ INTERFACE_API int sl_extract_whole_spatial_map(int camera_id); /** \brief Saves the scanned mesh in a specific file format. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \param filename : Path and filename of the mesh. \param format : File format (extension). Can be .obj, .ply or .bin. - \return True if the file was successfully saved, false otherwise. + \return Has the mesh been save successfully. */ INTERFACE_API bool sl_save_mesh(int camera_id, const char* filename, enum SL_MESH_FILE_FORMAT format); /** \brief Saves the scanned point cloud in a specific file format. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \param filename : Path and filename of the point cloud. \param format : File format (extension). Can be .obj, .ply or .bin. - \return True if the file was successfully saved, false otherwise. + \return Has the point cloud been save successfully. */ INTERFACE_API bool sl_save_point_cloud(int c_id, const char* filename, enum SL_MESH_FILE_FORMAT format); /** \brief Loads a saved mesh file. - \param camera_id : id of the camera instance. - \param filename : Path and filename of the mesh. Should incluse the extension (.obj, .ply or .bin). - \param nb_ertices : Array of the number of vertices in each submesh. - \param nb_triangles : Array of the number of triangles in each submesh. - \param nb_sub_meshes : Number of submeshes. - \param updated_indices : List of all submeshes updated since the last update. - \param nb_vertices_tot : Total number of updated vertices in all submeshes. - \param nb_triangles_tot : Array of the number of triangles in each submesh. - \param max_submesh : Maximum number of submeshes taht can be handled. - \param texture_size : Array containing the sizes of all the textures (width ,height) if applicable. - \return True if the file was successfully loaded, false otherwise. + \param camera_id : Id of the camera instance. + \param filename : Path and filename of the mesh. Should include the extension (.obj, .ply or .bin). + \param nb_ertices : Array of the number of vertices in each sub-mesh. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param nb_sub_meshes : Number of sub-meshes. + \param updated_indices : List of all sub-meshes updated since the last update. + \param nb_vertices_tot : Total number of updated vertices in all sub-meshes. + \param nb_triangles_tot : Array of the number of triangles in each sub-mesh. + \param max_submesh : Maximum number of sub-meshes that can be handled. + \param texture_size : Array containing the sizes of all the textures (width, height) if applicable. + \return Has the mesh been loaded successfully. */ INTERFACE_API bool sl_load_mesh(int camera_id, const char* filename, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* num_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, int* textures_size, const int max_submesh); /** \brief Applies the scanned texture onto the internal scanned mesh. - \param camera_id : id of the camera instance. - \param nb_vertices : Array of the number of vertices in each submesh. - \param nb_triangles : Array of the number of triangles in each submesh. - \param nb_sub_meshes : Number of submeshes. - \param updated_indices : List of all submeshes updated since the last update. - \param nb_vertices_tot : Total number of updated vertices in all submeshes. - \param nb_triangles_tot : Array of the number of triangles in each submesh. - \param max_submesh : Maximum number of submeshes taht can be handled. - \param texture_size : Array containing the sizes of all the textures (width ,height) if applicable. - \return True if the texturing was successful, false otherwise. + \param camera_id : Id of the camera instance. + \param nb_vertices : Array of the number of vertices in each sub-mesh. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param nb_sub_meshes : Number of sub-meshes. + \param updated_indices : List of all sub-meshes updated since the last update. + \param nb_vertices_tot : Total number of updated vertices in all sub-meshes. + \param nb_triangles_tot : Array of the number of triangles in each sub-mesh. + \param max_submesh : Maximum number of sub-meshes that can be handled. + \param texture_size : Array containing the sizes of all the textures (width, height) if applicable. + \return Has the texture been applied successfully. */ INTERFACE_API bool sl_apply_texture(int camera_id, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_updated_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, int* textures_size, const int max_submesh); /** \brief Filters a mesh to removes triangles while still preserving its overall shaper (though less accurate). - \param camera_id : id of the camera instance. - \param filter_params : Filter level. Higher settings remore more triangles (SL_MeshFilterParameters::MESH_FILTER). - \param nb_vertices : Array of the number of vertices in each submesh. - \param nb_triangles : Array of the number of triangles in each submesh. - \param nb_sub_meshes : Number of submeshes. - \param updated_indices : List of all submeshes updated since the last update. - \param nb_vertices_tot : Total number of updated vertices in all submeshes. - \param nb_triangles_tot : Array of the number of triangles in each submesh. - \param max_submesh : Maximum number of submeshes that can be handled. - \return True if the filtering was successful, false otherwise. + \param camera_id : Id of the camera instance. + \param filter_params : Filter level. Higher settings remove more triangles (\ref SL_MESH_FILTER). + \param nb_vertices : Array of the number of vertices in each sub-mesh. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param nb_sub_meshes : Number of sub-meshes. + \param updated_indices : List of all sub-meshes updated since the last update. + \param nb_vertices_tot : Total number of updated vertices in all sub-meshes. + \param nb_triangles_tot : Array of the number of triangles in each sub-mesh. + \param max_submesh : Maximum number of sub-meshes that can be handled. + \return Has the mesh been filtered successfully. */ INTERFACE_API bool sl_filter_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int* nb_vertices_per_submesh, int* nb_triangles_per_submesh, int* nb_updated_submeshes, int* updated_indices, int* nb_vertices_tot, int* nb_triangles_tot, const int max_submesh); /** \brief Gets a vector pointing toward the direction of gravity. This is estimated from a 3D scan of the environment, and such, a scan must be started and finished for this value to be calculated. - If using the ZED_M /ZED2, this isn't required thanks to its IMU. - \param camera_id : id of the camera instance. - \param gravity [Out] : vector of gravity. + \n If using a model other than \ref SL_MODEL "SL_MODEL_ZED", this isn't required thanks to its IMU. + \param camera_id : Id of the camera instance. + \param gravity : [Out] The vector of gravity. */ INTERFACE_API void sl_spatial_mapping_get_gravity_estimation(int camera_id, struct SL_Vector3* gravity); @@ -785,8 +944,8 @@ extern "C" { /** \brief Updates the internal version of the whole mesh and returns the size of its data. \param camera_id : id of the camera instance. - \param nb_vertices : Total number of updated vertices in all submeshes. - \param nb_triangles : Total number of updated triangles in all submeshes. + \param nb_vertices : Total number of updated vertices in all sub-meshes. + \param nb_triangles : Total number of updated triangles in all sub-meshes. \return SUCCESS if the chunks are updated. */ INTERFACE_API int sl_update_whole_mesh(int camera_id, int* nb_vertices, int* nb_triangles); @@ -805,29 +964,29 @@ extern "C" { /** \brief Loads a saved mesh file. \param camera_id : id of the camera instance. - \param filename : Path and filename of the mesh. Should incluse the extension (.obj, .ply or .bin). - \param nb_vertices : Total number of updated vertices in all submeshes. - \param nb_triangles : Array of the number of triangles in each submesh. - \param max_submesh : Maximum number of submeshes taht can be handled. + \param filename : Path and filename of the mesh. Should include the extension (.obj, .ply or .bin). + \param nb_vertices : Total number of updated vertices in all sub-meshes. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \param max_submesh : Maximum number of sub-meshes that can be handled. \param texture_size : Array containing the sizes of all the textures (width ,height) if applicable. - \return True if the file was successfully loaded, false otherwise. + \return Has the mesh been loaded successfully. */ INTERFACE_API bool sl_load_whole_mesh(int camera_id, const char* filename, int* nb_vertices, int* nb_triangles, int* texture_size); /** \brief Applies the scanned texture onto the internal scanned mesh. \param camera_id : id of the camera instance. - \param nb_vertices : Total number of updated vertices in all submeshes. - \param nb_triangles : Array of the number of triangles in each submesh. + \param nb_vertices : Total number of updated vertices in all sub-meshes. + \param nb_triangles : Array of the number of triangles in each sub-mesh. \param texture_size : Array containing the sizes of all the textures (width ,height) if applicable. - \return True if the texturing was successful, false otherwise. + \return Has the texture been applied successfully. */ INTERFACE_API bool sl_apply_whole_texture(int camera_id, int* nb_vertices, int* nb_triangles, int* texture_size); /** \brief Filters a mesh to removes triangles while still preserving its overall shaper (though less accurate). \param camera_id : id of the camera instance. - \param nb_vertices : Total number of updated vertices in all submeshes. - \param nb_triangles : Array of the number of triangles in each submesh. - \return True if the filtering was successful, false otherwise. + \param nb_vertices : Total number of updated vertices in all sub-meshes. + \param nb_triangles : Array of the number of triangles in each sub-mesh. + \return Has the mesh been filtered successfully. */ INTERFACE_API bool sl_filter_whole_mesh(int camera_id, enum SL_MESH_FILTER filter_params, int* nb_vertices, int* nb_triangles); @@ -837,8 +996,8 @@ extern "C" { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - \brief Looks for a plane in the visible area that is likely to represent the floor. - \param camera_id : id of the camera instance. + \brief Detect the floor plane of the scene. + \param camera_id : Id of the camera instance. \param reset_quaternion : The rotation to align the axis with the gravity. \param reset_translation : The translation to align the tracking with the floor plane. The initial position will then be at ground height. \param prior_rotation : Prior rotation. @@ -847,9 +1006,10 @@ extern "C" { */ INTERFACE_API struct SL_PlaneData* sl_find_floor_plane(int camera_id, struct SL_Quaternion* reset_quaternion, struct SL_Vector3* reset_translation, struct SL_Quaternion prior_rotation, struct SL_Vector3 prior_translation); /** - \brief Check for a plane in hte real world at given screen-space coordinates. - \param camera_id : id of the camera instance. - \param pixel : Point on the ZED image to check for a plane. + \brief Checks the plane at the given left image coordinates. + \param camera_id : Id of the camera instance. + \param pixel : The image coordinate. The coordinate must be taken from the full-size image. + \param params : A structure containing all the specific parameters for the plane detection. Default: a preset of \ref SL_PlaneDetectionParameters. \param thres : Check if area is enough for Unity. If true, removes smaller planes. \return Data of the detected plane. */ @@ -881,29 +1041,34 @@ extern "C" { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - \brief Retrieves a measure texture from the ZED SDK. Use this to get an individual texture from the last grabbed frame with measurements in every pixel - - such as depth map, confidence map etc. - Measure textures are not human-viewable but don't lose accuracy, unlike image textures. - \param camera_id : id of the camera instance. - \param measure_ptr : pointer to the measure texture. + \brief Retrieves a measure texture from the ZED SDK. + + Use this to get an individual texture from the last grabbed frame with measurements in every pixel - such as depth map, confidence map etc. + \n Measure textures are not human-viewable but don't lose accuracy, unlike image textures. + \param camera_id : Id of the camera instance. + \param measure_ptr : Pointer to the measure texture. \param type : Measure type (depth, confidence, xyz, etc). See \ref SL_MEASURE. - \param mem : Whether the measure should be on CPU or GPU memory. See \ref SL_MEM. - \param width : width of the texture in pixel. - \param height : height of the texture in pixel. - \return "SUCCESS" if the retrieve succeeded. + \param mem : Whether the measure should be on CPU or GPU memory. See \ref SL_MEM. + \param width : Width of the texture in pixel. + \param height : Height of the texture in pixel. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the retrieve succeeded. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_PARAMETERS" if the view mode requires a module not enabled (VIEW::DEPTH with DEPTH_MODE::NONE for example). + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_RESOLUTION" if the resolution is higher than one provided by getCameraInformation().camera_configuration.resolution. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" if another error occurred. */ INTERFACE_API int sl_retrieve_measure(int camera_id, void* measure_ptr, enum SL_MEASURE type, enum SL_MEM mem, int width, int height); /** - \brief Retrieves an image texture from the ZED SDK in a human-viewable format. Image textures work for when you want the result to be visible, - such as the direct RGB image from the camera, or a greyscale image of the depth. However it will lose accuracy if used to show measurements - like depth or confidence, unlike measure textures. - \param camera_id : id of the camera instance. - \param image_ptr : pointer to the image texture. + \brief Retrieves an image texture from the ZED SDK in a human-viewable format. + + Image textures work for when you want the result to be visible, such as the direct RGB image from the camera, or a greyscale image of the depth. + However it will lose accuracy if used to show measurements like depth or confidence, unlike measure textures. + \param camera_id : Id of the camera instance. + \param image_ptr : Pointer to the image texture. \param type : Image type (left RGB, right depth map, etc). See \ref SL_VIEW. - \param mem : Whether the image should be on CPU or GPU memory (SL_MEM). - \param width : width of the texture in pixel. - \param height : height of the texture in pixel. - \return "SUCCESS" if the retrieve succeeded. + \param mem : Whether the image should be on CPU or GPU memory (\ref SL_MEM). + \param width : Width of the texture in pixel. + \param height : Height of the texture in pixel. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if the retrieve succeeded. */ INTERFACE_API int sl_retrieve_image(int camera_id, void* image_ptr, enum SL_VIEW type, enum SL_MEM mem, int width, int height); @@ -922,42 +1087,43 @@ extern "C" { /** \brief Creates a streaming pipeline. - \param camera_id : id of the camera instance. - \param codec : defines the codec used for streaming (see \ref SL_STREAMING_CODE). + \param camera_id : Id of the camera instance. + \param codec : defines the codec used for streaming (see \ref SL_STREAMING_CODEC). \param bitrate : defines the streaming bitrate in Kbits/s. - | STREAMING_CODEC | Resolution | FPS | bitrate (kbps) | - |------------------|--------------|-------|----------------| - | H264 | HD2K | 15 | 8500 | - | H264 | HD1080 | 30 | 12500 | - | H264 | HD720 | 60 | 7000 | - | H265 | HD2K | 15 | 7000 | - | H265 | HD1080 | 30 | 11000 | - | H265 | HD720 | 60 | 6000 | - - \note Available range : [1000 - 60000] - \param port : defines the port used for streaming. - \param gop_size : defines the gop size in number of frames. - \param adaptative_bitrate : enable/disable adaptive bitrate. - \param chunk_size : defines a single chunk size. - \param target_framrate : defines the target framerate for the streaming output. - \return An ERROR_CODE that defines if the stream was started. + \param port : Defines the port used for streaming. + \param gop_size : Defines the gop size in number of frames. + \param adaptative_bitrate : Enable/disable adaptive bitrate. + \param chunk_size : Defines a single chunk size. + \param target_framrate : Defines the target framerate for the streaming output. + \return An \ref SL_ERROR_CODE that defines if the stream was started. + \note Available range for bitrate: [1000 - 60000] + | STREAMING_CODEC | Resolution | FPS | bitrate (kbps) | + |------------------|--------------|-------|----------------| + | H264 | HD2K | 15 | 8500 | + | H264 | HD1080 | 30 | 12500 | + | H264 | HD720 | 60 | 7000 | + | H265 | HD2K | 15 | 7000 | + | H265 | HD1080 | 30 | 11000 | + | H265 | HD720 | 60 | 6000 | */ INTERFACE_API int sl_enable_streaming(int camera_id, enum SL_STREAMING_CODEC codec, unsigned int bitrate, unsigned short port, int gop_size, int adaptative_bitrate, int chunk_size, int target_framerate); /** - \brief Disables the streaming initiated by enable_streaming(). - \param camera_id : id of the camera instance. + \brief Disables the streaming initiated by \ref sl_enable_streaming(). + \param camera_id : Id of the camera instance. */ INTERFACE_API void sl_disable_streaming(int camera_id); /** - \brief Tells if the streaming is running (true) or still initializing (false). - \param camera_id : id of the camera instance. - \return True is the streaming is running, False if still initializing. + \brief Tells if the streaming is running. + \param camera_id : Id of the camera instance. + \return Is the streaming running successfully. */ INTERFACE_API int sl_is_streaming_enabled(int camera_id); /** - \brief Returns the streaming parameters used. Correspond to the structure send when the \ref sl_enable_streaming() function was called. + \brief Returns the \ref SL_StreamingParameters used. + + It corresponds to the structure given as argument to the \ref sl_enable_streaming() function. \return \ref SL_StreamingParameters containing the parameters used for streaming initialization. */ INTERFACE_API struct SL_StreamingParameters* sl_get_streaming_parameters(int camera_id); @@ -1016,151 +1182,170 @@ extern "C" { INTERFACE_API int sl_optimize_AI_model(enum SL_AI_MODELS model, int gpu_id); /** - \brief Initializes and starts the Deep Learning detection module. - \n The object detection module currently supports two types of detection : - - Multiple class of objects with the \ref DETECTION_MODEL::MULTI_CLASS_BOX, \ref DETECTION_MODEL::MULTI_CLASS_BOX_MEDIUM or \ref DETECTION_MODEL::MULTI_CLASS_BOX_ACCURATE. - The full list of detectable objects is available through \ref OBJECT_CLASS and \ref OBJECT_SUBCLASS. - - Human skeleton detection with the \ref DETECTION_MODEL::HUMAN_BODY_FAST,\ref DETECTION_MODEL::HUMAN_BODY_MEDIUM or \ref DETECTION_MODEL::HUMAN_BODY_ACCURATE. - This model only detects humans but also provides a full skeleton map for each person. + \brief Initializes and starts object detection module. + + The object detection module currently supports multiple class of objects with the \ref SL_OBJECT_DETECTION_MODEL "SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX" + or \ref SL_OBJECT_DETECTION_MODEL "SL_OBJECT_DETECTION_MODEL_MULTI_CLASS_BOX_ACCURATE". + \n The full list of detectable objects is available through \ref SL_OBJECT_CLASS and \ref SL_OBJECT_SUBCLASS. - Detected objects can be retrieved using the \ref retrieve_objects() function. - \param camera_id : id of the camera instance. - \param object_detection_parameters : structure containing all specific parameters for object detection (see \ref SL_ObjectDetectionParameters). - \return - - \ref ERROR_CODE::SUCCESS : if everything went fine.\n - - \ref ERROR_CODE::CORRUPTED_SDK_INSTALLATION : if the AI model is missing or corrupted. In this case, the SDK needs to be reinstalled.\n - - \ref ERROR_CODE::MODULE_NOT_COMPATIBLE_WITH_CAMERA : if the camera used does not have a IMU (ZED Camera). the IMU gives the gravity vector that helps in the 3D box localization.\n - - \ref ERROR_CODE::MOTION_SENSORS_REQUIRED : if the camera model is correct (ZED2/ZED2i) but the IMU is missing. It probably happens because InitParameters::disable_sensors was set to true.\n - - \ref ERROR_CODE::INVALID_FUNCTION_CALL : if one of the ObjectDetection parameter is not compatible with other modules parameters (For example, depth mode has been set to NONE).\n - - \ref ERROR_CODE::FAILURE : otherwise.\n + \note - This Deep Learning detection module is not available for \ref MODEL "MODEL::ZED" cameras (ZED first generation).. + \note - This feature uses AI to locate objects and requires a powerful GPU. A GPU with at least 3GB of memory is recommended. + + Detected objects can be retrieved using the \ref sl_retrieve_objects() function. + \param camera_id : Id of the camera instance. + \param object_detection_parameters : A structure containing all the specific parameters for the object detection. Default: a preset of \ref SL_ObjectDetectionParameters. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_CORRUPTED_SDK_INSTALLATION" if the AI model is missing or corrupted. In this case, the SDK needs to be reinstalled. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MODULE_NOT_COMPATIBLE_WITH_CAMERA" if the camera used does not have a IMU (\ref SL_MODEL "SL_MODEL_ZED"). + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MOTION_SENSORS_REQUIRED" if the camera model is correct (not \ref SL_MODEL "SL_MODEL_ZED") but the IMU is missing. It probably happens because \ref SL_InitParameters.sensors_required was set to false and that IMU has not been found. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_CALL" if one of the object_detection_parameters parameter is not compatible with other modules parameters (for example, depth_mode has been set to \ref SL_DEPTH_MODE "SL_DEPTH_MODE_NONE"). + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. + + \note The IMU gives the gravity vector that helps in the 3D box localization. */ INTERFACE_API int sl_enable_object_detection(int camera_id, struct SL_ObjectDetectionParameters* object_detection_parameters); /** - \brief Returns the object detection parameters used. Correspond to the structure send when the \ref enableObjectDetection() function was called. - \param camera_id : id of the camera instance. - \return \ref ObjectDetectionParameters containing the parameters used for object detection initialization. + \brief Returns the \ref SL_ObjectDetectionParameters used. + + It corresponds to the structure given as argument to the \ref sl_enable_object_detection() function. + \param camera_id : Id of the camera instance. + \return \ref SL_ObjectDetectionParameters containing the parameters used for object detection initialization. */ INTERFACE_API struct SL_ObjectDetectionParameters* sl_get_object_detection_parameters(int camera_id); /** \brief Pauses or resumes the object detection processes. - If the object detection has been enabled with \ref ObjectDetectionParameters::image_sync set to false (running asynchronously), this function will pause processing. + If the object detection has been enabled with \ref SL_ObjectDetectionParameters::image_sync set to false (running asynchronously), this function will pause processing. While in pause, calling this function with status = false will resume the object detection. The \ref retrieveObjects function will keep on returning the last objects detected while in pause. + \param camera_id : Id of the camera instance. \param status : If true, object detection is paused. If false, object detection is resumed. - \params instance_id . Id of the Object detection instance. Used when multiple instances of the OD module are enabled at the same time. + \param instance_id : Id of the instance to pause/resume. Used when multiple instances of the object detection module are enabled at the same time. */ INTERFACE_API void sl_pause_object_detection(int camera_id, bool status, unsigned int instance_id); /** \brief Disables the Object Detection process. The object detection module immediately stops and frees its memory allocations. - \param camera_id : id of the camera instance. - \params instance_id : Id of the Object detection instance. Used when multiple instances of the OD module are enabled at the same time. - \params force_disable_all_instances : Disable all the instances of the OD module currently enabled. + \param camera_id : Id of the camera instance. + \param instance_id : Id of the object detection instance. Used when multiple instances of the object detection module are enabled at the same time. + \param force_disable_all_instances : Should disable all instances of the object detection module or just instance_id. */ INTERFACE_API void sl_disable_object_detection(int camera_id, unsigned int instance_id, bool force_disable_all_instances); /** - \brief Initializes and starts the Deep Learning detection module. - - Human skeleton detection with the \ref DETECTION_MODEL::HUMAN_BODY_FAST,\ref DETECTION_MODEL::HUMAN_BODY_MEDIUM or \ref DETECTION_MODEL::HUMAN_BODY_ACCURATE. - This model only detects humans but also provides a full skeleton map for each person. + \brief Initializes and starts the Deep Learning Body Tracking module. + + The body tracking module currently supports multiple classes of human skeleton detection with the \ref SL_BODY_TRACKING_MODEL "SL_BODY_TRACKING_MODEL_HUMAN_BODY_FAST", + \ref SL_BODY_TRACKING_MODEL "SL_BODY_TRACKING_MODEL_HUMAN_BODY_MEDIUM" or \ref SL_BODY_TRACKING_MODEL "SL_BODY_TRACKING_MODEL_HUMAN_BODY_ACCURATE". + \n This model only detects humans but provides a full skeleton map for each person. - Detected objects can be retrieved using the \ref retrieve_bodies() function. - \param camera_id : id of the camera instance. - \param object_detection_parameters : structure containing all specific parameters for object detection (see \ref SL_BodyTrackingParameters). - \return - - \ref ERROR_CODE::SUCCESS : if everything went fine.\n - - \ref ERROR_CODE::CORRUPTED_SDK_INSTALLATION : if the AI model is missing or corrupted. In this case, the SDK needs to be reinstalled.\n - - \ref ERROR_CODE::MODULE_NOT_COMPATIBLE_WITH_CAMERA : if the camera used does not have a IMU (ZED Camera). the IMU gives the gravity vector that helps in the 3D box localization.\n - - \ref ERROR_CODE::MOTION_SENSORS_REQUIRED : if the camera model is correct (ZED2/ZED2i) but the IMU is missing. It probably happens because InitParameters::disable_sensors was set to true.\n - - \ref ERROR_CODE::INVALID_FUNCTION_CALL : if one of the ObjectDetection parameter is not compatible with other modules parameters (For example, depth mode has been set to NONE).\n - - \ref ERROR_CODE::FAILURE : otherwise.\n + \note - This Deep Learning detection module is not available for \ref MODEL "MODEL::ZED" cameras (ZED first generation).. + \note - This feature uses AI to locate objects and requires a powerful GPU. A GPU with at least 3GB of memory is recommended. + + Detected objects can be retrieved using the \ref sl_retrieve_bodies() function. + \param camera_id : Id of the camera instance. + \param body_tracking_parameters : A structure containing all the specific parameters for the body tracking. Default: a preset of \ref SL_BodyTrackingParameters. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_CORRUPTED_SDK_INSTALLATION" if the AI model is missing or corrupted. In this case, the SDK needs to be reinstalled. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MODULE_NOT_COMPATIBLE_WITH_CAMERA" if the camera used does not have a IMU (\ref SL_MODEL "SL_MODEL_ZED"). + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_MOTION_SENSORS_REQUIRED" if the camera model is correct (not \ref SL_MODEL "SL_MODEL_ZED") but the IMU is missing. It probably happens because \ref SL_InitParameters.sensors_required was set to false and that IMU has not been found. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_INVALID_FUNCTION_CALL" if one of the object_detection_parameters parameter is not compatible with other modules parameters (for example, depth_mode has been set to \ref SL_DEPTH_MODE "SL_DEPTH_MODE_NONE"). + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. + + \note The IMU gives the gravity vector that helps in the 3D box localization. */ INTERFACE_API int sl_enable_body_tracking(int camera_id, struct SL_BodyTrackingParameters* body_tracking_parameters); /** - \brief Returns the object detection parameters used. Correspond to the structure send when the \ref sl_enable_body_tracking() function was called. + \brief Returns the \ref SL_BodyTrackingParameters used. - \return \ref BodyTrackingParameters containing the parameters used for object detection initialization. + It corresponds to the structure given as argument to the \ref sl_enable_body_tracking() function. + \param camera_id : Id of the camera instance. + \return \ref SL_BodyTrackingParameters containing the parameters used for body tracking initialization. */ INTERFACE_API struct SL_BodyTrackingParameters* sl_get_body_tracking_parameters(int camera_id); /** \brief Pauses or resumes the body tracking processes. - If the body tracking has been enabled with \ref BodyTrackingParameters::image_sync set to false (running asynchronously), this function will pause processing. + If the body tracking has been enabled with \ref SL_BodyTrackingParameters::image_sync set to false (running asynchronously), this function will pause processing. While in pause, calling this function with status = false will resume the body tracking. - The \ref retrieveBodies function will keep on returning the last objects detected while in pause. + \note The \ref sl_retrieve_bodies function will keep on returning the last bodies detected while in pause. - \param status : If true, body tracking is paused. If false, object detection is resumed. - \params instance_id . Id of the body tracking instance. Used when multiple instances of the BT module are enabled at the same time. + \param camera_id : Id of the camera instance. + \param status : If true, body tracking is paused. If false, body tracking is resumed. + \param instance_id : Id of the instance to pause/resume. Used when multiple instances of the body tracking module are enabled at the same time. */ INTERFACE_API void sl_pause_body_tracking(int camera_id, bool status, unsigned int instance_id); /** \brief Disables the body tracking process. The body tracking module immediately stops and frees its memory allocations. - \param camera_id : id of the camera instance. - \params instance_id : Id of the Object detection instance. Used when multiple instances of the BT module are enabled at the same time. - \params force_disable_all_instances : Disable all the instances of the BT module currently enabled. + \param camera_id : Id of the camera instance. + \param instance_id : Id of the body tracking instance. Used when multiple instances of the body tracking module are enabled at the same time. + \param force_disable_all_instances : Should disable all instances of the tracking module module or just instance_id. */ INTERFACE_API void sl_disable_body_tracking(int camera_id, unsigned int instance_id, bool force_disable_all_instances); /** - \brief Generate a UUID like unique ID to help identify and track AI detections + \brief Generate a UUID like unique id to help identify and track AI detections. \param uuid : Unique ID generated. - \return : Size of the unique ID generated. + \return Size of the unique ID generated. */ INTERFACE_API int sl_generate_unique_id(char* uuid); /** \brief Feed the 3D Object tracking function with your own 2D bounding boxes from your own detection algorithm. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \param objects_in : 2D detections from custom detection algorithm. - \param nb_objects : number of custom objects (size of the object_in array). + \param nb_objects : Number of custom objects (size of the object_in array). \note The detection should be done on the current grabbed left image as the internal process will use all current available data to extract 3D informations and perform object tracking. - \return \ref SUCCESS if everything went fine, \ref ERROR_CODE::FAILURE otherwise + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_ingest_custom_box_objects(int camera_id, int nb_objects, struct SL_CustomBoxObjectData* objects_in); /** \brief Retrieve objects detected by the object detection module. - \param camera_id : id of the camera instance. + \param camera_id : Id of the camera instance. \param objects : The detected objects will be saved into this object. If the object already contains data from a previous detection, it will be updated, keeping a unique ID for the same person. \param object_detection_runtime_parameters : Object detection runtime settings, can be changed at each detection. In async mode, the parameters update is applied on the next iteration. - \return \ref SUCCESS if everything went fine, \ref ERROR_CODE::FAILURE otherwise + \param instance_id : Id of the object detection instance. Used when multiple instances of the object detection module are enabled at the same time. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_retrieve_objects(int camera_id, struct SL_ObjectDetectionRuntimeParameters* object_detection_runtime_parameters, struct SL_Objects* objects, unsigned int instance_id); /** - \brief Retrieve objects detected by the object detection module. + \brief Retrieve bodies detected by the body tracking module. \param camera_id : id of the camera instance. \param bodies : The detected bodies will be saved into this object. If the object already contains data from a previous detection, it will be updated, keeping a unique ID for the same person. \param body_tracking_runtime_parameters : Body Tracking runtime settings, can be changed at each detection. In async mode, the parameters update is applied on the next iteration. - \return \ref SUCCESS if everything went fine, \ref ERROR_CODE::FAILURE otherwise + \param instance_id : Id of the object detection instance. Used when multiple instances of the object detection module are enabled at the same time. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_retrieve_bodies(int camera_id, struct SL_BodyTrackingRuntimeParameters* body_tracking_runtime_parameters, struct SL_Bodies* bodies, unsigned int instance_id); /** \brief Updates the internal batch of detected objects. - \param camera_id : id of the camera instance. - \param [Out] : number of batches. - \return \ref SUCCESS if everything went fine, \ref ERROR_CODE::FAILURE otherwise + \param camera_id : Id of the camera instance. + \param nb_batches : [Out] Number of batches. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_update_objects_batch(int camera_id, int* nb_batches); /** - \brief Gets a batch of detected objects. Need to be called after update_objects_batch(). - \param camera_id : id of the camera instance. + \brief Gets a batch of detected objects. + \note Need to be called after \ref sl_update_objects_batch(). + \param camera_id : Id of the camera instance. \param objs_batch : Structure containing all the specific data of the object batch module - \return \ref SUCCESS if everything went fine, \ref ERROR_CODE::FAILURE otherwise + \param index : Desired index in the trajectories vector. + \return \ref SL_ERROR_CODE "SL_ERROR_CODE_SUCCESS" if everything went fine, \ref SL_ERROR_CODE "SL_ERROR_CODE_FAILURE" otherwise. */ INTERFACE_API int sl_get_objects_batch(int camera_id, int index, struct SL_ObjectsBatch* objs_batch); @@ -1225,6 +1410,35 @@ extern "C" { * */ INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_subscribe(struct SL_CameraIdentifier* uuid, struct SL_CommunicationParameters* params, struct SL_Vector3* pose_translation, struct SL_Quaternion* pose_rotation); + /** + * \brief Returns the current sl_VIEW_LEFT of the specified camera, the data is synchronized. + * \param mat: the CPU BGRA image of the requested camera. + * \param uuid: the requested camera identifier. + * \param width: the requested width of the output image, can be lower or equal (default) to the original image width. + * \param height: the requested height of the output image, can be lower or equal (default) to the original image height. + * \return \ref FUSION_ERROR_CODE "SUCCESS" if it goes as it should, otherwise it returns an FUSION_ERROR_CODE. + * \note Only the Left BGRA image is available. + */ + INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_image(void* mat, struct SL_CameraIdentifier* uuid, int width, int height); + + /** + * \brief Returns the current measure of the specified camera, the data is synchronized. + * \param mat: the CPU data of the requested camera. + * \param uuid: the requested camera identifier. + * \param measure: the requested measure type, by default DEPTH (F32_C1) + * \param width: the requested width of the output image, can be lower or equal (default) to the original image width. + * \param height: the requested height of the output image, can be lower or equal (default) to the original image height. + * \return \ref FUSION_ERROR_CODE "SUCCESS" if it goes as it should, otherwise it returns an FUSION_ERROR_CODE. + * \note Only MEASURE: DEPTH, XYZ, XYZRGBA, XYZBGRA, XYZARGB, XYZABGR, DEPTH_U16_MM are available. + */ + INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_retrieve_measure(void* mat, struct SL_CameraIdentifier* uuid, enum SL_MEASURE measure, int width, int height); + + /** + * \brief Remove the specified camera from data provider. + * \param uuid: The requested camera identifier. + * \return \ref SL_FUSION_ERROR_CODE "SUCCESS" if it goes as it should, otherwise it returns an SL_FUSION_ERROR_CODE. + */ + INTERFACE_API enum SL_FUSION_ERROR_CODE sl_fusion_unsubscribe(struct SL_CameraIdentifier* uuid); /* * \brief update the pose of the camera in the fusion coordinate space @@ -1398,408 +1612,411 @@ extern "C" { ////////////////////////////////////////////////////////////////// Mat /////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - /** - \brief Creates a Mat with the given resolution. - \param width : width of the new mat. - \param height : height of the new mat. - \param type : Data type and number of channels the Mat will hold (see \ref SL_MAT_TYPE). - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return Ptr of the Mat. + /** + \brief Creates a matrix with the given resolution. + \param width : Width of the new matrix. + \param height : Height of the new matrix. + \param type : Data type and number of channels the matrix will hold (see \ref SL_MAT_TYPE). + \param mem : Whether the matrix should be stored on CPU or GPU memory (\ref SL_MEM). + \return Pointer of the matrix. */ INTERFACE_API void* sl_mat_create_new(int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem); /** - \brief Creates an empty Mat with the given resolution. - \return Ptr of the Mat. + \brief Creates an empty matrix. + \return Pointer of the empty matrix. */ INTERFACE_API void* sl_mat_create_new_empty(); /** - \brief Tells if the Mat has been initialized. - \param ptr : Ptr to the Mat. - \return True if the Mat has been initialized. + \brief Returns whether the matrix is initialized or not. + \param ptr : Pointer of the matrix. + \return True if the matrix has been initialized. */ INTERFACE_API bool sl_mat_is_init(void* ptr); /** - \brief Frees the memory of the Mat. - \param ptr : Ptr to the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return True if the Mat has been initialized. + \brief Frees the memory of the matrix. + \param ptr : Pointer of the matrix to free. + \param mem : Specifies which memory you wish to free. Default: \ref SL_MEM_CPU */ INTERFACE_API void sl_mat_free(void* ptr, enum SL_MEM mem); /** - \brief Returns information about the Mat. - \param ptr : Ptr to the Mat. - \param buffer : buffer providing Mat information. + \brief Returns the information about the matrix into a string. + \param ptr : Pointer of the matrix to get information from. + \param buffer : Buffer providing matrix information. */ INTERFACE_API void sl_mat_get_infos(void* ptr, char* buffer); // GET values /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C1. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_uchar(void* ptr, int col, int row, unsigned char* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C2. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_uchar2(void* ptr, int col, int row, struct SL_Uchar2* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C3. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_uchar3(void* ptr, int col, int row, struct SL_Uchar3* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C4. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_uchar4(void* ptr, int col, int row, struct SL_Uchar4* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C1. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_float(void* ptr, int col, int row, float* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C2. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_float2(void* ptr, int col, int row, struct SL_Vector2* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C3. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_float3(void* ptr, int col, int row, struct SL_Vector3* value, enum SL_MEM mem); /** - \brief Returns the value of a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Returns the value of a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C4. + \param ptr : Pointer of the matrix. + \param col : Column of the point to get the value from. + \param row : Row of the point to get the value from. + \param value[Out] : Variable to store the value to get. + \param mem : Which memory should be read. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_get_value_float4(void* ptr, int col, int row, struct SL_Vector4* value, enum SL_MEM mem); // SET VALUE /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value : the value to be set. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C1. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_uchar(void* ptr, int col, int row, unsigned char value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C2. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_uchar2(void* ptr, int col, int row, struct SL_Uchar2 value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value [Out] : the value to get. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C3. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_uchar3(void* ptr, int col, int row, struct SL_Uchar3 value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value : the value to be set. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_U8_C4. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_uchar4(void* ptr, int col, int row, struct SL_Uchar4 value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value : the value to be set. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C1. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_float(void* ptr, int col, int row, float value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value : the value to be set. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C2. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_float2(void* ptr, int col, int row, struct SL_Vector2 value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value : the value to be set. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C3. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_float3(void* ptr, int col, int row, struct SL_Vector3 value, enum SL_MEM mem); /** - \brief Sets a value to a specific point in the matrix. - \param ptr : Ptr to the Mat. - \param col : specifies the column. - \param row : specifices the row. - \param value : the value to be set. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Sets a value to a specific point in the matrix of type \ref SL_MAT_TYPE_F32_C4. + \param ptr : Pointer of the matrix. + \param col : Column of the point to set the value. + \param row : Row of the point to set the value. + \param value : Value to be set. + \param mem : Which memory will be updated. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_value_float4(void* ptr, int col, int row, struct SL_Vector4 value, enum SL_MEM mem); //SET TO /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_U8_C1 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_uchar(void* ptr, unsigned char value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_U8_C2 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_uchar2(void* ptr, struct SL_Uchar2 value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_U8_C3 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_uchar3(void* ptr, struct SL_Uchar3 value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_U8_C4 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_uchar4(void* ptr, struct SL_Uchar4 value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_F32_C1 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_float(void* ptr, float value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_F32_C2 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_float2(void* ptr, struct SL_Vector2 value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_F32_C3 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_float3(void* ptr, struct SL_Vector3 value, enum SL_MEM mem); /** - \brief Fills the entire Mat with the given value. - \param ptr : Ptr to the Mat. - \param value : the value with which to fill the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Fills the matrix of type \ref SL_MAT_TYPE_F32_C4 with the given value. + \param ptr : Pointer of the matrix. + \param value : Value with which to fill the matrix. + \param mem : Which buffer to fill. + \return \ref SL_ERROR_CODE (as an integer) indicating if the get was successful, or why it wasn't. */ INTERFACE_API int sl_mat_set_to_float4(void* ptr, struct SL_Vector4 value, enum SL_MEM mem); /** \brief Copies data from the GPU to the CPU, if possible. - \param ptr : Ptr to the Mat. - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \param ptr : Pointer of the matrix. + \return \ref SL_ERROR_CODE_SUCCESS if everything went well, \ref SL_ERROR_CODE_FAILURE otherwise. */ INTERFACE_API int sl_mat_update_cpu_from_gpu(void* ptr); /** \brief Copies data from the CPU to the GPU, if possible. - \param ptr : Ptr to the Mat. - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \param ptr : Pointer of the matrix. + \return \ref SL_ERROR_CODE_SUCCESS if everything went well, \ref SL_ERROR_CODE_FAILURE otherwise. */ INTERFACE_API int sl_mat_update_gpu_from_cpu(void* ptr); /** - \brief Copies data from this Mat to another Mat (deep copy). - \param ptr : Ptr to the Source Mat. - \param ptr_dest : Ptr to the Destination Mat. - \param cpy_type : The To and From memory types (see \ref SL_COPY_TYPE). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Copies data from this matrix to another matrix (deep copy). + \param ptr : Pointer of the source matrix. + \param ptr_dest : Pointer of the destination matrix. + \param cpy_type : Specifies the memory that will be used for the copy (see \ref SL_COPY_TYPE). + \return \ref SL_ERROR_CODE_SUCCESS if everything went well, \ref SL_ERROR_CODE_FAILURE otherwise. */ INTERFACE_API int sl_mat_copy_to(void* ptr, void* ptr_dest, enum SL_COPY_TYPE cpy_type); /** - \brief Reads an image from a file. Supports .png and .jpeg. Only works if Mat has access to MEM_CPU. - \param ptr : Ptr to the Mat. - \param file_path : File path, including file name and extension. - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Reads an image from a file. + + Supports .png and .jpeg. Only works if matrix has access to \ref SL_MEM_CPU. + \param ptr : Pointer of the matrix. + \param file_path : Path of the file to read from (including the name and extension). + \return \ref SL_ERROR_CODE_SUCCESS if everything went well, \ref SL_ERROR_CODE_FAILURE otherwise. */ INTERFACE_API int sl_mat_read(void* ptr, const char* file_path); /** \brief Writes the Mat into a file as an image. Only works if Mat has access to MEM_CPU. - \param ptr : Ptr to the Mat. - \param file_path : File path, including file name and extension. - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \param ptr : Pointer of the matrix. + \param file_path : Path of the file to write (including the name and extension). + \return \ref SL_ERROR_CODE_SUCCESS if everything went well, \ref SL_ERROR_CODE_FAILURE otherwise. */ INTERFACE_API int sl_mat_write(void* ptr, const char* file_path); /** - \brief Gets the Width of the matrix. - \param ptr : Ptr to the Mat. - \return The width of the matrix. + \brief Returns the width of the matrix. + \param ptr : Pointer of the matrix. + \return Width of the matrix in pixels. */ INTERFACE_API int sl_mat_get_width(void* ptr); /** - \brief Gets the Height of the matrix. - \param ptr : Ptr to the Mat. - \return The height of the matrix. + \brief Returns the height of the matrix. + \param ptr : Pointer of the matrix. + \return Height of the matrix in pixels. */ INTERFACE_API int sl_mat_get_height(void* ptr); /** - \brief Gets the number of channels stored in each pixel. - \param ptr : Ptr to the Mat. - \return Number of values/channels. + \brief Returns the number of values stored in one pixel. + \param ptr : Pointer of the matrix. + \return Number of values in a pixel. */ INTERFACE_API int sl_mat_get_channels(void* ptr); /** \brief Gets the type of memory (CPU and/or GPU). - \param ptr : Ptr to the Mat. - \return The memory type (SL_MEM). + \param ptr : Pointer of the matrix. + \return Type of allocated memory (\ref SL_MEM). */ INTERFACE_API int sl_mat_get_memory_type(void* ptr); /** - \brief Gets the type of data (Mat_Type). - \param ptr : Ptr to the Mat. - \return The memory type (SL_MAT_TYPE). + \brief Returns the format of the matrix. + \param ptr : Pointer of the matrix. + \return The memory type (\ref SL_MAT_TYPE). */ INTERFACE_API int sl_mat_get_data_type(void* ptr); /** - \brief Gets the size in bytes of one pixel. - \param ptr : Ptr to the Mat. - \return The size in bytes of one pixel. + \brief Returns the size of one pixel in bytes. + \param ptr : Pointer of the matrix. + \return Size of a pixel in bytes. */ INTERFACE_API int sl_mat_get_pixel_bytes(void* ptr); /** - \brief Gets the memory 'step' in number/length of elements - how many values make up each row of pixels. - \param ptr : Ptr to the Mat. - \return The Step length. + \brief Returns the memory step in number of elements (size in one pixel row). + \param ptr : Pointer of the matrix. + \param mem : Specifies whether you want \ref SL_MEM_CPU or \ref SL_MEM_GPU step. + \return The step in number of elements. */ INTERFACE_API int sl_mat_get_step(void* ptr, enum SL_MEM mem); /** - \brief Gets the memory 'step' in bytes - how many bytes make up each row of pixels. - \param ptr : Ptr to the Mat. - \return The Step length in bytes. + \brief Returns the memory step in bytes (size of one pixel row). + \param ptr : Pointer of the matrix. + \param mem : Specifies whether you want \ref SL_MEM_CPU or \ref SL_MEM_GPU step. + \return The step in bytes of the specified memory. */ INTERFACE_API int sl_mat_get_step_bytes(void* ptr, enum SL_MEM mem); /** - \brief Gets the size of each row in bytes. - \param ptr : Ptr to the Mat. - \return The size of each row in bytes. + \brief Returns the size of a row in bytes. + \param ptr : Pointer of the matrix. + \return Size of a row in bytes. */ INTERFACE_API int sl_mat_get_width_bytes(void* ptr); /** - \brief Returns whether the Mat is the owner of the memory it's accessing. - \return True if the Mat is the owner of the memory it's accessing. + \brief Returns whether the matrix is the owner of the memory it accesses. + \return true if the matrix is owning its memory, else false. */ INTERFACE_API bool sl_mat_is_memory_owner(void* ptr); /** - \brief Returns the resolution of the image that this Mat holds. - \param ptr : Ptr to the Mat. - \return The resolution of the mat. + \brief Returns the resolution (width and height) of the matrix. + \param ptr : Pointer of the matrix. + \return \ref SL_Resolution of the matrix in pixels. */ INTERFACE_API struct SL_Resolution sl_mat_get_resolution(void* ptr); /** - \brief Allocates memory for the Mat. - \param ptr : Ptr to the Mat. - \param width : Width of the image/matrix in pixels. - \param height : Height of the image/matrix in pixels. - \param type : Data type and number of channels the Mat will hold (see \ref SL_MAT_TYPE). - \param mem : Whether Mat should exist on CPU or GPU memory ( \ref SL_MEM). + \brief Allocates memory for the matrix. + \param ptr : Pointer of the matrix. + \param width : Width of the matrix in pixels. + \param height : Height of the matrix in pixels. + \param type : Type of the matrix (\ref SL_MAT_TYPE_F32_C1, \ref SL_MAT_TYPE_U8_C4, etc.). + \param mem : Where the buffer will be stored. */ INTERFACE_API void sl_mat_alloc(void* ptr, int width, int height, enum SL_MAT_TYPE type, enum SL_MEM mem); /** - \brief Copies data from another Mat into this one(deep copy). - \param ptr : Ptr to the Mat. - \param ptr_srouce : Source Mat from which to copy. - \param copy_type : The To and From memory types (SL_COPY_TYPE). - \param mem : Whether Mat should exist on CPU or GPU memory (SL_MEM). - \return ERROR_CODE::SUCCESS if everything went well, ERROR_CODE::FAILURE otherwise. + \brief Copies data from another matrix into this one (deep copy). + \param ptr : Pointer of the matrix. + \param ptr_source : Source matrix from which to copy. + \param copy_type : Specifies the memory that will be used for the copy (see \ref SL_COPY_TYPE). + \param mem : Where the buffer will be stored. + \return \ref SL_ERROR_CODE_SUCCESS if everything went well, \ref SL_ERROR_CODE_FAILURE otherwise. */ INTERFACE_API int sl_mat_set_from(void* ptr, void* ptr_source, enum SL_COPY_TYPE copy_type); /** - \brief Gets a pointer to the Mat. - \param ptr : Ptr to the Mat. - \param mem : Whether Mat should exist on CPU or GPU memory ( \ref SL_MEM). - \return A pointer to the Mat. + \brief Gets a pointer to the matrix. + \param ptr : Pointer of the matrix. + \param mem : Whether the matrix should exist on CPU or GPU memory (\ref SL_MEM). + \return A pointer to the matrix. */ INTERFACE_API int* sl_mat_get_ptr(void* ptr, enum SL_MEM mem); /** - \brief Duplicates a Mat by copying all its data into a new one (deep copy). - \param ptr : Ptr to the Mat. - \param ptr_srouce : Source Mat from which to copy. + \brief Duplicates a matrix by copying all its data into a new one (deep copy). + \param ptr : Pointer of the matrix. + \param ptr_source : Source matrix from which to copy. */ INTERFACE_API int sl_mat_clone(void* ptr, void* ptr_source); /** - \brief Swaps the content of the provided Mat (only swaps the pointers, no data copy). - \param ptr1 : Ptr to the first Mat. - \param ptr2 : Ptr to the second Mat. + \brief Swaps the content of the provided matrix (only swaps the pointers, no data copy). + \param ptr1 : Pointer of the first matrix to swap. + \param ptr2 : Pointer of the second matrix to swap. */ INTERFACE_API void sl_mat_swap(void* ptr_1, void* ptr_2); diff --git a/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/lib/sl_zed_c.lib b/Plugins/Stereolabs/Source/ThirdParty/sl_zed_c/lib/sl_zed_c.lib index 6cc2302900b0e9eb43080b80684efd9ceb0d61fd..f6ef34dfd5590b1af61389a900c0a18a3db96d28 100644 GIT binary patch delta 7514 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

nb#{9@72Xl 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 literal 2001046 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