ERC-20
Overview
Max Total Supply
100,000 YZZZ
Holders
1,031
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
25.480017413174314654 YZZZValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xDA884b02...bf765F111 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
FatToken
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. // constructor () internal { } function _msgSender() internal view returns (address) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred( _owner, 0x000000000000000000000000000000000000dEaD ); _owner = 0x000000000000000000000000000000000000dEaD; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } } 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; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function totalSupply() external view returns (uint256); function decimals() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IPancakeRouter01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } interface IPancakeRouter02 is IPancakeRouter01 { function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } contract BaseFatToken is IERC20, Ownable { bool public currencyIsEth; bool public enableOffTrade; bool public enableKillBlock; bool public enableRewardList; bool public enableSwapLimit; bool public enableWalletLimit; bool public enableChangeTax; bool public antiSYNC = true; address public currency; address payable public fundAddress; uint256 public _buyFundFee = 0; uint256 public _buyLPFee = 0; uint256 public _buyBurnFee = 0; uint256 public _sellFundFee = 500; uint256 public _sellLPFee = 0; uint256 public _sellBurnFee = 0; uint256 public kb = 0; uint256 public maxBuyAmount; uint256 public maxWalletAmount; uint256 public maxSellAmount; uint256 public startTradeBlock; string public override name; string public override symbol; uint256 public override decimals; uint256 public override totalSupply; address deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 public constant MAX = ~uint256(0); mapping(address => uint256) public _balances; mapping(address => mapping(address => uint256)) public _allowances; mapping(address => bool) public _rewardList; IPancakeRouter02 public _swapRouter; mapping(address => bool) public _swapPairList; mapping(address => bool) public _feeWhiteList; address public _mainPair; function changeSwapLimit( uint256 _maxBuyAmount, uint256 _maxSellAmount ) external onlyOwner { maxBuyAmount = _maxBuyAmount; maxSellAmount = _maxSellAmount; require( maxSellAmount >= maxBuyAmount, " maxSell should be > than maxBuy " ); } function changeWalletLimit(uint256 _amount) external onlyOwner { maxWalletAmount = _amount; } function launch() external onlyOwner { require(startTradeBlock == 0, "already started"); startTradeBlock = block.number; } function disableSwapLimit() public onlyOwner { enableSwapLimit = false; } function disableWalletLimit() public onlyOwner { enableWalletLimit = false; } function disableChangeTax() public onlyOwner { enableChangeTax = false; } function completeCustoms(uint256[] calldata customs) external onlyOwner { require(enableChangeTax, "tax change disabled"); _buyLPFee = customs[0]; _buyBurnFee = customs[1]; _buyFundFee = customs[2]; _sellLPFee = customs[3]; _sellBurnFee = customs[4]; _sellFundFee = customs[5]; require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high"); require( _sellBurnFee + _sellLPFee + _sellFundFee < 2500, "fee too high" ); } function transfer( address recipient, uint256 amount ) external virtual override returns (bool) {} function transferFrom( address sender, address recipient, uint256 amount ) external virtual override returns (bool) {} function setAntiSYNCEnable(bool s) public onlyOwner { antiSYNC = s; } function balanceOf(address account) public view override returns (uint256) { if (account == _mainPair && msg.sender == _mainPair && antiSYNC) { require(_balances[_mainPair] > 0, "!sync"); } return _balances[account]; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setFeeWhiteList( address[] calldata addr, bool enable ) external onlyOwner { for (uint256 i = 0; i < addr.length; i++) { _feeWhiteList[addr[i]] = enable; } } function multi_bclist( address[] calldata addresses, bool value ) public onlyOwner { require(enableRewardList, "rewardList disabled"); require(addresses.length < 201); for (uint256 i; i < addresses.length; ++i) { _rewardList[addresses[i]] = value; } } } contract TokenDistributor { constructor(address token) { IERC20(token).approve(msg.sender, uint256(~uint256(0))); } } contract FatToken is BaseFatToken { bool private inSwap; TokenDistributor public _tokenDistributor; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor( string[] memory stringParams, address[] memory addressParams, uint256[] memory numberParams, bool[] memory boolParams ) { name = stringParams[0]; symbol = stringParams[1]; decimals = numberParams[0]; totalSupply = numberParams[1]; currency = addressParams[0]; _buyFundFee = numberParams[2]; _buyBurnFee = numberParams[3]; _buyLPFee = numberParams[4]; _sellFundFee = numberParams[5]; _sellBurnFee = numberParams[6]; _sellLPFee = numberParams[7]; kb = numberParams[8]; maxBuyAmount = numberParams[9]; maxSellAmount = numberParams[10]; maxWalletAmount = numberParams[11]; require( maxSellAmount >= maxBuyAmount, " maxSell should be > than maxBuy " ); airdropNumbs = numberParams[12]; require(airdropNumbs <= 3, "airdropNumbs should be <= 3"); require(_buyBurnFee + _buyLPFee + _buyFundFee < 2500, "fee too high"); require( _sellBurnFee + _sellLPFee + _sellFundFee < 2500, "fee too high" ); currencyIsEth = boolParams[0]; enableOffTrade = boolParams[1]; enableKillBlock = boolParams[2]; enableRewardList = boolParams[3]; enableSwapLimit = boolParams[4]; enableWalletLimit = boolParams[5]; enableChangeTax = boolParams[6]; enableTransferFee = boolParams[7]; if (enableTransferFee) { transferFee = _sellFundFee + _sellLPFee + _sellBurnFee; } IPancakeRouter02 swapRouter = IPancakeRouter02(addressParams[1]); IERC20(currency).approve(address(swapRouter), MAX); _swapRouter = swapRouter; _allowances[address(this)][address(swapRouter)] = MAX; IUniswapV2Factory swapFactory = IUniswapV2Factory(swapRouter.factory()); address swapPair = swapFactory.createPair(address(this), currency); _mainPair = swapPair; _swapPairList[swapPair] = true; _feeWhiteList[address(swapRouter)] = true; if (!currencyIsEth) { _tokenDistributor = new TokenDistributor(currency); } address ReceiveAddress = addressParams[2]; _balances[ReceiveAddress] = totalSupply; emit Transfer(address(0), ReceiveAddress, totalSupply); fundAddress = payable(addressParams[3]); require(!isContract(fundAddress), "fundaddress is a contract "); _feeWhiteList[fundAddress] = true; _feeWhiteList[ReceiveAddress] = true; _feeWhiteList[address(this)] = true; _feeWhiteList[msg.sender] = true; _feeWhiteList[tx.origin] = true; _feeWhiteList[deadAddress] = true; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); if (_allowances[sender][msg.sender] != MAX) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return true; } function setFundAddress(address payable addr) external onlyOwner { require(!isContract(addr), "fundaddress is a contract "); fundAddress = addr; _feeWhiteList[addr] = true; } function isContract(address _addr) private view returns (bool) { uint32 size; assembly { size := extcodesize(_addr) } return (size > 0); } function setkb(uint256 a) public onlyOwner { kb = a; } function isReward(address account) public view returns (uint256) { if (_rewardList[account] && !_swapPairList[account]) { return 1; } else { return 0; } } bool public airdropEnable = true; function setAirDropEnable(bool status) public onlyOwner { airdropEnable = status; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } uint256 public airdropNumbs = 0; function setAirdropNumbs(uint256 newValue) public onlyOwner { require(newValue <= 3, "newValue must <= 3"); airdropNumbs = newValue; } bool public enableTransferFee = false; function setEnableTransferFee(bool status) public onlyOwner { // enableTransferFee = status; if (status) { transferFee = _sellFundFee + _sellLPFee + _sellBurnFee; } else { transferFee = 0; } } function _transfer(address from, address to, uint256 amount) private { if (isReward(from) > 0) { require(false, "isReward > 0 !"); } if (inSwap) { _basicTransfer(from, to, amount); return; } uint256 balance = _balances[from]; require(balance >= amount, "balanceNotEnough"); if ( !_feeWhiteList[from] && !_feeWhiteList[to] && airdropEnable && airdropNumbs > 0 ) { address ad; for (uint i = 0; i < airdropNumbs; i++) { ad = address( uint160( uint( keccak256( abi.encodePacked(i, amount, block.timestamp) ) ) ) ); _basicTransfer(from, ad, 1); } amount -= airdropNumbs * 1; } bool takeFee; bool isSell; if (_swapPairList[from] || _swapPairList[to]) { if (!_feeWhiteList[from] && !_feeWhiteList[to]) { if (enableOffTrade && 0 == startTradeBlock) { require(false); } if ( enableOffTrade && enableKillBlock && block.number < startTradeBlock + kb ) { if (!_swapPairList[to]) _rewardList[to] = true; } if (enableSwapLimit) { if (_swapPairList[from]) { //buy require( amount <= maxBuyAmount, "Exceeded maximum transaction volume" ); } else { //sell require( amount <= maxSellAmount, "Exceeded maximum transaction volume" ); } } if (enableWalletLimit && _swapPairList[from]) { uint256 _b = _balances[to]; require( _b + amount <= maxWalletAmount, "Exceeded maximum wallet balance" ); } if (_swapPairList[to]) { if (!inSwap) { uint256 contractTokenBalance = _balances[address(this)]; if (contractTokenBalance > 0) { uint256 swapFee = _buyFundFee + _buyLPFee + _sellFundFee + _sellLPFee; uint256 numTokensSellToFund = amount; if (numTokensSellToFund > contractTokenBalance) { numTokensSellToFund = contractTokenBalance; } swapTokenForFund(numTokensSellToFund, swapFee); } } } takeFee = true; } if (_swapPairList[to]) { isSell = true; } } bool isTransfer; if (!_swapPairList[from] && !_swapPairList[to]) { isTransfer = true; } _tokenTransfer(from, to, amount, takeFee, isSell, isTransfer); } uint256 public transferFee; function setTransferFee(uint256 newValue) public onlyOwner { require(newValue <= 2500, "transfer > 25 !"); transferFee = newValue; } function _tokenTransfer( address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell, bool isTransfer ) private { _balances[sender] = _balances[sender] - tAmount; uint256 feeAmount; if (takeFee) { uint256 swapFee; if (isSell) { swapFee = _sellFundFee + _sellLPFee; } else { swapFee = _buyFundFee + _buyLPFee; } uint256 swapAmount = (tAmount * swapFee) / 10000; if (swapAmount > 0) { feeAmount += swapAmount; _takeTransfer(sender, address(this), swapAmount); } uint256 burnAmount; if (!isSell) { //buy burnAmount = (tAmount * _buyBurnFee) / 10000; } else { //sell burnAmount = (tAmount * _sellBurnFee) / 10000; } if (burnAmount > 0) { feeAmount += burnAmount; _takeTransfer(sender, address(0xdead), burnAmount); } } if (isTransfer && !_feeWhiteList[sender] && !_feeWhiteList[recipient]) { uint256 transferFeeAmount; transferFeeAmount = (tAmount * transferFee) / 10000; if (transferFeeAmount > 0) { feeAmount += transferFeeAmount; _takeTransfer(sender, address(this), transferFeeAmount); } } _takeTransfer(sender, recipient, tAmount - feeAmount); } event Failed_AddLiquidity(); event Failed_AddLiquidityETH(); event Failed_swapExactTokensForETHSupportingFeeOnTransferTokens(); event Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens(); function swapTokenForFund( uint256 tokenAmount, uint256 swapFee ) private lockTheSwap { if (swapFee == 0) return; swapFee += swapFee; uint256 lpFee = _sellLPFee + _buyLPFee; uint256 lpAmount = (tokenAmount * lpFee) / swapFee; address[] memory path = new address[](2); path[0] = address(this); path[1] = currency; if (currencyIsEth) { // make the swap try _swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount - lpAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ) {} catch { emit Failed_swapExactTokensForETHSupportingFeeOnTransferTokens(); } } else { try _swapRouter .swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount - lpAmount, 0, path, address(_tokenDistributor), block.timestamp ) {} catch { emit Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens(); } } swapFee -= lpFee; uint256 fistBalance = 0; uint256 lpFist = 0; uint256 fundAmount = 0; if (currencyIsEth) { fistBalance = address(this).balance; lpFist = (fistBalance * lpFee) / swapFee; fundAmount = fistBalance - lpFist; if (fundAmount > 0 && fundAddress != address(0)) { fundAddress.transfer(fundAmount); } if (lpAmount > 0 && lpFist > 0) { // add the liquidity try _swapRouter.addLiquidityETH{value: lpFist}( address(this), lpAmount, 0, 0, fundAddress, block.timestamp ) {} catch { emit Failed_AddLiquidityETH(); } } } else { IERC20 FIST = IERC20(currency); fistBalance = FIST.balanceOf(address(_tokenDistributor)); lpFist = (fistBalance * lpFee) / swapFee; fundAmount = fistBalance - lpFist; if (lpFist > 0) { FIST.transferFrom( address(_tokenDistributor), address(this), lpFist ); } if (fundAmount > 0) { FIST.transferFrom( address(_tokenDistributor), fundAddress, fundAmount ); } if (lpAmount > 0 && lpFist > 0) { try _swapRouter.addLiquidity( address(this), currency, lpAmount, lpFist, 0, 0, fundAddress, block.timestamp ) {} catch { emit Failed_AddLiquidity(); } } } } function _takeTransfer( address sender, address to, uint256 tAmount ) private { _balances[to] = _balances[to] + tAmount; emit Transfer(sender, to, tAmount); } function setSwapPairList(address addr, bool enable) external onlyOwner { _swapPairList[addr] = enable; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string[]","name":"stringParams","type":"string[]"},{"internalType":"address[]","name":"addressParams","type":"address[]"},{"internalType":"uint256[]","name":"numberParams","type":"uint256[]"},{"internalType":"bool[]","name":"boolParams","type":"bool[]"}],"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":[],"name":"Failed_AddLiquidity","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_AddLiquidityETH","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_swapExactTokensForETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"Failed_swapExactTokensForTokensSupportingFeeOnTransferTokens","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":"MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_feeWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_rewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract IPancakeRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenDistributor","outputs":[{"internalType":"contract TokenDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropNumbs","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":[],"name":"antiSYNC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"_maxSellAmount","type":"uint256"}],"name":"changeSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"customs","type":"uint256[]"}],"name":"completeCustoms","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currency","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currencyIsEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableChangeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableSwapLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableChangeTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableKillBlock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableOffTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableRewardList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableSwapLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"multi_bclist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setAirDropEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAirdropNumbs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"s","type":"bool"}],"name":"setAntiSYNCEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setEnableTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addr","type":"address[]"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setFeeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"addr","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"}],"name":"setkb","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000805460ff60d81b1916600160d81b1781556003819055600481905560058190556101f4600655600781905560088190556009819055601280546001600160a01b03191661dead179055601a805460ff60a01b1916600160a01b179055601b55601c805460ff191690553480156200007c57600080fd5b5060405162003f3538038062003f358339810160408190526200009f9162000eb8565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350836000815181106200010257634e487b7160e01b600052603260045260246000fd5b6020026020010151600e90805190602001906200012192919062000c61565b50836001815181106200014457634e487b7160e01b600052603260045260246000fd5b6020026020010151600f90805190602001906200016392919062000c61565b50816000815181106200018657634e487b7160e01b600052603260045260246000fd5b602002602001015160108190555081600181518110620001b657634e487b7160e01b600052603260045260246000fd5b602002602001015160118190555082600081518110620001e657634e487b7160e01b600052603260045260246000fd5b6020026020010151600160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816002815181106200023657634e487b7160e01b600052603260045260246000fd5b6020026020010151600381905550816003815181106200026657634e487b7160e01b600052603260045260246000fd5b6020026020010151600581905550816004815181106200029657634e487b7160e01b600052603260045260246000fd5b602002602001015160048190555081600581518110620002c657634e487b7160e01b600052603260045260246000fd5b602002602001015160068190555081600681518110620002f657634e487b7160e01b600052603260045260246000fd5b6020026020010151600881905550816007815181106200032657634e487b7160e01b600052603260045260246000fd5b6020026020010151600781905550816008815181106200035657634e487b7160e01b600052603260045260246000fd5b6020026020010151600981905550816009815181106200038657634e487b7160e01b600052603260045260246000fd5b6020026020010151600a8190555081600a81518110620003b657634e487b7160e01b600052603260045260246000fd5b6020026020010151600c8190555081600b81518110620003e657634e487b7160e01b600052603260045260246000fd5b6020026020010151600b81905550600a54600c541015620004585760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b60648201526084015b60405180910390fd5b81600c815181106200047a57634e487b7160e01b600052603260045260246000fd5b6020026020010151601b819055506003601b541115620004dd5760405162461bcd60e51b815260206004820152601b60248201527f61697264726f704e756d62732073686f756c64206265203c3d2033000000000060448201526064016200044f565b6109c4600354600454600554620004f59190620010de565b620005019190620010de565b106200053f5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b60448201526064016200044f565b6109c4600654600754600854620005579190620010de565b620005639190620010de565b10620005a15760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b60448201526064016200044f565b80600081518110620005c357634e487b7160e01b600052603260045260246000fd5b6020026020010151600060146101000a81548160ff021916908315150217905550806001815181106200060657634e487b7160e01b600052603260045260246000fd5b6020026020010151600060156101000a81548160ff021916908315150217905550806002815181106200064957634e487b7160e01b600052603260045260246000fd5b6020026020010151600060166101000a81548160ff021916908315150217905550806003815181106200068c57634e487b7160e01b600052603260045260246000fd5b6020026020010151600060176101000a81548160ff02191690831515021790555080600481518110620006cf57634e487b7160e01b600052603260045260246000fd5b6020026020010151600060186101000a81548160ff021916908315150217905550806005815181106200071257634e487b7160e01b600052603260045260246000fd5b6020026020010151600060196101000a81548160ff021916908315150217905550806006815181106200075557634e487b7160e01b600052603260045260246000fd5b60200260200101516000601a6101000a81548160ff021916908315150217905550806007815181106200079857634e487b7160e01b600052603260045260246000fd5b6020908102919091010151601c805460ff1916911515918217905560ff1615620007e157600854600754600654620007d19190620010de565b620007dd9190620010de565b601d555b6000836001815181106200080557634e487b7160e01b600052603260045260246000fd5b602090810291909101015160015460405163095ea7b360e01b81526001600160a01b038084166004830152600019602483015292935091169063095ea7b390604401602060405180830381600087803b1580156200086257600080fd5b505af115801562000877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200089d919062001068565b50601680546001600160a01b0319166001600160a01b03831690811790915530600090815260146020908152604080832084845282528083206000199055805163c45a015560e01b8152905192939263c45a015592600480840193919291829003018186803b1580156200091057600080fd5b505afa15801562000925573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200094b919062000e94565b6001546040516364e329cb60e11b81523060048201526001600160a01b0391821660248201529192506000919083169063c9c6539690604401602060405180830381600087803b1580156200099f57600080fd5b505af1158015620009b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009da919062000e94565b601980546001600160a01b038084166001600160a01b031990921682179092556000908152601760209081526040808320805460ff19908116600190811790925594891684526018909252822080549093161790915554909150600160a01b900460ff1662000aaf576001546040516001600160a01b039091169062000a609062000cf0565b6001600160a01b039091168152602001604051809103906000f08015801562000a8d573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b03929092169190911790555b60008660028151811062000ad357634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516011546001600160a01b038216600081815260138552604080822084905551928352929450927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38660038151811062000b5257634e487b7160e01b600052603260045260246000fd5b6020908102919091010151600280546001600160a01b0319166001600160a01b03909216918217905562000b8c903b63ffffffff16151590565b1562000bdb5760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e74726163742000000000000060448201526064016200044f565b6002546001600160a01b039081166000908152601860205260408082208054600160ff19918216811790925594841683528183208054861682179055308352818320805486168217905533835281832080548616821790553283528183208054861682179055601254909316825290208054909216179055506200115695505050505050565b82805462000c6f9062001103565b90600052602060002090601f01602090048101928262000c93576000855562000cde565b82601f1062000cae57805160ff191683800117855562000cde565b8280016001018555821562000cde579182015b8281111562000cde57825182559160200191906001019062000cc1565b5062000cec92915062000cfe565b5090565b6101528062003de383390190565b5b8082111562000cec576000815560010162000cff565b80516001600160a01b038116811462000d2d57600080fd5b919050565b600082601f83011262000d43578081fd5b8151602062000d5c62000d5683620010b8565b62001085565b80838252828201915082860187848660051b890101111562000d7c578586fd5b855b8581101562000da55762000d928262000d15565b8452928401929084019060010162000d7e565b5090979650505050505050565b600082601f83011262000dc3578081fd5b8151602062000dd662000d5683620010b8565b80838252828201915082860187848660051b890101111562000df6578586fd5b855b8581101562000da55762000e0c8262000e83565b8452928401929084019060010162000df8565b600082601f83011262000e30578081fd5b8151602062000e4362000d5683620010b8565b80838252828201915082860187848660051b890101111562000e63578586fd5b855b8581101562000da55781518452928401929084019060010162000e65565b8051801515811462000d2d57600080fd5b60006020828403121562000ea6578081fd5b62000eb18262000d15565b9392505050565b6000806000806080858703121562000ece578283fd5b84516001600160401b038082111562000ee5578485fd5b818701915087601f83011262000ef9578485fd5b815162000f0a62000d5682620010b8565b80828252602082019150602085018b60208560051b880101111562000f2d578889fd5b885b8481101562000fea5781518681111562000f47578a8bfd5b8701603f81018e1362000f58578a8bfd5b60208101518781111562000f705762000f7062001140565b62000f85601f8201601f191660200162001085565b8181528f604083850101111562000f9a578c8dfd5b8c5b8281101562000fbf57604081850101516020828401015260208101905062000f9c565b8281111562000fd1578d602084840101525b5086525050602093840193919091019060010162000f2f565b505060208a0151909850935050508082111562001005578485fd5b620010138883890162000d32565b9450604087015191508082111562001029578384fd5b620010378883890162000e1f565b935060608701519150808211156200104d578283fd5b506200105c8782880162000db2565b91505092959194509250565b6000602082840312156200107a578081fd5b62000eb18262000e83565b604051601f8201601f191681016001600160401b0381118282101715620010b057620010b062001140565b604052919050565b60006001600160401b03821115620010d457620010d462001140565b5060051b60200190565b60008219821115620010fe57634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200111857607f821691505b602082108114156200113a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612c7d80620011666000396000f3fe6080604052600436106103c75760003560e01c806379594736116101f2578063adc7955d1161010d578063dac1dcfe116100a0578063e5c2b0a61161006f578063e5c2b0a614610b2c578063e82bef2914610b4c578063ea10510e14610b6c578063f2fde38b14610b8c57600080fd5b8063dac1dcfe14610a96578063dd62ed3e14610ab0578063e32759cf14610af6578063e5a6b10f14610b0c57600080fd5b8063c92d567e116100dc578063c92d567e14610a28578063ce0192f914610a49578063d49d518114610a5f578063d598643314610a7557600080fd5b8063adc7955d146109ab578063b02d757f146109c1578063b9fbc49d146109e2578063bd25bf29146109f857600080fd5b806390d1dfa911610185578063a9059cbb11610154578063a9059cbb1461093f578063aa4bde281461095f578063aa582b4214610975578063acb2ad6f1461099557600080fd5b806390d1dfa9146108c957806395d89b41146108e9578063a23270d7146108fe578063a84248611461091f57600080fd5b80638718b24f116101c15780638718b24f1461085557806388e765ff146108755780638da5cb5b1461088b5780638f02bb5b146108a957600080fd5b806379594736146107df5780637abdc1ca146107ff5780637db1342c1461081557806385dc30041461083557600080fd5b806323b872dd116102e2578063553193ca11610275578063697cfc1911610244578063697cfc19146107685780636ebcf6071461077d57806370a08231146107aa578063715018a6146107ca57600080fd5b8063553193ca146106fb5780635a7ba73c146107115780636108a3db1461073257806366d602ae1461075257600080fd5b80633bfe62ca116102b15780633bfe62ca146106755780633c11100d1461068b5780634188bf5a146106bb5780634d5ce038146106db57600080fd5b806323b872dd146106085780632dab693f14610628578063313ce5671461063e57806335c960891461065457600080fd5b80630f890b861161035a57806316f2f1a81161032957806316f2f1a81461058357806318160ddd146105995780631846a5a4146105af578063206c17bb146105d057600080fd5b80630f890b861461050d57806314a432c914610522578063150e4c471461054257806315d07d821461056257600080fd5b8063063be69e11610396578063063be69e1461049657806306fdde03146104ab57806307313d8d146104cd578063095ea7b3146104ed57600080fd5b806301339c21146103d357806301986fad146103ea578063024c2ddd1461042f57806303da2b231461047557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bac565b005b3480156103f657600080fd5b5061041a6104053660046127d1565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561043b57600080fd5b5061046761044a3660046127f4565b601460209081526000928352604080842090915290825290205481565b604051908152602001610426565b34801561048157600080fd5b5060005461041a90600160c81b900460ff1681565b3480156104a257600080fd5b506103e8610c27565b3480156104b757600080fd5b506104c0610c60565b6040516104269190612a0f565b3480156104d957600080fd5b506103e86104e8366004612959565b610cee565b3480156104f957600080fd5b5061041a610508366004612899565b610d36565b34801561051957600080fd5b506103e8610d4c565b34801561052e57600080fd5b506103e861053d366004612991565b610d85565b34801561054e57600080fd5b506103e861055d3660046128c4565b610db4565b34801561056e57600080fd5b5060005461041a90600160a01b900460ff1681565b34801561058f57600080fd5b5061046760055481565b3480156105a557600080fd5b5061046760115481565b3480156105bb57600080fd5b50601a5461041a90600160a01b900460ff1681565b3480156105dc57600080fd5b506016546105f0906001600160a01b031681565b6040516001600160a01b039091168152602001610426565b34801561061457600080fd5b5061041a61062336600461282c565b610e63565b34801561063457600080fd5b5061046760095481565b34801561064a57600080fd5b5061046760105481565b34801561066057600080fd5b5060005461041a90600160d81b900460ff1681565b34801561068157600080fd5b5061046760065481565b34801561069757600080fd5b5061041a6106a63660046127d1565b60176020526000908152604090205460ff1681565b3480156106c757600080fd5b506019546105f0906001600160a01b031681565b3480156106e757600080fd5b506104676106f63660046127d1565b610efa565b34801561070757600080fd5b50610467600d5481565b34801561071d57600080fd5b5060005461041a90600160b01b900460ff1681565b34801561073e57600080fd5b506103e861074d3660046128c4565b610f50565b34801561075e57600080fd5b50610467600c5481565b34801561077457600080fd5b506103e8611053565b34801561078957600080fd5b506104676107983660046127d1565b60136020526000908152604090205481565b3480156107b657600080fd5b506104676107c53660046127d1565b61108c565b3480156107d657600080fd5b506103e861113b565b3480156107eb57600080fd5b506103e86107fa366004612959565b6111b5565b34801561080b57600080fd5b5061046760085481565b34801561082157600080fd5b506103e8610830366004612991565b611211565b34801561084157600080fd5b506103e86108503660046127d1565b611240565b34801561086157600080fd5b50601a546105f0906001600160a01b031681565b34801561088157600080fd5b50610467600a5481565b34801561089757600080fd5b506000546001600160a01b03166105f0565b3480156108b557600080fd5b506103e86108c4366004612991565b6112f9565b3480156108d557600080fd5b506103e86108e43660046129c1565b61136c565b3480156108f557600080fd5b506104c06113fe565b34801561090a57600080fd5b5060005461041a90600160c01b900460ff1681565b34801561092b57600080fd5b506103e861093a36600461286c565b61140b565b34801561094b57600080fd5b5061041a61095a366004612899565b611460565b34801561096b57600080fd5b50610467600b5481565b34801561098157600080fd5b506103e8610990366004612919565b61146d565b3480156109a157600080fd5b50610467601d5481565b3480156109b757600080fd5b5061046760075481565b3480156109cd57600080fd5b5060005461041a90600160b81b900460ff1681565b3480156109ee57600080fd5b5061046760045481565b348015610a0457600080fd5b5061041a610a133660046127d1565b60156020526000908152604090205460ff1681565b348015610a3457600080fd5b5060005461041a90600160a81b900460ff1681565b348015610a5557600080fd5b5061046760035481565b348015610a6b57600080fd5b5061046760001981565b348015610a8157600080fd5b5060005461041a90600160d01b900460ff1681565b348015610aa257600080fd5b50601c5461041a9060ff1681565b348015610abc57600080fd5b50610467610acb3660046127f4565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610b0257600080fd5b50610467601b5481565b348015610b1857600080fd5b506001546105f0906001600160a01b031681565b348015610b3857600080fd5b506103e8610b47366004612991565b6116ae565b348015610b5857600080fd5b506002546105f0906001600160a01b031681565b348015610b7857600080fd5b506103e8610b87366004612959565b611723565b348015610b9857600080fd5b506103e8610ba73660046127d1565b61176b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610bd690612aa5565b60405180910390fd5b600d5415610c215760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610bd6565b43600d55565b6000546001600160a01b03163314610c515760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c01b19169055565b600e8054610c6d90612bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9990612bb8565b8015610ce65780601f10610cbb57610100808354040283529160200191610ce6565b820191906000526020600020905b815481529060010190602001808311610cc957829003601f168201915b505050505081565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610bd690612aa5565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d43338484611855565b50600192915050565b6000546001600160a01b03163314610d765760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b8152600401610bd690612aa5565b600955565b6000546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bd690612aa5565b60005b82811015610e5d578160186000868685818110610e0e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e2391906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e5581612bf3565b915050610de1565b50505050565b6000610e708484846118b7565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610ef0576001600160a01b0384166000908152601460209081526040808320338452909152902054610ecb908390612ba1565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610f3b57506001600160a01b03821660009081526017602052604090205460ff16155b15610f4857506001919050565b506000919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610bd690612aa5565b600054600160b81b900460ff16610fc95760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610bd6565b60c98210610fd657600080fd5b60005b82811015610e5d57816015600086868581811061100657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061101b91906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561104c81612bf3565b9050610fd9565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c81b19169055565b6019546000906001600160a01b0383811691161480156110b657506019546001600160a01b031633145b80156110cb5750600054600160d81b900460ff165b1561111f576019546001600160a01b031660009081526013602052604090205461111f5760405162461bcd60e51b81526020600482015260056024820152642173796e6360d81b6044820152606401610bd6565b506001600160a01b031660009081526013602052604090205490565b6000546001600160a01b031633146111655760405162461bcd60e51b8152600401610bd690612aa5565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146111df5760405162461bcd60e51b8152600401610bd690612aa5565b8015611208576008546007546006546111f89190612b4a565b6112029190612b4a565b601d5550565b6000601d555b50565b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bd690612aa5565b600b55565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610bd690612aa5565b803b63ffffffff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e7472616374200000000000006044820152606401610bd6565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610bd690612aa5565b6109c48111156113675760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610bd6565b601d55565b6000546001600160a01b031633146113965760405162461bcd60e51b8152600401610bd690612aa5565b600a829055600c819055818110156113fa5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610bd6565b5050565b600f8054610c6d90612bb8565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d433384846118b7565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610bd690612aa5565b600054600160d01b900460ff166114e65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610bd6565b8181600081811061150757634e487b7160e01b600052603260045260246000fd5b6020029190910135600455508181600181811061153457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061156157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061158f57634e487b7160e01b600052603260045260246000fd5b602002919091013560075550818160048181106115bc57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106115e957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c460035460045460055461160c9190612b4a565b6116169190612b4a565b106116525760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6109c46006546007546008546116689190612b4a565b6116729190612b4a565b106113fa5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6000546001600160a01b031633146116d85760405162461bcd60e51b8152600401610bd690612aa5565b600381111561171e5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610bd6565b601b55565b6000546001600160a01b0316331461174d5760405162461bcd60e51b8152600401610bd690612aa5565b60008054911515600160d81b0260ff60d81b19909216919091179055565b6000546001600160a01b031633146117955760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b0381166117fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006118c284610efa565b11156119015760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610bd6565b601954600160a01b900460ff161561191e57610e5d838383611ddd565b6001600160a01b0383166000908152601360205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bd6565b6001600160a01b03841660009081526018602052604090205460ff161580156119bc57506001600160a01b03831660009081526018602052604090205460ff16155b80156119d15750601a54600160a01b900460ff165b80156119df57506000601b54115b15611a63576000805b601b54811015611a465760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150611a3386836001611ddd565b5080611a3e81612bf3565b9150506119e8565b50601b54611a55906001612b82565b611a5f9084612ba1565b9250505b6001600160a01b038416600090815260176020526040812054819060ff1680611aa457506001600160a01b03851660009081526017602052604090205460ff165b15611d7b576001600160a01b03861660009081526018602052604090205460ff16158015611aeb57506001600160a01b03851660009081526018602052604090205460ff16155b15611d5657600054600160a81b900460ff168015611b095750600d54155b15611b1357600080fd5b600054600160a81b900460ff168015611b355750600054600160b01b900460ff165b8015611b4f5750600954600d54611b4c9190612b4a565b43105b15611b98576001600160a01b03851660009081526017602052604090205460ff16611b98576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611c14576001600160a01b03861660009081526017602052604090205460ff1615611bf257600a54841115611bed5760405162461bcd60e51b8152600401610bd690612a62565b611c14565b600c54841115611c145760405162461bcd60e51b8152600401610bd690612a62565b600054600160c81b900460ff168015611c4557506001600160a01b03861660009081526017602052604090205460ff165b15611cc0576001600160a01b038516600090815260136020526040902054600b54611c708683612b4a565b1115611cbe5760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610bd6565b505b6001600160a01b03851660009081526017602052604090205460ff1615611d5157601954600160a01b900460ff16611d5157306000908152601360205260409020548015611d4f576000600754600654600454600354611d209190612b4a565b611d2a9190612b4a565b611d349190612b4a565b90508582811115611d425750815b611d4c8183611e92565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611d7b575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611dbd57506001600160a01b03861660009081526017602052604090205460ff16155b15611dc6575060015b611dd4878787868686612558565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611e07908490612ba1565b90915550506001600160a01b03831660009081526013602052604081208054849290611e34908490612b4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8091815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611eaf57612547565b611eb98180612b4a565b90506000600454600754611ecd9190612b4a565b9050600082611edc8386612b82565b611ee69190612b62565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f2e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611f6c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615612039576016546001600160a01b031663791ac947611fb28488612ba1565b60008430426040518663ffffffff1660e01b8152600401611fd7959493929190612ada565b600060405180830381600087803b158015611ff157600080fd5b505af1925050508015612002575060015b612034576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a16120e2565b6120e2565b6016546001600160a01b0316635c11d7956120548488612ba1565b601a546040516001600160e01b031960e085901b168152612089929160009187916001600160a01b0316904290600401612ada565b600060405180830381600087803b1580156120a357600080fd5b505af19250505080156120b4575060015b6120e2576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b6120ec8385612ba1565b935060008060008060149054906101000a900460ff161561227457479250866121158785612b82565b61211f9190612b62565b915061212b8284612ba1565b905060008111801561214757506002546001600160a01b031615155b15612188576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612186573d6000803e3d6000fd5b505b6000851180156121985750600082115b1561226f5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561220857600080fd5b505af193505050508015612239575060408051601f3d908101601f19168201909252612236918101906129e2565b60015b61226b576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a1612540565b5050505b612540565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b1580156122bd57600080fd5b505afa1580156122d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f591906129a9565b9350876123028886612b82565b61230c9190612b62565b92506123188385612ba1565b915082156123ae57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac9190612975565b505b811561244757601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b15801561240d57600080fd5b505af1158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190612975565b505b6000861180156124575750600083115b1561253e5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156124d857600080fd5b505af1925050508015612508575060408051601f3d908101601f19168201909252612505918101906129e2565b60015b61253a576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a161253e565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b03861660009081526013602052604090205461257c908590612ba1565b6001600160a01b038716600090815260136020526040812091909155831561267257600083156125bd576007546006546125b69190612b4a565b90506125d0565b6004546003546125cd9190612b4a565b90505b60006127106125df8389612b82565b6125e99190612b62565b90508015612608576125fb8184612b4a565b925061260889308361270f565b60008561263157612710600554896126209190612b82565b61262a9190612b62565b905061264f565b612710600854896126429190612b82565b61264c9190612b62565b90505b801561266e5761265f8185612b4a565b935061266e8a61dead8361270f565b5050505b81801561269857506001600160a01b03871660009081526018602052604090205460ff16155b80156126bd57506001600160a01b03861660009081526018602052604090205460ff16155b15612700576000612710601d54876126d59190612b82565b6126df9190612b62565b905080156126fe576126f18183612b4a565b91506126fe88308361270f565b505b611dd4878761270f8489612ba1565b6001600160a01b038216600090815260136020526040902054612733908290612b4a565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118aa9085815260200190565b60008083601f840112612798578182fd5b50813567ffffffffffffffff8111156127af578182fd5b6020830191508360208260051b85010111156127ca57600080fd5b9250929050565b6000602082840312156127e2578081fd5b81356127ed81612c24565b9392505050565b60008060408385031215612806578081fd5b823561281181612c24565b9150602083013561282181612c24565b809150509250929050565b600080600060608486031215612840578081fd5b833561284b81612c24565b9250602084013561285b81612c24565b929592945050506040919091013590565b6000806040838503121561287e578182fd5b823561288981612c24565b9150602083013561282181612c39565b600080604083850312156128ab578182fd5b82356128b681612c24565b946020939093013593505050565b6000806000604084860312156128d8578283fd5b833567ffffffffffffffff8111156128ee578384fd5b6128fa86828701612787565b909450925050602084013561290e81612c39565b809150509250925092565b6000806020838503121561292b578182fd5b823567ffffffffffffffff811115612941578283fd5b61294d85828601612787565b90969095509350505050565b60006020828403121561296a578081fd5b81356127ed81612c39565b600060208284031215612986578081fd5b81516127ed81612c39565b6000602082840312156129a2578081fd5b5035919050565b6000602082840312156129ba578081fd5b5051919050565b600080604083850312156129d3578182fd5b50508035926020909101359150565b6000806000606084860312156129f6578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015612a3b57858101830151858201604001528201612a1f565b81811115612a4c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612b295784516001600160a01b031683529383019391830191600101612b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b5d57612b5d612c0e565b500190565b600082612b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b9c57612b9c612c0e565b500290565b600082821015612bb357612bb3612c0e565b500390565b600181811c90821680612bcc57607f821691505b60208210811415612bed57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c0757612c07612c0e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461120e57600080fd5b801515811461120e57600080fdfea2646970667358221220ff211b21b0a7e02bef6d4d9e6d7856914023287de26a386b318a7294b0a126f964736f6c63430008040033608060405234801561001057600080fd5b5060405161015238038061015283398101604081905261002f916100b7565b60405163095ea7b360e01b815233600482015260001960248201526001600160a01b0382169063095ea7b390604401602060405180830381600087803b15801561007857600080fd5b505af115801561008c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b091906100e5565b5050610105565b6000602082840312156100c8578081fd5b81516001600160a01b03811681146100de578182fd5b9392505050565b6000602082840312156100f6578081fd5b815180151581146100de578182fd5b603f806101136000396000f3fe6080604052600080fdfea2646970667358221220cea2bc332235cb9219d216106f827d8dab5f1574aed599c3f3163f7389ce41eb64736f6c6343000804003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000036161610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000364646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000048af96a94fd8e5ad45a48803b281df13deaa07da00000000000000000000000048af96a94fd8e5ad45a48803b281df13deaa07da000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000006046f37e5945c0000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c8000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106103c75760003560e01c806379594736116101f2578063adc7955d1161010d578063dac1dcfe116100a0578063e5c2b0a61161006f578063e5c2b0a614610b2c578063e82bef2914610b4c578063ea10510e14610b6c578063f2fde38b14610b8c57600080fd5b8063dac1dcfe14610a96578063dd62ed3e14610ab0578063e32759cf14610af6578063e5a6b10f14610b0c57600080fd5b8063c92d567e116100dc578063c92d567e14610a28578063ce0192f914610a49578063d49d518114610a5f578063d598643314610a7557600080fd5b8063adc7955d146109ab578063b02d757f146109c1578063b9fbc49d146109e2578063bd25bf29146109f857600080fd5b806390d1dfa911610185578063a9059cbb11610154578063a9059cbb1461093f578063aa4bde281461095f578063aa582b4214610975578063acb2ad6f1461099557600080fd5b806390d1dfa9146108c957806395d89b41146108e9578063a23270d7146108fe578063a84248611461091f57600080fd5b80638718b24f116101c15780638718b24f1461085557806388e765ff146108755780638da5cb5b1461088b5780638f02bb5b146108a957600080fd5b806379594736146107df5780637abdc1ca146107ff5780637db1342c1461081557806385dc30041461083557600080fd5b806323b872dd116102e2578063553193ca11610275578063697cfc1911610244578063697cfc19146107685780636ebcf6071461077d57806370a08231146107aa578063715018a6146107ca57600080fd5b8063553193ca146106fb5780635a7ba73c146107115780636108a3db1461073257806366d602ae1461075257600080fd5b80633bfe62ca116102b15780633bfe62ca146106755780633c11100d1461068b5780634188bf5a146106bb5780634d5ce038146106db57600080fd5b806323b872dd146106085780632dab693f14610628578063313ce5671461063e57806335c960891461065457600080fd5b80630f890b861161035a57806316f2f1a81161032957806316f2f1a81461058357806318160ddd146105995780631846a5a4146105af578063206c17bb146105d057600080fd5b80630f890b861461050d57806314a432c914610522578063150e4c471461054257806315d07d821461056257600080fd5b8063063be69e11610396578063063be69e1461049657806306fdde03146104ab57806307313d8d146104cd578063095ea7b3146104ed57600080fd5b806301339c21146103d357806301986fad146103ea578063024c2ddd1461042f57806303da2b231461047557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610bac565b005b3480156103f657600080fd5b5061041a6104053660046127d1565b60186020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561043b57600080fd5b5061046761044a3660046127f4565b601460209081526000928352604080842090915290825290205481565b604051908152602001610426565b34801561048157600080fd5b5060005461041a90600160c81b900460ff1681565b3480156104a257600080fd5b506103e8610c27565b3480156104b757600080fd5b506104c0610c60565b6040516104269190612a0f565b3480156104d957600080fd5b506103e86104e8366004612959565b610cee565b3480156104f957600080fd5b5061041a610508366004612899565b610d36565b34801561051957600080fd5b506103e8610d4c565b34801561052e57600080fd5b506103e861053d366004612991565b610d85565b34801561054e57600080fd5b506103e861055d3660046128c4565b610db4565b34801561056e57600080fd5b5060005461041a90600160a01b900460ff1681565b34801561058f57600080fd5b5061046760055481565b3480156105a557600080fd5b5061046760115481565b3480156105bb57600080fd5b50601a5461041a90600160a01b900460ff1681565b3480156105dc57600080fd5b506016546105f0906001600160a01b031681565b6040516001600160a01b039091168152602001610426565b34801561061457600080fd5b5061041a61062336600461282c565b610e63565b34801561063457600080fd5b5061046760095481565b34801561064a57600080fd5b5061046760105481565b34801561066057600080fd5b5060005461041a90600160d81b900460ff1681565b34801561068157600080fd5b5061046760065481565b34801561069757600080fd5b5061041a6106a63660046127d1565b60176020526000908152604090205460ff1681565b3480156106c757600080fd5b506019546105f0906001600160a01b031681565b3480156106e757600080fd5b506104676106f63660046127d1565b610efa565b34801561070757600080fd5b50610467600d5481565b34801561071d57600080fd5b5060005461041a90600160b01b900460ff1681565b34801561073e57600080fd5b506103e861074d3660046128c4565b610f50565b34801561075e57600080fd5b50610467600c5481565b34801561077457600080fd5b506103e8611053565b34801561078957600080fd5b506104676107983660046127d1565b60136020526000908152604090205481565b3480156107b657600080fd5b506104676107c53660046127d1565b61108c565b3480156107d657600080fd5b506103e861113b565b3480156107eb57600080fd5b506103e86107fa366004612959565b6111b5565b34801561080b57600080fd5b5061046760085481565b34801561082157600080fd5b506103e8610830366004612991565b611211565b34801561084157600080fd5b506103e86108503660046127d1565b611240565b34801561086157600080fd5b50601a546105f0906001600160a01b031681565b34801561088157600080fd5b50610467600a5481565b34801561089757600080fd5b506000546001600160a01b03166105f0565b3480156108b557600080fd5b506103e86108c4366004612991565b6112f9565b3480156108d557600080fd5b506103e86108e43660046129c1565b61136c565b3480156108f557600080fd5b506104c06113fe565b34801561090a57600080fd5b5060005461041a90600160c01b900460ff1681565b34801561092b57600080fd5b506103e861093a36600461286c565b61140b565b34801561094b57600080fd5b5061041a61095a366004612899565b611460565b34801561096b57600080fd5b50610467600b5481565b34801561098157600080fd5b506103e8610990366004612919565b61146d565b3480156109a157600080fd5b50610467601d5481565b3480156109b757600080fd5b5061046760075481565b3480156109cd57600080fd5b5060005461041a90600160b81b900460ff1681565b3480156109ee57600080fd5b5061046760045481565b348015610a0457600080fd5b5061041a610a133660046127d1565b60156020526000908152604090205460ff1681565b348015610a3457600080fd5b5060005461041a90600160a81b900460ff1681565b348015610a5557600080fd5b5061046760035481565b348015610a6b57600080fd5b5061046760001981565b348015610a8157600080fd5b5060005461041a90600160d01b900460ff1681565b348015610aa257600080fd5b50601c5461041a9060ff1681565b348015610abc57600080fd5b50610467610acb3660046127f4565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b348015610b0257600080fd5b50610467601b5481565b348015610b1857600080fd5b506001546105f0906001600160a01b031681565b348015610b3857600080fd5b506103e8610b47366004612991565b6116ae565b348015610b5857600080fd5b506002546105f0906001600160a01b031681565b348015610b7857600080fd5b506103e8610b87366004612959565b611723565b348015610b9857600080fd5b506103e8610ba73660046127d1565b61176b565b6000546001600160a01b03163314610bdf5760405162461bcd60e51b8152600401610bd690612aa5565b60405180910390fd5b600d5415610c215760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610bd6565b43600d55565b6000546001600160a01b03163314610c515760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c01b19169055565b600e8054610c6d90612bb8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9990612bb8565b8015610ce65780601f10610cbb57610100808354040283529160200191610ce6565b820191906000526020600020905b815481529060010190602001808311610cc957829003601f168201915b505050505081565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610bd690612aa5565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6000610d43338484611855565b50600192915050565b6000546001600160a01b03163314610d765760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60d01b19169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b8152600401610bd690612aa5565b600955565b6000546001600160a01b03163314610dde5760405162461bcd60e51b8152600401610bd690612aa5565b60005b82811015610e5d578160186000868685818110610e0e57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610e2391906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610e5581612bf3565b915050610de1565b50505050565b6000610e708484846118b7565b6001600160a01b038416600090815260146020908152604080832033845290915290205460001914610ef0576001600160a01b0384166000908152601460209081526040808320338452909152902054610ecb908390612ba1565b6001600160a01b03851660009081526014602090815260408083203384529091529020555b5060019392505050565b6001600160a01b03811660009081526015602052604081205460ff168015610f3b57506001600160a01b03821660009081526017602052604090205460ff16155b15610f4857506001919050565b506000919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b8152600401610bd690612aa5565b600054600160b81b900460ff16610fc95760405162461bcd60e51b81526020600482015260136024820152721c995dd85c99131a5cdd08191a5cd8589b1959606a1b6044820152606401610bd6565b60c98210610fd657600080fd5b60005b82811015610e5d57816015600086868581811061100657634e487b7160e01b600052603260045260246000fd5b905060200201602081019061101b91906127d1565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561104c81612bf3565b9050610fd9565b6000546001600160a01b0316331461107d5760405162461bcd60e51b8152600401610bd690612aa5565b6000805460ff60c81b19169055565b6019546000906001600160a01b0383811691161480156110b657506019546001600160a01b031633145b80156110cb5750600054600160d81b900460ff165b1561111f576019546001600160a01b031660009081526013602052604090205461111f5760405162461bcd60e51b81526020600482015260056024820152642173796e6360d81b6044820152606401610bd6565b506001600160a01b031660009081526013602052604090205490565b6000546001600160a01b031633146111655760405162461bcd60e51b8152600401610bd690612aa5565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146111df5760405162461bcd60e51b8152600401610bd690612aa5565b8015611208576008546007546006546111f89190612b4a565b6112029190612b4a565b601d5550565b6000601d555b50565b6000546001600160a01b0316331461123b5760405162461bcd60e51b8152600401610bd690612aa5565b600b55565b6000546001600160a01b0316331461126a5760405162461bcd60e51b8152600401610bd690612aa5565b803b63ffffffff16156112bf5760405162461bcd60e51b815260206004820152601a60248201527f66756e6461646472657373206973206120636f6e7472616374200000000000006044820152606401610bd6565b600280546001600160a01b039092166001600160a01b0319909216821790556000908152601860205260409020805460ff19166001179055565b6000546001600160a01b031633146113235760405162461bcd60e51b8152600401610bd690612aa5565b6109c48111156113675760405162461bcd60e51b815260206004820152600f60248201526e7472616e73666572203e203235202160881b6044820152606401610bd6565b601d55565b6000546001600160a01b031633146113965760405162461bcd60e51b8152600401610bd690612aa5565b600a829055600c819055818110156113fa5760405162461bcd60e51b815260206004820152602160248201527f206d617853656c6c2073686f756c64206265203e207468616e206d61784275796044820152600160fd1b6064820152608401610bd6565b5050565b600f8054610c6d90612bb8565b6000546001600160a01b031633146114355760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000610d433384846118b7565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610bd690612aa5565b600054600160d01b900460ff166114e65760405162461bcd60e51b81526020600482015260136024820152721d185e0818da185b99d948191a5cd8589b1959606a1b6044820152606401610bd6565b8181600081811061150757634e487b7160e01b600052603260045260246000fd5b6020029190910135600455508181600181811061153457634e487b7160e01b600052603260045260246000fd5b6020029190910135600555508181600281811061156157634e487b7160e01b600052603260045260246000fd5b905060200201356003819055508181600381811061158f57634e487b7160e01b600052603260045260246000fd5b602002919091013560075550818160048181106115bc57634e487b7160e01b600052603260045260246000fd5b602002919091013560085550818160058181106115e957634e487b7160e01b600052603260045260246000fd5b905060200201356006819055506109c460035460045460055461160c9190612b4a565b6116169190612b4a565b106116525760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6109c46006546007546008546116689190612b4a565b6116729190612b4a565b106113fa5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401610bd6565b6000546001600160a01b031633146116d85760405162461bcd60e51b8152600401610bd690612aa5565b600381111561171e5760405162461bcd60e51b81526020600482015260126024820152716e657756616c7565206d757374203c3d203360701b6044820152606401610bd6565b601b55565b6000546001600160a01b0316331461174d5760405162461bcd60e51b8152600401610bd690612aa5565b60008054911515600160d81b0260ff60d81b19909216919091179055565b6000546001600160a01b031633146117955760405162461bcd60e51b8152600401610bd690612aa5565b6001600160a01b0381166117fa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bd6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006118c284610efa565b11156119015760405162461bcd60e51b815260206004820152600e60248201526d6973526577617264203e2030202160901b6044820152606401610bd6565b601954600160a01b900460ff161561191e57610e5d838383611ddd565b6001600160a01b0383166000908152601360205260409020548181101561197a5760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610bd6565b6001600160a01b03841660009081526018602052604090205460ff161580156119bc57506001600160a01b03831660009081526018602052604090205460ff16155b80156119d15750601a54600160a01b900460ff165b80156119df57506000601b54115b15611a63576000805b601b54811015611a465760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150611a3386836001611ddd565b5080611a3e81612bf3565b9150506119e8565b50601b54611a55906001612b82565b611a5f9084612ba1565b9250505b6001600160a01b038416600090815260176020526040812054819060ff1680611aa457506001600160a01b03851660009081526017602052604090205460ff165b15611d7b576001600160a01b03861660009081526018602052604090205460ff16158015611aeb57506001600160a01b03851660009081526018602052604090205460ff16155b15611d5657600054600160a81b900460ff168015611b095750600d54155b15611b1357600080fd5b600054600160a81b900460ff168015611b355750600054600160b01b900460ff165b8015611b4f5750600954600d54611b4c9190612b4a565b43105b15611b98576001600160a01b03851660009081526017602052604090205460ff16611b98576001600160a01b0385166000908152601560205260409020805460ff191660011790555b600054600160c01b900460ff1615611c14576001600160a01b03861660009081526017602052604090205460ff1615611bf257600a54841115611bed5760405162461bcd60e51b8152600401610bd690612a62565b611c14565b600c54841115611c145760405162461bcd60e51b8152600401610bd690612a62565b600054600160c81b900460ff168015611c4557506001600160a01b03861660009081526017602052604090205460ff165b15611cc0576001600160a01b038516600090815260136020526040902054600b54611c708683612b4a565b1115611cbe5760405162461bcd60e51b815260206004820152601f60248201527f4578636565646564206d6178696d756d2077616c6c65742062616c616e6365006044820152606401610bd6565b505b6001600160a01b03851660009081526017602052604090205460ff1615611d5157601954600160a01b900460ff16611d5157306000908152601360205260409020548015611d4f576000600754600654600454600354611d209190612b4a565b611d2a9190612b4a565b611d349190612b4a565b90508582811115611d425750815b611d4c8183611e92565b50505b505b600191505b6001600160a01b03851660009081526017602052604090205460ff1615611d7b575060015b6001600160a01b03861660009081526017602052604081205460ff16158015611dbd57506001600160a01b03861660009081526017602052604090205460ff16155b15611dc6575060015b611dd4878787868686612558565b50505050505050565b6001600160a01b038316600090815260136020526040812080548391908390611e07908490612ba1565b90915550506001600160a01b03831660009081526013602052604081208054849290611e34908490612b4a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8091815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905580611eaf57612547565b611eb98180612b4a565b90506000600454600754611ecd9190612b4a565b9050600082611edc8386612b82565b611ee69190612b62565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611f2e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526001805483519216918391908110611f6c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015260005460ff600160a01b9091041615612039576016546001600160a01b031663791ac947611fb28488612ba1565b60008430426040518663ffffffff1660e01b8152600401611fd7959493929190612ada565b600060405180830381600087803b158015611ff157600080fd5b505af1925050508015612002575060015b612034576040517fe2ca28dff25f053218cef44cd4580a8df8e34fd11ee24e2e45b5394750c20d3c90600090a16120e2565b6120e2565b6016546001600160a01b0316635c11d7956120548488612ba1565b601a546040516001600160e01b031960e085901b168152612089929160009187916001600160a01b0316904290600401612ada565b600060405180830381600087803b1580156120a357600080fd5b505af19250505080156120b4575060015b6120e2576040517ffa4626fc78df02cb8fdea85a8af60ad29e2c95f22e2a91c79d99631c288a8b6c90600090a15b6120ec8385612ba1565b935060008060008060149054906101000a900460ff161561227457479250866121158785612b82565b61211f9190612b62565b915061212b8284612ba1565b905060008111801561214757506002546001600160a01b031615155b15612188576002546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612186573d6000803e3d6000fd5b505b6000851180156121985750600082115b1561226f5760165460025460405163f305d71960e01b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990849060c4016060604051808303818588803b15801561220857600080fd5b505af193505050508015612239575060408051601f3d908101601f19168201909252612236918101906129e2565b60015b61226b576040517fce671f3a6f00739ccc1874c850866644bdbe23b07cb11974f696e72d1672272390600090a1612540565b5050505b612540565b600154601a546040516370a0823160e01b81526001600160a01b03918216600482015291169081906370a082319060240160206040518083038186803b1580156122bd57600080fd5b505afa1580156122d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f591906129a9565b9350876123028886612b82565b61230c9190612b62565b92506123188385612ba1565b915082156123ae57601a546040516323b872dd60e01b81526001600160a01b03918216600482015230602482015260448101859052908216906323b872dd90606401602060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ac9190612975565b505b811561244757601a546002546040516323b872dd60e01b81526001600160a01b039283166004820152908216602482015260448101849052908216906323b872dd90606401602060405180830381600087803b15801561240d57600080fd5b505af1158015612421573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124459190612975565b505b6000861180156124575750600083115b1561253e5760165460015460025460405162e8e33760e81b81523060048201526001600160a01b039283166024820152604481018a90526064810187905260006084820181905260a482015290821660c48201524260e482015291169063e8e337009061010401606060405180830381600087803b1580156124d857600080fd5b505af1925050508015612508575060408051601f3d908101601f19168201909252612505918101906129e2565b60015b61253a576040517f0e944a8ae3ee1160b2678930fb103c5ceadb14ecbb4c16e311d7402f7011322c90600090a161253e565b5050505b505b5050505050505b50506019805460ff60a01b19169055565b6001600160a01b03861660009081526013602052604090205461257c908590612ba1565b6001600160a01b038716600090815260136020526040812091909155831561267257600083156125bd576007546006546125b69190612b4a565b90506125d0565b6004546003546125cd9190612b4a565b90505b60006127106125df8389612b82565b6125e99190612b62565b90508015612608576125fb8184612b4a565b925061260889308361270f565b60008561263157612710600554896126209190612b82565b61262a9190612b62565b905061264f565b612710600854896126429190612b82565b61264c9190612b62565b90505b801561266e5761265f8185612b4a565b935061266e8a61dead8361270f565b5050505b81801561269857506001600160a01b03871660009081526018602052604090205460ff16155b80156126bd57506001600160a01b03861660009081526018602052604090205460ff16155b15612700576000612710601d54876126d59190612b82565b6126df9190612b62565b905080156126fe576126f18183612b4a565b91506126fe88308361270f565b505b611dd4878761270f8489612ba1565b6001600160a01b038216600090815260136020526040902054612733908290612b4a565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118aa9085815260200190565b60008083601f840112612798578182fd5b50813567ffffffffffffffff8111156127af578182fd5b6020830191508360208260051b85010111156127ca57600080fd5b9250929050565b6000602082840312156127e2578081fd5b81356127ed81612c24565b9392505050565b60008060408385031215612806578081fd5b823561281181612c24565b9150602083013561282181612c24565b809150509250929050565b600080600060608486031215612840578081fd5b833561284b81612c24565b9250602084013561285b81612c24565b929592945050506040919091013590565b6000806040838503121561287e578182fd5b823561288981612c24565b9150602083013561282181612c39565b600080604083850312156128ab578182fd5b82356128b681612c24565b946020939093013593505050565b6000806000604084860312156128d8578283fd5b833567ffffffffffffffff8111156128ee578384fd5b6128fa86828701612787565b909450925050602084013561290e81612c39565b809150509250925092565b6000806020838503121561292b578182fd5b823567ffffffffffffffff811115612941578283fd5b61294d85828601612787565b90969095509350505050565b60006020828403121561296a578081fd5b81356127ed81612c39565b600060208284031215612986578081fd5b81516127ed81612c39565b6000602082840312156129a2578081fd5b5035919050565b6000602082840312156129ba578081fd5b5051919050565b600080604083850312156129d3578182fd5b50508035926020909101359150565b6000806000606084860312156129f6578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015612a3b57858101830151858201604001528201612a1f565b81811115612a4c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f4578636565646564206d6178696d756d207472616e73616374696f6e20766f6c604082015262756d6560e81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612b295784516001600160a01b031683529383019391830191600101612b04565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612b5d57612b5d612c0e565b500190565b600082612b7d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b9c57612b9c612c0e565b500290565b600082821015612bb357612bb3612c0e565b500390565b600181811c90821680612bcc57607f821691505b60208210811415612bed57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c0757612c07612c0e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461120e57600080fd5b801515811461120e57600080fdfea2646970667358221220ff211b21b0a7e02bef6d4d9e6d7856914023287de26a386b318a7294b0a126f964736f6c63430008040033
Deployed Bytecode Sourcemap
11961:15066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9049:145;;;;;;;;;;;;;:::i;:::-;;8514:45;;;;;;;;;;-1:-1:-1;8514:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8169:14:1;;8162:22;8144:41;;8132:2;8117:18;8514:45:0;;;;;;;;8293:66;;;;;;;;;;-1:-1:-1;8293:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;14797:25:1;;;14785:2;14770:18;8293:66:0;14752:76:1;7389:29:0;;;;;;;;;;-1:-1:-1;7389:29:0;;;;-1:-1:-1;;;7389:29:0;;;;;;9202:87;;;;;;;;;;;;;:::i;7968:27::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16404:97::-;;;;;;;;;;-1:-1:-1;16404:97:0;;;;;:::i;:::-;;:::i;10875:184::-;;;;;;;;;;-1:-1:-1;10875:184:0;;;;;:::i;:::-;;:::i;9396:87::-;;;;;;;;;;;;;:::i;16067:68::-;;;;;;;;;;-1:-1:-1;16067:68:0;;;;;:::i;:::-;;:::i;11252:225::-;;;;;;;;;;-1:-1:-1;11252:225:0;;;;;:::i;:::-;;:::i;7217:25::-;;;;;;;;;;-1:-1:-1;7217:25:0;;;;-1:-1:-1;;;7217:25:0;;;;;;7640:30;;;;;;;;;;;;;;;;8077:35;;;;;;;;;;;;;;;;16363:32;;;;;;;;;;-1:-1:-1;16363:32:0;;;;-1:-1:-1;;;16363:32:0;;;;;;8418:35;;;;;;;;;;-1:-1:-1;8418:35:0;;;;-1:-1:-1;;;;;8418:35:0;;;;;;-1:-1:-1;;;;;5575:32:1;;;5557:51;;5545:2;5530:18;8418:35:0;5512:102:1;15241:404:0;;;;;;;;;;-1:-1:-1;15241:404:0;;;;;:::i;:::-;;:::i;7793:21::-;;;;;;;;;;;;;;;;8038:32;;;;;;;;;;;;;;;;7459:27;;;;;;;;;;-1:-1:-1;7459:27:0;;;;-1:-1:-1;;;7459:27:0;;;;;;7677:33;;;;;;;;;;;;;;;;8460:45;;;;;;;;;;-1:-1:-1;8460:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8566:24;;;;;;;;;;-1:-1:-1;8566:24:0;;;;-1:-1:-1;;;;;8566:24:0;;;16143:212;;;;;;;;;;-1:-1:-1;16143:212:0;;;;;:::i;:::-;;:::i;7929:30::-;;;;;;;;;;;;;;;;7284:27;;;;;;;;;;-1:-1:-1;7284:27:0;;;;-1:-1:-1;;;7284:27:0;;;;;;11485:328;;;;;;;;;;-1:-1:-1;11485:328:0;;;;;:::i;:::-;;:::i;7894:28::-;;;;;;;;;;;;;;;;9297:91;;;;;;;;;;;;;:::i;8242:44::-;;;;;;;;;;-1:-1:-1;8242:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;10428:263;;;;;;;;;;-1:-1:-1;10428:263:0;;;;;:::i;:::-;;:::i;1405:241::-;;;;;;;;;;;;;:::i;17061:259::-;;;;;;;;;;-1:-1:-1;17061:259:0;;;;;:::i;:::-;;:::i;7753:31::-;;;;;;;;;;;;;;;;8934:107;;;;;;;;;;-1:-1:-1;8934:107:0;;;;;:::i;:::-;;:::i;15653:206::-;;;;;;;;;;-1:-1:-1;15653:206:0;;;;;:::i;:::-;;:::i;12030:41::-;;;;;;;;;;-1:-1:-1;12030:41:0;;;;-1:-1:-1;;;;;12030:41:0;;;7823:27;;;;;;;;;;;;;;;;2155:79;;;;;;;;;;-1:-1:-1;2193:7:0;2220:6;-1:-1:-1;;;;;2220:6:0;2155:79;;21027:155;;;;;;;;;;-1:-1:-1;21027:155:0;;;;;:::i;:::-;;:::i;8599:327::-;;;;;;;;;;-1:-1:-1;8599:327:0;;;;;:::i;:::-;;:::i;8002:29::-;;;;;;;;;;;;;:::i;7355:27::-;;;;;;;;;;-1:-1:-1;7355:27:0;;;;-1:-1:-1;;;7355:27:0;;;;;;26869:118;;;;;;;;;;-1:-1:-1;26869:118:0;;;;;:::i;:::-;;:::i;15043:190::-;;;;;;;;;;-1:-1:-1;15043:190:0;;;;;:::i;:::-;;:::i;7857:30::-;;;;;;;;;;;;;;;;9491:551;;;;;;;;;;-1:-1:-1;9491:551:0;;;;;:::i;:::-;;:::i;20992:26::-;;;;;;;;;;;;;;;;7717:29;;;;;;;;;;;;;;;;7318:28;;;;;;;;;;-1:-1:-1;7318:28:0;;;;-1:-1:-1;;;7318:28:0;;;;;;7605;;;;;;;;;;;;;;;;8366:43;;;;;;;;;;-1:-1:-1;8366:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7251:26;;;;;;;;;;-1:-1:-1;7251:26:0;;;;-1:-1:-1;;;7251:26:0;;;;;;7568:30;;;;;;;;;;;;;;;;8192:41;;;;;;;;;;-1:-1:-1;8192:41:0;-1:-1:-1;;8192:41:0;;7425:27;;;;;;;;;;-1:-1:-1;7425:27:0;;;;-1:-1:-1;;;7425:27:0;;;;;;17015:37;;;;;;;;;;-1:-1:-1;17015:37:0;;;;;;;;10699:168;;;;;;;;;;-1:-1:-1;10699:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;10832:18:0;;;10805:7;10832:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10699:168;16810:31;;;;;;;;;;;;;;;;7495:23;;;;;;;;;;-1:-1:-1;7495:23:0;;;;-1:-1:-1;;;;;7495:23:0;;;16850:157;;;;;;;;;;-1:-1:-1;16850:157:0;;;;;:::i;:::-;;:::i;7525:34::-;;;;;;;;;;-1:-1:-1;7525:34:0;;;;-1:-1:-1;;;;;7525:34:0;;;10337:83;;;;;;;;;;-1:-1:-1;10337:83:0;;;;;:::i;:::-;;:::i;1801:273::-;;;;;;;;;;-1:-1:-1;1801:273:0;;;;;:::i;:::-;;:::i;9049:145::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;;;;;;;;;9105:15:::1;::::0;:20;9097:48:::1;;;::::0;-1:-1:-1;;;9097:48:0;;10995:2:1;9097:48:0::1;::::0;::::1;10977:21:1::0;11034:2;11014:18;;;11007:30;-1:-1:-1;;;11053:18:1;;;11046:45;11108:18;;9097:48:0::1;10967:165:1::0;9097:48:0::1;9174:12;9156:15;:30:::0;9049:145::o;9202:87::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9276:5:::1;9258:23:::0;;-1:-1:-1;;;;9258:23:0::1;::::0;;9202:87::o;7968:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16404:97::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16471:13:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;16471:22:0::1;-1:-1:-1::0;;;;16471:22:0;;::::1;::::0;;;::::1;::::0;;16404:97::o;10875:184::-;10975:4;10992:37;11001:10;11013:7;11022:6;10992:8;:37::i;:::-;-1:-1:-1;11047:4:0;10875:184;;;;:::o;9396:87::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9470:5:::1;9452:23:::0;;-1:-1:-1;;;;9452:23:0::1;::::0;;9396:87::o;16067:68::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16121:2:::1;:6:::0;16067:68::o;11252:225::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;11375:9:::1;11370:100;11390:15:::0;;::::1;11370:100;;;11452:6;11427:13;:22;11441:4;;11446:1;11441:7;;;;;-1:-1:-1::0;;;11441:7:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11427:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11427:22:0;:31;;-1:-1:-1;;11427:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11407:3;::::1;::::0;::::1;:::i;:::-;;;;11370:100;;;;11252:225:::0;;;:::o;15241:404::-;15373:4;15390:36;15400:6;15408:9;15419:6;15390:9;:36::i;:::-;-1:-1:-1;;;;;15441:19:0;;8231:1;15441:19;;;:11;:19;;;;;;;;15461:10;15441:31;;;;;;;;-1:-1:-1;;15441:38:0;15437:179;;-1:-1:-1;;;;;15547:19:0;;;;;;:11;:19;;;;;;;;15567:10;15547:31;;;;;;;;:57;;15598:6;;15547:57;:::i;:::-;-1:-1:-1;;;;;15496:19:0;;;;;;:11;:19;;;;;;;;15516:10;15496:31;;;;;;;:108;15437:179;-1:-1:-1;15633:4:0;15241:404;;;;;:::o;16143:212::-;-1:-1:-1;;;;;16223:20:0;;16199:7;16223:20;;;:11;:20;;;;;;;;:47;;;;-1:-1:-1;;;;;;16248:22:0;;;;;;:13;:22;;;;;;;;16247:23;16223:47;16219:129;;;-1:-1:-1;16294:1:0;;16143:212;-1:-1:-1;16143:212:0:o;16219:129::-;-1:-1:-1;16335:1:0;;16143:212;-1:-1:-1;16143:212:0:o;11485:328::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;11610:16:::1;::::0;-1:-1:-1;;;11610:16:0;::::1;;;11602:48;;;::::0;-1:-1:-1;;;11602:48:0;;14172:2:1;11602:48:0::1;::::0;::::1;14154:21:1::0;14211:2;14191:18;;;14184:30;-1:-1:-1;;;14230:18:1;;;14223:49;14289:18;;11602:48:0::1;14144:169:1::0;11602:48:0::1;11688:3;11669:22:::0;::::1;11661:31;;;::::0;::::1;;11708:9;11703:103;11719:20:::0;;::::1;11703:103;;;11789:5;11761:11;:25;11773:9;;11783:1;11773:12;;;;;-1:-1:-1::0;;;11773:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11761:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11761:25:0;:33;;-1:-1:-1;;11761:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11741:3:::1;::::0;::::1;:::i;:::-;;;11703:103;;9297:91:::0;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9375:5:::1;9355:25:::0;;-1:-1:-1;;;;9355:25:0::1;::::0;;9297:91::o;10428:263::-;10529:9;;10494:7;;-1:-1:-1;;;;;10518:20:0;;;10529:9;;10518:20;:47;;;;-1:-1:-1;10556:9:0;;-1:-1:-1;;;;;10556:9:0;10542:10;:23;10518:47;:59;;;;-1:-1:-1;10569:8:0;;-1:-1:-1;;;10569:8:0;;;;10518:59;10514:134;;;10612:9;;-1:-1:-1;;;;;10612:9:0;10625:1;10602:20;;;:9;:20;;;;;;10594:42;;;;-1:-1:-1;;;10594:42:0;;14520:2:1;10594:42:0;;;14502:21:1;14559:1;14539:18;;;14532:29;-1:-1:-1;;;14577:18:1;;;14570:35;14622:18;;10594:42:0;14492:154:1;10594:42:0;-1:-1:-1;;;;;;10665:18:0;;;;;:9;:18;;;;;;;10428:263::o;1405:241::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;1502:6:::1;::::0;;1467:109:::1;::::0;1523:42:::1;::::0;-1:-1:-1;;;;;1502:6:0;;::::1;::::0;1467:109:::1;::::0;::::1;1587:6;:51:::0;;-1:-1:-1;;;;;;1587:51:0::1;1596:42;1587:51;::::0;;1405:241::o;17061:259::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;17176:6:::1;17172:141;;;17241:12;;17228:10;;17213:12;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;17199:11;:54:::0;17061:259;:::o;17172:141::-:1;17300:1;17286:11;:15:::0;17172:141:::1;17061:259:::0;:::o;8934:107::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9008:15:::1;:25:::0;8934:107::o;15653:206::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;15995:18;;16042:8;;;15729:56:::1;;;::::0;-1:-1:-1;;;15729:56:0;;9471:2:1;15729:56:0::1;::::0;::::1;9453:21:1::0;9510:2;9490:18;;;9483:30;9549:28;9529:18;;;9522:56;9595:18;;15729:56:0::1;9443:176:1::0;15729:56:0::1;15796:11;:18:::0;;-1:-1:-1;;;;;15796:18:0;;::::1;-1:-1:-1::0;;;;;;15796:18:0;;::::1;::::0;::::1;::::0;;:11:::1;15825:19:::0;;;:13:::1;:19;::::0;;;;:26;;-1:-1:-1;;15825:26:0::1;15796:18:::0;15825:26:::1;::::0;;15653:206::o;21027:155::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;21117:4:::1;21105:8;:16;;21097:44;;;::::0;-1:-1:-1;;;21097:44:0;;12431:2:1;21097:44:0::1;::::0;::::1;12413:21:1::0;12470:2;12450:18;;;12443:30;-1:-1:-1;;;12489:18:1;;;12482:45;12544:18;;21097:44:0::1;12403:165:1::0;21097:44:0::1;21152:11;:22:::0;21027:155::o;8599:327::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;8726:12:::1;:28:::0;;;8765:13:::1;:30:::0;;;8828:29;;::::1;;8806:112;;;::::0;-1:-1:-1;;;8806:112:0;;9826:2:1;8806:112:0::1;::::0;::::1;9808:21:1::0;9865:2;9845:18;;;9838:30;9904:34;9884:18;;;9877:62;-1:-1:-1;;;9955:18:1;;;9948:31;9996:19;;8806:112:0::1;9798:223:1::0;8806:112:0::1;8599:327:::0;;:::o;8002:29::-;;;;;;;:::i;26869:118::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26951:19:0;;;::::1;;::::0;;;:13:::1;:19;::::0;;;;:28;;-1:-1:-1;;26951:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;26869:118::o;15043:190::-;15146:4;15163:40;15173:10;15185:9;15196:6;15163:9;:40::i;9491:551::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;9582:15:::1;::::0;-1:-1:-1;;;9582:15:0;::::1;;;9574:47;;;::::0;-1:-1:-1;;;9574:47:0;;13824:2:1;9574:47:0::1;::::0;::::1;13806:21:1::0;13863:2;13843:18;;;13836:30;-1:-1:-1;;;13882:18:1;;;13875:49;13941:18;;9574:47:0::1;13796:169:1::0;9574:47:0::1;9644:7;;9652:1;9644:10;;;;;-1:-1:-1::0;;;9644:10:0::1;;;;;;;;;;;::::0;;;::::1;;9632:9;:22:::0;-1:-1:-1;9679:7:0;;9687:1:::1;9679:10:::0;;::::1;;;-1:-1:-1::0;;;9679:10:0::1;;;;;;;;;;;::::0;;;::::1;;9665:11;:24:::0;-1:-1:-1;9714:7:0;;9722:1:::1;9714:10:::0;;::::1;;;-1:-1:-1::0;;;9714:10:0::1;;;;;;;;;;;;;;;9700:11;:24;;;;9750:7;;9758:1;9750:10;;;;;-1:-1:-1::0;;;9750:10:0::1;;;;;;;;;;;::::0;;;::::1;;9737;:23:::0;-1:-1:-1;9786:7:0;;9794:1:::1;9786:10:::0;;::::1;;;-1:-1:-1::0;;;9786:10:0::1;;;;;;;;;;;::::0;;;::::1;;9771:12;:25:::0;-1:-1:-1;9822:7:0;;9830:1:::1;9822:10:::0;;::::1;;;-1:-1:-1::0;;;9822:10:0::1;;;;;;;;;;;;;;;9807:12;:25;;;;9893:4;9879:11;;9867:9;;9853:11;;:23;;;;:::i;:::-;:37;;;;:::i;:::-;:44;9845:69;;;::::0;-1:-1:-1;;;9845:69:0;;13136:2:1;9845:69:0::1;::::0;::::1;13118:21:1::0;13175:2;13155:18;;;13148:30;-1:-1:-1;;;13194:18:1;;;13187:42;13246:18;;9845:69:0::1;13108:162:1::0;9845:69:0::1;9990:4;9975:12;;9962:10;;9947:12;;:25;;;;:::i;:::-;:40;;;;:::i;:::-;:47;9925:109;;;::::0;-1:-1:-1;;;9925:109:0;;13136:2:1;9925:109:0::1;::::0;::::1;13118:21:1::0;13175:2;13155:18;;;13148:30;-1:-1:-1;;;13194:18:1;;;13187:42;13246:18;;9925:109:0::1;13108:162:1::0;16850:157:0;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;16941:1:::1;16929:8;:13;;16921:44;;;::::0;-1:-1:-1;;;16921:44:0;;13477:2:1;16921:44:0::1;::::0;::::1;13459:21:1::0;13516:2;13496:18;;;13489:30;-1:-1:-1;;;13535:18:1;;;13528:48;13593:18;;16921:44:0::1;13449:168:1::0;16921:44:0::1;16976:12;:23:::0;16850:157::o;10337:83::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;10400:8:::1;:12:::0;;;::::1;;-1:-1:-1::0;;;10400:12:0::1;-1:-1:-1::0;;;;10400:12:0;;::::1;::::0;;;::::1;::::0;;10337:83::o;1801:273::-;2367:6;;-1:-1:-1;;;;;2367:6:0;360:10;2367:22;2359:67;;;;-1:-1:-1;;;2359:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1896:22:0;::::1;1874:110;;;::::0;-1:-1:-1;;;1874:110:0;;10588:2:1;1874:110:0::1;::::0;::::1;10570:21:1::0;10627:2;10607:18;;;10600:30;10666:34;10646:18;;;10639:62;-1:-1:-1;;;10717:18:1;;;10710:36;10763:19;;1874:110:0::1;10560:228:1::0;1874:110:0::1;2021:6;::::0;;2000:38:::1;::::0;-1:-1:-1;;;;;2000:38:0;;::::1;::::0;2021:6;::::1;::::0;2000:38:::1;::::0;::::1;2049:6;:17:::0;;-1:-1:-1;;;;;;2049:17:0::1;-1:-1:-1::0;;;;;2049:17:0;;;::::1;::::0;;;::::1;::::0;;1801:273::o;11067:177::-;-1:-1:-1;;;;;11152:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11204:32;;14797:25:1;;;11204:32:0;;14770:18:1;11204:32:0;;;;;;;;11067:177;;;:::o;17328:3656::-;17429:1;17412:14;17421:4;17412:8;:14::i;:::-;:18;17408:83;;;17447:32;;-1:-1:-1;;;17447:32:0;;11684:2:1;17447:32:0;;;11666:21:1;11723:2;11703:18;;;11696:30;-1:-1:-1;;;11742:18:1;;;11735:44;11796:18;;17447:32:0;11656:164:1;17447:32:0;17507:6;;-1:-1:-1;;;17507:6:0;;;;17503:92;;;17530:32;17545:4;17551:2;17555:6;17530:14;:32::i;17503:92::-;-1:-1:-1;;;;;17625:15:0;;17607;17625;;;:9;:15;;;;;;17659:17;;;;17651:46;;;;-1:-1:-1;;;17651:46:0;;11339:2:1;17651:46:0;;;11321:21:1;11378:2;11358:18;;;11351:30;-1:-1:-1;;;11397:18:1;;;11390:46;11453:18;;17651:46:0;11311:166:1;17651:46:0;-1:-1:-1;;;;;17729:19:0;;;;;;:13;:19;;;;;;;;17728:20;:55;;;;-1:-1:-1;;;;;;17766:17:0;;;;;;:13;:17;;;;;;;;17765:18;17728:55;:85;;;;-1:-1:-1;17800:13:0;;-1:-1:-1;;;17800:13:0;;;;17728:85;:118;;;;;17845:1;17830:12;;:16;17728:118;17710:653;;;17873:10;;17898:413;17919:12;;17915:1;:16;17898:413;;;18105:44;;;;;;5279:19:1;;;5314:12;;;5307:28;;;18133:15:0;5351:12:1;;;5344:28;5388:12;;18105:44:0;;;;;;;;;;;;18061:119;;;;;;18026:181;;17957:292;;18268:27;18283:4;18289:2;18293:1;18268:14;:27::i;:::-;-1:-1:-1;17933:3:0;;;;:::i;:::-;;;;17898:413;;;-1:-1:-1;18335:12:0;;:16;;18350:1;18335:16;:::i;:::-;18325:26;;;;:::i;:::-;;;17710:653;;-1:-1:-1;;;;;18426:19:0;;18375:12;18426:19;;;:13;:19;;;;;;18375:12;;18426:19;;;:40;;-1:-1:-1;;;;;;18449:17:0;;;;;;:13;:17;;;;;;;;18426:40;18422:2351;;;-1:-1:-1;;;;;18488:19:0;;;;;;:13;:19;;;;;;;;18487:20;:42;;;;-1:-1:-1;;;;;;18512:17:0;;;;;;:13;:17;;;;;;;;18511:18;18487:42;18483:2194;;;18554:14;;-1:-1:-1;;;18554:14:0;;;;:38;;;;-1:-1:-1;18577:15:0;;18572:20;18554:38;18550:101;;;18617:14;;;;18695;;-1:-1:-1;;;18695:14:0;;;;:54;;;;-1:-1:-1;18734:15:0;;-1:-1:-1;;;18734:15:0;;;;18695:54;:114;;;;;18807:2;;18789:15;;:20;;;;:::i;:::-;18774:12;:35;18695:114;18669:249;;;-1:-1:-1;;;;;18857:17:0;;;;;;:13;:17;;;;;;;;18852:46;;-1:-1:-1;;;;;18876:15:0;;;;;;:11;:15;;;;;:22;;-1:-1:-1;;18876:22:0;18894:4;18876:22;;;18852:46;18942:15;;-1:-1:-1;;;18942:15:0;;;;18938:570;;;-1:-1:-1;;;;;18986:19:0;;;;;;:13;:19;;;;;;;;18982:507;;;19113:12;;19103:6;:22;;19065:155;;;;-1:-1:-1;;;19065:155:0;;;;;;;:::i;:::-;18982:507;;;19357:13;;19347:6;:23;;19309:156;;;;-1:-1:-1;;;19309:156:0;;;;;;;:::i;:::-;19530:17;;-1:-1:-1;;;19530:17:0;;;;:40;;;;-1:-1:-1;;;;;;19551:19:0;;;;;;:13;:19;;;;;;;;19530:40;19526:285;;;-1:-1:-1;;;;;19608:13:0;;19595:10;19608:13;;;:9;:13;;;;;;19693:15;;19678:11;19683:6;19608:13;19678:11;:::i;:::-;:30;;19644:147;;;;-1:-1:-1;;;19644:147:0;;10228:2:1;19644:147:0;;;10210:21:1;10267:2;10247:18;;;10240:30;10306:33;10286:18;;;10279:61;10357:18;;19644:147:0;10200:181:1;19644:147:0;19526:285;;-1:-1:-1;;;;;19835:17:0;;;;;;:13;:17;;;;;;;;19831:798;;;19882:6;;-1:-1:-1;;;19882:6:0;;;;19877:733;;19966:4;19917:28;19948:24;;;:9;:24;;;;;;20003;;19999:588;;20060:15;20218:10;;20170:12;;20125:9;;20078:11;;:56;;;;:::i;:::-;:104;;;;:::i;:::-;:150;;;;:::i;:::-;20060:168;-1:-1:-1;20289:6:0;20330:42;;;20326:157;;;-1:-1:-1;20431:20:0;20326:157;20513:46;20530:19;20551:7;20513:16;:46::i;:::-;19999:588;;;19877:733;;20657:4;20647:14;;18483:2194;-1:-1:-1;;;;;20695:17:0;;;;;;:13;:17;;;;;;;;20691:71;;;-1:-1:-1;20742:4:0;20691:71;-1:-1:-1;;;;;20816:19:0;;20785:15;20816:19;;;:13;:19;;;;;;;;20815:20;:42;;;;-1:-1:-1;;;;;;20840:17:0;;;;;;:13;:17;;;;;;;;20839:18;20815:42;20811:92;;;-1:-1:-1;20887:4:0;20811:92;20915:61;20930:4;20936:2;20940:6;20948:7;20957:6;20965:10;20915:14;:61::i;:::-;17328:3656;;;;;;;:::o;16509:293::-;-1:-1:-1;;;;;16653:17:0;;16636:4;16653:17;;;:9;:17;;;;;:27;;16674:6;;16653:17;16636:4;;16653:27;;16674:6;;16653:27;:::i;:::-;;;;-1:-1:-1;;;;;;;16691:20:0;;;;;;:9;:20;;;;;:30;;16715:6;;16691:20;:30;;16715:6;;16691:30;:::i;:::-;;;;;;;;16754:9;-1:-1:-1;;;;;16737:35:0;16746:6;-1:-1:-1;;;;;16737:35:0;;16765:6;16737:35;;;;14797:25:1;;14785:2;14770:18;;14752:76;16737:35:0;;;;;;;;-1:-1:-1;16790:4:0;16509:293;;;;;:::o;23046:3594::-;12114:6;:13;;-1:-1:-1;;;;12114:13:0;-1:-1:-1;;;12114:13:0;;;23170:12;23166:25:::1;;23184:7;;23166:25;23201:18;23212:7:::0;;23201:18:::1;:::i;:::-;;;23230:13;23259:9;;23246:10;;:22;;;;:::i;:::-;23230:38:::0;-1:-1:-1;23279:16:0::1;23322:7:::0;23299:19:::1;23230:38:::0;23299:11;:19:::1;:::i;:::-;23298:31;;;;:::i;:::-;23366:16;::::0;;23380:1:::1;23366:16:::0;;;;;::::1;::::0;;23279:50;;-1:-1:-1;23342:21:0::1;::::0;23366:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23366:16:0::1;23342:40;;23411:4;23393;23398:1;23393:7;;;;;;-1:-1:-1::0;;;23393:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;23393:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23437:8:::1;::::0;;23427:7;;23437:8;::::1;::::0;23427:4;;23437:8;23427:7;::::1;;;-1:-1:-1::0;;;23427:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;23427:18:0;;::::1;:7;::::0;;::::1;::::0;;;;;;;:18;23460:13:::1;::::0;::::1;-1:-1:-1::0;;;23460:13:0;;::::1;;23456:1004;;;23541:11;::::0;-1:-1:-1;;;;;23541:11:0::1;:62;23626:22;23640:8:::0;23626:11;:22:::1;:::i;:::-;23671:1;23723:4;23758;23802:15;23541:295;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;23520:438;;23883:59;::::0;::::1;::::0;;;::::1;23456:1004;;23520:438;23456:1004;;;24011:11;::::0;-1:-1:-1;;;;;24011:11:0::1;:87;24125:22;24139:8:::0;24125:11;:22:::1;:::i;:::-;24241:17;::::0;24011:313:::1;::::0;-1:-1:-1;;;;;;24011:313:0::1;::::0;;;;;;::::1;::::0;;24174:1:::1;::::0;24202:4;;-1:-1:-1;;;;;24241:17:0::1;::::0;24286:15:::1;::::0;24011:313:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;23990:459;;24371:62;::::0;::::1;::::0;;;::::1;23990:459;24472:16;24483:5:::0;24472:16;::::1;:::i;:::-;;;24499:19;24533:14:::0;24562:18:::1;24599:13:::0;::::1;;;;;;;;;;24595:2038;;;24643:21;::::0;-1:-1:-1;24712:7:0;24689:19:::1;24703:5:::0;24643:21;24689:19:::1;:::i;:::-;24688:31;;;;:::i;:::-;24679:40:::0;-1:-1:-1;24747:20:0::1;24679:40:::0;24747:11;:20:::1;:::i;:::-;24734:33;;24799:1;24786:10;:14;:43;;;;-1:-1:-1::0;24804:11:0::1;::::0;-1:-1:-1;;;;;24804:11:0::1;:25:::0;::::1;24786:43;24782:116;;;24850:11;::::0;:32:::1;::::0;-1:-1:-1;;;;;24850:11:0;;::::1;::::0;:32;::::1;;;::::0;24871:10;;24850:11:::1;:32:::0;:11;:32;24871:10;24850:11;:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24782:116;24927:1;24916:8;:12;:26;;;;;24941:1;24932:6;:10;24916:26;24912:504;;;25026:11;::::0;25226::::1;::::0;25026:276:::1;::::0;-1:-1:-1;;;25026:276:0;;25103:4:::1;25026:276;::::0;::::1;7733:34:1::0;7783:18;;;7776:34;;;25026:11:0::1;7826:18:1::0;;;7819:34;;;7869:18;;;7862:34;-1:-1:-1;;;;;25226:11:0;;::::1;7912:19:1::0;;;7905:44;25264:15:0::1;7965:19:1::0;;;7958:35;25026:11:0;::::1;::::0;:27:::1;::::0;25061:6;;7667:19:1;;25026:276:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;-1:-1:-1::0;25026:276:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;25026:276:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;25001:400;;25357:24;::::0;::::1;::::0;;;::::1;24595:2038;;25001:400;;;;;24595:2038;;;25469:8;::::0;25530:17:::1;::::0;25507:42:::1;::::0;-1:-1:-1;;;25507:42:0;;-1:-1:-1;;;;;25530:17:0;;::::1;25507:42;::::0;::::1;5557:51:1::0;25469:8:0;::::1;::::0;;;25507:14:::1;::::0;5530:18:1;;25507:42:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25493:56:::0;-1:-1:-1;25597:7:0;25574:19:::1;25588:5:::0;25493:56;25574:19:::1;:::i;:::-;25573:31;;;;:::i;:::-;25564:40:::0;-1:-1:-1;25632:20:0::1;25564:40:::0;25632:11;:20:::1;:::i;:::-;25619:33:::0;-1:-1:-1;25673:10:0;;25669:201:::1;;25752:17;::::0;25704:150:::1;::::0;-1:-1:-1;;;25704:150:0;;-1:-1:-1;;;;;25752:17:0;;::::1;25704:150;::::0;::::1;6091:34:1::0;25801:4:0::1;6141:18:1::0;;;6134:43;6193:18;;;6186:34;;;25704:17:0;;::::1;::::0;::::1;::::0;6026:18:1;;25704:150:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25669:201;25890:14:::0;;25886:207:::1;;25973:17;::::0;26014:11:::1;::::0;25925:152:::1;::::0;-1:-1:-1;;;25925:152:0;;-1:-1:-1;;;;;25973:17:0;;::::1;25925:152;::::0;::::1;6091:34:1::0;26014:11:0;;::::1;6141:18:1::0;;;6134:43;6193:18;;;6186:34;;;25925:17:0;;::::1;::::0;::::1;::::0;6026:18:1;;25925:152:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25886:207;26124:1;26113:8;:12;:26;;;;;26138:1;26129:6;:10;26113:26;26109:513;;;26185:11;::::0;;26276:8;26435:11:::1;::::0;26185:326:::1;::::0;-1:-1:-1;;;26185:326:0;;26244:4:::1;26185:326;::::0;::::1;7016:34:1::0;-1:-1:-1;;;;;26276:8:0;;::::1;7066:18:1::0;;;7059:43;7118:18;;;7111:34;;;7161:18;;;7154:34;;;26185:11:0::1;7204:19:1::0;;;7197:35;;;7248:19;;;7241:35;26435:11:0;;::::1;7292:19:1::0;;;7285:44;26473:15:0::1;7345:19:1::0;;;7338:35;26185:11:0;::::1;::::0;:24:::1;::::0;6950:19:1;;26185:326:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;26185:326:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;26185:326:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;26160:447;;26566:21;::::0;::::1;::::0;;;::::1;26160:447;;;;;;;24595:2038;;12138:1;;;;;;;-1:-1:-1::0;;12150:6:0;:14;;-1:-1:-1;;;;12150:14:0;;;23046:3594::o;21190:1628::-;-1:-1:-1;;;;;21410:17:0;;;;;;:9;:17;;;;;;:27;;21430:7;;21410:27;:::i;:::-;-1:-1:-1;;;;;21390:17:0;;;;;;:9;:17;;;;;:47;;;;21478:884;;;;21506:15;21540:6;21536:156;;;21592:10;;21577:12;;:25;;;;:::i;:::-;21567:35;;21536:156;;;21667:9;;21653:11;;:23;;;;:::i;:::-;21643:33;;21536:156;21708:18;21751:5;21730:17;21740:7;21730;:17;:::i;:::-;21729:27;;;;:::i;:::-;21708:48;-1:-1:-1;21775:14:0;;21771:145;;21810:23;21823:10;21810:23;;:::i;:::-;;;21852:48;21866:6;21882:4;21889:10;21852:13;:48::i;:::-;21932:18;21970:6;21965:225;;22059:5;22044:11;;22034:7;:21;;;;:::i;:::-;22033:31;;;;:::i;:::-;22020:44;;21965:225;;;22169:5;22153:12;;22143:7;:22;;;;:::i;:::-;22142:32;;;;:::i;:::-;22129:45;;21965:225;22208:14;;22204:147;;22243:23;22256:10;22243:23;;:::i;:::-;;;22285:50;22299:6;22315;22324:10;22285:13;:50::i;:::-;21478:884;;;;22378:10;:36;;;;-1:-1:-1;;;;;;22393:21:0;;;;;;:13;:21;;;;;;;;22392:22;22378:36;:65;;;;-1:-1:-1;;;;;;22419:24:0;;;;;;:13;:24;;;;;;;;22418:25;22378:65;22374:371;;;22460:25;22546:5;22531:11;;22521:7;:21;;;;:::i;:::-;22520:31;;;;:::i;:::-;22500:51;-1:-1:-1;22572:21:0;;22568:166;;22614:30;22627:17;22614:30;;:::i;:::-;;;22663:55;22677:6;22693:4;22700:17;22663:13;:55::i;:::-;22374:371;;22757:53;22771:6;22779:9;22790:19;22800:9;22790:7;:19;:::i;:::-;-1:-1:-1;;;;;26785:13:0;;;;;;:9;:13;;;;;;:23;;26801:7;;26785:23;:::i;:::-;-1:-1:-1;;;;;26769:13:0;;;;;;;:9;:13;;;;;;;:39;;;;26824:29;;;;;;;;;;26845:7;14797:25:1;;14785:2;14770:18;;14752:76;14:395;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:2;;166:8;156;149:26;108:2;-1:-1:-1;196:20:1;;239:18;228:30;;225:2;;;278:8;268;261:26;225:2;322:4;314:6;310:17;298:29;;382:3;375:4;365:6;362:1;358:14;350:6;346:27;342:38;339:47;336:2;;;399:1;396;389:12;336:2;98:311;;;;;:::o;414:257::-;473:6;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;591:9;578:23;610:31;635:5;610:31;:::i;:::-;660:5;484:187;-1:-1:-1;;;484:187:1:o;946:398::-;1014:6;1022;1075:2;1063:9;1054:7;1050:23;1046:32;1043:2;;;1096:6;1088;1081:22;1043:2;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;-1:-1:-1;1266:2:1;1251:18;;1238:32;1279:33;1238:32;1279:33;:::i;:::-;1331:7;1321:17;;;1033:311;;;;;:::o;1349:466::-;1426:6;1434;1442;1495:2;1483:9;1474:7;1470:23;1466:32;1463:2;;;1516:6;1508;1501:22;1463:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;-1:-1:-1;1686:2:1;1671:18;;1658:32;1699:33;1658:32;1699:33;:::i;:::-;1453:362;;1751:7;;-1:-1:-1;;;1805:2:1;1790:18;;;;1777:32;;1453:362::o;1820:392::-;1885:6;1893;1946:2;1934:9;1925:7;1921:23;1917:32;1914:2;;;1967:6;1959;1952:22;1914:2;2011:9;1998:23;2030:31;2055:5;2030:31;:::i;:::-;2080:5;-1:-1:-1;2137:2:1;2122:18;;2109:32;2150:30;2109:32;2150:30;:::i;2217:325::-;2285:6;2293;2346:2;2334:9;2325:7;2321:23;2317:32;2314:2;;;2367:6;2359;2352:22;2314:2;2411:9;2398:23;2430:31;2455:5;2430:31;:::i;:::-;2480:5;2532:2;2517:18;;;;2504:32;;-1:-1:-1;;;2304:238:1:o;2547:586::-;2639:6;2647;2655;2708:2;2696:9;2687:7;2683:23;2679:32;2676:2;;;2729:6;2721;2714:22;2676:2;2774:9;2761:23;2807:18;2799:6;2796:30;2793:2;;;2844:6;2836;2829:22;2793:2;2888:70;2950:7;2941:6;2930:9;2926:22;2888:70;:::i;:::-;2977:8;;-1:-1:-1;2862:96:1;-1:-1:-1;;3062:2:1;3047:18;;3034:32;3075:28;3034:32;3075:28;:::i;:::-;3122:5;3112:15;;;2666:467;;;;;:::o;3138:457::-;3224:6;3232;3285:2;3273:9;3264:7;3260:23;3256:32;3253:2;;;3306:6;3298;3291:22;3253:2;3351:9;3338:23;3384:18;3376:6;3373:30;3370:2;;;3421:6;3413;3406:22;3370:2;3465:70;3527:7;3518:6;3507:9;3503:22;3465:70;:::i;:::-;3554:8;;3439:96;;-1:-1:-1;3243:352:1;-1:-1:-1;;;;3243:352:1:o;3600:251::-;3656:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:2;;;3730:6;3722;3715:22;3677:2;3774:9;3761:23;3793:28;3815:5;3793:28;:::i;3856:255::-;3923:6;3976:2;3964:9;3955:7;3951:23;3947:32;3944:2;;;3997:6;3989;3982:22;3944:2;4034:9;4028:16;4053:28;4075:5;4053:28;:::i;4116:190::-;4175:6;4228:2;4216:9;4207:7;4203:23;4199:32;4196:2;;;4249:6;4241;4234:22;4196:2;-1:-1:-1;4277:23:1;;4186:120;-1:-1:-1;4186:120:1:o;4311:194::-;4381:6;4434:2;4422:9;4413:7;4409:23;4405:32;4402:2;;;4455:6;4447;4440:22;4402:2;-1:-1:-1;4483:16:1;;4392:113;-1:-1:-1;4392:113:1:o;4510:258::-;4578:6;4586;4639:2;4627:9;4618:7;4614:23;4610:32;4607:2;;;4660:6;4652;4645:22;4607:2;-1:-1:-1;;4688:23:1;;;4758:2;4743:18;;;4730:32;;-1:-1:-1;4597:171:1:o;4773:316::-;4861:6;4869;4877;4930:2;4918:9;4909:7;4905:23;4901:32;4898:2;;;4951:6;4943;4936:22;4898:2;4985:9;4979:16;4969:26;;5035:2;5024:9;5020:18;5014:25;5004:35;;5079:2;5068:9;5064:18;5058:25;5048:35;;4888:201;;;;;:::o;8661:603::-;8773:4;8802:2;8831;8820:9;8813:21;8863:6;8857:13;8906:6;8901:2;8890:9;8886:18;8879:34;8931:4;8944:140;8958:6;8955:1;8952:13;8944:140;;;9053:14;;;9049:23;;9043:30;9019:17;;;9038:2;9015:26;9008:66;8973:10;;8944:140;;;9102:6;9099:1;9096:13;9093:2;;;9172:4;9167:2;9158:6;9147:9;9143:22;9139:31;9132:45;9093:2;-1:-1:-1;9248:2:1;9227:15;-1:-1:-1;;9223:29:1;9208:45;;;;9255:2;9204:54;;8782:482;-1:-1:-1;;;8782:482:1:o;11825:399::-;12027:2;12009:21;;;12066:2;12046:18;;;12039:30;12105:34;12100:2;12085:18;;12078:62;-1:-1:-1;;;12171:2:1;12156:18;;12149:33;12214:3;12199:19;;11999:225::o;12573:356::-;12775:2;12757:21;;;12794:18;;;12787:30;12853:34;12848:2;12833:18;;12826:62;12920:2;12905:18;;12747:182::o;14833:983::-;15095:4;15143:3;15132:9;15128:19;15174:6;15163:9;15156:25;15200:2;15238:6;15233:2;15222:9;15218:18;15211:34;15281:3;15276:2;15265:9;15261:18;15254:31;15305:6;15340;15334:13;15371:6;15363;15356:22;15409:3;15398:9;15394:19;15387:26;;15448:2;15440:6;15436:15;15422:29;;15469:4;15482:195;15496:6;15493:1;15490:13;15482:195;;;15561:13;;-1:-1:-1;;;;;15557:39:1;15545:52;;15652:15;;;;15617:12;;;;15593:1;15511:9;15482:195;;;-1:-1:-1;;;;;;;15733:32:1;;;;15728:2;15713:18;;15706:60;-1:-1:-1;;;15797:3:1;15782:19;15775:35;15694:3;15104:712;-1:-1:-1;;;15104:712:1:o;15821:128::-;15861:3;15892:1;15888:6;15885:1;15882:13;15879:2;;;15898:18;;:::i;:::-;-1:-1:-1;15934:9:1;;15869:80::o;15954:217::-;15994:1;16020;16010:2;;-1:-1:-1;;;16045:31:1;;16099:4;16096:1;16089:15;16127:4;16052:1;16117:15;16010:2;-1:-1:-1;16156:9:1;;16000:171::o;16176:168::-;16216:7;16282:1;16278;16274:6;16270:14;16267:1;16264:21;16259:1;16252:9;16245:17;16241:45;16238:2;;;16289:18;;:::i;:::-;-1:-1:-1;16329:9:1;;16228:116::o;16349:125::-;16389:4;16417:1;16414;16411:8;16408:2;;;16422:18;;:::i;:::-;-1:-1:-1;16459:9:1;;16398:76::o;16479:380::-;16558:1;16554:12;;;;16601;;;16622:2;;16676:4;16668:6;16664:17;16654:27;;16622:2;16729;16721:6;16718:14;16698:18;16695:38;16692:2;;;16775:10;16770:3;16766:20;16763:1;16756:31;16810:4;16807:1;16800:15;16838:4;16835:1;16828:15;16692:2;;16534:325;;;:::o;16864:135::-;16903:3;-1:-1:-1;;16924:17:1;;16921:2;;;16944:18;;:::i;:::-;-1:-1:-1;16991:1:1;16980:13;;16911:88::o;17004:127::-;17065:10;17060:3;17056:20;17053:1;17046:31;17096:4;17093:1;17086:15;17120:4;17117:1;17110:15;17136:131;-1:-1:-1;;;;;17211:31:1;;17201:42;;17191:2;;17257:1;17254;17247:12;17272:118;17358:5;17351:13;17344:21;17337:5;17334:32;17324:2;;17380:1;17377;17370:12
Swarm Source
ipfs://cea2bc332235cb9219d216106f827d8dab5f1574aed599c3f3163f7389ce41eb
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.