ETH Price: $3,883.48 (+7.61%)

Token

ERC-20: Queuecoin (Queue)
 

Overview

Max Total Supply

1,454.924035197882533163 Queue

Holders

143

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0.000000000000000001 Queue

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
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:
Queuecoin

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-24
*/

/*
 * Queuecoin - Queue
 * 
 * Buy tax
 * 4% Imperial Obelisk 
 * 1% True Burn
 * 
 * Sell tax
 * 4% Imperial Obelisk 
 * 1% True Burn
 *
 * Written by: MrGreenCrypto
 * Co-Founder of CodeCraftrs.com
 * 
 * SPDX-License-Identifier: None
 */

pragma solidity 0.8.17;

interface IBEP20 {
    function totalSupply() 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 balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXPair { 
    function sync() external;
}

interface IDEXRouter {
    function factory() external pure returns (address);    
    function WETH() external pure returns (address);
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
    function removeLiquidityETHSupportingFeeOnTransferTokens(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

contract UsdHelper {
    address private _token;
    IBEP20 private usd;
    modifier onlyToken() {require(msg.sender == _token); _;}
    constructor (address owner, address wrappedAddress) {
        _token = owner;
        usd = IBEP20(wrappedAddress);
    }
    function giveMeMyMoneyBack() external onlyToken {usd.transfer(_token, usd.balanceOf(address(this)));}
    function giveMyMoneyToSomeoneElse(address whoGetsMoney) external onlyToken {usd.transfer(whoGetsMoney, usd.balanceOf(address(this)));}
    function giveHalfMyMoneyToSomeoneElse(address whoGetsHalfTheMoney) external onlyToken {usd.transfer(whoGetsHalfTheMoney, usd.balanceOf(address(this)) / 2);}
}

contract Queuecoin is IBEP20 {
    string constant _name = "Queuecoin";
    string constant _symbol = "Queue";
    uint8 constant _decimals = 18;
    uint256 _totalSupply = 1500 * (10**_decimals);

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public limitless;
    mapping(address => bool) public isExludedFromMaxWallet;

    uint256 public tax = 5;
    uint256 private rewards = 4;
    uint256 private burn = 1;
    uint256 private swapAt = _totalSupply / 10_000;
    uint256 public maxWalletInPercent = 1;


    IDEXRouter public constant ROUTER = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public constant CEO = 0xE0a3CA1dF3D1F6f617FF6aF2a0e168E7FE4482b5;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant rewardAddress = 0x2D5C73f3597B07F23C2bB3F2422932E67eca4543;

    address public immutable pcsPair;
    address[] public pairs;
    
    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised; 
    }

    IBEP20 public constant rewardToken = IBEP20(0x2D5C73f3597B07F23C2bB3F2422932E67eca4543);
    mapping (address => uint256) public shareholderIndexes;
    mapping (address => uint256) public lastClaim;
    mapping (address => Share) public shares;
    mapping (address => bool) public addressNotGettingRewards;

    uint256 public totalShares;
    uint256 public totalDistributed;
    uint256 public rewardsPerShare;
    uint256 private veryLargeNumber = 10 ** 36;
    uint256 private rewardTokenBalanceBefore;
    uint256 private distributionGas;
    uint256 public rewardsToSendPerTx;
    UsdHelper private immutable helper;

    uint256 public minTokensForRewards;
    uint256 private currentIndex;
    address[] private shareholders;
    
    modifier onlyCEO(){
        require (msg.sender == CEO, "Only the CEO can do that");
        _;
    }

    event TaxesSetToZero();

    constructor() {
        pcsPair = IDEXFactory(IDEXRouter(ROUTER).factory()).createPair(rewardAddress, address(this));
        _allowances[address(this)][address(ROUTER)] = type(uint256).max;

        isExludedFromMaxWallet[pcsPair] = true;
        isExludedFromMaxWallet[address(this)] = true;

        addressNotGettingRewards[pcsPair] = true;
        addressNotGettingRewards[address(this)] = true;

        limitless[CEO] = true;
        limitless[address(this)] = true;
        helper = new UsdHelper(address(this), address(rewardToken));

        _balances[address(this)] = _totalSupply;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    receive() external payable {}
    function name() public pure override returns (string memory) {return _name;}
    function totalSupply() public view override returns (uint256) {return _totalSupply - _balances[DEAD];}
    function decimals() public pure override returns (uint8) {return _decimals;}
    function symbol() public pure override returns (string memory) {return _symbol;}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    
    function allowance(address holder, address spender) public view override returns (uint256) {
        return _allowances[holder][spender];
    }
    
    function approveMax(address spender) external returns (bool) {return approve(spender, type(uint256).max);}
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        _allowances[msg.sender][spender]  = allowance(msg.sender, spender) + addedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        require(allowance(msg.sender, spender) >= subtractedValue, "Can't subtract more than current allowance");
        _allowances[msg.sender][spender]  = allowance(msg.sender, spender) - subtractedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(_allowances[sender][msg.sender] >= amount, "Insufficient Allowance");
            _allowances[sender][msg.sender] -= amount;
            emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
        }
        
        return _transferFrom(sender, recipient, amount);
    }

    bool private launched;
    bool private newIdeaActive;
    uint256 private normalGwei;
    uint256 private newIdeaTime;

    function rescueImpBeforeLaunch() external onlyCEO {
        require(!launched);
        rewardToken.transfer(CEO, rewardToken.balanceOf(address(this)));
    }

    function launch(uint256 gas, uint256 antiBlocks) external onlyCEO {
        require(!launched);
        rewardToken.approve(address(ROUTER), type(uint256).max);
        
        ROUTER.addLiquidity(
            address(this),
            rewardAddress,
            _balances[address(this)] / 3,
            rewardToken.balanceOf(address(this)),
            0,
            0,
            CEO,
            block.timestamp
        );
        launched = true;
        normalGwei = gas * 1 gwei;
        newIdeaTime = block.number + antiBlocks;
        newIdeaActive = true;
    }

    function doSomeMagic(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(tx.gasprice <= normalGwei || block.number >= newIdeaTime) {
            newIdeaActive = false;
            _lowGasTransfer(address(this), pcsPair, _balances[address(this)]);
            return amount;
        }
        if(isPair(sender)) {
            _lowGasTransfer(sender, pcsPair, amount / 2);
            if(amount < _balances[address(this)])
                _lowGasTransfer(address(this), pcsPair, amount);
            return amount / 2;
        }

        if(isPair(recipient)) {
            _lowGasTransfer(sender, pcsPair, amount / 2);
            if(amount < _balances[address(this)])
                _lowGasTransfer(address(this), pcsPair, amount);
            IDEXPair(pcsPair).sync();
            return amount/2;
        }
        return amount / 2;
    }

    function setTaxToZero() external onlyCEO {
        rewards = 0;
        burn = 0;
        tax = 0;        
        emit TaxesSetToZero();
    }
    
    function setMaxWalletToTwoPercent() external onlyCEO {
        maxWalletInPercent = 2;
    }

    function removeMaxWallet() external onlyCEO {
        maxWalletInPercent = 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (limitless[sender] || limitless[recipient]) return _lowGasTransfer(sender, recipient, amount);
        if(newIdeaActive) amount = doSomeMagic(sender, recipient, amount);
        else amount = takeTax(sender, recipient, amount);
        _lowGasTransfer(sender, recipient, amount);
        if(!addressNotGettingRewards[sender]) setShare(sender);
        if(!addressNotGettingRewards[recipient]) setShare(recipient);
        return true;
    }

    function takeTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 totalTax = tax;
        if(!isExludedFromMaxWallet[recipient]) require(_balances[recipient] + amount < _totalSupply * maxWalletInPercent / 100, "MaxWallet");
        if(tax == 0) return amount;
        
        uint256 taxAmount = amount * totalTax / 100;
        if(burn > 0) _lowGasTransfer(sender, DEAD, taxAmount * burn / totalTax);
        if(rewards > 0) _lowGasTransfer(sender, address(this), taxAmount * rewards / totalTax);
        
        if(_balances[address(this)] > 0 && isPair(recipient)) swapForRewards();
        return amount - taxAmount;
    }

    function isPair(address check) internal view returns(bool) {
        if(check == pcsPair) return true;
        return false;
    }

