ERC-20
Overview
Max Total Supply
1,000,000 FOX
Holders
64
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 7 Decimals)
Balance
0.0000001 FOXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FOX
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-03 */ /** https://fox0x62.com https://x.com/Fox0x62 https://t.me/FoxOnETH Matt Furie's Pet Rat- $FOX Matt Furie owns two Rats one of them being FOX. */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract FOX is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Fox"; string private constant _symbol = "FOX"; uint8 private constant _decimals = 7; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private _redisFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000 * 10**7; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Tax uint256 public _taxFeeOnBuy = 20; //Sell Tax uint256 public _taxFeeOnSell = 20; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable public _developmentAddress = payable(0x902a2F74738aCe47d7E82FA29BD2bbb848eE5D6d); address payable public _marketingAddress = payable(0x902a2F74738aCe47d7E82FA29BD2bbb848eE5D6d); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000 * 10**7; uint256 public _maxWalletSize = 20000 * 10**7; uint256 public _swapTokensAtAmount = 10000 * 10**7; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[address(0xdead)] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); // Check if the transaction is initiated by the owner. bool isOwnerTransaction = (from == owner() || to == owner()); if (!isOwnerTransaction) { // Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; // Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || isOwnerTransaction) { takeFee = false; } else { // Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } // Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount*50/100); _developmentAddress.transfer(amount*50/100); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBot(address isbot) public onlyOwner { bots[isbot] = true; } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function setAddresses(address payable newDevelopmentAddress, address payable newmarketingAddress) public onlyOwner { _developmentAddress = newDevelopmentAddress; _marketingAddress = newmarketingAddress; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(taxFeeOnBuy <= 35, "Buy tax should be less than or equal to 35"); require(taxFeeOnSell <= 35, "Sell tax should be less than or equal to 35"); _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { require(maxTxAmount >= 5000 * 10**7, "Max Txn can't be less than 0.5% "); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { require(maxWalletSize >= 5000 * 10**7, "Max Wallet can't be less than 0.5% "); _maxWalletSize = maxWalletSize; } function removeLimits() public onlyOwner { _maxWalletSize = 1000000 * 10**7; _maxTxAmount = 1000000 * 10**7; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"isbot","type":"address"}],"name":"blockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevelopmentAddress","type":"address"},{"internalType":"address payable","name":"newmarketingAddress","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260006006819055600755620000226509184e72a0006000196200039e565b6200003090600019620003c1565b6008556014600a819055600b819055600754600c819055600d829055600e55600f55601280546001600160a01b031990811673902a2f74738ace47d7e82fa29bd2bbb848ee5d6d9081179092556013805490911690911790556015805461ffff60a81b1916600160b01b179055642e90edd000601681905560175564174876e800601855348015620000c157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200017a57600080fd5b505afa1580156200018f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b59190620003e7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001fe57600080fd5b505afa15801562000213573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002399190620003e7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028257600080fd5b505af115801562000297573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bd9190620003e7565b601580546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff19908116600190811790925530855282852080548216831790556012548616855282852080548216831790556013549095168452818420805486168217905561dead84527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba80549095161790935591516509184e72a000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000419565b600082620003bc57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003e257634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003fa57600080fd5b81516001600160a01b03811681146200041257600080fd5b9392505050565b611ff380620004296000396000f3fe6080604052600436106102135760003560e01c80637f2feddc11610118578063bf5976d3116100a0578063caac79341161006f578063caac79341461060f578063dd62ed3e1461062f578063e70ef8a414610675578063ea1644d514610695578063f2fde38b146106b557600080fd5b8063bf5976d314610594578063bfd79284146105aa578063c3c8cd80146105da578063c492f046146105ef57600080fd5b80638f9a55c0116100e75780638f9a55c0146104f257806390107afe1461050857806395d89b411461052857806398a5c31514610554578063a9059cbb1461057457600080fd5b80637f2feddc146104715780638199040e1461049e5780638da5cb5b146104b45780638f70ccf7146104d257600080fd5b806352f7c9881161019b57806370a082311161016a57806370a08231146103f1578063715018a61461041157806374010ece14610426578063751039fc146104465780637d1db4a51461045b57600080fd5b806352f7c9881461037a5780636b9990531461039c5780636d8aa8f8146103bc5780636fc3eaec146103dc57600080fd5b806323b872dd116101e257806323b872dd146102e85780632fd689e314610308578063313ce5671461031e5780633d6a9afe1461033a57806349bd5a5e1461035a57600080fd5b806306fdde031461021f578063095ea7b31461025d5780631694505e1461028d57806318160ddd146102c557600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600381526208cdef60eb1b60208201525b6040516102549190611bff565b60405180910390f35b34801561026957600080fd5b5061027d610278366004611c69565b6106d5565b6040519015158152602001610254565b34801561029957600080fd5b506014546102ad906001600160a01b031681565b6040516001600160a01b039091168152602001610254565b3480156102d157600080fd5b506509184e72a0005b604051908152602001610254565b3480156102f457600080fd5b5061027d610303366004611c95565b6106ec565b34801561031457600080fd5b506102da60185481565b34801561032a57600080fd5b5060405160078152602001610254565b34801561034657600080fd5b506012546102ad906001600160a01b031681565b34801561036657600080fd5b506015546102ad906001600160a01b031681565b34801561038657600080fd5b5061039a610395366004611cd6565b610755565b005b3480156103a857600080fd5b5061039a6103b7366004611cf8565b61085c565b3480156103c857600080fd5b5061039a6103d7366004611d2a565b6108a7565b3480156103e857600080fd5b5061039a6108ef565b3480156103fd57600080fd5b506102da61040c366004611cf8565b61093a565b34801561041d57600080fd5b5061039a61095c565b34801561043257600080fd5b5061039a610441366004611d45565b6109d0565b34801561045257600080fd5b5061039a610a54565b34801561046757600080fd5b506102da60165481565b34801561047d57600080fd5b506102da61048c366004611cf8565b60116020526000908152604090205481565b3480156104aa57600080fd5b506102da600b5481565b3480156104c057600080fd5b506000546001600160a01b03166102ad565b3480156104de57600080fd5b5061039a6104ed366004611d2a565b610a8f565b3480156104fe57600080fd5b506102da60175481565b34801561051457600080fd5b5061039a610523366004611d5e565b610ad7565b34801561053457600080fd5b5060408051808201909152600381526208c9eb60eb1b6020820152610247565b34801561056057600080fd5b5061039a61056f366004611d45565b610b2f565b34801561058057600080fd5b5061027d61058f366004611c69565b610b5e565b3480156105a057600080fd5b506102da600a5481565b3480156105b657600080fd5b5061027d6105c5366004611cf8565b60106020526000908152604090205460ff1681565b3480156105e657600080fd5b5061039a610b6b565b3480156105fb57600080fd5b5061039a61060a366004611d97565b610bbf565b34801561061b57600080fd5b506013546102ad906001600160a01b031681565b34801561063b57600080fd5b506102da61064a366004611d5e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561068157600080fd5b5061039a610690366004611cf8565b610c60565b3480156106a157600080fd5b5061039a6106b0366004611d45565b610cae565b3480156106c157600080fd5b5061039a6106d0366004611cf8565b610d3e565b60006106e2338484610e28565b5060015b92915050565b60006106f9848484610f4c565b61074b843361074685604051806060016040528060288152602001611f96602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611465565b610e28565b5060019392505050565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161077f90611e1b565b60405180910390fd5b60238211156107ec5760405162461bcd60e51b815260206004820152602a60248201527f427579207461782073686f756c64206265206c657373207468616e206f7220656044820152697175616c20746f20333560b01b606482015260840161077f565b60238111156108515760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207461782073686f756c64206265206c657373207468616e206f722060448201526a657175616c20746f20333560a81b606482015260840161077f565b600a91909155600b55565b6000546001600160a01b031633146108865760405162461bcd60e51b815260040161077f90611e1b565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161077f90611e1b565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061092457506013546001600160a01b0316336001600160a01b0316145b61092d57600080fd5b476109378161149f565b50565b6001600160a01b0381166000908152600260205260408120546106e690611540565b6000546001600160a01b031633146109865760405162461bcd60e51b815260040161077f90611e1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109fa5760405162461bcd60e51b815260040161077f90611e1b565b640ba43b7400811015610a4f5760405162461bcd60e51b815260206004820181905260248201527f4d61782054786e2063616e2774206265206c657373207468616e20302e352520604482015260640161077f565b601655565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b815260040161077f90611e1b565b6509184e72a0006017819055601655565b6000546001600160a01b03163314610ab95760405162461bcd60e51b815260040161077f90611e1b565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610b015760405162461bcd60e51b815260040161077f90611e1b565b601280546001600160a01b039384166001600160a01b03199182161790915560138054929093169116179055565b6000546001600160a01b03163314610b595760405162461bcd60e51b815260040161077f90611e1b565b601855565b60006106e2338484610f4c565b6012546001600160a01b0316336001600160a01b03161480610ba057506013546001600160a01b0316336001600160a01b0316145b610ba957600080fd5b6000610bb43061093a565b9050610937816115c4565b6000546001600160a01b03163314610be95760405162461bcd60e51b815260040161077f90611e1b565b60005b82811015610c5a578160056000868685818110610c0b57610c0b611e50565b9050602002016020810190610c209190611cf8565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c5281611e7c565b915050610bec565b50505050565b6000546001600160a01b03163314610c8a5760405162461bcd60e51b815260040161077f90611e1b565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b03163314610cd85760405162461bcd60e51b815260040161077f90611e1b565b640ba43b7400811015610d395760405162461bcd60e51b815260206004820152602360248201527f4d61782057616c6c65742063616e2774206265206c657373207468616e20302e60448201526201a92960ed1b606482015260840161077f565b601755565b6000546001600160a01b03163314610d685760405162461bcd60e51b815260040161077f90611e1b565b6001600160a01b038116610dcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e8a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161077f565b6001600160a01b038216610eeb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161077f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fb05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161077f565b6001600160a01b0382166110125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161077f565b600081116110745760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161077f565b600080546001600160a01b038581169116148061109e57506000546001600160a01b038481169116145b90508061138157601554600160a01b900460ff16611139576000546001600160a01b038581169116146111395760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161077f565b60165482111561118b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161077f565b6001600160a01b03841660009081526010602052604090205460ff161580156111cd57506001600160a01b03831660009081526010602052604090205460ff16155b6112255760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161077f565b6015546001600160a01b038481169116146112aa57601754826112478561093a565b6112519190611e97565b106112aa5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161077f565b60006112b53061093a565b6018546016549192508210159082106112ce5760165491505b8080156112e55750601554600160a81b900460ff16155b80156112ff57506015546001600160a01b03878116911614155b80156113145750601554600160b01b900460ff165b801561133957506001600160a01b03861660009081526005602052604090205460ff16155b801561135e57506001600160a01b03851660009081526005602052604090205460ff16155b1561137e5761136c826115c4565b47801561137c5761137c4761149f565b505b50505b6001600160a01b03841660009081526005602052604090205460019060ff16806113c357506001600160a01b03841660009081526005602052604090205460ff165b806113cb5750815b156113d857506000611452565b6015546001600160a01b03868116911614801561140357506014546001600160a01b03858116911614155b1561141557600654600c55600a54600d555b6015546001600160a01b03858116911614801561144057506014546001600160a01b03868116911614155b1561145257600754600c55600b54600d555b61145e8585858461174d565b5050505050565b600081848411156114895760405162461bcd60e51b815260040161077f9190611bff565b5060006114968486611eaf565b95945050505050565b6013546001600160a01b03166108fc60646114bb846032611ec6565b6114c59190611ee5565b6040518115909202916000818181858888f193505050501580156114ed573d6000803e3d6000fd5b506012546001600160a01b03166108fc606461150a846032611ec6565b6115149190611ee5565b6040518115909202916000818181858888f1935050505015801561153c573d6000803e3d6000fd5b5050565b60006008548211156115a75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161077f565b60006115b161177b565b90506115bd838261179e565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061160c5761160c611e50565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561166057600080fd5b505afa158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190611f07565b816001815181106116ab576116ab611e50565b6001600160a01b0392831660209182029290920101526014546116d19130911684610e28565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061170a908590600090869030904290600401611f24565b600060405180830381600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061175a5761175a6117e0565b61176584848461180e565b80610c5a57610c5a600e54600c55600f54600d55565b6000806000611788611905565b9092509050611797828261179e565b9250505090565b60006115bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611941565b600c541580156117f05750600d54155b156117f757565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806118208761196f565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061185290876119cc565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118819086611a0e565b6001600160a01b0389166000908152600260205260409020556118a381611a6d565b6118ad8483611ab7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118f291815260200190565b60405180910390a3505050505050505050565b60085460009081906509184e72a00061191e828261179e565b821015611938575050600854926509184e72a00092509050565b90939092509050565b600081836119625760405162461bcd60e51b815260040161077f9190611bff565b5060006114968486611ee5565b600080600080600080600080600061198c8a600c54600d54611adb565b925092509250600061199c61177b565b905060008060006119af8e878787611b30565b919e509c509a509598509396509194505050505091939550919395565b60006115bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611465565b600080611a1b8385611e97565b9050838110156115bd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161077f565b6000611a7761177b565b90506000611a858383611b80565b30600090815260026020526040902054909150611aa29082611a0e565b30600090815260026020526040902055505050565b600854611ac490836119cc565b600855600954611ad49082611a0e565b6009555050565b6000808080611af56064611aef8989611b80565b9061179e565b90506000611b086064611aef8a89611b80565b90506000611b2082611b1a8b866119cc565b906119cc565b9992985090965090945050505050565b6000808080611b3f8886611b80565b90506000611b4d8887611b80565b90506000611b5b8888611b80565b90506000611b6d82611b1a86866119cc565b939b939a50919850919650505050505050565b600082611b8f575060006106e6565b6000611b9b8385611ec6565b905082611ba88583611ee5565b146115bd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161077f565b600060208083528351808285015260005b81811015611c2c57858101830151858201604001528201611c10565b81811115611c3e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461093757600080fd5b60008060408385031215611c7c57600080fd5b8235611c8781611c54565b946020939093013593505050565b600080600060608486031215611caa57600080fd5b8335611cb581611c54565b92506020840135611cc581611c54565b929592945050506040919091013590565b60008060408385031215611ce957600080fd5b50508035926020909101359150565b600060208284031215611d0a57600080fd5b81356115bd81611c54565b80358015158114611d2557600080fd5b919050565b600060208284031215611d3c57600080fd5b6115bd82611d15565b600060208284031215611d5757600080fd5b5035919050565b60008060408385031215611d7157600080fd5b8235611d7c81611c54565b91506020830135611d8c81611c54565b809150509250929050565b600080600060408486031215611dac57600080fd5b833567ffffffffffffffff80821115611dc457600080fd5b818601915086601f830112611dd857600080fd5b813581811115611de757600080fd5b8760208260051b8501011115611dfc57600080fd5b602092830195509350611e129186019050611d15565b90509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e9057611e90611e66565b5060010190565b60008219821115611eaa57611eaa611e66565b500190565b600082821015611ec157611ec1611e66565b500390565b6000816000190483118215151615611ee057611ee0611e66565b500290565b600082611f0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f1957600080fd5b81516115bd81611c54565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f745784516001600160a01b031683529383019391830191600101611f4f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d3e20b7224993e1f776f940a7b708a73cbcc2fb507c0612c4e19cc5b11a54abe64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106102135760003560e01c80637f2feddc11610118578063bf5976d3116100a0578063caac79341161006f578063caac79341461060f578063dd62ed3e1461062f578063e70ef8a414610675578063ea1644d514610695578063f2fde38b146106b557600080fd5b8063bf5976d314610594578063bfd79284146105aa578063c3c8cd80146105da578063c492f046146105ef57600080fd5b80638f9a55c0116100e75780638f9a55c0146104f257806390107afe1461050857806395d89b411461052857806398a5c31514610554578063a9059cbb1461057457600080fd5b80637f2feddc146104715780638199040e1461049e5780638da5cb5b146104b45780638f70ccf7146104d257600080fd5b806352f7c9881161019b57806370a082311161016a57806370a08231146103f1578063715018a61461041157806374010ece14610426578063751039fc146104465780637d1db4a51461045b57600080fd5b806352f7c9881461037a5780636b9990531461039c5780636d8aa8f8146103bc5780636fc3eaec146103dc57600080fd5b806323b872dd116101e257806323b872dd146102e85780632fd689e314610308578063313ce5671461031e5780633d6a9afe1461033a57806349bd5a5e1461035a57600080fd5b806306fdde031461021f578063095ea7b31461025d5780631694505e1461028d57806318160ddd146102c557600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600381526208cdef60eb1b60208201525b6040516102549190611bff565b60405180910390f35b34801561026957600080fd5b5061027d610278366004611c69565b6106d5565b6040519015158152602001610254565b34801561029957600080fd5b506014546102ad906001600160a01b031681565b6040516001600160a01b039091168152602001610254565b3480156102d157600080fd5b506509184e72a0005b604051908152602001610254565b3480156102f457600080fd5b5061027d610303366004611c95565b6106ec565b34801561031457600080fd5b506102da60185481565b34801561032a57600080fd5b5060405160078152602001610254565b34801561034657600080fd5b506012546102ad906001600160a01b031681565b34801561036657600080fd5b506015546102ad906001600160a01b031681565b34801561038657600080fd5b5061039a610395366004611cd6565b610755565b005b3480156103a857600080fd5b5061039a6103b7366004611cf8565b61085c565b3480156103c857600080fd5b5061039a6103d7366004611d2a565b6108a7565b3480156103e857600080fd5b5061039a6108ef565b3480156103fd57600080fd5b506102da61040c366004611cf8565b61093a565b34801561041d57600080fd5b5061039a61095c565b34801561043257600080fd5b5061039a610441366004611d45565b6109d0565b34801561045257600080fd5b5061039a610a54565b34801561046757600080fd5b506102da60165481565b34801561047d57600080fd5b506102da61048c366004611cf8565b60116020526000908152604090205481565b3480156104aa57600080fd5b506102da600b5481565b3480156104c057600080fd5b506000546001600160a01b03166102ad565b3480156104de57600080fd5b5061039a6104ed366004611d2a565b610a8f565b3480156104fe57600080fd5b506102da60175481565b34801561051457600080fd5b5061039a610523366004611d5e565b610ad7565b34801561053457600080fd5b5060408051808201909152600381526208c9eb60eb1b6020820152610247565b34801561056057600080fd5b5061039a61056f366004611d45565b610b2f565b34801561058057600080fd5b5061027d61058f366004611c69565b610b5e565b3480156105a057600080fd5b506102da600a5481565b3480156105b657600080fd5b5061027d6105c5366004611cf8565b60106020526000908152604090205460ff1681565b3480156105e657600080fd5b5061039a610b6b565b3480156105fb57600080fd5b5061039a61060a366004611d97565b610bbf565b34801561061b57600080fd5b506013546102ad906001600160a01b031681565b34801561063b57600080fd5b506102da61064a366004611d5e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561068157600080fd5b5061039a610690366004611cf8565b610c60565b3480156106a157600080fd5b5061039a6106b0366004611d45565b610cae565b3480156106c157600080fd5b5061039a6106d0366004611cf8565b610d3e565b60006106e2338484610e28565b5060015b92915050565b60006106f9848484610f4c565b61074b843361074685604051806060016040528060288152602001611f96602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611465565b610e28565b5060019392505050565b6000546001600160a01b031633146107885760405162461bcd60e51b815260040161077f90611e1b565b60405180910390fd5b60238211156107ec5760405162461bcd60e51b815260206004820152602a60248201527f427579207461782073686f756c64206265206c657373207468616e206f7220656044820152697175616c20746f20333560b01b606482015260840161077f565b60238111156108515760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207461782073686f756c64206265206c657373207468616e206f722060448201526a657175616c20746f20333560a81b606482015260840161077f565b600a91909155600b55565b6000546001600160a01b031633146108865760405162461bcd60e51b815260040161077f90611e1b565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161077f90611e1b565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061092457506013546001600160a01b0316336001600160a01b0316145b61092d57600080fd5b476109378161149f565b50565b6001600160a01b0381166000908152600260205260408120546106e690611540565b6000546001600160a01b031633146109865760405162461bcd60e51b815260040161077f90611e1b565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109fa5760405162461bcd60e51b815260040161077f90611e1b565b640ba43b7400811015610a4f5760405162461bcd60e51b815260206004820181905260248201527f4d61782054786e2063616e2774206265206c657373207468616e20302e352520604482015260640161077f565b601655565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b815260040161077f90611e1b565b6509184e72a0006017819055601655565b6000546001600160a01b03163314610ab95760405162461bcd60e51b815260040161077f90611e1b565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610b015760405162461bcd60e51b815260040161077f90611e1b565b601280546001600160a01b039384166001600160a01b03199182161790915560138054929093169116179055565b6000546001600160a01b03163314610b595760405162461bcd60e51b815260040161077f90611e1b565b601855565b60006106e2338484610f4c565b6012546001600160a01b0316336001600160a01b03161480610ba057506013546001600160a01b0316336001600160a01b0316145b610ba957600080fd5b6000610bb43061093a565b9050610937816115c4565b6000546001600160a01b03163314610be95760405162461bcd60e51b815260040161077f90611e1b565b60005b82811015610c5a578160056000868685818110610c0b57610c0b611e50565b9050602002016020810190610c209190611cf8565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c5281611e7c565b915050610bec565b50505050565b6000546001600160a01b03163314610c8a5760405162461bcd60e51b815260040161077f90611e1b565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b6000546001600160a01b03163314610cd85760405162461bcd60e51b815260040161077f90611e1b565b640ba43b7400811015610d395760405162461bcd60e51b815260206004820152602360248201527f4d61782057616c6c65742063616e2774206265206c657373207468616e20302e60448201526201a92960ed1b606482015260840161077f565b601755565b6000546001600160a01b03163314610d685760405162461bcd60e51b815260040161077f90611e1b565b6001600160a01b038116610dcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161077f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e8a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161077f565b6001600160a01b038216610eeb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161077f565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fb05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161077f565b6001600160a01b0382166110125760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161077f565b600081116110745760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161077f565b600080546001600160a01b038581169116148061109e57506000546001600160a01b038481169116145b90508061138157601554600160a01b900460ff16611139576000546001600160a01b038581169116146111395760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161077f565b60165482111561118b5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161077f565b6001600160a01b03841660009081526010602052604090205460ff161580156111cd57506001600160a01b03831660009081526010602052604090205460ff16155b6112255760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161077f565b6015546001600160a01b038481169116146112aa57601754826112478561093a565b6112519190611e97565b106112aa5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161077f565b60006112b53061093a565b6018546016549192508210159082106112ce5760165491505b8080156112e55750601554600160a81b900460ff16155b80156112ff57506015546001600160a01b03878116911614155b80156113145750601554600160b01b900460ff165b801561133957506001600160a01b03861660009081526005602052604090205460ff16155b801561135e57506001600160a01b03851660009081526005602052604090205460ff16155b1561137e5761136c826115c4565b47801561137c5761137c4761149f565b505b50505b6001600160a01b03841660009081526005602052604090205460019060ff16806113c357506001600160a01b03841660009081526005602052604090205460ff165b806113cb5750815b156113d857506000611452565b6015546001600160a01b03868116911614801561140357506014546001600160a01b03858116911614155b1561141557600654600c55600a54600d555b6015546001600160a01b03858116911614801561144057506014546001600160a01b03868116911614155b1561145257600754600c55600b54600d555b61145e8585858461174d565b5050505050565b600081848411156114895760405162461bcd60e51b815260040161077f9190611bff565b5060006114968486611eaf565b95945050505050565b6013546001600160a01b03166108fc60646114bb846032611ec6565b6114c59190611ee5565b6040518115909202916000818181858888f193505050501580156114ed573d6000803e3d6000fd5b506012546001600160a01b03166108fc606461150a846032611ec6565b6115149190611ee5565b6040518115909202916000818181858888f1935050505015801561153c573d6000803e3d6000fd5b5050565b60006008548211156115a75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161077f565b60006115b161177b565b90506115bd838261179e565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061160c5761160c611e50565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561166057600080fd5b505afa158015611674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116989190611f07565b816001815181106116ab576116ab611e50565b6001600160a01b0392831660209182029290920101526014546116d19130911684610e28565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061170a908590600090869030904290600401611f24565b600060405180830381600087803b15801561172457600080fd5b505af1158015611738573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b8061175a5761175a6117e0565b61176584848461180e565b80610c5a57610c5a600e54600c55600f54600d55565b6000806000611788611905565b9092509050611797828261179e565b9250505090565b60006115bd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611941565b600c541580156117f05750600d54155b156117f757565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806118208761196f565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061185290876119cc565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118819086611a0e565b6001600160a01b0389166000908152600260205260409020556118a381611a6d565b6118ad8483611ab7565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118f291815260200190565b60405180910390a3505050505050505050565b60085460009081906509184e72a00061191e828261179e565b821015611938575050600854926509184e72a00092509050565b90939092509050565b600081836119625760405162461bcd60e51b815260040161077f9190611bff565b5060006114968486611ee5565b600080600080600080600080600061198c8a600c54600d54611adb565b925092509250600061199c61177b565b905060008060006119af8e878787611b30565b919e509c509a509598509396509194505050505091939550919395565b60006115bd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611465565b600080611a1b8385611e97565b9050838110156115bd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161077f565b6000611a7761177b565b90506000611a858383611b80565b30600090815260026020526040902054909150611aa29082611a0e565b30600090815260026020526040902055505050565b600854611ac490836119cc565b600855600954611ad49082611a0e565b6009555050565b6000808080611af56064611aef8989611b80565b9061179e565b90506000611b086064611aef8a89611b80565b90506000611b2082611b1a8b866119cc565b906119cc565b9992985090965090945050505050565b6000808080611b3f8886611b80565b90506000611b4d8887611b80565b90506000611b5b8888611b80565b90506000611b6d82611b1a86866119cc565b939b939a50919850919650505050505050565b600082611b8f575060006106e6565b6000611b9b8385611ec6565b905082611ba88583611ee5565b146115bd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161077f565b600060208083528351808285015260005b81811015611c2c57858101830151858201604001528201611c10565b81811115611c3e576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461093757600080fd5b60008060408385031215611c7c57600080fd5b8235611c8781611c54565b946020939093013593505050565b600080600060608486031215611caa57600080fd5b8335611cb581611c54565b92506020840135611cc581611c54565b929592945050506040919091013590565b60008060408385031215611ce957600080fd5b50508035926020909101359150565b600060208284031215611d0a57600080fd5b81356115bd81611c54565b80358015158114611d2557600080fd5b919050565b600060208284031215611d3c57600080fd5b6115bd82611d15565b600060208284031215611d5757600080fd5b5035919050565b60008060408385031215611d7157600080fd5b8235611d7c81611c54565b91506020830135611d8c81611c54565b809150509250929050565b600080600060408486031215611dac57600080fd5b833567ffffffffffffffff80821115611dc457600080fd5b818601915086601f830112611dd857600080fd5b813581811115611de757600080fd5b8760208260051b8501011115611dfc57600080fd5b602092830195509350611e129186019050611d15565b90509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611e9057611e90611e66565b5060010190565b60008219821115611eaa57611eaa611e66565b500190565b600082821015611ec157611ec1611e66565b500390565b6000816000190483118215151615611ee057611ee0611e66565b500290565b600082611f0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f1957600080fd5b81516115bd81611c54565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f745784516001600160a01b031683529383019391830191600101611f4f565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d3e20b7224993e1f776f940a7b708a73cbcc2fb507c0612c4e19cc5b11a54abe64736f6c63430008090033
Deployed Bytecode Sourcemap
4235:14200:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6771:83;;;;;;;;;;-1:-1:-1;6841:5:0;;;;;;;;;;;;-1:-1:-1;;;6841:5:0;;;;6771:83;;;;;;;:::i;:::-;;;;;;;;7696:193;;;;;;;;;;-1:-1:-1;7696:193:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;7696:193:0;1072:187:1;5574:41:0;;;;;;;;;;-1:-1:-1;5574:41:0;;;;-1:-1:-1;;;;;5574:41:0;;;;;;-1:-1:-1;;;;;1454:32:1;;;1436:51;;1424:2;1409:18;5574:41:0;1264:229:1;7048:95:0;;;;;;;;;;-1:-1:-1;4854:15:0;7048:95;;;1644:25:1;;;1632:2;1617:18;7048:95:0;1498:177:1;7897:446:0;;;;;;;;;;-1:-1:-1;7897:446:0;;;;;:::i;:::-;;:::i;5868:50::-;;;;;;;;;;;;;;;;6957:83;;;;;;;;;;-1:-1:-1;6957:83:0;;4445:1;2283:36:1;;2271:2;2256:18;6957:83:0;2141:184:1;5367:96:0;;;;;;;;;;-1:-1:-1;5367:96:0;;;;-1:-1:-1;;;;;5367:96:0;;;5622:28;;;;;;;;;;-1:-1:-1;5622:28:0;;;;-1:-1:-1;;;;;5622:28:0;;;16932:328;;;;;;;;;;-1:-1:-1;16932:328:0;;;;;:::i;:::-;;:::i;:::-;;13199:92;;;;;;;;;;-1:-1:-1;13199:92:0;;;;;:::i;:::-;;:::i;17503:101::-;;;;;;;;;;-1:-1:-1;17503:101:0;;;;;:::i;:::-;;:::i;12861:235::-;;;;;;;;;;;;;:::i;7151:138::-;;;;;;;;;;-1:-1:-1;7151:138:0;;;;;:::i;:::-;;:::i;1722:148::-;;;;;;;;;;;;;:::i;17643:191::-;;;;;;;;;;-1:-1:-1;17643:191:0;;;;;:::i;:::-;;:::i;18053:135::-;;;;;;;;;;;;;:::i;5764:45::-;;;;;;;;;;;;;;;;5317:43;;;;;;;;;;-1:-1:-1;5317:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;5037:33;;;;;;;;;;;;;;;;1508:79;;;;;;;;;;-1:-1:-1;1546:7:0;1573:6;-1:-1:-1;;;;;1573:6:0;1508:79;;12508:101;;;;;;;;;;-1:-1:-1;12508:101:0;;;;;:::i;:::-;;:::i;5816:45::-;;;;;;;;;;;;;;;;13299:227;;;;;;;;;;-1:-1:-1;13299:227:0;;;;;:::i;:::-;;:::i;6862:87::-;;;;;;;;;;-1:-1:-1;6934:7:0;;;;;;;;;;;;-1:-1:-1;;;6934:7:0;;;;6862:87;;17312:139;;;;;;;;;;-1:-1:-1;17312:139:0;;;;;:::i;:::-;;:::i;7297:199::-;;;;;;;;;;-1:-1:-1;7297:199:0;;;;;:::i;:::-;;:::i;4982:32::-;;;;;;;;;;;;;;;;5279:36;;;;;;;;;;-1:-1:-1;5279:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12617:236;;;;;;;;;;;;;:::i;18196:234::-;;;;;;;;;;-1:-1:-1;18196:234:0;;;;;:::i;:::-;;:::i;5471:94::-;;;;;;;;;;-1:-1:-1;5471:94:0;;;;-1:-1:-1;;;;;5471:94:0;;;7504:184;;;;;;;;;;-1:-1:-1;7504:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7653:18:0;;;7621:7;7653:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7504:184;13104:87;;;;;;;;;;-1:-1:-1;13104:87:0;;;;;:::i;:::-;;:::i;17842:203::-;;;;;;;;;;-1:-1:-1;17842:203:0;;;;;:::i;:::-;;:::i;1878:244::-;;;;;;;;;;-1:-1:-1;1878:244:0;;;;;:::i;:::-;;:::i;7696:193::-;7798:4;7820:39;347:10;7843:7;7852:6;7820:8;:39::i;:::-;-1:-1:-1;7877:4:0;7696:193;;;;;:::o;7897:446::-;8029:4;8046:36;8056:6;8064:9;8075:6;8046:9;:36::i;:::-;8093:220;8116:6;347:10;8164:138;8220:6;8164:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8164:19:0;;;;;;:11;:19;;;;;;;;347:10;8164:33;;;;;;;;;;:37;:138::i;:::-;8093:8;:220::i;:::-;-1:-1:-1;8331:4:0;7897:446;;;;;:::o;16932:328::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;;;;;;;;;17042:2:::1;17027:11;:17;;17019:72;;;::::0;-1:-1:-1;;;17019:72:0;;5861:2:1;17019:72:0::1;::::0;::::1;5843:21:1::0;5900:2;5880:18;;;5873:30;5939:34;5919:18;;;5912:62;-1:-1:-1;;;5990:18:1;;;5983:40;6040:19;;17019:72:0::1;5659:406:1::0;17019:72:0::1;17126:2;17110:12;:18;;17102:74;;;::::0;-1:-1:-1;;;17102:74:0;;6272:2:1;17102:74:0::1;::::0;::::1;6254:21:1::0;6311:2;6291:18;;;6284:30;6350:34;6330:18;;;6323:62;-1:-1:-1;;;6401:18:1;;;6394:41;6452:19;;17102:74:0::1;6070:407:1::0;17102:74:0::1;17187:12;:26:::0;;;;17224:13:::1;:28:::0;16932:328::o;13199:92::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13263:12:0::1;13278:5;13263:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13263:20:0::1;::::0;;13199:92::o;17503:101::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;17570:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17570:26:0::1;-1:-1:-1::0;;;;17570:26:0;;::::1;::::0;;;::::1;::::0;;17503:101::o;12861:235::-;12927:19;;-1:-1:-1;;;;;12927:19:0;347:10;-1:-1:-1;;;;;12911:35:0;;:72;;;-1:-1:-1;12966:17:0;;-1:-1:-1;;;;;12966:17:0;347:10;-1:-1:-1;;;;;12950:33:0;;12911:72;12903:81;;;;;;13024:21;13056:32;13024:21;13056:12;:32::i;:::-;12892:204;12861:235::o;7151:138::-;-1:-1:-1;;;;;7264:16:0;;7217:7;7264:16;;;:7;:16;;;;;;7244:37;;:19;:37::i;1722:148::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;1829:1:::1;1813:6:::0;;1792:40:::1;::::0;-1:-1:-1;;;;;1813:6:0;;::::1;::::0;1792:40:::1;::::0;1829:1;;1792:40:::1;1860:1;1843:19:::0;;-1:-1:-1;;;;;;1843:19:0::1;::::0;;1722:148::o;17643:191::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;17740:12:::1;17725:11;:27;;17717:72;;;::::0;-1:-1:-1;;;17717:72:0;;6684:2:1;17717:72:0::1;::::0;::::1;6666:21:1::0;;;6703:18;;;6696:30;6762:34;6742:18;;;6735:62;6814:18;;17717:72:0::1;6482:356:1::0;17717:72:0::1;17800:12;:26:::0;17643:191::o;18053:135::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;18122:15:::1;18105:14;:32:::0;;;18148:12:::1;:32:::0;18053:135::o;12508:101::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;12575:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12575:26:0::1;-1:-1:-1::0;;;;12575:26:0;;::::1;::::0;;;::::1;::::0;;12508:101::o;13299:227::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;13425:19:::1;:43:::0;;-1:-1:-1;;;;;13425:43:0;;::::1;-1:-1:-1::0;;;;;;13425:43:0;;::::1;;::::0;;;13479:17:::1;:39:::0;;;;;::::1;::::0;::::1;;::::0;;13299:227::o;17312:139::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;17403:19:::1;:40:::0;17312:139::o;7297:199::-;7402:4;7424:42;347:10;7448:9;7459:6;7424:9;:42::i;12617:236::-;12683:19;;-1:-1:-1;;;;;12683:19:0;347:10;-1:-1:-1;;;;;12667:35:0;;:72;;;-1:-1:-1;12722:17:0;;-1:-1:-1;;;;;12722:17:0;347:10;-1:-1:-1;;;;;12706:33:0;;12667:72;12659:81;;;;;;12751:23;12777:24;12795:4;12777:9;:24::i;:::-;12751:50;;12812:33;12829:15;12812:16;:33::i;18196:234::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;18313:9:::1;18309:114;18328:19:::0;;::::1;18309:114;;;18403:8;18369:18;:31;18388:8;;18397:1;18388:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18369:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18369:31:0;:42;;-1:-1:-1;;18369:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18349:3;::::1;::::0;::::1;:::i;:::-;;;;18309:114;;;;18196:234:::0;;;:::o;13104:87::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13165:11:0::1;;::::0;;;:4:::1;:11;::::0;;;;:18;;-1:-1:-1;;13165:18:0::1;13179:4;13165:18;::::0;;13104:87::o;17842:203::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;17944:12:::1;17927:13;:29;;17919:77;;;::::0;-1:-1:-1;;;17919:77:0;;7449:2:1;17919:77:0::1;::::0;::::1;7431:21:1::0;7488:2;7468:18;;;7461:30;7527:34;7507:18;;;7500:62;-1:-1:-1;;;7578:18:1;;;7571:33;7621:19;;17919:77:0::1;7247:399:1::0;17919:77:0::1;18007:14;:30:::0;17842:203::o;1878:244::-;1635:6;;-1:-1:-1;;;;;1635:6:0;347:10;1635:22;1627:67;;;;-1:-1:-1;;;1627:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1967:22:0;::::1;1959:73;;;::::0;-1:-1:-1;;;1959:73:0;;7853:2:1;1959:73:0::1;::::0;::::1;7835:21:1::0;7892:2;7872:18;;;7865:30;7931:34;7911:18;;;7904:62;-1:-1:-1;;;7982:18:1;;;7975:36;8028:19;;1959:73:0::1;7651:402:1::0;1959:73:0::1;2069:6;::::0;;2048:38:::1;::::0;-1:-1:-1;;;;;2048:38:0;;::::1;::::0;2069:6;::::1;::::0;2048:38:::1;::::0;::::1;2097:6;:17:::0;;-1:-1:-1;;;;;;2097:17:0::1;-1:-1:-1::0;;;;;2097:17:0;;;::::1;::::0;;;::::1;::::0;;1878:244::o;9034:369::-;-1:-1:-1;;;;;9161:19:0;;9153:68;;;;-1:-1:-1;;;9153:68:0;;8260:2:1;9153:68:0;;;8242:21:1;8299:2;8279:18;;;8272:30;8338:34;8318:18;;;8311:62;-1:-1:-1;;;8389:18:1;;;8382:34;8433:19;;9153:68:0;8058:400:1;9153:68:0;-1:-1:-1;;;;;9240:21:0;;9232:68;;;;-1:-1:-1;;;9232:68:0;;8665:2:1;9232:68:0;;;8647:21:1;8704:2;8684:18;;;8677:30;8743:34;8723:18;;;8716:62;-1:-1:-1;;;8794:18:1;;;8787:32;8836:19;;9232:68:0;8463:398:1;9232:68:0;-1:-1:-1;;;;;9311:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9363:32;;1644:25:1;;;9363:32:0;;1617:18:1;9363:32:0;;;;;;;9034:369;;;:::o;9411:2428::-;-1:-1:-1;;;;;9533:18:0;;9525:68;;;;-1:-1:-1;;;9525:68:0;;9068:2:1;9525:68:0;;;9050:21:1;9107:2;9087:18;;;9080:30;9146:34;9126:18;;;9119:62;-1:-1:-1;;;9197:18:1;;;9190:35;9242:19;;9525:68:0;8866:401:1;9525:68:0;-1:-1:-1;;;;;9612:16:0;;9604:64;;;;-1:-1:-1;;;9604:64:0;;9474:2:1;9604:64:0;;;9456:21:1;9513:2;9493:18;;;9486:30;9552:34;9532:18;;;9525:62;-1:-1:-1;;;9603:18:1;;;9596:33;9646:19;;9604:64:0;9272:399:1;9604:64:0;9696:1;9687:6;:10;9679:64;;;;-1:-1:-1;;;9679:64:0;;9878:2:1;9679:64:0;;;9860:21:1;9917:2;9897:18;;;9890:30;9956:34;9936:18;;;9929:62;-1:-1:-1;;;10007:18:1;;;10000:39;10056:19;;9679:64:0;9676:405:1;9679:64:0;9820:23;1573:6;;-1:-1:-1;;;;;9847:15:0;;;1573:6;;9847:15;;:32;;-1:-1:-1;1546:7:0;1573:6;-1:-1:-1;;;;;9866:13:0;;;1573:6;;9866:13;9847:32;9820:60;;9898:18;9893:1247;;9974:11;;-1:-1:-1;;;9974:11:0;;;;9969:144;;1546:7;1573:6;-1:-1:-1;;;;;10014:15:0;;;1573:6;;10014:15;10006:91;;;;-1:-1:-1;;;10006:91:0;;10288:2:1;10006:91:0;;;10270:21:1;10327:2;10307:18;;;10300:30;10366:34;10346:18;;;10339:62;10437:33;10417:18;;;10410:61;10488:19;;10006:91:0;10086:427:1;10006:91:0;10147:12;;10137:6;:22;;10129:63;;;;-1:-1:-1;;;10129:63:0;;10720:2:1;10129:63:0;;;10702:21:1;10759:2;10739:18;;;10732:30;10798;10778:18;;;10771:58;10846:18;;10129:63:0;10518:352:1;10129:63:0;-1:-1:-1;;;;;10216:10:0;;;;;;:4;:10;;;;;;;;10215:11;:24;;;;-1:-1:-1;;;;;;10231:8:0;;;;;;:4;:8;;;;;;;;10230:9;10215:24;10207:72;;;;-1:-1:-1;;;10207:72:0;;11077:2:1;10207:72:0;;;11059:21:1;11116:2;11096:18;;;11089:30;11155:34;11135:18;;;11128:62;-1:-1:-1;;;11206:18:1;;;11199:33;11249:19;;10207:72:0;10875:399:1;10207:72:0;10305:13;;-1:-1:-1;;;;;10299:19:0;;;10305:13;;10299:19;10296:146;;10372:14;;10363:6;10347:13;10357:2;10347:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10339:87;;;;-1:-1:-1;;;10339:87:0;;11614:2:1;10339:87:0;;;11596:21:1;11653:2;11633:18;;;11626:30;11692:34;11672:18;;;11665:62;-1:-1:-1;;;11743:18:1;;;11736:33;11786:19;;10339:87:0;11412:399:1;10339:87:0;10458:28;10489:24;10507:4;10489:9;:24::i;:::-;10567:19;;10630:12;;10458:55;;-1:-1:-1;10543:43:0;;;;10606:36;;10603:124;;10699:12;;10676:35;;10603:124;10747:7;:18;;;;-1:-1:-1;10759:6:0;;-1:-1:-1;;;10759:6:0;;;;10758:7;10747:18;:43;;;;-1:-1:-1;10777:13:0;;-1:-1:-1;;;;;10769:21:0;;;10777:13;;10769:21;;10747:43;:58;;;;-1:-1:-1;10794:11:0;;-1:-1:-1;;;10794:11:0;;;;10747:58;:87;;;;-1:-1:-1;;;;;;10810:24:0;;;;;;:18;:24;;;;;;;;10809:25;10747:87;:114;;;;-1:-1:-1;;;;;;10839:22:0;;;;;;:18;:22;;;;;;;;10838:23;10747:114;10743:386;;;10882:38;10899:20;10882:16;:38::i;:::-;10968:21;11012:22;;11008:106;;11059:35;11072:21;11059:12;:35::i;:::-;10863:266;10743:386;9918:1222;;9893:1247;-1:-1:-1;;;;;11217:24:0;;11152:12;11217:24;;;:18;:24;;;;;;11167:4;;11217:24;;;:50;;-1:-1:-1;;;;;;11245:22:0;;;;;;:18;:22;;;;;;;;11217:50;11216:74;;;;11272:18;11216:74;11212:566;;;-1:-1:-1;11317:5:0;11212:566;;;11401:13;;-1:-1:-1;;;;;11393:21:0;;;11401:13;;11393:21;:55;;;;-1:-1:-1;11432:15:0;;-1:-1:-1;;;;;11418:30:0;;;11432:15;;11418:30;;11393:55;11390:162;;;11481:14;;11469:9;:26;11524:12;;11514:7;:22;11390:162;11612:13;;-1:-1:-1;;;;;11606:19:0;;;11612:13;;11606:19;:55;;;;-1:-1:-1;11645:15:0;;-1:-1:-1;;;;;11629:32:0;;;11645:15;;11629:32;;11606:55;11602:165;;;11694:15;;11682:9;:27;11738:13;;11728:7;:23;11602:165;11790:41;11805:4;11811:2;11815:6;11823:7;11790:14;:41::i;:::-;9514:2325;;9411:2428;;;:::o;2486:224::-;2606:7;2642:12;2634:6;;;;2626:29;;;;-1:-1:-1;;;2626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2666:9:0;2678:5;2682:1;2678;:5;:::i;:::-;2666:17;2486:224;-1:-1:-1;;;;;2486:224:0:o;12340:160::-;12397:17;;-1:-1:-1;;;;;12397:17:0;:41;12434:3;12424:9;:6;12431:2;12424:9;:::i;:::-;:13;;;;:::i;:::-;12397:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12449:19:0;;-1:-1:-1;;;;;12449:19:0;:43;12488:3;12478:9;:6;12485:2;12478:9;:::i;:::-;:13;;;;:::i;:::-;12449:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12340:160;:::o;8351:323::-;8446:7;8504;;8493;:18;;8471:110;;;;-1:-1:-1;;;8471:110:0;;12543:2:1;8471:110:0;;;12525:21:1;12582:2;12562:18;;;12555:30;12621:34;12601:18;;;12594:62;-1:-1:-1;;;12672:18:1;;;12665:40;12722:19;;8471:110:0;12341:406:1;8471:110:0;8592:19;8614:10;:8;:10::i;:::-;8592:32;-1:-1:-1;8642:24:0;:7;8592:32;8642:11;:24::i;:::-;8635:31;8351:323;-1:-1:-1;;;8351:323:0:o;11849:483::-;6012:6;:13;;-1:-1:-1;;;;6012:13:0;-1:-1:-1;;;6012:13:0;;;11951:16:::1;::::0;;11965:1:::1;11951:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11951:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11951:16:0::1;11927:40;;11996:4;11978;11983:1;11978:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11978:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12022:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12022:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11978:7;;12022:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12012:4;12017:1;12012:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12012:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12087:15:::1;::::0;12055:62:::1;::::0;12072:4:::1;::::0;12087:15:::1;12105:11:::0;12055:8:::1;:62::i;:::-;12128:15;::::0;:196:::1;::::0;-1:-1:-1;;;12128:196:0;;-1:-1:-1;;;;;12128:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12209:11;;12128:15:::1;::::0;12251:4;;12278::::1;::::0;12298:15:::1;::::0;12128:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6048:6:0;:14;;-1:-1:-1;;;;6048:14:0;;;-1:-1:-1;;;;11849:483:0:o;13534:282::-;13690:7;13685:28;;13699:14;:12;:14::i;:::-;13724:44;13742:6;13750:9;13761:6;13724:17;:44::i;:::-;13784:7;13779:29;;13793:15;8965:17;;8953:9;:29;9003:15;;8993:7;:25;8909:117;16495:164;16537:7;16558:15;16575;16594:19;:17;:19::i;:::-;16557:56;;-1:-1:-1;16557:56:0;-1:-1:-1;16631:20:0;16557:56;;16631:11;:20::i;:::-;16624:27;;;;16495:164;:::o;2972:132::-;3030:7;3057:39;3061:1;3064;3057:39;;;;;;;;;;;;;;;;;:3;:39::i;8682:219::-;8729:9;;:14;:30;;;;-1:-1:-1;8747:7:0;;:12;8729:30;8725:43;;;8682:219::o;8725:43::-;8800:9;;;8780:17;:29;8838:7;;;8820:15;:25;-1:-1:-1;8858:13:0;;;;8882:11;8682:219::o;13824:610::-;13971:15;14001:23;14039:12;14066:23;14104:12;14131:13;14158:19;14169:7;14158:10;:19::i;:::-;-1:-1:-1;;;;;14206:15:0;;;;;;:7;:15;;;;;;13956:221;;-1:-1:-1;13956:221:0;;-1:-1:-1;13956:221:0;;-1:-1:-1;13956:221:0;-1:-1:-1;13956:221:0;-1:-1:-1;13956:221:0;-1:-1:-1;14206:28:0;;13956:221;14206:19;:28::i;:::-;-1:-1:-1;;;;;14188:15:0;;;;;;;:7;:15;;;;;;:46;;;;14266:18;;;;;;;:39;;14289:15;14266:22;:39::i;:::-;-1:-1:-1;;;;;14245:18:0;;;;;;:7;:18;;;;;:60;14316:16;14326:5;14316:9;:16::i;:::-;14343:23;14355:4;14361;14343:11;:23::i;:::-;14399:9;-1:-1:-1;;;;;14382:44:0;14391:6;-1:-1:-1;;;;;14382:44:0;;14410:15;14382:44;;;;1644:25:1;;1632:2;1617:18;;1498:177;14382:44:0;;;;;;;;13945:489;;;;;;13824:610;;;:::o;16667:257::-;16765:7;;16718;;;;4854:15;16833:20;16765:7;4854:15;16833:11;:20::i;:::-;16823:7;:30;16819:61;;;-1:-1:-1;;16863:7:0;;;4854:15;;-1:-1:-1;16667:257:0;-1:-1:-1;16667:257:0:o;16819:61::-;16899:7;;16908;;-1:-1:-1;16667:257:0;-1:-1:-1;16667:257:0:o;3112:223::-;3232:7;3267:12;3260:5;3252:28;;;;-1:-1:-1;;;3252:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3291:9:0;3303:5;3307:1;3303;:5;:::i;14853:615::-;14953:7;14975;14997;15019;15041;15063;15099:23;15124:12;15138:13;15168:40;15180:7;15189:9;;15200:7;;15168:11;:40::i;:::-;15098:110;;;;;;15219:19;15241:10;:8;:10::i;:::-;15219:32;;15263:15;15280:23;15305:12;15334:46;15346:7;15355:4;15361:5;15368:11;15334;:46::i;:::-;15262:118;;-1:-1:-1;15262:118:0;-1:-1:-1;15262:118:0;-1:-1:-1;15431:15:0;;-1:-1:-1;15448:4:0;;-1:-1:-1;15454:5:0;;-1:-1:-1;;;;;14853:615:0;;;;;;;:::o;2342:136::-;2400:7;2427:43;2431:1;2434;2427:43;;;;;;;;;;;;;;;;;:3;:43::i;2155:179::-;2213:7;;2245:5;2249:1;2245;:5;:::i;:::-;2233:17;;2274:1;2269;:6;;2261:46;;;;-1:-1:-1;;;2261:46:0;;14327:2:1;2261:46:0;;;14309:21:1;14366:2;14346:18;;;14339:30;14405:29;14385:18;;;14378:57;14452:18;;2261:46:0;14125:351:1;14442:211:0;14495:19;14517:10;:8;:10::i;:::-;14495:32;-1:-1:-1;14538:13:0;14554:22;:5;14495:32;14554:9;:22::i;:::-;14628:4;14612:22;;;;:7;:22;;;;;;14538:38;;-1:-1:-1;14612:33:0;;14538:38;14612:26;:33::i;:::-;14603:4;14587:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14442:211:0:o;14661:147::-;14739:7;;:17;;14751:4;14739:11;:17::i;:::-;14729:7;:27;14780:10;;:20;;14795:4;14780:14;:20::i;:::-;14767:10;:33;-1:-1:-1;;14661:147:0:o;15476:469::-;15645:7;;;;15739:30;15765:3;15739:21;:7;15751:8;15739:11;:21::i;:::-;:25;;:30::i;:::-;15724:45;-1:-1:-1;15780:13:0;15796:28;15820:3;15796:19;:7;15808:6;15796:11;:19::i;:28::-;15780:44;-1:-1:-1;15835:23:0;15861:28;15780:44;15861:17;:7;15873:4;15861:11;:17::i;:::-;:21;;:28::i;:::-;15835:54;15925:4;;-1:-1:-1;15931:5:0;;-1:-1:-1;15476:469:0;;-1:-1:-1;;;;;15476:469:0:o;15953:534::-;16147:7;;;;16244:24;:7;16256:11;16244;:24::i;:::-;16226:42;-1:-1:-1;16279:12:0;16294:21;:4;16303:11;16294:8;:21::i;:::-;16279:36;-1:-1:-1;16326:13:0;16342:22;:5;16352:11;16342:9;:22::i;:::-;16326:38;-1:-1:-1;16375:23:0;16401:28;16326:38;16401:17;:7;16413:4;16401:11;:17::i;:28::-;16448:7;;;;-1:-1:-1;16474:4:0;;-1:-1:-1;15953:534:0;;-1:-1:-1;;;;;;;15953:534:0:o;2718:246::-;2776:7;2800:6;2796:47;;-1:-1:-1;2830:1:0;2823:8;;2796:47;2853:9;2865:5;2869:1;2865;:5;:::i;:::-;2853:17;-1:-1:-1;2898:1:0;2889:5;2893:1;2853:17;2889:5;:::i;:::-;:10;2881:56;;;;-1:-1:-1;;;2881:56:0;;14683:2:1;2881:56:0;;;14665:21:1;14722:2;14702:18;;;14695:30;14761:34;14741:18;;;14734:62;-1:-1:-1;;;14812:18:1;;;14805:31;14853:19;;2881:56:0;14481:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1680:456::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1881:9;1868:23;1900:31;1925:5;1900:31;:::i;:::-;1950:5;-1:-1:-1;2007:2:1;1992:18;;1979:32;2020:33;1979:32;2020:33;:::i;:::-;1680:456;;2072:7;;-1:-1:-1;;;2126:2:1;2111:18;;;;2098:32;;1680:456::o;2762:248::-;2830:6;2838;2891:2;2879:9;2870:7;2866:23;2862:32;2859:52;;;2907:1;2904;2897:12;2859:52;-1:-1:-1;;2930:23:1;;;3000:2;2985:18;;;2972:32;;-1:-1:-1;2762:248:1:o;3015:247::-;3074:6;3127:2;3115:9;3106:7;3102:23;3098:32;3095:52;;;3143:1;3140;3133:12;3095:52;3182:9;3169:23;3201:31;3226:5;3201:31;:::i;3267:160::-;3332:20;;3388:13;;3381:21;3371:32;;3361:60;;3417:1;3414;3407:12;3361:60;3267:160;;;:::o;3432:180::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3580:26;3596:9;3580:26;:::i;3617:180::-;3676:6;3729:2;3717:9;3708:7;3704:23;3700:32;3697:52;;;3745:1;3742;3735:12;3697:52;-1:-1:-1;3768:23:1;;3617:180;-1:-1:-1;3617:180:1:o;3802:404::-;3886:6;3894;3947:2;3935:9;3926:7;3922:23;3918:32;3915:52;;;3963:1;3960;3953:12;3915:52;4002:9;3989:23;4021:31;4046:5;4021:31;:::i;:::-;4071:5;-1:-1:-1;4128:2:1;4113:18;;4100:32;4141:33;4100:32;4141:33;:::i;:::-;4193:7;4183:17;;;3802:404;;;;;:::o;4211:689::-;4303:6;4311;4319;4372:2;4360:9;4351:7;4347:23;4343:32;4340:52;;;4388:1;4385;4378:12;4340:52;4428:9;4415:23;4457:18;4498:2;4490:6;4487:14;4484:34;;;4514:1;4511;4504:12;4484:34;4552:6;4541:9;4537:22;4527:32;;4597:7;4590:4;4586:2;4582:13;4578:27;4568:55;;4619:1;4616;4609:12;4568:55;4659:2;4646:16;4685:2;4677:6;4674:14;4671:34;;;4701:1;4698;4691:12;4671:34;4756:7;4749:4;4739:6;4736:1;4732:14;4728:2;4724:23;4720:34;4717:47;4714:67;;;4777:1;4774;4767:12;4714:67;4808:4;4800:13;;;;-1:-1:-1;4832:6:1;-1:-1:-1;4857:37:1;;4873:20;;;-1:-1:-1;4857:37:1;:::i;:::-;4847:47;;4211:689;;;;;:::o;5298:356::-;5500:2;5482:21;;;5519:18;;;5512:30;5578:34;5573:2;5558:18;;5551:62;5645:2;5630:18;;5298:356::o;6843:127::-;6904:10;6899:3;6895:20;6892:1;6885:31;6935:4;6932:1;6925:15;6959:4;6956:1;6949:15;6975:127;7036:10;7031:3;7027:20;7024:1;7017:31;7067:4;7064:1;7057:15;7091:4;7088:1;7081:15;7107:135;7146:3;-1:-1:-1;;7167:17:1;;7164:43;;;7187:18;;:::i;:::-;-1:-1:-1;7234:1:1;7223:13;;7107:135::o;11279:128::-;11319:3;11350:1;11346:6;11343:1;11340:13;11337:39;;;11356:18;;:::i;:::-;-1:-1:-1;11392:9:1;;11279:128::o;11816:125::-;11856:4;11884:1;11881;11878:8;11875:34;;;11889:18;;:::i;:::-;-1:-1:-1;11926:9:1;;11816:125::o;11946:168::-;11986:7;12052:1;12048;12044:6;12040:14;12037:1;12034:21;12029:1;12022:9;12015:17;12011:45;12008:71;;;12059:18;;:::i;:::-;-1:-1:-1;12099:9:1;;11946:168::o;12119:217::-;12159:1;12185;12175:132;;12229:10;12224:3;12220:20;12217:1;12210:31;12264:4;12261:1;12254:15;12292:4;12289:1;12282:15;12175:132;-1:-1:-1;12321:9:1;;12119:217::o;12884:251::-;12954:6;13007:2;12995:9;12986:7;12982:23;12978:32;12975:52;;;13023:1;13020;13013:12;12975:52;13055:9;13049:16;13074:31;13099:5;13074:31;:::i;13140:980::-;13402:4;13450:3;13439:9;13435:19;13481:6;13470:9;13463:25;13507:2;13545:6;13540:2;13529:9;13525:18;13518:34;13588:3;13583:2;13572:9;13568:18;13561:31;13612:6;13647;13641:13;13678:6;13670;13663:22;13716:3;13705:9;13701:19;13694:26;;13755:2;13747:6;13743:15;13729:29;;13776:1;13786:195;13800:6;13797:1;13794:13;13786:195;;;13865:13;;-1:-1:-1;;;;;13861:39:1;13849:52;;13956:15;;;;13921:12;;;;13897:1;13815:9;13786:195;;;-1:-1:-1;;;;;;;14037:32:1;;;;14032:2;14017:18;;14010:60;-1:-1:-1;;;14101:3:1;14086:19;14079:35;13998:3;13140:980;-1:-1:-1;;;13140:980:1:o
Swarm Source
ipfs://d3e20b7224993e1f776f940a7b708a73cbcc2fb507c0612c4e19cc5b11a54abe
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.