From a496aa3c9af21edaf1b1d9768320d5d8b020ca53 Mon Sep 17 00:00:00 2001 From: ServiAmirPM <131249114+ServiAmirPM@users.noreply.github.com> Date: Tue, 12 Nov 2024 14:15:48 +0200 Subject: [PATCH 01/10] Updated readme file with better design, less text Still requires more modeifications (results, features, tutorials) --- README.md | 141 +++++++++++++++++++++---------- docsrc/images/Classification.png | Bin 0 -> 39642 bytes docsrc/images/ObjDet.png | Bin 0 -> 51804 bytes docsrc/images/PoseEst.png | Bin 0 -> 73996 bytes docsrc/images/SemSeg.png | Bin 0 -> 77214 bytes docsrc/images/colab-badge.svg | 1 + docsrc/images/mctFlow.png | Bin 0 -> 187647 bytes 7 files changed, 98 insertions(+), 44 deletions(-) create mode 100644 docsrc/images/Classification.png create mode 100644 docsrc/images/ObjDet.png create mode 100644 docsrc/images/PoseEst.png create mode 100644 docsrc/images/SemSeg.png create mode 100644 docsrc/images/colab-badge.svg create mode 100644 docsrc/images/mctFlow.png diff --git a/README.md b/README.md index 8c3479381..b9b0dd78f 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,104 @@ -# Model Compression Toolkit (MCT) - -Model Compression Toolkit (MCT) is an open-source project for neural network model optimization under efficient, constrained hardware. +
+ Getting Started • + Tutorials • + High level features and techniques • + Resources • + Community • + License +
+ +
+
+
+
+
-MCT is developed by researchers and engineers working at Sony Semiconductor Israel.
+## Getting Started
+### Quick Installation
+Pip install the model compression toolkit package in a Python>=3.9 environment with PyTorch>=2.1 or Tensorflow>=2.12.
+```
+pip install model-compression-toolkit
+```
+For installing the nightly version or installing from source, refer to the [installation guide](https://github.com/sony/model_optimization/blob/main/INSTALLATION.md).
+**Important note**: In order to use MCT, you’ll need to provide a floating point .pt or .keras model as an input.
-## Table of Contents
+### Tutorials and Examples
-- [Getting Started](https://github.com/sony/model_optimization?tab=readme-ov-file#getting-started)
-- [Supported features](https://github.com/sony/model_optimization?tab=readme-ov-file#supported-features)
-- [Results](https://github.com/sony/model_optimization?tab=readme-ov-file#results)
-- [Troubleshooting](https://github.com/sony/model_optimization?tab=readme-ov-file#trouble-shooting)
-- [Contributions](https://github.com/sony/model_optimization?tab=readme-ov-file#contributions)
-- [License](https://github.com/sony/model_optimization?tab=readme-ov-file#license)
+Our [tutorials](https://github.com/sony/model_optimization/blob/main/tutorials/README.md) section will walk you through the basics of deploying your first model; Covering various compression techniques for both Keras and PyTorch models.
+Access interactive notebooks for hands-on learning with popular models/tasks or move on to [Resources](#resources) section.
+### Supported Quantization flows
+MCT supports various quantization flows as appears below.
+
-## Getting Started
+ Quantization Method | Complexity | Computational Cost | Tutorial
+-------------------- | -----------|--------------------|---------
+PTQ (Post Training Quantization) | Low | Low (~1-10 CPU minutes) |
+GPTQ (parameters fine-tuning using gradients) | Moderate | Moderate (~2-3 GPU hours) |
+QAT (Quantization Aware Training) | High | High (~12-36 GPU hours) |
-This section provides an installation and a quick starting guide.
+
-For installing the nightly version or installing from source, refer to the [installation guide](https://github.com/sony/model_optimization/blob/main/INSTALLATION.md).
+
+
p2a56&!hKJ$?74<-EMT?WTSP!$X{{Y(-jI&!@zG zX5SH0G5^~QW%DCl`xW^i_DC4Wi}~iSZl01&*T^OV!KL?G#=f;3**%}^#QVLYoduUR z^*`cX@U?on0k{8}XqTA=*9II7C0dR3JR+hE3>VaIj)C*eiz5TclXKRTL6>{%91Ni? z-2`|)pA>_QJ{2I=)4|@mEcY{Q)$T4fN9f4j&k2MLrpDBOK_jc1xc66w{2U1~>Q=|T z>m6^-Z_h=Vel`E@*bSR)>JmEa?K>}IRo>qvdRkPiuBuJDF=Pt9IEse*T75s=Quqz$ zsf6PZl=x5@j|gqtSKk!`|IYLpa@+yybNsgvokH~h7R~2r^_F>gdFACk$;YeQGBQ@N zW*A28=jXTp)lR=7USOw>mMLT1*Izuy6})`|5x8A-i*T-Z>%oS6)*dxqkBQYG)Bj8g zNNw@y9{^GPpZ5SRK|GV?VT>16u*Ol% |CrJ-c zk?O?GpjsS-x1W&+4Zlx>tvkq6G7MZK62M *U#N;M(~B5q;VP{6H0ROJ?7!F?IeJtx| }^2Lg?C}Q{va>vgR5IxH)H#io6-94M%a>x*e6c)fANX5F%Za?FIJlkiNmdi z)TY28+|@em&dv}+lsade!WDeE_NppX3IAi>^$y>32C1OE9_mvV4(y$(N)^E%ZX5SJ zgl-uiRvk8`qwy;d8B2YybTR-TE_aCR208?MKXC`XWNUmU`%$UkXuY%j@@UOC=n76j z?4}!(&($#CVj$PnXK1D|Z~1SEZZ%z96Cdu=lYiH=I+u5M{|w34juwpXjoXZK!U1;p zq@to@?v=t|;-As@{7U$&DX-iY05PUc+W)ZY0~%W`c5QyQS!I8X;ZsH$Ug?5?+}>Pe zGCr-a>XXs}#_Mc1qm&6`w^evwK%IhF9<7MqNz&UCW2R2)EbGPqp}hWMn iZQ#RQ3~#c#pNj-b{Ywv zssg`N$BsBTb|;_AA<|nwBoB#hOf|1Swt#W{d}(W2Ot^@C>2O5zq=d%xn!C(>>Ud0= z$sx0@jHqvCaM?F?Uyt9J%^yF?%RW`NQr!QFpOQ|k%NO12)_L<(o?)sZ0y ^1P|3N$B=`Ou#o~ zFdB=N7B- *^|xvdzSS#Po_t7z4yNpQD`ju?dud+R{l9#?}W;Hd8E){c^8vcdXT zz``(2{eN={&chW 7%Br%3|l4UHF6KU;aNErxu{an`A zJN*u)Q5&lCIrbO3Iv3ExSv}x(;234!&2Z8c%#6{+rGt14;i^*IV8Z@-?_8D!mTzUr zE70{0wQML5tP^dX@U{#hu(>v!g2$ZYOlF6R^vPw<6*gsYob`c;!W>@=$WiT2es(o| zxb<53;$7LT?HXGWFfE5Q!c|#7`hwafFgq*byO?>~-o4cOt66Y`D^A8=&05Jf*H%$B zm*U~2-B7JqOGRsoEuNkRotuE^Iu#;-%UPEzSMHz|ofIikZZ8+q9|0nVJ0wQ35R~_VRil*WC4VepOfFv3qD02qpnOVK? zinh)UTvT+I4?0ePe{$_d!%)!=RlXWl-F{V@c>ApnfkmXe9+4qdG|)H7n*5q&uHsF4 zWDL;~!Cyhk`}rN1t)RLs9xfi(`Q~_boj-N(ZKJ$41~oN^YvJGSCH;n5+sfTg7A10_ zHFL7ktYTDaQrfv>qX6Awng@7~zwr9I6}y& |;#Hplv~^@aA_T$>+@K`*Mr?z6<)%xz)@-j0B&E~f;`RGe!NZ4XqMm7h zWo#K1_OU6+kgdcFK6a!2*4Ius#z;2j)%EgQyB{#m*)QJq_qw>xnBA5etUIO_b#%&- z1Yv=5>|DnS8Zq<%C2sWDNz=GhXkl;^$$4=;^S1Gjc|C{hmh1fut7}FHgX@EJ^Vnlo zt580kp1< UO^!Hu}?M0!f`op0$QQ0gJ<5rMaTz}9Ra<^Z3 z{h89 - SD~aetw`9$$JBWt~TU|9HLW{9@{NjX=+Q zF%^LUqik4WcN?$n9~&fCKgogWrl7s>`FbmvS6fkJ)RwNX0KXji52t w^E6AOElA4J?3w zM()}CPzP-_k3jm}=pkOMR+j;a!olser7Ox+NU{XHD&@-T=4j x%r9`++ zHdmK0=&L7WL$(;I)fi*kOYsG>>NWx;z9yiQ@G#G?<}#XyrOz)6T>r}+Ik##t0E`fa zWovQ>0Mn0l5*5ru?XiZTYftTqseJ>AfG&Bz^N2CISfM@zQWxxO(r2qi2Fg^7BnWhC z$J&U1@)V-CbC??zSsIR0V<5Ozi`I!)cU*|Y_HGJe*a#+Um0Z23ux| g7aLfzfF`0!ci6Wd5VId9}%eMX-nVQ?*HuSM5r c*Z+4tXrc*{Y3j%H2$ zpC_mBM4|X>C+Uet(c%9Q_7cs~WLYk0MqC@%q0A*5g2U_RpI;zIy1w%Q>jKnYmM T13@LlUlF|7lw zqPKZH2ZMHNck`+?oj{LUqvlmlxCe{1sr6#6xaPrVSjo#-FNjkZJ*3!h(PfBT=1J7! z=SvhIv<1wWLa{jQ?3*k *+UHT&9yoIg`u^F?-66rH6bxbH+pRL}*p)C?@ y8;4jp~X>VZ9$by&+xN_2Q zR#tEgrL?53=2PZAcGQ@Qxi5~Pg6qTut7>cKnFZ4octC}oG5Yq5%_I1An2W7H5qD}E z;pleSrn$8yZJJhEi_TpG%OJ^|Wn6s4PXn9kM}(r|w{S+6f{E%-Oha{H3{nirj5cdo z$2y#LY)AIXZBd4oa@6$$_nKW6`W^8-0Y9TaKeUzh)ShWxI93)?HesR4UZG$tgd>+^ zf5>&-anN-a1-q5gP_aY={h0NkL!*EFL`;Fj`u3H^*gBPp>g7#zL}Y}5O7fy1?_#Y* zwLmHzyyO#GeMYs{=-60#&|`D$(0vAmE+hwt*3V^rn_kT9V=cSf8@3tKQ7CQ*ZTsEi ze_{zl`=k@=5mgeilzSt-k 0v@`y4YJLGjzFKFl?Qu-tN(pn?s)h`WtD{#wvT`C{ z>_DSuTdzK6$by2}*O1tkX<8{-B +m&$zjHQ<7d)n`=;8a5 @|R)XZR%3 zil}EN43mM*)`?^u8W`+l)$ZPitv?UGyPUZpaZp&0eDnOnFwlRUZLU$@n>s?%d5p z7T;Y20~S6bRDkOshArtd?^Ucsh9eSRR#7_1Giu8?P>TMr#3ka?V!QpBmw2?1HBppR z+#3wjQ+!aO7ETU)X6f-0GfKw7VCx&1_I#;efqVC(nY!Voq{laGL^skykI+)slC*UC z?z7xim&EBQWE5;maxVlNDOES$t?4QCGE}PSAke@i>xL-DbDizo$sX;#YodT3(>tjA zGIY)XgCE`>HV&J0^!4vrdQXUWA>+D(` 7_1nvHkLX?vMjcKK|w!mH8^-KMzH1y*EtcL xq-2acqsgmT zJwqD1jI&W#N}y!R6q!r-?!$Y-(akXp2tJaV=}P>)%Hor_48B@0*6VQ2#+L^yS$6qM zE2LPo*+kdsGP_g;5wg{O!mSINT5WybUi)~i0c_nYu^#XNnkL}M2lDDf?7I|1J1PX* zqRWXIUT=gxWu5rP=v%nr5p3wVqGI6@Kpp4pn-13$_mMe3ccceI0J{W@=h2Ie9f_xg z*omDa%41``2#trK8bcFcyLBY5)fYWcx1YSos{Wo%z6<9du)dp$t!yBMaA7AlsI^g6 zR+yl%7htgt&L6Rb_O@wESlNSy#J50bS04`+gzHUP)!~P;CZA ^m=7$R9%S|urz^R)vg^} z)@)^m5xr5++M>|Mz}wA8qRS&Y?p`Rc$1>LVb+Mc8)m0OT@ezDRf!iP~snsmvCCnyB zhhvG$u#aLvTxT{eFyX`}RA7jJ;3%g0G!9PSY+Q$nUB3r@_6$pLzkgGmh9KWy-imL0 zi;KI=C7N`+eIuk398PMs#nII5R8~@N5!J!4-ih^WO7#aD^f;)g8W;MP0b|K^t*!OP zO~k%JE2@t|TgZ`FmnJ?r(=V?`O~-$Y;?XGw@5?c)liBeV#8@@is>xPcRyaAiWz`#Q z^1zpMyA7=QDPci*>CGYh{cj=gFWa3u*%TLaTd#iHY|Ek%v~AY-9-tAj>*VyJ$nE!D zB?+Y+^M!$H6;0iTlK?@dc$b!8q#D9*UZM?g-+ Rglk?Xr3N2GZi9~=Q(I1Z6&H=-;{PO8WDtI7s6b4Xw#I|Oz?d* z3V+NMK=>Pp4Lp5cOdHe3vj~2UYBS#G)-y7yc>i9I+L8-^#MjRyX0lb&aR3a_mOXpo zY^@(1zRqJ|cV=KPxB~;jxA|1!klI6nu(JL1r>4WEoMQO6oen}?tQG=Y%>Fo-*-&<5 zjk0bXjrS?_uJz6H%g^yB@kei4*t(SV^4nF2Rw^pKEH2E+G7s>8iR%lLXwd1T=N+$B zQCL1aZag81T~?ZutoGRqxUfWrmWe-KqVd_h*leMGv>6Vc^X0tlwX)y A4VUEMjdN0<;viQ<(FLuYqb6;NlRau+H-+=`m810w0 $ffjAiS~%?p(aLq!9>0tsPBX~ zg5R!yMYJe|SKIWSve(X4Tk6UnSdzSDTgBv?oH$6*YZ&0aw}y#U&XxLx-QaV_#iZo# zjss{qGF1F#Fq>b~=4s{rlUK^%lmYhic>TGK+H#E%)7UAS_`*YpS75oM`{w8SCZ`2% zWSuP%f`i@Qa2b|Hj*s1n-Qw^qJPqgT5QZ71dD%DlYCd^hd1_1y#f-)67a5Bz%XuCL z_^oGAYgJF>o9UUPA9&Q5k7LYH^U0% zOZYVV%$hJ92g@VZZ#srlH6g#+J|5kkEGT}yuR^_+uhd8k!w{?NZ~RMvXE_WMd&F=Z zq4>4GU&S^)=u1DGDgYsH3X3yZ{Y<8nKjXQqGJpGsd^`q)txXkc%%TsP(ntXo1AJoR zg-$U`wZq7;l@x*#wfX?=3~}bR<_IffRCiZSq8~xgFeR`i2IpgYhDfY| >t9Y1O%YKZIe8RrpjsK&i{5%q3EP9@|m8>!;-&s3w9(-Ebm| zzrv@t4w}U+vNv}P_XVNx#1J}JZt>zzj{f?+tI_>=rV^+1kNb0^d3;J>kTSz0q_3*s zFOg7eQTIDatBApT6)?|vpZZ-;#CHNv&RqQ|au&%w{n!7NFw32LqTS~_*Xa^GzARk{ zGJ->DGCrE(eYPK3OScv+lJ=t(CY95i*axkhGSk=i3mn82FRW-6uBU{l6 bx9rgk}>?gs(+a6nt=;Z1k(GfHDgICa)Tn zRCSBBK-6`V#&;Cv*Z7S)RhsJPRQZiZb6@&oe0_+>x)GYcLtm7e-~DD9t!iB8q}?!~ zz{PtPM~HQy9cxD6Ku7Gd5SFGNWk%+5_S!ObBZ{!qX&T(-RAo5jZ-9l54Fwo9C;@<1 z{Z%0{lI^Z@;O;XFV+Wl+3RKZ~%8w7xeVI*^PEMt^3tvpX9epJR*EM+WY6U*t?jF5A zqJn=(qJB{Z?lyn^Y9i6;r|5F%LXrkz!WE)d+Gs@Jn^x)0s%TW5QvE2pu!kH cu|nC8&z;;qXGxOhfdNb3)7eGhEBpKv*MvBZLQjbpzC>iRkF|CYaN2%=j|o& zW@iSRqq@cQ@`84RQQR5l%q7e^scflNAtYgi;MS__I1guew>PbK!8Ijue1hsOc#?ke z1m91o`pDV7ShfWtT78Zd-(V5}oMcEPW0ns4Hq}k5b)x4yP(?D{ idx!JoO=iLQ$5w$!Hz J0 zf~FI*3-BfMgLaUCKzhW`dfJAGTlV)mvF~Pvcx6kq@`o{q5EgLoWVV}BkVd=P`sHio zx0IMGzl3~WHM)6Qn(HW`^ii-)=g!Ze(MDw=`HG?@p&Bh$g-CpAVb!~<6Zf97BVx;3 z%7;%#GuDFD*eEsm?Cag`eNH|^T5rcdzhP@yd!&0-*`2%XW;YcW=2c2Anz8S3z(D}$ z_#PM1uKrf5mT%s>oV~tye)qcJxH|APs263OIw@_~VpX`1Ej|~s&+sVys!zYA>tlIj z_jClUaRH9{^GngNp!#1(Uz*{&UAKXY56#*dh^?#@Fc$9ScKWMKxN>GS3qIz#*OmF6 zN+2bWJ|Ptf+DHay#S$Vpz@Y0xM;ZB%2!>}uQYGL#9B373#-7d|RU$WRv1ul&zFY#< zWJAIRj1^blX$V!Bk@UAv;xU}As^$)Dzzxe@=6ghxncijh@PB!;aE(|7Nizm)hU3?9 zg@wh0` 3D zj82pUza0?0x4hJW$Lbv^`p9K)ivPHvZ9 lk2;zHfmG1tG{RZ}Yaa0J{>3H=3R|4RCCQOiqjY=aq2bno_Oyol z6g+h0rYtfrHf_-->zFk~w2H|XxWV+h^{T0|L+cu1ZS|%rV@X8aE>hK3A1k=a|6#D& zU>@t+$Sau`( _q^J-t>i53g)HulDP+C^!6R20-Y;SqELM z;?ei%IJ$M>QU;)@sp+>{GmERngjLUY=nb4ovZH{x=Kf){n~GMRj22XCUTlEH>Ed%h zqE`d4J6dgRdN)D4(qz|s`16atm>HysbE*Dd7F@#+bhXbK8H=A9Nyxx8KuB9ksOXUx zbno=msdwM-@E3v<{j5{D9!*@(F2FTfHhFAwyLZl_qE+f`uyH78hj*0Qbsrb6fjRV` zuH6=KcXiErgk{!N?7L{HR>M9$J ^63~KYUPwsG8o)tfN#~3X}GeAIyy1Pu(BR&seH!s~W6m00#Ed zVvhkdq5W!JfBm~zft|kYIHB0}e<#2^xOp8l?}ELc#*>i(^n%t!o3*l4o3s;sW^I|8 z+r6ZTi^O|@x|nzoJkTbkTx3 sBc}yC6?cZcIDWDnZDHfs{;$I5i@Gnx8PPAOPGPssZj})@x$LLPFU76g znP6p*kJa*9AD~hLq{;zr)=9x8$oP4&w}QS;goGHP1CQ(Q#BQQ)NR2f(E=ePhtZ95Z zJW8TMZ!MEX%ZWPh+jru%uRIT8pdBGEvFP5;`02R{-0S`K(e9qqE&x$GBi>@^7dgzM z+{&2B=k2dZd~>{QjkC$@42$#U3HeWjdE{B|?B5vGqncpp{@%_swoKi4dc5g)WZz`M zFqTy}MA@IKFMc>qGW9xTjy3C3kus_ZiOltzr2)rbUyK}!V2lmY1WZ`f?*2WXFZjx! zfko!>0u-3nhg?00fnXWBl5S^$8hqR5n8u^D4rXD6?^s^>b8_Y`H`^ymFLXIC@dH`n zJG_^ CI_Y;6Zt%_$mSE=9?)nvbKEU{-cz$>?d?J{hcem*u zf1AFK5Y9g$z-*TC#I(K<9SWrTaic$hVe&xOU@872p-`V%yP;ZkI%<~t&tWN>Lvttu z4pj^K4C^)|rdgJ4DwFRyTSX)pzp|5o>?3+5kcz)7fI7sQBYyD+Tgff(&2OQWOM%%+ zuW%pPeTU|*)X|Yl_K|Ez1j5dESKrP!8;OB+CR#eXs-F{9L*kG7WP=;7K#Fi6ckSYz ztF$9v507MrR!WD3MS0(9wKY~knpQ>=`)3293tYBZWR_b0a8dk(zgO7zK`hI$MKFm~ zIU(f}83+8)_RWpmu`lXDjbrN5*)ZclGqL!l2j;t8ar&TThuiwj P) zFq`~*DOm(69+8hWA@g|wqS>xr!OUIC9qy%Jnz$I*e&GKx1d8AzEE;#cC MZbfc3MAt&c^;E22_-A^s6Icd14n`QUf3mKpeuHD@k
-#>Nb4!wYs5WtIMct_GehfKPtF^*?zs<+2sw^*;lvk zigruf%&~xZ=J`u1*FLZ1)g^;fAQxEG4IRY{Sm+l-Y=KDTcj-ce=7J1MCi(UG$MJkI zZ7e~KD8mmuk{&^Qu+qt+UnA+ikuk<1+dyNIz@pu}c9BeI_lN5h`=CNUc`CE^$qwU= zn?2?!=`-V3AwOQ+b vt{GN5u=OG($`xeq7u24s#x$OHm2- xfaaxm|#RhwbrDI}{( zg9Y$ONuYVj{+YieZ2#d;zWXJi@K4A1Xm5_#BCK<|8}*Q8+~El$?71zN0*8o?Zlo{p z{nufdARVvR7-@&Z#Lb)p0LNlHa`m;3J5QunV4j~54m=6kEmx+EUj@FN%CBn+K+sw! z78NqGp04Uc7rH#evrRWb5MYbCW=TJnC19A;!|A|X1m3=ldO~Au8o=WLb3v|wcL&HZ z?&bgJRv7xGSERjgO!JEr6faq^QDYk;bX9?&X+-?pVQ=h&K|#jK1ryrT3FVzgI^k zip%q tJ~W_9&W+X_iZts`tTEizC^VL266wgXb?#Y5p`PNgj)Td3wAj zBhA?f_f!lR^eOkExswy_;(MNtQ_ViEOxvLK>LmZB!@A@2e$X8yw2@G<9lfz%Y?Iqd zjX;o`;@?{CsgMFn+c~gtvBj&rKc<-;mXJI&cq(%-`ORbVIB;g{C+dBVC_KME=@Ix> znf-vcTDtxmt~o8ZB|%<`o^9dv>7T5NPtrx!WbiJ6$H8^EL9SlmSpN~T8}ERmLtVj9 z3Vzyg|5?dF7P0ijdl&xl8D=-u0q4*Ths^CKhHV^t*JwSZ1lB*M65TTC)`8aRy>cm5 zuLhjUQ8jaXvqqKifVOtZJki(4 u{lR+r4*&B!~H=j0fI_QY2acQr5V zCo`-EVpft(N~xJCeD#g%%odthlb;brO$XD;*LIf9#ZmD53ddrYzG`3Bi6xzj)_XEg zsAlPpD;_Wv0^PF0Y+h||MzGWv_GRL*B9KW0&-3j#Q^oxV(&>D+4z-_w91j!DYJ< zXX>naLcDeh{o!eP=vU=bd}hy)RmymthK^E<>kNIZRLicQXBlR77GLz JE0AQt9 z@v#g+oM7-1djYtN$hc?g>n9-48>@QPjr|Cj-3%13v9LJVPYaw9g`7ryETyOvWsNqv zbPMBe)^t!3mmA>E_{9(G5N0l=IL$@Y0W+ZXiD?$-Y>;fLkT3T8?CQ28MfwCgRMlom z@1p|;;AArzzYK4_%fPNm$~P;rAF!`XW>%lZ1bSK+&nPFV-Gsj?5Mlgjsjn8ezv+1b zE`@3d8@L9X4N^s_d;SXvUhNimzpi*=m_Mk@l%i wRrFtZZv9nxsg9pA=fYW*V^m5laB|AkhQy& zuYulr3N_&=38!(ExZ^k01=F8VJLZI@BT+3Q^^EIlz--7GZ3NALsUR;8KK|9rfY~>Z zYQ&a6R9XZZ^cNMjYy0}ORg>QY?S1MrF^na%ZCl+$g(0xKJ8}B1=jpzu3CSg7L>ZxP zAvq(fg)U0!y_lmP-cznP%G6?)yr;;wBj>-z^eG`{2z+RtpnKQ_dr*P?5m_V;+p|cX zTe);x=VY1N@~^jl=&o6}N?#bkNE-(TB{i{(Wr `9p=*z`!jgou~r|+;wW8=O6_i6^86a?cQgRLZrxq?dfi*$4vcV zI`rVC`=%=lLg (#62t!b&<%wi-q9(o94~ z%sXhy?%_!`%YdB~E2E#D5V(VJ=?8MN?fYLJl~*}#axXAcf25wvY;Mqhxr7j7tNPm+ zbmasjwKZdvWG3IdWcT~_{`znR;qJEHVR(` A4)8F2-}2ELo}#4qVyAF zB3Szm|J68q`XxZ$yj1|c2D8xBsK6xt&QnA!KQTVmp~;kBC}&XO#NmX<`uT;Ieh^p_ z(^wt%@aJ38R1)?s_;Ts*mrx;cfkWO#1=)|X!P53sO4)LI^0;*yGEA`9@RhC4%Gc zDt+lhM^8d7oV&(9hs)A(>wo~azXd|M(6I>TZ)9$Nk=<^`3tS#)hDWxc6N;CBg^99D zfG`hh4P%qPiJ&{>1Zrk *f{*`Lb%OCU65bcu z#3{OEV;eexQ9&6|FJVI!NC^1{bAihmYGg-F33J!En1;C1us?}nKT`rP{_Jb`Jl;-) zE|y~Wx{)}M1a(0Kb>5k`*<|uQeaH 6_#9}`5|qcT znL|v>q@kg46`sE&XUmc!I5oQn`qLX>$Z0cN^lX*UO^%bRfy>cIrGMsB tjn zV+iNe>x+bkBlpm`0X%`PCFaSWllTT)-qqAXvi6?>T{YRt#G@G?QN)!$XJoiHLF}_& zn>m~V_DOE)NGzhP?QNU;qSlbl7^0?Kc$*hAW(o=cSMSw?30E76N^x-~GqwbdIW9m+ zb~i^v? kxeSoK7f8z@^y=^GmQzA6XH?WqDmZi-=K36^3u2CtimYP+vQo@0z$Q79 z|LT79)qb7-MtU*ueJeuMXIe7aSdBXC1{q8J`WM{Yc%nqQfrV%mRV)@Mt?4gzCM8es z_nPpG7w^uJLu;+l9k7M|YCSM;5)+o|5HVuOhj9BUEf5*B-XWP=+nF+@4o}{;-`Egw zojyOJxkxxOjC1%Il?78ICc$hn2QD18sA#GxKavW!e1>#^j^|)gT!|JwSlMsy4hau! zj3`44)5DbMb9y@0`A>=-n~r_+5S@dSS7aQcZSLKTjGyqg$mParp5u>QHV!k)O_e&0 z3=qlC`@XIB=?jYG@6}Y}frvirYlk{-4y z!qI N12F~4BkZw#`QfIol0m@$=7mu4&I3&wc20)ZpYgpmEU(E z=FG4~2y?YuOg|DoYf~#l*`i&sp<# fUoc$`b^ TJ9oz3Sh60a&lW zY;!j0&cUSrW{r?{=l| Km;4+QSGh{N$F)9!pRHg@y@EAkq5#wcwqZnY#pMkd|i;ZjUJ-{}|Ej`|0RF@xQ z`K(Nr5<&tBEc?YZr(sS&&y+}yqzv9-r#;<-K2 J zWk~+ft%wOqpo6<_c#ZL$Bl$4}EF%Ms+vKOeME~^gm#E^CvY`9uD_r!fmm!Se15tX5 zbJ{Y%jUl!eU7Pr$JLE&uh33c7d#Tc?TX~m 4MmH}MBS+dIcopT6o#O@d1kHwWi1IO|@n&1|`v*Amcw#MHhJTr;y7m{DfaCC9}} z+fbH4u|>Wns?Qk?3OXO*7z6nKD6JQaMfdr-D-e1c|8Nt!!S(yh?|l^-*<0uPeo|v~ zS{F?Za!R+)5os#IgmQTH0-P)I4ZcOA dAsS)cBVomtBrnC7>< z`rQKP37T}cajMu;YWd64Q02Cf)p=L06%}pty}5;6iI1~J^KzO7)8B+ZjL=dfh(-X~ z{Btq8sy0dcu&c#>ctjR>jdFF^QjE>}l*V+-o^;(59i!8&KeLg&$MF8*_LadmpJdXL zZb4Uv;u*s3^EZksTaBB;%(qFel+SJOPfhY^O$?dpkjFbs(Q9778KavW=PFXJ%u(qi zgdLm&8ZIPGd(n^HkA&YQrjg9cD13_LqL2girMO;K0e0grtQt;~1PmMob}Ea4Al->+ zLgN}TeR3tuPAEY=9$Gw$Sep7Q0uSL=xZ# PF?oHfiBq?0``tk2hM^IScIuZ|RA_XTQ)^}FHw`_sew^Zfb zFRuIfp@v6z$Vkc%#_&cL?c#Q~_yFJtOKjWcXqM`2DGOH+DvkPu{5Biui_NS|wq{fq z7uu~t5x&5?#7LY=wYbd)yT~*O87#Amhmx@(lTzF7c<^%oQonpB+Aq^zQw%bd*u`3W z<*%wjEVrjh9z}t Z8$;qYU?_L!ecN!P=$rrG0Y26tP-LP5V2Ne$ZVaidh zg~*OPT`gJFYiu_rjo%ipG}-R&&QkCEiE%c(M~Y0;D4^dc3JY18tg&eLVP#;~DhS33 zM&+yrgf~~x|IlH2sf>(4!T7Z}FgB 2{qoaB$$oTXELQTP4iT2!)BAh@BcQ`jU9l z75IiuB5yX@PX^iNCH7yVhZVvYUq$jjz%T`}knCejbJy_5VokhvxoF`8J*AqsSDd~* zhfQNX2>XnewXeEPX =%z+bmVVGP@#9MdW)O(ua1vbOk~>8_GlM$BN<0@Avb^D?6gOw8P(!djm2$9 z(5AAZ(F)t-Tle$Oy5`~q9xk`NDGI*hs)i(Q;YM-QTB+?LX>c_PC*x>LV~0T8We--A zDCe9oJ!7Bhv^t%#1dk#Yhch~;mS;=DxW{QYfT&*(4lR|YhtR#gn%6%^hTU+z)!m}^ zT9)sRM1X1Wq(BVzjQI-49jZEIW4b1}H}SJ7`VN%i0d@j=GT&_x{e!)_8P~;M}*s(K|h-X?U zq$}8?+f;a{r}KfRpG!+5fAeEd#nZ#C%oQO?A0@c0DhQ-*k!H65G4y=nUPT;kXRB^O zwh}PX%Vj#xrMQvvb|_&+^4u1KHi~WcgJ=EwoHj*1I?Sb0p=#P^S!7TYF<-dBI-C*f z-QPNP dUIbA_jqoNUNNJt1EC?$Jn?DhRiK>?j#hDtn#0QO#x zZcP IWl7Q)eRR%23py?h(*AF?klKK#&`Xk{g}B*>^iCU*DZ`{3>i(iddEI} z?s(x2H^=Mnn;z-?ok(cWHVHRx*;c`qMQQbVvS%ByHAE8yuk@i^*Jc3vkju}EBmX3w z$b>b?zTLvry3ISr*yD}j$m<+eJ0Y|H(OzjzeTZ%egeVAK9C^IqQfOfR!w+prO-Ts# zmL~opQSHGVA+hv_Cn?j$ZM^jb!{-6dmY~ Wh%uAoSPemBZ(MS8jqvlM* zr+kks%8T$m@XGYay6#2R_s@VeDoYaWb#+g{q8Aqz5q{)<3BN8PLcS8#`;ShvLbXq# z+P7ZZz-(S$SV$&Xh|~cjDKRIgd@?iA$pUIqvzPiVGK!Y8(2@gR*J4P2Tngx7tiK3a zzHfC}^~#I9^BW*}4fRaKly>9v93-TZ)ZEotASe#+es)F^A`>9nWi)@JKA40jg}Ip# zTrvK#RxHOagO?qBG2QB6o9cXs&V4yqk!X#MOsB9LDajmj54oU|BAN;1QBPRKy+8$` zzsVI+3azK&mCP{6UtD&LMo9v>v;k!9SEkTtkF3ovzOyFp&2F^y(@ `9|?0xkY2)U!*35bK`EY{ZM5)c7ucVu7s{p zr|)Z5zt^BdlrI4m-hNc~` tfls@u~<=;{q`MK?LTIVJ)mjXd!4@3dq{@N;oQ zVj5~jH%mb@?zdb_YsPFX#m~(KvH=5jbo#nMq shMBhnK4_1&al5vSExE^^N z;M>)Tu27tQ!N1ZuLi6D?SLX37*;mc&xyjNDh@HgOc^xUuBr8}D6+GhnU+leARFq%* zFD%_HAR?(qhe$~aB1(6slynZ=9TFlf-Q79BP|_&P(A@(JHFTVZ-@Dd(b1u&HIqT02 zYt32=>)FqD@BNKWIPxMq7LYBJ#^Uh0cqxYGMyuPqyWVWeH=`u0iDx(`)PGwD4$4=% zObK9ZNDZ3xI%<&?eYi65xs4z8V-ssR70WjX8(X;WB-Mev(3^Za-IW;Dk? v zv)3a_$k*cYDOte}E||#-7=pBlBBP=Zho2HZt(`ql6<2TwV1ku;37A?K86UB_Ca~5R z^h^e|jM{tdOuyrq&)mC=QvSfe53i2NQDEKADtd`cJK`CBv%Gz<+7Hxz00{R>bA@I; zE02n+u|q+yBqFFQ=w{)PZFanWLR+ZxS#~DLK2a`>LP8o{_^Pwg{8s3sjX*`jMC;%$ zMi|U;WB>Ck;f9*9>r`s>#vg%Ir<{^~Dx@=H5o`KWC>~{@{l<{Sp1?qFV`n yL1PWu#;%LQ&Fl@mk16x`NybH7KlwBu*42OxNoKu8E<5+Y Exp#iYF>YA*RRi2oU$+p ziizizV=N^1DWD(86J DuVvic$9?nEa&cwQSCZ=T7HdrI+mU@_=dIjlL&v9kZ^EHc zy1DE!Dc@0N&)BPaX3$`->=m#ocvDTpo!tQve1%~BMU_qXrn*ZKi@NeWuurF0HHrme z_C+p<_m3c~I{(Rn*$*a+F?n7*pFUbL@uf8Tww7@I4xjAa{eAr7{lD+3FFF 0bo~bfgZ#)WWdAKwSHEXK zP>nk$0}MEr)OB)0;JwqK^Do^;QZdArB+6y~am6fi |!}AIMtwQNC6u7XeBzw+2{kdX(-pZ zPn>UrYhW0gSuJ$5n$0$p$x*$6mikCYb^6=BzHyY!f}0;7-7cL!+S%!%EU(PYnm+R0 zcbQcG;}XCaF}x&I{Z@sX@O;-37H%J%@NR{g83tV+Vv@hX`0hK9 z`fMYJDs)ehsK5}D;e|um^DeXk!WY%b(yP6DZah~Xxju>Wfp~gs EGPK)> 9R%H zK$)SV`C4?YQo>4it#fE;>9sqeBr`d=Dzp>joeSQcI#<96C`|E=tnJ26+Q_X3GIg)d zMAyHeuy0Y}XYmi-E#LM}#K2(5C=hCL#c|n;-1z!4If6 fhYWo#i!pq!0FN{B^Zp-K9;JiBDN&D`LS@}I3=*Hd4__^{Z z-J_@*&m+UmfXM|4RZ_JA-K*?B)8hKlE+GJC9AiHA4*|n>f!!VpK{prEu8&NOekJ?H ze{dQ#XCc{3&twE9@ob64%AWm;SprDc?4ao|D(~RClP<3U>C2g$xh!^lhD+gN&4w6; zZ5I2(45&8Io!t_-LN{cT!YNj08?$9Q625R5AFE3&10EWBsoi28)P`6tI)xS)CiiFh z%8KeYYBK~-J00gp4`4B7(lcgwM*<2y%3yq!KqS6R%&;rE0+X)$rp8|3FnZW}JXX zELl^rY}6WnWV79qBqLN9uR|(D%?>6Fz+Ey(m3{FUr6^sgG;%bP-#)Vv+aH`Z_fiKb zXN8~|SI*KcSB9X*xsM?(F9061^9|ch0Q0>Fx>1^g%nX*XpmH)TUxC{ZF=MUKLy^$f z#wzkc1~4X`i_K5AWD7@;-s#oew+^Db%#C~|X}vB`CYpkTp>Z_4pLZi=xtE!glbd_! zBikR?m8fE8=n*2QV!*6;f3MyG^LwE00B;dELGKlZFlee0(r&ydoL0Yl*qVB8HYBAA zdR+?4#yRr<{uu&k9Gg &xrr8M#<7s|h2R+3+mv_Bo;^;A0Ek}D-&UJ`rs7lQ#j^$JS9%|U ztR;Pnl6|$BG%COP_|+x&0$CA}%<#ofAc5E~F_DY(yNintP6)&!gQjAKB(=|-nRbh3 z5Wrkj#}{!)NcY%AP35yq6P=Dwkw3SNphg-SLoKME9ZRJ$1G^^8X6HU9!Yd%;Bm6cF zLy}Q?ylCp!Ljqwt4w2`OsUtbi 8RDAbY4ZD8>BU`G))cRea}3;6VOVB)ML z3CY}# #YT-!{KSDjn8K&hG+CG{kO=F=S zb!N7<-y=#H%pn4|#CBFTaodG6C~X;l7T2%_%!a(-37_|~+HbklzN!r|19Q3rdROX? zC#o&0w_ w^~RS^OecA!Xqs+8!CEcJ7)QS+jJ;iRyQzd9 z@6NzY&k}Y8JIEQF1e#OdTf}54+J>w=3oNT~KUw$ph+XM34x=((u@(aUK&GgUC0bFP&pHBK>MXZ)dkvj09yJQ_60l$LUz zb+aVsJw55ZRhj7yS%dLBxz-~- NJ={FJ{p;+M8osBW9>>c!VWbWc2>SgNS1< zm1TpjpPHlmQ ClAIrnP>e#ICG6YJklzyFQQ;NKrl>oZ Xi(7a_)gBtr4 zaLpFMvU1OS>+?VNAGjY)$Z}32zH@?i>3v#epWyqK?*0>~2UmX+&5IAK&*VNwu*#4v zsOWcEr;p+Ik0(v$?D-==f5M3_M1BHoF&Vd@&EP2f`i965V`P3m#^sT_uR8%X9|WR` zEC` $ueyBri~X7pb*_jZrGzVu(w=EnbAi`7UZz)Dz(Uk&vJ5!i-o1s_|< z803XG#=7+KzY@6EpB{#gi?k6KQ!k+IxOSbh{@62Ud()m=Sa80MhRJmJa^JeZ^wtx> z|L*=I2Vn_PU%wIU#iyb)I=C9wWR1BaQmdhp%9g@na}}LU$y+0p;T%E38vBcje%>3I zf#Ul71u?JP95U#q<4d8RTr0{Lob$da?W+kzXSApo43{f@9Y?U|LJEr)vf@43D9%>o z(Ie&~DLGXsrrGr%fJZ8L@EbJs!T;6~6SUBI_Z|f~A~mZpfBYJ{$hUa;t4jo;U@&Ro zE^>r;v7P$+7WDJT%LjeiM7OMGRUCJr Dg=vSR;aE zilLEY4;|6Ms~)jXZH%$6&K)=w8HJxhjXOq*RG >?#lHWJP;GEoGH3!${0}t$Q^b(yu31d|ElsESw2u1LZ?fp9OTz4 zcLOq{iYGmpuEj0c9?~*!J=w&+vcL2)<}xN*Ln=y@7tuZ#t8wHjsCzp?@1BDcJ$E9> z?Y6$>0!$r;e@atZuE^phH~{T)1X$Uit=fAr*_VpnE*)qVb&NGBzdTRwxMSEz#(7DV z>&ri5`0CA)&*johsSWy!tzI`7`AuiN5!c!PMRq*hV%z(Tc(#;A_ae@@GX~PJD}seo ztsquCufqoLvLBPcRSVF4073m~I<<+@$8Uh<>wnmrjgUYj7c9+U{LY8lOlbs~4U;o~ zD@UifAS(D&r*<&+vwjR44J{)-+r;9)_&|CdU1&_HD8vzb2!K}-p5#q9epS~OsfHOq6owwzvipMVLTwm;JQ7;h#1lTFEqMm=Ew>C>$xcVM@Wns}YRc^#j zGtL46feh @X>7$mj +Tj3Dn)lC z+->B(D8ALv0c&bhnb{*B0$NuEQa<|831zEkHkegZQQ)^W(k9*3#dv((`vCL{l*f@y z-?PV2|4Et@Nmb-oL8<%SKr|dvK%v$NKxpq%6O2V6fj1?@>M+Z8CrR|_*M?*S7{bZc zii^V0zkL@EMT+iGN()u}&a@=8M{59U5|3KV`kwO8IP)8UT{)Zctq2!WEOoi{S!r#` zXKnw_+5%sky482*C*q>-Fc{#)zhY51Uv2hcW9%{2AOdaQa1;|+Gjq&*RJA9^(7HNY zbNlh0dv@LTc+Em(5ICv5fP3AO1y}7zDlcv`1KDM0m^C5y-)#w3atbR|Di=v*JyNxa zcm#^fE} K1ar1=sA)oIi>CSPK2thrlC(mI)D&z>Z7pOjfYMuh^hMC z)EN$tD2nDuoY+xt8D;;V^7?_@ZUN(fjK#7)tWR;tuqd&Fi$|5>VCtm4_+Ar)qn@@z z7O`tRt-V6RmDxO>8gMl2kR2C6_(cf~WtfVPM@eNn)F`fGQhYD~F`K>@zLSmCfs;Pe zAJFWq8-BPf1aBizB4yC|erzSdgMWjBvAL^LR$D8x{K(W8YLJl8T#%b!ZDkifpEi4o zXM=N)AOza81SKZ|(hPXKe0PJGx^!DEacy@BD%$FtQDWNk1Y)P;Ef+=n1DiM;NfA2+ zv=(v#n*Z*O-n86BmTf6IKe8G6UMB*=X`lFA#hDL#CkyvfbX+z fkO6WhPEjP0B+nb zq4HBz^}JbSWje@5X4_|QmDBQ qnj7ckk6QuYJe}P r1>V^h5HPOHI1g^N5N&U1kO0{c+M&(wBML^ zBEc+HS|qUcVXDB+8s>6JqejBD#-##(wzk?7g+h-yBldVbT5CD^_WpN7Vx5BE{@w2h zBeje`zqShny)4 Mb!i+lE{x zXe#CR)%?b;q&o4xmpiY{;SX?yRxZ^V_q_GEd?Xv7c{~r-bGzr<>Sh*;!+|`aT(8Ae z#y{T8ajF$(yr%I!u9>Ic9i|J5i3i5Ql2E@thUZn`69j4^U(Tm{s?U1jzGIpeZk#qA zmvZ=vvf%O9SXoO}f0Doy7qMhx?DX_kdFN)yx=pbE#X@JdaI>cooBg52E*sxP*KgPs zFA=~1*_5n+0kt%r>hK^=HIR1eh3xfR)Ck-)MkNS%M2;fK%IBax;}zK~d@JEGcN~Ul zsf5R!Kel~@_>C8wZm?D+rt&{3ge-{-3&DM9h1}pj|LKE= ztJg3Fm8GdFV9?ywm)8B06$LfYY-dC{)B2^Un3(1f#XFH^d-yZoQ|(`78R;lPr>7X? z8GqnZo^In#$R=|nN=1>ORm2v5{&wS9aDmpLI@R6}j(*R!r{_kL_7~}SDNTw2C&04K zgKi{0oRq3T-#&CEJ#nfga-Ex&Cu&s9^|(nWfj8`}|Jb0qlj*suH6@QR2V}4a?*o05 zRKlod*61Xr6~|*A{rF0sZI&IU8_r5$3%O28LOgMibfQxq%3ZqMlMm-!Q}Wp)_;KFr zEqmVTd)%EAZDxAGlPNlGqV;YkvxcMJ+y4~%dmq(?_;*|TP$sWpkkhTFka@nVT}~N; zfQyNHo>z190rOJy%eFt4t5asVbmENk&4H~`q&cMR5-)bk$l0$Z@eruWGG^QF`bgSU zn_FM?oOTw(kf>WJJOr+wdx~`-QS3Jto;^cfiLHEi7L74}i#=m_o*UR#9!2I?*fjpB zlbx&pO-9J;f}#|~2H!RPU2wOlWC^fObMR}WfEPN$P^*!`elXjMopwz%9oiutqL|Jx zibJh-{KwfH&y#ncpZPKHpGx-fN{uQ3)%@ACj~dc|`lv}>`bhk==|^Vfz(X*?aIl}o zkG`ty1}uC(vI6R _vBZUk7qb_-@(YqDcESLc?crlA2- zG4#fF)j%LLEJ1P%(?r>C1c Mwv+F84x3+covI5 z-#aPJ>iMRjK+4A@i{MYMj`L9 6QZ1(xk z|1V-(wB2sCLXQn7;yeqRc_?;{G)mUYmPp6;VlO%XW%FvDe4PxH_2KU$HKs&T4O1qy zArd4qB9alo2-X#;S0EAXNlUswVG#6E|FYER(`vI=uRT+>LTlZj$62P~$IPlxnPiq# z6~}809qf-v9)`*G(e<>sAUZI-v)H)mN;egO+0Df4u6}|ww zFo2$`4 >`kpz5C$U`bHu^`F=x76fJqO;B$NE zR#5G1*l=$eVO=O_G$8)rDCPB2&J5@vn5%YW*VKGGbT2E&sr>v@NYp?SZ1u+DJ3glU zK2SXl=k}BbWK-oVgQ+N8&2I@_Wp^8QB;_b(El-pbe~Fw@nypb1ETyVeADt+oIY!g<4Rh#b090Qwrz|XV zvbI^RqD6-2TC=&1 p0NEP+5)IL1MKq|Z7#1Phi3rwd(n+D|oKr+OSld?p z0+*_yTdTpOLDQnQ1`9@E_Bvvem{Y*m$w=HU1;9%sKn=Xu_tr?GH5VBwngbV}3PPU{ zKK>t%K$-vg3A=hIJzwMyFe=Md)h`QEUO#eIlziPNRZ)-{z0Zf9_f-Vm77OL$tFIJt z@6(Qqwc;fuO;ph~$c3BS$z5vr-)>{u`=fa8kghn;hU1_a=|44=T?`?Gf8MJXR0{Y@ zh* @zETC++7?VrtL+&rOaX1H@_F$x zJnwR$cc&B$-esj1rDmBaDw=9o4u-av a zvEYII(wX5{`trnt#u@p_s;bE)fD?6JnbE2vI!ST!3^B`Ul?Ec9EgT=q^hvb(P*fPa zv{#l0hoM|(t*zp~2-BVaeYg=vKf41~w# WsCTpIk`*nj*!h^`>BB920cOJ${5+vK&GFN$ z6S{PR;+Q@$1! X&NeKkE7?Jv-C_bJWc4=BxqqFe+ zg(5&f5w1AFYJ;c0O8C6)X07$H5#bB7Zv 4UPRdL~V? z);X41KDzqU%>c!`MIyNx#S WreSTy-ko?LV|}?DeF16 z9O{9CqvtZJxOm+CprS85fQSO$hodpb>`IeD?cLnUNO4f{rV4teg9+0!lp@3Tv7^X2 z@mo2zbITg=L-vz+mj!r#kHk$F(ADeU3F4fGC}0a|<0(~eMR}}%m+PhU {BV_yCR0EOCMA zmtn@@CN-az+;JJ2qFHA7W}^pm0xJ-2?_@0lQKCyDC#t(R$S_Nfo<*o;Kk*jqT-I?L z{447muxW}u5%J_<{kXzUh@o m8P4epeLdWK|-+1Ck%E5)`ZTh>>%@%y!CS(RSQ1BeHPOD#hrx{FM&qw#j!RdJkl zWdYd8TjatMfC4^_;d*6vzH|q)6b+t6*|($>N)z)1jNsZ0aM~Uq^i> )j;{Z0K?zW`mQk11MPJCTE5$Wp%u4Zyrs`;^FAa##2Oz{s00>u@N_c7PF9AnW zi`g*QQmnb9rBTY~K^DPaKtSpq;g7C$1b 86Po$Pct6M*k-9VP@pY1oUk32II1h^Wms5zu-q-!(SwJfvy3z$tHja}Q%`nq?q ze(^WXw*341rTLYG4b&F8A7m?W4~hZt2zULP{iBdhyqsz6kY_$tp96^(fci|`z;lm* ziktqUk(5KhNNDJn=Buy$3QPH&Q;E?^FQX1IOL4L-616@Mv@NRZE3Htp<7U@r=>Ah# zbygO6)`8(oBWm3hh;|BqNb2?Y=1Qcqg7S-HZ#XtT)&M%uxn#4Qd0?dd$=qSivOgMV zy84mUA^K&loOeHzM>RTd9+kBIs+0v<3s=-go?ut`tKMqrIfg*UTA^n(-IjW4SmKtm zh4R01v7h5sJOp>@jMbDq2OSynUa92psfAaREHnO|SxxXd= pwut<4;3hi zAGhqjfv4SMr>`{l{mlzao~v%stz(boSOnsiqUd-uX8TJvSG9l!X}Ixz!$H&Zlei?) z+hSeoQkv|w7k0n*v355aYf20bhs(1*1lh74h+A6^f!a4eVUZdj>1*cnBk2`jRz;~r zZU;}6ViJ~VR?QS?p75u2V&hiKp&&J?0)7t_&+s}HArJfSOBTt!+SSxZ#f^B?(Z_~6 z51UphIa{r|w*j`2>0mqqc-cB1Jhy#DsL>xwv!aq4b(tf|TH5FyqM?Q-9>k_WbW9HH zKN*4GIZvJ!Wp$oX)!h}-*&{49QkMXU5T|jL4mz!|>k-c+@R#ODO>DnXAzeV3zn+DI z1AjlYQ=DIAwk5BD_oYiaaHYI+E9o6e%NSdSEco7o;-s=_(Pu2qVUa Ls1BXtGC{Hi^>=zv+EYZAnQg$fDo+UGh`NkRul881ZuAuiBpUnR5rMFI&5(N za;KO!MpX9<2Zd5dWgFm}0424Zof?uthz{?rgRWskP{kfTt|qN2|AD3j&H0k9ZqQ9Y zMCxar%E&@B($TyJ*jSDv0u70f%%Mah7+LQt6F?Zx;laAu-Q1h839W|aL5=pN3NViL z`jy EU%Cnk_`+zI3BFkAaj+gFv*YsRbbpSN`gzm;tN>XCcO|rqC z+J_)MCgY-xhED7$CUL**|IMXY@PyTZt;9D9(e+X>85(ZT-1SxX8NP;j_Ux)KDNhDu zK OapB`Y>k&i-quu!MpXdk)An@0XhI92u5A8`f1fD-}94xLLoqCKOL zPPYvSGA1)A6p1Pojm{kqTqHfZ#`_1LRqfr4T{bh8Uq+QppsW8a%3s&8j9OKQwcnaM z^W~_H$kFtTD?Ke{_P%(%&|TyAByZm8ga(nJVa^0d(C4{JHFx&=vC>^xu5cIFI5r zJ3W7}HsoYpe8iy2hgw>wKND|20(J|zJ!TnDb>Vr *%n^` bGLARJZr}ueg@Z`~#wFz3VJfj}qT#2q0q7HI5LZm&%-!?Pl4ctPktu$Q+dc!<2cY z!+>B1J-Ye1epI~1d7Ajcle5xcC`W{pn_=|#H=!K}4X9x=a_Y;MlvepfLgG}^L^g=l zV?~+lOj-^^)P%_oLtRNW*JI487xM-ow9 eSzpl}ErLI@ zTps@LxbGFT!fz)2jJA@?(T+&0NvHdL2M7p+4-^L3zL&8YZ%Cf*B@fK!Xlb}@n2sKB z*?4y!!xuKJ 3(9ZZ)Kvz%05-o1u585H?FV{+HYoo zY!cyi85vPrQC-;B8b(_&q9Rk?ZhvoPT4NZI4Sr2}YO+t_Q 4;$qx@y4WTo`h-#L9+b^Swv;O3In0E%?7_Tl}3v zF3 aS^i4mxC~qR^@%ep2d}00ecA&GYo{I}>L2S!3zkOC6$CBcOZH#xSvW z@1v*WR+{B8(TaOuCyt(%6+vIEF+XZWza=y!=&$!&ak2F2OH-Wjfz3b6i0ptKK+o!T zEHL_QcdXN6Ve$4tJnPwAY&dO@AS&9Ewrf%6YNV?Lr-c*uLJ6aaO18uyABLM!-S0{f zbuYBED-gWr_Rr4H3aT~8wO*7X1o%6|MM6J@EZoJYD9x&43n7%wUO&Xoo7Rw3G )tQ0I0!dkhksDyOx)oI*D+&0Ckz+YAro;;kaE?x9BNUa=yqND2R z#XVC;DJNFPEsiuo{;tBG`gOa;*-1F~H t+oAH%9=beuCMs`l)WC#6nGN^w;?#%$QrUSOBQZ!1yw z$eyD|`iPa?tuM*{GV)( ryPcb_{*6W%4b+mhJ*F~VoE#JMQO6C$Lo zo^v2XXGAqMb?`kr56P$vxCObx8`@)R^Qfw>AS@8aC`Yk;;~g^z`Fe*m-W40UyaGrr zt;7aNf vU&1EpOPWr8mHkQmr1|}rEE9PfHUMv9oOT1dl+fLlx^@! zURtBgeJa6j1{v2g2iXpaoSwjHvn39ukz_ml)<*BjI#cfF2W%&qi+V!opG#zu6|BPc z^cmkjms1_R2QL8nEqm-7M>)t2S9=bUv%6Ct8c&AR&su+BBh~DyO)3BFpWUX>E-%F& zKk+TOylpp#S^?j#^`Yx&2su!WEl#l^j(n}BDNj r}Fwq84+4RkYKk} zx3zY!izEOYcooxr%QD5sdhA?QT3XOXU+q;}*!Ol$U&VZ-&ItGNNEL&tAz;!U;w~$D zIe)1`b#f@VS)?i70B4{HvVPfH_dd3s1dAav`dhhlwLg_}*rHbdJ87zneo $-WCKaJs zKozr(htp{q46U=cObNo Q#2lRm6VVDZDWA{rszPA zKugdIwNn2rd}mB~_341*S}E~`hE_JF>_gR@idyhI#G<53HK)ubR^6vxsY!O2a12=% z$J)vYVIg3wBP%m~tAFNSTO9*q&|EfMsof>3zc~C3QbEe5j6644)Yg%ntMSnVJiGF_ z`ZCOvjdNTyh0e4BnPj*<$uFmhAm7H@b;(Jozfp<>&jf18<~&cp?dAHK#=#I}_IdUj z-mg_*5CyyS-GR`%aO<@7Yrt5nS*gIufDSd8-xY)B7}uHQN6X%2D?~B5a~i|&gG_Sg zTvK%Ekky l6fPwNpt `wRc zWMwT=`+{@FA@{4&p8R;iyrk@sNnQ0LHexsZI86|d8c?M+nY|o)y&62GQPrchT6RKF zSvAp?^qS}zAnPa#Z8eZwF3xRqyg*K4mE47&+;Ajdwuq4>+kl`Sd%OTc4a}P#rTbPT zj)_)ui>ogAB!RTuuWm#@rKKg)py70-AyPf4T)swoWzM_fDOL$R5byGeph0uUs7oxX z1ZCe}tRnX% lfE;Pi1%i z6rx@CNmRe8>?9B;l-$cCfv_^Imi!h#>{p_MP1J$GtMO8Rlb4ahU;1%$W>`*VzvF0~ z8r~?X*sJrFX80T;RFrg=Ma0TV1qloE7uir(I~u~alvDB%;}v6Be%V_iZ$})&kVE7+ z7Q^==PumyLE=y~na4bQpGJ~j4oB)%3s<)0WCzp<&E$W9o>su0JcqM>mP!t2WjSa+u zx*7nr tqIcE3s9ViY)aO@>&v zV?eS1dow0#ZF0RVuM_s$q=988z3A6mJak|7{kLD>EPnE{JQ@q}-{YtVsul49DZK{P z1n`mruMXi5KKW#t6{%rBXT2O4fzRn>P=JdR_&NRmOcDR*_y6nb5R!g+dTM^_s*>(@ z;&Mv{!~>DpFOnF_*HA;R2p`Vtc l}41QTl!+t;1S~s+v4h^5q k%TI99O8Pc5C4jBpIt)5eN8EWpIITa}t}6MrEr}nx1dJ zB)8w1=UhG1SE6LL&48@!F0QSma@qIKXyd@$ZDwM_^uGDHveOod-%qz?PkAzkHG%zo zRola90W-U;{yQjsVUaKk>p}lhq~6gNsG~Ku`$pZZ9x-SPnq2mn?W>C=3^K+fJV@PG zmQ>8r!It&ud5h!{-sw-F_*Sx1!{o2G5^l|Yf `^ zHI$!>I1Rt*N5Hl dk+?>zSm{dD<0s98wIG ziM6XomQH7|;#SXu#jBAD?wTruoEDv|9xUJV+Us;%C~H7hHhFOVZ{m$IkGtSO_^++p zsL=$+AR$;k@`29V(YtGH53>{Q)<_8p3a4WS3di$QZbbJl)8N-!$=-s7)OWX(wY!t- zDghW^f_Nefyk8~?LWUfoCMjB+Qte}un-q)b+`422yecvV9a3*g{HZG(-)F{qy*;mo z&%I fFf?@W_ET1*c(*Uta?zBm(*^k!#pZsA=V8CbeGQF7s06ZLd3xd}n=tCr zl4ppjL^_|O)a6eHi7XpTu4~lZ$$MP1_znEdnp+9;;J#r>_1shY;L~jF+nTgQ5VicP zL*(Jdoe5oGk$7Yn4fBqnM}?kezV-am5=nfKkFf6L_D~GdAmteS%~m8$qSM1dICqmX z;&GjqG=}~C_ <}kstDK#0(US#LS>RMX^Lw*@zu(peVuxEN4eE|oB{(5|CJB*YvOmKG?=f8gDO_@Vr3Q^xyQP>HObHcooO523_p@GAyW6;%V>V z^*-<0dgQ{L*B;wPl$*DjVyvvh(|r|=VS>j>XPe;Lt<;bhc#p8QfT3NxQ<~mG@-$NP zX!?+tr&=ZW)DB_rUSz-1WJ&t;_y^74mSV6k4G`BqRjp+7G(|Xy3~tNunTl3U(-)m` zr7eq-9YA_+6-iBepd|Q@1J+*s@+oayuz^84e23fXr;Lph$yNY))z5b~CEOln+dQca zT4+0t&;c3?xdfu6>7HniiZWPo#)kC6!9q|zA*XH0ZynkVU(c*Xrz5Vt!1!UX4D%dB zfp3V8+r0W~i?Iwd6-Y0rza7!yPYeZ5pB^Xj4{ZE)w1|^Se<$hdG{nW+2Q6`ApVQ^+ zy-oGdWV9ytdsF+U%$;v&!Td*{6l!z3seIl0w`$-m$ZhJpV_?x)H WC-8Zk+{@ z;qY^b0;|*JakQxW@*g_v#X72VAu9UqlXVU2GllMxigc1IOy<^Fh{%`O-0rTJ?jiG3 zEa{K?WT{m}&iRYSe{52Pl{(^pC}7H;N@(VrYDg$WSYa91PI=|0`)+0fZ$IP~@7Ex? zeEpGH2Xj_MlU?LNoIFc?cid}&CJEL}vMjDyn_z@Dng&Hu`3BNU;TFPgZ-V za(GWzMBSJ1E6}*F|A`GmlN^j;Tj}XavKDg*T)d%pH-=x4Z7}J#sFo@?18)6xQrhTd zt==SO;DOzx_IJhEK56A~0Ka0)CobLhudP$w14PgRruZ1waD$ax104|2)CK<2Ej0uG zop-IssOE4kX+XiolVPlZ3W*-&VF#8*jdn<>2f^T9O`)40Tjs5@UpMHth1fY^^3^Jn z^J0q}{G+ si`qoJCooKMz&5G@Yd%Q57|?VwZgmlY-jkvvis}IA=R+yAwH~d zviVnR{I^@zDBqwhp$mD-+Q%o$84orNv|&)D88-WN*OM$w$bc8IAnRKqJ4&<;S(2_mZ{IPI5p$$S**D1 z)vownRG8IT7WqsXfA{0-1kTpnMp=0WDjq$BYJ14dU@0F)dBd46YZHffI9r@Dxk7S_ zqA+y6 N8o8JEaE(mUN;Y@)ZcM1fvqH zN&$7hpO(FlPv-ag%Gc!uSw&jYvMp5JVYqwbYCBGc69k94M8!se`-^){Js~qo^Y*Uw zt|D71vu^ov57)fh>MLcxY+HXRn`IZh;+wG>?ATWJFm~K^(9^Yr_%)xqWkFV2<;YS6 zD 66;j`p%4pxhF@b-sHP%C_mJNK`C1`tg|9 gb9ID}SpgFKse8 zq59ma+ieh?Ms)#X9Z;&x&AGgG{WJt#QiWTi7*chAD`wh-e|rxytG(D-*s}0DVfj~) zAf+hAQpKjjxp2|wYiPU2eLWl8#-U&CSf)iEJF31>{TWSL)#sVM^1WBYtb9?vtg@2~ z|816UfgIHjU6wb?7tX1O8&BqUc~OqD#?vNJ%*CX$hCi=4E9^`1bX!3YBiCE^wVhzf zHyveP6Ir*;@Gky-!NyNMtExr@9S*w{U$@FNraDTvX%XDd*x_o>7CrWV;Fb{k__W^c zB{-Ebk62AZEAVt1UhnxQ4jD8T&6;oBvUbL%0fYtI%##C>(TD6d5|0_$ziw zv!_(Q<`Z?MTgTn$KFwfo-QkJgy%)D-pSRBq#Ni64_?l5cds`YjDwXXpC^yj>;B?;R zbg5`If!Z&i_duW>28|Xqw0mU{vLoepS0X2{l$j}O_tT=0nj=}^gN#^M0!)A{j_$Qw z)w43Qf3b(706aj9_+Ol}AA{ShI)jGrJ5>&z4VPtgcAw@L@VaQryZHx?rwy?lH?fM{ zYf=^0Z{RDl{jd3pf|ygvbJ*lq5=T(jV9I;7<5$ZJHYmm2k{pTs55kg#G4?)w$-w5C z`n@w`A|@#Pd6uD;vT5NyXd6E{g5U7 ?4L{lGw{egjAnB}vYb}SeJs^! z_&maCy{pGGd=IXUR=2*ke`Ya~)bV&iPm!38tSP% bQ2 zzX?J;&Ea&_fAJ@k#{ZmdE${F0YP%uHf>+DBn~C}tOJvj=LQmB}mOMmhW7^ -&W>? gCQPQ!_eUaFUy32vnJd5=2-2A@2d~ucze1t zw&`RjlL@6O-hAtKvLy-VP*UfU*M6TvN4$W-0QM>~o=$hNeN1|&0lv&a; @6eD -DpGu&T`1Txu^*hcQ@?@B4p *UhQ153ssjl_u6_e<@!mY&hor%XPx8)q_d1O;XgMb&UJeE5EHM?Q!IlH-I=Xy zv%|XwrliEM&TEr)-$jcfxb=o7u_Yz3iuW1+cOOk;zow(T2;nTYan8CpSds69NQZ<^ zhqds=QX%T0kREbUNb1hGz1z~+f)^!4PrW;qPS~rn5ybDXRZyoFb=WeW4!uZK%Z@!y z71nz(_9Kwm$^6??%dEB!4iE0pD9wF&W go^cd zgGA(6e>5C(KA`OKPzC;8Y{X$yh;O$-OwK!2$ieGJRy%zdzUe=B%`QzH>H}AsTP5{| znZ19g=fM}`?Ff+v%KpgoUH6WLJgVnw()O{V$UmhdiyC8!9*zjicAqO#qF!z+Zv>Z; zRZN;5I*_IBV*j9qLpNG1 S;gYI3wme%;MJe}rO$mCixG-Y_m~%*$%yex$GS5(dJt;HUR4L@eo=rt3g1 z1&Z)urLWreM;A7=9+VZNxh~;@I(9gw5x5`@R&R)?6zqn*l#s`C_r7*-_PDCI`4fI+ zqtft@ N{M- D4RNQl*e_3pz3PMDxD9nJYK zqy35%&5B_-6@+&pd6j7ud;&NdrDBcWAlRlXxahuFX^dxu!+o$t&_s0*_M#T4VhRU; zOa>>sfhQct_UFyJj?KGw7ow7O={XXx&sF`g*m`fP#PU!KjkI=|N#N=1l5mJv_F4jz zC#P~tR !W{vFuxHeN^C;;*7pyT_ 1|2fhnl0=$g<5gE;XN|Ci#5wzJ ~Oiyd-1G>?4D;jD5pTOziwFV>~fF8&p2K=(b SXwRP3}jP*(l zUe~YEi+wDlx)ABP1#+>7vraCZoE_d7`&;u*%H@p4y>)mIW)I+A@cjvK4>yiZRXLns zxsW-pe|Rd%M}no1dF@l(QbXfUgENUy**UhEQX=5cs>X-3H`1I~>PveLAxZX79ena! ze!%lMGU2Mq-)j0fd*9S=|IhjwhL}6KjWiaL8{EoTja>J(Ab*1d(trM{ChICkuG`sQ zNd;Iy1p(r7Y{#xC{FM(60{1pzB){~3n{CW?O^iY)F)6Wc&F6E1o#S2+elwY~58nu* zwoCIQAlrGfcP#=(@Ar1WwaUP3-)NBW+!Ac#8?vkAG9dPRsk7$t(^+p3MA|MT#15{f z`$G}c8HD!p@ORR{SOB$<#4f+Ux&jArf~#%%I}xJ|sz>gx{z`aedN6tJ;NMUrm|N7< z%r6bB`OtbP`bIHZZSx!c4~CW4DFiXsHM96$%yWhHq>VpiO=q6R!lz-ORB7K*$T+nW zH$*lfR5$*eI6* p zsY%E_DG>?@kt{KmM99vVu~d^HYxbCwUCm4=lznMz(+r`pWl5HdN{xM&Fqs&G86W$7 z_4$7Pg!}Qh&oAeP>xb(+&ULou>%6Y_`@oOpPjFBg_cSNG;B< 7PdOLwql (2zp&}tep)YIsf?(;FFbJk!Lx&=8f3+uu8Fn($$%w&54Xz+Riz&S zB}9qYDr%DClI6W-m?Ue*#4iBTZ5K4>yu;;L>kIo~0MRYdUqlnq^80cz;pV5)iK zco|HX00Jh8GPcC1=)B@ysDRy370i(e`TO;j SCo(pLV3ENk`DXyDi&%~IpdJcD10SdAii&qbzDea&2DZ|+bQkRqLjuJw`>87V~- zW_ZfaCrpi@C#UU7HLIeb;l%`~>L(XvdgRx_JZ!^_a}|4G?C-y*R0H$B!PefvqXZt8 zvN;Qdin(>JpVLo)i(md@1yA0HvKQzTy;{~r4|xq@BL8Gp8}2o1tvM0T)%}6V@PEw7 zvsSLeq=j*a4~zz_%s{P$mJGOp4+($S#W;@Ssyc@Rc4)0JvZf=oM@SvXp)lx)e+n`1 znR1 @X7|g`qbA1&UN#bVh%x9f`9Hq60(P#TbHwy zfdH`vP|_*i)TCwWU~-?UM(Z^*il*Ed$H^WqDRfnHr>gP^d}Bwos1%n|Ebr75C%?PL zEJ}YWFt%rhuDQQ3adQN07xV^?sk~RH{ds-kK9J#f 6@k}M@D0?gpy)uHc+vY1KVHJ7BqOE^x4=YtZ-Ku0;HS@8Sq0|V z`T_^J4o%tWW+St4(iIz(8i9`oXI$kTW&a3uJQr5y{w$!bmRi~wJ1N ;XX!TT<8@H!;tgc;>7;4VFVA21s zD+m=9Fr)GNtc=Wq1?5`ls`#vF&&5|`3N4!(E 5*Des<)6;_?MmwjfDv8uC z&>@N!+NgDy)T8u*yKLUSJz;~pVM&;F-H_ZUI$ulOMsRRE0&T1RvWe&lAqWtould=4 zk~hb(3S!ebbLEv@nP-&TZW1%CFyPN~E@yay(#8lp8Q(%!9NRknA?gXJ}z%CR5yF(EyI0f8@^ah vL~}IJ&QW8%O!~c8!)f zUa dR j zHLIzw+7{0h=Z3w5Eg0{?{^|m&;h%@i1mIUB&hrx`?p^6`!Dl_pfXmg)<)Ao+zC)p=r0i2jUEiw)7nR2K!=o6%<_K1Yn#)3?#oTq? z#cF=!Zpiu|$JgNkPC9pl>2yNzudWDE@24piqIvT&@BVcIW{jeAZ}K+tlsP+dhmo66 zezf__uz8Z8)36WHT;omJ3d5-jpwWRS#rO0C(Or}trg&K=bpd+^w-+_4`rvgR?EV!g z)qEShwyhl3vTq?#q&(@Hk1~DqX~;kTB !)SNgA>I);BcboQk@Cdh4cdS*N zb2Eqq^Ew?(+ELeS9aqX^tmWxR=aL;Wqey+A%^<));4N({0Z%;q!CezV8<|~#Y-h~m z?owQDPxO}uVbyuYW paQa$8&X?fNetm;T3l-dVM9PJ1-S|%f!mQ zy}xgB<~NAAH7ap-vao+^a!6M~*3MyskB1Ps1qNqL%|v)aceA_580Ahc*R?1N)mu<+ zNDhWYu7>A76gS=WqeToy4N_+H+tkR&=kQRk668$X-@*0HeW`*^$ ue-7?&w*Wu?z_7zz;!r^9YlsJYY{aMfMl zdF$p#uDKj_iNnbHRrsQv+U??+T1%T#z9Q^cpIuV~^Tk9xLp%bRxffH~*3Z`|gd?NZ z3YGYF^pCscfrVf%sSDW024Z5h8{y9Y`cNiGCp{hx6Sb~)aFci^R}kzBQsLBea{lDA zSP}c$i=*XXGR&i$MxIc#xZUoBWN~<8Ad>neC}G@ZM=QVu1KYx4_jAdrYhfUwQ;Hj% z)Z<`?-miiKCYZIx?aBJZSQmnItD+q1G%$*n4f$yGC+5Yao_0&g&n+k)KI~}M1zMpx zu!Z|i-EO#^nbEl6m`~$@=jD?u;vqKJhY9@1Eoj7@UVH4SCzoew+Bbds$Gwm{Y{cWE zwUaH9>2kBvq+KoqEXoFG6M47#dPe#aee&xev} v{g2_qfHHhodl4h|VZ; za*D?9M!HJ@@0@rtseURWR~bh?Y_A*e{PK*8pqiBF=H%43hlEl?vRvOG(TvLb8TF1@ zz%0!-M+875WiGK!C>bqhpIRPMlI#X&pjeXzdh=|HpbdQ^m25$=0cfJ-QxzA =q%pVtJH8`YH^o^1Wzl<@vX(HB)5pXl;0M-|L?e{(2rC zMr9;FW()`cUW?4bza36i>v+5 6T zg&hzsL(M%Q!vf4pHaF#Cf5ij )GRYSN+pOU% z{=k1Kia&!(t7$-5H2uJc{0l={>1MMnuIF7d11QHpQf9{R6UqO4{q97qy5!{dTs!n0 zs)P YFHs9 MZ_@i&XmEEHQO14Cf5i+h;A`P(?lMxG0+vvM*~(r4NyZ zTHc!EU`9;fCwTX*;vDQCvK4eNqd8A&w&Ky<&|5~DAAt}5!&VF~Pwuy*z|1Ra=dmyZ zuO%ibC49i421%VHY?8fS6*qYX)r~pgm)NnrHDO2B?k4@xv{ix9x$W3pr-@lUA&JKe zHpPRAQOn8~5}dFxrA?`0N=Bt4n?@3URRr8(V-1`#efDp^6rZsc4Sb}Pq1@O3 {f|383-GVUJ#Uz^!L{&kEMz4!b-rF@GWaGL|=e^$rz9B_EsK&z!+ SBtB&W$~6-!V*=FU$$tPp6tN-z literal 0 HcmV?d00001 diff --git a/docsrc/images/ObjDet.png b/docsrc/images/ObjDet.png new file mode 100644 index 0000000000000000000000000000000000000000..a92b29c1e7200de14cea3bc86b95ae6c95f915f0 GIT binary patch literal 51804 zcmdRV^;=Y5^sW+;!q6o#^biu#%>YtEcehB1q%@**cXyYRbSm8v0@6~_;Lz hQ z{R{37*XO|*m^1tAz4lt~e%HI!2~$;;eU3?v`Q*uy=kjvW>Q9~^6$3vs=+A(^=)_m( z120cq)McShs>WaJ0>7YGODah|c~TpLb!UbO{EqQnPS54Z6PzBz&(i_NQp+b#hT!tj zlA0dI2U%zz>18_p`DeIvDv`8g3P$^c;uB(<;)IgP_?r6MJcQq1U%`H4_PhdzmNK(Q zg6OTIk)t=9SFpS@Hb%!s#}6L%4U9ymUkN*Xc=N&i@^=2qZu#C`cJ|R;mE%8_Eo^M; zNK9}b2#OBYfK}1FwM~?jqIH$9J)nAG;F~p9NZ?5*9yRMbDbc$?*72?`aU^@tZ@K z%rFeZJ2`C$GX=x|&^jbcjmM$liT=MCN)Q @5bjT8QIW|&f~gcA^F7ut5=LT z?Eepz|9ey=urO{??T;H2Kd#{6uL^n^+510C&|*;N58Y@`JgHmL-v@A@bP%xyG@jn+ z`;d>aoHIRN%Ad`NLWMzBa2Bx!U}k)fQEc$~!AwD@g*FpCSb37{B$_Cnup|(M3+zi8 zeSf&RrXYEaMb@E;y%s~@uTL%q>Kue?pAwOhVh@756JzCR3@!CP{e(#L^p?Vr4_yK= zz{F-q8rNCfJWJKSLfGAnbb*$X!2VmN>gNC41(n?kg@sL*VSp#mhZRFrI#hG?LxY85 zGb%LRiq~vlfalQw#~|w`PK! Jma0Vq}nro{(JT&y{ zr#A-MLK`u1RJ>7dV9?LuxCTUIjbWkK&*%tb7k`mi-w96oB}9c|Mc}+6K()54N2zUW zpgZGsb>LCEC@9E;t4*P(?SHDE-0kKIYv>50E@;VIBVF9vA>EgFpHn*(8HT%M0@6Yg znnM$(4fFfrU?ylSAZv@9EG`?Savx%)T&29>`ahN$q5-SfUa!4d7GY@;AyfOEUi6Z+ z!Q_k1i0S;UVYO)T^mn |Fx^u3l90Rid^#fjgf9TvmaXnKPf-C#lOF)sL9dIgXh|Y z_;VQFEJEn+Cr`?KZpPi6CT1Zj z#{_!fr6Me}I)b57hM`lxr|?T#-jp@D9E7eX#vXhI_7!`Lu!#9Dp7fG L%nxrf1;3sP&27x3>jVG$R;`aFW`J)N@b4Rd7fS3SvU z(kc^<$&DXihMbua=qx3l-7{$qJOY$0{1PaSb#1FHj5zH%9J*+knFI7l3@O>|lNTaz z2}l?lv-YzTP4B*+4+q`NimhkI4057JP Mvx|)KF5~FyA;XSr)Zv6bGcf;$=B*88&o8SK+?XnFe zMP>Qv&5%r7BA4&6bETK`+GKB%NtS0}hV()%%$LR6W6+1hfWR37#dT|9scgOT*55qN zU^lzjRa}nG*+}`w4olJqV|TJ887w}~lqqkpG*fs(cF_^&Z7!g*x#r0*rIpS^A>>n6 z=PmH7ig0#HgaLL+BMnw|2-pJ^+uJF~xhE)_4MXHHxCCU%UMffZ(xm1#C#m}zgTkgp zuF7FFjGB0gb~mgCf6AcgFiEazW2W}p<@M;4lDPF2UaKYLNt>GrjXj>K(`*MY-BQn* z`vQRhfw?^qJO96((^$|!wvPZ_V7r6gK7DG-R$TtA-Ayri>BhC{r%v>se@C6ki8N8A zUl(y6vyYnd!s6oW3*FE5AfoV+2J2RJZFO3rts+M0{@=|(rjT I3!687R44z`4< zDIdK#KKc>i4wfJ*jG5Uf9}CFX2)|#0tFDs6NZIpaFtiR!A21x}L@Fr#{er%&G!y1Z zt|>3Es>2%BEahTaA$eln_eST^XiZk<*X;fZBbL+jn8N?! kX<}e=^zV4Sb zAQ_wYk8_&ru1#)q38tHq5%LwCab^^{lZjCIJ@M7}vZ|?RPV20{tV`}pwCI?Ol-*QG z%g?Ciqc_?m-c(>^(YKS3?!eeIEC7b!oT&Lm^n0=46dKEK8K!e3w5eO=aNLh141|`m z$8BX(5=sJDdTm)Ar_$rtW;yi>9+uoFuJ)@XGBT#|Wx7 pYc&&V zS;VO>d;^OH_LH(#{NS6Bg9WFGZrdddOiOi@%LMLSxjKGg v+Z!vj zN7O5_ftDl(Nh)&B&@nVLdDHh^Gbn&zj{c1N%&>nNSkq=ksATo2EcR<*P{PAM^%6lz zW4(((yQKSgX?%&qB=VkR>@cV00pk(1I~mVEyDUdFXOm61Tyf_Ym)5qTp%?eF?z3&_ zGyU}?)h6xSw76sJm>API3^1aL`}|`vgIE@Dx{0bOhF0hlb2s6yO9HUvULGd{Ju*Ez z%w(3KMbOW#1FyL8FLwBpshKTN>4g_zrF(!-XB(1%l}kY8*no8o98PT_ua=jXM3|xK zit|E*7FX;n5hIA1gCha;G{bUvfoND<>Pyuhs=6Qb#KrfZ;(`-XivZW;KYQaUBNNw< zlg`QRpZEpW*9xiRapC%C?5YsJDfJN{{RAGk>!6UjBKA5p|9&xazJKpGAz_hczhiIN zj2~`LjeO?JdVFtwbB(G(1eOx>jh4? 4HF2$VO)4h_RRN>(w}51ZfG#7BJ%TQcG4it3=I*ypP=2g7ckJ+qX1z4;I< zvdcD}bbgqf%Zd871aoqiu-Nl;YPT) zyJGif_Rm(_pSYq7(5 zI>#{u6)Szq&g7wxkg)LBESo6RTh5=QYk EfN+yXmOt1%m) z$;wS7+Bkl{;T|)!t(L#+3xW!6qLM$>XR@=nxKyUR`e+jF!3MXcb)W`YCQC&?z` hxW-1{`)6_?NOLS7Clh|{8ATfRyH}gHeS8hQVn1N$oIVk@n362MKx1tE zadyc1YMW!WGaU1zsJTXh0o}LS4L$E~53XbKvCqFb=PhrJ1VxS(i2)l}{Hl?E#N9ph zhY^ylzg+C 6i0A{4Nv$YTW)*Bp3EE)&}W>4O4sZ&}K~SrH(?xYpdxg zFau02%+bo8Fte2fUr{4e|0SU#E=AFO>&J%P@~z)GPW|(1VXd%34$52X#T20w&jPU_ z%5%AuP@yK>?l2Q)D`|stmwHsM13zxJ2lGQ#6H3JZuj`s>GoHCAXBd_Dx}M @g_~zHPWaz>E`Af*=D}Cx zI9i78!{hsHBU}X?>ll%V%gD$Wm9yo)06K-= zVzk?t9crByTPmenWp!#{YyZ>-p6qX5P kwZ~UNB4XQ-Eo#S3sq%^n%V|9drH2}ch8xfAtfG*dy?tuVT5v4Y z%(7YOp>I#m)bz9?EnDU->gCdD&BIYs`z}62bHEIFWK)qtK-R#JYm?|T-uqAIBt}>H zH4didqBfIA@Ef10+1Vf|Ro&GP;iqeV9r;Ud8BdxI0@bDopl=XqJM4+|cXI7P7LM-F z+6}r9)7 ^J}Z}_XR0?R-LysLi}{LS#HMh&Mdy2+o6fncSS$Nuhh#{F7$>@ zvpM$*e5@HWJ8PQXV`Q$sA5rr(Kb_4LURfxv80fkX&q;hWE}&OJLF!s|?w9vWZM17@CH2r$E?Q+25)0)L z?3!v;5_1KD@(~mxDiY$S6cE|H7{>1U2J5;CS-o~!cmXpV$2r8i@Zk498&=yP_+nBs zMk+5EW00czwSh5v*Uh!g=c5$y+w!|@+3HxL5fZfOj>W^ttbH6RA==fuagKrJ#p8Ap zOe`!*4-egv5BW0AD0Xvf33d;wXhof!+7DOTi(5VaJipvsS@X+{#A!Q#QFn@BaI{Iw z%WK}-hoHXDw~|Rq8sC3ai%I0z&=JMVXP!+^8S0*>y^^DJodb#&0d^>o#9|kN!}Jh| zUq4S+7|UGqM+)Ut(59zyYU vjSod;a??ASo0)g=F>3Skp+=&e z?qitOGaQ}7(|J0++`ok
n_qX{1;q^MS!dJ6h}_istSPQ0_}=2~^LYLC+M)@a ztPmrYQfM|Gzxgy+j3m!3>>>oFrvx%9?x9f@#mSwT#N+$yM9Nm>>sQl^Jl4HTTWwuT zGX_=hnI9K>8N-Aa>us`lBJ5C7DKQ;*VyHyHMGOq;T6%ahX1}jBC8!LV-UT&I7@r3; z?J^?&YrO@FB0XU%!Xn|ZgU>H7+clyGxEBpXH_6Lbr3rOn5-6gB6CPR5M`AiomZA{9 z>cCxGCdsQPxuM!F`SVxQjlH|2CT*E Ll zg=;Hci=1y8G-#D4sR%zGU0$4zY^aD-42(tfR((==hWujY>*BDJe us-QnIMle}k%|1q%*V^eqzM!5&=D6oy zS_VFT`RS~RqU+gbHl4nCJoheTJSz?Q O=a< kogI}0h_K AF zAidnGwl(7GzXM(LI) 7X_)*@pj{+7>StRuzQwR_e%*zF(CV7@XS=M 3rNDWUUcg3$M z7zwkWZc$w9HX?U^T^=H0>;jY7uZTEhJLmSNU-4>bCht>SGcfe!m5C9hW??wUa1k+| zBoS=N*W>l+mfa(NRyWpW>9f66-^$+-wlwo$TF9lXrW5T~32Kf;S&g_wTBT^=c=0Oz zneIS%T9NeYp93{QB*-tDnq`rlb&^aLuw<<)K1gW0 Tnqlsm+|#5~FqVR&~g zYI#I=_nIxP|7Ky{i5ibPOKv-{upW?Frxes~JJc6W& c`jVkMO0 z+#fR4J6;Sye(t*_`GiOQAs+r69y2T_nG}W)leKD23Bb?X{nAOV?}dvVzNZw44f>*Z z7`nD$ZO+d+laV*BWQDkl^d=av2JwzquAIEG66jKRU8ov11s$S3SNJ}dn}`~%@Wruh z6fQ=`5WwfAg^#- sW?zpI3#bYCyl((zU=tTV_ph0)DFGSu-G#}OD; zSR9YLN8Wmy2~bM035y8|HV1PG-;DUDs_y;fnk+)u6}>IrYBC@%vSz-M)X~(Wcl2Id zv>b|OU}O|(DG<{W{41=t)2ZQXb@1XeJyQfD@nw8~Ru1vyCw{u_aHfrZ&wt;J+d~jS z>wJxl7?^&4@PnR9ZA^$VgIu+DvD(U6h}Oxn?4KySA`o~x(?uDohN=3ct76^Px$>-t z1qGh}qB2kLnp<6$u5(YL@G|jO{&pl=HUEsA@i{m!)*hk1#}m__uc=#2q%a-d?_*x? z5{#{@KgiK2=zP&<*v|Tp9ftALZfRm7w%PEdsC$V+1BDjU)xU4Ccg7>ES=p=U?A=v# zeb2B%@Cg7L%Nh^v+_ zeQCc@hgU=U`4`8TnHD}!E+r-9$+q}EJ-^Gg)uA8$4=&diO adZ}jJE)k3}3n$tf{MDNxOzNMW?iWLeQy*1X=E&X9u_gm<@nQ-Q1f_7zcc)9J@ zWJ_|ubKY K^%l5xe!OJBVx4X}{Vl@8$MsgZ*fUrCZK==ke zQ#5soofzC{zU3aZ<*0SPySJ?AeKyL;aDzDc{R8*B9^81BS!k>mhOK$3t)*qdYG+|# zF)^%Pu)aq@UjKgw;`xk>e6sb!Um53UwWNnMf485)5j%WZ;$5u==AV7HxcW2VAss3` z_S@IvJX~oOyLDF13%k~-Aizs^kpRtt9x?&hy;;3e&-Pm9BA`>((}SR*qDqd~C@W`2 z5(YL=$fTtDF87`6wkgM#;E?Q>U&3CMOFM6eZA9Y;B20sfFioMyLyPrRtI7RTpfuLh z`nvhD@WKXs@E%u;{#=n?&UC(QCZUhK-A~im(%T@-=d6*TuBk%$gC=xg$h4+f=f8%z=5-1+A<&vH(ZhN_!cOj!LSiGHZ+ASw^+1c=zZI>(b=#F zExx&VR#x@}_*QDi0EUpFmX5VMA0vArMTXT{T~eLvjDDHJTW&i $7h$$uF~bMh$3AmGx ul9C zaDd`h8tLO8^-T>!Sc}>Gd7wD+AFno(0|K5BU~+wUK)POPFp2x|aOpoHD}JM<*Yqw+ zFG29VJz)WW`Jw M)m7W= }A8 z*E*s3&v(M)^TCAL(?qP=gLWpj`g#qvNtu2NHg)dHLS+>d6mthEpo~)zj=8TwGkiSq zr`-vb+4!aJK}DdFhUZbO0I2|w=lSEXT3R#e{3XUZBeI{|3%||dVM_R9yNnA;vO+3L z8hClVvhU9K=PG=)`zqsOP Gf9l*R?WA?eRlyUl^9*VIM+;aMeF0c>)dGQmvyP;*3<&m~)fii?zH|`V~84QZa zgYBNRee@SIKY!9&XF3IIYHO$es?D|S^gHq)patBP0#QEir56`BVM+9eWQ5h?5Kj-5 z`=Bek2G+5c*M96fOVm(~+Zsucb@0~LHU@7cX)#KpgDv?GrS&jHCntH$06k4jp4X|# zNl8O3+u0Rg%HH(!tzZNy_BM-&w*Rs;X9G37%vuEr~2oh5=xB@Ch;9l>GH|u0uJq zwZJ~YPt$ryCMG5vC0Xw2#6`Ne@bEpaLOVx5u?t+4myrp|^f?)7-4^S$m6xym$t(^S zdL9*FXfXwk*ZLx00k9Zd5M%itMFj-_6QKmNs=696)Z#BiMMd8z3H;jLo2jt+{t4BK z@FSk%+jK-Dz*po)K%00aK4p#xw`rnlkd!U^`a^6nuph|`GlKa|Xt%`O YM=|^lzEYvP^6e*YiCVs>L3%sq-$niU|{wBJtr&| zn#jk;XNzU`?KmZVNe!Z{Qr^x?hm1fZy+_ M-D1M5#4`fsR;H I#`N7(svD1Jki0g{zDbcWaj=CQ3K^#6=#1{(t4|=2Jp3R zJXxxkV`4Y}E7|-VQbrFOinW$o!rMp^3Q!dR7_;kk5$v P`o4UgUfM=FD_Otkw;% z(1OPe?k$kc9pQZowU88^h@#+6SN&5vz)wj^8aqCY0~sZ=@ {v?Uam%23)5u2USd`{<=>AZla7t=k$QGEjye`hTs1l4tP ztf3lcy^w{L{KK+}62+zaS!^}LmDG<{z7Tf*dDZ{P_HKxjk%f##!Ay`H0>S%WQoZ>s zSnvrDwlFEg)~Y$R8BHzESV7lJjc=!wg~tNxkYQ2bd?l&ft~E^t3a2g%F?&FpPcac< z)Y7wyGv+x5=vpp0_345NYC%B(Fz0$+hj;I0XKwv+WQQ?N5(SEc82*R%vD74AoL{7= z3Rq{kB@>d6WT?Ig0G(g^Os%eR811G0HhifA3kaVtowy)UjO;MckF7`nmQY9ic(4gA zES^=WfIO5Zs?OR^$0-PM-qDDFB@k#b5KTFayhlPrWTWVyr>D1cJRoEsP$1MrpA#bl zY%0!Q8zuCx;XGutdI9N%<^-7t;vspaEK6vb8KBfHEG*Q!)dK>VKlK~$ZqtX-DwU*9 zOD`bip8 #Xe^RuMULm6v;{}xyimb?Z*Ok^id1ib zjs|t&*tb%cc95k2WVB5ng_v4cC>Itr%lSopfhCTz=fQ01CI-+uUc^Rm)xQv &F_e<}Ts0elN;H7XzY=f{|2ASl;tSXbQ8Wcx{OWKiX;gqdfu=&S z^KYnJHk#_|cldGvLa>k?R{mjeVfWmtp}Bsp$Ny|cO%Q;k=$;$7gJ@+?wacH;$&FZO zpm~n3ukQjrmU#Kev?LgSjX+Cw#1c4FtvU}|tQ!RC7n7l>`90I=ymqbvc%TNL6>Dm8 zGOv#n1(GZq{bJI|omae %oMsht@I0d8 zPamnw@B)`g05p3_MT@7kSM#PADUgY+9FzenuZf2GbjM?Ybc~F?Tt=+rauUwmU7xyX ziIpE`QC3g&mEO<+NpTheF1mj;o(sagMC&|ur%aE%Lwg$R=4}6Ye3XzGVAeb?2oXhL z`6h8qii1f@2>tcY3FCgz)xruKl#oC~q?@~HX8YW!c`gdCvQyt&F(tico13gLtTJj+ zzGeDkWM!hEQPAUFQa)tq5ePJEpbu#yEG;S2CS-LuM6pS!)2`yx+SYsMzI!!XZY#J| zKi%L@oBM_3*_eus_oQY3qmmmbD*#sskF*M1h`r;cp?a M^Wz4 z8%;+ v+P?MGrcAS)8Zojyds(NZO-zAG{B7+X5_eLN;J*wA^3JP|y zcv7w&l90*#*`=%E$chp70fn$Xg0Pf5X2+?MlQtYMNe727a6Rm^^Wldqj!-+(Z@q}) zT>-HujPJ2$1bD@z&=2Ds;zYTp3Df4b8 O;Fnu;Bs}2C%df#F;?<8lyqN^sbvQ-?h9L?Dh#q6^?Qe zyU5ViB*q$Yc}V<^GbE8VFm?#&y#vLAbYV>DV^L=L2UKtkjPlcrj0`1az7C_Tx{b84 zDWrg5E){?ZOg%2S7r%I;DfPA8qM+8#xj80Y_VR3luCG$=@0MxNJ{-q_QxpdfyY&JQ zT7i+#(SxD>KExW>)0)P{@1PpE>4b&m9h4X-XA|n)CLYRInm=MQkdi=9ZWKh=fawD8 zFd|((`l5fg-?_5<9Id;N_LbV)HMdC? O@X?kke585<_P{I&pnAk`)eSM*|#>_ONPl6h=hA=0u z&2M6&a{qoyP*+?6ST2un8F@}IGc6+{2cLN~Axl7kPg8w^esy2xf6K?9nlmM(RQnkq zRlWaB@SDK1Ia%TH@^Th}VdaT&SMFj38H#1(w#JbohaU d5-1i8ok zG!l?1TW5G1>MUo-^*SF2fdou7JX|q8UD2P`RJV){?P7Sv!NAQLqIpdKMMpTPWoTVE z3t7?&r(4-N{Y?GfsTYu!kfeT3EUUgDimgJTiXyM*89VU=TB6ea{F>|o5bSw9IZ|}lV#V&hq!dAy0R=uW<-0qJgP+Tw7XBi zQs+&5IrXQrK>T9i9AEutswF05-wu3q6lQe{@K+qfrbAEEUz}jftOfP;G1BWNMq8E* zhFgQiesILz{AsDPKOCwvzlU&_l<9>la_h|Cg2Nk2(A+y|fS{rqz@?nfy3ca>GPO8U zhPod+QiS$b7L5f{2RaA?8X-aPsf4H?Ap*fZipC3+*BZ-Xg&zxGuip|UB@VYIBo7Zi zFM;H>8kg_?k&`qt>z8J!ECm&o?uom|QM)rie8wx|luFqjKo=E~38N?eo3w`Xz3O zPZWSe6ps|piXH@-`~4Av;hEM7ky<~;jP|rsbV$05x-Td>S!XzZtHN@u%o?Fm7Pi+d z!02Pi;>e$)&qWgqSpAE3sIwT+P-v$D