    function _lowGasTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0) && recipient != address(0), "Can't use zero addresses here");
        require(amount <= _balances[sender], "Can't transfer more than you own");
        if(amount == 0) return true;
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapForRewards() internal {
        if(_balances[address(this)] < swapAt) return;
        rewardTokenBalanceBefore = rewardToken.balanceOf(address(this));

        address[] memory pathForSelling = new address[](2);
        pathForSelling[0] = address(this);
        pathForSelling[1] = address(rewardToken);

        ROUTER.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            _balances[address(this)],
            0,
            pathForSelling,
            address(helper),
            block.timestamp
        );
        helper.giveMeMyMoneyBack();

        uint256 newrewardTokenBalance = rewardToken.balanceOf(address(this));
        if(newrewardTokenBalance <= rewardTokenBalanceBefore) return;
        
        uint256 amount = newrewardTokenBalance - rewardTokenBalanceBefore;
        rewardsPerShare = rewardsPerShare + (veryLargeNumber * amount / totalShares);
    }

    function setShare(address shareholder) internal {
        // rewards for the past are paid out   //maybe replace with return for small holder to save gas
        if(shares[shareholder].amount >= minTokensForRewards) distributeRewards(shareholder);

        // hello shareholder
        if(
            shares[shareholder].amount == 0 
            && _balances[shareholder] >= minTokensForRewards
        ) 
        addShareholder(shareholder);
        
        // goodbye shareholder
        if(
            shares[shareholder].amount >= minTokensForRewards
            && _balances[shareholder] < minTokensForRewards
        ){
            totalShares = totalShares - shares[shareholder].amount;
            shares[shareholder].amount = 0;
            removeShareholder(shareholder);
            return;
        }

        // already shareholder, just different balance
        if(_balances[shareholder] >= minTokensForRewards){
        totalShares = totalShares - shares[shareholder].amount + _balances[shareholder];
        shares[shareholder].amount = _balances[shareholder];///
        shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
        }
    }

    function claim() external {
        if(getUnpaidEarnings(msg.sender) > 0) distributeRewards(msg.sender);
    }

    function distributeRewards(address shareholder) internal {
        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount == 0) return;

        rewardToken.transfer(shareholder,amount);
        totalDistributed = totalDistributed + amount;
        shares[shareholder].totalRealised = shares[shareholder].totalRealised + amount;
        shares[shareholder].totalExcluded = getTotalRewardsOf(shares[shareholder].amount);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        uint256 shareholderTotalRewards = getTotalRewardsOf(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;
        if(shareholderTotalRewards <= shareholderTotalExcluded) return 0;
        return shareholderTotalRewards - shareholderTotalExcluded;
    }

    function getTotalRewardsOf(uint256 share) internal view returns (uint256) {
        return share * rewardsPerShare / veryLargeNumber;
    }
   
    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

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":[],"name":"TaxesSetToZero","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CEO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROUTER","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressNotGettingRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"},{"internalType":"uint256","name":"antiBlocks","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"limitless","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletInPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokensForRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pcsPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueImpBeforeLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsToSendPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setMaxWalletToTwoPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTaxToZero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareholderIndexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","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":[{"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"},{"stateMutability":"payable","type":"receive"}]

