ERC-20
Overview
Max Total Supply
1,000,000,000 NEO
Holders
60
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 NEOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
NeoAICoin
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-05 */ /* Website : https://neooneth.com/ Telegram : https://t.me/NEOonEth Twitter : https://x.com/NEOethtoken */ // SPDX-License-Identifier: UNLICENSE pragma solidity 0.8.26; 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 NeoAICoin is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _initialBuyTax=20; uint256 private _initialSellTax=20; 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 = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = unicode"Neo Ai"; string private constant _symbol = unicode"NEO"; uint256 public _maxTxAmount = 15000000 * 10**_decimals; uint256 public _maxWalletSize = 15000000 *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; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; 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()) { require(!bots[from] && !bots[to]); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 10, "Only 10 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = 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 { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function 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; } function setFees(uint256 _buy,uint256 _sell) external{ _finalBuyTax=_buy; _finalSellTax=_sell; } receive() external payable {} function manualSend() external { require(_msgSender()==_taxWallet); uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } 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); } } }
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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601460065560146007555f6008555f6009556014600a556014600b556014600c555f600d556009600a61003791906105af565b62e4e1c061004591906105f9565b600e556009600a61005691906105af565b62e4e1c061006491906105f9565b600f556009600a61007591906105af565b620f424061008391906105f9565b6010556009600a61009491906105af565b629896806100a291906105f9565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100ec575f80fd5b505f6100fc61041060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a661041060201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f391906105af565b633b9aca0061020291906105f9565b60015f61021361041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61026361041760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061038b61041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103e791906105af565b633b9aca006103f691906105f9565b6040516104039190610649565b60405180910390a3610662565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104c05780860481111561049c5761049b61043e565b5b60018516156104ab5780820291505b80810290506104b98561046b565b9450610480565b94509492505050565b5f826104d85760019050610593565b816104e5575f9050610593565b81600181146104fb576002811461050557610534565b6001915050610593565b60ff8411156105175761051661043e565b5b8360020a91508482111561052e5761052d61043e565b5b50610593565b5060208310610133831016604e8410600b84101617156105695782820a9050838111156105645761056361043e565b5b610593565b6105768484846001610477565b9250905081840481111561058d5761058c61043e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105b98261059a565b91506105c4836105a3565b92506105f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104c9565b905092915050565b5f6106038261059a565b915061060e8361059a565b925082820261061c8161059a565b915082820484148315176106335761063261043e565b5b5092915050565b6106438161059a565b82525050565b5f60208201905061065c5f83018461063a565b92915050565b6133de8061066f5f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f9190612377565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612435565b610553565b6040516101ab919061248d565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124a6565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd91906124f3565b60405180910390f35b348015610211575f80fd5b5061021a610588565b60405161022791906124f3565b60405180910390f35b34801561023b575f80fd5b506102566004803603810190610251919061250c565b6105ab565b604051610263919061248d565b60405180910390f35b348015610277575f80fd5b5061028061067f565b60405161028d9190612577565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126d0565b610687565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612717565b6107a5565b6040516102f1919061248d565b60405180910390f35b348015610305575f80fd5b5061030e6107f7565b005b34801561031b575f80fd5b5061033660048036038101906103319190612717565b61088e565b60405161034391906124f3565b60405180910390f35b348015610357575f80fd5b506103606108d4565b005b34801561036d575f80fd5b50610376610a22565b005b348015610383575f80fd5b5061038c610b51565b60405161039991906124f3565b60405180910390f35b3480156103ad575f80fd5b506103b6610b57565b6040516103c39190612751565b60405180910390f35b3480156103d7575f80fd5b506103e0610b7e565b6040516103ed91906124f3565b60405180910390f35b348015610401575f80fd5b5061040a610b84565b6040516104179190612377565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612435565b610bc1565b604051610453919061248d565b60405180910390f35b348015610467575f80fd5b50610470610bde565b60405161047d91906124f3565b60405180910390f35b348015610491575f80fd5b5061049a610be4565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126d0565b611106565b005b3480156104cf575f80fd5b506104ea60048036038101906104e5919061276a565b611225565b6040516104f791906124f3565b60405180910390f35b34801561050b575f80fd5b506105146112a7565b005b60606040518060400160405280600681526020017f4e656f2041690000000000000000000000000000000000000000000000000000815250905090565b5f61056661055f61131f565b8484611326565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612904565b633b9aca006105a6919061294e565b905090565b5f6105b78484846114e9565b610674846105c361131f565b61066f856040518060600160405280602881526020016133816028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062661131f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df39092919063ffffffff16565b611326565b600190509392505050565b5f6009905090565b61068f61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610712906129d9565b60405180910390fd5b5f5b81518110156107a1575f60045f84848151811061073d5761073c6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071d565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083761131f565b73ffffffffffffffffffffffffffffffffffffffff1614610856575f80fd5b5f6108603061088e565b90505f8111156108745761087381611e55565b5b5f4790505f81111561088a57610889816120c0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dc61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f906129d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2a61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906129d9565b60405180910390fd5b6009600a610ac49190612904565b633b9aca00610ad3919061294e565b600e819055506009600a610ae79190612904565b633b9aca00610af6919061294e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2b9190612904565b633b9aca00610b3a919061294e565b604051610b4791906124f3565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4e454f0000000000000000000000000000000000000000000000000000000000815250905090565b5f610bd4610bcd61131f565b84846114e9565b6001905092915050565b60105481565b610bec61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906129d9565b60405180910390fd5b601360149054906101000a900460ff1615610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612a6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d643060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d509190612904565b633b9aca00610d5f919061294e565b611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df29190612aa0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9c9190612aa0565b6040518363ffffffff1660e01b8152600401610eb9929190612acb565b6020604051808303815f875af1158015610ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef99190612aa0565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f803061088e565b5f80610f8a610b57565b426040518863ffffffff1660e01b8152600401610fac96959493929190612b34565b60606040518083038185885af1158015610fc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fed9190612ba7565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108d929190612bf7565b6020604051808303815f875af11580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd9190612c48565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b61110e61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906129d9565b60405180910390fd5b5f5b815181101561122157600160045f8484815181106111bd576111bc6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061119c565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e761131f565b73ffffffffffffffffffffffffffffffffffffffff1614611306575f80fd5b5f4790505f81111561131c5761131b816120c0565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612ce3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990612d71565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114dc91906124f3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612dff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90612e8d565b60405180910390fd5b5f8111611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90612f1b565b60405180910390fd5b5f611610610b57565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561167e575061164e610b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b435760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611721575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611729575f80fd5b6117656064611757600a54600d541161174457600654611748565b6008545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611810575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611863575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191d57600e548211156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612f83565b60405180910390fd5b600f54826118ba8561088e565b6118c49190612fa1565b1115611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc9061301e565b60405180910390fd5b600d5f8154809291906119179061303c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119a557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e9576119e660646119d8600b54600d54116119c5576007546119c9565b6009545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5f6119f33061088e565b9050601360159054906101000a900460ff16158015611a5e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a765750601360169054906101000a900460ff165b8015611a83575060105481115b8015611a925750600c54600d54115b15611b4157601554431115611aa9575f6014819055505b600a60145410611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906130cd565b60405180910390fd5b611b0b611b0684611b01846011546121e8565b6121e8565b611e55565b5f4790505f811115611b2157611b20476120c0565b5b60145f815480929190611b339061303c565b919050555043601581905550505b505b5f811115611c4257611b9b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3991906124f3565b60405180910390a35b611c928260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d35611ce9828461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dd8848661225d90919063ffffffff16565b604051611de591906124f3565b60405180910390a350505050565b5f838311158290611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e319190612377565b60405180910390fd5b505f8385611e4891906130eb565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e8c57611e8b612594565b5b604051908082528060200260200182016040528015611eba5781602001602082028036833780820191505090505b50905030815f81518110611ed157611ed06129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f999190612aa0565b81600181518110611fad57611fac6129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120133060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120759594939291906131d5565b5f604051808303815f87803b15801561208c575f80fd5b505af115801561209e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612124573d5f803e3d5ffd5b5050565b5f808303612138575f9050612199565b5f8284612145919061294e565b9050828482612154919061325a565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b906132fa565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122a6565b905092915050565b5f8183116121f657826121f8565b815b905092915050565b5f80828461220e9190612fa1565b905083811015612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90613362565b60405180910390fd5b8091505092915050565b5f61229e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df3565b905092915050565b5f80831182906122ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e39190612377565b60405180910390fd5b505f83856122fa919061325a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61234982612307565b6123538185612311565b9350612363818560208601612321565b61236c8161232f565b840191505092915050565b5f6020820190508181035f83015261238f818461233f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d1826123a8565b9050919050565b6123e1816123c7565b81146123eb575f80fd5b50565b5f813590506123fc816123d8565b92915050565b5f819050919050565b61241481612402565b811461241e575f80fd5b50565b5f8135905061242f8161240b565b92915050565b5f806040838503121561244b5761244a6123a0565b5b5f612458858286016123ee565b925050602061246985828601612421565b9150509250929050565b5f8115159050919050565b61248781612473565b82525050565b5f6020820190506124a05f83018461247e565b92915050565b5f80604083850312156124bc576124bb6123a0565b5b5f6124c985828601612421565b92505060206124da85828601612421565b9150509250929050565b6124ed81612402565b82525050565b5f6020820190506125065f8301846124e4565b92915050565b5f805f60608486031215612523576125226123a0565b5b5f612530868287016123ee565b9350506020612541868287016123ee565b925050604061255286828701612421565b9150509250925092565b5f60ff82169050919050565b6125718161255c565b82525050565b5f60208201905061258a5f830184612568565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125ca8261232f565b810181811067ffffffffffffffff821117156125e9576125e8612594565b5b80604052505050565b5f6125fb612397565b905061260782826125c1565b919050565b5f67ffffffffffffffff82111561262657612625612594565b5b602082029050602081019050919050565b5f80fd5b5f61264d6126488461260c565b6125f2565b905080838252602082019050602084028301858111156126705761266f612637565b5b835b81811015612699578061268588826123ee565b845260208401935050602081019050612672565b5050509392505050565b5f82601f8301126126b7576126b6612590565b5b81356126c784826020860161263b565b91505092915050565b5f602082840312156126e5576126e46123a0565b5b5f82013567ffffffffffffffff811115612702576127016123a4565b5b61270e848285016126a3565b91505092915050565b5f6020828403121561272c5761272b6123a0565b5b5f612739848285016123ee565b91505092915050565b61274b816123c7565b82525050565b5f6020820190506127645f830184612742565b92915050565b5f80604083850312156127805761277f6123a0565b5b5f61278d858286016123ee565b925050602061279e858286016123ee565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282a57808604811115612806576128056127a8565b5b60018516156128155780820291505b8081029050612823856127d5565b94506127ea565b94509492505050565b5f8261284257600190506128fd565b8161284f575f90506128fd565b8160018114612865576002811461286f5761289e565b60019150506128fd565b60ff841115612881576128806127a8565b5b8360020a915084821115612898576128976127a8565b5b506128fd565b5060208310610133831016604e8410600b84101617156128d35782820a9050838111156128ce576128cd6127a8565b5b6128fd565b6128e084848460016127e1565b925090508184048111156128f7576128f66127a8565b5b81810290505b9392505050565b5f61290e82612402565b91506129198361255c565b92506129467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612833565b905092915050565b5f61295882612402565b915061296383612402565b925082820261297181612402565b91508282048414831517612988576129876127a8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129c3602083612311565b91506129ce8261298f565b602082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a58601783612311565b9150612a6382612a24565b602082019050919050565b5f6020820190508181035f830152612a8581612a4c565b9050919050565b5f81519050612a9a816123d8565b92915050565b5f60208284031215612ab557612ab46123a0565b5b5f612ac284828501612a8c565b91505092915050565b5f604082019050612ade5f830185612742565b612aeb6020830184612742565b9392505050565b5f819050919050565b5f819050919050565b5f612b1e612b19612b1484612af2565b612afb565b612402565b9050919050565b612b2e81612b04565b82525050565b5f60c082019050612b475f830189612742565b612b5460208301886124e4565b612b616040830187612b25565b612b6e6060830186612b25565b612b7b6080830185612742565b612b8860a08301846124e4565b979650505050505050565b5f81519050612ba18161240b565b92915050565b5f805f60608486031215612bbe57612bbd6123a0565b5b5f612bcb86828701612b93565b9350506020612bdc86828701612b93565b9250506040612bed86828701612b93565b9150509250925092565b5f604082019050612c0a5f830185612742565b612c1760208301846124e4565b9392505050565b612c2781612473565b8114612c31575f80fd5b50565b5f81519050612c4281612c1e565b92915050565b5f60208284031215612c5d57612c5c6123a0565b5b5f612c6a84828501612c34565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ccd602483612311565b9150612cd882612c73565b604082019050919050565b5f6020820190508181035f830152612cfa81612cc1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d5b602283612311565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612de9602583612311565b9150612df482612d8f565b604082019050919050565b5f6020820190508181035f830152612e1681612ddd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383612311565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f05602983612311565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6d601983612311565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b5f612fab82612402565b9150612fb683612402565b9250828201905080821115612fce57612fcd6127a8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613008601a83612311565b915061301382612fd4565b602082019050919050565b5f6020820190508181035f83015261303581612ffc565b9050919050565b5f61304682612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613078576130776127a8565b5b600182019050919050565b7f4f6e6c792031302073656c6c732070657220626c6f636b2100000000000000005f82015250565b5f6130b7601883612311565b91506130c282613083565b602082019050919050565b5f6020820190508181035f8301526130e4816130ab565b9050919050565b5f6130f582612402565b915061310083612402565b9250828203905081811115613118576131176127a8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613150816123c7565b82525050565b5f6131618383613147565b60208301905092915050565b5f602082019050919050565b5f6131838261311e565b61318d8185613128565b935061319883613138565b805f5b838110156131c85781516131af8882613156565b97506131ba8361316d565b92505060018101905061319b565b5085935050505092915050565b5f60a0820190506131e85f8301886124e4565b6131f56020830187612b25565b81810360408301526132078186613179565b90506132166060830185612742565b61322360808301846124e4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61326482612402565b915061326f83612402565b92508261327f5761327e61322d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e4602183612311565b91506132ef8261328a565b604082019050919050565b5f6020820190508181035f830152613311816132d8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61334c601b83612311565b915061335782613318565b602082019050919050565b5f6020820190508181035f83015261337981613340565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ccae849c1184d78a62adc30877899c02049dc9aefaaee93515b63f59d313962a64736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f9190612377565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612435565b610553565b6040516101ab919061248d565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124a6565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd91906124f3565b60405180910390f35b348015610211575f80fd5b5061021a610588565b60405161022791906124f3565b60405180910390f35b34801561023b575f80fd5b506102566004803603810190610251919061250c565b6105ab565b604051610263919061248d565b60405180910390f35b348015610277575f80fd5b5061028061067f565b60405161028d9190612577565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126d0565b610687565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612717565b6107a5565b6040516102f1919061248d565b60405180910390f35b348015610305575f80fd5b5061030e6107f7565b005b34801561031b575f80fd5b5061033660048036038101906103319190612717565b61088e565b60405161034391906124f3565b60405180910390f35b348015610357575f80fd5b506103606108d4565b005b34801561036d575f80fd5b50610376610a22565b005b348015610383575f80fd5b5061038c610b51565b60405161039991906124f3565b60405180910390f35b3480156103ad575f80fd5b506103b6610b57565b6040516103c39190612751565b60405180910390f35b3480156103d7575f80fd5b506103e0610b7e565b6040516103ed91906124f3565b60405180910390f35b348015610401575f80fd5b5061040a610b84565b6040516104179190612377565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612435565b610bc1565b604051610453919061248d565b60405180910390f35b348015610467575f80fd5b50610470610bde565b60405161047d91906124f3565b60405180910390f35b348015610491575f80fd5b5061049a610be4565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126d0565b611106565b005b3480156104cf575f80fd5b506104ea60048036038101906104e5919061276a565b611225565b6040516104f791906124f3565b60405180910390f35b34801561050b575f80fd5b506105146112a7565b005b60606040518060400160405280600681526020017f4e656f2041690000000000000000000000000000000000000000000000000000815250905090565b5f61056661055f61131f565b8484611326565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612904565b633b9aca006105a6919061294e565b905090565b5f6105b78484846114e9565b610674846105c361131f565b61066f856040518060600160405280602881526020016133816028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062661131f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df39092919063ffffffff16565b611326565b600190509392505050565b5f6009905090565b61068f61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610712906129d9565b60405180910390fd5b5f5b81518110156107a1575f60045f84848151811061073d5761073c6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071d565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083761131f565b73ffffffffffffffffffffffffffffffffffffffff1614610856575f80fd5b5f6108603061088e565b90505f8111156108745761087381611e55565b5b5f4790505f81111561088a57610889816120c0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dc61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f906129d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2a61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aad906129d9565b60405180910390fd5b6009600a610ac49190612904565b633b9aca00610ad3919061294e565b600e819055506009600a610ae79190612904565b633b9aca00610af6919061294e565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2b9190612904565b633b9aca00610b3a919061294e565b604051610b4791906124f3565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4e454f0000000000000000000000000000000000000000000000000000000000815250905090565b5f610bd4610bcd61131f565b84846114e9565b6001905092915050565b60105481565b610bec61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f906129d9565b60405180910390fd5b601360149054906101000a900460ff1615610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf90612a6e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d643060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d509190612904565b633b9aca00610d5f919061294e565b611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df29190612aa0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9c9190612aa0565b6040518363ffffffff1660e01b8152600401610eb9929190612acb565b6020604051808303815f875af1158015610ed5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef99190612aa0565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f803061088e565b5f80610f8a610b57565b426040518863ffffffff1660e01b8152600401610fac96959493929190612b34565b60606040518083038185885af1158015610fc8573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fed9190612ba7565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108d929190612bf7565b6020604051808303815f875af11580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd9190612c48565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b61110e61131f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906129d9565b60405180910390fd5b5f5b815181101561122157600160045f8484815181106111bd576111bc6129f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061119c565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112e761131f565b73ffffffffffffffffffffffffffffffffffffffff1614611306575f80fd5b5f4790505f81111561131c5761131b816120c0565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612ce3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990612d71565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114dc91906124f3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90612dff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc90612e8d565b60405180910390fd5b5f8111611607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fe90612f1b565b60405180910390fd5b5f611610610b57565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561167e575061164e610b57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b435760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611721575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611729575f80fd5b6117656064611757600a54600d541161174457600654611748565b6008545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611810575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611863575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191d57600e548211156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a490612f83565b60405180910390fd5b600f54826118ba8561088e565b6118c49190612fa1565b1115611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc9061301e565b60405180910390fd5b600d5f8154809291906119179061303c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119a557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e9576119e660646119d8600b54600d54116119c5576007546119c9565b6009545b8561212890919063ffffffff16565b61219f90919063ffffffff16565b90505b5f6119f33061088e565b9050601360159054906101000a900460ff16158015611a5e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a765750601360169054906101000a900460ff165b8015611a83575060105481115b8015611a925750600c54600d54115b15611b4157601554431115611aa9575f6014819055505b600a60145410611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae5906130cd565b60405180910390fd5b611b0b611b0684611b01846011546121e8565b6121e8565b611e55565b5f4790505f811115611b2157611b20476120c0565b5b60145f815480929190611b339061303c565b919050555043601581905550505b505b5f811115611c4257611b9b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3991906124f3565b60405180910390a35b611c928260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d35611ce9828461225d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dd8848661225d90919063ffffffff16565b604051611de591906124f3565b60405180910390a350505050565b5f838311158290611e3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e319190612377565b60405180910390fd5b505f8385611e4891906130eb565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e8c57611e8b612594565b5b604051908082528060200260200182016040528015611eba5781602001602082028036833780820191505090505b50905030815f81518110611ed157611ed06129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f999190612aa0565b81600181518110611fad57611fac6129f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120133060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611326565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120759594939291906131d5565b5f604051808303815f87803b15801561208c575f80fd5b505af115801561209e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612124573d5f803e3d5ffd5b5050565b5f808303612138575f9050612199565b5f8284612145919061294e565b9050828482612154919061325a565b14612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b906132fa565b60405180910390fd5b809150505b92915050565b5f6121e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122a6565b905092915050565b5f8183116121f657826121f8565b815b905092915050565b5f80828461220e9190612fa1565b905083811015612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a90613362565b60405180910390fd5b8091505092915050565b5f61229e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df3565b905092915050565b5f80831182906122ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e39190612377565b60405180910390fd5b505f83856122fa919061325a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61234982612307565b6123538185612311565b9350612363818560208601612321565b61236c8161232f565b840191505092915050565b5f6020820190508181035f83015261238f818461233f565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123d1826123a8565b9050919050565b6123e1816123c7565b81146123eb575f80fd5b50565b5f813590506123fc816123d8565b92915050565b5f819050919050565b61241481612402565b811461241e575f80fd5b50565b5f8135905061242f8161240b565b92915050565b5f806040838503121561244b5761244a6123a0565b5b5f612458858286016123ee565b925050602061246985828601612421565b9150509250929050565b5f8115159050919050565b61248781612473565b82525050565b5f6020820190506124a05f83018461247e565b92915050565b5f80604083850312156124bc576124bb6123a0565b5b5f6124c985828601612421565b92505060206124da85828601612421565b9150509250929050565b6124ed81612402565b82525050565b5f6020820190506125065f8301846124e4565b92915050565b5f805f60608486031215612523576125226123a0565b5b5f612530868287016123ee565b9350506020612541868287016123ee565b925050604061255286828701612421565b9150509250925092565b5f60ff82169050919050565b6125718161255c565b82525050565b5f60208201905061258a5f830184612568565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125ca8261232f565b810181811067ffffffffffffffff821117156125e9576125e8612594565b5b80604052505050565b5f6125fb612397565b905061260782826125c1565b919050565b5f67ffffffffffffffff82111561262657612625612594565b5b602082029050602081019050919050565b5f80fd5b5f61264d6126488461260c565b6125f2565b905080838252602082019050602084028301858111156126705761266f612637565b5b835b81811015612699578061268588826123ee565b845260208401935050602081019050612672565b5050509392505050565b5f82601f8301126126b7576126b6612590565b5b81356126c784826020860161263b565b91505092915050565b5f602082840312156126e5576126e46123a0565b5b5f82013567ffffffffffffffff811115612702576127016123a4565b5b61270e848285016126a3565b91505092915050565b5f6020828403121561272c5761272b6123a0565b5b5f612739848285016123ee565b91505092915050565b61274b816123c7565b82525050565b5f6020820190506127645f830184612742565b92915050565b5f80604083850312156127805761277f6123a0565b5b5f61278d858286016123ee565b925050602061279e858286016123ee565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561282a57808604811115612806576128056127a8565b5b60018516156128155780820291505b8081029050612823856127d5565b94506127ea565b94509492505050565b5f8261284257600190506128fd565b8161284f575f90506128fd565b8160018114612865576002811461286f5761289e565b60019150506128fd565b60ff841115612881576128806127a8565b5b8360020a915084821115612898576128976127a8565b5b506128fd565b5060208310610133831016604e8410600b84101617156128d35782820a9050838111156128ce576128cd6127a8565b5b6128fd565b6128e084848460016127e1565b925090508184048111156128f7576128f66127a8565b5b81810290505b9392505050565b5f61290e82612402565b91506129198361255c565b92506129467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612833565b905092915050565b5f61295882612402565b915061296383612402565b925082820261297181612402565b91508282048414831517612988576129876127a8565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129c3602083612311565b91506129ce8261298f565b602082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a58601783612311565b9150612a6382612a24565b602082019050919050565b5f6020820190508181035f830152612a8581612a4c565b9050919050565b5f81519050612a9a816123d8565b92915050565b5f60208284031215612ab557612ab46123a0565b5b5f612ac284828501612a8c565b91505092915050565b5f604082019050612ade5f830185612742565b612aeb6020830184612742565b9392505050565b5f819050919050565b5f819050919050565b5f612b1e612b19612b1484612af2565b612afb565b612402565b9050919050565b612b2e81612b04565b82525050565b5f60c082019050612b475f830189612742565b612b5460208301886124e4565b612b616040830187612b25565b612b6e6060830186612b25565b612b7b6080830185612742565b612b8860a08301846124e4565b979650505050505050565b5f81519050612ba18161240b565b92915050565b5f805f60608486031215612bbe57612bbd6123a0565b5b5f612bcb86828701612b93565b9350506020612bdc86828701612b93565b9250506040612bed86828701612b93565b9150509250925092565b5f604082019050612c0a5f830185612742565b612c1760208301846124e4565b9392505050565b612c2781612473565b8114612c31575f80fd5b50565b5f81519050612c4281612c1e565b92915050565b5f60208284031215612c5d57612c5c6123a0565b5b5f612c6a84828501612c34565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ccd602483612311565b9150612cd882612c73565b604082019050919050565b5f6020820190508181035f830152612cfa81612cc1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d5b602283612311565b9150612d6682612d01565b604082019050919050565b5f6020820190508181035f830152612d8881612d4f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612de9602583612311565b9150612df482612d8f565b604082019050919050565b5f6020820190508181035f830152612e1681612ddd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383612311565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f05602983612311565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f6d601983612311565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b5f612fab82612402565b9150612fb683612402565b9250828201905080821115612fce57612fcd6127a8565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613008601a83612311565b915061301382612fd4565b602082019050919050565b5f6020820190508181035f83015261303581612ffc565b9050919050565b5f61304682612402565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613078576130776127a8565b5b600182019050919050565b7f4f6e6c792031302073656c6c732070657220626c6f636b2100000000000000005f82015250565b5f6130b7601883612311565b91506130c282613083565b602082019050919050565b5f6020820190508181035f8301526130e4816130ab565b9050919050565b5f6130f582612402565b915061310083612402565b9250828203905081811115613118576131176127a8565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613150816123c7565b82525050565b5f6131618383613147565b60208301905092915050565b5f602082019050919050565b5f6131838261311e565b61318d8185613128565b935061319883613138565b805f5b838110156131c85781516131af8882613156565b97506131ba8361316d565b92505060018101905061319b565b5085935050505092915050565b5f60a0820190506131e85f8301886124e4565b6131f56020830187612b25565b81810360408301526132078186613179565b90506132166060830185612742565b61322360808301846124e4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61326482612402565b915061326f83612402565b92508261327f5761327e61322d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132e4602183612311565b91506132ef8261328a565b604082019050919050565b5f6020820190508181035f830152613311816132d8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61334c601b83612311565b915061335782613318565b602082019050919050565b5f6020820190508181035f83015261337981613340565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ccae849c1184d78a62adc30877899c02049dc9aefaaee93515b63f59d313962a64736f6c634300081a0033
Deployed Bytecode Sourcemap
3604:8456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5494:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6327:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11334:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4691:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5771:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6496:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5680:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10388:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10558:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11709:348;;;;;;;;;;;;;:::i;:::-;;5874:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2685:148;;;;;;;;;;;;;:::i;:::-;;9949:159;;;;;;;;;;;;;:::i;:::-;;4504:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2471:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4565:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5585:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4627:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10649:671;;;;;;;;;;;;;:::i;:::-;;10216:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6176:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11494:209;;;;;;;;;;;;;:::i;:::-;;5494:83;5531:13;5564:5;;;;;;;;;;;;;;;;;5557:12;;5494:83;:::o;6327:161::-;6402:4;6419:39;6428:12;:10;:12::i;:::-;6442:7;6451:6;6419:8;:39::i;:::-;6476:4;6469:11;;6327:161;;;;:::o;11334:115::-;11409:4;11396:12;:17;;;;11436:5;11422:13;:19;;;;11334:115;;:::o;4691:52::-;;;;:::o;5771:95::-;5824:7;4321:1;4377:2;:13;;;;:::i;:::-;4364:10;:26;;;;:::i;:::-;5844:14;;5771:95;:::o;6496:313::-;6594:4;6611:36;6621:6;6629:9;6640:6;6611:9;:36::i;:::-;6658:121;6667:6;6675:12;:10;:12::i;:::-;6689:89;6727:6;6689:89;;;;;;;;;;;;;;;;;:11;:19;6701:6;6689:19;;;;;;;;;;;;;;;:33;6709:12;:10;:12::i;:::-;6689:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6658:8;:121::i;:::-;6797:4;6790:11;;6496:313;;;;;:::o;5680:83::-;5721:5;4321:1;5739:16;;5680:83;:::o;10388:162::-;2608:12;:10;:12::i;:::-;2598:22;;:6;;;;;;;;;;:22;;;2590:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10461:6:::1;10456:87;10477:6;:13;10473:1;:17;10456:87;;;10528:5;10510:4;:15;10515:6;10522:1;10515:9;;;;;;;;:::i;:::-;;;;;;;;10510:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10492:3;;;;;;;10456:87;;;;10388:162:::0;:::o;10558:83::-;10605:4;10626;:7;10631:1;10626:7;;;;;;;;;;;;;;;;;;;;;;;;;10619:14;;10558:83;;;:::o;11709:348::-;11773:10;;;;;;;;;;;11759:24;;:12;:10;:12::i;:::-;:24;;;11751:33;;;;;;11795:20;11816:24;11834:4;11816:9;:24::i;:::-;11795:45;;11867:1;11854:12;:14;11851:73;;;11882:30;11899:12;11882:16;:30::i;:::-;11851:73;11934:18;11953:21;11934:40;;11999:1;11988:10;:12;11985:65;;;12014:24;12027:10;12014:12;:24::i;:::-;11985:65;11740:317;;11709:348::o;5874:119::-;5940:7;5967:9;:18;5977:7;5967:18;;;;;;;;;;;;;;;;5960:25;;5874:119;;;:::o;2685:148::-;2608:12;:10;:12::i;:::-;2598:22;;:6;;;;;;;;;;:22;;;2590:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2792:1:::1;2755:40;;2776:6;::::0;::::1;;;;;;;;2755:40;;;;;;;;;;;;2823:1;2806:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2685:148::o:0;9949:159::-;2608:12;:10;:12::i;:::-;2598:22;;:6;;;;;;;;;;:22;;;2590:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4321:1:::1;4377:2;:13;;;;:::i;:::-;4364:10;:26;;;;:::i;:::-;10002:12;:22;;;;4321:1;4377:2;:13;;;;:::i;:::-;4364:10;:26;;;;:::i;:::-;10035:14;:22;;;;10073:27;4321:1;4377:2;:13;;;;:::i;:::-;4364:10;:26;;;;:::i;:::-;10073:27;;;;;;:::i;:::-;;;;;;;;9949:159::o:0;4504:54::-;;;;:::o;2471:79::-;2509:7;2536:6;;;;;;;;;;;2529:13;;2471:79;:::o;4565:55::-;;;;:::o;5585:87::-;5624:13;5657:7;;;;;;;;;;;;;;;;;5650:14;;5585:87;:::o;6001:167::-;6079:4;6096:42;6106:12;:10;:12::i;:::-;6120:9;6131:6;6096:9;:42::i;:::-;6156:4;6149:11;;6001:167;;;;:::o;4627:57::-;;;;:::o;10649:671::-;2608:12;:10;:12::i;:::-;2598:22;;:6;;;;;;;;;;:22;;;2590:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10713:11:::1;;;;;;;;;;;10712:12;10704:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:42;10762:15;;:80;;;;;;;;;;;;;;;;;;10853:58;10870:4;10885:15;;;;;;;;;;;4321:1;4377:2;:13;;;;:::i;:::-;4364:10;:26;;;;:::i;:::-;10853:8;:58::i;:::-;10956:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10938:55;;;11002:4;11009:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10938:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10922:13;;:110;;;;;;;;;;;;;;;;;;11043:15;;;;;;;;;;;:31;;;11082:21;11113:4;11119:24;11137:4;11119:9;:24::i;:::-;11144:1;11146::::0;11148:7:::1;:5;:7::i;:::-;11156:15;11043:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11190:13;;;;;;;;;;;11183:29;;;11221:15;;;;;;;;;;;11239:14;11183:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11279:4;11265:11;;:18;;;;;;;;;;;;;;;;;;11308:4;11294:11;;:18;;;;;;;;;;;;;;;;;;10649:671::o:0;10216:164::-;2608:12;:10;:12::i;:::-;2598:22;;:6;;;;;;;;;;:22;;;2590:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10290:6:::1;10285:88;10306:5;:12;10302:1;:16;10285:88;;;10357:4;10340;:14;10345:5;10351:1;10345:8;;;;;;;;:::i;:::-;;;;;;;;10340:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10320:3;;;;;;;10285:88;;;;10216:164:::0;:::o;6176:143::-;6257:7;6284:11;:18;6296:5;6284:18;;;;;;;;;;;;;;;:27;6303:7;6284:27;;;;;;;;;;;;;;;;6277:34;;6176:143;;;;:::o;11494:209::-;11558:10;;;;;;;;;;;11544:24;;:12;:10;:12::i;:::-;:24;;;11536:33;;;;;;11580:18;11599:21;11580:40;;11645:1;11634:10;:12;11631:65;;;11660:24;11673:10;11660:12;:24::i;:::-;11631:65;11525:178;11494:209::o;230:98::-;283:7;310:10;303:17;;230:98;:::o;6817:335::-;6927:1;6910:19;;:5;:19;;;6902:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7008:1;6989:21;;:7;:21;;;6981:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7090:6;7060:11;:18;7072:5;7060:18;;;;;;;;;;;;;;;:27;7079:7;7060:27;;;;;;;;;;;;;;;:36;;;;7128:7;7112:32;;7121:5;7112:32;;;7137:6;7112:32;;;;;;:::i;:::-;;;;;;;;6817:335;;;:::o;7160:2182::-;7264:1;7248:18;;:4;:18;;;7240:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7341:1;7327:16;;:2;:16;;;7319:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7411:1;7402:6;:10;7394:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7469:17;7511:7;:5;:7::i;:::-;7503:15;;:4;:15;;;;:32;;;;;7528:7;:5;:7::i;:::-;7522:13;;:2;:13;;;;7503:32;7499:1487;;;7561:4;:10;7566:4;7561:10;;;;;;;;;;;;;;;;;;;;;;;;;7560:11;:24;;;;;7576:4;:8;7581:2;7576:8;;;;;;;;;;;;;;;;;;;;;;;;;7575:9;7560:24;7552:33;;;;;;7612:76;7684:3;7612:67;7634:15;;7624:9;;:25;7623:55;;7664:14;;7623:55;;;7651:12;;7623:55;7612:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7600:88;;7717:13;;;;;;;;;;;7709:21;;:4;:21;;;:55;;;;;7748:15;;;;;;;;;;;7734:30;;:2;:30;;;;7709:55;:83;;;;;7770:18;:22;7789:2;7770:22;;;;;;;;;;;;;;;;;;;;;;;;;7768:24;7709:83;7705:313;;;7832:12;;7822:6;:22;;7814:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7927:14;;7917:6;7901:13;7911:2;7901:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7893:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7991:9;;:11;;;;;;;;;:::i;:::-;;;;;;7705:313;8043:13;;;;;;;;;;;8037:19;;:2;:19;;;:43;;;;;8075:4;8060:20;;:4;:20;;;;8037:43;8034:174;;;8113:79;8188:3;8113:70;8135:16;;8125:9;;:26;8124:58;;8167:15;;8124:58;;;8153:13;;8124:58;8113:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8101:91;;8034:174;8224:28;8255:24;8273:4;8255:9;:24::i;:::-;8224:55;;8299:6;;;;;;;;;;;8298:7;:30;;;;;8315:13;;;;;;;;;;;8309:19;;:2;:19;;;8298:30;:45;;;;;8332:11;;;;;;;;;;;8298:45;:89;;;;;8370:17;;8347:20;:40;8298:89;:123;;;;;8403:18;;8391:9;;:30;8298:123;8294:681;;;8461:13;;8446:12;:28;8442:90;;;8511:1;8499:9;:13;;;;8442:90;8570:2;8558:9;;:14;8550:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;8620:69;8637:51;8641:6;8649:38;8653:20;8675:11;;8649:3;:38::i;:::-;8637:3;:51::i;:::-;8620:16;:69::i;:::-;8708:26;8737:21;8708:50;;8802:1;8781:18;:22;8777:106;;;8828:35;8841:21;8828:12;:35::i;:::-;8777:106;8901:9;;:11;;;;;;;;;:::i;:::-;;;;;;8947:12;8931:13;:28;;;;8423:552;8294:681;7537:1449;7499:1487;9011:1;9001:9;:11;8998:161;;;9051:39;9080:9;9051;:24;9069:4;9051:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9026:9;:24;9044:4;9026:24;;;;;;;;;;;;;;;:64;;;;9131:4;9108:39;;9117:4;9108:39;;;9137:9;9108:39;;;;;;:::i;:::-;;;;;;;;8998:161;9185:27;9205:6;9185:9;:15;9195:4;9185:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9169:9;:15;9179:4;9169:15;;;;;;;;;;;;;;;:43;;;;9237:40;9255:21;9266:9;9255:6;:10;;:21;;;;:::i;:::-;9237:9;:13;9247:2;9237:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9223:9;:13;9233:2;9223:13;;;;;;;;;;;;;;;:54;;;;9308:2;9293:41;;9302:4;9293:41;;;9312:21;9323:9;9312:6;:10;;:21;;;;:::i;:::-;9293:41;;;;;;:::i;:::-;;;;;;;;7229:2113;7160:2182;;;:::o;1363:190::-;1449:7;1482:1;1477;:6;;1485:12;1469:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1509:9;1525:1;1521;:5;;;;:::i;:::-;1509:17;;1544:1;1537:8;;;1363:190;;;;;:::o;9458:483::-;5112:4;5103:6;;:13;;;;;;;;;;;;;;;;;;9536:21:::1;9574:1;9560:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9536:40;;9605:4;9587;9592:1;9587:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9631:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9621:4;9626:1;9621:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9664:62;9681:4;9696:15;;;;;;;;;;;9714:11;9664:8;:62::i;:::-;9737:15;;;;;;;;;;;:66;;;9818:11;9844:1;9860:4;9887;9907:15;9737:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9525:416;5148:5:::0;5139:6;;:14;;;;;;;;;;;;;;;;;;9458:483;:::o;10116:92::-;10173:10;;;;;;;;;;;:19;;:27;10193:6;10173:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10116:92;:::o;1561:246::-;1619:7;1648:1;1643;:6;1639:47;;1673:1;1666:8;;;;1639:47;1696:9;1712:1;1708;:5;;;;:::i;:::-;1696:17;;1741:1;1736;1732;:5;;;;:::i;:::-;:10;1724:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1798:1;1791:8;;;1561:246;;;;;:::o;1815:132::-;1873:7;1900:39;1904:1;1907;1900:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1893:46;;1815:132;;;;:::o;9352:98::-;9409:7;9436:1;9434;:3;9433:9;;9441:1;9433:9;;;9439:1;9433:9;9426:16;;9352:98;;;;:::o;1032:179::-;1090:7;1110:9;1126:1;1122;:5;;;;:::i;:::-;1110:17;;1151:1;1146;:6;;1138:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1202:1;1195:8;;;1032:179;;;;:::o;1219:136::-;1277:7;1304:43;1308:1;1311;1304:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1297:50;;1219:136;;;;:::o;1955:189::-;2041:7;2073:1;2069;:5;2076:12;2061:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2100:9;2116:1;2112;:5;;;;:::i;:::-;2100:17;;2135:1;2128:8;;;1955:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:474::-;3407:6;3415;3464:2;3452:9;3443:7;3439:23;3435:32;3432:119;;;3470:79;;:::i;:::-;3432:119;3590:1;3615:53;3660:7;3651:6;3640:9;3636:22;3615:53;:::i;:::-;3605:63;;3561:117;3717:2;3743:53;3788:7;3779:6;3768:9;3764:22;3743:53;:::i;:::-;3733:63;;3688:118;3339:474;;;;;:::o;3819:118::-;3906:24;3924:5;3906:24;:::i;:::-;3901:3;3894:37;3819:118;;:::o;3943:222::-;4036:4;4074:2;4063:9;4059:18;4051:26;;4087:71;4155:1;4144:9;4140:17;4131:6;4087:71;:::i;:::-;3943:222;;;;:::o;4171:619::-;4248:6;4256;4264;4313:2;4301:9;4292:7;4288:23;4284:32;4281:119;;;4319:79;;:::i;:::-;4281:119;4439:1;4464:53;4509:7;4500:6;4489:9;4485:22;4464:53;:::i;:::-;4454:63;;4410:117;4566:2;4592:53;4637:7;4628:6;4617:9;4613:22;4592:53;:::i;:::-;4582:63;;4537:118;4694:2;4720:53;4765:7;4756:6;4745:9;4741:22;4720:53;:::i;:::-;4710:63;;4665:118;4171:619;;;;;:::o;4796:86::-;4831:7;4871:4;4864:5;4860:16;4849:27;;4796:86;;;:::o;4888:112::-;4971:22;4987:5;4971:22;:::i;:::-;4966:3;4959:35;4888:112;;:::o;5006:214::-;5095:4;5133:2;5122:9;5118:18;5110:26;;5146:67;5210:1;5199:9;5195:17;5186:6;5146:67;:::i;:::-;5006:214;;;;:::o;5226:117::-;5335:1;5332;5325:12;5349:180;5397:77;5394:1;5387:88;5494:4;5491:1;5484:15;5518:4;5515:1;5508:15;5535:281;5618:27;5640:4;5618:27;:::i;:::-;5610:6;5606:40;5748:6;5736:10;5733:22;5712:18;5700:10;5697:34;5694:62;5691:88;;;5759:18;;:::i;:::-;5691:88;5799:10;5795:2;5788:22;5578:238;5535:281;;:::o;5822:129::-;5856:6;5883:20;;:::i;:::-;5873:30;;5912:33;5940:4;5932:6;5912:33;:::i;:::-;5822:129;;;:::o;5957:311::-;6034:4;6124:18;6116:6;6113:30;6110:56;;;6146:18;;:::i;:::-;6110:56;6196:4;6188:6;6184:17;6176:25;;6256:4;6250;6246:15;6238:23;;5957:311;;;:::o;6274:117::-;6383:1;6380;6373:12;6414:710;6510:5;6535:81;6551:64;6608:6;6551:64;:::i;:::-;6535:81;:::i;:::-;6526:90;;6636:5;6665:6;6658:5;6651:21;6699:4;6692:5;6688:16;6681:23;;6752:4;6744:6;6740:17;6732:6;6728:30;6781:3;6773:6;6770:15;6767:122;;;6800:79;;:::i;:::-;6767:122;6915:6;6898:220;6932:6;6927:3;6924:15;6898:220;;;7007:3;7036:37;7069:3;7057:10;7036:37;:::i;:::-;7031:3;7024:50;7103:4;7098:3;7094:14;7087:21;;6974:144;6958:4;6953:3;6949:14;6942:21;;6898:220;;;6902:21;6516:608;;6414:710;;;;;:::o;7147:370::-;7218:5;7267:3;7260:4;7252:6;7248:17;7244:27;7234:122;;7275:79;;:::i;:::-;7234:122;7392:6;7379:20;7417:94;7507:3;7499:6;7492:4;7484:6;7480:17;7417:94;:::i;:::-;7408:103;;7224:293;7147:370;;;;:::o;7523:539::-;7607:6;7656:2;7644:9;7635:7;7631:23;7627:32;7624:119;;;7662:79;;:::i;:::-;7624:119;7810:1;7799:9;7795:17;7782:31;7840:18;7832:6;7829:30;7826:117;;;7862:79;;:::i;:::-;7826:117;7967:78;8037:7;8028:6;8017:9;8013:22;7967:78;:::i;:::-;7957:88;;7753:302;7523:539;;;;:::o;8068:329::-;8127:6;8176:2;8164:9;8155:7;8151:23;8147:32;8144:119;;;8182:79;;:::i;:::-;8144:119;8302:1;8327:53;8372:7;8363:6;8352:9;8348:22;8327:53;:::i;:::-;8317:63;;8273:117;8068:329;;;;:::o;8403:118::-;8490:24;8508:5;8490:24;:::i;:::-;8485:3;8478:37;8403:118;;:::o;8527:222::-;8620:4;8658:2;8647:9;8643:18;8635:26;;8671:71;8739:1;8728:9;8724:17;8715:6;8671:71;:::i;:::-;8527:222;;;;:::o;8755:474::-;8823:6;8831;8880:2;8868:9;8859:7;8855:23;8851:32;8848:119;;;8886:79;;:::i;:::-;8848:119;9006:1;9031:53;9076:7;9067:6;9056:9;9052:22;9031:53;:::i;:::-;9021:63;;8977:117;9133:2;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9104:118;8755:474;;;;;:::o;9235:180::-;9283:77;9280:1;9273:88;9380:4;9377:1;9370:15;9404:4;9401:1;9394:15;9421:102;9463:8;9510:5;9507:1;9503:13;9482:34;;9421:102;;;:::o;9529:848::-;9590:5;9597:4;9621:6;9612:15;;9645:5;9636:14;;9659:712;9680:1;9670:8;9667:15;9659:712;;;9775:4;9770:3;9766:14;9760:4;9757:24;9754:50;;;9784:18;;:::i;:::-;9754:50;9834:1;9824:8;9820:16;9817:451;;;10249:4;10242:5;10238:16;10229:25;;9817:451;10299:4;10293;10289:15;10281:23;;10329:32;10352:8;10329:32;:::i;:::-;10317:44;;9659:712;;;9529:848;;;;;;;:::o;10383:1073::-;10437:5;10628:8;10618:40;;10649:1;10640:10;;10651:5;;10618:40;10677:4;10667:36;;10694:1;10685:10;;10696:5;;10667:36;10763:4;10811:1;10806:27;;;;10847:1;10842:191;;;;10756:277;;10806:27;10824:1;10815:10;;10826:5;;;10842:191;10887:3;10877:8;10874:17;10871:43;;;10894:18;;:::i;:::-;10871:43;10943:8;10940:1;10936:16;10927:25;;10978:3;10971:5;10968:14;10965:40;;;10985:18;;:::i;:::-;10965:40;11018:5;;;10756:277;;11142:2;11132:8;11129:16;11123:3;11117:4;11114:13;11110:36;11092:2;11082:8;11079:16;11074:2;11068:4;11065:12;11061:35;11045:111;11042:246;;;11198:8;11192:4;11188:19;11179:28;;11233:3;11226:5;11223:14;11220:40;;;11240:18;;:::i;:::-;11220:40;11273:5;;11042:246;11313:42;11351:3;11341:8;11335:4;11332:1;11313:42;:::i;:::-;11298:57;;;;11387:4;11382:3;11378:14;11371:5;11368:25;11365:51;;;11396:18;;:::i;:::-;11365:51;11445:4;11438:5;11434:16;11425:25;;10383:1073;;;;;;:::o;11462:281::-;11520:5;11544:23;11562:4;11544:23;:::i;:::-;11536:31;;11588:25;11604:8;11588:25;:::i;:::-;11576:37;;11632:104;11669:66;11659:8;11653:4;11632:104;:::i;:::-;11623:113;;11462:281;;;;:::o;11749:410::-;11789:7;11812:20;11830:1;11812:20;:::i;:::-;11807:25;;11846:20;11864:1;11846:20;:::i;:::-;11841:25;;11901:1;11898;11894:9;11923:30;11941:11;11923:30;:::i;:::-;11912:41;;12102:1;12093:7;12089:15;12086:1;12083:22;12063:1;12056:9;12036:83;12013:139;;12132:18;;:::i;:::-;12013:139;11797:362;11749:410;;;;:::o;12165:182::-;12305:34;12301:1;12293:6;12289:14;12282:58;12165:182;:::o;12353:366::-;12495:3;12516:67;12580:2;12575:3;12516:67;:::i;:::-;12509:74;;12592:93;12681:3;12592:93;:::i;:::-;12710:2;12705:3;12701:12;12694:19;;12353:366;;;:::o;12725:419::-;12891:4;12929:2;12918:9;12914:18;12906:26;;12978:9;12972:4;12968:20;12964:1;12953:9;12949:17;12942:47;13006:131;13132:4;13006:131;:::i;:::-;12998:139;;12725:419;;;:::o;13150:180::-;13198:77;13195:1;13188:88;13295:4;13292:1;13285:15;13319:4;13316:1;13309:15;13336:173;13476:25;13472:1;13464:6;13460:14;13453:49;13336:173;:::o;13515:366::-;13657:3;13678:67;13742:2;13737:3;13678:67;:::i;:::-;13671:74;;13754:93;13843:3;13754:93;:::i;:::-;13872:2;13867:3;13863:12;13856:19;;13515:366;;;:::o;13887:419::-;14053:4;14091:2;14080:9;14076:18;14068:26;;14140:9;14134:4;14130:20;14126:1;14115:9;14111:17;14104:47;14168:131;14294:4;14168:131;:::i;:::-;14160:139;;13887:419;;;:::o;14312:143::-;14369:5;14400:6;14394:13;14385:22;;14416:33;14443:5;14416:33;:::i;:::-;14312:143;;;;:::o;14461:351::-;14531:6;14580:2;14568:9;14559:7;14555:23;14551:32;14548:119;;;14586:79;;:::i;:::-;14548:119;14706:1;14731:64;14787:7;14778:6;14767:9;14763:22;14731:64;:::i;:::-;14721:74;;14677:128;14461:351;;;;:::o;14818:332::-;14939:4;14977:2;14966:9;14962:18;14954:26;;14990:71;15058:1;15047:9;15043:17;15034:6;14990:71;:::i;:::-;15071:72;15139:2;15128:9;15124:18;15115:6;15071:72;:::i;:::-;14818:332;;;;;:::o;15156:85::-;15201:7;15230:5;15219:16;;15156:85;;;:::o;15247:60::-;15275:3;15296:5;15289:12;;15247:60;;;:::o;15313:158::-;15371:9;15404:61;15422:42;15431:32;15457:5;15431:32;:::i;:::-;15422:42;:::i;:::-;15404:61;:::i;:::-;15391:74;;15313:158;;;:::o;15477:147::-;15572:45;15611:5;15572:45;:::i;:::-;15567:3;15560:58;15477:147;;:::o;15630:807::-;15879:4;15917:3;15906:9;15902:19;15894:27;;15931:71;15999:1;15988:9;15984:17;15975:6;15931:71;:::i;:::-;16012:72;16080:2;16069:9;16065:18;16056:6;16012:72;:::i;:::-;16094:80;16170:2;16159:9;16155:18;16146:6;16094:80;:::i;:::-;16184;16260:2;16249:9;16245:18;16236:6;16184:80;:::i;:::-;16274:73;16342:3;16331:9;16327:19;16318:6;16274:73;:::i;:::-;16357;16425:3;16414:9;16410:19;16401:6;16357:73;:::i;:::-;15630:807;;;;;;;;;:::o;16443:143::-;16500:5;16531:6;16525:13;16516:22;;16547:33;16574:5;16547:33;:::i;:::-;16443:143;;;;:::o;16592:663::-;16680:6;16688;16696;16745:2;16733:9;16724:7;16720:23;16716:32;16713:119;;;16751:79;;:::i;:::-;16713:119;16871:1;16896:64;16952:7;16943:6;16932:9;16928:22;16896:64;:::i;:::-;16886:74;;16842:128;17009:2;17035:64;17091:7;17082:6;17071:9;17067:22;17035:64;:::i;:::-;17025:74;;16980:129;17148:2;17174:64;17230:7;17221:6;17210:9;17206:22;17174:64;:::i;:::-;17164:74;;17119:129;16592:663;;;;;:::o;17261:332::-;17382:4;17420:2;17409:9;17405:18;17397:26;;17433:71;17501:1;17490:9;17486:17;17477:6;17433:71;:::i;:::-;17514:72;17582:2;17571:9;17567:18;17558:6;17514:72;:::i;:::-;17261:332;;;;;:::o;17599:116::-;17669:21;17684:5;17669:21;:::i;:::-;17662:5;17659:32;17649:60;;17705:1;17702;17695:12;17649:60;17599:116;:::o;17721:137::-;17775:5;17806:6;17800:13;17791:22;;17822:30;17846:5;17822:30;:::i;:::-;17721:137;;;;:::o;17864:345::-;17931:6;17980:2;17968:9;17959:7;17955:23;17951:32;17948:119;;;17986:79;;:::i;:::-;17948:119;18106:1;18131:61;18184:7;18175:6;18164:9;18160:22;18131:61;:::i;:::-;18121:71;;18077:125;17864:345;;;;:::o;18215:223::-;18355:34;18351:1;18343:6;18339:14;18332:58;18424:6;18419:2;18411:6;18407:15;18400:31;18215:223;:::o;18444:366::-;18586:3;18607:67;18671:2;18666:3;18607:67;:::i;:::-;18600:74;;18683:93;18772:3;18683:93;:::i;:::-;18801:2;18796:3;18792:12;18785:19;;18444:366;;;:::o;18816:419::-;18982:4;19020:2;19009:9;19005:18;18997:26;;19069:9;19063:4;19059:20;19055:1;19044:9;19040:17;19033:47;19097:131;19223:4;19097:131;:::i;:::-;19089:139;;18816:419;;;:::o;19241:221::-;19381:34;19377:1;19369:6;19365:14;19358:58;19450:4;19445:2;19437:6;19433:15;19426:29;19241:221;:::o;19468:366::-;19610:3;19631:67;19695:2;19690:3;19631:67;:::i;:::-;19624:74;;19707:93;19796:3;19707:93;:::i;:::-;19825:2;19820:3;19816:12;19809:19;;19468:366;;;:::o;19840:419::-;20006:4;20044:2;20033:9;20029:18;20021:26;;20093:9;20087:4;20083:20;20079:1;20068:9;20064:17;20057:47;20121:131;20247:4;20121:131;:::i;:::-;20113:139;;19840:419;;;:::o;20265:224::-;20405:34;20401:1;20393:6;20389:14;20382:58;20474:7;20469:2;20461:6;20457:15;20450:32;20265:224;:::o;20495:366::-;20637:3;20658:67;20722:2;20717:3;20658:67;:::i;:::-;20651:74;;20734:93;20823:3;20734:93;:::i;:::-;20852:2;20847:3;20843:12;20836:19;;20495:366;;;:::o;20867:419::-;21033:4;21071:2;21060:9;21056:18;21048:26;;21120:9;21114:4;21110:20;21106:1;21095:9;21091:17;21084:47;21148:131;21274:4;21148:131;:::i;:::-;21140:139;;20867:419;;;:::o;21292:222::-;21432:34;21428:1;21420:6;21416:14;21409:58;21501:5;21496:2;21488:6;21484:15;21477:30;21292:222;:::o;21520:366::-;21662:3;21683:67;21747:2;21742:3;21683:67;:::i;:::-;21676:74;;21759:93;21848:3;21759:93;:::i;:::-;21877:2;21872:3;21868:12;21861:19;;21520:366;;;:::o;21892:419::-;22058:4;22096:2;22085:9;22081:18;22073:26;;22145:9;22139:4;22135:20;22131:1;22120:9;22116:17;22109:47;22173:131;22299:4;22173:131;:::i;:::-;22165:139;;21892:419;;;:::o;22317:228::-;22457:34;22453:1;22445:6;22441:14;22434:58;22526:11;22521:2;22513:6;22509:15;22502:36;22317:228;:::o;22551:366::-;22693:3;22714:67;22778:2;22773:3;22714:67;:::i;:::-;22707:74;;22790:93;22879:3;22790:93;:::i;:::-;22908:2;22903:3;22899:12;22892:19;;22551:366;;;:::o;22923:419::-;23089:4;23127:2;23116:9;23112:18;23104:26;;23176:9;23170:4;23166:20;23162:1;23151:9;23147:17;23140:47;23204:131;23330:4;23204:131;:::i;:::-;23196:139;;22923:419;;;:::o;23348:175::-;23488:27;23484:1;23476:6;23472:14;23465:51;23348:175;:::o;23529:366::-;23671:3;23692:67;23756:2;23751:3;23692:67;:::i;:::-;23685:74;;23768:93;23857:3;23768:93;:::i;:::-;23886:2;23881:3;23877:12;23870:19;;23529:366;;;:::o;23901:419::-;24067:4;24105:2;24094:9;24090:18;24082:26;;24154:9;24148:4;24144:20;24140:1;24129:9;24125:17;24118:47;24182:131;24308:4;24182:131;:::i;:::-;24174:139;;23901:419;;;:::o;24326:191::-;24366:3;24385:20;24403:1;24385:20;:::i;:::-;24380:25;;24419:20;24437:1;24419:20;:::i;:::-;24414:25;;24462:1;24459;24455:9;24448:16;;24483:3;24480:1;24477:10;24474:36;;;24490:18;;:::i;:::-;24474:36;24326:191;;;;:::o;24523:176::-;24663:28;24659:1;24651:6;24647:14;24640:52;24523:176;:::o;24705:366::-;24847:3;24868:67;24932:2;24927:3;24868:67;:::i;:::-;24861:74;;24944:93;25033:3;24944:93;:::i;:::-;25062:2;25057:3;25053:12;25046:19;;24705:366;;;:::o;25077:419::-;25243:4;25281:2;25270:9;25266:18;25258:26;;25330:9;25324:4;25320:20;25316:1;25305:9;25301:17;25294:47;25358:131;25484:4;25358:131;:::i;:::-;25350:139;;25077:419;;;:::o;25502:233::-;25541:3;25564:24;25582:5;25564:24;:::i;:::-;25555:33;;25610:66;25603:5;25600:77;25597:103;;25680:18;;:::i;:::-;25597:103;25727:1;25720:5;25716:13;25709:20;;25502:233;;;:::o;25741:174::-;25881:26;25877:1;25869:6;25865:14;25858:50;25741:174;:::o;25921:366::-;26063:3;26084:67;26148:2;26143:3;26084:67;:::i;:::-;26077:74;;26160:93;26249:3;26160:93;:::i;:::-;26278:2;26273:3;26269:12;26262:19;;25921:366;;;:::o;26293:419::-;26459:4;26497:2;26486:9;26482:18;26474:26;;26546:9;26540:4;26536:20;26532:1;26521:9;26517:17;26510:47;26574:131;26700:4;26574:131;:::i;:::-;26566:139;;26293:419;;;:::o;26718:194::-;26758:4;26778:20;26796:1;26778:20;:::i;:::-;26773:25;;26812:20;26830:1;26812:20;:::i;:::-;26807:25;;26856:1;26853;26849:9;26841:17;;26880:1;26874:4;26871:11;26868:37;;;26885:18;;:::i;:::-;26868:37;26718:194;;;;:::o;26918:114::-;26985:6;27019:5;27013:12;27003:22;;26918:114;;;:::o;27038:184::-;27137:11;27171:6;27166:3;27159:19;27211:4;27206:3;27202:14;27187:29;;27038:184;;;;:::o;27228:132::-;27295:4;27318:3;27310:11;;27348:4;27343:3;27339:14;27331:22;;27228:132;;;:::o;27366:108::-;27443:24;27461:5;27443:24;:::i;:::-;27438:3;27431:37;27366:108;;:::o;27480:179::-;27549:10;27570:46;27612:3;27604:6;27570:46;:::i;:::-;27648:4;27643:3;27639:14;27625:28;;27480:179;;;;:::o;27665:113::-;27735:4;27767;27762:3;27758:14;27750:22;;27665:113;;;:::o;27814:732::-;27933:3;27962:54;28010:5;27962:54;:::i;:::-;28032:86;28111:6;28106:3;28032:86;:::i;:::-;28025:93;;28142:56;28192:5;28142:56;:::i;:::-;28221:7;28252:1;28237:284;28262:6;28259:1;28256:13;28237:284;;;28338:6;28332:13;28365:63;28424:3;28409:13;28365:63;:::i;:::-;28358:70;;28451:60;28504:6;28451:60;:::i;:::-;28441:70;;28297:224;28284:1;28281;28277:9;28272:14;;28237:284;;;28241:14;28537:3;28530:10;;27938:608;;;27814:732;;;;:::o;28552:831::-;28815:4;28853:3;28842:9;28838:19;28830:27;;28867:71;28935:1;28924:9;28920:17;28911:6;28867:71;:::i;:::-;28948:80;29024:2;29013:9;29009:18;29000:6;28948:80;:::i;:::-;29075:9;29069:4;29065:20;29060:2;29049:9;29045:18;29038:48;29103:108;29206:4;29197:6;29103:108;:::i;:::-;29095:116;;29221:72;29289:2;29278:9;29274:18;29265:6;29221:72;:::i;:::-;29303:73;29371:3;29360:9;29356:19;29347:6;29303:73;:::i;:::-;28552:831;;;;;;;;:::o;29389:180::-;29437:77;29434:1;29427:88;29534:4;29531:1;29524:15;29558:4;29555:1;29548:15;29575:185;29615:1;29632:20;29650:1;29632:20;:::i;:::-;29627:25;;29666:20;29684:1;29666:20;:::i;:::-;29661:25;;29705:1;29695:35;;29710:18;;:::i;:::-;29695:35;29752:1;29749;29745:9;29740:14;;29575:185;;;;:::o;29766:220::-;29906:34;29902:1;29894:6;29890:14;29883:58;29975:3;29970:2;29962:6;29958:15;29951:28;29766:220;:::o;29992:366::-;30134:3;30155:67;30219:2;30214:3;30155:67;:::i;:::-;30148:74;;30231:93;30320:3;30231:93;:::i;:::-;30349:2;30344:3;30340:12;30333:19;;29992:366;;;:::o;30364:419::-;30530:4;30568:2;30557:9;30553:18;30545:26;;30617:9;30611:4;30607:20;30603:1;30592:9;30588:17;30581:47;30645:131;30771:4;30645:131;:::i;:::-;30637:139;;30364:419;;;:::o;30789:177::-;30929:29;30925:1;30917:6;30913:14;30906:53;30789:177;:::o;30972:366::-;31114:3;31135:67;31199:2;31194:3;31135:67;:::i;:::-;31128:74;;31211:93;31300:3;31211:93;:::i;:::-;31329:2;31324:3;31320:12;31313:19;;30972:366;;;:::o;31344:419::-;31510:4;31548:2;31537:9;31533:18;31525:26;;31597:9;31591:4;31587:20;31583:1;31572:9;31568:17;31561:47;31625:131;31751:4;31625:131;:::i;:::-;31617:139;;31344:419;;;:::o
Swarm Source
ipfs://ccae849c1184d78a62adc30877899c02049dc9aefaaee93515b63f59d313962a
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.