@kimafinance/kima-transaction-widget 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/assets/icons/Cross.tsx","../src/assets/icons/Minimize.tsx","../src/assets/icons/FooterLogo.tsx","../src/assets/icons/Check.tsx","../src/assets/icons/Warning.tsx","../src/assets/icons/ArrowRight.tsx","../src/assets/icons/Arrow.tsx","../src/assets/icons/Ethereum.tsx","../src/assets/icons/Solana.tsx","../src/assets/icons/Polygon.tsx","../src/assets/icons/Avalanche.tsx","../src/assets/icons/USDT.tsx","../src/assets/icons/Fuse.tsx","../src/assets/icons/Celo.tsx","../src/assets/icons/GoodDollar.tsx","../src/assets/icons/Copy.tsx","../src/utils/config.tsx","../src/utils/constants.tsx","../src/interface.tsx","../src/store/optionSlice.ts","../src/store/index.ts","../src/store/selectors.ts","../src/contexts/EthereumProviderContext.tsx","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/assets/loading/180-ring.tsx","../src/components/reusable/Progressbar.tsx","../src/components/reusable/ExternalLink.tsx","../src/components/reusable/NetworkLabel.tsx","../src/components/reusable/PrimaryButton.tsx","../src/components/reusable/SecondaryButton.tsx","../src/helpers/fetch-wrapper.tsx","../src/hooks/useNetworkOptions.tsx","../src/components/reusable/NetworkSelect.tsx","../src/components/reusable/WalletSelect.tsx","../node_modules/@ethersproject/logger/lib.esm/_version.js","../node_modules/@ethersproject/logger/lib.esm/index.js","../node_modules/@ethersproject/bytes/lib.esm/_version.js","../node_modules/@ethersproject/bytes/lib.esm/index.js","../src/hooks/useIsWalletReady.tsx","../src/utils/functions.tsx","../src/utils/testId.tsx","../src/components/reusable/WalletButton.tsx","../src/components/reusable/CoinDropdown.tsx","../src/components/reusable/NetworkDropdown.tsx","../src/helpers/functions.tsx","../src/components/reusable/ConfirmDetails.tsx","../src/components/reusable/AddressInput.tsx","../src/components/reusable/CopyButton.tsx","../src/components/reusable/StepBox.tsx","../src/components/modals/HelpPopup.tsx","../src/components/modals/HashPopup.tsx","../src/components/modals/WalletConnectModal.tsx","../src/components/TransactionWidget.tsx","../src/components/reusable/SingleForm.tsx","../src/components/reusable/CoinSelect.tsx","../src/utils/solana/createAssociatedTokenAccountInstruction.ts","../src/utils/solana/getAccountInfo.ts","../src/utils/solana/getAssociatedTokenAddress.ts","../src/utils/solana/getOrCreateAssociatedTokenAccount.ts","../node_modules/bn.js/lib/bn.js","../src/utils/solana/createTransferInstruction.ts","../src/hooks/useAllowance.tsx","../src/hooks/useServiceFee.tsx","../src/components/reusable/AddressInputWizard.tsx","../src/hooks/useCurrencyOptions.tsx","../src/components/TransferWidget.tsx","../src/components/KimaTransactionWidget.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react'\r\n\r\nconst Cross = ({ width = 32, height = 32, fill = 'white', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 11 11'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M9.656 1.688L5.944 5.4L9.656 9.112L8.712 10.056L5 6.344L1.288 10.056L0.344 9.112L4.056 5.4L0.344 1.688L1.288 0.743999L5 4.456L8.712 0.743999L9.656 1.688Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Cross\r\n","import React from 'react'\r\n\r\nconst Minimize = ({ width = 16, height = 1, fill = 'white', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 11 1'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='11' height='1' fill={fill} />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Minimize\r\n","import React from 'react'\r\n\r\nconst FooterLogo = ({ width = 32, height = 32, fill = '#C5C5C5', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 103 20'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M91.483 10.2491C91.483 9.61748 91.8537 9.0958 92.54 9.0958C93.1091 9.11485 93.5697 9.63311 93.5697 10.2491V14.2164C93.5697 14.24 93.5744 14.2633 93.5834 14.2851C93.5924 14.3069 93.6057 14.3266 93.6224 14.3433C93.6391 14.36 93.6589 14.3731 93.6807 14.3821C93.7025 14.3911 93.7259 14.3957 93.7495 14.3956H95.5465C95.5941 14.3956 95.6397 14.3767 95.6733 14.3431C95.7069 14.3095 95.7258 14.2639 95.7258 14.2164V9.80993C95.7258 8.20338 94.7782 7.15953 93.2678 7.15953C92.224 7.15953 91.5377 7.61282 91.0986 8.10519C91.0971 8.10731 91.0951 8.10904 91.0928 8.11023C91.0905 8.11142 91.088 8.11205 91.0854 8.11205C91.0828 8.11205 91.0802 8.11142 91.0779 8.11023C91.0757 8.10904 91.0737 8.10731 91.0722 8.10519C90.6731 7.57326 90.0415 7.16099 89.1349 7.16099C88.3109 7.16099 87.6109 7.50292 87.2661 8.00848L87.2539 8.00506V7.50389C87.2539 7.48031 87.2493 7.45695 87.2404 7.43514C87.2314 7.41334 87.2182 7.39352 87.2015 7.37682C87.1849 7.36012 87.1651 7.34687 87.1433 7.33783C87.1215 7.32879 87.0982 7.32414 87.0746 7.32414H85.2912C85.244 7.32491 85.199 7.34417 85.1658 7.37778C85.1327 7.4114 85.114 7.45668 85.1139 7.50389V14.2164C85.1139 14.2639 85.1328 14.3095 85.1664 14.3431C85.2 14.3767 85.2456 14.3956 85.2932 14.3956H87.0766C87.1241 14.3956 87.1697 14.3767 87.2033 14.3431C87.2369 14.3095 87.2558 14.2639 87.2558 14.2164V10.2491C87.2558 9.61748 87.6266 9.0958 88.2997 9.0958C88.8756 9.11485 89.343 9.63311 89.343 10.2491V14.2164C89.343 14.2639 89.3619 14.3095 89.3955 14.3431C89.4292 14.3767 89.4748 14.3956 89.5223 14.3956H91.3057C91.3532 14.3956 91.3988 14.3767 91.4324 14.3431C91.4661 14.3095 91.4849 14.2639 91.4849 14.2164L91.483 10.2491ZM100.927 14.2164C100.927 14.2639 100.946 14.3095 100.979 14.3431C101.013 14.3767 101.059 14.3956 101.106 14.3956H102.821C102.868 14.3956 102.914 14.3767 102.947 14.3431C102.981 14.3095 103 14.2639 103 14.2164V10.0156C103 8.20338 101.819 7.15953 99.801 7.15953C99.0649 7.15367 98.0533 7.36712 97.4691 7.64555C97.4394 7.66035 97.4145 7.68324 97.3972 7.71158C97.3799 7.73993 97.371 7.77257 97.3714 7.80577V9.2526C97.3714 9.28314 97.3792 9.31319 97.3941 9.33986C97.409 9.36654 97.4304 9.38895 97.4565 9.40497C97.4825 9.42099 97.5122 9.43008 97.5427 9.43136C97.5732 9.43265 97.6035 9.4261 97.6308 9.41232C98.1364 9.16467 98.7142 8.98589 99.3214 8.98589C100.209 8.96831 100.928 9.46654 100.928 10.0981V10.147C100.928 10.17 100.923 10.1927 100.911 10.2128C100.9 10.2328 100.883 10.2494 100.863 10.261C100.844 10.2725 100.821 10.2784 100.798 10.2782C100.775 10.278 100.752 10.2717 100.733 10.2598C100.402 10.0644 99.8577 9.89053 99.2779 9.89053C97.7812 9.89053 96.5454 10.7966 96.5454 12.1697C96.5454 13.6527 97.7812 14.5593 99.209 14.5593C100.033 14.5593 100.678 14.2296 100.925 13.955L100.927 14.2164ZM100.954 12.1712C100.954 12.7344 100.336 13.0362 99.7463 13.0362C99.1284 13.0362 98.5252 12.7344 98.5252 12.1712C98.5252 11.6221 99.1294 11.3203 99.7463 11.3203C100.336 11.3203 100.954 11.6221 100.954 12.1712Z'\r\n fill={fill}\r\n />\r\n <path\r\n d='M81.6947 14.3956H83.478C83.5256 14.3956 83.5712 14.3767 83.6048 14.3431C83.6384 14.3095 83.6573 14.2639 83.6573 14.2164V7.5039C83.6573 7.45635 83.6384 7.41075 83.6048 7.37713C83.5712 7.34352 83.5256 7.32463 83.478 7.32463H81.6947C81.6471 7.32463 81.6015 7.34352 81.5679 7.37713C81.5343 7.41075 81.5154 7.45635 81.5154 7.5039V14.2164C81.5154 14.2639 81.5343 14.3095 81.5679 14.3431C81.6015 14.3767 81.6471 14.3956 81.6947 14.3956Z'\r\n fill={fill}\r\n />\r\n <path\r\n d='M82.6003 4.00014H82.5705C82.3972 3.99758 82.2252 4.02978 82.0646 4.09482C81.904 4.15987 81.7581 4.25645 81.6355 4.37885C81.5129 4.50125 81.416 4.647 81.3507 4.80747C81.2853 4.96794 81.2528 5.13988 81.255 5.31313C81.2544 5.4851 81.288 5.65548 81.354 5.81429C81.4199 5.97311 81.5169 6.11718 81.6392 6.23807C81.7615 6.35896 81.9067 6.45425 82.0662 6.51837C82.2258 6.58248 82.3966 6.61413 82.5685 6.61147H82.5983C82.7698 6.61147 82.9396 6.5777 83.098 6.51208C83.2564 6.44647 83.4003 6.35029 83.5216 6.22905C83.6428 6.10781 83.739 5.96387 83.8046 5.80546C83.8702 5.64705 83.904 5.47727 83.904 5.30581C83.904 5.13434 83.8702 4.96456 83.8046 4.80615C83.739 4.64774 83.6428 4.5038 83.5216 4.38256C83.4003 4.26132 83.2564 4.16515 83.098 4.09953C82.9396 4.03391 82.7698 4.00014 82.5983 4.00014'\r\n fill={fill}\r\n />\r\n <path\r\n d='M79.7198 12.3895C79.4939 12.1693 79.196 12.0384 78.8811 12.0207C77.7161 11.9836 77.5481 11.016 77.5481 10.7717C77.5481 10.5055 77.7332 9.57205 78.8792 9.53542C79.2181 9.51481 79.5358 9.3633 79.7651 9.11289C79.9944 8.86248 80.1175 8.53275 80.1083 8.19331C80.0991 7.85388 79.9584 7.53129 79.7158 7.29366C79.4733 7.05602 79.1479 6.92193 78.8083 6.91969H78.7995C78.4598 6.92039 78.1336 7.05357 77.8905 7.29092C77.6131 7.56153 77.4963 7.92593 77.4963 8.28397C77.4963 8.59903 77.2877 9.46264 76.3196 9.46264C75.9552 9.46264 75.5727 9.56863 75.2938 9.85341C75.2816 9.86562 75.2723 9.87978 75.2611 9.89297V9.8876C75.1937 9.95745 75.1805 9.90225 75.1815 9.86464V4.59704C75.1815 4.54958 75.1627 4.50406 75.1291 4.47046C75.0956 4.43685 75.0502 4.41791 75.0027 4.41778H73.1793C73.1317 4.41778 73.0861 4.43666 73.0525 4.47028C73.0189 4.5039 73 4.5495 73 4.59704V14.2618C73 14.3093 73.0189 14.3549 73.0525 14.3886C73.0861 14.4222 73.1317 14.4411 73.1793 14.4411H75.0027C75.0502 14.4409 75.0957 14.422 75.1293 14.3884C75.1629 14.3548 75.1818 14.3093 75.182 14.2618V11.691C75.182 11.6534 75.1942 11.5982 75.2616 11.6681V11.6637C75.2723 11.6764 75.2816 11.6895 75.2933 11.7018C75.5723 11.988 75.9493 12.0925 76.3191 12.0925C77.2877 12.0925 77.4963 13.0695 77.4963 13.2712C77.4963 13.5501 77.6131 13.9936 77.8905 14.2642C78.1346 14.5025 78.4623 14.6357 78.8034 14.6355C79.1505 14.6361 79.4836 14.499 79.7296 14.2542C79.9757 14.0093 80.1144 13.6769 80.1155 13.3298V13.3215C80.115 13.1473 80.0798 12.975 80.0118 12.8146C79.9439 12.6542 79.8446 12.5091 79.7198 12.3876'\r\n fill={fill}\r\n />\r\n <path\r\n d='M6.516 8.084C6.516 8.78 6.276 9.36 5.796 9.824C5.324 10.28 4.6 10.508 3.624 10.508H2.016V14H0.924V5.636H3.624C4.568 5.636 5.284 5.864 5.772 6.32C6.268 6.776 6.516 7.364 6.516 8.084ZM3.624 9.608C4.232 9.608 4.68 9.476 4.968 9.212C5.256 8.948 5.4 8.572 5.4 8.084C5.4 7.052 4.808 6.536 3.624 6.536H2.016V9.608H3.624ZM10.5412 14.108C9.92522 14.108 9.36522 13.968 8.86122 13.688C8.36522 13.408 7.97322 13.012 7.68522 12.5C7.40522 11.98 7.26522 11.38 7.26522 10.7C7.26522 10.028 7.40922 9.436 7.69722 8.924C7.99322 8.404 8.39322 8.008 8.89722 7.736C9.40122 7.456 9.96522 7.316 10.5892 7.316C11.2132 7.316 11.7772 7.456 12.2812 7.736C12.7852 8.008 13.1812 8.4 13.4692 8.912C13.7652 9.424 13.9132 10.02 13.9132 10.7C13.9132 11.38 13.7612 11.98 13.4572 12.5C13.1612 13.012 12.7572 13.408 12.2452 13.688C11.7332 13.968 11.1652 14.108 10.5412 14.108ZM10.5412 13.148C10.9332 13.148 11.3012 13.056 11.6452 12.872C11.9892 12.688 12.2652 12.412 12.4732 12.044C12.6892 11.676 12.7972 11.228 12.7972 10.7C12.7972 10.172 12.6932 9.724 12.4852 9.356C12.2772 8.988 12.0052 8.716 11.6692 8.54C11.3332 8.356 10.9692 8.264 10.5772 8.264C10.1772 8.264 9.80922 8.356 9.47322 8.54C9.14522 8.716 8.88122 8.988 8.68122 9.356C8.48122 9.724 8.38122 10.172 8.38122 10.7C8.38122 11.236 8.47722 11.688 8.66922 12.056C8.86922 12.424 9.13322 12.7 9.46122 12.884C9.78922 13.06 10.1492 13.148 10.5412 13.148ZM23.909 7.424L21.857 14H20.729L19.145 8.78L17.561 14H16.433L14.369 7.424H15.485L16.997 12.944L18.629 7.424H19.745L21.341 12.956L22.829 7.424H23.909ZM30.7927 10.46C30.7927 10.668 30.7807 10.888 30.7567 11.12H25.5007C25.5407 11.768 25.7607 12.276 26.1607 12.644C26.5687 13.004 27.0607 13.184 27.6367 13.184C28.1087 13.184 28.5007 13.076 28.8127 12.86C29.1327 12.636 29.3567 12.34 29.4847 11.972H30.6608C30.4848 12.604 30.1327 13.12 29.6047 13.52C29.0767 13.912 28.4207 14.108 27.6367 14.108C27.0127 14.108 26.4527 13.968 25.9567 13.688C25.4687 13.408 25.0847 13.012 24.8047 12.5C24.5247 11.98 24.3847 11.38 24.3847 10.7C24.3847 10.02 24.5207 9.424 24.7927 8.912C25.0647 8.4 25.4447 8.008 25.9327 7.736C26.4287 7.456 26.9967 7.316 27.6367 7.316C28.2607 7.316 28.8127 7.452 29.2927 7.724C29.7727 7.996 30.1407 8.372 30.3967 8.852C30.6607 9.324 30.7927 9.86 30.7927 10.46ZM29.6647 10.232C29.6647 9.816 29.5727 9.46 29.3887 9.164C29.2047 8.86 28.9527 8.632 28.6327 8.48C28.3207 8.32 27.9727 8.24 27.5887 8.24C27.0367 8.24 26.5647 8.416 26.1727 8.768C25.7887 9.12 25.5687 9.608 25.5127 10.232H29.6647ZM33.1262 8.492C33.3182 8.116 33.5902 7.824 33.9422 7.616C34.3022 7.408 34.7382 7.304 35.2502 7.304V8.432H34.9622C33.7382 8.432 33.1262 9.096 33.1262 10.424V14H32.0342V7.424H33.1262V8.492ZM42.3107 10.46C42.3107 10.668 42.2987 10.888 42.2747 11.12H37.0187C37.0587 11.768 37.2787 12.276 37.6787 12.644C38.0867 13.004 38.5787 13.184 39.1547 13.184C39.6267 13.184 40.0187 13.076 40.3307 12.86C40.6507 12.636 40.8747 12.34 41.0027 11.972H42.1787C42.0027 12.604 41.6507 13.12 41.1227 13.52C40.5947 13.912 39.9387 14.108 39.1547 14.108C38.5307 14.108 37.9707 13.968 37.4747 13.688C36.9867 13.408 36.6027 13.012 36.3227 12.5C36.0427 11.98 35.9027 11.38 35.9027 10.7C35.9027 10.02 36.0387 9.424 36.3107 8.912C36.5827 8.4 36.9627 8.008 37.4507 7.736C37.9467 7.456 38.5147 7.316 39.1547 7.316C39.7787 7.316 40.3307 7.452 40.8107 7.724C41.2907 7.996 41.6587 8.372 41.9147 8.852C42.1787 9.324 42.3107 9.86 42.3107 10.46ZM41.1827 10.232C41.1827 9.816 41.0907 9.46 40.9067 9.164C40.7227 8.86 40.4707 8.632 40.1507 8.48C39.8387 8.32 39.4907 8.24 39.1067 8.24C38.5547 8.24 38.0827 8.416 37.6907 8.768C37.3067 9.12 37.0867 9.608 37.0307 10.232H41.1827ZM43.1441 10.688C43.1441 10.016 43.2801 9.428 43.5521 8.924C43.8241 8.412 44.1961 8.016 44.6681 7.736C45.1481 7.456 45.6841 7.316 46.2761 7.316C46.7881 7.316 47.2641 7.436 47.7041 7.676C48.1441 7.908 48.4801 8.216 48.7121 8.6V5.12H49.8161V14H48.7121V12.764C48.4961 13.156 48.1761 13.48 47.7521 13.736C47.3281 13.984 46.8321 14.108 46.2641 14.108C45.6801 14.108 45.1481 13.964 44.6681 13.676C44.1961 13.388 43.8241 12.984 43.5521 12.464C43.2801 11.944 43.1441 11.352 43.1441 10.688ZM48.7121 10.7C48.7121 10.204 48.6121 9.772 48.4121 9.404C48.2121 9.036 47.9401 8.756 47.5961 8.564C47.2601 8.364 46.8881 8.264 46.4801 8.264C46.0721 8.264 45.7001 8.36 45.3641 8.552C45.0281 8.744 44.7601 9.024 44.5601 9.392C44.3601 9.76 44.2601 10.192 44.2601 10.688C44.2601 11.192 44.3601 11.632 44.5601 12.008C44.7601 12.376 45.0281 12.66 45.3641 12.86C45.7001 13.052 46.0721 13.148 46.4801 13.148C46.8881 13.148 47.2601 13.052 47.5961 12.86C47.9401 12.66 48.2121 12.376 48.4121 12.008C48.6121 11.632 48.7121 11.196 48.7121 10.7ZM55.5527 8.648C55.7767 8.256 56.1047 7.936 56.5367 7.688C56.9687 7.44 57.4607 7.316 58.0127 7.316C58.6047 7.316 59.1367 7.456 59.6087 7.736C60.0807 8.016 60.4527 8.412 60.7247 8.924C60.9967 9.428 61.1327 10.016 61.1327 10.688C61.1327 11.352 60.9967 11.944 60.7247 12.464C60.4527 12.984 60.0767 13.388 59.5967 13.676C59.1247 13.964 58.5967 14.108 58.0127 14.108C57.4447 14.108 56.9447 13.984 56.5127 13.736C56.0887 13.488 55.7687 13.172 55.5527 12.788V14H54.4607V5.12H55.5527V8.648ZM60.0167 10.688C60.0167 10.192 59.9167 9.76 59.7167 9.392C59.5167 9.024 59.2447 8.744 58.9007 8.552C58.5647 8.36 58.1927 8.264 57.7847 8.264C57.3847 8.264 57.0127 8.364 56.6687 8.564C56.3327 8.756 56.0607 9.04 55.8527 9.416C55.6527 9.784 55.5527 10.212 55.5527 10.7C55.5527 11.196 55.6527 11.632 55.8527 12.008C56.0607 12.376 56.3327 12.66 56.6687 12.86C57.0127 13.052 57.3847 13.148 57.7847 13.148C58.1927 13.148 58.5647 13.052 58.9007 12.86C59.2447 12.66 59.5167 12.376 59.7167 12.008C59.9167 11.632 60.0167 11.192 60.0167 10.688ZM68.0341 7.424L64.0741 17.096H62.9461L64.2421 13.928L61.5901 7.424H62.8021L64.8661 12.752L66.9061 7.424H68.0341Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default FooterLogo\r\n","import React from 'react'\r\n\r\nconst Check = ({ width = 15, height = 11, fill = '#33EA66', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 15 11'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M13.7319 0.295798C13.639 0.20207 13.5284 0.127675 13.4065 0.0769067C13.2846 0.026138 13.1539 0 13.0219 0C12.8899 0 12.7592 0.026138 12.6373 0.0769067C12.5155 0.127675 12.4049 0.20207 12.3119 0.295798L4.86192 7.7558L1.73192 4.6158C1.6354 4.52256 1.52146 4.44925 1.3966 4.40004C1.27175 4.35084 1.13843 4.32671 1.00424 4.32903C0.870064 4.33135 0.737655 4.36008 0.614576 4.41357C0.491498 4.46706 0.380161 4.54428 0.286922 4.6408C0.193684 4.73732 0.12037 4.85126 0.0711659 4.97612C0.0219619 5.10097 -0.00216855 5.2343 0.000152918 5.36848C0.00247438 5.50266 0.0312022 5.63507 0.0846957 5.75814C0.138189 5.88122 0.215401 5.99256 0.311922 6.0858L4.15192 9.9258C4.24489 10.0195 4.35549 10.0939 4.47735 10.1447C4.59921 10.1955 4.72991 10.2216 4.86192 10.2216C4.99393 10.2216 5.12464 10.1955 5.2465 10.1447C5.36836 10.0939 5.47896 10.0195 5.57192 9.9258L13.7319 1.7658C13.8334 1.67216 13.9144 1.5585 13.9698 1.432C14.0252 1.30551 14.0539 1.1689 14.0539 1.0308C14.0539 0.892697 14.0252 0.756091 13.9698 0.629592C13.9144 0.503092 13.8334 0.389441 13.7319 0.295798Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Check\r\n","import React from 'react'\r\n\r\nconst Warning = ({ width = 14, height = 13, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 14 13'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M13.8418 11.0561L8.16007 0.683372C8.04697 0.476647 7.87973 0.304041 7.67598 0.183764C7.47223 0.0634876 7.23954 0 7.00245 0C6.76537 0 6.53267 0.0634876 6.32893 0.183764C6.12518 0.304041 5.95794 0.476647 5.84484 0.683372L0.167185 11.0561C0.05491 11.2556 -0.00270098 11.4807 9.72867e-05 11.7091C0.00289555 11.9376 0.0660053 12.1613 0.183133 12.358C0.300261 12.5546 0.467315 12.7174 0.667636 12.8301C0.867956 12.9427 1.09454 13.0013 1.3248 13H12.6842C12.9121 12.9997 13.1361 12.9408 13.3342 12.829C13.5323 12.7172 13.6977 12.5563 13.8144 12.3621C13.931 12.1678 13.9949 11.9469 13.9997 11.7208C14.0045 11.4947 13.9501 11.2713 13.8418 11.0723V11.0561ZM6.47887 3.26032C6.47887 3.10964 6.5392 2.96513 6.6466 2.85858C6.754 2.75203 6.89966 2.69218 7.05154 2.69218C7.20342 2.69218 7.34908 2.75203 7.45648 2.85858C7.56388 2.96513 7.62421 3.10964 7.62421 3.26032V8.13015C7.62421 8.28083 7.56388 8.42534 7.45648 8.53189C7.34908 8.63844 7.20342 8.6983 7.05154 8.6983C6.89966 8.6983 6.754 8.63844 6.6466 8.53189C6.5392 8.42534 6.47887 8.28083 6.47887 8.13015V3.26032ZM7.05154 11.3158C6.90592 11.3158 6.76356 11.273 6.64248 11.1927C6.52139 11.1125 6.42702 10.9984 6.37129 10.8649C6.31556 10.7314 6.30098 10.5845 6.32939 10.4428C6.3578 10.3011 6.42793 10.171 6.5309 10.0688C6.63387 9.96667 6.76507 9.8971 6.9079 9.86892C7.05072 9.84073 7.19877 9.8552 7.33331 9.91048C7.46785 9.96577 7.58284 10.0594 7.66375 10.1795C7.74465 10.2997 7.78783 10.4409 7.78783 10.5854C7.78783 10.6813 7.76879 10.7763 7.73179 10.8649C7.69479 10.9535 7.64055 11.034 7.57218 11.1019C7.50381 11.1697 7.42264 11.2235 7.33331 11.2602C7.24398 11.2969 7.14823 11.3158 7.05154 11.3158Z'\r\n fill='#FFB03A'\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Warning\r\n","import React from 'react'\r\n\r\nconst ArrowRight = ({ width = 12, height = 9, fill = 'white', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 12 9'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M11.3536 4.85355C11.5488 4.65829 11.5488 4.34171 11.3536 4.14645L8.17157 0.964466C7.97631 0.769204 7.65973 0.769204 7.46447 0.964466C7.2692 1.15973 7.2692 1.47631 7.46447 1.67157L10.2929 4.5L7.46447 7.32843C7.2692 7.52369 7.2692 7.84027 7.46447 8.03553C7.65973 8.2308 7.97631 8.2308 8.17157 8.03553L11.3536 4.85355ZM0.5 5H11V4H0.5V5Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default ArrowRight\r\n","import React from 'react'\r\n\r\nconst Arrow = ({ width = 27, height = 51, fill = 'black', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 27 51'\r\n xmlns='http://www.w3.org/2000/svg'\r\n fill='transparent'\r\n {...rest}\r\n >\r\n <path\r\n d='M25 49L2 25.5L25 2'\r\n stroke={fill}\r\n strokeWidth='4'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Arrow\r\n","import React from 'react'\r\n\r\nconst Ethereum = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 37 37'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect x='0' y='0' width='37' height='37' fill='url(#pattern0)' />\r\n <defs>\r\n <pattern\r\n id='pattern0'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_184_1295' transform='scale(0.00520833)' />\r\n </pattern>\r\n <image\r\n id='image0_184_1295'\r\n width='192'\r\n height='192'\r\n href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAMAAABlApw1AAACBFBMVEUAAADv7//09PTy8vXx9Pbz9Pjy9ffy9fjy9Pfx9Pfy9Pby9Pfx8/Xz8/Py8vTx9Pjv7/fy9Pfy9Pfy9ffz9ffy8/b09vjy9fXz9Pb09/ry9Pjz9fnv7/Tv9PTk5uiCg4Ssra9jZGWQkpTIycw7PDza296QkZIvMDBgYWK6vL21t7lHSUnm6OqEhojNz9Ly9PSztLednqB4envBw8Xv8vWen6Hv8/NsbW7x8/bP0NOpqqyJiovz8/dUVVXv7++lpqjy8/jz9Pbx9PZ9fn9bXF01NjYdHh4sLCw5Ojo0NTUwMTETExNucHBISElgYWE+Pz9zdHUaGhomJyfv7/oWFxckJSUtLi7x8vV4eXpRUlMhISHx8/Z1d3fy9PdnaGlERkaEhYZ6fHxrbW1AQUGDhYVWV1cqKipERUVOT1BcXV6LjI1iY2QyMzNMTU7Fx8lLTU2Sk5ba3N+HiIpKS0zW2Nt7fH4vLy+6vL6rrK6ChIXk5umfoKJYWVpXWVmQkpPd3+GTlJaXmJnOz9Lm5+qFhoepq6y6u77r7fB1dneRkpQ7PT2EhoeQkZPIysxISUnW2NrW19uztLa3uLqXmJp4enpTVVVvcHKsrrBmZ2g8PT2eoKJsbm+en6A9PT7v8/dsbm7BwsXd3+KEhYfx8/fy9fbP0dPx9Pjx8/bv8veJiozy9fnv8vQEFD2BAAAArHRSTlMAEDBQcI+fr7/f7/+AQGDPIJ9g33+vb1CPX+9/MDD//////////////////////2D/////UP9A/5D///9A/xD/r8/P/////////////////////zD///+g////sP/f/////////////////////////////////////////////////////////////////////////////////////0D/////gK//cO9g/1BgIk4dsgAACKdJREFUeNrM1YV1wEAMA9BjsMJOGfYfszBA0YnyJ5De6fmcPR9iyqW23gWfpPfWypBi8O7afEi5Cb4gLafxouGnPOOH5hyXa4Ufc8cvzWu8SvrUBH9Tt4U/nIZ/aZt3PGMW/JusI206MKIbIf4uMKTr4s60ZIG1EyssKwwYVGCMh19hFxxI09GHU3EwjUeu5wYGeDu6FRig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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Ethereum\r\n","import React from 'react'\r\n\r\nconst Solana = ({ width = 14, height = 14, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 14 14'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M4.19214 0L4.10059 0.311195V9.34137L4.19214 9.43276L8.38385 6.95506L4.19214 0Z'\r\n fill='#343434'\r\n />\r\n <path d='M4.1917 0L0 6.95505L4.1917 9.43279V5.04982V0Z' fill='#8C8C8C' />\r\n <path\r\n d='M4.19222 10.2264L4.14062 10.2893V13.506L4.19222 13.6568L8.38641 7.74994L4.19222 10.2264Z'\r\n fill='#3C3C3B'\r\n />\r\n <path\r\n d='M4.1917 13.6567V10.2264L0 7.74991L4.1917 13.6567Z'\r\n fill='#8C8C8C'\r\n />\r\n <path\r\n d='M4.19141 9.43272L8.38305 6.95504L4.19141 5.0498V9.43272Z'\r\n fill='#141414'\r\n />\r\n <path d='M0 6.95503L4.19164 9.4327V5.04979L0 6.95503Z' fill='#393939' />\r\n <rect width='14' height='14' fill='url(#pattern1)' />\r\n <defs>\r\n <pattern\r\n id='pattern1'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_4_722' transform='scale(0.00316456)' />\r\n </pattern>\r\n <image\r\n id='image0_4_722'\r\n width='316'\r\n height='316'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Solana\r\n","import React from 'react'\r\n\r\nconst Ethereum = ({ width = 27, height = 27, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 27 27'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <mask\r\n id='mask0_214_508'\r\n style={{ maskType: 'alpha' }}\r\n maskUnits='userSpaceOnUse'\r\n x='0'\r\n y='0'\r\n width='27'\r\n height='27'\r\n >\r\n <circle cx='13.0357' cy='13.0357' r='13.0357' fill='#D9D9D9' />\r\n </mask>\r\n <g mask='url(#mask0_214_508)'></g>\r\n <g clipPath='url(#clip0_214_508)'>\r\n <path\r\n d='M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z'\r\n fill='#8247E5'\r\n />\r\n <path\r\n d='M17.3028 10.2187C16.991 10.0373 16.5856 10.0373 16.2426 10.2187L13.8105 11.6094L12.1579 12.5164L9.72584 13.9071C9.41401 14.0885 9.00868 14.0885 8.66568 13.9071L6.73246 12.8187C6.42066 12.6373 6.2024 12.3048 6.2024 11.9419V9.79545C6.2024 9.43266 6.38948 9.1001 6.73246 8.91871L8.6345 7.86055C8.94629 7.67916 9.35165 7.67916 9.69466 7.86055L11.5967 8.91871C11.9085 9.1001 12.1267 9.43266 12.1267 9.79545V11.1861L13.7793 10.2489V8.85823C13.7793 8.49545 13.5922 8.16288 13.2493 7.98149L9.72584 5.98614C9.41401 5.80475 9.00868 5.80475 8.66568 5.98614L5.07988 7.98149C4.73688 8.16288 4.5498 8.49545 4.5498 8.85823V12.8792C4.5498 13.2419 4.73688 13.5745 5.07988 13.7559L8.66568 15.7512C8.9775 15.9327 9.38283 15.9327 9.72584 15.7512L12.1579 14.3908L13.8105 13.4536L16.2426 12.0931C16.5544 11.9117 16.9598 11.9117 17.3028 12.0931L19.2048 13.1512C19.5166 13.3327 19.7349 13.6652 19.7349 14.028V16.1745C19.7349 16.5373 19.5478 16.8699 19.2048 17.0512L17.3028 18.1396C16.991 18.321 16.5856 18.321 16.2426 18.1396L14.3406 17.0815C14.0288 16.9001 13.8105 16.5675 13.8105 16.2048V14.8141L12.1579 15.7512V17.1419C12.1579 17.5048 12.345 17.8373 12.688 18.0187L16.2738 20.0141C16.5856 20.1954 16.991 20.1954 17.3339 20.0141L20.9197 18.0187C21.2315 17.8373 21.4498 17.5048 21.4498 17.1419V13.121C21.4498 12.7582 21.2627 12.4257 20.9197 12.2443L17.3028 10.2187Z'\r\n fill='white'\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id='clip0_214_508'>\r\n <rect width='26' height='26' fill='white' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Ethereum\r\n","import React from 'react'\r\n\r\nconst Avalanche = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 37 37'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect x='0' y='0' width='37' height='37' fill='url(#pattern2)' />\r\n <defs>\r\n <pattern\r\n id='pattern2'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_214_494' transform='scale(0.00390625)' />\r\n </pattern>\r\n <image\r\n id='image0_214_494'\r\n width='256'\r\n height='256'\r\n href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAOZlWElmTU0AKgAAAAgABgESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgExAAIAAAAhAAAAZgEyAAIAAAAUAAAAiIdpAAQAAAABAAAAnAAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkAADIwMjA6MDY6MjEgMTI6MTc6MjUAAASQBAACAAAAFAAAANKgAQADAAAAAQABAACgAgAEAAAAAQAAAQCgAwAEAAAAAQAAAQAAAAAAMjAyMDowNjoyMSAxMjoxNDoyNQAyPGR9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjAtMDYtMjFUMTI6MTc6MjUtMDQ6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCAyMS4wIChNYWNpbnRvc2gpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDIwLTA2LTIxVDEyOjE0OjI1LTA0OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAyMC0wNi0yMVQxMjoxNzoyNS0wNDowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjAtMDYtMjFUMTI6MTc6MjUtMDQ6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6OGVhNTMzNjMtYzY2OS00YWVjLWE5ZmUtNzQ5YzUzMmFjZGZiPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjAtMDYtMjFUMTI6MTc6MjUtMDQ6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ZTZmNGEzOTctM2ZkNC00NDEzLWE2YTMtOWIzYzExNTMxOTFhPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOkQwMTE4NzY2OEUxMjExRUE5MEFDQkVFRjMyM0M3OUNFPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkZDQ3ZTdiMy02YjIyLTFkNDAtOTc2MC02MDFjYjljYmY4YzY8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NUYwRTAyRDU4RTExMTFFQTkwQUNCRUVGMzIzQzc5Q0U8L3N0UmVmOmluc3RhbmNlSUQ+CiAgICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPnhtcC5kaWQ6NUYwRTAyRDY4RTExMTFFQTkwQUNCRUVGMzIzQzc5Q0U8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgIDwv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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Avalanche\r\n","import React from 'react'\r\n\r\nconst USDT = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 37 37'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='37' height='37' fill='url(#pattern5)' />\r\n <defs>\r\n <pattern\r\n id='pattern5'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_214_312' transform='scale(0.00390625)' />\r\n </pattern>\r\n <image\r\n id='image0_214_312'\r\n width='256'\r\n height='256'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default USDT\r\n","import React from 'react'\r\n\r\nconst Fuse = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 200 200'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='200' height='200' fill='url(#pattern6)' />\r\n <defs>\r\n <pattern\r\n id='pattern6'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_1_3' transform='scale(0.005)' />\r\n </pattern>\r\n <image\r\n id='image0_1_3'\r\n width='200'\r\n height='200'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Fuse\r\n","import React from 'react'\r\n\r\nconst Celo = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 233 232'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='233' height='232' fill='url(#pattern7)' />\r\n <defs>\r\n <pattern\r\n id='pattern7'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_1_7' transform='scale(0.00429185 0.00431034)' />\r\n </pattern>\r\n <image\r\n id='image0_1_7'\r\n width='233'\r\n height='232'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Celo\r\n","import React from 'react'\r\n\r\nconst GoodDollar = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 64 64'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='64' height='64' fill='url(#pattern8)' />\r\n <defs>\r\n <pattern\r\n id='pattern8'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_2_2' transform='scale(0.015625)' />\r\n </pattern>\r\n <image\r\n id='image0_2_2'\r\n width='64'\r\n height='64'\r\n href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAMAUExURUxpcQKy/wCw/3u//+D//wCv/zg4ygOx/wGx/3/m/zqm/wCx/wCw/wCL+QOx/wKy/yef5gCu/3zc3AKy/QCu/6ra/wCv////9f///+v5/wSx/f/+9vz+9///967k92HT+QGx/ZXc9vn/80XC+P//8///9fr/+DO99wCu/bvs9ff7/+f///3/+vX++i+9+HbS9vv++FvJ9Ija+Mbw+UvJ+Mb0/DHB+6Pm90rG9///4lvI9F/O+a3j9f//9FzK9wCw/0nF92jR+FDL+lvO+v///0zK+wCw/ITX+HLP84bc91vM9mzS+K3o+MPr9X7Z9l/Q+gGv/T/F+FjP+fz9+HbU9zrB+UfC9aLi92jN9vb59DXB+k/H9KPq8bTo91nI9bDm9GnS+v3++ETD92DK8////0zJ+v7/94vf/IDX9ZXd9kjD+Yza95zi9T7D+UDE+j3C92bM9GzO9XvT9HLW+ark+HXU9ZD/AJ7i91rP+kTE9m7S95Hh+U3F9v//8ZLe+Nr09Krn9Zvg82PP+QCw/Sy99zbA+fD7927P8f3983vS9IDY9sHr95bg8lbO+Yrc+LTq+GDI81TN+U3G+IXY9HfW+Sy69kbD8kTG+tTy8kvE9NDu+GDP+Te/92PK81DE9v//8mzS+onW9r3v+GbR+XvR9inD+ym9+1HJ+2LL8uL/92jP83/V9X/X93zX+F3Q+oLZ9tb18VXH9bHs91jM9UrC+P//9/n/+VfI9hW7/DrC+oHV9X3V+Iza+Nrz90fF+FLL+gKx/wOx/wOx/gCx/wSx/wOy/gOy/wCw/wG3/wC1/wCy/wCv/wu//x/E/wGy/gS7/wC4/wC0/wGw/wCu/wK6/wCw/gm6/wW8/wKy/wy9/yzD/ynC/wCz/xq39jXD/gqz+gWy/RTB/xHB/wa7/yfH/w20/CfD/zO99RK+/yPI/w6//x7A/xvB/wm9/x+9/znF/hq//w60+x/D/xjA/zS/9y7G/yLB/xnH/zjC+wm3/xm9/xu39xjC/xG6/w7J/yq/+5C2f9YAAADAdFJOUwD9+wQB+wH+/AID/fwC/f4E/gT9+wP9AgME/iAmImYI/QYH7x0bOPX+TAgFCzX3nCnTmEXcUPph4QnGwm4Zyv3c2ODGDuz8mqB406dyP6jG/PH8TaD42GXMMvbZCVzIVLVF6LIT5y2YpIv3mmDt7fCprKqweagBddnzvo3LE4RPNWrU//7zQ7czgnNkW/J9e8/335Ox78v1PNV4y+255hS1q1LEl/z50aMktZrUx+11OMVF7OlgMMz70L2hxDLo2h8hnHYAAAcoSURBVFjDpVdneNPmFj52bOuzazsOOLLj2OAQNwHiQJhJgLJnS1uXPUvZULr3HnQBnXd23dve23Fv97z79oclWZZsg2MHZzgJkEEhEFYobdPS9uknJU4kxWmSp+8PP34knaNPZ74vQC9km/CPq3Ts5dcfv9h+5Ej7oeP5l48tdXqFW9A/hGdKFs0pPFcdj3BMJROt5Kq4UPW5J3Z/XHxX/y50+O2T/jK5iWdIlZmlgxTFBqnGTDMimXjr2fsmAZh0v2SfATBhan3ioNZM0GGaovwiKJpmaEKlzeLrp04QH+oDGhN4rqjjRyLCnxYBRMbqbveATpPeXg/w/E0tJIr6+wSLyIobFwPY0tnnQPmyoxEU8P8iAog7elU5DOltPwS2XX3SSvj7BWFNznH1DkSRs2BijTroHwCCvpqZS3P0cvs8TfGSsC/gHxCCKLxktfwMtnXOiWFE+QcK5J+YK42kRuedlXD7BwFUMb3cpJHUz7KkOjAYB0Ft8jYw9NhPO2EN+geFoPXEtFQY9DrXNaj//AUw6ED3OYkZN18mdA6GAW6tQelMKEKFkFqNzIJ3gszCOBjpvmusuaXzI7Lhyjqj8gOCgVp6qI+LxVqSp2Mhzm02h+vOHj58uOPx7lRRxvorxe7W26fEzMr6p1n3SP5U4QNP/XXB2PvWjmmKx/7xZEFBcck/n30s9bGUKvSCTSMcYNQxK6ssAXY+X/dmaW5nkOyuO/6+tkD45/xv3NzzjPHYKGxuyNmcUCteHyXIr6Y+jA1MBsvwPIvgYwTkeGHbs7yj51WUumKzEIU9Z7MUJVDrYOp25oBONBXznIeLLdueWxZyS48ayJrsxHf3NauV/XbJ5PVgycFZ9haPWv9Irh3Agl+VWxZDAVb6oLb5Oez505hKljuatdZtAAsOz7btsx//5vyZMfc85IF1UDCb9wUZSnoEc2icF1yFDC0LAD2/6SHIsIPz/jXJcIQ0ZnENrfNWQklZzKdMNs0UuqD0HCkLQa2Kv9ZmsMGDH3x7EKkcFIXLScu07VgR89HKSqPJczfA2GqVPIHGtx+GIn3uh7y1scuCrnWQSd7N1vbqN1S9EMaFzLIQqPhVGk0G7PxW1l6U0Zym1mlVaBzkc5nSuFDqA8MgD5xrjI091ySQNwtbdT1ciMjKkOCe8OAB+/5+lDo/hbQSVMq/97HjcJGrlV5SxR4AE4wua0hFhvV9d6Ab589/J/MQrDoE7ZWy2lDXvIOr5t2/VXUdIDi/9X9PD0th2itlYcnkoCimHY5UybKjPv0WDIdR35CUeDlgbfr/aOn4nSItO4qubIQjYdlXqZMLsIMNbUYxMMGspi/mWoZ3Ii9jSIZ9Fa900F4ZZaQOWnbYLfDImSzBAYX+M16+/eFamQOK+RIOcbICRYn3cAxcYzihaIjo5zsX7No7ftd4jO3P4OlZtEJWNkIQcRr9sv5YW6TT5awNDaXFwXT6ZHK/gGTyp6dwenOXR2hZGi9APpMpvURXjfHgQlrU7BOzyxjVIrTIeuYzvAA3tJHSqsmsyselrJI6oFDT3fhBz70zHLKZroqPG6GxwELZ/BZLWdlMjtDL5boMWHlCG6SjqWBTjcaOTyBPd+k1ldIFEhaaqfSUrJ0pB//aXI3GAAt+sDpS1cwOJY89CtkZsKtV3aud8UCROkXxratBjz1ofne0QY0IIkCo3GSo41HQ62HjmksclHKg2KSZrXWH5+3B2cIudLB+9qlEOJzFNFScefUlsHgN3lny1verQv8uAs2ikz3HMsfnFYA+G0aDzmYC78rrNv3hcOHM25/WgAF7vTNplLeztnkfrq7VPWOdYLaWAJ6fznv2YtIk7F7vg8WXjRAYlAU8d/6ooCCdYx0vloquIxCOjzZ6t2wp2Tg71PZ7D76V18kALMKCWDqrFbHygaRO/Bm3fudqEy9UNt67KT8/f1NH3G2snnf3FmE1mSyiE+f9y0NaxVBmreJqE5Yr3xUbhgszDBM+ODRAI+6rrdsnvN65Gt9Y9mJrxK3cnyg2xWYSCeKEr1P8jHU4CILIpKM0TfiY0/V/+uP0VdNXLG+riRgdvQhHar2DwX5ri4xgMF30ApFhHiPEkZjA9KJw3QQDc+S+KA7eKRhmIh3/k1AcgWQd0A6eZN3RwzUzchb+KpqHiWb57gQajAO3nGhi1uqa6B8M1W3AVFcv1zoFS8LGAcYBk+3fFCgJf97cpb+tGCDd1yZmPjlaKTk068A1cMHhsaVRXiOg/KqjXH+SJyhInrlQ1IfoWiyILrZPa4o1G1tuXGxPL7q6ZR/Z1ykINJL/+oq+ZZ9EeKrNRAAzg1QD0LRQ1dpIov7qSZBOsSmlb0czz8xAKhbL3ij+YTulb/Pk6/qVvl3i+19YfH+PxXcVx0RF8R2v/r5w93MlA9Xvovy/YQeW/4cE+X9RkP/PuPBoNGXf1evpnwH9wKyz1N0ryQAAAABJRU5ErkJggg=='\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default GoodDollar\r\n","import React from 'react'\r\n\r\nconst Copy = ({ width = 20, height = 20, fill = '#979797', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 330 330'\r\n xmlSpace='preserve'\r\n xmlns='http://www.w3.org/2000/svg'\r\n fill={fill}\r\n {...rest}\r\n >\r\n <g>\r\n <path\r\n d='M35,270h45v45c0,8.284,6.716,15,15,15h200c8.284,0,15-6.716,15-15V75c0-8.284-6.716-15-15-15h-45V15\r\n c0-8.284-6.716-15-15-15H35c-8.284,0-15,6.716-15,15v240C20,263.284,26.716,270,35,270z M280,300H110V90h170V300z M50,30h170v30H95\r\n c-8.284,0-15,6.716-15,15v165H50V30z'\r\n />\r\n <path d='M155,120c-8.284,0-15,6.716-15,15s6.716,15,15,15h80c8.284,0,15-6.716,15-15s-6.716-15-15-15H155z' />\r\n <path d='M235,180h-80c-8.284,0-15,6.716-15,15s6.716,15,15,15h80c8.284,0,15-6.716,15-15S243.284,180,235,180z' />\r\n <path\r\n d='M235,240h-80c-8.284,0-15,6.716-15,15c0,8.284,6.716,15,15,15h80c8.284,0,15-6.716,15-15C250,246.716,243.284,240,235,240z\r\n '\r\n />\r\n </g>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Copy\r\n","export const SOLANA_USDK_ADDRESS =\r\n 'GkbnUDkymDTF4U6Z5wM5kKJn3GmGndMn2rN5typmyUHY'\r\nexport const ETHEREUM_USDK_ADDRESS =\r\n '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5'\r\nexport const POLYGON_USDK_ADDRESS = '0x5bd4865a6dEd507dA08ed1aBE3cd971a7e0405D7'\r\nexport const AVAX_USDK_ADDRESS = '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5'\r\nexport const FUSE_GDOLLAR_ADDRESS = '0x79BeecC4b165Ccf547662cB4f7C0e83b3796E5b3'\r\nexport const CELO_GDOLLAR_ADDRESS = '0xAB89A70d1Af04ED8badf915Ba1f5b28E9F322624'\r\n","import { clusterApiUrl } from '@solana/web3.js'\r\nimport {\r\n EthereumIcon,\r\n PolygonIcon,\r\n AvalancheIcon,\r\n USDTIcon,\r\n GoodDollarIcon,\r\n FuseIcon,\r\n CeloIcon,\r\n SolanaIcon\r\n} from '../assets/icons'\r\nimport {\r\n AVAX_USDK_ADDRESS,\r\n CELO_GDOLLAR_ADDRESS,\r\n ETHEREUM_USDK_ADDRESS,\r\n FUSE_GDOLLAR_ADDRESS,\r\n POLYGON_USDK_ADDRESS,\r\n SOLANA_USDK_ADDRESS\r\n} from './config'\r\n\r\nexport enum ChainName {\r\n ETHEREUM = 'ETH',\r\n POLYGON = 'POL',\r\n AVALANCHE = 'AVX',\r\n SOLANA = 'SOL',\r\n FUSE = 'FUS',\r\n CELO = 'CEL'\r\n}\r\n\r\nexport enum SupportedChainId {\r\n ETHEREUM = 11155111,\r\n POLYGON = 80001,\r\n AVALANCHE = 43113,\r\n FUSE = 122,\r\n CELO = 42220\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_IDS: { [chainName: string]: SupportedChainId } = {\r\n [ChainName.ETHEREUM]: SupportedChainId.ETHEREUM,\r\n [ChainName.POLYGON]: SupportedChainId.POLYGON,\r\n [ChainName.AVALANCHE]: SupportedChainId.AVALANCHE,\r\n [ChainName.FUSE]: SupportedChainId.FUSE,\r\n [ChainName.CELO]: SupportedChainId.CELO\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_STRING: { [chainName: string]: string } = {\r\n [ChainName.ETHEREUM]: 'Ethereum',\r\n [ChainName.POLYGON]: 'Polygon',\r\n [ChainName.AVALANCHE]: 'Avalanche',\r\n [ChainName.FUSE]: 'Fuse',\r\n [ChainName.CELO]: 'Celo',\r\n [ChainName.SOLANA]: 'Solana'\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_EXPLORER: { [chainName: string]: string } = {\r\n [ChainName.ETHEREUM]: 'sepolia.etherscan.io',\r\n [ChainName.POLYGON]: 'mumbai.polygonscan.com',\r\n [ChainName.AVALANCHE]: 'testnet.snowtrace.io',\r\n [ChainName.FUSE]: 'explorer.fuse.io',\r\n [ChainName.CELO]: 'explorer.celo.org',\r\n [ChainName.SOLANA]: 'solscan.io'\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_GECKO_ID: { [chainName: string]: string } = {\r\n [ChainName.ETHEREUM]: 'ethereum',\r\n [ChainName.POLYGON]: 'matic-network',\r\n [ChainName.AVALANCHE]: 'avalanche-2',\r\n [ChainName.FUSE]: 'fuse-network-token',\r\n [ChainName.CELO]: 'celo',\r\n [ChainName.SOLANA]: 'solana'\r\n}\r\n\r\nexport const CHAIN_IDS_TO_NAMES: { [chainId: number]: string } = {\r\n [SupportedChainId.ETHEREUM]: ChainName.ETHEREUM,\r\n [SupportedChainId.POLYGON]: ChainName.POLYGON,\r\n [SupportedChainId.AVALANCHE]: ChainName.AVALANCHE,\r\n [SupportedChainId.FUSE]: ChainName.FUSE,\r\n [SupportedChainId.CELO]: ChainName.CELO\r\n}\r\n\r\nexport const networkOptions = [\r\n {\r\n id: ChainName.ETHEREUM,\r\n label: 'Ethereum',\r\n icon: EthereumIcon\r\n },\r\n {\r\n id: ChainName.POLYGON,\r\n label: 'Polygon',\r\n icon: PolygonIcon\r\n },\r\n {\r\n id: ChainName.AVALANCHE,\r\n label: 'Avalanche',\r\n icon: AvalancheIcon\r\n },\r\n {\r\n id: 'FUS',\r\n label: 'Fuse',\r\n icon: FuseIcon\r\n },\r\n {\r\n id: 'CEL',\r\n label: 'Celo',\r\n icon: CeloIcon\r\n },\r\n {\r\n id: 'SOL',\r\n label: 'Solana',\r\n icon: SolanaIcon\r\n }\r\n]\r\nexport const getNetworkOption = (id: string) => {\r\n const index = networkOptions.findIndex((item) => item.id === id)\r\n if (index < 0) return\r\n return networkOptions[index]\r\n}\r\n\r\nexport type Cluster = 'devnet' | 'testnet' | 'mainnet'\r\nexport const CLUSTER: Cluster = 'devnet'\r\nexport const SOLANA_HOST = clusterApiUrl(CLUSTER)\r\nexport const isEVMChain = (chainId: string) =>\r\n chainId === ChainName.ETHEREUM ||\r\n chainId === ChainName.POLYGON ||\r\n chainId === ChainName.AVALANCHE ||\r\n chainId === ChainName.FUSE ||\r\n chainId === ChainName.CELO\r\n\r\ntype CoinOptions = {\r\n [key: string]: any\r\n}\r\n\r\nexport const COIN_LIST: CoinOptions = {\r\n USDK: {\r\n symbol: 'USDK',\r\n label: 'USDK',\r\n icon: USDTIcon,\r\n address: {\r\n SOL: SOLANA_USDK_ADDRESS,\r\n ETH: ETHEREUM_USDK_ADDRESS,\r\n POL: POLYGON_USDK_ADDRESS,\r\n AVX: AVAX_USDK_ADDRESS\r\n },\r\n decimals: 6\r\n },\r\n GDOLLAR: {\r\n symbol: 'G$',\r\n label: 'GDOLLAR',\r\n icon: GoodDollarIcon,\r\n address: {\r\n FUS: FUSE_GDOLLAR_ADDRESS,\r\n CEL: CELO_GDOLLAR_ADDRESS\r\n }\r\n }\r\n}\r\n\r\nexport enum TransactionStatus {\r\n AVAILABLE = 'Available',\r\n CONFIRMED = 'Confirmed',\r\n PAID = 'Paid',\r\n COMPLETED = 'Completed',\r\n FAILED = 'FailedToPay',\r\n UNAVAILABLE = 'UnAvailable',\r\n KEYSIGNED = 'KeySigned'\r\n}\r\n\r\nexport const tooltipInfo = [\r\n ['Initialize Kima transaction'],\r\n ['Transfer liquidity from source chain'],\r\n ['Key signing'],\r\n ['Transfer liquidity to target chain'],\r\n []\r\n]\r\n","export { ChainName as SupportNetworks } from './utils/constants'\r\nimport { ChainName as SupportNetworks } from './utils/constants'\r\n\r\nexport enum FontSizeOptions {\r\n large = 'large',\r\n medium = 'medium',\r\n small = 'small'\r\n}\r\n\r\nexport enum ModeOptions {\r\n payment = 'payment',\r\n bridge = 'bridge',\r\n status = 'status'\r\n}\r\n\r\nexport enum CurrencyOptions {\r\n USDK = 'USDK',\r\n G$ = 'GDOLLAR'\r\n}\r\n\r\nexport enum ThemeOptions {\r\n light = 'light',\r\n dark = 'dark'\r\n}\r\n\r\nexport interface TransactionOption {\r\n targetChain: SupportNetworks\r\n targetAddress: string\r\n amount: number\r\n}\r\n\r\nexport interface TitleOption {\r\n initialTitle?: string\r\n confirmTitle?: string\r\n}\r\n\r\nexport interface DefaultProps {\r\n theme?: ThemeOptions\r\n fontSize?: FontSizeOptions\r\n}\r\n\r\nexport interface TransactionData {\r\n sourceChain?: string\r\n targetChain?: string\r\n tssPullHash?: string\r\n tssReleaseHash?: string\r\n symbol?: string\r\n amount?: number\r\n kimaTxHash?: string\r\n}\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\n// import { WalletName } from '@solana/wallet-adapter-base'\r\nimport { ModeOptions, ThemeOptions, TransactionOption } from '../interface'\r\nimport { COIN_LIST } from '../utils/constants'\r\n\r\nexport interface OptionState {\r\n theme: ThemeOptions // light or dark\r\n mode: ModeOptions // payment or bridge\r\n originNetwork: string // origin network on UI\r\n targetNetwork: string // target network on UI\r\n targetAddress: string // target address on UI\r\n connectModal: boolean // solana wallet connection modal state - open or closed\r\n helpPopup: boolean // shows popup to show help instructions\r\n hashPopup: boolean // shows popup to show hashes of transactions (kima tx, pull & release hashes)\r\n solanaProvider: any // selected solana wallet provider - phantom, solflare or ...\r\n submitted: boolean // if transaction is submitted, shows Transaction Widget to monitor status\r\n amount: number // amount input\r\n isApproving: boolean // is waiting for approval\r\n isSubmitting: boolean // is waiting for submission\r\n isConfirming: boolean // is on the confirmation page, disable service fee update\r\n feeDeduct: boolean // whether deduct fee from amount or not\r\n transactionOption?: TransactionOption // input option from dApp\r\n errorHandler: Function // error callback function from dApp\r\n closeHandler: Function // callback function for close event\r\n successHandler: Function // callback function for success event\r\n serviceFee: number // service fee from kima node\r\n backendUrl: string // URL for kima-transaction-backend component\r\n nodeProviderQuery: string // REST API endpoint to query kima node\r\n txId: number // transaction id to monitor it's status\r\n currencyOptions: any // Currency options available between source and target chains\r\n}\r\n\r\nconst initialState: OptionState = {\r\n theme: ThemeOptions.light,\r\n mode: ModeOptions.bridge,\r\n originNetwork: 'ETH',\r\n targetNetwork: 'POL',\r\n targetAddress: '',\r\n connectModal: false,\r\n helpPopup: false,\r\n hashPopup: false,\r\n solanaProvider: undefined,\r\n submitted: false,\r\n amount: 0,\r\n isApproving: false,\r\n isSubmitting: false,\r\n isConfirming: false,\r\n feeDeduct: false,\r\n errorHandler: () => void 0,\r\n closeHandler: () => void 0,\r\n successHandler: () => void 0,\r\n serviceFee: -1,\r\n backendUrl: '',\r\n nodeProviderQuery: '',\r\n txId: -1,\r\n currencyOptions: COIN_LIST['USDK']\r\n}\r\n\r\nexport const optionSlice = createSlice({\r\n name: 'option',\r\n initialState,\r\n reducers: {\r\n initialize: (state) => {\r\n state.submitted = false\r\n state.isConfirming = false\r\n state.isApproving = false\r\n state.txId = -1\r\n state.serviceFee = -1\r\n state.amount = 0\r\n state.targetAddress = ''\r\n },\r\n setTheme: (state, action: PayloadAction<ThemeOptions>) => {\r\n state.theme = action.payload\r\n },\r\n setOriginNetwork: (state, action: PayloadAction<string>) => {\r\n state.originNetwork = action.payload\r\n },\r\n setTargetNetwork: (state, action: PayloadAction<string>) => {\r\n state.targetNetwork = action.payload\r\n },\r\n setTargetAddress: (state, action: PayloadAction<string>) => {\r\n state.targetAddress = action.payload\r\n },\r\n setConnectModal: (state, action: PayloadAction<boolean>) => {\r\n state.connectModal = action.payload\r\n },\r\n setHelpPopup: (state, action: PayloadAction<boolean>) => {\r\n state.helpPopup = action.payload\r\n },\r\n setHashPopup: (state, action: PayloadAction<boolean>) => {\r\n state.hashPopup = action.payload\r\n },\r\n setSolanaProvider: (state, action: PayloadAction<any>) => {\r\n state.solanaProvider = action.payload\r\n },\r\n setSubmitted: (state, action: PayloadAction<boolean>) => {\r\n state.submitted = action.payload\r\n },\r\n setTransactionOption: (state, action: PayloadAction<TransactionOption>) => {\r\n state.transactionOption = action.payload\r\n },\r\n setAmount: (state, action: PayloadAction<number>) => {\r\n state.amount = action.payload\r\n },\r\n setApproving: (state, action: PayloadAction<boolean>) => {\r\n state.isApproving = action.payload\r\n },\r\n setSubmitting: (state, action: PayloadAction<boolean>) => {\r\n state.isSubmitting = action.payload\r\n },\r\n setErrorHandler: (state, action: PayloadAction<Function>) => {\r\n state.errorHandler = action.payload\r\n },\r\n setCloseHandler: (state, action: PayloadAction<Function>) => {\r\n state.closeHandler = action.payload\r\n },\r\n setSuccessHandler: (state, action: PayloadAction<Function>) => {\r\n state.successHandler = action.payload\r\n },\r\n setServiceFee: (state, action: PayloadAction<number>) => {\r\n state.serviceFee = action.payload\r\n },\r\n setMode: (state, action: PayloadAction<ModeOptions>) => {\r\n state.mode = action.payload\r\n },\r\n setConfirming: (state, action: PayloadAction<boolean>) => {\r\n state.isConfirming = action.payload\r\n },\r\n setFeeDeduct: (state, action: PayloadAction<boolean>) => {\r\n state.feeDeduct = action.payload\r\n },\r\n setBackendUrl: (state, action: PayloadAction<string>) => {\r\n state.backendUrl = action.payload\r\n },\r\n setNodeProviderQuery: (state, action: PayloadAction<string>) => {\r\n state.nodeProviderQuery = action.payload\r\n },\r\n setTxId: (state, action: PayloadAction<number>) => {\r\n state.txId = action.payload\r\n },\r\n setCurrencyOptions: (state, action: PayloadAction<any>) => {\r\n state.currencyOptions = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const {\r\n initialize,\r\n setTheme,\r\n setOriginNetwork,\r\n setTargetNetwork,\r\n setTargetAddress,\r\n setConnectModal,\r\n setHelpPopup,\r\n setHashPopup,\r\n setSolanaProvider,\r\n setSubmitted,\r\n setTransactionOption,\r\n setAmount,\r\n setApproving,\r\n setSubmitting,\r\n setConfirming,\r\n setErrorHandler,\r\n setCloseHandler,\r\n setSuccessHandler,\r\n setServiceFee,\r\n setMode,\r\n setFeeDeduct,\r\n setBackendUrl,\r\n setNodeProviderQuery,\r\n setTxId,\r\n setCurrencyOptions\r\n} = optionSlice.actions\r\n\r\nexport default optionSlice.reducer\r\n","import { configureStore } from '@reduxjs/toolkit'\r\nimport optionReducer from './optionSlice'\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n option: optionReducer\r\n },\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: false\r\n })\r\n})\r\n\r\n// Infer the `RootState` and `AppDispatch` types from the store itself\r\nexport type RootState = ReturnType<typeof store.getState>\r\n// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState}\r\nexport type AppDispatch = typeof store.dispatch\r\n","import { RootState } from '.'\r\n\r\n/*\r\n * Option\r\n */\r\n\r\nexport const selectTheme = (state: RootState) => state.option.theme\r\nexport const selectOriginNetwork = (state: RootState) =>\r\n state.option.originNetwork\r\nexport const selectTargetNetwork = (state: RootState) =>\r\n state.option.targetNetwork\r\nexport const selectTargetAddress = (state: RootState) =>\r\n state.option.targetAddress\r\nexport const selectConnectModal = (state: RootState) =>\r\n state.option.connectModal\r\nexport const selectHelpPopup = (state: RootState) => state.option.helpPopup\r\nexport const selectHashPopup = (state: RootState) => state.option.hashPopup\r\nexport const selectSolanaProvider = (state: RootState) =>\r\n state.option.solanaProvider\r\nexport const selectSubmitted = (state: RootState) => state.option.submitted\r\nexport const selectTransactionOption = (state: RootState) =>\r\n state.option.transactionOption\r\nexport const selectAmount = (state: RootState) => state.option.amount\r\nexport const selectApproving = (state: RootState) => state.option.isApproving\r\nexport const selectSubmitting = (state: RootState) => state.option.isSubmitting\r\nexport const selectErrorHandler = (state: RootState) =>\r\n state.option.errorHandler\r\nexport const selectCloseHandler = (state: RootState) =>\r\n state.option.closeHandler\r\nexport const selectSuccessHandler = (state: RootState) =>\r\n state.option.successHandler\r\nexport const selectServiceFee = (state: RootState) => state.option.serviceFee\r\nexport const selectMode = (state: RootState) => state.option.mode\r\nexport const selectConfirming = (state: RootState) => state.option.isConfirming\r\nexport const selectFeeDeduct = (state: RootState) => state.option.feeDeduct\r\nexport const selectBackendUrl = (state: RootState) => state.option.backendUrl\r\nexport const selectNodeProviderQuery = (state: RootState) =>\r\n state.option.nodeProviderQuery\r\nexport const selectTxId = (state: RootState) => state.option.txId\r\nexport const selectCurrencyOptions = (state: RootState) =>\r\n state.option.currencyOptions\r\n","import detectEthereumProvider from '@metamask/detect-provider'\r\nimport { BigNumber, ethers } from 'ethers'\r\nimport React, {\r\n ReactNode,\r\n useCallback,\r\n useContext,\r\n useMemo,\r\n useState\r\n} from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectErrorHandler } from '../store/selectors'\r\n\r\nexport type Provider = ethers.providers.Web3Provider | undefined\r\nexport type Signer = ethers.Signer | undefined\r\n\r\ninterface IEthereumProviderContext {\r\n connect(): void\r\n disconnect(): void\r\n provider: Provider\r\n chainId: number | undefined\r\n signer: Signer\r\n signerAddress: string | undefined\r\n providerError: string | null\r\n}\r\n\r\nconst EthereumProviderContext = React.createContext<IEthereumProviderContext>({\r\n connect: () => {},\r\n disconnect: () => {},\r\n provider: undefined,\r\n chainId: undefined,\r\n signer: undefined,\r\n signerAddress: undefined,\r\n providerError: null\r\n})\r\nexport const EthereumProvider = ({ children }: { children: ReactNode }) => {\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const [providerError, setProviderError] = useState<string | null>(null)\r\n const [provider, setProvider] = useState<Provider>(undefined)\r\n const [chainId, setChainId] = useState<number | undefined>(undefined)\r\n const [signer, setSigner] = useState<Signer>(undefined)\r\n const [signerAddress, setSignerAddress] = useState<string | undefined>(\r\n undefined\r\n )\r\n const connect = useCallback(() => {\r\n setProviderError(null)\r\n detectEthereumProvider()\r\n .then((detectedProvider) => {\r\n if (detectedProvider) {\r\n const provider = new ethers.providers.Web3Provider(\r\n // @ts-ignore\r\n detectedProvider,\r\n 'any'\r\n )\r\n provider\r\n .send('eth_requestAccounts', [])\r\n .then(() => {\r\n setProviderError(null)\r\n setProvider(provider)\r\n provider\r\n .getNetwork()\r\n .then((network) => {\r\n setChainId(network.chainId)\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while getting the network'\r\n )\r\n })\r\n const signer = provider.getSigner()\r\n setSigner(signer)\r\n signer\r\n .getAddress()\r\n .then((address) => {\r\n setSignerAddress(address)\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while getting the signer address'\r\n )\r\n })\r\n // TODO: try using ethers directly\r\n // @ts-ignore\r\n if (detectedProvider && detectedProvider.on) {\r\n // @ts-ignore\r\n detectedProvider.on('chainChanged', (chainId) => {\r\n try {\r\n setChainId(BigNumber.from(chainId).toNumber())\r\n } catch (e) {\r\n errorHandler(e)\r\n }\r\n })\r\n // @ts-ignore\r\n detectedProvider.on('accountsChanged', (accounts) => {\r\n try {\r\n const signer = provider.getSigner()\r\n setSigner(signer)\r\n signer\r\n .getAddress()\r\n .then((address) => {\r\n setSignerAddress(address)\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while getting the signer address'\r\n )\r\n })\r\n } catch (e) {\r\n errorHandler(e)\r\n }\r\n })\r\n }\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while requesting eth accounts'\r\n )\r\n })\r\n } else {\r\n setProviderError('Please install MetaMask')\r\n }\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError('Please install MetaMask')\r\n })\r\n }, [])\r\n const disconnect = useCallback(() => {\r\n setProviderError(null)\r\n setProvider(undefined)\r\n setChainId(undefined)\r\n setSigner(undefined)\r\n setSignerAddress(undefined)\r\n }, [])\r\n const contextValue = useMemo(\r\n () => ({\r\n connect,\r\n disconnect,\r\n provider,\r\n chainId,\r\n signer,\r\n signerAddress,\r\n providerError\r\n }),\r\n [\r\n connect,\r\n disconnect,\r\n provider,\r\n chainId,\r\n signer,\r\n signerAddress,\r\n providerError\r\n ]\r\n )\r\n return (\r\n <EthereumProviderContext.Provider value={contextValue}>\r\n {children}\r\n </EthereumProviderContext.Provider>\r\n )\r\n}\r\nexport const useEthereumProvider = () => {\r\n return useContext(EthereumProviderContext)\r\n}\r\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React from 'react'\r\n\r\nconst Loading180Ring = ({ width, height, fill = 'white' }: any) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n fill={fill}\r\n viewBox='0 0 24 24'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path d='M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z'>\r\n <animateTransform\r\n attributeName='transform'\r\n type='rotate'\r\n dur='0.75s'\r\n values='0 12 12;360 12 12'\r\n repeatCount='indefinite'\r\n />\r\n </path>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Loading180Ring\r\n","import React, { Dispatch, SetStateAction } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { CheckIcon, WarningIcon } from '../../assets/icons'\r\nimport { Loading180Ring } from '../../assets/loading'\r\nimport { ThemeOptions } from '../../interface'\r\nimport { selectTheme } from '../../store/selectors'\r\n\r\ninterface Props {\r\n step: number\r\n focus: number\r\n setFocus: Dispatch<SetStateAction<number>>\r\n errorStep: number\r\n loadingStep: number\r\n}\r\n\r\nconst stepInfo = [\r\n {\r\n title: 'Initialize'\r\n },\r\n {\r\n title: 'Source Transfer'\r\n },\r\n {\r\n title: 'Validation'\r\n },\r\n {\r\n title: 'Target Transfer'\r\n },\r\n {\r\n title: 'Finalize'\r\n }\r\n]\r\n\r\nconst Progressbar = ({ step, errorStep, setFocus, loadingStep }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div className='kima-progressbar'>\r\n <div\r\n className='value'\r\n style={{\r\n width: `calc(${(step * 100) / 4}% + ${\r\n step > 0 && step < 3 ? 0.5 : 0\r\n }em)`\r\n }}\r\n />\r\n <div className='step-indicators'>\r\n {stepInfo.map((item, index) => (\r\n <div\r\n key={item.title}\r\n className={`step ${step >= index ? 'active' : ''}`}\r\n onClick={() => {\r\n if (index < 4) setFocus(index)\r\n }}\r\n >\r\n <div className='step-info'>\r\n {index === loadingStep ? (\r\n <Loading180Ring\r\n fill={theme === ThemeOptions.dark ? 'white' : '#5aa0db'}\r\n />\r\n ) : step >= index ? (\r\n index === errorStep ? (\r\n <WarningIcon />\r\n ) : (\r\n <CheckIcon />\r\n )\r\n ) : null}\r\n <span>{item.title}</span>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Progressbar\r\n","import React from 'react'\r\n\r\ninterface Props {\r\n to: string\r\n children?: any\r\n className?: string\r\n rest?: any\r\n}\r\n\r\nconst ExternalLink = ({ to, children, className, rest }: Props) => (\r\n <a\r\n className={className}\r\n href={to}\r\n target='_blank'\r\n rel='noreferrer noopener'\r\n {...rest}\r\n >\r\n {children}\r\n </a>\r\n)\r\n\r\nexport default ExternalLink\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { ArrowRightIcon, WarningIcon } from '../../assets/icons'\r\nimport { selectTheme } from '../../store/selectors'\r\nimport { getNetworkOption } from '../../utils/constants'\r\n\r\ninterface Props {\r\n hasError: boolean\r\n sourceChain: string\r\n targetChain: string\r\n}\r\n\r\nconst NetworkLabel = ({ sourceChain, targetChain, hasError }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n const SourceInfo = getNetworkOption(sourceChain)\r\n const TargetInfo = getNetworkOption(targetChain)\r\n\r\n return (\r\n <div className='kima-card-network-label'>\r\n <div className='label'>\r\n <div className='icon-wrapper'>{SourceInfo && <SourceInfo.icon />}</div>\r\n {SourceInfo?.label}\r\n </div>\r\n <ArrowRightIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n <div className='label'>\r\n <div className='icon-wrapper'>{TargetInfo && <TargetInfo.icon />}</div>\r\n {TargetInfo?.label}\r\n </div>\r\n {hasError && (\r\n <div className='warning-container'>\r\n <WarningIcon />\r\n <span>1 issue</span>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default NetworkLabel\r\n","import React from 'react'\r\nimport { Loading180Ring } from '../../assets/loading'\r\n\r\ninterface Props {\r\n clickHandler?: any\r\n children?: any\r\n className?: string\r\n isLoading?: boolean\r\n}\r\n\r\nconst PrimaryButton = ({\r\n className,\r\n clickHandler,\r\n children,\r\n isLoading = false\r\n}: Props) => (\r\n <button className={`primary-button ${className}`} onClick={clickHandler}>\r\n {isLoading && (\r\n <div className='loading-indicator'>\r\n <Loading180Ring width={24} height={24} fill='white' />\r\n </div>\r\n )}\r\n {children}\r\n </button>\r\n)\r\n\r\nexport default PrimaryButton\r\n","import React from 'react'\r\n\r\ninterface Props {\r\n clickHandler?: any\r\n children?: any\r\n className?: string\r\n theme?: string\r\n style?: any\r\n}\r\n\r\nconst SecondaryButton = ({\r\n className,\r\n clickHandler,\r\n children,\r\n theme,\r\n style\r\n}: Props) => (\r\n <button\r\n className={`secondary-button ${className} ${theme}`}\r\n onClick={clickHandler}\r\n {...style}\r\n >\r\n {children}\r\n </button>\r\n)\r\n\r\nexport default SecondaryButton\r\n","export const fetchWrapper = {\r\n get,\r\n post\r\n}\r\n\r\nfunction get(url: string) {\r\n const requestOptions: any = {\r\n method: 'GET'\r\n }\r\n\r\n requestOptions.headers = {\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n return fetch(url, requestOptions).then(handleResponse)\r\n}\r\n\r\nfunction post(url: string, body: any) {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // Authorization: `Bearer ${token}`\r\n },\r\n body: body\r\n }\r\n\r\n return fetch(url, requestOptions).then(handleResponse)\r\n}\r\n\r\nfunction handleResponse(response: Response) {\r\n return response.text().then((text) => {\r\n let data = text\r\n\r\n try {\r\n data = JSON.parse(text)\r\n } catch (error) {\r\n data = text\r\n }\r\n\r\n if (!response.ok) {\r\n if ([401, 403].includes(response.status)) {\r\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n }\r\n\r\n // const error = (data && data.message) || response.statusText;\r\n const error = data || response.statusText\r\n\r\n return Promise.reject({ status: response.status, error })\r\n }\r\n\r\n return data\r\n })\r\n}\r\n","import { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport { selectNodeProviderQuery } from '../store/selectors'\r\nimport { networkOptions } from '../utils/constants'\r\n\r\nexport default function useNetworkOptions() {\r\n const [options, setOptions] = useState<Array<any>>(networkOptions)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/getChains`\r\n )\r\n\r\n setOptions(\r\n networkOptions.filter(\r\n (network) =>\r\n networks.Chains.findIndex((id: any) => id === network.id) >= 0\r\n )\r\n )\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery])\r\n\r\n return useMemo(\r\n () => ({\r\n options\r\n }),\r\n [options]\r\n )\r\n}\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useNetworkOptions from '../../hooks/useNetworkOptions'\r\nimport { ArrowIcon } from '../../assets/icons'\r\nimport {\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetNetwork,\r\n selectTheme\r\n} from '../../store/selectors'\r\nimport {\r\n setOriginNetwork,\r\n setServiceFee,\r\n setTargetNetwork\r\n} from '../../store/optionSlice'\r\nimport { ChainName } from '../../utils/constants'\r\nimport { ModeOptions } from '../../interface'\r\nimport { fetchWrapper } from '../../helpers/fetch-wrapper'\r\n\r\ninterface Props {\r\n isOriginChain?: boolean\r\n}\r\n\r\nconst Network = ({ isOriginChain = true }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n const mode = useSelector(selectMode)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const dispatch = useDispatch()\r\n const sliderRef = useRef<any>()\r\n const [availableNetworks, setAvailableNetworks] = useState<Array<ChainName>>(\r\n []\r\n )\r\n const { options: networkOptions } = useNetworkOptions()\r\n const selectedNetwork = useMemo(() => {\r\n const index = networkOptions.findIndex(\r\n (option) => option.id === (isOriginChain ? originNetwork : targetNetwork)\r\n )\r\n if (index >= 0) return networkOptions[index]\r\n return networkOptions[0]\r\n }, [originNetwork, targetNetwork, networkOptions])\r\n const networks = useMemo(() => {\r\n if (isOriginChain && mode === ModeOptions.bridge) {\r\n return networkOptions\r\n }\r\n\r\n return networkOptions.filter(\r\n (network) =>\r\n availableNetworks.findIndex((id: any) => id === network.id) >= 0\r\n )\r\n }, [networkOptions, isOriginChain, availableNetworks])\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.bridge) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n if (isOriginChain) {\r\n dispatch(setTargetNetwork(networks.Chains[0]))\r\n }\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, originNetwork, mode, isOriginChain])\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.payment) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, mode])\r\n\r\n useEffect(() => {\r\n let isDown = false\r\n let startX: number\r\n let scrollLeft: number\r\n\r\n sliderRef.current?.addEventListener('mousedown', (e: any) => {\r\n isDown = true\r\n sliderRef.current?.classList.add('active')\r\n startX = e.pageX - sliderRef.current?.offsetLeft\r\n scrollLeft = sliderRef.current?.scrollLeft\r\n })\r\n sliderRef.current?.addEventListener('mouseleave', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mouseup', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mousemove', (e: any) => {\r\n if (!isDown) return\r\n e.preventDefault()\r\n const x = e.pageX - sliderRef.current.offsetLeft\r\n const walk = (x - startX) * 1 //scroll-fast\r\n sliderRef.current.scrollLeft = scrollLeft - walk\r\n })\r\n })\r\n\r\n const slideLeft = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft -= 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n const slideRight = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft += 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n return (\r\n <div className={`network-select`}>\r\n <p>\r\n {isOriginChain\r\n ? 'Which network are you funding from?'\r\n : 'Which network are you funding to?'}\r\n </p>\r\n <div className='scroll-button'>\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideLeft}\r\n />\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideRight}\r\n />\r\n </div>\r\n <div className='slide-area hide-scrollbar' ref={sliderRef}>\r\n <div className='network-container'>\r\n {networks.map((network) => (\r\n <div\r\n className={`card-item ${theme} ${\r\n network.id === selectedNetwork.id ? 'active' : ''\r\n }`}\r\n key={network.id}\r\n onClick={() => {\r\n if (isOriginChain) {\r\n dispatch(setOriginNetwork(network.id))\r\n } else {\r\n dispatch(setTargetNetwork(network.id))\r\n dispatch(setServiceFee(-1))\r\n }\r\n }}\r\n >\r\n <network.icon />\r\n <span>{network.label}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Network\r\n","import React, { useEffect, useMemo, useRef } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\nimport { WalletReadyState } from '@solana/wallet-adapter-base'\r\nimport { ArrowIcon } from '../../assets/icons'\r\nimport { selectSolanaProvider, selectTheme } from '../../store/selectors'\r\nimport ExternalLink from './ExternalLink'\r\nimport { setSolanaProvider } from '../../store/optionSlice'\r\n\r\nconst WalletSelect = () => {\r\n const theme = useSelector(selectTheme)\r\n const selectedProvider = useSelector(selectSolanaProvider)\r\n const sliderRef = useRef<any>()\r\n\r\n const dispatch = useDispatch()\r\n const { wallets } = useWallet()\r\n const [detected, undetected] = useMemo(() => {\r\n const detected = []\r\n const undetected = []\r\n for (const wallet of wallets) {\r\n if (\r\n wallet.readyState === WalletReadyState.Installed ||\r\n wallet.readyState === WalletReadyState.Loadable\r\n ) {\r\n detected.push(wallet)\r\n } else if (wallet.readyState === WalletReadyState.NotDetected) {\r\n undetected.push(wallet)\r\n }\r\n }\r\n return [detected, undetected]\r\n }, [wallets])\r\n\r\n useEffect(() => {\r\n let isDown = false\r\n let startX: number\r\n let scrollLeft: number\r\n\r\n sliderRef.current?.addEventListener('mousedown', (e: any) => {\r\n isDown = true\r\n sliderRef.current?.classList.add('active')\r\n startX = e.pageX - sliderRef.current?.offsetLeft\r\n scrollLeft = sliderRef.current?.scrollLeft\r\n })\r\n sliderRef.current?.addEventListener('mouseleave', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mouseup', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mousemove', (e: any) => {\r\n if (!isDown) return\r\n e.preventDefault()\r\n const x = e.pageX - sliderRef.current.offsetLeft\r\n const walk = (x - startX) * 1 //scroll-fast\r\n sliderRef.current.scrollLeft = scrollLeft - walk\r\n })\r\n })\r\n\r\n const slideLeft = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft -= 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n const slideRight = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft += 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n return (\r\n <div className={`wallet-select`}>\r\n <p>Please select:</p>\r\n <div className='scroll-button'>\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideLeft}\r\n />\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideRight}\r\n />\r\n </div>\r\n <div className='slide-area hide-scrollbar' ref={sliderRef}>\r\n <div className='wallet-container'>\r\n {detected.map((wallet) => (\r\n <div\r\n className={`card-item ${theme} ${\r\n wallet.adapter.name === selectedProvider ? 'active' : ''\r\n }`}\r\n onClick={() => dispatch(setSolanaProvider(wallet.adapter.name))}\r\n key={wallet.adapter.name}\r\n >\r\n <img src={wallet.adapter.icon} alt={wallet.adapter.name} />\r\n <span>{wallet.adapter.name}</span>\r\n </div>\r\n ))}\r\n {undetected.map((wallet) => (\r\n <ExternalLink\r\n to={wallet.adapter.url}\r\n className={`card-item ${theme}`}\r\n key={wallet.adapter.name}\r\n >\r\n <img src={wallet.adapter.icon} alt={wallet.adapter.name} />\r\n <span>\r\n Install\r\n <br />\r\n {wallet.adapter.name}\r\n </span>\r\n </ExternalLink>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default WalletSelect\r\n","export const version = \"logger/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"bytes/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","import { hexlify, hexStripZeros } from '@ethersproject/bytes'\r\nimport { useCallback, useMemo } from 'react'\r\nimport { useEthereumProvider } from '../contexts/EthereumProviderContext'\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\n\r\nimport {\r\n CLUSTER,\r\n isEVMChain,\r\n ChainName,\r\n CHAIN_NAMES_TO_IDS\r\n} from '../utils/constants'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectErrorHandler, selectOriginNetwork } from '../store/selectors'\r\n\r\nconst createWalletStatus = (\r\n isReady: boolean,\r\n statusMessage: string = '',\r\n forceNetworkSwitch: () => void,\r\n walletAddress?: string\r\n) => ({\r\n isReady,\r\n statusMessage,\r\n forceNetworkSwitch,\r\n walletAddress\r\n})\r\n\r\nfunction useIsWalletReady(enableNetworkAutoswitch: boolean = false): {\r\n isReady: boolean\r\n statusMessage: string\r\n walletAddress?: string\r\n forceNetworkSwitch: () => void\r\n} {\r\n const autoSwitch = enableNetworkAutoswitch\r\n const { publicKey: solPK } = useWallet()\r\n const { provider, signerAddress, chainId: evmChainId } = useEthereumProvider()\r\n const sourceChain = useSelector(selectOriginNetwork)\r\n const hasEthInfo = !!provider && !!signerAddress\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const correctEvmNetwork = CHAIN_NAMES_TO_IDS[sourceChain]\r\n const hasCorrectEvmNetwork = evmChainId === correctEvmNetwork\r\n\r\n const forceNetworkSwitch = useCallback(() => {\r\n if (provider && correctEvmNetwork) {\r\n if (!isEVMChain(sourceChain)) {\r\n return\r\n }\r\n\r\n try {\r\n provider.send('wallet_switchEthereumChain', [\r\n { chainId: hexStripZeros(hexlify(correctEvmNetwork)) }\r\n ])\r\n } catch (e) {\r\n errorHandler(e)\r\n }\r\n }\r\n }, [provider, correctEvmNetwork, sourceChain])\r\n\r\n return useMemo(() => {\r\n if (sourceChain === ChainName.SOLANA && solPK) {\r\n return createWalletStatus(\r\n true,\r\n undefined,\r\n forceNetworkSwitch,\r\n solPK.toBase58()\r\n )\r\n }\r\n if (isEVMChain(sourceChain) && hasEthInfo && signerAddress) {\r\n if (hasCorrectEvmNetwork) {\r\n return createWalletStatus(\r\n true,\r\n undefined,\r\n forceNetworkSwitch,\r\n signerAddress\r\n )\r\n } else {\r\n if (provider && correctEvmNetwork && autoSwitch) {\r\n forceNetworkSwitch()\r\n }\r\n return createWalletStatus(\r\n false,\r\n `Wallet is not connected to ${CLUSTER}. Expected Chain ID: ${correctEvmNetwork}`,\r\n forceNetworkSwitch,\r\n signerAddress\r\n )\r\n }\r\n }\r\n\r\n return createWalletStatus(\r\n false,\r\n 'Wallet not connected',\r\n forceNetworkSwitch,\r\n undefined\r\n )\r\n }, [\r\n sourceChain,\r\n autoSwitch,\r\n forceNetworkSwitch,\r\n solPK,\r\n hasEthInfo,\r\n correctEvmNetwork,\r\n hasCorrectEvmNetwork,\r\n provider,\r\n signerAddress\r\n ])\r\n}\r\n\r\nexport default useIsWalletReady\r\n","// Return shortened address for EVM, Solana wallet address\r\n\r\nexport const getShortenedAddress = (address: string) => {\r\n const is0x = (addr: string) => addr?.startsWith('0x')\r\n return `${address?.substring(0, is0x(address) ? 6 : 3)}...${address?.substr(\r\n address.length - (is0x(address) ? 4 : 3)\r\n )}`\r\n}\r\n","export const connectWalletBtn = 'connect-wallet-btn'\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\nimport { setConnectModal } from '../../store/optionSlice'\r\nimport { selectOriginNetwork, selectTheme } from '../../store/selectors'\r\nimport PrimaryButton from './PrimaryButton'\r\nimport useIsWalletReady from '../../hooks/useIsWalletReady'\r\nimport { useEthereumProvider } from '../../contexts/EthereumProviderContext'\r\nimport { ChainName } from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\nimport { connectWalletBtn } from '../../utils/testId'\r\n\r\nconst WalletButton = ({ errorBelow = false }: { errorBelow?: boolean }) => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const selectedNetwork = useSelector(selectOriginNetwork)\r\n const { disconnect: disconnectSolana } = useWallet()\r\n const { connect, disconnect: disconnectEVM } = useEthereumProvider()\r\n const { isReady, statusMessage, walletAddress } = useIsWalletReady(true)\r\n\r\n useEffect(() => {\r\n if (!connect) return\r\n connect()\r\n }, [connect])\r\n\r\n const handleClick = () => {\r\n if (isReady) {\r\n if (selectedNetwork === ChainName.SOLANA) {\r\n disconnectSolana()\r\n } else {\r\n disconnectEVM()\r\n }\r\n return\r\n }\r\n\r\n if (selectedNetwork === ChainName.SOLANA) {\r\n dispatch(setConnectModal(true))\r\n return\r\n }\r\n\r\n connect()\r\n }\r\n\r\n return (\r\n <div\r\n className={`wallet-button ${theme} ${errorBelow ? 'error-below' : ''}`}\r\n data-testid={connectWalletBtn}\r\n >\r\n <PrimaryButton clickHandler={handleClick}>\r\n {isReady\r\n ? `Disconnect ${getShortenedAddress(walletAddress || '')}`\r\n : 'Wallet'}\r\n </PrimaryButton>\r\n {!isReady && <p className='provider-error'>{statusMessage}</p>}\r\n </div>\r\n )\r\n}\r\n\r\nexport default WalletButton\r\n","import React, { useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectCurrencyOptions, selectTheme } from '../../store/selectors'\r\n\r\nconst CoinDropdown = () => {\r\n const [collapsed, setCollapsed] = useState(true)\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div\r\n className={`coin-dropdown ${theme} ${collapsed ? 'collapsed' : ''}`}\r\n onClick={() => setCollapsed((prev) => !prev)}\r\n >\r\n <div className='coin-wrapper'>\r\n {<selectedCoin.icon />}\r\n {selectedCoin.symbol}\r\n </div>\r\n {/* <div className={`coin-menu ${theme} ${collapsed ? 'collapsed' : ''}`}>\r\n {coinList.map((coin) => (\r\n <div className='coin-item' key={selectedCoin.symbol}>\r\n {<selectedCoin.icon />}\r\n <p>{selectedCoin.symbol}</p>\r\n </div>\r\n ))}\r\n </div> */}\r\n </div>\r\n )\r\n}\r\n\r\nexport default CoinDropdown\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ChainName } from '../../utils/constants'\r\nimport {\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetNetwork,\r\n selectTheme\r\n} from '../../store/selectors'\r\nimport {\r\n setOriginNetwork,\r\n setServiceFee,\r\n setTargetNetwork\r\n} from '../../store/optionSlice'\r\nimport useNetworkOptions from '../../hooks/useNetworkOptions'\r\nimport { ModeOptions } from '../../interface'\r\nimport { fetchWrapper } from '../../helpers/fetch-wrapper'\r\n\r\nconst NetworkDropdown = ({\r\n isOriginChain = true\r\n}: {\r\n isOriginChain?: boolean\r\n}) => {\r\n const [collapsed, setCollapsed] = useState(true)\r\n const [availableNetworks, setAvailableNetworks] = useState<Array<ChainName>>(\r\n []\r\n )\r\n const mode = useSelector(selectMode)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const { options: networkOptions } = useNetworkOptions()\r\n const selectedNetwork = useMemo(() => {\r\n const index = networkOptions.findIndex(\r\n (option) => option.id === (isOriginChain ? originNetwork : targetNetwork)\r\n )\r\n if (index >= 0) return networkOptions[index]\r\n return networkOptions[0]\r\n }, [originNetwork, targetNetwork, networkOptions])\r\n const networks = useMemo(() => {\r\n if (isOriginChain && mode === ModeOptions.bridge) {\r\n return networkOptions\r\n }\r\n\r\n return networkOptions.filter(\r\n (network) =>\r\n availableNetworks.findIndex((id: any) => id === network.id) >= 0\r\n )\r\n }, [networkOptions, isOriginChain, availableNetworks])\r\n const theme = useSelector(selectTheme)\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.bridge) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n if (isOriginChain) {\r\n dispatch(setTargetNetwork(networks.Chains[0]))\r\n }\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, originNetwork, mode, isOriginChain])\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.payment) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, mode])\r\n\r\n return (\r\n <div\r\n className={`network-dropdown ${theme} ${collapsed ? 'collapsed' : ''}`}\r\n onClick={() => setCollapsed((prev) => !prev)}\r\n >\r\n <div className='network-wrapper'>\r\n {<selectedNetwork.icon />}\r\n {selectedNetwork.label}\r\n </div>\r\n <div\r\n className={`network-menu custom-scrollbar ${theme} ${\r\n collapsed ? 'collapsed' : ''\r\n }`}\r\n >\r\n {networks.map((network) => (\r\n <div\r\n className='network-menu-item'\r\n key={network.label}\r\n onClick={async () => {\r\n if (isOriginChain) {\r\n dispatch(setOriginNetwork(network.id))\r\n } else {\r\n dispatch(setTargetNetwork(network.id))\r\n dispatch(setServiceFee(-1))\r\n }\r\n }}\r\n >\r\n {<network.icon />}\r\n <p>{network.label}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NetworkDropdown\r\n","export const formatterInt = new Intl.NumberFormat('en-US', {\r\n maximumFractionDigits: 0\r\n})\r\n\r\nexport const formatterFloat = new Intl.NumberFormat('en-US', {\r\n maximumFractionDigits: 3\r\n})\r\n","import React, { useMemo } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { formatterFloat } from '../../helpers/functions'\r\nimport useIsWalletReady from '../../hooks/useIsWalletReady'\r\nimport { ModeOptions } from '../../interface'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectFeeDeduct,\r\n selectMode,\r\n selectOriginNetwork,\r\n selectServiceFee,\r\n selectTargetAddress,\r\n selectTargetNetwork,\r\n selectTheme,\r\n selectTransactionOption\r\n} from '../../store/selectors'\r\nimport { networkOptions } from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\n\r\nconst ConfirmDetails = ({ isApproved }: { isApproved: boolean }) => {\r\n const feeDeduct = useSelector(selectFeeDeduct)\r\n const mode = useSelector(selectMode)\r\n const theme = useSelector(selectTheme)\r\n const amount = useSelector(selectAmount)\r\n const serviceFee = useSelector(selectServiceFee)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const targetAddress = useSelector(selectTargetAddress)\r\n const transactionOption = useSelector(selectTransactionOption)\r\n const { walletAddress } = useIsWalletReady()\r\n const originNetworkOption = useMemo(\r\n () => networkOptions.filter((network) => network.id === originNetwork)[0],\r\n [networkOptions, originNetwork]\r\n )\r\n const targetNetworkOption = useMemo(\r\n () =>\r\n networkOptions.filter(\r\n (network) =>\r\n network.id ===\r\n (mode === ModeOptions.payment\r\n ? transactionOption?.targetChain\r\n : targetNetwork)\r\n )[0],\r\n [networkOptions, originNetwork]\r\n )\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n\r\n return (\r\n <div className={`confirm-details ${theme}`}>\r\n <p>\r\n Step {isApproved ? '2' : '1'} of 2 \r\n {isApproved ? 'Submit trasaction' : 'Approval'}\r\n </p>\r\n <div className='detail-item'>\r\n <span className='label'>Source wallet:</span>\r\n <p>{getShortenedAddress(walletAddress || '')}</p>\r\n <span className='kima-card-network-label'>\r\n <originNetworkOption.icon />\r\n {originNetworkOption.label}\r\n </span>\r\n </div>\r\n <div className='detail-item'>\r\n <span className='label'>Amount:</span>\r\n <p>\r\n {formatterFloat.format(feeDeduct ? amount : amount + serviceFee)}{' '}\r\n {selectedCoin.symbol}\r\n </p>\r\n </div>\r\n <div className='detail-item'>\r\n <span className='label'>Target wallet:</span>\r\n <p>\r\n {getShortenedAddress(\r\n (mode === ModeOptions.payment\r\n ? transactionOption?.targetAddress\r\n : targetAddress) || ''\r\n )}\r\n </p>\r\n <span className='kima-card-network-label'>\r\n <targetNetworkOption.icon />\r\n {targetNetworkOption.label}\r\n </span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ConfirmDetails\r\n","import React from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useSelector } from 'react-redux'\r\nimport { setTargetAddress } from '../../store/optionSlice'\r\nimport { selectTargetAddress } from '../../store/selectors'\r\n\r\nconst AddressInput = () => {\r\n const dispatch = useDispatch()\r\n const targetAddress = useSelector(selectTargetAddress)\r\n\r\n return (\r\n <input\r\n className='kima-address-input'\r\n type='text'\r\n value={targetAddress}\r\n onChange={(e) => dispatch(setTargetAddress(e.target.value))}\r\n />\r\n )\r\n}\r\n\r\nexport default AddressInput\r\n","import React, { useEffect, useState } from 'react'\r\nimport { CheckIcon, CopyIcon } from '../../assets/icons'\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst CopyButton = ({ text }: Props) => {\r\n const [copyClicked, setCopyClicked] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!copyClicked) return\r\n\r\n setTimeout(() => {\r\n setCopyClicked(false)\r\n }, 2000)\r\n }, [copyClicked])\r\n\r\n return (\r\n <span\r\n className='copy-btn'\r\n onClick={() => {\r\n setCopyClicked(true)\r\n navigator.clipboard.writeText(text)\r\n }}\r\n >\r\n {copyClicked ? <CheckIcon fill='#979797' /> : <CopyIcon />}\r\n </span>\r\n )\r\n}\r\n\r\nexport default CopyButton\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { CheckIcon, WarningIcon } from '../../assets/icons'\r\nimport { Loading180Ring } from '../../assets/loading'\r\nimport { ThemeOptions, TransactionData } from '../../interface'\r\nimport { selectTheme } from '../../store/selectors'\r\nimport {\r\n ChainName,\r\n CHAIN_NAMES_TO_EXPLORER,\r\n CHAIN_NAMES_TO_STRING\r\n} from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\nimport CopyButton from './CopyButton'\r\nimport ExternalLink from './ExternalLink'\r\n\r\ninterface Props {\r\n step: number\r\n errorStep: number\r\n loadingStep: number\r\n data?: TransactionData\r\n}\r\n\r\nconst stepInfo = [\r\n {\r\n title: 'Initialize'\r\n },\r\n {\r\n title: 'Source Transfer'\r\n },\r\n {\r\n title: 'Validation'\r\n },\r\n {\r\n title: 'Target Transfer'\r\n },\r\n {\r\n title: 'Finalize'\r\n }\r\n]\r\n\r\nconst StepBox = ({ step, errorStep, loadingStep, data }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div className='kima-stepbox'>\r\n <div className='content-wrapper'>\r\n {stepInfo.map((item, index) => (\r\n <div key={item.title} className='step-item'>\r\n <div className='info-item'>\r\n {index === loadingStep ? (\r\n <Loading180Ring\r\n fill={theme === ThemeOptions.dark ? 'white' : '#5aa0db'}\r\n />\r\n ) : step >= index ? (\r\n index === errorStep ? (\r\n <WarningIcon />\r\n ) : (\r\n <CheckIcon />\r\n )\r\n ) : null}\r\n <p>{item.title}</p>\r\n </div>\r\n {index === 0 && data?.kimaTxHash ? (\r\n <div className='info-item'>\r\n <p>\r\n Kima TX ID:{' '}\r\n <ExternalLink\r\n // to={`https://explorer.kima.finance/transactions/${data?.kimaTxHash}`}\r\n to={`https://explorer.kima.finance/transfers`}\r\n >\r\n {getShortenedAddress(data?.kimaTxHash || '')}\r\n </ExternalLink>\r\n <CopyButton text={data?.kimaTxHash} />\r\n </p>\r\n </div>\r\n ) : null}\r\n {index === 1 && data?.tssPullHash ? (\r\n <div className='info-item'>\r\n <p>\r\n {\r\n CHAIN_NAMES_TO_STRING[\r\n data?.sourceChain || ChainName.ETHEREUM\r\n ]\r\n }{' '}\r\n TX ID:\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.sourceChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssPullHash}`}\r\n >\r\n {getShortenedAddress(data?.tssPullHash || '')}\r\n </ExternalLink>\r\n <CopyButton text={data?.tssPullHash || ''} />\r\n </p>\r\n </div>\r\n ) : null}\r\n {index === 3 && data?.tssReleaseHash ? (\r\n <div className='info-item'>\r\n <p>\r\n {\r\n CHAIN_NAMES_TO_STRING[\r\n data?.targetChain || ChainName.ETHEREUM\r\n ]\r\n }{' '}\r\n TX ID:\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.targetChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssReleaseHash}`}\r\n >\r\n {getShortenedAddress(data?.tssReleaseHash || '')}\r\n </ExternalLink>\r\n <CopyButton text={data?.tssReleaseHash || ''} />\r\n </p>\r\n </div>\r\n ) : null}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default StepBox\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon } from '../../assets/icons'\r\nimport { setHelpPopup } from '../../store/optionSlice'\r\nimport { selectHelpPopup, selectTheme } from '../../store/selectors'\r\n\r\nconst HelpPopup = () => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const helpPopup = useSelector(selectHelpPopup)\r\n\r\n return (\r\n <div\r\n className={`kima-modal help-popup ${theme} ${helpPopup ? 'open' : ''}`}\r\n >\r\n <div\r\n className='modal-overlay'\r\n onClick={() => {\r\n dispatch(setHelpPopup(false))\r\n }}\r\n />\r\n <div className='modal-content-container'>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>Help</h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => dispatch(setHelpPopup(false))}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='modal-content'>\r\n <p>\r\n The SDK enables dApp developers to process Kima transactions on\r\n behalf of their clients. It will include visual and API components\r\n that communicate with the Kima RPC nodes. The developers can pick\r\n and choose the right level of integration, based on their usage\r\n scenario.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default HelpPopup\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon } from '../../assets/icons'\r\nimport { TransactionData } from '../../interface'\r\nimport { setHashPopup } from '../../store/optionSlice'\r\nimport { selectHashPopup, selectTheme } from '../../store/selectors'\r\nimport { ChainName, CHAIN_NAMES_TO_EXPLORER } from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\nimport { ExternalLink } from '../reusable'\r\n\r\ninterface Props {\r\n data?: TransactionData\r\n}\r\n\r\nconst HashPopup = ({ data }: Props) => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const hashPopup = useSelector(selectHashPopup)\r\n\r\n return (\r\n <div\r\n className={`kima-modal hash-popup ${theme} ${hashPopup ? 'open' : ''}`}\r\n >\r\n <div\r\n className='modal-overlay'\r\n onClick={() => {\r\n dispatch(setHashPopup(false))\r\n }}\r\n />\r\n <div className='modal-content-container'>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>Transaction Hashes</h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => dispatch(setHashPopup(false))}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='modal-content'>\r\n <div className='hash-container'>\r\n <div className='hash-item'>\r\n <span>Kima tx:</span>\r\n <ExternalLink to='https://explorer.kima.finance/transactions/718ABEE14755C1ACA617607F9353A55013EF855B0EA6E92EFD31A2F50A362524'>\r\n 718A...2524\r\n </ExternalLink>\r\n </div>\r\n <div className='hash-item'>\r\n <span>Source tx:</span>\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.sourceChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssPullHash}`}\r\n >\r\n {getShortenedAddress(data?.tssPullHash || '')}\r\n </ExternalLink>\r\n </div>\r\n <div className='hash-item'>\r\n <span>Target tx:</span>\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.targetChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssReleaseHash}`}\r\n >\r\n {getShortenedAddress(data?.tssReleaseHash || '')}\r\n </ExternalLink>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default HashPopup\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon } from '../../assets/icons'\r\nimport { setConnectModal } from '../../store/optionSlice'\r\nimport {\r\n selectConnectModal,\r\n selectSolanaProvider,\r\n selectTheme\r\n} from '../../store/selectors'\r\n\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\nimport { PrimaryButton, SecondaryButton, WalletSelect } from '../reusable'\r\n\r\nconst WalletConnectModal = () => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const connectModal = useSelector(selectConnectModal)\r\n const selectedProvider = useSelector(selectSolanaProvider)\r\n const { select } = useWallet()\r\n\r\n const handleConnect = () => {\r\n select(selectedProvider)\r\n dispatch(setConnectModal(false))\r\n }\r\n\r\n return (\r\n <div\r\n className={`kima-modal wallet-connect ${theme} ${\r\n connectModal ? 'open' : ''\r\n }`}\r\n >\r\n <div className='modal-overlay' />\r\n <div className='modal-content-container'>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>Connect Wallet</h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => dispatch(setConnectModal(false))}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='modal-content'>\r\n <WalletSelect />\r\n </div>\r\n <div\r\n className='kima-card-footer'\r\n style={{ justifyContent: 'flex-end', marginTop: '2em' }}\r\n >\r\n <SecondaryButton\r\n clickHandler={() => dispatch(setConnectModal(false))}\r\n theme={theme}\r\n >\r\n Cancel\r\n </SecondaryButton>\r\n <PrimaryButton clickHandler={handleConnect}>Connect</PrimaryButton>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default WalletConnectModal\r\n","import React, { useEffect, useState } from 'react'\r\nimport AnimatedNumber from 'animated-number-react'\r\nimport { CrossIcon, FooterLogo, MinimizeIcon } from '../assets/icons'\r\nimport Progressbar from './reusable/Progressbar'\r\nimport { NetworkLabel, StepBox } from './reusable'\r\n// import Tooltip from './reusable/Tooltip'\r\nimport '../index.css'\r\nimport {\r\n DefaultProps,\r\n FontSizeOptions,\r\n ThemeOptions,\r\n TransactionData\r\n} from '../interface'\r\nimport { Provider } from 'react-redux'\r\nimport { store } from '../store'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport { COIN_LIST, TransactionStatus } from '../utils/constants'\r\nimport { formatterFloat, formatterInt } from '../helpers/functions'\r\nimport { useSelector } from 'react-redux'\r\nimport {\r\n selectCloseHandler,\r\n selectNodeProviderQuery,\r\n selectSuccessHandler,\r\n selectTxId\r\n} from '../store/selectors'\r\nimport { useDispatch } from 'react-redux'\r\nimport { initialize } from '../store/optionSlice'\r\nimport { HashPopup, HelpPopup } from './modals'\r\n\r\nexport const TransactionWidget = ({\r\n theme = ThemeOptions.light,\r\n fontSize = FontSizeOptions.medium\r\n}: DefaultProps) => {\r\n const [step, setStep] = useState(0)\r\n const [focus, setFocus] = useState(-1)\r\n const [errorStep, setErrorStep] = useState(-1)\r\n const [loadingStep, setLoadingStep] = useState(-1)\r\n const [minimized, setMinimized] = useState(false)\r\n const [percent, setPercent] = useState(0)\r\n const [data, setData] = useState<TransactionData>()\r\n const dispatch = useDispatch()\r\n const txId = useSelector(selectTxId)\r\n const closeHandler = useSelector(selectCloseHandler)\r\n const successHandler = useSelector(selectSuccessHandler)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || txId < 0) return\r\n const timerId = setInterval(async () => {\r\n // Monitor last transaction for now until transaction_data endpoint is ready\r\n try {\r\n const result: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/transaction_data/${txId}`\r\n )\r\n\r\n const data = result?.transactionData\r\n\r\n if (!data) return\r\n\r\n const status = data.status\r\n\r\n // Status of last transaction\r\n console.log(status)\r\n setData({\r\n sourceChain: data.originChain,\r\n targetChain: data.targetChain,\r\n tssPullHash: data.tssPullHash,\r\n tssReleaseHash: data.tssReleaseHash,\r\n amount: +data.amount,\r\n symbol: data.symbol,\r\n kimaTxHash: data.kimaTxHash\r\n })\r\n setErrorStep(-1)\r\n\r\n if (status === TransactionStatus.AVAILABLE) {\r\n setStep(1)\r\n setPercent(25)\r\n setLoadingStep(1)\r\n } else if (status === TransactionStatus.CONFIRMED) {\r\n setStep(2)\r\n setPercent(50)\r\n setLoadingStep(2)\r\n } else if (status.startsWith(TransactionStatus.UNAVAILABLE)) {\r\n setStep(1)\r\n setPercent(25)\r\n setErrorStep(1)\r\n setLoadingStep(-1)\r\n } else if (status === TransactionStatus.KEYSIGNED) {\r\n setStep(3)\r\n setPercent(75)\r\n setLoadingStep(3)\r\n } else if (status === TransactionStatus.PAID) {\r\n setStep(3)\r\n setPercent(90)\r\n setLoadingStep(3)\r\n } else if (status === TransactionStatus.FAILED) {\r\n setStep(3)\r\n setPercent(90)\r\n setErrorStep(3)\r\n setLoadingStep(-1)\r\n } else if (status === TransactionStatus.COMPLETED) {\r\n setStep(4)\r\n setPercent(100)\r\n clearInterval(timerId)\r\n setLoadingStep(-1)\r\n setTimeout(() => {\r\n successHandler({\r\n txId\r\n })\r\n }, 3000)\r\n }\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n }, 1000)\r\n\r\n return () => {\r\n clearInterval(timerId)\r\n }\r\n }, [nodeProviderQuery, txId])\r\n\r\n return (\r\n <Provider store={store}>\r\n <div\r\n className={`kima-card transaction-card ${theme} font-${fontSize} ${\r\n minimized ? 'minimized' : ''\r\n }`}\r\n >\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>\r\n Transferring {formatterFloat.format(data?.amount || 0)}{' '}\r\n {COIN_LIST[data?.symbol || 'USDK'].symbol}\r\n </h3>\r\n <AnimatedNumber\r\n component='p'\r\n value={percent}\r\n duration={1000}\r\n formatValue={(n: any) => `${formatterInt.format(n)}%`}\r\n />\r\n {/* <p>{percent}%</p> */}\r\n </div>\r\n\r\n {!minimized ? (\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => {\r\n setMinimized(true)\r\n }}\r\n >\r\n <MinimizeIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n {loadingStep < 0 ? (\r\n <button\r\n className='icon-button'\r\n onClick={() => {\r\n dispatch(initialize())\r\n closeHandler()\r\n }}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n ) : null}\r\n </div>\r\n ) : (\r\n <div className='control-buttons'>\r\n <div className='maximize' onClick={() => setMinimized(false)}>\r\n View\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n {data?.sourceChain && data?.targetChain && (\r\n <NetworkLabel\r\n sourceChain={data?.sourceChain}\r\n targetChain={data?.targetChain}\r\n hasError={errorStep >= 0}\r\n />\r\n )}\r\n </div>\r\n\r\n <div className='kima-card-content'>\r\n <Progressbar\r\n step={step}\r\n focus={focus}\r\n errorStep={errorStep}\r\n setFocus={setFocus}\r\n loadingStep={loadingStep}\r\n />\r\n {/* <Tooltip\r\n step={step}\r\n focus={focus}\r\n errorStep={errorStep}\r\n loadingStep={loadingStep}\r\n data={data}\r\n /> */}\r\n <StepBox\r\n step={step}\r\n errorStep={errorStep}\r\n loadingStep={loadingStep}\r\n data={data}\r\n />\r\n </div>\r\n\r\n <div className='kima-card-footer'>\r\n <FooterLogo fill={theme === 'light' ? 'black' : '#C5C5C5'} />\r\n </div>\r\n <HelpPopup />\r\n <HashPopup data={data} />\r\n </div>\r\n </Provider>\r\n )\r\n}\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectMode,\r\n selectTheme,\r\n selectTransactionOption\r\n} from '../../store/selectors'\r\nimport { CoinDropdown, WalletButton } from './'\r\nimport { setAmount } from '../../store/optionSlice'\r\nimport { ModeOptions } from '../../interface'\r\nimport AddressInput from './AddressInput'\r\nimport NetworkDropdown from './NetworkDropdown'\r\n\r\nconst SingleForm = () => {\r\n const dispatch = useDispatch()\r\n const mode = useSelector(selectMode)\r\n const theme = useSelector(selectTheme)\r\n const amount = useSelector(selectAmount)\r\n const transactionOption = useSelector(selectTransactionOption)\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n\r\n return (\r\n <div className='single-form'>\r\n <div className='form-item'>\r\n <span className='label'>Source Network</span>\r\n <NetworkDropdown />\r\n </div>\r\n <div className='form-item'>\r\n <span className='label'>Connect wallet:</span>\r\n <WalletButton />\r\n </div>\r\n {mode === ModeOptions.bridge && (\r\n <div className='form-item'>\r\n <span className='label'>Target Network:</span>\r\n <NetworkDropdown isOriginChain={false} />\r\n </div>\r\n )}\r\n {mode === ModeOptions.bridge && (\r\n <div className={`form-item ${theme}`}>\r\n <span className='label'>Target Address:</span>\r\n <AddressInput />\r\n </div>\r\n )}\r\n\r\n {mode === ModeOptions.bridge ? (\r\n <div className={`form-item ${theme}`}>\r\n <span className='label'>Amount:</span>\r\n <input\r\n type='number'\r\n value={amount || ''}\r\n onChange={(e) => {\r\n const _amount = +e.target.value\r\n dispatch(setAmount(parseFloat(_amount.toFixed(2))))\r\n }}\r\n />\r\n <CoinDropdown />\r\n </div>\r\n ) : (\r\n <div className={`form-item ${theme}`}>\r\n <span className='label'>Amount:</span>\r\n <div className={`amount-label ${theme}`}>\r\n <span>{transactionOption?.amount || ''}</span>\r\n <div className='coin-wrapper'>\r\n {<selectedCoin.icon />}\r\n {selectedCoin.symbol}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* {mode === ModeOptions.bridge && serviceFee ? (\r\n <CustomCheckbox\r\n text={`Deduct ${formatterFloat.format(serviceFee)} USDK fee`}\r\n checked={feeDeduct}\r\n setCheck={(value: boolean) => dispatch(setFeeDeduct(value))}\r\n />\r\n ) : null} */}\r\n </div>\r\n )\r\n}\r\n\r\nexport default SingleForm\r\n","import React from 'react'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectMode,\r\n selectTheme\r\n} from '../../store/selectors'\r\nimport { useSelector } from 'react-redux'\r\nimport { ModeOptions } from '../../interface'\r\nimport { setAmount } from '../../store/optionSlice'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nconst CoinSelect = () => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const mode = useSelector(selectMode)\r\n const amount = useSelector(selectAmount)\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n\r\n return (\r\n <div className={`coin-select`}>\r\n <p>Select Amount of Token for Funding</p>\r\n {/* <div className='coin-list-container'>\r\n {coinList.map((coin, index) => (\r\n <div\r\n className={`card-item ${theme} ${\r\n index === selectedCoin ? 'active' : ''\r\n }`}\r\n key={coin.symbol}\r\n onClick={() => setCoin(index)}\r\n >\r\n {coin.icon}\r\n <span>{coin.symbol}</span>\r\n </div>\r\n ))}\r\n </div> */}\r\n <div className={`amount-input ${theme}`}>\r\n <span>Amount:</span>\r\n <div className='input-wrapper'>\r\n <input\r\n type='number'\r\n value={amount || ''}\r\n readOnly={mode === ModeOptions.payment}\r\n onChange={(e) => {\r\n const _amount = +e.target.value\r\n dispatch(setAmount(parseFloat(_amount.toFixed(2))))\r\n }}\r\n />\r\n <div className='coin-label'>\r\n {<selectedCoin.icon />}\r\n <span>{selectedCoin.symbol}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CoinSelect\r\n","import { TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport { PublicKey, TransactionInstruction, SystemProgram, SYSVAR_RENT_PUBKEY } from '@solana/web3.js'\r\n\r\nexport function createAssociatedTokenAccountInstruction(\r\n payer: PublicKey,\r\n associatedToken: PublicKey,\r\n owner: PublicKey,\r\n mint: PublicKey,\r\n programId = TOKEN_PROGRAM_ID,\r\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\r\n): TransactionInstruction {\r\n const keys = [\r\n { pubkey: payer, isSigner: true, isWritable: true },\r\n { pubkey: associatedToken, isSigner: false, isWritable: true },\r\n { pubkey: owner, isSigner: false, isWritable: false },\r\n { pubkey: mint, isSigner: false, isWritable: false },\r\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\r\n { pubkey: programId, isSigner: false, isWritable: false },\r\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\r\n ]\r\n\r\n return new TransactionInstruction({\r\n keys,\r\n programId: associatedTokenProgramId,\r\n data: Buffer.alloc(0),\r\n })\r\n}","import { TOKEN_PROGRAM_ID, AccountLayout } from '@solana/spl-token'\r\nimport { Connection, PublicKey, Commitment } from '@solana/web3.js'\r\n\r\nexport enum AccountState {\r\n Uninitialized = 0,\r\n Initialized = 1,\r\n Frozen = 2,\r\n}\r\n\r\nexport async function getAccountInfo(\r\n connection: Connection,\r\n address: PublicKey,\r\n commitment?: Commitment,\r\n programId = TOKEN_PROGRAM_ID\r\n) {\r\n const info = await connection.getAccountInfo(address, commitment)\r\n if (!info) throw new Error('TokenAccountNotFoundError')\r\n if (!info.owner.equals(programId)) throw new Error('TokenInvalidAccountOwnerError')\r\n if (info.data.length != AccountLayout.span) throw new Error('TokenInvalidAccountSizeError')\r\n\r\n const rawAccount = AccountLayout.decode(Buffer.from(info.data))\r\n\r\n return {\r\n address,\r\n mint: rawAccount.mint,\r\n owner: rawAccount.owner,\r\n amount: rawAccount.amount,\r\n delegate: rawAccount.delegateOption ? rawAccount.delegate : null,\r\n delegatedAmount: rawAccount.delegatedAmount,\r\n isInitialized: rawAccount.state !== AccountState.Uninitialized,\r\n isFrozen: rawAccount.state === AccountState.Frozen,\r\n isNative: !!rawAccount.isNativeOption,\r\n rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null,\r\n closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null,\r\n }\r\n}","import { TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport { PublicKey } from '@solana/web3.js'\r\n\r\nexport async function getAssociatedTokenAddress(\r\n mint: PublicKey,\r\n owner: PublicKey,\r\n allowOwnerOffCurve = false,\r\n programId = TOKEN_PROGRAM_ID,\r\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\r\n): Promise<PublicKey> {\r\n if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) throw new Error('TokenOwnerOffCurveError')\r\n\r\n const [address] = await PublicKey.findProgramAddress(\r\n [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\r\n associatedTokenProgramId\r\n )\r\n\r\n return address\r\n}","import {\r\n TOKEN_PROGRAM_ID,\r\n ASSOCIATED_TOKEN_PROGRAM_ID\r\n} from '@solana/spl-token'\r\n// import { SignerWalletAdapterProps } from '@solana/wallet-adapter-base'\r\nimport { Connection, PublicKey, Commitment, Transaction } from '@solana/web3.js'\r\nimport { createAssociatedTokenAccountInstruction } from './createAssociatedTokenAccountInstruction'\r\nimport { getAccountInfo } from './getAccountInfo'\r\nimport { getAssociatedTokenAddress } from './getAssociatedTokenAddress'\r\n\r\nexport async function getOrCreateAssociatedTokenAccount(\r\n connection: Connection,\r\n payer: PublicKey,\r\n mint: PublicKey,\r\n owner: PublicKey,\r\n signTransaction: /*SignerWalletAdapterProps['signTransaction']*/ any,\r\n allowOwnerOffCurve = false,\r\n commitment?: Commitment,\r\n programId = TOKEN_PROGRAM_ID,\r\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\r\n) {\r\n const associatedToken = await getAssociatedTokenAddress(\r\n mint,\r\n owner,\r\n allowOwnerOffCurve,\r\n programId,\r\n associatedTokenProgramId\r\n )\r\n\r\n // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent.\r\n // Sadly we can't do this atomically.\r\n let account\r\n try {\r\n account = await getAccountInfo(\r\n connection,\r\n associatedToken,\r\n commitment,\r\n programId\r\n )\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n } catch (error) {\r\n // TokenAccountNotFoundError can be possible if the associated address has already received some lamports,\r\n // becoming a system account. Assuming program derived addressing is safe, this is the only case for the\r\n // TokenInvalidAccountOwnerError in this code path.\r\n const err = error as { message: string }\r\n if (\r\n err.message === 'TokenAccountNotFoundError' ||\r\n err.message === 'TokenInvalidAccountOwnerError'\r\n ) {\r\n // As this isn't atomic, it's possible others can create associated accounts meanwhile.\r\n try {\r\n const transaction = new Transaction().add(\r\n createAssociatedTokenAccountInstruction(\r\n payer,\r\n associatedToken,\r\n owner,\r\n mint,\r\n programId,\r\n associatedTokenProgramId\r\n )\r\n )\r\n\r\n const blockHash = await connection.getRecentBlockhash()\r\n transaction.feePayer = await payer\r\n transaction.recentBlockhash = await blockHash.blockhash\r\n const signed = await signTransaction(transaction)\r\n\r\n const signature = await connection.sendRawTransaction(\r\n signed.serialize()\r\n )\r\n\r\n await connection.confirmTransaction(signature)\r\n } catch (error) {\r\n // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected\r\n // instruction error if the associated account exists already.\r\n }\r\n\r\n // Now this should always succeed\r\n account = await getAccountInfo(\r\n connection,\r\n associatedToken,\r\n commitment,\r\n programId\r\n )\r\n } else {\r\n throw error\r\n }\r\n }\r\n\r\n if (!account.mint.equals(mint)) throw Error('TokenInvalidMintError')\r\n if (!account.owner.equals(owner)) throw new Error('TokenInvalidOwnerError')\r\n\r\n return account\r\n}\r\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","import { TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport {\r\n AccountMeta,\r\n PublicKey,\r\n Signer,\r\n TransactionInstruction\r\n} from '@solana/web3.js'\r\nimport BN from 'bn.js'\r\n\r\nconst BufferLayout = require('buffer-layout')\r\n\r\nexport enum TokenInstruction {\r\n InitializeMint = 0,\r\n InitializeAccount = 1,\r\n InitializeMultisig = 2,\r\n Transfer = 3,\r\n Approve = 4,\r\n Revoke = 5,\r\n SetAuthority = 6,\r\n MintTo = 7,\r\n Burn = 8,\r\n CloseAccount = 9,\r\n FreezeAccount = 10,\r\n ThawAccount = 11,\r\n TransferChecked = 12,\r\n ApproveChecked = 13,\r\n MintToChecked = 14,\r\n BurnChecked = 15,\r\n InitializeAccount2 = 16,\r\n SyncNative = 17,\r\n InitializeAccount3 = 18,\r\n InitializeMultisig2 = 19,\r\n InitializeMint2 = 20\r\n}\r\n\r\n/**\r\n * Construct a Transfer instruction\r\n *\r\n * @param source Source account\r\n * @param destination Destination account\r\n * @param owner Owner of the source account\r\n * @param amount Number of tokens to transfer\r\n * @param multiSigners Signing accounts if `owner` is a multisig\r\n * @param programId SPL Token program account\r\n *\r\n * @return Instruction to add to a transaction\r\n */\r\nexport function createTransferInstruction(\r\n source: PublicKey,\r\n destination: PublicKey,\r\n owner: PublicKey,\r\n amount: number,\r\n multiSigners: Signer[] = [],\r\n programId = TOKEN_PROGRAM_ID\r\n): TransactionInstruction {\r\n const dataLayout = BufferLayout.struct([\r\n BufferLayout.u8('instruction'),\r\n BufferLayout.blob(8, 'amount')\r\n ])\r\n\r\n const keys = addSigners(\r\n [\r\n { pubkey: source, isSigner: false, isWritable: true },\r\n { pubkey: destination, isSigner: false, isWritable: true }\r\n ],\r\n owner,\r\n multiSigners\r\n )\r\n\r\n const data = Buffer.alloc(dataLayout.span)\r\n dataLayout.encode(\r\n {\r\n instruction: TokenInstruction.Transfer,\r\n amount: new TokenAmount(amount).toBuffer()\r\n },\r\n data\r\n )\r\n\r\n return new TransactionInstruction({ keys, programId, data })\r\n}\r\n\r\nexport function createApproveTransferInstruction(\r\n source: PublicKey,\r\n destination: PublicKey,\r\n owner: PublicKey,\r\n amount: number,\r\n multiSigners: Signer[] = [],\r\n programId = TOKEN_PROGRAM_ID\r\n): TransactionInstruction {\r\n const dataLayout = BufferLayout.struct([\r\n BufferLayout.u8('instruction'),\r\n BufferLayout.blob(8, 'amount')\r\n ])\r\n\r\n const keys = addSigners(\r\n [\r\n { pubkey: source, isSigner: false, isWritable: true },\r\n { pubkey: destination, isSigner: false, isWritable: true }\r\n ],\r\n owner,\r\n multiSigners\r\n )\r\n\r\n const data = Buffer.alloc(dataLayout.span)\r\n dataLayout.encode(\r\n {\r\n instruction: TokenInstruction.Approve,\r\n amount: new TokenAmount(amount).toBuffer()\r\n },\r\n data\r\n )\r\n\r\n return new TransactionInstruction({ keys, programId, data })\r\n}\r\n\r\nexport function addSigners(\r\n keys: AccountMeta[],\r\n ownerOrAuthority: PublicKey,\r\n multiSigners: Signer[]\r\n): AccountMeta[] {\r\n if (multiSigners.length) {\r\n keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false })\r\n for (const signer of multiSigners) {\r\n keys.push({ pubkey: signer.publicKey, isSigner: true, isWritable: false })\r\n }\r\n } else {\r\n keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false })\r\n }\r\n return keys\r\n}\r\n\r\nclass TokenAmount extends BN {\r\n /**\r\n * Convert to Buffer representation\r\n */\r\n toBuffer(): Buffer {\r\n const a = super.toArray().reverse()\r\n const b = Buffer.from(a)\r\n if (b.length === 8) {\r\n return b\r\n }\r\n\r\n if (b.length >= 8) {\r\n throw new Error('TokenAmount too large')\r\n }\r\n\r\n const zeroPad = Buffer.alloc(8)\r\n b.copy(zeroPad)\r\n return zeroPad\r\n }\r\n\r\n /**\r\n * Construct a TokenAmount from Buffer representation\r\n */\r\n // static fromBuffer(buffer: Buffer): TokenAmount {\r\n // if (buffer.length !== 8) {\r\n // throw new Error(`Invalid buffer length: ${buffer.length}`)\r\n // }\r\n\r\n // return new BN(\r\n // [...buffer]\r\n // .reverse()\r\n // .map((i) => `00${i.toString(16)}`.slice(-2))\r\n // .join(''),\r\n // 16\r\n // )\r\n // }\r\n}\r\n","import { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Contract } from '@ethersproject/contracts'\r\nimport { formatUnits, parseUnits } from '@ethersproject/units'\r\nimport {\r\n useConnection,\r\n useWallet as useSolanaWallet\r\n} from '@solana/wallet-adapter-react'\r\nimport { useEthereumProvider } from '../contexts/EthereumProviderContext'\r\nimport {\r\n ChainName,\r\n CHAIN_IDS_TO_NAMES,\r\n CHAIN_NAMES_TO_IDS,\r\n COIN_LIST,\r\n isEVMChain\r\n} from '../utils/constants'\r\nimport ERC20ABI from '../utils/ethereum/erc20ABI.json'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectErrorHandler,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectServiceFee\r\n} from '../store/selectors'\r\nimport { setApproving } from '../store/optionSlice'\r\nimport { getOrCreateAssociatedTokenAccount } from '../utils/solana/getOrCreateAssociatedTokenAccount'\r\nimport { PublicKey, Transaction } from '@solana/web3.js'\r\n// import { SignerWalletAdapterProps } from '@solana/wallet-adapter-base'\r\nimport { TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport { createApproveTransferInstruction } from '../utils/solana/createTransferInstruction'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\n\r\ntype ParsedAccountData = {\r\n /** Name of the program that owns this account */\r\n program: string\r\n /** Parsed account data */\r\n parsed: any\r\n /** Space used by account data */\r\n space: number\r\n}\r\n\r\nexport default function useAllowance() {\r\n const dispatch = useDispatch()\r\n const [allowance, setAllowance] = useState<number>(0)\r\n const [decimals, setDecimals] = useState<number | null>(null)\r\n const { signerAddress, signer, chainId: evmChainId } = useEthereumProvider()\r\n const selectedNetwork = useSelector(selectOriginNetwork)\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const sourceChain = useMemo(() => {\r\n if (selectedNetwork === ChainName.SOLANA) return selectedNetwork\r\n if (CHAIN_NAMES_TO_IDS[selectedNetwork] !== evmChainId) {\r\n return CHAIN_IDS_TO_NAMES[evmChainId as number]\r\n }\r\n\r\n return selectedNetwork\r\n }, [selectedNetwork, evmChainId])\r\n const amount = useSelector(selectAmount)\r\n const serviceFee = useSelector(selectServiceFee)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const { connection } = useConnection()\r\n const { publicKey, signTransaction } = useSolanaWallet()\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n const tokenAddress = useMemo(() => {\r\n return selectedCoin.address[sourceChain]\r\n }, [selectedCoin, sourceChain])\r\n const [targetAddress, setTargetAddress] = useState<string>()\r\n const isApproved = useMemo(() => {\r\n return allowance >= amount + serviceFee\r\n }, [allowance, amount, serviceFee])\r\n\r\n const updatePoolAddress = async () => {\r\n try {\r\n // REMOVE test code\r\n if (sourceChain === ChainName.SOLANA) {\r\n setTargetAddress('8ymXJ6RH9k8qSf1xsvxSWgzPB9RYgUuHPDgonkFzUEhT')\r\n return\r\n }\r\n\r\n const result: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/tss_pubkey`\r\n )\r\n if (result?.tssPubkey?.length < 1) {\r\n return\r\n }\r\n setTargetAddress(\r\n sourceChain === ChainName.SOLANA\r\n ? result.tssPubkey[0].ebdsa\r\n : result.tssPubkey[0].ecdsa\r\n )\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery) return\r\n updatePoolAddress()\r\n }, [nodeProviderQuery, sourceChain])\r\n\r\n useEffect(() => {\r\n ;(async () => {\r\n try {\r\n if (\r\n !isEVMChain(sourceChain) &&\r\n publicKey &&\r\n tokenAddress &&\r\n connection\r\n ) {\r\n const mint = new PublicKey(tokenAddress)\r\n const fromTokenAccount = await getOrCreateAssociatedTokenAccount(\r\n connection,\r\n publicKey as PublicKey,\r\n mint,\r\n publicKey as PublicKey,\r\n signTransaction /* as SignerWalletAdapterProps['signTransaction']*/\r\n )\r\n\r\n const accountInfo = await connection.getParsedAccountInfo(\r\n fromTokenAccount.address\r\n )\r\n console.log('solana token account: ', accountInfo)\r\n\r\n setDecimals(COIN_LIST['USDK'].decimals)\r\n const parsedAccountInfo = accountInfo?.value\r\n ?.data as ParsedAccountData\r\n\r\n setAllowance(\r\n parsedAccountInfo.parsed?.info?.delegate === targetAddress\r\n ? parsedAccountInfo.parsed?.info?.delegatedAmount?.uiAmount\r\n : 0\r\n )\r\n return\r\n }\r\n if (!tokenAddress || !targetAddress || !signer || !signerAddress) return\r\n\r\n const erc20Contract = new Contract(tokenAddress, ERC20ABI.abi, signer)\r\n const decimals = await erc20Contract.decimals()\r\n const userAllowance = await erc20Contract.allowance(\r\n signerAddress,\r\n targetAddress\r\n )\r\n\r\n setDecimals(+decimals)\r\n setAllowance(+formatUnits(userAllowance, decimals))\r\n } catch (error) {\r\n errorHandler(error)\r\n }\r\n })()\r\n }, [signerAddress, tokenAddress, targetAddress, sourceChain, publicKey])\r\n\r\n const approve = useCallback(async () => {\r\n if (isEVMChain(sourceChain)) {\r\n if (!decimals || !tokenAddress || !signer || !targetAddress) return\r\n\r\n try {\r\n const erc20Contract = new Contract(tokenAddress, ERC20ABI.abi, signer)\r\n\r\n dispatch(setApproving(true))\r\n const approve = await erc20Contract.approve(\r\n targetAddress,\r\n parseUnits((amount + serviceFee).toString(), decimals)\r\n )\r\n\r\n await approve.wait()\r\n dispatch(setApproving(false))\r\n setAllowance(amount + serviceFee)\r\n } catch (error) {\r\n errorHandler(error)\r\n dispatch(setApproving(false))\r\n }\r\n\r\n return\r\n }\r\n\r\n if (!signTransaction) return\r\n\r\n try {\r\n dispatch(setApproving(true))\r\n\r\n const mint = new PublicKey(tokenAddress)\r\n const toPublicKey = new PublicKey(targetAddress as string)\r\n const fromTokenAccount = await getOrCreateAssociatedTokenAccount(\r\n connection,\r\n publicKey as PublicKey,\r\n mint,\r\n publicKey as PublicKey,\r\n signTransaction /* as SignerWalletAdapterProps['signTransaction']*/\r\n )\r\n\r\n const transaction = new Transaction().add(\r\n createApproveTransferInstruction(\r\n fromTokenAccount.address, // source\r\n toPublicKey, // dest\r\n publicKey as PublicKey,\r\n (amount + serviceFee) * Math.pow(10, COIN_LIST['USDK'].decimals), // amount * LAMPORTS_PER_SOL,\r\n [],\r\n TOKEN_PROGRAM_ID\r\n )\r\n )\r\n\r\n const blockHash = await connection.getLatestBlockhash()\r\n transaction.feePayer = publicKey as PublicKey\r\n transaction.recentBlockhash = await blockHash.blockhash\r\n const signed = await signTransaction(transaction)\r\n\r\n await connection.sendRawTransaction(signed.serialize())\r\n setAllowance(amount + serviceFee)\r\n dispatch(setApproving(false))\r\n } catch (e) {\r\n errorHandler(e)\r\n dispatch(setApproving(false))\r\n }\r\n }, [\r\n decimals,\r\n tokenAddress,\r\n signer,\r\n amount,\r\n targetAddress,\r\n signTransaction,\r\n serviceFee\r\n ])\r\n\r\n return useMemo(\r\n () => ({\r\n isApproved,\r\n approve\r\n }),\r\n [isApproved, approve]\r\n )\r\n}\r\n","import { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport { ModeOptions } from '../interface'\r\nimport {\r\n selectAmount,\r\n selectConfirming,\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetAddress,\r\n selectTargetNetwork,\r\n selectTransactionOption\r\n} from '../store/selectors'\r\nimport { ChainName, CHAIN_NAMES_TO_GECKO_ID } from '../utils/constants'\r\nimport useIsWalletReady from './useIsWalletReady'\r\n\r\nasync function getPrice(sourceChain: string, targetChain: string) {\r\n try {\r\n const res = await fetch(\r\n `https://api.coingecko.com/api/v3/simple/price?ids=${CHAIN_NAMES_TO_GECKO_ID[sourceChain]},${CHAIN_NAMES_TO_GECKO_ID[targetChain]}&vs_currencies=usd`\r\n )\r\n\r\n const price = await res.json()\r\n return Object.keys(price).length\r\n ? [\r\n price[CHAIN_NAMES_TO_GECKO_ID[sourceChain]].usd,\r\n price[CHAIN_NAMES_TO_GECKO_ID[targetChain]].usd\r\n ]\r\n : [0, 0]\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n\r\n return [0, 0]\r\n}\r\n\r\nasync function getFeeInUSD(\r\n sourceChain: string,\r\n targetChain: string,\r\n gasFee: any\r\n) {\r\n const max_gas = 50000\r\n const [sourceTokenPrice, targetTokenPrice] = await getPrice(\r\n sourceChain,\r\n targetChain\r\n )\r\n let sourceFee, targetFee\r\n\r\n if (sourceChain === ChainName.SOLANA) {\r\n sourceFee = +gasFee[sourceChain] * +sourceTokenPrice\r\n } else\r\n sourceFee = gasFee[sourceChain]\r\n ? (+gasFee[sourceChain] * max_gas * +sourceTokenPrice) / 1e9\r\n : 0\r\n\r\n if (targetChain === ChainName.SOLANA) {\r\n targetFee = +gasFee[targetChain] * +targetTokenPrice\r\n } else\r\n targetFee = gasFee[targetChain]\r\n ? (+gasFee[targetChain] * max_gas * +targetTokenPrice) / 1e9\r\n : 0\r\n\r\n return [isNaN(sourceFee) ? 0 : sourceFee, isNaN(targetFee) ? 0 : targetFee]\r\n}\r\n\r\nexport default function useServiceFee() {\r\n const { walletAddress, isReady } = useIsWalletReady()\r\n const [serviceFee, setServiceFee] = useState<number>(0)\r\n const mode = useSelector(selectMode)\r\n const amount_ = useSelector(selectAmount)\r\n const isConfirming = useSelector(selectConfirming)\r\n const sourceChain = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const targetAddress_ = useSelector(selectTargetAddress)\r\n const transactionOption = useSelector(selectTransactionOption)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const targetChain = useMemo(\r\n () =>\r\n mode === ModeOptions.payment\r\n ? transactionOption?.targetChain || ''\r\n : targetNetwork,\r\n [transactionOption, mode, targetNetwork]\r\n )\r\n const targetAddress = useMemo(\r\n () =>\r\n mode === ModeOptions.payment\r\n ? transactionOption?.targetAddress || ''\r\n : targetAddress_,\r\n [transactionOption, mode, targetAddress_]\r\n )\r\n const amount = useMemo(\r\n () => (mode === ModeOptions.payment ? transactionOption?.amount : amount_),\r\n [transactionOption, mode, amount_]\r\n )\r\n\r\n const getServiceFee = async () => {\r\n if (\r\n !sourceChain ||\r\n !targetChain ||\r\n !isReady ||\r\n !walletAddress ||\r\n !targetAddress ||\r\n !nodeProviderQuery ||\r\n !amount\r\n )\r\n return\r\n\r\n let gasFee: any = {}\r\n\r\n try {\r\n const gasFeeData: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/gas_fee`\r\n )\r\n\r\n gasFeeData.gasFee.forEach((data: any) => {\r\n gasFee[data.chainId] = data.fee\r\n })\r\n\r\n const estimation: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/estimate_transfer/${sourceChain}/${walletAddress}/${targetChain}/${targetAddress}/${amount}`\r\n )\r\n\r\n const [originFee, targetFee] = await getFeeInUSD(\r\n sourceChain,\r\n targetChain,\r\n gasFee\r\n )\r\n let fee =\r\n parseFloat(estimation.estimateTransfer.TakerPenalty) +\r\n parseFloat(estimation.estimateTransfer.MakerPenalty) -\r\n parseFloat(estimation.estimateTransfer.TakerBounty) -\r\n parseFloat(estimation.estimateTransfer.MakerBounty) +\r\n parseFloat(estimation.estimateTransfer.NetworkFee) +\r\n originFee +\r\n targetFee\r\n\r\n fee = fee < 0 ? 0 : fee\r\n setServiceFee(parseFloat(fee.toFixed(2)))\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isConfirming) return\r\n getServiceFee()\r\n const timerId = setInterval(() => {\r\n getServiceFee()\r\n }, 20 * 1000)\r\n\r\n return () => {\r\n clearInterval(timerId)\r\n }\r\n\r\n // eslint-disable-next-line\r\n }, [\r\n sourceChain,\r\n targetChain,\r\n isReady,\r\n walletAddress,\r\n isConfirming,\r\n targetAddress,\r\n nodeProviderQuery,\r\n amount\r\n ])\r\n\r\n return useMemo(\r\n () => ({\r\n serviceFee\r\n }),\r\n [serviceFee]\r\n )\r\n}\r\n","import React from 'react'\r\nimport { selectTheme } from '../../store/selectors'\r\nimport { useSelector } from 'react-redux'\r\nimport AddressInput from './AddressInput'\r\n\r\nconst AddressInputWizard = () => {\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div className={`coin-select`}>\r\n <p>Select Target Address for Funding</p>\r\n\r\n <div className={`address-input ${theme}`}>\r\n <span>Target Address:</span>\r\n <AddressInput />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default AddressInputWizard\r\n","import { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport {\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetNetwork\r\n} from '../store/selectors'\r\nimport { COIN_LIST } from '../utils/constants'\r\n\r\nexport default function useCurrencyOptions() {\r\n const [options, setOptions] = useState(COIN_LIST['USDK'])\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || !originNetwork || !targetNetwork) return\r\n ;(async function () {\r\n try {\r\n const coins: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/getCurrencies/${originNetwork}/${targetNetwork}`\r\n )\r\n\r\n setOptions(\r\n COIN_LIST[coins.Currencies?.length ? coins.Currencies[0] : 'USDK']\r\n )\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, originNetwork, targetNetwork])\r\n\r\n return useMemo(\r\n () => ({\r\n options\r\n }),\r\n [options]\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon, FooterLogo } from '../assets/icons'\r\nimport {\r\n ConfirmDetails,\r\n ExternalLink,\r\n NetworkSelect,\r\n PrimaryButton,\r\n SecondaryButton,\r\n WalletButton\r\n} from './reusable'\r\nimport {\r\n DefaultProps,\r\n FontSizeOptions,\r\n ModeOptions,\r\n ThemeOptions,\r\n TitleOption\r\n} from '../interface'\r\nimport SingleForm from './reusable/SingleForm'\r\nimport CoinSelect from './reusable/CoinSelect'\r\n\r\n// store\r\nimport {\r\n initialize,\r\n setConfirming,\r\n setCurrencyOptions,\r\n setServiceFee,\r\n setSubmitted,\r\n setSubmitting,\r\n setTheme,\r\n setTxId\r\n} from '../store/optionSlice'\r\nimport '../index.css'\r\nimport {\r\n selectAmount,\r\n selectApproving,\r\n selectBackendUrl,\r\n selectCloseHandler,\r\n selectErrorHandler,\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectSubmitting,\r\n selectTargetAddress,\r\n selectTargetNetwork\r\n} from '../store/selectors'\r\nimport useIsWalletReady from '../hooks/useIsWalletReady'\r\nimport useAllowance from '../hooks/useAllowance'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport useServiceFee from '../hooks/useServiceFee'\r\nimport AddressInputWizard from './reusable/AddressInputWizard'\r\nimport { HelpPopup, WalletConnectModal } from './modals'\r\nimport useCurrencyOptions from '../hooks/useCurrencyOptions'\r\nimport { ChainName, CHAIN_NAMES_TO_STRING } from '../utils/constants'\r\n\r\ninterface Props extends DefaultProps {\r\n titleOption?: TitleOption\r\n}\r\n\r\nexport const TransferWidget = ({\r\n theme = ThemeOptions.light,\r\n fontSize = FontSizeOptions.medium,\r\n titleOption\r\n}: Props) => {\r\n const dispatch = useDispatch()\r\n\r\n // State variables for UI\r\n const [isWizard, setWizard] = useState(false)\r\n const [formStep, setFormStep] = useState(0)\r\n const [wizardStep, setWizardStep] = useState(0)\r\n\r\n // Hooks for wallet connection, allowance\r\n const { walletAddress, isReady } = useIsWalletReady()\r\n const { isApproved, approve } = useAllowance()\r\n const { serviceFee: fee } = useServiceFee()\r\n\r\n // Redux variables\r\n const mode = useSelector(selectMode)\r\n const amount = useSelector(selectAmount)\r\n const sourceChain = useSelector(selectOriginNetwork)\r\n const targetAddress = useSelector(selectTargetAddress)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const isApproving = useSelector(selectApproving)\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const closeHandler = useSelector(selectCloseHandler)\r\n const isSubmitting = useSelector(selectSubmitting)\r\n const { options: selectedCoin } = useCurrencyOptions()\r\n const backendUrl = useSelector(selectBackendUrl)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery) return\r\n ;(async function () {\r\n const res: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/pool_balance`\r\n )\r\n\r\n console.table(\r\n res.poolBalance.map((item: any) => ({\r\n chain: CHAIN_NAMES_TO_STRING[item.chainName],\r\n balance: +item.balance\r\n }))\r\n )\r\n })()\r\n }, [nodeProviderQuery])\r\n\r\n useEffect(() => {\r\n dispatch(setCurrencyOptions(selectedCoin))\r\n }, [selectedCoin])\r\n\r\n useEffect(() => {\r\n if (!isReady) {\r\n if (formStep > 0) setFormStep(0)\r\n if (wizardStep > 0) setWizardStep(1)\r\n }\r\n }, [isReady, wizardStep, formStep])\r\n\r\n useEffect(() => {\r\n dispatch(setServiceFee(fee))\r\n }, [fee])\r\n\r\n const checkPoolBalance = async () => {\r\n const res: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/pool_balance`\r\n )\r\n\r\n const poolBalance = res.poolBalance\r\n for (let i = 0; i < poolBalance.length; i++) {\r\n if (poolBalance[i].chainName === targetNetwork) {\r\n if (+poolBalance[i].balance >= amount + fee) {\r\n return true\r\n }\r\n\r\n const symbol =\r\n targetNetwork === ChainName.FUSE || targetNetwork === ChainName.CELO\r\n ? 'G$'\r\n : 'USDK'\r\n console.log(\r\n `Tried to transfer ${amount} ${symbol}, but ${\r\n CHAIN_NAMES_TO_STRING[targetNetwork]\r\n } pool has only ${+poolBalance[i].balance} ${symbol}`\r\n )\r\n return false\r\n }\r\n }\r\n console.log(`${CHAIN_NAMES_TO_STRING[targetNetwork]} pool error`)\r\n return false\r\n }\r\n\r\n const handleSubmit = async () => {\r\n if (!isApproved) {\r\n approve()\r\n return\r\n }\r\n\r\n try {\r\n dispatch(setSubmitting(true))\r\n\r\n if (!(await checkPoolBalance())) {\r\n dispatch(setSubmitting(false))\r\n return\r\n }\r\n const params = JSON.stringify({\r\n originAddress: walletAddress,\r\n originChain: sourceChain,\r\n targetAddress: targetAddress,\r\n targetChain: targetNetwork,\r\n symbol: selectedCoin.label,\r\n amount: amount,\r\n fee: fee\r\n })\r\n\r\n console.log(params)\r\n await fetchWrapper.post(`${backendUrl}/auth`, params)\r\n const result: any = await fetchWrapper.post(\r\n `${backendUrl}/submit`,\r\n params\r\n )\r\n\r\n console.log(result)\r\n\r\n if (result?.code !== 0) {\r\n errorHandler(result)\r\n dispatch(setSubmitting(false))\r\n return\r\n }\r\n\r\n let txId = -1\r\n\r\n for (const event of result.events) {\r\n if (event.type === 'transaction_requested') {\r\n for (const attr of event.attributes) {\r\n if (attr.key === 'txId') {\r\n txId = attr.value\r\n }\r\n }\r\n }\r\n }\r\n\r\n console.log(txId)\r\n dispatch(setTxId(txId))\r\n dispatch(setSubmitted(true))\r\n dispatch(setSubmitting(false))\r\n } catch (e) {\r\n errorHandler(e)\r\n dispatch(setSubmitting(false))\r\n console.log('rpc disconnected', e)\r\n }\r\n }\r\n\r\n const onNext = () => {\r\n if (isWizard && wizardStep < 5) {\r\n if (wizardStep === 1 && !isReady) return\r\n if (wizardStep === 3) {\r\n if (targetAddress) {\r\n setWizardStep(4)\r\n }\r\n return\r\n }\r\n if (wizardStep === 4) {\r\n if (fee >= 0 && amount > 0) {\r\n setWizardStep(5)\r\n }\r\n return\r\n }\r\n\r\n if (mode === ModeOptions.payment && wizardStep === 1 && fee >= 0) {\r\n dispatch(setConfirming(true))\r\n setWizardStep(5)\r\n } else setWizardStep((step) => step + 1)\r\n }\r\n\r\n if (!isWizard && !formStep) {\r\n if (isReady) {\r\n if (\r\n (fee >= 0 && mode === ModeOptions.payment) ||\r\n (fee >= 0 && targetAddress && amount > 0)\r\n ) {\r\n dispatch(setConfirming(true))\r\n setFormStep(1)\r\n }\r\n return\r\n }\r\n }\r\n\r\n if ((isWizard && wizardStep === 5) || (!isWizard && formStep > 0)) {\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const onBack = () => {\r\n if (isApproving || isSubmitting) return\r\n if (isWizard && wizardStep > 0) {\r\n if (mode === ModeOptions.payment && wizardStep === 5) setWizardStep(1)\r\n else setWizardStep((step) => step - 1)\r\n dispatch(setConfirming(false))\r\n }\r\n\r\n if (!isWizard && formStep > 0) {\r\n setFormStep(0)\r\n dispatch(setConfirming(false))\r\n }\r\n\r\n if ((isWizard && wizardStep === 0) || (!isWizard && formStep === 0)) {\r\n closeHandler()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(setTheme(theme))\r\n }, [theme])\r\n\r\n return (\r\n <div className={`kima-card ${theme} font-${fontSize}`}>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>\r\n {(isWizard && wizardStep === 3) || (!isWizard && formStep > 0)\r\n ? titleOption?.confirmTitle ?? 'Transfer Details'\r\n : titleOption?.initialTitle ?? 'New Transfer'}\r\n </h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <ExternalLink to='https://docs.kima.finance/demo'>\r\n <div className='menu-button'>I need help</div>\r\n </ExternalLink>\r\n <button\r\n className='icon-button'\r\n onClick={() => {\r\n dispatch(initialize())\r\n closeHandler()\r\n }}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className='kima-card-content'>\r\n {isWizard ? (\r\n wizardStep === 0 ? (\r\n <NetworkSelect />\r\n ) : wizardStep === 1 ? (\r\n <div className='connect-wallet-step'>\r\n <p>Connect your wallet</p>\r\n <WalletButton errorBelow={true} />\r\n </div>\r\n ) : wizardStep === 2 ? (\r\n <NetworkSelect isOriginChain={false} />\r\n ) : wizardStep === 3 ? (\r\n <AddressInputWizard />\r\n ) : wizardStep === 4 ? (\r\n <CoinSelect />\r\n ) : (\r\n <ConfirmDetails isApproved={isApproved} />\r\n )\r\n ) : formStep === 0 ? (\r\n <SingleForm />\r\n ) : (\r\n <ConfirmDetails isApproved={isApproved} />\r\n )}\r\n </div>\r\n\r\n <div className='kima-card-footer'>\r\n <FooterLogo fill={theme === 'light' ? 'black' : '#C5C5C5'} />\r\n <SecondaryButton\r\n clickHandler={() => {\r\n setWizard((prev) => !prev)\r\n }}\r\n theme={theme}\r\n style={{ style: { width: '12em', marginLeft: 'auto' } }}\r\n >\r\n Switch to {isWizard ? 'Form' : 'Wizard'}\r\n </SecondaryButton>\r\n <SecondaryButton clickHandler={onBack} theme={theme}>\r\n {(isWizard && wizardStep > 0) || (!isWizard && formStep > 0)\r\n ? 'Back'\r\n : 'Cancel'}\r\n </SecondaryButton>\r\n <PrimaryButton\r\n clickHandler={onNext}\r\n isLoading={isApproving || isSubmitting}\r\n >\r\n {(isWizard && wizardStep === 5) || (!isWizard && formStep === 1)\r\n ? isApproved\r\n ? isSubmitting\r\n ? 'Submitting...'\r\n : 'Submit'\r\n : isApproving\r\n ? 'Approving...'\r\n : 'Approve'\r\n : 'Next'}\r\n </PrimaryButton>\r\n </div>\r\n <WalletConnectModal />\r\n <HelpPopup />\r\n </div>\r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n DefaultProps,\r\n TransactionOption,\r\n FontSizeOptions,\r\n ThemeOptions,\r\n ModeOptions,\r\n TitleOption\r\n} from '../interface'\r\n\r\n// store\r\nimport {\r\n setCloseHandler,\r\n setErrorHandler,\r\n setMode,\r\n setTheme,\r\n setTxId,\r\n setSubmitted,\r\n setTransactionOption,\r\n setAmount,\r\n setSuccessHandler,\r\n setBackendUrl,\r\n setNodeProviderQuery,\r\n setTargetNetwork,\r\n setTargetAddress,\r\n setOriginNetwork\r\n} from '../store/optionSlice'\r\nimport '../index.css'\r\nimport { selectSubmitted } from '../store/selectors'\r\nimport { TransactionWidget } from './TransactionWidget'\r\nimport { TransferWidget } from './TransferWidget'\r\nimport { ChainName } from '../utils/constants'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\n\r\ninterface Props extends DefaultProps {\r\n mode: ModeOptions\r\n txId?: number\r\n titleOption?: TitleOption\r\n kimaBackendUrl: string\r\n transactionOption?: TransactionOption\r\n kimaNodeProviderQuery: string\r\n errorHandler?: (e: any) => void\r\n closeHandler?: (e: any) => void\r\n successHandler?: (e: any) => void\r\n}\r\n\r\nexport const KimaTransactionWidget = ({\r\n mode,\r\n txId,\r\n theme = ThemeOptions.light,\r\n fontSize = FontSizeOptions.medium,\r\n titleOption,\r\n transactionOption,\r\n kimaBackendUrl,\r\n kimaNodeProviderQuery,\r\n errorHandler = () => void 0,\r\n closeHandler = () => void 0,\r\n successHandler = () => void 0\r\n}: Props) => {\r\n const submitted = useSelector(selectSubmitted)\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n dispatch(setTheme(theme))\r\n if (transactionOption) dispatch(setTransactionOption(transactionOption))\r\n dispatch(setErrorHandler(errorHandler))\r\n dispatch(setCloseHandler(closeHandler))\r\n dispatch(setSuccessHandler(successHandler))\r\n dispatch(setBackendUrl(kimaBackendUrl))\r\n dispatch(setNodeProviderQuery(kimaNodeProviderQuery))\r\n dispatch(setMode(mode))\r\n if (mode === ModeOptions.payment) {\r\n dispatch(\r\n setTargetNetwork(transactionOption?.targetChain || ChainName.ETHEREUM)\r\n )\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${kimaNodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${\r\n transactionOption?.targetChain || ChainName.ETHEREUM\r\n }`\r\n )\r\n dispatch(setOriginNetwork(networks.Chains[0]))\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n dispatch(setTargetAddress(transactionOption?.targetAddress || ''))\r\n dispatch(setAmount(transactionOption?.amount || 0))\r\n } else if (mode === ModeOptions.status) {\r\n dispatch(setTxId(txId || 1))\r\n dispatch(setSubmitted(true))\r\n }\r\n }, [theme, transactionOption, errorHandler, closeHandler, mode])\r\n\r\n return submitted ? (\r\n <TransactionWidget theme={theme} fontSize={fontSize} />\r\n ) : (\r\n <TransferWidget\r\n theme={theme}\r\n fontSize={fontSize}\r\n titleOption={titleOption}\r\n />\r\n )\r\n}\r\n","import React from 'react'\r\nimport { store } from './store'\r\nimport { Provider } from 'react-redux'\r\nimport {\r\n ConnectionProvider,\r\n WalletProvider\r\n} from '@solana/wallet-adapter-react'\r\nimport {\r\n PhantomWalletAdapter,\r\n SolflareWalletAdapter,\r\n SolletWalletAdapter,\r\n CloverWalletAdapter,\r\n Coin98WalletAdapter,\r\n SlopeWalletAdapter,\r\n SolongWalletAdapter,\r\n TorusWalletAdapter,\r\n SolletExtensionWalletAdapter\r\n} from '@solana/wallet-adapter-wallets'\r\nimport { EthereumProvider } from './contexts/EthereumProviderContext'\r\nimport { SOLANA_HOST } from './utils/constants'\r\n\r\nexport {\r\n FontSizeOptions,\r\n ThemeOptions,\r\n SupportNetworks,\r\n CurrencyOptions,\r\n ModeOptions\r\n} from './interface'\r\nexport { KimaTransactionWidget } from './components/KimaTransactionWidget'\r\nexport const KimaProvider = ({ children }: any) => {\r\n const wallets = [\r\n new PhantomWalletAdapter(),\r\n new SolflareWalletAdapter(),\r\n new SolletWalletAdapter(),\r\n new SolletExtensionWalletAdapter(),\r\n new CloverWalletAdapter(),\r\n new Coin98WalletAdapter(),\r\n new SlopeWalletAdapter(),\r\n new SolongWalletAdapter(),\r\n new TorusWalletAdapter()\r\n ]\r\n\r\n return (\r\n <Provider store={store}>\r\n <EthereumProvider>\r\n <ConnectionProvider endpoint={SOLANA_HOST}>\r\n <WalletProvider wallets={wallets} autoConnect>\r\n {children}\r\n </WalletProvider>\r\n </ConnectionProvider>\r\n </EthereumProvider>\r\n </Provider>\r\n )\r\n}\r\n"],"names":["Cross","width","height","fill","rest","React","viewBox","xmlns","d","Minimize","FooterLogo","Check","Warning","ArrowRight","Arrow","stroke","strokeWidth","strokeLinecap","strokeLinejoin","Ethereum","x","y","id","patternContentUnits","href","transform","Solana","style","maskType","maskUnits","cx","cy","r","mask","clipPath","Avalanche","USDT","Fuse","Celo","GoodDollar","Copy","xmlSpace","SOLANA_USDK_ADDRESS","ETHEREUM_USDK_ADDRESS","POLYGON_USDK_ADDRESS","AVAX_USDK_ADDRESS","FUSE_GDOLLAR_ADDRESS","CELO_GDOLLAR_ADDRESS","ChainName","SupportedChainId","CHAIN_NAMES_TO_IDS","ETHEREUM","POLYGON","AVALANCHE","FUSE","CELO","CHAIN_NAMES_TO_STRING","SOLANA","CHAIN_NAMES_TO_EXPLORER","CHAIN_NAMES_TO_GECKO_ID","CHAIN_IDS_TO_NAMES","networkOptions","label","icon","EthereumIcon","PolygonIcon","AvalancheIcon","FuseIcon","CeloIcon","SolanaIcon","getNetworkOption","index","findIndex","item","CLUSTER","SOLANA_HOST","clusterApiUrl","isEVMChain","chainId","COIN_LIST","USDK","symbol","USDTIcon","address","SOL","ETH","POL","AVX","decimals","GDOLLAR","GoodDollarIcon","FUS","CEL","TransactionStatus","FontSizeOptions","ModeOptions","CurrencyOptions","ThemeOptions","initialState","theme","light","mode","bridge","originNetwork","targetNetwork","targetAddress","connectModal","helpPopup","hashPopup","solanaProvider","undefined","submitted","amount","isApproving","isSubmitting","isConfirming","feeDeduct","errorHandler","closeHandler","successHandler","serviceFee","backendUrl","nodeProviderQuery","txId","currencyOptions","optionSlice","createSlice","name","reducers","initialize","state","setTheme","action","payload","setOriginNetwork","setTargetNetwork","setTargetAddress","setConnectModal","setHelpPopup","setHashPopup","setSolanaProvider","setSubmitted","setTransactionOption","transactionOption","setAmount","setApproving","setSubmitting","setErrorHandler","setCloseHandler","setSuccessHandler","setServiceFee","setMode","setConfirming","setFeeDeduct","setBackendUrl","setNodeProviderQuery","setTxId","setCurrencyOptions","actions","reducer","store","configureStore","option","optionReducer","middleware","getDefaultMiddleware","serializableCheck","selectTheme","selectOriginNetwork","selectTargetNetwork","selectTargetAddress","selectConnectModal","selectHelpPopup","selectHashPopup","selectSolanaProvider","selectSubmitted","selectTransactionOption","selectAmount","selectApproving","selectSubmitting","selectErrorHandler","selectCloseHandler","selectSuccessHandler","selectServiceFee","selectMode","selectConfirming","selectFeeDeduct","selectBackendUrl","selectNodeProviderQuery","selectTxId","selectCurrencyOptions","EthereumProviderContext","createContext","connect","disconnect","provider","signer","signerAddress","providerError","EthereumProvider","children","useSelector","useState","setProviderError","setProvider","setChainId","setSigner","setSignerAddress","useCallback","detectEthereumProvider","then","detectedProvider","ethers","providers","Web3Provider","send","getNetwork","network","e","getSigner","getAddress","on","BigNumber","from","toNumber","accounts","contextValue","useMemo","Provider","value","useEthereumProvider","useContext","Loading180Ring","attributeName","type","dur","values","repeatCount","stepInfo","title","Progressbar","step","errorStep","setFocus","loadingStep","className","map","key","onClick","dark","WarningIcon","CheckIcon","ExternalLink","to","target","rel","NetworkLabel","sourceChain","targetChain","hasError","SourceInfo","TargetInfo","ArrowRightIcon","PrimaryButton","clickHandler","isLoading","SecondaryButton","fetchWrapper","get","post","url","requestOptions","method","headers","fetch","handleResponse","body","credentials","response","text","data","JSON","parse","error","ok","statusText","Promise","reject","status","useNetworkOptions","options","setOptions","useEffect","networks","filter","Chains","console","log","Network","isOriginChain","dispatch","useDispatch","sliderRef","useRef","availableNetworks","setAvailableNetworks","selectedNetwork","payment","isDown","startX","scrollLeft","current","addEventListener","classList","add","pageX","offsetLeft","remove","preventDefault","walk","slideLeft","temp","timerId","setInterval","clearInterval","slideRight","ArrowIcon","ref","WalletSelect","selectedProvider","useWallet","wallets","detected","undetected","wallet","readyState","WalletReadyState","Installed","Loadable","push","NotDetected","adapter","src","alt","version","createWalletStatus","isReady","statusMessage","forceNetworkSwitch","walletAddress","useIsWalletReady","enableNetworkAutoswitch","autoSwitch","solPK","publicKey","evmChainId","hasEthInfo","correctEvmNetwork","hasCorrectEvmNetwork","hexStripZeros","hexlify","toBase58","getShortenedAddress","is0x","addr","startsWith","substring","substr","length","connectWalletBtn","WalletButton","errorBelow","disconnectSolana","disconnectEVM","handleClick","CoinDropdown","collapsed","setCollapsed","selectedCoin","prev","NetworkDropdown","formatterInt","Intl","NumberFormat","maximumFractionDigits","formatterFloat","ConfirmDetails","isApproved","originNetworkOption","targetNetworkOption","format","AddressInput","onChange","CopyButton","copyClicked","setCopyClicked","setTimeout","navigator","clipboard","writeText","CopyIcon","StepBox","kimaTxHash","tssPullHash","tssReleaseHash","HelpPopup","CrossIcon","HashPopup","WalletConnectModal","select","handleConnect","justifyContent","marginTop","TransactionWidget","fontSize","medium","setStep","focus","setErrorStep","setLoadingStep","minimized","setMinimized","percent","setPercent","setData","result","transactionData","originChain","AVAILABLE","CONFIRMED","UNAVAILABLE","KEYSIGNED","PAID","FAILED","COMPLETED","AnimatedNumber","component","duration","formatValue","n","MinimizeIcon","SingleForm","_amount","parseFloat","toFixed","CoinSelect","readOnly","createAssociatedTokenAccountInstruction","payer","associatedToken","owner","mint","programId","associatedTokenProgramId","TOKEN_PROGRAM_ID","ASSOCIATED_TOKEN_PROGRAM_ID","keys","pubkey","isSigner","isWritable","SystemProgram","SYSVAR_RENT_PUBKEY","TransactionInstruction","Buffer","alloc","getAccountInfo","connection","commitment","info","Error","equals","AccountLayout","span","rawAccount","decode","delegate","delegateOption","delegatedAmount","isInitialized","AccountState","Uninitialized","isFrozen","Frozen","isNative","isNativeOption","rentExemptReserve","closeAuthority","closeAuthorityOption","getAssociatedTokenAddress","allowOwnerOffCurve","PublicKey","isOnCurve","toBuffer","findProgramAddress","getOrCreateAssociatedTokenAccount","signTransaction","account","err","message","transaction","Transaction","getRecentBlockhash","blockHash","feePayer","blockhash","recentBlockhash","signed","sendRawTransaction","serialize","signature","confirmTransaction","this","BufferLayout","require","TokenInstruction","createApproveTransferInstruction","source","destination","multiSigners","dataLayout","struct","u8","blob","addSigners","encode","instruction","Approve","TokenAmount","ownerOrAuthority","a","toArray","reverse","b","zeroPad","copy","BN","useAllowance","allowance","setAllowance","setDecimals","useConnection","useSolanaWallet","tokenAddress","updatePoolAddress","tssPubkey","ebdsa","ecdsa","erc20Contract","Contract","ERC20ABI","abi","userAllowance","formatUnits","fromTokenAccount","getParsedAccountInfo","accountInfo","parsedAccountInfo","parsed","uiAmount","approve","toPublicKey","Math","pow","getLatestBlockhash","parseUnits","toString","wait","getFeeInUSD","gasFee","max_gas","getPrice","sourceTokenPrice","targetTokenPrice","sourceFee","targetFee","isNaN","res","json","price","Object","usd","useServiceFee","amount_","targetAddress_","getServiceFee","gasFeeData","forEach","fee","estimation","originFee","estimateTransfer","TakerPenalty","MakerPenalty","TakerBounty","MakerBounty","NetworkFee","AddressInputWizard","useCurrencyOptions","coins","Currencies","TransferWidget","titleOption","isWizard","setWizard","formStep","setFormStep","wizardStep","setWizardStep","table","poolBalance","chain","chainName","balance","checkPoolBalance","i","handleSubmit","params","stringify","originAddress","code","events","event","attributes","attr","onNext","onBack","confirmTitle","initialTitle","NetworkSelect","marginLeft","KimaTransactionWidget","kimaBackendUrl","kimaNodeProviderQuery","KimaProvider","PhantomWalletAdapter","SolflareWalletAdapter","SolletWalletAdapter","SolletExtensionWalletAdapter","CloverWalletAdapter","Coin98WalletAdapter","SlopeWalletAdapter","SolongWalletAdapter","TorusWalletAdapter","ConnectionProvider","endpoint","WalletProvider","autoConnect"],"mappings":"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EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,I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AAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CA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,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,C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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/assets/icons/Cross.tsx","../src/assets/icons/Minimize.tsx","../src/assets/icons/FooterLogo.tsx","../src/assets/icons/Check.tsx","../src/assets/icons/Warning.tsx","../src/assets/icons/ArrowRight.tsx","../src/assets/icons/Arrow.tsx","../src/assets/icons/Ethereum.tsx","../src/assets/icons/Solana.tsx","../src/assets/icons/Polygon.tsx","../src/assets/icons/Avalanche.tsx","../src/assets/icons/USDT.tsx","../src/assets/icons/Fuse.tsx","../src/assets/icons/Celo.tsx","../src/assets/icons/GoodDollar.tsx","../src/assets/icons/Copy.tsx","../src/utils/config.tsx","../src/utils/constants.tsx","../src/interface.tsx","../src/store/optionSlice.ts","../src/store/index.ts","../src/store/selectors.ts","../src/contexts/EthereumProviderContext.tsx","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/assets/loading/180-ring.tsx","../src/components/reusable/Progressbar.tsx","../src/components/reusable/ExternalLink.tsx","../src/components/reusable/NetworkLabel.tsx","../src/components/reusable/PrimaryButton.tsx","../src/components/reusable/SecondaryButton.tsx","../src/helpers/fetch-wrapper.tsx","../src/hooks/useNetworkOptions.tsx","../src/components/reusable/NetworkSelect.tsx","../src/components/reusable/WalletSelect.tsx","../node_modules/@ethersproject/logger/lib.esm/_version.js","../node_modules/@ethersproject/logger/lib.esm/index.js","../node_modules/@ethersproject/bytes/lib.esm/_version.js","../node_modules/@ethersproject/bytes/lib.esm/index.js","../src/hooks/useIsWalletReady.tsx","../src/utils/functions.tsx","../src/utils/testId.tsx","../src/components/reusable/WalletButton.tsx","../src/components/reusable/CoinDropdown.tsx","../src/components/reusable/NetworkDropdown.tsx","../src/helpers/functions.tsx","../src/components/reusable/ConfirmDetails.tsx","../src/components/reusable/AddressInput.tsx","../src/components/reusable/CopyButton.tsx","../src/components/reusable/StepBox.tsx","../src/components/modals/HelpPopup.tsx","../src/components/modals/HashPopup.tsx","../src/components/modals/WalletConnectModal.tsx","../src/components/TransactionWidget.tsx","../src/components/reusable/SingleForm.tsx","../src/components/reusable/CoinSelect.tsx","../src/utils/solana/createAssociatedTokenAccountInstruction.ts","../src/utils/solana/getAccountInfo.ts","../src/utils/solana/getAssociatedTokenAddress.ts","../src/utils/solana/getOrCreateAssociatedTokenAccount.ts","../node_modules/bn.js/lib/bn.js","../src/utils/solana/createTransferInstruction.ts","../src/hooks/useAllowance.tsx","../src/hooks/useServiceFee.tsx","../src/components/reusable/AddressInputWizard.tsx","../src/hooks/useCurrencyOptions.tsx","../src/components/TransferWidget.tsx","../src/components/KimaTransactionWidget.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react'\r\n\r\nconst Cross = ({ width = 32, height = 32, fill = 'white', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 11 11'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M9.656 1.688L5.944 5.4L9.656 9.112L8.712 10.056L5 6.344L1.288 10.056L0.344 9.112L4.056 5.4L0.344 1.688L1.288 0.743999L5 4.456L8.712 0.743999L9.656 1.688Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Cross\r\n","import React from 'react'\r\n\r\nconst Minimize = ({ width = 16, height = 1, fill = 'white', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 11 1'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='11' height='1' fill={fill} />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Minimize\r\n","import React from 'react'\r\n\r\nconst FooterLogo = ({ width = 32, height = 32, fill = '#C5C5C5', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 103 20'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M91.483 10.2491C91.483 9.61748 91.8537 9.0958 92.54 9.0958C93.1091 9.11485 93.5697 9.63311 93.5697 10.2491V14.2164C93.5697 14.24 93.5744 14.2633 93.5834 14.2851C93.5924 14.3069 93.6057 14.3266 93.6224 14.3433C93.6391 14.36 93.6589 14.3731 93.6807 14.3821C93.7025 14.3911 93.7259 14.3957 93.7495 14.3956H95.5465C95.5941 14.3956 95.6397 14.3767 95.6733 14.3431C95.7069 14.3095 95.7258 14.2639 95.7258 14.2164V9.80993C95.7258 8.20338 94.7782 7.15953 93.2678 7.15953C92.224 7.15953 91.5377 7.61282 91.0986 8.10519C91.0971 8.10731 91.0951 8.10904 91.0928 8.11023C91.0905 8.11142 91.088 8.11205 91.0854 8.11205C91.0828 8.11205 91.0802 8.11142 91.0779 8.11023C91.0757 8.10904 91.0737 8.10731 91.0722 8.10519C90.6731 7.57326 90.0415 7.16099 89.1349 7.16099C88.3109 7.16099 87.6109 7.50292 87.2661 8.00848L87.2539 8.00506V7.50389C87.2539 7.48031 87.2493 7.45695 87.2404 7.43514C87.2314 7.41334 87.2182 7.39352 87.2015 7.37682C87.1849 7.36012 87.1651 7.34687 87.1433 7.33783C87.1215 7.32879 87.0982 7.32414 87.0746 7.32414H85.2912C85.244 7.32491 85.199 7.34417 85.1658 7.37778C85.1327 7.4114 85.114 7.45668 85.1139 7.50389V14.2164C85.1139 14.2639 85.1328 14.3095 85.1664 14.3431C85.2 14.3767 85.2456 14.3956 85.2932 14.3956H87.0766C87.1241 14.3956 87.1697 14.3767 87.2033 14.3431C87.2369 14.3095 87.2558 14.2639 87.2558 14.2164V10.2491C87.2558 9.61748 87.6266 9.0958 88.2997 9.0958C88.8756 9.11485 89.343 9.63311 89.343 10.2491V14.2164C89.343 14.2639 89.3619 14.3095 89.3955 14.3431C89.4292 14.3767 89.4748 14.3956 89.5223 14.3956H91.3057C91.3532 14.3956 91.3988 14.3767 91.4324 14.3431C91.4661 14.3095 91.4849 14.2639 91.4849 14.2164L91.483 10.2491ZM100.927 14.2164C100.927 14.2639 100.946 14.3095 100.979 14.3431C101.013 14.3767 101.059 14.3956 101.106 14.3956H102.821C102.868 14.3956 102.914 14.3767 102.947 14.3431C102.981 14.3095 103 14.2639 103 14.2164V10.0156C103 8.20338 101.819 7.15953 99.801 7.15953C99.0649 7.15367 98.0533 7.36712 97.4691 7.64555C97.4394 7.66035 97.4145 7.68324 97.3972 7.71158C97.3799 7.73993 97.371 7.77257 97.3714 7.80577V9.2526C97.3714 9.28314 97.3792 9.31319 97.3941 9.33986C97.409 9.36654 97.4304 9.38895 97.4565 9.40497C97.4825 9.42099 97.5122 9.43008 97.5427 9.43136C97.5732 9.43265 97.6035 9.4261 97.6308 9.41232C98.1364 9.16467 98.7142 8.98589 99.3214 8.98589C100.209 8.96831 100.928 9.46654 100.928 10.0981V10.147C100.928 10.17 100.923 10.1927 100.911 10.2128C100.9 10.2328 100.883 10.2494 100.863 10.261C100.844 10.2725 100.821 10.2784 100.798 10.2782C100.775 10.278 100.752 10.2717 100.733 10.2598C100.402 10.0644 99.8577 9.89053 99.2779 9.89053C97.7812 9.89053 96.5454 10.7966 96.5454 12.1697C96.5454 13.6527 97.7812 14.5593 99.209 14.5593C100.033 14.5593 100.678 14.2296 100.925 13.955L100.927 14.2164ZM100.954 12.1712C100.954 12.7344 100.336 13.0362 99.7463 13.0362C99.1284 13.0362 98.5252 12.7344 98.5252 12.1712C98.5252 11.6221 99.1294 11.3203 99.7463 11.3203C100.336 11.3203 100.954 11.6221 100.954 12.1712Z'\r\n fill={fill}\r\n />\r\n <path\r\n d='M81.6947 14.3956H83.478C83.5256 14.3956 83.5712 14.3767 83.6048 14.3431C83.6384 14.3095 83.6573 14.2639 83.6573 14.2164V7.5039C83.6573 7.45635 83.6384 7.41075 83.6048 7.37713C83.5712 7.34352 83.5256 7.32463 83.478 7.32463H81.6947C81.6471 7.32463 81.6015 7.34352 81.5679 7.37713C81.5343 7.41075 81.5154 7.45635 81.5154 7.5039V14.2164C81.5154 14.2639 81.5343 14.3095 81.5679 14.3431C81.6015 14.3767 81.6471 14.3956 81.6947 14.3956Z'\r\n fill={fill}\r\n />\r\n <path\r\n d='M82.6003 4.00014H82.5705C82.3972 3.99758 82.2252 4.02978 82.0646 4.09482C81.904 4.15987 81.7581 4.25645 81.6355 4.37885C81.5129 4.50125 81.416 4.647 81.3507 4.80747C81.2853 4.96794 81.2528 5.13988 81.255 5.31313C81.2544 5.4851 81.288 5.65548 81.354 5.81429C81.4199 5.97311 81.5169 6.11718 81.6392 6.23807C81.7615 6.35896 81.9067 6.45425 82.0662 6.51837C82.2258 6.58248 82.3966 6.61413 82.5685 6.61147H82.5983C82.7698 6.61147 82.9396 6.5777 83.098 6.51208C83.2564 6.44647 83.4003 6.35029 83.5216 6.22905C83.6428 6.10781 83.739 5.96387 83.8046 5.80546C83.8702 5.64705 83.904 5.47727 83.904 5.30581C83.904 5.13434 83.8702 4.96456 83.8046 4.80615C83.739 4.64774 83.6428 4.5038 83.5216 4.38256C83.4003 4.26132 83.2564 4.16515 83.098 4.09953C82.9396 4.03391 82.7698 4.00014 82.5983 4.00014'\r\n fill={fill}\r\n />\r\n <path\r\n d='M79.7198 12.3895C79.4939 12.1693 79.196 12.0384 78.8811 12.0207C77.7161 11.9836 77.5481 11.016 77.5481 10.7717C77.5481 10.5055 77.7332 9.57205 78.8792 9.53542C79.2181 9.51481 79.5358 9.3633 79.7651 9.11289C79.9944 8.86248 80.1175 8.53275 80.1083 8.19331C80.0991 7.85388 79.9584 7.53129 79.7158 7.29366C79.4733 7.05602 79.1479 6.92193 78.8083 6.91969H78.7995C78.4598 6.92039 78.1336 7.05357 77.8905 7.29092C77.6131 7.56153 77.4963 7.92593 77.4963 8.28397C77.4963 8.59903 77.2877 9.46264 76.3196 9.46264C75.9552 9.46264 75.5727 9.56863 75.2938 9.85341C75.2816 9.86562 75.2723 9.87978 75.2611 9.89297V9.8876C75.1937 9.95745 75.1805 9.90225 75.1815 9.86464V4.59704C75.1815 4.54958 75.1627 4.50406 75.1291 4.47046C75.0956 4.43685 75.0502 4.41791 75.0027 4.41778H73.1793C73.1317 4.41778 73.0861 4.43666 73.0525 4.47028C73.0189 4.5039 73 4.5495 73 4.59704V14.2618C73 14.3093 73.0189 14.3549 73.0525 14.3886C73.0861 14.4222 73.1317 14.4411 73.1793 14.4411H75.0027C75.0502 14.4409 75.0957 14.422 75.1293 14.3884C75.1629 14.3548 75.1818 14.3093 75.182 14.2618V11.691C75.182 11.6534 75.1942 11.5982 75.2616 11.6681V11.6637C75.2723 11.6764 75.2816 11.6895 75.2933 11.7018C75.5723 11.988 75.9493 12.0925 76.3191 12.0925C77.2877 12.0925 77.4963 13.0695 77.4963 13.2712C77.4963 13.5501 77.6131 13.9936 77.8905 14.2642C78.1346 14.5025 78.4623 14.6357 78.8034 14.6355C79.1505 14.6361 79.4836 14.499 79.7296 14.2542C79.9757 14.0093 80.1144 13.6769 80.1155 13.3298V13.3215C80.115 13.1473 80.0798 12.975 80.0118 12.8146C79.9439 12.6542 79.8446 12.5091 79.7198 12.3876'\r\n fill={fill}\r\n />\r\n <path\r\n d='M6.516 8.084C6.516 8.78 6.276 9.36 5.796 9.824C5.324 10.28 4.6 10.508 3.624 10.508H2.016V14H0.924V5.636H3.624C4.568 5.636 5.284 5.864 5.772 6.32C6.268 6.776 6.516 7.364 6.516 8.084ZM3.624 9.608C4.232 9.608 4.68 9.476 4.968 9.212C5.256 8.948 5.4 8.572 5.4 8.084C5.4 7.052 4.808 6.536 3.624 6.536H2.016V9.608H3.624ZM10.5412 14.108C9.92522 14.108 9.36522 13.968 8.86122 13.688C8.36522 13.408 7.97322 13.012 7.68522 12.5C7.40522 11.98 7.26522 11.38 7.26522 10.7C7.26522 10.028 7.40922 9.436 7.69722 8.924C7.99322 8.404 8.39322 8.008 8.89722 7.736C9.40122 7.456 9.96522 7.316 10.5892 7.316C11.2132 7.316 11.7772 7.456 12.2812 7.736C12.7852 8.008 13.1812 8.4 13.4692 8.912C13.7652 9.424 13.9132 10.02 13.9132 10.7C13.9132 11.38 13.7612 11.98 13.4572 12.5C13.1612 13.012 12.7572 13.408 12.2452 13.688C11.7332 13.968 11.1652 14.108 10.5412 14.108ZM10.5412 13.148C10.9332 13.148 11.3012 13.056 11.6452 12.872C11.9892 12.688 12.2652 12.412 12.4732 12.044C12.6892 11.676 12.7972 11.228 12.7972 10.7C12.7972 10.172 12.6932 9.724 12.4852 9.356C12.2772 8.988 12.0052 8.716 11.6692 8.54C11.3332 8.356 10.9692 8.264 10.5772 8.264C10.1772 8.264 9.80922 8.356 9.47322 8.54C9.14522 8.716 8.88122 8.988 8.68122 9.356C8.48122 9.724 8.38122 10.172 8.38122 10.7C8.38122 11.236 8.47722 11.688 8.66922 12.056C8.86922 12.424 9.13322 12.7 9.46122 12.884C9.78922 13.06 10.1492 13.148 10.5412 13.148ZM23.909 7.424L21.857 14H20.729L19.145 8.78L17.561 14H16.433L14.369 7.424H15.485L16.997 12.944L18.629 7.424H19.745L21.341 12.956L22.829 7.424H23.909ZM30.7927 10.46C30.7927 10.668 30.7807 10.888 30.7567 11.12H25.5007C25.5407 11.768 25.7607 12.276 26.1607 12.644C26.5687 13.004 27.0607 13.184 27.6367 13.184C28.1087 13.184 28.5007 13.076 28.8127 12.86C29.1327 12.636 29.3567 12.34 29.4847 11.972H30.6608C30.4848 12.604 30.1327 13.12 29.6047 13.52C29.0767 13.912 28.4207 14.108 27.6367 14.108C27.0127 14.108 26.4527 13.968 25.9567 13.688C25.4687 13.408 25.0847 13.012 24.8047 12.5C24.5247 11.98 24.3847 11.38 24.3847 10.7C24.3847 10.02 24.5207 9.424 24.7927 8.912C25.0647 8.4 25.4447 8.008 25.9327 7.736C26.4287 7.456 26.9967 7.316 27.6367 7.316C28.2607 7.316 28.8127 7.452 29.2927 7.724C29.7727 7.996 30.1407 8.372 30.3967 8.852C30.6607 9.324 30.7927 9.86 30.7927 10.46ZM29.6647 10.232C29.6647 9.816 29.5727 9.46 29.3887 9.164C29.2047 8.86 28.9527 8.632 28.6327 8.48C28.3207 8.32 27.9727 8.24 27.5887 8.24C27.0367 8.24 26.5647 8.416 26.1727 8.768C25.7887 9.12 25.5687 9.608 25.5127 10.232H29.6647ZM33.1262 8.492C33.3182 8.116 33.5902 7.824 33.9422 7.616C34.3022 7.408 34.7382 7.304 35.2502 7.304V8.432H34.9622C33.7382 8.432 33.1262 9.096 33.1262 10.424V14H32.0342V7.424H33.1262V8.492ZM42.3107 10.46C42.3107 10.668 42.2987 10.888 42.2747 11.12H37.0187C37.0587 11.768 37.2787 12.276 37.6787 12.644C38.0867 13.004 38.5787 13.184 39.1547 13.184C39.6267 13.184 40.0187 13.076 40.3307 12.86C40.6507 12.636 40.8747 12.34 41.0027 11.972H42.1787C42.0027 12.604 41.6507 13.12 41.1227 13.52C40.5947 13.912 39.9387 14.108 39.1547 14.108C38.5307 14.108 37.9707 13.968 37.4747 13.688C36.9867 13.408 36.6027 13.012 36.3227 12.5C36.0427 11.98 35.9027 11.38 35.9027 10.7C35.9027 10.02 36.0387 9.424 36.3107 8.912C36.5827 8.4 36.9627 8.008 37.4507 7.736C37.9467 7.456 38.5147 7.316 39.1547 7.316C39.7787 7.316 40.3307 7.452 40.8107 7.724C41.2907 7.996 41.6587 8.372 41.9147 8.852C42.1787 9.324 42.3107 9.86 42.3107 10.46ZM41.1827 10.232C41.1827 9.816 41.0907 9.46 40.9067 9.164C40.7227 8.86 40.4707 8.632 40.1507 8.48C39.8387 8.32 39.4907 8.24 39.1067 8.24C38.5547 8.24 38.0827 8.416 37.6907 8.768C37.3067 9.12 37.0867 9.608 37.0307 10.232H41.1827ZM43.1441 10.688C43.1441 10.016 43.2801 9.428 43.5521 8.924C43.8241 8.412 44.1961 8.016 44.6681 7.736C45.1481 7.456 45.6841 7.316 46.2761 7.316C46.7881 7.316 47.2641 7.436 47.7041 7.676C48.1441 7.908 48.4801 8.216 48.7121 8.6V5.12H49.8161V14H48.7121V12.764C48.4961 13.156 48.1761 13.48 47.7521 13.736C47.3281 13.984 46.8321 14.108 46.2641 14.108C45.6801 14.108 45.1481 13.964 44.6681 13.676C44.1961 13.388 43.8241 12.984 43.5521 12.464C43.2801 11.944 43.1441 11.352 43.1441 10.688ZM48.7121 10.7C48.7121 10.204 48.6121 9.772 48.4121 9.404C48.2121 9.036 47.9401 8.756 47.5961 8.564C47.2601 8.364 46.8881 8.264 46.4801 8.264C46.0721 8.264 45.7001 8.36 45.3641 8.552C45.0281 8.744 44.7601 9.024 44.5601 9.392C44.3601 9.76 44.2601 10.192 44.2601 10.688C44.2601 11.192 44.3601 11.632 44.5601 12.008C44.7601 12.376 45.0281 12.66 45.3641 12.86C45.7001 13.052 46.0721 13.148 46.4801 13.148C46.8881 13.148 47.2601 13.052 47.5961 12.86C47.9401 12.66 48.2121 12.376 48.4121 12.008C48.6121 11.632 48.7121 11.196 48.7121 10.7ZM55.5527 8.648C55.7767 8.256 56.1047 7.936 56.5367 7.688C56.9687 7.44 57.4607 7.316 58.0127 7.316C58.6047 7.316 59.1367 7.456 59.6087 7.736C60.0807 8.016 60.4527 8.412 60.7247 8.924C60.9967 9.428 61.1327 10.016 61.1327 10.688C61.1327 11.352 60.9967 11.944 60.7247 12.464C60.4527 12.984 60.0767 13.388 59.5967 13.676C59.1247 13.964 58.5967 14.108 58.0127 14.108C57.4447 14.108 56.9447 13.984 56.5127 13.736C56.0887 13.488 55.7687 13.172 55.5527 12.788V14H54.4607V5.12H55.5527V8.648ZM60.0167 10.688C60.0167 10.192 59.9167 9.76 59.7167 9.392C59.5167 9.024 59.2447 8.744 58.9007 8.552C58.5647 8.36 58.1927 8.264 57.7847 8.264C57.3847 8.264 57.0127 8.364 56.6687 8.564C56.3327 8.756 56.0607 9.04 55.8527 9.416C55.6527 9.784 55.5527 10.212 55.5527 10.7C55.5527 11.196 55.6527 11.632 55.8527 12.008C56.0607 12.376 56.3327 12.66 56.6687 12.86C57.0127 13.052 57.3847 13.148 57.7847 13.148C58.1927 13.148 58.5647 13.052 58.9007 12.86C59.2447 12.66 59.5167 12.376 59.7167 12.008C59.9167 11.632 60.0167 11.192 60.0167 10.688ZM68.0341 7.424L64.0741 17.096H62.9461L64.2421 13.928L61.5901 7.424H62.8021L64.8661 12.752L66.9061 7.424H68.0341Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default FooterLogo\r\n","import React from 'react'\r\n\r\nconst Check = ({ width = 15, height = 11, fill = '#33EA66', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 15 11'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M13.7319 0.295798C13.639 0.20207 13.5284 0.127675 13.4065 0.0769067C13.2846 0.026138 13.1539 0 13.0219 0C12.8899 0 12.7592 0.026138 12.6373 0.0769067C12.5155 0.127675 12.4049 0.20207 12.3119 0.295798L4.86192 7.7558L1.73192 4.6158C1.6354 4.52256 1.52146 4.44925 1.3966 4.40004C1.27175 4.35084 1.13843 4.32671 1.00424 4.32903C0.870064 4.33135 0.737655 4.36008 0.614576 4.41357C0.491498 4.46706 0.380161 4.54428 0.286922 4.6408C0.193684 4.73732 0.12037 4.85126 0.0711659 4.97612C0.0219619 5.10097 -0.00216855 5.2343 0.000152918 5.36848C0.00247438 5.50266 0.0312022 5.63507 0.0846957 5.75814C0.138189 5.88122 0.215401 5.99256 0.311922 6.0858L4.15192 9.9258C4.24489 10.0195 4.35549 10.0939 4.47735 10.1447C4.59921 10.1955 4.72991 10.2216 4.86192 10.2216C4.99393 10.2216 5.12464 10.1955 5.2465 10.1447C5.36836 10.0939 5.47896 10.0195 5.57192 9.9258L13.7319 1.7658C13.8334 1.67216 13.9144 1.5585 13.9698 1.432C14.0252 1.30551 14.0539 1.1689 14.0539 1.0308C14.0539 0.892697 14.0252 0.756091 13.9698 0.629592C13.9144 0.503092 13.8334 0.389441 13.7319 0.295798Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Check\r\n","import React from 'react'\r\n\r\nconst Warning = ({ width = 14, height = 13, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 14 13'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M13.8418 11.0561L8.16007 0.683372C8.04697 0.476647 7.87973 0.304041 7.67598 0.183764C7.47223 0.0634876 7.23954 0 7.00245 0C6.76537 0 6.53267 0.0634876 6.32893 0.183764C6.12518 0.304041 5.95794 0.476647 5.84484 0.683372L0.167185 11.0561C0.05491 11.2556 -0.00270098 11.4807 9.72867e-05 11.7091C0.00289555 11.9376 0.0660053 12.1613 0.183133 12.358C0.300261 12.5546 0.467315 12.7174 0.667636 12.8301C0.867956 12.9427 1.09454 13.0013 1.3248 13H12.6842C12.9121 12.9997 13.1361 12.9408 13.3342 12.829C13.5323 12.7172 13.6977 12.5563 13.8144 12.3621C13.931 12.1678 13.9949 11.9469 13.9997 11.7208C14.0045 11.4947 13.9501 11.2713 13.8418 11.0723V11.0561ZM6.47887 3.26032C6.47887 3.10964 6.5392 2.96513 6.6466 2.85858C6.754 2.75203 6.89966 2.69218 7.05154 2.69218C7.20342 2.69218 7.34908 2.75203 7.45648 2.85858C7.56388 2.96513 7.62421 3.10964 7.62421 3.26032V8.13015C7.62421 8.28083 7.56388 8.42534 7.45648 8.53189C7.34908 8.63844 7.20342 8.6983 7.05154 8.6983C6.89966 8.6983 6.754 8.63844 6.6466 8.53189C6.5392 8.42534 6.47887 8.28083 6.47887 8.13015V3.26032ZM7.05154 11.3158C6.90592 11.3158 6.76356 11.273 6.64248 11.1927C6.52139 11.1125 6.42702 10.9984 6.37129 10.8649C6.31556 10.7314 6.30098 10.5845 6.32939 10.4428C6.3578 10.3011 6.42793 10.171 6.5309 10.0688C6.63387 9.96667 6.76507 9.8971 6.9079 9.86892C7.05072 9.84073 7.19877 9.8552 7.33331 9.91048C7.46785 9.96577 7.58284 10.0594 7.66375 10.1795C7.74465 10.2997 7.78783 10.4409 7.78783 10.5854C7.78783 10.6813 7.76879 10.7763 7.73179 10.8649C7.69479 10.9535 7.64055 11.034 7.57218 11.1019C7.50381 11.1697 7.42264 11.2235 7.33331 11.2602C7.24398 11.2969 7.14823 11.3158 7.05154 11.3158Z'\r\n fill='#FFB03A'\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Warning\r\n","import React from 'react'\r\n\r\nconst ArrowRight = ({ width = 12, height = 9, fill = 'white', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 12 9'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M11.3536 4.85355C11.5488 4.65829 11.5488 4.34171 11.3536 4.14645L8.17157 0.964466C7.97631 0.769204 7.65973 0.769204 7.46447 0.964466C7.2692 1.15973 7.2692 1.47631 7.46447 1.67157L10.2929 4.5L7.46447 7.32843C7.2692 7.52369 7.2692 7.84027 7.46447 8.03553C7.65973 8.2308 7.97631 8.2308 8.17157 8.03553L11.3536 4.85355ZM0.5 5H11V4H0.5V5Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default ArrowRight\r\n","import React from 'react'\r\n\r\nconst Arrow = ({ width = 27, height = 51, fill = 'black', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 27 51'\r\n xmlns='http://www.w3.org/2000/svg'\r\n fill='transparent'\r\n {...rest}\r\n >\r\n <path\r\n d='M25 49L2 25.5L25 2'\r\n stroke={fill}\r\n strokeWidth='4'\r\n strokeLinecap='round'\r\n strokeLinejoin='round'\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Arrow\r\n","import React from 'react'\r\n\r\nconst Ethereum = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 37 37'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect x='0' y='0' width='37' height='37' fill='url(#pattern0)' />\r\n <defs>\r\n <pattern\r\n id='pattern0'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_184_1295' transform='scale(0.00520833)' />\r\n </pattern>\r\n <image\r\n id='image0_184_1295'\r\n width='192'\r\n height='192'\r\n href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAMAAABlApw1AAACBFBMVEUAAADv7//09PTy8vXx9Pbz9Pjy9ffy9fjy9Pfx9Pfy9Pby9Pfx8/Xz8/Py8vTx9Pjv7/fy9Pfy9Pfy9ffz9ffy8/b09vjy9fXz9Pb09/ry9Pjz9fnv7/Tv9PTk5uiCg4Ssra9jZGWQkpTIycw7PDza296QkZIvMDBgYWK6vL21t7lHSUnm6OqEhojNz9Ly9PSztLednqB4envBw8Xv8vWen6Hv8/NsbW7x8/bP0NOpqqyJiovz8/dUVVXv7++lpqjy8/jz9Pbx9PZ9fn9bXF01NjYdHh4sLCw5Ojo0NTUwMTETExNucHBISElgYWE+Pz9zdHUaGhomJyfv7/oWFxckJSUtLi7x8vV4eXpRUlMhISHx8/Z1d3fy9PdnaGlERkaEhYZ6fHxrbW1AQUGDhYVWV1cqKipERUVOT1BcXV6LjI1iY2QyMzNMTU7Fx8lLTU2Sk5ba3N+HiIpKS0zW2Nt7fH4vLy+6vL6rrK6ChIXk5umfoKJYWVpXWVmQkpPd3+GTlJaXmJnOz9Lm5+qFhoepq6y6u77r7fB1dneRkpQ7PT2EhoeQkZPIysxISUnW2NrW19uztLa3uLqXmJp4enpTVVVvcHKsrrBmZ2g8PT2eoKJsbm+en6A9PT7v8/dsbm7BwsXd3+KEhYfx8/fy9fbP0dPx9Pjx8/bv8veJiozy9fnv8vQEFD2BAAAArHRSTlMAEDBQcI+fr7/f7/+AQGDPIJ9g33+vb1CPX+9/MDD//////////////////////2D/////UP9A/5D///9A/xD/r8/P/////////////////////zD///+g////sP/f/////////////////////////////////////////////////////////////////////////////////////0D/////gK//cO9g/1BgIk4dsgAACKdJREFUeNrM1YV1wEAMA9BjsMJOGfYfszBA0YnyJ5De6fmcPR9iyqW23gWfpPfWypBi8O7afEi5Cb4gLafxouGnPOOH5hyXa4Ufc8cvzWu8SvrUBH9Tt4U/nIZ/aZt3PGMW/JusI206MKIbIf4uMKTr4s60ZIG1EyssKwwYVGCMh19hFxxI09GHU3EwjUeu5wYGeDu6FRig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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Ethereum\r\n","import React from 'react'\r\n\r\nconst Solana = ({ width = 14, height = 14, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 14 14'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M4.19214 0L4.10059 0.311195V9.34137L4.19214 9.43276L8.38385 6.95506L4.19214 0Z'\r\n fill='#343434'\r\n />\r\n <path d='M4.1917 0L0 6.95505L4.1917 9.43279V5.04982V0Z' fill='#8C8C8C' />\r\n <path\r\n d='M4.19222 10.2264L4.14062 10.2893V13.506L4.19222 13.6568L8.38641 7.74994L4.19222 10.2264Z'\r\n fill='#3C3C3B'\r\n />\r\n <path\r\n d='M4.1917 13.6567V10.2264L0 7.74991L4.1917 13.6567Z'\r\n fill='#8C8C8C'\r\n />\r\n <path\r\n d='M4.19141 9.43272L8.38305 6.95504L4.19141 5.0498V9.43272Z'\r\n fill='#141414'\r\n />\r\n <path d='M0 6.95503L4.19164 9.4327V5.04979L0 6.95503Z' fill='#393939' />\r\n <rect width='14' height='14' fill='url(#pattern1)' />\r\n <defs>\r\n <pattern\r\n id='pattern1'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_4_722' transform='scale(0.00316456)' />\r\n </pattern>\r\n <image\r\n id='image0_4_722'\r\n width='316'\r\n height='316'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Solana\r\n","import React from 'react'\r\n\r\nconst Ethereum = ({ width = 27, height = 27, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 27 27'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <mask\r\n id='mask0_214_508'\r\n style={{ maskType: 'alpha' }}\r\n maskUnits='userSpaceOnUse'\r\n x='0'\r\n y='0'\r\n width='27'\r\n height='27'\r\n >\r\n <circle cx='13.0357' cy='13.0357' r='13.0357' fill='#D9D9D9' />\r\n </mask>\r\n <g mask='url(#mask0_214_508)'></g>\r\n <g clipPath='url(#clip0_214_508)'>\r\n <path\r\n d='M13 26C20.1797 26 26 20.1797 26 13C26 5.8203 20.1797 0 13 0C5.8203 0 0 5.8203 0 13C0 20.1797 5.8203 26 13 26Z'\r\n fill='#8247E5'\r\n />\r\n <path\r\n d='M17.3028 10.2187C16.991 10.0373 16.5856 10.0373 16.2426 10.2187L13.8105 11.6094L12.1579 12.5164L9.72584 13.9071C9.41401 14.0885 9.00868 14.0885 8.66568 13.9071L6.73246 12.8187C6.42066 12.6373 6.2024 12.3048 6.2024 11.9419V9.79545C6.2024 9.43266 6.38948 9.1001 6.73246 8.91871L8.6345 7.86055C8.94629 7.67916 9.35165 7.67916 9.69466 7.86055L11.5967 8.91871C11.9085 9.1001 12.1267 9.43266 12.1267 9.79545V11.1861L13.7793 10.2489V8.85823C13.7793 8.49545 13.5922 8.16288 13.2493 7.98149L9.72584 5.98614C9.41401 5.80475 9.00868 5.80475 8.66568 5.98614L5.07988 7.98149C4.73688 8.16288 4.5498 8.49545 4.5498 8.85823V12.8792C4.5498 13.2419 4.73688 13.5745 5.07988 13.7559L8.66568 15.7512C8.9775 15.9327 9.38283 15.9327 9.72584 15.7512L12.1579 14.3908L13.8105 13.4536L16.2426 12.0931C16.5544 11.9117 16.9598 11.9117 17.3028 12.0931L19.2048 13.1512C19.5166 13.3327 19.7349 13.6652 19.7349 14.028V16.1745C19.7349 16.5373 19.5478 16.8699 19.2048 17.0512L17.3028 18.1396C16.991 18.321 16.5856 18.321 16.2426 18.1396L14.3406 17.0815C14.0288 16.9001 13.8105 16.5675 13.8105 16.2048V14.8141L12.1579 15.7512V17.1419C12.1579 17.5048 12.345 17.8373 12.688 18.0187L16.2738 20.0141C16.5856 20.1954 16.991 20.1954 17.3339 20.0141L20.9197 18.0187C21.2315 17.8373 21.4498 17.5048 21.4498 17.1419V13.121C21.4498 12.7582 21.2627 12.4257 20.9197 12.2443L17.3028 10.2187Z'\r\n fill='white'\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id='clip0_214_508'>\r\n <rect width='26' height='26' fill='white' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Ethereum\r\n","import React from 'react'\r\n\r\nconst Avalanche = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 37 37'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect x='0' y='0' width='37' height='37' fill='url(#pattern2)' />\r\n <defs>\r\n <pattern\r\n id='pattern2'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_214_494' transform='scale(0.00390625)' />\r\n </pattern>\r\n <image\r\n id='image0_214_494'\r\n width='256'\r\n height='256'\r\n href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAOZlWElmTU0AKgAAAAgABgESAAMAAAABAAEAAAEaAAUAAAABAAAAVgEbAAUAAAABAAAAXgExAAIAAAAhAAAAZgEyAAIAAAAUAAAAiIdpAAQAAAABAAAAnAAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkAADIwMjA6MDY6MjEgMTI6MTc6MjUAAASQBAACAAAAFAAAANKgAQADAAAAAQABAACgAgAEAAAAAQAAAQCgAwAEAAAAAQAAAQAAAAAAMjAyMDowNjoyMSAxMjoxNDoyNQAyPGR9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKn2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjAtMDYtMjFUMTI6MTc6MjUtMDQ6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCAyMS4wIChNYWNpbnRvc2gpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDIwLTA2LTIxVDEyOjE0OjI1LTA0OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAyMC0wNi0yMVQxMjoxNzoyNS0wNDowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjAtMDYtMjFUMTI6MTc6MjUtMDQ6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6OGVhNTMzNjMtYzY2OS00YWVjLWE5ZmUtNzQ5YzUzMmFjZGZiPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIDIxLjEgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMjAtMDYtMjFUMTI6MTc6MjUtMDQ6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ZTZmNGEzOTctM2ZkNC00NDEzLWE2YTMtOWIzYzExNTMxOTFhPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOkQwMTE4NzY2OEUxMjExRUE5MEFDQkVFRjMyM0M3OUNFPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkZDQ3ZTdiMy02YjIyLTFkNDAtOTc2MC02MDFjYjljYmY4YzY8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NUYwRTAyRDU4RTExMTFFQTkwQUNCRUVGMzIzQzc5Q0U8L3N0UmVmOmluc3RhbmNlSUQ+CiAgICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPnhtcC5kaWQ6NUYwRTAyRDY4RTExMTFFQTkwQUNCRUVGMzIzQzc5Q0U8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgIDwv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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Avalanche\r\n","import React from 'react'\r\n\r\nconst USDT = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 37 37'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='37' height='37' fill='url(#pattern5)' />\r\n <defs>\r\n <pattern\r\n id='pattern5'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_214_312' transform='scale(0.00390625)' />\r\n </pattern>\r\n <image\r\n id='image0_214_312'\r\n width='256'\r\n height='256'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default USDT\r\n","import React from 'react'\r\n\r\nconst Fuse = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 200 200'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='200' height='200' fill='url(#pattern6)' />\r\n <defs>\r\n <pattern\r\n id='pattern6'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_1_3' transform='scale(0.005)' />\r\n </pattern>\r\n <image\r\n id='image0_1_3'\r\n width='200'\r\n height='200'\r\n href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAvZElEQVR4Xu3dCXgTdfrA8ai0uY+2Sduk6ZGmd0sPWmiBtrQUQQRBQREQUBeVFVlgBZRLEEUQuUQQvFFU0PXEC6/1FvXvfa+3K96uF4pQWnj/M0mPyfubOzOTpOR9nu+zl6uleT/9ZdppotPFJz7xiU9UjNdrNDmz3XqnrzDBnVtjSPc369MKR3VmcBeeZkwvHBf8z3mjDGkFQ+i/JsGZW6N35haYU31pOl11Av7bxic+MTOJ6XklRnfRWKOnbJ4pq/Jas7/2EUvBoP/YSlr+tJUeC7bSIeyV0LXwNLgra2HDD5a8/u+Yc2oeMWaUXW10F/9Tn5o3zJCW7cMfT3ziE6GpTjCkFw0yZPa+yOLru9Nc0PihrXToYSoIQmCLBYZEHIGKmTWHZC0ctNeSW/umObt8h95dOJMCW0p9sEfhjz4+8VF6jqa+Up9kzu6zw1LQ8D612K22MgoDM6k4AjCUw9FdU3dFTWApqP/dnN33VaO396aEFF8//AeLT3xkjSGt0GfK6XOtOb/+4yCIYaEgwsaBMeC4cGAQ3DjIBoG1oH6v2Vf9jjG9aK4uJ8eA/9zxiQ/n6F3F+SZf30ethc2/UiAOB1F0pgAMOThEnRpCOAaxV9h4yOzv94PRW7pJl5xnw5+P+MRHp0srNxtz+m23FjcfDAXBA6MLBxcQFhiicHCdGirgCNRIIwlW0HDYklfXavQUX6CLX7cc4ZOXp0/MKDnFSi8lvey9MQqFcah2vaEQDlzBQDD7aj43pOfkUJ+tXvjTF58eOsaUggyjr/ZWWxm1yL2PC8KQhQOj4MGhxclBwJCLo4HImj+wXe8uOF9nz0rCn8/49Iw5OsFZWGMuaPi/IIrOYhkH36nBh6NREo5ABZ3VgymjdKvBnpWLP8Hxic05Ru8uGmouGvR+KIwOHAQKuThYUIiCwYcDg4gkjnoiU2bFfYlJmWX4Ex6f2JijKBjDLAWD3iNhyMAh9XpDDg5Rp4YQDgxCHRzdDaSglN+TmJxVgh+A+ETp9Moo6m/JG7ibRCGEgwWGaji4Tg0VcRAowsfBzOgpuy1+jRLFY80oSjHn1j1IgmDAiOMQxsG43uAuFIctv6O8AYeM7sL11MNxNH584hO5OcqY1Wc9tdCtJIpwcWAUPDgEYcjFwQdDLg4WGKJwIBhMHPkDurLk9v3B6MydgB+o+Gg8Bndxo6Wo+TsShFo4WGBEJY5GmTgwCOk4uusPpqzK14K36MdH42nqZcqte5gCcIgEgXAQKHhwqPKUCuEQBUMIBwahMY4uGFw4gkDorHm1rYa0/EX4EYyPSpPgKamylhxLwRjOAkIMDhYYquGQc2r0HByB8oJZcqp+1iXl2vHjGR/FpqkXfb9UEEYcBxkGEQkcDBgIiC2vDmz+WjC6fKfo4vd5KTtGjz/TUjL0oDCOYTJxYBQ9HIfgxbgKOBiZM8tf1blcFvw4x0fGJLpLJlJLf5gfhkY4tLjhkIChNQ4EQw6OLhgkjs4svn4HEhwZlfjxjo/YycvTG321dwifGkrjYIERlTgaZeLAILTHEayWvoA/pE/3z8APfXwExujJzTIXNn4gGgeBggeH7OsNPhwIRggOjAHHhQOD0BiHIAw+HBgDrjaYP5jRU3hH/DcbRU4vd0mDtWTIL9GFA4NQAkcHDEVxsMCIchydmTMr36ZfEgnvQ3wYY3D3nmgL/EQ8RnFIfUolBweBQmscCIZoHB0wWHDY/P0CWXKqvk9MzqJfhSU+eAyZlYu6YfDhGCYTB0YRYRwEDIVxCF6MK4BDwvWGEI4uJLnV+3olZw/A+3Ekz1Gm3L5bhWEI4WCBIQeH4PUGHw6MAScHR6MKOBAMLXAQMEgcnVn9Ne16Z9YJeFGOyDH6654SjYNAIRcHCwxROBCMqMWBQYjFgVFoj8Pm7xssty8YXDln4H05osaY1/8VVXBocb2hCA4MQiwOFhhycAieGnw4MAYcFw4Mgh1HZ4ZU3yS8N0fCHG3Or383ZnFIvd6Qg4NAoTUOBCMCOLqQuPxH1M2ORxv9A0Q8rRoWx0HEBSNacHTAkIODBUawmkAGp+9svEg9cY4y5tbdqx4OjCKOI2wcUq83VMDRhcSV/Te8UD1qDFk1W/hhCOFggSEHh+DFeBxHtOEI5Ks5nJiScyLeqx4xhozKBaJwECi0xoFgiMbBB0MNHBgDjgsHRhEzOILl9DnQKymzAe9XTE+ip3S84jh4rzf4cGAQauPAGHAYBA8MOTgETw01cGAMOAxCDI7qrizZVb/rnZ5CvGcxOQlpxXXW0mFtJAi1cLDAkINDFIxwcGAQSuDgOjW4cCAYcnBIOjX6sYDggcGCozNrdvnXOmtGCt63mBqTs9BjKR2ylwTBgCELB0bRw3Focb0RggNjYIEhGQcGIYCj8ykVC47OzBll71JrFqPv2ZiXp+d/xRE+HCww5OAQvN7oCTgQDDk4pJ4aUYDD5usTyOjOvx2vXkyMOW/A4ySKHoZDEgy5ODCIOI5OHJ0lpmSOxvsX1ZOYUXIyiYKBg0DBg4P3ekMuDgRDNA65p4YaOBAQQRixggNjwIXisOX0oa5HqoB+i228h9E5GUUpVnrZCRha4sAgxOLAINTG0Q3CVTkYsptGBHJWDGbBwAEjYjgwBhwGwQNDDo4cZlVgzSoHavuOwesYbXOMtXgwx3esMIhwcLDAkIND1KkRDo5GAoed+u9Tq4fAuf9aDre0PyCqcVdeQKFplokDwRCNgwtGJHCQpwYTR2cmd8ETeCGjaky+vneTMOTiwChiHAf17yvHT4DrfrsbtlFLL6fFL24E74ChCuHAIJTA0TdiODpLTPGOwXsZFUO/UQ2F4bB4HCww5OAQvN6IEA7GqZE9aARc+sY1cGv7Tgk9wNmMe1ZA5sBh0nCIOjViG0fHU60/ou/nIx6PyVI8+H89EockGKE4nJUtMP7KC+E2YvmV6YwbFoO7b0t04CBQaI/DllMZyOQpeAGvaETHlIufWg2LAhwIhmgcYZwaDBwDp50Bm7+7ncJxv0Lt5GzChnmQXNIQGzgEYfDhwCBIHHTW7EowOL3RcXt88KnVMMarrEvEwXsxzocDg+DBIQqGMjg8dcPgouc3wO3UUmvZLfvvgVNW/xPsBWHgkASDDwcLDFE4uGBIw0FnySz7LQre8ao6wVrUtEf4KZUcHCwwohzHmdRTnu3t92nY/UTX/3wHjLlspkgcYZwaUYwjWAUY3bnb8cZqOgZv5cXh4cAoYhAHBaPuzMmw5dtbYQe1tHIjlz+8Nn+zDY6dM5UFxZGBo6PDvRzuRry3mozJWeymlr/jqRUGwQNDDg7B6w01cGAMuEZwVbXApa9shO1t91BLfm8URMLb/PU2qJk4rsfi4IDRlTmj5AtdJN5uwZjbd4fk6w1VcCAYonFwwRCHY8KVc+H2A3fDHdRixkLX/3gb5DYNCw8HgSISOARPDaIER8YUvL+qToIrr0o7HBgETmkcfEAaIXfISLiz/R6W7lUtvOzhdPPvd0BK6QB1cUi94VAUDHk4rNnlYMkqO6jl+5EcbS2ofy3qcIiCIYQDg+gurWYIXLL7SiBhxGZr3tsC7uqmMHCwwBCFQ86pEQpECo7OElO8F+JFVmWMaXl1JAq5OFhgiMIh59SQhyOptBlGLT0P/tV+t4zuifrm71oJWf0Hs8NQG0cIEIyBhCEeRzcM+ibGznQOhwPvs9JzjKWoeQ8JgwNHjH8bt+KUcXDT/26Fu6hlj8ZIkPL7+9aF4K1tDhMHBsGDQ/TJoQwOOqPLdzVeaEWnV2pRf1EwYhxHZsNwuOChFXA3tTg4vKQ9rSlXnQ+p5QNZYEQOhzgY/DisWb2pyoC+LQrvtVJzlKWo6UfxODAKHhyC36mSi4MPBonDUdIEJ182E27fu53CcNcR2x3774QJV/wDHPn9+HEIPqXiw4Ex4JTGEczoyt6IF1uRMaQX5aiHA2PAceHAIOTjqDp1HGz66Fq4t/1fkrsnrO6K2m795VYYd9l0EoYcHBJPDTVw0FkyS+hfrFJ+zAX138rHwQJDDg5Rp4YQjlAYSWXNsPjxVcTSx+tu63dbYfTCsyTg4Do1VMRBwCBxdGZIyVyI9zu8SSs3W+lF58IRo9cb41bOhB17b4P72u+Mov6lSnjp5XT9nhugceqpLCAigYPv1ODGQV+HWLzFB/GKhzVmX//nCBRycah2vSEeh695JNz09Y1wP7WQakcCiP1u+uZGKBsxXGUcGIQyOAJlloE+yXs83nO5c5SlpKWVgCEHhxYnBwGDgaN4EKx4cS3c13YHtbxckUsej72tFJSMPvWK4BB3agjhwCDYcdCZ3QXf4kWXNXpP7xkEjC4cGEUkcPCdGkEc9pImaPnHmbCTAhAvNPILhNi6oVz/5bWQWlrLggNjwGmIowNGV96ywzqrx4n3XfJYChr2hI1DEAYfDgxCGo78oaPgpq+ugwfad8jsDlXCi9oTuvSpFeCtro9+HB0ZnTl34n2XNMFv7Q49LA4HC4wuHEJA2GCEg2MQpPYZAjO3LYIHqSVnRgKIp1xB/HPuWAhZ/WgoGEU3DFk4CBjycVgzS8GSUfSzLpxb4Y051dvDv97gw8F1aoSHo2XGGQSMeNIil19aOw9uh1MvORscuczTRCscZYI4OtMnpY3Eey96LEVN34eHA4NQF0fZ6DGw8Z0N8FD79pjtwR7VDpizfT7YA9clbDgwBpy6OOiMqb4n8d6LGoO7oCG6cHDDcFUNgVm3LoQHD94GD7ffLquHwopc9HjdNZ4xRiKODhisODAIhIMAwQ6jM7On+E9q3Xvh/Rccczb19IoTBh8OjAGnLI5j/3Em3PnTjfAItahKhfHEC6+bPr+aASNKcHg7K4HEJM8EvP+CE3h6RaDgwSF4aiAcomDw4zhny1x4uO02YsHjaROGwJc9tyoqcdAZU3N24v3nnQS3v5pEwQFDFA45pwY/jsHTp8Cu9tuOyB4JK3LR1W7TW2vF4yBgqIuDzuIp+gMb4B19RvmaaMbhKG2Ch/bfDI+238rRbaqEFzWeuPqdPJIFRLg4ymTi6IbBzOBIb8YOOMecP/DNaMVBfxs3c8BxQKKIJy/yC4ESdeKYcf1sFhBicGAQYnGwwBDAQadPzlyHHbCPp8AZFTgIGEEcdJ5+Q+Ex6sGNFxq5/JHr4QO3wOmrprGAQDDk4CBQhIfD6i0Gc7r/fUyBdRLdRWOiGUfg3qriQXDzZxvh8fZtUdFjsiOXPOZruxWufXctZPcdyIJCYxws1xtkxV3pzKlp2AMxxuyKTZw4BH8yzocDY8Bx4Qj9HY7OSkeOhkf2byWWNV7kuvvHa+D4GeNZQEQ/Djq9VcRP1S0FDR8RMEThQDBE4+iAIQFHsEaoPmUs3P3DNfBE+y3xBHpcdiQEti7YPg9sPpHfqYo4jlAYgTIoIMkZa7CH0LF5kwkYcp5SaYCj83040vq0wKyb5sGufTfBk9QDGm3hRe1pbXxlJRQ2NYE638Ytk4kDgxDGQWdK97+LSYSMMdU/MGwcCl9vkIW+vVnX25zVD4M52y6AJ9u2wr/bb466ngwrEl6ke+C362HkrAmBmxBJDDguHBiEWBwsMOTg6IARrCiQLjnZhl10jT699LzoxRH6Dk5kwbdTzmseDhc/cBE8RS0WHV7UeOE36/qZkFbWD0SfGnJwECjUx0GX4HBVYhddY/bV3CHueoMPB8aAUw8Hs8IhI2DjyyspJFt7YEH8SoYRsLXt4/VQ1NzcASNKcAheb4jHQZdoTx2LXXSNpaj558jgwCDE4iBhBCqgq6f+fT0UHTsCbv5wLTxNLVa0RgKIrp44cCMM+/vJjPupYgUHgiGAg86YksHx8qSOHIcwDgRDNI4OGHJwEChE4mBkp6CUDh8JO3/cDM+03xTo6bAil7yndtlDCyEprw8Dhho4yqICB505jeNCXe/KzSdBxBCOAAwSR2gDoXb8GHj412u6oMRj77E/rgNnYbW83/6ThEPuyYFBiMVBouiuMBDFIQH70PVy+RpJFBw4pF6MRwkOZifMngwP/bwZnm2/McxuUi28tFr06N5rYey801h+wUkkDkkw+HCwwJCDQ8SpwcRBZ2b7ibo+o2QaCaNn4rDldzdx2Vnw4I9Xw3PUsndGIuj5PX3wBlj58ELq1KiRiEOjU0MjHFZPIeitzkLsQ2fIrtocmzgwBhwXjgFdJRXVw7lXzYBdv24JgXKkdPtHa6DPiKEyfm88DBycQLhgaIODrpc1tT/2oTPn9X9FURySYPDhYIEhBwfj1GDiYJZa0QDn3zAbnvjjGni+/Yao7bmw6obx5J/XwpRlZ3LA4Mdhz60Eh5/+azAMETgIFBHG0QGjM4PdfTb2oaMWfz8rjBAcGAMLDMk4MAglcHCdGlw4+oeUVTcYFmybA8+2XgcvtF8f6PmwIxc9kl163wXgqaiThaNp8glwz54r4Z6vroTRM8epjANjwMnBQZ4azIzJng2hOvLy9Kw4pJ4aauMI83qDhEHiCJQXzN8wBC6+a14AyIuMOtHEYvd8uRb6nTQ8cIuIVBzePnWw5vFF8FxbKLbt/7kCBk8ZxQJCDA4WGKJwyIEhhKMgkNGV/VQoEGehNfZxIBgdOAafdSoMnz6RBQYLjg4Yweq6KmoZChueXhqCJBY7ed5Exgu5icdhy6mAaavPgif/2EIhu4E1Gsot76yEujHDSBwEiujFQWdO9/83FEh6niv6cWAQ/DhSywfB7R9e0fWV8+4v1kG/saMk48BQbnnrMtjdfl3U9yKjtY8uhIxK+umU9Fc4LD+uBXZ+cyVxEnH1/MHr4Oa3V0DRoAaeU4MDhxbXGwI46CyevMMhPowp3gzlcGAMOAwiXBwICHVqzL1xNjzXei3xFZTuvq/WQ259i2QcwWrBnl8LJccOhfv/uw5eopYPhxc1kj36v6ug99AWBgxpLxp9+weXE58/sdFQlt8zlwNJ9OIIlhf6w0JDWrZPPA4uGOHgYIEhCkfoqdH7+BHw3P5riEVh65EfNoCjcIAkHF35g5UPPw6e3ruJgnFt1DX1sjNZYYjBMWnJZHixjfycyen6V5YhJFri4IPBhSM/kE6XY+gCErjNRFUcjaricFc3wzbq+S9+cMR0w6uXgqdqEAsIbhjd0e8p3g+OnXoyPPnLVfAytZiR7vZ3V4A95AWjxeMoGtQIu6gvHPhzFG4jzz1JAAfGgNMWRwBIWpq5C0hicl4pP4zoxOEoqofJl0wlvnrK6dJ75kFWbZNkHMymXHwGPP7TlfBK+zVEL8uORMDWI9+th9oTj0MwxOHwlPeD1Q9dQHxOlOpR6nNCwJCDQxQMIRwYBYkjACQpyd4NJNVXToKIfhwXbZ9DLEo4vdR2DZx/zQzw1tAnijQc3fWF6WvPgX//vIFAokYv7L8aZm+cBnYfhiGMw+GvgpNmnwIvtm4hPhdKZ89GJ4ggDjmnRpg43B1hIIY0/2AShQI4CBRCODAGXPfTqnELTgfyq60y7T64BaatORtcZQMl47DlBnMW18GcLdPhub0b4f/atigb9THSbXlmMWRVD2CBIYyj7wnHwt0fX0782dXomucXRykOxqnRiaMjnc2WLAKIHBgycAieGqE4kksaYPeBzcRXU6V77s9NcObyv4Ejv04SDmYZlQNh4U3/gN1/bYJXqeVWol1fr4Ehp49iQSEMI7W4Bi7ePov4s6pZ1XFNMYXD6s4DndWawgMkjFODEwcLDFE4Qr9TRX8bN6u2hfyqqmKPfbcOJi2ewoKCH0ewmkD+gYNg2fbZ8OrBzfBaG9mrItq9byOct2YqpBTQd9xiGMI4Tl8yCV7Yt4n486nZGUsnqoyDD4Y8HFa3nw+IRjgEfzLOjoPO3aeJ+KqqRQ9/tQbGnj8hFAYnjiAMXFFjM1x43XR4jYLyeht7GM+uPaup5Z4MmVX9WVAI46ga3gJ3vncZ8edRsxf/3AjHnz1KJAw+HBiE2jiC6ez2pC4gwe9ixQYOOnvBALjhxaXEImnVA5+vgkETR0nGYfPR0e8pXg1JeTVQ0twMTRNPgL9ffiYsv2M2bP73Alizcy4suH46nLZgItSOHga+wJth4m/b4thx0Bfha3bOgVcObCL+DGq24l+zwFteLRIHF4xwcGAUQji6YQSif1AY8l2sAJAwcBAoeHDIfFqFbzjMrhsM/0c98Pirr5Y99MUqKG0ZIhkHex3vMU6817g8HGNmnQLP/7aB+JjV7Nmf10PBgP4qP6WSg4MLBg8Q5utjBX9QqAEOQRh8OPCNhgPAW9MET36/hnpwro5Yrx28Gh74bCV4KgaSKCKAI720L7Wo64iPU+1OnjkGbIGfmMc4js6nWDrGDwoNDl82CUMuDhYYXTiEgLDBYMfBvOFwwvzJ8MpfG+EN6oGKZHe/dym4ims1wEHCcPj7wGU7ZhIfk5q9Tn1x2PrColAYWuAgYMjBQaLozk/fi6XvAmJyZrvF42hUAQfXqSGMg3nD4Yy1Z8Pu36+EN9s2RbT1D84Fb+XAMHBgELhuHPS/Nk8cAa+3biQ+DjV76vvVUNI4IBRGD8FhdefSQBjvfEu/aLWqODAIHhwCT6u4cDBvOLyE/j7/nxuIB1Xrlmw9D7KqaSgYhjI4ihoaYedHy4l/rpq99Pt6mL5yMgcMuTgwBpyGONKp0nLbu3HQQ//CFC8MjXBIPTl47sRNKRkIl991Prz61wZ4q21jxHqj9SqYvX4qeKsGsMMQjaP7aRUNY/ntM4h/lpq9efAq2PzYXMjo3UcGDgRDERwYhUI4qCypOZ+GAtFVJ5AgEA4ChdY4+E8NrrJrB8Ga++bAW9QD/Db1QEeyFdQ1wqDxx1PXCx1QRF1vBHFkVNTCieeNga3PLyT+vmr36BcroOnUYSQMVXF0wBCNgw+GeBx0ppTMBxAQnc5aUP8bCUMGDsHrDYRDEIZ8HMwbDksGD4FNu+ZRDzgNJbK9tm893Ewt+vzN58D4OeOgafxwqBkxBAobGqB8SDPUjR4Kx08dDWcvmwQrd8yA+967mPh7aNW5l00iL8JDcGAQPDikXm+ojoO+3gjFQWdMSl+FfegsvponxeNggSEKh9RTQxkczJsNq0ceB9t2L4J3qQc/HnebHj4fsiprSBRa4SBgyMGBQQjjoEu0OSdiHzqjt+yKEBiycGAQkcDBDgPfjdtv9HDY+cEyahk2xGP07HeXQ8PYIR2/BcgFowfgYIERLBcSTPY+2IcuMS1/YmzgwCCk42BWPXIYvPjTKniPWo4jvWnLJkCKv4JEoQgOjAHHhQOjUBcHnd5u92MfuoSUnNqoxCHq1BDCQcJg3nDoyOsH/U8aDm/vXwfvt115xHXXa4vAU0p/d4rj1BCFA8EQjaMDhhwcBAy5OIIwOgv5XZDOMThyckgUWuPgOjXUw4FvNBxx1onEAvXU3tq3FmpHNnfAEMKBQUQCB9+pwYfDLxpHAIhOdxT2oaN/SZ2EwYFD8GKcDwdGET04mDccnrNsErz5xxr4gFqkntZ7rethyXVnMWCIx2HPLoXsympwZHf+91wwlMYh9+SQhsPi8u7GNLrG6q/7hBeGKBwIRgziYHbxjdPgLQrKh23re0S7/rMUknLLZeEoa+wPT36yFD5qWwev/LAC6k9sAnsWA0lEcGAQ8nHQGeyu5dhF15gye18jjAODiDAOAoZyODpvNrRT/7rhvpnw7l80lHUx2fPfLIdhk49DMDhwoOuN9KIKuPSGqfBx21qiJz5aAnUjG1XE0QFDDg4CBT8Oaxp1gW5OHoZddI0h1T+FQCEXh+D1Bh8OjAFXKxoH/UqIY2eMhX9/tgxOmzcOUgprWWBw42DeP5VWUgtX3vsP+KB1LfyHWrpY6D0K9dJrp0IycWqIw3HK9JHw/r4rKAxreLv3/y6A2uENLCDE4MAoNMaR1pmP/c1zOifBlVNJwNACh+hTg44LBz4p+kHp4MFw96sLQr7iPfvfS2DcrJPB3nWSsMBgwcEsv38DXP3ALOqpxtqobscLF0BxfX8WGMI4qo+thwfemA+fUMsvuoNr4KZHZ0JFU51IGCJwEDDUw0HVFvKKisR4PCZbYf3hUBhycWAQLDAk4eiAIQKHnfprLrv57+QDyIh+ajDq7NEkDAEczBsOq4YNhm1PzyWedkS6139eCSeeM4IFBQeMLhwlkOLvDatuOQs+br0CPm1bLatPWlfDlvunQ3ZFlYY4/Dw4WGB04QjACGRyZjyPSRBjzql+OZZx0E+nXv9pBfVArRHVQ28vgkHjhjNgiMPBvBO37oRj4eF3FxMItY5+qrN48xngKqxkgSGM47TZo+CNn5bDZ9SSK9Gb/1sO/UfUK4QDg1AWB12i3bUIeyDGkFa8XBgHgqEFDgJGKA5fbSPsfGMB8dVMTJ8cXA0PvrkAqoYOZgHBAYPlNvXakS3wyvfLicXVosf/cxEUDeR6OsWPo7CuH+x6Zz611FcE+lzBPvxjJeRWVYnA0QEjQjjoDBZHM/ZAjMGZ3UyCiG4cV9x+Lny0fxXxFUxqnxy4Au5/bT7k0K9WKBEHs34jWuDDv+inKOSJpUaDxg4BW+ClPblih2HPKoPV26bCx/svJxZbqb6gWrX1TPVwECjk4bCk5hwK+T10zsnJMVjz6w+RMFhwSL0YD8GBMeC4cHTDyK5pgLd+Xk48KOH2aesq2P7sHHAV9eOBwY6jM0duFQwZP4xAqGSrbz0HknIrON6Dgx9H88kt8NG+lYEFltYqyX1+cBXYvRHGEXoxTmRKyXgRU+AcY3afp8LHgWAojMPbp55YbK7IB1l863f8PfhKhhJw4BdVmDJvLHz0V/gnXGfPf7EUvBU1QRgScTj95fDWj8vgS2pxterz1svBloFhMHAQMLTFYU3LAYPNtRg74BxDWsHCyODogCGAg+7GXbMCX520atFVp0N6aT/JODpf3ZBuwYYp8MHeFQRgsb1FXfSOm3FC95tiSsDhzCuHizdPIZaXvctF9V+RzVo2ViEcfpk4MIhQHHQJZkcFdsA5Bnu2j4JxWBEcUq83ROBwlw9geVDV7/MDl8O5S0+F9JK+LDD4cTCbu3oSPP3RYviEeu6PTyzcO9RTyIfeuBBGn308440x+XCEwrBllcLQ8UPg/V8vJRZXi976/mJIzSthx0EAwSC0wWF2ZX6DDQiOxVfzH81xEDBIHHQ5/RpAylcwpfvw9+UwZc4YSC2qIXAwX90QwwitnHraVgGNY1pg+sXjYMmmKbDq5qmBLlx3GoyfMQoK+9cxUAi9nTKJo6h/Ldz/0vnwFfUxa9vKQC9/uQjyq+nvYAnBCAcHCwwJOOhMttSb8f4LjtFTvIkdB0ahLQ46+r03vjiwkljccCMfaL5WwmvfLIEJM0dDkj8IRAqOrrJwGIR0HPTTqQVrJ8B/D67oWlYp7QmzLw+sgHW3nAHO3GJlcBAolMMRuP6wOIW/vYtH7/Ln2QoGHBY+NfhwYAw4Lhwkiu76Bjpn8anEAxupXvx0EYydNlIEDAYOAoYyOEaePhRe23MRY2FXaNrjb86BvkPqRD6lUhiH4MU4icPszP4R777oseRUf8qPA8EQjaMDhhwcHTcX0r8FePXd5wL+6qV85BLgvu7oiXcugJZTj2VBEQ6OMlE4PKVVcNczM7s+Fq37cv9ymDD9OARD64txPhyhMAKl5oDRnrYD773oMaYXropGHJ3RNxxO+ucY+PTPS4kHLJI98vocqD2+SSQODEIsju5TY/mWyfDVgcvgG+qfrXz035e/dbecDu6C0gjjwCCEcdAlmpPK8d6LH5fLYvPXtQnikHq9oQAO5m3qnvI6mHP5RPiq9bLAgpIPsvbtoT6WR16dQ11o95ePg0ARiqPllGZ469vFgBeW2bcq9uqXC6C8voYFBh8ODEIsDhYYcnB0wKAzp3i/wisveUxZlZ8qioOAER4OZulldbDiujOJJQknvBRS23NgOTz40mzI6E3/YE8ZHL0b6uClT+fDNweXE/88+dF/L/6+Y3TqtGEcPx3vgCEHB4FCPRzW1Gzq6ZVrJd53yaNP9R0rjANjwMk5OfpKwsG8Td2eWw3bH/8HyxKoGblQuA9/WgIjJg9jASGMw5HTGxavGw/ftF4asqhq9z3qzsfP5YChIQ7B6w1hHFZX1kFdyCu4hzGW3L77uHEIAeHCgUHgMAgeGAwczNJK+sGjr52v+VIxwwvG7KHds2D+6vEwYtJQqGgaCDlVNZBTWQ11wxtg4nkjYMOtZ8C73ywi/n/yu1R273y9EMoH9mVBEYM46NMjyf0h3nPZY/QUrpaOgwuGCBwECuk4mBUNqIcnqAvnb1vpBxsvjdTI5dGqHyLQl3uXwvnLToKouBtXIRx0BoMjB+95WBNYdNFPq+TiwCAEcEj8Baf+IwfD02/PIZbgSO1Hge596lxwZBbxwNAaB8aA48LRDYPOlOL9A+932GPMKHs+lnEw78Y9ftJx8Nx7c4mFkRJeJvFdEvW99OEcqB8+oAOGCBySYPDhYIEhBwfHqdGZ3pY0Au93+ON0Wq1+jAEX/TiYd+NOmH4CvPnlfGJBItFPklumeHv+WAJzqKdT3acGF44wTg3FcXCdGuw4LM5M+uJcnTF7y18hUQjhwBhwGIQYHBiDNBjM7L4qmDxrFHz47UJiYWK1/8nolvv+BrkVFQIwwsRBoODBoeD1BjODNflveK8VG2OSJ4uEwcAh9dTgxMECQwUczDtxXYV94JwLT4Q9e5cQyxPt/SyriwN9+M18GHxiPQNGz8VhdWa1UWucgPdayTnK7Om9i4AhBweBInI4mLeqpxfXwOxlY+GHA/QC4aUiFyxW+6l1KZy34ARIzqbvuI02HBgDTgaO1Czq9HCciRda8dHbM/2a4lDoeoM9tl9wCt6R6y6thhVXn0YsllC/RF1LiZ54+TzIKitHMOTgwBhwGITCOETBCOKgrj320euL91mVMbpLt/UUHBgGzlnQB7beO5VYMi36VYUK+3a8mJsoHFwwwsHBAkMUDjmnRhAHXaLJMRrvsWpjcmZ6YhcH96nBXTl1MV8Bj788A345SC5dtPdz6xJYvGqMxFc4lIvDH3U4zM6Mr6m1PQbvsapjSM+/RBwMuTgwBpxUGPJxMO/G9fauht3vzIZfqKX7jVo+4ei/LjL9enAJPPPaeeAuLOOA0fNxBK49LI5BeH/VH6/XaM2u/oPEgMMgeGCIwiHn1FAGB7PKpv6w++1Z8NtBcjHF9LvKffLNPBh+Cv22BFynRk/F0Q3D6qJwJKU+gldXszGk+KaQIBgwYhYHNwx8q/rgk5rg5XdnUUt5UcTay+iX/YvgyuvGC7xotAo4CBRCODAGXPg4rM7MVsXvuZI6psyyF44cHPjW9O7GnTUU3v7knyHLqnW7np0G/qpKARwYhcY4BE8NhEMUDBYc9Olhc16C91XzMdjTfNbcmv3CT6k4cETZxbgcHMxfjZ06ewR8vGcu/NG2WLO++H4enDq1BeS9F0cYMDhxsMAQhUPOqcGOw5Kc8ZlO6wtzrjGk+i+RjwNjwHHhwCAiiIPll5umzR0B3/06H/6kFljNLlkzBpy+kjgOJg5XVnuC0VaH9zSSc5Qls/enJAoOGHJwiDo1Io+D+auxqfnlMGP+SNjbupBa5kWi2ieyp1+aBqV11SJgHAE4OmB0ZrK7bsQLGvEJ3Kfl63NQGRxcp4aKOCTB4MMR+uqGgZfkKa6AJavGEEsup5/2XggjxzeCzSvm7c1UwEGgiAQO8tTozJyS8b1OqV+lVXr0Lv/M2MHBd2rwASmThCNQxzs4uQvL4aobxhNLL6a9BxbCzPnHgzO3tAOGEA6MQmMcgjD4cGAQ4nDYXJmH9Hq7H+9lVI0p8FSLBYbmODCIyOJgZs8qhQHHDYBnXj6XgIDbdON4SM4pZpwYCuAgYMjFwQKjC4cQEDYYQjgYQBAOqysTDPaUBXgfo3GOsWT30RyHuFNDCAcGoTyO0IpDi8h7jfPh8KuAA50aCpwcNA5zUtq3eBGjdgwOd3YoDLk4MAachjgIFHEcRLww1MNhcXoPUWt3NN7DqB69K2fmEYmD8V7j3IWJg4AhBwcGoTEO0U+ruGAEcVid3sMGg92H9y8W5iiTu/gxEgQHDNE42K43ROIgYMjFwQKjJ+EgUEQpDvq6w5o8FS9e7IzXa7Rkln0iiEPi9YZ4HHynBh+OMo1xYAw4LhwYhcY4BK83+HBgDDhhHCab62a8cjE3JlO2m1rG75XCIQ6GEA4MQgkcGAMPDNE4OmCIxsEHQy4OFhiicCAYonF0wGDFEYQRuCh3pD1DrVci3reYnARHRqU9p+qvmMBBoFAYh9SnVKrj8MvEgUFoiCPZ/ZFOl2zDexbTo0/OHGr1VbZJgxHFOMJ6SiUSBwFDDg4MQmMcUq83BHBYUjzfGY3JXrxfPWISkzNPFX8xHg04WGDEcfAUJg4CBjo5Ury/663WQrxXPWoMzqyzhXFodTGuBg4EIwQHxoDTEAeBIrpxWJzevxItSWV4n3rkGJ2+eSQKrXGUycSBQaiNA6PQGIfgxTgfDowBx4WjG0awjPZEc1JvvEc9eoypvrlcOMTBQEBEw9AIh9SnVHJwEDC0xoFgiMbRAUMMjuAPAnPx/hwRE4qE7eTAGFhgyMFBoOjpOPwycWAQGuNI8R4yGlMy8N4cUWNI8U6y5VQcjkocgtcb0YIDg9AYh9TrDRE4qGuO/SaTyYP35YicxBTPaGrx23sODowBJxVHBwxFcbDAiBocGb/02G/lyp1eSe4Gc1b5nyQIFhwEDD4cZTw4WGCIwoFgyMEhCkaYOAgUPDgErze0wWFKdn+ms1hS8X7ER0f/nCS9xOIt/ZaEoTUODEIJHFJPDQYOAoZcHCwwwsaBMeDEwQjgcKQ/r9M5rXgv4sMYs9mVbnIXvknAYMWBQWiMIyLXG3w4/CrgQDBE4xB/atAZbClbdSq/d0dPml7GVP+2sHAQKOI4iHhhaITDmdlusCafgxcgPiLG4MiYTOE4pCoOweuNaMGBQWiMQ4XrDUuKZ2+CyV6NH/f4SBi9zZVnySxriwwOBENVHB0w5OAgUEQ/DlNS+ts6h8OBH+/4yJo8vTEt/0kSBANG1OBgwCBwYBQa4xC83tAAhzMT9LaUGdSDehR+lOMT5hjsGS2WzBKFcGAQYnFgEBw4RJ0aPQwHHwwXfTeu+6DOYnHhxzU+So7HYzKl578vjIMFhhwcok4NLXH4VcCBYIjGIe7UsLgyDxnsrpt08VNDuzEke/5mzij5k4QRx0HiwCDE4sAgpOMwp3i+SzA7KvDjFx8tJi3NbEr1P2r1lh3ixSF4vREhHKJhCOFggSEHh6hTQxwOi9N7wGhxrtfFT43Ij8Ge1mJKL/iEgCEKB4IhGkcYMOTgIFBELY7DRkfqv43G5Ez8OMUnwmNMzvinJaP4L9lPqXoCDsHrDTVwdDydSnZ/rDcnH4cfl/hE1yQYUrwrJeMQBSNMHAQMrXEgGKJxcMEI4jCnZPzPYE0+Cz8Q8YnmsXqc+uTMtSSMWMDhl4kDg1AXh8WZ+ZvekvR36rOtx5/++MTImExOtz7Fu4qCcEhbHB0wWIFgEBrjEAWDG4eZgmEw0S/56THhz3d8YnXs9iR9csb51LK3KocDo2DBIfrUEMLBAkNjHBan92e9NWkk9dk04k9vfHrM5OkNjvRmsztvnzAOLhgq4SBQRAEOZxaYktLeNBgc2bpYe4uB+IQ9icbk7O0Wd4FEHFxANMIheDEeLo7AzzHAaHXO1cVRxIeeBLunj8nl+8DsyT/AjwOj6Ck4Ak+h9hmT0h4ym81p+PMTn/h0jd6RNsrkyn7dkpb3uyQcBAw1cGAMOEk4DptTvD8aklIfOWJetTA+yo7RmtrfkJyxw5Tq+4TC0M4KgxUHxoDDIHhgyMHBAcPiytxnSva8bbSlrjMak7Lwnzc+8QljcgxGW9oEY4rnNnNqzjvUordKx4FBKIGD+9Qwu7J+p0C8ZHS4NhksjkG6+DVFfDScY4y25DrqKdlsY1LGNrMz6xVq0feSKGTikHi9YXFlfWdO9jxrsKdeY7C6/qa3WgvwBxyf+ER+LBZXL2vqQIMtdVKiPW2hMclztdHpfZD6av6qJdX3HQXikGQcqTl7rc7sz0wp3hdNKZ77KZTr6N/M01udoxLMjsr4r6/Gp2eNy2XROZ1Wszk1jf4Zg95u9zMzmZwe+n8L/HXxW8bjE5/4ROP8Pzl57LjnDcA9AAAAAElFTkSuQmCC'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Fuse\r\n","import React from 'react'\r\n\r\nconst Celo = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 233 232'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='233' height='232' fill='url(#pattern7)' />\r\n <defs>\r\n <pattern\r\n id='pattern7'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_1_7' transform='scale(0.00429185 0.00431034)' />\r\n </pattern>\r\n <image\r\n id='image0_1_7'\r\n width='233'\r\n height='232'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Celo\r\n","import React from 'react'\r\n\r\nconst GoodDollar = ({ width = 37, height = 37, ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 64 64'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <rect width='64' height='64' fill='url(#pattern8)' />\r\n <defs>\r\n <pattern\r\n id='pattern8'\r\n patternContentUnits='objectBoundingBox'\r\n width='1'\r\n height='1'\r\n >\r\n <use href='#image0_2_2' transform='scale(0.015625)' />\r\n </pattern>\r\n <image\r\n id='image0_2_2'\r\n width='64'\r\n height='64'\r\n href='data:image/png;base64,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'\r\n />\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default GoodDollar\r\n","import React from 'react'\r\n\r\nconst Copy = ({ width = 20, height = 20, fill = '#979797', ...rest }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 330 330'\r\n xmlSpace='preserve'\r\n xmlns='http://www.w3.org/2000/svg'\r\n fill={fill}\r\n {...rest}\r\n >\r\n <g>\r\n <path\r\n d='M35,270h45v45c0,8.284,6.716,15,15,15h200c8.284,0,15-6.716,15-15V75c0-8.284-6.716-15-15-15h-45V15\r\n c0-8.284-6.716-15-15-15H35c-8.284,0-15,6.716-15,15v240C20,263.284,26.716,270,35,270z M280,300H110V90h170V300z M50,30h170v30H95\r\n c-8.284,0-15,6.716-15,15v165H50V30z'\r\n />\r\n <path d='M155,120c-8.284,0-15,6.716-15,15s6.716,15,15,15h80c8.284,0,15-6.716,15-15s-6.716-15-15-15H155z' />\r\n <path d='M235,180h-80c-8.284,0-15,6.716-15,15s6.716,15,15,15h80c8.284,0,15-6.716,15-15S243.284,180,235,180z' />\r\n <path\r\n d='M235,240h-80c-8.284,0-15,6.716-15,15c0,8.284,6.716,15,15,15h80c8.284,0,15-6.716,15-15C250,246.716,243.284,240,235,240z\r\n '\r\n />\r\n </g>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Copy\r\n","export const SOLANA_USDK_ADDRESS =\r\n 'GkbnUDkymDTF4U6Z5wM5kKJn3GmGndMn2rN5typmyUHY'\r\nexport const ETHEREUM_USDK_ADDRESS =\r\n '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5'\r\nexport const POLYGON_USDK_ADDRESS = '0x5bd4865a6dEd507dA08ed1aBE3cd971a7e0405D7'\r\nexport const AVAX_USDK_ADDRESS = '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5'\r\nexport const FUSE_GDOLLAR_ADDRESS = '0x79BeecC4b165Ccf547662cB4f7C0e83b3796E5b3'\r\nexport const CELO_GDOLLAR_ADDRESS = '0xAB89A70d1Af04ED8badf915Ba1f5b28E9F322624'\r\n","import { clusterApiUrl } from '@solana/web3.js'\r\nimport {\r\n EthereumIcon,\r\n PolygonIcon,\r\n AvalancheIcon,\r\n USDTIcon,\r\n GoodDollarIcon,\r\n FuseIcon,\r\n CeloIcon,\r\n SolanaIcon\r\n} from '../assets/icons'\r\nimport {\r\n AVAX_USDK_ADDRESS,\r\n CELO_GDOLLAR_ADDRESS,\r\n ETHEREUM_USDK_ADDRESS,\r\n FUSE_GDOLLAR_ADDRESS,\r\n POLYGON_USDK_ADDRESS,\r\n SOLANA_USDK_ADDRESS\r\n} from './config'\r\n\r\nexport enum ChainName {\r\n ETHEREUM = 'ETH',\r\n POLYGON = 'POL',\r\n AVALANCHE = 'AVX',\r\n SOLANA = 'SOL',\r\n FUSE = 'FUS',\r\n CELO = 'CEL'\r\n}\r\n\r\nexport enum SupportedChainId {\r\n ETHEREUM = 11155111,\r\n POLYGON = 80001,\r\n AVALANCHE = 43113,\r\n FUSE = 122,\r\n CELO = 42220\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_IDS: { [chainName: string]: SupportedChainId } = {\r\n [ChainName.ETHEREUM]: SupportedChainId.ETHEREUM,\r\n [ChainName.POLYGON]: SupportedChainId.POLYGON,\r\n [ChainName.AVALANCHE]: SupportedChainId.AVALANCHE,\r\n [ChainName.FUSE]: SupportedChainId.FUSE,\r\n [ChainName.CELO]: SupportedChainId.CELO\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_STRING: { [chainName: string]: string } = {\r\n [ChainName.ETHEREUM]: 'Ethereum',\r\n [ChainName.POLYGON]: 'Polygon',\r\n [ChainName.AVALANCHE]: 'Avalanche',\r\n [ChainName.FUSE]: 'Fuse',\r\n [ChainName.CELO]: 'Celo',\r\n [ChainName.SOLANA]: 'Solana'\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_EXPLORER: { [chainName: string]: string } = {\r\n [ChainName.ETHEREUM]: 'sepolia.etherscan.io',\r\n [ChainName.POLYGON]: 'mumbai.polygonscan.com',\r\n [ChainName.AVALANCHE]: 'testnet.snowtrace.io',\r\n [ChainName.FUSE]: 'explorer.fuse.io',\r\n [ChainName.CELO]: 'explorer.celo.org',\r\n [ChainName.SOLANA]: 'solscan.io/blocks?cluster=devnet'\r\n}\r\n\r\nexport const CHAIN_NAMES_TO_GECKO_ID: { [chainName: string]: string } = {\r\n [ChainName.ETHEREUM]: 'ethereum',\r\n [ChainName.POLYGON]: 'matic-network',\r\n [ChainName.AVALANCHE]: 'avalanche-2',\r\n [ChainName.FUSE]: 'fuse-network-token',\r\n [ChainName.CELO]: 'celo',\r\n [ChainName.SOLANA]: 'solana'\r\n}\r\n\r\nexport const CHAIN_IDS_TO_NAMES: { [chainId: number]: string } = {\r\n [SupportedChainId.ETHEREUM]: ChainName.ETHEREUM,\r\n [SupportedChainId.POLYGON]: ChainName.POLYGON,\r\n [SupportedChainId.AVALANCHE]: ChainName.AVALANCHE,\r\n [SupportedChainId.FUSE]: ChainName.FUSE,\r\n [SupportedChainId.CELO]: ChainName.CELO\r\n}\r\n\r\nexport const networkOptions = [\r\n {\r\n id: ChainName.ETHEREUM,\r\n label: 'Ethereum',\r\n icon: EthereumIcon\r\n },\r\n {\r\n id: ChainName.POLYGON,\r\n label: 'Polygon',\r\n icon: PolygonIcon\r\n },\r\n {\r\n id: ChainName.AVALANCHE,\r\n label: 'Avalanche',\r\n icon: AvalancheIcon\r\n },\r\n {\r\n id: 'FUS',\r\n label: 'Fuse',\r\n icon: FuseIcon\r\n },\r\n {\r\n id: 'CEL',\r\n label: 'Celo',\r\n icon: CeloIcon\r\n },\r\n {\r\n id: 'SOL',\r\n label: 'Solana',\r\n icon: SolanaIcon\r\n }\r\n]\r\nexport const getNetworkOption = (id: string) => {\r\n const index = networkOptions.findIndex((item) => item.id === id)\r\n if (index < 0) return\r\n return networkOptions[index]\r\n}\r\n\r\nexport type Cluster = 'devnet' | 'testnet' | 'mainnet'\r\nexport const CLUSTER: Cluster = 'devnet'\r\nexport const SOLANA_HOST = clusterApiUrl(CLUSTER)\r\nexport const isEVMChain = (chainId: string) =>\r\n chainId === ChainName.ETHEREUM ||\r\n chainId === ChainName.POLYGON ||\r\n chainId === ChainName.AVALANCHE ||\r\n chainId === ChainName.FUSE ||\r\n chainId === ChainName.CELO\r\n\r\ntype CoinOptions = {\r\n [key: string]: any\r\n}\r\n\r\nexport const COIN_LIST: CoinOptions = {\r\n USDK: {\r\n symbol: 'USDK',\r\n label: 'USDK',\r\n icon: USDTIcon,\r\n address: {\r\n SOL: SOLANA_USDK_ADDRESS,\r\n ETH: ETHEREUM_USDK_ADDRESS,\r\n POL: POLYGON_USDK_ADDRESS,\r\n AVX: AVAX_USDK_ADDRESS\r\n },\r\n decimals: 6\r\n },\r\n GDOLLAR: {\r\n symbol: 'G$',\r\n label: 'GDOLLAR',\r\n icon: GoodDollarIcon,\r\n address: {\r\n FUS: FUSE_GDOLLAR_ADDRESS,\r\n CEL: CELO_GDOLLAR_ADDRESS\r\n }\r\n }\r\n}\r\n\r\nexport enum TransactionStatus {\r\n AVAILABLE = 'Available',\r\n CONFIRMED = 'Confirmed',\r\n PAID = 'Paid',\r\n COMPLETED = 'Completed',\r\n FAILED = 'FailedToPay',\r\n UNAVAILABLE = 'UnAvailable',\r\n KEYSIGNED = 'KeySigned'\r\n}\r\n\r\nexport const tooltipInfo = [\r\n ['Initialize Kima transaction'],\r\n ['Transfer liquidity from source chain'],\r\n ['Key signing'],\r\n ['Transfer liquidity to target chain'],\r\n []\r\n]\r\n","export { ChainName as SupportNetworks } from './utils/constants'\r\nimport { ChainName as SupportNetworks } from './utils/constants'\r\n\r\nexport enum FontSizeOptions {\r\n large = 'large',\r\n medium = 'medium',\r\n small = 'small'\r\n}\r\n\r\nexport enum ModeOptions {\r\n payment = 'payment',\r\n bridge = 'bridge',\r\n status = 'status'\r\n}\r\n\r\nexport enum CurrencyOptions {\r\n USDK = 'USDK',\r\n G$ = 'GDOLLAR'\r\n}\r\n\r\nexport enum ThemeOptions {\r\n light = 'light',\r\n dark = 'dark'\r\n}\r\n\r\nexport interface TransactionOption {\r\n targetChain: SupportNetworks\r\n targetAddress: string\r\n amount: number\r\n}\r\n\r\nexport interface TitleOption {\r\n initialTitle?: string\r\n confirmTitle?: string\r\n}\r\n\r\nexport interface DefaultProps {\r\n theme?: ThemeOptions\r\n fontSize?: FontSizeOptions\r\n}\r\n\r\nexport interface TransactionData {\r\n sourceChain?: string\r\n targetChain?: string\r\n tssPullHash?: string\r\n tssReleaseHash?: string\r\n symbol?: string\r\n amount?: number\r\n kimaTxHash?: string\r\n}\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\n// import { WalletName } from '@solana/wallet-adapter-base'\r\nimport { ModeOptions, ThemeOptions, TransactionOption } from '../interface'\r\nimport { COIN_LIST } from '../utils/constants'\r\n\r\nexport interface OptionState {\r\n theme: ThemeOptions // light or dark\r\n mode: ModeOptions // payment or bridge\r\n originNetwork: string // origin network on UI\r\n targetNetwork: string // target network on UI\r\n targetAddress: string // target address on UI\r\n connectModal: boolean // solana wallet connection modal state - open or closed\r\n helpPopup: boolean // shows popup to show help instructions\r\n hashPopup: boolean // shows popup to show hashes of transactions (kima tx, pull & release hashes)\r\n solanaProvider: any // selected solana wallet provider - phantom, solflare or ...\r\n submitted: boolean // if transaction is submitted, shows Transaction Widget to monitor status\r\n amount: number // amount input\r\n isApproving: boolean // is waiting for approval\r\n isSubmitting: boolean // is waiting for submission\r\n isConfirming: boolean // is on the confirmation page, disable service fee update\r\n feeDeduct: boolean // whether deduct fee from amount or not\r\n transactionOption?: TransactionOption // input option from dApp\r\n errorHandler: Function // error callback function from dApp\r\n closeHandler: Function // callback function for close event\r\n successHandler: Function // callback function for success event\r\n serviceFee: number // service fee from kima node\r\n backendUrl: string // URL for kima-transaction-backend component\r\n nodeProviderQuery: string // REST API endpoint to query kima node\r\n txId: number // transaction id to monitor it's status\r\n currencyOptions: any // Currency options available between source and target chains\r\n}\r\n\r\nconst initialState: OptionState = {\r\n theme: ThemeOptions.light,\r\n mode: ModeOptions.bridge,\r\n originNetwork: 'ETH',\r\n targetNetwork: 'POL',\r\n targetAddress: '',\r\n connectModal: false,\r\n helpPopup: false,\r\n hashPopup: false,\r\n solanaProvider: undefined,\r\n submitted: false,\r\n amount: 0,\r\n isApproving: false,\r\n isSubmitting: false,\r\n isConfirming: false,\r\n feeDeduct: false,\r\n errorHandler: () => void 0,\r\n closeHandler: () => void 0,\r\n successHandler: () => void 0,\r\n serviceFee: -1,\r\n backendUrl: '',\r\n nodeProviderQuery: '',\r\n txId: -1,\r\n currencyOptions: COIN_LIST['USDK']\r\n}\r\n\r\nexport const optionSlice = createSlice({\r\n name: 'option',\r\n initialState,\r\n reducers: {\r\n initialize: (state) => {\r\n state.submitted = false\r\n state.isConfirming = false\r\n state.isApproving = false\r\n state.txId = -1\r\n state.serviceFee = -1\r\n state.amount = 0\r\n state.targetAddress = ''\r\n },\r\n setTheme: (state, action: PayloadAction<ThemeOptions>) => {\r\n state.theme = action.payload\r\n },\r\n setOriginNetwork: (state, action: PayloadAction<string>) => {\r\n state.originNetwork = action.payload\r\n },\r\n setTargetNetwork: (state, action: PayloadAction<string>) => {\r\n state.targetNetwork = action.payload\r\n },\r\n setTargetAddress: (state, action: PayloadAction<string>) => {\r\n state.targetAddress = action.payload\r\n },\r\n setConnectModal: (state, action: PayloadAction<boolean>) => {\r\n state.connectModal = action.payload\r\n },\r\n setHelpPopup: (state, action: PayloadAction<boolean>) => {\r\n state.helpPopup = action.payload\r\n },\r\n setHashPopup: (state, action: PayloadAction<boolean>) => {\r\n state.hashPopup = action.payload\r\n },\r\n setSolanaProvider: (state, action: PayloadAction<any>) => {\r\n state.solanaProvider = action.payload\r\n },\r\n setSubmitted: (state, action: PayloadAction<boolean>) => {\r\n state.submitted = action.payload\r\n },\r\n setTransactionOption: (state, action: PayloadAction<TransactionOption>) => {\r\n state.transactionOption = action.payload\r\n },\r\n setAmount: (state, action: PayloadAction<number>) => {\r\n state.amount = action.payload\r\n },\r\n setApproving: (state, action: PayloadAction<boolean>) => {\r\n state.isApproving = action.payload\r\n },\r\n setSubmitting: (state, action: PayloadAction<boolean>) => {\r\n state.isSubmitting = action.payload\r\n },\r\n setErrorHandler: (state, action: PayloadAction<Function>) => {\r\n state.errorHandler = action.payload\r\n },\r\n setCloseHandler: (state, action: PayloadAction<Function>) => {\r\n state.closeHandler = action.payload\r\n },\r\n setSuccessHandler: (state, action: PayloadAction<Function>) => {\r\n state.successHandler = action.payload\r\n },\r\n setServiceFee: (state, action: PayloadAction<number>) => {\r\n state.serviceFee = action.payload\r\n },\r\n setMode: (state, action: PayloadAction<ModeOptions>) => {\r\n state.mode = action.payload\r\n },\r\n setConfirming: (state, action: PayloadAction<boolean>) => {\r\n state.isConfirming = action.payload\r\n },\r\n setFeeDeduct: (state, action: PayloadAction<boolean>) => {\r\n state.feeDeduct = action.payload\r\n },\r\n setBackendUrl: (state, action: PayloadAction<string>) => {\r\n state.backendUrl = action.payload\r\n },\r\n setNodeProviderQuery: (state, action: PayloadAction<string>) => {\r\n state.nodeProviderQuery = action.payload\r\n },\r\n setTxId: (state, action: PayloadAction<number>) => {\r\n state.txId = action.payload\r\n },\r\n setCurrencyOptions: (state, action: PayloadAction<any>) => {\r\n state.currencyOptions = action.payload\r\n }\r\n }\r\n})\r\n\r\nexport const {\r\n initialize,\r\n setTheme,\r\n setOriginNetwork,\r\n setTargetNetwork,\r\n setTargetAddress,\r\n setConnectModal,\r\n setHelpPopup,\r\n setHashPopup,\r\n setSolanaProvider,\r\n setSubmitted,\r\n setTransactionOption,\r\n setAmount,\r\n setApproving,\r\n setSubmitting,\r\n setConfirming,\r\n setErrorHandler,\r\n setCloseHandler,\r\n setSuccessHandler,\r\n setServiceFee,\r\n setMode,\r\n setFeeDeduct,\r\n setBackendUrl,\r\n setNodeProviderQuery,\r\n setTxId,\r\n setCurrencyOptions\r\n} = optionSlice.actions\r\n\r\nexport default optionSlice.reducer\r\n","import { configureStore } from '@reduxjs/toolkit'\r\nimport optionReducer from './optionSlice'\r\n\r\nexport const store = configureStore({\r\n reducer: {\r\n option: optionReducer\r\n },\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: false\r\n })\r\n})\r\n\r\n// Infer the `RootState` and `AppDispatch` types from the store itself\r\nexport type RootState = ReturnType<typeof store.getState>\r\n// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState}\r\nexport type AppDispatch = typeof store.dispatch\r\n","import { RootState } from '.'\r\n\r\n/*\r\n * Option\r\n */\r\n\r\nexport const selectTheme = (state: RootState) => state.option.theme\r\nexport const selectOriginNetwork = (state: RootState) =>\r\n state.option.originNetwork\r\nexport const selectTargetNetwork = (state: RootState) =>\r\n state.option.targetNetwork\r\nexport const selectTargetAddress = (state: RootState) =>\r\n state.option.targetAddress\r\nexport const selectConnectModal = (state: RootState) =>\r\n state.option.connectModal\r\nexport const selectHelpPopup = (state: RootState) => state.option.helpPopup\r\nexport const selectHashPopup = (state: RootState) => state.option.hashPopup\r\nexport const selectSolanaProvider = (state: RootState) =>\r\n state.option.solanaProvider\r\nexport const selectSubmitted = (state: RootState) => state.option.submitted\r\nexport const selectTransactionOption = (state: RootState) =>\r\n state.option.transactionOption\r\nexport const selectAmount = (state: RootState) => state.option.amount\r\nexport const selectApproving = (state: RootState) => state.option.isApproving\r\nexport const selectSubmitting = (state: RootState) => state.option.isSubmitting\r\nexport const selectErrorHandler = (state: RootState) =>\r\n state.option.errorHandler\r\nexport const selectCloseHandler = (state: RootState) =>\r\n state.option.closeHandler\r\nexport const selectSuccessHandler = (state: RootState) =>\r\n state.option.successHandler\r\nexport const selectServiceFee = (state: RootState) => state.option.serviceFee\r\nexport const selectMode = (state: RootState) => state.option.mode\r\nexport const selectConfirming = (state: RootState) => state.option.isConfirming\r\nexport const selectFeeDeduct = (state: RootState) => state.option.feeDeduct\r\nexport const selectBackendUrl = (state: RootState) => state.option.backendUrl\r\nexport const selectNodeProviderQuery = (state: RootState) =>\r\n state.option.nodeProviderQuery\r\nexport const selectTxId = (state: RootState) => state.option.txId\r\nexport const selectCurrencyOptions = (state: RootState) =>\r\n state.option.currencyOptions\r\n","import detectEthereumProvider from '@metamask/detect-provider'\r\nimport { BigNumber, ethers } from 'ethers'\r\nimport React, {\r\n ReactNode,\r\n useCallback,\r\n useContext,\r\n useMemo,\r\n useState\r\n} from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectErrorHandler } from '../store/selectors'\r\n\r\nexport type Provider = ethers.providers.Web3Provider | undefined\r\nexport type Signer = ethers.Signer | undefined\r\n\r\ninterface IEthereumProviderContext {\r\n connect(): void\r\n disconnect(): void\r\n provider: Provider\r\n chainId: number | undefined\r\n signer: Signer\r\n signerAddress: string | undefined\r\n providerError: string | null\r\n}\r\n\r\nconst EthereumProviderContext = React.createContext<IEthereumProviderContext>({\r\n connect: () => {},\r\n disconnect: () => {},\r\n provider: undefined,\r\n chainId: undefined,\r\n signer: undefined,\r\n signerAddress: undefined,\r\n providerError: null\r\n})\r\nexport const EthereumProvider = ({ children }: { children: ReactNode }) => {\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const [providerError, setProviderError] = useState<string | null>(null)\r\n const [provider, setProvider] = useState<Provider>(undefined)\r\n const [chainId, setChainId] = useState<number | undefined>(undefined)\r\n const [signer, setSigner] = useState<Signer>(undefined)\r\n const [signerAddress, setSignerAddress] = useState<string | undefined>(\r\n undefined\r\n )\r\n const connect = useCallback(() => {\r\n setProviderError(null)\r\n detectEthereumProvider()\r\n .then((detectedProvider) => {\r\n if (detectedProvider) {\r\n const provider = new ethers.providers.Web3Provider(\r\n // @ts-ignore\r\n detectedProvider,\r\n 'any'\r\n )\r\n provider\r\n .send('eth_requestAccounts', [])\r\n .then(() => {\r\n setProviderError(null)\r\n setProvider(provider)\r\n provider\r\n .getNetwork()\r\n .then((network) => {\r\n setChainId(network.chainId)\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while getting the network'\r\n )\r\n })\r\n const signer = provider.getSigner()\r\n setSigner(signer)\r\n signer\r\n .getAddress()\r\n .then((address) => {\r\n setSignerAddress(address)\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while getting the signer address'\r\n )\r\n })\r\n // TODO: try using ethers directly\r\n // @ts-ignore\r\n if (detectedProvider && detectedProvider.on) {\r\n // @ts-ignore\r\n detectedProvider.on('chainChanged', (chainId) => {\r\n try {\r\n setChainId(BigNumber.from(chainId).toNumber())\r\n } catch (e) {\r\n errorHandler(e)\r\n }\r\n })\r\n // @ts-ignore\r\n detectedProvider.on('accountsChanged', (accounts) => {\r\n try {\r\n const signer = provider.getSigner()\r\n setSigner(signer)\r\n signer\r\n .getAddress()\r\n .then((address) => {\r\n setSignerAddress(address)\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while getting the signer address'\r\n )\r\n })\r\n } catch (e) {\r\n errorHandler(e)\r\n }\r\n })\r\n }\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError(\r\n 'An error occurred while requesting eth accounts'\r\n )\r\n })\r\n } else {\r\n setProviderError('Please install MetaMask')\r\n }\r\n })\r\n .catch((e) => {\r\n errorHandler(e)\r\n setProviderError('Please install MetaMask')\r\n })\r\n }, [])\r\n const disconnect = useCallback(() => {\r\n setProviderError(null)\r\n setProvider(undefined)\r\n setChainId(undefined)\r\n setSigner(undefined)\r\n setSignerAddress(undefined)\r\n }, [])\r\n const contextValue = useMemo(\r\n () => ({\r\n connect,\r\n disconnect,\r\n provider,\r\n chainId,\r\n signer,\r\n signerAddress,\r\n providerError\r\n }),\r\n [\r\n connect,\r\n disconnect,\r\n provider,\r\n chainId,\r\n signer,\r\n signerAddress,\r\n providerError\r\n ]\r\n )\r\n return (\r\n <EthereumProviderContext.Provider value={contextValue}>\r\n {children}\r\n </EthereumProviderContext.Provider>\r\n )\r\n}\r\nexport const useEthereumProvider = () => {\r\n return useContext(EthereumProviderContext)\r\n}\r\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React from 'react'\r\n\r\nconst Loading180Ring = ({ width, height, fill = 'white' }: any) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n fill={fill}\r\n viewBox='0 0 24 24'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path d='M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z'>\r\n <animateTransform\r\n attributeName='transform'\r\n type='rotate'\r\n dur='0.75s'\r\n values='0 12 12;360 12 12'\r\n repeatCount='indefinite'\r\n />\r\n </path>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default Loading180Ring\r\n","import React, { Dispatch, SetStateAction } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { CheckIcon, WarningIcon } from '../../assets/icons'\r\nimport { Loading180Ring } from '../../assets/loading'\r\nimport { ThemeOptions } from '../../interface'\r\nimport { selectTheme } from '../../store/selectors'\r\n\r\ninterface Props {\r\n step: number\r\n focus: number\r\n setFocus: Dispatch<SetStateAction<number>>\r\n errorStep: number\r\n loadingStep: number\r\n}\r\n\r\nconst stepInfo = [\r\n {\r\n title: 'Initialize'\r\n },\r\n {\r\n title: 'Source Transfer'\r\n },\r\n {\r\n title: 'Validation'\r\n },\r\n {\r\n title: 'Target Transfer'\r\n },\r\n {\r\n title: 'Finalize'\r\n }\r\n]\r\n\r\nconst Progressbar = ({ step, errorStep, setFocus, loadingStep }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div className='kima-progressbar'>\r\n <div\r\n className='value'\r\n style={{\r\n width: `calc(${(step * 100) / 4}% + ${\r\n step > 0 && step < 3 ? 0.5 : 0\r\n }em)`\r\n }}\r\n />\r\n <div className='step-indicators'>\r\n {stepInfo.map((item, index) => (\r\n <div\r\n key={item.title}\r\n className={`step ${step >= index ? 'active' : ''}`}\r\n onClick={() => {\r\n if (index < 4) setFocus(index)\r\n }}\r\n >\r\n <div className='step-info'>\r\n {index === loadingStep ? (\r\n <Loading180Ring\r\n fill={theme === ThemeOptions.dark ? 'white' : '#5aa0db'}\r\n />\r\n ) : step >= index ? (\r\n index === errorStep ? (\r\n <WarningIcon />\r\n ) : (\r\n <CheckIcon />\r\n )\r\n ) : null}\r\n <span>{item.title}</span>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Progressbar\r\n","import React from 'react'\r\n\r\ninterface Props {\r\n to: string\r\n children?: any\r\n className?: string\r\n rest?: any\r\n}\r\n\r\nconst ExternalLink = ({ to, children, className, rest }: Props) => (\r\n <a\r\n className={className}\r\n href={to}\r\n target='_blank'\r\n rel='noreferrer noopener'\r\n {...rest}\r\n >\r\n {children}\r\n </a>\r\n)\r\n\r\nexport default ExternalLink\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { ArrowRightIcon, WarningIcon } from '../../assets/icons'\r\nimport { selectTheme } from '../../store/selectors'\r\nimport { getNetworkOption } from '../../utils/constants'\r\n\r\ninterface Props {\r\n hasError: boolean\r\n sourceChain: string\r\n targetChain: string\r\n}\r\n\r\nconst NetworkLabel = ({ sourceChain, targetChain, hasError }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n const SourceInfo = getNetworkOption(sourceChain)\r\n const TargetInfo = getNetworkOption(targetChain)\r\n\r\n return (\r\n <div className='kima-card-network-label'>\r\n <div className='label'>\r\n <div className='icon-wrapper'>{SourceInfo && <SourceInfo.icon />}</div>\r\n {SourceInfo?.label}\r\n </div>\r\n <ArrowRightIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n <div className='label'>\r\n <div className='icon-wrapper'>{TargetInfo && <TargetInfo.icon />}</div>\r\n {TargetInfo?.label}\r\n </div>\r\n {hasError && (\r\n <div className='warning-container'>\r\n <WarningIcon />\r\n <span>1 issue</span>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default NetworkLabel\r\n","import React from 'react'\r\nimport { Loading180Ring } from '../../assets/loading'\r\n\r\ninterface Props {\r\n clickHandler?: any\r\n children?: any\r\n className?: string\r\n isLoading?: boolean\r\n}\r\n\r\nconst PrimaryButton = ({\r\n className,\r\n clickHandler,\r\n children,\r\n isLoading = false\r\n}: Props) => (\r\n <button className={`primary-button ${className}`} onClick={clickHandler}>\r\n {isLoading && (\r\n <div className='loading-indicator'>\r\n <Loading180Ring width={24} height={24} fill='white' />\r\n </div>\r\n )}\r\n {children}\r\n </button>\r\n)\r\n\r\nexport default PrimaryButton\r\n","import React from 'react'\r\n\r\ninterface Props {\r\n clickHandler?: any\r\n children?: any\r\n className?: string\r\n theme?: string\r\n style?: any\r\n}\r\n\r\nconst SecondaryButton = ({\r\n className,\r\n clickHandler,\r\n children,\r\n theme,\r\n style\r\n}: Props) => (\r\n <button\r\n className={`secondary-button ${className} ${theme}`}\r\n onClick={clickHandler}\r\n {...style}\r\n >\r\n {children}\r\n </button>\r\n)\r\n\r\nexport default SecondaryButton\r\n","export const fetchWrapper = {\r\n get,\r\n post\r\n}\r\n\r\nfunction get(url: string) {\r\n const requestOptions: any = {\r\n method: 'GET'\r\n }\r\n\r\n requestOptions.headers = {\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n return fetch(url, requestOptions).then(handleResponse)\r\n}\r\n\r\nfunction post(url: string, body: any) {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // Authorization: `Bearer ${token}`\r\n },\r\n body: body\r\n }\r\n\r\n return fetch(url, requestOptions).then(handleResponse)\r\n}\r\n\r\nfunction handleResponse(response: Response) {\r\n return response.text().then((text) => {\r\n let data = text\r\n\r\n try {\r\n data = JSON.parse(text)\r\n } catch (error) {\r\n data = text\r\n }\r\n\r\n if (!response.ok) {\r\n if ([401, 403].includes(response.status)) {\r\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n }\r\n\r\n // const error = (data && data.message) || response.statusText;\r\n const error = data || response.statusText\r\n\r\n return Promise.reject({ status: response.status, error })\r\n }\r\n\r\n return data\r\n })\r\n}\r\n","import { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport { selectNodeProviderQuery } from '../store/selectors'\r\nimport { networkOptions } from '../utils/constants'\r\n\r\nexport default function useNetworkOptions() {\r\n const [options, setOptions] = useState<Array<any>>(networkOptions)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/getChains`\r\n )\r\n\r\n setOptions(\r\n networkOptions.filter(\r\n (network) =>\r\n networks.Chains.findIndex((id: any) => id === network.id) >= 0\r\n )\r\n )\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery])\r\n\r\n return useMemo(\r\n () => ({\r\n options\r\n }),\r\n [options]\r\n )\r\n}\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useNetworkOptions from '../../hooks/useNetworkOptions'\r\nimport { ArrowIcon } from '../../assets/icons'\r\nimport {\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetNetwork,\r\n selectTheme\r\n} from '../../store/selectors'\r\nimport {\r\n setOriginNetwork,\r\n setServiceFee,\r\n setTargetNetwork\r\n} from '../../store/optionSlice'\r\nimport { ChainName } from '../../utils/constants'\r\nimport { ModeOptions } from '../../interface'\r\nimport { fetchWrapper } from '../../helpers/fetch-wrapper'\r\n\r\ninterface Props {\r\n isOriginChain?: boolean\r\n}\r\n\r\nconst Network = ({ isOriginChain = true }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n const mode = useSelector(selectMode)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const dispatch = useDispatch()\r\n const sliderRef = useRef<any>()\r\n const [availableNetworks, setAvailableNetworks] = useState<Array<ChainName>>(\r\n []\r\n )\r\n const { options: networkOptions } = useNetworkOptions()\r\n const selectedNetwork = useMemo(() => {\r\n const index = networkOptions.findIndex(\r\n (option) => option.id === (isOriginChain ? originNetwork : targetNetwork)\r\n )\r\n if (index >= 0) return networkOptions[index]\r\n return networkOptions[0]\r\n }, [originNetwork, targetNetwork, networkOptions])\r\n const networks = useMemo(() => {\r\n if (isOriginChain && mode === ModeOptions.bridge) {\r\n return networkOptions\r\n }\r\n\r\n return networkOptions.filter(\r\n (network) =>\r\n availableNetworks.findIndex((id: any) => id === network.id) >= 0\r\n )\r\n }, [networkOptions, isOriginChain, availableNetworks])\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.bridge) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n if (isOriginChain) {\r\n dispatch(setTargetNetwork(networks.Chains[0]))\r\n }\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, originNetwork, mode, isOriginChain])\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.payment) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, mode])\r\n\r\n useEffect(() => {\r\n let isDown = false\r\n let startX: number\r\n let scrollLeft: number\r\n\r\n sliderRef.current?.addEventListener('mousedown', (e: any) => {\r\n isDown = true\r\n sliderRef.current?.classList.add('active')\r\n startX = e.pageX - sliderRef.current?.offsetLeft\r\n scrollLeft = sliderRef.current?.scrollLeft\r\n })\r\n sliderRef.current?.addEventListener('mouseleave', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mouseup', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mousemove', (e: any) => {\r\n if (!isDown) return\r\n e.preventDefault()\r\n const x = e.pageX - sliderRef.current.offsetLeft\r\n const walk = (x - startX) * 1 //scroll-fast\r\n sliderRef.current.scrollLeft = scrollLeft - walk\r\n })\r\n })\r\n\r\n const slideLeft = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft -= 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n const slideRight = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft += 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n return (\r\n <div className={`network-select`}>\r\n <p>\r\n {isOriginChain\r\n ? 'Which network are you funding from?'\r\n : 'Which network are you funding to?'}\r\n </p>\r\n <div className='scroll-button'>\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideLeft}\r\n />\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideRight}\r\n />\r\n </div>\r\n <div className='slide-area hide-scrollbar' ref={sliderRef}>\r\n <div className='network-container'>\r\n {networks.map((network) => (\r\n <div\r\n className={`card-item ${theme} ${\r\n network.id === selectedNetwork.id ? 'active' : ''\r\n }`}\r\n key={network.id}\r\n onClick={() => {\r\n if (isOriginChain) {\r\n dispatch(setOriginNetwork(network.id))\r\n } else {\r\n dispatch(setTargetNetwork(network.id))\r\n dispatch(setServiceFee(-1))\r\n }\r\n }}\r\n >\r\n <network.icon />\r\n <span>{network.label}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Network\r\n","import React, { useEffect, useMemo, useRef } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\nimport { WalletReadyState } from '@solana/wallet-adapter-base'\r\nimport { ArrowIcon } from '../../assets/icons'\r\nimport { selectSolanaProvider, selectTheme } from '../../store/selectors'\r\nimport ExternalLink from './ExternalLink'\r\nimport { setSolanaProvider } from '../../store/optionSlice'\r\n\r\nconst WalletSelect = () => {\r\n const theme = useSelector(selectTheme)\r\n const selectedProvider = useSelector(selectSolanaProvider)\r\n const sliderRef = useRef<any>()\r\n\r\n const dispatch = useDispatch()\r\n const { wallets } = useWallet()\r\n const [detected, undetected] = useMemo(() => {\r\n const detected = []\r\n const undetected = []\r\n for (const wallet of wallets) {\r\n if (\r\n wallet.readyState === WalletReadyState.Installed ||\r\n wallet.readyState === WalletReadyState.Loadable\r\n ) {\r\n detected.push(wallet)\r\n } else if (wallet.readyState === WalletReadyState.NotDetected) {\r\n undetected.push(wallet)\r\n }\r\n }\r\n return [detected, undetected]\r\n }, [wallets])\r\n\r\n useEffect(() => {\r\n let isDown = false\r\n let startX: number\r\n let scrollLeft: number\r\n\r\n sliderRef.current?.addEventListener('mousedown', (e: any) => {\r\n isDown = true\r\n sliderRef.current?.classList.add('active')\r\n startX = e.pageX - sliderRef.current?.offsetLeft\r\n scrollLeft = sliderRef.current?.scrollLeft\r\n })\r\n sliderRef.current?.addEventListener('mouseleave', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mouseup', () => {\r\n isDown = false\r\n sliderRef.current.classList.remove('active')\r\n })\r\n sliderRef.current?.addEventListener('mousemove', (e: any) => {\r\n if (!isDown) return\r\n e.preventDefault()\r\n const x = e.pageX - sliderRef.current.offsetLeft\r\n const walk = (x - startX) * 1 //scroll-fast\r\n sliderRef.current.scrollLeft = scrollLeft - walk\r\n })\r\n })\r\n\r\n const slideLeft = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft -= 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n const slideRight = () => {\r\n let temp = 0\r\n const timerId = setInterval(() => {\r\n sliderRef.current.scrollLeft += 10\r\n if (temp++ === 20) clearInterval(timerId)\r\n }, 10)\r\n }\r\n\r\n return (\r\n <div className={`wallet-select`}>\r\n <p>Please select:</p>\r\n <div className='scroll-button'>\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideLeft}\r\n />\r\n <ArrowIcon\r\n fill={theme === 'light' ? 'black' : 'white'}\r\n onClick={slideRight}\r\n />\r\n </div>\r\n <div className='slide-area hide-scrollbar' ref={sliderRef}>\r\n <div className='wallet-container'>\r\n {detected.map((wallet) => (\r\n <div\r\n className={`card-item ${theme} ${\r\n wallet.adapter.name === selectedProvider ? 'active' : ''\r\n }`}\r\n onClick={() => dispatch(setSolanaProvider(wallet.adapter.name))}\r\n key={wallet.adapter.name}\r\n >\r\n <img src={wallet.adapter.icon} alt={wallet.adapter.name} />\r\n <span>{wallet.adapter.name}</span>\r\n </div>\r\n ))}\r\n {undetected.map((wallet) => (\r\n <ExternalLink\r\n to={wallet.adapter.url}\r\n className={`card-item ${theme}`}\r\n key={wallet.adapter.name}\r\n >\r\n <img src={wallet.adapter.icon} alt={wallet.adapter.name} />\r\n <span>\r\n Install\r\n <br />\r\n {wallet.adapter.name}\r\n </span>\r\n </ExternalLink>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default WalletSelect\r\n","export const version = \"logger/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"bytes/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","import { hexlify, hexStripZeros } from '@ethersproject/bytes'\r\nimport { useCallback, useMemo } from 'react'\r\nimport { useEthereumProvider } from '../contexts/EthereumProviderContext'\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\n\r\nimport {\r\n CLUSTER,\r\n isEVMChain,\r\n ChainName,\r\n CHAIN_NAMES_TO_IDS\r\n} from '../utils/constants'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectErrorHandler, selectOriginNetwork } from '../store/selectors'\r\n\r\nconst createWalletStatus = (\r\n isReady: boolean,\r\n statusMessage: string = '',\r\n forceNetworkSwitch: () => void,\r\n walletAddress?: string\r\n) => ({\r\n isReady,\r\n statusMessage,\r\n forceNetworkSwitch,\r\n walletAddress\r\n})\r\n\r\nfunction useIsWalletReady(enableNetworkAutoswitch: boolean = false): {\r\n isReady: boolean\r\n statusMessage: string\r\n walletAddress?: string\r\n forceNetworkSwitch: () => void\r\n} {\r\n const autoSwitch = enableNetworkAutoswitch\r\n const { publicKey: solPK } = useWallet()\r\n const { provider, signerAddress, chainId: evmChainId } = useEthereumProvider()\r\n const sourceChain = useSelector(selectOriginNetwork)\r\n const hasEthInfo = !!provider && !!signerAddress\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const correctEvmNetwork = CHAIN_NAMES_TO_IDS[sourceChain]\r\n const hasCorrectEvmNetwork = evmChainId === correctEvmNetwork\r\n\r\n const forceNetworkSwitch = useCallback(() => {\r\n if (provider && correctEvmNetwork) {\r\n if (!isEVMChain(sourceChain)) {\r\n return\r\n }\r\n\r\n try {\r\n provider.send('wallet_switchEthereumChain', [\r\n { chainId: hexStripZeros(hexlify(correctEvmNetwork)) }\r\n ])\r\n } catch (e) {\r\n errorHandler(e)\r\n }\r\n }\r\n }, [provider, correctEvmNetwork, sourceChain])\r\n\r\n return useMemo(() => {\r\n if (sourceChain === ChainName.SOLANA && solPK) {\r\n return createWalletStatus(\r\n true,\r\n undefined,\r\n forceNetworkSwitch,\r\n solPK.toBase58()\r\n )\r\n }\r\n if (isEVMChain(sourceChain) && hasEthInfo && signerAddress) {\r\n if (hasCorrectEvmNetwork) {\r\n return createWalletStatus(\r\n true,\r\n undefined,\r\n forceNetworkSwitch,\r\n signerAddress\r\n )\r\n } else {\r\n if (provider && correctEvmNetwork && autoSwitch) {\r\n forceNetworkSwitch()\r\n }\r\n return createWalletStatus(\r\n false,\r\n `Wallet is not connected to ${CLUSTER}. Expected Chain ID: ${correctEvmNetwork}`,\r\n forceNetworkSwitch,\r\n signerAddress\r\n )\r\n }\r\n }\r\n\r\n return createWalletStatus(\r\n false,\r\n 'Wallet not connected',\r\n forceNetworkSwitch,\r\n undefined\r\n )\r\n }, [\r\n sourceChain,\r\n autoSwitch,\r\n forceNetworkSwitch,\r\n solPK,\r\n hasEthInfo,\r\n correctEvmNetwork,\r\n hasCorrectEvmNetwork,\r\n provider,\r\n signerAddress\r\n ])\r\n}\r\n\r\nexport default useIsWalletReady\r\n","// Return shortened address for EVM, Solana wallet address\r\n\r\nexport const getShortenedAddress = (address: string) => {\r\n const is0x = (addr: string) => addr?.startsWith('0x')\r\n return `${address?.substring(0, is0x(address) ? 6 : 3)}...${address?.substr(\r\n address.length - (is0x(address) ? 4 : 3)\r\n )}`\r\n}\r\n","export const connectWalletBtn = 'connect-wallet-btn'\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\nimport { setConnectModal } from '../../store/optionSlice'\r\nimport { selectOriginNetwork, selectTheme } from '../../store/selectors'\r\nimport PrimaryButton from './PrimaryButton'\r\nimport useIsWalletReady from '../../hooks/useIsWalletReady'\r\nimport { useEthereumProvider } from '../../contexts/EthereumProviderContext'\r\nimport { ChainName } from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\nimport { connectWalletBtn } from '../../utils/testId'\r\n\r\nconst WalletButton = ({ errorBelow = false }: { errorBelow?: boolean }) => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const selectedNetwork = useSelector(selectOriginNetwork)\r\n const { disconnect: disconnectSolana } = useWallet()\r\n const { connect, disconnect: disconnectEVM } = useEthereumProvider()\r\n const { isReady, statusMessage, walletAddress } = useIsWalletReady(true)\r\n\r\n useEffect(() => {\r\n if (!connect) return\r\n connect()\r\n }, [connect])\r\n\r\n const handleClick = () => {\r\n if (isReady) {\r\n if (selectedNetwork === ChainName.SOLANA) {\r\n disconnectSolana()\r\n } else {\r\n disconnectEVM()\r\n }\r\n return\r\n }\r\n\r\n if (selectedNetwork === ChainName.SOLANA) {\r\n dispatch(setConnectModal(true))\r\n return\r\n }\r\n\r\n connect()\r\n }\r\n\r\n return (\r\n <div\r\n className={`wallet-button ${theme} ${errorBelow ? 'error-below' : ''}`}\r\n data-testid={connectWalletBtn}\r\n >\r\n <PrimaryButton clickHandler={handleClick}>\r\n {isReady\r\n ? `Disconnect ${getShortenedAddress(walletAddress || '')}`\r\n : 'Wallet'}\r\n </PrimaryButton>\r\n {!isReady && <p className='provider-error'>{statusMessage}</p>}\r\n </div>\r\n )\r\n}\r\n\r\nexport default WalletButton\r\n","import React, { useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectCurrencyOptions, selectTheme } from '../../store/selectors'\r\n\r\nconst CoinDropdown = () => {\r\n const [collapsed, setCollapsed] = useState(true)\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div\r\n className={`coin-dropdown ${theme} ${collapsed ? 'collapsed' : ''}`}\r\n onClick={() => setCollapsed((prev) => !prev)}\r\n >\r\n <div className='coin-wrapper'>\r\n {<selectedCoin.icon />}\r\n {selectedCoin.symbol}\r\n </div>\r\n {/* <div className={`coin-menu ${theme} ${collapsed ? 'collapsed' : ''}`}>\r\n {coinList.map((coin) => (\r\n <div className='coin-item' key={selectedCoin.symbol}>\r\n {<selectedCoin.icon />}\r\n <p>{selectedCoin.symbol}</p>\r\n </div>\r\n ))}\r\n </div> */}\r\n </div>\r\n )\r\n}\r\n\r\nexport default CoinDropdown\r\n","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { ChainName } from '../../utils/constants'\r\nimport {\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetNetwork,\r\n selectTheme\r\n} from '../../store/selectors'\r\nimport {\r\n setOriginNetwork,\r\n setServiceFee,\r\n setTargetNetwork\r\n} from '../../store/optionSlice'\r\nimport useNetworkOptions from '../../hooks/useNetworkOptions'\r\nimport { ModeOptions } from '../../interface'\r\nimport { fetchWrapper } from '../../helpers/fetch-wrapper'\r\n\r\nconst NetworkDropdown = ({\r\n isOriginChain = true\r\n}: {\r\n isOriginChain?: boolean\r\n}) => {\r\n const [collapsed, setCollapsed] = useState(true)\r\n const [availableNetworks, setAvailableNetworks] = useState<Array<ChainName>>(\r\n []\r\n )\r\n const mode = useSelector(selectMode)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const { options: networkOptions } = useNetworkOptions()\r\n const selectedNetwork = useMemo(() => {\r\n const index = networkOptions.findIndex(\r\n (option) => option.id === (isOriginChain ? originNetwork : targetNetwork)\r\n )\r\n if (index >= 0) return networkOptions[index]\r\n return networkOptions[0]\r\n }, [originNetwork, targetNetwork, networkOptions])\r\n const networks = useMemo(() => {\r\n if (isOriginChain && mode === ModeOptions.bridge) {\r\n return networkOptions\r\n }\r\n\r\n return networkOptions.filter(\r\n (network) =>\r\n availableNetworks.findIndex((id: any) => id === network.id) >= 0\r\n )\r\n }, [networkOptions, isOriginChain, availableNetworks])\r\n const theme = useSelector(selectTheme)\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.bridge) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n if (isOriginChain) {\r\n dispatch(setTargetNetwork(networks.Chains[0]))\r\n }\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, originNetwork, mode, isOriginChain])\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || mode !== ModeOptions.payment) return\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`\r\n )\r\n\r\n setAvailableNetworks(networks.Chains)\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, mode])\r\n\r\n return (\r\n <div\r\n className={`network-dropdown ${theme} ${collapsed ? 'collapsed' : ''}`}\r\n onClick={() => setCollapsed((prev) => !prev)}\r\n >\r\n <div className='network-wrapper'>\r\n {<selectedNetwork.icon />}\r\n {selectedNetwork.label}\r\n </div>\r\n <div\r\n className={`network-menu custom-scrollbar ${theme} ${\r\n collapsed ? 'collapsed' : ''\r\n }`}\r\n >\r\n {networks.map((network) => (\r\n <div\r\n className='network-menu-item'\r\n key={network.label}\r\n onClick={async () => {\r\n if (isOriginChain) {\r\n dispatch(setOriginNetwork(network.id))\r\n } else {\r\n dispatch(setTargetNetwork(network.id))\r\n dispatch(setServiceFee(-1))\r\n }\r\n }}\r\n >\r\n {<network.icon />}\r\n <p>{network.label}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NetworkDropdown\r\n","export const formatterInt = new Intl.NumberFormat('en-US', {\r\n maximumFractionDigits: 0\r\n})\r\n\r\nexport const formatterFloat = new Intl.NumberFormat('en-US', {\r\n maximumFractionDigits: 3\r\n})\r\n","import React, { useMemo } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { formatterFloat } from '../../helpers/functions'\r\nimport useIsWalletReady from '../../hooks/useIsWalletReady'\r\nimport { ModeOptions } from '../../interface'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectFeeDeduct,\r\n selectMode,\r\n selectOriginNetwork,\r\n selectServiceFee,\r\n selectTargetAddress,\r\n selectTargetNetwork,\r\n selectTheme,\r\n selectTransactionOption\r\n} from '../../store/selectors'\r\nimport { networkOptions } from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\n\r\nconst ConfirmDetails = ({ isApproved }: { isApproved: boolean }) => {\r\n const feeDeduct = useSelector(selectFeeDeduct)\r\n const mode = useSelector(selectMode)\r\n const theme = useSelector(selectTheme)\r\n const amount = useSelector(selectAmount)\r\n const serviceFee = useSelector(selectServiceFee)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const targetAddress = useSelector(selectTargetAddress)\r\n const transactionOption = useSelector(selectTransactionOption)\r\n const { walletAddress } = useIsWalletReady()\r\n const originNetworkOption = useMemo(\r\n () => networkOptions.filter((network) => network.id === originNetwork)[0],\r\n [networkOptions, originNetwork]\r\n )\r\n const targetNetworkOption = useMemo(\r\n () =>\r\n networkOptions.filter(\r\n (network) =>\r\n network.id ===\r\n (mode === ModeOptions.payment\r\n ? transactionOption?.targetChain\r\n : targetNetwork)\r\n )[0],\r\n [networkOptions, originNetwork]\r\n )\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n\r\n return (\r\n <div className={`confirm-details ${theme}`}>\r\n <p>\r\n Step {isApproved ? '2' : '1'} of 2 \r\n {isApproved ? 'Submit trasaction' : 'Approval'}\r\n </p>\r\n <div className='detail-item'>\r\n <span className='label'>Source wallet:</span>\r\n <p>{getShortenedAddress(walletAddress || '')}</p>\r\n <span className='kima-card-network-label'>\r\n <originNetworkOption.icon />\r\n {originNetworkOption.label}\r\n </span>\r\n </div>\r\n <div className='detail-item'>\r\n <span className='label'>Amount:</span>\r\n <p>\r\n {formatterFloat.format(feeDeduct ? amount : amount + serviceFee)}{' '}\r\n {selectedCoin.symbol}\r\n </p>\r\n </div>\r\n <div className='detail-item'>\r\n <span className='label'>Target wallet:</span>\r\n <p>\r\n {getShortenedAddress(\r\n (mode === ModeOptions.payment\r\n ? transactionOption?.targetAddress\r\n : targetAddress) || ''\r\n )}\r\n </p>\r\n <span className='kima-card-network-label'>\r\n <targetNetworkOption.icon />\r\n {targetNetworkOption.label}\r\n </span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ConfirmDetails\r\n","import React from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useSelector } from 'react-redux'\r\nimport { setTargetAddress } from '../../store/optionSlice'\r\nimport { selectTargetAddress } from '../../store/selectors'\r\n\r\nconst AddressInput = () => {\r\n const dispatch = useDispatch()\r\n const targetAddress = useSelector(selectTargetAddress)\r\n\r\n return (\r\n <input\r\n className='kima-address-input'\r\n type='text'\r\n value={targetAddress}\r\n onChange={(e) => dispatch(setTargetAddress(e.target.value))}\r\n />\r\n )\r\n}\r\n\r\nexport default AddressInput\r\n","import React, { useEffect, useState } from 'react'\r\nimport { CheckIcon, CopyIcon } from '../../assets/icons'\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst CopyButton = ({ text }: Props) => {\r\n const [copyClicked, setCopyClicked] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!copyClicked) return\r\n\r\n setTimeout(() => {\r\n setCopyClicked(false)\r\n }, 2000)\r\n }, [copyClicked])\r\n\r\n return (\r\n <span\r\n className='copy-btn'\r\n onClick={() => {\r\n setCopyClicked(true)\r\n navigator.clipboard.writeText(text)\r\n }}\r\n >\r\n {copyClicked ? <CheckIcon fill='#979797' /> : <CopyIcon />}\r\n </span>\r\n )\r\n}\r\n\r\nexport default CopyButton\r\n","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { CheckIcon, WarningIcon } from '../../assets/icons'\r\nimport { Loading180Ring } from '../../assets/loading'\r\nimport { ThemeOptions, TransactionData } from '../../interface'\r\nimport { selectTheme } from '../../store/selectors'\r\nimport {\r\n ChainName,\r\n CHAIN_NAMES_TO_EXPLORER,\r\n CHAIN_NAMES_TO_STRING\r\n} from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\nimport CopyButton from './CopyButton'\r\nimport ExternalLink from './ExternalLink'\r\n\r\ninterface Props {\r\n step: number\r\n errorStep: number\r\n loadingStep: number\r\n data?: TransactionData\r\n}\r\n\r\nconst stepInfo = [\r\n {\r\n title: 'Initialize'\r\n },\r\n {\r\n title: 'Source Transfer'\r\n },\r\n {\r\n title: 'Validation'\r\n },\r\n {\r\n title: 'Target Transfer'\r\n },\r\n {\r\n title: 'Finalize'\r\n }\r\n]\r\n\r\nconst StepBox = ({ step, errorStep, loadingStep, data }: Props) => {\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div className='kima-stepbox'>\r\n <div className='content-wrapper'>\r\n {stepInfo.map((item, index) => (\r\n <div key={item.title} className='step-item'>\r\n <div className='info-item'>\r\n {index === loadingStep ? (\r\n <Loading180Ring\r\n fill={theme === ThemeOptions.dark ? 'white' : '#5aa0db'}\r\n />\r\n ) : step >= index ? (\r\n index === errorStep ? (\r\n <WarningIcon />\r\n ) : (\r\n <CheckIcon />\r\n )\r\n ) : null}\r\n <p>{item.title}</p>\r\n </div>\r\n {index === 0 && data?.kimaTxHash ? (\r\n <div className='info-item'>\r\n <p>\r\n Kima TX ID:{' '}\r\n <ExternalLink\r\n // to={`https://explorer.kima.finance/transactions/${data?.kimaTxHash}`}\r\n to={`https://explorer.kima.finance/transfers`}\r\n >\r\n {getShortenedAddress(data?.kimaTxHash || '')}\r\n </ExternalLink>\r\n <CopyButton text={data?.kimaTxHash} />\r\n </p>\r\n </div>\r\n ) : null}\r\n {index === 1 && data?.tssPullHash ? (\r\n <div className='info-item'>\r\n <p>\r\n {\r\n CHAIN_NAMES_TO_STRING[\r\n data?.sourceChain || ChainName.ETHEREUM\r\n ]\r\n }{' '}\r\n TX ID:\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.sourceChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssPullHash}`}\r\n >\r\n {getShortenedAddress(data?.tssPullHash || '')}\r\n </ExternalLink>\r\n <CopyButton text={data?.tssPullHash || ''} />\r\n </p>\r\n </div>\r\n ) : null}\r\n {index === 3 && data?.tssReleaseHash ? (\r\n <div className='info-item'>\r\n <p>\r\n {\r\n CHAIN_NAMES_TO_STRING[\r\n data?.targetChain || ChainName.ETHEREUM\r\n ]\r\n }{' '}\r\n TX ID:\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.targetChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssReleaseHash}`}\r\n >\r\n {getShortenedAddress(data?.tssReleaseHash || '')}\r\n </ExternalLink>\r\n <CopyButton text={data?.tssReleaseHash || ''} />\r\n </p>\r\n </div>\r\n ) : null}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default StepBox\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon } from '../../assets/icons'\r\nimport { setHelpPopup } from '../../store/optionSlice'\r\nimport { selectHelpPopup, selectTheme } from '../../store/selectors'\r\n\r\nconst HelpPopup = () => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const helpPopup = useSelector(selectHelpPopup)\r\n\r\n return (\r\n <div\r\n className={`kima-modal help-popup ${theme} ${helpPopup ? 'open' : ''}`}\r\n >\r\n <div\r\n className='modal-overlay'\r\n onClick={() => {\r\n dispatch(setHelpPopup(false))\r\n }}\r\n />\r\n <div className='modal-content-container'>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>Help</h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => dispatch(setHelpPopup(false))}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='modal-content'>\r\n <p>\r\n The SDK enables dApp developers to process Kima transactions on\r\n behalf of their clients. It will include visual and API components\r\n that communicate with the Kima RPC nodes. The developers can pick\r\n and choose the right level of integration, based on their usage\r\n scenario.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default HelpPopup\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon } from '../../assets/icons'\r\nimport { TransactionData } from '../../interface'\r\nimport { setHashPopup } from '../../store/optionSlice'\r\nimport { selectHashPopup, selectTheme } from '../../store/selectors'\r\nimport { ChainName, CHAIN_NAMES_TO_EXPLORER } from '../../utils/constants'\r\nimport { getShortenedAddress } from '../../utils/functions'\r\nimport { ExternalLink } from '../reusable'\r\n\r\ninterface Props {\r\n data?: TransactionData\r\n}\r\n\r\nconst HashPopup = ({ data }: Props) => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const hashPopup = useSelector(selectHashPopup)\r\n\r\n return (\r\n <div\r\n className={`kima-modal hash-popup ${theme} ${hashPopup ? 'open' : ''}`}\r\n >\r\n <div\r\n className='modal-overlay'\r\n onClick={() => {\r\n dispatch(setHashPopup(false))\r\n }}\r\n />\r\n <div className='modal-content-container'>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>Transaction Hashes</h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => dispatch(setHashPopup(false))}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='modal-content'>\r\n <div className='hash-container'>\r\n <div className='hash-item'>\r\n <span>Kima tx:</span>\r\n <ExternalLink to='https://explorer.kima.finance/transactions/718ABEE14755C1ACA617607F9353A55013EF855B0EA6E92EFD31A2F50A362524'>\r\n 718A...2524\r\n </ExternalLink>\r\n </div>\r\n <div className='hash-item'>\r\n <span>Source tx:</span>\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.sourceChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssPullHash}`}\r\n >\r\n {getShortenedAddress(data?.tssPullHash || '')}\r\n </ExternalLink>\r\n </div>\r\n <div className='hash-item'>\r\n <span>Target tx:</span>\r\n <ExternalLink\r\n to={`https://${\r\n CHAIN_NAMES_TO_EXPLORER[\r\n data?.targetChain || ChainName.ETHEREUM\r\n ]\r\n }/tx/${data?.tssReleaseHash}`}\r\n >\r\n {getShortenedAddress(data?.tssReleaseHash || '')}\r\n </ExternalLink>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default HashPopup\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon } from '../../assets/icons'\r\nimport { setConnectModal } from '../../store/optionSlice'\r\nimport {\r\n selectConnectModal,\r\n selectSolanaProvider,\r\n selectTheme\r\n} from '../../store/selectors'\r\n\r\nimport { useWallet } from '@solana/wallet-adapter-react'\r\nimport { PrimaryButton, SecondaryButton, WalletSelect } from '../reusable'\r\n\r\nconst WalletConnectModal = () => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const connectModal = useSelector(selectConnectModal)\r\n const selectedProvider = useSelector(selectSolanaProvider)\r\n const { select } = useWallet()\r\n\r\n const handleConnect = () => {\r\n select(selectedProvider)\r\n dispatch(setConnectModal(false))\r\n }\r\n\r\n return (\r\n <div\r\n className={`kima-modal wallet-connect ${theme} ${\r\n connectModal ? 'open' : ''\r\n }`}\r\n >\r\n <div className='modal-overlay' />\r\n <div className='modal-content-container'>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>Connect Wallet</h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => dispatch(setConnectModal(false))}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div className='modal-content'>\r\n <WalletSelect />\r\n </div>\r\n <div\r\n className='kima-card-footer'\r\n style={{ justifyContent: 'flex-end', marginTop: '2em' }}\r\n >\r\n <SecondaryButton\r\n clickHandler={() => dispatch(setConnectModal(false))}\r\n theme={theme}\r\n >\r\n Cancel\r\n </SecondaryButton>\r\n <PrimaryButton clickHandler={handleConnect}>Connect</PrimaryButton>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default WalletConnectModal\r\n","import React, { useEffect, useState } from 'react'\r\nimport AnimatedNumber from 'animated-number-react'\r\nimport { CrossIcon, FooterLogo, MinimizeIcon } from '../assets/icons'\r\nimport Progressbar from './reusable/Progressbar'\r\nimport { NetworkLabel, StepBox } from './reusable'\r\n// import Tooltip from './reusable/Tooltip'\r\nimport '../index.css'\r\nimport {\r\n DefaultProps,\r\n FontSizeOptions,\r\n ThemeOptions,\r\n TransactionData\r\n} from '../interface'\r\nimport { Provider } from 'react-redux'\r\nimport { store } from '../store'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport { COIN_LIST, TransactionStatus } from '../utils/constants'\r\nimport { formatterFloat, formatterInt } from '../helpers/functions'\r\nimport { useSelector } from 'react-redux'\r\nimport {\r\n selectCloseHandler,\r\n selectNodeProviderQuery,\r\n selectSuccessHandler,\r\n selectTxId\r\n} from '../store/selectors'\r\nimport { useDispatch } from 'react-redux'\r\nimport { initialize } from '../store/optionSlice'\r\nimport { HashPopup, HelpPopup } from './modals'\r\n\r\nexport const TransactionWidget = ({\r\n theme = ThemeOptions.light,\r\n fontSize = FontSizeOptions.medium\r\n}: DefaultProps) => {\r\n const [step, setStep] = useState(0)\r\n const [focus, setFocus] = useState(-1)\r\n const [errorStep, setErrorStep] = useState(-1)\r\n const [loadingStep, setLoadingStep] = useState(-1)\r\n const [minimized, setMinimized] = useState(false)\r\n const [percent, setPercent] = useState(0)\r\n const [data, setData] = useState<TransactionData>()\r\n const dispatch = useDispatch()\r\n const txId = useSelector(selectTxId)\r\n const closeHandler = useSelector(selectCloseHandler)\r\n const successHandler = useSelector(selectSuccessHandler)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || txId < 0) return\r\n const timerId = setInterval(async () => {\r\n // Monitor last transaction for now until transaction_data endpoint is ready\r\n try {\r\n const result: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/transaction_data/${txId}`\r\n )\r\n\r\n const data = result?.transactionData\r\n\r\n if (!data) return\r\n\r\n const status = data.status\r\n\r\n // Status of last transaction\r\n console.log(status)\r\n setData({\r\n sourceChain: data.originChain,\r\n targetChain: data.targetChain,\r\n tssPullHash: data.tssPullHash,\r\n tssReleaseHash: data.tssReleaseHash,\r\n amount: +data.amount,\r\n symbol: data.symbol,\r\n kimaTxHash: data.kimaTxHash\r\n })\r\n setErrorStep(-1)\r\n\r\n if (status === TransactionStatus.AVAILABLE) {\r\n setStep(1)\r\n setPercent(25)\r\n setLoadingStep(1)\r\n } else if (status === TransactionStatus.CONFIRMED) {\r\n setStep(2)\r\n setPercent(50)\r\n setLoadingStep(2)\r\n } else if (status.startsWith(TransactionStatus.UNAVAILABLE)) {\r\n setStep(1)\r\n setPercent(25)\r\n setErrorStep(1)\r\n setLoadingStep(-1)\r\n } else if (status === TransactionStatus.KEYSIGNED) {\r\n setStep(3)\r\n setPercent(75)\r\n setLoadingStep(3)\r\n } else if (status === TransactionStatus.PAID) {\r\n setStep(3)\r\n setPercent(90)\r\n setLoadingStep(3)\r\n } else if (status === TransactionStatus.FAILED) {\r\n setStep(3)\r\n setPercent(90)\r\n setErrorStep(3)\r\n setLoadingStep(-1)\r\n } else if (status === TransactionStatus.COMPLETED) {\r\n setStep(4)\r\n setPercent(100)\r\n clearInterval(timerId)\r\n setLoadingStep(-1)\r\n setTimeout(() => {\r\n successHandler({\r\n txId\r\n })\r\n }, 3000)\r\n }\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n }, 1000)\r\n\r\n return () => {\r\n clearInterval(timerId)\r\n }\r\n }, [nodeProviderQuery, txId])\r\n\r\n return (\r\n <Provider store={store}>\r\n <div\r\n className={`kima-card transaction-card ${theme} font-${fontSize} ${\r\n minimized ? 'minimized' : ''\r\n }`}\r\n >\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>\r\n Transferring {formatterFloat.format(data?.amount || 0)}{' '}\r\n {COIN_LIST[data?.symbol || 'USDK'].symbol}\r\n </h3>\r\n <AnimatedNumber\r\n component='p'\r\n value={percent}\r\n duration={1000}\r\n formatValue={(n: any) => `${formatterInt.format(n)}%`}\r\n />\r\n {/* <p>{percent}%</p> */}\r\n </div>\r\n\r\n {!minimized ? (\r\n <div className='control-buttons'>\r\n <button\r\n className='icon-button'\r\n onClick={() => {\r\n setMinimized(true)\r\n }}\r\n >\r\n <MinimizeIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n {loadingStep < 0 ? (\r\n <button\r\n className='icon-button'\r\n onClick={() => {\r\n dispatch(initialize())\r\n closeHandler()\r\n }}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n ) : null}\r\n </div>\r\n ) : (\r\n <div className='control-buttons'>\r\n <div className='maximize' onClick={() => setMinimized(false)}>\r\n View\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n {data?.sourceChain && data?.targetChain && (\r\n <NetworkLabel\r\n sourceChain={data?.sourceChain}\r\n targetChain={data?.targetChain}\r\n hasError={errorStep >= 0}\r\n />\r\n )}\r\n </div>\r\n\r\n <div className='kima-card-content'>\r\n <Progressbar\r\n step={step}\r\n focus={focus}\r\n errorStep={errorStep}\r\n setFocus={setFocus}\r\n loadingStep={loadingStep}\r\n />\r\n {/* <Tooltip\r\n step={step}\r\n focus={focus}\r\n errorStep={errorStep}\r\n loadingStep={loadingStep}\r\n data={data}\r\n /> */}\r\n <StepBox\r\n step={step}\r\n errorStep={errorStep}\r\n loadingStep={loadingStep}\r\n data={data}\r\n />\r\n </div>\r\n\r\n <div className='kima-card-footer'>\r\n <FooterLogo fill={theme === 'light' ? 'black' : '#C5C5C5'} />\r\n </div>\r\n <HelpPopup />\r\n <HashPopup data={data} />\r\n </div>\r\n </Provider>\r\n )\r\n}\r\n","import React from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectMode,\r\n selectTheme,\r\n selectTransactionOption\r\n} from '../../store/selectors'\r\nimport { CoinDropdown, WalletButton } from './'\r\nimport { setAmount } from '../../store/optionSlice'\r\nimport { ModeOptions } from '../../interface'\r\nimport AddressInput from './AddressInput'\r\nimport NetworkDropdown from './NetworkDropdown'\r\n\r\nconst SingleForm = () => {\r\n const dispatch = useDispatch()\r\n const mode = useSelector(selectMode)\r\n const theme = useSelector(selectTheme)\r\n const amount = useSelector(selectAmount)\r\n const transactionOption = useSelector(selectTransactionOption)\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n\r\n return (\r\n <div className='single-form'>\r\n <div className='form-item'>\r\n <span className='label'>Source Network</span>\r\n <NetworkDropdown />\r\n </div>\r\n <div className='form-item'>\r\n <span className='label'>Connect wallet:</span>\r\n <WalletButton />\r\n </div>\r\n {mode === ModeOptions.bridge && (\r\n <div className='form-item'>\r\n <span className='label'>Target Network:</span>\r\n <NetworkDropdown isOriginChain={false} />\r\n </div>\r\n )}\r\n {mode === ModeOptions.bridge && (\r\n <div className={`form-item ${theme}`}>\r\n <span className='label'>Target Address:</span>\r\n <AddressInput />\r\n </div>\r\n )}\r\n\r\n {mode === ModeOptions.bridge ? (\r\n <div className={`form-item ${theme}`}>\r\n <span className='label'>Amount:</span>\r\n <input\r\n type='number'\r\n value={amount || ''}\r\n onChange={(e) => {\r\n const _amount = +e.target.value\r\n dispatch(setAmount(parseFloat(_amount.toFixed(2))))\r\n }}\r\n />\r\n <CoinDropdown />\r\n </div>\r\n ) : (\r\n <div className={`form-item ${theme}`}>\r\n <span className='label'>Amount:</span>\r\n <div className={`amount-label ${theme}`}>\r\n <span>{transactionOption?.amount || ''}</span>\r\n <div className='coin-wrapper'>\r\n {<selectedCoin.icon />}\r\n {selectedCoin.symbol}\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* {mode === ModeOptions.bridge && serviceFee ? (\r\n <CustomCheckbox\r\n text={`Deduct ${formatterFloat.format(serviceFee)} USDK fee`}\r\n checked={feeDeduct}\r\n setCheck={(value: boolean) => dispatch(setFeeDeduct(value))}\r\n />\r\n ) : null} */}\r\n </div>\r\n )\r\n}\r\n\r\nexport default SingleForm\r\n","import React from 'react'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectMode,\r\n selectTheme\r\n} from '../../store/selectors'\r\nimport { useSelector } from 'react-redux'\r\nimport { ModeOptions } from '../../interface'\r\nimport { setAmount } from '../../store/optionSlice'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nconst CoinSelect = () => {\r\n const dispatch = useDispatch()\r\n const theme = useSelector(selectTheme)\r\n const mode = useSelector(selectMode)\r\n const amount = useSelector(selectAmount)\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n\r\n return (\r\n <div className={`coin-select`}>\r\n <p>Select Amount of Token for Funding</p>\r\n {/* <div className='coin-list-container'>\r\n {coinList.map((coin, index) => (\r\n <div\r\n className={`card-item ${theme} ${\r\n index === selectedCoin ? 'active' : ''\r\n }`}\r\n key={coin.symbol}\r\n onClick={() => setCoin(index)}\r\n >\r\n {coin.icon}\r\n <span>{coin.symbol}</span>\r\n </div>\r\n ))}\r\n </div> */}\r\n <div className={`amount-input ${theme}`}>\r\n <span>Amount:</span>\r\n <div className='input-wrapper'>\r\n <input\r\n type='number'\r\n value={amount || ''}\r\n readOnly={mode === ModeOptions.payment}\r\n onChange={(e) => {\r\n const _amount = +e.target.value\r\n dispatch(setAmount(parseFloat(_amount.toFixed(2))))\r\n }}\r\n />\r\n <div className='coin-label'>\r\n {<selectedCoin.icon />}\r\n <span>{selectedCoin.symbol}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CoinSelect\r\n","import { TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport { PublicKey, TransactionInstruction, SystemProgram, SYSVAR_RENT_PUBKEY } from '@solana/web3.js'\r\n\r\nexport function createAssociatedTokenAccountInstruction(\r\n payer: PublicKey,\r\n associatedToken: PublicKey,\r\n owner: PublicKey,\r\n mint: PublicKey,\r\n programId = TOKEN_PROGRAM_ID,\r\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\r\n): TransactionInstruction {\r\n const keys = [\r\n { pubkey: payer, isSigner: true, isWritable: true },\r\n { pubkey: associatedToken, isSigner: false, isWritable: true },\r\n { pubkey: owner, isSigner: false, isWritable: false },\r\n { pubkey: mint, isSigner: false, isWritable: false },\r\n { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\r\n { pubkey: programId, isSigner: false, isWritable: false },\r\n { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\r\n ]\r\n\r\n return new TransactionInstruction({\r\n keys,\r\n programId: associatedTokenProgramId,\r\n data: Buffer.alloc(0),\r\n })\r\n}","import { TOKEN_PROGRAM_ID, AccountLayout } from '@solana/spl-token'\r\nimport { Connection, PublicKey, Commitment } from '@solana/web3.js'\r\n\r\nexport enum AccountState {\r\n Uninitialized = 0,\r\n Initialized = 1,\r\n Frozen = 2,\r\n}\r\n\r\nexport async function getAccountInfo(\r\n connection: Connection,\r\n address: PublicKey,\r\n commitment?: Commitment,\r\n programId = TOKEN_PROGRAM_ID\r\n) {\r\n const info = await connection.getAccountInfo(address, commitment)\r\n if (!info) throw new Error('TokenAccountNotFoundError')\r\n if (!info.owner.equals(programId)) throw new Error('TokenInvalidAccountOwnerError')\r\n if (info.data.length != AccountLayout.span) throw new Error('TokenInvalidAccountSizeError')\r\n\r\n const rawAccount = AccountLayout.decode(Buffer.from(info.data))\r\n\r\n return {\r\n address,\r\n mint: rawAccount.mint,\r\n owner: rawAccount.owner,\r\n amount: rawAccount.amount,\r\n delegate: rawAccount.delegateOption ? rawAccount.delegate : null,\r\n delegatedAmount: rawAccount.delegatedAmount,\r\n isInitialized: rawAccount.state !== AccountState.Uninitialized,\r\n isFrozen: rawAccount.state === AccountState.Frozen,\r\n isNative: !!rawAccount.isNativeOption,\r\n rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null,\r\n closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null,\r\n }\r\n}","import { TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport { PublicKey } from '@solana/web3.js'\r\n\r\nexport async function getAssociatedTokenAddress(\r\n mint: PublicKey,\r\n owner: PublicKey,\r\n allowOwnerOffCurve = false,\r\n programId = TOKEN_PROGRAM_ID,\r\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\r\n): Promise<PublicKey> {\r\n if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer())) throw new Error('TokenOwnerOffCurveError')\r\n\r\n const [address] = await PublicKey.findProgramAddress(\r\n [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\r\n associatedTokenProgramId\r\n )\r\n\r\n return address\r\n}","import {\r\n TOKEN_PROGRAM_ID,\r\n ASSOCIATED_TOKEN_PROGRAM_ID\r\n} from '@solana/spl-token'\r\n// import { SignerWalletAdapterProps } from '@solana/wallet-adapter-base'\r\nimport { Connection, PublicKey, Commitment, Transaction } from '@solana/web3.js'\r\nimport { createAssociatedTokenAccountInstruction } from './createAssociatedTokenAccountInstruction'\r\nimport { getAccountInfo } from './getAccountInfo'\r\nimport { getAssociatedTokenAddress } from './getAssociatedTokenAddress'\r\n\r\nexport async function getOrCreateAssociatedTokenAccount(\r\n connection: Connection,\r\n payer: PublicKey,\r\n mint: PublicKey,\r\n owner: PublicKey,\r\n signTransaction: /*SignerWalletAdapterProps['signTransaction']*/ any,\r\n allowOwnerOffCurve = false,\r\n commitment?: Commitment,\r\n programId = TOKEN_PROGRAM_ID,\r\n associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\r\n) {\r\n const associatedToken = await getAssociatedTokenAddress(\r\n mint,\r\n owner,\r\n allowOwnerOffCurve,\r\n programId,\r\n associatedTokenProgramId\r\n )\r\n\r\n // This is the optimal logic, considering TX fee, client-side computation, RPC roundtrips and guaranteed idempotent.\r\n // Sadly we can't do this atomically.\r\n let account\r\n try {\r\n account = await getAccountInfo(\r\n connection,\r\n associatedToken,\r\n commitment,\r\n programId\r\n )\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n } catch (error) {\r\n // TokenAccountNotFoundError can be possible if the associated address has already received some lamports,\r\n // becoming a system account. Assuming program derived addressing is safe, this is the only case for the\r\n // TokenInvalidAccountOwnerError in this code path.\r\n const err = error as { message: string }\r\n if (\r\n err.message === 'TokenAccountNotFoundError' ||\r\n err.message === 'TokenInvalidAccountOwnerError'\r\n ) {\r\n // As this isn't atomic, it's possible others can create associated accounts meanwhile.\r\n try {\r\n const transaction = new Transaction().add(\r\n createAssociatedTokenAccountInstruction(\r\n payer,\r\n associatedToken,\r\n owner,\r\n mint,\r\n programId,\r\n associatedTokenProgramId\r\n )\r\n )\r\n\r\n const blockHash = await connection.getRecentBlockhash()\r\n transaction.feePayer = await payer\r\n transaction.recentBlockhash = await blockHash.blockhash\r\n const signed = await signTransaction(transaction)\r\n\r\n const signature = await connection.sendRawTransaction(\r\n signed.serialize()\r\n )\r\n\r\n await connection.confirmTransaction(signature)\r\n } catch (error) {\r\n // Ignore all errors; for now there is no API-compatible way to selectively ignore the expected\r\n // instruction error if the associated account exists already.\r\n }\r\n\r\n // Now this should always succeed\r\n account = await getAccountInfo(\r\n connection,\r\n associatedToken,\r\n commitment,\r\n programId\r\n )\r\n } else {\r\n throw error\r\n }\r\n }\r\n\r\n if (!account.mint.equals(mint)) throw Error('TokenInvalidMintError')\r\n if (!account.owner.equals(owner)) throw new Error('TokenInvalidOwnerError')\r\n\r\n return account\r\n}\r\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","import { TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport {\r\n AccountMeta,\r\n PublicKey,\r\n Signer,\r\n TransactionInstruction\r\n} from '@solana/web3.js'\r\nimport BN from 'bn.js'\r\n\r\nconst BufferLayout = require('buffer-layout')\r\n\r\nexport enum TokenInstruction {\r\n InitializeMint = 0,\r\n InitializeAccount = 1,\r\n InitializeMultisig = 2,\r\n Transfer = 3,\r\n Approve = 4,\r\n Revoke = 5,\r\n SetAuthority = 6,\r\n MintTo = 7,\r\n Burn = 8,\r\n CloseAccount = 9,\r\n FreezeAccount = 10,\r\n ThawAccount = 11,\r\n TransferChecked = 12,\r\n ApproveChecked = 13,\r\n MintToChecked = 14,\r\n BurnChecked = 15,\r\n InitializeAccount2 = 16,\r\n SyncNative = 17,\r\n InitializeAccount3 = 18,\r\n InitializeMultisig2 = 19,\r\n InitializeMint2 = 20\r\n}\r\n\r\n/**\r\n * Construct a Transfer instruction\r\n *\r\n * @param source Source account\r\n * @param destination Destination account\r\n * @param owner Owner of the source account\r\n * @param amount Number of tokens to transfer\r\n * @param multiSigners Signing accounts if `owner` is a multisig\r\n * @param programId SPL Token program account\r\n *\r\n * @return Instruction to add to a transaction\r\n */\r\nexport function createTransferInstruction(\r\n source: PublicKey,\r\n destination: PublicKey,\r\n owner: PublicKey,\r\n amount: number,\r\n multiSigners: Signer[] = [],\r\n programId = TOKEN_PROGRAM_ID\r\n): TransactionInstruction {\r\n const dataLayout = BufferLayout.struct([\r\n BufferLayout.u8('instruction'),\r\n BufferLayout.blob(8, 'amount')\r\n ])\r\n\r\n const keys = addSigners(\r\n [\r\n { pubkey: source, isSigner: false, isWritable: true },\r\n { pubkey: destination, isSigner: false, isWritable: true }\r\n ],\r\n owner,\r\n multiSigners\r\n )\r\n\r\n const data = Buffer.alloc(dataLayout.span)\r\n dataLayout.encode(\r\n {\r\n instruction: TokenInstruction.Transfer,\r\n amount: new TokenAmount(amount).toBuffer()\r\n },\r\n data\r\n )\r\n\r\n return new TransactionInstruction({ keys, programId, data })\r\n}\r\n\r\nexport function createApproveTransferInstruction(\r\n source: PublicKey,\r\n destination: PublicKey,\r\n owner: PublicKey,\r\n amount: number,\r\n multiSigners: Signer[] = [],\r\n programId = TOKEN_PROGRAM_ID\r\n): TransactionInstruction {\r\n const dataLayout = BufferLayout.struct([\r\n BufferLayout.u8('instruction'),\r\n BufferLayout.blob(8, 'amount')\r\n ])\r\n\r\n const keys = addSigners(\r\n [\r\n { pubkey: source, isSigner: false, isWritable: true },\r\n { pubkey: destination, isSigner: false, isWritable: true }\r\n ],\r\n owner,\r\n multiSigners\r\n )\r\n\r\n const data = Buffer.alloc(dataLayout.span)\r\n dataLayout.encode(\r\n {\r\n instruction: TokenInstruction.Approve,\r\n amount: new TokenAmount(amount).toBuffer()\r\n },\r\n data\r\n )\r\n\r\n return new TransactionInstruction({ keys, programId, data })\r\n}\r\n\r\nexport function addSigners(\r\n keys: AccountMeta[],\r\n ownerOrAuthority: PublicKey,\r\n multiSigners: Signer[]\r\n): AccountMeta[] {\r\n if (multiSigners.length) {\r\n keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false })\r\n for (const signer of multiSigners) {\r\n keys.push({ pubkey: signer.publicKey, isSigner: true, isWritable: false })\r\n }\r\n } else {\r\n keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false })\r\n }\r\n return keys\r\n}\r\n\r\nclass TokenAmount extends BN {\r\n /**\r\n * Convert to Buffer representation\r\n */\r\n toBuffer(): Buffer {\r\n const a = super.toArray().reverse()\r\n const b = Buffer.from(a)\r\n if (b.length === 8) {\r\n return b\r\n }\r\n\r\n if (b.length >= 8) {\r\n throw new Error('TokenAmount too large')\r\n }\r\n\r\n const zeroPad = Buffer.alloc(8)\r\n b.copy(zeroPad)\r\n return zeroPad\r\n }\r\n\r\n /**\r\n * Construct a TokenAmount from Buffer representation\r\n */\r\n // static fromBuffer(buffer: Buffer): TokenAmount {\r\n // if (buffer.length !== 8) {\r\n // throw new Error(`Invalid buffer length: ${buffer.length}`)\r\n // }\r\n\r\n // return new BN(\r\n // [...buffer]\r\n // .reverse()\r\n // .map((i) => `00${i.toString(16)}`.slice(-2))\r\n // .join(''),\r\n // 16\r\n // )\r\n // }\r\n}\r\n","import { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Contract } from '@ethersproject/contracts'\r\nimport { formatUnits, parseUnits } from '@ethersproject/units'\r\nimport {\r\n useConnection,\r\n useWallet as useSolanaWallet\r\n} from '@solana/wallet-adapter-react'\r\nimport { useEthereumProvider } from '../contexts/EthereumProviderContext'\r\nimport {\r\n ChainName,\r\n CHAIN_IDS_TO_NAMES,\r\n CHAIN_NAMES_TO_IDS,\r\n COIN_LIST,\r\n isEVMChain\r\n} from '../utils/constants'\r\nimport ERC20ABI from '../utils/ethereum/erc20ABI.json'\r\nimport {\r\n selectAmount,\r\n selectCurrencyOptions,\r\n selectErrorHandler,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectServiceFee\r\n} from '../store/selectors'\r\nimport { setApproving } from '../store/optionSlice'\r\nimport { getOrCreateAssociatedTokenAccount } from '../utils/solana/getOrCreateAssociatedTokenAccount'\r\nimport { PublicKey, Transaction } from '@solana/web3.js'\r\n// import { SignerWalletAdapterProps } from '@solana/wallet-adapter-base'\r\nimport { TOKEN_PROGRAM_ID } from '@solana/spl-token'\r\nimport { createApproveTransferInstruction } from '../utils/solana/createTransferInstruction'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\n\r\ntype ParsedAccountData = {\r\n /** Name of the program that owns this account */\r\n program: string\r\n /** Parsed account data */\r\n parsed: any\r\n /** Space used by account data */\r\n space: number\r\n}\r\n\r\nexport default function useAllowance() {\r\n const dispatch = useDispatch()\r\n const [allowance, setAllowance] = useState<number>(0)\r\n const [decimals, setDecimals] = useState<number | null>(null)\r\n const { signerAddress, signer, chainId: evmChainId } = useEthereumProvider()\r\n const selectedNetwork = useSelector(selectOriginNetwork)\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const sourceChain = useMemo(() => {\r\n if (selectedNetwork === ChainName.SOLANA) return selectedNetwork\r\n if (CHAIN_NAMES_TO_IDS[selectedNetwork] !== evmChainId) {\r\n return CHAIN_IDS_TO_NAMES[evmChainId as number]\r\n }\r\n\r\n return selectedNetwork\r\n }, [selectedNetwork, evmChainId])\r\n const amount = useSelector(selectAmount)\r\n const serviceFee = useSelector(selectServiceFee)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const { connection } = useConnection()\r\n const { publicKey, signTransaction } = useSolanaWallet()\r\n const selectedCoin = useSelector(selectCurrencyOptions)\r\n const tokenAddress = useMemo(() => {\r\n return selectedCoin.address[sourceChain]\r\n }, [selectedCoin, sourceChain])\r\n const [targetAddress, setTargetAddress] = useState<string>()\r\n const isApproved = useMemo(() => {\r\n return allowance >= amount + serviceFee\r\n }, [allowance, amount, serviceFee])\r\n\r\n const updatePoolAddress = async () => {\r\n try {\r\n // REMOVE test code\r\n if (sourceChain === ChainName.SOLANA) {\r\n setTargetAddress('8ymXJ6RH9k8qSf1xsvxSWgzPB9RYgUuHPDgonkFzUEhT')\r\n return\r\n }\r\n\r\n const result: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/tss_pubkey`\r\n )\r\n if (result?.tssPubkey?.length < 1) {\r\n return\r\n }\r\n setTargetAddress(\r\n sourceChain === ChainName.SOLANA\r\n ? result.tssPubkey[0].ebdsa\r\n : result.tssPubkey[0].ecdsa\r\n )\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery) return\r\n updatePoolAddress()\r\n }, [nodeProviderQuery, sourceChain])\r\n\r\n useEffect(() => {\r\n ;(async () => {\r\n try {\r\n if (\r\n !isEVMChain(sourceChain) &&\r\n publicKey &&\r\n tokenAddress &&\r\n connection\r\n ) {\r\n const mint = new PublicKey(tokenAddress)\r\n const fromTokenAccount = await getOrCreateAssociatedTokenAccount(\r\n connection,\r\n publicKey as PublicKey,\r\n mint,\r\n publicKey as PublicKey,\r\n signTransaction /* as SignerWalletAdapterProps['signTransaction']*/\r\n )\r\n\r\n const accountInfo = await connection.getParsedAccountInfo(\r\n fromTokenAccount.address\r\n )\r\n console.log('solana token account: ', accountInfo)\r\n\r\n setDecimals(COIN_LIST['USDK'].decimals)\r\n const parsedAccountInfo = accountInfo?.value\r\n ?.data as ParsedAccountData\r\n\r\n setAllowance(\r\n parsedAccountInfo.parsed?.info?.delegate === targetAddress\r\n ? parsedAccountInfo.parsed?.info?.delegatedAmount?.uiAmount\r\n : 0\r\n )\r\n return\r\n }\r\n if (!tokenAddress || !targetAddress || !signer || !signerAddress) return\r\n\r\n const erc20Contract = new Contract(tokenAddress, ERC20ABI.abi, signer)\r\n const decimals = await erc20Contract.decimals()\r\n const userAllowance = await erc20Contract.allowance(\r\n signerAddress,\r\n targetAddress\r\n )\r\n\r\n setDecimals(+decimals)\r\n setAllowance(+formatUnits(userAllowance, decimals))\r\n } catch (error) {\r\n errorHandler(error)\r\n }\r\n })()\r\n }, [signerAddress, tokenAddress, targetAddress, sourceChain, publicKey])\r\n\r\n const approve = useCallback(async () => {\r\n if (isEVMChain(sourceChain)) {\r\n if (!decimals || !tokenAddress || !signer || !targetAddress) return\r\n\r\n try {\r\n const erc20Contract = new Contract(tokenAddress, ERC20ABI.abi, signer)\r\n\r\n dispatch(setApproving(true))\r\n const approve = await erc20Contract.approve(\r\n targetAddress,\r\n parseUnits((amount + serviceFee).toString(), decimals)\r\n )\r\n\r\n await approve.wait()\r\n dispatch(setApproving(false))\r\n setAllowance(amount + serviceFee)\r\n } catch (error) {\r\n errorHandler(error)\r\n dispatch(setApproving(false))\r\n }\r\n\r\n return\r\n }\r\n\r\n if (!signTransaction) return\r\n\r\n try {\r\n dispatch(setApproving(true))\r\n\r\n const mint = new PublicKey(tokenAddress)\r\n const toPublicKey = new PublicKey(targetAddress as string)\r\n const fromTokenAccount = await getOrCreateAssociatedTokenAccount(\r\n connection,\r\n publicKey as PublicKey,\r\n mint,\r\n publicKey as PublicKey,\r\n signTransaction /* as SignerWalletAdapterProps['signTransaction']*/\r\n )\r\n\r\n const transaction = new Transaction().add(\r\n createApproveTransferInstruction(\r\n fromTokenAccount.address, // source\r\n toPublicKey, // dest\r\n publicKey as PublicKey,\r\n (amount + serviceFee) * Math.pow(10, COIN_LIST['USDK'].decimals), // amount * LAMPORTS_PER_SOL,\r\n [],\r\n TOKEN_PROGRAM_ID\r\n )\r\n )\r\n\r\n const blockHash = await connection.getLatestBlockhash()\r\n transaction.feePayer = publicKey as PublicKey\r\n transaction.recentBlockhash = await blockHash.blockhash\r\n const signed = await signTransaction(transaction)\r\n\r\n await connection.sendRawTransaction(signed.serialize())\r\n setAllowance(amount + serviceFee)\r\n dispatch(setApproving(false))\r\n } catch (e) {\r\n errorHandler(e)\r\n dispatch(setApproving(false))\r\n }\r\n }, [\r\n decimals,\r\n tokenAddress,\r\n signer,\r\n amount,\r\n targetAddress,\r\n signTransaction,\r\n serviceFee\r\n ])\r\n\r\n return useMemo(\r\n () => ({\r\n isApproved,\r\n approve\r\n }),\r\n [isApproved, approve]\r\n )\r\n}\r\n","import { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport { ModeOptions } from '../interface'\r\nimport {\r\n selectAmount,\r\n selectConfirming,\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetAddress,\r\n selectTargetNetwork,\r\n selectTransactionOption\r\n} from '../store/selectors'\r\nimport { ChainName, CHAIN_NAMES_TO_GECKO_ID } from '../utils/constants'\r\nimport useIsWalletReady from './useIsWalletReady'\r\n\r\nasync function getPrice(sourceChain: string, targetChain: string) {\r\n try {\r\n const res = await fetch(\r\n `https://api.coingecko.com/api/v3/simple/price?ids=${CHAIN_NAMES_TO_GECKO_ID[sourceChain]},${CHAIN_NAMES_TO_GECKO_ID[targetChain]}&vs_currencies=usd`\r\n )\r\n\r\n const price = await res.json()\r\n return Object.keys(price).length\r\n ? [\r\n price[CHAIN_NAMES_TO_GECKO_ID[sourceChain]].usd,\r\n price[CHAIN_NAMES_TO_GECKO_ID[targetChain]].usd\r\n ]\r\n : [0, 0]\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n\r\n return [0, 0]\r\n}\r\n\r\nasync function getFeeInUSD(\r\n sourceChain: string,\r\n targetChain: string,\r\n gasFee: any\r\n) {\r\n const max_gas = 50000\r\n const [sourceTokenPrice, targetTokenPrice] = await getPrice(\r\n sourceChain,\r\n targetChain\r\n )\r\n let sourceFee, targetFee\r\n\r\n if (sourceChain === ChainName.SOLANA) {\r\n sourceFee = +gasFee[sourceChain] * +sourceTokenPrice\r\n } else\r\n sourceFee = gasFee[sourceChain]\r\n ? (+gasFee[sourceChain] * max_gas * +sourceTokenPrice) / 1e9\r\n : 0\r\n\r\n if (targetChain === ChainName.SOLANA) {\r\n targetFee = +gasFee[targetChain] * +targetTokenPrice\r\n } else\r\n targetFee = gasFee[targetChain]\r\n ? (+gasFee[targetChain] * max_gas * +targetTokenPrice) / 1e9\r\n : 0\r\n\r\n return [isNaN(sourceFee) ? 0 : sourceFee, isNaN(targetFee) ? 0 : targetFee]\r\n}\r\n\r\nexport default function useServiceFee() {\r\n const { walletAddress, isReady } = useIsWalletReady()\r\n const [serviceFee, setServiceFee] = useState<number>(0)\r\n const mode = useSelector(selectMode)\r\n const amount_ = useSelector(selectAmount)\r\n const isConfirming = useSelector(selectConfirming)\r\n const sourceChain = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const targetAddress_ = useSelector(selectTargetAddress)\r\n const transactionOption = useSelector(selectTransactionOption)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const targetChain = useMemo(\r\n () =>\r\n mode === ModeOptions.payment\r\n ? transactionOption?.targetChain || ''\r\n : targetNetwork,\r\n [transactionOption, mode, targetNetwork]\r\n )\r\n const targetAddress = useMemo(\r\n () =>\r\n mode === ModeOptions.payment\r\n ? transactionOption?.targetAddress || ''\r\n : targetAddress_,\r\n [transactionOption, mode, targetAddress_]\r\n )\r\n const amount = useMemo(\r\n () => (mode === ModeOptions.payment ? transactionOption?.amount : amount_),\r\n [transactionOption, mode, amount_]\r\n )\r\n\r\n const getServiceFee = async () => {\r\n if (\r\n !sourceChain ||\r\n !targetChain ||\r\n !isReady ||\r\n !walletAddress ||\r\n !targetAddress ||\r\n !nodeProviderQuery ||\r\n !amount\r\n )\r\n return\r\n\r\n let gasFee: any = {}\r\n\r\n try {\r\n const gasFeeData: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/gas_fee`\r\n )\r\n\r\n gasFeeData.gasFee.forEach((data: any) => {\r\n gasFee[data.chainId] = data.fee\r\n })\r\n\r\n const estimation: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/estimate_transfer/${sourceChain}/${walletAddress}/${targetChain}/${targetAddress}/${amount}`\r\n )\r\n\r\n const [originFee, targetFee] = await getFeeInUSD(\r\n sourceChain,\r\n targetChain,\r\n gasFee\r\n )\r\n let fee =\r\n parseFloat(estimation.estimateTransfer.TakerPenalty) +\r\n parseFloat(estimation.estimateTransfer.MakerPenalty) -\r\n parseFloat(estimation.estimateTransfer.TakerBounty) -\r\n parseFloat(estimation.estimateTransfer.MakerBounty) +\r\n parseFloat(estimation.estimateTransfer.NetworkFee) +\r\n originFee +\r\n targetFee\r\n\r\n fee = fee < 0 ? 0 : fee\r\n setServiceFee(parseFloat(fee.toFixed(2)))\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isConfirming) return\r\n getServiceFee()\r\n const timerId = setInterval(() => {\r\n getServiceFee()\r\n }, 20 * 1000)\r\n\r\n return () => {\r\n clearInterval(timerId)\r\n }\r\n\r\n // eslint-disable-next-line\r\n }, [\r\n sourceChain,\r\n targetChain,\r\n isReady,\r\n walletAddress,\r\n isConfirming,\r\n targetAddress,\r\n nodeProviderQuery,\r\n amount\r\n ])\r\n\r\n return useMemo(\r\n () => ({\r\n serviceFee\r\n }),\r\n [serviceFee]\r\n )\r\n}\r\n","import React from 'react'\r\nimport { selectTheme } from '../../store/selectors'\r\nimport { useSelector } from 'react-redux'\r\nimport AddressInput from './AddressInput'\r\n\r\nconst AddressInputWizard = () => {\r\n const theme = useSelector(selectTheme)\r\n\r\n return (\r\n <div className={`coin-select`}>\r\n <p>Select Target Address for Funding</p>\r\n\r\n <div className={`address-input ${theme}`}>\r\n <span>Target Address:</span>\r\n <AddressInput />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default AddressInputWizard\r\n","import { useEffect, useMemo, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport {\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectTargetNetwork\r\n} from '../store/selectors'\r\nimport { COIN_LIST } from '../utils/constants'\r\n\r\nexport default function useCurrencyOptions() {\r\n const [options, setOptions] = useState(COIN_LIST['USDK'])\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n const originNetwork = useSelector(selectOriginNetwork)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery || !originNetwork || !targetNetwork) return\r\n ;(async function () {\r\n try {\r\n const coins: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/getCurrencies/${originNetwork}/${targetNetwork}`\r\n )\r\n\r\n setOptions(\r\n COIN_LIST[coins.Currencies?.length ? coins.Currencies[0] : 'USDK']\r\n )\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n }, [nodeProviderQuery, originNetwork, targetNetwork])\r\n\r\n return useMemo(\r\n () => ({\r\n options\r\n }),\r\n [options]\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { CrossIcon, FooterLogo } from '../assets/icons'\r\nimport {\r\n ConfirmDetails,\r\n ExternalLink,\r\n NetworkSelect,\r\n PrimaryButton,\r\n SecondaryButton,\r\n WalletButton\r\n} from './reusable'\r\nimport {\r\n DefaultProps,\r\n FontSizeOptions,\r\n ModeOptions,\r\n ThemeOptions,\r\n TitleOption\r\n} from '../interface'\r\nimport SingleForm from './reusable/SingleForm'\r\nimport CoinSelect from './reusable/CoinSelect'\r\n\r\n// store\r\nimport {\r\n initialize,\r\n setConfirming,\r\n setCurrencyOptions,\r\n setServiceFee,\r\n setSubmitted,\r\n setSubmitting,\r\n setTheme,\r\n setTxId\r\n} from '../store/optionSlice'\r\nimport '../index.css'\r\nimport {\r\n selectAmount,\r\n selectApproving,\r\n selectBackendUrl,\r\n selectCloseHandler,\r\n selectErrorHandler,\r\n selectMode,\r\n selectNodeProviderQuery,\r\n selectOriginNetwork,\r\n selectSubmitting,\r\n selectTargetAddress,\r\n selectTargetNetwork\r\n} from '../store/selectors'\r\nimport useIsWalletReady from '../hooks/useIsWalletReady'\r\nimport useAllowance from '../hooks/useAllowance'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\nimport useServiceFee from '../hooks/useServiceFee'\r\nimport AddressInputWizard from './reusable/AddressInputWizard'\r\nimport { HelpPopup, WalletConnectModal } from './modals'\r\nimport useCurrencyOptions from '../hooks/useCurrencyOptions'\r\nimport { ChainName, CHAIN_NAMES_TO_STRING } from '../utils/constants'\r\n\r\ninterface Props extends DefaultProps {\r\n titleOption?: TitleOption\r\n}\r\n\r\nexport const TransferWidget = ({\r\n theme = ThemeOptions.light,\r\n fontSize = FontSizeOptions.medium,\r\n titleOption\r\n}: Props) => {\r\n const dispatch = useDispatch()\r\n\r\n // State variables for UI\r\n const [isWizard, setWizard] = useState(false)\r\n const [formStep, setFormStep] = useState(0)\r\n const [wizardStep, setWizardStep] = useState(0)\r\n\r\n // Hooks for wallet connection, allowance\r\n const { walletAddress, isReady } = useIsWalletReady()\r\n const { isApproved, approve } = useAllowance()\r\n const { serviceFee: fee } = useServiceFee()\r\n\r\n // Redux variables\r\n const mode = useSelector(selectMode)\r\n const amount = useSelector(selectAmount)\r\n const sourceChain = useSelector(selectOriginNetwork)\r\n const targetAddress = useSelector(selectTargetAddress)\r\n const targetNetwork = useSelector(selectTargetNetwork)\r\n const isApproving = useSelector(selectApproving)\r\n const errorHandler = useSelector(selectErrorHandler)\r\n const closeHandler = useSelector(selectCloseHandler)\r\n const isSubmitting = useSelector(selectSubmitting)\r\n const { options: selectedCoin } = useCurrencyOptions()\r\n const backendUrl = useSelector(selectBackendUrl)\r\n const nodeProviderQuery = useSelector(selectNodeProviderQuery)\r\n\r\n useEffect(() => {\r\n if (!nodeProviderQuery) return\r\n ;(async function () {\r\n const res: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/pool_balance`\r\n )\r\n\r\n console.table(\r\n res.poolBalance.map((item: any) => ({\r\n chain: CHAIN_NAMES_TO_STRING[item.chainName],\r\n balance: +item.balance\r\n }))\r\n )\r\n })()\r\n }, [nodeProviderQuery])\r\n\r\n useEffect(() => {\r\n dispatch(setCurrencyOptions(selectedCoin))\r\n }, [selectedCoin])\r\n\r\n useEffect(() => {\r\n if (!isReady) {\r\n if (formStep > 0) setFormStep(0)\r\n if (wizardStep > 0) setWizardStep(1)\r\n }\r\n }, [isReady, wizardStep, formStep])\r\n\r\n useEffect(() => {\r\n dispatch(setServiceFee(fee))\r\n }, [fee])\r\n\r\n const checkPoolBalance = async () => {\r\n const res: any = await fetchWrapper.get(\r\n `${nodeProviderQuery}/kima-finance/kima/kima/pool_balance`\r\n )\r\n\r\n const poolBalance = res.poolBalance\r\n for (let i = 0; i < poolBalance.length; i++) {\r\n if (poolBalance[i].chainName === targetNetwork) {\r\n if (+poolBalance[i].balance >= amount + fee) {\r\n return true\r\n }\r\n\r\n const symbol =\r\n targetNetwork === ChainName.FUSE || targetNetwork === ChainName.CELO\r\n ? 'G$'\r\n : 'USDK'\r\n console.log(\r\n `Tried to transfer ${amount} ${symbol}, but ${\r\n CHAIN_NAMES_TO_STRING[targetNetwork]\r\n } pool has only ${+poolBalance[i].balance} ${symbol}`\r\n )\r\n return false\r\n }\r\n }\r\n console.log(`${CHAIN_NAMES_TO_STRING[targetNetwork]} pool error`)\r\n return false\r\n }\r\n\r\n const handleSubmit = async () => {\r\n if (!isApproved) {\r\n approve()\r\n return\r\n }\r\n\r\n try {\r\n dispatch(setSubmitting(true))\r\n\r\n if (!(await checkPoolBalance())) {\r\n dispatch(setSubmitting(false))\r\n return\r\n }\r\n const params = JSON.stringify({\r\n originAddress: walletAddress,\r\n originChain: sourceChain,\r\n targetAddress: targetAddress,\r\n targetChain: targetNetwork,\r\n symbol: selectedCoin.label,\r\n amount: amount,\r\n fee: fee\r\n })\r\n\r\n console.log(params)\r\n await fetchWrapper.post(`${backendUrl}/auth`, params)\r\n const result: any = await fetchWrapper.post(\r\n `${backendUrl}/submit`,\r\n params\r\n )\r\n\r\n console.log(result)\r\n\r\n if (result?.code !== 0) {\r\n errorHandler(result)\r\n dispatch(setSubmitting(false))\r\n return\r\n }\r\n\r\n let txId = -1\r\n\r\n for (const event of result.events) {\r\n if (event.type === 'transaction_requested') {\r\n for (const attr of event.attributes) {\r\n if (attr.key === 'txId') {\r\n txId = attr.value\r\n }\r\n }\r\n }\r\n }\r\n\r\n console.log(txId)\r\n dispatch(setTxId(txId))\r\n dispatch(setSubmitted(true))\r\n dispatch(setSubmitting(false))\r\n } catch (e) {\r\n errorHandler(e)\r\n dispatch(setSubmitting(false))\r\n console.log('rpc disconnected', e)\r\n }\r\n }\r\n\r\n const onNext = () => {\r\n if (isWizard && wizardStep < 5) {\r\n if (wizardStep === 1 && !isReady) return\r\n if (wizardStep === 3) {\r\n if (targetAddress) {\r\n setWizardStep(4)\r\n }\r\n return\r\n }\r\n if (wizardStep === 4) {\r\n if (fee >= 0 && amount > 0) {\r\n setWizardStep(5)\r\n }\r\n return\r\n }\r\n\r\n if (mode === ModeOptions.payment && wizardStep === 1 && fee >= 0) {\r\n dispatch(setConfirming(true))\r\n setWizardStep(5)\r\n } else setWizardStep((step) => step + 1)\r\n }\r\n\r\n if (!isWizard && !formStep) {\r\n if (isReady) {\r\n if (\r\n (fee >= 0 && mode === ModeOptions.payment) ||\r\n (fee >= 0 && targetAddress && amount > 0)\r\n ) {\r\n dispatch(setConfirming(true))\r\n setFormStep(1)\r\n }\r\n return\r\n }\r\n }\r\n\r\n if ((isWizard && wizardStep === 5) || (!isWizard && formStep > 0)) {\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const onBack = () => {\r\n if (isApproving || isSubmitting) return\r\n if (isWizard && wizardStep > 0) {\r\n if (mode === ModeOptions.payment && wizardStep === 5) setWizardStep(1)\r\n else setWizardStep((step) => step - 1)\r\n dispatch(setConfirming(false))\r\n }\r\n\r\n if (!isWizard && formStep > 0) {\r\n setFormStep(0)\r\n dispatch(setConfirming(false))\r\n }\r\n\r\n if ((isWizard && wizardStep === 0) || (!isWizard && formStep === 0)) {\r\n closeHandler()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(setTheme(theme))\r\n }, [theme])\r\n\r\n return (\r\n <div className={`kima-card ${theme} font-${fontSize}`}>\r\n <div className='kima-card-header'>\r\n <div className='topbar'>\r\n <div className='title'>\r\n <h3>\r\n {(isWizard && wizardStep === 3) || (!isWizard && formStep > 0)\r\n ? titleOption?.confirmTitle ?? 'Transfer Details'\r\n : titleOption?.initialTitle ?? 'New Transfer'}\r\n </h3>\r\n </div>\r\n <div className='control-buttons'>\r\n <ExternalLink to='https://docs.kima.finance/demo'>\r\n <div className='menu-button'>I need help</div>\r\n </ExternalLink>\r\n <button\r\n className='icon-button'\r\n onClick={() => {\r\n dispatch(initialize())\r\n closeHandler()\r\n }}\r\n >\r\n <CrossIcon fill={theme === 'light' ? 'black' : 'white'} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className='kima-card-content'>\r\n {isWizard ? (\r\n wizardStep === 0 ? (\r\n <NetworkSelect />\r\n ) : wizardStep === 1 ? (\r\n <div className='connect-wallet-step'>\r\n <p>Connect your wallet</p>\r\n <WalletButton errorBelow={true} />\r\n </div>\r\n ) : wizardStep === 2 ? (\r\n <NetworkSelect isOriginChain={false} />\r\n ) : wizardStep === 3 ? (\r\n <AddressInputWizard />\r\n ) : wizardStep === 4 ? (\r\n <CoinSelect />\r\n ) : (\r\n <ConfirmDetails isApproved={isApproved} />\r\n )\r\n ) : formStep === 0 ? (\r\n <SingleForm />\r\n ) : (\r\n <ConfirmDetails isApproved={isApproved} />\r\n )}\r\n </div>\r\n\r\n <div className='kima-card-footer'>\r\n <FooterLogo fill={theme === 'light' ? 'black' : '#C5C5C5'} />\r\n <SecondaryButton\r\n clickHandler={() => {\r\n setWizard((prev) => !prev)\r\n }}\r\n theme={theme}\r\n style={{ style: { width: '12em', marginLeft: 'auto' } }}\r\n >\r\n Switch to {isWizard ? 'Form' : 'Wizard'}\r\n </SecondaryButton>\r\n <SecondaryButton clickHandler={onBack} theme={theme}>\r\n {(isWizard && wizardStep > 0) || (!isWizard && formStep > 0)\r\n ? 'Back'\r\n : 'Cancel'}\r\n </SecondaryButton>\r\n <PrimaryButton\r\n clickHandler={onNext}\r\n isLoading={isApproving || isSubmitting}\r\n >\r\n {(isWizard && wizardStep === 5) || (!isWizard && formStep === 1)\r\n ? isApproved\r\n ? isSubmitting\r\n ? 'Submitting...'\r\n : 'Submit'\r\n : isApproving\r\n ? 'Approving...'\r\n : 'Approve'\r\n : 'Next'}\r\n </PrimaryButton>\r\n </div>\r\n <WalletConnectModal />\r\n <HelpPopup />\r\n </div>\r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport {\r\n DefaultProps,\r\n TransactionOption,\r\n FontSizeOptions,\r\n ThemeOptions,\r\n ModeOptions,\r\n TitleOption\r\n} from '../interface'\r\n\r\n// store\r\nimport {\r\n setCloseHandler,\r\n setErrorHandler,\r\n setMode,\r\n setTheme,\r\n setTxId,\r\n setSubmitted,\r\n setTransactionOption,\r\n setAmount,\r\n setSuccessHandler,\r\n setBackendUrl,\r\n setNodeProviderQuery,\r\n setTargetNetwork,\r\n setTargetAddress,\r\n setOriginNetwork\r\n} from '../store/optionSlice'\r\nimport '../index.css'\r\nimport { selectSubmitted } from '../store/selectors'\r\nimport { TransactionWidget } from './TransactionWidget'\r\nimport { TransferWidget } from './TransferWidget'\r\nimport { ChainName } from '../utils/constants'\r\nimport { fetchWrapper } from '../helpers/fetch-wrapper'\r\n\r\ninterface Props extends DefaultProps {\r\n mode: ModeOptions\r\n txId?: number\r\n titleOption?: TitleOption\r\n kimaBackendUrl: string\r\n transactionOption?: TransactionOption\r\n kimaNodeProviderQuery: string\r\n errorHandler?: (e: any) => void\r\n closeHandler?: (e: any) => void\r\n successHandler?: (e: any) => void\r\n}\r\n\r\nexport const KimaTransactionWidget = ({\r\n mode,\r\n txId,\r\n theme = ThemeOptions.light,\r\n fontSize = FontSizeOptions.medium,\r\n titleOption,\r\n transactionOption,\r\n kimaBackendUrl,\r\n kimaNodeProviderQuery,\r\n errorHandler = () => void 0,\r\n closeHandler = () => void 0,\r\n successHandler = () => void 0\r\n}: Props) => {\r\n const submitted = useSelector(selectSubmitted)\r\n const dispatch = useDispatch()\r\n\r\n useEffect(() => {\r\n dispatch(setTheme(theme))\r\n if (transactionOption) dispatch(setTransactionOption(transactionOption))\r\n dispatch(setErrorHandler(errorHandler))\r\n dispatch(setCloseHandler(closeHandler))\r\n dispatch(setSuccessHandler(successHandler))\r\n dispatch(setBackendUrl(kimaBackendUrl))\r\n dispatch(setNodeProviderQuery(kimaNodeProviderQuery))\r\n dispatch(setMode(mode))\r\n if (mode === ModeOptions.payment) {\r\n dispatch(\r\n setTargetNetwork(transactionOption?.targetChain || ChainName.ETHEREUM)\r\n )\r\n ;(async function () {\r\n try {\r\n const networks: any = await fetchWrapper.get(\r\n `${kimaNodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${\r\n transactionOption?.targetChain || ChainName.ETHEREUM\r\n }`\r\n )\r\n dispatch(setOriginNetwork(networks.Chains[0]))\r\n } catch (e) {\r\n console.log('rpc disconnected', e)\r\n }\r\n })()\r\n dispatch(setTargetAddress(transactionOption?.targetAddress || ''))\r\n dispatch(setAmount(transactionOption?.amount || 0))\r\n } else if (mode === ModeOptions.status) {\r\n dispatch(setTxId(txId || 1))\r\n dispatch(setSubmitted(true))\r\n }\r\n }, [theme, transactionOption, errorHandler, closeHandler, mode])\r\n\r\n return submitted ? (\r\n <TransactionWidget theme={theme} fontSize={fontSize} />\r\n ) : (\r\n <TransferWidget\r\n theme={theme}\r\n fontSize={fontSize}\r\n titleOption={titleOption}\r\n />\r\n )\r\n}\r\n","import React from 'react'\r\nimport { store } from './store'\r\nimport { Provider } from 'react-redux'\r\nimport {\r\n ConnectionProvider,\r\n WalletProvider\r\n} from '@solana/wallet-adapter-react'\r\nimport {\r\n PhantomWalletAdapter,\r\n SolflareWalletAdapter,\r\n SolletWalletAdapter,\r\n CloverWalletAdapter,\r\n Coin98WalletAdapter,\r\n SlopeWalletAdapter,\r\n SolongWalletAdapter,\r\n TorusWalletAdapter,\r\n SolletExtensionWalletAdapter\r\n} from '@solana/wallet-adapter-wallets'\r\nimport { EthereumProvider } from './contexts/EthereumProviderContext'\r\nimport { SOLANA_HOST } from './utils/constants'\r\n\r\nexport {\r\n FontSizeOptions,\r\n ThemeOptions,\r\n SupportNetworks,\r\n CurrencyOptions,\r\n ModeOptions\r\n} from './interface'\r\nexport { KimaTransactionWidget } from './components/KimaTransactionWidget'\r\nexport const KimaProvider = ({ children }: any) => {\r\n const wallets = [\r\n new PhantomWalletAdapter(),\r\n new SolflareWalletAdapter(),\r\n new SolletWalletAdapter(),\r\n new SolletExtensionWalletAdapter(),\r\n new CloverWalletAdapter(),\r\n new Coin98WalletAdapter(),\r\n new SlopeWalletAdapter(),\r\n new SolongWalletAdapter(),\r\n new TorusWalletAdapter()\r\n ]\r\n\r\n return (\r\n <Provider store={store}>\r\n <EthereumProvider>\r\n <ConnectionProvider endpoint={SOLANA_HOST}>\r\n <WalletProvider wallets={wallets} autoConnect>\r\n {children}\r\n </WalletProvider>\r\n </ConnectionProvider>\r\n </EthereumProvider>\r\n </Provider>\r\n )\r\n}\r\n"],"names":["Cross","width","height","fill","rest","React","viewBox","xmlns","d","Minimize","FooterLogo","Check","Warning","ArrowRight","Arrow","stroke","strokeWidth","strokeLinecap","strokeLinejoin","Ethereum","x","y","id","patternContentUnits","href","transform","Solana","style","maskType","maskUnits","cx","cy","r","mask","clipPath","Avalanche","USDT","Fuse","Celo","GoodDollar","Copy","xmlSpace","SOLANA_USDK_ADDRESS","ETHEREUM_USDK_ADDRESS","POLYGON_USDK_ADDRESS","AVAX_USDK_ADDRESS","FUSE_GDOLLAR_ADDRESS","CELO_GDOLLAR_ADDRESS","ChainName","SupportedChainId","CHAIN_NAMES_TO_IDS","ETHEREUM","POLYGON","AVALANCHE","FUSE","CELO","CHAIN_NAMES_TO_STRING","SOLANA","CHAIN_NAMES_TO_EXPLORER","CHAIN_NAMES_TO_GECKO_ID","CHAIN_IDS_TO_NAMES","networkOptions","label","icon","EthereumIcon","PolygonIcon","AvalancheIcon","FuseIcon","CeloIcon","SolanaIcon","getNetworkOption","index","findIndex","item","CLUSTER","SOLANA_HOST","clusterApiUrl","isEVMChain","chainId","COIN_LIST","USDK","symbol","USDTIcon","address","SOL","ETH","POL","AVX","decimals","GDOLLAR","GoodDollarIcon","FUS","CEL","TransactionStatus","FontSizeOptions","ModeOptions","CurrencyOptions","ThemeOptions","initialState","theme","light","mode","bridge","originNetwork","targetNetwork","targetAddress","connectModal","helpPopup","hashPopup","solanaProvider","undefined","submitted","amount","isApproving","isSubmitting","isConfirming","feeDeduct","errorHandler","closeHandler","successHandler","serviceFee","backendUrl","nodeProviderQuery","txId","currencyOptions","optionSlice","createSlice","name","reducers","initialize","state","setTheme","action","payload","setOriginNetwork","setTargetNetwork","setTargetAddress","setConnectModal","setHelpPopup","setHashPopup","setSolanaProvider","setSubmitted","setTransactionOption","transactionOption","setAmount","setApproving","setSubmitting","setErrorHandler","setCloseHandler","setSuccessHandler","setServiceFee","setMode","setConfirming","setFeeDeduct","setBackendUrl","setNodeProviderQuery","setTxId","setCurrencyOptions","actions","reducer","store","configureStore","option","optionReducer","middleware","getDefaultMiddleware","serializableCheck","selectTheme","selectOriginNetwork","selectTargetNetwork","selectTargetAddress","selectConnectModal","selectHelpPopup","selectHashPopup","selectSolanaProvider","selectSubmitted","selectTransactionOption","selectAmount","selectApproving","selectSubmitting","selectErrorHandler","selectCloseHandler","selectSuccessHandler","selectServiceFee","selectMode","selectConfirming","selectFeeDeduct","selectBackendUrl","selectNodeProviderQuery","selectTxId","selectCurrencyOptions","EthereumProviderContext","createContext","connect","disconnect","provider","signer","signerAddress","providerError","EthereumProvider","children","useSelector","useState","setProviderError","setProvider","setChainId","setSigner","setSignerAddress","useCallback","detectEthereumProvider","then","detectedProvider","ethers","providers","Web3Provider","send","getNetwork","network","e","getSigner","getAddress","on","BigNumber","from","toNumber","accounts","contextValue","useMemo","Provider","value","useEthereumProvider","useContext","Loading180Ring","attributeName","type","dur","values","repeatCount","stepInfo","title","Progressbar","step","errorStep","setFocus","loadingStep","className","map","key","onClick","dark","WarningIcon","CheckIcon","ExternalLink","to","target","rel","NetworkLabel","sourceChain","targetChain","hasError","SourceInfo","TargetInfo","ArrowRightIcon","PrimaryButton","clickHandler","isLoading","SecondaryButton","fetchWrapper","get","post","url","requestOptions","method","headers","fetch","handleResponse","body","credentials","response","text","data","JSON","parse","error","ok","statusText","Promise","reject","status","useNetworkOptions","options","setOptions","useEffect","networks","filter","Chains","console","log","Network","isOriginChain","dispatch","useDispatch","sliderRef","useRef","availableNetworks","setAvailableNetworks","selectedNetwork","payment","isDown","startX","scrollLeft","current","addEventListener","classList","add","pageX","offsetLeft","remove","preventDefault","walk","slideLeft","temp","timerId","setInterval","clearInterval","slideRight","ArrowIcon","ref","WalletSelect","selectedProvider","useWallet","wallets","detected","undetected","wallet","readyState","WalletReadyState","Installed","Loadable","push","NotDetected","adapter","src","alt","version","createWalletStatus","isReady","statusMessage","forceNetworkSwitch","walletAddress","useIsWalletReady","enableNetworkAutoswitch","autoSwitch","solPK","publicKey","evmChainId","hasEthInfo","correctEvmNetwork","hasCorrectEvmNetwork","hexStripZeros","hexlify","toBase58","getShortenedAddress","is0x","addr","startsWith","substring","substr","length","connectWalletBtn","WalletButton","errorBelow","disconnectSolana","disconnectEVM","handleClick","CoinDropdown","collapsed","setCollapsed","selectedCoin","prev","NetworkDropdown","formatterInt","Intl","NumberFormat","maximumFractionDigits","formatterFloat","ConfirmDetails","isApproved","originNetworkOption","targetNetworkOption","format","AddressInput","onChange","CopyButton","copyClicked","setCopyClicked","setTimeout","navigator","clipboard","writeText","CopyIcon","StepBox","kimaTxHash","tssPullHash","tssReleaseHash","HelpPopup","CrossIcon","HashPopup","WalletConnectModal","select","handleConnect","justifyContent","marginTop","TransactionWidget","fontSize","medium","setStep","focus","setErrorStep","setLoadingStep","minimized","setMinimized","percent","setPercent","setData","result","transactionData","originChain","AVAILABLE","CONFIRMED","UNAVAILABLE","KEYSIGNED","PAID","FAILED","COMPLETED","AnimatedNumber","component","duration","formatValue","n","MinimizeIcon","SingleForm","_amount","parseFloat","toFixed","CoinSelect","readOnly","createAssociatedTokenAccountInstruction","payer","associatedToken","owner","mint","programId","associatedTokenProgramId","TOKEN_PROGRAM_ID","ASSOCIATED_TOKEN_PROGRAM_ID","keys","pubkey","isSigner","isWritable","SystemProgram","SYSVAR_RENT_PUBKEY","TransactionInstruction","Buffer","alloc","getAccountInfo","connection","commitment","info","Error","equals","AccountLayout","span","rawAccount","decode","delegate","delegateOption","delegatedAmount","isInitialized","AccountState","Uninitialized","isFrozen","Frozen","isNative","isNativeOption","rentExemptReserve","closeAuthority","closeAuthorityOption","getAssociatedTokenAddress","allowOwnerOffCurve","PublicKey","isOnCurve","toBuffer","findProgramAddress","getOrCreateAssociatedTokenAccount","signTransaction","account","err","message","transaction","Transaction","getRecentBlockhash","blockHash","feePayer","blockhash","recentBlockhash","signed","sendRawTransaction","serialize","signature","confirmTransaction","this","BufferLayout","require","TokenInstruction","createApproveTransferInstruction","source","destination","multiSigners","dataLayout","struct","u8","blob","addSigners","encode","instruction","Approve","TokenAmount","ownerOrAuthority","a","toArray","reverse","b","zeroPad","copy","BN","useAllowance","allowance","setAllowance","setDecimals","useConnection","useSolanaWallet","tokenAddress","updatePoolAddress","tssPubkey","ebdsa","ecdsa","erc20Contract","Contract","ERC20ABI","abi","userAllowance","formatUnits","fromTokenAccount","getParsedAccountInfo","accountInfo","parsedAccountInfo","parsed","uiAmount","approve","toPublicKey","Math","pow","getLatestBlockhash","parseUnits","toString","wait","getFeeInUSD","gasFee","max_gas","getPrice","sourceTokenPrice","targetTokenPrice","sourceFee","targetFee","isNaN","res","json","price","Object","usd","useServiceFee","amount_","targetAddress_","getServiceFee","gasFeeData","forEach","fee","estimation","originFee","estimateTransfer","TakerPenalty","MakerPenalty","TakerBounty","MakerBounty","NetworkFee","AddressInputWizard","useCurrencyOptions","coins","Currencies","TransferWidget","titleOption","isWizard","setWizard","formStep","setFormStep","wizardStep","setWizardStep","table","poolBalance","chain","chainName","balance","checkPoolBalance","i","handleSubmit","params","stringify","originAddress","code","events","event","attributes","attr","onNext","onBack","confirmTitle","initialTitle","NetworkSelect","marginLeft","KimaTransactionWidget","kimaBackendUrl","kimaNodeProviderQuery","KimaProvider","PhantomWalletAdapter","SolflareWalletAdapter","SolletWalletAdapter","SolletExtensionWalletAdapter","CloverWalletAdapter","Coin98WalletAdapter","SlopeWalletAdapter","SolongWalletAdapter","TorusWalletAdapter","ConnectionProvider","endpoint","WalletProvider","autoConnect"],"mappings":"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K,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC;AAC1B,IAAI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,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACtD,IAAI,EAAE,IAAI,SAAS,CAAC;AACpB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,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AG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB;AACA,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,GAAG,IAAI,SAAS,CAAC;AACrB,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACd,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAChB,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;AACnB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAClB,IAAI,WAAW,GAAG,UAAU,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,SAAS,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACrC,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAChD,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC1C;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C;AACA;AACA,MAAM,IAAI,MAAM,GAAG,OAAO,CAAC;AAC3B,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,MAAM,IAAI,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AACpC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7C,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE;AACrE,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB;AACA,QAAQ,IAAI,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;AAC/B,QAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;AAC9B,QAAQ,KAAK,GAAG,EAAE,GAAG,SAAS,CAAC;AAC/B,QAAQ,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5C;AACA,QAAQ,OAAO,IAAI,MAAM,KAAK,EAAE,CAAC;AACjC,QAAQ,MAAM,IAAI,SAAS,CAAC;AAC5B,OAAO;AACP,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3B,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,MAAM,MAAM,GAAG,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;AACnB,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;AACxB,GAAG;AACH;AACA,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE;AACvC;AACA;AACA;AACA,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;AACjD,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;AACjD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACxC,KAAK,MAAM,IAAI,GAAG,GAAG,EAAE,EAAE;AACzB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,KAAK,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;AAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,KAAK,MAAM;AACX,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ,AAoMA;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AACpD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;AACpD,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AAC7B;AACA,IAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;AAC5B;AACA;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACxC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,KAAK,KAAK,GAAG,SAAS,CAAC,CAAC;AACrD,MAAM,KAAK,KAAK,EAAE,CAAC;AACnB,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;AACnC;AACA,MAAM,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AACrC,KAAK;AACL;AACA,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK;AACL;AACA,IAAI,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AACzC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AACrC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AACvC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC;AACA;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE;AACxD,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM;AAC5B,KAAK;AACL;AACA,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;AACxB,MAAM,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;AAC9D,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS;AACjC;AACA,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzB,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;AAC5B,IAAI,IAAI,SAAS,GAAG,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,CAAC;AACV;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;AACpB;AACA,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACjD,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAClC,QAAQ,KAAK,GAAG,QAAQ,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACtC,OAAO;AACP;AACA,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AACtB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1C,OAAO;AACP;AACA,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9B,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,OAAO;AACP;AACA,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACvB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAC7C;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/D,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,IAAI,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,IAAI,IAAI,WAAW,GAAG,QAAQ,CAAC;AAC/B;AACA,IAAI,CAAC,IAAI,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB;AACA;AACA,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAClC,QAAQ,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,OAAO;AACP,MAAM,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAEZ,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACvB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,OAAO;AACP,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,KAAK;AACL;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACtE,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;AACzD,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1B,KAAK;AACL;AACA;AACA,IAAI,IAAI,WAAW,IAAI,KAAK,KAAK,CAAC,EAAE;AACpC,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC;AACtD,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC7D;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAChC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7C,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAC7C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,IAAI,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAC7C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAChD,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB;AACA;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;AACvC;AACA;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,IAAI,EAAE;AAC/C,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;AAC5B;AACA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,yCAAyC,CAAC,CAAC;AAC3E;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,CAAC,EAAE,CAAC;AACV,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1C,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AAC7C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;AAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC;AACA;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC3D,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC1B,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP;AACA,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACzB;AACA;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;AACxE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AACjC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;AAC5B,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtB,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACzB;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAChD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxB,KAAK,MAAM;AACX;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjE,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AACvC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AACrC,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACtE,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,CAAC;AACV;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB;AACA,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;AAC9C,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AAC3C,MAAM,CAAC,IAAI,KAAK,GAAG,SAAS,CAAC;AAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC;AACpD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5C,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;AAC9C,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;AACtB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5C,KAAK;AACL;AACA,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1C;AACA;AACA,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AACvC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;AACtB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB;AACA,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACzB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;AACxD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AACzC;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AAChB;AACA;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACvC,IAAI,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC;AACzB,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzB,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AAChC,IAAI,IAAI,CAAC,CAAC;AACV;AACA,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AACxB,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AACvB,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACpC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC7B,MAAM,CAAC,GAAG,IAAI,CAAC;AACf,MAAM,IAAI,CAAC,EAAE;AACb,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACvB,OAAO;AACP,KAAK;AACL;AACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS;AACtD,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC;AACA;AACA;AACA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/C;AACA,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC/B,QAAQ,EAAE,EAAE,CAAC;AACb,QAAQ,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,UAAU,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;AAC1B,SAAS;AACT,OAAO;AACP,MAAM,IAAI,CAAC,EAAE;AACb,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxB,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,EAAE;AACX,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACf;AACA;AACA,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;AACvC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,GAAG,EAAE,CAAC,IAAI,IAAI;AACpB,MAAM,GAAG,EAAE,CAAC;AACZ,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC9D,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1B;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACvB,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtB,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACzC;AACA,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5B,OAAO;AACP;AACA,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5C,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,OAAO;AACP;AACA,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,GAAG;AAChB,QAAQ,GAAG,EAAE,GAAG;AAChB,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AACzC;AACA,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5B,OAAO;AACP;AACA,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,GAAG;AAChB,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAG;AACpB,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,MAAM,CAAC,EAAE;AAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;AAC/C;AACA,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC5B,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5C,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,SAAS;AACT,OAAO;AACP;AACA,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAG;AACpB,QAAQ,GAAG,EAAE,GAAG;AAChB,OAAO,CAAC;AACR,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACvD,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB,QAAQ,GAAG,EAAE,IAAI;AACjB,OAAO,CAAC;AACR,KAAK;AACL;AACA;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAQ,OAAO;AACf,UAAU,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,UAAU,GAAG,EAAE,IAAI;AACnB,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE;AAC1B,QAAQ,OAAO;AACf,UAAU,GAAG,EAAE,IAAI;AACnB,UAAU,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,SAAS,CAAC;AACV,OAAO;AACP;AACA,MAAM,OAAO;AACb,QAAQ,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,OAAO,CAAC;AACR,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC;AAC9C,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC;AAC9C,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;AAC7C,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE;AAClD,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B;AACA;AACA,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;AACvC;AACA,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;AAChE;AACA,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B;AACA;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;AAC1D;AACA;AACA,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrE,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AAC7B;AACA,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC;AAC5B;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAClD,KAAK;AACL;AACA,IAAI,OAAO,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACjC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3B,IAAI,IAAI,QAAQ,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AAC7B;AACA,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC;AAC7B;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS,CAAC;AACtD,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;AACpC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;AACtB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,IAAI,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AACzC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACxC,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACjB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACtB;AACA,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACpB,KAAK;AACL;AACA;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB;AACA;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtB;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd;AACA,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AACrC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,EAAE,CAAC,CAAC;AACV,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACvB,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACvB;AACA,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE;AACxB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACtC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,WAAW;AACX;AACA,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,OAAO;AACP;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;AACtC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvB,WAAW;AACX;AACA,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,SAAS;AACT,OAAO;AACP;AACA,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO,MAAM;AACb,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO;AACX,MAAM,CAAC,EAAE,CAAC;AACV,MAAM,CAAC,EAAE,CAAC;AACV,MAAM,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,KAAK,CAAC;AACN,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,EAAE;AAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACjB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACtB;AACA,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,KAAK,MAAM;AACX,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AAC1B;AACA,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC3C,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AAC1B,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,WAAW;AACX;AACA,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,SAAS;AACT,OAAO;AACP;AACA,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,QAAQ,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACxB,UAAU,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;AAC1B,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,WAAW;AACX;AACA,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,SAAS;AACT,OAAO;AACP;AACA,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACzB,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,OAAO,MAAM;AACb,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACzB,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,KAAK,MAAM;AACX,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,KAAK;AACL;AACA,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;AACxC,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACxC;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AACxB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AACnB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AACnB;AACA;AACA,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE;AAC3D,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,KAAK;AACL;AACA,IAAI,GAAG;AACP,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,OAAO;AACP,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;AACzB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,OAAO;AACP;AACA,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB;AACA,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;AAClB,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,QAAQ,CAAC,GAAG,CAAC,CAAC;AACd,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC7C,QAAQ,MAAM;AACd,OAAO;AACP;AACA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,KAAK,QAAQ,IAAI,EAAE;AACnB;AACA,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,IAAI;AACzC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,MAAM,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnB;AACA;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL;AACA;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzD,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,IAAI,KAAK,CAAC;AACjB,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,SAAS,CAAC;AACrB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC5B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3B;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACpD,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD;AACA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB;AACA,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,MAAM,GAAG,GAAG,CAAC,CAAC;AACd,KAAK,MAAM;AACX,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;AACnB,OAAO;AACP;AACA,MAAM,MAAM,CAAC,GAAG,IAAI,SAAS,EAAE,mBAAmB,CAAC,CAAC;AACpD;AACA,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7C,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAC7C,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C;AACA,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5C;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B;AACA,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS;AAC5B,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACjB,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC;AACjB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACxB,QAAQ,GAAG,GAAG,CAAC,CAAC;AAChB,OAAO;AACP,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;AAC9B,IAAI,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC5C,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC;AAC/D,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,+BAA+B,CAAC,CAAC;AACjE,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC9C,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,sDAAsD,CAAC,CAAC;AAC7E,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACtC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACpD,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACnB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,GAAG,EAAE;AAClD,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC;AAC/D,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;AAC5D,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;AAC5D,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACjC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACpC,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,IAAI;AAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,IAAI;AAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG,CAAC;AACJ;AACA,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,EAAE;AAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA;AACA,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,MAAM,EAAE,IAAI;AAChB,GAAG,CAAC;AACJ;AACA;AACA,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;AAC5B;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnD;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,IAAI;AAC3C,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClD,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,EAAE;AACpD;AACA;AACA,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;AAChB,IAAI,IAAI,IAAI,CAAC;AACb;AACA,IAAI,GAAG;AACP,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;AAC3B,KAAK,QAAQ,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;AAC5B;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,IAAI,IAAI,GAAG,KAAK,CAAC,EAAE;AACnB,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACnB,KAAK,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AACxB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE;AACjC;AACA,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;AAClB,OAAO,MAAM;AACb;AACA,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AACnB,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;AACvD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,GAAG,CAAC;AACJ;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAChD,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,IAAI,IAAI;AACnB,IAAI,MAAM,CAAC,IAAI;AACf,MAAM,IAAI;AACV,MAAM,MAAM;AACZ,MAAM,yEAAyE,CAAC,CAAC;AACjF,GAAG;AACH,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;AACxD;AACA,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC;AACxB;AACA,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC3C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,MAAM,OAAO;AACb,KAAK;AACL;AACA;AACA,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD;AACA,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACpC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;AACjE,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,IAAI,MAAM,EAAE,CAAC;AACjB,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AACzC,MAAM,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AACxB,KAAK;AACL,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAC9C;AACA,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACpB;AACA;AACA,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/B,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AACtB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AACpC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC;AAC7C,KAAK;AACL;AACA;AACA,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AACzC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;AACnB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAC3C,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;AACrB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,IAAI,IAAI;AACnB,IAAI,MAAM,CAAC,IAAI;AACf,MAAM,IAAI;AACV,MAAM,MAAM;AACZ,MAAM,gEAAgE,CAAC,CAAC;AACxE,GAAG;AACH,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB;AACA,EAAE,SAAS,IAAI,IAAI;AACnB,IAAI,MAAM,CAAC,IAAI;AACf,MAAM,IAAI;AACV,MAAM,MAAM;AACZ,MAAM,uDAAuD,CAAC,CAAC;AAC/D,GAAG;AACH,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB;AACA,EAAE,SAAS,MAAM,IAAI;AACrB;AACA,IAAI,MAAM,CAAC,IAAI;AACf,MAAM,IAAI;AACV,MAAM,OAAO;AACb,MAAM,qEAAqE,CAAC,CAAC;AAC7E,GAAG;AACH,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3B;AACA,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,KAAK,EAAE,GAAG,EAAE;AAChD;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;AACjD,MAAM,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;AAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;AACjB;AACA,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACxB,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA;AACA,EAAE,EAAE,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE;AACpC;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1C;AACA,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,IAAI,KAAK,MAAM,EAAE;AACzB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;AAC3B,KAAK,MAAM;AACX,MAAM,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAC/C,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACzB;AACA,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE;AACnB,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC/B,MAAM,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;AACzD,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACxB,KAAK;AACL,GAAG;AACH;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE;AACjD,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,+BAA+B,CAAC,CAAC;AAC9D,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;AACrD,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE;AACpD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,EAAE,+BAA+B,CAAC,CAAC;AAC7E,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACnC,MAAM,iCAAiC,CAAC,CAAC;AACzC,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACzC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjE;AACA,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;AACvC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AACpB,MAAM,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;AACvB,KAAK;AACL;AACA,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AACzB,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACzC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACzC,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;AACrC;AACA,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B;AACA;AACA,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AAC5C,MAAM,CAAC,EAAE,CAAC;AACV,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClB,KAAK;AACL,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxB;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AAC5B;AACA;AACA;AACA,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtC;AACA,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC;AAClB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AAC3B,OAAO;AACP,MAAM,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD;AACA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACrB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,KAAK;AACL;AACA,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AACzC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC5B,MAAM,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACrC,KAAK,MAAM;AACX,MAAM,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,KAAK;AACL,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;AAC5C,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;AAC5C;AACA,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;AACzC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC;AACpB,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC;AACrC,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,KAAK;AACL;AACA,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5B,UAAU,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAS;AACT;AACA,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;AACxC,UAAU,UAAU,GAAG,CAAC,CAAC;AACzB,UAAU,SAAS;AACnB,SAAS;AACT;AACA,QAAQ,OAAO,KAAK,CAAC,CAAC;AACtB,QAAQ,OAAO,IAAI,GAAG,CAAC;AACvB,QAAQ,UAAU,EAAE,CAAC;AACrB,QAAQ,IAAI,UAAU,KAAK,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS;AACxE;AACA,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1C,QAAQ,UAAU,GAAG,CAAC,CAAC;AACvB,QAAQ,OAAO,GAAG,CAAC,CAAC;AACpB,OAAO;AACP,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACrD,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B;AACA,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,GAAG,CAAC;AACJ;AACA,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE;AACzD,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AAC1B,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;AACnB,IAAI,OAAO,GAAG,CAAC;AACf,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE;AAChC,IAAI,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,GAAG,CAAC;AACJ;AACA,EAAE,SAAS,IAAI,EAAE,CAAC,EAAE;AACpB,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACtB;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE;AAC/B,MAAM,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAC3C,KAAK;AACL;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,GAAG;AACH,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACtB;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,EAAE,GAAG,EAAE;AACtD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,EAAE,GAAG,EAAE;AAC1D,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;AACjB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7C,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;AAClC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrB,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACnB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB;AACA,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACnE;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC;AAChB,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;AAC9B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,EAAE;AAC1C;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,IAAI,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,GAAG,CAAC;AACJ,CAAC,EAAE,CAAiC,MAAM,EAAEoO,cAAI,CAAC;;;ACj9GjD,IAAMC,YAAY,GAAGC,OAAO,CAAC,eAAe,CAAC;AAE7C,AAAA,IAAYC,gBAsBX;AAtBD,WAAYA,gBAAgB;EAC1BA,2EAAkB;EAClBA,iFAAqB;EACrBA,mFAAsB;EACtBA,+DAAY;EACZA,6DAAW;EACXA,2DAAU;EACVA,uEAAgB;EAChBA,2DAAU;EACVA,uDAAQ;EACRA,uEAAgB;EAChBA,0EAAkB;EAClBA,sEAAgB;EAChBA,8EAAoB;EACpBA,4EAAmB;EACnBA,0EAAkB;EAClBA,sEAAgB;EAChBA,oFAAuB;EACvBA,oEAAe;EACfA,oFAAuB;EACvBA,sFAAwB;EACxBA,8EAAoB;AACtB,CAAC,EAtBWA,gBAAgB,KAAhBA,gBAAgB;AAoC5B,SAkCgBC,gCAAgC,CAC9CC,MAAiB,EACjBC,WAAsB,EACtBnE,KAAgB,EAChBlV,MAAc,EACdsZ,cACAlE,SAAS;MADTkE;IAAAA,eAAyB,EAAE;;EAAA,IAC3BlE,SAAS;IAATA,SAAS,GAAGE,yBAAgB;;EAE5B,IAAMiE,UAAU,GAAGP,YAAY,CAACQ,MAAM,CAAC,CACrCR,YAAY,CAACS,EAAE,CAAC,aAAa,CAAC,EAC9BT,YAAY,CAACU,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAC/B,CAAC;EAEF,IAAMlE,IAAI,GAAGmE,UAAU,CACrB,CACE;IAAElE,MAAM,EAAE2D,MAAM;IAAE1D,QAAQ,EAAE,KAAK;IAAEC,UAAU,EAAE;GAAM,EACrD;IAAEF,MAAM,EAAE4D,WAAW;IAAE3D,QAAQ,EAAE,KAAK;IAAEC,UAAU,EAAE;GAAM,CAC3D,EACDT,KAAK,EACLoE,YAAY,CACb;EAED,IAAM9O,IAAI,GAAGuL,MAAM,CAACC,KAAK,CAACuD,UAAU,CAAC/C,IAAI,CAAC;EAC1C+C,UAAU,CAACK,MAAM,CACf;IACEC,WAAW,EAAEX,gBAAgB,CAACY,OAAO;IACrC9Z,MAAM,EAAE,IAAI+Z,WAAW,CAAC/Z,MAAM,CAAC,CAAC4X,QAAQ;GACzC,EACDpN,IAAI,CACL;EAED,OAAO,IAAIsL,8BAAsB,CAAC;IAAEN,IAAI,EAAJA,IAAI;IAAEJ,SAAS,EAATA,SAAS;IAAE5K,IAAI,EAAJA;GAAM,CAAC;AAC9D;AAEA,SAAgBmP,UAAU,CACxBnE,IAAmB,EACnBwE,gBAA2B,EAC3BV,YAAsB;EAEtB,IAAIA,YAAY,CAACtJ,MAAM,EAAE;IACvBwF,IAAI,CAACrH,IAAI,CAAC;MAAEsH,MAAM,EAAEuE,gBAAgB;MAAEtE,QAAQ,EAAE,KAAK;MAAEC,UAAU,EAAE;KAAO,CAAC;IAC3E,qDAAqB2D,YAAY,wCAAE;MAAA,IAAxBlU,MAAM;MACfoQ,IAAI,CAACrH,IAAI,CAAC;QAAEsH,MAAM,EAAErQ,MAAM,CAAC8J,SAAS;QAAEwG,QAAQ,EAAE,IAAI;QAAEC,UAAU,EAAE;OAAO,CAAC;;GAE7E,MAAM;IACLH,IAAI,CAACrH,IAAI,CAAC;MAAEsH,MAAM,EAAEuE,gBAAgB;MAAEtE,QAAQ,EAAE,IAAI;MAAEC,UAAU,EAAE;KAAO,CAAC;;EAE5E,OAAOH,IAAI;AACb;AAAC,IAEKuE,WAAY;EAAA;EAAA;IAAA;;EAAA;EAAA,OAIhBnC,QAAQ,GAAR;IACE,IAAMqC,CAAC,GAAG,cAAMC,OAAO,YAAGC,OAAO,EAAE;IACnC,IAAMC,CAAC,GAAGrE,MAAM,CAAChP,IAAI,CAACkT,CAAC,CAAC;IACxB,IAAIG,CAAC,CAACpK,MAAM,KAAK,CAAC,EAAE;MAClB,OAAOoK,CAAC;;IAGV,IAAIA,CAAC,CAACpK,MAAM,IAAI,CAAC,EAAE;MACjB,MAAM,IAAIqG,KAAK,CAAC,uBAAuB,CAAC;;IAG1C,IAAMgE,OAAO,GAAGtE,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;IAC/BoE,CAAC,CAACE,IAAI,CAACD,OAAO,CAAC;IACf,OAAOA,OAAO;GACf;EAAA;AAAA,EAlBuBE,EAAE;;SCzFJC,YAAY;EAClC,IAAM5O,QAAQ,GAAGC,sBAAW,EAAE;EAC9B,gBAAkCnG,cAAQ,CAAS,CAAC,CAAC;IAA9C+U,SAAS;IAAEC,YAAY;EAC9B,iBAAgChV,cAAQ,CAAgB,IAAI,CAAC;IAAtDlH,QAAQ;IAAEmc,WAAW;EAC5B,2BAAuDrT,mBAAmB,EAAE;IAApEjC,aAAa,wBAAbA,aAAa;IAAED,MAAM,wBAANA,MAAM;IAAW+J,UAAU,wBAAnBrR,OAAO;EACtC,IAAMoO,eAAe,GAAGzG,sBAAW,CAACjC,mBAAmB,CAAC;EACxD,IAAMnD,YAAY,GAAGoF,sBAAW,CAACrB,kBAAkB,CAAC;EACpD,IAAM6E,WAAW,GAAG9B,aAAO,CAAC;IAC1B,IAAI+E,eAAe,KAAKlQ,uBAAS,CAACS,MAAM,EAAE,OAAOyP,eAAe;IAChE,IAAIhQ,kBAAkB,CAACgQ,eAAe,CAAC,KAAKiD,UAAU,EAAE;MACtD,OAAOvS,kBAAkB,CAACuS,UAAoB,CAAC;;IAGjD,OAAOjD,eAAe;GACvB,EAAE,CAACA,eAAe,EAAEiD,UAAU,CAAC,CAAC;EACjC,IAAMnP,MAAM,GAAGyF,sBAAW,CAACxB,YAAY,CAAC;EACxC,IAAMzD,UAAU,GAAGiF,sBAAW,CAAClB,gBAAgB,CAAC;EAChD,IAAM7D,iBAAiB,GAAG+E,sBAAW,CAACb,uBAAuB,CAAC;EAC9D,qBAAuBgW,gCAAa,EAAE;IAA9B1E,UAAU,kBAAVA,UAAU;EAClB,uBAAuC2E,4BAAe,EAAE;IAAhD3L,SAAS,oBAATA,SAAS;IAAE6I,eAAe,oBAAfA,eAAe;EAClC,IAAMrH,YAAY,GAAGjL,sBAAW,CAACX,qBAAqB,CAAC;EACvD,IAAMgW,YAAY,GAAG3T,aAAO,CAAC;IAC3B,OAAOuJ,YAAY,CAACvS,OAAO,CAAC8K,WAAW,CAAC;GACzC,EAAE,CAACyH,YAAY,EAAEzH,WAAW,CAAC,CAAC;EAC/B,iBAA0CvD,cAAQ,EAAU;IAArDjG,aAAa;IAAE+B,gBAAgB;EACtC,IAAM2P,UAAU,GAAGhK,aAAO,CAAC;IACzB,OAAOsT,SAAS,IAAIza,MAAM,GAAGQ,UAAU;GACxC,EAAE,CAACia,SAAS,EAAEza,MAAM,EAAEQ,UAAU,CAAC,CAAC;EAEnC,IAAMua,iBAAiB,YAAjBA,iBAAiB;IAAA;gDACjB;QAEF,IAAI9R,WAAW,KAAKjN,uBAAS,CAACS,MAAM,EAAE;UACpC+E,gBAAgB,CAAC,8CAA8C,CAAC;UAChE;;QACD,uBAEyBmI,YAAY,CAACC,GAAG,CACrClJ,iBAAiB,wCACrB,iBAFK+S,MAAM;UAAA;UAGZ,IAAI,CAAAA,MAAM,aAANA,MAAM,4CAANA,MAAM,CAAEuH,SAAS,sDAAjB,kBAAmBhL,MAAM,IAAG,CAAC,EAAE;YACjC;;UAEFxO,gBAAgB,CACdyH,WAAW,KAAKjN,uBAAS,CAACS,MAAM,GAC5BgX,MAAM,CAACuH,SAAS,CAAC,CAAC,CAAC,CAACC,KAAK,GACzBxH,MAAM,CAACuH,SAAS,CAAC,CAAC,CAAC,CAACE,KAAK,CAC9B;;OACF,YAAQxU,CAAC,EAAE;QACV8E,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAE/E,CAAC,CAAC;OACnC;KACF;MAAA;;;EAED0E,eAAS,CAAC;IACR,IAAI,CAAC1K,iBAAiB,EAAE;IACxBqa,iBAAiB,EAAE;GACpB,EAAE,CAACra,iBAAiB,EAAEuI,WAAW,CAAC,CAAC;EAEpCmC,eAAS,CAAC;IACP;MAAA;;kCACK;UAAA;YAAA;YAgCF,IAAI,CAAC0P,YAAY,IAAI,CAACrb,aAAa,IAAI,CAAC2F,MAAM,IAAI,CAACC,aAAa,EAAE;YAElE,IAAM8V,aAAa,GAAG,IAAIC,kBAAQ,CAACN,YAAY,EAAEO,QAAQ,CAACC,GAAG,EAAElW,MAAM,CAAC;YAAA,uBAC/C+V,aAAa,CAAC3c,QAAQ,EAAE,iBAAzCA,QAAQ;cAAA,uBACc2c,aAAa,CAACV,SAAS,CACjDpV,aAAa,EACb5F,aAAa,CACd,iBAHK8b,aAAa;gBAKnBZ,WAAW,CAAC,CAACnc,QAAQ,CAAC;gBACtBkc,YAAY,CAAC,CAACc,iBAAW,CAACD,aAAa,EAAE/c,QAAQ,CAAC,CAAC;;;;UAAA;YAAA,IAxCjD,CAACX,UAAU,CAACoL,WAAW,CAAC,IACxBiG,SAAS,IACT4L,YAAY,IACZ5E,UAAU;cAEV,IAAMf,IAAI,GAAG,IAAIuC,iBAAS,CAACoD,YAAY,CAAC;cAAA,uBACThD,iCAAiC,CAC9D5B,UAAU,EACVhH,SAAsB,EACtBiG,IAAI,EACJjG,SAAsB,EACtB6I,eAAe,CAChB,iBANK0D,gBAAgB;gBAAA,uBAQIvF,UAAU,CAACwF,oBAAoB,CACvDD,gBAAgB,CAACtd,OAAO,CACzB,iBAFKwd,WAAW;kBAAA;kBAGjBnQ,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAAEkQ,WAAW,CAAC;kBAElDhB,WAAW,CAAC5c,SAAS,CAAC,MAAM,CAAC,CAACS,QAAQ,CAAC;kBACvC,IAAMod,iBAAiB,GAAGD,WAAW,aAAXA,WAAW,6CAAXA,WAAW,CAAEtU,KAAK,uDAAlB,mBACtBmD,IAAyB;kBAE7BkQ,YAAY,CACV,0BAAAkB,iBAAiB,CAACC,MAAM,oFAAxB,sBAA0BzF,IAAI,2DAA9B,uBAAgCO,QAAQ,MAAKlX,aAAa,6BACtDmc,iBAAiB,CAACC,MAAM,qFAAxB,uBAA0BzF,IAAI,qFAA9B,uBAAgCS,eAAe,2DAA/C,uBAAiDiF,QAAQ,GACzD,CAAC,CACN;kBAAA;;;;;UAAA;SAcJ,YAAQnR,KAAK,EAAE;UACdtK,YAAY,CAACsK,KAAK,CAAC;SACpB;OACF;QAAA;;QAAG;GACL,EAAE,CAACtF,aAAa,EAAEyV,YAAY,EAAErb,aAAa,EAAEwJ,WAAW,EAAEiG,SAAS,CAAC,CAAC;EAExE,IAAM6M,OAAO,GAAG/V,iBAAW;IAAA;;;QAwBzB,IAAI,CAAC+R,eAAe,EAAE;QAAM,gCAExB;UACFnM,QAAQ,CAAC3J,YAAY,CAAC,IAAI,CAAC,CAAC;UAE5B,IAAMkT,IAAI,GAAG,IAAIuC,iBAAS,CAACoD,YAAY,CAAC;UACxC,IAAMkB,WAAW,GAAG,IAAItE,iBAAS,CAACjY,aAAuB,CAAC;UAAA,uBAC3BqY,iCAAiC,CAC9D5B,UAAU,EACVhH,SAAsB,EACtBiG,IAAI,EACJjG,SAAsB,EACtB6I,eAAe,CAChB,iBANK0D,gBAAgB;YAQtB,IAAMtD,WAAW,GAAG,IAAIC,mBAAW,EAAE,CAAC1L,GAAG,CACvCyM,gCAAgC,CAC9BsC,gBAAgB,CAACtd,OAAO,EACxB6d,WAAW,EACX9M,SAAsB,EACtB,CAAClP,MAAM,GAAGQ,UAAU,IAAIyb,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEne,SAAS,CAAC,MAAM,CAAC,CAACS,QAAQ,CAAC,EAChE,EAAE,EACF8W,yBAAgB,CACjB,CACF;YAAA,uBAEuBY,UAAU,CAACiG,kBAAkB,EAAE,iBAAjD7D,SAAS;cACfH,WAAW,CAACI,QAAQ,GAAGrJ,SAAsB;cAAA,uBACToJ,SAAS,CAACE,SAAS;gBAAvDL,WAAW,CAACM,eAAe,uBAA4B;gBAAA,uBAClCV,eAAe,CAACI,WAAW,CAAC,iBAA3CO,MAAM;kBAAA,uBAENxC,UAAU,CAACyC,kBAAkB,CAACD,MAAM,CAACE,SAAS,EAAE,CAAC;oBACvD8B,YAAY,CAAC1a,MAAM,GAAGQ,UAAU,CAAC;oBACjCoL,QAAQ,CAAC3J,YAAY,CAAC,KAAK,CAAC,CAAC;;;;;;SAC9B,YAAQyE,CAAC,EAAE;UACVrG,YAAY,CAACqG,CAAC,CAAC;UACfkF,QAAQ,CAAC3J,YAAY,CAAC,KAAK,CAAC,CAAC;SAC9B;QAAA;;MAAA;MAAA;QAAA,IA5DGpE,UAAU,CAACoL,WAAW,CAAC;UAAA;YAAA;;UACzB,IAAI,CAACzK,QAAQ,IAAI,CAACsc,YAAY,IAAI,CAAC1V,MAAM,IAAI,CAAC3F,aAAa;YAAA;YAAA;;UAAQ,iCAE/D;YACF,IAAM0b,aAAa,GAAG,IAAIC,kBAAQ,CAACN,YAAY,EAAEO,QAAQ,CAACC,GAAG,EAAElW,MAAM,CAAC;YAEtEwG,QAAQ,CAAC3J,YAAY,CAAC,IAAI,CAAC,CAAC;YAAA,uBACNkZ,aAAa,CAACY,OAAO,CACzCtc,aAAa,EACb2c,gBAAU,CAAC,CAACpc,MAAM,GAAGQ,UAAU,EAAE6b,QAAQ,EAAE,EAAE7d,QAAQ,CAAC,CACvD,iBAHKud,OAAO;cAAA,uBAKPA,OAAO,CAACO,IAAI,EAAE;gBACpB1Q,QAAQ,CAAC3J,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7ByY,YAAY,CAAC1a,MAAM,GAAGQ,UAAU,CAAC;;;WAClC,YAAQmK,KAAK,EAAE;YACdtK,YAAY,CAACsK,KAAK,CAAC;YACnBiB,QAAQ,CAAC3J,YAAY,CAAC,KAAK,CAAC,CAAC;WAC9B;UAAA;;;MAAA;KA2CJ;MAAA;;KAAE,CACDzD,QAAQ,EACRsc,YAAY,EACZ1V,MAAM,EACNpF,MAAM,EACNP,aAAa,EACbsY,eAAe,EACfvX,UAAU,CACX,CAAC;EAEF,OAAO2G,aAAO,CACZ;IAAA,OAAO;MACLgK,UAAU,EAAVA,UAAU;MACV4K,OAAO,EAAPA;KACD;GAAC,EACF,CAAC5K,UAAU,EAAE4K,OAAO,CAAC,CACtB;AACH;;ACvNiD,IAsBlCQ,WAAW,YAAXA,WAAW,CACxBtT,WAAmB,EACnBC,WAAmB,EACnBsT,MAAW;EAAA;IAEX,IAAMC,OAAO,GAAG,KAAK;IAAA,uBAC8BC,QAAQ,CACzDzT,WAAW,EACXC,WAAW,CACZ;MAAA,IAHMyT,gBAAgB;QAAEC,gBAAgB;MAIzC,IAAIC,SAAS,EAAEC,SAAS;MAExB,IAAI7T,WAAW,KAAKjN,uBAAS,CAACS,MAAM,EAAE;QACpCogB,SAAS,GAAG,CAACL,MAAM,CAACvT,WAAW,CAAC,GAAG,CAAC0T,gBAAgB;OACrD,MACCE,SAAS,GAAGL,MAAM,CAACvT,WAAW,CAAC,GAC1B,CAACuT,MAAM,CAACvT,WAAW,CAAC,GAAGwT,OAAO,GAAG,CAACE,gBAAgB,GAAI,GAAG,GAC1D,CAAC;MAEP,IAAIzT,WAAW,KAAKlN,uBAAS,CAACS,MAAM,EAAE;QACpCqgB,SAAS,GAAG,CAACN,MAAM,CAACtT,WAAW,CAAC,GAAG,CAAC0T,gBAAgB;OACrD,MACCE,SAAS,GAAGN,MAAM,CAACtT,WAAW,CAAC,GAC1B,CAACsT,MAAM,CAACtT,WAAW,CAAC,GAAGuT,OAAO,GAAG,CAACG,gBAAgB,GAAI,GAAG,GAC1D,CAAC;MAEP,OAAO,CAACG,KAAK,CAACF,SAAS,CAAC,GAAG,CAAC,GAAGA,SAAS,EAAEE,KAAK,CAACD,SAAS,CAAC,GAAG,CAAC,GAAGA,SAAS,CAAC;;GAC5E;IAAA;;AAAA;AAAA,IA/CcJ,QAAQ,YAARA,QAAQ,CAACzT,WAAmB,EAAEC,WAAmB;EAAA;;gCAiBvD,CAAC,CAAC,EAAE,CAAC,CAAC;;IAAA;IAAA,gCAhBT;MAAA,uBACgBgB,KAAK,wDACgCvN,uBAAuB,CAACsM,WAAW,CAAC,SAAItM,uBAAuB,CAACuM,WAAW,CAAC,wBAClI,iBAFK8T,GAAG;QAAA,uBAIWA,GAAG,CAACC,IAAI,EAAE,iBAAxBC,KAAK;UAAA,YACJC,MAAM,CAAC3H,IAAI,CAAC0H,KAAK,CAAC,CAAClN,MAAM,GAC5B,CACEkN,KAAK,CAACvgB,uBAAuB,CAACsM,WAAW,CAAC,CAAC,CAACmU,GAAG,EAC/CF,KAAK,CAACvgB,uBAAuB,CAACuM,WAAW,CAAC,CAAC,CAACkU,GAAG,CAChD,GACD,CAAC,CAAC,EAAE,CAAC,CAAC;UAAA;UAAA;;;KACX,YAAQ1W,CAAC,EAAE;MACV8E,OAAO,CAACC,GAAG,CAAC/E,CAAC,CAAC;KACf;IAAA;GAGF;IAAA;;AAAA;AA+BD,SAAwB2W,aAAa;EACnC,wBAAmCvO,gBAAgB,EAAE;IAA7CD,aAAa,qBAAbA,aAAa;IAAEH,OAAO,qBAAPA,OAAO;EAC9B,gBAAoChJ,cAAQ,CAAS,CAAC,CAAC;IAAhDlF,UAAU;IAAE8B,aAAa;EAChC,IAAMjD,IAAI,GAAGoG,sBAAW,CAACjB,UAAU,CAAC;EACpC,IAAM8Y,OAAO,GAAG7X,sBAAW,CAACxB,YAAY,CAAC;EACzC,IAAM9D,YAAY,GAAGsF,sBAAW,CAAChB,gBAAgB,CAAC;EAClD,IAAMwE,WAAW,GAAGxD,sBAAW,CAACjC,mBAAmB,CAAC;EACpD,IAAMhE,aAAa,GAAGiG,sBAAW,CAAChC,mBAAmB,CAAC;EACtD,IAAM8Z,cAAc,GAAG9X,sBAAW,CAAC/B,mBAAmB,CAAC;EACvD,IAAM3B,iBAAiB,GAAG0D,sBAAW,CAACzB,uBAAuB,CAAC;EAC9D,IAAMtD,iBAAiB,GAAG+E,sBAAW,CAACb,uBAAuB,CAAC;EAC9D,IAAMsE,WAAW,GAAG/B,aAAO,CACzB;IAAA,OACE9H,IAAI,KAAKN,mBAAW,CAACoN,OAAO,GACxB,CAAApK,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEmH,WAAW,KAAI,EAAE,GACpC1J,aAAa;KACnB,CAACuC,iBAAiB,EAAE1C,IAAI,EAAEG,aAAa,CAAC,CACzC;EACD,IAAMC,aAAa,GAAG0H,aAAO,CAC3B;IAAA,OACE9H,IAAI,KAAKN,mBAAW,CAACoN,OAAO,GACxB,CAAApK,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEtC,aAAa,KAAI,EAAE,GACtC8d,cAAc;KACpB,CAACxb,iBAAiB,EAAE1C,IAAI,EAAEke,cAAc,CAAC,CAC1C;EACD,IAAMvd,MAAM,GAAGmH,aAAO,CACpB;IAAA,OAAO9H,IAAI,KAAKN,mBAAW,CAACoN,OAAO,GAAGpK,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAE/B,MAAM,GAAGsd,OAAO;GAAC,EAC1E,CAACvb,iBAAiB,EAAE1C,IAAI,EAAEie,OAAO,CAAC,CACnC;EAED,IAAME,aAAa,YAAbA,aAAa;IAAA;MACjB,IACE,CAACvU,WAAW,IACZ,CAACC,WAAW,IACZ,CAACwF,OAAO,IACR,CAACG,aAAa,IACd,CAACpP,aAAa,IACd,CAACiB,iBAAiB,IAClB,CAACV,MAAM,EAEP;MAEF,IAAIwc,MAAM,GAAQ,EAAE;MAAA,gCAEhB;QAAA,uBAC4B7S,YAAY,CAACC,GAAG,CACzClJ,iBAAiB,qCACrB,iBAFK+c,UAAU;UAIhBA,UAAU,CAACjB,MAAM,CAACkB,OAAO,CAAC,UAAClT,IAAS;YAClCgS,MAAM,CAAChS,IAAI,CAAC1M,OAAO,CAAC,GAAG0M,IAAI,CAACmT,GAAG;WAChC,CAAC;UAAA,uBAE4BhU,YAAY,CAACC,GAAG,CACzClJ,iBAAiB,kDAA6CuI,WAAW,SAAI4F,aAAa,SAAI3F,WAAW,SAAIzJ,aAAa,SAAIO,MAAM,CACxI,iBAFK4d,UAAU;YAAA,uBAIqBrB,WAAW,CAC9CtT,WAAW,EACXC,WAAW,EACXsT,MAAM,CACP;cAAA,IAJMqB,SAAS;gBAAEf,SAAS;cAK3B,IAAIa,GAAG,GACLhJ,UAAU,CAACiJ,UAAU,CAACE,gBAAgB,CAACC,YAAY,CAAC,GACpDpJ,UAAU,CAACiJ,UAAU,CAACE,gBAAgB,CAACE,YAAY,CAAC,GACpDrJ,UAAU,CAACiJ,UAAU,CAACE,gBAAgB,CAACG,WAAW,CAAC,GACnDtJ,UAAU,CAACiJ,UAAU,CAACE,gBAAgB,CAACI,WAAW,CAAC,GACnDvJ,UAAU,CAACiJ,UAAU,CAACE,gBAAgB,CAACK,UAAU,CAAC,GAClDN,SAAS,GACTf,SAAS;cAEXa,GAAG,GAAGA,GAAG,GAAG,CAAC,GAAG,CAAC,GAAGA,GAAG;cACvBrb,aAAa,CAACqS,UAAU,CAACgJ,GAAG,CAAC/I,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;;;OAC1C,YAAQlO,CAAC,EAAE;QACV8E,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAE/E,CAAC,CAAC;OACnC;MAAA;KACF;MAAA;;;EAED0E,eAAS,CAAC;IACR,IAAIjL,YAAY,EAAE;IAClBqd,aAAa,EAAE;IACf,IAAMtQ,OAAO,GAAGC,WAAW,CAAC;MAC1BqQ,aAAa,EAAE;KAChB,EAAE,EAAE,GAAG,IAAI,CAAC;IAEb,OAAO;MACLpQ,aAAa,CAACF,OAAO,CAAC;KACvB;GAGF,EAAE,CACDjE,WAAW,EACXC,WAAW,EACXwF,OAAO,EACPG,aAAa,EACb1O,YAAY,EACZV,aAAa,EACbiB,iBAAiB,EACjBV,MAAM,CACP,CAAC;EAEF,OAAOmH,aAAO,CACZ;IAAA,OAAO;MACL3G,UAAU,EAAVA;KACD;GAAC,EACF,CAACA,UAAU,CAAC,CACb;AACH;;ACxKA,IAAM4d,kBAAkB,GAAG,SAArBA,kBAAkB;EACtB,IAAMjf,KAAK,GAAGsG,sBAAW,CAAClC,WAAW,CAAC;EAEtC,OACElK;IAAKgP,SAAS;KACZhP,4EAAwC,EAExCA;IAAKgP,SAAS,qBAAmBlJ;KAC/B9F,6DAA4B,EAC5BA,6BAACkY,YAAY,OAAG,CACZ,CACF;AAEV,CAAC;;SCRuB8M,kBAAkB;EACxC,gBAA8B3Y,cAAQ,CAAC3H,SAAS,CAAC,MAAM,CAAC,CAAC;IAAlDmN,OAAO;IAAEC,UAAU;EAC1B,IAAMzK,iBAAiB,GAAG+E,sBAAW,CAACb,uBAAuB,CAAC;EAC9D,IAAMrF,aAAa,GAAGkG,sBAAW,CAACjC,mBAAmB,CAAC;EACtD,IAAMhE,aAAa,GAAGiG,sBAAW,CAAChC,mBAAmB,CAAC;EAEtD2H,eAAS,CAAC;IACR,IAAI,CAAC1K,iBAAiB,IAAI,CAACnB,aAAa,IAAI,CAACC,aAAa,EAAE;IAC3D;MAAA;wCACK;UAAA,uBACuBmK,YAAY,CAACC,GAAG,CACpClJ,iBAAiB,8CAAyCnB,aAAa,SAAIC,aAAa,CAC5F,iBAFK8e,KAAK;YAAA;YAIXnT,UAAU,CACRpN,SAAS,CAAC,qBAAAugB,KAAK,CAACC,UAAU,8CAAhB,kBAAkBvO,MAAM,GAAGsO,KAAK,CAACC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CACnE;;SACF,YAAQ7X,CAAC,EAAE;UACV8E,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAE/E,CAAC,CAAC;SACnC;QAAA;OACF;QAAA;;QAAG;GACL,EAAE,CAAChG,iBAAiB,EAAEnB,aAAa,EAAEC,aAAa,CAAC,CAAC;EAErD,OAAO2H,aAAO,CACZ;IAAA,OAAO;MACL+D,OAAO,EAAPA;KACD;GAAC,EACF,CAACA,OAAO,CAAC,CACV;AACH;;ACoBO,IAAMsT,cAAc,GAAG,SAAjBA,cAAc;;wBACzBrf,KAAK;IAALA,KAAK,2BAAGF,oBAAY,CAACG,KAAK;IAAA,qBAC1B0T,QAAQ;IAARA,QAAQ,8BAAGhU,uBAAe,CAACiU,MAAM;IACjC0L,WAAW,QAAXA,WAAW;EAEX,IAAM7S,QAAQ,GAAGC,sBAAW,EAAE;EAG9B,gBAA8BnG,cAAQ,CAAC,KAAK,CAAC;IAAtCgZ,QAAQ;IAAEC,SAAS;EAC1B,iBAAgCjZ,cAAQ,CAAC,CAAC,CAAC;IAApCkZ,QAAQ;IAAEC,WAAW;EAC5B,iBAAoCnZ,cAAQ,CAAC,CAAC,CAAC;IAAxCoZ,UAAU;IAAEC,aAAa;EAGhC,wBAAmCjQ,gBAAgB,EAAE;IAA7CD,aAAa,qBAAbA,aAAa;IAAEH,OAAO,qBAAPA,OAAO;EAC9B,oBAAgC8L,YAAY,EAAE;IAAtCrJ,UAAU,iBAAVA,UAAU;IAAE4K,OAAO,iBAAPA,OAAO;EAC3B,qBAA4BsB,aAAa,EAAE;IAAvBM,GAAG,kBAAfnd,UAAU;EAGlB,IAAMnB,IAAI,GAAGoG,sBAAW,CAACjB,UAAU,CAAC;EACpC,IAAMxE,MAAM,GAAGyF,sBAAW,CAACxB,YAAY,CAAC;EACxC,IAAMgF,WAAW,GAAGxD,sBAAW,CAACjC,mBAAmB,CAAC;EACpD,IAAM/D,aAAa,GAAGgG,sBAAW,CAAC/B,mBAAmB,CAAC;EACtD,IAAMlE,aAAa,GAAGiG,sBAAW,CAAChC,mBAAmB,CAAC;EACtD,IAAMxD,WAAW,GAAGwF,sBAAW,CAACvB,eAAe,CAAC;EAChD,IAAM7D,YAAY,GAAGoF,sBAAW,CAACrB,kBAAkB,CAAC;EACpD,IAAM9D,YAAY,GAAGmF,sBAAW,CAACpB,kBAAkB,CAAC;EACpD,IAAMnE,YAAY,GAAGuF,sBAAW,CAACtB,gBAAgB,CAAC;EAClD,0BAAkCka,kBAAkB,EAAE;IAArC3N,YAAY,uBAArBxF,OAAO;EACf,IAAMzK,UAAU,GAAGgF,sBAAW,CAACd,gBAAgB,CAAC;EAChD,IAAMjE,iBAAiB,GAAG+E,sBAAW,CAACb,uBAAuB,CAAC;EAE9DwG,eAAS,CAAC;IACR,IAAI,CAAC1K,iBAAiB,EAAE;IACvB;6BACwBiJ,YAAY,CAACC,GAAG,CAClClJ,iBAAiB,0CACrB,iBAFKsc,GAAG;QAITxR,OAAO,CAACwT,KAAK,CACXhC,GAAG,CAACiC,WAAW,CAAC3W,GAAG,CAAC,UAAC7K,IAAS;UAAA,OAAM;YAClCyhB,KAAK,EAAE1iB,qBAAqB,CAACiB,IAAI,CAAC0hB,SAAS,CAAC;YAC5CC,OAAO,EAAE,CAAC3hB,IAAI,CAAC2hB;WAChB;SAAC,CAAC,CACJ;;KACF;MAAA;;GACF,EAAE,CAAC1e,iBAAiB,CAAC,CAAC;EAEvB0K,eAAS,CAAC;IACRQ,QAAQ,CAAC/I,kBAAkB,CAAC6N,YAAY,CAAC,CAAC;GAC3C,EAAE,CAACA,YAAY,CAAC,CAAC;EAElBtF,eAAS,CAAC;IACR,IAAI,CAACsD,OAAO,EAAE;MACZ,IAAIkQ,QAAQ,GAAG,CAAC,EAAEC,WAAW,CAAC,CAAC,CAAC;MAChC,IAAIC,UAAU,GAAG,CAAC,EAAEC,aAAa,CAAC,CAAC,CAAC;;GAEvC,EAAE,CAACrQ,OAAO,EAAEoQ,UAAU,EAAEF,QAAQ,CAAC,CAAC;EAEnCxT,eAAS,CAAC;IACRQ,QAAQ,CAACtJ,aAAa,CAACqb,GAAG,CAAC,CAAC;GAC7B,EAAE,CAACA,GAAG,CAAC,CAAC;EAET,IAAM0B,gBAAgB,YAAhBA,gBAAgB;IAAA;6BACG1V,YAAY,CAACC,GAAG,CAClClJ,iBAAiB,0CACrB,iBAFKsc,GAAG;QAIT,IAAMiC,WAAW,GAAGjC,GAAG,CAACiC,WAAW;QACnC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,WAAW,CAACjP,MAAM,EAAEsP,CAAC,EAAE,EAAE;UAC3C,IAAIL,WAAW,CAACK,CAAC,CAAC,CAACH,SAAS,KAAK3f,aAAa,EAAE;YAC9C,IAAI,CAACyf,WAAW,CAACK,CAAC,CAAC,CAACF,OAAO,IAAIpf,MAAM,GAAG2d,GAAG,EAAE;cAC3C,OAAO,IAAI;;YAGb,IAAM1f,MAAM,GACVuB,aAAa,KAAKxD,uBAAS,CAACM,IAAI,IAAIkD,aAAa,KAAKxD,uBAAS,CAACO,IAAI,GAChE,IAAI,GACJ,MAAM;YACZiP,OAAO,CAACC,GAAG,wBACYzL,MAAM,SAAI/B,MAAM,cACnCzB,qBAAqB,CAACgD,aAAa,CACrC,uBAAkB,CAACyf,WAAW,CAACK,CAAC,CAAC,CAACF,OAAO,SAAInhB,MAAM,CACpD;YACD,OAAO,KAAK;;;QAGhBuN,OAAO,CAACC,GAAG,CAAIjP,qBAAqB,CAACgD,aAAa,CAAC,iBAAc;QACjE,OAAO,KAAK;;KACb;MAAA;;;EAED,IAAM+f,YAAY,YAAZA,YAAY;IAAA;;MAChB,IAAI,CAACpO,UAAU,EAAE;QACf4K,OAAO,EAAE;QACT;;MACD,0CAEG;QAAA;QACFnQ,QAAQ,CAAC1J,aAAa,CAAC,IAAI,CAAC,CAAC;QAAA,uBAEjBmd,gBAAgB,EAAE;UAA9B,IAAI,kBAA2B,EAAE;YAC/BzT,QAAQ,CAAC1J,aAAa,CAAC,KAAK,CAAC,CAAC;YAAA;YAAA;;UAGhC,IAAMsd,MAAM,GAAG/U,IAAI,CAACgV,SAAS,CAAC;YAC5BC,aAAa,EAAE7Q,aAAa;YAC5B8E,WAAW,EAAE1K,WAAW;YACxBxJ,aAAa,EAAEA,aAAa;YAC5ByJ,WAAW,EAAE1J,aAAa;YAC1BvB,MAAM,EAAEyS,YAAY,CAAC5T,KAAK;YAC1BkD,MAAM,EAAEA,MAAM;YACd2d,GAAG,EAAEA;WACN,CAAC;UAEFnS,OAAO,CAACC,GAAG,CAAC+T,MAAM,CAAC;UAAA,uBACb7V,YAAY,CAACE,IAAI,CAAIpJ,UAAU,YAAS+e,MAAM,CAAC;YAAA,uBAC3B7V,YAAY,CAACE,IAAI,CACtCpJ,UAAU,cACb+e,MAAM,CACP,iBAHK/L,MAAM;cAKZjI,OAAO,CAACC,GAAG,CAACgI,MAAM,CAAC;cAEnB,IAAI,CAAAA,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkM,IAAI,MAAK,CAAC,EAAE;gBACtBtf,YAAY,CAACoT,MAAM,CAAC;gBACpB7H,QAAQ,CAAC1J,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC9B;;cAGF,IAAIvB,IAAI,GAAG,CAAC,CAAC;cAEb,qDAAoB8S,MAAM,CAACmM,MAAM,wCAAE;gBAAA,IAAxBC,KAAK;gBACd,IAAIA,KAAK,CAACnY,IAAI,KAAK,uBAAuB,EAAE;kBAC1C,sDAAmBmY,KAAK,CAACC,UAAU,2CAAE;oBAAA,IAA1BC,IAAI;oBACb,IAAIA,IAAI,CAACxX,GAAG,KAAK,MAAM,EAAE;sBACvB5H,IAAI,GAAGof,IAAI,CAAC1Y,KAAK;;;;;cAMzBmE,OAAO,CAACC,GAAG,CAAC9K,IAAI,CAAC;cACjBiL,QAAQ,CAAChJ,OAAO,CAACjC,IAAI,CAAC,CAAC;cACvBiL,QAAQ,CAAC/J,YAAY,CAAC,IAAI,CAAC,CAAC;cAC5B+J,QAAQ,CAAC1J,aAAa,CAAC,KAAK,CAAC,CAAC;;;;OAC/B,YAAQwE,CAAC,EAAE;QACVrG,YAAY,CAACqG,CAAC,CAAC;QACfkF,QAAQ,CAAC1J,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9BsJ,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAE/E,CAAC,CAAC;OACnC;KACF;MAAA;;;EAED,IAAMsZ,MAAM,GAAG,SAATA,MAAM;IACV,IAAItB,QAAQ,IAAII,UAAU,GAAG,CAAC,EAAE;MAC9B,IAAIA,UAAU,KAAK,CAAC,IAAI,CAACpQ,OAAO,EAAE;MAClC,IAAIoQ,UAAU,KAAK,CAAC,EAAE;QACpB,IAAIrf,aAAa,EAAE;UACjBsf,aAAa,CAAC,CAAC,CAAC;;QAElB;;MAEF,IAAID,UAAU,KAAK,CAAC,EAAE;QACpB,IAAInB,GAAG,IAAI,CAAC,IAAI3d,MAAM,GAAG,CAAC,EAAE;UAC1B+e,aAAa,CAAC,CAAC,CAAC;;QAElB;;MAGF,IAAI1f,IAAI,KAAKN,mBAAW,CAACoN,OAAO,IAAI2S,UAAU,KAAK,CAAC,IAAInB,GAAG,IAAI,CAAC,EAAE;QAChE/R,QAAQ,CAACpJ,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7Buc,aAAa,CAAC,CAAC,CAAC;OACjB,MAAMA,aAAa,CAAC,UAAC9W,IAAI;QAAA,OAAKA,IAAI,GAAG,CAAC;QAAC;;IAG1C,IAAI,CAACyW,QAAQ,IAAI,CAACE,QAAQ,EAAE;MAC1B,IAAIlQ,OAAO,EAAE;QACX,IACGiP,GAAG,IAAI,CAAC,IAAIte,IAAI,KAAKN,mBAAW,CAACoN,OAAO,IACxCwR,GAAG,IAAI,CAAC,IAAIle,aAAa,IAAIO,MAAM,GAAG,CAAE,EACzC;UACA4L,QAAQ,CAACpJ,aAAa,CAAC,IAAI,CAAC,CAAC;UAC7Bqc,WAAW,CAAC,CAAC,CAAC;;QAEhB;;;IAIJ,IAAKH,QAAQ,IAAII,UAAU,KAAK,CAAC,IAAM,CAACJ,QAAQ,IAAIE,QAAQ,GAAG,CAAE,EAAE;MACjEW,YAAY,EAAE;;GAEjB;EAED,IAAMU,MAAM,GAAG,SAATA,MAAM;IACV,IAAIhgB,WAAW,IAAIC,YAAY,EAAE;IACjC,IAAIwe,QAAQ,IAAII,UAAU,GAAG,CAAC,EAAE;MAC9B,IAAIzf,IAAI,KAAKN,mBAAW,CAACoN,OAAO,IAAI2S,UAAU,KAAK,CAAC,EAAEC,aAAa,CAAC,CAAC,CAAC,CAAA,KACjEA,aAAa,CAAC,UAAC9W,IAAI;QAAA,OAAKA,IAAI,GAAG,CAAC;QAAC;MACtC2D,QAAQ,CAACpJ,aAAa,CAAC,KAAK,CAAC,CAAC;;IAGhC,IAAI,CAACkc,QAAQ,IAAIE,QAAQ,GAAG,CAAC,EAAE;MAC7BC,WAAW,CAAC,CAAC,CAAC;MACdjT,QAAQ,CAACpJ,aAAa,CAAC,KAAK,CAAC,CAAC;;IAGhC,IAAKkc,QAAQ,IAAII,UAAU,KAAK,CAAC,IAAM,CAACJ,QAAQ,IAAIE,QAAQ,KAAK,CAAE,EAAE;MACnEte,YAAY,EAAE;;GAEjB;EAED8K,eAAS,CAAC;IACRQ,QAAQ,CAACzK,QAAQ,CAAChC,KAAK,CAAC,CAAC;GAC1B,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OACE9F;IAAKgP,SAAS,iBAAelJ,KAAK,cAAS2T;KACzCzZ;IAAKgP,SAAS,EAAC;KACbhP;IAAKgP,SAAS,EAAC;KACbhP;IAAKgP,SAAS,EAAC;KACbhP,yCACIqlB,QAAQ,IAAII,UAAU,KAAK,CAAC,IAAM,CAACJ,QAAQ,IAAIE,QAAQ,GAAG,CAAE,4BAC1DH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEyB,YAAY,oCAAI,kBAAkB,4BAC/CzB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE0B,YAAY,oCAAI,cAAc,CAC5C,CACD,EACN9mB;IAAKgP,SAAS,EAAC;KACbhP,6BAACuP,YAAY;IAACC,EAAE,EAAC;KACfxP;IAAKgP,SAAS,EAAC;mBAA+B,CACjC,EACfhP;IACEgP,SAAS,EAAC,aAAa;IACvBG,OAAO,EAAE;MACPoD,QAAQ,CAAC3K,UAAU,EAAE,CAAC;MACtBX,YAAY,EAAE;;KAGhBjH,6BAACiZ,KAAS;IAACnZ,IAAI,EAAEgG,KAAK,KAAK,OAAO,GAAG,OAAO,GAAG;IAAW,CACnD,CACL,CACF,CACF,EAEN9F;IAAKgP,SAAS,EAAC;KACZqW,QAAQ,GACPI,UAAU,KAAK,CAAC,GACdzlB,6BAAC+mB,OAAa,OAAG,GACftB,UAAU,KAAK,CAAC,GAClBzlB;IAAKgP,SAAS,EAAC;KACbhP,8DAA0B,EAC1BA,6BAAC6W,YAAY;IAACC,UAAU,EAAE;IAAQ,CAC9B,GACJ2O,UAAU,KAAK,CAAC,GAClBzlB,6BAAC+mB,OAAa;IAACzU,aAAa,EAAE;IAAS,GACrCmT,UAAU,KAAK,CAAC,GAClBzlB,6BAAC+kB,kBAAkB,OAAG,GACpBU,UAAU,KAAK,CAAC,GAClBzlB,6BAACwb,UAAU,OAAG,GAEdxb,6BAAC6X,cAAc;IAACC,UAAU,EAAEA;IAC7B,GACCyN,QAAQ,KAAK,CAAC,GAChBvlB,6BAACob,UAAU,OAAG,GAEdpb,6BAAC6X,cAAc;IAACC,UAAU,EAAEA;IAC7B,CACG,EAEN9X;IAAKgP,SAAS,EAAC;KACbhP,6BAACK,UAAU;IAACP,IAAI,EAAEgG,KAAK,KAAK,OAAO,GAAG,OAAO,GAAG;IAAa,EAC7D9F,6BAACqQ,eAAe;IACdF,YAAY,EAAE;MACZmV,SAAS,CAAC,UAAChO,IAAI;QAAA,OAAK,CAACA,IAAI;QAAC;KAC3B;IACDxR,KAAK,EAAEA,KAAK;IACZxE,KAAK,EAAE;MAAEA,KAAK,EAAE;QAAE1B,KAAK,EAAE,MAAM;QAAEonB,UAAU,EAAE;;;mBAElC3B,QAAQ,GAAG,MAAM,GAAG,QAAQ,CACvB,EAClBrlB,6BAACqQ,eAAe;IAACF,YAAY,EAAEyW,MAAM;IAAE9gB,KAAK,EAAEA;KAC1Cuf,QAAQ,IAAII,UAAU,GAAG,CAAC,IAAM,CAACJ,QAAQ,IAAIE,QAAQ,GAAG,CAAE,GACxD,MAAM,GACN,QAAQ,CACI,EAClBvlB,6BAACkQ,aAAa;IACZC,YAAY,EAAEwW,MAAM;IACpBvW,SAAS,EAAExJ,WAAW,IAAIC;KAExBwe,QAAQ,IAAII,UAAU,KAAK,CAAC,IAAM,CAACJ,QAAQ,IAAIE,QAAQ,KAAK,CAAE,GAC5DzN,UAAU,GACRjR,YAAY,GACV,eAAe,GACf,QAAQ,GACVD,WAAW,GACX,cAAc,GACd,SAAS,GACX,MAAM,CACI,CACZ,EACN5G,6BAACmZ,kBAAkB,OAAG,EACtBnZ,6BAACgZ,SAAS,OAAG,CACT;AAEV,CAAC;;ICzTYiO,qBAAqB,GAAG,SAAxBA,qBAAqB;MAChCjhB,IAAI,QAAJA,IAAI;IACJsB,IAAI,QAAJA,IAAI;IAAA,kBACJxB,KAAK;IAALA,KAAK,2BAAGF,oBAAY,CAACG,KAAK;IAAA,qBAC1B0T,QAAQ;IAARA,QAAQ,8BAAGhU,uBAAe,CAACiU,MAAM;IACjC0L,WAAW,QAAXA,WAAW;IACX1c,iBAAiB,QAAjBA,iBAAiB;IACjBwe,cAAc,QAAdA,cAAc;IACdC,qBAAqB,QAArBA,qBAAqB;IAAA,yBACrBngB,YAAY;IAAZA,YAAY,kCAAG;MAAA,OAAM,KAAK,CAAC;;IAAA,yBAC3BC,YAAY;IAAZA,YAAY,kCAAG;MAAA,OAAM,KAAK,CAAC;;IAAA,2BAC3BC,cAAc;IAAdA,cAAc,oCAAG;MAAA,OAAM,KAAK,CAAC;;EAE7B,IAAMR,SAAS,GAAG0F,sBAAW,CAAC1B,eAAe,CAAC;EAC9C,IAAM6H,QAAQ,GAAGC,sBAAW,EAAE;EAE9BT,eAAS,CAAC;IACRQ,QAAQ,CAACzK,QAAQ,CAAChC,KAAK,CAAC,CAAC;IACzB,IAAI4C,iBAAiB,EAAE6J,QAAQ,CAAC9J,oBAAoB,CAACC,iBAAiB,CAAC,CAAC;IACxE6J,QAAQ,CAACzJ,eAAe,CAAC9B,YAAY,CAAC,CAAC;IACvCuL,QAAQ,CAACxJ,eAAe,CAAC9B,YAAY,CAAC,CAAC;IACvCsL,QAAQ,CAACvJ,iBAAiB,CAAC9B,cAAc,CAAC,CAAC;IAC3CqL,QAAQ,CAAClJ,aAAa,CAAC6d,cAAc,CAAC,CAAC;IACvC3U,QAAQ,CAACjJ,oBAAoB,CAAC6d,qBAAqB,CAAC,CAAC;IACrD5U,QAAQ,CAACrJ,OAAO,CAAClD,IAAI,CAAC,CAAC;IACvB,IAAIA,IAAI,KAAKN,mBAAW,CAACoN,OAAO,EAAE;MAChCP,QAAQ,CACNrK,gBAAgB,CAAC,CAAAQ,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEmH,WAAW,KAAIlN,uBAAS,CAACG,QAAQ,CAAC,CACvE;MACA;QAAA;0CACK;YAAA,uBAC0BwN,YAAY,CAACC,GAAG,CACvC4W,qBAAqB,sDACtB,CAAAze,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEmH,WAAW,KAAIlN,uBAAS,CAACG,QAC9C,EACD,iBAJKkP,QAAQ;cAKdO,QAAQ,CAACtK,gBAAgB,CAAC+J,QAAQ,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;;WAC/C,YAAQ7E,CAAC,EAAE;YACV8E,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAE/E,CAAC,CAAC;WACnC;UAAA;SACF;UAAA;;UAAG;MACJkF,QAAQ,CAACpK,gBAAgB,CAAC,CAAAO,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEtC,aAAa,KAAI,EAAE,CAAC,CAAC;MAClEmM,QAAQ,CAAC5J,SAAS,CAAC,CAAAD,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAE/B,MAAM,KAAI,CAAC,CAAC,CAAC;KACpD,MAAM,IAAIX,IAAI,KAAKN,mBAAW,CAACiM,MAAM,EAAE;MACtCY,QAAQ,CAAChJ,OAAO,CAACjC,IAAI,IAAI,CAAC,CAAC,CAAC;MAC5BiL,QAAQ,CAAC/J,YAAY,CAAC,IAAI,CAAC,CAAC;;GAE/B,EAAE,CAAC1C,KAAK,EAAE4C,iBAAiB,EAAE1B,YAAY,EAAEC,YAAY,EAAEjB,IAAI,CAAC,CAAC;EAEhE,OAAOU,SAAS,GACd1G,6BAACwZ,iBAAiB;IAAC1T,KAAK,EAAEA,KAAK;IAAE2T,QAAQ,EAAEA;IAAY,GAEvDzZ,6BAACmlB,cAAc;IACbrf,KAAK,EAAEA,KAAK;IACZ2T,QAAQ,EAAEA,QAAQ;IAClB2L,WAAW,EAAEA;IAEhB;AACH,CAAC;;IC5EYgC,YAAY,GAAG,SAAfA,YAAY;MAAMjb,QAAQ,QAARA,QAAQ;EACrC,IAAMmI,OAAO,GAAG,CACd,IAAI+S,yCAAoB,EAAE,EAC1B,IAAIC,0CAAqB,EAAE,EAC3B,IAAIC,wCAAmB,EAAE,EACzB,IAAIC,iDAA4B,EAAE,EAClC,IAAIC,wCAAmB,EAAE,EACzB,IAAIC,wCAAmB,EAAE,EACzB,IAAIC,uCAAkB,EAAE,EACxB,IAAIC,wCAAmB,EAAE,EACzB,IAAIC,uCAAkB,EAAE,CACzB;EAED,OACE7nB,6BAAC+N,mBAAQ;IAACpE,KAAK,EAAEA;KACf3J,6BAACkM,gBAAgB,QACflM,6BAAC8nB,qCAAkB;IAACC,QAAQ,EAAEzjB;KAC5BtE,6BAACgoB,iCAAc;IAAC1T,OAAO,EAAEA,OAAO;IAAE2T,WAAW;KAC1C9b,QAAQ,CACM,CACE,CACJ,CACV;AAEf,CAAC;;;;;"}
|