ERC-20
Overview
Max Total Supply
1,000,000,000 EVERX
Holders
158
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
248.138278411 EVERXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
EVERX
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-26 */ /** EverX is a community-focused reflections token. 2% of every buy and sell will go back to holders directly through reflections. The remaining 3% of the tax will go to marketing and development. Elon Musk announced that twitter was rebranding to X in order to achieve his vision of creating a super app like WeChat where you can access all kinds of services and do many things on X. Elon's ambitious project inspires the creation of EverX, a community focused reflections token. Soar to new heights you never imagined before with EverX. https://everx.pro/ https://t.me/EverXETH https://twitter.com/EverXETH **/ // SPDX-License-Identifier: MIT pragma solidity ^0.8.9; 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 ); } contract Ownable is Context { address internal _owner; address private _previousOwner; 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract EVERX is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "EverX"; string private constant _symbol = "EVERX"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; mapping(address => bool) private _isExcludedFromMax; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1_000_000_000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 2; uint256 private _taxFeeOnBuy = 23; uint256 private _redisFeeOnSell = 2; uint256 private _taxFeeOnSell = 23; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _marketingAddress = payable(0xe455066ae293E39ae20537c52f3eE687fb9e46c3); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxWalletSize = _tTotal.mul(2).div(100); uint256 public _swapTokensAtAmount = _tTotal.mul(2).div(1000); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[address(_uniswapV2Router)] = true; _isExcludedFromMax[owner()] = true; _isExcludedFromMax[address(this)] = true; _isExcludedFromMax[_marketingAddress] = true; _isExcludedFromMax[address(_uniswapV2Router)] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } if(to != uniswapV2Pair && !_isExcludedFromMax[to]) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && to == uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualSwap() external { require(_msgSender()==_marketingAddress); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function removeLimits() external onlyOwner{ _maxWalletSize = _tTotal; } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400005f196200001b919062000978565b5f19620000299190620009dc565b60075560026009556017600a556002600b556017600c55600b54600d55600c54600e55600d54600f55600e5460105573e455066ae293e39ae20537c52f3ee687fb9e46c360115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff021916908315150217905550620001146064620001056002670de0b6b3a7640000620007dd60201b90919060201c565b6200085d60201b90919060201c565b6014556200014b6103e86200013c6002670de0b6b3a7640000620007dd60201b90919060201c565b6200085d60201b90919060201c565b6015553480156200015a575f80fd5b505f6200016c620008ae60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460025f6200021e620008ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000323919062000a7b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000389573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003af919062000a7b565b6040518363ffffffff1660e01b8152600401620003ce92919062000abc565b6020604051808303815f875af1158015620003eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000411919062000a7b565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f62000465620008b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f620005e9620008b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000768620008ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620007ce919062000af8565b60405180910390a35062000cde565b5f808303620007ef575f905062000857565b5f8284620007fe919062000b13565b90508284826200080f919062000b5d565b1462000852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008499062000c18565b60405180910390fd5b809150505b92915050565b5f620008a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008dc60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000925576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200091c919062000cbc565b60405180910390fd5b505f838562000935919062000b5d565b9050809150509392505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009848262000942565b9150620009918362000942565b925082620009a457620009a36200094b565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620009e88262000942565b9150620009f58362000942565b925082820390508181111562000a105762000a0f620009af565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a458262000a1a565b9050919050565b62000a578162000a39565b811462000a62575f80fd5b50565b5f8151905062000a758162000a4c565b92915050565b5f6020828403121562000a935762000a9262000a16565b5b5f62000aa28482850162000a65565b91505092915050565b62000ab68162000a39565b82525050565b5f60408201905062000ad15f83018562000aab565b62000ae0602083018462000aab565b9392505050565b62000af28162000942565b82525050565b5f60208201905062000b0d5f83018462000ae7565b92915050565b5f62000b1f8262000942565b915062000b2c8362000942565b925082820262000b3c8162000942565b9150828204841483151762000b565762000b55620009af565b5b5092915050565b5f62000b698262000942565b915062000b768362000942565b92508262000b895762000b886200094b565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000c0060218362000b94565b915062000c0d8262000ba4565b604082019050919050565b5f6020820190508181035f83015262000c318162000bf2565b9050919050565b5f81519050919050565b5f5b8381101562000c6157808201518184015260208101905062000c44565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000c888262000c38565b62000c94818562000b94565b935062000ca681856020860162000c42565b62000cb18162000c6c565b840191505092915050565b5f6020820190508181035f83015262000cd6818462000c7c565b905092915050565b612f3f8062000cec5f395ff3fe608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b411461039b578063a2a957bb146103c5578063a9059cbb146103ed578063dd62ed3e14610429578063f2fde38b1461046557610129565b8063715018a6146102f3578063751039fc146103095780638da5cb5b1461031f5780638f70ccf7146103495780638f9a55c01461037157610129565b80632fd689e3116100e65780632fd689e314610223578063313ce5671461024d57806349bd5a5e1461027757806351bc3c85146102a157806370a08231146102b757610129565b806306fdde031461012d578063095ea7b3146101575780631694505e1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161048d565b60405161014e91906121e7565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612298565b6104ca565b60405161018a91906122f0565b60405180910390f35b34801561019e575f80fd5b506101a76104e7565b6040516101b49190612364565b60405180910390f35b3480156101c8575f80fd5b506101d161050c565b6040516101de919061238c565b60405180910390f35b3480156101f2575f80fd5b5061020d600480360381019061020891906123a5565b61051b565b60405161021a91906122f0565b60405180910390f35b34801561022e575f80fd5b506102376105ef565b604051610244919061238c565b60405180910390f35b348015610258575f80fd5b506102616105f5565b60405161026e9190612410565b60405180910390f35b348015610282575f80fd5b5061028b6105fd565b6040516102989190612438565b60405180910390f35b3480156102ac575f80fd5b506102b5610622565b005b3480156102c2575f80fd5b506102dd60048036038101906102d89190612451565b6106b9565b6040516102ea919061238c565b60405180910390f35b3480156102fe575f80fd5b50610307610707565b005b348015610314575f80fd5b5061031d610855565b005b34801561032a575f80fd5b506103336108fa565b6040516103409190612438565b60405180910390f35b348015610354575f80fd5b5061036f600480360381019061036a91906124a6565b610921565b005b34801561037c575f80fd5b506103856109d2565b604051610392919061238c565b60405180910390f35b3480156103a6575f80fd5b506103af6109d8565b6040516103bc91906121e7565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e691906124d1565b610a15565b005b3480156103f8575f80fd5b50610413600480360381019061040e9190612298565b610acb565b60405161042091906122f0565b60405180910390f35b348015610434575f80fd5b5061044f600480360381019061044a9190612535565b610ae8565b60405161045c919061238c565b60405180910390f35b348015610470575f80fd5b5061048b60048036038101906104869190612451565b610b6a565b005b60606040518060400160405280600581526020017f4576657258000000000000000000000000000000000000000000000000000000815250905090565b5f6104dd6104d6610d27565b8484610d2e565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610527848484610ef1565b6105e484610533610d27565b6105df85604051806060016040528060288152602001612ee26028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610596610d27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116cf9092919063ffffffff16565b610d2e565b600190509392505050565b60155481565b5f6009905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610662610d27565b73ffffffffffffffffffffffffffffffffffffffff1614610681575f80fd5b5f61068b306106b9565b90505f81111561069f5761069e81611731565b5b5f4790505f8111156106b5576106b48161199c565b5b5050565b5f61070060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a04565b9050919050565b61070f610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906125bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61085d610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e0906125bd565b60405180910390fd5b670de0b6b3a7640000601481905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610929610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac906125bd565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60145481565b60606040518060400160405280600581526020017f4556455258000000000000000000000000000000000000000000000000000000815250905090565b610a1d610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa0906125bd565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f610ade610ad7610d27565b8484610ef1565b6001905092915050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b72610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906125bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c639061264b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d93906126d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0190612767565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ee4919061238c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f56906127f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612883565b60405180910390fd5b5f811161100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612911565b60405180910390fd5b6110176108fa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561108557506110556108fa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156113dc57601360149054906101000a900460ff16611114576110a66108fa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061299f565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156111b8575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561121557601454816111ca846106b9565b6111d491906129ea565b10611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612a8d565b60405180910390fd5b5b5f61121f306106b9565b90505f60155482101590508080156112445750601360159054906101000a900460ff16155b801561129d575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156112f5575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561130d5750601360169054906101000a900460ff165b8015611360575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156113b3575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113d9576113c182611731565b5f4790505f8111156113d7576113d64761199c565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061147c575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061152d575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561152c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561153a575f90506116bd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115e3575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115fb57600954600d81905550600a54600e819055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116a4575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116bc57600b54600d81905550600c54600e819055505b5b6116c984848484611a70565b50505050565b5f838311158290611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d91906121e7565b60405180910390fd5b505f83856117249190612aab565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561176857611767612ade565b5b6040519080825280602002602001820160405280156117965781602001602082028036833780820191505090505b50905030815f815181106117ad576117ac612b0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611851573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118759190612b4c565b8160018151811061188957611888612b0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118ef3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d2e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611951959493929190612c67565b5f604051808303815f87803b158015611968575f80fd5b505af115801561197a573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a00573d5f803e3d5ffd5b5050565b5f600754821115611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190612d2f565b60405180910390fd5b5f611a53611a9d565b9050611a688184611ac690919063ffffffff16565b915050919050565b80611a7e57611a7d611b0f565b5b611a89848484611b48565b80611a9757611a96611d08565b5b50505050565b5f805f611aa8611d1c565b91509150611abf8183611ac690919063ffffffff16565b9250505090565b5f611b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d78565b905092915050565b5f600d54148015611b2157505f600e54145b611b4657600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f80611b5787611dd9565b955095509550955095509550611bb38660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e3990919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c448560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8290919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c8e81611edf565b611c988483611f96565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cf5919061238c565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f805f60075490505f670de0b6b3a76400009050611d4d670de0b6b3a7640000600754611ac690919063ffffffff16565b821015611d6b57600754670de0b6b3a7640000935093505050611d74565b81819350935050505b9091565b5f8083118290611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db591906121e7565b60405180910390fd5b505f8385611dcc9190612d7a565b9050809150509392505050565b5f805f805f805f805f611df18a600d54600e54611fd0565b9250925092505f611e00611a9d565b90505f805f611e118e878787612062565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611e7a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116cf565b905092915050565b5f808284611e9091906129ea565b905083811015611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc90612df4565b60405180910390fd5b8091505092915050565b5f611ee8611a9d565b90505f611efe82846120e690919063ffffffff16565b9050611f508160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611fab82600754611e3990919063ffffffff16565b600781905550611fc681600854611e8290919063ffffffff16565b6008819055505050565b5f805f80611ffa6064611fec888a6120e690919063ffffffff16565b611ac690919063ffffffff16565b90505f6120236064612015888b6120e690919063ffffffff16565b611ac690919063ffffffff16565b90505f61204b8261203d858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061207985896120e690919063ffffffff16565b90505f61208f86896120e690919063ffffffff16565b90505f6120a587896120e690919063ffffffff16565b90505f6120cd826120bf8587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036120f6575f9050612157565b5f82846121039190612e12565b90508284826121129190612d7a565b14612152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214990612ec3565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612194578082015181840152602081019050612179565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121b98261215d565b6121c38185612167565b93506121d3818560208601612177565b6121dc8161219f565b840191505092915050565b5f6020820190508181035f8301526121ff81846121af565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122348261220b565b9050919050565b6122448161222a565b811461224e575f80fd5b50565b5f8135905061225f8161223b565b92915050565b5f819050919050565b61227781612265565b8114612281575f80fd5b50565b5f813590506122928161226e565b92915050565b5f80604083850312156122ae576122ad612207565b5b5f6122bb85828601612251565b92505060206122cc85828601612284565b9150509250929050565b5f8115159050919050565b6122ea816122d6565b82525050565b5f6020820190506123035f8301846122e1565b92915050565b5f819050919050565b5f61232c6123276123228461220b565b612309565b61220b565b9050919050565b5f61233d82612312565b9050919050565b5f61234e82612333565b9050919050565b61235e81612344565b82525050565b5f6020820190506123775f830184612355565b92915050565b61238681612265565b82525050565b5f60208201905061239f5f83018461237d565b92915050565b5f805f606084860312156123bc576123bb612207565b5b5f6123c986828701612251565b93505060206123da86828701612251565b92505060406123eb86828701612284565b9150509250925092565b5f60ff82169050919050565b61240a816123f5565b82525050565b5f6020820190506124235f830184612401565b92915050565b6124328161222a565b82525050565b5f60208201905061244b5f830184612429565b92915050565b5f6020828403121561246657612465612207565b5b5f61247384828501612251565b91505092915050565b612485816122d6565b811461248f575f80fd5b50565b5f813590506124a08161247c565b92915050565b5f602082840312156124bb576124ba612207565b5b5f6124c884828501612492565b91505092915050565b5f805f80608085870312156124e9576124e8612207565b5b5f6124f687828801612284565b945050602061250787828801612284565b935050604061251887828801612284565b925050606061252987828801612284565b91505092959194509250565b5f806040838503121561254b5761254a612207565b5b5f61255885828601612251565b925050602061256985828601612251565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125a7602083612167565b91506125b282612573565b602082019050919050565b5f6020820190508181035f8301526125d48161259b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612635602683612167565b9150612640826125db565b604082019050919050565b5f6020820190508181035f83015261266281612629565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126c3602483612167565b91506126ce82612669565b604082019050919050565b5f6020820190508181035f8301526126f0816126b7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612751602283612167565b915061275c826126f7565b604082019050919050565b5f6020820190508181035f83015261277e81612745565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6127df602583612167565b91506127ea82612785565b604082019050919050565b5f6020820190508181035f83015261280c816127d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61286d602383612167565b915061287882612813565b604082019050919050565b5f6020820190508181035f83015261289a81612861565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128fb602983612167565b9150612906826128a1565b604082019050919050565b5f6020820190508181035f830152612928816128ef565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612989603f83612167565b91506129948261292f565b604082019050919050565b5f6020820190508181035f8301526129b68161297d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129f482612265565b91506129ff83612265565b9250828201905080821115612a1757612a166129bd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612a77602383612167565b9150612a8282612a1d565b604082019050919050565b5f6020820190508181035f830152612aa481612a6b565b9050919050565b5f612ab582612265565b9150612ac083612265565b9250828203905081811115612ad857612ad76129bd565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b468161223b565b92915050565b5f60208284031215612b6157612b60612207565b5b5f612b6e84828501612b38565b91505092915050565b5f819050919050565b5f612b9a612b95612b9084612b77565b612309565b612265565b9050919050565b612baa81612b80565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612be28161222a565b82525050565b5f612bf38383612bd9565b60208301905092915050565b5f602082019050919050565b5f612c1582612bb0565b612c1f8185612bba565b9350612c2a83612bca565b805f5b83811015612c5a578151612c418882612be8565b9750612c4c83612bff565b925050600181019050612c2d565b5085935050505092915050565b5f60a082019050612c7a5f83018861237d565b612c876020830187612ba1565b8181036040830152612c998186612c0b565b9050612ca86060830185612429565b612cb5608083018461237d565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612d19602a83612167565b9150612d2482612cbf565b604082019050919050565b5f6020820190508181035f830152612d4681612d0d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d8482612265565b9150612d8f83612265565b925082612d9f57612d9e612d4d565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612dde601b83612167565b9150612de982612daa565b602082019050919050565b5f6020820190508181035f830152612e0b81612dd2565b9050919050565b5f612e1c82612265565b9150612e2783612265565b9250828202612e3581612265565b91508282048414831517612e4c57612e4b6129bd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ead602183612167565b9150612eb882612e53565b604082019050919050565b5f6020820190508181035f830152612eda81612ea1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122097ea061517dedfa5ab656a32e14fc4e9b18c2f614ef38cf05a9eb56ccd9c3f3264736f6c63430008140033
Deployed Bytecode
0x608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b411461039b578063a2a957bb146103c5578063a9059cbb146103ed578063dd62ed3e14610429578063f2fde38b1461046557610129565b8063715018a6146102f3578063751039fc146103095780638da5cb5b1461031f5780638f70ccf7146103495780638f9a55c01461037157610129565b80632fd689e3116100e65780632fd689e314610223578063313ce5671461024d57806349bd5a5e1461027757806351bc3c85146102a157806370a08231146102b757610129565b806306fdde031461012d578063095ea7b3146101575780631694505e1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161048d565b60405161014e91906121e7565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612298565b6104ca565b60405161018a91906122f0565b60405180910390f35b34801561019e575f80fd5b506101a76104e7565b6040516101b49190612364565b60405180910390f35b3480156101c8575f80fd5b506101d161050c565b6040516101de919061238c565b60405180910390f35b3480156101f2575f80fd5b5061020d600480360381019061020891906123a5565b61051b565b60405161021a91906122f0565b60405180910390f35b34801561022e575f80fd5b506102376105ef565b604051610244919061238c565b60405180910390f35b348015610258575f80fd5b506102616105f5565b60405161026e9190612410565b60405180910390f35b348015610282575f80fd5b5061028b6105fd565b6040516102989190612438565b60405180910390f35b3480156102ac575f80fd5b506102b5610622565b005b3480156102c2575f80fd5b506102dd60048036038101906102d89190612451565b6106b9565b6040516102ea919061238c565b60405180910390f35b3480156102fe575f80fd5b50610307610707565b005b348015610314575f80fd5b5061031d610855565b005b34801561032a575f80fd5b506103336108fa565b6040516103409190612438565b60405180910390f35b348015610354575f80fd5b5061036f600480360381019061036a91906124a6565b610921565b005b34801561037c575f80fd5b506103856109d2565b604051610392919061238c565b60405180910390f35b3480156103a6575f80fd5b506103af6109d8565b6040516103bc91906121e7565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e691906124d1565b610a15565b005b3480156103f8575f80fd5b50610413600480360381019061040e9190612298565b610acb565b60405161042091906122f0565b60405180910390f35b348015610434575f80fd5b5061044f600480360381019061044a9190612535565b610ae8565b60405161045c919061238c565b60405180910390f35b348015610470575f80fd5b5061048b60048036038101906104869190612451565b610b6a565b005b60606040518060400160405280600581526020017f4576657258000000000000000000000000000000000000000000000000000000815250905090565b5f6104dd6104d6610d27565b8484610d2e565b6001905092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610527848484610ef1565b6105e484610533610d27565b6105df85604051806060016040528060288152602001612ee26028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610596610d27565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116cf9092919063ffffffff16565b610d2e565b600190509392505050565b60155481565b5f6009905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610662610d27565b73ffffffffffffffffffffffffffffffffffffffff1614610681575f80fd5b5f61068b306106b9565b90505f81111561069f5761069e81611731565b5b5f4790505f8111156106b5576106b48161199c565b5b5050565b5f61070060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a04565b9050919050565b61070f610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906125bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61085d610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e0906125bd565b60405180910390fd5b670de0b6b3a7640000601481905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610929610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac906125bd565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60145481565b60606040518060400160405280600581526020017f4556455258000000000000000000000000000000000000000000000000000000815250905090565b610a1d610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa0906125bd565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f610ade610ad7610d27565b8484610ef1565b6001905092915050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610b72610d27565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906125bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c639061264b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d93906126d9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0190612767565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ee4919061238c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f56906127f5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612883565b60405180910390fd5b5f811161100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612911565b60405180910390fd5b6110176108fa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561108557506110556108fa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156113dc57601360149054906101000a900460ff16611114576110a66108fa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061299f565b60405180910390fd5b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156111b8575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561121557601454816111ca846106b9565b6111d491906129ea565b10611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612a8d565b60405180910390fd5b5b5f61121f306106b9565b90505f60155482101590508080156112445750601360159054906101000a900460ff16155b801561129d575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156112f5575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561130d5750601360169054906101000a900460ff165b8015611360575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156113b3575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113d9576113c182611731565b5f4790505f8111156113d7576113d64761199c565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061147c575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061152d575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561152c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561153a575f90506116bd565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115e3575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115fb57600954600d81905550600a54600e819055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116a4575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116bc57600b54600d81905550600c54600e819055505b5b6116c984848484611a70565b50505050565b5f838311158290611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d91906121e7565b60405180910390fd5b505f83856117249190612aab565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561176857611767612ade565b5b6040519080825280602002602001820160405280156117965781602001602082028036833780820191505090505b50905030815f815181106117ad576117ac612b0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611851573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118759190612b4c565b8160018151811061188957611888612b0b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118ef3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d2e565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611951959493929190612c67565b5f604051808303815f87803b158015611968575f80fd5b505af115801561197a573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611a00573d5f803e3d5ffd5b5050565b5f600754821115611a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4190612d2f565b60405180910390fd5b5f611a53611a9d565b9050611a688184611ac690919063ffffffff16565b915050919050565b80611a7e57611a7d611b0f565b5b611a89848484611b48565b80611a9757611a96611d08565b5b50505050565b5f805f611aa8611d1c565b91509150611abf8183611ac690919063ffffffff16565b9250505090565b5f611b0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d78565b905092915050565b5f600d54148015611b2157505f600e54145b611b4657600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f80611b5787611dd9565b955095509550955095509550611bb38660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e3990919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c448560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8290919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c8e81611edf565b611c988483611f96565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611cf5919061238c565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f805f60075490505f670de0b6b3a76400009050611d4d670de0b6b3a7640000600754611ac690919063ffffffff16565b821015611d6b57600754670de0b6b3a7640000935093505050611d74565b81819350935050505b9091565b5f8083118290611dbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db591906121e7565b60405180910390fd5b505f8385611dcc9190612d7a565b9050809150509392505050565b5f805f805f805f805f611df18a600d54600e54611fd0565b9250925092505f611e00611a9d565b90505f805f611e118e878787612062565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f611e7a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116cf565b905092915050565b5f808284611e9091906129ea565b905083811015611ed5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecc90612df4565b60405180910390fd5b8091505092915050565b5f611ee8611a9d565b90505f611efe82846120e690919063ffffffff16565b9050611f508160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b611fab82600754611e3990919063ffffffff16565b600781905550611fc681600854611e8290919063ffffffff16565b6008819055505050565b5f805f80611ffa6064611fec888a6120e690919063ffffffff16565b611ac690919063ffffffff16565b90505f6120236064612015888b6120e690919063ffffffff16565b611ac690919063ffffffff16565b90505f61204b8261203d858c611e3990919063ffffffff16565b611e3990919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f8061207985896120e690919063ffffffff16565b90505f61208f86896120e690919063ffffffff16565b90505f6120a587896120e690919063ffffffff16565b90505f6120cd826120bf8587611e3990919063ffffffff16565b611e3990919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f8083036120f6575f9050612157565b5f82846121039190612e12565b90508284826121129190612d7a565b14612152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214990612ec3565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612194578082015181840152602081019050612179565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121b98261215d565b6121c38185612167565b93506121d3818560208601612177565b6121dc8161219f565b840191505092915050565b5f6020820190508181035f8301526121ff81846121af565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122348261220b565b9050919050565b6122448161222a565b811461224e575f80fd5b50565b5f8135905061225f8161223b565b92915050565b5f819050919050565b61227781612265565b8114612281575f80fd5b50565b5f813590506122928161226e565b92915050565b5f80604083850312156122ae576122ad612207565b5b5f6122bb85828601612251565b92505060206122cc85828601612284565b9150509250929050565b5f8115159050919050565b6122ea816122d6565b82525050565b5f6020820190506123035f8301846122e1565b92915050565b5f819050919050565b5f61232c6123276123228461220b565b612309565b61220b565b9050919050565b5f61233d82612312565b9050919050565b5f61234e82612333565b9050919050565b61235e81612344565b82525050565b5f6020820190506123775f830184612355565b92915050565b61238681612265565b82525050565b5f60208201905061239f5f83018461237d565b92915050565b5f805f606084860312156123bc576123bb612207565b5b5f6123c986828701612251565b93505060206123da86828701612251565b92505060406123eb86828701612284565b9150509250925092565b5f60ff82169050919050565b61240a816123f5565b82525050565b5f6020820190506124235f830184612401565b92915050565b6124328161222a565b82525050565b5f60208201905061244b5f830184612429565b92915050565b5f6020828403121561246657612465612207565b5b5f61247384828501612251565b91505092915050565b612485816122d6565b811461248f575f80fd5b50565b5f813590506124a08161247c565b92915050565b5f602082840312156124bb576124ba612207565b5b5f6124c884828501612492565b91505092915050565b5f805f80608085870312156124e9576124e8612207565b5b5f6124f687828801612284565b945050602061250787828801612284565b935050604061251887828801612284565b925050606061252987828801612284565b91505092959194509250565b5f806040838503121561254b5761254a612207565b5b5f61255885828601612251565b925050602061256985828601612251565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125a7602083612167565b91506125b282612573565b602082019050919050565b5f6020820190508181035f8301526125d48161259b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612635602683612167565b9150612640826125db565b604082019050919050565b5f6020820190508181035f83015261266281612629565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6126c3602483612167565b91506126ce82612669565b604082019050919050565b5f6020820190508181035f8301526126f0816126b7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612751602283612167565b915061275c826126f7565b604082019050919050565b5f6020820190508181035f83015261277e81612745565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6127df602583612167565b91506127ea82612785565b604082019050919050565b5f6020820190508181035f83015261280c816127d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61286d602383612167565b915061287882612813565b604082019050919050565b5f6020820190508181035f83015261289a81612861565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6128fb602983612167565b9150612906826128a1565b604082019050919050565b5f6020820190508181035f830152612928816128ef565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f612989603f83612167565b91506129948261292f565b604082019050919050565b5f6020820190508181035f8301526129b68161297d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6129f482612265565b91506129ff83612265565b9250828201905080821115612a1757612a166129bd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f612a77602383612167565b9150612a8282612a1d565b604082019050919050565b5f6020820190508181035f830152612aa481612a6b565b9050919050565b5f612ab582612265565b9150612ac083612265565b9250828203905081811115612ad857612ad76129bd565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612b468161223b565b92915050565b5f60208284031215612b6157612b60612207565b5b5f612b6e84828501612b38565b91505092915050565b5f819050919050565b5f612b9a612b95612b9084612b77565b612309565b612265565b9050919050565b612baa81612b80565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612be28161222a565b82525050565b5f612bf38383612bd9565b60208301905092915050565b5f602082019050919050565b5f612c1582612bb0565b612c1f8185612bba565b9350612c2a83612bca565b805f5b83811015612c5a578151612c418882612be8565b9750612c4c83612bff565b925050600181019050612c2d565b5085935050505092915050565b5f60a082019050612c7a5f83018861237d565b612c876020830187612ba1565b8181036040830152612c998186612c0b565b9050612ca86060830185612429565b612cb5608083018461237d565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612d19602a83612167565b9150612d2482612cbf565b604082019050919050565b5f6020820190508181035f830152612d4681612d0d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612d8482612265565b9150612d8f83612265565b925082612d9f57612d9e612d4d565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612dde601b83612167565b9150612de982612daa565b602082019050919050565b5f6020820190508181035f830152612e0b81612dd2565b9050919050565b5f612e1c82612265565b9150612e2783612265565b9250828202612e3581612265565b91508282048414831517612e4c57612e4b6129bd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ead602183612167565b9150612eb882612e53565b604082019050919050565b5f6020820190508181035f830152612eda81612ea1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122097ea061517dedfa5ab656a32e14fc4e9b18c2f614ef38cf05a9eb56ccd9c3f3264736f6c63430008140033
Deployed Bytecode Sourcemap
4729:12136:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7231:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8163:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5934:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7511:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8365:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6189:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7419:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5982:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12692:355;;;;;;;;;;;;;:::i;:::-;;7615:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2203:148;;;;;;;;;;;;;:::i;:::-;;16773:85;;;;;;;;;;;;;:::i;:::-;;1987:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12582:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6126:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7323:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16467:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7762:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7970:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2360:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7231:83;7268:13;7301:5;;;;;;;;;;;;;;;;;7294:12;;7231:83;:::o;8163:193::-;8265:4;8287:39;8296:12;:10;:12::i;:::-;8310:7;8319:6;8287:8;:39::i;:::-;8344:4;8337:11;;8163:193;;;;:::o;5934:41::-;;;;;;;;;;;;;:::o;7511:95::-;7564:7;5335:21;7584:14;;7511:95;:::o;8365:446::-;8497:4;8514:36;8524:6;8532:9;8543:6;8514:9;:36::i;:::-;8561:220;8584:6;8605:12;:10;:12::i;:::-;8632:138;8688:6;8632:138;;;;;;;;;;;;;;;;;:11;:19;8644:6;8632:19;;;;;;;;;;;;;;;:33;8652:12;:10;:12::i;:::-;8632:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8561:8;:220::i;:::-;8799:4;8792:11;;8365:446;;;;;:::o;6189:61::-;;;;:::o;7419:83::-;7460:5;4948:1;7478:16;;7419:83;:::o;5982:28::-;;;;;;;;;;;;;:::o;12692:355::-;12756:17;;;;;;;;;;;12742:31;;:12;:10;:12::i;:::-;:31;;;12734:40;;;;;;12785:20;12806:24;12824:4;12806:9;:24::i;:::-;12785:45;;12857:1;12844:12;:14;12841:73;;;12872:30;12889:12;12872:16;:30::i;:::-;12841:73;12924:18;12943:21;12924:40;;12989:1;12978:10;:12;12975:65;;;13004:24;13017:10;13004:12;:24::i;:::-;12975:65;12723:324;;12692:355::o;7615:138::-;7681:7;7708:37;7728:7;:16;7736:7;7728:16;;;;;;;;;;;;;;;;7708:19;:37::i;:::-;7701:44;;7615:138;;;:::o;2203:148::-;2125:12;:10;:12::i;:::-;2115:22;;:6;;;;;;;;;;:22;;;2107:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2310:1:::1;2273:40;;2294:6;::::0;::::1;;;;;;;;2273:40;;;;;;;;;;;;2341:1;2324:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2203:148::o:0;16773:85::-;2125:12;:10;:12::i;:::-;2115:22;;:6;;;;;;;;;;:22;;;2107:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5335:21:::1;16826:14;:24;;;;16773:85::o:0;1987:79::-;2025:7;2052:6;;;;;;;;;;;2045:13;;1987:79;:::o;12582:101::-;2125:12;:10;:12::i;:::-;2115:22;;:6;;;;;;;;;;:22;;;2107:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12663:12:::1;12649:11;;:26;;;;;;;;;;;;;;;;;;12582:101:::0;:::o;6126:55::-;;;;:::o;7323:87::-;7362:13;7395:7;;;;;;;;;;;;;;;;;7388:14;;7323:87;:::o;16467:295::-;2125:12;:10;:12::i;:::-;2115:22;;:6;;;;;;;;;;:22;;;2107:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16620:13:::1;16603:14;:30;;;;16662:14;16644:15;:32;;;;16702:11;16687:12;:26;;;;16740:12;16724:13;:28;;;;16467:295:::0;;;;:::o;7762:199::-;7867:4;7889:42;7899:12;:10;:12::i;:::-;7913:9;7924:6;7889:9;:42::i;:::-;7949:4;7942:11;;7762:199;;;;:::o;7970:184::-;8087:7;8119:11;:18;8131:5;8119:18;;;;;;;;;;;;;;;:27;8138:7;8119:27;;;;;;;;;;;;;;;;8112:34;;7970:184;;;;:::o;2360:244::-;2125:12;:10;:12::i;:::-;2115:22;;:6;;;;;;;;;;:22;;;2107:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2469:1:::1;2449:22;;:8;:22;;::::0;2441:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2559:8;2530:38;;2551:6;::::0;::::1;;;;;;;;2530:38;;;;;;;;;;;;2588:8;2579:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2360:244:::0;:::o;735:98::-;788:7;815:10;808:17;;735:98;:::o;9508:369::-;9652:1;9635:19;;:5;:19;;;9627:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9733:1;9714:21;;:7;:21;;;9706:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9815:6;9785:11;:18;9797:5;9785:18;;;;;;;;;;;;;;;:27;9804:7;9785:27;;;;;;;;;;;;;;;:36;;;;9853:7;9837:32;;9846:5;9837:32;;;9862:6;9837:32;;;;;;:::i;:::-;;;;;;;;9508:369;;;:::o;9886:2087::-;10024:1;10008:18;;:4;:18;;;10000:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10101:1;10087:16;;:2;:16;;;10079:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10171:1;10162:6;:10;10154:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10244:7;:5;:7::i;:::-;10236:15;;:4;:15;;;;:32;;;;;10261:7;:5;:7::i;:::-;10255:13;;:2;:13;;;;10236:32;10232:1008;;;10326:11;;;;;;;;;;;10321:144;;10374:7;:5;:7::i;:::-;10366:15;;:4;:15;;;10358:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10321:144;10490:13;;;;;;;;;;;10484:19;;:2;:19;;;;:46;;;;;10508:18;:22;10527:2;10508:22;;;;;;;;;;;;;;;;;;;;;;;;;10507:23;10484:46;10481:173;;;10584:14;;10575:6;10559:13;10569:2;10559:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10551:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10481:173;10671:28;10702:24;10720:4;10702:9;:24::i;:::-;10671:55;;10741:12;10780:19;;10756:20;:43;;10741:58;;10824:7;:18;;;;;10836:6;;;;;;;;;;;10835:7;10824:18;:43;;;;;10854:13;;;;;;;;;;;10846:21;;:4;:21;;;;10824:43;:66;;;;;10877:13;;;;;;;;;;;10871:19;;:2;:19;;;10824:66;:81;;;;;10894:11;;;;;;;;;;;10824:81;:110;;;;;10910:18;:24;10929:4;10910:24;;;;;;;;;;;;;;;;;;;;;;;;;10909:25;10824:110;:137;;;;;10939:18;:22;10958:2;10939:22;;;;;;;;;;;;;;;;;;;;;;;;;10938:23;10824:137;10820:409;;;10982:38;10999:20;10982:16;:38::i;:::-;11039:26;11068:21;11039:50;;11133:1;11112:18;:22;11108:106;;;11159:35;11172:21;11159:12;:35::i;:::-;11108:106;10963:266;10820:409;10270:970;;10232:1008;11254:12;11269:4;11254:19;;11319:18;:24;11338:4;11319:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11347:18;:22;11366:2;11347:22;;;;;;;;;;;;;;;;;;;;;;;;;11319:50;11318:102;;;;11383:13;;;;;;;;;;;11375:21;;:4;:21;;;;:44;;;;;11406:13;;;;;;;;;;;11400:19;;:2;:19;;;;11375:44;11318:102;11314:597;;;11447:5;11437:15;;11314:597;;;11531:13;;;;;;;;;;;11523:21;;:4;:21;;;:55;;;;;11562:15;;;;;;;;;;;11548:30;;:2;:30;;;;11523:55;11520:162;;;11611:14;;11599:9;:26;;;;11654:12;;11644:7;:22;;;;11520:162;11742:13;;;;;;;;;;;11736:19;;:2;:19;;;:55;;;;;11775:15;;;;;;;;;;;11759:32;;:4;:32;;;;11736:55;11732:165;;;11824:15;;11812:9;:27;;;;11868:13;;11858:7;:23;;;;11732:165;11314:597;11924:41;11939:4;11945:2;11949:6;11957:7;11924:14;:41::i;:::-;9989:1984;9886:2087;;;:::o;2971:224::-;3091:7;3124:1;3119;:6;;3127:12;3111:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3151:9;3167:1;3163;:5;;;;:::i;:::-;3151:17;;3186:1;3179:8;;;2971:224;;;;;:::o;11982:483::-;6303:4;6294:6;;:13;;;;;;;;;;;;;;;;;;12060:21:::1;12098:1;12084:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12060:40;;12129:4;12111;12116:1;12111:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12155:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12145:4;12150:1;12145:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12188:62;12205:4;12220:15;;;;;;;;;;;12238:11;12188:8;:62::i;:::-;12261:15;;;;;;;;;;;:66;;;12342:11;12368:1;12384:4;12411;12431:15;12261:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12049:416;6339:5:::0;6330:6;;:14;;;;;;;;;;;;;;;;;;11982:483;:::o;12474:99::-;12531:17;;;;;;;;;;;:26;;:34;12558:6;12531:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12474:99;:::o;8820:323::-;8915:7;8973;;8962;:18;;8940:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9061:19;9083:10;:8;:10::i;:::-;9061:32;;9111:24;9123:11;9111:7;:11;;:24;;;;:::i;:::-;9104:31;;;8820:323;;;:::o;13059:282::-;13215:7;13210:28;;13224:14;:12;:14::i;:::-;13210:28;13249:44;13267:6;13275:9;13286:6;13249:17;:44::i;:::-;13309:7;13304:29;;13318:15;:13;:15::i;:::-;13304:29;13059:282;;;;:::o;16028:164::-;16070:7;16091:15;16108;16127:19;:17;:19::i;:::-;16090:56;;;;16164:20;16176:7;16164;:11;;:20;;;;:::i;:::-;16157:27;;;;16028:164;:::o;3459:132::-;3517:7;3544:39;3548:1;3551;3544:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3537:46;;3459:132;;;;:::o;9152:221::-;9212:1;9199:9;;:14;:30;;;;;9228:1;9217:7;;:12;9199:30;9231:7;9195:43;9271:9;;9251:17;:29;;;;9309:7;;9291:15;:25;;;;9342:1;9330:9;:13;;;;9364:1;9354:7;:11;;;;9152:221;:::o;13350:610::-;13497:15;13527:23;13565:12;13592:23;13630:12;13657:13;13684:19;13695:7;13684:10;:19::i;:::-;13482:221;;;;;;;;;;;;13732:28;13752:7;13732;:15;13740:6;13732:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13714:7;:15;13722:6;13714:15;;;;;;;;;;;;;;;:46;;;;13792:39;13815:15;13792:7;:18;13800:9;13792:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13771:7;:18;13779:9;13771:18;;;;;;;;;;;;;;;:60;;;;13842:16;13852:5;13842:9;:16::i;:::-;13869:23;13881:4;13887;13869:11;:23::i;:::-;13925:9;13908:44;;13917:6;13908:44;;;13936:15;13908:44;;;;;;:::i;:::-;;;;;;;;13471:489;;;;;;13350:610;;;:::o;9382:117::-;9438:17;;9426:9;:29;;;;9476:15;;9466:7;:25;;;;9382:117::o;16201:257::-;16252:7;16261;16281:15;16299:7;;16281:25;;16317:15;5335:21;16317:25;;16367:20;5335:21;16367:7;;:11;;:20;;;;:::i;:::-;16357:7;:30;16353:61;;;16397:7;;5335:21;16389:25;;;;;;;;16353:61;16433:7;16442;16425:25;;;;;;16201:257;;;:::o;3600:223::-;3720:7;3752:1;3748;:5;3755:12;3740:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3779:9;3795:1;3791;:5;;;;:::i;:::-;3779:17;;3814:1;3807:8;;;3600:223;;;;;:::o;14383:615::-;14483:7;14505;14527;14549;14571;14593;14629:23;14654:12;14668:13;14698:40;14710:7;14719:9;;14730:7;;14698:11;:40::i;:::-;14628:110;;;;;;14749:19;14771:10;:8;:10::i;:::-;14749:32;;14793:15;14810:23;14835:12;14864:46;14876:7;14885:4;14891:5;14898:11;14864;:46::i;:::-;14792:118;;;;;;14929:7;14938:15;14955:4;14961:15;14978:4;14984:5;14921:69;;;;;;;;;;;;;;;;;;;14383:615;;;;;;;:::o;2826:136::-;2884:7;2911:43;2915:1;2918;2911:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2904:50;;2826:136;;;;:::o;2638:179::-;2696:7;2716:9;2732:1;2728;:5;;;;:::i;:::-;2716:17;;2757:1;2752;:6;;2744:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2808:1;2801:8;;;2638:179;;;;:::o;13969:211::-;14022:19;14044:10;:8;:10::i;:::-;14022:32;;14065:13;14081:22;14091:11;14081:5;:9;;:22;;;;:::i;:::-;14065:38;;14139:33;14166:5;14139:7;:22;14155:4;14139:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14114:7;:22;14130:4;14114:22;;;;;;;;;;;;;;;:58;;;;14011:169;;13969:211;:::o;14189:147::-;14267:17;14279:4;14267:7;;:11;;:17;;;;:::i;:::-;14257:7;:27;;;;14308:20;14323:4;14308:10;;:14;;:20;;;;:::i;:::-;14295:10;:33;;;;14189:147;;:::o;15007:469::-;15176:7;15198;15220;15255:12;15270:30;15296:3;15270:21;15282:8;15270:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15255:45;;15311:13;15327:28;15351:3;15327:19;15339:6;15327:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15311:44;;15366:23;15392:28;15414:5;15392:17;15404:4;15392:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15366:54;;15439:15;15456:4;15462:5;15431:37;;;;;;;;;15007:469;;;;;;;:::o;15485:534::-;15679:7;15701;15723;15758:15;15776:24;15788:11;15776:7;:11;;:24;;;;:::i;:::-;15758:42;;15811:12;15826:21;15835:11;15826:4;:8;;:21;;;;:::i;:::-;15811:36;;15858:13;15874:22;15884:11;15874:5;:9;;:22;;;;:::i;:::-;15858:38;;15907:23;15933:28;15955:5;15933:17;15945:4;15933:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15907:54;;15980:7;15989:15;16006:4;15972:39;;;;;;;;;;15485:534;;;;;;;;:::o;3204:246::-;3262:7;3291:1;3286;:6;3282:47;;3316:1;3309:8;;;;3282:47;3339:9;3355:1;3351;:5;;;;:::i;:::-;3339:17;;3384:1;3379;3375;:5;;;;:::i;:::-;:10;3367:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3441:1;3434:8;;;3204:246;;;;;:::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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:323::-;6830:6;6879:2;6867:9;6858:7;6854:23;6850:32;6847:119;;;6885:79;;:::i;:::-;6847:119;7005:1;7030:50;7072:7;7063:6;7052:9;7048:22;7030:50;:::i;:::-;7020:60;;6976:114;6774:323;;;;:::o;7103:765::-;7189:6;7197;7205;7213;7262:3;7250:9;7241:7;7237:23;7233:33;7230:120;;;7269:79;;:::i;:::-;7230:120;7389:1;7414:53;7459:7;7450:6;7439:9;7435:22;7414:53;:::i;:::-;7404:63;;7360:117;7516:2;7542:53;7587:7;7578:6;7567:9;7563:22;7542:53;:::i;:::-;7532:63;;7487:118;7644:2;7670:53;7715:7;7706:6;7695:9;7691:22;7670:53;:::i;:::-;7660:63;;7615:118;7772:2;7798:53;7843:7;7834:6;7823:9;7819:22;7798:53;:::i;:::-;7788:63;;7743:118;7103:765;;;;;;;:::o;7874:474::-;7942:6;7950;7999:2;7987:9;7978:7;7974:23;7970:32;7967:119;;;8005:79;;:::i;:::-;7967:119;8125:1;8150:53;8195:7;8186:6;8175:9;8171:22;8150:53;:::i;:::-;8140:63;;8096:117;8252:2;8278:53;8323:7;8314:6;8303:9;8299:22;8278:53;:::i;:::-;8268:63;;8223:118;7874:474;;;;;:::o;8354:182::-;8494:34;8490:1;8482:6;8478:14;8471:58;8354:182;:::o;8542:366::-;8684:3;8705:67;8769:2;8764:3;8705:67;:::i;:::-;8698:74;;8781:93;8870:3;8781:93;:::i;:::-;8899:2;8894:3;8890:12;8883:19;;8542:366;;;:::o;8914:419::-;9080:4;9118:2;9107:9;9103:18;9095:26;;9167:9;9161:4;9157:20;9153:1;9142:9;9138:17;9131:47;9195:131;9321:4;9195:131;:::i;:::-;9187:139;;8914:419;;;:::o;9339:225::-;9479:34;9475:1;9467:6;9463:14;9456:58;9548:8;9543:2;9535:6;9531:15;9524:33;9339:225;:::o;9570:366::-;9712:3;9733:67;9797:2;9792:3;9733:67;:::i;:::-;9726:74;;9809:93;9898:3;9809:93;:::i;:::-;9927:2;9922:3;9918:12;9911:19;;9570:366;;;:::o;9942:419::-;10108:4;10146:2;10135:9;10131:18;10123:26;;10195:9;10189:4;10185:20;10181:1;10170:9;10166:17;10159:47;10223:131;10349:4;10223:131;:::i;:::-;10215:139;;9942:419;;;:::o;10367:223::-;10507:34;10503:1;10495:6;10491:14;10484:58;10576:6;10571:2;10563:6;10559:15;10552:31;10367:223;:::o;10596:366::-;10738:3;10759:67;10823:2;10818:3;10759:67;:::i;:::-;10752:74;;10835:93;10924:3;10835:93;:::i;:::-;10953:2;10948:3;10944:12;10937:19;;10596:366;;;:::o;10968:419::-;11134:4;11172:2;11161:9;11157:18;11149:26;;11221:9;11215:4;11211:20;11207:1;11196:9;11192:17;11185:47;11249:131;11375:4;11249:131;:::i;:::-;11241:139;;10968:419;;;:::o;11393:221::-;11533:34;11529:1;11521:6;11517:14;11510:58;11602:4;11597:2;11589:6;11585:15;11578:29;11393:221;:::o;11620:366::-;11762:3;11783:67;11847:2;11842:3;11783:67;:::i;:::-;11776:74;;11859:93;11948:3;11859:93;:::i;:::-;11977:2;11972:3;11968:12;11961:19;;11620:366;;;:::o;11992:419::-;12158:4;12196:2;12185:9;12181:18;12173:26;;12245:9;12239:4;12235:20;12231:1;12220:9;12216:17;12209:47;12273:131;12399:4;12273:131;:::i;:::-;12265:139;;11992:419;;;:::o;12417:224::-;12557:34;12553:1;12545:6;12541:14;12534:58;12626:7;12621:2;12613:6;12609:15;12602:32;12417:224;:::o;12647:366::-;12789:3;12810:67;12874:2;12869:3;12810:67;:::i;:::-;12803:74;;12886:93;12975:3;12886:93;:::i;:::-;13004:2;12999:3;12995:12;12988:19;;12647:366;;;:::o;13019:419::-;13185:4;13223:2;13212:9;13208:18;13200:26;;13272:9;13266:4;13262:20;13258:1;13247:9;13243:17;13236:47;13300:131;13426:4;13300:131;:::i;:::-;13292:139;;13019:419;;;:::o;13444:222::-;13584:34;13580:1;13572:6;13568:14;13561:58;13653:5;13648:2;13640:6;13636:15;13629:30;13444:222;:::o;13672:366::-;13814:3;13835:67;13899:2;13894:3;13835:67;:::i;:::-;13828:74;;13911:93;14000:3;13911:93;:::i;:::-;14029:2;14024:3;14020:12;14013:19;;13672:366;;;:::o;14044:419::-;14210:4;14248:2;14237:9;14233:18;14225:26;;14297:9;14291:4;14287:20;14283:1;14272:9;14268:17;14261:47;14325:131;14451:4;14325:131;:::i;:::-;14317:139;;14044:419;;;:::o;14469:228::-;14609:34;14605:1;14597:6;14593:14;14586:58;14678:11;14673:2;14665:6;14661:15;14654:36;14469:228;:::o;14703:366::-;14845:3;14866:67;14930:2;14925:3;14866:67;:::i;:::-;14859:74;;14942:93;15031:3;14942:93;:::i;:::-;15060:2;15055:3;15051:12;15044:19;;14703:366;;;:::o;15075:419::-;15241:4;15279:2;15268:9;15264:18;15256:26;;15328:9;15322:4;15318:20;15314:1;15303:9;15299:17;15292:47;15356:131;15482:4;15356:131;:::i;:::-;15348:139;;15075:419;;;:::o;15500:250::-;15640:34;15636:1;15628:6;15624:14;15617:58;15709:33;15704:2;15696:6;15692:15;15685:58;15500:250;:::o;15756:366::-;15898:3;15919:67;15983:2;15978:3;15919:67;:::i;:::-;15912:74;;15995:93;16084:3;15995:93;:::i;:::-;16113:2;16108:3;16104:12;16097:19;;15756:366;;;:::o;16128:419::-;16294:4;16332:2;16321:9;16317:18;16309:26;;16381:9;16375:4;16371:20;16367:1;16356:9;16352:17;16345:47;16409:131;16535:4;16409:131;:::i;:::-;16401:139;;16128:419;;;:::o;16553:180::-;16601:77;16598:1;16591:88;16698:4;16695:1;16688:15;16722:4;16719:1;16712:15;16739:191;16779:3;16798:20;16816:1;16798:20;:::i;:::-;16793:25;;16832:20;16850:1;16832:20;:::i;:::-;16827:25;;16875:1;16872;16868:9;16861:16;;16896:3;16893:1;16890:10;16887:36;;;16903:18;;:::i;:::-;16887:36;16739:191;;;;:::o;16936:222::-;17076:34;17072:1;17064:6;17060:14;17053:58;17145:5;17140:2;17132:6;17128:15;17121:30;16936:222;:::o;17164:366::-;17306:3;17327:67;17391:2;17386:3;17327:67;:::i;:::-;17320:74;;17403:93;17492:3;17403:93;:::i;:::-;17521:2;17516:3;17512:12;17505:19;;17164:366;;;:::o;17536:419::-;17702:4;17740:2;17729:9;17725:18;17717:26;;17789:9;17783:4;17779:20;17775:1;17764:9;17760:17;17753:47;17817:131;17943:4;17817:131;:::i;:::-;17809:139;;17536:419;;;:::o;17961:194::-;18001:4;18021:20;18039:1;18021:20;:::i;:::-;18016:25;;18055:20;18073:1;18055:20;:::i;:::-;18050:25;;18099:1;18096;18092:9;18084:17;;18123:1;18117:4;18114:11;18111:37;;;18128:18;;:::i;:::-;18111:37;17961:194;;;;:::o;18161:180::-;18209:77;18206:1;18199:88;18306:4;18303:1;18296:15;18330:4;18327:1;18320:15;18347:180;18395:77;18392:1;18385:88;18492:4;18489:1;18482:15;18516:4;18513:1;18506:15;18533:143;18590:5;18621:6;18615:13;18606:22;;18637:33;18664:5;18637:33;:::i;:::-;18533:143;;;;:::o;18682:351::-;18752:6;18801:2;18789:9;18780:7;18776:23;18772:32;18769:119;;;18807:79;;:::i;:::-;18769:119;18927:1;18952:64;19008:7;18999:6;18988:9;18984:22;18952:64;:::i;:::-;18942:74;;18898:128;18682:351;;;;:::o;19039:85::-;19084:7;19113:5;19102:16;;19039:85;;;:::o;19130:158::-;19188:9;19221:61;19239:42;19248:32;19274:5;19248:32;:::i;:::-;19239:42;:::i;:::-;19221:61;:::i;:::-;19208:74;;19130:158;;;:::o;19294:147::-;19389:45;19428:5;19389:45;:::i;:::-;19384:3;19377:58;19294:147;;:::o;19447:114::-;19514:6;19548:5;19542:12;19532:22;;19447:114;;;:::o;19567:184::-;19666:11;19700:6;19695:3;19688:19;19740:4;19735:3;19731:14;19716:29;;19567:184;;;;:::o;19757:132::-;19824:4;19847:3;19839:11;;19877:4;19872:3;19868:14;19860:22;;19757:132;;;:::o;19895:108::-;19972:24;19990:5;19972:24;:::i;:::-;19967:3;19960:37;19895:108;;:::o;20009:179::-;20078:10;20099:46;20141:3;20133:6;20099:46;:::i;:::-;20177:4;20172:3;20168:14;20154:28;;20009:179;;;;:::o;20194:113::-;20264:4;20296;20291:3;20287:14;20279:22;;20194:113;;;:::o;20343:732::-;20462:3;20491:54;20539:5;20491:54;:::i;:::-;20561:86;20640:6;20635:3;20561:86;:::i;:::-;20554:93;;20671:56;20721:5;20671:56;:::i;:::-;20750:7;20781:1;20766:284;20791:6;20788:1;20785:13;20766:284;;;20867:6;20861:13;20894:63;20953:3;20938:13;20894:63;:::i;:::-;20887:70;;20980:60;21033:6;20980:60;:::i;:::-;20970:70;;20826:224;20813:1;20810;20806:9;20801:14;;20766:284;;;20770:14;21066:3;21059:10;;20467:608;;;20343:732;;;;:::o;21081:831::-;21344:4;21382:3;21371:9;21367:19;21359:27;;21396:71;21464:1;21453:9;21449:17;21440:6;21396:71;:::i;:::-;21477:80;21553:2;21542:9;21538:18;21529:6;21477:80;:::i;:::-;21604:9;21598:4;21594:20;21589:2;21578:9;21574:18;21567:48;21632:108;21735:4;21726:6;21632:108;:::i;:::-;21624:116;;21750:72;21818:2;21807:9;21803:18;21794:6;21750:72;:::i;:::-;21832:73;21900:3;21889:9;21885:19;21876:6;21832:73;:::i;:::-;21081:831;;;;;;;;:::o;21918:229::-;22058:34;22054:1;22046:6;22042:14;22035:58;22127:12;22122:2;22114:6;22110:15;22103:37;21918:229;:::o;22153:366::-;22295:3;22316:67;22380:2;22375:3;22316:67;:::i;:::-;22309:74;;22392:93;22481:3;22392:93;:::i;:::-;22510:2;22505:3;22501:12;22494:19;;22153:366;;;:::o;22525:419::-;22691:4;22729:2;22718:9;22714:18;22706:26;;22778:9;22772:4;22768:20;22764:1;22753:9;22749:17;22742:47;22806:131;22932:4;22806:131;:::i;:::-;22798:139;;22525:419;;;:::o;22950:180::-;22998:77;22995:1;22988:88;23095:4;23092:1;23085:15;23119:4;23116:1;23109:15;23136:185;23176:1;23193:20;23211:1;23193:20;:::i;:::-;23188:25;;23227:20;23245:1;23227:20;:::i;:::-;23222:25;;23266:1;23256:35;;23271:18;;:::i;:::-;23256:35;23313:1;23310;23306:9;23301:14;;23136:185;;;;:::o;23327:177::-;23467:29;23463:1;23455:6;23451:14;23444:53;23327:177;:::o;23510:366::-;23652:3;23673:67;23737:2;23732:3;23673:67;:::i;:::-;23666:74;;23749:93;23838:3;23749:93;:::i;:::-;23867:2;23862:3;23858:12;23851:19;;23510:366;;;:::o;23882:419::-;24048:4;24086:2;24075:9;24071:18;24063:26;;24135:9;24129:4;24125:20;24121:1;24110:9;24106:17;24099:47;24163:131;24289:4;24163:131;:::i;:::-;24155:139;;23882:419;;;:::o;24307:410::-;24347:7;24370:20;24388:1;24370:20;:::i;:::-;24365:25;;24404:20;24422:1;24404:20;:::i;:::-;24399:25;;24459:1;24456;24452:9;24481:30;24499:11;24481:30;:::i;:::-;24470:41;;24660:1;24651:7;24647:15;24644:1;24641:22;24621:1;24614:9;24594:83;24571:139;;24690:18;;:::i;:::-;24571:139;24355:362;24307:410;;;;:::o;24723:220::-;24863:34;24859:1;24851:6;24847:14;24840:58;24932:3;24927:2;24919:6;24915:15;24908:28;24723:220;:::o;24949:366::-;25091:3;25112:67;25176:2;25171:3;25112:67;:::i;:::-;25105:74;;25188:93;25277:3;25188:93;:::i;:::-;25306:2;25301:3;25297:12;25290:19;;24949:366;;;:::o;25321:419::-;25487:4;25525:2;25514:9;25510:18;25502:26;;25574:9;25568:4;25564:20;25560:1;25549:9;25545:17;25538:47;25602:131;25728:4;25602:131;:::i;:::-;25594:139;;25321:419;;;:::o
Swarm Source
ipfs://97ea061517dedfa5ab656a32e14fc4e9b18c2f614ef38cf05a9eb56ccd9c3f32
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.