ERC-20
Overview
Max Total Supply
30,000,000 TENSOR
Holders
115
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
239,999.999999999 TENSORValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
CoinTensorERC
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-05 */ // SPDX-License-Identifier: Unlicensed /* Telegram: https://t.me/+pbMXLv_Tf5c3NTZk Website: https://cointensor.io/ Twitter: https://x.com/cointensor Whitepaper: https://docs.cointensor.io/ High tier project supplying the crypto community with DePIN (Decentralized Physical Infrastructure Network), Privacy, AI technology, Node GPU renting, & revenue sharing! */ pragma solidity 0.8.25; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract CoinTensorERC is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "CoinTensor"; string private constant _symbol = "TENSOR"; 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 = 30_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 20; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _developmentAddress = payable(0x48be146e935ADba9375f8aEaF7C1A1191d889664); address payable private _marketingAddress = payable(0x48be146e935ADba9375f8aEaF7C1A1191d889664); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal / 100; uint256 public _maxWalletSize = _tTotal / 100; uint256 public _swapTokensAtAmount = _tTotal / 1000; 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[address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)] = 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()] - ( amount ) ); 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 { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradingOpen, "TOKEN: This account cannot send tokens until trading is enabled"); require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } if(to == uniswapV2Pair) { require(_maxWalletSize < _tTotal, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) { 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) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function openTENSOR() public onlyOwner { tradingOpen = true; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; require(redisFeeOnBuy + taxFeeOnBuy <= 30 && redisFeeOnSell + taxFeeOnSell <= 30); } //Set minimum tokens required to swap. function updateMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function updateMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function updateMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function removeLimits() external onlyOwner { _maxTxAmount = _tTotal; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function airdropPrivateSale(address[] calldata recipients, uint256[] calldata values) public onlyOwner { require(recipients.length == values.length, "Invalid Input"); for(uint256 i = 0; i < recipients.length; i++) { _transfer(_msgSender(), recipients[i], values[i]); } } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"airdropPrivateSale","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTENSOR","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"updateMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052610016666a94d74f4300005f19610382565b610021905f19610395565b6006555f600881905560146009819055600a829055600b819055600c829055600d819055600e91909155600f55601080546001600160a01b03199081167348be146e935adba9375f8aeaf7c1a1191d8896649081179092556011805490911690911790556013805462ffffff60a01b1916600160b01b1790556100ac6064666a94d74f4300006103ba565b6014556100c16064666a94d74f4300006103ba565b6015556100d76103e8666a94d74f4300006103ba565b6016553480156100e5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801561019e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c291906103cd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023191906103cd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561027b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029f91906103cd565b601380546001600160a01b0319166001600160a01b039283161790555f80549091168152600560209081526040808320805460ff1990811660019081179092553085528285208054821683179055737a250d5630b4cf539739df2c5dacb4c659f2488d85527f2aa6bd49e110bc3c9927fd8453b20ca2aa4c5400ea7e9b290e34ead28d6dee858054909116909117905551666a94d74f43000081523392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506103fa565b634e487b7160e01b5f52601260045260245ffd5b5f826103905761039061036e565b500690565b818103818111156103b457634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826103c8576103c861036e565b500490565b5f602082840312156103dd575f80fd5b81516001600160a01b03811681146103f3575f80fd5b9392505050565b611874806104075f395ff3fe60806040526004361061017e575f3560e01c8063715018a6116100cd5780639214b86011610087578063c492f04611610062578063c492f0461461045a578063d4d17ac314610479578063dd62ed3e1461048d578063f2fde38b146104d1575f80fd5b80639214b860146103ee57806395d89b411461040d578063a9059cbb1461043b575f80fd5b8063715018a614610361578063751039fc146103755780637d1db4a5146103895780638d1007e61461039e5780638da5cb5b146103bd5780638f9a55c0146103d9575f80fd5b806324887e801161013857806349bd5a5e1161011357806349bd5a5e146102e55780636d8aa8f8146103045780636fcba3771461032357806370a0823114610342575f80fd5b806324887e80146102965780632fd689e3146102b5578063313ce567146102ca575f80fd5b806306fdde0314610189578063095ea7b3146101cd5780631694505e146101fc57806318160ddd14610233578063203e727e1461025657806323b872dd14610277575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5060408051808201909152600a81526921b7b4b72a32b739b7b960b11b60208201525b6040516101c4919061143e565b60405180910390f35b3480156101d8575f80fd5b506101ec6101e736600461148a565b6104f0565b60405190151581526020016101c4565b348015610207575f80fd5b5060125461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b34801561023e575f80fd5b50666a94d74f4300005b6040519081526020016101c4565b348015610261575f80fd5b506102756102703660046114b4565b610506565b005b348015610282575f80fd5b506101ec6102913660046114cb565b61053d565b3480156102a1575f80fd5b506102756102b03660046114b4565b61058d565b3480156102c0575f80fd5b5061024860165481565b3480156102d5575f80fd5b50604051600981526020016101c4565b3480156102f0575f80fd5b5060135461021b906001600160a01b031681565b34801561030f575f80fd5b5061027561031e36600461151d565b6105bb565b34801561032e575f80fd5b5061027561033d366004611536565b610602565b34801561034d575f80fd5b5061024861035c366004611565565b610671565b34801561036c575f80fd5b50610275610692565b348015610380575f80fd5b50610275610703565b348015610394575f80fd5b5061024860145481565b3480156103a9575f80fd5b506102756103b83660046115c8565b610739565b3480156103c8575f80fd5b505f546001600160a01b031661021b565b3480156103e4575f80fd5b5061024860155481565b3480156103f9575f80fd5b506102756104083660046114b4565b610803565b348015610418575f80fd5b506040805180820190915260068152652a22a729a7a960d11b60208201526101b7565b348015610446575f80fd5b506101ec61045536600461148a565b610831565b348015610465575f80fd5b5061027561047436600461162f565b61083d565b348015610484575f80fd5b506102756108ca565b348015610498575f80fd5b506102486104a736600461167f565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156104dc575f80fd5b506102756104eb366004611565565b610908565b5f6104fc3384846109ef565b5060015b92915050565b5f546001600160a01b031633146105385760405162461bcd60e51b815260040161052f906116b6565b60405180910390fd5b601455565b5f610549848484610a4f565b6001600160a01b0384165f9081526004602090815260408083203380855292529091205461058391869161057e9086906116ff565b6109ef565b5060019392505050565b5f546001600160a01b031633146105b65760405162461bcd60e51b815260040161052f906116b6565b601555565b5f546001600160a01b031633146105e45760405162461bcd60e51b815260040161052f906116b6565b60138054911515600160b01b0260ff60b01b19909216919091179055565b5f546001600160a01b0316331461062b5760405162461bcd60e51b815260040161052f906116b6565b6008849055600a8390556009829055600b819055601e61064b8386611712565b111580156106635750601e6106608285611712565b11155b61066b575f80fd5b50505050565b6001600160a01b0381165f9081526002602052604081205461050090610d48565b5f546001600160a01b031633146106bb5760405162461bcd60e51b815260040161052f906116b6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461072c5760405162461bcd60e51b815260040161052f906116b6565b666a94d74f430000601455565b5f546001600160a01b031633146107625760405162461bcd60e51b815260040161052f906116b6565b8281146107a15760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908125b9c1d5d609a1b604482015260640161052f565b5f5b838110156107fc576107f4338686848181106107c1576107c1611725565b90506020020160208101906107d69190611565565b8585858181106107e8576107e8611725565b90506020020135610a4f565b6001016107a3565b5050505050565b5f546001600160a01b0316331461082c5760405162461bcd60e51b815260040161052f906116b6565b601655565b5f6104fc338484610a4f565b5f546001600160a01b031633146108665760405162461bcd60e51b815260040161052f906116b6565b5f5b8281101561066b578160055f86868581811061088657610886611725565b905060200201602081019061089b9190611565565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610868565b5f546001600160a01b031633146108f35760405162461bcd60e51b815260040161052f906116b6565b6013805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146109315760405162461bcd60e51b815260040161052f906116b6565b6001600160a01b0381166109965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526005602052604090205460ff16158015610a8f57506001600160a01b0382165f9081526005602052604090205460ff16155b15610c7857601354600160a01b900460ff16610b135760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161052f565b601454811115610b655760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161052f565b6013546001600160a01b03838116911614610bae5760155481610b8784610671565b610b919190611712565b10610bae5760405162461bcd60e51b815260040161052f90611739565b6013546001600160a01b0390811690831603610bec57666a94d74f43000060155410610bec5760405162461bcd60e51b815260040161052f90611739565b5f610bf630610671565b601654601454919250821015908210610c0f5760145491505b808015610c265750601354600160a81b900460ff16155b8015610c4057506013546001600160a01b03868116911614155b8015610c555750601354600160b01b900460ff165b15610c7557610c6382610dca565b478015610c7357610c7347610f3a565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610cb857506001600160a01b0383165f9081526005602052604090205460ff165b80610cea57506013546001600160a01b03858116911614801590610cea57506013546001600160a01b03848116911614155b15610cf657505f610d3c565b6013546001600160a01b0390811690851603610d1957600854600c55600954600d555b6013546001600160a01b0390811690841603610d3c57600a54600c55600b54600d555b61066b84848484610f75565b5f600654821115610dae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161052f565b5f610db7610fa3565b9050610dc38382610fc4565b9392505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e1057610e10611725565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8b919061177c565b81600181518110610e9e57610e9e611725565b6001600160a01b039283166020918202929092010152601254610ec491309116846109ef565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610efc9085905f90869030904290600401611797565b5f604051808303815f87803b158015610f13575f80fd5b505af1158015610f25573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610f71573d5f803e3d5ffd5b5050565b80610f8257610f82611005565b610f8d848484611032565b8061066b5761066b600e54600c55600f54600d55565b5f805f610fae611123565b9092509050610fbd8282610fc4565b9250505090565b5f610dc383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611160565b600c541580156110155750600d54155b1561101c57565b600c8054600e55600d8054600f555f9182905555565b5f805f805f8061104187611195565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061107290876111ea565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546110a0908661122b565b6001600160a01b0389165f908152600260205260409020556110c181611289565b6110cb84836112cf565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161111091815260200190565b60405180910390a3505050505050505050565b6006545f908190666a94d74f43000061113c8282610fc4565b82101561115757505060065492666a94d74f43000092509050565b90939092509050565b5f81836111805760405162461bcd60e51b815260040161052f919061143e565b505f61118c8486611808565b95945050505050565b5f805f805f805f805f6111ad8a600c54600d546112f3565b9250925092505f6111bc610fa3565b90505f805f6111cd8e878787611345565b919e509c509a509598509396509194505050505091939550919395565b5f610dc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611391565b5f806112378385611712565b905083811015610dc35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052f565b5f611292610fa3565b90505f61129f83836113c0565b305f908152600260205260409020549091506112bb908261122b565b305f90815260026020526040902055505050565b6006546112dc90836111ea565b6006556007546112ec908261122b565b6007555050565b5f80808061130c606461130689896113c0565b90610fc4565b90505f61131e60646113068a896113c0565b90505f6113358261132f8b866111ea565b906111ea565b9992985090965090945050505050565b5f80808061135388866113c0565b90505f61136088876113c0565b90505f61136d88886113c0565b90505f61137e8261132f86866111ea565b939b939a50919850919650505050505050565b5f81848411156113b45760405162461bcd60e51b815260040161052f919061143e565b505f61118c84866116ff565b5f825f036113cf57505f610500565b5f6113da8385611827565b9050826113e78583611808565b14610dc35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611487575f80fd5b50565b5f806040838503121561149b575f80fd5b82356114a681611473565b946020939093013593505050565b5f602082840312156114c4575f80fd5b5035919050565b5f805f606084860312156114dd575f80fd5b83356114e881611473565b925060208401356114f881611473565b929592945050506040919091013590565b80358015158114611518575f80fd5b919050565b5f6020828403121561152d575f80fd5b610dc382611509565b5f805f8060808587031215611549575f80fd5b5050823594602084013594506040840135936060013592509050565b5f60208284031215611575575f80fd5b8135610dc381611473565b5f8083601f840112611590575f80fd5b50813567ffffffffffffffff8111156115a7575f80fd5b6020830191508360208260051b85010111156115c1575f80fd5b9250929050565b5f805f80604085870312156115db575f80fd5b843567ffffffffffffffff808211156115f2575f80fd5b6115fe88838901611580565b90965094506020870135915080821115611616575f80fd5b5061162387828801611580565b95989497509550505050565b5f805f60408486031215611641575f80fd5b833567ffffffffffffffff811115611657575f80fd5b61166386828701611580565b9094509250611676905060208501611509565b90509250925092565b5f8060408385031215611690575f80fd5b823561169b81611473565b915060208301356116ab81611473565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610500576105006116eb565b80820180821115610500576105006116eb565b634e487b7160e01b5f52603260045260245ffd5b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b5f6020828403121561178c575f80fd5b8151610dc381611473565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117e75784516001600160a01b0316835293830193918301916001016117c2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261182257634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610500576105006116eb56fea2646970667358221220477e960d483587a9e90df1fd255486b3932954ecfd3cce62d334a7c3a208860364736f6c63430008190033
Deployed Bytecode
0x60806040526004361061017e575f3560e01c8063715018a6116100cd5780639214b86011610087578063c492f04611610062578063c492f0461461045a578063d4d17ac314610479578063dd62ed3e1461048d578063f2fde38b146104d1575f80fd5b80639214b860146103ee57806395d89b411461040d578063a9059cbb1461043b575f80fd5b8063715018a614610361578063751039fc146103755780637d1db4a5146103895780638d1007e61461039e5780638da5cb5b146103bd5780638f9a55c0146103d9575f80fd5b806324887e801161013857806349bd5a5e1161011357806349bd5a5e146102e55780636d8aa8f8146103045780636fcba3771461032357806370a0823114610342575f80fd5b806324887e80146102965780632fd689e3146102b5578063313ce567146102ca575f80fd5b806306fdde0314610189578063095ea7b3146101cd5780631694505e146101fc57806318160ddd14610233578063203e727e1461025657806323b872dd14610277575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5060408051808201909152600a81526921b7b4b72a32b739b7b960b11b60208201525b6040516101c4919061143e565b60405180910390f35b3480156101d8575f80fd5b506101ec6101e736600461148a565b6104f0565b60405190151581526020016101c4565b348015610207575f80fd5b5060125461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b34801561023e575f80fd5b50666a94d74f4300005b6040519081526020016101c4565b348015610261575f80fd5b506102756102703660046114b4565b610506565b005b348015610282575f80fd5b506101ec6102913660046114cb565b61053d565b3480156102a1575f80fd5b506102756102b03660046114b4565b61058d565b3480156102c0575f80fd5b5061024860165481565b3480156102d5575f80fd5b50604051600981526020016101c4565b3480156102f0575f80fd5b5060135461021b906001600160a01b031681565b34801561030f575f80fd5b5061027561031e36600461151d565b6105bb565b34801561032e575f80fd5b5061027561033d366004611536565b610602565b34801561034d575f80fd5b5061024861035c366004611565565b610671565b34801561036c575f80fd5b50610275610692565b348015610380575f80fd5b50610275610703565b348015610394575f80fd5b5061024860145481565b3480156103a9575f80fd5b506102756103b83660046115c8565b610739565b3480156103c8575f80fd5b505f546001600160a01b031661021b565b3480156103e4575f80fd5b5061024860155481565b3480156103f9575f80fd5b506102756104083660046114b4565b610803565b348015610418575f80fd5b506040805180820190915260068152652a22a729a7a960d11b60208201526101b7565b348015610446575f80fd5b506101ec61045536600461148a565b610831565b348015610465575f80fd5b5061027561047436600461162f565b61083d565b348015610484575f80fd5b506102756108ca565b348015610498575f80fd5b506102486104a736600461167f565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156104dc575f80fd5b506102756104eb366004611565565b610908565b5f6104fc3384846109ef565b5060015b92915050565b5f546001600160a01b031633146105385760405162461bcd60e51b815260040161052f906116b6565b60405180910390fd5b601455565b5f610549848484610a4f565b6001600160a01b0384165f9081526004602090815260408083203380855292529091205461058391869161057e9086906116ff565b6109ef565b5060019392505050565b5f546001600160a01b031633146105b65760405162461bcd60e51b815260040161052f906116b6565b601555565b5f546001600160a01b031633146105e45760405162461bcd60e51b815260040161052f906116b6565b60138054911515600160b01b0260ff60b01b19909216919091179055565b5f546001600160a01b0316331461062b5760405162461bcd60e51b815260040161052f906116b6565b6008849055600a8390556009829055600b819055601e61064b8386611712565b111580156106635750601e6106608285611712565b11155b61066b575f80fd5b50505050565b6001600160a01b0381165f9081526002602052604081205461050090610d48565b5f546001600160a01b031633146106bb5760405162461bcd60e51b815260040161052f906116b6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461072c5760405162461bcd60e51b815260040161052f906116b6565b666a94d74f430000601455565b5f546001600160a01b031633146107625760405162461bcd60e51b815260040161052f906116b6565b8281146107a15760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908125b9c1d5d609a1b604482015260640161052f565b5f5b838110156107fc576107f4338686848181106107c1576107c1611725565b90506020020160208101906107d69190611565565b8585858181106107e8576107e8611725565b90506020020135610a4f565b6001016107a3565b5050505050565b5f546001600160a01b0316331461082c5760405162461bcd60e51b815260040161052f906116b6565b601655565b5f6104fc338484610a4f565b5f546001600160a01b031633146108665760405162461bcd60e51b815260040161052f906116b6565b5f5b8281101561066b578160055f86868581811061088657610886611725565b905060200201602081019061089b9190611565565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610868565b5f546001600160a01b031633146108f35760405162461bcd60e51b815260040161052f906116b6565b6013805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146109315760405162461bcd60e51b815260040161052f906116b6565b6001600160a01b0381166109965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161052f565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526005602052604090205460ff16158015610a8f57506001600160a01b0382165f9081526005602052604090205460ff16155b15610c7857601354600160a01b900460ff16610b135760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161052f565b601454811115610b655760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161052f565b6013546001600160a01b03838116911614610bae5760155481610b8784610671565b610b919190611712565b10610bae5760405162461bcd60e51b815260040161052f90611739565b6013546001600160a01b0390811690831603610bec57666a94d74f43000060155410610bec5760405162461bcd60e51b815260040161052f90611739565b5f610bf630610671565b601654601454919250821015908210610c0f5760145491505b808015610c265750601354600160a81b900460ff16155b8015610c4057506013546001600160a01b03868116911614155b8015610c555750601354600160b01b900460ff165b15610c7557610c6382610dca565b478015610c7357610c7347610f3a565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610cb857506001600160a01b0383165f9081526005602052604090205460ff165b80610cea57506013546001600160a01b03858116911614801590610cea57506013546001600160a01b03848116911614155b15610cf657505f610d3c565b6013546001600160a01b0390811690851603610d1957600854600c55600954600d555b6013546001600160a01b0390811690841603610d3c57600a54600c55600b54600d555b61066b84848484610f75565b5f600654821115610dae5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161052f565b5f610db7610fa3565b9050610dc38382610fc4565b9392505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e1057610e10611725565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8b919061177c565b81600181518110610e9e57610e9e611725565b6001600160a01b039283166020918202929092010152601254610ec491309116846109ef565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610efc9085905f90869030904290600401611797565b5f604051808303815f87803b158015610f13575f80fd5b505af1158015610f25573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6011546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610f71573d5f803e3d5ffd5b5050565b80610f8257610f82611005565b610f8d848484611032565b8061066b5761066b600e54600c55600f54600d55565b5f805f610fae611123565b9092509050610fbd8282610fc4565b9250505090565b5f610dc383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611160565b600c541580156110155750600d54155b1561101c57565b600c8054600e55600d8054600f555f9182905555565b5f805f805f8061104187611195565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061107290876111ea565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546110a0908661122b565b6001600160a01b0389165f908152600260205260409020556110c181611289565b6110cb84836112cf565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161111091815260200190565b60405180910390a3505050505050505050565b6006545f908190666a94d74f43000061113c8282610fc4565b82101561115757505060065492666a94d74f43000092509050565b90939092509050565b5f81836111805760405162461bcd60e51b815260040161052f919061143e565b505f61118c8486611808565b95945050505050565b5f805f805f805f805f6111ad8a600c54600d546112f3565b9250925092505f6111bc610fa3565b90505f805f6111cd8e878787611345565b919e509c509a509598509396509194505050505091939550919395565b5f610dc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611391565b5f806112378385611712565b905083811015610dc35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161052f565b5f611292610fa3565b90505f61129f83836113c0565b305f908152600260205260409020549091506112bb908261122b565b305f90815260026020526040902055505050565b6006546112dc90836111ea565b6006556007546112ec908261122b565b6007555050565b5f80808061130c606461130689896113c0565b90610fc4565b90505f61131e60646113068a896113c0565b90505f6113358261132f8b866111ea565b906111ea565b9992985090965090945050505050565b5f80808061135388866113c0565b90505f61136088876113c0565b90505f61136d88886113c0565b90505f61137e8261132f86866111ea565b939b939a50919850919650505050505050565b5f81848411156113b45760405162461bcd60e51b815260040161052f919061143e565b505f61118c84866116ff565b5f825f036113cf57505f610500565b5f6113da8385611827565b9050826113e78583611808565b14610dc35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161052f565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611487575f80fd5b50565b5f806040838503121561149b575f80fd5b82356114a681611473565b946020939093013593505050565b5f602082840312156114c4575f80fd5b5035919050565b5f805f606084860312156114dd575f80fd5b83356114e881611473565b925060208401356114f881611473565b929592945050506040919091013590565b80358015158114611518575f80fd5b919050565b5f6020828403121561152d575f80fd5b610dc382611509565b5f805f8060808587031215611549575f80fd5b5050823594602084013594506040840135936060013592509050565b5f60208284031215611575575f80fd5b8135610dc381611473565b5f8083601f840112611590575f80fd5b50813567ffffffffffffffff8111156115a7575f80fd5b6020830191508360208260051b85010111156115c1575f80fd5b9250929050565b5f805f80604085870312156115db575f80fd5b843567ffffffffffffffff808211156115f2575f80fd5b6115fe88838901611580565b90965094506020870135915080821115611616575f80fd5b5061162387828801611580565b95989497509550505050565b5f805f60408486031215611641575f80fd5b833567ffffffffffffffff811115611657575f80fd5b61166386828701611580565b9094509250611676905060208501611509565b90509250925092565b5f8060408385031215611690575f80fd5b823561169b81611473565b915060208301356116ab81611473565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610500576105006116eb565b80820180821115610500576105006116eb565b634e487b7160e01b5f52603260045260245ffd5b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b5f6020828403121561178c575f80fd5b8151610dc381611473565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117e75784516001600160a01b0316835293830193918301916001016117c2565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261182257634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610500576105006116eb56fea2646970667358221220477e960d483587a9e90df1fd255486b3932954ecfd3cce62d334a7c3a208860364736f6c63430008190033
Deployed Bytecode Sourcemap
4423:12478:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6762:83;;;;;;;;;;-1:-1:-1;6832:5:0;;;;;;;;;;;;-1:-1:-1;;;6832:5:0;;;;6762:83;;;;;;;:::i;:::-;;;;;;;;7687:193;;;;;;;;;;-1:-1:-1;7687:193:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;7687:193:0;893:187:1;5685:41:0;;;;;;;;;;-1:-1:-1;5685:41:0;;;;-1:-1:-1;;;;;5685:41:0;;;;;;-1:-1:-1;;;;;1275:32:1;;;1257:51;;1245:2;1230:18;5685:41:0;1085:229:1;7039:95:0;;;;;;;;;;-1:-1:-1;4977:18:0;7039:95;;;1465:25:1;;;1453:2;1438:18;7039:95:0;1319:177:1;16004:111:0;;;;;;;;;;-1:-1:-1;16004:111:0;;;;;:::i;:::-;;:::i;:::-;;7888:384;;;;;;;;;;-1:-1:-1;7888:384:0;;;;;:::i;:::-;;:::i;16123:118::-;;;;;;;;;;-1:-1:-1;16123:118:0;;;;;:::i;:::-;;:::i;5985:51::-;;;;;;;;;;;;;;;;6948:83;;;;;;;;;;-1:-1:-1;6948:83:0;;4651:1;2289:36:1;;2277:2;2262:18;6948:83:0;2147:184:1;5733:28:0;;;;;;;;;;-1:-1:-1;5733:28:0;;;;-1:-1:-1;;;;;5733:28:0;;;15864:101;;;;;;;;;;-1:-1:-1;15864:101:0;;;;;:::i;:::-;;:::i;15234:384::-;;;;;;;;;;-1:-1:-1;15234:384:0;;;;;:::i;:::-;;:::i;7142:138::-;;;;;;;;;;-1:-1:-1;7142:138:0;;;;;:::i;:::-;;:::i;1910:148::-;;;;;;;;;;;;;:::i;16249:84::-;;;;;;;;;;;;;:::i;5883:43::-;;;;;;;;;;;;;;;;16583:315;;;;;;;;;;-1:-1:-1;16583:315:0;;;;;:::i;:::-;;:::i;1696:79::-;;;;;;;;;;-1:-1:-1;1734:7:0;1761:6;-1:-1:-1;;;;;1761:6:0;1696:79;;5933:45;;;;;;;;;;;;;;;;15670:142;;;;;;;;;;-1:-1:-1;15670:142:0;;;;;:::i;:::-;;:::i;6853:87::-;;;;;;;;;;-1:-1:-1;6925:7:0;;;;;;;;;;;;-1:-1:-1;;;6925:7:0;;;;6853:87;;7288:199;;;;;;;;;;-1:-1:-1;7288:199:0;;;;;:::i;:::-;;:::i;16341:234::-;;;;;;;;;;-1:-1:-1;16341:234:0;;;;;:::i;:::-;;:::i;11752:76::-;;;;;;;;;;;;;:::i;7495:184::-;;;;;;;;;;-1:-1:-1;7495:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7644:18:0;;;7612:7;7644:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7495:184;2066:244;;;;;;;;;;-1:-1:-1;2066:244:0;;;;;:::i;:::-;;:::i;7687:193::-;7789:4;7811:39;535:10;7834:7;7843:6;7811:8;:39::i;:::-;-1:-1:-1;7868:4:0;7687:193;;;;;:::o;16004:111::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;;;;;;;;;16081:12:::1;:26:::0;16004:111::o;7888:384::-;8020:4;8037:36;8047:6;8055:9;8066:6;8037:9;:36::i;:::-;-1:-1:-1;;;;;8155:19:0;;;;;;:11;:19;;;;;;;;535:10;8155:33;;;;;;;;;8084:158;;8107:6;;8155:76;;8210:6;;8155:76;:::i;:::-;8084:8;:158::i;:::-;-1:-1:-1;8260:4:0;7888:384;;;;;:::o;16123:118::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;16203:14:::1;:30:::0;16123:118::o;15864:101::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;15931:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;15931:26:0::1;-1:-1:-1::0;;;;15931:26:0;;::::1;::::0;;;::::1;::::0;;15864:101::o;15234:384::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;15369:14:::1;:30:::0;;;15410:15:::1;:32:::0;;;15453:12:::1;:26:::0;;;15490:13:::1;:28:::0;;;15568:2:::1;15537:27;15468:11:::0;15386:13;15537:27:::1;:::i;:::-;:33;;:72;;;;-1:-1:-1::0;15607:2:0::1;15574:29;15591:12:::0;15574:14;:29:::1;:::i;:::-;:35;;15537:72;15529:81;;;::::0;::::1;;15234:384:::0;;;;:::o;7142:138::-;-1:-1:-1;;;;;7255:16:0;;7208:7;7255:16;;;:7;:16;;;;;;7235:37;;:19;:37::i;1910:148::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;2017:1:::1;2001:6:::0;;1980:40:::1;::::0;-1:-1:-1;;;;;2001:6:0;;::::1;::::0;1980:40:::1;::::0;2017:1;;1980:40:::1;2048:1;2031:19:::0;;-1:-1:-1;;;;;;2031:19:0::1;::::0;;1910:148::o;16249:84::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;4977:18:::1;16303:12;:22:::0;16249:84::o;16583:315::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;16705:34;;::::1;16697:60;;;::::0;-1:-1:-1;;;16697:60:0;;6547:2:1;16697:60:0::1;::::0;::::1;6529:21:1::0;6586:2;6566:18;;;6559:30;-1:-1:-1;;;6605:18:1;;;6598:43;6658:18;;16697:60:0::1;6345:337:1::0;16697:60:0::1;16772:9;16768:123;16787:21:::0;;::::1;16768:123;;;16830:49;535:10:::0;16854::::1;;16865:1;16854:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16869:6;;16876:1;16869:9;;;;;;;:::i;:::-;;;;;;;16830;:49::i;:::-;16810:3;;16768:123;;;;16583:315:::0;;;;:::o;15670:142::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;15764:19:::1;:40:::0;15670:142::o;7288:199::-;7393:4;7415:42;535:10;7439:9;7450:6;7415:9;:42::i;16341:234::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;16458:9:::1;16454:114;16473:19:::0;;::::1;16454:114;;;16548:8;16514:18;:31;16533:8;;16542:1;16533:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16514:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16514:31:0;:42;;-1:-1:-1;;16514:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16494:3:0::1;16454:114;;11752:76:::0;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;11802:11:::1;:18:::0;;-1:-1:-1;;;;11802:18:0::1;-1:-1:-1::0;;;11802:18:0::1;::::0;;11752:76::o;2066:244::-;1823:6;;-1:-1:-1;;;;;1823:6:0;535:10;1823:22;1815:67;;;;-1:-1:-1;;;1815:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2155:22:0;::::1;2147:73;;;::::0;-1:-1:-1;;;2147:73:0;;7021:2:1;2147:73:0::1;::::0;::::1;7003:21:1::0;7060:2;7040:18;;;7033:30;7099:34;7079:18;;;7072:62;-1:-1:-1;;;7150:18:1;;;7143:36;7196:19;;2147:73:0::1;6819:402:1::0;2147:73:0::1;2257:6;::::0;;2236:38:::1;::::0;-1:-1:-1;;;;;2236:38:0;;::::1;::::0;2257:6;::::1;::::0;2236:38:::1;::::0;::::1;2285:6;:17:::0;;-1:-1:-1;;;;;;2285:17:0::1;-1:-1:-1::0;;;;;2285:17:0;;;::::1;::::0;;;::::1;::::0;;2066:244::o;8963:211::-;-1:-1:-1;;;;;9082:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9134:32;;1465:25:1;;;9134:32:0;;1438:18:1;9134:32:0;;;;;;;8963:211;;;:::o;9182:1964::-;-1:-1:-1;;;;;9303:24:0;;;;;;:18;:24;;;;;;;;9302:25;:52;;;;-1:-1:-1;;;;;;9332:22:0;;;;;;:18;:22;;;;;;;;9331:23;9302:52;9298:1192;;;9381:11;;-1:-1:-1;;;9381:11:0;;;;9373:87;;;;-1:-1:-1;;;9373:87:0;;7428:2:1;9373:87:0;;;7410:21:1;7467:2;7447:18;;;7440:30;7506:34;7486:18;;;7479:62;7577:33;7557:18;;;7550:61;7628:19;;9373:87:0;7226:427:1;9373:87:0;9493:12;;9483:6;:22;;9475:63;;;;-1:-1:-1;;;9475:63:0;;7860:2:1;9475:63:0;;;7842:21:1;7899:2;7879:18;;;7872:30;7938;7918:18;;;7911:58;7986:18;;9475:63:0;7658:352:1;9475:63:0;9564:13;;-1:-1:-1;;;;;9558:19:0;;;9564:13;;9558:19;9555:146;;9631:14;;9622:6;9606:13;9616:2;9606:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9598:87;;;;-1:-1:-1;;;9598:87:0;;;;;;;:::i;:::-;9726:13;;-1:-1:-1;;;;;9726:13:0;;;9720:19;;;;9717:131;;4977:18;9768:14;;:24;9760:72;;;;-1:-1:-1;;;9760:72:0;;;;;;;:::i;:::-;9864:28;9895:24;9913:4;9895:9;:24::i;:::-;9973:19;;10036:12;;9864:55;;-1:-1:-1;9949:43:0;;;;10012:36;;10009:124;;10105:12;;10082:35;;10009:124;10153:7;:18;;;;-1:-1:-1;10165:6:0;;-1:-1:-1;;;10165:6:0;;;;10164:7;10153:18;:43;;;;-1:-1:-1;10183:13:0;;-1:-1:-1;;;;;10175:21:0;;;10183:13;;10175:21;;10153:43;:58;;;;-1:-1:-1;10200:11:0;;-1:-1:-1;;;10200:11:0;;;;10153:58;10149:330;;;10232:38;10249:20;10232:16;:38::i;:::-;10318:21;10362:22;;10358:106;;10409:35;10422:21;10409:12;:35::i;:::-;10213:266;10149:330;9356:1134;;9298:1192;-1:-1:-1;;;;;10566:24:0;;10502:12;10566:24;;;:18;:24;;;;;;10517:4;;10566:24;;;:50;;-1:-1:-1;;;;;;10594:22:0;;;;;;:18;:22;;;;;;;;10566:50;10565:102;;;-1:-1:-1;10630:13:0;;-1:-1:-1;;;;;10622:21:0;;;10630:13;;10622:21;;;;:44;;-1:-1:-1;10653:13:0;;-1:-1:-1;;;;;10647:19:0;;;10653:13;;10647:19;;10622:44;10561:524;;;-1:-1:-1;10694:5:0;10561:524;;;10777:13;;-1:-1:-1;;;;;10777:13:0;;;10769:21;;;;10766:128;;10823:14;;10811:9;:26;10866:12;;10856:7;:22;10766:128;10953:13;;-1:-1:-1;;;;;10953:13:0;;;10947:19;;;;10943:129;;10999:15;;10987:9;:27;11043:13;;11033:7;:23;10943:129;11097:41;11112:4;11118:2;11122:6;11130:7;11097:14;:41::i;8280:323::-;8375:7;8433;;8422;:18;;8400:110;;;;-1:-1:-1;;;8400:110:0;;8621:2:1;8400:110:0;;;8603:21:1;8660:2;8640:18;;;8633:30;8699:34;8679:18;;;8672:62;-1:-1:-1;;;8750:18:1;;;8743:40;8800:19;;8400:110:0;8419:406:1;8400:110:0;8521:19;8543:10;:8;:10::i;:::-;8521:32;-1:-1:-1;8571:24:0;:7;8521:32;8571:11;:24::i;:::-;8564:31;8280:323;-1:-1:-1;;;8280:323:0:o;11154:483::-;6077:6;:13;;-1:-1:-1;;;;6077:13:0;-1:-1:-1;;;6077:13:0;;;11256:16:::1;::::0;;11270:1:::1;11256:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11256:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11256:16:0::1;11232:40;;11301:4;11283;11288:1;11283:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11283:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11327:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11327:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11283:7;;11327:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11317:4;11322:1;11317:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11317:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11392:15:::1;::::0;11360:62:::1;::::0;11377:4:::1;::::0;11392:15:::1;11410:11:::0;11360:8:::1;:62::i;:::-;11433:15;::::0;:196:::1;::::0;-1:-1:-1;;;11433:196:0;;-1:-1:-1;;;;;11433:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11514:11;;11433:15:::1;::::0;11556:4;;11583::::1;::::0;11603:15:::1;::::0;11433:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6113:6:0;:14;;-1:-1:-1;;;;6113:14:0;;;-1:-1:-1;;;;11154:483:0:o;11645:99::-;11702:17;;:34;;-1:-1:-1;;;;;11702:17:0;;;;:34;;;;;11729:6;;11702:17;:34;:17;:34;11729:6;11702:17;:34;;;;;;;;;;;;;;;;;;;;;11645:99;:::o;11836:282::-;11992:7;11987:28;;12001:14;:12;:14::i;:::-;12026:44;12044:6;12052:9;12063:6;12026:17;:44::i;:::-;12086:7;12081:29;;12095:15;8894:17;;8882:9;:29;8932:15;;8922:7;:25;8838:117;14797:164;14839:7;14860:15;14877;14896:19;:17;:19::i;:::-;14859:56;;-1:-1:-1;14859:56:0;-1:-1:-1;14933:20:0;14859:56;;14933:11;:20::i;:::-;14926:27;;;;14797:164;:::o;3160:132::-;3218:7;3245:39;3249:1;3252;3245:39;;;;;;;;;;;;;;;;;:3;:39::i;8611:219::-;8658:9;;:14;:30;;;;-1:-1:-1;8676:7:0;;:12;8658:30;8654:43;;;8611:219::o;8654:43::-;8729:9;;;8709:17;:29;8767:7;;;8749:15;:25;-1:-1:-1;8787:13:0;;;;8811:11;8611:219::o;12126:610::-;12273:15;12303:23;12341:12;12368:23;12406:12;12433:13;12460:19;12471:7;12460:10;:19::i;:::-;-1:-1:-1;;;;;12508:15:0;;;;;;:7;:15;;;;;;12258:221;;-1:-1:-1;12258:221:0;;-1:-1:-1;12258:221:0;;-1:-1:-1;12258:221:0;-1:-1:-1;12258:221:0;-1:-1:-1;12258:221:0;-1:-1:-1;12508:28:0;;12258:221;12508:19;:28::i;:::-;-1:-1:-1;;;;;12490:15:0;;;;;;;:7;:15;;;;;;:46;;;;12568:18;;;;;;;:39;;12591:15;12568:22;:39::i;:::-;-1:-1:-1;;;;;12547:18:0;;;;;;:7;:18;;;;;:60;12618:16;12628:5;12618:9;:16::i;:::-;12645:23;12657:4;12663;12645:11;:23::i;:::-;12701:9;-1:-1:-1;;;;;12684:44:0;12693:6;-1:-1:-1;;;;;12684:44:0;;12712:15;12684:44;;;;1465:25:1;;1453:2;1438:18;;1319:177;12684:44:0;;;;;;;;12247:489;;;;;;12126:610;;;:::o;14969:257::-;15067:7;;15020;;;;4977:18;15135:20;15067:7;4977:18;15135:11;:20::i;:::-;15125:7;:30;15121:61;;;-1:-1:-1;;15165:7:0;;;4977:18;;-1:-1:-1;14969:257:0;-1:-1:-1;14969:257:0:o;15121:61::-;15201:7;;15210;;-1:-1:-1;14969:257:0;-1:-1:-1;14969:257:0:o;3300:223::-;3420:7;3455:12;3448:5;3440:28;;;;-1:-1:-1;;;3440:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3479:9:0;3491:5;3495:1;3491;:5;:::i;:::-;3479:17;3300:223;-1:-1:-1;;;;;3300:223:0:o;13155:615::-;13255:7;13277;13299;13321;13343;13365;13401:23;13426:12;13440:13;13470:40;13482:7;13491:9;;13502:7;;13470:11;:40::i;:::-;13400:110;;;;;;13521:19;13543:10;:8;:10::i;:::-;13521:32;;13565:15;13582:23;13607:12;13636:46;13648:7;13657:4;13663:5;13670:11;13636;:46::i;:::-;13564:118;;-1:-1:-1;13564:118:0;-1:-1:-1;13564:118:0;-1:-1:-1;13733:15:0;;-1:-1:-1;13750:4:0;;-1:-1:-1;13756:5:0;;-1:-1:-1;;;;;13155:615:0;;;;;;;:::o;2530:136::-;2588:7;2615:43;2619:1;2622;2615:43;;;;;;;;;;;;;;;;;:3;:43::i;2343:179::-;2401:7;;2433:5;2437:1;2433;:5;:::i;:::-;2421:17;;2462:1;2457;:6;;2449:46;;;;-1:-1:-1;;;2449:46:0;;10627:2:1;2449:46:0;;;10609:21:1;10666:2;10646:18;;;10639:30;10705:29;10685:18;;;10678:57;10752:18;;2449:46:0;10425:351:1;12744:211:0;12797:19;12819:10;:8;:10::i;:::-;12797:32;-1:-1:-1;12840:13:0;12856:22;:5;12797:32;12856:9;:22::i;:::-;12930:4;12914:22;;;;:7;:22;;;;;;12840:38;;-1:-1:-1;12914:33:0;;12840:38;12914:26;:33::i;:::-;12905:4;12889:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12744:211:0:o;12963:147::-;13041:7;;:17;;13053:4;13041:11;:17::i;:::-;13031:7;:27;13082:10;;:20;;13097:4;13082:14;:20::i;:::-;13069:10;:33;-1:-1:-1;;12963:147:0:o;13778:469::-;13947:7;;;;14041:30;14067:3;14041:21;:7;14053:8;14041:11;:21::i;:::-;:25;;:30::i;:::-;14026:45;-1:-1:-1;14082:13:0;14098:28;14122:3;14098:19;:7;14110:6;14098:11;:19::i;:28::-;14082:44;-1:-1:-1;14137:23:0;14163:28;14082:44;14163:17;:7;14175:4;14163:11;:17::i;:::-;:21;;:28::i;:::-;14137:54;14227:4;;-1:-1:-1;14233:5:0;;-1:-1:-1;13778:469:0;;-1:-1:-1;;;;;13778:469:0:o;14255:534::-;14449:7;;;;14546:24;:7;14558:11;14546;:24::i;:::-;14528:42;-1:-1:-1;14581:12:0;14596:21;:4;14605:11;14596:8;:21::i;:::-;14581:36;-1:-1:-1;14628:13:0;14644:22;:5;14654:11;14644:9;:22::i;:::-;14628:38;-1:-1:-1;14677:23:0;14703:28;14628:38;14703:17;:7;14715:4;14703:11;:17::i;:28::-;14750:7;;;;-1:-1:-1;14776:4:0;;-1:-1:-1;14255:534:0;;-1:-1:-1;;;;;;;14255:534:0:o;2674:224::-;2794:7;2830:12;2822:6;;;;2814:29;;;;-1:-1:-1;;;2814:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2854:9:0;2866:5;2870:1;2866;:5;:::i;2906:246::-;2964:7;2988:1;2993;2988:6;2984:47;;-1:-1:-1;3018:1:0;3011:8;;2984:47;3041:9;3053:5;3057:1;3053;:5;:::i;:::-;3041:17;-1:-1:-1;3086:1:0;3077:5;3081:1;3041:17;3077:5;:::i;:::-;:10;3069:56;;;;-1:-1:-1;;;3069:56:0;;11156:2:1;3069:56:0;;;11138:21:1;11195:2;11175:18;;;11168:30;11234:34;11214:18;;;11207:62;-1:-1:-1;;;11285:18:1;;;11278:31;11326:19;;3069:56:0;10954:397:1;14:418;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:315::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1501:180::-;1560:6;1613:2;1601:9;1592:7;1588:23;1584:32;1581:52;;;1629:1;1626;1619:12;1581:52;-1:-1:-1;1652:23:1;;1501:180;-1:-1:-1;1501:180:1:o;1686:456::-;1763:6;1771;1779;1832:2;1820:9;1811:7;1807:23;1803:32;1800:52;;;1848:1;1845;1838:12;1800:52;1887:9;1874:23;1906:31;1931:5;1906:31;:::i;:::-;1956:5;-1:-1:-1;2013:2:1;1998:18;;1985:32;2026:33;1985:32;2026:33;:::i;:::-;1686:456;;2078:7;;-1:-1:-1;;;2132:2:1;2117:18;;;;2104:32;;1686:456::o;2544:160::-;2609:20;;2665:13;;2658:21;2648:32;;2638:60;;2694:1;2691;2684:12;2638:60;2544:160;;;:::o;2709:180::-;2765:6;2818:2;2806:9;2797:7;2793:23;2789:32;2786:52;;;2834:1;2831;2824:12;2786:52;2857:26;2873:9;2857:26;:::i;2894:385::-;2980:6;2988;2996;3004;3057:3;3045:9;3036:7;3032:23;3028:33;3025:53;;;3074:1;3071;3064:12;3025:53;-1:-1:-1;;3097:23:1;;;3167:2;3152:18;;3139:32;;-1:-1:-1;3218:2:1;3203:18;;3190:32;;3269:2;3254:18;3241:32;;-1:-1:-1;2894:385:1;-1:-1:-1;2894:385:1:o;3284:247::-;3343:6;3396:2;3384:9;3375:7;3371:23;3367:32;3364:52;;;3412:1;3409;3402:12;3364:52;3451:9;3438:23;3470:31;3495:5;3470:31;:::i;3536:367::-;3599:8;3609:6;3663:3;3656:4;3648:6;3644:17;3640:27;3630:55;;3681:1;3678;3671:12;3630:55;-1:-1:-1;3704:20:1;;3747:18;3736:30;;3733:50;;;3779:1;3776;3769:12;3733:50;3816:4;3808:6;3804:17;3792:29;;3876:3;3869:4;3859:6;3856:1;3852:14;3844:6;3840:27;3836:38;3833:47;3830:67;;;3893:1;3890;3883:12;3830:67;3536:367;;;;;:::o;3908:773::-;4030:6;4038;4046;4054;4107:2;4095:9;4086:7;4082:23;4078:32;4075:52;;;4123:1;4120;4113:12;4075:52;4163:9;4150:23;4192:18;4233:2;4225:6;4222:14;4219:34;;;4249:1;4246;4239:12;4219:34;4288:70;4350:7;4341:6;4330:9;4326:22;4288:70;:::i;:::-;4377:8;;-1:-1:-1;4262:96:1;-1:-1:-1;4465:2:1;4450:18;;4437:32;;-1:-1:-1;4481:16:1;;;4478:36;;;4510:1;4507;4500:12;4478:36;;4549:72;4613:7;4602:8;4591:9;4587:24;4549:72;:::i;:::-;3908:773;;;;-1:-1:-1;4640:8:1;-1:-1:-1;;;;3908:773:1:o;4686:505::-;4778:6;4786;4794;4847:2;4835:9;4826:7;4822:23;4818:32;4815:52;;;4863:1;4860;4853:12;4815:52;4903:9;4890:23;4936:18;4928:6;4925:30;4922:50;;;4968:1;4965;4958:12;4922:50;5007:70;5069:7;5060:6;5049:9;5045:22;5007:70;:::i;:::-;5096:8;;-1:-1:-1;4981:96:1;-1:-1:-1;5150:35:1;;-1:-1:-1;5181:2:1;5166:18;;5150:35;:::i;:::-;5140:45;;4686:505;;;;;:::o;5196:388::-;5264:6;5272;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5380:9;5367:23;5399:31;5424:5;5399:31;:::i;:::-;5449:5;-1:-1:-1;5506:2:1;5491:18;;5478:32;5519:33;5478:32;5519:33;:::i;:::-;5571:7;5561:17;;;5196:388;;;;;:::o;5589:356::-;5791:2;5773:21;;;5810:18;;;5803:30;5869:34;5864:2;5849:18;;5842:62;5936:2;5921:18;;5589:356::o;5950:127::-;6011:10;6006:3;6002:20;5999:1;5992:31;6042:4;6039:1;6032:15;6066:4;6063:1;6056:15;6082:128;6149:9;;;6170:11;;;6167:37;;;6184:18;;:::i;6215:125::-;6280:9;;;6301:10;;;6298:36;;;6314:18;;:::i;6687:127::-;6748:10;6743:3;6739:20;6736:1;6729:31;6779:4;6776:1;6769:15;6803:4;6800:1;6793:15;8015:399;8217:2;8199:21;;;8256:2;8236:18;;;8229:30;8295:34;8290:2;8275:18;;8268:62;-1:-1:-1;;;8361:2:1;8346:18;;8339:33;8404:3;8389:19;;8015:399::o;8962:251::-;9032:6;9085:2;9073:9;9064:7;9060:23;9056:32;9053:52;;;9101:1;9098;9091:12;9053:52;9133:9;9127:16;9152:31;9177:5;9152:31;:::i;9218:980::-;9480:4;9528:3;9517:9;9513:19;9559:6;9548:9;9541:25;9585:2;9623:6;9618:2;9607:9;9603:18;9596:34;9666:3;9661:2;9650:9;9646:18;9639:31;9690:6;9725;9719:13;9756:6;9748;9741:22;9794:3;9783:9;9779:19;9772:26;;9833:2;9825:6;9821:15;9807:29;;9854:1;9864:195;9878:6;9875:1;9872:13;9864:195;;;9943:13;;-1:-1:-1;;;;;9939:39:1;9927:52;;10034:15;;;;9999:12;;;;9975:1;9893:9;9864:195;;;-1:-1:-1;;;;;;;10115:32:1;;;;10110:2;10095:18;;10088:60;-1:-1:-1;;;10179:3:1;10164:19;10157:35;10076:3;9218:980;-1:-1:-1;;;9218:980:1:o;10203:217::-;10243:1;10269;10259:132;;10313:10;10308:3;10304:20;10301:1;10294:31;10348:4;10345:1;10338:15;10376:4;10373:1;10366:15;10259:132;-1:-1:-1;10405:9:1;;10203:217::o;10781:168::-;10854:9;;;10885;;10902:15;;;10896:22;;10882:37;10872:71;;10923:18;;:::i
Swarm Source
ipfs://477e960d483587a9e90df1fd255486b3932954ecfd3cce62d334a7c3a2088603
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.