From 4230972ef2497b10d6e399150a976654d8aadd20 Mon Sep 17 00:00:00 2001 From: zhaolong <928343994@qq.com> Date: Sun, 6 Mar 2022 17:20:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=E6=82=AC?= =?UTF-8?q?=E6=B5=AE=E6=89=98=E5=8A=A8=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 42 +++++++ example/lib/main.dart | 62 +++++++++- images/float_fab_button.gif | Bin 0 -> 93162 bytes lib/shake_animation_widget.dart | 3 +- lib/src/draggable_floating_action_button.dart | 113 ++++++++++++++++++ pubspec.yaml | 2 +- 7 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 images/float_fab_button.gif create mode 100644 lib/src/draggable_floating_action_button.dart diff --git a/CHANGELOG.md b/CHANGELOG.md index 03e42d3..8d301d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ + +## [3.0.3] 新增页面悬浮托动按钮 ## [3.0.2] 文档更新 ## [3.0.1] RoteFloatingButton 支持设置按钮大小 diff --git a/README.md b/README.md index f77acf6..5be9c2b 100644 --- a/README.md +++ b/README.md @@ -144,3 +144,45 @@ Flutter抖动动画组件,FLutter颤动动画 }, ) ``` + +#### 6 页面悬浮可托动按钮 + +![](images/float_fab_button.gif) +``` + +class _Exam223HomePageState extends State { + //Stack使用的Key + final GlobalKey _parentKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SizedBox( + width: double.infinity, + height: double.infinity, + child: Stack( + key: _parentKey, + children: [ + Container(color: Colors.blueGrey), + + DraggableFloatingActionButton( + child: Container( + width: 60, + height: 60, + decoration: const ShapeDecoration( + shape: CircleBorder(), + color: Colors.white, + ), + child: const Icon(Icons.add), + ), + initialOffset: const Offset(120, 70), + parentKey: _parentKey, + onPressed: () {}, + ), + ], + ), + ), + ); + } +} +``` diff --git a/example/lib/main.dart b/example/lib/main.dart index 946650a..dab14f9 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -68,7 +68,18 @@ class _Exam220HomePageState extends State { return Example309(); })); }, - child: Text("开源中图底部菜单")) + child: Text("开源中图底部菜单")), + + ElevatedButton( + onPressed: () { + Navigator.of(context).push(new MaterialPageRoute( + builder: (BuildContext context) { + return Exam223HomePage(); + })); + }, + child: Text("可托动的悬浮按钮")), + + ], ), //向上弹出的按钮组件 @@ -242,3 +253,52 @@ class _ExampleState extends State { ); } } + + + + + +class Exam223HomePage extends StatefulWidget { + const Exam223HomePage({Key? key}) : super(key: key); + + @override + State createState() => _Exam223HomePageState(); +} + +///代码清单2-27 可托动的悬浮按钮 + +class _Exam223HomePageState extends State { + //Stack使用的Key + final GlobalKey _parentKey = GlobalKey(); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SizedBox( + width: double.infinity, + height: double.infinity, + child: Stack( + key: _parentKey, + children: [ + Container(color: Colors.blueGrey), + + DraggableFloatingActionButton( + child: Container( + width: 60, + height: 60, + decoration: const ShapeDecoration( + shape: CircleBorder(), + color: Colors.white, + ), + child: const Icon(Icons.add), + ), + initialOffset: const Offset(120, 70), + parentKey: _parentKey, + onPressed: () {}, + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/images/float_fab_button.gif b/images/float_fab_button.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd8be5389808b820d925c981cfa36e1154b1a089 GIT binary patch literal 93162 zcmdqJbyOSPw(lD}5G1&kQYaLPltPPZk>XI=Qrz82aVNM0cX#&!#ogVDTX82vik958 z-SRu{?0xSW_lu0&FG?wh$q76en_)13SnPxX6>aDdD+%0GnzOm@9!D zmGNEQQadP9x@r>ItK+-8d*rA>>#X|NRg=l%1HXqVue$+(y&<8qtgNlLx}mh5rG$Z< zoY5ymQ+ovqmk)-XN@k94t=v>TdA`8)d4U_ujTg;}8_SQI$_4fo1cwTMqxr!p0=St% z;4D!*UvUCIF~VSJ;s804AO*5O1+rijLdYA^khkO^8r1&k4??tP{j_L;wOJv$j|24S zLUdUnMo&XbS;LL!BF)(%4LE#Fx%|!8!%cboEjgpDd7^E&;%vDRZTaFH1d^PEQncQB z>!|vDu!X4G`Dr)@XuCu8UZ=ZC`+LdyqEHPw~1wbc#vUz(cgThk*tiW@uY%7@#^yIYz% zS_Z~i2FCm9hC5oj+v}&h+IxFC`@8yw`g?{3`-g{n7Dt9AM*A0srspSmXU0dSrUn8<-rCsP-ap#iI@sSmI68nGe?R?x za(W6oySTi%zrX*r-~LBFfN+4rZog<{rYMOkN8Uo7oLW@?_<>O9oQ;0BA;~l4*!qcY zlA#YcRfyES(@94ViF&>ukKP)LeIi{fw-?PY9M7$z9jf-$Kp}rhHA?e>ufd#(`4()mz$i= z_Lqn1DpuQi!k3X_Q7vXlbwE}1hL&V&eUWss>2eKKTSJM=58d8f?ay@UlABP=H`eS; z6}~OWw+O8!c#GPkwS|@YKc08r=qbow)VRKuS8bFrh>H6H{%cVG)N>NF0ma$BnTHFX1-#n;+jy zs5M*Ns|FZaEjtHH(=A`6n>CqM1sfRSbPX_cU>9a-=F)smCRDAb$;N(O%ATs;kw^<= zWm%wwGLcust%tC-l5MDS*6z}VQr7l_Fr?P3Lm855j0PF1V(Et%@^^cJ8Jbc_LZ4)1 zzQm5=?sYJX7F6LL!haaTm=AhfN*@}+Hki!-%?BpVBrz8^9$+HGS_^xbL4|s5hy+K^9gtZ>%yOmW7du3YKQGd0T?X}-nV6R)uogZXW zOb=o)TW8u)pHi`4O)xWRI{Gq{yoDJhf~79U?4=Nrmm!WWUCz)7oWg9#&Xj~*JYT}oZTmv48ptue!w=S;I;x@X-m=WS)(`UZqaFkyF?|IP@bO~d21WZ5)cI6 z9F$yY&CH;ZYKF2Z5|CrvQEzCe_g*k=3CdVnqaKv$1AB6 zF_7-hQ&Xt#KKXVCgOs$hCKUFGo+X2U&4g{s1NnU_=i<(!ioh)SQq?k3h8E+1?_`JI}!bnY29xau!V!R7;n zne!43@5WYE_uJa$7v`y1o3W~^M1%`cO42>7ZPg035bZS0eHM`QTz<1EKrS_z^O-SY ztAoCy`?=~9o*p?{!MCg;ZW7O9XC=s5S%Y$K-?OXYhkUr}H|hk=GgBGJMSZsAmXsPp z@0*5;)@&9^RIWvZj-x7huLotaV421rt3BdY+hZx9kYu-aVYpF^6)K?!V5e=ISmCu- zCVamx@r**g7Mo75Y1i+GjULn``0cw#9*kmkF=L#k)vVw3&^)s9hqwn`6*!3{dqD=L zk`yGBPG|`V?tP|n*}k%Mx|1>rnZLv4dL(FIjx<<2D5H6ORN|Ratlf+?Q@L+MYR*CY zp&(|A;l(#K*4-WT9huq2A3Z>8kArF<-PzWgiwfHT6N2-n`6SMO${=}5{l#Kb{2~$Y zCp@M4Ph{u6U^!+)J`gqH9#Z32cc?Vr^VZ{+U6^#ltgvP+1<_h8%rySsFZ4Jt_&_;N z1HW3Utsg0~b{bk-x%pAoj#F+ED7&;yaarFlUv8T)w6x84*)SefZsQAHG?AzUJN1`4 z)(tHmyIwY};Z!*H$*!CxUpDW`SGdj&t^8=bY=MPUxbMiWymF7Pe9~WmQ7OB6e{b`zXFr6mgb(FhE$^m`)r4NK#ylZ>sxgPdyNr}0%64esZl*K+Hi zk33&W9N7J2hu2A(u6o!#Kl>~v`<0gS^zw{;4tE;fxJ*y1thum>2$b8TrR449l>7`* zxA6f3ultq4t6~e})*c^Rpo(rki>n*nVsmq877noV{CKy;k#ar!8n@cCI&_<>=^8%5 z!G%nyBw)1g8oy#x3uk6G-@Yco~s08-83m2Kn5C2jMO*Lc^Q0ehZ|5EOR zvw_1YiWUBVGuuV}P`_?&_Kj&}R-o0PF+XJ&WxP+>8<8Uw&fEF9(OU1L+XJ)e#;-Xu zwe@|hI=2d<3&oD!Ar)O$@f!HvO z<gi_m=eO{U)(u1D@VCK z&<*5UzHHs9+W5I@zSFdpr|D>}BM9?V6ev5gcBrJ&{vNsddG+=2RqpHi)0SGd&NFM5 zVYk+9|FM(0hw$r3sPpN|CoOv)@T_`uw2n(7e(q_(Kb8*N{~%|(E8Zw~UApybwyMU-)*oLFE*H8yZ`T4V;H$FfI(vce zJ0aud%j$^xA5KoE^zhc(9X#Waww1f{u{P%?c#hWxaQMP|XQ2-+096QPzKc$vXQuAVWXPQTHUVJF91&1E1bZ0lHw?jU69MIbF$0u*iDvBIiP(Nh@V$-) z=D?1={%w^3mSnnes@^P&0dw)d8k;~r(}0>vf45y7(${G3l+Yf-F#@|^TgO*o`>O`4 z6k^9m2K{^wq^GfZ2XTA?Kvqh$@`qr>JBO$QVZA5}zU^~(5A(|g2K5*N9fCq?`?1?> zfTfI{WV1n8K;$+?XmbFt+XmX(kKLUKZ8G(6H1Ww|3~e+9_Be<3CWa36Yje&9u`q_@ zm|FTPL8qOeZIvOjiCXd>&~*F4#u+X0$-<|dv9=PmQyD)ll0i46%;ML=j}wExn`-Z< zMlAPR1d9aUNQDhTf_|!cDYplq6oy~Unfj_mev<-Ws_Br6peZY%W!HxtNSTMzMBNky z5@TvZgQ5WQQEBMmG-jb~?9t&f(C{E%Ts6z6%IF(1Og8wn7X5Vyhgn3AN&pvmcw=PD zN>6ZTf6NkDWK}#+v?u~79lPxu^*%F7x+wND7nb~9cn%;A!#P%PFQz#^TFnf~IuQ3J zDJnxXj#1hy01#aX0MR7*8Joq1sm4)P#>c3{pfO=1fdQQ~Q9Qf}^lNd_E(v(#rm77I z9@hzI4RJnuaXP^XV5TVdy#xa3D4(RLcLQMop3sfDGe7DZDXFB;g-jQqsp0(rr>cl82XLro1*wjvg?bR!#D7N$qz@4Mi-NJSDFv zJ`mG%+7x?0Ev?TCd-^JcUJ1PB5Pwah;mVn+j!! z?<-74V@g)SOg&}_No%mcPfE{Ji%jHA9_3A;smy4MPrPqPzS&Jgewxxrp5~RGa3ht5 z1W7|9PsB;iK*P!inTaN9Ex%3{R8OR8G$p{w^$W_fQ_DTU%<^{3mI?6}GY|jlf`;mv zQ~e|At$85reCk`XoY#YS{!4^}VYb;4qF#fqdTiEhl#;xmhf z<%CufA*l*BLuak&Kbn3ukX0FM3Y&$Ggx^Nkb$RxL;(0qWbxU;sTc$FnbM-1n%}X2qKpFc z86S*zrQMW;(;;&*YsaC^CQOiVAi>$(eR=;9) z5a*AhEvdqctd>2ne6E2;UQ#8)|3wBPh12Z|L1mR_$(L6jfQ;i`s4S}0m}_}n*Gjm3 zAp+DYm((^(*1n5G6LPCHW3FR=UB>~fb1A7iGr}0A!E^*$7%o<;(IC-*>L3R?5@5eD zrTRR_VovCn(8YRhS=3<~z%aNW28zt#R;T0EkVvWH$c{P;0Hhu?q)FCt+*XG0H|l9L z!W+vSykZ4e|U<9gEssvd#5Fjr|tLRw-57 zL(L;i+GC)WUJWyQ{_4+g=B7`~wTnY74bbLHjfT%nRc}&Sj^DR#F9LV@t6!JY&+@mb z-!>ydn%=8o#5mTkS+pHO+urgwBd=lI4gq5-kpy5U_lu^0QnYWkU*-;4ca54-`7xo8 zCP8*o37h74m0HQB&&W%yB&98dL)es+NGTvds1l|dktxod~Zb|c??VUX(`mBkPjL4D5Bvqp)OW6@>9VvXP2iqhP7In(#@ zt`{O_?IYLYzhq+xPwm4O=?}L21WoM=zw3WUI*`LZ5G(fu>RuhD*^{*780B7_csJ0) z(4Q(Wm@80cIXsY-Iv6L{Rd6^^u4(KaiQFNGsC zX*pUIFsj}@I5a#OV==TRFuKJuCb&HsN;P&hY_`-~wX!sJFE@5_ICRM}&bvM8JUoDI zGY$+hL>(FEZXU%uYQeV}C${QC6CCco8zL_=*&Rk>1|dBj8GC4DMk+XoFEa6@#S|-T z7(71CI$~c7A4a1Toa7LkVhkI3jDy5dHU%LW)ufrElb__pnHH5F6CarnIvSV4(SO7` z@%(67G0p8|%QV%`srMcxUj(LQm#5TQzNR~VRX&=~|7r9p>?@)CSCbY$nUTS_%QKok zXV^WaZI_L;1gDiB%s9yp8Ojgqj?8#?=$hfoQCZFU9?hz=Ph%)ee@dG(iJ#T90bq{4`p3Q&|1)Bn8&4Az-XT>eqdC3v=H=Q(Juj6 zI}K2-1xUAAJb$^EJ+j!k?8LtIwTyM)i{R2u=wj$kK*#dpAgkxF;CvI#^2CvLme%qt z>tc_`!Wg_|SxE)BEWf;pv$7+w($_NIX|+%oe`Hg}ZTngtjTa#yzUf zp|HVBy{Y8!Emmt>lu|dqY-8fBk5K>3&@i*NVLoP3RbaTfX^TTkp*=ns(+E-^$kO z;|<~aZ-)1J>n&)S>{~?X+uGVoy7wz!+#NS`6kVZ>nwAX~p-ngI9fp7%J5Ru#)(&JP z-~;>^O;2RU-Fp4a%66#d?xz(rU$!+%L#uPA1!SiWR^d`v8>zSVg^G!-`sOt?NCGmU+CN-Gbr^J3!^ah{fHH zlRv=7L<-aX<_AIP8a*fv1Js2d-qQnLC>@Qq&X1QL^#`JK3LUDm?ekZbth4F((O_sO z9q9p(b`%!*!AGZBKwBl00_~&6@*8;NNDd;vzSd(H1CVe3>EVS) z+qq)I`3K>PcPHoaZ5Nskf9MPUFx2^B?DfNR>>Qo_hlL_Q2>t^I`(Z15X|HqnaTP!{ zj^vtg>AH$UG=2%eyYj-j;><)hhoA>!Tm^Wc2YR80!>=MAUPlXGo50XaXwVZsqUgiW z65FnIbWt+!Zn)TQa&>O<6>na$-@L56;i|kThu@SaqEtM)eMxi6DT4CC=C(fLmUH~J z_2l*$_^uO<%qeo$<#pGIhr*?EjD>fC-F9~J;3tOe<+RSv8Lyvn89x_3{+xnm{9OJB zSQWnfhIcRI1pq1C?^FQRKHh&+oCl4cfieLnZGe-H_s4DX=Na(xkM}pL@Sk{KY!d9p zj5fNc=*WZ|L4d4BXm}4FE99z9==TtQTsfSm@1uJiP9YKgm^XSPCFbKyso}h>JVgS_ z)UYO|9Ya!zL2u-@qNyFlOi}-RY(itXi5%U=&^HS`dv6Q1k|p!79Ezv1)xHEUp>&k^ zqG1s5@F>k3&R3&PQ!6#q9%ss=N*-3tG=6d>=bGlxMT_naAiIAbeu3$Jvwt}MN>DjhMo#O>ohxa9lAz>!{M;;rk zRxA8nqt%t4I$f~6Q$b7W&$_o4ObHH_WM^Ig6e6&XH`hV=qj3sbpbsVspH=o0Ew&a@;fmutmTjGM&BT$(4opWOh5GpPD={kkKc0%J}% zhYWLmRaZIVVP%X=BQ12=dLX;eZcQ3SP4iKv<`8-!Q$MpPTYg^S{!zAR7p1zQ4wbpI z`R)#DNMNwDSdIe;<%Ow&FMG+^sE@#zCFeMaoKlAncZo(fI2{H0h zyRXFZCSQ_Rhhq)5pR&JNL?uM3?L zM;ClzJg^aVT%L8B#Z?*E+!`F8m*!nKzN_K4x{ajTW|D!TarJsZ&(fWrD9dX_Z_w-E z@Ro28C<@U0Mr+gv#PJ`{+Cwx!8Z@ClfbAi=2m`wGQ}p*QFcsL*wKy@~J;&5SaJAp7!7c(|M?tU)7o++gy7u~k&MO=P zFx%k+meHz9iX4DX^8)149{dD{*2QF+z7au$>HvhYY!m0-2`@ zzKPO9Yjpy%KfLV?wcT4P4|M_ub$n-4Y7aR&69pO@<);=O=$$^WTWdXc(#N5Kn%G%22(?>hIPYzD@&d!dmZY~}ixV|s(puBi~ytq(q+^9bQ zj}Pq63x@Lk26%#anUcg1ITDBh8RQ)$M1#i1@CC$}2V%zSqwxWvW#NxNZfbVEe@AX< zZn6QMib2M5S*8fg<_PulfY3H^(>C!4G|Mye3o-T!GYyK0cf9}4;0^Xp?p|Bvz)%OS z`vI=2dT6M7VqpUN^)!Vjg+M%gPAZvT6-=;7ru$~rgDSD(I@#lTS$I2}pHD!5Ur=yB zNJwyKWO#IJR9t*aA_Cwg#iu4GrvAZraej@dVQm?yS^t9M`4<<4R%WH=lttBKXXfSS z6c*+cmllg{Qd?b*Kzhv$tr<~W2&C8A)ZSD*5jGb82kGsnXY8kEc2^Cw zw{#6OjCM87>-dKcfE^KXXZ>{fc?CosrAME|&e22&T-w~V-w!R13-GS}y!j8_* z&VKwjzq-1(Mle4FTJr@`Nhz&`inJA{9rRUZbp?XSZ_b`X>32iPIL(*(Kj-vC(1?Xl zNmu0##4x@sK6D;Ut`fDL>rZ9kROs;G_qU zt}U-v#jAXnd}+H0 zM4QE!Q~&lIUoc~5e?TZ>v=rYZF`68{T>GQ~zBCaUlyu-cHk7ndsz(C<+m*x^X%VWw zIQ|9G7k%iXa${Vr+wZeFK(TKz1KtVmln3Y&boHepMD{pk{0L=C2N`EEUn#Ba?cjCdvyJE5((u6wp4v>Ryl z08~djmB_3bW0xp>rGWpvr@G?NYgl~*`wxasPwICqv&!)M4mpo&XS0oa<(f}-N|aJ{ zCpRk<^s5Gx@)-HEm~yed_6JPLH0jYXU3O!WNu>J7)vX2$(Y@4p95&2t?)h9!5D4{_ zo9;S1vnD7Z;(QiTCO*>BDOIQ}M(&U`yb7v54_s{gEBTig6-|v!$d~X_g+2LS(vR->|-grkyvcvkWs<_j_F6C zB9!Mfp;SKCof2R%=8zQ87Uq=OskX17;<3-%f}29uh{hWY~(yZ}v57 z`91CL4|ZqmrhG;uD9Mf#fzKJ=<&U4K+&mUK2+d&?>}g*leA=k!?)SWRX>UlVb?kV4 zFko+K2SU&|5oOJoDe}PY-4i15nq!AbvF<}MWB&ZTQM1v#hcJZ+Lbpdqn3C+T$ReFe zK0Amxe`A#F?f=?r*jxgX42r@KW$er{gpx^!ps$1i0zAOh56NSuh2V!05%@*fPb$Wj zxoR#%>1e(Y-!XTd+|`kDMxx^)Qw=g08jHx8>NDoHM^`y-b7rEPGK;uuYLBAq& zS6vtB3Q=Y#JSSw{vy|1s8cgVXk&hF{6sCU=FDRf_@vii#jyC%%(jTG`9DYjNrIiWz z%Abmy_TDgZnoIQ7D?K%=30XA)jFAY%^Fl_w+=^!|e@BC3Y zIz4r@GM3=r8|DyROaTzlk{_D9qFg49q};6^GpKX-Zf0yAQUqfyA|0Z z^`4i_dN|G5NI0FzkIfzj5+s|B+LeojD7k0z;nT}F)=s6Jz-_o#ztbdGL)YGxY&zEM zhK4+{*FXqw2haXPKsA)_-)k7&bh?ESn+!Xom0 z4FvVuFSKSsJmOJ{zC~;W5^7($S-5PK{B%NjL#IwLO!^D0c`Sp};k9e+=fsshq{H)= z&W>$tkQ48Tp*1Xxdeh{yQg6JwRgl|N*SCp}Uc9Ng;FPQGqUT~1D=>6Y8?p|SM4wO- zxebcNtG}Z)>f5V65!|ZC-)QZ+UrM1WI$?N|T0;-nTJ<{=|1L;a^?Fcsv?~5LTDu<7 z#jQ^4liU7<)=U+ulV^wjpfwxZGrG*f0B$)K)Q5$(sh7h$Lbt!sS|*14?kfYAQR~8L zuh$~_f|NHCk>NGDPvrMxG$@9H6nrU0 z*HSJA3hm)tg|3^K`cVX0TQ+|CF}aJby}I}pTBE$3D;qtp&;VQN(cR9Ehu79%{sdw_ zzL^cRM#8cbJhFDXU0myZk;Xk@Dj5h_{H9RXI2&fE!^uClAj#ddBY)x=<2q`}^RgPR z`ABc^b`^lpcQV`StVG*LLSH)-5r1$GRH(wrpU-tF}EI#Iq@gC%f^ ztcxf%PHL5%a$&bDvA^z^NKm*a?o&s$5)ni5d4OycsJpL%*EGjkX8Xca_khle2iPw3 zqqZq+fq51%L5_o*R{itHd5ph{p2jKL>A|+n>&6uf#jEEfn#UTmF3YoQSDpO#-_?ZN z(Fh(o^ore|CPoOXGK-w2CeWb9k2UW;f(K#HtSr$;{ak)McGH}Yer6ijuur*qv+%a% zoILUtNF?mGc-wlEchWQ}x_Y}x*|wio06EqP_gP0!Ig!4f^Q0L!<6`ie7mBS*9{@hv z{10!};Pvox=5geG4dJ_8jB6BI#q;A2UKe{2!ku{)NM{*3_g5Isur2MMms3J;0MPn8 z!L{4T3&|P6W#T$C>jevh;Lcff^tohyK)%0(kX%_s=pr3rAk(%(;7;B&i59m7NDp?s zA36IR)q2{_dZW!j7_WRPxgbS59&A8gu6lF2Ij>bGUx6Usr>b6js=k6eeuf1QmP}uC zDL)xib1W$z(JOCRGJhW~pDhy~WoQ5BTCdkveyVf+5%J!KAAE>+{SA5iDGHHTM7&j0 z11#rEc>DdW$O5qoyjj|j_3M3Y69df{JT&S9T(1I6^8KY4{UEAAn(^MYvw;StL7_or zBydQ8BQP+GCpgg5)qy8SNh;VYC@6t3IQc5rt35a*C@^y_h+H)=C($p@G$_IbDKaRy zw7(GAapfGT3mRI( zIk3Tl+l0Yw@b=emhIB!Z?V)Okp+!oHvpp!>k?&6#jM!NS#o-sN$ zjpGr_NA36HHR(pV1w{2SIz|9+sFR}ifjCG^(K?dRLyV4*B9TwkV&Iv$QSi0s7DuGf zIWN$7G~*M@Gu;^RYrM0_7``H7b~C692Bw%=thh_8bVHy(Q78=D5QT3Om)u}K6q#byfZgn3 z>U^Do04ZShWSPFCZnc;Um(-Sq^IpU^B9KY)OO4)5sbJCaE`!D_5~pBWpdWjM*G;J%vkc=gu>L>hHT^~S#ar$V6!aL zM*kt+Tp(W-=RzFLU`jV529tT_#-81MQoQ6%0?K}-zgiy8jos;WE)ieCWpI9>YM$<3 zF4Bi|yM`PTSdP~~x@~gqP(y~Ey4?bKn$~ri*C4X}(?Ul$h0VBGA$3EZCSN?XG2ara zNSwR?!OVQs?dpSzUN)q}@D+Fu7QWv}&RmH4?2<*M9_X!J@IJ7hh$709FE4eW5c#sO zx;Q+#v54EeNQ677Nj)+?I5)&RGvD07fUk7VIlt63I}Zy93sQp2jd|Bz`jDx(wm82% z+1@s|Y)&ZK!`H@Uf|3aAzDW)QC ziE?no=6><5Yq`vmSO7E@d9nC}qHOBMF-oK&EjR|0QsJ6ph(b5c5~| zg_NReI5gRmRbWOxf~GpmRX%2}Aij*umyTjaU^V!7B^XfR#~tYv9Ql&cMPLt^jIxZL z-|+$%x1m%bEL+Z<@|oSjcAN1t#$LEAe+mmt%>+e7Hfh*YA+ADl*y3DRkop((c<8GG zz-{qoLlDIH02y};aNCe!-c)-vTl*1IXM0;?&+qK$R_D@GcWqM3VpE5U;Lq%J5U6Jv zV~w?2U4R?FHKm@?4e1p>hQCIA1Z6`s$eq5u-cO@GvZ-OOuAW=AK8d+8M7F`iqA?5F zxK>xsqTBG%q8>EfSnlQl<;SSvZ~9WwQ0L~BrqLL_*wh9^5ViV5+2)>G_XwNj{F3G& z3-=MXFa6MlTFRDB+Zb>gkms7+h(<#f9Mm!gGEuh)`#jz}?lN+tmZ)1ODdQp*HjFHUL%oIkc7GL;Lk&E7npQ z90VX^X$K#EBA{x;)a)?nZ6{0Zz@zHuuxJ29Hb2DfG-BwaJ8VZ;`m|coM19y)chLE) zw1euf8EDy64(;NVYvVs`IBe=<5in+x1K_5Hd(d<}(d>HN+)gS7Sjg-yhk&SHsPD$R zNoG4F4!a76+Rvb%vbA<)2%36j2jPeIrjj;YmPYJ5JgRo2QxKp$6Xc%RYtf7>UfTJw zxdC>Ir$~dQ90@81w=cJ2tivz62bf#mSQ@JwSG!ZVlF&LlN9vRs2Je z*u$yJH5jRby>iZ-*gZqTb(hf2?z_G*%a5zF7#O8(J(?r^q$AZ9Ez`pzXO1Iwk)2a4 zqt4u219$a{p`+4$y;(e82>@hO1ArBQgQ2QvWW zMd=7ScogHvDgrz{=?);W8prdn#n&1GiHv`71K@Z}^!E)-4v*sEOioCSUdm0-TTPDr zXmO})U9g;BS?-~SXO7!vwmoQ>Q{Xa3uPP>2i;%<_D~$O7oeLh8{R zgmn=vxky>IP#3lsb+kYzEa)qTn3v!l6n z1YK)cNs*s8US7Ntw3`08dc(Sg;yL+5Y5AsQ6*JsB#A>a!WeM*%0F=H;sQvAm%9_LY z8nFDEz{tu2&ov_4b(?@yy7X@hxZcm&*B-a7vmCEK#oc&PhD>|>jb35H;s=l`{M$*{ z#!&z=$Nh!~wLKTxH*xLF?jJzb@Xd>|&E_A#SI3*UxLZxV-*~LIL}xdd(l^z^EtG{e z74Nsq1-G<>whe`5Uwdx9Pv5p%UKa}Awx+hQNZ+!<-FCQNcPgK85!!GYwHF-Set5r= z-n+qFzT*c^xAeB&30Bw%Jl+WtG7q5Mv7+9~Fy4J9v>Tu9?{U19;%O##zngx)mp8M) z-M*XaxtAZlUxd3~624n@ynpDiUrBwCCv;G1eGtR7=aasXF?!HYeh?L~*TQyac)1^G zeHe*;_@(?%r+=&C_;7k=&z9}TyZ3Ow`sf~bG*W)_R_ZA3_y~k~oXmFo(RkNU>2O=< zh&vNyzxDWS|4}W@5DeGUUl)Zt@|fBa?SjqJO&8_Z8Ux1@pr8c&iEHZGzT!v&!)Zlo zrQQn%pdM>uV0*2(*}yysR2&lGtp$)&#{R>*t*8#eL(Zt49gxJ3mjeURp5r9Bzj$W5eIsk`<0Qa#= zWCU7Uy+mfe^3%BrP`pC2xkAu2-?6I@1X>fmLI+>RJiJC$x(?L2OwhSb^}3F3yG|Cq zwm-Sf(z(frxGc=LDQ>$diU1(c8dfHtLiiR)bNl7wruNw_)*6!VI7%!0w*BE&jmT*T0Q1&gMqxx`NnR}b>Kg|;8z*&n>P5}D*PS~jE;)?SaqDH0|kSO#c*!? zn^=%I0}VKK-v zeJOm{K67RgW+S{!ueI=EAd&X=^k{LR;NYu>2N7&`6>9ai`q&<#1Hl`?HHj{H7CKb;N`w&HSY{SKqhB zB3$PMZ~gkCo+XS@;o05apx9&sn0_i@f(r!miikX1pxyhxh|A6otSoe};|zOd9=zWFRnus=d!2%N=kgtFTeL5W)>6~YaY+H=Dwcd|eYqT0rF=P%LuJ#W z^~!msDOpeNuEi=>2g$dyuv$vw2)ZwCDXiXnFhC(j0^kuKqoBEa7`_o9z309^NCVDgwHH8#d3I(}?FbH1|eW|s;L_-M-Za2cl z0s_$PJ$i)L z;c9AXIv$}$J`tvV(N;lmpP-4cv9ZA!MWIh57gOaztz z6NiWUX!&~t(xA#DCOJmQ$HaOjBqcsbRZPz?N=V65DkzLEDV6s_d*~MEDQ{4vOU7!II5s~A4dYHSRfbmX> zl$?^1Xhj9~y7m3>L*yAw{fN~l%lE1Fg@8w|{GHGVm89poms@!6*yVC}A7^&ZZEbs; zuPbi$GlIBm1?F?-CF2!^q~2jpNu$IuSSYk7#pIz&qX>Km--OT2f>W6``;nwB*JX205ninI|42{yJkV8jDwq`zmwMh`&4Vf4U5R|cUy$HkFg zeToIb#s>O4rDBN)$4!qRiDe?kd53`+kwY3DCtggFUQtzDh5yej9|mv)-~xz$FN%hS z2C?7O)z$wjs;;i?&!UEhhyN^UV`Jl=i?aH?sDycy&kjR$0;!k&?W(TfrvRpT4>qcb zbBhwKl9Q@boJ0{Ccd<1Zh+Gf*aI)?r01@Kz`)p9?8356`kgC8~v=%wE|s#`1c|GqZ{~tlYd3cWcZ%yvp<(~sMB?7pb- zHbolL_~Jh5*fw$|P>;LYHRkHA?C#<8$tOt0&)+LJToM}U91$B8O&l9%<>{oRhMg4d zj{FE2Ktzs$ik_JjBu%e(C7Eprf8|)2G(aY`I#spgN$d`#l^dSHwCCJM~(yi5Y-7OL!7ghETWl%9L zbc@R}z4q|W<@IjQD|T=p{LZ7dv36ZukhdiYY4ZhU0Z&zi6w37XEFxn%R(caP&W@oi z1uCAKq@1e#@#K^{#XK(kb4ccP^oOZzlC59Mps6K4_3dOt{|t%$4hfS0T7U>Z;J=|5 z8qlQ+H#AE(HRt%yU1-BHHsBz7QhM^-SJPV~{51;~Ss;ieh?CDjYD@X5v^X2WVrP03 zQaNunb$}LFw^@EICoeo}8FZUAtzcE#vlN8$4*5?h>s ztAEn!zx$2eA`)dI^*BHzOX<_V3s=d^h$`s^o;*2kUaOaRa^*nc7mYkQ=pfGg52#mQ zJk9JZ}G4korv(f0t3B${Q`o*LjX}x`u^cTky@%2yPKB7Ks|^>RKQ+5VfXuKOF}I8u)&Bb$xSt_Y+ZkqxgXSQrzPsJc17(`u~AP zazvt(h>-nXb>(twl6wnD<(+nshw&+yomP{hm8+HQ#*ibm&h5h5*|3Lq-sHBIiyh;k z2`IQM!JSNzcSsZ+5hTLolZpziSHwTukP)jxOz;Weg_vN3 z6SVV4abkl0<^&T8oIo%(W)%p%feti)hnsowq+Jg5`8oU#x@4+oN~gCG&=hbCA%S3q}lPp?MSyA2_ZA7!ta;YBU6ibWl{Y zBEQ98usDMeI3%f^%(8CeDZCI;DPNdGF^!OEl{1uTpROw@RCOa&Zl zcWfZhE8=o>E-Z9J2x<70V3N815*0v54**n%HtN5=!OZ?!O#R(pB5YxAwd!1c;(h{e z&-{~@ABTJjX156*LOU&e4o+yV;WMCO1F*(zBVy|EGhNp0)si9&3NS z)ORsPGEr6rvDqLI`~7Y;gIJB!32;piJ&gyG5hA*(0q}^h($ZCb_nCSmSkE!hQ-G*B zq`>FcpddtSRVHeBi3qJxF@}i1TEPAnvy3Csj5I*}zridc|0lEjy(>hNE9w<C)_6yWcr7Yq$WbcTTV zut3eo_=Fg(l+@_(B z3-%BA{m)!RFQogas$H{$jxvfEC~ofb74)g3$-Lal(;J~S~8-2jt}C0lC(M72ZRm8e%T-d`s%k0VMQo4* z!Up_Ah41MQM(~7G@zl;Cuf`8l-Qy5l(ke25BT~}ICRQ5MrY1KbV;gZ#%)iuN>`-=a!^X>A#JEo-(Vu!x_{uci4uI9#|L!q(mD=}`%&AF7W09-L_d>njz@gTiNV&LagH9r2(J~q`- zvKORz3CP%)R8J!zk7BV+fawDO`VD_%cT2v>NYqC@$ToDIxLOUhgCbb;dvnk(gnF09 zb}7gsax$_r5QmbS_N879aim5Kq*=ejDk3nPsF2pwZb!n41Rs9q`vV+=tcA+DuM9v{ z_wm?nu6VqQmn(FJm%dHcuW)#4Po*D8=eYDeNc8)b)A%E=$7t!!;dh^akG+7ez>l5I z-wasTT-5dZk}ik_D#RrQru)z4^-of|UT?2|8>CTUbYh( zQVY&h|X)#cvh%E@};SW+kpkmGU@7 z_xZpsq?}NbYpgCq^hh4r$- ztl++KSF5L@k`v?GUnqoH#JAc+CFqj|~CZync z*AH!x&zrYoQfjoz6P}-vCTq7raI&9v&e9@+P#YMwOAk4DJAFv9V!nzgkS90=-q(*n?z_gOH;#HLD;5^oy+@!^4=3?N8!$#M$!oEB; zkN3lVRnyM;e*T3v#{$+CyMU2cZIk@GsvLMrmD(XzD*Kd>DzXAna!7`9Q&yp6(I=!_ zYY}esDL=O5r~*`74J2#)?g8mDRz?w|2){Y;Akt{907kYFk#`u1d0i#LQ>|#N;m>Ux z?uCj7E3>n87*5GvD^}cE?y$RmIQ`~Y2|l6R>4?L_?8&uKgZt&%&h$Ub|GZYrLn1jx zIgAvFte4qst=N&#KT>M6UhbSw;d<3!v|`VCh5P*qx2FElQU?%B4qoZr<1kj2yAoto5}TSA@?iyf9!V?BBj-kxT=U8juY)7AArL)Ro*=>$GeO^ z)KU|we1O9?{f!N^>G!J+>)(AeaPD+n=C>+eTi~!wc6xn*X|@0EyTDwtvH&BHdihtz|wIzD;%S)gg`K5*D3XZKPN z^RSJ^!CDpIuuVqGQ&S*)dwy!I4mfOczxw=~ej0rfM2yJW-9h$UJN_2H&~Sj%mb4>cQ@h?ouB%%8?@4!Peg3&ybvxOqTZo1Pxh*86iiN|_2s|f z*^hBdJo=GGsqeb~+Ml;@>cxK5rels_CiP#QP7hc%&h0xKyl@7Y!DwQXAB$02{c@8l z(p(fa5a{33_KYKAx%Gf(*eU(5vzfSXl(hOpOw(yt0;9QCb0|9DWNwYbj|0b07G^=o z8DHmP)bS|Qr$O<&kXiipqy5`kRdMZCKX4`{+Zwf? z6PsR51VA*IF17O>rb|scy7kZrV0v-=EA$^mtPd&SL~I6ibN?(RzdV*!nORZ=oQ`DK zdj&NOrA>DLKcuUx>+W5qZ~b6m3a~_mCLRN(?31|{fW5~uM!tRf_Wv)ng%vPT0)@PU zlI*$zg&d3=Wqs>qPe?mT&nQmTO4!qO(CXC;TTy|W_@~~3vJbMierG%jr=XOlWuO>75*C~~26vEKhw z3Q0*R?Q!QGkx9)@4i1q`Q~qbI?0d%d8$Wc&j$Z*|!5|J44354i?Pne7hD7t2xmXIo zIIO~X_n-2zgd>qy4k!Lt>Ent%RB_$k@E8L|BK0XX|>P3@|Ho%!s+h#kq}AX(8X$e zNeo2!aZo>$q4LRaJ>hOkzD8*a4x#s~#+{oj#lgFqGvNikbsl8vM?4?a)kwt&@jZ2P z+tn?_hboR*h)bDKutgwf%>_aD`nbj*=w;He7!YW>iv z7aZ;H?oA4rE$g}#P`|t)PzXapow6DC##Bm+yhKc25;ZsdLdf~HG=@$%#f#Si-g&%0 z>Oukv-dRWwqH3am*H4Daf-qvZi|B+fjaYSY=F7j7a*=#0g-@OJ@`Zpek}6B}fP%sR zr2|kUylep_A`(ymfL+pu{ZA%F9?wrN0Na`W^E=0e$7WgqAHnkdmLEjLU)t&NX&Zd& zFTL;prTs6!$J@)%d7`hATl()VbP41QGW!>+(%jq}s0y!(3Erf{LlmlC#N}f#>BnO; zPbOraq2`68eXUWfYM!iz9Q(0I4FOu$o#@LoKGKmtW7WZoE==6Zqy-S63I- zx3X;Kt4)l`mUjA`?uPch8{PMrd#?S1z^4I(5E%D{dWOb&hsW=YO#&@zbaZs+(Nn;k z9(^)1@obJ|X9Azq^oynEFISdVR+e9{zFK7l6h3S)_fvnr8-P_w`DIly6Cuv>g*3=D_6IHyiuPrOxa>9zrIoATQXXPg7z;q&Xt3 zad9aj`rJuuocPN*XCxz$2DybtW!QbVjEXA!l)ar%<&||x&IrT0W)qohu$UWlVq2x} z+zEBy>Aa(N&6b1IcLQgiJb1&H(-vMk+T3C@GIe9ZioI!O$eM5Aj-j>k@*N&an8)f9 z%icbH1+_sv%jt{9;CR|(Gyfn=Al$~hSKAv=X|Lj}CSA{ysmxQ=NFhKyzif*(d5a^F zlBK`&#hNp~*T`V+{#@acUfHfjjhrb%Ji9r5WD|~FD=2s#xy{66i~N+3T@O+M5+by# zb0^s*=S=Q95cbqd0EaTX4;2+jg0AgIs%W#DE+CYK^dC2UysKKkkIg-rU-qNwlln6v zJn+org$dmY-wM|&4o|V2_qngUzv}%J>^bVFY`&*{g1!`7`>4Gts5(1}H`*O*I$1>$ zEYZ&$94zR%E>;@JM?b&q_{byQt@Si+l}`P!J!gFUnI(fA(jA^AN=Ie6vw2Tb?N zaXp?Z^s5gs4~vX>VG`Y_G@|NySl#fh*>m&n*HU__9> zNZq8pojgvw$jlBLMwUSC4_BH05DsmvzP^hhb5I8-<)et#j)dH1gk?yvqpoj5zw?x~ zVne!VTZn1B>~4#0ZYB{EZG=eX2^Ga4FxAljN8!q4P{E0I79nJ~`UGt!TB{h;&W5w; zD~vRR{ejmckPm1#XzL%QzKe?skVF8Ag?KUHASv-M1rP@>AB#@^D>gGIKI;rM_iRf3 z`BYkXczAL$a1yO#vslWQ`{JcFDW&w(vbwCQhTNLweEJO*_7q-kWi_g*mJa&u?pj7q zLq|VQFRgt8w>Rqr03^oUp{~I(!0aE`#CH}lv5IAKW**3N%>0i^0R%X}P5WIeupf+n zsg%L8|E!YNXmIml{MKW;_N&N>^1x3!^T_I&#>FQjXiH%t?K!3N6Em~obR{@1TOwq$ zi?WTR^H0O1jEk$Yj3iE>^{zE!X`_N98e21sgaYMmbtFn1<52DFkC!_N>$^L2-%nv^ z%v8o#YJ6PeFwfMu36~G2;mo)$$HDf+@oq27>nW2PM2+`T3dHG8Qy=!xK3%tIcchS~ zf~)50kTbf-eclGGjT9s$W;{5seEKyE49OU@AFksPPXK{^o8OmO)a~VB2z+z>j>rgNNJCLdz;e_Mq;C#XL+#3z@R5Deh5;N{<^dx%kxp^qf>JsbTsG zOi&(m6S+>@2jeYy+;n``%RuwS71yHd)4qnpt+wHJE=keCK^qzmZk&3RuhwvA>Hh9u zu$^1{_)vnH!IWl1u6y01{`kWI$wKvhGM$$dE)BT4I5rID?yS5W$GJb9D_inQtmoMA zB5HziKyuW;Uu=U$GDwmXh!DjmX4VWEfTyLO6uNBt3j9PJA*iDq_o7g`Wm}o4L2&fT zuif4@jSWutEgzr=KD<%tsCgdu4fStQR$)l|AOVV4Stm|PYlRMBZN9$J5j@B44T(4J z-5P9(kR(xaEiUN^fo$wwsI^}qzgZ8Q0b*@#(lW+gTKk2>ZrSzQd1n%fH7%CS(LL1@4^|;n@mo-JB{-c z=ZvNdprum%dLgoOo&>a%?592~+=sA7Lybru%(syZH0RXvDYHb$y5bZHoMfj-Y<$i* zb7;~YZnnRvS~e&cv=_M1F-U7JvKjrR!LeqaLxIq0mo*iBO zjeECtEBnd9PVDBB(=(2Wj)_$lfm58}QU1 znC;!W3Qr_oWPjdr5bh}nBry`RtkouCXI&b^=;&%k5>824%4eVG?RIe2Yo+3q-a9A$ z5Hx06p?|6r7Zfnz{Wb+AD7ttK)=`h1=8o9K2jn@LV`teArCXzbOQkf&u7i@$vVC{m zjw&YKNc7f|i`RS-?jDWS-qV_?IcK#du48%wv~$|P z;H|O@^hxdaossx^1Xo^!L?|g)VI#baL~?k<*ncWkR>1~=Qa43_U7F+#Nk$O=cvb_OEt>)dMrb6a)D{ z-UPkr4LD42+vWE7Kt)ojsR6vNAIk?i8;_QD?sH%d6TWN-=L{&ff=a0h#-UZ+@yXdv zcq*6^?^GC#)~UimaKUaaAP5RiCHU@P`vc6HKx6>QEI^R}e*$VtU0od*LCws}2n2$g zo7>*Kd(WLa_pdB4^>_>u*Z>xInwop=@|Dokf|!^X0NBEFN~7}2qpwuN7c%QCxwJNI z6WD;{DGS&tD=PtDV-Z0nu-)mdWAxNBiQqke2>u4P_WKV3U;|1Gz_y>W>rWy${di{n z>GQ?SYFlDe8^8izzkScDwm-4$Hy!-n@&m^Y5+@}rJR*`=;{d28CQ*}9E~loYXJlq& z=j5hw@d}HIi3;&@<&}k_gcS9*SkP;0x9G?TAj-3Z@#b~6@6flX3*5Mjk~U%V_Zx_H zC5fBeeb{d-{2&&qKQh&?iJpj*zV+n!?JeUooJi#tukXmsaOu5SuTyEh!DaB_8(s60 zk>=WSE&J89l{O+>})PoQtn9!m2Z894B`)cPUn*kE{YR^e-+yzqHuGc6j(94Q-BQ9uhlIYyP zXHoaneaFRd)oV>_q~}lw1lt_SAdGb9Fb$T@*C+~-60{1e#w&DTc^&vT?SJQ$?ZLzIs|)u5sWD#n_3~U zGKT|p>w$+mYe%z+_=EQ2?G{ot#f2q0lszD-Oi`raZw|ld@+#WG9e^JEuLV36!;Dq zlNFhCpNWEfpH11WmtS-s7k|~6$1>$Ljo5eIIf$3dAYIl~PWP?nJ4VW`4~%DW508C{ z^U5~yE7jO>e3+25_bHV}0ZY08Bw0>tk@Hm7aR-&pyY+QkxnVVEnPM>i$qA}eR@R>R zGXCI0%s|;rIGaDEm{OR|;|(^&bm7de#yQa;PU~Mukb+|6b^=Vrw=)5)NE~#lOws|a zek)Y1TA(zlh!hS1f`dKo?>VstXchJ#^Ua3wd$x9TbOgEuz=6-4Im2ogEGGPWYy^P$ zL>!X|ha@w{#<;jRpkV-$BS3}$U}lYtn@sq6W>o_Vm5Up0u{bb*%9S@ayTzT}I!5>P zHfF z{%>g&tk?OU8b%nGpt!s`UQ-jVE-S{1%C4Xw1m*NCYJoiU7F`@qWjb2Mxc&~KR$rX! zCKao=rR^@mOtz~#7A4z%Z|sh#7-A@j*I;~_fyYjT;|McL^=87)QA#i0*5ih_@b5P2 z6dqTgK7InZtacPL*co9KcD~YNtQ3cnu!!_mZm->#82HiR!g|O-%X632LjpEB+KNSF zL`$i%TFiKbb7H58cn|zv$Z0bdXjUE#xPJ$Ew(> zN;p1$?j7EK5DA8af2B$Jkg!#sB($<;_^aIOKtJvkrbQJdYs4Su_)e8#BTQZQ=xFoh zE3V#u`{Iv*t!Kix!;;T-NpDltr#Fbli;1Ngol*wVVF>JEj(hF%LuOi%_mGXJmO;gi zyU`!RT*AUklo!V?fCAVNaPPY?)U~LCy~jVMNUWX_zyunJ9xyXP_>c*UF&H1%Aii?W@ zff8sL0FiHLX#rGQU~C511t2puGn>T#OJ-s=3nsf5y*D~JF!2N+@<6iyi2TUZ^iPe6 z#V%d|>;e$UnayGa;PRW%m5-nPo}B-8b&B7w7HAn9ERMk?ATF<}rmm(WBf^V_VseZy zl!&@9fmTphpew@*&n~Z^!1>j;6xG%d3}v_~n0ht`744pYFhO58bRl6r{Ma!#$qLA?!%BJ z`KURX{Kcrsf*g1N!%?oN!zTpgmuH`pAA3mk%kREmsO+&LaCPoBR|Y*o;k^ztEiwoUbHAqQtvT1)8;?j?L94uYShoGr>eno~>d`Q}ruW!_)5pMI#KbkO zuv15SXjYPe$p(D;TKwO}4$mOp(fGQ;U;;Qx5DBAV5>9Fh6)-b5RPata+WLBYC1e+) z89Wtr7b;K)ok8?>aMX;SYL?hl!w~29*1CKVG}jHJRYV!vY>-Mgt{s6+q;yCjL4v##f!7L%T~Qkivz~es zN}-h7H$?&YEy79(S%HyGG#{;lhi2z4*L|H9ljmadE9R^SBpgyT*tpCI*?I9%M_RdR z;Jpk&aI_=zigTZgCVF+%hx5(zVS>F%B2_^XC0o7|BUXIURY&(Zqqt!8ZTS$Vx0X>a zM8>!8J}S<^0S=X!@OXgY|5{!yh4jTO>KSH|UX+#NN#+RMiLx*x&W<5iIUqa8U=#4A zfnodvtdhZ>-C`UR18mKh{hCOCam2yFfkiF;Xce1s^rpfV7@P5{VKAvhLPEmdA{%q_ zt%?eWY*&BI{J`VY{-?-R+W1qH26VRT?Y%d9n7Z`uaRg`>JwxL_DsEunG0Oo0*u~h> z8Kxrrt6Mx@S^+i(fXSb=G6zilA2$B0AC&gHCH#jUfNlZ%IgwB}(1PL$%4%v#a$J7ziv~-7Yh#Ixs zt2Yqr=|*eaAFWqI4pj@Ajy)|k=AX>rkbSmLVkR~h!>PEqS}eN~30Hc%L3qCwrts+# zZbKOK_Kl>@X}*hm_j)?o4A>0?zF#I2a<;_$FtUoHVP!f3y7z~uhP1nfC$pc|nHYr} zYP(P^5F8w{-B#00%s1ubSkYsB+!^mldF{%)@RS{@_d%5e6Fh8OkPxYS0v_E+ z;J+NzD%Z0wFNPS&!v*&fUIotZAds2lFHj^#%6p}BG{^HrOHKjg?Dx~w@uI2Zd7@nZ zwduU=Z5C=YelRx) zWEopJziPp8=#kL?gxizW1{3uSG-vw@v0SD1XY+UtM1}1E7mF!pu&4%Lrvqvs%TWh* zbT*g1&;7$uKO8~=Y%V~#2j&%)mI&BfKwkky7C_?w#QV@xT10#jV0Qi9;{ilPfRQ9$ z0U~Kt$;H<)H*>kb1OrHmIhEIcx0#YEIzUS3bb9OU+f}U{wRZq5f7AQwy35k?dwP00 z`9mpEQccHug+xsXV2t*Ntk{;3Zo@p0n16!FiCylZn z68NUe4R$H&Ow7S;z(3V+Qd8s&Pdl{LJ$Fnn*nT{lUR>InV{mYr6<^1~_DplR!`YzW zMc}D7>;bA>pdrN7HJZ&msZq-qFgx1S)Rk@7qztwjS>uEWLkaNeRF zfo5#8Cl|AI(R^^@G3@cC>Hv*nO?Xr4k(%Djw?Gm-G=IJOzg{q>O_5 zzUu@AIbniHZ>BpgDVQZ?%D;Z!8h2p(_uNlTmMP<*NxpKg$91&>Z%SP$F$ntR(P^c? z|785>7VF?3a}x3qBUY9C%@U&W)q3$kP!6B(jGdt)eUHL0v-eaa|+CgKArei-_&U1G5xh#e}m9lj*zDJA&%8;U3TS;n9Q@d=8}r z<~A;LmXqS6H5DNC3Rsw*6woU;lo{bf42y6YjCz4n2@XrcY`bj;hix$!?L^p5#=zMW zaBai9y2XnN@;tQZ5~40KuuL5{0`k(`&X(MMDd{zY3{zQi4$m!7iq_I`aH^NY&de`sV zF;y?&uv8v7t#JhZJ8&IK;N%%5atlfQMD%1E@6)7+$>Yr{=Fnac&g%Uk z(WsMtJ3-rv+TR-{LhS`Oc-E+3HjrDH^_{nwW%t?pu#g|{c(tQ?NB8`-Rxj59->vR( z{nSulj>xOyjN2!{9Ahu5!y7r2xPR;lO+TS4I4NtDn3EZFsN>FIU(s^R3i%-i9F8T@ zKu^F&>`z@kY`NF*Lg4P@F>%@oh=*=j57M;gUh!`zdNN?!K{>eqXG4|I7)n$uZlI1z zhOSl3589o#n&N{;W4D3BC%n#PE&5{h?jAFuup>pJ=pPJ@zlzXl+LuXey>*sI8R{V9(&$=I0$f&?gQEIHY9e3D)Bv9t zqSIB!YxL&Z8J7g%(TChgV0&jw0-=4UrTKaOn1P2dc0Zb|iBa$3cBs9X$JR*HA!3QX zo?YJ{a&LO`5QIBKP#&ukuN1xeNPke6f&cA?FBEa*hS5;sz*2|9Y4kfrq}O+X`xVMp z;ZjT(k8(6r$-NJHC00b5lBH42TQ0@tx-^854>`Leg^mUx?RDqZm*lXicz=SP5B6bs zw#h2FbZl+9oxP_0W@)q~FH20WFUKv>{cs{vwwo2_PSQ}x&k15Q3+4lzt> zF*h~$_Z-9YRF;?joMS$I`usaD@NdiczxJ0vpMh`onFtiOkf@lLumA=TwP~nu@Z49KMMfU@` znP`6lx53~9U8Qd%O_cCx=9lcO{h1)F>{DT)zP}mOxh)1AO#AI!N*G(*L+Q-yU=XIkgBKA!mI>X2?!id%l zXmp+=A+R*zK%%m$5?sMeBf3cKFcp7KGg6KtcOM$eJu5daVG7)-4C&wrAF;Hl_no0o z1_apQs}YVS*ILEXrK2Be7Db}P`8_eU_nOYFhnfV$L3ivp7{{G&<7B|dpnQ5ip=R1U z-q8i;QJ;KpJi23;5;}DyW9q!e>?4OQUyG6zzUHm9%Z=N);%ucoc~U6vh1V|2i3N^? zomJp0-nX4+^h`fmOmA&aNg>?V+4yRePoasyNO1oymD0Ig%6?sn1DL7Y6aq!hTiaVr za4nh(V_5o*M(qlu#aBYX(&b2$I^;U}@{q3`7s8do(|O>DYM^Xd^rH@trmLQB67Hap z--|4YD%~Q9px7rb#TkuDjWG!{RFL9XHQ+_Mz4qvZNC&2EM=Npev4<)NDWfssgC&b{ zT+viZ6CEGwU~#z}k-~LGV9pXH?%K7a#S=)RAT$`D4x~~vwGHZ$@4sB#{Gwv{TI+|G z%QXy`$_l+x;OI(iuYBc7-95eKmFt5xNA3Q_UvUNn0s=?`P*}f7%AaECuRz|>z1ei!lo0$<|X5?WrkOwr3 zmY%;G#->a<49KLtLw}mEtjGgXDFp&X|A^xK7CwHPut2&fjG4oWL2`C$ODEgp#6nM0 zZSLUa?DKImyb|Ih@W6)W8nA;a$SdS=cH74#JFcdScXr30K1B{z!-hsi?G`bj#0RUK zjZTi_(n&}^X)KYFb4=JIgLX&_nOou^TTt#}fG)lEmr6yQw{b+xHMrXK78Adw66Kb5 zW6Yf#nf5+IRChFg-=Nn0NEB(XPv+ry)$#G_$pF458p~;E2Sj z#CWS<@fG;=!Cq%^2+EFw^EuZZjZly;XPtM^k4){JeT1{1woGxuGw(wEIDKyhD2j@0 ztr#hJK-kukg+si>jaHcE^gE4Xo`;tkrM<2qD|j~DfGahli{f5wrjedZzg8)00_U4 zh{X|tWy6W$rl{~I7cl$lEJzl;E>emgM?N;+i%h>qn!&D-6noiZ5K`nANl++#LED&fY3slxMD(8=groKz9KL*OPxd zaV|=?au0lLplkWbnNEP@c)8y@sD&w44Pj=9G5OCfT8B(=H+wC zYMBy>OG-Br5&6~E@-VVSrS%OZrb^s3Ev=E<8jWr3xglh{LiJ%1-knd3yD2iDrj zLeKa6d-5xJwmf#jDJKGCaf^`UUqau;FZ)2LFx0)?5UJ8zl%jKREJM1;EX^7@i#tR* z+AXNLmzZY+iYD_5|2WyX@}Z{36?Du4tGX!jq9;<51Y#hqdY)cFx;C~7Hh{owVUML1 zv8R-8!(zW3UbPKI#asE!y?HYg}e^`f)hdm!tlgNA^8# z-m;wdQKq!+8I=R8r>m0hNq0Yn!4`bo6eV?{qTCKeE)pgkRtX{2D6yyqz;Y!~tsKhH z4&9&~3~3FkTi(W1>)jQP30bG_Gs)}N?nNyvQJdRjB8H z5QOrCM;ux$kmOz3f_H9%;c^2Z2n8y`oV_ST`A?8e0J(si0C9;4(!cwHr>7@C??XaD zHakMRH|ZzC2Lyzm_-r6A4}O|Zfyn&ark(jqGhF-K6n=p;^R5@` zeBwVM!0}epwj?h9^yP0)Z%?VNpUr%*BRrz({Ffi3EhcILoFQA0GREZi1QU5wlpRvu zEFmLKm!4biM!K|vu|JHBZzEDBR_+)(8+=wDMY{}}N3exl4m+p;-#&PO z_tQZ}Qp&)XVR=K4EGPpX_1wSC(Y^f#KVdhPe)fG2LZ~BFS6EZEkaTr>j6eeMU0RHS zQ-ooJGQoc+x9OVEQq0iucm*w0s}DQ8@@TJdR+;J-DCtSdUtWCykh;T9a;$&M)7fA3 zS^KO0)h`5Mbi|@@L{#MSp+3tas{72;DY%ZGIAOm1q_E^?R-S44|H{f2{n{;I zg@iVvyG+Ob&fOsZGyy8h0?pos0Cqp1!IxewD+iP|IG3P=oPwgFf}FSjvN{?i4&(va+B@0|l|^q>bBbzp4m==i zQ5UR0NSh2kdY~_QRfI7)GoU9>gvQSB)`DM2DF2euDQ218UwCsbM>xMsGjR)t#aNGikv`Ky=_aZ+0IB zO%rQQ^gPYeuq;G6V?b?cp8ACBK+6x&wYg`HKYACS`dRt%&Gi=(qw6-EBuZuSPut+Qx+U=kK_sjy32%W~FMo)Ykuwi|>IZ(&Xn`_l&EUcy3{of* zZ8oR{y!6{u;0ayxop#WorHmQ4N)_G`PG5H>8X3xhIGvF**bbDzG~FVKFpYiSOr5|z zJYwpUA%!)l2y4G6i?ws7qE+Jw5Tu6xWlIOD$)S9-A!Wk}gLStkI=jv2J(QaEwUJM= z`;gX)Y%?N*lVeNO4e0qitHH^wTCUIgAfN0Nq!oGj_;(;NxfF5%>=rIrnU_Z5GBZrY zzEJ0McZP5sf^|Sq($hEYN@3g?Z5-0kgKaPY!pA>FF$(AihyaYWOuYO@${2_k19-V< zza?#6)nN+mK)!f0F38+60~9d;H31$CM1g+sXl4$GwL1eS@0)TMGs+L-i;L@T{hcq~ zT%5Vy*2^N%ckcd-3$_o8{LB}R{>&E-PW(OEveNvs3(NnSFJ5D11^=&j`H#a=HILtH zv|fDh2Ea@5FVXvFx;GFhh?7@RQ&Uxx5#{Fm3n8Lvv;`=|Qaw3-e}1(xdToi34C;`O zUfs<)MYI=Ir=`749otOvKr!$(&&kZwYg)1?NDJD<%g7(Q{~ zUU;=duX{V%^z|#%?eL-X1>82-FY7qG7sp^8m%J`wY>w8M+kV<)R($9qRgwqEzq~|v zCwwQ{k}S-Bh**ieo?GH2Vx)1W zKe(2?W^k5RgKdP`ArOqL5k_J{=L)*BD~QU|%Rk})S1!YMa9mlZ<{eOtm#ZZ?u|EOoPJfEl z?gRQt64KZT@5(!53Tnc|)~yVV@bJ48cOayq>FrTh!+WhDd`k0PvE2FIQ@p4Z`F-SB z>lsk8I*_a5=d#Osj@h-N7KA!rcGg-;<`q#^fG4CJi!k;lgW&9xgB{uXRPh#hcSizg zLYx7F!+IvUtDYhSxl~zYlU_U||CoU@7$zD34%W32xGVG1Z4;HW!(8R4wG^4~@{ zYqk96VXWi9|8n;VFv7_Ia|M=an8?grVT;Sy4EyH+{Pj-@9N7Ad$}4B?)f86!_P;YK zHvR9K8&_(XC0SEbQ*^xrP^g<)ZZUJbo4cR4f#fMG_}|3@>P_?eAz*%YG6knmAZhc{ z{~mwLw7@4Pfpi`aws|_g2pqHhx&Ha;6%ft)x&Haz9ku~vXv{w<|Ib|iKS8+qS`8hD z>DD(iHZ|Y4nav}iqPqp~&h2e1jJ4$iTf%u&wrm|5emG*UFNM7!X*}}e>9B(~UjxqK z*}{VE99__4@y#^VEgu{VgFQrc&#^Y zOrgA3y}L`KqOX`*HfUX1wny%+(ILF>4*0FDmhO?BZJZJJs19RZDb)GHy%AY%8>l`X zi_!#3wcCs}DZgHs%;N@JOEW1c&>;rrcZc%FkLu0%$_Dyhu``om>@?4(~l3&oRURRT()%H+Vkzujguxe)@ z11?67ghG?80@I>bu|rU-iY$>7xm6a&iNd!Rb$SWtkQnfxOxnSqk82x=S!jx4AOQ^F z5#mg8DC~FuMFUGX5Q%N=JJX)|me@xV-HHShcBCnB!LRrhALhk}2erlRl9!L=u>W8X z&Q?sKDnwZ48pd)2zxWtNEB3@^?9^!uj%CwzD(SSV4xgrOH!hx!Wz*pEPsRoeXtg0T zEcmQEn+Vu;uKe3OJCVBqn_NR5KBUZJK1f4p#}WwU?EFsCWeR_q<4K?z&>7%h<4@7~ z&n+MpJ_B)n))qL6ub*Iw&P==NVtQe8bTkW@S-LYbaL4qjYMJwF<=njK#&c|4D$r^d3kw}}b4ISQ$NCx=R5oZ1yBo}&!C=ezHn4vFeX@x{v5?Ajz{)g6@re^!88eA{ zq2tFceFo+8cg2YqtG6zbbFOX&rr@t^)8MGVsJU~smi|vT;CzbSA-*>|+%ar#>=x%d zZ|+JE)bt-A)II@L3qHEzh816>$xfX5^ocZP%(;pusu&c5EZ|B)(EUbPCI&p{&wZ{{ zJGb!p_VQYGJ&{R@u3DpVm}eK*_4|Lr1s297ui>^?082Q16i&_|N+NZd;F`pNr}I-? zxX%(236S=p6pQ(XvRj-5ydYFPlt&2`UN%3=rGMOz4YE7dpd;3Mwx|HHr_>{y-4^Cr zm}84)P^`2)?T+vWOz9+{#a1}2VLGJu<~bBS%{I;xiNh53RXGQC2yZmVvMA*qpa~0VJl<+D1TnuBoj9 z)aSaEJC!%vHV-r0YyA~~1*#HQuK}!}%>eArl4Oa_kAU@>&3!!JqRj8A1V-o;=2ZrO zFaNKcp8>c={1dJdxiCCDXjBT2TZ=>TNoyIITa}cW8)@Qrk$Kl@;!q-*gwn>QMl%&* z`Yk$I-mJN!)5=Ja>vlhtOTM^ku-Qy9>+V>zi0RPd4g1DtX&hf_ypm3+g5W$9sy#9t%2K!vYa3JU?Z9jyozA2WtHQH`e&ts zMC2k@%j_)e5-boYsw0HQ_A%OSB3f^?=3!Z3Vpdg3&bGE$(jk!}q?2UF0>r`odnBD= zha|OZf4|?xsEyT@VPgG~pDIQAR1gp;|w?m&4KV=4(3zyo5d*`0N0g zTNA=b0TbFW+<@=J=6+&M2%*s$2<4=HBV4hywRT5gbf*|ljE1b86K%5?i^sF}QQm{E}OD&w;A0NyP>j6kzY z(az*t#9=0!i;$Nj9PFSUymZ46TMYesIS$^Q@7S9zFKzCr%T-G$$dgYY7fSU}50xkS z;5x8i&bIc7DvNg@xQ>s56IMHz;9s4hLj}Xt25Dg!0^3X&TDxi$ICOoS2mbd`-WyO8 z=m4-|^Ao@Sk(p;X#((e0$FbrjKX>t1Y5AzUGT=EezZdb+0r0M7iqU!WX4X31Z!x;G zi2*QqR+#lVuwK)-=}`T;O2G=6+#O+_Z~?@&;m6N5n+33oH_P0`+YHSA65E&rp1HdF z$5jeoLw?gV{&#vb8j}>)Tkl=#Cbzw0=9r_Xl=}nQn#W5m>4#@tOY(~9oCymL))M5n zcmar>MXFedH(7plvutPDw>aF zhd*l{@-0x>KheB$FhZJWFRE?26lTehdga9Yt*{4NgwdPA`CqBhfN89ACRLrSI*Bdt zq6{&VyCX7zk8!~#RHxT-t~e$n z2y|>oY7rWmPg;{yQOm1ih+$%fAE-TZEwhK+R;0zyB6U?SlOw6Eb@v=)(UgZ;$VFnVu%3*pa-k$mix~JK=ok z*P&5v>O-W^$C=KDG8_mbZ@g(PNhWKnDxR|K`rve1W`M;Ei9?lP{|F(BcU};H8{pg6 zg@{Bl8&_}0pWw_5Zuvjly;oQh=-2j}gg^o$Aql+*A#|jK9;zX91O-J!M5T$KsEDYb zpdq36E+8OHI*Ndbs2G}bMT(+=QWXmd_HmqXKS==n*LPpv$^PEWku#SELniB4?Y@5t zvI!*Tm2D3vKXcZ;ztBkRR+-Z$bA+NG2}iQU80^{gr8KsB>wMjHpu{L(&#r-C?c%jo z&f2&3R%b)oiWi=>@aeWLX(@RpcUUth#1}N>HAlCO0w^jWYt6HbVAsf z7(Nw7LWsU(V9Zfb{lu)3ntRhWBLIKmgn@9LBd^wlii6Un_WU}Pm;GgHZ1{BRuNyWr zS|GKXo2zfa{$={*MOQAniXnhirK~c2-nXCsz9?CuD98cm8?da_+OG@QtPAf;^fM}t38ooyM}yWf8}s}aKx*6G&w5xMorw2 zKIW79TC9ITubU~~Z}LbEftPpn^YCYAm-=p&A7>QPxlv;BX0RSynsX8v@%FR6t-;l0 z`|Med34>C23`QYLAdgVdZbsKhet9UEaxdc1G|FvQ;bq4kJJ3Jm$;Y0LJg^{qdTDni zh5$*XB@CU64Mp;8VOXV&j!dnSucOmK1YZo@S3@zcAHL6*`W9v$ZP*E!)@avLX2`aq zpb;@+&4FGCa1u?{m?%b>#UX8blF?#sD?8zc1C6jis`ODB!hj-Y5oMP=4NYX+qL^pK zIMQHevwI+PF4r%f5V&+1mg^k+HmRN4Hd?$F%HNqwOD_E#GeLyj0_~;gY6yWD@b45C zptW8d{bn7B&jpeuP|b#Cmw;&#*pmX~1WRbmB1+U}S2yKdy0(T&0wDzQ(i*%4^p$Lf z1+abgfuS!)HUT!IEO-kTEV0JDzdWB~6TgJkYw#8@ReI0PN&hK|K!eF)Cbe_V9}DXB zYkIt1ubqtQ0ha}m5`A0hLrm^fY4Bb;wc8==z+AI?KE3|^<49$L_xJbWLg-XUgEKM5 zR8WkAD9zZ^AhKlQE}`hOTpuN5mW@nav5!tdp#`y|%1iHJVP$oFZDCRURULl@{_0I5 zH3ll@R=o^eqx}}+_j*NL?`VT(X>X;>Nl7#a#@j2h7>dPRk;Cyx3mq$sN`@MVMcYUCNa-+; z9WJ9#Na za7C-)oy|k)i>CG@Qc09)U40jtw+NmY=zx)(_*RO;qb~NL3AQ2fqUcDbq`YAnCBk&` zOdE|`{+0(rN~dhe9PaAt9}ndt6_xv_{tg>c0fA%j4}k-UJ0Lt-l^JlxGHfm2igB9d zQvg0lM&8Akd@!A@1_PNi7WIf@Qn*&gp38#30ejPmRTUtp>3&(JJ63=!oFoLo2RI;s zFX?xm!Ycb{j$?x4XbfJyS>)uQwFvs%GQC#WMMwH%1PulloFCZt#1anz=Vmy~=QcRW zksTp6(Uh0dOzT|=A^RHEzVGf(RC?ckR5XOng9m{Vq=#kr^C^PBkwYf#M6&`%&o9eL z&^WKe+eo0$LbSBn%S5n3q~?kzJ`3B>V2oj)jIKA3`9lyot=Ba|WV>1=4`TXSjSJjK z_ghu{@nc=(yGEZ}U%&f#*RV~>>~+FU62xz~OWb#^27{irGq(83qX^2&HHl5zjoOn5NhR)m%70Nh`KUxEbRve5LDAseMA^ z&O$%)(nI+{RH1>1M{*s`Z3aEk4c_qOy4F99^2y6o3)^+&fAvt(y`+*vH2sFi4;UKl z4sxk)$9SH~INrOVqoQ9D`pimbok>xwx(z}>UM;`lp?b?^KJ^dz9~;#Wis@YB&V;<% zR^{IvgqjIOe@kOdYfQiSQ|tb|sK3n=Cayq2-%l4or2qI!$=dYfr!o&QF&An(!&ghY z_>62m5$^VWTZmKq>5p&gGomd`D0{W^bSX0yoBX-jkFS@Qrkv=jr0q1TOT?q;_7Fqz%!C1Xd4G_$-SBmVxB}-%vdLI^!kCkIq)p_8Y29V~h$m`i7 z5+E^PNpRT6A`l^*mWLf4Q=CmAYhl4s)&Ki>CD@1l{sV%9om~?6`IYC>2YnmP*+(7~ zN(OgpcI9OH-2mC8wTcv5cgoQray7fybot$Td6O6t!c8EDM;}w>jW~ePib)C57fskH zo_a1wjwjQKm~+8LGd>@#P*mZiU7Ao{d8s;~@KU1|B1EF`hN1FFR7=acgWSn?8p-?z z2wg22yLhAeZ-}^^esDv3hYjz;I~g{z6D^uH+=0_KFxG-ETZq+~xr=^Or` z|Hmb?C4UJoHjs!&Brn+S8W+EhB#5_qdeMYub*bov{ zTe*~uCTci5p;QI!vvoKhiM2R>`DNVC2myyc+ns_w{Wdi|0}?$=RWyiYLPKYygRSX~ zO$F3CmCr9^c`PyyN7`o8*q5eO<3nT{-_o+YFG)8jSXw>J&_KC_G!1j7k6UmF&}IjVXId%+TyEOgozC|4v}>%gydPm9h0IDlY}`(Hfo5icVp5# zy@(LTISB4bzq;O?-0Xc84Qa=EqC$|HL%s!4^)3imV+fB7ysten6G|@1xpe<(zQp5r z+Kc2kJrR+)n2I)Sv%g-eKb`zoY;Ld-_WoUCjiJT{Oq}u9C(&rI>360$z@8L|NFrnB zpP^r=rPCM_lLV*=Z+%w*8kZjALJ3>$sVAtwgCUM&c_G^pEI&aEjs9L2V#zIZ&x;GG z+UIHs74?g?M-yr*N+mF{Q|>bQWfb!ei!UYSyqc5~7AO@O7MkIh?gf_q!MSpAD|%KQ z@I6!027zJ*0wo&!!dQUO$T45th)y9!#7|F1Z46i z<5SssTJ{Cs9vk4KmxH^?bXAF;CgE)o#mRxSONX2C?wT6} z!!HQHpFQF|GnP-Wby8nswj<^1vCp;NquS3oEX|7+lH!E%sOXXDbYa=AJ(kG=8-&yI z<0f79$8xJ}AF+s!uEfgeNVyC{4ja7qkgcHbW!zriPnY(h)I!p}c)uju6EkgUeB`LP z*b22NdaBEC5H*o9m*WVNfyjGqVo2Te}O0lUC_Ir7LJD8}$?!h=qzO~>7 zV)i|I_IP@F9zTAZqg(Zf06Ls>_I0alwkQv9{t7w$7})czgneOUQYjntyy|^jYsvmW zx7y5H%a~x**Rnd;02#CE{usw!!l6C0^CoN62f!M@>kjsO^RHRe&Ny99kWHrlTSy-7%QS9EcoU9 zW71-j5{`+VOwWxrCU~OM!EGHqfjv0GlB(0j;_jlR)mKi*yGb@&4^?oLXuf@*X`4`M zN5NKs)Q;OiTlIQ7j8M+<_j=Wx1V-wgZLo5q?SE#=uCKtBE1QZz+m3 z9clbxO4V12c@TEnnDOJU^#Y>?g%NOUebo$uwd8YuW^}ZSaXAW>uDV--iGUPQy)P=C z3a%O}bA+0pzi%0Fk<-~wJ%Q_}+FrR^0jEdTmb5k7ceQXnPgN0@g4aveTQ6Fte9T&- zWu4@XcN3MlWa+q^w~Ko^!e9ATyUKfdLwQC`&a~*=zilg!mYDN3gqaA1nAI*}iFaRG zAdJ&B_=7)h7uE_W8~mu*`zFAc@B7k};AezXtlTRLqUP>E8CjRgoaO0P$C2U(|q=x8AeZcV}qPf=mdh{}y3muVq0!WEQe zE}lIkCd{lX@+hxiK71xN`brV4Sd8&W$)1QI1x0eJ6b1S4i$O}t@VLyQJlc{zBM}iqT7@)IP->gh{q5kG-`S^=u z$FhU74VulJ{TzcPr-E!71WUGuK%~mXKd?sUBTt`m+APpx{n~r82Ynpk<$vF>t(KDi zZj#PEff!(-EP~>uJM43{zx3qLraN6u1+fuz0b#z!Bj^VD%7UlEsN6ytjARBNI)@2r zrJQ5vOCR*)Q_m@4=n8p=>latj74zK?3RU$H+Wc7lmD3=V47Zo-d@C^{j79uJmnl6^j+`_K+O_gKbJ<@JbuM)>bPia*Xr6XW6{M!u|D&Q5~!Mvp{`I~Q%DLGW`%QpHZoGiXCS!i@dVG7FnT%@;jb z-i>$D7;|c7K1aQoNm*@tVmpsE@Hqa2=pTKNZZjuBim|nG4JN@l&=AUz29#9|GSORP zWl&MHRZEW)q&E%*6~$+=B>3HMrH_3cI!$j=cXj1UY)%M0dU*HE0Ota^z?AnEEe8aj zbMKo)#uUazSl7wP2_?#nqyFUX^MXK7@)~|l&f=r`a!A6XTR5ZFNMX%(o<3TqnBj$E z8syK3=Fv`0-YK@HV|I1K;?zixI%f%?Bzf%8ZKt-Gt^}MObi!6#H8TCh^&Qb=W)()N zNP7ojra85P2R|jVdpn)^e8Y=}XZKb!eaP*pl>;V zaZ_z~3Bk-4di=LkR_ya!M^e`1M#>E1xSUQu86xIoz%N9{FwXLbGtF_c4 z2$UxasF+{6(Nd$ot|<x*Mt=*Yr=<#{{Y*v=(>^@MP&M5C=DJ=K>kzI0-%0Urj2#R$gcrvm zXDKlG4cmGD=zV8vEs3*35}Yg%=}_D3dw|F4ZC>S42V+)e?MCv5w28Duz?tK<4nJ?! z#ipKk{p8x=-n&;7z4yD^448ZowecNKf2fs!GC&*CAY9x_d=H-<>YhHaW!=GtQj`xq z?GHoTeJi*a{v&{y&|Jj)__E>N375)^dQ0Qi>ngW3F4MkDUNPc<5OCg+yizR%w_TZu z#ctPJ6YfMs%yvKXR1xXb z`V3K4FRs%(IRH6_)z$kjo9t@uwJ(n9!`mCK@PXu`AS|YW=U3P{1K|fF137h(w^(PK ziY^T$D@lPn@io5nx8+uIcXh-N7E~&UBAFf?*v?Nw?T84Ccsp*X5C{yp&W~VzJ{$g9 zfoTAJ05Ye=s^%1gKLAMs%_)bkvTxtM!-o$8ht!!fXE=&)_VO&vFEWEelm=t};{XuL zzAFNj(!eCeQLq5}2bj%(0cJ+!6%PFXXiGut*Vfj88RlAp*>Iq2zwJN1034QdK|DrSN=~s%PFezAn2V88GX^Z_ z2CBKfqG)xxq*mkYR;sB=)s1+R%;h`1x3z>jVBpe?|Wc%CIv6 z0#l0>Sy!^x%QB!_>%@SeMqG>Vdm_Fj_xPJ0u3@*j!9Vorb-Zng@lQ@1d*6NZCABtB z+5hN67@>d0dAUlq=>8uMV>PILbn#I^iLsr=mlCk4y9RooKMFTn>2JFujHklgA;b{n z?q20`@^xzJ5S3pqmib6v+T2nw^wk{60&O@q)E-Vvollq3ZrYc{r=vMkXx2cMeM|_**3KknbB+lCn+HdU!kQ{^ zkkDn9a?7gM&NYC6?1fd&7a$naHr-fD`>dk6_3n*3?ZEui!e%Ui)gNF(clGqK{a+(p zVEZ==7J#fd6R=1=c(QiAfwe{lglMqAn0~SF;`JiHpS%Lf^5y?~$!g$p{PPz6Q zK>nYF=6M)V88saPLt{f-HG-Hx-R)FiP!4o-c6FJliK1Hvq6B2y?+%aHnycUjTLn}s zN1u&YYm7gxLdi@%e>H5Sa%=7)&hYie5sK*h(sfp!e%!T@M=gbVrIuVU_tum`PIS_` z+G08bns@odne)errP-GGRe4w^>SiC!oSUAt5tfs49^bEB8l9OeWqB|z4GGUlv>nnl z*b3$C-AAdfH*nn>@VOp)1F@ zhT(Xr4S)A*QXt~SJKbMUc0itbQNM@sIO=rI<2|_-NT$?iq#$|A$-i&u^vnxyPaF5; z=ju+m`E2`p6a4X`iJnAjS8fuuXL_>MU$ry0hzBo7@>md)y%ziKNcxE2k_qLnxkQ8T z*GzV{A4&V+^zz1?pFba)3dwAu_-wPpeL`=&U?ifuP_!RO9-j&oaD)qDD|?&c{keq!uVYLHD?u9V_$gFe` zAWh%5u5EvLjEj?smsK$201+qk$3v`D;i(=j(dm7Rl1tJh=Ga}rxc2m`iVf(BzocY0 zT~4Ji9j&cyQJ_~c$V29s&@UYp$R=&cUM`9H`i@G4FJN{Rzq6*7ONa$;6Lo>K70vMd zE^dp5)In+?N7ye6AS$gj7EVr10K(ws=eGutUXiFrv0Dl@REgbBu#78FQBlds$>4>F z$mQHBWA_tmj`X>jCQw!YKj~^s!BVN;zI_|Gu7S`E46s;2^?$s*1iE#=gk3#RG07?` zR!|J9(D^koEDJi%8eM}Y1*l^GldRz1M)dz}|8i|;9m$82kR~b+Wu!#WF>5C(3JPOT z5-Nrkz{F;;L5qmJz_zl~OK4SIZ?-U2%xDC@pSCPMX_Fh>&8l_n1B3U@OWf@lxvqTs z{`lhofor4BDmO?ynVoB*JYT3>kD6b6m#y^bLxoBI`>*d*KmK`f1O6MN`^J#g~t<@e#_a%h#74>L92_~`C$aa*{q7F$5Xtnxl(qRW*InH1o*y>>3x7URIo zJ4!boxI-%o`1Gsz8^nG(=R4LsTt8M#9dC17@IL&gC7=U?yKYdl^UiVTS@fURNEF=j zp}!qXvLc~y<8U(1_@RT3pnEn)U@3&Efx)@5&}=uZU@+&l9uV7os)A?qolsFmfY7xa zB09lCn-1Vl8X|AT0qRnTG7W1Q6iq15jam)@IPP_AbgLxnmWWSc+PA;-i$3bzXItTI zjb3NuN|xEegg~J%)WV~b+@i!!v*fG0HmMI%s47Bm+H*Q8@45gQa-dOqgK1(Q6N+?l zY6E}Qqb){;&csIIyfP-uX4+z0LhU}gl<4$mji#%py(?=^xUZJ#lB8Kco7I`U-6>}$ z`D4LhzZAOn!B2nd@7g#!Jy*ia#tpiU2jb|?a7NZ(Q`WrMy1=TTb3(i2%QaooRqki+ z=M&7#`{*%LPLg7(2w;wBm*y3WPGs*V!9ExcZad4zC@X5VbgCo?gv9x&m}%I*EWJKa zL@OKUvGU)5@pv-8e_mqFUk5d`REgb~WdFL@2bNY{J*Zrd%{P;RztNFFnk%9Up5>w8 zN45)F9&JsQqnEjuIaUUe?1HZGE;BDR10L8F(9^2{+2T8X-7jIw*6|8+6L z)Ch!9(bPL$VgR8Hw(#)a``h1M)Vy!~@#W3?I}n805)&>Ou++vnfzggKc)J8HlB+Fu z3hfA3R_YSlU%Px)>g3zyZbFROhaUNJ0UvsmD{4RVsa=2jp`X;P_Hn?6`?r?J7g7lE z1gHp>bWlV@WNqvY9xjf6@OR84=Ug0zID0ySbuKP3F%cZFVjb3D8|~N^mFYp`tnF8IU6)mGoQTLPp~@AO`>H3GrXW-*F8k-1cT?C8S4jDI|k;>UrAflKN*JEVC+}y{1RrY$j?jXDqq<}N4IPrh3PpEt+Jie=KewFMm_QHH}K68raYUCjK}RuhSY!h4R} zom8q#_sb$C652}Lp}}v`n@(_DY+ENumVz^jc|30R2QS7yteV0IC^|Gx5pdnJN7_Xx+JjM(elRlLV#B@_Xt~+y;DIzNL!aUEC0d zd9!;+c$2hlJ8v+5%bz8InpNMn>b?`N4E%fa*k{s{9cHKR(|_2%ACn}V zmBFIn-(}M*&eBpvi?9nj@5%q;!mK83e}deuCEyoYbD8aG6xAyvz@N=>M`H-OiX4Q}HbuYg5t#B;0*EpY$nQ^KA zaO2Uk?$Aw2L^FfyXWpORmw!BBE04^su$aSSaeAVSAONKu)&_%~M>X=T5#`s@i8I zS8Gf%gPT3LWhOO7#Wy`RgG@Y|zuu=mukmtWa`?RZn9MEXCCHCgpYnvx$hv;i*mEbe z$@j<1lH-Lo#_R3dnDZLX&CZDZb*16tfp!BKj8^<;bKkj(co~b5jIYt#ls31k70R(r z^9raK(E=kF+fY9@qs{1%-RhQzP-XYgZ=xzYOVQN9KLF5(zAlaC7w~j;J@jXiTWJpZXptC+8Ko~nDqQ~lIQGyvp|GQ65FD{Tk3mZb(Lc65_w2f(c_6VttdX>{5V^tC`rjHNP!cvijArUc826`kUhyW|R2{IN}WR!~&z8yX|<44KF`nO0Pi zve{&+#A$uK#hj1;WalPcdySn|Fo~uihN5vTtu1v+o+pz_Ds!kEMV>3_K#@a}&It?b_yU}oUZq637^&RCp&{-4x_J`t%LITeVhQ|TALUDK6GT|Q7z{ZbnO zr7mkqzk2)a_q8y`1rDb44Q)L)y1|s5b!HKC>%a&OSS?^JeD4u!0XE86fK5z;T*dCs z*@u7MyalL1fIa{3+b@uASHmhQvAb7GD zb1o$Rg>(J;ukcF6_g^h|L+Gv|n}AYRl952=102U7b^gQWy4b9PBDp@A zo3#th#24?BEc4b?(}(F-rb^fDxOCa;iaw<2T5Qb?3;eBm)jQ0qRpG*2RQ`Lnbo(IV zZKFPVs4k>dPjCO@!B}nN4cVF5@pn&RiM8mri|^*!&j=K&f4=?b>(U{?*^({rvp=(W zJru2Zh0rb2&a_ks>q9-L{Sd?dF@`@+WFYK>vKLgqqvV;A(w^zq(-}=URYiOC#W(ywdR}=SQh2E|=f0$RC_O|m z{LB_U1xCV2Bk33?tU+RCfHpeSS~@HLppj6nMSMZoF3Do0i`8x^F^Vt(af6-mj1hVwvDIH_$|Mpc|#gPjp<_gIqY>4LGwvfNxO_3WSrYSK3f1v3e z@i$Xn@_rtg9(VDjwD9NVRYzKzOwk6 zsyx7rvBN4}$i(bN(gSE=a#g4{*8G7sZMHjA#wG;E;6XDtgvJU5A3)A-<0dAYP&0q3 z)90qD`C2XVomN>W_&!6Z++HT}F`3~7diOp1184CMiW;vM?aw4*s+@iV)RTSlbk4iN z5sgFl4qhcSw0o)Vw0Ir5x*LVXxd6-O8nrZ z(}jfKWT9}UGOsC#Df27LL(s!EJn)@rv0U^%wMxd>Aos4kz1*p>fzL5P=38*5jFd(B zxZjdoEHsOeZIIK8nG}aaOOK%$E&ar((ong`F*}STd3jclKi1=ds*X?KY?`x^M|*nW z00|c3l>LCoE#E|9pbZyN8EEZV5}kY7zW>w6t1AAzexyRAAiGx>ew;*S<$Y|UUx>?* za4@X?he>s8c3^xKNOz%0=T4>-f(125dK}dUn}Jf9SXj;>?&eegwkM0yy+$W1slR^l zYHQ84wLMk)mD^o_NpzDvrUr~MkoVeqKpolN!MZcVK6^UCk`a$Q93Otn8dI~HHMSxO zbZWB;EUVY*p6U}v1qs3}Vnq(sFx8Xk)_6WsaaWWYA3eyJ6mn+@DC;#+`QI1xHMT^Gba9 z^a?8u%a_*dK^s@r2dE=!^ROmYZUpjPO+lNswCFV5X7FEbYfRP`fBslNzlSXC=H{B&tAcacdnk<{|Db$;*_aZ751;PY*ZOX_9ZUtD^PZJXb}7;d9>B1N() z6zV1QME0pb4;BsXHhE+iG17n^8+4S=5gV91)T1wy=XUsW`D9qtLBz&$bDPz!MGt zG4ebGw7AscQtfCtTTDr}&Xs18c}5B)^{&cMDLVyuem@TwiaapefzfZGP`R}Z|4X=K z{~ktOAdK=>WFH`mz|z;$c^6pv0%SGo=#FOqh$?V*XR}{0`}EFfuo2>1+V~wh#ECW* zbcllkWDAZt-5MC#{yMtD)*Q2OfGo&JPH}mDlC~b!|N(BeIUBij;6;dq;ScALMDX@+Guw;1_HDT3IN@j4)s?c5ZaLR{6mFYps+^ix88O|PqO+aYL|Rg? z71sVaSRaayi_U*bT?%{5wa_AKu{WFaeb9S2!_q}NYx_r)9-*yqS@qwy*go_$ZEi&^ zZ`;muMbkesX$-d5D|hgxXVh{2;k^^vgfda#PRzSQjFUT#+S(In3B|^+%RzmOOP+<6 zLN%w%#{;)ir8`bn{>XWGf1o@haMJeZ;27X8tq!{{=3H5FO&pri*DV@U^!P?lernKiql z^9tJV(2WC#XVrgywYyv@ujUGawEk$8pzRmLJYGal&Mp^Re~7aX|0=baJimV`;%}92 zW4^)RpK_JIFP|jPe}+d1!9=K10$;d@H)YU8LSSAMBbMa;N zGNC~lZ8R@~>MHp8GuEj-aQ^(FM80!8)*~gjmSGBv$2D%BhlG6NzQjwm5GWUFJU5pI z#UsuLZufJ7CpW<)`FY;^G}EtiI;9G@S!Ld>B@uhRkD`({ZA|3Wl-C*+7(TFmkejp+ z`anQFc2^3ws+!#pPCKyrlBsAJh0AbW>I#?c$8^gG9$A0@8TY# z2#`{U&*~1E^#-x8eyzMg9tT$re;xjhuMbCx0pA9yNJW*Y`bn`;w6~8DK+J30QlWM)6Q(EB( z4;jV+!O!__Gts-Z@un)m@}%NCFTp$> zbrwh*fe~(Ckn<#y`@1I)pIh^@38vpiOtL}{lnpmRKDh60e18Az z+2Gs{;XC$*%tmZ2+)4>3Dx#y{1SXyD($H4gr)_?FBc8d}PoA}QcAchu4WD)2Gjw!* zI%aB&Cpqv)*7)Q}813W`*VM#A;>qDbB?wk4h|&(>Ay8%wj!pJ>Izts>xPBt0)}=CG zVnN5KdwA_#CyqMS5QvyR9*+ZA_mtiO4ire@*4z>BS_JtAdbqU zO|D1oK01#VmUp6>D=(;Q$_f9{X#wXacu-O;;yWx#Orx++I7S(ao93phsvM{e%uNm# z%5|y6h-`ajEWX(yvszH=!4_j-AD%bn18uWy`0FB{7zf@~4z0(Z>-~73%6>pK1+GUp zpJ^>9^`|fX1ou4kg0&BJlt660I*t(u*ci)g1uM7YtBcN{q-0}Y%^Z}vEfXyQYAenCDqrz` zuwAhFjPv&wn!rJio6nb;!#4dJ_UQ@!gg9@0VWPT$$%d>fV_j7l9B+~}_1#@eF%^9`?LNU*4n-Hu-nOYGgK0o{GSRVb4Buly zMx5d{-u8C9rX^@0uHwtV@oMkh*KVmXm3OY5Jk7Ucs2Zbz3~d_QSCdge6JwZ`EkI_X zrd@?UG)o}#qFxGd!Nk7h!?@!!HYomSx!i93SmyP+TFOg3+TzpZLo$`4Z5?(H=^*8( zi{?5lup1dqvzNFcUx`Wkd}yw%Ar}hrK~ox*i2x&BfjB7t1)VZ;=Y-?&%<=WHX4RkJKCfr zea34r8$)!brpbRU$@axQ_3J|LC?6i7$nY)?*n5Aj* zXg^K87@%y+#VhN-T~>&^GY(^g51LIhAzZ_xzn7nJN-%S+@5|C$c6y*HVyS!|ZFFje zi89P$?$EXfEArJN2iqy(Q2CGUVPq;BDsbr7A$bEmKiX80y}U;RUkv^j7w>-U*KoK* zDxnu+@{P&B=++b3xwmckU6)RVvbuaKyEs@|60J?v*0dvR=;_K;VfIZOw%akYm`irnsmv_K$TjrC2}Kaoync*?Ki&g0Ek~F6z`}r!NC-xTW)gJm4Gb$g}*>!}1 zBG?lO75q71Z?#eQNrELmxiv}h_&euIk3;0!#gAT|D6oCxZxK?-*wY+@7!?C|1o^RY zzMqD!-FJ%X4)ey`NX+a?YUfbU}i%K9YJ>TCJrraVg zLo8r$vXflrCc^oSa7glf+VY#etc@PUH_Mt|#kkP!#o&?7ITi-NE%Y@UXKl^FX zEfW@==o9c-XGDV68GYhOBE@)Y6LY_lQ?ZFFmOLb5K~WwaGkxgjk%o?6qHeKNRBnGB zjl+!-VzG)$d>mTq12q0yZ0w^*HEZu}au>RCk`E-2Af-vI1K>3_v7YskQ|FFLv`91Y zm^-3n2KkIk-PpIqTmdN3__t=tV;NZ%!6Cgc2_Eq+ihQ>`e0Xo_&Lp)wn3_G;mT7LgMf^)&yR?WU83%4gad%cI`a1gIW)zi ztwMn8|2u!20`&q%fjNA%wKss1cmIjt1Z*grT`@<84m22aHi3q<+WN&DZ#aMHItOqJ z_F6!U%3+SPDH>qzz%KRgu8>VR*_S0k2Mk5d0fNWRCMPFHC)iT4>3Q%294DNsJ*$`Z zejVuerx^MVuC8`Cx678cR!!ko7Umu`QM_^G2X8)qpQ{{nM%B`w`ONc65%}YFDCMxI zC^=e$1wuADIgCu;j>iS0oI9nBK2FFfJT1P1C-TC@BgAb8wes4-${EfGjk+cy6OWELWM#BYT~$CT-SDDc zppsDtIbs}_B&(NMc+FbQ8g(;l z5lU1$S0`{5S7)dg2}RJDvRVd#9?T^12ttY687G7fj>mNOfC=Ns4u_-Y+#qHAY3@pagMG6ETBM{%4w7Vs_EC&j*JUH zS^>fZ+^q!rU|QZHmzK{`sIn_w8$)v@bIr2 zbO0wfF){J**$kM7b5z@FW-ZQbn-%%eFKGpbr?F~+bn=z6I52qFa9#2X?L+d>m16$& zmBFn|r*6Nyp&PrLWBvqeqK+RVp44^;jfl_=3%5lO>G2Wkd84fa3=%RzjKx!^(wXN& z6g|Tg@=F4AlD)WTrPclhD6guT8iVpp#aFKDBR1t-zrEg3;C8#2^hQK_$L&jYalN;- z?NIm3P8gr47PVCx(eo!iDly=;<{L5AGUGCPUM*%V|6&31`fZ7h757w!v8Ea1e|6b9dUG=oQ0 zti0I85a(lSuN0Y>n)_iE@{@Kj(5c0S#=SZ3qt}nOsq~H*QL54+R(sZO!*NGwb*-%S zW-*@{a=c@NHZ?{UODN+Sf+9NXl7l9wcGnL>WS}2P7Dz{IMjbEB-L2k8zC4XQ7#=)3 z$M=?$sq({ZHs+p9V%K@8ZKf&&Zb>N>Gunc({SN-Z!bjigoM#tHs^C*cHx1r>qAW?( zEjsZffl~kYUOY~jIXl%vg>RC4Zm`KVdcMO2YYy3+6GdEK-QD*ftmnvLDOD;0x@R<* zY~6b9f;^G8^K(RCm{EGs`Y=7=Z1-lFN=w0AKkCvp3Uc>gizJNHM&PjIw(AToXZayQ zh%r{42X;QIf-5pes(v#%L|=Klo5$2;M|)TbiSo>x>_m&hi8wU(VWf+`5pkkEm3-h& zC%y5QRDw6bxH9#5%4Sk(1h2MV*%Op%h=*)?xDbsALlHb?^LTL-Awr!$K=t6G+90t~cS1tlxDtPq;mN@R|>uXwem z1Bs=aJxOAXk=SRXIecD@!3lJBocm8>V`FQ_pE&wHj%?z^8(?c#<V10p50fTdeK_=n>f=L(3_sQ-SGO4KZk#oWtUuu#*W!Q8> z)B&k|8j(z4rVq=NZS*Ifn?h#h zF0@;UO+M3j^LF-8ilUX)N2AXW*tPzXvE6i8%!>z&O4tiZXbWrQAKmrEH*GYdZ8suF zMconSy!3;D%nYD-)A{o_>c#aOkf-l+ksY8xIBA_P_ zfm2Tyc}fUx_ckeq=0HR(>BpX+p@*4~-Km}uv6P)uxTvZb&FR5-8iPFPQJvb6&4aE_ z5&6Ww&f`4>oeMx6<@a7#wq7~|7$3Zc%y%BpPwaE<8wA%{1y87gI0O9*OKiIqA0Ot9EK*4J@h@E1xpORU6LCH-%LkWT`vh|7TvjaiQ2(H1o9u&=iO9H(vkS|S zB4=GLX8HHJ6+0ZcY+Dk-i-*ymJ9UYf^l4vbwfIrHeFQ8w%;2Dq5t3H~9NEU9OofGr z0)jZaprAm62uTE+tZuF^l1aoW2w~9}Y|43xP}YVrT^re79Nt~f(-2{Z9QzmNJPI5$ z6nGIp%!59X6WD9NFGzBr`TKwW`>s`k+>KN6tY6%(`clA~*7fEl^G)5*}mHydOw zDXf3SVD?K%buOAfHa)C&tHa!{>QW#TteMnR!emmYqUjuyJyM zf=FJ$5?n^SE*}adz#D|GRKj8eu-M~yfuu5WSkL*K*aQ1* z&^Ua2Cyrn-+n@9G&g_g<>_l`Mi7-HP{ zG7+0RS^4r5i2$?3ilp97#8QInh)snFl`bk}^9{76Cganzj$N-86QxfNx&`N{(fglH zeAroke0Ks^j)w8@aU=N8$_3g*@8ac02RmW8d2As(m;+We2wq+k&lZ7rO*B6Wjpoh4 zZa89YR7I@bql4i?AoyZ zq2YzwvSr-?HIFhB?tMVs7mauO15$Yk-BEEXkZ;dD^p7hAonQNV)lA*BdgMfsvgVFe zNzTA;ICb#t^5EyCn_qD(X*Z0dYaKO3MhO-TrQSdxJ4+zP0yI&4{3sMMNJ{n$CV?)( zSntNmgWx@zibqG*$EK92{XZ3WmVnI z*{qa+QjzV(0d*osfGluEN?AQv>arFpm26D?s@ZRiJk2rWu+F@(E<3R>Y@8VZefSo6fUTL})DI`2XwLNtQHUF7I-p>omIDBbw9!@5yPc%$^( z07HC|cwSL}c(_Dy`5uX5A{Di!!oC=jx(Z{=4qkF&EqTi}^_DudZDPzu(XB}Lu3AH+ zO>BQ%q7`q>gIc587DJC}Wvy;Z)*4s}&NK>IsJyIGvFLkSPNt%}4B+sCOf>gJrXCbF zs+|4WQi}#lC{V`EdN3oHUPATLBw3OqckL@G()nC6Y<4M53L8kX4g2m8VG>0u>OZGp z9PQ?BZxeamKo%ZJ`&fSWXKusarfOfb=GBtF@C^(_+I8R8u#Eto3k|_e$<3v&gI>yJ zV8l(~pP1jR{vYbzJE{q+ZTn3p1w!aWN`L?X0*2l(^r|AFqM`yKBBCN9f(1kGRfJHK zDk1`gD#a3tGywqtK|v`NR8&+{EHj>+L>=d8?|Iic-};`znm=YaF2?rLtyg5Ua$F`wrkVr_Him|eb%a&LQEf5lQ_OZAVkNPFL|We9A@laF z?dF|IcbA7ZdEQgZIH$N2)M2k+_icm^*I#1?&}$;QJJhsfJXt6)pTG`O#1pq$$kmKF z3#2(VG!dm9C4|PS`xYi=1d(ZND205w1y(tU2}Nr5i6b~ig>&gyKzD(IV)s*7`_CaO zo~M7Kc>>K*Vm4dim(CePazfBR)C%X!l>X(By->{wMXUks6?YfF4ng~wv%B)^+dG>-kfBZF;_jah zZEZD9b-{+P8p#`#x>?t)@%=1aTa{tfDJ$M_mbSIR16H<0*Gx?vkI0i&6HCPxt%4Q_ z-9jkYeubQ26jZo>^}@#wySq{%X{Y;zPwwvGpVdT@@iwhP5rWw=?k%I*tYJDGf-nla zcGaN+=b+!R(9^S;emk4G!-&*SBwr$<6~?<#^UfCi9ZL%rMSBp*Ln1YL{w+B|tikjC zk~SU8MWrNJNdCM21#8thY(}Nmz?aOI{8zfgJs6|&ew%Bzx8hBn&eQd34$WFvx9-0W z4UD*-GO&GI8Clxxqb^M{c=MorTnjx(zjtYTwNax=Q^Ya)59|`m=BY0vw#khY^31nN z)nkf^bAqP_B^~*5DS&^ON7@-<13EeWbp@)fJu5Ty-OqhLCsaxY!DEtE>ANl1aWKH>Vd}ahFKQ<4KqDg zgTzfsnD z|CVMZ4qXot1lRt);OB^pxC*0xkQe=fum}wJxNvDMXC@Gkn|>atUukAw!B1zD#Gb#z zWlf})RB^RM>1<0#T^`pGQqux(6F^(U-RS?OnjHeFBA{IdeHaiHfr$l|lsf{x?mq-$ zK5(AEl;Y{j*I;4IJxT9=AZ7k)!hRJj|K)!JX86C-%*4s7jZDogtt@CJ`V={#co2^Q zOy&Y|dKT8~NKsRD@dB{mKPRG5THerj!9FbJ*F$$3_S0~{f}gEbv=aHa(culAX)%&Q_UMrfMTu#-uq-D#=o2{%Vasdd z=d}de989cTx&4CVU{qI#8FOjlEWU`}RdkwX0e= zjjy#RhEwx9@2l@ECN?=+(bBt8kq(VclG?@tOeqo>#?oF`m$tf5J^ssCzwxRy#t%tX z=ND5(T&|#KQy*Si?HBs{T07ab6^at4!Fa01SP*5Q&iXm(qI4Yu zCZ-CU_txYgdz`V?UH983_!jR0B2Q*uM7qHX21#{CXdMfRB$gAERd?=7Bz)g64}oLJ z0dvallu*2-__zm`tIHE8ZTFG#ZnjT3O|k7J;8f zm|J=^ty3^ZQ>KO@Q)r6>OYBi(B0oaVj+I2cQn z*UbxMmo?atRcY$a50sz#liogIrK}) z_z!o@Zg%E3CpnQ@?juyi%h_TgpxFoT zVIU(as%x#St>r=#xiiw{TesQ69}sTb(+Ao|?xn+>{|rq&9OJrWo;+jEMV~LeSbVkk z<}EPHfEx!86hD3b@}K+Z|LeC8xL<_00-`8k327x&HC07v@wmT4jB%ohx->h-3uR@t zG%b?od5*H8%CSfFoOy3oVWMNvYoBH}Se0+s)}EHFdX@s;c z)5P8<;M03Kfp~L~aq^cDYnKGEIIW|0R`VO_)Uq3ogGD?DRfes9&O<(WXW+bE?or2O z?7trb|9<$m!P4Bb(*dZ;oH%uJbfKO;`@I5Jh@j=hf z$vGYOOr*~~N7+GB+81{5;&7(=E1~O|ub#$7K3Z$zf%|81Enzz-A3MZlBY5-)GxVhy zBaPQjP5n_%2K(cyrWaS9Jz1!AHTgaX{i=p>TxUlZ^)y~r|IpNwtmt(O`Cd7`^b@JA zEd%O!fBi~=P)K0DS^vFw1Rn(o341ln616*zX~Kk~WEcf#+|K&&NPbZ?D`q8`Xcdh_ z#uOe(UZ3~ncf*vBh5xJ4zXsYZ5^G`wKDlU4@Y<_+{7GkQ}@G-l^h_4-Jq z-xaBN;;hO&Vl$4<@kRM8#Lz$jhDB1-EHhm!;&+}sON*1m673i?xbjfk zbtp9)%8b$kFC9c}G&kNRJ?zmi6hJtz!FZ;pN{6I_$l#w&{yKm*X0`MS=$2kSXe7p9 zT9!=mdRk)Q2QK4LicQXNyy?mi9Iwr!!W#b6`^{pm36J^xUh)I?QsEEn0=K*7&Xd4( z#1&M#_=f^P_143u!2DzjNQpZdxjiHn*cSl7dEbdhZ+glPh%+ahhO^tuI|gX3fLnRC zIPPpN=qB>coo6F4&Xp(Tl>lW!+PPAoGRi0c{-K&I0CWcap`Up*zgzfzIEUKUQ2|_x zCD?OvSUVtTW4v#eTLZDfHn_@$(FZ`)$c}&d>4pWXm?@!dZ0iJsjdmu~Rab9yMTt_;FO68;q+AG&ie7n{= z#?x)R8Do9omBX{v=b*q}qG07G8IR=cujnalYq!tWMBgYj~bK6gAu8 z4t46g^P2gU)b=5%?=}*$%j|ye_1TMPKKo@B0`l$F-iN0LSfm+wqHqW?;t%zn!quxx zo6rI%dAp(rF}=FZ{gUz{7O^r)3%la3k2=rE3ocNBxVm;C5w%)%j_%&ku_to7 zv}U0=4;U*#K<&@i`CNZ_mK9WBVhN7>rdV{rjc+#I4u+CSqk%7pu0GXJcrAgNy!gVc4s)q!kr zfx!ffr9CZ}*@Yf2E$r$Gm1?uomhvrV`Ad}g9A`QV&x()i#H&!E)yX1pg)m<2QRfa` zYCR2hW?t!c!j3Iytvo=20$ZZ^`!#dy*s)(*-`^9V0k`XSg*5OSg8PG=pTN~b0X{_) zTNCxq%U*8l#I(@Ynt&;#>e_!_g zb#tKpb$p!Lvm&`7SBh|tyrYKLs+`QK?t`s+$`ae1vNdShSHm8~cnTg3x93+q853iq zusb4&PbD@j#zg)|QjoMsdhSU>;Vf@H&AgJ6O7wzFf<~p4$MyKiH;Pr&A2j5zah7Pf z=5Iu3UMqUN(+J<@KbN75R=J9gpSaZjhyG$?7uUGw7sUmXFf{6l-7R_P^bh+^!jFq7<6jq)`_w&$8 zlDvJCwrSqW=BSeMlRT8mxy1G8(FV$v`7^CM2?{n+X&WxC`|f36rb$F;l?<2I#6Mx$ zFWN+1T#xgP!ftwg5uvp{EAf-c{+>h6%%-WIb@Q;U8a7oUH7WmaIFz9Q#-MtTS6soQ=v3!*W(iSE1aVEhbMoC&-YK=_NC+T>1(La1pG|9kc zfl|BqM5>x~o}JcD3$@b8t$*3`hWBY88gpd-gR)1j%7uAt-rR3IRPa={J-62KhU1}N z?T>l*xgH0atojW2p_6jVPE%{^{6}T>?r==9akCL$nUe_Ycld_dZ%Z1YIT(2iOv$p5&AA2&#e?}SQA zO=9sM?RukN3X9aWcxhsxqA)gyX`@bcCq89tq(LIcxr;LvJjmLuNEpEbVu4X*0u42Z z9?%BonJ~2aZEj%+aR#cR-{E*%;URdxoxBgT^Vb7UbM3w0@pd~B{`2wX4$j#=`yXgb zHg1~TNSr!b4Bl*@L*%TD*$gY-MBr?W*=O$jZ*F_80im|}8nF6;Iba=kUJizUKhIqE zZFcfHa2@vD8R-U6#Np9?c0d-}c|Ue%`_ zt?}yJW!1Cl?^ix#sIL4WmoEJUb8RWET_F6AxPGsCco9o9+04MI+;am$K?wP$o0Uch zD=1FJV|n6`f_yv)=|vl*?pY%iOKK7hvD#il&_*7ly6%?emoQhVrk3`B?o~qRBbjt$ zZnzYmE_^@j?LM2s_y8m8+?qLJ*!ChLgt_mzYXw>(ec}XK`2BkG@6U3GL5Cg=Lqgua zxTV%OJ!O9MiQ8mtF!VC)a zZ7ZXCk=D;$iXfjFMv`?cJdVaAuJoFmI)rNc^8QlU2e96^ZR_n;Y?*RN)!#;$<+Wgx3F>*UDd5f)>gwt^;HaO-Y>q$a$25~;ljKtFxY^HOo(W#% zvFRU(JC0~^@%iFwc18nd!oaaf{`DCDhvWF)@Q?l%CHkU(JSI`NY#A5=a;#b=sT;)>I+UArJ6SGO; zn)`KLUJ&yCo-As(?~<*13BTIfrv0uliuumbLlcKL#VJNRZvwWU1`Ea3c(Ee`#=R9A zZY5o5EF^`i`BaA~hhP8lxnjs(A`n~FmKzfTfo-c(GO6QH-QZIJb0s5 z-JHo=P@3qd`{MTUUQE=VXKCK;)2F4vV|%fPgRY&fS$58@5xfV=FcAbnl87?R)nEv7 zuCz?f?9S1Mhp{h(!?Tnf((Q7Th005cqKe#zf>8&Pz1ryC$Lt)C5-)g4R0MkL`jMg9RbO3Nl1cc!RXIRlO;Qz zUpVh0sj69We4A={ad5?pi@EqSFD^6BWBV)XeG)1z!%p5`2d@oQW$|7Qq_#tlQjkh& ziGxu)sz4HqZ5zL6sS3h*2`Uh&d={-?++rIYib`Wa%k-!o{V=rCWjgeMd=b5z5ApyE zXDg4iU+bd;(4f5NEiG&pPQ2b z#Q|u6!k+`u1a}Qcx#f!3Kxi~5JpTW6*ZjNt4%|UJ|Di1TM`rK;_73`&en}2IDVY}- zzqJjGjg9;}?Vu46u>HbLk0I^MqK;T?ngP9$-q{{2uC0}HID9ff&`c*`lmWNY!kgMu zjM~91YEYV+`$p}&+@dqJk63s^c%udj_>Y+^S;NYQV@%y&s~)f4=dwdO*8$nSdrlp@ z@#36;+kR+j<;D#Yeo(#r-CM=_e4ez4Y=%kueXq+(d!qe%RMupd+=}0^3XGfN7oS(d zS!29yTlJd)=>{)(w;WyNxMS!=^fn2#gXLpGs@_{+P^EH_))(gPL&dkpJuNHAdoWKI(&fL87YoA!CEM_?H{9f%1v+bKNo%Gjyi!Q8=8>e@C_3>;is1|2QoA)e{G@lf;VAs+&ITMbimK(Ypze-Fyx6b0A@3TZzRzSxY zK9w>@*y+Jh%NSb7Qg{sHWMM~&q(~1AMuFrOp;gO?9Xtvj3oqK_{}EW|pwA+9@adP+ zR0zF$IwKM7ZmfF_WvU?xrC0ofJK|XskB94xDv9lAwfsJ3{#;4RHc!JGtXdh3LCet+ z(dl~`Wy+vcY5~!#$GSC5h31|^)WSB5<|2KV-w@Esk;?}nSunf-3(}hX`^^&p8HDTs z5dnWq8bJH=OD_w=U2|INw3_f>?v;4`1nki+Yu+xh&-D5F?VZ}RZ_&R);K$#U+BsPjcz5Wa-1_RDkK|rw)R^CQ zyma@nbEv)gnY(-Xj@-QOUf8>PbIR7fgSF|jV3hPK-`K4SM@H1brG$}7bVq-ef+h+5 zxhGKC>PI`vzOa~iCCJ(K6VNLeMR65PU8!=iJ`HF2qE0ZNapM%jGi%m7n245Hdwf$$ zXBe>}xPM#y>`3&wpo$X*kG^_P{LRHn^J@*HC)nRR0s7MXZTsq!BX%`ymbfR3b;snx zCTn)SNZU})2yeyndhl9oUDdxE&LcB&z&~sm%h=-;XZ3wc8iko5a(f8`wxJINsW}WWUK^hdEH_$7cY2#5r*!3WY_+ghrdSrtF z>85&vC}iQ;Zn&wQpg?%a;)1hzstuLOW2rZ4>n(uJ3`oOb)I*~Xw&#yT2D`|3(s)Fx z@3lp3RXPkoiH})Cq7z* z@dqYj_VSVom<0fYwQJV`As)cYat{|L(eZcZ1_S6IxVuSU+c?cA0iljSo(jwx?AZc` zz|XcjUAU6Q33vm~I^Y|eXa4o90}1Q3YuA7xk3G`6(FIiL;90-^_q-i|GwL3mV0#=V zxrl6bz}wjLk6=_bW`zyMW)Bm7z3KnuYk+_Ej&pwV7uOOI=*Ppo&|X;vN6+hsElZcXHcV zcXr(rd4ss&;>n!FM7Pp(@|&PuY8aZ5-tt@4Tp6-WM=x`B!(DW`q+#Z@P8LsJyb-M0 zDQND34ZpTfLp|oM%Q{P$5WoJVyUun+D0@-qWyteRS>7yc#zMWP;U%QAYK3*r?!aJZ31X?1X@4wVRyiwI7Yape+epRH>z^MjKV8hY ztWV{WgZO1PCcWwyIdj_nj}>Y6l>`1FiGeeGA%;s&8{_p8H@m`)KIzXhzNg{8eHi)Z z)Go1tX$gL&t#Y*nG|cqt>_Dc5HD&bp614qnyQOxsNObtdKlwc1bonL%45PzqkhH@^ zohZ6~JpE~5fcj7xJhZeBDGJN=^z9(a#Ze_8@=Htk>PU?zJ5DQSfZPtfIOhlaf>^kf zt%AHW+{JLn!xC>;&nzAz80vIbq(!*Xg;OKdj};Sa@j{4bXP;nDh*T!GOuSi&1FZA53z>)8)IHsKym9AGT z^W|201O!eN@l_AXoR7LfKAR#k%9QC8|*`9Fb^fb&6&z_`)q4b9$7ZMT>(r zOKlik%QW{GgCU|I!WLM>W&tr!mJ?UbohezJR=Wm?FdEU6v;e{MJvwxS2yG++DBbaP~ zNv<>an*Uc;d5L7%S;w;p;}oP@wU z-@T7YpM~=Y z#muHV$8>V3g8b@9Gz*+U*%A1?-7zNh21Q2ARFxiAh38HDe4Fv@w2XDSaP#a) z9T6q%u=LROoPimlXig-VE|*ugQplGdr2|pQGcS);mg7HZd66vsEwl%I0xM!w6eBYS zS-bA@%-)h1s&n#2gDLxc@~cetrDF~qtcZiZ^b`p%XV?)UtqrINeoBPWnM=BwuAfzv zaUO;3_>+gE05&(gtldWKRsDaGVf}T}yt%f#a~1k8NtPh6 zMK}RK<6oV^FDm1np9a()PVMvpHUSmn1fFN-Q3FVRTIm(g9dOtT4Zn8>z)A4)LSg5) za|KmwVRY}{joUv6#H{{dFpl^ojOOCu0D}>L8MvN0u3!6Cg8;-;KgSXOTF&_wp0QZ2 z%~wYpV;KmH1?i|B+fBDaZ$6ZK2~Xd7XTjS%0@nIy*H~wM^>+Szjg#LSPZ5H{ZIKd& zdU_}04;skuM5OX-QFm&`C1e}w3Z@=K5o6R0VTNZJ48@fE%^1y{dPR_u3uOsfm`jGC` zZiGg_ME|qF7Xg|<`O+ueJ-h$m|J$KU?NVKdj4=fF%DwrRTSvXB4Qyi63-37YSQ@!5Z|q@1p10=dLd)n^z>c? zb&TLUt*9=Qbm(rY0jV=tE$Nt4W82YX`i$qW_Z*{?M~Y0KBT(JSbo6X zQbWR0+A2ZP4DfarQIa6gT8#^IRMmJ#{Ovx|yH7Q}ZW(PV46P8-@=0;Ov-sj~I%e|>Z-+#4a;Rp|{e17x;d z#_7nHzrp*$*2>);%MPS%bXHq}bV^vzEQz}AO{SM!!)|6;pDS3--nQ`AY)yyjzNi^l z%jwB<79ASCI~IcuF3BPC=outMgfA+{DV;I(q8$-avZ#a8Q#0?)%HU_;O~)Nf5*y?p zM+jILSY{4+;mQ3d1?XgQT*P52zHKg=I59C#5SbbB*k~!44%r*fOY_XICZs_Fq0=mA zsCtzL0n?@>cv$Yu0Gq*^Q%R#si|pdY67lS4yLgioI`+VWJm1$jD`m- zIy<;xcnk#M_KpHf;}lR54Nv~)AGk-614#L+h2WgSf6Gk(4=KF|+19MW(S=ssTiIH# z+9Oi<-nT1fORuyVOr)GQ-)Qb-(|}IF2dp9xEp?AZ5-I*}>d^|pL*hnJHXZ4eNy3+* zQ;}YCHolGT>W8e;q8tTbFoTfiBQuq#C`3y7`zXPV?+{uf7I{4IY`wYB5tg|2?(M|| zmL;N!M}zM4oudSzdxkSJZ4MgnobAkov&O6QZ)|paUUp}l$ew|~qek}X^=gsS`*d94 zo2@PDEmbei+QD+JAO2(TgNmCQ&K8Y-|LU^%ftgD!48x3UxaOX|(_hCf>Dy&JyK@$r zIB1^Y9Ch_DvPXUQkq-=!Y;4?H3O#xeN1}K;Z+H-lbS@?w;?p=5g%z)OJIVTLXa20x zkm5dsooVO2-KZOh^;Fm&BcR~sPTgP9bYNGx=mfne0?8|`(4^L|*2Y8?|H`yREcoNw zY)ihXqCm)Ar*se`g_N)}*XGY0et2r;!)^<0i^pCao| zn@y^M0jy2mW@+1!v{D*!`KWUSQRL#BIR#NcdU+CB0dH>wQ;f0fNOq8UOUDgOu%Jgb z9279ewhXb%GqxVAf$-R?cv)fuSwdwpXs4w%EU(N*mjY_+3JFz zh@a{LFxzL#l);?smn8!D(od%6fjuG^1%Tt5$;bt`Bk-hxGM!64Ia_@3eA#7yTjf5i zd6(-znOy^R1^4A`bAS5g-7@Lxsmd?Q%MG>S`4QO@_ z1%=jTno7di7t1eIoF&K^oG+}YEi~5CBFV+;Sbx6>x(|k^LRXKDJD2O%k&+#v^k_?uuZ3UXN5kZR;TK zrvCgfLmm>IJ=N~;F1>bfGE?sR=(-l0@x|LBfeITA?AL!Xb}f~1E$FKj&y1}EKCq!} zq6_Q@CAB~L4Rw3kBKflTSj}~N2M_%LZ9Yk^yD3_*G1AN+H>jxdq~($N#oV-+iRk^i zC8xHO@=iyoCXn)7kW1!90T+{kzlA4emhah4x%Aa?EVe4o)-G_GnDjJKFZj(x=rv-M zgNYo*$V}AjJwFjG_U;n;>qm#Aj?*mpQ~ZiBvZrj=V?@2Iv)wly8XYc(?mPAsQw$T_ z31t@2Kbb~Hg$r0ftfED=7)8!stjTClT*b+SP3El7;qqk9*(CXtSgZ9KMrrgU?TQJH zO-fC6aVaJrLuOMgJV}q6h*mKno|Kow4-Yb&UN?F0!ysu9eB^qjWv203`wK)XlmQGY zHqMMBD13R}&aix44&bYh@;w4}37MUk0Q@DoAX3}|0>lGx2!;yuuz5i=g-(Ov$R6}_ z4nx^4f*O=t3uzpYASP|87bE^{X8X20qgr6Q5DuVUB$A%-3sMVnD-`h5LOMVX%Pyw981LX?_>E&aG7j@tpEAQgRY*dA?7Rr ze_j*`>=zzf6krJ$mQ?~S3J&L`l*@SmOw@FCC(q1g=YBMtV~Y%aObdTi-2nA+shPzD zIlXP&_29v8?`mS383wujT~<#&=b~UcsBW{BNbH&6$Rx*?IL*!g0U9Ju?ak33aWsIO zB#^&l>it!0mj?Fw8*#F9sTV+gE&J){!}ZJlzvuWk(rJdf{u_nQ+)ZXq3AI}L1kT*c1j>Zp}w_{co?I7t^KSz z&q17FM_-&i)}OcHcAw$kKHTs~p8>`f-8(s>kMcpZ%{)`{k$bjiCgsidYSCoOQ}5j( z)k|XKm5>K2XnD6joHr)?&l^*gA?tRDp?M$3EflNGH6L>ia5GVkOpFLqbzNR{@d@mP zB(VIllsyyU&!}wa`^vONIh|b@+4p%Iuek1esC2{fdzHFrK6T_^wEKOzJ+T+$+FlI> zLh|oqy4889S0u%X!e;_}r4u)m)L+_)=1q=Y-<>6+-+bP4-e(1!o+1=HWP&JQKpW?}dL?E4qW`mi4huLEX}rxpmPz1DCW_>u{V;$lPtj zW@E1v!i;6ZlkGcIBNJZ1AqO6aYDUI0{kjt$-q?R7>nhC&x1lRtna3=klYzKh0-rED z71}7()#Zl1aPGvXFhYOk#Hp!oA0Iu8{Vad1#U=F9(qx0p5!UOXcQBG|uh&TZlC2~U zWqH>LSSMiyrRqD>hC`^{wb+L?yE@}|X=9={#F!@@L# z8W54H8U&8env5;5>^yNA6hj>)D3FaRY2opCQbjDJLOr#E&){)D2d{dP2lU{<-#JR< zz_e%%j@Dm2>~H4y4H2jjWSF|NRm4N+oi{5Yc8_yRy1uHfow|J8c^N2~yt!&l$v z;@ILj=+9e!ZM%T9mb+o^A7`iEat37FI{Jr>hx_=>alO9a^=12o*reg#H|+oOw(FnJ zpZl#ymM#rDH7P*1EPxKc%W0b>C8wll%j5kp()y{4oFsi|%pQ!qNp4Aw3F*A2v~g)= zjh~y z{eM)ef73IVw&OK9*kIE1VRrnWw|ngd!+@6qJJin1Jl4AWVx~jr&{$}1_~__O9P`z} zzSXO`^C%0aWSSu2?+>T7qhy*qcBvcbpse99HEXAQ;rC-AaJo8f2?j1!giN)f&&*^f zPcf7Q#m|kkckFXDU_Qhbh0hi0KOBNu zO?VGOeJ)C;AxS;7DZEyuM_Xn9X^4gpaweF=qx^m+&6Gn<13jJH&ng&nr$9{yc3;2J z2mbN~bKu`>n@k|L7G_6Mdz?z*TK2d*=Yt@3AUQWIvjChwu2YY_5aSB!^2^f;O1U;Y zknh2c8{mj-LH%3ZeDlVQ8|(~f?ntSl7bxgD2iRs{AgTpV88~+L?%m@m+JPCE4fcNa z0+hN7i?4s|zW#|u@$Uw||Fypks^I?x`MW}ts7O{*S0gJD#VYf}$=Yiy0QuWujW$`l z`HTqJpnYJ_!hkH&lPs!XerIw36w9M=!fF%uAGe#U2|tRGHGT4Wz?Aqxfb!6Y2hV@>Y2vmzG0Y{H`P3 z7v6)#;m~LzQPYdbx7SP6f5@MHo1wi6@9+HBJ3&<^PIN5@-5M_59-RxoY?xzj$7?mo8&|3l^PQy6)4b`4|G! z!o=gwXwcWz*A@`ESb=>@=&?0^rCVgft|?+~Jj_m9Q(*ShQGMZR!AXelLcys_*R%rq zoo__T)5z-B8B(Suxu0K-ChmDE%ZZvE-9E#l$E-RYV1JMZI};9jkD=|N@)NS;scJM< z@$uD7J>h6z;in~KlX&F$1SVF_5#;@8k1j#6RH~gJ)t7SO`9w?O`^(f0%%)dZd!%d{;WoBDZ7IAu??>6onQb*g5+G;(=6m7HwvyO! zB;h|=WFWN#*8<1!!cP7H+j91J>t_%NTZ+PA*08;Dm5rR_NOsvma{T}Svma+LNCEN@O358C5<^<(qw=@g%i%VNC30xY+9lhBY zkX`YVSUGU_@XRAIKiIh)+D(cU?FV$l1K%z)C5iEF*!+r#e%UTH!ql|EaQnHW)Ge%{ z2f%P~J%W76cl%_9OccYFaB%nYk!g$X`RlPm^Y(`jLu5?Mc+k~3a^{f%oAZq0bLJ4J z>%}a8RL656o4~aohV+`{n(lktT*S!k?y~cksk$_e$6 zSMEBtGe33swT+FdnA!Q2i>QU@s=XS-PclB4i0;+J56>Nit{%PGhLH>!f`uipuI>`R zWNzsXEEHhmVbq6aWrcY-}E(xgLD5S@t}g@~b5U8nJ^QN1WY{-u;nD zIdgyZ@h@rW-yz-0|8O?{YoF}@@CO60`CqzJyqE%6gQ`hYSC$sRCFHO%AGlRiGg?XM zg;FE3DEb^wvP6nf%j)V&%#`t0T3Vwe3>#PtRKm4el>&NgeGOzr*PU35^6k-jQ}Ln6 z2>i{lhh=2U{Vw6+N6$+2c;{Os7T#QJUaWe(^wId;`#j-~f6$Bum({hN@$cjfPasT@ z7g7-xR!ZWcNlQ#;L_G3nWd)fmVRM>jAk(x|QOftB&SOsTnMtCl&=S5=B+YeIs&8Y>2riex+`A9vZmtnm z>EADqb-A--@%zr@?S6&TP$(2VQT1T-d`zhB>{>or6VtQ(;G;kG*pBXu!=%ZH0S1tk zx9A_t8pq*}CDEZIqur#ggB`{j%+M+Kzic2Ihb;so-7m^*u#))_bpE|Lyaz(8x1aQx z*jUi#cP$*UA}!UkyI*koVB*R^Ebo)s;g`GYHpu!P8n4-VD5a*mqjcs9+-*%*>&=U3 z%Zp++&o`eqQHs~MM5_&Q^q9I`zBg31Q%)PwEj z{NiIXz87-H5ZJjl{Yw%TtKDbX`JXKYScH|{$e<$?N9p_2jaU%a|0L3{OTKUX7z~!)Zn*2N+Am+X_XdWbLNx&9IQoKEGQxEMM)@+lo74Neqiq+_1EsteVrv~|8r;r8D5F9FH@JCo8_IWIpPk7g-5)sQH^mZ>9Mo6MG`=!aUFrCNw$*udzALFLBSNq8mF7 z+%ui^vYDxDU`h?~*{X^2t!f$x3;Z_nm_i6U^eSKuk;J$62=%+L0-uSQwmXZVIUf}y z;yyv&K5Q-R?m9wubV(dfmr zK_#nO@U>lh-w%_mkm7yquv7AaX)Ns2W8g`*u^XCMtq_3PEg*#U9YvEL#v$RvYfpOc z6gO5;B5%`(-H0zg!DoSXXXzwRR7Hh8J|ZV-IJ6O9M=g{!c7zP@S}l06UTZEWbDq zB+Z;1P!?AC$H}gJ(W}T20Z-YbZtr#hzm&%06!XTm& za3l{aJLimqND&HyD=8qs;Tc`4crT@qkSLU-XdaO_0*4;Oq8^a2rF<+tjHJb?cUk;6 z9%LV5Yaojj4m%VO!QHE)*jJYov-#(Q( zP|$!LgZq(y#DRN{=E1Dt|Inub{!363tQe~fXuM6&WAgH(n@lo@ufJd|`h4Y0x3Xsw=f8KIP#f1XD>PyVab-oSE ztF`r4uGLiTZEb6B_P*71xrGI-almz6flA*I7Kg!+BR&nK;zBhD9!!r{g8~dz0uh$P zK3gb;BM=h86*5>q4C)CQUB4=vJ`UT5!+X<;iwg4)NRf*vojYmEGq+^jRzC=PZ9oaK-C@bz^i)8nON-1&Pda-hiE%b356qhw(HC-~ z*q>=$>7`rE1D(D7|6iRb)FLbCM^@~=-;cQPCPejab1rv&kZ`FG_SR6u(j2-Jxanlr z>Ch9WAo29$&XMs6F&k1+qr;QIjwH$H3<$@Gf<^}fh)GC+C1-_X@M+~@qN1RXu=px0 z2ACx=JQx(>7+G2-8V3F!qj*8E+Z`M#00ut>kyStg)~o<8-_RT{54jg9-vw1d5AqRa zmgewyUMz~I8F`P)GbjL&pg~p+xa*^E_&B;k`!4MWf~*O|?v43%UnH7jyuc^ViWeZo zoTR3;Mf%``1NLuT{hON18!87Cga~oK%xZ$h24ZUs#n+ihY_^ixVI%EnC*y5T+_R2& zz*+8)E9uCuk8V3TlsheCj|z{+dK`}j_LT46zyF8I8M(9YH!yPm#X3u*Aq@!;t$*6O zW4)`2q?*tUXS+*8LhM2ttz4xF(cyJ_hZG`wKP|v6s2S5Sqe^AmS!i!qiaGM69hN;j zb7Dl@%%XYu_M^+TyC%l`vUQUsz7-mI7o!8w3nUqZdZjPZi>gij~r-|d?GWz z?|`pzYnl3UsK-Y}Av=oX_SnwDy`2K`oPQ|~_#PDY_hCYHps@fq0;)D8l%opDNeSgl zL2Xh;ZKt3&tE0D4QCl=o+cnYdCOCHul!pe|Lks1lgZ9?L_!{td8}sfq!0yxMKW)Sx zWWayIRN$zgiU$q1)124ag3sTc_ka~&pacGh6F$V6u+N^bpC%M+B^=^JIO-@Ex>o#z zGk@q7g0H)vpEDsCgj8>oIqI_NxVuo$Hi1xAx!}$6A#SAO?kcC;3{UPB4DuEV0fQk2 z$3T!}yKaBz7Vj_}e1r}@UY|eR5P#MfpRY#GC6SlP;;JfBYs*0&U0z*P!368wn(F!*W?f@lb5lcWYtxPMscqbn`D*pR z&1!ZE*7er5f2f_?Zglos?PoQOcCflY0Cvx<+kHL#pp@>v^ zd$aJ?w+i;D!scN*5*bhWGL`KsoStVW^=Ikt+L^R<zqsk!#aZHAh%@iP47c&CTNUYWHm_0R8? zZ@gTVxad49za^O-W*OW7vgwYze0X4$#5p1}8DU>JC;Dc-=ZxB}!EY4Gm=m`OCj=9t9Wu)|)x=#tx9fY@pMNY* z#ukJvw23$=WjYJ;DxOV>!6-h>8NW@+H1OH1dDdCWDO{@WgZb10p!+v}U z4wR<)I7dpce@|8dr3GD*w10SEE>SahVqEo%Yr6yWjMGRKIkVGcGbJ;wc#Gnh<-q$? zhJVCnP3t*vu?&YVA?GM&kS(2Y-nGQ`ZJm`XUKIaEGB$kQgw8ZiBCLr0)4p>!^7HqPjpWcgpB3?iMa_q-4sJkTqKtYeh2?<|2Hzb}kA! zt`?PS(1|0$QYy=1vj} zF_)ODiDU0hqRFR|)LW!3no?qJCXT6Vu9EcHo9bDjOv1`Bo9LTvpuSLe%z{PwyJ4gm zuiJ~jMLz6qkmEXg)tJ#vo7O7a>WK>~Yq1;T$V27ZX#-t6T^(C+CYg^Q%eT+MXY z6;pDICPA*E@h(M*!Z9is2LH}25$ zyK*tm>Ixlf#F`)D$|P1EQzR;_G>nPqVYdaP=ED?;XfR^eyL6G6v=ZUzsZX+cTCq=3 zF{n@u6ZbI!6Fwo)tw`!v#Da$03ZSc)9eUx)^>DJ{Dx+0-x09#!J+|R{A9zw)K zMt06F(bktWx|Lv4Smf%myAF6+UK@PyF}Q$Ikv363ko_(#<%(4EB2~7y4GmFX8-}_{ z7b#TeLTVtZ9_X;QoF1?TWo7E#Sx|947FACzBy`*f(~?4*t*~V4Ls#=Mp{mcNO>}HS z-u{R&DAu(~El{f7^8W~hi(&w3X}$1;FAO#euN{MjKRgSN5>yP3!R&ai17MccMu}ZP z2^AHagnok2iw#BWVH`}3_7ayeZOv(BZY*Kd&eEot&9PZA1lrpACBO|etVzd+MUgZi z!62ccUNFlaTLgFsfnlPG`l8z;VnL|-P^cK{s>C7Jr53zNOp*XQ9>@GeG-8x1UN8gH zB~X#PWBf6FY21wmq18sUq$zTCTG&}`2|iKi(k#3rpD(eOM=K@ern!cxmZ7!c7|j!74drIU(*bLoUU}1R25?wzf6;T zHfo<%6@wTS1u5_*S}BY^k)s^7CR>WJuwGmO6S}}fz0OH0lTtLIy74C)L)e!2tinE2 z`(>PB@l(Am4M0T=Do!UusCX60Q-5iyQ=w{?W5!DpBwcC;iLjnBtzdCljis&vN7le) zRWD;Lt6BBZ3pSxDtkv-+5r`126$lirc+IO``O<^A(luHg*sEX%OIW%169|7L(+W6H z*v2~6v2qQ>M$4lPwn)kfuO|N>_%ii|7_r36quYBiA-}>73zWB|rdi7A+ z#FpT{9PqAw2Tb4s8~DHoPOyR(%-{xxR}Vt)>xfK%+U`2|!Who5hBwUN4tsdL{FU%& z1N`95WE`W8~gajKn}8y>)YbQ>XyVq zPO_4h%;X#A*u^YZK?y#9{_f}i}?5*%5;S`M?A$4ut*7P+$j?Qxmc%;q*X z`TxwQ{j!_qOy@e|xCcXUahla^=RW)S&kjB_n)wXqLL2(fM2;|&Dg1#AfEm${jUm>#vNS3Tw@D}eGZ{I0?KqfwpHY?P`1b z+YIJ!v9m4fS*IG@=uS6&`KttM!V)2Mkm^))+tc#z*dLJy-zWCjS7z ztf$OxlDmA`CjWTB_kHk}+Z@;(|2U%!e)FCyJLcFnfo?z0=$iZd=%F?_5`s=}ZW|rx zP?vPhneJ}W^y)RU0%SrfhGX^%UdfzEbM z6aDOR&pWBbZtSv~-RgP|e3;kn_kzP+@QBCq+O^&F!zcdny5>9A&F*-}TRzByPdVkE ze)-N1o9_?*JLf%5`V}w!zvZrc=~s{9%zpT73zd-~lEfBWEvFaP0pZ~O3@ z-@b%j`G2v0{`M1D^5p-%`{zI2%&)xs^v}PUL0^0J>;M1gm3d}|e*jp3;I()}w|NG* zfDZvifDyrh;1_X zh&mXFod<`NIER;riI#VVX*g?^=!uKC1WCXIY*>kqNQ$M`g{HWPiO7nwSBPOain7>y zu4sse7>l>KdS>W_x@e2NIExtYg{ZiTyf}=Wmy3rejLPVX9>)Y}h>WZFjEVP)Uxt3oc-R<+ySR;=*o|oSjj+g#Ui3xd+`IwE=h>#E2bMn}b?^uzDSCAMfkQ%9w z`Dl>g=#d}ka~ye)CFzeL*^v~Pk|TGL?wFA-8FvdQlI}>7GymywHA#;gAd@*skSmFj zKRIK3pa`Du3cyed$bbySAPluo3XebtdBA2cd6O+Ulm|u#q+krs(3M{Km0-yWkFW=1 zR+Vh%lUUhdd*BJk0G4j~mR?y4h9GAD=mad8mL9eTqu>m1*_UuB40D-f_&AR|iI#YI zVV1xQez}-%$qRmx zpbWJ+WP`~BxOtYJ*_z17UY5X|%!v$qkYv#b1@2g#$Nzbq5nD42di}pC7uMp0J>|S)9hnq4VVk zD|(*Fpq?X20!?6-6ab?G%AvwgqvxpzKSrVyKmk3;0Tl3~1o{U;dY-jVr1|IsQE;S4 z>H$l7qSxu6PpX|-YJ4GCr4$eWR?4LMd71sG3$DI8F2rx36JU+S8HfTwzTpuCWyRR3C~5Fn_7TBxDf2#C6;{izIZ8U=uQ zq+}YYcKTkVP^lCusm@0NP!I)B5U3O2sh`?juOO-iDxAY+s`JRHM+yN5K&ppn3(Tpe zuJEg_5C8x$2*CQQZ2Fu3IjeRlrnkzft-4-l`kQ$Q0MuHo)=I6G`kR4?V0 z00GYWtmzf4zB#Seny%UEo7+lbdSC+H%B+G)sN}j{{CS{xx~~4|WF~N`%(|-MTCe6c z3$WUsfWWUy00oF z8~d{lE40i>vF_Tf-b$vBnzTwQUM$PBviY((8m|oNvsF7@6NJbbep!0s|Uxrxn4=OpKG#zd%2D~UW8z} zUkMD*39q1wwwUXhY`eM2;JKJbyHUWn;VQbV%LcD%x`E)GzI(JiE4afeUV31zZMz6c z_O6O+xeeRAdJv>}+X%XrygeJP%>UcG&RYv&>kLHNy_E|AJ$t?4%LWkJrO9x-s_DJ! z8@}x;UW=fjA6g5%i@vqXy7x<7d_W5;$_(7wne@B7w+o?$puO}-3UKSczq`J;y1*Qo z2+$jw%s>kLi@=r3xD_10>h%Yn5VUSv3yh$kgO|VnEW+yL2aR9~z!0{xSqq*}2rAra z-Yc^q?85Jb2YlcMLL9+mM!o;r!#>PvMm)hhY`;l7YD-MPNc_Z5yu&i<#8kX#dT;{i z%fkj>!C5@NU3|r09LCd|yyE%*Eo{b`w!|{4##7A3lNQB19LI7TX>{zxWqik<`@40F z#e95dc`UPE9LRIb#ZgE0k6g!gJjs8y#bYe4l8niM{K!%a z$ewIxgDkFvJj#Wp$=+(oqKwLOrpi&EzC2t2jO@y-SIKV-0iA5ieFn>{T+6&%Vs4zq zYTU}fT*Qbx1;kv;z4?u^hfy>200(*|JB;GENMw$oE!07U)LKMm9nP0&P5)aQ)T zNKIb@&C^SL)KAUQ1l<5jP1Gt~)i@^9Se?}|&DBmO)CiE(20#E#E!OW9)l=}*OO4iQ zjd?C`)n*;maoub}Z2%6C)o^{+BbwJ{-PeBY$Vwg9X+79xHrG=9)`yMQl&082ZP<>D zW039EL@n5pZF+#s*NvUo^#|Ezeb$}r*$=kaj7{2_UD%wB+A5|8pk3Cd&DyO8+LA5X zC+6C84c4R0+PJ;gm%ZDl-P@6!)dB$Aq%GVH0NX@u*S4);!oAe6joHo3Vv1b_p)K9h zUCotU+u2Rsx&Iy8-OXXhUDw9#*|=Q=!wufy?cCeF+Uu>|s;%DdePPed-SbV~E`Z+F zZQu9ZV6H6%=-mL8jotmdW%*qNRUqKHUEuhQ-s!#E<(=98Jq7#i-V7dYbB*Ak&D|;_K!D0FDJ49^sSy;S@gOE^d4-Km{sp0I=QS zIZk8;F5@B|gZw+*bo?zUBf><~fkViq2knkOorF=UDInk6za~kmpsc2Wc<^QQqg~yyVNB z0c(&4Z$9ber3ZJw=vPn$n6Bv$K-8vQ02z=2Jg^3Ppa;JG>%boD!anT8UhKwx?8u(% z%D(K(-t5l)?9d+V(mw6fUhUR??b3b+cAy3|FauQ3=(BF;roP+-Q0@Y7?&zNG>b~ym z-tOu?00IE-12FIL9`Epu?)N_L^nUO7e(v&a@9*yK`o8b=PVWLg@Ccvq3cv6S-|!Cq z@bg{(3NP^kQ0^9g02ZI|8o%)zZ}AME0UHqVARqD@Faacg@+WWdCm#c05C&h+@-W}> zUjN|oUQqKkfAct>^E&SZR^SC$@bff~1y=C$LT?2$VDv{%14_U2OyBfNKLbiX15!@| zQeX8}FZD8D^;tgySsw#3AOl|i^Aq+j|AQ2GjR`k+6kr@sKM|I#l#0UXc)v|szSfBU$9`z2ro zW&j7g4+p^S`@YZn#9#czU;JZW2FY&*V$l4~|NLSA2GH;PU{L+dFa6cO1=+6!TK}*G z-p~EuAO7M${^Za7Nv;Lwj|Epi1zNEF-~Rsa|LyJ{|MU<4^Z)I2-{)Ll&<&vZ2mlZb z3=AY#uwVg%1`sA(*wEoah!G`Dq*&47MTZI#5@fhh;YWoD1{N5(kf4Hr2^6ek+0p>Z z0xnz5q*>GE$^{A@JbzFZO#EvCfwk#O4V!^E4(pHQXFm1K8-J-?rUA%eq-o28y@0BZ9`U<8(1#n@&R|+p? zY`8IEz*r&Zd-sEtJ0V~mE>!pf2}zk6W!n71bLi2Zo0(G`P8{snv1g?k=gjx5T)mDrL#BLM z^k>P&9lNEAm@ahX*R4Bu?|r*i^6RIpC9>fE5=+dm!vqwtG6X5ZtN{i$Gr)n*A~YyA z)+%(!w2UAk4MWv3r06vdH);r^kwBx3Ba}kJO}CX|@~yX=6o_$w7;mcaMwW5{j<}$B z;>oxliKC#X=Q@zC$Rm^d;EL*+baIX}=Fkqx@2aeFEAqx8gN*dLOs@;H#F}ruyXwR5 zO#QT=EHKH~H1I$I1(P#D%DAxXvdlEwOfw1l^wY!w5Kxgc3rPbJ#Q%t3Gif!B2qm;a z5C#3S#DQ)r2qn*Es+2bzags47P-hCYB^qV?^ivvBE!C$W6&OyqSAFcUIH8K;KuKJ4 zMdL|c}wh&cus9$<$Pn zPBz;NtXw)1w37=wH_Ow(fjpaZ-grT4RNh8Ud@bKYX;X1fMhB(Wpp`a7$ zZDQEdQbol{Ra8w?wWm;7#cbnQU+q!WAA=e)SCXY;l2??gJHyxN&^QAPmx;A9yei31 t_9`;UU{+^ln{77QvEHM$T5hrBRxWGjGV?w<$4wXAbn9f7-2#9B06QDmhkpP7 literal 0 HcmV?d00001 diff --git a/lib/shake_animation_widget.dart b/lib/shake_animation_widget.dart index ec91b95..2926532 100644 --- a/lib/shake_animation_widget.dart +++ b/lib/shake_animation_widget.dart @@ -9,4 +9,5 @@ export 'package:shake_animation_widget/src/rote_floating_button.dart'; export 'package:shake_animation_widget/src/animated_button.dart'; export 'package:shake_animation_widget/src/animated_button_statue.dart'; export 'package:shake_animation_widget/src/bottom_round_flow_menu.dart'; -export 'package:shake_animation_widget/src/rote_flow_button_menu.dart'; \ No newline at end of file +export 'package:shake_animation_widget/src/rote_flow_button_menu.dart'; +export 'package:shake_animation_widget/src/draggable_floating_action_button.dart'; \ No newline at end of file diff --git a/lib/src/draggable_floating_action_button.dart b/lib/src/draggable_floating_action_button.dart new file mode 100644 index 0000000..aa91364 --- /dev/null +++ b/lib/src/draggable_floating_action_button.dart @@ -0,0 +1,113 @@ +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + +//静态路由配置///代码清单2-27-1 可托动的悬浮按钮 +///代码路径 lib/code2/draggable_floating_action_button.dart +class DraggableFloatingActionButton extends StatefulWidget { + final Widget child; + final Offset initialOffset; + final VoidCallback onPressed; + GlobalKey> parentKey; + DraggableFloatingActionButton({ + required this.child, + required this.initialOffset, + required this.onPressed, + required this.parentKey, + }); + + @override + State createState() => _DraggableFloatingActionButtonState(); +} + +class _DraggableFloatingActionButtonState + extends State { + //托动按钮使用的Key + final GlobalKey _key = GlobalKey(); + bool _isDragging = false; + late Offset _offset; + late Offset _minOffset; + late Offset _maxOffset; + + @override + void initState() { + super.initState(); + //托动按钮的初始位置 + _offset = widget.initialOffset; + //添加视图监听 + WidgetsBinding.instance?.addPostFrameCallback(_initBoundary); + } + //页面第一帧绘制完成后调用 + void _initBoundary(_) { + //获取获取组件的 RenderBox + final RenderBox parentRenderBox = + widget.parentKey.currentContext?.findRenderObject() as RenderBox; + //获取托动按钮组件的 RenderBox + final RenderBox renderBox = + _key.currentContext?.findRenderObject() as RenderBox; + + try { + //分别获取两者的大小 从而计算边界 + final Size parentSize = parentRenderBox.size; + final Size size = renderBox.size; + setState(() { + _minOffset = const Offset(0, 0); + _maxOffset = Offset( + parentSize.width - size.width, parentSize.height - size.height); + }); + } catch (e) { + print('catch: $e'); + } + } + ///代码清单2-27-3 计算按钮位置 + void _updatePosition(PointerMoveEvent pointerMoveEvent) { + double newOffsetX = _offset.dx + pointerMoveEvent.delta.dx; + double newOffsetY = _offset.dy + pointerMoveEvent.delta.dy; + + if (newOffsetX < _minOffset.dx) { + newOffsetX = _minOffset.dx; + } else if (newOffsetX > _maxOffset.dx) { + newOffsetX = _maxOffset.dx; + } + + if (newOffsetY < _minOffset.dy) { + newOffsetY = _minOffset.dy; + } else if (newOffsetY > _maxOffset.dy) { + newOffsetY = _maxOffset.dy; + } + + setState(() { + _offset = Offset(newOffsetX, newOffsetY); + }); + } + ///代码清单2-27-2 可托动的悬浮按钮 + @override + Widget build(BuildContext context) { + return Positioned( + left: _offset.dx, + top: _offset.dy, + child: Listener( + onPointerMove: (PointerMoveEvent pointerMoveEvent) { + //更新位置 + _updatePosition(pointerMoveEvent); + setState(() { + _isDragging = true; + }); + }, + onPointerUp: (PointerUpEvent pointerUpEvent) { + print('onPointerUp'); + if (_isDragging) { + setState(() { + _isDragging = false; + }); + } else { + widget.onPressed(); + } + }, + child: Container( + key: _key, + child: widget.child, + ), + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index d021429..0fd3ea4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: shake_animation_widget description: 抖动动画、向上弹出动画、抖动文本、垂直圆形菜单、底部圆形菜单、动画进度按钮 -version: 3.0.2 +version: 3.0.3 homepage: https://github.com/zhaolongs/flutter_shake_animation_widget.git environment: