ETH Price: $2,465.09 (+1.10%)

Token

Mr.beast ETH (Mr.beast)
 

Overview

Max Total Supply

500,000,000,000 Mr.beast

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
748,996,754.859426146 Mr.beast

Value
$0.00
0xae529f839464c43c61f264a85e17401333442726
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:
MrbeastETH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-19
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

interface IERC20 {
    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 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);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 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 swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function setLpPair(address pair, bool enabled) external;
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setProtections(bool _as, bool _ab) external;
    function removeSniper(address account) external;
}

contract MrbeastETH is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 500_000_000_000;
    string constant private _name = "Mr.beast ETH";
    string constant private _symbol = "Mr.beast";
    uint8 constant private _decimals = 9;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        originalDeployer = msg.sender;
        
        _liquidityHolders[_owner] = true;
        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);
    }

    receive() external payable {}

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

    address public originalDeployer;
    address public operator;

    // Function to set an operator to allow someone other the deployer to create things such as launchpads.
    // Only callable by original deployer.
    function setOperator(address newOperator) public {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        address oldOperator = operator;
        if (oldOperator != address(0)) {
            _liquidityHolders[oldOperator] = false;
        }
        operator = newOperator;
        _liquidityHolders[newOperator] = true;
    }

    function renounceOriginalDeployer() external {
        require(msg.sender == originalDeployer, "Can only be called by original deployer.");
        setOperator(address(0));
        originalDeployer = address(0);
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    function totalSupply() external pure override returns (uint256) { if (_tTotal == 0) { revert(); } return _tTotal; }
    function decimals() external pure override returns (uint8) { if (_tTotal == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
            initializer.setLpPair(pair, false);
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
            initializer.setLpPair(pair, true);
        }
    }

    function setInitializer(address _initializer) public onlyOwner {
        require(!tradingEnabled);
        require(_initializer != address(this), "Can't be self.");
        initializer = Initializer(_initializer);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[constructorLP] = true;
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function removeSniper(address account) external onlyOwner {
        initializer.removeSniper(account);
    }

    function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner {
        initializer.setProtections(_antiSnipe, _antiBlock);
    }

    function excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) 
                && presale != address(this) 
                && lpPair != router 
                && lpPair != presale, "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
        }
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
        }

        return finalizeTransfer(from, to, amount, other);
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            } else {
                _liquidityHolders[from] = true;
                _hasLiqBeenAdded = true;
            }
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        tradingEnabled = true;
        allowedPresaleExclusion = false;
    }

    function sweepBalance() external onlyOwner {
        payable(_owner).transfer(address(this).balance);
    }
    
    function sweepExternalTokens(address token) external onlyOwner {
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool other) internal returns (bool) {
        if (_hasLimits(from, to)) { bool checked;
            try initializer.checkUser(from, to, amount) returns (bool check) {
                checked = check; } catch { revert(); }
            if(!checked) { revert(); }
        }
        _tOwned[from] -= amount;
        _tOwned[to] += amount;
        emit Transfer(from, to, amount);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","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":[],"name":"approveContractContingency","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalDeployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOriginalDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060409081526000600281905560068054600160ff1991821681179092556007805461ffff60a01b1916905560098054336001600160a01b031991821681178355600a8054909216811782558552600460205294909320805490911690911790556200006c916200020f565b6200007d9064746a52880062000227565b600980546001600160a01b0390811660009081526020819052604081209390935581541691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620000d290600a6200020f565b620000e39064746a52880062000227565b60405190815260200160405180910390a362000241565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000151578160001904821115620001355762000135620000fa565b808516156200014357918102915b93841c939080029062000115565b509250929050565b6000826200016a5750600162000209565b81620001795750600062000209565b81600181146200019257600281146200019d57620001bd565b600191505062000209565b60ff841115620001b157620001b1620000fa565b50506001821b62000209565b5060208310610133831016604e8410600b8410161715620001e2575081810a62000209565b620001ee838362000110565b8060001904821115620002055762000205620000fa565b0290505b92915050565b60006200022060ff84168362000159565b9392505050565b8082028115828204841417620002095762000209620000fa565b61268980620002516000396000f3fe6080604052600436106101fd5760003560e01c806350a8e0161161010d5780638a63bd9b116100a0578063ab558e4d1161006f578063ab558e4d14610604578063b3ab15fb14610624578063c3513f6d14610644578063dd62ed3e14610659578063feadde9c1461069f57600080fd5b80638a63bd9b146105895780638a8c523c1461059e57806395d89b41146105b3578063a9059cbb146105e457600080fd5b8063715018a6116100dc578063715018a61461051657806380c581d11461052b57806381cf58a91461054b578063893d20e81461056b57600080fd5b806350a8e0161461047f578063570ca735146104a05780635c24b074146104c057806370a08231146104e057600080fd5b806323b872dd1161019057806333251a0b1161015f57806333251a0b146103e957806339a0590214610409578063452ed4f11461041e5780634ada218b1461043e5780634fb2e45d1461045f57600080fd5b806323b872dd1461036d5780632610eaca1461038d5780632b112e49146103ad578063313ce567146103c257600080fd5b8063095ea7b3116101cc578063095ea7b3146102c15780630dcbcf1c146102f157806313b4a7f41461032a57806318160ddd1461034a57600080fd5b806303fd2a4514610209578063044df7261461023c57806306fdde031461025e5780630758d9241461029c57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025c610257366004612167565b6106bf565b005b34801561026a57600080fd5b5060408051808201909152600c81526b09ae45cc4cac2e6e8408aa8960a31b60208201525b60405161023391906121a0565b3480156102a857600080fd5b5060065461021f9061010090046001600160a01b031681565b3480156102cd57600080fd5b506102e16102dc366004612203565b61077e565b6040519015158152602001610233565b3480156102fd57600080fd5b506102e161030c36600461222f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561033657600080fd5b5061025c61034536600461224c565b610795565b34801561035657600080fd5b5061035f6108ff565b604051908152602001610233565b34801561037957600080fd5b506102e161038836600461227a565b610948565b34801561039957600080fd5b5061025c6103a8366004612391565b6109c0565b3480156103b957600080fd5b5061035f610b78565b3480156103ce57600080fd5b506103d7610bf7565b60405160ff9091168152602001610233565b3480156103f557600080fd5b5061025c61040436600461222f565b610c26565b34801561041557600080fd5b5061025c610cd6565b34801561042a57600080fd5b5060075461021f906001600160a01b031681565b34801561044a57600080fd5b506007546102e190600160a01b900460ff1681565b34801561046b57600080fd5b5061025c61047a36600461222f565b610d5d565b34801561048b57600080fd5b506007546102e190600160a81b900460ff1681565b3480156104ac57600080fd5b50600b5461021f906001600160a01b031681565b3480156104cc57600080fd5b5061025c6104db36600461222f565b610f43565b3480156104ec57600080fd5b5061035f6104fb36600461222f565b6001600160a01b031660009081526020819052604090205490565b34801561052257600080fd5b5061025c61111c565b34801561053757600080fd5b5061025c610546366004612453565b611237565b34801561055757600080fd5b50600a5461021f906001600160a01b031681565b34801561057757600080fd5b506009546001600160a01b031661021f565b34801561059557600080fd5b506102e1611406565b3480156105aa57600080fd5b5061025c61147c565b3480156105bf57600080fd5b50604080518082019091526008815267135c8b9899585cdd60c21b602082015261028f565b3480156105f057600080fd5b506102e16105ff366004612203565b61163d565b34801561061057600080fd5b5061025c61061f36600461222f565b611654565b34801561063057600080fd5b5061025c61063f36600461222f565b6117a4565b34801561065057600080fd5b5061025c61187d565b34801561066557600080fd5b5061035f61067436600461224c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106ab57600080fd5b5061025c6106ba366004612453565b611904565b6009546001600160a01b031633146107125760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60085460405163efbdbabd60e01b8152831515600482015282151560248201526001600160a01b039091169063efbdbabd906044015b600060405180830381600087803b15801561076257600080fd5b505af1158015610776573d6000803e3d6000fd5b505050505050565b600061078b33848461197d565b5060015b92915050565b6009546001600160a01b031633146107e35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b60065460ff166107f257600080fd5b6001600160a01b038216301480159061081457506001600160a01b0381163014155b801561082e57506007546001600160a01b03838116911614155b801561084857506007546001600160a01b03828116911614155b6108825760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610709565b806001600160a01b0316826001600160a01b0316036108c2576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b600061090d6009600a61256b565b61091c9064746a52880061257a565b60000361092857600080fd5b6109346009600a61256b565b6109439064746a52880061257a565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146109ad576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906109a7908490612591565b90915550505b6109b8848484611a76565b949350505050565b6009546001600160a01b03163314610a0e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b8051825114610a5f5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610709565b60005b82518161ffff161015610b7357610a7b6009600a61256b565b828261ffff1681518110610a9157610a916125a4565b6020026020010151610aa3919061257a565b336000908152602081905260409020541015610b015760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610709565b610b6033848361ffff1681518110610b1b57610b1b6125a4565b60200260200101516009600a610b31919061256b565b858561ffff1681518110610b4757610b476125a4565b6020026020010151610b59919061257a565b6001611d25565b5080610b6b816125ba565b915050610a62565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610bd291906125db565b610bde6009600a61256b565b610bed9064746a52880061257a565b6109439190612591565b6000610c056009600a61256b565b610c149064746a52880061257a565b600003610c2057600080fd5b50600990565b6009546001600160a01b03163314610c745760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6008546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b158015610cbb57600080fd5b505af1158015610ccf573d6000803e3d6000fd5b5050505050565b600a546001600160a01b03163314610d415760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610709565b610d4b60006117a4565b600a80546001600160a01b0319169055565b6009546001600160a01b03163314610dab5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6001600160a01b038116610e275760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610709565b61deac196001600160a01b03821601610ea85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610709565b6009546001600160a01b031660009081526020819052604090205415610ef1576009546001600160a01b0316600081815260208190526040902054610eef91908390610b59565b505b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b03163314610f915760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b600754600160a01b900460ff1615610fa857600080fd5b306001600160a01b038216036110005760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610709565b600880546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301816000875af1925050508015611074575060408051601f3d908101601f19168201909252611071918101906125ee565b60015b61107d57600080fd5b6006805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600780546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560095492546110fa938316929190041660001961197d565b600654610b7390309061010090046001600160a01b031660001961197d565b50565b6009546001600160a01b0316331461116a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b600754600160a01b900460ff166111e95760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610709565b600980546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6009546001600160a01b031633146112855760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b806112dd576001600160a01b03828116600081815260016020526040808220805460ff1916905560085490516380c581d160e01b815260048101939093526024830191909152909116906380c581d190604401610748565b60025415611344576203f480600254426112f79190612591565b116113445760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610709565b6001600160a01b03821660009081526001602052604090205460ff16156113ad5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610709565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560085491516380c581d160e01b815260048101939093526024830152909116906380c581d190604401610748565b6009546000906001600160a01b031633146114575760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b60065461147690309061010090046001600160a01b031660001961197d565b50600190565b6009546001600160a01b031633146114ca5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b600754600160a01b900460ff16156115245760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610709565b600754600160a81b900460ff1661157d5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610709565b6008546001600160a01b03166115a057600880546001600160a01b031916301790555b600854600754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152911690636c115c3490608401600060405180830381600087803b15801561160c57600080fd5b505af192505050801561161d575060015b506007805460ff60a01b1916600160a01b1790556006805460ff19169055565b600061164a338484611a76565b5060019392505050565b6009546001600160a01b031633146116a25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6009546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156116f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171d919061261d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611780573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612636565b600a546001600160a01b0316331461180f5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610709565b600b546001600160a01b03168015611842576001600160a01b0381166000908152600460205260409020805460ff191690555b50600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b6009546001600160a01b031633146118cb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611119573d6000803e3d6000fd5b6009546001600160a01b031633146119525760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166119c95760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610709565b6001600160a01b038216611a155760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610709565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611adc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610709565b6001600160a01b038316611b3e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610709565b60008211611ba05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610709565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611bce5760019250611bfc565b6001600160a01b03861660009081526001602052604090205460ff1615611bf85760019150611bfc565b5060015b611c068787611f5f565b15611d0e57600754600160a01b900460ff16611d0e5780611c695760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610709565b6001600160a01b03871660009081526005602052604090205460ff16158015611cab57506001600160a01b03861660009081526005602052604090205460ff16155b15611d0e5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610709565b611d1a87878784611d25565b979650505050505050565b6000611d318585611f5f565b15611dc55760085460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092169063ecd07a53906064016020604051808303816000875af1925050508015611dae575060408051601f3d908101601f19168201909252611dab91810190612636565b60015b611db757600080fd5b905080611dc357600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611ded908490612591565b90915550506001600160a01b03841660009081526020819052604081208054859290611e1a9084906125db565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e6691815260200190565b60405180910390a3600754600160a81b900460ff16611f5457611e89858561206a565b600754600160a81b900460ff16158015611ea85750611ea88585611f5f565b8015611ecd57506001600160a01b03851660009081526005602052604090205460ff16155b8015611ef257506001600160a01b03841660009081526005602052604090205460ff16155b8015611efc575081155b15611f545760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610709565b506001949350505050565b6009546000906001600160a01b03848116911614801590611f8e57506009546001600160a01b03838116911614155b8015611fa557506009546001600160a01b03163214155b8015611fca57506001600160a01b03821660009081526004602052604090205460ff16155b8015611fef57506001600160a01b03831660009081526004602052604090205460ff16155b801561200657506001600160a01b03821661dead14155b801561201a57506001600160a01b03821615155b801561202f57506001600160a01b0383163014155b801561204957506008546001600160a01b03848116911614155b801561206357506008546001600160a01b03838116911614155b9392505050565b600754600160a81b900460ff16156120d05760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610709565b6120da8282611f5f565b1580156120f457506007546001600160a01b038281169116145b156108fb576008546001600160a01b031661211f57600880546001600160a01b031916301790555050565b6001600160a01b0382166000908152600460205260409020805460ff191660011790556007805460ff60a81b1916600160a81b1790555050565b801515811461111957600080fd5b6000806040838503121561217a57600080fd5b823561218581612159565b9150602083013561219581612159565b809150509250929050565b600060208083528351808285015260005b818110156121cd578581018301518582016040015282016121b1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461111957600080fd5b6000806040838503121561221657600080fd5b8235612221816121ee565b946020939093013593505050565b60006020828403121561224157600080fd5b8135612063816121ee565b6000806040838503121561225f57600080fd5b823561226a816121ee565b91506020830135612195816121ee565b60008060006060848603121561228f57600080fd5b833561229a816121ee565b925060208401356122aa816121ee565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122fa576122fa6122bb565b604052919050565b600067ffffffffffffffff82111561231c5761231c6122bb565b5060051b60200190565b600082601f83011261233757600080fd5b8135602061234c61234783612302565b6122d1565b82815260059290921b8401810191818101908684111561236b57600080fd5b8286015b84811015612386578035835291830191830161236f565b509695505050505050565b600080604083850312156123a457600080fd5b823567ffffffffffffffff808211156123bc57600080fd5b818501915085601f8301126123d057600080fd5b813560206123e061234783612302565b82815260059290921b840181019181810190898411156123ff57600080fd5b948201945b83861015612426578535612417816121ee565b82529482019490820190612404565b9650508601359250508082111561243c57600080fd5b5061244985828601612326565b9150509250929050565b6000806040838503121561246657600080fd5b8235612185816121ee565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156124c25781600019048211156124a8576124a8612471565b808516156124b557918102915b93841c939080029061248c565b509250929050565b6000826124d95750600161078f565b816124e65750600061078f565b81600181146124fc576002811461250657612522565b600191505061078f565b60ff84111561251757612517612471565b50506001821b61078f565b5060208310610133831016604e8410600b8410161715612545575081810a61078f565b61254f8383612487565b806000190482111561256357612563612471565b029392505050565b600061206360ff8416836124ca565b808202811582820484141761078f5761078f612471565b8181038181111561078f5761078f612471565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036125d1576125d1612471565b6001019392505050565b8082018082111561078f5761078f612471565b6000806040838503121561260157600080fd5b825161260c816121ee565b6020840151909250612195816121ee565b60006020828403121561262f57600080fd5b5051919050565b60006020828403121561264857600080fd5b81516120638161215956fea2646970667358221220f9e4297e200ff1083e1956ed8651ee718f6b1e6500769c6beb73af12258c1f0e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806350a8e0161161010d5780638a63bd9b116100a0578063ab558e4d1161006f578063ab558e4d14610604578063b3ab15fb14610624578063c3513f6d14610644578063dd62ed3e14610659578063feadde9c1461069f57600080fd5b80638a63bd9b146105895780638a8c523c1461059e57806395d89b41146105b3578063a9059cbb146105e457600080fd5b8063715018a6116100dc578063715018a61461051657806380c581d11461052b57806381cf58a91461054b578063893d20e81461056b57600080fd5b806350a8e0161461047f578063570ca735146104a05780635c24b074146104c057806370a08231146104e057600080fd5b806323b872dd1161019057806333251a0b1161015f57806333251a0b146103e957806339a0590214610409578063452ed4f11461041e5780634ada218b1461043e5780634fb2e45d1461045f57600080fd5b806323b872dd1461036d5780632610eaca1461038d5780632b112e49146103ad578063313ce567146103c257600080fd5b8063095ea7b3116101cc578063095ea7b3146102c15780630dcbcf1c146102f157806313b4a7f41461032a57806318160ddd1461034a57600080fd5b806303fd2a4514610209578063044df7261461023c57806306fdde031461025e5780630758d9241461029c57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561024857600080fd5b5061025c610257366004612167565b6106bf565b005b34801561026a57600080fd5b5060408051808201909152600c81526b09ae45cc4cac2e6e8408aa8960a31b60208201525b60405161023391906121a0565b3480156102a857600080fd5b5060065461021f9061010090046001600160a01b031681565b3480156102cd57600080fd5b506102e16102dc366004612203565b61077e565b6040519015158152602001610233565b3480156102fd57600080fd5b506102e161030c36600461222f565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561033657600080fd5b5061025c61034536600461224c565b610795565b34801561035657600080fd5b5061035f6108ff565b604051908152602001610233565b34801561037957600080fd5b506102e161038836600461227a565b610948565b34801561039957600080fd5b5061025c6103a8366004612391565b6109c0565b3480156103b957600080fd5b5061035f610b78565b3480156103ce57600080fd5b506103d7610bf7565b60405160ff9091168152602001610233565b3480156103f557600080fd5b5061025c61040436600461222f565b610c26565b34801561041557600080fd5b5061025c610cd6565b34801561042a57600080fd5b5060075461021f906001600160a01b031681565b34801561044a57600080fd5b506007546102e190600160a01b900460ff1681565b34801561046b57600080fd5b5061025c61047a36600461222f565b610d5d565b34801561048b57600080fd5b506007546102e190600160a81b900460ff1681565b3480156104ac57600080fd5b50600b5461021f906001600160a01b031681565b3480156104cc57600080fd5b5061025c6104db36600461222f565b610f43565b3480156104ec57600080fd5b5061035f6104fb36600461222f565b6001600160a01b031660009081526020819052604090205490565b34801561052257600080fd5b5061025c61111c565b34801561053757600080fd5b5061025c610546366004612453565b611237565b34801561055757600080fd5b50600a5461021f906001600160a01b031681565b34801561057757600080fd5b506009546001600160a01b031661021f565b34801561059557600080fd5b506102e1611406565b3480156105aa57600080fd5b5061025c61147c565b3480156105bf57600080fd5b50604080518082019091526008815267135c8b9899585cdd60c21b602082015261028f565b3480156105f057600080fd5b506102e16105ff366004612203565b61163d565b34801561061057600080fd5b5061025c61061f36600461222f565b611654565b34801561063057600080fd5b5061025c61063f36600461222f565b6117a4565b34801561065057600080fd5b5061025c61187d565b34801561066557600080fd5b5061035f61067436600461224c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106ab57600080fd5b5061025c6106ba366004612453565b611904565b6009546001600160a01b031633146107125760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b60448201526064015b60405180910390fd5b60085460405163efbdbabd60e01b8152831515600482015282151560248201526001600160a01b039091169063efbdbabd906044015b600060405180830381600087803b15801561076257600080fd5b505af1158015610776573d6000803e3d6000fd5b505050505050565b600061078b33848461197d565b5060015b92915050565b6009546001600160a01b031633146107e35760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b60065460ff166107f257600080fd5b6001600160a01b038216301480159061081457506001600160a01b0381163014155b801561082e57506007546001600160a01b03838116911614155b801561084857506007546001600160a01b03828116911614155b6108825760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610709565b806001600160a01b0316826001600160a01b0316036108c2576001600160a01b0381166000908152600460205260409020805460ff191660011790555050565b6001600160a01b038281166000908152600460205260408082208054600160ff1991821681179092559385168352912080549092161790555b5050565b600061090d6009600a61256b565b61091c9064746a52880061257a565b60000361092857600080fd5b6109346009600a61256b565b6109439064746a52880061257a565b905090565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146109ad576001600160a01b0384166000908152600360209081526040808320338452909152812080548492906109a7908490612591565b90915550505b6109b8848484611a76565b949350505050565b6009546001600160a01b03163314610a0e5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b8051825114610a5f5760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610709565b60005b82518161ffff161015610b7357610a7b6009600a61256b565b828261ffff1681518110610a9157610a916125a4565b6020026020010151610aa3919061257a565b336000908152602081905260409020541015610b015760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610709565b610b6033848361ffff1681518110610b1b57610b1b6125a4565b60200260200101516009600a610b31919061256b565b858561ffff1681518110610b4757610b476125a4565b6020026020010151610b59919061257a565b6001611d25565b5080610b6b816125ba565b915050610a62565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610bd291906125db565b610bde6009600a61256b565b610bed9064746a52880061257a565b6109439190612591565b6000610c056009600a61256b565b610c149064746a52880061257a565b600003610c2057600080fd5b50600990565b6009546001600160a01b03163314610c745760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6008546040516333251a0b60e01b81526001600160a01b038381166004830152909116906333251a0b90602401600060405180830381600087803b158015610cbb57600080fd5b505af1158015610ccf573d6000803e3d6000fd5b5050505050565b600a546001600160a01b03163314610d415760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610709565b610d4b60006117a4565b600a80546001600160a01b0319169055565b6009546001600160a01b03163314610dab5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6001600160a01b038116610e275760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610709565b61deac196001600160a01b03821601610ea85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610709565b6009546001600160a01b031660009081526020819052604090205415610ef1576009546001600160a01b0316600081815260208190526040902054610eef91908390610b59565b505b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009546001600160a01b03163314610f915760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b600754600160a01b900460ff1615610fa857600080fd5b306001600160a01b038216036110005760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610709565b600880546001600160a01b0319166001600160a01b038316908117909155604080516330fe427560e21b8152815163c3f909d49260048084019391929182900301816000875af1925050508015611074575060408051601f3d908101601f19168201909252611071918101906125ee565b60015b61107d57600080fd5b6006805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600780546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff1916909117905560095492546110fa938316929190041660001961197d565b600654610b7390309061010090046001600160a01b031660001961197d565b50565b6009546001600160a01b0316331461116a5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b600754600160a01b900460ff166111e95760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610709565b600980546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6009546001600160a01b031633146112855760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b806112dd576001600160a01b03828116600081815260016020526040808220805460ff1916905560085490516380c581d160e01b815260048101939093526024830191909152909116906380c581d190604401610748565b60025415611344576203f480600254426112f79190612591565b116113445760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610709565b6001600160a01b03821660009081526001602052604090205460ff16156113ad5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610709565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560085491516380c581d160e01b815260048101939093526024830152909116906380c581d190604401610748565b6009546000906001600160a01b031633146114575760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b60065461147690309061010090046001600160a01b031660001961197d565b50600190565b6009546001600160a01b031633146114ca5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b600754600160a01b900460ff16156115245760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610709565b600754600160a81b900460ff1661157d5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610709565b6008546001600160a01b03166115a057600880546001600160a01b031916301790555b600854600754604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260096064820152911690636c115c3490608401600060405180830381600087803b15801561160c57600080fd5b505af192505050801561161d575060015b506007805460ff60a01b1916600160a01b1790556006805460ff19169055565b600061164a338484611a76565b5060019392505050565b6009546001600160a01b031633146116a25760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6009546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa1580156116f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171d919061261d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611780573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612636565b600a546001600160a01b0316331461180f5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792062652063616c6c6564206279206f726967696e616c206460448201526732b83637bcb2b91760c11b6064820152608401610709565b600b546001600160a01b03168015611842576001600160a01b0381166000908152600460205260409020805460ff191690555b50600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600460205260409020805460ff19166001179055565b6009546001600160a01b031633146118cb5760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6009546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611119573d6000803e3d6000fd5b6009546001600160a01b031633146119525760405162461bcd60e51b815260206004820152601160248201527021b0b63632b9101e979e9037bbb732b91760791b6044820152606401610709565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166119c95760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610709565b6001600160a01b038216611a155760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610709565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611adc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610709565b6001600160a01b038316611b3e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610709565b60008211611ba05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610709565b6001600160a01b0384166000908152600160205260408120548190819060ff1615611bce5760019250611bfc565b6001600160a01b03861660009081526001602052604090205460ff1615611bf85760019150611bfc565b5060015b611c068787611f5f565b15611d0e57600754600160a01b900460ff16611d0e5780611c695760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610709565b6001600160a01b03871660009081526005602052604090205460ff16158015611cab57506001600160a01b03861660009081526005602052604090205460ff16155b15611d0e5760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610709565b611d1a87878784611d25565b979650505050505050565b6000611d318585611f5f565b15611dc55760085460405163ecd07a5360e01b81526001600160a01b038781166004830152868116602483015260448201869052600092169063ecd07a53906064016020604051808303816000875af1925050508015611dae575060408051601f3d908101601f19168201909252611dab91810190612636565b60015b611db757600080fd5b905080611dc357600080fd5b505b6001600160a01b03851660009081526020819052604081208054859290611ded908490612591565b90915550506001600160a01b03841660009081526020819052604081208054859290611e1a9084906125db565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e6691815260200190565b60405180910390a3600754600160a81b900460ff16611f5457611e89858561206a565b600754600160a81b900460ff16158015611ea85750611ea88585611f5f565b8015611ecd57506001600160a01b03851660009081526005602052604090205460ff16155b8015611ef257506001600160a01b03841660009081526005602052604090205460ff16155b8015611efc575081155b15611f545760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610709565b506001949350505050565b6009546000906001600160a01b03848116911614801590611f8e57506009546001600160a01b03838116911614155b8015611fa557506009546001600160a01b03163214155b8015611fca57506001600160a01b03821660009081526004602052604090205460ff16155b8015611fef57506001600160a01b03831660009081526004602052604090205460ff16155b801561200657506001600160a01b03821661dead14155b801561201a57506001600160a01b03821615155b801561202f57506001600160a01b0383163014155b801561204957506008546001600160a01b03848116911614155b801561206357506008546001600160a01b03838116911614155b9392505050565b600754600160a81b900460ff16156120d05760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610709565b6120da8282611f5f565b1580156120f457506007546001600160a01b038281169116145b156108fb576008546001600160a01b031661211f57600880546001600160a01b031916301790555050565b6001600160a01b0382166000908152600460205260409020805460ff191660011790556007805460ff60a81b1916600160a81b1790555050565b801515811461111957600080fd5b6000806040838503121561217a57600080fd5b823561218581612159565b9150602083013561219581612159565b809150509250929050565b600060208083528351808285015260005b818110156121cd578581018301518582016040015282016121b1565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461111957600080fd5b6000806040838503121561221657600080fd5b8235612221816121ee565b946020939093013593505050565b60006020828403121561224157600080fd5b8135612063816121ee565b6000806040838503121561225f57600080fd5b823561226a816121ee565b91506020830135612195816121ee565b60008060006060848603121561228f57600080fd5b833561229a816121ee565b925060208401356122aa816121ee565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122fa576122fa6122bb565b604052919050565b600067ffffffffffffffff82111561231c5761231c6122bb565b5060051b60200190565b600082601f83011261233757600080fd5b8135602061234c61234783612302565b6122d1565b82815260059290921b8401810191818101908684111561236b57600080fd5b8286015b84811015612386578035835291830191830161236f565b509695505050505050565b600080604083850312156123a457600080fd5b823567ffffffffffffffff808211156123bc57600080fd5b818501915085601f8301126123d057600080fd5b813560206123e061234783612302565b82815260059290921b840181019181810190898411156123ff57600080fd5b948201945b83861015612426578535612417816121ee565b82529482019490820190612404565b9650508601359250508082111561243c57600080fd5b5061244985828601612326565b9150509250929050565b6000806040838503121561246657600080fd5b8235612185816121ee565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156124c25781600019048211156124a8576124a8612471565b808516156124b557918102915b93841c939080029061248c565b509250929050565b6000826124d95750600161078f565b816124e65750600061078f565b81600181146124fc576002811461250657612522565b600191505061078f565b60ff84111561251757612517612471565b50506001821b61078f565b5060208310610133831016604e8410600b8410161715612545575081810a61078f565b61254f8383612487565b806000190482111561256357612563612471565b029392505050565b600061206360ff8416836124ca565b808202811582820484141761078f5761078f612471565b8181038181111561078f5761078f612471565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036125d1576125d1612471565b6001019392505050565b8082018082111561078f5761078f612471565b6000806040838503121561260157600080fd5b825161260c816121ee565b6020840151909250612195816121ee565b60006020828403121561262f57600080fd5b5051919050565b60006020828403121561264857600080fd5b81516120638161215956fea2646970667358221220f9e4297e200ff1083e1956ed8651ee718f6b1e6500769c6beb73af12258c1f0e64736f6c63430008130033

Deployed Bytecode Sourcemap

4014:12364:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:73;;;;;;;;;;;;4818:42;4787:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;4787:73:0;;;;;;;;11717:153;;;;;;;;;;-1:-1:-1;11717:153:0;;;;;:::i;:::-;;:::i;:::-;;8387:80;;;;;;;;;;-1:-1:-1;8459:5:0;;;;;;;;;;;;-1:-1:-1;;;8459:5:0;;;;8387:80;;;;;;;:::i;4726:26::-;;;;;;;;;;-1:-1:-1;4726:26:0;;;;;;;-1:-1:-1;;;;;4726:26:0;;;8995:161;;;;;;;;;;-1:-1:-1;8995:161:0;;;;;:::i;:::-;;:::i;:::-;;;2194:14:1;;2187:22;2169:41;;2157:2;2142:18;8995:161:0;2029:187:1;11146:140:0;;;;;;;;;;-1:-1:-1;11146:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;11244:34:0;11220:4;11244:34;;;:25;:34;;;;;;;;;11146:140;11878:523;;;;;;;;;;-1:-1:-1;11878:523:0;;;;;:::i;:::-;;:::i;8058:115::-;;;;;;;;;;;;;:::i;:::-;;;3012:25:1;;;3000:2;2985:18;8058:115:0;2866:177:1;9665:306:0;;;;;;;;;;-1:-1:-1;9665:306:0;;;;;:::i;:::-;;:::i;15144:433::-;;;;;;;;;;-1:-1:-1;15144:433:0;;;;;:::i;:::-;;:::i;11450:141::-;;;;;;;;;;;;;:::i;8179:112::-;;;;;;;;;;;;;:::i;:::-;;;6168:4:1;6156:17;;;6138:36;;6126:2;6111:18;8179:112:0;5996:184:1;11599:110:0;;;;;;;;;;-1:-1:-1;11599:110:0;;;;;:::i;:::-;;:::i;7482:221::-;;;;;;;;;;;;;:::i;4759:21::-;;;;;;;;;;-1:-1:-1;4759:21:0;;;;-1:-1:-1;;;;;4759:21:0;;;4867:34;;;;;;;;;;-1:-1:-1;4867:34:0;;;;-1:-1:-1;;;4867:34:0;;;;;;6052:539;;;;;;;;;;-1:-1:-1;6052:539:0;;;;;:::i;:::-;;:::i;4908:36::-;;;;;;;;;;-1:-1:-1;4908:36:0;;;;-1:-1:-1;;;4908:36:0;;;;;;6910:23;;;;;;;;;;-1:-1:-1;6910:23:0;;;;-1:-1:-1;;;;;6910:23:0;;;10551:587;;;;;;;;;;-1:-1:-1;10551:587:0;;;;;:::i;:::-;;:::i;8697:117::-;;;;;;;;;;-1:-1:-1;8697:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8790:16:0;8763:7;8790:16;;;;;;;;;;;;8697:117;6599:265;;;;;;;;;;;;;:::i;9979:564::-;;;;;;;;;;-1:-1:-1;9979:564:0;;;;;:::i;:::-;;:::i;6872:31::-;;;;;;;;;;-1:-1:-1;6872:31:0;;;;-1:-1:-1;;;;;6872:31:0;;;8473:79;;;;;;;;;;-1:-1:-1;8543:6:0;;-1:-1:-1;;;;;8543:6:0;8473:79;;9482:175;;;;;;;;;;;;;:::i;14352:480::-;;;;;;;;;;;;;:::i;8297:84::-;;;;;;;;;;-1:-1:-1;8371:7:0;;;;;;;;;;;;-1:-1:-1;;;8371:7:0;;;;8297:84;;8822:165;;;;;;;;;;-1:-1:-1;8822:165:0;;;;;:::i;:::-;;:::i;14961:175::-;;;;;;;;;;-1:-1:-1;14961:175:0;;;;;:::i;:::-;;:::i;7095:379::-;;;;;;;;;;-1:-1:-1;7095:379:0;;;;;:::i;:::-;;:::i;14840:109::-;;;;;;;;;;;;;:::i;8558:133::-;;;;;;;;;;-1:-1:-1;8558:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8660:19:0;;;8642:7;8660:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8558:133;11294:148;;;;;;;;;;-1:-1:-1;11294:148:0;;;;;:::i;:::-;;:::i;11717:153::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;;;;;;;;;11812:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;11812:50:0;;7105:14:1;;7098:22;11812:50:0::1;::::0;::::1;7080:41:1::0;7164:14;;7157:22;7137:18;;;7130:50;-1:-1:-1;;;;;11812:11:0;;::::1;::::0;:26:::1;::::0;7053:18:1;;11812:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11717:153:::0;;:::o;8995:161::-;9072:4;9089:37;9098:10;9110:7;9119:6;9089:8;:37::i;:::-;-1:-1:-1;9144:4:0;8995:161;;;;;:::o;11878:523::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;11982:23:::1;::::0;::::1;;11974:32;;;::::0;::::1;;-1:-1:-1::0;;;;;12025:23:0;::::1;12043:4;12025:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;12070:24:0;::::1;12089:4;12070:24;;12025:69;:107;;;;-1:-1:-1::0;12116:6:0::1;::::0;-1:-1:-1;;;;;12116:16:0;;::::1;:6:::0;::::1;:16;;12025:107;:146;;;;-1:-1:-1::0;12154:6:0::1;::::0;-1:-1:-1;;;;;12154:17:0;;::::1;:6:::0;::::1;:17;;12025:146;12017:170;;;::::0;-1:-1:-1;;;12017:170:0;;7393:2:1;12017:170:0::1;::::0;::::1;7375:21:1::0;7432:2;7412:18;;;7405:30;-1:-1:-1;;;7451:18:1;;;7444:41;7502:18;;12017:170:0::1;7191:335:1::0;12017:170:0::1;12212:7;-1:-1:-1::0;;;;;12202:17:0::1;:6;-1:-1:-1::0;;;;;12202:17:0::1;::::0;12198:196:::1;;-1:-1:-1::0;;;;;12236:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;12236:33:0::1;12265:4;12236:33;::::0;;11878:523;;:::o;12198:196::-:1;-1:-1:-1::0;;;;;12302:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;:32;;12330:4:::1;-1:-1:-1::0;;12302:32:0;;::::1;::::0;::::1;::::0;;;12349:26;;::::1;::::0;;;;:33;;;;::::1;;::::0;;12198:196:::1;11878:523:::0;;:::o;8058:115::-;8113:7;4704:13;4644:1;4704:2;:13;:::i;:::-;4687:30;;4483:15;4687:30;:::i;:::-;8139:1;8128:12;8124:31;;8144:8;;;8124:31;4704:13;4644:1;4704:2;:13;:::i;:::-;4687:30;;4483:15;4687:30;:::i;:::-;8156:14;;8058:115;:::o;9665:306::-;-1:-1:-1;;;;;9786:19:0;;9765:4;9786:19;;;:11;:19;;;;;;;;9806:10;9786:31;;;;;;;;-1:-1:-1;;9786:52:0;9782:126;;-1:-1:-1;;;;;9855:19:0;;;;;;:11;:19;;;;;;;;9875:10;9855:31;;;;;;;:41;;9890:6;;9855:19;:41;;9890:6;;9855:41;:::i;:::-;;;;-1:-1:-1;;9782:126:0;9927:36;9937:6;9945:9;9956:6;9927:9;:36::i;:::-;9920:43;9665:306;-1:-1:-1;;;;9665:306:0:o;15144:433::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;15279:7:::1;:14;15260:8;:15;:33;15252:67;;;::::0;-1:-1:-1;;;15252:67:0;;9554:2:1;15252:67:0::1;::::0;::::1;9536:21:1::0;9593:2;9573:18;;;9566:30;9632:23;9612:18;;;9605:51;9673:18;;15252:67:0::1;9352:345:1::0;15252:67:0::1;15335:8;15330:240;15353:8;:15;15349:1;:19;;;15330:240;;;15434:13;4644:1;15434:2;:13;:::i;:::-;15423:7;15431:1;15423:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;15408:10;8763:7:::0;8790:16;;;;;;;;;;;15398:49:::1;;15390:80;;;::::0;-1:-1:-1;;;15390:80:0;;10036:2:1;15390:80:0::1;::::0;::::1;10018:21:1::0;10075:2;10055:18;;;10048:30;10114:20;10094:18;;;10087:48;10152:18;;15390:80:0::1;9834:342:1::0;15390:80:0::1;15485:73;15502:10;15514:8;15523:1;15514:11;;;;;;;;;;:::i;:::-;;;;;;;4644:1;15538:2;:13;;;;:::i;:::-;15527:7;15535:1;15527:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;15553:4;15485:16;:73::i;:::-;-1:-1:-1::0;15370:3:0;::::1;::::0;::::1;:::i;:::-;;;;15330:240;;;;15144:433:::0;;:::o;11450:141::-;11503:7;8790:16;;;;;;4818:42;8790:16;;;;11542:39;;8790:16;11542:39;:::i;:::-;4704:13;4644:1;4704:2;:13;:::i;:::-;4687:30;;4483:15;4687:30;:::i;:::-;11531:51;;;;:::i;8179:112::-;8231:5;4704:13;4644:1;4704:2;:13;:::i;:::-;4687:30;;4483:15;4687:30;:::i;:::-;8255:1;8244:12;8240:31;;8260:8;;;8240:31;-1:-1:-1;4644:1:0;;8179:112::o;11599:110::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;11668:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;11668:33:0;;-1:-1:-1;;;;;178:55:1;;;11668:33:0::1;::::0;::::1;160:74:1::0;11668:11:0;;::::1;::::0;:24:::1;::::0;133:18:1;;11668:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11599:110:::0;:::o;7482:221::-;7560:16;;-1:-1:-1;;;;;7560:16:0;7546:10;:30;7538:83;;;;-1:-1:-1;;;7538:83:0;;10715:2:1;7538:83:0;;;10697:21:1;10754:2;10734:18;;;10727:30;10793:34;10773:18;;;10766:62;-1:-1:-1;;;10844:18:1;;;10837:38;10892:19;;7538:83:0;10513:404:1;7538:83:0;7632:23;7652:1;7632:11;:23::i;:::-;7666:16;:29;;-1:-1:-1;;;;;;7666:29:0;;;7482:221::o;6052:539::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;-1:-1:-1;;;;;6131:22:0;::::1;6123:96;;;::::0;-1:-1:-1;;;6123:96:0;;11124:2:1;6123:96:0::1;::::0;::::1;11106:21:1::0;11163:2;11143:18;;;11136:30;11202:34;11182:18;;;11175:62;11273:31;11253:18;;;11246:59;11322:19;;6123:96:0::1;10922:425:1::0;6123:96:0::1;-1:-1:-1::0;;;;;;;6238:16:0;::::1;::::0;6230:90:::1;;;::::0;-1:-1:-1;;;6230:90:0;;11124:2:1;6230:90:0::1;::::0;::::1;11106:21:1::0;11163:2;11143:18;;;11136:30;11202:34;11182:18;;;11175:62;11273:31;11253:18;;;11246:59;11322:19;;6230:90:0::1;10922:425:1::0;6230:90:0::1;6345:6;::::0;-1:-1:-1;;;;;6345:6:0::1;6355:1;8790:16:::0;;;;;;;;;;;6335:21;6331:113:::1;;6390:6;::::0;-1:-1:-1;;;;;6390:6:0::1;8763:7:::0;8790:16;;;;;;;;;;;6373:59:::1;::::0;6390:6;6398:8;;6408:17:::1;8697:117:::0;6373:59:::1;;6331:113;6483:6;::::0;;-1:-1:-1;;;;;6500:17:0;;::::1;-1:-1:-1::0;;;;;;6500:17:0;::::1;::::0;::::1;::::0;;;6533:40:::1;::::0;6483:6;::::1;::::0;6500:17;6483:6;;6533:40:::1;::::0;6464:16:::1;::::0;6533:40:::1;6112:479;6052:539:::0;:::o;10551:587::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;10634:14:::1;::::0;-1:-1:-1;;;10634:14:0;::::1;;;10633:15;10625:24;;;::::0;::::1;;10692:4;-1:-1:-1::0;;;;;10668:29:0;::::1;::::0;10660:56:::1;;;::::0;-1:-1:-1;;;10660:56:0;;11554:2:1;10660:56:0::1;::::0;::::1;11536:21:1::0;11593:2;11573:18;;;11566:30;11632:16;11612:18;;;11605:44;11666:18;;10660:56:0::1;11352:338:1::0;10660:56:0::1;10727:11;:39:::0;;-1:-1:-1;;;;;;10727:39:0::1;-1:-1:-1::0;;;;;10727:39:0;::::1;::::0;;::::1;::::0;;;10781:23:::1;::::0;;-1:-1:-1;;;10781:23:0;;;;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;10727:39:0;10781:23:::1;;;;;;;;;;-1:-1:-1::0;10781:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;10781:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;10777:354;;11120:8;::::0;::::1;10777:354;10868:9;:29:::0;;-1:-1:-1;;10868:29:0::1;;-1:-1:-1::0;;;;;10868:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;10899:6:::1;:22:::0;;-1:-1:-1;;;;;;10899:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10923:22:0;;;-1:-1:-1;10923:22:0::1;::::0;;;;;;;:29;;-1:-1:-1;;10923:29:0::1;::::0;;::::1;::::0;;10976:6:::1;::::0;10992:9;;10967:55:::1;::::0;10976:6;::::1;::::0;10992:9;;::::1;;-1:-1:-1::0;;10967:8:0::1;:55::i;:::-;11069:9;::::0;11037:62:::1;::::0;11054:4:::1;::::0;11069:9:::1;::::0;::::1;-1:-1:-1::0;;;;;11069:9:0::1;-1:-1:-1::0;;11037:8:0::1;:62::i;10777:354::-;10551:587:::0;:::o;6599:265::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;6666:14:::1;::::0;-1:-1:-1;;;6666:14:0;::::1;;;6658:74;;;::::0;-1:-1:-1;;;6658:74:0;;12287:2:1;6658:74:0::1;::::0;::::1;12269:21:1::0;12326:2;12306:18;;;12299:30;12365:34;12345:18;;;12338:62;12436:17;12416:18;;;12409:45;12471:19;;6658:74:0::1;12085:411:1::0;6658:74:0::1;6762:6;::::0;;-1:-1:-1;;;;;;6779:19:0;::::1;::::0;;;6814:42:::1;::::0;-1:-1:-1;;;;;6762:6:0;;::::1;::::0;6743:16:::1;::::0;6762:6;;6814:42:::1;::::0;6743:16;;6814:42:::1;6647:217;6599:265::o:0;9979:564::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;10061:7:::1;10056:480;;-1:-1:-1::0;;;;;10085:13:0;;::::1;10101:5;10085:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;10085:21:0::1;::::0;;10121:11:::1;::::0;:34;;-1:-1:-1;;;10121:34:0;;::::1;::::0;::::1;12669:74:1::0;;;;12759:18;;;12752:50;;;;10121:11:0;;::::1;::::0;:21:::1;::::0;12642:18:1;;10121:34:0::1;12501:307:1::0;10056:480:0::1;10192:17;::::0;:22;10188:135:::1;;10281:6;10261:17;;10243:15;:35;;;;:::i;:::-;:44;10235:72;;;::::0;-1:-1:-1;;;10235:72:0;;13015:2:1;10235:72:0::1;::::0;::::1;12997:21:1::0;13054:2;13034:18;;;13027:30;13093:17;13073:18;;;13066:45;13128:18;;10235:72:0::1;12813:339:1::0;10235:72:0::1;-1:-1:-1::0;;;;;10346:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;10345:14;10337:54;;;::::0;-1:-1:-1;;;10337:54:0;;13359:2:1;10337:54:0::1;::::0;::::1;13341:21:1::0;13398:2;13378:18;;;13371:30;13437:29;13417:18;;;13410:57;13484:18;;10337:54:0::1;13157:351:1::0;10337:54:0::1;-1:-1:-1::0;;;;;10406:13:0;;::::1;;::::0;;;10422:4:::1;10406:13;::::0;;;;;;;;:20;;-1:-1:-1;;10406:20:0::1;::::0;::::1;::::0;;10461:15:::1;10441:17;:35:::0;10491:11:::1;::::0;:33;;-1:-1:-1;;;10491:33:0;;::::1;::::0;::::1;12669:74:1::0;;;;12759:18;;;12752:50;10491:11:0;;::::1;::::0;:21:::1;::::0;12642:18:1;;10491:33:0::1;12501:307:1::0;9482:175:0;5906:6;;9548:4;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;9597:9:::1;::::0;9565:62:::1;::::0;9582:4:::1;::::0;9597:9:::1;::::0;::::1;-1:-1:-1::0;;;;;9597:9:0::1;-1:-1:-1::0;;9565:8:0::1;:62::i;:::-;-1:-1:-1::0;9645:4:0::1;9482:175:::0;:::o;14352:480::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;14414:14:::1;::::0;-1:-1:-1;;;14414:14:0;::::1;;;14413:15;14405:52;;;::::0;-1:-1:-1;;;14405:52:0;;13715:2:1;14405:52:0::1;::::0;::::1;13697:21:1::0;13754:2;13734:18;;;13727:30;13793:26;13773:18;;;13766:54;13837:18;;14405:52:0::1;13513:348:1::0;14405:52:0::1;14476:16;::::0;-1:-1:-1;;;14476:16:0;::::1;;;14468:53;;;::::0;-1:-1:-1;;;14468:53:0;;14068:2:1;14468:53:0::1;::::0;::::1;14050:21:1::0;14107:2;14087:18;;;14080:30;14146:26;14126:18;;;14119:54;14190:18;;14468:53:0::1;13866:348:1::0;14468:53:0::1;14544:11;::::0;-1:-1:-1;;;;;14544:11:0::1;14532:106;;14586:11;:40:::0;;-1:-1:-1;;;;;;14586:40:0::1;14620:4;14586:40;::::0;;14532:106:::1;14652:11;::::0;14674:6:::1;::::0;14652:87:::1;::::0;-1:-1:-1;;;14652:87:0;;-1:-1:-1;;;;;14674:6:0;;::::1;14652:87;::::0;::::1;14442:74:1::0;14564:10;14689:12:0::1;14552:23:1::0;14532:18;;;14525:51;14624:18;14711:15:0::1;14612:31:1::0;14592:18;;;14585:59;4644:1:0::1;14660:18:1::0;;;14653:45;14652:11:0;::::1;::::0;:21:::1;::::0;14414:19:1;;14652:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14648:103:::0;14761:14:::1;:21:::0;;-1:-1:-1;;;;14761:21:0::1;-1:-1:-1::0;;;14761:21:0::1;::::0;;14793:23:::1;:31:::0;;-1:-1:-1;;14793:31:0::1;::::0;;14352:480::o;8822:165::-;8900:4;8917:40;8927:10;8939:9;8950:6;8917:9;:40::i;:::-;-1:-1:-1;8975:4:0;;8822:165;-1:-1:-1;;;8822:165:0:o;14961:175::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;15089:6:::1;::::0;15097:30:::1;::::0;-1:-1:-1;;;15097:30:0;;15121:4:::1;15097:30;::::0;::::1;160:74:1::0;15057:5:0;;-1:-1:-1;;;;;15074:14:0;;::::1;::::0;::::1;::::0;15089:6;;;::::1;::::0;15074:14;;15097:15:::1;::::0;133:18:1;;15097:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15074:54;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;15090:55:1;;;15074:54:0::1;::::0;::::1;15072:74:1::0;15162:18;;;15155:34;15045:18;;15074:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7095:379::-:0;7177:16;;-1:-1:-1;;;;;7177:16:0;7163:10;:30;7155:83;;;;-1:-1:-1;;;7155:83:0;;10715:2:1;7155:83:0;;;10697:21:1;10754:2;10734:18;;;10727:30;10793:34;10773:18;;;10766:62;-1:-1:-1;;;10844:18:1;;;10837:38;10892:19;;7155:83:0;10513:404:1;7155:83:0;7271:8;;-1:-1:-1;;;;;7271:8:0;7294:25;;7290:96;;-1:-1:-1;;;;;7336:30:0;;7369:5;7336:30;;;:17;:30;;;;;:38;;-1:-1:-1;;7336:38:0;;;7290:96;-1:-1:-1;7396:8:0;:22;;-1:-1:-1;;;;;7396:22:0;;;-1:-1:-1;;;;;;7396:22:0;;;;;;;:8;7429:30;;;:17;:30;;;;;:37;;-1:-1:-1;;7429:37:0;7396:22;7429:37;;;7095:379::o;14840:109::-;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;14902:6:::1;::::0;14894:47:::1;::::0;-1:-1:-1;;;;;14902:6:0;;::::1;::::0;14919:21:::1;14894:47:::0;::::1;;;::::0;14902:6:::1;14894:47:::0;14902:6;14894:47;14919:21;14902:6;14894:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;11294:148:::0;5906:6;;-1:-1:-1;;;;;5906:6:0;5916:10;5906:20;5898:50;;;;-1:-1:-1;;;5898:50:0;;6774:2:1;5898:50:0;;;6756:21:1;6813:2;6793:18;;;6786:30;-1:-1:-1;;;6832:18:1;;;6825:47;6889:18;;5898:50:0;6572:341:1;5898:50:0;-1:-1:-1;;;;;11390:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;11390:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11294:148::o;9164:310::-;-1:-1:-1;;;;;9259:20:0;;9251:52;;;;-1:-1:-1;;;9251:52:0;;15652:2:1;9251:52:0;;;15634:21:1;15691:2;15671:18;;;15664:30;-1:-1:-1;;;15710:18:1;;;15703:49;15769:18;;9251:52:0;15450:343:1;9251:52:0;-1:-1:-1;;;;;9322:21:0;;9314:53;;;;-1:-1:-1;;;9314:53:0;;15652:2:1;9314:53:0;;;15634:21:1;15691:2;15671:18;;;15664:30;-1:-1:-1;;;15710:18:1;;;15703:49;15769:18;;9314:53:0;15450:343:1;9314:53:0;-1:-1:-1;;;;;9380:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9433:33;;3012:25:1;;;9433:33:0;;2985:18:1;9433:33:0;;;;;;;9164:310;;;:::o;12863:1020::-;12942:4;-1:-1:-1;;;;;12967:18:0;;12959:68;;;;-1:-1:-1;;;12959:68:0;;16000:2:1;12959:68:0;;;15982:21:1;16039:2;16019:18;;;16012:30;16078:34;16058:18;;;16051:62;-1:-1:-1;;;16129:18:1;;;16122:35;16174:19;;12959:68:0;15798:401:1;12959:68:0;-1:-1:-1;;;;;13046:16:0;;13038:64;;;;-1:-1:-1;;;13038:64:0;;16406:2:1;13038:64:0;;;16388:21:1;16445:2;16425:18;;;16418:30;16484:34;16464:18;;;16457:62;-1:-1:-1;;;16535:18:1;;;16528:33;16578:19;;13038:64:0;16204:399:1;13038:64:0;13130:1;13121:6;:10;13113:64;;;;-1:-1:-1;;;13113:64:0;;16810:2:1;13113:64:0;;;16792:21:1;16849:2;16829:18;;;16822:30;16888:34;16868:18;;;16861:62;-1:-1:-1;;;16939:18:1;;;16932:39;16988:19;;13113:64:0;16608:405:1;13113:64:0;-1:-1:-1;;;;;13276:13:0;;13188:8;13276:13;;;:7;:13;;;;;;13188:8;;;;13276:13;;13272:162;;;13312:4;13306:10;;13272:162;;;-1:-1:-1;;;;;13338:11:0;;;;;;:7;:11;;;;;;;;13334:100;;;13373:4;13366:11;;13334:100;;;-1:-1:-1;13418:4:0;13334:100;13448:20;13459:4;13465:2;13448:10;:20::i;:::-;13444:371;;;13489:14;;-1:-1:-1;;;13489:14:0;;;;13485:319;;13529:5;13524:265;;13559:34;;-1:-1:-1;;;13559:34:0;;17220:2:1;13559:34:0;;;17202:21:1;17259:2;17239:18;;;17232:30;17298:26;17278:18;;;17271:54;17342:18;;13559:34:0;17018:348:1;13524:265:0;-1:-1:-1;;;;;13624:31:0;;;;;;:25;:31;;;;;;;;13623:32;:66;;;;-1:-1:-1;;;;;;13660:29:0;;;;;;:25;:29;;;;;;;;13659:30;13623:66;13619:170;;;13714:55;;-1:-1:-1;;;13714:55:0;;17573:2:1;13714:55:0;;;17555:21:1;17612:2;17592:18;;;17585:30;17651:34;17631:18;;;17624:62;-1:-1:-1;;;17702:18:1;;;17695:43;17755:19;;13714:55:0;17371:409:1;13619:170:0;13834:41;13851:4;13857:2;13861:6;13869:5;13834:16;:41::i;:::-;13827:48;12863:1020;-1:-1:-1;;;;;;;12863:1020:0:o;15585:790::-;15683:4;15704:20;15715:4;15721:2;15704:10;:20::i;:::-;15700:228;;;15759:11;;:39;;-1:-1:-1;;;15759:39:0;;-1:-1:-1;;;;;18066:15:1;;;15759:39:0;;;18048:34:1;18118:15;;;18098:18;;;18091:43;18150:18;;;18143:34;;;15728:12:0;;15759:11;;:21;;17960:18:1;;15759:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;15759:39:0;;;;;;;;-1:-1:-1;;15759:39:0;;;;;;;;;;;;:::i;:::-;;;15755:122;;15866:8;;;15755:122;15849:5;-1:-1:-1;15895:7:0;15891:26;;15906:8;;;15891:26;15726:202;15700:228;-1:-1:-1;;;;;15938:13:0;;:7;:13;;;;;;;;;;:23;;15955:6;;15938:7;:23;;15955:6;;15938:23;:::i;:::-;;;;-1:-1:-1;;;;;;;15972:11:0;;:7;:11;;;;;;;;;;:21;;15987:6;;15972:7;:21;;15987:6;;15972:21;:::i;:::-;;;;;;;;16024:2;-1:-1:-1;;;;;16009:26:0;16018:4;-1:-1:-1;;;;;16009:26:0;;16028:6;16009:26;;;;3012:25:1;;3000:2;2985:18;;2866:177;16009:26:0;;;;;;;;16051:16;;-1:-1:-1;;;16051:16:0;;;;16046:298;;16084:28;16103:4;16109:2;16084:18;:28::i;:::-;16132:16;;-1:-1:-1;;;16132:16:0;;;;16131:17;:41;;;;;16152:20;16163:4;16169:2;16152:10;:20::i;:::-;16131:77;;;;-1:-1:-1;;;;;;16177:31:0;;;;;;:25;:31;;;;;;;;16176:32;16131:77;:111;;;;-1:-1:-1;;;;;;16213:29:0;;;;;;:25;:29;;;;;;;;16212:30;16131:111;:121;;;;;16247:5;16246:6;16131:121;16127:206;;;16273:44;;-1:-1:-1;;;16273:44:0;;18390:2:1;16273:44:0;;;18372:21:1;18429:2;18409:18;;;18402:30;18468:34;18448:18;;;18441:62;-1:-1:-1;;;18519:18:1;;;18512:32;18561:19;;16273:44:0;18188:398:1;16127:206:0;-1:-1:-1;16363:4:0;15585:790;;;;;;:::o;12409:446::-;12510:6;;12478:4;;-1:-1:-1;;;;;12502:14:0;;;12510:6;;12502:14;;;;:43;;-1:-1:-1;12539:6:0;;-1:-1:-1;;;;;12533:12:0;;;12539:6;;12533:12;;12502:43;:79;;;;-1:-1:-1;12575:6:0;;-1:-1:-1;;;;;12575:6:0;12562:9;:19;;12502:79;:118;;;;-1:-1:-1;;;;;;12599:21:0;;;;;;:17;:21;;;;;;;;12598:22;12502:118;:159;;;;-1:-1:-1;;;;;;12638:23:0;;;;;;:17;:23;;;;;;;;12637:24;12502:159;:186;;;;-1:-1:-1;;;;;;12678:10:0;;4818:42;12678:10;;12502:186;:219;;;;-1:-1:-1;;;;;;12705:16:0;;;;12502:219;:257;;;;-1:-1:-1;;;;;;12738:21:0;;12754:4;12738:21;;12502:257;:302;;;;-1:-1:-1;12792:11:0;;-1:-1:-1;;;;;12776:28:0;;;12792:11;;12776:28;;12502:302;:345;;;;-1:-1:-1;12835:11:0;;-1:-1:-1;;;;;12821:26:0;;;12835:11;;12821:26;;12502:345;12495:352;12409:446;-1:-1:-1;;;12409:446:0:o;13891:453::-;13974:16;;-1:-1:-1;;;13974:16:0;;;;13973:17;13965:65;;;;-1:-1:-1;;;13965:65:0;;18793:2:1;13965:65:0;;;18775:21:1;18832:2;18812:18;;;18805:30;18871:34;18851:18;;;18844:62;-1:-1:-1;;;18922:18:1;;;18915:33;18965:19;;13965:65:0;18591:399:1;13965:65:0;14046:20;14057:4;14063:2;14046:10;:20::i;:::-;14045:21;:37;;;;-1:-1:-1;14076:6:0;;-1:-1:-1;;;;;14070:12:0;;;14076:6;;14070:12;14045:37;14041:296;;;14111:11;;-1:-1:-1;;;;;14111:11:0;14099:227;;14157:11;:40;;-1:-1:-1;;;;;;14157:40:0;14191:4;14157:40;;;11878:523;;:::o;14099:227::-;-1:-1:-1;;;;;14238:23:0;;;;;;:17;:23;;;;;:30;;-1:-1:-1;;14238:30:0;14264:4;14238:30;;;14287:16;:23;;-1:-1:-1;;;;14287:23:0;-1:-1:-1;;;14287:23:0;;;13891:453;;:::o;245:118:1:-;331:5;324:13;317:21;310:5;307:32;297:60;;353:1;350;343:12;368:376;430:6;438;491:2;479:9;470:7;466:23;462:32;459:52;;;507:1;504;497:12;459:52;546:9;533:23;565:28;587:5;565:28;:::i;:::-;612:5;-1:-1:-1;669:2:1;654:18;;641:32;682:30;641:32;682:30;:::i;:::-;731:7;721:17;;;368:376;;;;;:::o;749:548::-;861:4;890:2;919;908:9;901:21;951:6;945:13;994:6;989:2;978:9;974:18;967:34;1019:1;1029:140;1043:6;1040:1;1037:13;1029:140;;;1138:14;;;1134:23;;1128:30;1104:17;;;1123:2;1100:26;1093:66;1058:10;;1029:140;;;1033:3;1218:1;1213:2;1204:6;1193:9;1189:22;1185:31;1178:42;1288:2;1281;1277:7;1272:2;1264:6;1260:15;1256:29;1245:9;1241:45;1237:54;1229:62;;;;749:548;;;;:::o;1550:154::-;-1:-1:-1;;;;;1629:5:1;1625:54;1618:5;1615:65;1605:93;;1694:1;1691;1684:12;1709:315;1777:6;1785;1838:2;1826:9;1817:7;1813:23;1809:32;1806:52;;;1854:1;1851;1844:12;1806:52;1893:9;1880:23;1912:31;1937:5;1912:31;:::i;:::-;1962:5;2014:2;1999:18;;;;1986:32;;-1:-1:-1;;;1709:315:1:o;2221:247::-;2280:6;2333:2;2321:9;2312:7;2308:23;2304:32;2301:52;;;2349:1;2346;2339:12;2301:52;2388:9;2375:23;2407:31;2432:5;2407:31;:::i;2473:388::-;2541:6;2549;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2657:9;2644:23;2676:31;2701:5;2676:31;:::i;:::-;2726:5;-1:-1:-1;2783:2:1;2768:18;;2755:32;2796:33;2755:32;2796:33;:::i;3048:456::-;3125:6;3133;3141;3194:2;3182:9;3173:7;3169:23;3165:32;3162:52;;;3210:1;3207;3200:12;3162:52;3249:9;3236:23;3268:31;3293:5;3268:31;:::i;:::-;3318:5;-1:-1:-1;3375:2:1;3360:18;;3347:32;3388:33;3347:32;3388:33;:::i;:::-;3048:456;;3440:7;;-1:-1:-1;;;3494:2:1;3479:18;;;;3466:32;;3048:456::o;3509:127::-;3570:10;3565:3;3561:20;3558:1;3551:31;3601:4;3598:1;3591:15;3625:4;3622:1;3615:15;3641:275;3712:2;3706:9;3777:2;3758:13;;-1:-1:-1;;3754:27:1;3742:40;;3812:18;3797:34;;3833:22;;;3794:62;3791:88;;;3859:18;;:::i;:::-;3895:2;3888:22;3641:275;;-1:-1:-1;3641:275:1:o;3921:183::-;3981:4;4014:18;4006:6;4003:30;4000:56;;;4036:18;;:::i;:::-;-1:-1:-1;4081:1:1;4077:14;4093:4;4073:25;;3921:183::o;4109:662::-;4163:5;4216:3;4209:4;4201:6;4197:17;4193:27;4183:55;;4234:1;4231;4224:12;4183:55;4270:6;4257:20;4296:4;4320:60;4336:43;4376:2;4336:43;:::i;:::-;4320:60;:::i;:::-;4414:15;;;4500:1;4496:10;;;;4484:23;;4480:32;;;4445:12;;;;4524:15;;;4521:35;;;4552:1;4549;4542:12;4521:35;4588:2;4580:6;4576:15;4600:142;4616:6;4611:3;4608:15;4600:142;;;4682:17;;4670:30;;4720:12;;;;4633;;4600:142;;;-1:-1:-1;4760:5:1;4109:662;-1:-1:-1;;;;;;4109:662:1:o;4776:1215::-;4894:6;4902;4955:2;4943:9;4934:7;4930:23;4926:32;4923:52;;;4971:1;4968;4961:12;4923:52;5011:9;4998:23;5040:18;5081:2;5073:6;5070:14;5067:34;;;5097:1;5094;5087:12;5067:34;5135:6;5124:9;5120:22;5110:32;;5180:7;5173:4;5169:2;5165:13;5161:27;5151:55;;5202:1;5199;5192:12;5151:55;5238:2;5225:16;5260:4;5284:60;5300:43;5340:2;5300:43;:::i;5284:60::-;5378:15;;;5460:1;5456:10;;;;5448:19;;5444:28;;;5409:12;;;;5484:19;;;5481:39;;;5516:1;5513;5506:12;5481:39;5540:11;;;;5560:217;5576:6;5571:3;5568:15;5560:217;;;5656:3;5643:17;5673:31;5698:5;5673:31;:::i;:::-;5717:18;;5593:12;;;;5755;;;;5560:217;;;5796:5;-1:-1:-1;;5839:18:1;;5826:32;;-1:-1:-1;;5870:16:1;;;5867:36;;;5899:1;5896;5889:12;5867:36;;5922:63;5977:7;5966:8;5955:9;5951:24;5922:63;:::i;:::-;5912:73;;;4776:1215;;;;;:::o;6185:382::-;6250:6;6258;6311:2;6299:9;6290:7;6286:23;6282:32;6279:52;;;6327:1;6324;6317:12;6279:52;6366:9;6353:23;6385:31;6410:5;6385:31;:::i;7531:127::-;7592:10;7587:3;7583:20;7580:1;7573:31;7623:4;7620:1;7613:15;7647:4;7644:1;7637:15;7663:422;7752:1;7795:5;7752:1;7809:270;7830:7;7820:8;7817:21;7809:270;;;7889:4;7885:1;7881:6;7877:17;7871:4;7868:27;7865:53;;;7898:18;;:::i;:::-;7948:7;7938:8;7934:22;7931:55;;;7968:16;;;;7931:55;8047:22;;;;8007:15;;;;7809:270;;;7813:3;7663:422;;;;;:::o;8090:806::-;8139:5;8169:8;8159:80;;-1:-1:-1;8210:1:1;8224:5;;8159:80;8258:4;8248:76;;-1:-1:-1;8295:1:1;8309:5;;8248:76;8340:4;8358:1;8353:59;;;;8426:1;8421:130;;;;8333:218;;8353:59;8383:1;8374:10;;8397:5;;;8421:130;8458:3;8448:8;8445:17;8442:43;;;8465:18;;:::i;:::-;-1:-1:-1;;8521:1:1;8507:16;;8536:5;;8333:218;;8635:2;8625:8;8622:16;8616:3;8610:4;8607:13;8603:36;8597:2;8587:8;8584:16;8579:2;8573:4;8570:12;8566:35;8563:77;8560:159;;;-1:-1:-1;8672:19:1;;;8704:5;;8560:159;8751:34;8776:8;8770:4;8751:34;:::i;:::-;8821:6;8817:1;8813:6;8809:19;8800:7;8797:32;8794:58;;;8832:18;;:::i;:::-;8870:20;;8090:806;-1:-1:-1;;;8090:806:1:o;8901:140::-;8959:5;8988:47;9029:4;9019:8;9015:19;9009:4;8988:47;:::i;9046:168::-;9119:9;;;9150;;9167:15;;;9161:22;;9147:37;9137:71;;9188:18;;:::i;9219:128::-;9286:9;;;9307:11;;;9304:37;;;9321:18;;:::i;9702:127::-;9763:10;9758:3;9754:20;9751:1;9744:31;9794:4;9791:1;9784:15;9818:4;9815:1;9808:15;10181:197;10219:3;10247:6;10288:2;10281:5;10277:14;10315:2;10306:7;10303:15;10300:41;;10321:18;;:::i;:::-;10370:1;10357:15;;10181:197;-1:-1:-1;;;10181:197:1:o;10383:125::-;10448:9;;;10469:10;;;10466:36;;;10482:18;;:::i;11695:385::-;11774:6;11782;11835:2;11823:9;11814:7;11810:23;11806:32;11803:52;;;11851:1;11848;11841:12;11803:52;11883:9;11877:16;11902:31;11927:5;11902:31;:::i;:::-;12002:2;11987:18;;11981:25;11952:5;;-1:-1:-1;12015:33:1;11981:25;12015:33;:::i;14709:184::-;14779:6;14832:2;14820:9;14811:7;14807:23;14803:32;14800:52;;;14848:1;14845;14838:12;14800:52;-1:-1:-1;14871:16:1;;14709:184;-1:-1:-1;14709:184:1:o;15200:245::-;15267:6;15320:2;15308:9;15299:7;15295:23;15291:32;15288:52;;;15336:1;15333;15326:12;15288:52;15368:9;15362:16;15387:28;15409:5;15387:28;:::i

Swarm Source

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