#!/usr/bin/env bash # # Copyright (C) 2011-2021 Intel Corporation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # * Neither the name of Intel Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # set -e PKG_NAME="Intel SGX Driver" if test $(id -u) -ne 0; then echo "Root privilege is required to install $PKG_NAME." exit 4 fi PATH=/usr/bin:/bin umask 022 DRIVERPKG=`mktemp -t sgx-driver-pkg.XXXXXX` DRIVER_TEMP_FOLDER=`mktemp -d sgx-driver-XXXXXX -p /tmp` trap "rm -fr $DRIVERPKG $DRIVER_TEMP_FOLDER 2>/dev/null; /bin/sed -i '/^isgx$/d' /etc/modules; exit 3" HUP INT QUIT TERM EXIT # The number of lines in this script (plus 1). Using this number to # calculate the start address of the payload. NR_SCRIPT_LINES=93 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=aa45952cc832793f4bec1d957587ef92 # Get the install payload from this shell script. echo -n "Unpacking $PKG_NAME ..." tail -n +$NR_SCRIPT_LINES "$0" > $DRIVERPKG echo " done." echo -n "Verifying the integrity of the install package ..." if test $(md5sum $DRIVERPKG | awk '{print $1}') != $CHKSUM; then echo " The install package appears to be corrupted." exit 1 fi echo " done." echo "Installing $PKG_NAME ..." tar zxf $DRIVERPKG -C $DRIVER_TEMP_FOLDER >/dev/null 2>&1 retcode=$? # Save the return code # Clean-up the temporary tarball. rm -f $DRIVERPKG 2>/dev/null if test $retcode -ne 0; then echo " failed." exit 2 fi pushd $DRIVER_TEMP_FOLDER source scripts/installConfig make install popd ${SGX_PACKAGES_PATH}/${DRIVER_PKG_NAME}/scripts/install.sh rm -fr ${DRIVER_TEMP_FOLDER} trap - EXIT exit 0 ;SJ+&>&螱9˄R i%$CȽ~=#i$ԩ5cOo~o޼¿-zoޥkzzroΓ^k H%E[!cOOk/{^}:6t&1uNre~= Ahn7Y X#^sYECQ ,a3gQmN-olnx‚6`Vٜ37ap:O׿bv;.NN-f';p`,H[+.k p{1~l% @OfVCa)$$Ko8b$F@@6Í# @0n%GA}Z9 4 b@@QBC`O )e,s (|!/-)et.CpAj]v:5}'#v2u.GC|4YۀϨȴ?Άag=a?5~w  X0=TѠA /Od#v ;'>{#x`p=^{·gCcH\W7:~uʴZČv . PIe>iՇZg4eO` kL<рcCB5?aɺ1X3=v;CcG; qC~;zvnhJ=jxЉ{z g#}Яf_w6L}$dF ?"`C]h>D 8`E`$RqO? B7:lnQUωp. 7(/ Vv .ņX9P-ঌНѶNݫj;yD`nSWP?I[}$gG'u5cR1b49L rӅï^:|l-<UIjE>-)⺽y'%DŜuF~lBzf{"yjako|*m#4 db-|ŜC}|ֻ~ 7崈 B*.4  d9dxa";NO2=RMySȡDrZ3irڂm*@zX"h UMh)=sv}@ !96F`-8B8= `dx:L:*`΅7X޸,<^x #̅>:A@X d0~Oma~(w6\0EXؔ%Hyr@5MwĎak)"4`5>Ќdo/>5Ʉh=NqD[}f+xOx <7;LA QO$1@y@c T?6K0 KyY .>mNM0'qУxq\e;r;_,Iv]0/v=,E{(ty4a8yٌ`^qGҴ8lVy5sC iڰl$k,Ýoڹjy4xss,kxgE L+Ăm{PIZeg|V7)\Peg]³Il]/R8*Uͮaҧ2Nk f3.Z˔_w"q l?{5chWwjOqLZ^>6oousE;h)[g3ً0uW޾DXe1Рk<U ȶк:C ׉ر Qjew[>X栄p&"kvc*_5qPW 6:d `bjrB9XA+bxQI 'zj:]%bfy`6*`}"Uu Rp;1z5x\PBЎ/X*^M*13 5&+aU[架߅I9͔۠JLԋ9!D:*K8eӼFi 舲(>O}sD;7H<tO gaُbņACz¾AJz>$|V[ "E(w}76ţ [ 9iTnꈀvء&f>;PҎ,\[KmTUZд-{ d}֫B.Y#~["E ;@ǟ ?+A~VY g%RVgV1':(NZ"gZYPT#Z e'")Mь .LCavE,3.g&g2>7B50m['ʴ/k7ϼR-k]!? 2Bj@nL1 TWk`>^)Is7dl H{"[5$(Gͦd*&L݊kI `6KrIt/x$Jj AaD ULPV,88`m^g>]|s7LpxTI(0ƫxbrvx 2@'"܇!q$b- wFMP^ mF6G4I;|̐P5 S)8F'k0OҰle4 8<-gk>nZaEО1HixUf=gaF&i3-i?M:U{Mp%0R\Jlh|)Id&;|Fz|@I9"4DnAPI ҹd~ r- (p>3(r'EҏK 'R֔,3y=4H#B,? j<x\ 0".Kʗu\7miD{Y [+/"gE8=](8'UԂBRv8@N$v"XTQUa߮ϗ&qrnYfQV1'+.-{ qynϜb.6RN 3o*㩰S'x^'k9v[uZ/%fJ]l@->FP ;`)*Ž/B?/%(OS@9+}Lt0ݲ\]OF~ܧ~YXf#Ȳnh0|>^ 9=٘}B,enל^tJʒҪ{ ųL^R4@Rɏ=+3"01j'N?i@ a[ʲ.ʆR))-A? ( 5rdZqҤB@7j$j"Sf4 pB1^g"]^ r>*zxܡ| Ԣ-]UHF,Wٻ4h)QNvrwCڳ_ |NimiC[h@K}{iS0D1arZ|kKO|%shUoh5( #<;1Ga98O42G2㧟-NDdzXe:87n "fo{fdHЧn]fLnӯRp'ԍ'gC/TКBۥEӨ| )}:( 5 mVCCrA 72xD5/9JS(#W }6U&=5o@dbq]Z  *H |lOi v-便~C֥8-'fdtDODs-hkc}$ JԱхfCYe;c6o6 º7D}PL,6ZhP*6gyU$vժ*`߰ec؅No@_FZ<nb'&S2;&๔i8U+p{ŨY#6wVdtdQ.4uA*uVo?7|-N=nuŒd.?> '’<1tpl`G'֮}DL(AnSHB(d;W8rB[6p$'$G~rJ zv\.'׌JPŏl!<" ۨ6zd󆣼ߕQ|M+Z|~$LL!}ͭ4#P&XveDb9Af%lapu &D}0x,8عjGW膰2f^U'PNë~t8;ys,ufQ*Ț@L[||ͳ@rXxo;P7Z1њ3QE!eGr0"(VN-9_:|L <_"@wnys{=wp9rs'nXW1daS[<ds.~F-@mЈ <]'æQǟ*xˑZ[$\Dh~i\uL=nͪ0m 'ZO4`[a26 >G[E06[5Cvf{Mt WW!6ӎtaއOW_h\j Y;=v1jTG;5\(Ɨg!Năbr0Ȣ}U'_Q9Yđ-)pIc]aH%pĖQjvEl;";HZ[1[f[ϒo8@mjXAR9 OGk2eogfΑl+ܤmy= |F~zobnLxq>{NhIT5a09'(CF%5ͲӾR5ZacMp-FtmӠ UYkJJѲCI5ybZ-3]ԁ &jY[S2)eiC2mk;ſ S{QJ]'H峗`?mO@&lv]$,uSNzI[qkk[1;^ uZ6as n+d.NLJT*g{0=KMcR6TVeqJ iI:Y.G,]jtK$:E !$6Z9TIq.pyڣPl~]0~ꊆ8͛Nfsɼd0xfRD31ԑP|$Rt5*LHkpWG$&F"aS%T|7 ޑ+ 38:R52xn1S: Q"%\ -Xuzr˳[\DJ!R@q5&&)&o[{ d$m[XQY"k#Q@"4a?iScj<QY:@I4 4$c_h;UddDM,(3LҜU]}ZsKg v#iGԎp33\GVn'-6[v=-Omݓm~82a~㙐zԳ #%Ѹ讖sg MɢưY'`bٖtHttŬhԽ4e7FcejIoU\umОPh)@ָ:DzCR4p/h+@$͕T5^l/O&[,ͼ9E!ґwϕ/50X$aJ%REEbok%7 %+ڊy%K9Da%%$*+A)v՚s a;6::h &9`Ro"aJ-pE+G{s;"wCvD粢A KE3Xr~ &1k(b23!a1̆;RZQDV_ý# $u(w|M3@̛ f2ZcAk=<(* 8(-HPLOȸS?'F925آFabg 86iX- USiB|8% zA(CaT؛JCmYId>& hǪuz Y5 .;g:όyttY4Q0ʬϔHBa+7c^6ɉ<4@:oSUդ+qjnJYwBqhoEWc OB%ؗGʿ3ͱ*VnkⲄGa9,p(ŀ +>lf {ڈy7>er\J58L&z0m q|m=9μ6*i - 6Ujxq^wrLF`jሯ={YT5XHvD#9ii=Qtۍ0lQE^w/IOoy.OӠW9)Y#KUˋӴ6&"K!NBQ[ZA(dpGذ ڮMHbf9s,,#h(3WGGowmGh2^ K^~ϘN;t7 IL @\SUZ,F^,SDo3<@X~6H!V0x)l?}5lL@S2D+b"ՐnvGc&-BGL[X,F]f4|n>!cd*VgCg4AeˤNzn+/ꐊgX )khʆѩ&e5NBnlRI_fI%hb|B}*RS̘Kl+/ċUd!O`Wxmqܼ{T7N܊:lnwW+jdDтO-\憓QP8~S,q? !7Yz&p7oe/ist ?0-ŴłUe1o,k(u;1L#@";d}$1SEHkr^i5L0RRK/{Ǻ Ѻ,81|8$I 午˭%+:aɀ/lrsIaJIW F MV ozk`*CoyLXAWa(Xf61Di'e ѥ4#pn"SRk'󧛓o3+pzEU)52 1#36 ̙ M1{ݑQ|T! jk񠴟30ÁetLTf3! 6R.͇ɖU%UTAgv-O޵iO\@2 Z!a xImIr9S#2JMR}ׯe\L$֋z66~l4.,V)LG/eZ.aԢP8ׂ_w"@L* `L+$1X?\x>SX lXI{-)+}נ/zĆqb<'mIisJ1G@&q"p@S 7O& B_Q$ O~YLA_r{}Hթ:#[TQ2Qy,1] L MkuCo+-521NN%vm!Q,ǖrRDb&gzEK_/b nNNvUbNBbE=0?_ $J%NڙsLѺ<u8򱐨0F^4_,`&1@]+LƥW|N\(ü'.u,N{Vg+w3MO2-g1NDf3`:2&M8@::y0&E≷^"r%F[ڒJ2ְ\0#芚Yf cU3XJPVd)L<d~S [,= hIo

