More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 17 from a total of 17 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 19427301 | 175 days ago | IN | 0 ETH | 0.00363341 | ||||
Approve | 19427300 | 175 days ago | IN | 0 ETH | 0.00324696 | ||||
Approve | 19427294 | 175 days ago | IN | 0 ETH | 0.00349498 | ||||
Approve | 19427289 | 175 days ago | IN | 0 ETH | 0.00373338 | ||||
Approve | 19427288 | 175 days ago | IN | 0 ETH | 0.00338473 | ||||
Approve | 19427288 | 175 days ago | IN | 0 ETH | 0.00352085 | ||||
Approve | 19427285 | 175 days ago | IN | 0 ETH | 0.0035414 | ||||
Approve | 19427285 | 175 days ago | IN | 0 ETH | 0.0035414 | ||||
Approve | 19427285 | 175 days ago | IN | 0 ETH | 0.00363427 | ||||
Approve | 19427284 | 175 days ago | IN | 0 ETH | 0.00356526 | ||||
Approve | 19427284 | 175 days ago | IN | 0 ETH | 0.00365814 | ||||
Approve | 19427283 | 175 days ago | IN | 0 ETH | 0.00366068 | ||||
Approve | 19427283 | 175 days ago | IN | 0 ETH | 0.00366068 | ||||
Approve | 19427242 | 175 days ago | IN | 0 ETH | 0.00312205 | ||||
Approve | 19427229 | 175 days ago | IN | 0 ETH | 0.00361463 | ||||
Approve | 19427199 | 175 days ago | IN | 0 ETH | 0.00327539 | ||||
0x60c06040 | 19427154 | 175 days ago | IN | 0 ETH | 0.363186 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Eggs
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-13 */ /* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 🥚$EGGS🥚 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ an experiemntal erc-20 project @@@@@@@@@@@@@@@@@@,.....*@@@@@#,*@@@@@@@@@@@@@@@@@ your tokens double every 24 hours @@@@@@@@@@@@@@.. .. ..@@@@@@@@@@@@ @@@@@@@@@@@.. , .&@@@@@@@@@ @@@@@@@@@,. .. ..@@@@@@@@ website @@@@@@@%.. .. .*@@@@@@ @@@@@@@... .. .(@@@@@ https://eggs.wtf @@@@@@,... .. ..@@@@@ @@@@@@@.... ,.. . ..,@@@@@ twitter @@@@@@@&,.... ..,.. ...,@@@@@@ @@@@@@@@@%,.............%@@,.............,@@@@@@@@ https://twitter.com/wtf_eggs @@@@@@@@@@@@@&**,,,*&@@@@@@@@@(,,,,,,,/@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ telegram @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ https://t.me/eggswtf @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.7.4; library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } function div(int256 a, int256 b) internal pure returns (int256) { require(b != -1 || a != MIN_INT256); return a / b; } function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IUniswapSwapPair { 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; function initialize(address, address) external; } interface IUniswapSwapRouter{ function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function 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 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); 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 IUniswapSwapFactory { 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; } contract Ownable { address private _owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { _owner = msg.sender; } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner()); _; } function isOwner() public view returns (bool) { return msg.sender == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipRenounced(_owner); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0)); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } abstract contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor( string memory name_, string memory symbol_, uint8 decimals_ ) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract Eggs is ERC20Detailed, Ownable { using SafeMath for uint256; using SafeMathInt for int256; event LogRebase(uint256 indexed epoch, uint256 totalSupply); string public _name = "Eggs"; string public _symbol = "EGGS"; uint8 public _decimals = 5; IUniswapSwapPair public pairContract; mapping(address => bool) _isFeeExempt; modifier validRecipient(address to) { require(to != address(0x0)); _; } uint256 public constant DECIMALS = 5; uint256 public constant MAX_UINT256 = ~uint256(0); uint8 public constant RATE_DECIMALS = 7; uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 730 * 10**3 * 10**DECIMALS; uint256 public liquidityFee = 10; uint256 public treasuryFee = 100; uint256 public DEVFundFee = 100; uint256 public sellFee = 10; uint256 public firePitFee = 10; uint256 public totalFee = liquidityFee.add(treasuryFee).add(DEVFundFee).add( firePitFee ); uint256 public feeDenominator = 1000; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address public autoLiquidityReceiver; address public treasuryReceiver; address public DEVFundReceiver; address public firePit; address public pairAddress; bool public swapEnabled = true; IUniswapSwapRouter public router; address public pair; bool inSwap = false; modifier swapping() { inSwap = true; _; inSwap = false; } uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY); uint256 private constant MAX_SUPPLY = 730 * 10**7 * 10**DECIMALS; bool public _autoRebase; bool public _autoAddLiquidity; uint256 public _initRebaseStartTime; uint256 public _lastRebasedTime; uint256 public _lastAddLiquidityTime; uint256 public _totalSupply; uint256 private _gonsPerFragment; mapping(address => uint256) private _gonBalances; mapping(address => mapping(address => uint256)) private _allowedFragments; mapping(address => bool) public blacklist; constructor() ERC20Detailed("Eggs", "EGGS", uint8(DECIMALS)) Ownable() { router = IUniswapSwapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IUniswapSwapFactory(router.factory()).createPair( router.WETH(), address(this) ); autoLiquidityReceiver = 0x2613Aa009E45ADF040Ea63421E969C86Ee964825; treasuryReceiver = 0x37e837Ac5405D1846d691F09fb17Dd3115992207; DEVFundReceiver = 0x9bD2E12b0377EDb28c6692393202f7501B5d8D29; firePit = DEAD; _allowedFragments[address(this)][address(router)] = uint256(-1); pairAddress = pair; pairContract = IUniswapSwapPair(pair); _totalSupply = INITIAL_FRAGMENTS_SUPPLY; _gonBalances[treasuryReceiver] = TOTAL_GONS; _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _initRebaseStartTime = block.timestamp; _lastRebasedTime = block.timestamp; _autoRebase = true; _autoAddLiquidity = true; _isFeeExempt[treasuryReceiver] = true; _isFeeExempt[address(this)] = true; _transferOwnership(treasuryReceiver); emit Transfer(address(0x0), treasuryReceiver, _totalSupply); } function rebase() internal { if ( inSwap ) return; uint256 rebaseRate; uint256 deltaTimeFromInit = block.timestamp - _initRebaseStartTime; uint256 deltaTime = block.timestamp - _lastRebasedTime; uint256 times = deltaTime.div(15 minutes); uint256 epoch = times.mul(15); if (deltaTimeFromInit < (365 days)) { rebaseRate = 10400000; } else if (deltaTimeFromInit >= (365 days)) { rebaseRate = 5200000; } else if (deltaTimeFromInit >= ((15 * 365 days) / 10)) { rebaseRate = 2600000; } else if (deltaTimeFromInit >= (7 * 365 days)) { rebaseRate = 1300000; } for (uint256 i = 0; i < times; i++) { _totalSupply = _totalSupply .mul((10**RATE_DECIMALS).add(rebaseRate)) .div(10**RATE_DECIMALS); } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); _lastRebasedTime = _lastRebasedTime.add(times.mul(15 minutes)); pairContract.sync(); emit LogRebase(epoch, _totalSupply); } function transfer(address to, uint256 value) external override validRecipient(to) returns (bool) { _transferFrom(msg.sender, to, value); return true; } function transferFrom( address from, address to, uint256 value ) external override validRecipient(to) returns (bool) { if (_allowedFragments[from][msg.sender] != uint256(-1)) { _allowedFragments[from][msg.sender] = _allowedFragments[from][ msg.sender ].sub(value, "Insufficient Allowance"); } _transferFrom(from, to, value); return true; } function _basicTransfer( address from, address to, uint256 amount ) internal returns (bool) { uint256 gonAmount = amount.mul(_gonsPerFragment); _gonBalances[from] = _gonBalances[from].sub(gonAmount); _gonBalances[to] = _gonBalances[to].add(gonAmount); return true; } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require(!blacklist[sender] && !blacklist[recipient], "in_blacklist"); if (inSwap) { return _basicTransfer(sender, recipient, amount); } if (shouldRebase()) { rebase(); } if (shouldAddLiquidity()) { addLiquidity(); } if (shouldSwapBack()) { swapBack(); } uint256 gonAmount = amount.mul(_gonsPerFragment); _gonBalances[sender] = _gonBalances[sender].sub(gonAmount); uint256 gonAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, gonAmount) : gonAmount; _gonBalances[recipient] = _gonBalances[recipient].add( gonAmountReceived ); emit Transfer( sender, recipient, gonAmountReceived.div(_gonsPerFragment) ); return true; } function takeFee( address sender, address recipient, uint256 gonAmount ) internal returns (uint256) { uint256 _totalFee = totalFee; uint256 _treasuryFee = treasuryFee; if (recipient == pair) { _totalFee = totalFee.add(sellFee); _treasuryFee = treasuryFee.add(sellFee); } uint256 feeAmount = gonAmount.div(feeDenominator).mul(_totalFee); _gonBalances[firePit] = _gonBalances[firePit].add( gonAmount.div(feeDenominator).mul(firePitFee) ); _gonBalances[address(this)] = _gonBalances[address(this)].add( gonAmount.div(feeDenominator).mul(_treasuryFee.add(DEVFundFee)) ); _gonBalances[autoLiquidityReceiver] = _gonBalances[autoLiquidityReceiver].add( gonAmount.div(feeDenominator).mul(liquidityFee) ); emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment)); return gonAmount.sub(feeAmount); } function addLiquidity() internal swapping { uint256 autoLiquidityAmount = _gonBalances[autoLiquidityReceiver].div( _gonsPerFragment ); _gonBalances[address(this)] = _gonBalances[address(this)].add( _gonBalances[autoLiquidityReceiver] ); _gonBalances[autoLiquidityReceiver] = 0; uint256 amountToLiquify = autoLiquidityAmount.div(2); uint256 amountToSwap = autoLiquidityAmount.sub(amountToLiquify); if( amountToSwap == 0 ) { return; } address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETHLiquidity = address(this).balance.sub(balanceBefore); if (amountToLiquify > 0 && amountETHLiquidity > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); } _lastAddLiquidityTime = block.timestamp; } function swapBack() internal swapping { uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment); if( amountToSwap == 0) { return; } uint256 balanceBefore = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETHToTreasuryAndDEV = address(this).balance.sub( balanceBefore ); (bool success, ) = payable(treasuryReceiver).call{ value: amountETHToTreasuryAndDEV.mul(treasuryFee).div( treasuryFee.add(DEVFundFee) ), gas: 30000 }(""); (success, ) = payable(DEVFundReceiver).call{ value: amountETHToTreasuryAndDEV.mul(DEVFundFee).div( treasuryFee.add(DEVFundFee) ), gas: 30000 }(""); } function withdrawAllToTreasury() external swapping onlyOwner { uint256 amountToSwap = _gonBalances[address(this)].div(_gonsPerFragment); require( amountToSwap > 0,"There is no Eggs token deposited in token contract"); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, treasuryReceiver, block.timestamp ); } function shouldTakeFee(address from, address to) internal view returns (bool) { return (pair == from || pair == to) && !_isFeeExempt[from]; } function shouldRebase() internal view returns (bool) { return _autoRebase && (_totalSupply < MAX_SUPPLY) && msg.sender != pair && !inSwap && block.timestamp >= (_lastRebasedTime + 15 minutes); } function shouldAddLiquidity() internal view returns (bool) { return _autoAddLiquidity && !inSwap && msg.sender != pair; } function shouldSwapBack() internal view returns (bool) { return !inSwap && msg.sender != pair ; } function setAutoRebase(bool _flag) external onlyOwner { if (_flag) { _autoRebase = _flag; _lastRebasedTime = block.timestamp; } else { _autoRebase = _flag; } } function setAutoAddLiquidity(bool _flag) external onlyOwner { if(_flag) { _autoAddLiquidity = _flag; _lastAddLiquidityTime = block.timestamp; } else { _autoAddLiquidity = _flag; } } function allowance(address owner_, address spender) external view override returns (uint256) { return _allowedFragments[owner_][spender]; } function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub( subtractedValue ); } emit Approval( msg.sender, spender, _allowedFragments[msg.sender][spender] ); return true; } function increaseAllowance(address spender, uint256 addedValue) external returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][ spender ].add(addedValue); emit Approval( msg.sender, spender, _allowedFragments[msg.sender][spender] ); return true; } function approve(address spender, uint256 value) external override returns (bool) { _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function checkFeeExempt(address _addr) external view returns (bool) { return _isFeeExempt[_addr]; } function getCirculatingSupply() public view returns (uint256) { return (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div( _gonsPerFragment ); } function isNotInSwap() external view returns (bool) { return !inSwap; } function manualSync() external { IUniswapSwapPair(pair).sync(); } function setFeeReceivers( address _autoLiquidityReceiver, address _treasuryReceiver, address _DEVFundReceiver, address _firePit ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; treasuryReceiver = _treasuryReceiver; DEVFundReceiver = _DEVFundReceiver; firePit = _firePit; } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { uint256 liquidityBalance = _gonBalances[pair].div(_gonsPerFragment); return accuracy.mul(liquidityBalance.mul(2)).div(getCirculatingSupply()); } function setWhitelist(address _addr) external onlyOwner { _isFeeExempt[_addr] = true; } function setBotBlacklist(address _botAddress, bool _flag) external onlyOwner { require(isContract(_botAddress), "only contract address, not allowed exteranlly owned account"); blacklist[_botAddress] = _flag; } function setPairAddress(address _pairAddress) public onlyOwner { pairAddress = _pairAddress; } function setLP(address _address) external onlyOwner { pairContract = IUniswapSwapPair(_address); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address who) external view override returns (uint256) { return _gonBalances[who].div(_gonsPerFragment); } function isContract(address addr) internal view returns (bool) { uint size; assembly { size := extcodesize(addr) } return size > 0; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEVFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEVFundReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoAddLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initRebaseStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastAddLiquidityTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastRebasedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firePit","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firePitFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","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":[],"name":"isNotInSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract IUniswapSwapPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoAddLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_botAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"setBotBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_DEVFundReceiver","type":"address"},{"internalType":"address","name":"_firePit","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pairAddress","type":"address"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAllToTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260046080819052634567677360e01b60a0908152620000279160039190620006d8565b50604080518082019091526004808252634547475360e01b6020909201918252620000539181620006d8565b506005805460ff191681179055600a6007819055606460088190556009819055818055600b829055620000af91906200009b908183826200050a602090811b620017de17901c565b6200050a60201b620017de1790919060201c565b600c556103e8600d55600e80546001600160a01b031990811661dead17909155600f805490911690556014805460ff60a01b19908116600160a01b179091556016805490911690553480156200010457600080fd5b50604051806040016040528060048152602001634567677360e01b815250604051806040016040528060048152602001634547475360e01b8152506005826000908051906020019062000159929190620006d8565b5081516200016f906001906020850190620006d8565b506002805460ff191660ff9290921691909117610100600160a81b0319166101003302179055505060158054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031990911617908190556040805163c45a015560e01b815290516001600160a01b039092169163c45a015591600480820192602092909190829003018186803b1580156200020457600080fd5b505afa15801562000219573d6000803e3d6000fd5b505050506040513d60208110156200023057600080fd5b5051601554604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693169163ad5c4648916004808301926020929190829003018186803b1580156200027f57600080fd5b505afa15801562000294573d6000803e3d6000fd5b505050506040513d6020811015620002ab57600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b0390921660048301523060248301525160448083019260209291908290030181600087803b158015620002fb57600080fd5b505af115801562000310573d6000803e3d6000fd5b505050506040513d60208110156200032757600080fd5b5051601680546001600160a01b039283166001600160a01b0319918216178255601080548216732613aa009e45adf040ea63421e969c86ee9648251790556011805482167337e837ac5405d1846d691f09fb17dd3115992207178155601280548316739bd2e12b0377edb28c6692393202f7501b5d8d29179055600e54601380548416918616919091179055306000908152601d60209081526040808320601554881684528252808320600019905594546014805490951690871690811790945560058054610100909502610100600160a81b0319909516949094179093556410ff239a00601a90815591549094168452601c825291909220640131c017ff1990819055905462000441926200056c811b6200183817901c565b601b554260178190556018556016805460ff60b01b1960ff60a81b19909116600160a81b1716600160b01b179055601180546001600160a01b03908116600090815260066020526040808220805460ff19908116600190811790925530845291909220805490911690911790559054620004bc9116620005b6565b601154601a5460408051918252516001600160a01b03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a362000784565b60008282018381101562000565576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006200056583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063160201b60201c565b6001600160a01b038116620005ca57600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183620006c15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620006855781810151838201526020016200066b565b50505050905090810190601f168015620006b35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620006ce57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200071057600085556200075b565b82601f106200072b57805160ff19168380011785556200075b565b828001600101855582156200075b579182015b828111156200075b5782518255916020019190600101906200073e565b50620007699291506200076d565b5090565b5b808211156200076957600081556001016200076e565b6128d080620007946000396000f3fe60806040526004361061037a5760003560e01c806383b4ac68116101d1578063afb9cf6d11610102578063d4399790116100a0578063e15beb801161006f578063e15beb8014610ab0578063f2fde38b14610adc578063f887ea4014610b0f578063f9f92be414610b2457610381565b8063d439979014610a03578063d51ed1c814610a36578063dd62ed3e14610a60578063e060f73b14610a9b57610381565b8063ca33e64c116100dc578063ca33e64c14610998578063cc32d176146109ad578063cfbac92f146109c2578063d28d8852146109ee57610381565b8063afb9cf6d14610959578063b09f12661461096e578063bd5955811461098357610381565b80639b87676c1161016f578063a6cf729311610149578063a6cf7293146108e1578063a8aa1b31146108f6578063a8b089821461090b578063a9059cbb1461092057610381565b80639b87676c14610860578063a22d483214610875578063a457c2d7146108a857610381565b80638f32d59b116101ab5780638f32d59b1461080c57806395d89b411461082157806398118cb4146108365780639b2912cc1461084b57610381565b806383b4ac68146107af578063854cff2f146107c45780638da5cb5b146107f757610381565b806332b75683116102ab5780634d709adf116102495780636ddd1713116102235780636ddd17131461073d57806370a0823114610752578063715018a614610785578063753d02a11461079a57610381565b80634d709adf146106fe5780635a604c52146107135780636912652c1461072857610381565b8063395093511161028557806339509351146106505780633c8e556d146106895780633eaaf86b146106d457806349d98142146106e957610381565b806332b75683146105eb57806333a581d21461060057806337c9be871461061557610381565b806325e4405e116103185780632e0f2625116102f25780632e0f2625146105615780632f34d28214610576578063313ce567146105ab57806332424aa3146105d657610381565b806325e4405e146105225780632b112e49146105375780632b14ca561461054c57610381565b8063180b0d7e11610354578063180b0d7e1461048e57806318160ddd146104b55780631df4ccfc146104ca57806323b872dd146104df57610381565b806306fdde031461038657806308b1fd8f14610410578063095ea7b31461044157610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610b57565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041c57600080fd5b50610425610bed565b604080516001600160a01b039092168252519081900360200190f35b34801561044d57600080fd5b5061047a6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610bfc565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506104a3610c63565b60408051918252519081900360200190f35b3480156104c157600080fd5b506104a3610c69565b3480156104d657600080fd5b506104a3610c6f565b3480156104eb57600080fd5b5061047a6004803603606081101561050257600080fd5b506001600160a01b03813581169160208101359091169060400135610c75565b34801561052e57600080fd5b50610425610d4f565b34801561054357600080fd5b506104a3610d5e565b34801561055857600080fd5b506104a3610db9565b34801561056d57600080fd5b506104a3610dbf565b34801561058257600080fd5b506105a96004803603602081101561059957600080fd5b50356001600160a01b0316610dc4565b005b3480156105b757600080fd5b506105c0610dfd565b6040805160ff9092168252519081900360200190f35b3480156105e257600080fd5b506105c0610e06565b3480156105f757600080fd5b506104a3610e0f565b34801561060c57600080fd5b506104a3610e15565b34801561062157600080fd5b506105a96004803603604081101561063857600080fd5b506001600160a01b0381351690602001351515610e1b565b34801561065c57600080fd5b5061047a6004803603604081101561067357600080fd5b506001600160a01b038135169060200135610e9b565b34801561069557600080fd5b506105a9600480360360808110156106ac57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610f2e565b3480156106e057600080fd5b506104a3610f8f565b3480156106f557600080fd5b50610425610f95565b34801561070a57600080fd5b50610425610fa4565b34801561071f57600080fd5b506105c0610fb8565b34801561073457600080fd5b5061047a610fbd565b34801561074957600080fd5b5061047a610fcd565b34801561075e57600080fd5b506104a36004803603602081101561077557600080fd5b50356001600160a01b0316610fdd565b34801561079157600080fd5b506105a9611005565b3480156107a657600080fd5b506105a9611065565b3480156107bb57600080fd5b5061047a6110cf565b3480156107d057600080fd5b506105a9600480360360208110156107e757600080fd5b50356001600160a01b03166110e0565b34801561080357600080fd5b50610425611115565b34801561081857600080fd5b5061047a611129565b34801561082d57600080fd5b5061039b61113f565b34801561084257600080fd5b506104a361119f565b34801561085757600080fd5b506104a36111a5565b34801561086c57600080fd5b506104a36111ab565b34801561088157600080fd5b506105a96004803603602081101561089857600080fd5b50356001600160a01b03166111b1565b3480156108b457600080fd5b5061047a600480360360408110156108cb57600080fd5b506001600160a01b0381351690602001356111e4565b3480156108ed57600080fd5b506104a36112cd565b34801561090257600080fd5b506104256112d3565b34801561091757600080fd5b506104256112e2565b34801561092c57600080fd5b5061047a6004803603604081101561094357600080fd5b506001600160a01b0381351690602001356112f1565b34801561096557600080fd5b5061047a61131d565b34801561097a57600080fd5b5061039b61132d565b34801561098f57600080fd5b506105a96113bb565b3480156109a457600080fd5b506104256115e8565b3480156109b957600080fd5b506104a36115f7565b3480156109ce57600080fd5b506105a9600480360360208110156109e557600080fd5b503515156115fd565b3480156109fa57600080fd5b5061039b61164f565b348015610a0f57600080fd5b5061047a60048036036020811015610a2657600080fd5b50356001600160a01b03166116aa565b348015610a4257600080fd5b506104a360048036036020811015610a5957600080fd5b50356116c8565b348015610a6c57600080fd5b506104a360048036036040811015610a8357600080fd5b506001600160a01b038135811691602001351661171c565b348015610aa757600080fd5b506104a3611747565b348015610abc57600080fd5b506105a960048036036020811015610ad357600080fd5b5035151561174d565b348015610ae857600080fd5b506105a960048036036020811015610aff57600080fd5b50356001600160a01b03166117a0565b348015610b1b57600080fd5b506104256117ba565b348015610b3057600080fd5b5061047a60048036036020811015610b4757600080fd5b50356001600160a01b03166117c9565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610be35780601f10610bb857610100808354040283529160200191610be3565b820191906000526020600020905b815481529060010190602001808311610bc657829003601f168201915b5050505050905090565b6011546001600160a01b031681565b336000818152601d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600d5481565b601a5490565b600c5481565b6000826001600160a01b038116610c8b57600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d38576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610d1391859061187a565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d43858585611911565b50600195945050505050565b6012546001600160a01b031681565b601b54600f546001600160a01b039081166000908152601c602052604080822054600e5490931682528120549092610db4929091610dae9190610da890640131c017ff1990611b02565b90611b02565b90611838565b905090565b600a5481565b600581565b610dcc611129565b610dd557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60025460ff1690565b60055460ff1681565b60185481565b60001981565b610e23611129565b610e2c57600080fd5b610e3582611b44565b610e705760405162461bcd60e51b815260040180806020018281038252603b81526020018061282e603b913960400191505060405180910390fd5b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610ec990836117de565b336000818152601d602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610f36611129565b610f3f57600080fd5b601080546001600160a01b039586166001600160a01b0319918216179091556011805494861694821694909417909355601280549285169284169290921790915560138054919093169116179055565b601a5481565b6013546001600160a01b031681565b60055461010090046001600160a01b031681565b600781565b601654600160b01b900460ff1681565b601454600160a01b900460ff1681565b601b546001600160a01b0382166000908152601c60205260408120549091610c5d9190611838565b61100d611129565b61101657600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b601660009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156110b557600080fd5b505af11580156110c9573d6000803e3d6000fd5b50505050565b601654600160a01b900460ff161590565b6110e8611129565b6110f157600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610be35780601f10610bb857610100808354040283529160200191610be3565b60075481565b60195481565b60175481565b6111b9611129565b6111c257600080fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601d602090815260408083206001600160a01b038616845290915281205480831061123857336000908152601d602090815260408083206001600160a01b0388168452909152812055611267565b6112428184611b02565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600b5481565b6016546001600160a01b031681565b6014546001600160a01b031681565b6000826001600160a01b03811661130757600080fd5b611312338585611911565b506001949350505050565b601654600160a81b900460ff1681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113b35780601f10611388576101008083540402835291602001916113b3565b820191906000526020600020905b81548152906001019060200180831161139657829003601f168201915b505050505081565b6016805460ff60a01b1916600160a01b1790556113d6611129565b6113df57600080fd5b601b54306000908152601c602052604081205490916113fe9190611838565b90506000811161143f5760405162461bcd60e51b81526004018080602001828103825260328152602001806128696032913960400191505060405180910390fd5b6040805160028082526060808301845292602083019080368337019050509050308160008151811061146d57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50518151829060019081106114fc57fe5b6001600160a01b0392831660209182029290920181019190915260155460115460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561159657818101518382015260200161157e565b505050509050019650505050505050600060405180830381600087803b1580156115bf57600080fd5b505af11580156115d3573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6010546001600160a01b031681565b60085481565b611605611129565b61160e57600080fd5b8015611634576016805460ff60b01b1916600160b01b831515021790554260195561164c565b6016805460ff60b01b1916600160b01b831515021790555b50565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113b35780601f10611388576101008083540402835291602001916113b3565b6001600160a01b031660009081526006602052604090205460ff1690565b601b546016546001600160a01b03166000908152601c6020526040812054909182916116f391611838565b9050611715611700610d5e565b610dae61170e846002611b4a565b8690611b4a565b9392505050565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b60095481565b611755611129565b61175e57600080fd5b8015611784576016805460ff60a81b1916600160a81b831515021790554260185561164c565b60168054821515600160a81b0260ff60a81b1990911617905550565b6117a8611129565b6117b157600080fd5b61164c81611ba3565b6015546001600160a01b031681565b601e6020526000908152604090205460ff1681565b600082820183811015611715576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061171583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c1d565b600081848411156119095760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118ce5781810151838201526020016118b6565b50505050905090810190601f1680156118fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601e602052604081205460ff1615801561195357506001600160a01b0383166000908152601e602052604090205460ff16155b611993576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601654600160a01b900460ff16156119b7576119b0848484611c82565b9050611715565b6119bf611d14565b156119cc576119cc611d7a565b6119d4611f25565b156119e1576119e1611f65565b6119e96122a2565b156119f6576119f66122cd565b6000611a0d601b5484611b4a90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611a339082611b02565b6001600160a01b0386166000908152601c6020526040812091909155611a5986866125f0565b611a635781611a6e565b611a6e868684612644565b6001600160a01b0386166000908152601c6020526040902054909150611a9490826117de565b6001600160a01b038087166000818152601c6020526040902092909255601b54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ae5908590611838565b60408051918252519081900360200190a350600195945050505050565b600061171583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187a565b3b151590565b600082611b5957506000610c5d565b82820282848281611b6657fe5b04146117155760405162461bcd60e51b815260040180806020018281038252602181526020018061280d6021913960400191505060405180910390fd5b6001600160a01b038116611bb657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611c6c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156118ce5781810151838201526020016118b6565b506000838581611c7857fe5b0495945050505050565b600080611c9a601b5484611b4a90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611cc09082611b02565b6001600160a01b038087166000908152601c60205260408082209390935590861681522054611cef90826117de565b6001600160a01b0385166000908152601c602052604090205550600190509392505050565b601654600090600160a81b900460ff168015611d385750601a54660297ee5eafa000115b8015611d4f57506016546001600160a01b03163314155b8015611d655750601654600160a01b900460ff16155b8015610db45750506018546103840142101590565b601654600160a01b900460ff1615611d9157611f23565b6017546018546000914290810391900382611dae82610384611838565b90506000611dbd82600f611b4a565b90506301e13380841015611dd657629eb1009450611e14565b6301e133808410611dec57624f58809450611e14565b6302d1cd408410611e02576227ac409450611e14565b630d2868808410611e14576213d62094505b60005b82811015611e4757611e3c62989680610dae611e33828a6117de565b601a5490611b4a565b601a55600101611e17565b50601a54611e5c90640131c017ff1990611838565b601b55611e77611e6e83610384611b4a565b601854906117de565b601881905550600560019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ecd57600080fd5b505af1158015611ee1573d6000803e3d6000fd5b5050601a5460408051918252518493507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250505050505b565b601654600090600160b01b900460ff168015611f4b5750601654600160a01b900460ff16155b8015610db45750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b546010546001600160a01b03166000908152601c60205260408120549091611fa29190611838565b6010546001600160a01b03166000908152601c602052604080822054308352912054919250611fd191906117de565b306000908152601c6020526040808220929092556010546001600160a01b03168152908120819055612004826002611838565b905060006120128383611b02565b90508061202157505050612293565b6040805160028082526060808301845292602083019080368337019050509050308160008151811061204f57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120a357600080fd5b505afa1580156120b7573d6000803e3d6000fd5b505050506040513d60208110156120cd57600080fd5b50518151829060019081106120de57fe5b6001600160a01b0392831660209182029290920181019190915260155460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015612178578181015183820152602001612160565b505050509050019650505050505050600060405180830381600087803b1580156121a157600080fd5b505af11580156121b5573d6000803e3d6000fd5b5050505060006121ce8247611b0290919063ffffffff16565b90506000851180156121e05750600081115b15612288576015546010546040805163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561225a57600080fd5b505af115801561226e573d6000803e3d6000fd5b50505050506040513d606081101561228557600080fd5b50505b505042601955505050505b6016805460ff60a01b19169055565b601654600090600160a01b900460ff16158015610db45750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b54306000908152601c602052604081205490916122ff9190611838565b90508061230c5750612293565b60408051600280825260608083018452479390929190602083019080368337019050509050308160008151811061233f57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561239357600080fd5b505afa1580156123a7573d6000803e3d6000fd5b505050506040513d60208110156123bd57600080fd5b50518151829060019081106123ce57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601560009054906101000a90046001600160a01b03166001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612488578181015183820152602001612470565b505050509050019650505050505050600060405180830381600087803b1580156124b157600080fd5b505af11580156124c5573d6000803e3d6000fd5b5050505060006124de8347611b0290919063ffffffff16565b6011546009546008549293506000926001600160a01b03909216916125159161250791906117de565b600854610dae908690611b4a565b60405161753091906000818181858888f193505050503d8060008114612557576040519150601f19603f3d011682016040523d82523d6000602084013e61255c565b606091505b50506012546009546008549293506001600160a01b03909116916125929161258491906117de565b600954610dae908690611b4a565b60405161753091906000818181858888f193505050503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50505050505050506016805460ff60a01b19169055565b6016546000906001600160a01b038481169116148061261c57506016546001600160a01b038381169116145b8015611715575050506001600160a01b031660009081526006602052604090205460ff161590565b600c5460085460165460009291906001600160a01b038681169116141561269057600a54600c54612674916117de565b915061268d600a546008546117de90919063ffffffff16565b90505b60006126b1836126ab600d548861183890919063ffffffff16565b90611b4a565b90506126f26126d1600b546126ab600d548961183890919063ffffffff16565b6013546001600160a01b03166000908152601c6020526040902054906117de565b6013546001600160a01b03166000908152601c602052604090205560095461274790612731906127239085906117de565b600d546126ab908990611838565b306000908152601c6020526040902054906117de565b306000908152601c6020526040902055600754600d5461279191612770916126ab908990611838565b6010546001600160a01b03166000908152601c6020526040902054906117de565b6010546001600160a01b039081166000908152601c6020526040902091909155601b5430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127e6908590611838565b60408051918252519081900360200190a36128018582611b02565b97965050505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f6e6c7920636f6e747261637420616464726573732c206e6f7420616c6c6f776564206578746572616e6c6c79206f776e6564206163636f756e745468657265206973206e6f204567677320746f6b656e206465706f736974656420696e20746f6b656e20636f6e7472616374a2646970667358221220f9d04d9ce89af4932fab4a9bf5131e43508bb4fedcb8d4b55769b1daac49774264736f6c63430007040033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c806383b4ac68116101d1578063afb9cf6d11610102578063d4399790116100a0578063e15beb801161006f578063e15beb8014610ab0578063f2fde38b14610adc578063f887ea4014610b0f578063f9f92be414610b2457610381565b8063d439979014610a03578063d51ed1c814610a36578063dd62ed3e14610a60578063e060f73b14610a9b57610381565b8063ca33e64c116100dc578063ca33e64c14610998578063cc32d176146109ad578063cfbac92f146109c2578063d28d8852146109ee57610381565b8063afb9cf6d14610959578063b09f12661461096e578063bd5955811461098357610381565b80639b87676c1161016f578063a6cf729311610149578063a6cf7293146108e1578063a8aa1b31146108f6578063a8b089821461090b578063a9059cbb1461092057610381565b80639b87676c14610860578063a22d483214610875578063a457c2d7146108a857610381565b80638f32d59b116101ab5780638f32d59b1461080c57806395d89b411461082157806398118cb4146108365780639b2912cc1461084b57610381565b806383b4ac68146107af578063854cff2f146107c45780638da5cb5b146107f757610381565b806332b75683116102ab5780634d709adf116102495780636ddd1713116102235780636ddd17131461073d57806370a0823114610752578063715018a614610785578063753d02a11461079a57610381565b80634d709adf146106fe5780635a604c52146107135780636912652c1461072857610381565b8063395093511161028557806339509351146106505780633c8e556d146106895780633eaaf86b146106d457806349d98142146106e957610381565b806332b75683146105eb57806333a581d21461060057806337c9be871461061557610381565b806325e4405e116103185780632e0f2625116102f25780632e0f2625146105615780632f34d28214610576578063313ce567146105ab57806332424aa3146105d657610381565b806325e4405e146105225780632b112e49146105375780632b14ca561461054c57610381565b8063180b0d7e11610354578063180b0d7e1461048e57806318160ddd146104b55780631df4ccfc146104ca57806323b872dd146104df57610381565b806306fdde031461038657806308b1fd8f14610410578063095ea7b31461044157610381565b3661038157005b600080fd5b34801561039257600080fd5b5061039b610b57565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041c57600080fd5b50610425610bed565b604080516001600160a01b039092168252519081900360200190f35b34801561044d57600080fd5b5061047a6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610bfc565b604080519115158252519081900360200190f35b34801561049a57600080fd5b506104a3610c63565b60408051918252519081900360200190f35b3480156104c157600080fd5b506104a3610c69565b3480156104d657600080fd5b506104a3610c6f565b3480156104eb57600080fd5b5061047a6004803603606081101561050257600080fd5b506001600160a01b03813581169160208101359091169060400135610c75565b34801561052e57600080fd5b50610425610d4f565b34801561054357600080fd5b506104a3610d5e565b34801561055857600080fd5b506104a3610db9565b34801561056d57600080fd5b506104a3610dbf565b34801561058257600080fd5b506105a96004803603602081101561059957600080fd5b50356001600160a01b0316610dc4565b005b3480156105b757600080fd5b506105c0610dfd565b6040805160ff9092168252519081900360200190f35b3480156105e257600080fd5b506105c0610e06565b3480156105f757600080fd5b506104a3610e0f565b34801561060c57600080fd5b506104a3610e15565b34801561062157600080fd5b506105a96004803603604081101561063857600080fd5b506001600160a01b0381351690602001351515610e1b565b34801561065c57600080fd5b5061047a6004803603604081101561067357600080fd5b506001600160a01b038135169060200135610e9b565b34801561069557600080fd5b506105a9600480360360808110156106ac57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060013516610f2e565b3480156106e057600080fd5b506104a3610f8f565b3480156106f557600080fd5b50610425610f95565b34801561070a57600080fd5b50610425610fa4565b34801561071f57600080fd5b506105c0610fb8565b34801561073457600080fd5b5061047a610fbd565b34801561074957600080fd5b5061047a610fcd565b34801561075e57600080fd5b506104a36004803603602081101561077557600080fd5b50356001600160a01b0316610fdd565b34801561079157600080fd5b506105a9611005565b3480156107a657600080fd5b506105a9611065565b3480156107bb57600080fd5b5061047a6110cf565b3480156107d057600080fd5b506105a9600480360360208110156107e757600080fd5b50356001600160a01b03166110e0565b34801561080357600080fd5b50610425611115565b34801561081857600080fd5b5061047a611129565b34801561082d57600080fd5b5061039b61113f565b34801561084257600080fd5b506104a361119f565b34801561085757600080fd5b506104a36111a5565b34801561086c57600080fd5b506104a36111ab565b34801561088157600080fd5b506105a96004803603602081101561089857600080fd5b50356001600160a01b03166111b1565b3480156108b457600080fd5b5061047a600480360360408110156108cb57600080fd5b506001600160a01b0381351690602001356111e4565b3480156108ed57600080fd5b506104a36112cd565b34801561090257600080fd5b506104256112d3565b34801561091757600080fd5b506104256112e2565b34801561092c57600080fd5b5061047a6004803603604081101561094357600080fd5b506001600160a01b0381351690602001356112f1565b34801561096557600080fd5b5061047a61131d565b34801561097a57600080fd5b5061039b61132d565b34801561098f57600080fd5b506105a96113bb565b3480156109a457600080fd5b506104256115e8565b3480156109b957600080fd5b506104a36115f7565b3480156109ce57600080fd5b506105a9600480360360208110156109e557600080fd5b503515156115fd565b3480156109fa57600080fd5b5061039b61164f565b348015610a0f57600080fd5b5061047a60048036036020811015610a2657600080fd5b50356001600160a01b03166116aa565b348015610a4257600080fd5b506104a360048036036020811015610a5957600080fd5b50356116c8565b348015610a6c57600080fd5b506104a360048036036040811015610a8357600080fd5b506001600160a01b038135811691602001351661171c565b348015610aa757600080fd5b506104a3611747565b348015610abc57600080fd5b506105a960048036036020811015610ad357600080fd5b5035151561174d565b348015610ae857600080fd5b506105a960048036036020811015610aff57600080fd5b50356001600160a01b03166117a0565b348015610b1b57600080fd5b506104256117ba565b348015610b3057600080fd5b5061047a60048036036020811015610b4757600080fd5b50356001600160a01b03166117c9565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610be35780601f10610bb857610100808354040283529160200191610be3565b820191906000526020600020905b815481529060010190602001808311610bc657829003601f168201915b5050505050905090565b6011546001600160a01b031681565b336000818152601d602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600d5481565b601a5490565b600c5481565b6000826001600160a01b038116610c8b57600080fd5b6001600160a01b0385166000908152601d6020908152604080832033845290915290205460001914610d38576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0388166000908152601d82528381203382529091529190912054610d1391859061187a565b6001600160a01b0386166000908152601d602090815260408083203384529091529020555b610d43858585611911565b50600195945050505050565b6012546001600160a01b031681565b601b54600f546001600160a01b039081166000908152601c602052604080822054600e5490931682528120549092610db4929091610dae9190610da890640131c017ff1990611b02565b90611b02565b90611838565b905090565b600a5481565b600581565b610dcc611129565b610dd557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60025460ff1690565b60055460ff1681565b60185481565b60001981565b610e23611129565b610e2c57600080fd5b610e3582611b44565b610e705760405162461bcd60e51b815260040180806020018281038252603b81526020018061282e603b913960400191505060405180910390fd5b6001600160a01b03919091166000908152601e60205260409020805460ff1916911515919091179055565b336000908152601d602090815260408083206001600160a01b0386168452909152812054610ec990836117de565b336000818152601d602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b610f36611129565b610f3f57600080fd5b601080546001600160a01b039586166001600160a01b0319918216179091556011805494861694821694909417909355601280549285169284169290921790915560138054919093169116179055565b601a5481565b6013546001600160a01b031681565b60055461010090046001600160a01b031681565b600781565b601654600160b01b900460ff1681565b601454600160a01b900460ff1681565b601b546001600160a01b0382166000908152601c60205260408120549091610c5d9190611838565b61100d611129565b61101657600080fd5b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b601660009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156110b557600080fd5b505af11580156110c9573d6000803e3d6000fd5b50505050565b601654600160a01b900460ff161590565b6110e8611129565b6110f157600080fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b60025461010090046001600160a01b031690565b60025461010090046001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610be35780601f10610bb857610100808354040283529160200191610be3565b60075481565b60195481565b60175481565b6111b9611129565b6111c257600080fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601d602090815260408083206001600160a01b038616845290915281205480831061123857336000908152601d602090815260408083206001600160a01b0388168452909152812055611267565b6112428184611b02565b336000908152601d602090815260408083206001600160a01b03891684529091529020555b336000818152601d602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600b5481565b6016546001600160a01b031681565b6014546001600160a01b031681565b6000826001600160a01b03811661130757600080fd5b611312338585611911565b506001949350505050565b601654600160a81b900460ff1681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113b35780601f10611388576101008083540402835291602001916113b3565b820191906000526020600020905b81548152906001019060200180831161139657829003601f168201915b505050505081565b6016805460ff60a01b1916600160a01b1790556113d6611129565b6113df57600080fd5b601b54306000908152601c602052604081205490916113fe9190611838565b90506000811161143f5760405162461bcd60e51b81526004018080602001828103825260328152602001806128696032913960400191505060405180910390fd5b6040805160028082526060808301845292602083019080368337019050509050308160008151811061146d57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50518151829060019081106114fc57fe5b6001600160a01b0392831660209182029290920181019190915260155460115460405163791ac94760e01b81526004810187815260006024830181905292861660648301819052426084840181905260a060448501908152895160a48601528951969098169763791ac947978b978b969495939460c4019187810191028083838b5b8381101561159657818101518382015260200161157e565b505050509050019650505050505050600060405180830381600087803b1580156115bf57600080fd5b505af11580156115d3573d6000803e3d6000fd5b50506016805460ff60a01b1916905550505050565b6010546001600160a01b031681565b60085481565b611605611129565b61160e57600080fd5b8015611634576016805460ff60b01b1916600160b01b831515021790554260195561164c565b6016805460ff60b01b1916600160b01b831515021790555b50565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156113b35780601f10611388576101008083540402835291602001916113b3565b6001600160a01b031660009081526006602052604090205460ff1690565b601b546016546001600160a01b03166000908152601c6020526040812054909182916116f391611838565b9050611715611700610d5e565b610dae61170e846002611b4a565b8690611b4a565b9392505050565b6001600160a01b039182166000908152601d6020908152604080832093909416825291909152205490565b60095481565b611755611129565b61175e57600080fd5b8015611784576016805460ff60a81b1916600160a81b831515021790554260185561164c565b60168054821515600160a81b0260ff60a81b1990911617905550565b6117a8611129565b6117b157600080fd5b61164c81611ba3565b6015546001600160a01b031681565b601e6020526000908152604090205460ff1681565b600082820183811015611715576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061171583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c1d565b600081848411156119095760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118ce5781810151838201526020016118b6565b50505050905090810190601f1680156118fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0383166000908152601e602052604081205460ff1615801561195357506001600160a01b0383166000908152601e602052604090205460ff16155b611993576040805162461bcd60e51b815260206004820152600c60248201526b1a5b97d89b1858dadb1a5cdd60a21b604482015290519081900360640190fd5b601654600160a01b900460ff16156119b7576119b0848484611c82565b9050611715565b6119bf611d14565b156119cc576119cc611d7a565b6119d4611f25565b156119e1576119e1611f65565b6119e96122a2565b156119f6576119f66122cd565b6000611a0d601b5484611b4a90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611a339082611b02565b6001600160a01b0386166000908152601c6020526040812091909155611a5986866125f0565b611a635781611a6e565b611a6e868684612644565b6001600160a01b0386166000908152601c6020526040902054909150611a9490826117de565b6001600160a01b038087166000818152601c6020526040902092909255601b54908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ae5908590611838565b60408051918252519081900360200190a350600195945050505050565b600061171583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187a565b3b151590565b600082611b5957506000610c5d565b82820282848281611b6657fe5b04146117155760405162461bcd60e51b815260040180806020018281038252602181526020018061280d6021913960400191505060405180910390fd5b6001600160a01b038116611bb657600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60008183611c6c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156118ce5781810151838201526020016118b6565b506000838581611c7857fe5b0495945050505050565b600080611c9a601b5484611b4a90919063ffffffff16565b6001600160a01b0386166000908152601c6020526040902054909150611cc09082611b02565b6001600160a01b038087166000908152601c60205260408082209390935590861681522054611cef90826117de565b6001600160a01b0385166000908152601c602052604090205550600190509392505050565b601654600090600160a81b900460ff168015611d385750601a54660297ee5eafa000115b8015611d4f57506016546001600160a01b03163314155b8015611d655750601654600160a01b900460ff16155b8015610db45750506018546103840142101590565b601654600160a01b900460ff1615611d9157611f23565b6017546018546000914290810391900382611dae82610384611838565b90506000611dbd82600f611b4a565b90506301e13380841015611dd657629eb1009450611e14565b6301e133808410611dec57624f58809450611e14565b6302d1cd408410611e02576227ac409450611e14565b630d2868808410611e14576213d62094505b60005b82811015611e4757611e3c62989680610dae611e33828a6117de565b601a5490611b4a565b601a55600101611e17565b50601a54611e5c90640131c017ff1990611838565b601b55611e77611e6e83610384611b4a565b601854906117de565b601881905550600560019054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611ecd57600080fd5b505af1158015611ee1573d6000803e3d6000fd5b5050601a5460408051918252518493507f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f292509081900360200190a250505050505b565b601654600090600160b01b900460ff168015611f4b5750601654600160a01b900460ff16155b8015610db45750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b546010546001600160a01b03166000908152601c60205260408120549091611fa29190611838565b6010546001600160a01b03166000908152601c602052604080822054308352912054919250611fd191906117de565b306000908152601c6020526040808220929092556010546001600160a01b03168152908120819055612004826002611838565b905060006120128383611b02565b90508061202157505050612293565b6040805160028082526060808301845292602083019080368337019050509050308160008151811061204f57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120a357600080fd5b505afa1580156120b7573d6000803e3d6000fd5b505050506040513d60208110156120cd57600080fd5b50518151829060019081106120de57fe5b6001600160a01b0392831660209182029290920181019190915260155460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b83811015612178578181015183820152602001612160565b505050509050019650505050505050600060405180830381600087803b1580156121a157600080fd5b505af11580156121b5573d6000803e3d6000fd5b5050505060006121ce8247611b0290919063ffffffff16565b90506000851180156121e05750600081115b15612288576015546010546040805163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561225a57600080fd5b505af115801561226e573d6000803e3d6000fd5b50505050506040513d606081101561228557600080fd5b50505b505042601955505050505b6016805460ff60a01b19169055565b601654600090600160a01b900460ff16158015610db45750506016546001600160a01b031633141590565b6016805460ff60a01b1916600160a01b179055601b54306000908152601c602052604081205490916122ff9190611838565b90508061230c5750612293565b60408051600280825260608083018452479390929190602083019080368337019050509050308160008151811061233f57fe5b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561239357600080fd5b505afa1580156123a7573d6000803e3d6000fd5b505050506040513d60208110156123bd57600080fd5b50518151829060019081106123ce57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050601560009054906101000a90046001600160a01b03166001600160a01b031663791ac9478460008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015612488578181015183820152602001612470565b505050509050019650505050505050600060405180830381600087803b1580156124b157600080fd5b505af11580156124c5573d6000803e3d6000fd5b5050505060006124de8347611b0290919063ffffffff16565b6011546009546008549293506000926001600160a01b03909216916125159161250791906117de565b600854610dae908690611b4a565b60405161753091906000818181858888f193505050503d8060008114612557576040519150601f19603f3d011682016040523d82523d6000602084013e61255c565b606091505b50506012546009546008549293506001600160a01b03909116916125929161258491906117de565b600954610dae908690611b4a565b60405161753091906000818181858888f193505050503d80600081146125d4576040519150601f19603f3d011682016040523d82523d6000602084013e6125d9565b606091505b50505050505050506016805460ff60a01b19169055565b6016546000906001600160a01b038481169116148061261c57506016546001600160a01b038381169116145b8015611715575050506001600160a01b031660009081526006602052604090205460ff161590565b600c5460085460165460009291906001600160a01b038681169116141561269057600a54600c54612674916117de565b915061268d600a546008546117de90919063ffffffff16565b90505b60006126b1836126ab600d548861183890919063ffffffff16565b90611b4a565b90506126f26126d1600b546126ab600d548961183890919063ffffffff16565b6013546001600160a01b03166000908152601c6020526040902054906117de565b6013546001600160a01b03166000908152601c602052604090205560095461274790612731906127239085906117de565b600d546126ab908990611838565b306000908152601c6020526040902054906117de565b306000908152601c6020526040902055600754600d5461279191612770916126ab908990611838565b6010546001600160a01b03166000908152601c6020526040902054906117de565b6010546001600160a01b039081166000908152601c6020526040902091909155601b5430918916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906127e6908590611838565b60408051918252519081900360200190a36128018582611b02565b97965050505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f6e6c7920636f6e747261637420616464726573732c206e6f7420616c6c6f776564206578746572616e6c6c79206f776e6564206163636f756e745468657265206973206e6f204567677320746f6b656e206465706f736974656420696e20746f6b656e20636f6e7472616374a2646970667358221220f9d04d9ce89af4932fab4a9bf5131e43508bb4fedcb8d4b55769b1daac49774264736f6c63430007040033
Deployed Bytecode Sourcemap
13584:16060:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13308:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14844:31;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;14844:31:0;;;;;;;;;;;;;;27115:253;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27115:253:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;14626:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;29180:102;;;;;;;;;;;;;:::i;14499:120::-;;;;;;;;;;;;;:::i;18451:465::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18451:465:0;;;;;;;;;;;;;;;;;:::i;14882:30::-;;;;;;;;;;;;;:::i;27497:215::-;;;;;;;;;;;;;:::i;14428:27::-;;;;;;;;;;;;;:::i;14069:36::-;;;;;;;;;;;;;:::i;29056:112::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29056:112:0;-1:-1:-1;;;;;29056:112:0;;:::i;:::-;;13494:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13843:26;;;;;;;;;;;;;:::i;15497:31::-;;;;;;;;;;;;;:::i;14112:49::-;;;;;;;;;;;;;:::i;28692:236::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;28692:236:0;;;;;;;;;;:::i;26701:406::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26701:406:0;;;;;;;;:::i;27900:376::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27900:376:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;15578:27::-;;;;;;;;;;;;;:::i;14919:22::-;;;;;;;;;;;;;:::i;13878:36::-;;;;;;;;;;;;;:::i;14168:39::-;;;;;;;;;;;;;:::i;15419:29::-;;;;;;;;;;;;;:::i;14981:30::-;;;;;;;;;;;;;:::i;29293:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29293:138:0;-1:-1:-1;;;;;29293:138:0;;:::i;12519:126::-;;;;;;;;;;;;;:::i;27813:79::-;;;;;;;;;;;;;:::i;27720:85::-;;;;;;;;;;;;;:::i;28583:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28583:101:0;-1:-1:-1;;;;;28583:101:0;;:::i;12254:79::-;;;;;;;;;;;;;:::i;12419:92::-;;;;;;;;;;;;;:::i;13399:87::-;;;;;;;;;;;;;:::i;14312:32::-;;;;;;;;;;;;;:::i;15535:36::-;;;;;;;;;;;;;:::i;15455:35::-;;;;;;;;;;;;;:::i;28940:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28940:108:0;-1:-1:-1;;;;;28940:108:0;;:::i;26097:596::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26097:596:0;;;;;;;;:::i;14462:30::-;;;;;;;;;;;;;:::i;15057:19::-;;;;;;;;;;;;;:::i;14948:26::-;;;;;;;;;;;;;:::i;18228:215::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18228:215:0;;;;;;;;:::i;15389:23::-;;;;;;;;;;;;;:::i;13806:30::-;;;;;;;;;;;;;:::i;23988:565::-;;;;;;;;;;;;;:::i;14801:36::-;;;;;;;;;;;;;:::i;14351:32::-;;;;;;;;;;;;;:::i;25635:252::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25635:252:0;;;;:::i;13771:28::-;;;;;;;;;;;;;:::i;27376:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27376:113:0;-1:-1:-1;;;;;27376:113:0;;:::i;28284:291::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28284:291:0;;:::i;25895:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25895:194:0;;;;;;;;;;:::i;14390:31::-;;;;;;;;;;;;;:::i;25397:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25397:230:0;;;;:::i;12653:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12653:109:0;-1:-1:-1;;;;;12653:109:0;;:::i;15018:32::-;;;;;;;;;;;;;:::i;15788:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15788:41:0;-1:-1:-1;;;;;15788:41:0;;:::i;13308:83::-;13378:5;13371:12;;;;;;;;-1:-1:-1;;13371:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:13;;13371:12;;13378:5;;13371:12;;13378:5;13371:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13308:83;:::o;14844:31::-;;;-1:-1:-1;;;;;14844:31:0;;:::o;27115:253::-;27258:10;27218:4;27240:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;27240:38:0;;;;;;;;;;;:46;;;27302:36;;;;;;;27218:4;;27240:38;;27258:10;;27302:36;;;;;;;;-1:-1:-1;27356:4:0;27115:253;;;;;:::o;14626:36::-;;;;:::o;29180:102::-;29262:12;;29180:102;:::o;14499:120::-;;;;:::o;18451:465::-;18594:4;18581:2;-1:-1:-1;;;;;14022:18:0;;14014:27;;;;;;-1:-1:-1;;;;;18625:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;18649:10:::1;18625:35:::0;;;;;;;;-1:-1:-1;;18625:50:0::1;18621:225;;18730:104;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;18730:104:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;18730:23:0;::::1;-1:-1:-1::0;18730:23:0;;;:17:::1;:23:::0;;;;;18772:10:::1;18730:67:::0;;;;;;;;;;:104:::1;::::0;18802:5;;18730:71:::1;:104::i;:::-;-1:-1:-1::0;;;;;18692:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;18716:10:::1;18692:35:::0;;;;;;;:142;18621:225:::1;18856:30;18870:4;18876:2;18880:5;18856:13;:30::i;:::-;-1:-1:-1::0;18904:4:0::1;::::0;18451:465;-1:-1:-1;;;;;18451:465:0:o;14882:30::-;;;-1:-1:-1;;;;;14882:30:0;;:::o;27497:215::-;27673:16;;27643:4;;-1:-1:-1;;;;;27643:4:0;;;27550:7;27630:18;;;:12;:18;;;;;;;27619:4;;;;;27606:18;;;;;27550:7;;27590:114;;27673:16;;27591:58;;27630:18;27591:34;;-1:-1:-1;;15253:54:0;27591:14;:34::i;:::-;:38;;:58::i;:::-;27590:64;;:114::i;:::-;27570:134;;27497:215;:::o;14428:27::-;;;;:::o;14069:36::-;14104:1;14069:36;:::o;29056:112::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;29119:12:::1;:41:::0;;-1:-1:-1;;;;;29119:41:0;;::::1;;;-1:-1:-1::0;;;;;;29119:41:0;;::::1;::::0;;;::::1;::::0;;29056:112::o;13494:83::-;13560:9;;;;13494:83;:::o;13843:26::-;;;;;;:::o;15497:31::-;;;;:::o;14112:49::-;-1:-1:-1;;14112:49:0;:::o;28692:236::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;28788:23:::1;28799:11;28788:10;:23::i;:::-;28780:95;;;;-1:-1:-1::0;;;28780:95:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;28886:22:0;;;::::1;;::::0;;;:9:::1;:22;::::0;;;;:30;;-1:-1:-1;;28886:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28692:236::o;26701:406::-;26882:10;26801:4;26864:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26864:62:0;;;;;;;;;;:78;;26931:10;26864:66;:78::i;:::-;26841:10;26823:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26823:38:0;;;;;;;;;;;;:119;;;26958;;;;;;26823:38;;26958:119;;;;;;;;;;;-1:-1:-1;27095:4:0;26701:406;;;;:::o;27900:376::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;28101:21:::1;:46:::0;;-1:-1:-1;;;;;28101:46:0;;::::1;-1:-1:-1::0;;;;;;28101:46:0;;::::1;;::::0;;;28158:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;28205:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;28250:7:::1;:18:::0;;;;;::::1;::::0;::::1;;::::0;;27900:376::o;15578:27::-;;;;:::o;14919:22::-;;;-1:-1:-1;;;;;14919:22:0;;:::o;13878:36::-;;;;;;-1:-1:-1;;;;;13878:36:0;;:::o;14168:39::-;14206:1;14168:39;:::o;15419:29::-;;;-1:-1:-1;;;15419:29:0;;;;;:::o;14981:30::-;;;-1:-1:-1;;;14981:30:0;;;;;:::o;29293:138::-;29406:16;;-1:-1:-1;;;;;29384:17:0;;29357:7;29384:17;;;:12;:17;;;;;;29357:7;;29384:39;;:17;:21;:39::i;12519:126::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;12600:6:::1;::::0;12581:26:::1;::::0;12600:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;12600:6:0::1;::::0;12581:26:::1;::::0;;;::::1;12618:6;:19:::0;;-1:-1:-1;;;;;;12618:19:0::1;::::0;;12519:126::o;27813:79::-;27872:4;;;;;;;;;-1:-1:-1;;;;;27872:4:0;-1:-1:-1;;;;;27855:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27813:79::o;27720:85::-;27791:6;;-1:-1:-1;;;27791:6:0;;;;27790:7;;27720:85::o;28583:101::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;-1:-1:-1;;;;;28650:19:0::1;;::::0;;;:12:::1;:19;::::0;;;;:26;;-1:-1:-1;;28650:26:0::1;28672:4;28650:26;::::0;;28583:101::o;12254:79::-;12319:6;;;;;-1:-1:-1;;;;;12319:6:0;;12254:79::o;12419:92::-;12497:6;;;;;-1:-1:-1;;;;;12497:6:0;12483:10;:20;;12419:92::o;13399:87::-;13471:7;13464:14;;;;;;;;-1:-1:-1;;13464:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13438:13;;13464:14;;13471:7;;13464:14;;13471:7;13464:14;;;;;;;;;;;;;;;;;;;;;;;;14312:32;;;;:::o;15535:36::-;;;;:::o;15455:35::-;;;;:::o;28940:108::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;29014:11:::1;:26:::0;;-1:-1:-1;;;;;;29014:26:0::1;-1:-1:-1::0;;;;;29014:26:0;;;::::1;::::0;;;::::1;::::0;;28940:108::o;26097:596::-;26261:10;26202:4;26243:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26243:38:0;;;;;;;;;;26296:27;;;26292:237;;26358:10;26381:1;26340:29;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26340:38:0;;;;;;;;;:42;26292:237;;;26456:61;:8;26487:15;26456:12;:61::i;:::-;26433:10;26415:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26415:38:0;;;;;;;;;:102;26292:237;26567:10;26614:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;26544:119:0;;26614:38;;;;;;;;;;;26544:119;;;;;;;;;26567:10;26544:119;;;;;;;;;;;-1:-1:-1;26681:4:0;;26097:596;-1:-1:-1;;;26097:596:0:o;14462:30::-;;;;:::o;15057:19::-;;;-1:-1:-1;;;;;15057:19:0;;:::o;14948:26::-;;;-1:-1:-1;;;;;14948:26:0;;:::o;18228:215::-;18355:4;18333:2;-1:-1:-1;;;;;14022:18:0;;14014:27;;;;;;18377:36:::1;18391:10;18403:2;18407:5;18377:13;:36::i;:::-;-1:-1:-1::0;18431:4:0::1;::::0;18228:215;-1:-1:-1;;;;18228:215:0:o;15389:23::-;;;-1:-1:-1;;;15389:23:0;;;;;:::o;13806:30::-;;;;;;;;;;;;;;;-1:-1:-1;;13806:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23988:565::-;15140:6;:13;;-1:-1:-1;;;;15140:13:0;-1:-1:-1;;;15140:13:0;;;12381:9:::1;:7;:9::i;:::-;12373:18;;;::::0;::::1;;24117:16:::2;::::0;24106:4:::2;24062:20;24085:27:::0;;;:12:::2;:27;::::0;;;;;24062:20;;24085:49:::2;::::0;:27;:31:::2;:49::i;:::-;24062:72;;24169:1;24154:12;:16;24145:79;;;;-1:-1:-1::0;;;24145:79:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24259:16;::::0;;24273:1:::2;24259:16:::0;;;24235:21:::2;24259:16:::0;;::::2;::::0;;24235:21;24259:16:::2;::::0;::::2;::::0;;::::2;::::0;::::2;;::::0;-1:-1:-1;24259:16:0::2;24235:40;;24304:4;24286;24291:1;24286:7;;;;;;;;-1:-1:-1::0;;;;;24286:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;24330:6:::2;::::0;:13:::2;::::0;;-1:-1:-1;;;24330:13:0;;;;:6;;;::::2;::::0;:11:::2;::::0;:13:::2;::::0;;::::2;::::0;24286:7;;24330:13;;;;;:6;:13;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;24330:13:0;24320:7;;:4;;24325:1:::2;::::0;24320:7;::::2;;;;;-1:-1:-1::0;;;;;24320:23:0;;::::2;:7;::::0;;::::2;::::0;;;;;;:23;;;;24354:6:::2;::::0;24488:16:::2;::::0;24354:191:::2;::::0;-1:-1:-1;;;24354:191:0;;::::2;::::0;::::2;::::0;;;:6:::2;:191:::0;;;;;;24488:16;;::::2;24354:191:::0;;;;;;24519:15:::2;24354:191:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::2;::::0;:57:::2;::::0;24426:12;;24469:4;;24488:16;;24519:15;;24354:191;;;;;::::2;::::0;::::2;::::0;;;:6;:191:::2;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;15176:6:0;:14;;-1:-1:-1;;;;15176:14:0;;;-1:-1:-1;;;;23988:565:0:o;14801:36::-;;;-1:-1:-1;;;;;14801:36:0;;:::o;14351:32::-;;;;:::o;25635:252::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;25709:5:::1;25706:174;;;25731:17;:25:::0;;-1:-1:-1;;;;25731:25:0::1;-1:-1:-1::0;;;25731:25:0;::::1;;;;::::0;;25795:15:::1;25771:21;:39:::0;25706:174:::1;;;25843:17;:25:::0;;-1:-1:-1;;;;25843:25:0::1;-1:-1:-1::0;;;25843:25:0;::::1;;;;::::0;;25706:174:::1;25635:252:::0;:::o;13771:28::-;;;;;;;;;;;;;;;-1:-1:-1;;13771:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27376:113;-1:-1:-1;;;;;27462:19:0;27438:4;27462:19;;;:12;:19;;;;;;;;;27376:113::o;28284:291::-;28454:16;;28444:4;;-1:-1:-1;;;;;28444:4:0;28379:7;28431:18;;;:12;:18;;;;;;28379:7;;;;28431:40;;:22;:40::i;:::-;28404:67;;28502:65;28544:22;:20;:22::i;:::-;28502:37;28515:23;:16;28536:1;28515:20;:23::i;:::-;28502:8;;:12;:37::i;:65::-;28482:85;28284:291;-1:-1:-1;;;28284:291:0:o;25895:194::-;-1:-1:-1;;;;;26047:25:0;;;26015:7;26047:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;25895:194::o;14390:31::-;;;;:::o;25397:230::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;25466:5:::1;25462:158;;;25488:11;:19:::0;;-1:-1:-1;;;;25488:19:0::1;-1:-1:-1::0;;;25488:19:0;::::1;;;;::::0;;25541:15:::1;25522:16;:34:::0;25462:158:::1;;;25589:11;:19:::0;;;::::1;;-1:-1:-1::0;;;25589:19:0::1;-1:-1:-1::0;;;;25589:19:0;;::::1;;::::0;;25397:230;:::o;12653:109::-;12381:9;:7;:9::i;:::-;12373:18;;;;;;12726:28:::1;12745:8;12726:18;:28::i;15018:32::-:0;;;-1:-1:-1;;;;;15018:32:0;;:::o;15788:41::-;;;;;;;;;;;;;;;:::o;2525:181::-;2583:7;2615:5;;;2639:6;;;;2631:46;;;;;-1:-1:-1;;;2631:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3350:132;3408:7;3435:39;3439:1;3442;3435:39;;;;;;;;;;;;;;;;;:3;:39::i;2858:226::-;2978:7;3014:12;3006:6;;;;2998:29;;;;-1:-1:-1;;;2998:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3050:5:0;;;2858:226::o;19271:1080::-;-1:-1:-1;;;;;19425:17:0;;19397:4;19425:17;;;:9;:17;;;;;;;;19424:18;:43;;;;-1:-1:-1;;;;;;19447:20:0;;;;;;:9;:20;;;;;;;;19446:21;19424:43;19416:68;;;;;-1:-1:-1;;;19416:68:0;;;;;;;;;;;;-1:-1:-1;;;19416:68:0;;;;;;;;;;;;;;;19501:6;;-1:-1:-1;;;19501:6:0;;;;19497:87;;;19531:41;19546:6;19554:9;19565:6;19531:14;:41::i;:::-;19524:48;;;;19497:87;19598:14;:12;:14::i;:::-;19594:54;;;19628:8;:6;:8::i;:::-;19664:20;:18;:20::i;:::-;19660:67;;;19701:14;:12;:14::i;:::-;19743:16;:14;:16::i;:::-;19739:59;;;19776:10;:8;:10::i;:::-;19810:17;19830:28;19841:16;;19830:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;19892:20:0;;;;;;:12;:20;;;;;;19810:48;;-1:-1:-1;19892:35:0;;19810:48;19892:24;:35::i;:::-;-1:-1:-1;;;;;19869:20:0;;;;;;:12;:20;;;;;:58;;;;19966:32;19882:6;19988:9;19966:13;:32::i;:::-;:110;;20067:9;19966:110;;;20014:37;20022:6;20030:9;20041;20014:7;:37::i;:::-;-1:-1:-1;;;;;20113:23:0;;;;;;:12;:23;;;;;;19938:138;;-1:-1:-1;20113:70:0;;19938:138;20113:27;:70::i;:::-;-1:-1:-1;;;;;20087:23:0;;;;;;;:12;:23;;;;;:96;;;;20293:16;;20203:118;;;;;;20271:39;;:17;;:21;:39::i;:::-;20203:118;;;;;;;;;;;;;;;-1:-1:-1;20339:4:0;;19271:1080;-1:-1:-1;;;;;19271:1080:0:o;2714:136::-;2772:7;2799:43;2803:1;2806;2799:43;;;;;;;;;;;;;;;;;:3;:43::i;29439:165::-;29552:17;29588:8;;;29439:165::o;3092:250::-;3150:7;3174:6;3170:47;;-1:-1:-1;3204:1:0;3197:8;;3170:47;3241:5;;;3245:1;3241;:5;:1;3265:5;;;;;:10;3257:56;;;;-1:-1:-1;;;3257:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12770:187;-1:-1:-1;;;;;12844:22:0;;12836:31;;;;;;12904:6;;12883:38;;-1:-1:-1;;;;;12883:38:0;;;;12904:6;;;;;12883:38;;;;;12932:6;:17;;-1:-1:-1;;;;;12932:17:0;;;;;-1:-1:-1;;;;;;12932:17:0;;;;;;;;;12770:187::o;3490:225::-;3610:7;3645:12;3638:5;3630:28;;;;-1:-1:-1;;;3630:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3669:9;3685:1;3681;:5;;;;;;;3490:225;-1:-1:-1;;;;;3490:225:0:o;18924:339::-;19042:4;19059:17;19079:28;19090:16;;19079:6;:10;;:28;;;;:::i;:::-;-1:-1:-1;;;;;19139:18:0;;;;;;:12;:18;;;;;;19059:48;;-1:-1:-1;19139:33:0;;19059:48;19139:22;:33::i;:::-;-1:-1:-1;;;;;19118:18:0;;;;;;;:12;:18;;;;;;:54;;;;19202:16;;;;;;;:31;;19223:9;19202:20;:31::i;:::-;-1:-1:-1;;;;;19183:16:0;;;;;;:12;:16;;;;;:50;-1:-1:-1;19251:4:0;;-1:-1:-1;18924:339:0;;;;;:::o;24783:274::-;24867:11;;24830:4;;-1:-1:-1;;;24867:11:0;;;;:55;;;;-1:-1:-1;24896:12:0;;15354:26;-1:-1:-1;24867:55:0;:90;;;;-1:-1:-1;24953:4:0;;-1:-1:-1;;;;;24953:4:0;24939:10;:18;;24867:90;:115;;;;-1:-1:-1;24976:6:0;;-1:-1:-1;;;24976:6:0;;;;24975:7;24867:115;:182;;;;-1:-1:-1;;25019:16:0;;25038:10;25019:29;24999:15;:50;;;24783:274::o;17084:1136::-;17137:6;;-1:-1:-1;;;17137:6:0;;;;17132:21;;;17146:7;;17132:21;17238:20;;17307:16;;17163:18;;17220:15;:38;;;;17289:34;;17163:18;17350:25;17289:34;17364:10;17350:13;:25::i;:::-;17334:41;-1:-1:-1;17386:13:0;17402;17334:41;17412:2;17402:9;:13::i;:::-;17386:29;;17453:8;17432:17;:30;17428:370;;;17492:8;17479:21;;17428:370;;;17544:8;17522:17;:31;17518:280;;17583:7;17570:20;;17518:280;;;17634:20;17612:17;:43;17608:190;;17685:7;17672:20;;17608:190;;;17736:12;17714:17;:35;17710:88;;17779:7;17766:20;;17710:88;17815:9;17810:190;17834:5;17830:1;:9;17810:190;;;17876:112;17970:17;17876:71;17911:35;17970:17;17935:10;17911:23;:35::i;:::-;17876:12;;;:34;:71::i;:112::-;17861:12;:127;17841:3;;17810:190;;;-1:-1:-1;18046:12:0;;18031:28;;-1:-1:-1;;15253:54:0;18031:14;:28::i;:::-;18012:16;:47;18089:43;18110:21;:5;18120:10;18110:9;:21::i;:::-;18089:16;;;:20;:43::i;:::-;18070:16;:62;;;;18145:12;;;;;;;;;-1:-1:-1;;;;;18145:12:0;-1:-1:-1;;;;;18145:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18199:12:0;;18182:30;;;;;;;18192:5;;-1:-1:-1;18182:30:0;;-1:-1:-1;18182:30:0;;;;;;;;17084:1136;;;;;;:::o;25065:176::-;25155:17;;25118:4;;-1:-1:-1;;;25155:17:0;;;;:42;;;;-1:-1:-1;25191:6:0;;-1:-1:-1;;;25191:6:0;;;;25190:7;25155:42;:78;;;;-1:-1:-1;;25229:4:0;;-1:-1:-1;;;;;25229:4:0;25215:10;:18;;;25065:176::o;21412:1407::-;15140:6;:13;;-1:-1:-1;;;;15140:13:0;-1:-1:-1;;;15140:13:0;;;21549:16:::1;::::0;21508:21:::1;::::0;-1:-1:-1;;;;;21508:21:0::1;15140:13:::0;21495:35;;;:12:::1;:35;::::0;;;;;15140:13;;21495:81:::1;::::0;:35;:39:::1;:81::i;:::-;21676:21;::::0;-1:-1:-1;;;;;21676:21:0::1;21663:35;::::0;;;:12:::1;:35;::::0;;;;;;21638:4:::1;21617:27:::0;;;;;21465:111;;-1:-1:-1;21617:92:0::1;::::0;:27;:31:::1;:92::i;:::-;21608:4;21587:27;::::0;;;:12:::1;:27;::::0;;;;;:122;;;;21733:21:::1;::::0;-1:-1:-1;;;;;21733:21:0::1;21720:35:::0;;;;;:39;;;21796:26:::1;:19:::0;21820:1:::1;21796:23;:26::i;:::-;21770:52:::0;-1:-1:-1;21833:20:0::1;21856:40;:19:::0;21770:52;21856:23:::1;:40::i;:::-;21833:63:::0;-1:-1:-1;21913:17:0;21909:57:::1;;21948:7;;;;;21909:57;22000:16;::::0;;22014:1:::1;22000:16:::0;;;21976:21:::1;22000:16:::0;;::::1;::::0;;21976:21;22000:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22000:16:0::1;21976:40;;22045:4;22027;22032:1;22027:7;;;;;;;;-1:-1:-1::0;;;;;22027:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22071:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;22071:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;22027:7;;22071:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;22071:13:0;22061:7;;:4;;22066:1:::1;::::0;22061:7;::::1;;;;;-1:-1:-1::0;;;;;22061:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;22157:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;22157:188:0;;::::1;::::0;::::1;::::0;;;22097:21:::1;22157:188:::0;;;;;;22299:4:::1;22157:188:::0;;;;;;22319:15:::1;22157:188:::0;;;;;;;;;;;;;;;;;;;;;22121:21:::1;::::0;22157:6;;;::::1;::::0;:57:::1;::::0;22229:12;;22097:21;;22272:4;;22157:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;22097:21;22157:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22358:26;22387:40;22413:13;22387:21;:25;;:40;;;;:::i;:::-;22358:69;;22462:1;22444:15;:19;:45;;;;;22488:1;22467:18;:22;22444:45;22440:322;;;22506:6;::::0;22680:21:::1;::::0;22506:244:::1;::::0;;-1:-1:-1;;;22506:244:0;;22582:4:::1;22506:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;22680:21:0;;::::1;22506:244:::0;;;;22720:15:::1;22506:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;22536:18;;22506:244;;;;;::::1;::::0;;;;;;;;;22536:18;22506:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;22440:322:0::1;-1:-1:-1::0;;22796:15:0::1;22772:21;:39:::0;-1:-1:-1;;;;15164:1:0::1;15176:6:::0;:14;;-1:-1:-1;;;;15176:14:0;;;21412:1407::o;25249:140::-;25337:6;;25298:4;;-1:-1:-1;;;25337:6:0;;;;25336:7;:42;;;;-1:-1:-1;;25374:4:0;;-1:-1:-1;;;;;25374:4:0;25360:10;:18;;;25249:140::o;22827:1153::-;15140:6;:13;;-1:-1:-1;;;;15140:13:0;-1:-1:-1;;;15140:13:0;;;22933:16:::1;::::0;22922:4:::1;15140:13:::0;22901:27;;;:12:::1;:27;::::0;;;;;15140:13;;22901:49:::1;::::0;:27;:31:::1;:49::i;:::-;22878:72:::0;-1:-1:-1;22967:17:0;22963:56:::1;;23001:7;;;22963:56;23111:16;::::0;;23125:1:::1;23111:16:::0;;;23087:21:::1;23111:16:::0;;::::1;::::0;;23055:21:::1;::::0;23087;;23111:16;23125:1;23111:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23111:16:0::1;23087:40;;23156:4;23138;23143:1;23138:7;;;;;;;;-1:-1:-1::0;;;;;23138:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;23182:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;23182:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;23138:7;;23182:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;23182:13:0;23172:7;;:4;;23177:1:::1;::::0;23172:7;::::1;;;;;;;;;;:23;-1:-1:-1::0;;;;;23172:23:0::1;;;-1:-1:-1::0;;;;;23172:23:0::1;;;::::0;::::1;23218:6;;;;;;;;;-1:-1:-1::0;;;;;23218:6:0::1;-1:-1:-1::0;;;;;23218:57:0::1;;23290:12;23317:1;23333:4;23360;23380:15;23218:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;23218:188:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23419:33;23455:64;23495:13;23455:21;:25;;:64;;;;:::i;:::-;23559:16;::::0;23684:10:::1;::::0;23668:11:::1;::::0;23419:100;;-1:-1:-1;23533:12:0::1;::::0;-1:-1:-1;;;;;23559:16:0;;::::1;::::0;23603:107:::1;::::0;23668:27:::1;::::0;:11;:15:::1;:27::i;:::-;23633:11;::::0;23603:42:::1;::::0;:25;;:29:::1;:42::i;:107::-;23551:199;::::0;23730:5:::1;::::0;23551:199;::::1;::::0;;;;;23730:5;23551:199:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;23783:15:0::1;::::0;23906:10:::1;::::0;23890:11:::1;::::0;23532:218;;-1:-1:-1;;;;;;23783:15:0;;::::1;::::0;23826:106:::1;::::0;23890:27:::1;::::0;:11;:15:::1;:27::i;:::-;23856:10;::::0;23826:41:::1;::::0;:25;;:29:::1;:41::i;:106::-;23775:197;::::0;23952:5:::1;::::0;23775:197;::::1;::::0;;;;;23952:5;23775:197:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;15176:6:0;:14;;-1:-1:-1;;;;15176:14:0;;;22827:1153::o;24561:214::-;24704:4;;24660;;-1:-1:-1;;;;;24704:12:0;;;:4;;:12;;:26;;-1:-1:-1;24720:4:0;;-1:-1:-1;;;;;24720:10:0;;;:4;;:10;24704:26;24703:64;;;;-1:-1:-1;;;;;;;;24749:18:0;;;;;:12;:18;;;;;;;;24748:19;;24561:214::o;20359:1045::-;20523:8;;20565:11;;20606:4;;20483:7;;20523:8;20565:11;-1:-1:-1;;;;;20593:17:0;;;20606:4;;20593:17;20589:137;;;20652:7;;20639:8;;:21;;:12;:21::i;:::-;20627:33;;20690:24;20706:7;;20690:11;;:15;;:24;;;;:::i;:::-;20675:39;;20589:137;20738:17;20758:44;20792:9;20758:29;20772:14;;20758:9;:13;;:29;;;;:::i;:::-;:33;;:44::i;:::-;20738:64;;20846:96;20886:45;20920:10;;20886:29;20900:14;;20886:9;:13;;:29;;;;:::i;:45::-;20859:7;;-1:-1:-1;;;;;20859:7:0;20846:21;;;;:12;:21;;;;;;;:25;:96::i;:::-;20835:7;;-1:-1:-1;;;;;20835:7:0;20822:21;;;;:12;:21;;;;;:120;21080:10;;20983:120;;21029:63;;21063:28;;:12;;:16;:28::i;:::-;21043:14;;21029:29;;:9;;:13;:29::i;:63::-;21004:4;20983:27;;;;:12;:27;;;;;;;:31;:120::i;:::-;20974:4;20953:27;;;;:12;:27;;;;;:150;21240:12;;21220:14;;21152:112;;21206:47;;:29;;:9;;:13;:29::i;:47::-;21165:21;;-1:-1:-1;;;;;21165:21:0;21152:35;;;;:12;:35;;;;;;;:39;:112::i;:::-;21127:21;;-1:-1:-1;;;;;21127:21:0;;;21114:35;;;;:12;:35;;;;;:150;;;;21336:16;;21315:4;;21290:64;;;;;21322:31;;:9;;:13;:31::i;:::-;21290:64;;;;;;;;;;;;;;;21372:24;:9;21386;21372:13;:24::i;:::-;21365:31;20359:1045;-1:-1:-1;;;;;;;20359:1045:0:o
Swarm Source
ipfs://f9d04d9ce89af4932fab4a9bf5131e43508bb4fedcb8d4b55769b1daac497742
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.