Overview
Max Total Supply
100,000,000 SWEEP
Holders
287 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,492.69755247 SWEEPValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SweepCapital
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-26 */ pragma solidity ^0.8.12; pragma experimental ABIEncoderV2; // SPDX-License-Identifier:MIT // ERC20 token standard interface 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 ); } // Dex Factory contract interface interface IUniswapFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } // Dex Router02 contract interface interface IUniswapRouter { 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 ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // Main token Contract contract SweepCapital is Context, IERC20, Ownable { using SafeMath for uint256; // all private variables and functions are only for contract use mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 10 * 1e7 * 1e9; // 100 Million total supply uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public maxHodingAmount = 2000000000000001; //2% of 100 Million string private _name = "Sweep Capital"; // token name string private _symbol = "SWEEP"; // token ticker uint8 private _decimals = 9; // token decimals IUniswapRouter public dexRouter; // Dex router address address public dexPair; // LP token address mapping(address => bool) private _isUniswapPair; address payable public teamWallet; //team wallet bool public reflectionFees = true; // should be false to charge fee // Normal sell tax fee uint256 public _holderRedistributionFee = 40; // 4% will be distributed among holder as token divideneds uint256 public _teamWalletFee = 60; // 6% will be added to the team pool // for smart contract use uint256 private _currentRedistributionFee; uint256 private _currentTeamWalletFee; //for buy back uint256 private _numOfTokensToExchangeForTeam = 100*10**9; bool private inSwap; bool public swapEnabled = true; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } // constructor for initializing the contract constructor( ) { _rOwned[owner()] = _rTotal; teamWallet = payable(0x030f38B50F11E3B580c952792904F0907b5702b6); IUniswapRouter _dexRouter = IUniswapRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); // Create a Dex pair for this new token dexPair = IUniswapFactory(_dexRouter.factory()).createPair( address(this), _dexRouter.WETH() ); // set the rest of the contract variables dexRouter = _dexRouter; //exclude owner and this contract from fee _isExcludedFromFee[owner()] = true; _isExcludedFromFee[teamWallet] = true; _isExcludedFromFee[address(this)] = true; emit Transfer(address(0), owner(), _tTotal); } // token standards by Blockchain function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue) ); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub( subtractedValue, "ERC20: decreased allowance below zero" ) ); return true; } // public view able functions // to check wether the address is excluded from fee or not function isExcludedFromFee(address _account) public view returns (bool) { return _isExcludedFromFee[_account]; } // to check how much tokens get redistributed among holders till now function totalHolderDistribution() public view returns (uint256) { return _tFeeTotal; } // For manual distribution to the holders function deliver(uint256 tAmount) public { address sender = _msgSender(); uint256 rAmount = tAmount.mul(_getRate()); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rTotal = _rTotal.sub(rAmount); _tFeeTotal = _tFeeTotal.add(tAmount); } function tokenFromReflection(uint256 rAmount) public view returns (uint256) { require( rAmount <= _rTotal, "ERC20: Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } //to receive ETH from dexRouter when swapping receive() external payable {} // internal functions for contract use function totalFeePerTx(uint256 tAmount) internal view returns (uint256) { uint256 percentage = tAmount .mul( _currentRedistributionFee .add(_currentTeamWalletFee) ) .div(1e3); return percentage; } function _getRate() private view returns (uint256) { return _rTotal.div(_tTotal); } function removeAllFee() private { _currentRedistributionFee = 0; _currentTeamWalletFee = 0; } function setTaxationFee() private { _currentRedistributionFee = _holderRedistributionFee; _currentTeamWalletFee = _teamWalletFee; } 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); } // base function to transafer tokens 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, "ERC20: transfer amount must be greater than zero"); // is the token balance of this contract address over the min number of // tokens that we need to initiate a swap? // also, don't get caught in a circular team event. // also, don't swap if sender is uniswap pair. uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance > maxHodingAmount) { contractTokenBalance = maxHodingAmount; } bool overMinTokenBalance = contractTokenBalance >_numOfTokensToExchangeForTeam; if ( !inSwap && swapEnabled && overMinTokenBalance && from != dexPair || _isUniswapPair[from] ) { // We need to swap the current tokens to ETH and send to the team wallet swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToTeam(address(this).balance); } } //indicates if fee should be deducted from transfer bool takeFee = false; // take fee only on swaps if ( (from == dexPair || to == dexPair || _isUniswapPair[to] || _isUniswapPair[from]) && !(_isExcludedFromFee[from] || _isExcludedFromFee[to]) ) { takeFee = true; } if(!(from == owner() || to == owner())){ //check balance for other not the dex. if(to!=dexPair && !_isUniswapPair[to] && !_isExcludedFromFee[to]){ require(amount + balanceOf(to) < maxHodingAmount, "ERC20:Wallet Cannot hold more than 2% of total supply."); } } //transfer amount, it will take tax, burn, liquidity fee _tokenTransfer(from, to, amount, takeFee); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if((recipient == dexPair || sender == dexPair ) && takeFee ){ setTaxationFee(); } else{ removeAllFee(); } _transferStandard(sender, recipient, amount); } // if both sender and receiver are not excluded from reward function _transferStandard( address sender, address recipient, uint256 tAmount ) private { uint256 currentRate = _getRate(); uint256 tTransferAmount = tAmount.sub(totalFeePerTx(tAmount)); uint256 rAmount = tAmount.mul(currentRate); uint256 rTransferAmount = rAmount.sub( totalFeePerTx(tAmount).mul(currentRate) ); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeamWalletFee(tAmount, currentRate); _reflectFee(tAmount); emit Transfer(sender, recipient, tTransferAmount); } // take fees for teamWallet function _takeTeamWalletFee( uint256 tAmount, uint256 currentRate ) internal { uint256 tFee = tAmount.mul(_currentTeamWalletFee).div(1e3); uint256 rFee = tFee.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rFee); } // for automatic redistribution among all holders on each tx function _reflectFee(uint256 tAmount) private { uint256 tFee = tAmount.mul(_currentRedistributionFee).div(1e3); uint256 rFee = tFee.mul(_getRate()); _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); _approve(address(this), address(dexRouter), tokenAmount); // make the swap dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function sendETHToTeam(uint256 amount) private { (bool os, ) = payable(teamWallet).call{value: amount}(""); require(os); } function isUniswapPair(address _pair) external view returns (bool) { if (_pair == dexPair) return true; return _isUniswapPair[_pair]; } function addUniswapPair(address _pair) external onlyOwner { _isUniswapPair[_pair] = true; } function removeUniswapPair(address _pair) external onlyOwner { _isUniswapPair[_pair] = false; } // owner can change router and pair address function setRoute(IUniswapRouter _router, address _pair) external onlyOwner { dexRouter = _router; dexPair = _pair; } //input 10 for 1 percent function setRedistributionFee(uint256 _fee) external onlyOwner { _holderRedistributionFee = _fee; } //input 10 for 1 percent function setTeamWalletFee(uint256 _teamFee) external onlyOwner { _teamWalletFee = _teamFee; } function excludeFromFee(address account) external onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) external onlyOwner { _isExcludedFromFee[account] = false; } function flipSwapEnable() external onlyOwner{ if(swapEnabled) swapEnabled = false; else swapEnabled = true; } } 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) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
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":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":[],"name":"_holderRedistributionFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamWalletFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"addUniswapPair","outputs":[],"stateMutability":"nonpayable","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipSwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"isUniswapPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHodingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reflectionFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"removeUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setRedistributionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IUniswapRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"setRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"}],"name":"setTeamWalletFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","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":"teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalHolderDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405267016345785d8a0000600581905562000020906000196200047d565b6200002e90600019620004a0565b60065566071afd498d000160085560408051808201909152600d8082526c14ddd9595c0810d85c1a5d185b609a1b60209092019182526200007291600991620003d7565b5060408051808201909152600580825264053574545560dc1b6020909201918252620000a191600a91620003d7565b50600b805460ff19166009179055600e805460ff60a01b1916600160a01b1790556028600f55603c60105564174876e8006013556014805461ff001916610100179055348015620000f157600080fd5b50620000fd3362000387565b60065460016000620001176000546001600160a01b031690565b6001600160a01b03168152602080820192909252604090810160002092909255600e80546001600160a01b03191673030f38b50f11e3b580c952792904f0907b5702b6179055815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf9190620004c6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002439190620004c6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620004c6565b600c80546001600160a01b0319166001600160a01b03928316179055600b8054610100600160a81b03191661010084841602179055600080548216815260046020526040808220805460ff199081166001908117909255600e54851684528284208054821683179055308452918320805490921617905554166001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200037891815260200190565b60405180910390a35062000535565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620003e590620004f8565b90600052602060002090601f01602090048101928262000409576000855562000454565b82601f106200042457805160ff191683800117855562000454565b8280016001018555821562000454579182015b828111156200045457825182559160200191906001019062000437565b506200046292915062000466565b5090565b5b8082111562000462576000815560010162000467565b6000826200049b57634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620004c157634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620004d957600080fd5b81516001600160a01b0381168114620004f157600080fd5b9392505050565b600181811c908216806200050d57607f821691505b602082108114156200052f57634e487b7160e01b600052602260045260246000fd5b50919050565b611bc480620005456000396000f3fe6080604052600436106102085760003560e01c80636ddd171311610118578063a6931ed7116100a0578063ea2f0b371161006f578063ea2f0b371461060c578063f17bd9871461062c578063f242ab411461064c578063f2fde38b1461066c578063fcf0c9c61461068c57600080fd5b8063a6931ed714610566578063a7f404e214610586578063a9059cbb146105a6578063dd62ed3e146105c657600080fd5b80638da5cb5b116100e75780638da5cb5b146104d357806395d89b41146104f15780639cece12e14610506578063a15224ff14610526578063a457c2d71461054657600080fd5b80636ddd17131461046a57806370a0823114610489578063715018a6146104a95780637ffd7fad146104be57600080fd5b8063313ce5671161019b57806350a64fcd1161016a57806350a64fcd146103d05780635342acb4146103e5578063599270441461041e5780635f42ef2a1461043e578063617c98e21461045457600080fd5b8063313ce5671461034e57806339509351146103705780633bd5d17314610390578063437823ec146103b057600080fd5b806318160ddd116101d757806318160ddd146102ce5780631d714470146102ed57806323b872dd1461030e5780632d8381191461032e57600080fd5b80630505e94d1461021457806306fdde03146102365780630758d92414610261578063095ea7b31461029e57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061023461022f366004611876565b6106a2565b005b34801561024257600080fd5b5061024b61070d565b60405161025891906118af565b60405180910390f35b34801561026d57600080fd5b50600b546102869061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102aa57600080fd5b506102be6102b9366004611904565b61079f565b6040519015158152602001610258565b3480156102da57600080fd5b506005545b604051908152602001610258565b3480156102f957600080fd5b50600e546102be90600160a01b900460ff1681565b34801561031a57600080fd5b506102be610329366004611930565b6107b6565b34801561033a57600080fd5b506102df610349366004611971565b61081f565b34801561035a57600080fd5b50600b5460405160ff9091168152602001610258565b34801561037c57600080fd5b506102be61038b366004611904565b6108aa565b34801561039c57600080fd5b506102346103ab366004611971565b6108e0565b3480156103bc57600080fd5b506102346103cb36600461198a565b610959565b3480156103dc57600080fd5b506007546102df565b3480156103f157600080fd5b506102be61040036600461198a565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561042a57600080fd5b50600e54610286906001600160a01b031681565b34801561044a57600080fd5b506102df600f5481565b34801561046057600080fd5b506102df60085481565b34801561047657600080fd5b506014546102be90610100900460ff1681565b34801561049557600080fd5b506102df6104a436600461198a565b6109a7565b3480156104b557600080fd5b506102346109c9565b3480156104ca57600080fd5b506102346109ff565b3480156104df57600080fd5b506000546001600160a01b0316610286565b3480156104fd57600080fd5b5061024b610a57565b34801561051257600080fd5b506102be61052136600461198a565b610a66565b34801561053257600080fd5b50610234610541366004611971565b610aa6565b34801561055257600080fd5b506102be610561366004611904565b610ad5565b34801561057257600080fd5b5061023461058136600461198a565b610b24565b34801561059257600080fd5b506102346105a136600461198a565b610b6f565b3480156105b257600080fd5b506102be6105c1366004611904565b610bbd565b3480156105d257600080fd5b506102df6105e1366004611876565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561061857600080fd5b5061023461062736600461198a565b610bca565b34801561063857600080fd5b50610234610647366004611971565b610c15565b34801561065857600080fd5b50600c54610286906001600160a01b031681565b34801561067857600080fd5b5061023461068736600461198a565b610c44565b34801561069857600080fd5b506102df60105481565b6000546001600160a01b031633146106d55760405162461bcd60e51b81526004016106cc906119a7565b60405180910390fd5b600b8054610100600160a81b0319166101006001600160a01b0394851602179055600c80546001600160a01b03191691909216179055565b60606009805461071c906119dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610748906119dc565b80156107955780601f1061076a57610100808354040283529160200191610795565b820191906000526020600020905b81548152906001019060200180831161077857829003601f168201915b5050505050905090565b60006107ac338484610cdf565b5060015b92915050565b60006107c3848484610e03565b610815843361081085604051806060016040528060288152602001611b42602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906111bc565b610cdf565b5060019392505050565b600060065482111561088d5760405162461bcd60e51b815260206004820152603160248201527f45524332303a20416d6f756e74206d757374206265206c657373207468616e20604482015270746f74616c207265666c656374696f6e7360781b60648201526084016106cc565b60006108976111f6565b90506108a38382611214565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107ac9185906108109086611256565b3360006108f56108ee6111f6565b84906112b5565b6001600160a01b03831660009081526001602052604090205490915061091b9082611334565b6001600160a01b0383166000908152600160205260409020556006546109419082611334565b6006556007546109519084611256565b600755505050565b6000546001600160a01b031633146109835760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6001600160a01b0381166000908152600160205260408120546107b09061081f565b6000546001600160a01b031633146109f35760405162461bcd60e51b81526004016106cc906119a7565b6109fd6000611376565b565b6000546001600160a01b03163314610a295760405162461bcd60e51b81526004016106cc906119a7565b601454610100900460ff1615610a46576014805461ff0019169055565b6014805461ff001916610100179055565b6060600a805461071c906119dc565b600c546000906001600160a01b0383811691161415610a8757506001919050565b506001600160a01b03166000908152600d602052604090205460ff1690565b6000546001600160a01b03163314610ad05760405162461bcd60e51b81526004016106cc906119a7565b600f55565b60006107ac338461081085604051806060016040528060258152602001611b6a602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906111bc565b6000546001600160a01b03163314610b4e5760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b6000546001600160a01b03163314610b995760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b60006107ac338484610e03565b6000546001600160a01b03163314610bf45760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b81526004016106cc906119a7565b601055565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b038116610cd35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cc565b610cdc81611376565b50565b6001600160a01b038316610d415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106cc565b6001600160a01b038216610da25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106cc565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106cc565b6001600160a01b038216610ec95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106cc565b60008111610f325760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106cc565b6000610f3d306109a7565b9050600854811115610f4e57506008545b6013546014549082119060ff16158015610f6f5750601454610100900460ff165b8015610f785750805b8015610f925750600c546001600160a01b03868116911614155b80610fb557506001600160a01b0385166000908152600d602052604090205460ff165b15610fd557610fc3826113c6565b478015610fd357610fd34761155a565b505b600c546000906001600160a01b03878116911614806110015750600c546001600160a01b038681169116145b8061102457506001600160a01b0385166000908152600d602052604090205460ff165b8061104757506001600160a01b0386166000908152600d602052604090205460ff165b801561108f57506001600160a01b03861660009081526004602052604090205460ff168061108d57506001600160a01b03851660009081526004602052604090205460ff165b155b15611098575060015b6000546001600160a01b03878116911614806110c157506000546001600160a01b038681169116145b6111a857600c546001600160a01b038681169116148015906110fc57506001600160a01b0385166000908152600d602052604090205460ff16155b801561112157506001600160a01b03851660009081526004602052604090205460ff16155b156111a857600854611132866109a7565b61113c9086611a2d565b106111a85760405162461bcd60e51b815260206004820152603660248201527f45524332303a57616c6c65742043616e6e6f7420686f6c64206d6f726520746860448201527530b71019129037b3103a37ba30b61039bab838363c9760511b60648201526084016106cc565b6111b4868686846115be565b505050505050565b600081848411156111e05760405162461bcd60e51b81526004016106cc91906118af565b5060006111ed8486611a45565b95945050505050565b600061120f60055460065461121490919063ffffffff16565b905090565b60006108a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061162b565b6000806112638385611a2d565b9050838110156108a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106cc565b6000826112c4575060006107b0565b60006112d08385611a5c565b9050826112dd8583611a7b565b146108a35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106cc565b60006108a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6014805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061140857611408611a9d565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149f9190611ab3565b816001815181106114b2576114b2611a9d565b6001600160a01b039283166020918202929092010152600b546114dd91309161010090041684610cdf565b600b5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061151a908590600090869030904290600401611ad0565b600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b50506014805460ff1916905550505050565b600e546040516000916001600160a01b03169083908381818185875af1925050503d80600081146115a7576040519150601f19603f3d011682016040523d82523d6000602084013e6115ac565b606091505b50509050806115ba57600080fd5b5050565b600c546001600160a01b03848116911614806115e75750600c546001600160a01b038581169116145b80156115f05750805b1561160b57611606600f54601155601054601255565b61161a565b61161a60006011819055601255565b611625848484611659565b50505050565b6000818361164c5760405162461bcd60e51b81526004016106cc91906118af565b5060006111ed8486611a7b565b60006116636111f6565b9050600061167a61167384611780565b8490611334565b9050600061168884846112b5565b905060006116a96116a28561169c88611780565b906112b5565b8390611334565b6001600160a01b0388166000908152600160205260409020549091506116cf9083611334565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546116fe9082611256565b6001600160a01b03871660009081526001602052604090205561172185856117b0565b61172a8561180e565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161176f91815260200190565b60405180910390a350505050505050565b6000806108a36103e86117aa6117a360125460115461125690919063ffffffff16565b86906112b5565b90611214565b60006117cd6103e86117aa601254866112b590919063ffffffff16565b905060006117db82846112b5565b306000908152600160205260409020549091506117f89082611256565b3060009081526001602052604090205550505050565b600061182b6103e86117aa601154856112b590919063ffffffff16565b9050600061184161183a6111f6565b83906112b5565b6006549091506118519082611334565b6006556007546109519083611256565b6001600160a01b0381168114610cdc57600080fd5b6000806040838503121561188957600080fd5b823561189481611861565b915060208301356118a481611861565b809150509250929050565b600060208083528351808285015260005b818110156118dc578581018301518582016040015282016118c0565b818111156118ee576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561191757600080fd5b823561192281611861565b946020939093013593505050565b60008060006060848603121561194557600080fd5b833561195081611861565b9250602084013561196081611861565b929592945050506040919091013590565b60006020828403121561198357600080fd5b5035919050565b60006020828403121561199c57600080fd5b81356108a381611861565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806119f057607f821691505b60208210811415611a1157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611a4057611a40611a17565b500190565b600082821015611a5757611a57611a17565b500390565b6000816000190483118215151615611a7657611a76611a17565b500290565b600082611a9857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ac557600080fd5b81516108a381611861565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b205784516001600160a01b031683529383019391830191600101611afb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbbbb929355a9c9c5cf996e54d03f459741ae51baf190aa3614b7505184086b664736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102085760003560e01c80636ddd171311610118578063a6931ed7116100a0578063ea2f0b371161006f578063ea2f0b371461060c578063f17bd9871461062c578063f242ab411461064c578063f2fde38b1461066c578063fcf0c9c61461068c57600080fd5b8063a6931ed714610566578063a7f404e214610586578063a9059cbb146105a6578063dd62ed3e146105c657600080fd5b80638da5cb5b116100e75780638da5cb5b146104d357806395d89b41146104f15780639cece12e14610506578063a15224ff14610526578063a457c2d71461054657600080fd5b80636ddd17131461046a57806370a0823114610489578063715018a6146104a95780637ffd7fad146104be57600080fd5b8063313ce5671161019b57806350a64fcd1161016a57806350a64fcd146103d05780635342acb4146103e5578063599270441461041e5780635f42ef2a1461043e578063617c98e21461045457600080fd5b8063313ce5671461034e57806339509351146103705780633bd5d17314610390578063437823ec146103b057600080fd5b806318160ddd116101d757806318160ddd146102ce5780631d714470146102ed57806323b872dd1461030e5780632d8381191461032e57600080fd5b80630505e94d1461021457806306fdde03146102365780630758d92414610261578063095ea7b31461029e57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061023461022f366004611876565b6106a2565b005b34801561024257600080fd5b5061024b61070d565b60405161025891906118af565b60405180910390f35b34801561026d57600080fd5b50600b546102869061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102aa57600080fd5b506102be6102b9366004611904565b61079f565b6040519015158152602001610258565b3480156102da57600080fd5b506005545b604051908152602001610258565b3480156102f957600080fd5b50600e546102be90600160a01b900460ff1681565b34801561031a57600080fd5b506102be610329366004611930565b6107b6565b34801561033a57600080fd5b506102df610349366004611971565b61081f565b34801561035a57600080fd5b50600b5460405160ff9091168152602001610258565b34801561037c57600080fd5b506102be61038b366004611904565b6108aa565b34801561039c57600080fd5b506102346103ab366004611971565b6108e0565b3480156103bc57600080fd5b506102346103cb36600461198a565b610959565b3480156103dc57600080fd5b506007546102df565b3480156103f157600080fd5b506102be61040036600461198a565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561042a57600080fd5b50600e54610286906001600160a01b031681565b34801561044a57600080fd5b506102df600f5481565b34801561046057600080fd5b506102df60085481565b34801561047657600080fd5b506014546102be90610100900460ff1681565b34801561049557600080fd5b506102df6104a436600461198a565b6109a7565b3480156104b557600080fd5b506102346109c9565b3480156104ca57600080fd5b506102346109ff565b3480156104df57600080fd5b506000546001600160a01b0316610286565b3480156104fd57600080fd5b5061024b610a57565b34801561051257600080fd5b506102be61052136600461198a565b610a66565b34801561053257600080fd5b50610234610541366004611971565b610aa6565b34801561055257600080fd5b506102be610561366004611904565b610ad5565b34801561057257600080fd5b5061023461058136600461198a565b610b24565b34801561059257600080fd5b506102346105a136600461198a565b610b6f565b3480156105b257600080fd5b506102be6105c1366004611904565b610bbd565b3480156105d257600080fd5b506102df6105e1366004611876565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561061857600080fd5b5061023461062736600461198a565b610bca565b34801561063857600080fd5b50610234610647366004611971565b610c15565b34801561065857600080fd5b50600c54610286906001600160a01b031681565b34801561067857600080fd5b5061023461068736600461198a565b610c44565b34801561069857600080fd5b506102df60105481565b6000546001600160a01b031633146106d55760405162461bcd60e51b81526004016106cc906119a7565b60405180910390fd5b600b8054610100600160a81b0319166101006001600160a01b0394851602179055600c80546001600160a01b03191691909216179055565b60606009805461071c906119dc565b80601f0160208091040260200160405190810160405280929190818152602001828054610748906119dc565b80156107955780601f1061076a57610100808354040283529160200191610795565b820191906000526020600020905b81548152906001019060200180831161077857829003601f168201915b5050505050905090565b60006107ac338484610cdf565b5060015b92915050565b60006107c3848484610e03565b610815843361081085604051806060016040528060288152602001611b42602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906111bc565b610cdf565b5060019392505050565b600060065482111561088d5760405162461bcd60e51b815260206004820152603160248201527f45524332303a20416d6f756e74206d757374206265206c657373207468616e20604482015270746f74616c207265666c656374696f6e7360781b60648201526084016106cc565b60006108976111f6565b90506108a38382611214565b9392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107ac9185906108109086611256565b3360006108f56108ee6111f6565b84906112b5565b6001600160a01b03831660009081526001602052604090205490915061091b9082611334565b6001600160a01b0383166000908152600160205260409020556006546109419082611334565b6006556007546109519084611256565b600755505050565b6000546001600160a01b031633146109835760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6001600160a01b0381166000908152600160205260408120546107b09061081f565b6000546001600160a01b031633146109f35760405162461bcd60e51b81526004016106cc906119a7565b6109fd6000611376565b565b6000546001600160a01b03163314610a295760405162461bcd60e51b81526004016106cc906119a7565b601454610100900460ff1615610a46576014805461ff0019169055565b6014805461ff001916610100179055565b6060600a805461071c906119dc565b600c546000906001600160a01b0383811691161415610a8757506001919050565b506001600160a01b03166000908152600d602052604090205460ff1690565b6000546001600160a01b03163314610ad05760405162461bcd60e51b81526004016106cc906119a7565b600f55565b60006107ac338461081085604051806060016040528060258152602001611b6a602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906111bc565b6000546001600160a01b03163314610b4e5760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b6000546001600160a01b03163314610b995760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600d60205260409020805460ff19166001179055565b60006107ac338484610e03565b6000546001600160a01b03163314610bf45760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b81526004016106cc906119a7565b601055565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b81526004016106cc906119a7565b6001600160a01b038116610cd35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cc565b610cdc81611376565b50565b6001600160a01b038316610d415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106cc565b6001600160a01b038216610da25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106cc565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e675760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106cc565b6001600160a01b038216610ec95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106cc565b60008111610f325760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016106cc565b6000610f3d306109a7565b9050600854811115610f4e57506008545b6013546014549082119060ff16158015610f6f5750601454610100900460ff165b8015610f785750805b8015610f925750600c546001600160a01b03868116911614155b80610fb557506001600160a01b0385166000908152600d602052604090205460ff165b15610fd557610fc3826113c6565b478015610fd357610fd34761155a565b505b600c546000906001600160a01b03878116911614806110015750600c546001600160a01b038681169116145b8061102457506001600160a01b0385166000908152600d602052604090205460ff165b8061104757506001600160a01b0386166000908152600d602052604090205460ff165b801561108f57506001600160a01b03861660009081526004602052604090205460ff168061108d57506001600160a01b03851660009081526004602052604090205460ff165b155b15611098575060015b6000546001600160a01b03878116911614806110c157506000546001600160a01b038681169116145b6111a857600c546001600160a01b038681169116148015906110fc57506001600160a01b0385166000908152600d602052604090205460ff16155b801561112157506001600160a01b03851660009081526004602052604090205460ff16155b156111a857600854611132866109a7565b61113c9086611a2d565b106111a85760405162461bcd60e51b815260206004820152603660248201527f45524332303a57616c6c65742043616e6e6f7420686f6c64206d6f726520746860448201527530b71019129037b3103a37ba30b61039bab838363c9760511b60648201526084016106cc565b6111b4868686846115be565b505050505050565b600081848411156111e05760405162461bcd60e51b81526004016106cc91906118af565b5060006111ed8486611a45565b95945050505050565b600061120f60055460065461121490919063ffffffff16565b905090565b60006108a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061162b565b6000806112638385611a2d565b9050838110156108a35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106cc565b6000826112c4575060006107b0565b60006112d08385611a5c565b9050826112dd8583611a7b565b146108a35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106cc565b60006108a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111bc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6014805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061140857611408611a9d565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561147b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149f9190611ab3565b816001815181106114b2576114b2611a9d565b6001600160a01b039283166020918202929092010152600b546114dd91309161010090041684610cdf565b600b5460405163791ac94760e01b81526101009091046001600160a01b03169063791ac9479061151a908590600090869030904290600401611ad0565b600060405180830381600087803b15801561153457600080fd5b505af1158015611548573d6000803e3d6000fd5b50506014805460ff1916905550505050565b600e546040516000916001600160a01b03169083908381818185875af1925050503d80600081146115a7576040519150601f19603f3d011682016040523d82523d6000602084013e6115ac565b606091505b50509050806115ba57600080fd5b5050565b600c546001600160a01b03848116911614806115e75750600c546001600160a01b038581169116145b80156115f05750805b1561160b57611606600f54601155601054601255565b61161a565b61161a60006011819055601255565b611625848484611659565b50505050565b6000818361164c5760405162461bcd60e51b81526004016106cc91906118af565b5060006111ed8486611a7b565b60006116636111f6565b9050600061167a61167384611780565b8490611334565b9050600061168884846112b5565b905060006116a96116a28561169c88611780565b906112b5565b8390611334565b6001600160a01b0388166000908152600160205260409020549091506116cf9083611334565b6001600160a01b0380891660009081526001602052604080822093909355908816815220546116fe9082611256565b6001600160a01b03871660009081526001602052604090205561172185856117b0565b61172a8561180e565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161176f91815260200190565b60405180910390a350505050505050565b6000806108a36103e86117aa6117a360125460115461125690919063ffffffff16565b86906112b5565b90611214565b60006117cd6103e86117aa601254866112b590919063ffffffff16565b905060006117db82846112b5565b306000908152600160205260409020549091506117f89082611256565b3060009081526001602052604090205550505050565b600061182b6103e86117aa601154856112b590919063ffffffff16565b9050600061184161183a6111f6565b83906112b5565b6006549091506118519082611334565b6006556007546109519083611256565b6001600160a01b0381168114610cdc57600080fd5b6000806040838503121561188957600080fd5b823561189481611861565b915060208301356118a481611861565b809150509250929050565b600060208083528351808285015260005b818110156118dc578581018301518582016040015282016118c0565b818111156118ee576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561191757600080fd5b823561192281611861565b946020939093013593505050565b60008060006060848603121561194557600080fd5b833561195081611861565b9250602084013561196081611861565b929592945050506040919091013590565b60006020828403121561198357600080fd5b5035919050565b60006020828403121561199c57600080fd5b81356108a381611861565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806119f057607f821691505b60208210811415611a1157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115611a4057611a40611a17565b500190565b600082821015611a5757611a57611a17565b500390565b6000816000190483118215151615611a7657611a76611a17565b500290565b600082611a9857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ac557600080fd5b81516108a381611861565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b205784516001600160a01b031683529383019391830191600101611afb565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbbbb929355a9c9c5cf996e54d03f459741ae51baf190aa3614b7505184086b664736f6c634300080c0033
Deployed Bytecode Sourcemap
3164:13481:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15792:140;;;;;;;;;;-1:-1:-1;15792:140:0;;;;;:::i;:::-;;:::i;:::-;;5792:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4019:31;;;;;;;;;;-1:-1:-1;4019:31:0;;;;;;;-1:-1:-1;;;;;4019:31:0;;;;;;-1:-1:-1;;;;;1401:32:1;;;1383:51;;1371:2;1356:18;4019:31:0;1215:225:1;6760:193:0;;;;;;;;;;-1:-1:-1;6760:193:0;;;;;:::i;:::-;;:::i;:::-;;;1946:14:1;;1939:22;1921:41;;1909:2;1894:18;6760:193:0;1781:187:1;6069:95:0;;;;;;;;;;-1:-1:-1;6149:7:0;;6069:95;;;2119:25:1;;;2107:2;2092:18;6069:95:0;1973:177:1;4240:33:0;;;;;;;;;;-1:-1:-1;4240:33:0;;;;-1:-1:-1;;;4240:33:0;;;;;;6961:446;;;;;;;;;;-1:-1:-1;6961:446:0;;;;;:::i;:::-;;:::i;8890:329::-;;;;;;;;;;-1:-1:-1;8890:329:0;;;;;:::i;:::-;;:::i;5978:83::-;;;;;;;;;;-1:-1:-1;6044:9:0;;5978:83;;6044:9;;;;2975:36:1;;2963:2;2948:18;5978:83:0;2833:184:1;7415:300:0;;;;;;;;;;-1:-1:-1;7415:300:0;;;;;:::i;:::-;;:::i;8596:286::-;;;;;;;;;;-1:-1:-1;8596:286:0;;;;;:::i;:::-;;:::i;16238:113::-;;;;;;;;;;-1:-1:-1;16238:113:0;;;;;:::i;:::-;;:::i;8440:101::-;;;;;;;;;;-1:-1:-1;8523:10:0;;8440:101;;8232:126;;;;;;;;;;-1:-1:-1;8232:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;8322:28:0;8298:4;8322:28;;;:18;:28;;;;;;;;;8232:126;4184:33;;;;;;;;;;-1:-1:-1;4184:33:0;;;;-1:-1:-1;;;;;4184:33:0;;;4343:44;;;;;;;;;;;;;;;;3773:49;;;;;;;;;;;;;;;;4768:30;;;;;;;;;;-1:-1:-1;4768:30:0;;;;;;;;;;;6172:181;;;;;;;;;;-1:-1:-1;6172:181:0;;;;;:::i;:::-;;:::i;2619:94::-;;;;;;;;;;;;;:::i;16479:159::-;;;;;;;;;;;;;:::i;2396:87::-;;;;;;;;;;-1:-1:-1;2442:7:0;2469:6;-1:-1:-1;;;;;2469:6:0;2396:87;;5883;;;;;;;;;;;;;:::i;15353:154::-;;;;;;;;;;-1:-1:-1;15353:154:0;;;;;:::i;:::-;;:::i;15970:113::-;;;;;;;;;;-1:-1:-1;15970:113:0;;;;;:::i;:::-;;:::i;7723:400::-;;;;;;;;;;-1:-1:-1;7723:400:0;;;;;:::i;:::-;;:::i;15628:107::-;;;;;;;;;;-1:-1:-1;15628:107:0;;;;;:::i;:::-;;:::i;15517:103::-;;;;;;;;;;-1:-1:-1;15517:103:0;;;;;:::i;:::-;;:::i;6361:199::-;;;;;;;;;;-1:-1:-1;6361:199:0;;;;;:::i;:::-;;:::i;6568:184::-;;;;;;;;;;-1:-1:-1;6568:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6717:18:0;;;6685:7;6717:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6568:184;16359:112;;;;;;;;;;-1:-1:-1;16359:112:0;;;;;:::i;:::-;;:::i;16123:107::-;;;;;;;;;;-1:-1:-1;16123:107:0;;;;;:::i;:::-;;:::i;4079:22::-;;;;;;;;;;-1:-1:-1;4079:22:0;;;;-1:-1:-1;;;;;4079:22:0;;;2721:229;;;;;;;;;;-1:-1:-1;2721:229:0;;;;;:::i;:::-;;:::i;4453:34::-;;;;;;;;;;;;;;;;15792:140;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;;;;;;;;;15879:9:::1;:19:::0;;-1:-1:-1;;;;;;15879:19:0::1;;-1:-1:-1::0;;;;;15879:19:0;;::::1;;;::::0;;15909:7:::1;:15:::0;;-1:-1:-1;;;;;;15909:15:0::1;::::0;;;::::1;;::::0;;15792:140::o;5792:83::-;5829:13;5862:5;5855:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5792:83;:::o;6760:193::-;6862:4;6884:39;2006:10;6907:7;6916:6;6884:8;:39::i;:::-;-1:-1:-1;6941:4:0;6760:193;;;;;:::o;6961:446::-;7093:4;7110:36;7120:6;7128:9;7139:6;7110:9;:36::i;:::-;7157:220;7180:6;2006:10;7228:138;7284:6;7228:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7228:19:0;;;;;;:11;:19;;;;;;;;2006:10;7228:33;;;;;;;;;;:37;:138::i;:::-;7157:8;:220::i;:::-;-1:-1:-1;7395:4:0;6961:446;;;;;:::o;8890:329::-;8984:7;9042;;9031;:18;;9009:117;;;;-1:-1:-1;;;9009:117:0;;5095:2:1;9009:117:0;;;5077:21:1;5134:2;5114:18;;;5107:30;5173:34;5153:18;;;5146:62;-1:-1:-1;;;5224:18:1;;;5217:47;5281:19;;9009:117:0;4893:413:1;9009:117:0;9137:19;9159:10;:8;:10::i;:::-;9137:32;-1:-1:-1;9187:24:0;:7;9137:32;9187:11;:24::i;:::-;9180:31;8890:329;-1:-1:-1;;;8890:329:0:o;7415:300::-;2006:10;7530:4;7624:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7624:34:0;;;;;;;;;;7530:4;;7552:133;;7602:7;;7624:50;;7663:10;7624:38;:50::i;8596:286::-;2006:10;8648:14;8706:23;8718:10;:8;:10::i;:::-;8706:7;;:11;:23::i;:::-;-1:-1:-1;;;;;8758:15:0;;;;;;:7;:15;;;;;;8688:41;;-1:-1:-1;8758:28:0;;8688:41;8758:19;:28::i;:::-;-1:-1:-1;;;;;8740:15:0;;;;;;:7;:15;;;;;:46;8807:7;;:20;;8819:7;8807:11;:20::i;:::-;8797:7;:30;8851:10;;:23;;8866:7;8851:14;:23::i;:::-;8838:10;:36;-1:-1:-1;;;8596:286:0:o;16238:113::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16309:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;16309:34:0::1;16339:4;16309:34;::::0;;16238:113::o;6172:181::-;-1:-1:-1;;;;;6327:17:0;;6275:7;6327:17;;;:7;:17;;;;;;6307:38;;:19;:38::i;2619:94::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;2684:21:::1;2702:1;2684:9;:21::i;:::-;2619:94::o:0;16479:159::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;16537:11:::1;::::0;::::1;::::0;::::1;;;16534:95;;;16563:11;:19:::0;;-1:-1:-1;;16563:19:0::1;::::0;;2619:94::o;16534:95::-:1;16611:11;:18:::0;;-1:-1:-1;;16611:18:0::1;;;::::0;;16479:159::o;5883:87::-;5922:13;5955:7;5948:14;;;;;:::i;15353:154::-;15442:7;;15414:4;;-1:-1:-1;;;;;15433:16:0;;;15442:7;;15433:16;15429:33;;;-1:-1:-1;15458:4:0;;15353:154;-1:-1:-1;15353:154:0:o;15429:33::-;-1:-1:-1;;;;;;15478:21:0;;;;;:14;:21;;;;;;;;;15353:154::o;15970:113::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;16044:24:::1;:31:::0;15970:113::o;7723:400::-;7843:4;7865:228;2006:10;7915:7;7937:145;7994:15;7937:145;;;;;;;;;;;;;;;;;2006:10;7937:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7937:34:0;;;;;;;;;;;;:38;:145::i;15628:107::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15698:21:0::1;15722:5;15698:21:::0;;;:14:::1;:21;::::0;;;;:29;;-1:-1:-1;;15698:29:0::1;::::0;;15628:107::o;15517:103::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15584:21:0::1;;::::0;;;:14:::1;:21;::::0;;;;:28;;-1:-1:-1;;15584:28:0::1;15608:4;15584:28;::::0;;15517:103::o;6361:199::-;6466:4;6488:42;2006:10;6512:9;6523:6;6488:9;:42::i;16359:112::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16428:27:0::1;16458:5;16428:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;16428:35:0::1;::::0;;16359:112::o;16123:107::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;16197:14:::1;:25:::0;16123:107::o;2721:229::-;2442:7;2469:6;-1:-1:-1;;;;;2469:6:0;2006:10;2531:23;2523:68;;;;-1:-1:-1;;;2523:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2824:22:0;::::1;2802:110;;;::::0;-1:-1:-1;;;2802:110:0;;5513:2:1;2802:110:0::1;::::0;::::1;5495:21:1::0;5552:2;5532:18;;;5525:30;5591:34;5571:18;;;5564:62;-1:-1:-1;;;5642:18:1;;;5635:36;5688:19;;2802:110:0::1;5311:402:1::0;2802:110:0::1;2923:19;2933:8;2923:9;:19::i;:::-;2721:229:::0;:::o;10060:371::-;-1:-1:-1;;;;;10187:19:0;;10179:68;;;;-1:-1:-1;;;10179:68:0;;5920:2:1;10179:68:0;;;5902:21:1;5959:2;5939:18;;;5932:30;5998:34;5978:18;;;5971:62;-1:-1:-1;;;6049:18:1;;;6042:34;6093:19;;10179:68:0;5718:400:1;10179:68:0;-1:-1:-1;;;;;10266:21:0;;10258:68;;;;-1:-1:-1;;;10258:68:0;;6325:2:1;10258:68:0;;;6307:21:1;6364:2;6344:18;;;6337:30;6403:34;6383:18;;;6376:62;-1:-1:-1;;;6454:18:1;;;6447:32;6496:19;;10258:68:0;6123:398:1;10258:68:0;-1:-1:-1;;;;;10339:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10391:32;;2119:25:1;;;10391:32:0;;2092:18:1;10391:32:0;;;;;;;10060:371;;;:::o;10481:2249::-;-1:-1:-1;;;;;10603:18:0;;10595:68;;;;-1:-1:-1;;;10595:68:0;;6728:2:1;10595:68:0;;;6710:21:1;6767:2;6747:18;;;6740:30;6806:34;6786:18;;;6779:62;-1:-1:-1;;;6857:18:1;;;6850:35;6902:19;;10595:68:0;6526:401:1;10595:68:0;-1:-1:-1;;;;;10682:16:0;;10674:64;;;;-1:-1:-1;;;10674:64:0;;7134:2:1;10674:64:0;;;7116:21:1;7173:2;7153:18;;;7146:30;7212:34;7192:18;;;7185:62;-1:-1:-1;;;7263:18:1;;;7256:33;7306:19;;10674:64:0;6932:399:1;10674:64:0;10766:1;10757:6;:10;10749:71;;;;-1:-1:-1;;;10749:71:0;;7538:2:1;10749:71:0;;;7520:21:1;7577:2;7557:18;;;7550:30;7616:34;7596:18;;;7589:62;-1:-1:-1;;;7667:18:1;;;7660:46;7723:19;;10749:71:0;7336:412:1;10749:71:0;11091:28;11122:24;11140:4;11122:9;:24::i;:::-;11091:55;;11186:15;;11163:20;:38;11159:109;;;-1:-1:-1;11241:15:0;;11159:109;11329:29;;11388:6;;11307:51;;;;11388:6;;11387:7;:35;;;;-1:-1:-1;11411:11:0;;;;;;;11387:35;:71;;;;;11439:19;11387:71;:103;;;;-1:-1:-1;11483:7:0;;-1:-1:-1;;;;;11475:15:0;;;11483:7;;11475:15;;11387:103;:127;;;-1:-1:-1;;;;;;11494:20:0;;;;;;:14;:20;;;;;;;;11387:127;11369:500;;;11639:38;11656:20;11639:16;:38::i;:::-;11723:21;11763:22;;11759:99;;11806:36;11820:21;11806:13;:36::i;:::-;11536:333;11369:500;12045:7;;11944:12;;-1:-1:-1;;;;;12037:15:0;;;12045:7;;12037:15;;:45;;-1:-1:-1;12075:7:0;;-1:-1:-1;;;;;12069:13:0;;;12075:7;;12069:13;12037:45;:80;;;-1:-1:-1;;;;;;12099:18:0;;;;;;:14;:18;;;;;;;;12037:80;:117;;;-1:-1:-1;;;;;;12134:20:0;;;;;;:14;:20;;;;;;;;12037:117;12036:187;;;;-1:-1:-1;;;;;;12172:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;12200:22:0;;;;;;:18;:22;;;;;;;;12172:50;12170:53;12036:187;12020:254;;;-1:-1:-1;12258:4:0;12020:254;2442:7;2469:6;-1:-1:-1;;;;;12291:15:0;;;2469:6;;12291:15;;:32;;-1:-1:-1;2442:7:0;2469:6;-1:-1:-1;;;;;12310:13:0;;;2469:6;;12310:13;12291:32;12286:317;;12396:7;;-1:-1:-1;;;;;12392:11:0;;;12396:7;;12392:11;;;;:34;;-1:-1:-1;;;;;;12408:18:0;;;;;;:14;:18;;;;;;;;12407:19;12392:34;:61;;;;-1:-1:-1;;;;;;12431:22:0;;;;;;:18;:22;;;;;;;;12430:23;12392:61;12389:203;;;12502:15;;12486:13;12496:2;12486:9;:13::i;:::-;12477:22;;:6;:22;:::i;:::-;:40;12469:107;;;;-1:-1:-1;;;12469:107:0;;8220:2:1;12469:107:0;;;8202:21:1;8259:2;8239:18;;;8232:30;8298:34;8278:18;;;8271:62;-1:-1:-1;;;8349:18:1;;;8342:52;8411:19;;12469:107:0;8018:418:1;12469:107:0;12681:41;12696:4;12702:2;12706:6;12714:7;12681:14;:41::i;:::-;10584:2146;;;10481:2249;;;:::o;17006:226::-;17126:7;17162:12;17154:6;;;;17146:29;;;;-1:-1:-1;;;17146:29:0;;;;;;;;:::i;:::-;-1:-1:-1;17186:9:0;17198:5;17202:1;17198;:5;:::i;:::-;17186:17;17006:226;-1:-1:-1;;;;;17006:226:0:o;9665:97::-;9707:7;9734:20;9746:7;;9734;;:11;;:20;;;;:::i;:::-;9727:27;;9665:97;:::o;17719:132::-;17777:7;17804:39;17808:1;17811;17804:39;;;;;;;;;;;;;;;;;:3;:39::i;16673:181::-;16731:7;;16763:5;16767:1;16763;:5;:::i;:::-;16751:17;;16792:1;16787;:6;;16779:46;;;;-1:-1:-1;;;16779:46:0;;8773:2:1;16779:46:0;;;8755:21:1;8812:2;8792:18;;;8785:30;8851:29;8831:18;;;8824:57;8898:18;;16779:46:0;8571:351:1;17240:471:0;17298:7;17543:6;17539:47;;-1:-1:-1;17573:1:0;17566:8;;17539:47;17598:9;17610:5;17614:1;17610;:5;:::i;:::-;17598:17;-1:-1:-1;17643:1:0;17634:5;17638:1;17598:17;17634:5;:::i;:::-;:10;17626:56;;;;-1:-1:-1;;;17626:56:0;;9524:2:1;17626:56:0;;;9506:21:1;9563:2;9543:18;;;9536:30;9602:34;9582:18;;;9575:62;-1:-1:-1;;;9653:18:1;;;9646:31;9694:19;;17626:56:0;9322:397:1;16862:136:0;16920:7;16947:43;16951:1;16954;16947:43;;;;;;;;;;;;;;;;;:3;:43::i;2958:173::-;3014:16;3033:6;;-1:-1:-1;;;;;3050:17:0;;;-1:-1:-1;;;;;;3050:17:0;;;;;;3083:40;;3033:6;;;;;;;3083:40;;3014:16;3083:40;3003:128;2958:173;:::o;14609:583::-;4841:6;:13;;-1:-1:-1;;4841:13:0;4850:4;4841:13;;;14771:16:::1;::::0;;14785:1:::1;14771:16:::0;;;;;::::1;::::0;;-1:-1:-1;;14771:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14771:16:0::1;14747:40;;14816:4;14798;14803:1;14798:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;14798:23:0::1;;;-1:-1:-1::0;;;;;14798:23:0::1;;;::::0;::::1;14842:9;;;;;;;;;-1:-1:-1::0;;;;;14842:9:0::1;-1:-1:-1::0;;;;;14842:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14832:4;14837:1;14832:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14832:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;14903:9:::1;::::0;14871:56:::1;::::0;14888:4:::1;::::0;14903:9:::1;::::0;::::1;;14915:11:::0;14871:8:::1;:56::i;:::-;14966:9;::::0;:218:::1;::::0;-1:-1:-1;;;14966:218:0;;:9:::1;::::0;;::::1;-1:-1:-1::0;;;;;14966:9:0::1;::::0;:60:::1;::::0;:218:::1;::::0;15041:11;;15067:1:::1;::::0;15111:4;;15138::::1;::::0;15158:15:::1;::::0;14966:218:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4877:6:0;:14;;-1:-1:-1;;4877:14:0;;;-1:-1:-1;;;;14609:583:0:o;15200:145::-;15280:10;;15272:43;;15259:7;;-1:-1:-1;;;;;15280:10:0;;15304:6;;15259:7;15272:43;15259:7;15272:43;15304:6;15280:10;15272:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15258:57;;;15334:2;15326:11;;;;;;15247:98;15200:145;:::o;12811:367::-;12979:7;;-1:-1:-1;;;;;12966:20:0;;;12979:7;;12966:20;;:41;;-1:-1:-1;13000:7:0;;-1:-1:-1;;;;;12990:17:0;;;13000:7;;12990:17;12966:41;12965:55;;;;;13013:7;12965:55;12962:154;;;13035:16;9967:24;;9939:25;:52;10026:14;;10002:21;:38;9894:154;13035:16;12962:154;;;13090:14;9841:1;9813:25;:29;;;9853:21;:25;9770:116;13090:14;13126:44;13144:6;13152:9;13163:6;13126:17;:44::i;:::-;12811:367;;;;:::o;17859:312::-;17979:7;18014:12;18007:5;17999:28;;;;-1:-1:-1;;;17999:28:0;;;;;;;;:::i;:::-;-1:-1:-1;18038:9:0;18050:5;18054:1;18050;:5;:::i;13251:682::-;13383:19;13405:10;:8;:10::i;:::-;13383:32;;13426:23;13452:35;13464:22;13478:7;13464:13;:22::i;:::-;13452:7;;:11;:35::i;:::-;13426:61;-1:-1:-1;13498:15:0;13516:24;:7;13528:11;13516;:24::i;:::-;13498:42;;13551:23;13577:76;13603:39;13630:11;13603:22;13617:7;13603:13;:22::i;:::-;:26;;:39::i;:::-;13577:7;;:11;:76::i;:::-;-1:-1:-1;;;;;13682:15:0;;;;;;:7;:15;;;;;;13551:102;;-1:-1:-1;13682:28:0;;13702:7;13682:19;:28::i;:::-;-1:-1:-1;;;;;13664:15:0;;;;;;;:7;:15;;;;;;:46;;;;13742:18;;;;;;;:39;;13765:15;13742:22;:39::i;:::-;-1:-1:-1;;;;;13721:18:0;;;;;;:7;:18;;;;;:60;13792:40;13811:7;13820:11;13792:18;:40::i;:::-;13843:20;13855:7;13843:11;:20::i;:::-;13898:9;-1:-1:-1;;;;;13881:44:0;13890:6;-1:-1:-1;;;;;13881:44:0;;13909:15;13881:44;;;;2119:25:1;;2107:2;2092:18;;1973:177;13881:44:0;;;;;;;;13372:561;;;;13251:682;;;:::o;9361:296::-;9424:7;9444:18;9465:156;9617:3;9465:133;9509:74;9561:21;;9509:25;;:51;;:74;;;;:::i;:::-;9465:7;;:25;:133::i;:::-;:151;;:156::i;13974:294::-;14085:12;14100:43;14139:3;14100:34;14112:21;;14100:7;:11;;:34;;;;:::i;:43::-;14085:58;-1:-1:-1;14154:12:0;14169:21;14085:58;14178:11;14169:8;:21::i;:::-;14242:4;14226:22;;;;:7;:22;;;;;;14154:36;;-1:-1:-1;14226:32:0;;14154:36;14226:26;:32::i;:::-;14217:4;14201:22;;;;:7;:22;;;;;:57;-1:-1:-1;;;;13974:294:0:o;14344:255::-;14401:12;14416:47;14459:3;14416:38;14428:25;;14416:7;:11;;:38;;;;:::i;:47::-;14401:62;;14474:12;14489:20;14498:10;:8;:10::i;:::-;14489:4;;:8;:20::i;:::-;14530:7;;14474:35;;-1:-1:-1;14530:17:0;;14474:35;14530:11;:17::i;:::-;14520:7;:27;14571:10;;:20;;14586:4;14571:14;:20::i;14:147:1:-;-1:-1:-1;;;;;105:31:1;;95:42;;85:70;;151:1;148;141:12;166:442;256:6;264;317:2;305:9;296:7;292:23;288:32;285:52;;;333:1;330;323:12;285:52;372:9;359:23;391:47;432:5;391:47;:::i;:::-;457:5;-1:-1:-1;514:2:1;499:18;;486:32;527:49;486:32;527:49;:::i;:::-;595:7;585:17;;;166:442;;;;;:::o;613:597::-;725:4;754:2;783;772:9;765:21;815:6;809:13;858:6;853:2;842:9;838:18;831:34;883:1;893:140;907:6;904:1;901:13;893:140;;;1002:14;;;998:23;;992:30;968:17;;;987:2;964:26;957:66;922:10;;893:140;;;1051:6;1048:1;1045:13;1042:91;;;1121:1;1116:2;1107:6;1096:9;1092:22;1088:31;1081:42;1042:91;-1:-1:-1;1194:2:1;1173:15;-1:-1:-1;;1169:29:1;1154:45;;;;1201:2;1150:54;;613:597;-1:-1:-1;;;613:597:1:o;1445:331::-;1513:6;1521;1574:2;1562:9;1553:7;1549:23;1545:32;1542:52;;;1590:1;1587;1580:12;1542:52;1629:9;1616:23;1648:47;1689:5;1648:47;:::i;:::-;1714:5;1766:2;1751:18;;;;1738:32;;-1:-1:-1;;;1445:331:1:o;2155:488::-;2232:6;2240;2248;2301:2;2289:9;2280:7;2276:23;2272:32;2269:52;;;2317:1;2314;2307:12;2269:52;2356:9;2343:23;2375:47;2416:5;2375:47;:::i;:::-;2441:5;-1:-1:-1;2498:2:1;2483:18;;2470:32;2511:49;2470:32;2511:49;:::i;:::-;2155:488;;2579:7;;-1:-1:-1;;;2633:2:1;2618:18;;;;2605:32;;2155:488::o;2648:180::-;2707:6;2760:2;2748:9;2739:7;2735:23;2731:32;2728:52;;;2776:1;2773;2766:12;2728:52;-1:-1:-1;2799:23:1;;2648:180;-1:-1:-1;2648:180:1:o;3022:263::-;3081:6;3134:2;3122:9;3113:7;3109:23;3105:32;3102:52;;;3150:1;3147;3140:12;3102:52;3189:9;3176:23;3208:47;3249:5;3208:47;:::i;4147:356::-;4349:2;4331:21;;;4368:18;;;4361:30;4427:34;4422:2;4407:18;;4400:62;4494:2;4479:18;;4147:356::o;4508:380::-;4587:1;4583:12;;;;4630;;;4651:61;;4705:4;4697:6;4693:17;4683:27;;4651:61;4758:2;4750:6;4747:14;4727:18;4724:38;4721:161;;;4804:10;4799:3;4795:20;4792:1;4785:31;4839:4;4836:1;4829:15;4867:4;4864:1;4857:15;4721:161;;4508:380;;;:::o;7753:127::-;7814:10;7809:3;7805:20;7802:1;7795:31;7845:4;7842:1;7835:15;7869:4;7866:1;7859:15;7885:128;7925:3;7956:1;7952:6;7949:1;7946:13;7943:39;;;7962:18;;:::i;:::-;-1:-1:-1;7998:9:1;;7885:128::o;8441:125::-;8481:4;8509:1;8506;8503:8;8500:34;;;8514:18;;:::i;:::-;-1:-1:-1;8551:9:1;;8441:125::o;8927:168::-;8967:7;9033:1;9029;9025:6;9021:14;9018:1;9015:21;9010:1;9003:9;8996:17;8992:45;8989:71;;;9040:18;;:::i;:::-;-1:-1:-1;9080:9:1;;8927:168::o;9100:217::-;9140:1;9166;9156:132;;9210:10;9205:3;9201:20;9198:1;9191:31;9245:4;9242:1;9235:15;9273:4;9270:1;9263:15;9156:132;-1:-1:-1;9302:9:1;;9100:217::o;9856:127::-;9917:10;9912:3;9908:20;9905:1;9898:31;9948:4;9945:1;9938:15;9972:4;9969:1;9962:15;9988:267;10058:6;10111:2;10099:9;10090:7;10086:23;10082:32;10079:52;;;10127:1;10124;10117:12;10079:52;10159:9;10153:16;10178:47;10219:5;10178:47;:::i;10260:980::-;10522:4;10570:3;10559:9;10555:19;10601:6;10590:9;10583:25;10627:2;10665:6;10660:2;10649:9;10645:18;10638:34;10708:3;10703:2;10692:9;10688:18;10681:31;10732:6;10767;10761:13;10798:6;10790;10783:22;10836:3;10825:9;10821:19;10814:26;;10875:2;10867:6;10863:15;10849:29;;10896:1;10906:195;10920:6;10917:1;10914:13;10906:195;;;10985:13;;-1:-1:-1;;;;;10981:39:1;10969:52;;11076:15;;;;11041:12;;;;11017:1;10935:9;10906:195;;;-1:-1:-1;;;;;;;11157:32:1;;;;11152:2;11137:18;;11130:60;-1:-1:-1;;;11221:3:1;11206:19;11199:35;11118:3;10260:980;-1:-1:-1;;;10260:980:1:o
Swarm Source
ipfs://dbbbb929355a9c9c5cf996e54d03f459741ae51baf190aa3614b7505184086b6
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.