ERC-20
Overview
Max Total Supply
10,000,000 SPARK
Holders
320
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SparkAi
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-09 */ // SPDX-License-Identifier: MIT /* The All in One Ai Agent and Insured Financial Advisor! Socials: TG: https://t.me/SparkAi_entry X: https://twitter.com/SparkAiErc Web: https://spark-ai.org Docs: https://docs.spark-ai.org Medium: https://medium.com/@SparkAiErc */ pragma solidity 0.8.23; 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( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract SparkAi 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; uint256 private _initialBuyTax = 20; uint256 private _initialSellTax = 30; uint256 private _finalBuyTax = 5; uint256 private _finalSellTax = 5; uint256 private _reduceBuyTaxAt = 5; uint256 private _reduceSellTaxAt = 5; uint256 private _preventSwapBefore = 20; uint256 private _transferTax = 0; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 10_000_000 * 10**_decimals; string private constant _name = unicode"Spark Ai"; string private constant _symbol = unicode"SPARK"; uint256 public _maxTxAmount= (_tTotal * 2) / 100; uint256 public _maxWalletSize= (_tTotal * 2) / 100; uint256 public _taxSwapThreshold= (_tTotal * 25) / 10000; uint256 public _maxTaxSwap= (_tTotal * 6) / 100; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpened; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; uint256 private firstBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); event ClearToken(address TokenAddressCleared, uint256 Amount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _taxWallet = payable(_msgSender()); _balances[address(this)] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0), address(this), _balances[address(this)]); } 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), "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"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(tradingOpened, "Trading not opened"); } if(_buyCount == 0){ taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); } if(_buyCount > 0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); _buyCount++; if(block.number == firstBlock){ require(_buyCount <= 31, "Exceeds buys on the first block."); } } if(to == uniswapV2Pair && from != address(this) ){ taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 7, "Only 7 sells per block!"); swapTokensForEth(min(amount,min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock =block.number; } } 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 min(uint256 a, uint256 b) private pure returns (uint256){ return (a > b) ? b : a; } 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 removeALLLimit() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addLiquidityETH() external onlyOwner() { uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp); } function openTrading() external onlyOwner() { require(!tradingOpened,"trading is already open"); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpened = true; firstBlock = block.number; } receive() external payable {} function reduceTax(uint256 _newTax) external{ require(_msgSender() == _taxWallet); require(_newTax <= _finalBuyTax && _newTax <= _finalSellTax); _finalBuyTax = _newTax; _finalSellTax = _newTax; } function getStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { require(_msgSender() == _taxWallet); if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress,tokens); return IERC20(tokenAddress).transfer(_taxWallet, tokens); } function manualSend() external { require(_msgSender() == _taxWallet); uint256 ethBalance= address(this).balance; require(ethBalance > 0, "Contract balance must be greater than zero"); sendETHToFee(ethBalance); } function manualSwap() external { require(_msgSender() == _taxWallet); uint256 tokenBalance = balanceOf(address(this)); if(tokenBalance > 0){ swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if(ethBalance > 0){ sendETHToFee(ethBalance); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"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":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"getStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeALLLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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
60806040526014600555601e6006556005600755600560085560056009556005600a556014600b555f600c555f600d5560646009600a6200004191906200068f565b620000509062989680620006a6565b6200005d906002620006a6565b620000699190620006c0565b600e5560646200007c6009600a6200068f565b6200008b9062989680620006a6565b62000098906002620006a6565b620000a49190620006c0565b600f55612710620000b86009600a6200068f565b620000c79062989680620006a6565b620000d4906019620006a6565b620000e09190620006c0565b6010556064620000f36009600a6200068f565b620001029062989680620006a6565b6200010f906006620006a6565b6200011b9190620006c0565b6011556013805461ffff60a81b191690555f60148190556015819055601681905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200019b6009600a6200068f565b620001aa9062989680620006a6565b305f908152600160208190526040822092909255600390620001d35f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308082526003909452828120805486166001908117909155600454909216815291909120805490931617909155601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556200027f91906200026a6009600a6200068f565b620002799062989680620006a6565b62000455565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f69190620006e0565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000356573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200037c9190620006e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003c7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ed9190620006e0565b601380546001600160a01b0319166001600160a01b0392909216919091179055305f8181526001602090815260408083205490519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000708565b6001600160a01b038316620004bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004b4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005d457815f1904821115620005b857620005b862000580565b80851615620005c657918102915b93841c939080029062000599565b509250929050565b5f82620005ec5750600162000689565b81620005fa57505f62000689565b81600181146200061357600281146200061e576200063e565b600191505062000689565b60ff84111562000632576200063262000580565b50506001821b62000689565b5060208310610133831016604e8410600b841016171562000663575081810a62000689565b6200066f838362000594565b805f190482111562000685576200068562000580565b0290505b92915050565b5f6200069f60ff841683620005dc565b9392505050565b808202811582820484141762000689576200068962000580565b5f82620006db57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006f1575f80fd5b81516001600160a01b03811681146200069f575f80fd5b611a4c80620007165f395ff3fe60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063c9567bf91161006d578063c9567bf91461036e578063dd62ed3e14610382578063ed995307146103c6578063ef985894146103da578063f4293890146103f9578063faf3eea91461040d575f80fd5b80638da5cb5b146102b35780638f9a55c0146102d957806393109e02146102ee57806395d89b411461030d578063a9059cbb1461033a578063bf474bed14610359575f80fd5b806323b872dd1161010457806323b872dd14610208578063313ce5671461022757806351bc3c851461024257806370a0823114610256578063715018a61461028a5780637d1db4a51461029e575f80fd5b806306fdde031461014a578063095ea7b31461018c5780630faee56f146101bb578063109daa99146101de57806318160ddd146101f4575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526008815267537061726b20416960c01b60208201525b6040516101839190611611565b60405180910390f35b348015610197575f80fd5b506101ab6101a6366004611671565b610421565b6040519015158152602001610183565b3480156101c6575f80fd5b506101d060115481565b604051908152602001610183565b3480156101e9575f80fd5b506101f2610437565b005b3480156101ff575f80fd5b506101d06104a5565b348015610213575f80fd5b506101ab61022236600461169b565b6104c4565b348015610232575f80fd5b5060405160098152602001610183565b34801561024d575f80fd5b506101f261052b565b348015610261575f80fd5b506101d06102703660046116d9565b6001600160a01b03165f9081526001602052604090205490565b348015610295575f80fd5b506101f261057c565b3480156102a9575f80fd5b506101d0600e5481565b3480156102be575f80fd5b505f546040516001600160a01b039091168152602001610183565b3480156102e4575f80fd5b506101d0600f5481565b3480156102f9575f80fd5b506101ab610308366004611671565b6105ed565b348015610318575f80fd5b50604080518082019091526005815264535041524b60d81b6020820152610176565b348015610345575f80fd5b506101ab610354366004611671565b61073d565b348015610364575f80fd5b506101d060105481565b348015610379575f80fd5b506101f2610749565b34801561038d575f80fd5b506101d061039c3660046116f4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103d1575f80fd5b506101f2610860565b3480156103e5575f80fd5b506101f26103f436600461172b565b61095d565b348015610404575f80fd5b506101f26109a2565b348015610418575f80fd5b506101f2610a2e565b5f61042d338484610ad7565b5060015b92915050565b5f546001600160a01b031633146104695760405162461bcd60e51b815260040161046090611742565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104b26009600a61186b565b6104bf9062989680611879565b905090565b5f6104d0848484610bfa565b610521843361051c856040518060600160405280602881526020016119ef602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611294565b610ad7565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461054a575f80fd5b305f90815260016020526040902054801561056857610568816112cc565b478015610578576105788161143c565b5050565b5f546001600160a01b031633146105a55760405162461bcd60e51b815260040161046090611742565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004545f906001600160a01b0316336001600160a01b03161461060e575f80fd5b815f0361067e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067b9190611890565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610712573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073691906118a7565b9392505050565b5f61042d338484610bfa565b5f546001600160a01b031633146107725760405162461bcd60e51b815260040161046090611742565b601354600160a01b900460ff16156107cc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610460565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801561081e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084291906118a7565b506013805462ff00ff60a01b19166201000160a01b17905543601655565b5f546001600160a01b031633146108895760405162461bcd60e51b815260040161046090611742565b6012546001600160a01b031663f305d71947306108ba816001600160a01b03165f9081526001602052604090205490565b5f806108cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610933573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061095891906118c6565b505050565b6004546001600160a01b0316336001600160a01b03161461097c575f80fd5b600754811115801561099057506008548111155b610998575f80fd5b6007819055600855565b6004546001600160a01b0316336001600160a01b0316146109c1575f80fd5b4780610a225760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610460565b610a2b8161143c565b50565b5f546001600160a01b03163314610a575760405162461bcd60e51b815260040161046090611742565b610a636009600a61186b565b610a709062989680611879565b600e55610a7f6009600a61186b565b610a8c9062989680611879565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610abc6009600a61186b565b610ac99062989680611879565b60405190815260200161049b565b6001600160a01b038316610b395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610460565b6001600160a01b038216610b9a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610460565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c5e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610460565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610460565b5f8111610d215760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610460565b5f80546001600160a01b03858116911614801590610d4c57505f546001600160a01b03848116911614155b15611157576001600160a01b0384165f9081526003602052604090205460ff16158015610d9157506001600160a01b0383165f9081526003602052604090205460ff16155b15610de457601354600160a01b900460ff16610de45760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b6044820152606401610460565b600d545f03610e1c57610e196064610e13600954600d5411610e0857600554610e0c565b6007545b8590611473565b906114f1565b90505b600d5415610e4157610e3e6064610e13600c548561147390919063ffffffff16565b90505b6013546001600160a01b038581169116148015610e6c57506012546001600160a01b03848116911614155b8015610e9057506001600160a01b0383165f9081526003602052604090205460ff16155b15610fee57600e54821115610ee75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610460565b600f5482610f09856001600160a01b03165f9081526001602052604090205490565b610f1391906118f1565b1115610f615760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610460565b610f7c6064610e13600954600d5411610e0857600554610e0c565b600d80549192505f610f8d83611904565b91905055506016544303610fee57601f600d541115610fee5760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610460565b6013546001600160a01b03848116911614801561101457506001600160a01b0384163014155b156110415761103e6064610e13600a54600d541161103457600654610e0c565b6008548590611473565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561107757506013546001600160a01b038581169116145b801561108c5750601354600160b01b900460ff165b8015611099575060105481115b80156110a85750600b54600d54115b15611155576015544311156110bc575f6014555b60076014541061110e5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920372073656c6c732070657220626c6f636b210000000000000000006044820152606401610460565b61112b6111268461112184601154611532565b611532565b6112cc565b47801561113b5761113b4761143c565b60148054905f61114a83611904565b909155505043601555505b505b80156111cf57305f908152600160205260409020546111769082611546565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c69085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f190836115a4565b6001600160a01b0385165f9081526001602052604090205561123461121683836115a4565b6001600160a01b0385165f9081526001602052604090205490611546565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61127d85856115a4565b60405190815260200160405180910390a350505050565b5f81848411156112b75760405162461bcd60e51b81526004016104609190611611565b505f6112c3848661191c565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113125761131261192f565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611369573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138d9190611943565b816001815181106113a0576113a061192f565b6001600160a01b0392831660209182029290920101526012546113c69130911684610ad7565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113fe9085905f9086903090429060040161195e565b5f604051808303815f87803b158015611415575f80fd5b505af1158015611427573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610578573d5f803e3d5ffd5b5f825f0361148257505f610431565b5f61148d8385611879565b90508261149a85836119cf565b146107365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610460565b5f61073683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115e5565b5f8183116115405782610736565b50919050565b5f8061155283856118f1565b9050838110156107365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610460565b5f61073683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611294565b5f81836116055760405162461bcd60e51b81526004016104609190611611565b505f6112c384866119cf565b5f602080835283518060208501525f5b8181101561163d57858101830151858201604001528201611621565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a2b575f80fd5b5f8060408385031215611682575f80fd5b823561168d8161165d565b946020939093013593505050565b5f805f606084860312156116ad575f80fd5b83356116b88161165d565b925060208401356116c88161165d565b929592945050506040919091013590565b5f602082840312156116e9575f80fd5b81356107368161165d565b5f8060408385031215611705575f80fd5b82356117108161165d565b915060208301356117208161165d565b809150509250929050565b5f6020828403121561173b575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117c557815f19048211156117ab576117ab611777565b808516156117b857918102915b93841c9390800290611790565b509250929050565b5f826117db57506001610431565b816117e757505f610431565b81600181146117fd576002811461180757611823565b6001915050610431565b60ff84111561181857611818611777565b50506001821b610431565b5060208310610133831016604e8410600b8410161715611846575081810a610431565b611850838361178b565b805f190482111561186357611863611777565b029392505050565b5f61073660ff8416836117cd565b808202811582820484141761043157610431611777565b5f602082840312156118a0575f80fd5b5051919050565b5f602082840312156118b7575f80fd5b81518015158114610736575f80fd5b5f805f606084860312156118d8575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561043157610431611777565b5f6001820161191557611915611777565b5060010190565b8181038181111561043157610431611777565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611953575f80fd5b81516107368161165d565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119ae5784516001600160a01b031683529383019391830191600101611989565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119e957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010db1e3cb801b726788fb7bf2a1b242d1c742fda856d2c968731491f1b4179ca64736f6c63430008170033
Deployed Bytecode
0x60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063c9567bf91161006d578063c9567bf91461036e578063dd62ed3e14610382578063ed995307146103c6578063ef985894146103da578063f4293890146103f9578063faf3eea91461040d575f80fd5b80638da5cb5b146102b35780638f9a55c0146102d957806393109e02146102ee57806395d89b411461030d578063a9059cbb1461033a578063bf474bed14610359575f80fd5b806323b872dd1161010457806323b872dd14610208578063313ce5671461022757806351bc3c851461024257806370a0823114610256578063715018a61461028a5780637d1db4a51461029e575f80fd5b806306fdde031461014a578063095ea7b31461018c5780630faee56f146101bb578063109daa99146101de57806318160ddd146101f4575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b50604080518082019091526008815267537061726b20416960c01b60208201525b6040516101839190611611565b60405180910390f35b348015610197575f80fd5b506101ab6101a6366004611671565b610421565b6040519015158152602001610183565b3480156101c6575f80fd5b506101d060115481565b604051908152602001610183565b3480156101e9575f80fd5b506101f2610437565b005b3480156101ff575f80fd5b506101d06104a5565b348015610213575f80fd5b506101ab61022236600461169b565b6104c4565b348015610232575f80fd5b5060405160098152602001610183565b34801561024d575f80fd5b506101f261052b565b348015610261575f80fd5b506101d06102703660046116d9565b6001600160a01b03165f9081526001602052604090205490565b348015610295575f80fd5b506101f261057c565b3480156102a9575f80fd5b506101d0600e5481565b3480156102be575f80fd5b505f546040516001600160a01b039091168152602001610183565b3480156102e4575f80fd5b506101d0600f5481565b3480156102f9575f80fd5b506101ab610308366004611671565b6105ed565b348015610318575f80fd5b50604080518082019091526005815264535041524b60d81b6020820152610176565b348015610345575f80fd5b506101ab610354366004611671565b61073d565b348015610364575f80fd5b506101d060105481565b348015610379575f80fd5b506101f2610749565b34801561038d575f80fd5b506101d061039c3660046116f4565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103d1575f80fd5b506101f2610860565b3480156103e5575f80fd5b506101f26103f436600461172b565b61095d565b348015610404575f80fd5b506101f26109a2565b348015610418575f80fd5b506101f2610a2e565b5f61042d338484610ad7565b5060015b92915050565b5f546001600160a01b031633146104695760405162461bcd60e51b815260040161046090611742565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104b26009600a61186b565b6104bf9062989680611879565b905090565b5f6104d0848484610bfa565b610521843361051c856040518060600160405280602881526020016119ef602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611294565b610ad7565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461054a575f80fd5b305f90815260016020526040902054801561056857610568816112cc565b478015610578576105788161143c565b5050565b5f546001600160a01b031633146105a55760405162461bcd60e51b815260040161046090611742565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004545f906001600160a01b0316336001600160a01b03161461060e575f80fd5b815f0361067e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610657573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067b9190611890565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610712573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073691906118a7565b9392505050565b5f61042d338484610bfa565b5f546001600160a01b031633146107725760405162461bcd60e51b815260040161046090611742565b601354600160a01b900460ff16156107cc5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610460565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af115801561081e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084291906118a7565b506013805462ff00ff60a01b19166201000160a01b17905543601655565b5f546001600160a01b031633146108895760405162461bcd60e51b815260040161046090611742565b6012546001600160a01b031663f305d71947306108ba816001600160a01b03165f9081526001602052604090205490565b5f806108cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610933573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061095891906118c6565b505050565b6004546001600160a01b0316336001600160a01b03161461097c575f80fd5b600754811115801561099057506008548111155b610998575f80fd5b6007819055600855565b6004546001600160a01b0316336001600160a01b0316146109c1575f80fd5b4780610a225760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610460565b610a2b8161143c565b50565b5f546001600160a01b03163314610a575760405162461bcd60e51b815260040161046090611742565b610a636009600a61186b565b610a709062989680611879565b600e55610a7f6009600a61186b565b610a8c9062989680611879565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610abc6009600a61186b565b610ac99062989680611879565b60405190815260200161049b565b6001600160a01b038316610b395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610460565b6001600160a01b038216610b9a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610460565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c5e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610460565b6001600160a01b038216610cc05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610460565b5f8111610d215760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610460565b5f80546001600160a01b03858116911614801590610d4c57505f546001600160a01b03848116911614155b15611157576001600160a01b0384165f9081526003602052604090205460ff16158015610d9157506001600160a01b0383165f9081526003602052604090205460ff16155b15610de457601354600160a01b900460ff16610de45760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b6044820152606401610460565b600d545f03610e1c57610e196064610e13600954600d5411610e0857600554610e0c565b6007545b8590611473565b906114f1565b90505b600d5415610e4157610e3e6064610e13600c548561147390919063ffffffff16565b90505b6013546001600160a01b038581169116148015610e6c57506012546001600160a01b03848116911614155b8015610e9057506001600160a01b0383165f9081526003602052604090205460ff16155b15610fee57600e54821115610ee75760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610460565b600f5482610f09856001600160a01b03165f9081526001602052604090205490565b610f1391906118f1565b1115610f615760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610460565b610f7c6064610e13600954600d5411610e0857600554610e0c565b600d80549192505f610f8d83611904565b91905055506016544303610fee57601f600d541115610fee5760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610460565b6013546001600160a01b03848116911614801561101457506001600160a01b0384163014155b156110415761103e6064610e13600a54600d541161103457600654610e0c565b6008548590611473565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561107757506013546001600160a01b038581169116145b801561108c5750601354600160b01b900460ff165b8015611099575060105481115b80156110a85750600b54600d54115b15611155576015544311156110bc575f6014555b60076014541061110e5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920372073656c6c732070657220626c6f636b210000000000000000006044820152606401610460565b61112b6111268461112184601154611532565b611532565b6112cc565b47801561113b5761113b4761143c565b60148054905f61114a83611904565b909155505043601555505b505b80156111cf57305f908152600160205260409020546111769082611546565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c69085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f190836115a4565b6001600160a01b0385165f9081526001602052604090205561123461121683836115a4565b6001600160a01b0385165f9081526001602052604090205490611546565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61127d85856115a4565b60405190815260200160405180910390a350505050565b5f81848411156112b75760405162461bcd60e51b81526004016104609190611611565b505f6112c3848661191c565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113125761131261192f565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611369573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138d9190611943565b816001815181106113a0576113a061192f565b6001600160a01b0392831660209182029290920101526012546113c69130911684610ad7565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113fe9085905f9086903090429060040161195e565b5f604051808303815f87803b158015611415575f80fd5b505af1158015611427573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610578573d5f803e3d5ffd5b5f825f0361148257505f610431565b5f61148d8385611879565b90508261149a85836119cf565b146107365760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610460565b5f61073683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115e5565b5f8183116115405782610736565b50919050565b5f8061155283856118f1565b9050838110156107365760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610460565b5f61073683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611294565b5f81836116055760405162461bcd60e51b81526004016104609190611611565b505f6112c384866119cf565b5f602080835283518060208501525f5b8181101561163d57858101830151858201604001528201611621565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a2b575f80fd5b5f8060408385031215611682575f80fd5b823561168d8161165d565b946020939093013593505050565b5f805f606084860312156116ad575f80fd5b83356116b88161165d565b925060208401356116c88161165d565b929592945050506040919091013590565b5f602082840312156116e9575f80fd5b81356107368161165d565b5f8060408385031215611705575f80fd5b82356117108161165d565b915060208301356117208161165d565b809150509250929050565b5f6020828403121561173b575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117c557815f19048211156117ab576117ab611777565b808516156117b857918102915b93841c9390800290611790565b509250929050565b5f826117db57506001610431565b816117e757505f610431565b81600181146117fd576002811461180757611823565b6001915050610431565b60ff84111561181857611818611777565b50506001821b610431565b5060208310610133831016604e8410600b8410161715611846575081810a610431565b611850838361178b565b805f190482111561186357611863611777565b029392505050565b5f61073660ff8416836117cd565b808202811582820484141761043157610431611777565b5f602082840312156118a0575f80fd5b5051919050565b5f602082840312156118b7575f80fd5b81518015158114610736575f80fd5b5f805f606084860312156118d8575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561043157610431611777565b5f6001820161191557611915611777565b5060010190565b8181038181111561043157610431611777565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611953575f80fd5b81516107368161165d565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119ae5784516001600160a01b031683529383019391830191600101611989565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119e957634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010db1e3cb801b726788fb7bf2a1b242d1c742fda856d2c968731491f1b4179ca64736f6c63430008170033
Deployed Bytecode Sourcemap
3721:9555:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6076:83;;;;;;;;;;-1:-1:-1;6146:5:0;;;;;;;;;;;;-1:-1:-1;;;6146:5:0;;;;6076:83;;;;;;;:::i;:::-;;;;;;;;6909:161;;;;;;;;;;-1:-1:-1;6909:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6909:161:0;1023:187:1;4808:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4808:47:0;1215:177:1;11268:119:0;;;;;;;;;;;;;:::i;:::-;;6353:95;;;;;;;;;;;;;:::i;7078:313::-;;;;;;;;;;-1:-1:-1;7078:313:0;;;;;:::i;:::-;;:::i;6262:83::-;;;;;;;;;;-1:-1:-1;6262:83:0;;4446:1;2000:36:1;;1988:2;1973:18;6262:83:0;1858:184:1;12931:342:0;;;;;;;;;;;;;:::i;6456:119::-;;;;;;;;;;-1:-1:-1;6456:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6549:18:0;6522:7;6549:18;;;:9;:18;;;;;;;6456:119;2802:148;;;;;;;;;;;;;:::i;4633:48::-;;;;;;;;;;;;;;;;2588:79;;;;;;;;;;-1:-1:-1;2626:7:0;2653:6;2588:79;;-1:-1:-1;;;;;2653:6:0;;;2445:51:1;;2433:2;2418:18;2588:79:0;2299:203:1;4688:50:0;;;;;;;;;;;;;;;;12290:371;;;;;;;;;;-1:-1:-1;12290:371:0;;;;;:::i;:::-;;:::i;6167:87::-;;;;;;;;;;-1:-1:-1;6239:7:0;;;;;;;;;;;;-1:-1:-1;;;6239:7:0;;;;6167:87;;6583:167;;;;;;;;;;-1:-1:-1;6583:167:0;;;;;:::i;:::-;;:::i;4745:56::-;;;;;;;;;;;;;;;;11705:290;;;;;;;;;;;;;:::i;6758:143::-;;;;;;;;;;-1:-1:-1;6758:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6866:18:0;;;6839:7;6866:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6758:143;11495:202;;;;;;;;;;;;;:::i;12044:238::-;;;;;;;;;;-1:-1:-1;12044:238:0;;;;;:::i;:::-;;:::i;12669:254::-;;;;;;;;;;;;;:::i;11097:163::-;;;;;;;;;;;;;:::i;6909:161::-;6984:4;7001:39;423:10;7024:7;7033:6;7001:8;:39::i;:::-;-1:-1:-1;7058:4:0;6909:161;;;;;:::o;11268:119::-;2715:6;;-1:-1:-1;;;;;2715:6:0;423:10;2715:22;2707:67;;;;-1:-1:-1;;;2707:67:0;;;;;;;:::i;:::-;;;;;;;;;11341:1:::1;11326:12;:16:::0;;;11358:21:::1;::::0;1361:25:1;;;11358:21:0::1;::::0;1349:2:1;1334:18;11358:21:0::1;;;;;;;;11268:119::o:0;6353:95::-;6406:7;4502:13;4446:1;4502:2;:13;:::i;:::-;4489:26;;:10;:26;:::i;:::-;6426:14;;6353:95;:::o;7078:313::-;7176:4;7193:36;7203:6;7211:9;7222:6;7193:9;:36::i;:::-;7240:121;7249:6;423:10;7271:89;7309:6;7271:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7271:19:0;;;;;;:11;:19;;;;;;;;423:10;7271:33;;;;;;;;;;:37;:89::i;:::-;7240:8;:121::i;:::-;-1:-1:-1;7379:4:0;7078:313;;;;;:::o;12931:342::-;12997:10;;-1:-1:-1;;;;;12997:10:0;423;-1:-1:-1;;;;;12981:26:0;;12973:35;;;;;;13062:4;13021:20;6549:18;;;:9;:18;;;;;;13082:16;;13079:75;;13112:30;13129:12;13112:16;:30::i;:::-;13187:21;13222:14;;13219:47;;13239:24;13252:10;13239:12;:24::i;:::-;12962:311;;12931:342::o;2802:148::-;2715:6;;-1:-1:-1;;;;;2715:6:0;423:10;2715:22;2707:67;;;;-1:-1:-1;;;2707:67:0;;;;;;;:::i;:::-;2909:1:::1;2893:6:::0;;2872:40:::1;::::0;-1:-1:-1;;;;;2893:6:0;;::::1;::::0;2872:40:::1;::::0;2909:1;;2872:40:::1;2940:1;2923:19:::0;;-1:-1:-1;;;;;;2923:19:0::1;::::0;;2802:148::o;12290:371::-;12418:10;;12369:12;;-1:-1:-1;;;;;12418:10:0;423;-1:-1:-1;;;;;12402:26:0;;12394:35;;;;;;12445:6;12455:1;12445:11;12442:96;;12481:45;;-1:-1:-1;;;12481:45:0;;12520:4;12481:45;;;2445:51:1;-1:-1:-1;;;;;12481:30:0;;;;;2418:18:1;;12481:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12472:54;;12442:96;12555:31;;;-1:-1:-1;;;;;5699:32:1;;5681:51;;5763:2;5748:18;;5741:34;;;12555:31:0;;5654:18:1;12555:31:0;;;;;;;12634:10;;;12604:49;;-1:-1:-1;;;12604:49:0;;-1:-1:-1;;;;;12634:10:0;;;12604:49;;;5681:51:1;;;;5748:18;;;5741:34;;;12604:29:0;;;;;5654:18:1;;12604:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12597:56;12290:371;-1:-1:-1;;;12290:371:0:o;6583:167::-;6661:4;6678:42;423:10;6702:9;6713:6;6678:9;:42::i;11705:290::-;2715:6;;-1:-1:-1;;;;;2715:6:0;423:10;2715:22;2707:67;;;;-1:-1:-1;;;2707:67:0;;;;;;;:::i;:::-;11769:13:::1;::::0;-1:-1:-1;;;11769:13:0;::::1;;;11768:14;11760:49;;;::::0;-1:-1:-1;;;11760:49:0;;6557:2:1;11760:49:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;6635:25;6615:18;;;6608:53;6678:18;;11760:49:0::1;6355:347:1::0;11760:49:0::1;11827:13;::::0;11858:15:::1;::::0;11820:71:::1;::::0;-1:-1:-1;;;11820:71:0;;-1:-1:-1;;;;;11858:15:0;;::::1;11820:71;::::0;::::1;5681:51:1::0;-1:-1:-1;;5748:18:1;;;5741:34;11827:13:0;::::1;::::0;11820:29:::1;::::0;5654:18:1;;11820:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11902:11:0::1;:18:::0;;-1:-1:-1;;;;11931:20:0;-1:-1:-1;;;11931:20:0;;;11975:12:::1;11902:11;11962:25:::0;11705:290::o;11495:202::-;2715:6;;-1:-1:-1;;;;;2715:6:0;423:10;2715:22;2707:67;;;;-1:-1:-1;;;2707:67:0;;;;;;;:::i;:::-;11555:15:::1;::::0;-1:-1:-1;;;;;11555:15:0::1;:31;11594:21;11625:4;11632:24;11625:4:::0;-1:-1:-1;;;;;6549:18:0;6522:7;6549:18;;;:9;:18;;;;;;;6456:119;11632:24:::1;11658:1;11661::::0;11664:7:::1;2626::::0;2653:6;-1:-1:-1;;;;;2653:6:0;;2588:79;11664:7:::1;11555:134;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11555:134:0;;;-1:-1:-1;;;;;7066:15:1;;;11555:134:0::1;::::0;::::1;7048:34:1::0;7098:18;;;7091:34;;;;7141:18;;;7134:34;;;;7184:18;;;7177:34;7248:15;;;7227:19;;;7220:44;11673:15:0::1;7280:19:1::0;;;7273:35;6982:19;;11555:134:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11495:202::o:0;12044:238::-;12123:10;;-1:-1:-1;;;;;12123:10:0;423;-1:-1:-1;;;;;12107:26:0;;12099:35;;;;;;12164:12;;12153:7;:23;;:51;;;;;12191:13;;12180:7;:24;;12153:51;12145:60;;;;;;12218:12;:22;;;12251:13;:23;12044:238::o;12669:254::-;12735:10;;-1:-1:-1;;;;;12735:10:0;423;-1:-1:-1;;;;;12719:26:0;;12711:35;;;;;;12779:21;12819:14;12811:69;;;;-1:-1:-1;;;12811:69:0;;7832:2:1;12811:69:0;;;7814:21:1;7871:2;7851:18;;;7844:30;7910:34;7890:18;;;7883:62;-1:-1:-1;;;7961:18:1;;;7954:40;8011:19;;12811:69:0;7630:406:1;12811:69:0;12891:24;12904:10;12891:12;:24::i;:::-;12700:223;12669:254::o;11097:163::-;2715:6;;-1:-1:-1;;;;;2715:6:0;423:10;2715:22;2707:67;;;;-1:-1:-1;;;2707:67:0;;;;;;;:::i;:::-;4502:13:::1;4446:1;4502:2;:13;:::i;:::-;4489:26;::::0;:10:::1;:26;:::i;:::-;11152:12;:22:::0;4502:13:::1;4446:1;4502:2;:13;:::i;:::-;4489:26;::::0;:10:::1;:26;:::i;:::-;11185:14;:24:::0;11225:27:::1;4502:13;4446:1;4502:2;:13;:::i;:::-;4489:26;::::0;:10:::1;:26;:::i;:::-;11225:27;::::0;1361:25:1;;;1349:2;1334:18;11225:27:0::1;1215:177:1::0;7399:335:0;-1:-1:-1;;;;;7492:19:0;;7484:68;;;;-1:-1:-1;;;7484:68:0;;8243:2:1;7484:68:0;;;8225:21:1;8282:2;8262:18;;;8255:30;8321:34;8301:18;;;8294:62;-1:-1:-1;;;8372:18:1;;;8365:34;8416:19;;7484:68:0;8041:400:1;7484:68:0;-1:-1:-1;;;;;7571:21:0;;7563:68;;;;-1:-1:-1;;;7563:68:0;;8648:2:1;7563:68:0;;;8630:21:1;8687:2;8667:18;;;8660:30;8726:34;8706:18;;;8699:62;-1:-1:-1;;;8777:18:1;;;8770:32;8819:19;;7563:68:0;8446:398:1;7563:68:0;-1:-1:-1;;;;;7642:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7694:32;;1361:25:1;;;7694:32:0;;1334:18:1;7694:32:0;;;;;;;7399:335;;;:::o;7742:2742::-;-1:-1:-1;;;;;7830:18:0;;7822:68;;;;-1:-1:-1;;;7822:68:0;;9051:2:1;7822:68:0;;;9033:21:1;9090:2;9070:18;;;9063:30;9129:34;9109:18;;;9102:62;-1:-1:-1;;;9180:18:1;;;9173:35;9225:19;;7822:68:0;8849:401:1;7822:68:0;-1:-1:-1;;;;;7909:16:0;;7901:64;;;;-1:-1:-1;;;7901:64:0;;9457:2:1;7901:64:0;;;9439:21:1;9496:2;9476:18;;;9469:30;9535:34;9515:18;;;9508:62;-1:-1:-1;;;9586:18:1;;;9579:33;9629:19;;7901:64:0;9255:399:1;7901:64:0;7993:1;7984:6;:10;7976:64;;;;-1:-1:-1;;;7976:64:0;;9861:2:1;7976:64:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:34;9919:18;;;9912:62;-1:-1:-1;;;9990:18:1;;;9983:39;10039:19;;7976:64:0;9659:405:1;7976:64:0;8051:17;2653:6;;-1:-1:-1;;;;;8087:15:0;;;2653:6;;8087:15;;;;:32;;-1:-1:-1;2626:7:0;2653:6;-1:-1:-1;;;;;8106:13:0;;;2653:6;;8106:13;;8087:32;8083:2034;;;-1:-1:-1;;;;;8142:24:0;;;;;;:18;:24;;;;;;;;8141:25;:52;;;;-1:-1:-1;;;;;;8171:22:0;;;;;;:18;:22;;;;;;;;8170:23;8141:52;8138:135;;;8221:13;;-1:-1:-1;;;8221:13:0;;;;8213:44;;;;-1:-1:-1;;;8213:44:0;;10271:2:1;8213:44:0;;;10253:21:1;10310:2;10290:18;;;10283:30;-1:-1:-1;;;10329:18:1;;;10322:48;10387:18;;8213:44:0;10069:342:1;8213:44:0;8292:9;;8305:1;8292:14;8289:147;;8338:82;8416:3;8338:73;8362:15;;8350:9;;:27;8349:61;;8396:14;;8349:61;;;8381:12;;8349:61;8338:6;;:10;:73::i;:::-;:77;;:82::i;:::-;8326:94;;8289:147;8455:9;;:13;8452:97;;8500:33;8529:3;8500:24;8511:12;;8500:6;:10;;:24;;;;:::i;:33::-;8488:45;;8452:97;8577:13;;-1:-1:-1;;;;;8569:21:0;;;8577:13;;8569:21;:55;;;;-1:-1:-1;8608:15:0;;-1:-1:-1;;;;;8594:30:0;;;8608:15;;8594:30;;8569:55;:83;;;;-1:-1:-1;;;;;;8630:22:0;;;;;;:18;:22;;;;;;;;8628:24;8569:83;8565:577;;;8692:12;;8682:6;:22;;8674:60;;;;-1:-1:-1;;;8674:60:0;;10618:2:1;8674:60:0;;;10600:21:1;10657:2;10637:18;;;10630:30;10696:27;10676:18;;;10669:55;10741:18;;8674:60:0;10416:349:1;8674:60:0;8787:14;;8777:6;8761:13;8771:2;-1:-1:-1;;;;;6549:18:0;6522:7;6549:18;;;:9;:18;;;;;;;6456:119;8761:13;:22;;;;:::i;:::-;:40;;8753:79;;;;-1:-1:-1;;;8753:79:0;;11102:2:1;8753:79:0;;;11084:21:1;11141:2;11121:18;;;11114:30;11180:28;11160:18;;;11153:56;11226:18;;8753:79:0;10900:350:1;8753:79:0;8863:82;8941:3;8863:73;8887:15;;8875:9;;:27;8874:61;;8921:14;;8874:61;;8863:82;8964:9;:11;;8851:94;;-1:-1:-1;8964:9:0;:11;;;:::i;:::-;;;;;;9013:10;;8997:12;:26;8994:133;;9068:2;9055:9;;:15;;9047:60;;;;-1:-1:-1;;;9047:60:0;;11597:2:1;9047:60:0;;;11579:21:1;;;11616:18;;;11609:30;11675:34;11655:18;;;11648:62;11727:18;;9047:60:0;11395:356:1;9047:60:0;9167:13;;-1:-1:-1;;;;;9161:19:0;;;9167:13;;9161:19;:44;;;;-1:-1:-1;;;;;;9184:21:0;;9200:4;9184:21;;9161:44;9158:181;;;9238:85;9319:3;9238:76;9262:16;;9250:9;;:28;9249:64;;9298:15;;9249:64;;;9282:13;;9238:6;;:10;:76::i;:85::-;9226:97;;9158:181;9404:4;9355:28;6549:18;;;:9;:18;;;;;;9430:6;;-1:-1:-1;;;9430:6:0;;;;9429:7;:30;;;;-1:-1:-1;9446:13:0;;-1:-1:-1;;;;;9440:19:0;;;9446:13;;9440:19;9429:30;:45;;;;-1:-1:-1;9463:11:0;;-1:-1:-1;;;9463:11:0;;;;9429:45;:89;;;;;9501:17;;9478:20;:40;9429:89;:123;;;;;9534:18;;9522:9;;:30;9429:123;9425:681;;;9592:13;;9577:12;:28;9573:90;;;9642:1;9630:9;:13;9573:90;9701:1;9689:9;;:13;9681:49;;;;-1:-1:-1;;;9681:49:0;;11958:2:1;9681:49:0;;;11940:21:1;11997:2;11977:18;;;11970:30;12036:25;12016:18;;;12009:53;12079:18;;9681:49:0;11756:347:1;9681:49:0;9751:68;9768:50;9772:6;9779:38;9783:20;9805:11;;9779:3;:38::i;:::-;9768:3;:50::i;:::-;9751:16;:68::i;:::-;9867:21;9911:22;;9907:106;;9958:35;9971:21;9958:12;:35::i;:::-;10033:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10078:12:0;10063:13;:27;-1:-1:-1;9425:681:0;8121:1996;8083:2034;10132:13;;10129:166;;10204:4;10186:24;;;;:9;:24;;;;;;:39;;10215:9;10186:28;:39::i;:::-;10177:4;10159:24;;;;:9;:24;;;;;;;:66;;;;10243:40;;-1:-1:-1;;;;;10243:40:0;;;;;;;10273:9;1361:25:1;;1349:2;1334:18;;1215:177;10243:40:0;;;;;;;;10129:166;-1:-1:-1;;;;;10325:15:0;;;;;;:9;:15;;;;;;:27;;10345:6;10325:19;:27::i;:::-;-1:-1:-1;;;;;10307:15:0;;;;;;:9;:15;;;;;:45;10379:40;10397:21;:6;10408:9;10397:10;:21::i;:::-;-1:-1:-1;;;;;10379:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10363:13:0;;;;;;;:9;:13;;;;;:56;;;;10435:41;;;10454:21;:6;10465:9;10454:10;:21::i;:::-;10435:41;;1361:25:1;;;1349:2;1334:18;10435:41:0;;;;;;;7811:2673;7742:2742;;;:::o;1480:190::-;1566:7;1602:12;1594:6;;;;1586:29;;;;-1:-1:-1;;;1586:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1626:9:0;1638:5;1642:1;1638;:5;:::i;:::-;1626:17;1480:190;-1:-1:-1;;;;;1480:190:0:o;10606:483::-;5364:6;:13;;-1:-1:-1;;;;5364:13:0;-1:-1:-1;;;5364:13:0;;;10708:16:::1;::::0;;10722:1:::1;10708:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10708:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10708:16:0::1;10684:40;;10753:4;10735;10740:1;10735:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10735:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10779:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10779:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10735:7;;10779:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10769:4;10774:1;10769:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10769:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10844:15:::1;::::0;10812:62:::1;::::0;10829:4:::1;::::0;10844:15:::1;10862:11:::0;10812:8:::1;:62::i;:::-;10885:15;::::0;:196:::1;::::0;-1:-1:-1;;;10885:196:0;;-1:-1:-1;;;;;10885:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10966:11;;10885:15:::1;::::0;11008:4;;11035::::1;::::0;11055:15:::1;::::0;10885:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5400:6:0;:14;;-1:-1:-1;;;;5400:14:0;;;-1:-1:-1;;;;10606:483:0:o;11395:92::-;11452:10;;:27;;-1:-1:-1;;;;;11452:10:0;;;;:27;;;;;11472:6;;11452:10;:27;:10;:27;11472:6;11452:10;:27;;;;;;;;;;;;;;;;;;;1678:246;1736:7;1760:1;1765;1760:6;1756:47;;-1:-1:-1;1790:1:0;1783:8;;1756:47;1813:9;1825:5;1829:1;1825;:5;:::i;:::-;1813:17;-1:-1:-1;1858:1:0;1849:5;1853:1;1813:17;1849:5;:::i;:::-;:10;1841:56;;;;-1:-1:-1;;;1841:56:0;;14170:2:1;1841:56:0;;;14152:21:1;14209:2;14189:18;;;14182:30;14248:34;14228:18;;;14221:62;-1:-1:-1;;;14299:18:1;;;14292:31;14340:19;;1841:56:0;13968:397:1;1932:132:0;1990:7;2017:39;2021:1;2024;2017:39;;;;;;;;;;;;;;;;;:3;:39::i;10494:104::-;10551:7;10580:1;10576;:5;10575:15;;10589:1;10575:15;;;-1:-1:-1;10585:1:0;10494:104;-1:-1:-1;10494:104:0:o;1149:179::-;1207:7;;1239:5;1243:1;1239;:5;:::i;:::-;1227:17;;1268:1;1263;:6;;1255:46;;;;-1:-1:-1;;;1255:46:0;;14572:2:1;1255:46:0;;;14554:21:1;14611:2;14591:18;;;14584:30;14650:29;14630:18;;;14623:57;14697:18;;1255:46:0;14370:351:1;1336:136:0;1394:7;1421:43;1425:1;1428;1421:43;;;;;;;;;;;;;;;;;:3;:43::i;2072:189::-;2158:7;2193:12;2186:5;2178:28;;;;-1:-1:-1;;;2178:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2217:9:0;2229:5;2233:1;2229;:5;:::i;14:548:1:-;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:416;3857:1;3894:5;3857:1;3908:270;3929:7;3919:8;3916:21;3908:270;;;3988:4;3984:1;3980:6;3976:17;3970:4;3967:27;3964:53;;;3997:18;;:::i;:::-;4047:7;4037:8;4033:22;4030:55;;;4067:16;;;;4030:55;4146:22;;;;4106:15;;;;3908:270;;;3912:3;3768:416;;;;;:::o;4189:806::-;4238:5;4268:8;4258:80;;-1:-1:-1;4309:1:1;4323:5;;4258:80;4357:4;4347:76;;-1:-1:-1;4394:1:1;4408:5;;4347:76;4439:4;4457:1;4452:59;;;;4525:1;4520:130;;;;4432:218;;4452:59;4482:1;4473:10;;4496:5;;;4520:130;4557:3;4547:8;4544:17;4541:43;;;4564:18;;:::i;:::-;-1:-1:-1;;4620:1:1;4606:16;;4635:5;;4432:218;;4734:2;4724:8;4721:16;4715:3;4709:4;4706:13;4702:36;4696:2;4686:8;4683:16;4678:2;4672:4;4669:12;4665:35;4662:77;4659:159;;;-1:-1:-1;4771:19:1;;;4803:5;;4659:159;4850:34;4875:8;4869:4;4850:34;:::i;:::-;4920:6;4916:1;4912:6;4908:19;4899:7;4896:32;4893:58;;;4931:18;;:::i;:::-;4969:20;;4189:806;-1:-1:-1;;;4189:806:1:o;5000:140::-;5058:5;5087:47;5128:4;5118:8;5114:19;5108:4;5087:47;:::i;5145:168::-;5218:9;;;5249;;5266:15;;;5260:22;;5246:37;5236:71;;5287:18;;:::i;5318:184::-;5388:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:52;;;5457:1;5454;5447:12;5409:52;-1:-1:-1;5480:16:1;;5318:184;-1:-1:-1;5318:184:1:o;6073:277::-;6140:6;6193:2;6181:9;6172:7;6168:23;6164:32;6161:52;;;6209:1;6206;6199:12;6161:52;6241:9;6235:16;6294:5;6287:13;6280:21;6273:5;6270:32;6260:60;;6316:1;6313;6306:12;7319:306;7407:6;7415;7423;7476:2;7464:9;7455:7;7451:23;7447:32;7444:52;;;7492:1;7489;7482:12;7444:52;7521:9;7515:16;7505:26;;7571:2;7560:9;7556:18;7550:25;7540:35;;7615:2;7604:9;7600:18;7594:25;7584:35;;7319:306;;;;;:::o;10770:125::-;10835:9;;;10856:10;;;10853:36;;;10869:18;;:::i;11255:135::-;11294:3;11315:17;;;11312:43;;11335:18;;:::i;:::-;-1:-1:-1;11382:1:1;11371:13;;11255:135::o;12108:128::-;12175:9;;;12196:11;;;12193:37;;;12210:18;;:::i;12373:127::-;12434:10;12429:3;12425:20;12422:1;12415:31;12465:4;12462:1;12455:15;12489:4;12486:1;12479:15;12505:251;12575:6;12628:2;12616:9;12607:7;12603:23;12599:32;12596:52;;;12644:1;12641;12634:12;12596:52;12676:9;12670:16;12695:31;12720:5;12695:31;:::i;12761:980::-;13023:4;13071:3;13060:9;13056:19;13102:6;13091:9;13084:25;13128:2;13166:6;13161:2;13150:9;13146:18;13139:34;13209:3;13204:2;13193:9;13189:18;13182:31;13233:6;13268;13262:13;13299:6;13291;13284:22;13337:3;13326:9;13322:19;13315:26;;13376:2;13368:6;13364:15;13350:29;;13397:1;13407:195;13421:6;13418:1;13415:13;13407:195;;;13486:13;;-1:-1:-1;;;;;13482:39:1;13470:52;;13577:15;;;;13542:12;;;;13518:1;13436:9;13407:195;;;-1:-1:-1;;;;;;;13658:32:1;;;;13653:2;13638:18;;13631:60;-1:-1:-1;;;13722:3:1;13707:19;13700:35;13619:3;12761:980;-1:-1:-1;;;12761:980:1:o;13746:217::-;13786:1;13812;13802:132;;13856:10;13851:3;13847:20;13844:1;13837:31;13891:4;13888:1;13881:15;13919:4;13916:1;13909:15;13802:132;-1:-1:-1;13948:9:1;;13746:217::o
Swarm Source
ipfs://10db1e3cb801b726788fb7bf2a1b242d1c742fda856d2c968731491f1b4179ca
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.