UNPKG

@broxus/tvm-connect

Version:

TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.

1 lines 107 kB
import {TvmChains,AbstractStore,errorLabelStyle,inheritTextStyle,resolveTvmAddress,warningLabelStyle,areAddressesEqual,DEFAULT_NATIVE_CURRENCY_DECIMALS,getFullContractState,successLabelStyle,successTextStyle,ZeroAddress}from'@broxus/js-core';import {makeObservable,observable,action,computed,runInAction,reaction,comparer,toJS}from'mobx';import*as D from'react';import*as vn from'react-dom/client';import {defineMessages,useIntl,IntlProvider,IntlContext}from'react-intl';import {isBrowser,timeoutPromise,debug,groupCollapsed,error,groupEnd,debounce,throwException,sliceString,getScrollWidth,getUserAgent,formattedTokenAmount,isMobile,paramsSerializer,storage,isAndroid,isChrome,isFirefox,isIos}from'@broxus/js-utils';import {Close,Skeleton,TokenIcon,Icon,WalletAccount,ExplorerAccountLink}from'@broxus/react-components';import {removeModalMode,addModalMode,Drawer,Component,Text,Modal,useConfig,Button,Flex,Grid,Dropdown,List,Card,DescriptionList,useMounted}from'@broxus/react-uikit';import uo from'classnames';import {observer,Observer}from'mobx-react-lite';import {AddressLiteral,ProviderRpcClient as ProviderRpcClient$1,StaticProviderAdapter}from'everscale-inpage-provider';import ao from'events';import {QRCodeSVG}from'qrcode.react';var Hn=Object.defineProperty;var a=(n,e)=>Hn(n,"name",{value:e,configurable:true});var q="TVM_RECENT_CONNECTION",ue="tvm-connect-root";function pe(n){let e=D.useContext(n);if(e==null)throw new Error(`use${n.displayName||n.constructor.name||"Unknown"} must be used within a ${n.displayName||n.constructor.name||"Unknown"}.Provider`);return e}a(pe,"useContext");function Zt(n,e){return D.useMemo(()=>n.reduce((t,o)=>(o.id===e?.providerId?t.unshift({...o,isRecent:true}):t.push({...o,isRecent:void 0}),t),[]),[n,e?.providerId])}a(Zt,"useOrderedConnections");function ct(n,e){let t;try{t=encodeURIComponent(window.location.href);}catch{}return [n,paramsSerializer({apn:e.apn,ibi:e.ibi,isi:e.isi,link:e.link||t})].join("?")}a(ct,"createUniversalLink");function je(n){return /(SparXWalletBrowser|SparXWallet)/g.test(n)}a(je,"isSparXWalletBrowser");function Ee(n){return /(EverWalletBrowser|EverWallet)/g.test(n)}a(Ee,"isEverWalletBrowser");function we(n){return /(VenomWalletBrowser|VenomWallet)/g.test(n)}a(we,"isVenomWalletBrowser");function ze(n){return /(OxyWalletBrowser|OxyWallet)/g.test(n)}a(ze,"isOxyChatWalletBrowser");function Re(n){return je(n)||Ee(n)||we(n)||ze(n)}a(Re,"isNekotonWebview");function ke(n){let[e]=Array.from(new Map([["android",isMobile(getUserAgent())&&isAndroid(getUserAgent())],["chromeExtension",isBrowser()&&isChrome(getUserAgent())],["firefoxExtension",isBrowser()&&isFirefox(getUserAgent())],["ios",isMobile(getUserAgent())&&isIos(getUserAgent())]])).find(([,t])=>t)??[];return e?[e,n[e]]:void 0}a(ke,"getTvmProviderPlatformLink");var R=(function(n){return n.NEKOTON_WALLET="NEKOTON_WALLET",n.NEKOTON_ADAPTER="NEKOTON_ADAPTER",n.EXTERNAL_APP="EXTERNAL_APP",n})({}),$=(function(n){return n.SPARX_WALLET="com.sparxwallet",n.SPARX_WALLET_MOBILE="com.broxus.sparx.app",n.EVER_WALLET="net.everwallet",n.EVER_WALLET_MOBILE="com.broxus.crystal.app",n.VENOM_WALLET="com.venomwallet",n.VENOM_WALLET_MOBILE="com.venom.wallet",n})({}),O=(function(n){return n.REQUEST_PROVIDER="tvm:requestProvider",n.ANNOUNCE_PROVIDER="tvm:announceProvider",n})({});function Ue(n){let e={providerId:n.providerId,type:n.type};return !!(e.type&&R[e.type]&&e.providerId)}a(Ue,"isRecentConnectionMeta");function ee(n,e=q){try{if(!n){storage.remove(e);return}if(!Ue(n))return;debug("TvmConnect connection meta has been stored",n),storage.set(e,JSON.stringify(n));}catch{debug("Store TvmConnect connection meta failed with an error",n);}}a(ee,"storeRecentConnectionMeta");function k(n=q){let e=storage.get(n);if(e){try{let t=JSON.parse(e);if(Ue(t))return t}catch(t){debug("Retrieve TvmConnection meta failed with an error",t);}ee(void 0,n);}}a(k,"getRecentConnectionMeta");function Ae(n){return {config:{explorerBaseUrl:n.explorer.baseUrl,symbol:n.currency.symbol},connection:{data:{endpoint:n.rpcUrl},type:"proto"},name:n.name,networkId:Number(n.chainId)}}a(Ae,"toChainParams");function Ht(){let e=b().recentMetaStorageKey??q,[t,o]=D.useState(k(e)),r=a(i=>{ee(i,e);},"setMeta");return D.useEffect(()=>{let i=a(c=>{if(c.key===e&&c.newValue){let s=JSON.parse(c.newValue);Ue(s)&&o(s);}},"onStorage");return isBrowser()&&window.addEventListener("storage",i),()=>{isBrowser()&&window.removeEventListener("storage",i);}},[e]),D.useEffect(()=>{o(k(e));},[e]),[t,r]}a(Ht,"useRecentConnectionMeta");var fe=D.createContext({qrEnabled:true,recentMetaStorageKey:q});function b(){return pe(fe)}a(b,"useSharedParams");function ne(n,e){return {connector:new n(e),id:n.name,info:e?.info}}a(ne,"createProviderConfig");var Kt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzQ2NV8yKSI+CiAgICAgICAgPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF80NjVfMikiPgogICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0iMjAiIHdpZHRoPSIxMTYwIiBoZWlnaHQ9IjExNjAiIHJ4PSI1ODAiIGZpbGw9IiMwRjEyMjQiLz4KICAgICAgICAgICAgPHBhdGggZD0iTTMwOS44NiA4NDIuNTA0TDI2Ny4wNTggNzk5LjcwMkwzNzcuMjUyIDY4OS41MDhDNDI2LjU4OSA2NDAuMTcyIDQyNi41ODkgNTU5Ljg4NCAzNzcuMjUyIDUxMC41NDhMMjY3IDQwMC4yOTZMMzA5LjgwMiAzNTcuNDk0TDQyMC4wNTQgNDY3Ljc0NkM0OTIuOTk1IDU0MC42ODcgNDkyLjk5NSA2NTkuMzY5IDQyMC4wNTQgNzMyLjMxTDMwOS44NiA4NDIuNTA0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQ2NV8yKSIvPgogICAgICAgICAgICA8cGF0aCBkPSJNNzk5LjcwMiA5MzNMNjg5LjUwOCA4MjIuODA2QzY0MC4xNzIgNzczLjQ3IDU1OS44ODUgNzczLjQ3IDUxMC41NDkgODIyLjgwNkw0MDAuMzU0IDkzM0wzNTcuNTUyIDg5MC4xOThMNDY3Ljc0NyA3ODAuMDA0QzU0MC42ODggNzA3LjA2MyA2NTkuMzY5IDcwNy4wNjMgNzMyLjMxIDc4MC4wMDRMODQyLjUwNCA4OTAuMTk4TDc5OS43MDIgOTMzWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzQ2NV8yKSIvPgogICAgICAgICAgICA8cGF0aCBkPSJNODkwLjE5OCA4NDIuNTA0TDc4MC4wMDQgNzMyLjMxQzcwNy4wNjMgNjU5LjM2OSA3MDcuMDYzIDU0MC42ODggNzgwLjAwNCA0NjcuNzQ3TDg5MC4xOTggMzU3LjU1Mkw5MzMgNDAwLjM1NEw4MjIuODA2IDUxMC41NDlDNzczLjQ3IDU1OS44ODUgNzczLjQ3IDY0MC4xNzIgODIyLjgwNiA2ODkuNTA4TDkzMyA3OTkuNzAyTDg5MC4xOTggODQyLjUwNFoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl80NjVfMikiLz4KICAgICAgICAgICAgPHBhdGggZD0iTTYwMC4wMTkgNDc0Ljc2NUM1NTIuMTE0IDQ3NC43NjUgNTA0LjIwOCA0NTYuNTM1IDQ2Ny43NDcgNDIwLjA1NUwzNTcuNDk1IDMwOS44MDJMNDAwLjI5NyAyNjdMNTEwLjU0OSAzNzcuMjUzQzU1OS44ODUgNDI2LjU4OSA2NDAuMTczIDQyNi41ODkgNjg5LjUwOSAzNzcuMjUzTDc5OS43MDMgMjY3LjA1OEw4NDIuNTA1IDMwOS44Nkw3MzIuMzExIDQyMC4wNTVDNjk1LjgzIDQ1Ni41MTUgNjQ3Ljk0NCA0NzQuNzY1IDYwMC4wMzkgNDc0Ljc2NUg2MDAuMDE5WiIgZmlsbD0idXJsKCNwYWludDNfbGluZWFyXzQ2NV8yKSIvPgogICAgICAgIDwvZz4KICAgIDwvZz4KICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgaWQ9ImZpbHRlcjBfZF80NjVfMiIgeD0iLTI1IiB5PSItMjUiIHdpZHRoPSIxMjUwIiBoZWlnaHQ9IjEyNTAiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CiAgICAgICAgICAgIDxmZU9mZnNldC8+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjIyLjUiLz4KICAgICAgICAgICAgPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CiAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAuMTY0NzA2IDAgMCAwIDAgMC43NDExNzYgMCAwIDAgMCAwLjg5NDExOCAwIDAgMCAwLjEgMCIvPgogICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd180NjVfMiIvPgogICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfZHJvcFNoYWRvd180NjVfMiIgcmVzdWx0PSJzaGFwZSIvPgogICAgICAgIDwvZmlsdGVyPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl80NjVfMiIgeDE9IjM3MC44NzMiIHkxPSI4MzkuODc1IiB4Mj0iMzcwLjg3MyIgeTI9IjM2MC45NTUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwQjJFMyIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC4wNyIgc3RvcC1jb2xvcj0iIzA1QjNFMyIgc3RvcC1vcGFjaXR5PSIwLjAzIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC4xOSIgc3RvcC1jb2xvcj0iIzEzQjdFMyIgc3RvcC1vcGFjaXR5PSIwLjEzIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC4zMyIgc3RvcC1jb2xvcj0iIzJBQkRFNCIgc3RvcC1vcGFjaXR5PSIwLjI4Ii8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC40OSIgc3RvcC1jb2xvcj0iIzRBQzVFNSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC42NiIgc3RvcC1jb2xvcj0iIzczRDBFNiIgc3RvcC1vcGFjaXR5PSIwLjc1Ii8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC44MSIgc3RvcC1jb2xvcj0iIzlBREJFOCIvPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDFfbGluZWFyXzQ2NV8yIiB4MT0iODQwLjY4NyIgeTE9IjgyOS4xNDciIHgyPSIzNTguNDYxIiB5Mj0iODI5LjE0NyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDBCMkUzIiBzdG9wLW9wYWNpdHk9IjAiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwLjA3IiBzdG9wLWNvbG9yPSIjMDVCM0UzIiBzdG9wLW9wYWNpdHk9IjAuMDMiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwLjE5IiBzdG9wLWNvbG9yPSIjMTNCN0UzIiBzdG9wLW9wYWNpdHk9IjAuMTMiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwLjMzIiBzdG9wLWNvbG9yPSIjMkFCREU0IiBzdG9wLW9wYWNpdHk9IjAuMjgiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwLjQ5IiBzdG9wLWNvbG9yPSIjNEFDNUU1IiBzdG9wLW9wYWNpdHk9IjAuNDkiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwLjY2IiBzdG9wLWNvbG9yPSIjNzNEMEU2IiBzdG9wLW9wYWNpdHk9IjAuNzUiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwLjgxIiBzdG9wLWNvbG9yPSIjOUFEQkU4Ii8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXJfNDY1XzIiIHgxPSI4MjkuMTQ3IiB5MT0iMzU4LjMyNiIgeDI9IjgyOS4xNDciIHkyPSI4MzcuMDMzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwMEIyRTMiIHN0b3Atb3BhY2l0eT0iMCIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAuMDciIHN0b3AtY29sb3I9IiMwNUIzRTMiIHN0b3Atb3BhY2l0eT0iMC4wMyIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAuMTkiIHN0b3AtY29sb3I9IiMxM0I3RTMiIHN0b3Atb3BhY2l0eT0iMC4xMyIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAuMzMiIHN0b3AtY29sb3I9IiMyQUJERTQiIHN0b3Atb3BhY2l0eT0iMC4yOCIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAuNDkiIHN0b3AtY29sb3I9IiM0QUM1RTUiIHN0b3Atb3BhY2l0eT0iMC40OSIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAuNjYiIHN0b3AtY29sb3I9IiM3M0QwRTYiIHN0b3Atb3BhY2l0eT0iMC43NSIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAuODEiIHN0b3AtY29sb3I9IiM5QURCRTgiLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQzX2xpbmVhcl80NjVfMiIgeDE9IjM1Ni4yOTYiIHkxPSIzNzAuODczIiB4Mj0iODQyLjc3NiIgeTI9IjM3MC44NzMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzAwQjJFMyIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC4wNyIgc3RvcC1jb2xvcj0iIzA1QjNFMyIgc3RvcC1vcGFjaXR5PSIwLjAzIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC4xOSIgc3RvcC1jb2xvcj0iIzEzQjdFMyIgc3RvcC1vcGFjaXR5PSIwLjEzIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC4zMyIgc3RvcC1jb2xvcj0iIzJBQkRFNCIgc3RvcC1vcGFjaXR5PSIwLjI4Ii8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC40OSIgc3RvcC1jb2xvcj0iIzRBQzVFNSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC42NiIgc3RvcC1jb2xvcj0iIzczRDBFNiIgc3RvcC1vcGFjaXR5PSIwLjc1Ii8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMC44MSIgc3RvcC1jb2xvcj0iIzlBREJFOCIvPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwMF80NjVfMiI+CiAgICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjEyMDAiIGZpbGw9IndoaXRlIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+Cg==",qt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0iTTEyMDAgNjAwQzEyMDAgMjY4LjYyOSA5MzEuMzcxIDAgNjAwIDBDMjY4LjYyOSAwIDAgMjY4LjYyOSAwIDYwMEMwIDkzMS4zNzEgMjY4LjYyOSAxMjAwIDYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBaIiBmaWxsPSIjMDUwQjJFIi8+CiAgICA8cGF0aCBkPSJNNDU5LjI5OCAzMDBMMTg3LjUgNTc0Ljc5M0g2MjkuMzIzVjEwMTIuNUw5MDAgNzQxLjYzMlYzMDBINDU5LjI5OFoiIGZpbGw9IiNDNUU0RjMiLz4KPC9zdmc+Cg==",$t="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0iTTYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBDMTIwMCAyNjguNjI5IDkzMS4zNzEgMCA2MDAgMEMyNjguNjI5IDAgMCAyNjguNjI5IDAgNjAwQzAgOTMxLjM3MSAyNjguNjI5IDEyMDAgNjAwIDEyMDBaIiBmaWxsPSIjNEM1QUY1Ii8+CiAgICA8cGF0aCBkPSJNODc4LjEyMiAyMzguMDQzQzg1NS43ODcgMjM0LjQzOSA4MzIuOTAxIDIzNi40OTEgODExLjU3NSAyNDQuMDA3Qzc5MC4yNDUgMjUxLjUyNSA3NzEuMTU3IDI2NC4yNjYgNzU2LjA3MSAyODEuMDU4QzcyNy4yNzUgMzEzLjIgNzE4LjMxNiAzNTUuMDQ1IDcyNS4yMzEgMzk2Ljk3OUM3MzEuNDk0IDQzNC43OTQgNzM5LjgwNCA0NzMuMTc1IDc0MS42NzUgNTA5LjYwNkM3NDQuMjg5IDU2NC40NzYgNzM1LjkwNCA2MTkuMzEzIDcxNy4wMTEgNjcwLjkyNEM2OTkuOTE1IDcxNy42MTkgNjc1LjU1OSA3NTMuODMzIDYyMy4zNjIgNzYxLjg0NkM2MTkuNDkyIDc2Mi40NTQgNjA1LjQgNzYyLjg4NSA2MDEuMzk1IDc2My4xMDNDNTk3LjM5NCA3NjMuMzIgNTg0LjczNyA3NjIuNDk1IDU4MC44MjIgNzYxLjg5MUM1MjguNjI2IDc1My44NzggNTA0LjA1MiA3MTcuNjY0IDQ4Ny4wMDEgNjcwLjY2MUM0NjguMTA1IDYxOS4wNTQgNDU5LjcyNCA1NjQuMjE0IDQ2Mi4zMzcgNTA5LjM0NEM0NjQuMjA5IDQ3My4wNDQgNDcyLjUxNSA0MzQuNjIxIDQ3OC43NzcgMzk2LjcxNkM0ODUuNjk2IDM1NC43ODUgNDc2LjczNCAzMTIuOTQgNDQ3Ljk0MSAyODAuNzk4QzQzMi44MDYgMjY0LjAxOCA0MTMuNjcgMjUxLjMwNiAzOTIuMzAyIDI0My44MzNDMzcwLjkzMiAyMzYuMzYxIDM0OC4wMTcgMjM0LjM2OSAzMjUuNjcxIDIzOC4wNDNDMjU4LjcyOSAyNDguOTE2IDIxNC4xNDUgMzA4LjA4OCAyMTMuNzU0IDM3MC4xNjNDMjEzLjU2NyAzOTQuMDggMjIwLjA5IDQxNy41NzQgMjMyLjU4OCA0MzhDMjUzLjQyMyA0NzIuMjIzIDI4Ny42MTEgNDk3LjE3MSAzMTcuNDUgNTIzLjA3NkMzMzcuMTk3IDU0MC40MDUgMzcxLjM0MyA1ODkuNTcxIDM4OC4wODcgNjQyLjg1MUMzOTguMjI0IDY3NS4xMjQgNDA2LjQ4OSA3MDcuODI4IDQxNC42NjQgNzQwLjgzOUM0MjYuMTUgNzg2Ljg0IDQ0MS45MzcgODg4LjQ2NSA0NTIuMzMyIDkzNC42MDFDNDczLjA4MSAxMDI2Ljk2IDUzNi41ODcgMTA0Ny44OCA2MDAuMjIxIDEwNTBINjAyLjQ4MkM2NjYuMTIgMTA0Ny44OCA3MzAuNjY5IDEwMjYuOTEgNzUxLjQxNyA5MzQuNTU2Qzc2MS43NjcgODg4LjQyNCA3NzcuNTE0IDc4Ni43NTQgNzg5LjA4NiA3NDAuNzk0Qzc5Ny4zMDYgNzA3Ljk1OSA4MDUuNTI2IDY3NS4wNzkgODE1LjY2MiA2NDIuODFDODMyLjQwNiA1ODkuNTI2IDg2Ni41NTQgNTQwLjE4OCA4ODYuMzAxIDUyMy4wMzVDOTE2LjE0IDQ5Ny4wNDQgOTUwLjI4NCA0NzIuMTc4IDk3MS4xNjQgNDM3Ljk1NUM5ODMuNjU5IDQxNy41MzMgOTkwLjE4NCAzOTQuMDM5IDk4OS45OTYgMzcwLjEyQzk4OS42NDcgMzA3LjkxNSA5NDUuMjM2IDI0OC42OTkgODc4LjEyMiAyMzguMDQzWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",It="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0iTTAgNjAwQzAgMjY4LjYyOSAyNjguNjMgMCA2MDAgMEM5MzEuMzczIDAgMTIwMCAyNjguNjI5IDEyMDAgNjAwQzEyMDAgOTMxLjM3MyA5MzEuMzczIDEyMDAgNjAwIDEyMDBDMjY4LjYzIDEyMDAgMCA5MzEuMzczIDAgNjAwWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQyNF8zKSIvPgogICAgPHBhdGggZD0iTTQ1OS4zIDMwMEwxODcuNSA1NzQuNzkySDYyOS4zMjFWMTAxMi41TDkwMCA3NDEuNjM0VjMwMEg0NTkuM1oiIGZpbGw9IndoaXRlIi8+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNDI0XzMiIHgxPSIxMjAwIiB5MT0iLTAuMDAwMTI5NTI5IiB4Mj0iMTA5LjEyMyIgeTI9IjEwODIuMjYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0ZGNjkyMiIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM2MzQ3RjUiLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgo8L3N2Zz4K",en=It,Nt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzQyNF8zMSkiPgogICAgICAgIDxwYXRoIGQ9Ik02MDAgMTIwMEM5MzEuMzcxIDEyMDAgMTIwMCA5MzEuMzcxIDEyMDAgNjAwQzEyMDAgMjY4LjYyOSA5MzEuMzcxIDAgNjAwIDBDMjY4LjYyOSAwIDAgMjY4LjYyOSAwIDYwMEMwIDkzMS4zNzEgMjY4LjYyOSAxMjAwIDYwMCAxMjAwWiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzQyNF8zMSkiLz4KICAgICAgICA8bWFzayBpZD0ibWFzazBfNDI0XzMxIiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIj4KICAgICAgICAgICAgPHBhdGggZD0iTTYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBDMTIwMCAyNjguNjI5IDkzMS4zNzEgMCA2MDAgMEMyNjguNjI5IDAgMCAyNjguNjI5IDAgNjAwQzAgOTMxLjM3MSAyNjguNjI5IDEyMDAgNjAwIDEyMDBaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfNDI0XzMxKSIvPgogICAgICAgIDwvbWFzaz4KICAgICAgICA8ZyBtYXNrPSJ1cmwoI21hc2swXzQyNF8zMSkiPgogICAgICAgICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMF9mXzQyNF8zMSkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTI5NCAyMTYuMDc1QzU5Ny43NSAxNjQuMTc1IDkyNC43ODcgMzU3LjQ1IDEwMjQuNTQgNjQ3LjdDMTEyNC4yOSA5MzcuOTg3IDk1OC45MTIgMTIxNS4zNyA2NTUuMiAxMjY3LjI3QzM1MS40ODcgMTMxOS4xNCAyNC40NDk4IDExMjUuOSAtNzUuMzAwMiA4MzUuNjEzQy0xNzUuMDUgNTQ1LjMyNSAtOS42NzUxNiAyNjcuOTM4IDI5NCAyMTYuMDc1WiIgZmlsbD0idXJsKCNwYWludDJfbGluZWFyXzQyNF8zMSkiLz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzQyNF8zMSkiPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTEwMTkuMTcgODI2Ljg3NUM3ODIuMSAxMDIzLjY3IDQwMi4yMjUgMTAxOS44MSAxNzAuNzM3IDgxOC4yODdDLTYwLjc4NzYgNjE2LjggLTU2LjI4NzYgMjkzLjg4OCAxODAuODI1IDk3LjA4NzVDNDE3LjkgLTk5LjY3NSA3OTcuNzc1IC05NS44NSAxMDI5LjI2IDEwNS42NzVDMTI2MC43OSAzMDcuMiAxMjU2LjI5IDYzMC4wNzUgMTAxOS4yMSA4MjYuODc1SDEwMTkuMTdaIiBmaWxsPSJ1cmwoI3BhaW50M19saW5lYXJfNDI0XzMxKSIvPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIGQ9Ik04NjYuODg3IDIyNi42NUM4NDUuMzI5IDIyMy4zMzYgODIzLjI5MSAyMjUuMjI2IDgwMi42MTIgMjMyLjE2MkM3ODIuMjA1IDIzOC45NTggNzYzLjc4NiAyNTAuNjc5IDc0OC45ODcgMjY2LjI4N0M3MjEuMTYyIDI5NS45MTIgNzEyLjUgMzM0LjUgNzE5LjE3NSAzNzMuMTYzQzcyNS4yNSA0MDggNzMzLjI3NSA0NDMuMzYzIDczNS4wNzUgNDc2LjkyNUM3MzcuNTc5IDUyNy42MDggNzI5LjQ1NSA1NzguMjU1IDcxMS4yMjUgNjI1LjYxM0M2OTQuNzI1IDY2OC42NjMgNjcxLjE3NSA3MDIuMDM3IDYyMC43NzUgNzA5LjQyNUM2MTcuMDI1IDcwOS45ODcgNjAzLjQxMiA3MTAuMzYyIDU5OS41NSA3MTAuNTVDNTkyLjkwOSA3MTAuNTY4IDU4Ni4yNzQgNzEwLjIwNSA1NzkuNjc1IDcwOS40NjNDNTI5LjIzNyA3MDIuMDc1IDUwNS41IDY2OC43IDQ4OSA2MjUuMzg3QzQ3MC43ODUgNTc4LjAyNyA0NjIuNjczIDUyNy4zODEgNDY1LjE4NyA0NzYuN0M0NjYuOTg3IDQ0My4yNSA0NzUuMDEyIDQwNy44NSA0ODEuMDg3IDM3Mi45QzQ4Ny43NjIgMzM0LjI3NSA0NzkuMSAyOTUuNjUgNDUxLjI3NSAyNjYuMDI1QzQzNi40MjMgMjUwLjQyNSA0MTcuOTUyIDIzOC43MyAzOTcuNSAyMzEuOTc1QzM3Ni43ODIgMjI1LjA4OSAzNTQuNzE3IDIyMy4yNjMgMzMzLjE1IDIyNi42NUMyNjguNDYyIDIzNi42NjMgMjI1LjM3NSAyOTEuMjI1IDIyNSAzNDguNDEzQzIyNC44NDcgMzcwLjU4OCAyMzEuMTY4IDM5Mi4zMjYgMjQzLjE4NyA0MTAuOTYyQzI2My4zMjUgNDQyLjQ2MiAyOTYuMzYyIDQ2NS40ODcgMzI1LjIgNDg5LjMzN0MzNDQuMjg3IDUwNS4zMTIgMzc3LjI1IDU1MC42NSAzOTMuNDUgNTk5LjczN0M0MDMuMiA2MjkuNDc1IDQxMS4yMjUgNjU5LjYyNSA0MTkuMTM3IDY5MC4wMzdDNDMwLjIgNzMyLjQ1IDQ0NS40NjIgODI2LjEyNSA0NTUuNTEyIDg2OC42NUM0NzUuNTc1IDk1My43NzUgNTM2Ljg4NyA5NzMuMDUgNTk4LjM4NyA5NzVINjAwLjZDNjYyLjEgOTczLjA1IDcyNC40MjUgOTUzLjczNyA3NDQuNDg3IDg2OC42MTJDNzU0LjUgODI2LjA4NyA3NjkuNjg3IDczMi4zNzUgNzgwLjg2MiA2OTAuMDM3Qzc4OC44MTIgNjU5LjczNyA3OTYuNzYyIDYyOS40MzcgODA2LjU1IDU5OS43QzgyMi43NSA1NTAuNTc1IDg1NS43MTIgNTA1LjEyNSA4NzQuOCA0ODkuM0M5MDMuNjM3IDQ2NS4zNzUgOTM2LjYzNyA0NDIuNDI1IDk1Ni44MTIgNDEwLjkyNUM5NjguODI5IDM5Mi4yODggOTc1LjE1IDM3MC41NSA5NzUgMzQ4LjM3NUM5NzQuNjI1IDI5MS4wMzcgOTMxLjc2MiAyMzYuNDc1IDg2Ni44ODcgMjI2LjY1WiIgZmlsbD0id2hpdGUiLz4KICAgIDwvZz4KICAgIDxkZWZzPgogICAgICAgIDxmaWx0ZXIgaWQ9ImZpbHRlcjBfZl80MjRfMzEiIHg9Ii0xNDQuMzU0IiB5PSIxNjcuNjUiIHdpZHRoPSIxMjM3Ljk1IiBoZWlnaHQ9IjExNDguMDQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMjAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80MjRfMzEiLz4KICAgICAgICA8L2ZpbHRlcj4KICAgICAgICA8ZmlsdGVyIGlkPSJmaWx0ZXIxX2ZfNDI0XzMxIiB4PSItNDAuMDAwNSIgeT0iLTg4LjAxMjgiIHdpZHRoPSIxMjgwLjAxIiBoZWlnaHQ9IjExMDAiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4KICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMjAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl80MjRfMzEiLz4KICAgICAgICA8L2ZpbHRlcj4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNDI0XzMxIiB4MT0iOTcuODM3NSIgeTE9IjE2My4wNSIgeDI9Ijk5MS4zMTMiIHkyPSIxMDgyLjYzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM2NDlBNjYiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMkI0Q0NGIi8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MV9saW5lYXJfNDI0XzMxIiB4MT0iOTcuODM3NSIgeTE9IjE2My4wNSIgeDI9Ijk5MS4zMTMiIHkyPSIxMDgyLjYzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM2NDlBNjYiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMkI0Q0NGIi8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50Ml9saW5lYXJfNDI0XzMxIiB4MT0iMzI0IiB5MT0iMTIxOCIgeDI9IjQ3OC4yNzUiIHkyPSI3NjcuNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjOEZFQkZGIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzJCNENDRiIgc3RvcC1vcGFjaXR5PSIwIi8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXJfNDI0XzMxIiB4MT0iNTQxLjE2MiIgeTE9IjUyLjU3NSIgeDI9IjUzMS43MTIiIHkyPSI5ODYuNTg3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM0OUYxNTAiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMkI0Q0NGIiBzdG9wLW9wYWNpdHk9IjAiLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAgIDxjbGlwUGF0aCBpZD0iY2xpcDBfNDI0XzMxIj4KICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEyMDAiIGhlaWdodD0iMTIwMCIgZmlsbD0id2hpdGUiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgPC9kZWZzPgo8L3N2Zz4K",tn=Nt,Mt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0iTTAgNjAwQzAgMjY4LjYyOSAyNjguNjI5IDAgNjAwIDBWMEM5MzEuMzcxIDAgMTIwMCAyNjguNjI5IDEyMDAgNjAwVjYwMEMxMjAwIDkzMS4zNzEgOTMxLjM3MSAxMjAwIDYwMCAxMjAwVjEyMDBDMjY4LjYyOSAxMjAwIDAgOTMxLjM3MSAwIDYwMFY2MDBaIiBmaWxsPSIjOEFFMDZCIi8+CiAgICA8cGF0aCBkPSJNNzY0LjY2OSA0MzQuNjcyTDU1Ni4xMDYgNTM2LjE2OUw1NTQuOTA5IDQyMi40ODFMNTU0Ljg5OSA0MjEuNTEyTDU1NC4xMTUgNDIyLjA4MUw0NDUuOTk5IDUwMC42OEw0NDIuNTM0IDUwMi42NjVDNDQyLjUzNCA1MDIuNjY1IDQ0Mi41MzQgNTAyLjY2NSA0NDIuNTM0IDUwMi42NjVDNDI4LjUwNCA1MTAuNjk2IDQxNS4yMzEgNTIwLjc0MSA0MDMuMTE3IDUzMi44NjJDMzMwLjE4MyA2MDUuODQxIDMzMC4xODMgNzI0LjE2MyA0MDMuMTE3IDc5Ny4xNDFDNDc2LjA1MiA4NzAuMTIxIDU5NC4zMDEgODcwLjEyMSA2NjcuMjM1IDc5Ny4xNDFDNjc4LjA3NSA3ODYuMjk1IDY4Ny4yNDggNzc0LjUyNSA2OTQuODA1IDc2Mi4xMThMNjk2LjYzOSA3NTkuMTA2TDc4MS4zODcgNjQ2LjAxNEw3ODEuOTYxIDY0NS4yNDhMNzgxLjAwNSA2NDUuMjE0TDY2NS4zMjQgNjQxLjEwNEw3NjUuMzM3IDQzNS4zNEw3NjUuOTcgNDM0LjAzOUw3NjQuNjY5IDQzNC42NzJaTTQwNi4zNjkgNDM5LjMwNkw2MjYuMzIzIDI3OS40TDYyNy43OTcgNDE5LjM1NEw2MjcuODA1IDQyMC4xNDRMNjI4LjUxNiA0MTkuNzk4TDkyMy44MjkgMjc2LjA4M0w3ODAuMjUyIDU3MS40NzdMNzc5LjkxNiA1NzIuMTY4TDc4MC42ODQgNTcyLjE5NUw5MjQuMDI2IDU3Ny4yODhMNzU3LjA5MyA4MDAuMDU1TDc1Ny4wNzkgODAwLjA3NEw3NTcuMDY2IDgwMC4wOTVDNzQ2LjUxOSA4MTcuNDEgNzMzLjc2MiA4MzMuNzU4IDcxOC43OTUgODQ4LjczNEM2MTcuMzg1IDk1MC4yMDYgNDUyLjk2NyA5NTAuMjA2IDM1MS41NTggODQ4LjczNEMyNTAuMTQ3IDc0Ny4yNjEgMjUwLjE0NyA1ODIuNzQxIDM1MS41NTggNDgxLjI2OUMzNjguMjg3IDQ2NC41MyAzODYuNzMxIDQ1MC41NTIgNDA2LjMyNCA0MzkuMzM1TDQwNi4zNDcgNDM5LjMyMkw0MDYuMzY5IDQzOS4zMDZaIiBmaWxsPSJibGFjayIgc3Ryb2tlPSJibGFjayIvPgo8L3N2Zz4K",nn=Mt,gt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMzYgMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8cmVjdCB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHJ4PSIxOCIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzg2MzVfMTU4MDAzKSIvPgogICAgPHBhdGgKICAgICAgICBkPSJNMjIuNjA1MyAxNy44OTY1SDE0LjU1MjZDMTQuNTUyNiAyMS4yNTg2IDE1IDIzLjI3NTggMTYuMzQyMSAyNi44NjJDMTIuNzYzMiAyNS4yOTMxIDEwLjk3MzcgMjEuNzA2OSAxMC45NzM3IDE2LjU1MTdDMTAuOTczNyAxMi41MTcyIDExLjY0NDcgOC45MzEwMSAxNS40NDc0IDguMDM0NDZDMTQuNzc2MyAxMC41IDE0LjU1MjYgMTEuODQ0OCAxNC41NTI2IDE0Ljc1ODZIMjIuNjA1M1YxMC4yNzU4QzIyLjYwNTMgOS42MDM0MiAyMi42MDUzIDkuMTU1MTUgMjEuNzEwNSA4LjcwNjg3QzIyLjYwNTMgNy41ODYxOCAyMy41IDcuNTg2MTggMjQuMzk0NyA3LjU4NjE4QzI1Ljg3NzIgNy41ODYxOCAyNy4wNzg5IDguNzkwMzggMjcuMDc4OSAxMC4yNzU4VjI1LjA2ODlDMjcuMDc4OSAyNS44MTE3IDI2LjQ3ODEgMjYuNDEzOCAyNS43MzY4IDI2LjQxMzhIMjMuOTQ3NEMyMy4yMDYxIDI2LjQxMzggMjIuNjA1MyAyNS44MTE3IDIyLjYwNTMgMjUuMDY4OVYxNy44OTY1WiIKICAgICAgICBmaWxsPSJ3aGl0ZSIvPgogICAgPHBhdGgKICAgICAgICBkPSJNNy44NDIxMSAxN0M3Ljg0MjExIDE0Ljc1ODYgOC4yODk0NyAxMi45NjU1IDEwLjUyNjMgMTEuNjIwN0M5Ljg1NTI2IDEzLjQxMzggOS42MzE1OCAxNC43NTg2IDkuNjMxNTggMTYuNTUxN0M5LjYzMTU4IDE5LjY4OTYgMTAuOTczNyAyNS41MTcyIDE2LjExODQgMjcuOTgyN0MxNS42NzEgMjguNDMxIDE0LjU1MjYgMjguNjU1MSAxMy42NTc5IDI4LjY1NTFDOS44NTUyMSAyOC42NTUxIDYuNDk5OTUgMjUuMDY4OSA2LjUgMjIuMTU1MUM2LjUgMjEuMDM0NSA2LjcyMzYzIDIwLjM2MiA3LjM5NDc0IDE5LjY4OTZDOC4yODk0MiAyMy41IDkuNDA3ODQgMjUuNTE3MiAxMi4zMTU4IDI3LjMxMDNDOS44NTUyMSAyNC42MjA3IDcuODQyMTEgMjAuMzYyIDcuODQyMTEgMTdaIgogICAgICAgIGZpbGw9IndoaXRlIi8+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfODYzNV8xNTgwMDMiIHgxPSIxOCIgeTE9IjAiIHgyPSIxOCIgeTI9IjM2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNGN0U4NkMiLz4KICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQzE5NTAwIi8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDwvZGVmcz4KPC9zdmc+Cg==",on=gt,Ye="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0iTTYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBDMTIwMCAyNjguNjI5IDkzMS4zNzEgMCA2MDAgMEMyNjguNjI5IDAgMCAyNjguNjI5IDAgNjAwQzAgOTMxLjM3MSAyNjguNjI5IDEyMDAgNjAwIDEyMDBaIiBmaWxsPSIjMDA5OEVBIi8+CiAgICA8cGF0aCBkPSJNODA0Ljg2MyAzMzQuODc5SDM5NS4xMTJDMzE5Ljc3MyAzMzQuODc5IDI3Mi4wMjIgNDE2LjE0NyAzMDkuOTI1IDQ4MS44NDVMNTYyLjgwOCA5MjAuMTYyQzU3OS4zMSA5NDguNzgyIDYyMC42NjUgOTQ4Ljc4MiA2MzcuMTY3IDkyMC4xNjJMODkwLjEwMSA0ODEuODQ1QzkyNy45NTMgNDE2LjI1MiA4ODAuMjAxIDMzNC44NzkgODA0LjkxNCAzMzQuODc5SDgwNC44NjNaTTU2Mi42MDIgNzg4LjcxN0w1MDcuNTI4IDY4Mi4xMjlMMzc0LjY0MSA0NDQuNDU5QzM2NS44NzUgNDI5LjI0NyAzNzYuNzAzIDQwOS43NTMgMzk1LjA2IDQwOS43NTNINTYyLjU1Vjc4OC43NjlMNTYyLjYwMiA3ODguNzE3Wk04MjUuMjMgNDQ0LjQwN0w2OTIuMzk1IDY4Mi4xODFMNjM3LjMyMSA3ODguNzE3VjQwOS43MDJIODA0LjgxMUM4MjMuMTY5IDQwOS43MDIgODMzLjk5NyA0MjkuMTk1IDgyNS4yMyA0NDQuNDA3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==",dt=Ye,lt="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPG1hc2sgaWQ9Im1hc2swXzYwM18yIiBzdHlsZT0ibWFzay10eXBlOmx1bWluYW5jZSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjEyMDAiIGhlaWdodD0iMTIwMCI+CiAgICAgICAgPHBhdGggZD0iTTEyMDAgNjAwQzEyMDAgMjY4LjYyOSA5MzEuMzcxIDAgNjAwIDBDMjY4LjYyOSAwIDAgMjY4LjYyOSAwIDYwMEMwIDkzMS4zNzEgMjY4LjYyOSAxMjAwIDYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBaIiBmaWxsPSJ3aGl0ZSIvPgogICAgPC9tYXNrPgogICAgPGcgbWFzaz0idXJsKCNtYXNrMF82MDNfMikiPgogICAgICAgIDxwYXRoIGQ9Ik0xMjAwIDYwMEMxMjAwIDI2OC42MjkgOTMxLjM3MSAwIDYwMCAwQzI2OC42MjkgMCAwIDI2OC42MjkgMCA2MDBDMCA5MzEuMzcxIDI2OC42MjkgMTIwMCA2MDAgMTIwMEM5MzEuMzcxIDEyMDAgMTIwMCA5MzEuMzcxIDEyMDAgNjAwWiIgZmlsbD0iI0RGRjlFMyIvPgogICAgICAgIDxwYXRoIGQ9Ik02MDAgMTQ3NC4yOUMxMDgyLjg1IDE0NzQuMjkgMTQ3NC4yOSAxMDgyLjg1IDE0NzQuMjkgNjAwQzE0NzQuMjkgMTE3LjE0NSAxMDgyLjg1IC0yNzQuMjg2IDYwMCAtMjc0LjI4NkMxMTcuMTQ1IC0yNzQuMjg2IC0yNzQuMjg2IDExNy4xNDUgLTI3NC4yODYgNjAwQy0yNzQuMjg2IDEwODIuODUgMTE3LjE0NSAxNDc0LjI5IDYwMCAxNDc0LjI5WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzYwM18yKSIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMzAuOTcgNzYxLjE5NEMzNjYuMDU1IDc3MC41OTcgNDAzLjQ3OCA3NjAuNTU4IDQyOS4xNiA3MzQuODc4TDQ3My45OTIgNjkwLjA0OEM0ODYuODI1IDY3Ny4yMTMgNTA1LjU0MyA2NzIuMTk0IDUyMy4wOTIgNjc2Ljg5NkM1MjcuNzkzIDY5NC40MzEgNTIyLjc3MyA3MTMuMTQ4IDUwOS45NCA3MjUuOTk1TDQ2NS4xMDggNzcwLjgyN0M0MzkuNDI4IDc5Ni41MDcgNDI5LjQwMSA4MzMuOTQyIDQzOC43OTIgODY5LjAxNEw0NTMuOTg5IDkyNS43MTNMNTUwLjY5MiA4MjkuMDExQzU3Ni4zNzQgODAzLjMzMSA1ODYuMzk5IDc2NS44OTYgNTc3LjAwOCA3MzAuODEyTDU2MS44MjMgNjc0LjEyNkw1NTQuMjI1IDY0NS43NzZMNTI1Ljg3NCA2MzguMTc3TDQ2OS4xODggNjIyLjk5MkM0MzQuMTA0IDYxMy41ODkgMzk2LjY4MSA2MjMuNjI4IDM3MC45OTkgNjQ5LjMwOEwyNzQuMjg0IDc0Ni4wMDlMMzMwLjk3IDc2MS4yMDZWNzYxLjE5NFoiIGZpbGw9IiNERkY5RTMiLz4KICAgICAgICA8cGF0aCBkPSJNNDM4LjgwNCAzMzAuOTdDNDI5LjQwMSAzNjYuMDU1IDQzOS40NCA0MDMuNDc4IDQ2NS4xMjIgNDI5LjE1OEw1MDkuOTUyIDQ3My45ODhDNTIyLjc4NyA0ODYuODIzIDUyNy44MDYgNTA1LjU0MSA1MjMuMTA0IDUyMy4wODlDNTA1LjU2OSA1MjcuNzkxIDQ4Ni44NSA1MjIuNzcyIDQ3NC4wMDQgNTA5LjkzN0w0MjkuMTczIDQ2NS4xMDZDNDAzLjQ5MiA0MzkuNDI1IDM2Ni4wNTUgNDI5LjQgMzMwLjk4NCA0MzguNzlMMjc0LjI4NCA0NTMuOTg4TDM3MC45ODcgNTUwLjY4OUMzOTYuNjY3IDU3Ni4zNyA0MzQuMTA0IDU4Ni4zOTYgNDY5LjE4OCA1NzcuMDA1TDUyNS44NzQgNTYxLjgyTDU1NC4yMjQgNTU0LjIyMkw1NjEuODIzIDUyNS44NzFMNTc3LjAwOCA0NjkuMTg1QzU4Ni40MTEgNDM0LjEwMiA1NzYuMzc0IDM5Ni42NzkgNTUwLjY5MiAzNzAuOTk3TDQ1My45ODkgMjc0LjI4NEw0MzguNzkyIDMzMC45N0g0MzguODA0WiIgZmlsbD0id2hpdGUiLz4KICAgICAgICA8cGF0aCBkPSJNODY5LjAwOSA0MzguODAyQzgzMy45MjUgNDI5LjQgNzk2LjUwMiA0MzkuNDM4IDc3MC44MiA0NjUuMTE4TDcyNS45OSA1MDkuOTVDNzEzLjE1NSA1MjIuNzg0IDY5NC40MzggNTI3LjgwMyA2NzYuODg5IDUyMy4xMDJDNjcyLjE4NyA1MDUuNTY1IDY3Ny4yMDYgNDg2Ljg0OSA2OTAuMDQxIDQ3NC4wMDJMNzM0Ljg3MSA0MjkuMTcyQzc2MC41NTMgNDAzLjQ5IDc3MC41OCAzNjYuMDU1IDc2MS4xODkgMzMwLjk4Mkw3NDYuMDA0IDI3NC4yODRMNjQ5LjMwMSAzNzAuOTg1QzYyMy42MTkgMzk2LjY2NyA2MTMuNTk0IDQzNC4xMDIgNjIyLjk4NSA0NjkuMTg1TDYzOC4xNyA1MjUuODcxTDY0NS43NyA1NTQuMjIyTDY3NC4xMTkgNTYxLjgyTDczMC44MDUgNTc3LjAwNUM3NjUuODkgNTg2LjQwOSA4MDMuMzEzIDU3Ni4zNyA4MjguOTk0IDU1MC42ODlMOTI1LjY5NyA0NTMuOTg4TDg2OS4wMDkgNDM4Ljc5VjQzOC44MDJaIiBmaWxsPSIjREZGOUUzIi8+CiAgICAgICAgPHBhdGggZD0iTTc2MS4xOTQgODY5LjAyMUM3NzAuNTk3IDgzMy45MzYgNzYwLjU1OCA3OTYuNTE1IDczNC44NzcgNzcwLjgzNEw2OTAuMDQ2IDcyNi4wMDNDNjc3LjIxMiA3MTMuMTY5IDY3Mi4xOTIgNjk0LjQ1MiA2NzYuODk0IDY3Ni45MDNDNjk0LjQzIDY3Mi4yMDEgNzEzLjE0OCA2NzcuMjIgNzI1Ljk5NSA2OTAuMDU1TDc3MC44MjcgNzM0Ljg4NUM3OTYuNTA3IDc2MC41NjcgODMzLjk0NCA3NzAuNTkyIDg2OS4wMTQgNzYxLjIwMUw5MjUuNzE0IDc0Ni4wMDRMODI5LjAxMyA2NDkuMzAzQzgwMy4zMzIgNjIzLjYyMyA3NjUuODk1IDYxMy41OTYgNzMwLjgxIDYyMi45ODdMNjc0LjEyNCA2MzguMTcyTDY0NS43NzUgNjQ1Ljc3TDYzOC4xNzYgNjc0LjEyMUw2MjIuOTkgNzMwLjgwN0M2MTMuNTg4IDc2NS44OTEgNjIzLjYyNiA4MDMuMzEyIDY0OS4zMDYgODI4Ljk5NEw3NDYuMDA5IDkyNS42OTVMNzYxLjIwNiA4NjkuMDA5TDc2MS4xOTQgODY5LjAyMVoiIGZpbGw9IndoaXRlIi8+CiAgICA8L2c+CiAgICA8ZGVmcz4KICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNjAzXzIiIHgxPSItMTQuNDI4NSIgeTE9Ii0xNC40Mjg1IiB4Mj0iMTIwNC43MSIgeTI9IjEyMDQuNzEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzU4RDA3NCIvPgogICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyOEE3NDUiLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgo8L3N2Zz4K",rn=lt,ut="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIiB2aWV3Qm94PSIwIDAgMTIwMCAxMjAwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWFzayBpZD0ibWFzazBfNjA5XzIiIHN0eWxlPSJtYXNrLXR5cGU6bHVtaW5hbmNlIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIwMCIgaGVpZ2h0PSIxMjAwIj4KPHBhdGggZD0iTTEyMDAgNjAwQzEyMDAgMjY4LjYyOSA5MzEuMzcxIDAgNjAwIDBDMjY4LjYyOSAwIDAgMjY4LjYyOSAwIDYwMEMwIDkzMS4zNzEgMjY4LjYyOSAxMjAwIDYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBaIiBmaWxsPSJ3aGl0ZSIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazBfNjA5XzIpIj4KPHBhdGggZD0iTTEyMDAgNjAwQzEyMDAgMjY4LjYyOSA5MzEuMzcxIDAgNjAwIDBDMjY4LjYyOSAwIDAgMjY4LjYyOSAwIDYwMEMwIDkzMS4zNzEgMjY4LjYyOSAxMjAwIDYwMCAxMjAwQzkzMS4zNzEgMTIwMCAxMjAwIDkzMS4zNzEgMTIwMCA2MDBaIiBmaWxsPSIjQkQxNDEzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTcuNDY2NSAyMTUuMDc2Qzk0LjQ0ODQgMzAyLjA1MSA5Ny4zNjY5IDM5My43MTUgOTcuMjQwNSA0ODEuMjM4Qzk3LjExODkgNTY2LjIxMyA5MS44OTMgNjUyLjIxNiAxMTIuNTQ3IDczMi4wNDJDMTcxLjgzNCA5NjEuMTg0IDM4My40NDUgMTEwNC45OCA1ODAuMDQ4IDExOTMuNDdDNjA4LjQxOSAxMjA2LjI0IDYwMi4yODggMTIwNC43MiA2MzAuNDMxIDExOTIuMTRDNjQ2LjAxNSAxMTg1LjE4IDY2MS40MDQgMTE3Ny43OSA2NzYuMTU1IDExNzAuNzRDODUyLjY0NyAxMDg2LjQgMTAxMy40NSA5NDguMTAzIDEwNzYuMjYgNzcwLjY2NUMxMTA1LjAxIDY4OS40MjEgMTEwMi4zOCA2MjMuNTY2IDExMDIuMTkgNTMyLjI3NUMxMTAyIDQ0My43MTIgMTEwMS45MSAzNTQuOSAxMTAyLjcyIDI2Ni4zNDZDMTEwMi45NiAyNDAuMDU2IDExMDcuNTMgMjE2LjUwNSAxMDk2Ljk3IDIwOC43MDhDMTA4Ni4xOSAyMDAuNzQxIDEwNjQuNjYgMTkyLjUzNSAxMDUyLjE5IDE4Ni4wNzVDODIwLjY5IDY2LjIwODQgNTM1Ljc1MyA0Mi4zMzQyIDI4MC43MzkgMTMwLjAyMkMyNDUuOTY1IDE0MS45NzkgMjE3LjQ1MSAxNTQuMjI4IDE4NS4zMyAxNjguNzdDMTUzLjczMSAxODMuMDc2IDEyNi40MDMgMTk5LjcxOCA5Ny40NjY1IDIxNS4wNzZaIiBmaWxsPSIjQkQxNDEzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjU4LjU5NCA4MjkuNjg4TDc5MC4xMjMgODI4Ljk2NkM3ODcuNSA4MjIuMjU1IDc4MC4yMDkgODE2Ljk2MyA3NzUuMDY0IDgwOC4yMzdDNzY5LjkyMiA3OTkuNTA3IDc2Ni43OTggNzg5LjA0NyA3NjYuNDY1IDc3Ni42NDFDNzY1Ljc2MiA3NTAuMzA3IDc2Ni4zNjIgNzIyLjUwMyA3NjYuNTE5IDY5Ni4wNDlDODM1LjAwOCA2OTguOTQ2IDg4Mi4zMTYgNjk3LjYxNSA5MjMuNjkxIDY2MC4yMjdDOTg4Ljc3NCA2MDEuNDE2IDk3OS42OTUgNDQ1LjE0MSA4NTAuNjUyIDQyNS4yNTJDODA1LjkwNSA0MTguMzU3IDY4My4wOTUgNDI3LjEzIDY2MC40OTUgNDIxLjg3NUM2NjQuNDg4IDQzOC41NiA2ODguMjQ3IDQzMy4zNjkgNjg3LjIzNyA1MDguNzUxQzY4Ni43IDU0OC44ODUgNjkwLjIxMyA3NzUuOTM4IDY4NS4wMDEgNzk2LjY3NkM2ODIuNzYgODA1LjU4NCA2ODAuMzI1IDgwOS4zODEgNjc0LjI5NSA4MTUuNDYxQzY2OC42NzcgODIxLjEyNiA2NjMuMjI3IDgyMy4zODMgNjU4LjU5NCA4MjkuNjg4WiIgZmlsbD0iI0ZDRjlGNCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQzMy4xMTYgNzE0Ljg0NEw0OTEuNjI1IDcxNC43NTdDNTIyLjk1OSA2MjUuODMgNTgwLjQzNCA0ODUuMDM5IDYxOC42NDcgMzg5Ljg4M0M2MzIuOTQxIDM1NC4yOTEgNjQ1LjQwNSAzMTIuODc5IDY2MC45MzggMjc4Ljk0OEw1MzYuOTk4IDI3OC45MDZDNTU4LjU0OCAzMDMuMTQ1IDU3NS40MjYgMjkyLjc4OCA1NTUuMDg3IDM0NC42NDhDNTQ0Ljg4MiAzNzAuNjcxIDUzNS40NjUgMzkzLjE1NSA1MjUuNTk1IDQxOS45NzdDNTE4LjAzOSA0NDAuNTAxIDQ3NS43NjcgNTU4LjYwNyA0NjcuOTM0IDU2OC44MjhMMzgwLjY5MSAzNTAuMDc3QzM2MS44ODkgMzAyLjMwNiAzODUuNzIzIDI5Ny4zIDQwMC44MDcgMjc4Ljk5M0wyNDYuMDk0IDI3OS4xNjJDMjc4LjU0NSAzMDMuNjk2IDI4Ni40OTggMzMyLjczOCAzMDMuODAyIDM3Ni41NDJDMzE4Ljc5NyA0MTQuNTA2IDMzMS44MTIgNDUwLjEwMyAzNDYuNjI5IDQ4OS43MjRDMzU3LjY1MiA1MTkuMTk3IDQyNC45NDUgNzAzLjkxNSA0MzMuMTE2IDcxNC44NDRaIiBmaWxsPSIjRkNGOUY0Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTIxLjU4OCA4NTUuMDE5QzUyMS41NTcgOTA0LjkzMSA1MjYuODY2IDkyMi4xNzIgNTAwLjg1IDk1NS4zODVDNDk3Ljk0NiA5NTkuMDkzIDQ5OS42NzMgOTU2LjMzMiA0OTYuODc1IDk2MC45MzhMNzQ4LjQzOSA5NjAuOTI2Qzc1NC4yNTIgOTI5LjcxNiA3NzAuNjYyIDkwOC43NCA3NzEuMDk0IDg2Ny45NDdDNzM2LjcwOSA4OTMuNjg0IDcyNi4xNzEgODkzLjcgNjcxLjg4NyA4OTMuNTk3TDU5Ni4yNjQgODkzLjU0M0M1OTMuNTAzIDc5Mi44MjMgNTk1LjQ1OCA2NzIuMTQ1IDU5NS43NDEgNTcxLjg3NUM1ODAuMDU1IDYwMy41MzIgNTIxLjUwNSA3MjguMjc2IDUyMS40OTQgNzYzLjcwMkM1MjEuNDg0IDc5NC4xMzggNTIxLjYwNiA4MjQuNTgxIDUyMS41ODggODU1LjAxOVoiIGZpbGw9IiNGQ0Y5RjQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik03NjYuNDA2IDUwOC40Mkw3NjYuNDEzIDYyMy4yNDhDODI0LjYwMiA2MjMuNjUzIDg3Ni43MjkgNjI3LjcyMiA4ODAuOTQxIDU2NC4yMDJDODg2LjEzNCA0ODUuODI5IDgyNS4yMDkgNDkyLjQ0NSA3NjYuNDEzIDQ5Mi4yNThMNzY2LjQwNiA1MDguNDJaIiBmaWxsPSIjQkQxNDEzIi8+CjwvZz4KPC9zdmc+Cg==",cn=ut;var an={chainId:TvmChains.EverscaleMainnet.toString(),currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:en,name:"EVER",symbol:"EVER",wrappedCurrencyAddress:new AddressLiteral("0:a49cd4e158a9a15555e624759e2e4e766d22600b7800d891e46f9291f044a93d")},explorer:{accountsSubPath:"accounts",baseUrl:"https://everscan.io",title:"EVERScan",transactionsSubPath:"transactions"},icon:It,id:`tvm:${TvmChains.EverscaleMainnet}`,name:"Everscale",rpcUrl:"https://jrpc.everwallet.net",shortName:"Everscale",type:"tvm"},sn={chainId:TvmChains.VenomMainnet.toString(),currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:tn,name:"VENOM",symbol:"VENOM",wrappedCurrencyAddress:new AddressLiteral("0:77d36848bb159fa485628bc38dc37eadb74befa514395e09910f601b841f749e")},explorer:{accountsSubPath:"accounts",baseUrl:"https://venomscan.com",title:"VenomScan",transactionsSubPath:"transactions"},icon:Nt,id:`tvm:${TvmChains.VenomMainnet}`,name:"Venom Mainnet",rpcUrl:"https://jrpc.venom.foundation",shortName:"Venom",type:"tvm"},In={chainId:TvmChains.TychoTestnet.toString(),currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:nn,name:"TYCHO",symbol:"TYCHO",wrappedCurrencyAddress:new AddressLiteral("0:06e75c5e280c25fc96470891476937df6c3c575b43c2d8d8af8c612a6d3dc146")},explorer:{accountsSubPath:"accounts",baseUrl:"https://testnet.tychoprotocol.com",title:"Tycho Testnet Explorer",transactionsSubPath:"transactions"},icon:Mt,id:`tvm:${TvmChains.TychoTestnet}`,name:"Tycho Testnet",rpcUrl:"https://rpc-testnet.tychoprotocol.com/",shortName:"Tycho Testnet",type:"tvm"},Nn={chainId:"-239",currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:dt,name:"TON",symbol:"TON",wrappedCurrencyAddress:new AddressLiteral("0:cacda65ac0ea5953338c90dcc7af28e3a81a35f83497a28f31eb8f27ed420611")},explorer:{accountsSubPath:null,baseUrl:"https://tonviewer.com",title:"TonViewer",tokensSubPath:null,transactionsSubPath:"transaction"},icon:Ye,id:"tvm:-239",name:"TON Mainnet",rpcUrl:"https://jrpc-ton.broxus.com",shortName:"TON",type:"tvm"},Mn={chainId:TvmChains.HumoMainnet.toString(),currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:on,name:"HUMO",symbol:"HUMO",wrappedCurrencyAddress:new AddressLiteral("0:ee49dd4c3a7754ace683612e5f9d06508ff13acb4055168fada912af25919271")},explorer:{accountsSubPath:"accounts",baseUrl:"https://humoscan.com",title:"Humo Scan",transactionsSubPath:"transactions"},icon:gt,id:`tvm:${TvmChains.HumoMainnet}`,name:"Humo",rpcUrl:"https://rpc.humonetwork.com/",shortName:"Humo",type:"tvm"},cc={chainId:"-3",currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:dt,name:"TON",symbol:"TON",wrappedCurrencyAddress:new AddressLiteral("0:cacda65ac0ea5953338c90dcc7af28e3a81a35f83497a28f31eb8f27ed420611")},explorer:{accountsSubPath:null,baseUrl:"https://testnet.tonviewer.com",title:"TonViewer",tokensSubPath:null,transactionsSubPath:"transaction"},icon:Ye,id:"tvm:-3",name:"TON Mainnet",rpcUrl:"https://jrpc-ton-testnet.broxus.com",shortName:"TON",type:"tvm"},gn={chainId:TvmChains.MShariaMainnet.toString(),currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:rn,name:"MSHA",symbol:"MSHA",wrappedCurrencyAddress:new AddressLiteral("0:dc85db3b3cab2c54dd728e882084b2c03086018ed0ce5928cc510d8756ed49c9")},explorer:{accountsSubPath:"accounts",baseUrl:"https://mshariascan.io",title:"M.Sharia Scan",transactionsSubPath:"transactions"},icon:lt,id:`tvm:${TvmChains.MShariaMainnet}`,name:"M.Sharia",rpcUrl:"https://rpc.msharia.io",shortName:"M.Sharia",type:"tvm"},dn={chainId:TvmChains.VanLang.toString(),currency:{decimals:DEFAULT_NATIVE_CURRENCY_DECIMALS,icon:cn,name:"VLP",symbol:"VLP",wrappedCurrencyAddress:ZeroAddress},explorer:{accountsSubPath:"accounts",baseUrl:"https://vanlang.io/",title:"Van Lang Scan",transactionsSubPath:"transactions"},icon:ut,id:`tvm:${TvmChains.VanLang}`,name:"Van Lang",rpcUrl:"https://rpc.vanlang.io",shortName:"Van Lang",type:"tvm"};function Qe(){return [Nn,sn,an,In,Mn,gn,dn]}a(Qe,"getPredefinedNetworks");function f(n,e,t,o){var r=arguments.length,i=r<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,t):o,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(n,e,t,o);else for(var s=n.length-1;s>=0;s--)(c=n[s])&&(i=(r<3?c(i):r>3?c(e,t,i):c(e,t))||i);return r>3&&i&&Object.defineProperty(e,t,i),i}a(f,"_ts_decorate");function N(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)}a(N,"_ts_metadata");var A=class extends AbstractStore{static{a(this,"NekotonConnector");}params;provider;constructor(e){super(),this.params=e,makeObservable(this);}async connect(e,t){if(!this.provider)throw new Error("Provider is not defined");try{this.setState("isConnecting",!0),await this.provider.hasProvider(),isBrowser()&&await this.provider.ensureInitialized();let o=await timeoutPromise(this.provider.getProviderState(),2e3).catch(()=>{});if(o?.permissions.accountInteraction){this.setData({account:o.permissions.accountInteraction,chainId:o.networkId,version:o.version}),this.setState({isConnecting:!1,isInitialized:!0});return}await this.stopSubscriptions({silent:!0}),await this.runSubscriptions();let r=await this.provider.requestPermissions({permissions:["basic","accountInteraction"]});this.setData("account",r.accountInteraction),o=await timeoutPromise(this.provider.getProviderState(),2e3);let i=o.networkId,c=typeof e=="number"?e:e?.networkId,s=this.params?.info?.name??this.constructor.name??this.constructor.prototype.name;if(!c||i===c){this.setData({chainId:o.networkId,version:o.version}),this.setState({isConnecting:!1,isInitialized:!0}),debug(`${s} connection has skipped network switching.`),await t?.onConnect?.(this);return}if(!e){debug(`${s} connection has skipped network switching. Chain params or chainId is not provided.`);return}debug(`${s} connection trying to switch network.`),await this.switchNetwork(e).then(async()=>{await this.connect(e,t);}).catch(async()=>{await this.connect(void 0,t);});}catch(o){throw this.setState("isConnecting",false),await this.stopSubscriptions(),o}}async disconnect(e){if(!((this.isConnecting||this.isDisconnecting)&&!e?.force))try{this.setState("isDisconnecting",!0),await this.provider?.disconnect(),await this.stopSubscriptions(),this.setData("account",void 0);}catch(t){groupCollapsed(`%c${this.constructor.prototype.name||"Wallet"}%c disconnect failed with an error`,errorLabelStyle,inheritTextStyle),error(t),groupEnd();}finally{this.setState("isDisconnecting",false),await e?.onDisconnect?.(this),await this.runSubscriptions({silent:true});}}async addAsset(e,t="tip3_token"){if(!this.provider)throw new Error("Provider is not defined");if(!this.account?.address)throw new Error("No connected account");return (await this.provider.addAsset({account:this.account.address,params:{rootContract:resolveTvmAddress(e)},type:t})).newAsset}async addNetwork(e,t){if(!this.provider)throw new Error("Provider is not defined");return (await this.provider.addNetwork({network:e,switchNetwork:t})).network}async switchNetwork(e){if(!this.provider)throw new Error("Provider is not defined");let t=typeof e=="number"?e:e.networkId,o=await this.provider.changeNetwork({networkId:t});return o.network==null&&typeof e!="number"&&(o.network=await this.addNetwork(e,true)),o.network}get account(){return this._data.account}get chainId(){return this._data.chainId}get version(){return this._data.version}get isConnecting(){return this._state.isConnecting}get isDisconnecting(){return this._state.isDisconnecting}get isInitialized(){return this._state.isInitialized}get isInitializing(){return this._state.isInitializing}get info(){return this.params?.info}async runSubscriptions(e){if(!this.provider)return;await this.provider.hasProvider(),isBrowser()&&await this.provider.ensureInitialized();let t=await timeoutPromise(this.provider.getProviderState(),2e3).catch(()=>{});t&&this.setData("chainId",t.networkId);let{silent:o=true}={...e},[r,i,c]=await Promise.all([this.provider.subscribe("disconnected"),this.provider.subscribe("networkChanged"),this.provider.subscribe("permissionsChanged")]);this._disconnectSubscription=r,this._networkChangeSubscription=i,this._permissionsSubscription=c,this._disconnectSubscription?.on("data",debounce(this.handleDisconnected,30)),this._networkChangeSubscription?.on("data",debounce(this.handleNetworkChanged,30)),this._permissionsSubscription?.on("data",debounce(this.handlePermissionsChanged,30)),o||debug("Run subscriptions: network and permissions changes",this.constructor.prototype.name||this.constructor.name);}async stopSubscriptions(e){let{silent:t=true}={...e};await Promise.allSettled([this._disconnectSubscription?.unsubscribe(),this._networkChangeSubscription?.unsubscribe(),this._permissionsSubscription?.unsubscribe()]),this._disconnectSubscription=void 0,this._networkChangeSubscription=void 0,this._permissionsSubscription=void 0,t||debug("Subscriptions stopped: network and permissions changes",this.constructor.prototype.name||this.constructor.name);}async preConnect(){try{if(!this.provider)return;this.setState("isConnecting",!0),await this.provider.hasProvider(),isBrowser()&&await this.provider.ensureInitialized();let e=await timeoutPromise(this.provider.getProviderState(),2e3);e.permissions.accountInteraction||throwException("No permissions returned"),this.setData({account:e.permissions.accountInteraction,chainId:e.networkId,version:e.version}),await this.params?.onPreconnect?.(this);}catch(e){let t=this.params?.info?.name??this.constructor.name??this.constructor.prototype.name;debug(`${t} could not be pre-connected`,e);}finally{this.setState("isConnecting",false);}}async handlePermissionsChanged(e){let t=e.permissions.accountInteraction;if(!t){debug(`%c${this.constructor.prototype.name||this.constructor.name}%c Permissions have been revoked. Disconnect dApp!`,warningLabelStyle,inheritTextStyle),await this.disconnect({force:true});return}areAddressesEqual(this.account?.address,t.address)||(this.setData("account",t),debug(`%c${this.constructor.prototype.name||this.constructor.name}%c Permissions have been changed`,warningLabelStyle,inheritTextStyle));}async handleNetworkChanged(e){let t=e.networkId;this.chainId!==t&&(debug(`%c${this.constructor.prototype.name||this.constructor.name}%c Network has been changed from ${this.chainId} to ${t}`,warningLabelStyle,inheritTextStyle),this.setData("chainId",t));}async handleDisconnected(e){this.setData(()=>({account:void 0})),this.params?.onDisconnect?.(e),await this.stopSubscriptions({silent:true}),await this.runSubscriptions({silent:true});}_networkChangeSubscription;_permissionsSubscription;_disconnectSubscription};f([observable,N("design:type",typeof ProviderRpcClient>"u"?Object:ProviderRpcClient)],A.prototype,"provider",void 0);f([action.bound,N("design:type",Function),N("design:paramtypes",[Object,typeof ConnectOptions>"u"?Object:ConnectOptions]),N("design:returntype",Promise)],A.prototype,"connect",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[typeof DisconnectOptions>"u"?Object:DisconnectOptions]),N("design:returntype",Promise)],A.prototype,"disconnect",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[Object,typeof AssetType>"u"?Object:AssetType]),N("design:returntype",Promise)],A.prototype,"addAsset",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[typeof AddNetwork>"u"?Object:AddNetwork,Boolean]),N("design:returntype",Promise)],A.prototype,"addNetwork",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[Object]),N("design:returntype",Promise)],A.prototype,"switchNetwork",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"account",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"chainId",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"version",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"isConnecting",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"isDisconnecting",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"isInitialized",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"isInitializing",null);f([computed,N("design:type",Object),N("design:paramtypes",[])],A.prototype,"info",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[typeof Silentable>"u"?Object:Silentable]),N("design:returntype",Promise)],A.prototype,"runSubscriptions",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[typeof Silentable>"u"?Object:Silentable]),N("design:returntype",Promise)],A.prototype,"stopSubscriptions",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[]),N("design:returntype",Promise)],A.prototype,"preConnect",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[Object]),N("design:returntype",Promise)],A.prototype,"handlePermissionsChanged",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[Object]),N("design:returntype",Promise)],A.prototype,"handleNetworkChanged",null);f([action.bound,N("design:type",Function),N("design:paramtypes",[Object]),N("design:returntype",Promise)],A.prototype,"handleDisconnected",null);function gi(n,e,t,o){var r=arguments.length,i=r<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,t):o,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(n,e,t,o);else for(var s=n.length-1;s>=0;s--)(c=n[s])&&(i=(r<3?c(i):r>3?c(e,t,i):c(e,t))||i);return r>3&&i&&Object.defineProperty(e,t,i),i}a(gi,"_ts_decorate");function Dt(n,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,e)}a(Dt,"_ts_metadata");function Di(n){return e=>new Promise((t,o)=>{if(e){t(e);return}let r=n?.fallbackAttempts??5,i=0,c=debounce(()=>{if(i>=r){o(new Error(`Max attempts (${r}) is reached.`));return}if(isBrowser()&&window.__ever){debug("EVER Wallet provider was found with fallback",window.__ever),t(window.__ever);return}i+=1,c();},1e3);c();})}a(Di,"everProviderFallback");var Ci=[$.EVER_WALLET.toString(),$.EVER_WALLET_MOBILE.toString()],H=class extends A{static{a(this,"EverWallet");}params;type=R.NEKOTON_WALLET;constructor(e){super(e),this.params=e,makeObservable(this),this.init().catch(error);}async init(){let e,t=a(async o=>{let{name:r,rdns:i}=o.detail.info;(r==="EVER Wallet"||i&&Ci.includes(i))&&(window.removeEventListener(O.ANNOUNCE_PROVIDER,t),e=new ProviderRpcClient$1({provider:new StaticProviderAdapter(o.detail.provider)}),debug("EVER Wallet provider event was captured",o));},"onAnnouncement");try{if(this.setState("isInitializing",!0),isBrowser()&&(window.addEventListener(O.ANNOUNCE_PROVIDER,t),window.dispatchEvent(new Event(O.REQUEST_PROVIDER))),!e)if(this.params?.fallbackProviderFactory)e=await this.params.fallbackProviderFactory();else try{let r=await Di({fallbackAttempts:this.params?.fallbackAttempts})();r||throwException("No provider found"),e=new ProviderRpcClient$1({provider:r});}catch{}await e?.hasProvider()||throwException("No provider found"),isBrowser()&&await e?.ensureInitialized(),runInAction(()=>{this.provider=e,isBrowser()&&window.removeEventListener(O.ANNOUNCE_PROVIDER,t);}),(this.params?.autoInit??!0)&&await Promise.allSettled([this.preConnect(),this.runSubscriptions()]),this.setState({isInitialized:!0,isInitializing:!1});}catch(o){debug("Ever Wallet could not be initialized",o),this.setState({isInitialized:false,isInitializing:false}),await this.stopSubscriptions();}return this.provider}};g