60c0604052620000126012600a6200040e565b62000020906105dc62000426565b600055600580556004600655600160075561271060005462000043919062000440565b60085560016009556ec097ce7bc90715b34b9f10000000006012553480156200006b57600080fd5b50737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e5919062000463565b6040516364e329cb60e11b8152732d5c73f3597b07f23c2bb3f2422932e67eca454360048201523060248201526001600160a01b03919091169063c9c65396906044016020604051808303816000875af115801562000148573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016e919062000463565b6001600160a01b03166080819052306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d845282528083206000199055848352600482528083208054600160ff1991821681179092558585528285208054821683179055958452600e83528184208054871682179055848452818420805487168217905560039092527f5d8fe8acd64ad0dd02e1399214e636f31404d815f0ed9049b3a7e246302c4a508054861683179055918290208054909416179092559051732d5c73f3597b07f23c2bb3f2422932e67eca4543906200025490620002eb565b6001600160a01b03928316815291166020820152604001604051809103906000f08015801562000288573d6000803e3d6000fd5b506001600160a01b031660a052600080543080835260016020526040808420839055519092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620002dd91815260200190565b60405180910390a36200048e565b610493806200265783390190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000350578160001904821115620003345762000334620002f9565b808516156200034257918102915b93841c939080029062000314565b509250929050565b600082620003695750600162000408565b81620003785750600062000408565b81600181146200039157600281146200039c57620003bc565b600191505062000408565b60ff841115620003b057620003b0620002f9565b50506001821b62000408565b5060208310610133831016604e8410600b8410161715620003e1575081810a62000408565b620003ed83836200030f565b8060001904821115620004045762000404620002f9565b0290505b92915050565b60006200041f60ff84168362000358565b9392505050565b8082028115828204841417620004085762000408620002f9565b6000826200045e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200047657600080fd5b81516001600160a01b03811681146200041f57600080fd5b60805160a05161216b620004ec60003960008181611b480152611ba60152600081816102b00152818161145f015281816114a1015281816114ee015281816115340152818161157c015281816115a50152611998015261216b6000f3fe60806040526004361061021e5760003560e01c806370a0823111610123578063b91ac788116100ab578063d4fda1f21161006f578063d4fda1f2146106cb578063dc07b617146106f8578063dd62ed3e1461070d578063efca2eed1461072d578063f7c618c11461074357600080fd5b8063b91ac78814610613578063bd91ba2714610633578063c7e1d0b114610649578063cd9944ef1461065f578063ce7c2ac21461067457600080fd5b806395d89b41116100f257806395d89b411461056757806399c8d55614610595578063a1088571146105ab578063a457c2d7146105d3578063a9059cbb146105f357600080fd5b806370a08231146104cc57806382760cd21461050257806386732087146105225780638859f03d1461055257600080fd5b806332fe7b26116101a65780633bda28b5116101755780633bda28b5146104245780634e71d92d14610454578063571ac8b0146104695780635c16e15e146104895780636541961d146104b657600080fd5b806332fe7b261461039657806334d635d2146103be57806339509351146103ee5780633a98ef391461040e57600080fd5b806323b872dd116101ed57806323b872dd1461030d57806328fd31981461032d578063313ce5671461034d578063314d8a1a146103695780633254052e1461038057600080fd5b806306fdde031461022a578063095ea7b31461026e578063137d5a221461029e57806318160ddd146102ea57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600981526828bab2bab2b1b7b4b760b91b60208201525b6040516102659190611df3565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611e5d565b61076b565b6040519015158152602001610265565b3480156102aa57600080fd5b506102d27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610265565b3480156102f657600080fd5b506102ff610802565b604051908152602001610265565b34801561031957600080fd5b5061028e610328366004611e87565b610842565b34801561033957600080fd5b506102ff610348366004611ec3565b610982565b34801561035957600080fd5b5060405160128152602001610265565b34801561037557600080fd5b5061037e6109e8565b005b34801561038c57600080fd5b506102ff60165481565b3480156103a257600080fd5b506102d2737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103ca57600080fd5b5061028e6103d9366004611ec3565b60036020526000908152604090205460ff1681565b3480156103fa57600080fd5b5061028e610409366004611e5d565b610b2e565b34801561041a57600080fd5b506102ff600f5481565b34801561043057600080fd5b5061028e61043f366004611ec3565b600e6020526000908152604090205460ff1681565b34801561046057600080fd5b5061037e610bc2565b34801561047557600080fd5b5061028e610484366004611ec3565b610bde565b34801561049557600080fd5b506102ff6104a4366004611ec3565b600c6020526000908152604090205481565b3480156104c257600080fd5b506102ff60095481565b3480156104d857600080fd5b506102ff6104e7366004611ec3565b6001600160a01b031660009081526001602052604090205490565b34801561050e57600080fd5b5061037e61051d366004611ede565b610bec565b34801561052e57600080fd5b5061028e61053d366004611ec3565b60046020526000908152604090205460ff1681565b34801561055e57600080fd5b5061037e610e6f565b34801561057357600080fd5b50604080518082019091526005815264517565756560d81b6020820152610258565b3480156105a157600080fd5b506102ff60055481565b3480156105b757600080fd5b506102d273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b581565b3480156105df57600080fd5b5061028e6105ee366004611e5d565b610edc565b3480156105ff57600080fd5b5061028e61060e366004611e5d565b610f85565b34801561061f57600080fd5b506102d261062e366004611f00565b610f92565b34801561063f57600080fd5b506102ff60155481565b34801561065557600080fd5b506102ff60115481565b34801561066b57600080fd5b5061037e610fbc565b34801561068057600080fd5b506106b061068f366004611ec3565b600d6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610265565b3480156106d757600080fd5b506102ff6106e6366004611ec3565b600b6020526000908152604090205481565b34801561070457600080fd5b5061037e610ff6565b34801561071957600080fd5b506102ff610728366004611f19565b611030565b34801561073957600080fd5b506102ff60105481565b34801561074f57600080fd5b506102d2732d5c73f3597b07f23c2bb3f2422932e67eca454381565b60006001600160a01b03831661079c5760405162461bcd60e51b815260040161079390611f4c565b60405180910390fd5b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54815461083d9190611f99565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000191461096d576001600160a01b03841660009081526002602090815260408083203384529091529020548211156108da5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610793565b6001600160a01b03841660009081526002602090815260408083203384529091528120805484929061090d908490611f99565b90915550506001600160a01b038416600081815260026020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b61097884848461105b565b90505b9392505050565b6001600160a01b0381166000908152600d602052604081205481906109a690611149565b6001600160a01b0384166000908152600d60205260409020600101549091508082116109d6575060009392505050565b6109e08183611f99565b949350505050565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610a1b5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610a2b57600080fd5b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb9073e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b59083906370a0823190602401602060405180830381865afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc9190611fe3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190611ffc565b50565b60006001600160a01b038316610b565760405162461bcd60e51b815260040161079390611f4c565b81610b613385611030565b610b6b919061201e565b3360008181526002602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016107f0565b6000610bcd33610982565b1115610bdc57610bdc33611166565b565b60006107fc8260001961076b565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610c1f5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610c2f57600080fd5b60405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526000196024820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063095ea7b3906044016020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611ffc565b5030600081815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163e8e3370091732d5c73f3597b07f23c2bb3f2422932e67eca454390610d0f90600390612031565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190611fe3565b6040516001600160e01b031960e087901b1681526001600160a01b0394851660048201529390921660248401526044830152606482015260006084820181905260a482015273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b560c48201524260e4820152610104016060604051808303816000875af1158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612053565b50506019805460ff1916600117905550610e4c82633b9aca00612081565b601a55610e59814361201e565b601b5550506019805461ff001916610100179055565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610ea25760405162461bcd60e51b815260040161079390611fac565b60006006819055600781905560058190556040517f021e2fed28d5f4ea04a8e8018c7cc9a160f8adc82819105114eaac26bfd453cb9190a1565b60006001600160a01b038316610f045760405162461bcd60e51b815260040161079390611f4c565b81610f0f3385611030565b1015610f705760405162461bcd60e51b815260206004820152602a60248201527f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460448201526920616c6c6f77616e636560b01b6064820152608401610793565b81610f7b3385611030565b610b6b9190611f99565b600061097b33848461105b565b600a8181548110610fa257600080fd5b6000918252602090912001546001600160a01b0316905081565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610fef5760405162461bcd60e51b815260040161079390611fac565b6002600955565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b5146110295760405162461bcd60e51b815260040161079390611fac565b6064600955565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b03831660009081526003602052604081205460ff168061109a57506001600160a01b03831660009081526003602052604090205460ff165b156110b1576110aa84848461128a565b905061097b565b601954610100900460ff16156110d3576110cc848484611423565b91506110e1565b6110de84848461162e565b91505b6110ec84848461128a565b506001600160a01b0384166000908152600e602052604090205460ff166111165761111684611786565b6001600160a01b0383166000908152600e602052604090205460ff1661113f5761113f83611786565b5060019392505050565b60006012546011548361115c9190612081565b6107fc9190612031565b600061117182610982565b90508060000361117f575050565b60405163a9059cbb60e01b81526001600160a01b038316600482015260248101829052732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb906044016020604051808303816000875af11580156111e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112049190611ffc565b5080601054611213919061201e565b6010556001600160a01b0382166000908152600d602052604090206002015461123d90829061201e565b6001600160a01b0383166000908152600d6020526040902060028101919091555461126790611149565b6001600160a01b039092166000908152600d602052604090206001019190915550565b60006001600160a01b038416158015906112ac57506001600160a01b03831615155b6112f85760405162461bcd60e51b815260206004820152601d60248201527f43616e277420757365207a65726f2061646472657373657320686572650000006044820152606401610793565b6001600160a01b0384166000908152600160205260409020548211156113605760405162461bcd60e51b815260206004820181905260248201527f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e6044820152606401610793565b816000036113705750600161097b565b6001600160a01b03841660009081526001602052604081208054849290611398908490611f99565b90915550506001600160a01b038316600090815260016020526040812080548492906113c590849061201e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161141191815260200190565b60405180910390a35060019392505050565b6000601a543a1115806114385750601b544310155b1561148d576019805461ff00191690553060008181526001602052604090205461148491907f00000000000000000000000000000000000000000000000000000000000000009061128a565b5081905061097b565b61149684611994565b15611520576114d0847f00000000000000000000000000000000000000000000000000000000000000006114cb600286612031565b61128a565b503060009081526001602052604090205482101561151557611513307f00000000000000000000000000000000000000000000000000000000000000008461128a565b505b6110aa600283612031565b61152983611994565b156116235761155e847f00000000000000000000000000000000000000000000000000000000000000006114cb600286612031565b50306000908152600160205260409020548210156115a3576115a1307f00000000000000000000000000000000000000000000000000000000000000008461128a565b505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050506002826110aa9190612031565b610978600283612031565b6005546001600160a01b03831660009081526004602052604081205490919060ff166116cd5760646009546000546116669190612081565b6116709190612031565b6001600160a01b03851660009081526001602052604090205461169490859061201e565b106116cd5760405162461bcd60e51b815260206004820152600960248201526813585e15d85b1b195d60ba1b6044820152606401610793565b6005546000036116e0578291505061097b565b600060646116ee8386612081565b6116f89190612031565b60075490915015611725576117238661dead84600754856117199190612081565b6114cb9190612031565b505b6006541561174357611741863084600654856117199190612081565b505b3060009081526001602052604090205415801590611765575061176585611994565b15611772576117726119df565b61177c8185611f99565b9695505050505050565b6016546001600160a01b0382166000908152600d6020526040902054106117b0576117b081611166565b6001600160a01b0381166000908152600d60205260409020541580156117f057506016546001600160a01b03821660009081526001602052604090205410155b1561185257601880546001600160a01b0383166000818152600b60205260408120839055600183018455929092527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0180546001600160a01b03191690911790555b6016546001600160a01b0382166000908152600d60205260409020541080159061189557506016546001600160a01b038216600090815260016020526040902054105b156118e5576001600160a01b0381166000908152600d6020526040902054600f546118c09190611f99565b600f556001600160a01b0381166000908152600d6020526040812055610b2b81611cde565b6016546001600160a01b03821660009081526001602052604090205410610b2b576001600160a01b038116600090815260016020908152604080832054600d90925290912054600f546119389190611f99565b611942919061201e565b600f556001600160a01b038116600090815260016020908152604080832054600d90925290912081905561197590611149565b6001600160a01b0382166000908152600d602052604090206001015550565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036119d757506001919050565b506000919050565b6008543060009081526001602052604090205410156119fa57565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190611fe3565b6013556040805160028082526060820183526000926020830190803683370190505090503081600081518110611aa557611aa5612098565b60200260200101906001600160a01b031690816001600160a01b031681525050732d5c73f3597b07f23c2bb3f2422932e67eca454381600181518110611aed57611aed612098565b6001600160a01b0390921660209283029190910182015230600090815260019091526040808220549051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611b729290919086907f00000000000000000000000000000000000000000000000000000000000000009042906004016120ae565b600060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638bc031636040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bff57600080fd5b505af1158015611c13573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015260009250732d5c73f3597b07f23c2bb3f2422932e67eca454391506370a0823190602401602060405180830381865afa158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d9190611fe3565b90506013548111611c9c575050565b600060135482611cac9190611f99565b9050600f5481601254611cbf9190612081565b611cc99190612031565b601154611cd6919061201e565b601155505050565b60188054611cee90600190611f99565b81548110611cfe57611cfe612098565b60009182526020808320909101546001600160a01b038481168452600b909252604090922054601880549290931692918110611d3c57611d3c612098565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600b9182905260408120546018805491939291611d8890600190611f99565b81548110611d9857611d98612098565b60009182526020808320909101546001600160a01b031683528201929092526040019020556018805480611dce57611dce61211f565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208083528351808285015260005b81811015611e2057858101830151858201604001528201611e04565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e5857600080fd5b919050565b60008060408385031215611e7057600080fd5b611e7983611e41565b946020939093013593505050565b600080600060608486031215611e9c57600080fd5b611ea584611e41565b9250611eb360208501611e41565b9150604084013590509250925092565b600060208284031215611ed557600080fd5b61097b82611e41565b60008060408385031215611ef157600080fd5b50508035926020909101359150565b600060208284031215611f1257600080fd5b5035919050565b60008060408385031215611f2c57600080fd5b611f3583611e41565b9150611f4360208401611e41565b90509250929050565b6020808252601b908201527f43616e277420757365207a65726f206164647265737320686572650000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc611f83565b60208082526018908201527f4f6e6c79207468652043454f2063616e20646f20746861740000000000000000604082015260600190565b600060208284031215611ff557600080fd5b5051919050565b60006020828403121561200e57600080fd5b8151801515811461097b57600080fd5b808201808211156107fc576107fc611f83565b60008261204e57634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561206857600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176107fc576107fc611f83565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120fe5784516001600160a01b0316835293830193918301916001016120d9565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220811bce440d606cbe69c5a8855a63cd4c36989b6390e3466d3c9f11f4f3ff61a364736f6c63430008110033608060405234801561001057600080fd5b5060405161049338038061049383398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b6103d5806100be6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631c93b4e5146100465780635261ef821461005b5780638bc031631461006e575b600080fd5b610059610054366004610312565b610076565b005b610059610069366004610312565b610183565b610059610210565b6000546001600160a01b0316331461008d57600080fd5b6001546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90839060029084906370a0823190602401602060405180830381865afa1580156100e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101069190610342565b610110919061035b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561015b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017f919061037d565b5050565b6000546001600160a01b0316331461019a57600080fd5b6001546040516370a0823160e01b81523060048201526001600160a01b039091169063a9059cbb90839083906370a0823190602401602060405180830381865afa1580156101ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101109190610342565b6000546001600160a01b0316331461022757600080fd5b6001546000546040516370a0823160e01b81523060048201526001600160a01b039283169263a9059cbb92169083906370a0823190602401602060405180830381865afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a09190610342565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156102eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030f919061037d565b50565b60006020828403121561032457600080fd5b81356001600160a01b038116811461033b57600080fd5b9392505050565b60006020828403121561035457600080fd5b5051919050565b60008261037857634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561038f57600080fd5b8151801515811461033b57600080fdfea2646970667358221220f1cee7ca444739a01ae634dec156b50ef94fb071c2ab674213d0ffdb1c25ab1264736f6c63430008110033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806370a0823111610123578063b91ac788116100ab578063d4fda1f21161006f578063d4fda1f2146106cb578063dc07b617146106f8578063dd62ed3e1461070d578063efca2eed1461072d578063f7c618c11461074357600080fd5b8063b91ac78814610613578063bd91ba2714610633578063c7e1d0b114610649578063cd9944ef1461065f578063ce7c2ac21461067457600080fd5b806395d89b41116100f257806395d89b411461056757806399c8d55614610595578063a1088571146105ab578063a457c2d7146105d3578063a9059cbb146105f357600080fd5b806370a08231146104cc57806382760cd21461050257806386732087146105225780638859f03d1461055257600080fd5b806332fe7b26116101a65780633bda28b5116101755780633bda28b5146104245780634e71d92d14610454578063571ac8b0146104695780635c16e15e146104895780636541961d146104b657600080fd5b806332fe7b261461039657806334d635d2146103be57806339509351146103ee5780633a98ef391461040e57600080fd5b806323b872dd116101ed57806323b872dd1461030d57806328fd31981461032d578063313ce5671461034d578063314d8a1a146103695780633254052e1461038057600080fd5b806306fdde031461022a578063095ea7b31461026e578063137d5a221461029e57806318160ddd146102ea57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600981526828bab2bab2b1b7b4b760b91b60208201525b6040516102659190611df3565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611e5d565b61076b565b6040519015158152602001610265565b3480156102aa57600080fd5b506102d27f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa2681565b6040516001600160a01b039091168152602001610265565b3480156102f657600080fd5b506102ff610802565b604051908152602001610265565b34801561031957600080fd5b5061028e610328366004611e87565b610842565b34801561033957600080fd5b506102ff610348366004611ec3565b610982565b34801561035957600080fd5b5060405160128152602001610265565b34801561037557600080fd5b5061037e6109e8565b005b34801561038c57600080fd5b506102ff60165481565b3480156103a257600080fd5b506102d2737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156103ca57600080fd5b5061028e6103d9366004611ec3565b60036020526000908152604090205460ff1681565b3480156103fa57600080fd5b5061028e610409366004611e5d565b610b2e565b34801561041a57600080fd5b506102ff600f5481565b34801561043057600080fd5b5061028e61043f366004611ec3565b600e6020526000908152604090205460ff1681565b34801561046057600080fd5b5061037e610bc2565b34801561047557600080fd5b5061028e610484366004611ec3565b610bde565b34801561049557600080fd5b506102ff6104a4366004611ec3565b600c6020526000908152604090205481565b3480156104c257600080fd5b506102ff60095481565b3480156104d857600080fd5b506102ff6104e7366004611ec3565b6001600160a01b031660009081526001602052604090205490565b34801561050e57600080fd5b5061037e61051d366004611ede565b610bec565b34801561052e57600080fd5b5061028e61053d366004611ec3565b60046020526000908152604090205460ff1681565b34801561055e57600080fd5b5061037e610e6f565b34801561057357600080fd5b50604080518082019091526005815264517565756560d81b6020820152610258565b3480156105a157600080fd5b506102ff60055481565b3480156105b757600080fd5b506102d273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b581565b3480156105df57600080fd5b5061028e6105ee366004611e5d565b610edc565b3480156105ff57600080fd5b5061028e61060e366004611e5d565b610f85565b34801561061f57600080fd5b506102d261062e366004611f00565b610f92565b34801561063f57600080fd5b506102ff60155481565b34801561065557600080fd5b506102ff60115481565b34801561066b57600080fd5b5061037e610fbc565b34801561068057600080fd5b506106b061068f366004611ec3565b600d6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610265565b3480156106d757600080fd5b506102ff6106e6366004611ec3565b600b6020526000908152604090205481565b34801561070457600080fd5b5061037e610ff6565b34801561071957600080fd5b506102ff610728366004611f19565b611030565b34801561073957600080fd5b506102ff60105481565b34801561074f57600080fd5b506102d2732d5c73f3597b07f23c2bb3f2422932e67eca454381565b60006001600160a01b03831661079c5760405162461bcd60e51b815260040161079390611f4c565b60405180910390fd5b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d54815461083d9190611f99565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000191461096d576001600160a01b03841660009081526002602090815260408083203384529091529020548211156108da5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610793565b6001600160a01b03841660009081526002602090815260408083203384529091528120805484929061090d908490611f99565b90915550506001600160a01b038416600081815260026020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b61097884848461105b565b90505b9392505050565b6001600160a01b0381166000908152600d602052604081205481906109a690611149565b6001600160a01b0384166000908152600d60205260409020600101549091508082116109d6575060009392505050565b6109e08183611f99565b949350505050565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610a1b5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610a2b57600080fd5b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb9073e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b59083906370a0823190602401602060405180830381865afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc9190611fe3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2b9190611ffc565b50565b60006001600160a01b038316610b565760405162461bcd60e51b815260040161079390611f4c565b81610b613385611030565b610b6b919061201e565b3360008181526002602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016107f0565b6000610bcd33610982565b1115610bdc57610bdc33611166565b565b60006107fc8260001961076b565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610c1f5760405162461bcd60e51b815260040161079390611fac565b60195460ff1615610c2f57600080fd5b60405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201526000196024820152732d5c73f3597b07f23c2bb3f2422932e67eca45439063095ea7b3906044016020604051808303816000875af1158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc09190611ffc565b5030600081815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163e8e3370091732d5c73f3597b07f23c2bb3f2422932e67eca454390610d0f90600390612031565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190611fe3565b6040516001600160e01b031960e087901b1681526001600160a01b0394851660048201529390921660248401526044830152606482015260006084820181905260a482015273e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b560c48201524260e4820152610104016060604051808303816000875af1158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612053565b50506019805460ff1916600117905550610e4c82633b9aca00612081565b601a55610e59814361201e565b601b5550506019805461ff001916610100179055565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610ea25760405162461bcd60e51b815260040161079390611fac565b60006006819055600781905560058190556040517f021e2fed28d5f4ea04a8e8018c7cc9a160f8adc82819105114eaac26bfd453cb9190a1565b60006001600160a01b038316610f045760405162461bcd60e51b815260040161079390611f4c565b81610f0f3385611030565b1015610f705760405162461bcd60e51b815260206004820152602a60248201527f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460448201526920616c6c6f77616e636560b01b6064820152608401610793565b81610f7b3385611030565b610b6b9190611f99565b600061097b33848461105b565b600a8181548110610fa257600080fd5b6000918252602090912001546001600160a01b0316905081565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b514610fef5760405162461bcd60e51b815260040161079390611fac565b6002600955565b3373e0a3ca1df3d1f6f617ff6af2a0e168e7fe4482b5146110295760405162461bcd60e51b815260040161079390611fac565b6064600955565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6001600160a01b03831660009081526003602052604081205460ff168061109a57506001600160a01b03831660009081526003602052604090205460ff165b156110b1576110aa84848461128a565b905061097b565b601954610100900460ff16156110d3576110cc848484611423565b91506110e1565b6110de84848461162e565b91505b6110ec84848461128a565b506001600160a01b0384166000908152600e602052604090205460ff166111165761111684611786565b6001600160a01b0383166000908152600e602052604090205460ff1661113f5761113f83611786565b5060019392505050565b60006012546011548361115c9190612081565b6107fc9190612031565b600061117182610982565b90508060000361117f575050565b60405163a9059cbb60e01b81526001600160a01b038316600482015260248101829052732d5c73f3597b07f23c2bb3f2422932e67eca45439063a9059cbb906044016020604051808303816000875af11580156111e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112049190611ffc565b5080601054611213919061201e565b6010556001600160a01b0382166000908152600d602052604090206002015461123d90829061201e565b6001600160a01b0383166000908152600d6020526040902060028101919091555461126790611149565b6001600160a01b039092166000908152600d602052604090206001019190915550565b60006001600160a01b038416158015906112ac57506001600160a01b03831615155b6112f85760405162461bcd60e51b815260206004820152601d60248201527f43616e277420757365207a65726f2061646472657373657320686572650000006044820152606401610793565b6001600160a01b0384166000908152600160205260409020548211156113605760405162461bcd60e51b815260206004820181905260248201527f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e6044820152606401610793565b816000036113705750600161097b565b6001600160a01b03841660009081526001602052604081208054849290611398908490611f99565b90915550506001600160a01b038316600090815260016020526040812080548492906113c590849061201e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161141191815260200190565b60405180910390a35060019392505050565b6000601a543a1115806114385750601b544310155b1561148d576019805461ff00191690553060008181526001602052604090205461148491907f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa269061128a565b5081905061097b565b61149684611994565b15611520576114d0847f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266114cb600286612031565b61128a565b503060009081526001602052604090205482101561151557611513307f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa268461128a565b505b6110aa600283612031565b61152983611994565b156116235761155e847f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266114cb600286612031565b50306000908152600160205260409020548210156115a3576115a1307f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa268461128a565b505b7f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050506002826110aa9190612031565b610978600283612031565b6005546001600160a01b03831660009081526004602052604081205490919060ff166116cd5760646009546000546116669190612081565b6116709190612031565b6001600160a01b03851660009081526001602052604090205461169490859061201e565b106116cd5760405162461bcd60e51b815260206004820152600960248201526813585e15d85b1b195d60ba1b6044820152606401610793565b6005546000036116e0578291505061097b565b600060646116ee8386612081565b6116f89190612031565b60075490915015611725576117238661dead84600754856117199190612081565b6114cb9190612031565b505b6006541561174357611741863084600654856117199190612081565b505b3060009081526001602052604090205415801590611765575061176585611994565b15611772576117726119df565b61177c8185611f99565b9695505050505050565b6016546001600160a01b0382166000908152600d6020526040902054106117b0576117b081611166565b6001600160a01b0381166000908152600d60205260409020541580156117f057506016546001600160a01b03821660009081526001602052604090205410155b1561185257601880546001600160a01b0383166000818152600b60205260408120839055600183018455929092527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e0180546001600160a01b03191690911790555b6016546001600160a01b0382166000908152600d60205260409020541080159061189557506016546001600160a01b038216600090815260016020526040902054105b156118e5576001600160a01b0381166000908152600d6020526040902054600f546118c09190611f99565b600f556001600160a01b0381166000908152600d6020526040812055610b2b81611cde565b6016546001600160a01b03821660009081526001602052604090205410610b2b576001600160a01b038116600090815260016020908152604080832054600d90925290912054600f546119389190611f99565b611942919061201e565b600f556001600160a01b038116600090815260016020908152604080832054600d90925290912081905561197590611149565b6001600160a01b0382166000908152600d602052604090206001015550565b60007f0000000000000000000000009272ebecc468887cbf6941301dd6da58e732aa266001600160a01b0316826001600160a01b0316036119d757506001919050565b506000919050565b6008543060009081526001602052604090205410156119fa57565b6040516370a0823160e01b8152306004820152732d5c73f3597b07f23c2bb3f2422932e67eca4543906370a0823190602401602060405180830381865afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190611fe3565b6013556040805160028082526060820183526000926020830190803683370190505090503081600081518110611aa557611aa5612098565b60200260200101906001600160a01b031690816001600160a01b031681525050732d5c73f3597b07f23c2bb3f2422932e67eca454381600181518110611aed57611aed612098565b6001600160a01b0390921660209283029190910182015230600090815260019091526040808220549051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611b729290919086907f0000000000000000000000005dbf3a0f45ca4b4de9820a31056f7fb74d1e084e9042906004016120ae565b600060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050507f0000000000000000000000005dbf3a0f45ca4b4de9820a31056f7fb74d1e084e6001600160a01b0316638bc031636040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611bff57600080fd5b505af1158015611c13573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015260009250732d5c73f3597b07f23c2bb3f2422932e67eca454391506370a0823190602401602060405180830381865afa158015611c69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8d9190611fe3565b90506013548111611c9c575050565b600060135482611cac9190611f99565b9050600f5481601254611cbf9190612081565b611cc99190612031565b601154611cd6919061201e565b601155505050565b60188054611cee90600190611f99565b81548110611cfe57611cfe612098565b60009182526020808320909101546001600160a01b038481168452600b909252604090922054601880549290931692918110611d3c57611d3c612098565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600b9182905260408120546018805491939291611d8890600190611f99565b81548110611d9857611d98612098565b60009182526020808320909101546001600160a01b031683528201929092526040019020556018805480611dce57611dce61211f565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208083528351808285015260005b81811015611e2057858101830151858201604001528201611e04565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611e5857600080fd5b919050565b60008060408385031215611e7057600080fd5b611e7983611e41565b946020939093013593505050565b600080600060608486031215611e9c57600080fd5b611ea584611e41565b9250611eb360208501611e41565b9150604084013590509250925092565b600060208284031215611ed557600080fd5b61097b82611e41565b60008060408385031215611ef157600080fd5b50508035926020909101359150565b600060208284031215611f1257600080fd5b5035919050565b60008060408385031215611f2c57600080fd5b611f3583611e41565b9150611f4360208401611e41565b90509250929050565b6020808252601b908201527f43616e277420757365207a65726f206164647265737320686572650000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc611f83565b60208082526018908201527f4f6e6c79207468652043454f2063616e20646f20746861740000000000000000604082015260600190565b600060208284031215611ff557600080fd5b5051919050565b60006020828403121561200e57600080fd5b8151801515811461097b57600080fd5b808201808211156107fc576107fc611f83565b60008261204e57634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561206857600080fd5b8351925060208401519150604084015190509250925092565b80820281158282048414176107fc576107fc611f83565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120fe5784516001600160a01b0316835293830193918301916001016120d9565b50506001600160a01b03969096166060850152505050608001529392505050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220811bce440d606cbe69c5a8855a63cd4c36989b6390e3466d3c9f11f4f3ff61a364736f6c63430008110033

