@txnlab/use-wallet 1.2.7 → 1.2.8

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.
Files changed (92) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/clients/algosigner/index.d.ts +1 -1
  3. package/dist/cjs/clients/base/base.d.ts +13 -11
  4. package/dist/cjs/clients/base/index.d.ts +1 -1
  5. package/dist/cjs/clients/defly/client.d.ts +7 -7
  6. package/dist/cjs/clients/defly/index.d.ts +1 -1
  7. package/dist/cjs/clients/defly/types.d.ts +4 -4
  8. package/dist/cjs/clients/exodus/client.d.ts +6 -6
  9. package/dist/cjs/clients/exodus/index.d.ts +1 -1
  10. package/dist/cjs/clients/exodus/types.d.ts +3 -3
  11. package/dist/cjs/clients/index.d.ts +9 -9
  12. package/dist/cjs/clients/kmd/client.d.ts +7 -7
  13. package/dist/cjs/clients/kmd/index.d.ts +1 -1
  14. package/dist/cjs/clients/kmd/types.d.ts +3 -3
  15. package/dist/cjs/clients/mnemonic/client.d.ts +20 -10
  16. package/dist/cjs/clients/mnemonic/index.d.ts +1 -1
  17. package/dist/cjs/clients/mnemonic/types.d.ts +3 -3
  18. package/dist/cjs/clients/myalgo/client.d.ts +6 -6
  19. package/dist/cjs/clients/myalgo/index.d.ts +1 -1
  20. package/dist/cjs/clients/myalgo/types.d.ts +3 -3
  21. package/dist/cjs/clients/pera/client.d.ts +6 -6
  22. package/dist/cjs/clients/pera/index.d.ts +1 -1
  23. package/dist/cjs/clients/pera/types.d.ts +4 -4
  24. package/dist/cjs/clients/walletconnect/client.d.ts +6 -6
  25. package/dist/cjs/clients/walletconnect/index.d.ts +1 -1
  26. package/dist/cjs/clients/walletconnect/types.d.ts +4 -4
  27. package/dist/cjs/constants/constants.d.ts +1 -1
  28. package/dist/cjs/constants/index.d.ts +1 -1
  29. package/dist/cjs/hooks/index.d.ts +1 -1
  30. package/dist/cjs/hooks/useWallet.d.ts +9 -7
  31. package/dist/cjs/index.d.ts +6 -6
  32. package/dist/cjs/index.js +263 -268
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/cjs/store/index.d.ts +2 -2
  35. package/dist/cjs/store/state/clientStore.d.ts +1 -1
  36. package/dist/cjs/store/state/walletStore.d.ts +2 -2
  37. package/dist/cjs/types/api.d.ts +5 -2
  38. package/dist/cjs/types/index.d.ts +3 -3
  39. package/dist/cjs/types/node.d.ts +6 -6
  40. package/dist/cjs/types/wallet.d.ts +2 -2
  41. package/dist/cjs/utils/clearAccounts.d.ts +1 -1
  42. package/dist/cjs/utils/encodeNFDTransactionsArray.d.ts +1 -1
  43. package/dist/cjs/utils/index.d.ts +3 -3
  44. package/dist/cjs/utils/initializeProviders.d.ts +2 -2
  45. package/dist/cjs/utils/providers.d.ts +1 -1
  46. package/dist/cjs/utils/reconnectProviders.d.ts +1 -1
  47. package/dist/esm/clients/algosigner/index.d.ts +1 -1
  48. package/dist/esm/clients/base/base.d.ts +13 -11
  49. package/dist/esm/clients/base/index.d.ts +1 -1
  50. package/dist/esm/clients/defly/client.d.ts +7 -7
  51. package/dist/esm/clients/defly/index.d.ts +1 -1
  52. package/dist/esm/clients/defly/types.d.ts +4 -4
  53. package/dist/esm/clients/exodus/client.d.ts +6 -6
  54. package/dist/esm/clients/exodus/index.d.ts +1 -1
  55. package/dist/esm/clients/exodus/types.d.ts +3 -3
  56. package/dist/esm/clients/index.d.ts +9 -9
  57. package/dist/esm/clients/kmd/client.d.ts +7 -7
  58. package/dist/esm/clients/kmd/index.d.ts +1 -1
  59. package/dist/esm/clients/kmd/types.d.ts +3 -3
  60. package/dist/esm/clients/mnemonic/client.d.ts +20 -10
  61. package/dist/esm/clients/mnemonic/index.d.ts +1 -1
  62. package/dist/esm/clients/mnemonic/types.d.ts +3 -3
  63. package/dist/esm/clients/myalgo/client.d.ts +6 -6
  64. package/dist/esm/clients/myalgo/index.d.ts +1 -1
  65. package/dist/esm/clients/myalgo/types.d.ts +3 -3
  66. package/dist/esm/clients/pera/client.d.ts +6 -6
  67. package/dist/esm/clients/pera/index.d.ts +1 -1
  68. package/dist/esm/clients/pera/types.d.ts +4 -4
  69. package/dist/esm/clients/walletconnect/client.d.ts +6 -6
  70. package/dist/esm/clients/walletconnect/index.d.ts +1 -1
  71. package/dist/esm/clients/walletconnect/types.d.ts +4 -4
  72. package/dist/esm/constants/constants.d.ts +1 -1
  73. package/dist/esm/constants/index.d.ts +1 -1
  74. package/dist/esm/hooks/index.d.ts +1 -1
  75. package/dist/esm/hooks/useWallet.d.ts +9 -7
  76. package/dist/esm/index.d.ts +6 -6
  77. package/dist/esm/index.js +263 -268
  78. package/dist/esm/store/index.d.ts +2 -2
  79. package/dist/esm/store/state/clientStore.d.ts +1 -1
  80. package/dist/esm/store/state/walletStore.d.ts +2 -2
  81. package/dist/esm/types/api.d.ts +5 -2
  82. package/dist/esm/types/index.d.ts +3 -3
  83. package/dist/esm/types/node.d.ts +6 -6
  84. package/dist/esm/types/wallet.d.ts +2 -2
  85. package/dist/esm/utils/clearAccounts.d.ts +1 -1
  86. package/dist/esm/utils/encodeNFDTransactionsArray.d.ts +1 -1
  87. package/dist/esm/utils/index.d.ts +3 -3
  88. package/dist/esm/utils/initializeProviders.d.ts +2 -2
  89. package/dist/esm/utils/providers.d.ts +1 -1
  90. package/dist/esm/utils/reconnectProviders.d.ts +1 -1
  91. package/dist/index.d.ts +60 -43
  92. package/package.json +2 -2
package/dist/esm/index.js CHANGED
@@ -13,10 +13,10 @@ var PROVIDER_ID;
13
13
  PROVIDER_ID["WALLETCONNECT"] = "walletconnect";
14
14
  PROVIDER_ID["MNEMONIC"] = "mnemonic";
15
15
  })(PROVIDER_ID || (PROVIDER_ID = {}));
16
- const DEFAULT_NETWORK$1 = "mainnet";
17
- const DEFAULT_NODE_BASEURL = "https://mainnet-api.algonode.cloud";
18
- const DEFAULT_NODE_TOKEN = "";
19
- const DEFAULT_NODE_PORT = "";
16
+ const DEFAULT_NETWORK$1 = 'mainnet';
17
+ const DEFAULT_NODE_BASEURL = 'https://mainnet-api.algonode.cloud';
18
+ const DEFAULT_NODE_TOKEN = '';
19
+ const DEFAULT_NODE_PORT = '';
20
20
 
21
21
  const getAlgosdk = async () => {
22
22
  return (await import('algosdk')).default;
@@ -34,7 +34,7 @@ class Algod {
34
34
  }
35
35
  static async init(algodOptions) {
36
36
  const algosdk = await getAlgosdk();
37
- const algodClient = await getAlgodClient(algosdk, algodOptions);
37
+ const algodClient = getAlgodClient(algosdk, algodOptions);
38
38
  return new Algod(algosdk, algodClient);
39
39
  }
40
40
  }
@@ -884,15 +884,23 @@ const walletStoreSelector = (state) => ({
884
884
  setActiveAccount: state.setActiveAccount,
885
885
  clearActiveAccount: state.clearActiveAccount,
886
886
  addAccounts: state.addAccounts,
887
- removeAccounts: state.removeAccounts,
887
+ removeAccounts: state.removeAccounts
888
888
  });
889
889
  const emptyState = {
890
890
  accounts: [],
891
891
  activeAccount: undefined,
892
- setActiveAccount: (account) => { },
893
- clearActiveAccount: (id) => { },
894
- addAccounts: (accounts) => { },
895
- removeAccounts: (providerId) => { },
892
+ setActiveAccount: () => {
893
+ return;
894
+ },
895
+ clearActiveAccount: () => {
896
+ return;
897
+ },
898
+ addAccounts: () => {
899
+ return;
900
+ },
901
+ removeAccounts: () => {
902
+ return;
903
+ }
896
904
  };
