From b222f8c57800d2800fe82aee8974bc2a5bdb7da7 Mon Sep 17 00:00:00 2001 From: Thomas Dodds Date: 2024年5月24日 15:15:49 +0100 Subject: [PATCH] Superpowered JS SDK v2.6.8 1) Fix for AudioInMemory dynamic content loading 2) Fix for potential infinite loop in AAC decoding --- dist/Superpowered.js | 2 +- dist/superpowered-npm.wasm | Bin 1314243 -> 1314787 bytes dist/superpowered.wasm | Bin 1314368 -> 1314912 bytes examples/example_effects/Superpowered.js | 2 +- .../example_guitardistortion/Superpowered.js | 2 +- examples/example_pitchbend/Superpowered.js | 869 ++++++++++++++++++ .../example_timestretching/Superpowered.js | 2 +- 7 files changed, 873 insertions(+), 4 deletions(-) create mode 100644 examples/example_pitchbend/Superpowered.js diff --git a/dist/Superpowered.js b/dist/Superpowered.js index 79e9341..3f59111 100644 --- a/dist/Superpowered.js +++ b/dist/Superpowered.js @@ -3,7 +3,7 @@ class SuperpoweredGlue { - static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.7/dist/superpowered-npm.wasm" + static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.8/dist/superpowered-npm.wasm" niceSize(bytes) { if (bytes == 0) return '0 byte'; else if (bytes == 1) return '1 byte'; diff --git a/dist/superpowered-npm.wasm b/dist/superpowered-npm.wasm index 03832bd888fb7afbf0afdb7d02f011dcc01e7c58..4c72914cc4466949f981cce86a175a6dd94b2c0b 100755 GIT binary patch delta 52364 zcmc${31AgP)<4?sd*|lh7quver5t+vgjep31h@?ei>!*{h9JtK6C4%AWoFbHmr+zy zOa~ixa2c6#1GkGCf-5sFprWFppyR^0jLeMt`hKUX@69FR%=g~^z4tL=s=De_)u~fw zt5el|pSX7B-)@|_qSjXCX{l6-rPhyGtuiy%rT(eh)E1t2dgAD#=by6hn57G+EnIs1 zNehlXS}}vwS~)--)Q*hZW!_=t=jV5_R4eGNcS~7?631~SmS6WP3eT zwbYz^pgM&qrll%VLDocEQ<^tC$H*!D^sTEE-BI9c!bhmZf;A9!(JI0kC3CQ!E99G4Kcf&?NY?d0-4>hu{hA ztl%ee2s(-rzW0u>nwj>M)+bmps3=I=CE7o7uW98Yl7cYRRoQ_IH`qI*IM~_S(XP<@p@}>TC!ccC{Dr5U+B9m6%d~1jAo#GlQ2R+8g7GSX;=X07`w*4G3C>l?Q8TO4;Km;gZ(ZQr2!9j5W9h5SyEd zf|Cctf~o-twhC3QV63YpJT26<=)8(ukh0-+2rf(rb#ozlcfctaubcwpvty}{godm9 z8CYt3BN((e*gMcNF`LtsHQ7h8>^B8F2li*HvxQ*bePHPECUjc@hA(7)jBTNk9Wk1~+HB`038<1gimuhu?i$iv zyARy5Zb)gY7IHZ4*Jm~@Qtp8?bYlY}TV z(uX4+dg6dm?QyM=_{kPa_hjaQP|u43eFieh&>YAHLOMp zbkSOBo+rhU4<0vqqfh$^dw^fdqmu6|zt0dahxgo|0zswoyi0j)@c5s7reuycxwo{* zZ1C*q$_qjF5xt1dnw1xk?QIapy-Yblzn4G-KB8xEeQknmMK?tS!~6vchCsE<8jnlk z9&D}csa~cBJw{Z?g`!USv6qEX+C9QRcg@Nx(UTseMi}h1%#&oBSFu7bj3^Br9+6<% zqbi4Go5-oZhM_A(UvD5+AsKL|%+j3S3>Me**Iw5K1;45565LZ)#&*a`nj*m!1wBSu z7EQBR*&W13_F(S@HTe5ZFm+@<_etndsy(2zah#fote)>vhA;LiDh{@dG}(Is!I|}X z@YzU%eUN#|6N=$|tyc!Ne|^IETehjtX3a{rv7FNf!Eft(usy-m`1?`tApZV6c)h+~ z&~sFUBqdc-nqgR2|*vM+)s8v1HqYgNK#s-rt=pGNt9qdT)tg3+Vv*rhOc zCBdbm%h->>&7*777Cm@z^lb64Ugt@aZ5yTr~+70@_qN<^b z2)i2N_S05p1|n3}U=`sXB6kaU9#VVUst*xPMen9E?PlaRH+2u@HWfp~xA>*O-A#E? zjQ8Muo>?lVrdPB0dprPq1Qwq1~%D3U}zi302Vk zZ%-Jl-JuT@C1WQRu)Bll6Nj>O!MPJFwTJX>!RCo2?Jm&<6qg0bp8`f0m6o(l@k63) z)TDmw;b76EGqkA+sGq8`jBCwSqs_pex0)*}jGN5l?ZzEO@5|edB%OMsu~9yv|HsZ6;UAlB>+nOs+JOZD#UaV}*I8*=h!6@(MHgnUVa& zNPcXHb{`lY8mRx9@t%=<4ドルg889ygw(eebxp+ms7$>2tHmRlkijCq!no+MHNxbVbo~$UQA`dngzD^|Kk{Ue^1n$_S0C zNj1q;uKBz+Z-2U{)T&dt(v;5x4mHjGH|J$hP^bxEh+5U(r6gX} zT?LpvsWjtRNxY^9!9Qo@@6cU6&SE~m6R!uK{c{t0DOmTf`BiV~5gkN^NFy>tERg{& zZ{9oN--nj5ba;6l8_Lq@&3WwoL2P|^TRj_rWLG`wUbN1PtFgxN0gZ=z=YBJm>uVD0 z!o(;xV(NOTAVenV$;Ox515#(b-gy&O9tMD@Q6A2guBIXoQQ=C!ncvdV^1U@9U+Ibh z%?BR$guy80R-i{M#`SBW4)nx&b2&BB6YJ7jN3o?U`)k-ZhMiaXS3TycT*t~WU%|v# zwOZB5O79%Qi~?q*-<`@xdqv5b&9m8tbu~#~2ebv9a*bj_79ahd~pR#Atc?;M$*6B&z zHDf+=Rngc$<2ego7rQcn|&a~On>Dec-SsHsLy!#a3@??1Msca5L zT6Zezqp>aN9jCLi`^PrwTnABnHSt(D?&>ErQf}oX`R`Yi1ドルuY;XgI~!Ts8&%f?-DHB$$trk&kW@waJ< zy@Dz%vA^RBrP=L|(R5#3+U&3UL20g571trb6T)YZ&?(%(boz%SV|A~urKfzwHAEY2 zX|ro<$?=o8egi{nyh!5tx3q)djnyktj{mjyju~$@+)-e{@sr;99uw8y@z-44w$btb z|9A!jR032?6uPx4Sf-zVugR zo}AQ+^DIE3fdZJzlX~|8K?k3M&wnI>Je1VWOIeT>HHE%^VoQiv1C3ドル_mPfDN3UxBn ziw$)0xVe}c=oDh0qN!}x_z9qkTS9C}dGu6?o-o%41_j+v0GLufoL8Z5K}*K1#a@Mf z&XSbdi&yw;iQ5~Ebl(6Q_n>v+Z1JgnYJ%HGOJezo)Fdx&%7@w#t7-CbU!MVt%Kh(u z`spWYiD$Sb>KIn82(m=81$K;vY8I%mQ`+-tPF_pN2e%0L>&+mTL97@<&)o1?vmy5} z)+58ドルX26=XP$q{KYxcm>q6tt`csaU|!*e2|fez3yEju3Fyl73uB+9q}gi}eh>w%U< zysQ}v=yhrKmpKG2)WBN1nI!Mmk3jf+=DMJjGBuy^O41E9bD?YmrSsfftIW zIzd#AaF0qx(L^%Uqd{yFbViXvK(?2uY3MlLT0RMSk&kU_g_<1e#(h58t8wwhk?pha zt2Z)BhExNu2P6O|0elqq@wb*I+ge+_(F8OKSdMf@@p`vTaGhuJ3Zgof{FNmW)-+%1 ziYbDO*8hw>x)W2R3TY{<4*y?_h(8f2{ji5S5qpT?_sbp_ zUQX3Dpy$YU0#h}+9(Ojn&4N$V96s@Wkxv8z=JOI-yh2)k&nCGV!&9ZS#Q9Jc^qg#S zr*PCm0Y=3}Kd|yx4k(?VUk1 zr0z{_b7z1}$F#WzVWB6d+T58~d^{e`Cv#LD!N<_kk<=gt7i7v)>`vrkz}>)6_YMP3 zC&3XwQy?x-n(B^}gUxoEz@#Jj$Tsv|3uYSYHSh+cN3?Py7sGLUTwAMqM2a`@CSt!j zz>N3mc|Fo2TV-bl@&f^LBsI*?NcS4~#5O*mm5-w_CeauH0YKU1A~cpNKqf)f(O_$S zXe&REh8jgf!K0P*OW^^;o5mZ20E|QDt-KLkcR+W9=x-XI4sjWU$^(U@j7EnMuA*Cz zxq(`@w(*&*9BqIm`k#qL07dEHBx7}Gj?%-iBn_zm5PXIhGZ16Y>eL5-;0Lu*tAOyu zV$mF-AID)W4#ZlFfMAY-P&QyW>aiS+Sb@=QQzWE*XCb6$BX~kA+`;G`LxO5ETfKTQ zKbxmAOm!gX3vV2s$`5M;Cme!#)wg;x+b~l!n}O9F*%n}Z4hCG%>W#pZrUD9}htcz7 z>bjwgPiqAP(eOY)L*fC+4M&JE$BI$F4*@)~ma+V>6b*NX98RqLOpY;6ドルI;hCRZIWU z*18h9%Nt3ht%DLsN9t zAlfQKvI9|oe-i|iH$cQhDu^;%q5kMl;$=i>@9?V^eIG%^erSy7~V|jC|NoIrW_cIS?*3I1K;M2 zTkbXr7l@I6->!sUBhi#(&h@EO_be(P^$XvCSj`>HE$N=5oMx;S)Y2p`$){r3$Sy!h zK)}G>Q^3*Sqe)~1O%Bk}m^*++2+$-c7qp&2)_N4dSX@{&01_V_Ogs-w)5<4!by!|7 zCS*7=?4moLr$&;dsRJzJozKSKS}+9qn?U`I0JZ8ss#*|nG{}+!P2=Qr#v?DFO!xu5 zx_ElNPW}yyzjO+5jvM(Z`}%|)S$ebG=BL`7GL&{S`m_u#9BHB*1q35p zbB#WQB)a(6RoRlU7Q>;_att+g2a%JTqRp=Ka^1x->7o@&J58fDd->?zJDd!#&5N78 zLVARmTqIcpB_@>|2=cneQJHkk2-NDQ#=U9MbmI}6759GA<}t%^u)xqtrjnbovctb= zN_20AU^DNeHurQYP(0{-N=|Nb&k!V_PDL-Z9Q~XrJE-I6;kUABJxAl;$yN;c_1a$(mFo2HchZD>^F@NDR#Q6~rrX$@XKNybh;p8q58cW<+l(d^2 z+@mO?d#O|1V>n0{_l||NM#lE$yJIM$dkY{f2fE|INE7&kj6X3A4nQN=bZ%szK@-Sx z+*`;O!c5MUs#3ZW(>-5k-4lc=w>@EIfHN5(%#J*b87YqxaVtMs!04XPx|onqj?!~E z2-b)Efq9WdI1DDM6_Y&^>U(rtq8!Yz6lA~}&7uhg7>vv^NpE)Q)5O%5^3yPBSe&D1iUEyJ1Q4Py zUCjD4emdrh1v-YN7XT5OI{-*PXu_xSGcZ+{uE{jB02qtiD8V`kUk$SrEku@G3?M>p>(GEbjAZq`n*Yv3yAzihWqdwA1&$Q7U@KM_oCQvXPbH}VKMSnh z2v8VNP-8y80DDS1HBx9%CuFgaoUYS=oN&)*6U0vt)R-=sgIy&xPNDHm6yyCTYK)BL zGD)OFjp-PM|CXphEZ>L$V7yZiIhrInh#GamJ39){V6i4@K8c)GNfM9TGvUF&S3i^- zbBGFrl-x*RMH=}GvGfc0scq2CClMiAy(#3c0{k2ZGyHequg)MUq`)$K0l)xzDivVb zGoW<%??@kz=rszbb11biit}ho)(kobyuthi4r?|p4l75pgfwsv?s4e~efbwyg?*8t z7V5~qd>9_0%3f99E{b;S*oNO2{;8^2KQZ%aTpE?xq6*wf0F^6ECI1wAwaR)iNgW` zMwnfc(vAj+4n-nhMo<#r(1ドルp!9kkq?m4ys4^cf6658=nq_u2d1-npwb*xnqv+?@$$ zegOP0bScKRv6G3c5yBUQjOS!5ynBQk1K}D%=U_ST6k)otK@->@ge12;tQka`0UMrz zv>ppiC;Q#XCqYUfj>mynA$OC>trwwSALIsfqW~qn*NW!H(KbbFjU2h{L8k~-@Ocz* zfW~j-NzW%6zKD!zt2aB_-4v|R^fsOZDD=-rz6kx*l84jkB?-vkVw-~g4u&;2x(zD} zdy41-tQH)I1*CVNQ?vaYiN&5qyRxIvQ4?Q)zjfqbAxt8>vuW3Z?v4O!oj`m4;W-X7W$|#gx#@VENTtAL+#L_|Y%r>Sy zmM#b)V(I@SSenP(W*jt>Awjn?N<19_avv0ql^cl_<%cf=?{|#Ao7UtiVq$_7#7HmgwA-7mUN*fI68BmPxftxJ=4r zl8}il6NMK<2o*wg2vlwqn5mg?hwz9qm^pzpz*fd-wzz5oln+p$eha*w4ol}i_lsh0 zS?ozYgRm^1BLnR55l*IJBc~Yj#fIEQtK1q3T$U{X8X7tfN0QJ~bf}Y(1frpV4Gx3o zEGI&OV~LvmXXKe0p+M6R2mtlyP$)V_l63Xx$Pp)v+7j2M9`PRq-8DMHGW_pR?4WBR zttXBbmp1bhL(BpQ*OCnS>=d+Cm&z@8PPzIE<=qwliz6;a9^2ub+=vfn0n93uusj=a z7#+7pld&bUBtZ4ドルPEZT!a50*WTrPESW;R$bhvt|wA&%ojIY2?qlt2(!A!n6Sg%vYW zzfhPV^U0={QwhU=dv`975lDwB9o%j^Sw?==OlZ^P2rXLRz?k zb@$~7Gow>1I%e>%d#Rf|UP6sU=gyh`fk`9b#ffSI9q)Uk`q^UH!B2R+hnL>7(hwFC zHhUfjEs<_cc`<^vdfh0f6_xn&o$xqs-4ssnakxdzi6{paz`%7b4l!9=ki{orb8vl( zJRu(kb_8J(gb4!02z_xdZjl=5%8P2%2045oPPV0X@O58HTqR7#GItqk1 zAQ(jwVF{^*nBlBk=qsuxv1pdq6VU!ZNJ0P-K5&fQqdJm^7)V7ZnHdyBT#-(%1ulU8 z0njNT8ss!4#fXmFygXl*PX#_Cwu8F!Q!bM{z-#0=%1{faEp)a#=v~O}7eg zBVsXB^}bbP6spjQ4*yvZ)|5yqFN$pY2}C*|y!%+aJVhWLR#O$VEqNz2d)@pk-J0EA zqCmspdZozW6u;T+jhRy16ut7wW`70F{`*h|P;GyfIO!=~DeeT=gchk$H=p-H-d^ef zixM=naj=hm%8AcYyd0e|v3ASe2U=pLULKfH8XcOr*BzIbGUwnucz2$+*y{qt51uW- zb&4Li-GHT6gqs2rBhQARQwk}dxWwhWKO}(yon29&Pj(@6;^GS&)6`g=FDAfCDKQp% z9`AC(Js94=br$lWJu#4UN$Khf?~N&RrMnKeydZBZxSgVE%nH&gBa()2>OgnlbAcbC zgSnVIdx!HB$KEA{%|H2G$jY3a%_%ZB3PBm#A&HHv$V(77Bjg|Elv95ctHK#H?k-_q zgA&AG$vQ!F1-A)SULB=9PeuHYt^E%^oc=;ws{f4m57$bcUsi^j;~4(7|P(=r#)p8Xb0nnf>?Z ziWdA2e>Y`t@k=NjHvulerJJQ*zBsdmYU`&q$fdABUKmvhAITD0P*me)6s;7BWe%G& zDjw5ドルrLcLSa%4p~u8ztFBeqj7ie;`9&LxU#;J+di2xysWg};g7>TI#hwZbh$aTSg< zu)7De%(cQ}MKRA7iyY!1@Mck7nJt&ORye&VF3%Rr9G&r^xHwxZbFFZVQJlyY%UmnG zWfaG=#WL55m>i026sIJLltu6Z0VtH~S#X)7Ff)pkY_ZI>x)Xio#(AmF=;8=0CN3Ic zZRkb|{jniMbPoZXDNmLfWCtWK*+oi?q6kA~l?25Q+4=cGi5i4!f4)?r1~EX?bXYA> zg8&_BYOs@`xNx*!qGlx3q@v~9chQ`PoWhA?Jvi{jDWV571^m%bDU6MOAi5Gv{5Uk-~y5O19O( zH|c~eBjxIls}s3l$kmJ7VB{J^t_Hc0B3F%ElgL#eH(KO4a#KaF61fS;;XYD1vSUPH zF>+%?E`i*5k&7cYN91he=8Bw-+(eO6pb4O-0S@;OiWRQTV$XrrgP9Uq&ofB};$|wT zLsB)0zwAe7lR|g`%V2d=?qH$uUaw`C|S*^O_99~H39L@nbgN~R=%qyV>T(!~ZLKn~HouzZ(Vm#?U z=ko&~hu#2Og2wO(J_JvwB*$g2Ok=!SmbnQG;Dby9l*d}2- z0*e6?ydHGYo-h2832t9n=%H|~E!?ym3e*JZ_q8x`t5URS@HkBoGausi#Fzt#fSBF= zm>o6`D_Z5|AyZw74x~p#-mqKDE3v3~SmbhQi~s0`P!ay4Jy#x4tG-+I*AbW$pDeN$a)Ew`X&*TItMAdPMF&OA__@z2j z1TLG7q|GJ*`~7%P4$^c{16~{OdQJl1PFZ~_cSYq=Heu~Lfo*8dMe7DKfX|}!N@5&a zjALfIq2Ovgw_V(PZXcTl!;Ubs^295i`LpH62B8Ca$R~$GN`!+b<*ea0eyqi%g=eos zlmdhs4(ZaYZdgLm6RceGbg;GT5B&?>0ELVGQs{6$%7Lm#GeHReo^&%PAqxK+IAm^L zok6jns56Blm(dw@2!XnzQlMKA7KPSAXiX9na#zKD=`E7~uvIaDMwT9NF3ドル&51U*=! z+r&OKE}A0Ng-hp=l-d4YWDZx^PX{ka^(Pv;@f6Lk9thxa_=E})99Yvt1@Bvdh3N$D zq4kG@EPN~BBjfg0EgyX})~DWWAaTJx6rAa;gyVwyC^5OkM$nDk0#I-Vq(bZxaAB7> z$Q&*;i~Ihy?$=Uc|F6kdV&faH8!vzDXL3IdFJ_80;p!sJ?hDs?I!)a+X@!Gh&8Eg?qFW!ple za`M}9^4oLrJ96?nbMm`$^6zEyCSEWBZ&nKFjzLEc;$DS25Ng@t-74Ikh|KWt=~MLX zsTfFI=I<8j5kjt$ea(s&d2jmyhqess14kn(4po4}#xvnuxiaw1a4jsd71jue4k+as z8Pqx5l!5Hh-45t1y6ZvP48ドル#IpN@NeTj~*?o#x+l!>2#6=2|KSi=fK(#<%tllu@oy zCOQ<&j~cxo#o?&u+~lK3zR zij(Jq0?N};!-!&&>lu>)J5T_LCKTf^_&^GGWEx?YIRmA#LAFZnmccz;z5FQ{6;cQ} zFtZULFz;@P0a0AU?Ta{*(DF~VFpOu0gHF>+G{@f^o^YC89xEU}$rip^*nFDa)s}gG zkEqT(eIlOXq7FiaP=Fn7I}M+Ese%eZ>~VE#H&O)<6ptwfgaip%g3dmc9b0vivj;ez z+CyG!IlM&S&ep(pq?esgEy7STB9+fHluuuyYZGXe{<=r2dov&ln&_r1=!=v9y1p({{vkr}-ct3x zaB&eBX|a1KCFQs=jieH1jI_^okKi#%j^=S9KzDhCavs&`?vYfdyT?+U?)IQM9mlq$ zG;juqI@?`9b+*f?&UP13T^!K_)WzN7s4fl3TMy4L6FCSyWf<_nkaw_b7rlzk>Lj2a1dOaPovwg!@CN z<#u#zzyi!u95x!2l?y+rds@~xo~qo5^i=gy(o+pc72&bi+cre6bh~wbrq4ob8r()o zaGp?1oSnMa%f>B99kGjHMB62!9okCki+Fpbi+F@*(l8^(697Hi~Q^g54VLd z$x51HCEiqMtwWylb7$T=(?Fip0~W>>hs*>6xr3(e%zI^E4$Ab0^ZO}ui=<912283r zK;1Gx(=$N0|1g^lU+WOmHlV&cb1wsPdfrb1iSzeBEy0eD6E|@h;?m@D=808ar3Nt;7W{NQMbXk!= z1x|SBDmZ3`H?)qI<#cixpn%*v;;1>FFOuap%9~(e_(E|`-ignb<%m9u9e{viiy#{4 z!{^CzOaQM_!=e~SQn2tAJyL)XhMtZ|@Z=!=fg}!N*N|Db14uhb=sf37kkW*l> zubcwcedW}IoI34-y&pME5qpxLcFnN-eg)Npb5+>h(SGIB6mnXc>1V%kYQpX5%u6yb zi^hu=0U(39f@%suEy@5%LG2)?Cgc<$o(#-><8NRmwyk(atCl0_0r6p@aZABiDJB#KC*%!?$Dgb_t# z-XTi2g*`+O2_9KLKA$dzX9bT8AD@Sp>h>dek=&8R`_F=ht4qTFj*)My zz)Pns1){1X#@f^h&mi}@FO}e&xGy$ju#`PvDWlUy1ZKVH7&6>^o?dSE=Y6R~LHN#j zdTBYfMtJWTemoQR=A|Ex07qDOzO0S!w|4aTdYvs_na7t2&N&}jcoUxxfP1c^3xCWs z5#q*;2#WY(^FU^s_C<7n%~e=+gke)=fos)!ck9ms8kf)tck3p6affd@m|(sbxqcwk z5CgrU+d1N@5$(w6;~rKjXC%;P2~a^?6(KeZFAiS~e@y!oou8x7bzcndVHhCXf*TbQ zE$sFpTz>{Au}T3g5z3U8D&U^%XP&>%mL`#<6!pmv5w4er3ojjbvt)=tw+fa~qdp$e z3(}$-0tYG325{IbWvFH6JVcdxZe{i%szk6jLvg<)`yfef_zg=u-pb1|w1z?2mjr{z zhZHRpk%H=R_R`)}_93c_=T>GPqRN8Y%It%0yW9ドルwK51e{I3#i*6V3Q0h-8-x4mf^k z07ドルR=4O5(3nSF>VOLHr;4}QEIhj@fTc{^mvZ)tzZ;D7_Cb{w(~(J;7t(q5T;h$`{! ze|u&2!B4c~kce>L5;8@S;*#}g* z%;yvqtEU?r8Yx#qT}ioSh)Rkzlg|W*MZ1h1b;2nZ>)j5q7ek>a8SM=n)ME;Cm_kaM zLMbXr&@Td5n2gSCC~16=NjxD?1{IFeMjFQ=J&?(Vk6f%bq);n9-_#B)H3d{TSu$Lc ziHY4{58TfaBZ(R0jP$eCD)54)i?E4w^Dhl^IL4vl5gg5k>p!Gz#q1O^4M5qz*(!{u z2RkB$ryDcq8a2^mv}~S2>sbpFZoNe3DFG7^S>&bRAmsMfgQ&%2rvFfj)0F+!(p6nV z9ivN31^A3ob5;7pOZAaw;)7gkHRB`AO5^iQusz}1w$VLITSgi+C)q}EA-;!oL76dq zg3l6RLN4}87va!Va^pS@cPhY}ThVCw-7h9R0xXbvqWz&nQJSfcVze8OCqR*ZwY_}Rwy@7JW(|8aG>{D_oMiT4RbOj~ zzsga_h5K5gY3_lSns_QR_V-$NGEls~R_zVrvHsc?{aADtSH zmifB#xdz2VJ*Ib_Z63plzSewJuM|_?SJLJsFR?Y8nKCD<7%6$ks*m`nhnkxnezn_v zW?|{)m_8uC!UkkwK3ySz{C%Z|Kc&o)|7lPCyMCp|%X7LZ%XAYj3t5X<^gr#w2p}~o z{p@p1uhU*VUWQId3ACJ9tM1jqb-=!}Kv-f)!_=zpg*yOFv-|#Bvx034%g;0GQ>(S6 ze4OSCQ0|;b8IT??N|BygYe?+&fcdDKby2#S(p0UwmJ#qO&5KD@LI+GJXwwjIwRo&n zT@I$<@mh76ddqe+xsgrw`nvtlx52hr9ugvm(ga{r%n60y^uq;%2vli>DUic{i55cE zlmqkQ@ghOJ)lrN8hH3cQ^G)9AbG&s%6S#9G^+>kPy{^L(h*-C_BKX7AJn zP3R!c;wAOUi(o?DwO-jqX?eY}mC}NGy_t`5?ek;&vBxxwWLu$MZns4wjEw2ドル_mUwn-nUtrlGLxdyRMY!PZ>ujWDc6%RoLd5@0P z|8uN3c*4@?atEEnf=c+_UE=w0=SAj4-L|Un&UhaH~^VkiViUSeB#=Q6Xbcpn|mlnL=lYmzzV$B7yri z!%*FQg?Sy@5>8!Vc7c9fv?79Dgv z)cq7P*Lb<2v%$mimfd2oybqqmli)86knd}7k47xhl@+y^@0v4wpqux?!q7xxyt`$b ziD5Wb31-Hp#3?O}m>XS3%nh-SXpxT0=beO#3m>}D%x}!qYmmRv#CEkS(C#H$fbHCj zID&OMQI8~@@OFKLLNkK)VXW1hR=Y03;TB4vJ@23tL#@SctVrS7UsvJft)@E-SXj`m znaN_`q!^Y6)5#}Zl#inC#EUAnNdSRX4!>_ThaXDzPR74T%t?Df zkh3;oHO}24TY*ZUd_;;#V8N<`mm#z1^{h@g~dl9 zDYo`M9xZ&h&74(2j1aK_DL3j1BlKKp4j!M;^?7mu1r{(Yzz|McbXS)|EK>N19neJB zq~Y}&vET3ドルUbWI3%H9kAveK+fWwadIF;0KGr@<6v>s3=1O$VPK)A>|7}`d0kM6F zDQKzt=c=Q~h~X2YSisNq^slcnr!dk{4`90x%jlRGG?=%_oZBPQ&*wVrs%jn{uh5Gd zk+p{2x^b0R6(cV}jD~JrSY=Lt)+xE#oX4;QIsF>36S?^sGX*UYd0|V1Q!Xew{91Dw zdnG*oT5~#kJ$&g}voD^$zZRP7mGHvr%%0F=f2QP>@P+HlI?^Qe^=1;9Wb*Z9H+nq& zdg=1Ma=lp(1)8|Q9ALsp%S*fwj=#Yi1En9He}g0ドルM1TGUD4jjwhc}o#YTlz4Tts{T zd`h2ijaCX_~@nvL*M*WP3ns?M8|&k{SsO}Ch3&K?X!bY2(Uy~gZ4 z653GezGe*0=xBd>u6Z z!)?I&t?-W9%wFv6@TJ?#Iuyp%nl22?fVJiTcP|`1`tqo31{o*o4V?w;(!7}GCw7Iu zUu#y-7^~KrAA7WGI#9e-iA9Qwcgo1Ha}i0ドルcNxJKxBkhjs@$!TDktNqCM)zBHPL@BRHyc3>y2X+*D!prV3cUA)gSJrqLK;qoXfT;8W78XCJ z!z=GJyBv`59WllyI=*&G%NFGq$G~reWP(1S?H4B@L)D(}tvk)0VuE*>5ドルFcYE^}aC zI2ZTSsWsv&me>(-eKWw5l7 zks+fDt|k27DQoM^BiM`Kob~1?^-DdxX1zJC@N;lNtX@HIM9S*N>&-6JFN(FX+Si7@ zOASPz+M)Em)Uj3sz9+1?$Lu{|lSc6r$Xj1+2eR0fQFa@37ドルOr3EOyL<%i+|ak6ajd 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ドルqz2QYANkW0cccfF*@u+o zl#80g9bquQzM(P#C#850aSu5dc#Vp9eqDOnK>J;W@dppK56IKkYq722nqs>&JiFe$ zS(2%rOuB>%N7;w52hxv@vVWs?*`UD@pc@&)h?qKgXxPdoHl)Xou{UYBbEc28OH}q~ zx@)6tvxCf@xf-UB?Q-4wn!&F%)y^A5JZMcZz( z?6NK>_IhMJlht1Ln;(F#?v@DB(`MO~TIrRV+k)9M3z+z7aq2=$$MVe7ドル(*2|O-5&A!mWInF0%*=NzS6gj$Ur>*voYtA*FbVURHOk z3xATmRNT@5mpeK_=Jc|zV_kR>ngf?hJNEKON64IBHg&8EcgbG96G^)4R(q1kUQW-u z9f583TKe4k?JHHtdC>;@Ldf|w8*E0ドルg{+$&vG0YoI_y#VaqvRdjrK-uU|Jj%A%KKP zkCI4hbYm9FQv)HwrQXD@NGZ^hlGv3tAGa5n?Ctd8Ep~pKJrw?SyX~^a)7NgdKh)6m z`8&V^@22nAVGn2Q;q<$&+t0_?2kcy1l%zuqq}+naj8o@9ch`0i9}70?^@%-$euv`! z6MKOL8}r7$?NV25S(E-(v2&cm+R{gMcUp|$SCMgoih=tI1qx)Y5}4DE)*?U)SqM7- zP*J+D%BdowKdg`Qu|A?h9}Io?;@gna3*0Zn?mF}$io!!{oZ0B)o*L&ywWz&~FqZI{ z!*IbM=Sp}7Uk-AHBI!HWX@qld;$Wv%e_n-8@t0a>X!?!8&QmI+YV`pQ3D>p*oFgED z{f0UBGPWvwd${w+pcll&HcXKm#^=e@Ae(?=fmDxDJ4)k;x6|l%nO3n|bzzbOWujv- z@hh$PY1JRY6L5VS>vK=N!&Urn?8^;K4SVLQ(auqLSTcql!b|pfDjt(tcf&qU)nl`D z@n-~MRMJl*)`UIAI0vQM+Br)0P zGJK21aVS(Nw&P-|bkafxfeBf|_g53no$U0DnpWok;JX1iO>6d76F!1bvDJHZGR~?% zf#;?>laQ3maFR4ドルo#9LYhBwV{o}!=0J${zc9mz#VDxyi_Xcr1>yrLY_h(8LxFp_vC z+%(In1l(J*oG#Wgbcw@t!rhac5_}9AlZ$)Ng#J%veBvQa&k9MB+!<$y72a`((q~42|M4r?0|0WV-VWd$>hvb6BaEMm18q`7527ZQ z>e-s`>_Y|B!$X~g8kYWtBeFwPdf3^(Ev2m~!~aMXZ3%}Q35sqBryuF`CY({5J0gBB zJA%97Na{EIlLUYINT-Ue4L?58spz{_=nKJExVDU#9NHL(e?*D{A9J8*=!v!ApxNkS zZ8&+hb0CdHS|*1+*b~FKAe`<3tm%porx*fmdq9kgoze_=2iv6diy&7!gwjwbbfmqi ze~aeF6LkcsB%TVd{CUw!KQAge`ezLf`FYXGpBKIQ^P;kO&M>h1)Ok)<6^dz*9qv{d zPnR6)3}^3#n~nvQcZF{q>+HbB=7IUne3h-ft?MF(v3t@L2ドルoe8tqJ)l&NOy=`ovS5 zWvuf9bd7;1g!3{d@bVK6r0u27zvFB}`ui4VkIk-1zkjjwhK_X8@Q0v`o=ji#kkiY6nY;5b z=XA!N3#&F`sOQ2@Han}apS$dF=VBGUP1#eK$bIaA@nR6p%Zz|%=j zJ3ULc(XXAE^tB;l3I&enYERA(_cU1G?^H7%nQz$mF?}Q!C*ANi{Ch)(M5w7oO%G}Z^fLR z4d-liDk`5vBmqB?Is*X>aSqI|d$or{Zk)smVcS-a;@R*oTb;RRR=o`x?b&e2Hm6HD zHN(3oxJzK*BjZr4_-|4LkiBV})4xt2QHl?%lrBy@D^64_`fX6c$MEsu4T<7b>Oss% zASh>Kyy)D>UP#~iqSKSj6ulGz5ixg~ik+PbQ3sz0%~TmYe=&|Fs8>|rP*qkCy+j+? zd-==G*@zol^|G_9Q2-X~<`)74f#xovbox zd#^YTsvywL*PL=BU%cjAf&f>`4y^kd;WIm&iy8ドル}UUwRMJ&jK?`@A`^)_{$L9#{P5 z@FVs=keU)ttMPPwxZ!o@eZ)p?c*E&7d^rvv>8H~lS&hh*j(fR6ttGCZHw)r#9~f6BqhuyjQ{#-*S3pp|87X z-&G3#^p?{jTf3@b?e4dni5Rf@?VJI3cN}oe+fMhXIY?tzAdD9j&Li~2>`%dE!e6HB z%^g?enYW#RwdWhq8Dw2?Xz|N!KkbNe|6NYk379_k2^aB@2r9IbRQct;e&{%}OLsZ5 zF#TP-oR|9TqHD*nr?ogkfP3KMJ=yaw7sOO?;HRib%vw)u8ドルkltRn03sj1-;XKPA>4 zVO7X{VmC|$y^DnNN_ZUT12lSv&V1?E3*iHDpx-6s5OD?W8uZ2YQWB)ke1y=!SeJ#9 z-f?P+!A0l^o`5*eQT#74OxXI4GXR!y(>qSp5D6fLf}RoG!%V${&Y=#39Zc+^3)Lcu zM8k9ドル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ドルeGl-3%&P>QaGI3ドルzCrN*%I{RpngVoZ~1kjw2|0hT<^*u#ku07dx=4pj725 zuHt{#0ygYR`B-os@c3wO17;=38Gyd>z%x4BG5HBzuS#Kv(7Ec z>IxS9)25M=+{t0B0h8-(A}b2GObe*E>4rJQoJ>X zO8CEtsQO>ZAVbWnylGmg?2ZMUzP=E$hp2GCX+_I;!eDj`PP#wq>wYu3Uv&l0$IWT) z9@XCNSJqzC0$tOSFA4RH=%*1XtM&K&GxWV3)e)C_r8@OeANM}yGZE@4K*RNIXEfEr zeBe%H5y{LaWi0B6jFFm3tZ@M143eyAJ-UD6P`rB|T10PY&N3i-;G;lhl`E;WXn)b< zBLeqR(4crWelL^SlZr^ujJUyb+&&AgeJ4-IqLSM4ZVo3qh#jO1 z1~kDW0EAR0QC9&Q)JW0K3t3cM3cL!B3sL|bFnCWd;#}dwSyW!^GS_4^p?FpUlZhVV zZrN17^ea`8Qqd7z=?B=WmQ6j7!~vK~btEY4Fkl~?ktdIbB@5F>uw_XsB>u<=pu1{} z+LSO(CK_U-NzK4nt#kAbIXGzVt%M*1Jj-i9a1kPR=?`Qu!)mc2OJwiSik{+F4%J)7 zd3+AV^1Z%G!{#|NiBtS!4i)AI`}AuEl%mePGw;bE0yO?Ahl;QfRwiruXnO*_ z7ZnHtskB!C6JOMC+g8Ef3x|94=6k%i)zZgZ( zZRGc(;hQ1+A!6&;rP5Z9Xk7gsdh7U<4y5o%rb&%rc>9y0cU-4)VP% zv0iADG7S}+buFpD!|swaN`2x_p2iu(dKBkTNZnd)x#bi|+vVkkfII>Txz}aLxCUXF zXLQX#-+%D8!j}C28rGye0v!WmvPxt!5=GTOWt{=WQt4njD0WY*;jyhC)4ja172T)V zdYZHSs1&Oxmn5HYa)DR&@|;|1Xyy6_**XiSj!Mk$`Q=<{fpqi*xiqub*hummjy#zu z3KYb0p9B)TKs>oMb!r371glV9i8>t<&t0#{#ym590b|bg4h!0rxljuq7&tptpx+?2 zZ?GaK5hK(Of^ut6u1HW0mt~hm<;9|gxzmp@FJG$xfa^ z!aMUwN;i+>QNKdhy1`Dsa4lD)Igc%u%H3b{sK&a)8TnLaUFJUdRF!RfkAo17xqQa+ z@&S2v@>BBXQ+_F*Ua&snn+m8`-eGkprNS*JvL`5ht^nAqkzXsIvAM=+)QQtTN+Mq9 zFvkih7Yg39kYeeL;W7+~TVAqT^SnaJt2m-wW|%fLk-kpoqmi1kS9Rl`7g8-|x4V8ドル zD|DSDylJKrx*Mu0*}*R8Di0{4d~4U1@kO-B!W_cI^gtT}a!~2QktB&hb1^VnBmc6P zdSGl{noliCs6MbO#L+f(C!Y7DmCf@?=$>pJH!ZB~9xb6<54wuvd$efn#0y!@gl1{! z2}r}qPXf}ugA-eKG*=3M|G~E|hd0|o4+QR;=yt@^KPMo-1Z^(pS(~FEpWOTp5`q)Wr)hKS zh&Ii&Vri)3^iJX9TWEhM(f&?tk2;rWuj|47(Y%7@ubLGKiSYBZIm&6Kxt1^e&0j)u zcR@p%FVg0c_-zaGuS;odCw1>0tX6*@g>!sa;X8g@@NkT_T)FAH{-#sQ{!`OG`I}zV zfoeP{EHj#_2|Tn=A}Wdtus;0fC3^BUKbi>&M;wHPnuc!N*OvYw-!oQB>S+n@B*l9T z4cO#H24wy#R;}#MHh`0ドルH@J}x9NS&81M;*f( ziL|~#xlu>*cJm|o=V=`Y+_yV5poq1adAgPhvQklU;A#c5eFp^>wA8M$F-ZB}4O9GS zM|C9UJJK~CUkd`p9JIu!(fiWB6g0X!on)iG^A19n%YtMlBBfgtAW>Wv)|oWLi>uNz zUcftIN@1m<%p2ovae?}n^sO`RG=Jilv`HPjkoN?60Pv9Dp(+;dF(Vb zYgQPSuIhe@vZPr@55yM`)I^o|S*(6RXh9Uiq&wL@V(_Xk>vMjyl5WBNm9|yXknM(S zK|WGXm{vuT1bw_wMQ?}I0r1`eD&Xfk)3ZZO+f1iAx(>kDS^lU10E`V@F8ZKiT!gRE zpnR`=ngkXdtdv=hObA*w>cLC8Pz|;w2$YiTVD8mdyU?wXhvljPbX;Cdy&KLM^x}M& zCSRk6C!)*sjX&7{fJ3UkNRCu4?#2!P$^FI#0sX~W7`@O%FWv1cOQ)8MD{hsj0-0%` z3S?}?%LC;*J-a3R1YfGA`^!a$*m?@!=X3!tzy(E!&Tl**>iki{{JI*Ng53+3YN$B$ z7;J%C)=(~YtEC6<%e^nh)w&**e^*qg1vg>grxI3-KOIp`MZw=&6Ij!guEN_-{kp<_ zSMkKI0%Eo->`EC{mI4eZ%wmq8@#A$s=BxN;b&5bfsiRX}cd46%crdB$GPb^HISK{A z5jZEDOH-brNg3E4DA|j%wXrp3t2JjP_!3U=Wxekfcgr8XOMv9$+6mH?@2Z41q~i zft$d;u8G<3=jg)=>4FOaNS{!bE$BhlSSxr+54s+JXk!l`__)fx#PlmD)+n^&^?HH`4==m>=R)DMDSI7hDgBaC(zd~f5{E{x%8m0 zPQ5oZ&0oDV!i$Dj2+`RM5ドル#bllKo;-%5TddpN;$QjDQiO@&`U&m}AVN((k;qE&~;>j9E^uPkLK>p|4%Mrx*2Z<9kdjgxnjj zeVl6=XaKgv&TgPW=+KG=s&bNa$ntbZ3=X=p5!Qntsm_>c5a1bnQ4GpvIz~oyq=7np z%_Wl>wSA}m$D;2;d#LSrnReU$J+!V6g-g^W|f(fAmH5e>b`z6=j{IHnOSjVie(ZK? z)9Sm=iDfmt`HcZMxfM6$U<7%ais~#j0g0lc{q3a;enmw`12v;ui}jg%$zrp%+7{3v zL|q(tIFJf&eqOeJN^RG%Zh)`%l1RvDpHL89HyG02%kK|XmK_*O9l*!v)mZyU<~>F%Z#v>vu@Uau z>iGP^4M#We+^cESI6R4-bifb}07w+ml~^Vtx(xBcd@DgJ7st%~`Q2rs^d z)}^Xu#Zc;70{|#9DW0j-8w3vLe-%FK)z*6Co6hr*C(toJIg|>(&kaNAF8s;6mbx@& zGcZpTt=LRcw({NA(jB24P@lLlw&#|^sIbyiYT<2k^fmlz9s_s%f#;_kww^2famu!b zh}(_)*f1KDvpQU)?{z{Iz}?OK(J+Mex46S~D8Hm|vM3T5#QmIc_@OjSBbbN@ zC2mp+`D?6@wYSI^Y6~5x7(?9)-B^LG2nZLyOY^ydyT?#PV11ZZkEHq{<4izu)uzfn z%{i2&{t)NoeL03YcX~ctWLTSq-MCSF66UMs+0t`ObVn#Mot@d#y47wI3cwn;HRH3V zjHUddO;Z1czWxeGE?JcP?XlD$)db%fO9N9CChI0*96|cyn`i`V?D$Qz3!mN@N8|A+ zHlCghd>H1rXVUZez42HXS%;8ドルf&zGak^jw)zci_+XRFvl(>JK z5UD`Vt#nA19}pL$m=^ah@#0$n569c)sI!~aQq)F6EZuAC1AO#W&1ZAIu6UsH z*J)JQan0-{X91%9h1pc-Emg`aktTls>r~&}w8H{mI3nwK*kd0rnHyLOLjk_8O-!Aw z+o;Cd2>=F|L115+B=_4oIh} zn1aizZ>Pf48?c@Ne&}`sEPWytI64ygdii#`HG2m_jY13OqMXn^cLo*LChKrqBb1}i zsf_3s7+myAS1b6{88kk%?~*%caO$-=cOXsM$&cPa)v33(-a%K@0A2@O=;@CS8oo3z zt*|U>sf(o4nP(Yi?p=z*`chmG$QZ#Z<^eeh5apgfo~t-@2r8eq)5yq%0h-z?q~zm} zIi0DB_Q5MbaI0YNDf#?AG^^fXTC{Y*-vTB_8(E z1X{+*VgY=*s6BetLK!p|j0idw3|)Y#1c<~?n;x9m40=|bmqxi{@)r5qw zZNB|3>M#M*jnB`7P#Hd?_u8c<&kjczfah98czx2=nf|`5b3vtA zUZT`h^IhsG1cZUo#+z~?r&F84(1NZ$mSJ;U0{i@7E)8y_IgY$JkjQb0=TS^!h!G9Q z1C;WJc~lUB!ZqOhF=`!iql}wJCW}yWNqh$p74}o%tAq_1Ot>@bS}1$^=jOqXZE0Fp z?6WUg;1n&CD8|Rcnam*SqH zcT<~83_`yv7?bugct+e=vejm9p1@%zgmp53n>csPqI;-Vu3;De8wSt*=pLHeoUwZq z5w2c9Pc@hRc@3KP>3nbjHS|yJD}i-B3|K+&+I61SZqD|2`a%;6{nJ{zkV<-|nun@y zHJBN3Li1hS2U~xvFDdwqhmS5qpyC21JljatBV7OS>3_y$EA@quQUVrM!Puxo} zz}h5V7)NAK9G@A)UCa%dJn)fwDb)E&k7^zpcVX(0+uet(yOA62!c!u^ zk4E%Op`pqozqDQzbT&6FX-GaO-j1hNQ9a+Zh|1knn5+5!7SVF-ctO?Ok_1tvfV!LP z3WWY455wfmb{5CFM^|~Yo%<$$q-jkbfi8jfv{qf?&rq}ca<`hb1h-uz*wax`vcuye zYO0@dO~5B<*npzk(2j3dol^yrr#!||dhu$@8cvk=dnjjvs{ax9ub?l*{~vwhx<6h4 z5ca0sPt(O>AOX*cyy}fX6T9!Hj;V1mdkGC}CKZVT8oq$zvG}`7Q1MvL+m~Qd%LYEU z1WP*`w#<5fe?u_e(p9r%(iopx$odr#kcdn?w!qjqf#)rwzh)*{;cqu@57lsf|crje zWTS=gikRW|;4Ix|s~)0nrcmGV(nEB?vVO7U=gVnQw)Klg?WYMp5&UH0CksE>_{qUf R6hAHT(`t+TbndSf{~JTZj==x` delta 51688 zcmc${33wGn);HeOd*|LH9TGwyTXhp4EMXHu*l)9mJ5C59JF=)3Tu?;EQE%LFWE9iE z#vQl8aRb-uf{M#1IxdJCq6myS;*K-EGdQArzf;}!<`qw<_y7h$=x>!nUCXJeQ>V^W zr>gsYe9NTgZrU!_*2^un^@-cn~tmX#u-D8GmqhGHs!W$-3jR@ zI#6}nroS@NELCO&)P~JxnxUDBVHCwJ6NR!~BCEQlD2z#_juCAp+f3_d^)rn^qoTqz zDkWVuB+0TccJ`lXn3kz4aXGG(=mx6uOw*8+s_OnRMK=5@ZQvvWD6rv7l9&O^^bsRR zu|kRP(j7;V3`#MX9;20nK~qr_^r-+x#l(mPi*k#${iWi^^0mIGiViX!O}2&3T-{-KF~kA8RzWs{LZJH5pi zVCZ_B(0!=ENHXQ0N)La}h*JMavjhA3q1VlOy0Gs4H8qYgcEI@LLTSCf1ドルCxhYb+i4 zWzy~b#_=V7bxk*aNxv#8N=kS7H+ALgeSgUaswmXQ5!{1OvjX`J)nC%Pm}>F{pRwS~ z1xr!;vcI9GyYimw`MV~#zR`^<_o{vtq)|lo@!dmgo&mbrz2*n>{GwQ~zq(r&u|Jc68{?$E-*wy~6J?fQ9mB9jXKT0n1i)x1|S11jl_b`*3@eu}-(_wJ)y9nJ2A-X+TA%20x8 z>C=&2Dag{ZPZ3+?5AV~RUF$pjJNmEpiJ8=ev|6e2FC0|n-`1y;JsVZo?D{AbZ>dw2 z>j1K=PnF-T&i3c_aW&$t)foWfmPyxR46adkHzHLXuIJ5RvOnr?^1rL=8ドルPYQzWvy@ zD6U}wE}YTLN~OP}Z)ZYhnY1R%ggxBqZ|~b%xg}FiBW3F;b1S;)=+Eg_$nK0%dH&V? zG`2RA)5p>1f5hknmgm3U&sJ_%4)GHMDt)VeCw3cV(T&}QzdRgq9VJcC>V7fn;$TO& z;#hGG4-(0xdzDcjNm%KB(%+H)r1;N{FA>0g_W_;!)_#tl%vy9vsiYK*LU^z9*A1vr z9)gHGFrYM6579g74J+lBiS7cxJ=qYDT7db6SQ!KboFnpx7q9dx_S;#*j(RLUZMJYNKL3Bsa-F& zMd+MaLoD{TNbMh@iN4;==BU4S#A@suqWK$!*z7H;%R3Z4fY7y>h8BAlTDL;T!uv>- zhkW$`B}2a2hPmC+wX=VDgDr1W{5RvpeshE2Kh)5Py%0ドルexjw+G3x}2&G`pmqqot z-}^7%@4x(SM)Y7``K2R!urK{lBOB!3hvw?ak!9>B=(`gCv5{r+e#PH1a{Yt^ z57c+`ZyVh~{zEv%%cINW<}mrs(pivszc5jytw;}6ut<#;*ofr-l=x0be?el9e6i|# zRSs$gl}9NDqObJ(T6>ou?|{0qHe|5UF7y9TLlEJL9<1aq16kbb~$ci=m0 z(Wi~;W{UN@MIDR*UH^nJB}$-nr*z0nYy4Zsj90G5oT)lC)>3X%`-$|>u?5P_>JcKn zcx*4_2K8u>esXM`a-E=s>*tS)DL1LV5#=Mt4PdJ=VlU;E%m9SSnl{&h*6a2tn`cn& z4t0QV2zrbs{W*I4ASmApy;6Vu_`FaS?~1a8>`(AXhOj@jRg(y3s$)Xy{0Za2rxD5w zJ`H#Rxlr#ssE(tI|HOnEsOTLNMk@EHeML#)&;oY9f6So+**bsYp`AkhdfdO|P|ngQ zIMjdU&@#VzqQ)LauFM}fu_x5yi4)IOzLhumyC%+0eJqz0U&Io{pU9uef0I9xKbLpQ zU&vp|#b3)`$$@e`Ox_L3&B{$M7HgG1D)%bul>4EBA5k7wo>87xo`X_)O?g#$UD=|% zsl27UtGuIZRX$L*K`eJEJC(mGpDLdye^WkJb}N6-=)bG9>-B3iU&Ekx=&fbit$N~a z?H(=hn3mY4eV~1)ZPz~1c4+>N!>Usk>xr+m#8xfwo|br5OT42c-qI3Vv_x7|_?MQrUQ1l3CH|=eTH0{T4lOgPvHeCxWnKm42bt*_Lt z(OdMyReItZE%Bw6_(BuyKGpuFq5iMh68ドル{imUv2gR(oDcbbCsBTHB~4HfSIf=v7j3 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ドルtEQge>6;M2ドルmj zmZH7X{0xt;f);i=5kMZbHClj9=T@S%TgU6L3v5wg(@!|5$!b@b+} z62+x3<-nj|h0~b~e5>1Gg;OG2AVxlYn-X#xBaN;?PDupa$y7k<7rp`unv>5bhwjOg zB$f+Wsm!%`1y+sB0(1oA3*21}x`U0%Qe=u7IbicKcR(8g)+XhG=Gf`9xG{p6%!O40 zAn~C~JP%FN!b@Ef>kGz&3`dq-bXNrOLDQH3g}n3L_^X2<&|n8yxmk8hd3#jd#c*`j z22GDAH}m+&3z#qb08d_YbiPXd4UB*26ynr1@>LG>2~YK4^cxRm^ig<#(t7h-wplm* zA4@cZZ+HNNm_QSV0*Vo`xkjJD5DPr)q?$s`8V-+6$uZPT0Xqh6?eJLWlbsM6W()_z zJPrN1wV`1?A?ePbEDU3P$P_4Pq>?V6r!1ドルgLNqxlCijx#Ze?hzkp?!-BGR1cq&lc>XcwNcXX>Wfl4G7N}e8xRtLdR;^a&(I!8Yf!wyW2E)ENu=5aJW zJZu%`Xm_jNO9786sSa=YS3=(VjT7$vW zHQ?%Q;OZXW>P}FB9iRfcLmhJH#u6}i5qLWvY;D0RRDi2{gP+U6${n5JNL9A^VuDIo zvN*U}Z{?{Yp>0dyJy^m@5D5iy7x79`({VnKd##Ybk(hTSQN50QC>O3w5jDq3l>id@ z94s*qPyqF)Az6hYg4YGdmSBiRXp#(z{=g^4cc64YJe6ドルx7BDVu1i&MjVxHWmg zfT64|lnUWe9R+zV5JUknObB(Auvz>NJ_ZgGlpjQ$IBOEkAtVOeDe!m+AYm*)j6(ng z&@pYq0K6$=u!MZ8@jwkqBSj7!YDNfZREg$bmXH`@Xt+^gxc@{9E1FB0coH$HFb+SA zh(Ro0f&pNoBVu%HBZj%kO@Tap01Xc7NX^U0H>JfxIk{oNQGt5sjvWF?%CQ1ZVLM8A zwOIH;d~7SU@@Q(*;vxiELeNJ;j^U*Xue6$o0Dj?v00q#ol*gp2`2fuSaMA=McqKy9 zbf?xrVfGVaRf}QTJkzl>+~{yPU`e8cF^Px=a7ZbYVu6dqQ&6A-O`yBbZzU9yn1Cfn z5w~Ej`C)r<*f(=#@lfjne`slzter&jsi_p{!59+g0(aga1@w5`6&NT4F_S{^B##V3pvM%)fJAz15e@}CB63s^1TkTT9AfwiY79MHfLcKg zVeJS^IO>9tE66Pji?W_}QG z%hDI28n=YJ7O|n|FE$j;K=e911qe6R>Kp>GBR2y( zO=l3)T4tkB537>dXbgeY0%!vy6;RN|kZJ7p3$W~nr-*GwsJ?SH7^J_jCn22Nqj4EnWVWnoMaVt~o2X@$Ck+JQ>V_SXxGT}fN7 ze(0$qAB4Xq`BjL8g#9%|-Sq@-je!2+4b)u>)*aUI5K_p{GTH7B{Ye1=n2kVB`TP+4 z%_HR!ZRJX^=Pd$%#Nkg^@F()XLc~ov_G7&vu;t)|E?|TX@I%g_E!jEYmW;MO8XY>t z91(X4F}N4d5I*{ckJ|9T!$(>8u)~KLJ|sRpI_+>9 z>6|MO9VX47;|vMo(1}w@oZ`&z&RgQ(kja?}nP7Z6_H}s7MTi!`ZXk0}WHipmnFiF(BUkTOr9gDTD2hvF&dnn>%4Q^ci7 zo?-}70O5L)NROR?*7DMD*PT-?|4O;?E9ICP<5r+unki2nm1x`g94&*eix$ovc95m+ zQ-*bBcrqQ7&Y&~IXgc9?$%`_x!GcYpIp0ドルV3MCp~dd`$Ukgy`0RZbOFOiTSro$~9= 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ドルV&=gKn!3-+=L!m+8IT3EtC|80= z2y$^)cjPJ%071@1)C##8Tn|UC1aCMY*9XVP$dzH!huk2i1LZ25g_IlNl+Xir0_b5P zFoK5--Hu0@lM?s&IaD^Xwc)vQf1$FGZy>xY`0OQ53%8EYuW<84du`o7gsegl*(&f# zLrVkFq|0aXGcpar<9@)xo5>cGU~u;qT75QO62ibEbTS>{4nR3wL}`#q0F(!yWTvC4 z3=FPN^rrLM2E@WOsQTIb)C^2R1_lwV3OZ135XPktFsEc->N7A1ez|nEi`_ZdnPLDf z&Hx>f0Yc!c7oAc!P)ru**0cGd3{3wFj850Fa8yioy^)JMShd(Nv>@V_zv0ZMQC@*^ zx_rYqQGn0jeZulGly{~p*StH;8rIqgD@st&i7t!upqcWyyecfWQI11mx-*X1;oYr< zusn|PQVQqQh|}t6ygn?4{Y88NlNcz4x5$!VFhM@7qDS| zGq2LtI*$Q$~5Iw=;cxWg*riQQl;blvDy%VxMnS`G~z`+?L;CPUH<6+`b z0v>Uv8$C$A@hEXp-RVgJjt2=i`37?iRfa84N(^ICT@Um z2(J*g&Nz!jP!IBoM?)y6beSBvcqphPp`b?Z-PD9~+9#CLL6B2;qY&|SatbUClvCh( zpqw^BPN$GyrvxAKg9>V+5Y&YkmOrSRHbPEkv}uTg%4wsJ(|MVG4v^DSMo=5!BhBV> zGeEx(RFcz1A*XXPFb9>>M#w3mK^d5X%Bcn?Efms{6y3%OHCLZVK*dG5P*FLNXo{<; zp<1enq>=;_4M__%L;^{&i6Zi7>myktu|yH6m_s5lB#A^3X_WrBn@74sNF&OmjNnCL z7zth^hQB6w*gi#qC;fjAyh!eFH|>8%@FKZO{cj0gBzGi#|0{wQ$z3Ra?JVT~3&D%z zj$(-aF9napj^l4tmnhO`f8v~73-3J>#8%(jg!+Z3AnakSG!z$Z!p zT!QbAdvl56J@iSC$*G)?K)EGA1+iL$?J)dQg3`QEZ8v^?i9(kHF~B!wfN(P|WQ1sm zTWh*p ziBh;Kg4bQK7o=TOhFVQInW3ドルDt;}YkN^d`To^mkbUaa_h61Xqb}R z%4{a8EX}RVX1sVC4)F+wvNp(+*W8xN;LxS5-fPZgqG2j>E3=uXvMRSSoAK;69P9`O z9zv!_QoQCUm$MeQR@1gt*-SJ{O>Sj26IFK4t;}Y;k~SPlA{=Uy9`;_Lw0h0RwOfl` z*%F|b%|yfW$*s(0qRPIxmD!9})`mk_h(oHme=cZSCbJd;bE~tNXqZ8{mDx;GS)W^( z&3F}UI8;o?$Na(g4Y{CgnG6oYa;vkMXqXYXmDx;GIV!g@n?a?+Jnl5c_%ON|qL6Y$ zAeWSDW(`QOX409MvuKymqf>$rSE!Y0(;{bbF!Ktv(@=`3$k3PQhO7wb=qBi7e6~sC zOv*VppQLUllh|j{!F^Y#BT}fPq8#8*F+g*ZNyBZMnAjCo<944ing$jv(l1)eh`b+r zMc72D_}7N9Fb*BCxQ)S*->bzVaCZ+Mq=8Yw-B?%(F(TcyL2syu@K>_wDAXU?m|)}Y zRh|+s5gA1~G!2B$!Fmw2xcKxRYV}{MrMta|kMi)ydOAL@l&ne5zET}}4nEX%ouYlA z7?0w!POvV)8>Utj++}EK)XXupl0tkZ>#R=N(c@(tsZ($*9}GdHG-`3v!>Gq98eaGn z98Vf170?Maif~O9Kps9=6$dQhp)lY$%1m2j+Wui|U0^k8gG=#AE=Qt>EX#Zo?3p8ドル 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ドル;O8a-i>X)cCFrkvY~5r2bN*_ zTD{I`#+1aBe$fiTN#+%51qvX!i09iM1%Fzrm(vh0uGPPEXkT`cUATqsjhSksM@R@t{&WB_iMU1geQ>lO3?p4{X}|Rcc03ドルC%l0N8{|F&VSt_vww+U34o7+l@PdBk$Mu0r$h!>4UsGAXzzzjKCvD7RlxGJ`JAG;HM9h zz{uRjZAE)mC^2rxP*1Oe)LcqqBEK*AXq`Ty6O3VG9>{J+_`xk6uwFl&Z4RznuMd|m z(}GRw^)Zt!L5LCl3L+>%IH_T#&2k+In|w2T&l=W*mdj{cE(p1xtq{M=c43JB<(p{6-jjn3a;vmxmeih3g`hg(4lq>`9et5C#suA zQzU9Fa`VES$@qL4Gn(LX9VkMHn@&ND2m2q;yOdrkbYzHRI6GRCpx=XfZ_t1GgV=py zF)w&9RCr%LsP`z%xT|DDa%8jiA$OOkkt z0KEy6V6QeR!eG&UfwaxTimRsQfoe8ドルi)Dx;EXTES%033ZSV2)3q&KwNjJnZ=R+zxO z2t#3nJQ)4W6pF)UWK;0^Q+mI#Asb?#3>%7M$c7>rvZ25vWJ5wDVnZ>+-XQTb!i9U& z7d#Di0o$zEsF&iA-l#u<(o>$*yU64cUGY5Gm0e!rcQ9+~^ zu<0ss2je6fpx|p;o(8^c^Y#=Fy74)lv0xxrCFK{S<6ml)$lr3byde{in{3)5y<=&nlw7d-y9 zer?L~mTPu{D|7=d%a3c zPzZO+L@Bdx7bOS)uJ}dC%4|t01Js%=%9N}ISA9ドルrEOZH0M^w-2Pdy7Bw(rCTxDoNI z2W7pAw&M3Q#cNPW9*GLB5C7vzfh;k|4?3%tzfwt*2H=qIx4TC5Wt2 zk^~HPEa@V*J3Zh%`dLbt;cws5`vqrg)ob#05<$?o2v?)Z=Nr*#sGl}gZYhrXsarNI|ivyE7$ogfXivb%3T4=)U&lxm@^#B)#Z`cAz! z4x8&`Y==bAW6={)28ドル=ldal8f{0*=WMGuh9MiK~4-T_BU~h~dZ%RSs4YwI%Bl14F7aj8GB8?4?H*&e_eNf&EL!PfAV5ji;S zuX;}nC0O!3ORd_1EHKL8hErK8w+#LQ1HR0D5Uk8_rkI1?icH-dzpPvNAL?5FL)~iC zO@#xt>r{lPfFyK}_!rnE>XW41XqyD~>?OYtEc{j#f&aNFIC_u1 zDjz+%j7%8dHU)e3=$B^!(!qE7TA6K4kN#dCt- zCdFEZDh*gY9Fxe=bYyHmWLW56!;hfd=HP=L_3Cj^&=8HXqK-7YFtRB$lPG8?0K~gu z3MQcod_fTrGz>=V(_bJPto{Ty9b3JgKj}5tTfxq;w2P?Z=HU3B^l?Q*XNbiX83#gw zD8c2;m4p~9pb3H>U9Pq6@Dzu*6)_kk~+ITI9Z4h{pi4mWPV%j$|V?&qB5|dXa zWgFU}K{noI*wZgojT?vrmS8ドルC33_O7%XbDRYeqM6M^!k#;yy_A7o5q z*QH+^WZY-4hk~Uej9%=a^erO{r!#<`z8euu4nau#zgbv^?@cj!f!z?piaf~j9ub5x zGe+a|boDf&J9{|&%rs-9g4&;E8u_g3RWP|DgM;1ドルK?BE&Wt8mgfjiq60Bk1DHu?hi z;@QRqnn+@<(mm|za{`lrppk8ci}eo3<);`4jkap=%*SmuLcqQVD)OeU+4#quLj%tLHTu5mmYeZ z@vy?S2H)Ihl;WY?WDMzkF;*4R-TW_nMuvI)ldf!|h>;4jFQMaLu&sSb`h=T|Ju3Sl zXuQq1lKnfq<2k{!0`^_{v~c8ZIMAg*GFcG z%G0I0jH7js*c)k<2he=umaowb%3#e;w?a~)&y3tg*|r~#k4bdv&%)(|(!qbr$ta8o zU)00cP?~mbRXnQFqpIK(G_J^numyzd!95aJo?_Rh=k7Cp%40VNvkmhCu+v9) zsO*klX51Xg?nno5b2dZvU-@P$vMUPADHdCs{RY)&rC zDHk>NJ;6i$%$qABa8irM68F&M0=(5iJijh|N`LdO4C7B4XdaTMu2*7j1kaY5rNK=j z%-cgU^$H)IgG)!6$FWD!+eezG$eq&)8~{2oCPu`>#Fy@&KGW%W33H=@Yd|&Q%#JeK zkRCR{G+Fsm0_PeR*I1P#ytHN+T#dIU;`USNnTMKP74}s6!o$ru8rZALv1T7IO5r3k zk7cs~vOUtL9&6qpmxH6Kx%}j~Z-@T-=P`ZX9eo?Gx{X(Z$CTTG?~XAm!FgjQoBu}J zkxgc&&M0=PvmVJBx9avsp{pzHmh>r2W`$C^QgNzzWd`7xH7@5>sJvyWc?FH%a~fvX zl0I^pxky3wv6*HC!~W)h`|S>_fEvn-x(_GRT8qgmnwLd;UUMu=IOT(>u-XDl#% zg>6jlImvv$#4qpNw#2-J{W(46jBw$fU1mOy?4@U$ml=pl5ドルZBcH24+GW-W_QthlEgpNXH3zac(!B7ドルd8{&G*#_eGW)^WZSR~}x&9|98BxC;V=4p7m z9X`h0A#x9gkD5Epdelw7(<~pf+u4dtxv~h9nrjq3w&65d9h#$;zqie=#`ch*c#2-u zw66=Q|0sGHj>iGG+}j>9rw>GpUhZk%%ZB!lIlXLbUl;5TdnsQ_D5Zz2H7Dw9 zOS<_!1nahi>08t0H8SMj!VVWxYAb9?1^C4KPv!5}a11}8QXg;m@!-05O$P`(`L6ky zg064h1|Hazes!BUn6W3)@`vVYG4^SC^JkDR@YUik1l!&Cg?SF~e8+DDn~nd*JcfOq zUiFPR-++zz_kWqCj=Xu%MM(VyJY`cfUzt`CMjJn@A;>ILo>f)nj}5kbX1Fdmz4z3z#)vK?{@F_lTum-08J<5ドルi45`{u*dpqdgus#f zB6xVc^$=r0@beIBL%-L=#TyWuT*g<))f5fyva|p}o@vrn+upivcezrig8-n$tbl4{ zU;LmZeg*TVV8sY)Jl1E+2#d@3jn99KvijgxI{9d826ERVMDFeba)T1Nbx9ドルVo9Jch z;x7u$sBkSXOE5ZN9oyF7j4@d-{GjOH##oaWyEYgy&Uzn@qVd+5D7|#Nb+^V|3i=;m zbsqeZ!V!?KAZ?GC)BXhB0iAu=VGTc6O>n^xR?nzuZ4Lmw$d=Qz&%tVf4>2l!m-L@U zSpTJh9$!teCgL&pSSx|YvSY0yfZ=n;T7RaWG+o|gRpGG~kMd~J_*GUYow1TMcO3pm z3Es(mG1%E;RRHd%CabgYA{{L|*0o1i9SiV%1A50Kn$Q2A312nE>RKLBBzMADS_Q98 zu{uWp{d4A>1-SM&>mO8)ICEJ}J$-=$?y&t*P%t&@006l(Zvz-J)#^?(N6;`A1rgK= zmkTwyG|$!qH=%F#QaU}=T7ch#4Jv13hpM390=!aMc!vK-6TK81I|KB5DL8e8)tzug zZSIKpx#I|K9XbNs%OUvRW>__BZ4jGjmG@jL)P-OxT+l=S2yHa`>qu`Hu%O68O{@)$ znTbBu1}D74ドルyUn5lyc~U9Wi_h!s&IuMF4RM+lEpXI!x&Lr9hr#-GJ@T&9kgG8Da{j z&#?yOzod9^yMa2D>=%Luep&SQUltuQ_ZJP9{<7$iul#rimqknpum*wfi%+n+$aegm z-*Tay?w)TAX1ju&^Fig0f}iGFTiN^RcNbXmWOmEiVJBIPJ&+!LvZcmwmoKr@I*Q$$ zzG|tpoOO7FPH2fji1S;%n-9micA52$I7_E1F1B`?Y*kuYVQo|K+_}=KDWd#s)?k~Z zgW(Ta6XZQo`r-$z#WHq}dmgr4V(hu}V~<*+n2sowrq!ld`_k69g6fx31t;j_0fgv! zN+120m10Z}UVq%0jYr=ntgqqgR6L1^Js%wVBvk10fwsXq29Krsv>@UH%=P}e@g7^#88f@q8d%?OwhHEqACF?AP=SH(l;ogt|#&J9qkB;%+MtS`;}nRCg_CMgU>cuFXg>XVT*F8fLDUYUbcD^zkFwuS+)?oG_; zmEin0t@4Uj5L`BS;W2dFM{y#C&8s;WENI!U1rNUoQoIs;{-!kx%_eSvK6@p&W{cIi zjGEE?Xngh&--(7=#s3q_f$VcztlkX*iBh~aSh~o5MTEHx@fj1~qj^@+BT;;vdJr=b z2!=E2_Lg-EdoBIvx2&#glIR7$pocD^shHWR5OwhFqD&QDC0^u7qE}SlFet1bdWkk+ z?+x!*=Ob+J=sVW(aia5L98E=?(;Vm;7SSmj4ne<6hvxdt3lpdd9bwv<7frmxzh1%e z^z@kbtjA>#Xy5x*86F+CS-(ekYt1&S`}@IX+pNnWAE$j_jqCPjx>t^$SYNBb#6pcr z;z!vLsETrH@Z;k*23tR{K4m+Cr4ドルkR2jiF3@#aO++ptFb+&PX^Nv+w}=?JILmuqUI zI6l#Z1;OhZbXo!*!rmI#+pWq}rs>BGZ4_NypVATBWyxt9Dpjv(Pu*cHk-nFYmCb zv$d<+)n2>PIuzqg+?g}p&i3P-ztgHZG6!dj3Vd;W`a;5fhh)E_;wK8^UnlJC?HA>< zomSuai!`VV;z9)Ef4%M3?Jy3G*kyH@fZ2ncZ1E68Xrrj~>wW#yerEUVvKle{{kyC! zy*^SYXi29(74YZr^`oSB@l}GBG7fblIe}TL_FFi83BFbHN{=HwCwYIS*;Du$B5&`2 zrJ$ECa4-#51bu);JL$*d>A()b19G2tk#2~X0`GeC#0Mg5QfD6G=isXq!AT!m^(9~; z^aMvh99Br)KQT=3;Kx=S4CT&`t(pNLfEWsDMsyD=wG*9ZtiSycy?Y^INHlCP_!Fyo z_+JsC20j!;h1QM~2XqO&`eZ|Yh3ドルhYpYW9jx1JRTgKY@DY@Y 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ドル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ドルRvd_bd zn+CIgg@0-qY}h-&=Z8$}$vz1uPHbT3z^j#o=S-|%KZI9Ltkc`f@VSX& zjkC-lVUI*fSUsr{E@bSa2KKw~@JVC!Q_b*mc#yj%Rl$wDh~hKD;>m+xLdQ-X#=Z%c zP9A7{4gdOFeObvEB`}Z~_5W7wJlWTuCs)9Cy*;^({TOyj_hlD^!_tF{Q%pr=Yq}@< zI6N^uMnBCAgQAk~@pOOv3?iyD{4wpZ(?c(4U}uN>2Lo7p*oMD3ZY80t7ドル)~1yrO&o zujui@@bKmVYGz?XgOYImlmW&?=D_gCW?yl0eYkE)i*YH&j-q7V&0lVgpn|YrYB%Fb zbC%4noI1p~%$zIp_f8$AU!oXuQ*$azHYbcL%spjQQ}ZZxG5Q^1tjl#oq^!p*A`nFG z8VWF!rMT7{C1ZzyEfvPq$UofDH(cCO%Km_1mWQ{rAc`T)x-Nd~&aMw1Y8l7=*jY`! zC|8}3X6btLionL9mI!u8PGocwu9;>Tx0}r}>bYlH4UGF+(n!{zuBiTL3RZ1zoSC&nfF@)V0u9$J0@tOYTaQlp9 znRoTll2cf^CS#*< z3k>&N#+}9{<5a;j#$swqjhiufjtempjtenqjf+mhzy2u|zyn6yzysf#-z$pej}^eq zJ~Ym==zr&1m-2S2!$POm^0iggRXlxzb)%KO4ドル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ドルchs6 zh~g!b>CYkus%Cp{8Ud#Jx6-4vi+!Zomy**4ドルn@hqd~%8q1ds&((;*hM!?42V5VsbI zg&8raouZ>QMm`FW2^>F7KKeoQ(IHMoIXVIjD2FfrGdyUAI0fZEjb2d>;aCkeV2&2h z07G;}Zke<fRRhTPBeT+C3UY=NWT$-Er)FH1=;=uWP2aT_H>xWDKL$D!%WVH z$!vz02axcIknQpC7PBGR3nA6BAkZz|)Yyc|7%hWkMa(A5ToS^KfawIN;xt4RgIkGuq9@Y~<+a8yqsf$@5)5~y52jrb94fn_y1zc`yi87_i zb`JUx5ドルW>y4$bJAWQRJWaAZmc!kr8SY2zs#0neJK7olO8ドルX z3YCmCYfpiW^5!e}~Kd{u4LG77ドルixQ{u*4bR&LE+#r!}Mh9@-nV20d ziXFs_1{s|l0BDF<3pjlxl91ekpvm!2u=xyco@tr71xix`r1t=qvxfa(w#z@#smz^% zk?sC0idO-C5|kP7yNp-o5f?HL8LH{nnFX^TN=7%+O9Yjb3pO}@QJED zaYe~d~`^>$Lis@PJYZL020F-KVH+yQql*BVRITH|1#T?q((LWj2$ibwGV)}Y=pShn06 zWCa{cZVhq>>=r-|g{}e2ドルANhQFhyj*=BX8lvfu@44>Dm`uCO5)J&DDDT%hEDW~&9t zG)f$J4J1i84%%|{d(iqO2RKs!Vzokma;`nR1SPxIj^>BZGDR+pT(#^0QfyX;CA8xJi{CENen38a1v%4pe_i| z4v_{Z?9X_y0{H4F!fE%@1mp_2OaZ<<;scp#z|6v*v)p@f3jxg3vobp;d3^h0vggpm z>_8xD5zFwmfdVXSlPGi!t$KiNKZw?0wDv!g&`p4Y&%i@2C6f#@lgCFpLx<8r4g;o% zVk!PMl5vSwdCgc32M8&eAROZ%8I6#j21rvqR%#2Ou(KcwyF(DBAQTx!tF>WjwMMHV zi_WGJ9#f08B9W<}t@h}pw)$o|aya4(9x!u1v>2 zhK7FVC@Lclc)ABCtnzUDT~IM+R8qV>_9Ot%73k z7YlL+tqN;wNLjuFWEemok0fEK=uju47(`uz8XN}ESx!uZz!bFxPpC6BB7ue>2>|Kw zp-_B|r1Hd7(J@1C*$aKt@e*om zI(N?f4?-F%FHTgO=y=~RH&2w)4tc`kZKC|PwU+dl@YzeiXhn2u#!nEmBg&^0>llKr-J1OdeKxp8>{_Xlu(?gEi;p~-Y`UC1d^RFt8igM)qGsU$hih)N)1a_-K2 z4`j)a`b7{%<#cg^equt-%ajgv6mar|o1~ejkv-hh*d3npb_1qflvj*6j5-^jp3cy> zimN;!hC&l)qq8>(%$XjPPF{RLV49gMisb-AIVILg-xs|OyA9o2xXwZ`v@bhSAt_yb z5d$%V-gMUimlxEH1+Pb3jZr~+)sCbkgF5hC#1ドルqx_+T!f&fXC`C9!tNVDV3}7qTj6 z=5w0LO~9rMt&rrxRpu24f)R=j3(5%}?N#9n8h4k_u|)~?V97f{b)~dPQ5DjRQ~ZXr z4C;8NP9%c(stpoCAca>baizf0>md~%p4C@{C87`c%XlgvKXhicmZBqv8atw|f}`0k zlo(hEZ6>Kb$sv@;wWQeKni#muDe3ドルMVtWh#t;MyK7RZCFh4x`YxFiA5hOCn0;jRTe zktjpl)b$hCBY9g2A|P+|l!zi+x&UG2MN+^lOn8aRxn!-&qF0uief%;o(jlYLr`4w^ z#=eTYqXUZ@2c1#*3UfflC30{XD89`?ibjXs5a!@rx}t^nBiK$ET>O$o4ドルfyC}uoq61wvSW^O(?2yGm2&k#VUuz85NK58!}kDP&u-4JFbDsM`CZM zQ5LIQJAz9T*CBqzRv@5Nt{w3vifi-5D%Xy%6vZ_-(!lB-&??uCh!w>mUo3Oj4?#4G z^6GrK%C#ftMR8@mSmo%97saLdVwG!0XpG`izF6hj5iO%QnJ-qkcI?Ta*goJ08!Irwqy-9=ulIKl??3*#}g)N##2ou zp1z$YtwlE4)x2RZ2k6u!?mTm|WzDW84;#^Fv#a@=)Q&yY+-&YVhuGgh&90^q8`7xx z$xLD*7s;Ak%_U9`&}J9YnGw@vRenly=UwHo!GbMHcQhb2>47C9@<&cgmgyd4=y*>!56EOvt)`onMu8r`SFC_JH( z0+*30O^8}m=B3a<05%qn9%_s?abs6c2r+>*j{mD6d#2Y1blGCW zJbwU2R)@JqJXh7~55Wvl@U>ZB4J(EJW49ruc(q&+8S(M*4|j1l`~qh?|=1lBlR1g%%pdjwvAEfBP^-a)`kqqg93!9*s zdk&FH09bF*iL@dVS~~>lxf79`h#Z2|uq>4`gk60&?eVm+N*0JlK+(po#}_xv1Wy&T z#eCDCae;#T4RF)8!w52SVn8ud1Eejgu0u?~L02L!HDMxf*>pTDHnFikM3fW|O&2u~ zwSlgu6aem&HD(HDR83_I=B@|ChSpp(Z(sxDES|44`f+4GJdcJpR~v=n;pTH^-_#ja zgt?g~S@HQ#rXLH0F6^P0904gY4ysgW4zREQlAl-vRU8`yC^rJq)p^^nigr&hbFFhB z)(Ri+OWOd03w#+M+=X$VDzZ#40)Qvm3{J?x{{{}7+u3H&UQmoo6UgOkMgz7$y$Koc ztpt-ob0MuJDGG(F^1k$DC4X3|SRf_E)`_cp&Dd z(Q6`g!95h5>8(ZJg8L{5wZz7z8@⁡SNZZTqWSbu4qy@Txyp0{p%_A%pi`DkZthJ z{i*;?L1?V}J&5Z)lmbkB=n+A;ms*r|)6?QAuO94%k$@W;7~syg+P~6774`>|WyX)V1(Ic*btE}*A6n7qs55Uz=jK!BA;ssHF_%F7AjSc-%^l&u^_*-Apb@|etSXw z-F%+o1rx|-wbbqeZ1f1>S9!x>mTl3e%IlAv84*2xl-W0v0IMs4?a~}Vh}Dt>c(8_| zJrEhtR$zV*NFy;}3XnKBWj4J!siM znIy&2Nk8bw+#j%Gf}5}S^n2D?PsI=sR5||Cj-6^qY~|9#grV7~#zc)=onV!_a}8Vo zrZm{OkVJR_4%}iK8PzfNa3CQ+!OZANXAV?BYS`&c{}gG3n9+$ehqD4v-%oH>Aj0d! znUUiLQi|fRE8k`9jY4_rf2E(0BGn(WMR$tfnEI3YFxnKS$Oi?Kr>TY$#Uj_YW&(D& z1d>f?kHZqfX}crW2&>F_C{+#eRcf^i>FMnk&qA-zLg)d{?*Kt~x6>XF?TdJWvCkx} z{G)9Q{qbnTF=m@mx? zR$Ng<5h(?}s1?pizkex#u+iqop(&10ドル#m6driwh;5ogpjxxp7#k-evl;ewmuqfy6i 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ドルvp{w9jkcie(uz{A zMN_ZflVJ3tQ?KAN!StuEfYI3zeQ*WuSNATx;3D@2AgA;R*LbF|1XbP{l;R$bEomHm zC2vNQy5TC`U3Xtsa+Z1{+H?)CaCe|9;`7Gnmi2t#sCV&A=2Gn6CUEy0t_J5x@k{}+ zLqbl%u5=|v&adJ_{LjdB;d9Vx$xE=f-ihQBlj0y5w(fZq%<;r?$yf1#|dbfy*yfvy zc}f+QNW^ zb)x9Dj=1jgYx(gMM6dhq=3a+7|tG1Fxb!F5199_G#6$yL_t>la!S2 zl#yc>a(f-$WrSQ@dmXQ--ma4=C+BJ6*cqcyst5>Rdha?unbLvR^Vg__euHX(5!1MK z(P9c9K=>gy@IGQ2S;)Z3tqpCw;fc6HYPv#y%?_D6QM-8s7t*a z9eyKL6g#5d-^kyn1qiOJi3)%ug`We_=>;rIegVP@ZsNUm%f*i9;}a8KyQOK1^D7gO zx9;SEKB488ASFZ9j_A#scz-#-oB1J>uDqEKAB^DQwg$aUe#H`NVk~meru#7MOFF}V z#cxDTHGkx0{1(+krZ-v?4beNIzPIr2Kzr3jJ|^g(prg~oQEzc9= zis$LojMO`^I4ZGPvk^-4FL`c4;ljp^yr}}7Hg+=Plp(c5A0lPrR=yv5E?RUepP+wf zMwi^mr*!`Ul8|WBusNc1_2XN4uiEG2+}NFSL*JzaAu#PQdS9BDD+1pU)!oJi4%=kV zehTz$u(1_cEXydn1=*C!ZblX>W+G*Kl(~(Uje*(_J~A9Ae9`oaz%)o27NvfXTA;KP zQztR`XA=3FZ{z*T|0QjpB1Vx+1V!w2J`_wHb~{1ドルn4$T%E2H+n?R-#qE|w*aS)f|q z+|EZqed_Ljf&FW=-yOUufJ6YOQWA=A-_1W}$VA8t&SvlBU(2W4?&m|Pbld&>f!#LYdy!Ch4@>OpWsBW(kUu!bEhkF6i)09E8`<1e!jsrsbsn z7*0iWn2V=UK@UkN14#wldciKO>Ubqww_W9H(Zhe?B?;5V79Do;aJrD){ulnKt)JQ> z`|R_4t&VTvFMo+&m?;XrGE)t{+hmw={(tl7*NQgX!zy!o%IZ+SeA)itzK^<0%jfy$fg9%0g-o*js9}fct(d<~b z#6e}R<;pn{;wp_1yov2=q2yoorv-g3j|thi(={g4sn%^i-e@t?5p$>q`Wq(M1gu45 z7G}W+CejB$%mBaqgi10L0-E-QG!*c_*cYzXw`PaD!tsNZh!mQ(@&!fMaW(}|d|_lS z-pa3FtSD-DjqlHjvf*nmUF?SFtv9$=d6Ajuo=A1m5~0hi41Q^%&0Oi5HCj~sCbn#? zXwsYfjN&QlxVs zprkt#Jo@=*qxnk8`5dOvC;Mq$Nz9?bpdr=M!>+b0ドルLj*aO{m8c{@=sY=r?F$ASi?^ zHff6-C;+G9TkSc(*g#@?`2SA|s`O4$p}rJP-wjVp>6+-3ZG32kve@5}MHj^>_L}7L z2Bak7SXW{gGUTS+BINTsM+B$e2(6{`nmD~IP7&3^)< z3cm;I47genaCOICqN|;#HpODr;rx?w>MBhN??>n;p{b^Bpe3!oNm#a;>MdCo?fW(# zOy3Ab6r%9`&(WdP7ypl1A##*`rEZ5g1A&=5g+TdTuJT${Sy=+S@bVxRwmJ_`Fa z==2-sX}PlO^Y8HI?965Od0f1+LPLYY8>R`|uc4zXj1eP+fxx1VE}NkeSC8{Khdin* zOHM6%rGFD%1*fGiU{Vc;R%EV}uD8itCEW{`x#|YJ7IHUCOA_{4y${T(?4cBWA%`C5 zL?1cyP?}x;5l&IqE79Gb@TKhTsQOdhtH&MYedP7YVl#5-cSO@Z<)f=riq1@3YA` zFODHPKIH?;?l$l9`EuIZ!b$wqIJ%RKpZ%2gW_Ls%eTwDX9Z~ncVR3eMH2iOTZ80$V zY$?SjL-f0&Eq~)@nB{hj|&#}6R&`v;$F(LTeHe`AATQ}mmEBfR<~tk{i8zno8ドル zb2~@U0LhpN!|vQPf}ZDMD&LIOAIXPD4PWtdf0?y!IlAm?u<*i)zoq+|=6hi1sn_5td6*m? z_7%D2ドル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ドルzxdy>NH7xcW!svw?Iq8_Sw1ox?Fkn&gEC; z%B!LgAGm!=a-Cg>^0>1o`@Y+kOQgMa2HGCRJWE|4B|boa|86wo1J}tSEbSHhr zHEU9)sK+O6b+iF^0t^KlK{QT`z;1kwYFL%vGx8$xXoeJ9as=ywQk=HoE6+K_zVKtW zR|a~GYavOYZZCpjSOo@dr@k{iodTj9USLCa#47oAB!1V1I*Q#DUAK_#3b=3x2OA-W zS4y~Gf^)b!fn8ドルH(>F#6zQ$SvLq{lsm|>@;Kq z=c;>kYcBTyq>@NULykULZ4udOS6hu4UKf^;jz>rg@-r<7k#bmecjw;tlo88p7g~pw z&?j#FnE$J?D*=zHJlAt(G9mL#5{4yYA%RH<$po?ivgcohi=b>Gg0w&dHxS$rwJMir zQE5wxTnnGQ_bRAdkuK6c+RJUFRa1QI|C}>tChyN5>{F-R?0 z>C%VEN_QVYHs~<_>PTd2#eP6$j1F#Mk?x3*R*UR=G}33OBjqs=QKpWww!1`f!7)3r z!2azg&ItIzD6pb0-Vt%DAS%93MuDOT!%<#& zEK=Yuv0l!KJIk#1<{pkofrlbse4o3(pw|fo+b!ny6s~4gvw3vu6m5ngnjd2o3}%#% zes!OLX~r!0vQ(H&xHZsG;_Da*6xwdj%IP)iAew6 zyXDO-12!_SRN+(8Li^Jnc(jo-7e;7!C6>_O4C50Du>-Kfje+rCsjMJ%(s3x%-V=Z^ zYnV<(28zzpynhg&su2;q z2m*!#h?_%w@u0oU7-TyrPmRF}+B;ClXHP{2z`oU;j?A|X@{^|{_1MLJ>vUu=4!efV zL>i*-7n;14Jm<(wfpzz{&1wkmyi;zpmmpyk3k&4bwjesn2cx|s9lw4il2~e{1<8ol zha)~>=*4<@jmk4q%-leibyxks)>2~@`-v}&bc)jzJdOVlGdvB1191&Dp{oNp3^XDQ>JwRFvAj0AfkkM6kVgoUp+7}lJGaNY|nH6jf^StxO0qy1I&quCow<27y z5kuKm=aHda!M!dZiLr*Sy%3q0ドルrn>7!@R(6zqtSjJjS0~h)jzZYZO4~n6D!7A&$^D zTTl?80KP5&`X%3R_i9iqj{6T2IS!{I+HJppEyPgl1h4xlGQYR6Ct3O~i+VB$uVZAy zORAKJWhsEN^t%Y6xA2UMkvX|11tZ|yQsaC1&5M!x9JdTpiG9MMOQ^kq6PI8(TljMP z>SP962B{d6gBw(}+JmOrGkD&BAQovz#Uv((4cg5gBZv*i3#eLMt)J;YB3&8hlyQQ7n%+-ghS5jV~XSSAM;f~por+Zfah6-J6Z z6W(r79~1_IGIQ=7q)HS{4N~vvP#wn(V+7bFEEt9u3XBo3h~xVPn09deY62 zHPbM2wM7MJ@y!fv@tq9n7ujQ8Kmns)&7htV5yH>B0FA@l5c>Z~D|U#_WzeMPX^}}u z<^v}f4bzpsxqzh=>{JBtBPoTro@oxs%0CuM`9_$QTE}^GCT9A5zB!Xhz=Ov!sT+Ph zpGkePPl#01ドルt^9Be3VI5U{y{#x~!ukH#0ya<0*d=bck-&>^i(Vt7aEdg&}OGY=Gt^ zc_(U^VrV3@1T&(`i=7K&>bRT;if!-34Rs$c_Z;7qIwWp3fv9FQnMDbh!=bzZ!SQlv z(Z%BhZK<__bg3;#05#z2+xz*xmn0noq?jum2ujikmeu%97fbk2mow1a@f!;umgn+8 z7F9^TO;O}a>vX~)EGXgeD|QIW!gI~oIjegctNY$@57dD*SaQ?C^u>9LDsF301;$ok zWSn)Tna~b1@JbqcKbP7QOZ*-5UQ4j>_(qUs*Y0OkTV)wU}QuWSTyD(BY)`|`DKi} zr7e)D5`0xsfnpojW?7!CHQJ=+%IK@f(;6co1|vnI)?@fj4|~J=peg7KAdeUW*ejSl!r|3_ zp#E1TERqN!2|Z1`;(APv-7XmCJ~@=vQ{9@T(1P}bhZEw@&~Ly#<)9}evvd#h=fp%c z4n5$H#S-9R5$HeesSqoGIOn_*f6D1+8*z>a^pPtD9#ermCuK&7VK9&6P<0$q8wtqq zfSIrlW{R0f0`ibtswj5GHKACB7mC67#g6lmTxytYV%E4wm7Y=n=B$>O6-@gAx>Owv z3FS;Y0wPMw6JbdlY7-o{0*jMPPJ)-!n6*j5oZ{T}R513W*gVb4WY`GV4kj5SpkCfr zf>Cf&nx}vj(1+-kB{G2}YX7m*d~17Zn2W*TIpZ3^1e-8zGpRP_5D$Bgu$a@%%rIfJ zuNLPacEJg>^xG74aY~k6Tpc5-^w9?A{ZbZcXrnDo@48ドルCbd^cR4bkxLVvR zqHx`Jkb3SiObQ^ms{!u@#|jGD+nQawEqe?wnTObj87tHN3VXH6U)=)sgOv3P}UD$;3_XL=ttibOIRK z&%f$K1N%7^Pfi8HAs`F$W?0_cLo!?NDCQ{U7oTKDSWbZpa_`ZZ78Dzuih;dR*$IOz zhOn0@{tYipZ|qDx^TZuiVaq0FmnZGv=8rn#Zmy*OT2W-ZB~B2ZZ8}r;Y^WSP8;{A$RJr!vm1=3APcjIGP>GA@8cP94)7|VS!M+4al>q{i zs*-(iOBbr>h6RAM@(4mC6u}D@$bsM@9AJkv{B9Q-TIg60hy(%)&EW*>Um@XgfGhH; z#=6K?=Tp6Pi66M6MJXEME^IRd-JxQn7`t66)7oG|=IN*0qP|ixFO>sU_49+?~O( zyhu;J;|EqQcRLWtJz2+zoPz6kOy(rd8O7D?5*_?mZo;UU4X(FulfwFF1fRh({?E_~uHv#jl%izQ1lwbar3?K##OrJz%2oKzz z<)f@ey*c}@9R21r*<&sw!>{HlFawweCWZmsS_7Uk* zpag1jtXbLR* zri8kuZ3)V&a2suW+G&JMUv#4o$!sWr+8;Aj(JUNAnpZ^wa~;#Jo)pQ6pH|UK$p}Vz z(H{Xt-t9%dC^1#C?dsTCz-D{da`E0^mblc1cx`Vg1Q>`T;uD1IV4pwrrWzb_5S9rv zaZ1D0bY1j2Qi>xwf~W4Pra=wo49>9M3&@xJp+#(&zK@7KRct=lPo^4v1GXg|ED4M9 zo?BBxdHpc~Pn?k;GL!Q{V>kMfuNLj&Q`0MI=z%IB8cx6pfa{GFVr|hN1m6C=<5vur zTk@$iljqb>2}f&bILm%8w2eXtwFqDKX7G&(G6F~CiGRLaa&)c`1bSqzBJrb@VKm3=dTb6 zRszxrw2q-$>#JG{bKs{ccr^%Gmz=ts^of`Y5Vjmw3j~RP+Q|D<_k%akn_=wae(jrn z;v4$W80%5~aX-2O(tN5P4QTugv;-&PYm~vwS5L4t4sIeTxQ{3>wEe zd&^!j3R^XhpQ_*l?84#K&{B#s^`{O{=i>g<%uah3`&0mnu4z=-%cvm#q5e)vp`bwl z$(>N8xTdc@Tk9z|Z|RS;-*Nu9Kh42j=-2^>!oJ5h4WMz?eqU2NNG6qPmQt92EAbg& zxJ#X&VY-H{8bm;slsE~$dD3lq=tlz3uv3!LoHLNRg~g{^{LJ-Gi-`j%KhM`bpu`7| z`W}CKAPw*Of}G9MtsHnDAXhn}hdIgS5bqdBRkkxNBa4;<@6ml1$lyk(c8p~pfc^}3 zT4=C;+)N69f9N3UIn3!M-DhEJ1O=uWd=@c4j9xDYULJ{#fWrLrAnFRR{p&$UPq-|@ zLi{_x0fcbU&)vMg8mY&U!IZW1(XeFxLQR;Xh03@ietFVp2_i3RrAq&pTh zaQ32QvCbT@dMHHFLV(X}8mTiDpVvqe+9NERjEQ@&;EqN9ドル{<`%hgpaffrvs$d4?qr zlS6(O#RR`EKcWsI5GAwpoqV*BhGBoHb_li=_VSz|v_E$zL=6m7_YhmflZVpfIMw;1 zp)?bkb80Bn^+~Of-1vyaR*6$<(fa4k95_0ehjku%+>yZ_&ZPeQ`7kO9nJ{ja zkXFC~ucnp;AuiYAGK`p#c?0g5i7(#(;zSFyK*q#{-!DI#kPCpI_C?WR(A1ドルL5L*vw zqC<$~e~k#ojrh|79l<+jm}zh?vb`h?tp`qdz5p1vqxxp1c9^@2n{9zt4g6gjcxalg zKikwTg#NgBIMs$NyDIiPcOOYV2er13RB9a@39j$wl2Q8Cpi$HV1f4aCdShSQF9XV9 zcn0`l!{IY(==>ZG6ドルn-DM$zPHXept;ObJ{9@Rfx~%G{$;%5z)^B()_=BJN#O#LxgK zd4~ov?`ucX01*I8K`9{u@Z4ycQ=3`_QJ3K`x(v5U0a{9%K4a*f?k|TW>E&?lSnEn} zj-j>bVz}rsYP@VG(z{qm@dC}hz){%$(2Tg2cGhd^be+Fc1<=y1ドルyka>7|U5@024oP z8Qlg#UpJO|x1~z33d&9q+}4EV-;Skup&c1T+>ocV@d-4|`aRz>fhNi$pWN`f6KD|< z%zoyHx`jkVR|$sZITI-#D^IDRiXi`qCBl_2p3w2yiP7ドルu#s58#1_H|*MO&Q2$eKj` zF#gaPXnCk(SbkRP8z86DTI6T6v0r*B+Mj5|+{T}>0g zni11zcksP1&p(^ljr&grpH}g$(`mJo-F`MRpSxZ|gK|V_F?_vo9!}OVR+yg>eay`8jvXr zFSNG%3@Xgm;U!gz;YE2IQ_YiS&7NEbryZ2H^}Q#At99X1S|FL z#v%I|Gix@DO=s3GW+Q}Y;SXoiUdOLEuJ%vgqG?hYl)##e`|W)#GUY8i=USTIC6(!p z@+nO;);kdj_pRNRNA2T!_Q3&7lEV@HXl`_~INI z3AMB5ドル?AQkJ$l{GQ&804qq*t8{ z+9Q0r`nS0nSe~1!X@ipM=%!JhLnWNu6bO^#K_S3;^h(@_L_WBcQURKidoVSC{xy-0 z=NI|S>nM)fBR;u~h83DKl9-g_inS~JhuUB8Fu;9y_nFtLKfmXCnp}25<8_hk5)15o z*gW)MXYmdQ^FFzr8v2@g*to+hTiAcYJxE?A+C2`OT^h1$eM_Bq1J$@&`@VnkU(M8ssj++1 zvMfa13Xjy(<1~?)f}ex>Icffn%%?6HJ8%$CYx3lI6fS^8*=Mj$%2X{bo=5$|f;4yV z6F0Xu;cwhbvwp zl~37V1QOyHdssKhgOXS@D9pj@@KZ5^+u`i}Pt>A`)Y|fPfrEN@<3cjm=ru%kv}de8 zj>S!ZV1_6HM%IKFCJCyC5F~BTJyp@|PPb6cTsREP?|@Q}0lw@O8XAQ?k)dJuhpFG` zZt|)rj8~!2#lzmbb_-R*haI|wD$-eAdMou9oGvu5lwx1S=4uwtLBevxI?etpxs`g) z7i)wWfvtaRi>*2fUqe*g_I35}CIe333KiTX&Q23He07mu*r2@75Fb9Ddm9b!sIg0G z`7dsx9^#k0l?g602m)L@cro4V@}=9TOFARQ9oK+7)8p#~m*2Sp7HY(IvSp1_hjxFb1tBCu1)$uHfBxO@ZeyOX-QIY0z`(wozjh_Yt~QpH6knvEa|zhaWjmD3U- z%o!~_`;elAZIKqIx4?ohChbJROYUlI>eOd^ahHkyeA2-`T0|v-(nU@Qh*?DKj60LE zwO!vp@Y`@cyohdxqfD8jE=rdKOL5=b^mtp5peHPC`UW1n7`p`M7lcvPOHlkTi?LzY zh9drKvGJ$=Reg%OZLX?w>Z(9xXI1{z!|p-4U?PE&rDct2{rMRo zKKMZE)P@9-V)*%IRZ#PF_fdtj4>O9R-=<|aplny@eqi@#%frzeo*l*^+hi~`fkt_k z^qi8`bKX#pV6b%)nY)w9RxS0qb2bf<-hcexuyvvb_3!p_shjxf-yafd=n6)bdmcz5 zDTx(>Z_9$*=QczUAKZ^jG3euK2mm7N<0ffyi^!vq5!xfh#pz|=c)*hih_mb8d)^@l z&|FaopXj=|8-qj=4^nx$*Zk&#G$OqW*~x*t??Gf5)^qU^Z2WBC!Aod~wPEw-CG?e* zyCG9mQ+6dXVjKB)OX)3CS<#hsm>YOYGyN?)Sp#=?J^K(nTH-Isj7B$FV2K!exrp1e z4R4T3yZO~-q}SIxOf%Ak*?i$)x?ou^ZT@l@&CIo4dTiPggr6vWvhkCHpIrR34ドル?AD Q9q`j}^Ry>A9lZa40b{RoS^xk5 delta 51868 zcmc${33wGn);HeOd*|MS8xlew3)M}40AYs^kmWX;yW)f(vLlOnaTydDb<`ub6-p!f z9c*#MZEy$Nt_v!Tj-um&xFL$*s3VRWzT?c`xP8A<)%whsao+d;{h#n1@ias?sj5?_ z&Q_*uJd*}sEoS~^pi!c5&XO%?x4rm6HF{#lk;fTlV#)tH8VRF*I_Q!8bft*J#tMM{OG z7z`cgW+FjCYYLFMki;0ZFR6J zD{ZSvF;z=Z90z0P{@Ir8*rpa&<65a{p}n4femf=thzz2cr#0swo@@ahb`vn(w&tye z)aWs+gF<+jub#{(riOv0Boisc0Jd)PSRAV?>L^Y$e8GOf6MQN=keyxY?*4WHMC; zx~i@@<8%i(t;6_uoga-@poo{eksqcaw)rl#>@~WkE!&E9avbO2P8h+mU7fU1eOrZQDU{zyeV>gdTDbAYbtD908ドルrB-z8{43M2RIAa^x&m8O zqjs#2l8Tkk6f6b`#hRhS)Uh<0ymp3t>d^$T8~`iTG{sav7z2Os4^4u*&BJ0Sn}QtL znJv~J%QWMJ?gI^0ifRAUdIft&l?9L69oZKTykg(omGum+s&TFHgC?dHDI0>lereEL z|()$|CK45+4}lyZA;LwC;J36_kaiVo%kg1bLzR;1ph2TS^vP))(G z(-)qxa4BkE2sYL9)ZSM8;DbqCVD;eIJ$hYmYE4Bju}4R?JDAp^ulf%yD2|l`*YxPB zeW!H`=JxIyyxPNL-v@rz(qMAm(%{D)G3^S}tnJy=89#Vp>Lld?t(xGh34<}l4=tp( zWf3x0q8w1BD8Decv1cFF9DF^fG}zhG(XP;YQKRDFzdrr6`3uiDW8&mR=xU!jI5?(f zk6=WvBKGfS$dcf+UUByO;F$g;!Iiy=*_FY~z3R1#wP6DCCzMF4G!B$?3JF z+V3=9r0=V((pGA7T*}EY4 zZSOMepK6_eTi?5*_FqwYSMQGO@3}S|`jlwjs6A*7!Pq`=?YpSwllpXK{{qxN?I%@| z@0C8L_C3;qU|6{v!ECW)Kd6FAGIOCeknk=f!cJb)IA~5PrCbsGx^JC!Wi-2I`<7~# zY9k1$rLGgZT#%)AT`^l798}knT^+asI|Z-Q#cb+Axkl?3TrjjexTUU)Jsnjg*tJnA z-qKIk)&S&#y6T`uzeF&v&NGO&uE_!*w@kSfV{n7IyB?`-ay@U9$$_Z9A^5uA0CrvA z_8-8$LU9cfaB@aBYE{9m{#^*2Wy)Hakv-fT?CjrHyD3{wBjxHTb2GZ?6wDpaf!!XZ z3W6&K7;IfOXHKBe|A5g6tRQ%2Ktj7!8xkZ3RRzw#&g>SOL{+ zlHkTcv64I%B#JBdXk$PTQ5SqP&{gl$f~O&U01bK$>KwEVa0OY`p*KpUlxPS-dVR2d zP_^~|S z4el)DDutzgG}th>nmrc0I=H9yh&Gt&f(}C}*~1v6i;1CA$^+D;5Vwc2jj23p+*Q;( z7IDF|L&~(LwMya$TL|Sd*$kodM@SU$%CMo;+LO>uls>oY})2_J&CPG~5t@BF=N+AgE zAXOom>Rn1orrLqI-PFBHaA`wA-L3_%#Y=+b1}k`=p)-41LJ_&%#jHDwD7R>KDP>ns zIHDW-An1p`yMrS~^wHkS){FI}`U=5s9|WUEb}>bx4+ZwW9x3PYaV|%5`AE!V@<=17 z8<}8#l8egxg?hg;!8s$lu}^|)@%pi=@Z6ID2Gezz@Qk_Hr=aYzEg0^*pBM&u z^uTvYf}fH`@KUlGX6CigomzaCT^x9R1G_A^z%L0-^*gewkm|v*6pBMImnnab=tF6u zj|T;P+JqjqSihU}VHnU0jvrU5g?dj)OJ-Ud+&pfgb}i;i)v@u8cD+78q(_V|(r(lb z7wMD7_tCD?j}qy}$M@6L2wHeS;e?oWgZ?W~K6=6+b`3`CqurDpfKXZ6=2y^q-5O;J zEXv)c4-(!$uZg5Q4ドル(py&3l1g7HpVUAZ786DBFSE35R4j`$JnbiEy?$CbZ6-7#9wW zP-bvwz!S(xy>q`lfil5klWL%!cTF0t-L3Z*CCP(}*nPp#2M=cJgUttbmi+Z-aMQt@ zWl(T%@YKQOLAOH;_9$}Y!RSMJLp`2w$Zxc-)GfgWhb%~csFs#o$dV-=sUNFWt^Gy&So=u(tM;k3NBg}&|6O5RYhGmp1_r&&Y%Mo# zHj{T5cN@t^jN}gEUE@7tr}4hA%LsNI+AV#Nnf$^?Za0!|8_Bnf%GmTDSJ!WNM2_ouOUDIeWj6n z-q>QiV7zGj*?7rFK4&DKB|vnz)=Yk6d}Q2c-ee}PGn3bt$xxQ8Hm^35t!6SXlOGsY znybvK%oa0wg_-=)NPcD{|7M7G9~*x)Q2!U>LnFD{NIqdaZ9HQndpu!0X>2xJtt!Jct|rwaSGnf%RN{4gqMqa$GFz3Df6L`85kZv;h;ji@$YKCd z6K@1F_cm2tZg8zuJ;F6O_2qEj?)c`sl*9byttG zm=Ey8_F(VVo7ro@#{ZgMvqO)FBN9X}ksu0+1aR5$K*Qgsc4iNUR~E3r?BUEG3)sg4 z*oN?qk!&~~yGOF>lJ#a>jZG-;H(|-sRdJtQxvKPXMW7vgdFX%B>Jm%w}T%&*xw( z4Ty{9vNi14Ot*RL2gd#sR?TN$u;((d1#BEEenxjqaD}Ui#s(VCUML#hu#h>_c-Yw7eYL4<2et1d8fa167|*0teytokjgcmbhxoxsuo%zo7p|wkv_vx3zd_ zp9Z5Pp435ZmdXNo3P#wBvAABV+P-y0y=rrCH%4u~mDSr%0UWu_;gh$r8unD?!&{lw zkv)IuCl4|FuVy}ZNc&>NxNFxi^~m!Ern@WtR&B92qXtXtZ~upqa+hH=-B*{U{0%=S zsajQWr;;=Zi8M$O6+RWySr(R!)xF+R^t7))&Zv#HH03sF$?=O8EgI{_+8Xhuls7e; zH&(AqPxbfNseX!5;l{v(;}7}Z96(}bnWFU z!)Gba;8PARRARo(r-VGIcd=#?rhI0YOzH#K)Nn~sFD;k?NHkCYb7fMmE)sO`Ir#iX zBFN)O{lfGVNQ;_A-#@V>M67sHT0G~w@L1W;AIr!S474EE< zZ=ifuxMZ9@IQ<*{o@r{tyv41}z?;q3g^vvp0c%eqde^goq`gi$gy25i->scYM0pSF z>P^M^#ZLxd+Nq)k_LMSe=o{jtjUq2cso#21}(@#HHOFYAE zL>dLM5ドルT;K?*GB zEer=u&`Z-JHbLNh=FS9llp_imKZ*1KP4YN?2C9HoBTBrf&_qxIc<4zwa+!e;4-`l^ zQcWocF3B5YjF>W)2e{&)JvGIHnu=CAfOPv7$N6f?JB}}r)H6ドルDtQa45#CDs=oamsq z7~de0i}6|8_)UaVwtM35g+#)|P*rLCp9GQEV!nXbjEJ!~o$^;WL^Gid@32W5dQ-{O zAaZz9Fnnh|qSYynt-P2QdIhaP3kV^`YVjPo z3?M_C7XT1&<$#xyv*e9eqp3;pdVr$awbHqq)< za8yI(Ma4!RaB_z}YwzgonPP`MbpAC=_uYece*{4PJ z)s=SzNFQ#b+lZulrMz=1FKgi)X^e6jBcPt4-trOZKoua9plc!cn)htsU1_WsjRh}O z(hq6St_pHM0?-kCxA0Q*ydSn{-Lpi0RlFMV5<_iqau5iffhw*z3o^&4c}pwjegwso zB?jPV1W=ULl91VGj?!8zNjv}m?3pqp;NV$mF-AUk3$x?(LX zNM;N|8OL%IU^z;0ドル)=j;NJ#yTLP)a|7Ypa1e+&t#@fNQ@Ot5VMyOO%_I`T^1s}-D3 zgJ~7Cc)S%8HCxlX8&=b44X{8S0D~6LqX4iq1lx=9U8w7LE3aw+1QD^TAR_UAC#HH_WJRDSOyDXEV!g2C=KEl(kgja zIl&>Nyri`y4Ib_btq9rZf#J*+uc#Hv3~(2$TL`+CK&pi30KNlgk5*nGiBbY?;nl=h zq*_Y>OiCFo3u&M}VxSTl!^1=(q9kaj9&#w)*}~H#lkKPi{5w%;93m#3f+!uSSNOwX zEWz}Fpb((rZA2*-M4@59uIQsf3&b!YN`Ky;Xsj6e=L~3*Ufv z%`N0pqAn~C`JP%FN!pl4x>kGz&3`dq-bXN@WLDSd(g}n2=_-le8&|MjIXMtEY zD3vxr#6r*|0h%61Zsu{37qCG10lvEUs6w6m8yJ7-6ynG=@>TZt2~YK5^cxRk^ijB< z(T7H-WpLp+A44>RZ@3?Xm_QSV0*Vo``9`0@5DR_mq?#mW9R!a~%QMtXAv+pw?Ljf= zlN~P&GlqjXZRzY^NUZQ#8Lq(ARNAfupj0WyHs639R?dEp`)9ドルqF|`nU=1!Og9O zH3HS*p6_<2gzb%u>nNdn5SVlk� z9SRS;4iGiuSW9N;OHwA*--gj8C*)9m7^Hg;0D8b@7ht+qLFQ5}bx)cB*7|T^zgl29 zNy!Vg=|uKJG65$|4K4smur{r{UkmgoY#C9jALPHNgOO20ドル%?$TKO?8 z9HRgMlpX_(S^`_y%74`Yn+z*MWcU@I00Lljy3^DG3`6FZ#5BjMRbtW;_(V(>rlpQ1 z7hq(Xx)6YBG2MxL5>NM_r5QvM3xEX88W0c+G1W=@U`!Gwste6206sKfAt0`p<-y?f z(g0KAN3_s{rT;`+UmTEUa%2llnEa;}!T*H;+2x~JXubgrkrtxh1muGpO(w8Jco2{b z5^MNc!@$)w;OZXW>R#aL&QO6Jp#pnC9dhW#QZRTic)Jj6?Z7Hjf~)(2pDV!1o!pX0 zRkrzJf=XDjIJnwu@1!ZOh<2ikoo02?cw(^d0u)axy&)t&qucn0foxy&w5d9$cax zYL1mE1tj!2SYj}s0P0givI@lnZwihr#Uk+uprCNZgmCp2en+}WGzYgsOTroRX}Hm1 zIO)3!x2YppnVd5QN1}k7DKJE#c#{8Gg>m>HG$^q{DTXG_p%KaL=-4X!ny0u!ZU;yf zr-p@aYYKz`Ls>s56~d)D67pOmhyr5R5bA1Sv-l7`4h|EPA4HuvYckD25(DlOc)S#l zFqR<35i_nrtpkx}zwnblcescyp=ng)ls7a^qgy!pqb)pf5@q?PZ-rJKOO0AQgg{FP`Y6aTymaA}b|WHyU-(c!0dzd&G3jo65axdv zX#x_wQlV*jQfr|w2Z*t{iDBA2)A2OiSUDW9BvHbcM8y3#q>M_jz{TPzDA186&{OEQ zQi@4T!V;v3TQJu`*`C~W>6r??E2PH7@Lfj0P-Ae>1yNig0=CsAwhqZwUXL7YxX4F3oG2pwXVR+pN1FnSGEj`- ziUHav(!i5)pf+-dZEL>3Kp}{kbP!MS$S?$YOmhrKq{kNFV9+BXM3eOMw=k0wM2_+@9(<{ zMIr2EyB;Ioy-apBNInYbfFsr-0`wv_FE;>U{~!!%yH04sKw*_=|4=7;acKWQf%<6w zK%oO^yW2I7b_{XZth;<*|db304;m(r5vctGjcA5&(p~ES8X5!BCnK%HO;U^dSioZ%rbnMD!jKjTv2Kg8$AGPwq<)d6a67pfohr(w> zryX7+opU9l!=#yXoS|SGI&n&iQ=FOpxl3FeGP%zm^$fyt z1|1V%TaN<QVX@)Qb5UwYQ^x5fXtuB?j?!0pK7s|C?D96+opDIskn#55N4T=G9v<$-l^_<4p zL2fclS=O29t8`F0lg<#m>B!|7ドルiVXK1)EB9%$pDtN;JTXyeWYovO>-(uL>(>q<^7k z`{ich;5b@7IY+{SH_3&Q6a58L+E10wu!t^GaMt|D9KCy5oVL?C&?NzdADi<30bpy< zvF^S+NM>|$MJEgX^{-dS6D8D4p+mgve_+z+bOYz6qhNv*Z@zw>Sa$FeviI}(_pdgD z{e%Ud3qnhzQ)zD+K{xUFlL}Q#N}Oo6Nexs<#f@n5o$p%qcDblwl_=)j1y(jq>$UL7TepNRu(!Nn;b*9j7ri-ZkYu`|l20jAHw}iEQZ?Nzlt<99gouqkmvhgyxuy0%s2!6qkch+hnqnkt6hbv8ydr2n1${) z7o42(fPYoWT_OtTI>Ph4cE9dphPz;ZpR?PfGc#aLj)ObpZ8tm&8m@^OMB!e-j}` zs??p%(@T)CmwIzk?mV42rSx1%k*Qb|%Mu$|k(MBEPvEiP zY7DxNY1v(iOSh8}G_XMrgkE7Bi3Mj0rV|`{iqPfc(;Z+C(Lr>p1`p~$u<98ドルy01@e zXA9wnh@C16=kgTU%xEdVKO9G8tI1(%LgNk)%f%9qmivs*U#OR)iS-~oQw_l>xC92m zHj?*qXrx~v0I(}Ar4Uz(T8JIyfC~`dSFk5Bn>$zJhs}3DZD2-o`qTJqmGi)Z$h398L*zRgw_z% z4YC@=GKC!)6%Y07GOii2w*fP$;K!URf+t6kgY1I5|C9z`tM9qQL5+?^}bAaVc^Uk6wx1`yV zt@)9Tg8E6cHozsBjg2Fv8j!L@YA8|#A~g`HxJcC@<%kqe&dbdpiyew~mt#r;dn>b4 zl_7;gy>cXrL}4jX9YiXDREbE%k?JQ>Hd6gXN=K@*NGZ?+P|dUWZ1^eArQ`?UP7>V~ zJ2tY&qyuAFg{RQY>qlslnQ#GCz|f}M^MuBO-SaMB{`Q|xw~SK?*FD|yDYcbSOS4+i zoztcveC&)%koTnQ6EPNoE_=av=$ty@Q$v2TUXlJ;x$sngR-sB>pct#I z4JIs+Mvq8g^hvlcDUK@L1?c-6pmEkD?_@e?pU%lWndF{BtDlCWJq4F51$hbe2b&qW zSEaOp@MyP=CjKDzG>rM%@RgJGvUDQK&KC=i^@QEy`AJyS0xa_h1dIR4|Co#aX}?96 zQ-8~k=kujeoG&clxrgI+)M?Oj$BXQgL){c8G=-mgw6_Ek`3=?{UfhW(?@TNi`CMC^ z6m*dS(*aE3VZ)sUkI;I#3nQOMJ&&JDS2Rz@0?=%yxYI-pEx+*WVIkp_0c~8sLUaLb zx!5+H3D+Szh8UuWwhF{d7(#44rXje31O79S6M$kLgao?th194Xl6xjjLifkA zk+3`y+xj+?5Z;I7b|}P3+JL4&F2{iGo8YT8wvA1L#V|g&nO2^71x^0jj;Vip&j)G&$dlR*a(JVJ(}FPSQAuJoJa#=(~nfX%SbCszQP9MMSlXA|?xmI5&Tsq`N? zT~_KOrTZ!5W>>f-$PFz4J9fH{OWiVdrSKC|wCJR`=mNbMjg}B#)ODMYn&PL=;OC}% z3uaibe6}H^=%rj!NEFgIi4uWfe`{XF8+qyNdFl7^(!2B0ALY`Gc!vbMDWp3F6@4y0 zwZi=^wDJ_5s&G3ドルP=<_vbpvgio0`mzr|xiig|+v4zgs9raj1aspi}isc>SDK+yz)I zxYl^+&i_mjR+-#V;c90 zThp6-cBX&djbHr0QuR~}h7rDcN$Y+!*ronWv0{DSH>vI8ozP3KoV%`dt0Dc{! z_3bv`C=_@67kkr6ドルLcC@3x19QD|H$P6Qk%jIX)<$g%dvxt;>^v0`|88NHn29hrxeK zF^_B`>^ouNqXxOEnDitOtnj8Ej!_|!5DHv{rj0XX0Ia+lexpauhkG_cLuu*(k$#Lv z?+E#8gDS+95Z8ドル&rNXb<9sc@egv4f`ipt1nxa4?6^{%!|`+g!nhut&64g?t@k!gxd z(X|mS$IDJREc`vd!PluTvE4Vqf1RmUr^P7FyKrK~_FnGxvq7qC zJmADE&Mx9ao|x*`BzNZ*f)y1{=Vysl|buh0vSDM%e0+U;i|_>7kZ@YYI`n&c;n z;6xNOn2NV_ywk+70~}$BABw2#6hd?gZR>4*nw%ZN8Z^jBusReaLKx+Eiu5lQemKR# zqzZDI^7?U4;OEd`d+~BkmPZ)kPT#ZH(d&8JcO0sJ_k!D241S`HMd!tFzKIu3qOr@JRpo$d~yIy%Ngo$U^#IvcS* z)TM2=o+{%AMxZk84yVdE-TbFq1JxzmzEqdMaWLux-8y;a{tTf&(>P59GwARSg9ドルM^M7T|-Tqz;-hdN^{Wc*6;~IvgJ(SB^~|azovYl&f?XQErr5N)Ox#pofjX2p$RO zc09`6w7AdDp|X*!mFLa_g~~?0f$*;6bCx_Q+&V(P(km3{85Ow5Op_F3tHdh}Ee%MM zE}z3s&o+?9{eXp)#yK^?;O;H7`W(JQ!oVYRvmN3NKm}byX;4c6Q~;n*}(3p6AP zguq!JI;C!)m@Lk%=kUc@n1NXsldfaosF>_}BNunDYO!HxLBy|c(-}{qyb|Sf`G#|% z0H4Y0WO+HtyU>+u-jikxYwgO4QdD%N%ObsKrhFc+mgNbQtPPl?s?*yE_*|+Z0Y_bX0iP#sn?b%&*IvHoQyt_R zduYO@?|uS4lPXETQP*C;7f~GvIO^I9_*AMR0f+1;@|r|+F(d&|7V;);fN%(}5VtNk zi$zcm@`^`;6jZuQj$B*{YN-^|=)Id7DW`Q(PKQEH;f+GX+sP@g*k4Y8>;7`u2sxcf zf}Iw8%nvB2jY3ctWm*1!a@q(vo!O=#4k)LMLQdyr``J%U(^)}ngpV|b&&vY+Oi)Qq z8-<+c&b7c|p8%vohz4b04k)jvohqw<#zg9w*b$g;56*d9fly|}okwzjaylqhlgfyz|$qhu1hlpy!v)#pf zhwW1&c*_3=!HeV$chmlN1TT`i^#7LNMRG^-_rD@|k=#l7YiA+HW_<3s3tc~03(K0Kf%u`ObY{V_+1DETx#h4ypU zS&%`e%^#h9a~1X;;anXU(mtRuk$@+lahZo=P9(5pn@V#(mUfy5_(UmyEASoiZ!S^1 zhdv21C7m}CD7OTtAXba89fqGqP=-II?Z(f~QRuoq2KdGd5N^hW42hPw^(Jur8KA@p zx<`gb>vNfCn9}^pTqde4%dgC3 z{CFD<@d$_vhpsn!+?ldy(6z1jz_z_+vjh=0bd5~ji=?cp@e^%0bqakrgimp9_{~u+ zZ!K`GrfscqnP`}r{K{M=s_dCxnalX4Z8(%hIMk+m?7gJ4`pw9-TZ=xq5}=sNM8nkO zSLQNNW&ixjT*fbN!=YT_kZvBB589T=uEpT|>RcuoW@vt8E)!MO=U3)3eq|dDm6HlF ze=vSSK4@Dei^ItL>RcuoW>kJD?&QD2|5{{Z4x<~axts%son?yTWd`-6uv82S}2T_ZQPyeCT{H0pD+l%-pmq*q!@Oh}(u0QN@uu1=k9}5JXC=7B@YtdaR=5%dg=0%1EV%PN-3Y zYq9|H@xiJ%U=a_60mo5h#wj;`8p+m&PNOlb44>q36^h8R>^H%lTASDqPH8l{1LQ1# zblPBMA+lcuBZxmX8a06Uga9{&u_=bj*JlCop)WLnW5DR!Ur55VvBZYV5mSuke#ctF zl3hj*)|wfy%lLQm#A|J4()XsC^~IiDqxk<^4m)a*`3c$&k*%=}mmp#d7xt4gszoob zDh3r|{>ST{T;`hLsdG(#?25^-BDnv!7EihtzKZgXyh+PNo|5k0^A^(dxiU@W_o0pe zsc!F^VYhi^x3FrS84tgoYkFyXS1wz*ClBxubdoK9i8=($se@PZ(k~+|&g*g3fxBfA z07%?J7;UBwfJO6Od>`niX!!N?6+5L~^mH2mD4BcanWGsq!oMAFR-|2B#hDa^h4Fo_ z>+$|GB@rX@iE@dK9=`kKZ$?S2iiopPtYhs#3sL9l!hF}NYw5M=0|1f|bMXl>J@Fjw zR)`+rBvAw_a(Z#tZNAy5!tzV892Fu&jcXP-F_G6z@#U=WXaJO5FJ4XI+DN4v{84qJ zQjLcho-^O9?+zY~I#-Gy0QGXNYdv8(ReeG zl`{D(lC|LQe#-VVmW2^!YeDlq>Px68l>=`@@)}L1-43ドル$jijQ0ZmaAA>Cwa{tov%a zjS<=-2kc%m+k^cgk?ycon$c`r`g9xyta6p*om4mfoz|+$&3bid=bqilo3yo`$dv5t zV%=Bhi5H+^v4-^W{0hMb`=ACAf0CuO>dLU&5_3lQ{b}ZjY!#)0aNn=Zo)A)`pJLa9 zyOx;GuzlgJr<=x;_1*b5)6k>7Jm?H_7<(~xa)x;c`vgh5!~ax>`o}buYhEFpCdh>- zrUk+mhoTaYg_1EI@2k~%LwT&Pwp~9SixcBRM`+u_d1sn~t?i&kEb-^?+B3~j7~}0T z&406fnQhC=shC;V`z-T*eBm|Rd6qe;_e&~`Q!8ErL}HKb#c8*Yb~_MtVeMXVDnu=KECs4iRlHWc#`NQ<#7p$mkvhyjx!4f}=a~k2%i)m~%pvth@rv~* zmxf$*4p7(=esYevfT73Vnm6I``ESiiz&Pic)og88d#?G8vz!z%^_VF*&z#3fR)FLq z6)-|S&p+QhRK-YZ(`K2v+z3B7->e_A9A{|&x)kR?2N&W)E~GgwHR9zc z?V~Pd;}!gyNgdE){*U_XHG#mQKC(S`&h^~+|GwvLrVshP)ClixHof9zBTjvha&11V zUTrqQ_nXbKj$%S`7BptP`b}tFV0tw1J{Oo3?A3761?EV6oAQDS@DkTP$Oi#$j-DIn znXXsw5F&Ml=EZ!{m=>LbfdsdOuU%kv;rBq9e+1S`{8=(JU2gypH)=SM2GrWH;6n3P zH9{1y&nl8bT!NDWTs6~SHw)wO647Eq*nFW`R{S8ドル!gUv#ym-06O9{Dq@o5A(lkFFp zSM>SieuYO;z>DZu3xWprxyXFFaGx$e$%pR-CANmMmz#&v>fgQGTv4)JM-bZTt8Fmc z5f}r8eQ!AFVzXy@iza2*;+;k+A80sw?mAN0P0#X?$}V~qja1&JXNQr>PCRMN-=ln- z2xcv*$JeTngNSXVXQH>J3}=6lNoEdbd$I#iL(Jdepfq%Q;x!^EeQyf{-KQ1eZAa*- ze#+G*UR0p8-VgK;IvCU0mZg88LZ^M4+!O-B!dY_R$e~Bycr$~_Z__9#w4hj4EHoSu z5C#^URvx$z2k^4EZ!g2fek~wT(I_i5;bI(6N`9kqyn}UG6#vg=Xd78(6`_G&b*Ahm^uG) zeE6p1H8oD+B;^{D21|q+SDNG4_u)4y&DsM9OTXWn{rh~c<0a2x+=po|8si<0d73ol zA}kkP3lbL_k_DhtFaEtbjxRUxijWN|@QxD;?HsHnG;*!_efY`m&B2ijh2i~In0;WA zc3xp#Uy&y?4J15Ur0{ek;c30n?73)5j<=idgv=wp8t!jl=d(l0txd@vl!8z9g?yeh z=!tKsbhA6+^$HhX#UimGhFv1~oLdkQ7^tWvhluaT>2Y|7#Nx1#cL-L8dn6vL?Lhtzp+lSwGX!ZbBo>re z(RX4iM3_LJv%@|u=CF=r|73iRq+M8zB`s!UEi@Cd!ahKhYGGwC!Pg_LLvk)^VUiwd zF>6Q~-fb~ou6!{IfHuMc;**$ae!otx-|*AGZ0tmkB?XAt(D05Cf*ER4$YbvnRd}Vy7@jdCqZS5zs8)) zpp$M}W7gsE+8Q%mf<8#y_fwv%yamed|621%_c~nztjtej{p#z?-zilu^sh5dnby6* z%4;UoSmT?FKjyyTdUznEgyRUImGF!X-DD zW1zdkjW?KwvTwrgZh)rT7k0YQ>{j;;z2PGw8(2TrqO}ssgRQi*%)l1cmMnqi+#Aga z@I2qT+3cV?J0u$=-VMLJ)$B|>BYl-{=UTJppl|TW=~52^@{Z#K&czNag47!f{tokUGNhm+`v9?(q7%u`Spa zK7P0PUM)cA%XFOq66anPM5R~Gu=;r&K6Q`TWk}Xh#2DY}yj*+Dx+-vsl4R7H72DOeLY|znki_oS+KjZr#}D%{Fm_32h34pz&rpdr_p!Ac{nq*n21F#I2J1L4s5hQ zA76eX8SSU+5%go=FbM3v414fDD!&mA|4ac5-CqHfy4Z*lj{pg<2-c}m@xf?&67crk zoCWV~e%L&WW*N_zPXjpfYR3GGk&;59cjn_q&2L3+_v2)x*Qj5sp5_{xJVW^;oGaiB|Tf-kVnFpt%onnL)5PC=Dr765cfZha3uveQk zVX$bwK-%U(&C@gUK{cf5#WF+^R^VDWWgh`wtfVLm(wo|CM!jf5D@@=%grP7(0gV1u z3dLbFvL$@w33I@B$%Ysx%Z4H;*-#`U8wyM8ドルxk538;T+Jg~=xoF5H(n|4Fb5*k7Y3 z1sBWrY~Ze^yhykNoZQ(KC32=R^Te~}J$iaQV_Nib*V0;b>r~GKBX}S*wvww&A~Vw2 zm?o}|_EA@96y`vzvjIuOB?lpfiEqjGq1c@ccVw;K>ghOnVL{kM-^ivE(iL(eu|cOMD1^IZqm(6X z6(tA&uKZcas5ドルAr3)Gq`%9dOMt_GDLSm+Y0j;NkLka`w8oVXny;6}u+9+dSf+lt@G z7OzDmc_ccxUjE0mB2{6KA9Pl)ey)=!4Z`8RNJE@7e>8nBME6H!OAuM5BncSoSjt0g zPiD~D^qZ70!(Y8^4hT=*Zq^j+CW4@!<7ドルlacjohyon(+8b2@v}*y1gav%a8n--bta z^;m~kqDYBdXE8k;R_`-KT)Z%dQmTcv63@NiE46ドルUIBc0ドルu^kdc zk3>&IAw>R;=(!e8@;AUj6g@yX7fB#EbrX1ko)1RPd!i?dDD1Y0^Im*8~k!5?*6vj>_F>8 zF~gA^s8ドルrlYD@oPZSkJyB#mOE;!=N@XmI*g=6V2Yq&%!81zY7SBWif;U(DVHO0eX6 zmpZjYIbf8*4X3hnei{4)27FoKey}pbnPMJ#E3r6BO}pFMgyX z3-RDrX3tJr^v6AOA-o-wnzy=ON^1PoS7ulCY*?_@tifZzUihC|!lU+@s|(Si$H;^M zZcDg#uX$+>AQOIVu2b3e%-CO;RB`B%x-}(Tx26K z@3!49cr9xq!rFhEn@-C5iGbQ)Vmy)`4@-}D8@VF_K)g}PU~9xrH9$&B4;K-V+Z0(VT%}ir`0cO-!DD$UcYv1m*ft zc;ZjyKQWKhbFBupXZ0Fu9^1S6JL|ljkuPxIB}RNEifP}-tW90BOH5v!l8x-p6t;#- zRm&9-2i1CmVNZXuZe2$ta15)GNYKlGTfRFy$*_8mJF?2Kj_tHtf8-XZ7@eE*D?I&X zS}9b0Z&;Tlh~c#JDe5ma zGNql6C;lGQ86(0R&F^fT#fpj6@XhE)i-d096MkN9O#|5`cCoI*N%MrJr>ip5dqgRyVdYoH@X{gf)jB z4zOz2&7nQe`W0Yj47AoT_D=YZLDm)6MlT<1ox^u<{504)kfho3c|)y3*qy39l#=x) z_CUCFl+}klkhy7;<#qw^(@hrk+~frp)>rJB%-d6~UJO0{bgVT^WeDb^{ScY;UB)|JXfJmx@>6Q5>|IMuq+U{>b6 zGpr&T6#VSB)-bj=2tm2c|qVfg(mKEU}!9gTc0m<(cdeu=ewg+pzh#>vHz* z%&uFkD~s6InbS5}!&E}g@^>o{dfOkc*2me3%!GbRE5Eb44u2XhCzKApOGz$qE%~B8#)i^N z2J|FD#J{~%|Eu0m% zN3h#6Vced>ko{Mo-HPnWB73UC)@45IY)@y!cL_xBE{50y=!v^CM|H8Ml;xF+n#A4V z0|V?ED)^H7|W`f;GWt%c1C)qZu zctYS@UxY_2S({I*)CwYY=~^H z%&EuN*QpiYsBT<+e8n{f{{7>){%?)Fg;(FgyMf2FTf(o8wyVH-TG=Yi?Z&IJ08g#;IIl+KP1EelX#C#OF}s$`5!3C( z8nTbfvMV7MZ_ct)C{50`w;7ma$pX7StJoaP5-$*9mf|%+%+ls&VsmEZLOamd=FHv` z?Tt2mdGD4b_D$?hnQ^Dfg@1aP{S2}f|Hi(=LR>nYw$G)(FKf03kkB;Sp22R)ymztv z9Aj%Uw_a*@py~%!P<8m>3VSln{)b*>9|Vp3>&xuF#|vH+xHQzNn?n}jqDJD?@T#lr z(KvW}^=i8ok9}9$gW0Q@zM;J$Ru!>q1Mzz^i?|vrB6)V}Ep`COSa7R-8Xj-R$AsHN z?m_vex!tZu-HhAqiV^vpt;}|Y9d4fVh=EqMuM5|sIePhX`(CbZ4=Ke{^s=^nUD)jp zqL+j4*bkR`+C%2`vY~xlc%|&+?)JTGY7d#$%jWiV;ZL%cigkoiX81b5ドルR+}oG~bH= z9eXQtbH=_(g`5w0%)SJ2{@7!-t+RK-XP&elfVKL~Q}!Rh3nMq%Pip-i7O`>s92R$A z0Up+HFODc2ドルO%<{+hjvh%peqxgd-wr7np2k=jftq!z>?0T=SOg0)fZhvOm$#^{qR= z10Q5w+F=i4?6Hjcp8ax+eVp0)3FHfWb@JZ?+g<-r`z+%5pg1t(oa{-dh2xbo`b&f( z1sn74f7oTN`qSD>$Ii|P4$Rm&+-Ww3ttR6nc7gCQ5t~k|7MN2s17RP?!qx2ns3splq-+7>`2-I}_j>Trt?G*I!cMQ+(Rs49@&}u=6JsQnh)QL&CLpm~$LN@UVL4 z0mj1c$KlSV0WXV-Hy}8e>BSSByA1YxIPh?%%dqD) zj(~h6X?x6^_9yTT=IUO(tjTA{6hyl zKA-Fyg2%99oFpF0j&TkLhJQT9`4j!5>53+&8jp2&R78`;ud+hvj8~L-6Yxh#^3I9p z!re_yCE$K&a=KX0(b2N&Tz$CHsR-XUpm87ドル`TYNx@D)>??iG?E`4i63Dtu|G(BxNbtYTbZXeTFgDAn=)F#;3&B>npostw+8Bv1BE4b3f+7z!u`WD%7W!Bh zo;1rjjK(5S%A*f<#pbt$r&jW>kKV? zUi0IL2I^EvJR5HOdC`CUylBY0pEX?i^P-1-Ui8nO7Y#q&84ALme7w_DrL&L)jtA{@ z*8*o4`ykxC091ZI{9%E!oxPKJYoRk=WjC!Gd7{JE#>_z{IeH9t`I1YWBiUVal}mpOlrvrMM)B4>}yR%eWr&JG>V-K(6MV#?p*3`?*~c+mY& z3|8iv`<+`=y#v8fCL;64COW}e7g`-qcf z%nZ9e=FGw4oX4Cm;OdAeyjyu~>J4ovG7XA*MnZgIK~ zdzAv}W(ptQF%GA|4BbIUyolg6eRYD~l`{`VkPF8wF*?Mc(CQhuIxyq~=lOzHD4J0L z&G2HVzv%QTK`X`Q_$~^5DkTdz=0&Fm+nQPMqBGG1I(Kb#&Z=x{M-2v|K_NA0)~V+) zuQ?+Dc=l_U>xD&c(JdDUQvM~ zB3VJ?5^ZGf%ina)Loh*o%ULl&bY6l3tEh9D0~SD#Ne+ilV75bYl_UB`aI(W!-opBu z;e@xHLz$Vm;%(>?0O?8tw^U(XqNjC=Ilkx5N1z!eF280E4^}4tdwP6ms;6_$l^v223&3y&`_R9RaN<;t?07>X<$u0b z{46?-UP=8W)`VksLLj$?GxLF#-_j1~DhYHSfQDszx~(0Mi2x3LE2l<@j7nxavt8_s z;I$;SU;VyQmCm-j{O0|;&ub|@CW9bXTT3WL>|Hqm!4}?CNZ|L2Yakf@H5$I7m&o?` z(J%K%htS|6^oZM(5*g7YH1xzmvO{2TmilA&39P*#@Il z{h?Eq*rxYZaag3NNsOo`UJoaH=y$DQ8*!|8TtPNLBk(Ebo#;0)_nv|WP5nbM^2}T-RLdr zEhOHjcQr)JiN*;p_{ix7@S8t!DyyL}g!X{G5DLXp64!&r6FVSqi5=m)A34)-oowjG z&iQ3vcnt~!<(q#va4+0px3nluyq{bcxmf^!?(!kza>NZnO@{^~{EC0kJ|*#Cctx(d zX8-EzzozOZbJgDd)xZ0gs=v%tLs#c_{;8<0-s5;dwl3d#6btfycn%rpse1o*_kv|o z3E8Us%kRvVeI6R#!s`JH$)T4_315gm<5gogsu$#c&5gogsm;mmzc!&ka$ctzcbuigogsmnws>j_H z&*MGDtj4V1Rg#V4q#=P{!exF{9vk=i%=uNr{;esniOv##6+(#5*G(*}0Q%W3=~cQ& zFv5+WIbGSx@TJe3I>~HZ_Md0Vr^GJBpJ%CuHzQ~nv(x%cFq@C+?t&Vf_OJf?o@mxY z^u#COZ$EdcO81jzTn8m#3I~1ZREAs7kB_N;dG-a%Jjs~_Y$aNYX`W2j=)i~yL=CM!1EnhjKEB_`` zDsGU%!4N!+I~x?*1?@iz-MvnEnN+0ドルB5VJ#mf_KR|4(IC0$o*o=HGowlJ~tNJVHWN z;3bfdeUXr`1jrRZlwHLlir@-{DpEwzN&!Vd!Ah(6IcI9c!J^L8>eP0acAR2sYsV@@ za2YC8Q5lNGg|LGV=J$R7d*8e7CCoWuYlHtB&EHd6EkQ~!MZ!n#NYY%?v8kqm!k)4Qg zck!G~6V4?Xo!gse^mr#~L0|G;I>VP&>_y0o*}+X9>CPDLhU8_3!%fQ_F^__X0y;Jk zzAK^&j@gwR_HX{?%z&@_G3yW(!cY5WpXp=qcNy9(Be~mek9O~d6aD|TN)4X6N$G~E zbSI@V*|YF!YE&_qN(vCbI@yu%pc1jWRk#lZXFHLeLy-`235ドルirN5aGMz7oF*qT(Au zG*T2{_?llj5-xC2Y?QsR4w{W|czyQk;!B{!OI-vH;9Th2kHkT(R17N zL<#>O>TW)I^?fG5i~`JbCpzTGN5hqQ4!vVKC?a`dSFSr2F1#{6l%wkq7o0Gh8N+@p zDLLX|a9;;bX97%6NB+PVp_BjuRGL{Dwy`5RPM%Xo!xfFrv;{hCflOP3Vy4f2!@zEd zvHgpDb~KBp9t#hxc|R!Ol13XrH8OJXk$vF%aoWg9b|WRM%rtt`c*Z~;g5x8ドル% z0v&@wojHa$W&>9r54VcWxj0K&?%>RK9S>Jw(fXO=$m@4=*Kw%cCayXWo?@Nmr6fw^HT2{uE5(=lsyA@bCd$!AO|~`#zv3n@uI8lf$!qdz%dW z$tmo?FmHYDBmmJ7uI(ysiY)_zy|LQwVV& z2mW@n*yr?@7iFUMn$xH~zQ)KU#(}bVqH`#R87yc4SJbFg=}$LR#wb3`;lq(TfA>Z3X2k?1|%kh_1i1kdB3Wz&qOJ48dzxt{0Mu&t;m3}8-=H8VM0Q!I^ z1Ialq%3V^L7HD_mM{_Df7`U^~5DKTdj-o6jPY{;bN5O#jg!luarXc~E6`%^xV`YGb z0nT3sXsETH4+W?R56glI{KOy)#>2%ys<{%n;}~l44mqt_!xbs-f1ドルtj%z!^+-;laz zNd4=4f!DC@8@o(ZsRSG~W$V!CC?Cbx@aC})4eR?puuNc;1t+Hjy)8uf6ZT?UULCh6q#%3qQil2^9{|hx83W$S}NLtfKkOx{R*^}G|A!KlQf;T3G!pW96P54}d z@-pMql0hI#ERz}_2GcTW%GC}%u=)Y0hZ&X_a;T^SaR6oJUzVC?d-n>#2ZWi&7}^o)3p4b=c3jG>h_74TP+v0eghUEltXz!jZ={!NAPOFn~4S zl9^9>X8r|cezm7SQ$_f)gb089{}f>@Q>p-$%5^1Rg#3%Hu0VYsT5FCPR|8>AfhgT)mst(fszA`zpn) zVO*bm%!!~Z2=^&o+lz)xa_9k{ET*8+|2PZ)uB{L=fL!OalY?U4s?SEQW3qi{J8Yy% z>}h#sv=|PuSCndFh^1k}F0ドル(h17Sc+OAwH+j#5R5Gp|XH&sWDEWXz%i}m;yzRg`!lK! zuFMc_`&?lV6n*x4jtppQEe;l$xGp|OI~NU821qPzz`en!(;Ck|(1*d4;FWgbG$D@<6}}$sjevh}n};)`3t2c2ドルr-z@zf<)*#k_x1!m{`n*qw)^su+qj}s8nu0z*}>v8M)ih zT)HbFB=y;*9Cv3PN#^xp9^#?B{Fgjx9pYF#*%u6tfJ)3CLI?v<@w3exa4ngy%r8d+ zK|qfdN%TIpFLjg{or;3Jktk~0ki`I&GsVH-MChA+sXR~oVHMVGqV}MKJ=_w=r%Y@4 zUg`Fs<_hap&0y-e%_sogv2owtm5i?rw`dd(g4knv$e}wpuuirnlwp&lr4onknhu!( zUL`K3mxif{9AK7}U|)Qt$^eOzsuE-Iiv?8C9|(Z7@(MyE6tU`jsDt2|4p{aL+*v?v zg^u-rNFce;I*!l&6^bsO@%Tcjv(EAzh16(u@lOh=DqD>fzWzk&2+@7Kr;r9%JNb=kQ#e}K|Xw{^`sB>m9lwlnYE~d*J#cNaxV`5X&sWRrrmx-D_ z63IMMtSa+*F*Rg;t^RR>+QeOau9ym;Q-vi|k0fkD30=};02E|1?cjHyJR&Q3rH;LPs@flS(OI@f-kITdxEgnG4{`Ya_H$Pm?(f#3U9=$)D#-9$LTQBf%z>01YJBm^?V70N*Vn6t3 zJjzITE?ya<+>w9wG<_0h?@kgidyhdjaycmmcjuvt$c2p#ncs;~zuwnoasytuyf8c$ z+8kDO8`qX5T3700l(x3Wb3EVZc|KpCqY#Ma+da>3*XM`yd6(z;QhhFo>o%?% zNKcikKX7As4aa18ur%HNlQ$gudLV5%f77?TP2U>ye>HvE+w{3|s1ドルaDX@wCKQ{Xbr>| zj7BXh#(kc6@y`%ae8xYlpz6!+M-|4MRm{tIs;N5bA3d{5r2>8orG9(gNi9*pn=2Ze zJ(%(beGo*%p!v>|s1D(UJFB~;YT1w51K7zZigAf&_}{o2&-Vj|V3r9bafQ!h&{rb{@H zJPd47tqC%8eMvv+Y~3gFnTdE=C9TXkm54l~jO>e^;Aj;MsyL*Kms!j*nY{8uDae?# z?JTsNgtk&pJ6~IPt1ドルf_dk{>uv(AjD*U;Z3`k$((3`GC3N^327)l^<2&p{@zcq?5~ zk62&{diaWJ6d?}rvTB+R%f7u@-P70Alvm+)df~@TC#?Kp7!8rkq7tb6KU`fy*I+x+ z>Kbazc1*i^QdB42uA!@?Dp*xZe?%zKSxf)g&os%jYokAw+YDE&5$_FViA!C~o-w>af#6SSF!~6A_iy)AbSTU;sBX)Z!o3)3D}KCeELnm(`8*SpFIautcD- z4ykr18GywqZfXK=kZLt)T=4BC8i_Ml&o@y&S-wHcR$Hp42?v$>?fe8(TRv%`3@b~W zy_9}|!4ドルIj@CUM!X6&k?(oO7xETI?B(Mj z7NR{5V)z#SB+(w(XPx23pneDwK-E0uffkf{977~=f(GfDn;{F7L15D{NSix|-)@sw z)+;>1$u?&^S-fa=$)Jg>?%aX;x~>fCHISbw|0FEM;a6KJ#kjhadPASvTB+Jv>Am zz?H6TRN4wyx~?cDt7k$xn{N`!p-OQrV152{T)TNsD++&|oHmT+qJ%nc7}BtZ_`zW` zVa~%^+d(<0ro^(&1yayv$irrg_zlxfchxkc%a~}p^x7v~tcqm7a~x)k;563_r~v;v z>K6a@CaA@&!zn+{)8D7WMkc|?;%PY|l zP?&!+f{GDse>ej5372I+#JddaLk=h7+`(1@ijSj4QpWNJLQ?w+v;#&9jd3^knuOI7 zO32DCc#WwXQk7ENY-d8d+Hdcm@WPD4-DPGhM23tc`Mk{m?d=)C-B(R6wrpBrsUt zrq<)208B76}txbNiXC>n)TrYWPawy>L5jG|An zcS6>{L3I$(^}KL2U4p%xzZy+fLv`}TP(xF4i^S?jG`e2g+9O(`Ol$_nAWO#3wf-H! zC6ドルQTOzl*ZI?1AWG@5U3r@|gzyx)$iGBK%K1t1Ad5F-X`6yVo$rA@zw`Tf#XOP+Bd z6nh;Hxsd9`)&zXfjRH_ijE0CfHY4@+L9?p@F}x`S#kD*z5n3jO6&0kv8}ZPd?t8g! zPTxl%KI>f_-x$Kte(8l^U~BSIKg4AY?ktWfm7j}Q7sl2+2iimm^nuKY`;C9`Pn8{j z32I*yDFM0d-M;815EBDJET0us`l~PclTajIdI8d0O<}nu2d{vvn6wfebei}s#7ky^ zBoB>+SKG`ljK%#zJNV#O>L0*(ys@3?LzZ0?{Rxk`h+YP@4qc?wii`u(_wuN5`q#{H zG!O*6cO2DVaoj5c%3yc~_+rE06Kd$Z3=TzKJ0Rh++RQfmk{|1B2qMuQz_{^ zZXuD@QYI1i4wNem4N#PKXdrMeA5SeJ002QLAp-FFc$!d?M*A`%2Mu1|CI5-!E_mn#4I zG_xau3?5SAVCe(keJ-KfKY~r^Z!Se0YaJiEl-hf(hxp3TR0ty|{R&?+5pI4fKRS^v zPo?ysiL^NN*`i5CSG^p0auQvLBO|*fA^zRVb(3LPKI8?H@z+-V&&jkTb&U2YG{gEG zKQVM%Ot_wR zO{G@EGSO+2kL?(h(`X3hzh)XOL{Y*!Kjz}?<0+3jr_slplv$f5%xjzb3wkv7bj1mv z5l-dLxr|O&qdo}w+Z8rr)!mA!W5iKyg071P(ZZiNk~e(`^UaT4K^GJ{mK}Q*;O_t6 zef`lDG}yl>#Ea(A5Uh}@p103{zj%jd%%JKr*eMBot(Xrxc476DjFNfiX?(j5rsSC! zR6GV)dd9ドルS9LsQT8w$^20mbaRDAi}k)vpn4C6k4}nLz`Ejh;amX1$ePzMg_PPj3{v znM9|%uO!A5j=jG{lfjxf-=Yuv?}d2H>9qblV8|2xer_=IzNyAnZocwYsbu@!hD@xG#}H8@;IiN7tW$F;Py+i=pujm`j8!q?!e__ zcT)>D&L+a)`;oKhaR}Z!vnj90F(bJ>m}AZobLiq!X6=}R6lUEMb7_y`Rvb@zU@py&wjhMs3o*VE zuS2DL9j~~K=J!qJxg84ドルyzx$IE)od3hXbOUd=5gF^JsU_T$#y8)$X`GYZl7mViq^R z;l0;WO9q^cdJpb@0}Tg%4bR~%;q(FVyc=lHMF7CdAj# z&Ek;78EwCT`bv>rRn~8h@u=$Q8#J#hx>3spqi&>|9ドル@ita8^?wOHv1g{F)VHco9i_ z{-!N3jfr?o3k3gK$jAG$y#Ge*i#f&VH_@mgc!?}O=CUxge z+(c84ドルr{(HDMn?7{Sg)qJ)yHW2V{BaH&gQkrX3dUaB2(dZ<*ma=gma9j;9l!0lviv z>a90Zox8R#fvf_7y?TNYsI`iJc{7c`KD9$PQ+~t2AoeL>FQB8jLxh16*}H=yueGZ^ zgSX71x>WImTzspCX9fJ#JQE#yYsUuhSx0W6+SC#1 zI%s4a!sdVzM0(XseVE12ドルQAA&(yh^vT6%0KQY+>@Yn-02{=F7Z-{1~x2Go|k@D>Uc zz@U6&LY*W~EpEGohK3~2+`+Fb=x)LHEuh&5CLjJbwd8<((k^khicve_cs>hjImw1c zh?glVmb`Hc)pO0QREa&1SKLa2rf)U^32}_B)P-`t6c$Yo=7j5TQ&AJP!`FM?s6i8{ zwdII`6ZG(#w^G@Jcm$N_?CmMbv30%zFhdjpGixOXK!WN4WS^ULO;vPz$Zb@f4S%8K z9Z(7~z&GDUZ4uZLnHqL~l)9Y(rmmXAcoiB&9`vmbH*7Qdw>QU>uxztVu|H2Oq?-9+jQ|nY`p2Hws!(`3qUrYYwZm}+?7|f)xG2s}5jK2L zi&xm7ywDI&c)s#>8l9u5OY-v_x6?pzOL5F3EHeQFxOlKD)$HPXMW}B<4;|e@b6)1# z`xj9qQoCe6T=oE7DyNi*PZ|1JWRP0s&k@CrC&QK!B zaWjxCEh@-Jp@eW!%azR%0Z^o^8{A3c0ij<-rl-fldw7#c2ffj@tx(2@l zE-VsYTo6WCFHzZ#@4|Xv4|=%mF5^zUSY<3d4_3l!sb@q8r^hytm!ep(lufxkyln+& z?IG0_We0pEs#u7L`L(4qvm%8U@leYNrd@YC`fe&4d%m_Jy&fG99aY(ceTI1ZY4K5wgmn!k1rRXEEqW4Y$Lv}R?5pQ-(Ev3F9Yo1p; zbs3eUKD&EaTq@iwrw6Ivx0lg%q7oj_bt^X}5Sj2j8kFiZ@A)2$NqvUWWGi=l4|Rr3 z+_oIcKAZWf<+rm&yyd@_(^)hfbdfbatvsl;&-14%=}k2g>3!IYxtaIeM;~S;THq3| z-`!6S_VYeTi$q?qz!EX`xXd?d`i3^kwZ#1KeJHN~+bWuwGR>Bf2k4At{d`N|YPvex k`uXZ58wfuU{AA)M3qRTT>4l#tetP34XUmceeGcC9zYO^^3;+NC diff --git a/examples/example_effects/Superpowered.js b/examples/example_effects/Superpowered.js index 79e9341..3f59111 100644 --- a/examples/example_effects/Superpowered.js +++ b/examples/example_effects/Superpowered.js @@ -3,7 +3,7 @@ class SuperpoweredGlue { - static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.7/dist/superpowered-npm.wasm" + static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.8/dist/superpowered-npm.wasm" niceSize(bytes) { if (bytes == 0) return '0 byte'; else if (bytes == 1) return '1 byte'; diff --git a/examples/example_guitardistortion/Superpowered.js b/examples/example_guitardistortion/Superpowered.js index 79e9341..3f59111 100644 --- a/examples/example_guitardistortion/Superpowered.js +++ b/examples/example_guitardistortion/Superpowered.js @@ -3,7 +3,7 @@ class SuperpoweredGlue { - static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.7/dist/superpowered-npm.wasm" + static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.8/dist/superpowered-npm.wasm" niceSize(bytes) { if (bytes == 0) return '0 byte'; else if (bytes == 1) return '1 byte'; diff --git a/examples/example_pitchbend/Superpowered.js b/examples/example_pitchbend/Superpowered.js new file mode 100644 index 0000000..3f59111 --- /dev/null +++ b/examples/example_pitchbend/Superpowered.js @@ -0,0 +1,869 @@ +/* eslint-disable */ +// @ts-nocheck + +class SuperpoweredGlue { + + static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.8/dist/superpowered-npm.wasm" + + niceSize(bytes) { + if (bytes == 0) return '0 byte'; else if (bytes == 1) return '1 byte'; + const postfix = [ ' bytes', ' kb', ' mb', ' gb', ' tb' ], n = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); + return Math.round(bytes / Math.pow(1024, n), 2) + postfix[n]; + } + + createFloatArray(length) { + return this.createViewFromType(9, this.malloc(length * 4), length); + } + + static async Instantiate(licenseKey, wasmUrl = SuperpoweredGlue.wasmCDNUrl) { + SuperpoweredGlue.wasmCDNUrl = wasmUrl; + const obj = new SuperpoweredGlue(); + await fetch(wasmUrl).then(response => response.arrayBuffer() ).then(bytes => obj.loadFromArrayBuffer(bytes) ); + obj.Initialize(licenseKey); + return obj; + } + + constructor() { + this.id = Math.floor(Math.random() * Date.now()); + this.linearMemory = null; + this.__lastObject__ = null; + this.__classUnderConstruction__ = null; + this.__functions__ = {}; + this.__classes__ = {}; + this.__exportsToWasm__ = {}; + this.__views__ = new Set(); + this.trackLoaderReceivers = []; + + const glue = this; + this.Uint8Buffer = class { constructor(length) { return glue.createViewFromType(1, glue.malloc(length), length); } } + this.Int8Buffer = class { constructor(length) { return glue.createViewFromType(2, glue.malloc(length), length); } } + this.Uint16Buffer = class { constructor(length) { return glue.createViewFromType(3, glue.malloc(length * 2), length); } } + this.Int16Buffer = class { constructor(length) { return glue.createViewFromType(4, glue.malloc(length * 2), length); } } + this.Uint32Buffer = class { constructor(length) { return glue.createViewFromType(5, glue.malloc(length * 4), length); } } + this.Int32Buffer = class { constructor(length) { return glue.createViewFromType(6, glue.malloc(length * 4), length); } } + this.BigUint64Buffer = class { constructor(length) { return glue.createViewFromType(7, glue.malloc(length * 8), length); } } + this.BigInt64Buffer = class { constructor(length) { return glue.createViewFromType(8, glue.malloc(length * 8), length); } } + this.Float32Buffer = class { constructor(length) { return glue.createViewFromType(9, glue.malloc(length * 4), length); } } + this.Float64Buffer = class { constructor(length) { return glue.createViewFromType(10, glue.malloc(length * 8), length); } } + + this.__exportsToWasm__.consolelog = this.consolelog.bind(this); + this.__exportsToWasm__.emscripten_notify_memory_growth = this.onMemoryGrowth.bind(this); + + this.__exportsToWasm__.__createClass__ = this.createClass.bind(this); + this.__exportsToWasm__.__createStaticProperty__ = this.createStaticProperty.bind(this); + this.__exportsToWasm__.__createStaticMethod__ = this.createStaticMethod.bind(this); + this.__exportsToWasm__.__createConstructor__ = this.createConstructor.bind(this); + this.__exportsToWasm__.__createDestructor__ = this.createDestructor.bind(this); + this.__exportsToWasm__.__createProperty__ = this.createProperty.bind(this); + this.__exportsToWasm__.__createMethod__ = this.createMethod.bind(this); + this.__exportsToWasm__.__createFunction__ = this.createFunction.bind(this); + this.__exportsToWasm__.__createClassConstant__ = this.createClassConstant.bind(this); + this.__exportsToWasm__.__createConstant__ = this.createConstant.bind(this); + this.__exportsToWasm__.__runjs__ = function(pointer) { + return eval(this.toString(pointer)); + }.bind(this); + + this.__exportsToWasm__.abs = function(value) { return Math.abs(value); } + this.__exportsToWasm__.round = function(value) { return Math.round(value); } + this.__exportsToWasm__.roundf = function(value) { return Math.fround(value); } + + this.wasi = { + proc_exit: function() { console.log('abort'); }, + }; + } + + updateBuffer(buffer, arraybuffer) { + buffer.__arraybuffer__ = arraybuffer; + switch (buffer.__type__) { + case 1: buffer.array = new Uint8Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) : buffer.length); break; + case 2: buffer.array = new Int8Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) : buffer.length); break; + case 3: buffer.array = new Uint16Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 2 : buffer.length); break; + case 4: buffer.array = new Int16Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 2 : buffer.length); break; + case 5: buffer.array = new Uint32Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 4 : buffer.length); break; + case 6: buffer.array = new Int32Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 4 : buffer.length); break; + case 7: buffer.array = new BigUint64Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 8 : buffer.length); break; + case 8: buffer.array = new BigInt64Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 8 : buffer.length); break; + case 9: buffer.array = new Float32Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 4 : buffer.length); break; + case 10: buffer.array = new Float64Array(buffer.__arraybuffer__, buffer.pointer, (buffer.length < 0) ? (buffer.__arraybuffer__.byteLength - buffer.pointer) / 8 : buffer.length); break; + } + } + + createViewFromType(type, pointer, length) { + const buffer = { + pointer: pointer, + length: length, + __arraybuffer__: this.linearMemory, + __type__: type, + __glue__: this, + free() { + this.__glue__.free(this.pointer); + Object.getOwnPropertyNames(this).forEach((property) => delete this[property] ); + Object.setPrototypeOf(this, null); + } + }; + this.updateBuffer(buffer, this.linearMemory); + this.__views__.add(buffer); + return buffer; + } + + returnPointerToView(r, type) { + if ((type> 0) && (typeof r !== 'undefined')) { + const length = this.__functions__.__lastarraylength__(); + r = this.createViewFromType(type, r, length> 0 ? length : -1); + } + return r; + } + + invokeMethod() { + if ((arguments.length == 2) && (typeof arguments[1] == 'object')) { + const obj = arguments[1]; let n = 1; + for (const m in obj) arguments[n++] = obj[m]; + arguments.length = n; + } + const strings = []; + for (let index = arguments.length - 1; index> 0; index--) { + if (arguments[index].array != undefined) arguments[index] = arguments[index].array.byteOffset; + else if (arguments[index].__pointer__ != undefined) arguments[index] = arguments[index].__pointer__; + else if (typeof arguments[index] == 'string') { + arguments[index] = this.__glue__.toWASMString(arguments[index]); + strings.push(arguments[index]); + } + } + const info = arguments[0]; + arguments[0] = this.__pointer__; + let r = info.function.apply(this, arguments); + for (const string of strings) this.__glue__.free(string); + r = this.__glue__.returnPointerToView(r, info.returnPointerType); + return r; + } + + invokeFunction() { + if ((arguments.length == 1) && (typeof arguments[0] == 'object')) { + const obj = arguments[0]; let n = 0; + for (const m in obj) arguments[n++] = obj[m]; + arguments.length = n; + } + const strings = []; + for (let index = arguments.length - 1; index>= 0; index--) { + if (arguments[index].array != undefined) arguments[index] = arguments[index].array.byteOffset; + else if (arguments[index].__pointer__ != undefined) arguments[index] = arguments[index].__pointer__; + else if (typeof arguments[index] == 'string') { + arguments[index] = this.glue.toWASMString(arguments[index]); + strings.push(arguments[index]); + } + } + let r = this.apply(this, arguments); + for (const string of strings) this.glue.free(string); + r = this.glue.returnPointerToView(r, this.returnPointerType); + return r; + } + + invokeExportedFunction() { + let r = this.apply(this, arguments); + if (r.array !== undefined) r = r.array.byteOffset; + return r; + } + + createClass(classnamePointer, classnameLen, sizeofClass) { + const glue = this, classname = glue.toString(classnamePointer, classnameLen); + const WASM = class { + constructor() { + const meta = Object.getPrototypeOf(this).constructor.__meta__; + if (!meta.hasConstructor) throw meta.name + ' has no constructor'; + + this.__class__ = meta.name; + this.__prev__ = glue.__lastObject__; + if (glue.__lastObject__ != null) glue.__lastObject__.__next__ = this; + this.__next__ = null; + this.__glue__ = glue; + glue.__lastObject__ = this; + + const args = [].slice.call(arguments); + args.unshift(glue.malloc(meta.size)); + this.__pointer__ = glue[meta.name + '::' + meta.name].apply(null, args); + + for (const property of meta.properties) glue.createPropertyFromDescriptor(this, property); + for (const method of meta.methods) this[method.name] = glue.invokeMethod.bind(this, { function: glue[method.wasmFunction], returnPointerType: method.returnPointerType }); + } + destruct() { + const meta = Object.getPrototypeOf(this).constructor.__meta__; + if (meta.hasDestructor) glue[meta.name + '::~' + meta.name](this.__pointer__); + glue.free(this.__pointer__); + if (this.__prev__ != null) this.__prev__.__next__ = this.__next__; + if (this.__next__ != null) this.__next__.__prev__ = this.__prev__; + Object.getOwnPropertyNames(this).forEach((property) => delete this[property] ); + Object.setPrototypeOf(this, null); + } + } + glue.__classUnderConstruction__ = glue.__classes__[classname] = glue[classname] = WASM; + glue.__classUnderConstruction__.__meta__ = { + name: classname, + size: sizeofClass, + hasConstructor: false, + hasDestructor: false, + properties: [], + methods: [], + staticProperties: [] + } + delete glue.__functionsWithNamespace__[classname]; + } + + createConstructor() { + this.__classUnderConstruction__.__meta__.hasConstructor = true; + } + + createDestructor() { + this.__classUnderConstruction__.__meta__.hasDestructor = this.__classUnderConstruction__.__meta__.hasConstructor; + } + + createClassConstant(nameptr, namelen, value) { + this.__classUnderConstruction__[this.toString(nameptr, namelen)] = value; + } + + createConstant(nameptr, namelen, value) { + this[this.toString(nameptr, namelen)] = value; + } + + createPropertyFromDescriptor(object, descriptor) { + const buffer = this.createViewFromType(descriptor.viewType, object.__pointer__ + descriptor.offset, descriptor.viewLength); + if (descriptor.viewLength> 1) Object.defineProperty(object, descriptor.name, { + get: function() { return buffer.array; }, + set: function(value) { buffer.array[index] = value; }, + configurable: true, + enumerable: true + }); else Object.defineProperty(object, descriptor.name, { + get: function() { return buffer.array[0]; }, + set: function(value) { buffer.array[0] = value; }, + configurable: true, + enumerable: true + }); + } + + createProperty(propertynamePointer, propertynameLen, offset, viewType, viewLength) { + this.__classUnderConstruction__.__meta__.properties.push({ + name: this.toString(propertynamePointer, propertynameLen), + offset: offset, + viewType: viewType, + viewLength: viewLength + }); + } + + createStaticPropertyFromDescriptor(wasmClass, descriptor) { + const buffer = this.createViewFromType(descriptor.viewType, descriptor.pointer, descriptor.viewLength); + if (descriptor.viewLength> 1) Object.defineProperty(wasmClass, descriptor.name, { + get: function() { return buffer.array; }, + set: function(value) { buffer.array[index] = value; }, + configurable: true, + enumerable: true + }); else Object.defineProperty(wasmClass, descriptor.name, { + get: function() { return buffer.array[0]; }, + set: function(value) { buffer.array[0] = value; }, + configurable: true, + enumerable: true + }); + } + + createStaticProperty(propertynamePointer, propertynameLen, pointer, viewType, viewLength) { + const descriptor = { + name: this.toString(propertynamePointer, propertynameLen), + pointer: pointer, + viewType: viewType, + viewLength: viewLength + }; + this.__classUnderConstruction__.__meta__.staticProperties.push(descriptor); + this.createStaticPropertyFromDescriptor(this.__classUnderConstruction__, descriptor); + } + + createMethod(methodnamePointer, methodnameLen, returnPointerType) { + const methodname = this.toString(methodnamePointer, methodnameLen); + this.__classUnderConstruction__.__meta__.methods.push({ + name: methodname, + wasmFunction: this.__classUnderConstruction__.__meta__.name + '::' + methodname, + returnPointerType: returnPointerType + }); + } + + createStaticMethod(methodnamePointer, methodnameLen, returnPointerType) { + const methodname = this.toString(methodnamePointer, methodnameLen), wasmMethodname = this.__classUnderConstruction__.__meta__.name + '::' + methodname; + this[wasmMethodname].returnPointerType = returnPointerType; + this[wasmMethodname].glue = this; + this.__classUnderConstruction__[methodname] = this.invokeFunction.bind(this[wasmMethodname]); + } + + createFunction(methodnamePointer, methodnameLen, returnPointerType) { + const methodname = this.toString(methodnamePointer, methodnameLen); + if (!this[methodname]) { // maybe this function is in a namespace + for (const namespace in this.__functionsWithNamespace__) { + if (this.__functionsWithNamespace__[namespace][methodname]) { + this[methodname] = this.__functionsWithNamespace__[namespace][methodname]; + delete this.__functionsWithNamespace__[namespace][methodname]; + break; + } + } + if (!this[methodname]) return; + } + this[methodname].returnPointerType = returnPointerType; + this[methodname].glue = this; + this[methodname] = this.invokeFunction.bind(this[methodname]); + } + + exportToWasm(functionName, f) { + this.__exportsToWasm__[functionName] = this.invokeExportedFunction.bind(f); + } + + onMemoryGrowth(n) { + this.linearMemory = this.wasmInstance.exports.memory.buffer; + if (this.__memorygrowview__.buffer.byteLength < 1) this.updateMemoryViews(); + this.logMemory(); + } + + consolelog(pointer, strlen) { + console.log(this.toString(pointer, strlen)); + } + + setInstance(wasmInstance) { + this.wasmInstance = wasmInstance; + this.wasmInstance.exports._initialize(); + + this.__functions__ = this.wasmInstance.exports; + this.linearMemory = this.wasmInstance.exports.memory.buffer; + this.__memorygrowpointer__ = this.__functions__.__malloc__(16); + this.__memorygrowview__ = new Uint8Array(this.linearMemory, this.__memorygrowpointer__, 16); + this.__functionsWithNamespace__ = {}; + + const outputBuffer = this.__functions__.__malloc__(1024), stringview = new Uint8Array(this.linearMemory, this.__functions__.__malloc__(1024), 1024); + for (const f in this.__functions__) if (f != '__demangle__') { + const length = this.__functions__.__demangle__(this.toWASMString(f, stringview), outputBuffer); + if (length> 0) { + let name = this.toString(outputBuffer, length); + const par = name.indexOf('('); + if (par> 0) name = name.substring(0, par); + + let namespace = name.lastIndexOf('::'); + if (namespace> 0) { + namespace = name.lastIndexOf('::', namespace - 1); + if (namespace> 0) name = name.substr(namespace + 2); + } + + // class members have namespaces removed from this point, but functions not + const split = name.split('::', 2); + if (split.length == 2) { + if (!this.__functionsWithNamespace__[split[0]]) this.__functionsWithNamespace__[split[0]] = {}; + this.__functionsWithNamespace__[split[0]][split[1]] = this.__functions__[f]; + } + + this[name] = this.__functions__[f]; + } else this[f] = this.__functions__[f]; + } + this.free(outputBuffer); + this.free(stringview.byteOffset); + + this.__functions__.__initialize__(); + delete this.__functionsWithNamespace__; + this.logMemory(); + this.__classUnderConstruction__ = null; + } + + async loadFromArrayBuffer(wasmCode, afterWASMLoaded = null) { + this.wasmCode = wasmCode; + await WebAssembly.instantiate(wasmCode, { + wasi_snapshot_preview1: this.wasi, + env: this.__exportsToWasm__, + }).then((_module) => { + this.setInstance(_module.instance); + if (afterWASMLoaded != null) afterWASMLoaded.afterWASMLoaded(); + }); + } + + async loadFromModule(module) { + await WebAssembly.instantiate(module, { + wasi_snapshot_preview1: this.wasi, + env: this.__exportsToWasm__, + }).then((instance) => { + this.setInstance(instance); + }); + } + + async loadFromURL(url, storeCode = true) { + if (WebAssembly.instantiateStreaming) { + await WebAssembly.instantiateStreaming(fetch(url), { + wasi_snapshot_preview1: this.wasi, + env: this.__exportsToWasm__, + }).then((_module) => { + this.setInstance(_module.instance); + }); + if (storeCode) { + const wasmResponse = await fetch(url); + this.wasmCode = await wasmResponse.arrayBuffer(); + } + } + else { + const response = await fetch(url); + const wasmCode = await response.arrayBuffer(); + if (storeCode) { + this.wasmCode = wasmCode; + } + await WebAssembly.instantiate(wasmCode, { + wasi_snapshot_preview1: this.wasi, + env: this.__exportsToWasm__, + }).then((_module) => { + this.setInstance(_module.instance); + }); + } + } + + toString(pointer, strlen = 0) { + let view = null; + if (strlen < 1) { + const viewLength = Math.min(16384, this.linearMemory.byteLength - pointer); + view = new Uint8Array(this.linearMemory, pointer, viewLength); + for (strlen = 0; strlen < viewLength; strlen++) if (view[strlen] == 0) break; + } else view = new Uint8Array(this.linearMemory, pointer, strlen); + + let str = '', i = 0, bytesNeeded, codePoint; + while (i < strlen) { + const octet = view[i]; + bytesNeeded = codePoint = 0; + + if (octet <= 0x7f) { + bytesNeeded = 0; + codePoint = octet & 0xff; + } else if (octet <= 0xdf) { + bytesNeeded = 1; + codePoint = octet & 0x1f; + } else if (octet <= 0xef) { + bytesNeeded = 2; + codePoint = octet & 0x0f; + } else if (octet <= 0xf4) { + bytesNeeded = 3; + codePoint = octet & 0x07; + } + + if (strlen - i - bytesNeeded> 0) { + for (let k = 0; k < bytesNeeded; k++) codePoint = (codePoint << 6) | (view[i + k + 1] & 0x3f); + } else { + codePoint = 0xfffd; + bytesNeeded = strlen - i; + } + + str += String.fromCodePoint(codePoint); + i += bytesNeeded + 1; + } + return str; + } + + toWASMString(str, view = null) { + const length = str.length, maxBytes = length * 4 + 1; + let i = 0, c, bits, destination = 0; + if (view == null) { + const pointer = this.malloc(maxBytes); + view = new Uint8Array(this.linearMemory, pointer, maxBytes); + } + while (i < length) { + const codePoint = str.codePointAt(i); + c = bits = 0; + + if (codePoint <= 0x0000007f) { + c = 0; + bits = 0x00; + } else if (codePoint <= 0x000007ff) { + c = 6; + bits = 0xc0; + } else if (codePoint <= 0x0000ffff) { + c = 12; + bits = 0xe0; + } else if (codePoint <= 0x001fffff) { + c = 18; + bits = 0xf0; + } + + view[destination++] = bits | (codePoint>> c); + c -= 6; + while (c>= 0) { + view[destination++] = 0x80 | ((codePoint>> c) & 0x3f); + c -= 6; + } + i += (codePoint>= 0x10000) ? 2 : 1; + } + + view[destination] = 0; + return view.byteOffset; + } + + logMemory() { + console.log('WASM memory ' + this.id + ': ' + this.niceSize(this.__functions__.__stacksize__()) + ' stack, ' + this.niceSize(this.linearMemory.byteLength - this.__functions__.__heapbase__()) + ' heap, ' + this.niceSize(this.linearMemory.byteLength) + ' total.'); + } + + malloc(bytes) { + const pointer = this.__functions__.__malloc__(bytes); + if (this.__memorygrowview__.buffer.byteLength < 1) this.updateMemoryViews(); + return pointer; + } + + updateMemoryViews() { + for (const buffer of this.__views__) this.updateBuffer(buffer, this.linearMemory); + this.__memorygrowview__ = new Uint8Array(this.linearMemory, this.__memorygrowpointer__, 16); + } + + free(pointer) { + this.__functions__.__free__(pointer); + } + + setInt64(pointer, index, value) { + this.__functions__.__setint64__(pointer, index, value); + } + + bufferToWASM(buffer, input, index) { + let inBufferL = null, inBufferR = null; + if (index === undefined) index = 0; + if (typeof input.getChannelData === 'function') { + inBufferL = input.getChannelData(0); + inBufferR = input.getChannelData(1); + } else { + inBufferL = input[index][0]; + inBufferR = input[index][1]; + } + const arr = (buffer.constructor === Array) ? buffer[index].array : buffer.array, to = arr.length; + for (let n = 0, i = 0; n < to; n++, i++) { + arr[n++] = inBufferL[i]; + arr[n] = inBufferR[i]; + } + } + + bufferToJS(buffer, output, index) { + let outBufferL = null, outBufferR = null; + if (index === undefined) index = 0; + if (typeof output.getChannelData === 'function') { + outBufferL = output.getChannelData(0); + outBufferR = output.getChannelData(1); + } else { + outBufferL = output[index][0]; + outBufferR = output[index][1]; + } + const arr = (buffer.constructor === Array) ? buffer[index].array : buffer.array, to = arr.length; + for (let n = 0, i = 0; n < to; n++, i++) { + outBufferL[i] = arr[n++]; + outBufferR[i] = arr[n]; + } + } + + arrayBufferToWASM(arrayBuffer, offset = 0) { + const pointer = this.malloc(arrayBuffer.byteLength + offset); + new Uint8Array(this.linearMemory).set(new Uint8Array(arrayBuffer, 0, arrayBuffer.byteLength), pointer + offset); + return pointer; + } + + copyWASMToArrayBuffer(pointer, lengthBytes) { + const arrayBuffer = new ArrayBuffer(lengthBytes); + new Uint8Array(arrayBuffer, 0, lengthBytes).set(new Uint8Array(this.linearMemory, pointer, lengthBytes)); + return arrayBuffer; + } + + moveWASMToArrayBuffer(pointer, lengthBytes) { + const arrayBuffer = this.copyWASMToArrayBuffer(pointer, lengthBytes); + this.free(pointer); + return arrayBuffer; + } + + static async loaderWorkerMain(url) { + SuperpoweredGlue.__uint_max__sp__ = 255; + const Superpowered = await SuperpoweredGlue.Instantiate(''); + + await fetch(url).then(response => + response.arrayBuffer() + ).then(audiofileArrayBuffer => { + // Copy the ArrayBuffer to WebAssembly Linear Memory. + const audiofileInWASMHeap = Superpowered.arrayBufferToWASM(audiofileArrayBuffer); + + // Decode the entire file into the Audio In Memory format. + const audioInMemoryFormat = Superpowered.Decoder.decodeToAudioInMemory(audiofileInWASMHeap, audiofileArrayBuffer.byteLength); + + // Copy from the WebAssembly heap into a regular ArrayBuffer that can be transfered. + // Size calculation: 48 bytes (main table is six 64-bit numbers), plus number of audio frames (.getSize) multiplied by four (16-bit stereo is 4 bytes). + const arrayBuffer = Superpowered.moveWASMToArrayBuffer(audioInMemoryFormat, 48 + Superpowered.AudioInMemory.getSize(audioInMemoryFormat) * 4); + + // Transfer the ArrayBuffer. + if (typeof self.transfer !== 'undefined') self.transfer(url, arrayBuffer); + else postMessage({ '__transfer__': arrayBuffer, }, [ arrayBuffer ]); + }); + } + + static loaderWorkerOnmessage(message) { + if (typeof message.data.load === 'string') SuperpoweredGlue.loaderWorkerMain(message.data.load); + } + + registerTrackLoader(receiver) { + if (typeof receiver.terminate !== 'undefined') receiver.addEventListener('message', this.handleTrackLoaderMessage); // Worker + return this.trackLoaderReceivers.push((typeof receiver.port !== 'undefined') ? receiver.port : receiver) - 1; + } + + handleTrackLoaderMessage(message) { + if (typeof message.data.SuperpoweredLoad !== 'string') return false; + this.loadTrackInWorker(message.data.SuperpoweredLoad, message.data.trackLoaderID); + return true; + } + + async loadTrackInWorker(url, trackLoaderID) { + let source = SuperpoweredGlue.toString(); + + const trackLoaderWorker = new Worker(URL.createObjectURL(new Blob([ source + "\r\n\r\nonmessage = SuperpoweredGlue.loaderWorkerOnmessage;" + `\r\n\r\nSuperpoweredGlue.wasmCDNUrl = "${SuperpoweredGlue.wasmCDNUrl}";` ], { type: 'application/javascript' }))); + trackLoaderWorker.__url__ = url; + trackLoaderWorker.trackLoaderID = trackLoaderID; + + trackLoaderWorker.ontransfer = function(message) { + this.transferLoadedTrack(message.transfer, trackLoaderWorker); + }.bind(this); + + trackLoaderWorker.onmessage = function(message) { + this.transferLoadedTrack(message.data.__transfer__, trackLoaderWorker); + }.bind(this); + + if ((typeof window !== 'undefined') && (typeof window.location !== 'undefined') && (typeof window.location.origin !== 'undefined')) url = new URL(url, window.location.origin).toString(); + trackLoaderWorker.postMessage({ load: url }); + } + + transferLoadedTrack(arrayBuffer, trackLoaderWorker) { + const receiver = this.trackLoaderReceivers[trackLoaderWorker.trackLoaderID]; + if (receiver == null) return; + if (typeof receiver.postMessage === 'function') receiver.postMessage({ SuperpoweredLoaded: { buffer: arrayBuffer, url: trackLoaderWorker.__url__ }}, [ arrayBuffer ]); + else receiver({ SuperpoweredLoaded: { buffer: arrayBuffer, url: trackLoaderWorker.__url__ }}); + trackLoaderWorker.terminate(); + } + + downloadAndDecode(url, obj) { + if (obj.trackLoaderID === undefined) return; + if ((typeof obj.onMessageFromMainScope === 'function') && (typeof obj.sendMessageToMainScope === 'function')) obj.sendMessageToMainScope({ SuperpoweredLoad: url, trackLoaderID: obj.trackLoaderID }); + else this.loadTrackInWorker(url, obj.trackLoaderID); + } +} + +class SuperpoweredWebAudio { + static AudioWorkletHasBrokenModuleImplementation = false; + + constructor(minimumSamplerate, superpowered) { + //SuperpoweredWebAudio.AudioWorkletHasBrokenModuleImplementation = (navigator.userAgent.indexOf('AppleWebKit')> -1) || (navigator.userAgent.indexOf('Firefox')> -1); + //SuperpoweredWebAudio.AudioWorkletHasBrokenModuleImplementation = (navigator.userAgent.indexOf('Firefox')> -1); + //if (SuperpoweredWebAudio.AudioWorkletHasBrokenModuleImplementation && (navigator.userAgent.indexOf('Chrome')> -1)) SuperpoweredWebAudio.AudioWorkletHasBrokenModuleImplementation = false; + this.Superpowered = superpowered; + this.audioContext = null; + const AudioContext = window.AudioContext || window.webkitAudioContext || false; + let c = new AudioContext(); + if (c.sampleRate < minimumSamplerate) { + c.close(); + c = new AudioContext({ sampleRate: minimumSamplerate }); + } + this.audioContext = c; + } + + getUserMediaForAudio(constraints, onPermissionGranted, onPermissionDenied) { + let finalConstraints = {}; + + if (navigator.mediaDevices) { + const supportedConstraints = navigator.mediaDevices.getSupportedConstraints(); + for (const constraint in supportedConstraints) if (supportedConstraints.hasOwnProperty(constraint) && (constraints[constraint] !== undefined)) finalConstraints[constraint] = constraints[constraint]; + } + + finalConstraints.audio = true; + finalConstraints.video = false; + + navigator.fastAndTransparentAudio = constraints.hasOwnProperty('fastAndTransparentAudio') && (constraints.fastAndTransparentAudio === true); + if (navigator.fastAndTransparentAudio) { + finalConstraints.echoCancellation = false; + finalConstraints.disableLocalEcho = false; + finalConstraints.autoGainControl = false; + finalConstraints.audio = { mandatory: { googAutoGainControl: false, googAutoGainControl2: false, googEchoCancellation: false, googNoiseSuppression: false, googHighpassFilter: false, googEchoCancellation2: false, googNoiseSuppression2: false, googDAEchoCancellation: false, googNoiseReduction: false } }; + }; + + navigator.getUserMediaMethod = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mediaDevices.mozGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; + if (navigator.getUserMediaMethod) navigator.getUserMediaMethod(finalConstraints, onPermissionGranted, onPermissionDenied); + else { + let userMedia = null; + try { + userMedia = navigator.mediaDevices.getUserMedia; + } catch(error) { + if ((location.protocol.toLowerCase() != 'https') && (location.hostname.toLowerCase() != 'localhost')) onPermissionDenied("Web Audio requires a secure context (HTTPS or localhost)."); + else onPermissionDenied(error); + userMedia = null; + } + + if (userMedia != null) { + if (userMedia) navigator.mediaDevices.getUserMedia(finalConstraints).then(onPermissionGranted).catch(onPermissionDenied); + else onPermissionDenied("Can't access getUserMedia."); + } + } + } + + async getUserMediaForAudioAsync(constraints) { + return new Promise((resolve, reject) => { + this.getUserMediaForAudio(constraints, function(stream) { + if (navigator.fastAndTransparentAudio) { + const audioTracks = stream.getAudioTracks(); + for (const audioTrack of audioTracks) audioTrack.applyConstraints({ autoGainControl: false, echoCancellation: false, noiseSuppression: false }); + } + resolve(stream); + }, reject); + }); + } + + async createAudioNodeAsync(url, className, onMessageFromAudioScope, numInputs, numOutputs) { + if (numInputs === undefined) numInputs = 1; + if (numOutputs === undefined) numOutputs = 1; + return new Promise((resolve, reject) => this.createAudioNode(url, className, resolve, onMessageFromAudioScope, numInputs, numOutputs) ); + } + + createAudioNode(url, className, callback, onMessageFromAudioScope, numInputs, numOutputs) { + if (!SuperpoweredWebAudio.AudioWorkletHasBrokenModuleImplementation && (typeof AudioWorkletNode === 'function')) { + if (numInputs === undefined) numInputs = 1; + if (numOutputs === undefined) numOutputs = 1; + + this.audioContext.audioWorklet.addModule(url).then(() => { + const node = new AudioWorkletNode(this.audioContext, className, { + processorOptions: { + wasmCode: this.Superpowered.wasmCode, + samplerate: this.audioContext.sampleRate, + maxChannels: this.Superpowered.__maxChannels__, + numberOfInputs: numInputs, + numberOfOutputs: numOutputs, + trackLoaderID: this.Superpowered.trackLoaderReceivers.length + }, + numberOfInputs: numInputs, + numberOfOutputs: numOutputs, + outputChannelCount: Array(numOutputs).fill(2) + }); + node.superpoweredWASMUrl = SuperpoweredGlue.wasmCDNUrl; + node.trackLoaderID = this.Superpowered.registerTrackLoader(node); + node.Superpowered = this.Superpowered; + node.onReadyCallback = callback; + node.onMessageFromAudioScope = onMessageFromAudioScope; + node.destruct = function() { + node.Superpowered.trackLoaderReceivers[node.trackLoaderID] = null; + node.port.postMessage('___superpowered___destruct___'); + } + node.sendMessageToAudioScope = function(message, transfer = []) { node.port.postMessage(message, transfer); } + node.port.onmessage = function(event) { + if (node.Superpowered.handleTrackLoaderMessage(event)) return; + if (event.data == '___superpowered___onready___') { + node.state = 1; + node.onReadyCallback(node); + } else node.onMessageFromAudioScope(event.data); + }.bind(node); + }); + } else { + import(/* webpackIgnore: true */ /* viteIgnore: true */ url).then((processorModule) => { + const node = this.audioContext.createScriptProcessor(1024, 2, 2); + node.trackLoaderID = this.Superpowered.registerTrackLoader(node); + node.samplerate = this.audioContext.sampleRate; + node.inputBuffer = this.Superpowered.createFloatArray(1024 * 2); + node.outputBuffer = this.Superpowered.createFloatArray(1024 * 2); + node.processor = new processorModule.default(this.Superpowered, onMessageFromAudioScope, node.samplerate); + node.sendMessageToAudioScope = function(message, transfer = 0) { node.processor.onMessageFromMainScope(message); } + node.destruct = function() { + node.processor.Superpowered.trackLoaderReceivers[node.trackLoaderID] = null; + node.processor.state = -1; + node.processor.onDestruct(); + } + node.onaudioprocess = function(e) { + node.processor.Superpowered.bufferToWASM(node.inputBuffer, e.inputBuffer); + if (node.processor.state> 0) node.processor.processAudio(node.inputBuffer, node.outputBuffer, node.inputBuffer.array.length / 2); + node.processor.Superpowered.bufferToJS(node.outputBuffer, e.outputBuffer); + }; + node.processor.state = 1; + callback(node); + }); + } + } +} + +if (!SuperpoweredWebAudio.AudioWorkletHasBrokenModuleImplementation && (typeof AudioWorkletProcessor === 'function')) { + class SuperpoweredAudioWorkletProcessor extends AudioWorkletProcessor { + constructor(options) { + super(); + SuperpoweredGlue.__uint_max__sp__ = options.processorOptions.maxChannels; + this.trackLoaderID = options.processorOptions.trackLoaderID; + this.state = 0; + this.port.onmessage = (event) => { + if (event.data == '___superpowered___destruct___') { + this.state = -1; + this.onDestruct(); + } else this.onMessageFromMainScope(event.data); + }; + this.samplerate = options.processorOptions.samplerate; + this.Superpowered = new SuperpoweredGlue(); + this.Superpowered.loadFromArrayBuffer(options.processorOptions.wasmCode, this); + this.numberOfInputs = options.processorOptions.numberOfInputs; + this.numberOfOutputs = options.processorOptions.numberOfOutputs; + } + afterWASMLoaded() { + // Add the user's WASM URL to the SuperpoweredGlue class + if (this.superpoweredWASMUrl) { + SuperpoweredGlue.wasmCDNUrl = this.superpoweredWASMUrl; + } + + this.Superpowered.Initialize(); + + this.inputBuffers = []; + for (let n = this.numberOfInputs; n> 0; n--) this.inputBuffers.push(this.Superpowered.createFloatArray(128 * 2)); + + this.outputBuffers = []; + for (let n = this.numberOfOutputs; n> 0; n--) this.outputBuffers.push(this.Superpowered.createFloatArray(128 * 2)); + + this.onReady(); + this.port.postMessage('___superpowered___onready___'); + this.state = 1; + } + onReady() {} + onDestruct() {} + onMessageFromMainScope(message) {} + sendMessageToMainScope(message) { this.port.postMessage(message); } + processAudio(buffer, parameters) {} + process(inputs, outputs, parameters) { + if (this.state < 0) return false; + if (this.state == 1) { + for (let n = this.numberOfInputs - 1; n>= 0; n--) { + if (inputs[n].length> 1) this.Superpowered.bufferToWASM(this.inputBuffers, inputs, n); + else this.Superpowered.memorySet(this.inputBuffers[n].pointer, 0, 128 * 8); + } + this.processAudio( + (this.numberOfInputs == 1) ? this.inputBuffers[0] : this.inputBuffers, + (this.numberOfOutputs == 1) ? this.outputBuffers[0] : this.outputBuffers, + 128, + parameters + ); + for (let n = this.numberOfOutputs - 1; n>= 0; n--) { + if (outputs[n].length> 1) this.Superpowered.bufferToJS(this.outputBuffers, outputs, n); + } + } + return true; + } + } + SuperpoweredWebAudio.AudioWorkletProcessor = SuperpoweredAudioWorkletProcessor; +} else { + class SuperpoweredAudioWorkletProcessor { + constructor(sp, oma, sr) { + this.Superpowered = sp; + this.samplerate = sr; + this.onMessageFromAudioScope = oma; + this.state = 0; + this.onReady(); + } + onMessageFromAudioScope = null; + onReady() {} + onDestruct() {} + onMessageFromMainScope(message) {} + sendMessageToMainScope(message) { if (!this.Superpowered.handleTrackLoaderMessage({ data: message })) this.onMessageFromAudioScope(message); } + postMessage(message, transfer = []) { this.onMessageFromMainScope(message); } + processAudio(buffer, parameters) {} + } + SuperpoweredWebAudio.AudioWorkletProcessor = SuperpoweredAudioWorkletProcessor; +} + +if (typeof exports === "object" && typeof module === "object") + module.exports = { SuperpoweredGlue, SuperpoweredWebAudio }; +else if (typeof exports === "object") { + exports["SuperpoweredGlue"] = SuperpoweredGlue; + exports["SuperpoweredWebAudio"] = SuperpoweredWebAudio; +} +if (typeof globalThis !== "undefined") { + globalThis.SuperpoweredGlue = SuperpoweredGlue; + globalThis.SuperpoweredWebAudio = SuperpoweredWebAudio; +} diff --git a/examples/example_timestretching/Superpowered.js b/examples/example_timestretching/Superpowered.js index 79e9341..3f59111 100644 --- a/examples/example_timestretching/Superpowered.js +++ b/examples/example_timestretching/Superpowered.js @@ -3,7 +3,7 @@ class SuperpoweredGlue { - static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.7/dist/superpowered-npm.wasm" + static wasmCDNUrl = "https://cdn.jsdelivr.net/npm/@superpoweredsdk/web@2.6.8/dist/superpowered-npm.wasm" niceSize(bytes) { if (bytes == 0) return '0 byte'; else if (bytes == 1) return '1 byte';

AltStyle によって変換されたページ (->オリジナル) /