From 8956a224cd26d104081bea556142655831d11eaf Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 28 Dec 2020 09:54:21 -0800 Subject: [PATCH] fixes to indexing --- crates/cargo-webassembly/Cargo.toml | 2 +- .../cargo-webassembly/src/template/js-wasm.js | 40 +++++++++--------- examples/snake/example.wasm | Bin 89865 -> 84788 bytes examples/snake/src/lib.rs | 2 +- js-wasm.js | 6 +-- package.json | 2 +- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/crates/cargo-webassembly/Cargo.toml b/crates/cargo-webassembly/Cargo.toml index 3f38820..de1815e 100644 --- a/crates/cargo-webassembly/Cargo.toml +++ b/crates/cargo-webassembly/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-webassembly" -version = "0.0.17" +version = "0.0.18" authors = ["Richard Anaya"] edition = "2018" license = "MIT OR Apache-2.0" diff --git a/crates/cargo-webassembly/src/template/js-wasm.js b/crates/cargo-webassembly/src/template/js-wasm.js index a51a4ac..e57f02d 100644 --- a/crates/cargo-webassembly/src/template/js-wasm.js +++ b/crates/cargo-webassembly/src/template/js-wasm.js @@ -5,14 +5,14 @@ class Index { } toNum() { - return ((this.generation & 0xffffffff) << 32) | (this.index & 0xffffffff); + return Number(BigInt(this.generation) << BigInt(32) | BigInt(this.index)); } } -Index.fromNum = function(n) { - let i = ((n & 0xffffffff00000000) >> 32) & 0xffffffff; +Index.fromNum = function (n) { + let i = Number(((BigInt(n) & BigInt(0xffffffff00000000)) >> BigInt(32)) & BigInt(0xffffffff)); let g = n & 0xffffffff; - return new Index(Number(g), Number(i)); + return new Index(g, i); }; class GenerationalArena { @@ -121,7 +121,7 @@ window.JsWasm = { arena.insert(typeof document != "undefined" ? document.body : null); let context = { functions: [ - function(){ + function () { debugger; } ], @@ -130,15 +130,15 @@ window.JsWasm = { utf8enc: new TextEncoder("utf-8"), utf16dec: new TextDecoder("utf-16"), utf16enc: new TextEncoder("utf-16"), - toCallbackArg: function(arg) { + toCallbackArg: function (arg) { if (typeof arg === "object") { return context.storeObject(arg); } return arg; }, - createCallback: function(cb) { + createCallback: function (cb) { let fnHandleCallback = this.module.instance.exports.handle_callback; - return function() { + return function () { const arg = arguments; fnHandleCallback( cb, @@ -155,7 +155,7 @@ window.JsWasm = { ); }; }, - readCStringFromMemory: function(start) { + readCStringFromMemory: function (start) { const data = new Uint8Array(this.module.instance.exports.memory.buffer); const str = []; let i = start; @@ -175,14 +175,14 @@ window.JsWasm = { memory.set(bytes, start); return start; }, - readUtf8FromMemory: function(start, len) { + readUtf8FromMemory: function (start, len) { const memory = new Uint8Array( this.module.instance.exports.memory.buffer ); const text = this.utf8dec.decode(memory.subarray(start, start + len)); return text; }, - writeUtf8ToMemory: function(str) { + writeUtf8ToMemory: function (str) { const bytes = utf8enc.encode(str); const len = bytes.length; const start = this.module.instance.exports.malloc(len); @@ -192,14 +192,14 @@ window.JsWasm = { memory.set(bytes, start); return start; }, - readUtf16FromMemory: function(start, len) { + readUtf16FromMemory: function (start, len) { const memory = new Uint8Array( this.module.instance.exports.memory.buffer ); const text = this.utf16dec.decode(memory.subarray(start, start + len)); return text; }, - writeUtf16ToMemory: function(str) { + writeUtf16ToMemory: function (str) { const bytes = utf16enc.encode(str); const len = bytes.length; const start = this.module.instance.exports.malloc(len); @@ -218,28 +218,28 @@ window.JsWasm = { let b = mem.slice(ptr + 4, ptr + 4 + length); return new Uint8Array(b); }, - storeObject: function(obj) { + storeObject: function (obj) { const index = this.objects.insert(obj); return index.toNum(); }, - getObject: function(handle) { + getObject: function (handle) { return this.objects.get(Index.fromNum(handle)); }, - releaseObject: function(handle) { + releaseObject: function (handle) { this.objects.remove(Index.fromNum(handle)); } }; return { context, abort() { - throw new Error("WebAssembly module aborted"); + throw new Error("WebAssembly module aborted"); }, js_release(obj) { context.releaseObject(obj); }, js_register_function(start, len, utfByteLen) { let functionBody; - if(utfByteLen === 16) { + if (utfByteLen === 16) { functionBody = context.readUtf16FromMemory(start, len); } else { functionBody = context.readUtf8FromMemory(start, len); @@ -280,7 +280,7 @@ window.JsWasm = { } }; -document.addEventListener("DOMContentLoaded", function() { +document.addEventListener("DOMContentLoaded", function () { const wasmScripts = document.querySelectorAll( "script[type='application/wasm']" ); @@ -295,7 +295,7 @@ document.addEventListener("DOMContentLoaded", function() { }); if (window.WasmScriptComponents) { - window.WasmScriptComponents["js-wasm"] = function(e) { + window.WasmScriptComponents["js-wasm"] = function (e) { return { ...e, ...JsWasm.createEnvironment() diff --git a/examples/snake/example.wasm b/examples/snake/example.wasm index 4c935fdb6cc2b30d10a8d213feb567f6fc513470..d2e717ae87ac1018cc981bc624827d3040114a06 100755 GIT binary patch literal 84788 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 MWm&m%toN_~50yjj3jhEB literal 89865 zcmeFa4UnbRS>O47+^_C?Z};t5=3GvYx4#`+l7Foaa2>=Q+y{h>kbyeRRC#%SFfA{(@JXaK+_Ramn>`dCg6F_UzgC zteVsRXU@cDj(5xU>^2UiLfJFNBg*g@j~jff?;?SrKjD!eAFBw^Z&y)X+#U*Z*S4>$ z4qlw)#qIowlB?46##>G=te(97#EtKI_sLT?p1A%W{=hBYck12We@ir@SM$7j_bsQt zf9=NV#jIXT+c!7gc*DsXqe1%aoBDHeaXdF4&2cfe3+yh$bG!HSqh2((H;xzQ;{Kj} zQGZXozrPe8xM=s>TyJl`|GGZ^_ZIv8UY|b~Ly~?J_2>APUYw@=l*e<6b8{E>Dkm_&{D-0<#O zqW@<0rW|9v;yeDn9-@O^918(Qz-^83Fpx_)(09sT;1p@s@X{argS` zZ@Te@Td)6Kx|SwWE{^iJyMO*-w{Q9IkxRex?|u7!_uWVHmB01YxBcC}f5qGX`*&P9 z{rJm`o1Sf?!g&Ae>o@ol>U6P-RR$X*S8m**vu0$)3eB-+?F3ua8N5a zxHC&vBK2cX!X4!YSC^A0Yq)4Raaog3O3YPtu9AV)^<_8?{xm&_ubLC zIqRIvqWtVh9=-hMfA)i`>-h%HZ(AQuxmMm-bGd^=2*Kh%vlUYvy^hN>5 zdeqVFsutI{vLEyQ?5gVtutpwPt-YJ_^z`cbTHd>Pl}_9y1mx+}z!&AGRW;n7gW6Lvz&m}urQQBg_Zw~F zuw4a*y#R-$p;Vebc|HzH^UDK=S>ZsY^pf<=ThTwwmjj3C+vO^}G;EDSero#7mOHZP_tnXfPA>koH{`3A!tB%PtuyqmAFUO$E5=3LLS+zfmJ z%Td^g73U1F`IFf$vD~gPmfK}4=bBp<6p?5c5BV7F|+7_L`mxE>5AcH1p> zOJFy_)&n&(1iPhfHvkRyz;68Pb-Ms(uh?x*o!wFw9ZvoMo$sl`ZYqdkHU~HzeMqn9 z4Byfb@a54woD#Dlfjkt14pQ>2w|Xg}K9@&t24zjxlx%p>Rv}(r7DdCkE*M`H(ExDTsl0E}I8P(Xj^SybxY=M7qO6 zI%SZ~SC9rcN1+_{fNwcj9?tU%nLBHTlVv(XE7Na^M3r8CW_8^)MQi^^#OisCpm#1g zobUir<*C0qg=FX|$}dG1xSm>!S9v0yYC5BB`C&ZxfV$lU2QL(wp!>PmMh6Si=3lTe zH4Wg|)&K9}<)oK2s2+XXIM$DhNIZ>9?qqm9qjZKx$pH zlr_<(FFtT?BN}#Kt||Ua1FtX1x4!E9W&XsV0~MH`g>TbSSu=0n0w=%gG|lBP&-&La z4V%5Bo4=&$@&ozCFY!CLOZ|+xc_Z&osBw%!pyQF1-tAd;#ohG~EZltvuz9zdO|51f z*E+^CBzJJPK9#y|xE?w^>*O!TZffwH9`EOavwXmh@9C6!I-Kshn2LmnzUSz^Yp){z z(%DF6VT5K~!UL2+ie5mPhI3vOxY>Rr0dq6g0z^N*ZWTEdDTgqJAZ$rU3bqRuSHXP6 z!;`3f%80O7Z`1sJIA>OD>A9!r#XD;~vW4BBrDMako0Ax${M?;G)qZMqIIsE!!(C9Z zWwPYqYC(=+3#e0!xs(wfZc%kpU2R&yO1lo!Kntj{mJA~XcXpj#q;3~#x?4H|Qpo|N z=uX%DVAg#I35~2}S#;6RO|563yNOn5*X1(_@`)>B^4VTh$)+@km(PyKQ)v{ z9+IMONhX^To~d=T5REx|1k1XnVO3^XokL+`A`;Y{bkqDLNpu7ORIg&!IGps5PJ0)- zY1csLI}#-k7sk>zVxFv}M{Sfq$Evxqk6xnrcvW2c(3%(BUP~@Si+|11iXd6*rWD)a zp5{QYy~}8V#v-*p%yMqKViyvw4}0 zd?S{YK`XBf2WGD96E`E?>$riL$n(ljBXH_3CU`e)8N%>2MoL+nq}1Py8aq zp12~?pL5@PbYLwGQ<}hSv0?~V`o{E}s>`F5_(=MME`#ZZ;K@uQiPAXfrUs>bQ#|VC z_sF#8b7Lm{>Cfuv^5|0pKYBxGh;e)gRNNV0)*RuQoA#he(@3N3@CN~us|sWP$;!xGDdGqpHy`o zrRQ|HB}(m^SBlaX(Lm4rGSxqlwN@Vd+)sYvckch(qpzQA^@V?f%EfO0M_0T?STF1G z=$8$ZjNAjdR~kpsyM*?;QhdX~4~q;E8$E;LQ{2--jI0xtztqPd%m@s^^r5RfXeMF!w7Q0YAz zqBFPMdB#IfKDqqPmEV5fPk-)@|M(Byw{Rw#`d~IaIldFy0KK!5hMxw)&iSYY7#eE> zWd+^xo%qbMg4WCG`AtAQg){xZtXH~g$%=&j9RAM%m#pxE@3qpA{!NJJ*vo;xTUga= zc-D2kt3bPAF8CKBX8vfb0$5+@iDEps>IV#-SWxic*x^n=as3(^D#+e^r)vqeLw9}f zNP52t^p2$W`huXLD){zLaG-+ssGc%r09h7gCkX(^8SIBqf0E+`{h&+MiqOzd;{PxT zea74de9qV<8f+))!zB2C)`i2#{puH-MX-k7ban8df<+&WvssNo+v3!pi-!Zoph=1W zB;Z4NJmWT%;>sj$;AZMR?p*M32Vt~4qtaPY`M85+kX-X|6FH@{@@Nc@hxwsKn&`_| zF+P#;b42HG-|W!<0wsP3p?BUMB{;sGs@5L{00r5NUUU&W7Swx|+6_ZEN1mQf+Y?cB zQNF!@_*D6DP(6IId}xwkB?bIru`$YH^dx^yWiCk{#hSn@YW03dB4zL}zj}2Sug-}~ z8>v8%dMMp>`{0G5V0t8dF-eZ**y1n_)EI)=nn#kmsY~N;F`Tiabp3}53hF6JCIJUGR#KPJO8ao~5*?I@6NcqWOAp->2YjG+2Y)DJ40rJu zZ2p)?iNd*C^oGR*^gw8hzyK6_0SXyOmy_q>Y{4b63B%nsBv@EZI{qzJQMQMdi@e-h zygZOC@+l7WK16c?nyA#Aqi`?lTkI?ASiCT?upAw!;?nz1!WP8naA`;4(h3eP(U9bA zoyY){Ee{X4J%BR2$Pe)p9dJv-HjNHY05fi8G(6aMjOQe=`d-YHQP}M#rWW8hnK8IO z>1Icp&SvQhZZH}ocC$C}i9!H=6y70rhOexOaY+@EZZOns=eJ5U-zul|0BCE=IMPi4LxSQYiv*++m-jF}@5Whui#_d7;LGoTX!CmkPGaumR z5GHyEVcc&204TCSc+=}zBz;6m^>jITIGrS=A4558Eux!5 z^M1t4L^H@PD#eKh(JqB}ieHTtfi)f1DB*L{D3Wk#CBpqRjbgCkws?*5?a@z3U;It< zMLS2qqCh@TDi8oq&2SFxF=1#(6#exTk^T9uqYq?TiDq+5G@GBsa+L}|1|z>0=)4jb zk@-?k(Q79C(mMLHU2_vO!FY4qH}x@sL;=$uRd>CIIe4F!@|=mJ7v!W~rvZ#cHy`^I z?z~_p4CGCQ(baky0;0a${d!{EOxHu9`!*GN(kh$bz5nRTx(}tlWbY(`CZ`A`egQIx zo~T6u%~3FH%~;qEn|>|9#Fh8N0R)O8<-mr3l=r z;B(e{X;=5H%u(#NhSR@d+1m9LeYLyd%Soay#h{K8;(MT2en0L<3kEHPi# zu2U1VmxKnFSnvqnUN}%pnMa2cCd_kt?*~ecrmH^i(|ubU7x5rhpWt1BOs9H%ps*g+8M%|xG5+#bL?}GQ4w-k9E_>O8sc(k1#W;5jXj>Jeh!6pt<_PNXP>HRHH| zlb&!%04#c?0U{rm=>ANSCQPZtXJHGa3CLGWH2v4f(lr-f>!WKz@@fWxnDc`7<5L+A z^pHt1V%M;C*MRu0|H>^0L?!mVpO#4DQzO|Q(8Q<@1-8!|G~v7|EG$C6(h=P-^* z`weEvm>o!asWJf$-3&CE-1U5`vg8#scukH&D#3Q~;3q`oEX6_8N4zd8Q&pjXN_3(i zTv1K92KRbSfje!+QmCM&L$|<5-R_g$ntS~JYVMH~8hI9)|8^Sx4hJc01EVy>E@_y3 zj9=00Ba>jbA>`IDjZZ3#g&1D>ycc;E77QPm_nLy?ibldTr*c~Wm-y!eOmo`Y=-B)w z6@ByPH~;II*u*((dgt(46Oo#O+F~MdaG?{Cvm+Ccvui#(0C{EZvY3dR`>%5%a{ik- z5jk%Ykz`2x<(`O~EoK~B3Q}l9_Ua}gXU8TYt-g_o$XSg~n}mG_uX-Y~7h&P!!LzdV z-RI&s!SBJi6rK+r&6-Ps)5G(a*pwU)+@3rdHh6-YehNoO;kyLqCn0f%e|8mp59z+- zW&{@}#WhmQ3NJ;Ok8)4)c!442G8&DFBu~Yc2_%XVjg= zzjTd$R5~q$QMY$*eq=uFo=tA=6t4BNRq|v)|0n;&|9Li&Lnsdl%q%Bwm)kA)2djho zghG8tu>-4FgL2B3;%?xlxXA_*!r+p;r&^#Lmr9ePe?O(KEj@0?*hkasR8MxQ=?ywV zp!}bl+tADl&q!(kr%&jC5E0Vq%Ji{@ncS?Ychs`LZDK(JCfV^UAMt^E9|lDYz6D}f zV=XlXU_N%tgbTz;1t8HEJy(4Y?~;TVy}aH9D-6B$&6Iuy!)d;_92Qym(+_>}*Em!5z8-rr=z$hbvs z8Pjk9B!@wqu$=2&2^EYv28xm)0iSlFXy`6y+ahUij@|atSAvp#T?hQ4lh=f zF>|wWM<}I@$V_&J#MuZH6NV@oK3nRF(K3Gq+>r%IDf zbUT}UE5YX3w~?;rO<8j$>GgYx_E0V)Xj51Iouc1pb^WN(57jOD>JE)n2fAmHZci~L z{=WDrcyRE5ASJl045rVED~l(F&q@*}jpB_$h?UQi*0eBbp1>vPXbgTvHT&cb5ekW; z3C#vGm9E*~<_ZObZ3evdhzUH=ELhHWq3?=k<#ZQgHP;)6$jG1q%Ga&LXJE~W+fbvux1bKCC`d+8 zr^rPgJg83yJ{q@Mz2%&jaW#xJKn0*v=0v@DecvO!S3Gn^S#rw}46b>DB>(CcKlr1q zlcUoImPy<=p`7Bb)XOR{`v%fE+^w3HhkF=I`k9kH6xcg#FvRF$Y$OX+Vtv0!D3@$f zKYgK!2zyePc=QicRDz_R|++tule(r!Q(!Vlx?g zXv@F$^BDsvIdc9qcNb7Y>?#5^5<*guM*w^LKRxry=|t36x^>s>=36pccZ7`A&X6&w z%^EVm!_JXWDi*^9*-B%$K$FW*!?uGXASAFT{O-AF6ON?M{--e!{>C_?<`U0M! zf0O*_kvc#2Nm|JNZIr*Di((2de_l#D-<{u4fBNy!px}l=cU4d@+~TPzC}?*U6#U(v zqgaT&oqNYvP|%7Y(gX!xtTLTm7|nDV3kupduQ(`Z%~(+IiYWXkFI@b%OCB$8cXHu_ zg8RFl8pX{$UpNPDq9R}#Zoy5YG(5d@dig1(xCPv7TwUNMmUR!sz)j2)xxVlL(+yo# z0n?~JM0!;GWK|cBE;wLn&0MhwEw9y+5J3IqxpZpWwGJ!amrE{Dp#(xg#V6lU+YOPi};#SMk z6^=`{ntTbq@eYBe=u)%?iwJN_X<2S{qj0Nf*EP(o7DNV}YvNYZnw(d13QcRs+2^Ic z$KzH8EMBmN2LjCok3CH!%72bW9894B|G80jC-uzyXZvw3S^3@H{`Y_Kg{pwrf zK4YxqKFewc_gR?4eNM*QXNF3+j&h#`lXsu_s&t|PN>S*pzb`Q z#999$U4Af|zM4Fk=`rV7{bq>3&tleltLwTR&NIYT4s)aCJjcO#R(#((&m+|p&a>5H z)g2nE4i?(ddB&UC)_IOYls>LS>EU@3oNU@NT~u?P)8IVo6=O=V?AvL={7mmWH)_r^ zLrg7rXjINKofM}wMx5tH={(B?t(@m+r)D-e&oDvkVsX>ag4Y8Bmd>+{fIU-|&NEbH z<<1@A2_%cLZ|OW2YJ!Nvl$>X&0#>N0Q>>5+&a-CW&C}txCUF`f$$9ScGMg2`I&%4Y z*>o<^!9!%W2j`gtyOR)jlDCE=<3XHo(@NRt%XyyT2j_WSH7yT!;R`LKrsHHB-NGbVT`FrtSW)6g&hXhk40cyD3X`mPUKq?9B0_>f!eM5a9JDPQXjPz!`--fy zh}O^Y((g)0%oUO^6wbAE#_bdp)+FCT@H?5m=a*M8M!In*7t8=5y@Gh32 zFlMyer;zJ3BYm&=I(WeR;lOouf7m#JbWAZuKM(%!2zDm6;+Xv<6TRXqpu-%KuW_#`3>1 z>MaLQWBxGVLp955KY*Ia%^!|&Ya=miTmEoi(1;t!A2#dRH0y~3%KbG=&X`Tx+5?`X zyI5jD`tOLhdI7#}nVUA^E#m>iufhW+l=usAB&B*;^x@bX3|5$YShD*+z&-h2zsAr0 z%7=0B%zv9kanji0Pugh2qpwsnk_U2GbT?*7%W<((Z{lV)Je0{qiPj(G#7bixk||o1 z%WZW{q`b+y$f-h8vd5Il5Jq*Z(3Q|IwzsiFM>(i*7xf+zLV$ z<@NAO3Wy|*(H161VuE(o1J?Z*n`y0|+Pi~=UaS;cP8wPXXFc$Z@C8Zy`lKP7pgNf) zon|u9D)1J7SVs}%%X-0J$b#uJ#6?zMrjYqrlRu_`P9jYcJ<0a;5>8caRD&E7lQmgC$e0I+KTD z0*5A}TMNub55P{%qNR#CqPxtZ$v383QhR-Oetc?uD&1lB|&~u2g3q~U3#ZSa~_+2b8JUg^LtKTk` zh|aKuN0cD2ZU0uY5-~WZu*5-^ydm~wtwK??)+(8bwU{-gIxlS@A~}|=^`5&h6p0i*-oMxJ45`$MkLYZ%ylHgHoaBIv{Zs9I={)8 zQz!rQ*FXAiK6=)?If@m!>-=nnyn~OD)r$T}!~sDfzNO}R4H)eFeH#^UfUStIBp{dS zdZ>FIJrn}d6ZFtTVvOmbB_jay&lB{}I0<&5htL&MgCCP+#$|T`%-~M7N%ap&%d6SE={`neL)LdF z)~=x(OaJGkv=}DLQ-lxQ;?)SB9&y)DQa^D{?Z7ekaRKVg)}NA?-d10ZaZ|=-IJ^x* ze->oe$a1)7uo8Fg_yQJz$1K=_jHTk`fvn5dbZ<%$T#6-y(U`XPO?DBxJQM>m*6&pd zG6pAEtB!?aUHiy_jCnA%i-t_@QK3|}tn_L?@f(>43xK@KQWiW8I^zaRn*mXSR4@`E zyWGOg;UJi0W{)EH_asJlr0J}(%BDP#*wQLr6znn;d%G;FOb4n38KhnX|9i@5kRpi7 z1sPM&k6kOe+b_tN)q;#!w`2?jJ{ie}1sRM+VH`*-^J)t)v8< z+T%x(@1S}j4Ttz4V5j-xL)A(Q<}X-@aYqbj?+5-AKZR6#poh&|?54mPV%O^;EA!d&C( zG7lclh~=MT-G*L6N+!LNX<0Bag^?I@^ALb4ur=xoIXVk# z&-?L?AF?qBSzt~?E&z)ViPh^$9)x&z#FC5OF!TGhP2Nua8e^bpK}n?qqCyF1JROGc ztkjP+en$kTf4lMfLOFhC9hjL9jo8y24As4JA95UO!);>(Irr6Iev@-QDGMTF2)~*0 z$N0X#XJ@=Vv4P4dKuzs@s9vQ4nQOn@P@QxKKU5ElyQ5)xlP>LGm_D&fW9~7bZ>wyQ zdpy>SYM9QpT;=Ex*FgqBiVy$j7;EWJ?B9dJ?%)xj841g1#!dP$&A*5TViOYSO5&Y{ zyB|2GIV0KjJLIb#P7ZR3-;3Xp|HwbKm$)h1IG;bp6@JX&#BqT)aQDwrq*xK-TH2cC zA|SX;X>aU=whC8GyNe!j7ik5@;2)_8G@%SaV+)z+yNTbcM}*#+|cnSVTMSoLv&#zX7R~ z$D*}N(5MR)6>DLoCeG(WdaGcyB}g689FMe%(u>H_3_}z#N^magnVJW2U{RSioh*&! zr;`V^mnhXR-Njqn7}INn3r41s6$`~%2M|psqjhUpn&Ke&1Y1rgOJ^0+$;ud|9iAZ6 z(%>|0Gs<$;P0b<>0|M}J7i}2`zvbiwA6n0u4-Kqslf{+s@Y$AZ3Ci{_i1b}Y zUHlw{D3z5}mZLpJytsH#a&w#uEO2HhN zGheJKW13|}T0@DNOuCKqTy#jSd-Yjl6Jv;`S>*QB48z-D7I`j;=ae(4o@Zzf%_6(E zx{I7+7MZcChV8AHWOgv?Q!q87O2^r*tr2FCN2(h{?Lnw+(N}k9tUC62n@MJ7*?U2o z&_3}1++QYK-upA$C-^f9nw94I zIL?^5#U6BFR$42#kRGeqL>L^XGbXxDEZhN^mymaJ=iK7`;MQO?r37V zr<#_BOEMwncX;F->>z|ZX?RgHAnAoTJeA5ZhiA;6XV8O2WMV?Kw7B z6X)zLupY)dwvV6L)AJ*vwKHT)YO{t6Mz}lo{z~O+xL~5EKDGfDHj8b%dq~zW@TqZ? zxM>rPWCDnWkKkz1m}JD~FdQimxdVo2?+izi+N|M-J@s~uqspuqk~H3{4FExs&0;s) zZp~sh+#X?N)QECx6AYMh*=^+7hTsy-StPQDHXq5~oTTXpJ~UqQ*=woXSDwG=eO@ge zVOdrW8^V}f{}nOihV5!K$&-H0JIj+j>5U8Zq<7xJocGlqywDb8_MWSoJ-j7!?s%BG zm^dp)4mmg#`kS*j(A^42zo-K3FrJgktSxilqo`nl=6a$(S;vGu@RFWv7zwghc56Q z*HnJj6edAl+pISb_+iY(ywX|xzd9DwIxRO*Noh4>N^o)3Pgr7Bi)5J##|TL-tGL71 z2n%Y>><9L$5;BU)2-`1*qiz7d#|(3JFPFF;gv}VULfyI?aBPL!;TxDK@?) ze_={_hhnsliCTm>*%3~-vHXR(iUdAG2^k3a3ln|N{k5s{*CKymVk568f1%7&HxKT@ z;`N4(l5s-lb4M}zzv%RZ{h~VI_bQEQ={)HROZYjH)2JrWVk|zpf1CL17zJ|15^FX! zy-j#lp%~`fm_M56*=p z#11(ZYk?7;M#5FnbV#rcUe!oQd6F|zr5lBucAsuENifVutlKS=H$tQ=7Ogl_;!#8C zSv#7Wm;_4*HLE@)9-U8QYAYwkjQXocw3gW?A@whZceP!TkybR0CmAVuzDP2fVgg#8 ziYE&TAw;QyO3E{RHQ5^^!zp{?pI=}^IG;G}N$T$S^yv8oVPsR;iIM+JvF2^Y{u~r% zo=h0=vv;E#SahkF=ey8o3K1E_3zT!PDRzP!y%yvAEhlR(c%8!7RE-AuJD#;uHoUD< z@H2Pc1i9HpQr)J%2uHCgMkT^Dz#2uaxTE3Za7 zyiJ@yV-V%%ayF_zDN89+_3%KC`!YOW;z5W&IW`RIHGRIN?b-QsX2Coowr4Y1&trK6 zXrsp#raQ7cTgpw9^7<+!I;}^tA)8ZPdkXYifMivv0v94xJDlp>j^%ce@;b_9lQLdw z#>nV{XP{IXP31E7>k!4T@G>XKTK<(bo5|3NN^v0_%irdV6ImT-cT$@9fBp=`!d5Nr zdyB1F5@i8}Vi?8bjp?J+HZ~92Ha4jrs&-f{7&YQFoPcH(7mv2ss0HTRB61b@ya)ob zD~M6QSj4tv7VI%-DiKD8}l`Zp|{-%YlCN*AUE^NWhTNw#x zSdE}JN3MG3iCnQc#}>ihi4++N25%R+8m9xCKE9@QG;|g08m^xi=jp9NSCf!ulp7CS zO`j)pHEk+uQs`<@6R$LMHL7|hMy~ASM@s?5>0|l*hhv6x`NX3PwMD&Y3&%lvIMh$L zcF-@;tJ|V}zj7UJ%U|~%B5`60&8ung9=m}k2|_R0ek%%2Eb&V4In#Rcg%S+6D8YG@ zpxw#c$p2Uw(ZzmM_a9l1OlR{F^jkFuXfDB${meaKKq)CS#nE;(LkI9 z_iPKHgh!nX!3?U-L1hBO7A2j(RQQ(sLbiceJ*ce8sQWL{xZLvgPwe=18j)bYh{s)RG zGsD$}m071{6BgSvm+9;RMwpys!hR%587uad*LJ2#rKDmXlg4e`a{mJ@Fwing^I?Hb z^FTKJq&cyXrN`Fl8Os{y$>m5Ko!d;j?3q-KUOB+*n)4=UD3A|T1jE><~nHpps5VVfl~ z+HXU59U&y?(>xHTWHO0ll_g<$Jatt&GL7y~fW>4Zag#`5&2S0qR_zT@Flj+5PXZQi ziz|n;$VhTW2LK7L<(AN9znu>Yv+Jvxug*FU2gqVA8R zNm}h6L@lYWMY3-4UTnZ7USt0v+XB4@(Cnxfwm?U3dTT-pjOKGJ7DS<>8rL9A$9+2; z+YZKft@IhT@Wy{(`)JGlzg2rTw;meC`p(B4Guc2}2&3;JGXCWt41QlwtL_6@NzJda za!DBX`#$?O$}3)d@G|*8!$>0xEtA>`gyKH<_v<0b`3UxrH-);vZZamRNo-mLG1jlPoJw+aPXv= z-&=q3nMM+`Q+-7Otuskh&i-9L#R)c0-~fiscgaIpQ??7uyXG@Z%yqzz;z8C9+sqs6 z_Jyrnvb{4ooKPPU{$$4p8z~D;>_oAs$s{V3BhnGY*hx}*Xp8P_K&AtL$)0N;W8Wt9r%pRf$-tJiaQ~e0&vWJ5Yx1`@KQSpfwo#n^a8I(9H7i9&le>`xG#4DH?Nj8|x)_gu9ZQrvx}L`;htr-7 zWpawY+HOEd;InnQM&}0q$~2TbM`@@yPflkn#J-uNK<$7qWU2**WoJ39ezn#AGxmf9 zU^+&U^ge1~xPrGD_B7Y|BD&SyP}#!O?4Pg@)}f`bHmg#jUs9u*Yn(&i&=%}YV83qz zC@R$eh<=fQIPbcc$XRTx?}9alBSifq#z$-_GJiF5`17HKB#I&CLZ~zV=I`DiIq=d# zee*a=wL0g43df3CXRKC1Jv&n8NL@IJ25!C1f&74e9-qK{)RvG!P7P-52Dt+i`3`J} zm7)VeOy3aGe`SaHLJ$9A~1$u6`%CSdac)-DMm!unZ()&Edoi6H3Y8o<8=Aa3Ln=yzv3#_r`02*Lx zU+Jb#RGRd+q}2LM#&B>@f)CG8jB!AZnbL}Bw7PT@M{(3N7r<*n0S#bpQz~oOM;Uhd z;(Mk(;`h+oqK|#<=p!aMbZOrAkwH*+Q0rr)&Mi>kB0DtjLytLpKsD@>G z#I+giYL>175pcrJ_uqF8zxo%0pQP3NFWHj^!jmb$>I{kSuu4RemEx$1A@+KPSPbpd z7@{y{#{5RsI%6z)2vq3QHh5l@`MEo)T7m#V#2QO17u*bcc`b;WVadxtjff>&C=Lj<+In{Oq&=Psf`YJj(2!8U zqXeBoM?r)JR0}Ylp?dV&1z*20cve&-54EZ!fZ&UeTcEZT2pnm9{F7iVJu#sQoKIW{ z#WLFbjMscKeoQ>_k&3eI?5Q<<;(AwUv4{4!1rdUoMG;HGuJ#BwQ?Cco&a>7>2uO%Z zCYPdS76t_lP3g$udUff|(S~ACw*sQRS&))JYda}VZ--IOQv8JhpD}Zs=%Iun1X|%_ z0SXji9QC+Iqhj*{nt?HER;XTf3$PYwoiRdzQF9dn3^Tz~5D5Ydg-bxSxC916;CTtD zp%_(GnG-mGXq($l^zgKs!mOZu05i_djp%ZAmo0HpTJB(d$aVuQr3Eicd{ET=Qc-)5 zBlcP%Oi9r_l`u^C6H&~E;$`j#KaH-1SLEF1+y@v&Z8gz3={JTSr(B<6w0 z%P?;WdbUA=MAgebFq%+V&?hN%0_RvAPt-e|FMw@%Ic8&8{_|mpX>IC?k+lS7mccLlS!Q zmk)6?t?fObZG3DBPrJD#&hijYd&7&Ft1(qGb^f7sk(WyL_}1m6WxI=ZiQ3Y?nLNqi z%A)Zl?ZH^wWCIkr3Wd~84-SnFmN;rojq6+xG4C``!FfC>;2d17a%14kd2pnjK!!n8 zf-`4B`xCI4^f9s3S+HE7WDk5^LrHI>ab@v(a_p7ov3IP|nUO{#2s}=K8NLCU;4grj!tBWAc(_sJAY}!zW*Q&`l7o^F#d|ZL4~-L? zeB(Y(`Te1*i-vjhQ-S#cD_sH69Rnf=!+wtgLq*AbUKr%#SLmndI?=@)G~{W&uZDgT z>8#)eh`t&9UC)F2eA7nzvS}14I>hZ+g6A>NNH#=}cPX-XjnJ3-H0%24ry#Ur#PDb- zIAE^8Fj5*cmIR|PWd$b&q8KwQxLqSW0XeL{B?ypX7vRYN)CAEp!F*`N+U2`VP1n6^&U6vKL$^?K`TNP(!dsXxWEE#e_~O$YQR& z+(JecRm9mJGG6ap$yvF!;ccw3k>#_a)y41mP0~z}jW-(kT{y0c-=wkl@eZP9FZ5hq z7|;1BJoQHKN$=wLMU}VF^a9tE5e*nDgK{opw&#km|AHCuGP(p4gc2Oab4hxaIh9af zBb8|noyF6;=3T~MLz7aNwxJ@9bj?kjsLbQ<$WHYMsxkoqRP{JhI0u=*X^>We7oL|! zP>NTC&C_vH);o(cm56~K)X}0(C1MC)sndmT&6JV#3B(v8#R?2A4S7PU#i9y-9$!cp znRbR4vaan@*~G%vB~PqCjOrb-vOJ*mu9$|QAPQR;+w0`~u^N>a1@R$#0bB%)NkEiF zry3P#oI*L#emL!&4fGJ2I3QyzKp_WU$y&2u0%}hD!pKJMSJ%doJw^BTQN2}Z(=D)E z2=FB``Bm-MbjBeg-0N!(tc#*9$PU9Q&JJ$g^?~MKB?X^HT&gOHOR^ z98Tk9ukT-7jS9I1`!3s8&`=Y1MC z^Y-FIg-b|$6#p?~V31Ygyn^pwDUBBj6W5GlMkj*EExbdq-oSYbCWT+yYRJvlw%!v4 zQo`ow5VNN4utl2x!x1O<^(|Sej6|3EK%ii)0-O3UtuW>mf)JQL(Uau$6tRTvR3(zb zW{RAe{<7%T9=blqKXc6aomK>FFZOZ2SR=d0V)cx8)?|inv3S=Y|A|A_WK*imVqjt` zPIWj&8~tP1t`pg!#v*%xaMu!54G8jbVOuL8TW%4Hj@N;n-@7)nEf)CB$H4aTowl9J z`on42Z@{s8+`@TiOJ)lP21HAnDPfl9T8Jm}D^R_e zd(A*qLsVUWdX-}Td;F63(6(6}8i!y)m%?VaHpI)=u1F_*%)4mCnGx-EL$s%NK+R__}L6yg(1ARxnyuDlXFZtP;7w1AReph z5O(c6f*%B)3sx0W@Ui!TFpb!L4>mqw52AMS+i@Zd@M6TpnY=iF0X`q1^u`K|<06}n zrl_R1-}$+SQ)fuV4qPzJ@yp!1>i&@K7mIske+mL?zd#N?DK0_Lr1>5Aj?`#4P!I3` z{ZK^49y_GLFDyPDV+=%)(PMtfbhpBd8vBw=uBns4QB*dJxKEYH4C-i-`^(7Vd*dn> zltlm3M-+)clM6~(qjEtN0wj;!(xcM+($)M<4Sejm&uUNe$KH2NPqcG)czKX-(~!f? zm6F=^pkb-(sfe5uJL-QfNtH@kPeYR{*U1EK!F*`eSk4&fn5YF^lQ3t&@&tQGcCO>! zHA|1I93mC%p&_(quWn^&Dy#__b)1WSc%CR-KT=>gE%MWBq7}6sFX+_cmm z2BW0;EOv=M5hhkSHkxXX?T7aW!URJ|NlS|pVM0<{s@ygJ4EbrwEd&rPQlJax$xJJA z*r0=uZW(Gxe#mF2JwD&;gS?g@@bwU8Bg&y;$my-HM|0rx062@nuHuam?5dMe@`BjwcGo;Q)zG9c5`p=oyR2tfw%8qid{0;e>G*E;+5l z+5|=f%gvCEn=B`b97M*CV~GXXxRwA+JEE`_Y}jr^G^uWDP1{iCEgoBG#?DO6vkbi398r%lhS+FB-l zSijMwECFEv0^E7Jko>V{Sn8)s_s%H=4^H^9Sf9Pz4_=@=th zEqmZ4r8z|G(ufWHwd`G!eafo{AE*$o<%VG=XC7f<7U~R!9qLe;sGlR(whhJ>#sp}= z!84vGq%SK717UXrsG-OJ-8Bwq0CN;brKftx_(cX5)($5FBZQl?Q4$C_v${@(wFqsG zppxdd(HaC?4fPk zD1q}~F40qZk!mDM*KpN(w-yU154{x>C*Fb_4d?eGGpVNne>S4YuJ)s2$iX1ogm$-n zbQGv1jZHym+fjlEF0JG0`zbTTl%q}kYB{Z{+IKn#X?u&a5f_-YKuB$|-m2rMa5d#lqIzgUKY7$l$+hATLO%~s@aBqE6!C&|tjJrdExghSKV z;SE9I6Qyss1=IsW4AOag#a=`i5RnrB=b(a2K$S{Z>)=+s(h5%C6FahjwUSbNMV2P# zH?NnFNj0~;bK2jkqtmoF-cbtE(cL@iXwkhE-4poiDIZovp%05yQPw$PwRC^MFNQKu zF$Qew;C3NZl8^LeZ({blCXRDcM{-KnsZ3>E7&I+=OCd8-*pA@B%4TqEV!BB8jc*JG z;wX4eR5XC9$|$|4WsH7VjVh5pg873Z_&K0yVx&bzQ9|>)iBU+R%kPs2u)NJ< zm#|>kUg9N2`TzCv6no-|NPmvM`{;m5s3qki+-fTZtv^YPWcFK?|m}QrepF&_siy`HyeVRDdozfTtZ^UEuQbfzTA~hdsdF{X4T*l$**C8kd)CY=MbZ^w0sYy0QQ@yx z9oGGHJ5AuwasdiF8haicd`ignTzCKH=q!UEvAJD)9(hoYT_Uxha&Jf<)`Kgo_2`A~ zzCVNE?2%_N|G&8S39HX6>|?r=`!6BNFbpJb>RSG@7Kk<(eKm7dk!kc5MhrMBTSBvkc_N{NJ&_^}pt#_>_FmM0OTt5Fg$a;}pI*Rst3vT*Z+9)aMO zZA~K8PKjA`f-`#|rs1o^;ZWic`e}VywZo&}0xwY}Mqbbi=SEt)g0zLCy0m*|JQ7L? zLvS2i3#E|aF48AuC?y#Qr6f85qQ~nOrHd6xNvco^b~=Pobfp*yHeKu09JlD&d)~`8 zML1;^(*F%wiU*HKLv(*NjhjW%SY_fQ?CSNC#zh1(di!TV$ zB>#SKZ9Mq2^+~~&Rr`u1(nM?&DO(O?Rr9GfJJ2JeduTowhJu~V2QqER3py5yI#Dz&o4ITEjcyvKF8hjUw)%{8%PHauDoS7&C zKLb>~a_j4AySTpl!bOaAN8=$e612ns??cH328LOQJEWLs(eQW$-HXlUQYp8uuNr zdK|ljX!2^LAhW)Tocr?COVd3}dhk*~7^)Tex(w;selSmIYuJC-6S`9o zx>U!cI^L(vF!DF#&zRK>W6$~k_QCg2pcs_Oc*2$Y)3XX-{ZS%+{`RzxyDC(lf17q! zkOZ&X^RJl>;xi(*Bu?-grb6T6V=5+phA@CHw2?JdUikU5x1V_kA6rH*|5|iQ#@doo z`3K$)2&>;7MSnArgLnHXKJR^JZ&rxL3XT^^sa87+ti1e%uYCL8QvhhlcalROVnKg1 z{|^y?{{V)j(o(#nk#?KgHDICuAk&I_`o4rp$TuGamp&II2=&uUlVLl7MHHdmhXjcZ z*vP-lrE7ynMOT2Y4e!(LZbN%#@E`SZ|KLA(+V`WCM?Up?cfWk^Cm(n*>fS2_=ryLY z-gVAuSolDj4YJ_TSz4FDj}!oDezZ(@K2}H!;k4w7b7Yxr#3XNUFCE6V7I2bMY7}>7 z0~yy@W8oA0va#_+oMqc(k=kGiLTF4rER52e&b2WfqDyZ7T&3 zlE-g~+&EsKLF|7Cn{_wqK{K?3tKu~CNgh!$+VUWOYf+0%5 zR)9f_jUMxSHv)#}0wKHqfRT)li^z#VVq=>&x#7xr<`9K5bnD3RezkbQ2{ zEObsaErs0vZ9l4jIW_0Y7X((q_Bcw*`tEfeFjUj-Y_vU{Uraom&y~No&iDT=Mi=2S z_43xK6KJZ$!^K`&zP3KKDSOYQmqn3k>kEF>W;yF!`;2d>@C6oG`>J~Ns#uZetJ3yC zwr`JljvOHpYD5vK8bFvo1@pcTt)F0b0ALd%Gv}gte*;%4OTC~qKdCJBj?cA*nFUcP zLd-T!;FezKlOPC&F5*ZkODceH#3no1GAD*iZO!lHM~Qb~u7o1qxO53k0NQoI^FZIN z35#s9q#L+`#X(z`55QJH>SSqgxEBrCxX2W4u-2%!HE~TZYgrg*Oa8HD2!)kR=@J8X z0nJH?t>IKaz-iA(IeO_bEQgXkHmPInKopzhC{se&0}3QrH%v>W>I%Vu*fT!;*xq(X zHKJ+CPL8T$rmQ@MC~zRC?O|l9&^J`5EIKk>Y2(s7rQIK&ss>3fMCI;3VhwqaY~;u2 z02mmRDrknne6P|MKtsI7o>&|B3)UQ71N;nzTP|XCs<`CWlu7{$TDpOphM|a|O{-1t zasK5^w4n)|fa&2v5)7Co<%b9nS!e_yh`|!5Il%Rk=9Yd*I?0|fspJ2`f$=rUnGg?3 zK4C@2eHM&Z?WjT?z-`Q7&@H$r>=(U(Mh zVM{DpfJ`mP0mwxLtx^CI^vgic(bOyiwFDQs64~7y@)Z;`Yvy0(Np+DMVX};OoB%$Nu=8ymm&U3wuEr1B^2qq7*oipED zX&gzugJ;k045H&DL>{(Y30r3pYzb4y^amdEmN;l_9zklvMamn5qr6Ro;XT$F8#|_u z$!G0JYfG&KHO_D`k@l9`tW;@fZuumsso=ziYweZNQ=0kmDz0!M#YF8xxx?5Jpz*TH z{%6umD0JL(c-ks44Q7>lU9QTd%L`YGI&gYbM<;x29wxdwt?BOM1YPsGx8THsd5lna zm;ir68DY5`bFQ^WJtr$m*BgyvOG7$}j2M&Ay%y-bw4@zgmI(R$DB&mbfem{rX8fU& zH+8PCNPqVSki5eQ%qT|&x^BypHwjaY8^di*0Y z9n-6%s*kO@2*~o+X_)u(&0z!vxRcx%u+Npi?mmt9A)&&!nKz7-^nEkG_}V^Gb)!uX zCXd$9?n3Bzw|AeW!FW||z%OeW$Vi`KaE4K;${%fBLo%Jdd*MfgD+E}5OQb|-m2WfK zsZ`#h`Kapv&@hq2c<91sdm` z%*`hj{hL4dDmOF!`Wxy;{?jk8d!wp&;1_;iHP8I3fAvwWr?2UEEZH-^IDhab0e0|! zI2c8hg3kQ0kw>uG4^bq)B>&7^`h6hDpZZ~4d^Q<85#&JWo{jv@59{$?%YVmy|0x5d zkLbbAq`sVNAdcRNcQN6Vw@*H@BC&ZYx`TvCsWD)AR){NMnOv3~0C93ryEr+x%~UyT zvW<;P+3@@sXd&^^yMm`ph8h~KHzQHj|MmNoN)yktnrRY8ElstlZ)$s>r=Y8BmiGQ!?WJO7#twE_>JanrijgN;sQk>@I42Yv+AMIcHO{EL zvCspWtox^lf9QfVk~IJwZ=VM zM_KF>O!<*a^!TQlzeF@8ooyTA>>d!z$^VnU}x{xoP$`^ki z1K|qLOlHW_nnm!|KwD9yxmyQK(Idr_Cj4NYh{Z)2tpOi8QryU1<|jac zxUnH_R6e3KAzXy+KAlB)(LB&*NNfU%+bT!)ize}OK~?c8=bIv`s1y=0Avm+w<1HO| z%^H$*rSXFjl*n1=hx`070asEOCLMe9`>lAY7EDgV_i26*zfbN;nx}7yNWM4e*l1|K z9FU=@<5XG3L>cu{F7im|s0AT3!sQC_HQo1=HJ7UmsWBHVt2v_2R0Eze%vC&_iSzKc# zjU#Pqh6~AdanP8VCecgs(`C5_K;*`Gh@!1mwtA#a`N+_~X1l_Z4uG?)x3N}i(e_9y z3`eb%9k+16x1bz5o76T~@sX___z;kw0nsV08bvsejge(T8UD#~H*%-kcTN2d168Cp zgih@a>`-IA8dC8pl%rcn!!YFJcN-f$Al@<$ogCK>h_SYQGERHLcZP*6Xm5ZF0Bb9X zYh^>Acm%c8dEe1M^`ft$n*>sQm2bc|p|5mO1Y9HcLcGq64F6#o4gZmy4nGWBH7q9> zpkX;{WVn*!^_{D^O=H=eR?BFl{=~;Yy+p5BjAQSxOI@GBJTka2|ax>EJTzTTk^j<)5n47)&y+n)Clv z5ay5;bX5%1N9U*cw17-kH0?%8q=UQZD@-1=iSA0F5?|*KjG2vJ74P{bX%G?+HNjNq ziiBeLL(`tzu%-cKU{r1K3;*n3)>4Flw+ns?J6$n3VW)4j^5(T95Az5iCciqvkH_Ho zumg5)@PDXfTd+Zy1H9w21RaJ=mN9Mt`e1c6-z()4s#!%m8*3hBJ!-&_{J^KU#E2B* z1gZi?q)R=gp@sNPd_W%pb_j- z-h5v1i$QpbnjDvhKf<#-tIA7CCOMg8TFC^vuyeevY0}vV8hb2dN+_nd)-B4N5}i>C zhG`bwC>KwzNT!%B!20GG8L0EAQURFTiv71fb6tFEbubX4Z?X%nIkw`&wZc=vx+lSa zPdGmj)>)`-xDrh!6(N_}r3!ng!Mp#FdLLF((t9QH3wr(;-58O1ikadC*XAo0ouf#t zdt}Ao5!Sk=N_YUBv?xrqnBx@`2qAc2>cS__l z>Ilo>6!;Kn+4Tr!(m+efRPN1pYku;?o1z)J>z&S@)g429-nCAbulspQga_8+xxKck z08?Y{k&61or{_XNzGOm4#RzIm&f4AlX@dEank*qIKqMDLh8Zcu)%$1ayLh^sdnc^0 zUa8|M>Om`DMK%L%!#YuAhG>qgFEav}3#LOj-7W1mqXZKIixJ;s!ArArt ze=~UYAAiF>)(C9uV`N^nV*~hMDB1JY(?)ETCxAwI+&)I}g=u<(&mj6C?F^U`EA?NF zy?xT`tQA$gwYT}7ScQo{u|=*NQrO6UWxSbKHKUK!5qJ;LWr0xs9jo~{m6Y3oO^~la zBbOwLa{sxyEOKv(F4q;N$(BawE#_Q#rCgEo=(tKSit=c5< zLoE47Cv4{1#}xCYL+?z;ZL&-VM(hKE8zRbO5k|$20Ke|byGD@(;g9Ud{~vpf_AZ}m z9Ca=#Jh-&`>}5%ZKxCmZsh2Z6En+O?66L@3^8b7-fuksAyb$HL5fRIgw zp|%AK39t+wWz8;z4+xCE{IYE@n&eFAyeo^=2&SKAY)iqIRWsiu!=Hovwc3zHVZnb! zy|P-qE*o9tQN9n-#-~*W7Z+c(bjr`xrbn%1Gjo8JK|93}_`%EZvo0NVg75_k1A)}8 zrNqO$FQr%}>#!;LMW?}~)T1?i^^#sJVVJeh5>up+F^!q|R=@>rQzkZbvh}BcS|`<; z4n=D^#7)r4ZP)$!O%_+IcT9(y^0tH<$M{;>^H3jS&7``8zm_%WO#s!KKt`5J>Wzza zL8xJfS(I;}%zXe9ZNB!aq7AqeF6c4!V(TbkGU^Gf8;&!x-G}l27jjl8GGw$Pg|gO? zM}iU8R%lbYLyZ{V!l#!h)5rmH0w68=(;9XJHmOk5BNs!_1nfK8t6|AC_|?ctu;LHO zgi~69FaacR4peCJgFZX{g<)sTjz)4`+gB}->|`SaIx7GSB0~T?QgCH{yVdrC>xVs; zdPu#)tTzK=Er17zfv*BLRlP6R4xl*}$&`b&un4HYh}jfInX%5(6H?V&*@An*n5Maz zRw4PzfEPnAT)iM1I2f)uQ8>U-q7@F(EdavaO%-;kv5BX*mqqxL zLSn;?on)t#5QPhfY-n!-cqW8~@GCpOY+s7;ydDI%ixLiG8i_+ty~I(gB(5nMgPKxM zbV#ttsRptL2^f{2lx$sWrvPEtt3ZwPKsP_grymSi-^|nEp+cOz@t|m7ynH45$bLE! zIqe$E-uLOL{23`AM*E_SNdIM1NWkG()#1l_yl3O^hFUI^p^_NqZS zGt>ZHElK*C;nxUEN0n8NWTOl{-ZQ*+Ar&&QnpHyCLCnB&8|h0VdWLFAsMS|U47Uno zRCpxX?E!#n=uv2g%t(o%LhWMxCZqReh>ZDm2vIx^krCB^kuOAtp*B8G5M)G@-2-66 z#8@lnQ&bgrf|x9LD*4aI_q-JDkkY=qXGL;0K$qmPImw-svEPyUlklu`jdskTa+%gR-M zOKHkLjU|vQC(jl3kLd;!Fr>}@=?3FrOwsA1^g+r0*!+9|X|C*Jj8w_j^$~h(W8(~d z1WbC^Kk{#1v?`&JD0PiiuIhold%?evBlMCkhY^V5xuk`kM%Knaa!i+QKsd2~wkFbt zo@rurg=!_H`Rp~a7*dUa+Pd`ArrDs1xRQ_-kxuEOkTD=OvC_G~M9^R#tH{*0w^91q z+fa!l;Za*CB*W}Auf~C1s|m(?evKY^a|uro1rRe*t3BsBfBE9W$;VWP=j_w55iTiW z$e@Jj3ywyXI^ovT%HiaNa2wv*Q{FzW#~^pKus!AN*Ztd#&-WwwIl`H3RKZ&*W13wts8c~?H6F||JP1=ry;^DiIhNU;rqt>LnrqU%ST^Q4l{+pm5g#gz& zhFP!&+%iSeEbM_ae2R|8CMfDoj|)qnyxFi!LB53rHu>SbHuKStLX(Q#1LaC{TiEwC zxqw(%{Vg%3nhk$m;j5kGDCW%EMtM*iZXm}%JrZ6A|5DLICo_Q&;HiaJiAu}Ey&eBe zf!4|&N(z67XT`uq4J5UJ4Rw_R8;$xI*g&o@>IaX0)GycD4{T^%0~_)NiedlcfsGug zczj^PVOXU@tbtA2!mv;lW`g|1zy>`4K4tK1V3R<$eWIx!*idURu)&`hAJ}jJXF0GT zS&+}_O)4^uQ`{j9iAH*0k{@{${8&;&HQG@|2X8zmsHD61=qX-$BVpts87ckH zvbfsvY@%ruxe=8Fq(_sZCIK3Z;N`$^;&Mbyw+!qg6O2v4Di9*jg~(r^qJa#}{J2zy zCP(NiR2!@^3Tx*`Co1L=@0c*#q|k-#?~sBz0-G@5#f}0rKhcq~@!nxyTEZW!K93I| zmnpr=A+2=`KFK0FX`@JulWZTWLaemW11TL|O(}*zZzHhNDh12m)guO4z2?Jdt?eQP zu@@}GX9K(KM7A~s4QjH*U_!Fx^GSfUE?Y>i(5p=sxDpe$OuQz=4JL>e5wcRe6rih( zSv7=_YLs}vAmxyVs29x%_cZJ!2zqPmN#ndM0TLxNsIpJ(N5fO#WAvsiH@1i#D1_2H zl{Ia=W*q4kaG{2q<#>%@v*eem6*~+q0FqRIV1a>$HYzk}$`A?;RF>GiT9ZR-A&A9* zXmSus13nw3X{@?!5Np)1XxGSK=(s9^SW*u*o(LlVVNa<71@@TsD~2&qVT`=CVqzD; z(Ac+K#G*PjF)itG?Gl$wEp9*+2$yhxCp1Wu-hzfU_C?VI{Uc->JVr~vK0=gv4TM2a}AywOE!&5CZgKQQq@EJGRm}1gr?H{T=_uCnny}@6i1`E{opyQ z3adodf-g>s%&@SEhNAz8GHLv5>j8+u8&n1mO^lD9fwmeyYj6jg{;&l>Y-vQc%cG`v zg?kbWz`a(#l=g>FxI%Ab7{zxN(kN?(`UjaES8ce^mc!H|D;L<&zvD)zlIZI7Y`6Pg zS`fzZ03XED$7mEZ0hqIsmPpWoiDEUwjDrft$iqhEHn#vPnUfn}CIYsbBDJTNl`U5TmwjlCeqhIwDM8k0x z0|K-4B!dRGix&ABx6BX9%c{T_wHUjz606n+5kvA3%%VyKmzP>9!(CQ5T8;QC1O{|z z^%pg6vh9Mah&oK@E%@>>lp+jJjXNxr7OgPxBQ;W3D#fg&$gu#t!vQm;2#h4Xc z+DCoC38Z2<&R7O_N^*klCFSC+6dm*0 z43u_s-n=P0NGX7jGNj(K-;|=|KUaPWKn5$Ws9fyd;V-ZW2lp@hCy{KmdpfmVD6Ki=ah;sn6o>C6CdN zMpF_&r2^GNkS-bD!S43P4=mJREgB^Xso&%e)TA(#7iDS_)-XBLtfCjf2^DM-LS>>< z5ORmsp#nM>no)yhG{#{OgNz7a(F+q9khn<*WqJxBEMYUzs44=ONn(gxFZ(gF1`E0TU(M7&=?>&h|eu-w3e3UUxkE#K$66I`4qkw!IKl7)>7&18BQa72Os{kZHyD%#< zq!xNBjp|LB&CVgh7xVPxi`k&v0)BMaVtmMl_hq!@aSw5yARRT@A3QXn;hZh-9Oy1-aaw4bJoL41gHRWW2K${CQ=Q9B0RY~kWwIBIT>b8&0vSzfT zqQsLB55&>|@2V)iBbVP|JMuLK zs~#KjTzFbFv>BAG0r7azu81|fh-jJ60bW2}z>DT~ zGAk)-Yj|mTyf7*QFAy2VISAiv$RI<3v2&Y%F&{Z3cOz*qvf^ZdcoIucnt5-zhICPD zOwfxWZ94eZYQi3hKTP=r{_#00AQwT?*|HGIkEX;%KqMR`^uzelh@7=VS>%IWW^G-k z>ZcAivDFr7=snrOddVcKm2p;7j1-mNSbI%WGtoB1Z^jV9_W20^C{BL3ozBqvGIg$& ziW;+lj~O#tn-JyK5n=^w8X-<%@x;G=jQm)Z>Ly2J&0$M&>wMCPmj4rVm=c!_l?yxV zOK?_37aCSv#3X2W3%5pZf6b)d+mi8;T2bVmu;X zYn86b`iNS`uYC9L2~de#CPD9x#vc@Fi_(~>kz!W=lQq6EOy??HoIhkQL<6`dsk5g-!b57LE$nhglEdN|5t8l12K_8u* zS5;3AO4No$OQcC@sPL zzo9j@r!!qiqijIOK4)-b!Li~;waDRH;=^qw&7; zW@13LXVGjL%@{BW*x1Ci&0+|vt&yHR2fNV@Q_9Sg6NvNST5NLsH z+W>(yW%*hHP19oXk)>br0sY!EX$iRhf8Ki|X|Mwc5Zm&5_rANHbMCq4o_p^(nt7F8 z$BA_36WERhu?s6kY?VVPEsMODxp zY#J!U(RHI!*b{S!13>0ARDe#3RluCcw}j3Rkf9=SC(CvwGFj*}l&vZT$|0*`*__hw zJQp_b!QQ++yG;5Qw;igxsl;jaHw`f|AJQWrNRSpf0cM<7#0%lh8rme5%U78c;KhPp z;HZfYAJ&&(h1dE5&g@S|G|tbJ0&3^XUBJGlQUJZ4)ky&i@`#})1&Bl-POIp;qCp}c z!GnN7-O@W|l7g7foeVh(f}b_ z)m9PqT|yG+LI6r8Au#6Ni&GF23XB~|127dB<2Ec{OfvT_6udpT;~S03WonCBC%UE?st6v;qnXbOnkvs{H zpc@0W2fKDIKX4`tw;=4)S{!s1`Py!(*PW*%t0;B{12pD;o(i&=mYg+AxE!p2y9r8V zCWOxA?F&cr0ufsFi|Da3K@40%ECBHi@wg za5jr!78B6Nj}2(U;%##jgtZn|oY|%Y`L>8V(?OO;lsNON6T5}>gT$>&fsnRD3at~n z-4q}b@tYZiu~!PXZJxtSNa`FoxYGa&A?Tpzm#;+{0I7VIz|y10*>t@=+l3&kYT!-> z)-&Q&SxAloC+QJ_A4yN7&CoOzLgWrWbZ+uQC)SMAG5EHLA#U2sszwKX+-aJHwWJGq zr$JX>Ng)mLJmLZk@R2w@GAW?h%`O%RqsEb$+&>dj}kJ(iBxg!ordwP=5W8{et z`Y{Sd_b z5*f%sWHi4S8P2LeW>#s*Niqz8>@!GnE;#&(%6eAl2@6$%@d-F)ljET8ut?RC)?1r_ ziU7U2qGo`N)p9LRUnLh3_04LsnsK7mVFai>;10qWwVR5H-DR+Hj$$?dFlZq(TP#>G zrfF?{YbCdU&0`{}g~}idx)}>I9{p+LYqMKh2tW9O@{owN36Tg_cl=GiW4jzV3s2GNiTp)BDn93K4F1mX{+== zY`^nqTC57crfINP`XL!SP){B{ge3#_2OK4_8%(R>)j&ernod9YWh8s>bcKHoo#*+L z(U1uma7mU%g@gL@EH16kE6>w>1xOw2STijCOP=4$;=j}KRZdkFe6=V}v(U14>&0;| z)22_pT^AMDeQMJH4d>AElNmIS)ev`bs*t_z#BUANgu`I1ktE za5j(*Nd@*&W1k|0fTeOF>KqM(Vr_*6`zIFCV~-(WX~bt7#HfLelCa^XrNx$bQaec^ z`w+=Hk{awKB(>A={1KFP*a`qm&|2C?#C-YB4^>gvdP$Z-vJYyfI)Cx;5hQ>5b|k<% zOd2}(i$xkktJ<;Gk4M6FK#8V8au!7dlu+&t&6n;(=JfIzKJ1Vy?yU3a76;xmKg_;j zVv;+NVts4cQ6U6DM)Uh07JVX$u2OJot|64)_ z4k9k*Iu3)Nh8FxbFEQ!ozrr%&jetzkBNAI@`5v@%mklWIc)WRDoB-Z->V^qs*X07= z8<|=9uy<88e7~wrn;NO{N)nTW&M9sDPs&RlAilX-0^5c>DTWesG7V&YqyfIS&AIfyj=}<)Y@C87G|Ls zf6uawNbl)#AULU5dPqksXN8S-?1_s(aQVRfL39(j5&cu+GJ8! zAa1~Bdw zXJ3ma3KS|cYCs5ZV6sQBMMXOdOu$Ss`N_6ued}jfVt~W}93cZxAV<4^hogX(Mk4T~ z4#LicTOGCl?f2v!zsC)0bk|5y*V0!}4VA7q4196lO(SwK=fIGNT)pH(gza4%GcpSh zZ+7DPHK-nOQSR(>eX7aDZW#!KiEK1uPak>$q@r<9XC8NpRh(k^iN2-rz-pfQ6CJu! zVoxJ`#PSf#JyL2uGIq+XtA+$ZP-DA?FH-ts=u2x>% zgIalknB>6}APZI25ov=WKP2d5g+Mpd>{2;Qf}w6G3aHcPjZnu`FAp?0G)D|WT!;4- z?!$%Cr&49ly(sKY!xJiK0VQc}wl?<#2XV+4rK~a{v5BT#hD8z5k_O?}6)eY#(oF8Q2 z+Xet>pjF;!<|PS$9j@D#?aG5-d-VW90Hv=9df z7UK=35YR1x9i7F^8qz7=K$+$qQVM-r!w-7;$Q!S}W|m|^Ql0z7UMBa<1@TA%2h?S* zVGXD>_A?UkBBCE5M8y>)3ByZHC!C=H6W}}p%SK>N6uo2Loc$+s2|JP<3h=;lXb`fR zu~{X{d?6h07eQF>aatJ5kf%3=E{SVu zpVcBuYm_5$Fvf-858HXDg7rhmz)G4ys<49r%Rf%^jG7y&l$x9-5OX>TbE#fqiSR+h z!d$9n6c^egJHUiH&!8waf=dWYO?CX3#0D(NP)CQ5DgrOsP-nn^<*wzzVZ(Q55O)9~ zS6JYTG$wa|U0$UU(8w!m2I_th0sf)kxDZH)WF&8#Fk!F*5fnF|v&Pv<$I2(7)*my`K{o=9`!p0kMAwPLm&V|HGktR07lpa3rsx$Ea2=v70zxoW6o(7>jaqfIhBB> zW&ydg$N}CXni4Ao0jL?@7EQrT(>n$lHa6darrrcJa~fpe-2$>YI;ug9Fr%bHbE$Ay z3?3zi*F4Mj>09bOeNV^UT_1~_s;eu-S(Q8WkK$cX(Hr^E~+pvcMW> z8`8_0g)xUOawds}MlASGhiEKk*&&8QMU#F|s=R|(r{IT}#~Wgp=K1=VtyuYz8-aJx z;|E_bg^K}wEd9i*7mseL7NVvZA`;XXBAkk_I%qFjWNuJU^KmRlO^ab^)ly>LV+yVm zVvq4H90IS5Jt40L{Pn9U&B+5f(8&XPk*JDCohd@3zklR%oUq2pQ{6phiYHe}Xg!XO z%0Uhvj*dDz%np+U$8!&d@)Rj<{6XssnF^ab(g)|(NC5jv?2(+Mrp0U>+(^VN$VwW` z!?Re(U2te2c@3H(ckW_P@Wtd(+8`pZItFmS-mlL>s{sUj<6+Mj%Z>sDmU$3RXpI9~+QvZBmU>KWR$N^}2Y#9_q{zW^_&x zLXE|7h`%ry>hV*Tct!4VNZLK$EQy5p(#$*&pIjOR)oA`Y|!(85YRz> zgapQ+4zNRLkr*W5UUBRtjz}epe};npECpaEJMf%JK7KEYripo8Y`>yVv6CsJrdr|*9QpC~w(`sLCG}CYfbzk%P`)nWk|^i6 z5MlidHMSqEp-gqO=A8-q@1SYyaY@g#Q&GBtQYohLf$b#Li+)Y_(y0vVHaVw(Q8PwW znI4`{wJR;u0?h!JhsuZlN|2Lw<%dYa_+NLu5Kw~lUezn%JJb3o()q9aP#ZJX(s8BW zMe<~x6#ikjVy7tGeDwjWGs5BD3}R@|QFQpHgXL_=whNP^xys0hJ-TzGvXkL4dn#9) zER^irj$+9!JCWJU?o4*HGG!I_*rgr$;^amprp#9qWxl2;K0M2%Y*&7CIFrv8vt6ak zu9`bw@&-dZE2Tv8xES|IR>_LH1Jj<0#sbb|ynbCqZTFBXZ zt@vo!T49w(iWB*qHEdfaoov~K+?$dh?=Mi+0G=uQ;7(NO8Yzz3U8T|NNT!tQDibU97BqAWx?=c+Nq!n1Cd4r?02KC)qR5lj<4lP4ss6_Vo7l_VxDn zCVK~ZQ@w+IiN5Z>p1$6`zP|pxWZytvs&BAA(cj(Q)8E_Q*Wcft>>ub)^$#W!$?jxN zvNze6>`x|>1Ibi!a3C?zJ{R8Oim)tBl|B~t^bRBCV# zO&mn^gD83s*#;4%DBHD|;s*?N;Mq0}3(EyYDO1>KTc9bcoFC2Fgb!e{vod1cg7l<^ z`|uRJ%XbGrLIY(hQ*j^%Y)e2nF6!jz3OM+^sI#;45|q)W#{>^S_j?&(;^t?On9_vj zFYzP?`(Hd`czWNxd~1;Y1jO5TqG)9tPxi@6H#}AGa7T0&iWMtkk*FMGXG&A6t-f?YetD_!Ho9LTY= z^D#Hyxkxhyzr@~|DGL+hBwSVZ`TTy}^aldLme7*$!pNLxtSQ=T#PnISW(Vh~^L-1n zh590MiMCWdZl0yD(%ZF;aHpEkyR{zmF6|52J;uF(|I=Rcy>7gr9|`{T-l=P^zaw$} z2d};ErX@@NwW;|78(;fPXV;pGFWL5$A0N2>hMPa}g)e^Nn~y&B#P|N~rJo#8jFwp| zy88x(R-e4#%u5d3fRA7P#y21P-jh$g^b^I1Hp$na)oa&nIP=n+ecIF@>~pXF=hfF-d*|oB{qUpTee$Uv z{>%DXzV#1}J^9pzO`FfZ;L>d$yWz$!e)Ve)|LtSneXeER{EIIBpI^Okq#7N+?B8B! zYCf(|T(WfA6<6MO|2H4{zj^bQ9k=d`O`AV>;l-C;dDT}Q{ikPt^y+{9vQ)mYGV!Nf z+fL~0y6gV0J^bCLo_pceQ$Kx6;>P0+{q2)SHf_G}A~Vn&JF)BKR|>^}lh?d|?M*ko zapatx6OTXf^fS-@^UvNmqFCG7_P=24KRvM6@VD&ytETF`{qb=1u)Z*$8eK-8Vd|>s zH(NqmnrE3?P2E@$3hDvf)HPk#BZf~8`_-noz9GHE^!sAw`KD&hjczec(>rw4Xz@2k zhK!}hZ?ndYUB_1+_w9c`U*zBax_*HVtvm->*#RA%7~cE)elo!prmv zjSGU+s~0Q@%?oZcsvq~?duL?6(S5tI?}sOt5udO6mo59oV|(K({rGylQT?{QSZ|Ih zepN;HG?1wl@`be~Bc`@!vwX8#=BRVE`P#zh65rCma&?zJrah!Rqy1Cl+29Yf=d>TH zhkY+RU;>^K4sJ98*jVq&;4dFdGaae{nyja7;_dR2hKbHs(bFc z|6BcsXMN;jH{3Q&ex$xln{)QXU;WzRC1xNLo-;o=ICS?Hp8x0Iz)d&bZH88#vSakd zPZYPk{K|#Hw|?ft_}0%Iy!|ikyzB12{>DR(_`{L8ONZ91J?ry#eg7X0nhO`T9e>K2 zM;|k+_Z@#iyf-zp{>+VA&e?h%X>5De-Z56*d&N~Bzw@5^A2{^%efLj&zfk<-rEQn{ zbf9F1u6A`+_b=7Eo0k~NgUfuYe5V^tE35bTmmABCc%Uz=R&Uxj5S$kZRBsv7vw>h@ zp08D3>{Cxo86WU<86h)ho@$+FM1o0u$hXKeBIcG21HI8+vojFdcf#45;(?XtEtxYv zxXD=7d|J~&Gvr?%I59X8UXxzwU+oL|&%#P8ru(Yb4li3D2vt9SY1`Ux$RC|OXoiyQ zMyz`1q}(}?^}*1(wTssW&RIIR&s-N;s-Ll8KyM0!{7AJgxv=^*wYevH^=EcWgsYEy z{GkI~H$JofjN8Ayf6!cMXxmQ+tqa9{v-dx6k^KQ<&}=!CsQ&b?0|$PvGI+i>kwfx`TC)m!I8&JQlEeq`Sn`Ze!wo_o!fRn=!Z^hJiY zZ}*T-y+)}%w_>9aGPJ8(PTzQP_3uvdtHxH};y!I(Q@fFioENIzms%QaH-aE(fA!X@ zpASU!s9uR&U}DG^DYQQxXxp^!+{j#A_nE_H9=#nSD^1HUHqUh;?|`EA7^* zm5GC^il5)!uHAjOec5Y=JCrvL_TP5oaR2LSCaH#QPcDyU2JUToG1ax8buh6cv+lo^ z-G1h)yE27Ul4ZXC+?Dob!tx-+u1XKY#IDOX=MDs`~KO zM=-}xzB(JfQ}9!EE2e_oZ&kxzb$vK7H>TRA=GQdUc%Qm#@kQaGU{GCPs6mWK-zt5w zS+xd`+z5b`m?6v)L(FUhkRYTjQZ;Q51J{7xI$d3+>1vo^9}=i@w0RiTNR5&Ms;P&x zW$J3=jUZ&8uUnx?VL@6s-o-vsBHD1cp^D81|p3 zEkDpsM zs!vhB)2is#tJ^KbKdLE)8nU!48fIX$eWB)4KdmjA6;)3NEDU$*3G_|VPE=0=)HSS) z18SGri*hy1hkmcr0_w{InhK#M7Ne-3{#gAJpQ59eMqD@4zeM?p_GjS-)MRr???zc` z_2oV_a0)h#`+^t+>Na>vQ_=T>svejt&{WlVYLlt^z7t><<`a^@4pXVxf1o{nJQr(Q z1B}^4DB!ED1C2fS6W1Piz^waPK0-CwZ_!N#58a)BENuB3Yn^8)Ol;8t}8j3k?D%;@#8Gk$) z{s7*gKAsMrk9W#X_0o?w{@mxbT&9x25FEC5VgcbU72h_IP%rgv8e6mUTJ#5#`7Teh?YuN!gh)ZaY5m8{_$F z#*ZzgTxnf#MSR8DQmI(ln3+PK@d|de2kRe2xvnXu6p`kO_;Ib{g`Y)X?AL4fUceJr z7rx?!H8<>~e-ZsZ5$Q7JvR$f-77Nyn%xK=u4O!!(Il>=uznAtI`U zfN`_~7)uy+K!UwD!?q6%om0q++3zprrW#|`+ZinS-85T@Q+VQXd@fN}J)2^%0(;u!y1 zk!K3XIu1`Sd@J6U)rAk@onzAbegNs)5T-t6eWpBO2}xUT(yahp2AEMtwWu_x?Ps`p-J+G@H-D}{2)UAiXZuh7Y+f&#JLy#IKt$sm8soax9=#D*H0A4 z1_bZb*)in;d_M`l4*bZH$9LnK^o`mqutq4E(2OZ-5@5A*6T}WNQZP}SD@X1QX z!Fa41&HoyUuR~P3K@@_Bu9lQtY!q4HI zH06C~co0A8!T^NrXWQk8d}U~8qA*#??2fP4j?R#^Y{$g0-P)7MPuLASrM|9zM>*s% zUfKVFck0Z%@GE#9sta?%@2?AofxG(jEeO|_zX)OC%qx%K`o1ilk^fAD$>Y57cnuf^ zX~he_gm=zcUic??XL;``o+gW>JXJXb45A6pj6+&V>tbi_PP?*sco(J(CSS37X0py5qxt;V{OpxfOLE1#TT?b~XG(8bm7Sl_7q4G- z{>@!N;#zaPgnZ`hisb;o&JzTu6$=%6ZzbN=lWRLh7H7hBfL5+xN;)RkSV1Ffz_7Pe zO6_=Tvrk{p;ZWmVISYDwe$m zqxbiKIcO`B%dKVZjhM9Uf?bMBS?$s(Y|CJJInCXTh)=iACBPcSjs+-Ev2-C<%uY}= zBq^_Tq{R16ZOHwOup|7AMdi~Ysn#lcPaPzg*WTm7sK!)~sD}Ew3hX_d*nm0>YLwdN zTG4d{yAArIOl71KTMN13c-(^zv@cjzW%7>vJ46<1V>=7eJ^+j51lAFlyK}b3b1CbP z=WfO{ZH;8gj@&h7=Vmbe_h3;np2?PqWp`;=W1GWu9nB7V(3?pY!*w7e$}6MeB8u^ELzr;GUIj}O{?n=%gPSNrN+AGE2bx+w^`N|O8Vzt$9AW&dEd@o F{Xe#-&glRE diff --git a/examples/snake/src/lib.rs b/examples/snake/src/lib.rs index bc51704..9cb9dd7 100644 --- a/examples/snake/src/lib.rs +++ b/examples/snake/src/lib.rs @@ -79,7 +79,7 @@ impl Game { }); request_animation_loop(|delta| match Game::instance().run(delta) { - Err(e) => error(&e.to_string()), + Err(e) => console_error(&e.to_string()), _ => (), }); } diff --git a/js-wasm.js b/js-wasm.js index a51a4ac..3df4cd9 100644 --- a/js-wasm.js +++ b/js-wasm.js @@ -5,14 +5,14 @@ class Index { } toNum() { - return ((this.generation & 0xffffffff) << 32) | (this.index & 0xffffffff); + return Number(BigInt(this.generation) << BigInt(32) | BigInt(this.index)); } } Index.fromNum = function(n) { - let i = ((n & 0xffffffff00000000) >> 32) & 0xffffffff; + let i = Number(((BigInt(n) & BigInt(0xffffffff00000000)) >> BigInt(32)) & BigInt(0xffffffff)); let g = n & 0xffffffff; - return new Index(Number(g), Number(i)); + return new Index(g, i); }; class GenerationalArena { diff --git a/package.json b/package.json index 9903d1c..4f3c13a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "js-wasm", - "version": "0.2.14", + "version": "0.2.15", "description": "Call JavaScript from WebAssembly ", "main": "js-wasm.js", "directories": {