Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 $MATFUR
Holders
55
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
3,611,189.37172673 $MATFURValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MATFUR
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-12 */ // SPDX-License-Identifier: UNLICENSE /* TG - https://t.me/matfurerc X - https://x.com/matfurerc WEB - https://matfurerc.com */ pragma solidity 0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract MATFUR is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; address payable private _taxWallet; uint256 private _initialBuyTax = 15; uint256 private _initialSellTax = 15; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 20; uint256 private _reduceSellTaxAt = 20; uint256 private _preventSwapBefore = 20; uint256 private _transferTax = 0; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals; string private constant _name = unicode"MAT FUR"; string private constant _symbol = unicode"$MATFUR"; uint256 public _maxTxAmount = (_tTotal * 2) / 100; uint256 public _maxWalletSize = (_tTotal * 2) / 100; uint256 public _taxSwapThreshold = (_tTotal * 1) / 10000; uint256 public _maxTaxSwap = (_tTotal * 15) / 1000; 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; uint256 private firstBlock = 0; event MaxTxAmountUpdated(uint _maxTxAmount); event TransferTaxUpdated(uint _tax); event ClearToken(address TokenAddressCleared, uint256 Amount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner()) { if(_buyCount == 0){ taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); } if(_buyCount > 0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from != address(this) ){ taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 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 removeLimit() external onlyOwner{ _maxTxAmount =_tTotal; _maxWalletSize =_tTotal; emit MaxTxAmountUpdated(_tTotal); } function removeTransferTax() external onlyOwner{ _transferTax= 0; emit TransferTaxUpdated(0); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } 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; firstBlock = block.number; } receive() external payable {} function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) { require(_msgSender() == _taxWallet); if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this)); } emit ClearToken(tokenAddress, tokens); return IERC20(tokenAddress).transfer(_taxWallet, tokens); } function manualSend() external { require(_msgSender() == _taxWallet); uint256 ethBalance = address(this).balance; require(ethBalance > 0, "Contract balance must be greater than zero"); 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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600f600555600f6006555f6007555f60085560146009556014600a556014600b555f600c555f600d55606460026009600a62000041919062000674565b633b9aca00620000529190620006c4565b6200005e9190620006c4565b6200006a91906200073b565b600e55606460026009600a62000081919062000674565b633b9aca00620000929190620006c4565b6200009e9190620006c4565b620000aa91906200073b565b600f5561271060016009600a620000c2919062000674565b633b9aca00620000d39190620006c4565b620000df9190620006c4565b620000eb91906200073b565b6010556103e8600f6009600a62000103919062000674565b633b9aca00620001149190620006c4565b620001209190620006c4565b6200012c91906200073b565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015555f6016553480156200017b575f80fd5b505f6200018d620004b460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000239620004b460201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000288919062000674565b633b9aca00620002999190620006c4565b60015f620002ac620004b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002fe620004bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000428620004b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000486919062000674565b633b9aca00620004979190620006c4565b604051620004a6919062000783565b60405180910390a36200079e565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200056c57808604811115620005445762000543620004e2565b5b6001851615620005545780820291505b808102905062000564856200050f565b945062000524565b94509492505050565b5f8262000586576001905062000658565b8162000595575f905062000658565b8160018114620005ae5760028114620005b957620005ef565b600191505062000658565b60ff841115620005ce57620005cd620004e2565b5b8360020a915084821115620005e857620005e7620004e2565b5b5062000658565b5060208310610133831016604e8410600b8410161715620006295782820a905083811115620006235762000622620004e2565b5b62000658565b6200063884848460016200051b565b92509050818404811115620006525762000651620004e2565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000680826200065f565b91506200068d8362000668565b9250620006bc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000575565b905092915050565b5f620006d0826200065f565b9150620006dd836200065f565b9250828202620006ed816200065f565b91508282048414831517620007075762000706620004e2565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000747826200065f565b915062000754836200065f565b9250826200076757620007666200070e565b5b828204905092915050565b6200077d816200065f565b82525050565b5f602082019050620007985f83018462000772565b92915050565b61332f80620007ac5f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103a6578063a9059cbb146103d0578063bf474bed1461040c578063c9567bf914610436578063dd62ed3e1461044c578063f42938901461048857610134565b8063715018a6146102d657806377b54bad146102ec5780637d1db4a5146103285780638da5cb5b146103525780638f9a55c01461037c57610134565b806323b872dd116100f157806323b872dd14610208578063313ce5671461024457806351bc3c851461026e578063622565891461028457806370a082311461029a57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e578063109daa99146101c857806318160ddd146101de57610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049e565b6040516101599190612322565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123d3565b6104db565b604051610195919061242b565b60405180910390f35b3480156101a9575f80fd5b506101b26104f8565b6040516101bf9190612453565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fe565b005b3480156101e9575f80fd5b506101f26105d2565b6040516101ff9190612453565b60405180910390f35b348015610213575f80fd5b5061022e6004803603810190610229919061246c565b6105f5565b60405161023b919061242b565b60405180910390f35b34801561024f575f80fd5b506102586106c9565b60405161026591906124d7565b60405180910390f35b348015610279575f80fd5b506102826106d1565b005b34801561028f575f80fd5b50610298610768565b005b3480156102a5575f80fd5b506102c060048036038101906102bb91906124f0565b610897565b6040516102cd9190612453565b60405180910390f35b3480156102e1575f80fd5b506102ea6108dd565b005b3480156102f7575f80fd5b50610312600480360381019061030d91906123d3565b610a2b565b60405161031f919061242b565b60405180910390f35b348015610333575f80fd5b5061033c610bea565b6040516103499190612453565b60405180910390f35b34801561035d575f80fd5b50610366610bf0565b604051610373919061252a565b60405180910390f35b348015610387575f80fd5b50610390610c17565b60405161039d9190612453565b60405180910390f35b3480156103b1575f80fd5b506103ba610c1d565b6040516103c79190612322565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f191906123d3565b610c5a565b604051610403919061242b565b60405180910390f35b348015610417575f80fd5b50610420610c77565b60405161042d9190612453565b60405180910390f35b348015610441575f80fd5b5061044a610c7d565b005b348015610457575f80fd5b50610472600480360381019061046d9190612543565b6111a6565b60405161047f9190612453565b60405180910390f35b348015610493575f80fd5b5061049c611228565b005b60606040518060400160405280600781526020017f4d41542046555200000000000000000000000000000000000000000000000000815250905090565b5f6104ee6104e76112d9565b84846112e0565b6001905092915050565b60115481565b6105066112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610589906125cb565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105c8919061262b565b60405180910390a1565b5f6009600a6105e191906127a0565b633b9aca006105f091906127ea565b905090565b5f6106018484846114a3565b6106be8461060d6112d9565b6106b9856040518060600160405280602881526020016132d26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106706112d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d849092919063ffffffff16565b6112e0565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107116112d9565b73ffffffffffffffffffffffffffffffffffffffff1614610730575f80fd5b5f61073a30610897565b90505f81111561074e5761074d81611de6565b5b5f4790505f8111156107645761076381612051565b5b5050565b6107706112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f3906125cb565b60405180910390fd5b6009600a61080a91906127a0565b633b9aca0061081991906127ea565b600e819055506009600a61082d91906127a0565b633b9aca0061083c91906127ea565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61087191906127a0565b633b9aca0061088091906127ea565b60405161088d9190612453565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e56112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610968906125cb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c6112d9565b73ffffffffffffffffffffffffffffffffffffffff1614610a8b575f80fd5b5f8203610b0d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acb919061252a565b602060405180830381865afa158015610ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a919061283f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610b3e92919061286a565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ba29291906128e3565b6020604051808303815f875af1158015610bbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be29190612934565b905092915050565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f244d415446555200000000000000000000000000000000000000000000000000815250905090565b5f610c6d610c666112d9565b84846114a3565b6001905092915050565b60105481565b610c856112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d08906125cb565b60405180910390fd5b601360149054906101000a900460ff1615610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d58906129a9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dfd3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610de991906127a0565b633b9aca00610df891906127ea565b6112e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8b91906129db565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3591906129db565b6040518363ffffffff1660e01b8152600401610f52929190612a06565b6020604051808303815f875af1158015610f6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9291906129db565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101930610897565b5f80611023610bf0565b426040518863ffffffff1660e01b815260040161104596959493929190612a2d565b60606040518083038185885af1158015611061573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110869190612a8c565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112692919061286a565b6020604051808303815f875af1158015611142573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111669190612934565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043601681905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112686112d9565b73ffffffffffffffffffffffffffffffffffffffff1614611287575f80fd5b5f4790505f81116112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612b4c565b60405180910390fd5b6112d681612051565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134590612bda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390612c68565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114969190612453565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612cf6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690612d84565b60405180910390fd5b5f81116115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e12565b60405180910390fd5b5f6115ca610bf0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116385750611608610bf0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ad4575f600d5403611685576116826064611674600954600d541161166157600554611665565b6007545b856120b990919063ffffffff16565b61213090919063ffffffff16565b90505b5f600d5411156116ba576116b760646116a9600c54856120b990919063ffffffff16565b61213090919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611763575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117b6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118ae57600e54821115611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f790612e7a565b60405180910390fd5b600f548261180d85610897565b6118179190612e98565b1115611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f90612f15565b60405180910390fd5b6118946064611886600954600d541161187357600554611877565b6007545b856120b990919063ffffffff16565b61213090919063ffffffff16565b9050600d5f8154809291906118a890612f33565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561193657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561197a576119776064611969600a54600d54116119565760065461195a565b6008545b856120b990919063ffffffff16565b61213090919063ffffffff16565b90505b5f61198430610897565b9050601360159054906101000a900460ff161580156119ef575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a075750601360169054906101000a900460ff165b8015611a14575060105481115b8015611a235750600b54600d54115b15611ad257601554431115611a3a575f6014819055505b600360145410611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7690612fc4565b60405180910390fd5b611a9c611a9784611a9284601154612179565b612179565b611de6565b5f4790505f811115611ab257611ab147612051565b5b60145f815480929190611ac490612f33565b919050555043601581905550505b505b5f811115611bd357611b2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bca9190612453565b60405180910390a35b611c238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ee90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cc6611c7a82846121ee90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d6984866121ee90919063ffffffff16565b604051611d769190612453565b60405180910390a350505050565b5f838311158290611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc29190612322565b60405180910390fd5b505f8385611dd99190612fe2565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e1d57611e1c613015565b5b604051908082528060200260200182016040528015611e4b5781602001602082028036833780820191505090505b50905030815f81518110611e6257611e61613042565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2a91906129db565b81600181518110611f3e57611f3d613042565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa43060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612006959493929190613126565b5f604051808303815f87803b15801561201d575f80fd5b505af115801561202f573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120b5573d5f803e3d5ffd5b5050565b5f8083036120c9575f905061212a565b5f82846120d691906127ea565b90508284826120e591906131ab565b14612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c9061324b565b60405180910390fd5b809150505b92915050565b5f61217183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612237565b905092915050565b5f8183116121875782612189565b815b905092915050565b5f80828461219f9190612e98565b9050838110156121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121db906132b3565b60405180910390fd5b8091505092915050565b5f61222f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d84565b905092915050565b5f808311829061227d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122749190612322565b60405180910390fd5b505f838561228b91906131ab565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122cf5780820151818401526020810190506122b4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122f482612298565b6122fe81856122a2565b935061230e8185602086016122b2565b612317816122da565b840191505092915050565b5f6020820190508181035f83015261233a81846122ea565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236f82612346565b9050919050565b61237f81612365565b8114612389575f80fd5b50565b5f8135905061239a81612376565b92915050565b5f819050919050565b6123b2816123a0565b81146123bc575f80fd5b50565b5f813590506123cd816123a9565b92915050565b5f80604083850312156123e9576123e8612342565b5b5f6123f68582860161238c565b9250506020612407858286016123bf565b9150509250929050565b5f8115159050919050565b61242581612411565b82525050565b5f60208201905061243e5f83018461241c565b92915050565b61244d816123a0565b82525050565b5f6020820190506124665f830184612444565b92915050565b5f805f6060848603121561248357612482612342565b5b5f6124908682870161238c565b93505060206124a18682870161238c565b92505060406124b2868287016123bf565b9150509250925092565b5f60ff82169050919050565b6124d1816124bc565b82525050565b5f6020820190506124ea5f8301846124c8565b92915050565b5f6020828403121561250557612504612342565b5b5f6125128482850161238c565b91505092915050565b61252481612365565b82525050565b5f60208201905061253d5f83018461251b565b92915050565b5f806040838503121561255957612558612342565b5b5f6125668582860161238c565b92505060206125778582860161238c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125b56020836122a2565b91506125c082612581565b602082019050919050565b5f6020820190508181035f8301526125e2816125a9565b9050919050565b5f819050919050565b5f819050919050565b5f61261561261061260b846125e9565b6125f2565b6123a0565b9050919050565b612625816125fb565b82525050565b5f60208201905061263e5f83018461261c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126c6578086048111156126a2576126a1612644565b5b60018516156126b15780820291505b80810290506126bf85612671565b9450612686565b94509492505050565b5f826126de5760019050612799565b816126eb575f9050612799565b8160018114612701576002811461270b5761273a565b6001915050612799565b60ff84111561271d5761271c612644565b5b8360020a91508482111561273457612733612644565b5b50612799565b5060208310610133831016604e8410600b841016171561276f5782820a90508381111561276a57612769612644565b5b612799565b61277c848484600161267d565b9250905081840481111561279357612792612644565b5b81810290505b9392505050565b5f6127aa826123a0565b91506127b5836124bc565b92506127e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126cf565b905092915050565b5f6127f4826123a0565b91506127ff836123a0565b925082820261280d816123a0565b9150828204841483151761282457612823612644565b5b5092915050565b5f81519050612839816123a9565b92915050565b5f6020828403121561285457612853612342565b5b5f6128618482850161282b565b91505092915050565b5f60408201905061287d5f83018561251b565b61288a6020830184612444565b9392505050565b5f6128ab6128a66128a184612346565b6125f2565b612346565b9050919050565b5f6128bc82612891565b9050919050565b5f6128cd826128b2565b9050919050565b6128dd816128c3565b82525050565b5f6040820190506128f65f8301856128d4565b6129036020830184612444565b9392505050565b61291381612411565b811461291d575f80fd5b50565b5f8151905061292e8161290a565b92915050565b5f6020828403121561294957612948612342565b5b5f61295684828501612920565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129936017836122a2565b915061299e8261295f565b602082019050919050565b5f6020820190508181035f8301526129c081612987565b9050919050565b5f815190506129d581612376565b92915050565b5f602082840312156129f0576129ef612342565b5b5f6129fd848285016129c7565b91505092915050565b5f604082019050612a195f83018561251b565b612a26602083018461251b565b9392505050565b5f60c082019050612a405f83018961251b565b612a4d6020830188612444565b612a5a604083018761261c565b612a67606083018661261c565b612a74608083018561251b565b612a8160a0830184612444565b979650505050505050565b5f805f60608486031215612aa357612aa2612342565b5b5f612ab08682870161282b565b9350506020612ac18682870161282b565b9250506040612ad28682870161282b565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612b36602a836122a2565b9150612b4182612adc565b604082019050919050565b5f6020820190508181035f830152612b6381612b2a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bc46024836122a2565b9150612bcf82612b6a565b604082019050919050565b5f6020820190508181035f830152612bf181612bb8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c526022836122a2565b9150612c5d82612bf8565b604082019050919050565b5f6020820190508181035f830152612c7f81612c46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ce06025836122a2565b9150612ceb82612c86565b604082019050919050565b5f6020820190508181035f830152612d0d81612cd4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d6e6023836122a2565b9150612d7982612d14565b604082019050919050565b5f6020820190508181035f830152612d9b81612d62565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dfc6029836122a2565b9150612e0782612da2565b604082019050919050565b5f6020820190508181035f830152612e2981612df0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e646019836122a2565b9150612e6f82612e30565b602082019050919050565b5f6020820190508181035f830152612e9181612e58565b9050919050565b5f612ea2826123a0565b9150612ead836123a0565b9250828201905080821115612ec557612ec4612644565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612eff601a836122a2565b9150612f0a82612ecb565b602082019050919050565b5f6020820190508181035f830152612f2c81612ef3565b9050919050565b5f612f3d826123a0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f6f57612f6e612644565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612fae6017836122a2565b9150612fb982612f7a565b602082019050919050565b5f6020820190508181035f830152612fdb81612fa2565b9050919050565b5f612fec826123a0565b9150612ff7836123a0565b925082820390508181111561300f5761300e612644565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130a181612365565b82525050565b5f6130b28383613098565b60208301905092915050565b5f602082019050919050565b5f6130d48261306f565b6130de8185613079565b93506130e983613089565b805f5b8381101561311957815161310088826130a7565b975061310b836130be565b9250506001810190506130ec565b5085935050505092915050565b5f60a0820190506131395f830188612444565b613146602083018761261c565b818103604083015261315881866130ca565b9050613167606083018561251b565b6131746080830184612444565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131b5826123a0565b91506131c0836123a0565b9250826131d0576131cf61317e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132356021836122a2565b9150613240826131db565b604082019050919050565b5f6020820190508181035f83015261326281613229565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61329d601b836122a2565b91506132a882613269565b602082019050919050565b5f6020820190508181035f8301526132ca81613291565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a403da12fca8815069f3d2d63858c65a6874470441803ab08d49381177756fa464736f6c63430008170033
Deployed Bytecode
0x60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103a6578063a9059cbb146103d0578063bf474bed1461040c578063c9567bf914610436578063dd62ed3e1461044c578063f42938901461048857610134565b8063715018a6146102d657806377b54bad146102ec5780637d1db4a5146103285780638da5cb5b146103525780638f9a55c01461037c57610134565b806323b872dd116100f157806323b872dd14610208578063313ce5671461024457806351bc3c851461026e578063622565891461028457806370a082311461029a57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e578063109daa99146101c857806318160ddd146101de57610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049e565b6040516101599190612322565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123d3565b6104db565b604051610195919061242b565b60405180910390f35b3480156101a9575f80fd5b506101b26104f8565b6040516101bf9190612453565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fe565b005b3480156101e9575f80fd5b506101f26105d2565b6040516101ff9190612453565b60405180910390f35b348015610213575f80fd5b5061022e6004803603810190610229919061246c565b6105f5565b60405161023b919061242b565b60405180910390f35b34801561024f575f80fd5b506102586106c9565b60405161026591906124d7565b60405180910390f35b348015610279575f80fd5b506102826106d1565b005b34801561028f575f80fd5b50610298610768565b005b3480156102a5575f80fd5b506102c060048036038101906102bb91906124f0565b610897565b6040516102cd9190612453565b60405180910390f35b3480156102e1575f80fd5b506102ea6108dd565b005b3480156102f7575f80fd5b50610312600480360381019061030d91906123d3565b610a2b565b60405161031f919061242b565b60405180910390f35b348015610333575f80fd5b5061033c610bea565b6040516103499190612453565b60405180910390f35b34801561035d575f80fd5b50610366610bf0565b604051610373919061252a565b60405180910390f35b348015610387575f80fd5b50610390610c17565b60405161039d9190612453565b60405180910390f35b3480156103b1575f80fd5b506103ba610c1d565b6040516103c79190612322565b60405180910390f35b3480156103db575f80fd5b506103f660048036038101906103f191906123d3565b610c5a565b604051610403919061242b565b60405180910390f35b348015610417575f80fd5b50610420610c77565b60405161042d9190612453565b60405180910390f35b348015610441575f80fd5b5061044a610c7d565b005b348015610457575f80fd5b50610472600480360381019061046d9190612543565b6111a6565b60405161047f9190612453565b60405180910390f35b348015610493575f80fd5b5061049c611228565b005b60606040518060400160405280600781526020017f4d41542046555200000000000000000000000000000000000000000000000000815250905090565b5f6104ee6104e76112d9565b84846112e0565b6001905092915050565b60115481565b6105066112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610589906125cb565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105c8919061262b565b60405180910390a1565b5f6009600a6105e191906127a0565b633b9aca006105f091906127ea565b905090565b5f6106018484846114a3565b6106be8461060d6112d9565b6106b9856040518060600160405280602881526020016132d26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106706112d9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d849092919063ffffffff16565b6112e0565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107116112d9565b73ffffffffffffffffffffffffffffffffffffffff1614610730575f80fd5b5f61073a30610897565b90505f81111561074e5761074d81611de6565b5b5f4790505f8111156107645761076381612051565b5b5050565b6107706112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f3906125cb565b60405180910390fd5b6009600a61080a91906127a0565b633b9aca0061081991906127ea565b600e819055506009600a61082d91906127a0565b633b9aca0061083c91906127ea565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61087191906127a0565b633b9aca0061088091906127ea565b60405161088d9190612453565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e56112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610968906125cb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c6112d9565b73ffffffffffffffffffffffffffffffffffffffff1614610a8b575f80fd5b5f8203610b0d578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acb919061252a565b602060405180830381865afa158015610ae6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0a919061283f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610b3e92919061286a565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ba29291906128e3565b6020604051808303815f875af1158015610bbe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be29190612934565b905092915050565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600781526020017f244d415446555200000000000000000000000000000000000000000000000000815250905090565b5f610c6d610c666112d9565b84846114a3565b6001905092915050565b60105481565b610c856112d9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d08906125cb565b60405180910390fd5b601360149054906101000a900460ff1615610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d58906129a9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dfd3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610de991906127a0565b633b9aca00610df891906127ea565b6112e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8b91906129db565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3591906129db565b6040518363ffffffff1660e01b8152600401610f52929190612a06565b6020604051808303815f875af1158015610f6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f9291906129db565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061101930610897565b5f80611023610bf0565b426040518863ffffffff1660e01b815260040161104596959493929190612a2d565b60606040518083038185885af1158015611061573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110869190612a8c565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112692919061286a565b6020604051808303815f875af1158015611142573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111669190612934565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043601681905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112686112d9565b73ffffffffffffffffffffffffffffffffffffffff1614611287575f80fd5b5f4790505f81116112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612b4c565b60405180910390fd5b6112d681612051565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134590612bda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390612c68565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114969190612453565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890612cf6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690612d84565b60405180910390fd5b5f81116115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612e12565b60405180910390fd5b5f6115ca610bf0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116385750611608610bf0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ad4575f600d5403611685576116826064611674600954600d541161166157600554611665565b6007545b856120b990919063ffffffff16565b61213090919063ffffffff16565b90505b5f600d5411156116ba576116b760646116a9600c54856120b990919063ffffffff16565b61213090919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611763575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117b6575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118ae57600e54821115611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f790612e7a565b60405180910390fd5b600f548261180d85610897565b6118179190612e98565b1115611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f90612f15565b60405180910390fd5b6118946064611886600954600d541161187357600554611877565b6007545b856120b990919063ffffffff16565b61213090919063ffffffff16565b9050600d5f8154809291906118a890612f33565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561193657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561197a576119776064611969600a54600d54116119565760065461195a565b6008545b856120b990919063ffffffff16565b61213090919063ffffffff16565b90505b5f61198430610897565b9050601360159054906101000a900460ff161580156119ef575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a075750601360169054906101000a900460ff165b8015611a14575060105481115b8015611a235750600b54600d54115b15611ad257601554431115611a3a575f6014819055505b600360145410611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7690612fc4565b60405180910390fd5b611a9c611a9784611a9284601154612179565b612179565b611de6565b5f4790505f811115611ab257611ab147612051565b5b60145f815480929190611ac490612f33565b919050555043601581905550505b505b5f811115611bd357611b2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bca9190612453565b60405180910390a35b611c238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ee90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cc6611c7a82846121ee90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461219190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d6984866121ee90919063ffffffff16565b604051611d769190612453565b60405180910390a350505050565b5f838311158290611dcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc29190612322565b60405180910390fd5b505f8385611dd99190612fe2565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e1d57611e1c613015565b5b604051908082528060200260200182016040528015611e4b5781602001602082028036833780820191505090505b50905030815f81518110611e6257611e61613042565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2a91906129db565b81600181518110611f3e57611f3d613042565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa43060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e0565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612006959493929190613126565b5f604051808303815f87803b15801561201d575f80fd5b505af115801561202f573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120b5573d5f803e3d5ffd5b5050565b5f8083036120c9575f905061212a565b5f82846120d691906127ea565b90508284826120e591906131ab565b14612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c9061324b565b60405180910390fd5b809150505b92915050565b5f61217183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612237565b905092915050565b5f8183116121875782612189565b815b905092915050565b5f80828461219f9190612e98565b9050838110156121e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121db906132b3565b60405180910390fd5b8091505092915050565b5f61222f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d84565b905092915050565b5f808311829061227d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122749190612322565b60405180910390fd5b505f838561228b91906131ab565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122cf5780820151818401526020810190506122b4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122f482612298565b6122fe81856122a2565b935061230e8185602086016122b2565b612317816122da565b840191505092915050565b5f6020820190508181035f83015261233a81846122ea565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236f82612346565b9050919050565b61237f81612365565b8114612389575f80fd5b50565b5f8135905061239a81612376565b92915050565b5f819050919050565b6123b2816123a0565b81146123bc575f80fd5b50565b5f813590506123cd816123a9565b92915050565b5f80604083850312156123e9576123e8612342565b5b5f6123f68582860161238c565b9250506020612407858286016123bf565b9150509250929050565b5f8115159050919050565b61242581612411565b82525050565b5f60208201905061243e5f83018461241c565b92915050565b61244d816123a0565b82525050565b5f6020820190506124665f830184612444565b92915050565b5f805f6060848603121561248357612482612342565b5b5f6124908682870161238c565b93505060206124a18682870161238c565b92505060406124b2868287016123bf565b9150509250925092565b5f60ff82169050919050565b6124d1816124bc565b82525050565b5f6020820190506124ea5f8301846124c8565b92915050565b5f6020828403121561250557612504612342565b5b5f6125128482850161238c565b91505092915050565b61252481612365565b82525050565b5f60208201905061253d5f83018461251b565b92915050565b5f806040838503121561255957612558612342565b5b5f6125668582860161238c565b92505060206125778582860161238c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125b56020836122a2565b91506125c082612581565b602082019050919050565b5f6020820190508181035f8301526125e2816125a9565b9050919050565b5f819050919050565b5f819050919050565b5f61261561261061260b846125e9565b6125f2565b6123a0565b9050919050565b612625816125fb565b82525050565b5f60208201905061263e5f83018461261c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126c6578086048111156126a2576126a1612644565b5b60018516156126b15780820291505b80810290506126bf85612671565b9450612686565b94509492505050565b5f826126de5760019050612799565b816126eb575f9050612799565b8160018114612701576002811461270b5761273a565b6001915050612799565b60ff84111561271d5761271c612644565b5b8360020a91508482111561273457612733612644565b5b50612799565b5060208310610133831016604e8410600b841016171561276f5782820a90508381111561276a57612769612644565b5b612799565b61277c848484600161267d565b9250905081840481111561279357612792612644565b5b81810290505b9392505050565b5f6127aa826123a0565b91506127b5836124bc565b92506127e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126cf565b905092915050565b5f6127f4826123a0565b91506127ff836123a0565b925082820261280d816123a0565b9150828204841483151761282457612823612644565b5b5092915050565b5f81519050612839816123a9565b92915050565b5f6020828403121561285457612853612342565b5b5f6128618482850161282b565b91505092915050565b5f60408201905061287d5f83018561251b565b61288a6020830184612444565b9392505050565b5f6128ab6128a66128a184612346565b6125f2565b612346565b9050919050565b5f6128bc82612891565b9050919050565b5f6128cd826128b2565b9050919050565b6128dd816128c3565b82525050565b5f6040820190506128f65f8301856128d4565b6129036020830184612444565b9392505050565b61291381612411565b811461291d575f80fd5b50565b5f8151905061292e8161290a565b92915050565b5f6020828403121561294957612948612342565b5b5f61295684828501612920565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129936017836122a2565b915061299e8261295f565b602082019050919050565b5f6020820190508181035f8301526129c081612987565b9050919050565b5f815190506129d581612376565b92915050565b5f602082840312156129f0576129ef612342565b5b5f6129fd848285016129c7565b91505092915050565b5f604082019050612a195f83018561251b565b612a26602083018461251b565b9392505050565b5f60c082019050612a405f83018961251b565b612a4d6020830188612444565b612a5a604083018761261c565b612a67606083018661261c565b612a74608083018561251b565b612a8160a0830184612444565b979650505050505050565b5f805f60608486031215612aa357612aa2612342565b5b5f612ab08682870161282b565b9350506020612ac18682870161282b565b9250506040612ad28682870161282b565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612b36602a836122a2565b9150612b4182612adc565b604082019050919050565b5f6020820190508181035f830152612b6381612b2a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bc46024836122a2565b9150612bcf82612b6a565b604082019050919050565b5f6020820190508181035f830152612bf181612bb8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c526022836122a2565b9150612c5d82612bf8565b604082019050919050565b5f6020820190508181035f830152612c7f81612c46565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ce06025836122a2565b9150612ceb82612c86565b604082019050919050565b5f6020820190508181035f830152612d0d81612cd4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d6e6023836122a2565b9150612d7982612d14565b604082019050919050565b5f6020820190508181035f830152612d9b81612d62565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dfc6029836122a2565b9150612e0782612da2565b604082019050919050565b5f6020820190508181035f830152612e2981612df0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e646019836122a2565b9150612e6f82612e30565b602082019050919050565b5f6020820190508181035f830152612e9181612e58565b9050919050565b5f612ea2826123a0565b9150612ead836123a0565b9250828201905080821115612ec557612ec4612644565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612eff601a836122a2565b9150612f0a82612ecb565b602082019050919050565b5f6020820190508181035f830152612f2c81612ef3565b9050919050565b5f612f3d826123a0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f6f57612f6e612644565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612fae6017836122a2565b9150612fb982612f7a565b602082019050919050565b5f6020820190508181035f830152612fdb81612fa2565b9050919050565b5f612fec826123a0565b9150612ff7836123a0565b925082820390508181111561300f5761300e612644565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130a181612365565b82525050565b5f6130b28383613098565b60208301905092915050565b5f602082019050919050565b5f6130d48261306f565b6130de8185613079565b93506130e983613089565b805f5b8381101561311957815161310088826130a7565b975061310b836130be565b9250506001810190506130ec565b5085935050505092915050565b5f60a0820190506131395f830188612444565b613146602083018761261c565b818103604083015261315881866130ca565b9050613167606083018561251b565b6131746080830184612444565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131b5826123a0565b91506131c0836123a0565b9250826131d0576131cf61317e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132356021836122a2565b9150613240826131db565b604082019050919050565b5f6020820190508181035f83015261326281613229565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61329d601b836122a2565b91506132a882613269565b602082019050919050565b5f6020820190508181035f8301526132ca81613291565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a403da12fca8815069f3d2d63858c65a6874470441803ab08d49381177756fa464736f6c63430008170033
Deployed Bytecode Sourcemap
3576:8917:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5616:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6449:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4668:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10501:118;;;;;;;;;;;;;:::i;:::-;;5893:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6618:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5802:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12129:361;;;;;;;;;;;;;:::i;:::-;;10335:158;;;;;;;;;;;;;:::i;:::-;;5996:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2657:148;;;;;;;;;;;;;:::i;:::-;;11484:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4491:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2443:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4547:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5707:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6123:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4605:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10727:712;;;;;;;;;;;;;:::i;:::-;;6298:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11866:255;;;;;;;;;;;;;:::i;:::-;;5616:83;5653:13;5686:5;;;;;;;;;;;;;;;;;5679:12;;5616:83;:::o;6449:161::-;6524:4;6541:39;6550:12;:10;:12::i;:::-;6564:7;6573:6;6541:8;:39::i;:::-;6598:4;6591:11;;6449:161;;;;:::o;4668:50::-;;;;:::o;10501:118::-;2580:12;:10;:12::i;:::-;2570:22;;:6;;;;;;;;;;:22;;;2562:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10573:1:::1;10559:12;:15;;;;10590:21;10609:1;10590:21;;;;;;:::i;:::-;;;;;;;;10501:118::o:0;5893:95::-;5946:7;4300:1;4359:2;:13;;;;:::i;:::-;4343;:29;;;;:::i;:::-;5966:14;;5893:95;:::o;6618:313::-;6716:4;6733:36;6743:6;6751:9;6762:6;6733:9;:36::i;:::-;6780:121;6789:6;6797:12;:10;:12::i;:::-;6811:89;6849:6;6811:89;;;;;;;;;;;;;;;;;:11;:19;6823:6;6811:19;;;;;;;;;;;;;;;:33;6831:12;:10;:12::i;:::-;6811:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6780:8;:121::i;:::-;6919:4;6912:11;;6618:313;;;;;:::o;5802:83::-;5843:5;4300:1;5861:16;;5802:83;:::o;12129:361::-;12195:10;;;;;;;;;;;12179:26;;:12;:10;:12::i;:::-;:26;;;12171:35;;;;;;12219:20;12241:24;12259:4;12241:9;:24::i;:::-;12219:46;;12294:1;12279:12;:16;12276:76;;;12309:31;12327:12;12309:16;:31::i;:::-;12276:76;12364:18;12385:21;12364:42;;12432:1;12420:10;:13;12417:66;;;12447:24;12460:10;12447:12;:24::i;:::-;12417:66;12160:330;;12129:361::o;10335:158::-;2580:12;:10;:12::i;:::-;2570:22;;:6;;;;;;;;;;:22;;;2562:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4300:1:::1;4359:2;:13;;;;:::i;:::-;4343;:29;;;;:::i;:::-;10387:12;:21;;;;4300:1;4359:2;:13;;;;:::i;:::-;4343;:29;;;;:::i;:::-;10419:14;:23;;;;10458:27;4300:1;4359:2;:13;;;;:::i;:::-;4343;:29;;;;:::i;:::-;10458:27;;;;;;:::i;:::-;;;;;;;;10335:158::o:0;5996:119::-;6062:7;6089:9;:18;6099:7;6089:18;;;;;;;;;;;;;;;;6082:25;;5996:119;;;:::o;2657:148::-;2580:12;:10;:12::i;:::-;2570:22;;:6;;;;;;;;;;:22;;;2562:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2764:1:::1;2727:40;;2748:6;::::0;::::1;;;;;;;;2727:40;;;;;;;;;;;;2795:1;2778:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2657:148::o:0;11484:374::-;11565:12;11614:10;;;;;;;;;;;11598:26;;:12;:10;:12::i;:::-;:26;;;11590:35;;;;;;11651:1;11641:6;:11;11638:96;;11684:12;11677:30;;;11716:4;11677:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11668:54;;11638:96;11751:32;11762:12;11776:6;11751:32;;;;;;;:::i;:::-;;;;;;;;11808:12;11801:29;;;11831:10;;;;;;;;;;;11843:6;11801:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11794:56;;11484:374;;;;:::o;4491:49::-;;;;:::o;2443:79::-;2481:7;2508:6;;;;;;;;;;;2501:13;;2443:79;:::o;4547:51::-;;;;:::o;5707:87::-;5746:13;5779:7;;;;;;;;;;;;;;;;;5772:14;;5707:87;:::o;6123:167::-;6201:4;6218:42;6228:12;:10;:12::i;:::-;6242:9;6253:6;6218:9;:42::i;:::-;6278:4;6271:11;;6123:167;;;;:::o;4605:56::-;;;;:::o;10727:712::-;2580:12;:10;:12::i;:::-;2570:22;;:6;;;;;;;;;;:22;;;2562:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10791:11:::1;;;;;;;;;;;10790:12;10782:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10877:42;10840:15;;:80;;;;;;;;;;;;;;;;;;10931:58;10948:4;10963:15;;;;;;;;;;;4300:1;4359:2;:13;;;;:::i;:::-;4343;:29;;;;:::i;:::-;10931:8;:58::i;:::-;11034:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11016:55;;;11080:4;11087:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11016:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11000:13;;:110;;;;;;;;;;;;;;;;;;11121:15;;;;;;;;;;;:31;;;11160:21;11191:4;11198:24;11216:4;11198:9;:24::i;:::-;11224:1;11227::::0;11230:7:::1;:5;:7::i;:::-;11239:15;11121:134;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11273:13;;;;;;;;;;;11266:29;;;11304:15;;;;;;;;;;;11322:14;11266:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11362:4;11348:11;;:18;;;;;;;;;;;;;;;;;;11391:4;11377:11;;:18;;;;;;;;;;;;;;;;;;11419:12;11406:10;:25;;;;10727:712::o:0;6298:143::-;6379:7;6406:11;:18;6418:5;6406:18;;;;;;;;;;;;;;;:27;6425:7;6406:27;;;;;;;;;;;;;;;;6399:34;;6298:143;;;;:::o;11866:255::-;11932:10;;;;;;;;;;;11916:26;;:12;:10;:12::i;:::-;:26;;;11908:35;;;;;;11956:18;11977:21;11956:42;;12030:1;12017:10;:14;12009:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12089:24;12102:10;12089:12;:24::i;:::-;11897:224;11866:255::o;198:98::-;251:7;278:10;271:17;;198:98;:::o;6939:335::-;7049:1;7032:19;;:5;:19;;;7024:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7130:1;7111:21;;:7;:21;;;7103:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7212:6;7182:11;:18;7194:5;7182:18;;;;;;;;;;;;;;;:27;7201:7;7182:27;;;;;;;;;;;;;;;:36;;;;7250:7;7234:32;;7243:5;7234:32;;;7259:6;7234:32;;;;;;:::i;:::-;;;;;;;;6939:335;;;:::o;7282:2440::-;7386:1;7370:18;;:4;:18;;;7362:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7463:1;7449:16;;:2;:16;;;7441:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7533:1;7524:6;:10;7516:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7591:17;7635:7;:5;:7::i;:::-;7627:15;;:4;:15;;;;:32;;;;;7652:7;:5;:7::i;:::-;7646:13;;:2;:13;;;;7627:32;7623:1732;;;7694:1;7681:9;;:14;7678:147;;7727:82;7805:3;7727:73;7751:15;;7739:9;;:27;7738:61;;7785:14;;7738:61;;;7770:12;;7738:61;7727:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;7715:94;;7678:147;7856:1;7844:9;;:13;7841:97;;;7889:33;7918:3;7889:24;7900:12;;7889:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7877:45;;7841:97;7966:13;;;;;;;;;;;7958:21;;:4;:21;;;:55;;;;;7997:15;;;;;;;;;;;7983:30;;:2;:30;;;;7958:55;:83;;;;;8019:18;:22;8038:2;8019:22;;;;;;;;;;;;;;;;;;;;;;;;;8017:24;7958:83;7954:426;;;8081:12;;8071:6;:22;;8063:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8176:14;;8166:6;8150:13;8160:2;8150:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8142:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8252:82;8330:3;8252:73;8276:15;;8264:9;;:27;8263:61;;8310:14;;8263:61;;;8295:12;;8263:61;8252:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;8240:94;;8353:9;;:11;;;;;;;;;:::i;:::-;;;;;;7954:426;8405:13;;;;;;;;;;;8399:19;;:2;:19;;;:44;;;;;8438:4;8422:21;;:4;:21;;;;8399:44;8396:181;;;8476:85;8557:3;8476:76;8500:16;;8488:9;;:28;8487:64;;8536:15;;8487:64;;;8520:13;;8487:64;8476:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;8464:97;;8396:181;8593:28;8624:24;8642:4;8624:9;:24::i;:::-;8593:55;;8668:6;;;;;;;;;;;8667:7;:30;;;;;8684:13;;;;;;;;;;;8678:19;;:2;:19;;;8667:30;:45;;;;;8701:11;;;;;;;;;;;8667:45;:89;;;;;8739:17;;8716:20;:40;8667:89;:123;;;;;8772:18;;8760:9;;:30;8667:123;8663:681;;;8830:13;;8815:12;:28;8811:90;;;8880:1;8868:9;:13;;;;8811:90;8939:1;8927:9;;:13;8919:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8989:67;9006:49;9010:6;9017:37;9021:20;9042:11;;9017:3;:37::i;:::-;9006:3;:49::i;:::-;8989:16;:67::i;:::-;9075:26;9104:21;9075:50;;9169:1;9148:18;:22;9144:106;;;9195:35;9208:21;9195:12;:35::i;:::-;9144:106;9270:9;;:11;;;;;;;;;:::i;:::-;;;;;;9316:12;9300:13;:28;;;;8792:552;8663:681;7661:1694;7623:1732;9382:1;9370:9;:13;9367:166;;;9424:39;9453:9;9424;:24;9442:4;9424:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9397:9;:24;9415:4;9397:24;;;;;;;;;;;;;;;:66;;;;9504:4;9481:40;;9490:4;9481:40;;;9511:9;9481:40;;;;;;:::i;:::-;;;;;;;;9367:166;9563:27;9583:6;9563:9;:15;9573:4;9563:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9545:9;:15;9555:4;9545:15;;;;;;;;;;;;;;;:45;;;;9617:40;9635:21;9646:9;9635:6;:10;;:21;;;;:::i;:::-;9617:9;:13;9627:2;9617:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9601:9;:13;9611:2;9601:13;;;;;;;;;;;;;;;:56;;;;9688:2;9673:41;;9682:4;9673:41;;;9692:21;9703:9;9692:6;:10;;:21;;;;:::i;:::-;9673:41;;;;;;:::i;:::-;;;;;;;;7351:2371;7282:2440;;;:::o;1335:190::-;1421:7;1454:1;1449;:6;;1457:12;1441:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1481:9;1497:1;1493;:5;;;;:::i;:::-;1481:17;;1516:1;1509:8;;;1335:190;;;;;:::o;9844:483::-;5234:4;5225:6;;:13;;;;;;;;;;;;;;;;;;9922:21:::1;9960:1;9946:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9922:40;;9991:4;9973;9978:1;9973:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10017:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10007:4;10012:1;10007:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10050:62;10067:4;10082:15;;;;;;;;;;;10100:11;10050:8;:62::i;:::-;10123:15;;;;;;;;;;;:66;;;10204:11;10230:1;10246:4;10273;10293:15;10123:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9911:416;5270:5:::0;5261:6;;:14;;;;;;;;;;;;;;;;;;9844:483;:::o;10627:92::-;10684:10;;;;;;;;;;;:19;;:27;10704:6;10684:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10627:92;:::o;1533:246::-;1591:7;1620:1;1615;:6;1611:47;;1645:1;1638:8;;;;1611:47;1668:9;1684:1;1680;:5;;;;:::i;:::-;1668:17;;1713:1;1708;1704;:5;;;;:::i;:::-;:10;1696:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1770:1;1763:8;;;1533:246;;;;;:::o;1787:132::-;1845:7;1872:39;1876:1;1879;1872:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1865:46;;1787:132;;;;:::o;9732:104::-;9789:7;9818:1;9814;:5;9813:15;;9827:1;9813:15;;;9823:1;9813:15;9806:22;;9732:104;;;;:::o;1004:179::-;1062:7;1082:9;1098:1;1094;:5;;;;:::i;:::-;1082:17;;1123:1;1118;:6;;1110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1174:1;1167:8;;;1004:179;;;;:::o;1191:136::-;1249:7;1276:43;1280:1;1283;1276:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1269:50;;1191:136;;;;:::o;1927:189::-;2013:7;2045:1;2041;:5;2048:12;2033:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2072:9;2088:1;2084;:5;;;;:::i;:::-;2072:17;;2107:1;2100:8;;;1927: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:85::-;7050:7;7079:5;7068:16;;7005:85;;;:::o;7096:60::-;7124:3;7145:5;7138:12;;7096:60;;;:::o;7162:158::-;7220:9;7253:61;7271:42;7280:32;7306:5;7280:32;:::i;:::-;7271:42;:::i;:::-;7253:61;:::i;:::-;7240:74;;7162:158;;;:::o;7326:147::-;7421:45;7460:5;7421:45;:::i;:::-;7416:3;7409:58;7326:147;;:::o;7479:238::-;7580:4;7618:2;7607:9;7603:18;7595:26;;7631:79;7707:1;7696:9;7692:17;7683:6;7631:79;:::i;:::-;7479:238;;;;:::o;7723:180::-;7771:77;7768:1;7761:88;7868:4;7865:1;7858:15;7892:4;7889:1;7882:15;7909:102;7951:8;7998:5;7995:1;7991:13;7970:34;;7909:102;;;:::o;8017:848::-;8078:5;8085:4;8109:6;8100:15;;8133:5;8124:14;;8147:712;8168:1;8158:8;8155:15;8147:712;;;8263:4;8258:3;8254:14;8248:4;8245:24;8242:50;;;8272:18;;:::i;:::-;8242:50;8322:1;8312:8;8308:16;8305:451;;;8737:4;8730:5;8726:16;8717:25;;8305:451;8787:4;8781;8777:15;8769:23;;8817:32;8840:8;8817:32;:::i;:::-;8805:44;;8147:712;;;8017:848;;;;;;;:::o;8871:1073::-;8925:5;9116:8;9106:40;;9137:1;9128:10;;9139:5;;9106:40;9165:4;9155:36;;9182:1;9173:10;;9184:5;;9155:36;9251:4;9299:1;9294:27;;;;9335:1;9330:191;;;;9244:277;;9294:27;9312:1;9303:10;;9314:5;;;9330:191;9375:3;9365:8;9362:17;9359:43;;;9382:18;;:::i;:::-;9359:43;9431:8;9428:1;9424:16;9415:25;;9466:3;9459:5;9456:14;9453:40;;;9473:18;;:::i;:::-;9453:40;9506:5;;;9244:277;;9630:2;9620:8;9617:16;9611:3;9605:4;9602:13;9598:36;9580:2;9570:8;9567:16;9562:2;9556:4;9553:12;9549:35;9533:111;9530:246;;;9686:8;9680:4;9676:19;9667:28;;9721:3;9714:5;9711:14;9708:40;;;9728:18;;:::i;:::-;9708:40;9761:5;;9530:246;9801:42;9839:3;9829:8;9823:4;9820:1;9801:42;:::i;:::-;9786:57;;;;9875:4;9870:3;9866:14;9859:5;9856:25;9853:51;;;9884:18;;:::i;:::-;9853:51;9933:4;9926:5;9922:16;9913:25;;8871:1073;;;;;;:::o;9950:281::-;10008:5;10032:23;10050:4;10032:23;:::i;:::-;10024:31;;10076:25;10092:8;10076:25;:::i;:::-;10064:37;;10120:104;10157:66;10147:8;10141:4;10120:104;:::i;:::-;10111:113;;9950:281;;;;:::o;10237:410::-;10277:7;10300:20;10318:1;10300:20;:::i;:::-;10295:25;;10334:20;10352:1;10334:20;:::i;:::-;10329:25;;10389:1;10386;10382:9;10411:30;10429:11;10411:30;:::i;:::-;10400:41;;10590:1;10581:7;10577:15;10574:1;10571:22;10551:1;10544:9;10524:83;10501:139;;10620:18;;:::i;:::-;10501:139;10285:362;10237:410;;;;:::o;10653:143::-;10710:5;10741:6;10735:13;10726:22;;10757:33;10784:5;10757:33;:::i;:::-;10653:143;;;;:::o;10802:351::-;10872:6;10921:2;10909:9;10900:7;10896:23;10892:32;10889:119;;;10927:79;;:::i;:::-;10889:119;11047:1;11072:64;11128:7;11119:6;11108:9;11104:22;11072:64;:::i;:::-;11062:74;;11018:128;10802:351;;;;:::o;11159:332::-;11280:4;11318:2;11307:9;11303:18;11295:26;;11331:71;11399:1;11388:9;11384:17;11375:6;11331:71;:::i;:::-;11412:72;11480:2;11469:9;11465:18;11456:6;11412:72;:::i;:::-;11159:332;;;;;:::o;11497:142::-;11547:9;11580:53;11598:34;11607:24;11625:5;11607:24;:::i;:::-;11598:34;:::i;:::-;11580:53;:::i;:::-;11567:66;;11497:142;;;:::o;11645:126::-;11695:9;11728:37;11759:5;11728:37;:::i;:::-;11715:50;;11645:126;;;:::o;11777:134::-;11835:9;11868:37;11899:5;11868:37;:::i;:::-;11855:50;;11777:134;;;:::o;11917:147::-;12012:45;12051:5;12012:45;:::i;:::-;12007:3;12000:58;11917:147;;:::o;12070:348::-;12199:4;12237:2;12226:9;12222:18;12214:26;;12250:79;12326:1;12315:9;12311:17;12302:6;12250:79;:::i;:::-;12339:72;12407:2;12396:9;12392:18;12383:6;12339:72;:::i;:::-;12070:348;;;;;:::o;12424:116::-;12494:21;12509:5;12494:21;:::i;:::-;12487:5;12484:32;12474:60;;12530:1;12527;12520:12;12474:60;12424:116;:::o;12546:137::-;12600:5;12631:6;12625:13;12616:22;;12647:30;12671:5;12647:30;:::i;:::-;12546:137;;;;:::o;12689:345::-;12756:6;12805:2;12793:9;12784:7;12780:23;12776:32;12773:119;;;12811:79;;:::i;:::-;12773:119;12931:1;12956:61;13009:7;13000:6;12989:9;12985:22;12956:61;:::i;:::-;12946:71;;12902:125;12689:345;;;;:::o;13040:173::-;13180:25;13176:1;13168:6;13164:14;13157:49;13040:173;:::o;13219:366::-;13361:3;13382:67;13446:2;13441:3;13382:67;:::i;:::-;13375:74;;13458:93;13547:3;13458:93;:::i;:::-;13576:2;13571:3;13567:12;13560:19;;13219:366;;;:::o;13591:419::-;13757:4;13795:2;13784:9;13780:18;13772:26;;13844:9;13838:4;13834:20;13830:1;13819:9;13815:17;13808:47;13872:131;13998:4;13872:131;:::i;:::-;13864:139;;13591:419;;;:::o;14016:143::-;14073:5;14104:6;14098:13;14089:22;;14120:33;14147:5;14120:33;:::i;:::-;14016:143;;;;:::o;14165:351::-;14235:6;14284:2;14272:9;14263:7;14259:23;14255:32;14252:119;;;14290:79;;:::i;:::-;14252:119;14410:1;14435:64;14491:7;14482:6;14471:9;14467:22;14435:64;:::i;:::-;14425:74;;14381:128;14165:351;;;;:::o;14522:332::-;14643:4;14681:2;14670:9;14666:18;14658:26;;14694:71;14762:1;14751:9;14747:17;14738:6;14694:71;:::i;:::-;14775:72;14843:2;14832:9;14828:18;14819:6;14775:72;:::i;:::-;14522:332;;;;;:::o;14860:807::-;15109:4;15147:3;15136:9;15132:19;15124:27;;15161:71;15229:1;15218:9;15214:17;15205:6;15161:71;:::i;:::-;15242:72;15310:2;15299:9;15295:18;15286:6;15242:72;:::i;:::-;15324:80;15400:2;15389:9;15385:18;15376:6;15324:80;:::i;:::-;15414;15490:2;15479:9;15475:18;15466:6;15414:80;:::i;:::-;15504:73;15572:3;15561:9;15557:19;15548:6;15504:73;:::i;:::-;15587;15655:3;15644:9;15640:19;15631:6;15587:73;:::i;:::-;14860:807;;;;;;;;;:::o;15673:663::-;15761:6;15769;15777;15826:2;15814:9;15805:7;15801:23;15797:32;15794:119;;;15832:79;;:::i;:::-;15794:119;15952:1;15977:64;16033:7;16024:6;16013:9;16009:22;15977:64;:::i;:::-;15967:74;;15923:128;16090:2;16116:64;16172:7;16163:6;16152:9;16148:22;16116:64;:::i;:::-;16106:74;;16061:129;16229:2;16255:64;16311:7;16302:6;16291:9;16287:22;16255:64;:::i;:::-;16245:74;;16200:129;15673:663;;;;;:::o;16342:229::-;16482:34;16478:1;16470:6;16466:14;16459:58;16551:12;16546:2;16538:6;16534:15;16527:37;16342:229;:::o;16577:366::-;16719:3;16740:67;16804:2;16799:3;16740:67;:::i;:::-;16733:74;;16816:93;16905:3;16816:93;:::i;:::-;16934:2;16929:3;16925:12;16918:19;;16577:366;;;:::o;16949:419::-;17115:4;17153:2;17142:9;17138:18;17130:26;;17202:9;17196:4;17192:20;17188:1;17177:9;17173:17;17166:47;17230:131;17356:4;17230:131;:::i;:::-;17222:139;;16949:419;;;:::o;17374:223::-;17514:34;17510:1;17502:6;17498:14;17491:58;17583:6;17578:2;17570:6;17566:15;17559:31;17374:223;:::o;17603:366::-;17745:3;17766:67;17830:2;17825:3;17766:67;:::i;:::-;17759:74;;17842:93;17931:3;17842:93;:::i;:::-;17960:2;17955:3;17951:12;17944:19;;17603:366;;;:::o;17975:419::-;18141:4;18179:2;18168:9;18164:18;18156:26;;18228:9;18222:4;18218:20;18214:1;18203:9;18199:17;18192:47;18256:131;18382:4;18256:131;:::i;:::-;18248:139;;17975:419;;;:::o;18400:221::-;18540:34;18536:1;18528:6;18524:14;18517:58;18609:4;18604:2;18596:6;18592:15;18585:29;18400:221;:::o;18627:366::-;18769:3;18790:67;18854:2;18849:3;18790:67;:::i;:::-;18783:74;;18866:93;18955:3;18866:93;:::i;:::-;18984:2;18979:3;18975:12;18968:19;;18627:366;;;:::o;18999:419::-;19165:4;19203:2;19192:9;19188:18;19180:26;;19252:9;19246:4;19242:20;19238:1;19227:9;19223:17;19216:47;19280:131;19406:4;19280:131;:::i;:::-;19272:139;;18999:419;;;:::o;19424:224::-;19564:34;19560:1;19552:6;19548:14;19541:58;19633:7;19628:2;19620:6;19616:15;19609:32;19424:224;:::o;19654:366::-;19796:3;19817:67;19881:2;19876:3;19817:67;:::i;:::-;19810:74;;19893:93;19982:3;19893:93;:::i;:::-;20011:2;20006:3;20002:12;19995:19;;19654:366;;;:::o;20026:419::-;20192:4;20230:2;20219:9;20215:18;20207:26;;20279:9;20273:4;20269:20;20265:1;20254:9;20250:17;20243:47;20307:131;20433:4;20307:131;:::i;:::-;20299:139;;20026:419;;;:::o;20451:222::-;20591:34;20587:1;20579:6;20575:14;20568:58;20660:5;20655:2;20647:6;20643:15;20636:30;20451:222;:::o;20679:366::-;20821:3;20842:67;20906:2;20901:3;20842:67;:::i;:::-;20835:74;;20918:93;21007:3;20918:93;:::i;:::-;21036:2;21031:3;21027:12;21020:19;;20679:366;;;:::o;21051:419::-;21217:4;21255:2;21244:9;21240:18;21232:26;;21304:9;21298:4;21294:20;21290:1;21279:9;21275:17;21268:47;21332:131;21458:4;21332:131;:::i;:::-;21324:139;;21051:419;;;:::o;21476:228::-;21616:34;21612:1;21604:6;21600:14;21593:58;21685:11;21680:2;21672:6;21668:15;21661:36;21476:228;:::o;21710:366::-;21852:3;21873:67;21937:2;21932:3;21873:67;:::i;:::-;21866:74;;21949:93;22038:3;21949:93;:::i;:::-;22067:2;22062:3;22058:12;22051:19;;21710:366;;;:::o;22082:419::-;22248:4;22286:2;22275:9;22271:18;22263:26;;22335:9;22329:4;22325:20;22321:1;22310:9;22306:17;22299:47;22363:131;22489:4;22363:131;:::i;:::-;22355:139;;22082:419;;;:::o;22507:175::-;22647:27;22643:1;22635:6;22631:14;22624:51;22507:175;:::o;22688:366::-;22830:3;22851:67;22915:2;22910:3;22851:67;:::i;:::-;22844:74;;22927:93;23016:3;22927:93;:::i;:::-;23045:2;23040:3;23036:12;23029:19;;22688:366;;;:::o;23060:419::-;23226:4;23264:2;23253:9;23249:18;23241:26;;23313:9;23307:4;23303:20;23299:1;23288:9;23284:17;23277:47;23341:131;23467:4;23341:131;:::i;:::-;23333:139;;23060:419;;;:::o;23485:191::-;23525:3;23544:20;23562:1;23544:20;:::i;:::-;23539:25;;23578:20;23596:1;23578:20;:::i;:::-;23573:25;;23621:1;23618;23614:9;23607:16;;23642:3;23639:1;23636:10;23633:36;;;23649:18;;:::i;:::-;23633:36;23485:191;;;;:::o;23682:176::-;23822:28;23818:1;23810:6;23806:14;23799:52;23682:176;:::o;23864:366::-;24006:3;24027:67;24091:2;24086:3;24027:67;:::i;:::-;24020:74;;24103:93;24192:3;24103:93;:::i;:::-;24221:2;24216:3;24212:12;24205:19;;23864:366;;;:::o;24236:419::-;24402:4;24440:2;24429:9;24425:18;24417:26;;24489:9;24483:4;24479:20;24475:1;24464:9;24460:17;24453:47;24517:131;24643:4;24517:131;:::i;:::-;24509:139;;24236:419;;;:::o;24661:233::-;24700:3;24723:24;24741:5;24723:24;:::i;:::-;24714:33;;24769:66;24762:5;24759:77;24756:103;;24839:18;;:::i;:::-;24756:103;24886:1;24879:5;24875:13;24868:20;;24661:233;;;:::o;24900:173::-;25040:25;25036:1;25028:6;25024:14;25017:49;24900:173;:::o;25079:366::-;25221:3;25242:67;25306:2;25301:3;25242:67;:::i;:::-;25235:74;;25318:93;25407:3;25318:93;:::i;:::-;25436:2;25431:3;25427:12;25420:19;;25079:366;;;:::o;25451:419::-;25617:4;25655:2;25644:9;25640:18;25632:26;;25704:9;25698:4;25694:20;25690:1;25679:9;25675:17;25668:47;25732:131;25858:4;25732:131;:::i;:::-;25724:139;;25451:419;;;:::o;25876:194::-;25916:4;25936:20;25954:1;25936:20;:::i;:::-;25931:25;;25970:20;25988:1;25970:20;:::i;:::-;25965:25;;26014:1;26011;26007:9;25999:17;;26038:1;26032:4;26029:11;26026:37;;;26043:18;;:::i;:::-;26026:37;25876:194;;;;:::o;26076:180::-;26124:77;26121:1;26114:88;26221:4;26218:1;26211:15;26245:4;26242:1;26235:15;26262:180;26310:77;26307:1;26300:88;26407:4;26404:1;26397:15;26431:4;26428:1;26421:15;26448:114;26515:6;26549:5;26543:12;26533:22;;26448:114;;;:::o;26568:184::-;26667:11;26701:6;26696:3;26689:19;26741:4;26736:3;26732:14;26717:29;;26568:184;;;;:::o;26758:132::-;26825:4;26848:3;26840:11;;26878:4;26873:3;26869:14;26861:22;;26758:132;;;:::o;26896:108::-;26973:24;26991:5;26973:24;:::i;:::-;26968:3;26961:37;26896:108;;:::o;27010:179::-;27079:10;27100:46;27142:3;27134:6;27100:46;:::i;:::-;27178:4;27173:3;27169:14;27155:28;;27010:179;;;;:::o;27195:113::-;27265:4;27297;27292:3;27288:14;27280:22;;27195:113;;;:::o;27344:732::-;27463:3;27492:54;27540:5;27492:54;:::i;:::-;27562:86;27641:6;27636:3;27562:86;:::i;:::-;27555:93;;27672:56;27722:5;27672:56;:::i;:::-;27751:7;27782:1;27767:284;27792:6;27789:1;27786:13;27767:284;;;27868:6;27862:13;27895:63;27954:3;27939:13;27895:63;:::i;:::-;27888:70;;27981:60;28034:6;27981:60;:::i;:::-;27971:70;;27827:224;27814:1;27811;27807:9;27802:14;;27767:284;;;27771:14;28067:3;28060:10;;27468:608;;;27344:732;;;;:::o;28082:831::-;28345:4;28383:3;28372:9;28368:19;28360:27;;28397:71;28465:1;28454:9;28450:17;28441:6;28397:71;:::i;:::-;28478:80;28554:2;28543:9;28539:18;28530:6;28478:80;:::i;:::-;28605:9;28599:4;28595:20;28590:2;28579:9;28575:18;28568:48;28633:108;28736:4;28727:6;28633:108;:::i;:::-;28625:116;;28751:72;28819:2;28808:9;28804:18;28795:6;28751:72;:::i;:::-;28833:73;28901:3;28890:9;28886:19;28877:6;28833:73;:::i;:::-;28082:831;;;;;;;;:::o;28919:180::-;28967:77;28964:1;28957:88;29064:4;29061:1;29054:15;29088:4;29085:1;29078:15;29105:185;29145:1;29162:20;29180:1;29162:20;:::i;:::-;29157:25;;29196:20;29214:1;29196:20;:::i;:::-;29191:25;;29235:1;29225:35;;29240:18;;:::i;:::-;29225:35;29282:1;29279;29275:9;29270:14;;29105:185;;;;:::o;29296:220::-;29436:34;29432:1;29424:6;29420:14;29413:58;29505:3;29500:2;29492:6;29488:15;29481:28;29296:220;:::o;29522:366::-;29664:3;29685:67;29749:2;29744:3;29685:67;:::i;:::-;29678:74;;29761:93;29850:3;29761:93;:::i;:::-;29879:2;29874:3;29870:12;29863:19;;29522:366;;;:::o;29894:419::-;30060:4;30098:2;30087:9;30083:18;30075:26;;30147:9;30141:4;30137:20;30133:1;30122:9;30118:17;30111:47;30175:131;30301:4;30175:131;:::i;:::-;30167:139;;29894:419;;;:::o;30319:177::-;30459:29;30455:1;30447:6;30443:14;30436:53;30319:177;:::o;30502:366::-;30644:3;30665:67;30729:2;30724:3;30665:67;:::i;:::-;30658:74;;30741:93;30830:3;30741:93;:::i;:::-;30859:2;30854:3;30850:12;30843:19;;30502:366;;;:::o;30874:419::-;31040:4;31078:2;31067:9;31063:18;31055:26;;31127:9;31121:4;31117:20;31113:1;31102:9;31098:17;31091:47;31155:131;31281:4;31155:131;:::i;:::-;31147:139;;30874:419;;;:::o
Swarm Source
ipfs://a403da12fca8815069f3d2d63858c65a6874470441803ab08d49381177756fa4
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.