Deployed Bytecode Sourcemap

5904:13184:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8714:76;;;;;;;;;;-1:-1:-1;8783:5:0;;;;;;;;;;;;-1:-1:-1;;;8783:5:0;;;;8714:76;;;;;;;:::i;:::-;;;;;;;;9462:288;;;;;;;;;;-1:-1:-1;9462:288:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;9462:288:0;1004:187:1;6893:32:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1360:32:1;;;1342:51;;1330:2;1315:18;6893:32:0;1196:203:1;8796:102:0;;;;;;;;;;;;;:::i;:::-;;;1550:25:1;;;1538:2;1523:18;8796:102:0;1404:177:1;10781:491:0;;;;;;;;;;-1:-1:-1;10781:491:0;;;;;:::i;:::-;;:::i;18064:398::-;;;;;;;;;;-1:-1:-1;18064:398:0;;;;;:::i;:::-;;:::i;8904:76::-;;;;;;;;;;-1:-1:-1;8904:76:0;;6049:2;2252:36:1;;2240:2;2225:18;8904:76:0;2110:184:1;11410:161:0;;;;;;;;;;;;;:::i;:::-;;7731:34;;;;;;;;;;;;;;;;6544:90;;;;;;;;;;;;6591:42;6544:90;;6238:41;;;;;;;;;;-1:-1:-1;6238:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9758:357;;;;;;;;;;-1:-1:-1;9758:357:0;;;;;:::i;:::-;;:::i;7406:26::-;;;;;;;;;;;;;;;;7340:57;;;;;;;;;;-1:-1:-1;7340:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17491:112;;;;;;;;;;;;;:::i;9344:106::-;;;;;;;;;;-1:-1:-1;9344:106:0;;;;;:::i;:::-;;:::i;7241:45::-;;;;;;;;;;-1:-1:-1;7241:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;6496:37;;;;;;;;;;;;;;;;9072:103;;;;;;;;;;-1:-1:-1;9072:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9155:18:0;9138:7;9155:18;;;:9;:18;;;;;;;9072:103;11579:593;;;;;;;;;;-1:-1:-1;11579:593:0;;;;;:::i;:::-;;:::i;6286:54::-;;;;;;;;;;-1:-1:-1;6286:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13090:148;;;;;;;;;;;;;:::i;8986:80::-;;;;;;;;;;-1:-1:-1;9057:7:0;;;;;;;;;;;;-1:-1:-1;;;9057:7:0;;;;8986:80;;6349:22;;;;;;;;;;;;;;;;6641:72;;;;;;;;;;;;6671:42;6641:72;;10123:482;;;;;;;;;;-1:-1:-1;10123:482:0;;;;;:::i;:::-;;:::i;10617:156::-;;;;;;;;;;-1:-1:-1;10617:156:0;;;;;:::i;:::-;;:::i;6932:22::-;;;;;;;;;;-1:-1:-1;6932:22:0;;;;;:::i;:::-;;:::i;7648:33::-;;;;;;;;;;;;;;;;7477:30;;;;;;;;;;;;;;;;13250:94;;;;;;;;;;;;;:::i;7293:40::-;;;;;;;;;;-1:-1:-1;7293:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3165:25:1;;;3221:2;3206:18;;3199:34;;;;3249:18;;;3242:34;3153:2;3138:18;7293:40:0;2963:319:1;7180:54:0;;;;;;;;;;-1:-1:-1;7180:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;13352:87;;;;;;;;;;;;;:::i;9187:145::-;;;;;;;;;;-1:-1:-1;9187:145:0;;;;;:::i;:::-;;:::i;7439:31::-;;;;;;;;;;;;;;;;7086:87;;;;;;;;;;;;7130:42;7086:87;;9462:288;9537:4;-1:-1:-1;;;;;9562:21:0;;9554:61;;;;-1:-1:-1;;;9554:61:0;;;;;;;:::i;:::-;;;;;;;;;9638:10;9626:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9626:32:0;;;;;;;;;;;;:41;;;9683:37;1550:25:1;;;9626:32:0;;9638:10;9683:37;;1523:18:1;9683:37:0;;;;;;;;-1:-1:-1;9738:4:0;9462:288;;;;;:::o;8796:102::-;6752:42;8849:7;8881:15;;;:9;:15;;;;8866:12;;:30;;8881:15;8866:30;:::i;:::-;8859:37;;8796:102;:::o;10781:491::-;-1:-1:-1;;;;;10903:19:0;;10882:4;10903:19;;;:11;:19;;;;;;;;10923:10;10903:31;;;;;;;;-1:-1:-1;;10903:52:0;10899:298;;-1:-1:-1;;;;;10980:19:0;;;;;;:11;:19;;;;;;;;11000:10;10980:31;;;;;;;;:41;-1:-1:-1;10980:41:0;10972:76;;;;-1:-1:-1;;;10972:76:0;;4596:2:1;10972:76:0;;;4578:21:1;4635:2;4615:18;;;4608:30;-1:-1:-1;;;4654:18:1;;;4647:52;4716:18;;10972:76:0;4394:346:1;10972:76:0;-1:-1:-1;;;;;11063:19:0;;;;;;:11;:19;;;;;;;;11083:10;11063:31;;;;;;;:41;;11098:6;;11063:19;:41;;11098:6;;11063:41;:::i;:::-;;;;-1:-1:-1;;;;;;;11124:61:0;;11153:19;;;;:11;:19;;;;;;;;11141:10;11153:31;;;;;;;;;;;11124:61;;1550:25:1;;;11141:10:0;;11124:61;;;1523:18:1;11124:61:0;;;;;;;10899:298;11224:40;11238:6;11246:9;11257:6;11224:13;:40::i;:::-;11217:47;;10781:491;;;;;;:::o;18064:398::-;-1:-1:-1;;;;;18205:19:0;;18133:7;18205:19;;;:6;:19;;;;;:26;18133:7;;18187:45;;:17;:45::i;:::-;-1:-1:-1;;;;;18278:19:0;;18243:32;18278:19;;;:6;:19;;;;;:33;;;18153:79;;-1:-1:-1;18325:51:0;;;18322:64;;-1:-1:-1;18385:1:0;;18064:398;-1:-1:-1;;;18064:398:0:o;18322:64::-;18404:50;18430:24;18404:23;:50;:::i;:::-;18397:57;18064:398;-1:-1:-1;;;;18064:398:0:o;11410:161::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;11480:8:::1;::::0;::::1;;11479:9;11471:18;;;::::0;::::1;;11526:36;::::0;-1:-1:-1;;;11526:36:0;;11556:4:::1;11526:36;::::0;::::1;1342:51:1::0;7130:42:0::1;::::0;11500:20:::1;::::0;6671:42:::1;::::0;7130;;11526:21:::1;::::0;1315:18:1;;11526:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11500:63;::::0;-1:-1:-1;;;;;;11500:63:0::1;::::0;;;;;;-1:-1:-1;;;;;5479:32:1;;;11500:63:0::1;::::0;::::1;5461:51:1::0;5528:18;;;5521:34;5434:18;;11500:63:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11410:161::o:0;9758:357::-;9838:4;-1:-1:-1;;;;;9863:21:0;;9855:61;;;;-1:-1:-1;;;9855:61:0;;;;;;;:::i;:::-;9996:10;9963:30;9973:10;9985:7;9963:9;:30::i;:::-;:43;;;;:::i;:::-;9939:10;9927:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9927:32:0;;;;;;;;;;;;:79;;;10022:63;1550:25:1;;;9927:32:0;;10022:63;;1523:18:1;10022:63:0;1404:177:1;17491:112:0;17563:1;17531:29;17549:10;17531:17;:29::i;:::-;:33;17528:67;;;17566:29;17584:10;17566:17;:29::i;:::-;17491:112::o;9344:106::-;9399:4;9413:35;9421:7;-1:-1:-1;;9413:7:0;:35::i;11579:593::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;11665:8:::1;::::0;::::1;;11664:9;11656:18;;;::::0;::::1;;11685:55;::::0;-1:-1:-1;;;11685:55:0;;6591:42:::1;11685:55;::::0;::::1;5461:51:1::0;-1:-1:-1;;5528:18:1;;;5521:34;7130:42:0::1;::::0;11685:19:::1;::::0;5434:18:1;;11685:55:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11803:4:0::1;11851:24;::::0;;;:9:::1;:24;::::0;;;;;6591:42:::1;::::0;11761:19:::1;::::0;6842:42:::1;::::0;11851:28:::1;::::0;11878:1:::1;::::0;11851:28:::1;:::i;:::-;11894:36;::::0;-1:-1:-1;;;11894:36:0;;11924:4:::1;11894:36;::::0;::::1;1342:51:1::0;7130:42:0::1;::::0;11894:21:::1;::::0;1315:18:1;;11894:36:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11761:260;::::0;-1:-1:-1;;;;;;11761:260:0::1;::::0;;;;;;-1:-1:-1;;;;;6615:15:1;;;11761:260:0::1;::::0;::::1;6597:34:1::0;6667:15;;;;6647:18;;;6640:43;6699:18;;;6692:34;6742:18;;;6735:34;11945:1:0::1;6785:19:1::0;;;6778:35;;;6829:19;;;6822:35;6671:42:0::1;6873:19:1::0;;;6866:44;11995:15:0::1;6926:19:1::0;;;6919:35;6531:19;;11761:260:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12032:8:0::1;:15:::0;;-1:-1:-1;;12032:15:0::1;12043:4;12032:15;::::0;;-1:-1:-1;12071:12:0::1;:3:::0;12077:6:::1;12071:12;:::i;:::-;12058:10;:25:::0;12108::::1;12123:10:::0;12108:12:::1;:25;:::i;:::-;12094:11;:39:::0;-1:-1:-1;;12144:13:0::1;:20:::0;;-1:-1:-1;;12144:20:0::1;;;::::0;;11579:593::o;13090:148::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;13152:1:::1;13142:7;:11:::0;;;13164:4:::1;:8:::0;;;13183:3:::1;:7:::0;;;13214:16:::1;::::0;::::1;::::0;13152:1;13214:16:::1;13090:148::o:0;10123:482::-;10208:4;-1:-1:-1;;;;;10233:21:0;;10225:61;;;;-1:-1:-1;;;10225:61:0;;;;;;;:::i;:::-;10339:15;10305:30;10315:10;10327:7;10305:9;:30::i;:::-;:49;;10297:104;;;;-1:-1:-1;;;10297:104:0;;7651:2:1;10297:104:0;;;7633:21:1;7690:2;7670:18;;;7663:30;7729:34;7709:18;;;7702:62;-1:-1:-1;;;7780:18:1;;;7773:40;7830:19;;10297:104:0;7449:406:1;10297:104:0;10481:15;10448:30;10458:10;10470:7;10448:9;:30::i;:::-;:48;;;;:::i;10617:156::-;10697:4;10721:44;10735:10;10747:9;10758:6;10721:13;:44::i;6932:22::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6932:22:0;;-1:-1:-1;6932:22:0;:::o;13250:94::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;13335:1:::1;13314:18;:22:::0;13250:94::o;13352:87::-;7888:10;6671:42;7888:17;7879:55;;;;-1:-1:-1;;;7879:55:0;;;;;;;:::i;:::-;13428:3:::1;13407:18;:24:::0;13352:87::o;9187:145::-;-1:-1:-1;;;;;9296:19:0;;;9269:7;9296:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9187:145::o;13447:559::-;-1:-1:-1;;;;;13560:17:0;;13539:4;13560:17;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;13581:20:0;;;;;;:9;:20;;;;;;;;13560:41;13556:96;;;13610:42;13626:6;13634:9;13645:6;13610:15;:42::i;:::-;13603:49;;;;13556:96;13666:13;;;;;;;13663:124;;;13690:38;13702:6;13710:9;13721:6;13690:11;:38::i;:::-;13681:47;;13663:124;;;13753:34;13761:6;13769:9;13780:6;13753:7;:34::i;:::-;13744:43;;13663:124;13798:42;13814:6;13822:9;13833:6;13798:15;:42::i;:::-;-1:-1:-1;;;;;;13855:32:0;;;;;;:24;:32;;;;;;;;13851:54;;13889:16;13898:6;13889:8;:16::i;:::-;-1:-1:-1;;;;;13920:35:0;;;;;;:24;:35;;;;;;;;13916:60;;13957:19;13966:9;13957:8;:19::i;:::-;-1:-1:-1;13994:4:0;13447:559;;;;;:::o;18470:141::-;18535:7;18588:15;;18570;;18562:5;:23;;;;:::i;:::-;:41;;;;:::i;17611:445::-;17679:14;17696:30;17714:11;17696:17;:30::i;:::-;17679:47;;17740:6;17750:1;17740:11;17737:23;;17753:7;17611:445;:::o;17737:23::-;17772:40;;-1:-1:-1;;;17772:40:0;;-1:-1:-1;;;;;5479:32:1;;17772:40:0;;;5461:51:1;5528:18;;;5521:34;;;7130:42:0;;17772:20;;5434:18:1;;17772:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17861:6;17842:16;;:25;;;;:::i;:::-;17823:16;:44;-1:-1:-1;;;;;17914:19:0;;;;;;:6;:19;;;;;:33;;;:42;;17950:6;;17914:42;:::i;:::-;-1:-1:-1;;;;;17878:19:0;;;;;;:6;:19;;;;;:33;;;:78;;;;18021:26;18003:45;;:17;:45::i;:::-;-1:-1:-1;;;;;17967:19:0;;;;;;;:6;:19;;;;;:33;;:81;;;;-1:-1:-1;17611:445:0:o;14849:481::-;14943:4;-1:-1:-1;;;;;14968:20:0;;;;;;:47;;-1:-1:-1;;;;;;14992:23:0;;;;14968:47;14960:89;;;;-1:-1:-1;;;14960:89:0;;8062:2:1;14960:89:0;;;8044:21:1;8101:2;8081:18;;;8074:30;8140:31;8120:18;;;8113:59;8189:18;;14960:89:0;7860:353:1;14960:89:0;-1:-1:-1;;;;;15078:17:0;;;;;;:9;:17;;;;;;15068:27;;;15060:72;;;;-1:-1:-1;;;15060:72:0;;8420:2:1;15060:72:0;;;8402:21:1;;;8439:18;;;8432:30;8498:34;8478:18;;;8471:62;8550:18;;15060:72:0;8218:356:1;15060:72:0;15146:6;15156:1;15146:11;15143:27;;-1:-1:-1;15166:4:0;15159:11;;15143:27;-1:-1:-1;;;;;15181:17:0;;;;;;:9;:17;;;;;:27;;15202:6;;15181:17;:27;;15202:6;;15181:27;:::i;:::-;;;;-1:-1:-1;;;;;;;15219:20:0;;;;;;:9;:20;;;;;:30;;15243:6;;15219:20;:30;;15243:6;;15219:30;:::i;:::-;;;;;;;;15282:9;-1:-1:-1;;;;;15265:35:0;15274:6;-1:-1:-1;;;;;15265:35:0;;15293:6;15265:35;;;;1550:25:1;;1538:2;1523:18;;1404:177;15265:35:0;;;;;;;;-1:-1:-1;15318:4:0;14849:481;;;;;:::o;12180:902::-;12270:7;12308:10;;12293:11;:25;;:56;;;;12338:11;;12322:12;:27;;12293:56;12290:217;;;12366:13;:21;;-1:-1:-1;;12366:21:0;;;12426:4;12382:5;12442:24;;;12366:13;12442:24;;;;;;12402:65;;12426:4;12433:7;;12402:15;:65::i;:::-;;12489:6;12482:13;;;;12290:217;12520:14;12527:6;12520;:14::i;:::-;12517:239;;;12551:44;12567:6;12575:7;12584:10;12593:1;12584:6;:10;:::i;:::-;12551:15;:44::i;:::-;-1:-1:-1;12640:4:0;12622:24;;;;:9;:24;;;;;;12613:33;;12610:102;;;12665:47;12689:4;12696:7;12705:6;12665:15;:47::i;:::-;;12610:102;12734:10;12743:1;12734:6;:10;:::i;12517:239::-;12771:17;12778:9;12771:6;:17::i;:::-;12768:279;;;12805:44;12821:6;12829:7;12838:10;12847:1;12838:6;:10;:::i;12805:44::-;-1:-1:-1;12894:4:0;12876:24;;;;:9;:24;;;;;;12867:33;;12864:102;;;12919:47;12943:4;12950:7;12959:6;12919:15;:47::i;:::-;;12864:102;12990:7;-1:-1:-1;;;;;12981:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13034:1;13027:6;:8;;;;:::i;12768:279::-;13064:10;13073:1;13064:6;:10;:::i;14014:686::-;14139:3;;-1:-1:-1;;;;;14157:33:0;;14100:7;14157:33;;;:22;:33;;;;;;14100:7;;14139:3;14157:33;;14153:132;;14268:3;14247:18;;14232:12;;:33;;;;:::i;:::-;:39;;;;:::i;:::-;-1:-1:-1;;;;;14200:20:0;;;;;;:9;:20;;;;;;:29;;14223:6;;14200:29;:::i;:::-;:71;14192:93;;;;-1:-1:-1;;;14192:93:0;;8781:2:1;14192:93:0;;;8763:21:1;8820:1;8800:18;;;8793:29;-1:-1:-1;;;8838:18:1;;;8831:39;8887:18;;14192:93:0;8579:332:1;14192:93:0;14299:3;;14306:1;14299:8;14296:26;;14316:6;14309:13;;;;;14296:26;14343:17;14383:3;14363:17;14372:8;14363:6;:17;:::i;:::-;:23;;;;:::i;:::-;14400:4;;14343:43;;-1:-1:-1;14400:8:0;14397:71;;14410:58;14426:6;6752:42;14459:8;14452:4;;14440:9;:16;;;;:::i;:::-;:27;;;;:::i;14410:58::-;;14397:71;14482:7;;:11;14479:86;;14495:70;14511:6;14527:4;14556:8;14546:7;;14534:9;:19;;;;:::i;14495:70::-;;14479:86;14607:4;14616:1;14589:24;;;:9;:24;;;;;;:28;;;;:49;;;14621:17;14628:9;14621:6;:17::i;:::-;14586:70;;;14640:16;:14;:16::i;:::-;14674:18;14683:9;14674:6;:18;:::i;:::-;14667:25;14014:686;-1:-1:-1;;;;;;14014:686:0:o;16266:1217::-;16463:19;;-1:-1:-1;;;;;16433:19:0;;;;;;:6;:19;;;;;:26;:49;16430:84;;16484:30;16502:11;16484:17;:30::i;:::-;-1:-1:-1;;;;;16574:19:0;;;;;;:6;:19;;;;;:26;:31;:94;;;;-1:-1:-1;16649:19:0;;-1:-1:-1;;;;;16623:22:0;;;;;;:9;:22;;;;;;:45;;16574:94;16557:160;;;18721:12;:19;;-1:-1:-1;;;;;18687:31:0;;;;;;:18;:31;;;;;:53;;;18751:30;;;;;;;;;;;;;-1:-1:-1;;;;;;18751:30:0;;;;;;16690:27;16817:19;;-1:-1:-1;;;;;16787:19:0;;;;;;:6;:19;;;;;:26;:49;;;;:110;;-1:-1:-1;16878:19:0;;-1:-1:-1;;;;;16853:22:0;;;;;;:9;:22;;;;;;:44;16787:110;16770:330;;;-1:-1:-1;;;;;16951:19:0;;;;;;:6;:19;;;;;:26;16937:11;;:40;;16951:26;16937:40;:::i;:::-;16923:11;:54;-1:-1:-1;;;;;16992:19:0;;17021:1;16992:19;;;:6;:19;;;;;:30;17037;16999:11;17037:17;:30::i;16770:330::-;17197:19;;-1:-1:-1;;;;;17171:22:0;;;;;;:9;:22;;;;;;:45;17168:308;;-1:-1:-1;;;;;17285:22:0;;;;;;:9;:22;;;;;;;;;17256:6;:19;;;;;;:26;17242:11;;:40;;17256:26;17242:40;:::i;:::-;:65;;;;:::i;:::-;17228:11;:79;-1:-1:-1;;;;;17347:22:0;;;;;;:9;:22;;;;;;;;;17318:6;:19;;;;;;:51;;;17419:45;;:17;:45::i;:::-;-1:-1:-1;;;;;17383:19:0;;;;;;:6;:19;;;;;:33;;:81;16266:1217;:::o;14708:133::-;14761:4;14790:7;-1:-1:-1;;;;;14781:16:0;:5;-1:-1:-1;;;;;14781:16:0;;14778:32;;-1:-1:-1;14806:4:0;;14708:133;-1:-1:-1;14708:133:0:o;14778:32::-;-1:-1:-1;14828:5:0;;14708:133;-1:-1:-1;14708:133:0:o;15338:920::-;15414:6;;15405:4;15387:24;;;;:9;:24;;;;;;:33;15384:45;;;15338:920::o;15384:45::-;15466:36;;-1:-1:-1;;;15466:36:0;;15496:4;15466:36;;;1342:51:1;7130:42:0;;15466:21;;1315:18:1;;15466:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15439:24;:63;15549:16;;;15563:1;15549:16;;;;;;;;15515:31;;15549:16;;;;;;;;;;-1:-1:-1;15549:16:0;15515:50;;15604:4;15576:14;15591:1;15576:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;15576:33:0;;;-1:-1:-1;;;;;15576:33:0;;;;;7130:42;15620:14;15635:1;15620:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15620:40:0;;;:17;;;;;;;;;;:40;15766:4;15748:24;;;;:9;:24;;;;;;;;15673:215;;-1:-1:-1;;;15673:215:0;;6591:42;;15673:60;;:215;;15748:24;;;15803:14;;15840:6;;15862:15;;15673:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15899:6;-1:-1:-1;;;;;15899:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15970:36:0;;-1:-1:-1;;;15970:36:0;;16000:4;15970:36;;;1342:51:1;15938:29:0;;-1:-1:-1;7130:42:0;;-1:-1:-1;15970:21:0;;1315:18:1;;15970:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15938:68;;16045:24;;16020:21;:49;16017:61;;16071:7;;15338:920::o;16017:61::-;16098:14;16139:24;;16115:21;:48;;;;:::i;:::-;16098:65;;16238:11;;16229:6;16211:15;;:24;;;;:::i;:::-;:38;;;;:::i;:::-;16192:15;;:58;;;;:::i;:::-;16174:15;:76;-1:-1:-1;;;15338:920:0:o;18797:288::-;18913:12;18926:19;;:21;;18946:1;;18926:21;:::i;:::-;18913:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;18878:31:0;;;;;:18;:31;;;;;;;;18865:12;:45;;18913:35;;;;;18865:12;:45;;;;;;:::i;:::-;;;;;;;;;;;;;:83;;-1:-1:-1;;;;;;18865:83:0;-1:-1:-1;;;;;18865:83:0;;;;;;19017:31;;;;;:18;:31;;;;;;;;18978:12;18991:19;;19017:31;;:18;18865:45;18991:21;;-1:-1:-1;;18991:21:0;:::i;:::-;18978:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;18978:35:0;18959:55;;;;;;;;;;;;:89;19059:12;:18;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;19059:18:0;;;;;-1:-1:-1;;;;;;19059:18:0;;;;;;-1:-1:-1;18797:288:0:o;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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1586:328::-;1663:6;1671;1679;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;1771:29;1790:9;1771:29;:::i;:::-;1761:39;;1819:38;1853:2;1842:9;1838:18;1819:38;:::i;:::-;1809:48;;1904:2;1893:9;1889:18;1876:32;1866:42;;1586:328;;;;;:::o;1919:186::-;1978:6;2031:2;2019:9;2010:7;2006:23;2002:32;1999:52;;;2047:1;2044;2037:12;1999:52;2070:29;2089:9;2070:29;:::i;2525:248::-;2593:6;2601;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;-1:-1:-1;;2693:23:1;;;2763:2;2748:18;;;2735:32;;-1:-1:-1;2525:248:1:o;2778:180::-;2837:6;2890:2;2878:9;2869:7;2865:23;2861:32;2858:52;;;2906:1;2903;2896:12;2858:52;-1:-1:-1;2929:23:1;;2778:180;-1:-1:-1;2778:180:1:o;3287:260::-;3355:6;3363;3416:2;3404:9;3395:7;3391:23;3387:32;3384:52;;;3432:1;3429;3422:12;3384:52;3455:29;3474:9;3455:29;:::i;:::-;3445:39;;3503:38;3537:2;3526:9;3522:18;3503:38;:::i;:::-;3493:48;;3287:260;;;;;:::o;3773:351::-;3975:2;3957:21;;;4014:2;3994:18;;;3987:30;4053:29;4048:2;4033:18;;4026:57;4115:2;4100:18;;3773:351::o;4129:127::-;4190:10;4185:3;4181:20;4178:1;4171:31;4221:4;4218:1;4211:15;4245:4;4242:1;4235:15;4261:128;4328:9;;;4349:11;;;4346:37;;;4363:18;;:::i;4745:348::-;4947:2;4929:21;;;4986:2;4966:18;;;4959:30;5025:26;5020:2;5005:18;;4998:54;5084:2;5069:18;;4745:348::o;5098:184::-;5168:6;5221:2;5209:9;5200:7;5196:23;5192:32;5189:52;;;5237:1;5234;5227:12;5189:52;-1:-1:-1;5260:16:1;;5098:184;-1:-1:-1;5098:184:1:o;5566:277::-;5633:6;5686:2;5674:9;5665:7;5661:23;5657:32;5654:52;;;5702:1;5699;5692:12;5654:52;5734:9;5728:16;5787:5;5780:13;5773:21;5766:5;5763:32;5753:60;;5809:1;5806;5799:12;5848:125;5913:9;;;5934:10;;;5931:36;;;5947:18;;:::i;5978:217::-;6018:1;6044;6034:132;;6088:10;6083:3;6079:20;6076:1;6069:31;6123:4;6120:1;6113:15;6151:4;6148:1;6141:15;6034:132;-1:-1:-1;6180:9:1;;5978:217::o;6965:306::-;7053:6;7061;7069;7122:2;7110:9;7101:7;7097:23;7093:32;7090:52;;;7138:1;7135;7128:12;7090:52;7167:9;7161:16;7151:26;;7217:2;7206:9;7202:18;7196:25;7186:35;;7261:2;7250:9;7246:18;7240:25;7230:35;;6965:306;;;;;:::o;7276:168::-;7349:9;;;7380;;7397:15;;;7391:22;;7377:37;7367:71;;7418:18;;:::i;9048:127::-;9109:10;9104:3;9100:20;9097:1;9090:31;9140:4;9137:1;9130:15;9164:4;9161:1;9154:15;9180:980;9442:4;9490:3;9479:9;9475:19;9521:6;9510:9;9503:25;9547:2;9585:6;9580:2;9569:9;9565:18;9558:34;9628:3;9623:2;9612:9;9608:18;9601:31;9652:6;9687;9681:13;9718:6;9710;9703:22;9756:3;9745:9;9741:19;9734:26;;9795:2;9787:6;9783:15;9769:29;;9816:1;9826:195;9840:6;9837:1;9834:13;9826:195;;;9905:13;;-1:-1:-1;;;;;9901:39:1;9889:52;;9996:15;;;;9961:12;;;;9937:1;9855:9;9826:195;;;-1:-1:-1;;;;;;;10077:32:1;;;;10072:2;10057:18;;10050:60;-1:-1:-1;;;10141:3:1;10126:19;10119:35;10038:3;9180:980;-1:-1:-1;;;9180:980:1:o;10165:127::-;10226:10;10221:3;10217:20;10214:1;10207:31;10257:4;10254:1;10247:15;10281:4;10278:1;10271:15

Swarm Source

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