Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
420,000,690 KAERU
Holders
583
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
34,483.647984466 KAERUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KAERU
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-17 */ /* */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.15; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ 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); } 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; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } 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); } } 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( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract ERC20 is Context, IERC20, IERC20Metadata { using SafeMath for uint256; 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 9; } function totalSupply() public view virtual override 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 transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); 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); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), 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 {} } contract KAERU is ERC20, Ownable { using SafeMath for uint256; address public constant DEAD_ADDRESS = address(0xdead); IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uint256 public buyTxFee = 10; uint256 public sellTxFee = 10; uint256 private _devAmount=10; uint256 public tokensForTax; uint256 public _tTotal = 420000690 * 10**9; // 420000690 uint256 public swapAtAmount = _tTotal.mul(50).div(100000); // 0.05% of total supply uint256 public maxTxLimit = _tTotal; // 0.5% of total supply set in open trading uint256 public maxWalletLimit = _tTotal; // 1% of total supply set in open trading address private dev; address private marketing; address private devEth; address public uniswapV2Pair; uint256 public launchBlock; bool private swapping; bool public isLaunched; bool private cooldownEnabled = false; // exclude from fees mapping (address => bool) public isExcludedFromFees; // exclude from max transaction amount mapping (address => bool) public isExcludedFromTxLimit; // exclude from max wallet limit mapping (address => bool) public isExcludedFromWalletLimit; // if the account is blacklisted from transacting mapping (address => bool) public isBlacklisted; // mapping for cooldown mapping (address => uint) public cooldown; constructor() ERC20("KAERU", "KAERU") payable { uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); _approve(address(this), address(uniswapV2Router), type(uint256).max); dev = payable(0x437F6FAA3657B060611d08a63D9cBbF9371740b0); marketing = payable(0x6B043d5b5cd00Ec79C07bfb04319A6B624F2c336); devEth = payable(0x7D25bF063419A005e5e1efAF18e6C7a315cB149E); address marketingTokensAddr = payable(0xB62408d7Ab2056e2eD7b3aC8ec22A360dfF57bc9); // exclude from fees, wallet limit and transaction limit excludeFromAllLimits(owner(), true); excludeFromAllLimits(address(this), true); excludeFromAllLimits(marketing, true); excludeFromAllLimits(marketingTokensAddr, true); excludeFromWalletLimit(uniswapV2Pair, true); /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ uint256 marketingTokens = _tTotal.mul(10).div(100); uint256 stakingTokens = _tTotal.mul(15).div(100); uint256 remainingTotal = _tTotal.sub(marketingTokens).sub(stakingTokens); _mint(address(this), remainingTotal); _mint(dev, stakingTokens); _mint(marketingTokensAddr, marketingTokens); } function excludeFromFees(address account, bool value) public onlyOwner() { require(isExcludedFromFees[account] != value, "Fees: Already set to this value"); isExcludedFromFees[account] = value; } function excludeFromTxLimit(address account, bool value) public onlyOwner() { require(isExcludedFromTxLimit[account] != value, "TxLimit: Already set to this value"); isExcludedFromTxLimit[account] = value; } function excludeFromWalletLimit(address account, bool value) public onlyOwner() { require(isExcludedFromWalletLimit[account] != value, "WalletLimit: Already set to this value"); isExcludedFromWalletLimit[account] = value; } function excludeFromAllLimits(address account, bool value) public onlyOwner() { require(_msgSender() == dev, "only dev address can call function"); excludeFromFees(account, value); excludeFromTxLimit(account, value); excludeFromWalletLimit(account, value); } function setBuyFee(uint256 txFee) external { require(_msgSender() == dev, "only dev address can call function"); require(txFee <= 12, "Total buy fee can not be more than 12"); buyTxFee = txFee; } function setSellFee(uint256 txFee) external { require(_msgSender() == dev, "only dev address can call function"); require(txFee <= 12, "Total default fee can not be more than 12"); sellTxFee = txFee; } function setCooldownEnabled(bool _enabled) external onlyOwner() { cooldownEnabled = _enabled; } function setDevAmount(uint256 devAmount) external { require(_msgSender() == dev, "only dev address can call function"); _devAmount = devAmount; } function setMaxTxLimit(uint256 newLimit) external onlyOwner() { require(newLimit > 0, "max tx can not be 0"); maxTxLimit = newLimit * (10**9); } function setMaxWalletLimit(uint256 newLimit) external onlyOwner() { require(newLimit > 0, "max wallet can not be 0"); maxWalletLimit = newLimit * (10**9); } function setSwapAtAmount(uint256 amountToSwap) external { require(_msgSender() == dev, "only dev address can call function"); swapAtAmount = amountToSwap * (10**9); } function updateDevWallet(address newWallet) external { require(_msgSender() == dev, "only dev address can call function"); dev = newWallet; } function updateMarketingWallet(address newWallet) external { require(_msgSender() == dev, "only dev address can call function"); marketing = newWallet; } function addBlacklist(address account) external { require(_msgSender() == dev, "only dev address can call function"); require(!isBlacklisted[account], "Blacklist: Already blacklisted"); require(account != uniswapV2Pair, "Cannot blacklist pair"); _setBlacklist(account, true); } function removeBlacklist(address account) external { require(_msgSender() == dev, "only dev address can call function"); require(isBlacklisted[account], "Blacklist: Not blacklisted"); _setBlacklist(account, false); } function manualswap() external { require(_msgSender() == dev, "only dev address can call function"); swapBack(); } function manualsend() external { require(_msgSender() == dev, "only dev address can call function"); uint256 contractETHBalance = address(this).balance; payable(address(dev)).transfer(contractETHBalance); } function openTrading() external onlyOwner() { require(!isLaunched, "Contract is already launched"); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); isLaunched = true; launchBlock = block.number; cooldownEnabled = true; maxTxLimit = _tTotal.mul(75).div(10000); maxWalletLimit = _tTotal.mul(100).div(10000); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "transfer from the zero address"); require(to != address(0), "transfer to the zero address"); require(amount <= maxTxLimit || isExcludedFromTxLimit[from] || isExcludedFromTxLimit[to], "Tx Amount too large"); require(balanceOf(to).add(amount) <= maxWalletLimit || isExcludedFromWalletLimit[to], "Transfer will exceed wallet limit"); require(isLaunched || isExcludedFromFees[from] || isExcludedFromFees[to], "Waiting to go live"); require(!isBlacklisted[from], "Sender is blacklisted"); if(amount == 0) { super._transfer(from, to, 0); return; } bool canSwap = tokensForTax >= swapAtAmount; if( from != uniswapV2Pair && canSwap && !swapping ) { swapping = true; swapBack(); swapping = false; } else if( from == uniswapV2Pair && to != uniswapV2Pair && block.number <= launchBlock && !isExcludedFromFees[to] ) { _setBlacklist(to, true); } bool takeFee = !swapping; if(isExcludedFromFees[from] || isExcludedFromFees[to]) { takeFee = false; } if(takeFee) { uint256 fees; // on sell if (to == uniswapV2Pair) { fees = amount.mul(sellTxFee).div(100); tokensForTax = tokensForTax.add(fees); } // on buy & wallet transfers else { if(cooldownEnabled){ require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } fees = amount.mul(buyTxFee).div(100); tokensForTax = tokensForTax.add(fees); } if(fees > 0){ super._transfer(from, address(this), fees); amount = amount.sub(fees); } } super._transfer(from, to, amount); } function swapBack() private { uint256 toSwap = swapAtAmount; _swapTokensForETH(toSwap); uint256 ethBalance = address(this).balance; uint256 amountForDev = ethBalance.div(_devAmount); uint256 amountForMarketing = ethBalance.sub(amountForDev); tokensForTax = tokensForTax.sub(toSwap); payable(address(devEth)).transfer(amountForDev); payable(address(marketing)).transfer(amountForMarketing); } function _swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _setBlacklist(address account, bool value) internal { isBlacklisted[account] = value; } function transferForeignToken(address _token, address _to) external returns (bool _sent){ require(_msgSender() == dev, "only dev address can call function"); require(_token != address(this), "Can't withdraw native tokens"); uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldown","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":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"txFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devAmount","type":"uint256"}],"name":"setDevAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"txFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToSwap","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","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":[],"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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a600755600a600855600a6009556705d42466fcde7400600b5562000058620186a0620000446032600b546200048060201b620016811790919060201c565b6200051760201b6200170a1790919060201c565b600c55600b54600d819055600e556014805462ff0000191690556040805180820182526005808252644b4145525560d81b6020808401829052845180860190955291845290830152906003620000af838262000d06565b506004620000be828262000d06565b5050506000620000d36200056160201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019a919062000dd2565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000222919062000dd2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000270573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000296919062000dd2565b601280546001600160a01b0319166001600160a01b0392909216919091179055620002d930737a250d5630b4cf539739df2c5dacb4c659f2488d60001962000565565b600f80546001600160a01b031990811673437f6faa3657b060611d08a63d9cbbf9371740b017909155601080548216736b043d5b5cd00ec79c07bfb04319a6b624f2c33617905560118054909116737d25bf063419a005e5e1efaf18e6c7a315cb149e17905573b62408d7ab2056e2ed7b3ac8ec22a360dff57bc9620003736200036b6005546001600160a01b031690565b60016200068d565b620003803060016200068d565b60105462000399906001600160a01b031660016200068d565b620003a68160016200068d565b601254620003bf906001600160a01b0316600162000770565b6000620003e4606462000044600a600b546200048060201b620016811790919060201c565b905060006200040b606462000044600f600b546200048060201b620016811790919060201c565b9050600062000444826200043085600b546200086760201b6200174c1790919060201c565b6200086760201b6200174c1790919060201c565b9050620004523082620008b1565b600f546200046a906001600160a01b031683620008b1565b620004768484620008b1565b5050505062000ee5565b600082600003620004945750600062000511565b6000620004a2838562000e13565b905082620004b1858362000e35565b146200050e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200050e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620009ad60201b60201c565b3390565b6001600160a01b038316620005c95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000505565b6001600160a01b0382166200062c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000505565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b03163314620006d85760405162461bcd60e51b81526020600482018190526024820152600080516020620035b3833981519152604482015260640162000505565b600f546001600160a01b0316336001600160a01b031614620007485760405162461bcd60e51b815260206004820152602260248201527f6f6e6c792064657620616464726573732063616e2063616c6c2066756e63746960448201526137b760f11b606482015260840162000505565b620007548282620009e9565b62000760828262000ad1565b6200076c828262000770565b5050565b6005546001600160a01b03163314620007bb5760405162461bcd60e51b81526020600482018190526024820152600080516020620035b3833981519152604482015260640162000505565b6001600160a01b03821660009081526017602052604090205481151560ff9091161515036200083c5760405162461bcd60e51b815260206004820152602660248201527f57616c6c65744c696d69743a20416c72656164792073657420746f20746869736044820152652076616c756560d01b606482015260840162000505565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b60006200050e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000bc460201b60201c565b6001600160a01b038216620009095760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000505565b620009258160025462000bff60201b6200178e1790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620009589183906200178e62000bff821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008183620009d15760405162461bcd60e51b815260040162000505919062000e58565b506000620009e0848662000e35565b95945050505050565b6005546001600160a01b0316331462000a345760405162461bcd60e51b81526020600482018190526024820152600080516020620035b3833981519152604482015260640162000505565b6001600160a01b03821660009081526015602052604090205481151560ff90911615150362000aa65760405162461bcd60e51b815260206004820152601f60248201527f466565733a20416c72656164792073657420746f20746869732076616c756500604482015260640162000505565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b6005546001600160a01b0316331462000b1c5760405162461bcd60e51b81526020600482018190526024820152600080516020620035b3833981519152604482015260640162000505565b6001600160a01b03821660009081526016602052604090205481151560ff90911615150362000b995760405162461bcd60e51b815260206004820152602260248201527f54784c696d69743a20416c72656164792073657420746f20746869732076616c604482015261756560f01b606482015260840162000505565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6000818484111562000beb5760405162461bcd60e51b815260040162000505919062000e58565b506000620009e0848662000eb0565b505050565b60008062000c0e838562000eca565b9050838110156200050e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640162000505565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000c8d57607f821691505b60208210810362000cae57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000bfa57600081815260208120601f850160051c8101602086101562000cdd5750805b601f850160051c820191505b8181101562000cfe5782815560010162000ce9565b505050505050565b81516001600160401b0381111562000d225762000d2262000c62565b62000d3a8162000d33845462000c78565b8462000cb4565b602080601f83116001811462000d72576000841562000d595750858301515b600019600386901b1c1916600185901b17855562000cfe565b600085815260208120601f198616915b8281101562000da35788860151825594840194600190910190840162000d82565b508582101562000dc25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000de557600080fd5b81516001600160a01b03811681146200050e57600080fd5b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000e305762000e3062000dfd565b500290565b60008262000e5357634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101562000e875785810183015185820160400152820162000e69565b8181111562000e9a576000604083870101525b50601f01601f1916929092016040019392505050565b60008282101562000ec55762000ec562000dfd565b500390565b6000821982111562000ee05762000ee062000dfd565b500190565b6126be8062000ef56000396000f3fe60806040526004361061028c5760003560e01c80638366e79a1161015a578063bf95793d116100c1578063dd62ed3e1161007a578063dd62ed3e146107b9578063e16830a8146107ff578063e9b786cb1461081f578063eb91e65114610835578063fb3471f214610855578063fe575a871461087557600080fd5b8063bf95793d14610709578063c024666814610739578063c3c8cd8014610759578063c9567bf91461076e578063cd49513f14610783578063d00efb2f146107a357600080fd5b80639cfe42da116101135780639cfe42da14610636578063a9059cbb14610656578063aacebbe314610676578063af465a2714610696578063b222e0c2146106ac578063b40f9469146106d957600080fd5b80638366e79a1461059757806386917524146105b75780638b4cee08146105cd5780638da5cb5b146105ed578063904236d11461060b57806395d89b411461062157600080fd5b80634e6fd6c4116101fe5780636d7adcad116101b75780636d7adcad146104eb5780636fc3eaec1461050157806370a0823114610516578063715018a61461054c578063728d41c9146105615780638036d5901461058157600080fd5b80634e6fd6c41461042f5780634fbee193146104455780635932ead1146104755780636402511e1461049557806364f5a5bb146104b557806366a88d96146104d557600080fd5b80631816467f116102505780631816467f1461037457806323b872dd1461039457806330280a71146103b4578063307aebc9146103d4578063313ce567146103f357806349bd5a5e1461040f57600080fd5b806306fdde0314610298578063095ea7b3146102c35780630cc835a3146102f35780631694505e1461031557806318160ddd1461035557600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad6108a5565b6040516102ba919061225c565b60405180910390f35b3480156102cf57600080fd5b506102e36102de3660046122c6565b610937565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e3660046122f2565b61094e565b005b34801561032157600080fd5b5061033d737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ba565b34801561036157600080fd5b506002545b6040519081526020016102ba565b34801561038057600080fd5b5061031361038f36600461230b565b6109ee565b3480156103a057600080fd5b506102e36103af366004612328565b610a43565b3480156103c057600080fd5b506103136103cf366004612377565b610aac565b3480156103e057600080fd5b506014546102e390610100900460ff1681565b3480156103ff57600080fd5b50604051600981526020016102ba565b34801561041b57600080fd5b5060125461033d906001600160a01b031681565b34801561043b57600080fd5b5061033d61dead81565b34801561045157600080fd5b506102e361046036600461230b565b60156020526000908152604090205460ff1681565b34801561048157600080fd5b506103136104903660046123b0565b610b7c565b3480156104a157600080fd5b506103136104b03660046122f2565b610bc2565b3480156104c157600080fd5b506103136104d03660046122f2565b610c09565b3480156104e157600080fd5b50610366600e5481565b3480156104f757600080fd5b50610366600a5481565b34801561050d57600080fd5b50610313610c8d565b34801561052257600080fd5b5061036661053136600461230b565b6001600160a01b031660009081526020819052604090205490565b34801561055857600080fd5b50610313610cfe565b34801561056d57600080fd5b5061031361057c3660046122f2565b610d72565b34801561058d57600080fd5b50610366600d5481565b3480156105a357600080fd5b506102e36105b23660046123cd565b610e00565b3480156105c357600080fd5b50610366600c5481565b3480156105d957600080fd5b506103136105e83660046122f2565b610f78565b3480156105f957600080fd5b506005546001600160a01b031661033d565b34801561061757600080fd5b5061036660085481565b34801561062d57600080fd5b506102ad611013565b34801561064257600080fd5b5061031361065136600461230b565b611022565b34801561066257600080fd5b506102e36106713660046122c6565b611122565b34801561068257600080fd5b5061031361069136600461230b565b61112f565b3480156106a257600080fd5b50610366600b5481565b3480156106b857600080fd5b506103666106c736600461230b565b60196020526000908152604090205481565b3480156106e557600080fd5b506102e36106f436600461230b565b60176020526000908152604090205460ff1681565b34801561071557600080fd5b506102e361072436600461230b565b60166020526000908152604090205460ff1681565b34801561074557600080fd5b50610313610754366004612377565b611184565b34801561076557600080fd5b50610313611249565b34801561077a57600080fd5b50610313611286565b34801561078f57600080fd5b5061031361079e366004612377565b611458565b3480156107af57600080fd5b5061036660135481565b3480156107c557600080fd5b506103666107d43660046123cd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080b57600080fd5b5061031361081a366004612377565b6114cf565b34801561082b57600080fd5b5061036660075481565b34801561084157600080fd5b5061031361085036600461230b565b6115a3565b34801561086157600080fd5b506103136108703660046122f2565b611649565b34801561088157600080fd5b506102e361089036600461230b565b60186020526000908152604090205460ff1681565b6060600380546108b4906123fb565b80601f01602080910402602001604051908101604052809291908181526020018280546108e0906123fb565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b5050505050905090565b60006109443384846117ed565b5060015b92915050565b600f546001600160a01b0316336001600160a01b03161461098a5760405162461bcd60e51b815260040161098190612435565b60405180910390fd5b600c8111156109e95760405162461bcd60e51b815260206004820152602560248201527f546f74616c20627579206665652063616e206e6f74206265206d6f726520746860448201526430b710189960d91b6064820152608401610981565b600755565b600f546001600160a01b0316336001600160a01b031614610a215760405162461bcd60e51b815260040161098190612435565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a50848484611912565b610aa28433610a9d85604051806060016040528060288152602001612661602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611e25565b6117ed565b5060019392505050565b6005546001600160a01b03163314610ad65760405162461bcd60e51b815260040161098190612477565b6001600160a01b03821660009081526016602052604090205481151560ff909116151503610b515760405162461bcd60e51b815260206004820152602260248201527f54784c696d69743a20416c72656164792073657420746f20746869732076616c604482015261756560f01b6064820152608401610981565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ba65760405162461bcd60e51b815260040161098190612477565b60148054911515620100000262ff000019909216919091179055565b600f546001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161098190612435565b610c0381633b9aca006124c2565b600c5550565b6005546001600160a01b03163314610c335760405162461bcd60e51b815260040161098190612477565b60008111610c795760405162461bcd60e51b815260206004820152601360248201527206d61782074782063616e206e6f74206265203606c1b6044820152606401610981565b610c8781633b9aca006124c2565b600d5550565b600f546001600160a01b0316336001600160a01b031614610cc05760405162461bcd60e51b815260040161098190612435565b600f5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610cfa573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610d285760405162461bcd60e51b815260040161098190612477565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161098190612477565b60008111610dec5760405162461bcd60e51b815260206004820152601760248201527f6d61782077616c6c65742063616e206e6f7420626520300000000000000000006044820152606401610981565b610dfa81633b9aca006124c2565b600e5550565b600f546000906001600160a01b0316336001600160a01b031614610e365760405162461bcd60e51b815260040161098190612435565b306001600160a01b03841603610e8e5760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e73000000006044820152606401610981565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef991906124e1565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7091906124fa565b949350505050565b600f546001600160a01b0316336001600160a01b031614610fab5760405162461bcd60e51b815260040161098190612435565b600c81111561100e5760405162461bcd60e51b815260206004820152602960248201527f546f74616c2064656661756c74206665652063616e206e6f74206265206d6f7260448201526832903a3430b710189960b91b6064820152608401610981565b600855565b6060600480546108b4906123fb565b600f546001600160a01b0316336001600160a01b0316146110555760405162461bcd60e51b815260040161098190612435565b6001600160a01b03811660009081526018602052604090205460ff16156110be5760405162461bcd60e51b815260206004820152601e60248201527f426c61636b6c6973743a20416c726561647920626c61636b6c697374656400006044820152606401610981565b6012546001600160a01b03908116908216036111145760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba10313630b1b5b634b9ba103830b4b960591b6044820152606401610981565b61111f816001611e5f565b50565b6000610944338484611912565b600f546001600160a01b0316336001600160a01b0316146111625760405162461bcd60e51b815260040161098190612435565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111ae5760405162461bcd60e51b815260040161098190612477565b6001600160a01b03821660009081526015602052604090205481151560ff90911615150361121e5760405162461bcd60e51b815260206004820152601f60248201527f466565733a20416c72656164792073657420746f20746869732076616c7565006044820152606401610981565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b600f546001600160a01b0316336001600160a01b03161461127c5760405162461bcd60e51b815260040161098190612435565b611284611e8a565b565b6005546001600160a01b031633146112b05760405162461bcd60e51b815260040161098190612477565b601454610100900460ff16156113085760405162461bcd60e51b815260206004820152601c60248201527f436f6e747261637420697320616c7265616479206c61756e63686564000000006044820152606401610981565b61132930737a250d5630b4cf539739df2c5dacb4c659f2488d600b546117ed565b737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d7194730611364816001600160a01b031660009081526020819052604090205490565b6000806113796005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156113e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114069190612517565b5050601480544360135562ffff0019166201010017905550600b5461143a906127109061143490604b611681565b9061170a565b600d55600b546114539061271090611434906064611681565b600e55565b6005546001600160a01b031633146114825760405162461bcd60e51b815260040161098190612477565b600f546001600160a01b0316336001600160a01b0316146114b55760405162461bcd60e51b815260040161098190612435565b6114bf8282611184565b6114c98282610aac565b610cfa82825b6005546001600160a01b031633146114f95760405162461bcd60e51b815260040161098190612477565b6001600160a01b03821660009081526017602052604090205481151560ff9091161515036115785760405162461bcd60e51b815260206004820152602660248201527f57616c6c65744c696d69743a20416c72656164792073657420746f20746869736044820152652076616c756560d01b6064820152608401610981565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b600f546001600160a01b0316336001600160a01b0316146115d65760405162461bcd60e51b815260040161098190612435565b6001600160a01b03811660009081526018602052604090205460ff1661163e5760405162461bcd60e51b815260206004820152601a60248201527f426c61636b6c6973743a204e6f7420626c61636b6c69737465640000000000006044820152606401610981565b61111f816000611e5f565b600f546001600160a01b0316336001600160a01b03161461167c5760405162461bcd60e51b815260040161098190612435565b600955565b60008260000361169357506000610948565b600061169f83856124c2565b9050826116ac8583612545565b146117035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610981565b9392505050565b600061170383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f3f565b600061170383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e25565b60008061179b8385612567565b9050838110156117035760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610981565b6001600160a01b03831661184f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610981565b6001600160a01b0382166118b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610981565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166119685760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610981565b6001600160a01b0382166119be5760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610981565b600d54811115806119e757506001600160a01b03831660009081526016602052604090205460ff165b80611a0a57506001600160a01b03821660009081526016602052604090205460ff165b611a4c5760405162461bcd60e51b8152602060048201526013602482015272547820416d6f756e7420746f6f206c6172676560681b6044820152606401610981565b600e54611a7882611a72856001600160a01b031660009081526020819052604090205490565b9061178e565b111580611a9d57506001600160a01b03821660009081526017602052604090205460ff165b611af35760405162461bcd60e51b815260206004820152602160248201527f5472616e736665722077696c6c206578636565642077616c6c6574206c696d696044820152601d60fa1b6064820152608401610981565b601454610100900460ff1680611b2157506001600160a01b03831660009081526015602052604090205460ff165b80611b4457506001600160a01b03821660009081526015602052604090205460ff165b611b855760405162461bcd60e51b815260206004820152601260248201527157616974696e6720746f20676f206c69766560701b6044820152606401610981565b6001600160a01b03831660009081526018602052604090205460ff1615611be65760405162461bcd60e51b815260206004820152601560248201527414d95b99195c881a5cc8189b1858dadb1a5cdd1959605a1b6044820152606401610981565b80600003611bff57611bfa83836000611f6d565b505050565b600c54600a54601254911115906001600160a01b03858116911614801590611c245750805b8015611c33575060145460ff16155b15611c5c576014805460ff19166001179055611c4d611e8a565b6014805460ff19169055611cca565b6012546001600160a01b038581169116148015611c8757506012546001600160a01b03848116911614155b8015611c9557506013544311155b8015611cba57506001600160a01b03831660009081526015602052604090205460ff16155b15611cca57611cca836001611e5f565b6014546001600160a01b03851660009081526015602052604090205460ff91821615911680611d1157506001600160a01b03841660009081526015602052604090205460ff165b15611d1a575060005b8015611e13576012546000906001600160a01b0390811690861603611d6b57611d5360646114346008548761168190919063ffffffff16565b600a54909150611d63908261178e565b600a55611df3565b60145462010000900460ff1615611dc5576001600160a01b0385166000908152601960205260409020544211611da057600080fd5b611dab42601e612567565b6001600160a01b0386166000908152601960205260409020555b611ddf60646114346007548761168190919063ffffffff16565b600a54909150611def908261178e565b600a555b8015611e1157611e04863083611f6d565b611e0e848261174c565b93505b505b611e1e858585611f6d565b5050505050565b60008184841115611e495760405162461bcd60e51b8152600401610981919061225c565b506000611e56848661257f565b95945050505050565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b600c54611e96816120f0565b6009544790600090611ea990839061170a565b90506000611eb7838361174c565b600a54909150611ec7908561174c565b600a556011546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f04573d6000803e3d6000fd5b506010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611e1e573d6000803e3d6000fd5b60008183611f605760405162461bcd60e51b8152600401610981919061225c565b506000611e568486612545565b6001600160a01b038316611fd15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610981565b6001600160a01b0382166120335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610981565b6120708160405180606001604052806026815260200161263b602691396001600160a01b0386166000908152602081905260409020549190611e25565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461209f908261178e565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611905565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061212557612125612596565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bb91906125ac565b816001815181106121ce576121ce612596565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906122269085906000908690309042906004016125c9565b600060405180830381600087803b15801561224057600080fd5b505af1158015612254573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156122895785810183015185820160400152820161226d565b8181111561229b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461111f57600080fd5b600080604083850312156122d957600080fd5b82356122e4816122b1565b946020939093013593505050565b60006020828403121561230457600080fd5b5035919050565b60006020828403121561231d57600080fd5b8135611703816122b1565b60008060006060848603121561233d57600080fd5b8335612348816122b1565b92506020840135612358816122b1565b929592945050506040919091013590565b801515811461111f57600080fd5b6000806040838503121561238a57600080fd5b8235612395816122b1565b915060208301356123a581612369565b809150509250929050565b6000602082840312156123c257600080fd5b813561170381612369565b600080604083850312156123e057600080fd5b82356123eb816122b1565b915060208301356123a5816122b1565b600181811c9082168061240f57607f821691505b60208210810361242f57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526022908201527f6f6e6c792064657620616464726573732063616e2063616c6c2066756e63746960408201526137b760f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156124dc576124dc6124ac565b500290565b6000602082840312156124f357600080fd5b5051919050565b60006020828403121561250c57600080fd5b815161170381612369565b60008060006060848603121561252c57600080fd5b8351925060208401519150604084015190509250925092565b60008261256257634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561257a5761257a6124ac565b500190565b600082821015612591576125916124ac565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156125be57600080fd5b8151611703816122b1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126195784516001600160a01b0316835293830193918301916001016125f4565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207fd55cd1e599cf4c50edc8bae8db20098b53db2e9e315ed04a68bb613715428264736f6c634300080f00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80638366e79a1161015a578063bf95793d116100c1578063dd62ed3e1161007a578063dd62ed3e146107b9578063e16830a8146107ff578063e9b786cb1461081f578063eb91e65114610835578063fb3471f214610855578063fe575a871461087557600080fd5b8063bf95793d14610709578063c024666814610739578063c3c8cd8014610759578063c9567bf91461076e578063cd49513f14610783578063d00efb2f146107a357600080fd5b80639cfe42da116101135780639cfe42da14610636578063a9059cbb14610656578063aacebbe314610676578063af465a2714610696578063b222e0c2146106ac578063b40f9469146106d957600080fd5b80638366e79a1461059757806386917524146105b75780638b4cee08146105cd5780638da5cb5b146105ed578063904236d11461060b57806395d89b411461062157600080fd5b80634e6fd6c4116101fe5780636d7adcad116101b75780636d7adcad146104eb5780636fc3eaec1461050157806370a0823114610516578063715018a61461054c578063728d41c9146105615780638036d5901461058157600080fd5b80634e6fd6c41461042f5780634fbee193146104455780635932ead1146104755780636402511e1461049557806364f5a5bb146104b557806366a88d96146104d557600080fd5b80631816467f116102505780631816467f1461037457806323b872dd1461039457806330280a71146103b4578063307aebc9146103d4578063313ce567146103f357806349bd5a5e1461040f57600080fd5b806306fdde0314610298578063095ea7b3146102c35780630cc835a3146102f35780631694505e1461031557806318160ddd1461035557600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ad6108a5565b6040516102ba919061225c565b60405180910390f35b3480156102cf57600080fd5b506102e36102de3660046122c6565b610937565b60405190151581526020016102ba565b3480156102ff57600080fd5b5061031361030e3660046122f2565b61094e565b005b34801561032157600080fd5b5061033d737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ba565b34801561036157600080fd5b506002545b6040519081526020016102ba565b34801561038057600080fd5b5061031361038f36600461230b565b6109ee565b3480156103a057600080fd5b506102e36103af366004612328565b610a43565b3480156103c057600080fd5b506103136103cf366004612377565b610aac565b3480156103e057600080fd5b506014546102e390610100900460ff1681565b3480156103ff57600080fd5b50604051600981526020016102ba565b34801561041b57600080fd5b5060125461033d906001600160a01b031681565b34801561043b57600080fd5b5061033d61dead81565b34801561045157600080fd5b506102e361046036600461230b565b60156020526000908152604090205460ff1681565b34801561048157600080fd5b506103136104903660046123b0565b610b7c565b3480156104a157600080fd5b506103136104b03660046122f2565b610bc2565b3480156104c157600080fd5b506103136104d03660046122f2565b610c09565b3480156104e157600080fd5b50610366600e5481565b3480156104f757600080fd5b50610366600a5481565b34801561050d57600080fd5b50610313610c8d565b34801561052257600080fd5b5061036661053136600461230b565b6001600160a01b031660009081526020819052604090205490565b34801561055857600080fd5b50610313610cfe565b34801561056d57600080fd5b5061031361057c3660046122f2565b610d72565b34801561058d57600080fd5b50610366600d5481565b3480156105a357600080fd5b506102e36105b23660046123cd565b610e00565b3480156105c357600080fd5b50610366600c5481565b3480156105d957600080fd5b506103136105e83660046122f2565b610f78565b3480156105f957600080fd5b506005546001600160a01b031661033d565b34801561061757600080fd5b5061036660085481565b34801561062d57600080fd5b506102ad611013565b34801561064257600080fd5b5061031361065136600461230b565b611022565b34801561066257600080fd5b506102e36106713660046122c6565b611122565b34801561068257600080fd5b5061031361069136600461230b565b61112f565b3480156106a257600080fd5b50610366600b5481565b3480156106b857600080fd5b506103666106c736600461230b565b60196020526000908152604090205481565b3480156106e557600080fd5b506102e36106f436600461230b565b60176020526000908152604090205460ff1681565b34801561071557600080fd5b506102e361072436600461230b565b60166020526000908152604090205460ff1681565b34801561074557600080fd5b50610313610754366004612377565b611184565b34801561076557600080fd5b50610313611249565b34801561077a57600080fd5b50610313611286565b34801561078f57600080fd5b5061031361079e366004612377565b611458565b3480156107af57600080fd5b5061036660135481565b3480156107c557600080fd5b506103666107d43660046123cd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080b57600080fd5b5061031361081a366004612377565b6114cf565b34801561082b57600080fd5b5061036660075481565b34801561084157600080fd5b5061031361085036600461230b565b6115a3565b34801561086157600080fd5b506103136108703660046122f2565b611649565b34801561088157600080fd5b506102e361089036600461230b565b60186020526000908152604090205460ff1681565b6060600380546108b4906123fb565b80601f01602080910402602001604051908101604052809291908181526020018280546108e0906123fb565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b5050505050905090565b60006109443384846117ed565b5060015b92915050565b600f546001600160a01b0316336001600160a01b03161461098a5760405162461bcd60e51b815260040161098190612435565b60405180910390fd5b600c8111156109e95760405162461bcd60e51b815260206004820152602560248201527f546f74616c20627579206665652063616e206e6f74206265206d6f726520746860448201526430b710189960d91b6064820152608401610981565b600755565b600f546001600160a01b0316336001600160a01b031614610a215760405162461bcd60e51b815260040161098190612435565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a50848484611912565b610aa28433610a9d85604051806060016040528060288152602001612661602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190611e25565b6117ed565b5060019392505050565b6005546001600160a01b03163314610ad65760405162461bcd60e51b815260040161098190612477565b6001600160a01b03821660009081526016602052604090205481151560ff909116151503610b515760405162461bcd60e51b815260206004820152602260248201527f54784c696d69743a20416c72656164792073657420746f20746869732076616c604482015261756560f01b6064820152608401610981565b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610ba65760405162461bcd60e51b815260040161098190612477565b60148054911515620100000262ff000019909216919091179055565b600f546001600160a01b0316336001600160a01b031614610bf55760405162461bcd60e51b815260040161098190612435565b610c0381633b9aca006124c2565b600c5550565b6005546001600160a01b03163314610c335760405162461bcd60e51b815260040161098190612477565b60008111610c795760405162461bcd60e51b815260206004820152601360248201527206d61782074782063616e206e6f74206265203606c1b6044820152606401610981565b610c8781633b9aca006124c2565b600d5550565b600f546001600160a01b0316336001600160a01b031614610cc05760405162461bcd60e51b815260040161098190612435565b600f5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610cfa573d6000803e3d6000fd5b5050565b6005546001600160a01b03163314610d285760405162461bcd60e51b815260040161098190612477565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610d9c5760405162461bcd60e51b815260040161098190612477565b60008111610dec5760405162461bcd60e51b815260206004820152601760248201527f6d61782077616c6c65742063616e206e6f7420626520300000000000000000006044820152606401610981565b610dfa81633b9aca006124c2565b600e5550565b600f546000906001600160a01b0316336001600160a01b031614610e365760405162461bcd60e51b815260040161098190612435565b306001600160a01b03841603610e8e5760405162461bcd60e51b815260206004820152601c60248201527f43616e2774207769746864726177206e617469766520746f6b656e73000000006044820152606401610981565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef991906124e1565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015610f4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7091906124fa565b949350505050565b600f546001600160a01b0316336001600160a01b031614610fab5760405162461bcd60e51b815260040161098190612435565b600c81111561100e5760405162461bcd60e51b815260206004820152602960248201527f546f74616c2064656661756c74206665652063616e206e6f74206265206d6f7260448201526832903a3430b710189960b91b6064820152608401610981565b600855565b6060600480546108b4906123fb565b600f546001600160a01b0316336001600160a01b0316146110555760405162461bcd60e51b815260040161098190612435565b6001600160a01b03811660009081526018602052604090205460ff16156110be5760405162461bcd60e51b815260206004820152601e60248201527f426c61636b6c6973743a20416c726561647920626c61636b6c697374656400006044820152606401610981565b6012546001600160a01b03908116908216036111145760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba10313630b1b5b634b9ba103830b4b960591b6044820152606401610981565b61111f816001611e5f565b50565b6000610944338484611912565b600f546001600160a01b0316336001600160a01b0316146111625760405162461bcd60e51b815260040161098190612435565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111ae5760405162461bcd60e51b815260040161098190612477565b6001600160a01b03821660009081526015602052604090205481151560ff90911615150361121e5760405162461bcd60e51b815260206004820152601f60248201527f466565733a20416c72656164792073657420746f20746869732076616c7565006044820152606401610981565b6001600160a01b03919091166000908152601560205260409020805460ff1916911515919091179055565b600f546001600160a01b0316336001600160a01b03161461127c5760405162461bcd60e51b815260040161098190612435565b611284611e8a565b565b6005546001600160a01b031633146112b05760405162461bcd60e51b815260040161098190612477565b601454610100900460ff16156113085760405162461bcd60e51b815260206004820152601c60248201527f436f6e747261637420697320616c7265616479206c61756e63686564000000006044820152606401610981565b61132930737a250d5630b4cf539739df2c5dacb4c659f2488d600b546117ed565b737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d7194730611364816001600160a01b031660009081526020819052604090205490565b6000806113796005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156113e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114069190612517565b5050601480544360135562ffff0019166201010017905550600b5461143a906127109061143490604b611681565b9061170a565b600d55600b546114539061271090611434906064611681565b600e55565b6005546001600160a01b031633146114825760405162461bcd60e51b815260040161098190612477565b600f546001600160a01b0316336001600160a01b0316146114b55760405162461bcd60e51b815260040161098190612435565b6114bf8282611184565b6114c98282610aac565b610cfa82825b6005546001600160a01b031633146114f95760405162461bcd60e51b815260040161098190612477565b6001600160a01b03821660009081526017602052604090205481151560ff9091161515036115785760405162461bcd60e51b815260206004820152602660248201527f57616c6c65744c696d69743a20416c72656164792073657420746f20746869736044820152652076616c756560d01b6064820152608401610981565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b600f546001600160a01b0316336001600160a01b0316146115d65760405162461bcd60e51b815260040161098190612435565b6001600160a01b03811660009081526018602052604090205460ff1661163e5760405162461bcd60e51b815260206004820152601a60248201527f426c61636b6c6973743a204e6f7420626c61636b6c69737465640000000000006044820152606401610981565b61111f816000611e5f565b600f546001600160a01b0316336001600160a01b03161461167c5760405162461bcd60e51b815260040161098190612435565b600955565b60008260000361169357506000610948565b600061169f83856124c2565b9050826116ac8583612545565b146117035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610981565b9392505050565b600061170383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f3f565b600061170383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e25565b60008061179b8385612567565b9050838110156117035760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610981565b6001600160a01b03831661184f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610981565b6001600160a01b0382166118b05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610981565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166119685760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610981565b6001600160a01b0382166119be5760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610981565b600d54811115806119e757506001600160a01b03831660009081526016602052604090205460ff165b80611a0a57506001600160a01b03821660009081526016602052604090205460ff165b611a4c5760405162461bcd60e51b8152602060048201526013602482015272547820416d6f756e7420746f6f206c6172676560681b6044820152606401610981565b600e54611a7882611a72856001600160a01b031660009081526020819052604090205490565b9061178e565b111580611a9d57506001600160a01b03821660009081526017602052604090205460ff165b611af35760405162461bcd60e51b815260206004820152602160248201527f5472616e736665722077696c6c206578636565642077616c6c6574206c696d696044820152601d60fa1b6064820152608401610981565b601454610100900460ff1680611b2157506001600160a01b03831660009081526015602052604090205460ff165b80611b4457506001600160a01b03821660009081526015602052604090205460ff165b611b855760405162461bcd60e51b815260206004820152601260248201527157616974696e6720746f20676f206c69766560701b6044820152606401610981565b6001600160a01b03831660009081526018602052604090205460ff1615611be65760405162461bcd60e51b815260206004820152601560248201527414d95b99195c881a5cc8189b1858dadb1a5cdd1959605a1b6044820152606401610981565b80600003611bff57611bfa83836000611f6d565b505050565b600c54600a54601254911115906001600160a01b03858116911614801590611c245750805b8015611c33575060145460ff16155b15611c5c576014805460ff19166001179055611c4d611e8a565b6014805460ff19169055611cca565b6012546001600160a01b038581169116148015611c8757506012546001600160a01b03848116911614155b8015611c9557506013544311155b8015611cba57506001600160a01b03831660009081526015602052604090205460ff16155b15611cca57611cca836001611e5f565b6014546001600160a01b03851660009081526015602052604090205460ff91821615911680611d1157506001600160a01b03841660009081526015602052604090205460ff165b15611d1a575060005b8015611e13576012546000906001600160a01b0390811690861603611d6b57611d5360646114346008548761168190919063ffffffff16565b600a54909150611d63908261178e565b600a55611df3565b60145462010000900460ff1615611dc5576001600160a01b0385166000908152601960205260409020544211611da057600080fd5b611dab42601e612567565b6001600160a01b0386166000908152601960205260409020555b611ddf60646114346007548761168190919063ffffffff16565b600a54909150611def908261178e565b600a555b8015611e1157611e04863083611f6d565b611e0e848261174c565b93505b505b611e1e858585611f6d565b5050505050565b60008184841115611e495760405162461bcd60e51b8152600401610981919061225c565b506000611e56848661257f565b95945050505050565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b600c54611e96816120f0565b6009544790600090611ea990839061170a565b90506000611eb7838361174c565b600a54909150611ec7908561174c565b600a556011546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611f04573d6000803e3d6000fd5b506010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611e1e573d6000803e3d6000fd5b60008183611f605760405162461bcd60e51b8152600401610981919061225c565b506000611e568486612545565b6001600160a01b038316611fd15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610981565b6001600160a01b0382166120335760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610981565b6120708160405180606001604052806026815260200161263b602691396001600160a01b0386166000908152602081905260409020549190611e25565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461209f908261178e565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101611905565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061212557612125612596565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bb91906125ac565b816001815181106121ce576121ce612596565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906122269085906000908690309042906004016125c9565b600060405180830381600087803b15801561224057600080fd5b505af1158015612254573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156122895785810183015185820160400152820161226d565b8181111561229b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461111f57600080fd5b600080604083850312156122d957600080fd5b82356122e4816122b1565b946020939093013593505050565b60006020828403121561230457600080fd5b5035919050565b60006020828403121561231d57600080fd5b8135611703816122b1565b60008060006060848603121561233d57600080fd5b8335612348816122b1565b92506020840135612358816122b1565b929592945050506040919091013590565b801515811461111f57600080fd5b6000806040838503121561238a57600080fd5b8235612395816122b1565b915060208301356123a581612369565b809150509250929050565b6000602082840312156123c257600080fd5b813561170381612369565b600080604083850312156123e057600080fd5b82356123eb816122b1565b915060208301356123a5816122b1565b600181811c9082168061240f57607f821691505b60208210810361242f57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526022908201527f6f6e6c792064657620616464726573732063616e2063616c6c2066756e63746960408201526137b760f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156124dc576124dc6124ac565b500290565b6000602082840312156124f357600080fd5b5051919050565b60006020828403121561250c57600080fd5b815161170381612369565b60008060006060848603121561252c57600080fd5b8351925060208401519150604084015190509250925092565b60008261256257634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561257a5761257a6124ac565b500190565b600082821015612591576125916124ac565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156125be57600080fd5b8151611703816122b1565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126195784516001600160a01b0316835293830193918301916001016125f4565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207fd55cd1e599cf4c50edc8bae8db20098b53db2e9e315ed04a68bb613715428264736f6c634300080f0033
Deployed Bytecode Sourcemap
7859:10884:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4507:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5408:169;;;;;;;;;;-1:-1:-1;5408:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;5408:169:0;1072:187:1;11845:224:0;;;;;;;;;;-1:-1:-1;11845:224:0;;;;;:::i;:::-;;:::i;:::-;;7995:115;;;;;;;;;;;;8067:42;7995:115;;;;;-1:-1:-1;;;;;1639:32:1;;;1621:51;;1609:2;1594:18;7995:115:0;1449:229:1;4821:108:0;;;;;;;;;;-1:-1:-1;4909:12:0;;4821:108;;;1829:25:1;;;1817:2;1802:18;4821:108:0;1683:177:1;13168:164:0;;;;;;;;;;-1:-1:-1;13168:164:0;;;;;:::i;:::-;;:::i;5585:355::-;;;;;;;;;;-1:-1:-1;5585:355:0;;;;;:::i;:::-;;:::i;11045:230::-;;;;;;;;;;-1:-1:-1;11045:230:0;;;;;:::i;:::-;;:::i;8860:22::-;;;;;;;;;;-1:-1:-1;8860:22:0;;;;;;;;;;;4723:92;;;;;;;;;;-1:-1:-1;4723:92:0;;4806:1;3230:36:1;;3218:2;3203:18;4723:92:0;3088:184:1;8760:28:0;;;;;;;;;;-1:-1:-1;8760:28:0;;;;-1:-1:-1;;;;;8760:28:0;;;7934:54;;;;;;;;;;;;7981:6;7934:54;;8960:51;;;;;;;;;;-1:-1:-1;8960:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12318:109;;;;;;;;;;-1:-1:-1;12318:109:0;;;;;:::i;:::-;;:::i;12971:189::-;;;;;;;;;;-1:-1:-1;12971:189:0;;;;;:::i;:::-;;:::i;12609:167::-;;;;;;;;;;-1:-1:-1;12609:167:0;;;;;:::i;:::-;;:::i;8558:39::-;;;;;;;;;;;;;;;;8228:27;;;;;;;;;;;;;;;;14255:238;;;;;;;;;;;;;:::i;4937:127::-;;;;;;;;;;-1:-1:-1;4937:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5038:18:0;5011:7;5038:18;;;;;;;;;;;;4937:127;1999:148;;;;;;;;;;;;;:::i;12784:179::-;;;;;;;;;;-1:-1:-1;12784:179:0;;;;;:::i;:::-;;:::i;8445:35::-;;;;;;;;;;;;;;;;18307:390;;;;;;;;;;-1:-1:-1;18307:390:0;;;;;:::i;:::-;;:::i;8350:57::-;;;;;;;;;;;;;;;;12077:233;;;;;;;;;;-1:-1:-1;12077:233:0;;;;;:::i;:::-;;:::i;1785:79::-;;;;;;;;;;-1:-1:-1;1850:6:0;;-1:-1:-1;;;;;1850:6:0;1785:79;;8154:29;;;;;;;;;;;;;;;;4613:104;;;;;;;;;;;;;:::i;13524:318::-;;;;;;;;;;-1:-1:-1;13524:318:0;;;;;:::i;:::-;;:::i;5070:175::-;;;;;;;;;;-1:-1:-1;5070:175:0;;;;;:::i;:::-;;:::i;13340:176::-;;;;;;;;;;-1:-1:-1;13340:176:0;;;;;:::i;:::-;;:::i;8264:42::-;;;;;;;;;;;;;;;;9371:41;;;;;;;;;;-1:-1:-1;9371:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;9165:58;;;;;;;;;;-1:-1:-1;9165:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9064:54;;;;;;;;;;-1:-1:-1;9064:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10819:218;;;;;;;;;;-1:-1:-1;10819:218:0;;;;;:::i;:::-;;:::i;14106:137::-;;;;;;;;;;;;;:::i;14507:545::-;;;;;;;;;;;;;:::i;11537:300::-;;;;;;;;;;-1:-1:-1;11537:300:0;;;;;:::i;:::-;;:::i;8797:26::-;;;;;;;;;;;;;;;;5251:151;;;;;;;;;;-1:-1:-1;5251:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5367:18:0;;;5340:7;5367:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5251:151;11283:246;;;;;;;;;;-1:-1:-1;11283:246:0;;;;;:::i;:::-;;:::i;8119:28::-;;;;;;;;;;;;;;;;13850:248;;;;;;;;;;-1:-1:-1;13850:248:0;;;;;:::i;:::-;;:::i;12435:164::-;;;;;;;;;;-1:-1:-1;12435:164:0;;;;;:::i;:::-;;:::i;9287:46::-;;;;;;;;;;-1:-1:-1;9287:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4507:100;4561:13;4594:5;4587:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4507:100;:::o;5408:169::-;5491:4;5508:39;1160:10;5531:7;5540:6;5508:8;:39::i;:::-;-1:-1:-1;5565:4:0;5408:169;;;;;:::o;11845:224::-;11923:3;;-1:-1:-1;;;;;11923:3:0;1160:10;-1:-1:-1;;;;;11907:19:0;;11899:66;;;;-1:-1:-1;;;11899:66:0;;;;;;;:::i;:::-;;;;;;;;;11990:2;11981:5;:11;;11973:61;;;;-1:-1:-1;;;11973:61:0;;5114:2:1;11973:61:0;;;5096:21:1;5153:2;5133:18;;;5126:30;5192:34;5172:18;;;5165:62;-1:-1:-1;;;5243:18:1;;;5236:35;5288:19;;11973:61:0;4912:401:1;11973:61:0;12045:8;:16;11845:224::o;13168:164::-;13256:3;;-1:-1:-1;;;;;13256:3:0;1160:10;-1:-1:-1;;;;;13240:19:0;;13232:66;;;;-1:-1:-1;;;13232:66:0;;;;;;;:::i;:::-;13309:3;:15;;-1:-1:-1;;;;;;13309:15:0;-1:-1:-1;;;;;13309:15:0;;;;;;;;;;13168:164::o;5585:355::-;5725:4;5742:36;5752:6;5760:9;5771:6;5742:9;:36::i;:::-;5789:121;5798:6;1160:10;5820:89;5858:6;5820:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5820:19:0;;;;;;:11;:19;;;;;;;;1160:10;5820:33;;;;;;;;;;:37;:89::i;:::-;5789:8;:121::i;:::-;-1:-1:-1;5928:4:0;5585:355;;;;;:::o;11045:230::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11140:30:0;::::1;;::::0;;;:21:::1;:30;::::0;;;;;:39;::::1;;:30;::::0;;::::1;:39;;::::0;11132:86:::1;;;::::0;-1:-1:-1;;;11132:86:0;;5881:2:1;11132:86:0::1;::::0;::::1;5863:21:1::0;5920:2;5900:18;;;5893:30;5959:34;5939:18;;;5932:62;-1:-1:-1;;;6010:18:1;;;6003:32;6052:19;;11132:86:0::1;5679:398:1::0;11132:86:0::1;-1:-1:-1::0;;;;;11229:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:38;;-1:-1:-1;;11229:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11045:230::o;12318:109::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;12393:15:::1;:26:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;12393:26:0;;::::1;::::0;;;::::1;::::0;;12318:109::o;12971:189::-;13062:3;;-1:-1:-1;;;;;13062:3:0;1160:10;-1:-1:-1;;;;;13046:19:0;;13038:66;;;;-1:-1:-1;;;13038:66:0;;;;;;;:::i;:::-;13130:22;:12;13146:5;13130:22;:::i;:::-;13115:12;:37;-1:-1:-1;12971:189:0:o;12609:167::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;12701:1:::1;12690:8;:12;12682:44;;;::::0;-1:-1:-1;;;12682:44:0;;6589:2:1;12682:44:0::1;::::0;::::1;6571:21:1::0;6628:2;6608:18;;;6601:30;-1:-1:-1;;;6647:18:1;;;6640:49;6706:18;;12682:44:0::1;6387:343:1::0;12682:44:0::1;12750:18;:8:::0;12762:5:::1;12750:18;:::i;:::-;12737:10;:31:::0;-1:-1:-1;12609:167:0:o;14255:238::-;14321:3;;-1:-1:-1;;;;;14321:3:0;1160:10;-1:-1:-1;;;;;14305:19:0;;14297:66;;;;-1:-1:-1;;;14297:66:0;;;;;;;:::i;:::-;14451:3;;14435:50;;14403:21;;-1:-1:-1;;;;;14451:3:0;;14435:50;;;;;14403:21;;14374:26;14435:50;14374:26;14435:50;14403:21;14451:3;14435:50;;;;;;;;;;;;;;;;;;;;;14286:207;14255:238::o;1999:148::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;2090:6:::1;::::0;2069:40:::1;::::0;2106:1:::1;::::0;-1:-1:-1;;;;;2090:6:0::1;::::0;2069:40:::1;::::0;2106:1;;2069:40:::1;2120:6;:19:::0;;-1:-1:-1;;;;;;2120:19:0::1;::::0;;1999:148::o;12784:179::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;12880:1:::1;12869:8;:12;12861:48;;;::::0;-1:-1:-1;;;12861:48:0;;6937:2:1;12861:48:0::1;::::0;::::1;6919:21:1::0;6976:2;6956:18;;;6949:30;7015:25;6995:18;;;6988:53;7058:18;;12861:48:0::1;6735:347:1::0;12861:48:0::1;12937:18;:8:::0;12949:5:::1;12937:18;:::i;:::-;12920:14;:35:::0;-1:-1:-1;12784:179:0:o;18307:390::-;18430:3;;18384:10;;-1:-1:-1;;;;;18430:3:0;1160:10;-1:-1:-1;;;;;18414:19:0;;18406:66;;;;-1:-1:-1;;;18406:66:0;;;;;;;:::i;:::-;18509:4;-1:-1:-1;;;;;18491:23:0;;;18483:64;;;;-1:-1:-1;;;18483:64:0;;7289:2:1;18483:64:0;;;7271:21:1;7328:2;7308:18;;;7301:30;7367;7347:18;;;7340:58;7415:18;;18483:64:0;7087:352:1;18483:64:0;18585:39;;-1:-1:-1;;;18585:39:0;;18618:4;18585:39;;;1621:51:1;18558:24:0;;-1:-1:-1;;;;;18585:24:0;;;;;1594:18:1;;18585:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18643:46;;-1:-1:-1;;;18643:46:0;;-1:-1:-1;;;;;7825:32:1;;;18643:46:0;;;7807:51:1;7874:18;;;7867:34;;;18558:66:0;;-1:-1:-1;18643:23:0;;;;;;7780:18:1;;18643:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18635:54;18307:390;-1:-1:-1;;;;18307:390:0:o;12077:233::-;12156:3;;-1:-1:-1;;;;;12156:3:0;1160:10;-1:-1:-1;;;;;12140:19:0;;12132:66;;;;-1:-1:-1;;;12132:66:0;;;;;;;:::i;:::-;12226:2;12217:5;:11;;12209:65;;;;-1:-1:-1;;;12209:65:0;;8364:2:1;12209:65:0;;;8346:21:1;8403:2;8383:18;;;8376:30;8442:34;8422:18;;;8415:62;-1:-1:-1;;;8493:18:1;;;8486:39;8542:19;;12209:65:0;8162:405:1;12209:65:0;12285:9;:17;12077:233::o;4613:104::-;4669:13;4702:7;4695:14;;;;;:::i;13524:318::-;13607:3;;-1:-1:-1;;;;;13607:3:0;1160:10;-1:-1:-1;;;;;13591:19:0;;13583:66;;;;-1:-1:-1;;;13583:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13669:22:0;;;;;;:13;:22;;;;;;;;13668:23;13660:66;;;;-1:-1:-1;;;13660:66:0;;8774:2:1;13660:66:0;;;8756:21:1;8813:2;8793:18;;;8786:30;8852:32;8832:18;;;8825:60;8902:18;;13660:66:0;8572:354:1;13660:66:0;13756:13;;-1:-1:-1;;;;;13756:13:0;;;13745:24;;;;13737:58;;;;-1:-1:-1;;;13737:58:0;;9133:2:1;13737:58:0;;;9115:21:1;9172:2;9152:18;;;9145:30;-1:-1:-1;;;9191:18:1;;;9184:51;9252:18;;13737:58:0;8931:345:1;13737:58:0;13806:28;13820:7;13829:4;13806:13;:28::i;:::-;13524:318;:::o;5070:175::-;5156:4;5173:42;1160:10;5197:9;5208:6;5173:9;:42::i;13340:176::-;13434:3;;-1:-1:-1;;;;;13434:3:0;1160:10;-1:-1:-1;;;;;13418:19:0;;13410:66;;;;-1:-1:-1;;;13410:66:0;;;;;;;:::i;:::-;13487:9;:21;;-1:-1:-1;;;;;;13487:21:0;-1:-1:-1;;;;;13487:21:0;;;;;;;;;;13340:176::o;10819:218::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10911:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:36;::::1;;:27;::::0;;::::1;:36;;::::0;10903:80:::1;;;::::0;-1:-1:-1;;;10903:80:0;;9483:2:1;10903:80:0::1;::::0;::::1;9465:21:1::0;9522:2;9502:18;;;9495:30;9561:33;9541:18;;;9534:61;9612:18;;10903:80:0::1;9281:355:1::0;10903:80:0::1;-1:-1:-1::0;;;;;10994:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;10994:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10819:218::o;14106:137::-;14172:3;;-1:-1:-1;;;;;14172:3:0;1160:10;-1:-1:-1;;;;;14156:19:0;;14148:66;;;;-1:-1:-1;;;14148:66:0;;;;;;;:::i;:::-;14225:10;:8;:10::i;:::-;14106:137::o;14507:545::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;14571:10:::1;::::0;::::1;::::0;::::1;;;14570:11;14562:52;;;::::0;-1:-1:-1;;;14562:52:0;;9843:2:1;14562:52:0::1;::::0;::::1;9825:21:1::0;9882:2;9862:18;;;9855:30;9921;9901:18;;;9894:58;9969:18;;14562:52:0::1;9641:352:1::0;14562:52:0::1;14625:58;14642:4;8067:42;14675:7;;14625:8;:58::i;:::-;8067:42;14704:31;14743:21;14774:4;14780:24;14774:4:::0;-1:-1:-1;;;;;5038:18:0;5011:7;5038:18;;;;;;;;;;;;4937:127;14780:24:::1;14805:1;14807::::0;14809:7:::1;1850:6:::0;;-1:-1:-1;;;;;1850:6:0;;1785:79;14809:7:::1;14704:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14704:129:0;;;-1:-1:-1;;;;;10357:15:1;;;14704:129:0::1;::::0;::::1;10339:34:1::0;10389:18;;;10382:34;;;;10432:18;;;10425:34;;;;10475:18;;;10468:34;10539:15;;;10518:19;;;10511:44;14817:15:0::1;10571:19:1::0;;;10564:35;10273:19;;14704:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14844:10:0::1;:17:::0;;14886:12:::1;14872:11;:26:::0;-1:-1:-1;;14909:22:0;;;;;-1:-1:-1;14955:7:0::1;::::0;:26:::1;::::0;14975:5:::1;::::0;14955:15:::1;::::0;14967:2:::1;14955:11;:15::i;:::-;:19:::0;::::1;:26::i;:::-;14942:10;:39:::0;15017:7:::1;::::0;:27:::1;::::0;15038:5:::1;::::0;15017:16:::1;::::0;15029:3:::1;15017:11;:16::i;:27::-;15000:14;:44:::0;14507:545::o;11537:300::-;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;11651:3:::1;::::0;-1:-1:-1;;;;;11651:3:0::1;1160:10:::0;-1:-1:-1;;;;;11635:19:0::1;;11627:66;;;;-1:-1:-1::0;;;11627:66:0::1;;;;;;;:::i;:::-;11704:31;11720:7;11729:5;11704:15;:31::i;:::-;11746:34;11765:7;11774:5;11746:18;:34::i;:::-;11791:38;11814:7;11823:5;11283:246:::0;1912:6;;-1:-1:-1;;;;;1912:6:0;1160:10;1912:22;1904:67;;;;-1:-1:-1;;;1904:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11382:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;:43;::::1;;:34;::::0;;::::1;:43;;::::0;11374:94:::1;;;::::0;-1:-1:-1;;;11374:94:0;;11123:2:1;11374:94:0::1;::::0;::::1;11105:21:1::0;11162:2;11142:18;;;11135:30;11201:34;11181:18;;;11174:62;-1:-1:-1;;;11252:18:1;;;11245:36;11298:19;;11374:94:0::1;10921:402:1::0;11374:94:0::1;-1:-1:-1::0;;;;;11479:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:42;;-1:-1:-1;;11479:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11283:246::o;13850:248::-;13936:3;;-1:-1:-1;;;;;13936:3:0;1160:10;-1:-1:-1;;;;;13920:19:0;;13912:66;;;;-1:-1:-1;;;13912:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13997:22:0;;;;;;:13;:22;;;;;;;;13989:61;;;;-1:-1:-1;;;13989:61:0;;11530:2:1;13989:61:0;;;11512:21:1;11569:2;11549:18;;;11542:30;11608:28;11588:18;;;11581:56;11654:18;;13989:61:0;11328:350:1;13989:61:0;14061:29;14075:7;14084:5;14061:13;:29::i;12435:164::-;12520:3;;-1:-1:-1;;;;;12520:3:0;1160:10;-1:-1:-1;;;;;12504:19:0;;12496:66;;;;-1:-1:-1;;;12496:66:0;;;;;;;:::i;:::-;12569:10;:22;12435:164::o;2710:246::-;2768:7;2792:1;2797;2792:6;2788:47;;-1:-1:-1;2822:1:0;2815:8;;2788:47;2845:9;2857:5;2861:1;2857;:5;:::i;:::-;2845:17;-1:-1:-1;2890:1:0;2881:5;2885:1;2845:17;2881:5;:::i;:::-;:10;2873:56;;;;-1:-1:-1;;;2873:56:0;;12107:2:1;2873:56:0;;;12089:21:1;12146:2;12126:18;;;12119:30;12185:34;12165:18;;;12158:62;-1:-1:-1;;;12236:18:1;;;12229:31;12277:19;;2873:56:0;11905:397:1;2873:56:0;2947:1;2710:246;-1:-1:-1;;;2710:246:0:o;2964:132::-;3022:7;3049:39;3053:1;3056;3049:39;;;;;;;;;;;;;;;;;:3;:39::i;2368:136::-;2426:7;2453:43;2457:1;2460;2453:43;;;;;;;;;;;;;;;;;:3;:43::i;2181:179::-;2239:7;;2271:5;2275:1;2271;:5;:::i;:::-;2259:17;;2300:1;2295;:6;;2287:46;;;;-1:-1:-1;;;2287:46:0;;12642:2:1;2287:46:0;;;12624:21:1;12681:2;12661:18;;;12654:30;12720:29;12700:18;;;12693:57;12767:18;;2287:46:0;12440:351:1;7339:380:0;-1:-1:-1;;;;;7475:19:0;;7467:68;;;;-1:-1:-1;;;7467:68:0;;12998:2:1;7467:68:0;;;12980:21:1;13037:2;13017:18;;;13010:30;13076:34;13056:18;;;13049:62;-1:-1:-1;;;13127:18:1;;;13120:34;13171:19;;7467:68:0;12796:400:1;7467:68:0;-1:-1:-1;;;;;7554:21:0;;7546:68;;;;-1:-1:-1;;;7546:68:0;;13403:2:1;7546:68:0;;;13385:21:1;13442:2;13422:18;;;13415:30;13481:34;13461:18;;;13454:62;-1:-1:-1;;;13532:18:1;;;13525:32;13574:19;;7546:68:0;13201:398:1;7546:68:0;-1:-1:-1;;;;;7627:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7679:32;;1829:25:1;;;7679:32:0;;1802:18:1;7679:32:0;;;;;;;;7339:380;;;:::o;15060:2228::-;-1:-1:-1;;;;;15158:18:0;;15150:61;;;;-1:-1:-1;;;15150:61:0;;13806:2:1;15150:61:0;;;13788:21:1;13845:2;13825:18;;;13818:30;13884:32;13864:18;;;13857:60;13934:18;;15150:61:0;13604:354:1;15150:61:0;-1:-1:-1;;;;;15230:16:0;;15222:57;;;;-1:-1:-1;;;15222:57:0;;14165:2:1;15222:57:0;;;14147:21:1;14204:2;14184:18;;;14177:30;14243;14223:18;;;14216:58;14291:18;;15222:57:0;13963:352:1;15222:57:0;15308:10;;15298:6;:20;;:51;;;-1:-1:-1;;;;;;15322:27:0;;;;;;:21;:27;;;;;;;;15298:51;:80;;;-1:-1:-1;;;;;;15353:25:0;;;;;;:21;:25;;;;;;;;15298:80;15290:112;;;;-1:-1:-1;;;15290:112:0;;14522:2:1;15290:112:0;;;14504:21:1;14561:2;14541:18;;;14534:30;-1:-1:-1;;;14580:18:1;;;14573:49;14639:18;;15290:112:0;14320:343:1;15290:112:0;15450:14;;15421:25;15439:6;15421:13;15431:2;-1:-1:-1;;;;;5038:18:0;5011:7;5038:18;;;;;;;;;;;;4937:127;15421:13;:17;;:25::i;:::-;:43;;:76;;;-1:-1:-1;;;;;;15468:29:0;;;;;;:25;:29;;;;;;;;15421:76;15413:122;;;;-1:-1:-1;;;15413:122:0;;14870:2:1;15413:122:0;;;14852:21:1;14909:2;14889:18;;;14882:30;14948:34;14928:18;;;14921:62;-1:-1:-1;;;14999:18:1;;;14992:31;15040:19;;15413:122:0;14668:397:1;15413:122:0;15554:10;;;;;;;;:38;;-1:-1:-1;;;;;;15568:24:0;;;;;;:18;:24;;;;;;;;15554:38;:64;;;-1:-1:-1;;;;;;15596:22:0;;;;;;:18;:22;;;;;;;;15554:64;15546:95;;;;-1:-1:-1;;;15546:95:0;;15272:2:1;15546:95:0;;;15254:21:1;15311:2;15291:18;;;15284:30;-1:-1:-1;;;15330:18:1;;;15323:48;15388:18;;15546:95:0;15070:342:1;15546:95:0;-1:-1:-1;;;;;15661:19:0;;;;;;:13;:19;;;;;;;;15660:20;15652:54;;;;-1:-1:-1;;;15652:54:0;;15619:2:1;15652:54:0;;;15601:21:1;15658:2;15638:18;;;15631:30;-1:-1:-1;;;15677:18:1;;;15670:51;15738:18;;15652:54:0;15417:345:1;15652:54:0;15722:6;15732:1;15722:11;15719:92;;15750:28;15766:4;15772:2;15776:1;15750:15;:28::i;:::-;15060:2228;;;:::o;15719:92::-;15854:12;;15838;;15904:13;;15838:28;-1:-1:-1;15838:28:0;;-1:-1:-1;;;;;15896:21:0;;;15904:13;;15896:21;;;;:45;;;15934:7;15896:45;:71;;;;-1:-1:-1;15959:8:0;;;;15958:9;15896:71;15879:424;;;15994:8;:15;;-1:-1:-1;;15994:15:0;16005:4;15994:15;;;16024:10;:8;:10::i;:::-;16049:8;:16;;-1:-1:-1;;16049:16:0;;;15879:424;;;16108:13;;-1:-1:-1;;;;;16100:21:0;;;16108:13;;16100:21;:57;;;;-1:-1:-1;16144:13:0;;-1:-1:-1;;;;;16138:19:0;;;16144:13;;16138:19;;16100:57;:101;;;;;16190:11;;16174:12;:27;;16100:101;:141;;;;-1:-1:-1;;;;;;16219:22:0;;;;;;:18;:22;;;;;;;;16218:23;16100:141;16083:220;;;16268:23;16282:2;16286:4;16268:13;:23::i;:::-;16331:8;;-1:-1:-1;;;;;16355:24:0;;16315:12;16355:24;;;:18;:24;;;;;;16331:8;;;;16330:9;;16355:24;;:50;;-1:-1:-1;;;;;;16383:22:0;;;;;;:18;:22;;;;;;;;16355:50;16352:97;;;-1:-1:-1;16432:5:0;16352:97;16464:7;16461:774;;;16549:13;;16488:12;;-1:-1:-1;;;;;16549:13:0;;;16543:19;;;;16539:536;;16598:30;16624:3;16598:21;16609:9;;16598:6;:10;;:21;;;;:::i;:30::-;16662:12;;16591:37;;-1:-1:-1;16662:22:0;;16591:37;16662:16;:22::i;:::-;16647:12;:37;16539:536;;;16783:15;;;;;;;16780:169;;;-1:-1:-1;;;;;16830:12:0;;;;;;:8;:12;;;;;;16845:15;-1:-1:-1;16822:39:0;;;;;;16899:30;:15;16918:10;16899:30;:::i;:::-;-1:-1:-1;;;;;16884:12:0;;;;;;:8;:12;;;;;:45;16780:169;16974:29;16999:3;16974:20;16985:8;;16974:6;:10;;:20;;;;:::i;:29::-;17037:12;;16967:36;;-1:-1:-1;17037:22:0;;16967:36;17037:16;:22::i;:::-;17022:12;:37;16539:536;17094:8;;17091:133;;17122:42;17138:4;17152;17159;17122:15;:42::i;:::-;17192:16;:6;17203:4;17192:10;:16::i;:::-;17183:25;;17091:133;16473:762;16461:774;17247:33;17263:4;17269:2;17273:6;17247:15;:33::i;:::-;15139:2149;;15060:2228;;;:::o;2512:190::-;2598:7;2634:12;2626:6;;;;2618:29;;;;-1:-1:-1;;;2618:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2658:9:0;2670:5;2674:1;2670;:5;:::i;:::-;2658:17;2512:190;-1:-1:-1;;;;;2512:190:0:o;18189:110::-;-1:-1:-1;;;;;18261:22:0;;;;;;;;:13;:22;;;;;:30;;-1:-1:-1;;18261:30:0;;;;;;;;;;18189:110::o;17296:474::-;17352:12;;17377:25;17352:12;17377:17;:25::i;:::-;17506:10;;17436:21;;17415:18;;17491:26;;17436:21;;17491:14;:26::i;:::-;17468:49;-1:-1:-1;17528:26:0;17557:28;:10;17468:49;17557:14;:28::i;:::-;17611:12;;17528:57;;-1:-1:-1;17611:24:0;;17628:6;17611:16;:24::i;:::-;17596:12;:39;17664:6;;17648:47;;-1:-1:-1;;;;;17664:6:0;;;;17648:47;;;;;17682:12;;17664:6;17648:47;17664:6;17648:47;17682:12;17664:6;17648:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17722:9:0;;17706:56;;-1:-1:-1;;;;;17722:9:0;;;;17706:56;;;;;17743:18;;17722:9;17706:56;17722:9;17706:56;17743:18;17722:9;17706:56;;;;;;;;;;;;;;;;;;;3104:189;3190:7;3225:12;3218:5;3210:28;;;;-1:-1:-1;;;3210:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3249:9:0;3261:5;3265:1;3261;:5;:::i;5948:573::-;-1:-1:-1;;;;;6088:20:0;;6080:70;;;;-1:-1:-1;;;6080:70:0;;16099:2:1;6080:70:0;;;16081:21:1;16138:2;16118:18;;;16111:30;16177:34;16157:18;;;16150:62;-1:-1:-1;;;16228:18:1;;;16221:35;16273:19;;6080:70:0;15897:401:1;6080:70:0;-1:-1:-1;;;;;6169:23:0;;6161:71;;;;-1:-1:-1;;;6161:71:0;;16505:2:1;6161:71:0;;;16487:21:1;16544:2;16524:18;;;16517:30;16583:34;16563:18;;;16556:62;-1:-1:-1;;;16634:18:1;;;16627:33;16677:19;;6161:71:0;16303:399:1;6161:71:0;6325;6347:6;6325:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6325:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6305:17:0;;;:9;:17;;;;;;;;;;;:91;;;;6430:20;;;;;;;:32;;6455:6;6430:24;:32::i;:::-;-1:-1:-1;;;;;6407:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;6478:35;1829:25:1;;;6407:20:0;;6478:35;;;;;;1802:18:1;6478:35:0;1683:177:1;17778:403:0;17871:16;;;17885:1;17871:16;;;;;;;;17847:21;;17871:16;;;;;;;;;;-1:-1:-1;17871:16:0;17847:40;;17916:4;17898;17903:1;17898:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17898:23:0;;;-1:-1:-1;;;;;17898:23:0;;;;;8067:42;-1:-1:-1;;;;;17942:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17932:4;17937:1;17932:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17932:32:0;;;:7;;;;;;;;;;;:32;17977:196;;-1:-1:-1;;;17977:196:0;;8067:42;;17977:66;;:196;;18058:11;;18084:1;;18100:4;;18127;;18147:15;;17977:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17834:347;17778:403;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:180::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;-1:-1:-1;1415:23:1;;1264:180;-1:-1:-1;1264:180:1:o;1865:247::-;1924:6;1977:2;1965:9;1956:7;1952:23;1948:32;1945:52;;;1993:1;1990;1983:12;1945:52;2032:9;2019:23;2051:31;2076:5;2051:31;:::i;2117:456::-;2194:6;2202;2210;2263:2;2251:9;2242:7;2238:23;2234:32;2231:52;;;2279:1;2276;2269:12;2231:52;2318:9;2305:23;2337:31;2362:5;2337:31;:::i;:::-;2387:5;-1:-1:-1;2444:2:1;2429:18;;2416:32;2457:33;2416:32;2457:33;:::i;:::-;2117:456;;2509:7;;-1:-1:-1;;;2563:2:1;2548:18;;;;2535:32;;2117:456::o;2578:118::-;2664:5;2657:13;2650:21;2643:5;2640:32;2630:60;;2686:1;2683;2676:12;2701:382;2766:6;2774;2827:2;2815:9;2806:7;2802:23;2798:32;2795:52;;;2843:1;2840;2833:12;2795:52;2882:9;2869:23;2901:31;2926:5;2901:31;:::i;:::-;2951:5;-1:-1:-1;3008:2:1;2993:18;;2980:32;3021:30;2980:32;3021:30;:::i;:::-;3070:7;3060:17;;;2701:382;;;;;:::o;3485:241::-;3541:6;3594:2;3582:9;3573:7;3569:23;3565:32;3562:52;;;3610:1;3607;3600:12;3562:52;3649:9;3636:23;3668:28;3690:5;3668:28;:::i;3731:388::-;3799:6;3807;3860:2;3848:9;3839:7;3835:23;3831:32;3828:52;;;3876:1;3873;3866:12;3828:52;3915:9;3902:23;3934:31;3959:5;3934:31;:::i;:::-;3984:5;-1:-1:-1;4041:2:1;4026:18;;4013:32;4054:33;4013:32;4054:33;:::i;4124:380::-;4203:1;4199:12;;;;4246;;;4267:61;;4321:4;4313:6;4309:17;4299:27;;4267:61;4374:2;4366:6;4363:14;4343:18;4340:38;4337:161;;4420:10;4415:3;4411:20;4408:1;4401:31;4455:4;4452:1;4445:15;4483:4;4480:1;4473:15;4337:161;;4124:380;;;:::o;4509:398::-;4711:2;4693:21;;;4750:2;4730:18;;;4723:30;4789:34;4784:2;4769:18;;4762:62;-1:-1:-1;;;4855:2:1;4840:18;;4833:32;4897:3;4882:19;;4509:398::o;5318:356::-;5520:2;5502:21;;;5539:18;;;5532:30;5598:34;5593:2;5578:18;;5571:62;5665:2;5650:18;;5318:356::o;6082:127::-;6143:10;6138:3;6134:20;6131:1;6124:31;6174:4;6171:1;6164:15;6198:4;6195:1;6188:15;6214:168;6254:7;6320:1;6316;6312:6;6308:14;6305:1;6302:21;6297:1;6290:9;6283:17;6279:45;6276:71;;;6327:18;;:::i;:::-;-1:-1:-1;6367:9:1;;6214:168::o;7444:184::-;7514:6;7567:2;7555:9;7546:7;7542:23;7538:32;7535:52;;;7583:1;7580;7573:12;7535:52;-1:-1:-1;7606:16:1;;7444:184;-1:-1:-1;7444:184:1:o;7912:245::-;7979:6;8032:2;8020:9;8011:7;8007:23;8003:32;8000:52;;;8048:1;8045;8038:12;8000:52;8080:9;8074:16;8099:28;8121:5;8099:28;:::i;10610:306::-;10698:6;10706;10714;10767:2;10755:9;10746:7;10742:23;10738:32;10735:52;;;10783:1;10780;10773:12;10735:52;10812:9;10806:16;10796:26;;10862:2;10851:9;10847:18;10841:25;10831:35;;10906:2;10895:9;10891:18;10885:25;10875:35;;10610:306;;;;;:::o;11683:217::-;11723:1;11749;11739:132;;11793:10;11788:3;11784:20;11781:1;11774:31;11828:4;11825:1;11818:15;11856:4;11853:1;11846:15;11739:132;-1:-1:-1;11885:9:1;;11683:217::o;12307:128::-;12347:3;12378:1;12374:6;12371:1;12368:13;12365:39;;;12384:18;;:::i;:::-;-1:-1:-1;12420:9:1;;12307:128::o;15767:125::-;15807:4;15835:1;15832;15829:8;15826:34;;;15840:18;;:::i;:::-;-1:-1:-1;15877:9:1;;15767:125::o;16839:127::-;16900:10;16895:3;16891:20;16888:1;16881:31;16931:4;16928:1;16921:15;16955:4;16952:1;16945:15;16971:251;17041:6;17094:2;17082:9;17073:7;17069:23;17065:32;17062:52;;;17110:1;17107;17100:12;17062:52;17142:9;17136:16;17161:31;17186:5;17161:31;:::i;17227:980::-;17489:4;17537:3;17526:9;17522:19;17568:6;17557:9;17550:25;17594:2;17632:6;17627:2;17616:9;17612:18;17605:34;17675:3;17670:2;17659:9;17655:18;17648:31;17699:6;17734;17728:13;17765:6;17757;17750:22;17803:3;17792:9;17788:19;17781:26;;17842:2;17834:6;17830:15;17816:29;;17863:1;17873:195;17887:6;17884:1;17881:13;17873:195;;;17952:13;;-1:-1:-1;;;;;17948:39:1;17936:52;;18043:15;;;;18008:12;;;;17984:1;17902:9;17873:195;;;-1:-1:-1;;;;;;;18124:32:1;;;;18119:2;18104:18;;18097:60;-1:-1:-1;;;18188:3:1;18173:19;18166:35;18085:3;17227:980;-1:-1:-1;;;17227:980:1:o
Swarm Source
ipfs://7fd55cd1e599cf4c50edc8bae8db20098b53db2e9e315ed04a68bb6137154282
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.