Token Dai Stablecoin
Overview CRC20
Price
$1.00 @ 6.507989 CRO (+0.29%)
Fully Diluted Market Cap
Total Supply:
2,507,929.608898 DAI
Holders:
5,241 addresses
Contract:
Decimals:
18
Official Site:
Balance
18.414513834059173147 DAIValue
$18.40 ( ~119.8639 CRO) [0.0007%]
[ Download CSV Export ]
[ Download CSV Export ]
OVERVIEW
Multi-Collateral Dai, brings a lot of new and exciting features, such as support for new CDP collateral types and Dai Savings Rate.Market
Volume (24H) | : | $682,361,925.00 |
Market Capitalization | : | $4,833,590,392.00 |
Circulating Supply | : | 4,838,308,502.00 DAI |
Market Data Source: Coinmarketcap |
Update? Click here to update the token ICO / general information
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XDAC17F958D2EE523A2206206994597C13D831EC7 | $1.00 0.0000142 Btc | $18,264,558.00 18,259,986.209 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 20.6768% |
2 | Uniswap V2 (Ethereum) | 0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $1.007 0.0000143 Btc | $15,956,222.00 4,388.875 0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2 | 0.0050% |
3 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $0.9995 0.0000142 Btc | $9,937,134.00 9,959,772.145 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 11.2780% |
4 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 | $0.9998 0.0000142 Btc | $8,893,011.00 8,895,174.135 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 10.0725% |
5 | Binance | USDT-DAI | $0.9998 0.0000142 Btc | $6,651,945.00 6,655,465.800 USDT | 7.5363% |
6 | HTX | DAI-USDT | $0.9993 0.0000142 Btc | $5,606,756.00 5,619,359.588 DAI | 6.3631% |
7 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $0.998 0.0000142 Btc | $3,975,482.00 3,984,211.186 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 4.5115% |
8 | DODO (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XDAC17F958D2EE523A2206206994597C13D831EC7 | $0.9992 0.0000142 Btc | $3,667,124.00 3,669,549.613 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 4.1552% |
9 | Cryptology | BTC-DAI | $0.9998 0.0000142 Btc | $2,992,826.00 42.499 BTC | 0.0000% |
10 | Bitrue | DAI-USDT | $1.00 0.0000142 Btc | $2,771,480.00 2,770,913.600 DAI | 3.1377% |
11 | BitMart | DAI-USDT | $0.9997 0.0000142 Btc | $2,699,345.00 2,700,064.660 DAI | 3.0574% |
12 | WhiteBIT | DAI-USDT | $0.9997 0.0000142 Btc | $1,999,979.00 2,000,680.240 DAI | 2.2655% |
13 | DigiFinex | DAI-USDT | $1.00 0.0000142 Btc | $1,455,822.00 1,455,662.210 DAI | 1.6483% |
14 | Coinbase Exchange | DAI-USD | $0.9998 0.0000142 Btc | $1,421,069.00 1,421,353.595 DAI | 1.6095% |
15 | LBank | DAI-USDT | $1.001 0.0000142 Btc | $1,335,422.00 1,334,018.330 DAI | 1.5106% |
16 | BitMart | BTC-DAI | $0.9998 0.0000142 Btc | $1,185,129.00 16.810 BTC | 0.0000% |
17 | XT.COM | BTC-DAI | $0.9999 0.0000142 Btc | $1,125,776.00 15.906 BTC | 0.0000% |
18 | Binance | BTC-DAI | $0.9998 0.0000142 Btc | $1,091,585.00 15.417 BTC | 0.0000% |
19 | Pancakeswap V3 (BSC) | 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3-0X55D398326F99059FF775485246999027B3197955 | $1.003 0.0000142 Btc | $1,042,972.00 1,038,718.893 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3 | 1.1762% |
20 | OKX | DAI-USDT | $1.001 0.0000142 Btc | $1,011,264.00 1,010,894.694 DAI | 1.1447% |
21 | Balancer V2 (Arbitrum) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9 | $0.999 0.0000142 Btc | $984,189.00 985,211.762 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 1.1156% |
22 | Uniswap V3 (Polygon) | 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $1.00 0.0000142 Btc | $872,349.00 872,309.827 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174 | 0.9878% |
23 | Uniswap V3 (Optimism) | 0X94B008AA00579C1307B0EF2C499AD98A8CE58E58-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | $1.003 0.0000142 Btc | $857,386.00 855,373.246 0X94B008AA00579C1307B0EF2C499AD98A8CE58E58 | 0.9686% |
24 | Uniswap V3 (Polygon) | 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F | $1.00 0.0000142 Btc | $823,370.00 823,053.148 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | 0.9320% |
25 | Camelot V3 | 0XAF88D065E77C8CC2239327C5EDB3A432268E5831-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | $0.9999 0.0000142 Btc | $771,118.00 771,083.440 0XAF88D065E77C8CC2239327C5EDB3A432268E5831 | 0.8731% |
26 | Bitget | DAI-USDT | $0.9999 0.0000142 Btc | $755,241.00 755,359.000 DAI | 0.8553% |
27 | Kraken | DAI-USD | $0.9998 0.0000142 Btc | $747,166.00 747,300.869 DAI | 0.8462% |
28 | Uniswap V3 (Polygon) | 0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $1.00 0.0000142 Btc | $662,654.00 662,665.198 0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359 | 0.7504% |
29 | XT.COM | DAI-USDT | $1.00 0.0000142 Btc | $642,016.00 641,633.730 DAI | 0.7266% |
30 | Quickswap (v3) | 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $1.00 0.0000142 Btc | $617,320.00 617,237.840 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174 | 0.6989% |
31 | Uniswap V3 (Arbitrum One) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9 | $1.001 0.0000142 Btc | $611,481.00 610,940.567 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 0.6918% |
32 | Kraken | DAI-USDT | $0.9994 0.0000142 Btc | $599,648.00 599,987.393 DAI | 0.6794% |
33 | Uniswap V3 (Optimism) | 0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | $1.003 0.0000142 Btc | $593,935.00 592,353.201 0X7F5C764CBC14F9669B88837CA1490CCA17C31607 | 0.6708% |
34 | BitMart | DAI-USDC | $1.00 0.0000142 Btc | $593,718.00 593,585.400 DAI | 0.6721% |
35 | Kraken | DAI-EUR | $1.00 0.0000142 Btc | $541,543.00 541,561.488 DAI | 0.6132% |
36 | Quickswap | 0XEB51D9A39AD5EEF215DC0BF39A8821FF804A0F01-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $0.9941 0.0000141 Btc | $487,939.00 8,954.817 0XEB51D9A39AD5EEF215DC0BF39A8821FF804A0F01 | 0.0101% |
37 | Tapbit | DAI-USDT | $1.001 0.0000142 Btc | $480,463.00 480,349.400 DAI | 0.5439% |
38 | Bybit | DAI-USDT | $0.9998 0.0000142 Btc | $442,142.00 442,240.180 DAI | 0.5008% |
39 | Uniswap V2 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $1.005 0.0000143 Btc | $439,272.00 440,548.650 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 0.4989% |
40 | KuCoin | BTC-DAI | $0.9998 0.0000142 Btc | $426,212.00 6.050 BTC | 0.0000% |
41 | Uniswap V3 (Optimism) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0X4200000000000000000000000000000000000006 | $0.9996 0.0000142 Btc | $423,203.00 423,681.495 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 0.4798% |
42 | BitMart | ETH-DAI | $0.9998 0.0000142 Btc | $408,454.00 114.370 ETH | 0.0001% |
43 | KuCoin | USDT-DAI | $0.9998 0.0000142 Btc | $401,360.00 401,440.371 USDT | 0.4546% |
44 | Curve (Optimism) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0X94B008AA00579C1307B0EF2C499AD98A8CE58E58 | $1.001 0.0000142 Btc | $367,513.00 367,351.961 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 0.4160% |
45 | Sushiswap | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $1.007 0.0000143 Btc | $317,573.00 313,709.619 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 0.3552% |
46 | Bitunix | DAI-USDT | $1.001 0.0000142 Btc | $298,047.00 297,869.200 DAI | 0.3373% |
47 | Binance | ETH-DAI | $0.9999 0.0000142 Btc | $288,280.00 80.654 ETH | 0.0001% |
48 | Curve (Optimism) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0X7F5C764CBC14F9669B88837CA1490CCA17C31607 | $1.001 0.0000142 Btc | $284,117.00 284,041.093 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 0.3216% |
49 | Binance | BNB-DAI | $0.9998 0.0000142 Btc | $240,219.00 404.000 BNB | 0.0005% |
50 | Uniswap V3 (Arbitrum One) | 0X82AF49447D8A07E3BD95BD0D56F35241523FBAB1-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | $1.006 0.0000143 Btc | $221,990.00 61.662 0X82AF49447D8A07E3BD95BD0D56F35241523FBAB1 | 0.0001% |
51 | Hotcoin Global | DAI-USDT | $1.001 0.0000142 Btc | $216,221.00 215,981.080 DAI | 0.2446% |
52 | XT.COM | ETH-DAI | $0.9999 0.0000142 Btc | $215,338.00 60.303 ETH | 0.0001% |
53 | Uniswap V3 (Ethereum) | 0X02F92800F57BCD74066F5709F1DAA1A4302DF875-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $0.9997 0.0000142 Btc | $201,753.00 48,060.927 0X02F92800F57BCD74066F5709F1DAA1A4302DF875 | 0.0544% |
54 | Emirex | USDT-DAI | $0.9998 0.0000142 Btc | $187,198.00 187,273.320 USDT | 0.2121% |
55 | Trader Joe V2.1 (Arbitrum) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8 | $0.9998 0.0000142 Btc | $178,884.00 178,921.864 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 0.2026% |
56 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2 | $0.9816 0.0000139 Btc | $154,272.00 147,607.809 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 0.1671% |
57 | Uniswap V3 (Arbitrum One) | 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8 | $1.00 0.0000142 Btc | $127,510.00 127,459.612 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | 0.1443% |
58 | Uniswap V3 (Polygon) | 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F | $0.9945 0.0000141 Btc | $114,496.00 114,805.915 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | 0.1300% |
59 | MEXC | DAI-USDT | $1.00 0.0000142 Btc | $110,542.00 110,519.480 DAI | 0.1251% |
60 | BingX | DAI-USDT | $1.001 0.0000142 Btc | $108,661.00 108,633.593 DAI | 0.1230% |
61 | Gate.io | DAI-USDT | $1.001 0.0000142 Btc | $93,636.00 93,653.633 DAI | 0.1060% |
62 | KuCoin | ETH-DAI | $0.9998 0.0000142 Btc | $83,015.00 23.216 ETH | 0.0000% |
63 | Bitcointry Exchange | USDT-DAI | $0.9999 0.0000142 Btc | $81,133.00 81,131.089 USDT | 0.0919% |
64 | Uniswap V3 (Polygon) | 0X8A16D4BF8A0A716017E8D2262C4AC32927797A2F-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $1.00 0.0000142 Btc | $77,301.00 4,492.429 0X8A16D4BF8A0A716017E8D2262C4AC32927797A2F | 0.0051% |
65 | Aerodrome (Base) | 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB-0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913 | $1.002 0.0000142 Btc | $59,766.00 59,627.408 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB | 0.0675% |
66 | Quickswap | 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F | $0.9998 0.0000142 Btc | $59,425.00 58,315.150 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | 0.0660% |
67 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 | $0.9994 0.0000142 Btc | $56,750.00 56,774.549 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 0.0643% |
68 | Bitget | DAI-USDC | $1.002 0.0000142 Btc | $51,939.00 51,894.000 DAI | 0.0588% |
69 | Uniswap V3 (Ethereum) | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0X853D955ACEF822DB058EB8505911ED77F175B99E | $1.001 0.0000142 Btc | $49,331.00 49,321.458 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 0.0558% |
70 | Velodrome Finance v2 | 0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1 | $1.00 0.0000142 Btc | $44,749.00 44,749.478 0X7F5C764CBC14F9669B88837CA1490CCA17C31607 | 0.0507% |
71 | Coinbase Exchange | ETH-DAI | $0.9999 0.0000142 Btc | $44,690.00 12.543 ETH | 0.0000% |
72 | Bitvavo | DAI-EUR | $0.9976 0.0000142 Btc | $41,537.00 41,636.345 DAI | 0.0471% |
73 | FameEX | DAI-USDT | $1.001 0.0000142 Btc | $40,883.00 40,861.105 DAI | 0.0463% |
74 | Kraken | ETH-DAI | $0.9998 0.0000142 Btc | $28,743.00 8.044 ETH | 0.0000% |
75 | Balancer V2 | 0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 | $0.9999 0.0000142 Btc | $27,403.00 28,299.966 0X6B175474E89094C44DA98B954EEDEAC495271D0F | 0.0320% |
76 | EXMO | DAI-USDT | $1.00 0.0000142 Btc | $26,916.00 26,910.015 DAI | 0.0305% |
77 | Upbit | DAI-BTC | $1.004 0.0000143 Btc | $26,857.00 26,750.726 DAI | 0.0303% |
78 | Quickswap | 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $0.9941 0.0000141 Btc | $26,777.00 27,570.654 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174 | 0.0312% |
79 | Uniswap V3 (Ethereum) | 0X102C776DDB30C754DED4FDCC77A19230A60D4E4F-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $0.9997 0.0000142 Btc | $26,555.00 1,284,390.861 0X102C776DDB30C754DED4FDCC77A19230A60D4E4F | 1.4544% |
80 | CoinEx | DAI-USDT | $1.001 0.0000142 Btc | $22,926.00 22,902.637 DAI | 0.0259% |
81 | Uniswap V3 (Ethereum) | 0X7DD9C5CBA05E151C895FDE1CF355C9A1D5DA6429-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $0.9997 0.0000142 Btc | $16,331.46 25,574.168 0X7DD9C5CBA05E151C895FDE1CF355C9A1D5DA6429 | 0.0290% |
82 | Bitbank | DAI-JPY | $1.001 0.0000142 Btc | $15,600.80 15,591.274 DAI | 0.0177% |
83 | Sushiswap (Polygon POS) | 0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $1.00 0.0000142 Btc | $14,674.41 4.104 0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619 | 0.0000% |
84 | Phemex | DAI-USDT | $1.002 0.0000142 Btc | $13,724.90 13,697.950 DAI | 0.0155% |
85 | Bybit | ETH-DAI | $0.9998 0.0000142 Btc | $13,656.79 3.837 ETH | 0.0000% |
86 | Uniswap V3 (Ethereum) | 0X03AB458634910AAD20EF5F1C8EE96F1D6AC54919-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $1.004 0.0000142 Btc | $12,594.71 4,465.958 0X03AB458634910AAD20EF5F1C8EE96F1D6AC54919 | 0.0051% |
87 | ProBit Global | DAI-USDT | $1.00 0.0000142 Btc | $12,527.22 12,522.153 DAI | 0.0142% |
88 | PancakeSwap (v2) | 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3-BUSD | $1.004 0.0000143 Btc | $12,237.32 12,212.517 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3 | 0.0138% |
89 | PointPay | DAI-USDT | $1.00 0.0000142 Btc | $10,510.33 10,508.965 DAI | 0.0119% |
90 | Bitstamp | DAI-USD | $0.999 0.0000142 Btc | $8,397.17 8,405.576 DAI | 0.0095% |
91 | OKX | BTC-DAI | $0.9998 0.0000142 Btc | $7,835.19 0.111 BTC | 0.0000% |
92 | Bitso | DAI-MXN | $0.998 0.0000142 Btc | $6,827.82 6,841.624 DAI | 0.0077% |
93 | Bybit | BTC-DAI | $0.9998 0.0000142 Btc | $6,656.44 0.094 BTC | 0.0000% |
94 | Uniswap V2 (Ethereum) | 0X8F8221AFBB33998D8584A2B05749BA73C37A938A-0X6B175474E89094C44DA98B954EEDEAC495271D0F | $1.007 0.0000143 Btc | $6,303.62 36,350.504 0X8F8221AFBB33998D8584A2B05749BA73C37A938A | 0.0412% |
95 | OKCoin Japan | DAI-JPY | $1.004 0.0000142 Btc | $5,898.90 5,886.650 DAI | 0.0067% |
96 | Pancakeswap V1 (BSC) | 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3-0XE9E7CEA3DEDCA5984780BAFC599BD69ADD087D56 | $1.001 0.0000142 Btc | $3,546.17 3,528.867 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3 | 0.0040% |
97 | Crypto.com Exchange | DAI-USDT | $0.9944 0.0000141 Btc | $2,821.40 2,837.300 DAI | 0.0032% |
98 | Bitazza | DAI-USDT | $1.003 0.0000142 Btc | $1,278.49 1,277.615 DAI | 0.0014% |
99 | Bitazza | DAI-THB | $1.005 0.0000143 Btc | $1,277.83 1,277.615 DAI | 0.0014% |
100 | Sushiswap (Polygon POS) | 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063 | $1.00 0.0000142 Btc | $1,229.63 1,223.767 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174 | 0.0014% |
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xc21223249ca28397b4b6541dffaecc539bff0c59 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
CronosCRC20
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-01-11 */ // File contracts/ModuleCRC20.sol // SPDX-License-Identifier: GNU-3 pragma solidity >0.4.13 >=0.4.23 >=0.6.11 <0.7.0; ////// lib/ds-token/lib/ds-auth/src/auth.sol // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity >=0.4.23; */ interface DSAuthority { function canCall( address src, address dst, bytes4 sig ) external view returns (bool); } contract DSAuthEvents { event LogSetAuthority (address indexed authority); event LogSetOwner (address indexed owner); } contract DSAuth is DSAuthEvents { DSAuthority public authority; address public owner; constructor() public { owner = msg.sender; emit LogSetOwner(msg.sender); } function setOwner(address owner_) public auth { owner = owner_; emit LogSetOwner(owner); } function setAuthority(DSAuthority authority_) public auth { authority = authority_; emit LogSetAuthority(address(authority)); } modifier auth { require(isAuthorized(msg.sender, msg.sig), "ds-auth-unauthorized"); _; } function isAuthorized(address src, bytes4 sig) internal view returns (bool) { if (src == address(this)) { return true; } else if (src == owner) { return true; } else if (authority == DSAuthority(address(0))) { return false; } else { return authority.canCall(src, address(this), sig); } } } ////// lib/ds-token/lib/ds-math/src/math.sol /// math.sol -- mixin for inline numerical wizardry // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity >0.4.13; */ contract DSMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, "ds-math-add-overflow"); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, "ds-math-sub-underflow"); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow"); } function min(uint x, uint y) internal pure returns (uint z) { return x <= y ? x : y; } function max(uint x, uint y) internal pure returns (uint z) { return x >= y ? x : y; } function imin(int x, int y) internal pure returns (int z) { return x <= y ? x : y; } function imax(int x, int y) internal pure returns (int z) { return x >= y ? x : y; } uint constant WAD = 10 ** 18; uint constant RAY = 10 ** 27; //rounds to zero if x*y < WAD / 2 function wmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), WAD / 2) / WAD; } //rounds to zero if x*y < WAD / 2 function rmul(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, y), RAY / 2) / RAY; } //rounds to zero if x*y < WAD / 2 function wdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, WAD), y / 2) / y; } //rounds to zero if x*y < RAY / 2 function rdiv(uint x, uint y) internal pure returns (uint z) { z = add(mul(x, RAY), y / 2) / y; } // This famous algorithm is called "exponentiation by squaring" // and calculates x^n with x as fixed-point and n as regular unsigned. // // It's O(log n), instead of O(n) for naive repeated multiplication. // // These facts are why it works: // // If n is even, then x^n = (x^2)^(n/2). // If n is odd, then x^n = x * x^(n-1), // and applying the equation for even x gives // x^n = x * (x^2)^((n-1) / 2). // // Also, EVM division is flooring and // floor[(n-1) / 2] = floor[n / 2]. // function rpow(uint x, uint n) internal pure returns (uint z) { z = n % 2 != 0 ? x : RAY; for (n /= 2; n != 0; n /= 2) { x = rmul(x, x); if (n % 2 != 0) { z = rmul(z, x); } } } } ////// lib/ds-token/src/token.sol /// token.sol -- ERC20 implementation with minting and burning // Copyright (C) 2015, 2016, 2017 DappHub, LLC // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. /* pragma solidity >=0.4.23; */ /* import "ds-math/math.sol"; */ /* import "ds-auth/auth.sol"; */ contract DSToken is DSMath, DSAuth { bool public stopped; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; string public symbol; uint8 public decimals = 18; // standard token precision. override to customize string public name = ""; // Optional token name constructor(string memory symbol_) public { symbol = symbol_; } event Approval(address indexed src, address indexed guy, uint wad); event Transfer(address indexed src, address indexed dst, uint wad); event Mint(address indexed guy, uint wad); event Burn(address indexed guy, uint wad); event Stop(); event Start(); modifier stoppable { require(!stopped, "ds-stop-is-stopped"); _; } function approve(address guy) external returns (bool) { return approve(guy, uint(-1)); } function approve(address guy, uint wad) public stoppable returns (bool) { allowance[msg.sender][guy] = wad; emit Approval(msg.sender, guy, wad); return true; } function transfer(address dst, uint wad) external returns (bool) { return transferFrom(msg.sender, dst, wad); } function transferFrom(address src, address dst, uint wad) public stoppable returns (bool) { if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) { require(allowance[src][msg.sender] >= wad, "ds-token-insufficient-approval"); allowance[src][msg.sender] = sub(allowance[src][msg.sender], wad); } require(balanceOf[src] >= wad, "ds-token-insufficient-balance"); balanceOf[src] = sub(balanceOf[src], wad); balanceOf[dst] = add(balanceOf[dst], wad); emit Transfer(src, dst, wad); return true; } function push(address dst, uint wad) external { transferFrom(msg.sender, dst, wad); } function pull(address src, uint wad) external { transferFrom(src, msg.sender, wad); } function move(address src, address dst, uint wad) external { transferFrom(src, dst, wad); } function mint(uint wad) external { mint(msg.sender, wad); } function burn(uint wad) external { burn(msg.sender, wad); } function mint(address guy, uint wad) public auth stoppable { balanceOf[guy] = add(balanceOf[guy], wad); totalSupply = add(totalSupply, wad); emit Mint(guy, wad); } function burn(address guy, uint wad) public auth stoppable { if (guy != msg.sender && allowance[guy][msg.sender] != uint(-1)) { require(allowance[guy][msg.sender] >= wad, "ds-token-insufficient-approval"); allowance[guy][msg.sender] = sub(allowance[guy][msg.sender], wad); } require(balanceOf[guy] >= wad, "ds-token-insufficient-balance"); balanceOf[guy] = sub(balanceOf[guy], wad); totalSupply = sub(totalSupply, wad); emit Burn(guy, wad); } function stop() public auth { stopped = true; emit Stop(); } function start() public auth { stopped = false; emit Start(); } function setName(string memory name_) public auth { name = name_; } } ////// src/ModuleCRC20.sol /* pragma solidity ^0.6.11; */ /* import "ds-token/token.sol"; */ contract ModuleCRC20 is DSToken { // sha256('cronos')[:20] address constant module_address = 0x89A7EF2F08B1c018D5Cc88836249b84Dd5392905; string denom; event __CronosSendToEthereum(address recipient, uint256 amount, uint256 bridge_fee); event __CronosSendToIbc(address sender, string recipient, uint256 amount); constructor(string memory denom_, uint8 decimals_) DSToken(denom_) public { decimals = decimals_; denom = denom_; } // unsafe_burn burn tokens without user's approval and authentication, used internally function unsafe_burn(address addr, uint amount) private { // Deduct user's balance without approval require(balanceOf[addr] >= amount, "ds-token-insufficient-balance"); balanceOf[addr] = sub(balanceOf[addr], amount); totalSupply = sub(totalSupply, amount); emit Burn(addr, amount); } function native_denom() public view returns (string memory) { return denom; } function mint_by_cronos_module(address addr, uint amount) public { require(msg.sender == module_address); mint(addr, amount); } function burn_by_cronos_module(address addr, uint amount) public { require(msg.sender == module_address); unsafe_burn(addr, amount); } // send to ethereum through gravity bridge function send_to_ethereum(address recipient, uint amount, uint bridge_fee) external { unsafe_burn(msg.sender, add(amount, bridge_fee)); emit __CronosSendToEthereum(recipient, amount, bridge_fee); } // send an "amount" of the contract token to recipient through IBC function send_to_ibc(string memory recipient, uint amount) public { unsafe_burn(msg.sender, amount); emit __CronosSendToIbc(msg.sender, recipient, amount); } } // File contracts/CronosCRC20.sol pragma solidity 0.6.11; contract CronosCRC20 is ModuleCRC20 { constructor ( string memory _name, string memory _denom, uint8 _decimal ) ModuleCRC20(_denom, _decimal) public { setName(_name); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_denom","type":"string"},{"internalType":"uint8","name":"_decimal","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"Start","type":"event"},{"anonymous":false,"inputs":[],"name":"Stop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bridge_fee","type":"uint256"}],"name":"__CronosSendToEthereum","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"recipient","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"__CronosSendToIbc","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract DSAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn_by_cronos_module","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint_by_cronos_module","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"native_denom","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"bridge_fee","type":"uint256"}],"name":"send_to_ethereum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"recipient","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"send_to_ibc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract DSAuthority","name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80639dc29fac11610104578063bf7e214f116100a2578063dd62ed3e11610071578063dd62ed3e14610a59578063e978206414610ad1578063ee36665414610b1f578063f2d5d56b14610ba2576101da565b8063bf7e214f146108a0578063c47f0027146108ea578063d3d78b9b146109a5578063daea85c5146109fd576101da565b8063a9059cbb116100de578063a9059cbb14610774578063b753a98c146107da578063bb35783b14610828578063be9a655514610896576101da565b80639dc29fac14610633578063a0712d6814610681578063a515cb40146106af576101da565b806340c10f191161017c57806375f12b211161014b57806375f12b21146105005780637a9e5e4b146105225780638da5cb5b1461056657806395d89b41146105b0576101da565b806340c10f19146103de57806342966c681461042c57806370a082311461045a57806375620d6f146104b2576101da565b806313af4035116101b857806313af4035146102d257806318160ddd1461031657806323b872dd14610334578063313ce567146103ba576101da565b806306fdde03146101df57806307da68f514610262578063095ea7b31461026c575b600080fd5b6101e7610bf0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026a610c8e565b005b6102b86004803603604081101561028257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d76565b604051808215151515815260200191505060405180910390f35b610314600480360360208110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eeb565b005b61031e611034565b6040518082815260200191505060405180910390f35b6103a06004803603606081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b604051808215151515815260200191505060405180910390f35b6103c26115d2565b604051808260ff1660ff16815260200191505060405180910390f35b61042a600480360360408110156103f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b005b6104586004803603602081101561044257600080fd5b81019080803590602001909291905050506117f8565b005b61049c6004803603602081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611805565b6040518082815260200191505060405180910390f35b6104fe600480360360408110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181d565b005b610508611877565b604051808215151515815260200191505060405180910390f35b6105646004803603602081101561053857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188a565b005b61056e6119d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b86119f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f85780820151818401526020810190506105dd565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61067f6004803603604081101561064957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a95565b005b6106ad6004803603602081101561069757600080fd5b8101908080359060200190929190505050612033565b005b610772600480360360408110156106c557600080fd5b81019080803590602001906401000000008111156106e257600080fd5b8201836020820111156106f457600080fd5b8035906020019184600183028401116401000000008311171561071657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050612040565b005b6107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612126565b604051808215151515815260200191505060405180910390f35b610826600480360360408110156107f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061213b565b005b6108946004803603606081101561083e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214b565b005b61089e61215c565b005b6108a8612245565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a36004803603602081101561090057600080fd5b810190808035906020019064010000000081111561091d57600080fd5b82018360208201111561092f57600080fd5b8035906020019184600183028401116401000000008311171561095157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061226a565b005b6109fb600480360360608110156109bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612324565b005b610a3f60048036036020811015610a1357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123af565b604051808215151515815260200191505060405180910390f35b610abb60048036036040811015610a6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e2565b6040518082815260200191505060405180910390f35b610b1d60048036036040811015610ae757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612407565b005b610b27612461565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b67578082015181840152602081019050610b4c565b50505050905090810190601f168015610b945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bee60048036036040811015610bb857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612503565b005b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c865780601f10610c5b57610100808354040283529160200191610c86565b820191906000526020600020905b815481529060010190602001808311610c6957829003601f168201915b505050505081565b610cbc336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610d2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b60405160405180910390a1565b6000600160149054906101000a900460ff1615610dfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610f19336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610f8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60025481565b6000600160149054906101000a900460ff16156110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561119757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156113955781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611314600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611493600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061151f600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836127ef565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600660009054906101000a900460ff1681565b611613336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611685576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b611751600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826127ef565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a0600254826127ef565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b6118023382611a95565b50565b60036020528060005260406000206000915090505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186957600080fd5b6118738282612872565b5050565b600160149054906101000a900460ff1681565b6118b8336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61192a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a8d5780601f10611a6257610100808354040283529160200191611a8d565b820191906000526020600020905b815481529060010190602001808311611a7057829003601f168201915b505050505081565b611ac3336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c9057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611e8e5780600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611e0d600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611f8c600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fdb6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b61203d33826115e5565b50565b61204a3382612872565b7f7835232045347ac086653cbd9c0e6303f23502bb796f671a56755142063df2b2338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156120e65780820151818401526020810190506120cb565b50505050905090810190601f1680156121135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600061213333848461103a565b905092915050565b61214633838361103a565b505050565b61215683838361103a565b50505050565b61218a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b6121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b60405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612298336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61230a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b8060079080519060200190612320929190612a17565b5050565b6123373361233284846127ef565b612872565b7f937492d2511a2fbc9b51ea08825f1e252247d339dfd50904ebf4f4411f1d8136838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1505050565b60006123db827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d76565b9050919050565b6004602052816000526040600020602052806000526040600020600091509150505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461245357600080fd5b61245d82826115e5565b5050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b5050505050905090565b61250e82338361103a565b505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125525760019050612766565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125b15760019050612766565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126105760009050612766565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561272857600080fd5b505afa15801561273c573d6000803e3d6000fd5b505050506040513d602081101561275257600080fd5b810190808051906020019092919050505090505b92915050565b60008282840391508111156127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b600082828401915081101561286c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b612970600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129bf6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a5857805160ff1916838001178555612a86565b82800160010185558215612a86579182015b82811115612a85578251825591602001919060010190612a6a565b5b509050612a939190612a97565b5090565b612ab991905b80821115612ab5576000816000905550600101612a9d565b5090565b9056fea26469706673582212207d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc684664736f6c634300060b0033
Deployed ByteCode Sourcemap
12031:222:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6832:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9708:83;;;:::i;:::-;;7512:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1352:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6408:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7848:621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6703:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8968:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8887:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6484:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11265:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6336:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1488:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1212:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6632:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9171:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8806:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11778:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7715:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8477:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8691:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9799:86;;;:::i;:::-;;1175:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9895:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11478:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7402:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6558:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11107:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11008:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8584:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6832:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9708:83::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:4:::1;9747:7:::0;::::1;:14;;;;;;;;;;;;;;;;;;9777:6;;;;;;;;;;9708:83::o:0;7512:195::-;7578:4;7344:7;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:3:::1;7595:9;:21;7605:10;7595:21;;;;;;;;;;;;;;;:26;7617:3;7595:26;;;;;;;;;;;;;;;:32;;;;7666:3;7645:30;;7654:10;7645:30;;;7671:3;7645:30;;;;;;;;;;;;;;;;;;7695:4;7688:11;;7512:195:::0;;;;:::o;1352:128::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:6:::1;1424:5;;:14;;;;;;;;;;;;;;;;;;1466:5;;;;;;;;;;;1454:18;;;;;;;;;;;;1352:128:::0;:::o;6408:69::-;;;;:::o;7848:621::-;7947:4;7344:7;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:10:::1;7973:17;;:3;:17;;;;:59;;;;;8029:2;7994:9;:14;8004:3;7994:14;;;;;;;;;;;;;;;:26;8009:10;7994:26;;;;;;;;;;;;;;;;:38;;7973:59;7969:248;;;8087:3;8057:9;:14;8067:3;8057:14;;;;;;;;;;;;;;;:26;8072:10;8057:26;;;;;;;;;;;;;;;;:33;;8049:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8169:36;8173:9;:14;8183:3;8173:14;;;;;;;;;;;;;;;:26;8188:10;8173:26;;;;;;;;;;;;;;;;8201:3;8169;:36::i;:::-;8140:9;:14;8150:3;8140:14;;;;;;;;;;;;;;;:26;8155:10;8140:26;;;;;;;;;;;;;;;:65;;;;7969:248;8255:3;8237:9;:14;8247:3;8237:14;;;;;;;;;;;;;;;;:21;;8229:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8320:24;8324:9;:14;8334:3;8324:14;;;;;;;;;;;;;;;;8340:3;8320;:24::i;:::-;8303:9;:14;8313:3;8303:14;;;;;;;;;;;;;;;:41;;;;8372:24;8376:9;:14;8386:3;8376:14;;;;;;;;;;;;;;;;8392:3;8372;:24::i;:::-;8355:9;:14;8365:3;8355:14;;;;;;;;;;;;;;;:41;;;;8428:3;8414:23;;8423:3;8414:23;;;8433:3;8414:23;;;;;;;;;;;;;;;;;;8457:4;8450:11;;7848:621:::0;;;;;:::o;6703:71::-;;;;;;;;;;;;;:::o;8968:195::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:7:::1;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9055:24:::2;9059:9;:14;9069:3;9059:14;;;;;;;;;;;;;;;;9075:3;9055;:24::i;:::-;9038:9;:14;9048:3;9038:14;;;;;;;;;;;;;;;:41;;;;9104:21;9108:11;;9121:3;9104;:21::i;:::-;9090:11;:35;;;;9146:3;9141:14;;;9151:3;9141:14;;;;;;;;;;;;;;;;;;8968:195:::0;;:::o;8887:73::-;8931:21;8936:10;8948:3;8931:4;:21::i;:::-;8887:73;:::o;6484:67::-;;;;;;;;;;;;;;;;;:::o;11265:157::-;10187:42;11349:28;;:10;:28;;;11341:37;;;;;;11389:25;11401:4;11407:6;11389:11;:25::i;:::-;11265:157;;:::o;6336:65::-;;;;;;;;;;;;;:::o;1488:165::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1584:10:::1;1572:9;::::0;:22:::1;;;;;;;;;;;;;;;;;;1634:9;::::0;::::1;;;;;;;;;1610:35;;;;;;;;;;;;1488:165:::0;:::o;1212:26::-;;;;;;;;;;;;;:::o;6632:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9171:529::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:7:::1;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9252:10:::2;9245:17;;:3;:17;;;;:59;;;;;9301:2;9266:9;:14;9276:3;9266:14;;;;;;;;;;;;;;;:26;9281:10;9266:26;;;;;;;;;;;;;;;;:38;;9245:59;9241:248;;;9359:3;9329:9;:14;9339:3;9329:14;;;;;;;;;;;;;;;:26;9344:10;9329:26;;;;;;;;;;;;;;;;:33;;9321:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9441:36;9445:9;:14;9455:3;9445:14;;;;;;;;;;;;;;;:26;9460:10;9445:26;;;;;;;;;;;;;;;;9473:3;9441;:36::i;:::-;9412:9;:14;9422:3;9412:14;;;;;;;;;;;;;;;:26;9427:10;9412:26;;;;;;;;;;;;;;;:65;;;;9241:248;9527:3;9509:9;:14;9519:3;9509:14;;;;;;;;;;;;;;;;:21;;9501:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9592:24;9596:9;:14;9606:3;9596:14;;;;;;;;;;;;;;;;9612:3;9592;:24::i;:::-;9575:9;:14;9585:3;9575:14;;;;;;;;;;;;;;;:41;;;;9641:21;9645:11;;9658:3;9641;:21::i;:::-;9627:11;:35;;;;9683:3;9678:14;;;9688:3;9678:14;;;;;;;;;;;;;;;;;;9171:529:::0;;:::o;8806:73::-;8850:21;8855:10;8867:3;8850:4;:21::i;:::-;8806:73;:::o;11778:180::-;11855:31;11867:10;11879:6;11855:11;:31::i;:::-;11902:48;11920:10;11932:9;11943:6;11902:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11778:180;;:::o;7715:125::-;7774:4;7798:34;7811:10;7823:3;7828;7798:12;:34::i;:::-;7791:41;;7715:125;;;;:::o;8477:99::-;8534:34;8547:10;8559:3;8564;8534:12;:34::i;:::-;;8477:99;;:::o;8691:105::-;8761:27;8774:3;8779;8784;8761:12;:27::i;:::-;;8691:105;;;:::o;9799:86::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9849:5:::1;9839:7;;:15;;;;;;;;;;;;;;;;;;9870:7;;;;;;;;;;9799:86::o:0;1175:30::-;;;;;;;;;;;;;:::o;9895:81::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9963:5:::1;9956:4;:12;;;;;;;;;;;;:::i;:::-;;9895:81:::0;:::o;11478:220::-;11573:48;11585:10;11597:23;11601:6;11609:10;11597:3;:23::i;:::-;11573:11;:48::i;:::-;11637:53;11660:9;11671:6;11679:10;11637:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11478:220;;;:::o;7402:102::-;7450:4;7474:22;7482:3;7492:2;7474:7;:22::i;:::-;7467:29;;7402:102;;;:::o;6558:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11107:150::-;10187:42;11191:28;;:10;:28;;;11183:37;;;;;;11231:18;11236:4;11242:6;11231:4;:18::i;:::-;11107:150;;:::o;11008:91::-;11053:13;11086:5;11079:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11008:91;:::o;8584:99::-;8641:34;8654:3;8659:10;8671:3;8641:12;:34::i;:::-;;8584:99;;:::o;1780:389::-;1850:4;1886;1871:20;;:3;:20;;;1867:295;;;1915:4;1908:11;;;;1867:295;1948:5;;;;;;;;;;;1941:12;;:3;:12;;;1937:225;;;1977:4;1970:11;;;;1937:225;2036:1;2003:36;;:9;;;;;;;;;;;:36;;;1999:163;;;2063:5;2056:12;;;;1999:163;2108:9;;;;;;;;;;;:17;;;2126:3;2139:4;2146:3;2108:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2101:49;;1780:389;;;;;:::o;3124:129::-;3176:6;3218:1;3212;3208;:5;3204:9;;;3203:16;;3195:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:129;;;;:::o;2990:128::-;3042:6;3084:1;3078;3074;:5;3070:9;;;3069:16;;3061:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2990:128;;;;:::o;10667:333::-;10812:6;10793:9;:15;10803:4;10793:15;;;;;;;;;;;;;;;;:25;;10785:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:28;10885:9;:15;10895:4;10885:15;;;;;;;;;;;;;;;;10902:6;10881:3;:28::i;:::-;10863:9;:15;10873:4;10863:15;;;;;;;;;;;;;;;:46;;;;10934:24;10938:11;;10951:6;10934:3;:24::i;:::-;10920:11;:38;;;;10979:4;10974:18;;;10985:6;10974:18;;;;;;;;;;;;;;;;;;10667:333;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://7d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc6846