From d5f80129476ad858a206cf615bab3e2ee67e3b3a Mon Sep 17 00:00:00 2001 From: hwgaizw Date: Mon, 21 Feb 2022 17:33:30 +0800 Subject: [PATCH] video js api Signed-off-by: hwgaizw Signed-off-by: hwgaizw Change-Id: I63d979df2a8247309dad65fd3f59db0b60887388 --- zh-cn/application-dev/media/Readme-CN.md | 3 +- zh-cn/application-dev/media/audio-playback.md | 8 +- .../media/figures/zh-ch_image_20220117.jpg | Bin 68903 -> 0 bytes .../figures/zh-ch_image_audio_player.jpg | Bin 0 -> 17817 bytes .../zh-ch_image_audio_state_machine.jpg | Bin 0 -> 29480 bytes .../figures/zh-ch_image_video_player.jpg | Bin 0 -> 19809 bytes .../zh-ch_image_video_state_machine.jpg | Bin 0 -> 38552 bytes zh-cn/application-dev/media/video-playback.md | 371 ++++++++ .../reference/apis/js-apis-media.md | 856 +++++++++++++++++- 9 files changed, 1233 insertions(+), 5 deletions(-) delete mode 100644 zh-cn/application-dev/media/figures/zh-ch_image_20220117.jpg create mode 100644 zh-cn/application-dev/media/figures/zh-ch_image_audio_player.jpg create mode 100644 zh-cn/application-dev/media/figures/zh-ch_image_audio_state_machine.jpg create mode 100644 zh-cn/application-dev/media/figures/zh-ch_image_video_player.jpg create mode 100644 zh-cn/application-dev/media/figures/zh-ch_image_video_state_machine.jpg create mode 100644 zh-cn/application-dev/media/video-playback.md diff --git a/zh-cn/application-dev/media/Readme-CN.md b/zh-cn/application-dev/media/Readme-CN.md index eb57afa3f1..d9e569d4ec 100755 --- a/zh-cn/application-dev/media/Readme-CN.md +++ b/zh-cn/application-dev/media/Readme-CN.md @@ -5,7 +5,8 @@ - [音频播放开发指导](audio-playback.md) - [音频管理开发指导](audio-management.md) - [音频录制开发指导](audio-recorder.md) - - 视频 + - [视频开发概述](video-overview.md) + - [视频播放开发指导](video-playback.md) - [视频录制开发指导](video-recorder.md) diff --git a/zh-cn/application-dev/media/audio-playback.md b/zh-cn/application-dev/media/audio-playback.md index 9a385d9076..dc18bedf28 100644 --- a/zh-cn/application-dev/media/audio-playback.md +++ b/zh-cn/application-dev/media/audio-playback.md @@ -6,7 +6,13 @@ **图1** 音频播放状态机 -![zh-ch_image_20220117](figures/zh-ch_image_20220117.jpg) +![zh-ch_image_audio_state_machine](figures/zh-ch_image_audio_state_machine.jpg) + +## 视频播放零层图 + +**图2** 视频播放零层图 + +![zh-ch_image_audio_player](figures/zh-ch_image_audio_player.jpg) ## 音频播放开发步骤 diff --git a/zh-cn/application-dev/media/figures/zh-ch_image_20220117.jpg b/zh-cn/application-dev/media/figures/zh-ch_image_20220117.jpg deleted file mode 100644 index 8fba3a7beeb4efc7599dde3f32b228135ed92fce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68903 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/media/figures/zh-ch_image_audio_state_machine.jpg b/zh-cn/application-dev/media/figures/zh-ch_image_audio_state_machine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..274ea47ccbceb25cd8be4054dcb6c3e0440e90a0 GIT binary patch literal 29480 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 Jzy2Wde*x)k4($K{ literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/media/figures/zh-ch_image_video_player.jpg b/zh-cn/application-dev/media/figures/zh-ch_image_video_player.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e611f916b0907b8b664941ab247c1f66f0240941 GIT binary patch literal 19809 zcmdSAXIN9++BF)mAS$AuAYBARq)C^K^bU&Bi}V^Iy@V>DD82WhQbcJ|5-9-%siF5I z1Vn0pfV6}b_!d5Uzu)(sYyUatJ?F>yk!xOAYbLAAIqx~fxX1lgUssLlGUH_s2t=i! zuKW}PBFBJ0WJ#AU0!Ql1Lgj&m%ig7OLY@3 z5a?R_*@vtP^2rVa(k5sqKYr$KiN{jEWZuhLCRH8NKQx)NWQBd#Ta*mo)4Hr`xWVds zPPyr=tE3c#BuQZ)w-#UW!Y7bu>>~$)^qI-RgY6wRWHPiN_}c#c}7IOMLE8 z(bsRtJR#Tkgb-^}PVO-FE9M>!&!D1M5I>xDLj%8rhTaKwpXJrkBl9~k#qaSS@h z)`LDs3n{0D$WIR3@12*feR@C(BI9s72Q=*L|Feb%I%~6Z&f{R)zQG%pd_Kq+1bWw- zE#_*6N7p|!G<28%-B$^Z0#i*b4;H}N#X+E#7dkXg*HM*3_ZS(3Iq~% z79>75vamlruWx$!#AuV?bPg1@zH2aRb$U3NYD~`c=~uPR&_&P-55{i+{pU6H9$T9+ zU2~};19cBVHxXTH_w;QpU&fd!0#CW!<;o5G%Vo@1J{hQ5wAq)uxcFB#`0TM!H(+ES zP*~#i|J2;v^}*8%m{)U0Zf1SWunYQaFL_|9C=Qw7ln?Oebt40v$JxRsx*NP8$ap5( zr>$!a4ICjcD4JL*Ch;lS?Hvg{z1~lIjQhP~JO^?8lf8OYGS;wiOE}ilb@5BgHWVJL zjBedm^TgLrX7b-xjl|y_A{29YlJ+Kh26A9M1KIeewYE7Za?qvrv7Sl%ONqVJwe8Lv z$6_KAbrydVhuiX|9;?6dNe6}e{qb=j)K}Z4>HWEp0MZd8^eFq-Q;OZ{C`N5j-be0E z0b-NbPj{24&G%>hH1XEKG|3Ms>lZv-P6jG3;w}h$+_E#}!Eijo;hjW^ zwoNiZ$IT{+U+=i7rN&ErpjRRXeRzzqJNr+>!{>spl}lz1^76Jv>8*sc?$br$qetdQ zw|&loJ}CXuiDjlLRh7l$-E2#P>O?tL<1MBEV`ZUuagZ`KSR}0YF0c;5y7x=HP7N%N z7S|joEnEEqGzF|0-O}~>E&)N|j_^8qKc%#fra9zf$7lg&=9kTN^GX{qrK4kC@AC`G z_D6j}H9H_E8{jxv2g;6Dg7t4dQG;8}PPXDaYHu>LwC-j(TGdn$W||L7vyO3;wHH9| ztgzsE&yzNl0|Z9yt`++9UvuNfem~RdqETslPVwTL7MQLp18w(P3;d4WTKYrVB}@VK zDEfE;60Gmy`*S@3cN>5HyUT7&hE+;g3gtn9Rq(S$DYnF;&7L8Cu0=h$S+1?agx*$H%6moEVMghMmuqm1)r{$tDNL~_ z=daKs%;ZAGDCGg#O6I|7PvGc23N$NfV}Aq2@u0i9LKb~mvPHav25F8&oSsA<51fX4 ztP5%UlQ2t(;nhR3?U`}aA3y2(b%Kle(t5lFGjpv7Dqhq-)kL>W(fCW=G^7I_>D6Tn zTAj4eVYD#BVfD}zRJc1$M4c+Jp6tk{v#`y$Oz=@#Gkt$5#MtwolwN73j>91xR45u; zsm;rv&_dmYBT@M7`t+9~Llm;l}kU2%HudmBwK)kwY@UpegK zdp#P59`P9gs$gf=bxcte(o;GIrebCnleHVti7`Ny^~_r0@QgqG;3%%cB6fU>Yyy{U z4i`ph&2Kt6kVaqG@Q&MNGJ?Xve)GqL--Mr!%gW39Y_}r`%@6~gD_F5G(8`teZU@)=1wo9m6NO>z&sg=ecpF!^ScS0v2d&j+u)lZ6=BRwav! z+?UHFGNvzzzpSAr#$KvZacucC4CtJ%EeBK04Qa&Q+y1g{Q$yAgI1J~wDIS` zAV0fE{+et3a?`j=z-}wq=6v27)wKbeB}_ zm^n@KTpKu;?GQ|GNZr5;!(^Pqc|%u~F@7j3@{IBQ&OWmB(|s$Rn06r=r5w7Z0t zZ`BbUgL7Rx_9OH`X2Gt-c5SFL6vQ9&%2k~q2xpK7S^3G41ZCyFR=IdR0 zbzNp{!NsA)I!kaGUGBW6zl-LzF2s+3D!T=TKv?)KdW=MN(0k3bq#iLYD{o<3%scoy zP`V5mA6tgpiXmBLF3B!y z@>vYXJ7 zZ=&n(%#^_O(pwK0F%+iGsJZmXX63-7(-i{0@--z46IUE+OC3Jm7s4ejDqj8OKx&H&pK* z%gvoQ81)h!XU>Q%N5l#zXTPgJ``~e;0bwe95;<>s_&ERI4SCOcoXJ`>K0!eTT&%}8 z!&&eCJ^r}{{w)J7%yB_k>!Ss2)@xy!!br(ELukxeYeP0+66d+O2c0;d=heu& zFFi+;{ea!u%!v|l3>?A82cOfQKM#t;7!7T1RZ86(OEnSq< z!7K`urJ86M@6g&RjjXRtev3Vb$ij#UQY;Gl+=aIE0N;U=nuCFgzmY+;OdX&2AO zbtUJQ;9TTNJ4$nk=1Xp}WRo=X%d@eS z4L7vnmrI7B)9OZ&s;ig5X3;Yr$Aew)(kE{{KU4OGnMhlf{+~Do)_U@ng9`QD^?N;6 z92Sz@_~R@dlc7~Mqu{6m60UOQ|h0DC85buK* z$JNgWY{FejX1w7q7l6DW5UEfzg3>$`?g6)$5jJd}MEi z(G-Qlnl$g>->cas4|&w$XTXr}I%(NO;}4DS8N+V#hE2N$vaUxeM@Yy|%6bd;ocY~H zuH8O?U!?6+p@m`#jm3T?8Q2YN;)EgeHD%u~9?U2^x!PXb_Yl0l1Y8H&RfzcIVD7G$ zfRI(xtn$ig zt6|8DK3lg(*iF21SxV(o~kIl~=w^^Bgte>43vShx5F{Whnl;v>Xue4XVSTue( zNMBbEzlT>itZ$I94{+4A2rdIF65W!WpaUxB_r|AH;9|%De##?ih%7h`aVX`eSYebBM#4_joBm? zHp>yCTjvz+T*7euY9d)BZJsQbUYZ7J4ip4cYPlad#npuz>egNa0Z_9^`FQfZ`#}}Q zDV+JZ7rwZ4x_y;ihupY6WNX`Xdn)vV>1-4i=Gjgsw>M4Y>|vnqz4J_*91lK05_gYs zO1T%$AiQAq^j`??%xaZK1yWIbLzE7k`*1u1KGkfgYgMU45EyH@ZU;qhp0NtGXU5h{ zpz0vt?P;k@#oq@AgEF->bdhvS&%L|`d^VetgFx$)c z0wLEYZkI4OfMEz*VRx%4=a}`MuKWRU+s_=^m=>rP!}O<*Y>BM(cM3W#Eq-~^!aEp8 z=xsfot&}j+=liBW0|F@zQ0M#WI_Qz88IDg*ofGaEynAdGybJg1E(j`l5<-~Y?4_4( zTx>l}kO0WyKV&A=z^gU6iWp?YikEeo_!V(#QyT<7Mb!IlhxHx^otuh;jWo*AVfy=Yq>YTdsG z@G>dC4RDM9MbKU4zr?KNbTJ|aum4utv>g#blB$igQJ9MV#3IqTE(ox9_{EI=ZcB_gWDhJj$1DM25`vL_EJI zN`Q>s!8#zu;2K!}rPSen?hZ(*fT3y%)!N$M0Y`iJKn!G9FoBN##WRwW|fu?iK ziA{Ur=UQ=0v=Ykq7C*coaTu3;pEW4L?uOIR$c=`%!?mKN5^zneL(|y$lmiR|YAd8y za*2bb@8C*fA72EwJofaE8X%NzZl)HT?hDmkTxC0H_1YeuC6)K(F$=ruU%iA;`TZXy zh7XXu+%)2XRPA}?oNJq#)*1`fy7~}OlG1G2vMQ7k ztrA^Lb;mmrd?%_JAu11VTbhrMPo=HOO{Na|m7UB;&{bm@j$yA?JsQNw+fIC#0%AZU zu<8Mh7(UYG#0ji^1$97TvA4H(xCR0(L`>=y*4?}bo2;~OT>{R@`Qy)PYCX1w_GgO` z&VxX7aCfYfr9?Q5!JpRsI3|f~Nf0P8=CzxpNcf1s%c+Tkb|)DSs9Pt30H{DJ2yy*a zX+R;oBgP+#zE?zu4p-#s)V^oa@wGGZ>$^n7UOPI=I;aR+k_xp)+Ee ziI4Hz5S+iRF+Y;OcS15~sxM7iNqPNRZmnBj?e>Oer??i($0StnX2h#b)WFjAA`*yB zT$KCOpm)Xr0S$eFgE?G%73Lpm1uTq4J<3O&E7O48B`_#rQXC&P-*J3ZvXAj~_+F)tg z#RzL%f?uDy#abc4sDzH;(I|(_g`M1{{ram#ZI!n|n3f1gr)?Gm@x!T6HZNpY3+2NE zL8EFyvVbiOl5Vn_tO&cttJ@0$mTbHJtKZd%xDW@biVMOT&A;rS&{f%LTI6i;D%_c7Hodf$GPHNy$-a+ zwHVgH!>@62;@o=k!@Iv1?wgERuNa>|gKMRjSjelNPsiMn-J3?+BIKd^arm`Fx-~h| zQt4ueZh%PBE8Xs^ri%Cwkd_4x{-y82^81rD7$2**Cd8hNqpNP z&fvb9Hr&bJjD%FbRK5gkV<2V24^?I*Ils%kui{Y?J<@jhBO_N>2HG$8Nlo~ECQgod zVcrYMOR1M}riPXn$upqovgX&ICzz-W08PmCRR^iu zB(+s&kr8_Pe%|BMhr4WHL(U0tEs3D-Px&7e66-@Jj zrv+0zU`76~S4XcfiLEa&Zx3=y(!u0(Sr9`a8-AYZ@|&B9;&z3ESMYb=jsmhU&m1wY zy8*fT5)1Go`k(J}oBhO>{)dA8d#&a}IsDYFsfn?b->q~EQGU*vNveGf3)VCq0!ZdqPcNLtV zZZvE(t`!}&W9+)(@tz;|XhGNWCqoVzb7cZFODYN+2lLZf50{i2w5)eO%zdeB?Byf7 zf8i{lfMSH*D3{;wGg=reXfb2lJpN{K4rHvsq1SpRK|aJhY*R|ep~`&8kG`fJsU7w9U6Cq{0( z5(k+FoWX%|u-AKk#Cgpt1-2@wmRHNf(4a7*_{zw*r;o~>R-=3y^-f+wn`9sprA!%u5J+N|ZcfKybpixy)VUzJ@hZVO z%3g+UM<$RB8oxZYxlkrTIB6(i5$QS)`mT8Q_L-EqBa|hfrLoghB#8+`9)EQJ^hR@U zsYllCh4-#G08=v6SNhIFp@z`VnC>C<^y|_B^GbJ#L7y${*5nS>3}m+{Yq^;DM_e!H zQ5E#yhFv6S1Rr)+g)OsHrf{U4%kProq3(wX-2O(gMzyY|5pwtM0lPhI$kc@X+Laz! z3WPPG@K)81{u%9WA1Sb1UOF+!%IlYnWBDWm4HP9hVkf2dByxhoAFjKkLhbZBNuiUp z9NR^=!q)t<7J02FLjpc6MKN*Pz^A3Gn@=jKDQ2 zY>K@0W>oOWn~0kEIg%~}*6L>SL6(8lPe#VZu(7WEC%$+uEx0Hx=H`?wKKQCsmgRyS zE~e}F>&3xF<^(-93CcL;;}DZs8rz^BLM zgO$H?%Pk6Wc?7yL$uWo^Ee(x>U+8ZHj8P_VU`iJ?YCFm-+;4fnWo7umL_(HcS~;ep zsc6K_OH-MSvYu9LvHKZpW^cFa<@S@{W2~?L>Cc&6R{LOWS`O}9&&&&K1@u^^FaiF6{1Q4~q|0vR3TUnxDJE0QX{z{il(PwzZ7&ElD-9Yr)=A&QB|>ve z))4ENv4L%05nvbNd%Lq3oMhHsdhygE@2IEL0mMTetv#i!ORbGmvPHduAcDp(Bdv6# z)4z%dP|eJC9A(l42Ej~Gu=3D}f%&fyr#yOp25vO^{+xJ&ChL#mN>B&=EoN*pK>C(%z zqYeV}5GQw?y}-f2?w;%igF<=RG0$Xu)30#q#r2X<#8e7u|n|@iR!`0Dd*KCnn z`)=bkVw0rB{_~qccx%5vOqy4yZdLt>`$kREK&u|g z`t$X)=QY<*SD#LmL?vj=#pIyzXU0|QP1lOqM&)n$vnj~+%A*!it&G_T7$yGgC|Q)I zdO68v9Js$wC-LxxW=&u1e*c+A_ZIfb>yckW|Zy`8rvWvR8 zHhO#mzovwnSLtgvB|d>mXtfT|>uU!G>K54$Ss6SNz9h8ER)&7?V|wq^IV~r-XsMm4 zg$VK~H*jEk*)|he-RAb$2-RS$-v?vy-K;h9$_r_l-kS<|d9IQ&cXmcDQAoMaa`#|i zva!hXw54t&Z8`zMK4BX=CY9e{F+cgam`F+d7T6~;Vus?1TiTjBiWTiq_bgbSW(5<) z8v^UGq#7OI&P&#VW3mLhqpr}e^W+f>yB2ZM{TJd6J49LTV)OrerkClYHZo-=Cf=$_ z3n|l4B%qHT!6(^If4*y@=wwZ8*th)ZtJ~!CBw?71$@Gt6=Psbpd}2=dMwH`4bnQW` z0@%4y1RYU44=fbH+71lJSFa9ywBfo zRr4#y7Zcp{nBCGNeW3jl&g^o$_$Ph@3k~33xSG_Ov~SFaXBPUTnzyQ72`!An@+E@kKzr_Wh!hThF8>P^Bn1r5=1StoTfY z(2?j|Sm-fupai`vcK&ArR(WCF1Yn~+_Dk^4ZHKH9M<&qSznS4H9cx_rrsP*Ju9KBw zUYFVcu(Gg@sukYez2ZOx`lUGxGd|NP{?(1i(G0OOAngel9%>`+9RF}^xm$3uiyiS_ z?&@a*eb*c*B<;_4EmF*e{wz0X@mZVbIWsi?UWZo-?Sx{jj0LRUteDoN-v11JSP{3M z0xaEI8CrL`ngitgk#L88#)iYyFFYJ%n%afdW){uYAq(}mvyMj3kyUzm9lJ72CGtkXjxe(yc zUq=h5{9cs9^!GOL_9Ni*i+Uc>`HQBtXA&$R-<&mo68oQ+-RaTvgC zMAhP%lXP;#Q9A(NAp_m#0x0?W;e5QmjC)4XiXOa_2^9A9$A#p-YS;pb4Z&B{lAhS# z`c=d77?pbFgc$)AeUjJdE^OM{R@?n_q2E*On6CDM0?&h8a*a0M8~da3(suz$l=m#u zKWBaFtA%@A2sx;22Q6rok;1LlQ@6JRtmbW_*`RJWGJTgzm@m_8K})>bIK5f^IKPm8 z3^7TiR*79~@&fYvCmaq`VNVsOEIaDdjtuGl)Lhb|`=B18O#xkc4|W2=qkX|IRV;c1YtQ}{^ocm|9-pZ^AmemkG4=Yj?64gCpboh+KOc0rfa-7HxPaT-%n%IOiUE8#XQ~b8 zrX9A?XJlf+f#}I`#@9ih3z(MRreo|ZDbM6p%-LiQdj(A3?y<4d|N4%*&$T>|Hy;BD z`g^%cKczRDInD%1%D+O%e^?}Zqw#pNKJ&xoZNa8(tl%YUR^U<#+zZvRf?e6vy^*r= z>=eAb#ll@@q51Z-Q$sgmk@`vkt`0ZwsK8z?K48>Ln-$-ed8|Nr^7!&21WI4F` zOV%h?SWAtOxE*~Ow7!9sb&6zA;|r;|E5Xwk0V`O1j*RX^ zS6Ls4Z6~#4MI2J5>1maQ7dq6G>jS4C180eZx1`6p#BUp3^OZz-2f>|vk={Vioi@Ve ztl-*2Mao&U6nC3?aSBAigleSvy-quIhefmgg9%O7IHG0JiPCR7{HUse- zHIq^sBRHn8XP+ouEuQCf+(zDtM#y`4wAWa{_BKdOnC31*C9-)ia~e|r7VI28YJXvn z;^JbyS{|k#sIKF%YYKd!JMduDxOBZ*OICI9q{6|k9$-Xb5yJUbOKgQ7dCKb6RxS42NNTMvcth6U`02T?ccwi_ zHu-2NFjfdPZp^E9GBka99ILKV(RVNRg-k(aI!l}fj|4>VK}y0$)A*mVKcw(NP^Y1g z7pAO?(j1`(ZU;khh28PVN#sPuK+N~Es8g`GxL5-vxWXE1nq+7ZwLoWx~wrONfe_=573neqF?Ow{y91nxNDwTfu8%SygW zQlMA)wk(V1;8?Y`-E=9hRzG2KwO{->FQzYND~NSj_K0X=ZQNm(GcL}RftR4*Uho0m zq4SSjEO1L^srB-e-ae)-Ew&C#>E@xrP-fkhWKR>~59`j$G{9`&5L$WJu!- zo3Bs6dlCsVjX6sAI8DN0{4=mVsE&n`je89E!I7psL%QJydfDSwG%grWeYi_i;0<*} zAjS_^c;PNWc|7sKvt66EOCihogAhYxOh8WObc1^_{e$fcq0n`s!Y` zZwSy?(c7*Ggv_5Q?0^ci>mZ1`t6DJ%qxlwWWmsMy8)RJ4SCZ>;t=srUjl(!f_)V+{o90If^G9w^Ml@8W@JjKiH<%TTj{MBW8@+938?1cOSuBoYnK1 zTW0YGmMrW@e)U2#Hdar^(k5ia8=(t}J$UE~4r z<8br^pKH5Rk-ErRrc?Qke6?X4DE>i{@F^x3@3p?(x%RBkOJWqAxpSw@b$oVxy zFv1h|SLz5-h(AxX9+mI;@_&7_GvPp$16Hcn?TKJvl_i@Dl{tc)X<8ZvZ`Q9gpf+af zhs4wNT0CV2iX*{Il|kWMPS`;<);v1r_4?4#16!(Xw(?(i0qHq(*#Qi)8EnqbnzGsA zJ^S&w@CS(YIzBqvh7tp|lDa!-6`Hr+?3}X>Wb?(OVOjjf8V1}}8Ac_#J!4<0kW7&L zv>Awu9qfF>PV=`r1CQTZOE(Xz6YMr+k^iDuFHg~kywhf7;7y*U0x_%Y^mx7 ztk22qR^Sx9(_xnL)x7EjP+1DA+JUHiT3Lz5b27`^eO`%GLxC_BsYdlm;bd)h28}>L z_^EH8HcKleyFOmlaEl+8=w91ei^oX^BNlx1;1~b=W{8W-$FGcl7B8A?0ssVRk4fJ= zk*e}WNmm_rb^B_cfOxV??gAAIdG`lgmJ)Y zESEN`m*4F$$EF3bQl2401@*s(?Y}jtja$B`ks)qg3AuCnQfKE=8xKh%JQkkb!&QFj z>Q+h-yQs1tb2Qv7i62!`_p1_)x=S?>7u$y^0qgB*D5d|ApJ`D+?;KvfEF03a7b@@7 z8o=@s4Zl4bw&Jx6b@$R+k{ppRGl83>Y)amS_zkuq5=r7MJfvyCHdzO>r02=&<5Hbd z)^zW6-ZOfopwUB@d}gWae(@y~!DNh>+XL*hIM@wm886iV<54@uiZNeZ^bSF^QLo(F zE`E;rNZBaQ#8=56=4vL1!c_S)uMJ`Nxs97~5sv_Yk;*C{az1jVfaxl&moRqZ{vLs@ z{n~r%Q!!_3L7hXSD1v13gZ~zx77-quh}O*#9jwS_+VphEzKON_viUWgqFm&6J}uUe zH*dnLczHxpWMFgJVx0GA+Q5Ex0II#Yz}l)Jl`QcxKI!nNS2#{o3ck6Oi};y&)eJ&G zEX~soPMG2u8Bf1_dS);I6-GDjO_+HC#1*-}|C>y-DG(XrH$XUKa}GEvM139{2SWfWmkVdPbZ`#eW}cQWr3 z?Hl*$dHchVyV-;+$UMRyTP>;+kAD2M#Zlq2*zxj>-?cG4El*@s>mu@7!asS<;M6Tl zKlM+nwStb~Gy!XGZql&bOUvjM$=Vsa=WDY`M2LEU#EzfC3F|ZT>2jAwpM zD@4STv7OwYon`GOLFbhJJ`rG%C#C1g1)E-Desrh5zn^gIIW7SM22aA@#Ja@CRElH~ zEjfkg@g1y}_*2w-RrIA_-XI}kG*VKau{=5-M@P%#rjCW%(zU9{vR7AiD z^$?F&zT5ptx@c&{oH!=u6SJt(WWV|wpCdlWM=30QW-6iz%Z=eYw}x9Og3V_nOnnF8 z#9ZU9wfqT7FxDa76?@MpAvgqb5il_Ui|ej|krDUl@!%<+fq}tUW)J;C+RF6u-0N}v zY)gB6Q>;DJ`_);VX9b}{~@AB&#G?TNK6AP#cdV2N;52=S&w8`ekZfsP#0#fZ6dgn!6 zt2pUAJ27|)GSo+#brQ6;u$vDZ)TlAS9GYc03m3fOl<#>-K$f0g(R^@LSaiknOsPLe5UK zxO(KH^{i(W5JS^zg+KI^atB=b_dfls2s4*3;O94_bCs#JT4IdX>~MOpf@6wGQVmVq zVddS+46Hb1tGJz(pGoL*X$V(pZ}fr&D^(BK*2iNWavvdn2+p4vBn0!Yd~OX;LL9G- zdDPa4W>W)29v8O534HK=_4*dsnowsv%9pJ`&N6u3?kkkwxV}7Tnzg0ch72CqB~B(6 zh{y`9HF&vf?UW#f@|T4*pbZt$@J){NL}k7uRM(Dw3Ve`|E9fgA!oSG8(khsj9+MBS z;_cmhbMD&OTBD#w5&@I)7&=;_Gcq-Ge|dJ+MR2*}fDp(`eaBV2HJXdMS zEa|MNG~!xiU~q^ZDXA;07=#~4i_j}ez0v7@;%c!vo!KQVnRRt_9&aKS>>=;rZ04?^ z|LrWK-^^k=-S0Z9h|<*2iIds-N$a`)$GX;@vL;@CPS;&BTB|)>!cKbbnU~vBpD1o^ z9=*bCU6jjpo97?=jArMlCUw8>%oswgMpdT@B$)5r+tL(hbPThm5++D8V9P;=SvW2%_`&ldv<7uiLmOYKe{b6;afKtcCQvo zOitcw*Fk)cG(^$gH?%)Go|#0J{kWg=Q@f^*qhs`nYf0>|K^@SYFU1%~jI&;?#Kt%o>`s~Ap#*_0fB2Ymm6{s4foKe0jlm5OZ z9yM7DrWm`o6&HA$!CkOb7rnOD($G60lqU`g5cj37jn_<8a~`x=pV{WKmkwkjl-|`JyPUHC?S1+&oP+vKVSWi>^24QB>;9jY^&Izhc!gcowVQ_-_2)jrR z`b9<+Y{KuBrLFK)I+|ZLzpq~YJ^ck9%h@woTXAIP01ah%x#Yxo(p5#ar>uIQecnzI zJ|n@X%M-uMY{vdvji?@cpe=Po6^j+I^dEvD)n#n+ONWy)Vm;~Mx!tivHdcRJuq~5j z=iKc`kqfH4+!UAi1dY@Na9vMya-orm^pjOoeY(u2au%R1Z~sljdB;n1GVqO5sV>5wK*`RTiRIpwhr)RBF7J&} zN`jXuHfbk?3R~q~(%uN6LYHM9PyC?M2!SM7*lwgJt;j8H4qQH*c!jedp5HrEb@o_m z@p+cg(E`F;8hX@2vmKZ5aq{9QNmQCwpJba6W=`QMtSWUJnho12}=y z3cjG(qy&e$7}kAefLQu;=H|?j>RD4A!%2>K)tl!ox7`Z7_V-GDKOsrAj)T43qk@@Y zpfFw)jLlh&CjK*E?p#RYk-HHmC94)#nI5xa{!MZ42jGg}Sg&e1NR&C*_aK)5nLkEf zbTumnd!~+WHkw!lq_GZu%BdMh%Kx(XTZX=J$m?$o=;#NLEeUXOuqVij@XGJE=Fff5 z02z~^CtPyAfUC~zoN9T5#@2%+lYng=DW?ybgZ)esk`ESWX$HKkUp=DG>X1;Ud;1@9 zDS(&ddhpspc{BH97S|m#P(;S!qb&G(j1hl7Bi?S*bJl3Vi#W?qoZj=Oz4)Y%eN#Gt zCF95Dg`Lj0on~*OEJajE1m}MjF?-?Yjs}a6rbA1~_c}^^sJa5Xe%>88a8rZ|ZDir|{LUojMN8t>5K`dZEEf;Z zSz&mX4+G8frk8bV+jJ&LP z&iFW?n%)IKef9Q8I!UjkSfKW=_#^PVxux1;fxz|t$A!-S!#e5zFMj?{?X};(YOf>x z=|S%l{%v9f8B3v)e(U!wI|KgP8eph+czH!!U)|80ng|O%IS!C^JEvf8U)(nUBn1BH zTg^Bydbqb{Ki?VWQ1&uBBgq^{HO>SREdU!7khO|;Kmiso?rJ_Jrzu}(9oer6_>AyB z_O_d)<5M%PLnnJxp)Be=-i6jVg;d}74hBOl&kSl{FqlwtQeIJ!M#1X;-ST2s$Db0! zqw)!Yo=@P)Cp409F1gxwL?CEJ!=cL&*D>Or8U5#G{tXhF;Lq|CSG{JUk3M z+lysG0epB=YFXTJCOEQ!=-P7#zpK%hBSjJS7uGp*B+x#Kq^Ght7;QJWre|?6ENH6) z;a|Q)Xc>xSa_Scc`Qu{jWLV+QqTSM?50s#T-#So_Lc}0{wFhjErSzzh_Iq!D!#Wp3 zfxn6FSz;=>tu4w~@-(E5aV7z4%CS6v;Forf)gV>oECT*>hb#JlA7m?b8ZrBoq#4NC1+$0rx#BnCABr@F9N*vJz;yt=LJ$Jp4|%;FW}9^Xju z)`v)0qeyU}@_(=Oe$1X9w0hxSz_!c&4>TcD?E9*kG)?(K%#DHP)#;vG-oYWo}&20ng27A17)jU4=t z`P>%{d=oB%NqSt!+SmcAK}2>0;8F!7KgV^xYQ_(Kt8;W!^Zvk3se4xq ziqBz`5xhK)M-h86(e$!&T=o~*3C+x|m8reG%mzC`uGF?bwGcET?rlVx=gT&}qO8OS z6T+Ymvsh@ke9cQA1$HO%_RLOb*ZFKe4#}S|3fNEeuRUGg*2G5ixa*qEl|GBet zx+~*#*B%GRsLuoeJ)i+?ah#Q7s3-1dr{s-{+|02{yatIqFilIyw>2LCY_zzj0d zhb5Xj*7M$ts5sf%XthGbNkh;D{2U`r=!BjDwB3=7-p3&F`hj-=hA&0#)N)T2 zMMP!>uI4eltaJlv4Er8p1i!uqEO|a9Ck{zVCu7^|L##Z0kfZ6*yM7zK>0-YGBpT8; z)1?=ycbC5fph=Edo!7=PWo5IEYB$#McKy!1dnay(eeV15OPs6Lo4r>{?%6r%=m&m0 zqx;>3&y0#-t_g6s0f&${-)~fY0Ud+7YcoYr;}-$M)`jardn2|d{ZgC5h||{#S0~;RPtG0<$7^6na$Ux}Rh@ z&1A`fHWRytEG42PkYAs{VUJ8OZ)eWR3Yll^2bZ}jh>`+tN}GuWJpExMK_skRQZ13TlMH-el7 zHY(0`8Ys+YU{%V9JtN8ZhY4${Qhxb5;a+JVtc$baT)>Cf%iU=-UXAq~z386mT-Kqy zU**MIX=zY_0d%ebEmdEb^Xk8GM!g z_M1FKalN~7_C08kT>1lQ25g4rfUi2lSvv~CYd)xB1eL0x73R>XS&!$bI#gW~(m^uk zJyqZ=9^ZjoGj%N&|7ii6`9ysWsoXbq5{z>l+H3qjlmij8D$38`Haf{WfavC`6HEy9 z)Qy^$toq<}%YAC%SI`uW(ifU45>Y#Pw4Rw^JFDq)WsvPC{c1p4MeD9|#7?D>)U06t zJ#&n8V^G3X*+<+gOLFx^i)OdT&f{fpw%aW~K<^@2el-XN9U3V4RjC8UBzsGlvX56E zRh3q>ydEc#yE5*KbphEvhtIW&O{i=$?awZH-F*+7{KLoZZw6ZWtsca#GxgV;Xea#a z7sAuP%iqWOa$X1Sw#zg33p1CJlyfj5*lgf=v^9ou!1ocsd#@xA<_grb4*cGu9fIU-!5Hk+}m#nz9+q?8Ei~>M}ZLK*771v$i8VvXLd+% zk^B)l=@pJUy+dL31@YBO)^(;n^S|l{tPb=(FR|ZtiPW zBFU{`ok5B-Kn)BqSLh9gRu(iuc8;*naNSGNQ#;@a6-58@YfcZFJC2oXK&MZ&(T!k#!^1jb$^Uh>*K5yw-3r{toByeIkL|3$37OqxM=m79sNRjVPc6t)$QPCT z&?B?>Y4at;f9KvUxncJ*S8Cd}GwKXr%t)B5t-dEg;+xP6b z(6{8G(Im!+?_>^IB<}w>Q>6Sv&hwwe=fm?h*6zJzvgY}jH4)RUmaaRr*Wpsqcb)2E zhb}8J%Fns2-L5TvMrcEGg5IVr?Jq7XvTkj!S?}>*$SY{mrHO%e0)wWM-uaQZ(nl`* z{qqH1>lbjSR!=XPb0_EV{b$d3gjd);+^O??vBQ5>(_4p@_qQ-9Ec*2B<~4@3Z+oX{ zMcj6i3XX4El*)T;|L@G*J!_rQz65WTnZM$xoAss@zvj(3-@ZSt`i|$V$~|^7iY6W1 zZ+0cQbpC44hTDA#;KOzFWm%Wln@y3L>8!7_rD?k@OZ=Mqv*u4_PW~5{%eyvNX#QEA z<5p+xN7&r$BJVRxjT7t)x0{MZd59oS2?(OJ1KX`48NRt32yP>kQCd z-1{8rzj~*ZF{GOawLEve{eD_~O|oY1jYr3BgSKm3&R+8P_N~LVneRh3u}9ncIaI3sF-4WgW? zk8|#ZJlXZZ@Ajm{L5b}-+vi^JzkEkv`R%n1diTB^zre6Ae&5v3H!cc=SPS{hexEu2 z^Tcme2^WheW<9WdzTQH&Y#nIHfd6UHtQ&qtiY2GSEAC#%N{?H+bKBuhmkyN~1-#z) zU2V?qLNnFoO=qRQtZkU{(M^H-y`3=oY}LfOahpq{I?j8!N1Y6lViwWcBJQaoxNYOD zi+wHnrxK-KhPeZ~c@k3hK0pQgH^kZ;;=8@@I&ioHxEKq#07hgcaI25q61Aq|#XVR1 z_J91q`c9d#t#bRYP`*a%&{8;anU# z@wJjrU$W9o6!Ca+gb`TWfH(`50x?*ooHm8?+T%M`2MbFs?S%RS&!hWoVV zUR!`RKGl2@1Kq?S0`E@Kw3BT1W&U;0`q4i>KZ6&af)5G}>%N|ZsjJG7U#Gba0)faC zrmK!mfvPxiH|z+Xa{+TDN;0vAoW7ohTihpWKB6|3he&q1KdD6+G+#K1ABlf1qQ z2z0Xp|3lE_SZEFcC2}dedamthjKh-pXz9%S*dd9AXp+GbQXb7mLap2Gd{|oN(HaYOod2OB+_z1n-E)0C! zV*cO=d@#yh1KtlL{rOf40SM&(;E@jzaQO7aAN>2i`|#g>p$b|26EK$=6=L!>;bV~= zHqt9ck1Lpuu7Lbi9n}*yO}91{3yk}r zXT_P!?#k|Dpy;e?v(oIvyGqBk#bsQ&2uf!qXCKWXoAKhR zEQ6NxAF@elhA7fO$<`)!eMphs?)}MVNTN|rBux|({S>NRM zVlI^1yPBMO$W_~PLzz8m&yU&?Y5Q~>N_q-=zKNEoB+0S_$rD-ct&%yny$TzYYdOk@ zrQd|9%-GEF8p!(YJgvOK5Oa_3@tTs9k7@~9f9cA=XY>RgWuMa0^dPrVxTtki3dAy> zyD-$TT+UtIZUP0D$rw0Tjg3p;DgTc~spS- zYlJ;ckgkaovx-xg`Uuj+Gze>dGVP76&mW1TiQ0vu*Tl^P9}QPjsna;vI&3YExhTD& zksapPZI}IuJ@`UVRbv31Js?aq;<9*k6Jths-k@82{QTs7*j}c2bd8b$ue~E8Ci50+ zv?Eq;%8F#g`^Yq`XFPo41xWt=2S>&wuXsax-Fv?xP1A^;<_K0BAF@zAdnBqYsTps) zRs(?}!Fo%}jJ=#tv7@=(!NaskOIKbGVr?xd-HJ#R#5dCEd}Z^AM9mY^qA1El40_HN zo$(S*k*33B6QhJ|BB4qJDk7A5mJ@{+)5GY?=jow4wAk;=dT2kzinA)F%bCY+RP6jL;1{0Q(&bq z0f8c#iBL*0BLH!mM7bZyCU*R`5(o0XEB)uH|J|?lwKeE^do0SmGmMUeSk1)Ic94LP z3J5EV#6Fkd0$(d2ohbpZTm!H_ku*D_50Uis*LB)7b04NX&D)Qn1}+Hx{%h>1Mes=D z>5okAmgba(Eme4~MTtELh~+5|wOB+bTacfIW8-dVgY7Qj?ApB*aMe@r)Kl;!fxkHr zcKlhYY;~OeJQM#=VZ8ofi`&6tn$P5BU(ywjynDJaJsV_mx}KefM^8m1B3~`DJVOGy zwuh2JDg|_oH$y#eUx&H9y{4)WU|*O42QJkT=&v-0}izkg2^amoL9ldd=?O45Lc zE?|*8Qo14X2xpI_m0K8ac8yjW`6eC-Z#DASB&m#;drjY?MmxP0X!>krH3G zLwFK{|J`ptg*891v572v=6Bs{KC)f>8H2blf722XHD%@^~;p+=M+VVXTYd$~3AV}oN_k6EkG^$+AweI|0muaI`>+=CRz3++G z^B!KQj#-ac7=k$WCjYPVjysr8t=Y>vv&?&-L0zB+NSEgn_u|C!Smk9T8m_8UQC5H} zk8SElkaA}k7xbX1JC1Jh-jo#L^<05w)#oT5iA$<3k;PTfO`6J&C`zEPic`b(3~BI&ze`6YfGy6r?y2WK;g6 z*yDqqPkU?F>PwyX#Y?HlZnD=4o8H{m`quT0-&l z=jepCp?w@89!=h@sH09^b(;t=Vc5_MyPR55<_;UsaZG9mSt zaRi3Q{|XQl|AkEoSGdaDR=%5DYL?nJ-UOL0+y+n#ZC3WH#}!Oju}u#RWn=Txo9+;A z7(5Dy6@## z(}h5}0Qdl9Wz1U173FY?JRUNeitHmy&`phvS4{ARWVZIv%j;)%2Mf7Fm2_4U%e9Lc z`6q}$MW29Sop>^H_QnF*Cm2=L6@o@mC70PAebUSOJ~=@1QLg@2W1T?y6CP}>3A%l= z@N(dlL>gq}XHT=FgN<(Z63JTtT_uevp_m*^r8BNXYd<0Jzxy0`@frz~lSQ3gvG%ii zre|b|SuY;TJai&uti`|hL8|B+9~YNg1f9!djlIfsI-}JiwqASY-h#oW$)MZ-Js;0l4x@@lP!S-H2T~JDqi7b{%z`9Sjtux4FQsEo<}py-1Q~cTysA9K^7z z1bwpd_zXXXWiiEri|sd-R=io%%6FIS7I=6;{^r2I-_Z=-_3`ym>gdRot4C5j88)dQ zcqBM;MO)LHUa#y^hnBN@B|BMed)VUvnjNsZX6{;`!oek1RTp%L=MxG>407cJP*f;; z&*CfXh$#9W2aCl`h&Ps?F$>w4j$Up9v4@6ZPGZP-rrdg*OafHEOV6G5Hin#3d3dB) zmOiP2-#w5Iz|5)jDO?F`Y~4kzt+L4RyDq2c;!8`(nB^j-20DW-2Qe<65m>VuQL2zm zDzDIfu2@x9FYVO$l^UO8#pcr)Wvt%GXYQ8$dvr&QC9X~b->3N3ALdzQe1UvqSg6^X z_EUjY1P#1T%JiHXZTM4VIE_icq~SmyCLqeZN=PaHS~ng#_`8m){>g!2*+Z%$y@C=n z*YFb^*|&-0=za)F|DG|srhb;K3G=}ytLJI4j=Fxy?up~Iw}gVlwrlUbK61R&DK47z zYt3InoWP3M(;vF~0kAp9W#aJ}?ehea9^q3vKZ#IlIf)GP4JylEiHvPGEYA&U8v4p% zdT{*5ExR)gzqbwCO^d9!sw11-4d*Z1f3(8ry)Rt23NgBdI3d-Pkj(6-1;+VtyAIl$ zZbz#>r&}8@QxD&^Huf1wny$Q0ZFMj_a$i2Q6tjfhe};kiP8l9%fbi=#AUC1x9r)Q; zl4J7FYiR9bAbimJR}0RVZ}3ryrA=l~hoLwJa|ii6u1FTQc)N!=PtVZ_@wF=O(aNSt ztg3Rnp%k3GUCWuG7&Q^~)!h_P+~KG1#9&uzIUcgQ?FQ$$acD~v_0dXxlw3GeNh{OK zs8wRYk>+dv{K@I!N=>fb$H@9DbuVG5FL6Be8fH!Rt)qrSb~l;|5R>n7ujZ5M%w79P25Po^w@UsuzH^iimBoD%5H+(;Bvcbm6fyf-RP0qsP!7|3CYH-~t(6B(DVY&7y>_6jY?@OL%q^M!W)i34~ zUkZF4)LpFgU2OEtzX^7_FCyH-OKal*-6Z%JT+A@yF87l*jfU6od%kZ&x4x2iPrpZt z?w>C=CrW>6>1Jy?85Tawhu0r0y)_}6CVG=2*ONvWef;zrZ06UuPgEuGFxQNpS^cc) z3sIR6FCO(wE<}xznCvXqRngP;*#mVaLJ6&6CLs)aa%FGod$@`H7iECKj0Yp9>90Lt zC+gOGD_dmS3z6>6$PMiKNJJ5iR)V{)-z40(9C^|^J)qK*&?dTNiCp<$d&H>J$g|n@ zNoB-64OghHFJz>*DATVUYqSwrEaqX(kmRzXkT+jlS5p{9#0^(^Rp_WWvhdz+G{<)0 zB@JDfqh+r6j|}KM7mjz=GmpXN(;*Es*86bNE~zub7Hs<9_&_+?p;}gTX z5Vc>)x+gqvzqK~e<3BI$DL^a~J*ptnxD=W*TdI^@YAvt{oe=IFiD%g^GuFpS|HV~D zv(ha-Dy*bVgQFQm2jw>*HOA zAn9Lbi?pEFpMsa3(j7Su*_(vNU}(>x^^h>_#L!Jf!xB-Smr&+Xl(g1IR<3m%;C> zaG-|M=Z`SqSG%EHog~zos#c#;J z4KtM&<~Z*$Yi+O^abkVaj35Esp|t=@a}W~}L{Rg~+KrVCVLfKc0s{#nXap585F}k2 z?Nh54$oDf|EA=Ma6?MO^;{<$?ea|-SkW%`bh47NwVh~6CD*>6EBRMu!OHD!tIpbZz z-MGPrA#?o<+)aYXHDsf4gfi0xz;_09!$%eMeI z>x(%A?bx(MNv#W$z;nnhcCv5^KFIS`0oeZG`Bask6ov>C77^o^MQr(Dr{#3Bnv2nw zoTe^VRowTpWz%jAPQjkvIE8(SG=#E=fQ71Ec<_dcQ=Uk6_s)b~+1E2LE z9F_ekJE`Rtd#eayP&Xh;3A8DL|4dqCYAi&2Kv$SBU|r9Nz2EI7Aiz&0o*rMPnsv%P z^#n1d+-eD6P4;T)S7w#|LJdzSIwOl5t3mr=GCFtL&o4(T?$Z?n-JHe(6LS|}^D4aH z!KZtkL}9-dDQ^x7CS_!S9UG?(Sw4atnhnM;j?Lko8*RWK#FEX^S_g`_sAQ{y>A*jQtBR%P8{?EPEU!_WDUI@d-ke57pM(wz;& z!lPOhl#8qcPfm`+?SXdIW=MKn&4&CEDpv^BT5;F%wklgiJyzc(Au?<2#((co%%at5 zO$sf47&eGsYQx>8Vt||EUTqhS1=KU^>1veDT6UN57}@ZQ_78ffT?qDYTu3ZZ`||nA z4Vtvg0^(U4<1B-KV&Q}1E`Ha}2_mXq(77xUi2m9>-)JU~USs;3+L2ek`_A5f#+jvN zMXY_Wnsj10UZ;k6DAFeJ=&ZXsAq1x8W8U|IrkHclmNJ4%}<0{kS z8qGJdjNA_ktx%ipB_L1`K%@b+1q9j&oKyuU+<%MO>>sb0-BcrxCkX9!86yPMko#UsFytr7D>zh5) zjw4_U!?P)_Le00?v&VjNmJQ47>oENuLmngHS|gCWF+N~w z_?k@ocAa=!kQ?*J+Odco!2Di@xHKmwv&%D9NcXsiBV$t5V@h_1G zEd~P8ENadP|&`khj%k6k>+WJOwjEZV==?1NtquF#l$qYXNAw(B`sA=M7Ei zrn^u%r-z~bF4fhL=H|RUKs@}5mv(dOTG#|M%^!eMjH%*vi<1}0L2KG8U&jM-&1HA{ zo}1I!nmLkyK!bPxe=hk~%_Zh2tK0{;N01?{HAG7Dd**+sInrw*}$&c*Oy1k6fl` z2(Na4yR5EV*)2O!e2H)h^cvZc{@|EfrDuF9eUzZ8^SyVg1S)JZ+Cyw`wEoVjTht9r zv$9(P#h&>a6gU{@jeqx2anp^;FtjW4F1fsS?mFe@;@Wl$w%zlE^|2CwZng{GLAP6= zr-RWIc0mD9Em!9kb$e3ezq!b12YG2!|3sDnoSAh^C?N`-pWfY}W1J32Voc1JJZ-ps z>05A*E45-tX<2m0J7w==V*9>6yrE>zGR+QB&?b7AJk)T)vtpZ8Q?{WAk~ack<6TNb zNo!JK#mxR-Gd(yU?e=^AJ1rg3?H-M!K*gy<_PF-DZRj{vj}phQCq^$ODZgr`mdUSc z;Oscu^@o>UiMMX8F6TL#6w85&RnZ&w%4#^A(k;m3Gxlq>{DLF)AL%4Wl7FywUx}d) zD0rk~^#>v6eaHnd=WoLV7VIz~$=BlV7B!e^!XBXLw-QP3 zV5u}x$1d5zA75U&Pf37x+gUk4>n5GQCjVpA@3<>Y3D@3ZX3*roP?rHZX zQPRY?2i8;=5GS-*)aFsMr#~Di(Z=zwOh{Wk?DQM|BDW{SiOh+ z=4jiORJ-MGn%=GL{p4C>+eFC@g1$2@jX{u!?p}0txQ=1QdZ(paIFgLA@IB&Af6hGh zfQwYxKGyic9ZTo^ernI4dY1!3X;_lz!?I?Kpb30n04OZ%;l z%7M^xEk5g2)Qhw`G3v*mD4SsOk~)O;z>7vs6|dWZY%19D+bOGUgOSOeb8S`!KbfPf zzsHIo3e3(L_L#r*0PPYa$_4V5QMfY9y@SjU@m) z&w$n{w9{r%)+Vdi8>R~jss3*Fa9u}Q9I*ofXYTNRKC2Mk2 zQ+Dx|_|&)HxNzShY z7flPE_;Q#*ES?tQ&ZaZoB%}p#R&Vg(i(k{&e(b=NJ@zAahZIFu^}nlN&`6=DE@MgF z&AUc6Dn9)JRnDs`C#U2db_vH}q@dV`;K}FH$7dv~U3rMxR(+GaNbHL#2PI5^kcOXo zue#Bvl=i=?Vb6wG2O76URbab*Q>DWwprYcs)=FK!KdNP%mLjE|%$r+}vD3f9`;}hs%$ib0W&JDkZ(e=?kS|?1nK=uJ##p`y)(BOqhVOoXG#MXfH+UG9sIJYe2Bi)v zl+@U--huH|n^~C>_#Xm2_C~)({DH$lO40d6_oP}4mzsmu*Nx7RSS<(iva$CP9hb>& z1mt_cD93WqS@2(|J8V0muF5{I`Ob>wW+@Ow$b8=vFTgz3^TzG$)dm~4Q1NTOpj9V= zcDn0056LQkFQ|TS>`WLXb!JLSU~_4wV@Z8Zbo#ru;{FaU zt=$Dvt_WvW`;JaKwjlp?t;s^uB1>nwJAJ60{^@4n<6gbhVf|Xs)l#Ud%sjur{+^~= zarjoznW&pVPB7WRp1(TCnnPJIv~IU;yscW{N23mh-dcP0CB#trY;^|0Usfgc*lm4E zpRBcHq=9P31YLRHu79!(m$L`RC&fJN`z1I}5Q)H##(q(y(+yKv>GTxWW3ytL)iT&2bTIZdRwcI~tDaBfP2h%NZ}^JiPxKX0?72m{U8dYxqp5fmkn8i`9pMrmh}BAngnQ)pA$0Xmw0ZNi$(5 zH9scI>Ng0xjU@Hnzo@S5_)6e#iLf!Wf&V%s)?M)tnHZ`r``2ar>u+y10JC9q(ra{o z%LZuj(`vZ*#aulNzxM|mX^*IBywLg-2JuVlC?jqCYtT{UKb=bj7Vd=o5pt^`I-OdV z4t%y;7&MxP(M3>Y>Q+p?0cY_30A?IOJ#OnMi^w6l5w{DxJt*j%NLga(Brw*!7lzhw z?}>~*RjRPsmBQOo?_63Y3FRGLUF(FmrHT0^zZX5hj(UB!H;XhRx-+WV|TpDx|hKlHM;G zzs_ZVSv&PUdgSrIg=qhUxjlqdIoGza@<&Kwe{!{3*5LKXm--og9Ps% zL-C#YH!S6)@*lkVC3f7|v9$BqNiJ>S`FI9qt*JU{{A+d)KF|pdIEB>-!6KW{0m|D# zB>J0(2plL@`ts4_+T}~UsE$3=~C#MXB>iEF!wFR zZQ0%9{h-St7nFoO$Dyd(W=_pp=3GkxNN1WG6><<{hye2{ zl_}lS!;P{vtY17X4DJR$<$xsx9cKK#+S2Miny;IMIzm|-7R{q+ubl17ZwF}IQ)i(j~ zAoXZwU! z&>ZA=+)lPp1?F`!rrG*OoRo2}{QC8R-x;TwV+|%NMZ;4Jkgfcu*^SUGx{;hCX$hy5 z*_tiM#;M1k=v1IsCf{0~(BfLv_GJm(;D&Hv4pya-viGlXYn^jr)af_bjw|P^(?O}E zmAi4Qh^%@QiQ42DO?j`6$iYq^Wo~f9h@f6(#ju}8t`Q*~{YQL2ct`A?zq4t(V-rF7 zv!7wFLHA51O=GiG)moT&n$;=I>pOwKpNrGrhJ}o-gNZnv)q>1>Vhs0`YP^?TSaln$ zoK&ohbRX*tkf|HNv#>I5ZfPQ!PmD%NwuDZ;dr4eaR@{KYPOf;VNls(wL5!gQ*{kg7 zCXnJvx>pgeTb}6aHf5LI>cFqnV*pN0^XuPWgEf%66fOuOF<8NP?Fp9sf&e7~@X1+t zed^@`%Am=!zQN;Iqh$T6&0J!d-S!;86f?gO$tE)7M+DXc-hbs79xq@vvi;(b z-!!9)>{2@cI4^17c0}i$KqGFrmsZ8(Uk_yJYc;g7Kb9i$(7cMuUN&n7pMYQR8<&Bg{U`*&|8m<~NeM_;o1* zR~x(0l&w5U!51Hy64?E+tEOwVuZ(PY7&#LdS z539ErCiB$`=}&t%^gcrK6ocb90{O2Hvuoes{OzE5o-|qfLZ$p#{-N}Km=}ogJMiYW zfSb{X-Qt5b1@1r>Y!#Vp+e8NMI0^J!WocE@cL+;T%QoXp)4sGAo965#$Len;8Sp=l z3^R!beFKaTgw{_)y3=_PF+`85sd`YfZtd`s?U|9ofRTm2O1k5Tna}u|+1;kNy1C0; z$9nDS;4b}!>P5S6jP*gLuEj1B>(aK@3Z1n=knHjf}<~EU*WVbP{{kk8I92 zCR5$+=mT@l@`=@{SML37 zBwUFhwh*HjG|~RD==I_6OGJ%b*%Ul6Z&2M@#*u8dZL+63xBr6IK9+?@CN;@c;b(*o z%LUh8T`Ob(%RPP^5nn9O;78R%R(8J<)o_Zglr{l{u8y|XiJZf2}KWEyfV)2NrADkfMoiEA-NrlXxGP>L1 z$7o!$e%vqSo1NIrIFTy2jK4@(^bg#{`y!>>xAzXJ>&NMY&H(2)IrMM!hR8yq` z7#~r*1&r{gwzmt>@Y}wCk2b8G-tg^WTR~kFbgCQ80vCDkKEB4JtpiIX$4CjEc?-_u zd#O2Gc;^g6ID!qot44F*gpu*)j2_ymb8IoIFLa(-)03m*%h5C-d2K-YA!YPtL6QdC zQQ_=!l1m5=57${M(|oI&!9MML(=c@?)y<%dQn}jwm6-SC+3sl4hd=4M!%PUX9;MVK z?A2*NN~1&)fObNG(ez5znEg7JV)UknPz!@gbeR}h9xENb9xyqoN>4xY>gT~!RqSBi z8Xf~>Mxh53Apq%d-JV>T~3ocR+>5}L9bqMQy*2L{bZBQ5133xyl#kZ*F|x;8RZ zq}<-qotDe>52S7l16(Tp$$;n_O4K%G)ynf)_NfM?!Gi-xAYcPbATCB=6qI^3BcRdm zikejCGOQzwff=i^jjwtodTHO+78xWhulhz9$pJ})Su+}cfi-EEZo`?~E>;>?3st(@W|Ic`X|2OOzxuyP!&ggi(w`mdA z;uoJ3u$Y!VDX64U@ly?}&g&fhWkv+bq5~4WK=z9`GXD6?^%(K`o+QWSEc#@;B|&$9 zhBSYv>ncbZ3e+sDwX<^NM~UO&A(+X9=H2_jQO+cH`)0!KHyire12K;Ra7;X5-;Ga9 zwB!-tqoO2dkJoGE1T+CV2mJ?)Fy!5wN>jLm@l0`1s;*xv!Kig$U`g_wdsdl>?T1eV z;x`iW7uk5gXBTNx1(pc2SK=gZdxf?o4gP)aTj`9eCA!Zo%53f6N;V&_gFnjJs+b-q zqaPgJXt4VI*!~(D$4+%GwUO^g zhrMFfDyT_+F=p!pwHvY6+>CqD4C5FvXnC6#SK zfITy6=^Tiq7ww-wkWFg;4k6e)>N130kbxINnJ2y@?*koqOL?0!!6%#V({Fvnvw<&z ze3`@7$EW$MR<+q$r2!{K<#TXven^C^T#0&0>!WF*AOFOW-1=kK_4}1{TE^%_oY0(P zD$JhNp)E@3V1q1kEfd*P$j@^Y6)CxNlkV9jEByU@km$09$8U5=<_I=#_+Y2c>+l}n z(8Cw5Wt|pm7E z$h)uH&%jFG{iKXh;_)RU4pK%k`kdxSAh)~P4$(nox5FB`f!Dg(ufM6tgjZz3)A<2Mx8)w8RVC6rt}-2h{>#aeMtb@0fz zUdYaW3X9fWnKanQNhzz$7kMl)t9h!8ML{fS^--1#X%L}#I7JJ(W%6=t%6{i-La&shn3x7adnGbW}tc@LEJ7(hGL@hOj3@G4W$N3li)-{ElM>sby*_UxqN zRK+d{`U_8f9J;6b8S_5}%-1dzN1IqIgh<+u>~H=3+_eS>=5JR5<&^=v0+gEd2Y}~6 zN*3tc2d|wU4e)EbVtO}kaL)H#+n;vyttvZ20xA&=^rt)^Z%rNxcR+~buUIOMKTL>U zBt`|9a%X3oYmMQzm^>V25Phm2y!&EZCcU&Y1^2-6`uGVZm<#jmly@Z|nODf3yLe+~ zS65}U=8Ebp{^9M9^u<=&LS`$={=6mpqXx*Vz3MOMy*G&HR-27DbkA&|LfG9Uj)P4o zznjS_f5RWNq3iTkIl4{cz8$L6B|gLJ6aABBB{#Q{|2u13C|HM`GhPv>HX0fN;s1VV zk^BAQJfC4lRb@*;1gi9Rjh&9ZI+uy+pF$Tc%=`8l6i-F75u|85y`gTNv%jo4>YIQ{ zneDUc_t9Nmtu|{{?7{$x07zw<9$CGD+>zgMdCufKU+%q%piM*r8GV@e=X?0IX ztHQFlShD{k95+thY8-(SWLSPkI`nV2S}vuZ`mbCQKm(qU`+NJ0*!y8&Knh6R`GzZ4 z&*k6L>Ax=pC~j|i)O*hAMVF>e57sN}YMc*f5*#|^&qu6`#~o3B(yrRO)Llp(i*T(b zWSen6(Vpp#`n{;+F!ErFc*@K*Qe14S2;%;*D8T0BDDqO;ZGCdMxf$5GqSC6rIcX6u zE3%&UmtQd%$AwEMU%%MWC!cUHRTbHzkvO;CF3kXmCW4bKaiQ+}^3^6SC$YCOhiwfy z-Icu*;*c2s)1S&}pW+&W0jeNPX3TLKw0VreG%Wvc#!yN*G@M(wZH>u#|@oPL@4V&o5olvw|sA0bY8CmR8cO|BiJ2#bPMv->8nu*BpHWm*vcL_tQg6Q z%T$kgOY(cBKyoM)t2QK&hnlJdxqkSzVGE|9aAaEahUhE&*5u~jkvIESrYpRG%@?p; z6f>Yanpe=X)KPhzqU4O_MbDC@Y?pfGo=Ey1F7y{_By#N)au?bcq9OsU!mDVp`thSpYxlw* zVueFEb2ZHX%EFibDdGJ#-Mn6y&t7UNPVnB_3p8=9SFd#JWt1P|B_+RrE9OFU=|i)? z@|KL3sQTW|sH6HC22k z2x4gS$`HfiF7CZy&MoO7wnlw-Kgz5YbD~rx44i;^yeaek+N8=#I-)gS;;Dueydg7# z^Yk?domaI(>k2v7iA}u`hh&rHaboWl znOG!x*bdY`-tnHEBENJU{G_ayq6ZaqE5ChR#>B7Sne|F$lsI)Hk{MSiJxL0x3DRSi z(mM{%TwNNM8t0~d={oWIw&;G=ZHF+$(k9*G81B}5?Jgr%I8H%aO}Rz$@&uDY15dC4 zoP3q|^aO7fGb^WUH}P6YHcFBiWJLpl> zq$RD#>jA*KXEPgw(%K}?Lx6X%7X`zD3uRD2)82l(%+3m=#Llo{wUt#Y#qt^el$?1Q zap{&pe|W+1juiuNLytS@w2l{xhK zoYZU>p5aMrGL?LxCc6Fy-^~t4Tj{EEY`LEN>=H|mmmt-S57&!e<4`;r6pfaQ*Wos?4Ys3eCfIe**QY1@ ztJ#vxjrCgXo0aQAqT?R^MrdDPH)h`#`ntB;^6775$ER%m@M5>e%@$ja9^&|%L%okSvwM)s09G+wxG~d^ z`Qu@F`QE@Ybsb0JY`Oe_!9AY-DkThH@dDZ^nd6SG%Dg|N>->66JOg$()!n=~>FZD5 zc=-^k?o{)UoGy#uKDXN`fvJ|;>a>E#z05D*jAMD8W?eHV=AH!@XmHE%Aqkz3q}s~8 z83^>wEL;y>CY-OLI~DyLs7_1)QF}e!Yfx%`b)Umt4f7W73GH*oIF!AV+bU9XCGH3>5ZHUPb3svu5xc99^t%VTRrDJ@TQv<;=C;bCndMXwT5HU$^J!0|*I~ zPpA3S8DOF)#MDjvn?zHeXSiNedgCg^fHmrUz9S~UcJvI=*slw;;$26&#h*BoEu;j8 z-{7ZUF)M0f<2g z?^CZd@* zBL>)6@P(&En73ndTvcRb6!ojVuEBjP`Vllk%b?2mift4&2s}*SA1UNKyDqQ}FR?Fy z;I$F9&MTOtOg3~|Bc$AKkv``rU&0~D^|ME&pY~ ztueb{t0HJ?nczFr5KUrbBQO=0b^S_FR!#Y%;VbLWrAFGGOOp08hYlx z&C_>KxVtk#RrG@Q;P+5}IS^@X`2mCM?=I+f!6b1wQo^2j7%6$|iV#{KQ?cpzXx9tz z7`YdO(1cMvArbGb%Ik zz$z@J-<@KB>sc{kp-)s>RSV1tE-w;ZQXN)I2 z$##cFsdiL|Smkcz+Dy@d`L05=9mqU8%`gN!LwRy}Ly zw;y+1Bx1pO$Gc%?&2NGJ0)ea(q!nU{$ynJih-&<%8Fr0th#~y;FOW1}A+V3fAhmh% zr}oF>n6;+T7dqWMCa}y7I`SyvaX=34vPt>?De<)y%d*kRBQ=vi;C}u~{6*3Li|J0} z-dlsqY-(8ddplmOUoKxIt!qY6tI|v^GxvQ)*$Yc`AZ0FW{p$0t_?h5kzj_EQdP>k! z&MCGr>Wru-?O0@|;Iwdd=@#J|*E^7+P5{L9UdYRVC4mNis_!;SuqgCwW`j#2{;Z8gqL4Ze@kY0K^JI4C18xhD+MP zTV+@ktHf7(N{dOMu&dfy2}S#?nr?tV6aVy0#(_gf1h7fUKX?AhTrATuc72E;H~-@> z!&&#l=Qkp~?7QfAsx=p#Zj)rHQrzcXJp0`yt?v?w)7?F7lw^z(eaJcLiqC>0;#&op z8OXul0Lvzeus4&s4e5mu$F=AtG(aErFBjTtq?rRrM zaJnKX?@bx?N2Qv<@Z-dqlCpd68Nujz?q_q^^1hWEYKX%#ryd@Y-yKu%NY07-$Mb8` zLQ;B@n;~}QHoa4V%d>-O*tqE-WK+}J6E`iI*(f<}J!Heqxf8`r{&c4;ac&Rc^h;Df zl7K-vTI44h#+9mMZAsbT)f`W9x;{&z{Mymg$j+w&(X)QvTfqH=3Oi9ut`%GgA9FsZ~B|2JW zSTwlz{G{us-%V!kzoXH)FGoL?;-#w7g=*!!)2 zs}I$8Sgi4Matw;mIOT=4HWL=#53gZY7v*(0>e zNB0&JNt85{R~5Bf!g3VwBPBBsVp(WDwbkp~;gHDlz>=SgRpy~5)rdN6h6RPMz`C2; zh1&{9sP6`ggY|$WtlL9rI5rs91@*Wz7RDaNRtE4WfGc+h7bhPd-Jg5rCPO7XS<7_M?*lI~EWD`CK zF!@L&@}%b*6E&~nLa1#Fw}rTrAH_*X{9OTEgOHFlc#KYedMHvcEcP1oQU5GlKYf0QsTt z$ggs0K_U`hf)my_x|WUBRv2;CEuIp4%QdnEf=`74ZM719?VX z|B54HJ^B9(@0_9t6ol{@1k{_T!NCZ?idI^gH-X;pa7t_-h*u z2=u;NSy*%@eQ2|7yc^iq1tgz3!D;?M_`wtXzYGhvknR|fez=3czYhC2pIByGnx{NW z`}=H5)vpPh!x47?$HIS)OCD(bfAM85EP>Kt&gfn3w`plif7e?97YN`a2Fwz8sFtVw zpED&ns1nHd{&(;E7hlGb1;bzAa78;dE+;ltJTEVgm`8^wk^mGj6!U8F-@=kGzC|`>C0D4Pf#Pv2((kH|_kQdb z(`P#wcRhZUhpdELIG|B+W@mC>^#AhBE5IQAeKTrDn@TRS?y=lJWu3C5&(%5`A2xq| zoVqQtBlZ(;O7NYtljS)IJ3%d~kc5J&HBrk$+c%25g;r@n@9^r^`#wtLAM4}hjn$bS zdQ^ROF%FdZU8=y&y!Z_ov96a`oB(~I3qV8ZOswSP$*AmP|C&H6= z?>7G2UIfx$V#cdcPbfM;U#HqPngrB|=QF>QJ2sdt4Wtb#=mxkLYzndEKgk%5g@7{k zx}JWwfXHp5`7XV3o-ETAEAfZ_Gzf?zIh=;7nnvoA>KM9M2?gR5-(&kp1r6__;Ye|7 zH2lTaujC%a$xE?jv6S zci)yM#&0Cmj@Vcj88*oOGR{e1!g9B59uz;wctjsO2b4^W-MuaUSO-edY0$iHV_z*_ z0|Ps+Gk(*TGo_X;No~wFiMcw=HyeO{{y!br%~x+q9|6Dci{~e^4rxPLWokM<-?&Bi z#Cm=1EwWn1!NJcebgrO3h2W`!B-n>CR_)zc2_BD?jybXr#PiC~2S5Tmt}3wsdZ=GJS9PH9BVu6M5N{ zs3YU@>#~;^GLmyiluP{E%BQDI4(2*C-}F21gBn~i)^%R38i_M-%PZ4ml1&)$DiwOq zX*h4BbH;UThu3gUNn?osd!F3rMIg0mxD|6vp&e|K`#LVJ2sl$tBFYH66h}2HGEWU* zo?7IJqMSrF3@iCe^@JHoiaNqH6n(Up#tEv|j|DHgrKhhk`s3DA)Rp8PKW=CMhvcq(ZxtWp-JLVM&+={IkSr=z1<2}jg9NC?Z2G#Bq2kG!{9$i2})(wks_m< zGf4q^C$qRgOEkhy3A|n^Uyd6=$My1_>R3N!o4M&A{p}s}kgXxwNn=CaC&uFZ8OpEb!A4JLDEYWJJhbXDv*NZuNc9{U=VaV^Cjb~BaK}(tNpVHB_IC2=Ceu! z5}8>_6BnFhu`VaSF4It`iBi^x74M3{bxLDSp!Z8~rxLKPqc1_hzS}%e>^^HSM_1&qOudU!8b_rVBa*rR+K&#io2|U`@g9!G#~IPSp5kc% z#;;N}>}t|G-^oKQckZ*Vb8k_wNnT04(=#%SO3ShZzry+Iq-HO5dzgxAXr>r=l8SNl z9M$0|Jhlm}QV0!>uTA{n@^|=x9$P+uzgL&gyLGdY-q_FHAhvs6%?_RMDbiq1(fRG! zbktV6d#BYA`sIs-zq4w*GSgy|A8HQ`14$xvhlKeH^15BUBN}Xk3+t6{`xQp{EkONlxWKj8?`-sQYFu1#mfk7C=$I?SYQib;VDJW>&uIv#j7fBh)cW@^$afciQh4 zS68&5aN72BKD;(#r8cV}jJ0na7o}P=o8``z8+hHe5{FGMx*$X0o}k(eM~)NUb;qA` zthXwNkzMRJXJL985-~xR>++uyLaW)>>Ph~kGb8%E^&XE>5F(;EWx{qQ#M$!URzvFW zLM}OpRBZvWz?A|U8U1^=Eo}`B`k0$-yhM+_&xYjeq$4q2(v!-i_{wSs(|D|GZ+W}C z(*0L5Iwt{I#3Ei5$<-L+;|ox$Ev;vSZr>ZvoCR3;s>0&PEXwk34fk@cb#zw#IC10C zU*ONfZnEs^g=t*I5BsZ}>m6E;V1ee%QuifUIy&ptIDcW~YmjF_k*is)ym$;15V_td#f=j2lR9yGcT__bC|uBkU94dz9bdA zyEwee&cu`qRB+$j_gBIy>r*+TEyqPT0s?g$o*UWRt_s-l8toD}X0^Wz6I63;>3Prh zvx*{ygAau|2hC1;U<~p~dnaORN_70FN<6=t5?i0)1=tkXN)nqos24vf<|!wxocnR% z%5(I!I^zlm6O;2rke#^k?Djy)yntkufk%#zOV_n%9{Iouc^Oy9=vRW?$FS93JCF2f zdtl(`g#wc@#(xq5w^+yP;Znb6sp{5mRAzF7*c@FFD?A-Ja$KWsNqJNrjosn76KFNQ zw>i|c!nh!?eLer^`QR5r1@KuzY)$W-sK zzKOi|CJM7|Z#k9)7Ju<@Jieg?n|O*D&8tCEHitfPlX9xC^i`)brWW|LgsCW&>;hLJ zpB&*^o#%{HtK(vDaLK=L!%ddx-Xtj}&%0}qyq>?i7=^3A%{7F#Fi5;Gl2X>$J4Ye0 z?#+3hlI8W?JUYI7%-GULEvK%hPdrJg4-*@B0jbG z%XcLvB)(#Nmh$9?5zLiDto+r$Z3FI78`r=21p#*4{RW7HIy=rIj!|>SB38!o1^hNk zm0E-N`?Q$)C^ol%q-mx55VwdKydC5YDN~#4OmY#4c-OBk$GU?o6S%Y)QUJMLi90-L zuf{|)jOd#~JaEWur;(urt%F()8$pVm)33G1Wdlpi%H6O*bYYE}IaVJOXIe}aGs)rp zIuUH7{dev|M10cFV)|Qc3L@s^Iuc4W6$rij4wnFYn1w$uvpCsn7@tfYj6N3cK*=z1 zq!8ePd??qPI&s86E(TF$vaeVB)57LDcno-db+VghuSp+B_N(q_kvUV077a-Lkg6Y3 zGQK5Ud4VDjXhNybgf!^In<=#Lwz;S?((Wz|IsLqmslF?>xdXpHM_sCKhHXnXTvXT` zr2wK@hZUQjF7AU?fyuu_YNhjy|2TrC?vhHK4kc=@meiYnE2%g7cJNr-{K6bWd$Qn- z+**R7=U}y2Y}vrDw+2%g5P7_i)`5&Gcqh4EQA0?{woe?ILi4VP>czrd*w19$EW)IZ z6NCG>I2Cd^(`$c`Dx;(Ax(9g4S|i}b@Y>iC1bx88-VX!bwyxHBLsR*JrUL~%gD2y5 zQ{1Pq+%mS`%#c$-Mzwcb8z6?4$@Lka<>e}Q`8uJ7;_ZFy#S_L>_NYm@byj!nD#U-U z(F3YQfd%e5o4Nm-L5kB4r#|20gCk~snrxFGvUhvxZt2SV!QJnW&Bxs+FTEe4eP@bf zlSuAWyCgy}#H_Xqw|}2=uJutI&?hnR%tySV_jwue+L)9*YuB``^{-JX+%=e^PF-MQ zix8JDRmN5jhYFL37%rP)JL2;kZHtO)SB%if6PhbdZz2<79t$j zEhMAC&YI`x>Tq&_di=KE(q32EUHz?=^eysN2PCn<6^;F(Uoc|7A_EySm=UE)^sBquHo6(pM#%t^fjyB!-5M_4(>c`NiPqdRLRR z#sIEW94zkab<_NC+GZ{xmbUQ=Cb#|@UFE-JjE+g@yh<*&DHzObwH^1OFG;P{_93_T z?k@L7kry||#@i%*fhfZdJV~QW0K9Q^obiwxdlcw1v5oQieo|(kqvn_wF~l{`X+(4# zvh&hRU@d`TqLXTy0i(wM6qb7W)U}S^E(d3Ua7iUmy4XN{qzj~yz8?a_(CJ8SDm(hU zm=&9*VIst^L7uqJYjN;lfk9CpGac3{s-fTmxnab-#|n>(Bbh#gRK%y zn5B34@b3XoY)%f$m|PYXIe5^{ZXtiKOisv72Bp&KJ2h)0hxLia`mUVXTEJjH)uZE9 z(`6>-Z)X5+_9lK;%6BOUnKAhn8eJwT;;U0qxAtbZuwXz<-g2TQ=Cj9k@h-Wl6-j`f zcD1W^c7=!ZQ<&V+;^*38YPL7m>e*)#?Rckq1-TQ- zaTv=aeG~+My@!U23kCw|e(E$qJNr>@lXlodn%rLRag=1u^=-GjL#)d)=Is1ujuN%b zMng6}(q@9S0x6{41wr~12YT}UHPJ+sdQdRxZNUZzPKK_sEA5W6PGJE8FdVWAG$6#+ z14M(#r8g^y(!&1@45emzj8kMFgyy5aXd2aty`SS3JTsiaJb&wRDic$Z=VUz}6$jBA zlwhCDcN*#Xt+-@9OIv$Zx8w4?_~YpR%t&3j;_)@5phRrowJuSwCk?Y{yTk8=(N_g+ zO_kTcZlE$oghF<=oAccogUo;CAbIx;+N)>>1-ISx2Rvc@uG~$nhf21dNKi36KXkC? zs{@U9v9dLS@7c(Mb7xA1=gVK^fHEMf|NI)+tCuF9U#_4vm+tq)WFYzw2wi7C-?BK* ze7POi%j%vz0(5K=^}WOJ!wy{m1eR%E?C)=RWoDzkMWfj$qJ!EovvF@0xix9RN`FU_U>~L=jo6_^@qoN&d!SxD&535f^JmCBdDJ*NnWjoQgYULLl7h5=f zLP`?9VCzD1yoneT3axp-X{1<}QLF#dpirDjMrrDHK)mVbT5^B7p8J5Slyssa5-nM% z|DXA#B2GQ#fowI7mUbh79lhVzL>N8WRry|Gu|m0|pGq$fDv$2SNgtfzxt2T2e)5ZA zV&9N3&G&UXf8As9BU-BW#IrB*i%EWyTXJ^&^v&;giSr#bYl=ek{}Jhz%EwNX?cxziHkId~G4Z-Nl@hDu)fTcg$vCouN&;XhPsn2*{L zts}5!+BbG)MMR2&_qxNv++BqqXE(gnwsgMnLqn7YzjhtUS64W!Oo zN_~1gXvTJau$@`)j+;w+#7|naeW1Rjrc_QR# zw7fripd9rm#uKw9H(mM>^lTNU%y;HG2g=^dwf=r2!st!@CyV-3@mFvA->t6i*Y%#N zRR00jhY0mODDD2cY;_D37yrNOqF|nlaGQG;MomzRh4|g1(QM)A zH5px7OT?55;%leh**b3AhuRQ@8le)Ac&=7ADawT0|DBR>J;z8%px)6}B8#2gKrH-h z;2eZ@P~)pCk@eDTi7ZGKpZ$cqa5waTSbVL0ysY{0C3XvGJ2g!8h4{gt5-v2HHdme4yLJ>ABSIlhiZ^9On`)2t)4eb>G1LMGN9G z^+_39^+(@)wWR7?P~SHWm4ZV^WraTJQ)D{?zkkZf|2eA?xko(xzmqD(iS(7OLMH@& z+4a4$){hZ^#Z@Dg1&S;2A6=Ut#2!7CrGqdi)-!MDiPC!=)Lr4_nPr}*51C0sGo;p@ zsN-iek4Ks(e`HRtk?{EwJ!OQv*gqgyC3Lq*Ac$-0kKtMbD|o`hw%b{kPy6}UEk$a> z#@2KUXH6#J*jZ7prDpQ2d44(aG(GQky_%14Q)HF(*ij7mX(Ag0A3aVi-PqbgZB%uc zx6T(fX!gmDOk@f4)SFUx-Cp&p@_r#mc#lkG$UBC=G$~N+!LAUx8nU6gUF)0L6sHC^ z!CMGQMYl*T8hr2OH5FzRfgTVteNI-ytiHdF+OoTgo}7ovz8E_9YZs@A8)9pM51JwN zG1jW{A;I)0Yn5)j)-!`m{EcMyI+DYejc0RC~ zNp&mU`vVg~T}`#|wb81qtTM==!(&3;*vxPNQtLmQ_9DycE||~n`3f1x<}G0B3-GKK zmZ{K?c$I4Ov0((`^|NUsj^-5Q*HazzodkP+FZ@hM4e{(@lAgo&A{ocZ~Gbpf( z`OjskdkyDN9ES3xgwodY0r%~NvRx`PG0YLBdFMpQ)hM$ok`qG3bK1vGMfNHAq-|DKpCPlfh z{}P)-D?CwmkG&>r9^$htZJ$O6K10_Ef%6pfaFT{UHZ-VM1<7mQRb6(Bhl_bYtTbyL z$j)&(4zpv1f*-(Xfg5+d9R@n%k4Ye*-RJ#BL>h*UMYE_Pz=h|D+J zPjb!rPjbz5nzfJBmaA#ji0G}|IiKef5YsrCi;IJzI$^;KEjsm;L(rM3@Z&y{%@%lt zxHxwF@j*RVS3>u?EqozprSf}(iXDo~LpoL{fAzHVQ46srs)Qht^P~sr0(anwsX4{T zeZGIfK5%9Uj+ecS76{0^JJ^s|xr#^E;+38!`RY0@+&%EXT|#NsG>kX4M8;OMFWn_Q zA7{;P2l$l0mb5RBc!i=7CF=b!-qaHI0wsj{uwA`rLLXs3Q#uoEGLAhx$7cST{|To^ z;bx!O?pTO>kav5U1HsTv_29xLEdN?c5*XW5&OtWw)n`YxNX_~ zFoi0Tcx6ua2VdtHNO5(0JpMh=yR2S;mb`$>f4mhk4$_m|cIx-8S*?y3|3@lL0m1Y2 z=bTGj`MHfJKOoFabd*em%bbz7g4&_fq)I0?*0595iol|XHz zi?As}{*Gp)su?ll?*i&l6JxnY|1+7#_ux6D%SB>wO&-y46>3>I>a6;vy&RI~@7@v8 zdiG7)T;=sMwx2_XMi6@wE+FwJKWFaI(G*1WVkt}7C1N{~+7!jUolgV1`))WFYT|R% zVZ8Q&wy)2tOL284=R*D}l1P<_aVPVNRd=>c!yEKCvUl}j_zRh3bk%Lf-XtD8*nYLJ zZ@YJ&xUK&si>vu|D!k{dg4m89+*!5pwpb>GbRzGo;d+^!UmS49ehXegUB-C!y3LKJ zZEx*z_&D0r z|Dq-h!(BVlxcTzQ+X^RH43Vm^5_-&)57)bs^}gL-f~&oqghnXQ$h$%M!KuM*U2qoO zu0adC)0)NfgMF!(Zy)>S;dt8g*d0aL5B8v;T9$X~!hX-!wGdpkjTvG<$x5qI@!d19 zA~?CtHMY|`PNPGjY!=fB^sODK`!5USvn7|8C|1wDa%cyoscUz?KM)57zC+VQyUN}4 z$E}*W-S-yY+4!FaPmL0M6!Xeu@Q#~D8W4)_=C)diz1o>Ry$9#`oM24fzFG@0dZm<4 ziRXCn`%KKPn|YytnvvbqC&S!#T?L9D48vKJ^E2=~OeaQ;(zWxotu#xEn&EQ^GhT#9 z_VKe!m!!dN|59R&MR3UoZtnq#0BIpzf@4TM!yP4oUtH(95dT1?AFTQOH}BizBj=1;R6FWu*N3eGzp}zmlpl*&7mvT$ zh>g$Dr0rSnhm2iIk|}!s3D;lyi&~upN3Z%Q-Z0abm~+4v5-WY%)I==G#zpt__W6^I zi(^FJQ45&}gudjGf%4fp=VQtWK+uTV-CQX)6A!)WF#`2WBQl}BL2nG5*BL%0*3*AE z*v~ZH)Hfm26{3uaIQO;DWUE4bUvo$&wWt529qm5zAy+5BE&d?Z_f_`uZ1ruzpzJSv zH>m94QWd-M2kUpW5ua=GlU;9VkA;0hXC;T`9s2kwEmax_6)9yDRbLtxi+yL~0w~9` z{cB(Z;>lx{wva~U?_!R1B2OPAx{jJuYcgdaSQ{g=FKP5+0ye0HL~Pbhov^(5=1Pzf!F z4)HU@*`#fXFvsu3&-tQRN9Xqtf6DQfhrj{myIHb@i9eda7gft6`TSU_@7`ZszOxSK zm{HqWaeXWY+ejSsng{bKjd)RzflTQ`k|C~ReBc0I8R@VnwBSfeqjI@$^+b-Wgn3m_ zv$S1{6LPmF2VB`bkm&rI!30`?@J`QHwgwzb?=meKl#mO%$2OaP3qt{lX}NwzsDA1W zd5!78BftP>Ybg~}iGa_)E^#s|u{GI9<3+QCoUrZ==eZ(>EIROj&c310^EyQ3G+B77 zQG|UT-U8epoU`QjJq6J1-vx3PDatGlo(iTvPbjY0JfP@@9s({%1-GRkB&kPmso9Dh zuE=yMvF+3q-4`JF^H9u*ZsysQu4&NsQ*aT0=zvFeaOn~hLeBe|1PrzlSYxU)~=`nf8>x% zI`=?F&*t=iOrA@dyU1P;h`$?>tNu?><4(A%cDGW9B-HUE(hJkcP}BZRCTu%q)bHBn zc@)JA7sl~X8X6pS2Vqi6A!fKSuwPX~Uc$_gyiw$39K zy6=JBnG%B~u{S-AW96}n!$k!gzQOuLC5%_oQ0r9yrud}(&#K2qR2Ei)5kAGCI#t)L z`5_YwEJ_P0fwblun@Hp~1!Q-fcH(eGy9Y)TMar3#?`}xS~;3fpJQ}y4&`8XY0H-t#{SU{r{>jK9=yd1ZZiS}+Ay^UI4)&^M;f&ot@zJuw- zZ{=+l#xuY;{I=Va4(quS3cA+YOLDc4IO$FB2jI=;qTB_3thd?wy;Tpm&O{~G`qN_} z3-~3i=V&~R-Mq%s2fJy4U}b6p?dDALC)P+d0D=L-9L^FdMsC0uUC+tD$#J%h(rEhc zzyAN!3eEIA6xba8%u=dx+b;yP7T9d)B{gCA!U`;@|4uv{^D?fg&12-#(b=ro+)GcB zBlCVa?a119$rbg5M#}=;=iJ8kPH8JDjt$Cyl$7&tJQM$a2V)^YS*+MY$OGh5hGiQ@^wywjGKSd|hPt z5kZ4K8dLr|`{4fS!xi|#dm&y2N5mcUbA*ZZ6+wTefV=B#>whclZw#F&Bdqqbn)K`Z zcSrVGRErvFh!Y?_@f2Gka( zmnReV$m8sfKo*mjZ!ETO>vrD}?VlOewkiUIq2751qj_pG>*J4^Jq#uN+mI~QAfH)V zxPwZm#4*Whm7TmbQAa~7)IZN0A~GV}=jtLqNIi8p$2W#1lFKDWf}TOiWh#dn|BZBU zn-5$(mQ)l4SIQ@cRBAHYt}wy6j6X(;eUn;}%*N2n|3$JQqQt@)L&4^YZE>EdGE^|Z zb2!-b?bV^xH<3sNL7L4vctu?!_6OGKtKXv}RtL*uAdes!4|L9Z2EEj~CF^)PBR_kG zEXA>UQKc2_VqMiX*DWIAuw3Kx=ub?QH>Xg-aZF;OZ((}cGSPPcz)lIo=y95f41XhjYnetr`{RK zc)ZFI4};-&SeGmI*VxZkp&L~g#;H`fFis^qSZs-kxcwEV&Tcc?w zH!lHMye-Vqo*rUzBFJJJ*(kTT`-!#Z`J8#vekAOJ?Iy))scL(o$k6r~pZfMM_a`-~ ze||0eNarv5p=T2(cu0G1@^Co7j4&RMcc&lUz`6boKJR%LJQs(+tt9t~flaKGI55Ct z>Dt!U)>=oS-j7>M{83;0j`u-)E&{OH)>c33A|hS?>Kiz2Svr+0M?T*%Dei%a=)a;8 z-sKGtXi7&qLp6WT!8JK9>qmsnP@K#l@Xeu%cwDIuTr2;HtJG%|9#fulzAdeTnA~+C zNmWz23VEt<9I3tBN=fG$2Y-b@ROV!J+Yrq13|B{eB6xjWsYK({H|G)x2tkR;$A|Wb z{DGm0GCT8<#a$j?E{lz4uT5X}y4#|Wmn`vb0#eK!eRnZ*(4u8XBay>cve@M<=539V zXyy6JqNfGe@c82nPgov^!}v)hNUtU5%#cLt4GKpvw;yrrNgq-FVF_zG>UAG2SnOoF znF>d`#hSft#XVJvMa@@{Ov5={Lz>Vz?sK@`c>O&^mEJu!0cZ-zBvB^eiPI$iT9nV}tM*8}Ffk2<-Tck@w`{b7u{@wh=i4X77+-KI5xLR=fLDGn<0 z^6I2;ttrh-(-#q~#H_pQ<87ptc+k@2wWkf6C&w#%14iyKbEXHPshyt%NpiipA1UTJ zMnqE^6KK!g!IqA~W6I(;E5Z^&gf$`&*Q9O=VAr^7o9Z@=BWbJgt&EL3_X^iM-#IxD zY=H7JX_zm)BRT2vxO})|mg0&`R1-pW$>6yTC7aFsMh;7QE?Q5CQ5a`8^xJ%ITj}xD z)8riAhu-P>){ms^Ce+5ugRBQp)NiUA;J_KIv};2=4n~#wDszBQH4kHF8_vVH@_aNtg@!ue`oRQ z#i)2gO5y^f>-s(XQ+tm`q1RZ^PhJxb9WmM9{X_VE+hv}cxb}N-?xpls&2Ohvjj`n4 zo6D7n{)=PL7|1j(-R%Wvh0|O;H2$#sp#CeF6DHY%9RZr@J}ocv{Wp#(ihG5o1v|u< zz1QgTo(=L(}ofBan%tw{(BV-nDB5ZLn(fd% z4+Mu~;E>Sa)M1n)V_Ks?&6VxlZ~c?y?XMhn+>I-MTcyUE;&S96V_B3+X}j?&b90p= zKfy0aKoepP`fWT6@%3te7vPhHT7Zk1 z>b|dCY3v=9gg)^;b(RkpX?f&+^|2chms|y`xLm- zGIlw#sy8H6Q-dZIs z15W_cDQys2VvOE)f+PAuPuFX_5MiiQ!X@7rdOcvx*^|yWLyd?HHodvUDS4F;bxxK4xxHVD zjweGfAdT&X~4}FgxTn0(6=u zi*(#4PI5UN=D0qok1F9=OW+wQCAPIZVz3&Q|XBZe|DnyOE~leU%`*y7(UzQ zDK;I~C%6fZ1FHaK_iUDH<*J8M-2Jw+Z~Fn4H|TvY%;ax~l6=69wiNNjMGwHzmdN5 zh+cD~^P%^tzLaY-i!B<7RwhxLVtG8`E^1~^v=SJ_FV;NN@B3)rO@$MA#jMhu2vw04 zc?g!$3+9C=>t7#`7b4A5$b55=rL;QR?$1a!7y9MyqVdNtD5tXNXhP4{y{=OPw+85w z4PF!5Lmwl4v~6XbTUoxcv*yFS({gFOp80{be*QY;Rm1uHOmg>rgc6@Vd;k`LKCgee ztnKU66x4nPvV6F@*kdsXhE*AV;4SVo~8!^8?1 z4qH2mZO{Zcdq350D%f-Ln$P@qH<^WqWBh|_^(e0)ub#zsb`bZGyY3GsSD{#3M~EQi zrt4;gES$&2v9t-l9>rXQ^I@_-mNwa`y|RVZTs-smzPaYA?-^KIo71f)ik^7v{B@m= zb|b8B&iK^zzQj)HlA5p5TV{tC8&!29UkdK{I0IhB{^dB_MmrlQC;8jw4_F{j#&B2LGhl z$N0TX@wJt&H1O@4@sP0aar3bk27@zDD4ES{X;mTTHKaqK9xou!Laln`J_w z?o)(WUVrbV_7?i6CiBvITz>!OV!b4;+*f8V3TW{sJdSAWm}G!{$2s-n#JcOw+>^T& z&wh+ZfoRih{PHt&KK;~RDN-WS;ooE_UYlIiCJX}rq+@E%6~Y=Ux+ZT z)jP&1I)n|Q>1MGvIK^M=10mmeeQVoxlgZcPSDaSw2(l&r4vk|pnt2}ZLF##AJ!{wV z=&kNcVs6E7lM&-1Va-_yozFW1|fvoXOxnQ#}=rpOY(FN7b{HZ ziQU_3GFpE6VoH7=H5F{5HPX^bRLNZv+8ZP7qJ6c*An&_WIv)%tdjISB0K})nN3;=( z5l6zfmoXwLaduyG!!O1NBfpyW9?)E<-hZ^M-R6sA&2}~M@4sP;{Z-Q?9Rcf?5D?l< zkYGj^C^z3cHukd{=fz>MJ0a%rEI8hFb9^C@_w1Lttc;LXA(!>_ZJV}&!=}KhaX~)} zSACGIupP%(UHOodM_WtiCK5anTZdc_^RvP{hRk*F$0n0YmA2=dP^Z_TRxz(Hs~aw~ z*%fS#@TA3%mtj&o)_ zNIp*cJv}l<(w-vOhP_lLT$&Wu2g8iZ)(y{?##zC}!;WkjT1ab-m<3k8&#BF4pd@Cm zd{wri))$j4=D$J|^KWv{w5o9QuVyN2!?8Ovo4-Tm7H8TU<_8uG?eQj{pdg?{B@(@6 zr0`GQnN?Z-bfnhJ`=tg9|ACUI<-Tt)7nv@FeqVmt7bY$tiH-OmzmVA+_xaw93P^S0 zgjhQ4hIQ#9>lnY#j(3nKp);DrheN+8zfpV7J;w5_^s(P(54ZYryMY>=&n@da^@k47 zqfEQfHO8rwp1)T1FseA0Ca{Se?qcRll^G{hHoP<;4F|8RI<)d0T6`hk(vKzvI>evn zJ6SIx5se>2V_>7>$%(8(*X}GO*B@g5CP&Zz538K%O0wHZqnJma;hAw_O z#uiJ*R_Gf~58%6H`T$5^W@urN4M2}_CuZdU4^>)(kVkJ4m%gM#%mLKtGb$Gst4ut; z*c3>1W=~%dvPlg5weBEvU+}OS`e0oY@bOdcp z&{J-7#;)`4{+9*HnZc~+<9mj9*&i7;vf98o*Fskb+wLoOc;`?c2^#c*veA_gG5}gy z?AStY0m%Y3=%z)Yrac5ge5Qfi)7A(6fZ}~jZbGP0P{UDLv`sS7Qackdrk!=(h3fnm z|GF%BlOyn!2ixn_z+anj`3kt8YfPOrHz$|{p=0l0t64>8Z}vmQ?(qlJwO_G3GYC`D z`|+n**C^)qC!Rdi!!qq6c)b#p#4p88#>?*`RJD4;&%mgN`7DZyqCVg*J?!rLQR+&T zPc^f`l6F3C=^5!`?g#rf!^d00OY}zkdg>7??MrES6p&U#C*Kk$)eM`XZzcP~nB43c zOY7axK~^sDVwd)FXha)Wew#7b9yPyzB71G;9&vFl^T=e?vyV!8EM`aW=*;aUO11BG zMINI!1+9HDpi^!5^t zl4jbv3{|Fn?;5*Hq}n=V_e*xRxf>LjJDKoybiTLjj+3=l=I7l&$y)~H?`E%v4QVB& zmrub6NI5gNEC8go*I%AZm|@S?{|y!`hAqE}lrVj_+`B)7y}`<4ZK_b0tlL-Bipt3k z&R@1d3j=h3?y&h$25o?r&^;d|x2*zhkedi7jo0f}q#Qk(9YxR^YC9f`Ub;3*UkT8t zOL2WYmj-Vjyc6N56{9cdwvW52n#nmt047o}B?z(KLd=s~0xTvr{GT$~eem{S8O)pa z7HYhUhPnQ?4pZ4(V&G)5QQvf*#nE){9+UMRr>LP~7V{F|23d$o*6d?&)=rg$Rq0D& zb>^83djtm&qk1(A$|YOBp;)`Y9OFgBU9s<+KM6i}A@_P8A33>P02k}p)mIN=t0)?k zsQ9L^g~JsD)6M06?F{eS9+Ck_bM2e7@9sm?mm z0rbrcckiWJd)@FCDGJ4%7U)4s5Mpy6UhfA0Gt9xXpNfa`}{e8r$2y0H{gR z_bsHf`n@8$ki%~)jDF?>C!bfS8eQyPxM^CqtyU#kJ6J-TLugfF9@BRl;ystlN*o)1 zT!y!%{AC}hwo*`81ZVj6|I?&~Feo36$Z_sM(A&6@^f&5gq&WeoR={@WSdNDnEuHpB z#y~Y1Jw%XTxi=Va)1n08^9~)AC44kpd#qARGHBTaSwCryMm@^~En#3T4R-qu1FdCr z`{oG}iuzcNBh)R4u_Fz=hPdm4BRElaQOFX7KdA4={f;V(x5<1TrMt{Ys-&z3=tXwS z`3(Y#*_HN8U)JE3THipH;?v_7(~jF@RYod}hU|DDaD3X&BrIir0I*ZZePk)H zVsFU{zD}0VNs8IH%)L=VTO8m78b4YB%6t(4<^b#_{;T+*f{E)u3x1ow0$C0Dfs z+x>F~f$&%uGZ8ifg&!OBD)$;t0TRlg4zO1l>rvh~HY61d2^%^hFy1=dQD&??9eA07#h0Q&5B&K6i~$I`afJ$D3=c>bO|Sah+= zwf21!U(cT3xUnprlI0zlRGAlv`M$Hffz%-dD55EfyShj<#OJR(7mR;C%ysVPbnOFV zGH2w*^a8eGM5XTO9Z<$*l1w0DdUn$}e$dII6uI?Pvx)QdAX|l!3=%Pd--%XSD_2`d zFW$ig7n_lIGNGYFeCSGA9c3J-Pu|<8Z(=6Kl4K|xT>+HKtT;D$K|||>V6D#K^4S8+ zsZmv;JS;@bQ2NXiinmtAs(6LgV}hK?#sTnQ?F(HIv-N#*7g?C5h+34TALOp}f*|TH znES3l75BCagoI)G3$W#)RFc9yP`@q!jyD2#a&{SKXP%(lQu7S^fGZo7p_F@}qOj&1 z%hQZl#+evV{3iTfXGTuY4Q#vC>Ut&P2#e1C=X0g->0;b==X@!4sSl-t?l$))zdU~fX7dS@`W~mFN z`gZ2B=Ie^pEL~IF^~^FTUdrYr|I%qOH|q8trwbPM9<$w=-r0RNbr#U>KzX;;X&kFT z(JL_s$^Z=~eHS$O+;R?dPIMRd-K6R7L8vo0@jPtAvyscv!e5txK zSOsH8T_UxwG^nQ6DoWwS{sQrKUrI^PV1a8u26$vm(|Zz$q0c2Qy3iu^Bex@>l}54* zF&RoBs`KA7XXdu6+wIh$@D55tzo~7+NpZsjw)%3_}0- zoCIz7Q>#}`u(0PefANT|*^C%773rVFhniKRVr2|CY4w4sGe>YYH!Zya>8n2}rz-8*2*AFr?DVO_Es3j98Xc+eJt*KVr zBG|n-y27~1X0n4x=`strU6+S4yq*&^V2lkzVZ=S&psDN9U7-jC-|+1;Kbo%M@_{v* z4udu_I?yX&1L_gp1sl&=n-UwDC?eZ+8zKWt zyIp*&&jJvs1ItN89@uXeMT})0P$CrjNX-q1^x%6YUUVa$i3z2huvJW>qixSfOi#eK zyxDYnbfw7WDqIvO=C-my{<=sM)0KqX=Ct7rOaeM40`=8Crt`7ajmmY1frBSnAU^Ku zSKlU|T(3)civ7%>Z}<(^b?}X+9^YkI+Yqpm*PkPU_JZL z4t6oR{LNj5cW4b`<{Uk|(0J);YO$a`sl_x>X^ITgXtlI$UOC52Hss`l6|^Utq4tuS zt)*;J3G3n1u~#`7$XdXrV`DTv-MSR1JCOUq1&kFXnw=HA^q;wwfy)dEM9F z0Lr1N^%$7VP}%ut@Wx7Y$1G~m8y!>4SG{tlZuNI$SDF{>ZY@~)()^}$K@-3@{5beB z**Z_(c9pv@abP{RAZRE_YN>K=1?||Q7>cBma9`uiJZ1vPm}qVfy|nJD)lC5Pfd_#L zdl8rF)7Mb>RV&mR9UK7&qV!t*4D$}9k<=KmD#c{mc171*Sag>sDUb5!BBEY08ha#^ zyhZr~2{e>n1E1z$Tz9JCPg7~UWFDufd(2s%4SOv&r8@G#@4>jkqMgGW znas|^e#cmzcNds_32D{n_Zz`F!9LwJse1}~^g|9pM2B{Q1D5 zY>~l$IP#s(2OC{%utPp+ZE&GnJ;)9w-7U*WH_S<`jF!iEng|56zDy4`(&lgJN=ao| zuDF}Ya_{xt5}v+@5tDZyHhn5kK^B?c0C~s$+`BG%Bi*S|&ht#vjie(hB`bm{yN1x4 zmX#{YeQ=vIym|gD$;P|0o{Gl1hUkiCoo~qpp-#hqQzi_Y}>EaD!a{6P0= z=HK@h6)0bmSg|cA3EP66vmwsHewz!BUO#7x(X(K8Cj8$FM*>*BDeJk3&CQT^_W!a} zj=T~D?-)a5e3NxJB&IRujp(PpLGZD4?&Le zd+5>xh)IJr>#d6T>UQKrOt8o{5s=U?2K!Nz;H7aZfLDuJ?%tDv2{hppF2$a{~WKhlyeK~({s`o zzAZ@hFMmSnxI;jU97ey_dQCiFP0Nj=*7m|bsa~uFx6cE~kVB-t8TPb-o0$R-s~!dF zgF0PWDHxIq-c^HvrfU(asV}=s%!uB1t#x26S zvx-yCp<@l{gm;Xi3hH2#>f@{y$BBmwj zY_cfo>DG-{Yc4We%3kX3dr4VwhE4Me;EuTLoun+_8`6tfUF+1GhJhuR zBgC)Klrk4{1grf1=)c-~!IB@O{qt9iD8#Q$G|%$)qDtBp!L&R=q?U)1l6K$y)}>ux zt%tdjz+#tr3G3&R9i_CU!yD*buM#2mozx<@@ygG6-D0aZWW=HK0t{`=C7Z5 zUSL;x^?D=EgJ=JcAna>@MEtQ=pQ4%MH2>kiuGys*>G@;s)$Of9jce^+f@ZTIBS{M} zMb82hM3!>AzcTOs5w2R+A3mS_wqG_Z3nXmz6WIXsHXj3M;d8A`QoxbYvbLsgNnllIF zl=mcN&)-)oxo%k8)^g=7XI4SEf??WLyJja+DQ_??Ji!Z-ZRGO9C+=uLEu7aBf&8K~ zYn3CVQ-8{|;YxZx$9Z!_ifI-QP21GnAZXYumm$1Ip~29KnFm|^lFh|s3qi)KsrZBW zXL9{@(}NZ6szxY2&Pnl2Xqh`_Kk^{pHSzQ+NnT>>mu|^?%{ov$7evExHvFtT6Iv!N zvDw8K*l3lsnNaQ17r!~ryv}E61xFNlh}6Qx5ffIpjBNrpk+he+zQUGk={!y^~%Vt`K%RSKO|!phbsid z{yLv^fVmn6%nRrFc;QW|KQ-hnH<2GdF8A*4NVUJOHajuJ^Wc%NL1BMq&;DIc17-d6 zpgdQ6*T~oV;Z@dc;vz=1kJRHu2BPHsBYL!>%k4211X67H_{w^%k~q z8@p(K(y|L8srE4L+RBn^{Yc?r$!4O*4vCVkx3Oa?;%$CiJ^uPge^y6Tr(ff7oP%mt zV%M=l4<1fsU4lxjD>`@&5?+BQN@pJkM0&ro4(du>sKv`)3s4Zym#q}Q60CMqOslO;_=vEE!&R$y|7#Kk`EQ=jZrGgX_hZ``|B%`&N^T}+7BUYB@YR_!r2AXp_^V??Yim+Qw)-T?EpZWCR{NJkQa-Fvq>z#XE>UrdO zT|}FP;dkLEb9YO>-51wfd{gCka)vU;eb1AeH&tCf?Y?e2HLm{Kv#<4Dt3HY6xny>I zPCEJNWW4CUwOY?xXNd~l(gvPe82X}oT8qVNku*#Fb#3B(mPbpDScTU8oMQ%Ty?C$v z{U&dUWXox-lDzEOZJ#S+U)(GEYw$+j<9fASRHyi(_|1tW z#m9E7_`Q0qPC?$oJ$kSFHDec^{Q5g`l~=S8aH<>_A-PMAp3mzqIxTJ2-28OS(Nks% z@1`HlxshJFV$aq0+_lTvPwH%#|5ta)L9^{~LZArSbn48M?FW83>+sE8Zy9~`o%~ak z@BCK!`agUN7gw}tAKn|Z^pKA6YOl^^y!&;3xW~_Xy{AUDQR=tum7i?0Qum8k+@IxK zoBAv?_`lnOJsaly<>9+vt^cp)_flZ0+R}Tirp$a<=lNG{pTd66lsh&XI7wZ8blItd z=2@}&oy9BoT3Xmtr|-*` z>pX82{H3X3VEv;gBkV7?c9;6yziGgDzvXp${@vcJSDSBnO1%7bcvn@~kGImNVwm&nrfqlU)f6Y&v;pqkTdC$FGq7uO(x9nl`^8IJz3T0LVcy4&H%JIeI9RkF&lRla=t!z0r(+s<4(oftjY{0%Gcl(W;<@2~#~I!7gE zR#;t`KiAb(X-TQPe}bP0l+XkK@Y^*E literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/media/video-playback.md b/zh-cn/application-dev/media/video-playback.md new file mode 100644 index 0000000000..72a3f597cf --- /dev/null +++ b/zh-cn/application-dev/media/video-playback.md @@ -0,0 +1,371 @@ +# 视频播放开发指导 + +## 场景介绍 + +视频播放的主要工作是将视频数据转码并输出到设备进行播放,同时管理播放任务。本文将对视频播放全流程、视频切换、视频循环播放等场景开发进行介绍说明。 + +**图1** 视频播放状态机 + +![zh-ch_image_video_state_machine](figures/zh-ch_image_video_state_machine.jpg) + +## 视频播放零层图 + +**图2** 视频播放零层图 + +![zh-ch_image_video_player](figures/zh-ch_image_video_player.jpg) + +*注意:视频播放需要显示、音频、编解码等硬件能力。 + +## 视频播放开发步骤 + +详细API含义可参考:[js-apis-media.md](../reference/apis/js-apis-media.md) + +### 全流程场景 + +包含流程:创建实例,设置url,设置SurfaceId,准备播放视频,播放视频,暂停播放,获取轨道信息,跳转播放位置,设置音量,设置倍速,结束播放,重置,释放资源等流程。 + +VideoPlayer支持的url媒体源输入类型可参考:[url属性说明](../reference/apis/js-apis-media.md#videoplayer_属性) + +```js +let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 +let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID + +// 函数调用发生错误时用于上报错误信息 +function failureCallback(error) { + console.info(`error happened,error Name is ${error.name}`); + console.info(`error happened,error Code is ${error.code}`); + console.info(`error happened,error Message is ${error.message}`); +} + +// 当函数调用发生异常时用于上报错误信息 +function catchCallback(error) { + console.info(`catch error happened,error Name is ${error.name}`); + console.info(`catch error happened,error Code is ${error.code}`); + console.info(`catch error happened,error Message is ${error.message}`); +} + +// 用于打印视频轨道信息 +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('key is ' + item); + console.info('value is ' + property); + } +} + +// 调用createVideoPlayer接口返回videoPlayer实例对象 +await media.createVideoPlayer().then((video) => { + if (typeof (video) != 'undefined') { + console.info('createVideoPlayer success!'); + videoPlayer = video; + } else { + console.info('createVideoPlayer fail!'); + } +}, failureCallback).catch(catchCallback); + +// 用户选择视频设置url +videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; + +// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 + +// 设置surfaceID用于显示视频画面 +await videoPlayer.setDisplaySurface(surfaceID).then(() => { + console.info('setDisplaySurface success'); +}, failureCallback).catch(catchCallback); + +// 调用prepare完成播放前准备工作 +await videoPlayer.prepare().then(() => { + console.info('prepare success'); +}, failureCallback).catch(catchCallback); + +// 调用play接口正式开始播放 +await videoPlayer.play().then(() => { + console.info('play success'); +}, failureCallback).catch(catchCallback); + +// 暂停播放 +await videoPlayer.pause().then(() => { + console.info('pause success'); +}, failureCallback).catch(catchCallback); + +// 通过promise回调方式获取视频轨道信息 +let arrayDescription; +await videoPlayer.getTrackDescription().then((arrlist) => { + if (typeof (arrlist) != 'undefined') { + arrayDescription = arrlist; + } else { + console.log('video getTrackDescription fail'); + } +}, failureCallback).catch(catchCallback); + +for (let i = 0; i < arrayDescription.length; i++) { + printfDescription(arrayDescription[i]); +} + +// 跳转播放时间到50s位置,具体入参意义请参考接口文档 +let seekTime = 50000; +await videoPlayer.seek(seekTime, SEEK_NEXT_SYNC).then((seekDoneTime) => { + console.info('seek success'); +}, failureCallback).catch(catchCallback); + +// 音量设置接口,具体入参意义请参考接口文档 +let volume = 0.5; +await videoPlayer.setVolume(volume).then(() => { + console.info('setVolume success'); +}, failureCallback).catch(catchCallback); + +// 倍速设置接口,具体入参意义请参考接口文档 +let speed = SPEED_FORWARD_2_00_X; +await videoPlayer.setSpeed(speed).then(() => { + console.info('setSpeed success'); +}, failureCallback).catch(catchCallback); + +// 结束播放 +await videoPlayer.stop().then(() => { + console.info('stop success'); +}, failureCallback).catch(catchCallback); + +// 重置播放配置 +await videoPlayer.reset().then(() => { + console.info('reset success'); +}, failureCallback).catch(catchCallback); + +// 释放播放资源 +await videoPlayer.release().then(() => { + console.info('release success'); +}, failureCallback).catch(catchCallback); + +// 相关对象置undefined +videoPlayer = undefined; +surfaceID = undefined; +``` + +### 正常播放场景 + +```js +let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 +let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID + +// 函数调用发生错误时用于上报错误信息 +function failureCallback(error) { + console.info(`error happened,error Name is ${error.name}`); + console.info(`error happened,error Code is ${error.code}`); + console.info(`error happened,error Message is ${error.message}`); +} + +// 当函数调用发生异常时用于上报错误信息 +function catchCallback(error) { + console.info(`catch error happened,error Name is ${error.name}`); + console.info(`catch error happened,error Code is ${error.code}`); + console.info(`catch error happened,error Message is ${error.message}`); +} + +// 设置'playbackCompleted'事件回调,播放完成触发 +function SetCallBack(videoPlayer) { + videoPlayer.on('playbackCompleted', () => { + console.info('video play finish'); + + await videoPlayer.release().then(() => { + console.info('release success'); + }, failureCallback).catch(catchCallback); + + videoPlayer = undefined; + surfaceID = undefined; + }); +} + +// 调用createVideoPlayer接口返回videoPlayer实例对象 +await media.createVideoPlayer().then((video) => { + if (typeof (video) != 'undefined') { + console.info('createVideoPlayer success!'); + videoPlayer = video; + } else { + console.info('createVideoPlayer fail!'); + } +}, failureCallback).catch(catchCallback); + +// 设置事件回调 +SetCallBack(videoPlayer); + +// 用户选择视频设置url +videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; + +// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 + +// 设置surfaceID用于显示视频画面 +await videoPlayer.setDisplaySurface(surfaceID).then(() => { + console.info('setDisplaySurface success'); +}, failureCallback).catch(catchCallback); + +// 调用prepare完成播放前准备工作 +await videoPlayer.prepare().then(() => { + console.info('prepare success'); +}, failureCallback).catch(catchCallback); + +// 调用play接口正式开始播放 +await videoPlayer.play().then(() => { + console.info('play success'); +}, failureCallback).catch(catchCallback); +``` + +### 切视频场景 + +```js +let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 +let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID + +// 函数调用发生错误时用于上报错误信息 +function failureCallback(error) { + console.info(`error happened,error Name is ${error.name}`); + console.info(`error happened,error Code is ${error.code}`); + console.info(`error happened,error Message is ${error.message}`); +} + +// 当函数调用发生异常时用于上报错误信息 +function catchCallback(error) { + console.info(`catch error happened,error Name is ${error.name}`); + console.info(`catch error happened,error Code is ${error.code}`); + console.info(`catch error happened,error Message is ${error.message}`); +} + +// 设置'playbackCompleted'事件回调,播放完成触发 +function SetCallBack(videoPlayer) { + videoPlayer.on('playbackCompleted', () => { + console.info('video play finish'); + + await videoPlayer.release().then(() => { + console.info('release success'); + }, failureCallback).catch(catchCallback); + + videoPlayer = undefined; + surfaceID = undefined; + }); +} + +// 调用createVideoPlayer接口返回videoPlayer实例对象 +await media.createVideoPlayer().then((video) => { + if (typeof (video) != 'undefined') { + console.info('createVideoPlayer success!'); + videoPlayer = video; + } else { + console.info('createVideoPlayer fail!'); + } +}, failureCallback).catch(catchCallback); + +// 设置事件回调 +SetCallBack(videoPlayer); + +// 用户选择视频设置url +videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; + +// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 + +// 设置surfaceID用于显示视频画面 +await videoPlayer.setDisplaySurface(surfaceID).then(() => { + console.info('setDisplaySurface success'); +}, failureCallback).catch(catchCallback); + +// 调用prepare完成播放前准备工作 +await videoPlayer.prepare().then(() => { + console.info('prepare success'); +}, failureCallback).catch(catchCallback); + +// 调用play接口正式开始播放 +await videoPlayer.play().then(() => { + console.info('play success'); +}, failureCallback).catch(catchCallback); + +// 播放一段时间后,下发切视频指令 +// 重置播放配置 +await videoPlayer.reset().then(() => { + console.info('reset success'); +}, failureCallback).catch(catchCallback); + +videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/next.mp4'; + +// 设置surfaceID用于显示视频画面 +await videoPlayer.setDisplaySurface(surfaceID).then(() => { + console.info('setDisplaySurface success'); +}, failureCallback).catch(catchCallback); + +// 调用prepare完成播放前准备工作 +await videoPlayer.prepare().then(() => { + console.info('prepare success'); +}, failureCallback).catch(catchCallback); + +// 调用play接口正式开始播放 +await videoPlayer.play().then(() => { + console.info('play success'); +}, failureCallback).catch(catchCallback); +``` + +### 单个视频循环场景 + +```js +let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 +let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID + +// 函数调用发生错误时用于上报错误信息 +function failureCallback(error) { + console.info(`error happened,error Name is ${error.name}`); + console.info(`error happened,error Code is ${error.code}`); + console.info(`error happened,error Message is ${error.message}`); +} + +// 当函数调用发生异常时用于上报错误信息 +function catchCallback(error) { + console.info(`catch error happened,error Name is ${error.name}`); + console.info(`catch error happened,error Code is ${error.code}`); + console.info(`catch error happened,error Message is ${error.message}`); +} + +// 设置'playbackCompleted'事件回调,播放完成触发 +function SetCallBack(videoPlayer) { + videoPlayer.on('playbackCompleted', () => { + console.info('video play finish'); + + await videoPlayer.release().then(() => { + console.info('release success'); + }, failureCallback).catch(catchCallback); + + videoPlayer = undefined; + surfaceID = undefined; + }); +} + +// 调用createVideoPlayer接口返回videoPlayer实例对象 +await media.createVideoPlayer().then((video) => { + if (typeof (video) != 'undefined') { + console.info('createVideoPlayer success!'); + videoPlayer = video; + } else { + console.info('createVideoPlayer fail!'); + } +}, failureCallback).catch(catchCallback); + +// 设置事件回调 +SetCallBack(videoPlayer); + +// 用户选择视频设置url +videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; + +// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 + +// 设置surfaceID用于显示视频画面 +await videoPlayer.setDisplaySurface(surfaceID).then(() => { + console.info('setDisplaySurface success'); +}, failureCallback).catch(catchCallback); + +// 调用prepare完成播放前准备工作 +await videoPlayer.prepare().then(() => { + console.info('prepare success'); +}, failureCallback).catch(catchCallback); + +// 设置循环播放属性 +videoPlayer.loop = true; + +// 调用play接口正式开始播放 +await videoPlayer.play().then(() => { + console.info('play success'); +}, failureCallback).catch(catchCallback); +``` \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 8954c48ed4..90b9f701b2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -5,10 +5,11 @@ 媒体子系统包含了音视频相关媒体业务,提供以下常用功能: - 音频播放([AudioPlayer](#audioplayer)) +- 视频播放([VideoPlayer](#videoplayer8)) - 音频录制([AudioRecorder](#audiorecorder)) - 视频录制([VideoRecorder](#VideoRecorder8+)) -后续将提供以下功能:视频播放、视频录制、DataSource音视频播放、音视频编解码、容器封装解封装、媒体能力查询等功能。 +后续将提供以下功能:DataSource音视频播放、音视频编解码、容器封装解封装、媒体能力查询等功能。 ## 导入模块 @@ -93,7 +94,65 @@ await media.createAudioPlayerAsync.then((audio) => { }, failureCallback).catch(catchCallback); ``` +## media.createVideoPlayer8+ + +createVideoPlayer(callback: AsyncCallback\<[VideoPlayer](#videoplayer8)>): void + +异步方式创建视频播放实例,通过注册回调函数获取返回值。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------- | ---- | ------------------------------ | +| callback | AsyncCallback<[VideoPlayer](#videoplayer8)> | 是 | 异步创建视频播放实例回调方法。 | + +**示例:** + +```js +media.createVideoPlayer((error, video) => { + if (typeof(video) != 'undefined') { + videoPlayer = video; + console.info('video createVideoPlayer success'); + } else { + console.info(`video createVideoPlayer fail, error:${error.message}`); + } +}); +``` + +## media.createVideoPlayer8+ + +createVideoPlayer: Promise<[VideoPlayer](#videoplayer8)> + +异步方式创建视频播放实例,通过Promise获取返回值。 + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------- | ----------------------------------- | +| Promise<[VideoPlayer](#videoplayer8)> | 异步创建视频播放实例Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} + +await media.createVideoPlayer.then((video) => { + if (typeof(video) != 'undefined') { + videoPlayer = video; + console.info('video createVideoPlayer success'); + } else { + console.info('video createVideoPlayer fail'); + } +}, failureCallback).catch(catchCallback); +``` + ## media.createAudioRecorder + createAudioRecorder(): AudioRecorder 创建音频录制的实例来控制音频的录制。 @@ -167,8 +226,6 @@ await media.createAudioRecorderAsync.then((audio) => { }, failureCallback).catch(catchCallback); ``` - - ## media.createVideoRecorderAsync8+ createVideoRecorderAsync(callback: AsyncCallback\<[VideoRecorder](#videorecorder8)>): void @@ -647,6 +704,799 @@ audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 | stopped | string | 音频播放停止。 | | error8+ | string | 错误状态。 | +## VideoPlayer8+ + +视频播放管理类,用于管理和播放视频媒体。在调用VideoPlayer的方法前,需要先通过[createVideoPlayer()](#media.createvideoplayer8)构建一个[VideoPlayer](#videoplayer8)实例。 + +视频播放demo可参考:[视频播放开发指导](../../media/video-playback.md) + +### 属性8+ + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ----------- | ---------------------------------- | ---- | ---- | ------------------------------------------------------------ | +| url | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. 本地绝对路径:file:///data/data/ohos.xxx.xxx/files/test.mp4
![zh-cn_image_0000001164217678](figures/zh-cn_image_0000001164217678.png)
**注意事项**:
媒体素材需至少赋予读权限后,才可正常播放 | +| loop | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | +| currentTime | number | 是 | 否 | 视频的当前播放位置。 | +| duration | number | 是 | 否 | 视频时长,返回-1表示直播模式 | +| state | [VideoPlayState](#videoplaystate8) | 是 | 否 | 视频播放的状态。 | +| width | number | 是 | 否 | 视频宽。 | +| height | number | 是 | 否 | 视频高。 | + +### setDisplaySurface8+ + +setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void + +通过回调方式设置SurfaceId。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | -------- | ---- | ------------------------- | +| surfaceId | string | 是 | SurfaceId | +| callback | function | 是 | 设置SurfaceId的回调方法。 | + +**示例:** + +```js +videoPlayer.setDisplaySurface(surfaceId, (err) => { + if (typeof (err) == 'undefined') { + console.info('setDisplaySurface success!'); + } else { + console.info('setDisplaySurface fail!'); + } +}); +``` + +### setDisplaySurface8+ + +setDisplaySurface(surfaceId: string): Promise\ + +通过Promise方式设置SurfaceId。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | --------- | +| surfaceId | string | 是 | SurfaceId | + +**返回值:** + +| 类型 | 说明 | +| ------------- | ------------------------------ | +| Promise | 设置SurfaceId的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.setDisplaySurface(surfaceId).then(() => { + console.info('setDisplaySurface success'); +}, failureCallback).catch(catchCallback); +``` + +### prepare8+ + +prepare(callback: AsyncCallback\): void + +通过回调方式准备播放视频。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------ | +| callback | function | 是 | 准备播放视频的回调方法。 | + +**示例:** + +```js +videoPlayer.prepare((err) => { + if (typeof (err) == 'undefined') { + console.info('prepare success!'); + } else { + console.info('prepare fail!'); + } +}); +``` + +### prepare8+ + +prepare(): Promise\ + +通过Promise方式准备播放视频。 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 准备播放视频的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.prepare().then(() => { + console.info('prepare success'); +}, failureCallback).catch(catchCallback); +``` + +### play8+ + +play(callback: AsyncCallback\): void; + +通过回调方式开始播放视频。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------ | +| callback | function | 是 | 开始播放视频的回调方法。 | + +**示例:** + +```js +videoPlayer.play((err) => { + if (typeof (err) == 'undefined') { + console.info('play success!'); + } else { + console.info('play fail!'); + } +}); +``` + +### play8+ + +play(): Promise\; + +通过Promise方式开始播放视频。 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 开始播放视频的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.play().then(() => { + console.info('play success'); +}, failureCallback).catch(catchCallback); +``` + +### pause8+ + +pause(callback: AsyncCallback\): void + +通过回调方式暂停播放视频。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------ | +| callback | function | 是 | 暂停播放视频的回调方法。 | + +**示例:** + +```js +videoPlayer.pause((err) => { + if (typeof (err) == 'undefined') { + console.info('pause success!'); + } else { + console.info('pause fail!'); + } +}); +``` + +### pause8+ + +pause(): Promise\ + +通过Promise方式暂停播放视频。 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 暂停播放视频的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.pause().then(() => { + console.info('pause success'); +}, failureCallback).catch(catchCallback); +``` + +### stop8+ + +stop(callback: AsyncCallback\): void + +通过回调方式停止播放视频。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------ | +| callback | function | 是 | 停止播放视频的回调方法。 | + +**示例:** + +```js +videoPlayer.stop((err) => { + if (typeof (err) == 'undefined') { + console.info('stop success!'); + } else { + console.info('stop fail!'); + } +}); +``` + +### stop8+ + +stop(): Promise\ + +通过Promise方式停止播放视频。 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 停止播放视频的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.stop().then(() => { + console.info('stop success'); +}, failureCallback).catch(catchCallback); +``` + +### reset8+ + +reset(callback: AsyncCallback\): void + +通过回调方式切换播放视频。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------ | +| callback | function | 是 | 切换播放视频的回调方法。 | + +**示例:** + +```js +videoPlayer.reset((err) => { + if (typeof (err) == 'undefined') { + console.info('reset success!'); + } else { + console.info('reset fail!'); + } +}); +``` + +### reset8+ + +reset(): Promise\ + +通过Promise方式切换播放视频。 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 切换播放视频的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.reset().then(() => { + console.info('reset success'); +}, failureCallback).catch(catchCallback); +``` + +### seek8+ + +seek(timeMs: number, callback: AsyncCallback\): void + +通过回调方式跳转到指定播放位置,默认跳转到指定时间点的下一个关键帧。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒。 | +| callback | function | 是 | 跳转到指定播放位置的回调方法。 | + +**示例:** + +```js +videoPlayer.seek((seekTime, err) => { + if (typeof (err) == 'undefined') { + console.info('seek success!'); + } else { + console.info('seek fail!'); + } +}); +``` + +### seek8+ + +seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\): void + +通过回调方式跳转到指定播放位置。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ---------------------------------------- | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒。 | +| mode | SeekMode | 是 | 跳转模式,具体见[SeekMode](#seekmode8)。 | +| callback | function | 是 | 跳转到指定播放位置的回调方法。 | + +**示例:** + +```js +videoPlayer.seek((seekTime, seekMode, err) => { + if (typeof (err) == 'undefined') { + console.info('seek success!'); + } else { + console.info('seek fail!'); + } +}); +``` + +### seek8+ + +seek(timeMs: number, mode?:SeekMode): Promise\ + +通过Promise方式跳转到指定播放位置,如果没有设置mode则跳转到指定时间点的下一个关键帧。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------- | ---- | -------------------------------------- | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒。 | +| mode | SeekMode | 否 | 跳转模式,具体见[SeekMode](#seekmode8) | + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------------- | +| Promise\ | 跳转到指定播放位置的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.seek(seekTime).then((seekDoneTime) => { // seekDoneTime表示seek完成后的时间点 + console.info('seek success'); +}, failureCallback).catch(catchCallback); + +await videoPlayer.seek(seekTime, seekMode).then((seekDoneTime) => { + console.info('seek success'); +}, failureCallback).catch(catchCallback); +``` + +### setVolume8+ + +setVolume(vol: number, callback: AsyncCallback\): void + +通过回调方式设置音量。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | +| callback | function | 是 | 设置音量的回调方法。 | + +**示例:** + +```js +videoPlayer.setVolume((vol, err) => { + if (typeof (err) == 'undefined') { + console.info('setVolume success!'); + } else { + console.info('setVolume fail!'); + } +}); +``` + +### setVolume8+ + +setVolume(vol: number): Promise\ + +通过Promise方式设置音量。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------- | +| Promise\ | 设置音量的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.setVolume(vol).then() => { + console.info('setVolume success'); +}, failureCallback).catch(catchCallback); +``` + +### release8+ + +release(callback: AsyncCallback\): void + +通过回调方式释放视频资源。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------ | +| callback | function | 是 | 释放视频资源的回调方法。 | + +**示例:** + +```js +videoPlayer.release((err) => { + if (typeof (err) == 'undefined') { + console.info('release success!'); + } else { + console.info('release fail!'); + } +}); +``` + +### release8+ + +release(): Promise\ + +通过Promise方式释放视频资源。 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 释放视频资源的Promise返回值。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.release().then() => { + console.info('release success'); +}, failureCallback).catch(catchCallback); +``` + +### getTrackDescription8+ + +getTrackDescription(callback: AsyncCallback>)>>): void + +通过回调方式获取视频轨道信息。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | -------------------------- | +| callback | function | 是 | 获取视频轨道信息回调方法。 | + +**示例:** + +```js +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('video key is ' + item); + console.info('video value is ' + property); + } +} + +videoPlayer.getTrackDescription((error, arrlist) => { + if (typeof (arrlist) != 'undefined') { + for (let i = 0; i < arrlist.length; i++) { + printfDescription(arrlist[i]); + } + } else { + console.log(`video getTrackDescription fail, error:${error.message}`); + } +}); +``` + +### getTrackDescription8+ + +getTrackDescription(): Promise>)>> + +通过Promise方式获取视频轨道信息。 + +**返回值:** + +| 类型 | 说明 | +| -------------------------------------------------------- | ------------------------------- | +| Promise>)>> | 获取视频轨道信息Promise返回值。 | + +**示例:** + +```js +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('video key is ' + item); + console.info('video value is ' + property); + } +} +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} + +let arrayDescription; +await videoPlayer.getTrackDescription().then((arrlist) => { + if (typeof (arrlist) != 'undefined') { + arrayDescription = arrlist; + } else { + console.log('video getTrackDescription fail'); + } +}, failureCallback).catch(catchCallback); +for (let i = 0; i < arrayDescription.length; i++) { + printfDescription(arrayDescription[i]); +} +``` + +### setSpeed8+ + +setSpeed(speed:number, callback: AsyncCallback\): void + +通过回调方式设置播放速度。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ---------------------------------------------------------- | +| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | +| callback | function | 是 | 设置播放速度的回调方法。 | + +**示例:** + +```js +videoPlayer.setSpeed((speed:number, err) => { + if (typeof (err) == 'undefined') { + console.info('setSpeed success!'); + } else { + console.info('setSpeed fail!'); + } +}); +``` + +### setSpeed8+ + +setSpeed(speed:number): Promise\ + +通过Promise方式设置播放速度。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------------------------------------------- | +| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | + +**示例:** + +```js +function failureCallback(error) { + console.info(`video failureCallback, error:${error.message}`); +} +function catchCallback(error) { + console.info(`video catchCallback, error:${error.message}`); +} +await videoPlayer.setSpeed(speed).then() => { + console.info('setSpeed success'); +}, failureCallback).catch(catchCallback); +``` + +### on('playbackCompleted')8+ + +on(type: 'playbackCompleted', callback: Callback\): void + +开始监听视频播放完成事件。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ----------------------------------------------------------- | +| type | string | 是 | 视频播放完成事件回调类型,支持的事件:'playbackCompleted'。 | +| callback | function | 是 | 视频播放完成事件回调方法。 | + +**示例:** + +```js +videoPlayer.on('playbackCompleted', () => { + console.info('playbackCompleted success!'); +}); +``` + +### on('bufferingUpdate')8+ + +on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void + +开始监听视频缓存更新事件。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | +| callback | function | 是 | 视频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | + +**示例:** + +```js +videoPlayer.on('bufferingUpdate', (infoType, value) => { + console.log('video bufferingInfo type: ' + infoType); + console.log('video bufferingInfo value: ' + value); +}); +``` + +### on('startRenderFrame')8+ + +on(type: 'startRenderFrame', callback: Callback\): void + +开始监听视频播放首帧送显上报事件。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频播放首帧送显上报事件回调类型,支持的事件:'startRenderFrame'。 | +| callback | function | 是 | 视频播放首帧送显上报事件回调方法。 | + +**示例:** + +```js +videoPlayer.on('startRenderFrame', () => { + console.info('startRenderFrame success!'); +}); +``` + +### on('videoSizeChanged')8+ + +on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void + +开始监听视频播放宽高变化事件。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频播放宽高变化事件回调类型,支持的事件:'videoSizeChanged'。 | +| callback | function | 是 | 视频播放宽高变化事件回调方法,width表示宽,height表示高。 | + +**示例:** + +```js +videoPlayer.on('videoSizeChanged', (width, height) => { + console.log('video width is: ' + width); + console.log('video height is: ' + height); +}); +``` + +### on('error')8+ + +on(type: 'error', callback: ErrorCallback): void + +开始监听视频播放错误事件。 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':视频播放中发生错误,触发该事件。 | +| callback | function | 是 | 播放错误事件回调方法。 | + +**示例:** + +```js +videoPlayer.on('error', (error) => { // 设置'error'事件回调 + console.info(`video error called, errName is ${error.name}`); // 打印错误类型名称 + console.info(`video error called, errCode is ${error.code}`); // 打印错误码 + console.info(`video error called, errMessage is ${error.message}`);// 打印错误类型详细描述 +}); +videoPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 +``` + +## VideoPlayState8+ + +视频播放的状态机,可通过state属性获取当前状态。 + +| 名称 | 类型 | 描述 | +| -------- | ------ | -------------- | +| idle | string | 视频播放空闲。 | +| prepared | string | 视频播放准备。 | +| playing | string | 视频正在播放。 | +| paused | string | 视频暂停播放。 | +| stopped | string | 视频播放停止。 | +| error | string | 错误状态。 | + +## SeekMode8+ + +视频播放的Seek模式枚举,可通过seek方法作为参数传递下去。 + +| 名称 | 值 | 描述 | +| ----------------- | ---- | ------------------------------------------------------------ | +| SEEK_NEXT_SYNC | 0 | 表示跳转到指定时间点的下一个关键帧,建议向后快进的时候用这个枚举值 | +| SEEK_PREV_SYNC | 1 | 表示跳转到指定时间点的上一个关键帧,建议向前快进的时候用这个枚举值 | +| SEEK_CLOSEST_SYNC | 2 | 表示跳转到指定时间点最近的关键帧。 | +| SEEK_CLOSEST | 3 | 表示精确跳转到指定时间点。 | + +## PlaybackSpeed8+ + +视频播放的倍速枚举,可通过setSpeed方法作为参数传递下去。 + +| 名称 | 值 | 描述 | +| -------------------- | ---- | ------------------------------ | +| SPEED_FORWARD_0_75_X | 0 | 表示视频播放正常播速的0.75倍。 | +| SPEED_FORWARD_1_00_X | 1 | 表示视频播放正常播速。 | +| SPEED_FORWARD_1_25_X | 2 | 表示视频播放正常播速的1.25倍。 | +| SPEED_FORWARD_1_75_X | 3 | 表示视频播放正常播速的1.75倍。 | +| SPEED_FORWARD_2_00_X | 4 | 表示视频播放正常播速的2.00倍。 | + ## MediaDescription8+ ### [key : string] : any -- GitLab