Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 162 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 19331019 | 332 days ago | IN | 0 ETH | 0.00266482 | ||||
Approve | 19331013 | 332 days ago | IN | 0 ETH | 0.00298051 | ||||
Approve | 19110616 | 363 days ago | IN | 0 ETH | 0.00041817 | ||||
Approve | 19110594 | 363 days ago | IN | 0 ETH | 0.00047438 | ||||
Approve | 19110577 | 363 days ago | IN | 0 ETH | 0.00054274 | ||||
Approve | 19110567 | 363 days ago | IN | 0 ETH | 0.00059885 | ||||
Approve | 19110559 | 363 days ago | IN | 0 ETH | 0.00053836 | ||||
Approve | 19110558 | 363 days ago | IN | 0 ETH | 0.00051183 | ||||
Approve | 19110556 | 363 days ago | IN | 0 ETH | 0.00053627 | ||||
Approve | 19110547 | 363 days ago | IN | 0 ETH | 0.00051252 | ||||
Approve | 19110547 | 363 days ago | IN | 0 ETH | 0.00055771 | ||||
Approve | 19110545 | 363 days ago | IN | 0 ETH | 0.00053823 | ||||
Approve | 19110544 | 363 days ago | IN | 0 ETH | 0.00070837 | ||||
Approve | 19110542 | 363 days ago | IN | 0 ETH | 0.00060927 | ||||
Approve | 19110542 | 363 days ago | IN | 0 ETH | 0.00060927 | ||||
Approve | 19110539 | 363 days ago | IN | 0 ETH | 0.0004856 | ||||
Approve | 19110539 | 363 days ago | IN | 0 ETH | 0.00050701 | ||||
Approve | 19110539 | 363 days ago | IN | 0 ETH | 0.00053906 | ||||
Approve | 19110539 | 363 days ago | IN | 0 ETH | 0.00071769 | ||||
Approve | 19110538 | 363 days ago | IN | 0 ETH | 0.00187242 | ||||
Approve | 19110536 | 363 days ago | IN | 0 ETH | 0.00047725 | ||||
Approve | 19110536 | 363 days ago | IN | 0 ETH | 0.00061264 | ||||
Approve | 19110536 | 363 days ago | IN | 0 ETH | 0.00070599 | ||||
Approve | 19110534 | 363 days ago | IN | 0 ETH | 0.00048535 | ||||
Approve | 19110530 | 363 days ago | IN | 0 ETH | 0.00066784 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
14589151 | 1017 days ago | 0.02298104 ETH | ||||
14589151 | 1017 days ago | 0.00984902 ETH | ||||
14589151 | 1017 days ago | 0.03283007 ETH | ||||
14587189 | 1017 days ago | 0.02760801 ETH | ||||
14587189 | 1017 days ago | 0.011832 ETH | ||||
14587189 | 1017 days ago | 0.03944002 ETH | ||||
14586605 | 1017 days ago | 0.03375576 ETH | ||||
14586605 | 1017 days ago | 0.01446675 ETH | ||||
14586605 | 1017 days ago | 0.04822252 ETH | ||||
14582325 | 1018 days ago | 0.03772884 ETH | ||||
14582325 | 1018 days ago | 0.0161695 ETH | ||||
14582325 | 1018 days ago | 0.05389835 ETH | ||||
14580805 | 1018 days ago | 0.04602617 ETH | ||||
14580805 | 1018 days ago | 0.0197255 ETH | ||||
14580805 | 1018 days ago | 0.06575168 ETH | ||||
14580297 | 1018 days ago | 0.03330206 ETH | ||||
14580297 | 1018 days ago | 0.01427231 ETH | ||||
14580297 | 1018 days ago | 0.04757437 ETH | ||||
14579252 | 1018 days ago | 0.04446941 ETH | ||||
14579252 | 1018 days ago | 0.01905832 ETH | ||||
14579252 | 1018 days ago | 0.06352774 ETH | ||||
14579169 | 1018 days ago | 0.03973456 ETH | ||||
14579169 | 1018 days ago | 0.01702909 ETH | ||||
14579169 | 1018 days ago | 0.05676365 ETH | ||||
14579162 | 1018 days ago | 0.04710633 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Orangutan
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-13 */ /** Welcome Home Apes $RANG is the Community Token for Apes. We started you off with 1 ETH in liquidity, a website and the tokenomics. There is a 10% tax, 7% is for marketing, buybacks and burns which we will do throughout to help all the apes. The other 3% is for development. Development you ask? What a smart ape. That is up to you, the Orangutans! Form a telegram and/or discord. Create twitter and other socials. Leave a comment on the deployer wallet and it will be added to the website. Now about development. This is a community project for apes. Come together, brainstorm and sling some shit around. We will be watching. If you come together as a core group and discover a great utility then we will build it for you. That is all for now, we may leave you messages as it goes so please check around. Website - https://rangutan.io/ */ //SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.7; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface ERC20 { function totalSupply() external view returns (uint _totalSupply); function balanceOf(address _owner) external view returns (uint balance); function transfer(address _to, uint _value) external returns (bool success); function transferFrom(address _from, address _to, uint _value) external returns (bool success); function approve(address _spender, uint _value) external returns (bool success); function allowance(address _owner, address _spender) external view returns (uint remaining); event Transfer(address indexed _from, address indexed _to, uint _value); event Approval(address indexed _owner, address indexed _spender, uint _value); } interface IUniswapFactory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapRouter01 { function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function factory() external pure returns (address); function WETH() external pure returns (address); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getamountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getamountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getamountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getamountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapRouter02 is IUniswapRouter01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; } contract smart { using SafeMath for uint; address public router_address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IUniswapRouter02 public router = IUniswapRouter02(router_address); function create_weth_pair(address token) private returns (address, IUniswapV2Pair) { address pair_address = IUniswapFactory(router.factory()).createPair(token, router.WETH()); return (pair_address, IUniswapV2Pair(pair_address)); } function get_weth_reserve(address pair_address) private view returns(uint, uint) { IUniswapV2Pair pair = IUniswapV2Pair(pair_address); uint112 token_reserve; uint112 native_reserve; uint32 last_timestamp; (token_reserve, native_reserve, last_timestamp) = pair.getReserves(); return (token_reserve, native_reserve); } function get_weth_price_impact(address token, uint amount, bool sell) private view returns(uint) { address pair_address = IUniswapFactory(router.factory()).getPair(token, router.WETH()); (uint res_token, uint res_weth) = get_weth_reserve(pair_address); uint impact; if(sell) { impact = (amount.mul(100)).div(res_token); } else { impact = (amount.mul(100)).div(res_weth); } return impact; } } contract protected { bool public bot_smasher = true; bool public trade_enabled = false; mapping (address => bool) public is_auth; function authorized(address addy) public view returns(bool) { return is_auth[addy]; } function set_authorized(address addy, bool booly) public onlyAuth { is_auth[addy] = booly; } modifier onlyAuth() { require( is_auth[msg.sender] || msg.sender==owner, "not owner"); _; } address public owner; address public developer; modifier onlyDev { require(msg.sender==developer); _; } modifier onlyOwner() { require(msg.sender==owner, "not owner"); _; } bool public locked; modifier safe() { require(!locked, "reentrant"); locked = true; _; locked = false; } receive() external payable {} fallback() external payable {} } contract Orangutan is smart, protected, ERC20 { using SafeMath for uint; using SafeMath for uint8; mapping(address => bool) public tax_free; mapping(address => bool) public lock_free; mapping(address => bool) public is_black; mapping(address => bool) public is_free_from_max_tx; mapping(address => bool) public is_free_from_max_wallet; mapping(address => bool) public _excludeFromLimit; mapping(address => mapping(uint256 => uint256)) public sold; string public constant _name = 'Orangutan'; string public constant _symbol = 'RANG'; uint8 public constant _decimals = 18; uint256 public constant TIME_STEP = 1 days; uint256 public constant InitialSupply= 100 * (10**6) * (10**_decimals); uint256 public _circulatingSupply= InitialSupply; address public constant UniswapRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public constant Dead = 0x000000000000000000000000000000000000dEaD; address public marketing = payable(0x662Ae79edbE9d4EF6569dB9189224B59483c13e4); mapping(address => uint) public last_tx; bool public pegged = true; bool public manual_swap = false; uint8 public buy_tax = 10; uint8 public sell_tax = 10; uint8 public transfer_tax = 10; uint8 public max_wallet = 1; uint8 public max_perK = 10; uint256 public startTime; uint256 public sellLimit = 25; uint256 public limitDenominator = 10000; uint8 devShare = 3; uint8 marketingShare = 7; uint8 total_share = devShare + marketingShare; uint public swap_treshold = (_circulatingSupply.div(300)); mapping (address => uint256) public _balances; mapping (address => mapping (address => uint256)) public _allowances; modifier checkLimit(address from, uint256 value) { if(!_excludeFromLimit[from]) { require(sold[from][getCurrentDay()] + value <= getUserSellLimit(), "Cannot sell or transfer more than limit."); } _; } address public pair_address; IUniswapV2Pair public pair; constructor() { owner = payable(msg.sender); developer = payable(msg.sender); is_auth[owner] = true; pair_address = IUniswapFactory(router.factory()).createPair(address(this), router.WETH()); pair = IUniswapV2Pair(pair_address); tax_free[msg.sender] = true; tax_free[marketing] = true; _excludeFromLimit[marketing] = true; _excludeFromLimit[developer] = true; _excludeFromLimit[address(this)] = true; _excludeFromLimit[pair_address] = true; _excludeFromLimit[router_address] = true; is_free_from_max_wallet[marketing] = true; is_free_from_max_wallet[pair_address] = true; is_free_from_max_tx[marketing] = true; _balances[developer] = _circulatingSupply; emit Transfer(Dead, address(this), _circulatingSupply); _approve(address(this), address(router), _circulatingSupply); _approve(address(owner), address(router), _circulatingSupply); } function _transfer(address sender, address recipient, uint amount) private checkLimit(sender, amount) { bool isExcluded = (tax_free[sender] || tax_free[recipient] || is_auth[sender] || is_auth[recipient]); bool isContractTransfer=(sender==address(this) || recipient==address(this)); bool isLiquidityTransfer = ((sender == pair_address && recipient == UniswapRouter) || (recipient == pair_address && sender == UniswapRouter)); sold[sender][getCurrentDay()] = sold[sender][getCurrentDay()].add(amount); if (isExcluded || isContractTransfer || isLiquidityTransfer) { _feelessTransfer(sender, recipient, amount); } else { _taxedTransfer(sender, recipient, amount); } } function max_tx() public view returns (uint) { return ((_circulatingSupply * max_perK).div(1000)); } function _taxedTransfer(address sender, address recipient, uint amount) private { require(!is_black[sender] && !is_black[recipient], "Blacklisted"); if(!bot_smasher) { require(trade_enabled, "STOP"); } else { if(!trade_enabled) { emit Transfer(sender, recipient, 0); return; } } if(!is_free_from_max_tx[sender]) { require(amount <= max_tx()); } if(!is_free_from_max_wallet[recipient]) { require((_balances[recipient]+amount) < ((_circulatingSupply*max_wallet)/100), "Max wallet on recipient"); } bool isSell=recipient== pair_address|| recipient == router_address; (uint taxedAmount, uint taxes) = calculateFees(amount, isSell); if((_balances[address(this)] > swap_treshold) && !manual_swap && !locked) { if(isSell && !manual_swap) { swap_taxes(amount); } } _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(taxedAmount); _balances[address(this)] = _balances[address(this)].add(taxes); emit Transfer(sender, address(this), taxes); emit Transfer(sender, recipient, taxedAmount); } function calculateFees(uint amount, bool isSell) private view returns (uint taxedAmount_, uint taxes_) { uint8 tax; if(isSell) { tax = sell_tax; } else { tax = buy_tax; } uint taxes_coin = (amount*tax)/100; uint taxed_amount = amount - taxes_coin; return (taxed_amount, taxes_coin); } function swap_taxes(uint256 tx_amount) private safe{ uint256 contractBalance = _balances[address(this)]; uint256 amount_to_swap = (swap_treshold.mul(75)).div(100); if(amount_to_swap > tx_amount) { if(pegged) { amount_to_swap = tx_amount; } } if(contractBalance<amount_to_swap){ return; } uint256 initialETHBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount_to_swap, 0, path, address(this), block.timestamp ); uint256 newETH=(address(this).balance - initialETHBalance); uint256 marketingSplit = newETH.mul(marketingShare).div(total_share); uint256 devSplit = newETH - marketingSplit; payable(developer).transfer(devSplit); payable(marketing).transfer(marketingSplit); } function _feelessTransfer(address sender, address recipient, uint amount) private { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function lfg() public onlyDev { require(trade_enabled == false); bot_smasher = false; trade_enabled = true; } function emergency_withdraw() public onlyAuth { uint256 balance = address(this).balance; payable(developer).transfer(balance); } function set_shares(uint8 dev, uint8 market) public onlyAuth { devShare = dev; marketingShare = market; } function set_taxes(uint8 buy, uint8 sell) public onlyAuth { buy_tax = buy; sell_tax = sell; require(buy > 0 && sell > 0, "At least 1"); require(buy< 15 && sell < 15, "No honeypot"); } function set_manual_swap(bool booly) public onlyAuth { manual_swap = booly; } function totalSupply() external view override returns (uint256) { return _circulatingSupply; } function execute_manual_swap(uint256 amount) public onlyAuth { require(amount < _balances[address(this)], "dude there are not enough token"); swap_taxes(amount); } function rescue_tokens(address tknAddress) public onlyAuth { ERC20 token = ERC20(tknAddress); uint256 ourBalance = token.balanceOf(address(this)); require(ourBalance>0, "No tokens in our balance"); token.transfer(msg.sender, ourBalance); } function set_max_tx(uint8 maxtx) public onlyAuth { max_perK = maxtx; require(maxtx >= 5, "At least 5, remember that it's /1000, so 5 = 0.5%"); } function set_max_wallet(uint8 maxwallet) public onlyAuth { max_wallet = maxwallet; require(maxwallet >= 1, "At least 1, remember that it's /100, so 1 = 1%"); } function set_free_from_max_tx(address addy, bool booly) public onlyAuth { is_free_from_max_tx[addy] = booly; } function set_free_from_sell_limit(address addy, bool booly) public onlyAuth { _excludeFromLimit[addy] = booly; } function set_free_from_max_wallet(address addy, bool booly) public onlyAuth { is_free_from_max_wallet[addy] = booly; } function set_free_tax(address addy, bool booly) public onlyAuth { tax_free[addy] = booly; } function set_owner(address newowner) public onlyDev { owner = newowner; is_auth[newowner] = true; } function control_blacklist(address to_control, bool booly) public onlyAuth { require(!(to_control==developer)); is_black[to_control] = booly; } function getCurrentDay() public view returns (uint256) { return minZero(block.timestamp, startTime).div(TIME_STEP); } function getUserSellLimit() public view returns (uint256) { return _circulatingSupply.mul(sellLimit).div(limitDenominator); } function setSellLimit(uint256 _sellLimit) public onlyAuth { require(_sellLimit >= 5 && _sellLimit <= 10000, "Invalid sell limit"); sellLimit = _sellLimit; } function fire_unleashed(uint256 amount) public onlyAuth { require(_balances[msg.sender] >= amount); _balances[msg.sender] -= amount; _circulatingSupply -= amount; emit Transfer(address(this), Dead, amount); } function minZero(uint a, uint b) private pure returns(uint) { if (a > b) { return a - b; } else { return 0; } } function set_pegged_swap(bool booly) public onlyAuth { pegged = booly; } function getOwner() external view returns (address) { return owner; } function name() external pure returns (string memory) { return _name; } function symbol() external pure returns (string memory) { return _symbol; } function decimals() external pure returns (uint8) { return _decimals; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address _owner, address spender) external view override returns (uint256) { return _allowances[_owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address _owner, address spender, uint256 amount) private { require(_owner != address(0), "Approve from zero"); require(spender != address(0), "Approve to zero"); _allowances[_owner][spender] = amount; emit Approval(_owner, spender, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount, "Transfer > allowance"); _approve(sender, msg.sender, currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 currentAllowance = _allowances[msg.sender][spender]; require(currentAllowance >= subtractedValue, "<0 allowance"); _approve(msg.sender, spender, currentAllowance - subtractedValue); return true; } }
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":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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"Dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UniswapRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludeFromLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"addy","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bot_smasher","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_control","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"control_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"developer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency_withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"execute_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fire_unleashed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"is_auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_black","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"is_free_from_max_wallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"last_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lfg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lock_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual_swap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_perK","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pegged","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tknAddress","type":"address"}],"name":"rescue_tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sell_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellLimit","type":"uint256"}],"name":"setSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_from_sell_limit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_free_tax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_manual_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxtx","type":"uint8"}],"name":"set_max_tx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxwallet","type":"uint8"}],"name":"set_max_wallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newowner","type":"address"}],"name":"set_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_pegged_swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"dev","type":"uint8"},{"internalType":"uint8","name":"market","type":"uint8"}],"name":"set_shares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"set_taxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"sold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swap_treshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tax_free","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trade_enabled","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":"transfer_tax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600180546001600160b01b03191674017a250d5630b4cf539739df2c5dacb4c659f2488d1790556200005f6012600a62000661565b6200006f906305f5e10062000720565b600c55600d805473662ae79edbe9d4ef6569db9189224b59483c13e46001600160a01b0319909116179055600f805466ffffffffffffff1916660a010a0a0a000117905560196011556127106012556013805461ffff19166107031790819055620000e59060ff610100909104166003620005cd565b601360026101000a81548160ff021916908360ff1602179055506200011d61012c600c546200048960201b62001bbd1790919060201c565b6014553480156200012d57600080fd5b5060038054336001600160a01b031991821681179092556004805490911682178155600091825260026020908152604092839020805460ff1916600190811790915554835163c45a015560e01b815293516001600160a01b039091169363c45a015593818101939291829003018186803b158015620001ab57600080fd5b505afa158015620001c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e691906200059b565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024457600080fd5b505afa15801562000259573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027f91906200059b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002c857600080fd5b505af1158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030391906200059b565b601780546001600160a01b039283166001600160a01b03199182168117835560188054909216179055336000908152600560209081526040808320805460ff199081166001908117909255600d8054881686528386208054831684179055805488168652600a855283862080548316841790556004805489168752848720805484168517905530808852858820805485168617905588548a168852858820805485168617905587548a168852858820805485168617905582548a16885260098752858820805485168617905597548916875284872080548416851790559054881686526008855283862080549092169092179055600c549054909516835260158252918290208490559051928352909161dead917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600154600c54620004619130916001600160a01b0390911690620004a0565b600354600154600c5462000483926001600160a01b03908116921690620004a0565b62000758565b6000620004978284620005f5565b90505b92915050565b6001600160a01b038316620004f05760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b60448201526064015b60405180910390fd5b6001600160a01b0382166200053a5760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401620004e7565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620005ae57600080fd5b81516001600160a01b0381168114620005c657600080fd5b9392505050565b600060ff821660ff84168060ff03821115620005ed57620005ed62000742565b019392505050565b6000826200061357634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620006595781600019048211156200063d576200063d62000742565b808516156200064b57918102915b93841c93908002906200061d565b509250929050565b60006200049760ff8416836000826200067d575060016200049a565b816200068c575060006200049a565b8160018114620006a55760028114620006b057620006d0565b60019150506200049a565b60ff841115620006c457620006c462000742565b50506001821b6200049a565b5060208310610133831016604e8410600b8410161715620006f5575081810a6200049a565b62000701838362000618565b806000190482111562000718576200071862000742565b029392505050565b60008160001904831182151516156200073d576200073d62000742565b500290565b634e487b7160e01b600052601160045260246000fd5b612be880620007686000396000f3fe6080604052600436106104105760003560e01c8063893d20e81161021c578063bfceae6311610122578063cf309012116100b0578063f4ea55ab11610077578063f4ea55ab14610dd1578063f4f5fcb514610e01578063f887ea4014610e21578063fab2e05414610e41578063fafab66514610e6157005b8063cf30901214610cf2578063d28d885214610d13578063d46f2f6614610d48578063dd62ed3e14610d68578063e717fc3014610dae57005b8063c78dc6fd116100f4578063c78dc6fd14610c67578063c81c6edc14610c86578063ca4b208b14610c9c578063cbc1cfd214610cbc578063cbe7003014610cd157005b8063bfceae6314610bcc578063c01bb48b14610bfc578063c664c31d14610c1d578063c7639d8014610c3f57005b8063a457c2d7116101aa578063af1bb5c011610171578063af1bb5c014610aff578063b09f126614610b1f578063b0ef593714610b4f578063b544d2e614610b6f578063b918161114610b9357005b8063a457c2d714610a4f578063a8aa1b3114610a6f578063a9059cbb14610a8f578063a9bf2c0914610aaf578063ad95fc8f14610acf57005b806393505052116101ee578063935050521461099b578063952eb8a7146109bc57806395d89b41146109ec578063a201b2a714610a19578063a253c06e14610a3957005b8063893d20e8146109285780638da5cb5b146109465780638f793cb91461096657806391e96a301461097b57005b80633e6968b6116103215780635bd263e7116102af57806378e979251161027657806378e979251461088c5780637b160863146108a25780637cb97b2b146108c2578063826c89bd146108e257806382c4767b1461091257005b80635bd263e7146107d45780636ebcf607146107f457806370a082311461082157806370bfcf401461085757806370fbc7121461087757005b80634147c6a7116102f35780634147c6a7146107165780634edebbba146107365780634f91e48c1461075657806357d8ae821461076c5780635b0833cc1461079c57005b80633e6968b61461069f5780633e935fe8146106b45780633f27cc48146106c95780633fe7e33c146106e957005b806326e766131161039e57806332424aa31161037057806332424aa31461061357806332bc298c1461062857806334184e261461063f578063395093511461065f5780633a32fea81461067f57005b806326e76613146105795780632bfe8742146105995780632d3e474a146105b9578063313ce567146105f157005b806313f27383116103e257806313f27383146104e957806317668f1b146104ff57806318160ddd1461052f5780631eb25d131461054457806323b872dd1461055957005b8063024c2ddd1461041957806306fdde0314610464578063090786131461049f578063095ea7b3146104c957005b3661041757005b005b34801561042557600080fd5b5061045161043436600461276e565b601660209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561047057600080fd5b5060408051808201909152600981526827b930b733baba30b760b91b60208201525b60405161045b91906128fc565b3480156104ab57600080fd5b50600f546104b99060ff1681565b604051901515815260200161045b565b3480156104d557600080fd5b506104b96104e4366004612816565b610e81565b3480156104f557600080fd5b5061045160145481565b34801561050b57600080fd5b506104b961051a366004612734565b60056020526000908152604090205460ff1681565b34801561053b57600080fd5b50600c54610451565b34801561055057600080fd5b50610451610e98565b34801561056557600080fd5b506104b96105743660046127a7565b610eb5565b34801561058557600080fd5b506104176105943660046128c9565b610f51565b3480156105a557600080fd5b506104176105b43660046127e8565b610fb9565b3480156105c557600080fd5b50600d546105d9906001600160a01b031681565b6040516001600160a01b03909116815260200161045b565b3480156105fd57600080fd5b5060125b60405160ff909116815260200161045b565b34801561061f57600080fd5b50610601601281565b34801561063457600080fd5b506104516201518081565b34801561064b57600080fd5b506017546105d9906001600160a01b031681565b34801561066b57600080fd5b506104b961067a366004612816565b611028565b34801561068b57600080fd5b5061041761069a3660046127e8565b61105f565b3480156106ab57600080fd5b506104516110ce565b3480156106c057600080fd5b506104516110ee565b3480156106d557600080fd5b506104176106e43660046127e8565b61110d565b3480156106f557600080fd5b50610451610704366004612734565b600e6020526000908152604090205481565b34801561072257600080fd5b50600f546106019062010000900460ff1681565b34801561074257600080fd5b50610417610751366004612842565b61117c565b34801561076257600080fd5b5061045160115481565b34801561077857600080fd5b506104b9610787366004612734565b60096020526000908152604090205460ff1681565b3480156107a857600080fd5b506104516107b7366004612816565b600b60209081526000928352604080842090915290825290205481565b3480156107e057600080fd5b506104176107ef3660046127e8565b6111d3565b34801561080057600080fd5b5061045161080f366004612734565b60156020526000908152604090205481565b34801561082d57600080fd5b5061045161083c366004612734565b6001600160a01b031660009081526015602052604090205490565b34801561086357600080fd5b50610417610872366004612842565b61125d565b34801561088357600080fd5b506104516112bb565b34801561089857600080fd5b5061045160105481565b3480156108ae57600080fd5b506104176108bd3660046128ae565b6112e3565b3480156108ce57600080fd5b506104176108dd366004612734565b6113b8565b3480156108ee57600080fd5b506104b96108fd366004612734565b60076020526000908152604090205460ff1681565b34801561091e57600080fd5b506105d961dead81565b34801561093457600080fd5b506003546001600160a01b03166105d9565b34801561095257600080fd5b506003546105d9906001600160a01b031681565b34801561097257600080fd5b50610417611409565b34801561098757600080fd5b506104176109963660046128ae565b61144d565b3480156109a757600080fd5b50600f54610601906301000000900460ff1681565b3480156109c857600080fd5b506104b96109d7366004612734565b60086020526000908152604090205460ff1681565b3480156109f857600080fd5b5060408051808201909152600481526352414e4760e01b6020820152610492565b348015610a2557600080fd5b50610417610a3436600461287c565b61151a565b348015610a4557600080fd5b50610451600c5481565b348015610a5b57600080fd5b506104b9610a6a366004612816565b6115e1565b348015610a7b57600080fd5b506018546105d9906001600160a01b031681565b348015610a9b57600080fd5b506104b9610aaa366004612816565b61165d565b348015610abb57600080fd5b50610417610aca36600461287c565b61166a565b348015610adb57600080fd5b506104b9610aea366004612734565b60066020526000908152604090205460ff1681565b348015610b0b57600080fd5b50610417610b1a366004612734565b611707565b348015610b2b57600080fd5b506104926040518060400160405280600481526020016352414e4760e01b81525081565b348015610b5b57600080fd5b50610417610b6a3660046128c9565b61189f565b348015610b7b57600080fd5b50600f54610601906601000000000000900460ff1681565b348015610b9f57600080fd5b506104b9610bae366004612734565b6001600160a01b031660009081526002602052604090205460ff1690565b348015610bd857600080fd5b506104b9610be7366004612734565b600a6020526000908152604090205460ff1681565b348015610c0857600080fd5b506001546104b990600160a81b900460ff1681565b348015610c2957600080fd5b50600f5461060190640100000000900460ff1681565b348015610c4b57600080fd5b506105d9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610c7357600080fd5b50600f546104b990610100900460ff1681565b348015610c9257600080fd5b5061045160125481565b348015610ca857600080fd5b506004546105d9906001600160a01b031681565b348015610cc857600080fd5b506104176119b6565b348015610cdd57600080fd5b506001546104b990600160a01b900460ff1681565b348015610cfe57600080fd5b506004546104b990600160a01b900460ff1681565b348015610d1f57600080fd5b506104926040518060400160405280600981526020016827b930b733baba30b760b91b81525081565b348015610d5457600080fd5b506000546105d9906001600160a01b031681565b348015610d7457600080fd5b50610451610d8336600461276e565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b348015610dba57600080fd5b50600f546106019065010000000000900460ff1681565b348015610ddd57600080fd5b506104b9610dec366004612734565b60026020526000908152604090205460ff1681565b348015610e0d57600080fd5b50610417610e1c3660046127e8565b611a34565b348015610e2d57600080fd5b506001546105d9906001600160a01b031681565b348015610e4d57600080fd5b50610417610e5c36600461287c565b611aa3565b348015610e6d57600080fd5b50610417610e7c3660046127e8565b611b4e565b6000610e8e338484611bd0565b5060015b92915050565b610ea46012600a612a62565b610eb2906305f5e100612b0d565b81565b6000610ec2848484611cc4565b6001600160a01b038416600090815260166020908152604080832033845290915290205482811015610f325760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610f468533610f418685612b2c565b611bd0565b506001949350505050565b3360009081526002602052604090205460ff1680610f7957506003546001600160a01b031633145b610f955760405162461bcd60e51b8152600401610f2990612951565b6013805460ff9283166101000261ffff199091169290931691909117919091179055565b3360009081526002602052604090205460ff1680610fe157506003546001600160a01b031633145b610ffd5760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b3360008181526016602090815260408083206001600160a01b03871684529091528120549091610e8e918590610f419086906129e5565b3360009081526002602052604090205460ff168061108757506003546001600160a01b031633145b6110a35760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b60006110e9620151806110e342601054611f63565b90611bbd565b905090565b60006110e96012546110e3601154600c54611f8690919063ffffffff16565b3360009081526002602052604090205460ff168061113557506003546001600160a01b031633145b6111515760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806111a457506003546001600160a01b031633145b6111c05760405162461bcd60e51b8152600401610f2990612951565b600f805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806111fb57506003546001600160a01b031633145b6112175760405162461bcd60e51b8152600401610f2990612951565b6004546001600160a01b038381169116141561123257600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061128557506003546001600160a01b031633145b6112a15760405162461bcd60e51b8152600401610f2990612951565b600f80549115156101000261ff0019909216919091179055565b60006110e96103e8600f60069054906101000a900460ff1660ff16600c546110e39190612b0d565b3360009081526002602052604090205460ff168061130b57506003546001600160a01b031633145b6113275760405162461bcd60e51b8152600401610f2990612951565b600f805466ff0000000000001916660100000000000060ff841690810291909117909155600511156113b55760405162461bcd60e51b815260206004820152603160248201527f4174206c6561737420352c2072656d656d62657220746861742069742773202f604482015270313030302c20736f2035203d20302e352560781b6064820152608401610f29565b50565b6004546001600160a01b031633146113cf57600080fd5b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600260205260409020805460ff19166001179055565b6004546001600160a01b0316331461142057600080fd5b600154600160a81b900460ff161561143757600080fd5b6001805461ffff60a01b1916600160a81b179055565b3360009081526002602052604090205460ff168061147557506003546001600160a01b031633145b6114915760405162461bcd60e51b8152600401610f2990612951565b600f805465ff000000000019166501000000000060ff841690810291909117909155600111156113b55760405162461bcd60e51b815260206004820152602e60248201527f4174206c6561737420312c2072656d656d62657220746861742069742773202f60448201526d3130302c20736f2031203d20312560901b6064820152608401610f29565b3360009081526002602052604090205460ff168061154257506003546001600160a01b031633145b61155e5760405162461bcd60e51b8152600401610f2990612951565b3360009081526015602052604090205481111561157a57600080fd5b3360009081526015602052604081208054839290611599908490612b2c565b9250508190555080600c60008282546115b29190612b2c565b909155505060405181815261dead903090600080516020612b938339815191529060200160405180910390a350565b3360009081526016602090815260408083206001600160a01b0386168452909152812054828110156116445760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610f29565b6116533385610f418685612b2c565b5060019392505050565b6000610e8e338484611cc4565b3360009081526002602052604090205460ff168061169257506003546001600160a01b031633145b6116ae5760405162461bcd60e51b8152600401610f2990612951565b600581101580156116c157506127108111155b6117025760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081cd95b1b081b1a5b5a5d60721b6044820152606401610f29565b601155565b3360009081526002602052604090205460ff168061172f57506003546001600160a01b031633145b61174b5760405162461bcd60e51b8152600401610f2990612951565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c79190612895565b9050600081116118195760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610f29565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561186157600080fd5b505af1158015611875573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611899919061285f565b50505050565b3360009081526002602052604090205460ff16806118c757506003546001600160a01b031633145b6118e35760405162461bcd60e51b8152600401610f2990612951565b600f805463ffff000019166201000060ff85811691820263ff0000001916929092176301000000928516929092029190911790915515801590611929575060008160ff16115b6119625760405162461bcd60e51b815260206004820152600a6024820152694174206c65617374203160b01b6044820152606401610f29565b600f8260ff161080156119785750600f8160ff16105b6119b25760405162461bcd60e51b815260206004820152600b60248201526a139bc81a1bdb995e5c1bdd60aa1b6044820152606401610f29565b5050565b3360009081526002602052604090205460ff16806119de57506003546001600160a01b031633145b6119fa5760405162461bcd60e51b8152600401610f2990612951565b60045460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156119b2573d6000803e3d6000fd5b3360009081526002602052604090205460ff1680611a5c57506003546001600160a01b031633145b611a785760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff1680611acb57506003546001600160a01b031633145b611ae75760405162461bcd60e51b8152600401610f2990612951565b306000908152601560205260409020548110611b455760405162461bcd60e51b815260206004820152601f60248201527f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e006044820152606401610f29565b6113b581611f92565b3360009081526002602052604090205460ff1680611b7657506003546001600160a01b031633145b611b925760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000611bc982846129fd565b9392505050565b6001600160a01b038316611c1a5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610f29565b6001600160a01b038216611c625760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610f29565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600a60205260409020548390829060ff16611d8a57611cf06110ee565b6001600160a01b0383166000908152600b602052604081208391611d126110ce565b815260200190815260200160002054611d2b91906129e5565b1115611d8a5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160448201526737103634b6b4ba1760c11b6064820152608401610f29565b6001600160a01b03851660009081526005602052604081205460ff1680611dc957506001600160a01b03851660009081526005602052604090205460ff165b80611dec57506001600160a01b03861660009081526002602052604090205460ff165b80611e0f57506001600160a01b03851660009081526002602052604090205460ff165b905060006001600160a01b038716301480611e3257506001600160a01b03861630145b6017549091506000906001600160a01b038981169116148015611e7157506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b80611eb057506017546001600160a01b038881169116148015611eb057506001600160a01b038816737a250d5630b4cf539739df2c5dacb4c659f2488d145b6001600160a01b0389166000908152600b60205260408120919250611ef6918891611ed96110ce565b81526020019081526020016000205461225e90919063ffffffff16565b6001600160a01b0389166000908152600b6020526040812090611f176110ce565b81526020810191909152604001600020558280611f315750815b80611f395750805b15611f4e57611f4988888861226a565b611f59565b611f598888886122f9565b5050505050505050565b600081831115611f7e57611f778284612b2c565b9050610e92565b506000610e92565b6000611bc98284612b0d565b600454600160a01b900460ff1615611fd85760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b6044820152606401610f29565b6004805460ff60a01b1916600160a01b17905530600090815260156020526040812054601454909190612013906064906110e390604b611f86565b90508281111561202b57600f5460ff161561202b5750815b8082101561203a57505061224e565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061207357612073612b59565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120c757600080fd5b505afa1580156120db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ff9190612751565b8160018151811061211257612112612b59565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac94790612158908690600090869030904290600401612974565b600060405180830381600087803b15801561217257600080fd5b505af1158015612186573d6000803e3d6000fd5b50505050600082476121989190612b2c565b6013549091506000906121c19060ff6201000082048116916110e3918691610100900416611f86565b905060006121cf8284612b2c565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f1935050505015801561220a573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612245573d6000803e3d6000fd5b50505050505050505b506004805460ff60a01b19169055565b6000611bc982846129e5565b6001600160a01b03831660009081526015602052604081208054839290612292908490612b2c565b90915550506001600160a01b038216600090815260156020526040812080548392906122bf9084906129e5565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612b9383398151915283604051611cb791815260200190565b6001600160a01b03831660009081526007602052604090205460ff1615801561233b57506001600160a01b03821660009081526007602052604090205460ff16155b6123755760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610f29565b600154600160a01b900460ff166123cd57600154600160a81b900460ff166123c85760405162461bcd60e51b8152600401610f2990602080825260049082015263053544f560e41b604082015260600190565b612412565b600154600160a81b900460ff1661241257816001600160a01b0316836001600160a01b0316600080516020612b938339815191526000604051611cb791815260200190565b6001600160a01b03831660009081526008602052604090205460ff166124465761243a6112bb565b81111561244657600080fd5b6001600160a01b03821660009081526009602052604090205460ff1661250157600f54600c54606491612486916501000000000090910460ff1690612b0d565b61249091906129fd565b6001600160a01b0383166000908152601560205260409020546124b49083906129e5565b106125015760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574206f6e20726563697069656e740000000000000000006044820152606401610f29565b6017546000906001600160a01b038481169116148061252d57506000546001600160a01b038481169116145b905060008061253c84846126b0565b6014543060009081526015602052604090205492945090925010801561256a5750600f54610100900460ff16155b80156125805750600454600160a01b900460ff16155b156125a85782801561259a5750600f54610100900460ff16155b156125a8576125a884611f92565b6001600160a01b0386166000908152601560205260409020546125cb9085612712565b6001600160a01b0380881660009081526015602052604080822093909355908716815220546125fa908361225e565b6001600160a01b038616600090815260156020526040808220929092553081522054612626908261225e565b30600081815260156020526040908190209290925590516001600160a01b03881690600080516020612b93833981519152906126659085815260200190565b60405180910390a3846001600160a01b0316866001600160a01b0316600080516020612b93833981519152846040516126a091815260200190565b60405180910390a3505050505050565b600080600083156126ce5750600f546301000000900460ff166126dc565b50600f5462010000900460ff165b600060646126ed60ff841688612b0d565b6126f791906129fd565b905060006127058288612b2c565b9791965090945050505050565b6000611bc98284612b2c565b803560ff8116811461272f57600080fd5b919050565b60006020828403121561274657600080fd5b8135611bc981612b6f565b60006020828403121561276357600080fd5b8151611bc981612b6f565b6000806040838503121561278157600080fd5b823561278c81612b6f565b9150602083013561279c81612b6f565b809150509250929050565b6000806000606084860312156127bc57600080fd5b83356127c781612b6f565b925060208401356127d781612b6f565b929592945050506040919091013590565b600080604083850312156127fb57600080fd5b823561280681612b6f565b9150602083013561279c81612b84565b6000806040838503121561282957600080fd5b823561283481612b6f565b946020939093013593505050565b60006020828403121561285457600080fd5b8135611bc981612b84565b60006020828403121561287157600080fd5b8151611bc981612b84565b60006020828403121561288e57600080fd5b5035919050565b6000602082840312156128a757600080fd5b5051919050565b6000602082840312156128c057600080fd5b611bc98261271e565b600080604083850312156128dc57600080fd5b6128e58361271e565b91506128f36020840161271e565b90509250929050565b600060208083528351808285015260005b818110156129295785810183015185820160400152820161290d565b8181111561293b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129c45784516001600160a01b03168352938301939183019160010161299f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156129f8576129f8612b43565b500190565b600082612a1a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612a5a578160001904821115612a4057612a40612b43565b80851615612a4d57918102915b93841c9390800290612a24565b509250929050565b6000611bc960ff841683600082612a7b57506001610e92565b81612a8857506000610e92565b8160018114612a9e5760028114612aa857612ac4565b6001915050610e92565b60ff841115612ab957612ab9612b43565b50506001821b610e92565b5060208310610133831016604e8410600b8410161715612ae7575081810a610e92565b612af18383612a1f565b8060001904821115612b0557612b05612b43565b029392505050565b6000816000190483118215151615612b2757612b27612b43565b500290565b600082821015612b3e57612b3e612b43565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146113b557600080fd5b80151581146113b557600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122008abeb8bbb359778f5c0fec14e7a35ecde3535c058ad83321caf224b501ee40b64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106104105760003560e01c8063893d20e81161021c578063bfceae6311610122578063cf309012116100b0578063f4ea55ab11610077578063f4ea55ab14610dd1578063f4f5fcb514610e01578063f887ea4014610e21578063fab2e05414610e41578063fafab66514610e6157005b8063cf30901214610cf2578063d28d885214610d13578063d46f2f6614610d48578063dd62ed3e14610d68578063e717fc3014610dae57005b8063c78dc6fd116100f4578063c78dc6fd14610c67578063c81c6edc14610c86578063ca4b208b14610c9c578063cbc1cfd214610cbc578063cbe7003014610cd157005b8063bfceae6314610bcc578063c01bb48b14610bfc578063c664c31d14610c1d578063c7639d8014610c3f57005b8063a457c2d7116101aa578063af1bb5c011610171578063af1bb5c014610aff578063b09f126614610b1f578063b0ef593714610b4f578063b544d2e614610b6f578063b918161114610b9357005b8063a457c2d714610a4f578063a8aa1b3114610a6f578063a9059cbb14610a8f578063a9bf2c0914610aaf578063ad95fc8f14610acf57005b806393505052116101ee578063935050521461099b578063952eb8a7146109bc57806395d89b41146109ec578063a201b2a714610a19578063a253c06e14610a3957005b8063893d20e8146109285780638da5cb5b146109465780638f793cb91461096657806391e96a301461097b57005b80633e6968b6116103215780635bd263e7116102af57806378e979251161027657806378e979251461088c5780637b160863146108a25780637cb97b2b146108c2578063826c89bd146108e257806382c4767b1461091257005b80635bd263e7146107d45780636ebcf607146107f457806370a082311461082157806370bfcf401461085757806370fbc7121461087757005b80634147c6a7116102f35780634147c6a7146107165780634edebbba146107365780634f91e48c1461075657806357d8ae821461076c5780635b0833cc1461079c57005b80633e6968b61461069f5780633e935fe8146106b45780633f27cc48146106c95780633fe7e33c146106e957005b806326e766131161039e57806332424aa31161037057806332424aa31461061357806332bc298c1461062857806334184e261461063f578063395093511461065f5780633a32fea81461067f57005b806326e76613146105795780632bfe8742146105995780632d3e474a146105b9578063313ce567146105f157005b806313f27383116103e257806313f27383146104e957806317668f1b146104ff57806318160ddd1461052f5780631eb25d131461054457806323b872dd1461055957005b8063024c2ddd1461041957806306fdde0314610464578063090786131461049f578063095ea7b3146104c957005b3661041757005b005b34801561042557600080fd5b5061045161043436600461276e565b601660209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561047057600080fd5b5060408051808201909152600981526827b930b733baba30b760b91b60208201525b60405161045b91906128fc565b3480156104ab57600080fd5b50600f546104b99060ff1681565b604051901515815260200161045b565b3480156104d557600080fd5b506104b96104e4366004612816565b610e81565b3480156104f557600080fd5b5061045160145481565b34801561050b57600080fd5b506104b961051a366004612734565b60056020526000908152604090205460ff1681565b34801561053b57600080fd5b50600c54610451565b34801561055057600080fd5b50610451610e98565b34801561056557600080fd5b506104b96105743660046127a7565b610eb5565b34801561058557600080fd5b506104176105943660046128c9565b610f51565b3480156105a557600080fd5b506104176105b43660046127e8565b610fb9565b3480156105c557600080fd5b50600d546105d9906001600160a01b031681565b6040516001600160a01b03909116815260200161045b565b3480156105fd57600080fd5b5060125b60405160ff909116815260200161045b565b34801561061f57600080fd5b50610601601281565b34801561063457600080fd5b506104516201518081565b34801561064b57600080fd5b506017546105d9906001600160a01b031681565b34801561066b57600080fd5b506104b961067a366004612816565b611028565b34801561068b57600080fd5b5061041761069a3660046127e8565b61105f565b3480156106ab57600080fd5b506104516110ce565b3480156106c057600080fd5b506104516110ee565b3480156106d557600080fd5b506104176106e43660046127e8565b61110d565b3480156106f557600080fd5b50610451610704366004612734565b600e6020526000908152604090205481565b34801561072257600080fd5b50600f546106019062010000900460ff1681565b34801561074257600080fd5b50610417610751366004612842565b61117c565b34801561076257600080fd5b5061045160115481565b34801561077857600080fd5b506104b9610787366004612734565b60096020526000908152604090205460ff1681565b3480156107a857600080fd5b506104516107b7366004612816565b600b60209081526000928352604080842090915290825290205481565b3480156107e057600080fd5b506104176107ef3660046127e8565b6111d3565b34801561080057600080fd5b5061045161080f366004612734565b60156020526000908152604090205481565b34801561082d57600080fd5b5061045161083c366004612734565b6001600160a01b031660009081526015602052604090205490565b34801561086357600080fd5b50610417610872366004612842565b61125d565b34801561088357600080fd5b506104516112bb565b34801561089857600080fd5b5061045160105481565b3480156108ae57600080fd5b506104176108bd3660046128ae565b6112e3565b3480156108ce57600080fd5b506104176108dd366004612734565b6113b8565b3480156108ee57600080fd5b506104b96108fd366004612734565b60076020526000908152604090205460ff1681565b34801561091e57600080fd5b506105d961dead81565b34801561093457600080fd5b506003546001600160a01b03166105d9565b34801561095257600080fd5b506003546105d9906001600160a01b031681565b34801561097257600080fd5b50610417611409565b34801561098757600080fd5b506104176109963660046128ae565b61144d565b3480156109a757600080fd5b50600f54610601906301000000900460ff1681565b3480156109c857600080fd5b506104b96109d7366004612734565b60086020526000908152604090205460ff1681565b3480156109f857600080fd5b5060408051808201909152600481526352414e4760e01b6020820152610492565b348015610a2557600080fd5b50610417610a3436600461287c565b61151a565b348015610a4557600080fd5b50610451600c5481565b348015610a5b57600080fd5b506104b9610a6a366004612816565b6115e1565b348015610a7b57600080fd5b506018546105d9906001600160a01b031681565b348015610a9b57600080fd5b506104b9610aaa366004612816565b61165d565b348015610abb57600080fd5b50610417610aca36600461287c565b61166a565b348015610adb57600080fd5b506104b9610aea366004612734565b60066020526000908152604090205460ff1681565b348015610b0b57600080fd5b50610417610b1a366004612734565b611707565b348015610b2b57600080fd5b506104926040518060400160405280600481526020016352414e4760e01b81525081565b348015610b5b57600080fd5b50610417610b6a3660046128c9565b61189f565b348015610b7b57600080fd5b50600f54610601906601000000000000900460ff1681565b348015610b9f57600080fd5b506104b9610bae366004612734565b6001600160a01b031660009081526002602052604090205460ff1690565b348015610bd857600080fd5b506104b9610be7366004612734565b600a6020526000908152604090205460ff1681565b348015610c0857600080fd5b506001546104b990600160a81b900460ff1681565b348015610c2957600080fd5b50600f5461060190640100000000900460ff1681565b348015610c4b57600080fd5b506105d9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610c7357600080fd5b50600f546104b990610100900460ff1681565b348015610c9257600080fd5b5061045160125481565b348015610ca857600080fd5b506004546105d9906001600160a01b031681565b348015610cc857600080fd5b506104176119b6565b348015610cdd57600080fd5b506001546104b990600160a01b900460ff1681565b348015610cfe57600080fd5b506004546104b990600160a01b900460ff1681565b348015610d1f57600080fd5b506104926040518060400160405280600981526020016827b930b733baba30b760b91b81525081565b348015610d5457600080fd5b506000546105d9906001600160a01b031681565b348015610d7457600080fd5b50610451610d8336600461276e565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b348015610dba57600080fd5b50600f546106019065010000000000900460ff1681565b348015610ddd57600080fd5b506104b9610dec366004612734565b60026020526000908152604090205460ff1681565b348015610e0d57600080fd5b50610417610e1c3660046127e8565b611a34565b348015610e2d57600080fd5b506001546105d9906001600160a01b031681565b348015610e4d57600080fd5b50610417610e5c36600461287c565b611aa3565b348015610e6d57600080fd5b50610417610e7c3660046127e8565b611b4e565b6000610e8e338484611bd0565b5060015b92915050565b610ea46012600a612a62565b610eb2906305f5e100612b0d565b81565b6000610ec2848484611cc4565b6001600160a01b038416600090815260166020908152604080832033845290915290205482811015610f325760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b60448201526064015b60405180910390fd5b610f468533610f418685612b2c565b611bd0565b506001949350505050565b3360009081526002602052604090205460ff1680610f7957506003546001600160a01b031633145b610f955760405162461bcd60e51b8152600401610f2990612951565b6013805460ff9283166101000261ffff199091169290931691909117919091179055565b3360009081526002602052604090205460ff1680610fe157506003546001600160a01b031633145b610ffd5760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b3360008181526016602090815260408083206001600160a01b03871684529091528120549091610e8e918590610f419086906129e5565b3360009081526002602052604090205460ff168061108757506003546001600160a01b031633145b6110a35760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b60006110e9620151806110e342601054611f63565b90611bbd565b905090565b60006110e96012546110e3601154600c54611f8690919063ffffffff16565b3360009081526002602052604090205460ff168061113557506003546001600160a01b031633145b6111515760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806111a457506003546001600160a01b031633145b6111c05760405162461bcd60e51b8152600401610f2990612951565b600f805460ff1916911515919091179055565b3360009081526002602052604090205460ff16806111fb57506003546001600160a01b031633145b6112175760405162461bcd60e51b8152600401610f2990612951565b6004546001600160a01b038381169116141561123257600080fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff168061128557506003546001600160a01b031633145b6112a15760405162461bcd60e51b8152600401610f2990612951565b600f80549115156101000261ff0019909216919091179055565b60006110e96103e8600f60069054906101000a900460ff1660ff16600c546110e39190612b0d565b3360009081526002602052604090205460ff168061130b57506003546001600160a01b031633145b6113275760405162461bcd60e51b8152600401610f2990612951565b600f805466ff0000000000001916660100000000000060ff841690810291909117909155600511156113b55760405162461bcd60e51b815260206004820152603160248201527f4174206c6561737420352c2072656d656d62657220746861742069742773202f604482015270313030302c20736f2035203d20302e352560781b6064820152608401610f29565b50565b6004546001600160a01b031633146113cf57600080fd5b600380546001600160a01b039092166001600160a01b0319909216821790556000908152600260205260409020805460ff19166001179055565b6004546001600160a01b0316331461142057600080fd5b600154600160a81b900460ff161561143757600080fd5b6001805461ffff60a01b1916600160a81b179055565b3360009081526002602052604090205460ff168061147557506003546001600160a01b031633145b6114915760405162461bcd60e51b8152600401610f2990612951565b600f805465ff000000000019166501000000000060ff841690810291909117909155600111156113b55760405162461bcd60e51b815260206004820152602e60248201527f4174206c6561737420312c2072656d656d62657220746861742069742773202f60448201526d3130302c20736f2031203d20312560901b6064820152608401610f29565b3360009081526002602052604090205460ff168061154257506003546001600160a01b031633145b61155e5760405162461bcd60e51b8152600401610f2990612951565b3360009081526015602052604090205481111561157a57600080fd5b3360009081526015602052604081208054839290611599908490612b2c565b9250508190555080600c60008282546115b29190612b2c565b909155505060405181815261dead903090600080516020612b938339815191529060200160405180910390a350565b3360009081526016602090815260408083206001600160a01b0386168452909152812054828110156116445760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610f29565b6116533385610f418685612b2c565b5060019392505050565b6000610e8e338484611cc4565b3360009081526002602052604090205460ff168061169257506003546001600160a01b031633145b6116ae5760405162461bcd60e51b8152600401610f2990612951565b600581101580156116c157506127108111155b6117025760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081cd95b1b081b1a5b5a5d60721b6044820152606401610f29565b601155565b3360009081526002602052604090205460ff168061172f57506003546001600160a01b031633145b61174b5760405162461bcd60e51b8152600401610f2990612951565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a082319060240160206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c79190612895565b9050600081116118195760405162461bcd60e51b815260206004820152601860248201527f4e6f20746f6b656e7320696e206f75722062616c616e636500000000000000006044820152606401610f29565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b15801561186157600080fd5b505af1158015611875573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611899919061285f565b50505050565b3360009081526002602052604090205460ff16806118c757506003546001600160a01b031633145b6118e35760405162461bcd60e51b8152600401610f2990612951565b600f805463ffff000019166201000060ff85811691820263ff0000001916929092176301000000928516929092029190911790915515801590611929575060008160ff16115b6119625760405162461bcd60e51b815260206004820152600a6024820152694174206c65617374203160b01b6044820152606401610f29565b600f8260ff161080156119785750600f8160ff16105b6119b25760405162461bcd60e51b815260206004820152600b60248201526a139bc81a1bdb995e5c1bdd60aa1b6044820152606401610f29565b5050565b3360009081526002602052604090205460ff16806119de57506003546001600160a01b031633145b6119fa5760405162461bcd60e51b8152600401610f2990612951565b60045460405147916001600160a01b03169082156108fc029083906000818181858888f193505050501580156119b2573d6000803e3d6000fd5b3360009081526002602052604090205460ff1680611a5c57506003546001600160a01b031633145b611a785760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b3360009081526002602052604090205460ff1680611acb57506003546001600160a01b031633145b611ae75760405162461bcd60e51b8152600401610f2990612951565b306000908152601560205260409020548110611b455760405162461bcd60e51b815260206004820152601f60248201527f6475646520746865726520617265206e6f7420656e6f75676820746f6b656e006044820152606401610f29565b6113b581611f92565b3360009081526002602052604090205460ff1680611b7657506003546001600160a01b031633145b611b925760405162461bcd60e51b8152600401610f2990612951565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000611bc982846129fd565b9392505050565b6001600160a01b038316611c1a5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610f29565b6001600160a01b038216611c625760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610f29565b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166000908152600a60205260409020548390829060ff16611d8a57611cf06110ee565b6001600160a01b0383166000908152600b602052604081208391611d126110ce565b815260200190815260200160002054611d2b91906129e5565b1115611d8a5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160448201526737103634b6b4ba1760c11b6064820152608401610f29565b6001600160a01b03851660009081526005602052604081205460ff1680611dc957506001600160a01b03851660009081526005602052604090205460ff165b80611dec57506001600160a01b03861660009081526002602052604090205460ff165b80611e0f57506001600160a01b03851660009081526002602052604090205460ff165b905060006001600160a01b038716301480611e3257506001600160a01b03861630145b6017549091506000906001600160a01b038981169116148015611e7157506001600160a01b038716737a250d5630b4cf539739df2c5dacb4c659f2488d145b80611eb057506017546001600160a01b038881169116148015611eb057506001600160a01b038816737a250d5630b4cf539739df2c5dacb4c659f2488d145b6001600160a01b0389166000908152600b60205260408120919250611ef6918891611ed96110ce565b81526020019081526020016000205461225e90919063ffffffff16565b6001600160a01b0389166000908152600b6020526040812090611f176110ce565b81526020810191909152604001600020558280611f315750815b80611f395750805b15611f4e57611f4988888861226a565b611f59565b611f598888886122f9565b5050505050505050565b600081831115611f7e57611f778284612b2c565b9050610e92565b506000610e92565b6000611bc98284612b0d565b600454600160a01b900460ff1615611fd85760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b6044820152606401610f29565b6004805460ff60a01b1916600160a01b17905530600090815260156020526040812054601454909190612013906064906110e390604b611f86565b90508281111561202b57600f5460ff161561202b5750815b8082101561203a57505061224e565b60408051600280825260608201835247926000929190602083019080368337019050509050308160008151811061207357612073612b59565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120c757600080fd5b505afa1580156120db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ff9190612751565b8160018151811061211257612112612b59565b6001600160a01b03928316602091820292909201015260015460405163791ac94760e01b815291169063791ac94790612158908690600090869030904290600401612974565b600060405180830381600087803b15801561217257600080fd5b505af1158015612186573d6000803e3d6000fd5b50505050600082476121989190612b2c565b6013549091506000906121c19060ff6201000082048116916110e3918691610100900416611f86565b905060006121cf8284612b2c565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f1935050505015801561220a573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612245573d6000803e3d6000fd5b50505050505050505b506004805460ff60a01b19169055565b6000611bc982846129e5565b6001600160a01b03831660009081526015602052604081208054839290612292908490612b2c565b90915550506001600160a01b038216600090815260156020526040812080548392906122bf9084906129e5565b92505081905550816001600160a01b0316836001600160a01b0316600080516020612b9383398151915283604051611cb791815260200190565b6001600160a01b03831660009081526007602052604090205460ff1615801561233b57506001600160a01b03821660009081526007602052604090205460ff16155b6123755760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610f29565b600154600160a01b900460ff166123cd57600154600160a81b900460ff166123c85760405162461bcd60e51b8152600401610f2990602080825260049082015263053544f560e41b604082015260600190565b612412565b600154600160a81b900460ff1661241257816001600160a01b0316836001600160a01b0316600080516020612b938339815191526000604051611cb791815260200190565b6001600160a01b03831660009081526008602052604090205460ff166124465761243a6112bb565b81111561244657600080fd5b6001600160a01b03821660009081526009602052604090205460ff1661250157600f54600c54606491612486916501000000000090910460ff1690612b0d565b61249091906129fd565b6001600160a01b0383166000908152601560205260409020546124b49083906129e5565b106125015760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574206f6e20726563697069656e740000000000000000006044820152606401610f29565b6017546000906001600160a01b038481169116148061252d57506000546001600160a01b038481169116145b905060008061253c84846126b0565b6014543060009081526015602052604090205492945090925010801561256a5750600f54610100900460ff16155b80156125805750600454600160a01b900460ff16155b156125a85782801561259a5750600f54610100900460ff16155b156125a8576125a884611f92565b6001600160a01b0386166000908152601560205260409020546125cb9085612712565b6001600160a01b0380881660009081526015602052604080822093909355908716815220546125fa908361225e565b6001600160a01b038616600090815260156020526040808220929092553081522054612626908261225e565b30600081815260156020526040908190209290925590516001600160a01b03881690600080516020612b93833981519152906126659085815260200190565b60405180910390a3846001600160a01b0316866001600160a01b0316600080516020612b93833981519152846040516126a091815260200190565b60405180910390a3505050505050565b600080600083156126ce5750600f546301000000900460ff166126dc565b50600f5462010000900460ff165b600060646126ed60ff841688612b0d565b6126f791906129fd565b905060006127058288612b2c565b9791965090945050505050565b6000611bc98284612b2c565b803560ff8116811461272f57600080fd5b919050565b60006020828403121561274657600080fd5b8135611bc981612b6f565b60006020828403121561276357600080fd5b8151611bc981612b6f565b6000806040838503121561278157600080fd5b823561278c81612b6f565b9150602083013561279c81612b6f565b809150509250929050565b6000806000606084860312156127bc57600080fd5b83356127c781612b6f565b925060208401356127d781612b6f565b929592945050506040919091013590565b600080604083850312156127fb57600080fd5b823561280681612b6f565b9150602083013561279c81612b84565b6000806040838503121561282957600080fd5b823561283481612b6f565b946020939093013593505050565b60006020828403121561285457600080fd5b8135611bc981612b84565b60006020828403121561287157600080fd5b8151611bc981612b84565b60006020828403121561288e57600080fd5b5035919050565b6000602082840312156128a757600080fd5b5051919050565b6000602082840312156128c057600080fd5b611bc98261271e565b600080604083850312156128dc57600080fd5b6128e58361271e565b91506128f36020840161271e565b90509250929050565b600060208083528351808285015260005b818110156129295785810183015185820160400152820161290d565b8181111561293b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129c45784516001600160a01b03168352938301939183019160010161299f565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156129f8576129f8612b43565b500190565b600082612a1a57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115612a5a578160001904821115612a4057612a40612b43565b80851615612a4d57918102915b93841c9390800290612a24565b509250929050565b6000611bc960ff841683600082612a7b57506001610e92565b81612a8857506000610e92565b8160018114612a9e5760028114612aa857612ac4565b6001915050610e92565b60ff841115612ab957612ab9612b43565b50506001821b610e92565b5060208310610133831016604e8410600b8410161715612ae7575081810a610e92565b612af18383612a1f565b8060001904821115612b0557612b05612b43565b029392505050565b6000816000190483118215151615612b2757612b27612b43565b500290565b600082821015612b3e57612b3e612b43565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146113b557600080fd5b80151581146113b557600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122008abeb8bbb359778f5c0fec14e7a35ecde3535c058ad83321caf224b501ee40b64736f6c63430008070033
Deployed Bytecode Sourcemap
14161:12968:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15876:68;;;;;;;;;;-1:-1:-1;15876:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4854:25:1;;;4842:2;4827:18;15876:68:0;;;;;;;;24947:85;;;;;;;;;;-1:-1:-1;25019:5:0;;;;;;;;;;;;-1:-1:-1;;;25019:5:0;;;;24947:85;;;;;;;:::i;15290:25::-;;;;;;;;;;-1:-1:-1;15290:25:0;;;;;;;;;;;4210:14:1;;4203:22;4185:41;;4173:2;4158:18;15290:25:0;4045:187:1;25689:161:0;;;;;;;;;;-1:-1:-1;25689:161:0;;;;;:::i;:::-;;:::i;15758:57::-;;;;;;;;;;;;;;;;14279:40;;;;;;;;;;-1:-1:-1;14279:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22069:108;;;;;;;;;;-1:-1:-1;22151:18:0;;22069:108;;14856:70;;;;;;;;;;;;;:::i;26167:392::-;;;;;;;;;;-1:-1:-1;26167:392:0;;;;;:::i;:::-;;:::i;21602:128::-;;;;;;;;;;-1:-1:-1;21602:128:0;;;;;:::i;:::-;;:::i;13450:106::-;;;;;;;;;;-1:-1:-1;13450:106:0;;;;;:::i;:::-;;:::i;15155:78::-;;;;;;;;;;-1:-1:-1;15155:78:0;;;;-1:-1:-1;;;;;15155:78:0;;;;;;-1:-1:-1;;;;;3722:32:1;;;3704:51;;3692:2;3677:18;15155:78:0;3558:203:1;25137:85:0;;;;;;;;;;-1:-1:-1;14798:2:0;25137:85;;;12890:4:1;12878:17;;;12860:36;;12848:2;12833:18;25137:85:0;12718:184:1;14764:36:0;;;;;;;;;;;;14798:2;14764:36;;14807:42;;;;;;;;;;;;14843:6;14807:42;;16206:27;;;;;;;;;;-1:-1:-1;16206:27:0;;;;-1:-1:-1;;;;;16206:27:0;;;26569:205;;;;;;;;;;-1:-1:-1;26569:205:0;;;;;:::i;:::-;;:::i;23298:132::-;;;;;;;;;;-1:-1:-1;23298:132:0;;;;;:::i;:::-;;:::i;23855:131::-;;;;;;;;;;;;;:::i;23994:139::-;;;;;;;;;;;;;:::i;23032:124::-;;;;;;;;;;-1:-1:-1;23032:124:0;;;;;:::i;:::-;;:::i;15242:39::-;;;;;;;;;;-1:-1:-1;15242:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;15362:25;;;;;;;;;;-1:-1:-1;15362:25:0;;;;;;;;;;;24762:86;;;;;;;;;;-1:-1:-1;24762:86:0;;;;;:::i;:::-;;:::i;15564:29::-;;;;;;;;;;;;;;;;14479:55;;;;;;;;;;-1:-1:-1;14479:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14597:59;;;;;;;;;;-1:-1:-1;14597:59:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;23681:166;;;;;;;;;;-1:-1:-1;23681:166:0;;;;;:::i;:::-;;:::i;15824:45::-;;;;;;;;;;-1:-1:-1;15824:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;25230:121;;;;;;;;;;-1:-1:-1;25230:121:0;;;;;:::i;:::-;-1:-1:-1;;;;;25325:18:0;25298:7;25325:18;;;:9;:18;;;;;;;25230:121;21970:91;;;;;;;;;;-1:-1:-1;21970:91:0;;;;;:::i;:::-;;:::i;18086:114::-;;;;;;;;;;;;;:::i;15533:24::-;;;;;;;;;;;;;;;;22667:167;;;;;;;;;;-1:-1:-1;22667:167:0;;;;;:::i;:::-;;:::i;23551:122::-;;;;;;;;;;-1:-1:-1;23551:122:0;;;;;:::i;:::-;;:::i;14374:40::-;;;;;;;;;;-1:-1:-1;14374:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15075:73;;;;;;;;;;;;15106:42;15075:73;;24856:83;;;;;;;;;;-1:-1:-1;24926:5:0;;-1:-1:-1;;;;;24926:5:0;24856:83;;13686:20;;;;;;;;;;-1:-1:-1;13686:20:0;;;;-1:-1:-1;;;;;13686:20:0;;;21294:141;;;;;;;;;;;;;:::i;22842:182::-;;;;;;;;;;-1:-1:-1;22842:182:0;;;;;:::i;:::-;;:::i;15394:26::-;;;;;;;;;;-1:-1:-1;15394:26:0;;;;;;;;;;;14421:51;;;;;;;;;;-1:-1:-1;14421:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;25040:89;;;;;;;;;;-1:-1:-1;25114:7:0;;;;;;;;;;;;-1:-1:-1;;;25114:7:0;;;;25040:89;;24330:249;;;;;;;;;;-1:-1:-1;24330:249:0;;;;;:::i;:::-;;:::i;14933:48::-;;;;;;;;;;;;;;;;26782:342;;;;;;;;;;-1:-1:-1;26782:342:0;;;;;:::i;:::-;;:::i;16240:26::-;;;;;;;;;;-1:-1:-1;16240:26:0;;;;-1:-1:-1;;;;;16240:26:0;;;25359:167;;;;;;;;;;-1:-1:-1;25359:167:0;;;;;:::i;:::-;;:::i;24143:179::-;;;;;;;;;;-1:-1:-1;24143:179:0;;;;;:::i;:::-;;:::i;14326:41::-;;;;;;;;;;-1:-1:-1;14326:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22379:280;;;;;;;;;;-1:-1:-1;22379:280:0;;;;;:::i;:::-;;:::i;14718:39::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14718:39:0;;;;;21738:224;;;;;;;;;;-1:-1:-1;21738:224:0;;;;;:::i;:::-;;:::i;15500:26::-;;;;;;;;;;-1:-1:-1;15500:26:0;;;;;;;;;;;13343:99;;;;;;;;;;-1:-1:-1;13343:99:0;;;;;:::i;:::-;-1:-1:-1;;;;;13421:13:0;13397:4;13421:13;;;:7;:13;;;;;;;;;13343:99;14541:49;;;;;;;;;;-1:-1:-1;14541:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13252:33;;;;;;;;;;-1:-1:-1;13252:33:0;;;;-1:-1:-1;;;13252:33:0;;;;;;15427:30;;;;;;;;;;-1:-1:-1;15427:30:0;;;;;;;;;;;14988:80;;;;;;;;;;;;15026:42;14988:80;;15322:31;;;;;;;;;;-1:-1:-1;15322:31:0;;;;;;;;;;;15600:39;;;;;;;;;;;;;;;;13713:24;;;;;;;;;;-1:-1:-1;13713:24:0;;;;-1:-1:-1;;;;;13713:24:0;;;21443:151;;;;;;;;;;;;;:::i;13215:30::-;;;;;;;;;;-1:-1:-1;13215:30:0;;;;-1:-1:-1;;;13215:30:0;;;;;;13931:18;;;;;;;;;;-1:-1:-1;13931:18:0;;;;-1:-1:-1;;;13931:18:0;;;;;;14669:42;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14669:42:0;;;;;11895:74;;;;;;;;;;-1:-1:-1;11895:74:0;;;;-1:-1:-1;;;;;11895:74:0;;;25534:147;;;;;;;;;;-1:-1:-1;25534:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;25645:19:0;;;25618:7;25645:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;25534:147;15466:27;;;;;;;;;;-1:-1:-1;15466:27:0;;;;;;;;;;;13294:40;;;;;;;;;;-1:-1:-1;13294:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23164:126;;;;;;;;;;-1:-1:-1;23164:126:0;;;;;:::i;:::-;;:::i;11976:65::-;;;;;;;;;;-1:-1:-1;11976:65:0;;;;-1:-1:-1;;;;;11976:65:0;;;22185:186;;;;;;;;;;-1:-1:-1;22185:186:0;;;;;:::i;:::-;;:::i;23438:105::-;;;;;;;;;;-1:-1:-1;23438:105:0;;;;;:::i;:::-;;:::i;25689:161::-;25766:4;25783:37;25792:10;25804:7;25813:6;25783:8;:37::i;:::-;-1:-1:-1;25838:4:0;25689:161;;;;;:::o;14856:70::-;14912:13;14798:2;14912;:13;:::i;:::-;14895:31;;:13;:31;:::i;:::-;14856:70;:::o;26167:392::-;26267:4;26284:36;26294:6;26302:9;26313:6;26284:9;:36::i;:::-;-1:-1:-1;;;;;26360:19:0;;26333:24;26360:19;;;:11;:19;;;;;;;;26380:10;26360:31;;;;;;;;26410:26;;;;26402:59;;;;-1:-1:-1;;;26402:59:0;;6818:2:1;26402:59:0;;;6800:21:1;6857:2;6837:18;;;6830:30;-1:-1:-1;;;6876:18:1;;;6869:50;6936:18;;26402:59:0;;;;;;;;;26474:55;26483:6;26491:10;26503:25;26522:6;26503:16;:25;:::i;:::-;26474:8;:55::i;:::-;-1:-1:-1;26547:4:0;;26167:392;-1:-1:-1;;;;26167:392:0:o;21602:128::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;21674:8:::1;:14:::0;;::::1;21699:23:::0;;::::1;21674:14;21699:23;-1:-1:-1::0;;21699:23:0;;;21674:14;;;::::1;21699:23:::0;;;;;;;::::1;::::0;;21602:128::o;13450:106::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13527:13:0;;;::::1;;::::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;13527:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13450:106::o;26569:205::-;26677:10;26651:4;26698:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26698:32:0;;;;;;;;;;26651:4;;26668:76;;26689:7;;26698:45;;26733:10;;26698:45;:::i;23298:132::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23385:29:0;;;::::1;;::::0;;;:23:::1;:29;::::0;;;;:37;;-1:-1:-1;;23385:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23298:132::o;23855:131::-;23901:7;23928:50;14843:6;23928:35;23936:15;23953:9;;23928:7;:35::i;:::-;:39;;:50::i;:::-;23921:57;;23855:131;:::o;23994:139::-;24043:7;24070:55;24108:16;;24070:33;24093:9;;24070:18;;:22;;:33;;;;:::i;23032:124::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23115:25:0;;;::::1;;::::0;;;:19:::1;:25;::::0;;;;:33;;-1:-1:-1;;23115:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23032:124::o;24762:86::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;24826:6:::1;:14:::0;;-1:-1:-1;;24826:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24762:86::o;23681:166::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;23789:9:::1;::::0;-1:-1:-1;;;;;23777:21:0;;::::1;23789:9:::0;::::1;23777:21;23775:24;23767:33;;;::::0;::::1;;-1:-1:-1::0;;;;;23811:20:0;;;::::1;;::::0;;;:8:::1;:20;::::0;;;;:28;;-1:-1:-1;;23811:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23681:166::o;21970:91::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;22034:11:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;22034:19:0;;::::1;::::0;;;::::1;::::0;;21970:91::o;18086:114::-;18125:4;18150:41;18186:4;18172:8;;;;;;;;;;;18151:29;;:18;;:29;;;;:::i;22667:167::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;22727:8:::1;:16:::0;;-1:-1:-1;;22727:16:0::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;22771:1:::1;-1:-1:-1::0;22762:10:0::1;22754:72;;;::::0;-1:-1:-1;;;22754:72:0;;5694:2:1;22754:72:0::1;::::0;::::1;5676:21:1::0;5733:2;5713:18;;;5706:30;5772:34;5752:18;;;5745:62;-1:-1:-1;;;5823:18:1;;;5816:47;5880:19;;22754:72:0::1;5492:413:1::0;22754:72:0::1;22667:167:::0;:::o;23551:122::-;13794:9;;-1:-1:-1;;;;;13794:9:0;13782:10;:21;13774:30;;;;;;23614:5:::1;:16:::0;;-1:-1:-1;;;;;23614:16:0;;::::1;-1:-1:-1::0;;;;;;23614:16:0;;::::1;::::0;::::1;::::0;;:5:::1;23641:17:::0;;;:7:::1;:17;::::0;;;;:24;;-1:-1:-1;;23641:24:0::1;23614:16:::0;23641:24:::1;::::0;;23551:122::o;21294:141::-;13794:9;;-1:-1:-1;;;;;13794:9:0;13782:10;:21;13774:30;;;;;;21343:13:::1;::::0;-1:-1:-1;;;21343:13:0;::::1;;;:22;21335:31;;;::::0;::::1;;21377:11;:19:::0;;-1:-1:-1;;;;21407:20:0;-1:-1:-1;;;21407:20:0::1;::::0;;21294:141::o;22842:182::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;22910:10:::1;:22:::0;;-1:-1:-1;;22910:22:0::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;22951:14:0::1;22943:73;;;::::0;-1:-1:-1;;;22943:73:0;;7504:2:1;22943:73:0::1;::::0;::::1;7486:21:1::0;7543:2;7523:18;;;7516:30;7582:34;7562:18;;;7555:62;-1:-1:-1;;;7633:18:1;;;7626:44;7687:19;;22943:73:0::1;7302:410:1::0;24330:249:0;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;24415:10:::1;24405:21;::::0;;;:9:::1;:21;::::0;;;;;:31;-1:-1:-1;24405:31:0::1;24397:40;;;::::0;::::1;;24458:10;24448:21;::::0;;;:9:::1;:21;::::0;;;;:31;;24473:6;;24448:21;:31:::1;::::0;24473:6;;24448:31:::1;:::i;:::-;;;;;;;;24512:6;24490:18;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;24534:37:0::1;::::0;4854:25:1;;;15106:42:0::1;::::0;24551:4:::1;::::0;-1:-1:-1;;;;;;;;;;;24534:37:0;4842:2:1;4827:18;24534:37:0::1;;;;;;;24330:249:::0;:::o;26782:342::-;26925:10;26869:4;26913:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;26913:32:0;;;;;;;;;;26964:35;;;;26956:60;;;;-1:-1:-1;;;26956:60:0;;11072:2:1;26956:60:0;;;11054:21:1;11111:2;11091:18;;;11084:30;-1:-1:-1;;;11130:18:1;;;11123:42;11182:18;;26956:60:0;10870:336:1;26956:60:0;27029:65;27038:10;27050:7;27059:34;27078:15;27059:16;:34;:::i;27029:65::-;-1:-1:-1;27112:4:0;;26782:342;-1:-1:-1;;;26782:342:0:o;25359:167::-;25439:4;25456:40;25466:10;25478:9;25489:6;25456:9;:40::i;24143:179::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;24234:1:::1;24220:10;:15;;:38;;;;;24253:5;24239:10;:19;;24220:38;24212:69;;;::::0;-1:-1:-1;;;24212:69:0;;8616:2:1;24212:69:0::1;::::0;::::1;8598:21:1::0;8655:2;8635:18;;;8628:30;-1:-1:-1;;;8674:18:1;;;8667:48;8732:18;;24212:69:0::1;8414:342:1::0;24212:69:0::1;24292:9;:22:::0;24143:179::o;22379:280::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;22512:30:::1;::::0;-1:-1:-1;;;22512:30:0;;22536:4:::1;22512:30;::::0;::::1;3704:51:1::0;22469:10:0;;22449:11:::1;::::0;-1:-1:-1;;;;;22512:15:0;::::1;::::0;::::1;::::0;3677:18:1;;22512:30:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22491:51;;22572:1;22561:10;:12;22553:49;;;::::0;-1:-1:-1;;;22553:49:0;;8263:2:1;22553:49:0::1;::::0;::::1;8245:21:1::0;8302:2;8282:18;;;8275:30;8341:26;8321:18;;;8314:54;8385:18;;22553:49:0::1;8061:348:1::0;22553:49:0::1;22613:38;::::0;-1:-1:-1;;;22613:38:0;;22628:10:::1;22613:38;::::0;::::1;3940:51:1::0;4007:18;;;4000:34;;;-1:-1:-1;;;;;22613:14:0;::::1;::::0;::::1;::::0;3913:18:1;;22613:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22438:221;;22379:280:::0;:::o;21738:224::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;21807:7:::1;:13:::0;;-1:-1:-1;;21831:15:0;21807:13;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;21831:15:0;;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;21865:7;;;;:19:::1;;;21883:1;21876:4;:8;;;21865:19;21857:42;;;::::0;-1:-1:-1;;;21857:42:0;;9655:2:1;21857:42:0::1;::::0;::::1;9637:21:1::0;9694:2;9674:18;;;9667:30;-1:-1:-1;;;9713:18:1;;;9706:40;9763:18;;21857:42:0::1;9453:334:1::0;21857:42:0::1;21923:2;21918:3;:7;;;:20;;;;;21936:2;21929:4;:9;;;21918:20;21910:44;;;::::0;-1:-1:-1;;;21910:44:0;;9315:2:1;21910:44:0::1;::::0;::::1;9297:21:1::0;9354:2;9334:18;;;9327:30;-1:-1:-1;;;9373:18:1;;;9366:41;9424:18;;21910:44:0::1;9113:335:1::0;21910:44:0::1;21738:224:::0;;:::o;21443:151::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;21558:9:::1;::::0;21550:36:::1;::::0;21518:21:::1;::::0;-1:-1:-1;;;;;21558:9:0::1;::::0;21550:36;::::1;;;::::0;21518:21;;21500:15:::1;21550:36:::0;21500:15;21550:36;21518:21;21558:9;21550:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;23164:126:::0;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23251:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:31;;-1:-1:-1;;23251:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23164:126::o;22185:186::-;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;22292:4:::1;22274:24;::::0;;;:9:::1;:24;::::0;;;;;22265:33;::::1;22257:77;;;::::0;-1:-1:-1;;;22257:77:0;;6112:2:1;22257:77:0::1;::::0;::::1;6094:21:1::0;6151:2;6131:18;;;6124:30;6190:33;6170:18;;;6163:61;6241:18;;22257:77:0::1;5910:355:1::0;22257:77:0::1;22345:18;22356:6;22345:10;:18::i;23438:105::-:0;13612:10;13604:19;;;;:7;:19;;;;;;;;;:40;;-1:-1:-1;13639:5:0;;-1:-1:-1;;;;;13639:5:0;13627:10;:17;13604:40;13595:63;;;;-1:-1:-1;;;13595:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23513:14:0;;;::::1;;::::0;;;:8:::1;:14;::::0;;;;:22;;-1:-1:-1;;23513:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23438:105::o;2412:98::-;2470:7;2497:5;2501:1;2497;:5;:::i;:::-;2490:12;2412:98;-1:-1:-1;;;2412:98:0:o;25856:303::-;-1:-1:-1;;;;;25950:20:0;;25942:50;;;;-1:-1:-1;;;25942:50:0;;6472:2:1;25942:50:0;;;6454:21:1;6511:2;6491:18;;;6484:30;-1:-1:-1;;;6530:18:1;;;6523:47;6587:18;;25942:50:0;6270:341:1;25942:50:0;-1:-1:-1;;;;;26011:21:0;;26003:49;;;;-1:-1:-1;;;26003:49:0;;7919:2:1;26003:49:0;;;7901:21:1;7958:2;7938:18;;;7931:30;-1:-1:-1;;;7977:18:1;;;7970:45;8032:18;;26003:49:0;7717:339:1;26003:49:0;-1:-1:-1;;;;;26065:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;26118:33;;4854:25:1;;;26118:33:0;;4827:18:1;26118:33:0;;;;;;;;25856:303;;;:::o;17299:779::-;-1:-1:-1;;;;;16017:23:0;;;;;;:17;:23;;;;;;17385:6;;17393;;16017:23;;16013:166;;16104:18;:16;:18::i;:::-;-1:-1:-1;;;;;16065:10:0;;;;;;:4;:10;;;;;16095:5;;16076:15;:13;:15::i;:::-;16065:27;;;;;;;;;;;;:35;;;;:::i;:::-;:57;;16057:110;;;;-1:-1:-1;;;16057:110:0;;10326:2:1;16057:110:0;;;10308:21:1;10365:2;10345:18;;;10338:30;10404:34;10384:18;;;10377:62;-1:-1:-1;;;10455:18:1;;;10448:38;10503:19;;16057:110:0;10124:404:1;16057:110:0;-1:-1:-1;;;;;17433:16:0;::::1;17414:15;17433:16:::0;;;:8:::1;:16;::::0;;;;;::::1;;::::0;:39:::1;;-1:-1:-1::0;;;;;;17453:19:0;::::1;;::::0;;;:8:::1;:19;::::0;;;;;::::1;;17433:39;:58;;;-1:-1:-1::0;;;;;;17476:15:0;::::1;;::::0;;;:7:::1;:15;::::0;;;;;::::1;;17433:58;:80;;;-1:-1:-1::0;;;;;;17495:18:0;::::1;;::::0;;;:7:::1;:18;::::0;;;;;::::1;;17433:80;17414:100:::0;-1:-1:-1;17527:23:0::1;-1:-1:-1::0;;;;;17552:21:0;::::1;17568:4;17552:21;::::0;:49:::1;;-1:-1:-1::0;;;;;;17577:24:0;::::1;17596:4;17577:24;17552:49;17654:12;::::0;17527:75;;-1:-1:-1;17615:24:0::1;::::0;-1:-1:-1;;;;;17644:22:0;;::::1;17654:12:::0;::::1;17644:22;:52:::0;::::1;;;-1:-1:-1::0;;;;;;17670:26:0;::::1;15026:42;17670:26;17644:52;17643:121;;;-1:-1:-1::0;17724:12:0::1;::::0;-1:-1:-1;;;;;17711:25:0;;::::1;17724:12:::0;::::1;17711:25;:52:::0;::::1;;;-1:-1:-1::0;;;;;;17740:23:0;::::1;15026:42;17740:23;17711:52;-1:-1:-1::0;;;;;17810:12:0;::::1;;::::0;;;:4:::1;:12;::::0;;;;17615:150;;-1:-1:-1;17810:41:0::1;::::0;17844:6;;17823:15:::1;:13;:15::i;:::-;17810:29;;;;;;;;;;;;:33;;:41;;;;:::i;:::-;-1:-1:-1::0;;;;;17778:12:0;::::1;;::::0;;;:4:::1;:12;::::0;;;;;17791:15:::1;:13;:15::i;:::-;17778:29:::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17778:29:0;:73;17868:10;;:32:::1;;;17882:18;17868:32;:55;;;;17904:19;17868:55;17864:205;;;17940:43;17957:6;17965:9;17976:6;17940:16;:43::i;:::-;17864:205;;;18016:41;18031:6;18039:9;18050:6;18016:14;:41::i;:::-;17401:677;;;17299:779:::0;;;;;:::o;24587:167::-;24641:4;24666:1;24662;:5;24658:89;;;24690:5;24694:1;24690;:5;:::i;:::-;24683:12;;;;24658:89;-1:-1:-1;24734:1:0;24727:8;;2306:98;2364:7;2391:5;2395:1;2391;:5;:::i;19949:1107::-;13992:6;;-1:-1:-1;;;13992:6:0;;;;13991:7;13983:29;;;;-1:-1:-1;;;13983:29:0;;7167:2:1;13983:29:0;;;7149:21:1;7206:1;7186:18;;;7179:29;-1:-1:-1;;;7224:18:1;;;7217:39;7273:18;;13983:29:0;6965:332:1;13983:29:0;14023:6;:13;;-1:-1:-1;;;;14023:13:0;-1:-1:-1;;;14023:13:0;;;20055:4:::1;14023:13:::0;20037:24;;;:9:::1;:24;::::0;;;;;14023:6;20098:13;20037:24;;14023:13;20097:32:::1;::::0;20125:3:::1;::::0;20098:21:::1;::::0;20116:2:::1;20098:17;:21::i;20097:32::-;20072:57;;20170:9;20153:14;:26;20150:129;;;20199:6;::::0;::::1;;20196:72;;;-1:-1:-1::0;20243:9:0;20196:72:::1;20308:14;20292:15;:30;20289:67;;;20338:7;;;;20289:67;20452:16;::::0;;20466:1:::1;20452:16:::0;;;;;::::1;::::0;;20396:21:::1;::::0;20368:25:::1;::::0;20452:16;20466:1;20452:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;20452:16:0::1;20428:40;;20497:4;20479;20484:1;20479:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20479:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;20523:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;20523:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;20479:7;;20523:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20513:4;20518:1;20513:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20513:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;20547:6:::1;::::0;:194:::1;::::0;-1:-1:-1;;;20547:194:0;;:6;::::1;::::0;:57:::1;::::0;:194:::1;::::0;20619:14;;20547:6:::1;::::0;20664:4;;20691::::1;::::0;20711:15:::1;::::0;20547:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20752:14;20792:17;20768:21;:41;;;;:::i;:::-;20879:11;::::0;20752:58;;-1:-1:-1;20823:22:0::1;::::0;20848:43:::1;::::0;20879:11:::1;::::0;;::::1;::::0;::::1;::::0;20848:26:::1;::::0;20752:58;;20879:11:::1;20859:14:::0;::::1;;20848:10;:26::i;:43::-;20823:68:::0;-1:-1:-1;20902:16:0::1;20921:23;20823:68:::0;20921:6;:23:::1;:::i;:::-;20963:9;::::0;20955:37:::1;::::0;20902:42;;-1:-1:-1;;;;;;20963:9:0::1;::::0;20955:37;::::1;;;::::0;20902:42;;20963:9:::1;20955:37:::0;20963:9;20955:37;20902:42;20963:9;20955:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21011:9:0::1;::::0;21003:43:::1;::::0;-1:-1:-1;;;;;21011:9:0;;::::1;::::0;21003:43;::::1;;;::::0;21031:14;;21011:9:::1;21003:43:::0;21011:9;21003:43;21031:14;21011:9;21003:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20000:1056;;;;;;;14047:1;-1:-1:-1::0;14059:6:0;:14;;-1:-1:-1;;;;14059:14:0;;;19949:1107::o;2094:98::-;2152:7;2179:5;2183:1;2179;:5;:::i;21066:220::-;-1:-1:-1;;;;;21159:17:0;;;;;;:9;:17;;;;;:27;;21180:6;;21159:17;:27;;21180:6;;21159:27;:::i;:::-;;;;-1:-1:-1;;;;;;;21197:20:0;;;;;;:9;:20;;;;;:30;;21221:6;;21197:20;:30;;21221:6;;21197:30;:::i;:::-;;;;;;;;21260:9;-1:-1:-1;;;;;21243:35:0;21252:6;-1:-1:-1;;;;;21243:35:0;-1:-1:-1;;;;;;;;;;;21271:6:0;21243:35;;;;4854:25:1;;4842:2;4827:18;;4700:185;18208:1341:0;-1:-1:-1;;;;;18308:16:0;;;;;;:8;:16;;;;;;;;18307:17;:41;;;;-1:-1:-1;;;;;;18329:19:0;;;;;;:8;:19;;;;;;;;18328:20;18307:41;18299:65;;;;-1:-1:-1;;;18299:65:0;;11413:2:1;18299:65:0;;;11395:21:1;11452:2;11432:18;;;11425:30;-1:-1:-1;;;11471:18:1;;;11464:41;11522:18;;18299:65:0;11211:335:1;18299:65:0;18381:11;;-1:-1:-1;;;18381:11:0;;;;18377:220;;18417:13;;-1:-1:-1;;;18417:13:0;;;;18409:30;;;;-1:-1:-1;;;18409:30:0;;;;;;9994:2:1;9976:21;;;10033:1;10013:18;;;10006:29;-1:-1:-1;;;10066:2:1;10051:18;;10044:34;10110:2;10095:18;;9792:327;18409:30:0;18377:220;;;18476:13;;-1:-1:-1;;;18476:13:0;;;;18472:114;;18532:9;-1:-1:-1;;;;;18515:30:0;18524:6;-1:-1:-1;;;;;18515:30:0;-1:-1:-1;;;;;;;;;;;18543:1:0;18515:30;;;;4854:25:1;;4842:2;4827:18;;4700:185;18472:114:0;-1:-1:-1;;;;;18613:27:0;;;;;;:19;:27;;;;;;;;18609:87;;18675:8;:6;:8::i;:::-;18665:6;:18;;18657:27;;;;;;-1:-1:-1;;;;;18712:34:0;;;;;;:23;:34;;;;;;;;18708:172;;18824:10;;18805:18;;18836:3;;18805:29;;18824:10;;;;;;;18805:29;:::i;:::-;18804:35;;;;:::i;:::-;-1:-1:-1;;;;;18772:20:0;;;;;;:9;:20;;;;;;:27;;18793:6;;18772:27;:::i;:::-;18771:69;18763:105;;;;-1:-1:-1;;;18763:105:0;;8963:2:1;18763:105:0;;;8945:21:1;9002:2;8982:18;;;8975:30;9041:25;9021:18;;;9014:53;9084:18;;18763:105:0;8761:347:1;18763:105:0;18916:12;;18892:11;;-1:-1:-1;;;;;18904:24:0;;;18916:12;;18904:24;;:54;;-1:-1:-1;18944:14:0;;-1:-1:-1;;;;;18931:27:0;;;18944:14;;18931:27;18904:54;18892:66;;18972:16;18990:10;19004:29;19018:6;19026;19004:13;:29::i;:::-;19077:13;;19068:4;19050:24;;;;:9;:24;;;;;;18971:62;;-1:-1:-1;18971:62:0;;-1:-1:-1;;19049:58:0;;;;-1:-1:-1;19096:11:0;;;;;;;19095:12;19049:58;:69;;;;-1:-1:-1;19112:6:0;;-1:-1:-1;;;19112:6:0;;;;19111:7;19049:69;19046:180;;;19138:6;:22;;;;-1:-1:-1;19149:11:0;;;;;;;19148:12;19138:22;19135:80;;;19181:18;19192:6;19181:10;:18::i;:::-;-1:-1:-1;;;;;19258:17:0;;;;;;:9;:17;;;;;;:29;;19280:6;19258:21;:29::i;:::-;-1:-1:-1;;;;;19238:17:0;;;;;;;:9;:17;;;;;;:49;;;;19321:20;;;;;;;:37;;19346:11;19321:24;:37::i;:::-;-1:-1:-1;;;;;19298:20:0;;;;;;:9;:20;;;;;;:60;;;;19414:4;19396:24;;;;:35;;19425:5;19396:28;:35::i;:::-;19387:4;19369:24;;;;:9;:24;;;;;;;:62;;;;19447:38;;-1:-1:-1;;;;;19447:38:0;;;-1:-1:-1;;;;;;;;;;;19447:38:0;;;19479:5;4854:25:1;;4842:2;4827:18;;4700:185;19447:38:0;;;;;;;;19518:9;-1:-1:-1;;;;;19501:40:0;19510:6;-1:-1:-1;;;;;19501:40:0;-1:-1:-1;;;;;;;;;;;19529:11:0;19501:40;;;;4854:25:1;;4842:2;4827:18;;4700:185;19501:40:0;;;;;;;;18288:1261;;;18208:1341;;;:::o;19557:384::-;19628:17;19647:11;19671:9;19696:6;19693:98;;;-1:-1:-1;19725:8:0;;;;;;;19693:98;;;-1:-1:-1;19772:7:0;;;;;;;19693:98;19803:15;19834:3;19822:10;;;;:6;:10;:::i;:::-;19821:16;;;;:::i;:::-;19803:34;-1:-1:-1;19848:17:0;19868:19;19803:34;19868:6;:19;:::i;:::-;19848:39;19920:10;;-1:-1:-1;19557:384:0;;-1:-1:-1;;;;;19557:384:0:o;2200:98::-;2258:7;2285:5;2289:1;2285;:5;:::i;14:156:1:-;80:20;;140:4;129:16;;119:27;;109:55;;160:1;157;150:12;109:55;14:156;;;:::o;175:247::-;234:6;287:2;275:9;266:7;262:23;258:32;255:52;;;303:1;300;293:12;255:52;342:9;329:23;361:31;386:5;361:31;:::i;427:251::-;497:6;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;598:9;592:16;617:31;642:5;617:31;:::i;683:388::-;751:6;759;812:2;800:9;791:7;787:23;783:32;780:52;;;828:1;825;818:12;780:52;867:9;854:23;886:31;911:5;886:31;:::i;:::-;936:5;-1:-1:-1;993:2:1;978:18;;965:32;1006:33;965:32;1006:33;:::i;:::-;1058:7;1048:17;;;683:388;;;;;:::o;1076:456::-;1153:6;1161;1169;1222:2;1210:9;1201:7;1197:23;1193:32;1190:52;;;1238:1;1235;1228:12;1190:52;1277:9;1264:23;1296:31;1321:5;1296:31;:::i;:::-;1346:5;-1:-1:-1;1403:2:1;1388:18;;1375:32;1416:33;1375:32;1416:33;:::i;:::-;1076:456;;1468:7;;-1:-1:-1;;;1522:2:1;1507:18;;;;1494:32;;1076:456::o;1537:382::-;1602:6;1610;1663:2;1651:9;1642:7;1638:23;1634:32;1631:52;;;1679:1;1676;1669:12;1631:52;1718:9;1705:23;1737:31;1762:5;1737:31;:::i;:::-;1787:5;-1:-1:-1;1844:2:1;1829:18;;1816:32;1857:30;1816:32;1857:30;:::i;1924:315::-;1992:6;2000;2053:2;2041:9;2032:7;2028:23;2024:32;2021:52;;;2069:1;2066;2059:12;2021:52;2108:9;2095:23;2127:31;2152:5;2127:31;:::i;:::-;2177:5;2229:2;2214:18;;;;2201:32;;-1:-1:-1;;;1924:315:1:o;2244:241::-;2300:6;2353:2;2341:9;2332:7;2328:23;2324:32;2321:52;;;2369:1;2366;2359:12;2321:52;2408:9;2395:23;2427:28;2449:5;2427:28;:::i;2490:245::-;2557:6;2610:2;2598:9;2589:7;2585:23;2581:32;2578:52;;;2626:1;2623;2616:12;2578:52;2658:9;2652:16;2677:28;2699:5;2677:28;:::i;2740:180::-;2799:6;2852:2;2840:9;2831:7;2827:23;2823:32;2820:52;;;2868:1;2865;2858:12;2820:52;-1:-1:-1;2891:23:1;;2740:180;-1:-1:-1;2740:180:1:o;2925:184::-;2995:6;3048:2;3036:9;3027:7;3023:23;3019:32;3016:52;;;3064:1;3061;3054:12;3016:52;-1:-1:-1;3087:16:1;;2925:184;-1:-1:-1;2925:184:1:o;3114:182::-;3171:6;3224:2;3212:9;3203:7;3199:23;3195:32;3192:52;;;3240:1;3237;3230:12;3192:52;3263:27;3280:9;3263:27;:::i;3301:252::-;3365:6;3373;3426:2;3414:9;3405:7;3401:23;3397:32;3394:52;;;3442:1;3439;3432:12;3394:52;3465:27;3482:9;3465:27;:::i;:::-;3455:37;;3511:36;3543:2;3532:9;3528:18;3511:36;:::i;:::-;3501:46;;3301:252;;;;;:::o;4890:597::-;5002:4;5031:2;5060;5049:9;5042:21;5092:6;5086:13;5135:6;5130:2;5119:9;5115:18;5108:34;5160:1;5170:140;5184:6;5181:1;5178:13;5170:140;;;5279:14;;;5275:23;;5269:30;5245:17;;;5264:2;5241:26;5234:66;5199:10;;5170:140;;;5328:6;5325:1;5322:13;5319:91;;;5398:1;5393:2;5384:6;5373:9;5369:22;5365:31;5358:42;5319:91;-1:-1:-1;5471:2:1;5450:15;-1:-1:-1;;5446:29:1;5431:45;;;;5478:2;5427:54;;4890:597;-1:-1:-1;;;4890:597:1:o;10533:332::-;10735:2;10717:21;;;10774:1;10754:18;;;10747:29;-1:-1:-1;;;10807:2:1;10792:18;;10785:39;10856:2;10841:18;;10533:332::o;11733:980::-;11995:4;12043:3;12032:9;12028:19;12074:6;12063:9;12056:25;12100:2;12138:6;12133:2;12122:9;12118:18;12111:34;12181:3;12176:2;12165:9;12161:18;12154:31;12205:6;12240;12234:13;12271:6;12263;12256:22;12309:3;12298:9;12294:19;12287:26;;12348:2;12340:6;12336:15;12322:29;;12369:1;12379:195;12393:6;12390:1;12387:13;12379:195;;;12458:13;;-1:-1:-1;;;;;12454:39:1;12442:52;;12549:15;;;;12514:12;;;;12490:1;12408:9;12379:195;;;-1:-1:-1;;;;;;;12630:32:1;;;;12625:2;12610:18;;12603:60;-1:-1:-1;;;12694:3:1;12679:19;12672:35;12591:3;11733:980;-1:-1:-1;;;11733:980:1:o;12907:128::-;12947:3;12978:1;12974:6;12971:1;12968:13;12965:39;;;12984:18;;:::i;:::-;-1:-1:-1;13020:9:1;;12907:128::o;13040:217::-;13080:1;13106;13096:132;;13150:10;13145:3;13141:20;13138:1;13131:31;13185:4;13182:1;13175:15;13213:4;13210:1;13203:15;13096:132;-1:-1:-1;13242:9:1;;13040:217::o;13262:422::-;13351:1;13394:5;13351:1;13408:270;13429:7;13419:8;13416:21;13408:270;;;13488:4;13484:1;13480:6;13476:17;13470:4;13467:27;13464:53;;;13497:18;;:::i;:::-;13547:7;13537:8;13533:22;13530:55;;;13567:16;;;;13530:55;13646:22;;;;13606:15;;;;13408:270;;;13412:3;13262:422;;;;;:::o;13689:140::-;13747:5;13776:47;13817:4;13807:8;13803:19;13797:4;13883:5;13913:8;13903:80;;-1:-1:-1;13954:1:1;13968:5;;13903:80;14002:4;13992:76;;-1:-1:-1;14039:1:1;14053:5;;13992:76;14084:4;14102:1;14097:59;;;;14170:1;14165:130;;;;14077:218;;14097:59;14127:1;14118:10;;14141:5;;;14165:130;14202:3;14192:8;14189:17;14186:43;;;14209:18;;:::i;:::-;-1:-1:-1;;14265:1:1;14251:16;;14280:5;;14077:218;;14379:2;14369:8;14366:16;14360:3;14354:4;14351:13;14347:36;14341:2;14331:8;14328:16;14323:2;14317:4;14314:12;14310:35;14307:77;14304:159;;;-1:-1:-1;14416:19:1;;;14448:5;;14304:159;14495:34;14520:8;14514:4;14495:34;:::i;:::-;14565:6;14561:1;14557:6;14553:19;14544:7;14541:32;14538:58;;;14576:18;;:::i;:::-;14614:20;;13834:806;-1:-1:-1;;;13834:806:1:o;14645:168::-;14685:7;14751:1;14747;14743:6;14739:14;14736:1;14733:21;14728:1;14721:9;14714:17;14710:45;14707:71;;;14758:18;;:::i;:::-;-1:-1:-1;14798:9:1;;14645:168::o;14818:125::-;14858:4;14886:1;14883;14880:8;14877:34;;;14891:18;;:::i;:::-;-1:-1:-1;14928:9:1;;14818:125::o;14948:127::-;15009:10;15004:3;15000:20;14997:1;14990:31;15040:4;15037:1;15030:15;15064:4;15061:1;15054:15;15080:127;15141:10;15136:3;15132:20;15129:1;15122:31;15172:4;15169:1;15162:15;15196:4;15193:1;15186:15;15344:131;-1:-1:-1;;;;;15419:31:1;;15409:42;;15399:70;;15465:1;15462;15455:12;15480:118;15566:5;15559:13;15552:21;15545:5;15542:32;15532:60;;15588:1;15585;15578:12
Swarm Source
ipfs://08abeb8bbb359778f5c0fec14e7a35ecde3535c058ad83321caf224b501ee40b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.