@huma-finance/widgets 0.0.62-beta.611 → 0.0.62-beta.616

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 (40) hide show
  1. package/API.md +0 -185
  2. package/dist/cjs/index.cjs +481 -1661
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/index.d.ts +8 -116
  5. package/dist/index.js +484 -1661
  6. package/dist/index.js.map +1 -1
  7. package/package.json +9 -12
  8. package/src/components/InputAmountModal.tsx +2 -12
  9. package/src/components/Lend/addRedemptionV2/2-ChooseAmount.tsx +6 -1
  10. package/src/components/Lend/supplyV2/6-Success.tsx +10 -8
  11. package/src/components/Lend/supplyV2/7-Notifications.tsx +6 -1
  12. package/src/components/Notifi/NotifiContextWrapper.tsx +57 -0
  13. package/src/components/Notifi/NotifiSubscriptionModal.tsx +118 -113
  14. package/src/components/WidgetWrapper.tsx +4 -6
  15. package/src/hooks/useNotifi.ts +28 -17
  16. package/src/index.tsx +7 -124
  17. package/src/store/widgets.reducers.ts +0 -5
  18. package/src/store/widgets.store.ts +0 -1
  19. package/src/theme/coreThemeConstants.ts +1 -1
  20. package/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx +0 -86
  21. package/src/components/CreditLine/solanaBorrow/2-ApproveAllowance.tsx +0 -87
  22. package/src/components/CreditLine/solanaBorrow/index.tsx +0 -96
  23. package/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx +0 -114
  24. package/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx +0 -183
  25. package/src/components/Lend/solanaAddRedemption/3-Transfer.tsx +0 -102
  26. package/src/components/Lend/solanaAddRedemption/4-Done.tsx +0 -29
  27. package/src/components/Lend/solanaAddRedemption/index.tsx +0 -140
  28. package/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx +0 -114
  29. package/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx +0 -99
  30. package/src/components/Lend/solanaCancelRedemption/3-Done.tsx +0 -55
  31. package/src/components/Lend/solanaCancelRedemption/index.tsx +0 -152
  32. package/src/components/Lend/solanaSupply/1-ChooseTranche.tsx +0 -116
  33. package/src/components/Lend/solanaSupply/2-Evaluation.tsx +0 -0
  34. package/src/components/Lend/solanaSupply/3-ChooseAmount.tsx +0 -130
  35. package/src/components/Lend/solanaSupply/4-Transfer.tsx +0 -89
  36. package/src/components/Lend/solanaSupply/5-Success.tsx +0 -50
  37. package/src/components/Lend/solanaSupply/index.tsx +0 -143
  38. package/src/components/SolanaTxDoneModal.tsx +0 -115
  39. package/src/components/SolanaTxSendModal.tsx +0 -61
  40. package/src/components/SolanaViewOnExplorer.tsx +0 -29
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { JsonRpcProvider } from '@ethersproject/providers';
2
- import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, usePoolUnderlyingToken, useFactoring, useHumaProgram, useLenderAccounts, useTokenAccount, useTrancheMintAccounts, useTrancheTokenAccounts, useBorrowerAccounts, usePoolUnderlyingTokenAccount, Provider as Provider$1 } from '@huma-finance/web-shared';
2
+ import { txAtom, useMQ, sendTxAtom, usePoolUnderlyingTokenContract, useMount, usePoolInfo, useAccountStats, usePoolInfoV2, usePoolUnderlyingTokenInfoV2, usePoolSafeAllowanceV2, useAuthErrorHandling, useCLFeeManager, useCLPoolAllowance, usePoolContract, useCreditContractV2, useCreditStatsV2, useFirstLossCoverContractV2, useFirstLossCoverRequirementV2, useFirstLossCoverAllowanceV2, useFeeManager, useInvoiceNFTContract, useRFPoolAllowance, useLenderDepositRecordV2, useLPConfigV2, useNextEpochStartTimeV2, useTrancheVaultContractV2, useCancellableRedemptionInfoV2, useParamsSearch, usePoolAllowance, useLenderApproved, useLenderPosition, useWithdrawlLockoutInSeconds, usePoolUnderlyingTokenBalance, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, usePoolUnderlyingToken, useFactoring, Provider as Provider$1 } from '@huma-finance/web-shared';
3
3
  import { useTheme, css, Box, Typography, Tooltip, Button, Dialog, Slider, Input, Divider, TextField, FormControl, FormLabel, RadioGroup, FormControlLabel, Radio, Snackbar, Alert, Link, Skeleton, TablePagination, LinearProgress, createTheme, ThemeProvider } from '@mui/material';
4
4
  import { useAtom, Provider as Provider$2 } from 'jotai';
5
5
  import * as React from 'react';
6
6
  import React__default, { useCallback, useState, useEffect, useMemo, useRef } from 'react';
7
7
  import { useSelector, useDispatch, Provider } from 'react-redux';
8
- import { supportedChainId, isTxFailed, getExplorerUrl, openInNewTab, TxStateType, decodeLogs, ERC20_ABI, downScale, formatMoney, POOL_NAME, POOL_TYPE, getERC20Contract, checkIsDev, EAService, EARejectionError, EARejectMessage, EARejectReason, timeUtil, formatNumber, doesChainSupportNotifi, getBlockchainConfigFromChain, CreditState, isEmpty, CreditStateV2, upScale, toBigNumber, TRANSFER_ABI, FirstLossCoverIndex, combineStyles, timestampToLL, getTrancheAssetsAndShares, IdentityService, CHAINS, configUtil, IdentityServiceV2, IdentityVerificationStatusV2, CampaignService, CAMPAIGN_REFERENCE_CODE, KYC_PROVIDER, formatAmount, getTrancheVaultContractV2, getTrancheRedemptionStatusV2, getPoolContractV2, CURRENCY_CODE, CreditEventText, SuperfluidPoolProcessor_ABI, hasRFActiveLoan, getWalletAddressAbbr, PoolMap, CreditEvent, SolanaTokenUtils, getSolanaExplorerUrl, getTokenAccounts, getSentinelAddress } from '@huma-finance/shared';
8
+ import { supportedChainId, isTxFailed, getExplorerUrl, openInNewTab, TxStateType, decodeLogs, ERC20_ABI, downScale, formatMoney, POOL_NAME, POOL_TYPE, getERC20Contract, checkIsDev, EAService, EARejectionError, EARejectMessage, EARejectReason, timeUtil, formatNumber, doesChainSupportNotifi, CreditState, isEmpty, CreditStateV2, upScale, toBigNumber, TRANSFER_ABI, FirstLossCoverIndex, combineStyles, timestampToLL, getTrancheAssetsAndShares, IdentityService, CHAINS, configUtil, IdentityServiceV2, IdentityVerificationStatusV2, CampaignService, CAMPAIGN_REFERENCE_CODE, KYC_PROVIDER, formatAmount, getTrancheVaultContractV2, getTrancheRedemptionStatusV2, getPoolContractV2, CURRENCY_CODE, CreditEventText, SuperfluidPoolProcessor_ABI, hasRFActiveLoan, getWalletAddressAbbr, PoolMap, CreditEvent, ChainEnum, getBlockchainConfigFromChain } from '@huma-finance/shared';
9
9
  import { useWeb3React } from '@web3-react/core';
10
10
  import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';
11
11
  import { useResetAtom } from 'jotai/utils';
@@ -15,16 +15,17 @@ import { css as css$1 } from '@emotion/react';
15
15
  import ChevronLeftOutlinedIcon from '@mui/icons-material/ChevronLeftOutlined';
16
16
  import CloseIcon from '@mui/icons-material/Close';
17
17
  import { MaxUint256 } from '@ethersproject/constants';
18
- import { BigNumber, ethers, Contract } from 'ethers';
18
+ import { BigNumber, ethers, Contract, providers } from 'ethers';
19
19
  import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
20
20
  import ArrowDropUpIcon from '@mui/icons-material/ArrowDropUp';
21
- import { newFrontendClient } from '@notifi-network/notifi-frontend-client';
21
+ import { useNotifiFrontendClientContext, useNotifiTenantConfigContext, useNotifiTopicContext, useNotifiTargetContext, useNotifiUserSettingContext, FtuStage, NotifiContextProvider } from '@notifi-network/notifi-react';
22
+ import '@notifi-network/notifi-frontend-client';
22
23
  import { NumericFormat } from 'react-number-format';
23
24
  import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
24
25
  import dayjs from 'dayjs';
25
26
  import Persona from 'persona';
26
- import moment from 'moment';
27
27
  import { drawdownWithReceivable, HumaContext, HumaReceivableFactory, makePaymentWithReceivable, makePrincipalPaymentAndDrawdownWithReceivable, SubgraphService } from '@huma-finance/sdk';
