@ic-pay/icpay-widget 1.2.19 → 1.2.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2FZ4TGDZ.js +2 -0
- package/dist/chunk-2FZ4TGDZ.js.map +1 -0
- package/dist/{chunk-OCJP7SJM.js → chunk-YO43OKCJ.js} +20 -20
- package/dist/chunk-YO43OKCJ.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/react/index.js +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/wallet-select-YKQSWA6J.js +2 -0
- package/dist/wc/index.umd.js +4840 -0
- package/package.json +30 -11
- package/dist/chunk-OCJP7SJM.js.map +0 -1
- package/dist/chunk-VPFA2ZHM.js +0 -2
- package/dist/chunk-VPFA2ZHM.js.map +0 -1
- package/dist/wallet-select-M5KY6N6N.js +0 -2
- /package/dist/{wallet-select-M5KY6N6N.js.map → wallet-select-YKQSWA6J.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Actor as Qt,HttpAgent as Yt}from"@dfinity/agent";import{Actor as At}from"@dfinity/agent";var T=class{constructor(t){this.id="plug";this.label="Plug";this.icon=null;this._config=t.config||{},this._adapterCfg=t.adapter}async isInstalled(){return!!(typeof window<"u"&&window.ic&&window.ic.plug)}async isConnected(){try{return!!await window.ic?.plug?.isConnected?.()}catch{return!1}}async connect(){if(!await this.isInstalled())throw new Error("Plug is not installed");await this.isConnected()||await window.ic.plug.requestConnect?.({host:this._config.icHost});let e=await window.ic.plug.getPrincipal?.(),r=typeof e?.toText=="function"?e.toText():e?.toString?.()||null;return{owner:r,principal:r,connected:!0}}async disconnect(){try{await window.ic?.plug?.disconnect?.()}catch{}}async getPrincipal(){try{let t=await window.ic.plug.getPrincipal?.();return typeof t?.toText=="function"?t.toText():t?.toString?.()||null}catch{return null}}getActor(t){let e=window.ic?.plug?.agent;if(!e)throw new Error("Plug agent not initialized");return At.createActor(t.idl,{agent:e,canisterId:t.canisterId})}};import{Actor as wt,HttpAgent as Nt}from"@dfinity/agent";import{AuthClient as It}from"@dfinity/auth-client";var L=class{constructor(t){this.id="ii";this.label="Internet Identity";this.icon=null;this._client=null;this._agent=null;this._config=t.config||{}}async client(){return this._client?this._client:(this._client=await It.create(),this._client)}async isInstalled(){return!0}async isConnected(){return await(await this.client()).isAuthenticated()}async connect(){let t=await this.client();await t.isAuthenticated()||await t.login({identityProvider:this._config.derivationOrigin,maxTimeToLive:BigInt(10080*60*1e9)});let r=t.getIdentity();this._agent=new Nt({host:this._config.icHost,identity:r});let i=r.getPrincipal().toText();return{owner:i,principal:i,connected:!0}}async disconnect(){try{await(await this.client()).logout()}catch{}this._agent=null}async getPrincipal(){try{return(await this.client()).getIdentity().getPrincipal().toText()}catch{return null}}getActor(t){if(!this._agent)throw new Error("II agent not initialized");return wt.createActor(t.idl,{agent:this._agent,canisterId:t.canisterId})}};import{Actor as pt,HttpAgent as jt}from"@dfinity/agent";import{PostMessageTransport as Dt}from"@slide-computer/signer-web";import{Signer as ht}from"@slide-computer/signer";import{SignerAgent as ft}from"@slide-computer/signer-agent";var C=class{constructor(t){this.id="nfid";this.label="NFID";this.icon=null;this._agent=null;this._principal=null;this._config=t.config||{}}async isInstalled(){return!0}async isConnected(){return!!this._agent}async connect(){let e=(this._config?.adapters||{}).nfid?.config||{},r=e.signerUrl,i=e.hostUrl||this._config.icHost;if(!r)throw new Error("NFID signerUrl not configured");if(!i)throw new Error("IC host not configured");let a=new jt({host:i}),n=new Dt({url:r,...e.transport||{}}),c=new ht({transport:n});await c.openChannel();let w=(await c.accounts())?.[0]?.owner,N=await ft.create({signer:c,agent:a,account:w}),I=null;try{I=(await N.getPrincipal())?.toText?.()||null}catch{}return this._agent=N,this._principal=I,{owner:I,principal:I,connected:!0}}async disconnect(){this._agent=null,this._principal=null}async getPrincipal(){return this._principal}getActor(t){if(!this._agent)throw new Error("NFID agent not initialized");return pt.createActor(t.idl,{agent:this._agent,canisterId:t.canisterId})}};import{Actor as mt,HttpAgent as zt}from"@dfinity/agent";import{PostMessageTransport as Tt}from"@slide-computer/signer-web";import{Signer as Lt}from"@slide-computer/signer";import{SignerAgent as Ct}from"@slide-computer/signer-agent";var v=class{constructor(t){this.id="oisy";this.label="Oisy";this.icon=null;this._agent=null;this._principal=null;this._config=t.config||{}}async isInstalled(){return!0}async isConnected(){return!!this._agent}async connect(){let e=(this._config?.adapters||{}).oisy?.config||{},r=e.signerUrl,i=e.hostUrl||this._config.icHost,a=e.transport||{};if(!r)throw new Error("Oisy signerUrl not configured");if(!i)throw new Error("IC host not configured");let n=a.windowOpenerFeatures??"",c=new zt({host:i}),y=new Tt({url:r,windowOpenerFeatures:n,detectNonClickEstablishment:!1,...a}),w=new Lt({transport:y});await w.openChannel();let I=(await w.accounts())?.[0]?.owner,l=await Ct.create({signer:w,agent:c,account:I}),s=null;try{s=(await l.getPrincipal())?.toText?.()||null}catch{}return this._agent=l,this._principal=s,{owner:s,principal:s,connected:!0}}async disconnect(){this._agent=null,this._principal=null}async getPrincipal(){return this._principal}getActor(t){if(!this._agent)throw new Error("Oisy agent not initialized");return mt.createActor(t.idl,{agent:this._agent,canisterId:t.canisterId})}};var b=class{constructor(t){this.id="metamask";this.label="MetaMask";this.config=t.config||{}}isMobileBrowser(){try{let t=typeof navigator<"u"?navigator:window?.navigator,e=String(t?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(e)}catch{return!1}}getProvider(){try{let e=(typeof window<"u"?window:{}).ethereum;if(e&&Array.isArray(e.providers)){let r=e.providers.find(i=>i&&i.isMetaMask);if(r)return r}if(e&&e.isMetaMask||this.isMobileBrowser()&&e&&typeof e.request=="function")return e}catch{}return null}getEvmProvider(){return this.getProvider()}async isInstalled(){try{return!!this.getProvider()}catch{return!1}}async isConnected(){try{let t=this.getProvider();if(!t)return!1;let r=await(typeof t.request=="function"?t.request({method:"eth_accounts"}):Promise.resolve([]));return Array.isArray(r)&&r.length>0}catch{return!1}}async connect(){let t=this.getProvider();if(!t){if(typeof window<"u"&&this.isMobileBrowser()){try{let y=`https://metamask.app.link/dapp/${String(window.location?.href||"").replace(/^https?:\/\//i,"")}`;try{try{window.dispatchEvent(new CustomEvent("icpay-sdk-wallet-deeplink",{detail:{wallet:"metamask",url:y}}))}catch{}window.location.href=y}catch{try{window.open(y,"_self","noopener,noreferrer")}catch{}}}catch{}throw new Error("Opening MetaMask\u2026 If nothing happens, install MetaMask and try again.")}throw new Error("MetaMask not available")}let e=n=>new Promise(c=>setTimeout(c,n)),r=async()=>{try{let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}try{let n=await t.request?.({method:"eth_requestAccounts"});if(Array.isArray(n)&&n.length>0)return n}catch(n){if(n&&(n.code===4001||n.code==="4001"))throw new Error("Connection request was rejected")}try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}return[]},i=[];for(let n=0;n<3&&i.length===0;n++)t=this.getProvider()||t,i=await r(),i.length===0&&await e(300);let a=Array.isArray(i)&&i[0]||"";if(!a)throw new Error("No account returned by MetaMask");return{owner:a,principal:a,connected:!0}}async disconnect(){try{let t=this.getProvider()||(typeof window<"u"?window.ethereum:null);if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=this.getProvider()||(typeof window<"u"?window.ethereum:null);if(!t)return null;let e=await t.request?.({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};var R="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzNTguOCAxNzkuOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzU4LjggMTc5Ljg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8yXyk7fQoJLnN0MntmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiMyOUFCRTI7fQo8L3N0eWxlPgo8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjIyNC43ODUzIiB5MT0iMjU3Ljc1MzYiIHgyPSIzNDguMDY2MyIgeTI9IjEzMy40NTgxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMjcyKSI+Cgk8c3RvcCAgb2Zmc2V0PSIwLjIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjE1QTI0Ii8+Cgk8c3RvcCAgb2Zmc2V0PSIwLjY4NDEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGQkIwM0IiLz4KPC9saW5lYXJHcmFkaWVudD4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTI3MS42LDBjLTIwLDAtNDEuOSwxMC45LTY1LDMyLjRjLTEwLjksMTAuMS0yMC41LDIxLjEtMjcuNSwyOS44YzAsMCwxMS4yLDEyLjksMjMuNSwyNi44CgljNi43LTguNCwxNi4yLTE5LjgsMjcuMy0zMC4xYzIwLjUtMTkuMiwzMy45LTIzLjEsNDEuNi0yMy4xYzI4LjgsMCw1Mi4yLDI0LjIsNTIuMiw1NC4xYzAsMjkuNi0yMy40LDUzLjgtNTIuMiw1NC4xCgljLTEuNCwwLTMtMC4yLTUtMC42YzguNCwzLjksMTcuNSw2LjcsMjYsNi43YzUyLjgsMCw2My4yLTM2LjUsNjMuOC0zOS4xYzEuNS02LjcsMi40LTEzLjcsMi40LTIwLjlDMzU4LjYsNDAuNCwzMTkuNiwwLDI3MS42LDB6Ii8+CjxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTMzLjk0NjEiIHkxPSIxMDYuNDI2MiIgeDI9IjEwLjY2NTMiIHkyPSIyMzAuNzIxNSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDI3MikiPgoJPHN0b3AgIG9mZnNldD0iMC4yMSIgc3R5bGU9InN0b3AtY29sb3I6I0VEMUU3OSIvPgoJPHN0b3AgIG9mZnNldD0iMC44OTI5IiBzdHlsZT0ic3RvcC1jb2xvcjojNTIyNzg1Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04Ny4xLDE3OS44YzIwLDAsNDEuOS0xMC45LDY1LTMyLjRjMTAuOS0xMC4xLDIwLjUtMjEuMSwyNy41LTI5LjhjMCwwLTExLjItMTIuOS0yMy41LTI2LjgKCWMtNi43LDguNC0xNi4yLDE5LjgtMjcuMywzMC4xYy0yMC41LDE5LTM0LDIzLjEtNDEuNiwyMy4xYy0yOC44LDAtNTIuMi0yNC4yLTUyLjItNTQuMWMwLTI5LjYsMjMuNC01My44LDUyLjItNTQuMQoJYzEuNCwwLDMsMC4yLDUsMC42Yy04LjQtMy45LTE3LjUtNi43LTI2LTYuN0MxMy40LDI5LjYsMyw2Ni4xLDIuNCw2OC44QzAuOSw3NS41LDAsODIuNSwwLDg5LjdDMCwxMzkuNCwzOSwxNzkuOCw4Ny4xLDE3OS44eiIvPgo8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTI3LjMsNTkuN2MtNS44LTUuNi0zNC0yOC41LTYxLTI5LjNDMTguMSwyOS4yLDQsNjQuMiwyLjcsNjguN0MxMiwyOS41LDQ2LjQsMC4yLDg3LjIsMAoJYzMzLjMsMCw2NywzMi43LDkxLjksNjIuMmMwLDAsMC4xLTAuMSwwLjEtMC4xYzAsMCwxMS4yLDEyLjksMjMuNSwyNi44YzAsMCwxNCwxNi41LDI4LjgsMzFjNS44LDUuNiwzMy45LDI4LjIsNjAuOSwyOQoJYzQ5LjUsMS40LDYzLjItMzUuNiw2My45LTM4LjRjLTkuMSwzOS41LTQzLjYsNjguOS04NC42LDY5LjFjLTMzLjMsMC02Ny0zMi43LTkyLTYyLjJjMCwwLjEtMC4xLDAuMS0wLjEsMC4yCgljMCwwLTExLjItMTIuOS0yMy41LTI2LjhDMTU2LjIsOTAuOCwxNDIuMiw3NC4yLDEyNy4zLDU5Ljd6IE0yLjcsNjkuMWMwLTAuMSwwLTAuMiwwLjEtMC4zQzIuNyw2OC45LDIuNyw2OSwyLjcsNjkuMXoiLz4KPC9zdmc+Cg==";var B="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45MDIyIDMuMTU2MjlDMTYuNzcxNCAzLjA2MzYzIDE3LjQwMDggMi4yODM5OCAxNy4zMDgxIDEuNDE0ODlDMTcuMjE1NSAwLjU0NTgwOSAxNi40MzU4IC0wLjA4MzYwOTkgMTUuNTY2NyAwLjAwOTA0OTQ2TDEyLjMzNDUgMC4zNTM2MzNDMTAuNjc4NiAwLjUzMDE2NSA5LjM1MDQ2IDAuNjcxNzUxIDguMjcxOCAwLjg2NzMwNkM3LjE2MDYgMS4wNjg3NiA2LjIwODI3IDEuMzQ0MTQgNS4zMjM3OCAxLjgzOTgxQzMuODg3NzMgMi42NDQ1NyAyLjY5NzE5IDMuODIzODUgMS44Nzk0NCA1LjI1MTk2QzEuMzc1NjggNi4xMzE3MyAxLjA5MjA0IDcuMDgxMTIgMC44ODExODUgOC4xODk2MUMwLjY3NjUzNSA5LjI2NTQ5IDAuNTIzODkzIDEwLjU5MSAwLjMzMzYyMSAxMi4yNDMyTDAuMzI1NDI0IDEyLjMxNDRMMC4wMDgwNjAwNiAxNS40NzA0Qy0wLjA3OTM4NzUgMTYuMzQgMC41NTQ3MjYgMTcuMTE1OSAxLjQyNDM5IDE3LjIwMzRDMi4yOTQwNiAxNy4yOTA4IDMuMDY5OTUgMTYuNjU2NyAzLjE1NzQgMTUuNzg3MUwzLjQ3MjQ4IDEyLjY1MzhDMy42NzA1NCAxMC45MzQgMy44MTA2NiA5LjcyNzMgMy45OTA2NiA4Ljc4MTAzQzQuMTY3MzEgNy44NTIzNSA0LjM2NDQ5IDcuMjgxODEgNC42MjYyNiA2LjgyNDY3QzUuMTU5MDEgNS44OTQyNyA1LjkzNDg3IDUuMTI1NTkgNi44NzEyMSA0LjYwMDg2QzcuMzMxNTEgNC4zNDI5MSA3LjkwNDg2IDQuMTUwNTEgOC44MzY0NiAzLjk4MTYxQzkuNzg3NjYgMy44MDkxNiAxMS4wMDA1IDMuNjc4ODggMTIuNzI5OSAzLjQ5NDVMMTUuOTAyMiAzLjE1NjI5Wk00Ni42OTE5IDEuNDE0ODlDNDYuNTk5MiAyLjI4Mzk4IDQ3LjIyODYgMy4wNjM2MyA0OC4wOTc4IDMuMTU2MjlMNTEuMjcwMSAzLjQ5NDVDNTIuOTk5NSAzLjY3ODg4IDU0LjIxMjMgMy44MDkxNiA1NS4xNjM1IDMuOTgxNjFDNTYuMDk1MSA0LjE1MDUxIDU2LjY2ODUgNC4zNDI5MSA1Ny4xMjg4IDQuNjAwODZDNTguMDY1MSA1LjEyNTU5IDU4Ljg0MSA1Ljg5NDI3IDU5LjM3MzcgNi44MjQ2N0M1OS42MzU1IDcuMjgxODEgNTkuODMyNyA3Ljg1MjM1IDYwLjAwOTMgOC43ODEwM0M2MC4xODkzIDkuNzI3MyA2MC4zMjk1IDEwLjkzNCA2MC41Mjc1IDEyLjY1MzhMNjAuODQyNiAxNS43ODcxQzYwLjkzIDE2LjY1NjcgNjEuNzA1OSAxNy4yOTA4IDYyLjU3NTYgMTcuMjAzNEM2My40NDUzIDE3LjExNTkgNjQuMDc5NCAxNi4zNCA2My45OTE5IDE1LjQ3MDRMNjMuNjc0NiAxMi4zMTQ0TDYzLjY2NjQgMTIuMjQzMkM2My40NzYxIDEwLjU5MSA2My4zMjM1IDkuMjY1NDkgNjMuMTE4OCA4LjE4OTYxQzYyLjkwOCA3LjA4MTEyIDYyLjYyNDMgNi4xMzE3MyA2Mi4xMjA2IDUuMjUxOTZDNjEuMzAyOCAzLjgyMzg1IDYwLjExMjMgMi42NDQ1NyA1OC42NzYyIDEuODM5ODFDNTcuNzkxNyAxLjM0NDE0IDU2LjgzOTQgMS4wNjg3NiA1NS43MjgyIDAuODY3MzA2QzU0LjY0OTUgMC42NzE3NTEgNTMuMzIxNCAwLjUzMDE2NSA1MS42NjU1IDAuMzUzNjMzTDQ4LjQzMzMgMC4wMDkwNDk0NkM0Ny41NjQyIC0wLjA4MzYwOTkgNDYuNzg0NSAwLjU0NTgwOSA0Ni42OTE5IDEuNDE0ODlaTTQ2LjY5MTkgNjIuNTg1MUM0Ni41OTkyIDYxLjcxNiA0Ny4yMjg2IDYwLjkzNjQgNDguMDk3OCA2MC44NDM3TDUxLjI3MDEgNjAuNTA1NUM1Mi45OTk1IDYwLjMyMTEgNTQuMjEyMyA2MC4xOTA4IDU1LjE2MzUgNjAuMDE4NEM1Ni4wOTUxIDU5Ljg0OTUgNTYuNjY4NSA1OS42NTcxIDU3LjEyODggNTkuMzk5MUM1OC4wNjUxIDU4Ljg3NDQgNTguODQxIDU4LjEwNTcgNTkuMzczNyA1Ny4xNzUzQzU5LjYzNTUgNTYuNzE4MiA1OS44MzI3IDU2LjE0NzYgNjAuMDA5MyA1NS4yMTlDNjAuMTg5MyA1NC4yNzI3IDYwLjMyOTUgNTMuMDY2IDYwLjUyNzUgNTEuMzQ2Mkw2MC44NDI2IDQ4LjIxMjlDNjAuOTMgNDcuMzQzMyA2MS43MDU5IDQ2LjcwOTIgNjIuNTc1NiA0Ni43OTY2QzYzLjQ0NTMgNDYuODg0MSA2NC4wNzk0IDQ3LjY2IDYzLjk5MTkgNDguNTI5Nkw2My42NzQ2IDUxLjY4NTZMNjMuNjY2NCA1MS43NTY4QzYzLjQ3NjEgNTMuNDA5IDYzLjMyMzUgNTQuNzM0NSA2My4xMTg4IDU1LjgxMDRDNjIuOTA4IDU2LjkxODkgNjIuNjI0MyA1Ny44NjgzIDYyLjEyMDYgNTguNzQ4QzYxLjMwMjggNjAuMTc2MiA2MC4xMTIzIDYxLjM1NTQgNTguNjc2MiA2Mi4xNjAyQzU3Ljc5MTcgNjIuNjU1OSA1Ni44Mzk0IDYyLjkzMTIgNTUuNzI4MiA2My4xMzI3QzU0LjY0OTYgNjMuMzI4MiA1My4zMjE2IDYzLjQ2OTggNTEuNjY1OCA2My42NDYzTDUxLjY2NTYgNjMuNjQ2M0w1MS42NjU1IDYzLjY0NjRMNTEuNjY1NSA2My42NDY0TDQ4LjQzMzMgNjMuOTkxQzQ3LjU2NDIgNjQuMDgzNiA0Ni43ODQ1IDYzLjQ1NDIgNDYuNjkxOSA2Mi41ODUxWk0xNy4zMDgxIDYyLjU4NTZDMTcuNDAwOCA2MS43MTY1IDE2Ljc3MTQgNjAuOTM2OSAxNS45MDIyIDYwLjg0NDJMMTIuNzI5OSA2MC41MDZDMTEuMDAwNSA2MC4zMjE2IDkuNzg3NjYgNjAuMTkxMyA4LjgzNjQ2IDYwLjAxODlDNy45MDQ4NiA1OS44NSA3LjMzMTUxIDU5LjY1NzYgNi44NzEyMSA1OS4zOTk2QzUuOTM0ODcgNTguODc0OSA1LjE1OTAxIDU4LjEwNjIgNC42MjYyNiA1Ny4xNzU4QzQuMzY0NDkgNTYuNzE4NyA0LjE2NzMxIDU2LjE0ODEgMy45OTA2NiA1NS4yMTk1QzMuODEwNjYgNTQuMjczMiAzLjY3MDU0IDUzLjA2NjUgMy40NzI0OCA1MS4zNDY3TDMuMTU3NCA0OC4yMTM0QzMuMDY5OTUgNDcuMzQzOCAyLjI5NDA2IDQ2LjcwOTcgMS40MjQzOSA0Ni43OTcxQzAuNTU0NzI2IDQ2Ljg4NDYgLTAuMDc5Mzg3NSA0Ny42NjA0IDAuMDA4MDYwMDYgNDguNTMwMUwwLjMyNTQyNCA1MS42ODYxTDAuMzMzNjIxIDUxLjc1NzNDMC41MjM4OTMgNTMuNDA5NSAwLjY3NjUzNSA1NC43MzUgMC44ODExODUgNTUuODEwOUMxLjA5MjA0IDU2LjkxOTQgMS4zNzU2OCA1Ny44Njg4IDEuODc5NDQgNTguNzQ4NUMyLjY5NzE5IDYwLjE3NjYgMy44ODc3MyA2MS4zNTU5IDUuMzIzNzggNjIuMTYwN0M2LjIwODI3IDYyLjY1NjMgNy4xNjA2IDYyLjkzMTcgOC4yNzE4IDYzLjEzMzJDOS4zNTA0NCA2My4zMjg3IDEwLjY3ODYgNjMuNDcwMyAxMi4zMzQ1IDYzLjY0NjhMMTIuMzM0NSA2My42NDY5TDE1LjU2NjcgNjMuOTkxNEMxNi40MzU4IDY0LjA4NDEgMTcuMjE1NSA2My40NTQ3IDE3LjMwODEgNjIuNTg1NlpNMTYuNDUxMiAxOS43OTU0QzE1LjY5NTUgMTkuNzk1NCAxNS4wODI4IDIwLjQwODEgMTUuMDgyOCAyMS4xNjM4VjQzLjI5NzJDMTUuMDgyOCA0NC4wNTMgMTUuNjk1NSA0NC42NjU2IDE2LjQ1MTIgNDQuNjY1NkgyMC43NDk0QzIxLjUwNTIgNDQuNjY1NiAyMi4xMTc4IDQ0LjA1MyAyMi4xMTc4IDQzLjI5NzJWMjEuMTYzOEMyMi4xMTc4IDIwLjQwODEgMjEuNTA1MiAxOS43OTU0IDIwLjc0OTQgMTkuNzk1NEgxNi40NTEyWk0yOC4xMDgyIDE5Ljc5NTRDMjcuMzUyNSAxOS43OTU0IDI2LjczOTggMjAuNDA4MSAyNi43Mzk4IDIxLjE2MzhWNDMuMjk3MkMyNi43Mzk4IDQ0LjA1MyAyNy4zNTI1IDQ0LjY2NTYgMjguMTA4MiA0NC42NjU2SDM4LjUwMDRDNDEuMjI0NCA0NC42NjU2IDQzLjY0MDUgNDQuMTU2NCA0NS43NDg3IDQzLjEzNzlDNDcuODU2OCA0Mi4xMTk0IDQ5LjQ5MTIgNDAuNjc0NiA1MC42NTE5IDM4LjgwMzRDNTEuODEyNSAzNi45MzIyIDUyLjM5MjkgMzQuNzQxMiA1Mi4zOTI5IDMyLjIzMDVDNTIuMzkyOSAyOS43MTk4IDUxLjgxMjUgMjcuNTI4OSA1MC42NTE5IDI1LjY1NzdDNDkuNDkxMiAyMy43ODY1IDQ3Ljg1NjggMjIuMzQxNyA0NS43NDg3IDIxLjMyMzJDNDMuNjQwNSAyMC4zMDQ3IDQxLjIyNDQgMTkuNzk1NCAzOC41MDA0IDE5Ljc5NTRIMjguMTA4MlpNNDMuMzMyNiAzNy4yNDAxQzQyLjA1MzUgMzguNDQ4MSA0MC4zNDggMzkuMDUyMSAzOC4yMTYyIDM5LjA1MjFIMzQuMTg1NEMzMy45NTg3IDM5LjA1MjEgMzMuNzc0OSAzOC44NjgzIDMzLjc3NDkgMzguNjQxNlYyNS44MTk1QzMzLjc3NDkgMjUuNTkyOCAzMy45NTg3IDI1LjQwOSAzNC4xODU0IDI1LjQwOUgzOC4yMTYyQzQwLjM0OCAyNS40MDkgNDIuMDUzNSAyNi4wMTMgNDMuMzMyNiAyNy4yMjFDNDQuNjM1NCAyOC40Mjg5IDQ1LjI4NjggMzAuMDk4OCA0NS4yODY4IDMyLjIzMDVDNDUuMjg2OCAzNC4zNjIzIDQ0LjYzNTQgMzYuMDMyMSA0My4zMzI2IDM3LjI0MDFaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfODAzODBfNTQpIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfODAzODBfNTQiIHgxPSIwLjc2NTgxMiIgeTE9Ii0yLjcwNDk2ZS0wNyIgeDI9IjYzLjU0MTciIHkyPSI2NC4yNzkzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiMwMEE2OTUiLz4KPHN0b3Agb2Zmc2V0PSIwLjUiIHN0b3AtY29sb3I9IiMwMTg0NzciLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA2RjY0Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==";var V="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMjIiIGN5PSIyMiIgcj0iMjIiIGZpbGw9IiMwMDY2RkYiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNC40MTIgMzMuNDE5M0wyMy44ODI3IDM1Ljc2MDNDMjMuODAzNyAzNi4xMDk5IDIzLjQ2OTMgMzYuMzQwNSAyMy4xMTUyIDM2LjI4NThDMjIuMzA4IDM2LjE2MSAyMS40OSAzNi4wMTc3IDIwLjY2MzcgMzUuODU5NEMyMC4yODQyIDM1Ljc4NjcgMjAuMDQyMyAzNS40MTMzIDIwLjEyNzUgMzUuMDM2NUwyMC42MDY3IDMyLjkxN0MyMC4yNzExIDMyLjg1MTMgMTkuOTMzNCAzMi43ODAyIDE5LjU5NCAzMi43MDQyQzE5LjI4OCAzMi42MzQ0IDE4Ljk4NSAzMi41NjE1IDE4LjY4NTQgMzIuNDg1NUwxOC4yMDY0IDM0LjYwNDRDMTguMTIxMiAzNC45ODEgMTcuNzQyNiAzNS4yMTQgMTcuMzY4OSAzNS4xMTY4QzE2LjU1NDggMzQuOTA1IDE1Ljc1NDcgMzQuNjgzNiAxNC45NzIzIDM0LjQ1MDRDMTQuNjI4NCAzNC4zNDc5IDE0LjQyNTEgMzMuOTk1NSAxNC41MDQzIDMzLjY0NTVMMTUuMDMwOCAzMS4zMTY0QzkuODI2OTUgMjkuMjI5NyA2LjU0MTYxIDI1LjY4MyA3LjkzNjAzIDE5LjYyNjJMOC4yNzE1NiAxOC4xNDIxQzkuNjIwOTQgMTIuMDYyNiAxNC4xMTA5IDEwLjI4MTEgMTkuNzA1NiAxMC42MzkzTDIwLjIzMTggOC4zMTE3N0MyMC4zMTA5IDcuOTYxNzMgMjAuNjQ2IDcuNzMxMDUgMjEuMDAwNiA3Ljc4NjQ1QzIxLjgwNzIgNy45MTI0OSAyMi42MjQ3IDguMDU2ODMgMjMuNDUwNyA4LjIxNTkyQzIzLjgyOTkgOC4yODg5NSAyNC4wNzE0IDguNjYyMTMgMjMuOTg2MyA5LjAzODc1TDIzLjUwNzMgMTEuMTU3NUMyMy44MTA0IDExLjIxNzkgMjQuMTE1MyAxMS4yODI0IDI0LjQyMTUgMTEuMzUxMUMyNC43NjA5IDExLjQyNzggMjUuMDk2NSAxMS41MDgzIDI1LjQyNzcgMTEuNTkyN0wyNS45MDY1IDkuNDc1MUMyNS45OTE3IDkuMDk4MjYgMjYuMzcwNyA4Ljg2NTI4IDI2Ljc0NDUgOC45NjI4OUMyNy41NTg2IDkuMTc1NDQgMjguMzU4NiA5LjM5Nzg4IDI5LjE0MSA5LjYzMjQxQzI5LjQ4NDMgOS43MzUzNCAyOS42ODY5IDEwLjA4NzQgMjkuNjA3OSAxMC40MzdMMjkuMDgwMSAxMi43NzE3QzM0LjIxNjEgMTQuODU4IDM3LjQyNjEgMTguNDAyIDM2LjA2NDMgMjQuNDI1NkwzNS43Mjg4IDI1LjkwOTdDMzQuMzkwOSAzMS45Mzc2IDI5Ljk0OTIgMzMuNzQyMSAyNC40MTIgMzMuNDE5M1pNMzEuOTYyOSAyNC43MDM5TDMyLjE1MTcgMjMuODY4N0MzMy40ODE0IDE4LjM0MzQgMjkuMDYwMSAxNi4yNzk3IDIzLjYwOTQgMTQuOTY3NkMxOC4wOTg4IDEzLjgwMTUgMTMuMjE5NiAxMy43NjI2IDEyLjA0MzIgMTkuMzIyNkwxMS44NTQ0IDIwLjE1NzhDMTAuNTE4OSAyNS43MDg0IDE0Ljk0MDMgMjcuNzcyMSAyMC40MTY1IDI5LjA5QzI1LjkwMTYgMzAuMjUwMyAzMC43ODA3IDMwLjI4OTMgMzEuOTYyOSAyNC43MDM5WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==";var q="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAF1GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDMgNzkuOTY5MGE4N2ZjLCAyMDI1LzAzLzA2LTIwOjUwOjE2ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjYuMTEgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDI1LTExLTE2VDAxOjA1OjMxKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyNS0xMS0xNlQwMTowNzoxNSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0xMS0xNlQwMTowNzoxNSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjM3ZmUzMDEtMjdjNC00ZWJlLTgxZGQtMWJhYjk2NGE5MzllIiB4bXBNTTpEb2N1bWVu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";var H="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzUiIGhlaWdodD0iMzQiIHZpZXdCb3g9IjAgMCAzNSAzNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMyLjcwNzcgMzIuNzUyMkwyNS4xNjg4IDMwLjUxNzRMMTkuNDgzMyAzMy45MDA4TDE1LjUxNjcgMzMuODk5MUw5LjgyNzkzIDMwLjUxNzRMMi4yOTIyNSAzMi43NTIyTDAgMjUuMDQ4OUwyLjI5MjI1IDE2LjQ5OTNMMCA5LjI3MDk0TDIuMjkyMjUgMC4zMTIyNTZMMTQuMDY3NCA3LjMxNTU0SDIwLjkzMjZMMzIuNzA3NyAwLjMxMjI1NkwzNSA5LjI3MDk0TDMyLjcwNzcgMTYuNDk5M0wzNSAyNS4wNDg5TDMyLjcwNzcgMzIuNzUyMloiIGZpbGw9IiNGRjVDMTYiLz4KPHBhdGggZD0iTTIuMjkzOTUgMC4zMTIyNTZMMTQuMDY5MSA3LjMyMDQ3TDEzLjYwMDggMTIuMTMwMUwyLjI5Mzk1IDAuMzEyMjU2WiIgZmlsbD0iI0ZGNUMxNiIvPgo8cGF0aCBkPSJNOS44Mjk1OSAyNS4wNTIyTDE1LjAxMDYgMjguOTgxMUw5LjgyOTU5IDMwLjUxNzVWMjUuMDUyMloiIGZpbGw9IiNGRjVDMTYiLz4KPHBhdGggZD0iTTE0LjU5NjYgMTguNTU2NUwxMy42MDA5IDEyLjEzMzNMNy4yMjY5MiAxNi41MDA5TDcuMjIzNjMgMTYuNDk5M1YxNi41MDI1TDcuMjQzMzUgMjAuOTk4M0w5LjgyODA5IDE4LjU1NjVIOS44Mjk3NEgxNC41OTY2WiIgZmlsbD0iI0ZGNUMxNiIvPgo8cGF0aCBkPSJNMzIuNzA3NyAwLjMxMjI1NkwyMC45MzI2IDcuMzIwNDdMMjEuMzk5MyAxMi4xMzAxTDMyLjcwNzcgMC4zMTIyNTZaIiBmaWxsPSIjRkY1QzE2Ii8+CjxwYXRoIGQ9Ik0yNS4xNzIyIDI1LjA1MjJMMTkuOTkxMiAyOC45ODExTDI1LjE3MjIgMzAuNTE3NVYyNS4wNTIyWiIgZmlsbD0iI0ZGNUMxNiIvPgo8cGF0aCBkPSJNMjcuNzc2NiAxNi41MDI1SDI3Ljc3ODNIMjcuNzc2NlYxNi40OTkzTDI3Ljc3NSAxNi41MDA5TDIxLjQwMSAxMi4xMzMzTDIwLjQwNTMgMTguNTU2NUgyNS4xNzIyTDI3Ljc1ODYgMjAuOTk4M0wyNy43NzY2IDE2LjUwMjVaIiBmaWxsPSIjRkY1QzE2Ii8+CjxwYXRoIGQ9Ik05LjgyNzkzIDMwLjUxNzVMMi4yOTIyNSAzMi43NTIyTDAgMjUuMDUyMkg5LjgyNzkzVjMwLjUxNzVaIiBmaWxsPSIjRTM0ODA3Ii8+CjxwYXRoIGQ9Ik0xNC41OTQ3IDE4LjU1NDlMMTYuMDM0MSAyNy44NDA2TDE0LjAzOTMgMjIuNjc3N0w3LjIzOTc1IDIwLjk5ODRMOS44MjYxMyAxOC41NTQ5SDE0LjU5M0gxNC41OTQ3WiIgZmlsbD0iI0UzNDgwNyIvPgo8cGF0aCBkPSJNMjUuMTcyMSAzMC41MTc1TDMyLjcwNzggMzIuNzUyMkwzNS4wMDAxIDI1LjA1MjJIMjUuMTcyMVYzMC41MTc1WiIgZmlsbD0iI0UzNDgwNyIvPgo8cGF0aCBkPSJNMjAuNDA1MyAxOC41NTQ5TDE4Ljk2NTggMjcuODQwNkwyMC45NjA3IDIyLjY3NzdMMjcuNzYwMiAyMC45OTg0TDI1LjE3MjIgMTguNTU0OUgyMC40MDUzWiIgZmlsbD0iI0UzNDgwNyIvPgo8cGF0aCBkPSJNMCAyNS4wNDg4TDIuMjkyMjUgMTYuNDk5M0g3LjIyMTgzTDcuMjM5OTEgMjAuOTk2N0wxNC4wMzk0IDIyLjY3NkwxNi4wMzQzIDI3LjgzODlMMTUuMDA4OSAyOC45NzZMOS44Mjc5MyAyNS4wNDcySDBWMjUuMDQ4OFoiIGZpbGw9IiNGRjhENUQiLz4KPHBhdGggZD0iTTM1LjAwMDEgMjUuMDQ4OEwzMi43MDc4IDE2LjQ5OTNIMjcuNzc4M0wyNy43NjAyIDIwLjk5NjdMMjAuOTYwNyAyMi42NzZMMTguOTY1OCAyNy44Mzg5TDE5Ljk5MTIgMjguOTc2TDI1LjE3MjIgMjUuMDQ3MkgzNS4wMDAxVjI1LjA0ODhaIiBmaWxsPSIjRkY4RDVEIi8+CjxwYXRoIGQ9Ik0yMC45MzI1IDcuMzE1NDNIMTcuNDk5OUgxNC4wNjczTDEzLjYwMDYgMTIuMTI1MUwxNi4wMzQyIDI3LjgzNEgxOC45NjU2TDIxLjQwMDggMTIuMTI1MUwyMC45MzI1IDcuMzE1NDNaIiBmaWxsPSIjRkY4RDVEIi8+CjxwYXRoIGQ9Ik0yLjI5MjI1IDAuMzEyMjU2TDAgOS4yNzA5NEwyLjI5MjI1IDE2LjQ5OTNINy4yMjE4M0wxMy41OTkxIDEyLjEzMDFMMi4yOTIyNSAwLjMxMjI1NloiIGZpbGw9IiM2NjE4MDAiLz4KPHBhdGggZD0iTTEzLjE3IDIwLjQxOTlIMTAuOTM2OUw5LjcyMDk1IDIxLjYwNjJMMTQuMDQwOSAyMi42NzI3TDEzLjE3IDIwLjQxODJWMjAuNDE5OVoiIGZpbGw9IiM2NjE4MDAiLz4KPHBhdGggZD0iTTMyLjcwNzcgMC4zMTIyNTZMMzQuOTk5OSA5LjI3MDk0TDMyLjcwNzcgMTYuNDk5M0gyNy43NzgxTDIxLjQwMDkgMTIuMTMwMUwzMi43MDc3IDAuMzEyMjU2WiIgZmlsbD0iIzY2MTgwMCIvPgo8cGF0aCBkPSJNMjEuODMzIDIwLjQxOTlIMjQuMDY5NEwyNS4yODUzIDIxLjYwNzlMMjAuOTYwNCAyMi42NzZMMjEuODMzIDIwLjQxODJWMjAuNDE5OVoiIGZpbGw9IiM2NjE4MDAiLz4KPHBhdGggZD0iTTE5LjQ4MTcgMzAuODM2MkwxOS45OTExIDI4Ljk3OTRMMTguOTY1OCAyNy44NDIzSDE2LjAzMjdMMTUuMDA3MyAyOC45Nzk0TDE1LjUxNjcgMzAuODM2MiIgZmlsbD0iIzY2MTgwMCIvPgo8cGF0aCBkPSJNMTkuNDgxNiAzMC44MzU5VjMzLjkwMjFIMTUuNTE2NlYzMC44MzU5SDE5LjQ4MTZaIiBmaWxsPSIjQzBDNENEIi8+CjxwYXRoIGQ9Ik05LjgyOTU5IDMwLjUxNDJMMTUuNTIgMzMuOTAwOFYzMC44MzQ2TDE1LjAxMDYgMjguOTc3OEw5LjgyOTU5IDMwLjUxNDJaIiBmaWxsPSIjRTdFQkY2Ii8+CjxwYXRoIGQ9Ik0yNS4xNzIxIDMwLjUxNDJMMTkuNDgxNyAzMy45MDA4VjMwLjgzNDZMMTkuOTkxMSAyOC45Nzc4TDI1LjE3MjEgMzAuNTE0MloiIGZpbGw9IiNFN0VCRjYiLz4KPC9zdmc+Cg==";var F="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI4IDU2YzE1LjQ2NCAwIDI4LTEyLjUzNiAyOC0yOFM0My40NjQgMCAyOCAwIDAgMTIuNTM2IDAgMjhzMTIuNTM2IDI4IDI4IDI4WiIgZmlsbD0iIzFCNTNFNCIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNyAyOGMwIDExLjU5OCA5LjQwMiAyMSAyMSAyMXMyMS05LjQwMiAyMS0yMVMzOS41OTggNyAyOCA3IDcgMTYuNDAyIDcgMjhabTE3LjIzNC02Ljc2NmEzIDMgMCAwIDAtMyAzdjcuNTMzYTMgMyAwIDAgMCAzIDNoNy41MzNhMyAzIDAgMCAwIDMtM3YtNy41MzNhMyAzIDAgMCAwLTMtM2gtNy41MzNaIiBmaWxsPSIjZmZmIi8+PC9zdmc+";var vt="data:image/webp;base64,UklGRngEAABXRUJQVlA4IGwEAABwGgCdASqAAIAAPm00lkakIyIhLZJo4IANiWIGepzpzWVWfAfkz7VNZfrX4XyZfpY5Ve135hP6ydPjxWfVv9GH999QD/D/47rUPQA8tr9qvh98odpITg6KC6MdEPqtq8njJn8YQd8fRyCBjuASoE7gh976be39QP7ZH1EaOy2byZB4+6S1n4J1we4tNWPChOPxxBzZfuYsStcWv/tZNqcra7FT/gy1QnCQAkdw+gUNhMn35RFANgSXPFVHZFoSr9YdNxlhwS/DtBxpj4Yf0Qnyn1ZNu6NIDryzzumAAP71vcpK//N3uTN6/gf/cz+Z/IGl2OP82F2AtGYx70dIV3TDkNq9sgAhCr9IZ0HUhT+7KUeLtkqR+dPCxztN0qMTy/gT7xoQBHTf3pua3S29wTkDmy3Fsy7Lv8PTVtL4d5DjJ3QgT6S/r/RoLpXt5ckfNBuBZ5cD7q6/rSBKVrfLYRlMs8/PW5KR4PMrlV9BNfv/g3x2mjvrkNijQUMjZBeGWL8cm5JtS7/EOF5P9ze4qe1yV5zVSVFt5e+//WL+UiuNvKd6qedKWsisJogbBMgFYrymDXtX7rwy5qpOIKODEdjYEY7CDAkYcvhN9cLylaFJnB822+x+hXMltuGJXS6vpf+DkoddD4V8niiWXvf82VYQvu2agUc4/+HDH9o+hv59V9FWrvk5fNJfTvIgUkH5vCcCwDwre/O/6ftorAm9en57f1mnje373z/a1W3UpDbn5rBQsFfxl2oiKvtNeyc7bILmYZ0iKT2BTOvUMn7M6ICDBaoJqcgXpIDC5rsq6F4u2TteFi4n6sLLvkP/xXiOM3lY5srmZ5aRj/SRoHWQrdrmc+rvWyTUo7cqAq8S3QsPW3gcF09Cnxop1LydqPo8SIb8zKgJqFj+KuMY/BYxfntOPlxAD7Ehx/4fZ/cJtjDj8ZqAeuK4Ps7U3zMMVMXw9cIZE47iuLzaTpJl3avReDg2QmWLRYq3AOdhgvdD5H1IpkqcQMOWiDXt46xdgLbVT2Ae1AcmlYrb6xUGrmGgk2lIehc/Df+MRJdAHc+BmnyfR8P7gx7IJg6R0let/R14Na6KeMthUP59RT9SSo5n3YPARM1Z9nLfjDfDy16iRq10Y+2eaNT9Q1xbOf5+PULDFrojM5ABxLaZHFIu+UTUDacGy/DG/N1tqlJ7ePfOaI4pDt/QZhAb6PIVCPIJIXWgbQ/e0VK+9d2AS18H+V/KcyKz5VciEYdk+H1uB3uzeGMdIhKpR5J2JV+e1urFlNpACGuluMWUwzj6n2L72/fz5uXqrfjel5EhkCXHn77cHXY6Kfl9v28YvKSj5f3vzY+wbv8YHop9bGvu/rhBK18Ooq5RW2Kb7s3/xi+57dh2WcBpctxH2kG+9RoszJAlD07LaWub1vw6EYYsSHALEv0cUo8x53lVOWtxIr+fwYX5Jtnv8LYqeN7cAlkl/gWNhn5kus3rg0Wm7rKPongcsUaxaHrkLbdxjqEA9mX4C/AA",J=vt;var X="data:image/webp;base64,UklGRmAEAABXRUJQVlA4WAoAAAAQAAAAfwAAfwAAQUxQSD0BAAABCsi1battvlSCxmaGWrTUgLGQaLkNe8wBlRGrDNM8zGBm32ly/V9ETAC3DRcb/cnL9FS/iK4XwmqPRtxxu/7g4fNkfWrxO64T31my2hxOEbJZTu7Esq8/pyjfaVvbBWp3Z6SUwBZmypui9cTc5Jy/neLt09xA/ClinVoX8KaYPVll1aaoxVph38O651LyeoqbomhU3oF90lCJ5hR5U9MZQRvpkDvF7hY74Lp1H5z0h+A4uQd3//IBjud////7/w/wLwRHuQd3r4fg2PDBSakLjiEXnKucEbSRZrwJrZmgUfkE9k5DMXkNjKJI2vew7qmWrRossVYw4IHyhGtTfUh+iuvNvAakaW7As3hwPDG5eaB2B4USUFtb9vU7jE/altplstwaQRjqalLtOuG4XX/w8HmyPrX4nQsnYahNAQBWUDgg/AIAAHATAJ0BKoAAgAA+bTaWSCQjIiEhC7iADYlpAFVGVG5/99J5/Vd7/Zvx6/Eb47upeLfNQVn40OWGsvf/EZp1SJZ4eeKUwr+TUZu0yuMNAk4PBKF5fmL0eOz2sxlyF1k2PpU79Yw+1dd/VfsguNjNAOpujooZUvLoJkwr++tWg4MOdSMpiVVcFud3oFbBaC+w1q6Y0ih8Jyiu2FT5yd3off/EZxcAAP78rRBq1TvyDPGTtpZl6fMUoKvlLHGrtAC3XuckCfwRJnfG/aY5v+afCIPyjeFKANrccw0/eZYXfyOOymElPpcIFyn/DX0LVVChdzZGcPAMC2XCLLJfqNQLnrwVdrtp///aDQbauP7F7v0uv8UtFmP/5l0k7TnND9heE+aE4DSlRH+y/9Cx9KXkLzIJstm70HeMP4clZ1v4/6vCpX5CsJ70IuNXVGjSxs3OP9lrbuLhlcIIEc2SIGJ3qavevq/mkLkXudZ4SRo+SJpXOQuWqBRjAwTujM6fmPbC5/CYn3kwPLAFn7i92UJ9pgQN+JbG6TPsfKot9pwn+KP/VTLVvyv8aLGVn/+GmRt23RauLb8p5lk6WrB7qM1Ar9LD/ie+T2ZqIpT8ywwuSBWG37bH+0ZZqSmzKe5Q9PgQRVf9RHW7en1+w1M7OwvPKFtskA+SLeKXSb5NMYci6OzrZ/MkSWBl1XYD8Y0YE1CxlutKWGPQV7Paf1P7XQ1xLFTC8eZXqWX2oAV9TghLJj01pQgFxuvmoZGpQ9alHKf21/J4Vx74do7nSRTFJyl/L9VGrasy+tv0vcW9lbWL7j+MCdKyGh2xNTRV1oXhLA2Edu22lDIaFKT5GojhFjKc8QWDJ+bUo3km/xVNDGq0sE7TH4JM+gfqVuDsg/LZUtzFGL6SMLPJk71nRAKmzpRbTYWXl3XlTvOwzAZARyMhUDEcRGotZal/M7BwujgUYCgRQ8H3b+uRhEn6EueNF+Czzl1sG+Pe7IWuEd0aHVwiixyaqR3UWnWqQuAAAAAA";var K="data:image/webp;base64,UklGRtYCAABXRUJQVlA4IMoCAABQEgCdASqAAIAAPm02lUikIyIhIRgMIIANiWkcARAAF+tSv5/99J/RB9XsAGlSc78bIl6kh58aA3sp9hIcACdBu3D9g2hv6/+Cj+HX4bF4aHqZf6VdIWSW9bl353sa70S/qFAc892uoH8pqfPiakYAgEZCSd8aEmbltGbSPYfC4wvqZ9ezQiQYdXY3/Sg5wnSqEY6FToW0wM8QAAD+/PhAW398P+Y/Ufmdv1vCJ/v/ohtwIURd/2rR9z/+gzKn28ut3UaV0u/kc/8pninuF1e9YbAaSDHUeqAZqiAKIZmaGvWme8/luxhnX1Y5rtZk3eBL47mNGYRACwVMKHRl2LA/XhZbW1Q//lM1/6ic4D/8P5eWBMjc9tvr/1w65Tf+2YqPRUfatOAWlwt+JOQ7A40WTXjruFER/7NrZ3tjVzpksA2ujmryseHaiwyiei2mbF0GTnfMG+gl4/pLxq49MTM3bfXPCtft0z77211u4sTilNvJqdSH+3Qc5KfDH6gV4GWTwPSPR/7Krf/1FykCW2n/ReCjVJEy4jLXHwRFmqnHVsOyAdxpYIW4NBe7rv+kr9D8C5N5wiRt4L0AfG/CdI29CS9gLKmX0+uFXlCWpWGI69szzq5FWPBnjpMCeYssg4Hi5PZPL2bcVsOvTE6gCi1ykg26ZH7WE/KN8u9Wagu4TcAvU5nsMn9jc1NGwCZJ1vbQI8CyIWA2LNfuDo697Mov9ngaDmN701InhXXuZFANxq3en+JToh5LyqWp6Wg1UaAbKuM4iPHX41ht3YeOvwpXKTqngULJZvmnw4BeJc387ivRN9/yK//jm2x0r2tfpbafdYlNCsxcgG8lC2z5Vz2a0LuZIotzREDZkWc2Y9BzOaysg2ZacmnelGfW5UbxjADryUb+70mYMBLvUPN/rBiQE2XcSOtSRC91yn75qvUC6XhK/lbDAAAAAAA=";var _="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCA4MCA4MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9IiMxQzdERkMiLz4KPHJlY3Qgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiByeD0iMTIiIGZpbGw9InVybCgjcGFpbnQwX3JhZGlhbF8xXzQ2KSIvPgo8cGF0aCBkPSJNMjYuNDIyNyAzMS40NzMxQzMzLjkxNzEgMjQuMTc1NiA0Ni4wODI5IDI0LjE3NTYgNTMuNTc3MyAzMS40NzMxTDU0LjQ3OTYgMzIuMzU4QzU0Ljg1OCAzMi43MjA3IDU0Ljg1OCAzMy4zMTU1IDU0LjQ3OTYgMzMuNjc4Mkw1MS4zOTQ1IDM2LjY4MTNDNTEuMjA1MyAzNi44Njk5IDUwLjg5OTcgMzYuODY5OSA1MC43MTA1IDM2LjY4MTNMNDkuNDczNiAzNS40NzcyQzQ0LjIzNDcgMzAuMzg1IDM1Ljc2NTMgMzAuMzg1IDMwLjUyNjQgMzUuNDc3MkwyOS4yMDIxIDM2Ljc2ODRDMjkuMDEzIDM2Ljk1NyAyOC43MDc0IDM2Ljk1NyAyOC41MTgyIDM2Ljc2ODRMMjUuNDMzMSAzMy43NjUzQzI1LjA1NDcgMzMuNDAyNiAyNS4wNTQ3IDMyLjgwNzggMjUuNDMzMSAzMi40NDUxTDI2LjQyMjcgMzEuNDczMVpNNTkuOTY1OCAzNy42ODI0TDYyLjcxNjIgNDAuMzUxOEM2My4wOTQ2IDQwLjcxNDUgNjMuMDk0NiA0MS4zMDkzIDYyLjcxNjIgNDEuNjcyTDUwLjMzMjIgNTMuNzI4QzQ5Ljk1MzggNTQuMDkwNyA0OS4zNDI2IDU0LjA5MDcgNDguOTc4OCA1My43MjhMNDAuMTg5MiA0NS4xNjg0QzQwLjEwMTkgNDUuMDgxMyAzOS45NDE4IDQ1LjA4MTMgMzkuODU0NSA0NS4xNjg0TDMxLjA2NDkgNTMuNzI4QzMwLjY4NjUgNTQuMDkwNyAzMC4wNzUzIDU0LjA5MDcgMjkuNzExNSA1My43MjhMMTcuMjgzOCA0MS42NzJDMTYuOTA1NCA0MS4zMDkzIDE2LjkwNTQgNDAuNzE0NSAxNy4yODM4IDQwLjM1MThMMjAuMDM0MiAzNy42ODI0QzIwLjQxMjUgMzcuMzE5NyAyMS4wMjM3IDM3LjMxOTcgMjEuMzg3NSAzNy42ODI0TDMwLjE3NzIgNDYuMjQyQzMwLjI2NDUgNDYuMzI5IDMwLjQyNDUgNDYuMzI5IDMwLjUxMTkgNDYuMjQyTDM5LjMwMTUgMzcuNjgyNEMzOS42Nzk5IDM3LjMxOTcgNDAuMjkxIDM3LjMxOTcgNDAuNjU0OSAzNy42ODI0TDQ5LjQ0NDUgNDYuMjQyQzQ5LjUzMTggNDYuMzI5IDQ5LjY5MTkgNDYuMzI5IDQ5Ljc3OTIgNDYuMjQyTDU4LjU2ODggMzcuNjgyNEM1OC45NzYzIDM3LjMxOTcgNTkuNTg3NSAzNy4zMTk3IDU5Ljk2NTggMzcuNjgyNFoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8cmFkaWFsR3JhZGllbnQgaWQ9InBhaW50MF9yYWRpYWxfMV80NiIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDI0Nzk1NSA0MC4wMDEyKSBzY2FsZSg4MCkiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNUQ5REY2Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNkZGRiIvPgo8L3JhZGlhbEdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=";var bt="data:image/webp;base64,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",$=bt;var Ot="data:image/webp;base64,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",tt=Ot;var xt="data:image/webp;base64,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",et=xt;var Et={ii:R,nfid:B,oisy:V,plug:q,metamask:H,coinbase:F,rainbow:J,brave:$,phantom:tt,rabby:et,ledger:X,okx:K,walletconnect:_};function O(o,t){let e=(o||"").toLowerCase();return Et[e]||t||null}var nt=!1,rt=!1,it=[1,8453,84532],ot=[1,8453,84532];async function St(o){return new Promise((t,e)=>{try{let r=typeof document<"u"?document:null;if(!r)return t();let a=Array.from(r.getElementsByTagName("script")).find(c=>c&&c.src===o);if(a&&String(a.type||"").toLowerCase()!=="module")return t();let n=r.createElement("script");n.src=o,n.async=!0,n.onload=()=>t(),n.onerror=()=>e(new Error("Failed to load script: "+o)),r.head.appendChild(n)}catch{t()}})}async function ct(o){for(let t of o)try{return await St(t),!0}catch{}return!1}function z(o,t){let e=t&&typeof t.globalVar=="string"&&t.globalVar.trim()?t.globalVar.trim():null,r=[e?o?.[e]?.default:null,e?o?.[e]:null,o?.["@walletconnect/ethereum-provider"]?.default,o?.["@walletconnect/ethereum-provider"],o?.WalletConnect?.EthereumProvider?.default,o?.WalletConnect?.EthereumProvider,o?.EthereumProvider?.default,o?.EthereumProvider,o?.WalletConnectEthereumProvider?.default,o?.WalletConnectEthereumProvider,o?.WalletConnectProvider?.default,o?.WalletConnectProvider].filter(Boolean);for(let i of r)if(typeof i=="function"||i&&typeof i.init=="function")return i;return null}async function W(o,t=1500,e=50){let r=Date.now();return new Promise((i,a)=>{let n=()=>{try{let c=o();if(c)return i(c)}catch{}if(Date.now()-r>=t)return i(null);setTimeout(n,e)};n()})}async function Pt(){}function at(){try{let o=typeof navigator<"u"?navigator:window?.navigator,t=String(o?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(t)}catch{return!1}}async function st(){let o=typeof window<"u"?window:{};if(!(o?.QRCode&&typeof o.QRCode?.toCanvas=="function")){try{let t=await import("qrcode"),e=t&&(t.default||t)||null;if(e&&typeof e.toCanvas=="function"){o.QRCode=e;return}}catch{}rt||(rt=await ct(["https://cdn.jsdelivr.net/npm/qrcode@1.5.3/build/qrcode.min.js","https://unpkg.com/qrcode@1.5.3/build/qrcode.min.js"])),await W(()=>{let t=typeof window<"u"?window:{};return t?.QRCode&&typeof t.QRCode?.toCanvas=="function"},2e3,50)}}async function Ut(o){try{let t=typeof document<"u"?document:null;if(!t)return;let e=l=>{try{window.location.href=l}catch{try{window.open(l,"_self","noopener,noreferrer")}catch{}}},r=[],i=(l,s)=>{try{let d=setTimeout(()=>{try{let u=typeof document<"u"?document:null;if(u&&u.visibilityState==="hidden")return;l()}catch{}},s);r.push(d)}catch{}},a=()=>{try{r.forEach(l=>{try{clearTimeout(l)}catch{}})}catch{}r.length=0},n=()=>{try{let l=typeof document<"u"?document:null;l&&l.visibilityState==="hidden"&&a()}catch{}};try{document.addEventListener("visibilitychange",n)}catch{}let c=l=>{let s=encodeURIComponent(l),d=`https://go.cb-w.com/wc?uri=${s}`,u=`coinbasewallet://wc?uri=${s}`;e(d),i(()=>e(u),600),i(()=>{a();try{document.removeEventListener("visibilitychange",n)}catch{}},4e3)},y=(l,s,d)=>{let u=t.createElement("button");u.style.display="flex",u.style.alignItems="center",u.style.gap="8px",u.style.padding="8px 12px",u.style.borderRadius="10px",u.style.border="1px solid #444",u.style.background="#2a2a2a",u.style.color="#fff",u.style.cursor="pointer",u.style.width="100%",u.style.justifyContent="center";let g=t.createElement("img"),M=s?O(s):null;M&&(g.src=M,g.alt=s||"wallet",g.style.width="18px",g.style.height="18px",g.style.display="block",u.appendChild(g));let A=t.createElement("span");return A.textContent=l,A.style.fontSize="13px",u.appendChild(A),u.onclick=p=>{try{p.preventDefault()}catch{}try{d()}catch{}},u},w=t.getElementById("icpay-wc-overlay");if(!w){let l=t.createElement("div");l.id="icpay-wc-overlay",l.style.position="fixed",l.style.inset="0",l.style.background="rgba(0,0,0,0.55)",l.style.display="flex",l.style.alignItems="center",l.style.justifyContent="center",l.style.zIndex="999999";let s=t.createElement("div");s.style.background="#1a1a1a",s.style.border="1px solid #333",s.style.borderRadius="16px",s.style.padding="16px",s.style.width="320px",s.style.boxShadow="0 10px 30px rgba(0,0,0,0.4)",s.style.display="flex",s.style.flexDirection="column",s.style.alignItems="center";let d=t.createElement("div");d.textContent="Connect with your wallet",d.style.color="#fff",d.style.fontSize="16px",d.style.marginBottom="12px";let u=t.createElement("canvas");u.id="icpay-wc-qr-canvas",u.style.width="260px",u.style.height="260px",u.style.background="#fff",u.style.borderRadius="8px";let g=at();if(g){let A=t.createElement("div");A.style.display="flex",A.style.flexDirection="column",A.style.alignItems="stretch",A.style.gap="8px",A.style.width="100%";let p=()=>{try{d.textContent="Waiting for approval in your wallet...",A.style.pointerEvents="none",A.style.opacity="0.7"}catch{}};A.appendChild(y("MetaMask with WalletConnect","metamask",()=>{p(),e(`https://metamask.app.link/wc?uri=${encodeURIComponent(o)}`)})),A.appendChild(y("OKX Wallet with WalletConnect","okx",()=>{p(),e(`okx://wallet/wc?uri=${encodeURIComponent(o)}`)})),s.appendChild(A)}let M=t.createElement("button");M.textContent="Close",M.style.marginTop="12px",M.style.background="#2a2a2a",M.style.color="#fff",M.style.border="1px solid #444",M.style.padding="6px 10px",M.style.borderRadius="8px",M.onclick=()=>{try{let A=t.getElementById("icpay-wc-overlay");A&&A.parentNode&&A.parentNode.removeChild(A)}catch{}},s.appendChild(d),g||s.appendChild(u),s.appendChild(M),l.appendChild(s),t.body.appendChild(l),w=l}let N=t.getElementById("icpay-wc-qr-canvas");if(!at()){await st();let l=typeof window<"u"?window:{};if(N&&l?.QRCode?.toCanvas)try{l.QRCode.toCanvas(N,o,{width:260,margin:2})}catch{}}}catch{}}function x(){try{let t=(typeof document<"u"?document:null)?.getElementById("icpay-wc-overlay");t&&t.parentNode&&t.parentNode.removeChild(t)}catch{}}var E=class{constructor(t){this.id="walletconnect";this.label="WalletConnect";this.wcProvider=null;this.wcProviderProxy=null;this.wcRedirect=null;this.lastDisplayUri=null;this.autoOpenedWcDeepLink=!1;this.autoOpenedPhantom=!1;this.config=t.config||{}}getAdapterConfig(){try{return this.config?.adapters?.walletconnect?.config||{}}catch{return{}}}getInjectedWcProvider(){try{let e=(typeof window<"u"?window:{}).ethereum;if(Array.isArray(e?.providers)){let r=e.providers.find(i=>i&&(i.isWalletConnect||i?.provider?.isWalletConnect));if(r)return r}if(e&&(e.isWalletConnect||e?.provider?.isWalletConnect))return e}catch{}return null}getEvmProvider(){return this.wcProviderProxy?this.wcProviderProxy:this.wcProvider?this.wcProvider:this.getInjectedWcProvider()}async isInstalled(){try{if(this.getInjectedWcProvider())return!0;let e=!!z(typeof window<"u"?window:{}),r=this.getAdapterConfig(),i=!!(r.projectId||r.projectID);return!!(e&&i)}catch{return!1}}async isConnected(){try{let t=this.getEvmProvider();if(!t)return!1;let e=await t.request?.({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}catch{return!1}}async ensureV2Globals(t){let e=typeof window<"u"?window:{};if(await Pt(),!z(e,t)){if(!nt){let r=t&&(t.umdUrls||t.umdUrl)||null,i=[];try{let w=typeof document<"u"?document:null;if(w){let N=Array.from(w.getElementsByTagName("script")),I=l=>{let s=l.toLowerCase();return s.includes("icpay-embed")||s.includes("widget.icpay")||s.includes("icpay-widget")};N.forEach(l=>{try{let s=String(l?.src||"");if(!s||!I(s))return;let d=s.lastIndexOf("/");if(d>0){let u=s.slice(0,d);i.push(`${u}/wc/index.umd.js`,`${u}/index.umd.js`)}}catch{}})}}catch{}let a=typeof window<"u"&&window.location&&window.location.origin?window.location.origin:"",n=a?[`${a}/wp-content/plugins/icpay-payments/assets/js/wc/index.umd.js`,`${a}/wp-content/plugins/instant-crypto-payments-for-woocommerce/assets/js/wc/index.umd.js`]:[],c=[...Array.isArray(r)?r.filter(Boolean):typeof r=="string"&&r.trim()?[r.trim()]:[],...i,...n];nt=await ct(c)}await W(()=>z(typeof window<"u"?window:{},t),2e3,100)}}isMobileBrowser(){try{let t=typeof navigator<"u"?navigator:window?.navigator,e=String(t?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(e)}catch{return!1}}openWalletAppIfPossible(){if(this.isMobileBrowser())try{let t=this.wcRedirect||{},e=t.native||t.universal||"";if(!e)return;try{window.location.href=e}catch{try{window.open(e,"_self","noopener,noreferrer")}catch{}}}catch{}}wrapProviderForMobileWake(t){if(!t||typeof t.request!="function")return t;let e=a=>{if(!this.isMobileBrowser()||!a)return!1;let n=a.toLowerCase();return n==="eth_sendtransaction"||n==="eth_signtransaction"||n==="eth_sign"||n==="personal_sign"||n==="eth_signtypeddata"||n==="eth_signtypeddata_v3"||n==="eth_signtypeddata_v4"||n==="wallet_switchethereumchain"||n==="wallet_addethereumchain"||n==="wallet_requestpermissions"},r=this;return new Proxy(t,{get(a,n,c){return n==="request"?async function(y){try{let w=y&&(y.method||typeof y=="object"&&y?.method);if(e(w)){r.openWalletAppIfPossible();try{await new Promise(N=>setTimeout(N,50))}catch{}}}catch{}return a.request.apply(a,arguments)}:Reflect.get(a,n,c)}})}async initGlobalProvider(){try{let t=typeof window<"u"?window:{},e=this.getAdapterConfig();if(!!!(e.projectId||e.projectID))return null;await this.ensureV2Globals(e);let i=z(t,e);if(i||(i=await W(()=>z(typeof window<"u"?window:{},e),4e3,100)),!i)return null;try{this.config?.debug&&console.debug("[ICPay WC] Using ctor",{isFn:typeof i=="function",hasInit:!!(i&&typeof i.init=="function"),name:i&&(i.name||i.constructor?.name)||"unknown"})}catch{}let a=String(e.projectId||e.projectID),n=it.slice(),c=ot.slice(),y=["eth_requestAccounts","eth_accounts","eth_chainId","personal_sign","eth_sign","eth_signTypedData","eth_signTypedData_v3","eth_signTypedData_v4","eth_sendTransaction","wallet_switchEthereumChain","wallet_addEthereumChain"],w=["accountsChanged","chainChanged","connect","disconnect","message"],N=(()=>{try{let M=String(t?.location?.origin||"").trim();return M&&/^https?:\/\//.test(M)?M:"https://widget.icpay.org"}catch{return"https://widget.icpay.org"}})(),I=(()=>{try{return String(e?.metadata?.name||t?.document?.title||"ICPay Widget").trim()||"ICPay Widget"}catch{return"ICPay Widget"}})(),l=(()=>{try{return String(e?.metadata?.description||"ICPay mobile connect").trim()||"ICPay mobile connect"}catch{return"ICPay mobile connect"}})(),s=(()=>{try{return String(e?.metadata?.url||N).trim()||N}catch{return N}})(),d=(()=>{try{let M=(Array.isArray(e?.metadata?.icons)?e?.metadata?.icons:Array.isArray(e?.icons)?e?.icons:null)||null,p=(M&&M.length>0?M:[N+"/favicon.ico",N+"/apple-touch-icon.png"]).filter(G=>typeof G=="string"&&/^https?:\/\//.test(G));return p.length>0?p:[N+"/favicon.ico"]}catch{return[N+"/favicon.ico"]}})(),u={name:I,description:l,url:s,icons:d},g=typeof i.init=="function"?await i.init({projectId:a,chains:n,optionalChains:c,showQrModal:!1,metadata:u,relayUrl:"wss://relay.walletconnect.com",methods:y,optionalMethods:y,events:w,optionalEvents:w}):new i({projectId:a,chains:n,optionalChains:c,showQrModal:!1,metadata:u,relayUrl:"wss://relay.walletconnect.com",methods:y,optionalMethods:y,events:w,optionalEvents:w});try{await st(),g.on?.("display_uri",M=>{try{this.lastDisplayUri=M}catch{}try{Ut(M)}catch{}}),g.on?.("disconnect",()=>{try{x()}catch{}})}catch{}return g}catch{return null}}async connect(){try{let a=[];for(let n=0;n<localStorage.length;n++){let c=localStorage.key(n);c&&(c==="walletconnect"||c.startsWith("wc@")||c.startsWith("@walletconnect/")||c.toLowerCase().includes("walletconnect"))&&a.push(c)}a.forEach(n=>{try{localStorage.removeItem(n)}catch{}})}catch{}let t=this.getInjectedWcProvider();if(t){this.wcProvider=t,this.wcProviderProxy=this.wrapProviderForMobileWake(this.wcProvider);let a=await this.wcProviderProxy.request({method:"eth_requestAccounts"}),n=Array.isArray(a)&&a[0]||"";if(!n)throw new Error("No account returned by WalletConnect");return{owner:n,principal:n,connected:!0}}let e=await this.initGlobalProvider();if(e){this.wcProvider=e;try{let y=e?.session?.peer?.metadata?.redirect||e?.session?.peer?.metadata?.redirects||null;y&&(y.native||y.universal)&&(this.wcRedirect={native:y.native,universal:y.universal})}catch{}try{await this.wcProvider.disconnect?.()}catch{}this.wcProviderProxy=this.wrapProviderForMobileWake(this.wcProvider);try{await this.wcProviderProxy.connect?.({chains:it.slice(),optionalChains:ot.slice()})}catch{}try{await this.wcProviderProxy.request?.({method:"eth_requestAccounts"})}catch{}try{await this.wcProviderProxy.enable?.()}catch{}try{this.wcProviderProxy.on?.("connect",async()=>{try{let y=await this.wcProviderProxy.request?.({method:"eth_accounts"});if(Array.isArray(y)&&y.length>0)try{x()}catch{}}catch{}})}catch{}let n=await(async(y=6e4)=>{let w=Date.now();return new Promise(async(N,I)=>{let l=!1,s=(d,u)=>{if(!l){l=!0;try{x()}catch{}d&&d.length>0?N(d):I(u||new Error("No account returned by WalletConnect"))}};try{let d=g=>{let M=Array.isArray(g)?g:[];M.length>0&&s(M)},u=async()=>{try{let g=typeof document<"u"?document:null;if(g&&g.visibilityState==="visible"){try{await this.wcProviderProxy.request?.({method:"eth_requestAccounts"})}catch{}try{await this.wcProviderProxy.connect?.()}catch{}try{let M=await this.wcProviderProxy.request?.({method:"eth_accounts"}),A=!(Array.isArray(M)&&M.length>0)}catch{}}}catch{}};this.wcProviderProxy.on?.("accountsChanged",d);try{document.addEventListener("visibilitychange",u)}catch{}for(;!l&&Date.now()-w<y;){try{let g=await this.wcProviderProxy.request?.({method:"eth_accounts"});if(Array.isArray(g)&&g.length>0){this.wcProviderProxy.removeListener?.("accountsChanged",d);try{document.removeEventListener("visibilitychange",u)}catch{}return s(g)}}catch{}await new Promise(g=>setTimeout(g,500))}this.wcProviderProxy.removeListener?.("accountsChanged",d);try{document.removeEventListener("visibilitychange",u)}catch{}s(null,new Error("Timed out waiting for WalletConnect approval"))}catch(d){s(null,d)}})})(),c=Array.isArray(n)&&n[0]||"";if(!c)throw new Error("No account returned by WalletConnect");return{owner:c,principal:c,connected:!0}}let r=this.getAdapterConfig();throw!(r?.projectId||r?.projectID)?new Error("WalletConnect projectId is not configured. Set plugNPlay.adapters.walletconnect.config.projectId to enable WalletConnect."):new Error("WalletConnect provider not available. Ensure the self-hosted EthereumProvider UMD is available (dist/wc/index.umd.js) or provide plugNPlay.adapters.walletconnect.config.umdUrls.")}async disconnect(){try{let t=this.getEvmProvider();try{await t?.disconnect?.()}catch{}try{await t?.disconnectSession?.()}catch{}try{x()}catch{}try{let e=[];for(let r=0;r<localStorage.length;r++){let i=localStorage.key(r);i&&(i==="walletconnect"||i.startsWith("wc@")||i.startsWith("@walletconnect/")||i.includes("WALLETCONNECT"))&&e.push(i)}e.forEach(r=>{try{localStorage.removeItem(r)}catch{}})}catch{}try{t?.removeAllListeners?.("accountsChanged")}catch{}try{t?.removeAllListeners?.("chainChanged")}catch{}try{t?.removeAllListeners?.("disconnect")}catch{}this.wcProvider=null}catch{}}async getPrincipal(){try{let t=this.getEvmProvider();if(!t)return null;let e=await t.request?.({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function lt(){try{let o=typeof navigator<"u"?navigator:window?.navigator,t=String(o?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(t)}catch{return!1}}function j(){try{let o=typeof window<"u"?window:{};if(o.coinbaseWalletExtension)return o.coinbaseWalletExtension;let t=o.ethereum;if(t&&Array.isArray(t.providers)){let e=t.providers.find(r=>r&&(r.isCoinbaseWallet||r?.provider?.isCoinbaseWallet));if(e)return e}return t&&(t.isCoinbaseWallet||t?.provider?.isCoinbaseWallet)||lt()&&t&&typeof t.request=="function"?t:null}catch{return null}}var S=class{constructor(t){this.id="coinbase";this.label="Coinbase Wallet";this.config=t.config||{}}getEvmProvider(){return j()}async isInstalled(){try{return!!j()}catch{return!1}}async isConnected(){try{let t=j();if(!t)return!1;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}catch{return!1}}async connect(){let t=j();if(!t){if(typeof window<"u"&<()){try{let n=String(window.location?.href||""),c=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(n)}`;try{window.dispatchEvent(new CustomEvent("icpay-sdk-wallet-deeplink",{detail:{wallet:"coinbase",url:c}}))}catch{}try{window.location.href=c}catch{try{window.open(c,"_self","noopener,noreferrer")}catch{}}}catch{}throw new Error("Opening Coinbase Wallet\u2026 If nothing happens, install Coinbase Wallet and try again.")}throw new Error("Coinbase Wallet not available")}let e=n=>new Promise(c=>setTimeout(c,n)),r=async()=>{try{let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}try{let n=await t.request?.({method:"eth_requestAccounts"});if(Array.isArray(n)&&n.length>0)return n}catch(n){if(n&&(n.code===4001||n.code==="4001"))throw new Error("Connection request was rejected")}try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}return[]},i=[];for(let n=0;n<3&&i.length===0;n++)t=j()||t,i=await r(),i.length===0&&await e(300);let a=Array.isArray(i)&&i[0]||"";if(!a)throw new Error("No account returned by Coinbase Wallet");return{owner:a,principal:a,connected:!0}}async disconnect(){try{let t=j();if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=j();if(!t)return null;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function ut(){try{let o=typeof navigator<"u"?navigator:window?.navigator;return!!(o&&(o.brave||String(o.userAgent||"").toLowerCase().includes("brave")))}catch{return!1}}function kt(o){try{let t=typeof window<"u"?window:{};if(t.brave?.ethereum)return t.brave.ethereum;let e=t.ethereum;if(!e)return null;if(Array.isArray(e.providers)&&e.providers.length){let i=e.providers.find(a=>a&&(a.isBraveWallet||a?.walletMeta?.name&&String(a.walletMeta.name).toLowerCase().includes("brave")));if(i)return i;if(o&&ut()){let a=e.providers.find(n=>n&&typeof n.request=="function"&&!n.isMetaMask&&!n.isCoinbaseWallet&&!n.isRabby&&!n.isOkxWallet&&!n.isOKExWallet&&!n.isPhantom);return a||e.providers[0]||null}return null}return e.isBraveWallet||(e?.walletMeta?.name?String(e.walletMeta.name).toLowerCase():"").includes("brave")||o&&ut()&&typeof e.request=="function"&&!e.isMetaMask&&!e.isCoinbaseWallet&&!e.isRabby&&!e.isOkxWallet&&!e.isOKExWallet&&!e.isPhantom?e:null}catch{return null}}var P=class{constructor(t){this.id="brave";this.label="Brave Wallet";this.config=t.config||{}}getProvider(){return kt(!0)}getEvmProvider(){return this.getProvider()}async isInstalled(){try{return!!this.getProvider()}catch{return!1}}async isConnected(){try{let t=this.getProvider();if(!t)return!1;let e=await t.request?.({method:"eth_accounts"});return Array.isArray(e)&&e.length>0&&typeof e[0]=="string"&&e[0]?!0:!!(t?.selectedAddress||Array.isArray(t?.accounts)&&t.accounts[0])}catch{return!1}}async connect(){let t=this.getProvider();if(!t)throw new Error("Brave Wallet not available");let e=await t.request?.({method:"eth_requestAccounts"}),r=Array.isArray(e)&&e[0]||"";if(!r)throw new Error("No account returned by Brave Wallet");return{owner:r,principal:r,connected:!0}}async disconnect(){try{let t=this.getProvider();if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=this.getProvider();if(!t)return null;let e=await t.request?.({method:"eth_accounts"});if(Array.isArray(e)&&e.length>0&&typeof e[0]=="string"&&e[0])return e[0];let r=t?.selectedAddress||Array.isArray(t?.accounts)&&t.accounts[0];return typeof r=="string"&&r?r:null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function Mt(){try{let o=typeof navigator<"u"?navigator:window?.navigator,t=String(o?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(t)}catch{return!1}}function D(){try{let t=(typeof window<"u"?window:{}).ethereum;if(t&&Array.isArray(t.providers)){let e=t.providers.find(r=>r&&r.isRainbow);if(e)return e}return t&&t.isRainbow||Mt()&&t&&typeof t.request=="function"?t:null}catch{return null}}var U=class{constructor(t){this.id="rainbow";this.label="Rainbow";this.config=t.config||{}}getEvmProvider(){return D()}async isInstalled(){try{return!!D()}catch{return!1}}async isConnected(){try{let t=D();if(!t)return!1;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}catch{return!1}}async connect(){let t=D();if(!t){if(typeof window<"u"&&Mt()){try{let n=String(window.location?.href||""),c=`https://rnbwapp.com/browse/${encodeURIComponent(n)}`;try{window.dispatchEvent(new CustomEvent("icpay-sdk-wallet-deeplink",{detail:{wallet:"rainbow",url:c}}))}catch{}try{window.location.href=c}catch{try{window.open(c,"_self","noopener,noreferrer")}catch{}}}catch{}throw new Error("Opening Rainbow\u2026 If nothing happens, install Rainbow and try again.")}throw new Error("Rainbow not available")}let e=n=>new Promise(c=>setTimeout(c,n)),r=async()=>{try{let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}try{let n=await t.request?.({method:"eth_requestAccounts"});if(Array.isArray(n)&&n.length>0)return n}catch(n){if(n&&(n.code===4001||n.code==="4001"))throw new Error("Connection request was rejected")}try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}return[]},i=[];for(let n=0;n<3&&i.length===0;n++)t=D()||t,i=await r(),i.length===0&&await e(300);let a=Array.isArray(i)&&i[0]||"";if(!a)throw new Error("No account returned by Rainbow");return{owner:a,principal:a,connected:!0}}async disconnect(){try{let t=D();if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=D();if(!t)return null;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function yt(){try{let o=typeof navigator<"u"?navigator:window?.navigator,t=String(o?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(t)}catch{return!1}}function h(){try{let t=(typeof window<"u"?window:{}).ethereum;if(t&&Array.isArray(t.providers)){let e=t.providers.find(r=>r&&r.isRabby);if(e)return e}return t&&t.isRabby||yt()&&t&&typeof t.request=="function"?t:null}catch{return null}}var k=class{constructor(t){this.id="rabby";this.label="Rabby";this.config=t.config||{}}getEvmProvider(){return h()}async isInstalled(){try{return!!h()}catch{return!1}}async isConnected(){try{let t=h();if(!t)return!1;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}catch{return!1}}async connect(){let t=h();if(!t){if(typeof window<"u"&&yt()){try{let n=String(window.location?.href||""),c=`rabby://browser?url=${encodeURIComponent(n)}`;try{window.dispatchEvent(new CustomEvent("icpay-sdk-wallet-deeplink",{detail:{wallet:"rabby",url:c}}))}catch{}try{window.location.href=c}catch{try{window.open(c,"_self","noopener,noreferrer")}catch{}}}catch{}throw new Error("Opening Rabby\u2026 If nothing happens, install Rabby and try again.")}throw new Error("Rabby not available")}let e=n=>new Promise(c=>setTimeout(c,n)),r=async()=>{try{let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}try{let n=await t.request?.({method:"eth_requestAccounts"});if(Array.isArray(n)&&n.length>0)return n}catch(n){if(n&&(n.code===4001||n.code==="4001"))throw new Error("Connection request was rejected")}try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}return[]},i=[];for(let n=0;n<3&&i.length===0;n++)t=h()||t,i=await r(),i.length===0&&await e(300);let a=Array.isArray(i)&&i[0]||"";if(!a)throw new Error("No account returned by Rabby");return{owner:a,principal:a,connected:!0}}async disconnect(){try{let t=h();if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=h();if(!t)return null;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function dt(){try{let o=typeof navigator<"u"?navigator:window?.navigator,t=String(o?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(t)}catch{return!1}}function f(){try{let o=typeof window<"u"?window:{};if(o.phantom&&o.phantom.ethereum)return o.phantom.ethereum;let t=o.ethereum;if(t&&Array.isArray(t.providers)){let e=t.providers.find(r=>r&&(r.isPhantom||r.isPhantomEthereum));if(e)return e}return t&&(t.isPhantom||t.isPhantomEthereum)||dt()&&t&&typeof t.request=="function"?t:null}catch{return null}}var Q=class{constructor(t){this.id="phantom";this.label="Phantom";this.config=t.config||{}}getEvmProvider(){return f()}async isInstalled(){try{return!!f()}catch{return!1}}async isConnected(){try{let t=f();if(!t)return!1;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}catch{return!1}}async connect(){let t=f();if(!t){if(typeof window<"u"&&dt())return await this.connectPhantomDeepLink();throw new Error("Phantom (EVM) not available")}let e=n=>new Promise(c=>setTimeout(c,n)),r=async()=>{try{let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}try{let n=await t.request?.({method:"eth_requestAccounts"});if(Array.isArray(n)&&n.length>0)return n}catch(n){if(n&&(n.code===4001||n.code==="4001"))throw new Error("Connection request was rejected")}try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}return[]},i=[];for(let n=0;n<3&&i.length===0;n++)t=f()||t,i=await r(),i.length===0&&await e(300);let a=Array.isArray(i)&&i[0]||"";if(!a)throw new Error("No account returned by Phantom");return{owner:a,principal:a,connected:!0}}async connectPhantomDeepLink(){try{let t=typeof window<"u"?window:{},e=String(t?.location?.href||""),r=`https://phantom.app/ul/browse/${encodeURIComponent(e)}`;try{t.dispatchEvent(new CustomEvent("icpay-sdk-wallet-deeplink",{detail:{wallet:"phantom",url:r}}))}catch{}try{t.location.href=r}catch{try{t.open(r,"_self","noopener,noreferrer")}catch{}}throw new Error("Opening Phantom\u2026 If nothing happens, install Phantom and try again.")}catch(t){throw new Error(t?.message||"Phantom connection failed")}}async disconnect(){try{let t=f();if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=f();if(!t)return null;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function gt(){try{let o=typeof navigator<"u"?navigator:window?.navigator,t=String(o?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(t)}catch{return!1}}function m(){try{let o=typeof window<"u"?window:{},t=o.okxwallet;if(t&&(t.isOkxWallet||t.ethereum))return t.ethereum||t;let e=o.ethereum;if(e&&Array.isArray(e.providers)){let r=e.providers.find(i=>i&&(i.isOkxWallet||i?.provider?.isOkxWallet));if(r)return r}return e&&(e.isOkxWallet||e?.provider?.isOkxWallet)||gt()&&e&&typeof e.request=="function"?e:null}catch{return null}}var Y=class{constructor(t){this.id="okx";this.label="OKX Wallet";this.config=t.config||{}}getEvmProvider(){return m()}async isInstalled(){try{return!!m()}catch{return!1}}async isConnected(){try{let t=m();if(!t)return!1;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e.length>0}catch{return!1}}async connect(){let t=m();if(!t){if(typeof window<"u"&>()){try{let n=String(window.location?.href||""),c=`okx://wallet/dapp/url?url=${encodeURIComponent(n)}`;try{window.dispatchEvent(new CustomEvent("icpay-sdk-wallet-deeplink",{detail:{wallet:"okx",url:c}}))}catch{}try{window.location.href=c}catch{try{window.open(c,"_self","noopener,noreferrer")}catch{}}}catch{}throw new Error("Opening OKX Wallet\u2026 If nothing happens, install OKX Wallet and try again.")}throw new Error("OKX Wallet not available")}let e=n=>new Promise(c=>setTimeout(c,n)),r=async()=>{try{let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}try{let n=await t.request?.({method:"eth_requestAccounts"});if(Array.isArray(n)&&n.length>0)return n}catch(n){if(n&&(n.code===4001||n.code==="4001"))throw new Error("Connection request was rejected")}try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]});let n=await t.request?.({method:"eth_accounts"});if(Array.isArray(n)&&n.length>0)return n}catch{}return[]},i=[];for(let n=0;n<3&&i.length===0;n++)t=m()||t,i=await r(),i.length===0&&await e(300);let a=Array.isArray(i)&&i[0]||"";if(!a)throw new Error("No account returned by OKX Wallet");return{owner:a,principal:a,connected:!0}}async disconnect(){try{let t=m();if(!t)return;try{await t.request?.({method:"wallet_requestPermissions",params:[{eth_accounts:{}}]})}catch{}try{t.removeAllListeners?.("accountsChanged")}catch{}try{t.removeAllListeners?.("chainChanged")}catch{}try{t.removeAllListeners?.("disconnect")}catch{}}catch{}}async getPrincipal(){try{let t=m();if(!t)return null;let e=await t.request({method:"eth_accounts"});return Array.isArray(e)&&e[0]||""||null}catch{return null}}getActor(t){throw new Error("EVM wallets cannot provide IC actors. Use IC adapters for IC canister interactions.")}};function Wt(o){if(!o)return null;if(typeof o=="string")return o;try{let t=o;if(typeof t.toText=="function")return t.toText();if(typeof t.toString=="function")return t.toString()}catch{}return null}function Zt(o){let t={};return o&&(t.host=o),t}function Gt(o){return o&&typeof o=="string"&&o.trim()?o:"https://icp-api.io"}var Z=class{constructor(t){this._activeAdapter=null;this._account=null;this._config=t||{};let e={};e.metamask={id:"metamask",label:"MetaMask",icon:null,enabled:!0,adapter:b},e.coinbase={id:"coinbase",label:"Coinbase Wallet",icon:null,enabled:!0,adapter:S},e.walletconnect={id:"walletconnect",label:"WalletConnect",icon:null,enabled:!1,adapter:E},e.phantom={id:"phantom",label:"Phantom",icon:null,enabled:!0,adapter:Q},e.rainbow={id:"rainbow",label:"Rainbow",icon:null,enabled:!1,adapter:U},e.rabby={id:"rabby",label:"Rabby",icon:null,enabled:!0,adapter:k},e.brave={id:"brave",label:"Brave Wallet",icon:null,enabled:!0,adapter:P},e.okx={id:"okx",label:"OKX Wallet",icon:null,enabled:!0,adapter:Y},e.oisy={id:"oisy",label:"Oisy",icon:null,enabled:!0,adapter:v},e.nfid={id:"nfid",label:"NFID",icon:null,enabled:!1,adapter:C},e.ii={id:"ii",label:"Internet Identity",icon:null,enabled:!1,adapter:L},e.plug={id:"plug",label:"Plug",icon:null,enabled:!0,adapter:T};let r=this._config.adapters=this._config.adapters||{},i=Gt(this._config.icHost);this._config.icHost||(this._config.icHost=i),r.nfid=r.nfid||{},r.nfid.config={signerUrl:r.nfid.config?.signerUrl||"https://nfid.one/rpc",hostUrl:r.nfid.config?.hostUrl||i,transport:{...r.nfid.config?.transport||{}}},r.oisy=r.oisy||{},r.oisy.config={signerUrl:r.oisy.config?.signerUrl||"https://oisy.com/sign",hostUrl:r.oisy.config?.hostUrl||i,transport:{...r.oisy.config?.transport||{}}},r.walletconnect=r.walletconnect||{},r.walletconnect.config={...r.walletconnect.config||{},projectId:r.walletconnect.config?.projectId||"",chains:r.walletconnect.config?.chains||[8453,84532]};try{let a=r.walletconnect?.enabled!==!1,n=String(r.walletconnect?.config?.projectId||"").trim();a&&!n&&(e.walletconnect.enabled=!1)}catch{}r.plug=r.plug||{},r.ii=r.ii||{},Object.keys(e).forEach(a=>{let n=r[a];n&&typeof n.enabled=="boolean"&&(e[a].enabled=!!n.enabled)}),this._adapters=e}isMobileBrowser(){try{let t=typeof navigator<"u"?navigator:globalThis?.navigator,e=String(t?.userAgent||"").toLowerCase();return/iphone|ipad|ipod|android|mobile|windows phone/.test(e)}catch{return!1}}get config(){return this._config}get account(){return this._account}getEnabledWallets(){let t=Array.isArray(this._config.chainTypes)?this._config.chainTypes.map(r=>String(r).toLowerCase()):null,e={oisy:"ic",nfid:"ic",ii:"ic",plug:"ic",metamask:"evm",walletconnect:"evm",coinbase:"evm",brave:"evm",rainbow:"evm",rabby:"evm",phantom:"evm",okx:"evm"};return Object.values(this._adapters).filter(r=>{if(r.enabled===!1)return!1;if(r.id==="walletconnect")try{if(!String(this._config?.adapters?.walletconnect?.config?.projectId||"").trim())return!1}catch{return!1}return!(r.id==="rabby"&&this.isMobileBrowser())}).filter(r=>{if(!t||t.length===0)return!0;let i=e[r.id];return!!i&&t.includes(i)}).map(r=>({id:r.id,label:r.label,icon:this.resolveIcon(r.id,r.icon),enabled:r.enabled,adapter:r.adapter,config:this._config.adapters&&this._config.adapters[r.id]?.config||{}}))}resolveIcon(t,e){return O(t,e||null)}getEvmProvider(){try{let t=this._activeAdapter;if(t&&typeof t.getEvmProvider=="function"){let e=t.getEvmProvider();if(e)return e}}catch{}try{return(typeof window<"u"?window.ethereum:null)||null}catch{return null}}connect(t){let e=(t||"").toLowerCase(),r=e?this._adapters[e]:void 0;if(!r||r.enabled===!1)throw new Error("No wallets available");let i=new r.adapter({config:this._config});return this._activeAdapter=i,i.connect().then(a=>{let n=Wt(a?.principal||a?.owner);return this._account={owner:n,principal:n,connected:!0},this._account})}async disconnect(){try{await this._activeAdapter?.disconnect()}catch{}this._activeAdapter=null,this._account=null}getActor(t){if(!this._activeAdapter){let e=new Yt(Zt(this._config.icHost));return Qt.createActor(t.idl,{agent:e,canisterId:t.canisterId})}return this._activeAdapter.getActor(t)}},tn=o=>new Z(o);export{Z as a,tn as b};
|
|
2
|
+
//# sourceMappingURL=chunk-2FZ4TGDZ.js.map
|