ERC-20
Overview
Max Total Supply
1,000,000 FOMO4D
Holders
41
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
4,499.30753842 FOMO4DValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FOMO4D
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT /** Inspired by FOMO3D, a famous game on Ethereum chain, FOMO4D is a token which implements a buy contest to reward buyers and holders. By buying 2000 tokens or paying 200 tokens, you become the "Key Holder". If no one else buy/pay in the next 5 minutes, the prize will be sent to Key Holder when anyone buy/sell/pay. After claiming the prize, the Key Holder will be reset until someone buys/pays again. == Tokenomics == Total Supply: 1,000,000 Max Tx: 20,000 Max Wallet: 20,000 Tax: 7%/7% == How to Play == Buy 2,000 FOMO4D Tokens or Pay 200 FOMO4D Tokens via official website == Features == Dev swap 10,000 FOMO4D for tax only if there are more than 20,000 FOMO4D in contract Prize pool of 10,000 FOMO4D tokens guaranteed == Links == Telegram: https://t.me/FOMO4Derc Website: https://fomo4d.com Twitter: https://twitter.com/fomo4derc **/ pragma solidity 0.8.17; 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 FOMO4D 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; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _reduceTaxCountdown=30; uint256 private _preventSwapBefore=0; uint8 private constant _decimals = 8; uint256 private constant _tTotal = 1_000_000 * 10**_decimals; string private constant _name = "FOMO4D"; string private constant _symbol = "FOMO4D"; uint256 private _buyTax=7; uint256 private _sellTax=7; uint256 public _maxTxAmount = 20_000 * 10**_decimals; uint256 public _maxWalletSize = 20_000 * 10**_decimals; uint256 public _minTaxSwap=20_000 * 10 ** _decimals; uint256 public _taxSwapAmount=10_000* 10 **_decimals; address private _keyHolder = address(0x0); uint256 public keyMinBuy = 2_000 * 10 ** _decimals; uint256 public keyPrice = 200 * 10 ** _decimals; uint256 private _claimTime=0; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen=false; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); event PrizeClaimed(address _winner, uint256 amount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _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 allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); 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(_buyTax).div(100); if(_reduceTaxCountdown>0){_reduceTaxCountdown--;} if(hasPreviousWinner()){ claimPrize(); } // buyer become Key Holder if(amount>=keyMinBuy){ _keyHolder=to; _claimTime=block.timestamp+300; } }else if(to==uniswapV2Pair && ! _isExcludedFromFee[from]){ taxAmount = amount.mul(_sellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_minTaxSwap && _reduceTaxCountdown<=_preventSwapBefore) { swapTokensForEth(_taxSwapAmount); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } } function payToGetTheKey() external{ require(_balances[_msgSender()]>=keyPrice,"Insufficient balance"); require(_keyHolder!=_msgSender(),"You already are the key holder"); if(hasPreviousWinner()){ claimPrize(); } _balances[_msgSender()]=_balances[_msgSender()].sub(keyPrice); _balances[address(this)]=_balances[address(this)].add(keyPrice); emit Transfer(_msgSender(),address(this),keyPrice); _keyHolder=_msgSender(); _claimTime=block.timestamp+300; } function getClaimTime() public view returns (uint256){ return _claimTime; } function getKeyHolder() public view returns (address){ return _keyHolder; } function hasPreviousWinner() public view returns (bool){ return _claimTime>0&&block.timestamp>=_claimTime && _keyHolder!=address(0x0); } function claimPrize() public { require(block.timestamp>=_claimTime,"Please wait until the timer countdown"); uint256 prize=_balances[address(this)].div(2); _balances[_keyHolder]=_balances[_keyHolder].add(prize); _balances[address(this)]=_balances[address(this)].sub(prize); emit Transfer(address(this),_keyHolder,prize); emit PrizeClaimed(_keyHolder, prize); _keyHolder=address(0x0); _claimTime=0; } 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } 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()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } receive() external payable {} function manualswap() external { require(_msgSender() == _taxWallet); swapTokensForEth(balanceOf(address(this))); } function manualsend() external { require(_msgSender() == _taxWallet); sendETHToFee(address(this).balance); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
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":false,"internalType":"address","name":"_winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PrizeClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimPrize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getClaimTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getKeyHolder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasPreviousWinner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keyMinBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keyPrice","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":"payToGetTheKey","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601e6006556000600755600760085560076009556008600a6200002891906200069b565b614e20620000379190620006ec565b600a556008600a6200004a91906200069b565b614e20620000599190620006ec565b600b556008600a6200006c91906200069b565b614e206200007b9190620006ec565b600c556008600a6200008e91906200069b565b6127106200009d9190620006ec565b600d556000600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620000f291906200069b565b6107d0620001019190620006ec565b600f556008600a6200011491906200069b565b60c8620001229190620006ec565b60105560006011556000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200018857600080fd5b5060006200019b620004d060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000249620004d060201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200029991906200069b565b620f4240620002a99190620006ec565b60016000620002bd620004d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000311620004d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000444620004d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a620004a391906200069b565b620f4240620004b39190620006ec565b604051620004c2919062000748565b60405180910390a362000765565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200058f5780860481111562000567576200056662000501565b5b6001851615620005775780820291505b8081029050620005878562000530565b945062000547565b94509492505050565b600082620005aa57600190506200067d565b81620005ba57600090506200067d565b8160018114620005d35760028114620005de5762000614565b60019150506200067d565b60ff841115620005f357620005f262000501565b5b8360020a9150848211156200060d576200060c62000501565b5b506200067d565b5060208310610133831016604e8410600b84101617156200064e5782820a90508381111562000648576200064762000501565b5b6200067d565b6200065d84848460016200053d565b9250905081840481111562000677576200067662000501565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006a88262000684565b9150620006b5836200068e565b9250620006e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000598565b905092915050565b6000620006f98262000684565b9150620007068362000684565b9250828202620007168162000684565b9150828204841483151762000730576200072f62000501565b5b5092915050565b620007428162000684565b82525050565b60006020820190506200075f600083018462000737565b92915050565b613d9d80620007756000396000f3fe6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063bcb24a971161008a578063d34628cc11610064578063d34628cc1461059d578063dd62ed3e146105c6578063f4c39d9d14610603578063f5a072561461061a576101c2565b8063bcb24a9714610544578063c3c8cd801461056f578063c9567bf914610586576101c2565b80638f9a55c0116100c65780638f9a55c01461048657806395d89b41146104b1578063a9059cbb146104dc578063bbc8a4a014610519576101c2565b80637d1db4a51461040557806384a6acce146104305780638da5cb5b1461045b576101c2565b806331c2d8471161015957806370740ac91161013357806370740ac91461038357806370a082311461039a578063715018a6146103d7578063751039fc146103ee576101c2565b806331c2d847146103185780635577810c146103415780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd14610285578063300d6217146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806310e569731461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610645565b6040516101e99190612bc7565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c91565b610682565b6040516102269190612cec565b60405180910390f35b34801561023b57600080fd5b506102446106a0565b6040516102519190612d16565b60405180910390f35b34801561026657600080fd5b5061026f6106a6565b60405161027c9190612d16565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d31565b6106c9565b6040516102b99190612cec565b60405180910390f35b3480156102ce57600080fd5b506102d76107a2565b6040516102e49190612d16565b60405180910390f35b3480156102f957600080fd5b506103026107a8565b60405161030f9190612da0565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612f03565b6107b1565b005b34801561034d57600080fd5b506103566108db565b6040516103639190612f5b565b60405180910390f35b34801561037857600080fd5b50610381610905565b005b34801561038f57600080fd5b50610398610971565b005b3480156103a657600080fd5b506103c160048036038101906103bc9190612f76565b610caa565b6040516103ce9190612d16565b60405180910390f35b3480156103e357600080fd5b506103ec610cf3565b005b3480156103fa57600080fd5b50610403610e46565b005b34801561041157600080fd5b5061041a610f73565b6040516104279190612d16565b60405180910390f35b34801561043c57600080fd5b50610445610f79565b6040516104529190612cec565b60405180910390f35b34801561046757600080fd5b50610470610fee565b60405161047d9190612f5b565b60405180910390f35b34801561049257600080fd5b5061049b611017565b6040516104a89190612d16565b60405180910390f35b3480156104bd57600080fd5b506104c661101d565b6040516104d39190612bc7565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190612c91565b61105a565b6040516105109190612cec565b60405180910390f35b34801561052557600080fd5b5061052e611078565b60405161053b9190612d16565b60405180910390f35b34801561055057600080fd5b5061055961107e565b6040516105669190612d16565b60405180910390f35b34801561057b57600080fd5b50610584611084565b005b34801561059257600080fd5b5061059b6110f8565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190612f03565b61162f565b005b3480156105d257600080fd5b506105ed60048036038101906105e89190612fa3565b611759565b6040516105fa9190612d16565b60405180910390f35b34801561060f57600080fd5b506106186117e0565b005b34801561062657600080fd5b5061062f611b20565b60405161063c9190612d16565b60405180910390f35b60606040518060400160405280600681526020017f464f4d4f34440000000000000000000000000000000000000000000000000000815250905090565b600061069661068f611b2a565b8484611b32565b6001905092915050565b60105481565b60006008600a6106b69190613145565b620f42406106c49190613190565b905090565b60006106d6848484611cfb565b610797846106e2611b2a565b61079285604051806060016040528060288152602001613d4060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610748611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261f9092919063ffffffff16565b611b32565b600190509392505050565b600c5481565b60006008905090565b6107b9611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d9061321e565b60405180910390fd5b60005b81518110156108d75760006004600084848151811061086b5761086a61323e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108cf9061326d565b915050610849565b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610946611b2a565b73ffffffffffffffffffffffffffffffffffffffff161461096657600080fd5b61096f47612683565b565b6011544210156109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90613327565b60405180910390fd5b6000610a0b6002600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ef90919063ffffffff16565b9050610a818160016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b60016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b3881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bfa9190612d16565b60405180910390a37f95681e512bc0fe659e195e06c283eada494316f3d801213e48e7101af92bf770600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051610c55929190613347565b60405180910390a16000600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060118190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cfb611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061321e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e4e611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed29061321e565b60405180910390fd5b6008600a610ee99190613145565b620f4240610ef79190613190565b600a819055506008600a610f0b9190613145565b620f4240610f199190613190565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610f4e9190613145565b620f4240610f5c9190613190565b604051610f699190612d16565b60405180910390a1565b600a5481565b600080601154118015610f8e57506011544210155b8015610fe95750600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f464f4d4f34440000000000000000000000000000000000000000000000000000815250905090565b600061106e611067611b2a565b8484611cfb565b6001905092915050565b600f5481565b600d5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c5611b2a565b73ffffffffffffffffffffffffffffffffffffffff16146110e557600080fd5b6110f66110f130610caa565b6127e1565b565b611100611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111849061321e565b60405180910390fd5b601360149054906101000a900460ff16156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906133bc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061127a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6112679190613145565b620f42406112759190613190565b611b32565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130b91906133f1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b891906133f1565b6040518363ffffffff1660e01b81526004016113d592919061341e565b6020604051808303816000875af11580156113f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141891906133f1565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114a130610caa565b6000806114ac610fee565b426040518863ffffffff1660e01b81526004016114ce9695949392919061348c565b60606040518083038185885af11580156114ec573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115119190613502565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115e9929190613347565b6020604051808303816000875af1158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190613581565b50565b611637611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb9061321e565b60405180910390fd5b60005b8151811015611755576001600460008484815181106116e9576116e861323e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061174d9061326d565b9150506116c7565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601054600160006117ef611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906135fa565b60405180910390fd5b611873611b2a565b73ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990613666565b60405180910390fd5b61190a610f79565b1561191857611917610971565b5b6119736010546001600061192a611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279790919063ffffffff16565b6001600061197f611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a11601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16611a73611b2a565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601054604051611aba9190612d16565b60405180910390a3611aca611b2a565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c42611b189190613686565b601181905550565b6000601154905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b989061372c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c07906137be565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cee9190612d16565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6190613850565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd0906138e2565b60405180910390fd5b60008111611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390613974565b60405180910390fd5b6000611e26610fee565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e945750611e64610fee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561236257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f4657600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff15750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120475750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b157600a54821115612091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612088906139e0565b60405180910390fd5b600b548261209e85610caa565b6120a89190613686565b11156120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e090613a4c565b60405180910390fd5b612111606461210360085485612a5a90919063ffffffff16565b6126ef90919063ffffffff16565b905060006006541115612137576006600081548092919061213190613a6c565b91905055505b61213f610f79565b1561214d5761214c610971565b5b600f5482106121ac5782600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c426121a59190613686565b6011819055505b612289565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122585750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561228857612285606461227760095485612a5a90919063ffffffff16565b6126ef90919063ffffffff16565b90505b5b600061229430610caa565b9050601360159054906101000a900460ff161580156123015750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123195750601360169054906101000a900460ff165b80156123265750600c5481115b8015612336575060075460065411155b1561236057612346600d546127e1565b6000479050600081111561235e5761235d47612683565b5b505b505b6123b482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245b61240d828461279790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612500848661279790919063ffffffff16565b60405161250d9190612d16565b60405180910390a360008111156126195761257081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126109190612d16565b60405180910390a35b50505050565b6000838311158290612667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265e9190612bc7565b60405180910390fd5b50600083856126769190613a95565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126eb573d6000803e3d6000fd5b5050565b600061273183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad4565b905092915050565b60008082846127489190613686565b90508381101561278d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278490613b15565b60405180910390fd5b8091505092915050565b60006127d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061261f565b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561281957612818612dc0565b5b6040519080825280602002602001820160405280156128475781602001602082028036833780820191505090505b509050308160008151811061285f5761285e61323e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292a91906133f1565b8160018151811061293e5761293d61323e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129a530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b32565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a09959493929190613bf3565b600060405180830381600087803b158015612a2357600080fd5b505af1158015612a37573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6000808303612a6c5760009050612ace565b60008284612a7a9190613190565b9050828482612a899190613c7c565b14612ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac090613d1f565b60405180910390fd5b809150505b92915050565b60008083118290612b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b129190612bc7565b60405180910390fd5b5060008385612b2a9190613c7c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b71578082015181840152602081019050612b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9982612b37565b612ba38185612b42565b9350612bb3818560208601612b53565b612bbc81612b7d565b840191505092915050565b60006020820190508181036000830152612be18184612b8e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2882612bfd565b9050919050565b612c3881612c1d565b8114612c4357600080fd5b50565b600081359050612c5581612c2f565b92915050565b6000819050919050565b612c6e81612c5b565b8114612c7957600080fd5b50565b600081359050612c8b81612c65565b92915050565b60008060408385031215612ca857612ca7612bf3565b5b6000612cb685828601612c46565b9250506020612cc785828601612c7c565b9150509250929050565b60008115159050919050565b612ce681612cd1565b82525050565b6000602082019050612d016000830184612cdd565b92915050565b612d1081612c5b565b82525050565b6000602082019050612d2b6000830184612d07565b92915050565b600080600060608486031215612d4a57612d49612bf3565b5b6000612d5886828701612c46565b9350506020612d6986828701612c46565b9250506040612d7a86828701612c7c565b9150509250925092565b600060ff82169050919050565b612d9a81612d84565b82525050565b6000602082019050612db56000830184612d91565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612df882612b7d565b810181811067ffffffffffffffff82111715612e1757612e16612dc0565b5b80604052505050565b6000612e2a612be9565b9050612e368282612def565b919050565b600067ffffffffffffffff821115612e5657612e55612dc0565b5b602082029050602081019050919050565b600080fd5b6000612e7f612e7a84612e3b565b612e20565b90508083825260208201905060208402830185811115612ea257612ea1612e67565b5b835b81811015612ecb5780612eb78882612c46565b845260208401935050602081019050612ea4565b5050509392505050565b600082601f830112612eea57612ee9612dbb565b5b8135612efa848260208601612e6c565b91505092915050565b600060208284031215612f1957612f18612bf3565b5b600082013567ffffffffffffffff811115612f3757612f36612bf8565b5b612f4384828501612ed5565b91505092915050565b612f5581612c1d565b82525050565b6000602082019050612f706000830184612f4c565b92915050565b600060208284031215612f8c57612f8b612bf3565b5b6000612f9a84828501612c46565b91505092915050565b60008060408385031215612fba57612fb9612bf3565b5b6000612fc885828601612c46565b9250506020612fd985828601612c46565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156130695780860481111561304557613044612fe3565b5b60018516156130545780820291505b808102905061306285613012565b9450613029565b94509492505050565b600082613082576001905061313e565b81613090576000905061313e565b81600181146130a657600281146130b0576130df565b600191505061313e565b60ff8411156130c2576130c1612fe3565b5b8360020a9150848211156130d9576130d8612fe3565b5b5061313e565b5060208310610133831016604e8410600b84101617156131145782820a90508381111561310f5761310e612fe3565b5b61313e565b613121848484600161301f565b9250905081840481111561313857613137612fe3565b5b81810290505b9392505050565b600061315082612c5b565b915061315b83612d84565b92506131887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613072565b905092915050565b600061319b82612c5b565b91506131a683612c5b565b92508282026131b481612c5b565b915082820484148315176131cb576131ca612fe3565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613208602083612b42565b9150613213826131d2565b602082019050919050565b60006020820190508181036000830152613237816131fb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061327882612c5b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132aa576132a9612fe3565b5b600182019050919050565b7f506c65617365207761697420756e74696c207468652074696d657220636f756e60008201527f74646f776e000000000000000000000000000000000000000000000000000000602082015250565b6000613311602583612b42565b915061331c826132b5565b604082019050919050565b6000602082019050818103600083015261334081613304565b9050919050565b600060408201905061335c6000830185612f4c565b6133696020830184612d07565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006133a6601783612b42565b91506133b182613370565b602082019050919050565b600060208201905081810360008301526133d581613399565b9050919050565b6000815190506133eb81612c2f565b92915050565b60006020828403121561340757613406612bf3565b5b6000613415848285016133dc565b91505092915050565b60006040820190506134336000830185612f4c565b6134406020830184612f4c565b9392505050565b6000819050919050565b6000819050919050565b600061347661347161346c84613447565b613451565b612c5b565b9050919050565b6134868161345b565b82525050565b600060c0820190506134a16000830189612f4c565b6134ae6020830188612d07565b6134bb604083018761347d565b6134c8606083018661347d565b6134d56080830185612f4c565b6134e260a0830184612d07565b979650505050505050565b6000815190506134fc81612c65565b92915050565b60008060006060848603121561351b5761351a612bf3565b5b6000613529868287016134ed565b935050602061353a868287016134ed565b925050604061354b868287016134ed565b9150509250925092565b61355e81612cd1565b811461356957600080fd5b50565b60008151905061357b81613555565b92915050565b60006020828403121561359757613596612bf3565b5b60006135a58482850161356c565b91505092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006135e4601483612b42565b91506135ef826135ae565b602082019050919050565b60006020820190508181036000830152613613816135d7565b9050919050565b7f596f7520616c72656164792061726520746865206b657920686f6c6465720000600082015250565b6000613650601e83612b42565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b600061369182612c5b565b915061369c83612c5b565b92508282019050808211156136b4576136b3612fe3565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613716602483612b42565b9150613721826136ba565b604082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a8602283612b42565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061383a602583612b42565b9150613845826137de565b604082019050919050565b600060208201905081810360008301526138698161382d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138cc602383612b42565b91506138d782613870565b604082019050919050565b600060208201905081810360008301526138fb816138bf565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061395e602983612b42565b915061396982613902565b604082019050919050565b6000602082019050818103600083015261398d81613951565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006139ca601983612b42565b91506139d582613994565b602082019050919050565b600060208201905081810360008301526139f9816139bd565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613a36601a83612b42565b9150613a4182613a00565b602082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b6000613a7782612c5b565b915060008203613a8a57613a89612fe3565b5b600182039050919050565b6000613aa082612c5b565b9150613aab83612c5b565b9250828203905081811115613ac357613ac2612fe3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aff601b83612b42565b9150613b0a82613ac9565b602082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6a81612c1d565b82525050565b6000613b7c8383613b61565b60208301905092915050565b6000602082019050919050565b6000613ba082613b35565b613baa8185613b40565b9350613bb583613b51565b8060005b83811015613be6578151613bcd8882613b70565b9750613bd883613b88565b925050600181019050613bb9565b5085935050505092915050565b600060a082019050613c086000830188612d07565b613c15602083018761347d565b8181036040830152613c278186613b95565b9050613c366060830185612f4c565b613c436080830184612d07565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8782612c5b565b9150613c9283612c5b565b925082613ca257613ca1613c4d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d09602183612b42565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2f63809a4af3dd9745ed20d1cf9cb0092fff0d574c21a317d8c78b0fce18b8f64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063bcb24a971161008a578063d34628cc11610064578063d34628cc1461059d578063dd62ed3e146105c6578063f4c39d9d14610603578063f5a072561461061a576101c2565b8063bcb24a9714610544578063c3c8cd801461056f578063c9567bf914610586576101c2565b80638f9a55c0116100c65780638f9a55c01461048657806395d89b41146104b1578063a9059cbb146104dc578063bbc8a4a014610519576101c2565b80637d1db4a51461040557806384a6acce146104305780638da5cb5b1461045b576101c2565b806331c2d8471161015957806370740ac91161013357806370740ac91461038357806370a082311461039a578063715018a6146103d7578063751039fc146103ee576101c2565b806331c2d847146103185780635577810c146103415780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd14610285578063300d6217146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f257806310e569731461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610645565b6040516101e99190612bc7565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c91565b610682565b6040516102269190612cec565b60405180910390f35b34801561023b57600080fd5b506102446106a0565b6040516102519190612d16565b60405180910390f35b34801561026657600080fd5b5061026f6106a6565b60405161027c9190612d16565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d31565b6106c9565b6040516102b99190612cec565b60405180910390f35b3480156102ce57600080fd5b506102d76107a2565b6040516102e49190612d16565b60405180910390f35b3480156102f957600080fd5b506103026107a8565b60405161030f9190612da0565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190612f03565b6107b1565b005b34801561034d57600080fd5b506103566108db565b6040516103639190612f5b565b60405180910390f35b34801561037857600080fd5b50610381610905565b005b34801561038f57600080fd5b50610398610971565b005b3480156103a657600080fd5b506103c160048036038101906103bc9190612f76565b610caa565b6040516103ce9190612d16565b60405180910390f35b3480156103e357600080fd5b506103ec610cf3565b005b3480156103fa57600080fd5b50610403610e46565b005b34801561041157600080fd5b5061041a610f73565b6040516104279190612d16565b60405180910390f35b34801561043c57600080fd5b50610445610f79565b6040516104529190612cec565b60405180910390f35b34801561046757600080fd5b50610470610fee565b60405161047d9190612f5b565b60405180910390f35b34801561049257600080fd5b5061049b611017565b6040516104a89190612d16565b60405180910390f35b3480156104bd57600080fd5b506104c661101d565b6040516104d39190612bc7565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190612c91565b61105a565b6040516105109190612cec565b60405180910390f35b34801561052557600080fd5b5061052e611078565b60405161053b9190612d16565b60405180910390f35b34801561055057600080fd5b5061055961107e565b6040516105669190612d16565b60405180910390f35b34801561057b57600080fd5b50610584611084565b005b34801561059257600080fd5b5061059b6110f8565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190612f03565b61162f565b005b3480156105d257600080fd5b506105ed60048036038101906105e89190612fa3565b611759565b6040516105fa9190612d16565b60405180910390f35b34801561060f57600080fd5b506106186117e0565b005b34801561062657600080fd5b5061062f611b20565b60405161063c9190612d16565b60405180910390f35b60606040518060400160405280600681526020017f464f4d4f34440000000000000000000000000000000000000000000000000000815250905090565b600061069661068f611b2a565b8484611b32565b6001905092915050565b60105481565b60006008600a6106b69190613145565b620f42406106c49190613190565b905090565b60006106d6848484611cfb565b610797846106e2611b2a565b61079285604051806060016040528060288152602001613d4060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610748611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261f9092919063ffffffff16565b611b32565b600190509392505050565b600c5481565b60006008905090565b6107b9611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d9061321e565b60405180910390fd5b60005b81518110156108d75760006004600084848151811061086b5761086a61323e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108cf9061326d565b915050610849565b5050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610946611b2a565b73ffffffffffffffffffffffffffffffffffffffff161461096657600080fd5b61096f47612683565b565b6011544210156109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ad90613327565b60405180910390fd5b6000610a0b6002600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ef90919063ffffffff16565b9050610a818160016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b60016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b3881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bfa9190612d16565b60405180910390a37f95681e512bc0fe659e195e06c283eada494316f3d801213e48e7101af92bf770600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051610c55929190613347565b60405180910390a16000600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060118190555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cfb611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f9061321e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e4e611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed29061321e565b60405180910390fd5b6008600a610ee99190613145565b620f4240610ef79190613190565b600a819055506008600a610f0b9190613145565b620f4240610f199190613190565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610f4e9190613145565b620f4240610f5c9190613190565b604051610f699190612d16565b60405180910390a1565b600a5481565b600080601154118015610f8e57506011544210155b8015610fe95750600073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600681526020017f464f4d4f34440000000000000000000000000000000000000000000000000000815250905090565b600061106e611067611b2a565b8484611cfb565b6001905092915050565b600f5481565b600d5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c5611b2a565b73ffffffffffffffffffffffffffffffffffffffff16146110e557600080fd5b6110f66110f130610caa565b6127e1565b565b611100611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461118d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111849061321e565b60405180910390fd5b601360149054906101000a900460ff16156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906133bc565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061127a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6112679190613145565b620f42406112759190613190565b611b32565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130b91906133f1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b891906133f1565b6040518363ffffffff1660e01b81526004016113d592919061341e565b6020604051808303816000875af11580156113f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141891906133f1565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114a130610caa565b6000806114ac610fee565b426040518863ffffffff1660e01b81526004016114ce9695949392919061348c565b60606040518083038185885af11580156114ec573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115119190613502565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115e9929190613347565b6020604051808303816000875af1158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190613581565b50565b611637611b2a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb9061321e565b60405180910390fd5b60005b8151811015611755576001600460008484815181106116e9576116e861323e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061174d9061326d565b9150506116c7565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601054600160006117ef611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906135fa565b60405180910390fd5b611873611b2a565b73ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f990613666565b60405180910390fd5b61190a610f79565b1561191857611917610971565b5b6119736010546001600061192a611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279790919063ffffffff16565b6001600061197f611b2a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a11601054600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16611a73611b2a565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601054604051611aba9190612d16565b60405180910390a3611aca611b2a565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c42611b189190613686565b601181905550565b6000601154905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b989061372c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c07906137be565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cee9190612d16565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6190613850565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd0906138e2565b60405180910390fd5b60008111611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390613974565b60405180910390fd5b6000611e26610fee565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e945750611e64610fee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561236257600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f3d5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f4657600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ff15750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120475750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b157600a54821115612091576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612088906139e0565b60405180910390fd5b600b548261209e85610caa565b6120a89190613686565b11156120e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e090613a4c565b60405180910390fd5b612111606461210360085485612a5a90919063ffffffff16565b6126ef90919063ffffffff16565b905060006006541115612137576006600081548092919061213190613a6c565b91905055505b61213f610f79565b1561214d5761214c610971565b5b600f5482106121ac5782600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061012c426121a59190613686565b6011819055505b612289565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122585750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561228857612285606461227760095485612a5a90919063ffffffff16565b6126ef90919063ffffffff16565b90505b5b600061229430610caa565b9050601360159054906101000a900460ff161580156123015750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156123195750601360169054906101000a900460ff165b80156123265750600c5481115b8015612336575060075460065411155b1561236057612346600d546127e1565b6000479050600081111561235e5761235d47612683565b5b505b505b6123b482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245b61240d828461279790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612500848661279790919063ffffffff16565b60405161250d9190612d16565b60405180910390a360008111156126195761257081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126109190612d16565b60405180910390a35b50505050565b6000838311158290612667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265e9190612bc7565b60405180910390fd5b50600083856126769190613a95565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126eb573d6000803e3d6000fd5b5050565b600061273183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad4565b905092915050565b60008082846127489190613686565b90508381101561278d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278490613b15565b60405180910390fd5b8091505092915050565b60006127d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061261f565b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561281957612818612dc0565b5b6040519080825280602002602001820160405280156128475781602001602082028036833780820191505090505b509050308160008151811061285f5761285e61323e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292a91906133f1565b8160018151811061293e5761293d61323e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129a530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b32565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a09959493929190613bf3565b600060405180830381600087803b158015612a2357600080fd5b505af1158015612a37573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6000808303612a6c5760009050612ace565b60008284612a7a9190613190565b9050828482612a899190613c7c565b14612ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac090613d1f565b60405180910390fd5b809150505b92915050565b60008083118290612b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b129190612bc7565b60405180910390fd5b5060008385612b2a9190613c7c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b71578082015181840152602081019050612b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b9982612b37565b612ba38185612b42565b9350612bb3818560208601612b53565b612bbc81612b7d565b840191505092915050565b60006020820190508181036000830152612be18184612b8e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2882612bfd565b9050919050565b612c3881612c1d565b8114612c4357600080fd5b50565b600081359050612c5581612c2f565b92915050565b6000819050919050565b612c6e81612c5b565b8114612c7957600080fd5b50565b600081359050612c8b81612c65565b92915050565b60008060408385031215612ca857612ca7612bf3565b5b6000612cb685828601612c46565b9250506020612cc785828601612c7c565b9150509250929050565b60008115159050919050565b612ce681612cd1565b82525050565b6000602082019050612d016000830184612cdd565b92915050565b612d1081612c5b565b82525050565b6000602082019050612d2b6000830184612d07565b92915050565b600080600060608486031215612d4a57612d49612bf3565b5b6000612d5886828701612c46565b9350506020612d6986828701612c46565b9250506040612d7a86828701612c7c565b9150509250925092565b600060ff82169050919050565b612d9a81612d84565b82525050565b6000602082019050612db56000830184612d91565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612df882612b7d565b810181811067ffffffffffffffff82111715612e1757612e16612dc0565b5b80604052505050565b6000612e2a612be9565b9050612e368282612def565b919050565b600067ffffffffffffffff821115612e5657612e55612dc0565b5b602082029050602081019050919050565b600080fd5b6000612e7f612e7a84612e3b565b612e20565b90508083825260208201905060208402830185811115612ea257612ea1612e67565b5b835b81811015612ecb5780612eb78882612c46565b845260208401935050602081019050612ea4565b5050509392505050565b600082601f830112612eea57612ee9612dbb565b5b8135612efa848260208601612e6c565b91505092915050565b600060208284031215612f1957612f18612bf3565b5b600082013567ffffffffffffffff811115612f3757612f36612bf8565b5b612f4384828501612ed5565b91505092915050565b612f5581612c1d565b82525050565b6000602082019050612f706000830184612f4c565b92915050565b600060208284031215612f8c57612f8b612bf3565b5b6000612f9a84828501612c46565b91505092915050565b60008060408385031215612fba57612fb9612bf3565b5b6000612fc885828601612c46565b9250506020612fd985828601612c46565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156130695780860481111561304557613044612fe3565b5b60018516156130545780820291505b808102905061306285613012565b9450613029565b94509492505050565b600082613082576001905061313e565b81613090576000905061313e565b81600181146130a657600281146130b0576130df565b600191505061313e565b60ff8411156130c2576130c1612fe3565b5b8360020a9150848211156130d9576130d8612fe3565b5b5061313e565b5060208310610133831016604e8410600b84101617156131145782820a90508381111561310f5761310e612fe3565b5b61313e565b613121848484600161301f565b9250905081840481111561313857613137612fe3565b5b81810290505b9392505050565b600061315082612c5b565b915061315b83612d84565b92506131887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613072565b905092915050565b600061319b82612c5b565b91506131a683612c5b565b92508282026131b481612c5b565b915082820484148315176131cb576131ca612fe3565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613208602083612b42565b9150613213826131d2565b602082019050919050565b60006020820190508181036000830152613237816131fb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061327882612c5b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132aa576132a9612fe3565b5b600182019050919050565b7f506c65617365207761697420756e74696c207468652074696d657220636f756e60008201527f74646f776e000000000000000000000000000000000000000000000000000000602082015250565b6000613311602583612b42565b915061331c826132b5565b604082019050919050565b6000602082019050818103600083015261334081613304565b9050919050565b600060408201905061335c6000830185612f4c565b6133696020830184612d07565b9392505050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006133a6601783612b42565b91506133b182613370565b602082019050919050565b600060208201905081810360008301526133d581613399565b9050919050565b6000815190506133eb81612c2f565b92915050565b60006020828403121561340757613406612bf3565b5b6000613415848285016133dc565b91505092915050565b60006040820190506134336000830185612f4c565b6134406020830184612f4c565b9392505050565b6000819050919050565b6000819050919050565b600061347661347161346c84613447565b613451565b612c5b565b9050919050565b6134868161345b565b82525050565b600060c0820190506134a16000830189612f4c565b6134ae6020830188612d07565b6134bb604083018761347d565b6134c8606083018661347d565b6134d56080830185612f4c565b6134e260a0830184612d07565b979650505050505050565b6000815190506134fc81612c65565b92915050565b60008060006060848603121561351b5761351a612bf3565b5b6000613529868287016134ed565b935050602061353a868287016134ed565b925050604061354b868287016134ed565b9150509250925092565b61355e81612cd1565b811461356957600080fd5b50565b60008151905061357b81613555565b92915050565b60006020828403121561359757613596612bf3565b5b60006135a58482850161356c565b91505092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b60006135e4601483612b42565b91506135ef826135ae565b602082019050919050565b60006020820190508181036000830152613613816135d7565b9050919050565b7f596f7520616c72656164792061726520746865206b657920686f6c6465720000600082015250565b6000613650601e83612b42565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b600061369182612c5b565b915061369c83612c5b565b92508282019050808211156136b4576136b3612fe3565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613716602483612b42565b9150613721826136ba565b604082019050919050565b6000602082019050818103600083015261374581613709565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137a8602283612b42565b91506137b38261374c565b604082019050919050565b600060208201905081810360008301526137d78161379b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061383a602583612b42565b9150613845826137de565b604082019050919050565b600060208201905081810360008301526138698161382d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138cc602383612b42565b91506138d782613870565b604082019050919050565b600060208201905081810360008301526138fb816138bf565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061395e602983612b42565b915061396982613902565b604082019050919050565b6000602082019050818103600083015261398d81613951565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006139ca601983612b42565b91506139d582613994565b602082019050919050565b600060208201905081810360008301526139f9816139bd565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613a36601a83612b42565b9150613a4182613a00565b602082019050919050565b60006020820190508181036000830152613a6581613a29565b9050919050565b6000613a7782612c5b565b915060008203613a8a57613a89612fe3565b5b600182039050919050565b6000613aa082612c5b565b9150613aab83612c5b565b9250828203905081811115613ac357613ac2612fe3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aff601b83612b42565b9150613b0a82613ac9565b602082019050919050565b60006020820190508181036000830152613b2e81613af2565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6a81612c1d565b82525050565b6000613b7c8383613b61565b60208301905092915050565b6000602082019050919050565b6000613ba082613b35565b613baa8185613b40565b9350613bb583613b51565b8060005b83811015613be6578151613bcd8882613b70565b9750613bd883613b88565b925050600181019050613bb9565b5085935050505092915050565b600060a082019050613c086000830188612d07565b613c15602083018761347d565b8181036040830152613c278186613b95565b9050613c366060830185612f4c565b613c436080830184612d07565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8782612c5b565b9150613c9283612c5b565b925082613ca257613ca1613c4d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d09602183612b42565b9150613d1482613cad565b604082019050919050565b60006020820190508181036000830152613d3881613cfc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c2f63809a4af3dd9745ed20d1cf9cb0092fff0d574c21a317d8c78b0fce18b8f64736f6c63430008110033
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.