Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 ATOM
Holders
118
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,042,576.082657782035980445 ATOMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Atom
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-05 */ /** */ // Where Browsing Becomes Rewarding ! // Telegram : https://t.me/atombrowserapp // Twitter : https://x.com/atombrowserapp // Website : https://atombrowser.app/ // Docs : https://atom-browser.gitbook.io/atom-browser-whitepaper/ // Medium : https://medium.com/@atombrowser // SPDX-License-Identifier: MIT pragma solidity 0.8.19; 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 ); } 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; } } contract Ownable is Context { address private _owner; 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); } } 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 Atom is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; address payable private _taxWallet; address private uniswapV2Pair; IUniswapV2Router02 private uniswapV2Router; uint256 private constant _initialBuyTax = 25; uint256 private constant _initialSellTax = 30; uint256 private constant _reduceBuyTaxAt = 35; uint256 private constant _reduceSellTaxAt = 35; uint256 private constant _preventSwapBefore = 20; uint256 private _finalBuyTax = 10; uint256 private _finalSellTax = 20; uint256 private _buyCount = 0; uint256 private _countTax = 0; string private constant _name = unicode"Atom Browser"; string private constant _symbol = unicode"ATOM"; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 1000000000 * 10**_decimals; uint256 public constant _countTrigger = 200000 * 10**_decimals; uint256 public constant _taxSwapThreshold = 2000000 * 10**_decimals; uint256 public _maxTaxSwap = 5000000 * 10**_decimals; uint256 public _maxTxAmount = 10000000 * 10**_decimals; uint256 public _maxWalletSize = 20000000 * 10**_decimals; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event FinalTax(uint256 _valueBuy, uint256 _valueSell, bool _shelid); event TradingActive(bool _tradingOpen, bool _swapEnabled); event maxAmount(uint256 _value); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor(address taxWallet) { _taxWallet = payable(taxWallet); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[_taxWallet] = true; _isExcludedFromFee[address(this)] = 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 _balances[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 _approve( address owner, address spender, uint256 amount ) private { require( owner != address(0) && spender != address(0), "ERC20: approve 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) && to != address(0), "ERC20: transfer the zero address" ); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { if (!tradingOpen) { require( _isExcludedFromFee[to] || _isExcludedFromFee[from], "trading not yet open" ); } if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require( balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize." ); _buyCount++; } if (to == uniswapV2Pair && from != address(this)) { taxAmount = amount .mul( (_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax ) .div(100); } else if (from == uniswapV2Pair && to != address(this)) { taxAmount = amount .mul( (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax ) .div(100); } _countTax += taxAmount; uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore && _countTax > _countTrigger ) { uint256 getMin = (contractTokenBalance > _maxTaxSwap) ? _maxTaxSwap : contractTokenBalance; swapTokensForEth((amount > getMin) ? getMin : amount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } _countTax = 0; } } if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(from, address(this), taxAmount); } _balances[from] = _balances[from].sub(amount); _balances[to] = _balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } 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 initialize() external onlyOwner { require(!tradingOpen, "init already called"); uint256 tokenAmount = balanceOf(address(this)).sub( _tTotal.mul(_initialBuyTax).div(100) ); uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), tokenAmount, 0, 0, _msgSender(), block.timestamp ); IERC20(uniswapV2Pair).approve( address(uniswapV2Router), type(uint256).max ); } function openTrading() external onlyOwner { require(!tradingOpen, "trading already open"); swapEnabled = true; tradingOpen = true; emit TradingActive(tradingOpen, swapEnabled); } function maxLimits() external onlyOwner { _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit maxAmount(_tTotal); } function clearStuckETH() external { require(tradingOpen); _taxWallet.transfer(address(this).balance); } function setFees(uint256 _valueBuy, uint256 _valueSell) external onlyOwner { require( _valueBuy <= 30 && _valueSell <= 30 && tradingOpen, "Exceeds value" ); _finalBuyTax = _valueBuy; _finalSellTax = _valueSell; uint256 clogSheild = _finalSellTax > 5 ? _maxTaxSwap = (5 *_tTotal).div(1000) : (1 *_tTotal).div(100); emit FinalTax(_valueBuy, _valueSell, (clogSheild == (5 *_tTotal).div(1000))); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"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":"_valueBuy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_valueSell","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_shelid","type":"bool"}],"name":"FinalTax","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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"maxAmount","type":"event"},{"inputs":[],"name":"_countTrigger","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":[],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"_valueBuy","type":"uint256"},{"internalType":"uint256","name":"_valueSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a600755601460085560006009556000600a556012600a620000289190620005f1565b624c4b4062000038919062000642565b600b556012600a6200004b9190620005f1565b629896806200005b919062000642565b600c556012600a6200006e9190620005f1565b6301312d006200007f919062000642565b600d556000600e60016101000a81548160ff0219169083151502179055506000600e60026101000a81548160ff021916908315150217905550348015620000c557600080fd5b5060405162003b6c38038062003b6c8339818101604052810190620000eb9190620006f7565b6000620000fd6200042660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001ec9190620005f1565b633b9aca00620001fd919062000642565b60016000620002116200042660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002656200042e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003986200042660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003f79190620005f1565b633b9aca0062000408919062000642565b6040516200041791906200073a565b60405180910390a35062000757565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004e557808604811115620004bd57620004bc62000457565b5b6001851615620004cd5780820291505b8081029050620004dd8562000486565b94506200049d565b94509492505050565b600082620005005760019050620005d3565b81620005105760009050620005d3565b816001811462000529576002811462000534576200056a565b6001915050620005d3565b60ff84111562000549576200054862000457565b5b8360020a91508482111562000563576200056262000457565b5b50620005d3565b5060208310610133831016604e8410600b8410161715620005a45782820a9050838111156200059e576200059d62000457565b5b620005d3565b620005b3848484600162000493565b92509050818404811115620005cd57620005cc62000457565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005fe82620005da565b91506200060b83620005e4565b92506200063a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004ee565b905092915050565b60006200064f82620005da565b91506200065c83620005da565b92508282026200066c81620005da565b9150828204841483151762000686576200068562000457565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006bf8262000692565b9050919050565b620006d181620006b2565b8114620006dd57600080fd5b50565b600081519050620006f181620006c6565b92915050565b60006020828403121562000710576200070f6200068d565b5b60006200072084828501620006e0565b91505092915050565b6200073481620005da565b82525050565b600060208201905062000751600083018462000729565b92915050565b61340580620007676000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103b7578063a9059cbb146103e2578063bf474bed1461041f578063c9567bf91461044a578063dd62ed3e14610461578063f88de0c31461049e57610135565b8063715018a6146103085780637d1db4a51461031f5780638129fc1c1461034a5780638da5cb5b146103615780638f9a55c01461038c57610135565b806318160ddd116100f257806318160ddd1461022157806323b872dd1461024c578063313ce567146102895780634019cfa9146102b457806370a08231146102cb57610135565b806306fdde031461013a578063095ea7b3146101655780630b7640b8146101a25780630b78f9c0146101cd5780630faee56f146101f657610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104b5565b60405161015c91906124bf565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061257a565b6104f2565b60405161019991906125d5565b60405180910390f35b3480156101ae57600080fd5b506101b7610510565b6040516101c491906125ff565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef919061261a565b61052f565b005b34801561020257600080fd5b5061020b61074b565b60405161021891906125ff565b60405180910390f35b34801561022d57600080fd5b50610236610751565b60405161024391906125ff565b60405180910390f35b34801561025857600080fd5b50610273600480360381019061026e919061265a565b610775565b60405161028091906125d5565b60405180910390f35b34801561029557600080fd5b5061029e61084e565b6040516102ab91906126c9565b60405180910390f35b3480156102c057600080fd5b506102c9610857565b005b3480156102d757600080fd5b506102f260048036038101906102ed91906126e4565b610987565b6040516102ff91906125ff565b60405180910390f35b34801561031457600080fd5b5061031d6109d0565b005b34801561032b57600080fd5b50610334610b23565b60405161034191906125ff565b60405180910390f35b34801561035657600080fd5b5061035f610b29565b005b34801561036d57600080fd5b50610376611085565b6040516103839190612720565b60405180910390f35b34801561039857600080fd5b506103a16110ae565b6040516103ae91906125ff565b60405180910390f35b3480156103c357600080fd5b506103cc6110b4565b6040516103d991906124bf565b60405180910390f35b3480156103ee57600080fd5b506104096004803603810190610404919061257a565b6110f1565b60405161041691906125d5565b60405180910390f35b34801561042b57600080fd5b5061043461110f565b60405161044191906125ff565b60405180910390f35b34801561045657600080fd5b5061045f61112e565b005b34801561046d57600080fd5b506104886004803603810190610483919061273b565b6112a2565b60405161049591906125ff565b60405180910390f35b3480156104aa57600080fd5b506104b3611329565b005b60606040518060400160405280600c81526020017f41746f6d2042726f777365720000000000000000000000000000000000000000815250905090565b60006105066104ff6113ad565b84846113b5565b6001905092915050565b6012600a61051e91906128dd565b62030d4061052c9190612928565b81565b6105376113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906129b6565b60405180910390fd5b601e82111580156105d65750601e8111155b80156105ee5750600e60009054906101000a900460ff165b61062d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062490612a22565b60405180910390fd5b816007819055508060088190555060006005600854116106885761068360646012600a61065a91906128dd565b633b9aca006106699190612928565b60016106759190612928565b61154990919063ffffffff16565b6106cb565b6106c56103e86012600a61069c91906128dd565b633b9aca006106ab9190612928565b60056106b79190612928565b61154990919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb45838361072d6103e86012600a61070491906128dd565b633b9aca006107139190612928565b600561071f9190612928565b61154990919063ffffffff16565b841460405161073e93929190612a42565b60405180910390a1505050565b600b5481565b60006012600a61076191906128dd565b633b9aca006107709190612928565b905090565b6000610782848484611593565b6108438461078e6113ad565b61083e856040518060600160405280602881526020016133a860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f46113ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f619092919063ffffffff16565b6113b5565b600190509392505050565b60006012905090565b61085f6113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e3906129b6565b60405180910390fd5b6012600a6108fa91906128dd565b633b9aca006109099190612928565b600c819055506012600a61091d91906128dd565b633b9aca0061092c9190612928565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61096191906128dd565b633b9aca006109709190612928565b60405161097d91906125ff565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109d86113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c906129b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b610b316113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb5906129b6565b60405180910390fd5b600e60009054906101000a900460ff1615610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0590612ac5565b60405180910390fd5b6000610c6d610c566064610c4860196012600a610c2b91906128dd565b633b9aca00610c3a9190612928565b611fc590919063ffffffff16565b61154990919063ffffffff16565b610c5f30610987565b61203f90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cf991906128dd565b633b9aca00610d089190612928565b6113b5565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9e9190612afa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190612afa565b6040518363ffffffff1660e01b8152600401610e68929190612b27565b6020604051808303816000875af1158015610e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eab9190612afa565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f376113ad565b426040518863ffffffff1660e01b8152600401610f5996959493929190612b95565b60606040518083038185885af1158015610f77573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f9c9190612c0b565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161103e929190612c5e565b6020604051808303816000875af115801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612cb3565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f41544f4d00000000000000000000000000000000000000000000000000000000815250905090565b60006111056110fe6113ad565b8484611593565b6001905092915050565b6012600a61111d91906128dd565b621e848061112b9190612928565b81565b6111366113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906129b6565b60405180910390fd5b600e60009054906101000a900460ff1615611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90612d2c565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff16604051611298929190612d4c565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900460ff1661134257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113aa573d6000803e3d6000fd5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561141f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590612dc1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153c91906125ff565b60405180910390a3505050565b600061158b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612089565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115fd5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390612e2d565b60405180910390fd5b6000811161167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612ebf565b60405180910390fd5b6000611689611085565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f757506116c7611085565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca457600e60009054906101000a900460ff166117f157600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117b15750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790612f2b565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561189c5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ad57600c5482111561193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390612f97565b60405180910390fd5b600d548261194985610987565b6119539190612fb7565b1115611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613037565b60405180910390fd5b600960008154809291906119a790613057565b91905055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a3657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7c57611a756064611a67602360095411611a5457601e611a58565b6008545b85611fc590919063ffffffff16565b61154990919063ffffffff16565b9050611b48565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b0557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4757611b446064611b36602360095411611b23576019611b27565b6007545b85611fc590919063ffffffff16565b61154990919063ffffffff16565b90505b5b80600a6000828254611b5a9190612fb7565b925050819055506000611b6c30610987565b9050600e60019054906101000a900460ff16158015611bd85750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bf05750600e60029054906101000a900460ff165b8015611c1657506012600a611c0591906128dd565b621e8480611c139190612928565b81115b8015611c2457506014600954115b8015611c4c57506012600a611c3991906128dd565b62030d40611c479190612928565b600a54115b15611ca2576000600b548211611c625781611c66565b600b545b9050611c7f818511611c785784611c7a565b815b6120ec565b60004790506000811115611c9757611c9647612365565b5b6000600a8190555050505b505b6000811115611da857611cff81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d9f91906125ff565b60405180910390a35b611dfa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea1611e53828461203f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f46848661203f90919063ffffffff16565b604051611f5391906125ff565b60405180910390a350505050565b6000838311158290611fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa091906124bf565b60405180910390fd5b5060008385611fb8919061309f565b9050809150509392505050565b6000808303611fd75760009050612039565b60008284611fe59190612928565b9050828482611ff49190613102565b14612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b906131a5565b60405180910390fd5b809150505b92915050565b600061208183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f61565b905092915050565b600080831182906120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c791906124bf565b60405180910390fd5b50600083856120df9190613102565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612124576121236131c5565b5b6040519080825280602002602001820160405280156121525781602001602082028036833780820191505090505b509050308160008151811061216a576121696131f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122359190612afa565b81600181518110612249576122486131f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122b030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113b5565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123149594939291906132e1565b600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123cd573d6000803e3d6000fd5b5050565b60008082846123e09190612fb7565b905083811015612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90613387565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246957808201518184015260208101905061244e565b60008484015250505050565b6000601f19601f8301169050919050565b60006124918261242f565b61249b818561243a565b93506124ab81856020860161244b565b6124b481612475565b840191505092915050565b600060208201905081810360008301526124d98184612486565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612511826124e6565b9050919050565b61252181612506565b811461252c57600080fd5b50565b60008135905061253e81612518565b92915050565b6000819050919050565b61255781612544565b811461256257600080fd5b50565b6000813590506125748161254e565b92915050565b60008060408385031215612591576125906124e1565b5b600061259f8582860161252f565b92505060206125b085828601612565565b9150509250929050565b60008115159050919050565b6125cf816125ba565b82525050565b60006020820190506125ea60008301846125c6565b92915050565b6125f981612544565b82525050565b600060208201905061261460008301846125f0565b92915050565b60008060408385031215612631576126306124e1565b5b600061263f85828601612565565b925050602061265085828601612565565b9150509250929050565b600080600060608486031215612673576126726124e1565b5b60006126818682870161252f565b93505060206126928682870161252f565b92505060406126a386828701612565565b9150509250925092565b600060ff82169050919050565b6126c3816126ad565b82525050565b60006020820190506126de60008301846126ba565b92915050565b6000602082840312156126fa576126f96124e1565b5b60006127088482850161252f565b91505092915050565b61271a81612506565b82525050565b60006020820190506127356000830184612711565b92915050565b60008060408385031215612752576127516124e1565b5b60006127608582860161252f565b92505060206127718582860161252f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612801578086048111156127dd576127dc61277b565b5b60018516156127ec5780820291505b80810290506127fa856127aa565b94506127c1565b94509492505050565b60008261281a57600190506128d6565b8161282857600090506128d6565b816001811461283e576002811461284857612877565b60019150506128d6565b60ff84111561285a5761285961277b565b5b8360020a9150848211156128715761287061277b565b5b506128d6565b5060208310610133831016604e8410600b84101617156128ac5782820a9050838111156128a7576128a661277b565b5b6128d6565b6128b984848460016127b7565b925090508184048111156128d0576128cf61277b565b5b81810290505b9392505050565b60006128e882612544565b91506128f3836126ad565b92506129207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461280a565b905092915050565b600061293382612544565b915061293e83612544565b925082820261294c81612544565b915082820484148315176129635761296261277b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a060208361243a565b91506129ab8261296a565b602082019050919050565b600060208201905081810360008301526129cf81612993565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b6000612a0c600d8361243a565b9150612a17826129d6565b602082019050919050565b60006020820190508181036000830152612a3b816129ff565b9050919050565b6000606082019050612a5760008301866125f0565b612a6460208301856125f0565b612a7160408301846125c6565b949350505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b6000612aaf60138361243a565b9150612aba82612a79565b602082019050919050565b60006020820190508181036000830152612ade81612aa2565b9050919050565b600081519050612af481612518565b92915050565b600060208284031215612b1057612b0f6124e1565b5b6000612b1e84828501612ae5565b91505092915050565b6000604082019050612b3c6000830185612711565b612b496020830184612711565b9392505050565b6000819050919050565b6000819050919050565b6000612b7f612b7a612b7584612b50565b612b5a565b612544565b9050919050565b612b8f81612b64565b82525050565b600060c082019050612baa6000830189612711565b612bb760208301886125f0565b612bc46040830187612b86565b612bd16060830186612b86565b612bde6080830185612711565b612beb60a08301846125f0565b979650505050505050565b600081519050612c058161254e565b92915050565b600080600060608486031215612c2457612c236124e1565b5b6000612c3286828701612bf6565b9350506020612c4386828701612bf6565b9250506040612c5486828701612bf6565b9150509250925092565b6000604082019050612c736000830185612711565b612c8060208301846125f0565b9392505050565b612c90816125ba565b8114612c9b57600080fd5b50565b600081519050612cad81612c87565b92915050565b600060208284031215612cc957612cc86124e1565b5b6000612cd784828501612c9e565b91505092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612d1660148361243a565b9150612d2182612ce0565b602082019050919050565b60006020820190508181036000830152612d4581612d09565b9050919050565b6000604082019050612d6160008301856125c6565b612d6e60208301846125c6565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612dab601f8361243a565b9150612db682612d75565b602082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612e1760208361243a565b9150612e2282612de1565b602082019050919050565b60006020820190508181036000830152612e4681612e0a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ea960298361243a565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612f1560148361243a565b9150612f2082612edf565b602082019050919050565b60006020820190508181036000830152612f4481612f08565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f8160198361243a565b9150612f8c82612f4b565b602082019050919050565b60006020820190508181036000830152612fb081612f74565b9050919050565b6000612fc282612544565b9150612fcd83612544565b9250828201905080821115612fe557612fe461277b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613021601a8361243a565b915061302c82612feb565b602082019050919050565b6000602082019050818103600083015261305081613014565b9050919050565b600061306282612544565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130945761309361277b565b5b600182019050919050565b60006130aa82612544565b91506130b583612544565b92508282039050818111156130cd576130cc61277b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061310d82612544565b915061311883612544565b925082613128576131276130d3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061318f60218361243a565b915061319a82613133565b604082019050919050565b600060208201905081810360008301526131be81613182565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61325881612506565b82525050565b600061326a838361324f565b60208301905092915050565b6000602082019050919050565b600061328e82613223565b613298818561322e565b93506132a38361323f565b8060005b838110156132d45781516132bb888261325e565b97506132c683613276565b9250506001810190506132a7565b5085935050505092915050565b600060a0820190506132f660008301886125f0565b6133036020830187612b86565b81810360408301526133158186613283565b90506133246060830185612711565b61333160808301846125f0565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613371601b8361243a565b915061337c8261333b565b602082019050919050565b600060208201905081810360008301526133a081613364565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208aadcc3abb211247d36f35889e0d8197dab0748e1db3e6da77658db9d6117e0964736f6c634300081300330000000000000000000000009af98aebca2c21eb802c3296b3c0e7e9cd34e699
Deployed Bytecode
0x60806040526004361061012e5760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b41146103b7578063a9059cbb146103e2578063bf474bed1461041f578063c9567bf91461044a578063dd62ed3e14610461578063f88de0c31461049e57610135565b8063715018a6146103085780637d1db4a51461031f5780638129fc1c1461034a5780638da5cb5b146103615780638f9a55c01461038c57610135565b806318160ddd116100f257806318160ddd1461022157806323b872dd1461024c578063313ce567146102895780634019cfa9146102b457806370a08231146102cb57610135565b806306fdde031461013a578063095ea7b3146101655780630b7640b8146101a25780630b78f9c0146101cd5780630faee56f146101f657610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104b5565b60405161015c91906124bf565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061257a565b6104f2565b60405161019991906125d5565b60405180910390f35b3480156101ae57600080fd5b506101b7610510565b6040516101c491906125ff565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef919061261a565b61052f565b005b34801561020257600080fd5b5061020b61074b565b60405161021891906125ff565b60405180910390f35b34801561022d57600080fd5b50610236610751565b60405161024391906125ff565b60405180910390f35b34801561025857600080fd5b50610273600480360381019061026e919061265a565b610775565b60405161028091906125d5565b60405180910390f35b34801561029557600080fd5b5061029e61084e565b6040516102ab91906126c9565b60405180910390f35b3480156102c057600080fd5b506102c9610857565b005b3480156102d757600080fd5b506102f260048036038101906102ed91906126e4565b610987565b6040516102ff91906125ff565b60405180910390f35b34801561031457600080fd5b5061031d6109d0565b005b34801561032b57600080fd5b50610334610b23565b60405161034191906125ff565b60405180910390f35b34801561035657600080fd5b5061035f610b29565b005b34801561036d57600080fd5b50610376611085565b6040516103839190612720565b60405180910390f35b34801561039857600080fd5b506103a16110ae565b6040516103ae91906125ff565b60405180910390f35b3480156103c357600080fd5b506103cc6110b4565b6040516103d991906124bf565b60405180910390f35b3480156103ee57600080fd5b506104096004803603810190610404919061257a565b6110f1565b60405161041691906125d5565b60405180910390f35b34801561042b57600080fd5b5061043461110f565b60405161044191906125ff565b60405180910390f35b34801561045657600080fd5b5061045f61112e565b005b34801561046d57600080fd5b506104886004803603810190610483919061273b565b6112a2565b60405161049591906125ff565b60405180910390f35b3480156104aa57600080fd5b506104b3611329565b005b60606040518060400160405280600c81526020017f41746f6d2042726f777365720000000000000000000000000000000000000000815250905090565b60006105066104ff6113ad565b84846113b5565b6001905092915050565b6012600a61051e91906128dd565b62030d4061052c9190612928565b81565b6105376113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906129b6565b60405180910390fd5b601e82111580156105d65750601e8111155b80156105ee5750600e60009054906101000a900460ff165b61062d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062490612a22565b60405180910390fd5b816007819055508060088190555060006005600854116106885761068360646012600a61065a91906128dd565b633b9aca006106699190612928565b60016106759190612928565b61154990919063ffffffff16565b6106cb565b6106c56103e86012600a61069c91906128dd565b633b9aca006106ab9190612928565b60056106b79190612928565b61154990919063ffffffff16565b600b8190555b90507f29ddd482d71f6b4ad9a6b3978c21b2aa56a029d1de02646578471e24a465cb45838361072d6103e86012600a61070491906128dd565b633b9aca006107139190612928565b600561071f9190612928565b61154990919063ffffffff16565b841460405161073e93929190612a42565b60405180910390a1505050565b600b5481565b60006012600a61076191906128dd565b633b9aca006107709190612928565b905090565b6000610782848484611593565b6108438461078e6113ad565b61083e856040518060600160405280602881526020016133a860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107f46113ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f619092919063ffffffff16565b6113b5565b600190509392505050565b60006012905090565b61085f6113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e3906129b6565b60405180910390fd5b6012600a6108fa91906128dd565b633b9aca006109099190612928565b600c819055506012600a61091d91906128dd565b633b9aca0061092c9190612928565b600d819055507f69ada53addde5123341ce3a822c5f66292103b2771e41e1f3c00c2de8a63a7f96012600a61096191906128dd565b633b9aca006109709190612928565b60405161097d91906125ff565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109d86113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c906129b6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b610b316113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb5906129b6565b60405180910390fd5b600e60009054906101000a900460ff1615610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0590612ac5565b60405180910390fd5b6000610c6d610c566064610c4860196012600a610c2b91906128dd565b633b9aca00610c3a9190612928565b611fc590919063ffffffff16565b61154990919063ffffffff16565b610c5f30610987565b61203f90919063ffffffff16565b9050737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cf991906128dd565b633b9aca00610d089190612928565b6113b5565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9e9190612afa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190612afa565b6040518363ffffffff1660e01b8152600401610e68929190612b27565b6020604051808303816000875af1158015610e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eab9190612afa565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473084600080610f376113ad565b426040518863ffffffff1660e01b8152600401610f5996959493929190612b95565b60606040518083038185885af1158015610f77573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f9c9190612c0b565b505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161103e929190612c5e565b6020604051808303816000875af115801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612cb3565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600481526020017f41544f4d00000000000000000000000000000000000000000000000000000000815250905090565b60006111056110fe6113ad565b8484611593565b6001905092915050565b6012600a61111d91906128dd565b621e848061112b9190612928565b81565b6111366113ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba906129b6565b60405180910390fd5b600e60009054906101000a900460ff1615611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90612d2c565b60405180910390fd5b6001600e60026101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff0219169083151502179055507f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c600e60009054906101000a900460ff16600e60029054906101000a900460ff16604051611298929190612d4c565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900460ff1661134257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113aa573d6000803e3d6000fd5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561141f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145590612dc1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153c91906125ff565b60405180910390a3505050565b600061158b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612089565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115fd5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390612e2d565b60405180910390fd5b6000811161167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690612ebf565b60405180910390fd5b6000611689611085565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f757506116c7611085565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ca457600e60009054906101000a900460ff166117f157600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117b15750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790612f2b565b60405180910390fd5b5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561189c5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ad57600c5482111561193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390612f97565b60405180910390fd5b600d548261194985610987565b6119539190612fb7565b1115611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613037565b60405180910390fd5b600960008154809291906119a790613057565b91905055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a3657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7c57611a756064611a67602360095411611a5457601e611a58565b6008545b85611fc590919063ffffffff16565b61154990919063ffffffff16565b9050611b48565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b0557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b4757611b446064611b36602360095411611b23576019611b27565b6007545b85611fc590919063ffffffff16565b61154990919063ffffffff16565b90505b5b80600a6000828254611b5a9190612fb7565b925050819055506000611b6c30610987565b9050600e60019054906101000a900460ff16158015611bd85750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bf05750600e60029054906101000a900460ff165b8015611c1657506012600a611c0591906128dd565b621e8480611c139190612928565b81115b8015611c2457506014600954115b8015611c4c57506012600a611c3991906128dd565b62030d40611c479190612928565b600a54115b15611ca2576000600b548211611c625781611c66565b600b545b9050611c7f818511611c785784611c7a565b815b6120ec565b60004790506000811115611c9757611c9647612365565b5b6000600a8190555050505b505b6000811115611da857611cff81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d9f91906125ff565b60405180910390a35b611dfa82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea1611e53828461203f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f46848661203f90919063ffffffff16565b604051611f5391906125ff565b60405180910390a350505050565b6000838311158290611fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa091906124bf565b60405180910390fd5b5060008385611fb8919061309f565b9050809150509392505050565b6000808303611fd75760009050612039565b60008284611fe59190612928565b9050828482611ff49190613102565b14612034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202b906131a5565b60405180910390fd5b809150505b92915050565b600061208183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f61565b905092915050565b600080831182906120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c791906124bf565b60405180910390fd5b50600083856120df9190613102565b9050809150509392505050565b6001600e60016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612124576121236131c5565b5b6040519080825280602002602001820160405280156121525781602001602082028036833780820191505090505b509050308160008151811061216a576121696131f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612211573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122359190612afa565b81600181518110612249576122486131f4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122b030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113b5565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123149594939291906132e1565b600060405180830381600087803b15801561232e57600080fd5b505af1158015612342573d6000803e3d6000fd5b50505050506000600e60016101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123cd573d6000803e3d6000fd5b5050565b60008082846123e09190612fb7565b905083811015612425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241c90613387565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246957808201518184015260208101905061244e565b60008484015250505050565b6000601f19601f8301169050919050565b60006124918261242f565b61249b818561243a565b93506124ab81856020860161244b565b6124b481612475565b840191505092915050565b600060208201905081810360008301526124d98184612486565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612511826124e6565b9050919050565b61252181612506565b811461252c57600080fd5b50565b60008135905061253e81612518565b92915050565b6000819050919050565b61255781612544565b811461256257600080fd5b50565b6000813590506125748161254e565b92915050565b60008060408385031215612591576125906124e1565b5b600061259f8582860161252f565b92505060206125b085828601612565565b9150509250929050565b60008115159050919050565b6125cf816125ba565b82525050565b60006020820190506125ea60008301846125c6565b92915050565b6125f981612544565b82525050565b600060208201905061261460008301846125f0565b92915050565b60008060408385031215612631576126306124e1565b5b600061263f85828601612565565b925050602061265085828601612565565b9150509250929050565b600080600060608486031215612673576126726124e1565b5b60006126818682870161252f565b93505060206126928682870161252f565b92505060406126a386828701612565565b9150509250925092565b600060ff82169050919050565b6126c3816126ad565b82525050565b60006020820190506126de60008301846126ba565b92915050565b6000602082840312156126fa576126f96124e1565b5b60006127088482850161252f565b91505092915050565b61271a81612506565b82525050565b60006020820190506127356000830184612711565b92915050565b60008060408385031215612752576127516124e1565b5b60006127608582860161252f565b92505060206127718582860161252f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612801578086048111156127dd576127dc61277b565b5b60018516156127ec5780820291505b80810290506127fa856127aa565b94506127c1565b94509492505050565b60008261281a57600190506128d6565b8161282857600090506128d6565b816001811461283e576002811461284857612877565b60019150506128d6565b60ff84111561285a5761285961277b565b5b8360020a9150848211156128715761287061277b565b5b506128d6565b5060208310610133831016604e8410600b84101617156128ac5782820a9050838111156128a7576128a661277b565b5b6128d6565b6128b984848460016127b7565b925090508184048111156128d0576128cf61277b565b5b81810290505b9392505050565b60006128e882612544565b91506128f3836126ad565b92506129207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461280a565b905092915050565b600061293382612544565b915061293e83612544565b925082820261294c81612544565b915082820484148315176129635761296261277b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129a060208361243a565b91506129ab8261296a565b602082019050919050565b600060208201905081810360008301526129cf81612993565b9050919050565b7f457863656564732076616c756500000000000000000000000000000000000000600082015250565b6000612a0c600d8361243a565b9150612a17826129d6565b602082019050919050565b60006020820190508181036000830152612a3b816129ff565b9050919050565b6000606082019050612a5760008301866125f0565b612a6460208301856125f0565b612a7160408301846125c6565b949350505050565b7f696e697420616c72656164792063616c6c656400000000000000000000000000600082015250565b6000612aaf60138361243a565b9150612aba82612a79565b602082019050919050565b60006020820190508181036000830152612ade81612aa2565b9050919050565b600081519050612af481612518565b92915050565b600060208284031215612b1057612b0f6124e1565b5b6000612b1e84828501612ae5565b91505092915050565b6000604082019050612b3c6000830185612711565b612b496020830184612711565b9392505050565b6000819050919050565b6000819050919050565b6000612b7f612b7a612b7584612b50565b612b5a565b612544565b9050919050565b612b8f81612b64565b82525050565b600060c082019050612baa6000830189612711565b612bb760208301886125f0565b612bc46040830187612b86565b612bd16060830186612b86565b612bde6080830185612711565b612beb60a08301846125f0565b979650505050505050565b600081519050612c058161254e565b92915050565b600080600060608486031215612c2457612c236124e1565b5b6000612c3286828701612bf6565b9350506020612c4386828701612bf6565b9250506040612c5486828701612bf6565b9150509250925092565b6000604082019050612c736000830185612711565b612c8060208301846125f0565b9392505050565b612c90816125ba565b8114612c9b57600080fd5b50565b600081519050612cad81612c87565b92915050565b600060208284031215612cc957612cc86124e1565b5b6000612cd784828501612c9e565b91505092915050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b6000612d1660148361243a565b9150612d2182612ce0565b602082019050919050565b60006020820190508181036000830152612d4581612d09565b9050919050565b6000604082019050612d6160008301856125c6565b612d6e60208301846125c6565b9392505050565b7f45524332303a20617070726f766520746865207a65726f206164647265737300600082015250565b6000612dab601f8361243a565b9150612db682612d75565b602082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f45524332303a207472616e7366657220746865207a65726f2061646472657373600082015250565b6000612e1760208361243a565b9150612e2282612de1565b602082019050919050565b60006020820190508181036000830152612e4681612e0a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ea960298361243a565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b7f74726164696e67206e6f7420796574206f70656e000000000000000000000000600082015250565b6000612f1560148361243a565b9150612f2082612edf565b602082019050919050565b60006020820190508181036000830152612f4481612f08565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f8160198361243a565b9150612f8c82612f4b565b602082019050919050565b60006020820190508181036000830152612fb081612f74565b9050919050565b6000612fc282612544565b9150612fcd83612544565b9250828201905080821115612fe557612fe461277b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613021601a8361243a565b915061302c82612feb565b602082019050919050565b6000602082019050818103600083015261305081613014565b9050919050565b600061306282612544565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130945761309361277b565b5b600182019050919050565b60006130aa82612544565b91506130b583612544565b92508282039050818111156130cd576130cc61277b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061310d82612544565b915061311883612544565b925082613128576131276130d3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061318f60218361243a565b915061319a82613133565b604082019050919050565b600060208201905081810360008301526131be81613182565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61325881612506565b82525050565b600061326a838361324f565b60208301905092915050565b6000602082019050919050565b600061328e82613223565b613298818561322e565b93506132a38361323f565b8060005b838110156132d45781516132bb888261325e565b97506132c683613276565b9250506001810190506132a7565b5085935050505092915050565b600060a0820190506132f660008301886125f0565b6133036020830187612b86565b81810360408301526133158186613283565b90506133246060830185612711565b61333160808301846125f0565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613371601b8361243a565b915061337c8261333b565b602082019050919050565b600060208201905081810360008301526133a081613364565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208aadcc3abb211247d36f35889e0d8197dab0748e1db3e6da77658db9d6117e0964736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009af98aebca2c21eb802c3296b3c0e7e9cd34e699
-----Decoded View---------------
Arg [0] : taxWallet (address): 0x9AF98aEBCa2c21Eb802C3296B3c0E7E9Cd34E699
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009af98aebca2c21eb802c3296b3c0e7e9cd34e699
Deployed Bytecode Sourcemap
4116:9540:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6206:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7112:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5156:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13150:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5299:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6483:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7313:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6392:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12858:150;;;;;;;;;;;;;:::i;:::-;;6586:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3068:148;;;;;;;;;;;;;:::i;:::-;;5358:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11706:917;;;;;;;;;;;;;:::i;:::-;;2854:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5419:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6297:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6713:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5225:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12631:219;;;;;;;;;;;;;:::i;:::-;;6920:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13016:126;;;;;;;;;;;;;:::i;:::-;;6206:83;6243:13;6276:5;;;;;;;;;;;;;;;;;6269:12;;6206:83;:::o;7112:193::-;7214:4;7236:39;7245:12;:10;:12::i;:::-;7259:7;7268:6;7236:8;:39::i;:::-;7293:4;7286:11;;7112:193;;;;:::o;5156:62::-;5079:2;5205;:13;;;;:::i;:::-;5196:6;:22;;;;:::i;:::-;5156:62;:::o;13150:466::-;2991:12;:10;:12::i;:::-;2981:22;;:6;;;;;;;;;;:22;;;2973:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13258:2:::1;13245:9;:15;;:35;;;;;13278:2;13264:10;:16;;13245:35;:50;;;;;13284:11;;;;;;;;;;;13245:50;13236:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;13362:9;13347:12;:24;;;;13398:10;13382:13;:26;;;;13419:18;13456:1;13440:13;;:17;:81;;13500:21;13517:3;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;13501:1;:10;;;;:::i;:::-;13500:16;;:21;;;;:::i;:::-;13440:81;;;13474:22;13491:4;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;13475:1;:10;;;;:::i;:::-;13474:16;;:22;;;;:::i;:::-;13460:11;:36;;;13440:81;13419:102;;13537:71;13546:9;13557:10;13584:22;13601:4;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;13585:1;:10;;;;:::i;:::-;13584:16;;:22;;;;:::i;:::-;13570:10;:36;13537:71;;;;;;;;:::i;:::-;;;;;;;;13225:391;13150:466:::0;;:::o;5299:52::-;;;;:::o;6483:95::-;6536:7;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;6556:14;;6483:95;:::o;7313:446::-;7445:4;7462:36;7472:6;7480:9;7491:6;7462:9;:36::i;:::-;7509:220;7532:6;7553:12;:10;:12::i;:::-;7580:138;7636:6;7580:138;;;;;;;;;;;;;;;;;:11;:19;7592:6;7580:19;;;;;;;;;;;;;;;:33;7600:12;:10;:12::i;:::-;7580:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7509:8;:220::i;:::-;7747:4;7740:11;;7313:446;;;;;:::o;6392:83::-;6433:5;5079:2;6451:16;;6392:83;:::o;12858:150::-;2991:12;:10;:12::i;:::-;2981:22;;:6;;;;;;;;;;:22;;;2973:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5079:2:::1;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;12909:12;:22;;;;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;12942:14;:24;;;;12982:18;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;12982:18;;;;;;:::i;:::-;;;;;;;;12858:150::o:0;6586:119::-;6652:7;6679:9;:18;6689:7;6679:18;;;;;;;;;;;;;;;;6672:25;;6586:119;;;:::o;3068:148::-;2991:12;:10;:12::i;:::-;2981:22;;:6;;;;;;;;;;:22;;;2973:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3175:1:::1;3138:40;;3159:6;::::0;::::1;;;;;;;;3138:40;;;;;;;;;;;;3206:1;3189:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3068:148::o:0;5358:54::-;;;;:::o;11706:917::-;2991:12;:10;:12::i;:::-;2981:22;;:6;;;;;;;;;;:22;;;2973:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11767:11:::1;;;;;;;;;;;11766:12;11758:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11813:19;11835:90;11878:36;11910:3;11878:27;4554:2;5079;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;11878:11;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;11835:24;11853:4;11835:9;:24::i;:::-;:28;;:90;;;;:::i;:::-;11813:112;;11987:42;11936:15;;:104;;;;;;;;;;;;;;;;;;12051:58;12068:4;12083:15;;;;;;;;;;;5079:2;5136;:13;;;;:::i;:::-;5123:10;:26;;;;:::i;:::-;12051:8;:58::i;:::-;12154:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:55;;;12214:4;12234:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12120:13;;:147;;;;;;;;;;;;;;;;;;12278:15;;;;;;;;;;;:31;;;12317:21;12362:4;12382:11;12408:1;12424::::0;12440:12:::1;:10;:12::i;:::-;12467:15;12278:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12511:13;;;;;;;;;;;12504:29;;;12556:15;;;;;;;;;;;12587:17;12504:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11747:876;11706:917::o:0;2854:79::-;2892:7;2919:6;;;;;;;;;;;2912:13;;2854:79;:::o;5419:56::-;;;;:::o;6297:87::-;6336:13;6369:7;;;;;;;;;;;;;;;;;6362:14;;6297:87;:::o;6713:199::-;6818:4;6840:42;6850:12;:10;:12::i;:::-;6864:9;6875:6;6840:9;:42::i;:::-;6900:4;6893:11;;6713:199;;;;:::o;5225:67::-;5079:2;5279;:13;;;;:::i;:::-;5269:7;:23;;;;:::i;:::-;5225:67;:::o;12631:219::-;2991:12;:10;:12::i;:::-;2981:22;;:6;;;;;;;;;;:22;;;2973:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12693:11:::1;;;;;;;;;;;12692:12;12684:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;12754:4;12740:11;;:18;;;;;;;;;;;;;;;;;;12783:4;12769:11;;:18;;;;;;;;;;;;;;;;;;12803:39;12817:11;;;;;;;;;;;12830;;;;;;;;;;;12803:39;;;;;;;:::i;:::-;;;;;;;;12631:219::o:0;6920:184::-;7037:7;7069:11;:18;7081:5;7069:18;;;;;;;;;;;;;;;:27;7088:7;7069:27;;;;;;;;;;;;;;;;7062:34;;6920:184;;;;:::o;13016:126::-;13069:11;;;;;;;;;;;13061:20;;;;;;13092:10;;;;;;;;;;;:19;;:42;13112:21;13092:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13016:126::o;394:98::-;447:7;474:10;467:17;;394:98;:::o;7767:347::-;7925:1;7908:19;;:5;:19;;;;:44;;;;;7950:1;7931:21;;:7;:21;;;;7908:44;7886:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;8052:6;8022:11;:18;8034:5;8022:18;;;;;;;;;;;;;;;:27;8041:7;8022:27;;;;;;;;;;;;;;;:36;;;;8090:7;8074:32;;8083:5;8074:32;;;8099:6;8074:32;;;;;;:::i;:::-;;;;;;;;7767:347;;;:::o;2142:132::-;2200:7;2227:39;2231:1;2234;2227:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2220:46;;2142:132;;;;:::o;8122:2985::-;8274:1;8258:18;;:4;:18;;;;:38;;;;;8294:1;8280:16;;:2;:16;;;;8258:38;8236:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;8384:1;8375:6;:10;8367:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8442:17;8488:7;:5;:7::i;:::-;8480:15;;:4;:15;;;;:32;;;;;8505:7;:5;:7::i;:::-;8499:13;;:2;:13;;;;8480:32;8476:2260;;;8534:11;;;;;;;;;;;8529:197;;8596:18;:22;8615:2;8596:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8622:18;:24;8641:4;8622:24;;;;;;;;;;;;;;;;;;;;;;;;;8596:50;8566:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8529:197;8772:13;;;;;;;;;;;8764:21;;:4;:21;;;:72;;;;;8820:15;;;;;;;;;;;8806:30;;:2;:30;;;;8764:72;:116;;;;;8858:18;:22;8877:2;8858:22;;;;;;;;;;;;;;;;;;;;;;;;;8857:23;8764:116;8742:438;;;8933:12;;8923:6;:22;;8915:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9050:14;;9040:6;9024:13;9034:2;9024:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8994:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9153:9;;:11;;;;;;;;;:::i;:::-;;;;;;8742:438;9206:13;;;;;;;;;;;9200:19;;:2;:19;;;:44;;;;;9239:4;9223:21;;:4;:21;;;;9200:44;9196:667;;;9277:235;9508:3;9277:204;4711:2;9337:9;;:28;9336:122;;4606:2;9336:122;;;9398:13;;9336:122;9277:6;:32;;:204;;;;:::i;:::-;:230;;:235;;;;:::i;:::-;9265:247;;9196:667;;;9546:13;;;;;;;;;;;9538:21;;:4;:21;;;:44;;;;;9577:4;9563:19;;:2;:19;;;;9538:44;9534:329;;;9615:232;9843:3;9615:201;4658:2;9675:9;;:27;9674:119;;4554:2;9674:119;;;9735:12;;9674:119;9615:6;:32;;:201;;;;:::i;:::-;:227;;:232;;;;:::i;:::-;9603:244;;9534:329;9196:667;9892:9;9879;;:22;;;;;;;:::i;:::-;;;;;;;;9916:28;9947:24;9965:4;9947:9;:24::i;:::-;9916:55;;10009:6;;;;;;;;;;;10008:7;:47;;;;;10042:13;;;;;;;;;;;10036:19;;:2;:19;;;10008:47;:79;;;;;10076:11;;;;;;;;;;;10008:79;:140;;;;;5079:2;5279;:13;;;;:::i;:::-;5269:7;:23;;;;:::i;:::-;10108:20;:40;10008:140;:191;;;;;4766:2;10169:9;;:30;10008:191;:237;;;;;5079:2;5205;:13;;;;:::i;:::-;5196:6;:22;;;;:::i;:::-;10220:9;;:25;10008:237;9986:739;;;10280:14;10321:11;;10298:20;:34;10297:115;;10392:20;10297:115;;;10357:11;;10297:115;10280:132;;10431:53;10458:6;10449;:15;10448:35;;10477:6;10448:35;;;10468:6;10448:35;10431:16;:53::i;:::-;10503:26;10532:21;10503:50;;10597:1;10576:18;:22;10572:106;;;10623:35;10636:21;10623:12;:35::i;:::-;10572:106;10708:1;10696:9;:13;;;;10261:464;;9986:739;8514:2222;8476:2260;10764:1;10752:9;:13;10748:172;;;10809:39;10838:9;10809;:24;10827:4;10809:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10782:9;:24;10800:4;10782:24;;;;;;;;;;;;;;;:66;;;;10891:4;10868:40;;10877:4;10868:40;;;10898:9;10868:40;;;;;;:::i;:::-;;;;;;;;10748:172;10948:27;10968:6;10948:9;:15;10958:4;10948:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10930:9;:15;10940:4;10930:15;;;;;;;;;;;;;;;:45;;;;11002:40;11020:21;11031:9;11020:6;:10;;:21;;;;:::i;:::-;11002:9;:13;11012:2;11002:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10986:9;:13;10996:2;10986:13;;;;;;;;;;;;;;;:56;;;;11073:2;11058:41;;11067:4;11058:41;;;11077:21;11088:9;11077:6;:10;;:21;;;;:::i;:::-;11058:41;;;;;;:::i;:::-;;;;;;;;8225:2882;8122:2985;;;:::o;1656:224::-;1776:7;1809:1;1804;:6;;1812:12;1796:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1836:9;1852:1;1848;:5;;;;:::i;:::-;1836:17;;1871:1;1864:8;;;1656:224;;;;;:::o;1888:246::-;1946:7;1975:1;1970;:6;1966:47;;2000:1;1993:8;;;;1966:47;2023:9;2039:1;2035;:5;;;;:::i;:::-;2023:17;;2068:1;2063;2059;:5;;;;:::i;:::-;:10;2051:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2125:1;2118:8;;;1888:246;;;;;:::o;1512:136::-;1570:7;1597:43;1601:1;1604;1597:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1590:50;;1512:136;;;;:::o;2282:223::-;2402:7;2434:1;2430;:5;2437:12;2422:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2461:9;2477:1;2473;:5;;;;:::i;:::-;2461:17;;2496:1;2489:8;;;2282:223;;;;;:::o;11215:483::-;5811:4;5802:6;;:13;;;;;;;;;;;;;;;;;;11293:21:::1;11331:1;11317:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11293:40;;11362:4;11344;11349:1;11344:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11388:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11378:4;11383:1;11378:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11421:62;11438:4;11453:15;;;;;;;;;;;11471:11;11421:8;:62::i;:::-;11494:15;;;;;;;;;;;:66;;;11575:11;11601:1;11617:4;11644;11664:15;11494:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11282:416;5847:5:::0;5838:6;;:14;;;;;;;;;;;;;;;;;;11215:483;:::o;11115:92::-;11172:10;;;;;;;;;;;:19;;:27;11192:6;11172:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11115:92;:::o;1325:179::-;1383:7;1403:9;1419:1;1415;:5;;;;:::i;:::-;1403:17;;1444:1;1439;:6;;1431:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1495:1;1488:8;;;1325:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:163::-;10555:15;10551:1;10543:6;10539:14;10532:39;10415:163;:::o;10584:366::-;10726:3;10747:67;10811:2;10806:3;10747:67;:::i;:::-;10740:74;;10823:93;10912:3;10823:93;:::i;:::-;10941:2;10936:3;10932:12;10925:19;;10584:366;;;:::o;10956:419::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11209:9;11203:4;11199:20;11195:1;11184:9;11180:17;11173:47;11237:131;11363:4;11237:131;:::i;:::-;11229:139;;10956:419;;;:::o;11381:430::-;11524:4;11562:2;11551:9;11547:18;11539:26;;11575:71;11643:1;11632:9;11628:17;11619:6;11575:71;:::i;:::-;11656:72;11724:2;11713:9;11709:18;11700:6;11656:72;:::i;:::-;11738:66;11800:2;11789:9;11785:18;11776:6;11738:66;:::i;:::-;11381:430;;;;;;:::o;11817:169::-;11957:21;11953:1;11945:6;11941:14;11934:45;11817:169;:::o;11992:366::-;12134:3;12155:67;12219:2;12214:3;12155:67;:::i;:::-;12148:74;;12231:93;12320:3;12231:93;:::i;:::-;12349:2;12344:3;12340:12;12333:19;;11992:366;;;:::o;12364:419::-;12530:4;12568:2;12557:9;12553:18;12545:26;;12617:9;12611:4;12607:20;12603:1;12592:9;12588:17;12581:47;12645:131;12771:4;12645:131;:::i;:::-;12637:139;;12364:419;;;:::o;12789:143::-;12846:5;12877:6;12871:13;12862:22;;12893:33;12920:5;12893:33;:::i;:::-;12789:143;;;;:::o;12938:351::-;13008:6;13057:2;13045:9;13036:7;13032:23;13028:32;13025:119;;;13063:79;;:::i;:::-;13025:119;13183:1;13208:64;13264:7;13255:6;13244:9;13240:22;13208:64;:::i;:::-;13198:74;;13154:128;12938:351;;;;:::o;13295:332::-;13416:4;13454:2;13443:9;13439:18;13431:26;;13467:71;13535:1;13524:9;13520:17;13511:6;13467:71;:::i;:::-;13548:72;13616:2;13605:9;13601:18;13592:6;13548:72;:::i;:::-;13295:332;;;;;:::o;13633:85::-;13678:7;13707:5;13696:16;;13633:85;;;:::o;13724:60::-;13752:3;13773:5;13766:12;;13724:60;;;:::o;13790:158::-;13848:9;13881:61;13899:42;13908:32;13934:5;13908:32;:::i;:::-;13899:42;:::i;:::-;13881:61;:::i;:::-;13868:74;;13790:158;;;:::o;13954:147::-;14049:45;14088:5;14049:45;:::i;:::-;14044:3;14037:58;13954:147;;:::o;14107:807::-;14356:4;14394:3;14383:9;14379:19;14371:27;;14408:71;14476:1;14465:9;14461:17;14452:6;14408:71;:::i;:::-;14489:72;14557:2;14546:9;14542:18;14533:6;14489:72;:::i;:::-;14571:80;14647:2;14636:9;14632:18;14623:6;14571:80;:::i;:::-;14661;14737:2;14726:9;14722:18;14713:6;14661:80;:::i;:::-;14751:73;14819:3;14808:9;14804:19;14795:6;14751:73;:::i;:::-;14834;14902:3;14891:9;14887:19;14878:6;14834:73;:::i;:::-;14107:807;;;;;;;;;:::o;14920:143::-;14977:5;15008:6;15002:13;14993:22;;15024:33;15051:5;15024:33;:::i;:::-;14920:143;;;;:::o;15069:663::-;15157:6;15165;15173;15222:2;15210:9;15201:7;15197:23;15193:32;15190:119;;;15228:79;;:::i;:::-;15190:119;15348:1;15373:64;15429:7;15420:6;15409:9;15405:22;15373:64;:::i;:::-;15363:74;;15319:128;15486:2;15512:64;15568:7;15559:6;15548:9;15544:22;15512:64;:::i;:::-;15502:74;;15457:129;15625:2;15651:64;15707:7;15698:6;15687:9;15683:22;15651:64;:::i;:::-;15641:74;;15596:129;15069:663;;;;;:::o;15738:332::-;15859:4;15897:2;15886:9;15882:18;15874:26;;15910:71;15978:1;15967:9;15963:17;15954:6;15910:71;:::i;:::-;15991:72;16059:2;16048:9;16044:18;16035:6;15991:72;:::i;:::-;15738:332;;;;;:::o;16076:116::-;16146:21;16161:5;16146:21;:::i;:::-;16139:5;16136:32;16126:60;;16182:1;16179;16172:12;16126:60;16076:116;:::o;16198:137::-;16252:5;16283:6;16277:13;16268:22;;16299:30;16323:5;16299:30;:::i;:::-;16198:137;;;;:::o;16341:345::-;16408:6;16457:2;16445:9;16436:7;16432:23;16428:32;16425:119;;;16463:79;;:::i;:::-;16425:119;16583:1;16608:61;16661:7;16652:6;16641:9;16637:22;16608:61;:::i;:::-;16598:71;;16554:125;16341:345;;;;:::o;16692:170::-;16832:22;16828:1;16820:6;16816:14;16809:46;16692:170;:::o;16868:366::-;17010:3;17031:67;17095:2;17090:3;17031:67;:::i;:::-;17024:74;;17107:93;17196:3;17107:93;:::i;:::-;17225:2;17220:3;17216:12;17209:19;;16868:366;;;:::o;17240:419::-;17406:4;17444:2;17433:9;17429:18;17421:26;;17493:9;17487:4;17483:20;17479:1;17468:9;17464:17;17457:47;17521:131;17647:4;17521:131;:::i;:::-;17513:139;;17240:419;;;:::o;17665:308::-;17774:4;17812:2;17801:9;17797:18;17789:26;;17825:65;17887:1;17876:9;17872:17;17863:6;17825:65;:::i;:::-;17900:66;17962:2;17951:9;17947:18;17938:6;17900:66;:::i;:::-;17665:308;;;;;:::o;17979:181::-;18119:33;18115:1;18107:6;18103:14;18096:57;17979:181;:::o;18166:366::-;18308:3;18329:67;18393:2;18388:3;18329:67;:::i;:::-;18322:74;;18405:93;18494:3;18405:93;:::i;:::-;18523:2;18518:3;18514:12;18507:19;;18166:366;;;:::o;18538:419::-;18704:4;18742:2;18731:9;18727:18;18719:26;;18791:9;18785:4;18781:20;18777:1;18766:9;18762:17;18755:47;18819:131;18945:4;18819:131;:::i;:::-;18811:139;;18538:419;;;:::o;18963:182::-;19103:34;19099:1;19091:6;19087:14;19080:58;18963:182;:::o;19151:366::-;19293:3;19314:67;19378:2;19373:3;19314:67;:::i;:::-;19307:74;;19390:93;19479:3;19390:93;:::i;:::-;19508:2;19503:3;19499:12;19492:19;;19151:366;;;:::o;19523:419::-;19689:4;19727:2;19716:9;19712:18;19704:26;;19776:9;19770:4;19766:20;19762:1;19751:9;19747:17;19740:47;19804:131;19930:4;19804:131;:::i;:::-;19796:139;;19523:419;;;:::o;19948:228::-;20088:34;20084:1;20076:6;20072:14;20065:58;20157:11;20152:2;20144:6;20140:15;20133:36;19948:228;:::o;20182:366::-;20324:3;20345:67;20409:2;20404:3;20345:67;:::i;:::-;20338:74;;20421:93;20510:3;20421:93;:::i;:::-;20539:2;20534:3;20530:12;20523:19;;20182:366;;;:::o;20554:419::-;20720:4;20758:2;20747:9;20743:18;20735:26;;20807:9;20801:4;20797:20;20793:1;20782:9;20778:17;20771:47;20835:131;20961:4;20835:131;:::i;:::-;20827:139;;20554:419;;;:::o;20979:170::-;21119:22;21115:1;21107:6;21103:14;21096:46;20979:170;:::o;21155:366::-;21297:3;21318:67;21382:2;21377:3;21318:67;:::i;:::-;21311:74;;21394:93;21483:3;21394:93;:::i;:::-;21512:2;21507:3;21503:12;21496:19;;21155:366;;;:::o;21527:419::-;21693:4;21731:2;21720:9;21716:18;21708:26;;21780:9;21774:4;21770:20;21766:1;21755:9;21751:17;21744:47;21808:131;21934:4;21808:131;:::i;:::-;21800:139;;21527:419;;;:::o;21952:175::-;22092:27;22088:1;22080:6;22076:14;22069:51;21952:175;:::o;22133:366::-;22275:3;22296:67;22360:2;22355:3;22296:67;:::i;:::-;22289:74;;22372:93;22461:3;22372:93;:::i;:::-;22490:2;22485:3;22481:12;22474:19;;22133:366;;;:::o;22505:419::-;22671:4;22709:2;22698:9;22694:18;22686:26;;22758:9;22752:4;22748:20;22744:1;22733:9;22729:17;22722:47;22786:131;22912:4;22786:131;:::i;:::-;22778:139;;22505:419;;;:::o;22930:191::-;22970:3;22989:20;23007:1;22989:20;:::i;:::-;22984:25;;23023:20;23041:1;23023:20;:::i;:::-;23018:25;;23066:1;23063;23059:9;23052:16;;23087:3;23084:1;23081:10;23078:36;;;23094:18;;:::i;:::-;23078:36;22930:191;;;;:::o;23127:176::-;23267:28;23263:1;23255:6;23251:14;23244:52;23127:176;:::o;23309:366::-;23451:3;23472:67;23536:2;23531:3;23472:67;:::i;:::-;23465:74;;23548:93;23637:3;23548:93;:::i;:::-;23666:2;23661:3;23657:12;23650:19;;23309:366;;;:::o;23681:419::-;23847:4;23885:2;23874:9;23870:18;23862:26;;23934:9;23928:4;23924:20;23920:1;23909:9;23905:17;23898:47;23962:131;24088:4;23962:131;:::i;:::-;23954:139;;23681:419;;;:::o;24106:233::-;24145:3;24168:24;24186:5;24168:24;:::i;:::-;24159:33;;24214:66;24207:5;24204:77;24201:103;;24284:18;;:::i;:::-;24201:103;24331:1;24324:5;24320:13;24313:20;;24106:233;;;:::o;24345:194::-;24385:4;24405:20;24423:1;24405:20;:::i;:::-;24400:25;;24439:20;24457:1;24439:20;:::i;:::-;24434:25;;24483:1;24480;24476:9;24468:17;;24507:1;24501:4;24498:11;24495:37;;;24512:18;;:::i;:::-;24495:37;24345:194;;;;:::o;24545:180::-;24593:77;24590:1;24583:88;24690:4;24687:1;24680:15;24714:4;24711:1;24704:15;24731:185;24771:1;24788:20;24806:1;24788:20;:::i;:::-;24783:25;;24822:20;24840:1;24822:20;:::i;:::-;24817:25;;24861:1;24851:35;;24866:18;;:::i;:::-;24851:35;24908:1;24905;24901:9;24896:14;;24731:185;;;;:::o;24922:220::-;25062:34;25058:1;25050:6;25046:14;25039:58;25131:3;25126:2;25118:6;25114:15;25107:28;24922:220;:::o;25148:366::-;25290:3;25311:67;25375:2;25370:3;25311:67;:::i;:::-;25304:74;;25387:93;25476:3;25387:93;:::i;:::-;25505:2;25500:3;25496:12;25489:19;;25148:366;;;:::o;25520:419::-;25686:4;25724:2;25713:9;25709:18;25701:26;;25773:9;25767:4;25763:20;25759:1;25748:9;25744:17;25737:47;25801:131;25927:4;25801:131;:::i;:::-;25793:139;;25520:419;;;:::o;25945:180::-;25993:77;25990:1;25983:88;26090:4;26087:1;26080:15;26114:4;26111:1;26104:15;26131:180;26179:77;26176:1;26169:88;26276:4;26273:1;26266:15;26300:4;26297:1;26290:15;26317:114;26384:6;26418:5;26412:12;26402:22;;26317:114;;;:::o;26437:184::-;26536:11;26570:6;26565:3;26558:19;26610:4;26605:3;26601:14;26586:29;;26437:184;;;;:::o;26627:132::-;26694:4;26717:3;26709:11;;26747:4;26742:3;26738:14;26730:22;;26627:132;;;:::o;26765:108::-;26842:24;26860:5;26842:24;:::i;:::-;26837:3;26830:37;26765:108;;:::o;26879:179::-;26948:10;26969:46;27011:3;27003:6;26969:46;:::i;:::-;27047:4;27042:3;27038:14;27024:28;;26879:179;;;;:::o;27064:113::-;27134:4;27166;27161:3;27157:14;27149:22;;27064:113;;;:::o;27213:732::-;27332:3;27361:54;27409:5;27361:54;:::i;:::-;27431:86;27510:6;27505:3;27431:86;:::i;:::-;27424:93;;27541:56;27591:5;27541:56;:::i;:::-;27620:7;27651:1;27636:284;27661:6;27658:1;27655:13;27636:284;;;27737:6;27731:13;27764:63;27823:3;27808:13;27764:63;:::i;:::-;27757:70;;27850:60;27903:6;27850:60;:::i;:::-;27840:70;;27696:224;27683:1;27680;27676:9;27671:14;;27636:284;;;27640:14;27936:3;27929:10;;27337:608;;;27213:732;;;;:::o;27951:831::-;28214:4;28252:3;28241:9;28237:19;28229:27;;28266:71;28334:1;28323:9;28319:17;28310:6;28266:71;:::i;:::-;28347:80;28423:2;28412:9;28408:18;28399:6;28347:80;:::i;:::-;28474:9;28468:4;28464:20;28459:2;28448:9;28444:18;28437:48;28502:108;28605:4;28596:6;28502:108;:::i;:::-;28494:116;;28620:72;28688:2;28677:9;28673:18;28664:6;28620:72;:::i;:::-;28702:73;28770:3;28759:9;28755:19;28746:6;28702:73;:::i;:::-;27951:831;;;;;;;;:::o;28788:177::-;28928:29;28924:1;28916:6;28912:14;28905:53;28788:177;:::o;28971:366::-;29113:3;29134:67;29198:2;29193:3;29134:67;:::i;:::-;29127:74;;29210:93;29299:3;29210:93;:::i;:::-;29328:2;29323:3;29319:12;29312:19;;28971:366;;;:::o;29343:419::-;29509:4;29547:2;29536:9;29532:18;29524:26;;29596:9;29590:4;29586:20;29582:1;29571:9;29567:17;29560:47;29624:131;29750:4;29624:131;:::i;:::-;29616:139;;29343:419;;;:::o
Swarm Source
ipfs://8aadcc3abb211247d36f35889e0d8197dab0748e1db3e6da77658db9d6117e09
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.