ERC-20
Overview
Max Total Supply
51,000,000 $INVASION
Holders
54
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
99,946.738363212 $INVASIONValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Invasion
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-28 */ // FUCK THE ALIENS // InvasionToken.xyz // SPDX-License-Identifier: UNLICENSED pragma solidity =0.8.17; 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 Invasion is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Invasion"; string private constant _symbol = "$INVASION"; uint8 private constant _decimals = 9; 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 constant _tTotal = 51000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 public launchBlock; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 4; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 4; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; address payable private _developmentAddress = payable(0xD8C52d7Bfe4f2f10dDDEA23145DF061908c066E0); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal.mul(15).div(1000); uint256 public _maxWalletSize = _tTotal.mul(15).div(1000); uint256 public _swapTokensAtAmount = _tTotal.mul(8).div(1000); 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; 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"); if (from != owner() && to != owner()) { 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; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } 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 { _developmentAddress.transfer(amount); } function AlienWave(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; launchBlock = block.number; } function manualswap() external { require(_msgSender() == _developmentAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } 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 ReduceFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function removeLimit () external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } 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":"bool","name":"_tradingOpen","type":"bool"}],"name":"AlienWave","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"ReduceFee","outputs":[],"stateMutability":"nonpayable","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":[{"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":"bots_","type":"address[]"}],"name":"blockBots","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":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"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
60806040526200001966b5303ad38b8000600019620004f0565b62000027906000196200051d565b600655600060098190556004600a819055600b829055600c819055600d829055600e819055600f918255601055601280546001600160a01b03191673d8c52d7bfe4f2f10dddea23145df061908c066e01790556014805461ffff60a81b1916600160b01b179055620000ce906103e890620000ba9066b5303ad38b80009062000d00620003bd602090811b91909117901c565b6200045460201b62000d891790919060201c565b601555620000fa6103e8620000ba600f66b5303ad38b8000620003bd60201b62000d001790919060201c565b601655620001266103e8620000ba600866b5303ad38b8000620003bd60201b62000d001790919060201c565b6017553480156200013657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021a919062000533565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e919062000533565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000302919062000533565b601480546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66b5303ad38b8000604051620003ae91815260200190565b60405180910390a350620005df565b600082600003620003d1575060006200044e565b6000620003df83856200055e565b905082620003ee858362000578565b146200044b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200044b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200049e60201b60201c565b60008183620004c25760405162461bcd60e51b81526004016200044291906200058f565b506000620004d1848662000578565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b600082620005025762000502620004da565b500690565b634e487b7160e01b600052601160045260246000fd5b818103818111156200044e576200044e62000507565b6000602082840312156200054657600080fd5b81516001600160a01b03811681146200044b57600080fd5b80820281158282048414176200044e576200044e62000507565b6000826200058a576200058a620004da565b500490565b600060208083528351808285015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b611f4480620005ef6000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063bfd7928411610095578063d00efb2f11610064578063d00efb2f1461056a578063dd62ed3e14610580578063ea1644d5146105c6578063f2fde38b146105e657600080fd5b8063bfd79284146104e5578063c3c8cd8014610515578063c492f0461461052a578063cabfd71c1461054a57600080fd5b80638f9a55c0116100d15780638f9a55c01461045d57806395d89b411461047357806398a5c315146104a5578063a9059cbb146104c557600080fd5b806374010ece146103e957806375f63942146104095780637d1db4a5146104295780638da5cb5b1461043f57600080fd5b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f81461037f5780636fc3eaec1461039f57806370a08231146103b4578063715018a6146103d457600080fd5b8063313ce5671461030e57806349bd5a5e1461032a578063622565891461034a5780636b9990531461035f57600080fd5b80631694505e116101b65780631694505e1461027c57806318160ddd146102b457806323b872dd146102d85780632fd689e3146102f857600080fd5b8062b8cf2a146101e757806306fdde0314610209578063095ea7b31461024c57600080fd5b366101e257005b600080fd5b3480156101f357600080fd5b50610207610202366004611ac4565b610606565b005b34801561021557600080fd5b5060408051808201909152600881526724b73b30b9b4b7b760c11b60208201525b6040516102439190611b89565b60405180910390f35b34801561025857600080fd5b5061026c610267366004611bd7565b6106bf565b6040519015158152602001610243565b34801561028857600080fd5b5060135461029c906001600160a01b031681565b6040516001600160a01b039091168152602001610243565b3480156102c057600080fd5b5066b5303ad38b80005b604051908152602001610243565b3480156102e457600080fd5b5061026c6102f3366004611c03565b6106d6565b34801561030457600080fd5b506102ca60175481565b34801561031a57600080fd5b5060405160098152602001610243565b34801561033657600080fd5b5060145461029c906001600160a01b031681565b34801561035657600080fd5b5061020761073f565b34801561036b57600080fd5b5061020761037a366004611c44565b610799565b34801561038b57600080fd5b5061020761039a366004611c71565b610802565b3480156103ab57600080fd5b50610207610868565b3480156103c057600080fd5b506102ca6103cf366004611c44565b610895565b3480156103e057600080fd5b506102076108b7565b3480156103f557600080fd5b50610207610404366004611c8c565b610949565b34801561041557600080fd5b50610207610424366004611c71565b610996565b34801561043557600080fd5b506102ca60155481565b34801561044b57600080fd5b506000546001600160a01b031661029c565b34801561046957600080fd5b506102ca60165481565b34801561047f57600080fd5b506040805180820190915260098152681224a72b20a9a4a7a760b91b6020820152610236565b3480156104b157600080fd5b506102076104c0366004611c8c565b610a00565b3480156104d157600080fd5b5061026c6104e0366004611bd7565b610a4d565b3480156104f157600080fd5b5061026c610500366004611c44565b60116020526000908152604090205460ff1681565b34801561052157600080fd5b50610207610a5a565b34801561053657600080fd5b50610207610545366004611ca5565b610a90565b34801561055657600080fd5b50610207610565366004611d29565b610b4f565b34801561057657600080fd5b506102ca60085481565b34801561058c57600080fd5b506102ca61059b366004611d5b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d257600080fd5b506102076105e1366004611c8c565b610bab565b3480156105f257600080fd5b50610207610601366004611c44565b610bf8565b6000546001600160a01b031633146106535760405162461bcd60e51b81526020600482018190526024820152600080516020611eef83398151915260448201526064015b60405180910390fd5b60005b81518110156106bb5760016011600084848151811061067757610677611d94565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106b381611dc0565b915050610656565b5050565b60006106cc338484610dcb565b5060015b92915050565b60006106e3848484610eef565b610735843361073085604051806060016040528060288152602001611ec7602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061142b565b610dcb565b5060019392505050565b6000546001600160a01b031633146107875760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b66b5303ad38b80006015819055601655565b6000546001600160a01b031633146107e15760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b0316331461084a5760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b60148054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b03161461088857600080fd5b4761089281611465565b50565b6001600160a01b0381166000908152600260205260408120546106d09061149f565b6000546001600160a01b031633146108ff5760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109915760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b601555565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b60148054911515600160a01b0260ff60a01b1990921691909117905543600855565b6000546001600160a01b03163314610a485760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b601755565b60006106cc338484610eef565b6012546001600160a01b0316336001600160a01b031614610a7a57600080fd5b6000610a8530610895565b90506108928161151c565b6000546001600160a01b03163314610ad85760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b60005b82811015610b49578160056000868685818110610afa57610afa611d94565b9050602002016020810190610b0f9190611c44565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b4181611dc0565b915050610adb565b50505050565b6000546001600160a01b03163314610b975760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b600993909355600b91909155600a55600c55565b6000546001600160a01b03163314610bf35760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b601655565b6000546001600160a01b03163314610c405760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b6001600160a01b038116610ca55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610d12575060006106d0565b6000610d1e8385611dd9565b905082610d2b8583611df0565b14610d825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161064a565b9392505050565b6000610d8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611696565b6001600160a01b038316610e2d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064a565b6001600160a01b038216610e8e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064a565b6001600160a01b038216610fb55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064a565b600081116110175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161064a565b6000546001600160a01b0384811691161480159061104357506000546001600160a01b03838116911614155b1561132457601454600160a01b900460ff166110dc576000546001600160a01b038481169116146110dc5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161064a565b60155481111561112e5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161064a565b6001600160a01b03831660009081526011602052604090205460ff1615801561117057506001600160a01b03821660009081526011602052604090205460ff16155b6111c85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161064a565b6014546001600160a01b0383811691161461124d57601654816111ea84610895565b6111f49190611e12565b1061124d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161064a565b600061125830610895565b6017546015549192508210159082106112715760155491505b8080156112885750601454600160a81b900460ff16155b80156112a257506014546001600160a01b03868116911614155b80156112b75750601454600160b01b900460ff165b80156112dc57506001600160a01b03851660009081526005602052604090205460ff16155b801561130157506001600160a01b03841660009081526005602052604090205460ff16155b156113215761130f8261151c565b47801561131f5761131f47611465565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061136657506001600160a01b03831660009081526005602052604090205460ff165b8061139857506014546001600160a01b0385811691161480159061139857506014546001600160a01b03848116911614155b156113a55750600061141f565b6014546001600160a01b0385811691161480156113d057506013546001600160a01b03848116911614155b156113e257600954600d55600a54600e555b6014546001600160a01b03848116911614801561140d57506013546001600160a01b03858116911614155b1561141f57600b54600d55600c54600e555b610b49848484846116c4565b6000818484111561144f5760405162461bcd60e51b815260040161064a9190611b89565b50600061145c8486611e25565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106bb573d6000803e3d6000fd5b60006006548211156115065760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161064a565b60006115106116f2565b9050610d828382610d89565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061156457611564611d94565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e19190611e38565b816001815181106115f4576115f4611d94565b6001600160a01b03928316602091820292909201015260135461161a9130911684610dcb565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611653908590600090869030904290600401611e55565b600060405180830381600087803b15801561166d57600080fd5b505af1158015611681573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b600081836116b75760405162461bcd60e51b815260040161064a9190611b89565b50600061145c8486611df0565b806116d1576116d1611715565b6116dc848484611743565b80610b4957610b49600f54600d55601054600e55565b60008060006116ff61183a565b909250905061170e8282610d89565b9250505090565b600d541580156117255750600e54155b1561172c57565b600d8054600f55600e805460105560009182905555565b60008060008060008061175587611878565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061178790876118d5565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117b69086611917565b6001600160a01b0389166000908152600260205260409020556117d881611976565b6117e284836119c0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161182791815260200190565b60405180910390a3505050505050505050565b600654600090819066b5303ad38b80006118548282610d89565b82101561186f5750506006549266b5303ad38b800092509050565b90939092509050565b60008060008060008060008060006118958a600d54600e546119e4565b92509250925060006118a56116f2565b905060008060006118b88e878787611a39565b919e509c509a509598509396509194505050505091939550919395565b6000610d8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061142b565b6000806119248385611e12565b905083811015610d825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161064a565b60006119806116f2565b9050600061198e8383610d00565b306000908152600260205260409020549091506119ab9082611917565b30600090815260026020526040902055505050565b6006546119cd90836118d5565b6006556007546119dd9082611917565b6007555050565b60008080806119fe60646119f88989610d00565b90610d89565b90506000611a1160646119f88a89610d00565b90506000611a2982611a238b866118d5565b906118d5565b9992985090965090945050505050565b6000808080611a488886610d00565b90506000611a568887610d00565b90506000611a648888610d00565b90506000611a7682611a2386866118d5565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461089257600080fd5b8035611abf81611a9f565b919050565b60006020808385031215611ad757600080fd5b823567ffffffffffffffff80821115611aef57600080fd5b818501915085601f830112611b0357600080fd5b813581811115611b1557611b15611a89565b8060051b604051601f19603f83011681018181108582111715611b3a57611b3a611a89565b604052918252848201925083810185019188831115611b5857600080fd5b938501935b82851015611b7d57611b6e85611ab4565b84529385019392850192611b5d565b98975050505050505050565b600060208083528351808285015260005b81811015611bb657858101830151858201604001528201611b9a565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611bea57600080fd5b8235611bf581611a9f565b946020939093013593505050565b600080600060608486031215611c1857600080fd5b8335611c2381611a9f565b92506020840135611c3381611a9f565b929592945050506040919091013590565b600060208284031215611c5657600080fd5b8135610d8281611a9f565b80358015158114611abf57600080fd5b600060208284031215611c8357600080fd5b610d8282611c61565b600060208284031215611c9e57600080fd5b5035919050565b600080600060408486031215611cba57600080fd5b833567ffffffffffffffff80821115611cd257600080fd5b818601915086601f830112611ce657600080fd5b813581811115611cf557600080fd5b8760208260051b8501011115611d0a57600080fd5b602092830195509350611d209186019050611c61565b90509250925092565b60008060008060808587031215611d3f57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611d6e57600080fd5b8235611d7981611a9f565b91506020830135611d8981611a9f565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611dd257611dd2611daa565b5060010190565b80820281158282048414176106d0576106d0611daa565b600082611e0d57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106d0576106d0611daa565b818103818111156106d0576106d0611daa565b600060208284031215611e4a57600080fd5b8151610d8281611a9f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea55784516001600160a01b031683529383019391830191600101611e80565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220c58970dfc84ea79c31aa913848b1befdd574d6a51edea5d01608b14585dd036964736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101db5760003560e01c806374010ece11610102578063bfd7928411610095578063d00efb2f11610064578063d00efb2f1461056a578063dd62ed3e14610580578063ea1644d5146105c6578063f2fde38b146105e657600080fd5b8063bfd79284146104e5578063c3c8cd8014610515578063c492f0461461052a578063cabfd71c1461054a57600080fd5b80638f9a55c0116100d15780638f9a55c01461045d57806395d89b411461047357806398a5c315146104a5578063a9059cbb146104c557600080fd5b806374010ece146103e957806375f63942146104095780637d1db4a5146104295780638da5cb5b1461043f57600080fd5b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f81461037f5780636fc3eaec1461039f57806370a08231146103b4578063715018a6146103d457600080fd5b8063313ce5671461030e57806349bd5a5e1461032a578063622565891461034a5780636b9990531461035f57600080fd5b80631694505e116101b65780631694505e1461027c57806318160ddd146102b457806323b872dd146102d85780632fd689e3146102f857600080fd5b8062b8cf2a146101e757806306fdde0314610209578063095ea7b31461024c57600080fd5b366101e257005b600080fd5b3480156101f357600080fd5b50610207610202366004611ac4565b610606565b005b34801561021557600080fd5b5060408051808201909152600881526724b73b30b9b4b7b760c11b60208201525b6040516102439190611b89565b60405180910390f35b34801561025857600080fd5b5061026c610267366004611bd7565b6106bf565b6040519015158152602001610243565b34801561028857600080fd5b5060135461029c906001600160a01b031681565b6040516001600160a01b039091168152602001610243565b3480156102c057600080fd5b5066b5303ad38b80005b604051908152602001610243565b3480156102e457600080fd5b5061026c6102f3366004611c03565b6106d6565b34801561030457600080fd5b506102ca60175481565b34801561031a57600080fd5b5060405160098152602001610243565b34801561033657600080fd5b5060145461029c906001600160a01b031681565b34801561035657600080fd5b5061020761073f565b34801561036b57600080fd5b5061020761037a366004611c44565b610799565b34801561038b57600080fd5b5061020761039a366004611c71565b610802565b3480156103ab57600080fd5b50610207610868565b3480156103c057600080fd5b506102ca6103cf366004611c44565b610895565b3480156103e057600080fd5b506102076108b7565b3480156103f557600080fd5b50610207610404366004611c8c565b610949565b34801561041557600080fd5b50610207610424366004611c71565b610996565b34801561043557600080fd5b506102ca60155481565b34801561044b57600080fd5b506000546001600160a01b031661029c565b34801561046957600080fd5b506102ca60165481565b34801561047f57600080fd5b506040805180820190915260098152681224a72b20a9a4a7a760b91b6020820152610236565b3480156104b157600080fd5b506102076104c0366004611c8c565b610a00565b3480156104d157600080fd5b5061026c6104e0366004611bd7565b610a4d565b3480156104f157600080fd5b5061026c610500366004611c44565b60116020526000908152604090205460ff1681565b34801561052157600080fd5b50610207610a5a565b34801561053657600080fd5b50610207610545366004611ca5565b610a90565b34801561055657600080fd5b50610207610565366004611d29565b610b4f565b34801561057657600080fd5b506102ca60085481565b34801561058c57600080fd5b506102ca61059b366004611d5b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156105d257600080fd5b506102076105e1366004611c8c565b610bab565b3480156105f257600080fd5b50610207610601366004611c44565b610bf8565b6000546001600160a01b031633146106535760405162461bcd60e51b81526020600482018190526024820152600080516020611eef83398151915260448201526064015b60405180910390fd5b60005b81518110156106bb5760016011600084848151811061067757610677611d94565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806106b381611dc0565b915050610656565b5050565b60006106cc338484610dcb565b5060015b92915050565b60006106e3848484610eef565b610735843361073085604051806060016040528060288152602001611ec7602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061142b565b610dcb565b5060019392505050565b6000546001600160a01b031633146107875760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b66b5303ad38b80006015819055601655565b6000546001600160a01b031633146107e15760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b0316331461084a5760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b60148054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b03161461088857600080fd5b4761089281611465565b50565b6001600160a01b0381166000908152600260205260408120546106d09061149f565b6000546001600160a01b031633146108ff5760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109915760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b601555565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b60148054911515600160a01b0260ff60a01b1990921691909117905543600855565b6000546001600160a01b03163314610a485760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b601755565b60006106cc338484610eef565b6012546001600160a01b0316336001600160a01b031614610a7a57600080fd5b6000610a8530610895565b90506108928161151c565b6000546001600160a01b03163314610ad85760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b60005b82811015610b49578160056000868685818110610afa57610afa611d94565b9050602002016020810190610b0f9190611c44565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b4181611dc0565b915050610adb565b50505050565b6000546001600160a01b03163314610b975760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b600993909355600b91909155600a55600c55565b6000546001600160a01b03163314610bf35760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b601655565b6000546001600160a01b03163314610c405760405162461bcd60e51b81526020600482018190526024820152600080516020611eef833981519152604482015260640161064a565b6001600160a01b038116610ca55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610d12575060006106d0565b6000610d1e8385611dd9565b905082610d2b8583611df0565b14610d825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161064a565b9392505050565b6000610d8283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611696565b6001600160a01b038316610e2d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064a565b6001600160a01b038216610e8e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f535760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064a565b6001600160a01b038216610fb55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064a565b600081116110175760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161064a565b6000546001600160a01b0384811691161480159061104357506000546001600160a01b03838116911614155b1561132457601454600160a01b900460ff166110dc576000546001600160a01b038481169116146110dc5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161064a565b60155481111561112e5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161064a565b6001600160a01b03831660009081526011602052604090205460ff1615801561117057506001600160a01b03821660009081526011602052604090205460ff16155b6111c85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161064a565b6014546001600160a01b0383811691161461124d57601654816111ea84610895565b6111f49190611e12565b1061124d5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161064a565b600061125830610895565b6017546015549192508210159082106112715760155491505b8080156112885750601454600160a81b900460ff16155b80156112a257506014546001600160a01b03868116911614155b80156112b75750601454600160b01b900460ff165b80156112dc57506001600160a01b03851660009081526005602052604090205460ff16155b801561130157506001600160a01b03841660009081526005602052604090205460ff16155b156113215761130f8261151c565b47801561131f5761131f47611465565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061136657506001600160a01b03831660009081526005602052604090205460ff165b8061139857506014546001600160a01b0385811691161480159061139857506014546001600160a01b03848116911614155b156113a55750600061141f565b6014546001600160a01b0385811691161480156113d057506013546001600160a01b03848116911614155b156113e257600954600d55600a54600e555b6014546001600160a01b03848116911614801561140d57506013546001600160a01b03858116911614155b1561141f57600b54600d55600c54600e555b610b49848484846116c4565b6000818484111561144f5760405162461bcd60e51b815260040161064a9190611b89565b50600061145c8486611e25565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156106bb573d6000803e3d6000fd5b60006006548211156115065760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161064a565b60006115106116f2565b9050610d828382610d89565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061156457611564611d94565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e19190611e38565b816001815181106115f4576115f4611d94565b6001600160a01b03928316602091820292909201015260135461161a9130911684610dcb565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611653908590600090869030904290600401611e55565b600060405180830381600087803b15801561166d57600080fd5b505af1158015611681573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b600081836116b75760405162461bcd60e51b815260040161064a9190611b89565b50600061145c8486611df0565b806116d1576116d1611715565b6116dc848484611743565b80610b4957610b49600f54600d55601054600e55565b60008060006116ff61183a565b909250905061170e8282610d89565b9250505090565b600d541580156117255750600e54155b1561172c57565b600d8054600f55600e805460105560009182905555565b60008060008060008061175587611878565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061178790876118d5565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117b69086611917565b6001600160a01b0389166000908152600260205260409020556117d881611976565b6117e284836119c0565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161182791815260200190565b60405180910390a3505050505050505050565b600654600090819066b5303ad38b80006118548282610d89565b82101561186f5750506006549266b5303ad38b800092509050565b90939092509050565b60008060008060008060008060006118958a600d54600e546119e4565b92509250925060006118a56116f2565b905060008060006118b88e878787611a39565b919e509c509a509598509396509194505050505091939550919395565b6000610d8283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061142b565b6000806119248385611e12565b905083811015610d825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161064a565b60006119806116f2565b9050600061198e8383610d00565b306000908152600260205260409020549091506119ab9082611917565b30600090815260026020526040902055505050565b6006546119cd90836118d5565b6006556007546119dd9082611917565b6007555050565b60008080806119fe60646119f88989610d00565b90610d89565b90506000611a1160646119f88a89610d00565b90506000611a2982611a238b866118d5565b906118d5565b9992985090965090945050505050565b6000808080611a488886610d00565b90506000611a568887610d00565b90506000611a648888610d00565b90506000611a7682611a2386866118d5565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461089257600080fd5b8035611abf81611a9f565b919050565b60006020808385031215611ad757600080fd5b823567ffffffffffffffff80821115611aef57600080fd5b818501915085601f830112611b0357600080fd5b813581811115611b1557611b15611a89565b8060051b604051601f19603f83011681018181108582111715611b3a57611b3a611a89565b604052918252848201925083810185019188831115611b5857600080fd5b938501935b82851015611b7d57611b6e85611ab4565b84529385019392850192611b5d565b98975050505050505050565b600060208083528351808285015260005b81811015611bb657858101830151858201604001528201611b9a565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611bea57600080fd5b8235611bf581611a9f565b946020939093013593505050565b600080600060608486031215611c1857600080fd5b8335611c2381611a9f565b92506020840135611c3381611a9f565b929592945050506040919091013590565b600060208284031215611c5657600080fd5b8135610d8281611a9f565b80358015158114611abf57600080fd5b600060208284031215611c8357600080fd5b610d8282611c61565b600060208284031215611c9e57600080fd5b5035919050565b600080600060408486031215611cba57600080fd5b833567ffffffffffffffff80821115611cd257600080fd5b818601915086601f830112611ce657600080fd5b813581811115611cf557600080fd5b8760208260051b8501011115611d0a57600080fd5b602092830195509350611d209186019050611c61565b90509250925092565b60008060008060808587031215611d3f57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611d6e57600080fd5b8235611d7981611a9f565b91506020830135611d8981611a9f565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611dd257611dd2611daa565b5060010190565b80820281158282048414176106d0576106d0611daa565b600082611e0d57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106d0576106d0611daa565b818103818111156106d0576106d0611daa565b600060208284031215611e4a57600080fd5b8151610d8281611a9f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea55784516001600160a01b031683529383019391830191600101611e80565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220c58970dfc84ea79c31aa913848b1befdd574d6a51edea5d01608b14585dd036964736f6c63430008110033
Deployed Bytecode Sourcemap
4059:13076:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12265:169;;;;;;;;;;-1:-1:-1;12265:169:0;;;;;:::i;:::-;;:::i;:::-;;6420:67;;;;;;;;;;-1:-1:-1;6480:5:0;;;;;;;;;;;;-1:-1:-1;;;6480:5:0;;;;6420:67;;;;;;;:::i;:::-;;;;;;;;7184:161;;;;;;;;;;-1:-1:-1;7184:161:0;;;;;:::i;:::-;;:::i;:::-;;;2608:14:1;;2601:22;2583:41;;2571:2;2556:18;7184:161:0;2443:187:1;5285:41:0;;;;;;;;;;-1:-1:-1;5285:41:0;;;;-1:-1:-1;;;;;5285:41:0;;;;;;-1:-1:-1;;;;;2825:55:1;;;2807:74;;2795:2;2780:18;5285:41:0;2635:252:1;6643:79:0;;;;;;;;;;-1:-1:-1;4614:16:0;6643:79;;;3038:25:1;;;3026:2;3011:18;6643:79:0;2892:177:1;7354:446:0;;;;;;;;;;-1:-1:-1;7354:446:0;;;;;:::i;:::-;;:::i;5605:61::-;;;;;;;;;;;;;;;;6570:67;;;;;;;;;;-1:-1:-1;6570:67:0;;4287:1;3677:36:1;;3665:2;3650:18;6570:67:0;3535:184:1;5333:28:0;;;;;;;;;;-1:-1:-1;5333:28:0;;;;-1:-1:-1;;;;;5333:28:0;;;16530:118;;;;;;;;;;;;;:::i;12443:92::-;;;;;;;;;;-1:-1:-1;12443:92:0;;;;;:::i;:::-;;:::i;16421:101::-;;;;;;;;;;-1:-1:-1;16421:101:0;;;;;:::i;:::-;;:::i;12058:198::-;;;;;;;;;;;;;:::i;6728:122::-;;;;;;;;;;-1:-1:-1;6728:122:0;;;;;:::i;:::-;;:::i;1532:148::-;;;;;;;;;;;;;:::i;16657:108::-;;;;;;;;;;-1:-1:-1;16657:108:0;;;;;:::i;:::-;;:::i;11704:137::-;;;;;;;;;;-1:-1:-1;11704:137:0;;;;;:::i;:::-;;:::i;5477:55::-;;;;;;;;;;;;;;;;1316:79;;;;;;;;;;-1:-1:-1;1354:7:0;1381:6;-1:-1:-1;;;;;1381:6:0;1316:79;;5540:57;;;;;;;;;;;;;;;;6493:71;;;;;;;;;;-1:-1:-1;6555:7:0;;;;;;;;;;;;-1:-1:-1;;;6555:7:0;;;;6493:71;;16273:139;;;;;;;;;;-1:-1:-1;16273:139:0;;;;;:::i;:::-;;:::i;6856:167::-;;;;;;;;;;-1:-1:-1;6856:167:0;;;;;:::i;:::-;;:::i;5132:36::-;;;;;;;;;;-1:-1:-1;5132:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11850:199;;;;;;;;;;;;;:::i;16898:234::-;;;;;;;;;;-1:-1:-1;16898:234:0;;;;;:::i;:::-;;:::i;15967:297::-;;;;;;;;;;-1:-1:-1;15967:297:0;;;;;:::i;:::-;;:::i;4726:26::-;;;;;;;;;;;;;;;;7032:143;;;;;;;;;;-1:-1:-1;7032:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7140:18:0;;;7113:7;7140:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7032:143;16774:115;;;;;;;;;;-1:-1:-1;16774:115:0;;;;;:::i;:::-;;:::i;1689:244::-;;;;;;;;;;-1:-1:-1;1689:244:0;;;;;:::i;:::-;;:::i;12265:169::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;;;;;;;;;12341:9:::1;12336:91;12360:5;:12;12356:1;:16;12336:91;;;12411:4;12394;:14;12399:5;12405:1;12399:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12394:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12394:14:0;:21;;-1:-1:-1;;12394:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12374:3;::::1;::::0;::::1;:::i;:::-;;;;12336:91;;;;12265:169:::0;:::o;7184:161::-;7259:4;7276:39;232:10;7299:7;7308:6;7276:8;:39::i;:::-;-1:-1:-1;7333:4:0;7184:161;;;;;:::o;7354:446::-;7486:4;7503:36;7513:6;7521:9;7532:6;7503:9;:36::i;:::-;7550:220;7573:6;232:10;7621:138;7677:6;7621:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7621:19:0;;;;;;:11;:19;;;;;;;;232:10;7621:33;;;;;;;;;;:37;:138::i;:::-;7550:8;:220::i;:::-;-1:-1:-1;7788:4:0;7354:446;;;;;:::o;16530:118::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;4614:16:::1;16583:12;:22:::0;;;16616:14:::1;:24:::0;16530:118::o;12443:92::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;-1:-1:-1;;;;;12507:12:0::1;12522:5;12507:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;12507:20:0::1;::::0;;12443:92::o;16421:101::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;16488:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16488:26:0::1;-1:-1:-1::0;;;;16488:26:0;;::::1;::::0;;;::::1;::::0;;16421:101::o;12058:198::-;12124:19;;-1:-1:-1;;;;;12124:19:0;232:10;-1:-1:-1;;;;;12108:35:0;;12100:44;;;;;;12184:21;12216:32;12184:21;12216:12;:32::i;:::-;12089:167;12058:198::o;6728:122::-;-1:-1:-1;;;;;6831:16:0;;6794:7;6831:16;;;:7;:16;;;;;;6811:37;;:19;:37::i;1532:148::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;1639:1:::1;1623:6:::0;;1602:40:::1;::::0;-1:-1:-1;;;;;1623:6:0;;::::1;::::0;1602:40:::1;::::0;1639:1;;1602:40:::1;1670:1;1653:19:::0;;-1:-1:-1;;;;;;1653:19:0::1;::::0;;1532:148::o;16657:108::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;16731:12:::1;:26:::0;16657:108::o;11704:137::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;11770:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;11770:26:0::1;-1:-1:-1::0;;;;11770:26:0;;::::1;::::0;;;::::1;::::0;;11821:12:::1;11807:11;:26:::0;11704:137::o;16273:139::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;16364:19:::1;:40:::0;16273:139::o;6856:167::-;6934:4;6951:42;232:10;6975:9;6986:6;6951:9;:42::i;11850:199::-;11916:19;;-1:-1:-1;;;;;11916:19:0;232:10;-1:-1:-1;;;;;11900:35:0;;11892:44;;;;;;11947:23;11973:24;11991:4;11973:9;:24::i;:::-;11947:50;;12008:33;12025:15;12008:16;:33::i;16898:234::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;17015:9:::1;17011:114;17030:19:::0;;::::1;17011:114;;;17105:8;17071:18;:31;17090:8;;17099:1;17090:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17071:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17071:31:0;:42;;-1:-1:-1;;17071:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17051:3;::::1;::::0;::::1;:::i;:::-;;;;17011:114;;;;16898:234:::0;;;:::o;15967:297::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;16104:14:::1;:30:::0;;;;16145:15:::1;:32:::0;;;;16191:12:::1;:26:::0;16228:13:::1;:28:::0;15967:297::o;16774:115::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;16851:14:::1;:30:::0;16774:115::o;1689:244::-;1444:6;;-1:-1:-1;;;;;1444:6:0;232:10;1444:22;1436:67;;;;-1:-1:-1;;;1436:67:0;;6421:2:1;1436:67:0;;;6403:21:1;;;6440:18;;;6433:30;-1:-1:-1;;;;;;;;;;;6479:18:1;;;6472:62;6551:18;;1436:67:0;6219:356:1;1436:67:0;-1:-1:-1;;;;;1778:22:0;::::1;1770:73;;;::::0;-1:-1:-1;;;1770:73:0;;7186:2:1;1770:73:0::1;::::0;::::1;7168:21:1::0;7225:2;7205:18;;;7198:30;7264:34;7244:18;;;7237:62;-1:-1:-1;;;7315:18:1;;;7308:36;7361:19;;1770:73:0::1;6984:402:1::0;1770:73:0::1;1880:6;::::0;;1859:38:::1;::::0;-1:-1:-1;;;;;1859:38:0;;::::1;::::0;1880:6;::::1;::::0;1859:38:::1;::::0;::::1;1908:6;:17:::0;;-1:-1:-1;;;;;;1908:17:0::1;-1:-1:-1::0;;;;;1908:17:0;;;::::1;::::0;;;::::1;::::0;;1689:244::o;2534:246::-;2592:7;2616:1;2621;2616:6;2612:47;;-1:-1:-1;2646:1:0;2639:8;;2612:47;2669:9;2681:5;2685:1;2681;:5;:::i;:::-;2669:17;-1:-1:-1;2714:1:0;2705:5;2709:1;2669:17;2705:5;:::i;:::-;:10;2697:56;;;;-1:-1:-1;;;2697:56:0;;7988:2:1;2697:56:0;;;7970:21:1;8027:2;8007:18;;;8000:30;8066:34;8046:18;;;8039:62;-1:-1:-1;;;8117:18:1;;;8110:31;8158:19;;2697:56:0;7786:397:1;2697:56:0;2771:1;2534:246;-1:-1:-1;;;2534:246:0:o;2789:132::-;2847:7;2874:39;2878:1;2881;2874:39;;;;;;;;;;;;;;;;;:3;:39::i;8497:369::-;-1:-1:-1;;;;;8624:19:0;;8616:68;;;;-1:-1:-1;;;8616:68:0;;8390:2:1;8616:68:0;;;8372:21:1;8429:2;8409:18;;;8402:30;8468:34;8448:18;;;8441:62;-1:-1:-1;;;8519:18:1;;;8512:34;8563:19;;8616:68:0;8188:400:1;8616:68:0;-1:-1:-1;;;;;8703:21:0;;8695:68;;;;-1:-1:-1;;;8695:68:0;;8795:2:1;8695:68:0;;;8777:21:1;8834:2;8814:18;;;8807:30;8873:34;8853:18;;;8846:62;-1:-1:-1;;;8924:18:1;;;8917:32;8966:19;;8695:68:0;8593:398:1;8695:68:0;-1:-1:-1;;;;;8774:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8826:32;;3038:25:1;;;8826:32:0;;3011:18:1;8826:32:0;;;;;;;8497:369;;;:::o;8875:2218::-;-1:-1:-1;;;;;8997:18:0;;8989:68;;;;-1:-1:-1;;;8989:68:0;;9198:2:1;8989:68:0;;;9180:21:1;9237:2;9217:18;;;9210:30;9276:34;9256:18;;;9249:62;-1:-1:-1;;;9327:18:1;;;9320:35;9372:19;;8989:68:0;8996:401:1;8989:68:0;-1:-1:-1;;;;;9076:16:0;;9068:64;;;;-1:-1:-1;;;9068:64:0;;9604:2:1;9068:64:0;;;9586:21:1;9643:2;9623:18;;;9616:30;9682:34;9662:18;;;9655:62;-1:-1:-1;;;9733:18:1;;;9726:33;9776:19;;9068:64:0;9402:399:1;9068:64:0;9160:1;9151:6;:10;9143:64;;;;-1:-1:-1;;;9143:64:0;;10008:2:1;9143:64:0;;;9990:21:1;10047:2;10027:18;;;10020:30;10086:34;10066:18;;;10059:62;-1:-1:-1;;;10137:18:1;;;10130:39;10186:19;;9143:64:0;9806:405:1;9143:64:0;1354:7;1381:6;-1:-1:-1;;;;;9225:15:0;;;1381:6;;9225:15;;;;:32;;-1:-1:-1;1354:7:0;1381:6;-1:-1:-1;;;;;9244:13:0;;;1381:6;;9244:13;;9225:32;9221:1232;;;9282:11;;-1:-1:-1;;;9282:11:0;;;;9277:144;;1354:7;1381:6;-1:-1:-1;;;;;9322:15:0;;;1381:6;;9322:15;9314:91;;;;-1:-1:-1;;;9314:91:0;;10418:2:1;9314:91:0;;;10400:21:1;10457:2;10437:18;;;10430:30;10496:34;10476:18;;;10469:62;10567:33;10547:18;;;10540:61;10618:19;;9314:91:0;10216:427:1;9314:91:0;9456:12;;9446:6;:22;;9438:63;;;;-1:-1:-1;;;9438:63:0;;10850:2:1;9438:63:0;;;10832:21:1;10889:2;10869:18;;;10862:30;10928;10908:18;;;10901:58;10976:18;;9438:63:0;10648:352:1;9438:63:0;-1:-1:-1;;;;;9525:10:0;;;;;;:4;:10;;;;;;;;9524:11;:24;;;;-1:-1:-1;;;;;;9540:8:0;;;;;;:4;:8;;;;;;;;9539:9;9524:24;9516:72;;;;-1:-1:-1;;;9516:72:0;;11207:2:1;9516:72:0;;;11189:21:1;11246:2;11226:18;;;11219:30;11285:34;11265:18;;;11258:62;-1:-1:-1;;;11336:18:1;;;11329:33;11379:19;;9516:72:0;11005:399:1;9516:72:0;9615:13;;-1:-1:-1;;;;;9609:19:0;;;9615:13;;9609:19;9606:146;;9682:14;;9673:6;9657:13;9667:2;9657:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9649:87;;;;-1:-1:-1;;;9649:87:0;;11741:2:1;9649:87:0;;;11723:21:1;11780:2;11760:18;;;11753:30;11819:34;11799:18;;;11792:62;-1:-1:-1;;;11870:18:1;;;11863:33;11913:19;;9649:87:0;11539:399:1;9649:87:0;9769:28;9800:24;9818:4;9800:9;:24::i;:::-;9878:19;;9942:12;;9769:55;;-1:-1:-1;9854:43:0;;;;9918:36;;9915:124;;10011:12;;9988:35;;9915:124;10060:7;:18;;;;-1:-1:-1;10072:6:0;;-1:-1:-1;;;10072:6:0;;;;10071:7;10060:18;:43;;;;-1:-1:-1;10090:13:0;;-1:-1:-1;;;;;10082:21:0;;;10090:13;;10082:21;;10060:43;:58;;;;-1:-1:-1;10107:11:0;;-1:-1:-1;;;10107:11:0;;;;10060:58;:87;;;;-1:-1:-1;;;;;;10123:24:0;;;;;;:18;:24;;;;;;;;10122:25;10060:87;:114;;;;-1:-1:-1;;;;;;10152:22:0;;;;;;:18;:22;;;;;;;;10151:23;10060:114;10056:386;;;10195:38;10212:20;10195:16;:38::i;:::-;10281:21;10325:22;;10321:106;;10372:35;10385:21;10372:12;:35::i;:::-;10176:266;10056:386;9259:1194;;9221:1232;-1:-1:-1;;;;;10504:24:0;;10466:12;10504:24;;;:18;:24;;;;;;10481:4;;10504:24;;;:50;;-1:-1:-1;;;;;;10532:22:0;;;;;;:18;:22;;;;;;;;10504:50;10503:102;;;-1:-1:-1;10568:13:0;;-1:-1:-1;;;;;10560:21:0;;;10568:13;;10560:21;;;;:44;;-1:-1:-1;10591:13:0;;-1:-1:-1;;;;;10585:19:0;;;10591:13;;10585:19;;10560:44;10499:532;;;-1:-1:-1;10632:5:0;10499:532;;;10684:13;;-1:-1:-1;;;;;10676:21:0;;;10684:13;;10676:21;:55;;;;-1:-1:-1;10715:15:0;;-1:-1:-1;;;;;10701:30:0;;;10715:15;;10701:30;;10676:55;10673:162;;;10764:14;;10752:9;:26;10807:12;;10797:7;:22;10673:162;10862:13;;-1:-1:-1;;;;;10856:19:0;;;10862:13;;10856:19;:55;;;;-1:-1:-1;10895:15:0;;-1:-1:-1;;;;;10879:32:0;;;10895:15;;10879:32;;10856:55;10852:165;;;10944:15;;10932:9;:27;10988:13;;10978:7;:23;10852:165;11044:41;11059:4;11065:2;11069:6;11077:7;11044:14;:41::i;2301:224::-;2421:7;2457:12;2449:6;;;;2441:29;;;;-1:-1:-1;;;2441:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2481:9:0;2493:5;2497:1;2493;:5;:::i;:::-;2481:17;2301:224;-1:-1:-1;;;;;2301:224:0:o;11594:101::-;11651:19;;:36;;-1:-1:-1;;;;;11651:19:0;;;;:36;;;;;11680:6;;11651:19;:36;:19;:36;11680:6;11651:19;:36;;;;;;;;;;;;;;;;;;;7809:323;7904:7;7962;;7951;:18;;7929:110;;;;-1:-1:-1;;;7929:110:0;;12278:2:1;7929:110:0;;;12260:21:1;12317:2;12297:18;;;12290:30;12356:34;12336:18;;;12329:62;-1:-1:-1;;;12407:18:1;;;12400:40;12457:19;;7929:110:0;12076:406:1;7929:110:0;8050:19;8072:10;:8;:10::i;:::-;8050:32;-1:-1:-1;8100:24:0;:7;8050:32;8100:11;:24::i;11102:483::-;5762:6;:13;;-1:-1:-1;;;;5762:13:0;-1:-1:-1;;;5762:13:0;;;11204:16:::1;::::0;;11218:1:::1;11204:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11204:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11204:16:0::1;11180:40;;11249:4;11231;11236:1;11231:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11231:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11275:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11275:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11231:7;;11275:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11265:4;11270:1;11265:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11265:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11340:15:::1;::::0;11308:62:::1;::::0;11325:4:::1;::::0;11340:15:::1;11358:11:::0;11308:8:::1;:62::i;:::-;11381:15;::::0;:196:::1;::::0;-1:-1:-1;;;11381:196:0;;-1:-1:-1;;;;;11381:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11462:11;;11381:15:::1;::::0;11504:4;;11531::::1;::::0;11551:15:::1;::::0;11381:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5798:6:0;:14;;-1:-1:-1;;;;5798:14:0;;;-1:-1:-1;;;;11102:483:0:o;2930:223::-;3050:7;3085:12;3078:5;3070:28;;;;-1:-1:-1;;;3070:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3109:9:0;3121:5;3125:1;3121;:5;:::i;12544:282::-;12700:7;12695:28;;12709:14;:12;:14::i;:::-;12734:44;12752:6;12760:9;12771:6;12734:17;:44::i;:::-;12794:7;12789:29;;12803:15;8427:17;;8415:9;:29;8465:15;;8455:7;:25;8371:117;15522:167;15564:7;15585:15;15602;15621:19;:17;:19::i;:::-;15584:56;;-1:-1:-1;15584:56:0;-1:-1:-1;15661:20:0;15584:56;;15661:11;:20::i;:::-;15654:27;;;;15522:167;:::o;8141:221::-;8188:9;;:14;:30;;;;-1:-1:-1;8206:7:0;;:12;8188:30;8184:43;;;8141:221::o;8184:43::-;8260:9;;;8240:17;:29;8298:7;;;8280:15;:25;-1:-1:-1;8319:13:0;;;;8343:11;8141:221::o;12835:610::-;12982:15;13012:23;13050:12;13077:23;13115:12;13142:13;13169:19;13180:7;13169:10;:19::i;:::-;-1:-1:-1;;;;;13217:15:0;;;;;;:7;:15;;;;;;12967:221;;-1:-1:-1;12967:221:0;;-1:-1:-1;12967:221:0;;-1:-1:-1;12967:221:0;-1:-1:-1;12967:221:0;-1:-1:-1;12967:221:0;-1:-1:-1;13217:28:0;;12967:221;13217:19;:28::i;:::-;-1:-1:-1;;;;;13199:15:0;;;;;;;:7;:15;;;;;;:46;;;;13277:18;;;;;;;:39;;13300:15;13277:22;:39::i;:::-;-1:-1:-1;;;;;13256:18:0;;;;;;:7;:18;;;;;:60;13327:16;13337:5;13327:9;:16::i;:::-;13354:23;13366:4;13372;13354:11;:23::i;:::-;13410:9;-1:-1:-1;;;;;13393:44:0;13402:6;-1:-1:-1;;;;;13393:44:0;;13421:15;13393:44;;;;3038:25:1;;3026:2;3011:18;;2892:177;13393:44:0;;;;;;;;12956:489;;;;;;12835:610;;;:::o;15698:260::-;15796:7;;15749;;;;4614:16;15864:20;15796:7;4614:16;15864:11;:20::i;:::-;15854:7;:30;15850:61;;;-1:-1:-1;;15894:7:0;;;4614:16;;-1:-1:-1;15698:260:0;-1:-1:-1;15698:260:0:o;15850:61::-;15933:7;;15942;;-1:-1:-1;15698:260:0;-1:-1:-1;15698:260:0:o;13868:618::-;13968:7;13990;14012;14034;14056;14078;14114:23;14139:12;14153:13;14183:40;14195:7;14204:9;;14215:7;;14183:11;:40::i;:::-;14113:110;;;;;;14234:19;14256:10;:8;:10::i;:::-;14234:32;;14278:15;14295:23;14320:12;14349:46;14361:7;14370:4;14376:5;14383:11;14349;:46::i;:::-;14277:118;;-1:-1:-1;14277:118:0;-1:-1:-1;14277:118:0;-1:-1:-1;14449:15:0;;-1:-1:-1;14466:4:0;;-1:-1:-1;14472:5:0;;-1:-1:-1;;;;;13868:618:0;;;;;;;:::o;2156:136::-;2214:7;2241:43;2245:1;2248;2241:43;;;;;;;;;;;;;;;;;:3;:43::i;1968:179::-;2026:7;;2058:5;2062:1;2058;:5;:::i;:::-;2046:17;;2087:1;2082;:6;;2074:46;;;;-1:-1:-1;;;2074:46:0;;13976:2:1;2074:46:0;;;13958:21:1;14015:2;13995:18;;;13988:30;14054:29;14034:18;;;14027:57;14101:18;;2074:46:0;13774:351:1;13454:211:0;13507:19;13529:10;:8;:10::i;:::-;13507:32;-1:-1:-1;13550:13:0;13566:22;:5;13507:32;13566:9;:22::i;:::-;13640:4;13624:22;;;;:7;:22;;;;;;13550:38;;-1:-1:-1;13624:33:0;;13550:38;13624:26;:33::i;:::-;13615:4;13599:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13454:211:0:o;13674:147::-;13752:7;;:17;;13764:4;13752:11;:17::i;:::-;13742:7;:27;13793:10;;:20;;13808:4;13793:14;:20::i;:::-;13780:10;:33;-1:-1:-1;;13674:147:0:o;14495:472::-;14664:7;;;;14758:30;14784:3;14758:21;:7;14770:8;14758:11;:21::i;:::-;:25;;:30::i;:::-;14743:45;-1:-1:-1;14799:13:0;14815:28;14839:3;14815:19;:7;14827:6;14815:11;:19::i;:28::-;14799:44;-1:-1:-1;14854:23:0;14880:28;14799:44;14880:17;:7;14892:4;14880:11;:17::i;:::-;:21;;:28::i;:::-;14854:54;14947:4;;-1:-1:-1;14953:5:0;;-1:-1:-1;14495:472:0;;-1:-1:-1;;;;;14495:472:0:o;14976:537::-;15170:7;;;;15267:24;:7;15279:11;15267;:24::i;:::-;15249:42;-1:-1:-1;15302:12:0;15317:21;:4;15326:11;15317:8;:21::i;:::-;15302:36;-1:-1:-1;15349:13:0;15365:22;:5;15375:11;15365:9;:22::i;:::-;15349:38;-1:-1:-1;15398:23:0;15424:28;15349:38;15424:17;:7;15436:4;15424:11;:17::i;:28::-;15474:7;;;;-1:-1:-1;15500:4:0;;-1:-1:-1;14976:537:0;;-1:-1:-1;;;;;;;14976:537:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:154;-1:-1:-1;;;;;225:5:1;221:54;214:5;211:65;201:93;;290:1;287;280:12;305:134;373:20;;402:31;373:20;402:31;:::i;:::-;305:134;;;:::o;444:1121::-;528:6;559:2;602;590:9;581:7;577:23;573:32;570:52;;;618:1;615;608:12;570:52;658:9;645:23;687:18;728:2;720:6;717:14;714:34;;;744:1;741;734:12;714:34;782:6;771:9;767:22;757:32;;827:7;820:4;816:2;812:13;808:27;798:55;;849:1;846;839:12;798:55;885:2;872:16;907:2;903;900:10;897:36;;;913:18;;:::i;:::-;959:2;956:1;952:10;991:2;985:9;1054:2;1050:7;1045:2;1041;1037:11;1033:25;1025:6;1021:38;1109:6;1097:10;1094:22;1089:2;1077:10;1074:18;1071:46;1068:72;;;1120:18;;:::i;:::-;1156:2;1149:22;1206:18;;;1240:15;;;;-1:-1:-1;1282:11:1;;;1278:20;;;1310:19;;;1307:39;;;1342:1;1339;1332:12;1307:39;1366:11;;;;1386:148;1402:6;1397:3;1394:15;1386:148;;;1468:23;1487:3;1468:23;:::i;:::-;1456:36;;1419:12;;;;1512;;;;1386:148;;;1553:6;444:1121;-1:-1:-1;;;;;;;;444:1121:1:o;1570:548::-;1682:4;1711:2;1740;1729:9;1722:21;1772:6;1766:13;1815:6;1810:2;1799:9;1795:18;1788:34;1840:1;1850:140;1864:6;1861:1;1858:13;1850:140;;;1959:14;;;1955:23;;1949:30;1925:17;;;1944:2;1921:26;1914:66;1879:10;;1850:140;;;1854:3;2039:1;2034:2;2025:6;2014:9;2010:22;2006:31;1999:42;2109:2;2102;2098:7;2093:2;2085:6;2081:15;2077:29;2066:9;2062:45;2058:54;2050:62;;;;1570:548;;;;:::o;2123:315::-;2191:6;2199;2252:2;2240:9;2231:7;2227:23;2223:32;2220:52;;;2268:1;2265;2258:12;2220:52;2307:9;2294:23;2326:31;2351:5;2326:31;:::i;:::-;2376:5;2428:2;2413:18;;;;2400:32;;-1:-1:-1;;;2123:315:1:o;3074:456::-;3151:6;3159;3167;3220:2;3208:9;3199:7;3195:23;3191:32;3188:52;;;3236:1;3233;3226:12;3188:52;3275:9;3262:23;3294:31;3319:5;3294:31;:::i;:::-;3344:5;-1:-1:-1;3401:2:1;3386:18;;3373:32;3414:33;3373:32;3414:33;:::i;:::-;3074:456;;3466:7;;-1:-1:-1;;;3520:2:1;3505:18;;;;3492:32;;3074:456::o;3955:247::-;4014:6;4067:2;4055:9;4046:7;4042:23;4038:32;4035:52;;;4083:1;4080;4073:12;4035:52;4122:9;4109:23;4141:31;4166:5;4141:31;:::i;4207:160::-;4272:20;;4328:13;;4321:21;4311:32;;4301:60;;4357:1;4354;4347:12;4372:180;4428:6;4481:2;4469:9;4460:7;4456:23;4452:32;4449:52;;;4497:1;4494;4487:12;4449:52;4520:26;4536:9;4520:26;:::i;4557:180::-;4616:6;4669:2;4657:9;4648:7;4644:23;4640:32;4637:52;;;4685:1;4682;4675:12;4637:52;-1:-1:-1;4708:23:1;;4557:180;-1:-1:-1;4557:180:1:o;4742:689::-;4834:6;4842;4850;4903:2;4891:9;4882:7;4878:23;4874:32;4871:52;;;4919:1;4916;4909:12;4871:52;4959:9;4946:23;4988:18;5029:2;5021:6;5018:14;5015:34;;;5045:1;5042;5035:12;5015:34;5083:6;5072:9;5068:22;5058:32;;5128:7;5121:4;5117:2;5113:13;5109:27;5099:55;;5150:1;5147;5140:12;5099:55;5190:2;5177:16;5216:2;5208:6;5205:14;5202:34;;;5232:1;5229;5222:12;5202:34;5287:7;5280:4;5270:6;5267:1;5263:14;5259:2;5255:23;5251:34;5248:47;5245:67;;;5308:1;5305;5298:12;5245:67;5339:4;5331:13;;;;-1:-1:-1;5363:6:1;-1:-1:-1;5388:37:1;;5404:20;;;-1:-1:-1;5388:37:1;:::i;:::-;5378:47;;4742:689;;;;;:::o;5436:385::-;5522:6;5530;5538;5546;5599:3;5587:9;5578:7;5574:23;5570:33;5567:53;;;5616:1;5613;5606:12;5567:53;-1:-1:-1;;5639:23:1;;;5709:2;5694:18;;5681:32;;-1:-1:-1;5760:2:1;5745:18;;5732:32;;5811:2;5796:18;5783:32;;-1:-1:-1;5436:385:1;-1:-1:-1;5436:385:1:o;5826:388::-;5894:6;5902;5955:2;5943:9;5934:7;5930:23;5926:32;5923:52;;;5971:1;5968;5961:12;5923:52;6010:9;5997:23;6029:31;6054:5;6029:31;:::i;:::-;6079:5;-1:-1:-1;6136:2:1;6121:18;;6108:32;6149:33;6108:32;6149:33;:::i;:::-;6201:7;6191:17;;;5826:388;;;;;:::o;6580:127::-;6641:10;6636:3;6632:20;6629:1;6622:31;6672:4;6669:1;6662:15;6696:4;6693:1;6686:15;6712:127;6773:10;6768:3;6764:20;6761:1;6754:31;6804:4;6801:1;6794:15;6828:4;6825:1;6818:15;6844:135;6883:3;6904:17;;;6901:43;;6924:18;;:::i;:::-;-1:-1:-1;6971:1:1;6960:13;;6844:135::o;7391:168::-;7464:9;;;7495;;7512:15;;;7506:22;;7492:37;7482:71;;7533:18;;:::i;7564:217::-;7604:1;7630;7620:132;;7674:10;7669:3;7665:20;7662:1;7655:31;7709:4;7706:1;7699:15;7737:4;7734:1;7727:15;7620:132;-1:-1:-1;7766:9:1;;7564:217::o;11409:125::-;11474:9;;;11495:10;;;11492:36;;;11508:18;;:::i;11943:128::-;12010:9;;;12031:11;;;12028:37;;;12045:18;;:::i;12487:251::-;12557:6;12610:2;12598:9;12589:7;12585:23;12581:32;12578:52;;;12626:1;12623;12616:12;12578:52;12658:9;12652:16;12677:31;12702:5;12677:31;:::i;12743:1026::-;13005:4;13053:3;13042:9;13038:19;13084:6;13073:9;13066:25;13110:2;13148:6;13143:2;13132:9;13128:18;13121:34;13191:3;13186:2;13175:9;13171:18;13164:31;13215:6;13250;13244:13;13281:6;13273;13266:22;13319:3;13308:9;13304:19;13297:26;;13358:2;13350:6;13346:15;13332:29;;13379:1;13389:218;13403:6;13400:1;13397:13;13389:218;;;13468:13;;-1:-1:-1;;;;;13464:62:1;13452:75;;13582:15;;;;13547:12;;;;13425:1;13418:9;13389:218;;;-1:-1:-1;;;;;;;13663:55:1;;;;13658:2;13643:18;;13636:83;-1:-1:-1;;;13750:3:1;13735:19;13728:35;13624:3;12743:1026;-1:-1:-1;;;12743:1026:1:o
Swarm Source
ipfs://c58970dfc84ea79c31aa913848b1befdd574d6a51edea5d01608b14585dd0369
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.