897
905
  const useWalletStore = create()(immer(persist(devtools((set, _get) => ({
898
906
  accounts: [],
@@ -924,10 +932,10 @@ const useWalletStore = create()(immer(persist(devtools((set, _get) => ({
924
932
  set((state) => {
925
933
  state.accounts = state.accounts.filter((account) => account.providerId !== providerId);
926
934
  });
927
- },
935
+ }
928
936
  })), {
929
- name: "txnlab-use-wallet",
930
- version: 1, // increment to deprecate stored data
937
+ name: 'txnlab-use-wallet',
938
+ version: 1 // increment to deprecate stored data
931
939
  })));
932
940
  // This a fix to ensure zustand never hydrates the store before React hydrates the page
933
941
  // otherwise it causes a mismatch between SSR and client render
@@ -942,12 +950,12 @@ const useHydratedWalletStore = ((selector, compare) => {
942
950
  const ClientContext = createContext(null);
943
951
  var clientStore = ClientContext.Provider;
944
952
 
945
- const audio = "data:audio/mp3;base64,SUQzBAAAAAIYBlRJVDIAAAAWAAAAMTAgU2Vjb25kcyBvZiBTaWxlbmNlVFBFMQAAABIAAABBbmFyIFNvZnR3YXJlIExMQ1RBTEIAAAAMAAAAQmxhbmsgQXVkaW9BUElDAAIPAgAAAGltYWdlL2pwZWcAAwCJUE5HDQoaCgAAAA1JSERSAAAEOAAABDgIBgAAAOwQbI8AAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACD0AAAg9AQWVVbYAAAAHdElNRQffCgsFHDEDbwR2AAAgAElEQVR42uzde5RVZd0H8N8wDDcBAS8o6oCJVyxTsDSxojJvgVYq3jVNUQgzaZWmpqh56+ItNa+kr4Cay9Q0DQ1DWb2WeSm8pGRy0RAEgRFhuIzz/tFbC5yZc86eOWfmPDOfz1rvemvvZz9779+zz3DOt2fvXRER9QEAAACQsE5KAAAAAKROwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8BBq9pss81i4sSJMXToUMUAAACgaCoiol4ZaA177rln3HzzzdG/f/+oqamJww8/PGbNmqUwAAAAtJgZHLSKk046Ke67777o379/RET07t07pk6dGtXV1YoDAABAi5nBQcmde+65MW7cuEbXvfjii3HIIYfE2rVrFQoAAIBmq4yIC5WBUqioqIgf/ehHceqppzbZZosttohevXrFk08+qWAAAAA0/zdomMFBCVRWVsZPfvKTGD16dEHtjzrqqJgxY4bCAQAA0CwCDoquU6dOccMNN8SoUaMK3mbOnDkxYsSIWL16tQICAACQmVtUKLoLL7wwjj766Ezb9OnTJz788MP44x//qIAAAABkZgYHRXXyySfHxRdf3Kxt16xZEyNGjIg333xTIQEAAMjEa2Ipmv333z8mTpzY7O27dOnSou0BAADouMzgoCh23333uO+++6J79+4t7utLX/pSvPLKK4oKAABAwczgoMW22mqruOOOO4oSbkREjBs3TlEBAADIxAwOWqRTp05x3333xV577VW0Puvq6uIzn/lMzJ8/X4EBAAAo7PepEtASp59+elHDjYiIysrKOO200xQXAACAgpnBQbPtuuuu8cgjj0RVVVXR+66trY0999wzlixZotAAAADkZQYHzdKtW7e4/vrrSxJu/Kf/r3/96woNAABAQQQcNMv5558f22+/fUn3MWrUKIUGAACgIAIOMvvCF74Q3/jGN0q+nz322COqq6sVHAAAgLwEHGRSVVUVl156adH7Xbp0aaPLzeIAAACgEAIOMjn22GOLPqvimWeeic997nOxaNGiBusOOeQQRQcAACAvAQcF69GjR5x55plF7fOhhx6KI488MhYvXhxTp05tsH7IkCGx3XbbKT4AAAA5CTgo2De/+c3YbLPNitbfM888E+PGjYs1a9ZERMTkyZOjvr7hW4vN4gAAACAfAQcF6dOnT4wdO7Zo/S1dujTGjh0bdXV1/1321ltvxaxZsxq0HTFihAEAAAAgJwEHBfnWt74VvXv3Llp/Z555ZrzzzjsNlj/++OMNln3iE5+Irl27GgQAAACaJOAgr/79+8dJJ51UtP5uu+22RoOMiIhp06Y1WFZVVRWf+MQnDAQAAABNEnCQ19ixY6Nbt25F6evdd9+Nyy+/vMn1s2bNanRmx5577mkgAAAAaJKAg9wXSKdOMWrUqKL199Of/jQ++OCDnG0am90h4AAAACDn71clIJe99tor+vfvX5S+3njjjZgyZUredo0FHMOGDTMYAAAANEnAQU4jR44sWl8/+tGPYt26dXnbPf3007Fq1aoNlm2yySax7bbbGhAAAAAaJeCgSZWVlXHwwQcXpa9nn302HnvssYLarl69Ol588cUGyz/1qU8ZFAAAABol4KBJe++9d2y66aZF6euiiy7K1P6VV15psGyPPfYwKAAAADRKwEGTDjnkkKL088gjj8Rzzz2XaZuXX365wbKBAwcaFAAAABol4KBRnTt3joMOOqjF/axbty4uvfTSzNs1NoNjq622MjAAAAA0SsBBo/bZZ5/o27dvi/v5n//5n3jzzTczb/faa69FfX39BssGDBhgYAAAAGiUgINGFeOBnitWrIirrrqqWduuXr063n///Q2Wde/evSihCwAAAO2PgING7brrri3u46abborFixc3e/ulS5c2WOY2FQAAABoj4KBRQ4YMadH2a9eujV/+8pct6mPZsmUNlrlNBQAAgMYIOGigT58+LQ4SHnrooViyZEmL+mgs4DCDAwAAgMYIOGhg8ODBLe6jpbM3IiI++OCDBssEHAAAADRGwEED/fr1a9H2s2bNiueee67Fx9HYA0UFHAAAADRGwEEDLX1TyaRJk4pyHJtvvnmDZZ7BAQAAQGMEHDTQkhkcy5YtiwceeKAox7HZZps1WNazZ08DBAAAQAMCDhro06dPs7e9++67o7a2tsXH0KVLl+jdu3eD5Z07dzZAAAAANCDgoIHKyspmbVdfXx933nlnUY5hu+22K+qxAQAA0L4JOGhg5cqVzdpu+vTpMWfOnKIcw/7779/ocgEHAAAAjRFw0EBzA45ivBr2Pw488MBGl7tFBQAAgMYIOGjggw8+yLzN3Llz48knnyzK/rfaaqv4+Mc/3ug6AQcAAACNEXDQQHNmcEyePDk+/PDDouz/oIMOanKdW1QAAABojICDBpoTcDz22GNF2XePHj1i7NixTa4XcAAAANAYAQcNZL1FZc6cOfGPf/yjKPseP3589O/fv8n1Ag4AAAAaI+CggawzOKZNm1aU/W699dZx2mmn5WzjGRwAAAA0RsBBA1lncDz++ONF2e95550XXbt2zdmmWM/5AAAAoH0RcNBAlhkcNTU18ac//anF+9xzzz1j1KhRedstWrTIAAEAANCAgIMG3nnnnaivry+o7fTp02PdunUt2l9FRUVMnDixoLb/+te/DBAAAAANCDhoYPXq1bFw4cKC2hbj+RuHHXZYfPKTnyyo7YIFCwwQAAAADQg4aNScOXPytlm3bl1Mnz69Rfvp0aNH/OAHPyi4vYADAACAxgg4aNTcuXPztvnzn/8cNTU1LdrPuHHjcr4W9qMEHAAAADRGwEGjCgk4Xn/99RbtY6uttorTTz890zaewQEAAEBjBBw0qpBbVJYvX96ifVx55ZXRrVu3TNuYwQEAAEBjBBw0at68eXnbtCTgOO6442LEiBGZtxNwAAAA0JjOSkBjCpnBsWzZsmb1PXDgwLjgggsyb7dmzZp47733DA4AANCqKioqmr0sa9tCt1+3bl18+OGHBmc9Ao717LTTTrHjjju2yoVbqu1b+mFaf3ltbW3OW0h233336Ny5c6Z9VVRUxJgxY6JHjx6Zx2fBggVx4oknluRcy2Vcy+EPain2laVdSuea0nWVyjXoXNvn562tx6pcz7UUY9Xevos4V99FfBfxXaRcPgPl6OSTT45HH33UD/n1xzQi6pXh3yZMmBATJkxQCAAAAMraKaecEo888ohCrMcMjiJZvHhxo7ds1Nc3nh9lWZ61j6Zk7bu6ujp69+7dZH8LFiyIxYsXF3yM3bp1ix122KHZSens2bPj/fffb9b5t8U4pDDG5VyTVMcy6z6LcZ4pjHG51NvnNYyxz6ux7EDfF4yxsWwP36E68vf7Aw44IMaNG9fk+k6dPFJTwFEi1113Xdxyyy3t6py+973vxZlnntnk+nvvvTeuuOKKgvqqqqqK3/72t80ON9asWRNf/vKXY/Xq1S42AACg3dtpp51yrk/9FptSEPnQpL/97W851/fp06fgvs4666wYMmRIs4/lL3/5i3ADAADoMPI9QNQMjkZqogQ0ZdasWTnX9+3bt6B+9thjj/jWt77VomP54x//aEAAAIAOQ8CRnYrQpLfffjvna1kLmcHRrVu3uPbaa6OysrJFxzJz5kwDAgAAdBj5ntch4GikJkpALrlmcVRXV+fd/rzzzouPfexjLTqGVatWxQsvvGAwAACADsMMjuxUhJxyPYejuro6unbt2uT64cOHxze+8Y0WH8PMmTNj7dq1BgMAAOgw8s3g8JDRhgQc5JQr4OjUqVOTszM22WSTuOaaa4ryobvzzjsNBAAA0KHkm8HR0scAtEcCDnLK96DR7bffvtEP2o033hhbbrlli/c/Z86cmD59uoEAAAA6FLeoZKci5DRv3rxYvnx5k+sbCzjOOeecGD58eFH2f8cdd+SdmgUAANDeeMhodipCXrlmcXw04Dj44INj7NixRdnvqlWrYurUqQYAAADocMzgyE5FyCvXczjWDzgGDx4cV111VdH2e//990dNTY0BAAAAOpx8AYeHjDbUWQnIJ1fAsd1220VlZWV07949br/99ujZs2fR9jtp0iTFBwAAOiQzOLJTEfLKFXB06dIlqqur46qrrorBgwcXbZ9/+tOf4pVXXlF8AACgQxJwZKci5DV37tyct4pcfvnlcfDBBxd1nzfeeKPCAwAAHZaHjGanIhT0wXrppZeaXL/vvvsWdX9PPfVUTJs2TeEBAIAO/Tss5495AUfDmigBhch1m0oxrVu3Ls4//3wFBwAAOjS3qGSnIhQk16tii+n222+P2bNnKzgAANChCTiyUxEK0hozOBYvXhw/+9nPFBsAAOjwBBzZqQgFefPNN2PFihUl3cell16a82GmAAAAHYWAIzsVoeAP18svv1yy/l988cW45557FBoAACA8ZLQ5VISCvfLKKyX74J533nl5P8AAAAAdRb4ZHBUVFYr0EQIOCjJkyJA47LDDStL3TTfdFM8//7wiAwAA/D+3qGSnIuQ1aNCgmDJlSvTq1avofb/44otx2WWXKTIAAMB6BBzZqQg59e/fP+65557YbLPNit73+++/H6effnqsXbtWoQEAANYj4MhORWjSxhtvHFOnTo1tttmmJP1/73vfi7lz5yo0AABA1h/zAo6GNVECGtO9e/e46667YqeddipJ/1OnTo0HH3xQoQEAABphBkd2KkIDVVVVceutt8bQoUNL0v/rr78e5513nkIDAAA0QcCRnYqwgYqKirjmmmtixIgRJel/9erVcdppp8WqVasUGwAAoAkCjuxUhA1ccsklceihh5as/3PPPTf+/ve/KzQAAEAOAo7sOisBEf+euXHppZfGCSecULJ93HjjjTFlyhTFBgAAyCNfwFFRUaFIHyHgIDp16hQ//elPY/To0SXbxyOPPBKXXHKJYgMAABSgvr4+7+84NiTg6OgXQOfOce2115b0tpTnn38+xo8fn/cDCgAAwL+5RaUZv2+VoOOqqqqKG2+8MQ466KCS7WPevHlx4oknRm1trYIDAABlpbHbPJq69aNYywtt27lz7p/rAo6GBBxFMmzYsFi9enWbfwgKXV5VVRWjR4+OHXbYoWQ1qa2tjYcffjgOP/zwZp9j1vMs5R+jch3LcqxJKc+znGpVLv9QpjrGqX5e29sY+7waS2NsjP0b4zthR/hO2B4JOAQcJTNy5MgYOXKkQqynW7duMXbsWIUAAAAoMgFHQwKOIlm8eHEsW7aswfLGnjvR1LMoWtq2Keu3raioiIEDB0aPHj1KWo958+bF0qVLS16HLLVpzbEo13Mrh/PNcm6pjaVza/3jNZbOrb2dm3/v2te5+Qym9z3FZ9C5ldP3lL59+8a9994r4BBwtL7rrrsubrnllrI+xt69e8eUKVNKHm5ERBx88MGxZMkSFwYAAEAzbLLJJjnXCzgaqYkSdAz9+vWL++67L/bYY49W2V9r7QcAAKA98haV7FSkA+jdu3fce++9seuuu7baPocPH67wAAAAzSTgyE5F2rlu3brFHXfcEbvsskur7lfAAQAA0Hz5ni3Skd4YUygBRzvWuXPnuOmmm+LTn/50q+97p512ik033dQgAAAANIMZHNmpSDtVUVERP/vZz2K//fZrs/2bxQEAANA8Ao7sVKSduvDCC+Owww4r6T5mzpwZNTU1Ta7fd999DQQAAEAzCDiyU5F2aPz48XHKKaeUdB/PPfdcnHjiifHXv/61yTYCDgAAgObJF3BUVlYq0kcIONqZL37xi3H22WeXdB+vvvpqHHvssbFy5cp4/vnnm2y39dZbx6BBgwwKAABARh4ymp2Aox0ZOHBg/PznPy/phT537tw4+uijY/ny5RER8cILL+Rs7zkcAAAA2blFJTsVaSe6desWt956a2y88cYl28eiRYviqKOOioULF/53Wb6Aw20qAAAA2Qk4slORduLyyy+PIUOGlKz/mpqaOOqoo2LOnDkbLH/33XfjrbfeanK7ffbZx9QpAACAjPLdoiLgaKQmSpC+448/Po444oiS9V9bWxvHH398vPrqq42uzzWLo1+/fiUNXgAAANqrXLM4BByN1EQJ0rbHHnvExRdfXLL+161bF6eeemr8+c9/brKN21QAAACKL1fAYaZ8QwKOhHXp0iWuvfbaqKqqKkn/9fX1ceaZZ8YTTzyRs12uN6lEeNAoAABAc3+TNflj3gyOhjVRgnSNHz8+Pvaxj5Ws/x/+8Idx//335203a9asWLduXZPr99prr5KFMAAAAO1VXV1d0z/mBRwNa6IEadp2221j/PjxJev/5z//edx2220FtV21alW89tprTa7v3r17DB061KABAABkkOsWlcrKSgX6CAFHoq644oro0qVLSfr+/e9/H5dffnmmbfLdpuI5HAAAANl4Bkc2nZUgPV/72tdK9lyLN998M8aNG5f3ncsf9fzzz8dxxx3X5Prhw4fHj3/844iI2GSTTWLPPfeMXXbZJfr16xd9+/bd4P/36dMnVq5cGUuWLInFixfH4sWL//uf586dGzNmzIhly5a5EAAAgHbNW1SyEXAkpnfv3nHhhReWpO8PPvggvvGNb0RNTU3mbV988cWc63fbbbf42c9+Fp/61KcKem5Iz549Y/PNN290XV1dXTz77LPx+OOPx7Rp0+KNN95wYQAAAO2Oh4xmI+BIzLnnnhubbrppST44Z5xxRrz++uvN2n727NmxYsWK6NmzZ6Pru3TpEkceeWRRjrWysjL22muv2GuvveL888+PN998Mx577LG4+eabY+HChS4SAACgXTCDIxsVScigQYPimGOOKUnf11xzTTz66KMt+uDlm8VRKttuu22cfvrpMXPmzBg/fnzJnk0CAADQmgQc2ahIQk455ZSSXMRPPPFE/OQnP2n29hUVFXHEEUfE4MGD27Q+G220UZxzzjkxY8aMOPDAA10wAABA0gQc2ahIIjbeeOMYPXp00ft9880341vf+lbmh4r+xy677BIPPvhgXH311bHFFluURa0GDhwYt912W9x7772x8847u3gAAIAkeYtKNgKORBx33HHRo0ePon9YzjjjjGY9VLRXr15x8cUXx+9+97sYNmxYWdZs+PDh8dhjj8URRxzhAgIAAJLjIaPZqEgCqqqq4uSTTy56vzfffHM899xzmbf76le/Gk8//XScfPLJUVlZWfa1u/rqq2PChAkuJAAAICluUclGRRJwyCGHRP/+/Yva5z//+c+48sorM21TWVkZl156aVx//fVNvsK1XE2YMCGuuuqqqKqqckEBAABJyBVwlPv/2NwWBBwJGDNmTNE/JN/5zneitra24G169+4dd911V5x44onJ1nH06NFx1113Ra9evVxUAABA2fMMjmwEHGVu+PDhMWTIkKL2efvtt8ezzz5bcPuBAwfGb37zm/jc5z6XfD333XffeOCBB4o+IwYAAKDY3KKSjYqUua9+9atF7W/OnDlx2WWXFdz+05/+dDzyyCOx/fbbt5ua7rzzzvHLX/4yunXr5gIDAADKloeMZtNZCcpbsWdNfPe7341Vq1YV1PaTn/xkTJ06tV0GAbvttltcddVVcfrpp7vIAICSa2oqeTGWZ52mXoy+2+J8inGe5XTcxTjPFI67PV2zbTGWuZ4hKOAQcJTMgQceGNtss01RPwQbb7xxDBgwoGjHOH/+/Bg1alSMGjUq77H07NkzDjjggHY9y+GQQw6JwYMHx9///vd2/Y9WOf3x949W+/likuoXLWNsjP0w8m9MW/2NACg2AUcjf5cjojspCGQAACAASURBVF4Z/m3ChAleJwoAAEDZW7hwYey+++4KsR4zOIrk1Vdfjblz5zZY3tg9U03dR/XR5cOGDSvawzDnz58fL7zwQt5jiPj3cze22GKLDjN2a9eujccffzyWLVtWlHErZdumlOIYWvt8s9SgXMfHuXXMczOWzs25Ff/flfb8GfT3xbm5Tp1blrZPPPFEbLfddo22N4NDwFEyd999d9xyyy1F66+qqipeeeWVov2AP/zww2PevHl5206cOLFDhRv/qfWuu+4aX/jCF2LlypUuZgAAoCzU1dU1uU7A0UhNlKA8DR06NDbaaKOi9HXXXXcVFG7svffeccopp3TIeldXV8cZZ5zhwgMAAMpGrtfEVlZWKtBHCDjK1Gc/+9mi9LNy5cq4+uqr818InTrFxIkTO3TNTzvttBg0aJCLDwAAKAteE5uNipSpYr0e9t5774133303b7vRo0fHrrvu2qFr3qVLlw4f8gAAAOUj1wwOb3JqSMBRpnbaaaei9DN58uS8bXr27Blnn322okfEfvvtF1/84hcVAgAAaHO5Ag4zOBqpiRKUn169ekX37t1b3M9f//rXePnll/O2+/a3vx2bbbaZwv+/iy66KKqqqhQCAABoUwKObFSkDG2++eZF6WfKlCl522y55ZYd9sGiTdl2223j1FNPVQgAAKBNCTiy8ZrYMtS/f/8W97Fy5cr49a9/nbfdqFGjokuXLm1ynq+++mrceuutUV1dHQMHDozq6uqorq6OTTfdtM3HYMyYMXHzzTfH2rVrXZAAAECbEHBkI+AoQ8W4XeShhx6KFStW5G138MEHF/346+rq4sknn4y+ffvG0KFDm2zXp0+fmDp1aoPlgwYNimOOOSZGjx7dZmHHpptuGgcccED85je/cUECAABtItdbVDxktCGRTxkqxgyOQn6Y9+/fP2cAkdW8efPiyiuvjD333DOOP/74eOyxx3K233LLLaNnz54Nls+ZMyd+9KMfxdChQ+PUU0+Np556KucHu1SOO+44FyMAANBmzODIRkXKUEufwbF27dp45pln8rY76KCDipL6zZo1K4488sjYe++94+qrr4533nknIiJef/31vNvusMMOOc/j4YcfjiOPPDI+85nPxOOPP96q47DPPvvEoEGDXJAAAECbEHBkoyJlqKUBx1/+8pdYtWpV3nYHHnhgi/ZTU1MT5557bhx00EGNzrJ47bXX8vax/fbbF7SvuXPnxoknnhgTJ05stediVFRUxLHHHuuCBAAA2kSugCNCyNGgHkpQflp6i8rTTz+dt02/fv1i7733bvY+fv/738dnP/vZmDRpUtTV1TXaZv78+bFy5cqc/eSawfFR9fX1cdNNN8UhhxwS8+bNa5WxGD16tFfGAgAAbULAkY1qlKGWzuAoJODYb7/9orKysln9X3vttXHCCSfEokWLcrarr6+P2bNn52yTJeD4jxdffDG+/OUvt8oDQDfZZJM44IADXJQAAECry/csQg8a3ZCAo515//3348UXX8zbbtttt83c99q1a2PMmDFx+eWX500S/yPfbSrNCTgi/n17zJgxY+Luu+8ueU332WcfFxYAANDqzODIRjXK0OLFi5u97d///vcmbxlZX9++fTP3feGFF2aeNZHvQaNbb7119OjRo9nne/bZZ8dzzz1X0vHYY489XJQAAECrE3BkoxplaMmSJc3e9o033iioXZ8+fTL1e++998akSZMyH0++GRwVFRUxePDgZp/vmjVr4pvf/GYsXLiwZOOx0047Rffu3V2YAABAqxJwZKMaZaglAcc//vGPgtplmcHxt7/9Lb7//e8363gKeZNKc29T+Y+FCxfGySefHGvWrCnJeHTu3Dl22203FyYAANCqBBzZqEYZasktKsUOOJYsWRInn3xyrF69ulnH8/bbb8cHH3yQs01LA46IiOeff77ZIUwh3KYCAAC0Ng8ZzUbAUYbK6RaVCRMmxNtvv92iD2S+53AUI+CIiLjnnnvi97//fUnGRMABAAC0tnwBR3PfjNleCTjKUHNncHz44Ycxd+7cgtr27t07b5t58+bF448/3uLzKdWbVBpz0003lWRMdt99dxcmAADQqtyiko1qlKH58+c3a7sVK1bEunXrCmq7dOnSvG2mTJmSNzEsRL6Ao7q6Orp27VqU2s2cOTNefvnloo9J1oeyAgAAtJSAIxvVKEMvv/xyQQHERy1btqzgtvPmzcu5ft26dXHPPfcU5XzyBRydOnWK7bbbrmj1K8Usji5durgwAQCAViXgyEY1yvQifvrppzNvt3z58oLb5psl8sQTTxTt1aut8SaV9T344IPxzjvvFHVMKisr3d8GAAC0Kg8ZzUbAUaZmzJiReZssAUe+Z3X89re/Ldq5LFiwIN5///2cbYoZcKxduzZuu+22oo+JWRwAAEBrMoMjG9UoU80JOIp5i8qCBQuKej6t9SaV/5g8eXJRnh+yPgEHAADQmgQc2ahGmfrXv/4Vs2fPzrRNXV1dwW3z3aJS7Fs85syZk3N9MZ/BEfHvsKclr7dtTLEehAoAAFAIAUc2qlHGss7i6NevX8FtZ8+enfONK4sWLSrqueS7JWabbbYpev0KefZHpg+LPx4AAEArEnBk/M2mBOXrySefzNQ+S8BRU1MTzzzzTKPrVq1alfeZGVnluyWmR48esckmmxR1n8UMONatWxeLFy92UQIAAK3GQ0azEXCUsaeeeirTbRZZAo6IiGnTprXahyTfDI6I4s/iyPfcjyzeeuutnDNeAAAAii3fDA5vetyQgKOM1dXVxR133FFw+6wzIJoKOLp16xabbbZZUc+lkICjurq6qPss5gyOfM8QAQAAKDa3qGTTWQnK25QpU+K73/1uQW/w6NKlS2y00UbxwQcfFNT3vHnz4tVXX42dd965wbptttkm3n333aKdx8KFC2PNmjU5z2Prrbcuau1mz54d9fX1RZmR8uabb7oYAYAWaew7SVPfU4q1vFR9l/K4i3GOKZ9Pa49lW12brtnC2vfp00fAIeBofQceeGCjt1gU4wMzb968GDx4cEHHcfXVVzf5rIjG+m7qtouzzz670VkLLTmf2tranAHHkUceGdtvv31RvySsXLkyNtpooxaP79ChQ+P6669P8o95Of2R78hfQFI+n478BcQY+5Lph1HH+jem1NcVQLH5O/SRekREvTL824QJE2LChAkKAQAAQNnbb7/94uWXX1aI/2cGR5G89NJL8cYbbzRY3thTb5t6Em6utiNGjCjoIaJLliyJ6dOnZzqGvfbaKwYOHLjB+qVLl/73GR3NOd7Glu+5556xww47NHnsNTU18dBDDxWtZhERhx12WPTs2bPF43vPPffEihUrilKH1mrblHI93izbZ6lBSufr3NI9t/b6Gcxybq5T5+bc0vn7Yiydm3Nr23PLsv1ll10WJ5xwQpPH4hYVAUdJ/OpXv4pbbrmlZP1/9atfbfIWifX17ds3Lrjggli2bFnBfe+4444xffr0DaY39e3bN3784x/Hv/71r6Kdw5gxY+KCCy5ocn3Xrl3j+9//fqY/LvmMHDmyxQHH66+/Ht/5zndc5AAAQKvykNFsVCMRDz74YLz66qv5B7RTp/jsZz+bqe/XXnstHnvssQbL999//6KeQ743qXTt2jU233zzou6zR48eLe5jxowZLkAAAKDV5fsffwUcH6mHEqThww8/jIsvvrigtiNGjMjc/9VXX91g2UknnVTU9yoX8qrYYr5JZcCAAdG9e/cW9yPgAAAA2kJdXV3uH/QCjg3roQTp+MMf/hBPPfVU3nb77bdf5h/2s2bNismTJ2+wbLvttotDDz20aMc/f/78vG2qq6uLtr/dd9+9xX2sWbMm/vd//9fFBwAAtDq3qGSjGom56KKL8l7k/fr1i+OPP75Zfb/99tsbLPv+979f0MNNC7FixYpYsmRJzjblFnD8+c9/jlWrVrnwAACAVifgyEY1EvPKK6/Efffdl7fd6aefHt26dcvU9/vvvx/f/e53N1i29dZbxxlnnFG04583b17O9dtss03R9lWMgOP+++930QEAAG3CMziyUY0EXXHFFVFbW5uzzeabbx7HHnts5r5nzJgRt99++wbLli5dWrRjzxdwFGsGR/fu3WO33XZrUR+LFy8WcAAAAG3GMziyUY0ELViwIK677rq87caNGxddu3bN3P8Pf/jDuOeee/773996662iHXu+B40W6yGjX/nKV1r8BpU77rgj1qxZ44IDAADaRL5bVCoqKhRpPQKORF133XXxt7/9LWeb/v37xzHHHNOsD9GECRNi0qRJsWbNmgbP5WiJfAHHVlttVZQU8sgjj2zR9mvWrIk777zThQYAALQZz+DIRjUStW7duvj2t7+dd4bB+PHjY+ONN27WB+ncc8+NIUOGxAsvvFC04853i0pVVVVsscUWLdrHoEGDYq+99mpRH7/+9a/j3XffdaEBAABtRsCRjWok7LXXXosrr7wyZ5v+/fvH1Vdf3ex9fPDBB7F69eqiHXO+GRwRLX8Ox+jRo1s0VWvt2rVxww03uMAAAIA2JeDIRjUS94tf/CL+8pe/5Gyz//77x6mnnloWx7tgwYJYu3ZtzjYteZNKr169mnVbzvp+/vOfx+zZs11cAABAmxJwZKMa7eCCP+OMM2LVqlU525177rlFeW1qS9XV1eV9pkdLZnBMmDAhNt1002ZvP3v27BbNeAEAACjm772cP+gFHBvWQwnSN2fOnDj//PNztqmqqopf/OIX0bt37zY/3nzP4Wjum1R23HHHOOmkk1r0x+Oss87KO8MEAACgNXhNbDaq0U5MmTIlJk+enLPNNttsUxazE/I9h2PAgAHN6vfiiy+Ozp07N/u4Jk2aFM8995yLCQAAKAv19fW5f9ALODashxK0Hz/4wQ/i+eefz9nmgAMOiEsuuaRNPwj5Ao7m3GIycuTIGD58eLOP6aWXXorLLrvMRQQAAJQNt6hkoxrtyNq1a+Ob3/xm3tebnnTSSXHjjTdGly5d2uQ4892istlmm2Xqb8cdd8z7Nplc5syZE8ccc0ysXLnSRQQAAJQNt6hkoxrtzDvvvBNjxoyJdevW5Ww3cuTImDp1aps8kyPfDI5+/foV/EHdaqutYurUqbHxxhs361gWLlwYRx55ZN5QCAAAoLXlm8FRUVGhSOsRcLRDzzzzTJxzzjl579fae++949e//nVsscUWrXp8+QKOTp06Rb9+/fL207dv35g6dWqzj7+mpiaOPvrovDNKAAAA2oJncGSjGu3U5MmT49xzz83bbuedd46HH344dthhh1Y7tpqamli+fHnONvluU+nevXvceeedMXjw4GYdw4oVK+KEE06IV1991cUCAACUJc/gyEY12rFf/vKXBYUcAwYMiN/85jcxZsyYqKqqapVja8mDRgcMGBBTpkyJoUOHNmvfc+bMia985Svxpz/9yUUCAACULc/gyEY12rlJkyYVFHL06tUrLrjggpgxY0bsv//+JT+ufAFHUzM4Dj300Jg+fXp8+tOfbtZ+Z8yYEQceeGC8/vrrLg4AAKCsmcGRjWp0AJMmTYrzzjuvoLaDBg2KSZMmxa9+9avYZZddSnZM8+fPz7n+ozM4evfuHTfccEPccMMNzX4w6k033RTHHnts3ttjAAAAyoGAIxvV6CBuv/32OP/88wtuv88++8S0adPiJz/5SebXthYiywyOz3/+8/Hkk0/GoYce2qx91dTUxPjx42PixIl5p3gBAACUCwFHNp2VoOO47bbboqKiIi666KKC2nfq1CmOPvro+PrXvx5PPfVU/O53v4snnngiFi1a1OJjyRdwDB48OE477bQ46qijYvvtt2/2fh544IG48MILi3LMAAAArUnAkY2Ao4O59dZb4/3334+LLrooevXqVdA2Xbt2jf322y/222+/qK+vj+effz6mTZsW06ZNi9dee61Zx/Huu+/mXL///vu36Fkg//znP+Pss8+OmTNnGnQAACBJAo5sBBwd0D333BNPPfVUXHHFFfGlL30p07YVFRUxdOjQGDp0aJxzzjkxZ86cePzxx+Oll16KOXPmxNy5c/POlqisrIyuXbuW5NxWr14d1157bVx//fWxZs0agw0AACRLwJGNgKODWrBgQRx//PHxta99Lb73ve9FdXV1s/oZNGhQnHLKKRssW7lyZSxYsCBWrVoVq1evjtra2qitrY2qqqqorq6Orbbaquivo62trY2pU6fGjTfeGG+99ZYBBgAAkpcv4KioqFCk9Qg4Orj7778/HnzwwRg5cmSMGzcuhgwZ0uI+e/ToEdttt12rHH9NTU1MmjQpbr311liyZIkBBQAA2g0zOLIRcBB1dXXxwAMPxAMPPBCf//zn49RTT43hw4dH587le3ksXLgwbrnllrjzzjtjxYoVBhEAAGh3BBzZCDjYwB/+8If4wx/+EP369YsDDzwwRo4cGZ/5zGfKIuxYsWJFTJ8+PR599NF49NFHPWMDAABo1+rq6nKuF3BsSMBBo957772YPHlyTJ48+b9hx7777hvDhg2LAQMGtNpxLFq0KH73u9/FY489FjNnzoy1a9caHAAAoEMwgyMbAQd5rR92RERsscUWMWzYsBg6dGgMGzYshgwZEt26dSv6fi+++OL4xS9+EfX19QYBAADocPL9FhJwbEjAQWbvvPNOPPzww/Hwww//d1m/fv1iyy23jAEDBsSWW2753//cs2fPqKura/T/dtxxxxg2bFiT+6mtrRVuAAAAJdPUW0iKsTzrG04aa58vwBBw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AAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4A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/+MYxPkNE2IkGABNSVOQ7HM+7DuUt3Q7mjpUFmcjr1unl8NuVbD7m6plQSJtQIuLMFbkdTOVo4XNGpkZmZshRj5KVGyRR6oW/+MYxP8P82okOACTLDX0hZ/NMwIyV2MZOyleP56///LM+7JePftrs1g+k+jJlnog5CvNvjmcS3cDTZkDKhtl8r35yOV+jgtR/+MYxPoOQ2YYEABTSKmIjcsiPb5ZfXf7UH8zFxqUaDwmSPCizYFGwQGwyZIIX0pOLKIpjETlo1U/56E0qoAczJRAWM5G8HJA/+MYxPwK8148GABNSUZyKUXZ6Ik9o/PNrPO4Xd3k45s5ZbFOhlkKfJ2SMjFyc9KZLMjQ60Ps1iyQiQycScX711gnjk89MiiI/+MYxP8TC2oIAACTEM0f+Z/SNfy///f9lc5XLIHLMz46Yck2h2K0dtqT0bECVySOS9qTEGr9rfbPd2TQq7VMzuRDg3vYJJEn/+MYxO0ME2YcEABNSJ2RxzMIKcrhC0U0F3kImjyb03for+r/zq1OmMvJ/7vbWJlSA5zVyGFyjBs22U4ODIPh4hDbrVUbv/ln/+MYxPcNW2YcEABNSGWrMglL8cicpXM60b///+8h4bKpxqdMwhMvkpTs/hZPkDJUtJu2TccDTSJKRRGOl+v/1//9Omu/2pdE/+MYxPwPu2oQCABTLHWi9r07yp99tVRSsxysZJwFXKcDYBwxzjoPraIHIgUpiCmopmXHJwp268/L++7oMjOERqsPR/WT59fe/+MYxPgMU1ooGABTSLv/8+5at2WSQuEzX00HAFGyipKM5p5VFojkAmjknWmIKaimZccnBdUObf4ovk//MMX///X/yt/uOXlx/+MYxP8SW2IIAACTEKktqFqTxCJSJF/JNmSImOhln2AosFn0lTEFNRTMuOTguMlVVVVVVVVMQU1FMy45OC4yVVVVVVVVVVVV/+MYxPAMw2IgEABTSVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45OC4yVVVVVVVVVVVV/+MYxPgK215IGACNTFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxP8MW2I4GABNSFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxP8Ks1oUGABTZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxP8AAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVEFHMTAgU2Vjb25kcyBvZiBTaWxlbmNlAAAAAAAAAAAAQW5hciBTb2Z0d2FyZSBMTEMAAAAAAAAAAAAAAAAAQmxhbmsgQXVkaW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8=";
953
+ const audio = 'data:audio/mp3;base64,SUQzBAAAAAIYBlRJVDIAAAAWAAAAMTAgU2Vjb25kcyBvZiBTaWxlbmNlVFBFMQAAABIAAABBbmFyIFNvZnR3YXJlIExMQ1RBTEIAAAAMAAAAQmxhbmsgQXVkaW9BUElDAAIPAgAAAGltYWdlL2pwZWcAAwCJUE5HDQoaCgAAAA1JSERSAAAEOAAABDgIBgAAAOwQbI8AAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACD0AAAg9AQWVVbYAAAAHdElNRQffCgsFHDEDbwR2AAAgAElEQVR42uzde5RVZd0H8N8wDDcBAS8o6oCJVyxTsDSxojJvgVYq3jVNUQgzaZWmpqh56+ItNa+kr4Cay9Q0DQ1DWb2WeSm8pGRy0RAEgRFhuIzz/tFbC5yZc86eOWfmPDOfz1rvemvvZz9779+zz3DOt2fvXRER9QEAAACQsE5KAAAAAKROwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8BBq9pss81i4sSJMXToUMUAAACgaCoiol4ZaA177rln3HzzzdG/f/+oqamJww8/PGbNmqUwAAAAtJgZHLSKk046Ke67777o379/RET07t07pk6dGtXV1YoDAABAi5nBQcmde+65MW7cuEbXvfjii3HIIYfE2rVrFQoAAIBmq4yIC5WBUqioqIgf/ehHceqppzbZZosttohevXrFk08+qWAAAAA0/zdomMFBCVRWVsZPfvKTGD16dEHtjzrqqJgxY4bCAQAA0CwCDoquU6dOccMNN8SoUaMK3mbOnDkxYsSIWL16tQICAACQmVtUKLoLL7wwjj766Ezb9OnTJz788MP44x//qIAAAABkZgYHRXXyySfHxRdf3Kxt16xZEyNGjIg333xTIQEAAMjEa2Ipmv333z8mTpzY7O27dOnSou0BAADouMzgoCh23333uO+++6J79+4t7utLX/pSvPLKK4oKAABAwczgoMW22mqruOOOO4oSbkREjBs3TlEBAADIxAwOWqRTp05x3333xV577VW0Puvq6uIzn/lMzJ8/X4EBAAAo7PepEtASp59+elHDjYiIysrKOO200xQXAACAgpnBQbPtuuuu8cgjj0RVVVXR+66trY0999wzlixZotAAAADkZQYHzdKtW7e4/vrrSxJu/Kf/r3/96woNAABAQQQcNMv5558f22+/fUn3MWrUKIUGAACgIAIOMvvCF74Q3/jGN0q+nz322COqq6sVHAAAgLwEHGRSVVUVl156adH7Xbp0aaPLzeIAAACgEAIOMjn22GOLPqvimWeeic997nOxaNGiBusOOeQQRQcAACAvAQcF69GjR5x55plF7fOhhx6KI488MhYvXhxTp05tsH7IkCGx3XbbKT4AAAA5CTgo2De/+c3YbLPNitbfM888E+PGjYs1a9ZERMTkyZOjvr7hW4vN4gAAACAfAQcF6dOnT4wdO7Zo/S1dujTGjh0bdXV1/1321ltvxaxZsxq0HTFihAEAAAAgJwEHBfnWt74VvXv3Llp/Z555ZrzzzjsNlj/++OMNln3iE5+Irl27GgQAAACaJOAgr/79+8dJJ51UtP5uu+22RoOMiIhp06Y1WFZVVRWf+MQnDAQAAABNEnCQ19ixY6Nbt25F6evdd9+Nyy+/vMn1s2bNanRmx5577mkgAAAAaJKAg9wXSKdOMWrUqKL199Of/jQ++OCDnG0am90h4AAAACDn71clIJe99tor+vfvX5S+3njjjZgyZUredo0FHMOGDTMYAAAANEnAQU4jR44sWl8/+tGPYt26dXnbPf3007Fq1aoNlm2yySax7bbbGhAAAAAaJeCgSZWVlXHwwQcXpa9nn302HnvssYLarl69Ol588cUGyz/1qU8ZFAAAABol4KBJe++9d2y66aZF6euiiy7K1P6VV15psGyPPfYwKAAAADRKwEGTDjnkkKL088gjj8Rzzz2XaZuXX365wbKBAwcaFAAAABol4KBRnTt3joMOOqjF/axbty4uvfTSzNs1NoNjq622MjAAAAA0SsBBo/bZZ5/o27dvi/v5n//5n3jzzTczb/faa69FfX39BssGDBhgYAAAAGiUgINGFeOBnitWrIirrrqqWduuXr063n///Q2Wde/evSihCwAAAO2PgING7brrri3u46abborFixc3e/ulS5c2WOY2FQAAABoj4KBRQ4YMadH2a9eujV/+8pct6mPZsmUNlrlNBQAAgMYIOGigT58+LQ4SHnrooViyZEmL+mgs4DCDAwAAgMYIOGhg8ODBLe6jpbM3IiI++OCDBssEHAAAADRGwEED/fr1a9H2s2bNiueee67Fx9HYA0UFHAAAADRGwEEDLX1TyaRJk4pyHJtvvnmDZZ7BAQAAQGMEHDTQkhkcy5YtiwceeKAox7HZZps1WNazZ08DBAAAQAMCDhro06dPs7e9++67o7a2tsXH0KVLl+jdu3eD5Z07dzZAAAAANCDgoIHKyspmbVdfXx933nlnUY5hu+22K+qxAQAA0L4JOGhg5cqVzdpu+vTpMWfOnKIcw/7779/ocgEHAAAAjRFw0EBzA45ivBr2Pw488MBGl7tFBQAAgMYIOGjggw8+yLzN3Llz48knnyzK/rfaaqv4+Mc/3ug6AQcAAACNEXDQQHNmcEyePDk+/PDDouz/oIMOanKdW1QAAABojICDBpoTcDz22GNF2XePHj1i7NixTa4XcAAAANAYAQcNZL1FZc6cOfGPf/yjKPseP3589O/fv8n1Ag4AAAAaI+CggawzOKZNm1aU/W699dZx2mmn5WzjGRwAAAA0RsBBA1lncDz++ONF2e95550XXbt2zdmmWM/5AAAAoH0RcNBAlhkcNTU18ac//anF+9xzzz1j1KhRedstWrTIAAEAANCAgIMG3nnnnaivry+o7fTp02PdunUt2l9FRUVMnDixoLb/+te/DBAAAAANCDhoYPXq1bFw4cKC2hbj+RuHHXZYfPKTnyyo7YIFCwwQAAAADQg4aNScOXPytlm3bl1Mnz69Rfvp0aNH/OAHPyi4vYADAACAxgg4aNTcuXPztvnzn/8cNTU1LdrPuHHjcr4W9qMEHAAAADRGwEGjCgk4Xn/99RbtY6uttorTTz890zaewQEAAEBjBBw0qpBbVJYvX96ifVx55ZXRrVu3TNuYwQEAAEBjBBw0at68eXnbtCTgOO6442LEiBGZtxNwAAAA0JjOSkBjCpnBsWzZsmb1PXDgwLjgggsyb7dmzZp47733DA4AANCqKioqmr0sa9tCt1+3bl18+OGHBmc9Ao717LTTTrHjjju2yoVbqu1b+mFaf3ltbW3OW0h233336Ny5c6Z9VVRUxJgxY6JHjx6Zx2fBggVx4oknluRcy2Vcy+EPain2laVdSuea0nWVyjXoXNvn562tx6pcz7UUY9Xevos4V99FfBfxXaRcPgPl6OSTT45HH33UD/n1xzQi6pXh3yZMmBATJkxQCAAAAMraKaecEo888ohCrMcMjiJZvHhxo7ds1Nc3nh9lWZ61j6Zk7bu6ujp69+7dZH8LFiyIxYsXF3yM3bp1ix122KHZSens2bPj/fffb9b5t8U4pDDG5VyTVMcy6z6LcZ4pjHG51NvnNYyxz6ux7EDfF4yxsWwP36E68vf7Aw44IMaNG9fk+k6dPFJTwFEi1113Xdxyyy3t6py+973vxZlnntnk+nvvvTeuuOKKgvqqqqqK3/72t80ON9asWRNf/vKXY/Xq1S42AACg3dtpp51yrk/9FptSEPnQpL/97W851/fp06fgvs4666wYMmRIs4/lL3/5i3ADAADoMPI9QNQMjkZqogQ0ZdasWTnX9+3bt6B+9thjj/jWt77VomP54x//aEAAAIAOQ8CRnYrQpLfffjvna1kLmcHRrVu3uPbaa6OysrJFxzJz5kwDAgAAdBj5ntch4GikJkpALrlmcVRXV+fd/rzzzouPfexjLTqGVatWxQsvvGAwAACADsMMjuxUhJxyPYejuro6unbt2uT64cOHxze+8Y0WH8PMmTNj7dq1BgMAAOgw8s3g8JDRhgQc5JQr4OjUqVOTszM22WSTuOaaa4ryobvzzjsNBAAA0KHkm8HR0scAtEcCDnLK96DR7bffvtEP2o033hhbbrlli/c/Z86cmD59uoEAAAA6FLeoZKci5DRv3rxYvnx5k+sbCzjOOeecGD58eFH2f8cdd+SdmgUAANDeeMhodipCXrlmcXw04Dj44INj7NixRdnvqlWrYurUqQYAAADocMzgyE5FyCvXczjWDzgGDx4cV111VdH2e//990dNTY0BAAAAOpx8AYeHjDbUWQnIJ1fAsd1220VlZWV07949br/99ujZs2fR9jtp0iTFBwAAOiQzOLJTEfLKFXB06dIlqqur46qrrorBgwcXbZ9/+tOf4pVXXlF8AACgQxJwZKci5DV37tyct4pcfvnlcfDBBxd1nzfeeKPCAwAAHZaHjGanIhT0wXrppZeaXL/vvvsWdX9PPfVUTJs2TeEBAIAO/Tss5495AUfDmigBhch1m0oxrVu3Ls4//3wFBwAAOjS3qGSnIhQk16tii+n222+P2bNnKzgAANChCTiyUxEK0hozOBYvXhw/+9nPFBsAAOjwBBzZqQgFefPNN2PFihUl3cell16a82GmAAAAHYWAIzsVoeAP18svv1yy/l988cW45557FBoAACA8ZLQ5VISCvfLKKyX74J533nl5P8AAAAAdRb4ZHBUVFYr0EQIOCjJkyJA47LDDStL3TTfdFM8//7wiAwAA/D+3qGSnIuQ1aNCgmDJlSvTq1avofb/44otx2WWXKTIAAMB6BBzZqQg59e/fP+65557YbLPNit73+++/H6effnqsXbtWoQEAANYj4MhORWjSxhtvHFOnTo1tttmmJP1/73vfi7lz5yo0AABA1h/zAo6GNVECGtO9e/e46667YqeddipJ/1OnTo0HH3xQoQEAABphBkd2KkIDVVVVceutt8bQoUNL0v/rr78e5513nkIDAAA0QcCRnYqwgYqKirjmmmtixIgRJel/9erVcdppp8WqVasUGwAAoAkCjuxUhA1ccsklceihh5as/3PPPTf+/ve/KzQAAEAOAo7sOisBEf+euXHppZfGCSecULJ93HjjjTFlyhTFBgAAyCNfwFFRUaFIHyHgIDp16hQ//elPY/To0SXbxyOPPBKXXHKJYgMAABSgvr4+7+84NiTg6OgXQOfOce2115b0tpTnn38+xo8fn/cDCgAAwL+5RaUZv2+VoOOqqqqKG2+8MQ466KCS7WPevHlx4oknRm1trYIDAABlpbHbPJq69aNYywtt27lz7p/rAo6GBBxFMmzYsFi9enWbfwgKXV5VVRWjR4+OHXbYoWQ1qa2tjYcffjgOP/zwZp9j1vMs5R+jch3LcqxJKc+znGpVLv9QpjrGqX5e29sY+7waS2NsjP0b4zthR/hO2B4JOAQcJTNy5MgYOXKkQqynW7duMXbsWIUAAAAoMgFHQwKOIlm8eHEsW7aswfLGnjvR1LMoWtq2Keu3raioiIEDB0aPHj1KWo958+bF0qVLS16HLLVpzbEo13Mrh/PNcm6pjaVza/3jNZbOrb2dm3/v2te5+Qym9z3FZ9C5ldP3lL59+8a9994r4BBwtL7rrrsubrnllrI+xt69e8eUKVNKHm5ERBx88MGxZMkSFwYAAEAzbLLJJjnXCzgaqYkSdAz9+vWL++67L/bYY49W2V9r7QcAAKA98haV7FSkA+jdu3fce++9seuuu7baPocPH67wAAAAzSTgyE5F2rlu3brFHXfcEbvsskur7lfAAQAA0Hz5ni3Skd4YUygBRzvWuXPnuOmmm+LTn/50q+97p512ik033dQgAAAANIMZHNmpSDtVUVERP/vZz2K//fZrs/2bxQEAANA8Ao7sVKSduvDCC+Owww4r6T5mzpwZNTU1Ta7fd999DQQAAEAzCDiyU5F2aPz48XHKKaeUdB/PPfdcnHjiifHXv/61yTYCDgAAgObJF3BUVlYq0kcIONqZL37xi3H22WeXdB+vvvpqHHvssbFy5cp4/vnnm2y39dZbx6BBgwwKAABARh4ymp2Aox0ZOHBg/PznPy/phT537tw4+uijY/ny5RER8cILL+Rs7zkcAAAA2blFJTsVaSe6desWt956a2y88cYl28eiRYviqKOOioULF/53Wb6Aw20qAAAA2Qk4slORduLyyy+PIUOGlKz/mpqaOOqoo2LOnDkbLH/33XfjrbfeanK7ffbZx9QpAACAjPLdoiLgaKQmSpC+448/Po444oiS9V9bWxvHH398vPrqq42uzzWLo1+/fiUNXgAAANqrXLM4BByN1EQJ0rbHHnvExRdfXLL+161bF6eeemr8+c9/brKN21QAAACKL1fAYaZ8QwKOhHXp0iWuvfbaqKqqKkn/9fX1ceaZZ8YTTzyRs12uN6lEeNAoAABAc3+TNflj3gyOhjVRgnSNHz8+Pvaxj5Ws/x/+8Idx//335203a9asWLduXZPr99prr5KFMAAAAO1VXV1d0z/mBRwNa6IEadp2221j/PjxJev/5z//edx2220FtV21alW89tprTa7v3r17DB061KABAABkkOsWlcrKSgX6CAFHoq644oro0qVLSfr+/e9/H5dffnmmbfLdpuI5HAAAANl4Bkc2nZUgPV/72tdK9lyLN998M8aNG5f3ncsf9fzzz8dxxx3X5Prhw4fHj3/844iI2GSTTWLPPfeMXXbZJfr16xd9+/bd4P/36dMnVq5cGUuWLInFixfH4sWL//uf586dGzNmzIhly5a5EAAAgHbNW1SyEXAkpnfv3nHhhReWpO8PPvggvvGNb0RNTU3mbV988cWc63fbbbf42c9+Fp/61KcKem5Iz549Y/PNN290XV1dXTz77LPx+OOPx7Rp0+KNN95wYQAAAO2Oh4xmI+BIzLnnnhubbrppST44Z5xxRrz++uvN2n727NmxYsWK6NmzZ6Pru3TpEkceeWRRjrWysjL22muv2GuvveL888+PN998Mx577LG4+eabY+HChS4SAACgXTCDIxsVScigQYPimGOOKUnf11xzTTz66KMt+uDlm8VRKttuu22cfvrpMXPmzBg/fnzJnk0CAADQmgQc2ahIQk455ZSSXMRPPPFE/OQnP2n29hUVFXHEEUfE4MGD27Q+G220UZxzzjkxY8aMOPDAA10wAABA0gQc2ahIIjbeeOMYPXp00ft9880341vf+lbmh4r+xy677BIPPvhgXH311bHFFluURa0GDhwYt912W9x7772x8847u3gAAIAkeYtKNgKORBx33HHRo0ePon9YzjjjjGY9VLRXr15x8cUXx+9+97sYNmxYWdZs+PDh8dhjj8URRxzhAgIAAJLjIaPZqEgCqqqq4uSTTy56vzfffHM899xzmbf76le/Gk8//XScfPLJUVlZWfa1u/rqq2PChAkuJAAAICluUclGRRJwyCGHRP/+/Yva5z//+c+48sorM21TWVkZl156aVx//fVNvsK1XE2YMCGuuuqqqKqqckEBAABJyBVwlPv/2NwWBBwJGDNmTNE/JN/5zneitra24G169+4dd911V5x44onJ1nH06NFx1113Ra9evVxUAABA2fMMjmwEHGVu+PDhMWTIkKL2efvtt8ezzz5bcPuBAwfGb37zm/jc5z6XfD333XffeOCBB4o+IwYAAKDY3KKSjYqUua9+9atF7W/OnDlx2WWXFdz+05/+dDzyyCOx/fbbt5ua7rzzzvHLX/4yunXr5gIDAADKloeMZtNZCcpbsWdNfPe7341Vq1YV1PaTn/xkTJ06tV0GAbvttltcddVVcfrpp7vIAICSa2oqeTGWZ52mXoy+2+J8inGe5XTcxTjPFI67PV2zbTGWuZ4hKOAQcJTMgQceGNtss01RPwQbb7xxDBgwoGjHOH/+/Bg1alSMGjUq77H07NkzDjjggHY9y+GQQw6JwYMHx9///vd2/Y9WOf3x949W+/likuoXLWNsjP0w8m9MW/2NACg2AUcjf5cjojspCGQAACAASURBVF4Z/m3ChAleJwoAAEDZW7hwYey+++4KsR4zOIrk1Vdfjblz5zZY3tg9U03dR/XR5cOGDSvawzDnz58fL7zwQt5jiPj3cze22GKLDjN2a9eujccffzyWLVtWlHErZdumlOIYWvt8s9SgXMfHuXXMczOWzs25Ff/flfb8GfT3xbm5Tp1blrZPPPFEbLfddo22N4NDwFEyd999d9xyyy1F66+qqipeeeWVov2AP/zww2PevHl5206cOLFDhRv/qfWuu+4aX/jCF2LlypUuZgAAoCzU1dU1uU7A0UhNlKA8DR06NDbaaKOi9HXXXXcVFG7svffeccopp3TIeldXV8cZZ5zhwgMAAMpGrtfEVlZWKtBHCDjK1Gc/+9mi9LNy5cq4+uqr818InTrFxIkTO3TNTzvttBg0aJCLDwAAKAteE5uNipSpYr0e9t5774133303b7vRo0fHrrvu2qFr3qVLlw4f8gAAAOUj1wwOb3JqSMBRpnbaaaei9DN58uS8bXr27Blnn322okfEfvvtF1/84hcVAgAAaHO5Ag4zOBqpiRKUn169ekX37t1b3M9f//rXePnll/O2+/a3vx2bbbaZwv+/iy66KKqqqhQCAABoUwKObFSkDG2++eZF6WfKlCl522y55ZYd9sGiTdl2223j1FNPVQgAAKBNCTiy8ZrYMtS/f/8W97Fy5cr49a9/nbfdqFGjokuXLm1ynq+++mrceuutUV1dHQMHDozq6uqorq6OTTfdtM3HYMyYMXHzzTfH2rVrXZAAAECbEHBkI+AoQ8W4XeShhx6KFStW5G138MEHF/346+rq4sknn4y+ffvG0KFDm2zXp0+fmDp1aoPlgwYNimOOOSZGjx7dZmHHpptuGgcccED85je/cUECAABtItdbVDxktCGRTxkqxgyOQn6Y9+/fP2cAkdW8efPiyiuvjD333DOOP/74eOyxx3K233LLLaNnz54Nls+ZMyd+9KMfxdChQ+PUU0+Np556KucHu1SOO+44FyMAANBmzODIRkXKUEufwbF27dp45pln8rY76KCDipL6zZo1K4488sjYe++94+qrr4533nknIiJef/31vNvusMMOOc/j4YcfjiOPPDI+85nPxOOPP96q47DPPvvEoEGDXJAAAECbEHBkoyJlqKUBx1/+8pdYtWpV3nYHHnhgi/ZTU1MT5557bhx00EGNzrJ47bXX8vax/fbbF7SvuXPnxoknnhgTJ05stediVFRUxLHHHuuCBAAA2kSugCNCyNGgHkpQflp6i8rTTz+dt02/fv1i7733bvY+fv/738dnP/vZmDRpUtTV1TXaZv78+bFy5cqc/eSawfFR9fX1cdNNN8UhhxwS8+bNa5WxGD16tFfGAgAAbULAkY1qlKGWzuAoJODYb7/9orKysln9X3vttXHCCSfEokWLcrarr6+P2bNn52yTJeD4jxdffDG+/OUvt8oDQDfZZJM44IADXJQAAECry/csQg8a3ZCAo515//3348UXX8zbbtttt83c99q1a2PMmDFx+eWX500S/yPfbSrNCTgi/n17zJgxY+Luu+8ueU332WcfFxYAANDqzODIRjXK0OLFi5u97d///vcmbxlZX9++fTP3feGFF2aeNZHvQaNbb7119OjRo9nne/bZZ8dzzz1X0vHYY489XJQAAECrE3BkoxplaMmSJc3e9o033iioXZ8+fTL1e++998akSZMyH0++GRwVFRUxePDgZp/vmjVr4pvf/GYsXLiwZOOx0047Rffu3V2YAABAqxJwZKMaZaglAcc//vGPgtplmcHxt7/9Lb7//e8363gKeZNKc29T+Y+FCxfGySefHGvWrCnJeHTu3Dl22203FyYAANCqBBzZqEYZasktKsUOOJYsWRInn3xyrF69ulnH8/bbb8cHH3yQs01LA46IiOeff77ZIUwh3KYCAAC0Ng8ZzUbAUYbK6RaVCRMmxNtvv92iD2S+53AUI+CIiLjnnnvi97//fUnGRMABAAC0tnwBR3PfjNleCTjKUHNncHz44Ycxd+7cgtr27t07b5t58+bF448/3uLzKdWbVBpz0003lWRMdt99dxcmAADQqtyiko1qlKH58+c3a7sVK1bEunXrCmq7dOnSvG2mTJmSNzEsRL6Ao7q6Orp27VqU2s2cOTNefvnloo9J1oeyAgAAtJSAIxvVKEMvv/xyQQHERy1btqzgtvPmzcu5ft26dXHPPfcU5XzyBRydOnWK7bbbrmj1K8Usji5durgwAQCAViXgyEY1yvQifvrppzNvt3z58oLb5psl8sQTTxTt1aut8SaV9T344IPxzjvvFHVMKisr3d8GAAC0Kg8ZzUbAUaZmzJiReZssAUe+Z3X89re/Ldq5LFiwIN5///2cbYoZcKxduzZuu+22oo+JWRwAAEBrMoMjG9UoU80JOIp5i8qCBQuKej6t9SaV/5g8eXJRnh+yPgEHAADQmgQc2ahGmfrXv/4Vs2fPzrRNXV1dwW3z3aJS7Fs85syZk3N9MZ/BEfHvsKclr7dtTLEehAoAAFAIAUc2qlHGss7i6NevX8FtZ8+enfONK4sWLSrqueS7JWabbbYpev0KefZHpg+LPx4AAEArEnBk/M2mBOXrySefzNQ+S8BRU1MTzzzzTKPrVq1alfeZGVnluyWmR48esckmmxR1n8UMONatWxeLFy92UQIAAK3GQ0azEXCUsaeeeirTbRZZAo6IiGnTprXahyTfDI6I4s/iyPfcjyzeeuutnDNeAAAAii3fDA5vetyQgKOM1dXVxR133FFw+6wzIJoKOLp16xabbbZZUc+lkICjurq6qPss5gyOfM8QAQAAKDa3qGTTWQnK25QpU+K73/1uQW/w6NKlS2y00UbxwQcfFNT3vHnz4tVXX42dd965wbptttkm3n333aKdx8KFC2PNmjU5z2Prrbcuau1mz54d9fX1RZmR8uabb7oYAYAWaew7SVPfU4q1vFR9l/K4i3GOKZ9Pa49lW12brtnC2vfp00fAIeBofQceeGCjt1gU4wMzb968GDx4cEHHcfXVVzf5rIjG+m7qtouzzz670VkLLTmf2tranAHHkUceGdtvv31RvySsXLkyNtpooxaP79ChQ+P6669P8o95Of2R78hfQFI+n478BcQY+5Lph1HH+jem1NcVQLH5O/SRekREvTL824QJE2LChAkKAQAAQNnbb7/94uWXX1aI/2cGR5G89NJL8cYbbzRY3thTb5t6Em6utiNGjCjoIaJLliyJ6dOnZzqGvfbaKwYOHLjB+qVLl/73GR3NOd7Glu+5556xww47NHnsNTU18dBDDxWtZhERhx12WPTs2bPF43vPPffEihUrilKH1mrblHI93izbZ6lBSufr3NI9t/b6Gcxybq5T5+bc0vn7Yiydm3Nr23PLsv1ll10WJ5xwQpPH4hYVAUdJ/OpXv4pbbrmlZP1/9atfbfIWifX17ds3Lrjggli2bFnBfe+4444xffr0DaY39e3bN3784x/Hv/71r6Kdw5gxY+KCCy5ocn3Xrl3j+9//fqY/LvmMHDmyxQHH66+/Ht/5zndc5AAAQKvykNFsVCMRDz74YLz66qv5B7RTp/jsZz+bqe/XXnstHnvssQbL999//6KeQ743qXTt2jU233zzou6zR48eLe5jxowZLkAAAKDV5fsffwUcH6mHEqThww8/jIsvvrigtiNGjMjc/9VXX91g2UknnVTU9yoX8qrYYr5JZcCAAdG9e/cW9yPgAAAA2kJdXV3uH/QCjg3roQTp+MMf/hBPPfVU3nb77bdf5h/2s2bNismTJ2+wbLvttotDDz20aMc/f/78vG2qq6uLtr/dd9+9xX2sWbMm/vd//9fFBwAAtDq3qGSjGom56KKL8l7k/fr1i+OPP75Zfb/99tsbLPv+979f0MNNC7FixYpYsmRJzjblFnD8+c9/jlWrVrnwAACAVifgyEY1EvPKK6/Efffdl7fd6aefHt26dcvU9/vvvx/f/e53N1i29dZbxxlnnFG04583b17O9dtss03R9lWMgOP+++930QEAAG3CMziyUY0EXXHFFVFbW5uzzeabbx7HHnts5r5nzJgRt99++wbLli5dWrRjzxdwFGsGR/fu3WO33XZrUR+LFy8WcAAAAG3GMziyUY0ELViwIK677rq87caNGxddu3bN3P8Pf/jDuOeee/773996662iHXu+B40W6yGjX/nKV1r8BpU77rgj1qxZ44IDAADaRL5bVCoqKhRpPQKORF133XXxt7/9LWeb/v37xzHHHNOsD9GECRNi0qRJsWbNmgbP5WiJfAHHVlttVZQU8sgjj2zR9mvWrIk777zThQYAALQZz+DIRjUStW7duvj2t7+dd4bB+PHjY+ONN27WB+ncc8+NIUOGxAsvvFC04853i0pVVVVsscUWLdrHoEGDYq+99mpRH7/+9a/j3XffdaEBAABtRsCRjWok7LXXXosrr7wyZ5v+/fvH1Vdf3ex9fPDBB7F69eqiHXO+GRwRLX8Ox+jRo1s0VWvt2rVxww03uMAAAIA2JeDIRjUS94tf/CL+8pe/5Gyz//77x6mnnloWx7tgwYJYu3ZtzjYteZNKr169mnVbzvp+/vOfx+zZs11cAABAmxJwZKMa7eCCP+OMM2LVqlU525177rlFeW1qS9XV1eV9pkdLZnBMmDAhNt1002ZvP3v27BbNeAEAACjm772cP+gFHBvWQwnSN2fOnDj//PNztqmqqopf/OIX0bt37zY/3nzP4Wjum1R23HHHOOmkk1r0x+Oss87KO8MEAACgNXhNbDaq0U5MmTIlJk+enLPNNttsUxazE/I9h2PAgAHN6vfiiy+Ozp07N/u4Jk2aFM8995yLCQAAKAv19fW5f9ALODashxK0Hz/4wQ/i+eefz9nmgAMOiEsuuaRNPwj5Ao7m3GIycuTIGD58eLOP6aWXXorLLrvMRQQAAJQNt6hkoxrtyNq1a+Ob3/xm3tebnnTSSXHjjTdGly5d2uQ4892istlmm2Xqb8cdd8z7Nplc5syZE8ccc0ysXLnSRQQAAJQNt6hkoxrtzDvvvBNjxoyJdevW5Ww3cuTImDp1aps8kyPfDI5+/foV/EHdaqutYurUqbHxxhs361gWLlwYRx55ZN5QCAAAoLXlm8FRUVGhSOsRcLRDzzzzTJxzzjl579fae++949e//nVsscUWrXp8+QKOTp06Rb9+/fL207dv35g6dWqzj7+mpiaOPvrovDNKAAAA2oJncGSjGu3U5MmT49xzz83bbuedd46HH344dthhh1Y7tpqamli+fHnONvluU+nevXvceeedMXjw4GYdw4oVK+KEE06IV1991cUCAACUJc/gyEY12rFf/vKXBYUcAwYMiN/85jcxZsyYqKqqapVja8mDRgcMGBBTpkyJoUOHNmvfc+bMia985Svxpz/9yUUCAACULc/gyEY12rlJkyYVFHL06tUrLrjggpgxY0bsv//+JT+ufAFHUzM4Dj300Jg+fXp8+tOfbtZ+Z8yYEQceeGC8/vrrLg4AAKCsmcGRjWp0AJMmTYrzzjuvoLaDBg2KSZMmxa9+9avYZZddSnZM8+fPz7n+ozM4evfuHTfccEPccMMNzX4w6k033RTHHnts3ttjAAAAyoGAIxvV6CBuv/32OP/88wtuv88++8S0adPiJz/5SebXthYiywyOz3/+8/Hkk0/GoYce2qx91dTUxPjx42PixIl5p3gBAACUCwFHNp2VoOO47bbboqKiIi666KKC2nfq1CmOPvro+PrXvx5PPfVU/O53v4snnngiFi1a1OJjyRdwDB48OE477bQ46qijYvvtt2/2fh544IG48MILi3LMAAAArUnAkY2Ao4O59dZb4/3334+LLrooevXqVdA2Xbt2jf322y/222+/qK+vj+effz6mTZsW06ZNi9dee61Zx/Huu+/mXL///vu36Fkg//znP+Pss8+OmTNnGnQAACBJAo5sBBwd0D333BNPPfVUXHHFFfGlL30p07YVFRUxdOjQGDp0aJxzzjkxZ86cePzxx+Oll16KOXPmxNy5c/POlqisrIyuXbuW5NxWr14d1157bVx//fWxZs0agw0AACRLwJGNgKODWrBgQRx//PHxta99Lb73ve9FdXV1s/oZNGhQnHLKKRssW7lyZSxYsCBWrVoVq1evjtra2qitrY2qqqqorq6Orbbaquivo62trY2pU6fGjTfeGG+99ZYBBgAAkpcv4KioqFCk9Qg4Orj7778/HnzwwRg5cmSMGzcuhgwZ0uI+e/ToEdttt12rHH9NTU1MmjQpbr311liyZIkBBQAA2g0zOLIRcBB1dXXxwAMPxAMPPBCf//zn49RTT43hw4dH587le3ksXLgwbrnllrjzzjtjxYoVBhEAAGh3BBzZCDjYwB/+8If4wx/+EP369YsDDzwwRo4cGZ/5zGfKIuxYsWJFTJ8+PR599NF49NFHPWMDAABo1+rq6nKuF3BsSMBBo957772YPHlyTJ48+b9hx7777hvDhg2LAQMGtNpxLFq0KH73u9/FY489FjNnzoy1a9caHAAAoEMwgyMbAQd5rR92RERsscUWMWzYsBg6dGgMGzYshgwZEt26dSv6fi+++OL4xS9+EfX19QYBAADocPL9FhJwbEjAQWbvvPNOPPzww/Hwww//d1m/fv1iyy23jAEDBsSWW2753//cs2fPqKura/T/dtxxxxg2bFiT+6mtrRVuAAAAJdPUW0iKsTzrG04aa58vwBBw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AAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4A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/+MYxPkNE2IkGABNSVOQ7HM+7DuUt3Q7mjpUFmcjr1unl8NuVbD7m6plQSJtQIuLMFbkdTOVo4XNGpkZmZshRj5KVGyRR6oW/+MYxP8P82okOACTLDX0hZ/NMwIyV2MZOyleP56///LM+7JePftrs1g+k+jJlnog5CvNvjmcS3cDTZkDKhtl8r35yOV+jgtR/+MYxPoOQ2YYEABTSKmIjcsiPb5ZfXf7UH8zFxqUaDwmSPCizYFGwQGwyZIIX0pOLKIpjETlo1U/56E0qoAczJRAWM5G8HJA/+MYxPwK8148GABNSUZyKUXZ6Ik9o/PNrPO4Xd3k45s5ZbFOhlkKfJ2SMjFyc9KZLMjQ60Ps1iyQiQycScX711gnjk89MiiI/+MYxP8TC2oIAACTEM0f+Z/SNfy///f9lc5XLIHLMz46Yck2h2K0dtqT0bECVySOS9qTEGr9rfbPd2TQq7VMzuRDg3vYJJEn/+MYxO0ME2YcEABNSJ2RxzMIKcrhC0U0F3kImjyb03for+r/zq1OmMvJ/7vbWJlSA5zVyGFyjBs22U4ODIPh4hDbrVUbv/ln/+MYxPcNW2YcEABNSGWrMglL8cicpXM60b///+8h4bKpxqdMwhMvkpTs/hZPkDJUtJu2TccDTSJKRRGOl+v/1//9Omu/2pdE/+MYxPwPu2oQCABTLHWi9r07yp99tVRSsxysZJwFXKcDYBwxzjoPraIHIgUpiCmopmXHJwp268/L++7oMjOERqsPR/WT59fe/+MYxPgMU1ooGABTSLv/8+5at2WSQuEzX00HAFGyipKM5p5VFojkAmjknWmIKaimZccnBdUObf4ovk//MMX///X/yt/uOXlx/+MYxP8SW2IIAACTEKktqFqTxCJSJF/JNmSImOhln2AosFn0lTEFNRTMuOTguMlVVVVVVVVMQU1FMy45OC4yVVVVVVVVVVVV/+MYxPAMw2IgEABTSVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVMQU1FMy45OC4yVVVVVVVVVVVV/+MYxPgK215IGACNTFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxP8MW2I4GABNSFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxP8Ks1oUGABTZVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxP8AAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVEFHMTAgU2Vjb25kcyBvZiBTaWxlbmNlAAAAAAAAAAAAQW5hciBTb2Z0d2FyZSBMTEMAAAAAAAAAAAAAAAAAQmxhbmsgQXVkaW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8=';
946
954
 
947
955
  const getIsIOS = () => {
948
- if (typeof window !== "undefined") {
949
- return (/iPad|iPhone|iPod/.test(navigator?.userAgent) &&
950
- !window?.MSStream);
956
+ if (typeof window !== 'undefined') {
957
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
958
+ return /iPad|iPhone|iPod/.test(navigator?.userAgent) && !window?.MSStream;
951
959
  }
952
960
  else {
953
961
  return false;
@@ -972,14 +980,14 @@ class BaseClient {
972
980
  async getAccountInfo(address) {
973
981
  const accountInfo = await this.algodClient.accountInformation(address).do();
974
982
  if (!accountInfo) {
975
- throw new Error("Unable to get account information");
983
+ throw new Error('Unable to get account information');
976
984
  }
977
985
  return accountInfo;
978
986
  }
979
987
  async getAssets(address) {
980
988
  const accountInfo = await this.algodClient.accountInformation(address).do();
981
989
  if (!accountInfo || accountInfo.assets === undefined) {
982
- throw new Error("Unable to get account assets");
990
+ throw new Error('Unable to get account assets');
983
991
  }
984
992
  return accountInfo.assets;
985
993
  }
@@ -989,41 +997,36 @@ class BaseClient {
989
997
  }
990
998
  decodeTransaction = (txn, isSigned) => {
991
999
  return isSigned
992
- ? this.algosdk.decodeSignedTransaction(new Uint8Array(Buffer.from(txn, "base64"))).txn
993
- : this.algosdk.decodeUnsignedTransaction(new Uint8Array(Buffer.from(txn, "base64")));
1000
+ ? this.algosdk.decodeSignedTransaction(new Uint8Array(Buffer.from(txn, 'base64'))).txn
1001
+ : this.algosdk.decodeUnsignedTransaction(new Uint8Array(Buffer.from(txn, 'base64')));
994
1002
  };
995
1003
  logEncodedTransaction(txn, isSigned) {
996
1004
  const txnObj = this.decodeTransaction(txn, isSigned);
997
- console.log("TRANSACTION", {
1005
+ console.log('TRANSACTION', {
998
1006
  isSigned,
999
1007
  from: txnObj.from && this.algosdk.encodeAddress(txnObj.from.publicKey),
1000
1008
  to: txnObj.to && this.algosdk.encodeAddress(txnObj.to.publicKey),
1001
1009
  type: txnObj.type,
1002
- txn: txnObj,
1010
+ txn: txnObj
1003
1011
  });
1004
1012
  }
1005
1013
  groupTransactionsBySender(transactions) {
1006
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1007
- function groupBy(objectArray, property) {
1014
+ function groupBySender(objectArray) {
1008
1015
  return objectArray.reduce(function (acc, obj) {
1009
- const key = obj[property];
1010
- if (!acc[key]) {
1011
- acc[key] = [];
1016
+ const sender = obj.from;
1017
+ if (!acc[sender]) {
1018
+ acc[sender] = [];
1012
1019
  }
1013
- acc[key].push(obj);
1020
+ acc[sender].push(obj);
1014
1021
  return acc;
1015
1022
  }, {});
1016
1023
  }
1017
1024
  const decodedGroup = transactions.reduce((acc, [type, txn], index) => {
1018
- if (type === "u") {
1025
+ if (type === 'u') {
1019
1026
  const decodedTxn = this.decodeTransaction(txn, false);
1020
- const from = decodedTxn.from
1021
- ? this.algosdk.encodeAddress(decodedTxn.from.publicKey)
1022
- : "";
1023
- const to = decodedTxn.to
1024
- ? this.algosdk.encodeAddress(decodedTxn.to.publicKey)
1025
- : "";
1026
- const type = decodedTxn.type || "";
1027
+ const from = decodedTxn.from ? this.algosdk.encodeAddress(decodedTxn.from.publicKey) : '';
1028
+ const to = decodedTxn.to ? this.algosdk.encodeAddress(decodedTxn.to.publicKey) : '';
1029
+ const type = decodedTxn.type || '';
1027
1030
  const amount = Number(decodedTxn.amount) || 0; // convert from bigint to number
1028
1031
  const txnObj = {
1029
1032
  groupIndex: index,
@@ -1031,31 +1034,30 @@ class BaseClient {
1031
1034
  from,
1032
1035
  to,
1033
1036
  type,
1034
- txn,
1037
+ txn
1035
1038
  };
1036
1039
  acc.push(txnObj);
1037
1040
  }
1038
1041
  return acc;
1039
1042
  }, []);
1040
- return groupBy(decodedGroup, "from");
1043
+ return groupBySender(decodedGroup);
1041
1044
  }
1042
1045
  async sendRawTransactions(transactions, waitRoundsToConfirm) {
1043
- const sentTransaction = await this.algodClient
1046
+ const sentTransaction = (await this.algodClient
1044
1047
  .sendRawTransaction(transactions)
1045
- .do();
1048
+ .do());
1046
1049
  if (!sentTransaction) {
1047
- throw new Error("Transaction failed.");
1050
+ throw new Error('Transaction failed.');
1048
1051
  }
1049
1052
  const decodedTxn = this.algosdk.decodeSignedTransaction(transactions[0]);
1050
- const waitRounds = waitRoundsToConfirm ||
1051
- decodedTxn.txn.lastRound - decodedTxn.txn.firstRound;
1053
+ const waitRounds = waitRoundsToConfirm || decodedTxn.txn.lastRound - decodedTxn.txn.firstRound;
1052
1054
  const confirmedTransaction = await this.waitForConfirmation(sentTransaction.txId, waitRounds);
1053
1055
  return {
1054
1056
  id: sentTransaction.txId,
1055
- ...confirmedTransaction,
1057
+ ...confirmedTransaction
1056
1058
  };
1057
1059
  }
1058
- keepWCAliveStart() {
1060
+ async keepWCAliveStart() {
1059
1061
  // Playing an audio file prevents Wallet Connect's
1060
1062
  // web socket connection from being dropped when
1061
1063
  // iOS goes into background mode
@@ -1066,7 +1068,7 @@ class BaseClient {
1066
1068
  this.keepWCAlive.autoplay = true;
1067
1069
  this.keepWCAlive.volume = 0;
1068
1070
  this.keepWCAlive.loop = true;
1069
- this.keepWCAlive.play();
1071
+ await this.keepWCAlive.play();
1070
1072
  }
1071
1073
  keepWCAliveStop() {
1072
1074
  if (!isIOS) {
@@ -1076,13 +1078,13 @@ class BaseClient {
1076
1078
  }
1077
1079
  }
1078
1080
 
1079
- const ICON$7 = "data:image/svg+xml;base64," +
1080
- "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzcgMTg3Ij48cmVjdCB4PSItMTEuMzgiIHk9Ii0yNS45NyIgd2lkdGg9IjIwMC4wMiIgaGVpZ2h0PSIyMzEuNTMiIHN0eWxlPSJmaWxsOiNmZTU7Ii8+PHBhdGggZD0iTTk0LjA1LDU5LjYxYzIuMDUsOC40OCwxLjM2LDE1Ljk0LTEuNTUsMTYuNjYtMi45LC43Mi02LjkxLTUuNTctOC45Ni0xNC4wNS0yLjA1LTguNDgtMS4zNi0xNS45NCwxLjU1LTE2LjY2LDIuOS0uNzIsNi45MSw1LjU3LDguOTYsMTQuMDVaIiBzdHlsZT0iZmlsbDojMWMxYzFjOyIvPjxwYXRoIGQ9Ik0xMjcuODUsNjYuOWMtNC41My00LjgxLTEzLjU1LTMuNS0yMC4xNSwyLjkxLTYuNTksNi40MS04LjI2LDE1LjUtMy43MywyMC4zMSw0LjUzLDQuOCwxMy41NSwzLjUsMjAuMTUtMi45MXM4LjI2LTE1LjUsMy43My0yMC4zMVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTkxLjc5LDE0MC40N2MyLjktLjcyLDMuNDktOC42LDEuMzItMTcuNjEtMi4xNy05LTYuMjktMTUuNzEtOS4xOS0xNC45OS0yLjksLjcyLTMuNDksOC42LTEuMzIsMTcuNjEsMi4xNyw5LDYuMjksMTUuNzEsOS4xOSwxNC45OVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTYyLjIyLDcxLjNjOC4zNywyLjQ3LDE0LjQ4LDYuOCwxMy42Niw5LjY3LS44MywyLjg3LTguMjgsMy4yLTE2LjY1LC43My04LjM3LTIuNDctMTQuNDgtNi44LTEzLjY2LTkuNjcsLjgzLTIuODcsOC4yOC0zLjIsMTYuNjUtLjczWiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48cGF0aCBkPSJNMTE2LjU0LDEwMy43NGM4Ljg4LDIuNjIsMTUuNDEsNy4wNywxNC41OSw5Ljk0LS44MywyLjg3LTguNywzLjA4LTE3LjU4LC40Ni04Ljg4LTIuNjItMTUuNDEtNy4wNy0xNC41OS05Ljk0LC44My0yLjg3LDguNy0zLjA4LDE3LjU4LS40NloiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTcxLjY0LDk3LjcxYy0yLjA4LTIuMTUtOC44OCwuOTgtMTUuMiw2Ljk5LTYuMzIsNi4wMS05Ljc2LDEyLjYzLTcuNjksMTQuNzgsMi4wOCwyLjE1LDguODgtLjk4LDE1LjItNi45OSw2LjMyLTYuMDEsOS43Ni0xMi42Myw3LjY5LTE0Ljc4WiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48L3N2Zz4=";
1081
+ const ICON$7 = 'data:image/svg+xml;base64,' +
1082
+ 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzcgMTg3Ij48cmVjdCB4PSItMTEuMzgiIHk9Ii0yNS45NyIgd2lkdGg9IjIwMC4wMiIgaGVpZ2h0PSIyMzEuNTMiIHN0eWxlPSJmaWxsOiNmZTU7Ii8+PHBhdGggZD0iTTk0LjA1LDU5LjYxYzIuMDUsOC40OCwxLjM2LDE1Ljk0LTEuNTUsMTYuNjYtMi45LC43Mi02LjkxLTUuNTctOC45Ni0xNC4wNS0yLjA1LTguNDgtMS4zNi0xNS45NCwxLjU1LTE2LjY2LDIuOS0uNzIsNi45MSw1LjU3LDguOTYsMTQuMDVaIiBzdHlsZT0iZmlsbDojMWMxYzFjOyIvPjxwYXRoIGQ9Ik0xMjcuODUsNjYuOWMtNC41My00LjgxLTEzLjU1LTMuNS0yMC4xNSwyLjkxLTYuNTksNi40MS04LjI2LDE1LjUtMy43MywyMC4zMSw0LjUzLDQuOCwxMy41NSwzLjUsMjAuMTUtMi45MXM4LjI2LTE1LjUsMy43My0yMC4zMVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTkxLjc5LDE0MC40N2MyLjktLjcyLDMuNDktOC42LDEuMzItMTcuNjEtMi4xNy05LTYuMjktMTUuNzEtOS4xOS0xNC45OS0yLjksLjcyLTMuNDksOC42LTEuMzIsMTcuNjEsMi4xNyw5LDYuMjksMTUuNzEsOS4xOSwxNC45OVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTYyLjIyLDcxLjNjOC4zNywyLjQ3LDE0LjQ4LDYuOCwxMy42Niw5LjY3LS44MywyLjg3LTguMjgsMy4yLTE2LjY1LC43My04LjM3LTIuNDctMTQuNDgtNi44LTEzLjY2LTkuNjcsLjgzLTIuODcsOC4yOC0zLjIsMTYuNjUtLjczWiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48cGF0aCBkPSJNMTE2LjU0LDEwMy43NGM4Ljg4LDIuNjIsMTUuNDEsNy4wNywxNC41OSw5Ljk0LS44MywyLjg3LTguNywzLjA4LTE3LjU4LC40Ni04Ljg4LTIuNjItMTUuNDEtNy4wNy0xNC41OS05Ljk0LC44My0yLjg3LDguNy0zLjA4LDE3LjU4LS40NloiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTcxLjY0LDk3LjcxYy0yLjA4LTIuMTUtOC44OCwuOTgtMTUuMiw2Ljk5LTYuMzIsNi4wMS05Ljc2LDEyLjYzLTcuNjksMTQuNzgsMi4wOCwyLjE1LDguODgtLjk4LDE1LjItNi45OSw2LjMyLTYuMDEsOS43Ni0xMi42Myw3LjY5LTE0Ljc4WiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48L3N2Zz4=';
1081
1083
 
1082
1084
  class PeraWalletClient extends BaseClient {
1083
1085
  #client;
1084
1086
  network;
1085
- constructor({ metadata, client, algosdk, algodClient, network, }) {
1087
+ constructor({ metadata, client, algosdk, algodClient, network }) {
1086
1088
  super(metadata, algosdk, algodClient);
1087
1089
  this.#client = client;
1088
1090
  this.network = network;
@@ -1090,50 +1092,50 @@ class PeraWalletClient extends BaseClient {
1090
1092
  }
1091
1093
  static metadata = {
1092
1094
  id: PROVIDER_ID.PERA,
1093
- name: "Pera",
1095
+ name: 'Pera',
1094
1096
  icon: ICON$7,
1095
- isWalletConnect: true,
1097
+ isWalletConnect: true
1096
1098
  };
1097
- static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
1099
+ static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1 }) {
1098
1100
  try {
1099
1101
  const PeraWalletConnect = clientStatic || (await import('@perawallet/connect')).PeraWalletConnect;
1100
1102
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
1101
- const algodClient = await getAlgodClient(algosdk, algodOptions);
1103
+ const algodClient = getAlgodClient(algosdk, algodOptions);
1102
1104
  const peraWallet = new PeraWalletConnect({
1103
- ...(clientOptions ? clientOptions : { shouldShowSignTxnToast: false }),
1105
+ ...(clientOptions ? clientOptions : { shouldShowSignTxnToast: false })
1104
1106
  });
1105
1107
  return new PeraWalletClient({
1106
1108
  metadata: PeraWalletClient.metadata,
1107
1109
  client: peraWallet,
1108
1110
  algosdk,
1109
1111
  algodClient,
1110
- network,
1112
+ network
1111
1113
  });
1112
1114
  }
1113
1115
  catch (e) {
1114
- console.error("Error initializing...", e);
1116
+ console.error('Error initializing...', e);
1115
1117
  return null;
1116
1118
  }
1117
1119
  }
1118
1120
  async connect(onDisconnect) {
1119
1121
  const accounts = await this.#client.connect();
1120
- this.#client.connector?.on("disconnect", onDisconnect);
1122
+ this.#client.connector?.on('disconnect', onDisconnect);
1121
1123
  if (accounts.length === 0) {
1122
1124
  throw new Error(`No accounts found for ${PeraWalletClient.metadata.id}`);
1123
1125
  }
1124
1126
  const mappedAccounts = accounts.map((address, index) => ({
1125
1127
  name: `Pera Wallet ${index + 1}`,
1126
1128
  address,
1127
- providerId: PeraWalletClient.metadata.id,
1129
+ providerId: PeraWalletClient.metadata.id
1128
1130
  }));
1129
1131
  return {
1130
1132
  ...PeraWalletClient.metadata,
1131
- accounts: mappedAccounts,
1133
+ accounts: mappedAccounts
1132
1134
  };
1133
1135
  }
1134
1136
  async reconnect(onDisconnect) {
1135
1137
  const accounts = await this.#client.reconnectSession().catch(console.info);
1136
- this.#client.connector?.on("disconnect", onDisconnect);
1138
+ this.#client.connector?.on('disconnect', onDisconnect);
1137
1139
  if (!accounts) {
1138
1140
  onDisconnect();
1139
1141
  return null;
@@ -1143,8 +1145,8 @@ class PeraWalletClient extends BaseClient {
1143
1145
  accounts: accounts.map((address, index) => ({
1144
1146
  name: `Pera Wallet ${index + 1}`,
1145
1147
  address,
1146
- providerId: PeraWalletClient.metadata.id,
1147
- })),
1148
+ providerId: PeraWalletClient.metadata.id
1149
+ }))
1148
1150
  };
1149
1151
  }
1150
1152
  async disconnect() {
@@ -1159,46 +1161,43 @@ class PeraWalletClient extends BaseClient {
1159
1161
  // Marshal the transactions,
1160
1162
  // and add the signers property if they shouldn't be signed.
1161
1163
  const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
1162
- const isSigned = "txn" in txn;
1164
+ const isSigned = 'txn' in txn;
1163
1165
  // If the indexes to be signed is specified, designate that it should be signed
1164
1166
  if (indexesToSign && indexesToSign.length && indexesToSign.includes(i)) {
1165
1167
  signedIndexes.push(i);
1166
1168
  acc.push({
1167
- txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
1169
+ txn: this.algosdk.decodeUnsignedTransaction(transactions[i])
1168
1170
  });
1169
1171
  // If the indexes to be signed is specified, but it's not included in it,
1170
1172
  // designate that it should not be signed
1171
1173
  }
1172
- else if (indexesToSign &&
1173
- indexesToSign.length &&
1174
- !indexesToSign.includes(i)) {
1174
+ else if (indexesToSign && indexesToSign.length && !indexesToSign.includes(i)) {
1175
1175
  acc.push({
1176
1176
  txn: isSigned
1177
1177
  ? this.algosdk.decodeSignedTransaction(transactions[i]).txn
1178
1178
  : this.algosdk.decodeUnsignedTransaction(transactions[i]),
1179
- signers: [],
1179
+ signers: []
1180
1180
  });
1181
1181
  // If the transaction is unsigned and is to be sent from a connected account,
1182
1182
  // designate that it should be signed
1183
1183
  }
1184
- else if (!isSigned &&
1185
- connectedAccounts.includes(this.algosdk.encodeAddress(txn["snd"]))) {
1184
+ else if (!isSigned && connectedAccounts.includes(this.algosdk.encodeAddress(txn['snd']))) {
1186
1185
  signedIndexes.push(i);
1187
1186
  acc.push({
1188
- txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
1187
+ txn: this.algosdk.decodeUnsignedTransaction(transactions[i])
1189
1188
  });
1190
1189
  // Otherwise, designate that it should not be signed
1191
1190
  }
1192
1191
  else if (isSigned) {
1193
1192
  acc.push({
1194
1193
  txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,
1195
- signers: [],
1194
+ signers: []
1196
1195
  });
1197
1196
  }
1198
1197
  else if (!isSigned) {
1199
1198
  acc.push({
1200
1199
  txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
1201
- signers: [],
1200
+ signers: []
1202
1201
  });
1203
1202
  }
1204
1203
  return acc;
@@ -1220,8 +1219,8 @@ class PeraWalletClient extends BaseClient {
1220
1219
  }
1221
1220
  }
1222
1221
 
1223
- const ICON$6 = "data:image/svg+xml;base64," +
1224
- "PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxjaXJjbGUgZmlsbD0iIzI0NUVDNiIgY3g9IjE2IiBjeT0iMTYiIHI9IjE2Ii8+CiAgPHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIxMi40LDIxLjIgMTQuNSwyMS4yIDE1LjMsMTkuOSAxNi42LDE3LjYgMTguMSwxNC45IDE5LjksMTEuNyAyMC4yLDExLjIgMjAuMywxMS43IDIyLjksMjEuMiAyNSwyMS4yIDIxLjUsOC45IDIxLjQsOC42IDE5LjUsOC42IDE5LjUsOC43IDE3LjgsMTEuOCAxNiwxNC45IDE1LjgsMTQuMSAxNS4yLDExLjcgMTUuMSwxMS41IDE0LjQsOC45IDE0LjMsOC42IDEyLjQsOC42IDEyLjQsOC43IDEwLjcsMTEuOCA4LjksMTUgNy4xLDE4IDUuMywyMS4yIDcuNCwyMS4yIDkuMiwxOCAxMSwxNC44IDEyLjgsMTEuNiAxMy4xLDExLjEgMTMuMiwxMS42IDEzLjcsMTMuNyAxNC40LDE2LjMgMTQuNiwxNy4yIDE0LjIsMTgiLz4KPC9zdmc+";
1222
+ const ICON$6 = 'data:image/svg+xml;base64,' +
1223
+ 'PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxjaXJjbGUgZmlsbD0iIzI0NUVDNiIgY3g9IjE2IiBjeT0iMTYiIHI9IjE2Ii8+CiAgPHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIxMi40LDIxLjIgMTQuNSwyMS4yIDE1LjMsMTkuOSAxNi42LDE3LjYgMTguMSwxNC45IDE5LjksMTEuNyAyMC4yLDExLjIgMjAuMywxMS43IDIyLjksMjEuMiAyNSwyMS4yIDIxLjUsOC45IDIxLjQsOC42IDE5LjUsOC42IDE5LjUsOC43IDE3LjgsMTEuOCAxNiwxNC45IDE1LjgsMTQuMSAxNS4yLDExLjcgMTUuMSwxMS41IDE0LjQsOC45IDE0LjMsOC42IDEyLjQsOC42IDEyLjQsOC43IDEwLjcsMTEuOCA4LjksMTUgNy4xLDE4IDUuMywyMS4yIDcuNCwyMS4yIDkuMiwxOCAxMSwxNC44IDEyLjgsMTEuNiAxMy4xLDExLjEgMTMuMiwxMS42IDEzLjcsMTMuNyAxNC40LDE2LjMgMTQuNiwxNy4yIDE0LjIsMTgiLz4KPC9zdmc+';
1225
1224
 
1226
1225
  /**
1227
1226
  * Helpful resources:
@@ -1230,7 +1229,7 @@ const ICON$6 = "data:image/svg+xml;base64," +
1230
1229
  class MyAlgoWalletClient extends BaseClient {
1231
1230
  #client;
1232
1231
  network;
1233
- constructor({ metadata, client, algosdk, algodClient, network, }) {
1232
+ constructor({ metadata, client, algosdk, algodClient, network }) {
1234
1233
  super(metadata, algosdk, algodClient);
1235
1234
  this.#client = client;
1236
1235
  this.network = network;
@@ -1238,28 +1237,28 @@ class MyAlgoWalletClient extends BaseClient {
1238
1237
  }
1239
1238
  static metadata = {
1240
1239
  id: PROVIDER_ID.MYALGO,
1241
- name: "MyAlgo",
1240
+ name: 'MyAlgo',
1242
1241
  icon: ICON$6,
1243
- isWalletConnect: false,
1242
+ isWalletConnect: false
1244
1243
  };
1245
- static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
1244
+ static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1 }) {
1246
1245
  try {
1247
1246
  const MyAlgoConnect = clientStatic || (await import('@randlabs/myalgo-connect')).default;
1248
1247
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
1249
- const algodClient = await getAlgodClient(algosdk, algodOptions);
1248
+ const algodClient = getAlgodClient(algosdk, algodOptions);
1250
1249
  const myAlgo = new MyAlgoConnect({
1251
- ...(clientOptions ? clientOptions : { disableLedgerNano: false }),
1250
+ ...(clientOptions ? clientOptions : { disableLedgerNano: false })
1252
1251
  });
1253
1252
  return new MyAlgoWalletClient({
1254
1253
  metadata: MyAlgoWalletClient.metadata,
1255
1254
  client: myAlgo,
1256
1255
  algosdk: algosdk,
1257
1256
  algodClient: algodClient,
1258
- network,
1257
+ network
1259
1258
  });
1260
1259
  }
1261
1260
  catch (e) {
1262
- console.error("Error initializing...", e);
1261
+ console.error('Error initializing...', e);
1263
1262
  return null;
1264
1263
  }
1265
1264
  }
@@ -1270,16 +1269,18 @@ class MyAlgoWalletClient extends BaseClient {
1270
1269
  }
1271
1270
  const mappedAccounts = accounts.map((account) => ({
1272
1271
  ...account,
1273
- providerId: MyAlgoWalletClient.metadata.id,
1272
+ providerId: MyAlgoWalletClient.metadata.id
1274
1273
  }));
1275
1274
  return {
1276
1275
  ...MyAlgoWalletClient.metadata,
1277
- accounts: mappedAccounts,
1276
+ accounts: mappedAccounts
1278
1277
  };
1279
1278
  }
1279
+ // eslint-disable-next-line @typescript-eslint/require-await
1280
1280
  async reconnect() {
1281
1281
  return null;
1282
1282
  }
1283
+ // eslint-disable-next-line @typescript-eslint/require-await
1283
1284
  async disconnect() {
1284
1285
  return;
1285
1286
  }
@@ -1291,7 +1292,7 @@ class MyAlgoWalletClient extends BaseClient {
1291
1292
  const signedIndexes = [];
1292
1293
  // Get the transactions to be signed
1293
1294
  const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
1294
- const isSigned = "txn" in txn;
1295
+ const isSigned = 'txn' in txn;
1295
1296
  // If the indexes to be signed is specified, add it to the transactions to be signed,
1296
1297
  if (indexesToSign && indexesToSign.length && indexesToSign?.includes(i)) {
1297
1298
  signedIndexes.push(i);
@@ -1299,8 +1300,7 @@ class MyAlgoWalletClient extends BaseClient {
1299
1300
  // Otherwise, if the transaction is unsigned and is to be sent from a connected account,
1300
1301
  // add it to the transactions to be signed
1301
1302
  }
1302
- else if (!isSigned &&
1303
- connectedAccounts.includes(this.algosdk.encodeAddress(txn["snd"]))) {
1303
+ else if (!isSigned && connectedAccounts.includes(this.algosdk.encodeAddress(txn['snd']))) {
1304
1304
  signedIndexes.push(i);
1305
1305
  acc.push(transactions[i]);
1306
1306
  }
@@ -1322,13 +1322,13 @@ class MyAlgoWalletClient extends BaseClient {
1322
1322
  }
1323
1323
  }
1324
1324
 
1325
- const ICON$5 = "data:image/svg+xml;base64," +
1326
- "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiLz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNjgyMDksMCwwLDEuNjgyMDksMjI2LjM2OCwyMTIuODE4KSI+CiAgICAgICAgPHBhdGggZD0iTTMyNy4wNDksMjgwLjE5MkwxNjkuNTI0LDEzTDEyLDI4MC4xOTJMMTY5LjUyNCwxODkuMDg0TDMyNy4wNDksMjgwLjE5MloiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS42ODIwOSwwLDAsMS42ODIwOSwyMjYuMzY4LDIxMi44MTgpIj4KICAgICAgICA8cGF0aCBkPSJNMjk5LjU0NiwzMDdMMTY5LjUyNSwyMzguNDczTDM5LjUwNCwzMDdMMTY5LjUyNSwyNjQuNjdMMjk5LjU0NiwzMDdaIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgIDwvZz4KPC9zdmc+Cg==";
1325
+ const ICON$5 = 'data:image/svg+xml;base64,' +
1326
+ 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiLz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNjgyMDksMCwwLDEuNjgyMDksMjI2LjM2OCwyMTIuODE4KSI+CiAgICAgICAgPHBhdGggZD0iTTMyNy4wNDksMjgwLjE5MkwxNjkuNTI0LDEzTDEyLDI4MC4xOTJMMTY5LjUyNCwxODkuMDg0TDMyNy4wNDksMjgwLjE5MloiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS42ODIwOSwwLDAsMS42ODIwOSwyMjYuMzY4LDIxMi44MTgpIj4KICAgICAgICA8cGF0aCBkPSJNMjk5LjU0NiwzMDdMMTY5LjUyNSwyMzguNDczTDM5LjUwNCwzMDdMMTY5LjUyNSwyNjQuNjdMMjk5LjU0NiwzMDdaIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgIDwvZz4KPC9zdmc+Cg==';
1327
1327
 
1328
1328
  class DeflyWalletClient extends BaseClient {
1329
1329
  #client;
1330
1330
  network;
1331
- constructor({ metadata, client, algosdk, algodClient, network, }) {
1331
+ constructor({ metadata, client, algosdk, algodClient, network }) {
1332
1332
  super(metadata, algosdk, algodClient);
1333
1333
  this.#client = client;
1334
1334
  this.network = network;
@@ -1336,51 +1336,50 @@ class DeflyWalletClient extends BaseClient {
1336
1336
  }
1337
1337
  static metadata = {
1338
1338
  id: PROVIDER_ID.DEFLY,
1339
- name: "Defly",
1339
+ name: 'Defly',
1340
1340
  icon: ICON$5,
1341
- isWalletConnect: true,
1341
+ isWalletConnect: true
1342
1342
  };
1343
- static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
1343
+ static async init({ clientOptions, algodOptions, clientStatic, algosdkStatic, network = DEFAULT_NETWORK$1 }) {
1344
1344
  try {
1345
- const DeflyWalletConnect = clientStatic ||
1346
- (await import('@blockshake/defly-connect')).DeflyWalletConnect;
1345
+ const DeflyWalletConnect = clientStatic || (await import('@blockshake/defly-connect')).DeflyWalletConnect;
1347
1346
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
1348
- const algodClient = await getAlgodClient(algosdk, algodOptions);
1347
+ const algodClient = getAlgodClient(algosdk, algodOptions);
1349
1348
  const deflyWallet = new DeflyWalletConnect({
1350
- ...(clientOptions ? clientOptions : { shouldShowSignTxnToast: false }),
1349
+ ...(clientOptions ? clientOptions : { shouldShowSignTxnToast: false })
1351
1350
  });
1352
1351
  return new DeflyWalletClient({
1353
1352
  metadata: DeflyWalletClient.metadata,
1354
1353
  client: deflyWallet,
1355
1354
  algosdk,
1356
1355
  algodClient,
1357
- network,
1356
+ network
1358
1357
  });
1359
1358
  }
1360
1359
  catch (e) {
1361
- console.error("Error initializing...", e);
1360
+ console.error('Error initializing...', e);
1362
1361
  return null;
1363
1362
  }
1364
1363
  }
1365
1364
  async connect(onDisconnect) {
1366
1365
  const accounts = await this.#client.connect().catch(console.info);
1367
- this.#client.connector?.on("disconnect", onDisconnect);
1366
+ this.#client.connector?.on('disconnect', onDisconnect);
1368
1367
  if (!accounts || accounts.length === 0) {
1369
1368
  throw new Error(`No accounts found for ${DeflyWalletClient.metadata.id}`);
1370
1369
  }
1371
1370
  const mappedAccounts = accounts.map((address, index) => ({
1372
1371
  name: `Defly Wallet ${index + 1}`,
1373
1372
  address,
1374
- providerId: DeflyWalletClient.metadata.id,
1373
+ providerId: DeflyWalletClient.metadata.id
1375
1374
  }));
1376
1375
  return {
1377
1376
  ...DeflyWalletClient.metadata,
1378
- accounts: mappedAccounts,
1377
+ accounts: mappedAccounts
1379
1378
  };
1380
1379
  }
1381
1380
  async reconnect(onDisconnect) {
1382
1381
  const accounts = await this.#client.reconnectSession().catch(console.info);
1383
- this.#client.connector?.on("disconnect", onDisconnect);
1382
+ this.#client.connector?.on('disconnect', onDisconnect);
1384
1383
  if (!accounts) {
1385
1384
  return null;
1386
1385
  }
@@ -1389,8 +1388,8 @@ class DeflyWalletClient extends BaseClient {
1389
1388
  accounts: accounts.map((address, index) => ({
1390
1389
  name: `Defly Wallet ${index + 1}`,
1391
1390
  address,
1392
- providerId: DeflyWalletClient.metadata.id,
1393
- })),
1391
+ providerId: DeflyWalletClient.metadata.id
1392
+ }))
1394
1393
  };
1395
1394
  }
1396
1395
  async disconnect() {
@@ -1405,34 +1404,33 @@ class DeflyWalletClient extends BaseClient {
1405
1404
  // Marshal the transactions,
1406
1405
  // and add the signers property if they shouldn't be signed.
1407
1406
  const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
1408
- const isSigned = "txn" in txn;
1407
+ const isSigned = 'txn' in txn;
1409
1408
  // If the indexes to be signed is specified, designate that it should be signed
1410
1409
  if (indexesToSign && indexesToSign.length && indexesToSign.includes(i)) {
1411
1410
  signedIndexes.push(i);
1412
1411
  acc.push({
1413
- txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
1412
+ txn: this.algosdk.decodeUnsignedTransaction(transactions[i])
1414
1413
  });
1415
1414
  // If the transaction is unsigned and is to be sent from a connected account,
1416
1415
  // designate that it should be signed
1417
1416
  }
1418
- else if (!isSigned &&
1419
- connectedAccounts.includes(this.algosdk.encodeAddress(txn["snd"]))) {
1417
+ else if (!isSigned && connectedAccounts.includes(this.algosdk.encodeAddress(txn['snd']))) {
1420
1418
  signedIndexes.push(i);
1421
1419
  acc.push({
1422
- txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
1420
+ txn: this.algosdk.decodeUnsignedTransaction(transactions[i])
1423
1421
  });
1424
1422
  // Otherwise, designate that it should not be signed
1425
1423
  }
1426
1424
  else if (isSigned) {
1427
1425
  acc.push({
1428
1426
  txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,
1429
- signers: [],
1427
+ signers: []
1430
1428
  });
1431
1429
  }
1432
1430
  else if (!isSigned) {
1433
1431
  acc.push({
1434
1432
  txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),
1435
- signers: [],
1433
+ signers: []
1436
1434
  });
1437
1435
  }
1438
1436
  return acc;
@@ -1455,14 +1453,14 @@ class DeflyWalletClient extends BaseClient {
1455
1453
  }
1456
1454
  }
1457
1455
 
1458
- const ICON$4 = "data:image/svg+xml;base64," +
1459
- "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MXtmaWxsOnVybCgjU1ZHSURfMDAwMDAwNDM0MjYxNjcxNDAxMDY1ODIyNzAwMDAwMDIxMzA3Njg5MDYwNzMxMTM0ODRfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEwMjUxOTMxNjAxNTI3NjU4MTY0MDAwMDAxNjI3NDExMjM4MzE3NTY0MTc1OV8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTt9Cgkuc3Qze2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEzODU2MzM4MjQ2MjA4NjAyMDM1MDAwMDAxNDg3ODQ5MDI3MDc4MjA3MTIwN18pO30KCS5zdDR7bWFzazp1cmwoI21hc2swXzE2NjFfMjk1XzAwMDAwMDg4MTMyMjUxNTk3NDQxNTczNDkwMDAwMDExNjkzNjEyMDE4NTA2NjgxNDgxXyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfMDAwMDAxMDYxMjA2MzI0NjE3OTI4NzExNjAwMDAwMDc0MzM5MTMwMzgzMzc3NjY1NzZfKTt9Cjwvc3R5bGU+CjxnPgoJCgkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDYuNjAzIiB5MT0iOS4yMjEyIiB4Mj0iMTc0LjE1OCIgeTI9IjMwOC41NDI2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xCgkJTDI3NC43LDkzLjl6Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjkuMzUxNiIgeTE9Ii0xOS4xNTczIiB4Mj0iNTYuOTA2NiIgeTI9IjI4MC4xNjQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1Xyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCWw2OS4yLTQ1LjFWMjNMMjUuMyw5My45TDQzLDE1MC4xbC0xNy43LDU2LjJMMTMzLjcsMjc3di0zOS42bC02OS40LTQ1LjFMNzIuNSwxNjYuNHoiLz4KCTxkZWZzPgoJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ij4KCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQk8L2ZpbHRlcj4KCTwvZGVmcz4KCQoJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0IiBpZD0ibWFzazBfMTY2MV8yOTVfMDAwMDAwODgxMzIyNTE1OTc0NDE1NzM0OTAwMDAwMTE2OTM2MTIwMTg1MDY2ODE0ODFfIj4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ2LjYwMzgiIHkxPSI5LjIyMTQiIHgyPSIxNzQuMTU4OCIgeTI9IjMwOC41NDI4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMwQjQ2RjkiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JCRkJFMCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTsiIGQ9IgoJCQlNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xTDI3NC43LDkzLjl6Ii8+CgkJCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMTk4MTE3MDc2MjE0NzI4MTQyNzAwMDAwMTA4Mjk2NTkzODM4NTEyMDI0OTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyOS4zNTIxIiB5MT0iLTE5LjE1NzEiIHgyPSI1Ni45MDcxIiB5Mj0iMjgwLjE2NDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCAzMDIpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQkJGQkUwIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTE5ODExNzA3NjIxNDcyODE0MjcwMDAwMDEwODI5NjU5MzgzODUxMjAyNDkxXyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCQlsNjkuMi00NS4xVjIzTDI1LjMsOTMuOUw0MywxNTAuMWwtMTcuNyw1Ni4yTDEzMy43LDI3N3YtMzkuNmwtNjkuNC00NS4xTDcyLjUsMTY2LjR6Ii8+Cgk8L21hc2s+Cgk8ZyBjbGFzcz0ic3Q0Ij4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDEwOTAxOTkxODU1Nzc3MzA1MzQyMDAwMDAxNzYwMjQwNTkwODA2NzEyMDMwMF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDYuNDY2MiIgeTE9IjIyOC43NTU0IiB4Mj0iMTcxLjg2MzgiIHkyPSIxMzUuMTAzOSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDMwMikiPgoJCQk8c3RvcCAgb2Zmc2V0PSIwLjExOTgiIHN0eWxlPSJzdG9wLWNvbG9yOiM4OTUyRkY7c3RvcC1vcGFjaXR5OjAuODciLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0RBQkRGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJCgkJCTxyZWN0IHg9IjI1LjQiIHk9IjIzIiBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTA5MDE5OTE4NTU3NzczMDUzNDIwMDAwMDE3NjAyNDA1OTA4MDY3MTIwMzAwXyk7IiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==";
1456
+ const ICON$4 = 'data:image/svg+xml;base64,' +
1457
+ 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MXtmaWxsOnVybCgjU1ZHSURfMDAwMDAwNDM0MjYxNjcxNDAxMDY1ODIyNzAwMDAwMDIxMzA3Njg5MDYwNzMxMTM0ODRfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEwMjUxOTMxNjAxNTI3NjU4MTY0MDAwMDAxNjI3NDExMjM4MzE3NTY0MTc1OV8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTt9Cgkuc3Qze2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEzODU2MzM4MjQ2MjA4NjAyMDM1MDAwMDAxNDg3ODQ5MDI3MDc4MjA3MTIwN18pO30KCS5zdDR7bWFzazp1cmwoI21hc2swXzE2NjFfMjk1XzAwMDAwMDg4MTMyMjUxNTk3NDQxNTczNDkwMDAwMDExNjkzNjEyMDE4NTA2NjgxNDgxXyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfMDAwMDAxMDYxMjA2MzI0NjE3OTI4NzExNjAwMDAwMDc0MzM5MTMwMzgzMzc3NjY1NzZfKTt9Cjwvc3R5bGU+CjxnPgoJCgkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDYuNjAzIiB5MT0iOS4yMjEyIiB4Mj0iMTc0LjE1OCIgeTI9IjMwOC41NDI2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xCgkJTDI3NC43LDkzLjl6Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjkuMzUxNiIgeTE9Ii0xOS4xNTczIiB4Mj0iNTYuOTA2NiIgeTI9IjI4MC4xNjQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1Xyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCWw2OS4yLTQ1LjFWMjNMMjUuMyw5My45TDQzLDE1MC4xbC0xNy43LDU2LjJMMTMzLjcsMjc3di0zOS42bC02OS40LTQ1LjFMNzIuNSwxNjYuNHoiLz4KCTxkZWZzPgoJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ij4KCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQk8L2ZpbHRlcj4KCTwvZGVmcz4KCQoJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0IiBpZD0ibWFzazBfMTY2MV8yOTVfMDAwMDAwODgxMzIyNTE1OTc0NDE1NzM0OTAwMDAwMTE2OTM2MTIwMTg1MDY2ODE0ODFfIj4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ2LjYwMzgiIHkxPSI5LjIyMTQiIHgyPSIxNzQuMTU4OCIgeTI9IjMwOC41NDI4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMwQjQ2RjkiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JCRkJFMCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTsiIGQ9IgoJCQlNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xTDI3NC43LDkzLjl6Ii8+CgkJCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMTk4MTE3MDc2MjE0NzI4MTQyNzAwMDAwMTA4Mjk2NTkzODM4NTEyMDI0OTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyOS4zNTIxIiB5MT0iLTE5LjE1NzEiIHgyPSI1Ni45MDcxIiB5Mj0iMjgwLjE2NDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCAzMDIpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQkJGQkUwIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTE5ODExNzA3NjIxNDcyODE0MjcwMDAwMDEwODI5NjU5MzgzODUxMjAyNDkxXyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCQlsNjkuMi00NS4xVjIzTDI1LjMsOTMuOUw0MywxNTAuMWwtMTcuNyw1Ni4yTDEzMy43LDI3N3YtMzkuNmwtNjkuNC00NS4xTDcyLjUsMTY2LjR6Ii8+Cgk8L21hc2s+Cgk8ZyBjbGFzcz0ic3Q0Ij4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDEwOTAxOTkxODU1Nzc3MzA1MzQyMDAwMDAxNzYwMjQwNTkwODA2NzEyMDMwMF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDYuNDY2MiIgeTE9IjIyOC43NTU0IiB4Mj0iMTcxLjg2MzgiIHkyPSIxMzUuMTAzOSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDMwMikiPgoJCQk8c3RvcCAgb2Zmc2V0PSIwLjExOTgiIHN0eWxlPSJzdG9wLWNvbG9yOiM4OTUyRkY7c3RvcC1vcGFjaXR5OjAuODciLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0RBQkRGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJCgkJCTxyZWN0IHg9IjI1LjQiIHk9IjIzIiBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTA5MDE5OTE4NTU3NzczMDUzNDIwMDAwMDE3NjAyNDA1OTA4MDY3MTIwMzAwXyk7IiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==';
1460
1458
 
1461
1459
  class ExodusClient extends BaseClient {
1462
1460
  #client;
1463
1461
  #onlyIfTrusted;
1464
1462
  network;
1465
- constructor({ metadata, client, algosdk, algodClient, onlyIfTrusted, network, }) {
1463
+ constructor({ metadata, client, algosdk, algodClient, onlyIfTrusted, network }) {
1466
1464
  super(metadata, algosdk, algodClient);
1467
1465
  this.#client = client;
1468
1466
  this.#onlyIfTrusted = onlyIfTrusted;
@@ -1471,18 +1469,17 @@ class ExodusClient extends BaseClient {
1471
1469
  }
1472
1470
  static metadata = {
1473
1471
  id: PROVIDER_ID.EXODUS,
1474
- name: "Exodus",
1472
+ name: 'Exodus',
1475
1473
  icon: ICON$4,
1476
- isWalletConnect: false,
1474
+ isWalletConnect: false
1477
1475
  };
1478
- static async init({ clientOptions, algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
1476
+ static async init({ clientOptions, algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1 }) {
1479
1477
  try {
1480
- if (typeof window == "undefined" ||
1481
- window.exodus === undefined) {
1482
- throw new Error("Exodus is not available.");
1478
+ if (typeof window == 'undefined' || window.exodus === undefined) {
1479
+ throw new Error('Exodus is not available.');
1483
1480
  }
1484
1481
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
1485
- const algodClient = await getAlgodClient(algosdk, algodOptions);
1482
+ const algodClient = getAlgodClient(algosdk, algodOptions);
1486
1483
  const exodus = window.exodus.algorand;
1487
1484
  return new ExodusClient({
1488
1485
  metadata: ExodusClient.metadata,
@@ -1491,18 +1488,18 @@ class ExodusClient extends BaseClient {
1491
1488
  algosdk: algosdk,
1492
1489
  algodClient: algodClient,
1493
1490
  onlyIfTrusted: clientOptions?.onlyIfTrusted || false,
1494
- network,
1491
+ network
1495
1492
  });
1496
1493
  }
1497
1494
  catch (e) {
1498
1495
  console.warn(e);
1499
- console.warn(`Error initializing ${ExodusClient.metadata.name}.`, "Do you have the extension installed?", "https://www.exodus.com/web3-wallet");
1496
+ console.warn(`Error initializing ${ExodusClient.metadata.name}.`, 'Do you have the extension installed?', 'https://www.exodus.com/web3-wallet');
1500
1497
  return null;
1501
1498
  }
1502
1499
  }
1503
1500
  async connect() {
1504
1501
  const { address } = await this.#client.connect({
1505
- onlyIfTrusted: this.#onlyIfTrusted,
1502
+ onlyIfTrusted: this.#onlyIfTrusted
1506
1503
  });
1507
1504
  if (!address) {
1508
1505
  throw new Error(`No accounts found for ${ExodusClient.metadata.id}`);
@@ -1511,14 +1508,15 @@ class ExodusClient extends BaseClient {
1511
1508
  {
1512
1509
  name: `Exodus 1`,
1513
1510
  address,
1514
- providerId: ExodusClient.metadata.id,
1515
- },
1511
+ providerId: ExodusClient.metadata.id
1512
+ }
1516
1513
  ];
1517
1514
  return {
1518
1515
  ...ExodusClient.metadata,
1519
- accounts,
1516
+ accounts
1520
1517
  };
1521
1518
  }
1519
+ // eslint-disable-next-line @typescript-eslint/require-await
1522
1520
  async reconnect(onDisconnect) {
1523
1521
  if (window === undefined ||
1524
1522
  window.exodus === undefined ||
@@ -1527,6 +1525,7 @@ class ExodusClient extends BaseClient {
1527
1525
  }
1528
1526
  return null;
1529
1527
  }
1528
+ // eslint-disable-next-line @typescript-eslint/require-await
1530
1529
  async disconnect() {
1531
1530
  return;
1532
1531
  }
@@ -1538,7 +1537,7 @@ class ExodusClient extends BaseClient {
1538
1537
  const signedIndexes = [];
1539
1538
  // Get the unsigned transactions.
1540
1539
  const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
1541
- const isSigned = "txn" in txn;
1540
+ const isSigned = 'txn' in txn;
1542
1541
  // If the indexes to be signed is specified
1543
1542
  // add it to the arrays of transactions to be signed.
1544
1543
  if (indexesToSign && indexesToSign.length && indexesToSign.includes(i)) {
@@ -1547,8 +1546,7 @@ class ExodusClient extends BaseClient {
1547
1546
  // If the transaction isn't already signed and is to be sent from a connected account,
1548
1547
  // add it to the arrays of transactions to be signed
1549
1548
  }
1550
- else if (!isSigned &&
1551
- connectedAccounts.includes(this.algosdk.encodeAddress(txn["snd"]))) {
1549
+ else if (!isSigned && connectedAccounts.includes(this.algosdk.encodeAddress(txn['snd']))) {
1552
1550
  signedIndexes.push(i);
1553
1551
  acc.push(transactions[i]);
1554
1552
  }
@@ -1571,8 +1569,8 @@ class ExodusClient extends BaseClient {
1571
1569
  }
1572
1570
  }
1573
1571
 
1574
- const ICON$3 = "data:image/svg+xml;base64," +
1575
- "PHN2ZyB3aWR0aD0iMjM4IiBoZWlnaHQ9IjIzOCIgdmlld0JveD0iMCAwIDIzOCAyMzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01MS43MDUgMTQ1LjA0MkgxMTYuNzA1TDEwNy43MDUgMTU1LjA0Mkg1MS43MDVWMTQ1LjA0MloiIGZpbGw9IiNENjQ1MDAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDcuNTE5IDE5MS41NTdMMTI5LjU3NyAxNDQuMzk0TDE0Mi40MDQgMTI3LjExMkwxNjcuODc1IDE5MS41NTdIMTQ3LjUxOVpNMTEwLjkzNiA5NS4zOTMyTDEyMC42MTMgMTIwLjgzMUwxMzMuMzU5IDEwNC4yMjhMMTE3LjQ3NSA2NC4wNDIyQzExNS45MjggNjAuMTI4IDExMi4xNDYgNTcuNTU2NSAxMDcuOTM4IDU3LjU1NjVDMTAzLjcyOSA1Ny41NTY1IDk5Ljk0NzQgNjAuMTI4IDk4LjQwMDMgNjQuMDQyMkw2Ny45NjU5IDE0MS4wNDJIODcuNzgwN0M5NS40MTUzIDEyMS4wMTEgMTAyLjg5MyAxMDEuMzk5IDEwNS4xOTggOTUuMzU0MUMxMDUuNjQxIDk0LjE5MTIgMTA2Ljc0MyA5My40NTk5IDEwNy45ODcgOTMuNDU5OUgxMDguMTMyQzEwOS4zNzggOTMuNDU5OSAxMTAuNDkzIDk0LjIyOTMgMTEwLjkzNiA5NS4zOTMyWk04MC45MjEgMTU5LjA0MkM3NC45Mjg5IDE3NC43NjggNjkuODY2MSAxODguMDYzIDY4LjU0NDcgMTkxLjU1N0g0OEw2MC44NTE0IDE1OS4wNDJIODAuOTIxWiIgZmlsbD0iIzIyMkI2MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE3Ni4wMjYgNTQuNzUwOUMxNzcuOTk3IDUyLjA4NzIgMTgxLjc1NCA1MS41MjU3IDE4NC40MTggNTMuNDk2N0MxODcuMDgyIDU1LjQ2NzggMTg3LjY0MyA1OS4yMjUxIDE4NS42NzIgNjEuODg4OEwxMzAuMDEzIDEzNy4xMDdDMTI5LjcxNCAxMzcuNTEyIDEyOS4zNDEgMTM3Ljg1NyAxMjguOTEzIDEzOC4xMjNMMTE3Ljg1NiAxNDUuMDEzQzExNy4wODcgMTQ1LjQ5MyAxMTYuMTI4IDE0NC43ODMgMTE2LjM2MSAxNDMuOTA3TDExOS43MTggMTMxLjMxOEMxMTkuODQ3IDEzMC44MzIgMTIwLjA2OCAxMzAuMzc0IDEyMC4zNjcgMTI5Ljk3TDE3MC42NyA2MS45ODlMMTY5LjkyOSA2MS40NDA1QzE2OS40ODUgNjEuMTEyIDE2OC44NTkgNjEuMjA1NiAxNjguNTMgNjEuNjQ5NkwxNTIuMzExIDgzLjU2ODhDMTUyLjU4NiA4NC4yMDIzIDE1Mi41MjQgODQuOTYxMiAxNTIuMDg0IDg1LjU1NjJMMTQ5LjExIDg5LjU3NTVDMTQ4LjQ1MyA5MC40NjM0IDE0Ny4yMDEgOTAuNjUwNiAxNDYuMzEzIDg5Ljk5MzZDMTQ1LjQyNSA4OS4zMzY2IDE0NS4yMzggODguMDg0MSAxNDUuODk1IDg3LjE5NjJMMTQ3LjY3OSA4NC43ODQ3TDE0OC44NjkgODMuMTc2OUwxNjcuMzA4IDU4LjI1NzRDMTY4LjYyMiA1Ni40ODE1IDE3MS4xMjcgNTYuMTA3MiAxNzIuOTAzIDU3LjQyMTJMMTczLjY0NCA1Ny45Njk3TDE3Ni4wMjYgNTQuNzUwOVoiIGZpbGw9IiNENjQ1MDAiLz4KPC9zdmc+Cg==";
1572
+ const ICON$3 = 'data:image/svg+xml;base64,' +
1573
+ 'PHN2ZyB3aWR0aD0iMjM4IiBoZWlnaHQ9IjIzOCIgdmlld0JveD0iMCAwIDIzOCAyMzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01MS43MDUgMTQ1LjA0MkgxMTYuNzA1TDEwNy43MDUgMTU1LjA0Mkg1MS43MDVWMTQ1LjA0MloiIGZpbGw9IiNENjQ1MDAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDcuNTE5IDE5MS41NTdMMTI5LjU3NyAxNDQuMzk0TDE0Mi40MDQgMTI3LjExMkwxNjcuODc1IDE5MS41NTdIMTQ3LjUxOVpNMTEwLjkzNiA5NS4zOTMyTDEyMC42MTMgMTIwLjgzMUwxMzMuMzU5IDEwNC4yMjhMMTE3LjQ3NSA2NC4wNDIyQzExNS45MjggNjAuMTI4IDExMi4xNDYgNTcuNTU2NSAxMDcuOTM4IDU3LjU1NjVDMTAzLjcyOSA1Ny41NTY1IDk5Ljk0NzQgNjAuMTI4IDk4LjQwMDMgNjQuMDQyMkw2Ny45NjU5IDE0MS4wNDJIODcuNzgwN0M5NS40MTUzIDEyMS4wMTEgMTAyLjg5MyAxMDEuMzk5IDEwNS4xOTggOTUuMzU0MUMxMDUuNjQxIDk0LjE5MTIgMTA2Ljc0MyA5My40NTk5IDEwNy45ODcgOTMuNDU5OUgxMDguMTMyQzEwOS4zNzggOTMuNDU5OSAxMTAuNDkzIDk0LjIyOTMgMTEwLjkzNiA5NS4zOTMyWk04MC45MjEgMTU5LjA0MkM3NC45Mjg5IDE3NC43NjggNjkuODY2MSAxODguMDYzIDY4LjU0NDcgMTkxLjU1N0g0OEw2MC44NTE0IDE1OS4wNDJIODAuOTIxWiIgZmlsbD0iIzIyMkI2MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE3Ni4wMjYgNTQuNzUwOUMxNzcuOTk3IDUyLjA4NzIgMTgxLjc1NCA1MS41MjU3IDE4NC40MTggNTMuNDk2N0MxODcuMDgyIDU1LjQ2NzggMTg3LjY0MyA1OS4yMjUxIDE4NS42NzIgNjEuODg4OEwxMzAuMDEzIDEzNy4xMDdDMTI5LjcxNCAxMzcuNTEyIDEyOS4zNDEgMTM3Ljg1NyAxMjguOTEzIDEzOC4xMjNMMTE3Ljg1NiAxNDUuMDEzQzExNy4wODcgMTQ1LjQ5MyAxMTYuMTI4IDE0NC43ODMgMTE2LjM2MSAxNDMuOTA3TDExOS43MTggMTMxLjMxOEMxMTkuODQ3IDEzMC44MzIgMTIwLjA2OCAxMzAuMzc0IDEyMC4zNjcgMTI5Ljk3TDE3MC42NyA2MS45ODlMMTY5LjkyOSA2MS40NDA1QzE2OS40ODUgNjEuMTEyIDE2OC44NTkgNjEuMjA1NiAxNjguNTMgNjEuNjQ5NkwxNTIuMzExIDgzLjU2ODhDMTUyLjU4NiA4NC4yMDIzIDE1Mi41MjQgODQuOTYxMiAxNTIuMDg0IDg1LjU1NjJMMTQ5LjExIDg5LjU3NTVDMTQ4LjQ1MyA5MC40NjM0IDE0Ny4yMDEgOTAuNjUwNiAxNDYuMzEzIDg5Ljk5MzZDMTQ1LjQyNSA4OS4zMzY2IDE0NS4yMzggODguMDg0MSAxNDUuODk1IDg3LjE5NjJMMTQ3LjY3OSA4NC43ODQ3TDE0OC44NjkgODMuMTc2OUwxNjcuMzA4IDU4LjI1NzRDMTY4LjYyMiA1Ni40ODE1IDE3MS4xMjcgNTYuMTA3MiAxNzIuOTAzIDU3LjQyMTJMMTczLjY0NCA1Ny45Njk3TDE3Ni4wMjYgNTQuNzUwOVoiIGZpbGw9IiNENjQ1MDAiLz4KPC9zdmc+Cg==';
1576
1574
 
1577
1575
  class AlgoSignerClient extends BaseClient {
1578
1576
  #client;
@@ -1717,14 +1715,14 @@ class AlgoSignerClient extends BaseClient {
1717
1715
  }
1718
1716
  }
1719
1717
 
1720
- const ICON$2 = "data:image/svg+xml;base64," +
1721
- "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDQ4MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMzMzk2RkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI2LjYsMTY4YzYyLjYtNjEuMywxNjQuMi02MS4zLDIyNi44LDBsNy41LDcuNGMzLjEsMy4xLDMuMSw4LDAsMTEuMWwtMjUuOCwyNS4yYy0xLjYsMS41LTQuMSwxLjUtNS43LDAKCWwtMTAuNC0xMC4yYy00My43LTQyLjgtMTE0LjUtNDIuOC0xNTguMiwwbC0xMS4xLDEwLjljLTEuNiwxLjUtNC4xLDEuNS01LjcsMGwtMjUuOC0yNS4yYy0zLjEtMy4xLTMuMS04LDAtMTEuMUwxMjYuNiwxNjh6CgkgTTQwNi43LDIyMC4ybDIyLjksMjIuNWMzLjEsMy4xLDMuMSw4LDAsMTEuMUwzMjYuMiwzNTUuMWMtMy4xLDMuMS04LjIsMy4xLTExLjMsMGwtNzMuNC03MS45Yy0wLjgtMC44LTIuMS0wLjgtMi44LDBsLTczLjQsNzEuOQoJYy0zLjEsMy4xLTguMiwzLjEtMTEuMywwTDUwLjMsMjUzLjhjLTMuMS0zLjEtMy4xLTgsMC0xMS4xbDIyLjktMjIuNWMzLjEtMy4xLDguMi0zLjEsMTEuMywwbDczLjQsNzEuOWMwLjgsMC44LDIuMSwwLjgsMi44LDAKCWw3My40LTcxLjljMy4xLTMuMSw4LjItMy4xLDExLjMsMGw3My40LDcxLjljMC44LDAuOCwyLjEsMC44LDIuOCwwbDczLjQtNzEuOUMzOTguNSwyMTcuMSw0MDMuNiwyMTcuMSw0MDYuNywyMjAuMkw0MDYuNywyMjAuMnoiLz4KPC9zdmc+Cg==";
1722
- const DEFAULT_NETWORK = "mainnet";
1718
+ const ICON$2 = 'data:image/svg+xml;base64,' +
1719
+ 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDQ4MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMzMzk2RkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI2LjYsMTY4YzYyLjYtNjEuMywxNjQuMi02MS4zLDIyNi44LDBsNy41LDcuNGMzLjEsMy4xLDMuMSw4LDAsMTEuMWwtMjUuOCwyNS4yYy0xLjYsMS41LTQuMSwxLjUtNS43LDAKCWwtMTAuNC0xMC4yYy00My43LTQyLjgtMTE0LjUtNDIuOC0xNTguMiwwbC0xMS4xLDEwLjljLTEuNiwxLjUtNC4xLDEuNS01LjcsMGwtMjUuOC0yNS4yYy0zLjEtMy4xLTMuMS04LDAtMTEuMUwxMjYuNiwxNjh6CgkgTTQwNi43LDIyMC4ybDIyLjksMjIuNWMzLjEsMy4xLDMuMSw4LDAsMTEuMUwzMjYuMiwzNTUuMWMtMy4xLDMuMS04LjIsMy4xLTExLjMsMGwtNzMuNC03MS45Yy0wLjgtMC44LTIuMS0wLjgtMi44LDBsLTczLjQsNzEuOQoJYy0zLjEsMy4xLTguMiwzLjEtMTEuMywwTDUwLjMsMjUzLjhjLTMuMS0zLjEtMy4xLTgsMC0xMS4xbDIyLjktMjIuNWMzLjEtMy4xLDguMi0zLjEsMTEuMywwbDczLjQsNzEuOWMwLjgsMC44LDIuMSwwLjgsMi44LDAKCWw3My40LTcxLjljMy4xLTMuMSw4LjItMy4xLDExLjMsMGw3My40LDcxLjljMC44LDAuOCwyLjEsMC44LDIuOCwwbDczLjQtNzEuOUMzOTguNSwyMTcuMSw0MDMuNiwyMTcuMSw0MDYuNywyMjAuMkw0MDYuNywyMjAuMnoiLz4KPC9zdmc+Cg==';
1720
+ const DEFAULT_NETWORK = 'mainnet';
1723
1721
 
1724
1722
  class WalletConnectClient extends BaseClient {
1725
1723
  #client;
1726
1724
  network;
1727
- constructor({ metadata, client, algosdk, algodClient, network, }) {
1725
+ constructor({ metadata, client, algosdk, algodClient, network }) {
1728
1726
  super(metadata, algosdk, algodClient);
1729
1727
  this.#client = client;
1730
1728
  this.network = network;
@@ -1732,50 +1730,49 @@ class WalletConnectClient extends BaseClient {
1732
1730
  }
1733
1731
  static metadata = {
1734
1732
  id: PROVIDER_ID.WALLETCONNECT,
1735
- name: "WalletConnect",
1733
+ name: 'WalletConnect',
1736
1734
  icon: ICON$2,
1737
- isWalletConnect: true,
1735
+ isWalletConnect: true
1738
1736
  };
1739
- static async init({ clientOptions, algodOptions, clientStatic, modalStatic, algosdkStatic, network = DEFAULT_NETWORK, }) {
1737
+ static async init({ clientOptions, algodOptions, clientStatic, modalStatic, algosdkStatic, network = DEFAULT_NETWORK }) {
1740
1738
  try {
1741
1739
  const WalletConnect = clientStatic || (await import('@walletconnect/client')).default;
1742
- const QRCodeModal = modalStatic ||
1743
- (await import('algorand-walletconnect-qrcode-modal')).default;
1740
+ const QRCodeModal = modalStatic || (await import('algorand-walletconnect-qrcode-modal')).default;
1744
1741
  const walletConnect = new WalletConnect({
1745
- bridge: "https://bridge.walletconnect.org",
1742
+ bridge: 'https://bridge.walletconnect.org',
1746
1743
  qrcodeModal: QRCodeModal,
1747
- storageId: "walletconnect-generic",
1748
- ...(clientOptions || {}),
1744
+ storageId: 'walletconnect-generic',
1745
+ ...(clientOptions || {})
1749
1746
  });
1750
1747
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
1751
- const algodClient = await getAlgodClient(algosdk, algodOptions);
1748
+ const algodClient = getAlgodClient(algosdk, algodOptions);
1752
1749
  const initWallet = {
1753
1750
  metadata: WalletConnectClient.metadata,
1754
1751
  client: walletConnect,
1755
1752
  algosdk: algosdk,
1756
1753
  algodClient: algodClient,
1757
- network,
1754
+ network
1758
1755
  };
1759
1756
  return new WalletConnectClient(initWallet);
1760
1757
  }
1761
1758
  catch (e) {
1762
- console.error("Error initializing...", e);
1759
+ console.error('Error initializing...', e);
1763
1760
  return null;
1764
1761
  }
1765
1762
  }
1766
1763
  async connect() {
1767
1764
  let chainId = 416001;
1768
- if (this.network === "betanet") {
1765
+ if (this.network === 'betanet') {
1769
1766
  chainId = 416003;
1770
1767
  }
1771
- else if (this.network === "testnet") {
1768
+ else if (this.network === 'testnet') {
1772
1769
  chainId = 416002;
1773
1770
  }
1774
1771
  if (!this.#client.connected) {
1775
1772
  await this.#client.createSession({ chainId });
1776
1773
  }
1777
1774
  return new Promise((resolve, reject) => {
1778
- this.#client.on("connect", (error, payload) => {
1775
+ this.#client.on('connect', (error, payload) => {
1779
1776
  if (error) {
1780
1777
  reject(error);
1781
1778
  }
@@ -1785,11 +1782,11 @@ class WalletConnectClient extends BaseClient {
1785
1782
  accounts: accounts.map((address, index) => ({
1786
1783
  name: `Wallet Connect ${index + 1}`,
1787
1784
  address,
1788
- providerId: WalletConnectClient.metadata.id,
1789
- })),
1785
+ providerId: WalletConnectClient.metadata.id
1786
+ }))
1790
1787
  });
1791
1788
  });
1792
- this.#client.on("session_update", (error, payload) => {
1789
+ this.#client.on('session_update', (error, payload) => {
1793
1790
  if (error) {
1794
1791
  reject(error);
1795
1792
  }
@@ -1799,12 +1796,13 @@ class WalletConnectClient extends BaseClient {
1799
1796
  accounts: accounts.map((address, index) => ({
1800
1797
  name: `Wallet Connect ${index + 1}`,
1801
1798
  address,
1802
- providerId: WalletConnectClient.metadata.id,
1803
- })),
1799
+ providerId: WalletConnectClient.metadata.id
1800
+ }))
1804
1801
  });
1805
1802
  });
1806
1803
  });
1807
1804
  }
1805
+ // eslint-disable-next-line @typescript-eslint/require-await
1808
1806
  async reconnect() {
1809
1807
  const accounts = this.#client.accounts;
1810
1808
  if (!accounts) {
@@ -1815,8 +1813,8 @@ class WalletConnectClient extends BaseClient {
1815
1813
  accounts: accounts.map((address, index) => ({
1816
1814
  name: `Wallet Connect ${index + 1}`,
1817
1815
  address,
1818
- providerId: WalletConnectClient.metadata.id,
1819
- })),
1816
+ providerId: WalletConnectClient.metadata.id
1817
+ }))
1820
1818
  };
1821
1819
  }
1822
1820
  check() {
@@ -1827,7 +1825,7 @@ class WalletConnectClient extends BaseClient {
1827
1825
  await this.#client.killSession();
1828
1826
  }
1829
1827
  catch (e) {
1830
- console.error("Error disconnecting", e);
1828
+ console.error('Error disconnecting', e);
1831
1829
  }
1832
1830
  }
1833
1831
  async signTransactions(connectedAccounts, transactions, indexesToSign, returnGroup = true) {
@@ -1839,37 +1837,34 @@ class WalletConnectClient extends BaseClient {
1839
1837
  // Marshal the transactions,
1840
1838
  // and add the signers property if they shouldn't be signed.
1841
1839
  const txnsToSign = decodedTxns.reduce((acc, txn, i) => {
1842
- const isSigned = "txn" in txn;
1843
- if (indexesToSign &&
1844
- indexesToSign.length &&
1845
- indexesToSign.includes(i)) {
1840
+ const isSigned = 'txn' in txn;
1841
+ if (indexesToSign && indexesToSign.length && indexesToSign.includes(i)) {
1846
1842
  signedIndexes.push(i);
1847
1843
  acc.push({
1848
- txn: Buffer.from(transactions[i]).toString("base64"),
1844
+ txn: Buffer.from(transactions[i]).toString('base64')
1849
1845
  });
1850
1846
  }
1851
- else if (!isSigned &&
1852
- connectedAccounts.includes(this.algosdk.encodeAddress(txn["snd"]))) {
1847
+ else if (!isSigned && connectedAccounts.includes(this.algosdk.encodeAddress(txn['snd']))) {
1853
1848
  signedIndexes.push(i);
1854
1849
  acc.push({
1855
- txn: Buffer.from(transactions[i]).toString("base64"),
1850
+ txn: Buffer.from(transactions[i]).toString('base64')
1856
1851
  });
1857
1852
  }
1858
1853
  else {
1859
1854
  acc.push({
1860
1855
  txn: isSigned
1861
- ? Buffer.from(this.algosdk.encodeUnsignedTransaction(this.algosdk.decodeSignedTransaction(transactions[i]).txn)).toString("base64")
1862
- : Buffer.from(transactions[i]).toString("base64"),
1863
- signers: [],
1856
+ ? Buffer.from(this.algosdk.encodeUnsignedTransaction(this.algosdk.decodeSignedTransaction(transactions[i]).txn)).toString('base64')
1857
+ : Buffer.from(transactions[i]).toString('base64'),
1858
+ signers: []
1864
1859
  });
1865
1860
  }
1866
1861
  return acc;
1867
1862
  }, []);
1868
1863
  const requestParams = [txnsToSign];
1869
- const request = formatJsonRpcRequest("algo_signTxn", requestParams);
1864
+ const request = formatJsonRpcRequest('algo_signTxn', requestParams);
1870
1865
  // Play an audio file to keep Wallet Connect's web socket open on iOS
1871
1866
  // when the user goes into background mode.
1872
- this.keepWCAliveStart();
1867
+ await this.keepWCAliveStart();
1873
1868
  // Sign them with the client.
1874
1869
  const result = await this.#client.sendCustomRequest(request);
1875
1870
  this.keepWCAliveStop();
@@ -1890,8 +1885,8 @@ class WalletConnectClient extends BaseClient {
1890
1885
  }
1891
1886
  }
1892
1887
 
1893
- const ICON$1 = "data:image/svg+xml;base64," +
1894
- "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDkuODMgMjEwLjMzIj48dGV4dCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDE2MS4zMSkiIHN0eWxlPSJmb250LWZhbWlseTpJQk1QbGV4U2Fucy1NZWRtLCAmYXBvcztJQk0gUGxleCBTYW5zJmFwb3M7OyBmb250LXNpemU6MTkwcHg7Ij48dHNwYW4geD0iMCIgeT0iMCI+S01EPC90c3Bhbj48L3RleHQ+PC9zdmc+";
1888
+ const ICON$1 = 'data:image/svg+xml;base64,' +
1889
+ 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDkuODMgMjEwLjMzIj48dGV4dCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDE2MS4zMSkiIHN0eWxlPSJmb250LWZhbWlseTpJQk1QbGV4U2Fucy1NZWRtLCAmYXBvcztJQk0gUGxleCBTYW5zJmFwb3M7OyBmb250LXNpemU6MTkwcHg7Ij48dHNwYW4geD0iMCIgeT0iMCI+S01EPC90c3Bhbj48L3RleHQ+PC9zdmc+';
1895
1890
 
1896
1891
  class KMDWalletClient extends BaseClient {
1897
1892
  #client;
@@ -1900,27 +1895,27 @@ class KMDWalletClient extends BaseClient {
1900
1895
  walletId;
1901
1896
  id;
1902
1897
  network;
1903
- constructor({ metadata, client, id, wallet, password, algosdk, algodClient, network, }) {
1898
+ constructor({ metadata, client, id, wallet, password, algosdk, algodClient, network }) {
1904
1899
  super(metadata, algosdk, algodClient);
1905
1900
  this.#client = client;
1906
1901
  this.#wallet = wallet;
1907
1902
  this.#password = password;
1908
1903
  this.id = id;
1909
- this.walletId = "";
1904
+ this.walletId = '';
1910
1905
  this.network = network;
1911
1906
  this.metadata = KMDWalletClient.metadata;
1912
1907
  }
1913
1908
  static metadata = {
1914
1909
  id: PROVIDER_ID.KMD,
1915
- name: "KMD",
1910
+ name: 'KMD',
1916
1911
  icon: ICON$1,
1917
- isWalletConnect: false,
1912
+ isWalletConnect: false
1918
1913
  };
1919
- static async init({ clientOptions, algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
1914
+ static async init({ clientOptions, algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1 }) {
1920
1915
  try {
1921
- const { token = "a".repeat(64), host = "http://localhost", port = "4002", wallet = "unencrypted-default-wallet", password = "", } = clientOptions || {};
1916
+ const { token = 'a'.repeat(64), host = 'http://localhost', port = '4002', wallet = 'unencrypted-default-wallet', password = '' } = clientOptions || {};
1922
1917
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
1923
- const algodClient = await getAlgodClient(algosdk, algodOptions);
1918
+ const algodClient = getAlgodClient(algosdk, algodOptions);
1924
1919
  const kmdClient = new algosdk.Kmd(token, host, port);
1925
1920
  return new KMDWalletClient({
1926
1921
  metadata: KMDWalletClient.metadata,
@@ -1930,11 +1925,11 @@ class KMDWalletClient extends BaseClient {
1930
1925
  client: kmdClient,
1931
1926
  algosdk: algosdk,
1932
1927
  algodClient: algodClient,
1933
- network,
1928
+ network
1934
1929
  });
1935
1930
  }
1936
1931
  catch (e) {
1937
- console.error("Error initializing...", e);
1932
+ console.error('Error initializing...', e);
1938
1933
  return null;
1939
1934
  }
1940
1935
  }
@@ -1942,19 +1937,21 @@ class KMDWalletClient extends BaseClient {
1942
1937
  // TODO: prompt for wallet and password?
1943
1938
  return {
1944
1939
  ...KMDWalletClient.metadata,
1945
- accounts: await this.listAccounts(this.#wallet, await this.requestPassword()),
1940
+ accounts: await this.listAccounts(this.#wallet, this.requestPassword())
1946
1941
  };
1947
1942
  }
1943
+ // eslint-disable-next-line @typescript-eslint/require-await
1948
1944
  async disconnect() {
1949
1945
  return;
1950
1946
  }
1947
+ // eslint-disable-next-line @typescript-eslint/require-await
1951
1948
  async reconnect() {
1952
1949
  return null;
1953
1950
  }
1954
- async requestPassword() {
1951
+ requestPassword() {
1955
1952
  // TODO: store it locally?
1956
- const pw = prompt("KMD password");
1957
- return pw ? pw : "";
1953
+ const pw = prompt('KMD password');
1954
+ return pw ? pw : '';
1958
1955
  }
1959
1956
  async getWalletToken(walletId, password) {
1960
1957
  const handleResp = await this.#client.initWalletHandle(walletId, password);
@@ -1965,7 +1962,7 @@ class KMDWalletClient extends BaseClient {
1965
1962
  }
1966
1963
  async listWallets() {
1967
1964
  const walletResponse = await this.#client.listWallets();
1968
- const walletList = walletResponse["wallets"];
1965
+ const walletList = walletResponse['wallets'];
1969
1966
  const walletMap = {};
1970
1967
  for (const w of walletList) {
1971
1968
  walletMap[w.name] = w.id;
@@ -1978,25 +1975,25 @@ class KMDWalletClient extends BaseClient {
1978
1975
  const token = await this.getWalletToken(walletId, password);
1979
1976
  // Fetch accounts and format them as lib expects
1980
1977
  const listResponse = await this.#client.listKeys(token);
1981
- const addresses = listResponse["addresses"];
1978
+ const addresses = listResponse['addresses'];
1982
1979
  const mappedAccounts = addresses.map((address, index) => {
1983
1980
  return {
1984
1981
  name: `KMDWallet ${index + 1}`,
1985
1982
  address,
1986
- providerId: KMDWalletClient.metadata.id,
1983
+ providerId: KMDWalletClient.metadata.id
1987
1984
  };
1988
1985
  });
1989
1986
  // Release handle token
1990
- this.releaseToken(token);
1987
+ await this.releaseToken(token);
1991
1988
  return mappedAccounts;
1992
1989
  }
1993
1990
  async getWalletId() {
1994
1991
  // Use cached if available
1995
- if (this.walletId !== "")
1992
+ if (this.walletId !== '')
1996
1993
  return this.walletId;
1997
1994
  const walletMap = await this.listWallets();
1998
1995
  if (!(this.#wallet in walletMap))
1999
- throw Error("No wallet named: " + this.#wallet);
1996
+ throw Error('No wallet named: ' + this.#wallet);
2000
1997
  this.walletId = walletMap[this.#wallet];
2001
1998
  return this.walletId;
2002
1999
  }
@@ -2007,39 +2004,36 @@ class KMDWalletClient extends BaseClient {
2007
2004
  });
2008
2005
  // Get a handle token
2009
2006
  const walletId = await this.getWalletId();
2010
- const pw = await this.requestPassword();
2007
+ const pw = this.requestPassword();
2011
2008
  const token = await this.getWalletToken(walletId, pw);
2012
2009
  const signedTxns = [];
2013
2010
  // Sign them with the client.
2014
2011
  const signingPromises = [];
2015
- for (const idx in decodedTxns) {
2016
- const dtxn = decodedTxns[idx];
2017
- const isSigned = "txn" in dtxn;
2012
+ decodedTxns.forEach((dtxn, idx) => {
2013
+ const isSigned = 'txn' in dtxn;
2018
2014
  // push the incoming txn into signed, we'll overwrite it later
2019
2015
  signedTxns.push(transactions[idx]);
2020
2016
  // Its already signed, skip it
2021
2017
  if (isSigned) {
2022
- continue;
2018
+ return;
2023
2019
  // Not specified in indexes to sign, skip it
2024
2020
  }
2025
- else if (indexesToSign &&
2026
- indexesToSign.length &&
2027
- !indexesToSign.includes(Number(idx))) {
2028
- continue;
2021
+ else if (indexesToSign && indexesToSign.length && !indexesToSign.includes(Number(idx))) {
2022
+ return;
2029
2023
  }
2030
2024
  // Not to be signed by our signer, skip it
2031
2025
  else if (!connectedAccounts.includes(this.algosdk.encodeAddress(dtxn.snd))) {
2032
- continue;
2026
+ return;
2033
2027
  }
2034
2028
  // overwrite with an empty blob
2035
2029
  signedTxns[idx] = new Uint8Array();
2036
2030
  const txn = this.algosdk.Transaction.from_obj_for_encoding(dtxn);
2037
2031
  signingPromises.push(this.#client.signTransaction(token, pw, txn));
2038
- }
2032
+ });
2039
2033
  const signingResults = await Promise.all(signingPromises);
2040
2034
  // Restore the newly signed txns in the correct order
2041
2035
  let signedIdx = 0;
2042
- const formattedTxns = signedTxns.reduce((acc, txn, i) => {
2036
+ const formattedTxns = signedTxns.reduce((acc, txn) => {
2043
2037
  // If its an empty array, infer that it is one of the
2044
2038
  // ones we wanted to have signed and overwrite the empty buff
2045
2039
  if (txn.length === 0) {
@@ -2061,7 +2055,7 @@ class MnemonicWalletClient extends BaseClient {
2061
2055
  #client;
2062
2056
  id;
2063
2057
  network;
2064
- constructor({ metadata, id, algosdk, algodClient, network, }) {
2058
+ constructor({ metadata, id, algosdk, algodClient, network }) {
2065
2059
  super(metadata, algosdk, algodClient);
2066
2060
  this.id = id;
2067
2061
  this.network = network;
@@ -2069,33 +2063,34 @@ class MnemonicWalletClient extends BaseClient {
2069
2063
  }
2070
2064
  static metadata = {
2071
2065
  id: PROVIDER_ID.MNEMONIC,
2072
- name: "MNEMONIC",
2066
+ name: 'MNEMONIC',
2073
2067
  icon: ICON,
2074
- isWalletConnect: false,
2068
+ isWalletConnect: false
2075
2069
  };
2076
- static async init({ algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1, }) {
2070
+ static async init({ algodOptions, algosdkStatic, network = DEFAULT_NETWORK$1 }) {
2077
2071
  try {
2078
2072
  const algosdk = algosdkStatic || (await Algod.init(algodOptions)).algosdk;
2079
- const algodClient = await getAlgodClient(algosdk, algodOptions);
2073
+ const algodClient = getAlgodClient(algosdk, algodOptions);
2080
2074
  console.log(network, algodClient);
2081
2075
  return new MnemonicWalletClient({
2082
2076
  metadata: MnemonicWalletClient.metadata,
2083
2077
  id: PROVIDER_ID.MNEMONIC,
2084
2078
  algosdk: algosdk,
2085
2079
  algodClient: algodClient,
2086
- network,
2080
+ network
2087
2081
  });
2088
2082
  }
2089
2083
  catch (e) {
2090
- console.error("Error initializing...", e);
2084
+ console.error('Error initializing...', e);
2091
2085
  return null;
2092
2086
  }
2093
2087
  }
2088
+ // eslint-disable-next-line @typescript-eslint/require-await
2094
2089
  async connect() {
2095
- const password = await this.requestPassword();
2090
+ const password = this.requestPassword();
2096
2091
  if (!password) {
2097
2092
  this.#client = undefined;
2098
- throw new Error("Mnemonic passphrase is required");
2093
+ throw new Error('Mnemonic passphrase is required');
2099
2094
  }
2100
2095
  this.#client = algosdk.mnemonicToSecretKey(password);
2101
2096
  return {
@@ -2104,26 +2099,28 @@ class MnemonicWalletClient extends BaseClient {
2104
2099
  {
2105
2100
  name: `MnemonicWallet 1`,
2106
2101
  address: this.#client.addr,
2107
- providerId: MnemonicWalletClient.metadata.id,
2108
- },
2109
- ],
2102
+ providerId: MnemonicWalletClient.metadata.id
2103
+ }
2104
+ ]
2110
2105
  };
2111
2106
  }
2107
+ // eslint-disable-next-line @typescript-eslint/require-await
2112
2108
  async disconnect() {
2113
2109
  this.#client = undefined;
2114
2110
  return;
2115
2111
  }
2112
+ // eslint-disable-next-line @typescript-eslint/require-await
2116
2113
  async reconnect() {
2117
2114
  return null;
2118
2115
  }
2119
- async requestPassword() {
2116
+ requestPassword() {
2120
2117
  // TODO: store it locally?
2121
- const pass = prompt("enter mnemonic passphrase, 25 words");
2122
- return pass ? pass : "";
2118
+ const pass = prompt('enter mnemonic passphrase, 25 words');
2119
+ return pass ? pass : '';
2123
2120
  }
2124
2121
  signTransactions(connectedAccounts, transactions, indexesToSign, returnGroup = true) {
2125
2122
  if (!this.#client) {
2126
- throw new Error("Client not connected");
2123
+ throw new Error('Client not connected');
2127
2124
  }
2128
2125
  // Decode the transactions to access their properties.
2129
2126
  const decodedTxns = transactions.map((txn) => {
@@ -2132,34 +2129,31 @@ class MnemonicWalletClient extends BaseClient {
2132
2129
  const signedTxns = [];
2133
2130
  // Sign them with the client.
2134
2131
  const signingResults = [];
2135
- for (const idx in decodedTxns) {
2136
- const dtxn = decodedTxns[idx];
2137
- const isSigned = "txn" in dtxn;
2132
+ decodedTxns.forEach((dtxn, idx) => {
2133
+ const isSigned = 'txn' in dtxn;
2138
2134
  // push the incoming txn into signed, we'll overwrite it later
2139
2135
  signedTxns.push(transactions[idx]);
2140
2136
  // Its already signed, skip it
2141
2137
  if (isSigned) {
2142
- continue;
2138
+ return;
2143
2139
  // Not specified in indexes to sign, skip it
2144
2140
  }
2145
- else if (indexesToSign &&
2146
- indexesToSign.length &&
2147
- !indexesToSign.includes(Number(idx))) {
2148
- continue;
2141
+ else if (indexesToSign && indexesToSign.length && !indexesToSign.includes(Number(idx))) {
2142
+ return;
2149
2143
  }
2150
2144
  // Not to be signed by our signer, skip it
2151
2145
  else if (!connectedAccounts.includes(this.algosdk.encodeAddress(dtxn.snd))) {
2152
- continue;
2146
+ return;
2153
2147
  }
2154
2148
  // overwrite with an empty blob
2155
2149
  signedTxns[idx] = new Uint8Array();
2156
2150
  const txn = this.algosdk.Transaction.from_obj_for_encoding(dtxn);
2157
- const signedTxn = txn.signTxn(this.#client.sk);
2151
+ const signedTxn = txn.signTxn(this.#client?.sk);
2158
2152
  signingResults.push(signedTxn);
2159
- }
2153
+ });
2160
2154
  // Restore the newly signed txns in the correct order
2161
2155
  let signedIdx = 0;
2162
- const formattedTxns = signedTxns.reduce((acc, txn, i) => {
2156
+ const formattedTxns = signedTxns.reduce((acc, txn) => {
2163
2157
  // If its an empty array, infer that it is one of the
2164
2158
  // ones we wanted to have signed and overwrite the empty buff
2165
2159
  if (txn.length === 0) {
@@ -2173,8 +2167,8 @@ class MnemonicWalletClient extends BaseClient {
2173
2167
  }, []);
2174
2168
  return Promise.resolve(formattedTxns);
2175
2169
  }
2176
- signEncodedTransactions(transactions) {
2177
- throw new Error("Method not implemented.");
2170
+ signEncodedTransactions(_transactions) {
2171
+ throw new Error('Method not implemented.');
2178
2172
  }
2179
2173
  }
2180
2174
 
@@ -2186,7 +2180,7 @@ var allClients = {
2186
2180
  [AlgoSignerClient.metadata.id]: AlgoSignerClient,
2187
2181
  [WalletConnectClient.metadata.id]: WalletConnectClient,
2188
2182
  [KMDWalletClient.metadata.id]: KMDWalletClient,
2189
- [MnemonicWalletClient.metadata.id]: MnemonicWalletClient,
2183
+ [MnemonicWalletClient.metadata.id]: MnemonicWalletClient
2190
2184
  };
2191
2185
 
2192
2186
  const clearActiveAccount = useWalletStore.getState().clearActiveAccount;
@@ -2218,7 +2212,7 @@ function shallow(objA, objB) {
2218
2212
  function useWallet() {
2219
2213
  const [providers, setProviders] = useState(null);
2220
2214
  const clients = useContext(ClientContext);
2221
- const { activeAccount, accounts: connectedAccounts, setActiveAccount: _setActiveAccount, addAccounts, } = useHydratedWalletStore(walletStoreSelector, shallow);
2215
+ const { activeAccount, accounts: connectedAccounts, setActiveAccount: _setActiveAccount, addAccounts } = useHydratedWalletStore(walletStoreSelector, shallow);
2222
2216
  const getAccountsByProvider = (id) => {
2223
2217
  return connectedAccounts.filter((account) => account.providerId === id);
2224
2218
  };
@@ -2239,40 +2233,41 @@ function useWallet() {
2239
2233
  disconnect: () => disconnect(id),
2240
2234
  reconnect: () => reconnect(id),
2241
2235
  setActiveProvider: () => setActive(id),
2242
- setActiveAccount: (account) => selectActiveAccount(id, account),
2236
+ setActiveAccount: (account) => selectActiveAccount(id, account)
2243
2237
  };
2244
2238
  }));
2239
+ // eslint-disable-next-line react-hooks/exhaustive-deps
2245
2240
  }, [clients, connectedAccounts, connectedActiveAccounts, activeAccount]);
2246
2241
  const getClient = async (id) => {
2247
2242
  if (!id)
2248
- throw new Error("Provier ID is missing.");
2243
+ throw new Error('Provier ID is missing.');
2249
2244
  const client = await clients?.[id];
2250
2245
  if (!client)
2251
- throw new Error("Client not found for ID");
2246
+ throw new Error('Client not found for ID');
2252
2247
  return client;
2253
2248
  };
2254
2249
  const status = useMemo(() => {
2255
2250
  if (activeAccount === undefined) {
2256
- return "initializing";
2251
+ return 'initializing';
2257
2252
  }
2258
2253
  if (activeAccount === null && connectedAccounts.length) {
2259
- return "connected";
2254
+ return 'connected';
2260
2255
  }
2261
2256
  if (activeAccount === null && !connectedAccounts.length) {
2262
- return "disconnected";
2257
+ return 'disconnected';
2263
2258
  }
2264
2259
  if (activeAccount && activeAccount.address) {
2265
- return "active";
2260
+ return 'active';
2266
2261
  }
2267
- return "error";
2268
- }, [activeAccount]);
2262
+ return 'error';
2263
+ }, [activeAccount, connectedAccounts.length]);
2269
2264
  const isActive = useMemo(() => {
2270
- return status === "active";
2265
+ return status === 'active';
2271
2266
  }, [status]);
2272
2267
  const isReady = useMemo(() => {
2273
- return status !== "initializing";
2268
+ return status !== 'initializing';
2274
2269
  }, [status]);
2275
- const selectActiveAccount = async (providerId, address) => {
2270
+ const selectActiveAccount = (providerId, address) => {
2276
2271
  try {
2277
2272
  const account = connectedActiveAccounts.find((acct) => acct.address === address && acct.providerId === providerId);
2278
2273
  if (!account) {
@@ -2289,7 +2284,7 @@ function useWallet() {
2289
2284
  const walletClient = await getClient(id);
2290
2285
  const walletInfo = await walletClient?.connect(() => clearAccounts(id));
2291
2286
  if (!walletInfo || !walletInfo.accounts.length) {
2292
- throw new Error("Failed to connect " + id);
2287
+ throw new Error('Failed to connect ' + id);
2293
2288
  }
2294
2289
  _setActiveAccount(walletInfo.accounts[0]);
2295
2290
  addAccounts(walletInfo.accounts);
@@ -2308,13 +2303,13 @@ function useWallet() {
2308
2303
  }
2309
2304
  catch (e) {
2310
2305
  console.error(e);
2311
- disconnect(id);
2306
+ await disconnect(id);
2312
2307
  }
2313
2308
  };
2314
2309
  const disconnect = async (id) => {
2315
2310
  try {
2316
2311
  const walletClient = await getClient(id);
2317
- walletClient?.disconnect();
2312
+ await walletClient?.disconnect();
2318
2313
  }
2319
2314
  catch (e) {
2320
2315
  console.error(e);
@@ -2323,7 +2318,7 @@ function useWallet() {
2323
2318
  clearAccounts(id);
2324
2319
  }
2325
2320
  };
2326
- const setActive = async (id) => {
2321
+ const setActive = (id) => {
2327
2322
  try {
2328
2323
  const accounts = getAccountsByProvider(id);
2329
2324
  _setActiveAccount(accounts[0]);
@@ -2335,7 +2330,7 @@ function useWallet() {
2335
2330
  const signTransactions = async (transactions, indexesToSign, returnGroup = true) => {
2336
2331
  const walletClient = await getClient(activeAccount?.providerId);
2337
2332
  if (!walletClient || !activeAccount?.address) {
2338
- throw new Error("No wallet found.");
2333
+ throw new Error('No wallet found.');
2339
2334
  }
2340
2335
  const signedTransactions = await walletClient.signTransactions(connectedActiveAccounts.map((acct) => acct.address), transactions, indexesToSign, returnGroup);
2341
2336
  return signedTransactions;
@@ -2352,7 +2347,7 @@ function useWallet() {
2352
2347
  };
2353
2348
  const getAccountInfo = async () => {
2354
2349
  if (!activeAccount)
2355
- throw new Error("No selected account.");
2350
+ throw new Error('No selected account.');
2356
2351
  const walletClient = await getClient(activeAccount.providerId);
2357
2352
  const accountInfo = await walletClient?.getAccountInfo(activeAccount.address);
2358
2353
  return accountInfo;
@@ -2362,7 +2357,7 @@ function useWallet() {
2362
2357
  };
2363
2358
  const getAssets = async () => {
2364
2359
  if (!activeAccount)
2365
- throw new Error("No selected account.");
2360
+ throw new Error('No selected account.');
2366
2361
  const walletClient = await getClient(activeAccount.providerId);
2367
2362
  return await walletClient?.getAssets(activeAccount.address);
2368
2363
  };
@@ -2386,26 +2381,26 @@ function useWallet() {
2386
2381
  getAddress,
2387
2382
  groupTransactionsBySender,
2388
2383
  getAccountInfo,
2389
- getAssets,
2384
+ getAssets
2390
2385
  };
2391
2386
  }
2392
2387
 
2393
2388
  const initializeProviders = (providers, nodeConfig, algosdkStatic) => {
2394
2389
  const initializedProviders = {};
2395
- if (typeof window === "undefined") {
2396
- console.warn("Window object is not available, skipping initialization.");
2390
+ if (typeof window === 'undefined') {
2391
+ console.warn('Window object is not available, skipping initialization.');
2397
2392
  return initializedProviders;
2398
2393
  }
2399
- const { network = DEFAULT_NETWORK$1, nodeServer = DEFAULT_NODE_BASEURL, nodePort = DEFAULT_NODE_PORT, nodeToken = DEFAULT_NODE_TOKEN, } = nodeConfig || {};
2394
+ const { network = DEFAULT_NETWORK$1, nodeServer = DEFAULT_NODE_BASEURL, nodePort = DEFAULT_NODE_PORT, nodeToken = DEFAULT_NODE_TOKEN } = nodeConfig || {};
2400
2395
  if (!providers || providers.length === 0)
2401
2396
  for (const [id, client] of Object.entries(allClients)) {
2402
- if (id === "kmd" || id === "mnemonic") {
2397
+ if (id === 'kmd' || id === 'mnemonic') {
2403
2398
  continue;
2404
2399
  }
2405
2400
  initializedProviders[id] = client.init({
2406
2401
  network,
2407
2402
  algodOptions: [nodeToken, nodeServer, nodePort],
2408
- algosdkStatic: algosdkStatic,
2403
+ algosdkStatic: algosdkStatic
2409
2404
  });
2410
2405
  }
2411
2406
  if (providers) {
@@ -2413,7 +2408,7 @@ const initializeProviders = (providers, nodeConfig, algosdkStatic) => {
2413
2408
  initializedProviders[id] = allClients[id].init({
2414
2409
  network,
2415
2410
  algodOptions: [nodeToken, nodeServer, nodePort],
2416
- algosdkStatic: algosdkStatic,
2411
+ algosdkStatic: algosdkStatic
2417
2412
  });
2418
2413
  }
2419
2414
  }
@@ -2437,7 +2432,7 @@ const reconnectProviders = async (providers) => {
2437
2432
  const id = c?.metadata.id;
2438
2433
  // Only reconnect to active providers
2439
2434
  if (id && isActiveProvider(id)) {
2440
- c.reconnect(() => clearAccounts(id));
2435
+ await c.reconnect(() => clearAccounts(id));
2441
2436
  }
2442
2437
  }
2443
2438
  }
@@ -2447,8 +2442,8 @@ const reconnectProviders = async (providers) => {
2447
2442
  };
2448
2443
 
2449
2444
  function encodeNFDTransactionsArray(transactionsArray) {
2450
- return transactionsArray.map(([type, txn]) => {
2451
- return new Uint8Array(Buffer.from(txn, "base64"));
2445
+ return transactionsArray.map(([_type, txn]) => {
2446
+ return new Uint8Array(Buffer.from(txn, 'base64'));
2452
2447
  });
2453
2448
  }
2454
2449