ETH Price: $2,577.82 (-4.00%)
Gas: 6 Gwei

Token

CRE8WEB3 (CRE8)
 

Overview

Max Total Supply

100,000,000 CRE8

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.234893589 CRE8

Value
$0.00
0x2fc6f6fa1ed0fb4888cbfbfc36b5f3cebff894dd
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CRE8WEB3

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-24
*/

/**

https://t.me/cre8web3
https://cre8web3.com
https://twitter.com/cre8web3
and

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}
    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b <= a, errorMessage); return a - b;}}

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a / b;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked{require(b > 0, errorMessage); return a % b;}}}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function circulatingSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface stakeIntegration {
    function stakingWithdraw(address depositor, uint256 _amount) external;
    function stakingDeposit(address depositor, uint256 _amount) external;
}

interface tokenStaking {
    function deposit(uint256 amount) external;
    function withdraw(uint256 amount) external;
}

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract CRE8WEB3 is IERC20, tokenStaking, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'CRE8WEB3';
    string private constant _symbol = 'CRE8';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 100 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 100 ) / 10000;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    struct UserStats{bool whitelist; bool isBot; bool feeExempt;}
    mapping(address => UserStats) private isFeeExempt;
    IRouter router;
    address public pair;
    uint256 private liquidityFee = 100;
    uint256 private marketingFee = 200;
    uint256 private developmentFee = 200;
    uint256 private stakingFee = 0;
    uint256 private tokenFee = 0;
    uint256 private totalFee = 3000;
    uint256 private sellFee = 3000;
    uint256 private transferFee = 3000;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    bool private whitelistAllowed = false;
    bool private tradingAllowed = false;
    mapping(address => uint256) private lastTransferTimestamp;
    bool public transferDelayEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    bool private liquidityAdd;
    modifier liquidityCreation {liquidityAdd = true; _; liquidityAdd = false;}
    uint256 private swapAmount = 2;
    uint256 private swapThreshold = ( _totalSupply * 200 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    mapping(address => uint256) public amountStaked;
    uint256 public totalStaked;
    stakeIntegration internal stakingContract;
    
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0xD8147B40E3E3f7F46600B44c8cbB9d83E7f7bCD6; 
    address internal marketing_receiver = 0xf5F0270964D54971B6235C45806a0c8C4d2AE76e;
    address internal liquidity_receiver = 0xD8147B40E3E3f7F46600B44c8cbB9d83E7f7bCD6;
    address internal staking_receiver = 0x89c4B0EcC85195B54408907171C79f26f2A441B3;
    address internal token_receiver = 0x000000000000000000000000000000000000dEaD;
    
    event Deposit(address indexed account, uint256 indexed amount, uint256 indexed timestamp);
    event Withdraw(address indexed account, uint256 indexed amount, uint256 indexed timestamp);
    event SetStakingAddress(address indexed stakingAddress, uint256 indexed timestamp);
    event SetisBot(address indexed account, bool indexed isBot, uint256 indexed timestamp);
    event TradingEnabled(address indexed account, uint256 indexed timestamp);
    event isWhitelisted(address indexed account, bool indexed isWhitelisted, uint256 indexed timestamp);
    event ExcludeFromFees(address indexed account, bool indexed isExcluded, uint256 indexed timestamp);
    event SetDividendExempt(address indexed account, bool indexed isExempt, uint256 indexed timestamp);
    event Launch(uint256 indexed whitelistTime, bool indexed whitelistAllowed, uint256 indexed timestamp);
    event SetInternalAddresses(address indexed marketing, address indexed liquidity, address indexed development, uint256 timestamp);
    event SetSwapBackSettings(uint256 indexed swapAmount, uint256 indexed swapThreshold, uint256 indexed swapMinAmount, uint256 timestamp);
    event SetDistributionCriteria(uint256 indexed minPeriod, uint256 indexed minDistribution, uint256 indexed distributorGas, uint256 timestamp);
    event SetParameters(uint256 indexed maxTxAmount, uint256 indexed maxWalletToken, uint256 indexed maxTransfer, uint256 timestamp);
    event SetStructure(uint256 indexed total, uint256 indexed sell, uint256 transfer, uint256 indexed timestamp);
    event CreateLiquidity(uint256 indexed tokenAmount, uint256 indexed ETHAmount, address indexed wallet, uint256 timestamp);

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)].whitelist = true;
        isFeeExempt[msg.sender].whitelist = true;
        isFeeExempt[address(this)].feeExempt = true;
        isFeeExempt[liquidity_receiver].feeExempt = true;
        isFeeExempt[marketing_receiver].feeExempt = true;
        isFeeExempt[development_receiver].feeExempt = true;
        isFeeExempt[address(DEAD)].feeExempt = true;
        isFeeExempt[msg.sender].feeExempt = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function getOwner() external view override returns (address) { return owner; }
    function totalSupply() public view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function availableBalance(address wallet) public view returns (uint256) {return _balances[wallet].sub(amountStaked[wallet]);}
    function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"ERC20: below available balance threshold");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkTxLimit(sender, recipient, amount);
        checkMaxWallet(sender, recipient, amount);
        checkTradeDelay(sender, recipient);
        swapbackCounters(sender, recipient);
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function deposit(uint256 amount) override external {
        require(amount <= _balances[msg.sender].sub(amountStaked[msg.sender]), "ERC20: Cannot stake more than available balance");
        stakingContract.stakingDeposit(msg.sender, amount);
        amountStaked[msg.sender] = amountStaked[msg.sender].add(amount);
        totalStaked = totalStaked.add(amount);
        emit Deposit(msg.sender, amount, block.timestamp);
    }

    function withdraw(uint256 amount) override external {
        require(amount <= amountStaked[msg.sender], "ERC20: Cannot unstake more than amount staked");
        stakingContract.stakingWithdraw(msg.sender, amount);
        amountStaked[msg.sender] = amountStaked[msg.sender].sub(amount);
        totalStaked = totalStaked.sub(amount);
        emit Withdraw(msg.sender, amount, block.timestamp);
    }

    uint256 internal launchTime; uint256 internal whitelistTime;
    function startWhitelistTrading(uint256 _whitelistTime, bool _whitelistAllowed) external onlyOwner {
        require(!whitelistAllowed, "ERC20: whitelist period already enabled");
        tradingAllowed = true; launchTime = block.timestamp; 
        whitelistTime = _whitelistTime; whitelistAllowed = _whitelistAllowed;
        emit Launch(_whitelistTime, _whitelistAllowed, block.timestamp);
    }

    function setisWhitelist(address[] calldata addresses, bool _bool) external onlyOwner {
        for(uint i=0; i < addresses.length; i++){isFeeExempt[addresses[i]].whitelist = _bool;
        emit isWhitelisted(addresses[i], _bool, block.timestamp);}
    }

    function setStakingAddress(address _staking) external onlyOwner {
        stakingContract = stakeIntegration(_staking); isFeeExempt[_staking].feeExempt = true;
        emit SetStakingAddress(_staking, block.timestamp);
    }

    function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _token, uint256 _development, uint256 _staking, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; tokenFee = _token; stakingFee = _staking;
        developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(5) && sellFee <= denominator.div(5) && transferFee <= denominator.div(5), "ERC20: fees cannot be more than 20%");
        emit SetStructure(_total, _sell, _trans, block.timestamp);
    }

    function setisBot(address _address, bool _enabled) external onlyOwner {
        require(_address != address(pair) && _address != address(router) && _address != address(this) && _address != address(DEAD), "ERC20: ineligible address");
        isFeeExempt[_address].isBot = _enabled;
        emit SetisBot(_address, _enabled, block.timestamp);
    }

    function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000; uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000; uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "ERC20: max TXs and max Wallet cannot be less than .5%");
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        emit SetParameters(newTx, newWallet, newTransfer, block.timestamp);
    }

    function setTransferDelay(bool enabled) external onlyOwner {
        transferDelayEnabled = enabled;
    }

    function checkTradingAllowed(address sender, address recipient) internal {
        if(launchTime.add(whitelistTime) < block.timestamp){whitelistAllowed = false;}
        if(!isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt && !whitelistAllowed){require(tradingAllowed, "ERC20: Trading is not allowed");}
        if(whitelistAllowed && tradingAllowed){require(!whitelistIneligible(sender, recipient), "ERC20: Whitelist Period");}
    }
    
    function whitelistIneligible(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender].whitelist && !isFeeExempt[recipient].whitelist && !isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt;
    }

    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "ERC20: exceeds maximum wallet amount.");}
    }

    function checkTradeDelay(address sender, address recipient) internal {
        if(transferDelayEnabled && !isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt && recipient != address(pair) &&
            recipient != address(DEAD) && recipient != address(router)){
                require(lastTransferTimestamp[tx.origin] < block.number, "ERC20: Transfer Delay enabled. Only one purchase per block allowed.");
                    lastTransferTimestamp[tx.origin] = block.number;}
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender].feeExempt && !liquidityAdd){swapTimes += uint256(1);}
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(amountStaked[sender] > uint256(0)){require((amount.add(amountStaked[sender])) <= _balances[sender], "ERC20: exceeds maximum allowed not currently staked.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender].feeExempt || isFeeExempt[recipient].feeExempt, "ERC20: tx limit exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender].feeExempt || isFeeExempt[recipient].feeExempt, "ERC20: tx limit exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee).add(stakingFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith, liquidity_receiver); }
        uint256 marketingAmount = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmount > 0){payable(marketing_receiver).transfer(marketingAmount);}
        uint256 stakingAmount = unitBalance.mul(2).mul(stakingFee);
        if(stakingAmount > 0){payable(staking_receiver).transfer(stakingAmount);}
        if(address(this).balance > uint256(0)){payable(development_receiver).transfer(address(this).balance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount, address receiver) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            address(receiver),
            block.timestamp);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender].feeExempt 
            && recipient == pair && swapTimes >= swapAmount && aboveThreshold && !liquidityAdd;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
    }
    
    function startTrading() external onlyOwner {
        tradingAllowed = true;
        emit TradingEnabled(msg.sender, block.timestamp);
    }

    function setInternalAddresses(address _marketing, address _liquidity, address _development, address _staking, address _token) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development; staking_receiver = _staking; token_receiver = _token;
        isFeeExempt[_marketing].feeExempt = true; isFeeExempt[_liquidity].feeExempt = true; isFeeExempt[_staking].feeExempt = true; isFeeExempt[_token].feeExempt = true;
        emit SetInternalAddresses(_marketing, _liquidity, _development, block.timestamp);
    }

    function setisExempt(address _address, bool _enabled) external onlyOwner {
        isFeeExempt[_address].feeExempt = _enabled;
        emit ExcludeFromFees(_address, _enabled, block.timestamp);
    }

    function rescueERC20(address _address, uint256 _amount) external {
        IERC20(_address).transfer(development_receiver, _amount);
    }

    function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _swapThreshold; minTokenAmount = _minTokenAmount;
        emit SetSwapBackSettings(_swapAmount, _swapThreshold, _minTokenAmount, block.timestamp);  
    }

    function createLiquidity(uint256 tokenAmount) payable public liquidityCreation {
        _approve(msg.sender, address(this), tokenAmount);
        _approve(msg.sender, address(router), tokenAmount);
        _transfer(msg.sender, address(this), tokenAmount);
        _approve(address(this), address(router), tokenAmount);
        addLiquidity(tokenAmount, msg.value, msg.sender);
        emit CreateLiquidity(tokenAmount, msg.value, msg.sender, block.timestamp);
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender].feeExempt && !isFeeExempt[recipient].feeExempt;
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isFeeExempt[sender].isBot || isFeeExempt[recipient].isBot){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0 && !liquidityAdd){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(tokenFee > uint256(0)){_transfer(address(this), address(token_receiver), amount.div(denominator).mul(tokenFee));}
        return amount.sub(feeAmount);} return amount;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"ETHAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"CreateLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExcluded","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"whitelistTime","type":"uint256"},{"indexed":true,"internalType":"bool","name":"whitelistAllowed","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"minPeriod","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"minDistribution","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"distributorGas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetDistributionCriteria","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isExempt","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetDividendExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketing","type":"address"},{"indexed":true,"internalType":"address","name":"liquidity","type":"address"},{"indexed":true,"internalType":"address","name":"development","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetInternalAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTransfer","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetStakingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"total","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetStructure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"swapAmount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapThreshold","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"swapMinAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isBot","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"SetisBot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isWhitelisted","type":"bool"},{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"isWhitelisted","type":"event"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"availableBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"createLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"},{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staking","type":"address"}],"name":"setStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_token","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setisWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_whitelistTime","type":"uint256"},{"internalType":"bool","name":"_whitelistAllowed","type":"bool"}],"name":"startWhitelistTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000568565b62000022906305f5e10062000580565b600155612710600154606462000039919062000580565b6200004591906200059a565b60025561271060015460646200005c919062000580565b6200006891906200059a565b60035561271060015460646200007f919062000580565b6200008b91906200059a565b6004556064600a5560c8600b819055600c8190556000600d819055600e55610bb8600f81905560108190556011556127106012556013805462ffffff191660019081179091556015805460ff191682179055600260185554620186a091620000f4919062000580565b6200010091906200059a565b601955620186a0600154600a62000118919062000580565b6200012491906200059a565b601a55601e80546001600160a01b031990811673d8147b40e3e3f7f46600b44c8cbb9d83e7f7bcd6908117909255601f8054821673f5f0270964d54971b6235c45806a0c8c4d2ae76e1790556020805482169092179091556021805482167389c4b0ecc85195b54408907171c79f26f2a441b31790556022805490911661dead179055348015620001b457600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa1580156200021c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002429190620005bd565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000290573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b69190620005bd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a9190620005bd565b600880546001600160a01b03199081166001600160a01b038681169190911790925560098054909116838316179055306000908152600760209081526040808320805460ff19908116600190811783553380875284872080549093168217835583546201000062ff00001991821681179095558654891688528588208054821686179055601f54891688528588208054821686179055601e54909816875284872080548916851790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d80548916851790558087528254909716909217905554600583528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005e8565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004aa5781600019048211156200048e576200048e62000453565b808516156200049c57918102915b93841c93908002906200046e565b509250929050565b600082620004c35750600162000562565b81620004d25750600062000562565b8160018114620004eb5760028114620004f65762000516565b600191505062000562565b60ff8411156200050a576200050a62000453565b50506001821b62000562565b5060208310610133831016604e8410600b84101617156200053b575081810a62000562565b62000547838362000469565b80600019048211156200055e576200055e62000453565b0290505b92915050565b60006200057960ff841683620004b2565b9392505050565b808202811582820484141762000562576200056262000453565b600082620005b857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005d057600080fd5b81516001600160a01b03811681146200057957600080fd5b612c9980620005f86000396000f3fe6080604052600436106102135760003560e01c806386975cfe11610118578063a9059cbb116100a0578063e2d6f94c1161006f578063e2d6f94c14610648578063e94dd17c14610668578063ef40a67014610688578063f2fde38b146106b5578063f4e0d9ac146106d557600080fd5b8063a9059cbb146105a8578063b6b55f25146105c8578063c876d0b9146105e8578063dd62ed3e1461060257600080fd5b80639358928b116100e75780639358928b1461050657806395d89b411461051b5780639fb05d3714610548578063a0821be314610568578063a8aa1b311461058857600080fd5b806386975cfe14610474578063893d20e8146104945780638c41180e146104c65780638cd4426d146104e657600080fd5b806348ff2b8b1161019b57806378026a221161016a57806378026a221461040957806378109e541461041c5780637cca52fe146104325780637d1db4a514610448578063817b1cd21461045e57600080fd5b806348ff2b8b1461037357806355c2535e1461039357806370a08231146103b357806377c325d6146103e957600080fd5b8063293230b8116101e2578063293230b8146102d15780632e1a7d4d146102e85780632f54bf6e14610308578063313ce5671461033757806334c5d2ce1461035357600080fd5b806306fdde031461021f578063095ea7b31461026257806318160ddd1461029257806323b872dd146102b157600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50604080518082019091526008815267435245385745423360c01b60208201525b6040516102599190612766565b60405180910390f35b34801561026e57600080fd5b5061028261027d3660046127cc565b6106f5565b6040519015158152602001610259565b34801561029e57600080fd5b506001545b604051908152602001610259565b3480156102bd57600080fd5b506102826102cc3660046127f8565b61070c565b3480156102dd57600080fd5b506102e6610776565b005b3480156102f457600080fd5b506102e6610303366004612839565b6107e9565b34801561031457600080fd5b50610282610323366004612852565b6000546001600160a01b0391821691161490565b34801561034357600080fd5b5060405160098152602001610259565b34801561035f57600080fd5b506102e661036e36600461286f565b61092f565b34801561037f57600080fd5b506102e661038e3660046128a9565b610ac3565b34801561039f57600080fd5b506102e66103ae3660046128e2565b610b4c565b3480156103bf57600080fd5b506102a36103ce366004612852565b6001600160a01b031660009081526005602052604090205490565b3480156103f557600080fd5b506102e6610404366004612968565b610c4d565b6102e6610417366004612839565b610c8a565b34801561042857600080fd5b506102a360045481565b34801561043e57600080fd5b506102a360035481565b34801561045457600080fd5b506102a360025481565b34801561046a57600080fd5b506102a3601c5481565b34801561048057600080fd5b506102e661048f366004612985565b610d3d565b3480156104a057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610259565b3480156104d257600080fd5b506102e66104e13660046128a9565b610e29565b3480156104f257600080fd5b506102e66105013660046127cc565b610f54565b34801561051257600080fd5b506102a3610fd0565b34801561052757600080fd5b50604080518082019091526004815263086a48a760e31b602082015261024c565b34801561055457600080fd5b506102e66105633660046129aa565b611041565b34801561057457600080fd5b506102a3610583366004612852565b611151565b34801561059457600080fd5b506009546104ae906001600160a01b031681565b3480156105b457600080fd5b506102826105c33660046127cc565b61117e565b3480156105d457600080fd5b506102e66105e3366004612839565b61118b565b3480156105f457600080fd5b506015546102829060ff1681565b34801561060e57600080fd5b506102a361061d366004612a1b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561065457600080fd5b506102e6610663366004612a49565b6112e8565b34801561067457600080fd5b506102e661068336600461286f565b611421565b34801561069457600080fd5b506102a36106a3366004612852565b601b6020526000908152604090205481565b3480156106c157600080fd5b506102e66106d0366004612852565b611498565b3480156106e157600080fd5b506102e66106f0366004612852565b611516565b60006107023384846115a7565b5060015b92915050565b60006107198484846116cb565b61076b843361076685604051806060016040528060288152602001612c3c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906117fb565b6115a7565b5060015b9392505050565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016107a090612a9e565b60405180910390fd5b6013805462ff0000191662010000179055604051429033907f340c369ced7c3a65b67543c4f1e839173c42d01b38931b0c01b18c89a1d1ba4b90600090a3565b336000908152601b602052604090205481111561085e5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b60648201526084016107a0565b601d5460405163d8a9bf2960e01b8152336004820152602481018390526001600160a01b039091169063d8a9bf2990604401600060405180830381600087803b1580156108aa57600080fd5b505af11580156108be573d6000803e3d6000fd5b5050336000908152601b60205260409020546108dd9250905082611827565b336000908152601b6020526040902055601c546108fa9082611827565b601c556040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b031633146109595760405162461bcd60e51b81526004016107a090612a9e565b60006127108461096860015490565b6109729190612ad4565b61097c9190612aeb565b905060006127108461098d60015490565b6109979190612ad4565b6109a19190612aeb565b90506000612710846109b260015490565b6109bc9190612ad4565b6109c69190612aeb565b905060006109ea6103e86109e460056109de60015490565b90611833565b9061183f565b90508084101580156109fc5750808310155b8015610a085750808210155b610a725760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b60648201526084016107a0565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f9060200160405180910390a450505050505050565b6000546001600160a01b03163314610aed5760405162461bcd60e51b81526004016107a090612a9e565b6001600160a01b038216600081815260076020526040808220805462ff0000191662010000861515908102919091179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b6000546001600160a01b03163314610b765760405162461bcd60e51b81526004016107a090612a9e565b60005b82811015610c47578160076000868685818110610b9857610b98612b0d565b9050602002016020810190610bad9190612852565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905542821515858584818110610beb57610beb612b0d565b9050602002016020810190610c009190612852565b6001600160a01b03167f06fc074ca2e419a387dc375c9b7c443ad8795d2ba416fa17bb4691ea4ba86ed560405160405180910390a480610c3f81612b23565b915050610b79565b50505050565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107a090612a9e565b6015805460ff1916911515919091179055565b6017805461ff001916610100179055610ca43330836115a7565b600854610cbc9033906001600160a01b0316836115a7565b610cc73330836116cb565b600854610cdf9030906001600160a01b0316836115a7565b610cea81343361184b565b336001600160a01b031634827f89d4d2ecc95200a080f69cea2131862ff53c70739a5db9ab0373fcdd09da746d42604051610d2791815260200190565b60405180910390a4506017805461ff0019169055565b6000546001600160a01b03163314610d675760405162461bcd60e51b81526004016107a090612a9e565b601354610100900460ff1615610dcf5760405162461bcd60e51b815260206004820152602760248201527f45524332303a2077686974656c69737420706572696f6420616c726561647920604482015266195b98589b195960ca1b60648201526084016107a0565b601380544260238190556024859055831515610100810262ffff001990931692909217620100001790925560405184907f0ce4d0131af8e20b17ec4635aadf58b43531a126375fbecb229e0ef13c761c5790600090a45050565b6000546001600160a01b03163314610e535760405162461bcd60e51b81526004016107a090612a9e565b6009546001600160a01b03838116911614801590610e7f57506008546001600160a01b03838116911614155b8015610e9457506001600160a01b0382163014155b8015610eab57506001600160a01b03821661dead14155b610ef75760405162461bcd60e51b815260206004820152601960248201527f45524332303a20696e656c696769626c6520616464726573730000000000000060448201526064016107a0565b6001600160a01b038216600081815260076020526040808220805461ff001916610100861515908102919091179091559051429391927fd1c5980b68c66e201f3a2b571fb898fa61a65a2c74c60690855730f86165d00d91a45050565b601e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcb9190612b3c565b505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600154919261103c9290916110369190611827565b90611827565b905090565b6000546001600160a01b0316331461106b5760405162461bcd60e51b81526004016107a090612a9e565b601f80546001600160a01b03199081166001600160a01b038881169182179093556020805483168885169081178255601e8054851689871690811790915560218054861689881690811790915560228054909616968816968717909555600084815260078452604080822080546201000062ff00001991821681179092558584528284208054821683179055978352818320805489168217905597825290819020805490961690961790945593514281529293927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b0381166000908152601b6020908152604080832054600590925282205461070691611827565b60006107023384846116cb565b336000908152601b60209081526040808320546005909252909120546111b091611827565b8111156112175760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b60648201526084016107a0565b601d5460405163773a0f0960e01b8152336004820152602481018390526001600160a01b039091169063773a0f0990604401600060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b5050336000908152601b602052604090205461129692509050826118fe565b336000908152601b6020526040902055601c546112b390826118fe565b601c556040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b031633146113125760405162461bcd60e51b81526004016107a090612a9e565b600a889055600b879055600e869055600d849055600c859055600f8390556010829055601181905560125461134890600561183f565b600f5411158015611368575060125461136290600561183f565b60105411155b8015611383575060125461137d90600561183f565b60115411155b6113db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a20666565732063616e6e6f74206265206d6f7265207468616e2060448201526232302560e81b60648201526084016107a0565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc9898460405161140f91815260200190565b60405180910390a45050505050505050565b6000546001600160a01b0316331461144b5760405162461bcd60e51b81526004016107a090612a9e565b60188390556019829055601a8190556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb39060200160405180910390a4505050565b6000546001600160a01b031633146114c25760405162461bcd60e51b81526004016107a090612a9e565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146115405760405162461bcd60e51b81526004016107a090612a9e565b601d80546001600160a01b0383166001600160a01b03199091168117909155600081815260076020526040808220805462ff0000191662010000179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b0383166116095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107a0565b6001600160a01b03821661166a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107a0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6116d683838361190a565b6116e08383611a49565b6116eb838383611bb1565b6116f6838383611dbd565b6117008383611ec3565b61170a8383612015565b611715838383612086565b6001600160a01b0383166000908152600560205260409020546117389082611827565b6001600160a01b03841660009081526005602052604081209190915561175e84846120ab565b6117685781611773565b6117738484846120fd565b6001600160a01b03841660009081526005602052604090205490915061179990826118fe565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ed9085815260200190565b60405180910390a350505050565b6000818484111561181f5760405162461bcd60e51b81526004016107a09190612766565b505050900390565b600061076f8284612b59565b600061076f8284612ad4565b600061076f8284612aeb565b6008546118639030906001600160a01b0316856115a7565b60085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af11580156118d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118f69190612b6c565b505050505050565b600061076f8284612b9a565b6001600160a01b03831661196e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107a0565b6001600160a01b0382166119d05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107a0565b6001600160a01b038316600090815260056020526040902054811115610fcb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b60648201526084016107a0565b42611a616024546023546118fe90919063ffffffff16565b1015611a73576013805461ff00191690555b6001600160a01b03821660009081526007602052604090205462010000900460ff16158015611ac157506001600160a01b03811660009081526007602052604090205462010000900460ff16155b8015611ad55750601354610100900460ff16155b15611b325760135462010000900460ff16611b325760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f77656400000060448201526064016107a0565b601354610100900460ff168015611b51575060135462010000900460ff165b15611bad57611b608282612208565b15611bad5760405162461bcd60e51b815260206004820152601760248201527f45524332303a2057686974656c69737420506572696f6400000000000000000060448201526064016107a0565b5050565b6001600160a01b0383166000908152601b602052604090205415611c6a576001600160a01b038316600090815260056020908152604080832054601b90925290912054611bff9083906118fe565b1115611c6a5760405162461bcd60e51b815260206004820152603460248201527f45524332303a2065786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b60648201526084016107a0565b6009546001600160a01b03848116911614611d1e5760035481111580611cae57506001600160a01b03831660009081526007602052604090205462010000900460ff165b80611cd757506001600160a01b03821660009081526007602052604090205462010000900460ff165b611d1e5760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b60448201526064016107a0565b60025481111580611d4d57506001600160a01b03831660009081526007602052604090205462010000900460ff165b80611d7657506001600160a01b03821660009081526007602052604090205462010000900460ff165b610fcb5760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b60448201526064016107a0565b6001600160a01b03831660009081526007602052604090205462010000900460ff16158015611e0b57506001600160a01b03821660009081526007602052604090205462010000900460ff16155b8015611e2557506009546001600160a01b03838116911614155b8015611e3c57506001600160a01b03821661dead14155b15610fcb576004546001600160a01b038316600090815260056020526040902054611e6790836118fe565b1115610fcb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b60648201526084016107a0565b60155460ff168015611ef457506001600160a01b03821660009081526007602052604090205462010000900460ff16155b8015611f1f57506001600160a01b03811660009081526007602052604090205462010000900460ff16155b8015611f3957506009546001600160a01b03828116911614155b8015611f5057506001600160a01b03811661dead14155b8015611f6a57506008546001600160a01b03828116911614155b15611bad57326000908152601460205260409020544311611fff5760405162461bcd60e51b815260206004820152604360248201527f45524332303a205472616e736665722044656c617920656e61626c65642e204f60448201527f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f7760648201526232b21760e91b608482015260a4016107a0565b3260009081526014602052604090204390555050565b6009546001600160a01b03828116911614801561205157506001600160a01b03821660009081526007602052604090205462010000900460ff16155b80156120655750601754610100900460ff16155b15611bad5760016016600082825461207d9190612b9a565b90915550505050565b6120918383836122a4565b15610fcb576120a1601954612370565b6000601655505050565b6001600160a01b03821660009081526007602052604081205462010000900460ff1615801561076f5750506001600160a01b031660009081526007602052604090205462010000900460ff1615919050565b60008061210a8585612569565b11801561211f5750601754610100900460ff16155b156122015760006121416121338686612569565b6012546109de90869061183f565b3060009081526005602052604090205490915061215e90826118fe565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121af9085815260200190565b60405180910390a3600e54156121ef57602254600e546012546121ef9230926001600160a01b03909116916121ea91906109de90899061183f565b6116cb565b6121f98382611827565b91505061076f565b5092915050565b6001600160a01b03821660009081526007602052604081205460ff1615801561224a57506001600160a01b03821660009081526007602052604090205460ff16155b801561227557506001600160a01b03831660009081526007602052604090205462010000900460ff16155b801561076f5750506001600160a01b031660009081526007602052604090205462010000900460ff1615919050565b601a546019543060009081526005602052604081205460175491938510159211159060ff161580156122d8575060135460ff165b80156122ec575060135462010000900460ff165b80156122f55750815b801561232057506001600160a01b03861660009081526007602052604090205462010000900460ff16155b801561233957506009546001600160a01b038681169116145b8015612349575060185460165410155b80156123525750805b80156123665750601754610100900460ff16155b9695505050505050565b6001601760006101000a81548160ff02191690831515021790555060006123c060026109de600d546123ba600c546123ba600b546123ba6001600a546118fe90919063ffffffff16565b906118fe565b905060006123dd826109e4600a548661183390919063ffffffff16565b905060006123eb8483611827565b9050476123f782612614565b60006124034783611827565b9050600061242661241f600a548861182790919063ffffffff16565b839061183f565b9050600061243f600a548361183390919063ffffffff16565b905080156124605760205461246090879083906001600160a01b031661184b565b600b54600090612475906109de856002611833565b905080156124b957601f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156124b7573d6000803e3d6000fd5b505b600d546000906124ce906109de866002611833565b90508015612512576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612510573d6000803e3d6000fd5b505b471561255357601e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612551573d6000803e3d6000fd5b505b50506017805460ff191690555050505050505050565b6001600160a01b038216600090815260076020526040812054610100900460ff16806125b257506001600160a01b038216600090815260076020526040902054610100900460ff165b156125cc576012546125c5906064611827565b9050610706565b6009546001600160a01b03908116908316036125eb5750601054610706565b6009546001600160a01b039081169084160361260a5750600f54610706565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061264957612649612b0d565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156126a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c69190612bad565b816001815181106126d9576126d9612b0d565b6001600160a01b0392831660209182029290920101526008546126ff91309116846115a7565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790612738908590600090869030904290600401612bca565b600060405180830381600087803b15801561275257600080fd5b505af11580156118f6573d6000803e3d6000fd5b600060208083528351808285015260005b8181101561279357858101830151858201604001528201612777565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146127c957600080fd5b50565b600080604083850312156127df57600080fd5b82356127ea816127b4565b946020939093013593505050565b60008060006060848603121561280d57600080fd5b8335612818816127b4565b92506020840135612828816127b4565b929592945050506040919091013590565b60006020828403121561284b57600080fd5b5035919050565b60006020828403121561286457600080fd5b813561076f816127b4565b60008060006060848603121561288457600080fd5b505081359360208301359350604090920135919050565b80151581146127c957600080fd5b600080604083850312156128bc57600080fd5b82356128c7816127b4565b915060208301356128d78161289b565b809150509250929050565b6000806000604084860312156128f757600080fd5b833567ffffffffffffffff8082111561290f57600080fd5b818601915086601f83011261292357600080fd5b81358181111561293257600080fd5b8760208260051b850101111561294757600080fd5b6020928301955093505084013561295d8161289b565b809150509250925092565b60006020828403121561297a57600080fd5b813561076f8161289b565b6000806040838503121561299857600080fd5b8235915060208301356128d78161289b565b600080600080600060a086880312156129c257600080fd5b85356129cd816127b4565b945060208601356129dd816127b4565b935060408601356129ed816127b4565b925060608601356129fd816127b4565b91506080860135612a0d816127b4565b809150509295509295909350565b60008060408385031215612a2e57600080fd5b8235612a39816127b4565b915060208301356128d7816127b4565b600080600080600080600080610100898b031215612a6657600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761070657610706612abe565b600082612b0857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201612b3557612b35612abe565b5060010190565b600060208284031215612b4e57600080fd5b815161076f8161289b565b8181038181111561070657610706612abe565b600080600060608486031215612b8157600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561070657610706612abe565b600060208284031215612bbf57600080fd5b815161076f816127b4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612c1a5784516001600160a01b031683529383019391830191600101612bf5565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122015d1f9e438c00178998e8d8ef2ecad959d9d46f527202ce6bfdb3a508f85729164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806386975cfe11610118578063a9059cbb116100a0578063e2d6f94c1161006f578063e2d6f94c14610648578063e94dd17c14610668578063ef40a67014610688578063f2fde38b146106b5578063f4e0d9ac146106d557600080fd5b8063a9059cbb146105a8578063b6b55f25146105c8578063c876d0b9146105e8578063dd62ed3e1461060257600080fd5b80639358928b116100e75780639358928b1461050657806395d89b411461051b5780639fb05d3714610548578063a0821be314610568578063a8aa1b311461058857600080fd5b806386975cfe14610474578063893d20e8146104945780638c41180e146104c65780638cd4426d146104e657600080fd5b806348ff2b8b1161019b57806378026a221161016a57806378026a221461040957806378109e541461041c5780637cca52fe146104325780637d1db4a514610448578063817b1cd21461045e57600080fd5b806348ff2b8b1461037357806355c2535e1461039357806370a08231146103b357806377c325d6146103e957600080fd5b8063293230b8116101e2578063293230b8146102d15780632e1a7d4d146102e85780632f54bf6e14610308578063313ce5671461033757806334c5d2ce1461035357600080fd5b806306fdde031461021f578063095ea7b31461026257806318160ddd1461029257806323b872dd146102b157600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50604080518082019091526008815267435245385745423360c01b60208201525b6040516102599190612766565b60405180910390f35b34801561026e57600080fd5b5061028261027d3660046127cc565b6106f5565b6040519015158152602001610259565b34801561029e57600080fd5b506001545b604051908152602001610259565b3480156102bd57600080fd5b506102826102cc3660046127f8565b61070c565b3480156102dd57600080fd5b506102e6610776565b005b3480156102f457600080fd5b506102e6610303366004612839565b6107e9565b34801561031457600080fd5b50610282610323366004612852565b6000546001600160a01b0391821691161490565b34801561034357600080fd5b5060405160098152602001610259565b34801561035f57600080fd5b506102e661036e36600461286f565b61092f565b34801561037f57600080fd5b506102e661038e3660046128a9565b610ac3565b34801561039f57600080fd5b506102e66103ae3660046128e2565b610b4c565b3480156103bf57600080fd5b506102a36103ce366004612852565b6001600160a01b031660009081526005602052604090205490565b3480156103f557600080fd5b506102e6610404366004612968565b610c4d565b6102e6610417366004612839565b610c8a565b34801561042857600080fd5b506102a360045481565b34801561043e57600080fd5b506102a360035481565b34801561045457600080fd5b506102a360025481565b34801561046a57600080fd5b506102a3601c5481565b34801561048057600080fd5b506102e661048f366004612985565b610d3d565b3480156104a057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610259565b3480156104d257600080fd5b506102e66104e13660046128a9565b610e29565b3480156104f257600080fd5b506102e66105013660046127cc565b610f54565b34801561051257600080fd5b506102a3610fd0565b34801561052757600080fd5b50604080518082019091526004815263086a48a760e31b602082015261024c565b34801561055457600080fd5b506102e66105633660046129aa565b611041565b34801561057457600080fd5b506102a3610583366004612852565b611151565b34801561059457600080fd5b506009546104ae906001600160a01b031681565b3480156105b457600080fd5b506102826105c33660046127cc565b61117e565b3480156105d457600080fd5b506102e66105e3366004612839565b61118b565b3480156105f457600080fd5b506015546102829060ff1681565b34801561060e57600080fd5b506102a361061d366004612a1b565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561065457600080fd5b506102e6610663366004612a49565b6112e8565b34801561067457600080fd5b506102e661068336600461286f565b611421565b34801561069457600080fd5b506102a36106a3366004612852565b601b6020526000908152604090205481565b3480156106c157600080fd5b506102e66106d0366004612852565b611498565b3480156106e157600080fd5b506102e66106f0366004612852565b611516565b60006107023384846115a7565b5060015b92915050565b60006107198484846116cb565b61076b843361076685604051806060016040528060288152602001612c3c602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906117fb565b6115a7565b5060015b9392505050565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016107a090612a9e565b60405180910390fd5b6013805462ff0000191662010000179055604051429033907f340c369ced7c3a65b67543c4f1e839173c42d01b38931b0c01b18c89a1d1ba4b90600090a3565b336000908152601b602052604090205481111561085e5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a2043616e6e6f7420756e7374616b65206d6f7265207468616e2060448201526c185b5bdd5b9d081cdd185ad959609a1b60648201526084016107a0565b601d5460405163d8a9bf2960e01b8152336004820152602481018390526001600160a01b039091169063d8a9bf2990604401600060405180830381600087803b1580156108aa57600080fd5b505af11580156108be573d6000803e3d6000fd5b5050336000908152601b60205260409020546108dd9250905082611827565b336000908152601b6020526040902055601c546108fa9082611827565b601c556040514290829033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56890600090a450565b6000546001600160a01b031633146109595760405162461bcd60e51b81526004016107a090612a9e565b60006127108461096860015490565b6109729190612ad4565b61097c9190612aeb565b905060006127108461098d60015490565b6109979190612ad4565b6109a19190612aeb565b90506000612710846109b260015490565b6109bc9190612ad4565b6109c69190612aeb565b905060006109ea6103e86109e460056109de60015490565b90611833565b9061183f565b90508084101580156109fc5750808310155b8015610a085750808210155b610a725760405162461bcd60e51b815260206004820152603560248201527f45524332303a206d61782054587320616e64206d61782057616c6c65742063616044820152746e6e6f74206265206c657373207468616e202e352560581b60648201526084016107a0565b6002849055600383905560048290556040514281528390839086907fbd5acdd9cd7346c04cee822893f228a65a948bc41357408255ab8f36c446349f9060200160405180910390a450505050505050565b6000546001600160a01b03163314610aed5760405162461bcd60e51b81526004016107a090612a9e565b6001600160a01b038216600081815260076020526040808220805462ff0000191662010000861515908102919091179091559051429391927ff61420caae4661cdd9554a2c8b6c89fc9f30f94abccb1da76abb2ec99783821191a45050565b6000546001600160a01b03163314610b765760405162461bcd60e51b81526004016107a090612a9e565b60005b82811015610c47578160076000868685818110610b9857610b98612b0d565b9050602002016020810190610bad9190612852565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905542821515858584818110610beb57610beb612b0d565b9050602002016020810190610c009190612852565b6001600160a01b03167f06fc074ca2e419a387dc375c9b7c443ad8795d2ba416fa17bb4691ea4ba86ed560405160405180910390a480610c3f81612b23565b915050610b79565b50505050565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107a090612a9e565b6015805460ff1916911515919091179055565b6017805461ff001916610100179055610ca43330836115a7565b600854610cbc9033906001600160a01b0316836115a7565b610cc73330836116cb565b600854610cdf9030906001600160a01b0316836115a7565b610cea81343361184b565b336001600160a01b031634827f89d4d2ecc95200a080f69cea2131862ff53c70739a5db9ab0373fcdd09da746d42604051610d2791815260200190565b60405180910390a4506017805461ff0019169055565b6000546001600160a01b03163314610d675760405162461bcd60e51b81526004016107a090612a9e565b601354610100900460ff1615610dcf5760405162461bcd60e51b815260206004820152602760248201527f45524332303a2077686974656c69737420706572696f6420616c726561647920604482015266195b98589b195960ca1b60648201526084016107a0565b601380544260238190556024859055831515610100810262ffff001990931692909217620100001790925560405184907f0ce4d0131af8e20b17ec4635aadf58b43531a126375fbecb229e0ef13c761c5790600090a45050565b6000546001600160a01b03163314610e535760405162461bcd60e51b81526004016107a090612a9e565b6009546001600160a01b03838116911614801590610e7f57506008546001600160a01b03838116911614155b8015610e9457506001600160a01b0382163014155b8015610eab57506001600160a01b03821661dead14155b610ef75760405162461bcd60e51b815260206004820152601960248201527f45524332303a20696e656c696769626c6520616464726573730000000000000060448201526064016107a0565b6001600160a01b038216600081815260076020526040808220805461ff001916610100861515908102919091179091559051429391927fd1c5980b68c66e201f3a2b571fb898fa61a65a2c74c60690855730f86165d00d91a45050565b601e5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcb9190612b3c565b505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead60009081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600154919261103c9290916110369190611827565b90611827565b905090565b6000546001600160a01b0316331461106b5760405162461bcd60e51b81526004016107a090612a9e565b601f80546001600160a01b03199081166001600160a01b038881169182179093556020805483168885169081178255601e8054851689871690811790915560218054861689881690811790915560228054909616968816968717909555600084815260078452604080822080546201000062ff00001991821681179092558584528284208054821683179055978352818320805489168217905597825290819020805490961690961790945593514281529293927f358f3926f41536f5fa6926b5b6945502e5fdfb85b1876c473d06606ed0fae9ca910160405180910390a45050505050565b6001600160a01b0381166000908152601b6020908152604080832054600590925282205461070691611827565b60006107023384846116cb565b336000908152601b60209081526040808320546005909252909120546111b091611827565b8111156112175760405162461bcd60e51b815260206004820152602f60248201527f45524332303a2043616e6e6f74207374616b65206d6f7265207468616e20617660448201526e61696c61626c652062616c616e636560881b60648201526084016107a0565b601d5460405163773a0f0960e01b8152336004820152602481018390526001600160a01b039091169063773a0f0990604401600060405180830381600087803b15801561126357600080fd5b505af1158015611277573d6000803e3d6000fd5b5050336000908152601b602052604090205461129692509050826118fe565b336000908152601b6020526040902055601c546112b390826118fe565b601c556040514290829033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1590600090a450565b6000546001600160a01b031633146113125760405162461bcd60e51b81526004016107a090612a9e565b600a889055600b879055600e869055600d849055600c859055600f8390556010829055601181905560125461134890600561183f565b600f5411158015611368575060125461136290600561183f565b60105411155b8015611383575060125461137d90600561183f565b60115411155b6113db5760405162461bcd60e51b815260206004820152602360248201527f45524332303a20666565732063616e6e6f74206265206d6f7265207468616e2060448201526232302560e81b60648201526084016107a0565b4282847fdddb43af0ad29e5d9d3cb393fd94e8f11ac2c069da19545bac6ee6baf3ddc9898460405161140f91815260200190565b60405180910390a45050505050505050565b6000546001600160a01b0316331461144b5760405162461bcd60e51b81526004016107a090612a9e565b60188390556019829055601a8190556040514281528190839085907f3af591b474e55c209cfbc3da369b6762366e3015997314ac10bd5c3198d26fb39060200160405180910390a4505050565b6000546001600160a01b031633146114c25760405162461bcd60e51b81526004016107a090612a9e565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146115405760405162461bcd60e51b81526004016107a090612a9e565b601d80546001600160a01b0383166001600160a01b03199091168117909155600081815260076020526040808220805462ff0000191662010000179055514292917f23481943b6ef3dff645af874fbb24781bf224a02312f9cb308880e03e0a9ddee91a350565b6001600160a01b0383166116095760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107a0565b6001600160a01b03821661166a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107a0565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6116d683838361190a565b6116e08383611a49565b6116eb838383611bb1565b6116f6838383611dbd565b6117008383611ec3565b61170a8383612015565b611715838383612086565b6001600160a01b0383166000908152600560205260409020546117389082611827565b6001600160a01b03841660009081526005602052604081209190915561175e84846120ab565b6117685781611773565b6117738484846120fd565b6001600160a01b03841660009081526005602052604090205490915061179990826118fe565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ed9085815260200190565b60405180910390a350505050565b6000818484111561181f5760405162461bcd60e51b81526004016107a09190612766565b505050900390565b600061076f8284612b59565b600061076f8284612ad4565b600061076f8284612aeb565b6008546118639030906001600160a01b0316856115a7565b60085460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990849060c40160606040518083038185885af11580156118d1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118f69190612b6c565b505050505050565b600061076f8284612b9a565b6001600160a01b03831661196e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107a0565b6001600160a01b0382166119d05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107a0565b6001600160a01b038316600090815260056020526040902054811115610fcb5760405162461bcd60e51b815260206004820152602860248201527f45524332303a2062656c6f7720617661696c61626c652062616c616e636520746044820152671a1c995cda1bdb1960c21b60648201526084016107a0565b42611a616024546023546118fe90919063ffffffff16565b1015611a73576013805461ff00191690555b6001600160a01b03821660009081526007602052604090205462010000900460ff16158015611ac157506001600160a01b03811660009081526007602052604090205462010000900460ff16155b8015611ad55750601354610100900460ff16155b15611b325760135462010000900460ff16611b325760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f7420616c6c6f77656400000060448201526064016107a0565b601354610100900460ff168015611b51575060135462010000900460ff165b15611bad57611b608282612208565b15611bad5760405162461bcd60e51b815260206004820152601760248201527f45524332303a2057686974656c69737420506572696f6400000000000000000060448201526064016107a0565b5050565b6001600160a01b0383166000908152601b602052604090205415611c6a576001600160a01b038316600090815260056020908152604080832054601b90925290912054611bff9083906118fe565b1115611c6a5760405162461bcd60e51b815260206004820152603460248201527f45524332303a2065786365656473206d6178696d756d20616c6c6f776564206e60448201527337ba1031bab93932b73a363c9039ba30b5b2b21760611b60648201526084016107a0565b6009546001600160a01b03848116911614611d1e5760035481111580611cae57506001600160a01b03831660009081526007602052604090205462010000900460ff165b80611cd757506001600160a01b03821660009081526007602052604090205462010000900460ff165b611d1e5760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b60448201526064016107a0565b60025481111580611d4d57506001600160a01b03831660009081526007602052604090205462010000900460ff165b80611d7657506001600160a01b03821660009081526007602052604090205462010000900460ff165b610fcb5760405162461bcd60e51b8152602060048201526018602482015277115490cc8c0e881d1e081b1a5b5a5d08195e18d95959195960421b60448201526064016107a0565b6001600160a01b03831660009081526007602052604090205462010000900460ff16158015611e0b57506001600160a01b03821660009081526007602052604090205462010000900460ff16155b8015611e2557506009546001600160a01b03838116911614155b8015611e3c57506001600160a01b03821661dead14155b15610fcb576004546001600160a01b038316600090815260056020526040902054611e6790836118fe565b1115610fcb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60448201526437bab73a1760d91b60648201526084016107a0565b60155460ff168015611ef457506001600160a01b03821660009081526007602052604090205462010000900460ff16155b8015611f1f57506001600160a01b03811660009081526007602052604090205462010000900460ff16155b8015611f3957506009546001600160a01b03828116911614155b8015611f5057506001600160a01b03811661dead14155b8015611f6a57506008546001600160a01b03828116911614155b15611bad57326000908152601460205260409020544311611fff5760405162461bcd60e51b815260206004820152604360248201527f45524332303a205472616e736665722044656c617920656e61626c65642e204f60448201527f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f7760648201526232b21760e91b608482015260a4016107a0565b3260009081526014602052604090204390555050565b6009546001600160a01b03828116911614801561205157506001600160a01b03821660009081526007602052604090205462010000900460ff16155b80156120655750601754610100900460ff16155b15611bad5760016016600082825461207d9190612b9a565b90915550505050565b6120918383836122a4565b15610fcb576120a1601954612370565b6000601655505050565b6001600160a01b03821660009081526007602052604081205462010000900460ff1615801561076f5750506001600160a01b031660009081526007602052604090205462010000900460ff1615919050565b60008061210a8585612569565b11801561211f5750601754610100900460ff16155b156122015760006121416121338686612569565b6012546109de90869061183f565b3060009081526005602052604090205490915061215e90826118fe565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121af9085815260200190565b60405180910390a3600e54156121ef57602254600e546012546121ef9230926001600160a01b03909116916121ea91906109de90899061183f565b6116cb565b6121f98382611827565b91505061076f565b5092915050565b6001600160a01b03821660009081526007602052604081205460ff1615801561224a57506001600160a01b03821660009081526007602052604090205460ff16155b801561227557506001600160a01b03831660009081526007602052604090205462010000900460ff16155b801561076f5750506001600160a01b031660009081526007602052604090205462010000900460ff1615919050565b601a546019543060009081526005602052604081205460175491938510159211159060ff161580156122d8575060135460ff165b80156122ec575060135462010000900460ff165b80156122f55750815b801561232057506001600160a01b03861660009081526007602052604090205462010000900460ff16155b801561233957506009546001600160a01b038681169116145b8015612349575060185460165410155b80156123525750805b80156123665750601754610100900460ff16155b9695505050505050565b6001601760006101000a81548160ff02191690831515021790555060006123c060026109de600d546123ba600c546123ba600b546123ba6001600a546118fe90919063ffffffff16565b906118fe565b905060006123dd826109e4600a548661183390919063ffffffff16565b905060006123eb8483611827565b9050476123f782612614565b60006124034783611827565b9050600061242661241f600a548861182790919063ffffffff16565b839061183f565b9050600061243f600a548361183390919063ffffffff16565b905080156124605760205461246090879083906001600160a01b031661184b565b600b54600090612475906109de856002611833565b905080156124b957601f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156124b7573d6000803e3d6000fd5b505b600d546000906124ce906109de866002611833565b90508015612512576021546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612510573d6000803e3d6000fd5b505b471561255357601e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612551573d6000803e3d6000fd5b505b50506017805460ff191690555050505050505050565b6001600160a01b038216600090815260076020526040812054610100900460ff16806125b257506001600160a01b038216600090815260076020526040902054610100900460ff165b156125cc576012546125c5906064611827565b9050610706565b6009546001600160a01b03908116908316036125eb5750601054610706565b6009546001600160a01b039081169084160361260a5750600f54610706565b5060115492915050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061264957612649612b0d565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156126a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c69190612bad565b816001815181106126d9576126d9612b0d565b6001600160a01b0392831660209182029290920101526008546126ff91309116846115a7565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac94790612738908590600090869030904290600401612bca565b600060405180830381600087803b15801561275257600080fd5b505af11580156118f6573d6000803e3d6000fd5b600060208083528351808285015260005b8181101561279357858101830151858201604001528201612777565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146127c957600080fd5b50565b600080604083850312156127df57600080fd5b82356127ea816127b4565b946020939093013593505050565b60008060006060848603121561280d57600080fd5b8335612818816127b4565b92506020840135612828816127b4565b929592945050506040919091013590565b60006020828403121561284b57600080fd5b5035919050565b60006020828403121561286457600080fd5b813561076f816127b4565b60008060006060848603121561288457600080fd5b505081359360208301359350604090920135919050565b80151581146127c957600080fd5b600080604083850312156128bc57600080fd5b82356128c7816127b4565b915060208301356128d78161289b565b809150509250929050565b6000806000604084860312156128f757600080fd5b833567ffffffffffffffff8082111561290f57600080fd5b818601915086601f83011261292357600080fd5b81358181111561293257600080fd5b8760208260051b850101111561294757600080fd5b6020928301955093505084013561295d8161289b565b809150509250925092565b60006020828403121561297a57600080fd5b813561076f8161289b565b6000806040838503121561299857600080fd5b8235915060208301356128d78161289b565b600080600080600060a086880312156129c257600080fd5b85356129cd816127b4565b945060208601356129dd816127b4565b935060408601356129ed816127b4565b925060608601356129fd816127b4565b91506080860135612a0d816127b4565b809150509295509295909350565b60008060408385031215612a2e57600080fd5b8235612a39816127b4565b915060208301356128d7816127b4565b600080600080600080600080610100898b031215612a6657600080fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761070657610706612abe565b600082612b0857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201612b3557612b35612abe565b5060010190565b600060208284031215612b4e57600080fd5b815161076f8161289b565b8181038181111561070657610706612abe565b600080600060608486031215612b8157600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561070657610706612abe565b600060208284031215612bbf57600080fd5b815161076f816127b4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612c1a5784516001600160a01b031683529383019391830191600101612bf5565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122015d1f9e438c00178998e8d8ef2ecad959d9d46f527202ce6bfdb3a508f85729164736f6c63430008120033

Deployed Bytecode Sourcemap

4560:19610:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9562:67;;;;;;;;;;-1:-1:-1;9622:5:0;;;;;;;;;;;;-1:-1:-1;;;9622:5:0;;;;9562:67;;;;;;;:::i;:::-;;;;;;;;10346:133;;;;;;;;;;-1:-1:-1;10346:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10346:133:0;1023:187:1;9869:84:0;;;;;;;;;;-1:-1:-1;9939:12:0;;9869:84;;;1361:25:1;;;1349:2;1334:18;9869:84:0;1215:177:1;23515:309:0;;;;;;;;;;-1:-1:-1;23515:309:0;;;;;:::i;:::-;;:::i;20493:142::-;;;;;;;;;;;;;:::i;:::-;;12295:408;;;;;;;;;;-1:-1:-1;12295:408:0;;;;;:::i;:::-;;:::i;3152:87::-;;;;;;;;;;-1:-1:-1;3152:87:0;;;;;:::i;:::-;3207:4;3232:5;-1:-1:-1;;;;;3221:16:0;;;3232:5;;3221:16;;3152:87;9712:67;;;;;;;;;;-1:-1:-1;9712:67:0;;4782:1;2437:36:1;;2425:2;2410:18;9712:67:0;2295:184:1;14675:626:0;;;;;;;;;;-1:-1:-1;14675:626:0;;;;;:::i;:::-;;:::i;21232:202::-;;;;;;;;;;-1:-1:-1;21232:202:0;;;;;:::i;:::-;;:::i;13187:256::-;;;;;;;;;;-1:-1:-1;13187:256:0;;;;;:::i;:::-;;:::i;9959:103::-;;;;;;;;;;-1:-1:-1;9959:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;10042:18:0;10025:7;10042:18;;;:9;:18;;;;;;;9959:103;15309:108;;;;;;;;;;-1:-1:-1;15309:108:0;;;;;:::i;:::-;;:::i;21925:474::-;;;;;;:::i;:::-;;:::i;4993:63::-;;;;;;;;;;;;;;;;4924:62;;;;;;;;;;;;;;;;4857:60;;;;;;;;;;;;;;;;6412:26;;;;;;;;;;;;;;;;12777:402;;;;;;;;;;-1:-1:-1;12777:402:0;;;;;:::i;:::-;;:::i;9785:78::-;;;;;;;;;;-1:-1:-1;9837:7:0;9855:5;-1:-1:-1;;;;;9855:5:0;9785:78;;;-1:-1:-1;;;;;4794:32:1;;;4776:51;;4764:2;4749:18;9785:78:0;4630:203:1;14316:351:0;;;;;;;;;;-1:-1:-1;14316:351:0;;;;;:::i;:::-;;:::i;21442:140::-;;;;;;;;;;-1:-1:-1;21442:140:0;;;;;:::i;:::-;;:::i;10616:138::-;;;;;;;;;;;;;:::i;9635:71::-;;;;;;;;;;-1:-1:-1;9697:7:0;;;;;;;;;;;;-1:-1:-1;;;9697:7:0;;;;9635:71;;20643:581;;;;;;;;;;-1:-1:-1;20643:581:0;;;;;:::i;:::-;;:::i;10485:125::-;;;;;;;;;;-1:-1:-1;10485:125:0;;;;;:::i;:::-;;:::i;5328:19::-;;;;;;;;;;-1:-1:-1;5328:19:0;;;;-1:-1:-1;;;;;5328:19:0;;;10068:139;;;;;;;;;;-1:-1:-1;10068:139:0;;;;;:::i;:::-;;:::i;11853:434::-;;;;;;;;;;-1:-1:-1;11853:434:0;;;;;:::i;:::-;;:::i;5897:39::-;;;;;;;;;;-1:-1:-1;5897:39:0;;;;;;;;10213:127;;;;;;;;;;-1:-1:-1;10213:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10311:18:0;;;10294:7;10311:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10213:127;13686:622;;;;;;;;;;-1:-1:-1;13686:622:0;;;;;:::i;:::-;;:::i;21590:327::-;;;;;;;;;;-1:-1:-1;21590:327:0;;;;;:::i;:::-;;:::i;6358:47::-;;;;;;;;;;-1:-1:-1;6358:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;3245:111;;;;;;;;;;-1:-1:-1;3245:111:0;;;;;:::i;:::-;;:::i;13451:227::-;;;;;;;;;;-1:-1:-1;13451:227:0;;;;;:::i;:::-;;:::i;10346:133::-;10421:4;10428:37;10437:10;10449:7;10458:6;10428:8;:37::i;:::-;-1:-1:-1;10473:4:0;10346:133;;;;;:::o;23515:309::-;23613:4;23630:36;23640:6;23648:9;23659:6;23630:9;:36::i;:::-;23677:117;23686:6;23694:10;23706:87;23742:6;23706:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23706:19:0;;;;;;:11;:19;;;;;;;;23726:10;23706:31;;;;;;;;;:87;:35;:87::i;:::-;23677:8;:117::i;:::-;-1:-1:-1;23812:4:0;23515:309;;;;;;:::o;20493:142::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;;;;;;;;;20547:14:::1;:21:::0;;-1:-1:-1;;20547:21:0::1;::::0;::::1;::::0;;20584:43:::1;::::0;20611:15:::1;::::0;20599:10:::1;::::0;20584:43:::1;::::0;20547:21;;20584:43:::1;20493:142::o:0;12295:408::-;12389:10;12376:24;;;;:12;:24;;;;;;12366:34;;;12358:92;;;;-1:-1:-1;;;12358:92:0;;7511:2:1;12358:92:0;;;7493:21:1;7550:2;7530:18;;;7523:30;7589:34;7569:18;;;7562:62;-1:-1:-1;;;7640:18:1;;;7633:43;7693:19;;12358:92:0;7309:409:1;12358:92:0;12461:15;;:51;;-1:-1:-1;;;12461:51:0;;12493:10;12461:51;;;7897::1;7964:18;;;7957:34;;;-1:-1:-1;;;;;12461:15:0;;;;:31;;7870:18:1;;12461:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12563:10:0;12550:24;;;;:12;:24;;;;;;:36;;-1:-1:-1;12550:24:0;-1:-1:-1;12579:6:0;12550:28;:36::i;:::-;12536:10;12523:24;;;;:12;:24;;;;;:63;12611:11;;:23;;12627:6;12611:15;:23::i;:::-;12597:11;:37;12650:45;;12679:15;;12671:6;;12659:10;;12650:45;;;;;12295:408;:::o;14675:626::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;14775:13:::1;14816:5;14808:4;14792:13;9939:12:::0;;;9869:84;14792:13:::1;:20;;;;:::i;:::-;14791:30;;;;:::i;:::-;14775:46;;14823:19;14872:5;14862:6;14846:13;9939:12:::0;;;9869:84;14846:13:::1;:22;;;;:::i;:::-;14845:32;;;;:::i;:::-;14823:54;;14888:17;14936:5;14925:7;14909:13;9939:12:::0;;;9869:84;14909:13:::1;:23;;;;:::i;:::-;14908:33;;;;:::i;:::-;14888:53;;14943:13;14959:30;14984:4;14959:20;14977:1;14959:13;9939:12:::0;;;9869:84;14959:13:::1;:17:::0;::::1;:20::i;:::-;:24:::0;::::1;:30::i;:::-;14943:46;;15017:5;15008;:14;;:38;;;;;15041:5;15026:11;:20;;15008:38;:60;;;;;15063:5;15050:9;:18;;15008:60;15000:126;;;::::0;-1:-1:-1;;;15000:126:0;;8731:2:1;15000:126:0::1;::::0;::::1;8713:21:1::0;8770:2;8750:18;;;8743:30;8809:34;8789:18;;;8782:62;-1:-1:-1;;;8860:18:1;;;8853:51;8921:19;;15000:126:0::1;8529:417:1::0;15000:126:0::1;15137:12;:20:::0;;;15159:14:::1;:28:::0;;;15189:15:::1;:27:::0;;;15232:61:::1;::::0;15277:15:::1;1361:25:1::0;;15159:28:0;;15189:27;;15137:20;;15232:61:::1;::::0;1349:2:1;1334:18;15232:61:0::1;;;;;;;14764:537;;;;14675:626:::0;;;:::o;21232:202::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21316:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;:42;;-1:-1:-1;;21316:42:0::1;::::0;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;21374:52;;21410:15:::1;::::0;21316:42;;21374:52:::1;::::0;::::1;21232:202:::0;;:::o;13187:256::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;13287:6:::1;13283:153;13297:20:::0;;::::1;13283:153;;;13362:5;13324:11;:25;13336:9;;13346:1;13336:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13324:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13324:25:0;:43;;-1:-1:-1;;13324:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13418:15:::1;13383:51:::0;::::1;;13397:9:::0;;13407:1;13397:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13383:51:0::1;;;;;;;;;;;13319:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13283:153;;;;13187:256:::0;;;:::o;15309:108::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;15379:20:::1;:30:::0;;-1:-1:-1;;15379:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15309:108::o;21925:474::-;6063:12;:19;;-1:-1:-1;;6063:19:0;;;;;22015:48:::1;22024:10;22044:4;22051:11:::0;22015:8:::1;:48::i;:::-;22103:6;::::0;22074:50:::1;::::0;22083:10:::1;::::0;-1:-1:-1;;;;;22103:6:0::1;22112:11:::0;22074:8:::1;:50::i;:::-;22135:49;22145:10;22165:4;22172:11;22135:9;:49::i;:::-;22227:6;::::0;22195:53:::1;::::0;22212:4:::1;::::0;-1:-1:-1;;;;;22227:6:0::1;22236:11:::0;22195:8:::1;:53::i;:::-;22259:48;22272:11;22285:9;22296:10;22259:12;:48::i;:::-;22363:10;-1:-1:-1::0;;;;;22323:68:0::1;22352:9;22339:11;22323:68;22375:15;22323:68;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;22323:68:0::1;;;;;;;;-1:-1:-1::0;6087:12:0;:20;;-1:-1:-1;;6087:20:0;;;21925:474::o;12777:402::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;12895:16:::1;::::0;::::1;::::0;::::1;;;12894:17;12886:69;;;::::0;-1:-1:-1;;;12886:69:0;;9425:2:1;12886:69:0::1;::::0;::::1;9407:21:1::0;9464:2;9444:18;;;9437:30;9503:34;9483:18;;;9476:62;-1:-1:-1;;;9554:18:1;;;9547:37;9601:19;;12886:69:0::1;9223:403:1::0;12886:69:0::1;12966:14;:21:::0;;13002:15:::1;12989:10;:28:::0;;;13029:13:::1;:30:::0;;;13061:36;::::1;;12966:21;13061:36:::0;::::1;-1:-1:-1::0;;13061:36:0;;;;;;;12966:21;13061:36;;;;13113:58:::1;::::0;13045:14;;13113:58:::1;::::0;12966:21;;13113:58:::1;12777:402:::0;;:::o;14316:351::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;14425:4:::1;::::0;-1:-1:-1;;;;;14405:25:0;;::::1;14425:4:::0;::::1;14405:25;::::0;::::1;::::0;:56:::1;;-1:-1:-1::0;14454:6:0::1;::::0;-1:-1:-1;;;;;14434:27:0;;::::1;14454:6:::0;::::1;14434:27;;14405:56;:85;;;;-1:-1:-1::0;;;;;;14465:25:0;::::1;14485:4;14465:25;;14405:85;:114;;;;-1:-1:-1::0;;;;;;14494:25:0;::::1;6532:42;14494:25;;14405:114;14397:152;;;::::0;-1:-1:-1;;;14397:152:0;;9833:2:1;14397:152:0::1;::::0;::::1;9815:21:1::0;9872:2;9852:18;;;9845:30;9911:27;9891:18;;;9884:55;9956:18;;14397:152:0::1;9631:349:1::0;14397:152:0::1;-1:-1:-1::0;;;;;14560:21:0;::::1;;::::0;;;:11:::1;:21;::::0;;;;;:38;;-1:-1:-1;;14560:38:0::1;;::::0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;14614:45;;14643:15:::1;::::0;14560:38;;14614:45:::1;::::0;::::1;14316:351:::0;;:::o;21442:140::-;21544:20;;21518:56;;-1:-1:-1;;;21518:56:0;;-1:-1:-1;;;;;21544:20:0;;;21518:56;;;7897:51:1;7964:18;;;7957:34;;;21518:25:0;;;;;;7870:18:1;;21518:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21442:140;;:::o;10616:138::-;10042:9;:18;;;;6532:42;10675:7;10042:18;;;;;10692:12;;10675:7;;10692:60;;10042:18;;10692:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;10685:67;;10616:138;:::o;20643:581::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;20799:18:::1;:31:::0;;-1:-1:-1;;;;;;20799:31:0;;::::1;-1:-1:-1::0;;;;;20799:31:0;;::::1;::::0;;::::1;::::0;;;20832:18:::1;:31:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;20865:20:::1;:35:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;20902:16:::1;:27:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;20931:14:::1;:23:::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20965:23:0;;;:11:::1;:23:::0;;;;;;:40;;;-1:-1:-1;;20965:40:0;;::::1;::::0;::::1;::::0;;;21007:23;;;;;;:40;;;::::1;::::0;::::1;::::0;;21049:21;;;;;;:38;;;::::1;::::0;::::1;::::0;;21089:19;;;;;;;:36;;;;::::1;::::0;;::::1;::::0;;;21141:75;;21200:15:::1;1361:25:1::0;;20865:35:0;;20832:31;21141:75:::1;::::0;1334:18:1;21141:75:0::1;;;;;;;20643:581:::0;;;;;:::o;10485:125::-;-1:-1:-1;;;;;10587:20:0;;10548:7;10587:20;;;:12;:20;;;;;;;;;10565:9;:17;;;;;;:43;;:21;:43::i;10068:139::-;10146:4;10153:40;10163:10;10175:9;10186:6;10153:9;:40::i;11853:434::-;11972:10;11959:24;;;;:12;:24;;;;;;;;;11933:9;:21;;;;;;;:51;;:25;:51::i;:::-;11923:6;:61;;11915:121;;;;-1:-1:-1;;;11915:121:0;;10437:2:1;11915:121:0;;;10419:21:1;10476:2;10456:18;;;10449:30;10515:34;10495:18;;;10488:62;-1:-1:-1;;;10566:18:1;;;10559:45;10621:19;;11915:121:0;10235:411:1;11915:121:0;12047:15;;:50;;-1:-1:-1;;;12047:50:0;;12078:10;12047:50;;;7897:51:1;7964:18;;;7957:34;;;-1:-1:-1;;;;;12047:15:0;;;;:30;;7870:18:1;;12047:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12148:10:0;12135:24;;;;:12;:24;;;;;;:36;;-1:-1:-1;12135:24:0;-1:-1:-1;12164:6:0;12135:28;:36::i;:::-;12121:10;12108:24;;;;:12;:24;;;;;:63;12196:11;;:23;;12212:6;12196:15;:23::i;:::-;12182:11;:37;12235:44;;12263:15;;12255:6;;12243:10;;12235:44;;;;;11853:434;:::o;13686:622::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;13881:12:::1;:25:::0;;;13908:12:::1;:25:::0;;;13935:8:::1;:17:::0;;;13954:10:::1;:21:::0;;;13986:14:::1;:29:::0;;;14017:8:::1;:17:::0;;;14036:7:::1;:15:::0;;;14053:11:::1;:20:::0;;;14104:11:::1;::::0;:18:::1;::::0;14120:1:::1;14104:15;:18::i;:::-;14092:8;;:30;;:63;;;;-1:-1:-1::0;14137:11:0::1;::::0;:18:::1;::::0;14153:1:::1;14137:15;:18::i;:::-;14126:7;;:29;;14092:63;:100;;;;-1:-1:-1::0;14174:11:0::1;::::0;:18:::1;::::0;14190:1:::1;14174:15;:18::i;:::-;14159:11;;:33;;14092:100;14084:148;;;::::0;-1:-1:-1;;;14084:148:0;;10853:2:1;14084:148:0::1;::::0;::::1;10835:21:1::0;10892:2;10872:18;;;10865:30;10931:34;10911:18;;;10904:62;-1:-1:-1;;;10982:18:1;;;10975:33;11025:19;;14084:148:0::1;10651:399:1::0;14084:148:0::1;14284:15;14269:5;14261:6;14248:52;14276:6;14248:52;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;14248:52:0::1;;;;;;;;13686:622:::0;;;;;;;;:::o;21590:327::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;21719:10:::1;:24:::0;;;21745:13:::1;:30:::0;;;21777:14:::1;:32:::0;;;21825:82:::1;::::0;21891:15:::1;1361:25:1::0;;21777:32:0;;21745:30;;21719:24;;21825:82:::1;::::0;1349:2:1;1334:18;21825:82:0::1;;;;;;;21590:327:::0;;;:::o;3245:111::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;3311:5:::1;:11:::0;;-1:-1:-1;;;;;;3311:11:0::1;-1:-1:-1::0;;;;;3311:11:0;::::1;::::0;;::::1;::::0;;;3329:25:::1;::::0;4776:51:1;;;3329:25:0::1;::::0;4764:2:1;4749:18;3329:25:0::1;;;;;;;3245:111:::0;:::o;13451:227::-;3207:4;3232:5;-1:-1:-1;;;;;3232:5:0;3119:10;3221:16;3103:38;;;;-1:-1:-1;;;3103:38:0;;;;;;;:::i;:::-;13526:15:::1;:44:::0;;-1:-1:-1;;;;;13526:44:0;::::1;-1:-1:-1::0;;;;;;13526:44:0;;::::1;::::0;::::1;::::0;;;:15:::1;13572:21:::0;;;:11:::1;:21;::::0;;;;;:38;;-1:-1:-1;;13572:38:0::1;::::0;::::1;::::0;;13626:44;13654:15:::1;::::0;13526:44;13626::::1;::::0;::::1;13451:227:::0;:::o;23832:335::-;-1:-1:-1;;;;;23925:19:0;;23917:68;;;;-1:-1:-1;;;23917:68:0;;11473:2:1;23917:68:0;;;11455:21:1;11512:2;11492:18;;;11485:30;11551:34;11531:18;;;11524:62;-1:-1:-1;;;11602:18:1;;;11595:34;11646:19;;23917:68:0;11271:400:1;23917:68:0;-1:-1:-1;;;;;24004:21:0;;23996:68;;;;-1:-1:-1;;;23996:68:0;;11878:2:1;23996:68:0;;;11860:21:1;11917:2;11897:18;;;11890:30;11956:34;11936:18;;;11929:62;-1:-1:-1;;;12007:18:1;;;12000:32;12049:19;;23996:68:0;11676:398:1;23996:68:0;-1:-1:-1;;;;;24075:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24127:32;;1361:25:1;;;24127:32:0;;1334:18:1;24127:32:0;;;;;;;23832:335;;;:::o;11116:729::-;11205:37;11216:6;11224:9;11235:6;11205:10;:37::i;:::-;11253:38;11273:6;11281:9;11253:19;:38::i;:::-;11302:39;11315:6;11323:9;11334:6;11302:12;:39::i;:::-;11352:41;11367:6;11375:9;11386:6;11352:14;:41::i;:::-;11404:34;11420:6;11428:9;11404:15;:34::i;:::-;11449:35;11466:6;11474:9;11449:16;:35::i;:::-;11495;11504:6;11512:9;11523:6;11495:8;:35::i;:::-;-1:-1:-1;;;;;11561:17:0;;;;;;:9;:17;;;;;;:29;;11583:6;11561:21;:29::i;:::-;-1:-1:-1;;;;;11541:17:0;;;;;;:9;:17;;;;;:49;;;;11626:32;11551:6;11648:9;11626:13;:32::i;:::-;:78;;11698:6;11626:78;;;11661:34;11669:6;11677:9;11688:6;11661:7;:34::i;:::-;-1:-1:-1;;;;;11738:20:0;;;;;;:9;:20;;;;;;11601:103;;-1:-1:-1;11738:40:0;;11601:103;11738:24;:40::i;:::-;-1:-1:-1;;;;;11715:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11794:43;;;;;;;;;;11822:14;1361:25:1;;1349:2;1334:18;;1215:177;11794:43:0;;;;;;;;11194:651;11116:729;;;:::o;1484:162::-;1570:7;1616:12;1608:6;;;;1600:29;;;;-1:-1:-1;;;1600:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1638:5:0;;;1484:162::o;271:82::-;329:7;346:5;350:1;346;:5;:::i;359:82::-;417:7;434:5;438:1;434;:5;:::i;447:82::-;505:7;522:5;526:1;522;:5;:::i;19026:360::-;19157:6;;19125:53;;19142:4;;-1:-1:-1;;;;;19157:6:0;19166:11;19125:8;:53::i;:::-;19189:6;;:189;;-1:-1:-1;;;19189:189:0;;19252:4;19189:189;;;12553:34:1;12603:18;;;12596:34;;;19189:6:0;12646:18:1;;;12639:34;;;12689:18;;;12682:34;-1:-1:-1;;;;;12753:15:1;;;12732:19;;;12725:44;19362:15:0;12785:19:1;;;12778:35;19189:6:0;;;;:22;;19219:9;;12487:19:1;;19189:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19026:360;;;:::o;183:82::-;241:7;258:5;262:1;258;:5;:::i;10762:346::-;-1:-1:-1;;;;;10866:20:0;;10858:70;;;;-1:-1:-1;;;10858:70:0;;13467:2:1;10858:70:0;;;13449:21:1;13506:2;13486:18;;;13479:30;13545:34;13525:18;;;13518:62;-1:-1:-1;;;13596:18:1;;;13589:35;13641:19;;10858:70:0;13265:401:1;10858:70:0;-1:-1:-1;;;;;10947:23:0;;10939:71;;;;-1:-1:-1;;;10939:71:0;;13873:2:1;10939:71:0;;;13855:21:1;13912:2;13892:18;;;13885:30;13951:34;13931:18;;;13924:62;-1:-1:-1;;;14002:18:1;;;13995:33;14045:19;;10939:71:0;13671:399:1;10939:71:0;-1:-1:-1;;;;;10042:18:0;;10025:7;10042:18;;;:9;:18;;;;;;11029:6;:27;;11021:79;;;;-1:-1:-1;;;11021:79:0;;14277:2:1;11021:79:0;;;14259:21:1;14316:2;14296:18;;;14289:30;14355:34;14335:18;;;14328:62;-1:-1:-1;;;14406:18:1;;;14399:38;14454:19;;11021:79:0;14075:404:1;15425:456:0;15544:15;15512:29;15527:13;;15512:10;;:14;;:29;;;;:::i;:::-;:47;15509:78;;;15561:16;:24;;-1:-1:-1;;15561:24:0;;;15509:78;-1:-1:-1;;;;;15601:19:0;;;;;;:11;:19;;;;;:29;;;;;;15600:30;:67;;;;-1:-1:-1;;;;;;15635:22:0;;;;;;:11;:22;;;;;:32;;;;;;15634:33;15600:67;:88;;;;-1:-1:-1;15672:16:0;;;;;;;15671:17;15600:88;15597:151;;;15698:14;;;;;;;15690:56;;;;-1:-1:-1;;;15690:56:0;;14686:2:1;15690:56:0;;;14668:21:1;14725:2;14705:18;;;14698:30;14764:31;14744:18;;;14737:59;14813:18;;15690:56:0;14484:353:1;15690:56:0;15761:16;;;;;;;:34;;;;-1:-1:-1;15781:14:0;;;;;;;15761:34;15758:116;;;15806:38;15826:6;15834:9;15806:19;:38::i;:::-;15805:39;15797:75;;;;-1:-1:-1;;;15797:75:0;;15044:2:1;15797:75:0;;;15026:21:1;15083:2;15063:18;;;15056:30;15122:25;15102:18;;;15095:53;15165:18;;15797:75:0;14842:347:1;15797:75:0;15425:456;;:::o;17231:565::-;-1:-1:-1;;;;;17332:20:0;;17363:1;17332:20;;;:12;:20;;;;;;:33;17329:160;;-1:-1:-1;;;;;17413:17:0;;;;;;:9;:17;;;;;;;;;17387:12;:20;;;;;;;17376:32;;:6;;:10;:32::i;:::-;17375:55;;17367:120;;;;-1:-1:-1;;;17367:120:0;;15396:2:1;17367:120:0;;;15378:21:1;15435:2;15415:18;;;15408:30;15474:34;15454:18;;;15447:62;-1:-1:-1;;;15525:18:1;;;15518:50;15585:19;;17367:120:0;15194:416:1;17367:120:0;17512:4;;-1:-1:-1;;;;;17502:14:0;;;17512:4;;17502:14;17499:151;;17536:14;;17526:6;:24;;:57;;;-1:-1:-1;;;;;;17554:19:0;;;;;;:11;:19;;;;;:29;;;;;;17526:57;:93;;;-1:-1:-1;;;;;;17587:22:0;;;;;;:11;:22;;;;;:32;;;;;;17526:93;17518:130;;;;-1:-1:-1;;;17518:130:0;;15817:2:1;17518:130:0;;;15799:21:1;15856:2;15836:18;;;15829:30;-1:-1:-1;;;15875:18:1;;;15868:54;15939:18;;17518:130:0;15615:348:1;17518:130:0;17678:12;;17668:6;:22;;:55;;;-1:-1:-1;;;;;;17694:19:0;;;;;;:11;:19;;;;;:29;;;;;;17668:55;:91;;;-1:-1:-1;;;;;;17727:22:0;;;;;;:11;:22;;;;;:32;;;;;;17668:91;17660:128;;;;-1:-1:-1;;;17660:128:0;;15817:2:1;17660:128:0;;;15799:21:1;15856:2;15836:18;;;15829:30;-1:-1:-1;;;15875:18:1;;;15868:54;15939:18;;17660:128:0;15615:348:1;16158:358:0;-1:-1:-1;;;;;16262:19:0;;;;;;:11;:19;;;;;:29;;;;;;16261:30;:67;;;;-1:-1:-1;;;;;;16296:22:0;;;;;;:11;:22;;;;;:32;;;;;;16295:33;16261:67;:97;;;;-1:-1:-1;16353:4:0;;-1:-1:-1;;;;;16332:26:0;;;16353:4;;16332:26;;16261:97;:127;;;;-1:-1:-1;;;;;;16362:26:0;;6532:42;16362:26;;16261:127;16258:251;;;16450:15;;-1:-1:-1;;;;;16413:20:0;;;;;;:9;:20;;;;;;:32;;16438:6;16413:24;:32::i;:::-;16412:53;;16404:103;;;;-1:-1:-1;;;16404:103:0;;16170:2:1;16404:103:0;;;16152:21:1;16209:2;16189:18;;;16182:30;16248:34;16228:18;;;16221:62;-1:-1:-1;;;16299:18:1;;;16292:35;16344:19;;16404:103:0;15968:401:1;16524:505:0;16607:20;;;;:54;;;;-1:-1:-1;;;;;;16632:19:0;;;;;;:11;:19;;;;;:29;;;;;;16631:30;16607:54;:91;;;;-1:-1:-1;;;;;;16666:22:0;;;;;;:11;:22;;;;;:32;;;;;;16665:33;16607:91;:121;;;;-1:-1:-1;16723:4:0;;-1:-1:-1;;;;;16702:26:0;;;16723:4;;16702:26;;16607:121;:164;;;;-1:-1:-1;;;;;;16745:26:0;;6532:42;16745:26;;16607:164;:196;;;;-1:-1:-1;16796:6:0;;-1:-1:-1;;;;;16775:28:0;;;16796:6;;16775:28;;16607:196;16604:418;;;16853:9;16831:32;;;;:21;:32;;;;;;16866:12;-1:-1:-1;16823:127:0;;;;-1:-1:-1;;;16823:127:0;;16576:2:1;16823:127:0;;;16558:21:1;16615:2;16595:18;;;16588:30;16654:34;16634:18;;;16627:62;16725:34;16705:18;;;16698:62;-1:-1:-1;;;16776:19:1;;;16769:34;16820:19;;16823:127:0;16374:471:1;16823:127:0;16995:9;16973:32;;;;:21;:32;;;;;17008:12;16973:47;;16524:505;;:::o;17037:186::-;17134:4;;-1:-1:-1;;;;;17121:17:0;;;17134:4;;17121:17;:51;;;;-1:-1:-1;;;;;;17143:19:0;;;;;;:11;:19;;;;;:29;;;;;;17142:30;17121:51;:68;;;;-1:-1:-1;17177:12:0;;;;;;;17176:13;17121:68;17118:98;;;17212:1;17191:9;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;17037:186:0;;:::o;20284:197::-;20376:41;20391:6;20399:9;20410:6;20376:14;:41::i;:::-;20373:101;;;20419:29;20434:13;;20419:14;:29::i;:::-;20470:1;20450:9;:22;20284:197;;;:::o;22407:180::-;-1:-1:-1;;;;;22513:19:0;;22488:4;22513:19;;;:11;:19;;;;;:29;;;;;;22512:30;:67;;;;-1:-1:-1;;;;;;;22547:22:0;;;;;:11;:22;;;;;:32;;;;;;22546:33;;22407:180;-1:-1:-1;22407:180:0:o;22932:575::-;23018:7;23074:1;23041:30;23053:6;23061:9;23041:11;:30::i;:::-;:34;:51;;;;-1:-1:-1;23080:12:0;;;;;;;23079:13;23041:51;23038:447;;;23104:17;23124:59;23152:30;23164:6;23172:9;23152:11;:30::i;:::-;23135:11;;23124:23;;:6;;:10;:23::i;:59::-;23239:4;23221:24;;;;:9;:24;;;;;;23104:79;;-1:-1:-1;23221:39:0;;23104:79;23221:28;:39::i;:::-;23212:4;23194:24;;;;:9;:24;;;;;;;:66;;;;23276:42;;-1:-1:-1;;;;;23276:42:0;;;;;;;23308:9;1361:25:1;;1349:2;1334:18;;1215:177;23276:42:0;;;;;;;;23332:8;;:21;23329:116;;23388:14;;23433:8;;23416:11;;23355:88;;23373:4;;-1:-1:-1;;;;;23388:14:0;;;;23405:37;;23433:8;23405:23;;:6;;:10;:23::i;:37::-;23355:9;:88::i;:::-;23462:21;:6;23473:9;23462:10;:21::i;:::-;23455:28;;;;;23038:447;-1:-1:-1;23493:6:0;22932:575;-1:-1:-1;;22932:575:0:o;15893:257::-;-1:-1:-1;;;;;16005:19:0;;15980:4;16005:19;;;:11;:19;;;;;:29;;;16004:30;:67;;;;-1:-1:-1;;;;;;16039:22:0;;;;;;:11;:22;;;;;:32;;;16038:33;16004:67;:101;;;;-1:-1:-1;;;;;;16076:19:0;;;;;;:11;:19;;;;;:29;;;;;;16075:30;16004:101;:138;;;;-1:-1:-1;;;;;;;16110:22:0;;;;;:11;:22;;;;;:32;;;;;;16109:33;;15893:257;-1:-1:-1;15893:257:0:o;19836:440::-;19977:14;;20052:13;;20042:4;19934;10042:18;;;:9;:18;;;;;;20084:8;;19934:4;;19967:24;;;;-1:-1:-1;20024:41:0;;20084:8;;20083:9;:24;;;;-1:-1:-1;20096:11:0;;;;20083:24;:42;;;;-1:-1:-1;20111:14:0;;;;;;;20083:42;:54;;;;;20129:8;20083:54;:88;;;;-1:-1:-1;;;;;;20142:19:0;;;;;;:11;:19;;;;;:29;;;;;;20141:30;20083:88;:123;;;;-1:-1:-1;20202:4:0;;-1:-1:-1;;;;;20189:17:0;;;20202:4;;20189:17;20083:123;:150;;;;;20223:10;;20210:9;;:23;;20083:150;:168;;;;;20237:14;20083:168;:185;;;;-1:-1:-1;20256:12:0;;;;;;;20255:13;20083:185;20076:192;19836:440;-1:-1:-1;;;;;;19836:440:0:o;17804:1214::-;6325:4;6314:8;;:15;;;;;;;;;;;;;;;;;;17875:20:::1;17898:82;17978:1;17899:73;17961:10;;17899:57;17941:14;;17899:37;17923:12;;17899:19;17916:1;17899:12;;:16;;:19;;;;:::i;:::-;:23:::0;::::1;:37::i;17898:82::-;17875:105;;17991:32;18026:42;18055:12;18026:24;18037:12;;18026:6;:10;;:24;;;;:::i;:42::-;17991:77:::0;-1:-1:-1;18079:14:0::1;18096:36;:6:::0;17991:77;18096:10:::1;:36::i;:::-;18079:53:::0;-1:-1:-1;18168:21:0::1;18200:24;18079:53:::0;18200:16:::1;:24::i;:::-;18235:20;18258:41;:21;18284:14:::0;18258:25:::1;:41::i;:::-;18235:64;;18310:19;18331:48;18348:30;18365:12;;18348;:16;;:30;;;;:::i;:::-;18331:12:::0;;:16:::1;:48::i;:::-;18310:69;;18390:29;18422;18438:12;;18422:11;:15;;:29;;;;:::i;:::-;18390:61:::0;-1:-1:-1;18465:34:0;;18462:123:::1;;18563:18;::::0;18501:81:::1;::::0;18514:24;;18540:21;;-1:-1:-1;;;;;18563:18:0::1;18501:12;:81::i;:::-;18644:12;::::0;18595:23:::1;::::0;18621:36:::1;::::0;:18:::1;:11:::0;18637:1:::1;18621:15;:18::i;:36::-;18595:62:::0;-1:-1:-1;18671:19:0;;18668:79:::1;;18700:18;::::0;18692:53:::1;::::0;-1:-1:-1;;;;;18700:18:0;;::::1;::::0;18692:53;::::1;;;::::0;18729:15;;18700:18:::1;18692:53:::0;18700:18;18692:53;18729:15;18700:18;18692:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18668:79;18804:10;::::0;18757:21:::1;::::0;18781:34:::1;::::0;:18:::1;:11:::0;18797:1:::1;18781:15;:18::i;:34::-;18757:58:::0;-1:-1:-1;18829:17:0;;18826:73:::1;;18856:16;::::0;18848:49:::1;::::0;-1:-1:-1;;;;;18856:16:0;;::::1;::::0;18848:49;::::1;;;::::0;18883:13;;18856:16:::1;18848:49:::0;18856:16;18848:49;18883:13;18856:16;18848:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18826:73;18912:21;:34:::0;18909:102:::1;;18956:20;::::0;18948:61:::1;::::0;-1:-1:-1;;;;;18956:20:0;;::::1;::::0;18987:21:::1;18948:61:::0;::::1;;;::::0;18956:20:::1;18948:61:::0;18956:20;18948:61;18987:21;18956:20;18948:61;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18909:102;-1:-1:-1::0;;6334:8:0;:16;;-1:-1:-1;;6334:16:0;;;-1:-1:-1;;;;;;;;17804:1214:0:o;22595:329::-;-1:-1:-1;;;;;22697:19:0;;22674:7;22697:19;;;:11;:19;;;;;:25;;;;;;;:57;;-1:-1:-1;;;;;;22726:22:0;;;;;;:11;:22;;;;;:28;;;;;;22697:57;22694:100;;;22763:11;;:29;;22787:3;22763:15;:29::i;:::-;22756:36;;;;22694:100;22820:4;;-1:-1:-1;;;;;22820:4:0;;;22807:17;;;;22804:38;;-1:-1:-1;22833:7:0;;22826:14;;22804:38;22865:4;;-1:-1:-1;;;;;22865:4:0;;;22855:14;;;;22852:36;;-1:-1:-1;22878:8:0;;22871:15;;22852:36;-1:-1:-1;22905:11:0;;22595:329;;;;:::o;19394:434::-;19484:16;;;19498:1;19484:16;;;;;;;;19460:21;;19484:16;;;;;;;;;;-1:-1:-1;19484:16:0;19460:40;;19529:4;19511;19516:1;19511:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19511:23:0;;;:7;;;;;;;;;;:23;;;;19555:6;;:13;;;-1:-1:-1;;;19555:13:0;;;;:6;;;;;:11;;:13;;;;;19511:7;;19555:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19545:4;19550:1;19545:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19545:23:0;;;:7;;;;;;;;;:23;19611:6;;19579:53;;19596:4;;19611:6;19620:11;19579:8;:53::i;:::-;19643:6;;:177;;-1:-1:-1;;;19643:177:0;;-1:-1:-1;;;;;19643:6:0;;;;:57;;:177;;19715:11;;19643:6;;19757:4;;19784;;19804:15;;19643:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:548:1;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2043:247::-;2102:6;2155:2;2143:9;2134:7;2130:23;2126:32;2123:52;;;2171:1;2168;2161:12;2123:52;2210:9;2197:23;2229:31;2254:5;2229:31;:::i;2484:316::-;2561:6;2569;2577;2630:2;2618:9;2609:7;2605:23;2601:32;2598:52;;;2646:1;2643;2636:12;2598:52;-1:-1:-1;;2669:23:1;;;2739:2;2724:18;;2711:32;;-1:-1:-1;2790:2:1;2775:18;;;2762:32;;2484:316;-1:-1:-1;2484:316:1:o;2805:118::-;2891:5;2884:13;2877:21;2870:5;2867:32;2857:60;;2913:1;2910;2903:12;2928:382;2993:6;3001;3054:2;3042:9;3033:7;3029:23;3025:32;3022:52;;;3070:1;3067;3060:12;3022:52;3109:9;3096:23;3128:31;3153:5;3128:31;:::i;:::-;3178:5;-1:-1:-1;3235:2:1;3220:18;;3207:32;3248:30;3207:32;3248:30;:::i;:::-;3297:7;3287:17;;;2928:382;;;;;:::o;3315:750::-;3407:6;3415;3423;3476:2;3464:9;3455:7;3451:23;3447:32;3444:52;;;3492:1;3489;3482:12;3444:52;3532:9;3519:23;3561:18;3602:2;3594:6;3591:14;3588:34;;;3618:1;3615;3608:12;3588:34;3656:6;3645:9;3641:22;3631:32;;3701:7;3694:4;3690:2;3686:13;3682:27;3672:55;;3723:1;3720;3713:12;3672:55;3763:2;3750:16;3789:2;3781:6;3778:14;3775:34;;;3805:1;3802;3795:12;3775:34;3860:7;3853:4;3843:6;3840:1;3836:14;3832:2;3828:23;3824:34;3821:47;3818:67;;;3881:1;3878;3871:12;3818:67;3912:4;3904:13;;;;-1:-1:-1;3936:6:1;-1:-1:-1;;3977:20:1;;3964:34;4007:28;3964:34;4007:28;:::i;:::-;4054:5;4044:15;;;3315:750;;;;;:::o;4070:241::-;4126:6;4179:2;4167:9;4158:7;4154:23;4150:32;4147:52;;;4195:1;4192;4185:12;4147:52;4234:9;4221:23;4253:28;4275:5;4253:28;:::i;4316:309::-;4381:6;4389;4442:2;4430:9;4421:7;4417:23;4413:32;4410:52;;;4458:1;4455;4448:12;4410:52;4494:9;4481:23;4471:33;;4554:2;4543:9;4539:18;4526:32;4567:28;4589:5;4567:28;:::i;4838:813::-;4933:6;4941;4949;4957;4965;5018:3;5006:9;4997:7;4993:23;4989:33;4986:53;;;5035:1;5032;5025:12;4986:53;5074:9;5061:23;5093:31;5118:5;5093:31;:::i;:::-;5143:5;-1:-1:-1;5200:2:1;5185:18;;5172:32;5213:33;5172:32;5213:33;:::i;:::-;5265:7;-1:-1:-1;5324:2:1;5309:18;;5296:32;5337:33;5296:32;5337:33;:::i;:::-;5389:7;-1:-1:-1;5448:2:1;5433:18;;5420:32;5461:33;5420:32;5461:33;:::i;:::-;5513:7;-1:-1:-1;5572:3:1;5557:19;;5544:33;5586;5544;5586;:::i;:::-;5638:7;5628:17;;;4838:813;;;;;;;;:::o;5656:388::-;5724:6;5732;5785:2;5773:9;5764:7;5760:23;5756:32;5753:52;;;5801:1;5798;5791:12;5753:52;5840:9;5827:23;5859:31;5884:5;5859:31;:::i;:::-;5909:5;-1:-1:-1;5966:2:1;5951:18;;5938:32;5979:33;5938:32;5979:33;:::i;6049:661::-;6171:6;6179;6187;6195;6203;6211;6219;6227;6280:3;6268:9;6259:7;6255:23;6251:33;6248:53;;;6297:1;6294;6287:12;6248:53;-1:-1:-1;;6320:23:1;;;6390:2;6375:18;;6362:32;;-1:-1:-1;6441:2:1;6426:18;;6413:32;;6492:2;6477:18;;6464:32;;-1:-1:-1;6543:3:1;6528:19;;6515:33;;-1:-1:-1;6595:3:1;6580:19;;6567:33;;-1:-1:-1;6647:3:1;6632:19;;6619:33;;-1:-1:-1;6699:3:1;6684:19;6671:33;;-1:-1:-1;6049:661:1;-1:-1:-1;6049:661:1:o;6975:329::-;7177:2;7159:21;;;7216:1;7196:18;;;7189:29;-1:-1:-1;;;7249:2:1;7234:18;;7227:36;7295:2;7280:18;;6975:329::o;8002:127::-;8063:10;8058:3;8054:20;8051:1;8044:31;8094:4;8091:1;8084:15;8118:4;8115:1;8108:15;8134:168;8207:9;;;8238;;8255:15;;;8249:22;;8235:37;8225:71;;8276:18;;:::i;8307:217::-;8347:1;8373;8363:132;;8417:10;8412:3;8408:20;8405:1;8398:31;8452:4;8449:1;8442:15;8480:4;8477:1;8470:15;8363:132;-1:-1:-1;8509:9:1;;8307:217::o;8951:127::-;9012:10;9007:3;9003:20;9000:1;8993:31;9043:4;9040:1;9033:15;9067:4;9064:1;9057:15;9083:135;9122:3;9143:17;;;9140:43;;9163:18;;:::i;:::-;-1:-1:-1;9210:1:1;9199:13;;9083:135::o;9985:245::-;10052:6;10105:2;10093:9;10084:7;10080:23;10076:32;10073:52;;;10121:1;10118;10111:12;10073:52;10153:9;10147:16;10172:28;10194:5;10172:28;:::i;12079:128::-;12146:9;;;12167:11;;;12164:37;;;12181:18;;:::i;12824:306::-;12912:6;12920;12928;12981:2;12969:9;12960:7;12956:23;12952:32;12949:52;;;12997:1;12994;12987:12;12949:52;13026:9;13020:16;13010:26;;13076:2;13065:9;13061:18;13055:25;13045:35;;13120:2;13109:9;13105:18;13099:25;13089:35;;12824:306;;;;;:::o;13135:125::-;13200:9;;;13221:10;;;13218:36;;;13234:18;;:::i;16982:251::-;17052:6;17105:2;17093:9;17084:7;17080:23;17076:32;17073:52;;;17121:1;17118;17111:12;17073:52;17153:9;17147:16;17172:31;17197:5;17172:31;:::i;17238:980::-;17500:4;17548:3;17537:9;17533:19;17579:6;17568:9;17561:25;17605:2;17643:6;17638:2;17627:9;17623:18;17616:34;17686:3;17681:2;17670:9;17666:18;17659:31;17710:6;17745;17739:13;17776:6;17768;17761:22;17814:3;17803:9;17799:19;17792:26;;17853:2;17845:6;17841:15;17827:29;;17874:1;17884:195;17898:6;17895:1;17892:13;17884:195;;;17963:13;;-1:-1:-1;;;;;17959:39:1;17947:52;;18054:15;;;;18019:12;;;;17995:1;17913:9;17884:195;;;-1:-1:-1;;;;;;;18135:32:1;;;;18130:2;18115:18;;18108:60;-1:-1:-1;;;18199:3:1;18184:19;18177:35;18096:3;17238:980;-1:-1:-1;;;17238:980:1:o

Swarm Source

ipfs://15d1f9e438c00178998e8d8ef2ecad959d9d46f527202ce6bfdb3a508f857291
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.