ERC-20
Overview
Max Total Supply
6,000,000,000 OTC
Holders
80
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
96,309,044.453593781719586248 OTCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20ONETRUECRYPTOERC
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-18 */ // https://t.me/OneTrueCryptoErc // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.18; 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); event TransferDetails(address indexed from, address indexed to, uint256 total_Amount, uint256 reflected_amount, uint256 total_TransferAmount, uint256 reflected_TransferAmount); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function renounceOwnership() public virtual onlyOwner { address newOwner = address(0); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract ERC20ONETRUECRYPTOERC is Context, IERC20, Ownable { mapping (address => uint256) public _balance_reflected; mapping (address => uint256) public _balance_total; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcluded; bool public tradingOpen = false; uint256 private constant MAX = ~uint256(0); address constant deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public constant decimals = 18; uint256 public constant totalSupply = 6 * 10**9 * 10**decimals; uint256 private _supply_reflected = (MAX - (MAX % totalSupply)); string public constant name = "One True Crypto"; string public constant symbol = "OTC"; uint256 public _fee_reflection = 2; uint256 private _fee_reflection_old = _fee_reflection; uint256 public _contractReflectionStored = 0; uint256 public _fee_marketing = 8; uint256 private _fee_marketing_old = _fee_marketing; address payable public _wallet_marketing; uint256 public constant _fee_denominator = 100; IUniswapV2Router public immutable uniswapV2Router; address public immutable uniswapV2Pair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = false; uint256 public swapThreshold = totalSupply / 500; mapping (address => bool) public isFeeExempt; address[] public _excluded; uint256 public buyMultiplier = 0; uint256 public sellMultiplier = 0; uint256 public transferMultiplier = 0; event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { _balance_reflected[owner()] = _supply_reflected; _wallet_marketing = payable(0xF00c53428BE36486F8c30C9C96D4F8cf1982886d); IUniswapV2Router _uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; isFeeExempt[msg.sender] = true; isFeeExempt[_wallet_marketing] = true; isFeeExempt[address(this)] = true; isFeeExempt[deadAddress] = true; emit Transfer(address(0), owner(), totalSupply); } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _balance_total[account]; return tokenFromReflection(_balance_reflected[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); require (_allowances[sender][_msgSender()] >= amount,"ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), (_allowances[sender][_msgSender()]-amount)); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, (_allowances[_msgSender()][spender] + addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { require (_allowances[_msgSender()][spender] >= subtractedValue,"ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, (_allowances[_msgSender()][spender] - subtractedValue)); return true; } function changeWallets(address _newMarketing) external onlyOwner { _wallet_marketing = payable(_newMarketing); } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _supply_reflected, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return (rAmount / currentRate); } function excludeFromReward(address account) external onlyOwner { require(!_isExcluded[account], "Account is already excluded"); if(_balance_reflected[account] > 0) { _balance_total[account] = tokenFromReflection(_balance_reflected[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner { require(_isExcluded[account], "Account is already included"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _balance_total[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function goLive() external onlyOwner { require(!tradingOpen,"Cannot be executed after going live"); tradingOpen = true; swapAndLiquifyEnabled = true; buyMultiplier = 200; sellMultiplier = 200; transferMultiplier = 0; } function setSwapSettings(bool _status, uint256 _threshold) external onlyOwner { require(_threshold > 0,"swap threshold cannot be 0"); swapAndLiquifyEnabled = _status; swapThreshold = _threshold; } function manage_excludeFromFee(address[] calldata addresses, bool status) external onlyOwner { for (uint256 i; i < addresses.length; ++i) { isFeeExempt[addresses[i]] = status; } } function clearStuckBalance(uint256 amountPercentage) external onlyOwner { uint256 amountToClear = amountPercentage * address(this).balance / 100; payable(msg.sender).transfer(amountToClear); } function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool success) { if(tokens == 0){ tokens = IERC20(tokenAddress).balanceOf(address(this)); } return IERC20(tokenAddress).transfer(msg.sender, tokens); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply / tSupply; } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _supply_reflected; uint256 tSupply = totalSupply; for (uint256 i = 0; i < _excluded.length; i++) { if (_balance_reflected[_excluded[i]] > rSupply || _balance_total[_excluded[i]] > tSupply) return (_supply_reflected, totalSupply); rSupply = rSupply - _balance_reflected[_excluded[i]]; tSupply = tSupply - _balance_total[_excluded[i]]; } if (rSupply < (_supply_reflected/totalSupply)) return (_supply_reflected, totalSupply); return (rSupply, tSupply); } function _getValues(uint256 tAmount, address recipient, address sender) private view returns ( uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 tTransferAmount, uint256 tMarketing, uint256 tReflection) { uint256 multiplier = transferMultiplier; if(recipient == uniswapV2Pair) { multiplier = sellMultiplier; } else if(sender == uniswapV2Pair) { multiplier = buyMultiplier; } tMarketing = ( tAmount * _fee_marketing ) * multiplier / (_fee_denominator * 100); tReflection = ( tAmount * _fee_reflection ) * multiplier / (_fee_denominator * 100); tTransferAmount = tAmount - ( tMarketing + tReflection); rReflection = tReflection * _getRate(); rAmount = tAmount * _getRate(); rTransferAmount = tTransferAmount * _getRate(); } function _takeMarketingFee(uint256 feeAmount, address receiverWallet) private { uint256 reflectedReeAmount = feeAmount * _getRate(); _balance_reflected[receiverWallet] = _balance_reflected[receiverWallet] + reflectedReeAmount; if(_isExcluded[receiverWallet]){ _balance_total[receiverWallet] = _balance_total[receiverWallet] + feeAmount; } if(feeAmount > 0){ emit Transfer(msg.sender, receiverWallet, feeAmount); } } function _setAllFees(uint256 marketingFee, uint256 reflectionFees) private { _fee_marketing = marketingFee; _fee_reflection = reflectionFees; } function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner { require(_buy <= 100, "Max buy multiplier allowed is 1x"); require(_sell <= 100, "Max sell multiplier allowed is 1x"); require(_trans <= 100, "Max transfer multiplier allowed is 1x"); sellMultiplier = _sell; buyMultiplier = _buy; transferMultiplier = _trans; } function set_All_Fees(uint256 Reflection_Fees, uint256 Marketing_Fee) external onlyOwner { uint256 total_fees = Marketing_Fee + Reflection_Fees; require(total_fees <= 20, "Max fee allowed is 20%"); _setAllFees( Marketing_Fee, Reflection_Fees); } function removeAllFee() private { _fee_marketing_old = _fee_marketing; _fee_reflection_old = _fee_reflection; _setAllFees(0,0); } function restoreAllFee() private { _setAllFees(_fee_marketing_old, _fee_reflection_old); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, _wallet_marketing, block.timestamp ); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { if(!isFeeExempt[from] && !isFeeExempt[to]){ require(tradingOpen,"Trading not open yet"); } if(!inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled && balanceOf(address(this)) > swapThreshold){ swapTokensForEth(swapThreshold); } bool takeFee = true; if(isFeeExempt[from] || isFeeExempt[to]){ takeFee = false; removeAllFee(); } (uint256 rAmount, uint256 rTransferAmount, uint256 rReflection, uint256 tTransferAmount, uint256 tMarketing, uint256 tReflection) = _getValues(amount, to, from); _transferStandard(from, to, amount, rAmount, tTransferAmount, rTransferAmount); _supply_reflected = _supply_reflected - rReflection; _contractReflectionStored = _contractReflectionStored + tReflection; if(!takeFee){ restoreAllFee(); } else{ _takeMarketingFee(tMarketing,address(this)); } } function _transferStandard(address from, address to, uint256 tAmount, uint256 rAmount, uint256 tTransferAmount, uint256 rTransferAmount) private { _balance_reflected[from] = _balance_reflected[from] - rAmount; if (_isExcluded[from]){ _balance_total[from] = _balance_total[from] - tAmount; } if (_isExcluded[to]){ _balance_total[to] = _balance_total[to] + tTransferAmount; } _balance_reflected[to] = _balance_reflected[to] + rTransferAmount; if(tTransferAmount > 0){ emit Transfer(from, to, tTransferAmount); } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"total_Amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reflected_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"total_TransferAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"reflected_TransferAmount","type":"uint256"}],"name":"TransferDetails","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balance_reflected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balance_total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_contractReflectionStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_excluded","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fee_marketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fee_reflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_wallet_marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newMarketing","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Reflection_Fees","type":"uint256"},{"internalType":"uint256","name":"Marketing_Fee","type":"uint256"}],"name":"set_All_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526005805460ff191690556200001c6012600a620004b8565b6200002d90640165a0bc00620004cd565b6200003b90600019620004fd565b620000499060001962000514565b6006556002600781905560089081556000600955600a818155600b91909155600c805460ff60a81b191690556101f4906200008790601290620004b8565b6200009890640165a0bc00620004cd565b620000a491906200052a565b600d55600060105560006011556000601255348015620000c357600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600654600160006200011d6000546001600160a01b031690565b6001600160a01b03168152602080820192909252604090810160002092909255600c80546001600160a01b03191673f00c53428be36486f8c30c9c96d4f8cf1982886d179055815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620001af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d5919062000541565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000223573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000249919062000541565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000297573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bd919062000541565b6001600160a01b0390811660a052818116608052336000908152600e60205260408082208054600160ff199182168117909255600c54851684528284208054821683179055308452918320805483168217905561dead83527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a805490921617905554166001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200037a6012600a620004b8565b6200038b90640165a0bc00620004cd565b60405190815260200160405180910390a3506200056c565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003fa578160001904821115620003de57620003de620003a3565b80851615620003ec57918102915b93841c9390800290620003be565b509250929050565b6000826200041357506001620004b2565b816200042257506000620004b2565b81600181146200043b5760028114620004465762000466565b6001915050620004b2565b60ff8411156200045a576200045a620003a3565b50506001821b620004b2565b5060208310610133831016604e8410600b84101617156200048b575081810a620004b2565b620004978383620003b9565b8060001904821115620004ae57620004ae620003a3565b0290505b92915050565b6000620004c6838362000402565b9392505050565b8082028115828204841417620004b257620004b2620003a3565b634e487b7160e01b600052601260045260246000fd5b6000826200050f576200050f620004e7565b500690565b81810381811115620004b257620004b2620003a3565b6000826200053c576200053c620004e7565b500490565b6000602082840312156200055457600080fd5b81516001600160a01b0381168114620004c657600080fd5b60805160a051612567620005bc600039600081816104ef0152818161173b01528181611aa40152611ae601526000818161037c01528181611913015281816119cc0152611a0b01526125676000f3fe6080604052600436106102605760003560e01c8063666a245d11610144578063b8392576116100b6578063dd62ed3e1161007a578063dd62ed3e14610779578063e0920349146107bf578063f2fde38b146107df578063fd748c30146107ff578063fed0d2a114610814578063ffb54a991461082a57600080fd5b8063b8392576146106ed578063b85f117514610703578063c4ab12b514610719578063d0e1032614610739578063d607951a1461075957600080fd5b80638da5cb5b116101085780638da5cb5b1461061d57806395d89b411461063b5780639bef43261461066a578063a457c2d714610680578063a9059cbb146106a0578063b1eb20e9146106c057600080fd5b8063666a245d146105885780636ce46bc3146105a857806370a08231146105c8578063715018a6146105e857806377b54bad146105fd57600080fd5b80632d838119116101dd5780633f4218e0116101a15780633f4218e0146104ad57806349bd5a5e146104dd5780634a74bb02146105115780634d09deb31461053257806352390c02146105525780635921652f1461057257600080fd5b80632d838119146104225780633121c7c014610442578063313ce567146104585780633685d4191461046d578063395093511461048d57600080fd5b80631694505e116102245780631694505e1461036a57806318160ddd146103b65780631da1db5e146103cb57806323b872dd146103ed5780632c28f5791461040d57600080fd5b80630445b6671461026c578063053cfa251461029557806306fdde03146102c2578063095ea7b31461030a5780630b285b1f1461033a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282600d5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102826102b0366004612064565b60026020526000908152604090205481565b3480156102ce57600080fd5b506102fd6040518060400160405280600f81526020016e4f6e6520547275652043727970746f60881b81525081565b60405161028c9190612081565b34801561031657600080fd5b5061032a6103253660046120cf565b610844565b604051901515815260200161028c565b34801561034657600080fd5b5061032a610355366004612064565b60046020526000908152604090205460ff1681565b34801561037657600080fd5b5061039e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028c565b3480156103c257600080fd5b5061028261085b565b3480156103d757600080fd5b506103eb6103e63660046120fb565b610879565b005b3480156103f957600080fd5b5061032a610408366004612114565b6108f9565b34801561041957600080fd5b506103eb6109cf565b34801561042e57600080fd5b5061028261043d3660046120fb565b610a89565b34801561044e57600080fd5b5061028260105481565b34801561046457600080fd5b50610282601281565b34801561047957600080fd5b506103eb610488366004612064565b610b0d565b34801561049957600080fd5b5061032a6104a83660046120cf565b610cc3565b3480156104b957600080fd5b5061032a6104c8366004612064565b600e6020526000908152604090205460ff1681565b3480156104e957600080fd5b5061039e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561051d57600080fd5b50600c5461032a90600160a81b900460ff1681565b34801561053e57600080fd5b5061039e61054d3660046120fb565b610cfa565b34801561055e57600080fd5b506103eb61056d366004612064565b610d24565b34801561057e57600080fd5b5061028260125481565b34801561059457600080fd5b50600c5461039e906001600160a01b031681565b3480156105b457600080fd5b506103eb6105c3366004612155565b610e77565b3480156105d457600080fd5b506102826105e3366004612064565b610fbd565b3480156105f457600080fd5b506103eb61101c565b34801561060957600080fd5b5061032a6106183660046120cf565b6110a0565b34801561062957600080fd5b506000546001600160a01b031661039e565b34801561064757600080fd5b506102fd604051806040016040528060038152602001624f544360e81b81525081565b34801561067657600080fd5b5061028260095481565b34801561068c57600080fd5b5061032a61069b3660046120cf565b6111af565b3480156106ac57600080fd5b5061032a6106bb3660046120cf565b611266565b3480156106cc57600080fd5b506102826106db366004612064565b60016020526000908152604090205481565b3480156106f957600080fd5b50610282600a5481565b34801561070f57600080fd5b5061028260075481565b34801561072557600080fd5b506103eb610734366004612064565b611273565b34801561074557600080fd5b506103eb61075436600461218f565b6112bf565b34801561076557600080fd5b506103eb6107743660046121ad565b61135b565b34801561078557600080fd5b506102826107943660046121cf565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107cb57600080fd5b506103eb6107da366004612208565b6113e6565b3480156107eb57600080fd5b506103eb6107fa366004612064565b611485565b34801561080b57600080fd5b50610282606481565b34801561082057600080fd5b5061028260115481565b34801561083657600080fd5b5060055461032a9060ff1681565b600061085133848461156f565b5060015b92915050565b6108676012600a612388565b61087690640165a0bc00612394565b81565b6000546001600160a01b031633146108ac5760405162461bcd60e51b81526004016108a3906123ab565b60405180910390fd5b600060646108ba4784612394565b6108c491906123e0565b604051909150339082156108fc029083906000818181858888f193505050501580156108f4573d6000803e3d6000fd5b505050565b6000610906848484611694565b6001600160a01b038416600090815260036020908152604080832033845290915290205482111561098a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a3565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546109c59186916109c0908690612402565b61156f565b5060019392505050565b6000546001600160a01b031633146109f95760405162461bcd60e51b81526004016108a3906123ab565b60055460ff1615610a585760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420626520657865637574656420616674657220676f696e67206c60448201526269766560e81b60648201526084016108a3565b6005805460ff19166001179055600c805460ff60a81b1916600160a81b17905560c860108190556011556000601255565b6000600654821115610af05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108a3565b6000610afa611886565b9050610b0681846123e0565b9392505050565b6000546001600160a01b03163314610b375760405162461bcd60e51b81526004016108a3906123ab565b6001600160a01b03811660009081526004602052604090205460ff16610b9f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016108a3565b60005b600f54811015610cbf57816001600160a01b0316600f8281548110610bc957610bc9612415565b6000918252602090912001546001600160a01b031603610cad57600f8054610bf390600190612402565b81548110610c0357610c03612415565b600091825260209091200154600f80546001600160a01b039092169183908110610c2f57610c2f612415565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff19169055600f805480610c8757610c8761242b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cb781612441565b915050610ba2565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108519185906109c090869061245a565b600f8181548110610d0a57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610d4e5760405162461bcd60e51b81526004016108a3906123ab565b6001600160a01b03811660009081526004602052604090205460ff1615610db75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108a3565b6001600160a01b03811660009081526001602052604090205415610e11576001600160a01b038116600090815260016020526040902054610df790610a89565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055565b6000546001600160a01b03163314610ea15760405162461bcd60e51b81526004016108a3906123ab565b6064831115610ef25760405162461bcd60e51b815260206004820181905260248201527f4d617820627579206d756c7469706c69657220616c6c6f77656420697320317860448201526064016108a3565b6064821115610f4d5760405162461bcd60e51b815260206004820152602160248201527f4d61782073656c6c206d756c7469706c69657220616c6c6f77656420697320316044820152600f60fb1b60648201526084016108a3565b6064811115610fac5760405162461bcd60e51b815260206004820152602560248201527f4d6178207472616e73666572206d756c7469706c69657220616c6c6f776564206044820152640d2e64062f60db1b60648201526084016108a3565b601191909155601091909155601255565b6001600160a01b03811660009081526004602052604081205460ff1615610ffa57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461085590610a89565b6000546001600160a01b031633146110465760405162461bcd60e51b81526004016108a3906123ab565b6000805460405182916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633146110cb5760405162461bcd60e51b81526004016108a3906123ab565b8160000361113e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061246d565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561118b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190612486565b3360009081526003602090815260408083206001600160a01b03861684529091528120548211156112305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a3565b3360008181526003602090815260408083206001600160a01b0388168452909152902054610851919085906109c0908690612402565b6000610851338484611694565b6000546001600160a01b0316331461129d5760405162461bcd60e51b81526004016108a3906123ab565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112e95760405162461bcd60e51b81526004016108a3906123ab565b600081116113395760405162461bcd60e51b815260206004820152601a60248201527f73776170207468726573686f6c642063616e6e6f74206265203000000000000060448201526064016108a3565b600c8054921515600160a81b0260ff60a81b1990931692909217909155600d55565b6000546001600160a01b031633146113855760405162461bcd60e51b81526004016108a3906123ab565b6000611391838361245a565b905060148111156113dd5760405162461bcd60e51b81526020600482015260166024820152754d61782066656520616c6c6f7765642069732032302560501b60448201526064016108a3565b50600a55600755565b6000546001600160a01b031633146114105760405162461bcd60e51b81526004016108a3906123ab565b60005b8281101561147f5781600e600086868581811061143257611432612415565b90506020020160208101906114479190612064565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561147881612441565b9050611413565b50505050565b6000546001600160a01b031633146114af5760405162461bcd60e51b81526004016108a3906123ab565b6001600160a01b0381166115145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115d15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a3565b6001600160a01b0382166116325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a3565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600e602052604090205460ff161580156116d657506001600160a01b0382166000908152600e602052604090205460ff16155b156117245760055460ff166117245760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a3565b600c54600160a01b900460ff1615801561177057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b80156117855750600c54600160a81b900460ff165b801561179a5750600d5461179830610fbd565b115b156117aa576117aa600d546118a9565b6001600160a01b0383166000908152600e602052604090205460019060ff16806117ec57506001600160a01b0383166000908152600e602052604090205460ff165b1561180e5750600061180e600a8054600b556007805460085560009182905555565b600080600080600080611822888a8c611a92565b95509550955095509550955061183c8a8a8a89878a611be1565b8360065461184a9190612402565b60065560095461185b90829061245a565b600955866118705761186b611d68565b61187a565b61187a8230611d7c565b50505050505050505050565b6000806000611893611e65565b90925090506118a281836123e0565b9250505090565b600c805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118f1576118f1612415565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199391906124a3565b816001815181106119a6576119a6612415565b60200260200101906001600160a01b031690816001600160a01b0316815250506119f1307f00000000000000000000000000000000000000000000000000000000000000008461156f565b600c5460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac94792611a4d9287926000928892919091169042906004016124c0565b600060405180830381600087803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b5050600c805460ff60a01b1916905550505050565b565b600080600080600080600060125490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b031603611ae45750601154611b22565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031603611b2257506010545b611b2d606480612394565b81600a548c611b3c9190612394565b611b469190612394565b611b5091906123e0565b9250611b5d606480612394565b816007548c611b6c9190612394565b611b769190612394565b611b8091906123e0565b9150611b8c828461245a565b611b96908b612402565b9350611ba0611886565b611baa9083612394565b9450611bb4611886565b611bbe908b612394565b9650611bc8611886565b611bd29085612394565b95505093975093979195509350565b6001600160a01b038616600090815260016020526040902054611c05908490612402565b6001600160a01b03871660009081526001602090815260408083209390935560049052205460ff1615611c70576001600160a01b038616600090815260026020526040902054611c56908590612402565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526004602052604090205460ff1615611ccf576001600160a01b038516600090815260026020526040902054611cb590839061245a565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b038516600090815260016020526040902054611cf390829061245a565b6001600160a01b0386166000908152600160205260409020558115611d6057846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5791815260200190565b60405180910390a35b505050505050565b611a90600b54600854600a91909155600755565b6000611d86611886565b611d909084612394565b6001600160a01b038316600090815260016020526040902054909150611db790829061245a565b6001600160a01b03831660009081526001602090815260408083209390935560049052205460ff1615611e22576001600160a01b038216600090815260026020526040902054611e0890849061245a565b6001600160a01b0383166000908152600260205260409020555b82156108f4576040518381526001600160a01b0383169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611687565b600654600090819081611e7a6012600a612388565b611e8990640165a0bc00612394565b905060005b600f54811015611feb578260016000600f8481548110611eb057611eb0612415565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f1b57508160026000600f8481548110611ef457611ef4612415565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f4957600654611f2f6012600a612388565b611f3e90640165a0bc00612394565b945094505050509091565b60016000600f8381548110611f6057611f60612415565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611f8f9084612402565b925060026000600f8381548110611fa857611fa8612415565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611fd79083612402565b915080611fe381612441565b915050611e8e565b50611ff86012600a612388565b61200790640165a0bc00612394565b60065461201491906123e0565b8210156120435760065461202a6012600a612388565b61203990640165a0bc00612394565b9350935050509091565b90939092509050565b6001600160a01b038116811461206157600080fd5b50565b60006020828403121561207657600080fd5b8135610b068161204c565b600060208083528351808285015260005b818110156120ae57858101830151858201604001528201612092565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156120e257600080fd5b82356120ed8161204c565b946020939093013593505050565b60006020828403121561210d57600080fd5b5035919050565b60008060006060848603121561212957600080fd5b83356121348161204c565b925060208401356121448161204c565b929592945050506040919091013590565b60008060006060848603121561216a57600080fd5b505081359360208301359350604090920135919050565b801515811461206157600080fd5b600080604083850312156121a257600080fd5b82356120ed81612181565b600080604083850312156121c057600080fd5b50508035926020909101359150565b600080604083850312156121e257600080fd5b82356121ed8161204c565b915060208301356121fd8161204c565b809150509250929050565b60008060006040848603121561221d57600080fd5b833567ffffffffffffffff8082111561223557600080fd5b818601915086601f83011261224957600080fd5b81358181111561225857600080fd5b8760208260051b850101111561226d57600080fd5b6020928301955093505084013561228381612181565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156122df5781600019048211156122c5576122c561228e565b808516156122d257918102915b93841c93908002906122a9565b509250929050565b6000826122f657506001610855565b8161230357506000610855565b816001811461231957600281146123235761233f565b6001915050610855565b60ff8411156123345761233461228e565b50506001821b610855565b5060208310610133831016604e8410600b8410161715612362575081810a610855565b61236c83836122a4565b80600019048211156123805761238061228e565b029392505050565b6000610b0683836122e7565b80820281158282048414176108555761085561228e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826123fd57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108555761085561228e565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016124535761245361228e565b5060010190565b808201808211156108555761085561228e565b60006020828403121561247f57600080fd5b5051919050565b60006020828403121561249857600080fd5b8151610b0681612181565b6000602082840312156124b557600080fd5b8151610b068161204c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125105784516001600160a01b0316835293830193918301916001016124eb565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204c1f58578cfb1a1def5f228ea63cff112f4c276a304908b8ef3fd3f788f5574a64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106102605760003560e01c8063666a245d11610144578063b8392576116100b6578063dd62ed3e1161007a578063dd62ed3e14610779578063e0920349146107bf578063f2fde38b146107df578063fd748c30146107ff578063fed0d2a114610814578063ffb54a991461082a57600080fd5b8063b8392576146106ed578063b85f117514610703578063c4ab12b514610719578063d0e1032614610739578063d607951a1461075957600080fd5b80638da5cb5b116101085780638da5cb5b1461061d57806395d89b411461063b5780639bef43261461066a578063a457c2d714610680578063a9059cbb146106a0578063b1eb20e9146106c057600080fd5b8063666a245d146105885780636ce46bc3146105a857806370a08231146105c8578063715018a6146105e857806377b54bad146105fd57600080fd5b80632d838119116101dd5780633f4218e0116101a15780633f4218e0146104ad57806349bd5a5e146104dd5780634a74bb02146105115780634d09deb31461053257806352390c02146105525780635921652f1461057257600080fd5b80632d838119146104225780633121c7c014610442578063313ce567146104585780633685d4191461046d578063395093511461048d57600080fd5b80631694505e116102245780631694505e1461036a57806318160ddd146103b65780631da1db5e146103cb57806323b872dd146103ed5780632c28f5791461040d57600080fd5b80630445b6671461026c578063053cfa251461029557806306fdde03146102c2578063095ea7b31461030a5780630b285b1f1461033a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282600d5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102826102b0366004612064565b60026020526000908152604090205481565b3480156102ce57600080fd5b506102fd6040518060400160405280600f81526020016e4f6e6520547275652043727970746f60881b81525081565b60405161028c9190612081565b34801561031657600080fd5b5061032a6103253660046120cf565b610844565b604051901515815260200161028c565b34801561034657600080fd5b5061032a610355366004612064565b60046020526000908152604090205460ff1681565b34801561037657600080fd5b5061039e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161028c565b3480156103c257600080fd5b5061028261085b565b3480156103d757600080fd5b506103eb6103e63660046120fb565b610879565b005b3480156103f957600080fd5b5061032a610408366004612114565b6108f9565b34801561041957600080fd5b506103eb6109cf565b34801561042e57600080fd5b5061028261043d3660046120fb565b610a89565b34801561044e57600080fd5b5061028260105481565b34801561046457600080fd5b50610282601281565b34801561047957600080fd5b506103eb610488366004612064565b610b0d565b34801561049957600080fd5b5061032a6104a83660046120cf565b610cc3565b3480156104b957600080fd5b5061032a6104c8366004612064565b600e6020526000908152604090205460ff1681565b3480156104e957600080fd5b5061039e7f000000000000000000000000fbce61806130a49ddc17a38fc10f39fee98c989081565b34801561051d57600080fd5b50600c5461032a90600160a81b900460ff1681565b34801561053e57600080fd5b5061039e61054d3660046120fb565b610cfa565b34801561055e57600080fd5b506103eb61056d366004612064565b610d24565b34801561057e57600080fd5b5061028260125481565b34801561059457600080fd5b50600c5461039e906001600160a01b031681565b3480156105b457600080fd5b506103eb6105c3366004612155565b610e77565b3480156105d457600080fd5b506102826105e3366004612064565b610fbd565b3480156105f457600080fd5b506103eb61101c565b34801561060957600080fd5b5061032a6106183660046120cf565b6110a0565b34801561062957600080fd5b506000546001600160a01b031661039e565b34801561064757600080fd5b506102fd604051806040016040528060038152602001624f544360e81b81525081565b34801561067657600080fd5b5061028260095481565b34801561068c57600080fd5b5061032a61069b3660046120cf565b6111af565b3480156106ac57600080fd5b5061032a6106bb3660046120cf565b611266565b3480156106cc57600080fd5b506102826106db366004612064565b60016020526000908152604090205481565b3480156106f957600080fd5b50610282600a5481565b34801561070f57600080fd5b5061028260075481565b34801561072557600080fd5b506103eb610734366004612064565b611273565b34801561074557600080fd5b506103eb61075436600461218f565b6112bf565b34801561076557600080fd5b506103eb6107743660046121ad565b61135b565b34801561078557600080fd5b506102826107943660046121cf565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107cb57600080fd5b506103eb6107da366004612208565b6113e6565b3480156107eb57600080fd5b506103eb6107fa366004612064565b611485565b34801561080b57600080fd5b50610282606481565b34801561082057600080fd5b5061028260115481565b34801561083657600080fd5b5060055461032a9060ff1681565b600061085133848461156f565b5060015b92915050565b6108676012600a612388565b61087690640165a0bc00612394565b81565b6000546001600160a01b031633146108ac5760405162461bcd60e51b81526004016108a3906123ab565b60405180910390fd5b600060646108ba4784612394565b6108c491906123e0565b604051909150339082156108fc029083906000818181858888f193505050501580156108f4573d6000803e3d6000fd5b505050565b6000610906848484611694565b6001600160a01b038416600090815260036020908152604080832033845290915290205482111561098a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a3565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546109c59186916109c0908690612402565b61156f565b5060019392505050565b6000546001600160a01b031633146109f95760405162461bcd60e51b81526004016108a3906123ab565b60055460ff1615610a585760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420626520657865637574656420616674657220676f696e67206c60448201526269766560e81b60648201526084016108a3565b6005805460ff19166001179055600c805460ff60a81b1916600160a81b17905560c860108190556011556000601255565b6000600654821115610af05760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108a3565b6000610afa611886565b9050610b0681846123e0565b9392505050565b6000546001600160a01b03163314610b375760405162461bcd60e51b81526004016108a3906123ab565b6001600160a01b03811660009081526004602052604090205460ff16610b9f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016108a3565b60005b600f54811015610cbf57816001600160a01b0316600f8281548110610bc957610bc9612415565b6000918252602090912001546001600160a01b031603610cad57600f8054610bf390600190612402565b81548110610c0357610c03612415565b600091825260209091200154600f80546001600160a01b039092169183908110610c2f57610c2f612415565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff19169055600f805480610c8757610c8761242b565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cb781612441565b915050610ba2565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108519185906109c090869061245a565b600f8181548110610d0a57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610d4e5760405162461bcd60e51b81526004016108a3906123ab565b6001600160a01b03811660009081526004602052604090205460ff1615610db75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108a3565b6001600160a01b03811660009081526001602052604090205415610e11576001600160a01b038116600090815260016020526040902054610df790610a89565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055565b6000546001600160a01b03163314610ea15760405162461bcd60e51b81526004016108a3906123ab565b6064831115610ef25760405162461bcd60e51b815260206004820181905260248201527f4d617820627579206d756c7469706c69657220616c6c6f77656420697320317860448201526064016108a3565b6064821115610f4d5760405162461bcd60e51b815260206004820152602160248201527f4d61782073656c6c206d756c7469706c69657220616c6c6f77656420697320316044820152600f60fb1b60648201526084016108a3565b6064811115610fac5760405162461bcd60e51b815260206004820152602560248201527f4d6178207472616e73666572206d756c7469706c69657220616c6c6f776564206044820152640d2e64062f60db1b60648201526084016108a3565b601191909155601091909155601255565b6001600160a01b03811660009081526004602052604081205460ff1615610ffa57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461085590610a89565b6000546001600160a01b031633146110465760405162461bcd60e51b81526004016108a3906123ab565b6000805460405182916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633146110cb5760405162461bcd60e51b81526004016108a3906123ab565b8160000361113e576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061246d565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561118b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190612486565b3360009081526003602090815260408083206001600160a01b03861684529091528120548211156112305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a3565b3360008181526003602090815260408083206001600160a01b0388168452909152902054610851919085906109c0908690612402565b6000610851338484611694565b6000546001600160a01b0316331461129d5760405162461bcd60e51b81526004016108a3906123ab565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112e95760405162461bcd60e51b81526004016108a3906123ab565b600081116113395760405162461bcd60e51b815260206004820152601a60248201527f73776170207468726573686f6c642063616e6e6f74206265203000000000000060448201526064016108a3565b600c8054921515600160a81b0260ff60a81b1990931692909217909155600d55565b6000546001600160a01b031633146113855760405162461bcd60e51b81526004016108a3906123ab565b6000611391838361245a565b905060148111156113dd5760405162461bcd60e51b81526020600482015260166024820152754d61782066656520616c6c6f7765642069732032302560501b60448201526064016108a3565b50600a55600755565b6000546001600160a01b031633146114105760405162461bcd60e51b81526004016108a3906123ab565b60005b8281101561147f5781600e600086868581811061143257611432612415565b90506020020160208101906114479190612064565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561147881612441565b9050611413565b50505050565b6000546001600160a01b031633146114af5760405162461bcd60e51b81526004016108a3906123ab565b6001600160a01b0381166115145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115d15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a3565b6001600160a01b0382166116325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a3565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600e602052604090205460ff161580156116d657506001600160a01b0382166000908152600e602052604090205460ff16155b156117245760055460ff166117245760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a3565b600c54600160a01b900460ff1615801561177057507f000000000000000000000000fbce61806130a49ddc17a38fc10f39fee98c98906001600160a01b0316836001600160a01b031614155b80156117855750600c54600160a81b900460ff165b801561179a5750600d5461179830610fbd565b115b156117aa576117aa600d546118a9565b6001600160a01b0383166000908152600e602052604090205460019060ff16806117ec57506001600160a01b0383166000908152600e602052604090205460ff165b1561180e5750600061180e600a8054600b556007805460085560009182905555565b600080600080600080611822888a8c611a92565b95509550955095509550955061183c8a8a8a89878a611be1565b8360065461184a9190612402565b60065560095461185b90829061245a565b600955866118705761186b611d68565b61187a565b61187a8230611d7c565b50505050505050505050565b6000806000611893611e65565b90925090506118a281836123e0565b9250505090565b600c805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118f1576118f1612415565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199391906124a3565b816001815181106119a6576119a6612415565b60200260200101906001600160a01b031690816001600160a01b0316815250506119f1307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461156f565b600c5460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac94792611a4d9287926000928892919091169042906004016124c0565b600060405180830381600087803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b5050600c805460ff60a01b1916905550505050565b565b600080600080600080600060125490507f000000000000000000000000fbce61806130a49ddc17a38fc10f39fee98c98906001600160a01b0316896001600160a01b031603611ae45750601154611b22565b7f000000000000000000000000fbce61806130a49ddc17a38fc10f39fee98c98906001600160a01b0316886001600160a01b031603611b2257506010545b611b2d606480612394565b81600a548c611b3c9190612394565b611b469190612394565b611b5091906123e0565b9250611b5d606480612394565b816007548c611b6c9190612394565b611b769190612394565b611b8091906123e0565b9150611b8c828461245a565b611b96908b612402565b9350611ba0611886565b611baa9083612394565b9450611bb4611886565b611bbe908b612394565b9650611bc8611886565b611bd29085612394565b95505093975093979195509350565b6001600160a01b038616600090815260016020526040902054611c05908490612402565b6001600160a01b03871660009081526001602090815260408083209390935560049052205460ff1615611c70576001600160a01b038616600090815260026020526040902054611c56908590612402565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526004602052604090205460ff1615611ccf576001600160a01b038516600090815260026020526040902054611cb590839061245a565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b038516600090815260016020526040902054611cf390829061245a565b6001600160a01b0386166000908152600160205260409020558115611d6057846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5791815260200190565b60405180910390a35b505050505050565b611a90600b54600854600a91909155600755565b6000611d86611886565b611d909084612394565b6001600160a01b038316600090815260016020526040902054909150611db790829061245a565b6001600160a01b03831660009081526001602090815260408083209390935560049052205460ff1615611e22576001600160a01b038216600090815260026020526040902054611e0890849061245a565b6001600160a01b0383166000908152600260205260409020555b82156108f4576040518381526001600160a01b0383169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611687565b600654600090819081611e7a6012600a612388565b611e8990640165a0bc00612394565b905060005b600f54811015611feb578260016000600f8481548110611eb057611eb0612415565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f1b57508160026000600f8481548110611ef457611ef4612415565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f4957600654611f2f6012600a612388565b611f3e90640165a0bc00612394565b945094505050509091565b60016000600f8381548110611f6057611f60612415565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611f8f9084612402565b925060026000600f8381548110611fa857611fa8612415565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611fd79083612402565b915080611fe381612441565b915050611e8e565b50611ff86012600a612388565b61200790640165a0bc00612394565b60065461201491906123e0565b8210156120435760065461202a6012600a612388565b61203990640165a0bc00612394565b9350935050509091565b90939092509050565b6001600160a01b038116811461206157600080fd5b50565b60006020828403121561207657600080fd5b8135610b068161204c565b600060208083528351808285015260005b818110156120ae57858101830151858201604001528201612092565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156120e257600080fd5b82356120ed8161204c565b946020939093013593505050565b60006020828403121561210d57600080fd5b5035919050565b60008060006060848603121561212957600080fd5b83356121348161204c565b925060208401356121448161204c565b929592945050506040919091013590565b60008060006060848603121561216a57600080fd5b505081359360208301359350604090920135919050565b801515811461206157600080fd5b600080604083850312156121a257600080fd5b82356120ed81612181565b600080604083850312156121c057600080fd5b50508035926020909101359150565b600080604083850312156121e257600080fd5b82356121ed8161204c565b915060208301356121fd8161204c565b809150509250929050565b60008060006040848603121561221d57600080fd5b833567ffffffffffffffff8082111561223557600080fd5b818601915086601f83011261224957600080fd5b81358181111561225857600080fd5b8760208260051b850101111561226d57600080fd5b6020928301955093505084013561228381612181565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156122df5781600019048211156122c5576122c561228e565b808516156122d257918102915b93841c93908002906122a9565b509250929050565b6000826122f657506001610855565b8161230357506000610855565b816001811461231957600281146123235761233f565b6001915050610855565b60ff8411156123345761233461228e565b50506001821b610855565b5060208310610133831016604e8410600b8410161715612362575081810a610855565b61236c83836122a4565b80600019048211156123805761238061228e565b029392505050565b6000610b0683836122e7565b80820281158282048414176108555761085561228e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826123fd57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108555761085561228e565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016124535761245361228e565b5060010190565b808201808211156108555761085561228e565b60006020828403121561247f57600080fd5b5051919050565b60006020828403121561249857600080fd5b8151610b0681612181565b6000602082840312156124b557600080fd5b8151610b068161204c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125105784516001600160a01b0316835293830193918301916001016124eb565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212204c1f58578cfb1a1def5f228ea63cff112f4c276a304908b8ef3fd3f788f5574a64736f6c63430008120033
Deployed Bytecode Sourcemap
2361:11468:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3598:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;3598:48:0;;;;;;;;2482:50;;;;;;;;;;-1:-1:-1;2482:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;3000:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3000:47:0;;;;;;;;;;;;:::i;5247:146::-;;;;;;;;;;-1:-1:-1;5247:146:0;;;;;:::i;:::-;;:::i;:::-;;;1622:14:1;;1615:22;1597:41;;1585:2;1570:18;5247:146:0;1457:187:1;2612:44:0;;;;;;;;;;-1:-1:-1;2612:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3431:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:32:1;;;1819:51;;1807:2;1792:18;3431:49:0;1649:227:1;2865:62:0;;;;;;;;;;;;;:::i;8015:200::-;;;;;;;;;;-1:-1:-1;8015:200:0;;;;;:::i;:::-;;:::i;:::-;;5398:346;;;;;;;;;;-1:-1:-1;5398:346:0;;;;;:::i;:::-;;:::i;7364:238::-;;;;;;;;;;;;;:::i;6403:241::-;;;;;;;;;;-1:-1:-1;6403:241:0;;;;;:::i;:::-;;:::i;3732:32::-;;;;;;;;;;;;;;;;2824:37;;;;;;;;;;;;2859:2;2824:37;;6974:385;;;;;;;;;;-1:-1:-1;6974:385:0;;;;;:::i;:::-;;:::i;5749:202::-;;;;;;;;;;-1:-1:-1;5749:202:0;;;;;:::i;:::-;;:::i;3652:44::-;;;;;;;;;;-1:-1:-1;3652:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3484:38;;;;;;;;;;;;;;;3553:41;;;;;;;;;;-1:-1:-1;3553:41:0;;;;-1:-1:-1;;;3553:41:0;;;;;;3700:26;;;;;;;;;;-1:-1:-1;3700:26:0;;;;;:::i;:::-;;:::i;6649:320::-;;;;;;;;;;-1:-1:-1;6649:320:0;;;;;:::i;:::-;;:::i;3805:37::-;;;;;;;;;;;;;;;;3333:40;;;;;;;;;;-1:-1:-1;3333:40:0;;;;-1:-1:-1;;;;;3333:40:0;;;10618:373;;;;;;;;;;-1:-1:-1;10618:373:0;;;;;:::i;:::-;;:::i;4745:201::-;;;;;;;;;;-1:-1:-1;4745:201:0;;;;;:::i;:::-;;:::i;1749:163::-;;;;;;;;;;;;;:::i;8220:256::-;;;;;;;;;;-1:-1:-1;8220:256:0;;;;;:::i;:::-;;:::i;1327:78::-;;;;;;;;;;-1:-1:-1;1373:7:0;1394:6;-1:-1:-1;;;;;1394:6:0;1327:78;;3051:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3051:37:0;;;;;3190:44;;;;;;;;;;;;;;;;5956:320;;;;;;;;;;-1:-1:-1;5956:320:0;;;;;:::i;:::-;;:::i;4951:152::-;;;;;;;;;;-1:-1:-1;4951:152:0;;;;;:::i;:::-;;:::i;2424:54::-;;;;;;;;;;-1:-1:-1;2424:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;3241:33;;;;;;;;;;;;;;;;3095:34;;;;;;;;;;;;;;;;6281:117;;;;;;;;;;-1:-1:-1;6281:117:0;;;;;:::i;:::-;;:::i;7607:207::-;;;;;;;;;;-1:-1:-1;7607:207:0;;;;;:::i;:::-;;:::i;10996:257::-;;;;;;;;;;-1:-1:-1;10996:257:0;;;;;:::i;:::-;;:::i;5108:134::-;;;;;;;;;;-1:-1:-1;5108:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;5210:18:0;;;5189:7;5210:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5108:134;7819:191;;;;;;;;;;-1:-1:-1;7819:191:0;;;;;:::i;:::-;;:::i;1521:223::-;;;;;;;;;;-1:-1:-1;1521:223:0;;;;;:::i;:::-;;:::i;3379:46::-;;;;;;;;;;;;3422:3;3379:46;;3768:33;;;;;;;;;;;;;;;;2663:31;;;;;;;;;;-1:-1:-1;2663:31:0;;;;;;;;5247:146;5322:4;5333:39;1047:10;5356:7;5365:6;5333:8;:39::i;:::-;-1:-1:-1;5384:4:0;5247:146;;;;;:::o;2865:62::-;2915:12;2859:2;2915;:12;:::i;:::-;2903:24;;:9;:24;:::i;:::-;2865:62;:::o;8015:200::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;;;;;;;;;8092:21:::1;8159:3;8116:40;8135:21;8116:16:::0;:40:::1;:::i;:::-;:46;;;;:::i;:::-;8167:43;::::0;8092:70;;-1:-1:-1;8175:10:0::1;::::0;8167:43;::::1;;;::::0;8092:70;;8167:43:::1;::::0;;;8092:70;8175:10;8167:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8087:128;8015:200:::0;:::o;5398:346::-;5496:4;5507:36;5517:6;5525:9;5536:6;5507:9;:36::i;:::-;-1:-1:-1;;;;;5557:19:0;;;;;;:11;:19;;;;;;;;1047:10;5557:33;;;;;;;;:43;-1:-1:-1;5557:43:0;5548:96;;;;-1:-1:-1;;;5548:96:0;;7582:2:1;5548:96:0;;;7564:21:1;7621:2;7601:18;;;7594:30;7660:34;7640:18;;;7633:62;-1:-1:-1;;;7711:18:1;;;7704:38;7759:19;;5548:96:0;7380:404:1;5548:96:0;-1:-1:-1;;;;;5681:19:0;;;;;;:11;:19;;;;;;;;1047:10;5681:33;;;;;;;;;5649:74;;5658:6;;5681:40;;5715:6;;5681:40;:::i;:::-;5649:8;:74::i;:::-;-1:-1:-1;5735:4:0;5398:346;;;;;:::o;7364:238::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;7415:11:::1;::::0;::::1;;7414:12;7406:59;;;::::0;-1:-1:-1;;;7406:59:0;;8124:2:1;7406:59:0::1;::::0;::::1;8106:21:1::0;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:33;8296:19;;7406:59:0::1;7922:399:1::0;7406:59:0::1;7470:11;:18:::0;;-1:-1:-1;;7470:18:0::1;7484:4;7470:18;::::0;;7493:21:::1;:28:::0;;-1:-1:-1;;;;7493:28:0::1;-1:-1:-1::0;;;7493:28:0::1;::::0;;7542:3:::1;7526:13;:19:::0;;;7550:14:::1;:20:::0;7470:11:::1;7575:18;:22:::0;7364:238::o;6403:241::-;6469:7;6502:17;;6491:7;:28;;6483:83;;;;-1:-1:-1;;;6483:83:0;;8528:2:1;6483:83:0;;;8510:21:1;8567:2;8547:18;;;8540:30;8606:34;8586:18;;;8579:62;-1:-1:-1;;;8657:18:1;;;8650:40;8707:19;;6483:83:0;8326:406:1;6483:83:0;6571:19;6594:10;:8;:10::i;:::-;6571:33;-1:-1:-1;6617:21:0;6571:33;6617:7;:21;:::i;:::-;6609:30;6403:241;-1:-1:-1;;;6403:241:0:o;6974:385::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7048:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;7040:60;;;::::0;-1:-1:-1;;;7040:60:0;;8939:2:1;7040:60:0::1;::::0;::::1;8921:21:1::0;8978:2;8958:18;;;8951:30;9017:29;8997:18;;;8990:57;9064:18;;7040:60:0::1;8737:351:1::0;7040:60:0::1;7110:9;7105:250;7129:9;:16:::0;7125:20;::::1;7105:250;;;7178:7;-1:-1:-1::0;;;;;7162:23:0::1;:9;7172:1;7162:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7162:12:0::1;:23:::0;7158:192:::1;;7209:9;7219:16:::0;;:20:::1;::::0;7238:1:::1;::::0;7219:20:::1;:::i;:::-;7209:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;7194:9:::1;:12:::0;;-1:-1:-1;;;;;7209:31:0;;::::1;::::0;7204:1;;7194:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;7194:46:0::1;-1:-1:-1::0;;;;;7194:46:0;;::::1;;::::0;;7247:23;;::::1;::::0;;:14:::1;:23:::0;;;;;;:27;;;7281:11:::1;:20:::0;;;;:28;;-1:-1:-1;;7281:28:0::1;::::0;;7316:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7316:15:0;;;;;-1:-1:-1;;;;;;7316:15:0::1;::::0;;;;;7105:250:::1;6974:385:::0;:::o;7158:192::-:1;7147:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7105:250;;;;6974:385:::0;:::o;5749:202::-;1047:10;5837:4;5881:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5881:34:0;;;;;;;;;;5837:4;;5848:82;;5871:7;;5881:47;;5918:10;;5881:47;:::i;3700:26::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3700:26:0;;-1:-1:-1;3700:26:0;:::o;6649:320::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6726:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;6725:21;6717:61;;;::::0;-1:-1:-1;;;6717:61:0;;9829:2:1;6717:61:0::1;::::0;::::1;9811:21:1::0;9868:2;9848:18;;;9841:30;9907:29;9887:18;;;9880:57;9954:18;;6717:61:0::1;9627:351:1::0;6717:61:0::1;-1:-1:-1::0;;;;;6786:27:0;::::1;6816:1;6786:27:::0;;;:18:::1;:27;::::0;;;;;:31;6783:122:::1;;-1:-1:-1::0;;;;;6871:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;6851:48:::1;::::0;:19:::1;:48::i;:::-;-1:-1:-1::0;;;;;6825:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;:74;6783:122:::1;-1:-1:-1::0;;;;;6909:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;6909:27:0::1;6932:4;6909:27:::0;;::::1;::::0;;;6941:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6941:23:0::1;::::0;;::::1;::::0;;6649:320::o;10618:373::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;10729:3:::1;10721:4;:11;;10713:56;;;::::0;-1:-1:-1;;;10713:56:0;;10185:2:1;10713:56:0::1;::::0;::::1;10167:21:1::0;;;10204:18;;;10197:30;10263:34;10243:18;;;10236:62;10315:18;;10713:56:0::1;9983:356:1::0;10713:56:0::1;10791:3;10782:5;:12;;10774:58;;;::::0;-1:-1:-1;;;10774:58:0;;10546:2:1;10774:58:0::1;::::0;::::1;10528:21:1::0;10585:2;10565:18;;;10558:30;10624:34;10604:18;;;10597:62;-1:-1:-1;;;10675:18:1;;;10668:31;10716:19;;10774:58:0::1;10344:397:1::0;10774:58:0::1;10855:3;10845:6;:13;;10837:63;;;::::0;-1:-1:-1;;;10837:63:0;;10948:2:1;10837:63:0::1;::::0;::::1;10930:21:1::0;10987:2;10967:18;;;10960:30;11026:34;11006:18;;;10999:62;-1:-1:-1;;;11077:18:1;;;11070:35;11122:19;;10837:63:0::1;10746:401:1::0;10837:63:0::1;10907:14;:22:::0;;;;10934:13:::1;:20:::0;;;;10959:18:::1;:27:::0;10618:373::o;4745:201::-;-1:-1:-1;;;;;4829:20:0;;4811:7;4829:20;;;:11;:20;;;;;;;;4825:56;;;-1:-1:-1;;;;;;4858:23:0;;;;;:14;:23;;;;;;;4745:201::o;4825:56::-;-1:-1:-1;;;;;4913:27:0;;;;;;:18;:27;;;;;;4893:48;;:19;:48::i;1749:163::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;1808:16:::1;1868:6:::0;;1847:38:::1;::::0;1808:16;;-1:-1:-1;;;;;1868:6:0::1;::::0;1847:38:::1;::::0;1808:16;;1847:38:::1;1890:6;:17:::0;;-1:-1:-1;;;;;;1890:17:0::1;-1:-1:-1::0;;;;;1890:17:0;;;::::1;::::0;;;::::1;::::0;;1749:163::o;8220:256::-;8311:12;1394:6;;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;8333:6:::1;8343:1;8333:11:::0;8330:81:::1;;8360:45;::::0;-1:-1:-1;;;8360:45:0;;8399:4:::1;8360:45;::::0;::::1;1819:51:1::0;-1:-1:-1;;;;;8360:30:0;::::1;::::0;::::1;::::0;1792:18:1;;8360:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8351:54;;8330:81;8422:49;::::0;-1:-1:-1;;;8422:49:0;;8452:10:::1;8422:49;::::0;::::1;11515:51:1::0;11582:18;;;11575:34;;;-1:-1:-1;;;;;8422:29:0;::::1;::::0;::::1;::::0;11488:18:1;;8422:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5956:320::-:0;1047:10;6049:4;6069:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6069:34:0;;;;;;;;;;:53;-1:-1:-1;6069:53:0;6060:103;;;;-1:-1:-1;;;6060:103:0;;12072:2:1;6060:103:0;;;12054:21:1;12111:2;12091:18;;;12084:30;12150:34;12130:18;;;12123:62;-1:-1:-1;;;12201:18:1;;;12194:35;12246:19;;6060:103:0;11870:401:1;6060:103:0;1047:10;6201:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6201:34:0;;;;;;;;;;6168:87;;1047:10;6191:7;;6201:52;;6238:15;;6201:52;:::i;4951:152::-;5029:4;5040:42;1047:10;5064:9;5075:6;5040:9;:42::i;6281:117::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;6351:17:::1;:42:::0;;-1:-1:-1;;;;;;6351:42:0::1;-1:-1:-1::0;;;;;6351:42:0;;;::::1;::::0;;;::::1;::::0;;6281:117::o;7607:207::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;7711:1:::1;7698:10;:14;7690:52;;;::::0;-1:-1:-1;;;7690:52:0;;12478:2:1;7690:52:0::1;::::0;::::1;12460:21:1::0;12517:2;12497:18;;;12490:30;12556:28;12536:18;;;12529:56;12602:18;;7690:52:0::1;12276:350:1::0;7690:52:0::1;7747:21;:31:::0;;;::::1;;-1:-1:-1::0;;;7747:31:0::1;-1:-1:-1::0;;;;7747:31:0;;::::1;::::0;;;::::1;::::0;;;7783:13:::1;:26:::0;7607:207::o;10996:257::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;11090:18:::1;11112:31;11128:15:::0;11112:13;:31:::1;:::i;:::-;11090:53;;11170:2;11156:10;:16;;11148:51;;;::::0;-1:-1:-1;;;11148:51:0;;12833:2:1;11148:51:0::1;::::0;::::1;12815:21:1::0;12872:2;12852:18;;;12845:30;-1:-1:-1;;;12891:18:1;;;12884:52;12953:18;;11148:51:0::1;12631:346:1::0;11148:51:0::1;-1:-1:-1::0;10542:14:0;:29;10576:15;:32;8015:200::o;7819:191::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;7922:9:::1;7917:89;7933:20:::0;;::::1;7917:89;;;7994:6;7966:11;:25;7978:9;;7988:1;7978:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7966:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7966:25:0;:34;;-1:-1:-1;;7966:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7955:3:::1;::::0;::::1;:::i;:::-;;;7917:89;;;;7819:191:::0;;;:::o;1521:223::-;1373:7;1394:6;-1:-1:-1;;;;;1394:6:0;1047:10;1445:23;1437:68;;;;-1:-1:-1;;;1437:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1604:22:0;::::1;1596:73;;;::::0;-1:-1:-1;;;1596:73:0;;13184:2:1;1596:73:0::1;::::0;::::1;13166:21:1::0;13223:2;13203:18;;;13196:30;13262:34;13242:18;;;13235:62;-1:-1:-1;;;13313:18:1;;;13306:36;13359:19;;1596:73:0::1;12982:402:1::0;1596:73:0::1;1700:6;::::0;;1679:38:::1;::::0;-1:-1:-1;;;;;1679:38:0;;::::1;::::0;1700:6;::::1;::::0;1679:38:::1;::::0;::::1;1722:6;:17:::0;;-1:-1:-1;;;;;;1722:17:0::1;-1:-1:-1::0;;;;;1722:17:0;;;::::1;::::0;;;::::1;::::0;;1521:223::o;11916:310::-;-1:-1:-1;;;;;12003:19:0;;11995:68;;;;-1:-1:-1;;;11995:68:0;;13591:2:1;11995:68:0;;;13573:21:1;13630:2;13610:18;;;13603:30;13669:34;13649:18;;;13642:62;-1:-1:-1;;;13720:18:1;;;13713:34;13764:19;;11995:68:0;13389:400:1;11995:68:0;-1:-1:-1;;;;;12076:21:0;;12068:68;;;;-1:-1:-1;;;12068:68:0;;13996:2:1;12068:68:0;;;13978:21:1;14035:2;14015:18;;;14008:30;14074:34;14054:18;;;14047:62;-1:-1:-1;;;14125:18:1;;;14118:32;14167:19;;12068:68:0;13794:398:1;12068:68:0;-1:-1:-1;;;;;12143:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12189:32;;160:25:1;;;12189:32:0;;133:18:1;12189:32:0;;;;;;;;11916:310;;;:::o;12231:962::-;-1:-1:-1;;;;;12311:17:0;;;;;;:11;:17;;;;;;;;12310:18;:38;;;;-1:-1:-1;;;;;;12333:15:0;;;;;;:11;:15;;;;;;;;12332:16;12310:38;12307:97;;;12363:11;;;;12355:43;;;;-1:-1:-1;;;12355:43:0;;14399:2:1;12355:43:0;;;14381:21:1;14438:2;14418:18;;;14411:30;-1:-1:-1;;;14457:18:1;;;14450:50;14517:18;;12355:43:0;14197:344:1;12355:43:0;12414:16;;-1:-1:-1;;;12414:16:0;;;;12413:17;:42;;;;;12442:13;-1:-1:-1;;;;;12434:21:0;:4;-1:-1:-1;;;;;12434:21:0;;;12413:42;:67;;;;-1:-1:-1;12459:21:0;;-1:-1:-1;;;12459:21:0;;;;12413:67;:111;;;;;12511:13;;12484:24;12502:4;12484:9;:24::i;:::-;:40;12413:111;12410:158;;;12531:31;12548:13;;12531:16;:31::i;:::-;-1:-1:-1;;;;;12603:17:0;;12576:12;12603:17;;;:11;:17;;;;;;12591:4;;12603:17;;;:36;;-1:-1:-1;;;;;;12624:15:0;;;;;;:11;:15;;;;;;;;12603:36;12600:93;;;-1:-1:-1;12659:5:0;12673:14;11316;;;11295:18;:35;11357:15;;;11335:19;:37;-1:-1:-1;10542:29:0;;;;10576:32;11258:142;12673:14;12702:15;12719:23;12744:19;12765:23;12790:18;12810:19;12833:28;12844:6;12852:2;12856:4;12833:10;:28::i;:::-;12701:160;;;;;;;;;;;;12868:78;12886:4;12892:2;12896:6;12904:7;12913:15;12930;12868:17;:78::i;:::-;12993:11;12973:17;;:31;;;;:::i;:::-;12953:17;:51;13037:25;;:39;;13065:11;;13037:39;:::i;:::-;13009:25;:67;13087:7;13083:105;;13104:15;:13;:15::i;:::-;13083:105;;;13139:43;13157:10;13176:4;13139:17;:43::i;:::-;12300:893;;;;;;;12231:962;;;:::o;8481:145::-;8522:7;8537:15;8554;8573:19;:17;:19::i;:::-;8536:56;;-1:-1:-1;8536:56:0;-1:-1:-1;8604:17:0;8536:56;;8604:17;:::i;:::-;8597:24;;;;8481:145;:::o;11506:403::-;4051:16;:23;;-1:-1:-1;;;;4051:23:0;-1:-1:-1;;;4051:23:0;;;11602:16:::1;::::0;;11616:1:::1;11602:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11602:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11602:16:0::1;11578:40;;11641:4;11623;11628:1;11623:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11623:23:0::1;;;-1:-1:-1::0;;;;;11623:23:0::1;;;::::0;::::1;11661:15;-1:-1:-1::0;;;;;11661:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11651:4;11656:1;11651:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;11651:32:0::1;;;-1:-1:-1::0;;;;;11651:32:0::1;;;::::0;::::1;11688:62;11705:4;11720:15;11738:11;11688:8;:62::i;:::-;11861:17;::::0;11755:149:::1;::::0;-1:-1:-1;;;11755:149:0;;-1:-1:-1;;;;;11755:15:0::1;:66:::0;::::1;::::0;::::1;::::0;:149:::1;::::0;11827:11;;11844:1:::1;::::0;11851:4;;11861:17;;;::::1;::::0;11884:15:::1;::::0;11755:149:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4085:16:0;:24;;-1:-1:-1;;;;4085:24:0;;;-1:-1:-1;;;;11506:403:0:o;11379:16::-;11258:142::o;9210:797::-;9308:15;9325:23;9350:19;9374:23;9399:18;9419:19;9447:18;9468;;9447:39;;9509:13;-1:-1:-1;;;;;9496:26:0;:9;-1:-1:-1;;;;;9496:26:0;;9493:142;;-1:-1:-1;9543:14:0;;9493:142;;;9582:13;-1:-1:-1;;;;;9572:23:0;:6;-1:-1:-1;;;;;9572:23:0;;9569:66;;-1:-1:-1;9616:13:0;;9569:66;9699:22;3422:3;;9699:22;:::i;:::-;9685:10;9666:14;;9656:7;:24;;;;:::i;:::-;9654:41;;;;:::i;:::-;:68;;;;:::i;:::-;9641:81;-1:-1:-1;9788:22:0;3422:3;;9788:22;:::i;:::-;9773:10;9753:15;;9743:7;:25;;;;:::i;:::-;9741:42;;;;:::i;:::-;:70;;;;:::i;:::-;9727:84;-1:-1:-1;9848:24:0;9727:84;9848:10;:24;:::i;:::-;9836:37;;:7;:37;:::i;:::-;9818:55;;9906:10;:8;:10::i;:::-;9892:24;;:11;:24;:::i;:::-;9878:38;;9941:10;:8;:10::i;:::-;9931:20;;:7;:20;:::i;:::-;9921:30;;9992:10;:8;:10::i;:::-;9974:28;;:15;:28;:::i;:::-;9956:46;;9440:567;9210:797;;;;;;;;;;:::o;13198:594::-;-1:-1:-1;;;;;13378:24:0;;;;;;:18;:24;;;;;;:35;;13406:7;;13378:35;:::i;:::-;-1:-1:-1;;;;;13348:24:0;;;;;;:18;:24;;;;;;;;:65;;;;13424:11;:17;;;;;;13420:98;;;-1:-1:-1;;;;;13477:20:0;;;;;;:14;:20;;;;;;:35;;13505:7;;13477:35;:::i;:::-;-1:-1:-1;;;;;13451:20:0;;;;;;:14;:20;;;;;:61;13420:98;-1:-1:-1;;;;;13528:15:0;;;;;;:11;:15;;;;;;;;13524:104;;;-1:-1:-1;;;;;13579:18:0;;;;;;:14;:18;;;;;;:43;;13607:15;;13579:43;:::i;:::-;-1:-1:-1;;;;;13553:18:0;;;;;;:14;:18;;;;;:69;13524:104;-1:-1:-1;;;;;13662:22:0;;;;;;:18;:22;;;;;;:43;;13690:15;;13662:43;:::i;:::-;-1:-1:-1;;;;;13632:22:0;;;;;;:18;:22;;;;;:73;13715:19;;13712:76;;13761:2;-1:-1:-1;;;;;13746:35:0;13755:4;-1:-1:-1;;;;;13746:35:0;;13765:15;13746:35;;;;160:25:1;;148:2;133:18;;14:177;13746:35:0;;;;;;;;13712:76;13198:594;;;;;;:::o;11406:95::-;11444:52;11456:18;;11476:19;;10542:14;:29;;;;10576:15;:32;10462:151;10012:445;10095:26;10136:10;:8;:10::i;:::-;10124:22;;:9;:22;:::i;:::-;-1:-1:-1;;;;;10188:34:0;;;;;;:18;:34;;;;;;10095:51;;-1:-1:-1;10188:55:0;;10095:51;;10188:55;:::i;:::-;-1:-1:-1;;;;;10151:34:0;;;;;;:18;:34;;;;;;;;:92;;;;10253:11;:27;;;;;;10250:118;;;-1:-1:-1;;;;;10320:30:0;;;;;;:14;:30;;;;;;:42;;10353:9;;10320:42;:::i;:::-;-1:-1:-1;;;;;10287:30:0;;;;;;:14;:30;;;;;:75;10250:118;10375:13;;10372:81;;10400:47;;160:25:1;;;-1:-1:-1;;;;;10400:47:0;;;10409:10;;10400:47;;148:2:1;133:18;10400:47:0;14:177:1;8631:572:0;8722:17;;8681:7;;;;;2915:12;2859:2;2915;:12;:::i;:::-;2903:24;;:9;:24;:::i;:::-;8744:29;;8783:9;8778:300;8802:9;:16;8798:20;;8778:300;;;8870:7;8835:18;:32;8854:9;8864:1;8854:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8854:12:0;8835:32;;;;;;;;;;;;;:42;;:84;;;8912:7;8881:14;:28;8896:9;8906:1;8896:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8896:12:0;8881:28;;;;;;;;;;;;;:38;8835:84;8831:129;;;8929:17;;2915:12;2859:2;2915;:12;:::i;:::-;2903:24;;:9;:24;:::i;:::-;8921:39;;;;;;;8631:572;;:::o;8831:129::-;8986:18;:32;9005:9;9015:1;9005:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9005:12:0;8986:32;;;;;;;;;;;;;8976:42;;:7;:42;:::i;:::-;8966:52;;9044:14;:28;9059:9;9069:1;9059:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9059:12:0;9044:28;;;;;;;;;;;;;9034:38;;:7;:38;:::i;:::-;9024:48;-1:-1:-1;8820:3:0;;;;:::i;:::-;;;;8778:300;;;-1:-1:-1;2915:12:0;2859:2;2915;:12;:::i;:::-;2903:24;;:9;:24;:::i;:::-;9097:17;;:29;;;;:::i;:::-;9086:7;:41;9082:86;;;9137:17;;2915:12;2859:2;2915;:12;:::i;:::-;2903:24;;:9;:24;:::i;:::-;9129:39;;;;;;8631:572;;:::o;9082:86::-;9181:7;;9190;;-1:-1:-1;8631:572:0;-1:-1:-1;8631:572:0:o;196:131:1:-;-1:-1:-1;;;;;271:31:1;;261:42;;251:70;;317:1;314;307:12;251:70;196:131;:::o;332:247::-;391:6;444:2;432:9;423:7;419:23;415:32;412:52;;;460:1;457;450:12;412:52;499:9;486:23;518:31;543:5;518:31;:::i;584:548::-;696:4;725:2;754;743:9;736:21;786:6;780:13;829:6;824:2;813:9;809:18;802:34;854:1;864:140;878:6;875:1;872:13;864:140;;;973:14;;;969:23;;963:30;939:17;;;958:2;935:26;928:66;893:10;;864:140;;;868:3;1053:1;1048:2;1039:6;1028:9;1024:22;1020:31;1013:42;1123:2;1116;1112:7;1107:2;1099:6;1095:15;1091:29;1080:9;1076:45;1072:54;1064:62;;;;584:548;;;;:::o;1137:315::-;1205:6;1213;1266:2;1254:9;1245:7;1241:23;1237:32;1234:52;;;1282:1;1279;1272:12;1234:52;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;1442:2;1427:18;;;;1414:32;;-1:-1:-1;;;1137:315:1:o;1881:180::-;1940:6;1993:2;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;-1:-1:-1;2032:23:1;;1881:180;-1:-1:-1;1881:180:1:o;2066:456::-;2143:6;2151;2159;2212:2;2200:9;2191:7;2187:23;2183:32;2180:52;;;2228:1;2225;2218:12;2180:52;2267:9;2254:23;2286:31;2311:5;2286:31;:::i;:::-;2336:5;-1:-1:-1;2393:2:1;2378:18;;2365:32;2406:33;2365:32;2406:33;:::i;:::-;2066:456;;2458:7;;-1:-1:-1;;;2512:2:1;2497:18;;;;2484:32;;2066:456::o;2959:316::-;3036:6;3044;3052;3105:2;3093:9;3084:7;3080:23;3076:32;3073:52;;;3121:1;3118;3111:12;3073:52;-1:-1:-1;;3144:23:1;;;3214:2;3199:18;;3186:32;;-1:-1:-1;3265:2:1;3250:18;;;3237:32;;2959:316;-1:-1:-1;2959:316:1:o;3280:118::-;3366:5;3359:13;3352:21;3345:5;3342:32;3332:60;;3388:1;3385;3378:12;3403:309;3468:6;3476;3529:2;3517:9;3508:7;3504:23;3500:32;3497:52;;;3545:1;3542;3535:12;3497:52;3584:9;3571:23;3603:28;3625:5;3603:28;:::i;3717:248::-;3785:6;3793;3846:2;3834:9;3825:7;3821:23;3817:32;3814:52;;;3862:1;3859;3852:12;3814:52;-1:-1:-1;;3885:23:1;;;3955:2;3940:18;;;3927:32;;-1:-1:-1;3717:248:1:o;3970:388::-;4038:6;4046;4099:2;4087:9;4078:7;4074:23;4070:32;4067:52;;;4115:1;4112;4105:12;4067:52;4154:9;4141:23;4173:31;4198:5;4173:31;:::i;:::-;4223:5;-1:-1:-1;4280:2:1;4265:18;;4252:32;4293:33;4252:32;4293:33;:::i;:::-;4345:7;4335:17;;;3970:388;;;;;:::o;4363:750::-;4455:6;4463;4471;4524:2;4512:9;4503:7;4499:23;4495:32;4492:52;;;4540:1;4537;4530:12;4492:52;4580:9;4567:23;4609:18;4650:2;4642:6;4639:14;4636:34;;;4666:1;4663;4656:12;4636:34;4704:6;4693:9;4689:22;4679:32;;4749:7;4742:4;4738:2;4734:13;4730:27;4720:55;;4771:1;4768;4761:12;4720:55;4811:2;4798:16;4837:2;4829:6;4826:14;4823:34;;;4853:1;4850;4843:12;4823:34;4908:7;4901:4;4891:6;4888:1;4884:14;4880:2;4876:23;4872:34;4869:47;4866:67;;;4929:1;4926;4919:12;4866:67;4960:4;4952:13;;;;-1:-1:-1;4984:6:1;-1:-1:-1;;5025:20:1;;5012:34;5055:28;5012:34;5055:28;:::i;:::-;5102:5;5092:15;;;4363:750;;;;;:::o;5118:127::-;5179:10;5174:3;5170:20;5167:1;5160:31;5210:4;5207:1;5200:15;5234:4;5231:1;5224:15;5250:422;5339:1;5382:5;5339:1;5396:270;5417:7;5407:8;5404:21;5396:270;;;5476:4;5472:1;5468:6;5464:17;5458:4;5455:27;5452:53;;;5485:18;;:::i;:::-;5535:7;5525:8;5521:22;5518:55;;;5555:16;;;;5518:55;5634:22;;;;5594:15;;;;5396:270;;;5400:3;5250:422;;;;;:::o;5677:806::-;5726:5;5756:8;5746:80;;-1:-1:-1;5797:1:1;5811:5;;5746:80;5845:4;5835:76;;-1:-1:-1;5882:1:1;5896:5;;5835:76;5927:4;5945:1;5940:59;;;;6013:1;6008:130;;;;5920:218;;5940:59;5970:1;5961:10;;5984:5;;;6008:130;6045:3;6035:8;6032:17;6029:43;;;6052:18;;:::i;:::-;-1:-1:-1;;6108:1:1;6094:16;;6123:5;;5920:218;;6222:2;6212:8;6209:16;6203:3;6197:4;6194:13;6190:36;6184:2;6174:8;6171:16;6166:2;6160:4;6157:12;6153:35;6150:77;6147:159;;;-1:-1:-1;6259:19:1;;;6291:5;;6147:159;6338:34;6363:8;6357:4;6338:34;:::i;:::-;6408:6;6404:1;6400:6;6396:19;6387:7;6384:32;6381:58;;;6419:18;;:::i;:::-;6457:20;;5677:806;-1:-1:-1;;;5677:806:1:o;6488:131::-;6548:5;6577:36;6604:8;6598:4;6577:36;:::i;6624:168::-;6697:9;;;6728;;6745:15;;;6739:22;;6725:37;6715:71;;6766:18;;:::i;6797:356::-;6999:2;6981:21;;;7018:18;;;7011:30;7077:34;7072:2;7057:18;;7050:62;7144:2;7129:18;;6797:356::o;7158:217::-;7198:1;7224;7214:132;;7268:10;7263:3;7259:20;7256:1;7249:31;7303:4;7300:1;7293:15;7331:4;7328:1;7321:15;7214:132;-1:-1:-1;7360:9:1;;7158:217::o;7789:128::-;7856:9;;;7877:11;;;7874:37;;;7891:18;;:::i;9093:127::-;9154:10;9149:3;9145:20;9142:1;9135:31;9185:4;9182:1;9175:15;9209:4;9206:1;9199:15;9225:127;9286:10;9281:3;9277:20;9274:1;9267:31;9317:4;9314:1;9307:15;9341:4;9338:1;9331:15;9357:135;9396:3;9417:17;;;9414:43;;9437:18;;:::i;:::-;-1:-1:-1;9484:1:1;9473:13;;9357:135::o;9497:125::-;9562:9;;;9583:10;;;9580:36;;;9596:18;;:::i;11152:184::-;11222:6;11275:2;11263:9;11254:7;11250:23;11246:32;11243:52;;;11291:1;11288;11281:12;11243:52;-1:-1:-1;11314:16:1;;11152:184;-1:-1:-1;11152:184:1:o;11620:245::-;11687:6;11740:2;11728:9;11719:7;11715:23;11711:32;11708:52;;;11756:1;11753;11746:12;11708:52;11788:9;11782:16;11807:28;11829:5;11807:28;:::i;14678:251::-;14748:6;14801:2;14789:9;14780:7;14776:23;14772:32;14769:52;;;14817:1;14814;14807:12;14769:52;14849:9;14843:16;14868:31;14893:5;14868:31;:::i;14934:988::-;15204:4;15252:3;15241:9;15237:19;15283:6;15272:9;15265:25;15309:2;15347:6;15342:2;15331:9;15327:18;15320:34;15390:3;15385:2;15374:9;15370:18;15363:31;15414:6;15449;15443:13;15480:6;15472;15465:22;15518:3;15507:9;15503:19;15496:26;;15557:2;15549:6;15545:15;15531:29;;15578:1;15588:195;15602:6;15599:1;15596:13;15588:195;;;15667:13;;-1:-1:-1;;;;;15663:39:1;15651:52;;15758:15;;;;15723:12;;;;15699:1;15617:9;15588:195;;;-1:-1:-1;;;;;;;15839:32:1;;;;15834:2;15819:18;;15812:60;-1:-1:-1;;;15903:3:1;15888:19;15881:35;15800:3;14934:988;-1:-1:-1;;;14934:988:1:o
Swarm Source
ipfs://4c1f58578cfb1a1def5f228ea63cff112f4c276a304908b8ef3fd3f788f5574a
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.