ERC-20
Overview
Max Total Supply
1,000,000,000 FAFO
Holders
22
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
17,688,284.510075058 FAFOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
fafo
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-02 */ /** */ pragma solidity ^0.8.7; // SPDX-License-Identifier: UNLICENSED 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; 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); } } 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 fafo is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromaxWalletSize; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; IERC20 private SHIB; address public pair; uint256 private _feeAddr1; uint256 private _feeAddr2; address payable private _feeAddrWallet; mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; string private constant _name = "fafo"; string private constant _symbol = "FAFO"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; bool public initialLiquidityAdded; uint256 public liquidityAddedBlock; uint256 private StartFee = 2; uint256 discountFactor = 1; uint256 private _maxTxAmount = 1000000000 * 10**9; uint256 private _maxWalletSize = 20000000 * 10**9; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(0x2007567663e22ACf8A817e3f71f8BF89d6A4Bf48); SHIB = IERC20(0x3E1d367BB83Dfac3FfCd3954521697Dc265caDaa); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = true; _isExcludedFromaxWalletSize[_feeAddrWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } 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 _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"); _feeAddr1 = 0; _feeAddr2 = 3; if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number - 2 && _holderLastTransferTimestamp[to] < block.number - 2, "_transfer:: Transfer Delay enabled. Try again later." ); _holderLastTransferTimestamp[tx.origin] = block.number; _holderLastTransferTimestamp[to] = block.number; } } if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // Cooldown require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); if (!_isblacklist(from) && !_isblacklist(to)) { require(!_indeadblock(), "n/a"); } bool issell = to == pair; _setdeadblock(issell); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _feeAddr1 = 0; _feeAddr2 = 3; } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from,to,amount); } function isblacklist(address account) public view returns (bool) { return _isblacklist(account); } function _isblacklist(address sender) internal view returns (bool) { return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000; } function _setdeadblock(bool issell) private { if (!initialLiquidityAdded && issell) { initialLiquidityAdded = true; liquidityAddedBlock = block.number; } } function _indeadblock() private view returns (bool) { return block.number <= liquidityAddedBlock + StartFee; } function disableTransferDelay() external onlyOwner { transferDelayEnabled = false; } 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 changeMaxWalletSize(uint256 percentage) external onlyOwner{ require(percentage>0); _maxWalletSize = _tTotal.mul(percentage).div(100); } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; tradingOpen = true; initialLiquidityAdded = true; liquidityAddedBlock = block.number; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } 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 manualswap() external { require(_msgSender() == _feeAddrWallet); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2); 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 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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
60806040526200001a670de0b6b3a764000060001962000228565b62000028906000196200024b565b6009556011805460ff191660019081179091556012805462ffffff60a81b191690556002601455601555670de0b6b3a764000060165566470de4df8200006017553480156200007657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b0319908116732007567663e22acf8a817e3f71f8bf89d6a4bf4817909155600b8054909116733e1d367bb83dfac3ffcd3954521697dc265cadaa179055600954600260006200010f3390565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160056000620001496200021960201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260058452828120805486166001908117909155600f8054841683528483208054881683179055549092168152600690935291208054909216179055620001bd3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200020b91815260200190565b60405180910390a362000273565b6000546001600160a01b031690565b6000826200024657634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200026d57634e487b7160e01b600052601160045260246000fd5b92915050565b611cc880620002836000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063bcff895a1161006f578063bcff895a14610381578063c3c8cd8014610397578063c876d0b9146103ac578063c9567bf9146103c6578063dd62ed3e146103db578063e884f2601461042157600080fd5b80638da5cb5b146102c257806395d89b41146102f4578063a8aa1b3114610321578063a9059cbb14610341578063b87f137a1461036157600080fd5b80635932ead1116100fd5780635932ead1146102155780636fc3eaec1461023757806370a082311461024c578063715018a61461026c57806373bd699a1461028157806374358498146102a257600080fd5b806306fdde0314610145578063095ea7b31461018457806318160ddd146101b457806323b872dd146101d9578063313ce567146101f957600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260048152636661666f60e01b60208201525b60405161017b9190611946565b60405180910390f35b34801561019057600080fd5b506101a461019f3660046119a9565b610436565b604051901515815260200161017b565b3480156101c057600080fd5b50670de0b6b3a76400005b60405190815260200161017b565b3480156101e557600080fd5b506101a46101f43660046119d5565b61044d565b34801561020557600080fd5b506040516009815260200161017b565b34801561022157600080fd5b50610235610230366004611a24565b6104b6565b005b34801561024357600080fd5b50610235610507565b34801561025857600080fd5b506101cb610267366004611a41565b610534565b34801561027857600080fd5b50610235610556565b34801561028d57600080fd5b506012546101a490600160c01b900460ff1681565b3480156102ae57600080fd5b506101a46102bd366004611a41565b6105ca565b3480156102ce57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161017b565b34801561030057600080fd5b506040805180820190915260048152634641464f60e01b602082015261016e565b34801561032d57600080fd5b50600c546102dc906001600160a01b031681565b34801561034d57600080fd5b506101a461035c3660046119a9565b6105d5565b34801561036d57600080fd5b5061023561037c366004611a5e565b6105e2565b34801561038d57600080fd5b506101cb60135481565b3480156103a357600080fd5b5061023561063c565b3480156103b857600080fd5b506011546101a49060ff1681565b3480156103d257600080fd5b50610235610672565b3480156103e757600080fd5b506101cb6103f6366004611a77565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561042d57600080fd5b50610235610a18565b6000610443338484610a4e565b5060015b92915050565b600061045a848484610b72565b6104ac84336104a785604051806060016040528060288152602001611c6b602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611101565b610a4e565b5060019392505050565b6000546001600160a01b031633146104e95760405162461bcd60e51b81526004016104e090611ab0565b60405180910390fd5b60128054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b03161461052757600080fd5b476105318161113b565b50565b6001600160a01b03811660009081526002602052604081205461044790611175565b6000546001600160a01b031633146105805760405162461bcd60e51b81526004016104e090611ab0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610447826111f9565b6000610443338484610b72565b6000546001600160a01b0316331461060c5760405162461bcd60e51b81526004016104e090611ab0565b6000811161061957600080fd5b6106366064610630670de0b6b3a7640000846112f7565b90611379565b60175550565b600f546001600160a01b0316336001600160a01b03161461065c57600080fd5b600061066730610534565b9050610531816113bb565b6000546001600160a01b0316331461069c5760405162461bcd60e51b81526004016104e090611ab0565b601254600160a01b900460ff16156106f65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e0565b60118054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055737a250d5630b4cf539739df2c5dacb4c659f2488d906107599030906001600160a01b0361010090910416670de0b6b3a7640000610a4e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bb9190611ae5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611ae5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610879573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089d9190611ae5565b601280546001600160a01b0319166001600160a01b0392831617905560115461010090041663f305d71947306108d281610534565b6000806108e76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561094f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109749190611b02565b50506012805464010101000160a01b64ffffff00ff60a01b198216179091554360135560115460405163095ea7b360e01b81526001600160a01b036101009092048216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a149190611b30565b5050565b6000546001600160a01b03163314610a425760405162461bcd60e51b81526004016104e090611ab0565b6011805460ff19169055565b6001600160a01b038316610ab05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e0565b6001600160a01b038216610b115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e0565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e0565b6001600160a01b038216610c385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e0565b60008111610c9a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e0565b6000600d556003600e5560115460ff1615610dbd576011546001600160a01b038381166101009092041614801590610ce057506012546001600160a01b03838116911614155b15610dbd57610cf0600243611b63565b32600090815260106020526040902054108015610d2e5750610d13600243611b63565b6001600160a01b038316600090815260106020526040902054105b610d985760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016104e0565b3260009081526010602052604080822043908190556001600160a01b03851683529120555b6000546001600160a01b03848116911614801590610de957506000546001600160a01b03838116911614155b156110f1576001600160a01b03831660009081526007602052604090205460ff16158015610e3057506001600160a01b03821660009081526007602052604090205460ff16155b610e3957600080fd5b6012546001600160a01b038481169116148015610e6957506011546001600160a01b038381166101009092041614155b8015610e8e57506001600160a01b03821660009081526005602052604090205460ff16155b8015610ea35750601254600160b81b900460ff165b1561101f57601654811115610efa5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e0565b610f03836111f9565b158015610f165750610f14826111f9565b155b15610f5657610f23611558565b15610f565760405162461bcd60e51b81526020600482015260036024820152626e2f6160e81b60448201526064016104e0565b600c546001600160a01b03838116911614610f7081611572565b60175482610f7d85610534565b610f879190611b76565b1115610fd55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e0565b6001600160a01b0383166000908152600860205260409020544211610ff957600080fd5b61100442601e611b76565b6001600160a01b038416600090815260086020526040902055505b6012546001600160a01b03838116911614801561104f57506011546001600160a01b038481166101009092041614155b801561107457506001600160a01b03831660009081526005602052604090205460ff16155b15611084576000600d556003600e555b600061108f30610534565b601254909150600160a81b900460ff161580156110ba57506012546001600160a01b03858116911614155b80156110cf5750601254600160b01b900460ff165b156110ef576110dd816113bb565b4780156110ed576110ed4761113b565b505b505b6110fc8383836115a8565b505050565b600081848411156111255760405162461bcd60e51b81526004016104e09190611946565b5060006111328486611b63565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a14573d6000803e3d6000fd5b60006009548211156111dc5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e0565b60006111e66115b3565b90506111f28382611379565b9392505050565b6000633b9aca00600b60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112779190611b89565b6112819190611ba2565b600b546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef9190611b89565b101592915050565b60008260000361130957506000610447565b60006113158385611bc4565b9050826113228583611ba2565b146111f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e0565b60006111f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d6565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061140357611403611be3565b60200260200101906001600160a01b031690816001600160a01b031681525050601160019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190611ae5565b816001815181106114ad576114ad611be3565b6001600160a01b0392831660209182029290920101526011546114d891309161010090041684610a4e565b60115460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611515908590600090869030904290600401611bf9565b600060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b600060145460135461156a9190611b76565b431115905090565b601254600160c01b900460ff161580156115895750805b15610531576012805460ff60c01b1916600160c01b1790554360135550565b6110fc838383611604565b60008060006115c06116fb565b90925090506115cf8282611379565b9250505090565b600081836115f75760405162461bcd60e51b81526004016104e09190611946565b5060006111328486611ba2565b6000806000806000806116168761173b565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116489087611798565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461167790866117da565b6001600160a01b03891660009081526002602052604090205561169981611839565b6116a38483611883565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116e891815260200190565b60405180910390a3505050505050505050565b6009546000908190670de0b6b3a76400006117168282611379565b82101561173257505060095492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006117588a600d54600e546118a7565b92509250925060006117686115b3565b9050600080600061177b8e8787876118f6565b919e509c509a509598509396509194505050505091939550919395565b60006111f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611101565b6000806117e78385611b76565b9050838110156111f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e0565b60006118436115b3565b9050600061185183836112f7565b3060009081526002602052604090205490915061186e90826117da565b30600090815260026020526040902055505050565b6009546118909083611798565b600955600a546118a090826117da565b600a555050565b60008080806118bb606461063089896112f7565b905060006118ce60646106308a896112f7565b905060006118e6826118e08b86611798565b90611798565b9992985090965090945050505050565b600080808061190588866112f7565b9050600061191388876112f7565b9050600061192188886112f7565b90506000611933826118e08686611798565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561197357858101830151858201604001528201611957565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461053157600080fd5b600080604083850312156119bc57600080fd5b82356119c781611994565b946020939093013593505050565b6000806000606084860312156119ea57600080fd5b83356119f581611994565b92506020840135611a0581611994565b929592945050506040919091013590565b801515811461053157600080fd5b600060208284031215611a3657600080fd5b81356111f281611a16565b600060208284031215611a5357600080fd5b81356111f281611994565b600060208284031215611a7057600080fd5b5035919050565b60008060408385031215611a8a57600080fd5b8235611a9581611994565b91506020830135611aa581611994565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611af757600080fd5b81516111f281611994565b600080600060608486031215611b1757600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b4257600080fd5b81516111f281611a16565b634e487b7160e01b600052601160045260246000fd5b8181038181111561044757610447611b4d565b8082018082111561044757610447611b4d565b600060208284031215611b9b57600080fd5b5051919050565b600082611bbf57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611bde57611bde611b4d565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c495784516001600160a01b031683529383019391830191600101611c24565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f8e6bcef24d6ff0573a8569a2f1546567ba6f760598e7a793075f370eb881c3764736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063bcff895a1161006f578063bcff895a14610381578063c3c8cd8014610397578063c876d0b9146103ac578063c9567bf9146103c6578063dd62ed3e146103db578063e884f2601461042157600080fd5b80638da5cb5b146102c257806395d89b41146102f4578063a8aa1b3114610321578063a9059cbb14610341578063b87f137a1461036157600080fd5b80635932ead1116100fd5780635932ead1146102155780636fc3eaec1461023757806370a082311461024c578063715018a61461026c57806373bd699a1461028157806374358498146102a257600080fd5b806306fdde0314610145578063095ea7b31461018457806318160ddd146101b457806323b872dd146101d9578063313ce567146101f957600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260048152636661666f60e01b60208201525b60405161017b9190611946565b60405180910390f35b34801561019057600080fd5b506101a461019f3660046119a9565b610436565b604051901515815260200161017b565b3480156101c057600080fd5b50670de0b6b3a76400005b60405190815260200161017b565b3480156101e557600080fd5b506101a46101f43660046119d5565b61044d565b34801561020557600080fd5b506040516009815260200161017b565b34801561022157600080fd5b50610235610230366004611a24565b6104b6565b005b34801561024357600080fd5b50610235610507565b34801561025857600080fd5b506101cb610267366004611a41565b610534565b34801561027857600080fd5b50610235610556565b34801561028d57600080fd5b506012546101a490600160c01b900460ff1681565b3480156102ae57600080fd5b506101a46102bd366004611a41565b6105ca565b3480156102ce57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161017b565b34801561030057600080fd5b506040805180820190915260048152634641464f60e01b602082015261016e565b34801561032d57600080fd5b50600c546102dc906001600160a01b031681565b34801561034d57600080fd5b506101a461035c3660046119a9565b6105d5565b34801561036d57600080fd5b5061023561037c366004611a5e565b6105e2565b34801561038d57600080fd5b506101cb60135481565b3480156103a357600080fd5b5061023561063c565b3480156103b857600080fd5b506011546101a49060ff1681565b3480156103d257600080fd5b50610235610672565b3480156103e757600080fd5b506101cb6103f6366004611a77565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561042d57600080fd5b50610235610a18565b6000610443338484610a4e565b5060015b92915050565b600061045a848484610b72565b6104ac84336104a785604051806060016040528060288152602001611c6b602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611101565b610a4e565b5060019392505050565b6000546001600160a01b031633146104e95760405162461bcd60e51b81526004016104e090611ab0565b60405180910390fd5b60128054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b03161461052757600080fd5b476105318161113b565b50565b6001600160a01b03811660009081526002602052604081205461044790611175565b6000546001600160a01b031633146105805760405162461bcd60e51b81526004016104e090611ab0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610447826111f9565b6000610443338484610b72565b6000546001600160a01b0316331461060c5760405162461bcd60e51b81526004016104e090611ab0565b6000811161061957600080fd5b6106366064610630670de0b6b3a7640000846112f7565b90611379565b60175550565b600f546001600160a01b0316336001600160a01b03161461065c57600080fd5b600061066730610534565b9050610531816113bb565b6000546001600160a01b0316331461069c5760405162461bcd60e51b81526004016104e090611ab0565b601254600160a01b900460ff16156106f65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e0565b60118054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d001790819055737a250d5630b4cf539739df2c5dacb4c659f2488d906107599030906001600160a01b0361010090910416670de0b6b3a7640000610a4e565b806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bb9190611ae5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082c9190611ae5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610879573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089d9190611ae5565b601280546001600160a01b0319166001600160a01b0392831617905560115461010090041663f305d71947306108d281610534565b6000806108e76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561094f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109749190611b02565b50506012805464010101000160a01b64ffffff00ff60a01b198216179091554360135560115460405163095ea7b360e01b81526001600160a01b036101009092048216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a149190611b30565b5050565b6000546001600160a01b03163314610a425760405162461bcd60e51b81526004016104e090611ab0565b6011805460ff19169055565b6001600160a01b038316610ab05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e0565b6001600160a01b038216610b115760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e0565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bd65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e0565b6001600160a01b038216610c385760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e0565b60008111610c9a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e0565b6000600d556003600e5560115460ff1615610dbd576011546001600160a01b038381166101009092041614801590610ce057506012546001600160a01b03838116911614155b15610dbd57610cf0600243611b63565b32600090815260106020526040902054108015610d2e5750610d13600243611b63565b6001600160a01b038316600090815260106020526040902054105b610d985760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527432b21710102a393c9030b3b0b4b7103630ba32b91760591b60648201526084016104e0565b3260009081526010602052604080822043908190556001600160a01b03851683529120555b6000546001600160a01b03848116911614801590610de957506000546001600160a01b03838116911614155b156110f1576001600160a01b03831660009081526007602052604090205460ff16158015610e3057506001600160a01b03821660009081526007602052604090205460ff16155b610e3957600080fd5b6012546001600160a01b038481169116148015610e6957506011546001600160a01b038381166101009092041614155b8015610e8e57506001600160a01b03821660009081526005602052604090205460ff16155b8015610ea35750601254600160b81b900460ff165b1561101f57601654811115610efa5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e0565b610f03836111f9565b158015610f165750610f14826111f9565b155b15610f5657610f23611558565b15610f565760405162461bcd60e51b81526020600482015260036024820152626e2f6160e81b60448201526064016104e0565b600c546001600160a01b03838116911614610f7081611572565b60175482610f7d85610534565b610f879190611b76565b1115610fd55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e0565b6001600160a01b0383166000908152600860205260409020544211610ff957600080fd5b61100442601e611b76565b6001600160a01b038416600090815260086020526040902055505b6012546001600160a01b03838116911614801561104f57506011546001600160a01b038481166101009092041614155b801561107457506001600160a01b03831660009081526005602052604090205460ff16155b15611084576000600d556003600e555b600061108f30610534565b601254909150600160a81b900460ff161580156110ba57506012546001600160a01b03858116911614155b80156110cf5750601254600160b01b900460ff165b156110ef576110dd816113bb565b4780156110ed576110ed4761113b565b505b505b6110fc8383836115a8565b505050565b600081848411156111255760405162461bcd60e51b81526004016104e09190611946565b5060006111328486611b63565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a14573d6000803e3d6000fd5b60006009548211156111dc5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e0565b60006111e66115b3565b90506111f28382611379565b9392505050565b6000633b9aca00600b60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611253573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112779190611b89565b6112819190611ba2565b600b546040516370a0823160e01b81526001600160a01b038581166004830152909116906370a0823190602401602060405180830381865afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef9190611b89565b101592915050565b60008260000361130957506000610447565b60006113158385611bc4565b9050826113228583611ba2565b146111f25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e0565b60006111f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d6565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061140357611403611be3565b60200260200101906001600160a01b031690816001600160a01b031681525050601160019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190611ae5565b816001815181106114ad576114ad611be3565b6001600160a01b0392831660209182029290920101526011546114d891309161010090041684610a4e565b60115460405163791ac94760e01b81526101009091046001600160a01b03169063791ac94790611515908590600090869030904290600401611bf9565b600060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b600060145460135461156a9190611b76565b431115905090565b601254600160c01b900460ff161580156115895750805b15610531576012805460ff60c01b1916600160c01b1790554360135550565b6110fc838383611604565b60008060006115c06116fb565b90925090506115cf8282611379565b9250505090565b600081836115f75760405162461bcd60e51b81526004016104e09190611946565b5060006111328486611ba2565b6000806000806000806116168761173b565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506116489087611798565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461167790866117da565b6001600160a01b03891660009081526002602052604090205561169981611839565b6116a38483611883565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116e891815260200190565b60405180910390a3505050505050505050565b6009546000908190670de0b6b3a76400006117168282611379565b82101561173257505060095492670de0b6b3a764000092509050565b90939092509050565b60008060008060008060008060006117588a600d54600e546118a7565b92509250925060006117686115b3565b9050600080600061177b8e8787876118f6565b919e509c509a509598509396509194505050505091939550919395565b60006111f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611101565b6000806117e78385611b76565b9050838110156111f25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e0565b60006118436115b3565b9050600061185183836112f7565b3060009081526002602052604090205490915061186e90826117da565b30600090815260026020526040902055505050565b6009546118909083611798565b600955600a546118a090826117da565b600a555050565b60008080806118bb606461063089896112f7565b905060006118ce60646106308a896112f7565b905060006118e6826118e08b86611798565b90611798565b9992985090965090945050505050565b600080808061190588866112f7565b9050600061191388876112f7565b9050600061192188886112f7565b90506000611933826118e08686611798565b939b939a50919850919650505050505050565b600060208083528351808285015260005b8181101561197357858101830151858201604001528201611957565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461053157600080fd5b600080604083850312156119bc57600080fd5b82356119c781611994565b946020939093013593505050565b6000806000606084860312156119ea57600080fd5b83356119f581611994565b92506020840135611a0581611994565b929592945050506040919091013590565b801515811461053157600080fd5b600060208284031215611a3657600080fd5b81356111f281611a16565b600060208284031215611a5357600080fd5b81356111f281611994565b600060208284031215611a7057600080fd5b5035919050565b60008060408385031215611a8a57600080fd5b8235611a9581611994565b91506020830135611aa581611994565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611af757600080fd5b81516111f281611994565b600080600060608486031215611b1757600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b4257600080fd5b81516111f281611a16565b634e487b7160e01b600052601160045260246000fd5b8181038181111561044757610447611b4d565b8082018082111561044757610447611b4d565b600060208284031215611b9b57600080fd5b5051919050565b600082611bbf57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611bde57611bde611b4d565b500290565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c495784516001600160a01b031683529383019391830191600101611c24565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f8e6bcef24d6ff0573a8569a2f1546567ba6f760598e7a793075f370eb881c3764736f6c63430008100033
Deployed Bytecode Sourcemap
3526:12493:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5841:83;;;;;;;;;;-1:-1:-1;5911:5:0;;;;;;;;;;;;-1:-1:-1;;;5911:5:0;;;;5841:83;;;;;;;:::i;:::-;;;;;;;;6693:161;;;;;;;;;;-1:-1:-1;6693:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6693:161:0;1023:187:1;6118:95:0;;;;;;;;;;-1:-1:-1;4091:18:0;6118:95;;;1361:25:1;;;1349:2;1334:18;6118:95:0;1215:177:1;6862:313:0;;;;;;;;;;-1:-1:-1;6862:313:0;;;;;:::i;:::-;;:::i;6027:83::-;;;;;;;;;;-1:-1:-1;6027:83:0;;4671:1;2000:36:1;;1988:2;1973:18;6027:83:0;1858:184:1;7183:103:0;;;;;;;;;;-1:-1:-1;7183:103:0;;;;;:::i;:::-;;:::i;:::-;;14124:193;;;;;;;;;;;;;:::i;6221:138::-;;;;;;;;;;-1:-1:-1;6221:138:0;;;;;:::i;:::-;;:::i;2605:148::-;;;;;;;;;;;;;:::i;4917:33::-;;;;;;;;;;-1:-1:-1;4917:33:0;;;;-1:-1:-1;;;4917:33:0;;;;;;10439:114;;;;;;;;;;-1:-1:-1;10439:114:0;;;;;:::i;:::-;;:::i;2391:79::-;;;;;;;;;;-1:-1:-1;2429:7:0;2456:6;-1:-1:-1;;;;;2456:6:0;2391:79;;;-1:-1:-1;;;;;2832:32:1;;;2814:51;;2802:2;2787:18;2391:79:0;2668:203:1;5932:87:0;;;;;;;;;;-1:-1:-1;6004:7:0;;;;;;;;;;;;-1:-1:-1;;;6004:7:0;;;;5932:87;;4232:19;;;;;;;;;;-1:-1:-1;4232:19:0;;;;-1:-1:-1;;;;;4232:19:0;;;6367:167;;;;;;;;;;-1:-1:-1;6367:167:0;;;;;:::i;:::-;;:::i;11678:::-;;;;;;;;;;-1:-1:-1;11678:167:0;;;;;:::i;:::-;;:::i;4958:34::-;;;;;;;;;;;;;;;;13918:194;;;;;;;;;;;;;:::i;4490:39::-;;;;;;;;;;-1:-1:-1;4490:39:0;;;;;;;;11971:857;;;;;;;;;;;;;:::i;6542:143::-;;;;;;;;;;-1:-1:-1;6542:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6650:18:0;;;6623:7;6650:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6542:143;11078:98;;;;;;;;;;;;;:::i;6693:161::-;6768:4;6785:39;189:10;6808:7;6817:6;6785:8;:39::i;:::-;-1:-1:-1;6842:4:0;6693:161;;;;;:::o;6862:313::-;6960:4;6977:36;6987:6;6995:9;7006:6;6977:9;:36::i;:::-;7024:121;7033:6;189:10;7055:89;7093:6;7055:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7055:19:0;;;;;;:11;:19;;;;;;;;189:10;7055:33;;;;;;;;;;:37;:89::i;:::-;7024:8;:121::i;:::-;-1:-1:-1;7163:4:0;6862:313;;;;;:::o;7183:103::-;2518:6;;-1:-1:-1;;;;;2518:6:0;189:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;;;;;;:::i;:::-;;;;;;;;;7255:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7255:23:0::1;-1:-1:-1::0;;;;7255:23:0;;::::1;::::0;;;::::1;::::0;;7183:103::o;14124:193::-;14190:14;;-1:-1:-1;;;;;14190:14:0;189:10;-1:-1:-1;;;;;14174:30:0;;14166:39;;;;;;14245:21;14277:32;14245:21;14277:12;:32::i;:::-;14155:162;14124:193::o;6221:138::-;-1:-1:-1;;;;;6334:16:0;;6287:7;6334:16;;;:7;:16;;;;;;6314:37;;:19;:37::i;2605:148::-;2518:6;;-1:-1:-1;;;;;2518:6:0;189:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;;;;;;:::i;:::-;2712:1:::1;2696:6:::0;;2675:40:::1;::::0;-1:-1:-1;;;;;2696:6:0;;::::1;::::0;2675:40:::1;::::0;2712:1;;2675:40:::1;2743:1;2726:19:::0;;-1:-1:-1;;;;;;2726:19:0::1;::::0;;2605:148::o;10439:114::-;10498:4;10523:21;10536:7;10523:12;:21::i;6367:167::-;6445:4;6462:42;189:10;6486:9;6497:6;6462:9;:42::i;11678:167::-;2518:6;;-1:-1:-1;;;;;2518:6:0;189:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;;;;;;:::i;:::-;11775:1:::1;11764:10;:12;11756:21;;;::::0;::::1;;11805:32;11833:3;11805:23;4091:18;11817:10:::0;11805:11:::1;:23::i;:::-;:27:::0;::::1;:32::i;:::-;11788:14;:49:::0;-1:-1:-1;11678:167:0:o;13918:194::-;13984:14;;-1:-1:-1;;;;;13984:14:0;189:10;-1:-1:-1;;;;;13968:30:0;;13960:39;;;;;;14010:23;14036:24;14054:4;14036:9;:24::i;:::-;14010:50;;14071:33;14088:15;14071:16;:33::i;11971:857::-;2518:6;;-1:-1:-1;;;;;2518:6:0;189:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;;;;;;:::i;:::-;12035:11:::1;::::0;-1:-1:-1;;;12035:11:0;::::1;;;12034:12;12026:47;;;::::0;-1:-1:-1;;;12026:47:0;;4017:2:1;12026:47:0::1;::::0;::::1;3999:21:1::0;4056:2;4036:18;;;4029:30;4095:25;4075:18;;;4068:53;4138:18;;12026:47:0::1;3815:347:1::0;12026:47:0::1;12195:15;:34:::0;;-1:-1:-1;;;;;;12195:34:0::1;::::0;::::1;::::0;;;;12141:42:::1;::::0;12240:58:::1;::::0;12257:4:::1;::::0;-1:-1:-1;;;;;12195:34:0::1;12272:15:::0;;::::1;;4091:18;12240:8;:58::i;:::-;12343:16;-1:-1:-1::0;;;;;12343:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12325:56:0::1;;12390:4;12397:16;-1:-1:-1::0;;;;;12397:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12325:96;::::0;-1:-1:-1;;;;;;12325:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4653:15:1;;;12325:96:0::1;::::0;::::1;4635:34:1::0;4705:15;;4685:18;;;4678:43;4570:18;;12325:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12309:13;:112:::0;;-1:-1:-1;;;;;;12309:112:0::1;-1:-1:-1::0;;;;;12309:112:0;;::::1;;::::0;;12432:15:::1;::::0;12309:112:::1;12432:15:::0;::::1;;:31;12471:21;12502:4;12508:24;12502:4:::0;12508:9:::1;:24::i;:::-;12533:1;12535::::0;12537:7:::1;2429::::0;2456:6;-1:-1:-1;;;;;2456:6:0;;2391:79;12537:7:::1;12432:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12432:129:0;;;-1:-1:-1;;;;;5091:15:1;;;12432:129:0::1;::::0;::::1;5073:34:1::0;5123:18;;;5116:34;;;;5166:18;;;5159:34;;;;5209:18;;;5202:34;5273:15;;;5252:19;;;5245:44;12545:15:0::1;5305:19:1::0;;;5298:35;5007:19;;12432:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12572:11:0::1;:18:::0;;-1:-1:-1;;;;;;;12663:28:0;;;;;;12725:12:::1;12703:19;:34:::0;12787:15:::1;::::0;12749:71:::1;::::0;-1:-1:-1;;;12749:71:0;;-1:-1:-1;;;;;12572:18:0::1;12787:15:::0;;::::1;::::0;::::1;12749:71;::::0;::::1;5829:51:1::0;-1:-1:-1;;5896:18:1;;;5889:34;12756:13:0;;;-1:-1:-1;12749:29:0::1;::::0;5802:18:1;;12749:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12015:813;11971:857::o:0;11078:98::-;2518:6;;-1:-1:-1;;;;;2518:6:0;189:10;2518:22;2510:67;;;;-1:-1:-1;;;2510:67:0;;;;;;;:::i;:::-;11140:20:::1;:28:::0;;-1:-1:-1;;11140:28:0::1;::::0;;11078:98::o;7556:335::-;-1:-1:-1;;;;;7649:19:0;;7641:68;;;;-1:-1:-1;;;7641:68:0;;6386:2:1;7641:68:0;;;6368:21:1;6425:2;6405:18;;;6398:30;6464:34;6444:18;;;6437:62;-1:-1:-1;;;6515:18:1;;;6508:34;6559:19;;7641:68:0;6184:400:1;7641:68:0;-1:-1:-1;;;;;7728:21:0;;7720:68;;;;-1:-1:-1;;;7720:68:0;;6791:2:1;7720:68:0;;;6773:21:1;6830:2;6810:18;;;6803:30;6869:34;6849:18;;;6842:62;-1:-1:-1;;;6920:18:1;;;6913:32;6962:19;;7720:68:0;6589:398:1;7720:68:0;-1:-1:-1;;;;;7799:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7851:32;;1361:25:1;;;7851:32:0;;1334:18:1;7851:32:0;;;;;;;7556:335;;;:::o;7899:2534::-;-1:-1:-1;;;;;7987:18:0;;7979:68;;;;-1:-1:-1;;;7979:68:0;;7194:2:1;7979:68:0;;;7176:21:1;7233:2;7213:18;;;7206:30;7272:34;7252:18;;;7245:62;-1:-1:-1;;;7323:18:1;;;7316:35;7368:19;;7979:68:0;6992:401:1;7979:68:0;-1:-1:-1;;;;;8076:16:0;;8068:64;;;;-1:-1:-1;;;8068:64:0;;7600:2:1;8068:64:0;;;7582:21:1;7639:2;7619:18;;;7612:30;7678:34;7658:18;;;7651:62;-1:-1:-1;;;7729:18:1;;;7722:33;7772:19;;8068:64:0;7398:399:1;8068:64:0;8160:1;8151:6;:10;8143:64;;;;-1:-1:-1;;;8143:64:0;;8004:2:1;8143:64:0;;;7986:21:1;8043:2;8023:18;;;8016:30;8082:34;8062:18;;;8055:62;-1:-1:-1;;;8133:18:1;;;8126:39;8182:19;;8143:64:0;7802:405:1;8143:64:0;8230:1;8218:9;:13;8254:1;8242:9;:13;8272:20;;;;8268:705;;;8335:15;;-1:-1:-1;;;;;8321:30:0;;;8335:15;;;;;8321:30;;;;:62;;-1:-1:-1;8369:13:0;;-1:-1:-1;;;;;8355:28:0;;;8369:13;;8355:28;;8321:62;8317:637;;;8525:16;8540:1;8525:12;:16;:::i;:::-;8479:9;8450:39;;;;:28;:39;;;;;;:91;:212;;;;-1:-1:-1;8646:16:0;8661:1;8646:12;:16;:::i;:::-;-1:-1:-1;;;;;8578:32:0;;;;;;:28;:32;;;;;;:84;8450:212;8412:363;;;;-1:-1:-1;;;8412:363:0;;8679:2:1;8412:363:0;;;8661:21:1;8718:2;8698:18;;;8691:30;8757:34;8737:18;;;8730:62;-1:-1:-1;;;8808:18:1;;;8801:51;8869:19;;8412:363:0;8477:417:1;8412:363:0;8831:9;8802:39;;;;:28;:39;;;;;;8844:12;8802:54;;;;-1:-1:-1;;;;;8883:32:0;;;;;;:47;8317:637;2429:7;2456:6;-1:-1:-1;;;;;8987:15:0;;;2456:6;;8987:15;;;;:32;;-1:-1:-1;2429:7:0;2456:6;-1:-1:-1;;;;;9006:13:0;;;2456:6;;9006:13;;8987:32;8983:1398;;;-1:-1:-1;;;;;9045:10:0;;;;;;:4;:10;;;;;;;;9044:11;:24;;;;-1:-1:-1;;;;;;9060:8:0;;;;;;:4;:8;;;;;;;;9059:9;9044:24;9036:33;;;;;;9096:13;;-1:-1:-1;;;;;9088:21:0;;;9096:13;;9088:21;:55;;;;-1:-1:-1;9127:15:0;;-1:-1:-1;;;;;9113:30:0;;;9127:15;;;;;9113:30;;9088:55;:83;;;;-1:-1:-1;;;;;;9149:22:0;;;;;;:18;:22;;;;;;;;9147:24;9088:83;:102;;;;-1:-1:-1;9175:15:0;;-1:-1:-1;;;9175:15:0;;;;9088:102;9084:663;;;9258:12;;9248:6;:22;;9240:60;;;;-1:-1:-1;;;9240:60:0;;9101:2:1;9240:60:0;;;9083:21:1;9140:2;9120:18;;;9113:30;9179:27;9159:18;;;9152:55;9224:18;;9240:60:0;8899:349:1;9240:60:0;9333:18;9346:4;9333:12;:18::i;:::-;9332:19;:40;;;;;9356:16;9369:2;9356:12;:16::i;:::-;9355:17;9332:40;9328:101;;;9394:14;:12;:14::i;:::-;9393:15;9385:31;;;;-1:-1:-1;;;9385:31:0;;9455:2:1;9385:31:0;;;9437:21:1;9494:1;9474:18;;;9467:29;-1:-1:-1;;;9512:18:1;;;9505:33;9555:18;;9385:31:0;9253:326:1;9385:31:0;9463:4;;-1:-1:-1;;;;;9457:10:0;;;9463:4;;9457:10;9482:21;9457:10;9482:13;:21::i;:::-;9564:14;;9554:6;9538:13;9548:2;9538:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9530:79;;;;-1:-1:-1;;;9530:79:0;;9916:2:1;9530:79:0;;;9898:21:1;9955:2;9935:18;;;9928:30;9994:28;9974:18;;;9967:56;10040:18;;9530:79:0;9714:350:1;9530:79:0;-1:-1:-1;;;;;9636:12:0;;;;;;:8;:12;;;;;;9651:15;-1:-1:-1;9628:39:0;;;;;;9701:30;:15;9720:10;9701:30;:::i;:::-;-1:-1:-1;;;;;9686:12:0;;;;;;:8;:12;;;;;:45;-1:-1:-1;9084:663:0;9807:13;;-1:-1:-1;;;;;9801:19:0;;;9807:13;;9801:19;:55;;;;-1:-1:-1;9840:15:0;;-1:-1:-1;;;;;9824:32:0;;;9840:15;;;;;9824:32;;9801:55;:85;;;;-1:-1:-1;;;;;;9862:24:0;;;;;;:18;:24;;;;;;;;9860:26;9801:85;9797:171;;;9919:1;9907:9;:13;9951:1;9939:9;:13;9797:171;9982:28;10013:24;10031:4;10013:9;:24::i;:::-;10057:6;;9982:55;;-1:-1:-1;;;;10057:6:0;;;;10056:7;:32;;;;-1:-1:-1;10075:13:0;;-1:-1:-1;;;;;10067:21:0;;;10075:13;;10067:21;;10056:32;:47;;;;-1:-1:-1;10092:11:0;;-1:-1:-1;;;10092:11:0;;;;10056:47;10052:318;;;10124:38;10141:20;10124:16;:38::i;:::-;10210:21;10253:22;;10250:105;;10300:35;10313:21;10300:12;:35::i;:::-;10105:265;10052:318;9021:1360;8983:1398;10395:30;10410:4;10415:2;10418:6;10395:14;:30::i;:::-;7899:2534;;;:::o;1246:190::-;1332:7;1368:12;1360:6;;;;1352:29;;;;-1:-1:-1;;;1352:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1392:9:0;1404:5;1408:1;1404;:5;:::i;:::-;1392:17;1246:190;-1:-1:-1;;;;;1246:190:0:o;11861:96::-;11918:14;;:31;;-1:-1:-1;;;;;11918:14:0;;;;:31;;;;;11942:6;;11918:14;:31;:14;:31;11942:6;11918:14;:31;;;;;;;;;;;;;;;;;;;7294:254;7361:7;7400;;7389;:18;;7381:73;;;;-1:-1:-1;;;7381:73:0;;10271:2:1;7381:73:0;;;10253:21:1;10310:2;10290:18;;;10283:30;10349:34;10329:18;;;10322:62;-1:-1:-1;;;10400:18:1;;;10393:40;10450:19;;7381:73:0;10069:406:1;7381:73:0;7465:19;7488:10;:8;:10::i;:::-;7465:33;-1:-1:-1;7516:24:0;:7;7465:33;7516:11;:24::i;:::-;7509:31;7294:254;-1:-1:-1;;;7294:254:0:o;10560:152::-;10621:4;10693:10;10672:4;;;;;;;;;-1:-1:-1;;;;;10672:4:0;-1:-1:-1;;;;;10672:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;10646:4;;:22;;-1:-1:-1;;;10646:22:0;;-1:-1:-1;;;;;2832:32:1;;;10646:22:0;;;2814:51:1;10646:4:0;;;;:14;;2787:18:1;;10646:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;;10560:152;-1:-1:-1;;10560:152:0:o;1444:246::-;1502:7;1526:1;1531;1526:6;1522:47;;-1:-1:-1;1556:1:0;1549:8;;1522:47;1579:9;1591:5;1595:1;1591;:5;:::i;:::-;1579:17;-1:-1:-1;1624:1:0;1615:5;1619:1;1579:17;1615:5;:::i;:::-;:10;1607:56;;;;-1:-1:-1;;;1607:56:0;;11266:2:1;1607:56:0;;;11248:21:1;11305:2;11285:18;;;11278:30;11344:34;11324:18;;;11317:62;-1:-1:-1;;;11395:18:1;;;11388:31;11436:19;;1607:56:0;11064:397:1;1698:132:0;1756:7;1783:39;1787:1;1790;1783:39;;;;;;;;;;;;;;;;;:3;:39::i;11185:483::-;5266:6;:13;;-1:-1:-1;;;;5266:13:0;-1:-1:-1;;;5266:13:0;;;11287:16:::1;::::0;;11301:1:::1;11287:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11287:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11287:16:0::1;11263:40;;11332:4;11314;11319:1;11314:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11314:23:0::1;;;-1:-1:-1::0;;;;;11314:23:0::1;;;::::0;::::1;11358:15;;;;;;;;;-1:-1:-1::0;;;;;11358:15:0::1;-1:-1:-1::0;;;;;11358:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11348:4;11353:1;11348:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11348:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11423:15:::1;::::0;11391:62:::1;::::0;11408:4:::1;::::0;11423:15:::1;::::0;::::1;;11441:11:::0;11391:8:::1;:62::i;:::-;11464:15;::::0;:196:::1;::::0;-1:-1:-1;;;11464:196:0;;:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;11464:15:0::1;::::0;:66:::1;::::0;:196:::1;::::0;11545:11;;11571:1:::1;::::0;11587:4;;11614::::1;::::0;11634:15:::1;::::0;11464:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5302:6:0;:14;;-1:-1:-1;;;;5302:14:0;;;-1:-1:-1;;;;11185:483:0:o;10936:126::-;10982:4;11045:8;;11023:19;;:30;;;;:::i;:::-;11007:12;:46;;11000:53;;10936:126;:::o;10720:209::-;10781:21;;-1:-1:-1;;;10781:21:0;;;;10780:22;:32;;;;;10806:6;10780:32;10776:145;;;10830:21;:28;;-1:-1:-1;;;;10830:28:0;-1:-1:-1;;;10830:28:0;;;10896:12;10874:19;:34;10720:209;:::o;12852:146::-;12946:44;12964:6;12972:9;12983:6;12946:17;:44::i;15583:163::-;15624:7;15645:15;15662;15681:19;:17;:19::i;:::-;15644:56;;-1:-1:-1;15644:56:0;-1:-1:-1;15718:20:0;15644:56;;15718:11;:20::i;:::-;15711:27;;;;15583:163;:::o;1838:189::-;1924:7;1959:12;1952:5;1944:28;;;;-1:-1:-1;;;1944:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1983:9:0;1995:5;1999:1;1995;:5;:::i;13006:488::-;13105:15;13122:23;13147:12;13161:23;13186:12;13200:13;13217:19;13228:7;13217:10;:19::i;:::-;-1:-1:-1;;;;;13265:15:0;;;;;;:7;:15;;;;;;13104:132;;-1:-1:-1;13104:132:0;;-1:-1:-1;13104:132:0;;-1:-1:-1;13104:132:0;-1:-1:-1;13104:132:0;-1:-1:-1;13104:132:0;-1:-1:-1;13265:28:0;;13104:132;13265:19;:28::i;:::-;-1:-1:-1;;;;;13247:15:0;;;;;;;:7;:15;;;;;;:46;;;;13325:18;;;;;;;:39;;13348:15;13325:22;:39::i;:::-;-1:-1:-1;;;;;13304:18:0;;;;;;:7;:18;;;;;:60;13376:16;13386:5;13376:9;:16::i;:::-;13403:23;13415:4;13421;13403:11;:23::i;:::-;13459:9;-1:-1:-1;;;;;13442:44:0;13451:6;-1:-1:-1;;;;;13442:44:0;;13470:15;13442:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;13442:44:0;;;;;;;;13093:401;;;;;;13006:488;;;:::o;15754:262::-;15851:7;;15804;;;;4091:18;15925:20;15851:7;4091:18;15925:11;:20::i;:::-;15915:7;:30;15911:61;;;-1:-1:-1;;15955:7:0;;;4091:18;;-1:-1:-1;15754:262:0;-1:-1:-1;15754:262:0:o;15911:61::-;15991:7;;16000;;-1:-1:-1;15754:262:0;-1:-1:-1;15754:262:0:o;14331:471::-;14390:7;14399;14408;14417;14426;14435;14456:23;14481:12;14495:13;14512:42;14524:7;14533:9;;14544;;14512:11;:42::i;:::-;14455:99;;;;;;14565:19;14588:10;:8;:10::i;:::-;14565:33;;14610:15;14627:23;14652:12;14668:46;14680:7;14689:4;14695:5;14702:11;14668;:46::i;:::-;14609:105;;-1:-1:-1;14609:105:0;-1:-1:-1;14609:105:0;-1:-1:-1;14765:15:0;;-1:-1:-1;14782:4:0;;-1:-1:-1;14788:5:0;;-1:-1:-1;;;;;14331:471:0;;;;;;;:::o;1102:136::-;1160:7;1187:43;1191:1;1194;1187:43;;;;;;;;;;;;;;;;;:3;:43::i;915:179::-;973:7;;1005:5;1009:1;1005;:5;:::i;:::-;993:17;;1034:1;1029;:6;;1021:46;;;;-1:-1:-1;;;1021:46:0;;12917:2:1;1021:46:0;;;12899:21:1;12956:2;12936:18;;;12929:30;12995:29;12975:18;;;12968:57;13042:18;;1021:46:0;12715:351:1;13502:212:0;13555:19;13578:10;:8;:10::i;:::-;13555:33;-1:-1:-1;13599:13:0;13615:22;:5;13555:33;13615:9;:22::i;:::-;13689:4;13673:22;;;;:7;:22;;;;;;13599:38;;-1:-1:-1;13673:33:0;;13599:38;13673:26;:33::i;:::-;13664:4;13648:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13502:212:0:o;13722:147::-;13800:7;;:17;;13812:4;13800:11;:17::i;:::-;13790:7;:27;13841:10;;:20;;13856:4;13841:14;:20::i;:::-;13828:10;:33;-1:-1:-1;;13722:147:0:o;14810:351::-;14903:7;;;;14956:28;14980:3;14956:19;:7;14968:6;14956:11;:19::i;:28::-;14941:43;-1:-1:-1;14995:13:0;15011:29;15036:3;15011:20;:7;15023;15011:11;:20::i;:29::-;14995:45;-1:-1:-1;15051:23:0;15077:28;14995:45;15077:17;:7;15089:4;15077:11;:17::i;:::-;:21;;:28::i;:::-;15051:54;15141:4;;-1:-1:-1;15147:5:0;;-1:-1:-1;14810:351:0;;-1:-1:-1;;;;;14810:351:0:o;15169:409::-;15279:7;;;;15335:24;:7;15347:11;15335;:24::i;:::-;15317:42;-1:-1:-1;15370:12:0;15385:21;:4;15394:11;15385:8;:21::i;:::-;15370:36;-1:-1:-1;15417:13:0;15433:22;:5;15443:11;15433:9;:22::i;:::-;15417:38;-1:-1:-1;15466:23:0;15492:28;15417:38;15492:17;:7;15504:4;15492:11;:17::i;:28::-;15539:7;;;;-1:-1:-1;15565:4:0;;-1:-1:-1;15169:409:0;;-1:-1:-1;;;;;;;15169:409:0:o;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:118::-;2133:5;2126:13;2119:21;2112:5;2109:32;2099:60;;2155:1;2152;2145:12;2170:241;2226:6;2279:2;2267:9;2258:7;2254:23;2250:32;2247:52;;;2295:1;2292;2285:12;2247:52;2334:9;2321:23;2353:28;2375:5;2353:28;:::i;2416:247::-;2475:6;2528:2;2516:9;2507:7;2503:23;2499:32;2496:52;;;2544:1;2541;2534:12;2496:52;2583:9;2570:23;2602:31;2627:5;2602:31;:::i;2876:180::-;2935:6;2988:2;2976:9;2967:7;2963:23;2959:32;2956:52;;;3004:1;3001;2994:12;2956:52;-1:-1:-1;3027:23:1;;2876:180;-1:-1:-1;2876:180:1:o;3061:388::-;3129:6;3137;3190:2;3178:9;3169:7;3165:23;3161:32;3158:52;;;3206:1;3203;3196:12;3158:52;3245:9;3232:23;3264:31;3289:5;3264:31;:::i;:::-;3314:5;-1:-1:-1;3371:2:1;3356:18;;3343:32;3384:33;3343:32;3384:33;:::i;:::-;3436:7;3426:17;;;3061:388;;;;;:::o;3454:356::-;3656:2;3638:21;;;3675:18;;;3668:30;3734:34;3729:2;3714:18;;3707:62;3801:2;3786:18;;3454:356::o;4167:251::-;4237:6;4290:2;4278:9;4269:7;4265:23;4261:32;4258:52;;;4306:1;4303;4296:12;4258:52;4338:9;4332:16;4357:31;4382:5;4357:31;:::i;5344:306::-;5432:6;5440;5448;5501:2;5489:9;5480:7;5476:23;5472:32;5469:52;;;5517:1;5514;5507:12;5469:52;5546:9;5540:16;5530:26;;5596:2;5585:9;5581:18;5575:25;5565:35;;5640:2;5629:9;5625:18;5619:25;5609:35;;5344:306;;;;;:::o;5934:245::-;6001:6;6054:2;6042:9;6033:7;6029:23;6025:32;6022:52;;;6070:1;6067;6060:12;6022:52;6102:9;6096:16;6121:28;6143:5;6121:28;:::i;8212:127::-;8273:10;8268:3;8264:20;8261:1;8254:31;8304:4;8301:1;8294:15;8328:4;8325:1;8318:15;8344:128;8411:9;;;8432:11;;;8429:37;;;8446:18;;:::i;9584:125::-;9649:9;;;9670:10;;;9667:36;;;9683:18;;:::i;10480:184::-;10550:6;10603:2;10591:9;10582:7;10578:23;10574:32;10571:52;;;10619:1;10616;10609:12;10571:52;-1:-1:-1;10642:16:1;;10480:184;-1:-1:-1;10480:184:1:o;10669:217::-;10709:1;10735;10725:132;;10779:10;10774:3;10770:20;10767:1;10760:31;10814:4;10811:1;10804:15;10842:4;10839:1;10832:15;10725:132;-1:-1:-1;10871:9:1;;10669:217::o;10891:168::-;10931:7;10997:1;10993;10989:6;10985:14;10982:1;10979:21;10974:1;10967:9;10960:17;10956:45;10953:71;;;11004:18;;:::i;:::-;-1:-1:-1;11044:9:1;;10891:168::o;11598:127::-;11659:10;11654:3;11650:20;11647:1;11640:31;11690:4;11687:1;11680:15;11714:4;11711:1;11704:15;11730:980;11992:4;12040:3;12029:9;12025:19;12071:6;12060:9;12053:25;12097:2;12135:6;12130:2;12119:9;12115:18;12108:34;12178:3;12173:2;12162:9;12158:18;12151:31;12202:6;12237;12231:13;12268:6;12260;12253:22;12306:3;12295:9;12291:19;12284:26;;12345:2;12337:6;12333:15;12319:29;;12366:1;12376:195;12390:6;12387:1;12384:13;12376:195;;;12455:13;;-1:-1:-1;;;;;12451:39:1;12439:52;;12546:15;;;;12511:12;;;;12487:1;12405:9;12376:195;;;-1:-1:-1;;;;;;;12627:32:1;;;;12622:2;12607:18;;12600:60;-1:-1:-1;;;12691:3:1;12676:19;12669:35;12588:3;11730:980;-1:-1:-1;;;11730:980:1:o
Swarm Source
ipfs://f8e6bcef24d6ff0573a8569a2f1546567ba6f760598e7a793075f370eb881c37
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.