28
+ import moment from 'moment';
28
29
  import { gql, useQuery, ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
29
30
  import Table from '@mui/material/Table';
30
31
  import TableBody from '@mui/material/TableBody';
@@ -33,10 +34,7 @@ import TableContainer from '@mui/material/TableContainer';
33
34
  import TableHead from '@mui/material/TableHead';
34
35
  import TableRow from '@mui/material/TableRow';
35
36
  import { getAddress } from '@ethersproject/address';
36
- import { BN } from '@coral-xyz/anchor';
37
- import { TOKEN_2022_PROGRAM_ID, createApproveCheckedInstruction } from '@solana/spl-token';
38
- import { useWallet, useConnection } from '@solana/wallet-adapter-react';
39
- import { Transaction, PublicKey } from '@solana/web3.js';
37
+ import { arrayify } from '@ethersproject/bytes';
40
38
 
41
39
  function _taggedTemplateLiteral(strings, raw) {
42
40
  if (!raw) {
@@ -99,7 +97,6 @@ const widgetSlice = createSlice({
99
97
  state.withdrawShares = undefined;
100
98
  state.redeemAmount = undefined;
101
99
  state.redeemShares = undefined;
102
- state.solanaSignature = undefined;
103
100
  },
104
101
  setStep: (state, _ref) => {
105
102
  let {
@@ -190,16 +187,10 @@ const widgetSlice = createSlice({
190
187
  } = _ref12;
191
188
  state.multisend = payload;
192
189
  },
193
- setSolanaSignature: (state, _ref13) => {
190
+ setError: (state, _ref13) => {
194
191
  let {
195
192
  payload
196
193
  } = _ref13;
197
- state.solanaSignature = payload;
198
- },
199
- setError: (state, _ref14) => {
200
- let {
201
- payload
202
- } = _ref14;
203
194
  state.errorMessage = payload.errorMessage;
204
195
  state.errorReason = payload.errorReason;
205
196
  state.step = WIDGET_STEP.Error;
@@ -220,8 +211,7 @@ const {
220
211
  setWithdrawAmount,
221
212
  setWithdrawShares,
222
213
  setRedeemAmount,
223
- setRedeemShares,
224
- setSolanaSignature
214
+ setRedeemShares
225
215
  } = widgetSlice.actions;
226
216
  var widgetsReducers = widgetSlice.reducer;
227
217
 
@@ -231,7 +221,7 @@ var SorryImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAFTCAYAAAC52Y
231
221
 
232
222
  var AutoPaybackImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbcAAAFkCAYAAACjPXVqAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAJL6SURBVHgB7Z0JYBNl+sbfaQu9S7hvGu6blhuk2nCoKCpVUVfdXYq7KuquoKviqru064nrCnU90PW/tIsHIkirAgJCUwXkppX7bApyI6SUFgql+c/7zUwySXNOJpmkfX+7sWmSljRfMs+83/d8zwtAEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBeAsHBEEQRL1Bx4NfZBeIjIzUS/dfu3bNJHs4XjcjUM8gcSPUIOO5556bGRcXl7p+/fr8lStXFvC3GUH44BAEoTKigOl50Uq1WCypffr0SW7btm1q+/btdbGxsbqOHTtCkyZN2GM7derk9HccOXIEysvL4cKFC+w6r2/FFRUV5nXr1pXU1taa+IcU4yVchY/EjfALvV4/c968eVkGgwFycnIgKysLxM+Cib8M5C/17oyQIIINr2UoZAYUsJSUlHResFL79esH/fv3Z+IlCZla7NixgwkeL3RQVlZW/N133xVzHFfAV30odiYgiHrOzOLiYgvCi5qF/97xkgUEQSiCFzRDs2bN5tx7772l77//vuXHH3+0aAn++3/9618tt99+eyH/3Kaj4AJBeACnGAziRQ/hgX727NnsTT9nzhxJzM7zFZyFr+ak70uBIAivQUHjK7I506dPP//tt99a+CrJEorw1ZwFBXfkyJEodJkkdIQjug5t9DOfefj1819/tN2Cl1nPzbM8fN9z29u27DCHvz8VQpQnn3yyFN/kpaWlFv6NLQmZfsaMGed5pNvwogOCIFyC62d8hTYzIyPjPFZHoSporvj5558tjz/+uIX/G+aRyBGMLh17Fm/9+rzlwBqL08snbxdafn/nk6X9ew6eB0JVFxLw1dlMFDVErNKYsOF9zzzzTD7e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Pc6+xkYkMiOM3R5ti/RrHPbw8V9fLb0711RFIcmEZ0jcCIJIbR2tN3SPGzi5Z/zg1EFNxjLRYchUS/gvZ/2vfTUnXyATzSicnVPT7qqjSUSen8mEMyLCJpBiL7xtF1bDB0f/NJC/sRgIwgMkbgRByNGDaEjpL3NeMura8+tsJ5D3pZOwbSIHuxtlJhFhWrPWIqme7V/hf1GtOFWZ+8uLxevOLx4IBOEFJG4EQbhCz18M1zW9fWJybJ+MgUljoUUjMdxZfIB9tJdYgbH0kwjZ9gIpF9NB+RymIq2PlPbayTaSowvzr/vGkZGE8BoSN4IgvAGdl4YBiTdkdIjpPrFfYpoODSkIZ9+VQLY/zhl1I76s1Arf2wTONiu6/vwSmHfshc5Ae9sILyFxIwhCCcx52TV2oGFwE2zCOky41SJtCHcyFelYxcldKPKN4Q4Px5tfPXhProm6bRM+QOJGEIS/GLrGp2boY/pO7J0wXI+GFCFdxJX5RI6TSs7hK3YT/+fhyaOBum0TPkDiRhCEmmAciWFs89/w63T9DL3ih0Fz1oTV8zQlYlfRsU5uHHx6/DXTml9pbxvhGyRuBEEECj1/MQxpcvPklMQbWLfx5qLz0rGas24Yt6alCPvosJHq8/tuJCMJ4TMkbgRBBAM9fzH0Sbhu4tAmNxk6x/bTdYrtbbX5u+L7s5+aPj/xGk5JmoAgfIDEjSAILWBNWAckpqfzU5f6XnxV57gut+z0x+bFp2ajsNGmbcJnSNwIgtAa1oS1d/yIlMYRMalXai+bN5qX5Z27emIOUMVGEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEAQRXP4f8kfGser8rBoAAAAASUVORK5CYII=";
233
223
 
234
- var _templateObject$v, _templateObject2$s, _templateObject3$m, _templateObject4$e, _templateObject5$8, _templateObject6$7, _templateObject7$6, _templateObject8$3;
224
+ var _templateObject$r, _templateObject2$o, _templateObject3$i, _templateObject4$d, _templateObject5$7, _templateObject6$6, _templateObject7$5, _templateObject8$3;
235
225
  function ErrorModal(_ref) {
236
226
  let {
237
227
  title,
@@ -248,13 +238,13 @@ function ErrorModal(_ref) {
248
238
  errorReason = 'Oops! Something went wrong';
249
239
  }
250
240
  const styles = {
251
- wrapper: css(_templateObject$v || (_templateObject$v = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
252
- header: css(_templateObject2$s || (_templateObject2$s = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
253
- sorry: css(_templateObject3$m || (_templateObject3$m = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
254
- content: css(_templateObject4$e || (_templateObject4$e = _taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n display: inline-table;\n padding: ", ";\n position: relative;\n margin-top: ", ";\n height: 79px;\n "])), theme.spacing(2, 0), theme.spacing(9)),
255
- errorIcon: css(_templateObject5$8 || (_templateObject5$8 = _taggedTemplateLiteral(["\n position: absolute;\n font-size: 20px;\n color: ", ";\n margin: ", ";\n "])), theme.palette.error.main, theme.spacing(0, 2)),
256
- messageWrapper: css(_templateObject6$7 || (_templateObject6$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n padding-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(6)),
257
- errorMessage: css(_templateObject7$6 || (_templateObject7$6 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: 14px;\n font-weight: 400;\n color: ", ";\n cursor: pointer;\n display: -webkit-box;\n line-height: 16px;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: ", ";\n "])), theme.spacing(0.5), theme.palette.text.primary, theme.spacing(2)),
241
+ wrapper: css(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
242
+ header: css(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
243
+ sorry: css(_templateObject3$i || (_templateObject3$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
244
+ content: css(_templateObject4$d || (_templateObject4$d = _taggedTemplateLiteral(["\n box-sizing: border-box;\n width: 100%;\n display: inline-table;\n padding: ", ";\n position: relative;\n margin-top: ", ";\n height: 79px;\n "])), theme.spacing(2, 0), theme.spacing(9)),
245
+ errorIcon: css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n position: absolute;\n font-size: 20px;\n color: ", ";\n margin: ", ";\n "])), theme.palette.error.main, theme.spacing(0, 2)),
246
+ messageWrapper: css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n padding-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(6)),
247
+ errorMessage: css(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-size: 14px;\n font-weight: 400;\n color: ", ";\n cursor: pointer;\n display: -webkit-box;\n line-height: 16px;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: ", ";\n "])), theme.spacing(0.5), theme.palette.text.primary, theme.spacing(2)),
258
248
  okButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
259
249
  };
260
250
  const handleCloseModal = useCallback(() => {
@@ -1643,7 +1633,7 @@ function HumaLoading(_ref2) {
1643
1633
  });
1644
1634
  }
1645
1635
 
1646
- var _templateObject$u, _templateObject2$r, _templateObject3$l, _templateObject4$d;
1636
+ var _templateObject$q, _templateObject2$n, _templateObject3$h, _templateObject4$c;
1647
1637
  function WrapperModal(_ref) {
1648
1638
  let {
1649
1639
  title,
@@ -1652,10 +1642,10 @@ function WrapperModal(_ref) {
1652
1642
  } = _ref;
1653
1643
  const theme = useTheme();
1654
1644
  const styles = {
1655
- wrapper: css(_templateObject$u || (_templateObject$u = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1656
- header: css(_templateObject2$r || (_templateObject2$r = _taggedTemplateLiteral(["\n ", ";\n font-weight: 700;\n font-size: 20px;\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1657
- content: css(_templateObject3$l || (_templateObject3$l = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary),
1658
- bottom: css(_templateObject4$d || (_templateObject4$d = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1645
+ wrapper: css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1646
+ header: css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteral(["\n ", ";\n font-weight: 700;\n font-size: 20px;\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1647
+ content: css(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary),
1648
+ bottom: css(_templateObject4$c || (_templateObject4$c = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1659
1649
  };
1660
1650
  return jsxs(Box, {
1661
1651
  css: styles.wrapper,
@@ -1670,7 +1660,7 @@ function WrapperModal(_ref) {
1670
1660
  });
1671
1661
  }
1672
1662
 
1673
- var _templateObject$t, _templateObject2$q;
1663
+ var _templateObject$p, _templateObject2$m;
1674
1664
  function LoadingModal(_ref) {
1675
1665
  let {
1676
1666
  title,
@@ -1680,8 +1670,8 @@ function LoadingModal(_ref) {
1680
1670
  } = _ref;
1681
1671
  const theme = useTheme();
1682
1672
  const styles = {
1683
- loader: css(_templateObject$t || (_templateObject$t = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
1684
- bottom: css(_templateObject2$q || (_templateObject2$q = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1673
+ loader: css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
1674
+ bottom: css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
1685
1675
  };
1686
1676
  return jsxs(WrapperModal, {
1687
1677
  title: title,
@@ -1708,8 +1698,7 @@ function WidgetWrapper(_ref) {
1708
1698
  const theme = useTheme();
1709
1699
  const dispatch = useAppDispatch();
1710
1700
  const {
1711
- step,
1712
- solanaSignature
1701
+ step
1713
1702
  } = useAppSelector(selectWidgetState);
1714
1703
  const [{
1715
1704
  state,
@@ -1725,14 +1714,12 @@ function WidgetWrapper(_ref) {
1725
1714
  }
1726
1715
  }, [dispatch, failReason, state]);
1727
1716
  useEffect(() => {
1728
- if (step === WIDGET_STEP.Done && (txReceipt || solanaSignature)) {
1729
- if (handleSuccess && txReceipt) {
1717
+ if (step === WIDGET_STEP.Done && txReceipt) {
1718
+ if (handleSuccess) {
1730
1719
  handleSuccess(txReceipt.blockNumber);
1731
- } else if (handleSuccess && solanaSignature) {
1732
- handleSuccess(0); // solana tx doesn't have block number
1733
1720
  }
1734
1721
  }
1735
- }, [handleSuccess, solanaSignature, step, txReceipt]);
1722
+ }, [handleSuccess, step, txReceipt]);
1736
1723
  const handleCloseModal = useCallback(() => {
1737
1724
  reset();
1738
1725
  dispatch(resetState());
@@ -1759,7 +1746,7 @@ function WidgetWrapper(_ref) {
1759
1746
  });
1760
1747
  }
1761
1748
 
1762
- var _templateObject$s;
1749
+ var _templateObject$o;
1763
1750
  function BottomButton(_ref) {
1764
1751
  let {
1765
1752
  variant,
@@ -1767,7 +1754,7 @@ function BottomButton(_ref) {
1767
1754
  onClick,
1768
1755
  children
1769
1756
  } = _ref;
1770
- const styles = css(_templateObject$s || (_templateObject$s = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
1757
+ const styles = css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
1771
1758
  return jsx(Box, {
1772
1759
  css: styles,
1773
1760
  children: jsx(Button, {
@@ -1800,7 +1787,7 @@ function ViewOnExplorer(_ref) {
1800
1787
  });
1801
1788
  }
1802
1789
 
1803
- var _templateObject$r, _templateObject2$p;
1790
+ var _templateObject$n, _templateObject2$l;
1804
1791
  function ApproveAllowanceModal(_ref) {
1805
1792
  let {
1806
1793
  poolInfo,
@@ -1838,8 +1825,8 @@ function ApproveAllowanceModal(_ref) {
1838
1825
  }
1839
1826
  }, [handleSuccess, reset, resetAfterSuccess, state, symbol]);
1840
1827
  const styles = {
1841
- iconWrapper: css(_templateObject$r || (_templateObject$r = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
1842
- description: css(_templateObject2$p || (_templateObject2$p = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
1828
+ iconWrapper: css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
1829
+ description: css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
1843
1830
  };
1844
1831
  const sendIncreaseAllowance = useCallback(async () => {
1845
1832
  const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
@@ -1891,7 +1878,7 @@ function ApproveAllowanceModal(_ref) {
1891
1878
  });
1892
1879
  }
1893
1880
 
1894
- function ApproveAllowance$d(_ref) {
1881
+ function ApproveAllowance$c(_ref) {
1895
1882
  let {
1896
1883
  poolInfo,
1897
1884
  amount
@@ -1909,7 +1896,7 @@ function ApproveAllowance$d(_ref) {
1909
1896
  });
1910
1897
  }
1911
1898
 
1912
- var _templateObject$q, _templateObject2$o, _templateObject3$k, _templateObject4$c, _templateObject5$7, _templateObject6$6;
1899
+ var _templateObject$m, _templateObject2$k, _templateObject3$g, _templateObject4$b, _templateObject5$6, _templateObject6$5;
1913
1900
  function TxDoneModal(_ref) {
1914
1901
  let {
1915
1902
  content,
@@ -1921,12 +1908,12 @@ function TxDoneModal(_ref) {
1921
1908
  const dispatch = useAppDispatch();
1922
1909
  const reset = useResetAtom(txAtom);
1923
1910
  const styles = {
1924
- wrapper: css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1925
- header: css(_templateObject2$o || (_templateObject2$o = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1926
- content: css(_templateObject3$k || (_templateObject3$k = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
1927
- subContent: css(_templateObject4$c || (_templateObject4$c = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
1928
- check: css(_templateObject5$7 || (_templateObject5$7 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
1929
- doneButton: css(_templateObject6$6 || (_templateObject6$6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "])))
1911
+ wrapper: css(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1912
+ header: css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
1913
+ content: css(_templateObject3$g || (_templateObject3$g = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
1914
+ subContent: css(_templateObject4$b || (_templateObject4$b = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
1915
+ check: css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
1916
+ doneButton: css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "])))
1930
1917
  };
1931
1918
  const handleCloseModal = useCallback(() => {
1932
1919
  reset();
@@ -1968,7 +1955,7 @@ function TxDoneModal(_ref) {
1968
1955
  });
1969
1956
  }
1970
1957
 
1971
- function Success$f(_ref) {
1958
+ function Success$e(_ref) {
1972
1959
  let {
1973
1960
  poolInfo,
1974
1961
  handleAction
@@ -2033,10 +2020,10 @@ function CreditLineApprove(_ref) {
2033
2020
  loadingTitle: "Approve Allowance",
2034
2021
  handleClose: handleClose,
2035
2022
  handleSuccess: handleSuccess,
2036
- children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$d, {
2023
+ children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$c, {
2037
2024
  poolInfo: poolInfo,
2038
2025
  amount: amount
2039
- }), step === WIDGET_STEP.Done && jsx(Success$f, {
2026
+ }), step === WIDGET_STEP.Done && jsx(Success$e, {
2040
2027
  poolInfo: poolInfo,
2041
2028
  handleAction: handleClose
2042
2029
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -2047,7 +2034,7 @@ function CreditLineApprove(_ref) {
2047
2034
  });
2048
2035
  }
2049
2036
 
2050
- var _templateObject$p, _templateObject2$n;
2037
+ var _templateObject$l, _templateObject2$j;
2051
2038
  function ApproveAllowanceModalV2(_ref) {
2052
2039
  let {
2053
2040
  poolInfo,
@@ -2082,8 +2069,8 @@ function ApproveAllowanceModalV2(_ref) {
2082
2069
  }
2083
2070
  }, [handleSuccess, reset, resetAfterSuccess, state]);
2084
2071
  const styles = {
2085
- iconWrapper: css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
2086
- description: css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
2072
+ iconWrapper: css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
2073
+ description: css(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n "])), theme.spacing(4), theme.palette.text.secondary, theme.spacing(0, 1))
2087
2074
  };
2088
2075
  const sendIncreaseAllowance = useCallback(async () => {
2089
2076
  const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
@@ -2132,7 +2119,7 @@ function ApproveAllowanceModalV2(_ref) {
2132
2119
  });
2133
2120
  }
2134
2121
 
2135
- function ApproveAllowance$c(_ref) {
2122
+ function ApproveAllowance$b(_ref) {
2136
2123
  let {
2137
2124
  poolInfo,
2138
2125
  poolUnderlyingToken
@@ -2150,7 +2137,7 @@ function ApproveAllowance$c(_ref) {
2150
2137
  });
2151
2138
  }
2152
2139
 
2153
- function Success$e(_ref) {
2140
+ function Success$d(_ref) {
2154
2141
  let {
2155
2142
  handleAction
2156
2143
  } = _ref;
@@ -2202,10 +2189,10 @@ function AutoPaybackV2(_ref) {
2202
2189
  loadingTitle: "Auto Payback",
2203
2190
  handleClose: handleClose,
2204
2191
  handleSuccess: handleSuccess,
2205
- children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$c, {
2192
+ children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$b, {
2206
2193
  poolInfo: poolInfo,
2207
2194
  poolUnderlyingToken: poolUnderlyingToken
2208
- }), step === WIDGET_STEP.Done && jsx(Success$e, {
2195
+ }), step === WIDGET_STEP.Done && jsx(Success$d, {
2209
2196
  handleAction: handleClose
2210
2197
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
2211
2198
  title: "Auto Payback",
@@ -2260,17 +2247,17 @@ const useEA = () => {
2260
2247
 
2261
2248
  var spinner = "data:image/gif;base64,R0lGODlhuQEjAfcAAFFRUVFRUVFRUVFRUVNTU1dXV1hYWFlZWVlZWVxcXGtra4ODg5GRkZmZmZmZmZmZmZqampubm52dnaGhoaioqLCwsLe3t7y8vL29vb29vb29vb6+vr6+vr6+vr+/v8HBwcTExMjIyMvLy83Nzc3Nzc3Nzc3Nzc7Ozs7Ozs7OztHR0dfX1+7u7vj4+P7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBQCZACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBAAj+ADMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJ3qHAgAIItKhABSgixkCLNNKoAAoxEsZijTwiwEGOge3YI484AtlXBUMOqYCRaKEAAQNQwuiQkEnW+COTY6mowJZcKgABQxxUOSQDWIrFwQJdpkmmQhCI2eOSZX6FApppqsmmmz3G+dWKddZ55UFt4mmjnl2h0Gefax4UpqAtLkAoVxAc2qdCVLr55aNa8Slpl0UeNKOgcCrkJJQQdIqpUZpuuqWpBlWa5KX+CLUpwKy0IiDlqUSlqiqrBXHgKo+JHqQArcTSGiquQVWgKpeOLmRolcEahECx1ApwLLI/0akqrAsFWuMCvBI0bLXUNovtT8qqaq5DKFRQAQfhElQBueT+eW5PutYZb0bj0lvstffuFGmfC9jbEQr+khswUBykugC3H82bMLX7LowTChiXBMHE1Bps8Vgbc0ysxx+HhbDItFZcclco07ryWQu0HO3LJY1KqsoqnSwyzSk9CeXPDEAMEwMiC81zSEAnHXRNRCds9NEf+az0z0+3FDK5t0ItkopTJ33T1bMiULXWHUnddZQ5ZUz2SWcnPfbaWLUN9NtwWyU31XWDZfb+2STnjRXXcvutt9xZCw7p2YUbfrjSiSveFQcQRN6345RXbvnlmGeu+eacd+7556CHLvp37UYOQQU4j15UBaa33rjqR7HeuuuwLwX57LOnXjtPuOP++u5A9Y478EcJPzvxRhnfOvJFKR/578zvdLvxukdvk/LQWy+w8NobJbvpk3f/E8bVi2/++einr/767LfPHAocxB+/+zzJbz+89ON0//3l52/S/vfzH03gB0D5CXAmBbSfRMjXvwM6K4HzgwgDyefAjBAwgRKcIAUreBEIVk+DDOTgRS64vwyCsIEiLAgJDWhCEKYQIxjD3wJPiMIXboSGNbShRk6ow5dosIeSMVEbEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pTdCwgAIfkECQUAmQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYc9PT09PT09PT09PT1CQkJKSkpPT09QUFBRUVFTU1NYWFhdXV1iYmJmZmZpaWlpaWlpaWlsbGxycnJ/f3+MjIyampqqqqqvr6+xsbGxsbGxsbGxsbGysrKysrK1tbW4uLi7u7u8vLy9vb29vb2+vr6+vr6+vr7AwMDExMTHx8fKysrMzMzQ0NDV1dXi4uLv7+/7+/v+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gAzCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiid+VQMEEE1DQAYqJlSDBAzTW+EAFMBZWgY08PjBBjoJ10GOPPwLpFwtDDomjkWix0EEHJUBEQZJDMmlWByxm2SILDVE55ItWirWilloumRCSXvJoZphejUmmlmAihGaaNVLA5ldYvvmmQnPSeeOdXump55oG+VljnIBmxYKgeio0gaEPcJmoVnkyqqVCJRha5EIslFCCpJMiVamlLC70KJ2cToDAqqzaGapR/iWQeulCM3oZZUIVsKorq4i+GpSsLLq60JRDSgDqQRTsqiwChPrqk5uW3spQrDZK0GxBHSy7rLTO/iSrsB9pu+wD3QYVq6Ui5Squsr2Wu9O5b4L70QPrKkuuu0B14GYFx4JU77L4qsXCv8oGnNbABOtqcFoJK7zwWfQ2LMHDZ2XbMLcUn1RCBxV00K9MEf87ccYocVzByShjDBPC/5KMEsowo9zuSyX8+7HLIJkcM8w3vxTyrpviTNLORN9E7aoPUNCz0B6VQPTOSzNN6dMxqyw1V1RXfXVYOmdt9daKZo0y2GGJfbJQTnpMtkZOZw2UjALEHTcBE0S9dkNdx2w3/k0PyO233EHfLRELRf+EwN+IC3Cv4BV5+nVOhyeOeOCMT0WB5JLPXPlTmEuOwOZUVdC55HuDblTfoyN+relKEZA64iOz7tTriC8uO1Ou0y537LcvhbruAqzee1GiAy9A6cMDZfznyTN1ue6aN19U5KlTLr1AGz+J/EzUY2779QKl/eT428f0e+LWSy/++OS/LcHfBBgLvkHs1//kUGmXL3v29rc/P1P9s9//ABhA9g1wKQU04AGTksAnPW6BQFlf/yCoFP7Z74EUfFv/MJjBCNZPfx0MoQhHSMISmvCEKEyh1DrlKRCq8CUsdJynXvgTGdqQhjyxoQ1diEON6VCGuj3MyQ+BGESjDXGGRbTJET+VRJvEUIdNNKIOeRjFkTyRiVXMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzPAEBAAh+QQJBQCZACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUJCQklJSVBQUFZWVlhYWFlZWVpaWmBgYG1tbXNzc3R0dHR0dHV1dXd3d3x8fIGBgYmJiZKSkqGhoaysrLCwsLGxsbKysrKysrKysrKysrOzs7a2tr29vcbGxsvLy8zMzM3Nzc3Nzc3Nzc3Nzc7Ozs7Ozs7OztLS0tjY2Orq6vj4+P7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ADMJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJ4H2wwYoooKhYBQ/EKKMEH7hYGAoy5ihjBTYKhqOOQPLY419AFvlAi0OmhQKSD31gJJASJGkWChVQYKWVGzhEwZNASknWBleGaSWTCXEJZI1eggWmmGIyZKaOWab5FZtsClnmmzKiKSdXVdIpJpkGSYBnjIDuiZWfdSq0waAPGMoVCoiyudCgcTqaFaSRhrnQomZGuakECISKAI2WIpXplXYmBOOTniaEwgL+osaKQKOlFnUqlg1xCiQFC30g668IFFprTx/cChGYOwpLEArAAjvsUH0iWulHDzT7K6/PBhVpqh4xa+2v2QoVbZjTfkTBt79yG25PG1Tgrp4iwYpurK2ui9a8stJq7734iqrvvmZV2++oAKNVwcAIlFvwWAgv3BIKHygL07n4quswSe26667CMQn87b8Xk/SBxiS7K3FLHgNbb8gklezyTQcDyzHLIGXsssYzw9SuBBJUAC/NLd9cMtBkUSk0yUSPNfLRGictltFMW+z0VlG7O3VYNgv989V8Hp0zThssUEAAARTwwNdcOwR1yWjXtMHYZMdNdgEnp51ryVvrRIH+3HzH3bbdT+3d9+B/A77UB4MnHoDhVyGg+ODYMj7V44MXIPlUFVA+eN2XG/WA5n0X3rlQn4Mut9SjH1W66WSLnvpPmbNONuevCyV72bU75TjrkeeuFOKs++6U4Jq73vmStNckQfHCI6TiiivmrdPbiRcgvfDQZ7+iUGHDbbbxl2uv/fXNIyW+9uU/hcL52Sef/k/Ps7+B++8TKz+L9S+1/v35M3U/+P3Lyf7OF0CmDDB7BXQKxDYQsQQ68IEQjKAEJ0jBClqwgEu6YFGQx0ENAoWDIPRgT0AYQhHuhIQlNCFOUNhBFa6QhRl04U1gSD8ZpgSGNnwhCXOokxTy8IeWQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUquRYQACH5BAkFAJkAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUlJSWVlZYGBgZmZmaGhoaWlpampqbm5uc3NzdHR0dXV1dXV1eXl5gYGBioqKkpKSmZmZn5+fp6enrq6us7Oztra2uLi4vLy8vb29vb29vr6+vr6+vr6+v7+/wsLCyMjIzMzMzc3Nzc3Nzs7Ozs7Ozs7Ozs7O0NDQ2dnZ5+fn+Pj4/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AMwkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4onhoaAiiot5IIEDMDoAwQUsHvZijDhCgEKNg92I44878vjXBT8WKaOQf0FgZJE0ImmWBxNIIOUFQTJE5JI/QuAkWShEKeWXEjS5kI9YxrilWCiAqaYEEzBEZpkOnBmWl2t+KSZCb5Yp51cu1qnmQlfCeeSeXdHpp5QeKISCoDC2SShXh6p550F5GvloV5GCOelBSpa56UEX3BjmpUllaidDKHRqpKMKTYDAq/6wvsoqqUOFamqVC01QJASJLgRBrMAioCWtRJk6K6oXTDDBBb0u5ECwwUpAbK2Z4uqRq9AG++m0O9laZ7MgZQttnNwGBaWax37kgbjQgluuTyh4IK9J2LIb67bvjiWBvcCmmy9Z+/ILq7//ilWvwPgW/BUKAsOqcFrPCjzsw082bC3FJXlwwcYbuyvTwdkmjPFHHJe88U0gAyvyyB2Z7PJNqUbLMkoau1zyxTPV7PHMI9n8Ms9k+Wwy0EELzTHRYxl9NNJhKc0s02GhoDTUYtVs88476foqBARTLZHPWOfkQABkl022tF5fJHXJ5prtNtkEpM2VB2/XHbfcWRFQd/7d5OJd1QR77x2230zpHfjbfRMOFQqH7624VBc0XjfOjycVueRuU175UZdjXrbmmxfFuOdlh/6U4Z4nbrpSgJM++OpEod646rAnRbfkd9fe1O2B5657QfHKKy/oOI1dN9q/FyT88vMKpbWwXesePPPDJ/8U9cxb7xT2y2vP1PTce88U98KLvxT5zdvUJQJkIzAB8eKjD79KKBAAwP3430+7+QSRb5ME+Qsg/lamPez9T4AIBAABtaei+anEAwlMoAP5R5MARBCBCKAgUC5wQQlq0CcO6CACo/fBmYgQgyXkyQkFGIAU7mSFAWyhC3MCw/xlcIY4QUAN7zcxHNZkAvE7BMDrfDiQBq6IJDuUIREXYsQGkgSAMFwgDptoRJJY8IT7WyJBqFhFK4rwhlpMCBedWBIIXJCEYRzjEUuSqiveLwDICyMTx7iSNcqxIXS8Y0+4qEd4kbGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEymMpfJzGY685nQjKY0p0nNalrzmtjMpja3yc1uevOb4AynOMdJznKa85zoTKc618lOEAUEACH5BAkFAJcAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRU1NTWFhYYmJiZ2dnaWlpbGxscXFxeXl5f39/gYGBgoKCgoKCg4ODhoaGi4uLkpKSlZWVmJiYmpqanp6epaWlqqqqr6+vsrKytra2v7+/x8fHy8vLzc3Nzc3Nzc3Nzs7Ozs7Ozs7Ozs7Ozs7Oz8/P09PT39/f9fX1/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4ALwkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopniUBhE44GIFJKhoGAcu1lhjBTIOpoGNPDoQQY6AkdBjjzgC2VcFQ/ZoJFocaOBkjA8l2aMGS5KlQQVYZgljQzRKaeOPVYZ1pZZacsDQjl7aGCZYY5KpJZQJoZmmi2t+5aabVCok5JwOFFnnVhzc6SZDLc5p5p9btSkolnAi1KWXYCKqlaKLNooQkl5aihAJY+Yp6YqLvtkQpkMeqqcDB6SqqgOafvoTCf6hZvkQB4XeOKqquKrqqatBxVqBqQ6RwAEHrR5UQa7IHrArrz7BGupIJCSbLLNCOXsnSRFIi6yf1P5EKbAhaTttt0MV+1G04uZqLrlipqsuu2lp4C6u68LrFbrzHmBvWvkeoMC+aB0777IAj6WAu/8WrFKTToI7E77SJqzwSQw7aXG9LJFwcLIOTIxSxRZfjNOOuDpAsMcihayykyibBfLKGmDcMlYwq+zwzF3VrDLOYuls8c08a/XyyjIHTZXPJxutFac1l9tp0UovxPTOQckbwNVYHwB11AkJqwGxQimA9dhYc8s1VmKTrXakZ1sVgdpwB5B0206REDfcBNBdlf4Dd8M9t95KEdC32hID/tTgaudt+FN2I0724lA5PrbikDcluOQBFF65Unxj/vfm5WJOOehLve3456QPdQDiHafuVNpxm+36QCTUXvtQVpN9ANCu2+47UU1iGfPsm/r+O/F1G2888k0pvzzzSzl/PPRJSW879UpZfztOgUYQwZbY6yk9ThUEAMD56Acge/gCWW+T3ejHj76+7Buk/E0kyK//+QFsXX9M5tuf/gLwv58oQIACZFsBc4JABC5wJxVooABR98CWHFCC+lNgBWdCAAzqj34brEkHPRg/EIZwJgcgYfxad8KZRECF6FtfC1uSPxgCYIYihKEJcQgTDsDQf8E8HEkEPUjBIKLkhRKUoRFdooEA6o8AQFyiSTggtvMRwAG8k6IWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEwmrwICACH5BAkFAJYAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHWVlZWVlZWVlZWVlZWVlZXFxcZWVlb29vdHR0dnZ2e3t7gYGBhYWFiIiIioqKjIyMjY2Njo6OkJCQlJSUnJycpKSkqqqqsbGxtbW1ubm5vLy8v7+/wsLCx8fHy8vLzMzMzc3Nzc3Nzs7Ozs7Ozs7Ozs7Oz8/P0tLS29vb7u7u+Pj4/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4ALQkcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopojUBRRQcAEJKiJGQQQ01hjBBjESZuOOEVyQY2Az8mgjjj/2dYGQPBaZFgkbwAgRkjw6qaRYJLDYYos+OgTljllOCdYGV4bZYkMkbGljl152RYKYYqKZkJk1upmmVlayeSWRCsFJI55zbmVnmwwdCWefav4pZkNwykmoVWAaemVDG2xJAUQkSLnoUWs6OiakSE7a0AUJhCqqopcCpamLEAlKIwV8JkTCAv6ixprAAqUWVeefJcmqawK1EnWrmK1+BOuusdLaq1C/thisR6ASK+uyx+5U5ZWkejSss6J6Gu1a2Oq6LVvdyvott+GKOq5a5Zp7LloUpKvtumWRkC68abXbbbX0isTkBtDKFAG27+Zr0gYXFFxwvzDZqyu+An9k8MMF63TBsAsw3LBHBENsMMIXc1Wlxg93XFbGIBdsqchfkVzyySirWbLBLY/1csQxh6UyxBzXfNXNBxO1L8s6V3RzzjdFYIAASAtgQMBBWwR0TxckLXXSRDf9FAVTZy1A1VYvFbXWWT/d9VNHgz01r2NT9bXZU4udtlIJsJ01028zVbbcSUdQd/5UeE9t7N5O3d233oA7FXffSNNd+FFr9+324kQJzjbakDPVONuPVz4U1nJzrTlQl0/t+d6VZp5TBFMv/bmrpZde1M+rs96667E/NXvrtTt1++y5M7U77r0r9TvtwSc1vLQmF8/Q8TdtkAAA0Ef/t/IH7Y7TAtFnH73i1AN/kwHahw8A5dQD9bz44RNevk8XoI++6evHJID74pMfP04k0I/+/Tu1r3/4o+MfSiLwv/BxT4AvIWABs3dABLaEAgvMnsUcqJINRDB6FLzJBQEggAzaRIELnKAHUzK/AnZwhDXJXwFReBMVuu+ELCwa+hoYQ5gcKVQ9qqEOd8jDHvrwh5VADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpR0DAgAh+QQJBQCWACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzk5OTk5OTk5OTk5OTo6Ojw8PEpKSlpaWmRkZGhoaGhoaGhoaGlpaWpqam1tbXR0dHt7e4GBgYWFhYqKio2NjY2NjY6Ojo6OjpKSkpeXl5ubm6CgoKmpqbCwsLi4uMDAwMPDw8jIyMzMzM3Nzc7Ozs7Ozs7Ozs7Ozs/Pz9XV1d3d3ezs7PX19f7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AC0JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKaIlAkffGCCiol9oMEFNNLYAYyFzVjjjhe8iCNgHfAo5I9/mSCkkDcSyVeQR/KopFkfdCCllD42pGOTNVb5JFhTdimlQ1jyqOWWXXlpZkNh7jgmmVpFaWaXVqZJI5tfvXnmQkamqQGdXtnpZZxhrsnnVX7CCeiRSQ66VaFTPnTljh84ZIIGEVQaQaKKFsVoB4ImZEIHM2oQqUOUWmoqppkG9WmhJV1g6qv+EeyZ6lBuvllSB7DCiuqsPtVqKEm55sorUau6aBKuwb466rBruZqsqbIyq9azr14g7VrUmmrttWk5m2203JqFbLadhhtWthFsa+5ZH5C7bkvlyjRurru+SxKLLbYY70tGwtqjvSnlK7CxOX2qgQacApwSvgPrqzC7DQv8MJQR5zsxWQxXfDFZFVu8sVgdt/ixWBkPPPJYJTt88lgm03oBAzAz8O/KYD0Q880y09yVCTj3/IDOW/UsdARAY/Wy0D3XW/RTSCO9NFUdNC30vk8fpYHUSVcd1dFYx6y01khd3bXXYD8V9dgwU132UGjDvPZTXGP99dtGjU003U7xLPX+z3hDZbPQ6vZtdtwXLCu4QSYknvjhUynuOONQOS455HlLrjjlTVl+OeZLab4450p5rjboPmmuU9QGpG7AA3OTPjlOHzCg+uwGMDA65bevpAHtvBvQOuk4ddB777kDH9PwvR9g/E8XIN/778sf7zzvDES/kwnT9269Th9kz3vx25/Uvfezgx9+SdiTr/r5OKm/PvvoBxmr4QdF4H7g8H8kvAD8918A/gRJH/nyJxIG9O+A/fMdQprnPXARkCMGQKAE+ae0B2QPgA/MyAEmyMFO2Q95GMzgRTTAQQ4qDyEfsCDtHmA+ES4kgiWcIP0M4qYZujAjH4ghB+92w5VcQIfiEzRAD1nyACBOcIgrMaAREYhElRRxiQdsYkpICEX+CVGKKKki/0KIRZBssIot7OJEcghFLorxIz804hXPeJIIAHGNbDxJBwpQQh7GMSXNo6MVIxDGO2rkc34MpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMZ1wCAgAh+QQJBQCWACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUFBQUFBQUFBQUFBQUpKSllZWWZmZm5ubnJycnR0dHR0dHR0dHR0dHR0dHV1dXV1dXZ2dnh4eHx8fH9/f4GBgYSEhIiIiIyMjJCQkJSUlJeXl5mZmZmZmZqampqamp2dnaGhoaenp62trbGxsbOzs7S0tLe3t7u7u7+/v8LCwsXFxcjIyM3NzdLS0tbW1tvb2+Tk5O7u7vX19f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AC0JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKaoonUnhOCiiy+sWNgKL9YYwgkyCvaCjTbimONfPPIY44987RhkjT4SWdYKJzS5AkQtHlmjkmQx2eSVJwzJUJRSukilWFZieaVDXHb5ZVhiptkQjV16eaZXYabZpJYKtRnCk292JaeYdCbEppR5erUnln0mVKaNhQZ61aBXJorQny8m2ZCRG2SpKFIvMCqpQ5megKdDK1wg6qgXbODopT4x+qlIJ5Dq6gX+q6Ia1KAlvfDqq7IWlWasIW1wq6sh5FrUC8SeZOuvrgrrVqvIksqrsmYx26yom0Ib7bSjVmttldiKeuq2YXV7AbhqhYCttuSONe0G6a6FLLvtrkTsvDtJm228Ks2rb7E6vbDCCt/iG9K++gqMFsH7GmwWwgUrTBbD9Do8FsT8ShwWxQFbjBXEGj9McMdlNUzUCb6W+izIW50gwcosr4wuylZd0PLMEgQLs1Yy0zyzzTdbpbLONPd8FdA68yx0VC8QrfPRU62gdNBMR/Xz0yxHHZXTVFdt9VNJZ73y1lB5XTPYT039NNlQ5ay00WgzpXbRbUcVAtAvx60UyaJucLL+3Xz37fffgAcu+OCBzp1AAhfUTfhPGyDg+OOOs734Ty8kAPnlCEgwuVCWY3655pv7JIHnnkseuk0vkE56xqe7dIHqnsPb+k2we57A7DjV7jnutOt+Oe82+Q757cDTNLrwCIxbPElMZnwC8gjsvTxGFxwwwPXXSyA98qBP31EI2IePPfEHPe87695DdIH47A+AQEIh6K54+hFt0H777z+qegLo0+/Q/feT3UFC0DnHJWB+/lMfAO83qf4l8CELvB8CH9iRF0Swfd2joElOcEH25U+DJgFfB8P3QRCShIMjxF4JTSgSC6bwespjIUkQ8MIBSE+GGxHhCFeIw5BYb4SqE+zhRVx4wRgKcSQrKOIRUZKA+x0giEvUyAsad73MQTGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuDxaQAAAIfkECQUAJQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdRUVFRUVFRUVFRUVFRUVFUVFRZWVlhYWFpaWlvb29ycnJ0dHR1dXV1dXV3d3eAgICKioqPj4+VlZWZmZmbm5uioqKqqqqwsLC3t7e/v7/FxcXNzc3c3Nze3t7r6+vx8fH7+/v+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBLCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqKJ1G1xAAQUXZLDiYS6+aCMFG8w4WI032pijjn/x2KONQP415JAyFmnWBhtk8ONDGxzZ4wVKktVkBlhmCaWUPVYp1pVZhulQlFy+SKWXYIWpppMOlWkmml+BuSaWDgl5JJxxzilmQ2RKeSaeXMk555ZH/gnoVoKuGZGdT46ZwQWNHmqUnlpKxKREFESg6aaGSjoUpWyStMGmpGpKgaeTzhlpSKW2eiqq/kQJelKmrZaaJKxu1eoqrm6NqmupvLaVwa+lrhpsWcMSu6mxx47lq7IRNLsWtBG8Ki1aF0DL7LVi0aprp9ya5W2p4IZ7EpPbzhQlqZCauxK68Lq7Frz0ypsWvfHauyS+6Oq7L7+X+usswOkKjCjABluJcMID18vwkkhdIPGtD4M1agMYZ2xtxVxdkPHHGD9QMMdQZQDyyQ2QrNUDKIP8gMpXedwyyCPDnBTLM3+8sc1Q5ewyz1P5DDLQUgmd8ctEQ4Wz0DsnvZTMQtfs9FBGIz21Uyb7fHVUUJ8s8tZRXQxy02A/JXGMZaet9tpst+3223Af26KZUse9k8kG5K33/td2E/WA3oDrTXbfO/0d+OGDE37TBYc3bgDFiueEgOOHpxy5ToxTfjjkl9MUgeaId45TA6AHbrXoNJFe+t6o22T46gYk3jpLFMCed7mzt7SB7QjkLhLeAgSPgOwlvA468b5TtAECwTffvAG4C6S65pYnz9EGzmff/OkFLU+99R1hr/34shsPeLTgc8T8+OOnG6XqDeCYPkcXsM9+7/Oz1ID97OfPEv/si57/QCI+AGYPfQM0SQEN2DwEJrAkDMwe8h64kQg6T4AU5MgDLBi8DCqQg9zzYEg2yEADiPAk6wMg504YkhSOzwB1Y2FGaje+EMqwJBmgQMgweMMe+vCHhEAMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTk4tIAAh+QQJBQAvACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhz09PT09PT09PT09PT09PT8/P0REREpKSk5OTlBQUFBQUFFRUVFRUVFRUVFRUVFRUVRUVF9fX25ubnp6en9/f4GBgYGBgYGBgYKCgoODg4eHh5CQkJmZmaGhoaurq7CwsLGxsbW1tby8vMXFxc3Nzdra2uXl5fLy8vv7+/7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AF8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4nUkgACCCCSseJgILtboooyE0WijjTgG1uKOO/b4F5BACukXkTvGaCRZJIjgpJNKOoSkjSIsOdaTWML40JQ1VmklWE1m+eSWXIIQ5ZddiYnlmQrpOCWaYKmJJZlIsgmnVnKOSWeSd36Vp5MRuXnjRHb2WdSfhYJEAgeMMmqmoUjleRIIjVbKAQiQGhVmlpNaaimmmRa1aaIfLeqppaHGdaqnoKba1qr+nrrqFqyoysoWrZXaeiuujOq6FqW4eulrWrwOu5YItJJqrFimeqrsslc2+ii01FZr7bXYZqvtttx26+23b5HwLLhXgYDBueduICy5WZGwAbrwYsABu1rFa+8G9F7Fgb32tppvVCTwy++/U+0rcLzrEtzUwfbOq/BTDMfr8MMLR4zuxBQvZbDFCWeMVMAWY+CxUxsf7O/ISkWML8pNgcwvxiwzZS686sY8lbg256zzzjz37PPPQJso7rhB98SBBEgnDXPRPpGQ9NNJE820TCJAbbUEUk/90tVXa70TBlxbvbTXM4XdNdk2gWC21VkXLQIGDQggNwQri3T02k+fjLb+QE7L7bffBYy90d14I6032iIU8Pfic4ekduFId0w2CYozzjgEikKO9N4FxW255SJ/BHbhoXP+Agefp+7QvkjL+2zVhbfds+epMy74QBw0oPvuupeOEOFhH+41CbV/3oBCEvCufAMQSD7QBmbfrjUIxX+eUPLLL6/s41Y7Tzbq1TP+e/bZS8AQshtswIHsQIMf/t8IkU++9KY3JML7fx9vUO7yL495/RapHP7MZxDs9U95ALSIBPAnt8NB4IDL814CF3I//OnPIBCM4AQpggH8Oe+BGdwd+zYokAVW73ZwC6HuSFgRE36uAMITCAhU2AACsnAiIIAA4wrgu4SAMIOzMbyhlNIVxIKIIIQ9FOJJ+Nc/GypRJTOUXxKfmJIU8k4CRaSiSdw0Qi168YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pcKCwgAIfkECQUAkgAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdBQUFBQUFBQUFBQUFBQUFBQUFERERMTExUVFRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhZWVlZWVlZWVlZWVlZWVldXV1jY2NqampycnJ6enqBgYGHh4eLi4uNjY2NjY2Ojo6Ojo6Ojo6Pj4+RkZGVlZWcnJynp6eurq6wsLCxsbGysrKysrKzs7O1tbW5ubm9vb3Dw8PKysrNzc3Ozs7Ozs7f39/p6enu7u7y8vL+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gAlCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqCJ2N9ywomIuxCijiy8OdoOMOLogQ42C5ZgjjTz2daOPOAbpF5E5GnlWi0xGhGSRSo7F5JRANvSkjFFKSWWTDslwpQtZhrXllBBdWWWYXI1JpkNDEokmWGpyyaaPO775VZwtSjSkDGfauRWeKcmAwqA6+plUnCfdMOiii/ZpaFBjJsropCg8ilSeKVE6KZiWwiWopow62ilaoG46qlulMsrpqWuluuiq/qym5YKrKNQZa1qKunorW7OWCuuupIL6K7Bo9aoqsW8NKSqyzDbr7LPQRivttNRWa+212DZ34wjcjjBstli50O24I9gK7lUokEvut+dCJa665C7bLlPwqlvpvFLdUK+6+Er17r7dytuvUf8CPILAAxNVMMAIJyyUvgZz6/BTEY9w78RMLQxvwxgHle6+7HZ8lMbchizyUdt2a/LJLLfs8sswxyzzzDTXbHO+KGyg8wYocHxzTSPsLDTPPwPVwdBDj1B0T0cjnfTSOrngtNM+Q51S01MLrbTVNmXtNNcKudBBBRVocDBJN3iNNNgHoYDAAHDHPUAF5nqUttpCs12Q/gZy9w33xXbjnbfeAlXg9+FbfyS4zh0QLkkHh0de90Y5C76yzTdEHnkFD/XqQsOLOw655ocLfMPYZKdewcoy4F21zG+T7nfibatuewUbLNR61q/LLPvhGiSEwu23575Q5UIDrnfmv/fN+UE3EE887Qkp6zhBzDcf9/MGoS697ddXpL3cjRsU/fe3Ux++Q4aPP4DyAg2P/u3rS+SC+wMgNML89NcfUfvNU59AvMc/svkvIjLQHvcMsr8Cpu6ATvrdAg3iAgeSLXgQhIgMYgc8hliwAvDLIEOG1zcNXE4SDSygCCvipdc58IQr3Mj50BfCGI5EA9+DoQ07IjXb1XCHjSjpHRCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHSceAAAAh+QQJBQCSACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzU1NTU1NTU1NTU1NTU1NTU1NTU1NTc3Nz4+PkhISE9PT1BQUFBQUFBQUFBQUFBQUFBQUFFRUVFRUVJSUlVVVVxcXGNjY2dnZ2hoaGhoaGhoaGhoaGlpaWlpaWlpaWlpaWlpaWpqam5ubnJycnZ2dnp6en5+foKCgoaGhomJiYyMjI2NjY2NjY6Ojo+Pj5OTk5qamqamprKysrq6ur29vb6+vsHBwcfHx87OztTU1Nvb2+Pj4+zs7Pv7+/7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ACUJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oos4oRDDTDC2GJhMdZYw4yC2WgjjoDpWCMOPPb1oo8xBnkWDkhKRGSNRpKF5JNJPjTkkk2KBSWUES0pY5VgXYnlQ1py2aWXT2bpI5BiekVmmWb+mOZXa0YpEZtvwrlmSi/KIMONdSZFZkp6Bhpon0hdCaigiBI6F6KM8qmoWzgwyuijb9UgKaJoUrrWpZhqyhangmbqKVqWgiqDqKOeZaoMqa5V6qX+qLZq1quIOiprWpF2eiukse7q66/ABivssMQWa+yxyCar7HCRwgDDqct2hQMMLVRrLQzRaoWDtdxa22u2UHUrLrbgUiWDuOLaWu5T6I67blTbttvtu1DFK6+19D5l770t5Msuvy2Q6+9Blqrb07n8GuxvCxIM4LDDEgjcE78SDwxDww9nPIAECt+0r7jfrtuCxiQ7zGpP07o78EAwlOxyxx7L4Cy0Kw/ksssS1HyUBze7XLHOQPWMM9BD1SC0y0QLNfLRJMOc9E0nME3yyU9PLLXGVFe9kwxXZ6z1T11D/LVPGF/dL001UBuw0zob3TXaJ5Ag99wnhKwzCVf/3BL+DHP3PXfWVVfAtAczyeD34SSwvTLePevdUtyI933C2ALVUHbGHtitkuGR+w341+ee0MLnMUHe+dxnUy6RzGubdPrhqkNUgwcS1G67BKmH9LrfsTvE8O3AV6D5Raa/PnnvC/0O/PLDV8T37iSQjvxAMixvvQQVhIQD9CRMr9D11+fO0IvNS/L86Y57Xz341jcEgwfwxy8+Qi2cPr/3A9HO/vLSD0RC/ACEX/8GUj/EpQ9/+7Ne+nAQwAZ64ICVK6DcWlC+3iVwefcTyP8cGEDF4S8iFwReBt/HwQZ+kCMVCKHtpFdCB3rwhA05gQpr1ysGtjCAGYRhlmZIuIPI4IbsATyeDi+ivwt27IdAjF/3hoiREOZwdkmEnxCZWBEcJHCKB4ki/CBIRYcUcXlc3GASK9hFhdTgBCms3QMdAkUgYrGMK2lBEuFYuhuSkY4hIWED34hHl8DgBPAjQQte2MdCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6PxOQAAAIfkECQUANQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdBQUFBQUFBQUFBQUFBQUFCQkJFRUVMTExPT09QUFBQUFBQUFBRUVFRUVFRUVFUVFRcXFxkZGRoaGhoaGhoaGhoaGhoaGhpaWlpaWltbW1xcXF6enqDg4OMjIySkpKXl5eZmZmampqampqbm5udnZ2ioqKtra21tbW9vb3Dw8PIyMjOzs7R0dHd3d3j4+Pq6ur4+Pj+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBrCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLOa0wosrtGgYjDTGKKNgNdJ4I2A56rijXz36+ONeQcI4JF9FvngkkUUuyWSQTj5ZY5RITknllRUqiaVeK5zg5Zc2bkkXCl+WeUKYYsLVpZllpikXm2y6CRecZsrp1pp0emlnW3jmuWdbeX75J1uBnoDCoIT6iehafba5KKBlHvropJRWaumlmGaq6aacdurpp6CKuQIKKKAZ6lYniKDqqpKemtWq/rCqeoKrWMVq66y0UrWCrbbmShWvt/oqFbC9CgsVsbEaeyyyqyr7FLOyOuvUrsxKa9AKHDQgwLYNcGDqTsziaq1AEGxr7rkYAIXsuAKtoO258ArQwLc5pRprq9a6G+++DQQ1aqnsDvTuvvFCEHBRJxCsML4H/1Suwvtq0LBQECs8MVAoVEwwvRfflLDG8XLccU0ZgwyvyCPTZDK8Kfc0sMnptgzuytuKOxOZhsos0MsV90uTCBwELbQIMn8MMsMuYSv00kGjPK4IINsME9NUc1A0z+fO+3PVTBMtswg8Q+D1TEpzvbTOA5GJtEwnmM201Gg3RKrTHAHt9tBxOyQC/gQN9N23BnRjZPfdHIydN0IrYOD34n13MNLgd8N9+EAr8M044xKHhALhTU+OkOWXM251SJw77rlBGoSu+toabX534DK7q3romS+0qwYY5M6B5AZBTjXvk4M9e+gMiZD78ccDzlDbVbPueerDX45yB8hXn3vgqQYtAvCnKx49484bb331tZ+ekfff+8164uNbb7j5FmWbvt8cU9++9fBndML8fRuM0P3jc17+HgK6772PIAC0HvcG2JD9pc9//0sg8g7IwIjIL3oClCDyFlhBhlwwdBBYIO40iAHYdTAhJyig38qXEPFJkIUnpEjbcqcBEZiQhByMoUhOIMHR6bAloTy8nw9/2JIVjLB6OSRiSailKgEq8YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsNRIQACH5BAkFADcAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUVFRUVFRU1NTVlZWWFhYWFhYWFhYWFhYWFhYWVlZW1tbYGBgaGhocHBwc3NzdHR0dHR0dHR0dHR0dXV1dXV1dXV1dXV1dnZ2eXl5fHx8goKCiIiIj4+PlZWVmJiYmZmZmZmZmpqampqam5ubnZ2do6OjqKiora2tsbGxt7e3wMDAx8fHzMzM1NTU5eXl7u7u9vb2/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AbwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiizq9MILLSL24owwxjgYjTTaGBiOOOr4F485+tgXkDMKOSSRNRqpF5JJKpkXkk7yBWSUR75I5ZVYZrlVCyt0uUKTWs7l5ZgrhEkXl2R22YKZcaGZZpdgsqnWm2OuKWdbdI55J555drknW32uYOefab3QJ6FsuUnmoIimpaiajbb1ApotxBnppZhmqummnHbq6aeghirqqKSWaupMhpagagllnprVCv6rxlqCpa4+1YKsstJaK1O44rqrVLf2Gquuvx4Fq7CrMlrsUsjG2uqyTB3brLLQIhVss8RWO1Szqmpb0AodPMDAAx9Qu9O1vWbragkCtOuuu8/2JG2u3gqEwbv4ttsBUKmuGq+29+ab7771GvWBwAiXUHBRCDe88LYNI/zvwzw9ELHAGFAM1MUIa/wTxwJ77BPI+YrcEwMku/uAyTx1kHK7CrPs4ssC4GSlzDcEDDLBM936wc8fzCozySvTVALQSAfN8gscM1DT0UkjHbPJOg9c0wpRR23uwy90gHK7DHygrkpZZ41zTy+UHfXZPGGtNtJjs522uAwwgMHUIrn99v7PcePsdd2A1/3AxB2lvTffbC+EQeCM1433R4f/nLhCfzfO+NYaQf024ZPfsILllhcd0uGdI0Q36Iw/ntALmnNukOFll37QC6hbnvFCXWOg++53O6Q50KrLfkMJtVu+0Aq8J4/BBw95ibnsxBfPuEIvKK988MJPFL30gFNuvfLPZ+/Q59wLnlAL3yvPvPgXlV/3+geVkL7y7F9UufS6zq983/W/fnrtPDuI/pLHv/59S3qiQ0gHBri7AhqQICv4H+NupxD5MZCCD5xI1xr3AOwVpHoM9GAGm5csiHyAgSN0yQLn57oUlmSF1muhC0uCvOSJbYYxmVSlcMjDHvrwh4ZADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56ck8BAQAh+QQJBQCSACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzo6Ojk5OTo6Ojw8PEFBQUlJSU9PT1BQUFFRUVFRUVFRUVJSUlVVVV5eXmZmZmhoaGhoaGhoaGlpaWlpaWlpaWlpaW1tbXV1dXx8fICAgIGBgYGBgYGBgYGBgYKCgoKCgoKCgoODg4WFhYiIiIuLi5GRkZaWlpubm6GhoaampqysrK+vr7GxsbKysrKysrW1tbi4uLy8vL29vcDAwMXFxcvLy8zMzNLS0t/f3/r6+v7+/v7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+ACUJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostlicDTDC6GJhMdY4o2A15njjXznquGNfPdr4I19BxjgkkEUeSWSQSiIpZJNIQinllFRyZYMMWMpgQ5V3ZemlDFzS9aWXW4YJ15VjZmkmXGmSuaZbbWZZ5ptrxYnlnHSu5MIHH5TgQk5otolnnibZQEEAiCYaAAU42UloSh8oKimiJ9gU6JeDPirSoZNO+oGlY2aqKUiRdtpppZYaOWpJNphqagL+q4LFqauexuoVra/aypUMuJqq61Yn9Nrpn79iFaywkhJbrFUuICspmMta1aqziUaLVQLUBsCAtVeVkC2q3FaFLbLbhmsVr8iKai5Ux+KqbE8yuCCvC+quq5AN43aaQL03zevvu/Y65MKsiFIAME///hvwRKoGlXDCC0v7sMIRUxXvxPPyW3FSF2NM78ZSdYyxxiAbZYPH8pYsFcoHq0yQCyeUcELLCGPsMkIfJKDzzgl86vDDNxvkAgM8F80AtD+JTHLFJxTttM5IB30Uvk8/LXVSFFT99AVXGyWD1lV3XVTOYDsNrthAZV120T6jnfbabLsdlNpw69y23D2RXXf+AmfjvZMLe+u8tN8yEV03o4T7BHjdg6MkwwmQnxA14XqD3TdMj0eu+eR4V/705S/BrPnonMs99NMUlO6SDaO3Djree1Ig+weqv+R66zQnntPtrev+E+u8a+67RI/z+cEJjVsEfPCQD/+QDLJHH/3dITEfufMNnSD99rInP5H1zWOv0MDccz9S5sF777eh5XNPvUfWi69QCe2X33jHEAUvv0L1l/96QScwnvFKMDj0Ra52+2Nf/6T3voLYQIAQ/EDuDNKw/SUEegtk4EIiGEEEWlAiCswgBRo4kAByEIIf5IgIo1cChZwwghNMIUQusMLUXfCFEZRhRsgnQoWYEIfbxtNhRj4gwgn+EIgkFGJEMvg/gRwRiEocYv2aKBAZIJFPLYwiRlxAQwYO7oq00+JGruQ9KwIxi2J0SQmAqL40wu+FbXSjR1gnwBJ4UI54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8lNqQQEACH5BAkFADUAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHREREREREQ0NDSUlJUlJSV1dXWFhYWVlZWVlZW1tbYmJibm5uc3NzdHR0dHR0dXV1dXV1dXV1eHh4fX19gICAgYGBgYGBgoKCgoKCg4ODhoaGjIyMk5OTnJycoqKiqKiora2tsLCwsbGxs7Oztra2urq6vr6+xcXFysrKzMzM1tbW39/f7Ozs8fHx9vb2/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AawgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPboo3wpBJnCj3QJaeSQRL51pJFJKrmkkE229SSUUao1JZVVonVlkFmyZMIIJuy0ZZcodYCAAGiiuUAHOI1JJkkpEJDmnGgigGRNU75J0gh09onmnTQtqedIJvhpKKCDanWmoX0ukChXfDLqZ5iPZrWApH5iUGlWmPpJwKZXpdCpn6BaJeqodJZqFaqpqkoVq/5pIuAqVRDAKsAGs05VKKyI5urUpahq6utUi2Iq67BUySnpsUClYIIJvSKrEAaM4grUlyNkm2200iLUwQJyErCmUNhqqy2l3U6VgrnsjsBtuku12y68UsnLLr1QrWuvtvhCtS+//Tr1b7YBO6Wvve/262zCOpXLLroFCzTCAghUXDEEEPvk8LYRD5QCxRaHjAAEQzkLbccei6wyAo6ifBTIK4dMsstEmRmzyiPQPBTMN1vcss4/mdDzygwDTZPNQ4ecs9E9IZ10xUszvZPTT0ctdU4jPB1y0VfDpLXFXfO0wddshr2T1j8Hiu3JXWedNNcpdSD33B1YzbTbN8NdJv7dfJs9tsrW1sT34GWHPcLcGc9kAuF86222S4zzbffjN0XeN+UOfVm34xdZTjfmDHUAweikY1yS53ODnlAKpbcOQeAhLe4550yz7nrrsIOEuuoIYXC764l3lILltBttwu+3R8QlRLIPXrzRGyDvOtfDY2A9BhtMrtDhc2vPu0DSu+49QR1cbz7233cUfuuFe3v++bmnb9H6pbdvkAnvv2+//BTRT/r4NShf/s7HP4yIzn8LGeD7AFjAhvhvfwRJgQLPB8EGPuSA4VsI/iZ4vQpa0CEY/B3DJMhB63nwgw0JYeu4VkLrBQ+FEAkhBhhIvhbC0CUb4CANbxi7CZ6Qh5lwyuECgQiTxeUwe0RMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycoJBQQAIfkECQUANQAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYdSUlJSUlJSUlJVVVVYWFhYWFhZWVlZWVlaWlpfX19tbW1ycnJ0dHR0dHR0dHR0dHR0dHR1dXV1dXV1dXV4eHiCgoKKioqNjY2NjY2Ojo6Ojo6Ojo6Ojo6QkJCUlJSZmZmhoaGqqqqxsbG1tbW6urq8vLy9vb2/v7/CwsLHx8fOzs7U1NTi4uLz8/P4+Pj+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBrCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0CupMKQRAYZF5FIqmCkW0kmuSRbTSL55FpRFjllWlUOeSWWWW55kgoVHADAmAdsoORNXXpZkgRjtunmBjhVqSZJYrppJwAKxCnlnCMpcOefEvDp1QZ/FvqBoFwVqiiiWn2gaKEiMIoVm4/eWYGkV1X6Z56YVqXpnQd06umnbnIqqlSUkgoAnKdKJYKq/mOe0OpUsIY6q6uqynqrVBV8yuquvFZ6qFBaAvvQCXXaqcCZP6lwwrPQMmvsQidsUIEEFXwgrU/OQuvtttNC5e24uoYbFbnjgmvuUuiOu6647UL77lPxyjtvU/WeoO69R9XLr1Pdkrvvuip8oMABCEswbFABR/vvQB8gLPHEkQ5V7MMChTnxxmVifNQGHIe8sMcMh2wyyUNpbPLGv6Ls08ohm+oyTyrAHPLMPiFr88YD4zxTzTtP7HNPQQs99E4SFH3ApUfrJILSPTcdk8owM21Tt1FjfDDMgdp0wgdgh12uz0mbbDVNIoSt9gcVDy1C2RJLMPZMX6+t9tw+O5u1/kt22y11T3X3Hfbef7uUtuBiF/6QlSYdjvgHeCteULUSVF75yCIFjnjkkgv0geWgV845RwU/jnnnA20Q+uqjb+R4322jPtDbq69e0utqxy67QLXXfvpHuLO9e0G09x76sRskv4EIhAukwuHMD1+Q6saHnnW1ymevu/QUXVs96FFjn332v3MPEfXfV96zCuO3v0Hr5i/0efqVLySC++3HT5EK9GO7EP7ta57+COK977WOfQDMHvwGeBD+fa9lDUyg9hgokRNUD4IIkaDyFkhBg4DJdw7RYPIE2MGBFMxay4PI/SRYvhKKRIMkdGFGEshBGXrkA+6LoQ03cgIR+FCHjTsMohCHSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHeauAAAAh+QQJBQAvACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh1lZWVJSUlpaWmNjY2dnZ2lpaWlpaW5ubn19fYGBgYGBgYKCgoKCgoKCgoSEhIiIiI2NjZGRkZWVlZiYmJmZmZmZmZmZmZmZmZqampubm56enqKioqioqK6urrKysri4uLu7u729vb+/v8PDw8nJyc3NzdDQ0NnZ2d7e3uXl5fj4+P7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AF8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oosfuQBBAxA4EGLhHkAQAA45hgAAzQCdoCOQOI4Y497GRDkkRgQmRcDRzYpgpJ2idDklFDWZeSURw5ZZVxYNmnAlnFJ2eWRYMKFwZhklunWmWgCqaZbHrTp5ptslSCnjnS2dSeOSea5Fpty+qmnnDwKupadaAJgaFtxdqnoom2VcCWSkMLlAZM5AgBBpZxm96IBBhwAwZOdMnpjkAaUUKpaEHTZ56r+ZQGKpZawhoUomrWONemYhebq1a1t+vqVrGjSKmxWmMr56rHI7rkss1e1euez0FZF7JjGVlvVntpqleyYm3ab1amOiqtVo12Sai5W6B4JgLrrNhtkuEGVIMK9Iqgab0UeYOBvtj7hKzC8+2I1sMD6FmzwwfgqjJW9DN+bsMNTRYzvxBRHBXHEGGcMlcUEe/wxxyJXFXHJC5WAAQMsY9CxTxvni3JCJTAA6s2gMvDyzEh5gPPPoO7MM1GSAg300EsdYDTQvSJdlM9LAw2w0z/ZHPXP9FIt1NVAH6A1UVwf/fXWYd/s9dhBKV22AU2j3RMGaxswtds5rX023T9BzXX+yHjvBPfVc7/kweCE902Q3lLfVALhjHsg9NgeqM124C4t3jjjhgt1+eWZA7V5453D/Dnjj4cuk+WjO266Qy+yzIDLJqE++uoMieD67TGalPrgtCt0Ke64lyRC6qWvDjzwWYeUeu8JwXg87pRrNHzjfDMv0PPIQ9QvBqpHBHHxtP+O/e2s+2u+v+Bbr/34wTN0/vuwq6+R+Oy3fRD88MuvUc31s5wy/u+Lnv4a0r/XLWR7ADTfADFCP+y5L4HnWyBGnIe96EHwfOmTYPOwR637XdBfGmQg8tKHQAiGMCOoy6BAPli9E+rugi4UXAJjCBOVBZCGMymBDnHIwx768IeHQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKTFAoIACH5BAkFAC0AIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHZWVlXl5eZmZmb29vdHR0dXV1d3d3fn5+h4eHjIyMjY2NjY2NjY2Njo6OkJCQlZWVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmpqampqam5ubn5+fp6enr6+vs7OzuLi4vLy8wcHBxcXFy8vLzc3Nzs7O0dHR1dXV3t7e7Ozs+/v7/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AWwgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiyCBMKLLRqWQQA01iiABzECBkKNPNqYY18z9ihkACX8mNeOQw5pJF5JJtnAknV50GSSUNI1ZZIZVCnXlUMeoCVcJXCp5JduhSlmj2S+dSaPAqTp1po1PukmWwfAGQAIc7Jl5pp5tlXnmXj2ydaZcgrKlgBXZmmoW0EOGeiib3nwpwANFAnppdl5kMGmj2LaVgNDKuppWiAgmqQAlo5aFpJXpqqqWP6mXtnmq2I1yiWOtIIF56y5drXnma72mpWUcHYqLFbErmnssVYlCyyzWv0qJrRbxcqll9QOq2y2WhUgJrbcZmXtkAWEy9WfXZrblQfe8ljAsj6VIG+w6k70Ir0/zasvvvVWta++/W71L8ABYzXwvAVfdTDCCVu1ML8NO/VwxP4eTLHDA1/MEAgedAxxTwRrnBC7BZRsMq4iP3WAySyXDG7KS63ccssvw3xUAzPnLKrNRZWQ8888H0Xyzy3DG7RPOBPd8s5HAyWz0iYX2jRQSUNdMtNT95SB1SdnHZTPXBfwsdc3Pa201GSDzHXaQoFN9NgtldCxByDAHXQJZked0/7cfBvtdQkZHHBAAxnYzRLfiPvNtk4cI8634YvP5LjjkQM1OeKV/3Q535lHpCmnKG0+d+cOZdDA6ag3gPJIjV+uOOkCpS474SaJDvtCs8++ekhyT367QiDkPvtJif+ukPC6Q1TCvRTJazzuyMvuEOCbVv/68xKVEL30DH1e/ffYb6T99qhv/P35GewefkXkn461QeijD/n6CZlO/tjUx1+9+vRLRP77BfGe/jbVv4t4YHtwE+AAC2hA5NlNgfpj4EUAJzv+ISR/A7SgBCPiPIkMsHobdAkG0Xe9EIpkhNYzIUxA8D0PzE+FMIyhDGdIwxra8IY4zKEOd8jDHvrwh3hADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSUnqBAQAIfkECQUAMAAh/h9HZW5lcmF0ZWQgYnkgb25saW5lR0lGdG9vbHMuY29tACwAAAAAuQEjAYc1NTU1NTU1NTU2NjY5OTlHR0dhYWFra2twcHB0dHR0dHR0dHR1dXV2dnZ7e3uEhISLi4uNjY2NjY2NjY2NjY2NjY2NjY2Ojo6QkJCRkZGVlZWcnJyjo6Opqamtra2wsLCxsbGxsbGxsbGysrKysrK4uLjCwsLIyMjOzs7X19fj4+Pu7u7+/v7+/v7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/gBhCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DD/osfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogkgocCCSSgUGJjKDBQQAAwBkCAASSsiNgFBMSoI4wH2FjYATsGGUABKvoIGJBCBkmAkX+RkGSSPTJ5FgoPGFDAlQds0NCLTwpZpJRjHXDlmGRqmZAJXSb5AJhioUDmm2OuidAFaQpZAJthwalnARcgZECdQuL5lZh7wvklQVwCqqOgXblZKJxRFpSoojAyytUDj+p5qEAPUBrjnZZqZWWmb5pJkJOeBsBAqFqRCmef/gbl6GmNrGLl6puwFkQnpaDWetWtZSI0aZom+IoVocDSapCbgOZqbFUbAHulQsw+SYCpz1olrbNzyrpjpNleRcKtBjxEwgUHHPCAsuFmdYGrm7bL1ruFGhCvvGyhgCyZ3OIL14kXXLBBsf4WHB4KCBtMFwkMpOvwA/cqjNYDDlecbr8Sm9WwxRavmjFa6HLMMbYftynyyRGXzFXIJ1uMscpctXwyzGLJLDLNYOlrs8U4g7Uzzz179bPDHge98tBZGi300Ep7RcLP7DatFcsnkyy1Vhu0HPXVXG2w8QEMbM31aQiXnfLYWJltNtpeqa0221y5vTbcWsldNt112302/t5P6b03307ZDXjecw/+0N2Gp30BA4wzbnXiT3nd+ORhQx6V5JRPLrblR5mQ+ed/cw7UA59n/rLoQrVYeuaoJ8Xw6pQT3HpRr8PeuOyzD1W77QzgnntQqvPOQOi/40Q673IWr7vwvisP1OKwn+58T8d/Lj1MhU9vEOaNr5sTCiaELz7xuZOwwfnN0wS++OyTr/1N7Mef/vs9rS9/+O7TL9P98esfFP/s899E7JcSAOJPgBAxQcAWKLCT2O9+CDQXAyeYv4oYMIINOdcEKWgS/mGwIRsMoQPb90GGaDCEDKxgCUuCwg1u7iAoimGKVgiSFk7whQQ5kQxjOD8aWsSG8AzE4UB2uEMV+jAhGwBiwHo4RCLu8IgbUaASM+hEGRoRigZRohBhoMMqxhCLGrHh45blRRmCMSMoQOEYyVhGEjDxjBBBQRIDNkNztfGKcIxiG/MYkzLikY8bqSIgZ9LFOg7ykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnryk6AMpShHScpSmvKUqEylKlfJyla68pWwjKUsZ0nLWtrylrjMpS53ycte+vKXwAymMIdJzGIa85jITKYyl8nMZjrzmdCMpjSnSc1qWvOa2MymNrfJzW5685vgDKc4x0nOcprznOhMpzrXWcuAAAAh+QQJBQA1ACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBh0FBQUFBQUFBQUJCQkREREdHR1hYWGlpaXR0dHx8fICAgIGBgYGBgYKCgoKCgoKCgoWFhYqKipKSkpeXl5mZmZmZmZmZmZmZmZmZmZqampqampubm6CgoKioqK2trbCwsLGxsbGxsbKysrKysrKysrOzs7W1tbi4uLy8vMHBwcjIyM/Pz9vb2/X19fv7+/7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AGsIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaCJTIyAQwIoBGKDBiYihYACLNK74IoyDaVDjjgEcgGNgI/DIo48/9rWCkELeWKRZIzhwwAEIaLBCQw4gKeSSZY1gwJZcbokAQ1YKOQKWYjnQ5ZlbopBQkGHuSCSZXpmJJppqHqRjmzvC6ZWWc86JUJV41qhnV332qSRBEgQq6KBa8VkomgexqWiLjGol56NnTmnQpDZWmtUBmNJ50IyTauqpVaCG2mWdBUmK55v+p1aFgKpdmloQoG0aECtWGtDKpUIH4MnqrlSt4KsBXyqkIpK6EovVrLQOixAKwdboorNa0eoARChooMEItmJ7lYyYwipuW8YWKsG5c/V6JgLSsgvXCiigEK68+Oarr0QpPnmAA2Pu2xYKCPhrMAL3CkzWCAY3/GTACmfp8MQJR+xVwRM3vK3FYjGcscPxcryVBB87fKjIXJXs8MYod6Wyxi1f/LK/LMeslQYzP3myzVetkPMBFfNMlZMvryv0Vj6/fHRXSWeM8NJxTlwz1FytoIEDWEtJ9dZcd+3112CHLfbYZJdt9tkVdYu1AxqEjHZSK0iw9tw7v33UCnPnjXX+0HYHpbfeRvdtVJN/5+224D4VDjjiRSmuN+ND4e343JALJfnkWFcuFOZrax7U1ZhD7HnimI8eFOGKi256T6jrrfrqPVmdd900rWD77bAXVC/fMt3uO++52/T778H/NLzvxcd+PPLJ67Q88803BLxHz9sePUMjeKv94R9Vf31CVmsvPu3dL/89QuGPL/5J5p9vkPrqvy4S9O4TlD782tcvU/b4iz+9QCsYgQDBpb+N8K9/3vrfABcovwLyC4Hamx4DGejAi3QLguSz3wQpWMGKYLCBrdrgAjtYkQPiT4IiHOD/SGgQE44PhCFMIQFZOBEXJvAhMhTgCmloEBSoMCKoOYQhD0MSwBRyb4gh8aEIkciSInKQiU30ob2gSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWxAoIACH5BAkFADYAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHUVFRUVFRUVFRUVFRUlJSVVVVV1dXY2NjcnJyfn5+ioqKjY2NjY2NjY2Njo6Ojo6Ojo6OkJCQlZWVmJiYmZmZmZmZmZmZmZmZmpqampqam5ubnJycnp6eo6Ojqampr6+vs7Oztra2urq6vLy8vb29vb29vb29vb29vr6+vr6+vr6+wMDAxMTEzc3N3t7e8fHx+/v7/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AbQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZoYlMZJHCAAQg80MKJiSUgwIw0znjAizAO1oIBNfY4YwY5Csajjz6CEORfBxCpJI5HngVCBlCm4BAISip5QJNltZCAAVx2eQCQCyVZJZFYjgVCl2h2icBCYyoJZplenZnmnFci1EKbRCYAp1c7zumnngelgKePa+7J1ZZ++skkQYIOWmOhhmqVaKIPIORojW9GepWck6ZZp0FDXrqoplVl0KmfCD1wqQAGkJqVqf6nppnQqka6ehWssXaZEJWDQmprVX3myqJCGeD56a9WrShspgedWWWlyGLFaawOmdojtNFmhUCuUkLUwqjZansqs+G29UCiB9RablwtPKAsi+SuK++89Na7WAsZPKAvCODam9YDCAQscIv+rtXCwAgjAGjBZyWQMMILMzwWwA8jrK7EYVX8MMZigaBxwv1y/OrHFov8FcUkB3yxyVplkLLAK7OMVQovBxyyzFXV7CvOWXmccsw8X4VyxdgGvdXQCBdt9FY+l7w0WC2AIPXNT1dt9dVYZ6311lx37fXXYIftUApQZtCt2FDlq+/aDwCN9lFqs712vG8TFbfca7tdN/5Q7eKN995w+4233oDzJLjfhRN1+N+JC7W43I0LdffhdEeeU9+PU235TY/ru3lQmAv+uVChQz76UCnIfTZO37Z+elGtx6756zbJLjvtP9keO+4+6e467zz5/i3wwQtPPENRl716ScLPDvyTZSuPku/HKwR99NKfZHv1CZGNPfbc2/T994SHnxK+44PvbQspOG++t+mr3xD7KdRv//saoR8/lA7Rb///+MvI/so2tv8Z0H0BTMgAzTY/AzowgRbRX/oK6EAAQrAi3hvfQypowAtG8HpQKl9BOGhBD1ZkdxHxHwdN2BISto+FLawgAmH4EQfOkIYgGR4Od8jDHvrwh4ZADKIQh0jEIhrxiEhMohKXyMQmOvGJUIyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU56cooBAQAh+QQJBQA3ACH+H0dlbmVyYXRlZCBieSBvbmxpbmVHSUZ0b29scy5jb20ALAAAAAC5ASMBhzk5OTk5OTk5OTo6Oj8/P0hISE5OTlBQUFBQUFBQUFJSUlVVVVpaWmBgYGtra3d3d4CAgIqKipCQkJWVlZeXl5iYmJmZmZqampqampqampubm6Wlpa+vr7GxsbGxsbKysrKysrKysrKysra2tru7u729vb29vb6+vr6+vr6+vr6+vsHBwcTExMnJyc/Pz9nZ2e3t7fv7+/7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wj+AG8IHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MP+ix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaGJTLoSAgQQYpHCiYik4oMCMNCqAwYuGSVDjjgo4gONgEPDIIwM/AhaCkEL6WKRaLqTgAkRIInnjkmWF8IADWGIJwZMLYRBlklSSBUGWZGI5ZUIMfCkkl2F+dWWZZZ55kJpChtDmV2PCCaedCNHJI593bhWCnoQm5OeOgAaa1ZuEluninIfSyKaiWDWqpwQIBRmpApRq5YKlcEKAkAubYpoQBg4EoGoADyTa6VD+MYJK5gMJaernqavmqqoCj74q1KeyZikqmn66OtADuiYbwLC+BhVslnIelOaXxgqErLLJMtusTxI868CkmSL5LUIYYIstuNvqBKys2irkggQPzOgABL3Oaa6ynKbr06Cg0vpRCPdiW6++OqHa6APoanRtwLqaSjBPKTBKZrsdKcBwsko+3FMKGEDwAAQYJMzRxcnmq7FZJOtq8slkWZyyqv6yLObLqkYrs0kphhCCyC25QHMAN6eUAgREF00vTS6TTHHQIXVstNE29/wy0yZJ8PTVUbME8MUDU/3R0FdfzbNKKQTMq9ckWR320w7LtHDDaJe0dtg3hZDn0XGTBPb+3EaPnbdVe/NNtN9/UxW44IQXPpXgRiv+ldqCZ+24VS4wvvTkWDk9d7WYY2X32l13vhXkREsu+lYupH766qy37vrrsMcu++y012777SeloDvuVLmAwe/Ah8z7UyoGH3zowxfFsfHGJ558T8xH/zxSvkff/PRGFW898MhjD/32wXPuPU/ghz8+rOX/7vz5NaVvOvs5aW999/AXDH79RMkPvPj485Qi9z5RXf+OkroCrm+ANTGgAREYFAUukIE/ceADIeg/CQqQgjux4AUxuBDdhcBJKrEgBxmSAp2ZUGcpkeAIO3jCFh4wIxNc4UFy1sITytAmNawh/W6okhzWUCLtG+ThRnzYQojo7oggFKJGiGhDhyARiS9UIkKYqLMdDuSJT5QiRkrIROdhEYpavAgTrSiQJn3xiGEUYw7JWMYzojGNFuGiCQ9oRjfC0SVuTOIdV5LHPeLxi358SR31GMhCGvKQiEykIhfJyEY68pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAylKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnScta2vKWuMylLnfJy1768pfADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6EznMwMCACH5BAkFADAAIf4fR2VuZXJhdGVkIGJ5IG9ubGluZUdJRnRvb2xzLmNvbQAsAAAAALkBIwGHQUFBQUFBQUFBRUVFS0tLUlJSV1dXWVlZWVlZWlpaXV1dbm5uhISEk5OTmJiYmZmZmZmZmZmZmpqanp6ep6enra2tsLCwsbGxsbGxsrKys7OztLS0t7e3urq6vb29wMDAxcXFycnJzMzMzc3Nzc3Nzs7Ozs7Oz8/P1NTU3Nzc7u7u/v7+/v7+/v7+/v7+/v7+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////CP4AYQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw/6LH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZoolMmeOCBCScyJgECMMbIAIstFmZCjDjGKEGNg3mQ448IMMAjYDcC+WMGQ/q1gJFA0phkWRIsIOUCDHjQUJFM5tjAk2RFOeWXCziJ0ItZ/silWF6C+aWYBi1ZZo5ngpWmml8q5OabMbIZZ1Z00rkjQnfiiYCee1o1Z59TJtSAoDEWyhWidCJ5kI+MLuDoVpCq+edBjCJgZUImRAnjAptealSmYJZaUAaCWoqQCf4LBCDrrLK6aipRqH4pKUKLvplQBrQGOyuht/LUQK5SEjtQr0aGiZAHwkYbgLLF4uQBsrYqdC2QqhYkbbQIVBsUA7l+2pAHEjDAgAS7IsTAt9FuKa5PsGYq70fwSjvvT/X2ea9HwOYrrLn78nSolAR79K7AwXZbsE4eZMAutRrFyjCt/z5MlsUXy5qxxmI10PGsDoP8FbQjT2sySya0fFPK4a6cUrrqqttuTBKMfLPMInlQ88/qUpwSAhdny3PPQCctNEpE5xvz0SQlnfTHLzUtrdFQg5SB1EknDBOrwi7gddYfNcA10CW/ZILEEoxNNkhnJ/22WHEDPXdYdf98t/6cea+798l9L/23VGbHnfbgVplQN+JgmVA42oyLhW7NEgge+eWYZ6755px37vnnoIcu+uikE+ly6VSxLcHqbqOOVKirxx67607JbvvqtC+l+u2r75z7ULzf/vtRsAcfu+XD24Su8ccnT1TxzCPvPE3Mzz498NX7fj1P0PO+PVHL8y799zN1v/r45NOUYgYrpu/++/DHL//89GPWMvr1sxRxBvxngH/+J+mfANkHQJwMcICtKyDLDjhABdKEgQP8nwM7AkEBIu9+95vgRirYP8thEIMazMj+Kii4D34whBdZGwcfYkIQotAiIzwgRFrowhdSJIYdnCENT2dDiqyPf6UJfNUOJdjDFO6wiC45IhJZ1sIlqi2DToyiFKdIxSpa8YpYzKIWt8jFLnrxi2AMoxjHSMYymvGMaEyjGtfIxja68Y1wjKMc50jHOtrxjnjMox73yMc++vGPgAykIAdJyEIa8pCITKQiF8nIRjrykZCMpCQnSclKWvKSmMykJjfJyU568pOgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1qSLyAAOw==";
2262
2249
 
2263
- var _templateObject$o, _templateObject2$m, _templateObject3$j, _templateObject4$b;
2250
+ var _templateObject$k, _templateObject2$i, _templateObject3$f, _templateObject4$a;
2264
2251
  function SignIn(_ref) {
2265
2252
  let {
2266
2253
  description
2267
2254
  } = _ref;
2268
2255
  const theme = useTheme();
2269
2256
  const styles = {
2270
- wrapper: css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2271
- header: css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2272
- icon: css(_templateObject3$j || (_templateObject3$j = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
2273
- content: css(_templateObject4$b || (_templateObject4$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8))
2257
+ wrapper: css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2258
+ header: css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2259
+ icon: css(_templateObject3$f || (_templateObject3$f = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-right: ", ";\n & > img {\n width: 170px;\n }\n "])), theme.cssMixins.rowHCentered, theme.spacing(12), theme.spacing(4)),
2260
+ content: css(_templateObject4$a || (_templateObject4$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8))
2274
2261
  };
2275
2262
  return jsxs(Box, {
2276
2263
  css: styles.wrapper,
@@ -2291,7 +2278,7 @@ function SignIn(_ref) {
2291
2278
  });
2292
2279
  }
2293
2280
 
2294
- var _templateObject$n, _templateObject2$l, _templateObject3$i, _templateObject4$a, _templateObject5$6, _templateObject6$5, _templateObject7$5;
2281
+ var _templateObject$j, _templateObject2$h, _templateObject3$e, _templateObject4$9, _templateObject5$5, _templateObject6$4, _templateObject7$4;
2295
2282
  function Evaluation$4(_ref) {
2296
2283
  let {
2297
2284
  poolInfo,
@@ -2323,13 +2310,13 @@ function Evaluation$4(_ref) {
2323
2310
  fetchData();
2324
2311
  }, [account, chainId, checkingEA, handleApprove, poolInfo.assetAddress, poolInfo.pool, isWalletOwnershipVerified]);
2325
2312
  const styles = {
2326
- wrapper: css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2327
- header: css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2328
- content: css(_templateObject3$i || (_templateObject3$i = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8)),
2329
- checkWrapper: css(_templateObject4$a || (_templateObject4$a = _taggedTemplateLiteral(["\n ", "\n width: 100%;\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowVCentered, theme.palette.text.secondary),
2330
- checkIcon: css(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral(["\n ", "\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n "])), theme.cssMixins.rowCentered),
2331
- congratsWrapper: css(_templateObject6$5 || (_templateObject6$5 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n padding: ", ";\n ", "\n margin-top: ", ";\n height: 52px;\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 0.9),\n rgba(255, 255, 255, 0.9)\n ),\n #2e7d32;\n border-radius: 4px;\n "])), theme.spacing(0, 2), theme.cssMixins.rowVCentered, theme.spacing(8)),
2332
- bottom: css(_templateObject7$5 || (_templateObject7$5 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
2313
+ wrapper: css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2314
+ header: css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2315
+ content: css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(4), theme.palette.text.secondary, theme.spacing(8)),
2316
+ checkWrapper: css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n ", "\n width: 100%;\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowVCentered, theme.palette.text.secondary),
2317
+ checkIcon: css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n ", "\n width: 105px;\n height: 100%;\n\n & > img {\n max-width: 100%;\n max-height: 100%;\n }\n "])), theme.cssMixins.rowCentered),
2318
+ congratsWrapper: css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n padding: ", ";\n ", "\n margin-top: ", ";\n height: 52px;\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 0.9),\n rgba(255, 255, 255, 0.9)\n ),\n #2e7d32;\n border-radius: 4px;\n "])), theme.spacing(0, 2), theme.cssMixins.rowVCentered, theme.spacing(8)),
2319
+ bottom: css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
2333
2320
  };
2334
2321
  const goToNextStep = () => {
2335
2322
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -2392,7 +2379,7 @@ function Evaluation$4(_ref) {
2392
2379
  });
2393
2380
  }
2394
2381
 
2395
- var _templateObject$m, _templateObject2$k, _templateObject3$h, _templateObject4$9, _templateObject5$5, _templateObject6$4, _templateObject7$4, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
2382
+ var _templateObject$i, _templateObject2$g, _templateObject3$d, _templateObject4$8, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
2396
2383
  function ChooseAmountModal(_ref) {
2397
2384
  let {
2398
2385
  title,
@@ -2419,13 +2406,13 @@ function ChooseAmountModal(_ref) {
2419
2406
  } = useMQ();
2420
2407
  const [inputTouched, setInputTouched] = useState(false);
2421
2408
  const styles = {
2422
- subTitle: css(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
2423
- description2: css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(2)),
2424
- chosenAmountWrapper: css(_templateObject3$h || (_templateObject3$h = _taggedTemplateLiteral(["\n ", ";\n background: linear-gradient(232.71deg, #a363f4 4.17%, #ff6a8a 178.69%);\n background-clip: text;\n -webkit-text-fill-color: transparent;\n font-weight: 700;\n font-size: 32px;\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(1), theme.spacing(4)),
2425
- chosenAmount: css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral(["\n font-weight: 700;\n font-size: 32px;\n "]))),
2426
- chosenAmountSymbol: css(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral(["\n font-size: 75%;\n margin-left: ", ";\n letter-spacing: 0.1px;\n "])), theme.spacing(0.5)),
2427
- inputAmountWrapper: css(_templateObject6$4 || (_templateObject6$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(4)),
2428
- inputAmount: css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
2409
+ subTitle: css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
2410
+ description2: css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(2)),
2411
+ chosenAmountWrapper: css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteral(["\n ", ";\n background: linear-gradient(232.71deg, #a363f4 4.17%, #ff6a8a 178.69%);\n background-clip: text;\n -webkit-text-fill-color: transparent;\n font-weight: 700;\n font-size: 32px;\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(1), theme.spacing(4)),
2412
+ chosenAmount: css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n font-weight: 700;\n font-size: 32px;\n "]))),
2413
+ chosenAmountSymbol: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n font-size: 75%;\n margin-left: ", ";\n letter-spacing: 0.1px;\n "])), theme.spacing(0.5)),
2414
+ inputAmountWrapper: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(4)),
2415
+ inputAmount: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
2429
2416
  inputField: css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2430
2417
  maxButton: css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n width: 80px;\n "]))),
2431
2418
  amountAvailable: css(_templateObject10$1 || (_templateObject10$1 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n margin-bottom: ", ";\n font-size: 16px;\n & > svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(0.5), theme.spacing(12), theme.spacing(0.5)),
@@ -2575,7 +2562,7 @@ function ChooseAmountModal(_ref) {
2575
2562
  });
2576
2563
  }
2577
2564
 
2578
- function ChooseAmount$f(_ref) {
2565
+ function ChooseAmount$c(_ref) {
2579
2566
  let {
2580
2567
  poolInfo,
2581
2568
  accountStats
@@ -2635,7 +2622,7 @@ function ChooseAmount$f(_ref) {
2635
2622
  });
2636
2623
  }
2637
2624
 
2638
- function ApproveAllowance$b(_ref) {
2625
+ function ApproveAllowance$a(_ref) {
2639
2626
  let {
2640
2627
  poolInfo
2641
2628
  } = _ref;
@@ -2694,7 +2681,7 @@ function TxSendModal(_ref) {
2694
2681
  });
2695
2682
  }
2696
2683
 
2697
- function Transfer$i(_ref) {
2684
+ function Transfer$f(_ref) {
2698
2685
  let {
2699
2686
  poolInfo
2700
2687
  } = _ref;
@@ -2717,7 +2704,7 @@ function Transfer$i(_ref) {
2717
2704
  });
2718
2705
  }
2719
2706
 
2720
- function Success$d(_ref) {
2707
+ function Success$c(_ref) {
2721
2708
  let {
2722
2709
  poolInfo,
2723
2710
  creditRecord,
@@ -2742,182 +2729,114 @@ function Success$d(_ref) {
2742
2729
  });
2743
2730
  }
2744
2731
 
2745
- const useDoesChainSupportNotifi = chainId => {
2746
- const [notifiChainSupported, setNotifiChainSupported] = useState(false);
2747
- useEffect(() => {
2748
- const checkNotifiChainSupported = async () => {
2749
- if (chainId != null) {
2750
- setNotifiChainSupported(doesChainSupportNotifi(chainId, checkIsDev()));
2751
- }
2752
- };
2753
- checkNotifiChainSupported();
2754
- }, [chainId]);
2755
- return {
2756
- notifiChainSupported
2757
- };
2758
- };
2759
- const useNotifiClient = (account, chainId) => {
2760
- const [notifiClient, setNotifiClient] = useState(null);
2761
- const {
2762
- notifiChainSupported
2763
- } = useDoesChainSupportNotifi(chainId);
2764
- useEffect(() => {
2765
- const createNotifiClient = async () => {
2766
- if (account != null && chainId != null && notifiChainSupported) {
2767
- const client = newFrontendClient({
2768
- account: {
2769
- publicKey: account
2770
- },
2771
- tenantId: 'humafinanceprod',
2772
- env: 'Production',
2773
- walletBlockchain: getBlockchainConfigFromChain(chainId)
2774
- });
2775
- await client.initialize();
2776
- setNotifiClient(client);
2777
- }
2778
- };
2779
- createNotifiClient();
2780
- }, [account, chainId, notifiChainSupported]);
2781
- return {
2782
- notifiClient
2783
- };
2784
- };
2785
- const useIsFirstTimeNotifiUser = (account, chainId) => {
2786
- const [isFirstTimeNotifiUser, setIsFirstTimeNotifiUser] = useState(false);
2787
- const {
2788
- notifiClient
2789
- } = useNotifiClient(account, chainId);
2790
- const {
2791
- notifiChainSupported
2792
- } = useDoesChainSupportNotifi(chainId);
2793
- useEffect(() => {
2794
- const checkIsFirstTimeNotifiUser = async () => {
2795
- if (notifiClient != null && notifiChainSupported) {
2796
- const {
2797
- userState
2798
- } = notifiClient;
2799
- // If the user is not authenticated or expired, they are a first time user
2800
- if (userState == null || userState.status !== 'authenticated' && userState.status !== 'expired') {
2801
- setIsFirstTimeNotifiUser(true);
2802
- } else if (userState.status === 'authenticated') {
2803
- var _targetGroups$;
2804
- // If a user is authenticated, check if they have a target group (AKA email)
2805
- // associated with their wallet. If they do not, show them the notifi onboarding flow.
2806
- const targetGroups = await notifiClient.getTargetGroups();
2807
- const emailTargets = (_targetGroups$ = targetGroups[0]) === null || _targetGroups$ === void 0 || (_targetGroups$ = _targetGroups$.emailTargets) === null || _targetGroups$ === void 0 ? void 0 : _targetGroups$[0];
2808
- if (emailTargets == null || emailTargets.emailAddress == null) {
2809
- setIsFirstTimeNotifiUser(true);
2810
- }
2811
- }
2812
- }
2813
- };
2814
- checkIsFirstTimeNotifiUser();
2815
- }, [notifiChainSupported, notifiClient]);
2816
- return {
2817
- isFirstTimeNotifiUser
2818
- };
2732
+ var _templateObject$h, _templateObject2$f, _templateObject3$c, _templateObject4$7, _templateObject5$3;
2733
+ const validateDefaultTargetGroup = async frontendClient => {
2734
+ var _await$frontendClient;
2735
+ // NOTE: this extra request is necessary as the targetGroupId state in NotifiTargetContext will not be updated constantly right after login
2736
+ const targetGroup = (_await$frontendClient = await (frontendClient === null || frontendClient === void 0 ? void 0 : frontendClient.fetchFusionData())) === null || _await$frontendClient === void 0 || (_await$frontendClient = _await$frontendClient.targetGroup) === null || _await$frontendClient === void 0 ? void 0 : _await$frontendClient.find(group => (group === null || group === void 0 ? void 0 : group.name) === 'Default');
2737
+ return !!targetGroup;
2819
2738
  };
2820
-
2821
- var _templateObject$l, _templateObject2$j, _templateObject3$g, _templateObject4$8, _templateObject5$4;
2822
- function getIdFromEventType(eventType) {
2823
- if (eventType.type === 'directPush') {
2824
- const directPushEventType = eventType;
2825
- return directPushEventType.directPushId.value;
2826
- }
2827
- if (eventType.type === 'broadcast') {
2828
- const broadcastEventType = eventType;
2829
- return broadcastEventType.broadcastId.value;
2830
- }
2831
- return '';
2832
- }
2833
- async function fetchEventTypes(notifiClient) {
2834
- var _process$env$REACT_AP, _subscriptionConfig$e;
2835
- const subscribedAlerts = await notifiClient.getAlerts();
2836
- const subscriptionConfig = await notifiClient.fetchSubscriptionCard({
2837
- id: (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '',
2838
- type: 'SUBSCRIPTION_CARD'
2839
- });
2840
- const eventTypes = subscriptionConfig === null || subscriptionConfig === void 0 || (_subscriptionConfig$e = subscriptionConfig.eventTypes) === null || _subscriptionConfig$e === void 0 ? void 0 : _subscriptionConfig$e.map(eventType => {
2841
- const eventTypeId = getIdFromEventType(eventType);
2842
- let enabled = false;
2843
- // Check whether the user is subscribed to the event
2844
- const subscribedAlert = subscribedAlerts === null || subscribedAlerts === void 0 ? void 0 : subscribedAlerts.find(alert => alert.filterOptions.indexOf(eventTypeId) >= 0);
2845
- if (subscribedAlert) {
2846
- enabled = true;
2847
- }
2848
- return {
2849
- ...eventType,
2850
- enabled
2851
- };
2852
- });
2853
- return eventTypes;
2854
- }
2855
2739
  function NotifiSubscriptionModal(_ref) {
2856
2740
  let {
2741
+ successText,
2857
2742
  handleSuccess
2858
2743
  } = _ref;
2859
2744
  const theme = useTheme();
2860
2745
  const reset = useResetAtom(txAtom);
2861
2746
  const dispatch = useAppDispatch();
2862
- const {
2863
- account,
2864
- chainId,
2865
- provider
2866
- } = useWeb3React();
2867
2747
  const [showSuccessScreen, setShowSuccessScreen] = useState(false);
2868
2748
  const [isLoading, setIsLoading] = useState(false);
2869
2749
  const [emailAddress, setEmailAddress] = useState('');
2870
2750
  const [emailValid, setEmailValid] = useState();
2871
2751
  const {
2872
- notifiClient
2873
- } = useNotifiClient(account, chainId);
2874
- const signMessage = async message => {
2875
- const signer = provider.getSigner();
2876
- const signature = await signer.signMessage(Buffer.from(message));
2877
- return ethers.utils.arrayify(signature);
2878
- };
2752
+ frontendClientStatus: {
2753
+ isInitialized,
2754
+ isAuthenticated,
2755
+ isExpired
2756
+ },
2757
+ frontendClient,
2758
+ login
2759
+ } = useNotifiFrontendClientContext();
2760
+ const {
2761
+ fusionEventTopics
2762
+ } = useNotifiTenantConfigContext();
2763
+ const {
2764
+ subscribeAlertsDefault
2765
+ } = useNotifiTopicContext();
2766
+ const {
2767
+ targetDocument: {
2768
+ targetGroupId
2769
+ },
2770
+ updateTargetInputs,
2771
+ renewTargetGroup
2772
+ } = useNotifiTargetContext();
2773
+ const {
2774
+ ftuStage,
2775
+ isLoading: isLoadingFtuStage,
2776
+ updateFtuStage
2777
+ } = useNotifiUserSettingContext();
2879
2778
  const handleEmailAddressChange = event => {
2880
2779
  var _event$target$value;
2881
2780
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
2882
2781
  setEmailValid(emailRegex.test((_event$target$value = event.target.value) !== null && _event$target$value !== void 0 ? _event$target$value : ''));
2883
2782
  setEmailAddress(event.target.value);
2884
2783
  };
2784
+ useEffect(() => {
2785
+ async function subscribe() {
2786
+ if (!isInitialized || !isAuthenticated || !targetGroupId || isLoadingFtuStage) {
2787
+ return;
2788
+ }
2789
+
2790
+ // If a user is authenticated but already finished with the FTU (First Time User) setup
2791
+ // (AKA their login expired and they logged back in), then we can skip the subscription step.
2792
+ if (ftuStage !== FtuStage.Done) {
2793
+ var _await$frontendClient2, _targetGroup$emailTar;
2794
+ await updateTargetInputs('email', {
2795
+ value: emailAddress
2796
+ });
2797
+ // Authorize this email address for this wallet
2798
+
2799
+ if (!targetGroupId) {
2800
+ setIsLoading(false);
2801
+ return;
2802
+ }
2803
+ await subscribeAlertsDefault(fusionEventTopics, targetGroupId);
2804
+ await updateFtuStage(FtuStage.Done);
2805
+ const targetGroup = (_await$frontendClient2 = await (frontendClient === null || frontendClient === void 0 ? void 0 : frontendClient.fetchFusionData())) === null || _await$frontendClient2 === void 0 || (_await$frontendClient2 = _await$frontendClient2.targetGroup) === null || _await$frontendClient2 === void 0 ? void 0 : _await$frontendClient2.find(group => (group === null || group === void 0 ? void 0 : group.name) === 'Default');
2806
+ const emailTarget = targetGroup === null || targetGroup === void 0 || (_targetGroup$emailTar = targetGroup.emailTargets) === null || _targetGroup$emailTar === void 0 ? void 0 : _targetGroup$emailTar[0];
2807
+ if (emailTarget && !emailTarget.isConfirmed) {
2808
+ await frontendClient.sendEmailTargetVerification({
2809
+ targetId: emailTarget.id
2810
+ });
2811
+ }
2812
+ }
2813
+ setShowSuccessScreen(true);
2814
+ setIsLoading(false);
2815
+ }
2816
+ subscribe();
2817
+ }, [isInitialized, isAuthenticated, targetGroupId, updateTargetInputs, emailAddress, subscribeAlertsDefault, fusionEventTopics, updateFtuStage, isLoadingFtuStage, ftuStage, frontendClient]);
2818
+ useEffect(() => {
2819
+ const loginIfExpired = async () => {
2820
+ if (isExpired) {
2821
+ await login();
2822
+ }
2823
+ };
2824
+ loginIfExpired();
2825
+ }, [isExpired, login]);
2885
2826
  const logInAndSubscribe = async () => {
2886
- if (notifiClient != null && chainId != null) {
2827
+ if (!isAuthenticated) {
2887
2828
  setIsLoading(true);
2888
2829
 
2889
2830
  // Ask user to sign a message to authenticate
2890
2831
  try {
2891
- await notifiClient.logIn({
2892
- walletBlockchain: getBlockchainConfigFromChain(chainId),
2893
- signMessage
2894
- });
2832
+ await login();
2833
+ const isDefaultTargetExist = await validateDefaultTargetGroup(frontendClient);
2834
+ if (!isDefaultTargetExist) {
2835
+ await renewTargetGroup();
2836
+ }
2895
2837
  } catch (e) {
2896
2838
  setIsLoading(false);
2897
- return;
2898
- }
2899
-
2900
- // Fetch all event types
2901
- const fetchedEventTypes = await fetchEventTypes(notifiClient);
2902
-
2903
- // Authorize this email address for this wallet
2904
- await notifiClient.ensureTargetGroup({
2905
- name: 'Default',
2906
- emailAddress: emailAddress
2907
- });
2908
-
2909
- // Intentionally running this in serial because the Notifi ensureAlert can't handle
2910
- // multiple calls. Notified their team to fix this.
2911
- // eslint-disable-next-line no-restricted-syntax
2912
- for (const eventType of fetchedEventTypes) {
2913
- // eslint-disable-next-line no-await-in-loop
2914
- await notifiClient.ensureAlert({
2915
- eventType,
2916
- inputs: {}
2917
- });
2918
2839
  }
2919
- setShowSuccessScreen(true);
2920
- setIsLoading(false);
2921
2840
  }
2922
2841
  };
2923
2842
  const handleCloseModal = useCallback(() => {
@@ -2926,11 +2845,11 @@ function NotifiSubscriptionModal(_ref) {
2926
2845
  handleSuccess();
2927
2846
  }, [dispatch, handleSuccess, reset]);
2928
2847
  const styles = {
2929
- disclaimer: css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(6)),
2930
- inputField: css(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteral(["\n width: 100%;\n font-size: 16px;\n "]))),
2931
- inputWrapper: css(_templateObject3$g || (_templateObject3$g = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2932
- header: css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2933
- check: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10))
2848
+ disclaimer: css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowCentered, theme.palette.text.secondary, theme.spacing(6)),
2849
+ inputField: css(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteral(["\n width: 100%;\n font-size: 16px;\n "]))),
2850
+ inputWrapper: css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2851
+ header: css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
2852
+ check: css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10))
2934
2853
  };
2935
2854
  if (isLoading) {
2936
2855
  return jsx(LoadingModal, {
@@ -2947,7 +2866,7 @@ function NotifiSubscriptionModal(_ref) {
2947
2866
  }), jsx(BottomButton, {
2948
2867
  variant: "contained",
2949
2868
  onClick: handleCloseModal,
2950
- children: "DONE"
2869
+ children: successText !== null && successText !== void 0 ? successText : 'DONE'
2951
2870
  })]
2952
2871
  });
2953
2872
  }
@@ -2955,7 +2874,6 @@ function NotifiSubscriptionModal(_ref) {
2955
2874
  title: "Connect Your Email",
2956
2875
  children: [jsx(Typography, {
2957
2876
  variant: "body2",
2958
- textAlign: "justify",
2959
2877
  margin: theme.spacing(6, 0, 4, 0),
2960
2878
  children: "Connect your emails to receive important update about your account."
2961
2879
  }), jsx(Box, {
@@ -2966,7 +2884,9 @@ function NotifiSubscriptionModal(_ref) {
2966
2884
  type: "email",
2967
2885
  value: emailAddress,
2968
2886
  onChange: handleEmailAddressChange,
2969
- variant: "standard"
2887
+ variant: "outlined",
2888
+ color: "primary",
2889
+ focused: true
2970
2890
  })
2971
2891
  }), jsx(Box, {
2972
2892
  css: styles.disclaimer,
@@ -2974,7 +2894,7 @@ function NotifiSubscriptionModal(_ref) {
2974
2894
  }), jsx(BottomButton, {
2975
2895
  variant: "contained",
2976
2896
  onClick: logInAndSubscribe,
2977
- disabled: !emailValid || isLoading,
2897
+ disabled: !emailValid || isLoading || !isInitialized,
2978
2898
  children: "CONNECT EMAIL"
2979
2899
  })]
2980
2900
  });
@@ -2989,6 +2909,63 @@ function Notifications$4(_ref) {
2989
2909
  });
2990
2910
  }
2991
2911
 
2912
+ const useDoesChainSupportNotifi = chainId => {
2913
+ const [notifiChainSupported, setNotifiChainSupported] = useState(false);
2914
+ useEffect(() => {
2915
+ const checkNotifiChainSupported = async () => {
2916
+ if (chainId != null) {
2917
+ setNotifiChainSupported(doesChainSupportNotifi(chainId, checkIsDev()));
2918
+ }
2919
+ };
2920
+ checkNotifiChainSupported();
2921
+ }, [chainId]);
2922
+ return {
2923
+ notifiChainSupported
2924
+ };
2925
+ };
2926
+
2927
+ // Check if user is authenticated
2928
+ // If not authenticated or expired, have user login
2929
+ // After login, check FTU stage
2930
+ // If FTU stage is not Done, go to signup flow. Otherwise, skip to next step
2931
+
2932
+ const useIsFirstTimeNotifiUser = (account, chainId) => {
2933
+ const [isFirstTimeNotifiUser, setIsFirstTimeNotifiUser] = useState(false);
2934
+ const {
2935
+ frontendClientStatus: {
2936
+ isInitialized,
2937
+ isAuthenticated,
2938
+ isExpired
2939
+ }
2940
+ } = useNotifiFrontendClientContext();
2941
+ const {
2942
+ ftuStage,
2943
+ isLoading: isLoadingFtu
2944
+ } = useNotifiUserSettingContext();
2945
+ const {
2946
+ notifiChainSupported
2947
+ } = useDoesChainSupportNotifi(chainId);
2948
+ useEffect(() => {
2949
+ const checkIsFirstTimeNotifiUser = async () => {
2950
+ if (isInitialized && notifiChainSupported) {
2951
+ // If the user is not authenticated or expired, they are possibly a first time user.
2952
+ if (!isAuthenticated || isExpired) {
2953
+ setIsFirstTimeNotifiUser(true);
2954
+ } else if (isAuthenticated) {
2955
+ // If a user is authenticated, check if they've completed all the FTU (First Time User) stages.
2956
+ if (ftuStage !== FtuStage.Done) {
2957
+ setIsFirstTimeNotifiUser(true);
2958
+ }
2959
+ }
2960
+ }
2961
+ };
2962
+ checkIsFirstTimeNotifiUser();
2963
+ }, [ftuStage, isAuthenticated, isExpired, isInitialized, isLoadingFtu, notifiChainSupported]);
2964
+ return {
2965
+ isFirstTimeNotifiUser
2966
+ };
2967
+ };
2968
+
2992
2969
  function CreditLineBorrow(_ref) {
2993
2970
  let {
2994
2971
  poolName: poolNameStr,
@@ -3052,14 +3029,14 @@ function CreditLineBorrow(_ref) {
3052
3029
  children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$4, {
3053
3030
  poolInfo: poolInfo,
3054
3031
  handleApprove: approveCallback
3055
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$f, {
3032
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
3056
3033
  poolInfo: poolInfo,
3057
3034
  accountStats: accountStats
3058
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$b, {
3035
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$a, {
3059
3036
  poolInfo: poolInfo
3060
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$i, {
3037
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
3061
3038
  poolInfo: poolInfo
3062
- }), step === WIDGET_STEP.Done && jsx(Success$d, {
3039
+ }), step === WIDGET_STEP.Done && jsx(Success$c, {
3063
3040
  poolInfo: poolInfo,
3064
3041
  handleAction: setupNotificationsOrClose,
3065
3042
  creditRecord: creditRecord,
@@ -3074,7 +3051,7 @@ function CreditLineBorrow(_ref) {
3074
3051
  });
3075
3052
  }
3076
3053
 
3077
- var _templateObject$k, _templateObject2$i, _templateObject3$f, _templateObject4$7, _templateObject5$3, _templateObject6$3, _templateObject7$3, _templateObject8$1;
3054
+ var _templateObject$g, _templateObject2$e, _templateObject3$b, _templateObject4$6, _templateObject5$2, _templateObject6$2, _templateObject7$2, _templateObject8$1;
3078
3055
  function InputAmountModal(_ref) {
3079
3056
  let {
3080
3057
  title,
@@ -3083,7 +3060,6 @@ function InputAmountModal(_ref) {
3083
3060
  tokenSymbol,
3084
3061
  suffix: defaultSuffix,
3085
3062
  currentAmount,
3086
- minimumAmount,
3087
3063
  maxAmount,
3088
3064
  maxAmountText = 'MAX',
3089
3065
  maxAmountTitle,
@@ -3095,13 +3071,13 @@ function InputAmountModal(_ref) {
3095
3071
  const [inputTouched, setInputTouched] = useState(false);
3096
3072
  const suffix = " ".concat(defaultSuffix !== null && defaultSuffix !== void 0 ? defaultSuffix : tokenSymbol);
3097
3073
  const styles = {
3098
- inputAmountWrapper: css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
3099
- inputAmount: css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
3100
- inputField: css(_templateObject3$f || (_templateObject3$f = _taggedTemplateLiteral(["\n input {\n width: 100%;\n color: ", ";\n font-weight: 800;\n font-size: 40px;\n line-height: 133.4%;\n }\n "])), theme.palette.text.primary),
3101
- maxWrapper: css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n justify-content: flex-end;\n "]))),
3102
- maxTitle: css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral(["\n position: absolute;\n color: ", ";\n font-weight: 400;\n font-size: 12px;\n line-height: 166%;\n letter-spacing: 0.4px;\n top: ", ";\n width: 200px;\n text-align: right;\n "])), theme.palette.text.primary, theme.spacing(-3)),
3103
- max: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteral(["\n display: flex;\n min-width: fit-content;\n justify-content: center;\n align-items: center;\n border-radius: 32px;\n padding: 4px 10px;\n gap: 8px;\n font-weight: 700;\n font-size: 13px;\n line-height: 22px;\n letter-spacing: 0.46px;\n "]))),
3104
- info: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.palette.text.secondary),
3074
+ inputAmountWrapper: css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
3075
+ inputAmount: css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
3076
+ inputField: css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n input {\n width: 100%;\n color: ", ";\n font-weight: 800;\n font-size: 40px;\n line-height: 133.4%;\n }\n "])), theme.palette.text.primary),
3077
+ maxWrapper: css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n position: relative;\n display: flex;\n justify-content: flex-end;\n "]))),
3078
+ maxTitle: css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n position: absolute;\n color: ", ";\n font-weight: 400;\n font-size: 12px;\n line-height: 166%;\n letter-spacing: 0.4px;\n top: ", ";\n width: 200px;\n text-align: right;\n "])), theme.palette.text.primary, theme.spacing(-3)),
3079
+ max: css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n display: flex;\n min-width: fit-content;\n justify-content: center;\n align-items: center;\n border-radius: 32px;\n padding: 4px 10px;\n gap: 8px;\n font-weight: 700;\n font-size: 13px;\n line-height: 22px;\n letter-spacing: 0.46px;\n "]))),
3080
+ info: css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.palette.text.secondary),
3105
3081
  subInfo: css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: ", ";\n "])), theme.spacing(6))
3106
3082
  };
3107
3083
  const onChange = event => {
@@ -3118,9 +3094,6 @@ function InputAmountModal(_ref) {
3118
3094
  if (!isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) {
3119
3095
  return true;
3120
3096
  }
3121
- if (!isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount) {
3122
- return true;
3123
- }
3124
3097
  return false;
3125
3098
  };
3126
3099
  const getEndAdornment = () => jsxs(Box, {
@@ -3162,11 +3135,6 @@ function InputAmountModal(_ref) {
3162
3135
  css: styles.info,
3163
3136
  children: info
3164
3137
  }, info))
3165
- }), !!minimumAmount && minimumAmount > 0 && jsx(Box, {
3166
- children: jsxs(Typography, {
3167
- css: styles.info,
3168
- children: ["Minimum deposit: ", minimumAmount, " ", tokenSymbol]
3169
- }, 'minDeposit')
3170
3138
  }), jsx(BottomButton, {
3171
3139
  variant: "contained",
3172
3140
  onClick: handleAction,
@@ -3176,7 +3144,7 @@ function InputAmountModal(_ref) {
3176
3144
  });
3177
3145
  }
3178
3146
 
3179
- function ChooseAmount$e(_ref) {
3147
+ function ChooseAmount$b(_ref) {
3180
3148
  let {
3181
3149
  poolInfo,
3182
3150
  poolUnderlyingToken,
@@ -3229,7 +3197,7 @@ function ChooseAmount$e(_ref) {
3229
3197
  });
3230
3198
  }
3231
3199
 
3232
- function ApproveAllowance$a(_ref) {
3200
+ function ApproveAllowance$9(_ref) {
3233
3201
  let {
3234
3202
  poolInfo,
3235
3203
  poolUnderlyingToken
@@ -3287,7 +3255,7 @@ function TxSendModalV2(_ref) {
3287
3255
  });
3288
3256
  }
3289
3257
 
3290
- function Transfer$h(_ref) {
3258
+ function Transfer$e(_ref) {
3291
3259
  let {
3292
3260
  poolInfo
3293
3261
  } = _ref;
@@ -3321,7 +3289,7 @@ function Transfer$h(_ref) {
3321
3289
  });
3322
3290
  }
3323
3291
 
3324
- function Success$c(_ref) {
3292
+ function Success$b(_ref) {
3325
3293
  let {
3326
3294
  poolUnderlyingToken,
3327
3295
  creditRecord,
@@ -3418,16 +3386,16 @@ function CreditLineBorrowV2(_ref) {
3418
3386
  handleSuccess: handleSuccessCallback,
3419
3387
  children: [!step && jsx(LoadingModal, {
3420
3388
  title: "Borrow"
3421
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$e, {
3389
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
3422
3390
  poolInfo: poolInfo,
3423
3391
  poolUnderlyingToken: poolUnderlyingToken,
3424
3392
  accountStats: accountStats
3425
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$a, {
3393
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$9, {
3426
3394
  poolInfo: poolInfo,
3427
3395
  poolUnderlyingToken: poolUnderlyingToken
3428
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$h, {
3396
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
3429
3397
  poolInfo: poolInfo
3430
- }), step === WIDGET_STEP.Done && jsx(Success$c, {
3398
+ }), step === WIDGET_STEP.Done && jsx(Success$b, {
3431
3399
  poolUnderlyingToken: poolUnderlyingToken,
3432
3400
  handleAction: setupNotificationsOrClose,
3433
3401
  creditRecord: accountStats.creditRecord,
@@ -3442,7 +3410,7 @@ function CreditLineBorrowV2(_ref) {
3442
3410
  });
3443
3411
  }
3444
3412
 
3445
- function ChooseAmount$d(_ref) {
3413
+ function ChooseAmount$a(_ref) {
3446
3414
  let {
3447
3415
  payoffAmount,
3448
3416
  totalDueAmount,
@@ -3493,7 +3461,7 @@ function ChooseAmount$d(_ref) {
3493
3461
  });
3494
3462
  }
3495
3463
 
3496
- function ApproveAllowance$9(_ref) {
3464
+ function ApproveAllowance$8(_ref) {
3497
3465
  let {
3498
3466
  poolInfo
3499
3467
  } = _ref;
@@ -3507,7 +3475,7 @@ function ApproveAllowance$9(_ref) {
3507
3475
  });
3508
3476
  }
3509
3477
 
3510
- function Transfer$g(_ref) {
3478
+ function Transfer$d(_ref) {
3511
3479
  let {
3512
3480
  poolInfo
3513
3481
  } = _ref;
@@ -3533,7 +3501,7 @@ function Transfer$g(_ref) {
3533
3501
  });
3534
3502
  }
3535
3503
 
3536
- function Success$b(_ref) {
3504
+ function Success$a(_ref) {
3537
3505
  let {
3538
3506
  poolInfo,
3539
3507
  handleAction
@@ -3599,15 +3567,15 @@ function CreditLinePayment(_ref) {
3599
3567
  loadingTitle: "Make Payment",
3600
3568
  handleClose: handleClose,
3601
3569
  handleSuccess: handleSuccess,
3602
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$d, {
3570
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$a, {
3603
3571
  poolInfo: poolInfo,
3604
3572
  payoffAmount: payoffAmount,
3605
3573
  totalDueAmount: totalDueAmount
3606
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$9, {
3574
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$8, {
3607
3575
  poolInfo: poolInfo
3608
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$g, {
3576
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$d, {
3609
3577
  poolInfo: poolInfo
3610
- }), step === WIDGET_STEP.Done && jsx(Success$b, {
3578
+ }), step === WIDGET_STEP.Done && jsx(Success$a, {
3611
3579
  poolInfo: poolInfo,
3612
3580
  handleAction: handleClose
3613
3581
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -3618,7 +3586,7 @@ function CreditLinePayment(_ref) {
3618
3586
  });
3619
3587
  }
3620
3588
 
3621
- function ChooseAmount$c(_ref) {
3589
+ function ChooseAmount$9(_ref) {
3622
3590
  let {
3623
3591
  payoffAmount: payoffAmountBN,
3624
3592
  totalDueAmount: totalDueAmountBN,
@@ -3679,7 +3647,7 @@ function ChooseAmount$c(_ref) {
3679
3647
  });
3680
3648
  }
3681
3649
 
3682
- function ApproveAllowance$8(_ref) {
3650
+ function ApproveAllowance$7(_ref) {
3683
3651
  let {
3684
3652
  poolInfo,
3685
3653
  poolUnderlyingToken
@@ -3697,7 +3665,7 @@ function ApproveAllowance$8(_ref) {
3697
3665
  });
3698
3666
  }
3699
3667
 
3700
- function Transfer$f(_ref) {
3668
+ function Transfer$c(_ref) {
3701
3669
  let {
3702
3670
  poolInfo,
3703
3671
  poolUnderlyingToken
@@ -3732,7 +3700,7 @@ function Transfer$f(_ref) {
3732
3700
  });
3733
3701
  }
3734
3702
 
3735
- function Success$a(_ref) {
3703
+ function Success$9(_ref) {
3736
3704
  let {
3737
3705
  poolUnderlyingToken,
3738
3706
  handleAction
@@ -3803,18 +3771,18 @@ function CreditLinePaymentV2(_ref) {
3803
3771
  loadingTitle: "Pay",
3804
3772
  handleClose: handleClose,
3805
3773
  handleSuccess: handleSuccess,
3806
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
3774
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$9, {
3807
3775
  poolInfo: poolInfo,
3808
3776
  poolUnderlyingToken: poolUnderlyingToken,
3809
3777
  payoffAmount: payoffAmount,
3810
3778
  totalDueAmount: totalDueAmount
3811
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$8, {
3779
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$7, {
3812
3780
  poolInfo: poolInfo,
3813
3781
  poolUnderlyingToken: poolUnderlyingToken
3814
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
3782
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
3815
3783
  poolInfo: poolInfo,
3816
3784
  poolUnderlyingToken: poolUnderlyingToken
3817
- }), step === WIDGET_STEP.Done && jsx(Success$a, {
3785
+ }), step === WIDGET_STEP.Done && jsx(Success$9, {
3818
3786
  poolUnderlyingToken: poolUnderlyingToken,
3819
3787
  handleAction: handleClose
3820
3788
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -3825,7 +3793,7 @@ function CreditLinePaymentV2(_ref) {
3825
3793
  });
3826
3794
  }
3827
3795
 
3828
- function ApproveAllowance$7(_ref) {
3796
+ function ApproveAllowance$6(_ref) {
3829
3797
  let {
3830
3798
  poolInfo,
3831
3799
  poolUnderlyingToken,
@@ -3844,7 +3812,7 @@ function ApproveAllowance$7(_ref) {
3844
3812
  });
3845
3813
  }
3846
3814
 
3847
- function Success$9(_ref) {
3815
+ function Success$8(_ref) {
3848
3816
  let {
3849
3817
  amountToDeposit,
3850
3818
  poolUnderlyingToken,
@@ -3862,7 +3830,7 @@ function Success$9(_ref) {
3862
3830
  });
3863
3831
  }
3864
3832
 
3865
- function Transfer$e(_ref) {
3833
+ function Transfer$b(_ref) {
3866
3834
  let {
3867
3835
  poolInfo,
3868
3836
  amountToDeposit,
@@ -3939,15 +3907,15 @@ function SupplyFirstLossCover(_ref) {
3939
3907
  loadingTitle: title,
3940
3908
  handleClose: handleClose,
3941
3909
  handleSuccess: handleSuccess,
3942
- children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$7, {
3910
+ children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$6, {
3943
3911
  poolInfo: poolInfo,
3944
3912
  poolUnderlyingToken: poolUnderlyingToken,
3945
3913
  amountToDeposit: minAmountToDeposit
3946
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
3914
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$b, {
3947
3915
  poolInfo: poolInfo,
3948
3916
  amountToDeposit: minAmountToDeposit,
3949
3917
  title: title
3950
- }), step === WIDGET_STEP.Done && jsx(Success$9, {
3918
+ }), step === WIDGET_STEP.Done && jsx(Success$8, {
3951
3919
  poolUnderlyingToken: poolUnderlyingToken,
3952
3920
  handleAction: handleClose,
3953
3921
  amountToDeposit: minAmountToDeposit
@@ -3996,7 +3964,7 @@ function Evaluation$3(_ref) {
3996
3964
  });
3997
3965
  }
3998
3966
 
3999
- function ChooseAmount$b(_ref) {
3967
+ function ChooseAmount$8(_ref) {
4000
3968
  var _receivable;
4001
3969
  let {
4002
3970
  poolInfo,
@@ -4061,7 +4029,7 @@ function ChooseAmount$b(_ref) {
4061
4029
  });
4062
4030
  }
4063
4031
 
4064
- var _templateObject$j, _templateObject2$h, _templateObject3$e, _templateObject4$6, _templateObject5$2, _templateObject6$2, _templateObject7$2, _templateObject8, _templateObject9, _templateObject10;
4032
+ var _templateObject$f, _templateObject2$d, _templateObject3$a, _templateObject4$5, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
4065
4033
  function ConfirmTransferModal(_ref) {
4066
4034
  let {
4067
4035
  title,
@@ -4072,13 +4040,13 @@ function ConfirmTransferModal(_ref) {
4072
4040
  } = _ref;
4073
4041
  const theme = useTheme();
4074
4042
  const styles = {
4075
- wrapper: css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
4076
- header: css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
4077
- description: css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.palette.text.secondary, theme.spacing(4)),
4078
- transferWrapper: css(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
4079
- transfer: css(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n ", "\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n margin-bottom: ", ";\n position: relative;\n box-sizing: border-box;\n "])), theme.cssMixins.rowSpaceBetweened, theme.cssMixins.rowVCentered, theme.palette.text.primary, theme.spacing(3, 2), theme.spacing(1)),
4080
- transferItem: css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral(["\n ", "\n "])), theme.cssMixins.rowVCentered),
4081
- arrow: css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral(["\n @keyframes bounceAlpha {\n 0% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n 25% {\n opacity: 0;\n transform: translateX(10px) scale(0.9);\n }\n 26% {\n opacity: 0;\n transform: translateX(-10px) scale(0.9);\n }\n 55% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n }\n animation-name: bounceAlpha;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n color: ", ";\n position: absolute;\n margin: auto;\n top: 0;\n left: calc(15% + 36px);\n bottom: 0;\n right: 0;\n width: 16px;\n height: 16px;\n "])), theme.palette.primary.main),
4043
+ wrapper: css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
4044
+ header: css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
4045
+ description: css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.palette.text.secondary, theme.spacing(4)),
4046
+ transferWrapper: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
4047
+ transfer: css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n ", "\n height: 72px;\n background: #f9f8fa;\n border-radius: 4px;\n font-size: 16px;\n color: ", ";\n padding: ", ";\n margin-bottom: ", ";\n position: relative;\n box-sizing: border-box;\n "])), theme.cssMixins.rowSpaceBetweened, theme.cssMixins.rowVCentered, theme.palette.text.primary, theme.spacing(3, 2), theme.spacing(1)),
4048
+ transferItem: css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n ", "\n "])), theme.cssMixins.rowVCentered),
4049
+ arrow: css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n @keyframes bounceAlpha {\n 0% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n 25% {\n opacity: 0;\n transform: translateX(10px) scale(0.9);\n }\n 26% {\n opacity: 0;\n transform: translateX(-10px) scale(0.9);\n }\n 55% {\n opacity: 1;\n transform: translateX(0px) scale(1);\n }\n }\n animation-name: bounceAlpha;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n\n color: ", ";\n position: absolute;\n margin: auto;\n top: 0;\n left: calc(15% + 36px);\n bottom: 0;\n right: 0;\n width: 16px;\n height: 16px;\n "])), theme.palette.primary.main),
4082
4050
  arrowFirst: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n left: calc(15% + 20px);\n animation-delay: 0.2s;\n "]))),
4083
4051
  okButton: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
4084
4052
  usdcIcon: css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n width: 22px;\n margin-right: ", ";\n & > path:first-of-type {\n fill: #76707e;\n }\n "])), theme.spacing(2))
@@ -4201,7 +4169,7 @@ function ApproveNFT(_ref) {
4201
4169
  });
4202
4170
  }
4203
4171
 
4204
- function Transfer$d(_ref) {
4172
+ function Transfer$a(_ref) {
4205
4173
  let {
4206
4174
  poolInfo,
4207
4175
  tokenId
@@ -4226,7 +4194,7 @@ function Transfer$d(_ref) {
4226
4194
  });
4227
4195
  }
4228
4196
 
4229
- function Success$8(_ref) {
4197
+ function Success$7(_ref) {
4230
4198
  let {
4231
4199
  handleAction
4232
4200
  } = _ref;
@@ -4277,16 +4245,16 @@ function InvoiceFactoringBorrow(_ref) {
4277
4245
  children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$3, {
4278
4246
  poolInfo: poolInfo,
4279
4247
  tokenId: tokenId.toString()
4280
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
4248
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
4281
4249
  poolInfo: poolInfo,
4282
4250
  accountStats: accountStats
4283
4251
  }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer$2, {}), step === WIDGET_STEP.ApproveNFT && jsx(ApproveNFT, {
4284
4252
  poolInfo: poolInfo,
4285
4253
  tokenId: tokenId.toString()
4286
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$d, {
4254
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$a, {
4287
4255
  poolInfo: poolInfo,
4288
4256
  tokenId: tokenId.toString()
4289
- }), step === WIDGET_STEP.Done && jsx(Success$8, {
4257
+ }), step === WIDGET_STEP.Done && jsx(Success$7, {
4290
4258
  handleAction: handleClose
4291
4259
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
4292
4260
  title: "Invoice Factoring",
@@ -4296,7 +4264,7 @@ function InvoiceFactoringBorrow(_ref) {
4296
4264
  });
4297
4265
  }
4298
4266
 
4299
- function ChooseAmount$a(_ref) {
4267
+ function ChooseAmount$7(_ref) {
4300
4268
  let {
4301
4269
  creditRecord,
4302
4270
  poolInfo
@@ -4347,7 +4315,7 @@ function ChooseAmount$a(_ref) {
4347
4315
  });
4348
4316
  }
4349
4317
 
4350
- function ApproveAllowance$6(_ref) {
4318
+ function ApproveAllowance$5(_ref) {
4351
4319
  let {
4352
4320
  poolInfo
4353
4321
  } = _ref;
@@ -4361,7 +4329,7 @@ function ApproveAllowance$6(_ref) {
4361
4329
  });
4362
4330
  }
4363
4331
 
4364
- function Transfer$c(_ref) {
4332
+ function Transfer$9(_ref) {
4365
4333
  let {
4366
4334
  poolInfo
4367
4335
  } = _ref;
@@ -4387,7 +4355,7 @@ function Transfer$c(_ref) {
4387
4355
  });
4388
4356
  }
4389
4357
 
4390
- function Success$7(_ref) {
4358
+ function Success$6(_ref) {
4391
4359
  let {
4392
4360
  poolInfo,
4393
4361
  handleAction
@@ -4441,14 +4409,14 @@ function InvoiceFactoringPayment(_ref) {
4441
4409
  loadingTitle: "Make Payment",
4442
4410
  handleClose: handleClose,
4443
4411
  handleSuccess: handleSuccess,
4444
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$a, {
4412
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$7, {
4445
4413
  creditRecord: creditRecord,
4446
4414
  poolInfo: poolInfo
4447
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$6, {
4415
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$5, {
4448
4416
  poolInfo: poolInfo
4449
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
4417
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
4450
4418
  poolInfo: poolInfo
4451
- }), step === WIDGET_STEP.Done && jsx(Success$7, {
4419
+ }), step === WIDGET_STEP.Done && jsx(Success$6, {
4452
4420
  poolInfo: poolInfo,
4453
4421
  handleAction: handleClose
4454
4422
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -4459,8 +4427,8 @@ function InvoiceFactoringPayment(_ref) {
4459
4427
  });
4460
4428
  }
4461
4429
 
4462
- var _templateObject$i, _templateObject2$g, _templateObject3$d;
4463
- function ChooseTranche$4(_ref) {
4430
+ var _templateObject$e, _templateObject2$c, _templateObject3$9;
4431
+ function ChooseTranche$1(_ref) {
4464
4432
  let {
4465
4433
  selectedTranche,
4466
4434
  changeTranche
@@ -4468,9 +4436,9 @@ function ChooseTranche$4(_ref) {
4468
4436
  const theme = useTheme();
4469
4437
  const dispatch = useAppDispatch();
4470
4438
  const styles = {
4471
- subTitle: css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
4472
- radioGroup: css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
4473
- formControl: css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
4439
+ subTitle: css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
4440
+ radioGroup: css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
4441
+ formControl: css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
4474
4442
  };
4475
4443
  const handleNext = () => {
4476
4444
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -4515,7 +4483,7 @@ function ChooseTranche$4(_ref) {
4515
4483
  });
4516
4484
  }
4517
4485
 
4518
- function ChooseAmount$9(_ref) {
4486
+ function ChooseAmount$6(_ref) {
4519
4487
  let {
4520
4488
  poolInfo,
4521
4489
  poolUnderlyingToken,
@@ -4542,10 +4510,11 @@ function ChooseAmount$9(_ref) {
4542
4510
  const lockupEndTime = depositRecord.lastDepositTime.toNumber() + lpConfig.withdrawalLockoutPeriodInDays * SECONDS_IN_A_DAY;
4543
4511
  if (nextEpochStartTime < lockupEndTime) {
4544
4512
  const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1);
4513
+ const withdrawTime = lockupEndTimeDayjs.add(1, 'month');
4545
4514
  dispatch(setStep(WIDGET_STEP.Error));
4546
4515
  dispatch(setError({
4547
4516
  errorReason: 'Redemption too soon',
4548
- errorMessage: "Your last deposit was on ".concat(timestampToLL(depositRecord.lastDepositTime.toNumber()), ". You can redeem on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ".")
4517
+ errorMessage: "Your last deposit was on ".concat(timestampToLL(depositRecord.lastDepositTime.toNumber()), ". You can begin submitting redemption requests on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ", which can be redeemed starting ").concat(timestampToLL(withdrawTime.unix()), ".")
4549
4518
  }));
4550
4519
  }
4551
4520
  }
@@ -4580,7 +4549,7 @@ function ChooseAmount$9(_ref) {
4580
4549
  });
4581
4550
  }
4582
4551
 
4583
- function Transfer$b(_ref) {
4552
+ function Transfer$8(_ref) {
4584
4553
  let {
4585
4554
  poolInfo,
4586
4555
  poolUnderlyingToken,
@@ -4613,7 +4582,7 @@ function Transfer$b(_ref) {
4613
4582
  });
4614
4583
  }
4615
4584
 
4616
- function Done$4(_ref) {
4585
+ function Done$2(_ref) {
4617
4586
  let {
4618
4587
  handleAction
4619
4588
  } = _ref;
@@ -4723,18 +4692,18 @@ function AddRedemptionV2(_ref) {
4723
4692
  loadingTitle: title,
4724
4693
  handleClose: handleClose,
4725
4694
  handleSuccess: handleRedeemSuccess,
4726
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$4, {
4695
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
4727
4696
  selectedTranche: trancheInfo === null || trancheInfo === void 0 ? void 0 : trancheInfo.tranche,
4728
4697
  changeTranche: handleChangeTranche
4729
- }), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$9, {
4698
+ }), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$6, {
4730
4699
  poolInfo: poolInfo,
4731
4700
  poolUnderlyingToken: poolUnderlyingToken,
4732
4701
  trancheInfo: trancheInfo
4733
- }), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$b, {
4702
+ }), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$8, {
4734
4703
  poolInfo: poolInfo,
4735
4704
  poolUnderlyingToken: poolUnderlyingToken,
4736
4705
  trancheInfo: trancheInfo
4737
- }), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$4, {
4706
+ }), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$2, {
4738
4707
  handleAction: handleClose
4739
4708
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
4740
4709
  title: title,
@@ -4745,7 +4714,7 @@ function AddRedemptionV2(_ref) {
4745
4714
  });
4746
4715
  }
4747
4716
 
4748
- function Transfer$a(_ref) {
4717
+ function Transfer$7(_ref) {
4749
4718
  let {
4750
4719
  poolInfo,
4751
4720
  trancheType,
@@ -4771,7 +4740,7 @@ function Transfer$a(_ref) {
4771
4740
  });
4772
4741
  }
4773
4742
 
4774
- function Done$3(_ref) {
4743
+ function Done$1(_ref) {
4775
4744
  let {
4776
4745
  poolUnderlyingToken,
4777
4746
  redemptionInfo,
@@ -4832,11 +4801,11 @@ function CancelRedemptionV2(_ref) {
4832
4801
  loadingTitle: title,
4833
4802
  handleClose: handleClose,
4834
4803
  handleSuccess: handleRedeemSuccess,
4835
- children: [step === WIDGET_STEP.Transfer && jsx(Transfer$a, {
4804
+ children: [step === WIDGET_STEP.Transfer && jsx(Transfer$7, {
4836
4805
  poolInfo: poolInfo,
4837
4806
  trancheType: trancheType,
4838
4807
  redemptionInfo: redemptionInfo
4839
- }), step === WIDGET_STEP.Done && jsx(Done$3, {
4808
+ }), step === WIDGET_STEP.Done && jsx(Done$1, {
4840
4809
  poolUnderlyingToken: poolUnderlyingToken,
4841
4810
  handleAction: handleClose,
4842
4811
  redemptionInfo: redemptionInfo
@@ -4849,7 +4818,7 @@ function CancelRedemptionV2(_ref) {
4849
4818
  });
4850
4819
  }
4851
4820
 
4852
- var _templateObject$h, _templateObject2$f;
4821
+ var _templateObject$d, _templateObject2$b;
4853
4822
  function EvaluationEA(_ref) {
4854
4823
  let {
4855
4824
  poolInfo,
@@ -4863,8 +4832,8 @@ function EvaluationEA(_ref) {
4863
4832
  } = useWeb3React();
4864
4833
  const [loading, setLoading] = useState(false);
4865
4834
  const styles = {
4866
- iconWrapper: css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4867
- description: css(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4835
+ iconWrapper: css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4836
+ description: css(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4868
4837
  };
4869
4838
  const approveLender = async () => {
4870
4839
  if (account) {
@@ -4959,7 +4928,7 @@ function HumaSnackBar(_ref2) {
4959
4928
  });
4960
4929
  }
4961
4930
 
4962
- var _templateObject$g, _templateObject2$e;
4931
+ var _templateObject$c, _templateObject2$a;
4963
4932
  const KYCProvider = 'Securitize';
4964
4933
  // TODO: Add copies for the other pools. Currently only the Jia pool is using the KYC process.
4965
4934
  const JiaPoolCopies = {
@@ -5025,8 +4994,8 @@ function EvaluationKYC(_ref) {
5025
4994
  const docSignatureCompleted = docSignatureStatus === 'completed';
5026
4995
  const [openSnackBar, setOpenSnackBar] = useState(false);
5027
4996
  const styles = {
5028
- iconWrapper: css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5029
- description: css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
4997
+ iconWrapper: css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4998
+ description: css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.secondary)
5030
4999
  };
5031
5000
  const {
5032
5001
  envelopeKey,
@@ -5238,7 +5207,7 @@ function Evaluation$2(_ref) {
5238
5207
  });
5239
5208
  }
5240
5209
 
5241
- function ChooseAmount$8(_ref) {
5210
+ function ChooseAmount$5(_ref) {
5242
5211
  let {
5243
5212
  allowance,
5244
5213
  withdrawlLockoutSeconds,
@@ -5281,7 +5250,7 @@ function ChooseAmount$8(_ref) {
5281
5250
  });
5282
5251
  }
5283
5252
 
5284
- function ApproveAllowance$5(_ref) {
5253
+ function ApproveAllowance$4(_ref) {
5285
5254
  let {
5286
5255
  poolInfo
5287
5256
  } = _ref;
@@ -5295,7 +5264,7 @@ function ApproveAllowance$5(_ref) {
5295
5264
  });
5296
5265
  }
5297
5266
 
5298
- function Transfer$9(_ref) {
5267
+ function Transfer$6(_ref) {
5299
5268
  let {
5300
5269
  poolInfo
5301
5270
  } = _ref;
@@ -5318,7 +5287,7 @@ function Transfer$9(_ref) {
5318
5287
  });
5319
5288
  }
5320
5289
 
5321
- function Success$6(_ref) {
5290
+ function Success$5(_ref) {
5322
5291
  let {
5323
5292
  poolInfo,
5324
5293
  handleAction,
@@ -5445,16 +5414,16 @@ function LendSupply(_ref) {
5445
5414
  poolInfo: poolInfo,
5446
5415
  handleClose: handleClose,
5447
5416
  handleApproveSuccess: handleApproveSuccess
5448
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
5417
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$5, {
5449
5418
  poolInfo: poolInfo,
5450
5419
  allowance: allowance,
5451
5420
  underlyingTokenBalance: balanceWithoutDecimals,
5452
5421
  withdrawlLockoutSeconds: withdrawlLockoutSeconds
5453
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$5, {
5422
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$4, {
5454
5423
  poolInfo: poolInfo
5455
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
5424
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$6, {
5456
5425
  poolInfo: poolInfo
5457
- }), step === WIDGET_STEP.Done && jsx(Success$6, {
5426
+ }), step === WIDGET_STEP.Done && jsx(Success$5, {
5458
5427
  poolInfo: poolInfo,
5459
5428
  handleAction: setupNotificationsOrClose,
5460
5429
  hasNextStep: isFirstTimeNotifiUser
@@ -5469,8 +5438,8 @@ function LendSupply(_ref) {
5469
5438
  });
5470
5439
  }
5471
5440
 
5472
- var _templateObject$f, _templateObject2$d, _templateObject3$c;
5473
- function ChooseTranche$3(_ref) {
5441
+ var _templateObject$b, _templateObject2$9, _templateObject3$8;
5442
+ function ChooseTranche(_ref) {
5474
5443
  let {
5475
5444
  poolUnderlyingToken,
5476
5445
  selectedTranche,
@@ -5479,9 +5448,9 @@ function ChooseTranche$3(_ref) {
5479
5448
  const theme = useTheme();
5480
5449
  const dispatch = useAppDispatch();
5481
5450
  const styles = {
5482
- subTitle: css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
5483
- radioGroup: css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
5484
- formControl: css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
5451
+ subTitle: css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
5452
+ radioGroup: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
5453
+ formControl: css(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
5485
5454
  };
5486
5455
  const handleNext = () => {
5487
5456
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -5531,7 +5500,7 @@ function ChooseTranche$3(_ref) {
5531
5500
  });
5532
5501
  }
5533
5502
 
5534
- var _templateObject$e, _templateObject2$c, _templateObject3$b;
5503
+ var _templateObject$a, _templateObject2$8, _templateObject3$7;
5535
5504
  function PersonaEvaluation(_ref) {
5536
5505
  let {
5537
5506
  poolInfo,
@@ -5797,9 +5766,9 @@ function PersonaEvaluation(_ref) {
5797
5766
  }
5798
5767
  };
5799
5768
  const styles = {
5800
- iconWrapper: css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5801
- description: css(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary),
5802
- points: css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
5769
+ iconWrapper: css(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5770
+ description: css(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary),
5771
+ points: css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
5803
5772
  };
5804
5773
  if (!loadingType) {
5805
5774
  return jsxs(WrapperModal, {
@@ -5831,7 +5800,7 @@ function PersonaEvaluation(_ref) {
5831
5800
  });
5832
5801
  }
5833
5802
 
5834
- var _templateObject$d, _templateObject2$b;
5803
+ var _templateObject$9, _templateObject2$7;
5835
5804
  const LoadingCopiesByType = {
5836
5805
  verificationStatus: {
5837
5806
  description: "Checking your verification status..."
@@ -6036,8 +6005,8 @@ function SecuritizeEvaluation(_ref) {
6036
6005
  onClose: () => setOpenSnackBar(false)
6037
6006
  });
6038
6007
  const styles = {
6039
- iconWrapper: css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
6040
- description: css(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary)
6008
+ iconWrapper: css(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
6009
+ description: css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n padding: ", ";\n font-weight: 400;\n font-size: 16px;\n color: ", ";\n "])), theme.cssMixins.rowCentered, theme.spacing(10), theme.spacing(0, 2), theme.palette.text.primary)
6041
6010
  };
6042
6011
  if (!loadingType) {
6043
6012
  return jsxs(WrapperModal, {
@@ -6093,7 +6062,7 @@ function Evaluation$1(_ref) {
6093
6062
  return null;
6094
6063
  }
6095
6064
 
6096
- function ChooseAmount$7(_ref) {
6065
+ function ChooseAmount$4(_ref) {
6097
6066
  let {
6098
6067
  poolInfo,
6099
6068
  lpConfig,
@@ -6176,7 +6145,7 @@ function ChooseAmount$7(_ref) {
6176
6145
  });
6177
6146
  }
6178
6147
 
6179
- function ApproveAllowance$4(_ref) {
6148
+ function ApproveAllowance$3(_ref) {
6180
6149
  let {
6181
6150
  poolInfo
6182
6151
  } = _ref;
@@ -6193,7 +6162,7 @@ function ApproveAllowance$4(_ref) {
6193
6162
  });
6194
6163
  }
6195
6164
 
6196
- function Transfer$8(_ref) {
6165
+ function Transfer$5(_ref) {
6197
6166
  let {
6198
6167
  poolInfo,
6199
6168
  trancheType
@@ -6225,7 +6194,7 @@ function Transfer$8(_ref) {
6225
6194
  });
6226
6195
  }
6227
6196
 
6228
- function Success$5(_ref) {
6197
+ function Success$4(_ref) {
6229
6198
  let {
6230
6199
  poolInfo,
6231
6200
  lpConfig,
@@ -6288,8 +6257,9 @@ function Success$5(_ref) {
6288
6257
  }, [campaign, dispatch, handleAction, isFirstTimeNotifiUser, notifiChainSupported]);
6289
6258
  const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
6290
6259
  const getSubContent = () => {
6291
- const currentTime = moment().add(lpConfig.withdrawalLockoutPeriodInDays, 'days');
6292
- return ["First redemption date: ".concat(timeUtil.timestampToLL(currentTime.unix()), ". You can redeem end of each month after.")];
6260
+ const redemptionTime = dayjs().add(lpConfig.withdrawalLockoutPeriodInDays, 'day').date(1);
6261
+ const withdrawTime = redemptionTime.add(1, 'month');
6262
+ return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(redemptionTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
6293
6263
  };
6294
6264
  const getButtonText = () => {
6295
6265
  if (hasNextStep) {
@@ -6319,11 +6289,12 @@ function Notifications$1(_ref) {
6319
6289
  }
6320
6290
  }, [campaign, dispatch, handleAction]);
6321
6291
  return jsx(NotifiSubscriptionModal, {
6292
+ successText: campaign ? 'VIEW POINTS' : undefined,
6322
6293
  handleSuccess: handleUserAction
6323
6294
  });
6324
6295
  }
6325
6296
 
6326
- var _templateObject$c, _templateObject2$a, _templateObject3$a, _templateObject4$5, _templateObject5$1, _templateObject6$1, _templateObject7$1;
6297
+ var _templateObject$8, _templateObject2$6, _templateObject3$6, _templateObject4$4, _templateObject5, _templateObject6, _templateObject7;
6327
6298
  var STATE = /*#__PURE__*/function (STATE) {
6328
6299
  STATE["Loading"] = "Loading";
6329
6300
  STATE["SignIn"] = "SignIn";
@@ -6411,13 +6382,13 @@ function PointsEarned(_ref) {
6411
6382
  handleAction();
6412
6383
  }, [dispatch, handleAction, reset]);
6413
6384
  const styles = {
6414
- wrapper: css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
6415
- congrats: css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
6416
- ribbon: css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral(["\n position: relative;\n ", ";\n font-weight: 700;\n margin-top: ", ";\n color: ", ";\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.cssMixins.rowHCentered, theme.spacing(-8), theme.palette.text.primary),
6417
- ribbonContent: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral(["\n ", ";\n position: absolute;\n top: ", ";\n\n svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(1), theme.spacing(1)),
6418
- entirePoints: css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 700;\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(7)),
6419
- entirePointsDetails: css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(4)),
6420
- everyday: css(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral(["\n font-weight: 700;\n "])))
6385
+ wrapper: css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
6386
+ congrats: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
6387
+ ribbon: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n position: relative;\n ", ";\n font-weight: 700;\n margin-top: ", ";\n color: ", ";\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n "])), theme.cssMixins.rowHCentered, theme.spacing(-8), theme.palette.text.primary),
6388
+ ribbonContent: css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n ", ";\n position: absolute;\n top: ", ";\n\n svg {\n margin-right: ", ";\n }\n "])), theme.cssMixins.rowVCentered, theme.spacing(1), theme.spacing(1)),
6389
+ entirePoints: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 700;\n font-size: 20px;\n line-height: 160%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(7)),
6390
+ entirePointsDetails: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n color: ", ";\n text-align: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n "])), theme.palette.text.tertiary, theme.spacing(4)),
6391
+ everyday: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-weight: 700;\n "])))
6421
6392
  };
6422
6393
  if (state === STATE.SignIn) {
6423
6394
  return jsx(SignIn, {
@@ -6548,7 +6519,7 @@ function LendSupplyV2(_ref) {
6548
6519
  loadingTitle: "Supply ".concat(poolUnderlyingToken.symbol),
6549
6520
  handleClose: handleClose,
6550
6521
  handleSuccess: handleSuccess,
6551
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$3, {
6522
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
6552
6523
  poolUnderlyingToken: poolUnderlyingToken,
6553
6524
  selectedTranche: selectedTranche,
6554
6525
  changeTranche: setSelectedTranche
@@ -6559,19 +6530,19 @@ function LendSupplyV2(_ref) {
6559
6530
  changeTranche: setSelectedTranche,
6560
6531
  pointsTestnetExperience: pointsTestnetExperience,
6561
6532
  campaign: campaign
6562
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$7, {
6533
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
6563
6534
  poolInfo: poolInfo,
6564
6535
  lpConfig: lpConfig,
6565
6536
  juniorAssets: juniorAssets,
6566
6537
  seniorAssets: seniorAssets,
6567
6538
  selectedTranche: selectedTranche,
6568
6539
  isUniTranche: isUniTranche
6569
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$4, {
6540
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$3, {
6570
6541
  poolInfo: poolInfo
6571
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$8, {
6542
+ }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$5, {
6572
6543
  poolInfo: poolInfo,
6573
6544
  trancheType: selectedTranche
6574
- }), step === WIDGET_STEP.Done && jsx(Success$5, {
6545
+ }), step === WIDGET_STEP.Done && jsx(Success$4, {
6575
6546
  poolInfo: poolInfo,
6576
6547
  lpConfig: lpConfig,
6577
6548
  campaign: campaign,
@@ -6636,7 +6607,7 @@ function CheckWithdrawable(_ref) {
6636
6607
  });
6637
6608
  }
6638
6609
 
6639
- function ChooseAmount$6(_ref) {
6610
+ function ChooseAmount$3(_ref) {
6640
6611
  let {
6641
6612
  lenderPosition,
6642
6613
  poolBalance,
@@ -6674,7 +6645,7 @@ function ChooseAmount$6(_ref) {
6674
6645
  });
6675
6646
  }
6676
6647
 
6677
- function Transfer$7(_ref) {
6648
+ function Transfer$4(_ref) {
6678
6649
  let {
6679
6650
  poolInfo
6680
6651
  } = _ref;
@@ -6697,7 +6668,7 @@ function Transfer$7(_ref) {
6697
6668
  });
6698
6669
  }
6699
6670
 
6700
- function Success$4(_ref) {
6671
+ function Success$3(_ref) {
6701
6672
  let {
6702
6673
  poolInfo,
6703
6674
  handleAction
@@ -6787,13 +6758,13 @@ function LendWithdraw(_ref) {
6787
6758
  children: [step === WIDGET_STEP.CheckWithdrawable && jsx(CheckWithdrawable, {
6788
6759
  poolInfo: poolInfo,
6789
6760
  handleClose: handleClose
6790
- }), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$6, {
6761
+ }), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$3, {
6791
6762
  poolInfo: poolInfo,
6792
6763
  lenderPosition: lenderPosition,
6793
6764
  poolBalance: poolBalance
6794
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$7, {
6765
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$4, {
6795
6766
  poolInfo: poolInfo
6796
- }), step === WIDGET_STEP.Done && jsx(Success$4, {
6767
+ }), step === WIDGET_STEP.Done && jsx(Success$3, {
6797
6768
  poolInfo: poolInfo,
6798
6769
  handleAction: handleClose
6799
6770
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -6805,7 +6776,7 @@ function LendWithdraw(_ref) {
6805
6776
  });
6806
6777
  }
6807
6778
 
6808
- var _templateObject$b, _templateObject2$9, _templateObject3$9, _templateObject4$4;
6779
+ var _templateObject$7, _templateObject2$5, _templateObject3$5, _templateObject4$3;
6809
6780
  function ConfirmTransfer$1(_ref) {
6810
6781
  let {
6811
6782
  poolInfo,
@@ -6847,10 +6818,10 @@ function ConfirmTransfer$1(_ref) {
6847
6818
  dispatch(setStep(WIDGET_STEP.Transfer));
6848
6819
  };
6849
6820
  const styles = {
6850
- itemWrapper: css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n margin-top: ", ";\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n "])), theme.spacing(9), theme.palette.text.primary),
6851
- item: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ", ";\n "])), theme.spacing(3)),
6852
- itemValue: css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
6853
- divider: css(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
6821
+ itemWrapper: css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n margin-top: ", ";\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 175%;\n letter-spacing: 0.15px;\n "])), theme.spacing(9), theme.palette.text.primary),
6822
+ item: css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ", ";\n "])), theme.spacing(3)),
6823
+ itemValue: css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
6824
+ divider: css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
6854
6825
  };
6855
6826
  return jsxs(WrapperModal, {
6856
6827
  title: "Withdraw ".concat(symbol),
@@ -6894,7 +6865,7 @@ function ConfirmTransfer$1(_ref) {
6894
6865
  });
6895
6866
  }
6896
6867
 
6897
- function Transfer$6(_ref) {
6868
+ function Transfer$3(_ref) {
6898
6869
  let {
6899
6870
  poolInfo,
6900
6871
  tranche,
@@ -6920,7 +6891,7 @@ function Transfer$6(_ref) {
6920
6891
  });
6921
6892
  }
6922
6893
 
6923
- function Done$2(_ref) {
6894
+ function Done(_ref) {
6924
6895
  let {
6925
6896
  poolUnderlyingToken,
6926
6897
  withdrawAmount,
@@ -7020,11 +6991,11 @@ function LendWithdrawV2(_ref) {
7020
6991
  redemptionStatus: redemptionStatus,
7021
6992
  poolUnderlyingToken: poolUnderlyingToken,
7022
6993
  poolIsClosed: poolIsClosed
7023
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$6, {
6994
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$3, {
7024
6995
  poolInfo: poolInfo,
7025
6996
  tranche: trancheType,
7026
6997
  poolIsClosed: poolIsClosed
7027
- }), step === WIDGET_STEP.Done && jsx(Done$2, {
6998
+ }), step === WIDGET_STEP.Done && jsx(Done, {
7028
6999
  poolUnderlyingToken: poolUnderlyingToken,
7029
7000
  withdrawAmount: redemptionStatus.withdrawableAssets,
7030
7001
  handleAction: handleClose
@@ -7037,7 +7008,7 @@ function LendWithdrawV2(_ref) {
7037
7008
  });
7038
7009
  }
7039
7010
 
7040
- function ChooseAmount$5(_ref) {
7011
+ function ChooseAmount$2(_ref) {
7041
7012
  let {
7042
7013
  poolInfo,
7043
7014
  poolUnderlyingToken,
@@ -7101,7 +7072,7 @@ function ChooseAmount$5(_ref) {
7101
7072
  });
7102
7073
  }
7103
7074
 
7104
- function ApproveAllowance$3(_ref) {
7075
+ function ApproveAllowance$2(_ref) {
7105
7076
  let {
7106
7077
  poolInfo,
7107
7078
  poolUnderlyingToken
@@ -7160,7 +7131,7 @@ function ApproveReceivable$1(_ref) {
7160
7131
  });
7161
7132
  }
7162
7133
 
7163
- function Transfer$5(_ref) {
7134
+ function Transfer$2(_ref) {
7164
7135
  let {
7165
7136
  poolInfo,
7166
7137
  tokenId
@@ -7205,7 +7176,7 @@ function Transfer$5(_ref) {
7205
7176
  });
7206
7177
  }
7207
7178
 
7208
- function Success$3(_ref) {
7179
+ function Success$2(_ref) {
7209
7180
  let {
7210
7181
  poolUnderlyingToken,
7211
7182
  creditRecord,
@@ -7301,21 +7272,21 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7301
7272
  loadingTitle: "Borrow",
7302
7273
  handleClose: handleClose,
7303
7274
  handleSuccess: handleSuccessCallback,
7304
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$5, {
7275
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$2, {
7305
7276
  poolInfo: poolInfo,
7306
7277
  poolUnderlyingToken: poolUnderlyingToken,
7307
7278
  accountStats: accountStats,
7308
7279
  tokenId: tokenId
7309
- }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$3, {
7280
+ }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$2, {
7310
7281
  poolInfo: poolInfo,
7311
7282
  poolUnderlyingToken: poolUnderlyingToken
7312
7283
  }), step === WIDGET_STEP.ApproveNFT && tokenId && jsx(ApproveReceivable$1, {
7313
7284
  poolInfo: poolInfo,
7314
7285
  tokenId: tokenId
7315
- }), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$5, {
7286
+ }), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$2, {
7316
7287
  poolInfo: poolInfo,
7317
7288
  tokenId: tokenId
7318
- }), step === WIDGET_STEP.Done && jsx(Success$3, {
7289
+ }), step === WIDGET_STEP.Done && jsx(Success$2, {
7319
7290
  poolUnderlyingToken: poolUnderlyingToken,
7320
7291
  handleAction: setupNotificationsOrClose,
7321
7292
  creditRecord: accountStats.creditRecord,
@@ -7330,7 +7301,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7330
7301
  });
7331
7302
  }
7332
7303
 
7333
- var _templateObject$a, _templateObject2$8, _templateObject3$8;
7304
+ var _templateObject$6, _templateObject2$4, _templateObject3$4;
7334
7305
  function ChoosePaymentType(_ref) {
7335
7306
  let {
7336
7307
  paymentType,
@@ -7339,9 +7310,9 @@ function ChoosePaymentType(_ref) {
7339
7310
  const theme = useTheme();
7340
7311
  const dispatch = useAppDispatch();
7341
7312
  const styles = {
7342
- subTitle: css(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
7343
- radioGroup: css(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
7344
- formControl: css(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
7313
+ subTitle: css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
7314
+ radioGroup: css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
7315
+ formControl: css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
7345
7316
  };
7346
7317
  const handleNext = () => {
7347
7318
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -7386,7 +7357,7 @@ function ChoosePaymentType(_ref) {
7386
7357
  });
7387
7358
  }
7388
7359
 
7389
- function ChooseAmount$4(_ref) {
7360
+ function ChooseAmount$1(_ref) {
7390
7361
  let {
7391
7362
  payoffAmount: payoffAmountBN,
7392
7363
  poolInfo,
@@ -7440,7 +7411,7 @@ function ChooseAmount$4(_ref) {
7440
7411
  });
7441
7412
  }
7442
7413
 
7443
- function ApproveAllowance$2(_ref) {
7414
+ function ApproveAllowance$1(_ref) {
7444
7415
  let {
7445
7416
  poolInfo,
7446
7417
  poolUnderlyingToken,
@@ -7568,7 +7539,7 @@ function ApproveReceivable(_ref) {
7568
7539
  });
7569
7540
  }
7570
7541
 
7571
- function Transfer$4(_ref) {
7542
+ function Transfer$1(_ref) {
7572
7543
  let {
7573
7544
  poolInfo,
7574
7545
  poolUnderlyingToken,
@@ -7626,7 +7597,7 @@ function Transfer$4(_ref) {
7626
7597
  });
7627
7598
  }
7628
7599
 
7629
- function Success$2(_ref) {
7600
+ function Success$1(_ref) {
7630
7601
  let {
7631
7602
  poolUnderlyingToken,
7632
7603
  paymentType,
@@ -7719,12 +7690,12 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7719
7690
  children: [step === WIDGET_STEP.ChoosePaymentType && jsx(ChoosePaymentType, {
7720
7691
  paymentType: paymentType,
7721
7692
  changePaymentType: setPaymentType
7722
- }), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$4, {
7693
+ }), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$1, {
7723
7694
  poolInfo: poolInfo,
7724
7695
  poolUnderlyingToken: poolUnderlyingToken,
7725
7696
  payoffAmount: payoffAmount,
7726
7697
  paymentType: paymentType
7727
- }), step === WIDGET_STEP.ApproveAllowance && paymentType && jsx(ApproveAllowance$2, {
7698
+ }), step === WIDGET_STEP.ApproveAllowance && paymentType && jsx(ApproveAllowance$1, {
7728
7699
  poolInfo: poolInfo,
7729
7700
  poolUnderlyingToken: poolUnderlyingToken,
7730
7701
  paymentType: paymentType
@@ -7735,14 +7706,14 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7735
7706
  }), step === WIDGET_STEP.ApproveNFT && borrowTokenId && jsx(ApproveReceivable, {
7736
7707
  poolInfo: poolInfo,
7737
7708
  tokenId: borrowTokenId
7738
- }), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$4, {
7709
+ }), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$1, {
7739
7710
  poolInfo: poolInfo,
7740
7711
  poolUnderlyingToken: poolUnderlyingToken,
7741
7712
  paymentType: paymentType,
7742
7713
  paymentTokenId: tokenId,
7743
7714
  borrowTokenId: borrowTokenId,
7744
7715
  setSuccessTxReceipt: setSuccessTxReceipt
7745
- }), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$2, {
7716
+ }), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$1, {
7746
7717
  poolUnderlyingToken: poolUnderlyingToken,
7747
7718
  paymentType: paymentType,
7748
7719
  handleAction: handleClose,
@@ -7782,7 +7753,7 @@ const useElementDimensions = ref => {
7782
7753
  return dimensions;
7783
7754
  };
7784
7755
 
7785
- var _templateObject$9, _templateObject2$7, _templateObject3$7;
7756
+ var _templateObject$5, _templateObject2$3, _templateObject3$3;
7786
7757
  // @TODO: Move HumaTable along with Superfluid widget to Dapp package
7787
7758
  function HumaTable(_ref) {
7788
7759
  let {
@@ -7801,9 +7772,9 @@ function HumaTable(_ref) {
7801
7772
  } = useElementDimensions(ref);
7802
7773
  const isLoading = !columns || !rows;
7803
7774
  const styles = {
7804
- tableHeader: css(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n font-size: 14px;\n color: rgba(0, 0, 0, 0.87);\n "])), theme.cssMixins.rowVCentered),
7805
- tableBody: css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: rgba(0, 0, 0, 0.87);\n "]))),
7806
- empty: css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: ", ";\n font-weight: 400;\n font-size: 14px;\n "])), theme.spacing(2))
7775
+ tableHeader: css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n font-weight: 400;\n ", "\n font-size: 14px;\n color: rgba(0, 0, 0, 0.87);\n "])), theme.cssMixins.rowVCentered),
7776
+ tableBody: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n font-weight: 400;\n font-size: 14px;\n color: rgba(0, 0, 0, 0.87);\n "]))),
7777
+ empty: css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: ", ";\n font-weight: 400;\n font-size: 14px;\n "])), theme.spacing(2))
7807
7778
  };
7808
7779
  const handleChangePage = (event, newPage) => {
7809
7780
  setPage(newPage);
@@ -7930,8 +7901,8 @@ function HumaTable(_ref) {
7930
7901
  });
7931
7902
  }
7932
7903
 
7933
- var _templateObject$8, _templateObject2$6, _templateObject3$6, _templateObject4$3;
7934
- const GET_ACTIVITY = gql(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n query GetCreditLineActivity($pool: String!, $owner: String!, $event: [Int]!) {\n creditEvents(\n where: { pool: $pool, owner: $owner, event_in: $event }\n orderBy: timestamp\n orderDirection: desc\n ) {\n id\n amount\n timestamp\n owner\n pool\n event\n }\n }\n"])));
7904
+ var _templateObject$4, _templateObject2$2, _templateObject3$2, _templateObject4$2;
7905
+ const GET_ACTIVITY = gql(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n query GetCreditLineActivity($pool: String!, $owner: String!, $event: [Int]!) {\n creditEvents(\n where: { pool: $pool, owner: $owner, event_in: $event }\n orderBy: timestamp\n orderDirection: desc\n ) {\n id\n amount\n timestamp\n owner\n pool\n event\n }\n }\n"])));
7935
7906
  const columns = [{
7936
7907
  title: 'Action',
7937
7908
  dataIndex: 'eventText'
@@ -7992,9 +7963,9 @@ function Activity(_ref) {
7992
7963
  setEvents(result);
7993
7964
  }, [data === null || data === void 0 ? void 0 : data.creditEvents, decimals]);
7994
7965
  const styles = {
7995
- wrapper: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
7996
- title: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral(["\n font-weight: 800;\n font-size: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
7997
- tableWrapper: css(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral(["\n box-shadow: 0px 4px 40px 8px rgba(0, 0, 0, 0.04);\n border-radius: 24px;\n padding: ", ";\n "])), getPadding())
7966
+ wrapper: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(9)),
7967
+ title: css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n font-weight: 800;\n font-size: 24px;\n color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
7968
+ tableWrapper: css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n box-shadow: 0px 4px 40px 8px rgba(0, 0, 0, 0.04);\n border-radius: 24px;\n padding: ", ";\n "])), getPadding())
7998
7969
  };
7999
7970
  return jsxs(Box, {
8000
7971
  css: styles.wrapper,
@@ -8065,7 +8036,7 @@ function Evaluation(_ref) {
8065
8036
  });
8066
8037
  }
8067
8038
 
8068
- function ChooseAmount$3(_ref) {
8039
+ function ChooseAmount(_ref) {
8069
8040
  var _poolInfo$extra;
8070
8041
  let {
8071
8042
  poolInfo,
@@ -8179,7 +8150,7 @@ function ConfirmTransfer() {
8179
8150
  });
8180
8151
  }
8181
8152
 
8182
- function ApproveAllowance$1(_ref) {
8153
+ function ApproveAllowance(_ref) {
8183
8154
  let {
8184
8155
  poolInfo
8185
8156
  } = _ref;
@@ -8251,7 +8222,7 @@ function Permit(_ref) {
8251
8222
  });
8252
8223
  }
8253
8224
 
8254
- function Transfer$3(_ref) {
8225
+ function Transfer(_ref) {
8255
8226
  let {
8256
8227
  poolInfo
8257
8228
  } = _ref;
@@ -8280,7 +8251,7 @@ function Transfer$3(_ref) {
8280
8251
  });
8281
8252
  }
8282
8253
 
8283
- function Success$1(_ref) {
8254
+ function Success(_ref) {
8284
8255
  let {
8285
8256
  handleAction
8286
8257
  } = _ref;
@@ -8330,19 +8301,19 @@ function StreamFactoringBorrow(_ref) {
8330
8301
  poolInfo: poolInfo,
8331
8302
  payerAddress: payerAddress,
8332
8303
  superToken: superToken
8333
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$3, {
8304
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount, {
8334
8305
  poolInfo: poolInfo,
8335
8306
  currentFlowRate: currentFlowRate
8336
- }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$1, {
8307
+ }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance, {
8337
8308
  poolInfo: poolInfo
8338
8309
  }), step === WIDGET_STEP.Permit && account && jsx(Permit, {
8339
8310
  poolInfo: poolInfo,
8340
8311
  payerAddress: payerAddress,
8341
8312
  borrower: account,
8342
8313
  superToken: superToken
8343
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$3, {
8314
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer, {
8344
8315
  poolInfo: poolInfo
8345
- }), step === WIDGET_STEP.Done && jsx(Success$1, {
8316
+ }), step === WIDGET_STEP.Done && jsx(Success, {
8346
8317
  handleAction: handleClose
8347
8318
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
8348
8319
  title: "Stream Borrowing",
@@ -8352,7 +8323,7 @@ function StreamFactoringBorrow(_ref) {
8352
8323
  });
8353
8324
  }
8354
8325
 
8355
- var _templateObject$7, _templateObject2$5, _templateObject3$5, _templateObject4$2;
8326
+ var _templateObject$3, _templateObject2$1, _templateObject3$1, _templateObject4$1;
8356
8327
  function UpcomingList(_ref) {
8357
8328
  let {
8358
8329
  items,
@@ -8378,10 +8349,10 @@ function UpcomingList(_ref) {
8378
8349
  return theme.spacing(0, 2, 2, 2);
8379
8350
  };
8380
8351
  const styles = {
8381
- title: css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n font-weight: 800;\n color: ", ";\n font-size: 24px;\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
8382
- description: css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n font-weight: 400;\n color: ", ";\n font-size: 1rem;\n "])), theme.palette.text.primary),
8383
- tableWrapper: css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);\n border: 1px solid #ffffff;\n border-radius: 24px;\n position: relative;\n "])), theme.spacing(3), getPadding()),
8384
- progress: css(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral(["\n width: calc(100% - 30px);\n position: absolute;\n top: 0;\n left: ", ";\n "])), theme.spacing(2))
8352
+ title: css(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n font-weight: 800;\n color: ", ";\n font-size: 24px;\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
8353
+ description: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n font-weight: 400;\n color: ", ";\n font-size: 1rem;\n "])), theme.palette.text.primary),
8354
+ tableWrapper: css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);\n border: 1px solid #ffffff;\n border-radius: 24px;\n position: relative;\n "])), theme.spacing(3), getPadding()),
8355
+ progress: css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n width: calc(100% - 30px);\n position: absolute;\n top: 0;\n left: ", ";\n "])), theme.spacing(2))
8385
8356
  };
8386
8357
  return jsxs(Box, {
8387
8358
  children: [jsx(Box, {
@@ -8410,7 +8381,7 @@ function UpcomingList(_ref) {
8410
8381
  });
8411
8382
  }
8412
8383
 
8413
- var _templateObject$6, _templateObject2$4, _templateObject3$4, _templateObject4$1;
8384
+ var _templateObject$2, _templateObject2, _templateObject3, _templateObject4;
8414
8385
  function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
8415
8386
  var _ref2$1 = process.env.NODE_ENV === "production" ? {
8416
8387
  name: "1llo5fb",
@@ -8488,10 +8459,10 @@ function FactoredList(_ref) {
8488
8459
  return theme.spacing(0, 2, 2, 2);
8489
8460
  };
8490
8461
  const styles = {
8491
- title: css(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral(["\n font-weight: 800;\n color: ", ";\n font-size: 24px;\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
8492
- description: css(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral(["\n font-weight: 400;\n color: ", ";\n font-size: 1rem;\n "])), theme.palette.text.primary),
8493
- tableWrapper: css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);\n border: 1px solid #ffffff;\n border-radius: 24px;\n position: relative;\n "])), theme.spacing(3), getPadding()),
8494
- progress: css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n width: calc(100% - 30px);\n position: absolute;\n top: 0;\n left: ", ";\n "])), theme.spacing(2))
8462
+ title: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n font-weight: 800;\n color: ", ";\n font-size: 24px;\n margin-bottom: ", ";\n "])), theme.palette.text.primary, theme.spacing(2)),
8463
+ description: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n font-weight: 400;\n color: ", ";\n font-size: 1rem;\n "])), theme.palette.text.primary),
8464
+ tableWrapper: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-top: ", ";\n padding: ", ";\n background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%);\n border: 1px solid #ffffff;\n border-radius: 24px;\n position: relative;\n "])), theme.spacing(3), getPadding()),
8465
+ progress: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: calc(100% - 30px);\n position: absolute;\n top: 0;\n left: ", ";\n "])), theme.spacing(2))
8495
8466
  };
8496
8467
  return jsxs(Box, {
8497
8468
  children: [jsxs(Box, {
@@ -8568,7 +8539,7 @@ function SuperfluidFactoredList(_ref) {
8568
8539
  });
8569
8540
  }
8570
8541
 
8571
- var _templateObject$5;
8542
+ var _templateObject$1;
8572
8543
  function TableActionButton(_ref) {
8573
8544
  let {
8574
8545
  title,
@@ -8576,7 +8547,7 @@ function TableActionButton(_ref) {
8576
8547
  handleClick,
8577
8548
  disabled = false
8578
8549
  } = _ref;
8579
- const styles = css(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral(["\n border: none;\n padding: 0;\n background: ", ";\n &:hover {\n border: none;\n }\n "])), disabled ? 'unset !important' : 'inherit');
8550
+ const styles = css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n border: none;\n padding: 0;\n background: ", ";\n &:hover {\n border: none;\n }\n "])), disabled ? 'unset !important' : 'inherit');
8580
8551
  return jsx(Button, {
8581
8552
  className: className,
8582
8553
  variant: disabled ? undefined : 'outlined',
@@ -8589,9 +8560,9 @@ function TableActionButton(_ref) {
8589
8560
  });
8590
8561
  }
8591
8562
 
8592
- var _templateObject$4;
8563
+ var _templateObject;
8593
8564
  function _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
8594
- const GET_RECEIVED_STREAMS = gql(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n query GetReceivedStreams($receiver: String!, $tokenIds: [String]!) {\n streams(\n where: { receiver: $receiver, token_in: $tokenIds, currentFlowRate_gt: 0 }\n orderBy: updatedAtTimestamp\n orderDirection: desc\n ) {\n id\n currentFlowRate\n sender {\n id\n }\n token {\n id\n symbol\n decimals\n }\n }\n }\n"])));
8565
+ const GET_RECEIVED_STREAMS = gql(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n query GetReceivedStreams($receiver: String!, $tokenIds: [String]!) {\n streams(\n where: { receiver: $receiver, token_in: $tokenIds, currentFlowRate_gt: 0 }\n orderBy: updatedAtTimestamp\n orderDirection: desc\n ) {\n id\n currentFlowRate\n sender {\n id\n }\n token {\n id\n symbol\n decimals\n }\n }\n }\n"])));
8595
8566
  const getUpcomingColumns = (userHasActiveLoan, handleGetPaid) => [{
8596
8567
  title: '',
8597
8568
  dataIndex: 'icon',
@@ -8845,7 +8816,7 @@ const coreThemeConstants = {
8845
8816
  borderRadius: {
8846
8817
  md: 4
8847
8818
  },
8848
- fontFamily: ['Roboto', '-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', '"Helvetica Neue"', 'Arial', 'sans-serif', '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"'].join(','),
8819
+ fontFamily: ['Red-Hat-Display', '-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', '"Helvetica Neue"', 'Arial', 'sans-serif', '"Apple Color Emoji"', '"Segoe UI Emoji"', '"Segoe UI Symbol"'].join(','),
8849
8820
  letterSpacing: {
8850
8821
  lg: '2px',
8851
8822
  md: '1px',
@@ -9238,1126 +9209,80 @@ const themeHuma = createTheme(themeBase, {
9238
9209
  components: components(themeBase)
9239
9210
  });
9240
9211
 
9241
- var _templateObject$3, _templateObject2$3, _templateObject3$3;
9242
- function ChooseTranche$2(_ref) {
9243
- let {
9244
- poolUnderlyingToken,
9245
- selectedTranche,
9246
- changeTranche
9247
- } = _ref;
9248
- const theme = useTheme();
9249
- const dispatch = useAppDispatch();
9250
- const styles = {
9251
- subTitle: css(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
9252
- radioGroup: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
9253
- formControl: css(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
9254
- };
9255
- const handleNext = () => {
9256
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9257
- };
9258
- const items = [{
9259
- label: 'Senior',
9260
- value: 'senior'
9261
- }, {
9262
- label: 'Junior',
9263
- value: 'junior'
9264
- }];
9265
- return jsxs(WrapperModal, {
9266
- title: "Supply ".concat(poolUnderlyingToken.symbol),
9267
- children: [jsxs(FormControl, {
9268
- children: [jsx(FormLabel, {
9269
- css: styles.subTitle,
9270
- children: "Select Tranche Type"
9271
- }), jsx(RadioGroup, {
9272
- "aria-labelledby": "buttons-group-label",
9273
- name: "radio-buttons-group",
9274
- css: styles.radioGroup,
9275
- onChange: e => changeTranche(e.target.value),
9276
- children: items.map(item => jsx(FormControlLabel, {
9277
- value: item.value,
9278
- control: jsx(Radio, {
9279
- sx: {
9280
- '& .MuiSvgIcon-root': {
9281
- fontSize: 24
9282
- }
9283
- }
9284
- }),
9285
- label: item.label,
9286
- css: styles.formControl
9287
- }, item.label))
9288
- })]
9289
- }), jsx(BottomButton, {
9290
- variant: "contained",
9291
- disabled: !selectedTranche,
9292
- onClick: handleNext,
9293
- children: "NEXT"
9294
- })]
9295
- });
9296
- }
9297
-
9298
- function ChooseAmount$2(_ref) {
9212
+ function NotifiContextWrapper(_ref) {
9299
9213
  let {
9300
- poolInfo,
9301
- poolState,
9302
- tokenAccount,
9303
- selectedTranche,
9304
- isUniTranche
9214
+ chainId,
9215
+ children
9305
9216
  } = _ref;
9306
- const dispatch = useAppDispatch();
9307
- const {
9308
- symbol,
9309
- decimals
9310
- } = poolInfo.underlyingMint;
9311
- const [currentAmount, setCurrentAmount] = useState(0);
9312
- const balance = useMemo(() => new BN(tokenAccount.amount), [tokenAccount.amount]);
9313
9217
  const {
9314
- juniorAvailableCapBN,
9315
- seniorAvailableCapBN
9316
- } = useMemo(() => {
9317
- const {
9318
- maxSeniorJuniorRatio,
9319
- liquidityCap,
9320
- seniorTrancheAssets,
9321
- juniorTrancheAssets
9322
- } = poolState;
9323
- const juniorTrancheAssetsBN = new BN(juniorTrancheAssets);
9324
- const seniorTrancheAssetsBN = new BN(seniorTrancheAssets);
9325
- const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN);
9326
- const totalAvailableCapBN = new BN(liquidityCap).sub(totalDeployedBN);
9327
- const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln(maxSeniorJuniorRatio);
9328
- let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN);
9329
- seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN) ? totalAvailableCapBN : seniorAvailableCapBN;
9330
- return {
9331
- juniorAvailableCapBN: totalAvailableCapBN.sub(seniorAvailableCapBN),
9332
- seniorAvailableCapBN
9333
- };
9334
- }, [poolState]);
9335
- const handleChangeAmount = newAmount => {
9336
- setCurrentAmount(newAmount);
9337
- dispatch(setSupplyAmount(Number(newAmount)));
9338
- };
9339
- const handleAction = () => {
9340
- dispatch(setStep(WIDGET_STEP.Transfer));
9341
- };
9342
- const getTrancheCap = () => {
9343
- if (selectedTranche === 'junior') {
9344
- return juniorAvailableCapBN;
9345
- }
9346
- return seniorAvailableCapBN;
9347
- };
9348
- const getMinAmount = () => {
9349
- const minAmount = poolState.minDepositAmount ? SolanaTokenUtils.formatUnits(new BN(poolState.minDepositAmount), decimals) : 0;
9350
- return Math.max(0, Math.ceil(Number(minAmount)));
9351
- };
9352
- const getMaxAmount = () => {
9353
- const trancheCap = getTrancheCap();
9354
- return balance.gt(trancheCap) ? trancheCap : balance;
9355
- };
9356
- const getInfos = () => {
9357
- const trancheCap = getTrancheCap();
9358
- const currentAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
9359
- const remainingCap = trancheCap.sub(currentAmountBN);
9360
- if (remainingCap.ltn(0)) {
9361
- return ['0 remaining capacity'];
9218
+ account,
9219
+ provider
9220
+ } = useWeb3React();
9221
+ const signer = useMemo(() => {
9222
+ if (provider instanceof providers.JsonRpcProvider) {
9223
+ return provider.getSigner();
9362
9224
  }
9363
- return ["".concat(formatNumber(SolanaTokenUtils.formatUnits(remainingCap, decimals)), " remaining capacity")];
9364
- };
9365
- return jsx(InputAmountModal, {
9366
- title: "Enter Amount",
9367
- subTitle: "Depositing to ".concat(isUniTranche ? 'uni tranche' : selectedTranche, " tranche"),
9368
- tokenSymbol: symbol,
9369
- currentAmount: currentAmount,
9370
- handleChangeAmount: handleChangeAmount,
9371
- minimumAmount: getMinAmount(),
9372
- maxAmount: Number(SolanaTokenUtils.formatUnits(getMaxAmount(), decimals)),
9373
- maxAmountTitle: "".concat(formatNumber(SolanaTokenUtils.formatUnits(balance, decimals)), " balance"),
9374
- infos: getInfos(),
9375
- handleAction: handleAction,
9376
- actionText: "SUPPLY"
9377
- });
9378
- }
9379
-
9380
- function SolanaViewOnExplorer(_ref) {
9381
- let {
9382
- chainId,
9383
- signature
9384
- } = _ref;
9385
- const link = getSolanaExplorerUrl(chainId, signature, 'tx');
9386
- if (!link) {
9225
+ return undefined;
9226
+ }, [provider]);
9227
+ if (account == null || signer == null || chainId == null) {
9387
9228
  return null;
9388
9229
  }
9389
- return jsx(Button, {
9390
- fullWidth: true,
9391
- variant: "outlined",
9392
- onClick: () => openInNewTab(link),
9393
- children: jsx(Box, {
9394
- component: "span",
9395
- children: "VIEW ON EXPLORER"
9396
- })
9230
+ let cardId = '';
9231
+ if (chainId === ChainEnum.Celo || chainId === ChainEnum.Alfajores) {
9232
+ var _process$env$REACT_AP;
9233
+ cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
9234
+ } else if (chainId === ChainEnum.Polygon || chainId === ChainEnum.Amoy) {
9235
+ var _process$env$REACT_AP2;
9236
+ cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
9237
+ } else if (chainId === ChainEnum.Scroll || chainId === ChainEnum.ScrollSepolia) {
9238
+ var _process$env$REACT_AP3;
9239
+ cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
9240
+ }
9241
+ return jsx(NotifiContextProvider, {
9242
+ tenantId: "humafinanceprod",
9243
+ env: "Production",
9244
+ signMessage: async message => {
9245
+ const result = await signer.signMessage(message);
9246
+ return arrayify(result);
9247
+ },
9248
+ walletPublicKey: account,
9249
+ walletBlockchain: getBlockchainConfigFromChain(chainId),
9250
+ cardId: cardId,
9251
+ children: children
9397
9252
  });
9398
9253
  }
9399
9254
 
9400
- function SolanaTxSendModal(_ref) {
9401
- let {
9402
- chainId,
9403
- tx,
9404
- handleSuccess
9405
- } = _ref;
9406
- const dispatch = useAppDispatch();
9407
- const {
9408
- sendTransaction
9409
- } = useWallet();
9255
+ function Widget(props) {
9410
9256
  const {
9411
- connection
9412
- } = useConnection();
9413
- const [signature, setSignature] = useState('');
9257
+ children,
9258
+ provider
9259
+ } = props;
9260
+ const [chainId, setChainId] = useState(undefined);
9414
9261
  useEffect(() => {
9415
- async function sendTx() {
9416
- if (!connection || !tx) {
9417
- return;
9418
- }
9419
- try {
9420
- const latestBlockHash = await connection.getLatestBlockhash();
9421
- const signature = await sendTransaction(tx, connection);
9422
- setSignature(signature);
9423
- dispatch(setSolanaSignature(signature));
9424
- await connection.confirmTransaction({
9425
- blockhash: latestBlockHash.blockhash,
9426
- lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
9427
- signature
9428
- });
9429
- handleSuccess();
9430
- } catch (error) {
9431
- const err = error;
9432
- dispatch(setError({
9433
- errorMessage: (err === null || err === void 0 ? void 0 : err.message) || ''
9434
- }));
9262
+ const getChainId = async () => {
9263
+ if (provider instanceof JsonRpcProvider) {
9264
+ const network = await provider.getNetwork();
9265
+ setChainId(network === null || network === void 0 ? void 0 : network.chainId);
9435
9266
  }
9436
- }
9437
- sendTx();
9438
- }, [connection, dispatch, handleSuccess, sendTransaction, tx]);
9439
- return jsx(LoadingModal, {
9440
- title: "Transaction Pending",
9441
- description: "Waiting for confirmation...",
9442
- children: jsx(SolanaViewOnExplorer, {
9443
- chainId: chainId,
9444
- signature: signature
9445
- })
9446
- });
9447
- }
9448
-
9449
- function Transfer$2(_ref) {
9450
- let {
9451
- poolInfo,
9452
- selectedTranche
9453
- } = _ref;
9454
- const dispatch = useAppDispatch();
9455
- const {
9456
- publicKey
9457
- } = useWallet();
9458
- const {
9459
- supplyAmount
9460
- } = useAppSelector(selectWidgetState);
9461
- const {
9462
- decimals
9463
- } = poolInfo.underlyingMint;
9464
- const supplyBigNumber = SolanaTokenUtils.parseUnits(String(supplyAmount), decimals);
9465
- const [transaction, setTransaction] = useState();
9466
- const program = useHumaProgram(poolInfo.chainId);
9467
- const handleSuccess = useCallback(() => {
9468
- dispatch(setStep(WIDGET_STEP.Done));
9469
- }, [dispatch]);
9470
- useEffect(() => {
9471
- async function getTx() {
9472
- if (!publicKey || transaction) {
9473
- return;
9474
- }
9475
- const {
9476
- underlyingTokenATA,
9477
- seniorTrancheATA,
9478
- juniorTrancheATA
9479
- } = getTokenAccounts(poolInfo, publicKey);
9480
- const tx = await program.methods.deposit(supplyBigNumber).accountsPartial({
9481
- depositor: publicKey,
9482
- poolConfig: poolInfo.poolConfig,
9483
- underlyingMint: poolInfo.underlyingMint.address,
9484
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
9485
- poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
9486
- depositorUnderlyingToken: underlyingTokenATA,
9487
- depositorTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
9488
- humaConfig: poolInfo.humaConfig,
9489
- tokenProgram: TOKEN_2022_PROGRAM_ID
9490
- }).transaction();
9491
- setTransaction(tx);
9492
- }
9493
- getTx();
9494
- }, [poolInfo, program.methods, publicKey, selectedTranche, supplyBigNumber, transaction]);
9495
- return jsx(SolanaTxSendModal, {
9496
- tx: transaction,
9497
- chainId: poolInfo.chainId,
9498
- handleSuccess: handleSuccess
9499
- });
9500
- }
9501
-
9502
- var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
9503
- function SolanaTxDoneModal(_ref) {
9504
- let {
9505
- content,
9506
- subContent,
9507
- handleAction,
9508
- solanaSignature,
9509
- chainId,
9510
- buttonText
9511
- } = _ref;
9512
- const theme = useTheme();
9513
- const dispatch = useAppDispatch();
9514
- const styles = {
9515
- wrapper: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
9516
- header: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
9517
- content: css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral(["\n ", ";\n font-weight: ", ";\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, subContent ? 700 : 400, theme.palette.text.secondary, theme.spacing(8)),
9518
- subContent: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", ";\n font-weight: 400;\n font-size: 18px;\n color: ", ";\n margin-top: ", ";\n text-align: center;\n "])), theme.cssMixins.colVCentered, theme.palette.text.primary, theme.spacing(2)),
9519
- check: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
9520
- bottomButtonGroup: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
9521
- bottomButton: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin-top: ", ";\n "])), theme.spacing(1))
9522
- };
9523
- const handleCloseModal = useCallback(() => {
9524
- dispatch(resetState());
9525
- handleAction();
9526
- }, [dispatch, handleAction]);
9527
- return jsxs(Box, {
9528
- css: styles.wrapper,
9529
- children: [jsx(Typography, {
9530
- variant: "h6",
9531
- css: styles.header,
9532
- children: "Transaction Completed"
9533
- }), jsx(Box, {
9534
- css: styles.check,
9535
- children: jsx(CheckIcon, {})
9536
- }), jsx(Box, {
9537
- css: styles.content,
9538
- children: content.map(item => jsx(Box, {
9539
- sx: {
9540
- marginTop: theme.spacing(1)
9541
- },
9542
- children: item
9543
- }, item))
9544
- }), subContent && jsx(Box, {
9545
- css: styles.subContent,
9546
- children: subContent.map(item => jsx(Box, {
9547
- sx: {
9548
- marginTop: theme.spacing(1)
9549
- },
9550
- children: item
9551
- }, item))
9552
- }), jsxs(Box, {
9553
- css: styles.bottomButtonGroup,
9554
- children: [solanaSignature && chainId && jsx(SolanaViewOnExplorer, {
9555
- signature: solanaSignature,
9556
- chainId: chainId
9557
- }), jsx(Button, {
9558
- className: "transaction-done-modal-close-btn",
9559
- variant: "contained",
9560
- fullWidth: true,
9561
- css: styles.bottomButton,
9562
- onClick: handleCloseModal,
9563
- children: !buttonText ? 'DONE' : buttonText
9564
- })]
9565
- })]
9566
- });
9567
- }
9568
-
9569
- function Success(_ref) {
9570
- let {
9571
- poolInfo,
9572
- poolState,
9573
- handleAction
9574
- } = _ref;
9575
- const {
9576
- supplyAmount,
9577
- solanaSignature
9578
- } = useAppSelector(selectWidgetState);
9579
- const {
9580
- symbol
9581
- } = poolInfo.underlyingMint;
9582
- const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
9583
- const getSubContent = () => {
9584
- const currentTime = moment().add(poolState.withdrawalLockupPeriodDays, 'days');
9585
- return ["First redemption date: ".concat(timeUtil.timestampToLL(currentTime.unix()), ". You can redeem end of each month after.")];
9586
- };
9587
- return jsx(SolanaTxDoneModal, {
9588
- handleAction: handleAction,
9589
- content: content,
9590
- subContent: getSubContent(),
9591
- chainId: poolInfo.chainId,
9592
- solanaSignature: solanaSignature,
9593
- buttonText: "DONE"
9594
- });
9595
- }
9596
-
9597
- function SolanaLendSupply(_ref) {
9598
- let {
9599
- poolInfo,
9600
- poolState,
9601
- handleClose,
9602
- handleSuccess
9603
- } = _ref;
9604
- const dispatch = useDispatch();
9605
- const {
9606
- seniorLenderApproved,
9607
- juniorLenderApproved,
9608
- loading: isLoadingLenderAccounts
9609
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9610
- const [tokenAccount, isLoadingTokenAccount] = useTokenAccount(poolInfo);
9611
- const {
9612
- step,
9613
- errorMessage
9614
- } = useAppSelector(selectWidgetState);
9615
- const isUniTranche = poolState.maxSeniorJuniorRatio === 0;
9616
- const [selectedTranche, setSelectedTranche] = useState();
9617
- useEffect(() => {
9618
- if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) {
9619
- if (juniorLenderApproved && !seniorLenderApproved) {
9620
- setSelectedTranche('junior');
9621
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9622
- return;
9623
- }
9624
- if (seniorLenderApproved && !juniorLenderApproved) {
9625
- setSelectedTranche('senior');
9626
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9627
- return;
9628
- }
9629
- if (juniorLenderApproved && seniorLenderApproved) {
9630
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
9631
- // return
9632
- }
9633
-
9634
- // if (poolInfo.supplyLink) {
9635
- // openInNewTab(poolInfo.supplyLink)
9636
- // handleClose()
9637
- // }
9638
- }
9639
- }, [dispatch, handleClose, poolInfo, step, isLoadingLenderAccounts, juniorLenderApproved, seniorLenderApproved, isLoadingTokenAccount]);
9640
- if (isLoadingLenderAccounts || isLoadingTokenAccount) {
9641
- return jsx(WidgetWrapper, {
9642
- isOpen: true,
9643
- isLoading: true,
9644
- loadingTitle: "Supply",
9645
- handleClose: handleClose,
9646
- handleSuccess: handleSuccess
9647
- });
9648
- }
9649
- return jsxs(WidgetWrapper, {
9650
- isOpen: true,
9651
- loadingTitle: "Supply ".concat(poolInfo.underlyingMint.symbol),
9652
- handleClose: handleClose,
9653
- handleSuccess: handleSuccess,
9654
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$2, {
9655
- poolUnderlyingToken: poolInfo.underlyingMint,
9656
- selectedTranche: selectedTranche,
9657
- changeTranche: setSelectedTranche
9658
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$2, {
9659
- poolInfo: poolInfo,
9660
- poolState: poolState,
9661
- tokenAccount: tokenAccount,
9662
- selectedTranche: selectedTranche,
9663
- isUniTranche: isUniTranche
9664
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$2, {
9665
- poolInfo: poolInfo,
9666
- selectedTranche: selectedTranche
9667
- }), step === WIDGET_STEP.Done && jsx(Success, {
9668
- poolInfo: poolInfo,
9669
- poolState: poolState,
9670
- handleAction: handleClose
9671
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9672
- title: "Supply",
9673
- errorReason: "Sorry there was an error",
9674
- errorMessage: errorMessage,
9675
- handleOk: handleClose
9676
- })]
9677
- });
9678
- }
9679
-
9680
- function ChooseAmount$1(_ref) {
9681
- let {
9682
- poolInfo,
9683
- poolState,
9684
- selectedTranche,
9685
- lenderState
9686
- } = _ref;
9687
- const dispatch = useAppDispatch();
9688
- const {
9689
- symbol
9690
- } = poolInfo.underlyingMint;
9691
- const [currentAmount, setCurrentAmount] = useState(0);
9692
- const [currentShares, setCurrentShares] = useState(0);
9693
- const {
9694
- mintAccount,
9695
- loading: isLoadingTrancheMintAccounts
9696
- } = useTrancheMintAccounts(poolInfo, selectedTranche);
9697
- const {
9698
- seniorTokenAccount,
9699
- juniorTokenAccount,
9700
- loading: isLoadingTokenAccounts
9701
- } = useTrancheTokenAccounts(poolInfo);
9702
- const maxSharesFormatted = useMemo(() => {
9703
- if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals)) {
9704
- return 0;
9705
- }
9706
- return SolanaTokenUtils.formatUnits(selectedTranche === 'senior' ? new BN(seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount) : new BN(juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount), mintAccount.decimals);
9707
- }, [mintAccount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount]);
9708
- const sharePrice = useMemo(() => {
9709
- if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals) || !(mintAccount !== null && mintAccount !== void 0 && mintAccount.supply)) {
9710
- return 0;
9711
- }
9712
- const mintSupplyFormatted = Number(SolanaTokenUtils.formatUnits(new BN(mintAccount.supply), mintAccount.decimals));
9713
- if (mintSupplyFormatted === 0) {
9714
- return 0;
9715
- }
9716
- const seniorTrancheAssetsFormatted = Number(SolanaTokenUtils.formatUnits(new BN(poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets), mintAccount.decimals));
9717
- if (selectedTranche === 'senior') {
9718
- return seniorTrancheAssetsFormatted / mintSupplyFormatted;
9719
- }
9720
- const juniorTrancheAssetsFormatted = Number(SolanaTokenUtils.formatUnits(new BN(poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets), mintAccount.decimals));
9721
- return juniorTrancheAssetsFormatted / mintSupplyFormatted;
9722
- }, [mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals, mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.supply, poolState === null || poolState === void 0 ? void 0 : poolState.juniorTrancheAssets, poolState === null || poolState === void 0 ? void 0 : poolState.seniorTrancheAssets, selectedTranche]);
9723
- useEffect(() => {
9724
- if (poolState !== null && poolState !== void 0 && poolState.withdrawalLockupPeriodDays && poolState !== null && poolState !== void 0 && poolState.epochEndTime && lenderState) {
9725
- const SECONDS_IN_A_DAY = 24 * 60 * 60;
9726
- const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime);
9727
- const lockupEndTime = lastDepositTime + poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY;
9728
- if (poolState.epochEndTime < lockupEndTime) {
9729
- const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1);
9730
- dispatch(setStep(WIDGET_STEP.Error));
9731
- dispatch(setError({
9732
- errorReason: 'Redemption too soon',
9733
- errorMessage: "Your last deposit was on ".concat(timestampToLL(lastDepositTime), ". You can redeem on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ".")
9734
- }));
9735
- }
9736
- }
9737
- }, [dispatch, lenderState, poolState.epochEndTime, poolState.withdrawalLockupPeriodDays]);
9738
- const handleChangeShares = newShares => {
9739
- const amount = Number(newShares) * sharePrice;
9740
- setCurrentShares(Number(newShares));
9741
- setCurrentAmount(amount);
9742
- dispatch(setRedeemShares(Number(newShares)));
9743
- dispatch(setRedeemAmount(amount));
9744
- };
9745
- const handleAction = () => {
9746
- dispatch(setStep(WIDGET_STEP.Transfer));
9747
- };
9748
- if (isLoadingTokenAccounts || isLoadingTrancheMintAccounts || !lenderState || (poolState === null || poolState === void 0 ? void 0 : poolState.withdrawalLockupPeriodDays) === undefined ||
9749
- // withdrawalLockupPeriodDays can be 0
9750
- !(poolState !== null && poolState !== void 0 && poolState.epochEndTime)) {
9751
- return jsx(LoadingModal, {
9752
- title: "Redemption"
9753
- });
9754
- }
9755
- return jsx(InputAmountModal, {
9756
- title: "Redemption",
9757
- subTitle: "Enter number of shares to redeem from the ".concat(selectedTranche, " tranche"),
9758
- tokenSymbol: symbol,
9759
- currentAmount: currentShares,
9760
- handleChangeAmount: handleChangeShares,
9761
- maxAmount: maxSharesFormatted,
9762
- infos: ["".concat(String(formatNumber(currentAmount)), " ").concat(symbol)],
9763
- maxAmountTitle: "".concat(formatNumber(maxSharesFormatted), " Shares"),
9764
- suffix: "Shares",
9765
- handleAction: handleAction,
9766
- actionText: "REQUEST"
9767
- });
9768
- }
9769
-
9770
- var _templateObject$1, _templateObject2$1, _templateObject3$1;
9771
- function ChooseTranche$1(_ref) {
9772
- let {
9773
- selectedTranche,
9774
- changeTranche
9775
- } = _ref;
9776
- const theme = useTheme();
9777
- const dispatch = useAppDispatch();
9778
- const styles = {
9779
- subTitle: css(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
9780
- radioGroup: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
9781
- formControl: css(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
9782
- };
9783
- const handleNext = () => {
9784
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9785
- };
9786
- const items = [{
9787
- label: 'Senior',
9788
- value: 'senior'
9789
- }, {
9790
- label: 'Junior',
9791
- value: 'junior'
9792
- }];
9793
- return jsxs(WrapperModal, {
9794
- title: "Redemption",
9795
- children: [jsxs(FormControl, {
9796
- children: [jsx(FormLabel, {
9797
- css: styles.subTitle,
9798
- children: "Select Tranche Type"
9799
- }), jsx(RadioGroup, {
9800
- "aria-labelledby": "buttons-group-label",
9801
- name: "radio-buttons-group",
9802
- css: styles.radioGroup,
9803
- onChange: e => changeTranche(e.target.value),
9804
- children: items.map(item => jsx(FormControlLabel, {
9805
- value: item.value,
9806
- control: jsx(Radio, {
9807
- sx: {
9808
- '& .MuiSvgIcon-root': {
9809
- fontSize: 24
9810
- }
9811
- }
9812
- }),
9813
- label: item.label,
9814
- css: styles.formControl
9815
- }, item.label))
9816
- })]
9817
- }), jsx(BottomButton, {
9818
- variant: "contained",
9819
- disabled: !selectedTranche,
9820
- onClick: handleNext,
9821
- children: "NEXT"
9822
- })]
9823
- });
9824
- }
9825
-
9826
- function Done$1(_ref) {
9827
- let {
9828
- poolInfo,
9829
- handleAction
9830
- } = _ref;
9831
- const {
9832
- redeemShares,
9833
- solanaSignature
9834
- } = useAppSelector(selectWidgetState);
9835
- const content = ["".concat(formatNumber(redeemShares), " shares requested for redemption")];
9836
- return jsx(SolanaTxDoneModal, {
9837
- handleAction: handleAction,
9838
- content: content,
9839
- chainId: poolInfo.chainId,
9840
- solanaSignature: solanaSignature,
9841
- buttonText: "DONE"
9842
- });
9843
- }
9844
-
9845
- function Transfer$1(_ref) {
9846
- let {
9847
- poolInfo,
9848
- selectedTranche
9849
- } = _ref;
9850
- const dispatch = useAppDispatch();
9851
- const {
9852
- publicKey
9853
- } = useWallet();
9854
- const {
9855
- redeemShares
9856
- } = useAppSelector(selectWidgetState);
9857
- const {
9858
- mintAccount
9859
- } = useTrancheMintAccounts(poolInfo, selectedTranche);
9860
- const [transaction, setTransaction] = useState();
9861
- const program = useHumaProgram(poolInfo.chainId);
9862
- const redeemBN = useMemo(() => {
9863
- if (!mintAccount) {
9864
- return null;
9865
- }
9866
- return SolanaTokenUtils.parseUnits(String(redeemShares), mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals);
9867
- }, [mintAccount, redeemShares]);
9868
- const handleSuccess = useCallback(() => {
9869
- dispatch(setStep(WIDGET_STEP.Done));
9870
- }, [dispatch]);
9871
- useEffect(() => {
9872
- async function getTx() {
9873
- if (!publicKey || !redeemBN || transaction) {
9874
- return;
9875
- }
9876
- const {
9877
- seniorTrancheATA,
9878
- juniorTrancheATA,
9879
- poolSeniorTrancheATA,
9880
- poolJuniorTrancheATA
9881
- } = getTokenAccounts(poolInfo, publicKey);
9882
- const tx = await program.methods.addRedemptionRequest(redeemBN).accountsPartial({
9883
- lender: publicKey,
9884
- humaConfig: poolInfo.humaConfig,
9885
- poolConfig: poolInfo.poolConfig,
9886
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
9887
- poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
9888
- lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
9889
- tokenProgram: TOKEN_2022_PROGRAM_ID
9890
- }).transaction();
9891
- setTransaction(tx);
9892
- }
9893
- getTx();
9894
- }, [poolInfo, program.methods, publicKey, redeemBN, selectedTranche, transaction]);
9895
- return jsx(SolanaTxSendModal, {
9896
- tx: transaction,
9897
- chainId: poolInfo.chainId,
9898
- handleSuccess: handleSuccess
9899
- });
9900
- }
9901
-
9902
- function SolanaLendAddRedemption(_ref) {
9903
- let {
9904
- poolInfo,
9905
- poolState,
9906
- handleClose,
9907
- handleSuccess
9908
- } = _ref;
9909
- const dispatch = useDispatch();
9910
- const {
9911
- seniorLenderStateAccount,
9912
- juniorLenderStateAccount,
9913
- loading: isLoadingLenderAccounts
9914
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9915
- const {
9916
- seniorTokenAccount,
9917
- juniorTokenAccount,
9918
- loading: isLoadingTokenAccounts
9919
- } = useTrancheTokenAccounts(poolInfo);
9920
- const {
9921
- step,
9922
- errorMessage
9923
- } = useAppSelector(selectWidgetState);
9924
- const [selectedTranche, setSelectedTranche] = useState();
9925
- useEffect(() => {
9926
- if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) {
9927
- const seniorTrancheShares = new BN(seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount);
9928
- const juniorTrancheShares = new BN(juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount);
9929
- if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) {
9930
- setSelectedTranche('junior');
9931
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9932
- return;
9933
- }
9934
- if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) {
9935
- setSelectedTranche('senior');
9936
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9937
- return;
9938
- }
9939
- if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) {
9940
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
9941
- }
9942
- }
9943
- }, [dispatch, step, isLoadingLenderAccounts, isLoadingTokenAccounts, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount]);
9944
- const title = 'Redemption';
9945
- if (isLoadingLenderAccounts || isLoadingTokenAccounts) {
9946
- return jsx(WidgetWrapper, {
9947
- isOpen: true,
9948
- isLoading: true,
9949
- loadingTitle: title,
9950
- handleClose: handleClose,
9951
- handleSuccess: handleSuccess
9952
- });
9953
- }
9954
- return jsxs(WidgetWrapper, {
9955
- isOpen: true,
9956
- loadingTitle: title,
9957
- handleClose: handleClose,
9958
- handleSuccess: handleSuccess,
9959
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
9960
- selectedTranche: selectedTranche,
9961
- changeTranche: setSelectedTranche
9962
- }), step === WIDGET_STEP.ChooseAmount && selectedTranche && jsx(ChooseAmount$1, {
9963
- poolInfo: poolInfo,
9964
- poolState: poolState,
9965
- lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9966
- selectedTranche: selectedTranche
9967
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$1, {
9968
- poolInfo: poolInfo,
9969
- selectedTranche: selectedTranche
9970
- }), step === WIDGET_STEP.Done && jsx(Done$1, {
9971
- poolInfo: poolInfo,
9972
- handleAction: handleClose
9973
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9974
- title: title,
9975
- errorReason: "Sorry there was an error",
9976
- errorMessage: errorMessage,
9977
- handleOk: handleClose
9978
- })]
9979
- });
9980
- }
9981
-
9982
- function Transfer(_ref) {
9983
- let {
9984
- poolInfo,
9985
- lenderState,
9986
- lenderStatePDA,
9987
- selectedTranche
9988
- } = _ref;
9989
- const dispatch = useAppDispatch();
9990
- const {
9991
- publicKey
9992
- } = useWallet();
9993
- const [transaction, setTransaction] = useState();
9994
- const program = useHumaProgram(poolInfo.chainId);
9995
- const handleSuccess = useCallback(() => {
9996
- dispatch(setStep(WIDGET_STEP.Done));
9997
- }, [dispatch]);
9998
- useEffect(() => {
9999
- async function getTx() {
10000
- if (!publicKey || !lenderState || !lenderStatePDA || transaction) {
10001
- return;
10002
- }
10003
- const {
10004
- seniorTrancheATA,
10005
- juniorTrancheATA,
10006
- poolSeniorTrancheATA,
10007
- poolJuniorTrancheATA
10008
- } = getTokenAccounts(poolInfo, publicKey);
10009
- const tx = await program.methods.cancelRedemptionRequest(lenderState.redemptionRecord.numSharesRequested).accountsPartial({
10010
- lender: publicKey,
10011
- humaConfig: poolInfo.humaConfig,
10012
- poolConfig: poolInfo.poolConfig,
10013
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
10014
- trancheState: selectedTranche === 'senior' ? poolInfo.seniorTrancheState : poolInfo.juniorTrancheState,
10015
- lenderState: lenderStatePDA,
10016
- poolAuthority: poolInfo.poolAuthority,
10017
- poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
10018
- lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
10019
- tokenProgram: TOKEN_2022_PROGRAM_ID
10020
- }).transaction();
10021
- setTransaction(tx);
10022
- }
10023
- getTx();
10024
- }, [lenderState, lenderStatePDA, poolInfo, program.methods, publicKey, selectedTranche, transaction]);
10025
- return jsx(SolanaTxSendModal, {
10026
- tx: transaction,
10027
- chainId: poolInfo.chainId,
10028
- handleSuccess: handleSuccess
10029
- });
10030
- }
10031
-
10032
- var _templateObject, _templateObject2, _templateObject3;
10033
- function ChooseTranche(_ref) {
10034
- let {
10035
- selectedTranche,
10036
- changeTranche
10037
- } = _ref;
10038
- const theme = useTheme();
10039
- const dispatch = useAppDispatch();
10040
- const styles = {
10041
- subTitle: css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", " !important;\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n margin-top: ", ";\n margin-left: ", ";\n "])), theme.palette.text.primary, theme.spacing(5), theme.spacing(2)),
10042
- radioGroup: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
10043
- formControl: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n\n .MuiFormControlLabel-label {\n color: ", ";\n font-weight: 400;\n font-size: 16px;\n line-height: 150%;\n letter-spacing: 0.15px;\n }\n "])), theme.spacing(1), theme.palette.text.primary)
10044
- };
10045
- const handleNext = () => {
10046
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
10047
- };
10048
- const items = [{
10049
- label: 'Senior',
10050
- value: 'senior'
10051
- }, {
10052
- label: 'Junior',
10053
- value: 'junior'
10054
- }];
10055
- return jsxs(WrapperModal, {
10056
- title: "Cancel Redemption",
10057
- children: [jsxs(FormControl, {
10058
- children: [jsx(FormLabel, {
10059
- css: styles.subTitle,
10060
- children: "Select Tranche Type"
10061
- }), jsx(RadioGroup, {
10062
- "aria-labelledby": "buttons-group-label",
10063
- name: "radio-buttons-group",
10064
- css: styles.radioGroup,
10065
- onChange: e => changeTranche(e.target.value),
10066
- children: items.map(item => jsx(FormControlLabel, {
10067
- value: item.value,
10068
- control: jsx(Radio, {
10069
- sx: {
10070
- '& .MuiSvgIcon-root': {
10071
- fontSize: 24
10072
- }
10073
- }
10074
- }),
10075
- label: item.label,
10076
- css: styles.formControl
10077
- }, item.label))
10078
- })]
10079
- }), jsx(BottomButton, {
10080
- variant: "contained",
10081
- disabled: !selectedTranche,
10082
- onClick: handleNext,
10083
- children: "NEXT"
10084
- })]
10085
- });
10086
- }
10087
-
10088
- function Done(_ref) {
10089
- let {
10090
- poolInfo,
10091
- lenderState,
10092
- selectedTranche,
10093
- handleAction
10094
- } = _ref;
10095
- const {
10096
- mintAccount,
10097
- loading: isLoadingTrancheMintAccounts
10098
- } = useTrancheMintAccounts(poolInfo, selectedTranche);
10099
- const {
10100
- solanaSignature
10101
- } = useAppSelector(selectWidgetState);
10102
- const content = !lenderState || isLoadingTrancheMintAccounts || !mintAccount ? [''] : ["Your request to cancel the redemption of ".concat(formatNumber(SolanaTokenUtils.formatUnits(lenderState.redemptionRecord.numSharesRequested, mintAccount.decimals)), " shares has been successfully processed.")];
10103
- return jsx(SolanaTxDoneModal, {
10104
- handleAction: handleAction,
10105
- content: content,
10106
- chainId: poolInfo.chainId,
10107
- solanaSignature: solanaSignature,
10108
- buttonText: "DONE"
10109
- });
10110
- }
10111
-
10112
- function SolanaLendCancelRedemption(_ref) {
10113
- let {
10114
- poolInfo,
10115
- handleClose,
10116
- handleSuccess
10117
- } = _ref;
10118
- const dispatch = useDispatch();
10119
- const {
10120
- seniorLenderStateAccount,
10121
- juniorLenderStateAccount,
10122
- juniorLenderStateAccountPDA,
10123
- seniorLenderStateAccountPDA,
10124
- loading: isLoadingLenderAccounts
10125
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
10126
- const {
10127
- step,
10128
- errorMessage
10129
- } = useAppSelector(selectWidgetState);
10130
- const [selectedTranche, setSelectedTranche] = useState();
10131
- useEffect(() => {
10132
- if (!step && !isLoadingLenderAccounts) {
10133
- const seniorTrancheSharesRequested = new BN(seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested);
10134
- const juniorTrancheSharesRequested = new BN(juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested);
10135
- if (juniorTrancheSharesRequested.gtn(0) && seniorTrancheSharesRequested.lten(0)) {
10136
- setSelectedTranche('junior');
10137
- dispatch(setStep(WIDGET_STEP.Transfer));
10138
- return;
10139
- }
10140
- if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.lten(0)) {
10141
- setSelectedTranche('senior');
10142
- dispatch(setStep(WIDGET_STEP.Transfer));
10143
- return;
10144
- }
10145
- if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.gtn(0)) {
10146
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
10147
- }
10148
- }
10149
- }, [dispatch, step, isLoadingLenderAccounts, seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested, juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested]);
10150
- const title = 'Cancel Redemption';
10151
- if (isLoadingLenderAccounts) {
10152
- return jsx(WidgetWrapper, {
10153
- isOpen: true,
10154
- isLoading: true,
10155
- loadingTitle: title,
10156
- handleClose: handleClose,
10157
- handleSuccess: handleSuccess
10158
- });
10159
- }
10160
- return jsxs(WidgetWrapper, {
10161
- isOpen: true,
10162
- loadingTitle: title,
10163
- handleClose: handleClose,
10164
- handleSuccess: handleSuccess,
10165
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
10166
- selectedTranche: selectedTranche,
10167
- changeTranche: setSelectedTranche
10168
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer, {
10169
- poolInfo: poolInfo,
10170
- lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
10171
- lenderStatePDA: selectedTranche === 'senior' ? seniorLenderStateAccountPDA : juniorLenderStateAccountPDA,
10172
- selectedTranche: selectedTranche
10173
- }), step === WIDGET_STEP.Done && selectedTranche && jsx(Done, {
10174
- poolInfo: poolInfo,
10175
- lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
10176
- selectedTranche: selectedTranche,
10177
- handleAction: handleClose
10178
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
10179
- title: title,
10180
- errorReason: "Sorry there was an error",
10181
- errorMessage: errorMessage,
10182
- handleOk: handleClose
10183
- })]
10184
- });
10185
- }
10186
-
10187
- function ChooseAmount(_ref) {
10188
- let {
10189
- poolInfo,
10190
- creditConfigAccount,
10191
- tokenAccount
10192
- } = _ref;
10193
- const dispatch = useAppDispatch();
10194
- const {
10195
- symbol,
10196
- decimals
10197
- } = poolInfo.underlyingMint;
10198
- const sentinel = useMemo(() => getSentinelAddress(poolInfo.chainId), [poolInfo.chainId]);
10199
- const [currentAmount, setCurrentAmount] = useState(0);
10200
- const creditAvailable = useMemo(() => SolanaTokenUtils.formatUnits(creditConfigAccount.creditAvailable, decimals), [creditConfigAccount.creditAvailable, decimals]);
10201
- const handleChangeAmount = newAmount => {
10202
- setCurrentAmount(newAmount);
10203
- };
10204
- const handleAction = useCallback(() => {
10205
- var _tokenAccount$delegat;
10206
- if (!tokenAccount) {
10207
- return;
10208
- }
10209
- const borrowAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
10210
- const nextStep = borrowAmountBN.gt(new BN(tokenAccount.delegatedAmount)) || ((_tokenAccount$delegat = tokenAccount.delegate) === null || _tokenAccount$delegat === void 0 ? void 0 : _tokenAccount$delegat.toString()) !== sentinel ? WIDGET_STEP.ApproveAllowance : WIDGET_STEP.Transfer;
10211
- dispatch(setBorrowInfo({
10212
- borrowAmount: currentAmount,
10213
- borrowAmountBN,
10214
- chargedFees: 0,
10215
- nextStep
10216
- }));
10217
- }, [currentAmount, decimals, dispatch, sentinel, tokenAccount]);
10218
- return jsx(InputAmountModal, {
10219
- title: "Borrow",
10220
- subTitle: "Choose Amount",
10221
- tokenSymbol: symbol,
10222
- currentAmount: currentAmount,
10223
- handleChangeAmount: handleChangeAmount,
10224
- maxAmount: creditAvailable,
10225
- infos: ["".concat(String(formatNumber(creditAvailable)), " ").concat(symbol, " Available")],
10226
- handleAction: handleAction,
10227
- actionText: "BORROW"
10228
- });
10229
- }
10230
-
10231
- function ApproveAllowance(_ref) {
10232
- let {
10233
- poolInfo,
10234
- tokenAccount
10235
- } = _ref;
10236
- const dispatch = useAppDispatch();
10237
- const {
10238
- wallet,
10239
- publicKey,
10240
- sendTransaction,
10241
- signTransaction
10242
- } = useWallet();
10243
- const sentinel = useMemo(() => getSentinelAddress(poolInfo.chainId), [poolInfo.chainId]);
10244
- const {
10245
- connection
10246
- } = useConnection();
10247
- const [transaction, setTransaction] = useState();
10248
- const handleSuccess = useCallback(() => {
10249
- dispatch(setStep(WIDGET_STEP.Transfer));
10250
- }, [dispatch]);
10251
- useEffect(() => {
10252
- async function getTx() {
10253
- if (!wallet || !publicKey || !connection || !signTransaction) {
10254
- return;
10255
- }
10256
- const tx = new Transaction().add(createApproveCheckedInstruction(tokenAccount.address, new PublicKey(poolInfo.underlyingMint.address), new PublicKey(sentinel),
10257
- // delegate
10258
- publicKey,
10259
- // owner of the wallet
10260
- SolanaTokenUtils.parseUnits('100000000000',
10261
- // 100 billion
10262
- poolInfo.underlyingMint.decimals),
10263
- // amount
10264
- poolInfo.underlyingMint.decimals, undefined,
10265
- // multiSigners
10266
- TOKEN_2022_PROGRAM_ID));
10267
- setTransaction(tx);
10268
- }
10269
- getTx();
10270
- }, [connection, dispatch, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, publicKey, sendTransaction, sentinel, signTransaction, tokenAccount.address, wallet]);
10271
- return jsx(SolanaTxSendModal, {
10272
- tx: transaction,
10273
- chainId: poolInfo.chainId,
10274
- handleSuccess: handleSuccess
10275
- });
10276
- }
10277
-
10278
- function SolanaBorrow(_ref) {
10279
- let {
10280
- poolInfo,
10281
- handleClose,
10282
- handleSuccess
10283
- } = _ref;
10284
- const dispatch = useDispatch();
10285
- const {
10286
- creditConfigAccount,
10287
- loading: isLoadingBorrowerAccounts
10288
- } = useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
10289
- const {
10290
- account: tokenAccount,
10291
- loading: isLoadingTokenAccounts
10292
- } = usePoolUnderlyingTokenAccount(poolInfo);
10293
- const {
10294
- step,
10295
- errorMessage
10296
- } = useAppSelector(selectWidgetState);
10297
- useEffect(() => {
10298
- if (!step) {
10299
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
10300
- }
10301
- }, [dispatch, step]);
10302
- const title = 'Redemption';
10303
- if (isLoadingBorrowerAccounts || isLoadingTokenAccounts) {
10304
- return jsx(WidgetWrapper, {
10305
- isOpen: true,
10306
- isLoading: true,
10307
- loadingTitle: title,
10308
- handleClose: handleClose,
10309
- handleSuccess: handleSuccess
10310
- });
10311
- }
10312
- return jsxs(WidgetWrapper, {
10313
- isOpen: true,
10314
- loadingTitle: title,
10315
- handleClose: handleClose,
10316
- handleSuccess: handleSuccess,
10317
- children: [step === WIDGET_STEP.ChooseAmount && creditConfigAccount && tokenAccount && jsx(ChooseAmount, {
10318
- poolInfo: poolInfo,
10319
- creditConfigAccount: creditConfigAccount,
10320
- tokenAccount: tokenAccount
10321
- }), step === WIDGET_STEP.ApproveAllowance && tokenAccount && jsx(ApproveAllowance, {
10322
- poolInfo: poolInfo,
10323
- tokenAccount: tokenAccount
10324
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
10325
- title: title,
10326
- errorReason: "Sorry there was an error",
10327
- errorMessage: errorMessage,
10328
- handleOk: handleClose
10329
- })]
10330
- });
10331
- }
10332
-
10333
- function Widget(props) {
10334
- const {
10335
- children,
10336
- provider
10337
- } = props;
10338
- const [chainId, setChainId] = useState(undefined);
10339
- useEffect(() => {
10340
- const getChainId = async () => {
10341
- if (provider instanceof JsonRpcProvider) {
10342
- const network = await provider.getNetwork();
10343
- setChainId(network === null || network === void 0 ? void 0 : network.chainId);
10344
- }
10345
- };
10346
- getChainId();
10347
- }, [provider]);
10348
- return jsx(ThemeProvider, {
10349
- theme: themeHuma,
10350
- children: jsx(Provider, {
10351
- store: store,
10352
- children: jsx(Provider$1, {
10353
- ...props,
10354
- defaultChainId: chainId,
10355
- children: jsx(Provider$2, {
10356
- children: jsx(ChainSupportProvider, {
10357
- children: children
10358
- })
10359
- })
10360
- })
9267
+ };
9268
+ getChainId();
9269
+ }, [provider]);
9270
+ return jsx(ThemeProvider, {
9271
+ theme: themeHuma,
9272
+ children: jsx(Provider, {
9273
+ store: store,
9274
+ children: jsx(Provider$1, {
9275
+ ...props,
9276
+ defaultChainId: chainId,
9277
+ children: jsx(Provider$2, {
9278
+ children: jsx(ChainSupportProvider, {
9279
+ children: jsx(NotifiContextWrapper, {
9280
+ chainId: chainId,
9281
+ children: children
9282
+ })
9283
+ })
9284
+ })
9285
+ })
10361
9286
  })
10362
9287
  });
10363
9288
  }
@@ -10750,107 +9675,5 @@ function ReceivableBackedCreditLinePaymentWidgetV2(props) {
10750
9675
  });
10751
9676
  }
10752
9677
 
10753
- /**
10754
- * Object representing the props passed to Solana widgets
10755
- * @typedef {Object} SolanaWidgetProps
10756
- */
10757
-
10758
- function SolanaWidget(props) {
10759
- const {
10760
- children
10761
- } = props;
10762
- return jsx(ThemeProvider, {
10763
- theme: themeHuma,
10764
- children: jsx(Provider, {
10765
- store: store,
10766
- children: children
10767
- })
10768
- });
10769
- }
10770
-
10771
- /**
10772
- * Lend pool supply widget props for Solana pools
10773
- * @typedef {Object} SolanaLendSupplyWidgetProps
10774
- * @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
10775
- * @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
10776
- */
10777
-
10778
- /**
10779
- * Lend pool supply widget for Solana pools
10780
- *
10781
- * @param {SolanaLendSupplyWidgetProps} props - Widget props
10782
- */
10783
- function SolanaLendSupplyWidget(props) {
10784
- return jsx(SolanaWidget, {
10785
- ...props,
10786
- children: jsx(SolanaLendSupply, {
10787
- ...props
10788
- })
10789
- });
10790
- }
10791
-
10792
- /**
10793
- * Lend pool supply widget props for Solana pools
10794
- * @typedef {Object} SolanaLendAddRedemptionWidgetProps
10795
- * @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
10796
- * @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
10797
- */
10798
-
10799
- /**
10800
- * Lend pool supply widget for Solana pools
10801
- *
10802
- * @param {SolanaLendAddRedemptionWidgetProps} props - Widget props
10803
- */
10804
- function SolanaLendAddRedemptionWidget(props) {
10805
- return jsx(SolanaWidget, {
10806
- ...props,
10807
- children: jsx(SolanaLendAddRedemption, {
10808
- ...props
10809
- })
10810
- });
10811
- }
10812
-
10813
- /**
10814
- * Lend pool supply widget props for Solana pools
10815
- * @typedef {Object} SolanaLendCancelRedemptionWidgetProps
10816
- * @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
10817
- * @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
10818
- */
10819
-
10820
- /**
10821
- * Lend pool supply widget for Solana pools
10822
- *
10823
- * @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props
10824
- */
10825
- function SolanaLendCancelRedemptionWidget(props) {
10826
- return jsx(SolanaWidget, {
10827
- ...props,
10828
- children: jsx(SolanaLendCancelRedemption, {
10829
- ...props
10830
- })
10831
- });
10832
- }
10833
-
10834
- /**
10835
- * Lend pool supply widget props for Solana pools
10836
- * @typedef {Object} SolanaBorrowWidgetProps
10837
- * @property {SolanaLendSupplyProps} SolanaLendSupplyProps - Specific widget props
10838
- * @property {SolanaWidgetProps} SolanaWidgetProps - Widget general props.
10839
- */
10840
-
10841
- /**
10842
- * Lend pool supply widget for Solana pools
10843
- *
10844
- * @param {SolanaBorrowWidgetProps} props - Widget props
10845
- */
10846
- function SolanaBorrowWidget(props) {
10847
- return jsx(SolanaWidget, {
10848
- ...props,
10849
- children: jsx(SolanaBorrow, {
10850
- ...props
10851
- })
10852
- });
10853
- }
10854
-
10855
- export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SolanaBorrowWidget, SolanaLendAddRedemptionWidget, SolanaLendCancelRedemptionWidget, SolanaLendSupplyWidget, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
9678
+ export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, NotifiContextWrapper, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
10856
9679
  //# sourceMappingURL=index.js.map