ERC-20
Overview
Max Total Supply
1,000,000,000 Flokin2
Holders
503
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
65,957.826177702661736951 Flokin2Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC20FLOKINOMICS2
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-11 */ // 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 ERC20FLOKINOMICS2 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 = 10**9 * 10**decimals; uint256 private _supply_reflected = (MAX - (MAX % totalSupply)); string public constant name = "Flokinomics 2.0"; string public constant symbol = "Flokin2"; uint256 public _fee_reflection = 5; uint256 private _fee_reflection_old = _fee_reflection; uint256 public _contractReflectionStored = 0; uint256 public _fee_marketing = 5; 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(0xEAb7B2faD637021A29E43B1E38B25c8Aded0c269); 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 = 50; 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
[{"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
60c06040526005805460ff191690556200001c6012600a620004b5565b6200002c90633b9aca00620004ca565b6200003a90600019620004fa565b620000489060001962000511565b6006556005600781905560088190556000600955600a818155600b91909155600c805460ff60a81b191690556101f4906200008690601290620004b5565b6200009690633b9aca00620004ca565b620000a2919062000527565b600d55600060105560006011556000601255348015620000c157600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600654600160006200011b6000546001600160a01b031690565b6001600160a01b03168152602080820192909252604090810160002092909255600c80546001600160a01b03191673eab7b2fad637021a29e43b1e38b25c8aded0c269179055815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa158015620001ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d391906200053e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024791906200053e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000295573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bb91906200053e565b6001600160a01b0390811660a052818116608052336000908152600e60205260408082208054600160ff199182168117909255600c54851684528284208054821683179055308452918320805483168217905561dead83527ff77e91909e61d18f67b875b2bfcae1f683a8d555e55382e3a6b082e2c59ea57a805490921617905554166001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003786012600a620004b5565b6200038890633b9aca00620004ca565b60405190815260200160405180910390a35062000569565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f7578160001904821115620003db57620003db620003a0565b80851615620003e957918102915b93841c9390800290620003bb565b509250929050565b6000826200041057506001620004af565b816200041f57506000620004af565b8160018114620004385760028114620004435762000463565b6001915050620004af565b60ff841115620004575762000457620003a0565b50506001821b620004af565b5060208310610133831016604e8410600b841016171562000488575081810a620004af565b620004948383620003b6565b8060001904821115620004ab57620004ab620003a0565b0290505b92915050565b6000620004c38383620003ff565b9392505050565b8082028115828204841417620004af57620004af620003a0565b634e487b7160e01b600052601260045260246000fd5b6000826200050c576200050c620004e4565b500690565b81810381811115620004af57620004af620003a0565b600082620005395762000539620004e4565b500490565b6000602082840312156200055157600080fd5b81516001600160a01b0381168114620004c357600080fd5b60805160a051612566620005b9600039600081816104ef0152818161173e01528181611aa70152611ae901526000818161037c01528181611916015281816119cf0152611a0e01526125666000f3fe6080604052600436106102605760003560e01c8063666a245d11610144578063b8392576116100b6578063dd62ed3e1161007a578063dd62ed3e1461077d578063e0920349146107c3578063f2fde38b146107e3578063fd748c3014610803578063fed0d2a114610818578063ffb54a991461082e57600080fd5b8063b8392576146106f1578063b85f117514610707578063c4ab12b51461071d578063d0e103261461073d578063d607951a1461075d57600080fd5b80638da5cb5b116101085780638da5cb5b1461061d57806395d89b411461063b5780639bef43261461066e578063a457c2d714610684578063a9059cbb146106a4578063b1eb20e9146106c457600080fd5b8063666a245d146105885780636ce46bc3146105a857806370a08231146105c8578063715018a6146105e857806377b54bad146105fd57600080fd5b80632d838119116101dd5780633f4218e0116101a15780633f4218e0146104ad57806349bd5a5e146104dd5780634a74bb02146105115780634d09deb31461053257806352390c02146105525780635921652f1461057257600080fd5b80632d838119146104225780633121c7c014610442578063313ce567146104585780633685d4191461046d578063395093511461048d57600080fd5b80631694505e116102245780631694505e1461036a57806318160ddd146103b65780631da1db5e146103cb57806323b872dd146103ed5780632c28f5791461040d57600080fd5b80630445b6671461026c578063053cfa251461029557806306fdde03146102c2578063095ea7b31461030a5780630b285b1f1461033a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282600d5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102826102b0366004612063565b60026020526000908152604090205481565b3480156102ce57600080fd5b506102fd6040518060400160405280600f81526020016e0466c6f6b696e6f6d69637320322e3608c1b81525081565b60405161028c9190612080565b34801561031657600080fd5b5061032a6103253660046120ce565b610848565b604051901515815260200161028c565b34801561034657600080fd5b5061032a610355366004612063565b60046020526000908152604090205460ff1681565b34801561037657600080fd5b5061039e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161028c565b3480156103c257600080fd5b5061028261085f565b3480156103d757600080fd5b506103eb6103e63660046120fa565b61087c565b005b3480156103f957600080fd5b5061032a610408366004612113565b6108fc565b34801561041957600080fd5b506103eb6109d2565b34801561042e57600080fd5b5061028261043d3660046120fa565b610a8c565b34801561044e57600080fd5b5061028260105481565b34801561046457600080fd5b50610282601281565b34801561047957600080fd5b506103eb610488366004612063565b610b10565b34801561049957600080fd5b5061032a6104a83660046120ce565b610cc6565b3480156104b957600080fd5b5061032a6104c8366004612063565b600e6020526000908152604090205460ff1681565b3480156104e957600080fd5b5061039e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561051d57600080fd5b50600c5461032a90600160a81b900460ff1681565b34801561053e57600080fd5b5061039e61054d3660046120fa565b610cfd565b34801561055e57600080fd5b506103eb61056d366004612063565b610d27565b34801561057e57600080fd5b5061028260125481565b34801561059457600080fd5b50600c5461039e906001600160a01b031681565b3480156105b457600080fd5b506103eb6105c3366004612154565b610e7a565b3480156105d457600080fd5b506102826105e3366004612063565b610fc0565b3480156105f457600080fd5b506103eb61101f565b34801561060957600080fd5b5061032a6106183660046120ce565b6110a3565b34801561062957600080fd5b506000546001600160a01b031661039e565b34801561064757600080fd5b506102fd60405180604001604052806007815260200166233637b5b4b71960c91b81525081565b34801561067a57600080fd5b5061028260095481565b34801561069057600080fd5b5061032a61069f3660046120ce565b6111b2565b3480156106b057600080fd5b5061032a6106bf3660046120ce565b611269565b3480156106d057600080fd5b506102826106df366004612063565b60016020526000908152604090205481565b3480156106fd57600080fd5b50610282600a5481565b34801561071357600080fd5b5061028260075481565b34801561072957600080fd5b506103eb610738366004612063565b611276565b34801561074957600080fd5b506103eb61075836600461218e565b6112c2565b34801561076957600080fd5b506103eb6107783660046121ac565b61135e565b34801561078957600080fd5b506102826107983660046121ce565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506103eb6107de366004612207565b6113e9565b3480156107ef57600080fd5b506103eb6107fe366004612063565b611488565b34801561080f57600080fd5b50610282606481565b34801561082457600080fd5b5061028260115481565b34801561083a57600080fd5b5060055461032a9060ff1681565b6000610855338484611572565b5060015b92915050565b61086b6012600a612387565b61087990633b9aca00612393565b81565b6000546001600160a01b031633146108af5760405162461bcd60e51b81526004016108a6906123aa565b60405180910390fd5b600060646108bd4784612393565b6108c791906123df565b604051909150339082156108fc029083906000818181858888f193505050501580156108f7573d6000803e3d6000fd5b505050565b6000610909848484611697565b6001600160a01b038416600090815260036020908152604080832033845290915290205482111561098d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a6565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546109c89186916109c3908690612401565b611572565b5060019392505050565b6000546001600160a01b031633146109fc5760405162461bcd60e51b81526004016108a6906123aa565b60055460ff1615610a5b5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420626520657865637574656420616674657220676f696e67206c60448201526269766560e81b60648201526084016108a6565b6005805460ff19166001179055600c805460ff60a81b1916600160a81b179055603260105560c86011556000601255565b6000600654821115610af35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108a6565b6000610afd611889565b9050610b0981846123df565b9392505050565b6000546001600160a01b03163314610b3a5760405162461bcd60e51b81526004016108a6906123aa565b6001600160a01b03811660009081526004602052604090205460ff16610ba25760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016108a6565b60005b600f54811015610cc257816001600160a01b0316600f8281548110610bcc57610bcc612414565b6000918252602090912001546001600160a01b031603610cb057600f8054610bf690600190612401565b81548110610c0657610c06612414565b600091825260209091200154600f80546001600160a01b039092169183908110610c3257610c32612414565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff19169055600f805480610c8a57610c8a61242a565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cba81612440565b915050610ba5565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108559185906109c3908690612459565b600f8181548110610d0d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610d515760405162461bcd60e51b81526004016108a6906123aa565b6001600160a01b03811660009081526004602052604090205460ff1615610dba5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108a6565b6001600160a01b03811660009081526001602052604090205415610e14576001600160a01b038116600090815260016020526040902054610dfa90610a8c565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055565b6000546001600160a01b03163314610ea45760405162461bcd60e51b81526004016108a6906123aa565b6064831115610ef55760405162461bcd60e51b815260206004820181905260248201527f4d617820627579206d756c7469706c69657220616c6c6f77656420697320317860448201526064016108a6565b6064821115610f505760405162461bcd60e51b815260206004820152602160248201527f4d61782073656c6c206d756c7469706c69657220616c6c6f77656420697320316044820152600f60fb1b60648201526084016108a6565b6064811115610faf5760405162461bcd60e51b815260206004820152602560248201527f4d6178207472616e73666572206d756c7469706c69657220616c6c6f776564206044820152640d2e64062f60db1b60648201526084016108a6565b601191909155601091909155601255565b6001600160a01b03811660009081526004602052604081205460ff1615610ffd57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461085990610a8c565b6000546001600160a01b031633146110495760405162461bcd60e51b81526004016108a6906123aa565b6000805460405182916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633146110ce5760405162461bcd60e51b81526004016108a6906123aa565b81600003611141576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e919061246c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561118e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b099190612485565b3360009081526003602090815260408083206001600160a01b03861684529091528120548211156112335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a6565b3360008181526003602090815260408083206001600160a01b0388168452909152902054610855919085906109c3908690612401565b6000610855338484611697565b6000546001600160a01b031633146112a05760405162461bcd60e51b81526004016108a6906123aa565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112ec5760405162461bcd60e51b81526004016108a6906123aa565b6000811161133c5760405162461bcd60e51b815260206004820152601a60248201527f73776170207468726573686f6c642063616e6e6f74206265203000000000000060448201526064016108a6565b600c8054921515600160a81b0260ff60a81b1990931692909217909155600d55565b6000546001600160a01b031633146113885760405162461bcd60e51b81526004016108a6906123aa565b60006113948383612459565b905060148111156113e05760405162461bcd60e51b81526020600482015260166024820152754d61782066656520616c6c6f7765642069732032302560501b60448201526064016108a6565b50600a55600755565b6000546001600160a01b031633146114135760405162461bcd60e51b81526004016108a6906123aa565b60005b828110156114825781600e600086868581811061143557611435612414565b905060200201602081019061144a9190612063565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561147b81612440565b9050611416565b50505050565b6000546001600160a01b031633146114b25760405162461bcd60e51b81526004016108a6906123aa565b6001600160a01b0381166115175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115d45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a6565b6001600160a01b0382166116355760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600e602052604090205460ff161580156116d957506001600160a01b0382166000908152600e602052604090205460ff16155b156117275760055460ff166117275760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a6565b600c54600160a01b900460ff1615801561177357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b80156117885750600c54600160a81b900460ff165b801561179d5750600d5461179b30610fc0565b115b156117ad576117ad600d546118ac565b6001600160a01b0383166000908152600e602052604090205460019060ff16806117ef57506001600160a01b0383166000908152600e602052604090205460ff165b1561181157506000611811600a8054600b556007805460085560009182905555565b600080600080600080611825888a8c611a95565b95509550955095509550955061183f8a8a8a89878a611be4565b8360065461184d9190612401565b60065560095461185e908290612459565b600955866118735761186e611d6b565b61187d565b61187d8230611d7f565b50505050505050505050565b6000806000611896611e68565b90925090506118a581836123df565b9250505090565b600c805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118f4576118f4612414565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199691906124a2565b816001815181106119a9576119a9612414565b60200260200101906001600160a01b031690816001600160a01b0316815250506119f4307f000000000000000000000000000000000000000000000000000000000000000084611572565b600c5460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac94792611a509287926000928892919091169042906004016124bf565b600060405180830381600087803b158015611a6a57600080fd5b505af1158015611a7e573d6000803e3d6000fd5b5050600c805460ff60a01b1916905550505050565b565b600080600080600080600060125490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b031603611ae75750601154611b25565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b031603611b2557506010545b611b30606480612393565b81600a548c611b3f9190612393565b611b499190612393565b611b5391906123df565b9250611b60606480612393565b816007548c611b6f9190612393565b611b799190612393565b611b8391906123df565b9150611b8f8284612459565b611b99908b612401565b9350611ba3611889565b611bad9083612393565b9450611bb7611889565b611bc1908b612393565b9650611bcb611889565b611bd59085612393565b95505093975093979195509350565b6001600160a01b038616600090815260016020526040902054611c08908490612401565b6001600160a01b03871660009081526001602090815260408083209390935560049052205460ff1615611c73576001600160a01b038616600090815260026020526040902054611c59908590612401565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526004602052604090205460ff1615611cd2576001600160a01b038516600090815260026020526040902054611cb8908390612459565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b038516600090815260016020526040902054611cf6908290612459565b6001600160a01b0386166000908152600160205260409020558115611d6357846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5a91815260200190565b60405180910390a35b505050505050565b611a93600b54600854600a91909155600755565b6000611d89611889565b611d939084612393565b6001600160a01b038316600090815260016020526040902054909150611dba908290612459565b6001600160a01b03831660009081526001602090815260408083209390935560049052205460ff1615611e25576001600160a01b038216600090815260026020526040902054611e0b908490612459565b6001600160a01b0383166000908152600260205260409020555b82156108f7576040518381526001600160a01b0383169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161168a565b600654600090819081611e7d6012600a612387565b611e8b90633b9aca00612393565b905060005b600f54811015611fec578260016000600f8481548110611eb257611eb2612414565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f1d57508160026000600f8481548110611ef657611ef6612414565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f4a57600654611f316012600a612387565b611f3f90633b9aca00612393565b945094505050509091565b60016000600f8381548110611f6157611f61612414565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611f909084612401565b925060026000600f8381548110611fa957611fa9612414565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611fd89083612401565b915080611fe481612440565b915050611e90565b50611ff96012600a612387565b61200790633b9aca00612393565b60065461201491906123df565b8210156120425760065461202a6012600a612387565b61203890633b9aca00612393565b9350935050509091565b90939092509050565b6001600160a01b038116811461206057600080fd5b50565b60006020828403121561207557600080fd5b8135610b098161204b565b600060208083528351808285015260005b818110156120ad57858101830151858201604001528201612091565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156120e157600080fd5b82356120ec8161204b565b946020939093013593505050565b60006020828403121561210c57600080fd5b5035919050565b60008060006060848603121561212857600080fd5b83356121338161204b565b925060208401356121438161204b565b929592945050506040919091013590565b60008060006060848603121561216957600080fd5b505081359360208301359350604090920135919050565b801515811461206057600080fd5b600080604083850312156121a157600080fd5b82356120ec81612180565b600080604083850312156121bf57600080fd5b50508035926020909101359150565b600080604083850312156121e157600080fd5b82356121ec8161204b565b915060208301356121fc8161204b565b809150509250929050565b60008060006040848603121561221c57600080fd5b833567ffffffffffffffff8082111561223457600080fd5b818601915086601f83011261224857600080fd5b81358181111561225757600080fd5b8760208260051b850101111561226c57600080fd5b6020928301955093505084013561228281612180565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156122de5781600019048211156122c4576122c461228d565b808516156122d157918102915b93841c93908002906122a8565b509250929050565b6000826122f557506001610859565b8161230257506000610859565b816001811461231857600281146123225761233e565b6001915050610859565b60ff8411156123335761233361228d565b50506001821b610859565b5060208310610133831016604e8410600b8410161715612361575081810a610859565b61236b83836122a3565b806000190482111561237f5761237f61228d565b029392505050565b6000610b0983836122e6565b80820281158282048414176108595761085961228d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826123fc57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108595761085961228d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016124525761245261228d565b5060010190565b808201808211156108595761085961228d565b60006020828403121561247e57600080fd5b5051919050565b60006020828403121561249757600080fd5b8151610b0981612180565b6000602082840312156124b457600080fd5b8151610b098161204b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561250f5784516001600160a01b0316835293830193918301916001016124ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220543b2d88e07e5e1a023746233f8609d7bc793027d97fe7112d6ee98bf502ac5b64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106102605760003560e01c8063666a245d11610144578063b8392576116100b6578063dd62ed3e1161007a578063dd62ed3e1461077d578063e0920349146107c3578063f2fde38b146107e3578063fd748c3014610803578063fed0d2a114610818578063ffb54a991461082e57600080fd5b8063b8392576146106f1578063b85f117514610707578063c4ab12b51461071d578063d0e103261461073d578063d607951a1461075d57600080fd5b80638da5cb5b116101085780638da5cb5b1461061d57806395d89b411461063b5780639bef43261461066e578063a457c2d714610684578063a9059cbb146106a4578063b1eb20e9146106c457600080fd5b8063666a245d146105885780636ce46bc3146105a857806370a08231146105c8578063715018a6146105e857806377b54bad146105fd57600080fd5b80632d838119116101dd5780633f4218e0116101a15780633f4218e0146104ad57806349bd5a5e146104dd5780634a74bb02146105115780634d09deb31461053257806352390c02146105525780635921652f1461057257600080fd5b80632d838119146104225780633121c7c014610442578063313ce567146104585780633685d4191461046d578063395093511461048d57600080fd5b80631694505e116102245780631694505e1461036a57806318160ddd146103b65780631da1db5e146103cb57806323b872dd146103ed5780632c28f5791461040d57600080fd5b80630445b6671461026c578063053cfa251461029557806306fdde03146102c2578063095ea7b31461030a5780630b285b1f1461033a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b50610282600d5481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102826102b0366004612063565b60026020526000908152604090205481565b3480156102ce57600080fd5b506102fd6040518060400160405280600f81526020016e0466c6f6b696e6f6d69637320322e3608c1b81525081565b60405161028c9190612080565b34801561031657600080fd5b5061032a6103253660046120ce565b610848565b604051901515815260200161028c565b34801561034657600080fd5b5061032a610355366004612063565b60046020526000908152604090205460ff1681565b34801561037657600080fd5b5061039e7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161028c565b3480156103c257600080fd5b5061028261085f565b3480156103d757600080fd5b506103eb6103e63660046120fa565b61087c565b005b3480156103f957600080fd5b5061032a610408366004612113565b6108fc565b34801561041957600080fd5b506103eb6109d2565b34801561042e57600080fd5b5061028261043d3660046120fa565b610a8c565b34801561044e57600080fd5b5061028260105481565b34801561046457600080fd5b50610282601281565b34801561047957600080fd5b506103eb610488366004612063565b610b10565b34801561049957600080fd5b5061032a6104a83660046120ce565b610cc6565b3480156104b957600080fd5b5061032a6104c8366004612063565b600e6020526000908152604090205460ff1681565b3480156104e957600080fd5b5061039e7f0000000000000000000000008b1e94dab7c91eac0d75b1b03b499421b033683081565b34801561051d57600080fd5b50600c5461032a90600160a81b900460ff1681565b34801561053e57600080fd5b5061039e61054d3660046120fa565b610cfd565b34801561055e57600080fd5b506103eb61056d366004612063565b610d27565b34801561057e57600080fd5b5061028260125481565b34801561059457600080fd5b50600c5461039e906001600160a01b031681565b3480156105b457600080fd5b506103eb6105c3366004612154565b610e7a565b3480156105d457600080fd5b506102826105e3366004612063565b610fc0565b3480156105f457600080fd5b506103eb61101f565b34801561060957600080fd5b5061032a6106183660046120ce565b6110a3565b34801561062957600080fd5b506000546001600160a01b031661039e565b34801561064757600080fd5b506102fd60405180604001604052806007815260200166233637b5b4b71960c91b81525081565b34801561067a57600080fd5b5061028260095481565b34801561069057600080fd5b5061032a61069f3660046120ce565b6111b2565b3480156106b057600080fd5b5061032a6106bf3660046120ce565b611269565b3480156106d057600080fd5b506102826106df366004612063565b60016020526000908152604090205481565b3480156106fd57600080fd5b50610282600a5481565b34801561071357600080fd5b5061028260075481565b34801561072957600080fd5b506103eb610738366004612063565b611276565b34801561074957600080fd5b506103eb61075836600461218e565b6112c2565b34801561076957600080fd5b506103eb6107783660046121ac565b61135e565b34801561078957600080fd5b506102826107983660046121ce565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107cf57600080fd5b506103eb6107de366004612207565b6113e9565b3480156107ef57600080fd5b506103eb6107fe366004612063565b611488565b34801561080f57600080fd5b50610282606481565b34801561082457600080fd5b5061028260115481565b34801561083a57600080fd5b5060055461032a9060ff1681565b6000610855338484611572565b5060015b92915050565b61086b6012600a612387565b61087990633b9aca00612393565b81565b6000546001600160a01b031633146108af5760405162461bcd60e51b81526004016108a6906123aa565b60405180910390fd5b600060646108bd4784612393565b6108c791906123df565b604051909150339082156108fc029083906000818181858888f193505050501580156108f7573d6000803e3d6000fd5b505050565b6000610909848484611697565b6001600160a01b038416600090815260036020908152604080832033845290915290205482111561098d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108a6565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546109c89186916109c3908690612401565b611572565b5060019392505050565b6000546001600160a01b031633146109fc5760405162461bcd60e51b81526004016108a6906123aa565b60055460ff1615610a5b5760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420626520657865637574656420616674657220676f696e67206c60448201526269766560e81b60648201526084016108a6565b6005805460ff19166001179055600c805460ff60a81b1916600160a81b179055603260105560c86011556000601255565b6000600654821115610af35760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016108a6565b6000610afd611889565b9050610b0981846123df565b9392505050565b6000546001600160a01b03163314610b3a5760405162461bcd60e51b81526004016108a6906123aa565b6001600160a01b03811660009081526004602052604090205460ff16610ba25760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016108a6565b60005b600f54811015610cc257816001600160a01b0316600f8281548110610bcc57610bcc612414565b6000918252602090912001546001600160a01b031603610cb057600f8054610bf690600190612401565b81548110610c0657610c06612414565b600091825260209091200154600f80546001600160a01b039092169183908110610c3257610c32612414565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff19169055600f805480610c8a57610c8a61242a565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610cba81612440565b915050610ba5565b5050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108559185906109c3908690612459565b600f8181548110610d0d57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610d515760405162461bcd60e51b81526004016108a6906123aa565b6001600160a01b03811660009081526004602052604090205460ff1615610dba5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016108a6565b6001600160a01b03811660009081526001602052604090205415610e14576001600160a01b038116600090815260016020526040902054610dfa90610a8c565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319169091179055565b6000546001600160a01b03163314610ea45760405162461bcd60e51b81526004016108a6906123aa565b6064831115610ef55760405162461bcd60e51b815260206004820181905260248201527f4d617820627579206d756c7469706c69657220616c6c6f77656420697320317860448201526064016108a6565b6064821115610f505760405162461bcd60e51b815260206004820152602160248201527f4d61782073656c6c206d756c7469706c69657220616c6c6f77656420697320316044820152600f60fb1b60648201526084016108a6565b6064811115610faf5760405162461bcd60e51b815260206004820152602560248201527f4d6178207472616e73666572206d756c7469706c69657220616c6c6f776564206044820152640d2e64062f60db1b60648201526084016108a6565b601191909155601091909155601255565b6001600160a01b03811660009081526004602052604081205460ff1615610ffd57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461085990610a8c565b6000546001600160a01b031633146110495760405162461bcd60e51b81526004016108a6906123aa565b6000805460405182916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633146110ce5760405162461bcd60e51b81526004016108a6906123aa565b81600003611141576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e919061246c565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af115801561118e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b099190612485565b3360009081526003602090815260408083206001600160a01b03861684529091528120548211156112335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108a6565b3360008181526003602090815260408083206001600160a01b0388168452909152902054610855919085906109c3908690612401565b6000610855338484611697565b6000546001600160a01b031633146112a05760405162461bcd60e51b81526004016108a6906123aa565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112ec5760405162461bcd60e51b81526004016108a6906123aa565b6000811161133c5760405162461bcd60e51b815260206004820152601a60248201527f73776170207468726573686f6c642063616e6e6f74206265203000000000000060448201526064016108a6565b600c8054921515600160a81b0260ff60a81b1990931692909217909155600d55565b6000546001600160a01b031633146113885760405162461bcd60e51b81526004016108a6906123aa565b60006113948383612459565b905060148111156113e05760405162461bcd60e51b81526020600482015260166024820152754d61782066656520616c6c6f7765642069732032302560501b60448201526064016108a6565b50600a55600755565b6000546001600160a01b031633146114135760405162461bcd60e51b81526004016108a6906123aa565b60005b828110156114825781600e600086868581811061143557611435612414565b905060200201602081019061144a9190612063565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561147b81612440565b9050611416565b50505050565b6000546001600160a01b031633146114b25760405162461bcd60e51b81526004016108a6906123aa565b6001600160a01b0381166115175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108a6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166115d45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108a6565b6001600160a01b0382166116355760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108a6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600e602052604090205460ff161580156116d957506001600160a01b0382166000908152600e602052604090205460ff16155b156117275760055460ff166117275760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108a6565b600c54600160a01b900460ff1615801561177357507f0000000000000000000000008b1e94dab7c91eac0d75b1b03b499421b03368306001600160a01b0316836001600160a01b031614155b80156117885750600c54600160a81b900460ff165b801561179d5750600d5461179b30610fc0565b115b156117ad576117ad600d546118ac565b6001600160a01b0383166000908152600e602052604090205460019060ff16806117ef57506001600160a01b0383166000908152600e602052604090205460ff165b1561181157506000611811600a8054600b556007805460085560009182905555565b600080600080600080611825888a8c611a95565b95509550955095509550955061183f8a8a8a89878a611be4565b8360065461184d9190612401565b60065560095461185e908290612459565b600955866118735761186e611d6b565b61187d565b61187d8230611d7f565b50505050505050505050565b6000806000611896611e68565b90925090506118a581836123df565b9250505090565b600c805460ff60a01b1916600160a01b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106118f4576118f4612414565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199691906124a2565b816001815181106119a9576119a9612414565b60200260200101906001600160a01b031690816001600160a01b0316815250506119f4307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611572565b600c5460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac94792611a509287926000928892919091169042906004016124bf565b600060405180830381600087803b158015611a6a57600080fd5b505af1158015611a7e573d6000803e3d6000fd5b5050600c805460ff60a01b1916905550505050565b565b600080600080600080600060125490507f0000000000000000000000008b1e94dab7c91eac0d75b1b03b499421b03368306001600160a01b0316896001600160a01b031603611ae75750601154611b25565b7f0000000000000000000000008b1e94dab7c91eac0d75b1b03b499421b03368306001600160a01b0316886001600160a01b031603611b2557506010545b611b30606480612393565b81600a548c611b3f9190612393565b611b499190612393565b611b5391906123df565b9250611b60606480612393565b816007548c611b6f9190612393565b611b799190612393565b611b8391906123df565b9150611b8f8284612459565b611b99908b612401565b9350611ba3611889565b611bad9083612393565b9450611bb7611889565b611bc1908b612393565b9650611bcb611889565b611bd59085612393565b95505093975093979195509350565b6001600160a01b038616600090815260016020526040902054611c08908490612401565b6001600160a01b03871660009081526001602090815260408083209390935560049052205460ff1615611c73576001600160a01b038616600090815260026020526040902054611c59908590612401565b6001600160a01b0387166000908152600260205260409020555b6001600160a01b03851660009081526004602052604090205460ff1615611cd2576001600160a01b038516600090815260026020526040902054611cb8908390612459565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b038516600090815260016020526040902054611cf6908290612459565b6001600160a01b0386166000908152600160205260409020558115611d6357846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5a91815260200190565b60405180910390a35b505050505050565b611a93600b54600854600a91909155600755565b6000611d89611889565b611d939084612393565b6001600160a01b038316600090815260016020526040902054909150611dba908290612459565b6001600160a01b03831660009081526001602090815260408083209390935560049052205460ff1615611e25576001600160a01b038216600090815260026020526040902054611e0b908490612459565b6001600160a01b0383166000908152600260205260409020555b82156108f7576040518381526001600160a01b0383169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161168a565b600654600090819081611e7d6012600a612387565b611e8b90633b9aca00612393565b905060005b600f54811015611fec578260016000600f8481548110611eb257611eb2612414565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611f1d57508160026000600f8481548110611ef657611ef6612414565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15611f4a57600654611f316012600a612387565b611f3f90633b9aca00612393565b945094505050509091565b60016000600f8381548110611f6157611f61612414565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611f909084612401565b925060026000600f8381548110611fa957611fa9612414565b60009182526020808320909101546001600160a01b03168352820192909252604001902054611fd89083612401565b915080611fe481612440565b915050611e90565b50611ff96012600a612387565b61200790633b9aca00612393565b60065461201491906123df565b8210156120425760065461202a6012600a612387565b61203890633b9aca00612393565b9350935050509091565b90939092509050565b6001600160a01b038116811461206057600080fd5b50565b60006020828403121561207557600080fd5b8135610b098161204b565b600060208083528351808285015260005b818110156120ad57858101830151858201604001528201612091565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156120e157600080fd5b82356120ec8161204b565b946020939093013593505050565b60006020828403121561210c57600080fd5b5035919050565b60008060006060848603121561212857600080fd5b83356121338161204b565b925060208401356121438161204b565b929592945050506040919091013590565b60008060006060848603121561216957600080fd5b505081359360208301359350604090920135919050565b801515811461206057600080fd5b600080604083850312156121a157600080fd5b82356120ec81612180565b600080604083850312156121bf57600080fd5b50508035926020909101359150565b600080604083850312156121e157600080fd5b82356121ec8161204b565b915060208301356121fc8161204b565b809150509250929050565b60008060006040848603121561221c57600080fd5b833567ffffffffffffffff8082111561223457600080fd5b818601915086601f83011261224857600080fd5b81358181111561225757600080fd5b8760208260051b850101111561226c57600080fd5b6020928301955093505084013561228281612180565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156122de5781600019048211156122c4576122c461228d565b808516156122d157918102915b93841c93908002906122a8565b509250929050565b6000826122f557506001610859565b8161230257506000610859565b816001811461231857600281146123225761233e565b6001915050610859565b60ff8411156123335761233361228d565b50506001821b610859565b5060208310610133831016604e8410600b8410161715612361575081810a610859565b61236b83836122a3565b806000190482111561237f5761237f61228d565b029392505050565b6000610b0983836122e6565b80820281158282048414176108595761085961228d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826123fc57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108595761085961228d565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b6000600182016124525761245261228d565b5060010190565b808201808211156108595761085961228d565b60006020828403121561247e57600080fd5b5051919050565b60006020828403121561249757600080fd5b8151610b0981612180565b6000602082840312156124b457600080fd5b8151610b098161204b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561250f5784516001600160a01b0316835293830193918301916001016124ea565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220543b2d88e07e5e1a023746233f8609d7bc793027d97fe7112d6ee98bf502ac5b64736f6c63430008120033
Deployed Bytecode Sourcemap
2327:11463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3560:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;3560:48:0;;;;;;;;2444:50;;;;;;;;;;-1:-1:-1;2444:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;2958:47;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2958:47:0;;;;;;;;;;;;:::i;5209:146::-;;;;;;;;;;-1:-1:-1;5209:146:0;;;;;:::i;:::-;;:::i;:::-;;;1622:14:1;;1615:22;1597:41;;1585:2;1570:18;5209:146:0;1457:187:1;2574:44:0;;;;;;;;;;-1:-1:-1;2574:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3393:49;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1837:32:1;;;1819:51;;1807:2;1792:18;3393:49:0;1649:227:1;2827:58:0;;;;;;;;;;;;;:::i;7976:200::-;;;;;;;;;;-1:-1:-1;7976:200:0;;;;;:::i;:::-;;:::i;:::-;;5360:346;;;;;;;;;;-1:-1:-1;5360:346:0;;;;;:::i;:::-;;:::i;7326:237::-;;;;;;;;;;;;;:::i;6365:241::-;;;;;;;;;;-1:-1:-1;6365:241:0;;;;;:::i;:::-;;:::i;3694:32::-;;;;;;;;;;;;;;;;2786:37;;;;;;;;;;;;2821:2;2786:37;;6936:385;;;;;;;;;;-1:-1:-1;6936:385:0;;;;;:::i;:::-;;:::i;5711:202::-;;;;;;;;;;-1:-1:-1;5711:202:0;;;;;:::i;:::-;;:::i;3614:44::-;;;;;;;;;;-1:-1:-1;3614:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3446:38;;;;;;;;;;;;;;;3515:41;;;;;;;;;;-1:-1:-1;3515:41:0;;;;-1:-1:-1;;;3515:41:0;;;;;;3662:26;;;;;;;;;;-1:-1:-1;3662:26:0;;;;;:::i;:::-;;:::i;6611:320::-;;;;;;;;;;-1:-1:-1;6611:320:0;;;;;:::i;:::-;;:::i;3767:37::-;;;;;;;;;;;;;;;;3295:40;;;;;;;;;;-1:-1:-1;3295:40:0;;;;-1:-1:-1;;;;;3295:40:0;;;10579:373;;;;;;;;;;-1:-1:-1;10579:373:0;;;;;:::i;:::-;;:::i;4707:201::-;;;;;;;;;;-1:-1:-1;4707:201:0;;;;;:::i;:::-;;:::i;1715:163::-;;;;;;;;;;;;;:::i;8181:256::-;;;;;;;;;;-1:-1:-1;8181:256:0;;;;;:::i;:::-;;:::i;1293:78::-;;;;;;;;;;-1:-1:-1;1339:7:0;1360:6;-1:-1:-1;;;;;1360:6:0;1293:78;;3009:41;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3009:41:0;;;;;3152:44;;;;;;;;;;;;;;;;5918:320;;;;;;;;;;-1:-1:-1;5918:320:0;;;;;:::i;:::-;;:::i;4913:152::-;;;;;;;;;;-1:-1:-1;4913:152:0;;;;;:::i;:::-;;:::i;2386:54::-;;;;;;;;;;-1:-1:-1;2386:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;3203:33;;;;;;;;;;;;;;;;3057:34;;;;;;;;;;;;;;;;6243:117;;;;;;;;;;-1:-1:-1;6243:117:0;;;;;:::i;:::-;;:::i;7568:207::-;;;;;;;;;;-1:-1:-1;7568:207:0;;;;;:::i;:::-;;:::i;10957:257::-;;;;;;;;;;-1:-1:-1;10957:257:0;;;;;:::i;:::-;;:::i;5070:134::-;;;;;;;;;;-1:-1:-1;5070:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;5172:18:0;;;5151:7;5172:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5070:134;7780:191;;;;;;;;;;-1:-1:-1;7780:191:0;;;;;:::i;:::-;;:::i;1487:223::-;;;;;;;;;;-1:-1:-1;1487:223:0;;;;;:::i;:::-;;:::i;3341:46::-;;;;;;;;;;;;3384:3;3341:46;;3730:33;;;;;;;;;;;;;;;;2625:31;;;;;;;;;;-1:-1:-1;2625:31:0;;;;;;;;5209:146;5284:4;5295:39;1013:10;5318:7;5327:6;5295:8;:39::i;:::-;-1:-1:-1;5346:4:0;5209:146;;;;;:::o;2827:58::-;2873:12;2821:2;2873;:12;:::i;:::-;2865:20;;:5;:20;:::i;:::-;2827:58;:::o;7976:200::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;;;;;;;;;8053:21:::1;8120:3;8077:40;8096:21;8077:16:::0;:40:::1;:::i;:::-;:46;;;;:::i;:::-;8128:43;::::0;8053:70;;-1:-1:-1;8136:10:0::1;::::0;8128:43;::::1;;;::::0;8053:70;;8128:43:::1;::::0;;;8053:70;8136:10;8128:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8048:128;7976:200:::0;:::o;5360:346::-;5458:4;5469:36;5479:6;5487:9;5498:6;5469:9;:36::i;:::-;-1:-1:-1;;;;;5519:19:0;;;;;;:11;:19;;;;;;;;1013:10;5519:33;;;;;;;;:43;-1:-1:-1;5519:43:0;5510:96;;;;-1:-1:-1;;;5510:96:0;;7582:2:1;5510: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;;5510:96:0;7380:404:1;5510:96:0;-1:-1:-1;;;;;5643:19:0;;;;;;:11;:19;;;;;;;;1013:10;5643:33;;;;;;;;;5611:74;;5620:6;;5643:40;;5677:6;;5643:40;:::i;:::-;5611:8;:74::i;:::-;-1:-1:-1;5697:4:0;5360:346;;;;;:::o;7326:237::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;7377:11:::1;::::0;::::1;;7376:12;7368:59;;;::::0;-1:-1:-1;;;7368:59:0;;8124:2:1;7368: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;;7368:59:0::1;7922:399:1::0;7368:59:0::1;7432:11;:18:::0;;-1:-1:-1;;7432:18:0::1;7446:4;7432:18;::::0;;7455:21:::1;:28:::0;;-1:-1:-1;;;;7455:28:0::1;-1:-1:-1::0;;;7455:28:0::1;::::0;;7504:2:::1;7488:13;:18:::0;7528:3:::1;7511:14;:20:::0;7432:11:::1;7536:18;:22:::0;7326:237::o;6365:241::-;6431:7;6464:17;;6453:7;:28;;6445:83;;;;-1:-1:-1;;;6445:83:0;;8528:2:1;6445: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;;6445:83:0;8326:406:1;6445:83:0;6533:19;6556:10;:8;:10::i;:::-;6533:33;-1:-1:-1;6579:21:0;6533:33;6579:7;:21;:::i;:::-;6571:30;6365:241;-1:-1:-1;;;6365:241:0:o;6936:385::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7010:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;7002:60;;;::::0;-1:-1:-1;;;7002:60:0;;8939:2:1;7002:60:0::1;::::0;::::1;8921:21:1::0;8978:2;8958:18;;;8951:30;9017:29;8997:18;;;8990:57;9064:18;;7002:60:0::1;8737:351:1::0;7002:60:0::1;7072:9;7067:250;7091:9;:16:::0;7087:20;::::1;7067:250;;;7140:7;-1:-1:-1::0;;;;;7124:23:0::1;:9;7134:1;7124:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;7124:12:0::1;:23:::0;7120:192:::1;;7171:9;7181:16:::0;;:20:::1;::::0;7200:1:::1;::::0;7181:20:::1;:::i;:::-;7171:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;7156:9:::1;:12:::0;;-1:-1:-1;;;;;7171:31:0;;::::1;::::0;7166:1;;7156:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;7156:46:0::1;-1:-1:-1::0;;;;;7156:46:0;;::::1;;::::0;;7209:23;;::::1;::::0;;:14:::1;:23:::0;;;;;;:27;;;7243:11:::1;:20:::0;;;;:28;;-1:-1:-1;;7243:28:0::1;::::0;;7278:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;7278:15:0;;;;;-1:-1:-1;;;;;;7278:15:0::1;::::0;;;;;7067:250:::1;6936:385:::0;:::o;7120:192::-:1;7109:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7067:250;;;;6936:385:::0;:::o;5711:202::-;1013:10;5799:4;5843:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5843:34:0;;;;;;;;;;5799:4;;5810:82;;5833:7;;5843:47;;5880:10;;5843:47;:::i;3662:26::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3662:26:0;;-1:-1:-1;3662:26:0;:::o;6611:320::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6688:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;6687:21;6679:61;;;::::0;-1:-1:-1;;;6679:61:0;;9829:2:1;6679:61:0::1;::::0;::::1;9811:21:1::0;9868:2;9848:18;;;9841:30;9907:29;9887:18;;;9880:57;9954:18;;6679:61:0::1;9627:351:1::0;6679:61:0::1;-1:-1:-1::0;;;;;6748:27:0;::::1;6778:1;6748:27:::0;;;:18:::1;:27;::::0;;;;;:31;6745:122:::1;;-1:-1:-1::0;;;;;6833:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;6813:48:::1;::::0;:19:::1;:48::i;:::-;-1:-1:-1::0;;;;;6787:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;:74;6745:122:::1;-1:-1:-1::0;;;;;6871:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;6871:27:0::1;6894:4;6871:27:::0;;::::1;::::0;;;6903:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6903:23:0::1;::::0;;::::1;::::0;;6611:320::o;10579:373::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;10690:3:::1;10682:4;:11;;10674:56;;;::::0;-1:-1:-1;;;10674:56:0;;10185:2:1;10674:56:0::1;::::0;::::1;10167:21:1::0;;;10204:18;;;10197:30;10263:34;10243:18;;;10236:62;10315:18;;10674:56:0::1;9983:356:1::0;10674:56:0::1;10752:3;10743:5;:12;;10735:58;;;::::0;-1:-1:-1;;;10735:58:0;;10546:2:1;10735: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;;10735:58:0::1;10344:397:1::0;10735:58:0::1;10816:3;10806:6;:13;;10798:63;;;::::0;-1:-1:-1;;;10798:63:0;;10948:2:1;10798: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;;10798:63:0::1;10746:401:1::0;10798:63:0::1;10868:14;:22:::0;;;;10895:13:::1;:20:::0;;;;10920:18:::1;:27:::0;10579:373::o;4707:201::-;-1:-1:-1;;;;;4791:20:0;;4773:7;4791:20;;;:11;:20;;;;;;;;4787:56;;;-1:-1:-1;;;;;;4820:23:0;;;;;:14;:23;;;;;;;4707:201::o;4787:56::-;-1:-1:-1;;;;;4875:27:0;;;;;;:18;:27;;;;;;4855:48;;:19;:48::i;1715:163::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;1774:16:::1;1834:6:::0;;1813:38:::1;::::0;1774:16;;-1:-1:-1;;;;;1834:6:0::1;::::0;1813:38:::1;::::0;1774:16;;1813:38:::1;1856:6;:17:::0;;-1:-1:-1;;;;;;1856:17:0::1;-1:-1:-1::0;;;;;1856:17:0;;;::::1;::::0;;;::::1;::::0;;1715:163::o;8181:256::-;8272:12;1360:6;;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;8294:6:::1;8304:1;8294:11:::0;8291:81:::1;;8321:45;::::0;-1:-1:-1;;;8321:45:0;;8360:4:::1;8321:45;::::0;::::1;1819:51:1::0;-1:-1:-1;;;;;8321:30:0;::::1;::::0;::::1;::::0;1792:18:1;;8321:45:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8312:54;;8291:81;8383:49;::::0;-1:-1:-1;;;8383:49:0;;8413:10:::1;8383:49;::::0;::::1;11515:51:1::0;11582:18;;;11575:34;;;-1:-1:-1;;;;;8383:29:0;::::1;::::0;::::1;::::0;11488:18:1;;8383:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5918:320::-:0;1013:10;6011:4;6031:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6031:34:0;;;;;;;;;;:53;-1:-1:-1;6031:53:0;6022:103;;;;-1:-1:-1;;;6022:103:0;;12072:2:1;6022: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;;6022:103:0;11870:401:1;6022:103:0;1013:10;6163:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6163:34:0;;;;;;;;;;6130:87;;1013:10;6153:7;;6163:52;;6200:15;;6163:52;:::i;4913:152::-;4991:4;5002:42;1013:10;5026:9;5037:6;5002:9;:42::i;6243:117::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;6313:17:::1;:42:::0;;-1:-1:-1;;;;;;6313:42:0::1;-1:-1:-1::0;;;;;6313:42:0;;;::::1;::::0;;;::::1;::::0;;6243:117::o;7568:207::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;7672:1:::1;7659:10;:14;7651:52;;;::::0;-1:-1:-1;;;7651:52:0;;12478:2:1;7651:52:0::1;::::0;::::1;12460:21:1::0;12517:2;12497:18;;;12490:30;12556:28;12536:18;;;12529:56;12602:18;;7651:52:0::1;12276:350:1::0;7651:52:0::1;7708:21;:31:::0;;;::::1;;-1:-1:-1::0;;;7708:31:0::1;-1:-1:-1::0;;;;7708:31:0;;::::1;::::0;;;::::1;::::0;;;7744:13:::1;:26:::0;7568:207::o;10957:257::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;11051:18:::1;11073:31;11089:15:::0;11073:13;:31:::1;:::i;:::-;11051:53;;11131:2;11117:10;:16;;11109:51;;;::::0;-1:-1:-1;;;11109:51:0;;12833:2:1;11109: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;;11109:51:0::1;12631:346:1::0;11109:51:0::1;-1:-1:-1::0;10503:14:0;:29;10537:15;:32;7976:200::o;7780:191::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;7883:9:::1;7878:89;7894:20:::0;;::::1;7878:89;;;7955:6;7927:11;:25;7939:9;;7949:1;7939:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7927:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7927:25:0;:34;;-1:-1:-1;;7927:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7916:3:::1;::::0;::::1;:::i;:::-;;;7878:89;;;;7780:191:::0;;;:::o;1487:223::-;1339:7;1360:6;-1:-1:-1;;;;;1360:6:0;1013:10;1411:23;1403:68;;;;-1:-1:-1;;;1403:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1570:22:0;::::1;1562:73;;;::::0;-1:-1:-1;;;1562:73:0;;13184:2:1;1562: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;;1562:73:0::1;12982:402:1::0;1562:73:0::1;1666:6;::::0;;1645:38:::1;::::0;-1:-1:-1;;;;;1645:38:0;;::::1;::::0;1666:6;::::1;::::0;1645:38:::1;::::0;::::1;1688:6;:17:::0;;-1:-1:-1;;;;;;1688:17:0::1;-1:-1:-1::0;;;;;1688:17:0;;;::::1;::::0;;;::::1;::::0;;1487:223::o;11877:310::-;-1:-1:-1;;;;;11964:19:0;;11956:68;;;;-1:-1:-1;;;11956:68:0;;13591:2:1;11956: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;;11956:68:0;13389:400:1;11956:68:0;-1:-1:-1;;;;;12037:21:0;;12029:68;;;;-1:-1:-1;;;12029:68:0;;13996:2:1;12029: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;;12029:68:0;13794:398:1;12029:68:0;-1:-1:-1;;;;;12104:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12150:32;;160:25:1;;;12150:32:0;;133:18:1;12150:32:0;;;;;;;;11877:310;;;:::o;12192:962::-;-1:-1:-1;;;;;12272:17:0;;;;;;:11;:17;;;;;;;;12271:18;:38;;;;-1:-1:-1;;;;;;12294:15:0;;;;;;:11;:15;;;;;;;;12293:16;12271:38;12268:97;;;12324:11;;;;12316:43;;;;-1:-1:-1;;;12316:43:0;;14399:2:1;12316:43:0;;;14381:21:1;14438:2;14418:18;;;14411:30;-1:-1:-1;;;14457:18:1;;;14450:50;14517:18;;12316:43:0;14197:344:1;12316:43:0;12375:16;;-1:-1:-1;;;12375:16:0;;;;12374:17;:42;;;;;12403:13;-1:-1:-1;;;;;12395:21:0;:4;-1:-1:-1;;;;;12395:21:0;;;12374:42;:67;;;;-1:-1:-1;12420:21:0;;-1:-1:-1;;;12420:21:0;;;;12374:67;:111;;;;;12472:13;;12445:24;12463:4;12445:9;:24::i;:::-;:40;12374:111;12371:158;;;12492:31;12509:13;;12492:16;:31::i;:::-;-1:-1:-1;;;;;12564:17:0;;12537:12;12564:17;;;:11;:17;;;;;;12552:4;;12564:17;;;:36;;-1:-1:-1;;;;;;12585:15:0;;;;;;:11;:15;;;;;;;;12564:36;12561:93;;;-1:-1:-1;12620:5:0;12634:14;11277;;;11256:18;:35;11318:15;;;11296:19;:37;-1:-1:-1;10503:29:0;;;;10537:32;11219:142;12634:14;12663:15;12680:23;12705:19;12726:23;12751:18;12771:19;12794:28;12805:6;12813:2;12817:4;12794:10;:28::i;:::-;12662:160;;;;;;;;;;;;12829:78;12847:4;12853:2;12857:6;12865:7;12874:15;12891;12829:17;:78::i;:::-;12954:11;12934:17;;:31;;;;:::i;:::-;12914:17;:51;12998:25;;:39;;13026:11;;12998:39;:::i;:::-;12970:25;:67;13048:7;13044:105;;13065:15;:13;:15::i;:::-;13044:105;;;13100:43;13118:10;13137:4;13100:17;:43::i;:::-;12261:893;;;;;;;12192:962;;;:::o;8442:145::-;8483:7;8498:15;8515;8534:19;:17;:19::i;:::-;8497:56;;-1:-1:-1;8497:56:0;-1:-1:-1;8565:17:0;8497:56;;8565:17;:::i;:::-;8558:24;;;;8442:145;:::o;11467:403::-;4013:16;:23;;-1:-1:-1;;;;4013:23:0;-1:-1:-1;;;4013:23:0;;;11563:16:::1;::::0;;11577:1:::1;11563:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11563:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11563:16:0::1;11539:40;;11602:4;11584;11589:1;11584:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11584:23:0::1;;;-1:-1:-1::0;;;;;11584:23:0::1;;;::::0;::::1;11622:15;-1:-1:-1::0;;;;;11622:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11612:4;11617:1;11612:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;11612:32:0::1;;;-1:-1:-1::0;;;;;11612:32:0::1;;;::::0;::::1;11649:62;11666:4;11681:15;11699:11;11649:8;:62::i;:::-;11822:17;::::0;11716:149:::1;::::0;-1:-1:-1;;;11716:149:0;;-1:-1:-1;;;;;11716:15:0::1;:66:::0;::::1;::::0;::::1;::::0;:149:::1;::::0;11788:11;;11805:1:::1;::::0;11812:4;;11822:17;;;::::1;::::0;11845:15:::1;::::0;11716:149:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4047:16:0;:24;;-1:-1:-1;;;;4047:24:0;;;-1:-1:-1;;;;11467:403:0:o;11340:16::-;11219:142::o;9171:797::-;9269:15;9286:23;9311:19;9335:23;9360:18;9380:19;9408:18;9429;;9408:39;;9470:13;-1:-1:-1;;;;;9457:26:0;:9;-1:-1:-1;;;;;9457:26:0;;9454:142;;-1:-1:-1;9504:14:0;;9454:142;;;9543:13;-1:-1:-1;;;;;9533:23:0;:6;-1:-1:-1;;;;;9533:23:0;;9530:66;;-1:-1:-1;9577:13:0;;9530:66;9660:22;3384:3;;9660:22;:::i;:::-;9646:10;9627:14;;9617:7;:24;;;;:::i;:::-;9615:41;;;;:::i;:::-;:68;;;;:::i;:::-;9602:81;-1:-1:-1;9749:22:0;3384:3;;9749:22;:::i;:::-;9734:10;9714:15;;9704:7;:25;;;;:::i;:::-;9702:42;;;;:::i;:::-;:70;;;;:::i;:::-;9688:84;-1:-1:-1;9809:24:0;9688:84;9809:10;:24;:::i;:::-;9797:37;;:7;:37;:::i;:::-;9779:55;;9867:10;:8;:10::i;:::-;9853:24;;:11;:24;:::i;:::-;9839:38;;9902:10;:8;:10::i;:::-;9892:20;;:7;:20;:::i;:::-;9882:30;;9953:10;:8;:10::i;:::-;9935:28;;:15;:28;:::i;:::-;9917:46;;9401:567;9171:797;;;;;;;;;;:::o;13159:594::-;-1:-1:-1;;;;;13339:24:0;;;;;;:18;:24;;;;;;:35;;13367:7;;13339:35;:::i;:::-;-1:-1:-1;;;;;13309:24:0;;;;;;:18;:24;;;;;;;;:65;;;;13385:11;:17;;;;;;13381:98;;;-1:-1:-1;;;;;13438:20:0;;;;;;:14;:20;;;;;;:35;;13466:7;;13438:35;:::i;:::-;-1:-1:-1;;;;;13412:20:0;;;;;;:14;:20;;;;;:61;13381:98;-1:-1:-1;;;;;13489:15:0;;;;;;:11;:15;;;;;;;;13485:104;;;-1:-1:-1;;;;;13540:18:0;;;;;;:14;:18;;;;;;:43;;13568:15;;13540:43;:::i;:::-;-1:-1:-1;;;;;13514:18:0;;;;;;:14;:18;;;;;:69;13485:104;-1:-1:-1;;;;;13623:22:0;;;;;;:18;:22;;;;;;:43;;13651:15;;13623:43;:::i;:::-;-1:-1:-1;;;;;13593:22:0;;;;;;:18;:22;;;;;:73;13676:19;;13673:76;;13722:2;-1:-1:-1;;;;;13707:35:0;13716:4;-1:-1:-1;;;;;13707:35:0;;13726:15;13707:35;;;;160:25:1;;148:2;133:18;;14:177;13707:35:0;;;;;;;;13673:76;13159:594;;;;;;:::o;11367:95::-;11405:52;11417:18;;11437:19;;10503:14;:29;;;;10537:15;:32;10423:151;9973:445;10056:26;10097:10;:8;:10::i;:::-;10085:22;;:9;:22;:::i;:::-;-1:-1:-1;;;;;10149:34:0;;;;;;:18;:34;;;;;;10056:51;;-1:-1:-1;10149:55:0;;10056:51;;10149:55;:::i;:::-;-1:-1:-1;;;;;10112:34:0;;;;;;:18;:34;;;;;;;;:92;;;;10214:11;:27;;;;;;10211:118;;;-1:-1:-1;;;;;10281:30:0;;;;;;:14;:30;;;;;;:42;;10314:9;;10281:42;:::i;:::-;-1:-1:-1;;;;;10248:30:0;;;;;;:14;:30;;;;;:75;10211:118;10336:13;;10333:81;;10361:47;;160:25:1;;;-1:-1:-1;;;;;10361:47:0;;;10370:10;;10361:47;;148:2:1;133:18;10361:47:0;14:177:1;8592:572:0;8683:17;;8642:7;;;;;2873:12;2821:2;2873;:12;:::i;:::-;2865:20;;:5;:20;:::i;:::-;8705:29;;8744:9;8739:300;8763:9;:16;8759:20;;8739:300;;;8831:7;8796:18;:32;8815:9;8825:1;8815:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8815:12:0;8796:32;;;;;;;;;;;;;:42;;:84;;;8873:7;8842:14;:28;8857:9;8867:1;8857:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8857:12:0;8842:28;;;;;;;;;;;;;:38;8796:84;8792:129;;;8890:17;;2873:12;2821:2;2873;:12;:::i;:::-;2865:20;;:5;:20;:::i;:::-;8882:39;;;;;;;8592:572;;:::o;8792:129::-;8947:18;:32;8966:9;8976:1;8966:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8966:12:0;8947:32;;;;;;;;;;;;;8937:42;;:7;:42;:::i;:::-;8927:52;;9005:14;:28;9020:9;9030:1;9020:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;9020:12:0;9005:28;;;;;;;;;;;;;8995:38;;:7;:38;:::i;:::-;8985:48;-1:-1:-1;8781:3:0;;;;:::i;:::-;;;;8739:300;;;-1:-1:-1;2873:12:0;2821:2;2873;:12;:::i;:::-;2865:20;;:5;:20;:::i;:::-;9058:17;;:29;;;;:::i;:::-;9047:7;:41;9043:86;;;9098:17;;2873:12;2821:2;2873;:12;:::i;:::-;2865:20;;:5;:20;:::i;:::-;9090:39;;;;;;8592:572;;:::o;9043:86::-;9142:7;;9151;;-1:-1:-1;8592:572:0;-1:-1:-1;8592: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://543b2d88e07e5e1a023746233f8609d7bc793027d97fe7112d6ee98bf502ac5b
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.