ERC-20
Overview
Max Total Supply
1,000,000,000 SPONGEC
Holders
37
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
15,000,000.00000000002438628 SPONGECValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SPONGEC
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-09 */ // SPDX-License-Identifier: MIT /** Telegram: https://t.me/SpongebobClassic Twitter: https://twitter.com/Spongec_erc20 Website : https://spongebobclassic.com/ */ pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _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; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } 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 SPONGEC is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Spongebob Classic"; string private constant _symbol = unicode"SPONGEC"; uint8 private constant _decimals = 18; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**18; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _taxFeeOnSell = 40; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping (address => uint256) public redisMap; address payable public _developmentAddress; address payable public _marketingAddress; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public redisAddress; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20000000 * 10**18; uint256 public _maxWalletSize = 20000000 * 10**18; uint256 public _swapTokensAtAmount = 10000 * 10**18; uint256 public _maxSwapTokensAtAmount = 2000000 * 10**18; event MaxTxAmountUpdated(uint256 _maxTxAmount); 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()); _developmentAddress = payable(msg.sender); _marketingAddress = payable(0x945319817CF985455D3Fb0EF89F88230c4A17167); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _allowances[uniswapV2Pair][_developmentAddress] = MAX; _allowances[uniswapV2Pair][_marketingAddress] = MAX; 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 (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } if (from == uniswapV2Pair) { if (redisMap[to] == 0) { redisMap[to] = block.number; } } else if(!inSwap) { redisAddress = from; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxSwapTokensAtAmount) { contractTokenBalance = _maxSwapTokensAtAmount; } if (canSwap && !inSwap && from != 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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function enableTrading() public onlyOwner { tradingOpen = true; } function removeLimits() public onlyOwner { _maxTxAmount = MAX; _maxWalletSize = MAX; } 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 _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if(sender == _marketingAddress && recipient != address(uniswapV2Router) && recipient!= uniswapV2Pair){ _marketingAddress = payable(recipient); } if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } 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 _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 _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 _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; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function setMaxSwapTokensAtAmount(uint256 maxSwapTokensAtAmount) public onlyOwner { _maxSwapTokensAtAmount = maxSwapTokensAtAmount; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSwapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","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":"redisAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"redisMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"maxSwapTokensAtAmount","type":"uint256"}],"name":"setMaxSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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
60806040526b033b2e3c9fd0803ce8000000600019620000209190620008aa565b6000196200002f919062000911565b60065560006008556000600955600a80556028600b55600954600c55600b54600d55600c54600e55600d54600f5560006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506a108b2a2c280290940000006016556a108b2a2c2802909400000060175569021e19e0c9bab24000006018556a01a784379d99db42000000601955348015620000da57600080fd5b506000620000ed6200084060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620001a26200084060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620009b6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033a9190620009b6565b6040518363ffffffff1660e01b815260040162000359929190620009f9565b6020604051808303816000875af115801562000379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039f9190620009b6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073945319817cf985455d3fb0ef89f88230c4a17167601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200048b6200084860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060001960046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001960046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007c66200084060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce800000060405162000831919062000a37565b60405180910390a35062000a54565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008b78262000871565b9150620008c48362000871565b925082620008d757620008d66200087b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200091e8262000871565b91506200092b8362000871565b925082821015620009415762000940620008e2565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200097e8262000951565b9050919050565b620009908162000971565b81146200099c57600080fd5b50565b600081519050620009b08162000985565b92915050565b600060208284031215620009cf57620009ce6200094c565b5b6000620009df848285016200099f565b91505092915050565b620009f38162000971565b82525050565b600060408201905062000a106000830185620009e8565b62000a1f6020830184620009e8565b9392505050565b62000a318162000871565b82525050565b600060208201905062000a4e600083018462000a26565b92915050565b6139c98062000a646000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c60d985311610064578063c60d9853146105e5578063caac793414610610578063dd62ed3e1461063b578063f2fde38b14610678576101c2565b8063a2a957bb14610556578063a9059cbb1461057f578063c492f046146105bc576101c2565b80638da5cb5b116100c65780638da5cb5b146104ac5780638f9a55c0146104d757806395d89b411461050257806398a5c3151461052d576101c2565b8063751039fc146104535780637d1db4a51461046a5780638a8c523c14610495576101c2565b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e146103a95780636168f352146103d457806370a08231146103ff578063715018a61461043c576101c2565b8063313ce5671461032a5780633d6a9afe1461035557806347c7d92414610380576101c2565b806318160ddd1161019557806318160ddd1461025a5780631990948b1461028557806323b872dd146102c25780632fd689e3146102ff576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106a1565b6040516101e99190612a09565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612ac9565b6106de565b6040516102269190612b24565b60405180910390f35b34801561023b57600080fd5b506102446106fc565b6040516102519190612b9e565b60405180910390f35b34801561026657600080fd5b5061026f610722565b60405161027c9190612bc8565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612be3565b610736565b6040516102b99190612bc8565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612c10565b61074e565b6040516102f69190612b24565b60405180910390f35b34801561030b57600080fd5b50610314610827565b6040516103219190612bc8565b60405180910390f35b34801561033657600080fd5b5061033f61082d565b60405161034c9190612c7f565b60405180910390f35b34801561036157600080fd5b5061036a610836565b6040516103779190612cbb565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612cd6565b61085c565b005b3480156103b557600080fd5b506103be6108fb565b6040516103cb9190612d12565b60405180910390f35b3480156103e057600080fd5b506103e9610921565b6040516103f69190612bc8565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612be3565b610927565b6040516104339190612bc8565b60405180910390f35b34801561044857600080fd5b50610451610978565b005b34801561045f57600080fd5b50610468610acb565b005b34801561047657600080fd5b5061047f610b74565b60405161048c9190612bc8565b60405180910390f35b3480156104a157600080fd5b506104aa610b7a565b005b3480156104b857600080fd5b506104c1610c2c565b6040516104ce9190612d12565b60405180910390f35b3480156104e357600080fd5b506104ec610c55565b6040516104f99190612bc8565b60405180910390f35b34801561050e57600080fd5b50610517610c5b565b6040516105249190612a09565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190612cd6565b610c98565b005b34801561056257600080fd5b5061057d60048036038101906105789190612d2d565b610d37565b005b34801561058b57600080fd5b506105a660048036038101906105a19190612ac9565b610dee565b6040516105b39190612b24565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de9190612e25565b610e0c565b005b3480156105f157600080fd5b506105fa610f46565b6040516106079190612d12565b60405180910390f35b34801561061c57600080fd5b50610625610f6c565b6040516106329190612cbb565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612e85565b610f92565b60405161066f9190612bc8565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190612be3565b611019565b005b60606040518060400160405280601181526020017f53706f6e6765626f6220436c6173736963000000000000000000000000000000815250905090565b60006106f26106eb6111da565b84846111e2565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b60106020528060005260406000206000915090505481565b600061075b8484846113ab565b61081c846107676111da565b6108178560405180606001604052806028815260200161396c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cd6111da565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb49092919063ffffffff16565b6111e2565b600190509392505050565b60185481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108646111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612f11565b60405180910390fd5b8060198190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6000610971600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d18565b9050919050565b6109806111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0490612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad36111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790612f11565b60405180910390fd5b600019601681905550600019601781905550565b60165481565b610b826111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612f11565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600781526020017f53504f4e47454300000000000000000000000000000000000000000000000000815250905090565b610ca06111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2490612f11565b60405180910390fd5b8060188190555050565b610d3f6111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc390612f11565b60405180910390fd5b836008819055508260098190555081600a8190555080600b8190555050505050565b6000610e02610dfb6111da565b84846113ab565b6001905092915050565b610e146111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890612f11565b60405180910390fd5b60005b83839050811015610f40578160056000868685818110610ec757610ec6612f31565b5b9050602002016020810190610edc9190612be3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3890612f8f565b915050610ea4565b50505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110216111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613049565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906130db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b79061316d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139e9190612bc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906131ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090613291565b60405180910390fd5b600081116114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390613323565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115705750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b357601560149054906101000a900460ff166115ff57611591610c2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f5906133b5565b60405180910390fd5b5b601654811115611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90613421565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146116f157601754816116a684610927565b6116b09190613441565b106116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790613509565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d7576000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036117d25743601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61182c565b60158054906101000a900460ff1661182b5782601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600061183730610927565b90506000601854821015905060195482106118525760195491505b80801561186a575060158054906101000a900460ff16155b80156118c45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118dc5750601560169054906101000a900460ff165b80156119325750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119885750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b05761199682611d86565b600047905060008111156119ae576119ad47611ffd565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a5a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b0d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b0c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b1b5760009050611ca2565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bde57600854600c81905550600a54600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c895750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca157600954600c81905550600b54600d819055505b5b611cae848484846120f8565b50505050565b6000838311158290611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf39190612a09565b60405180910390fd5b5060008385611d0b9190613529565b9050809150509392505050565b6000600654821115611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d56906135cf565b60405180910390fd5b6000611d69612271565b9050611d7e818461229c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dbd57611dbc6135ef565b5b604051908082528060200260200182016040528015611deb5781602001602082028036833780820191505090505b5090503081600081518110611e0357611e02612f31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece9190613633565b81600181518110611ee257611ee1612f31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fad959493929190613759565b600060405180830381600087803b158015611fc757600080fd5b505af1158015611fdb573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61204d60028461229c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612078573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120c960028461229c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f4573d6000803e3d6000fd5b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121fd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122445782601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80612252576122516122e6565b5b61225d848484612323565b8061226b5761226a6124ee565b5b50505050565b600080600061227e612502565b91509150612295818361229c90919063ffffffff16565b9250505090565b60006122de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256d565b905092915050565b6000600c541480156122fa57506000600d54145b61232157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612335876125d0565b95509550955095509550955061239386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612474816126e0565b61247e848361279d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124db9190612bc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006b033b2e3c9fd0803ce8000000905061253e6b033b2e3c9fd0803ce800000060065461229c90919063ffffffff16565b821015612560576006546b033b2e3c9fd0803ce8000000935093505050612569565b81819350935050505b9091565b600080831182906125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab9190612a09565b60405180910390fd5b50600083856125c391906137e2565b9050809150509392505050565b60008060008060008060008060006125ed8a600c54600d546127d7565b92509250925060006125fd612271565b905060008060006126108e87878761286d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cb4565b905092915050565b60008082846126919190613441565b9050838110156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd9061385f565b60405180910390fd5b8091505092915050565b60006126ea612271565b9050600061270182846128f690919063ffffffff16565b905061275581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127b28260065461263890919063ffffffff16565b6006819055506127cd8160075461268290919063ffffffff16565b6007819055505050565b60008060008061280360646127f5888a6128f690919063ffffffff16565b61229c90919063ffffffff16565b9050600061282d606461281f888b6128f690919063ffffffff16565b61229c90919063ffffffff16565b9050600061285682612848858c61263890919063ffffffff16565b61263890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061288685896128f690919063ffffffff16565b9050600061289d86896128f690919063ffffffff16565b905060006128b487896128f690919063ffffffff16565b905060006128dd826128cf858761263890919063ffffffff16565b61263890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612908576000905061296a565b60008284612916919061387f565b905082848261292591906137e2565b14612965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295c9061394b565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129aa57808201518184015260208101905061298f565b838111156129b9576000848401525b50505050565b6000601f19601f8301169050919050565b60006129db82612970565b6129e5818561297b565b93506129f581856020860161298c565b6129fe816129bf565b840191505092915050565b60006020820190508181036000830152612a2381846129d0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a6082612a35565b9050919050565b612a7081612a55565b8114612a7b57600080fd5b50565b600081359050612a8d81612a67565b92915050565b6000819050919050565b612aa681612a93565b8114612ab157600080fd5b50565b600081359050612ac381612a9d565b92915050565b60008060408385031215612ae057612adf612a2b565b5b6000612aee85828601612a7e565b9250506020612aff85828601612ab4565b9150509250929050565b60008115159050919050565b612b1e81612b09565b82525050565b6000602082019050612b396000830184612b15565b92915050565b6000819050919050565b6000612b64612b5f612b5a84612a35565b612b3f565b612a35565b9050919050565b6000612b7682612b49565b9050919050565b6000612b8882612b6b565b9050919050565b612b9881612b7d565b82525050565b6000602082019050612bb36000830184612b8f565b92915050565b612bc281612a93565b82525050565b6000602082019050612bdd6000830184612bb9565b92915050565b600060208284031215612bf957612bf8612a2b565b5b6000612c0784828501612a7e565b91505092915050565b600080600060608486031215612c2957612c28612a2b565b5b6000612c3786828701612a7e565b9350506020612c4886828701612a7e565b9250506040612c5986828701612ab4565b9150509250925092565b600060ff82169050919050565b612c7981612c63565b82525050565b6000602082019050612c946000830184612c70565b92915050565b6000612ca582612a35565b9050919050565b612cb581612c9a565b82525050565b6000602082019050612cd06000830184612cac565b92915050565b600060208284031215612cec57612ceb612a2b565b5b6000612cfa84828501612ab4565b91505092915050565b612d0c81612a55565b82525050565b6000602082019050612d276000830184612d03565b92915050565b60008060008060808587031215612d4757612d46612a2b565b5b6000612d5587828801612ab4565b9450506020612d6687828801612ab4565b9350506040612d7787828801612ab4565b9250506060612d8887828801612ab4565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612db957612db8612d94565b5b8235905067ffffffffffffffff811115612dd657612dd5612d99565b5b602083019150836020820283011115612df257612df1612d9e565b5b9250929050565b612e0281612b09565b8114612e0d57600080fd5b50565b600081359050612e1f81612df9565b92915050565b600080600060408486031215612e3e57612e3d612a2b565b5b600084013567ffffffffffffffff811115612e5c57612e5b612a30565b5b612e6886828701612da3565b93509350506020612e7b86828701612e10565b9150509250925092565b60008060408385031215612e9c57612e9b612a2b565b5b6000612eaa85828601612a7e565b9250506020612ebb85828601612a7e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612efb60208361297b565b9150612f0682612ec5565b602082019050919050565b60006020820190508181036000830152612f2a81612eee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f9a82612a93565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fcc57612fcb612f60565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061303360268361297b565b915061303e82612fd7565b604082019050919050565b6000602082019050818103600083015261306281613026565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130c560248361297b565b91506130d082613069565b604082019050919050565b600060208201905081810360008301526130f4816130b8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061315760228361297b565b9150613162826130fb565b604082019050919050565b600060208201905081810360008301526131868161314a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131e960258361297b565b91506131f48261318d565b604082019050919050565b60006020820190508181036000830152613218816131dc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061327b60238361297b565b91506132868261321f565b604082019050919050565b600060208201905081810360008301526132aa8161326e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061330d60298361297b565b9150613318826132b1565b604082019050919050565b6000602082019050818103600083015261333c81613300565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061339f603f8361297b565b91506133aa82613343565b604082019050919050565b600060208201905081810360008301526133ce81613392565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061340b601c8361297b565b9150613416826133d5565b602082019050919050565b6000602082019050818103600083015261343a816133fe565b9050919050565b600061344c82612a93565b915061345783612a93565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561348c5761348b612f60565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006134f360238361297b565b91506134fe82613497565b604082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b600061353482612a93565b915061353f83612a93565b92508282101561355257613551612f60565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006135b9602a8361297b565b91506135c48261355d565b604082019050919050565b600060208201905081810360008301526135e8816135ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061362d81612a67565b92915050565b60006020828403121561364957613648612a2b565b5b60006136578482850161361e565b91505092915050565b6000819050919050565b600061368561368061367b84613660565b612b3f565b612a93565b9050919050565b6136958161366a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d081612a55565b82525050565b60006136e283836136c7565b60208301905092915050565b6000602082019050919050565b60006137068261369b565b61371081856136a6565b935061371b836136b7565b8060005b8381101561374c57815161373388826136d6565b975061373e836136ee565b92505060018101905061371f565b5085935050505092915050565b600060a08201905061376e6000830188612bb9565b61377b602083018761368c565b818103604083015261378d81866136fb565b905061379c6060830185612d03565b6137a96080830184612bb9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137ed82612a93565b91506137f883612a93565b925082613808576138076137b3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613849601b8361297b565b915061385482613813565b602082019050919050565b600060208201905081810360008301526138788161383c565b9050919050565b600061388a82612a93565b915061389583612a93565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138ce576138cd612f60565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061393560218361297b565b9150613940826138d9565b604082019050919050565b6000602082019050818103600083015261396481613928565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122055ef61f2081e1e86218162f33cb8ec2ab69f31a7fdf09405f3dcf0246c92bb6164736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c60d985311610064578063c60d9853146105e5578063caac793414610610578063dd62ed3e1461063b578063f2fde38b14610678576101c2565b8063a2a957bb14610556578063a9059cbb1461057f578063c492f046146105bc576101c2565b80638da5cb5b116100c65780638da5cb5b146104ac5780638f9a55c0146104d757806395d89b411461050257806398a5c3151461052d576101c2565b8063751039fc146104535780637d1db4a51461046a5780638a8c523c14610495576101c2565b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e146103a95780636168f352146103d457806370a08231146103ff578063715018a61461043c576101c2565b8063313ce5671461032a5780633d6a9afe1461035557806347c7d92414610380576101c2565b806318160ddd1161019557806318160ddd1461025a5780631990948b1461028557806323b872dd146102c25780632fd689e3146102ff576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106a1565b6040516101e99190612a09565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612ac9565b6106de565b6040516102269190612b24565b60405180910390f35b34801561023b57600080fd5b506102446106fc565b6040516102519190612b9e565b60405180910390f35b34801561026657600080fd5b5061026f610722565b60405161027c9190612bc8565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612be3565b610736565b6040516102b99190612bc8565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612c10565b61074e565b6040516102f69190612b24565b60405180910390f35b34801561030b57600080fd5b50610314610827565b6040516103219190612bc8565b60405180910390f35b34801561033657600080fd5b5061033f61082d565b60405161034c9190612c7f565b60405180910390f35b34801561036157600080fd5b5061036a610836565b6040516103779190612cbb565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612cd6565b61085c565b005b3480156103b557600080fd5b506103be6108fb565b6040516103cb9190612d12565b60405180910390f35b3480156103e057600080fd5b506103e9610921565b6040516103f69190612bc8565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612be3565b610927565b6040516104339190612bc8565b60405180910390f35b34801561044857600080fd5b50610451610978565b005b34801561045f57600080fd5b50610468610acb565b005b34801561047657600080fd5b5061047f610b74565b60405161048c9190612bc8565b60405180910390f35b3480156104a157600080fd5b506104aa610b7a565b005b3480156104b857600080fd5b506104c1610c2c565b6040516104ce9190612d12565b60405180910390f35b3480156104e357600080fd5b506104ec610c55565b6040516104f99190612bc8565b60405180910390f35b34801561050e57600080fd5b50610517610c5b565b6040516105249190612a09565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190612cd6565b610c98565b005b34801561056257600080fd5b5061057d60048036038101906105789190612d2d565b610d37565b005b34801561058b57600080fd5b506105a660048036038101906105a19190612ac9565b610dee565b6040516105b39190612b24565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de9190612e25565b610e0c565b005b3480156105f157600080fd5b506105fa610f46565b6040516106079190612d12565b60405180910390f35b34801561061c57600080fd5b50610625610f6c565b6040516106329190612cbb565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612e85565b610f92565b60405161066f9190612bc8565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190612be3565b611019565b005b60606040518060400160405280601181526020017f53706f6e6765626f6220436c6173736963000000000000000000000000000000815250905090565b60006106f26106eb6111da565b84846111e2565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b60106020528060005260406000206000915090505481565b600061075b8484846113ab565b61081c846107676111da565b6108178560405180606001604052806028815260200161396c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cd6111da565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb49092919063ffffffff16565b6111e2565b600190509392505050565b60185481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108646111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612f11565b60405180910390fd5b8060198190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6000610971600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d18565b9050919050565b6109806111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0490612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad36111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790612f11565b60405180910390fd5b600019601681905550600019601781905550565b60165481565b610b826111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612f11565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600781526020017f53504f4e47454300000000000000000000000000000000000000000000000000815250905090565b610ca06111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2490612f11565b60405180910390fd5b8060188190555050565b610d3f6111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc390612f11565b60405180910390fd5b836008819055508260098190555081600a8190555080600b8190555050505050565b6000610e02610dfb6111da565b84846113ab565b6001905092915050565b610e146111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890612f11565b60405180910390fd5b60005b83839050811015610f40578160056000868685818110610ec757610ec6612f31565b5b9050602002016020810190610edc9190612be3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3890612f8f565b915050610ea4565b50505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110216111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613049565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906130db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b79061316d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139e9190612bc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906131ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090613291565b60405180910390fd5b600081116114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390613323565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115705750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b357601560149054906101000a900460ff166115ff57611591610c2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f5906133b5565b60405180910390fd5b5b601654811115611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90613421565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146116f157601754816116a684610927565b6116b09190613441565b106116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790613509565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d7576000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036117d25743601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61182c565b60158054906101000a900460ff1661182b5782601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600061183730610927565b90506000601854821015905060195482106118525760195491505b80801561186a575060158054906101000a900460ff16155b80156118c45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118dc5750601560169054906101000a900460ff165b80156119325750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119885750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b05761199682611d86565b600047905060008111156119ae576119ad47611ffd565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a5a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b0d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b0c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b1b5760009050611ca2565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bde57600854600c81905550600a54600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c895750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca157600954600c81905550600b54600d819055505b5b611cae848484846120f8565b50505050565b6000838311158290611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf39190612a09565b60405180910390fd5b5060008385611d0b9190613529565b9050809150509392505050565b6000600654821115611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d56906135cf565b60405180910390fd5b6000611d69612271565b9050611d7e818461229c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dbd57611dbc6135ef565b5b604051908082528060200260200182016040528015611deb5781602001602082028036833780820191505090505b5090503081600081518110611e0357611e02612f31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece9190613633565b81600181518110611ee257611ee1612f31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fad959493929190613759565b600060405180830381600087803b158015611fc757600080fd5b505af1158015611fdb573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61204d60028461229c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612078573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120c960028461229c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f4573d6000803e3d6000fd5b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121fd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122445782601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80612252576122516122e6565b5b61225d848484612323565b8061226b5761226a6124ee565b5b50505050565b600080600061227e612502565b91509150612295818361229c90919063ffffffff16565b9250505090565b60006122de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256d565b905092915050565b6000600c541480156122fa57506000600d54145b61232157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612335876125d0565b95509550955095509550955061239386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612474816126e0565b61247e848361279d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124db9190612bc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006b033b2e3c9fd0803ce8000000905061253e6b033b2e3c9fd0803ce800000060065461229c90919063ffffffff16565b821015612560576006546b033b2e3c9fd0803ce8000000935093505050612569565b81819350935050505b9091565b600080831182906125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab9190612a09565b60405180910390fd5b50600083856125c391906137e2565b9050809150509392505050565b60008060008060008060008060006125ed8a600c54600d546127d7565b92509250925060006125fd612271565b905060008060006126108e87878761286d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cb4565b905092915050565b60008082846126919190613441565b9050838110156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd9061385f565b60405180910390fd5b8091505092915050565b60006126ea612271565b9050600061270182846128f690919063ffffffff16565b905061275581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127b28260065461263890919063ffffffff16565b6006819055506127cd8160075461268290919063ffffffff16565b6007819055505050565b60008060008061280360646127f5888a6128f690919063ffffffff16565b61229c90919063ffffffff16565b9050600061282d606461281f888b6128f690919063ffffffff16565b61229c90919063ffffffff16565b9050600061285682612848858c61263890919063ffffffff16565b61263890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061288685896128f690919063ffffffff16565b9050600061289d86896128f690919063ffffffff16565b905060006128b487896128f690919063ffffffff16565b905060006128dd826128cf858761263890919063ffffffff16565b61263890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612908576000905061296a565b60008284612916919061387f565b905082848261292591906137e2565b14612965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295c9061394b565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129aa57808201518184015260208101905061298f565b838111156129b9576000848401525b50505050565b6000601f19601f8301169050919050565b60006129db82612970565b6129e5818561297b565b93506129f581856020860161298c565b6129fe816129bf565b840191505092915050565b60006020820190508181036000830152612a2381846129d0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a6082612a35565b9050919050565b612a7081612a55565b8114612a7b57600080fd5b50565b600081359050612a8d81612a67565b92915050565b6000819050919050565b612aa681612a93565b8114612ab157600080fd5b50565b600081359050612ac381612a9d565b92915050565b60008060408385031215612ae057612adf612a2b565b5b6000612aee85828601612a7e565b9250506020612aff85828601612ab4565b9150509250929050565b60008115159050919050565b612b1e81612b09565b82525050565b6000602082019050612b396000830184612b15565b92915050565b6000819050919050565b6000612b64612b5f612b5a84612a35565b612b3f565b612a35565b9050919050565b6000612b7682612b49565b9050919050565b6000612b8882612b6b565b9050919050565b612b9881612b7d565b82525050565b6000602082019050612bb36000830184612b8f565b92915050565b612bc281612a93565b82525050565b6000602082019050612bdd6000830184612bb9565b92915050565b600060208284031215612bf957612bf8612a2b565b5b6000612c0784828501612a7e565b91505092915050565b600080600060608486031215612c2957612c28612a2b565b5b6000612c3786828701612a7e565b9350506020612c4886828701612a7e565b9250506040612c5986828701612ab4565b9150509250925092565b600060ff82169050919050565b612c7981612c63565b82525050565b6000602082019050612c946000830184612c70565b92915050565b6000612ca582612a35565b9050919050565b612cb581612c9a565b82525050565b6000602082019050612cd06000830184612cac565b92915050565b600060208284031215612cec57612ceb612a2b565b5b6000612cfa84828501612ab4565b91505092915050565b612d0c81612a55565b82525050565b6000602082019050612d276000830184612d03565b92915050565b60008060008060808587031215612d4757612d46612a2b565b5b6000612d5587828801612ab4565b9450506020612d6687828801612ab4565b9350506040612d7787828801612ab4565b9250506060612d8887828801612ab4565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612db957612db8612d94565b5b8235905067ffffffffffffffff811115612dd657612dd5612d99565b5b602083019150836020820283011115612df257612df1612d9e565b5b9250929050565b612e0281612b09565b8114612e0d57600080fd5b50565b600081359050612e1f81612df9565b92915050565b600080600060408486031215612e3e57612e3d612a2b565b5b600084013567ffffffffffffffff811115612e5c57612e5b612a30565b5b612e6886828701612da3565b93509350506020612e7b86828701612e10565b9150509250925092565b60008060408385031215612e9c57612e9b612a2b565b5b6000612eaa85828601612a7e565b9250506020612ebb85828601612a7e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612efb60208361297b565b9150612f0682612ec5565b602082019050919050565b60006020820190508181036000830152612f2a81612eee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f9a82612a93565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fcc57612fcb612f60565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061303360268361297b565b915061303e82612fd7565b604082019050919050565b6000602082019050818103600083015261306281613026565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130c560248361297b565b91506130d082613069565b604082019050919050565b600060208201905081810360008301526130f4816130b8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061315760228361297b565b9150613162826130fb565b604082019050919050565b600060208201905081810360008301526131868161314a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131e960258361297b565b91506131f48261318d565b604082019050919050565b60006020820190508181036000830152613218816131dc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061327b60238361297b565b91506132868261321f565b604082019050919050565b600060208201905081810360008301526132aa8161326e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061330d60298361297b565b9150613318826132b1565b604082019050919050565b6000602082019050818103600083015261333c81613300565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061339f603f8361297b565b91506133aa82613343565b604082019050919050565b600060208201905081810360008301526133ce81613392565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061340b601c8361297b565b9150613416826133d5565b602082019050919050565b6000602082019050818103600083015261343a816133fe565b9050919050565b600061344c82612a93565b915061345783612a93565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561348c5761348b612f60565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006134f360238361297b565b91506134fe82613497565b604082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b600061353482612a93565b915061353f83612a93565b92508282101561355257613551612f60565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006135b9602a8361297b565b91506135c48261355d565b604082019050919050565b600060208201905081810360008301526135e8816135ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061362d81612a67565b92915050565b60006020828403121561364957613648612a2b565b5b60006136578482850161361e565b91505092915050565b6000819050919050565b600061368561368061367b84613660565b612b3f565b612a93565b9050919050565b6136958161366a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d081612a55565b82525050565b60006136e283836136c7565b60208301905092915050565b6000602082019050919050565b60006137068261369b565b61371081856136a6565b935061371b836136b7565b8060005b8381101561374c57815161373388826136d6565b975061373e836136ee565b92505060018101905061371f565b5085935050505092915050565b600060a08201905061376e6000830188612bb9565b61377b602083018761368c565b818103604083015261378d81866136fb565b905061379c6060830185612d03565b6137a96080830184612bb9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137ed82612a93565b91506137f883612a93565b925082613808576138076137b3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613849601b8361297b565b915061385482613813565b602082019050919050565b600060208201905081810360008301526138788161383c565b9050919050565b600061388a82612a93565b915061389583612a93565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138ce576138cd612f60565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061393560218361297b565b9150613940826138d9565b604082019050919050565b6000602082019050818103600083015261396481613928565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122055ef61f2081e1e86218162f33cb8ec2ab69f31a7fdf09405f3dcf0246c92bb6164736f6c634300080f0033
Deployed Bytecode Sourcemap
4198:13280:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6928:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7853:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5416:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7205:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5265:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8054:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5750:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7114:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5318:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17086:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5464:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5808:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7308:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;928:148;;;;;;;;;;;;;:::i;:::-;;12847:109;;;;;;;;;;;;;:::i;:::-;;5640:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12760:79;;;;;;;;;;;;;:::i;:::-;;714;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5694:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7019:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16895:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16552:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7454:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17241:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5499:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7661:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1084:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6928:83;6965:13;6998:5;;;;;;;;;;;;;;;;;6991:12;;6928:83;:::o;7853:193::-;7955:4;7977:39;7986:12;:10;:12::i;:::-;8000:7;8009:6;7977:8;:39::i;:::-;8034:4;8027:11;;7853:193;;;;:::o;5416:41::-;;;;;;;;;;;;;:::o;7205:95::-;7258:7;4764:19;7278:14;;7205:95;:::o;5265:44::-;;;;;;;;;;;;;;;;;:::o;8054:446::-;8186:4;8203:36;8213:6;8221:9;8232:6;8203:9;:36::i;:::-;8250:220;8273:6;8294:12;:10;:12::i;:::-;8321:138;8377:6;8321:138;;;;;;;;;;;;;;;;;:11;:19;8333:6;8321:19;;;;;;;;;;;;;;;:33;8341:12;:10;:12::i;:::-;8321:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8250:8;:220::i;:::-;8488:4;8481:11;;8054:446;;;;;:::o;5750:51::-;;;;:::o;7114:83::-;7155:5;4437:2;7173:16;;7114:83;:::o;5318:42::-;;;;;;;;;;;;;:::o;17086:147::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17204:21:::1;17179:22;:46;;;;17086:147:::0;:::o;5464:28::-;;;;;;;;;;;;;:::o;5808:56::-;;;;:::o;7308:138::-;7374:7;7401:37;7421:7;:16;7429:7;7421:16;;;;;;;;;;;;;;;;7401:19;:37::i;:::-;7394:44;;7308:138;;;:::o;928:148::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1035:1:::1;998:40;;1019:6;::::0;::::1;;;;;;;;998:40;;;;;;;;;;;;1066:1;1049:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;928:148::o:0;12847:109::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4720:1:::1;4711:11;12899:12;:18;;;;4720:1;4711:11;12928:14;:20;;;;12847:109::o:0;5640:47::-;;;;:::o;12760:79::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12827:4:::1;12813:11;;:18;;;;;;;;;;;;;;;;;;12760:79::o:0;714:::-;752:7;779:6;;;;;;;;;;;772:13;;714:79;:::o;5694:49::-;;;;:::o;7019:87::-;7058:13;7091:7;;;;;;;;;;;;;;;;;7084:14;;7019:87;:::o;16895:139::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17008:18:::1;16986:19;:40;;;;16895:139:::0;:::o;16552:291::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16703:13:::1;16686:14;:30;;;;16745:14;16727:15;:32;;;;16785:11;16770:12;:26;;;;16823:12;16807:13;:28;;;;16552:291:::0;;;;:::o;7454:199::-;7559:4;7581:42;7591:12;:10;:12::i;:::-;7605:9;7616:6;7581:9;:42::i;:::-;7641:4;7634:11;;7454:199;;;;:::o;17241:234::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17358:9:::1;17354:114;17377:8;;:15;;17373:1;:19;17354:114;;;17448:8;17414:18;:31;17433:8;;17442:1;17433:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17414:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17394:3;;;;;:::i;:::-;;;;17354:114;;;;17241:234:::0;;;:::o;5499:27::-;;;;;;;;;;;;;:::o;5367:40::-;;;;;;;;;;;;;:::o;7661:184::-;7778:7;7810:11;:18;7822:5;7810:18;;;;;;;;;;;;;;;:27;7829:7;7810:27;;;;;;;;;;;;;;;;7803:34;;7661:184;;;;:::o;1084:244::-;851:12;:10;:12::i;:::-;841:22;;:6;;;;;;;;;;:22;;;833:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1193:1:::1;1173:22;;:8;:22;;::::0;1165:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1283:8;1254:38;;1275:6;::::0;::::1;;;;;;;;1254:38;;;;;;;;;;;;1312:8;1303:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1084:244:::0;:::o;230:98::-;283:7;310:10;303:17;;230:98;:::o;9191:369::-;9335:1;9318:19;;:5;:19;;;9310:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9416:1;9397:21;;:7;:21;;;9389:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9498:6;9468:11;:18;9480:5;9468:18;;;;;;;;;;;;;;;:27;9487:7;9468:27;;;;;;;;;;;;;;;:36;;;;9536:7;9520:32;;9529:5;9520:32;;;9545:6;9520:32;;;;;;:::i;:::-;;;;;;;;9191:369;;;:::o;9568:2525::-;9706:1;9690:18;;:4;:18;;;9682:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9783:1;9769:16;;:2;:16;;;9761:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9853:1;9844:6;:10;9836:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9918:18;:24;9937:4;9918:24;;;;;;;;;;;;;;;;;;;;;;;;;9917:25;:52;;;;;9947:18;:22;9966:2;9947:22;;;;;;;;;;;;;;;;;;;;;;;;;9946:23;9917:52;9913:1454;;;10026:11;;;;;;;;;;;10021:144;;10074:7;:5;:7::i;:::-;10066:15;;:4;:15;;;10058:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10021:144;10199:12;;10189:6;:22;;10181:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10270:13;;;;;;;;;;;10264:19;;:2;:19;;;10261:146;;10337:14;;10328:6;10312:13;10322:2;10312:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10304:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10261:146;10435:13;;;;;;;;;;;10427:21;;:4;:21;;;10423:226;;10489:1;10473:8;:12;10482:2;10473:12;;;;;;;;;;;;;;;;:17;10469:93;;10530:12;10515:8;:12;10524:2;10515:12;;;;;;;;;;;;;;;:27;;;;10469:93;10423:226;;;10587:6;;;;;;;;;;10583:66;;10629:4;10614:12;;:19;;;;;;;;;;;;;;;;;;10583:66;10423:226;10665:28;10696:24;10714:4;10696:9;:24::i;:::-;10665:55;;10735:12;10774:19;;10750:20;:43;;10735:58;;10837:22;;10813:20;:46;10810:144;;10916:22;;10893:45;;10810:144;10974:7;:18;;;;;10986:6;;;;;;;;;;10985:7;10974:18;:43;;;;;11004:13;;;;;;;;;;;10996:21;;:4;:21;;;;10974:43;:58;;;;;11021:11;;;;;;;;;;;10974:58;:87;;;;;11037:18;:24;11056:4;11037:24;;;;;;;;;;;;;;;;;;;;;;;;;11036:25;10974:87;:114;;;;;11066:18;:22;11085:2;11066:22;;;;;;;;;;;;;;;;;;;;;;;;;11065:23;10974:114;10970:386;;;11109:38;11126:20;11109:16;:38::i;:::-;11166:26;11195:21;11166:50;;11260:1;11239:18;:22;11235:106;;;11286:35;11299:21;11286:12;:35::i;:::-;11235:106;11090:266;10970:386;9971:1396;;9913:1454;11379:12;11394:4;11379:19;;11443:18;:24;11462:4;11443:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11471:18;:22;11490:2;11471:22;;;;;;;;;;;;;;;;;;;;;;;;;11443:50;11442:102;;;;11507:13;;;;;;;;;;;11499:21;;:4;:21;;;;:44;;;;;11530:13;;;;;;;;;;;11524:19;;:2;:19;;;;11499:44;11442:102;11438:594;;;11571:5;11561:15;;11438:594;;;11654:13;;;;;;;;;;;11646:21;;:4;:21;;;:55;;;;;11685:15;;;;;;;;;;;11671:30;;:2;:30;;;;11646:55;11643:162;;;11734:14;;11722:9;:26;;;;11777:12;;11767:7;:22;;;;11643:162;11864:13;;;;;;;;;;;11858:19;;:2;:19;;;:55;;;;;11897:15;;;;;;;;;;;11881:32;;:4;:32;;;;11858:55;11854:165;;;11946:15;;11934:9;:27;;;;11990:13;;11980:7;:23;;;;11854:165;11438:594;12044:41;12059:4;12065:2;12069:6;12077:7;12044:14;:41::i;:::-;9671:2422;9568:2525;;;:::o;2449:224::-;2569:7;2602:1;2597;:6;;2605:12;2589:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2629:9;2645:1;2641;:5;;;;:::i;:::-;2629:17;;2664:1;2657:8;;;2449:224;;;;;:::o;8508:323::-;8603:7;8661;;8650;:18;;8628:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8749:19;8771:10;:8;:10::i;:::-;8749:32;;8799:24;8811:11;8799:7;:11;;:24;;;;:::i;:::-;8792:31;;;8508:323;;;:::o;12101:483::-;5967:4;5958:6;;:13;;;;;;;;;;;;;;;;;;12179:21:::1;12217:1;12203:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12179:40;;12248:4;12230;12235:1;12230:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12274:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12264:4;12269:1;12264:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12307:62;12324:4;12339:15;;;;;;;;;;;12357:11;12307:8;:62::i;:::-;12380:15;;;;;;;;;;;:66;;;12461:11;12487:1;12503:4;12530;12550:15;12380:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12168:416;6003:5:::0;5994:6;;:14;;;;;;;;;;;;;;;;;;12101:483;:::o;12592:160::-;12649:19;;;;;;;;;;;:28;;:43;12678:13;12689:1;12678:6;:10;;:13;;;;:::i;:::-;12649:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12703:17;;;;;;;;;;;:26;;:41;12730:13;12741:1;12730:6;:10;;:13;;;;:::i;:::-;12703:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12592:160;:::o;13590:458::-;13754:17;;;;;;;;;;;13744:27;;:6;:27;;;:68;;;;;13796:15;;;;;;;;;;;13775:37;;:9;:37;;;;13744:68;:97;;;;;13828:13;;;;;;;;;;;13816:25;;:9;:25;;;;13744:97;13741:166;;;13885:9;13857:17;;:38;;;;;;;;;;;;;;;;;;13741:166;13922:7;13917:28;;13931:14;:12;:14::i;:::-;13917:28;13956:44;13974:6;13982:9;13993:6;13956:17;:44::i;:::-;14016:7;14011:29;;14025:15;:13;:15::i;:::-;14011:29;13590:458;;;;:::o;16115:164::-;16157:7;16178:15;16195;16214:19;:17;:19::i;:::-;16177:56;;;;16251:20;16263:7;16251;:11;;:20;;;;:::i;:::-;16244:27;;;;16115:164;:::o;2935:132::-;2993:7;3020:39;3024:1;3027;3020:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3013:46;;2935:132;;;;:::o;8839:219::-;8899:1;8886:9;;:14;:30;;;;;8915:1;8904:7;;:12;8886:30;8918:7;8882:43;8957:9;;8937:17;:29;;;;8995:7;;8977:15;:25;;;;9027:1;9015:9;:13;;;;9049:1;9039:7;:11;;;;8839:219;:::o;12972:610::-;13119:15;13149:23;13187:12;13214:23;13252:12;13279:13;13306:19;13317:7;13306:10;:19::i;:::-;13104:221;;;;;;;;;;;;13354:28;13374:7;13354;:15;13362:6;13354:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13336:7;:15;13344:6;13336:15;;;;;;;;;;;;;;;:46;;;;13414:39;13437:15;13414:7;:18;13422:9;13414:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13393:7;:18;13401:9;13393:18;;;;;;;;;;;;;;;:60;;;;13464:16;13474:5;13464:9;:16::i;:::-;13491:23;13503:4;13509;13491:11;:23::i;:::-;13547:9;13530:44;;13539:6;13530:44;;;13558:15;13530:44;;;;;;:::i;:::-;;;;;;;;13093:489;;;;;;12972:610;;;:::o;9066:117::-;9122:17;;9110:9;:29;;;;9160:15;;9150:7;:25;;;;9066:117::o;16287:257::-;16338:7;16347;16367:15;16385:7;;16367:25;;16403:15;4764:19;16403:25;;16453:20;4764:19;16453:7;;:11;;:20;;;;:::i;:::-;16443:7;:30;16439:61;;;16483:7;;4764:19;16475:25;;;;;;;;16439:61;16519:7;16528;16511:25;;;;;;16287:257;;;:::o;3075:223::-;3195:7;3227:1;3223;:5;3230:12;3215:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3254:9;3270:1;3266;:5;;;;:::i;:::-;3254:17;;3289:1;3282:8;;;3075:223;;;;;:::o;14942:615::-;15042:7;15064;15086;15108;15130;15152;15188:23;15213:12;15227:13;15257:40;15269:7;15278:9;;15289:7;;15257:11;:40::i;:::-;15187:110;;;;;;15308:19;15330:10;:8;:10::i;:::-;15308:32;;15352:15;15369:23;15394:12;15423:46;15435:7;15444:4;15450:5;15457:11;15423;:46::i;:::-;15351:118;;;;;;15488:7;15497:15;15514:4;15520:15;15537:4;15543:5;15480:69;;;;;;;;;;;;;;;;;;;14942:615;;;;;;;:::o;2305:136::-;2363:7;2390:43;2394:1;2397;2390:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2383:50;;2305:136;;;;:::o;2118:179::-;2176:7;2196:9;2212:1;2208;:5;;;;:::i;:::-;2196:17;;2237:1;2232;:6;;2224:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2288:1;2281:8;;;2118:179;;;;:::o;14056:211::-;14109:19;14131:10;:8;:10::i;:::-;14109:32;;14152:13;14168:22;14178:11;14168:5;:9;;:22;;;;:::i;:::-;14152:38;;14226:33;14253:5;14226:7;:22;14242:4;14226:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14201:7;:22;14217:4;14201:22;;;;;;;;;;;;;;;:58;;;;14098:169;;14056:211;:::o;14275:147::-;14353:17;14365:4;14353:7;;:11;;:17;;;;:::i;:::-;14343:7;:27;;;;14394:20;14409:4;14394:10;;:14;;:20;;;;:::i;:::-;14381:10;:33;;;;14275:147;;:::o;14465:469::-;14634:7;14656;14678;14713:12;14728:30;14754:3;14728:21;14740:8;14728:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14713:45;;14769:13;14785:28;14809:3;14785:19;14797:6;14785:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14769:44;;14824:23;14850:28;14872:5;14850:17;14862:4;14850:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14824:54;;14897:15;14914:4;14920:5;14889:37;;;;;;;;;14465:469;;;;;;;:::o;15573:534::-;15767:7;15789;15811;15846:15;15864:24;15876:11;15864:7;:11;;:24;;;;:::i;:::-;15846:42;;15899:12;15914:21;15923:11;15914:4;:8;;:21;;;;:::i;:::-;15899:36;;15946:13;15962:22;15972:11;15962:5;:9;;:22;;;;:::i;:::-;15946:38;;15995:23;16021:28;16043:5;16021:17;16033:4;16021:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15995:54;;16068:7;16077:15;16094:4;16060:39;;;;;;;;;;15573:534;;;;;;;;:::o;2681:246::-;2739:7;2768:1;2763;:6;2759:47;;2793:1;2786:8;;;;2759:47;2816:9;2832:1;2828;:5;;;;:::i;:::-;2816:17;;2861:1;2856;2852;:5;;;;:::i;:::-;:10;2844:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2918:1;2911:8;;;2681: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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:329::-;4878:6;4927:2;4915:9;4906:7;4902:23;4898:32;4895:119;;;4933:79;;:::i;:::-;4895:119;5053:1;5078:53;5123:7;5114:6;5103:9;5099:22;5078:53;:::i;:::-;5068:63;;5024:117;4819:329;;;;:::o;5154:619::-;5231:6;5239;5247;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5549:2;5575:53;5620:7;5611:6;5600:9;5596:22;5575:53;:::i;:::-;5565:63;;5520:118;5677:2;5703:53;5748:7;5739:6;5728:9;5724:22;5703:53;:::i;:::-;5693:63;;5648:118;5154:619;;;;;:::o;5779:86::-;5814:7;5854:4;5847:5;5843:16;5832:27;;5779:86;;;:::o;5871:112::-;5954:22;5970:5;5954:22;:::i;:::-;5949:3;5942:35;5871:112;;:::o;5989:214::-;6078:4;6116:2;6105:9;6101:18;6093:26;;6129:67;6193:1;6182:9;6178:17;6169:6;6129:67;:::i;:::-;5989:214;;;;:::o;6209:104::-;6254:7;6283:24;6301:5;6283:24;:::i;:::-;6272:35;;6209:104;;;:::o;6319:142::-;6422:32;6448:5;6422:32;:::i;:::-;6417:3;6410:45;6319:142;;:::o;6467:254::-;6576:4;6614:2;6603:9;6599:18;6591:26;;6627:87;6711:1;6700:9;6696:17;6687:6;6627:87;:::i;:::-;6467:254;;;;:::o;6727:329::-;6786:6;6835:2;6823:9;6814:7;6810:23;6806:32;6803:119;;;6841:79;;:::i;:::-;6803:119;6961:1;6986:53;7031:7;7022:6;7011:9;7007:22;6986:53;:::i;:::-;6976:63;;6932:117;6727:329;;;;:::o;7062:118::-;7149:24;7167:5;7149:24;:::i;:::-;7144:3;7137:37;7062:118;;:::o;7186:222::-;7279:4;7317:2;7306:9;7302:18;7294:26;;7330:71;7398:1;7387:9;7383:17;7374:6;7330:71;:::i;:::-;7186:222;;;;:::o;7414:765::-;7500:6;7508;7516;7524;7573:3;7561:9;7552:7;7548:23;7544:33;7541:120;;;7580:79;;:::i;:::-;7541:120;7700:1;7725:53;7770:7;7761:6;7750:9;7746:22;7725:53;:::i;:::-;7715:63;;7671:117;7827:2;7853:53;7898:7;7889:6;7878:9;7874:22;7853:53;:::i;:::-;7843:63;;7798:118;7955:2;7981:53;8026:7;8017:6;8006:9;8002:22;7981:53;:::i;:::-;7971:63;;7926:118;8083:2;8109:53;8154:7;8145:6;8134:9;8130:22;8109:53;:::i;:::-;8099:63;;8054:118;7414:765;;;;;;;:::o;8185:117::-;8294:1;8291;8284:12;8308:117;8417:1;8414;8407:12;8431:117;8540:1;8537;8530:12;8571:568;8644:8;8654:6;8704:3;8697:4;8689:6;8685:17;8681:27;8671:122;;8712:79;;:::i;:::-;8671:122;8825:6;8812:20;8802:30;;8855:18;8847:6;8844:30;8841:117;;;8877:79;;:::i;:::-;8841:117;8991:4;8983:6;8979:17;8967:29;;9045:3;9037:4;9029:6;9025:17;9015:8;9011:32;9008:41;9005:128;;;9052:79;;:::i;:::-;9005:128;8571:568;;;;;:::o;9145:116::-;9215:21;9230:5;9215:21;:::i;:::-;9208:5;9205:32;9195:60;;9251:1;9248;9241:12;9195:60;9145:116;:::o;9267:133::-;9310:5;9348:6;9335:20;9326:29;;9364:30;9388:5;9364:30;:::i;:::-;9267:133;;;;:::o;9406:698::-;9498:6;9506;9514;9563:2;9551:9;9542:7;9538:23;9534:32;9531:119;;;9569:79;;:::i;:::-;9531:119;9717:1;9706:9;9702:17;9689:31;9747:18;9739:6;9736:30;9733:117;;;9769:79;;:::i;:::-;9733:117;9882:80;9954:7;9945:6;9934:9;9930:22;9882:80;:::i;:::-;9864:98;;;;9660:312;10011:2;10037:50;10079:7;10070:6;10059:9;10055:22;10037:50;:::i;:::-;10027:60;;9982:115;9406:698;;;;;:::o;10110:474::-;10178:6;10186;10235:2;10223:9;10214:7;10210:23;10206:32;10203:119;;;10241:79;;:::i;:::-;10203:119;10361:1;10386:53;10431:7;10422:6;10411:9;10407:22;10386:53;:::i;:::-;10376:63;;10332:117;10488:2;10514:53;10559:7;10550:6;10539:9;10535:22;10514:53;:::i;:::-;10504:63;;10459:118;10110:474;;;;;:::o;10590:182::-;10730:34;10726:1;10718:6;10714:14;10707:58;10590:182;:::o;10778:366::-;10920:3;10941:67;11005:2;11000:3;10941:67;:::i;:::-;10934:74;;11017:93;11106:3;11017:93;:::i;:::-;11135:2;11130:3;11126:12;11119:19;;10778:366;;;:::o;11150:419::-;11316:4;11354:2;11343:9;11339:18;11331:26;;11403:9;11397:4;11393:20;11389:1;11378:9;11374:17;11367:47;11431:131;11557:4;11431:131;:::i;:::-;11423:139;;11150:419;;;:::o;11575:180::-;11623:77;11620:1;11613:88;11720:4;11717:1;11710:15;11744:4;11741:1;11734:15;11761:180;11809:77;11806:1;11799:88;11906:4;11903:1;11896:15;11930:4;11927:1;11920:15;11947:233;11986:3;12009:24;12027:5;12009:24;:::i;:::-;12000:33;;12055:66;12048:5;12045:77;12042:103;;12125:18;;:::i;:::-;12042:103;12172:1;12165:5;12161:13;12154:20;;11947:233;;;:::o;12186:225::-;12326:34;12322:1;12314:6;12310:14;12303:58;12395:8;12390:2;12382:6;12378:15;12371:33;12186:225;:::o;12417:366::-;12559:3;12580:67;12644:2;12639:3;12580:67;:::i;:::-;12573:74;;12656:93;12745:3;12656:93;:::i;:::-;12774:2;12769:3;12765:12;12758:19;;12417:366;;;:::o;12789:419::-;12955:4;12993:2;12982:9;12978:18;12970:26;;13042:9;13036:4;13032:20;13028:1;13017:9;13013:17;13006:47;13070:131;13196:4;13070:131;:::i;:::-;13062:139;;12789:419;;;:::o;13214:223::-;13354:34;13350:1;13342:6;13338:14;13331:58;13423:6;13418:2;13410:6;13406:15;13399:31;13214:223;:::o;13443:366::-;13585:3;13606:67;13670:2;13665:3;13606:67;:::i;:::-;13599:74;;13682:93;13771:3;13682:93;:::i;:::-;13800:2;13795:3;13791:12;13784:19;;13443:366;;;:::o;13815:419::-;13981:4;14019:2;14008:9;14004:18;13996:26;;14068:9;14062:4;14058:20;14054:1;14043:9;14039:17;14032:47;14096:131;14222:4;14096:131;:::i;:::-;14088:139;;13815:419;;;:::o;14240:221::-;14380:34;14376:1;14368:6;14364:14;14357:58;14449:4;14444:2;14436:6;14432:15;14425:29;14240:221;:::o;14467:366::-;14609:3;14630:67;14694:2;14689:3;14630:67;:::i;:::-;14623:74;;14706:93;14795:3;14706:93;:::i;:::-;14824:2;14819:3;14815:12;14808:19;;14467:366;;;:::o;14839:419::-;15005:4;15043:2;15032:9;15028:18;15020:26;;15092:9;15086:4;15082:20;15078:1;15067:9;15063:17;15056:47;15120:131;15246:4;15120:131;:::i;:::-;15112:139;;14839:419;;;:::o;15264:224::-;15404:34;15400:1;15392:6;15388:14;15381:58;15473:7;15468:2;15460:6;15456:15;15449:32;15264:224;:::o;15494:366::-;15636:3;15657:67;15721:2;15716:3;15657:67;:::i;:::-;15650:74;;15733:93;15822:3;15733:93;:::i;:::-;15851:2;15846:3;15842:12;15835:19;;15494:366;;;:::o;15866:419::-;16032:4;16070:2;16059:9;16055:18;16047:26;;16119:9;16113:4;16109:20;16105:1;16094:9;16090:17;16083:47;16147:131;16273:4;16147:131;:::i;:::-;16139:139;;15866:419;;;:::o;16291:222::-;16431:34;16427:1;16419:6;16415:14;16408:58;16500:5;16495:2;16487:6;16483:15;16476:30;16291:222;:::o;16519:366::-;16661:3;16682:67;16746:2;16741:3;16682:67;:::i;:::-;16675:74;;16758:93;16847:3;16758:93;:::i;:::-;16876:2;16871:3;16867:12;16860:19;;16519:366;;;:::o;16891:419::-;17057:4;17095:2;17084:9;17080:18;17072:26;;17144:9;17138:4;17134:20;17130:1;17119:9;17115:17;17108:47;17172:131;17298:4;17172:131;:::i;:::-;17164:139;;16891:419;;;:::o;17316:228::-;17456:34;17452:1;17444:6;17440:14;17433:58;17525:11;17520:2;17512:6;17508:15;17501:36;17316:228;:::o;17550:366::-;17692:3;17713:67;17777:2;17772:3;17713:67;:::i;:::-;17706:74;;17789:93;17878:3;17789:93;:::i;:::-;17907:2;17902:3;17898:12;17891:19;;17550:366;;;:::o;17922:419::-;18088:4;18126:2;18115:9;18111:18;18103:26;;18175:9;18169:4;18165:20;18161:1;18150:9;18146:17;18139:47;18203:131;18329:4;18203:131;:::i;:::-;18195:139;;17922:419;;;:::o;18347:250::-;18487:34;18483:1;18475:6;18471:14;18464:58;18556:33;18551:2;18543:6;18539:15;18532:58;18347:250;:::o;18603:366::-;18745:3;18766:67;18830:2;18825:3;18766:67;:::i;:::-;18759:74;;18842:93;18931:3;18842:93;:::i;:::-;18960:2;18955:3;18951:12;18944:19;;18603:366;;;:::o;18975:419::-;19141:4;19179:2;19168:9;19164:18;19156:26;;19228:9;19222:4;19218:20;19214:1;19203:9;19199:17;19192:47;19256:131;19382:4;19256:131;:::i;:::-;19248:139;;18975:419;;;:::o;19400:178::-;19540:30;19536:1;19528:6;19524:14;19517:54;19400:178;:::o;19584:366::-;19726:3;19747:67;19811:2;19806:3;19747:67;:::i;:::-;19740:74;;19823:93;19912:3;19823:93;:::i;:::-;19941:2;19936:3;19932:12;19925:19;;19584:366;;;:::o;19956:419::-;20122:4;20160:2;20149:9;20145:18;20137:26;;20209:9;20203:4;20199:20;20195:1;20184:9;20180:17;20173:47;20237:131;20363:4;20237:131;:::i;:::-;20229:139;;19956:419;;;:::o;20381:305::-;20421:3;20440:20;20458:1;20440:20;:::i;:::-;20435:25;;20474:20;20492:1;20474:20;:::i;:::-;20469:25;;20628:1;20560:66;20556:74;20553:1;20550:81;20547:107;;;20634:18;;:::i;:::-;20547:107;20678:1;20675;20671:9;20664:16;;20381:305;;;;:::o;20692:222::-;20832:34;20828:1;20820:6;20816:14;20809:58;20901:5;20896:2;20888:6;20884:15;20877:30;20692:222;:::o;20920:366::-;21062:3;21083:67;21147:2;21142:3;21083:67;:::i;:::-;21076:74;;21159:93;21248:3;21159:93;:::i;:::-;21277:2;21272:3;21268:12;21261:19;;20920:366;;;:::o;21292:419::-;21458:4;21496:2;21485:9;21481:18;21473:26;;21545:9;21539:4;21535:20;21531:1;21520:9;21516:17;21509:47;21573:131;21699:4;21573:131;:::i;:::-;21565:139;;21292:419;;;:::o;21717:191::-;21757:4;21777:20;21795:1;21777:20;:::i;:::-;21772:25;;21811:20;21829:1;21811:20;:::i;:::-;21806:25;;21850:1;21847;21844:8;21841:34;;;21855:18;;:::i;:::-;21841:34;21900:1;21897;21893:9;21885:17;;21717:191;;;;:::o;21914:229::-;22054:34;22050:1;22042:6;22038:14;22031:58;22123:12;22118:2;22110:6;22106:15;22099:37;21914:229;:::o;22149:366::-;22291:3;22312:67;22376:2;22371:3;22312:67;:::i;:::-;22305:74;;22388:93;22477:3;22388:93;:::i;:::-;22506:2;22501:3;22497:12;22490:19;;22149:366;;;:::o;22521:419::-;22687:4;22725:2;22714:9;22710:18;22702:26;;22774:9;22768:4;22764:20;22760:1;22749:9;22745:17;22738:47;22802:131;22928:4;22802:131;:::i;:::-;22794:139;;22521:419;;;:::o;22946:180::-;22994:77;22991:1;22984:88;23091:4;23088:1;23081:15;23115:4;23112:1;23105:15;23132:143;23189:5;23220:6;23214:13;23205:22;;23236:33;23263:5;23236:33;:::i;:::-;23132:143;;;;:::o;23281:351::-;23351:6;23400:2;23388:9;23379:7;23375:23;23371:32;23368:119;;;23406:79;;:::i;:::-;23368:119;23526:1;23551:64;23607:7;23598:6;23587:9;23583:22;23551:64;:::i;:::-;23541:74;;23497:128;23281:351;;;;:::o;23638:85::-;23683:7;23712:5;23701:16;;23638:85;;;:::o;23729:158::-;23787:9;23820:61;23838:42;23847:32;23873:5;23847:32;:::i;:::-;23838:42;:::i;:::-;23820:61;:::i;:::-;23807:74;;23729:158;;;:::o;23893:147::-;23988:45;24027:5;23988:45;:::i;:::-;23983:3;23976:58;23893:147;;:::o;24046:114::-;24113:6;24147:5;24141:12;24131:22;;24046:114;;;:::o;24166:184::-;24265:11;24299:6;24294:3;24287:19;24339:4;24334:3;24330:14;24315:29;;24166:184;;;;:::o;24356:132::-;24423:4;24446:3;24438:11;;24476:4;24471:3;24467:14;24459:22;;24356:132;;;:::o;24494:108::-;24571:24;24589:5;24571:24;:::i;:::-;24566:3;24559:37;24494:108;;:::o;24608:179::-;24677:10;24698:46;24740:3;24732:6;24698:46;:::i;:::-;24776:4;24771:3;24767:14;24753:28;;24608:179;;;;:::o;24793:113::-;24863:4;24895;24890:3;24886:14;24878:22;;24793:113;;;:::o;24942:732::-;25061:3;25090:54;25138:5;25090:54;:::i;:::-;25160:86;25239:6;25234:3;25160:86;:::i;:::-;25153:93;;25270:56;25320:5;25270:56;:::i;:::-;25349:7;25380:1;25365:284;25390:6;25387:1;25384:13;25365:284;;;25466:6;25460:13;25493:63;25552:3;25537:13;25493:63;:::i;:::-;25486:70;;25579:60;25632:6;25579:60;:::i;:::-;25569:70;;25425:224;25412:1;25409;25405:9;25400:14;;25365:284;;;25369:14;25665:3;25658:10;;25066:608;;;24942:732;;;;:::o;25680:831::-;25943:4;25981:3;25970:9;25966:19;25958:27;;25995:71;26063:1;26052:9;26048:17;26039:6;25995:71;:::i;:::-;26076:80;26152:2;26141:9;26137:18;26128:6;26076:80;:::i;:::-;26203:9;26197:4;26193:20;26188:2;26177:9;26173:18;26166:48;26231:108;26334:4;26325:6;26231:108;:::i;:::-;26223:116;;26349:72;26417:2;26406:9;26402:18;26393:6;26349:72;:::i;:::-;26431:73;26499:3;26488:9;26484:19;26475:6;26431:73;:::i;:::-;25680:831;;;;;;;;:::o;26517:180::-;26565:77;26562:1;26555:88;26662:4;26659:1;26652:15;26686:4;26683:1;26676:15;26703:185;26743:1;26760:20;26778:1;26760:20;:::i;:::-;26755:25;;26794:20;26812:1;26794:20;:::i;:::-;26789:25;;26833:1;26823:35;;26838:18;;:::i;:::-;26823:35;26880:1;26877;26873:9;26868:14;;26703:185;;;;:::o;26894:177::-;27034:29;27030:1;27022:6;27018:14;27011:53;26894:177;:::o;27077:366::-;27219:3;27240:67;27304:2;27299:3;27240:67;:::i;:::-;27233:74;;27316:93;27405:3;27316:93;:::i;:::-;27434:2;27429:3;27425:12;27418:19;;27077:366;;;:::o;27449:419::-;27615:4;27653:2;27642:9;27638:18;27630:26;;27702:9;27696:4;27692:20;27688:1;27677:9;27673:17;27666:47;27730:131;27856:4;27730:131;:::i;:::-;27722:139;;27449:419;;;:::o;27874:348::-;27914:7;27937:20;27955:1;27937:20;:::i;:::-;27932:25;;27971:20;27989:1;27971:20;:::i;:::-;27966:25;;28159:1;28091:66;28087:74;28084:1;28081:81;28076:1;28069:9;28062:17;28058:105;28055:131;;;28166:18;;:::i;:::-;28055:131;28214:1;28211;28207:9;28196:20;;27874:348;;;;:::o;28228:220::-;28368:34;28364:1;28356:6;28352:14;28345:58;28437:3;28432:2;28424:6;28420:15;28413:28;28228:220;:::o;28454:366::-;28596:3;28617:67;28681:2;28676:3;28617:67;:::i;:::-;28610:74;;28693:93;28782:3;28693:93;:::i;:::-;28811:2;28806:3;28802:12;28795:19;;28454:366;;;:::o;28826:419::-;28992:4;29030:2;29019:9;29015:18;29007:26;;29079:9;29073:4;29069:20;29065:1;29054:9;29050:17;29043:47;29107:131;29233:4;29107:131;:::i;:::-;29099:139;;28826:419;;;:::o
Swarm Source
ipfs://55ef61f2081e1e86218162f33cb8ec2ab69f31a7fdf09405f3dcf0246c92bb61
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.