From a547d5c2d00c64e828285c9196fd33f13f1d04b2 Mon Sep 17 00:00:00 2001 From: AZbang Date: Tue, 4 Feb 2025 01:26:43 +0300 Subject: [PATCH 1/4] feat: hot-wallet --- README.md | 4 + examples/angular/project.json | 5 + .../wallet-selector.component.ts | 2 + .../react/contexts/WalletSelectorContext.tsx | 2 + examples/react/project.json | 5 + examples/vanillajs/main.js | 3 +- package.json | 3 +- packages/hot-wallet/.babelrc | 10 + packages/hot-wallet/.eslintrc.json | 18 + packages/hot-wallet/README.md | 63 ++++ .../hot-wallet/assets/hot-wallet-icon.png | Bin 0 -> 129374 bytes packages/hot-wallet/jest.config.js | 14 + packages/hot-wallet/jest.config.ts | 16 + packages/hot-wallet/package.json | 24 ++ packages/hot-wallet/project.json | 56 +++ packages/hot-wallet/src/index.ts | 1 + packages/hot-wallet/src/lib/index.ts | 90 +++++ packages/hot-wallet/tsconfig.json | 20 ++ packages/hot-wallet/tsconfig.lib.json | 10 + packages/hot-wallet/tsconfig.spec.json | 9 + tsconfig.base.json | 3 + yarn.lock | 327 +++++++++++++++--- 22 files changed, 644 insertions(+), 41 deletions(-) create mode 100644 packages/hot-wallet/.babelrc create mode 100644 packages/hot-wallet/.eslintrc.json create mode 100644 packages/hot-wallet/README.md create mode 100644 packages/hot-wallet/assets/hot-wallet-icon.png create mode 100644 packages/hot-wallet/jest.config.js create mode 100644 packages/hot-wallet/jest.config.ts create mode 100644 packages/hot-wallet/package.json create mode 100644 packages/hot-wallet/project.json create mode 100644 packages/hot-wallet/src/index.ts create mode 100644 packages/hot-wallet/src/lib/index.ts create mode 100644 packages/hot-wallet/tsconfig.json create mode 100644 packages/hot-wallet/tsconfig.lib.json create mode 100644 packages/hot-wallet/tsconfig.spec.json diff --git a/README.md b/README.md index f450a35fb..f339be35e 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ yarn add \ @near-wallet-selector/my-near-wallet \ @near-wallet-selector/sender \ @near-wallet-selector/nearfi \ + @near-wallet-selector/hot-wallet \ @near-wallet-selector/here-wallet \ @near-wallet-selector/math-wallet \ @near-wallet-selector/nightly \ @@ -89,6 +90,7 @@ npm install \ @near-wallet-selector/my-near-wallet \ @near-wallet-selector/sender \ @near-wallet-selector/nearfi \ + @near-wallet-selector/hot-wallet \ @near-wallet-selector/here-wallet \ @near-wallet-selector/math-wallet \ @near-wallet-selector/nightly \ @@ -129,6 +131,7 @@ import { setupModal } from "@near-wallet-selector/modal-ui"; import { setupBitgetWallet } from "@near-wallet-selector/bitget-wallet"; import { setupMyNearWallet } from "@near-wallet-selector/my-near-wallet"; import { setupSender } from "@near-wallet-selector/sender"; +import { setupHotWallet } from "@near-wallet-selector/hot-wallet"; import { setupHereWallet } from "@near-wallet-selector/here-wallet"; import { setupNearSnap } from "@near-wallet-selector/near-snap"; import { setupMathWallet } from "@near-wallet-selector/math-wallet"; @@ -156,6 +159,7 @@ const selector = await setupWalletSelector({ setupBitgetWallet(), setupMyNearWallet(), setupSender(), + setupHotWallet(), setupHereWallet(), setupMathWallet(), setupNightly(), diff --git a/examples/angular/project.json b/examples/angular/project.json index 661711cf8..f0076d0c3 100644 --- a/examples/angular/project.json +++ b/examples/angular/project.json @@ -79,6 +79,11 @@ "input": "packages/here-wallet/assets/", "output": "assets/" }, + { + "glob": "**/*", + "input": "packages/hot-wallet/assets/", + "output": "assets/" + }, { "glob": "**/*", "input": "packages/narwallets/assets/", diff --git a/examples/angular/src/app/pages/wallet-selector/wallet-selector.component.ts b/examples/angular/src/app/pages/wallet-selector/wallet-selector.component.ts index 044eac27e..12d473622 100644 --- a/examples/angular/src/app/pages/wallet-selector/wallet-selector.component.ts +++ b/examples/angular/src/app/pages/wallet-selector/wallet-selector.component.ts @@ -13,6 +13,7 @@ import { setupMeteorWalletApp } from "@near-wallet-selector/meteor-wallet-app"; import { setupNarwallets } from "@near-wallet-selector/narwallets"; import { setupWelldoneWallet } from "@near-wallet-selector/welldone-wallet"; import { setupHereWallet } from "@near-wallet-selector/here-wallet"; +import { setupHotWallet } from "@near-wallet-selector/hot-wallet"; import { setupCoin98Wallet } from "@near-wallet-selector/coin98-wallet"; import { setupNearFi } from "@near-wallet-selector/nearfi"; import { setupNearSnap } from "@near-wallet-selector/near-snap"; @@ -128,6 +129,7 @@ export class WalletSelectorComponent implements OnInit { setupNarwallets(), setupWelldoneWallet(), setupHereWallet(), + setupHotWallet(), setupCoin98Wallet(), setupNearFi(), setupNearSnap(), diff --git a/examples/react/contexts/WalletSelectorContext.tsx b/examples/react/contexts/WalletSelectorContext.tsx index 82a355885..6e42aed11 100644 --- a/examples/react/contexts/WalletSelectorContext.tsx +++ b/examples/react/contexts/WalletSelectorContext.tsx @@ -5,6 +5,7 @@ import type { WalletSelector, } from "@near-wallet-selector/core"; import { setupWalletSelector } from "@near-wallet-selector/core"; +import { setupHotWallet } from "@near-wallet-selector/hot-wallet"; import { setupHereWallet } from "@near-wallet-selector/here-wallet"; import { setupMathWallet } from "@near-wallet-selector/math-wallet"; import { setupMeteorWallet } from "@near-wallet-selector/meteor-wallet"; @@ -168,6 +169,7 @@ export const WalletSelectorContextProvider: React.FC<{ setupOKXWallet(), setupNarwallets(), setupWelldoneWallet(), + setupHotWallet(), setupHereWallet(), setupCoin98Wallet(), setupNearFi(), diff --git a/examples/react/project.json b/examples/react/project.json index 45b8f5e5d..790796ec9 100644 --- a/examples/react/project.json +++ b/examples/react/project.json @@ -72,6 +72,11 @@ "input": "packages/here-wallet/assets/", "output": "assets/" }, + { + "glob": "**/*", + "input": "packages/hot-wallet/assets/", + "output": "assets/" + }, { "glob": "**/*", "input": "packages/narwallets/assets/", diff --git a/examples/vanillajs/main.js b/examples/vanillajs/main.js index 500d893ce..489c037e3 100644 --- a/examples/vanillajs/main.js +++ b/examples/vanillajs/main.js @@ -2,10 +2,11 @@ import { setupWalletSelector } from "@near-wallet-selector/core"; import { setupModal } from "@near-wallet-selector/modal-ui-js"; import { setupMyNearWallet } from "@near-wallet-selector/my-near-wallet"; import { setupHereWallet } from "@near-wallet-selector/here-wallet"; +import { setupHotWallet } from "@near-wallet-selector/hot-wallet"; const selector = await setupWalletSelector({ network: "testnet", - modules: [setupMyNearWallet(), setupHereWallet()], + modules: [setupMyNearWallet(), setupHotWallet(), setupHereWallet()], }); const modal = setupModal(selector, { diff --git a/package.json b/package.json index a0a3ccc91..7716f9e88 100644 --- a/package.json +++ b/package.json @@ -92,7 +92,8 @@ "@angular/platform-browser": "16.1.9", "@angular/platform-browser-dynamic": "16.1.9", "@angular/router": "16.1.9", - "@here-wallet/core": "3.3.1", + "@here-wallet/core": "3.4.0", + "@hot-wallet/sdk": "1.0.5", "@jscutlery/semver": "5.3.1", "@ledgerhq/hw-transport": "6.30.3", "@ledgerhq/hw-transport-webhid": "6.29.4", diff --git a/packages/hot-wallet/.babelrc b/packages/hot-wallet/.babelrc new file mode 100644 index 000000000..b63f0528f --- /dev/null +++ b/packages/hot-wallet/.babelrc @@ -0,0 +1,10 @@ +{ + "presets": [ + [ + "@nrwl/js/babel", + { + "useBuiltIns": "usage" + } + ] + ] +} diff --git a/packages/hot-wallet/.eslintrc.json b/packages/hot-wallet/.eslintrc.json new file mode 100644 index 000000000..9d9c0db55 --- /dev/null +++ b/packages/hot-wallet/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/packages/hot-wallet/README.md b/packages/hot-wallet/README.md new file mode 100644 index 000000000..8eae1d753 --- /dev/null +++ b/packages/hot-wallet/README.md @@ -0,0 +1,63 @@ +# @near-wallet-selector/hot-wallet + +This is the [HOT Wallet](https://hot-labs.org/wallet) package for NEAR Wallet Selector. + +## Installation and Usage + +The easiest way to use this package is to install it from the NPM registry, this package requires `near-api-js` v1.0.0 or above: + +```bash +# Using Yarn +yarn add near-api-js + +# Using NPM. +npm install near-api-js +``` + +```bash +# Using Yarn +yarn add @near-wallet-selector/hot-wallet + +# Using NPM. +npm install @near-wallet-selector/hot-wallet +``` + +Then use it in your dApp: + +```ts +import { setupWalletSelector } from "@near-wallet-selector/core"; +import { setupHotWallet } from "@near-wallet-selector/hot-wallet"; + +// HOT Wallet for Wallet Selector can be setup without any params or it can take few optional params, see options below. +const hotWallet = setupHereWallet({ + iconUrl: "https://" // optional +}); + +const selector = await setupWalletSelector({ + network: "mainnet", + modules: [hotWallet], +}); +``` + +## Options + +- `iconUrl`: (`string?`): Icon is optional. Default image point to Here Wallet Logo in base64 format. +- `deprecated`: (`boolean?`): Deprecated is optional. Default is `false`. + +## Assets + +Assets such as icons can be found in the `/assets` directory of the package. Below is an example using Webpack: + +```ts +import { setupHotWallet } from "@near-wallet-selector/hot-wallet"; +import HereWalletIconUrl from "@near-wallet-selector/hot-wallet/assets/hot-wallet-icon.png"; + +const hereWallet = setupHotWallet({ + iconUrl: HereWalletIconUrl +}); + +``` + +## License + +This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0). diff --git a/packages/hot-wallet/assets/hot-wallet-icon.png b/packages/hot-wallet/assets/hot-wallet-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e6a7e780849eb7769a8978d46188200ab9de6d GIT binary patch literal 129374 zcmV(004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00006VoOIv0RI600RN!9r;`8x z00(qQO+^Rk0T~nxGK;wNE&u?407*naRCwC#{rS^%+i@O-b?@_jcfddZ1VLgT2@)b8 z4iHB`q&P|zHIO0&nUu*`gC)hHDN&RnYH|iAu1u~tlI@D3imFt0Dv6^wKP35ARJJ2B zDh(7x03-<9d%xkG&(Qf{ukL=HUcJxzUXY?VVAs9xcg{Y0uc5nF_tU+4t)<`iEguuS zOhiOvL>NjkB#Rv3U`8JiPbmL3|Y8QwuqbwCOQ`NT0 zmNNO6iM9<|%aX32#(fq4TA5ZFFt@zinY!Onb=;X4vPpj|nVVF|zs0=f z>nb`VU-6temwW)MG+IS}{H-jLwwpYF#LQH56z1}(z?j3sGYj<6EQGOWGFn1|9gbz=Tt?ij*|B+Ov=0{<8$)*5k z{TQMNEmaGxVidRuJL z;Q2jd3#w@Sd@kG4aMlz6lyR1 z-5P3v6Ev_2R!xmdLx_sEbQ~~Wh^Lu}XxPme4;q>6wT>_*mf{;mkKct>q)?#VOw-|A zQ)r=;7m)cu64&`Lip*gsAa@+pD{3nYcmQQ1(-c~*wX@+R6e<>3YfO2If-xo`zuHT& z(l=G&?-?p}GRKFoAjf*C3mD1o{-6}O@#No|ZsTxcX@zlbI- zVYc!}#dO@XQi4(;C`3+iYM!ZxnyGWY)@+h$td?xV>te`)@M5bfMyXMQk)>0?OjU>( zhA1Fmyl7RFU0oN_7h-z_QUo#WQu+ISPp*afAfvSpk%|UQ})>P&_>8S&udy|9a zb}K+8G`u72Ji{Rcbs?vfUUgGqYIL`7L0wIfqm?vAzFJ`4uo)nl6!k{NA`~`s+PDqE zQw2$@frEQsnPn(Z$Rt8l*2<_B$yB%v;g=L6q+c{W(7vTNF&S6jAr#{+Hh0DXzyM~T zvF@(ah-z|Rvs?^Sw2pt2b=OB^;tjke_uxqKie8ws)2#0^co*?z%l5TbYip`U5sL27 z`X{?7*>^IwmZG`P3zN1*xd{hHt9WiJefX{dZ?1QYWl6Io=)+=J5njc2lk^E~Ivc7s z-2@5F{$pgBrFx=#_yp%ob!R**kRy`~m53EDc#V3m$hT!gy=9|2s!V)!Ed)|O0CkTj zo%rg2*H-Zu8df24FqB2gZ0A=xRRJ$+=}{774AC%$mTb|mg+}kGOPHpsz>gJQPi1jD zQtlTBr@?j97$^lrHyFI5+*uQ|nU!1ghlkXgsVe5PRX!*T=FO@FfF`nLRp?2mNFA`= zhsg#qM~RD84K|PnDAklcN?@9m&ss_jr$PBgvd^s3bOhlrYTw z2;IJV6kr>#8@$uC7GFc!lycGl)Q}{`vSCbZI6!^(szR}|uT4ek^g(3O$2b$9jN2<| z=U9+>`B0uJi$xX6ao>!}J~xc#t7!^HCu+|`vkk>2RKfuta|l*by6SIJU3F*@f=fY* zXe^7a!8LSbG+yWW25B1@Ad@t(8l^!1qdqlS1WBT^refYKQyngtu5Hz9!!V_5T**RH zuc$W+tq~T#7B<4UIx{3N@pmsxc9>kVff2*{WV4jWDVk!=eTAFFJW4rK z1?D)obq^m^@!3af77zx@1l&ri<1#ITao-G-t$FCY>ICsS(@piz6`CIlKhLra5(8nV zCr-mFosv~?61XoDmTL`bIo9iFY-$SotoOH>ZEh6NKO{#^bJzgJG)cRp0_r2^sH)_L zV&E$h_M9~+U@D|;m_bqdT7<=T_GYHDTFiUCKkJJgPDDAW^^nq0I?r_n^XkLU03tZB zU_=3;VJ>;rRY5Qse8*_>fa9i-_7VcB%3O|$W7=IJDmQ{8sNVAN@ZNO_ET(1A@xIR% zsghl0- z9gF%y5KuX(@S(M6K3Ei}U%JG4(SOSLZRetrp~&z-BAR$YORjoTUg^iC>(eosj0#4* zTmT|4pH0_K`EhPh#5nk=t%m|2tWV^ zYI}`eWY!<2e}X{J_^mwHFkdVRpoCYd`Aq1L%+i;3cnyyO+B$}m*D%lq{1^NvbGj;? zVPN7RzF}^MWUGoo^bb@#i9p&pC3#TyV`eX92w#o`^?74;VvwhcBehTmr7J=u&IZe> z`b$e`^A)PtYiZK)-UJ9X;6Uk!cCBHRS}~}<*mf*q+8d3;_**bAgfYyG^)H_xCy;D@ z#6)uv*n~$#*Wn4X6^lr;V!0S5&L(;37?Zyi%;J>Lir%;2CeawWMJSPYFfA-9Ozmj% zs7vP|0~zy?4{jr55#t9Og{Df38d09B_r|E-;vf^3bBSy8go~quW~J5onh|JmzzedL z&dBs3S}?#kHqQz)1=Lyuh?qT77R6qH>0sTB=Ad!y&`PI3&xpp>^x3EsG9w2=`*sOn z_z0+^Oa|-42-c4|e=T;^)D#63;Gr?qG$uJMnbjrKhwWd}P4O316!(k~HBuODSMkYW zMG*iwkK)rUaJtP18)!;npw(=8_E(~phE#Op+B08J3L~2>5&}@ywc;Of3-p|r@YJ?y zMNoVn-!=HUH94|Ac`;ih4QWMwvQE}5s$pSPM`X1D_}CbA*hTX7DI!#@4kWNk8GSC$ z=`iMdDQ-dIO==O5J}>PLx~voORJ+2sVzWLA0izs2!n^3;+DPY6r6MH6%jp4XLP2p% z^~Ydtr-!@-^?|ReUa*$gqnNTzi4tB-Mv6$4fVpMmrf%MZHqzUsP<#6pyAp-+Y)_4T zPVi15nx+-&am0_y{nR|dlnjc8-IQf|3j$9Ck*};wJY99@qB6j22Zu%LX6Y&{NS2SdlfFXfW^qkDRnX9_Y zY(ocK(%1I--;`BRFzqD?(urrWWHzG;Tk^KXaLg2Rjlyy>r2E7$xq`_3Yq{XrAKG+J)Y?mwbo)?t-zs zxH1a}&}n{c!TuS_j(`h6kM4!Z!ys!}VvcCvqLmSh41o%0F`%NSyi9>1j7pp#%~nrk zTSys~Dm^?F)ZoMBQIUtQ9t354AV95Q{?Z8I!^7TF%Q?(J5eDN#Xx`m|niJlYZ>r;_ zz{3&D8TN&}YD=zUTmd7h3jTO>@BuY}mL1lp7HFwP0%`Rh$3wuoh zYA{HU;-dWSV-z&s5BRw>uUl=Foh`62zvb2xo{2_m71xC1pv$}f@B|Xe5nR|| z9=Aci%RC9p|E8{tz(x2s7Bj-i*{nKcGzF{-tWX{Xf*4F8Hh~w+H^((?Y5}MbeU4ta zR7j3vkhEwRe86-XXb&%$9;Qr3z~}QdEI#ZF*q{bjE64-tU>4m<7!HkE%rw;B`s!~8Lm_5*%^7!N?DvL zgVKucfLmvkMK|lnAGmER>~fxVIW^yPCwk!yu5nMpFx8p`{f$x6cq#!Pq= zPey-%d@R-RmP?!|m#adfy-a3m;SQ#J`KzbEEIpTydNv z19JX2%$^Sb-vNp=UPQqvz{IlG?Q+W=d(+h?M_buzb+h9IGHEKv&jdkPd4N) zy1NB$47jS>Pz=)4AIqnWB%M5`_2*QAu#mJiTq_BQXpJw)ox$}i4*Mu6%(=eB^w}Jx zjKxL_V@+1%u2Qa`fx^;^NCG=~Gqh3El=4c+n>`c)?LQDjl$$$Nh^YmX&k!W9S;QO@ftZ-3y^8Um**$CL zaAxIT-XUB^tuW&76{1YECi8`ikctU(hLixgC*^W$9bNQXC=Qjft2C^$xW7Oxh7Qm5 z(w)uibsoAlaNlMpc`nYn7tfHWR(|GKgs6_cp1+oMUZ*8oQ`!6g+KSn9n23Q(K9OOo zQqmWl#atuWt1OilBO0PUMmJ?q(4*@wwrD}B_-}aszF=o8D^_QWrj+;0X-(wZ*fj$r z)6NrnScVgPa&;23K@8Yah(>zbs^k|7J65L7i*;yfXiw2C!PP9p##^(rJwOlZze3T$ zFNlClDyrj2mfn2lSk;RX{>XN2G384`VV1k7X-i&=Y6gHDb zWmpX~2m0KgHz^>NOS?)g(|E;TsqtA6nr_0gusc?mI&JYu1-nK2$DJuC1}))yh^Dz` zerh!!_7HpJa8EZ14&71BNn3eOek$vc{>1wHMJalA*ox1)6&tYFO}x2E6zP%o7^yY!J9P2`7IW%yE_flA&f_3}xo7HB__Cq>4S;|2D@F?x6&W&w zf*MkS=@NGbkPYGs+i0We?=Wsr$O>@qbuEbAT_0O2{o&7NDXt|1ck!FjVsX=%v(83(wlnpvmp>Bav?ML_P zjp9Y%(v4sMaxHT`%ci?txxzjRI@H9YL{)`fL|-JzY?c7DH)i#>{sbd6@Hs>Hi~+$W z2QoE@8dE?M5vnrJVY?_qmC3-n5VY{lWimrd?qxWYR7mE@Ny+#-{52GHh-&%~1-^-1 zGHLFa;psy36W6sJ49#(2>F7*&LDLoyUy#W9I3-p~@ef(xS#+%v$GZp!iFBzApDcGu zcS^nWG24{)qJ$P2-JPE@nY4*Z($x|2=j~803&DW;Pu7Yyd-IJC!Ji5?Uzf~>fVxXb zV5Ft*O4N{>NHv9Z>k;rtwz@ZF!h*W3>Pn_f5>9Dw;rKQ9M^l>y%$R5*N%$~VEtSoG zn}X6vD<#cNRXTmMRO>`DDON9*cu2O%4_1q7$K@=(yq^N4bx)(IVU$kyXQMRJ3T;(a zF4+hRz<}_=RArf~+P;|JlUh_ye5fedSTBe8`7thzYn&3{43teg{YyrSIB>|+9J0>R zKXnuHAB&J>Ntoib#mH8@%6XD%^ZL0uHjGGcR{4>(YHXxUs&2Me`Ii=NJVXT%5m~lE ztc{&%`?sNXM(xpJbz^{W01?4xrH|Db^wX)Le85V7Q|u!0>Z|Bt@k}!l$U9z5^=s-g zjE6?MeEbtM?l%q261R9CqqlDGpj07Ad>Wu&L>SGot*OnNtV2$TN2uQv%0;D@!J$Am zXe!vBLsP8qylCQ)@Mln4aDEhu3F(xy_-Y!Hqr-n%Ej#tsSK-pu{0c;7p*sUuxqJRC zwW*{tRNDaAu{bT)=_!CxNJ(Zf`zrPQ%r~W7YmTWJmQY6YG{#dNCcI&_*=5mQk%bV+Zg|JOLpHU0zIp}Tlu6ypuw37^ z=33Ay${BK&HsCvzY)(31qwJao=UE9h8jKy=u7zpZO1U*ru@Ob7AT|LDbrzDNWhO}_ z2rE?#2J|zZ9W%(=g*L>YA=nZPQeuiJ%@7%gYn6pbS2h&RpKvS!OvBzS{xxNs3aZ8C z4MR|$QZq|pU<09D6GD9tji}f=ld+p=6u*YBI876}Zj;ojfO%l2jb(#$If_p-(p2-h=|#Ge4htAhR;7w1 zZEao&Mx{}&DJl>{tCnDXAuvYi4OqfRm`ik}?VI!WY3$p?ZsX4#g&w%JO6yVIbX_1V ztb1Nz*k^&|>=4Z%6M>|HRecbTbTFJHAc^5sC3R*U z4Ga7k7NF_C37uH?;%k^Y#GKU2>hbFk(a`}F>Shkd@B?6w7SYZ8V_(uW5(+{Iq>nbI!T?Bi@_ zk#pgde{IoI#moFy@dXK27DVY~9{4=Lx=>V|bY1`T2~sM9w?m;#tBP)n zNKuv=pf52tcAa!_wqoL>A`NG|;uSfnkCUrlEB1hLL1IYun*!qkV~fE4L^0%VhgYb; z#hcpBVol%cc>r3QGPbKL7!Zz0N#gkZWHtL|V+pGt7$4ZvJlk);{&jMjG%Zguuk=t6 zoh(|^1+kG$S04ImzBLnYuJB_{_3~BCT+AlbP{m z$$V?VDjNmpBg_m-!gk>VGDX%ofcc#X=w>Bp8>}gg9%J22Xtgw{*IpZ4wXVR8SLV(A zVcF`m`7lpdW%~61Yb!QM=#9I-YupnS9N#;^BTu~P{^&p^@?$J2rmlT(V%nzz+Zb?p zRu>Ok>Y$W|P=<^7pY+S4u9!w%%KUGZVj`&b2bq?kzm#<)>>}s%=P)n?4K<`IW_^PG z5>{N@n1NlGEs%84|3Z_rQl23*5BiXYj4b7fhoQ?HUaT@uYI0SqdX5D_CA0@3*=vZc zVNZp~8_7u7K6J~}vxBr13>ERy(C`N%!HyFPU_(16dIp`MQFV!R0VPoxZm!qRsp?Pd zKDQr=dAG8N+Z>F|RnEhSJFumu=MTaq^|Wv@XnEdGl+*H#7q`sSR1%_DDXyT^c2PA- zRZfbp?*qMF<0lPm<~VhKF`DL=lRMDZHDq9Uvn(7}nf#53jv_G`Z6nVkSMTavNX&z0 zF=3SAh$u(6CL*?Q+&}3D-q12ecijmG`pzn98Vn`#U$ZiGpMBJCH2ht$ zdAMQVNcD+_xPu2^#YAhUPFOn~4Qp~b0p%#XUedbafrX83Y^PIk2hp$O00d>`$&bp3 zk`zltNO@@_&!hfnM+upM^lw}zYZ>kE7L4|)Mv|(7%C@!DojbBVXNKEZ;D*&*)A{tI zLQ*b7r~Cb-tzxAXlW7$=O8}WtF|>2FwLSR!gPLs1Lf|c=TZ~8N2UU}s!98GJicVMf z%;v?m^#r1kfIB7|8bu~Cm)d&lr)^VCr6}w2Xf9aMEHA|-qyOfSL1@5+WcoiT_DPi0 zfrM-jg<2vQis+275bOnSVntny_ak9{vxx~Y%boT=nWb(P_UQ*R)6q#L=I^N6(0zj<^`1C&pEJ2ya6%*G?&GzL6J6_?X%B6*So?oYk`fxu5ps3ttniP|nvpwWvf0NFTN9N0O? zkX&f!I>Ye7`S~;BlAbjW-$YJzid)W>)N;J&UF&jmi@v2v;HC~AmjnW0_-VvMk`(pH zn78s$wv_m0hqfOxCYiPIrH2?oqG?tz;)prq)OO&22QKwCL7)Z?kppKcHwRTIosM7E z?-nibnZRQAbnK?kZoP0uI450KDXc-^2>mK}MOAde*}-tR&MCfJ^}v868~_*k=2k(N zL~*0f1`>XrOxWlQaima~@HT8MCF$2;qBmO!ker^#mM{g-4~|J&Hb^3M=b@|(79$J9 zNddB~(X><^ie1SK-D2Zw_@JJ63*rivR^1zxkvypt^6d-w;P-Vf*!E>2@weoV78dq4K&d_wuqSu{oD$h z&9tAPmUQ$&kjuuO%6pXdZ+W@p_9e;;7_Vo_>KeJyARd!?m%6<(7qr-gWTSZ}@qPbyw;^SwFpoBp7ipZ2V8?)r)vDkYAB8bNIB} z8DqX8YBbA~Vh9CeXCauoU6*w2H`uzPIve4O$kdJYt8LsYz-6YIN>AVT9if(GVa*GC z{OlGQ%`HHQ<}tzy?+7amY}NSHl8N3hMUV<5vgA?tKwQ`m97f9tcc@2&s40;EK>^#+ z3QdVgkPmZ8Gs&nD^@->_LI<9UvIj@yp({2=nk8bZ86q3y7XCCRQjwF=$HphUSOPFp z`)Bgg0~f@ELSoJ5w|sDQR-xupWW5Zbr^pA@8XxFvcjYK!PwLkBd;A3(h*}OUMMCi2 zI9rVH{mv9dlBfMZyC6K`-#8Z{x<6(tb0Eb41_h8=5Zw2(WZ3crvFCAUjF0wds(r$j z^c7@e19Jsv0@7E&}hdweZ;ngPSsls1`Is*MtlOLOn`&tyNx=p zt}xF}Z8ou$jZTcx@M#qZ1E5??Q%D(v&P|&oI?h6ZSGH8Z1f#h^2D;d`o(Hl~S6BJQ z9j?c>4LDOM>U{(l^8-07BK%8JyTnI2nz3k^>}&&K&UF6_EESUleS z{wNmAR%kLuih{e|;Zf8u9a^bS4!lIBN9a&LsvQ{1N~aJMsQ_=c0m)+XR{k%#DZqpn zpm5fEi92Gnk$MjvVX$8zNtFpuLAK`6T|O!hB%0=$m5lrp^;Zq32hIo75Y$h}fb3Z0 z^@f$Qb}4A~V6{-z{Imt%&xtLHesQ?B{O|k~*hWo&JM22~L{4W0%0SzKW(8dVupL!h z)KZZWNGoi;|C&af$TKv195vJjZO*$cpmr3KAAJEPlZ{<@(jnF}VwQw5amSWZ zGDdQX=I{|$V|b7#pd6HIHwj~oAPU(|2|us>Hy-dP%QQ6H8whxF)(H|>&VVR?p*KJL zZFV(vqF0|ua0Y6hK#rKY$ zydda1f^umG={l6_zP8iQ_0$PtJeX(JgBpt!G29v~(oE{G3>$-0oH1H-&uvo|(GtlB z*@MDMHel<49=6W|Xo?8olb9B*?Y`{iIu0z>6mpu-^=o7SDLIrK8Hb$^SSpA$ znZk5x?1M_b=h1{l=gl?1{+?6)otY;3>H{MSBr4>pgU_jWLZSO=F_gD>zK+tVq1#S~ zQg!Gh-8SCdTS7>qXUWM%bRJQ_MFjv4n6X z$Q2NO3o;nAW+8?v9HI8~2$&Et0p#(Nm^!m_Dp299Gz^}hg24|DObigkBCMT_8>2Og zg~?HCi;FH!dk!)ElQr0eR$-Ty$y0$6R!&@GNmH*(c*6@;wdLS*ob?VPZ7?^mX}BkX z(+v)NL^#b#~ZPw;QVVg>vwE5hlqTl1I@)T?He!=V^=RB6G z;c%ja&3AqhjUK#8u@CsbLz`Fx+c7LquuQ=;yvdeDC?rOq`Tj^VAkt7qF@+_vu7E*Q z8ekW+c=i!&1&hf_IE&3s0-CxYMyw~?U+;w#tmj9NDF@Ie2L|g0B+Mj&Lgx}XX+rDI zN;V!KTUSxMRs4ydWAbH@?=}sDGgt3o!S@TPBbl(omd{dDe3oE54qJFW10e`hwa$}^ zujmYvgobf3r^9LbAD61G}ab5f>&i>83|Av}aY*CuH=rJY^ zs6*rK8qPr@i~@mu0v@hXW-7iUQ`WPVKo57fq5#QnO60G!tRW zl9mvPG|w@MZkzx|%++<(`%W9`fr$e&Z*Q_Fv!D>gR35J5VbLrQ&5x3j0pUnoHq(Kg z587&i>gbDP{^_(PsqkE9DJYXC8~R$i()uU0d9gzBb|`F3!Lb4f*{+sYK=8IYP)Jd% zPK6LtY5ee3CFPAXW1G?+P+!1jVslmmQWovPTr#0F{nG9ZWf!H%wm<|<UU^#8prAi;F|i+LGYMc(N+Hl)iCd^$ zL_!~ulcu>?m5HicG+ngp#xOxfv`OH`HiKqCkYBBd zrMy(Hg4Jk;0$h6z!;n%Rp0PjI%&*2`8Of^C3R-SmmWGe_*DC{phF#X+kBmThRjT7Q zzsWwvWH4o>RdeaaSLJYZct4q7R3IRdKH4!^m4y>6BI{1!=BC8VdbiNjxC+>OaMtxb z@DIH_3;9_Bb_zGYR)LC}5rcJ#<(Q|RT}U{W7R^Q-$V{Z7TcKz_&{#&ti#8wVf5qfz z+f)AYY*)vHZ18CwVdCLH&LOmc0g@dtD` zN>PuHlk?Xqx6?wf>Jj89MH6S}hX(fPU{n(WY+D0jAZW>Bi~*IKD9|=%VyB&o!@|{N zppBR*1`(?TQxEkx4nfCm=rHfmyaK|r-zI)FmNJy%2K8pEilt2w%*Q?QuR8q=08rp_ z(}*)*DU>p~zOpP3=E4%Tyatc~R8092G`+eer6}ue@|{wk&Dq?(lVY3X*2E$@t5~8^ z-9@9yHW(e)8)=B3cnkpCr6=Y9)c1Z+9Mx5=wA0ZtX)~Uc$D2`Gnd^{aXEq2It6+!-LXg%GJ;+cZ)EQg9 z#yfKzSU_ycfQE&;E|7?li=u(1YUmE5lUPQOhrUXr4~2p^X0oHBu7PAkkEH;k zFvSK5-|T7W!wh_O9~(M0QeN*{EfcGIz$cirVbNvk$4rL~2#NRhP}FyDq&-!mI1sGg zHn9Vr1i3<1hlGg zb3s#)v^CA=JPdB8baL8Qm?F^}l>zSA3Tl?gdc;5|QQs!j#vTuW`iDaz?x}=5o)r*v zfvDH&?wLx^`CM2+q?7KNtJC_cS$!OvFC!K_iCkwH3Pxq_8k&$Pt~ z^>BhtwZ?OMXZedZF+m#}fX#hW5Fnn1$fo;>4!U`!x}`iw&ty>PWkL#KIm9#UGw1Rn z9YQqDfL|tixe1C0nv}Dwldw#=Ygx_)CYX5$#7>kM0)|(D(cDc>V(&|`5KCh_yN;Uk!xSB1ua->dwHgWwF$GNV-&Wt#gcea z90mJ6NNGK)w?WB6*xuZ7DBJ5D;MHUv1zLA=OIfyfZ{1=P=b{CQ3nqJL&eKEBgW=-p zn8FGP4H@8p!sIP+a{fIDJ1^H>LsvLm-m$ykqtVFf@a9y2QtfzM&~5A*B(%y|8X81h zqlEL?pCrz0t~tazvk2%x?T=Zc^cI8i{OB4<(Km(b=i|-d%3zBS;^}Np!#7ps6V7TA|5$eTqjYPAyOwRmZlhtG3 z;Gr0eXt(0rWBhJhF0T+Z%lRJcWc7;qicki!6&@^;`~}ddY!+?!b8*2@?5D+iAq<9s z0j4uRdG0}$l25O%uc4{b4gQI)R-|itHqag;*0A&tJLXk(8c=6hVDc!B~IDBch(RA?e3hj=+Kth^}R9o(H+x=iBI% zc(DGoh~y9feu?mOLQrWNe4M+f-5oybiDWnksC_w2&zpKfeNDo;N}-v==90d>Q5@km z^jfZbD8_L5N(P2kUac9tzJ7I!OwI5^69SnrCbrPFo6#|PDUf5akE6>)k)%Bk3E1dR z)R_AUVhTeA)y(S91c$5gFQ?FeNrHBPj=-Hxf~P(xvhwu^n9#^$T6vu^ut}iTuV{1p zJSVJtBX|-vLT4L;JxUv}4RULnkhWm&aiq>V0WH03j1?tP*ValagnV5zFG0bL<>Zz6 zZz?7u=nA%16}Vy!Y&8Ix`)HPqM;i0st0Snr96uEj;o1Xd8&cG&(gq?vL|# z{FEf(YtcDV=UMv?%?6NvGH=_WQ-hUfg$xNMMcTr&1eRy$@L;ig6}`klAdm-UW(Ii&g!UEMg)T& zO#hxJ#`{F%hCeGz&yj-g-iwho`N6)?z8$ekK+^YrmkLhq!oM6`C^D=nT#Dkg2( zCgqVHv3(v40R)CkPaeLkAKLRoF_rw#_?gx>H61%+29_wOJger&j;a&YIO;^iW?|iK zs?z9)M6`aSznKe$XsjJnk#UL~QBt*NFIaU84M|7>lpLKm&4P29IsRL`C4Kin#ciqG z%}#1G&alf>v0F9<>#8+w!wJ_p-EFw94T;&G3ldJ3hoOivsd@K$NTg>myVh|jG}P2A*AL1I#} zTj4#n7Lw$h$wLQ69?^^xr zJl#}74>~U!mFAIk&<_YtKmsW2h1LedqAAoyf%m98bE)8{S1`@ho*NU& z4`}mpfkOcRE5RoQMifiun?q%q(?J~I8q5ua=VVbYY7PQXxjvRz(|oQ)%t zv=M4RgOqEs%%p6e$W$O#0!x}0sX02+w7Y8&y&5)P4pnG)Qi>_8Bv){MBiNW8%j&@z z|2C@4;T6u)w!Cp>p8w^AhpHK1N}9}NDm1V#X5-T7?Q$*nlzPT7y1{M*gFSV&>Rjak z3FkGR+nWbe{oP;2QZFk)h~u{WPq=kxcC!#zXdX5{dOwBY$@Kky6Y~wF4SZVDX zp+m&HDgnQ3$X`g2l{hTn%L23j?Wk{Hq#n|V4P3pc77G#*P&)(y8MPpiZVV>uRQ)?X zWR{fw7e5jf_HM&c>Pck6#A|@XGym1)3xsYZ54Fz^0#Eu^^hIQ2bf%L$yaZo%n={EE z0eL!)0+bomRFkiwkli0EO;&*3j8fu=vtA%cT!qO|F7k|_C0d8`7A{P36h>OsoBoco zQUn0=x<&R_*r7fzJ%T|agVV5)8I3v{dBrxWnTc7EdR{YX(dP~5(@_r1m4O-HFb+)t z;`^P`&|eRF1b$s01HuX=M2b24@f#X#rJH1Q$TFRrRXi1H)~1Ev5S2y_%z z+h>YunLSwzv!X+w60FFW2B=!9?a`TTdhWuIZ{>>cvrffnR{?tZu`a5cr$qoe`6XKZ z9pj~rg3t)fo(EMYV5edrSf!tc*fL0=Ti*8rZo$OMz}>j*ZYYc?yIm8OCjGJFb@Zg} zDb4gbE1o}2;1B4_VU$xf@?S6*`}C8h>12k=#76ueSS*`Ojw5=nzTr24y}N+Q|_b5DfmmkQM{Woi`rHR)pvC}bm? z95ewySY7Guvan;LdEDzrG_kYfnrt2yb|!&%Rt9#CHDfdYCx&u|({U4z!TF2At`~{( zsu8!wX4nm0mN~zeo-eB5QpcWyjo;c1u3Q!VCi)ZEF^87MNQ^l@S(&|0o)->dFs<_lXNPs zivlIxHw?_IT`zD^$DG|!1A@H4Ur9z!22bQHfv_z)>E^F2Ic{4lq?Voo;b&e`Dd`8m z^2!W>qs$E4mj=dGUw-QNnMQBi$9IRD@1v=~_^>e%GE+PGpvO?x$4=B)$Z)5ZFcF}{ z+`2aGQ7BqXAzyF{c@YCJ&Z8i=pmQkMnA5tVgg_|ZNM`~({mAe7$PHblQLFFq%89_9 z1*x`fqC%TY1#QwrD|LoBr*=3~LiJ|Diog&;clAU_CwY>VZ^HYy&q>siSdGm#GcI;z z8!7pTs7KCB3IG_zkPztagkx6bmIY!2!bb`QiT0Q@FmUP(cKCucA@2(fsHrjR2gDET zLxFbA1T9WEeG?b99Z@`0o^6;`kxiJ?+`-ECwjGNFu|P6^Lfam5!)dx&q$WxPk(!Oc zBmDENOH%{-;nJ2Hk6<>Nw)mD>2A_>@(yO48b?m8&5v|gr@>4@1{u*xur{I_X+&0aG zWjBBl6^OPRujr;mQ~`fe6&z+~F{z#`WL7TT-1+79(?3y4zb!T{G*UD6x?AnS}c zFP@CLPK>BXZn2bzfVHOrPuIaaHEZ-II~@uvLmY;aE|DHbNigQTYuHzZ6aZ%L0T6@f zk5B_U7)0>GeS>{9%vq258*KhG#4A;Bib+F6DKoN6lOc1Ft72qrUCpV$&#EKez{RI9;Mr6lx(bj>fp@R>dY0DfEo^2%&NMe zxC@Nc)H)Ltsg!u-#yYrMiKA4MHU;;p@GRjnL{TgaLUm9~Tt3$7sRe{ElaP@!yiNyE zBeuYPP4az2kMKo4J+*nA@4zkvZJALJ3e%Tag=DG5}{@!e(I*iEAFm zKvY@2s-f=vea&N^Fj`UFluDx_U}bPkz`RHc%<@oq<-7X^E;=qVc&xS=tP82{<5=V@ zVUya@K-A;Kl_HM2b*w~m&sD>L1qFhupkTSv*khrP0a`+;#$kDmXaMRHj<&3UnV>T{ zHqe@gXXMm(#sYwN!@C18Vq|&8e(;jI-x=U-J3C&(n&u02C^VS;%mo!jlp2Xr3d~n* zA``zAWww#7nYr&!hkFqpg925>ZjM!;De$U!H& zrlA0Q?~OCTz&VcLO~&V!U_dOt^#){n%CeLk=jtv`TUYnB<40+*RpG@0r9-Xb?6Ff! zKmvW=XiF9|e)WPDo`-}vZ?p`IUX%IM&1{PtW!i>F zN&VW8uLGSPZs4FWnK4#~v%})acHr)=AUCJC^7fX;Ba=3npW5s)h1ABahk*Y^xIZ-0 z^qA9wb{aTGWZY#THG7ne=@=s#24p}deal&r9Pk$ZprN(RSFl6;6Kns6k|4Axd?K@L zyaZt(>SHm1)UTi+E!!)Z8zQ2bS{zX(x+F08ljv!@Ve}{HS7S!DI*#mUhNgeA)P zKY?G@9jNi43f$ohR1H?EQ}bLZ9DIA-iAUmX^OJ4F74m91JW;UB>BRV{yJyHeaCP)g zVGBk>V3K$w(yPr1JvJ;M4kwvyg<>D`vb$s#79 z@;z_CiBEY6AVi)|K%p40zjD#hiOn5DJNr>Qy5L6Yfj|qXzO|LWj^Qc3$_9K?UAwv&>cQ4FaGr*JC7SW)9-qtk%O3g( zGr8Lu9;~9lZKw;}9#|fMQmBTJTR}CKVvvz-S5wMNF*jyxlj-Z|ZA5O2s|$8Vz}kDh zqz8{2L5toDq!PRvC1(~uZhqksp9gDuz)F$xb(?M2P&%FtjxKc{0ofSe>2~DOux3nj zvyr7dt79??ik|ZJ)N@!LQBR_*F}JKJETsun_5vz4xn5`CR^1i`-q==uR65UO3^7jW zN5E5DRYZz|WF*jI3JA5orl>2th+aW>b}C@u+_1LXMEhMG{zSO#yG_($at#>E1J;?b zH2!;*3n6>{mz^H=)N2j(rfpZ#)9Jw{o5y^;&|_Xd@1u~kZEkQ<3`_r5b&)$VoLd5B z6RR`yF=OrZv!cL{UlHfg5^Gq$DUm`pN`$F|iL(Kl=lzAUpRS(5Vq?Y;b{i0CL*3EY zu@D39FoVb*&0B1yRl_#I83EpF-jRp4Tt$XVegNv~)G+J_F?iX!z8J|jGve$~VkA?YS%B81VMt3z^3IEXsT07F2$ zzpjSy&iVw>8S1S5yfeW3wW!)IeW=D{`qFfMz{P9Q#K!mMhQTjZ`313>BK52xH@n=n zwrxpa7;d=rIFzuyY%sYwS>4>1gJ3PjRRrff0L-7edP`y=5H>J5JLF;8<7o`n;t1E^~HF_eAR--2;j#=T;vVlL^J?WLN0M1t;sYgAA(lRCU9cbaU_|p ztG!>oT|{gdG!frx9_$YbW3ZYp_jvHLA-LkN)OFNvSPb&2S^U+9$4^`lY3TqB@SGuLB&u7G)aa zGH(w@AibKI#3S=l8`7m63&%m#7j?R!%JSEE6IOqgQ@$inLDtGh)TT8+R@Q{LOC!Yw zkxY{sgz?g)u{D@dE(8t6*=RM>LJc*uKk}H|r@7qo)X2d*g8m&Vc!``lh)GUbW~IJm zAkPSd?hmA07VCt0-O~P3i)E5>(4x4NR=V1K$#9G~&u)Na;djgQFW03_729`+7mWc_ zY3~KTnL)yq?#p0qlnGcV@$Q@PIL|O^3x-RLTu){-HXr12#`BZ%E!er#s9fop_G4rw zXIXU|a6HE;YRSwg++xtjGSS1GU@ANGaJVDcvq*|mOsJy&m@F!U;#!>b2n)g+l>h9n`tiSetB)Ryg(#mlsW;B!)#1 zK`&V9FVl6=16pcV^Il!?%Z1qEhT>Fa)<>YUJM2p2+Y8SbwM`I{A_%@GbRFxLN~X4 z&m4``2_*g;gzdb|p8lvPr3lqS42@UX=NFIroHv}4<*4D?$LRX42PonPb2t$tz+hK- zu`Lbi28HbYF~fF;9N0I9Y%z-F^#Sl8YW);WtBuGG=1~FJod?2g4i)WOJfzypj1I2R zq)a(_6W3sKWEpv1lVj(bEf`d+T@qEaWBk;x5b7qjmETH=<)PlqZbmPsAlqAS_ACg( z=-{iV3dIaTC1}(XHrvuCNHbBOa+Ve`J|qyFK-YG5OBwJlYcq7n4>nQQjaz%2ghTv+ zW#VYp7${hD@EOv5{q@90b3D0Jq0LQbUa0Ab`)6qb#VXV-0AvE%mj{Ht&duBUER(J; zzs^^Q8C%yQoftiTUZw`u4;ZXd^6opoxe1OLS4wR_aN$2JQxqj%D?#Ex6$1-ZNTdV5r(Mv*|MgI0rDI5)1i z0N7`Ry$;WNh7DL0X8_9*rx-XYmAE>wNw>dF;BHnDf{liEe0EOpUB1K?2 z%VE!cAP-Yv?d^cf9)Y zB4{oPvjbkBb#7|y+=YC8SDAET{>_7VYdBfjTBjO`*kt)4Z6y8FfYm|g(mIY~x`iR| zH>GnAI(lc$s~*zPP;U-jbs5Gwv%RbwqbydJaVOn!pT*)fG5TnaLFyP}^@|D^D1Auq z0|?hbqwmF%cP*I#Z~N0Dui3O3rv{bhkmG9$W_?|nG)wz@=e)hFK`M=^b?X(pX6J4y zrxrAK#PVOvuy!GEWvNhud4xnkNDQSt?u0>|a&1delSTO|KClf68=z=Tr$w@q{z5RS zI(uVhYtZ`|<_8O_eM>??v0!Hrr<-;B-w0}>w$VxBmmM;E`2*5N#eDX{a8806E+j(_ z8-O@$i^}oFg%E#!0~MlhJ_H~+cjb`BJR(QSRdg(rByMAlS%Iv6dTFk$N6F8BhmF_( zyw$L^7QHNLnBFgA55*yyA5I)t#Ik>>B053Yb0n~ZAB#9gUr3M4aF|P}n6B;b*1AGe z6A#&^t&0#t(bITms{y4nQY5eeLld7KpJ_OVFfX6;0fx&2>8K`G~ zzebpYo+Ka7aN^XWHLC=KUk83%62+fh$%w09@}!rH{FD%UH5{8gvcN;xF;L&caDRWx zb3*3>I10q-Q=_)rO4R-tP%71xC=)h3tRQ6?0A8)SbY9*g5JDY^Q?>O9Ks4902_#`c9ZR zdq{|0F-M38dyV9TvV@LUuC}caqZwj>Oc~Y^E>SqchJy-B1}%vg`zfs_fOv3!3aS(x z9U+U=s-PP-Ys;AqGiT>JX`55YL1Bs>5}nQ2UW+{PLRs^XR=ur97tnRGka4gO4hgZG zGjxz#*VZaZ#n9w_F9SjA*TK+Pkv&2=i1_jX6^(s~*Ya`ZE8jxIG}t$^fM&h1FinLX zmOO$cbu}6XMGpIy(yyX)LR&)aa19n=3rAD6FL7g=uYhq;5oJ0 zCaJL|Hu25Yb&3S9q>2yz-}V5_h@9rXIOW?4So@2X(rPMwPc)>!d{aW$;DLrgEq_;3 zp}rflh>yYgV##Z0@6^6Kqmco=)v4=nbu{aQn7Lf75e`I*Z=ndL+YGLF*+AYgIj%%_ z#1(H_O;q(-9$nP@GN?(UWhfydf2D2pSq~tQbhoac?d$f}IT)3iz1-HgiLfGBp9Ugi zlV<|*iHPnEZ!S+f3F^%#SgI)IFG&&;5NVH4vG)sQVj`vr7#>R1Bs|0~8T) zV?T_lzNt5Y&zDXHy!L{llYuJO4D>DOR)Hu#e@=4Fc*mMgGL0)0@#7MCEF#|MLLBPzTcaNgCs4=gy1LK_9tUHM zHHTvjX8wuQMU-sSQB#mD0~VVNPAS-Y~&4s z9tNqVn@yc6vtt^Z02K3pvYeEp%SZOaLTc6m%PPDxwZW`j!wT7yvdNY&g{pi@-(5?w*&P+KZaG$$M3J7_KVg3IkV@9jD!aISYXX zMYK>ZSj=+(l%f=j#__}a*OFEwLI_Y}=oY(Y{wqLk!q}y=#!wC+pGr*7G~xqC8v4Ch z+GgA)IV(|*D=EhSb)UIu4*5(mxB4XB zgaJeqIYejFT3|;)NQacZjJC`iE0zo8L99k%X9e216E=v}X=-G~xpSVVu+O7IzBWTk zrOZ$^Yoyjs8RKU(&)hWHQFv9c;JqLNMtdg~`@5>*6T%XXLKV$zImRb_9n*}*%nxr| z)rb3VS@fipP2|Bz;N$_0_=he%Q`*+AzK@Z*o+dz>G6tF^!#+^4>in)T?PHUTw8a~Z z&w@D>N>(WW;r7zqJmF6`47@aC_<|Bl%la+hnQg|MXQkj2g5XvdMb`Pvn`LuvF9RRu z%p)e6)`5*?Uvmtr;P5Jg*oRi=>zV$A48QeD?!b;d zPomO!h%KV(-cD8b!tjTAPPuv#`eI75pX3&;Tb ziU5+DU`(aVrs?v@l+edC8-zgx0{-N3)+#iWY5ovP6wridAT!O-6N?Z+2_JXktj-8i zVDE$eV|O{%^5|N`)3X!f>)A$9F=j* zr5E_+jipr9X{wMz6SK68Pz&wym*FD{pRTj|HOfeKBiJ6TC^f2%<;U?P$zCVQt%Nrn z;bWk1*w(kKKDMaBuWq5j=(7bXGsFD=gib|&t#B^dpfgkY&LVTCAWyhAw5wB|BH$Em zXXQ~xbC=Lz?t5LjbLLvt!@};TE@o6xX3>v#i25d?OIuwINL)?lF7G3JfGs8#D$HOM zq^Ck1ahk7XjKNm4PNGWO@W+n^Du`plw9>B>CJMO_sZOxw!|<-6r1n)LMwo|(OX(W% zXWgt-nycj#;pNc40+ciL=?t|xuoMLV?l?)C96)LhiE|1lut=PV7Ji$7S&wB9sP3oH zLOe3dw@_m_KuTMZDJ5<`4C5`3F`uf6{#lNA#Rmi?G$;0FP)Pa&jU}vjtzc!srgB;cOhQUp(+-i9UD-rEQHi}ytW9wNj(9T(2*Aq}Y6KK%LLVJx{7j1PUrCYE< zt3I`@hNI_&+zNjc?uWOfLM3uWhez{D+@*sgMymo#Z zYOxWYoOXcN5?M`D>(DCZuI8nJ0zI32qv;ufGu-~F4t$9$MQ=CL?34DIJ2u!*FofK$pSp1kPxm)-HhPi7PI}_+ruWG+s8gB~;2S-;gDPf6CM5 zd()aX!Dc3`|76Ne9BR^6hq0YOuBp}74ph&#;5Y_PPV*`r5U$#n z^rnl6qOp=7s;~SwCL24E=`azTot=6MFJZ1t? zqE0(*hDBYff&#*T5AI;X542gL8EJZ{C{OUw+R-;D20NH)@Sq7x03TqLCYRC*Ua!s^N@mc^$>0BR}JX0o$jcY)_N zjcCTy<^rHxBfSN-NEK%}h9jUb+*aSBLZ;d_YJ9esdm8U!n`ca1Oe0Y#%rI#g^_EYz zFfpJrj+g0dURB#f8&|HDfO1;^Gp2&L44l^2G?|U`%oD-N3pfdGNT!)f+dE#v8(@|! zCfoffn3&UIu7_pJvEmT|@;-7@y4j9FlG{TlwW?)T)&9^JbpTl+p-Bc%`m#|)vvN(C zWzdt=wT>Jk&*np0?*#F8awd=P-y{#!&o<-_i;M1v!d7lBBYq8xv-Je*1jH}E4u z*6FHTNwu!h@q+z%DH#&2i=$XRtif6B@EW0w5h)|crkbsQ0s#Zt5SyA>qXBSWN*UIQ zTO%Ib%7fW7LLjDuh*nAVK!wl4S*|}&MQ4G%R-$THEeOe=5N685#GtJU#$~!jw04az zn<`$aq^!@;E;7&|ZHk%GFxhNW^_f>-8Zr10@fYzl!-~GC3e^5}Vz`~5%G@`^$XsG_2BCN9DYs@V znQDwcrNtYX^q($7k4MbVK&so+6>LwGB^lfXc96_u@vIk?`N}mM z?*SZ~w)IXSx^-cI!9#Eq0VI@NImMtOz~GFL*%0T8gWYPuLakLvseuThYed$9T&Up| z7QZ2Zs!gkka7vqJ-?0mY3c6QTz<3pm>!Mfd-v}(n6bHBbtS%hDNUQW)*Z}0Do+)L8 z#RKq8!S3>8u+%X7M#QGw8zou=(D%G{ua3bC!Bj-SK}&!q^Z2qds4cbmoPR`KE%<6M zeac?>c8`jXwVlijm@P6TxI^7huCaYlQ^g9sd9FZ}epeQXC>+POk1>Q(%Cd-u+u)j@ zkZ&)_NIq1W|F9j@5?_L%!(VY@ALAtUw3xVD`h^u~))nZ%gNL;RwB`-(M^FyUe=aW% z3ZQ0;A#L0~YIxui62@erGM!<38AWa(o@Nrsr;4vayo{`7G!?>JNZMIi@YT+cqx>Q* zHB?R!=^p*)&{7Bi;wNPpC0q4~WFD7>Qai+Ew0{?G;))qiNM+9kOPatby*g^!21-rs z;bp*nJ@jPi$ql``hJJ_q)94kq0rR?*1X4=TJcV@t6BVe=Z45O1WYf=v3Eha|S;}Hi zBQZnVXkmt=w0HVTd9eC+&1&cLtba#<1M`s+(mMfNwXX}*E>WuQ!HpD zm(>?HN|<|qU$g%@HjN!3QRbu5VZxZt1AK?+t;iq*q@gt2x&l)yvCMgs?hGpCefjTVrg{=b)B)na# zF%M9Wv8GOKwGVdMiCO@4^*@FS9($=}hWAQ%N@ll7w(a~^)V{e1zPAcAgl3&Y0_DQV zAQi&KUI<3>F&5FAm?d`SeWT@T!$-2(n(cy`sZ7gTM-|wFfRqHt5OZ#5(U?xm163~Q znW9k2=IMo6OhKwWfAvsiIfZe0t;)(+hCL$wI;c#w;_RhLuINw)Rx^a08+^vF2{0i? zhLLG05JrZ&pUWr5va2@+EX|9KQDU<~@j}k?f<9yPDRToND<-W%B$`0TBuEi$_4Y>L zyflh5To|$55E5@NHkgD^t-p9hSbWA1POBY=#0Sca%*kkBOQ+&j3AsmkdXfFda@J&1H_r@Hxo zux@pZ1SE@$bo}64%QBbrIOEV|{#P zDj{ur^1xN~saE08(G35Y^C&bR|C+8-b+m;e?@TOykHs$-x-cGsg%?fZHw;@erlfyp zFoTl4bBfTcyDHTS&@IJSqoIU_YqkW= zAoylo8Rw3tjfI3MurIy41FlTlb`*R8@e5J6d z(k+*RWm3=!kBu^Yr_zgB7VbQCi&cA_oNVSBBC-~gOu%MbtWJ_s&9rdKrpIDWKc}#! zc5b#_0A7{pZ+{XdPF1Gz;lFxcFfoe?PbVn6{;U;3DM@ypF$&XL2Dbt1WDV|r4GgJ4 z*QvX)Hcxc+Lu2Yijl?5<=i%c5<{k;Pm!wXW%jup;(Q-|<4mGDznweF07JheYyR;-) zNZ2^@HQk{lG>!{__Ouhp^Ry+Gk(y1<8%ki1I$|CDg^aJiKxmXg)!``>`3E@+;>^=N z{+Sg{%|%$e6p;uIYG$ILzMiQ%*&+*|nvYFWcojT4`CNNgHcbbc zdeVkE+S~Zz6q@+sXuUbuCW(bvedBmfB6i|xvviGtoe0uunUS2Oiej_HHUrot zz@U)v6fwph`Cn(e#h|~mb+P%c(YO?|=DZ3t#B9#0v$6#>TtqNuff`(OT8vC!XvA;P z`R*E)Z3BE!;1xYy_GzEg0#?LBe6ArR5$EYlS!0a{aA|@AgLcSZC?}#wF-P7EB4`hX zu()g5y~Hr*BCDV4p|i!h$`u%l7E58%V!&D zJ|(ZzNd|Nx`~j z5jcdd?7i-|GSZiDZ<&;MKUfQ8AxcQALiR=22SyDt+MA;5k!lkmi-qwWlm(NCD9QQe z7r{FaxJS1?cLrTs;mdQ@tdNps)p93Ce&XfW2zg7^V&MVK7($08L>}m6;DFIuQHsUF zYU~sPl+1w*Mvu>hC!OBvJ9kk-@WJzNt6@$2Jk(Y3B2;ws0Lm76S^0VG&urHO0xp0S z8gM4_j0-)x2DE2QMNS}P zrviW@Y?$lF_85;v=x9>Fv6V_q_rO^P;#C$&0d>HB5ns}5`2u>&Kk?f7nCHN=TcdhK z!{hb4NRa3%v@SO7^8J}LaS5?3Ym5%bAPUtxS;$%x5Ihe%V%A`%JypzakFT?*oI#%2 zQ*4!m+(Lc0H?;txyaZ}b?G7hcj^{(^PoZM3$S^T~-PC}>J5d+`Vi&v;Z3<6Lw*7$l zY64BX{SWcxBBUzmc(!;wdppY?NgKsFtN0QpNzXT_n@#HubFs3|bK4~NLNh!i*1^bICxebef1m-AZH^V!mn<#Gc!iSv*r}R9CHOU7;0l!@|Y_t+`xP;OQV^2iQ;J)eRuve6ZwG~dTSqYPT z8&f~FEt(d}G&~Lu(H(;|J1>&gpFbY-c#+CP4>EMQjfYyB*HFjI-RA(qj?1RBI zxMhe}lxDJ9$2TpX;q%-3iva0~lqAR+gD5 zY3aRzkV8UEN%6OYJ8NlcVv}wNbaMxX|76lh4Bfx+W?3!SlcY5s7poK){6GQjTKEX; z-}bARklBvvWE|WgC$nhrjuHC64}E)dn0YmLev0B`R9#g?c49}9&))7nbGy4as;cZ% z7ZneXj8%`3G?){r6w@~B)v!itnbI`2NYt^Yb+o`#4JOD2cviIfNxWq1c(~Dr#$DAI zA_H8T)wn?JjYmQi^q(1!y0R?%arqCn=HS6unJgz$3V@Q?Rp#w1Q1p4!1K2CHm_s|H zD8XTza+o)?DR2&5$%1C67uo$0$|;NaIqL}t+3easR6Ipo%n`qdtebbK6AG7ro}rs& zjV>wb{c!7@GTC0|YyxvZaU|-P0{}Q+S$Rv9ltU#M1{mizax)J{^eo@bWLs8J*EI6P z5Sl^V5S5sSi-!>BJxrJB8C;v=+o&=r+ya>&`2|BMv{Bk~bFv2-qq@+_HLX3Hzl0T# z5KJ&MKds~n4X+C9U}IetIl}}^vv(lBD7c+7$N~)lm;qVG<05i*(tmMzadl7;d9v)@ zc46;$>GYPJy}Zbxwo_Jg>P!mdXtDNV2#@6)QsSvlKRh2p{`gp{<*Ous&g)u<^$?Lz z=-A1Wkx?4cF`sfl@-gQ&MF1*iUqia5g%GYT2sc2Tn8{?pbe@<>rehnq6@*c0KL|&o zaH6)2p%SAN!xGsxAvZyXa?R)o#H(pXtGNvUB%x|e5rr<`yIjr$gFTtdLgPEE0P<&$ zz+*4IGg8jSL~rWI)?i8#vvJZtCPk;a*!YT=TzKGVEN9!wxYCIjH3e=Iq^ayMR9bhy z%8yzFY79WE7Jb8!p*6{$cFRWE&m!3t8zQ2ylqszkwwE#`CP1d8Q~}kHQ6TjcJPfK3 zgS)+{w>rYcc=P#qnnYBx9htH?c7UR6wlKw#+8^v3x4!N%2jm_qn&6g0dlOycv$wm; zy*^n)L{278@AbuD_m-W#va^?W_R7v)-Pw~xc4{JevLR^@aVQ3zR!ia(0?Jje%=|>X z1f>49RaO#)tg2X2GGUnE?{yRa_dIyBH3nm(sMZYBh->+5@+1lC$YC|_ODyZz7EXnd z6iy*9$E8Gc?v*9U9K-@>!#6cET~%?YxZwGLhoUN{X^f-8bz-jgzm_#gp_@0Uvj_B5 z9cd7M0HZtMG?sG%AaFX*BiQ)nfS|c$F6ZLFiN7o!)SAsJK*xGr!0UF#v`jJ1AwogE z*s1}s74v}!SGG*Z7$NSBZUIQK(Q|7;Y9EFDv6wWh0;uZ71p2Hx@f{tYcr*dpQ;IS`**<92EfZ|)xMU(*O0J-yvMYfpu)4$@ltrd1+4_6t zW}5-DDx1u*TH7sM>&(~vd`isV;gbWl%z*L}7f}UcunyhJmp_nza5{N#KJzK+rk<1YcR@y1rgO>1ov<&8e33Oth?yQ#Y zT>%$b^@jPt&%q@D`CO(jX+}~MEmCQnEsHuGL&K&iuCoU@h}C@a9oIiFCN$x9?IwY1 zPabeviaY{OF+)Cz>w6J!f~0k@X&8)vAi1N`nHNJo&Rd8e`$hK9=%4BNzPalg>kONb zQZ8+v?QH7$3eb z*9W~ ztGVjq=4^!fAk}LIV`-WamB&Gc^HQUAPEin1yziXM1K&M7t_%#t()Xp5#PhUqIcEio@lyE8I}X>F$sJmTU2Zb+gw8`Co*$gsXBQMT6&wD59{=p z?SVxTqqST(dFR-|Ga_HE3zCHF(dKMG(LXVV>`>bHcUDfR;1WG>G&vl-;iDxq8F(OH zmjheO&@c**c(aONdGw_ar!J$#7tvIu>hCy#)K&!%+;AzfKuP5Q+KP0} z9JFWb2XU>V>`i!d~8)g=WbSYTPIsbWR;qXB$g7XIL%ZA0WTSGiwr&pD#u6oFVWEYD~>nBkEWs zMo4N415$7D11JuoCv44hnjt^t@W80EsiG~^T$+(8zDTGS4qDMSSaw;mX(*Y^E#S~| z)CDRwJ^|$N7%iIn(yIx*iKN0uw}A7Wz^9?TI#x+gk;pp{-3sel$c{+PNOdr9V!=5Z z;N$ZmADrQ|^z!9iSOg3rlFTDwN~0#!$8FO|xHB_4C_d%LB|JGF`JtA0bSD**RoYt( zhD1PLsOBsXYgEZG4)kHlZnUsq=JMK9(RPasP`v*)gwaDg2e^-?xeSO`g||%eChPgC$^}aB=vYj ziHNAwS4wdYaSc@r`NFa+iDga#OTb2Kkcc`GXDtH;!~AF}ityFye(}+V$syn_YEBV{ z;HG}6%EE`Z*MJ&axp2kG&?t7gXM5ro(+4v=2KE3VBR->4LkA4u(|4-W2t2;NWgfwX zCnhr%3KCn@8R4?dOaRC`d7@!;xm9JKxT1vk*j#@1WomrAydg`*#I=99y)p zk)5VE&2)5xt&8iF5*dR|2?U($Um27pLMK_Gg*JTJH3KrH76#Ptx)+dc-ZQGw-^I2L zcBMdTikXzN7#kVWMii$)kPdSc1BMhl447F#yaXdSO65R~$~t-_*RQRVv`JnkLR9hd zp=v&hPvDCit<QpwOFC_B9cg?PAVg0v z6cWMCi)xqb%O>%?jATWt+!Y_5;^R7rW{u>4P2wctq=e?^gb9IW^sP5-s$9_|Kpqsz z-_Q(&BpGA#alK>r>Tr^`ylj8(C*JtpZ@7DLtM_}|Ee)0SCwabKt`D9$sa}=m*DPxH zNBzw0^68u1?NJwKK}IxeMV%v)r(``=;(EVk^9%w4+Fs~`j%9M{13*EHaQMXLS^<0$ zH%l^zM_igMo7)?rj!2eTPC}bjEM*2nC`4u!T7}1&)$-8?9Af^;aI)a;Fo)*KcHN2! z{TUZvq{WtDOF*glAKXv2o!6n*{-6d~cj{RaQTMt151C{-mmM0h!$~?Y24)cPG8v>q+$G#V(c!Ps~n+CZT3Y-n!5X%={vn5?CX-N~I!{ znCh6RjLNcOfpxu^1V*NqCdw+p+016hCqgW=6jF4$b>fN?hG3%dL#o9%Ag2a;faNS} zvmjga49AQZu}W+ll9TMHO3zjDS@g#X$Q|L-piqeaV1Z{$eeFg9D1NuW3u9U& ze@XNjzpu=Se2kdIv(hle4uQd8oNoXqGHrUUcZkdQ#fa1=7g@oO_8*~dDo4u)Xfl0p z4>ur_l97QIb=b>FhV{Kg_4cT5>=ztVyG4HR+iu_eMW?U*s{N0A{AN-4*-yUo>{?%W z(qx#NMD9;|61h;>sV{5N2;Hxl<9dD6tD~yQE4z_PE^aeaxd%a8t=6KubpFC9WikU6 z!zYKQRwzp+OJ%wpsc|KsG2uL+VVRgf+eT;7GjKAj4iCEV7knMOpFY{99!OA9BA+N^ zLq2Eu6?C2gdBhiM`v+G|!?Sby%@d+54MD^w&~JDn3eHy=<_MSYiN z2}COI-uJ%u)f|s5=dZQLAgJs%7t;~KnoEV%EnyoYQnYp+Gb$}F6&8A!&hpAz>!Qlb z0(F2{j$NPuN}Wna(~j-?$ZFQ^7M&szxlE+KHl9dZ+Y3i>znVs?|0rmzg~X! zlTVH(efde1PZc?s?oX;BPawRFFk(?TnO+^1o1;EinT}ANY%Xw(9tYK+$dt+9!*Lv1O0j0mzmO741q||`qhxd4WgHg3h=9*tx=5ZL@L~{ zzCgS1F^2>O+Z?j92?3yiaqiT={tLNT5pl|KG{;v<@7-UUeyW(*b;cMjFp0oU04oEa z7UF?TCTzC03W3P({qO&PNJ?K2ZmXbLE3kw+P}#;pidi<<_?FNcH8u(qsI-c5CS8zN zqtoiKztx2cXbcG2>r4{q;vSr$Iz8K}Vz;IdV#Q7rjo*HbzIYe1b75e;Z4FZc??4`v zdSkFEq+;%75;1p%Nx`Dxbx6Km@2aZoPx9K`4%>DT`QeYxbNqpi z-F)5q5C80!F8)PFPnovBM4pn1>T3F;E)K$1oA;6lW5h6y(axZH^gHAQTz2yhWs=yc*(x zCrhj`P)0UvE;GX5V2Mlff|@AD#lQ#<3)+vfHGy#+!(7L0Ip*>khJFKGQyM{JT1VLv z)jSC-Iy^0<_5ei}PBXurGmnM1rz;uDo4@J-Y%cK-d!Ga3EUSCuYIEl+dB0U4G!h?c^dUZd4gjK9@TUPAcF`JcZI< za1D-Apr#ND8+$-;;%g7iSTr0@kns zEQG3>I|AisMZ*01khZj&K1qv%M@3F2x!X5}f49i-B>QXqs`nlK!B4;TpZ(dV?|H}R z`L!-f6GFT?>WlqiTvyUjL`8NgcSrs7&F+_Omi8@E*A)s zHguYm?Yxp$6>g$^OZALfLJx`>YS}7aU6N&__c9TbiZFw?t7qi+-?D7DNJzG-NOQ8F zN%_(42Q4RjH1at8geW*ii8((AYS2ARIrSeT<3hoT)`kpjnG{PtwY;tv&$2VVf6h)0 zMzZYScN?|1cI#q9+$BQ4D27{R3E7poX(Q#a4d<=~$q zMLdn4LTFe)?%rk4DS#rovKm|Ec#`WoZCA*v%5IUvy&m`aBft0R|MfRN_le(q^ZZ&5 z$Ho=7JL$8%9<0_FowC)p5P7~|K6$-+y4T#B$ViwQ7!eB#r~C7Np16n`P6KO~Uj~g}L-A%o- z#Dr*K(b_0c@je+>#gSkHp*Ho%YKGAqT7q{U0IC4F3u4e3!LGE5z?4!@r=5$@LVp-f zCPu@>I#!{PgE1dllR{z|yUOa(cEAR%xf)E4?gi_VZTO_z)TD1hSJeLEZF1;42_F^& z(H?WiGXby-*HWj?Xqh$#o-`OXJ2*HWi;Z(vf|$w{-^7f?v@~*fU5Roiq#%+<)1j)4 z*D;(l(Zg%U&jG-zVTBW77Li48%*fI7c3&ixuGMMSUoBty#mE2RKX~Im{nO9h@{+x{ z(b)zZO`qK_cPB8{v<>{||4!|A($8EkpT6GhPjaEP#(W)U7Z?HKjqS`ZN~(&C&3>9| z@~eo#WNyM3BfQYqm2<#Rt6a>A=w?oJ$8HP-z961h$>`yxUR7;;)ib{W=n18x-76xH ze#kSc@ooJV#n-2}x#9?GpngnMA)wj}iE#d6lRJ?p!r?h}Fb1`mb=}1#kF8SW5tmIb z#}-3N`#eHB5ZdBj=$S^Q<;ZEA**j}y-SkYqStlCO*X?0oV6rS!f|l3EQ)csH9&Zic z76ZoS_RPp2kWQoSHQLNS8C8!V{_JRsNt`0f$)w7BfF4mSRwan#9hzjE4^Sj_O~rS5 zKvk3uuI6VX0nIc9`&GmYrvX&ubduZqIaRn`yG0IrJ>2V$egEbE`#=2LcYf{N(<@a@ z0a`!4*z5I}63Au`EoQ^>UVV$J!}5z)7feFF zc1>r~=Zl#SOcJ4uBtuFSDk{KJR2QxIYkxco2mD&q^!Q8Bpz_Es>F*G2UddL!M~!fwS{&& zVZjiU!F`;}4(c0gA(odACZpfxmMB|s?z6yf##je6QMu$MHOOVKw4f|EO7q}SRbn7R zpTs#OWr`6?o3webDSYe^f-WG`8v3013QPu)U~GKM0vHl%)KA+> zAJy3~8)!q2xu9Pp-LQ8B1f)CJZYEj7r-5f`H(iE{ zzie|+A<$WhlVl#%%?Qs1ha(d!)Yq`g6v0k;x4vjsx2dp(b~kUPQK>L4!GO+Aq~Wyo zXf35)0Z2^i0zIX#Rt=cRqH=Sma(vj)UayOt9PU(A{>G0#|3CfY8}EFpUEXRtCGcV& zmUIlZ(FjYhqNA$z7H+L(s^2BW>m75?PD z&Kdh%g-`wY%I|*W79mdkwfKDnVlpbS&IS~e1~f?-!+H~@)~GCOqL=B`sJUCX7K)A9 zT=rDe+KNi%hIDi)h9tNv^p;4IP(>C4)kdF9QZ_4Ti4IdHikU4*TcZL>i`hWc2aqZh zl$Z$O7H?Md(;FGOtg$mThpu%zH92uHk>1cvsP@k9U{7h_#g-DSLFW(V%F!l?&#qx# z6!@d_W6f^ToxqX8V38~PwTZ(S=n(TvLDV5x5U0puJ3#j6QxFK`_EDS|Ka}kWtbJ63 zGp}{;=>3&`|Hp6spMU*x-~844XKQv4*Li=^XZz(C<11$XBX?<3yi+-xMYmu61F0y9(Xx2b1Qg;P1syTG0%Y=&1>3Atc zlMP6APn(Up7n1(_EVKcb3Xa|+254RtjQ2!Wt<@L^KC7EReIzp=5(F|&y+dQsH&QCI zD24%w&Lz!EnNH?$6`Izc;_aavMj&PsoB`YRVz}VmZFz&+9_FGj0l{Lv7_lt2>X{-V zfoCUNiFDVQ8OW*hXEGzQ8h?NZi|-2qNCFx*ict@3qb`+UjG>RS(&vuQ0ZjEV?d~(s zP(`&HT{cZ)91qu>oF_pHD36Q^wP$l{umtv9!X)5!>dkPidQB(WiN|JmdkR_?lT9h! zzSbcA{#rlyzQaHKnb&^gJ8oXw)TBHWIhZ`(FNf4=#nfo3MO78~+}-l2>*Zj0bfpK% zNRgX#mMlSBM2*6NR)%sbh#vsOCjX(zZ>RXtJy9Nwj>9dTe-}9*fXa zcdc;3n|Nn@uu@=6F(}?c+pJn9G-$S>QHAhZ0|{B~+Fgrix}TH_LV#zK@t+*_s(APf z&Z6n|XfTo3#H`Tu>^0on=JDx}=WI=$SA>FT`2iIcw6LD;GRXn5=>hXav1XM>hN9!h z9G$I50i}IL2LaMhGGem_kzUBEH1lvx3$yVSDUCvv5fZ_0s_=wQ$WS_5WZR9{lBUt( zD+I_ifzj672DX_-Ao6b>jdgpJSV{)34k@=&=UaY$*KU!+oxXfw|JhHx@i+eHi_2R* zon)a!FLE?_wqN!q0z`eYMHaQI!}6)C-OW*U3(%FBg7&)YhJx;P8iswAgiKOxsdJFydAqi|cqZ;e}m-teYA$Pf+xb!8gQBg*%L~A)pFZjp@=9C{FvZ z&>_ad8&FzlH8&qHI|4n4nWqw9ZX*=_O zB$+rkORosj5cww?W1f>bt)F}I@E@;bk;6%j_xe+xc=3Pu_n$6{+})Ftp&}=@0ZW4p zCG6;MmR0Ug`pN6v)B9!d-3E2YJQ80)lCAq3B(U6`vnHWc(3<>Khc#p51dyzXN>vvP zsiH#Yo^z@^i0NG#7Q1zE%9Z$FkVRQmW*eX^J18ANyp_~J=+FS%Ji=j`93e}#m3mZ0 zrLYJ?=kj3f!mv`>Qh#sh1hG^YdkH=L_#2(un#VFiuO}1+A17opb0Qir6fT0A4fvXk zQ;(#qrV^%ogOC$YFzracak=G51_O6HW@;vzPdWR5M!jam$8ZXP!1%<@83ATo8(Pvx z3CLMQQp>zw31H+v#Q`vG2Kg1X{(#tN!2RkvD8^hK(7ip}E0n0Do*#C+rp=2gCzDrR zGFjgAOh8hJ&L8}EGU>H4nP01dzOfDE zQ)BCVK*e^UZ5d!!yyCo$Q+8O2HzsDVpHUv&M#ZX8Yl7W*U z#1gJFhowfc3$bY;iL$RFLb)-BqLl0Mv+1x`ovVXBa%sj|xE~9sy#Qsak`~2tcXd*= zc)$V{LYvwkXp9M$CCW0qQLn&D0LDN$zhS(Gj1hekd-g;Phy!;Mrb)}E#=l+58h!*}$3N+(m6IVco zOl`@*BO>#j0>&dx6HdW8g+dQ4V(opVUd&D|>EaTM%C*a)VRdFdqvm4qs`W(gfV>2X zveYi1q;x~_>qSAo=^eHqNDNE}zQgm*20Ys@_a}_x)iH$pTGXEJmrvbX988xqc>WeGPB5kzbV(Vk@RDpYmLZ%Ih^2p`@`)MVEs6B)yq}Euw2ZL@IKmkQv;>w<*u6+5j60 z8rs>_!Xqkexl#TI*waz0j(DYyTGrt$@w3;J{v7dMqjtT|TV`eQnJ&I3%%)(BmT2VG zUO)v7Ym$|RHdbbVGBWam8_gGR(u`}}_#xR$vK8n%A}3p9L4{tBLLFCDrE_aU5jaL> zZbA5_ewQCDK&9zEPP~$4!8SOplm0pmI>4vm6Cp|;PKrIsr=4{kL8=wgH!XsV$D1%{ zHdD_JFlvwN)Lwnb#5T$Drml;f>~HkT-+TD4|LSWW{mT8*>zZ_ABF_)Y(R9HSvxMHU zCE94tqIPxAPhRitPr4f!dxlav^DyM!VJwjucsZzvdaaB)#X>T-&3`9gHRIpneU!BV z<^pG|J!!6jXo7iWpr=BfQNy(#U;6rp++3RPKhna;Kw z!R0s4%o<1}HrU8)Kuv^QIs{*H87xQ@iy5^P_5$i!4|RB8+2i{>kyPENkt~%`oP9l0 z-Ik6X<0d6erh;V>2ntlSpK!`n!$E?PS?eKHu1#xulh(=Kh#d`{*=%NJ(G1C7{Duz2 z-M9&vIJ zxeRaa+AXrb)%U#n_+R~{*T3bf_hr{0^*P}q9j1_!Ov!Squv57|>L;&vw

8mZL=| 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

    V*Y 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 W|1(KWF#hQ)2_Pe(C|)CK9Qt1}(tgYU literal 0 HcmV?d00001 diff --git a/packages/hot-wallet/jest.config.js b/packages/hot-wallet/jest.config.js new file mode 100644 index 000000000..965ba43c3 --- /dev/null +++ b/packages/hot-wallet/jest.config.js @@ -0,0 +1,14 @@ +module.exports = { + displayName: "hot-wallet", + preset: "../../jest.preset.js", + globals: { + "ts-jest": { + tsconfig: "/tsconfig.spec.json", + }, + }, + transform: { + "^.+\\.[tj]sx?$": "ts-jest", + }, + moduleFileExtensions: ["ts", "tsx", "js", "jsx"], + coverageDirectory: "../../coverage/packages/hot-wallet", +}; diff --git a/packages/hot-wallet/jest.config.ts b/packages/hot-wallet/jest.config.ts new file mode 100644 index 000000000..4910333af --- /dev/null +++ b/packages/hot-wallet/jest.config.ts @@ -0,0 +1,16 @@ +/* eslint-disable */ +export default { + displayName: "hot-wallet", + preset: "../../jest.preset.js", + globals: {}, + transform: { + "^.+\\.[tj]s$": [ + "ts-jest", + { + tsconfig: "/tsconfig.spec.json", + }, + ], + }, + moduleFileExtensions: ["ts", "tsx", "js", "jsx"], + coverageDirectory: "../../coverage/packages/hot-wallet", +}; diff --git a/packages/hot-wallet/package.json b/packages/hot-wallet/package.json new file mode 100644 index 000000000..112287f1d --- /dev/null +++ b/packages/hot-wallet/package.json @@ -0,0 +1,24 @@ +{ + "name": "@near-wallet-selector/hot-wallet", + "version": "8.9.16", + "description": "HOT Wallet package for NEAR Wallet Selector.", + "keywords": [ + "near", + "blockchain", + "wallets", + "dapps", + "near-protocol", + "near-blockchain", + "wallet selector", + "injected wallet", + "hot wallet" + ], + "repository": { + "type": "git", + "url": "https://github.com/near/wallet-selector.git" + }, + "bugs": { + "url": "https://github.com/near/wallet-selector/issues" + }, + "homepage": "https://github.com/near/wallet-selector/tree/main/packages/hot-wallet" +} diff --git a/packages/hot-wallet/project.json b/packages/hot-wallet/project.json new file mode 100644 index 000000000..b03405eb6 --- /dev/null +++ b/packages/hot-wallet/project.json @@ -0,0 +1,56 @@ +{ + "name": "hot-wallet", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/hot-wallet/src", + "projectType": "library", + "targets": { + "build": { + "executor": "@nrwl/rollup:rollup", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "dist/packages/hot-wallet", + "tsConfig": "packages/hot-wallet/tsconfig.lib.json", + "project": "packages/hot-wallet/package.json", + "entryFile": "packages/hot-wallet/src/index.ts", + "buildableProjectDepsInPackageJsonType": "dependencies", + "compiler": "babel", + "format": ["esm", "cjs"], + "assets": [ + { + "glob": "packages/hot-wallet/README.md", + "input": ".", + "output": "." + }, + { + "glob": "packages/hot-wallet/assets/*", + "input": ".", + "output": "assets" + } + ] + } + }, + "lint": { + "executor": "@nx/linter:eslint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": ["packages/hot-wallet/**/*.ts"] + } + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/packages/hot-wallet"], + "options": { + "jestConfig": "packages/hot-wallet/jest.config.ts", + "passWithNoTests": true + } + }, + "deploy": { + "executor": "ngx-deploy-npm:deploy", + "options": { + "access": "public" + }, + "dependsOn": ["^deploy"] + } + }, + "tags": ["browser-wallet"] +} diff --git a/packages/hot-wallet/src/index.ts b/packages/hot-wallet/src/index.ts new file mode 100644 index 000000000..93b620ce8 --- /dev/null +++ b/packages/hot-wallet/src/index.ts @@ -0,0 +1 @@ +export { setupHotWallet } from "./lib"; diff --git a/packages/hot-wallet/src/lib/index.ts b/packages/hot-wallet/src/lib/index.ts new file mode 100644 index 000000000..64b541a54 --- /dev/null +++ b/packages/hot-wallet/src/lib/index.ts @@ -0,0 +1,90 @@ +import { type WalletModuleFactory, type InjectedWallet } from "@near-wallet-selector/core"; +import { verifySignature } from "@hot-wallet/sdk/nep0314"; +import { HOT } from "@hot-wallet/sdk"; + +export function setupHotWallet(): WalletModuleFactory { + return async () => { + return { + id: "hot-wallet", + type: "injected", + metadata: { + name: "HOT Wallet", + description: "Multichain wallet under HOT Protocol", + downloadUrl: "https://hot-labs.org/wallet", + iconUrl: "https://storage.herewallet.app/logo.png", + topLevelInjected: HOT.isInjected, + useUrlAccountImport: false, + deprecated: false, + available: true, + }, + + init: async (config) => { + HOT.subscribe("near:accountsChanged", (e: any) => config.emitter.emit("accountsChanged", e)); + HOT.subscribe("near:signedOut", (e: any) => config.emitter.emit("signedOut", e)); + HOT.subscribe("near:signedIn", (e: any) => config.emitter.emit("signedIn", e)); + + return { + async getAccounts() { + try { + if (HOT.isInjected) return [await HOT.request("near:signIn", {})]; + return JSON.parse(localStorage.getItem("hot:near-account") || ""); + } catch { + return []; + } + }, + + async signIn(data) { + const result = await HOT.request("near:signIn", {}); + const accounts = [{ accountId: result.accountId, publicKey: result.publicKey }]; + localStorage.setItem("hot:near-account", JSON.stringify(accounts)); + + config.emitter.emit("signedIn", { + contractId: data.contractId, + methodNames: data.methodNames ?? [], + accounts, + }); + + return accounts; + }, + + async signOut() { + if (HOT.isInjected) HOT.request("near:signOut", {}); + config.emitter.emit("signedOut", null); + localStorage.setItem("hot:near-account", "[]"); + }, + + async signMessage(params) { + const request = { + message: params.message, + nonce: Array.from(new Uint8Array(params.nonce)), + recipient: params.recipient, + }; + + const result = await HOT.request("near:signMessage", request); + if (!verifySignature(request, result)) throw "Signature invalid"; + return result; + }, + + async signAndSendTransaction(params) { + const { transaction } = await HOT.request("near:signAndSendTransaction", params); + return transaction as any; + }, + + async signAndSendTransactions(params) { + const results: string[] = []; + for (const tx of params.transactions) { + const { transaction } = await HOT.request("near:signAndSendTransaction", tx); + results.push(transaction); + } + + return results as any[]; + }, + + async verifyOwner() { + throw Error("HOT:verifyOwner is deprecated, use signMessage method with implementation NEP0413 Standard"); + }, + }; + }, + }; + }; +} diff --git a/packages/hot-wallet/tsconfig.json b/packages/hot-wallet/tsconfig.json new file mode 100644 index 000000000..1437194f3 --- /dev/null +++ b/packages/hot-wallet/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "moduleResolution": "bundler", + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/packages/hot-wallet/tsconfig.lib.json b/packages/hot-wallet/tsconfig.lib.json new file mode 100644 index 000000000..e85ef50f6 --- /dev/null +++ b/packages/hot-wallet/tsconfig.lib.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": [] + }, + "include": ["**/*.ts"], + "exclude": ["jest.config.ts", "**/*.spec.ts", "**/*.test.ts"] +} diff --git a/packages/hot-wallet/tsconfig.spec.json b/packages/hot-wallet/tsconfig.spec.json new file mode 100644 index 000000000..b2b5e17a4 --- /dev/null +++ b/packages/hot-wallet/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "ES2015", + "types": ["jest", "node"] + }, + "include": ["jest.config.ts", "**/*.spec.ts"] +} diff --git a/tsconfig.base.json b/tsconfig.base.json index 10cfbc753..76a0f7bed 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -36,6 +36,9 @@ "@near-wallet-selector/core": [ "packages/core/src/index.ts" ], + "@near-wallet-selector/hot-wallet": [ + "packages/hot-wallet/src/index.ts" + ], "@near-wallet-selector/here-wallet": [ "packages/here-wallet/src/index.ts" ], diff --git a/yarn.lock b/yarn.lock index 2de522b97..5f22262e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2458,6 +2458,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.25.0": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.7.tgz#f4e7fe527cd710f8dc0618610b61b4b060c3c341" + integrity sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -3290,10 +3297,10 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@here-wallet/core@3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@here-wallet/core/-/core-3.3.1.tgz#41af535794903d4ac04ef06ac0bbee7b7bbaef8b" - integrity sha512-UcokwayE9J8HR+QUHotvpFGcZ6Xlpc1sjyzSOOeknkt2se56anJZdIPczhkwwNfYR7qAOj2fo3LTLbnmfj7GwA== +"@here-wallet/core@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@here-wallet/core/-/core-3.4.0.tgz#7930c739bafd001375df2489cd14567cb373c805" + integrity sha512-DMBvKMjePmscqaqsVRYMG574STurCBzS3jh+nJ/0rjrFeP6V5h+ObIDmlFMfzE5E0Dz7NlowOdSfhpJQnPB4wg== dependencies: "@near-js/accounts" "^1.2.1" "@near-js/crypto" "^1.2.4" @@ -3303,6 +3310,21 @@ sha1 "^1.1.1" uuid4 "2.0.3" +"@hot-wallet/sdk@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@hot-wallet/sdk/-/sdk-1.0.5.tgz#3e7a8155a77692011f16fa00b82274715857b347" + integrity sha512-6XMswRbEQK/LzdHTMFuhnkEAorEGnR1+ltbX1YkHREmV4EipiPAHgQMtE6kV1Ob0lg0RLyBsQ1088JoFVUSE4w== + dependencies: + "@near-js/crypto" "^1.4.0" + "@near-js/utils" "^1.0.0" + "@near-wallet-selector/core" "^8.9.13" + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/web3.js" "^1.95.0" + borsh "^2.0.0" + js-sha256 "^0.11.0" + sha1 "^1.1.1" + uuid4 "^2.0.3" + "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" @@ -4280,6 +4302,18 @@ randombytes "2.1.0" secp256k1 "5.0.0" +"@near-js/crypto@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@near-js/crypto/-/crypto-1.4.1.tgz#422600a59c3c7fbe0eba36f308546a7ad4c96307" + integrity sha512-hbricJD0H8nwu63Zw16UZQg3ms2W9NwDBsLt3OEtudTcu9q1MRrVZWc7ATjdmTvhkcgmouEFc6oLBsOxnmSLCA== + dependencies: + "@near-js/types" "0.3.1" + "@near-js/utils" "1.0.1" + "@noble/curves" "1.2.0" + borsh "1.0.0" + randombytes "2.1.0" + secp256k1 "5.0.0" + "@near-js/keystores-browser@0.0.12": version "0.0.12" resolved "https://registry.yarnpkg.com/@near-js/keystores-browser/-/keystores-browser-0.0.12.tgz#2a9794a27d1e55ccb549125b29e183eb967fe52c" @@ -4401,6 +4435,11 @@ resolved "https://registry.yarnpkg.com/@near-js/types/-/types-0.2.1.tgz#a298f0e70dbe059ee8c762dfac05c2eae3e0ae0e" integrity sha512-YygQEGMdFe6d2e/6dtNZer9paH396XeAdIKEhY/RPXDUnjDdfiDQ5DK4mM130sEeID2bAH9X1LQ+7vXGRjvyWw== +"@near-js/types@0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@near-js/types/-/types-0.3.1.tgz#35f2649f85881d72fc231a16142e1f0e3b0e8377" + integrity sha512-8qIA7ynAEAuVFNAQc0cqz2xRbfyJH3PaAG5J2MgPPhD18lu/tCGd6pzYg45hjhtiJJRFDRjh/FUWKS+ZiIIxUw== + "@near-js/utils@0.2.2", "@near-js/utils@^0.2.2": version "0.2.2" resolved "https://registry.yarnpkg.com/@near-js/utils/-/utils-0.2.2.tgz#a42c29db9ccd5a02ad583319028fdb7231821ab2" @@ -4421,6 +4460,16 @@ depd "2.0.0" mustache "4.0.0" +"@near-js/utils@1.0.1", "@near-js/utils@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@near-js/utils/-/utils-1.0.1.tgz#c86b31ce3877631f0e4f4664d5746bb88a7cf581" + integrity sha512-MzCAspVJJLrURnSbq059s6cWon2/qbbBVl+Ib1yBOMTs/6EuJ7GRvuSmtmSB7l9Hjjmz8Imn1aB2q3RVYZSbrA== + dependencies: + "@near-js/types" "0.3.1" + bs58 "4.0.0" + depd "2.0.0" + mustache "4.0.0" + "@near-js/wallet-account@1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@near-js/wallet-account/-/wallet-account-1.2.2.tgz#c04e3e515bd3ca93bafbb761c9770d2fdc078837" @@ -4480,6 +4529,16 @@ js-sha256 "0.9.0" rxjs "7.8.1" +"@near-wallet-selector/core@^8.9.13": + version "8.9.16" + resolved "https://registry.yarnpkg.com/@near-wallet-selector/core/-/core-8.9.16.tgz#33cf9ffd0d6eedb17fe8954505cad9ecb00a04b8" + integrity sha512-Bq+bZvwpsYgs8g4mtDMEMUpHwD/+VlHY3hj5pLv6o6C/3Ym0/540/8ydd9VUhMsdpY0Dhv2SLamKiL6PJK6THA== + dependencies: + borsh "1.0.0" + events "3.3.0" + js-sha256 "0.9.0" + rxjs "7.8.1" + "@near-wallet-selector/wallet-utils@^8.9.12": version "8.9.12" resolved "https://registry.yarnpkg.com/@near-wallet-selector/wallet-utils/-/wallet-utils-8.9.12.tgz#fd36a2cedf43b7b78da3f9790b09f00d9d30daee" @@ -4569,6 +4628,13 @@ dependencies: "@noble/hashes" "1.3.3" +"@noble/curves@^1.4.2": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.8.1.tgz#19bc3970e205c99e4bdb1c64a4785706bce497ff" + integrity sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ== + dependencies: + "@noble/hashes" "1.7.1" + "@noble/hashes@1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" @@ -4584,6 +4650,11 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== +"@noble/hashes@1.7.1", "@noble/hashes@^1.4.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.7.1.tgz#5738f6d765710921e7a751e00c20ae091ed8db0f" + integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -6797,6 +6868,52 @@ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.1.tgz#621270c02c0a5d4f4669eb1caa9723c91cf201de" integrity sha512-dzJtaDAAoXx4GCOJpbB2eG/Qj8VDpdwkLsWGzGm+0L7E8/434RyMbAHmk9ubXWVAb9nXmc44jUf8GKqVDiKezg== +"@solana/buffer-layout@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" + integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== + dependencies: + buffer "~6.0.3" + +"@solana/wallet-adapter-base@^0.9.23": + version "0.9.23" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.23.tgz#3b17c28afd44e173f44f658bf9700fd637e12a11" + integrity sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw== + dependencies: + "@solana/wallet-standard-features" "^1.1.0" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + eventemitter3 "^4.0.7" + +"@solana/wallet-standard-features@^1.1.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.3.0.tgz#c489eca9d0c78f97084b4af6ca8ad8c1ca197de5" + integrity sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg== + dependencies: + "@wallet-standard/base" "^1.1.0" + "@wallet-standard/features" "^1.1.0" + +"@solana/web3.js@^1.95.0": + version "1.98.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.98.0.tgz#21ecfe8198c10831df6f0cfde7f68370d0405917" + integrity sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA== + dependencies: + "@babel/runtime" "^7.25.0" + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana/buffer-layout" "^4.0.1" + agentkeepalive "^4.5.0" + bigint-buffer "^1.1.5" + bn.js "^5.2.1" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.1.1" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@stablelib/aead@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" @@ -7139,6 +7256,13 @@ dependencies: tslib "^2.4.0" +"@swc/helpers@^0.5.11": + version "0.5.15" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7" + integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== + dependencies: + tslib "^2.8.0" + "@swc/types@^0.1.9": version "0.1.9" resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.9.tgz#e67cdcc2e4dd74a3cef4474b465eb398e7ae83e2" @@ -7331,7 +7455,7 @@ "@types/express-serve-static-core" "*" "@types/node" "*" -"@types/connect@*": +"@types/connect@*", "@types/connect@^3.4.33": version "3.4.38" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== @@ -7580,6 +7704,11 @@ dependencies: undici-types "~5.26.4" +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + "@types/node@^14.14.31": version "14.18.63" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b" @@ -7764,6 +7893,11 @@ resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.39.tgz#832c58e460c9435e4e34bb866e85e9146e12cdbb" integrity sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg== +"@types/uuid@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + "@types/w3c-web-hid@1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@types/w3c-web-hid/-/w3c-web-hid-1.0.3.tgz#e08587a7d737f8654ea6bc0a88689ce5d3ce2d19" @@ -7774,6 +7908,20 @@ resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.6.tgz#5d8560d0d9f585ffc80865bc773db7bc975b680c" integrity sha512-cSjhgrr8g4KbPnnijAr/KJDNKa/bBa+ixYkywFRvrhvi9n1WEl7yYbtRyzE6jqNQiSxxJxoAW3STaOQwJHndaw== +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.2.2": + version "8.5.14" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.14.tgz#93d44b268c9127d96026cf44353725dd9b6c3c21" + integrity sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw== + dependencies: + "@types/node" "*" + "@types/ws@^8.5.1", "@types/ws@^8.5.5": version "8.5.10" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" @@ -8073,6 +8221,18 @@ mipd "0.0.5" zustand "4.4.1" +"@wallet-standard/base@^1.0.1", "@wallet-standard/base@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@wallet-standard/base/-/base-1.1.0.tgz#214093c0597a1e724ee6dbacd84191dfec62bb33" + integrity sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ== + +"@wallet-standard/features@^1.0.3", "@wallet-standard/features@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@wallet-standard/features/-/features-1.1.0.tgz#f256d7b18940c8d134f66164330db358a8f5200e" + integrity sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg== + dependencies: + "@wallet-standard/base" "^1.1.0" + "@walletconnect/core@2.13.0": version "2.13.0" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.13.0.tgz#6b79b039930643e8ee85a0f512b143a35fdb8b52" @@ -8997,6 +9157,13 @@ agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: dependencies: humanize-ms "^1.2.1" +agentkeepalive@^4.5.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== + dependencies: + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -9718,6 +9885,13 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" + bignumber.js@9.1.2: version "9.1.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" @@ -9740,6 +9914,13 @@ binary-extensions@^2.0.0, binary-extensions@^2.2.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bindings@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bip39-light@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/bip39-light/-/bip39-light-1.0.7.tgz#06a72f251b89389a136d3f177f29b03342adc5ba" @@ -9855,6 +10036,11 @@ borsh@1.0.0: resolved "https://registry.yarnpkg.com/borsh/-/borsh-1.0.0.tgz#b564c8cc8f7a91e3772b9aef9e07f62b84213c1f" integrity sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ== +borsh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-2.0.0.tgz#042a9f109565caac3c6a21297cd8c0ae8db3149d" + integrity sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg== + bottleneck@^2.15.3: version "2.19.5" resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" @@ -10041,7 +10227,7 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3: +buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -10057,6 +10243,13 @@ buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" +bufferutil@^4.0.1: + version "4.0.9" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" + integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== + dependencies: + node-gyp-build "^4.3.0" + bufferutil@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" @@ -10659,7 +10852,7 @@ commander@^11.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== -commander@^2.20.0: +commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -11821,6 +12014,11 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -12493,6 +12691,18 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + esbuild-wasm@0.17.19: version "0.17.19" resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.17.19.tgz#c528495c5363c34a4671fa55404e2b0ba85566ba" @@ -13039,7 +13249,7 @@ eventemitter3@5.0.1, eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== -eventemitter3@^4.0.0, eventemitter3@^4.0.4: +eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== @@ -13210,6 +13420,11 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -13278,6 +13493,11 @@ fast-safe-stringify@^2.0.6: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" @@ -13340,6 +13560,11 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -15393,6 +15618,11 @@ isomorphic-unfetch@3.1.0: node-fetch "^2.6.1" unfetch "^4.2.0" +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + isows@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" @@ -15583,6 +15813,24 @@ java-properties@^1.0.0: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== +jayson@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.3.tgz#db9be2e4287d9fef4fc05b5fe367abe792c2eee8" + integrity sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + uuid "^8.3.2" + ws "^7.5.10" + jest-changed-files@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" @@ -17868,7 +18116,7 @@ node-fetch@2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.8: +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.6.8, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -20808,6 +21056,22 @@ rollup@^3.21.0, rollup@^3.29.2: optionalDependencies: fsevents "~2.3.2" +rpc-websockets@^9.0.2: + version "9.0.4" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.0.4.tgz#9d8ee82533b5d1e13d9ded729e3e38d0d8fa083f" + integrity sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ== + dependencies: + "@swc/helpers" "^0.5.11" + "@types/uuid" "^8.3.4" + "@types/ws" "^8.2.2" + buffer "^6.0.3" + eventemitter3 "^5.0.1" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -21692,16 +21956,7 @@ string-range@~1.2, string-range@~1.2.1: resolved "https://registry.yarnpkg.com/string-range/-/string-range-1.2.2.tgz#a893ed347e72299bc83befbbf2a692a8d239d5dd" integrity sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -21800,14 +22055,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -21959,6 +22207,11 @@ superstruct@^1.0.3: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.4.tgz#0adb99a7578bd2f1c526220da6571b2d485d91ca" integrity sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ== +superstruct@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" + integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -22472,6 +22725,11 @@ tslib@2.7.0, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3. resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== +tslib@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -22984,7 +23242,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid4@2.0.3: +uuid4@2.0.3, uuid4@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid4/-/uuid4-2.0.3.tgz#241e5dfe1704a79c52e2aa40e7e581a5e7b01ab4" integrity sha512-CTpAkEVXMNJl2ojgtpLXHgz23dh8z81u6/HEPiQFOvBc/c2pde6TVHmH4uwY0d/GLF3tb7+VDAj4+2eJaQSdZQ== @@ -23610,7 +23868,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -23628,15 +23886,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -23674,7 +23923,7 @@ ws@8.17.1: resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== -ws@^7.5.1: +ws@^7.5.1, ws@^7.5.10: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== From 245a94369b94c9a96e406950dd00c1dac25c0a79 Mon Sep 17 00:00:00 2001 From: AZbang Date: Tue, 4 Feb 2025 10:31:07 +0300 Subject: [PATCH 2/4] fix: hot-wallet --- package.json | 2 +- packages/hot-wallet/src/lib/index.ts | 3 +-- packages/hot-wallet/tsconfig.json | 1 - yarn.lock | 8 ++++---- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 7716f9e88..724f017b6 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@angular/platform-browser-dynamic": "16.1.9", "@angular/router": "16.1.9", "@here-wallet/core": "3.4.0", - "@hot-wallet/sdk": "1.0.5", + "@hot-wallet/sdk": "1.0.6", "@jscutlery/semver": "5.3.1", "@ledgerhq/hw-transport": "6.30.3", "@ledgerhq/hw-transport-webhid": "6.29.4", diff --git a/packages/hot-wallet/src/lib/index.ts b/packages/hot-wallet/src/lib/index.ts index 64b541a54..8d927f848 100644 --- a/packages/hot-wallet/src/lib/index.ts +++ b/packages/hot-wallet/src/lib/index.ts @@ -1,6 +1,5 @@ import { type WalletModuleFactory, type InjectedWallet } from "@near-wallet-selector/core"; -import { verifySignature } from "@hot-wallet/sdk/nep0314"; -import { HOT } from "@hot-wallet/sdk"; +import { HOT, verifySignature } from "@hot-wallet/sdk"; export function setupHotWallet(): WalletModuleFactory { return async () => { diff --git a/packages/hot-wallet/tsconfig.json b/packages/hot-wallet/tsconfig.json index 1437194f3..0a0453387 100644 --- a/packages/hot-wallet/tsconfig.json +++ b/packages/hot-wallet/tsconfig.json @@ -5,7 +5,6 @@ "strict": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true, - "moduleResolution": "bundler", }, "files": [], "include": [], diff --git a/yarn.lock b/yarn.lock index 5f22262e7..468215abd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3310,10 +3310,10 @@ sha1 "^1.1.1" uuid4 "2.0.3" -"@hot-wallet/sdk@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@hot-wallet/sdk/-/sdk-1.0.5.tgz#3e7a8155a77692011f16fa00b82274715857b347" - integrity sha512-6XMswRbEQK/LzdHTMFuhnkEAorEGnR1+ltbX1YkHREmV4EipiPAHgQMtE6kV1Ob0lg0RLyBsQ1088JoFVUSE4w== +"@hot-wallet/sdk@1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@hot-wallet/sdk/-/sdk-1.0.6.tgz#3c159796049ecfb949c6f2fc888606f01220b978" + integrity sha512-H3YQSCDmxV4RgMPg9rTLu2mAP1rkQT7wqsYeEaQdMtEHqE6o0CtDGrBs8VRvXyBbqrkUNYflO01edMwNI4siOw== dependencies: "@near-js/crypto" "^1.4.0" "@near-js/utils" "^1.0.0" From 5bba704b2c0f533ff340b3194351bf2f2b2ca341 Mon Sep 17 00:00:00 2001 From: AZbang Date: Tue, 4 Feb 2025 11:03:55 +0300 Subject: [PATCH 3/4] fix: hot-wallet --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 724f017b6..7329a711a 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@angular/platform-browser-dynamic": "16.1.9", "@angular/router": "16.1.9", "@here-wallet/core": "3.4.0", - "@hot-wallet/sdk": "1.0.6", + "@hot-wallet/sdk": "1.0.7", "@jscutlery/semver": "5.3.1", "@ledgerhq/hw-transport": "6.30.3", "@ledgerhq/hw-transport-webhid": "6.29.4", diff --git a/yarn.lock b/yarn.lock index 468215abd..e60d2a067 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3310,10 +3310,10 @@ sha1 "^1.1.1" uuid4 "2.0.3" -"@hot-wallet/sdk@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@hot-wallet/sdk/-/sdk-1.0.6.tgz#3c159796049ecfb949c6f2fc888606f01220b978" - integrity sha512-H3YQSCDmxV4RgMPg9rTLu2mAP1rkQT7wqsYeEaQdMtEHqE6o0CtDGrBs8VRvXyBbqrkUNYflO01edMwNI4siOw== +"@hot-wallet/sdk@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@hot-wallet/sdk/-/sdk-1.0.7.tgz#d57e6e13e1a79189410a6a8373b5c9919a6abff3" + integrity sha512-atFCg7w50II4y9FIIvbJmPT2lZ0AeCHy/MY1q5da3tXQdpc6vv3qG4XQwlh2hpegDiixvRi1hATuHpy163INHg== dependencies: "@near-js/crypto" "^1.4.0" "@near-js/utils" "^1.0.0" From d05ffca149d2c6df4987d5c459cdf51fa59e477b Mon Sep 17 00:00:00 2001 From: AZbang Date: Tue, 4 Feb 2025 11:23:25 +0300 Subject: [PATCH 4/4] lint: hot-wallet --- packages/hot-wallet/src/lib/index.ts | 70 +++++++++++++++++++++------- 1 file changed, 54 insertions(+), 16 deletions(-) diff --git a/packages/hot-wallet/src/lib/index.ts b/packages/hot-wallet/src/lib/index.ts index 8d927f848..7ad49ac5b 100644 --- a/packages/hot-wallet/src/lib/index.ts +++ b/packages/hot-wallet/src/lib/index.ts @@ -1,4 +1,9 @@ -import { type WalletModuleFactory, type InjectedWallet } from "@near-wallet-selector/core"; +/* eslint-disable @typescript-eslint/no-explicit-any */ + +import { + type WalletModuleFactory, + type InjectedWallet, +} from "@near-wallet-selector/core"; import { HOT, verifySignature } from "@hot-wallet/sdk"; export function setupHotWallet(): WalletModuleFactory { @@ -18,15 +23,27 @@ export function setupHotWallet(): WalletModuleFactory { }, init: async (config) => { - HOT.subscribe("near:accountsChanged", (e: any) => config.emitter.emit("accountsChanged", e)); - HOT.subscribe("near:signedOut", (e: any) => config.emitter.emit("signedOut", e)); - HOT.subscribe("near:signedIn", (e: any) => config.emitter.emit("signedIn", e)); + HOT.subscribe("near:accountsChanged", (e: any) => + config.emitter.emit("accountsChanged", e) + ); + + HOT.subscribe("near:signedOut", (e: any) => + config.emitter.emit("signedOut", e) + ); + + HOT.subscribe("near:signedIn", (e: any) => + config.emitter.emit("signedIn", e) + ); return { async getAccounts() { try { - if (HOT.isInjected) return [await HOT.request("near:signIn", {})]; - return JSON.parse(localStorage.getItem("hot:near-account") || ""); + if (HOT.isInjected) { + return [await HOT.request("near:signIn", {})]; + } + + const acc = await config.storage.getItem("hot:near-account"); + return JSON.parse(String(acc)); } catch { return []; } @@ -34,9 +51,15 @@ export function setupHotWallet(): WalletModuleFactory { async signIn(data) { const result = await HOT.request("near:signIn", {}); - const accounts = [{ accountId: result.accountId, publicKey: result.publicKey }]; - localStorage.setItem("hot:near-account", JSON.stringify(accounts)); + const accounts = [ + { accountId: result.accountId, publicKey: result.publicKey }, + ]; + config.storage.setItem( + "hot:near-account", + JSON.stringify(accounts) + ); + config.emitter.emit("signedIn", { contractId: data.contractId, methodNames: data.methodNames ?? [], @@ -47,9 +70,12 @@ export function setupHotWallet(): WalletModuleFactory { }, async signOut() { - if (HOT.isInjected) HOT.request("near:signOut", {}); + if (HOT.isInjected) { + HOT.request("near:signOut", {}); + } + config.emitter.emit("signedOut", null); - localStorage.setItem("hot:near-account", "[]"); + config.storage.setItem("hot:near-account", "[]"); }, async signMessage(params) { @@ -60,27 +86,39 @@ export function setupHotWallet(): WalletModuleFactory { }; const result = await HOT.request("near:signMessage", request); - if (!verifySignature(request, result)) throw "Signature invalid"; + if (!verifySignature(request, result)) { + throw "Signature invalid"; + } + return result; }, async signAndSendTransaction(params) { - const { transaction } = await HOT.request("near:signAndSendTransaction", params); + const { transaction } = await HOT.request( + "near:signAndSendTransaction", + params + ); + return transaction as any; }, async signAndSendTransactions(params) { - const results: string[] = []; + const results: Array = []; for (const tx of params.transactions) { - const { transaction } = await HOT.request("near:signAndSendTransaction", tx); + const { transaction } = await HOT.request( + "near:signAndSendTransaction", + tx + ); results.push(transaction); } - return results as any[]; + return results as Array; }, async verifyOwner() { - throw Error("HOT:verifyOwner is deprecated, use signMessage method with implementation NEP0413 Standard"); + throw Error( + "HOT:verifyOwner is deprecated, use signMessage method with implementation NEP0413 Standard" + ); }, }; },