From 191b688cc82a7997cd0c166c251aa2da3eec975f Mon Sep 17 00:00:00 2001 From: Tony Mak Date: Wed, 29 Nov 2017 18:39:49 +0000 Subject: [PATCH] Bottom user education view shown in work tab Introduced a BottomUserEducationView for similar use case. Screenshot: https://hsv.googleplex.com/4856820942241792 BUG=69963630 Change-Id: Ia818ee44fa5ce97ad1778f33e6a9a3a36cea5017 --- res/drawable-hdpi/work_tab_user_education.png | Bin 0 -> 12986 bytes res/drawable-mdpi/work_tab_user_education.png | Bin 0 -> 7088 bytes .../work_tab_user_education.png | Bin 0 -> 20719 bytes .../work_tab_user_education.png | Bin 0 -> 41891 bytes .../work_tab_bottom_user_education_view.xml | 57 ++++++ res/values/strings.xml | 4 + .../launcher3/AbstractFloatingView.java | 6 +- .../allapps/AllAppsContainerView.java | 4 + .../launcher3/views/AbstractSlideInView.java | 182 ++++++++++++++++++ .../views/BottomUserEducationView.java | 113 +++++++++++ .../launcher3/widget/BaseWidgetSheet.java | 148 +------------- 11 files changed, 369 insertions(+), 145 deletions(-) create mode 100644 res/drawable-hdpi/work_tab_user_education.png create mode 100644 res/drawable-mdpi/work_tab_user_education.png create mode 100644 res/drawable-xhdpi/work_tab_user_education.png create mode 100644 res/drawable-xxhdpi/work_tab_user_education.png create mode 100644 res/layout/work_tab_bottom_user_education_view.xml create mode 100644 src/com/android/launcher3/views/AbstractSlideInView.java create mode 100644 src/com/android/launcher3/views/BottomUserEducationView.java diff --git a/res/drawable-hdpi/work_tab_user_education.png b/res/drawable-hdpi/work_tab_user_education.png new file mode 100644 index 0000000000000000000000000000000000000000..1879dfb2b78d1e55dead5f6daadf15445d5e56f3 GIT binary patch literal 12986 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 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/work_tab_user_education.png b/res/drawable-mdpi/work_tab_user_education.png new file mode 100644 index 0000000000000000000000000000000000000000..65c7e638dde87f1f88b20b323ff158057892a2d6 GIT binary patch literal 7088 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
Cc1o12@_ds7F_B-Yl}&D`l@)~>Cd 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 literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/work_tab_user_education.png b/res/drawable-xxhdpi/work_tab_user_education.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6aa208eaf7ec25f6841fce9a9cece3ad0ddc3e GIT binary patch literal 41891 zcmd42WmFwa@Hcp|5G29f-QC^Y-Q9v-++7l!;O-LKxwrTz`(bj|b?#(a%XbO0mxM2UKAk#LhjH>`$MWQ<8lzlWBqsW!sble4; ziYq8tF$fC(*2bsV)s>|1-c#@F($A z&|B|9@8Sj|$8S1!BX_~KWs}bMbOmL{45_`ei?3N5Yh9*~(E-EFp&kDN$BN{FSH{X16$v@Q*b>e6dS5EuA zyu3We9BBv!z?fLZ#V)tB{@ETDBP=l*Ix0FkTK*GlS&O_kQQRT1$t-SEG??vsLf}nt zezN?pxD7Yh3bqF{laH!R)KaDoFEntRrfOR`xX5JUXNNjj*6UUf{y+5%DgIhQ^0Ry~7O7gvFqJc=;vlfbk_L%}7KLOhTccB6R!fW#mZz)RRb0 zpoohSk&>R?23?YuyFPvP#&cQU=_%;c#MtKSRFvdu#-$Crv-?BW=OCT;3A{5ff#9Yn z2iIm`Me9>Z{rvhc`^A!#jV4vIk5VULzU6xq%(s9S&Hv=193k4Sz`9i9_jO$iBjwM< z_?a^9gNS=hEnNP1b3wh1y|UDQ^nU45MVi!?)*Ik_Vpx+S)HrW7+23zN^q+7A3NSCi zESe9nDQhe5b!g-r?YGJPFwVESXgw#G4>4xq+0(8hwqwn zKpO!DEJnZijo9~3!a8u8Q_Oy?=pCNFkac|=eVHQBq9WI_e%M=#Ir?R$j8SV}ywVU@uVm^!F!9kOTTCAx%|y-H>Mi@A>nx(GTqZkzuo}B}#mENj-Sw zJJEt4bZ=ckk&EU%LosA!EiS8_RiT_!?9J%elvs`7HaoT{D z+iXOStO3c)Bd)@%=VLV^q(QkdAso-iv(!+Ne>_XZxDPp7JsF3dDebqjYI#moi>R<|EFi18Ka5!PW_U#z2h%|%EQ#4qr^aiYIMDnHUdZrGMFLw ze{i)et3KDp1K)ZzolBqyxvw+5!Cw2333HSg6q(%A*Flj$jHgQ5|4;jep4r%uA6wi_ zui83w(Zv2$5s*~Xy2~$nVy=%=JocfW0qx&{fFrG@g@`AxE1R7Ub?>GHC_1@?W}iB? z?&>RcFwYx`v`GJF)24DpF?H~qH<_l>CLUKTs+Kp0gB0u7=>qOpkuYd-$36RI43(Mw zhawX7r15U2R^%?`nUnNBipcX{U`GO1Ek*y}vc;!%UxC^Y*r~dTDWm?qJ=v4$Jl?p` zz^h1<-EN&)LmxwupYv3%mY<}+3;o9HoSjDLh!`ZPnoJIK2<=QzULfWyZLo4$F7g6{ zR5bLM3-;bz?-?#(7}%EMny#;FlXIaPI>F##asB2C$KTEGt7+}OO9YoEeeo&y$fmoD zp|MiKTBI%6ww%^EcGt}ORLgqlo64w12~av&6Oj-hc9UoOj}`yG_O`u}KTCV?`f*xD z$5b?}R1rzSfBJ4}@$V0A|1*wb4QW8Z#f#%J9X>^>j(jwaWG{Q3&;iLGk@;JplI}`- zr!`*%B<144Y%erO*K`wqz`TlMd@di$q;d_e&v@qERM%V2d`_eelQ)nqYt^bZNH%9DM{w zYE}zYC*iEf!NOA^(PN2-yFl$X%h%ikL(2Q}+h;AOx*Wa5G{2Vf#nn1jU2yW#_fhPo zPPpQi=1h-hNNa|CUQH5Pqq}ZI)ExQGmZiyd*6TW0^A^ST=WeN?39((Qj zJ;bgPe~JOyFA0mR`o?X%679=%!_w2!+a<=P-?WizvC-A?Yl&Ww>5K3n>Rd8CzrtgD@s;|NdcqN|%8UyKvv7Jr~ZYB8s=Mc|`!%P@n|<2I9p zHZ=G|cdRZQ0$xd(hcjW5p3cwLm+goiI_sJAHdcHWvhwFkI$!{3lv@5s(#9n-E^3`O zt(vfWbPio>RVDZ7a+zL77hEfhpr)O&Ygp!7{vB57A9~P}ahU5Fo63 z5z|f}TCt=v94+w-2JH7sn$S8C!^RG7k>XtY{GI)=%i(^3W4nB^gPZL0-dEHWnKz%iab``Hu)bVJR|#&^u!dk))wxv50gQKJb?4Bh7We8=1#9pf

}+vHX^3LLBFf%YX|4&*Ye+zq?l4E;%FJA@vea@wdR^u5v+NM^f~I)qI; z=A|BmWe(kyf+r%UkWPANrB@urj8KcWv)zTh-L%Ud3Slm!V;y$Mjl`Y_DU5jMrDYa- za1ViS74>18D^x*3{5_v*I+=r+3NIXldPK+9(fb^ajJ@P4fRQ#oROYSpWjf?!b_8*^ z3^;*ugcsjIWclOapjOGnwHaRq_cOPKy4d)rgm#rh%Xm<3^qJ6^=-z@@x4jLzY|`Gn z!9iW1>Gq^d0P^8&-Es2QFwcs<{$nlFeadE8H#R*cCRSAC!i*FQwY{&{RYYU6izsB&jI z9DJ;TM<9R4BPX=|FU+RL(GrE6af%H$*Hdr_gJ=OJ#dMFe7w)$9mna{ zE`~K{3bw1sqk9gvUWRIG?Y62NUS7Fv0%-5Yk~Y_E{-gQVPR^_zvf7`))kP_<#$^{V z&>8ud#ixdCRV(HO+2WU*s4&4+P}EV*Ncb*O$ant8dOx*5a)(}FDK0ULhM?dnw3#bW ziqe4EkB}TJCwW`0Myv&=>hXm$jRAb)q9;gfy=k@c?Io#|m|?=SmwT540 z*W@otKZnN%aIkfd%y|0U80pLVufgc22V9Ml6VKor4vy#`j#J|ZKgFipT;D9?6rW<# z<$ACk^9*zx#q3&nEd^nolM*9b(?Y%i)?-t2nHfQnv|o?aPd$a6P??;aV;+Y0D06Am8R^E+}1XWJGQ$K`X6b zwESJSGGbX99lFk4-?He*7Pz*u8%0j2^qO4k5Yn)vrf)m@d@&Ti+cVwoa0y3t?Gg#& z+t75jsk_`MAW>+z!ret>4|s7CT?2hU&QA@@H9R|N`~fUd4py|%^~mT|1N68_14l?h z>6yOxm#Vr@_MCC}E}4n|NwPJbhV)Z>hy$9qtRvLZ3pAsx6dESQ zW6$xt^&WN}ZzG<75`Yrev1+Kjjeu_+>&Q^sl@~#^G7s;W6-0AC$JV#kJoIw)0 zA0#w}vJta_s-U$6~0XlyEYDKVW;yhkbF=^te19Wr(arq9lPSj3MmOZ30=n$`-^9Efb znY^W=^tf+NlWdpz9zQ=^Ll_v(PV}0th8$nlb3~53K#d>whHEJnQ?K#0v4UEms~N+9 z*BM^|`K)`Wq)e3Ej0JKpJP*6)Z};5>E|aPBxu^IFE%rAxwqLIoC_f;Y8*shQrU+iZ zjN3E|!g$E9$_@rj;P&-hwDZQhEL_HiQTm|ZLqMKu=6Y_r0N1n-Sh0>6^YBJ#Yg3(j z6M^tOBMrDy-lig|iQk58@Cs%F34@~!EF(*=aS8qqn?q}TAm4z(tt~vI4%X-Y(oIPm zI2103uY6ZB#5Q`0)xVSE-d!9Fvg2<$|I(GDd=ai{EdQLBC~)8&Z(B>=uhoL0qIb{L z)he(oUAXc+gnK_LYScM8rc!Aul$CmVK|h=niD`@G5$Idql- zp@U%+a|`}hyLJ_^Jv><--ykOGlX2aC5b1%yxF}Wp50CHr|H2+e-;}vbI_35ub0f%c@J3|MenU-lS;UIf7`9!;m8n&fyZ>Tf2?D5 zY##nzH@L-O_?`nzH?DuolA~*p&$uTgTNH9y75BE+q`IohjM5a=TErN{oKKsw{<66Z?@^&g zq_lC}Da{39g>TW;#a^xxS$}!H~Qu`}Oy?t_SPNCi_WDXxEScC!k#MH3M zeD2vOP9IY4tPk*R6@D%BHQvWHpdKOA%)9Rqm}*ae%;l2={7q&NtmRP-v3$Nhm9AAv z{|tb}dOP!6eG?)?o^Wpa?V-Nc?uUc^gV!xNPfRou7WXP^2cJqqAK0nq`QvP>hp@RS zzEyh;;tKWvv#pjJ)v@)aYB)_hxG~Pm8=G9zPj=@#m7LV?1Npx`L_}ajP{5KWv>(NB zo^(5HXu)B?B~^%03hrS=iaHtgTG#ge?Gk39U;UylF#85v2P)B%E65R9aUAR(EF)Zd zt@Kb$5@L4URyiw<&3OvZ(E)9;9kppK1F$KQGxdE%stH6>lIQAc;>IsMjh|+I-b%&0 z2s$B0il(uu^h<`6@MSTxWevx06UHmntzNPq9mt{1LNma@R%p`D8*4XDq0^5SfzEk_ zJ6*HSQg-j8t{p5+r&n$1Jw4AaIgB4eG{i)I^9~RD?0EIUL6?OtB##(H`&{w9xTO4c z!TZqmlT~cvp-kyd&X17+uKhQ9|!pv@AN0{Z`rlzx`O*<@3AZ$A~hnV$F{%6 zw4}Wfp--Hia(>b(udhhbSu9j|+si>00`^yT`QL&0^-h}43-M6J2&*=%WJvu6c(6=d zC&6iK;)U?`LmvPQ%?V`@;hQgZQj>N&7s#|}Adab0ZA2v5yu*;~Q2~(Ur2U96WHe}7SXcz^iy}H48e9^o>?WM)mKN<`474!Q zFG}af@($1)TMLJCc(yI>W!n`dPRGSJu8E0HROS1HoEc{(&URyi97&`%=`t@<9vXv@>3oC(h4tW? z<1+3X!Up1DaKT$UOJS|14pwLN-5E0b}r#;~_vgDrgcI`u+-tpNA>4O&{`FjciCb4nd z4nC%2oqOGB(ZRvNcTu}_{tgi4Q2TjAMf3CUZF3Ejx{4nYjV_8yID`MC(zr|qB?WJ4 zIU5~*Lwt!7Tja~=uVp(Qh7U(^&K$t$6pyMXb(c?Y`C$gMUWfv>^7&9u(HUZl#3BpZ z7<+!gE{(M3*rm+8*>dy>g{U7=Gj zqS6rdwu!RNHx`D)i6E2Lk;V2p5x1>jmt9~mf+bE`6g@OtQVl!dXNBPK8woGM;O6nP z{MMcxwNhpJ_2H2A4iHS5Yf^S)gRy3jd9x5gm-*fIh871(1oBtm5wxBth)^M}^yJmY zAv`Qy2flCMGYx0!XGtt}wyoqs+GRUeUU+?J6mLc4dK{;XJJ(^2C?i_Z zkUaP(_G$y}Iggt95@Z8(2fR#h=~p-DoMDC_5=44)I~Ot2aZ#=*#635paXeQhXxXbr z*EsU6*7QwQ5ktZK{yk8F{hf8@yEF64$RKIQg7>2nqu>ogRaM#Q5kIROQCkjj+NNCe z&7c88+=Ia%u_6H*`|qoq=9p$L9i7#&x47FYA-|Uqe`sN`GM_~FlOr*Ph7dle)K~J7 z64%hFW%sYdUDwG+8_G(38gdA?!l*$zIv_V)GOs~H#jTat-rc=dZCcq-|EjB|r&a1) z%5|X@o2zOrZfvQ=ZP08u09i~QKd8f2$q-O{8zt$c>zCwc!ITAot$R%h0%5gBzohuI zVjEk-Dhix|@=-k*`)GeuCL?qXVq zmU~XLSbPdO2-QbQ!AL@`u4dWhkJnvP8?>;Dp>C@`K5t7hv_}&Rk5MFsc{Apo5-Qtg z|A@$w*F5)k4Mr2Gkrp+0gu8njacf0hsJuZzm6~O#?3SDy(~E!08~7@7aC@*Y+sjcF zoeNOh>Nh5e#gxUAElcN=b6|Z_xR~0(G}R?#-7k#)YtUH(I|dI;nmp%}jV+N(Tw;cx zn;D`RpP=bH@sqoiLBosS$%bk=JORoStRE~$3`0kzNH>J_w_5T+xW!tHP{Z48(7 z;Rj0KRRqngl{P6JL%p=QmOwPxrB~~&j5)%?cbY5o3PpQ*$06({7>qMsuN3#gk8pSa z5M0bXsWl1l@Q7+jpJpSN3hP8uwIT8y^V1G?gQiwi4#=`jvr`tX6CX2EAv?VuK~3)5 z!h8r!!LJiG`9$fHdG|4@{Zw9-pW5(eJeLJOf1hi?`D*cm9(I)5iT;gE55XUjUnFR6 zU&Fe4s*2mKsc6645gKZzLhf_mN;{Zlyqioo%oj-Fm30g@t5PBK`x;`djup0ZB7`J# zUHxQOv1Z6a7}=#`VhNYjFn8q6*jdBNfCS~~FJmR}1NPh27MmyVEEQ;345(`xXu!ME^1`X#GVpUh&p~W9o65V;2v3*GSQBf?Y831Xe5~K z)k@Ap_=zSyOidS+Wjm@LavDr=ox?Sr_So!AuEzxqD;sJ z8|Nm!7bgIkfx>a7ZEpY{Dl+z?A}jDu53mD{dD8R6hktx8%it6X5d)D@K%WwT@)=Nc z`0;gk@CKy-ng1&P% z5N!+Esh<5ffS@ilZtrVpohyqYx#+AWsopp)(ji4%Skx8{U@{+uhD?%riyb;ek+9xM zDjB`#9p}c+kFdMBc^y% zmtIp#OdOT+0T<7z-{U2K!`iIO0^9G5Bu99!kTTjP0@Jv0(sl zW=M^fh#sP8x(~1PR1&>8*rA^Kd(pYfe0|!|Z$#&xuBY)7I_Qj*>cK@o?5~c#3S_#B zQpVAC9t2^30c>K!Sn#S`MI*W{CRXWI#b*9e8*c5u*XPngJ=rpnEkbR3^dnyaNGnzW zbQSCmB!;rX9-w95QNG(-K+M1(Cgkt?d%UHf?SarWeZAZB>h}t@fWhRW2hMouiY@o2ZaAcBa*>-2ChThft*Aqe zC4PB^*GAFt0V6->{*jT_&?<#zm8)!1jLp>rThi}%Hcacn>Pjz_TQT9yE>b{;e~Mmx zI#6p$DMOPS|IlX9tzRmv6QhAlp2T}~dEYx$$=%;5yIw$x&V`R*5xnhJKL?;?BU&-3 zqJ&ODYawg7F0^>Wh-rVg)v3*btg$U&MG|6~#uBwUz>^Ok;-Q;(TvN;s^w|BwMi|_(iigXP~Dg@V29n7R{+PISghDl!ECQ{YnH%{9u>mPB=00i`7OxWjK4Rj-Cm;3<>+%?7i zmthy&-Zxogy;f{T2hpK4B{czJ5I1i;W=*PWCeWgkf26B&m(#k!aWY|jou~Jp`n!xx z6GhNDm0RzRFLWmj=nr0WfRERUO#=or86x!b^|qZFM5+5b$3b^Y{7FSOQqk8_>ixhmgd*9@C2@~ff`SkHjRin)`z1?-M|-;90(Dh{b}38$ z{-hX6%-Ut}BxX%WiM7z*=+lLexd}Q7T3RH6en77tVkJ$AkEQuxUy?Xkp)}0acN;y} za&O_im8bwPop$0Qnjh|O3|o13Tej|xBMY$=hT=Ir*{B#SBNEls13Vs;-kFA^d>c!S za5D{PfSOI9<&}~{S6n}I#Zpbp=w0Pw*2$?i{1J;o0)w zA+dGHZ<+XBOj2fn1^K&UjRN1M>5p)n*^DWqWr^n$>C`G2fl|(hT@U_lWW*WVjtAKM8H;DcOE}qWF9<*gHB><(Ir{(ZTYdR6N zq!l^MigsA3!gn3@PjBfWWLdZF*m~qVKzT1%D)y;OnX-@{4FId|kF)aodF$0RZHyK| z>ROn5ZRq}#g z1CBJY)4nwg%X*>vZR+FYWulTfv3F0t0K-t$_1P~6{_rEpJ1Ru1;}v{{T;_2bN;kCu=-nM8 zC-!9bO~o7>#}>>PrBqxW2*-JvM)9|h7n$J_aWp1F*>EMe4IVv(DcW%$)n7W zfxW`AQM?N{0FJ>%`ShVW((2da52Pz8kmrsEeHCdZReZg^Sy|hnt$GH;(3t1#V%%vR z8+FW!-pX}en%Gb?jLyDOI&L3TQDjrjf6cNY_n!CTVv@VK;^2gUy_JvVeSo0I=*!LN z>P3*`wm4H#jp&>c&2tjGh`%%Zea6SQm4$`HNk!m+>USfYk z^K!GNL!#IcW~zWn@O|48c8DSS^MY^9D*kO(>bWAHcLA=B?R>{A_?D@(!Xw;&OWpQ0 zL7{abVCc-vqSRB+TNjG6$%#xC{Tg%8H0L{^ehWmf!G%wk2=Fa5n6}t`)5GiKG29%0 zGuq9;1k5z$HZ;=HGgfU=eGdVgjmX-B1vqvA#fLu0rXjHfqjRW~Ly(<}g+xuG3vh$B za*^6p z)csxycVMXb)R?-Q1GydB95}ih%L5T7r68zbeK1FFv_{hN`lkMSJADc1gG6oCY@fWnw?IG!2`m!Fea zmj#%ColA0)O)nEbf|E7egTSCeqWWqZVct5tT0}|oHWgVd^@Ja;ZAi;rKu zTwFvT0cv9^lWJ6WPRaQFTa zj#Mx{>)B+UgBj$`;&cd|N`zz;gr?pXQQncir@lWu)IKP9wSwn1z2A54w|{WZ5a6|) zcl`0!7iigKXL~3?_2|UG)#C#SZD`h`&WFthOM)y= z*pYF;h*aa;LZ+l==}?2A;;VFx+h0i5=gZuU#+ujfySF=%Qufrz9N;o*w$Ke(wp{4# z>1v5l0hG4g=R8zBY{WGKkbZ}zHeq4eIAmJ&oym?U`H_fTJ_Fj4BW)rWF_aw(u5+(( zCn@N(?*UTHG;4lg9Fxc=kCo#lOD6asp-fC=!Z!AlN)Bh}4cXP@Y9*Kr*07}L7HGSM zQE_P?1U+RdhfM=%E4RaOAVrQ%IrXW&V$M8TNEz@&h)%Z^2J2f?fKvx!Tj831 zs+$^X>t{F0AKu#WA~5O4m8&3>grqP<1gwarq9u( zzL=^%?%`jrs?68Gz@pjg?8s8#l8Y^r_d5TBn#9K!y0uE)W#AT13F2`-#-D%V5o>W@WDE#%*gS!;Zx zkiwRvhR~##vm`M=QA^@tBWD_}WKsQobp27~WO=A&5pd-gV8v9s1^q+?F{_ z7;2b`81~0G-m{ATfC&{6w!H}_}&+s+j$&slS0ky)Z?K=2&(aX_^e zsv0RCOZJNxTBM-p5?Z;1)#%pP5>tn7FmU&RAa! z06(ajVW}DlZRn~-_K4zka;Wn6V{G{`+ncS4WERI>v3 zp`{Kx1yf*75C-KVG`tQ0?`th&CP6HqVt7ZZYMUovAh*cGPfS0!KPYmqH@t4_6#49e z!9Dr*c!8_H*b=!O+G&cGw2ycaHFD|I)!4ITTNegDm#BtE!atmU3sh^5ql+51ar4oR z8LVwj2rB!}t6vWt^b`m|vUGG5vfOG@W7whG9N+{<}h%B$;$kV>#U({%`5TWHU316(=s?x)kUB7fCR? zwaU=vFp%-vzzt)L*$|$op`#N)LlM{&jl#`EFzOHIsK4%{empLZIcm`vtLgGVOR7>+ zNw&&|@gZ*c**C-C_)~6E^mU*B)M!eJ1S3m#tJP~VFqfmw|0veBrBuP`MAd|~_Ws&u z4QfnHu4$vb#7B^8K7g-eKWtA5kVH1b>#czor^5Qy9(bVPzuj@H#!L4R3BqzZmpbT@Tb*B8l78(5F#misd|7bfG-0rH^7G}=c z!Io6_d{&m0I(SRWL|W3J7ZV;OOoc;478Oqzu7S@!@ zI{Z##Ez~EhRoD*1%jqBxOI{ON{(>nccK7`KQ_;@H9yFXJxTH(J_1~(42}PE;Z2AcEbp*v8 zZVn5lmiS@YSwW!>2p91nEyM5xtW4d2N?(==R+q2|q_)PbM{&=E2&Ww=i{WlaWQF0M zvV#uzlsOorYHYwKLxat=iHUiJ?DaaJWzgR!pn#Xu_IqISJU0J_>*k(0z=fQ6KoCXD zGdPkB{#Sp^r8Q?NTGOz6t8%q8^@6@e8rJ^TiWIs5fNq~%J>|9QtF#juH#ZCX}MKZ9a4jVk;P>5 zk~;f-TB-*dvrwz_+pM#Oqe3SOts*Ek>)L<(h2G1S?Ub`^$uU}HRj3i@a~AtB#WR_S zq)=l=L2e?UO>zcHo!{Z?ht#3K!52T*EPvl(egbnDH`!I*{)?5ww!2>X`%0%Ene_xh%2X(OZHH+;^rJXdss2;bkehE{%1250#;E^R&Sn8d9b_1D< z{fv&R%8WYU==Ae;CQKfU_~Q|}=cNxk`eC30ryTB{h8CsEjT+swMd2B)&9?<9w~O4| ztQb2H)2sWrBt2pBsuBl(bu-gQ+l-m|%1Bam6P$Cp2?=X#4!}=(C>gad94Za zPPF^{r)Et@k!gUraA~cg8hSgaky5?jhnYJ{%m9O_{QmxyH`Wi+z)DKkFg}2Z^Q>{> zej5lnvk;ldpvi844f|F<2_ZlUT~CO)I;2DnpSSG1AJJa9W7DB{@heuQj`od0)S@5D zv-KseL(T3^$?-Ll92)x+dwh-Qz-^;OJ^h-W%<6L#(1excEiF%uF0O_1ps#PQAqEGS zub{AD)L|J{u+p6m@5Jj7${9CGe*8vO)%WK}iKM3NU3q;C?pt;v2!b$zVJ${e%taQltv}A}v zw?etmy-<_Z)}H@cvj_;q^xtYNN^2Hw%loZon_M}D{sZ2Pj5uK~z(3p^PpbH*nNoi$ zmaVx)KXs9q);f{q!ifr)yd%%D+RTA$LwV6h#6!q$G_tatoaQ^Dla11nwFYYw7qf+z zPv9Z8`t`!Qj`Q^Tg7m_C3rw#%kz!=5QQp6ZtM?j&ib1dwzm zs$#iq%;djfumk=8ITl7lhbzTS9H2=8|wu*nI0|AJC6&5iL>=2t7nme~8!J0xn7 zUjGMBZ@v@#J!C3wD=f=c43V3x+gDs%~%3D2j~!9zz?f=Rj+NDNC{f_?On5O z_tNJe@RFVefDI0P3Gu-V5@7YYmq1|&P~MgZp``z)jSh&NNw)lBB46t?y+<3wb6%CD zEPGrTe!?_^&RM~pO%BBDW;3M3@h-M>Zi`l{7gwRn<+)q34*ZdIRax0tbuVUoJ0e?Q z6M1SShNrK@5E^#5wgZyhB{vsqVU9tUJY68(?Tn^7g+{$INH!a>3c_o0M9Bzi{#w#? z+7thfCxbJwp3d*G=xo!{XW7YCnS|^8>s)&0#mq@subqYU;pei?_1?t9S%3(^IWw() zTb}9SR9WG%pen?zt1i|{gbA9!NpM+hPrA|)5z=Whe+slI>^Kct(hGopz{m*~oc zt#WN0Rn1ze@$UBPKNp9I?TpP9$BAGecI(Z(*PVinx{*k2i6Is&+Zl^kvYOv@lyTI$ zhMQ`oEBdp(pf&V_4EF##HVnLv`RvwaC=KmP#$tWvP`~ah5!%nDC-tvK?K?kh50k@c|MqddK$2Vy z8t1RoHjk%Gzg0v5pP?a3rfsI%*_PJQsQ6dxGA;RO@vd-~+bLhagHLaFN4@<|D5i6d zIK+zj+&9!N3uB7tj2JdA{!cQ*d=QAHAN_YpxX-14zCKvEC{0t^y|~HOcs+yt4Eisb zW0WUEOY)|yQ9|9_S9LglT&O&?7x4&Ff3+Ukm$kuyV`C*F9u)m6s=kv4-GpWiP`*IO@+ zZh;N<+C1zkQ;lpN9l%~DS#hRwC!mSgYyc}vNeh3(H=m5T!3A^bj8=njOFqYJ6(ioR zJ^{~>Ul;efw|H7&Aqn8V!IO}1^+2H`JAB{REvB6|z6Cgd9&{#Dd#moY83_PGv*l;Y zP(`29>YK!M2Jy?pWbcxFsYt{vb`&y9ZLJSHm3CIVrc>l|@fg0M0+{tr) zayRbN8>=z~O@qbriZ(!ADu8*;KD#(zw&07xrw^rD?C%-C3DBBpG-Ukd*jnLdl{9y< z(s6{JCEFOLm93mZMf;b>ODQHf$LuGUlhZ=1OQ%)=<}f=E<_brqCR>@^bM_6N*{p9S z^IQY`?!HYj#nqQ&(sv`CE0mlXSkPMfSmJWaX;pRMo+ zqjNChb7?Fa);WqXm$x1LnzeIYQzQ8jXG*1^@IrvIm}y>=Z%PfK_q0=mQTztvl%L(2 z|M(83KCO&TnKRvY&x7LtEM(NgxyYs>)Qg=rq8(Y)ul4(+xyvs)X}4>xtA(4B=?CFO z8>_|F;u#exjJO#cB2+WHwjO|Zx2HZ2{BUp-m*=?c>)d{rn~NOjmb-!SwNwrTS#a~JqXvIVjjob`)~<#XQN+otgZ zP|_aK(kWrcSP=~Rugr;W3voej6hOW=5&G}tGqR)7F@vq^lZ`V8mMd!K;VH@rU?XmF zb1&>4H`wHVCtHZvRY@9)p`Dx6+MP}?iKJ#vqjeK8T~S3EOVPb`Uu)2Qvc=&eul{+P ztQcD3wKK%&34j@f8X?Zo9v4HWAP&Fj81Ae;@5oUXl5Fce#O4pg?>M}wu+f?1$uohF zHXfz?x#oF7vt(wxoiME1XR+zb^+uw?QX0m#UJWFIJ^WVOw*yFDjKn%lajLcAS$eR7 zr-r}o`7LH8=|ubP6nlb?@QB77I5Cd-XU3d|>0B&Lnbhk%ENu#nVIv|FKV{QyZ-Ya< z?1Ye@yf=zErA1z{5`?-fu+y3pH%@C854&3=Z~5EiiAC z!4hRH`u_`mK!Cr|O%LBSvCG?*Q3^0({$Od_JNoS+(j1`dl5AJdRaLYn83yLT&FwTyS0N=G9cO$ z1`+Ob$d<~cr!}F!O$eexKnss`SKRr`xeL1FtP_9{rY_N)}a9|O6tl$y7^ZqB^sWwYMWxVbho%Wmp+Qqy({5p^L$rzDrxLrmjq z&#w8l^@CAvRvZA}nO&G``4KiUwPt%Q{~N3o0L03AU}HcmC8P9TJVc#V>fK@h9)L;g z=Vhz-1jk*PV1nZSILTY{)Azh&s(8sxklt-H8iPV!cE<-A_|WYz{DznZz7C0m5lyKE z#O{mZexYCZ^98VA!ZtX-E&+%J8c)3b<4^znz1+Wtf9=M1yZwE=MaOl?0oeIA=vaIr zz`UD%rocpj#8jCn+tq{Yq~K!K7H3sO1#BxGDYiJMpwRPMiJ-cPJv#&~3NsXQ78RC? z{8&|7LRuk`QpHfMM-wP)V>#QPZLwqe#7}Y=9g;b5DxbB5xzxPsrCsxeSIn7}wUK%L zdf(h!8Tea2AS)qFLOlCGF-6^ zft7(#{(xd5UFujkDmc5#c;;RN+SiEY1gkJUyvT;gyex@A?6HNe&vb3=Uv8;d}408b{$rd*k+*=>NxIYRN z;03G=fC7M`(JPfJ002^O1Fdwe1s)tBrad7H!$$+$_ zIy*TWi{q496uT8L(Ox>2nsZBTRNV=|ZU6ka&&%g~W^ShCgW>^967#~%zE9;v3gWl=fpQ*10Z3qp zZ04ar5$-Ge4%e7;Ta^^3=fHbjkM$wI{+AEp{=VU{YcIHW3PACMv`j8`LS_A>PBQP_ zzEAwpw_doUKynHN{YaRnYAWMg9Z0h7XkU2wNT3*s|paeeHggaY_m=5SX@<$VF3wY_2q%TWdI4dw;&y|Ft98@1osf<%?LK!a(u-%_?x86B8n*4a53D zT?$jLtoKJAOs26+VvS0pbO(wT(~M84wN!x~iVy=0N~lQ3D}vvV^83Ji+t14cC;^Ca z0*}I&SX08byR%aM8Thmg>OQ~zQ`cT}@621>+w~<5z$26E9Hk`BBzE3izR#RyFwq#v zc;9Cu0AJR#j~Z`4LcKp&VV8m|MAE)zG96vwn`jZ=7E!)?24C8y?;j!>CozC* z%k|XgbuQgo(;F3bqBV9bGop?OxOLrV^xUE~cV2AyfH>S#7}?)k2?-p?#)9I;ybT8c z029c0%B+IoghheMbSUc^w+7y#fTB+*E%@Hcb75JycN|ziu_LD9-B4u!7FZqwx1Vpm zu;HGkQn)w6vk7+^0OBQ==l!t&6gZfU7)q~``oD7`5k)pv8d;!AGdJ6g?lPn(Lw;lF zoClO~;30-(aT-#8^)>1P;u}xVJWtX%3a+lyr{)`9c*x5^@OwL{GQAL-=b93@wc6Ik z^+}#_(?2}ud;Z#Aeet@xPFLO6m6X~614u4(5)XRk+x9_sUq5?V!Q@Q4wkDh0Wuu;C zOsrrGt%xTvjFyI6ClnWQ>TW`DkXEM?IkRkyQiM3Ll6w1Hc5?+P_aeHkxVSJ{3boW@ zvjtFgZCM-vXlyyIV|tuYK<|!T>5KDl0fpm5+yfa^zSs_K76g=?mVssQ+>On6YOoei zR0!(zyf7?&zlG1!uh>D{Ila!$Rg3164O=R^Y03 zq!qUJqq|M_-IZlx%y**&N^on2xX&WRZXBSza*&@+Fgeq%tzD?KdLDeE+aY%|3kE2{Z-|{sf=#%aX-JJ69u?zi8v`H3|FC4Un;vj{YZ3Pz>ZwHnOIv(N^zkzq_MapE$=}`x`_;;_YTwGZ=u+P8# z<4=F!FrR~0{mP49a35D0OmL3A3ZJ|j&RTk9{}h6Wy0-S}HW}AewXD;ru8y z!NTC)>M0R1R^16hd?dsxELj_-YR60Lz)VR}i`z8mS*CD79fXU@p5eecF#O^<3<3)8 zhPt^rH0KvXF>9}rc()Z42$cG@<$<|;uIDGjIpA7)_WGt@53Z?OR7ZjsN8r-Ry@i38 z3M>{_G0671<@Rv{#fW*xz(N2WzhU3l7H&K$-~lj5Eryi?B1a!TaLO6hjn7qXxQU- z-_R;eW84E)1#id4OtLJx!Pp{^)$7wJbPb0eq8rQImh(%fG7ni(GfweeTnr?OFm^jW z7@c|Rv8u(EQ|V* zyD!a{OG_bJ3tU`_vmFAc!~>7dxS}-R4h6>nB!Py#jKO#S0zADN)T2ZeCo(Vqw3^Ma zaNfg4_Eys}LA>On4p1`c5i%6j__PiUOp=fme0MMP++cTflSlrax19fF1(MTZXqYke6Czd; z6m$~b4m-v|v6K>Nsd*IpguRQ)7X;Re6I-5eu_8n?#GhpeIN%;b3`Im}!Y;X4m96(( zpAE;nPA<`V}Zfk^-s#QB9_fdB}gSXX@36|Btw221np$ifRH{oM7wSMW&j zMGON#aqZT?gToz23GTK1=%3SZu?<$(JfMK9>DtY}pY`+$>mGofy}n^q*R$y6f?@_x zaj6m9YzUacRfK&Z0FTsTc4IM6ftzcCTwVzU`Ee}VX%X(QHToUyx;(Ek1jo^-JifSS zKK_aa&8kgefE~xcoLRuSRXV?dEEld!FGSkz2K8o#WdiqBQF7zAV6j+=rSP`P${Ja7 ziu^C#?q`L;gzGywW`a5wSYYlP-f>#MM1f=q|9&7jOe64E*-DnH#$)Wn#NHzzJ`w-` z-+eJ+S;Ri+W#rm2RV@lxFog`lTN42!5$$s)y0ugeMSlfg5Pi{!Qucd z30zM7LE+s}JQ!iczT%YpEw>C@PSmwJ>ncK;>ME3A?7X2wtS2P zqkaIzh!i0#7!(j13XT2SC@5n#Ij6o?O!`@S7T ztZK)yNEZgMCCpd|5b0+gAVOTjMrwH9$0V=sdc7?!5WMH@wlju(06iOiHpc;MRgw(oL&&&KVIkVqQjBT|T}-))NDC zi?X_WdNjQQS)FqJnZ5F99Uz#zUxEp4Lyy25agz(3X*W6G77-E~l|tR2Ag zth=##UF)gcF^Y#(0c(TwbYR!*XR(mbkFdL`Pxtlx)176o?&iZ%!KfeB0KjFHxUmX~ z5kN_=u7`A6P@h0iL-Awzmt3Cn^eC)AQDu%AlFR32yhVZSdd@AfIzax2<7zRLNg3)t zLiSbZQ+r>$(f1aGuMu%Oy+*DqxTs)ZAOO#GDNjGY7Azzu>pq^+@)k>|wD0(=Ew)U! zXmK2v3)lkmj~pX$*2!Ny4$l&U30qJAPHvC|ey)X9@{V78^ukXokeqVYmJt-};r(Pc z7BlSTalSQ%XydKu%}(oqVIaMwnR3VYW6=@Ie3Bb2v?RL;gTW_^KC7# z%&DPFZ%>QoR@0chYD0dUCZ zTBmAwRJPxD$GmUz%a1QC7i5BgMHt(=H<+=PUMLwb zx1xJu><=Q_^)~3>_XCb9liZmhrI(ZA7(k$SOLBK&a=X1L&Z@vEYPHK@`>tmPK6)SJp%NkwC_JshyueHtS_p}tXhAPM9{rgB#cIw@MZ`1 z+yP&hQ|-n|L!0|8O`iC)@jWX-)i`>E45&k2!qwMBNf}kimdjQe8(l|U;X0)cHxYmW zRs@v12bw&PDZY4f;Fa+xuYf5OxE8)*JyfWV%nJ@I5TAghfQ&By6W3^zL<7(94Oj{Q z0MMpj+lbZptSh9`I?JTnNn-p2AOXPRzVNVe5U+u?g+j!>1E&tfMat4dOC50<0Mn(# zo(GS>#DMFSIj{*`3R`K5sD<1yx%EEv(Cf?}+<%|ha2Fp|2x1~gm)*!iI&YUQ=Q_0x z<{A>|-sQ^mXaQOKj}MYh>kz=?XZg52cUTfC;O}xLd$E1;z(j#$It?1NO(CnrYZi%( z7L19ny@_=39NWOQki8{AL#7w=eA%f`GWuG(l`eiOqpv+YZF@>V#F{uZsQLKgcjBM& zbnD`=ki~fTjcY5)m~3G~P&*GPv;ZTosFCSJ*-{9&15_|yf)ErxGPW|ZLY}#{;WNGb z`lGNelsz)EU>RVS*bc0Um9^l$f|Uc;7xo2r)GS#;aG%ZgT2aw^7g83^ZNVo1gn~o> zh)*1t3l;hREl>C1enTOo=K@>lo9C`?c*_KU8VVc>ZxJDe;92?210>o#WHS!OR^E2nb z5DW-0qgBP`uJe zL(YDY7tzuvnLeJIT5-`~?4Mq_sY0vU5XfgsXV>6x8z@muBal>M>eybU1~U8|?yOMF zEl4macHjpNqR05S`c-S0u06bW7Z*DfCA$eq9pK@)uF3!)J|I2U@~OJPLa+`5QsTi1 zuBQu2U9Y_HH`knCeZ+5k2gR8XT*vbPHx%4u03(0|ws~&8>(3)E3SuZ8`uGagpC@XU zEDy}YNJYl6BIaWVc(4sjICj*TaO?-y>hk#+bLsLW+D7JqBZ*cyJ+?(?O0_U+zWjFk z^-pYk=D8o(xY2(pSF6k7;G8lg3sb*u3@r0^&ivSe|JNV?y_4|lJ@I{az&iP_`EO=1 zMh(q%XYt;@*!#fiF3ilkS@*l?jc$6%O-L#JsGmOkm1PBz69Ob_w{DvC)s-!j@o-xe zdDWOIRGm9OaicJR3BZ8+iugK|rZv&T00JHU?s>P;bo}xHFv=ZbCMpLDCU(qxe1X#S zjixAzX*)1!rNO$r;D7{i6dxQ;DuCfkDA29In($TXod7CuZIyyp6r5ZPWY{*`Se}E; zJ$nes;|I9CuszVsKl$vcuY`xS;z=Uie1HuAW`>xEu`CxQ&URA|8Z*9rBr$yl7#@i7 zf&%U6SrRNJSUFf`-W?Ny@<=1b^;kH6!3W&&I^ej`${Kb=x6^ZfXZ~5A>GjO~to`b{ z|78A;90U!&`7gfw{kOjG;`a~x`8j|`+uBGs&!EBf8-q%BvHj)OedKGeI7!c56HEs5 z3|*S-nG4;PNhZJAsG5J51Cx)cYwIL9wkSPEx|L%4TT|9r>~c02GxsvUgg)z4pq`5n zOX1Fv1%}=-nFJzRl;F<&LsX`?$EHz8S5{eCO*dE5{bh*K-Me72%C*%Z*5~HFctWfs zqtxA2T4jWxw!|~?(!KRT>mpFUd*xqLu^RwQsEM+^*2MQ2G2z&u$YIIA(g6T1uMIqi zAgc`7V4=fe>e+@pn{Pi0fJ5oE00Ym><(^GgBcY>X$WR;j6y=UDWQ2PSmI~IxF>oIh zoL4wT>~GVIklD34p!NzNg6zBP1ai{Ne&4}|KT)JJmiPY1s~>yK|NdS7^Bv#&lAr0F z>pqo>8j(@}h^&H|xpU@!Icd*c)6KQu?)}To&6-QSZ9xRG=h@ybPR|W_xfL(<_8)Tnh2TA0XQ&(T76yo#)<&^c2$s17P2i@_(k^m3@D14??5zc#Ywr%dYJnJnMfE573 zr$hTx<}$PeCU@Dzb2Hwp#cA${jg(~B_}(W(k-s?@hK#r(_i4;NIRLGt%iva9*+2j> z4NRwY6C>{Oot;(`C|OYc9SkKcRU z^n1AeSC(c?XLq$-KjXmU>QNqiOF?29x5t-MqH0>#Op+y1%Qw89;2N~B=SW|EDBIgH!PFp2R2towJF68C& zJw(XG#rqtQ_2Ap#N}3O_+~!53P~n;q-0#qOx9zj3nD5K_c!%5fOlV=i6!r*?BeM!1 zvw>npG}f9)JxBmZV5Q7^>iaY{xq>TcX|@xsAGoLZ6U&8Xn_P14?_195S(@*9F!8^k zHwtL+XIrM->6x{)b!Tze$R^zDw$1ux;XtnAfU#@^gS_4KlO6R<+3}_O^KZEL!Yki! z@#heszwzm3Ub_0l>#yoR-+xKcO*R)_f8lrT{K0$w)=7QtoK>>?#P{8C^{)BeR~(pJ z*uy5?=cXeA69tl{iAFs^wknsTvNTN9JDsb|5f=$Djx^E?!F zP?7=srowJ2aZ*&bGd5z+NCo_E!35Sr!D-$8eh2nmZ;dp-gu#dTt2mnr74e8S1k0o1 z$HIu-_gAMNzKqXs@gsub17EyYc)EID_c6#lwTrZv06bhng8d@aamR%jpXwWygO$;t zfP3m)VyUO~$pe+Un~%(|)y-j`btyw{6{bf)GRj=f9ZMSAY}hW=N6Z8hTx*@thPkzo zQ4wbw3C-r4FRmJdb+8#b;}9mT6nGb*EadmAS0~yadRYpZ`$GD^b5@=M#^(9E}_11|Gh=x9G z9P zYHqPy^!e~TLdZgCr=0m0>O8o3(DP`ao1jzr0GNX6SG<*jI15<{pjqMLLyd^ToeLvQ(2a*tWVeRo2}8eC{8by~ExVim?C8qPH_7Z*By@P+o$eGfzd zfqiTzJm2oc>AHg}C{Nz<)t4_syan!`1D@h{PQhdM&_36Hhgu}Z9$@ka1co`UJU3SE ze?x;R4wzffcO>v=5m_V659z^yUn|dowGtia5kv~p?6O|Qp>YK)k`(f+xSvjvo2xX{ zHrO&@*ON~brvgXBMtq%$cUcj5#5|5b8_z7e3^Gj1f{ZFpJwnPDSzMlIkpl3ZAkQKA)LyLjL;MBHv|52ntlMsTLPqA-V*ad~tD!aoSy`9odmcF8Is-VZ_e0BF02}t5 z`Ff7YU=o|g-tV>J2s;>id`-(m<#>aMT%HB74h9$ii%)eWJ}%A(xP)BVC6#Bg!JRjt~PYMn)fI;S2guT)yJ}vxqaj|D^-0J(d z34-Z<@Zv3~+*8eu{6HvJE;u$=JEJ_%#SBK7cd_9VFLFy>cR(<1X5h;*Atu;v1&f9n zFxb#WwAJ-KwFnp#fZPHm<+J9V5B`BZsR|?~L!k(Nhb0#iRSNjvI`>P@Mnm7Y$^!`X zYiHi905as>@R=&2&k4B{tVwG7w9>**kT|tqB0CLopY%~y&GQr>M8G&pwH_@B>d%2u zczxsnU^FT{*A|3HAlHd>5$pMwhEw9GAqiA10VI$DjDR?{vA#0$^eL!*2Qx4V3Sp&y zH5m0F-lgRZ`r=a80}zhi_fvt(YhxI#kiG*FWR+pR!z|F-mp(IVXzsi)<3J|>((>BK zEX}oIrdRMK4>wHNnG0ZIt8~XQ3BknxC>X~5_9=SQ_8Z@LQi0@zIL&K4*-NUpr8hk< z!ssifKzl*p;d!>WL4*&sm+?1A#^?zhY1`cVYA5iBO|=wcjxCs^+!$&bFo^+su?-(H zNkh+&vZy$>prm23I34UkVMLTHAqy;IcR|^sUIdv~p%GVM7M!vM_<+rKb|!Rq#Qel& z{`mwL0IZPVh2N0D1-a%dl9^6$-QJ)yV#G~wUH}R|fXYKM0J6Uj%*Syd@Q<1rq#Iwj zXiOKDwn2JxE5vQGV5!3rLY4iC%bTX#>EK0i$k&-M>GE@?oLw|UXEwY%kw2ykwI)t+ z-uuC)6-W+j{XL5Y+oyAGg^Pt$-Xsi!I5iXTk+P}KONyx=g9~{n*{JH>&g{UF>6Z!| zW5+~NB5e8Wzm%1faT#STHHEN_=cKBp=up&Dp)0VIE$p^)&cmS zLOv%VN$iVhQaIMb6e_5YhlPV>FD~_bh8P0%o_4;USCR8Fte1E|nKL(5v!O{gR=hha zU%Kclkc6xfCZx*)H?wi3PyYE+^?-f&E3ha&y~nkmI?4)n1(IoC#2P{C9{8|)aJ}Hd zLle2Q0u>5@4`o$x+@vU~HoMZIFgEtLs=2Ya>*7R>rgCDyWL(i=B72()`>$HZrPr0nos`Hl#}XSxOlOsO6OU><3yDv>#<~g&`Kw z?UDHoR~D!D=6vNk3m+cervWpAO6bYH#Ud=YL{#MtXuE>3M3~&d6Y5pwxE<>Uxek| zUDQ1<4KD+~34yRNxUFEp*oG^Ln^wjCCgh0c7j0iA)M?Y&r`R%)U?M5#<-QWp=Y-q* z=HvqNmIyMl5G?l`Zy{!ZAh+kUA`n0aL@0e&Dwv1w{<%#OVgk0o?Nn5jkatg&fzp1B zwvRzl&o{pc)%Bhe4D>A2%qk~#YaHJ^^*fm-I{dr{R(fID-c>dv-Z1oENj%{sx`ly= z3z;eoI9fMfaKN!?Y&P`nE*~$kzjIpk%oE>t$Nev^53WA9)*stWdyM>32O{q}>f_d6 z`!4jd?9U!)Fpzl#mzHQYWz&S(@M2yOqpDo&DB~k?Cw5N?t=!&v+0C|!Vr+ktV{!41 zDVW@@)Zi>Hqic&-~UWT3TATOs3c?tCj+O8D$hqm9(PGjqK_p#?(XJRg|r?sLZd zesffsUN6LIh9kE?YwdXl9?pbWI_IYIrfkocWaXMk1{;P^cnpV#PD)vRuXAb zLhIhJ1Fn{bl19eX&;|v+F&O!bD+VWISrr9^u}z?=M|yhOlPv}s7cA>zAk+&UK;vUF zuznn1jofoSSSu(UI21*;(~x;K@WqZHPKct%4c~J;xZf7x*0LcL{>G})pv8={I#Af| ztPkrcBuDOd_e#w#xU>H3X|_g;>`mgX(Kl}O&GN|ii23W^arfdE3^LV1Q2tnn0?AZ^ zVlEi0-uki#!9`dmMV668L4W6=Uxasc*#InlnbJhys23at%@SQ)4Nk4G4K4QRraKne zSHWZ~m?YN5xJL7KH(7H^vH#(yh>f=xY{1)v=L%K|VkB^dA$6B2@;jcsK5%snhQT!j zD+X2w=uVI_j5r9~ES_J>1g7FNB~Wm{0!Bro3Zp1;h9+-8*$_xa4N7+eH(Kh0@{6;H z2a$^LA-LrhX016tkG72nxWfwRuR2g!bZ6)0bvwom{@C38k!z>i8i^WVK;1aqZTjqY zeEP+Ie4GzlhoDme2?yCru3-l_FpY^dv2!B3uTttuT{5Rqn#NYUz7oFH-z14dkUq-j zt(6_L$Ue_!oF!8f#qGMFr_wT!?$71`Z$R-1Qx~v1PTNZy8!(>mPO_jmPH2G<{*n;;&Uh_7l~_7{ILuNJ_BgZKc5i~xh@!HvZ! zyRZxja*v@#1PUJtI zS)Lh%V?{kD1X4T%F%GUlsd~_dbzo6&EzA05Zq|tPms5i=f8@y(LuxyM?^qvvTzF1l zy&zrKP{tR)#aGqOwtb&@gl+&J?N*>fp*mfkLf`3x3@?-3ylIM#vq1VQAcisdQrFz| zOMiIEt&z9MX9#aQTJE|__jgaiIjDA;PCXD^JN-o+4}H``SSuv~g0vvK)k0QELR?$i zLRV6)$O`s7)1GLB`gz zZeDr-84`(PAYBZNtRxvJ*7F&>W$22CcnSVS{H5cpmtME$K&W(9PDw7{08;IC%k=vw zf`lLL!g&uMsA~6|Tdgmh@<-+;rIiN&Sr1GHA9~wouKj-sBqvysno<@Gskn=w6+vt2 zaAyb*d`hseAiS%JsZWUDF}(CiMb;>mSK1Q=lf8n8q*Dp83I>E=aTIwO69M2w%6+^f z5JJjg$kp|%)&~WdSKeBo_Q0MonCegl&LX+6(DT*s1=WzCE+w@#Qoq1j-*DCoEEyCZ z26tQTfA^K{&ca7=VhFawoVvB_KxAOb_Nuw(L*F>X*2ufu#~bB59#T4d{o5x-U+ODA zUSu(lrC0~MsJxphXVS%jg4C35Ny{2*B0$7i5AKpE`j3olVpUTTTBWXFvU|&fmj|%; zf_W z+EO`NV8R(zCAppqkv?)!qIXw$3i>b>UiV~+;X5kR+3Skscz}gqyz!Y}Rj?kvVY|21 zMt&YD++o##;@*$29e@FBtZkcC$4#wPXg3V2h@SN{Ay_NhZpSmX%)S5j^;2w(fLH5E zr2~wQA-PMj;&ArAJ5e4SebuMc2E>JBLX3l3==zul2i|SHw>!7fjTbxe9*wCLp%-af zd)t;mob(z7iRK6PAgoHQ2N<056vXxS((lKmh;=)$EzC{}@v7p?6fO|X2h+)e4h8$00o!m&0e$LCk8CmYDM209U>K_EVX^qM<&q0y+Fg@u+%Pu#!YKxk zbEa80La`Btw?Fl^U%z(aB%O~IB<{v4u|&9NlUQt)B+T-g$0EcKCn;k*ghHkyd-yQ(y4HmjhE+nyeup5g5rDLLP?WY0q>hpAqd_ImN;S} z02%JoxaPp1OT~=2(|l-@#lNjP@IhS)>O@e`2)Eaw+oq?pFG7qaGcCV8a4~X`BS2?! zSP;GTt*@BNzjB(>ePN9(Z5eDhYsB4;e{|ALMuB8nMF65X>io%;g{3yTQ3`6{M$20Q zkx~#cvU@8L6emr(lG_O)Y6=^{#3J?-r}h#rFOpE$^;d|- z7*idr@m@(HD)Gz>nS^1H$xuA8aGgmM2Dv_sBm|cg(fIWyuhuhhL1M4|4xB=t}lVDB5*qLq*R3pZ!H89Xi0 zNIKa4u4g3j)HFVj63MVs!ix?)0r+0+a<20tL?^K%MS5Ik*ffQnn>@RGn0dZlh`HIV zITHK#q$LrMm=yCtCYY(wg-roCnVhOua?b0-toAN<`LGc1ifY)YX}4%t&H`}Zr;`dm7S z3`rtxu;(x*eig9y+QO`fA*bP$btT>=;_1XoFE&>vp;0{u!lNTic@!A;Gbw?bI++-A zy53ynCMHID@#Ye;pna0kmv+m7!-&!mreQ zm~;~4$@u}#wD4AVUXMQ%E!}Rv5QC!5xI_2fhCsLNqHl^vzM?6 zEMWsWeP3WZNR&;EmKP&7=%>7hk)jj(i%MKBT8Ox~P+C%&CjMpGE|2zBnZke;ytqx*I{TO6?vNkyn5Z*gj4TIPcP*S;RwHIC&?Eq zmPVOVwVfztj!cr0=T;S&L`)R9Yj9db6b_(`k_194(-R8PSm>B!ol_Yzy*qB78M6wj(Oa>+noM$u6o zI9pMn?wVGpqI^iTR*>gP@SVx!o#wplKEDXB839`e*-Rqdd?!wgtsp3Ok0EUq>Z&`t zWCG*MJqtl!b-a^az?+N6qQ?<~X=+4^Z0_~)>v@UBJD||k z?y=3#6d_wSwn?=X&+;qI$%3?mhgs#ded4M={J@uQ{#PZEDaHFP-hW}}PHrqn4mO`2 zhD;D-6OrRW&O_qtC~=&39?7m4lv3oDL&w`RH3}t@lO&T{g`mfBh-8N=B$iP{So{@p(&9UcK%EK6W_3qgLTiH=Z9fgv~ zU64tFl7y+wv{=5Ekb?{1#gd5&RnLnaUC#C}$XCWw+%2cp>JF00=FV&nK`f0tR535z z&8p}ZX5~5OmPnQx^>>cavz-w!ECMk~qADNqgk5^c29hv|cmW2|<&rob4@xRkq=i<} z+cI3BVdj-g#=6eLxde1Pk;1Lmw^EvPx%9v8KAAMKJ=l85f#tB%nI$9PKww6CT6(yCYNs+VqY_C8o6kP; z*vLIPBa4)y`ijxrEl_kh6;fXL?qh9PNkm;zSy6Vx+|`#Q3R6;bNw^i1I*u1eM$4pF zB?T$DD4A4ACgtO??T{DNpi$l128D!V#kLDO9}lMe74_HFo}Y+?GwOv{4$PQvU`A&v zO6}BziB}@2#--5?4{}?GWJ+{7Ns`2EZnZl*{gZg^){}6CM0bn@0xD1MV4uV!8paiP zTyDVXPOM}y44I^*9PkqAq+C9cOuC#OK9M{qoEVNgxRN+9?M^KtndC?cg&D%-vNXbY z<%2J5e0q4W5I&0R5gab4Ftb8Xf?OUI; z>M*sxI*aXdW>&Ue`JHdPoc$rY$8SCH6OTMGPKhLsPlPeE(v&3>Q-q2)ekE_MUiT}2 z$yJy=wZv8u;592c5UyO$lVe5E5UMw&pm`vZNm&6eak(&wmVD;)@6Mnu?Kolk$zhk) zpj5ZjbavKIT}G9bOXTGZ?AJ4C z=Qa^s!5)B@N(ipLwAhNiOK5qw5?&HuiF8x$xfP`14EVPrkz=l-P|4(8NhVd^ToGqe z6tAw7U5qz(Z!s9nKszo6W+YGwU0OSmjRYT=)pj{6s;$eV@4u3f$$Q43*2+~-Octbk zqKLnR0X-~YXMrJIzKbf$pDUd$J+g2SKkEv2#k7+NC9SfhvhE)E@F~Y3osDdrxw|h( zAsr4Yli|fo8u_9U$>d5SeMBf7#o|PkTJrD_Od6POmkA>$liSVI)WEKoATmix>rC*N?LAwm#+ora4b^FS z*~9PjT{x7_&r&FqStpXOR_uFt9MTAM4d)~8l2)-dl}o8hYOc8NR9#_Eq%w7@*u(J1 zcrTHHkJv#fVsOo<_^+5@$)rps9p~;lShiV1IWQyE{VWA$oChM=K2aiZ#1Qdf!@{+f z8cRfLMno!cM)o*gl<3K(HjvN6oeL^1S)734@!@{PBE1<5%y=tIWr&o2|1Z9>#%ikV zpZ@jty?hLj43Ng=v(H?*)B90FcTs-H4ifoLD1K35jaRbAZl83Bh}Bn?iGWBY48j4@ z5MmHwkvLpME|XHciXqeib~YAtP3OoxVfB96;Z)j($2%6*v%WNtpM82Ilz}ku1j;Jh z49zQn4SsE&y1-NsNk$;#Vs{xyBHQ?JePU`YGw8MD5?uLABSj{}Jj8sOOCU~N z70IHjDDNz!>T+RE(A8Jgj96P3><2}Zp~|Twa!Q!cdOs~Pp>81t_9_gJ$dszOI56WU zQ5vCD?6D8d_^BUwabt6yy1>-Plq`i@sZdY-tc`8A>YOXT^9@vQJ$5$(McnUs60y9v z(0Oe6WLGZQuQQ}aY;@;9i&j>}+uRk{$LT7FBmWx|63xAwp^alDvF0>UH5cw{cjlsM zFGCf%=t1y@+m}9-)p>zE94L= zsrzoZC#K-qn|D~lq=IWmN_k3-O}AUls5l0Xt#L>(DhVl>6w(I8*_!S8WNG9lu}&!r z%2v;XLV0o?+t}0)$xr|K`<^?tqjb|-lEmh-&(Mp1=uYn~Yd=!XUg$`}`e4~UkyVmM z>Gk2|y{#i+mtj}YViR%dv2ehkUS6CiK_YLfLeT+SF=1rV8P>o)-EH?uJ~qI!XA;Rv znKbg-N+gqy=PL*LPWnAVNHcd{Nf8EF3{9=k^x;jyV8A_B`i4aB9f;y9whu=*rB&^q z>ayV3bvu>Ov672IaSCKYc9C?*<~Xe`z!;bjr4d>?(zo`P=Cy528CFw!(u49hB zRQh{o9gy>hNCz#gu=zwg5ZT&56n38L^1>(yW1N(f(VL6@6}l~w@A^2P03w? zc`;%TVN(RUflTRJh!LGUq|xk zk3O9J|Ac(~!18xr>)6&2!+GOo)Uoxbh5Htg_J@;y{ckTUw9X&7Z1Zq`sMG^WK)GVL>7hNxtysdlvp*^-*ops@VG|Z43L~ zsUVWxXr0b@k1Lszx!{eFcLff3C3~J)HwYnge8Ta!f+FHClaf=9h0)-YZy>LOE#*R~ zu$`#Xp*Te{AptuX(hGgcV{BcP4fo}s`7dglu+dJu!c#sk0{J&P32D1T>W_V z>nD>&E~7L;l2t8mgXivkY(JwdXc{DvCqMU``SeFmwFs?+g?ya|A~3~F&g9Wfiku|I z1mMwy)Sys|4vOKHO7gQ4fXr6{XyCXn|IE@zOmU^65oWDZsM;zAX0$9>ZT3@o{@?ha z|GBZDEptkPHs13}YBb%ZP#kF+waCPAa?kHO%sQi!Bop`SDY>x^Uxu`lysfJIQ4~$u zY%34U=t;zH^&r^oTKj9-19*}!CFQ)PuSzkAI1LgxZV(<;D!BD^iapg~vWMV`X4uvuxjr39%l#xQAd|aiG=_8V>`l=L)@raF`cQ9Q4yZF`ByXa-H zM2Sv_vO!2z^iHC8LG-?hRic+g^s@3nl<2+px`H5j4_1v5(aX>M-TRxl-#hm^^E-dN z=b7i6^StNGyyrQur!h6Y$4F1c6~a%78XZAVP7-g_z%K(!%zW(`ERIKH0Jd#~))jh4 z%~7&RHf&gGd$Ujh^e1PZsU%-lSF8ei*s`RT#YR1++Eaw)Y3bnC>JY)lPIUcS=OwA@ zd=kI2_Ft=aizb79tbo~hhc_WmE%juf0Mif+^xv)^X)x1>3U8dMAi_z*5%=MkWA!-ZT9M=rC zck+mM(%z}mav-v^DaNjyKE-R=uV)@IOc@S=2M5jq=FvrYgc0JIGx7d^BkD7jUx0`^ ze;wOS^~sJgW!Uz~W8y~b_fG4`Zbc5Su&Kp!%+hSkK^SY9!YieUk5mVJ4(V`jQE^Zwm*#CRG44C(GV9Js@LPhRqwzho<`>Msj zrpcWWt6K4}roz}+`tu*k;bU?utLLciTknz-cBGa03LI%gl#`bqF*Y+?ciYP$6cw?q z^W;sE(WD=nQR<{fPq7lVUSFrLvvuwE6cGL63w5+HgWp{6T@uv!+GzD_S8Rsd7m&zE zm`n7CzsPe+bS{G0Eb>_$9@!yC#eAmF<9f zkVHF)SlNSnsf8mE8t>}+9ZB>vRZuhJouysyMJEq}n>-Dn7~QOL{FNcy&6_ic%1CA7 zCrAD&WY2!OT{xtG{OiUZgN}sK<&+S^XXxs--B@TT51N>3!19WTrq7bfrK7prnv$69 zyJ{;$dnNSu943mPkdS*Rgr72=GD@KUp;EM|rhH}a+@A+AGVVa~T>z0y+}A#fcr(Ny z8Q_A53;V#m8=yz)=T>;m_*gu9c!iojsN^U(ee6{r6*8}AyD|vj?-r(1b{)NFmPd5d z0~!1)yCEA{miGk|+G5sN-*%H-)X3Y;V1i3+&gQR&av_;Xd^o)U6Rx zloZ3D`1VHq(Xz??dGu@4qV~qhkm>t|aVx`jI2}~Gy%cYRAT;dlkyV==5w@C#HoOp9 z0Z_`~gtDgX?t2x9=oh^at0!|a7LR52vi?j_1<3{5K=tqI&N4#Yu8NIuinoY<&EZV*z-+OhfX&PxRPR3SS@IhpzCaalj&Hima_`WHl;4dL_|5gYE7UzLh`c#F(qUK z)Psf4iRd>qq(s=rX(ReqivdJ3m@g(L^Ir>R;VAT-gz?yj%CKqr7F~2~jfU*nQK9ZW zIyFearZnRFc;0V`$UeSZfs@iPnw;m%z!d@bPBOK929OMkef>}C*pWclR;A$ltdfwPd zaHM#@?0#jM+h`!-tmuxl!CqDmVaO-v`TLsU+mB|9Wa&3~vK5n+@t#|tWO^rgz?cV7 z?7>)841OWHkVv>idN{Pu?(~}QJubnEzxsq>-Loq2bgVN{6|{t3h9wtg;@9uHZ>9wL z5^R^96}cG?S(LeFS?(sUJsy4cxU@mRfg1Hl{VF^Q3f_KYJg4Q4{Qe=zNr;MU69Km* ze1EHI>veEne{f!n?s`FD?y#OtJdu>`1jNNC2X~e*>zQFccpC(JY3XagU6d?01W;Jf zOwjm15v8inAYMBg^Dr*c!Jbo2=oTs47p^P}o~%6JP&l#BHD%Uf_vQF(^Io2d;tHy#>}j+<<1oL6Dgx6C)3%u&=j0^!Cv)|A2`tfNxCuen)k zSOW(=R0H3FsG`fB&Jg!mIl49DBa+UDYS;>Pe^LnEfJ41wkaK{caDr~Pw|T=rT=CRz zFXa`Yx?9V}SE;z@z_VOZq&!8Lin&Ag4=|4lQ^N~uaHcC(!@<$7YVq-lpxf5_8p`1| z@~CI0$-!{~pttQqFDajB*}hSacV_d)+a5|fnklO*VB261K=7WbR7=n@yL4+Q4sktA ztvWufDV@<)m593CuA`Rt9Gm^I2HkVs_H^-X6&&hb$dkYb^|}GpHmnX6Yx= z7sOQZZcy0rHeXA{86|2Y0F-w~k9G1cM>#XKa?Xi@{z$Vhqqo2rva?S$ZZZP@q}?~S zShH%dC#bPUrTjy_RdN1BZRoxX4;<|}1Vfx=PWP@k*8`EqJgb$8B0RpQ9*a*Yxxyi# z8x9B`ntI|I1Oz#-#5^~z^*Zy{>_h%t#=-db&JI$OIF65s2R;-Qr;lBLTOO8T_}zCA z;smR>=&BOwy|k)@vCds0BEa_z5AKI0Mlgq|;)MnJ{h#kt?gjhj*>55hRSWbE*h@g! zFHSf*Z*dRNg#A&<92#_;Ay9S@xt57?4<8onw{N}PYw}#~Z=bEoZ`2p%2Y8(qDEH%0 z_qVryS^ajhAIY3~+aCX;wxS~YqpgYld`~Gp>Jf%-fZY5j3E3X!fLxgQt5W`TiiH?) zsGpOwN6#Vf1s`hau9sch-dZP3`ti|Y-f?gy8HHaCbEVr#gpju}h4K+EEQ~*irb>Q2 z^jw63ZzderM^=QnmcV!ri`tD#D3rnhVU&AF8ewDJ$xd_`xOqR5LTDR27J z1CD|b_T4ai&h@R0X2fDr!0~K-BOmqCPh@I+ZAq=tB(YzL*b_5LvxG6{!KAgFC4a*Z zH48D3q0hB#v`mvbaEK-DeL6;4?eyBk2>VG3)LXiq8wqfpotaBm6tJ!lyky@K^@+Q3`%I| zK>;Dtc`M4I5w>c`$2L@3gf~G7I3+InyX`$`IG3FkKezigt?~SP)oo!5lH}=>oFha$ zd0>)vE%H4EJs$Xz8{oQ)>h#HP@cPHgU{i}>WC+4i1M4B%xo@4){aSLf6!%LmK7W-z zz|3Y*j*jSMT3r!~(sOBvo$YecjCL=dr zh^}MKP!onLAb!z`vNuBwlEunjg)8K1azFmJJc^?fAD7f`L66IPO?It+Cwuf>{-<95 zrscOEL95rZL5=qw4{Pga+V?*s;>Ibqus%0SI)FPeKFhT}7ni@f1&Zm%$Mrmx8#oLD z=bIhrf}CIIj}3VGPZJPTWi}j*HgPZAl+VBj>xBi>Vd79d=Ff@zp`_Q04T}(_?m&;lZiQAR^ zWg9MVq>EZB*DW~B9kKwQCVq`9a!$yL8kt_V(!ad-tysUAX&OyMB|YXo-^y-u61lRN zG>&zy|4E-jFXrDu8>MGTA6Y}}ld06Moq7Y)+mn~MbpJv2-_*Q}x%~`ShTW?wy2bM~ zp+dhUs^s9UCXVOB9B*&HWM^VKA8i)z<{MDhk|b?*!RFRoshI8r6|-1Lk>(hM`)!%d z=qo8^@bhhVf{f{_dlK-c`;UKWpJ6zF+5|UlF8s`5UJ{iIK%ume1^qU0zAAo>JurM{ zZXF!Z61*kRA0J+@ndwzAg$uMK`b)|5N>bbB*Kg~8$X9dN>2>Cxe3j;2{TR$*i=ojh zJB?gs_A$-7A-ZSj4XfX40Su55C2!adMXi?Su6x5c!-p&R@5BoUYM3;VH>)>|7-AHY z5JRCdz$sw;Xz05hY<(=zVwPPkK4W zvRa86{Qc*S;hDvdTwd2-rP4(A3U~^~xcqEqqVqmf#5D|pwDItY62+U z2QI-*k~nX~1p%B%p*b}l%HDqHaaVuoG1|$B^+W72<+FL|!ox25az({fh%9Cc9eKsT zmd3f|FMb)>JR^rqo{}pV+_1#0R$TD#H~-}u zA>`LWOiFPwHhT$cv#-Y z*chQAMNI?Ak{AnjI(WlBW8)m?Uw!&}8C)BJ){{f)ijPqYcC?@Q;R(j-rwHlZC$;0) zKb{}B9QWp|M=!2Nd~?HfK8`V2OZ&Mt;&2k&))(qAIv6fQ4#6D|x>1KODRj)xa}}j4 z|Kd6_3zg@wjVc`+pIO@^|>o+}3#&erOBCRHOuAo+$UzoS4~Q8onqLWr#bh4tSyEaej623S3EMW3=sf zbo{6Cb0lYokHuSTZtp&&^kX{UIs zww7Bz>0y|zYsei#tj=yEp|WSiw0V6iARxEgw-nE^xtb~${qmU_<*USOvizecv6b~e zEj)+!TF9hwFOkLj^Gt{bt#aP+snc#mZP_{=gZGNR`O+hL^*T z0_h6+0h33Z&pw^V0$0~XkIbP56v?jS8emzScu4jS?psW*Xh=q+qCzn?>J4=H2{7f! z4)yzEZN>h&@f>~tg(%MOSL__8`hpK%_S@r7-l=)7((i-Kgp%|_QElHzI!Uw*Mo0ok z7y=V27vbtHJ#ikGzxlC!8^t)%Faw_ykknN^t6KOC?ihT*GP;{PEAOwUw}^e~N2cp0 zLig=h^xJ8N=!EdIJSz7W69ca<{GaBv4vkNR`GDe}h`g^Pr7cPwAF*xq++&G<&o-O< z5U#|y5|kT!x6yEnVRn)DAmHKmD!oli<-;tXE=pjuszk;`utY3N$fBgTi=%d-cEYOw z_N{AkBN%nUY%f8QD9Hfjr)*8m^e-?!t-hYzU<6=9_&eE(@5n89f zLJ(xcD%<%I$xr^4zrk<*j=Fmc4IiDNal~+7ACt?V52ClvzHFOqxI6s`++&nLntg?; z_uPahN?bK^PPm2@p7X-oqY_|oHxD$dwWGi2?(Y0wvs-y3&`Zk@zI0R3%(^S)C&o2=jiZ>koGMH ziJV`q@DS5rro9J5(-5aSCz4KRnPUQiO#~LRuAsZ-j>yyx!60u^sVhwKc{Yd@%pPgN z6&aRSJ{UF~LBGVln#?fo12+r`-Cqk#r=S;5NqFdpL)~I@P6-69tnCZbo+bBqsQ8hY zH$X9^Y}!G47i+TO7OAjLcwIMgTZm(G&cR{TI~nrMC6vM)>Ojx7Re5-zp?B6kl);fU zw*(XWZ&nvqBd&H;-Rx|W>M4tNQ~a)9$JkaaaQCnaIJ5RgslIwd+pO>C{u$&9Ethl; zXsn*Ks4D4}tLZ@to_LsU-I(I2^|005Ns+aXb^Q_i6FeVI03p5+4Dr|Jl9AnE{Nm=z z$Et%DRfY0;+z|{$Wd*6bTWbEIDzqiZMH<7ib!VI<_5otr+lq_f~?M26ww>u)gbCBtFIf4Y9 zCt;_<8j)_%nVdME&51+z{4}N8=^^HENBq_cq1`VwMT~K7qDChIpt2dt(VO)c=wV_< zOn@*E6&70o9b`{NMNa$3(fk76Vl64Y19kK&TQCzC^%34;!6?3|? z+~=^>`siIj4)Ey{uXJTp(~pSzOQF0VY=F-Pyo6NUC@=7D3@&YoX|~&s^zk zM8XzgNmcu#pf1(JrWg)&*uT;s{*2~$Paw?G-MQ5mp|>JwK50>j$F#_B``YOnHSlk& zRdnDzpVgjJ=Yt-%0V`Mgq+O0@9%5)#qsQ0#t6~j+*#*IB&TM-=`J>>E5-=VW%Sf-= zXZpkI!s659V~m)!;B)O7!Axj${e+|&7ckTdr#6*2(QwAR=*K7e#2w!(B%qs?8s3iV zj#C4bDFMTuNV0lWX;;i5JsK>4rr5&F{U6)_lH4UCQb>b(b0-bCoC{!C$XM4Jn`k=B zzN!q_LaC>N^QpIL^M^a)=mao2KnWy5L^1$#>aKFdCqnaZ3D)&~U$z4Iqy5XtjwtLr zgp2uFHs8-*PfI=5JZtwI0?_-2^=fYYiRtP))J2$sbmeuhmXsHR45=O;Xou z&}7n%dFT5%kL^=+IVNuf%>D*_1uGD$z-mT&hiVMaM zuXN8a3sD=>q1F!u9hNT^??a~+jT{#XFIp`7m zjvcEqvUszd{Zli!?V9DyTm-!fW2~-;y-ceR)myoP%Fv;N4`Mt)7=Qtr#6bTw=4z~* zdJ+R$okT5YnziM$=M<ynAD&1R~s?)qGkl9 z?|5VZTkWyH=-GuzXaM#enJk=CzULpiO9tX;liXn)zl$2u#jm(6&;)UCBiUpIUCZj| zQ8jAZ4w*ZVS_jy($|(NUQyb+x7IOFz6V!kmc+YI_voY^MT8Gzq8^4IWS;bjyuiM84 z*5Got;(8UF72+WSI|u%Pcvo4{N(kb)C6F%dpDP=&f5Gdv{y@j^x{jgv$vvc!VV>re zP48-!zbOQeKRHp`k+$n5)ej|*C#%EagO1|TJ@#){CtR<;x@xre#w#tHjX9Wtq5De( z*k9SJctv~`kfGWMuqw!s%%P5oRRtLh+J_iu;Ys;+ZeG*CGYOVgH>E4o@Yg+9b$NIa zFUaDyQet?3;5yM z{-f|L!qydmoP)b+*)S95i0@2$C4Q086y&Ena5N`24TiU1j$7sb{($^Y)+=kpw(-s4 zyvYP--Y)Bo^GEYw>9|x~IJGXjlytM0JN*Pl zDPWxK@B*C3!eFjj9_r7H!*RNAex_L2Nz+ukUHbAgdU%AQyDuL=>51d~j<{9=d5D7y zR55Q@2=!^iSV^Fe6l=pOr9YY8&+55@5?p^^<$5Px#oTu+!!wtx-!%5le2U^#0M$Yw z@u`y^Kd=K9xyXA&&aOx_YrVP#>P${;2`!ka z3p-r$)y~bo@Z4<%-b1Mt_5_SOaX+lGsH*D#&+)msn?7yxw`p7t0va>uK+`tIZv*0j zI4oO*)yc|v!+cz!w6V3)LF2f&Qc>;+K$v`H*_HZv1Q{^Kw#2f(MWW2BA0&^x5ldsvM`yQ&+cI5{EPOv8>lxIt=1T|vK|Z-OTQ zJYG-Q($9S#1jx({x^ay`qh80^`=QiT1V^PrA65nI8Q)DDkzKaHM4MhK<9}qV;7OV+ zgH|#N>~pb3uz12W4-eD3#Z_0=PtEY^H6u_bymUMK#Q`*3T6Wmkl$1MZcyfk|69Ooz z0YI!n1n_Tz3Y8^W_5Q@mMIkn4I5tY4t{dlC>}}HICne4sX0XB1se!!OC7=;L+vK#m z@m%@u*@$xT5QLK8yVREGcW_x?<-$v%F1uv^HTtH}KEC~J?@j~1o~X-VQ?~}FSsUp= z?|d=`<-OWSCd(hDEytq5JDN(Zlf^Dky_BzQshCeeG!+!72kH&bAUQv0B|T;mez&d4cZbXhSCi3Jhr$;EvpMB0V6fG$ zu`!4-?HcR6j9g3*dp7tyY_?Vsyc{F!{;j& + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index cbba9a2270..eca64c852b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -326,5 +326,9 @@ Work profile + + Find work apps here + + Each work app has an orange badge, which means it\'s kept secure by your organization. Work apps can be moved to your Home Screen for easier access. diff --git a/src/com/android/launcher3/AbstractFloatingView.java b/src/com/android/launcher3/AbstractFloatingView.java index 26024e5310..2c6629d595 100644 --- a/src/com/android/launcher3/AbstractFloatingView.java +++ b/src/com/android/launcher3/AbstractFloatingView.java @@ -42,7 +42,8 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch TYPE_WIDGETS_BOTTOM_SHEET, TYPE_WIDGET_RESIZE_FRAME, TYPE_WIDGETS_FULL_SHEET, - TYPE_QUICKSTEP_PREVIEW + TYPE_QUICKSTEP_PREVIEW, + TYPE_ON_BOARD_POPUP }) @Retention(RetentionPolicy.SOURCE) public @interface FloatingViewType {} @@ -52,10 +53,11 @@ public abstract class AbstractFloatingView extends LinearLayout implements Touch public static final int TYPE_WIDGET_RESIZE_FRAME = 1 << 3; public static final int TYPE_WIDGETS_FULL_SHEET = 1 << 4; public static final int TYPE_QUICKSTEP_PREVIEW = 1 << 5; + public static final int TYPE_ON_BOARD_POPUP = 1 << 6; public static final int TYPE_ALL = TYPE_FOLDER | TYPE_ACTION_POPUP | TYPE_WIDGETS_BOTTOM_SHEET | TYPE_WIDGET_RESIZE_FRAME | TYPE_WIDGETS_FULL_SHEET - | TYPE_QUICKSTEP_PREVIEW; + | TYPE_QUICKSTEP_PREVIEW | TYPE_ON_BOARD_POPUP; protected boolean mIsOpen; diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 9ee9514fcf..f4026f292c 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -60,6 +60,7 @@ import com.android.launcher3.util.ComponentKeyMapper; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.TransformingTouchDelegate; +import com.android.launcher3.views.BottomUserEducationView; import com.android.launcher3.views.SlidingTabStrip; import java.util.HashMap; @@ -515,6 +516,9 @@ public class AllAppsContainerView extends RelativeLayout implements DragSource, if (mAH[pos].recyclerView != null) { mAH[pos].recyclerView.bindFastScrollbar(); } + if (pos == AdapterHolder.WORK) { + BottomUserEducationView.showIfNeeded(mLauncher); + } } @Override diff --git a/src/com/android/launcher3/views/AbstractSlideInView.java b/src/com/android/launcher3/views/AbstractSlideInView.java new file mode 100644 index 0000000000..7c4529dd79 --- /dev/null +++ b/src/com/android/launcher3/views/AbstractSlideInView.java @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.views; + +import static com.android.launcher3.anim.Interpolators.scrollInterpolatorForVelocity; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ObjectAnimator; +import android.animation.PropertyValuesHolder; +import android.content.Context; +import android.util.AttributeSet; +import android.util.Property; +import android.view.MotionEvent; +import android.view.View; +import android.view.animation.Interpolator; + +import com.android.launcher3.AbstractFloatingView; +import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherAnimUtils; +import com.android.launcher3.Utilities; +import com.android.launcher3.anim.Interpolators; +import com.android.launcher3.touch.SwipeDetector; + +/** + * Extension of AbstractFloatingView with common methods for sliding in from bottom + */ +public abstract class AbstractSlideInView extends AbstractFloatingView + implements SwipeDetector.Listener { + + protected static Property TRANSLATION_SHIFT = + new Property(Float.class, "translationShift") { + + @Override + public Float get(AbstractSlideInView view) { + return view.mTranslationShift; + } + + @Override + public void set(AbstractSlideInView view, Float value) { + view.setTranslationShift(value); + } + }; + protected static final float TRANSLATION_SHIFT_CLOSED = 1f; + protected static final float TRANSLATION_SHIFT_OPENED = 0f; + + protected final Launcher mLauncher; + protected final SwipeDetector mSwipeDetector; + protected final ObjectAnimator mOpenCloseAnimator; + + protected View mContent; + protected Interpolator mScrollInterpolator; + + // range [0, 1], 0=> completely open, 1=> completely closed + protected float mTranslationShift = TRANSLATION_SHIFT_CLOSED; + + protected boolean mNoIntercept; + + public AbstractSlideInView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + mLauncher = Launcher.getLauncher(context); + + mScrollInterpolator = Interpolators.SCROLL_CUBIC; + mSwipeDetector = new SwipeDetector(context, this, SwipeDetector.VERTICAL); + + mOpenCloseAnimator = LauncherAnimUtils.ofPropertyValuesHolder(this); + mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mSwipeDetector.finishedScrolling(); + } + }); + } + + protected void setTranslationShift(float translationShift) { + mTranslationShift = translationShift; + mContent.setTranslationY(mTranslationShift * mContent.getHeight()); + } + + @Override + public boolean onControllerInterceptTouchEvent(MotionEvent ev) { + if (mNoIntercept) { + return false; + } + + int directionsToDetectScroll = mSwipeDetector.isIdleState() ? + SwipeDetector.DIRECTION_NEGATIVE : 0; + mSwipeDetector.setDetectableScrollConditions( + directionsToDetectScroll, false); + mSwipeDetector.onTouchEvent(ev); + return mSwipeDetector.isDraggingOrSettling() + || !mLauncher.getDragLayer().isEventOverView(mContent, ev); + } + + @Override + public boolean onControllerTouchEvent(MotionEvent ev) { + mSwipeDetector.onTouchEvent(ev); + if (ev.getAction() == MotionEvent.ACTION_UP && mSwipeDetector.isIdleState()) { + // If we got ACTION_UP without ever starting swipe, close the panel. + if (!mLauncher.getDragLayer().isEventOverView(mContent, ev)) { + close(true); + } + } + return true; + } + + /* SwipeDetector.Listener */ + + @Override + public void onDragStart(boolean start) { } + + @Override + public boolean onDrag(float displacement, float velocity) { + float range = mContent.getHeight(); + displacement = Utilities.boundToRange(displacement, 0, range); + setTranslationShift(displacement / range); + return true; + } + + @Override + public void onDragEnd(float velocity, boolean fling) { + if ((fling && velocity > 0) || mTranslationShift > 0.5f) { + mScrollInterpolator = scrollInterpolatorForVelocity(velocity); + mOpenCloseAnimator.setDuration(SwipeDetector.calculateDuration( + velocity, TRANSLATION_SHIFT_CLOSED - mTranslationShift)); + close(true); + } else { + mOpenCloseAnimator.setValues(PropertyValuesHolder.ofFloat( + TRANSLATION_SHIFT, TRANSLATION_SHIFT_OPENED)); + mOpenCloseAnimator.setDuration( + SwipeDetector.calculateDuration(velocity, mTranslationShift)) + .setInterpolator(Interpolators.DEACCEL); + mOpenCloseAnimator.start(); + } + } + + protected void handleClose(boolean animate, long defaultDuration) { + if (mIsOpen && !animate) { + mOpenCloseAnimator.cancel(); + setTranslationShift(TRANSLATION_SHIFT_CLOSED); + onCloseComplete(); + return; + } + if (!mIsOpen || mOpenCloseAnimator.isRunning()) { + return; + } + mOpenCloseAnimator.setValues( + PropertyValuesHolder.ofFloat(TRANSLATION_SHIFT, TRANSLATION_SHIFT_CLOSED)); + mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + onCloseComplete(); + } + }); + if (mSwipeDetector.isIdleState()) { + mOpenCloseAnimator + .setDuration(defaultDuration) + .setInterpolator(Interpolators.ACCEL); + } else { + mOpenCloseAnimator.setInterpolator(mScrollInterpolator); + } + mOpenCloseAnimator.start(); + } + + protected void onCloseComplete() { + mIsOpen = false; + mLauncher.getDragLayer().removeView(this); + } +} diff --git a/src/com/android/launcher3/views/BottomUserEducationView.java b/src/com/android/launcher3/views/BottomUserEducationView.java new file mode 100644 index 0000000000..d79d0cefa8 --- /dev/null +++ b/src/com/android/launcher3/views/BottomUserEducationView.java @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.views; + +import android.animation.PropertyValuesHolder; +import android.content.Context; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.view.LayoutInflater; + +import com.android.launcher3.Insettable; +import com.android.launcher3.Launcher; +import com.android.launcher3.R; +import com.android.launcher3.anim.Interpolators; + +public class BottomUserEducationView extends AbstractSlideInView implements Insettable { + + private static final String KEY_SHOWED_BOTTOM_USER_EDUCATION = "showed_bottom_user_education"; + + private static final int DEFAULT_CLOSE_DURATION = 200; + + private final Rect mInsets = new Rect(); + + public BottomUserEducationView(Context context, AttributeSet attr) { + this(context, attr, 0); + } + + public BottomUserEducationView(Context context, AttributeSet attrs, + int defStyleAttr) { + super(context, attrs, defStyleAttr); + mContent = this; + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + setTranslationShift(mTranslationShift); + } + + @Override + public void logActionCommand(int command) { + // Since this is on-boarding popup, it is not a user controlled action. + } + + @Override + protected boolean isOfType(int type) { + return (type & TYPE_ON_BOARD_POPUP) != 0; + } + + @Override + public void setInsets(Rect insets) { + // Extend behind left, right, and bottom insets. + int leftInset = insets.left - mInsets.left; + int rightInset = insets.right - mInsets.right; + int bottomInset = insets.bottom - mInsets.bottom; + mInsets.set(insets); + setPadding(getPaddingLeft() + leftInset, getPaddingTop(), + getPaddingRight() + rightInset, getPaddingBottom() + bottomInset); + } + + @Override + protected void handleClose(boolean animate) { + handleClose(animate, DEFAULT_CLOSE_DURATION); + if (animate) { + // We animate only when the user is visible, which is a proxy for an explicit + // close action. + mLauncher.getSharedPrefs().edit() + .putBoolean(KEY_SHOWED_BOTTOM_USER_EDUCATION, true).apply(); + } + } + + private void open(boolean animate) { + if (mIsOpen || mOpenCloseAnimator.isRunning()) { + return; + } + mIsOpen = true; + if (animate) { + mOpenCloseAnimator.setValues( + PropertyValuesHolder.ofFloat(TRANSLATION_SHIFT, TRANSLATION_SHIFT_OPENED)); + mOpenCloseAnimator.setInterpolator(Interpolators.FAST_OUT_SLOW_IN); + mOpenCloseAnimator.start(); + } else { + setTranslationShift(TRANSLATION_SHIFT_OPENED); + } + } + + public static void showIfNeeded(Launcher launcher) { + if (launcher.getSharedPrefs().getBoolean(KEY_SHOWED_BOTTOM_USER_EDUCATION, false)) { + return; + } + + LayoutInflater layoutInflater = LayoutInflater.from(launcher); + BottomUserEducationView bottomUserEducationView = + (BottomUserEducationView) layoutInflater.inflate( + R.layout.work_tab_bottom_user_education_view, launcher.getDragLayer(), + false); + launcher.getDragLayer().addView(bottomUserEducationView); + bottomUserEducationView.open(true); + } +} diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index e328759265..fa82714384 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -15,94 +15,43 @@ */ package com.android.launcher3.widget; -import static com.android.launcher3.anim.Interpolators.scrollInterpolatorForVelocity; import static com.android.launcher3.logging.LoggerUtils.newContainerTarget; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.ObjectAnimator; -import android.animation.PropertyValuesHolder; import android.content.Context; import android.graphics.Point; import android.util.AttributeSet; -import android.util.Property; -import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; -import android.view.animation.Interpolator; import android.widget.Toast; -import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget.DragObject; import com.android.launcher3.ItemInfo; -import com.android.launcher3.Launcher; -import com.android.launcher3.LauncherAnimUtils; import com.android.launcher3.R; import com.android.launcher3.Utilities; -import com.android.launcher3.anim.Interpolators; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.graphics.GradientView; -import com.android.launcher3.touch.SwipeDetector; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import com.android.launcher3.userevent.nano.LauncherLogProto.Target; import com.android.launcher3.util.SystemUiController; import com.android.launcher3.util.Themes; +import com.android.launcher3.views.AbstractSlideInView; /** * Base class for various widgets popup */ -abstract class BaseWidgetSheet extends AbstractFloatingView - implements OnClickListener, OnLongClickListener, DragSource, SwipeDetector.Listener { +abstract class BaseWidgetSheet extends AbstractSlideInView + implements OnClickListener, OnLongClickListener, DragSource { - protected static Property TRANSLATION_SHIFT = - new Property(Float.class, "translationShift") { - - @Override - public Float get(BaseWidgetSheet view) { - return view.mTranslationShift; - } - - @Override - public void set(BaseWidgetSheet view, Float value) { - view.setTranslationShift(value); - } - }; - protected static final float TRANSLATION_SHIFT_CLOSED = 1f; - protected static final float TRANSLATION_SHIFT_OPENED = 0f; - /* Touch handling related member variables. */ private Toast mWidgetInstructionToast; - protected final Launcher mLauncher; - protected final SwipeDetector mSwipeDetector; - protected final ObjectAnimator mOpenCloseAnimator; - - protected View mContent; protected GradientView mGradientView; - protected Interpolator mScrollInterpolator; - - // range [0, 1], 0=> completely open, 1=> completely closed - protected float mTranslationShift = TRANSLATION_SHIFT_CLOSED; - - protected boolean mNoIntercept; public BaseWidgetSheet(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - mLauncher = Launcher.getLauncher(context); - - mScrollInterpolator = Interpolators.SCROLL_CUBIC; - mSwipeDetector = new SwipeDetector(context, this, SwipeDetector.VERTICAL); - - mOpenCloseAnimator = LauncherAnimUtils.ofPropertyValuesHolder(this); - mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mSwipeDetector.finishedScrolling(); - } - }); } @Override @@ -130,9 +79,8 @@ abstract class BaseWidgetSheet extends AbstractFloatingView } protected void setTranslationShift(float translationShift) { - mTranslationShift = translationShift; + super.setTranslationShift(translationShift); mGradientView.setAlpha(1 - mTranslationShift); - mContent.setTranslationY(mTranslationShift * mContent.getHeight()); } private boolean beginDraggingWidget(WidgetCell v) { @@ -163,94 +111,8 @@ abstract class BaseWidgetSheet extends AbstractFloatingView public void onDropCompleted(View target, DragObject d, boolean success) { } - @Override - public boolean onControllerInterceptTouchEvent(MotionEvent ev) { - if (ev.getAction() == MotionEvent.ACTION_UP && !mNoIntercept) { - // If we got ACTION_UP without ever returning true on intercept, - // the user never started dragging the bottom sheet. - if (!mLauncher.getDragLayer().isEventOverView(mContent, ev)) { - close(true); - return false; - } - } - - if (mNoIntercept) { - return false; - } - - int directionsToDetectScroll = mSwipeDetector.isIdleState() ? - SwipeDetector.DIRECTION_NEGATIVE : 0; - mSwipeDetector.setDetectableScrollConditions( - directionsToDetectScroll, false); - mSwipeDetector.onTouchEvent(ev); - return mSwipeDetector.isDraggingOrSettling(); - } - - @Override - public boolean onControllerTouchEvent(MotionEvent ev) { - return mSwipeDetector.onTouchEvent(ev); - } - - /* SwipeDetector.Listener */ - - @Override - public void onDragStart(boolean start) { } - - @Override - public boolean onDrag(float displacement, float velocity) { - float range = mContent.getHeight(); - displacement = Utilities.boundToRange(displacement, 0, range); - setTranslationShift(displacement / range); - return true; - } - - @Override - public void onDragEnd(float velocity, boolean fling) { - if ((fling && velocity > 0) || mTranslationShift > 0.5f) { - mScrollInterpolator = scrollInterpolatorForVelocity(velocity); - mOpenCloseAnimator.setDuration(SwipeDetector.calculateDuration( - velocity, TRANSLATION_SHIFT_CLOSED - mTranslationShift)); - close(true); - } else { - mOpenCloseAnimator.setValues(PropertyValuesHolder.ofFloat( - TRANSLATION_SHIFT, TRANSLATION_SHIFT_OPENED)); - mOpenCloseAnimator.setDuration( - SwipeDetector.calculateDuration(velocity, mTranslationShift)) - .setInterpolator(Interpolators.DEACCEL); - mOpenCloseAnimator.start(); - } - } - - protected void handleClose(boolean animate, long defaultDuration) { - if (!mIsOpen || mOpenCloseAnimator.isRunning()) { - return; - } - if (animate) { - mOpenCloseAnimator.setValues( - PropertyValuesHolder.ofFloat(TRANSLATION_SHIFT, TRANSLATION_SHIFT_CLOSED)); - mOpenCloseAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - onCloseComplete(); - } - }); - if (mSwipeDetector.isIdleState()) { - mOpenCloseAnimator - .setDuration(defaultDuration) - .setInterpolator(Interpolators.ACCEL); - } else { - mOpenCloseAnimator.setInterpolator(mScrollInterpolator); - } - mOpenCloseAnimator.start(); - } else { - setTranslationShift(TRANSLATION_SHIFT_CLOSED); - onCloseComplete(); - } - } - protected void onCloseComplete() { - mIsOpen = false; - mLauncher.getDragLayer().removeView(this); + super.onCloseComplete(); mLauncher.getSystemUiController().updateUiState( SystemUiController.UI_STATE_WIDGET_BOTTOM_SHEET, 0); }