More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 27 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 16408610 | 709 days ago | IN | 0 ETH | 0.00090237 | ||||
Approve | 16408592 | 709 days ago | IN | 0 ETH | 0.00090418 | ||||
Set Fee | 16408573 | 709 days ago | IN | 0 ETH | 0.0058135 | ||||
Approve | 16408571 | 709 days ago | IN | 0 ETH | 0.0009782 | ||||
Approve | 16408571 | 709 days ago | IN | 0 ETH | 0.00098116 | ||||
Approve | 16408561 | 709 days ago | IN | 0 ETH | 0.00103254 | ||||
Approve | 16408560 | 709 days ago | IN | 0 ETH | 0.00104837 | ||||
Approve | 16408559 | 709 days ago | IN | 0 ETH | 0.0011454 | ||||
Approve | 16408558 | 709 days ago | IN | 0 ETH | 0.0015679 | ||||
Set Max Wallet S... | 16408557 | 709 days ago | IN | 0 ETH | 0.00066715 | ||||
Approve | 16408557 | 709 days ago | IN | 0 ETH | 0.00117727 | ||||
Approve | 16408556 | 709 days ago | IN | 0 ETH | 0.00119632 | ||||
Approve | 16408554 | 709 days ago | IN | 0 ETH | 0.00122195 | ||||
Approve | 16408552 | 709 days ago | IN | 0 ETH | 0.00131709 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.00125684 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.0013118 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.00133603 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.00133603 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.00138168 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.00139099 | ||||
Approve | 16408550 | 709 days ago | IN | 0 ETH | 0.00139099 | ||||
Approve | 16408543 | 709 days ago | IN | 0 ETH | 0.00147943 | ||||
Approve | 16408542 | 709 days ago | IN | 0 ETH | 0.0013978 | ||||
Set Trading | 16408542 | 709 days ago | IN | 0 ETH | 0.00083813 | ||||
Approve | 16408542 | 709 days ago | IN | 0 ETH | 0.0013978 |
Loading...
Loading
Contract Name:
DOUG
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-15 */ /** $DOUG Based from the core team of $BTTY (60k mcap 0 tax coin right now, went to 800k in 3 hours of launch) We launched $DOUG in the summer and hit 100k mcap before slowly dying. We have decided to relaunch as a 0 tax coin & make crypto great again! JOIN OUR TELEGRAM: Https://T.me/DougInu */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.4; 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 DOUG is Context, IERC20, Ownable {/////////////////////////////////////////////////////////// using SafeMath for uint256; string private constant _name = "Doug Inu";////////////////////////// string private constant _symbol = "DOUG";////////////////////////////////////////////////////////////////////////// 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 = 100_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _redisFeeOnBuy = 0;//////////////////////////////////////////////////////////////////// uint256 private _taxFeeOnBuy = 0;////////////////////////////////////////////////////////////////////// //Sell Fee uint256 private _redisFeeOnSell = 0;///////////////////////////////////////////////////////////////////// uint256 private _taxFeeOnSell = 0;///////////////////////////////////////////////////////////////////// //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xaA89B37B1f6f84e4172183D242ec105E31591Eac);///////////////////////////////////////////////// address payable private _marketingAddress = payable(0xaA89B37B1f6f84e4172183D242ec105E31591Eac);/////////////////////////////////////////////////// IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 100000000 * 10**9; //1% uint256 public _maxWalletSize = 2000000 * 10**9; //1% uint256 public _swapTokensAtAmount = 500000 * 10**9; //0.5% event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);///////////////////////////////////////////////// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; 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()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 50000000000000000) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set MAx transaction 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":[],"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":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","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":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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
60806040526200001a67016345785d8a0000600019620003eb565b6200002890600019620003c7565b600655600060088190556009819055600a819055600b819055600c819055600d819055600e819055600f55601280546001600160a01b031990811673aa89b37b1f6f84e4172183d242ec105e31591eac9081179092556013805490911690911790556015805461ffff60a81b1916600160b01b17905567016345785d8a000060165566071afd498d00006017556601c6bf52634000601855348015620000cd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200018657600080fd5b505afa1580156200019b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c1919062000397565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020a57600080fd5b505afa1580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000245919062000397565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200028e57600080fd5b505af1158015620002a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c9919062000397565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200038891815260200190565b60405180910390a3506200040c565b600060208284031215620003a9578081fd5b81516001600160a01b0381168114620003c0578182fd5b9392505050565b600082821015620003e657634e487b7160e01b81526011600452602481fd5b500390565b6000826200040757634e487b7160e01b81526012600452602481fd5b500690565b611b79806200041c6000396000f3fe6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146104b6578063dd62ed3e146104d6578063ea1644d51461051c578063f2fde38b1461053c57600080fd5b8063a9059cbb14610451578063bfd7928414610471578063c3c8cd80146104a157600080fd5b80638f9a55c0116100c65780638f9a55c0146103ce57806395d89b41146103e457806398a5c31514610411578063a2a957bb1461043157600080fd5b80637d1db4a51461037a5780638da5cb5b146103905780638f70ccf7146103ae57600080fd5b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461031057806370a0823114610325578063715018a61461034557806374010ece1461035a57600080fd5b8063313ce567146102b257806349bd5a5e146102ce5780636d8aa8f8146102ee57600080fd5b806306fdde03146101ac578063095ea7b3146101ef5780631694505e1461021f57806318160ddd1461025757806323b872dd1461027c5780632fd689e31461029c57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b50604080518082019091526008815267446f756720496e7560c01b60208201525b6040516101e6919061196f565b60405180910390f35b3480156101fb57600080fd5b5061020f61020a366004611862565b61055c565b60405190151581526020016101e6565b34801561022b57600080fd5b5060145461023f906001600160a01b031681565b6040516001600160a01b0390911681526020016101e6565b34801561026357600080fd5b5067016345785d8a00005b6040519081526020016101e6565b34801561028857600080fd5b5061020f610297366004611822565b610573565b3480156102a857600080fd5b5061026e60185481565b3480156102be57600080fd5b50604051600981526020016101e6565b3480156102da57600080fd5b5060155461023f906001600160a01b031681565b3480156102fa57600080fd5b5061030e61030936600461190c565b6105dc565b005b34801561031c57600080fd5b5061030e61062d565b34801561033157600080fd5b5061026e6103403660046117b2565b61063a565b34801561035157600080fd5b5061030e61065c565b34801561036657600080fd5b5061030e610375366004611926565b6106d0565b34801561038657600080fd5b5061026e60165481565b34801561039c57600080fd5b506000546001600160a01b031661023f565b3480156103ba57600080fd5b5061030e6103c936600461190c565b6106ff565b3480156103da57600080fd5b5061026e60175481565b3480156103f057600080fd5b50604080518082019091526004815263444f554760e01b60208201526101d9565b34801561041d57600080fd5b5061030e61042c366004611926565b610747565b34801561043d57600080fd5b5061030e61044c36600461193e565b610776565b34801561045d57600080fd5b5061020f61046c366004611862565b6107b4565b34801561047d57600080fd5b5061020f61048c3660046117b2565b60106020526000908152604090205460ff1681565b3480156104ad57600080fd5b5061030e6107c1565b3480156104c257600080fd5b5061030e6104d136600461188d565b610815565b3480156104e257600080fd5b5061026e6104f13660046117ea565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561052857600080fd5b5061030e610537366004611926565b6108c4565b34801561054857600080fd5b5061030e6105573660046117b2565b6108f3565b60006105693384846109dd565b5060015b92915050565b6000610580848484610b01565b6105d284336105cd85604051806060016040528060288152602001611b1c602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611046565b6109dd565b5060019392505050565b6000546001600160a01b0316331461060f5760405162461bcd60e51b8152600401610606906119c2565b60405180910390fd5b60158054911515600160b01b0260ff60b01b19909216919091179055565b4761063781611080565b50565b6001600160a01b03811660009081526002602052604081205461056d906110be565b6000546001600160a01b031633146106865760405162461bcd60e51b8152600401610606906119c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106fa5760405162461bcd60e51b8152600401610606906119c2565b601655565b6000546001600160a01b031633146107295760405162461bcd60e51b8152600401610606906119c2565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107715760405162461bcd60e51b8152600401610606906119c2565b601855565b6000546001600160a01b031633146107a05760405162461bcd60e51b8152600401610606906119c2565b600893909355600a91909155600955600b55565b6000610569338484610b01565b6012546001600160a01b0316336001600160a01b031614806107f657506013546001600160a01b0316336001600160a01b0316145b6107ff57600080fd5b600061080a3061063a565b905061063781611142565b6000546001600160a01b0316331461083f5760405162461bcd60e51b8152600401610606906119c2565b60005b828110156108be57816005600086868581811061086f57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061088491906117b2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108b681611ad5565b915050610842565b50505050565b6000546001600160a01b031633146108ee5760405162461bcd60e51b8152600401610606906119c2565b601755565b6000546001600160a01b0316331461091d5760405162461bcd60e51b8152600401610606906119c2565b6001600160a01b0381166109825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610606565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a3f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610606565b6001600160a01b038216610aa05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610606565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610606565b6001600160a01b038216610bc75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610606565b60008111610c295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610606565b6000546001600160a01b03848116911614801590610c5557506000546001600160a01b03838116911614155b15610f3f57601554600160a01b900460ff16610cee576000546001600160a01b03848116911614610cee5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610606565b601654811115610d405760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610606565b6001600160a01b03831660009081526010602052604090205460ff16158015610d8257506001600160a01b03821660009081526010602052604090205460ff16155b610dda5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610606565b6015546001600160a01b03838116911614610e5f5760175481610dfc8461063a565b610e069190611a67565b10610e5f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610606565b6000610e6a3061063a565b601854601654919250821015908210610e835760165491505b808015610e9a5750601554600160a81b900460ff16155b8015610eb457506015546001600160a01b03868116911614155b8015610ec95750601554600160b01b900460ff165b8015610eee57506001600160a01b03851660009081526005602052604090205460ff16155b8015610f1357506001600160a01b03841660009081526005602052604090205460ff16155b15610f3c57610f2182611142565b4766b1a2bc2ec50000811115610f3a57610f3a47611080565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610f8157506001600160a01b03831660009081526005602052604090205460ff165b80610fb357506015546001600160a01b03858116911614801590610fb357506015546001600160a01b03848116911614155b15610fc05750600061103a565b6015546001600160a01b038581169116148015610feb57506014546001600160a01b03848116911614155b15610ffd57600854600c55600954600d555b6015546001600160a01b03848116911614801561102857506014546001600160a01b03858116911614155b1561103a57600a54600c55600b54600d555b6108be848484846112e7565b6000818484111561106a5760405162461bcd60e51b8152600401610606919061196f565b5060006110778486611abe565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110ba573d6000803e3d6000fd5b5050565b60006006548211156111255760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610606565b600061112f611315565b905061113b8382611338565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061119857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156111ec57600080fd5b505afa158015611200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122491906117ce565b8160018151811061124557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260145461126b91309116846109dd565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112a49085906000908690309042906004016119f7565b600060405180830381600087803b1580156112be57600080fd5b505af11580156112d2573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806112f4576112f461137a565b6112ff8484846113a8565b806108be576108be600e54600c55600f54600d55565b600080600061132261149f565b90925090506113318282611338565b9250505090565b600061113b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114df565b600c5415801561138a5750600d54155b1561139157565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806113ba8761150d565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113ec908761156a565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461141b90866115ac565b6001600160a01b03891660009081526002602052604090205561143d8161160b565b6114478483611655565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161148c91815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a00006114ba8282611338565b8210156114d65750506006549267016345785d8a000092509050565b90939092509050565b600081836115005760405162461bcd60e51b8152600401610606919061196f565b5060006110778486611a7f565b600080600080600080600080600061152a8a600c54600d54611679565b925092509250600061153a611315565b9050600080600061154d8e8787876116ce565b919e509c509a509598509396509194505050505091939550919395565b600061113b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611046565b6000806115b98385611a67565b90508381101561113b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610606565b6000611615611315565b90506000611623838361171e565b3060009081526002602052604090205490915061164090826115ac565b30600090815260026020526040902055505050565b600654611662908361156a565b60065560075461167290826115ac565b6007555050565b6000808080611693606461168d898961171e565b90611338565b905060006116a6606461168d8a8961171e565b905060006116be826116b88b8661156a565b9061156a565b9992985090965090945050505050565b60008080806116dd888661171e565b905060006116eb888761171e565b905060006116f9888861171e565b9050600061170b826116b8868661156a565b939b939a50919850919650505050505050565b60008261172d5750600061056d565b60006117398385611a9f565b9050826117468583611a7f565b1461113b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610606565b803580151581146117ad57600080fd5b919050565b6000602082840312156117c3578081fd5b813561113b81611b06565b6000602082840312156117df578081fd5b815161113b81611b06565b600080604083850312156117fc578081fd5b823561180781611b06565b9150602083013561181781611b06565b809150509250929050565b600080600060608486031215611836578081fd5b833561184181611b06565b9250602084013561185181611b06565b929592945050506040919091013590565b60008060408385031215611874578182fd5b823561187f81611b06565b946020939093013593505050565b6000806000604084860312156118a1578283fd5b833567ffffffffffffffff808211156118b8578485fd5b818601915086601f8301126118cb578485fd5b8135818111156118d9578586fd5b8760208260051b85010111156118ed578586fd5b602092830195509350611903918601905061179d565b90509250925092565b60006020828403121561191d578081fd5b61113b8261179d565b600060208284031215611937578081fd5b5035919050565b60008060008060808587031215611953578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b8181101561199b5785810183015185820160400152820161197f565b818111156119ac5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a465784516001600160a01b031683529383019391830191600101611a21565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a7a57611a7a611af0565b500190565b600082611a9a57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611ab957611ab9611af0565b500290565b600082821015611ad057611ad0611af0565b500390565b6000600019821415611ae957611ae9611af0565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461063757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c94bd82f2d9926a5e338935bdbd9f68fc3ab263eaddbf390b8e44ce9bbae32cb64736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146104b6578063dd62ed3e146104d6578063ea1644d51461051c578063f2fde38b1461053c57600080fd5b8063a9059cbb14610451578063bfd7928414610471578063c3c8cd80146104a157600080fd5b80638f9a55c0116100c65780638f9a55c0146103ce57806395d89b41146103e457806398a5c31514610411578063a2a957bb1461043157600080fd5b80637d1db4a51461037a5780638da5cb5b146103905780638f70ccf7146103ae57600080fd5b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461031057806370a0823114610325578063715018a61461034557806374010ece1461035a57600080fd5b8063313ce567146102b257806349bd5a5e146102ce5780636d8aa8f8146102ee57600080fd5b806306fdde03146101ac578063095ea7b3146101ef5780631694505e1461021f57806318160ddd1461025757806323b872dd1461027c5780632fd689e31461029c57600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b50604080518082019091526008815267446f756720496e7560c01b60208201525b6040516101e6919061196f565b60405180910390f35b3480156101fb57600080fd5b5061020f61020a366004611862565b61055c565b60405190151581526020016101e6565b34801561022b57600080fd5b5060145461023f906001600160a01b031681565b6040516001600160a01b0390911681526020016101e6565b34801561026357600080fd5b5067016345785d8a00005b6040519081526020016101e6565b34801561028857600080fd5b5061020f610297366004611822565b610573565b3480156102a857600080fd5b5061026e60185481565b3480156102be57600080fd5b50604051600981526020016101e6565b3480156102da57600080fd5b5060155461023f906001600160a01b031681565b3480156102fa57600080fd5b5061030e61030936600461190c565b6105dc565b005b34801561031c57600080fd5b5061030e61062d565b34801561033157600080fd5b5061026e6103403660046117b2565b61063a565b34801561035157600080fd5b5061030e61065c565b34801561036657600080fd5b5061030e610375366004611926565b6106d0565b34801561038657600080fd5b5061026e60165481565b34801561039c57600080fd5b506000546001600160a01b031661023f565b3480156103ba57600080fd5b5061030e6103c936600461190c565b6106ff565b3480156103da57600080fd5b5061026e60175481565b3480156103f057600080fd5b50604080518082019091526004815263444f554760e01b60208201526101d9565b34801561041d57600080fd5b5061030e61042c366004611926565b610747565b34801561043d57600080fd5b5061030e61044c36600461193e565b610776565b34801561045d57600080fd5b5061020f61046c366004611862565b6107b4565b34801561047d57600080fd5b5061020f61048c3660046117b2565b60106020526000908152604090205460ff1681565b3480156104ad57600080fd5b5061030e6107c1565b3480156104c257600080fd5b5061030e6104d136600461188d565b610815565b3480156104e257600080fd5b5061026e6104f13660046117ea565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561052857600080fd5b5061030e610537366004611926565b6108c4565b34801561054857600080fd5b5061030e6105573660046117b2565b6108f3565b60006105693384846109dd565b5060015b92915050565b6000610580848484610b01565b6105d284336105cd85604051806060016040528060288152602001611b1c602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611046565b6109dd565b5060019392505050565b6000546001600160a01b0316331461060f5760405162461bcd60e51b8152600401610606906119c2565b60405180910390fd5b60158054911515600160b01b0260ff60b01b19909216919091179055565b4761063781611080565b50565b6001600160a01b03811660009081526002602052604081205461056d906110be565b6000546001600160a01b031633146106865760405162461bcd60e51b8152600401610606906119c2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106fa5760405162461bcd60e51b8152600401610606906119c2565b601655565b6000546001600160a01b031633146107295760405162461bcd60e51b8152600401610606906119c2565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107715760405162461bcd60e51b8152600401610606906119c2565b601855565b6000546001600160a01b031633146107a05760405162461bcd60e51b8152600401610606906119c2565b600893909355600a91909155600955600b55565b6000610569338484610b01565b6012546001600160a01b0316336001600160a01b031614806107f657506013546001600160a01b0316336001600160a01b0316145b6107ff57600080fd5b600061080a3061063a565b905061063781611142565b6000546001600160a01b0316331461083f5760405162461bcd60e51b8152600401610606906119c2565b60005b828110156108be57816005600086868581811061086f57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061088491906117b2565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108b681611ad5565b915050610842565b50505050565b6000546001600160a01b031633146108ee5760405162461bcd60e51b8152600401610606906119c2565b601755565b6000546001600160a01b0316331461091d5760405162461bcd60e51b8152600401610606906119c2565b6001600160a01b0381166109825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610606565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a3f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610606565b6001600160a01b038216610aa05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610606565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610606565b6001600160a01b038216610bc75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610606565b60008111610c295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610606565b6000546001600160a01b03848116911614801590610c5557506000546001600160a01b03838116911614155b15610f3f57601554600160a01b900460ff16610cee576000546001600160a01b03848116911614610cee5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610606565b601654811115610d405760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610606565b6001600160a01b03831660009081526010602052604090205460ff16158015610d8257506001600160a01b03821660009081526010602052604090205460ff16155b610dda5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610606565b6015546001600160a01b03838116911614610e5f5760175481610dfc8461063a565b610e069190611a67565b10610e5f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610606565b6000610e6a3061063a565b601854601654919250821015908210610e835760165491505b808015610e9a5750601554600160a81b900460ff16155b8015610eb457506015546001600160a01b03868116911614155b8015610ec95750601554600160b01b900460ff165b8015610eee57506001600160a01b03851660009081526005602052604090205460ff16155b8015610f1357506001600160a01b03841660009081526005602052604090205460ff16155b15610f3c57610f2182611142565b4766b1a2bc2ec50000811115610f3a57610f3a47611080565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610f8157506001600160a01b03831660009081526005602052604090205460ff165b80610fb357506015546001600160a01b03858116911614801590610fb357506015546001600160a01b03848116911614155b15610fc05750600061103a565b6015546001600160a01b038581169116148015610feb57506014546001600160a01b03848116911614155b15610ffd57600854600c55600954600d555b6015546001600160a01b03848116911614801561102857506014546001600160a01b03858116911614155b1561103a57600a54600c55600b54600d555b6108be848484846112e7565b6000818484111561106a5760405162461bcd60e51b8152600401610606919061196f565b5060006110778486611abe565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156110ba573d6000803e3d6000fd5b5050565b60006006548211156111255760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610606565b600061112f611315565b905061113b8382611338565b9392505050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061119857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156111ec57600080fd5b505afa158015611200573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122491906117ce565b8160018151811061124557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260145461126b91309116846109dd565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112a49085906000908690309042906004016119f7565b600060405180830381600087803b1580156112be57600080fd5b505af11580156112d2573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806112f4576112f461137a565b6112ff8484846113a8565b806108be576108be600e54600c55600f54600d55565b600080600061132261149f565b90925090506113318282611338565b9250505090565b600061113b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114df565b600c5415801561138a5750600d54155b1561139157565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806113ba8761150d565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113ec908761156a565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461141b90866115ac565b6001600160a01b03891660009081526002602052604090205561143d8161160b565b6114478483611655565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161148c91815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a00006114ba8282611338565b8210156114d65750506006549267016345785d8a000092509050565b90939092509050565b600081836115005760405162461bcd60e51b8152600401610606919061196f565b5060006110778486611a7f565b600080600080600080600080600061152a8a600c54600d54611679565b925092509250600061153a611315565b9050600080600061154d8e8787876116ce565b919e509c509a509598509396509194505050505091939550919395565b600061113b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611046565b6000806115b98385611a67565b90508381101561113b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610606565b6000611615611315565b90506000611623838361171e565b3060009081526002602052604090205490915061164090826115ac565b30600090815260026020526040902055505050565b600654611662908361156a565b60065560075461167290826115ac565b6007555050565b6000808080611693606461168d898961171e565b90611338565b905060006116a6606461168d8a8961171e565b905060006116be826116b88b8661156a565b9061156a565b9992985090965090945050505050565b60008080806116dd888661171e565b905060006116eb888761171e565b905060006116f9888861171e565b9050600061170b826116b8868661156a565b939b939a50919850919650505050505050565b60008261172d5750600061056d565b60006117398385611a9f565b9050826117468583611a7f565b1461113b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610606565b803580151581146117ad57600080fd5b919050565b6000602082840312156117c3578081fd5b813561113b81611b06565b6000602082840312156117df578081fd5b815161113b81611b06565b600080604083850312156117fc578081fd5b823561180781611b06565b9150602083013561181781611b06565b809150509250929050565b600080600060608486031215611836578081fd5b833561184181611b06565b9250602084013561185181611b06565b929592945050506040919091013590565b60008060408385031215611874578182fd5b823561187f81611b06565b946020939093013593505050565b6000806000604084860312156118a1578283fd5b833567ffffffffffffffff808211156118b8578485fd5b818601915086601f8301126118cb578485fd5b8135818111156118d9578586fd5b8760208260051b85010111156118ed578586fd5b602092830195509350611903918601905061179d565b90509250925092565b60006020828403121561191d578081fd5b61113b8261179d565b600060208284031215611937578081fd5b5035919050565b60008060008060808587031215611953578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b8181101561199b5785810183015185820160400152820161197f565b818111156119ac5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a465784516001600160a01b031683529383019391830191600101611a21565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611a7a57611a7a611af0565b500190565b600082611a9a57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611ab957611ab9611af0565b500290565b600082821015611ad057611ad0611af0565b500390565b6000600019821415611ae957611ae9611af0565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461063757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c94bd82f2d9926a5e338935bdbd9f68fc3ab263eaddbf390b8e44ce9bbae32cb64736f6c63430008040033
Deployed Bytecode Sourcemap
4380:13785:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7513:83;;;;;;;;;;-1:-1:-1;7583:5:0;;;;;;;;;;;;-1:-1:-1;;;7583:5:0;;;;7513:83;;;;;;;:::i;:::-;;;;;;;;8438:193;;;;;;;;;;-1:-1:-1;8438:193:0;;;;;:::i;:::-;;:::i;:::-;;;3818:14:1;;3811:22;3793:41;;3781:2;3766:18;8438:193:0;3748:92:1;6296:41:0;;;;;;;;;;-1:-1:-1;6296:41:0;;;;-1:-1:-1;;;;;6296:41:0;;;;;;-1:-1:-1;;;;;3609:32:1;;;3591:51;;3579:2;3564:18;6296:41:0;3546:102:1;7790:95:0;;;;;;;;;;-1:-1:-1;5082:19:0;7790:95;;;10395:25:1;;;10383:2;10368:18;7790:95:0;10350:76:1;8639:446:0;;;;;;;;;;-1:-1:-1;8639:446:0;;;;;:::i;:::-;;:::i;6604:51::-;;;;;;;;;;;;;;;;7699:83;;;;;;;;;;-1:-1:-1;7699:83:0;;4756:1;11561:36:1;;11549:2;11534:18;7699:83:0;11516:87:1;6344:28:0;;;;;;;;;;-1:-1:-1;6344:28:0;;;;-1:-1:-1;;;;;6344:28:0;;;17553:101;;;;;;;;;;-1:-1:-1;17553:101:0;;;;;:::i;:::-;;:::i;:::-;;13458:143;;;;;;;;;;;;;:::i;7893:138::-;;;;;;;;;;-1:-1:-1;7893:138:0;;;;;:::i;:::-;;:::i;1867:148::-;;;;;;;;;;;;;:::i;17689:108::-;;;;;;;;;;-1:-1:-1;17689:108:0;;;;;:::i;:::-;;:::i;6486:47::-;;;;;;;;;;;;;;;;1653:79;;;;;;;;;;-1:-1:-1;1691:7:0;1718:6;-1:-1:-1;;;;;1718:6:0;1653:79;;13105:101;;;;;;;;;;-1:-1:-1;13105:101:0;;;;;:::i;:::-;;:::i;6545:47::-;;;;;;;;;;;;;;;;7604:87;;;;;;;;;;-1:-1:-1;7676:7:0;;;;;;;;;;;;-1:-1:-1;;;7676:7:0;;;;7604:87;;17362:139;;;;;;;;;;-1:-1:-1;17362:139:0;;;;;:::i;:::-;;:::i;17017:293::-;;;;;;;;;;-1:-1:-1;17017:293:0;;;;;:::i;:::-;;:::i;8039:199::-;;;;;;;;;;-1:-1:-1;8039:199:0;;;;;:::i;:::-;;:::i;5892:36::-;;;;;;;;;;-1:-1:-1;5892:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13214:236;;;;;;;;;;;;;:::i;17928:234::-;;;;;;;;;;-1:-1:-1;17928:234:0;;;;;:::i;:::-;;:::i;8246:184::-;;;;;;;;;;-1:-1:-1;8246:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8395:18:0;;;8363:7;8395:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8246:184;17805:115;;;;;;;;;;-1:-1:-1;17805:115:0;;;;;:::i;:::-;;:::i;2023:244::-;;;;;;;;;;-1:-1:-1;2023:244:0;;;;;:::i;:::-;;:::i;8438:193::-;8540:4;8562:39;492:10;8585:7;8594:6;8562:8;:39::i;:::-;-1:-1:-1;8619:4:0;8438:193;;;;;:::o;8639:446::-;8771:4;8788:36;8798:6;8806:9;8817:6;8788:9;:36::i;:::-;8835:220;8858:6;492:10;8906:138;8962:6;8906:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8906:19:0;;;;;;:11;:19;;;;;;;;492:10;8906:33;;;;;;;;;;:37;:138::i;:::-;8835:8;:220::i;:::-;-1:-1:-1;9073:4:0;8639:446;;;;;:::o;17553:101::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;;;;;;;;;17620:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17620:26:0::1;-1:-1:-1::0;;;;17620:26:0;;::::1;::::0;;;::::1;::::0;;17553:101::o;13458:143::-;13529:21;13561:32;13529:21;13561:12;:32::i;:::-;13458:143;:::o;7893:138::-;-1:-1:-1;;;;;8006:16:0;;7959:7;8006:16;;;:7;:16;;;;;;7986:37;;:19;:37::i;1867:148::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;1974:1:::1;1958:6:::0;;1937:40:::1;::::0;-1:-1:-1;;;;;1958:6:0;;::::1;::::0;1937:40:::1;::::0;1974:1;;1937:40:::1;2005:1;1988:19:::0;;-1:-1:-1;;;;;;1988:19:0::1;::::0;;1867:148::o;17689:108::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;17763:12:::1;:26:::0;17689:108::o;13105:101::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;13172:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13172:26:0::1;-1:-1:-1::0;;;;13172:26:0;;::::1;::::0;;;::::1;::::0;;13105:101::o;17362:139::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;17453:19:::1;:40:::0;17362:139::o;17017:293::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;17151:14:::1;:30:::0;;;;17192:15:::1;:32:::0;;;;17237:12:::1;:26:::0;17274:13:::1;:28:::0;17017:293::o;8039:199::-;8144:4;8166:42;492:10;8190:9;8201:6;8166:9;:42::i;13214:236::-;13280:19;;-1:-1:-1;;;;;13280:19:0;492:10;-1:-1:-1;;;;;13264:35:0;;:72;;;-1:-1:-1;13319:17:0;;-1:-1:-1;;;;;13319:17:0;492:10;-1:-1:-1;;;;;13303:33:0;;13264:72;13256:81;;;;;;13348:23;13374:24;13392:4;13374:9;:24::i;:::-;13348:50;;13409:33;13426:15;13409:16;:33::i;17928:234::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;18045:9:::1;18041:114;18060:19:::0;;::::1;18041:114;;;18135:8;18101:18;:31;18120:8;;18129:1;18120:11;;;;;-1:-1:-1::0;;;18120:11:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18101:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18101:31:0;:42;;-1:-1:-1;;18101:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18081:3;::::1;::::0;::::1;:::i;:::-;;;;18041:114;;;;17928:234:::0;;;:::o;17805:115::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;17882:14:::1;:30:::0;17805:115::o;2023:244::-;1780:6;;-1:-1:-1;;;;;1780:6:0;492:10;1780:22;1772:67;;;;-1:-1:-1;;;1772:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2112:22:0;::::1;2104:73;;;::::0;-1:-1:-1;;;2104:73:0;;6493:2:1;2104:73:0::1;::::0;::::1;6475:21:1::0;6532:2;6512:18;;;6505:30;6571:34;6551:18;;;6544:62;-1:-1:-1;;;6622:18:1;;;6615:36;6668:19;;2104:73:0::1;6465:228:1::0;2104:73:0::1;2214:6;::::0;;2193:38:::1;::::0;-1:-1:-1;;;;;2193:38:0;;::::1;::::0;2214:6;::::1;::::0;2193:38:::1;::::0;::::1;2242:6;:17:::0;;-1:-1:-1;;;;;;2242:17:0::1;-1:-1:-1::0;;;;;2242:17:0;;;::::1;::::0;;;::::1;::::0;;2023:244::o;9776:369::-;-1:-1:-1;;;;;9903:19:0;;9895:68;;;;-1:-1:-1;;;9895:68:0;;10046:2:1;9895:68:0;;;10028:21:1;10085:2;10065:18;;;10058:30;10124:34;10104:18;;;10097:62;-1:-1:-1;;;10175:18:1;;;10168:34;10219:19;;9895:68:0;10018:226:1;9895:68:0;-1:-1:-1;;;;;9982:21:0;;9974:68;;;;-1:-1:-1;;;9974:68:0;;6900:2:1;9974:68:0;;;6882:21:1;6939:2;6919:18;;;6912:30;6978:34;6958:18;;;6951:62;-1:-1:-1;;;7029:18:1;;;7022:32;7071:19;;9974:68:0;6872:224:1;9974:68:0;-1:-1:-1;;;;;10053:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10105:32;;10395:25:1;;;10105:32:0;;10368:18:1;10105:32:0;;;;;;;9776:369;;;:::o;10153:2346::-;-1:-1:-1;;;;;10275:18:0;;10267:68;;;;-1:-1:-1;;;10267:68:0;;9236:2:1;10267:68:0;;;9218:21:1;9275:2;9255:18;;;9248:30;9314:34;9294:18;;;9287:62;-1:-1:-1;;;9365:18:1;;;9358:35;9410:19;;10267:68:0;9208:227:1;10267:68:0;-1:-1:-1;;;;;10354:16:0;;10346:64;;;;-1:-1:-1;;;10346:64:0;;4889:2:1;10346:64:0;;;4871:21:1;4928:2;4908:18;;;4901:30;4967:34;4947:18;;;4940:62;-1:-1:-1;;;5018:18:1;;;5011:33;5061:19;;10346:64:0;4861:225:1;10346:64:0;10438:1;10429:6;:10;10421:64;;;;-1:-1:-1;;;10421:64:0;;8826:2:1;10421:64:0;;;8808:21:1;8865:2;8845:18;;;8838:30;8904:34;8884:18;;;8877:62;-1:-1:-1;;;8955:18:1;;;8948:39;9004:19;;10421:64:0;8798:231:1;10421:64:0;1691:7;1718:6;-1:-1:-1;;;;;10502:15:0;;;1718:6;;10502:15;;;;:32;;-1:-1:-1;1691:7:0;1718:6;-1:-1:-1;;;;;10521:13:0;;;1718:6;;10521:13;;10502:32;10498:1275;;;10591:11;;-1:-1:-1;;;10591:11:0;;;;10586:144;;1691:7;1718:6;-1:-1:-1;;;;;10631:15:0;;;1718:6;;10631:15;10623:91;;;;-1:-1:-1;;;10623:91:0;;5293:2:1;10623:91:0;;;5275:21:1;5332:2;5312:18;;;5305:30;5371:34;5351:18;;;5344:62;5442:33;5422:18;;;5415:61;5493:19;;10623:91:0;5265:253:1;10623:91:0;10764:12;;10754:6;:22;;10746:63;;;;-1:-1:-1;;;10746:63:0;;6136:2:1;10746:63:0;;;6118:21:1;6175:2;6155:18;;;6148:30;6214;6194:18;;;6187:58;6262:18;;10746:63:0;6108:178:1;10746:63:0;-1:-1:-1;;;;;10833:10:0;;;;;;:4;:10;;;;;;;;10832:11;:24;;;;-1:-1:-1;;;;;;10848:8:0;;;;;;:4;:8;;;;;;;;10847:9;10832:24;10824:72;;;;-1:-1:-1;;;10824:72:0;;7303:2:1;10824:72:0;;;7285:21:1;7342:2;7322:18;;;7315:30;7381:34;7361:18;;;7354:62;-1:-1:-1;;;7432:18:1;;;7425:33;7475:19;;10824:72:0;7275:225:1;10824:72:0;10922:13;;-1:-1:-1;;;;;10916:19:0;;;10922:13;;10916:19;10913:146;;10989:14;;10980:6;10964:13;10974:2;10964:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10956:87;;;;-1:-1:-1;;;10956:87:0;;9642:2:1;10956:87:0;;;9624:21:1;9681:2;9661:18;;;9654:30;9720:34;9700:18;;;9693:62;-1:-1:-1;;;9771:18:1;;;9764:33;9814:19;;10956:87:0;9614:225:1;10956:87:0;11075:28;11106:24;11124:4;11106:9;:24::i;:::-;11184:19;;11247:12;;11075:55;;-1:-1:-1;11160:43:0;;;;11223:36;;11220:124;;11316:12;;11293:35;;11220:124;11364:7;:18;;;;-1:-1:-1;11376:6:0;;-1:-1:-1;;;11376:6:0;;;;11375:7;11364:18;:43;;;;-1:-1:-1;11394:13:0;;-1:-1:-1;;;;;11386:21:0;;;11394:13;;11386:21;;11364:43;:58;;;;-1:-1:-1;11411:11:0;;-1:-1:-1;;;11411:11:0;;;;11364:58;:87;;;;-1:-1:-1;;;;;;11427:24:0;;;;;;:18;:24;;;;;;;;11426:25;11364:87;:114;;;;-1:-1:-1;;;;;;11456:22:0;;;;;;:18;:22;;;;;;;;11455:23;11364:114;11360:402;;;11499:38;11516:20;11499:16;:38::i;:::-;11585:21;11650:17;11629:38;;11625:122;;;11692:35;11705:21;11692:12;:35::i;:::-;11360:402;;10498:1275;;;-1:-1:-1;;;;;11849:24:0;;11785:12;11849:24;;;:18;:24;;;;;;11800:4;;11849:24;;;:50;;-1:-1:-1;;;;;;11877:22:0;;;;;;:18;:22;;;;;;;;11849:50;11848:102;;;-1:-1:-1;11913:13:0;;-1:-1:-1;;;;;11905:21:0;;;11913:13;;11905:21;;;;:44;;-1:-1:-1;11936:13:0;;-1:-1:-1;;;;;11930:19:0;;;11936:13;;11930:19;;11905:44;11844:594;;;-1:-1:-1;11977:5:0;11844:594;;;12060:13;;-1:-1:-1;;;;;12052:21:0;;;12060:13;;12052:21;:55;;;;-1:-1:-1;12091:15:0;;-1:-1:-1;;;;;12077:30:0;;;12091:15;;12077:30;;12052:55;12049:162;;;12140:14;;12128:9;:26;12183:12;;12173:7;:22;12049:162;12270:13;;-1:-1:-1;;;;;12264:19:0;;;12270:13;;12264:19;:55;;;;-1:-1:-1;12303:15:0;;-1:-1:-1;;;;;12287:32:0;;;12303:15;;12287:32;;12264:55;12260:165;;;12352:15;;12340:9;:27;12396:13;;12386:7;:23;12260:165;12450:41;12465:4;12471:2;12475:6;12483:7;12450:14;:41::i;2631:224::-;2751:7;2787:12;2779:6;;;;2771:29;;;;-1:-1:-1;;;2771:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2811:9:0;2823:5;2827:1;2823;:5;:::i;:::-;2811:17;2631:224;-1:-1:-1;;;;;2631:224:0:o;12998:99::-;13055:17;;:34;;-1:-1:-1;;;;;13055:17:0;;;;:34;;;;;13082:6;;13055:17;:34;:17;:34;13082:6;13055:17;:34;;;;;;;;;;;;;;;;;;;;;12998:99;:::o;9093:323::-;9188:7;9246;;9235;:18;;9213:110;;;;-1:-1:-1;;;9213:110:0;;5725:2:1;9213:110:0;;;5707:21:1;5764:2;5744:18;;;5737:30;5803:34;5783:18;;;5776:62;-1:-1:-1;;;5854:18:1;;;5847:40;5904:19;;9213:110:0;5697:232:1;9213:110:0;9334:19;9356:10;:8;:10::i;:::-;9334:32;-1:-1:-1;9384:24:0;:7;9334:32;9384:11;:24::i;:::-;9377:31;9093:323;-1:-1:-1;;;9093:323:0:o;12507:483::-;6756:6;:13;;-1:-1:-1;;;;6756:13:0;-1:-1:-1;;;6756:13:0;;;12609:16:::1;::::0;;12623:1:::1;12609:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12609:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12609:16:0::1;12585:40;;12654:4;12636;12641:1;12636:7;;;;;;-1:-1:-1::0;;;12636:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12636:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12680:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12680:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12636:7;;12680:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12670:4;12675:1;12670:7;;;;;;-1:-1:-1::0;;;12670:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12670:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12745:15:::1;::::0;12713:62:::1;::::0;12730:4:::1;::::0;12745:15:::1;12763:11:::0;12713:8:::1;:62::i;:::-;12786:15;::::0;:196:::1;::::0;-1:-1:-1;;;12786:196:0;;-1:-1:-1;;;;;12786:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12867:11;;12786:15:::1;::::0;12909:4;;12936::::1;::::0;12956:15:::1;::::0;12786:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6792:6:0;:14;;-1:-1:-1;;;;6792:14:0;;;-1:-1:-1;;;;12507:483:0:o;13609:282::-;13765:7;13760:28;;13774:14;:12;:14::i;:::-;13799:44;13817:6;13825:9;13836:6;13799:17;:44::i;:::-;13859:7;13854:29;;13868:15;9707:17;;9695:9;:29;9745:15;;9735:7;:25;9651:117;16576:166;16618:7;16639:15;16656;16675:19;:17;:19::i;:::-;16638:56;;-1:-1:-1;16638:56:0;-1:-1:-1;16714:20:0;16638:56;;16714:11;:20::i;:::-;16707:27;;;;16576:166;:::o;3117:132::-;3175:7;3202:39;3206:1;3209;3202:39;;;;;;;;;;;;;;;;;:3;:39::i;9424:219::-;9471:9;;:14;:30;;;;-1:-1:-1;9489:7:0;;:12;9471:30;9467:43;;;9424:219::o;9467:43::-;9542:9;;;9522:17;:29;9580:7;;;9562:15;:25;-1:-1:-1;9600:13:0;;;;9624:11;9424:219::o;13899:610::-;14046:15;14076:23;14114:12;14141:23;14179:12;14206:13;14233:19;14244:7;14233:10;:19::i;:::-;-1:-1:-1;;;;;14281:15:0;;;;;;:7;:15;;;;;;14031:221;;-1:-1:-1;14031:221:0;;-1:-1:-1;14031:221:0;;-1:-1:-1;14031:221:0;-1:-1:-1;14031:221:0;-1:-1:-1;14031:221:0;-1:-1:-1;14281:28:0;;14031:221;14281:19;:28::i;:::-;-1:-1:-1;;;;;14263:15:0;;;;;;;:7;:15;;;;;;:46;;;;14341:18;;;;;;;:39;;14364:15;14341:22;:39::i;:::-;-1:-1:-1;;;;;14320:18:0;;;;;;:7;:18;;;;;:60;14391:16;14401:5;14391:9;:16::i;:::-;14418:23;14430:4;14436;14418:11;:23::i;:::-;14474:9;-1:-1:-1;;;;;14457:44:0;14466:6;-1:-1:-1;;;;;14457:44:0;;14485:15;14457:44;;;;10395:25:1;;10383:2;10368:18;;10350:76;14457:44:0;;;;;;;;13899:610;;;;;;;;;:::o;16750:259::-;16848:7;;16801;;;;5082:19;16916:20;16848:7;5082:19;16916:11;:20::i;:::-;16906:7;:30;16902:61;;;-1:-1:-1;;16946:7:0;;;5082:19;;-1:-1:-1;16750:259:0;-1:-1:-1;16750:259:0:o;16902:61::-;16984:7;;16993;;-1:-1:-1;16750:259:0;-1:-1:-1;16750:259:0:o;3257:223::-;3377:7;3412:12;3405:5;3397:28;;;;-1:-1:-1;;;3397:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3436:9:0;3448:5;3452:1;3448;:5;:::i;14928:617::-;15028:7;15050;15072;15094;15116;15138;15174:23;15199:12;15213:13;15243:40;15255:7;15264:9;;15275:7;;15243:11;:40::i;:::-;15173:110;;;;;;15294:19;15316:10;:8;:10::i;:::-;15294:32;;15338:15;15355:23;15380:12;15409:46;15421:7;15430:4;15436:5;15443:11;15409;:46::i;:::-;15337:118;;-1:-1:-1;15337:118:0;-1:-1:-1;15337:118:0;-1:-1:-1;15508:15:0;;-1:-1:-1;15525:4:0;;-1:-1:-1;15531:5:0;;-1:-1:-1;;;;;14928:617:0;;;;;;;:::o;2487:136::-;2545:7;2572:43;2576:1;2579;2572:43;;;;;;;;;;;;;;;;;:3;:43::i;2300:179::-;2358:7;;2390:5;2394:1;2390;:5;:::i;:::-;2378:17;;2419:1;2414;:6;;2406:46;;;;-1:-1:-1;;;2406:46:0;;7707:2:1;2406:46:0;;;7689:21:1;7746:2;7726:18;;;7719:30;7785:29;7765:18;;;7758:57;7832:18;;2406:46:0;7679:177:1;14517:211:0;14570:19;14592:10;:8;:10::i;:::-;14570:32;-1:-1:-1;14613:13:0;14629:22;:5;14570:32;14629:9;:22::i;:::-;14703:4;14687:22;;;;:7;:22;;;;;;14613:38;;-1:-1:-1;14687:33:0;;14613:38;14687:26;:33::i;:::-;14678:4;14662:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14517:211:0:o;14736:147::-;14814:7;;:17;;14826:4;14814:11;:17::i;:::-;14804:7;:27;14855:10;;:20;;14870:4;14855:14;:20::i;:::-;14842:10;:33;-1:-1:-1;;14736:147:0:o;15553:471::-;15722:7;;;;15816:30;15842:3;15816:21;:7;15828:8;15816:11;:21::i;:::-;:25;;:30::i;:::-;15801:45;-1:-1:-1;15857:13:0;15873:28;15897:3;15873:19;:7;15885:6;15873:11;:19::i;:28::-;15857:44;-1:-1:-1;15912:23:0;15938:28;15857:44;15938:17;:7;15950:4;15938:11;:17::i;:::-;:21;;:28::i;:::-;15912:54;16004:4;;-1:-1:-1;16010:5:0;;-1:-1:-1;15553:471:0;;-1:-1:-1;;;;;15553:471:0:o;16032:536::-;16226:7;;;;16323:24;:7;16335:11;16323;:24::i;:::-;16305:42;-1:-1:-1;16358:12:0;16373:21;:4;16382:11;16373:8;:21::i;:::-;16358:36;-1:-1:-1;16405:13:0;16421:22;:5;16431:11;16421:9;:22::i;:::-;16405:38;-1:-1:-1;16454:23:0;16480:28;16405:38;16480:17;:7;16492:4;16480:11;:17::i;:28::-;16529:7;;;;-1:-1:-1;16555:4:0;;-1:-1:-1;16032:536:0;;-1:-1:-1;;;;;;;16032:536:0:o;2863:246::-;2921:7;2945:6;2941:47;;-1:-1:-1;2975:1:0;2968:8;;2941:47;2998:9;3010:5;3014:1;3010;:5;:::i;:::-;2998:17;-1:-1:-1;3043:1:0;3034:5;3038:1;2998:17;3034:5;:::i;:::-;:10;3026:56;;;;-1:-1:-1;;;3026:56:0;;8063:2:1;3026:56:0;;;8045:21:1;8102:2;8082:18;;;8075:30;8141:34;8121:18;;;8114:62;-1:-1:-1;;;8192:18:1;;;8185:31;8233:19;;3026:56:0;8035:223:1;14:160;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1649:6;1657;1710:2;1698:9;1689:7;1685:23;1681:32;1678:2;;;1731:6;1723;1716:22;1678:2;1775:9;1762:23;1794:31;1819:5;1794:31;:::i;:::-;1844:5;1896:2;1881:18;;;;1868:32;;-1:-1:-1;;;1668:238:1:o;1911:739::-;2003:6;2011;2019;2072:2;2060:9;2051:7;2047:23;2043:32;2040:2;;;2093:6;2085;2078:22;2040:2;2138:9;2125:23;2167:18;2208:2;2200:6;2197:14;2194:2;;;2229:6;2221;2214:22;2194:2;2272:6;2261:9;2257:22;2247:32;;2317:7;2310:4;2306:2;2302:13;2298:27;2288:2;;2344:6;2336;2329:22;2288:2;2389;2376:16;2415:2;2407:6;2404:14;2401:2;;;2436:6;2428;2421:22;2401:2;2496:7;2489:4;2479:6;2476:1;2472:14;2468:2;2464:23;2460:34;2457:47;2454:2;;;2522:6;2514;2507:22;2454:2;2558:4;2550:13;;;;-1:-1:-1;2582:6:1;-1:-1:-1;2607:37:1;;2623:20;;;-1:-1:-1;2607:37:1;:::i;:::-;2597:47;;2030:620;;;;;:::o;2655:190::-;2711:6;2764:2;2752:9;2743:7;2739:23;2735:32;2732:2;;;2785:6;2777;2770:22;2732:2;2813:26;2829:9;2813:26;:::i;2850:190::-;2909:6;2962:2;2950:9;2941:7;2937:23;2933:32;2930:2;;;2983:6;2975;2968:22;2930:2;-1:-1:-1;3011:23:1;;2920:120;-1:-1:-1;2920:120:1:o;3045:395::-;3131:6;3139;3147;3155;3208:3;3196:9;3187:7;3183:23;3179:33;3176:2;;;3230:6;3222;3215:22;3176:2;-1:-1:-1;;3258:23:1;;;3328:2;3313:18;;3300:32;;-1:-1:-1;3379:2:1;3364:18;;3351:32;;3430:2;3415:18;3402:32;;-1:-1:-1;3166:274:1;-1:-1:-1;3166:274:1:o;4079:603::-;4191:4;4220:2;4249;4238:9;4231:21;4281:6;4275:13;4324:6;4319:2;4308:9;4304:18;4297:34;4349:4;4362:140;4376:6;4373:1;4370:13;4362:140;;;4471:14;;;4467:23;;4461:30;4437:17;;;4456:2;4433:26;4426:66;4391:10;;4362:140;;;4520:6;4517:1;4514:13;4511:2;;;4590:4;4585:2;4576:6;4565:9;4561:22;4557:31;4550:45;4511:2;-1:-1:-1;4666:2:1;4645:15;-1:-1:-1;;4641:29:1;4626:45;;;;4673:2;4622:54;;4200:482;-1:-1:-1;;;4200:482:1:o;8263:356::-;8465:2;8447:21;;;8484:18;;;8477:30;8543:34;8538:2;8523:18;;8516:62;8610:2;8595:18;;8437:182::o;10431:983::-;10693:4;10741:3;10730:9;10726:19;10772:6;10761:9;10754:25;10798:2;10836:6;10831:2;10820:9;10816:18;10809:34;10879:3;10874:2;10863:9;10859:18;10852:31;10903:6;10938;10932:13;10969:6;10961;10954:22;11007:3;10996:9;10992:19;10985:26;;11046:2;11038:6;11034:15;11020:29;;11067:4;11080:195;11094:6;11091:1;11088:13;11080:195;;;11159:13;;-1:-1:-1;;;;;11155:39:1;11143:52;;11250:15;;;;11215:12;;;;11191:1;11109:9;11080:195;;;-1:-1:-1;;;;;;;11331:32:1;;;;11326:2;11311:18;;11304:60;-1:-1:-1;;;11395:3:1;11380:19;11373:35;11292:3;10702:712;-1:-1:-1;;;10702:712:1:o;11608:128::-;11648:3;11679:1;11675:6;11672:1;11669:13;11666:2;;;11685:18;;:::i;:::-;-1:-1:-1;11721:9:1;;11656:80::o;11741:217::-;11781:1;11807;11797:2;;-1:-1:-1;;;11832:31:1;;11886:4;11883:1;11876:15;11914:4;11839:1;11904:15;11797:2;-1:-1:-1;11943:9:1;;11787:171::o;11963:168::-;12003:7;12069:1;12065;12061:6;12057:14;12054:1;12051:21;12046:1;12039:9;12032:17;12028:45;12025:2;;;12076:18;;:::i;:::-;-1:-1:-1;12116:9:1;;12015:116::o;12136:125::-;12176:4;12204:1;12201;12198:8;12195:2;;;12209:18;;:::i;:::-;-1:-1:-1;12246:9:1;;12185:76::o;12266:135::-;12305:3;-1:-1:-1;;12326:17:1;;12323:2;;;12346:18;;:::i;:::-;-1:-1:-1;12393:1:1;12382:13;;12313:88::o;12406:127::-;12467:10;12462:3;12458:20;12455:1;12448:31;12498:4;12495:1;12488:15;12522:4;12519:1;12512:15;12538:131;-1:-1:-1;;;;;12613:31:1;;12603:42;;12593:2;;12659:1;12656;12649:12
Swarm Source
ipfs://c94bd82f2d9926a5e338935bdbd9f68fc3ab263eaddbf390b8e44ce9bbae32cb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.