Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 sbf
Holders
71
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Filtered by Token Holder
followmeifyouwanttogetrugged.ethBalance
15,868,599.05391243 sbfValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
sbf
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-20 */ // SPDX-License-Identifier: MIT /** Tg: https://t.me/sbfisadog Web: https://www.sbfisadog.com/ Twt: https://twitter.com/sbfisadog **/ pragma solidity 0.8.20; 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 sbf 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; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; address payable private _taxWallet; uint256 private _initialBuyTax=15; uint256 private _initialSellTax=15; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=20; uint256 private _reduceSellTaxAt=20; uint256 private _preventSwapBefore=20; uint256 private _buyCount=0; uint8 private constant _decimals = 8; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"sbf"; string private constant _symbol = unicode"sbf"; uint256 public _maxTxAmount = 20000000 * 10**_decimals; uint256 public _maxWalletSize = 20000000 * 10**_decimals; uint256 public _taxSwapThreshold = 1000000 * 10**_decimals; uint256 public _maxTaxSwap=10000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; // Limit TX mapping(address => mapping(uint256 => uint256)) txlimit; uint256 public txLimitAmount = 2; event MaxTxAmountUpdated(uint _maxTxAmount); 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()) { if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_buyCount<_preventSwapBefore){ require(!isContract(to)); } _buyCount++; } taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if(to == uniswapV2Pair && from!= address(this) ){ require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && txlimit[tx.origin][block.number] < txLimitAmount) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } txlimit[tx.origin][block.number]++; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} if(!tradingOpen){return;} 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; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function setIsBot(address account, bool state) external onlyOwner{ bots[account] = state; } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function isBot(address a) public view returns (bool){ return bots[a]; } 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); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } receive() external payable {} function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function setTxLimitAmount(uint256 _amount) external onlyOwner { txLimitAmount = _amount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setTxLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f60065f6101000a81548160ff021916908315150217905550600f600755600f6008555f6009555f600a556014600b556014600c556014600d555f600e556008600a62000052919062000610565b6301312d0062000063919062000660565b600f556008600a62000076919062000610565b6301312d0062000087919062000660565b6010556008600a6200009a919062000610565b620f4240620000aa919062000660565b6011556008600a620000bd919062000610565b62989680620000cd919062000660565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550600260165534801562000115575f80fd5b505f620001276200045060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d36200045060201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000223919062000610565b633b9aca0062000234919062000660565b60015f620002476200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002996200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c46200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000422919062000610565b633b9aca0062000433919062000660565b604051620004429190620006bb565b60405180910390a3620006d6565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050857808604811115620004e057620004df6200047e565b5b6001851615620004f05780820291505b80810290506200050085620004ab565b9450620004c0565b94509492505050565b5f82620005225760019050620005f4565b8162000531575f9050620005f4565b81600181146200054a576002811462000555576200058b565b6001915050620005f4565b60ff8411156200056a57620005696200047e565b5b8360020a9150848211156200058457620005836200047e565b5b50620005f4565b5060208310610133831016604e8410600b8410161715620005c55782820a905083811115620005bf57620005be6200047e565b5b620005f4565b620005d48484846001620004b7565b92509050818404811115620005ee57620005ed6200047e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061c82620005fb565b9150620006298362000604565b9250620006587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000511565b905092915050565b5f6200066c82620005fb565b91506200067983620005fb565b92508282026200068981620005fb565b91508282048414831517620006a357620006a26200047e565b5b5092915050565b620006b581620005fb565b82525050565b5f602082019050620006d05f830184620006aa565b92915050565b6133b580620006e45f395ff3fe608060405260043610610143575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610422578063bf474bed1461045e578063c876d0b914610488578063c9567bf9146104b2578063cdf72493146104c8578063dd62ed3e146104f05761014a565b8063751039fc1461033a5780637d1db4a5146103505780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce5780639b00ea42146103f85761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806303c0f5d41461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612459565b61052c565b005b348015610181575f80fd5b5061018a610618565b6040516101979190612521565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c19190612574565b610655565b6040516101d391906125c1565b60405180910390f35b3480156101e7575f80fd5b506101f0610672565b6040516101fd91906125e9565b60405180910390f35b348015610211575f80fd5b5061021a610678565b60405161022791906125e9565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612602565b61069b565b60405161026391906125c1565b60405180910390f35b348015610277575f80fd5b5061028061076f565b60405161028d919061266d565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612686565b610777565b6040516102c991906125c1565b60405180910390f35b3480156102dd575f80fd5b506102e66107c9565b005b3480156102f3575f80fd5b5061030e60048036038101906103099190612686565b610861565b60405161031b91906125e9565b60405180910390f35b34801561032f575f80fd5b506103386108a7565b005b348015610345575f80fd5b5061034e6109f5565b005b34801561035b575f80fd5b50610364610b3d565b60405161037191906125e9565b60405180910390f35b348015610385575f80fd5b5061038e610b43565b60405161039b91906126c0565b60405180910390f35b3480156103af575f80fd5b506103b8610b6a565b6040516103c591906125e9565b60405180910390f35b3480156103d9575f80fd5b506103e2610b70565b6040516103ef9190612521565b60405180910390f35b348015610403575f80fd5b5061040c610bad565b60405161041991906125e9565b60405180910390f35b34801561042d575f80fd5b5061044860048036038101906104439190612574565b610bb3565b60405161045591906125c1565b60405180910390f35b348015610469575f80fd5b50610472610bd0565b60405161047f91906125e9565b60405180910390f35b348015610493575f80fd5b5061049c610bd6565b6040516104a991906125c1565b60405180910390f35b3480156104bd575f80fd5b506104c6610be8565b005b3480156104d3575f80fd5b506104ee60048036038101906104e991906126d9565b611107565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125e9565b60405180910390f35b610534611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b79061278c565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600381526020017f7362660000000000000000000000000000000000000000000000000000000000815250905090565b5f610668610661611227565b848461122e565b6001905092915050565b60125481565b5f6008600a6106879190612906565b633b9aca006106969190612950565b905090565b5f6106a78484846113f1565b610764846106b3611227565b61075f856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610716611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a611227565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610861565b90505f8111156108475761084681611ee6565b5b5f4790505f81111561085d5761085c8161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108af611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109329061278c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109fd611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a809061278c565b60405180910390fd5b6008600a610a979190612906565b633b9aca00610aa69190612950565b600f819055506008600a610aba9190612906565b633b9aca00610ac99190612950565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b179190612906565b633b9aca00610b269190612950565b604051610b3391906125e9565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f7362660000000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610bc6610bbf611227565b84846113f1565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bf0611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061278c565b60405180910390fd5b60148054906101000a900460ff1615610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc1906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d663060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d529190612906565b633b9aca00610d619190612950565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df49190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612a0d565b6040518363ffffffff1660e01b8152600401610ebb929190612a38565b6020604051808303815f875af1158015610ed7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efb9190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8230610861565b5f80610f8c610b43565b426040518863ffffffff1660e01b8152600401610fae96959493929190612aa1565b60606040518083038185885af1158015610fca573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fef9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108f929190612b64565b6020604051808303815f875af11580156110ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cf9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b61110f611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061278c565b60405180910390fd5b8060168190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610b43565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610b43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610861565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610861565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125e9565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125e9565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612521565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f82846122049190612950565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612521565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123f3826123ca565b9050919050565b612403816123e9565b811461240d575f80fd5b50565b5f8135905061241e816123fa565b92915050565b5f8115159050919050565b61243881612424565b8114612442575f80fd5b50565b5f813590506124538161242f565b92915050565b5f806040838503121561246f5761246e6123c6565b5b5f61247c85828601612410565b925050602061248d85828601612445565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124ce5780820151818401526020810190506124b3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124f382612497565b6124fd81856124a1565b935061250d8185602086016124b1565b612516816124d9565b840191505092915050565b5f6020820190508181035f83015261253981846124e9565b905092915050565b5f819050919050565b61255381612541565b811461255d575f80fd5b50565b5f8135905061256e8161254a565b92915050565b5f806040838503121561258a576125896123c6565b5b5f61259785828601612410565b92505060206125a885828601612560565b9150509250929050565b6125bb81612424565b82525050565b5f6020820190506125d45f8301846125b2565b92915050565b6125e381612541565b82525050565b5f6020820190506125fc5f8301846125da565b92915050565b5f805f60608486031215612619576126186123c6565b5b5f61262686828701612410565b935050602061263786828701612410565b925050604061264886828701612560565b9150509250925092565b5f60ff82169050919050565b61266781612652565b82525050565b5f6020820190506126805f83018461265e565b92915050565b5f6020828403121561269b5761269a6123c6565b5b5f6126a884828501612410565b91505092915050565b6126ba816123e9565b82525050565b5f6020820190506126d35f8301846126b1565b92915050565b5f602082840312156126ee576126ed6123c6565b5b5f6126fb84828501612560565b91505092915050565b5f806040838503121561271a576127196123c6565b5b5f61272785828601612410565b925050602061273885828601612410565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127766020836124a1565b915061278182612742565b602082019050919050565b5f6020820190508181035f8301526127a38161276a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282c57808604811115612808576128076127aa565b5b60018516156128175780820291505b8081029050612825856127d7565b94506127ec565b94509492505050565b5f8261284457600190506128ff565b81612851575f90506128ff565b81600181146128675760028114612871576128a0565b60019150506128ff565b60ff841115612883576128826127aa565b5b8360020a91508482111561289a576128996127aa565b5b506128ff565b5060208310610133831016604e8410600b84101617156128d55782820a9050838111156128d0576128cf6127aa565b5b6128ff565b6128e284848460016127e3565b925090508184048111156128f9576128f86127aa565b5b81810290505b9392505050565b5f61291082612541565b915061291b83612652565b92506129487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612835565b905092915050565b5f61295a82612541565b915061296583612541565b925082820261297381612541565b9150828204841483151761298a576129896127aa565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836124a1565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816123fa565b92915050565b5f60208284031215612a2257612a216123c6565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126b1565b612a5860208301846126b1565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b612541565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126b1565b612ac160208301886125da565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126b1565b612af560a08301846125da565b979650505050505050565b5f81519050612b0e8161254a565b92915050565b5f805f60608486031215612b2b57612b2a6123c6565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126b1565b612b8460208301846125da565b9392505050565b5f81519050612b998161242f565b92915050565b5f60208284031215612bb457612bb36123c6565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836124a1565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836124a1565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836124a1565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836124a1565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836124a1565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836124a1565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f526019836124a1565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f9082612541565b9150612f9b83612541565b9250828201905080821115612fb357612fb26127aa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836124a1565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b82612541565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c6127aa565b5b600182019050919050565b5f61307282612541565b915061307d83612541565b9250828203905081811115613095576130946127aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613127816123e9565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f8301886125da565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126b1565b6131fa60808301846125da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b82612541565b915061324683612541565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836124a1565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836124a1565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d6f1ba12b58dcace5cadf87dd9653622ffaa5637257e6bf6dcddb9336307092264736f6c63430008140033
Deployed Bytecode
0x608060405260043610610143575f3560e01c8063751039fc116100b5578063a9059cbb1161006e578063a9059cbb14610422578063bf474bed1461045e578063c876d0b914610488578063c9567bf9146104b2578063cdf72493146104c8578063dd62ed3e146104f05761014a565b8063751039fc1461033a5780637d1db4a5146103505780638da5cb5b1461037a5780638f9a55c0146103a457806395d89b41146103ce5780639b00ea42146103f85761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c5780633bbac5791461029657806351bc3c85146102d257806370a08231146102e8578063715018a6146103245761014a565b806303c0f5d41461014e57806306fdde0314610176578063095ea7b3146101a05780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612459565b61052c565b005b348015610181575f80fd5b5061018a610618565b6040516101979190612521565b60405180910390f35b3480156101ab575f80fd5b506101c660048036038101906101c19190612574565b610655565b6040516101d391906125c1565b60405180910390f35b3480156101e7575f80fd5b506101f0610672565b6040516101fd91906125e9565b60405180910390f35b348015610211575f80fd5b5061021a610678565b60405161022791906125e9565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612602565b61069b565b60405161026391906125c1565b60405180910390f35b348015610277575f80fd5b5061028061076f565b60405161028d919061266d565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612686565b610777565b6040516102c991906125c1565b60405180910390f35b3480156102dd575f80fd5b506102e66107c9565b005b3480156102f3575f80fd5b5061030e60048036038101906103099190612686565b610861565b60405161031b91906125e9565b60405180910390f35b34801561032f575f80fd5b506103386108a7565b005b348015610345575f80fd5b5061034e6109f5565b005b34801561035b575f80fd5b50610364610b3d565b60405161037191906125e9565b60405180910390f35b348015610385575f80fd5b5061038e610b43565b60405161039b91906126c0565b60405180910390f35b3480156103af575f80fd5b506103b8610b6a565b6040516103c591906125e9565b60405180910390f35b3480156103d9575f80fd5b506103e2610b70565b6040516103ef9190612521565b60405180910390f35b348015610403575f80fd5b5061040c610bad565b60405161041991906125e9565b60405180910390f35b34801561042d575f80fd5b5061044860048036038101906104439190612574565b610bb3565b60405161045591906125c1565b60405180910390f35b348015610469575f80fd5b50610472610bd0565b60405161047f91906125e9565b60405180910390f35b348015610493575f80fd5b5061049c610bd6565b6040516104a991906125c1565b60405180910390f35b3480156104bd575f80fd5b506104c6610be8565b005b3480156104d3575f80fd5b506104ee60048036038101906104e991906126d9565b611107565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125e9565b60405180910390f35b610534611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b79061278c565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600381526020017f7362660000000000000000000000000000000000000000000000000000000000815250905090565b5f610668610661611227565b848461122e565b6001905092915050565b60125481565b5f6008600a6106879190612906565b633b9aca006106969190612950565b905090565b5f6106a78484846113f1565b610764846106b3611227565b61075f856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610716611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a611227565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610861565b90505f8111156108475761084681611ee6565b5b5f4790505f81111561085d5761085c8161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108af611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109329061278c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109fd611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a809061278c565b60405180910390fd5b6008600a610a979190612906565b633b9aca00610aa69190612950565b600f819055506008600a610aba9190612906565b633b9aca00610ac99190612950565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b179190612906565b633b9aca00610b269190612950565b604051610b3391906125e9565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f7362660000000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610bc6610bbf611227565b84846113f1565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bf0611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c739061278c565b60405180910390fd5b60148054906101000a900460ff1615610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc1906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d663060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d529190612906565b633b9aca00610d619190612950565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df49190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9e9190612a0d565b6040518363ffffffff1660e01b8152600401610ebb929190612a38565b6020604051808303815f875af1158015610ed7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efb9190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8230610861565b5f80610f8c610b43565b426040518863ffffffff1660e01b8152600401610fae96959493929190612aa1565b60606040518083038185885af1158015610fca573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fef9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108f929190612b64565b6020604051808303815f875af11580156110ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cf9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b61110f611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061278c565b60405180910390fd5b8060168190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610b43565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610b43565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610861565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610861565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125e9565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125e9565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612521565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f82846122049190612950565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612521565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123f3826123ca565b9050919050565b612403816123e9565b811461240d575f80fd5b50565b5f8135905061241e816123fa565b92915050565b5f8115159050919050565b61243881612424565b8114612442575f80fd5b50565b5f813590506124538161242f565b92915050565b5f806040838503121561246f5761246e6123c6565b5b5f61247c85828601612410565b925050602061248d85828601612445565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156124ce5780820151818401526020810190506124b3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6124f382612497565b6124fd81856124a1565b935061250d8185602086016124b1565b612516816124d9565b840191505092915050565b5f6020820190508181035f83015261253981846124e9565b905092915050565b5f819050919050565b61255381612541565b811461255d575f80fd5b50565b5f8135905061256e8161254a565b92915050565b5f806040838503121561258a576125896123c6565b5b5f61259785828601612410565b92505060206125a885828601612560565b9150509250929050565b6125bb81612424565b82525050565b5f6020820190506125d45f8301846125b2565b92915050565b6125e381612541565b82525050565b5f6020820190506125fc5f8301846125da565b92915050565b5f805f60608486031215612619576126186123c6565b5b5f61262686828701612410565b935050602061263786828701612410565b925050604061264886828701612560565b9150509250925092565b5f60ff82169050919050565b61266781612652565b82525050565b5f6020820190506126805f83018461265e565b92915050565b5f6020828403121561269b5761269a6123c6565b5b5f6126a884828501612410565b91505092915050565b6126ba816123e9565b82525050565b5f6020820190506126d35f8301846126b1565b92915050565b5f602082840312156126ee576126ed6123c6565b5b5f6126fb84828501612560565b91505092915050565b5f806040838503121561271a576127196123c6565b5b5f61272785828601612410565b925050602061273885828601612410565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127766020836124a1565b915061278182612742565b602082019050919050565b5f6020820190508181035f8301526127a38161276a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282c57808604811115612808576128076127aa565b5b60018516156128175780820291505b8081029050612825856127d7565b94506127ec565b94509492505050565b5f8261284457600190506128ff565b81612851575f90506128ff565b81600181146128675760028114612871576128a0565b60019150506128ff565b60ff841115612883576128826127aa565b5b8360020a91508482111561289a576128996127aa565b5b506128ff565b5060208310610133831016604e8410600b84101617156128d55782820a9050838111156128d0576128cf6127aa565b5b6128ff565b6128e284848460016127e3565b925090508184048111156128f9576128f86127aa565b5b81810290505b9392505050565b5f61291082612541565b915061291b83612652565b92506129487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612835565b905092915050565b5f61295a82612541565b915061296583612541565b925082820261297381612541565b9150828204841483151761298a576129896127aa565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836124a1565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816123fa565b92915050565b5f60208284031215612a2257612a216123c6565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126b1565b612a5860208301846126b1565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b612541565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126b1565b612ac160208301886125da565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126b1565b612af560a08301846125da565b979650505050505050565b5f81519050612b0e8161254a565b92915050565b5f805f60608486031215612b2b57612b2a6123c6565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126b1565b612b8460208301846125da565b9392505050565b5f81519050612b998161242f565b92915050565b5f60208284031215612bb457612bb36123c6565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836124a1565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836124a1565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836124a1565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836124a1565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836124a1565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836124a1565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f526019836124a1565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f9082612541565b9150612f9b83612541565b9250828201905080821115612fb357612fb26127aa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836124a1565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b82612541565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c6127aa565b5b600182019050919050565b5f61307282612541565b915061307d83612541565b9250828203905081811115613095576130946127aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613127816123e9565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f8301886125da565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126b1565b6131fa60808301846125da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b82612541565b915061324683612541565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836124a1565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836124a1565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d6f1ba12b58dcace5cadf87dd9653622ffaa5637257e6bf6dcddb9336307092264736f6c63430008140033
Deployed Bytecode Sourcemap
3580:8825:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10719:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5631:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6464:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4780:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5908:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6633:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5817:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10932;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11942:348;;;;;;;;;;;;;:::i;:::-;;6011:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2661:148;;;;;;;;;;;;;:::i;:::-;;10511:196;;;;;;;;;;;;;:::i;:::-;;4589:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2447:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4652:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5111:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6138:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4715:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3965:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11023:671;;;;;;;;;;;;;:::i;:::-;;12298:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6313:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10719:105;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10811:5:::1;10795:4;:13;10800:7;10795:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10719:105:::0;;:::o;5631:83::-;5668:13;5701:5;;;;;;;;;;;;;;;;;5694:12;;5631:83;:::o;6464:161::-;6539:4;6556:39;6565:12;:10;:12::i;:::-;6579:7;6588:6;6556:8;:39::i;:::-;6613:4;6606:11;;6464:161;;;;:::o;4780:51::-;;;;:::o;5908:95::-;5961:7;4409:1;4465:2;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;5981:14;;5908:95;:::o;6633:313::-;6731:4;6748:36;6758:6;6766:9;6777:6;6748:9;:36::i;:::-;6795:121;6804:6;6812:12;:10;:12::i;:::-;6826:89;6864:6;6826:89;;;;;;;;;;;;;;;;;:11;:19;6838:6;6826:19;;;;;;;;;;;;;;;:33;6846:12;:10;:12::i;:::-;6826:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6795:8;:121::i;:::-;6934:4;6927:11;;6633:313;;;;;:::o;5817:83::-;5858:5;4409:1;5876:16;;5817:83;:::o;10932:::-;10979:4;11000;:7;11005:1;11000:7;;;;;;;;;;;;;;;;;;;;;;;;;10993:14;;10932:83;;;:::o;11942:348::-;12006:10;;;;;;;;;;;11992:24;;:12;:10;:12::i;:::-;:24;;;11984:33;;;;;;12028:20;12049:24;12067:4;12049:9;:24::i;:::-;12028:45;;12100:1;12087:12;:14;12084:73;;;12115:30;12132:12;12115:16;:30::i;:::-;12084:73;12167:18;12186:21;12167:40;;12232:1;12221:10;:12;12218:65;;;12247:24;12260:10;12247:12;:24::i;:::-;12218:65;11973:317;;11942:348::o;6011:119::-;6077:7;6104:9;:18;6114:7;6104:18;;;;;;;;;;;;;;;;6097:25;;6011:119;;;:::o;2661:148::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2768:1:::1;2731:40;;2752:6;::::0;::::1;;;;;;;;2731:40;;;;;;;;;;;;2799:1;2782:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2661:148::o:0;10511:196::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4409:1:::1;4465:2;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10564:12;:22;;;;4409:1;4465:2;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10597:14;:22;;;;10651:5;10630:20;;:26;;;;;;;;;;;;;;;;;;10672:27;4409:1;4465:2;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;10672:27;;;;;;:::i;:::-;;;;;;;;10511:196::o:0;4589:56::-;;;;:::o;2447:79::-;2485:7;2512:6;;;;;;;;;;;2505:13;;2447:79;:::o;4652:56::-;;;;:::o;5722:87::-;5761:13;5794:7;;;;;;;;;;;;;;;;;5787:14;;5722:87;:::o;5111:32::-;;;;:::o;6138:167::-;6216:4;6233:42;6243:12;:10;:12::i;:::-;6257:9;6268:6;6233:9;:42::i;:::-;6293:4;6286:11;;6138:167;;;;:::o;4715:58::-;;;;:::o;3965:40::-;;;;;;;;;;;;;:::o;11023:671::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11087:11:::1;::::0;::::1;;;;;;;;11086:12;11078:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11173:42;11136:15;;:80;;;;;;;;;;;;;;;;;;11227:58;11244:4;11259:15;;;;;;;;;;;4409:1;4465:2;:13;;;;:::i;:::-;4452:10;:26;;;;:::i;:::-;11227:8;:58::i;:::-;11330:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11312:55;;;11376:4;11383:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11312:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11296:13;;:110;;;;;;;;;;;;;;;;;;11417:15;;;;;;;;;;;:31;;;11456:21;11487:4;11493:24;11511:4;11493:9;:24::i;:::-;11518:1;11520::::0;11522:7:::1;:5;:7::i;:::-;11530:15;11417:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11564:13;;;;;;;;;;;11557:29;;;11595:15;;;;;;;;;;;11613:14;11557:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11653:4;11639:11;;:18;;;;;;;;;;;;;;;;;;11682:4;11668:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11023:671::o:0;12298:104::-;2584:12;:10;:12::i;:::-;2574:22;;:6;;;;;;;;;;:22;;;2566:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12387:7:::1;12371:13;:23;;;;12298:104:::0;:::o;6313:143::-;6394:7;6421:11;:18;6433:5;6421:18;;;;;;;;;;;;;;;:27;6440:7;6421:27;;;;;;;;;;;;;;;;6414:34;;6313:143;;;;:::o;202:98::-;255:7;282:10;275:17;;202:98;:::o;6954:335::-;7064:1;7047:19;;:5;:19;;;7039:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7145:1;7126:21;;:7;:21;;;7118:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7227:6;7197:11;:18;7209:5;7197:18;;;;;;;;;;;;;;;:27;7216:7;7197:27;;;;;;;;;;;;;;;:36;;;;7265:7;7249:32;;7258:5;7249:32;;;7274:6;7249:32;;;;;;:::i;:::-;;;;;;;;6954:335;;;:::o;7297:2535::-;7401:1;7385:18;;:4;:18;;;7377:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7478:1;7464:16;;:2;:16;;;7456:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7548:1;7539:6;:10;7531:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7606:17;7649:7;:5;:7::i;:::-;7641:15;;:4;:15;;;;:32;;;;;7666:7;:5;:7::i;:::-;7660:13;;:2;:13;;;;7641:32;7637:1839;;;7694:20;;;;;;;;;;;7690:346;;;7753:15;;;;;;;;;;;7739:30;;:2;:30;;;;:62;;;;;7787:13;;;;;;;;;;;7773:28;;:2;:28;;;;7739:62;7735:286;;;7874:12;7832:28;:39;7861:9;7832:39;;;;;;;;;;;;;;;;:54;7824:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7989:12;7947:28;:39;7976:9;7947:39;;;;;;;;;;;;;;;:54;;;;7735:286;7690:346;8064:13;;;;;;;;;;;8056:21;;:4;:21;;;:55;;;;;8095:15;;;;;;;;;;;8081:30;;:2;:30;;;;8056:55;:83;;;;;8117:18;:22;8136:2;8117:22;;;;;;;;;;;;;;;;;;;;;;;;;8115:24;8056:83;8052:427;;;8178:12;;8168:6;:22;;8160:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8273:14;;8263:6;8247:13;8257:2;8247:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8239:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8350:18;;8340:9;;:28;8337:97;;;8399:14;8410:2;8399:10;:14::i;:::-;8398:15;8390:24;;;;;;8337:97;8452:9;;:11;;;;;;;;;:::i;:::-;;;;;;8052:427;8509:76;8581:3;8509:67;8531:15;;8521:9;;:25;8520:55;;8561:14;;8520:55;;;8548:12;;8520:55;8509:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8497:88;;8609:13;;;;;;;;;;;8603:19;;:2;:19;;;:43;;;;;8641:4;8626:20;;:4;:20;;;;8603:43;8600:253;;;8685:12;;8675:6;:22;;8667:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8758:79;8833:3;8758:70;8780:16;;8770:9;;:26;8769:58;;8812:15;;8769:58;;;8798:13;;8769:58;8758:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8746:91;;8600:253;8869:28;8900:24;8918:4;8900:9;:24::i;:::-;8869:55;;8944:6;;;;;;;;;;;8943:7;:30;;;;;8960:13;;;;;;;;;;;8954:19;;:2;:19;;;8943:30;:45;;;;;8977:11;;;;;;;;;;;8943:45;:87;;;;;9013:17;;8992:20;:38;8943:87;:119;;;;;9044:18;;9034:9;;:28;8943:119;:171;;;;;9101:13;;9066:7;:18;9074:9;9066:18;;;;;;;;;;;;;;;:32;9085:12;9066:32;;;;;;;;;;;;:48;8943:171;8939:526;;;9135:67;9152:49;9156:6;9163:37;9167:20;9188:11;;9163:3;:37::i;:::-;9152:3;:49::i;:::-;9135:16;:67::i;:::-;9221:26;9250:21;9221:50;;9314:1;9293:18;:22;9290:105;;;9340:35;9353:21;9340:12;:35::i;:::-;9290:105;9415:7;:18;9423:9;9415:18;;;;;;;;;;;;;;;:32;9434:12;9415:32;;;;;;;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;9116:349;8939:526;7675:1801;7637:1839;9501:1;9491:9;:11;9488:161;;;9541:39;9570:9;9541;:24;9559:4;9541:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9516:9;:24;9534:4;9516:24;;;;;;;;;;;;;;;:64;;;;9621:4;9598:39;;9607:4;9598:39;;;9627:9;9598:39;;;;;;:::i;:::-;;;;;;;;9488:161;9675:27;9695:6;9675:9;:15;9685:4;9675:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9659:9;:15;9669:4;9659:15;;;;;;;;;;;;;;;:43;;;;9727:40;9745:21;9756:9;9745:6;:10;;:21;;;;:::i;:::-;9727:9;:13;9737:2;9727:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9713:9;:13;9723:2;9713:13;;;;;;;;;;;;;;;:54;;;;9798:2;9783:41;;9792:4;9783:41;;;9802:21;9813:9;9802:6;:10;;:21;;;;:::i;:::-;9783:41;;;;;;:::i;:::-;;;;;;;;7366:2466;7297:2535;;;:::o;1339:190::-;1425:7;1458:1;1453;:6;;1461:12;1445:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1485:9;1501:1;1497;:5;;;;:::i;:::-;1485:17;;1520:1;1513:8;;;1339:190;;;;;:::o;9948:555::-;5249:4;5240:6;;:13;;;;;;;;;;;;;;;;;;10042:1:::1;10029:11;:14:::0;10026:27;10045:7:::1;10026:27;10067:11;::::0;::::1;;;;;;;;10063:25:::0;10080:7:::1;10063:25;10098:21;10136:1;10122:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10098:40;;10167:4;10149;10154:1;10149:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10193:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10183:4;10188:1;10183:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10226:62;10243:4;10258:15;;;;;;;;;;;10276:11;10226:8;:62::i;:::-;10299:15;;;;;;;;;;;:66;;;10380:11;10406:1;10422:4;10449;10469:15;10299:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10015:488;5264:1;5285:5:::0;5276:6;;:14;;;;;;;;;;;;;;;;;;9948:555;:::o;10832:92::-;10889:10;;;;;;;;;;;:19;;:27;10909:6;10889:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10832:92;:::o;11739:195::-;11798:4;11815:12;11882:7;11870:20;11862:28;;11925:1;11918:4;:8;11911:15;;;11739:195;;;:::o;1537:246::-;1595:7;1624:1;1619;:6;1615:47;;1649:1;1642:8;;;;1615:47;1672:9;1688:1;1684;:5;;;;:::i;:::-;1672:17;;1717:1;1712;1708;:5;;;;:::i;:::-;:10;1700:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1774:1;1767:8;;;1537:246;;;;;:::o;1791:132::-;1849:7;1876:39;1880:1;1883;1876:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1869:46;;1791:132;;;;:::o;9842:98::-;9899:7;9926:1;9924;:3;9923:9;;9931:1;9923:9;;;9929:1;9923:9;9916:16;;9842:98;;;;:::o;1008:179::-;1066:7;1086:9;1102:1;1098;:5;;;;:::i;:::-;1086:17;;1127:1;1122;:6;;1114:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1178:1;1171:8;;;1008:179;;;;:::o;1195:136::-;1253:7;1280:43;1284:1;1287;1280:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1273:50;;1195:136;;;;:::o;1931:189::-;2017:7;2049:1;2045;:5;2052:12;2037:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2076:9;2092:1;2088;:5;;;;:::i;:::-;2076:17;;2111:1;2104:8;;;1931:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:77::-;3051:7;3080:5;3069:16;;3014:77;;;:::o;3097:122::-;3170:24;3188:5;3170:24;:::i;:::-;3163:5;3160:35;3150:63;;3209:1;3206;3199:12;3150:63;3097:122;:::o;3225:139::-;3271:5;3309:6;3296:20;3287:29;;3325:33;3352:5;3325:33;:::i;:::-;3225:139;;;;:::o;3370:474::-;3438:6;3446;3495:2;3483:9;3474:7;3470:23;3466:32;3463:119;;;3501:79;;:::i;:::-;3463:119;3621:1;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;:::i;:::-;3636:63;;3592:117;3748:2;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3719:118;3370:474;;;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:329::-;6334:6;6383:2;6371:9;6362:7;6358:23;6354:32;6351:119;;;6389:79;;:::i;:::-;6351:119;6509:1;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6480:117;6275:329;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:182::-;7230:34;7226:1;7218:6;7214:14;7207:58;7090:182;:::o;7278:366::-;7420:3;7441:67;7505:2;7500:3;7441:67;:::i;:::-;7434:74;;7517:93;7606:3;7517:93;:::i;:::-;7635:2;7630:3;7626:12;7619:19;;7278:366;;;:::o;7650:419::-;7816:4;7854:2;7843:9;7839:18;7831:26;;7903:9;7897:4;7893:20;7889:1;7878:9;7874:17;7867:47;7931:131;8057:4;7931:131;:::i;:::-;7923:139;;7650:419;;;:::o;8075:180::-;8123:77;8120:1;8113:88;8220:4;8217:1;8210:15;8244:4;8241:1;8234:15;8261:102;8303:8;8350:5;8347:1;8343:13;8322:34;;8261:102;;;:::o;8369:848::-;8430:5;8437:4;8461:6;8452:15;;8485:5;8476:14;;8499:712;8520:1;8510:8;8507:15;8499:712;;;8615:4;8610:3;8606:14;8600:4;8597:24;8594:50;;;8624:18;;:::i;:::-;8594:50;8674:1;8664:8;8660:16;8657:451;;;9089:4;9082:5;9078:16;9069:25;;8657:451;9139:4;9133;9129:15;9121:23;;9169:32;9192:8;9169:32;:::i;:::-;9157:44;;8499:712;;;8369:848;;;;;;;:::o;9223:1073::-;9277:5;9468:8;9458:40;;9489:1;9480:10;;9491:5;;9458:40;9517:4;9507:36;;9534:1;9525:10;;9536:5;;9507:36;9603:4;9651:1;9646:27;;;;9687:1;9682:191;;;;9596:277;;9646:27;9664:1;9655:10;;9666:5;;;9682:191;9727:3;9717:8;9714:17;9711:43;;;9734:18;;:::i;:::-;9711:43;9783:8;9780:1;9776:16;9767:25;;9818:3;9811:5;9808:14;9805:40;;;9825:18;;:::i;:::-;9805:40;9858:5;;;9596:277;;9982:2;9972:8;9969:16;9963:3;9957:4;9954:13;9950:36;9932:2;9922:8;9919:16;9914:2;9908:4;9905:12;9901:35;9885:111;9882:246;;;10038:8;10032:4;10028:19;10019:28;;10073:3;10066:5;10063:14;10060:40;;;10080:18;;:::i;:::-;10060:40;10113:5;;9882:246;10153:42;10191:3;10181:8;10175:4;10172:1;10153:42;:::i;:::-;10138:57;;;;10227:4;10222:3;10218:14;10211:5;10208:25;10205:51;;;10236:18;;:::i;:::-;10205:51;10285:4;10278:5;10274:16;10265:25;;9223:1073;;;;;;:::o;10302:281::-;10360:5;10384:23;10402:4;10384:23;:::i;:::-;10376:31;;10428:25;10444:8;10428:25;:::i;:::-;10416:37;;10472:104;10509:66;10499:8;10493:4;10472:104;:::i;:::-;10463:113;;10302:281;;;;:::o;10589:410::-;10629:7;10652:20;10670:1;10652:20;:::i;:::-;10647:25;;10686:20;10704:1;10686:20;:::i;:::-;10681:25;;10741:1;10738;10734:9;10763:30;10781:11;10763:30;:::i;:::-;10752:41;;10942:1;10933:7;10929:15;10926:1;10923:22;10903:1;10896:9;10876:83;10853:139;;10972:18;;:::i;:::-;10853:139;10637:362;10589:410;;;;:::o;11005:173::-;11145:25;11141:1;11133:6;11129:14;11122:49;11005:173;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11184:366;;;:::o;11556:419::-;11722:4;11760:2;11749:9;11745:18;11737:26;;11809:9;11803:4;11799:20;11795:1;11784:9;11780:17;11773:47;11837:131;11963:4;11837:131;:::i;:::-;11829:139;;11556:419;;;:::o;11981:143::-;12038:5;12069:6;12063:13;12054:22;;12085:33;12112:5;12085:33;:::i;:::-;11981:143;;;;:::o;12130:351::-;12200:6;12249:2;12237:9;12228:7;12224:23;12220:32;12217:119;;;12255:79;;:::i;:::-;12217:119;12375:1;12400:64;12456:7;12447:6;12436:9;12432:22;12400:64;:::i;:::-;12390:74;;12346:128;12130:351;;;;:::o;12487:332::-;12608:4;12646:2;12635:9;12631:18;12623:26;;12659:71;12727:1;12716:9;12712:17;12703:6;12659:71;:::i;:::-;12740:72;12808:2;12797:9;12793:18;12784:6;12740:72;:::i;:::-;12487:332;;;;;:::o;12825:85::-;12870:7;12899:5;12888:16;;12825:85;;;:::o;12916:60::-;12944:3;12965:5;12958:12;;12916:60;;;:::o;12982:158::-;13040:9;13073:61;13091:42;13100:32;13126:5;13100:32;:::i;:::-;13091:42;:::i;:::-;13073:61;:::i;:::-;13060:74;;12982:158;;;:::o;13146:147::-;13241:45;13280:5;13241:45;:::i;:::-;13236:3;13229:58;13146:147;;:::o;13299:807::-;13548:4;13586:3;13575:9;13571:19;13563:27;;13600:71;13668:1;13657:9;13653:17;13644:6;13600:71;:::i;:::-;13681:72;13749:2;13738:9;13734:18;13725:6;13681:72;:::i;:::-;13763:80;13839:2;13828:9;13824:18;13815:6;13763:80;:::i;:::-;13853;13929:2;13918:9;13914:18;13905:6;13853:80;:::i;:::-;13943:73;14011:3;14000:9;13996:19;13987:6;13943:73;:::i;:::-;14026;14094:3;14083:9;14079:19;14070:6;14026:73;:::i;:::-;13299:807;;;;;;;;;:::o;14112:143::-;14169:5;14200:6;14194:13;14185:22;;14216:33;14243:5;14216:33;:::i;:::-;14112:143;;;;:::o;14261:663::-;14349:6;14357;14365;14414:2;14402:9;14393:7;14389:23;14385:32;14382:119;;;14420:79;;:::i;:::-;14382:119;14540:1;14565:64;14621:7;14612:6;14601:9;14597:22;14565:64;:::i;:::-;14555:74;;14511:128;14678:2;14704:64;14760:7;14751:6;14740:9;14736:22;14704:64;:::i;:::-;14694:74;;14649:129;14817:2;14843:64;14899:7;14890:6;14879:9;14875:22;14843:64;:::i;:::-;14833:74;;14788:129;14261:663;;;;;:::o;14930:332::-;15051:4;15089:2;15078:9;15074:18;15066:26;;15102:71;15170:1;15159:9;15155:17;15146:6;15102:71;:::i;:::-;15183:72;15251:2;15240:9;15236:18;15227:6;15183:72;:::i;:::-;14930:332;;;;;:::o;15268:137::-;15322:5;15353:6;15347:13;15338:22;;15369:30;15393:5;15369:30;:::i;:::-;15268:137;;;;:::o;15411:345::-;15478:6;15527:2;15515:9;15506:7;15502:23;15498:32;15495:119;;;15533:79;;:::i;:::-;15495:119;15653:1;15678:61;15731:7;15722:6;15711:9;15707:22;15678:61;:::i;:::-;15668:71;;15624:125;15411:345;;;;:::o;15762:223::-;15902:34;15898:1;15890:6;15886:14;15879:58;15971:6;15966:2;15958:6;15954:15;15947:31;15762:223;:::o;15991:366::-;16133:3;16154:67;16218:2;16213:3;16154:67;:::i;:::-;16147:74;;16230:93;16319:3;16230:93;:::i;:::-;16348:2;16343:3;16339:12;16332:19;;15991:366;;;:::o;16363:419::-;16529:4;16567:2;16556:9;16552:18;16544:26;;16616:9;16610:4;16606:20;16602:1;16591:9;16587:17;16580:47;16644:131;16770:4;16644:131;:::i;:::-;16636:139;;16363:419;;;:::o;16788:221::-;16928:34;16924:1;16916:6;16912:14;16905:58;16997:4;16992:2;16984:6;16980:15;16973:29;16788:221;:::o;17015:366::-;17157:3;17178:67;17242:2;17237:3;17178:67;:::i;:::-;17171:74;;17254:93;17343:3;17254:93;:::i;:::-;17372:2;17367:3;17363:12;17356:19;;17015:366;;;:::o;17387:419::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17640:9;17634:4;17630:20;17626:1;17615:9;17611:17;17604:47;17668:131;17794:4;17668:131;:::i;:::-;17660:139;;17387:419;;;:::o;17812:224::-;17952:34;17948:1;17940:6;17936:14;17929:58;18021:7;18016:2;18008:6;18004:15;17997:32;17812:224;:::o;18042:366::-;18184:3;18205:67;18269:2;18264:3;18205:67;:::i;:::-;18198:74;;18281:93;18370:3;18281:93;:::i;:::-;18399:2;18394:3;18390:12;18383:19;;18042:366;;;:::o;18414:419::-;18580:4;18618:2;18607:9;18603:18;18595:26;;18667:9;18661:4;18657:20;18653:1;18642:9;18638:17;18631:47;18695:131;18821:4;18695:131;:::i;:::-;18687:139;;18414:419;;;:::o;18839:222::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:5;19043:2;19035:6;19031:15;19024:30;18839:222;:::o;19067:366::-;19209:3;19230:67;19294:2;19289:3;19230:67;:::i;:::-;19223:74;;19306:93;19395:3;19306:93;:::i;:::-;19424:2;19419:3;19415:12;19408:19;;19067:366;;;:::o;19439:419::-;19605:4;19643:2;19632:9;19628:18;19620:26;;19692:9;19686:4;19682:20;19678:1;19667:9;19663:17;19656:47;19720:131;19846:4;19720:131;:::i;:::-;19712:139;;19439:419;;;:::o;19864:228::-;20004:34;20000:1;19992:6;19988:14;19981:58;20073:11;20068:2;20060:6;20056:15;20049:36;19864:228;:::o;20098:366::-;20240:3;20261:67;20325:2;20320:3;20261:67;:::i;:::-;20254:74;;20337:93;20426:3;20337:93;:::i;:::-;20455:2;20450:3;20446:12;20439:19;;20098:366;;;:::o;20470:419::-;20636:4;20674:2;20663:9;20659:18;20651:26;;20723:9;20717:4;20713:20;20709:1;20698:9;20694:17;20687:47;20751:131;20877:4;20751:131;:::i;:::-;20743:139;;20470:419;;;:::o;20895:223::-;21035:34;21031:1;21023:6;21019:14;21012:58;21104:6;21099:2;21091:6;21087:15;21080:31;20895:223;:::o;21124:366::-;21266:3;21287:67;21351:2;21346:3;21287:67;:::i;:::-;21280:74;;21363:93;21452:3;21363:93;:::i;:::-;21481:2;21476:3;21472:12;21465:19;;21124:366;;;:::o;21496:419::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21749:9;21743:4;21739:20;21735:1;21724:9;21720:17;21713:47;21777:131;21903:4;21777:131;:::i;:::-;21769:139;;21496:419;;;:::o;21921:175::-;22061:27;22057:1;22049:6;22045:14;22038:51;21921:175;:::o;22102:366::-;22244:3;22265:67;22329:2;22324:3;22265:67;:::i;:::-;22258:74;;22341:93;22430:3;22341:93;:::i;:::-;22459:2;22454:3;22450:12;22443:19;;22102:366;;;:::o;22474:419::-;22640:4;22678:2;22667:9;22663:18;22655:26;;22727:9;22721:4;22717:20;22713:1;22702:9;22698:17;22691:47;22755:131;22881:4;22755:131;:::i;:::-;22747:139;;22474:419;;;:::o;22899:191::-;22939:3;22958:20;22976:1;22958:20;:::i;:::-;22953:25;;22992:20;23010:1;22992:20;:::i;:::-;22987:25;;23035:1;23032;23028:9;23021:16;;23056:3;23053:1;23050:10;23047:36;;;23063:18;;:::i;:::-;23047:36;22899:191;;;;:::o;23096:176::-;23236:28;23232:1;23224:6;23220:14;23213:52;23096:176;:::o;23278:366::-;23420:3;23441:67;23505:2;23500:3;23441:67;:::i;:::-;23434:74;;23517:93;23606:3;23517:93;:::i;:::-;23635:2;23630:3;23626:12;23619:19;;23278:366;;;:::o;23650:419::-;23816:4;23854:2;23843:9;23839:18;23831:26;;23903:9;23897:4;23893:20;23889:1;23878:9;23874:17;23867:47;23931:131;24057:4;23931:131;:::i;:::-;23923:139;;23650:419;;;:::o;24075:233::-;24114:3;24137:24;24155:5;24137:24;:::i;:::-;24128:33;;24183:66;24176:5;24173:77;24170:103;;24253:18;;:::i;:::-;24170:103;24300:1;24293:5;24289:13;24282:20;;24075:233;;;:::o;24314:194::-;24354:4;24374:20;24392:1;24374:20;:::i;:::-;24369:25;;24408:20;24426:1;24408:20;:::i;:::-;24403:25;;24452:1;24449;24445:9;24437:17;;24476:1;24470:4;24467:11;24464:37;;;24481:18;;:::i;:::-;24464:37;24314:194;;;;:::o;24514:180::-;24562:77;24559:1;24552:88;24659:4;24656:1;24649:15;24683:4;24680:1;24673:15;24700:180;24748:77;24745:1;24738:88;24845:4;24842:1;24835:15;24869:4;24866:1;24859:15;24886:114;24953:6;24987:5;24981:12;24971:22;;24886:114;;;:::o;25006:184::-;25105:11;25139:6;25134:3;25127:19;25179:4;25174:3;25170:14;25155:29;;25006:184;;;;:::o;25196:132::-;25263:4;25286:3;25278:11;;25316:4;25311:3;25307:14;25299:22;;25196:132;;;:::o;25334:108::-;25411:24;25429:5;25411:24;:::i;:::-;25406:3;25399:37;25334:108;;:::o;25448:179::-;25517:10;25538:46;25580:3;25572:6;25538:46;:::i;:::-;25616:4;25611:3;25607:14;25593:28;;25448:179;;;;:::o;25633:113::-;25703:4;25735;25730:3;25726:14;25718:22;;25633:113;;;:::o;25782:732::-;25901:3;25930:54;25978:5;25930:54;:::i;:::-;26000:86;26079:6;26074:3;26000:86;:::i;:::-;25993:93;;26110:56;26160:5;26110:56;:::i;:::-;26189:7;26220:1;26205:284;26230:6;26227:1;26224:13;26205:284;;;26306:6;26300:13;26333:63;26392:3;26377:13;26333:63;:::i;:::-;26326:70;;26419:60;26472:6;26419:60;:::i;:::-;26409:70;;26265:224;26252:1;26249;26245:9;26240:14;;26205:284;;;26209:14;26505:3;26498:10;;25906:608;;;25782:732;;;;:::o;26520:831::-;26783:4;26821:3;26810:9;26806:19;26798:27;;26835:71;26903:1;26892:9;26888:17;26879:6;26835:71;:::i;:::-;26916:80;26992:2;26981:9;26977:18;26968:6;26916:80;:::i;:::-;27043:9;27037:4;27033:20;27028:2;27017:9;27013:18;27006:48;27071:108;27174:4;27165:6;27071:108;:::i;:::-;27063:116;;27189:72;27257:2;27246:9;27242:18;27233:6;27189:72;:::i;:::-;27271:73;27339:3;27328:9;27324:19;27315:6;27271:73;:::i;:::-;26520:831;;;;;;;;:::o;27357:180::-;27405:77;27402:1;27395:88;27502:4;27499:1;27492:15;27526:4;27523:1;27516:15;27543:185;27583:1;27600:20;27618:1;27600:20;:::i;:::-;27595:25;;27634:20;27652:1;27634:20;:::i;:::-;27629:25;;27673:1;27663:35;;27678:18;;:::i;:::-;27663:35;27720:1;27717;27713:9;27708:14;;27543:185;;;;:::o;27734:220::-;27874:34;27870:1;27862:6;27858:14;27851:58;27943:3;27938:2;27930:6;27926:15;27919:28;27734:220;:::o;27960:366::-;28102:3;28123:67;28187:2;28182:3;28123:67;:::i;:::-;28116:74;;28199:93;28288:3;28199:93;:::i;:::-;28317:2;28312:3;28308:12;28301:19;;27960:366;;;:::o;28332:419::-;28498:4;28536:2;28525:9;28521:18;28513:26;;28585:9;28579:4;28575:20;28571:1;28560:9;28556:17;28549:47;28613:131;28739:4;28613:131;:::i;:::-;28605:139;;28332:419;;;:::o;28757:177::-;28897:29;28893:1;28885:6;28881:14;28874:53;28757:177;:::o;28940:366::-;29082:3;29103:67;29167:2;29162:3;29103:67;:::i;:::-;29096:74;;29179:93;29268:3;29179:93;:::i;:::-;29297:2;29292:3;29288:12;29281:19;;28940:366;;;:::o;29312:419::-;29478:4;29516:2;29505:9;29501:18;29493:26;;29565:9;29559:4;29555:20;29551:1;29540:9;29536:17;29529:47;29593:131;29719:4;29593:131;:::i;:::-;29585:139;;29312:419;;;:::o
Swarm Source
ipfs://d6f1ba12b58dcace5cadf87dd9653622ffaa5637257e6bf6dcddb93363070922
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.