?;M]g%V /Ŧqi4{>S$Ίq5& P, 8w DRT&/9Sb~dJkb&Q{.re:4ao|' ȃTxWOS*)7ű"Ye#kn#QQn(<bނАƳ̂nn0ߟض3BԸ 5ۢ&hju i]ֶT̺Phv7:+uX΁\H-uVr(e$`M@]]a*e6 "zP"\jIfwYQA؛̿xܚ0RcAx[[kXU2K(m%%T~۽ސ KRNmWEދ'ǩD(ݕ+);<:MՄIQҐ p >HQ6RL~EQD6YG/z5Y 6e` I@l}\偼a Ǧ*; G[?洅hZYkh(DB3S$yNWFLHj&FC7S~3L(Iv6Ř\fpSXaJ+#HGbH?ڬw/d̆3#g9N$lqb vO CWb/vé'z8j-V0n&2̰B:3o@ΕpPt&%75#> {L/g. a8N-8Pپ\/cv[ܧGqfe^Dktd $`+&~K6<R7ξk1[y([H~3Ыdr1aԗ6T R?rNg*&E) n4X0)wr1&Tma.]}\[7{R|_R`Wtjj˸wy6kWm%c;EB ~c&+`֠Q3|gЭL!Vh6M3IcT8okiEwJYIy<_gܩfӬ_x73fI9pI`mVƃQxryt:ʆx6j t@RZ \v. 1+:LJKQfA$jl[kBi[9USJQ Li0gSDGCmm5``c '6Mct4a{zDwhHchOFšq.@Օ`t]1˽ LJ1 ;*tFpH p˘un[ t*tչ W-4-p|4mjece$^;~ l`*".T.Wˢx,4HКӏIC/\·Kւo-ֆo%.ˎ E(񱘀R u?0wiH)>LY;/#VH \ ܴ~OŢ|1- "*>'fwҺ45[Ҋe. 3AM(5IC51lۨ`Oل}'#Fŷ8)D##i_^選 d]VÌkڳt Cj8g{`,7e1nLP3\GkmO ~]"=Iýy}~>3x0Dԕ u-w,vJN~+#{T:$z򡸵7hGY]nZp"U 3N h%s:z暐%#?GJDr>ʧsՏ~ ؤ~X5N;0`k'x'4f_Ao5[73h^5֣4/g40/Wj \JtxB|uptuT\t雽 mҁjNh$M^ Vw\ v)@b )rSzqvx1hC>Zx$2Rj?shςZ>-`B`-(9v4ՠy KoڴZj.kpRڹ|H;ck4 Yە\QуQncgx /:Fpz5r\ Ɲ8 /C*$Z^jAI.yT56"QRE=ޝMVد‹'i9CS'GpCnK\SHCו;ސ\.W!6ն!!gRg Wp^\?=1TC{일l"60WPv.Xx$</XտvO/A5޴h{#"z|\;oiu~O>5% mѼD@3$PE.qtcF X¿XңioSy0 V g34O ds#GYG>a¸a((aH<'l~){&.<=m ha8]ҍ! &bF D"xw r*0ldZTb~x iu҆'~Pi^)='Y@)3%aX;>H(d)m(ep3v߄y)s>7I Q>c~jy+|Gs%?H 0k暀&` k.M\#j@@1(5[ūߛƒ{ ]؄7yz/BB_|ZAf^.1|͇8z,- |/0ŭ)Ci#Y.h[Jsek0,Y#}Qt+Q,"bVJ壱Ն7SK\E$K>S&T3! +XqAW$ʨg >}PE.wpUDSmWr(բTv92V&Ay+ո\&ڞlvÿڙ4| gu1 [ 3xSY1)칔= !ɦ=E.WGYga0G8Pa}խ@W\HYX"ʹ!"da'l]R3{`8Ge \De|;q(Jlafl.vԅy^ ={~Sz~y/~ aC6`w'{N1JPP蘜kHƉ=UN,(f w@yM37/SqgRl:aLNR) 2#q6#l)RP4Vh&eNL0Z<^ 3 1E8gܤ(W^%ghJj6KuTi(s oaKږc BAȶ+LZ:05ӓ~d؉L&&KX>7@%uA*?ʼn|[I}NL(P/poQ(AZVi }vt(/RK~ ZĵElsz~P?eSI?5O3ygSI@RIk2tŝf"$3d,#̳^Esم۫O=O'JK|!#C"uK*p J`5.S I'DpS}Sc<72m_ȱIƗѝ jO O|RDd4&Y<?4"38d5`h=pe]oCuJ1r4_l@6X2 Ky8xwI#Tm`<qY|8G_8gpIu8BN^ "&NlJ'wN[qzarˏp0*i G4lA7Tľ@-gEpN-Ye-)뛔߭~w! ub6\*zdQa8$GK(IͶ3cșKbDӔjl83&EYH .nj\˃I8F`JmAqY`aVe"kXbkRg@edғɨm3pϘ\p ^#`-<#{K`iIZN+NENF(Cc${4gº{f`l:jB2S| 8&8x$db%GbOe8͸ݦ*P|{}p'@B7QE(oYam?x醚oT(gg'dO٪f1XZb"o͊]4AVXwm E^Oڋ@>jdx!6J̌b LmV~gT*j6gcBӿWxJ򕽊YwU@KR1im烪ok6^P)H{Q; 1Z4XAHv ~v7G} ]( v=YdȟrYk 5 1*JO:ǕSJ @'[d .9k۞ .YIi;Q~ʂ ӃS2KY|.3#ADz5ņ{C4~nЅz/>;J3V|8^Q2H Se@Ngy zdP)B),iUow &_Qa[U|F1JiG_SF'|%P67C3q|ۖ=FL]<'9>(h GObe J N:)L9_N$ w:ܫ7v@ |Q`=0JT^'cka>W *p٨!R&ӎ*.;:ٻ8,8.nB j >Q i o@ Ѥ009r^WjQy8ao/PyT\hjf"EU#x{h&jCU؁# LD:̊  4|IWb[: 3YQ:(zǖi'~߃ ނőx{pIzI C'U6;frBB<èM#̍i'n(^ WWi/ٞb_.P` h|>f-uu"ʭQOzuGč9>E"ZlJeq둱9 03?m'}F>Yh"*r(%/࢈J=wS… Ap~3g kОFჲ".=lyr bSb\m=>ACр!!twQ'-)Jgꞝ̾7w ^_iXBqFP6lirqo @`-Ju⏢+".l 7jNYA_1CK>EPJs J0p2&= OΰOd6B*.P 4yXD@Λ+v0pWQ!5fRnnGe/4[~a44weFe&DkfO?ulqU~C.a$bn"+   :<= ONd]q iɭڲ}D 0JLv}ӨUU%>@y1$т24~j^ׅv*pUzqhEpΥ E|Mi-E5Q|EA3 g|WuVXBWQ09FalШ <a5hTCSUfhMq\WL CjܐT?.u)˼T0{vfD8ٌdVX&~̑V^u~)|$߉ KzYO(W, Nt}LzNԐ#~<1-{'өq'k2fVL)m\1:ǝ ♢}`#B*\3~[P /_\7 ?" ( =n^lnEaWʗgԜ܍Għ~ٖ5Љ}f Ո,Ā}] .0`RKP3VW c1fjƾ6W@ UqW1=}EYRlXO̮|@=8xnw9_ئ .#QIZbZ]w"+<[F#ԖcY%قC;yJ>n",-i%G;$D} ǜuWgIѹ;_ݪLRNR@ h*$x_)$pՂw19j.')rbB|r4n>)%(g/A@$3MhNoMS\R7j^M`CL'&AĐ,mYe>#!F}$3yd">ca;c!iOAj:3twKv/|Uq8R{XGKܨ__Xr z >>nkms<luïdA bMx٧." g+5 9-BD]iأKHz1P0"L 3ۜuOcvt9`> .6"mȒQ}UXްk tw0%.+XeJ6g3ڶ?zg(I OωA?;I_b((WXF\00c+P@mrx&u=w|LoNJȶȆ(t}SIQ{msu"_-*Sǫqԍ8"<}m5*oSfٕm>E/ɮVWҒ6rd6ֽ\wo+yew[b;mi|7p}МFrr YOzU^<{,&@ D4f'n>7z8yqC=, :7'=kDCUllQ~t*&^ѵ*J}\^6&a l 0j )ƤH;Y?Ô(&ڠP0,] :i +eE?OӺ~f혜cSs Z&v:WsxuVi#~u߬';;8RWuGJ4gBYt1g;j! yZtSJ#@᩿m6ŝC Ìu9zK&Ml1kǔPo7kO'h@_4܎2*@͜6?Z'm'rS/ yϧI|w9hˡ/cWfY[55^syAߚM(a!gpf2j%&­:EwAd=*|owłou^6ﻃf┥gݼ*ٓ>h;oSoJp&:ٗ'S3Wh3Jލ^=sM©w-4o5}oV_{ hӌ)\TIYEP͍_"tu46ڴ6 Wvg|0Q$ cPnۏnu Lz8<Ɔj\fj|E=);ߕ~>ٜg߹w߹wsם(ؽ[7p7gM|R-ԳO GpBE?Jw!黽ɵ-1)h/_:71vD2k_E0Ɨrb'A_s '| )"jv1*}Ȯ9m3'gS\A !ȌʹZ UX_8mg4FZ劀o3s$AX.;Qu&jQj&:M8-%6Y)D7r$ |[{ۀ !ޞh41/[p{۫I\cbVX}s>B߂&rMi$^b=HoxɤD>o޲6_% (ocĬ4I6ͮ p2ЍXh8oJ0/SPCY{|WHe ,?y熏3OpWP/!бE`΢jeLK֔DH&0?<8I wOIrJ;sY4+p H,Q^Vx3۪#!FY6H'L  G.7Ox^A:תt@ # FD1*Pw#.鲜hMMguK'r b@\xÔ.-Z[c iKo&=0TQoPVVe%Tܺy5>j3Q)) u$5\VgE|*փ"Z%1JeH"IZX ȢȆ۪wN?ۤ.l 5 wAe`Z//S$u>Aḇ zm 'cKGaZl a>މ 6mL#¾JТI@D1кX8!SS7h \#cZNi{"3s_ ̐db!3!F8E]70b#Lb'Fz!$xF{(QSv \_;~Z}]]]Qf DU,_qz\b\[ <<>/L|N礲>vf `N?q{ U^, tQHgPtw)o*'4VBl j#MFgm6fŖ(O`!M !@}E"}ƣVVe{7 PPΰ.eT' hnQ KK7u+ϸqtIt]f_;I^""ɔi6E孷=n7R4e@x? =1~6*nl0\zQ/ƅ%6A9B#]舶;>hL0*lUoQq(;&[t\_G#ˉ]lRb,)!vk-Ngg᯹WwRLV-}V~ae9yZ?[m9,!prI]̎Qb o7'E\Ti51*Yv)1hoŨ.լRkoc(U..x 3+$XC,{.r#Bt3pgJ|663!'ո(3vzæ 6qPV'弮D֖K4$+ycX*$0T @hB}b-Y0Bl,76G zO\" fJhoC80p):8] ;d?$}UkϤI-}>OuxKA#v_! _Y kdB-z/7W7瓍GkxvE[ u_/j綠KmjZx5`ht`%j38-~E n?}XmS=~nY?n<?o[Lmݶ?ogqm[LmDZ B>Ǽ`QD e aEw);#: ߔyRChsyI&5Ι.Uq?j88ۭsULqMķXǣ0Xz5 %vt֟t]bV;wk .Xƭ5Nbo?c(߮axrRae ł88`88;W`-\å|gdܿSXy DGO,h$nz2-HK!ux-囇[*8h\j|G ſ4v@߽,"ȓ6uZ QXq4e?=; C{lyڀ=(rmlbYd??Üsa?<}w:@fO@FQ<Û Unq T Q{ i D z(sBp[1ŽuD$PU e 5u, +{=Z0߾rL=8iM xJАB]g,{MVbɜH8TZW#OEdK_)ЕtC<{¹ƨryfZ{MV5Bނ"vcMI3l[g'$-ސ3JA>o,Er¾pu<һB^G H{bg^̓z_M$gWi>Fj0